AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2023-08-09 23:03:29 337觀看
導讀大家都知道內(nèi)存和硬盤都屬于計算機的存儲設(shè)備,斷電后內(nèi)存的數(shù)據(jù)是會丟失的,而硬盤則不會,因為硬盤是持久化存儲設(shè)備,同時也是一個 I/O 設(shè)備。其實 CPU 內(nèi)部也有存儲數(shù)據(jù)的組件,比如寄存器、CPU L1/L2/L3 Cache 也都是屬于

大家都知道內(nèi)存和硬盤都屬于計算機的存儲設(shè)備,斷電后內(nèi)存的數(shù)據(jù)是會丟失的,而硬盤則不會,因為硬盤是持久化存儲設(shè)備,同時也是一個 I/O 設(shè)備。R5T28資訊網(wǎng)——每日最新資訊28at.com

其實 CPU 內(nèi)部也有存儲數(shù)據(jù)的組件,比如寄存器、CPU L1/L2/L3 Cache 也都是屬于存儲設(shè)備,只不過它們能存儲的數(shù)據(jù)非常小,但是它們因為靠近 CPU 核心,所以訪問速度都非常快,快過硬盤好幾個數(shù)量級別。R5T28資訊網(wǎng)——每日最新資訊28at.com

問題來了,那機械硬盤、固態(tài)硬盤、內(nèi)存這三個存儲器,到底和 CPU L1 Cache 相比速度差多少倍呢?R5T28資訊網(wǎng)——每日最新資訊28at.com

在回答這個問題之前,我們先來看看「存儲器的層次結(jié)構(gòu)」,好讓我們對存儲器設(shè)備有一個整體的認識。R5T28資訊網(wǎng)——每日最新資訊28at.com

R5T28資訊網(wǎng)——每日最新資訊28at.com

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

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

就是這么一個場景,已經(jīng)把計算機的存儲結(jié)構(gòu)基本都涵蓋了。R5T28資訊網(wǎng)——每日最新資訊28at.com

我們可以把 CPU 比喻成我們的大腦,大腦正在思考的東西,就好比 CPU 中的寄存器,處理速度是最快的,但是能存儲的數(shù)據(jù)也是最少的 。R5T28資訊網(wǎng)——每日最新資訊28at.com

我們大腦中的記憶,就好比 CPU Cache,中文稱為 CPU 高速緩存,處理速度相比寄存器慢了一點,但是能存儲的數(shù)據(jù)也稍微多了一些。R5T28資訊網(wǎng)——每日最新資訊28at.com

CPU Cache 通常會分為 L1、L2、L3 三層,L1 是距離 CPU 最近的,因此它比 L2、L3 的讀寫速度都快、存儲空間都小。我們大腦中短期記憶,就好比 L1 Cache,而長期記憶就好比 L2/L3 Cache。R5T28資訊網(wǎng)——每日最新資訊28at.com

寄存器和 CPU Cache 都是在 CPU 內(nèi)部,跟 CPU 挨著很近,因此它們的讀寫速度都相當?shù)目欤悄艽鎯Φ臄?shù)據(jù)很少,畢竟 CPU 就這么丁點大。R5T28資訊網(wǎng)——每日最新資訊28at.com

再來看看 CPU 外部的存儲器。R5T28資訊網(wǎng)——每日最新資訊28at.com

當我們大腦記憶中沒有資料的時候,可以從書桌拿書來閱讀,那我們桌子上的書,就好比內(nèi)存,我們雖然可以一伸手就可以拿到,但讀寫速度肯定遠慢于寄存器,R5T28資訊網(wǎng)——每日最新資訊28at.com

那圖書館里資料或者在家里的書,就好比硬盤,能存儲的數(shù)據(jù)非常大,但是讀寫速度相比內(nèi)存差好幾個數(shù)量級,更別說跟寄存器的差距了。R5T28資訊網(wǎng)——每日最新資訊28at.com

R5T28資訊網(wǎng)——每日最新資訊28at.com

對于存儲器,它的速度越快、能耗會越高、而且材料的成本也是越貴的,以至于速度快的存儲器的容量都比較小。R5T28資訊網(wǎng)——每日最新資訊28at.com

存儲器通常可以分為這么幾個級別:R5T28資訊網(wǎng)——每日最新資訊28at.com

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

寄存器

最靠近 CPU 的控制單元和邏輯計算單元的存儲器,就是寄存器了,它使用的材料速度也是最快的,因此價格也是最貴的,那么數(shù)量不能很多。R5T28資訊網(wǎng)——每日最新資訊28at.com

寄存器的數(shù)量通常在幾十到幾百之間,每個寄存器可以用來存儲一定的字節(jié)(byte)的數(shù)據(jù)。比如:R5T28資訊網(wǎng)——每日最新資訊28at.com

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

寄存器的訪問速度非常快,一般要求在半個 CPU 時鐘周期內(nèi)完成讀寫,CPU 時鐘周期跟 CPU 主頻息息相關(guān),R5T28資訊網(wǎng)——每日最新資訊28at.com

舉個例子,主頻為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ò)訪問就得幾年了!R5T28資訊網(wǎng)——每日最新資訊28at.com

CPU Cache

CPU Cache 用的是一種叫 SRAM(Static Random-Access Memory,靜態(tài)隨機存儲器) 的芯片。R5T28資訊網(wǎng)——每日最新資訊28at.com

SRAM 之所以叫「靜態(tài)」存儲器,是因為只要有電,數(shù)據(jù)就可以保持存在,而一旦斷電,數(shù)據(jù)就會丟失了。R5T28資訊網(wǎng)——每日最新資訊28at.com

CPU 的高速緩存,通常可以分為 L1、L2、L3 這樣的三層高速緩存,也稱為一級緩存、二級緩存、三級緩存。R5T28資訊網(wǎng)——每日最新資訊28at.com

R5T28資訊網(wǎng)——每日最新資訊28at.com

部件R5T28資訊網(wǎng)——每日最新資訊28at.com

CPU訪問所需時間R5T28資訊網(wǎng)——每日最新資訊28at.com

介紹R5T28資訊網(wǎng)——每日最新資訊28at.com

L1 高速緩存R5T28資訊網(wǎng)——每日最新資訊28at.com


R5T28資訊網(wǎng)——每日最新資訊28at.com

2~4 個時鐘周期R5T28資訊網(wǎng)——每日最新資訊28at.com


R5T28資訊網(wǎng)——每日最新資訊28at.com

L1 高速緩存訪問速度幾乎和寄存器一樣快,大小在幾十 KB 到幾百 KB 不等。R5T28資訊網(wǎng)——每日最新資訊28at.com

每個 CPU 核心都有一塊屬于自己的 L1 高速緩存,指令和數(shù)據(jù)在 L1 是分開存放的,所以 L1 高速緩存通常分成指令緩存和數(shù)據(jù)緩存。R5T28資訊網(wǎng)——每日最新資訊28at.com

L2 高速緩存R5T28資訊網(wǎng)——每日最新資訊28at.com


R5T28資訊網(wǎng)——每日最新資訊28at.com

10~20 個時鐘周期R5T28資訊網(wǎng)——每日最新資訊28at.com

L2 高速緩存同樣每個 CPU 核心都有,但是 L2 高速緩存位置比 L1 高速緩存距離 CPU 核心 更遠,它大小比 L1 高速緩存更大,CPU 型號不同大小也就不同,通常大小在幾百 KB 到幾 MB 不等,訪問速度則更慢R5T28資訊網(wǎng)——每日最新資訊28at.com

L3 高速緩存R5T28資訊網(wǎng)——每日最新資訊28at.com


R5T28資訊網(wǎng)——每日最新資訊28at.com

20~60個時鐘周期R5T28資訊網(wǎng)——每日最新資訊28at.com

L3 高速緩存通常是多個 CPU 核心共用的,位置比 L2 高速緩存距離 CPU 核心 更遠,大小也會更大些,通常大小在幾 MB 到幾十 MB 不等,具體值根據(jù) CPU 型號而定R5T28資訊網(wǎng)——每日最新資訊28at.com

內(nèi)存

內(nèi)存用的芯片和 CPU Cache 有所不同,它使用的是一種叫作 DRAM (Dynamic Random Access Memory,動態(tài)隨機存取存儲器) 的芯片。R5T28資訊網(wǎng)——每日最新資訊28at.com

相比 SRAM,DRAM 的密度更高,功耗更低,有更大的容量,而且造價比 SRAM 芯片便宜很多。R5T28資訊網(wǎng)——每日最新資訊28at.com

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

DRAM 的數(shù)據(jù)訪問電路和刷新電路都比 SRAM 更復雜,所以訪問的速度會更慢,內(nèi)存速度大概在 200~300 個 時鐘周期之間。R5T28資訊網(wǎng)——每日最新資訊28at.com

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 倍。R5T28資訊網(wǎng)——每日最新資訊28at.com

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

由于 SSD 的價格快接近機械硬盤了,因此機械硬盤已經(jīng)逐漸被 SSD 替代了。R5T28資訊網(wǎng)——每日最新資訊28at.com


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

R5T28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)代的一臺計算機,都用上了 CPU Cahce、內(nèi)存、到 SSD 或 HDD 硬盤這些存儲器設(shè)備了。存儲空間越大的存儲器設(shè)備,其訪問速度越慢,所需成本也相對越少。R5T28資訊網(wǎng)——每日最新資訊28at.com

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 中。R5T28資訊網(wǎng)——每日最新資訊28at.com

R5T28資訊網(wǎng)——每日最新資訊28at.com

所以,存儲層次結(jié)構(gòu)也形成了緩存的體系。R5T28資訊網(wǎng)——每日最新資訊28at.com

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

前面我們知道了,速度越快的存儲器,造價成本往往也越高,那我們就以實際的數(shù)據(jù)來看看,不同層級的存儲器之間的性能和價格差異。R5T28資訊網(wǎng)——每日最新資訊28at.com

下面這張表格是不同層級的存儲器之間的成本對比圖:R5T28資訊網(wǎng)——每日最新資訊28at.com

R5T28資訊網(wǎng)——每日最新資訊28at.com

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

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

總結(jié)

機械硬盤、固態(tài)硬盤、內(nèi)存這三個存儲器,到底和 CPU L1 Cache 相比速度差多少倍呢?R5T28資訊網(wǎng)——每日最新資訊28at.com

CPU L1 Cache 隨機訪問延時是 1 納秒,內(nèi)存則是 100 納秒,所以 CPU L1 Cache 比內(nèi)存快 100 倍左右。R5T28資訊網(wǎng)——每日最新資訊28at.com

SSD 隨機訪問延時是 150 微秒,所以 CPU L1 Cache 比 SSD 快 150000 倍左右。R5T28資訊網(wǎng)——每日最新資訊28at.com

最慢的機械硬盤隨機訪問延時已經(jīng)高達 10 毫秒,我們來看看機械硬盤到底有多「龜速」:R5T28資訊網(wǎng)——每日最新資訊28at.com

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

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

可以發(fā)現(xiàn),不同的存儲器之間性能差距很大,構(gòu)造存儲器分級很有意義,分級的目的是要構(gòu)造緩存體系。R5T28資訊網(wǎng)——每日最新資訊28at.com

題外話

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

本文鏈接:http://www.tebozhan.com/showinfo-26-5183-0.html程序員都要懂的~計算機的存儲器架構(gòu)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: TIOBE 8 月榜單:Julia 首次進入前 20 名

下一篇: 再見pip & conda!管理Python依賴關(guān)系的更好的選擇:Poetry

標簽:
  • 熱門焦點
Top