相信有很多人都對(duì)計(jì)算機(jī)里的各種存儲(chǔ)器(ROM、RAM、FLASH 等等)傻傻分不清,就會(huì)存在,內(nèi)存條是 dram 還是 nand?nand flash 和 nor flash 的區(qū)別又是什么?程序運(yùn)行是在DRAM還是 NOR FLASH?ram 和 rom 的區(qū)別?等等的疑問。
從 IT 小白到資深工程師都會(huì)存在這種現(xiàn)象。本文將根據(jù)個(gè)人理解,從存儲(chǔ)器與 CPU 的接口、程序運(yùn)行的角度,系統(tǒng)而詳細(xì)介紹各種存儲(chǔ)器的分類與用途,從而讓讀者深刻的認(rèn)識(shí)并區(qū)分各種存儲(chǔ)器。
ROM
ROM 是只讀存儲(chǔ)器(Read-Only Memory)的簡(jiǎn)稱,是一種只能讀出事先所存數(shù)據(jù)的固態(tài)半導(dǎo)體存儲(chǔ)器,部分擁有 CPU 的總線接口,可以執(zhí)行代碼(需要配合RAM,因?yàn)槌绦虻膱?zhí)行過程肯定有寫操作的)。這是很早期的定義了,現(xiàn)今 ROM 的概念已經(jīng)非常廣了,通常掉電后數(shù)據(jù)不會(huì)消失的半導(dǎo)體存儲(chǔ)器都泛稱為 ROM 了。比如手機(jī)參數(shù)里所說的 ROM 通常就是指 NAND FLASH 類存儲(chǔ)器。但這些 ROM 基本上都是不支持執(zhí)行代碼的。
NAND FLASH
Nand FLASH 是目前市面上的兩種主流的非易失性閃存技術(shù)之一,支持掉電保存數(shù)據(jù),具有容量較大,改寫速度快的優(yōu)點(diǎn)。但不能通過 CPU 總線隨機(jī)訪問,依賴 NAND FLASH 控制器訪問,所以不能直接執(zhí)行程序。通常作為廣義上的 ROM 來使用。
NOR FLASH
NOR FLASH 和 Nand FLASH 一樣,是兩種主流的非易失性閃存技術(shù)之一,同樣支持掉電保存數(shù)據(jù)。相對(duì)于 NAND FLASH,NOR FLASH 有類似于RAM的接口,可以通過 CPU 總線隨機(jī)訪問,所以可以作為傳統(tǒng)的 ROM 直接執(zhí)行程序,不過也是需要與RAM配合,因?yàn)?NOR FLASH 不支持隨機(jī)寫操作。NOR FLASH 的成本較高,在容量小的時(shí)候收益才較大。
SRAM
靜態(tài)隨機(jī)存取存儲(chǔ)器(Static Random-Access Memory,SRAM)是隨機(jī)存取存儲(chǔ)器中的一種。所謂的“靜態(tài)”,是指這種存儲(chǔ)器只要保持通電,里面儲(chǔ)存的數(shù)據(jù)就可以恒常保持,掉電還是會(huì)消失的。這是性能十分優(yōu)秀的RAM,但價(jià)格較高,一般用在 CPU 內(nèi)部做高速緩存(cache),或是起步石。如三星的 S3C2440 內(nèi)部就有 16Kb 的指令緩存、16Kb 的數(shù)據(jù)緩存和 4Kb 的內(nèi)部RAM(起步石)。
DRAM
動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(Dynamic Random Access Memory),是如今最為常見的系統(tǒng)內(nèi)存 RAM(無論是個(gè)人電腦還是智能手機(jī))。它相對(duì)于SRAM,在通電的情況下,也只能將數(shù)據(jù)保持很短的時(shí)間,為了保持?jǐn)?shù)據(jù)穩(wěn)定,所以必須隔一段時(shí)間就要對(duì)存儲(chǔ)單元刷新(refresh)一次,如果存儲(chǔ)單元沒有被刷新,那么存儲(chǔ)的數(shù)據(jù)就會(huì)丟失。
SDRAM
同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Synchronous Dynamic Random Access Memory),它與DRAM類似,只是多了一個(gè)同步(Synchronous)。同步是指內(nèi)存工作需要同步時(shí)鐘,內(nèi)部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準(zhǔn);動(dòng)態(tài)是指存儲(chǔ)陣列需要不斷的刷新來保證數(shù)據(jù)不丟失;隨機(jī)是指數(shù)據(jù)不是線性依次存儲(chǔ),而是自由指定地址進(jìn)行數(shù)據(jù)讀寫。
程序的執(zhí)行與存儲(chǔ)器的關(guān)系
最后再從程序執(zhí)行的角度來區(qū)分以上各種存儲(chǔ)器。首先,程序的執(zhí)行有取指令、分析指令和執(zhí)行指令這三個(gè)過程。取指令的過程必然有按順序取指令和跳躍取指令這兩種方式的,那么在程序執(zhí)行過程中,指令的存儲(chǔ)器就必須是支持隨機(jī)讀取的。而執(zhí)行指令這個(gè)過程則必然會(huì)有隨機(jī)寫這一需求的。
那么,以上各種存儲(chǔ)器的差別就很明顯了。
1、在程序沒有被執(zhí)行的時(shí)候,程序可以存在所有支持掉電保存數(shù)據(jù)的存儲(chǔ)器(ROM、NAND FLASH、NOR FLASH)。當(dāng)程序需要被執(zhí)行的時(shí)候再將其加載到可以執(zhí)行程序的存儲(chǔ)器中。
2、當(dāng)程序執(zhí)行時(shí),
(1)很明顯各種 RAM(SRAM、DRAM、SDRAM)都是可以完全的支持程序執(zhí)行的,因?yàn)樗鼈兌际侵С蛛S機(jī)讀/寫的。
(2)而對(duì)于擁有總線接口的 ROM 和 NOR FLASH 來說則不能完全支持程序的執(zhí)行了,因?yàn)樗鼈冎恢С蛛S機(jī)讀,而不支持隨機(jī)寫。所以,要想在程序執(zhí)行時(shí)將代碼存在 ROM 或者 NOR FLASH,則需要 RAM 的配合。代碼指令存在 ROM 或 NOR FLASH 上執(zhí)行,而需要寫的存儲(chǔ)空間則安排在 RAM,如此,也就可以在 ROM 和 NOR FLASH 上執(zhí)行程序了。
編輯:hfy
-
DRAM
+關(guān)注
關(guān)注
40文章
2343瀏覽量
185182 -
sram
+關(guān)注
關(guān)注
6文章
782瀏覽量
115676 -
Nand flash
+關(guān)注
關(guān)注
7文章
242瀏覽量
40550 -
隨機(jī)存取存儲(chǔ)器
+關(guān)注
關(guān)注
0文章
45瀏覽量
9077
發(fā)布評(píng)論請(qǐng)先 登錄
隨機(jī)訪問存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)的區(qū)別

評(píng)論