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