人人妻人人澡人人爽人人精品av_精品乱码一区内射人妻无码_老司机午夜福利视频_精品成品国色天香摄像头_99精品福利国产在线导航_野花社区在线观看视频_大地资源在线影视播放_东北高大肥胖丰满熟女_金门瓶马车内剧烈运动

首頁>國內(nèi) > 正文

程序員都要懂的~計算機的存儲器架構(gòu)

2023-08-07 13:25:43來源:今日頭條

大家都知道內(nèi)存和硬盤都屬于計算機的存儲設(shè)備,斷電后內(nèi)存的數(shù)據(jù)是會丟失的,而硬盤則不會,因為硬盤是持久化存儲設(shè)備,同時也是一個 I/O 設(shè)備。

其實 CPU 內(nèi)部也有存儲數(shù)據(jù)的組件,比如寄存器、CPU L1/L2/L3 Cache也都是屬于存儲設(shè)備,只不過它們能存儲的數(shù)據(jù)非常小,但是它們因為靠近 CPU 核心,所以訪問速度都非??欤爝^硬盤好幾個數(shù)量級別。


【資料圖】

問題來了,那機械硬盤、固態(tài)硬盤、內(nèi)存這三個存儲器,到底和 CPU L1 Cache 相比速度差多少倍呢?

在回答這個問題之前,我們先來看看「存儲器的層次結(jié)構(gòu)」,好讓我們對存儲器設(shè)備有一個整體的認識。

存儲器的層次結(jié)構(gòu)

我們想象中一個場景,程序汪小劉同學(xué)準備轉(zhuǎn)行了,在準備法考,為了營造氣氛,就去附近自習(xí)室學(xué)習(xí)。那么,在看書的時候,我們的大腦會思考問題,也會記憶考點,另外我們通常也會把常用的書放在自己的桌子上,當我們要找一本不常用的書,則會回家去拿或者去附近的圖書館找一找。

就是這么一個場景,已經(jīng)把計算機的存儲結(jié)構(gòu)基本都涵蓋了。

我們可以把 CPU 比喻成我們的大腦,大腦正在思考的東西,就好比 CPU 中的寄存器,處理速度是最快的,但是能存儲的數(shù)據(jù)也是最少的 。

我們大腦中的記憶,就好比CPU Cache,中文稱為 CPU 高速緩存,處理速度相比寄存器慢了一點,但是能存儲的數(shù)據(jù)也稍微多了一些。

CPU Cache 通常會分為L1、L2、L3 三層,L1 是距離 CPU 最近的,因此它比 L2、L3 的讀寫速度都快、存儲空間都小。我們大腦中短期記憶,就好比 L1 Cache,而長期記憶就好比 L2/L3 Cache。

寄存器和 CPU Cache 都是在 CPU 內(nèi)部,跟 CPU 挨著很近,因此它們的讀寫速度都相當?shù)目?,但是能存儲的?shù)據(jù)很少,畢竟 CPU 就這么丁點大。

再來看看 CPU 外部的存儲器。

當我們大腦記憶中沒有資料的時候,可以從書桌拿書來閱讀,那我們桌子上的書,就好比內(nèi)存,我們雖然可以一伸手就可以拿到,但讀寫速度肯定遠慢于寄存器,

那圖書館里資料或者在家里的書,就好比硬盤,能存儲的數(shù)據(jù)非常大,但是讀寫速度相比內(nèi)存差好幾個數(shù)量級,更別說跟寄存器的差距了。

對于存儲器,它的速度越快、能耗會越高、而且材料的成本也是越貴的,以至于速度快的存儲器的容量都比較小。

存儲器通??梢苑譃檫@么幾個級別:

寄存器;CPU Cache;L1-Cache;L2-Cache;L3-Cahce;內(nèi)存;SSD/HDD 硬盤寄存器

最靠近 CPU 的控制單元和邏輯計算單元的存儲器,就是寄存器了,它使用的材料速度也是最快的,因此價格也是最貴的,那么數(shù)量不能很多。

寄存器的數(shù)量通常在幾十到幾百之間,每個寄存器可以用來存儲一定的字節(jié)(byte)的數(shù)據(jù)。比如:

32 位 CPU 中大多數(shù)寄存器可以存儲4個字節(jié);64 位 CPU 中大多數(shù)寄存器可以存儲8個字節(jié)。

寄存器的訪問速度非??欤话阋笤诎雮€ CPU 時鐘周期內(nèi)完成讀寫,CPU 時鐘周期跟 CPU 主頻息息相關(guān),

舉個例子,主頻為3.0GHZ的CPU,一個時鐘周期大約是0.3納秒,內(nèi)存訪問大約需要120納秒,固態(tài)硬盤訪問大約需要50-150微秒,機械硬盤訪問大約需要1-10毫秒,最后網(wǎng)絡(luò)訪問最慢,得幾十毫秒左右。 這個大家可能對時間不怎么敏感,那如果我們把一個時鐘周期如果按1秒算的話,內(nèi)存訪問大約就是6分鐘 ,固態(tài)硬盤大約是2-6天 ,傳統(tǒng)硬盤大約是1-12個月,網(wǎng)絡(luò)訪問就得幾年了!

CPU Cache

CPU Cache 用的是一種叫SRAM(Static Random-AccessMemory,靜態(tài)隨機存儲器)的芯片。

SRAM 之所以叫「靜態(tài)」存儲器,是因為只要有電,數(shù)據(jù)就可以保持存在,而一旦斷電,數(shù)據(jù)就會丟失了。

CPU 的高速緩存,通??梢苑譃?L1、L2、L3 這樣的三層高速緩存,也稱為一級緩存、二級緩存、三級緩存。

部件

CPU訪問所需時間

介紹

L1 高速緩存

2~4個時鐘周期

L1 高速緩存訪問速度幾乎和寄存器一樣快,大小在幾十 KB 到幾百 KB 不等。

每個 CPU 核心都有一塊屬于自己的 L1 高速緩存,指令和數(shù)據(jù)在 L1 是分開存放的,所以 L1 高速緩存通常分成指令緩存和數(shù)據(jù)緩存。

L2 高速緩存

10~20個時鐘周期

L2 高速緩存同樣每個 CPU 核心都有,但是 L2 高速緩存位置比 L1 高速緩存距離 CPU 核心 更遠,它大小比 L1 高速緩存更大,CPU 型號不同大小也就不同,通常大小在幾百 KB 到幾 MB 不等,訪問速度則更慢

L3 高速緩存

20~60個時鐘周期

L3 高速緩存通常是多個 CPU 核心共用的,位置比 L2 高速緩存距離 CPU 核心 更遠,大小也會更大些,通常大小在幾 MB 到幾十 MB 不等,具體值根據(jù) CPU 型號而定

內(nèi)存

內(nèi)存用的芯片和 CPU Cache 有所不同,它使用的是一種叫作DRAM (Dynamic Random Access Memory,動態(tài)隨機存取存儲器)的芯片。

相比 SRAM,DRAM 的密度更高,功耗更低,有更大的容量,而且造價比 SRAM 芯片便宜很多。

DRAM 存儲一個 bit 數(shù)據(jù),只需要一個晶體管和一個電容就能存儲,但是因為數(shù)據(jù)會被存儲在電容里,電容會不斷漏電,所以需要「定時刷新」電容,才能保證數(shù)據(jù)不會被丟失,這就是 DRAM 之所以被稱為「動態(tài)」存儲器的原因,只有不斷刷新,數(shù)據(jù)才能被存儲起來。

DRAM 的數(shù)據(jù)訪問電路和刷新電路都比 SRAM 更復(fù)雜,所以訪問的速度會更慢,內(nèi)存速度大概在200~300個 時鐘周期之間。

SSD/HDD 硬盤

SSD(Solid-state disk) 就是我們常說的固體硬盤,結(jié)構(gòu)和內(nèi)存類似,但是它相比內(nèi)存的優(yōu)點是斷電后數(shù)據(jù)還是存在的,而內(nèi)存、寄存器、高速緩存斷電后數(shù)據(jù)都會丟失。內(nèi)存的讀寫速度比 SSD 大概快10~1000倍。

當然,還有一款傳統(tǒng)的硬盤,也就是機械硬盤(Hard Disk Drive, HDD),它是通過物理讀寫的方式來訪問數(shù)據(jù)的,因此它訪問速度是非常慢的,它的速度比內(nèi)存慢10W倍左右。

由于 SSD 的價格快接近機械硬盤了,因此機械硬盤已經(jīng)逐漸被 SSD 替代了。


存儲器的層次關(guān)系

現(xiàn)代的一臺計算機,都用上了 CPU Cahce、內(nèi)存、到 SSD 或 HDD 硬盤這些存儲器設(shè)備了。存儲空間越大的存儲器設(shè)備,其訪問速度越慢,所需成本也相對越少。

CPU 并不會直接和每一種存儲器設(shè)備直接打交道,而是每一種存儲器設(shè)備只和它相鄰的存儲器設(shè)備打交道。比如,CPU Cache 的數(shù)據(jù)是從內(nèi)存加載過來的,寫回數(shù)據(jù)的時候也只寫回到內(nèi)存,CPU Cache 不會直接把數(shù)據(jù)寫到硬盤,也不會直接從硬盤加載數(shù)據(jù),而是先加載到內(nèi)存,再從內(nèi)存加載到 CPU Cache 中。

所以,存儲層次結(jié)構(gòu)也形成了緩存的體系。

價格和性能的權(quán)衡

前面我們知道了,速度越快的存儲器,造價成本往往也越高,那我們就以實際的數(shù)據(jù)來看看,不同層級的存儲器之間的性能和價格差異。

下面這張表格是不同層級的存儲器之間的成本對比圖:

你可以看到 L1 Cache 的訪問延時是 1 納秒,而內(nèi)存已經(jīng)是 100 納秒了,相比 L1 Cache 速度慢了100倍。另外,機械硬盤的訪問延時更是高達 10 毫秒,相比 L1 Cache 速度慢了10000000倍,差了好幾個數(shù)量級別。

在價格上,每生成 MB 大小的 L1 Cache 相比內(nèi)存貴了466倍,相比機械硬盤那更是貴了175000倍。在某東逛了下各個存儲器設(shè)備的零售價,8G 內(nèi)存 + 1T 機械硬盤 + 256G 固態(tài)硬盤的總價格,都不及一塊 Intle i5-10400 的 CPU 的價格,這款 CPU 的高速緩存的總大小也就十多 MB。

總結(jié)

機械硬盤、固態(tài)硬盤、內(nèi)存這三個存儲器,到底和CPU L1 Cache相比速度差多少倍呢?

CPU L1 Cache 隨機訪問延時是 1 納秒,內(nèi)存則是 100 納秒,所以CPU L1 Cache 比內(nèi)存快100倍左右。

SSD 隨機訪問延時是 150 微秒,所以CPU L1 Cache 比 SSD 快150000倍左右。

最慢的機械硬盤隨機訪問延時已經(jīng)高達 10 毫秒,我們來看看機械硬盤到底有多「龜速」:

SSD 比機械硬盤快 70 倍左右;內(nèi)存比機械硬盤快 100000 倍左右;CPU L1 Cache 比機械硬盤快 10000000 倍左右;

我們把上述的時間比例差異放大后,就能非常直觀感受到它們的性能差異了。如果 CPU 訪問 L1 Cache 的緩存時間是 1 秒,那訪問內(nèi)存則需要大約 2 分鐘,隨機訪問 SSD 里的數(shù)據(jù)則需要 1.7 天,訪問機械硬盤那更久,長達近 4 個月。

可以發(fā)現(xiàn),不同的存儲器之間性能差距很大,構(gòu)造存儲器分級很有意義,分級的目的是要構(gòu)造緩存體系。

題外話

由于CPU速度非???,且價框非常是責,我們必須得充分壓榨CPU,得像生產(chǎn)隊的護一樣,讓它不隔地工作。為了合理利用CPU的高性期,同時盡可能地節(jié)約成本?,F(xiàn)代計算機格這些存儲器充分的結(jié)合起來,由于這些硬件的數(shù)據(jù)存取速度差異導(dǎo)改了計算機系統(tǒng)編程中的各種問題:有序性、可見性、原子性等

關(guān)鍵詞:

相關(guān)新聞

Copyright 2015-2020   三好網(wǎng)  版權(quán)所有 聯(lián)系郵箱:435 22 [email protected]  備案號: 京ICP備2022022245號-21