計算機存儲層次(Memory hierarchy)
存儲層次是在計算機體系結(jié)構(gòu)下存儲系統(tǒng)層次結(jié)構(gòu)的排列順序。 每一層于下一層相比 都擁有 較高的速度
和 較低延遲性
,以及 較小的容量
(也有少量例外,如AMD早期的Duron CPU)。大部分現(xiàn)今的中央處理器的速度都非常的快。大部分程序工作量需要存儲器存取。由于高速緩存的效率和存儲器傳輸位于層次結(jié)構(gòu)中的不同等級,所以實際上會限制處理的速度,導致中央處理器花費大量的時間等待存儲器I/O完成工作。
大部分電腦中的存儲層次如下四層:
-
寄存器 :可能是最快的存取。在32位處理器,每個寄存器就是32位。x86處理器共有16個寄存器。
-
高速緩存 Cache (L1-L3:SRAM、L4:DRAM)
-
第一級高速緩存(L1)–通常存取只需要幾個周期,通常是幾十個KB。
-
第二級高速緩存(L2)–比L1約有2到10倍較高延遲性,通常是幾百個KB或更多。
-
第三級高速緩存(L3)–比L2更高的延遲性,通常有數(shù)MB之大。
-
第四級高速緩存(L4)(不一定有)–CPU外部的DRAM,但速度較主存高。
-
-
主存(DRAM) : 存取需要幾百個周期,可以大到數(shù)十GB。
-
磁盤存儲 :需要成千上萬個周期,容量非常大。
存儲器的種類很多,按其用途可分為主存儲器和輔助存儲器,主存儲器又稱內(nèi)存儲器(簡稱內(nèi)存),輔助存儲器又稱外存儲器(簡稱外存)。內(nèi)存儲器最突出的特點是存取速度快,但是容量小、價格貴;外存儲器的特點是容量大、價格低,但是存取速度慢。內(nèi)存儲器用于存放那些立即要用的程序和數(shù)據(jù);外存儲器用于存放暫時不用的程序和數(shù)據(jù)。內(nèi)存儲器和外存儲器之間常常頻繁地交換信息。
內(nèi)存(memory)
內(nèi)存在電腦中起著舉足輕重的作用。內(nèi)存一般采用半導體存儲單元,包括隨機存儲器(RAM),只讀存儲器(ROM),以及高速緩存(CACHE)。
內(nèi)存可分為 易失性存儲器
和 非易失性存儲器
兩類,前者在掉電后會失去記憶的數(shù)據(jù),后者即使在切斷電源也可以保持數(shù)據(jù)。

RAM(Random Access Memory)
RAM,即Random Access Memory 隨機存儲內(nèi)存
。 RAM 是與CPU直接交換數(shù)據(jù)的內(nèi)部存儲器,也叫主存(內(nèi)存) 。另外,一些變量,都是放到RAM里的。這種存儲器在斷電時將丟失其存儲內(nèi)容,故主要用于存儲短時間使用的程序。
之所以叫做“隨機存取”,是因為相對于早期現(xiàn)行存儲媒介(磁帶?很久以前的)而言,因為磁帶的存取是線性的,存取時間由目前磁帶位置和目的位置的距離而定(類似數(shù)據(jù)結(jié)構(gòu)中的線性表)。需要轉(zhuǎn)動刺頭到應有的位置,因此距離越長,轉(zhuǎn)的就越久了,讀寫時間也越久。而偉大的RAM沒有這種限制,存取時間為固定值(類似數(shù)組這種下表式訪問,下標就是地址),不會因為存儲資料在memory中的位置而影響讀取時間。
RAM大致可以分為兩種:SRAM與DRAM,這兩者基本原理上有相同的地方,都是將電荷存儲到記憶體內(nèi)部,由此針對不同的電荷存儲0 or 1。
- SRAM靜態(tài)存儲器(Static Random Access Memory,SRAM)利用雙穩(wěn)態(tài)觸發(fā)器來保存信息
- DRAM動態(tài)存儲器(Dynamic Random Access Memory), 利用MOS電容存儲電荷來儲存信息。因此必須通過不停的給電容充電來維持信息,所以DRAM 的成本、集成度、功耗等明顯優(yōu)于SRAM。
SRAM
和 DRAM
有幾點不同:SRAM的結(jié)構(gòu)比較復雜,單位面積的容量少,存取速度很快;DRAM則結(jié)構(gòu)簡單,單位面積存儲的容量比較多,存取時間相對SRAM慢,同時 DRAM 因為構(gòu)造比較簡單,存儲的電荷會隨著時間逐漸消失,因此 需要定時再充電 (Refresh),以保持電容存儲的資料。
由圖中的SRAM和DRAM構(gòu)造可以知道, SRAM采用正反三極管+電容(flip-flop)構(gòu)造存儲器 , DRAM則是采用電容式存儲 。因為SRAM和DRAM的種種特性上的不同, SRAM比較適合作為Cache ,配合CPU快速存取使用, DRAM則適合作為主存而使用 。
ROM(Read Only Memory)
ROM:只讀存儲器。在制造ROM的時候,信息(數(shù)據(jù)或程序)就被存入并永久保存。這些信息只能讀出,一般不能寫入,即使機器掉電,這些數(shù)據(jù)也不會丟失。 ROM一般用于存放計算機的基本程序和數(shù)據(jù),如BIOS ROM 。ROM所存數(shù)據(jù),一般是裝入整機前事先寫好的,整機工作過程中只能讀出,而不像隨機存儲器那樣能快速地、方便地加以改寫。ROM所存數(shù)據(jù)穩(wěn)定,斷電后所存數(shù)據(jù)也不會改變,其物理外形一般是雙列直插式(DIP)的集成塊。
總的來說,ROM是在RAM的缺點下發(fā)展而來的,由于RAM掉電會丟數(shù)據(jù),所以人們考慮要把一些數(shù)據(jù)永久存起來,于是有了ROM,只能讀不能寫(比如計算機BIOS)。后來又發(fā)現(xiàn)ROM里的程序有時候需要改一改,于是又發(fā)展出可以寫入新數(shù)據(jù)的ROM,如EPROM、EEPROM、Flash等。 雖然已經(jīng)違背了ROM的本意——只能讀不能寫,但出于歷史原因,總體上還是稱為ROM 。
現(xiàn)如今已經(jīng)不能簡單的把一個存儲器說成是RAM或ROM,如電腦里的內(nèi)存條是內(nèi)存,有易失性,可讀可寫(RAM的特性);移動硬盤是外存,有非易失性(ROM的特性),可讀可寫(RAM的特性)。U盤是外存,有非易失性,可讀可寫。
目前ROM已經(jīng)基本采用EEPROM 和 Flash ROM作為存儲介質(zhì)。常用的FLASH存儲器主要包括NAND Flash和NOR Flash。它們在內(nèi)部結(jié)構(gòu)、性能特點和應用領域上有所不同。
-
NAND Flash:
Nand Flash
中的Nand
的意思是Not AND
(與非門
),意思就是該 Flash 的基礎單元就是與非門
,如下所示:- 結(jié)構(gòu):NAND Flash存儲器采用并行結(jié)構(gòu),將存儲單元組織為存儲單元陣列,每個存儲單元陣列包含多個頁,每頁包含多個塊,每塊包含多個扇區(qū)。這種結(jié)構(gòu)使得NAND Flash具有較高的存儲密度。
- 特點:
- 高存儲密度:NAND Flash的存儲密度通常比NOR Flash更高,適用于存儲大容量的數(shù)據(jù)。
- 快速讀取速度:NAND Flash具有較快的讀取速度,適用于快速讀取大量數(shù)據(jù)的應用。
- 擦寫耗時較長:NAND Flash的擦寫操作需要較長時間,通常 以塊為單位進行擦除 。
- 適用于存儲應用:由于高存儲密度和較低的成本,NAND Flash 廣泛應用于大容量存儲設備 ,如固態(tài)硬盤(SSD)、USB閃存驅(qū)動器和存儲卡等。
-
NOR Flash:
Nor Flash
中的Nor
的意思是Not OR
(或非門
),意思就是該 Flash 的基礎單元就是或非門
,如下所示:- 結(jié)構(gòu):NOR Flash存儲器采用并行結(jié)構(gòu),將存儲單元組織為存儲單元陣列,每個存儲單元陣列包含多個塊,每個塊包含多個扇區(qū)。這種結(jié)構(gòu)使得NOR Flash具有較快的讀取速度和較低的訪問延遲。
- 特點:
- 快速讀取速度:NOR Flash具有較快的讀取速度和較低的訪問延遲,適用于需要快速隨機訪問的應用。
- 擦寫操作較快:NOR Flash的擦寫操作相對較快, 可以按字節(jié)或按扇區(qū)進行擦除 。
- 存儲密度較低:NOR Flash的存儲密度相對較低,適用于存儲小容量的代碼和程序。
- 適用于代碼執(zhí)行:由于較快的讀取速度和隨機訪問能力,NOR Flash 廣泛用于嵌入式系統(tǒng)中存儲代碼、固件和啟動程序 等。
Flash ROM(Flash Read-Only Memory)和EEPROM(Electrically Erasable Programmable Read-Only Memory)都是非易失性存儲器,但它們在工作原理和應用方面存在一些區(qū)別。
-
擦除和編程方式:
- Flash ROM:Flash ROM的擦除操作是以塊為單位進行的,通常需要較長的時間。編程操作可以在單個字節(jié)或更小的存儲單元上進行。
- EEPROM:EEPROM可以以字節(jié)為單位進行擦除和編程。相比之下,EEPROM的擦除和編程操作更加靈活和精細。
-
存儲密度:
- Flash ROM:Flash ROM具有較高的存儲密度,可以容納大量的數(shù)據(jù)。這使得它在存儲大容量程序、固件和數(shù)據(jù)時非常有用。
- EEPROM:EEPROM的存儲密度相對較低,通常適用于存儲較小量的數(shù)據(jù),如配置信息、用戶數(shù)據(jù)等。
-
擦除速度:
- Flash ROM:Flash ROM的擦除速度相對較慢,通常以塊為單位進行擦除,需要較長的時間。
- EEPROM:EEPROM的擦除速度相對較快,可以以字節(jié)為單位進行擦除,因此可以更快地執(zhí)行擦除操作。
-
應用領域:
- Flash ROM:Flash ROM廣泛應用于固件存儲、BIOS存儲、固定數(shù)據(jù)存儲等需要大容量和快速訪問的應用中。
- EEPROM:EEPROM常用于存儲小容量的配置信息、校準數(shù)據(jù)、用戶設置等需要頻繁修改和維護的數(shù)據(jù)。
高速緩存(Cache)
Cache:高速緩沖存儲器,也是我們經(jīng)常遇到的概念,它位于CPU與內(nèi)存之間,是一個讀寫速度比內(nèi)存更快的存儲器。 當CPU向內(nèi)存中寫入或讀出數(shù)據(jù)時,這個數(shù)據(jù)也被存儲進高速緩沖存儲器中 。 當CPU再次需要這些數(shù)據(jù)時,CPU就從高速緩沖存儲器讀取數(shù)據(jù),而不是訪問較慢的內(nèi)存 ,當然,如需要的數(shù)據(jù)在Cache中沒有,CPU會再去讀取內(nèi)存中的數(shù)據(jù)。
RAM和ROM的區(qū)別
一般來說會比較難以理解RAM與ROM和平時所說的運行內(nèi)存和硬盤容量有什么關(guān)系,其實從一般意義上來說是一樣的,但從計算機和手機的角度來說又有一些區(qū)別:
從電腦來說一般比較好理解,RAM就是我們平時所說的運行內(nèi)存,它的確是隨時可讀寫的。因為CPU處理的數(shù)據(jù)都是以運行內(nèi)存為中介的。斷電后信息是不保存的。
那么對于ROM來說,是不是就是硬盤呢?不是說ROM只可以讀嗎?硬盤卻是可以修改的。的確,必須明確一點, RAM與ROM都是內(nèi)存 ,而 硬盤是外存 ,所以ROM不等于硬盤。計算機中的ROM主要是用來存儲一些系統(tǒng)信息,或者啟動程序BIOS程序,這些都是非常重要的,只可以讀一般不能修改,斷電也不會消失。
RAM和ROM相比,兩者的最大區(qū)別是RAM在斷電以后保存在上面的數(shù)據(jù)會自動消失,而ROM不會自動消失,可以長時間斷電保存。
在手機里面,RAM就是跟電腦一樣的運行內(nèi)存一樣;而ROM就跟硬盤掛上鉤了,手機中的ROM有一部分用來存儲系統(tǒng)信息,還有一些裝機軟件,剩余的大部分容量都是就是拿來作為硬盤用的,可讀可寫。
外存(secondary storage)/輔存(auxiliary storage)
外存和輔存表示的是同一含義,都是現(xiàn)在計算機系統(tǒng)中用于長期存儲數(shù)據(jù)和文件的存儲介質(zhì)。 外存中的數(shù)據(jù)需要先從外存加載到內(nèi)存中,然后才能被CPU讀取和處理 。
外存/輔存與內(nèi)存的區(qū)別是很大的,主要有:
- 訪問速度和延遲:
- 內(nèi)存:內(nèi)存(主存儲器)的訪問速度非???,CPU可以在幾個納秒的時間內(nèi)讀取或?qū)懭霐?shù)據(jù)。它具有低延遲和高帶寬,適合存儲正在執(zhí)行的程序和臨時數(shù)據(jù)。
- 外存:外存(輔助存儲器)的訪問速度較慢,通常以毫秒級別的時間來衡量。與內(nèi)存相比,外存的訪問延遲較高,需要更多的時間來讀取和寫入數(shù)據(jù)。
- 成本/容量:
- 內(nèi)存:內(nèi)存相對較昂貴,其成本較高。由于內(nèi)存的高速和性能優(yōu)勢,它是計算機系統(tǒng)中重要的組成部分,但存儲容量有限,且成本較高。
- 外存:外存的成本相對較低,比內(nèi)存更具經(jīng)濟性。外存的存儲容量通常比內(nèi)存大得多,可以容納大量的數(shù)據(jù),適合用于長期存儲和數(shù)據(jù)備份。
- 持久性:
- 內(nèi)存:內(nèi)存是一種易失性存儲器,意味著當計算機斷電時,內(nèi)存中的數(shù)據(jù)將會丟失。內(nèi)存中的數(shù)據(jù)需要定期保存到外存或其他非易失性存儲介質(zhì)中,以防止數(shù)據(jù)丟失。
- 外存:外存是一種非易失性存儲器,它可以持久地保存數(shù)據(jù)。即使在斷電情況下,外存中的數(shù)據(jù)也能夠保持不變。
另外需要注意的是,由于單片機是SOC,其內(nèi)部已經(jīng)把CPU、存儲器、I/O設備集成到了一塊小芯片上。單片機的內(nèi)存包括程序存儲器(通常是閃存或EEPROM)和數(shù)據(jù)存儲器(RAM)。程序存儲器用于存儲單片機的程序代碼,而數(shù)據(jù)存儲器用于存儲程序執(zhí)行期間的變量和數(shù)據(jù)。
磁盤存儲
- 磁盤是由盤片(platter)構(gòu)成的;
- 每個盤片如同切西瓜一樣被“切”成一塊一塊的扇面,同時沿著半徑的方向被劃分成了一組同心圓叫磁道(track);
- 每條磁道被扇面切成很多的扇形區(qū)域叫做扇區(qū)(sector), 扇區(qū)是從磁盤讀出和寫入信息的最小單位,包含相等數(shù)量的數(shù)據(jù)位,通常為512字節(jié);
- 不同盤片相同半徑的磁道所組成的圓柱稱為柱面(cylinder)。
磁盤的容量: 磁頭數(shù) × 磁道數(shù) × 每道扇區(qū)數(shù) × 每扇區(qū)字節(jié)數(shù)
固態(tài)硬盤
固態(tài)硬盤(Solid State Disk, SSD),由一個或多個閃存芯片和閃存翻譯層(flash translation layer)組成。
- 閃存芯片存儲內(nèi)容。
- 閃存翻譯層對邏輯塊的請求翻譯成對底層物理設備的訪問。
目前根據(jù)密度差異閃存顆粒會主要分為SLC、MLC、TLC、QLC、PLC(未面世)五種類型:
SLC(Single-Level Cell)
又稱為單層式儲存 ,即每單元存儲可1bit信息(1bit/cell)。一個蘿卜一個坑的存儲容量,這也意味著采用SLC顆粒的SSD容量注定不會太大,但除了這個“缺憾”之外,SLC的其他方面則要更加優(yōu)于其他類型的閃存顆粒。
SLC的擦寫壽命是5種顆粒中最長的,能夠達到約10萬次。另外SLC也是五種顆粒類型中讀寫速度最快、讀寫數(shù)據(jù)最精確、質(zhì)量最好同時造價也是最貴的顆粒,目前基本上只用于企業(yè)級高端固態(tài)硬盤中,也有極少部分高端消費級SSD在使用。
MLC(Multi-Level Cell)
又稱為雙層式儲存 ,即每單元存儲可2bit信息(2bit/cell)。兩個蘿卜一個坑的存儲容量,只能說比SLC好一點,但成本相對于SLC要大大降低。
但MLC的擦寫壽命要比SLC差不少,僅能夠達到約1萬次。且相較于SLC,MLC的讀寫速度、質(zhì)量、精確度都次于SLC,成本也要遠高于除SLC以外的其他顆粒,價格昂貴,目前多用于工業(yè)存儲中,不過隨著技術(shù)和消費水平的提升也有一些品牌會使用MLC到消費類產(chǎn)品上。
TLC(Trinary-Level Cell)
又稱為三層式儲存 ,即每單元存儲可3bit信息(3bit/cell)。到此可以看出這五種閃存顆粒每單元可存儲的信息是層層遞進的,都是在上一個的基礎上+1bit信息,容量越來越大。
TLC是目前最常見到的閃存顆粒,應用非常廣泛,其擦寫壽命能夠達到約1000次。雖然在數(shù)據(jù)上,TLC的讀寫速度、顆粒質(zhì)量以及壽命都不及SLC和MLC,但其成本要低得多,如果作為日常使用其實能完全滿足普通消費者的需求。目前TLC多用于市面上的中高端SSD中,比較受主流SSD的青睞。
QLC(Quad-Level Cell)
又稱為四層式儲存 ,即每單元存儲可4bit信息(4bit/cell)。其擦寫壽命最短,僅能夠達到150次,但存儲密度最大、成本也最低,優(yōu)勢還是很明顯的。目前主要被低端大容量的SSD使用,能夠為大容量的SSD帶來更長的使用壽命,足以供給一些消費者日常使用。
PLC(Penta-level cell)
又稱為五層式儲存 ,即每單元存儲可5bit信息(5bit/cell)。該閃存顆粒目前還沒有正式產(chǎn)品發(fā)布,但有希望在未來的幾年內(nèi)問世,相信能夠為SSD產(chǎn)品帶來更大的存儲空間和單元存儲更低的成本。不過PLC的推廣將很大受限于它的速度和壽命,還需進一步了解。文章來源:http://www.zghlxwxcb.cn/news/detail-523364.html
根據(jù)上述內(nèi)容可將閃存顆粒按照數(shù)據(jù)穩(wěn)定性、速度以及價格排序為SLC>MLC>TLC>QLC>PLC,容量則相反SLC<MLC<TLC<QLC<PLC。就目前來說主流消費級SSD品牌都在使用的是TLC閃存顆粒,雖然速度和壽命上不及使用SLC和MLC顆粒的SSD,但如果搭配上優(yōu)秀的主控以及高速接口,表現(xiàn)還是不俗的,再加上3D NAND技術(shù)讓存儲單元立體化,讓閃存顆粒容量倍增,降低了存儲成本也讓擦寫壽命大大延長,可以說運用了3D NAND技術(shù)的3D TLC顆粒實現(xiàn)了性能躍進。文章來源地址http://www.zghlxwxcb.cn/news/detail-523364.html
參考文獻
- 必知必會-存儲器層次結(jié)構(gòu) - 知乎
- 內(nèi)存層次結(jié)構(gòu) - 維基百科
- 內(nèi)存,RAM,ROM,Cache的區(qū)別與聯(lián)系_memorypageo.rom:orgin=0c00h.length 1000hpaoej??_一只青木呀的博客-CSDN博客
- 6 存儲器層次結(jié)構(gòu)
- What is Cache Memory? Cache Memory in Computers, Explained
- 存儲器分類 - 簡書
- 圖解RAM結(jié)構(gòu)和原理 - 知乎
- 【嵌入式基礎小知識】Nand Flash VS Nor Flash_機器靈魂注入師的博客-CSDN博客
- 存儲顆粒:SLC、MLC、TLC、QLC、PLC有什么區(qū)別?-中關(guān)村在線
到了這里,關(guān)于計算機存儲層次及常用存儲簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!