成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開(kāi)發(fā) 架構(gòu)
由于CPU速度非常快,且價(jià)框非常是責(zé),我們必須得充分壓榨CPU,得像生產(chǎn)隊(duì)的護(hù)一樣,讓它不隔地工作。為了合理利用CPU的高性期,同時(shí)盡可能地節(jié)約成本。

大家都知道內(nèi)存和硬盤(pán)都屬于計(jì)算機(jī)的存儲(chǔ)設(shè)備,斷電后內(nèi)存的數(shù)據(jù)是會(huì)丟失的,而硬盤(pán)則不會(huì),因?yàn)橛脖P(pán)是持久化存儲(chǔ)設(shè)備,同時(shí)也是一個(gè) I/O 設(shè)備。

其實(shí) CPU 內(nèi)部也有存儲(chǔ)數(shù)據(jù)的組件,比如寄存器、CPU L1/L2/L3 Cache 也都是屬于存儲(chǔ)設(shè)備,只不過(guò)它們能存儲(chǔ)的數(shù)據(jù)非常小,但是它們因?yàn)榭拷?CPU 核心,所以訪問(wèn)速度都非常快,快過(guò)硬盤(pán)好幾個(gè)數(shù)量級(jí)別。

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

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

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

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

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

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

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

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

寄存器和 CPU Cache 都是在 CPU 內(nèi)部,跟 CPU 挨著很近,因此它們的讀寫(xiě)速度都相當(dāng)?shù)目欤悄艽鎯?chǔ)的數(shù)據(jù)很少,畢竟 CPU 就這么丁點(diǎn)大。

再來(lái)看看 CPU 外部的存儲(chǔ)器。

當(dāng)我們大腦記憶中沒(méi)有資料的時(shí)候,可以從書(shū)桌拿書(shū)來(lái)閱讀,那我們桌子上的書(shū),就好比內(nèi)存,我們雖然可以一伸手就可以拿到,但讀寫(xiě)速度肯定遠(yuǎn)慢于寄存器,

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

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

存儲(chǔ)器通常可以分為這么幾個(gè)級(jí)別:

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

寄存器

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

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

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

寄存器的訪問(wèn)速度非常快,一般要求在半個(gè) CPU 時(shí)鐘周期內(nèi)完成讀寫(xiě),CPU 時(shí)鐘周期跟 CPU 主頻息息相關(guān),

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

CPU Cache

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

SRAM 之所以叫「靜態(tài)」存儲(chǔ)器,是因?yàn)橹灰须姡瑪?shù)據(jù)就可以保持存在,而一旦斷電,數(shù)據(jù)就會(huì)丟失了。

CPU 的高速緩存,通常可以分為 L1、L2、L3 這樣的三層高速緩存,也稱(chēng)為一級(jí)緩存、二級(jí)緩存、三級(jí)緩存。

部件

CPU訪問(wèn)所需時(shí)間

介紹

L1 高速緩存


2~4 個(gè)時(shí)鐘周期


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

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

L2 高速緩存


10~20 個(gè)時(shí)鐘周期

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

L3 高速緩存


20~60個(gè)時(shí)鐘周期

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

內(nèi)存

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

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

DRAM 存儲(chǔ)一個(gè) bit 數(shù)據(jù),只需要一個(gè)晶體管和一個(gè)電容就能存儲(chǔ),但是因?yàn)閿?shù)據(jù)會(huì)被存儲(chǔ)在電容里,電容會(huì)不斷漏電,所以需要「定時(shí)刷新」電容,才能保證數(shù)據(jù)不會(huì)被丟失,這就是 DRAM 之所以被稱(chēng)為「動(dòng)態(tài)」存儲(chǔ)器的原因,只有不斷刷新,數(shù)據(jù)才能被存儲(chǔ)起來(lái)。

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

SSD/HDD 硬盤(pán)

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

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

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


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

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

CPU 并不會(huì)直接和每一種存儲(chǔ)器設(shè)備直接打交道,而是每一種存儲(chǔ)器設(shè)備只和它相鄰的存儲(chǔ)器設(shè)備打交道。比如,CPU Cache 的數(shù)據(jù)是從內(nèi)存加載過(guò)來(lái)的,寫(xiě)回?cái)?shù)據(jù)的時(shí)候也只寫(xiě)回到內(nèi)存,CPU Cache 不會(huì)直接把數(shù)據(jù)寫(xiě)到硬盤(pán),也不會(huì)直接從硬盤(pán)加載數(shù)據(jù),而是先加載到內(nèi)存,再?gòu)膬?nèi)存加載到 CPU Cache 中。

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

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

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

下面這張表格是不同層級(jí)的存儲(chǔ)器之間的成本對(duì)比圖:

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

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

總結(jié)

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

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

SSD 隨機(jī)訪問(wèn)延時(shí)是 150 微秒,所以 CPU L1 Cache 比 SSD 快 150000 倍左右。

最慢的機(jī)械硬盤(pán)隨機(jī)訪問(wèn)延時(shí)已經(jīng)高達(dá) 10 毫秒,我們來(lái)看看機(jī)械硬盤(pán)到底有多「龜速」:

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

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

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

題外話

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

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2013-04-09 09:54:34

程序員

2011-05-11 09:42:27

程序員

2012-04-09 09:42:56

2012-02-14 10:33:12

宅男程序員

2015-03-24 14:11:41

程序員

2020-11-13 15:31:31

程序員計(jì)算機(jī)考研

2013-03-27 09:59:33

程序員編程

2009-02-13 12:20:22

程序員計(jì)算機(jī)英語(yǔ)

2023-07-17 10:28:00

C/C++編程接口

2012-03-20 09:44:40

宅男程序員

2020-11-11 11:25:27

Redis數(shù)據(jù)技術(shù)

2014-11-11 15:27:36

程序員PLINY

2018-11-26 09:21:56

2020-12-11 07:10:03

程序員

2016-10-27 09:54:16

程序員云計(jì)算網(wǎng)絡(luò)

2021-07-19 14:41:48

機(jī)器人人工智能存儲(chǔ)器

2013-04-12 09:57:37

CSSJavaScript

2012-02-21 09:37:07

宅男程序員

2012-03-01 09:27:23

宅男程序員

2012-05-02 13:30:50

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 网站黄色在线免费观看 | 国产不卡在线 | 美女视频一区二区三区 | 欧美中文在线 | 亚洲综合三区 | 99这里只有精品视频 | 天天看片天天干 | 国产欧美在线播放 | 国产午夜精品一区二区三区在线观看 | 毛片免费观看视频 | 国产精品视频一区二区三区四区国 | www.色午夜.com | 天天爱综合| 精品在线一区二区三区 | 亚洲乱码国产乱码精品精的特点 | 久久精品一区 | 欧美老少妇一级特黄一片 | 日韩欧美国产精品一区二区 | 日日夜夜草 | 国产精品日日做人人爱 | 久久久久久国产精品久久 | 欧美日韩在线综合 | 亚洲一区中文字幕 | 美女久久久 | 国产国拍亚洲精品av | 国产日韩欧美二区 | 午夜免费视频 | 一级黄色片在线看 | 欧美在线视频网站 | 狠狠干狠狠操 | 久久久久久久久久久久久久久久久久久久 | 青青草一区二区三区 | 9久久婷婷国产综合精品性色 | 国产精品美女久久久久aⅴ国产馆 | 欧美性极品xxxx做受 | 国产精品久久久久无码av | 阿v视频在线观看 | 欧美综合久久久 | 国产一级片91 | 免费艹逼视频 | 欧美日韩国产一区二区三区 |