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

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

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

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

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

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

在回答這個(gè)問題之前,我們先來看看「存儲(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í)候,我們的大腦會(huì)思考問題,也會(huì)記憶考點(diǎn),另外我們通常也會(huì)把常用的書放在自己的桌子上,當(dāng)我們要找一本不常用的書,則會(huì)回家去拿或者去附近的圖書館找一找。

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

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

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

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

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

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

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

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

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

存儲(chǔ)器通??梢苑譃檫@么幾個(gè)級(jí)別:

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

寄存器

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

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

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

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

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

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 這樣的三層高速緩存,也稱為一級(jí)緩存、二級(jí)緩存、三級(jí)緩存。

部件

CPU訪問所需時(shí)間

介紹

L1 高速緩存


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


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

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

L2 高速緩存


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

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

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 之所以被稱為「動(dòng)態(tài)」存儲(chǔ)器的原因,只有不斷刷新,數(shù)據(jù)才能被存儲(chǔ)起來。

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

SSD/HDD 硬盤

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

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

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


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

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

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

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

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

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

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

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

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

總結(jié)

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

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

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

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

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

我們把上述的時(shí)間比例差異放大后,就能非常直觀感受到它們的性能差異了。如果 CPU 訪問 L1 Cache 的緩存時(shí)間是 1 秒,那訪問內(nèi)存則需要大約 2 分鐘,隨機(jī)訪問 SSD 里的數(shù)據(jù)則需要 1.7 天,訪問機(jī)械硬盤那更久,長(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é)合起來,由于這些硬件的數(shù)據(jù)存取速度差異導(dǎo)改了計(jì)算機(jī)系統(tǒng)編程中的各種問題:有序性、可見性、原子性等。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(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

程序員

2023-07-17 10:28:00

C/C++編程接口

2020-11-11 11:25:27

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

2020-11-13 15:31:31

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

2013-03-27 09:59:33

程序員編程

2009-02-13 12:20:22

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

2012-03-20 09:44:40

宅男程序員

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ò)

2020-12-08 10:35:29

程序員IT數(shù)據(jù)分析

2017-08-07 10:53:57

程序員客戶項(xiàng)目

2021-07-19 14:41:48

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

2013-04-12 09:57:37

CSSJavaScript

2012-02-21 09:37:07

宅男程序員
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久久久久久久久一区二区 | 毛片高清 | 久久久久久www| 国产免费一级片 | 精品一区二区三区在线观看 | 欧美激情综合网 | 波多野结衣电影一区 | 成人国产精品免费观看视频 | 91视频a | 日韩在线大片 | 免费看国产一级特黄aaaa大片 | 久久久久久久久久久国产 | 国产h在线| 欧美午夜精品久久久久久浪潮 | 深夜福利亚洲 | 成人在线观看欧美 | 国产高清毛片 | 在线中文字幕第一页 | 成人在线小视频 | 不卡欧美 | 国产一级免费视频 | 极品粉嫩国产48尤物在线播放 | 日韩有码一区 | 在线a视频网站 | 欧美视频成人 | 手机看片在线播放 | 91www在线观看 | 国产成人免费 | 欧美色成人 | 黄色免费av | 久久香蕉网 | 黄色大片免费观看 | 亚洲激情综合 | 伊人久久综合 | 91不卡| 综合久| 国产在线一区二区三区 | 在线成人| 欧美国产日韩一区二区三区 | 天天综合永久 | 99reav|