今天給大家總結一下我們常見的存儲器的一些區(qū)別;這些常見的存儲器在平時的學習和工作當中是經(jīng)常都會接觸的,如果我們對它們有一個非常熟悉的了解,對我們理解一些東西還是非常有幫助的。
一、從存儲器的層次展開講:
如下圖圖1所示,是在看深入理解計算機操作系統(tǒng)書里面講解到的存儲器層次結構圖:
圖1
當然這里涉及到的存儲器類型沒有那么多,我們今天主要來分享:RAM ROM flash NORflash Nandflash sram sdram ddr等常見存儲器,下面我們就來開始正式來分享了:
1、ram和rom:
ram(random access memory):它是一種隨機存儲器。存儲單元的內(nèi)容可以按需要來隨意取出或者存入,而且存取的速度與存儲單元的位置無關;同時它也有缺點,就是在斷電的時候,它里面保存的內(nèi)容全部會被丟失;它主要的作用就是存儲代碼和數(shù)據(jù)供CPU 在需要的時候調(diào)用;按照存儲信息的不同,我們又可以把它分為兩種類型的存儲器(下面會專門介紹這兩種存儲器,這里先不介紹):
靜態(tài)隨機存儲器(static ram,簡稱sram)
動態(tài)隨機存儲器(dynamic ram,簡稱dram)
rom(read-only memory):它是一種只讀存儲器,也就是說它只能讀出事先規(guī)定的存儲數(shù)據(jù),一旦存儲進去后,就不能對里面的數(shù)據(jù)進行修改了,而且它不會因為斷電了而丟失數(shù)據(jù)。
2、sram和sdram:
sram:它是一種靜態(tài)隨機存儲器(static ram,簡稱sram),一般的話,這種存儲器不需要刷新電路就能保存它內(nèi)部存儲的數(shù)據(jù)。它的特點是:讀寫速度非??欤悄壳白x寫最快的存儲設備了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩沖,三級緩沖(在我們上面的存儲器的層次結構可以看到。)。
dram:它是一種動態(tài)隨機存儲器(dynamic ram,簡稱dram),但是它與靜態(tài)隨機存儲器就不同了,動態(tài)隨機存取存儲器,需要不斷的刷新,才能保存數(shù)據(jù)。它的特點是:保留數(shù)據(jù)的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很多,計算機內(nèi)存就是DRAM的(內(nèi)存是用來存放當前正在使用的(即執(zhí)行中)的數(shù)據(jù)和程序,我們平常所提到的計算機的內(nèi)存指的是動態(tài)內(nèi)存(即DRAM),動態(tài)內(nèi)存中所謂的“動態(tài)”,指的是當我們將數(shù)據(jù)寫入DRAM后,經(jīng)過一段時間,數(shù)據(jù)會丟失,因此需要一個額外設電路進行內(nèi)存刷新操作)。
3、flash:flash存儲器又稱閃存,它結合了ROM和RAM的長處,不僅具備電子可擦除可編程(EEPROM)的性能,還不會斷電丟失數(shù)據(jù)同時可以快速讀取數(shù)據(jù)(NVRAM的優(yōu)勢),U盤和MP3里用的就是這種存儲器。在以往,嵌入式系統(tǒng)一直使用ROM(EPROM)作為它們的存儲設備,然而近年來Flash全面代替了ROM(EPROM)在嵌入式系統(tǒng)中的地位,它用作存儲Bootloader以及操作系統(tǒng)或者程序代碼,或者直接當硬盤使用(U盤)。而flash又被分為兩種類型:
NOR Flash
NADN Flash
這兩種flash應該是我們平時見的最多的存儲器了,下面我們來著重來看一下他們的區(qū)別:
?。?)性能比較:
任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進行,所以大多數(shù)情況下,在進行寫入操作之前必須先執(zhí)行擦除。NAND器件執(zhí)行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內(nèi)所有的位都寫為1。
由于擦除NOR器件時是以64~128KB的塊進行的,執(zhí)行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執(zhí)行相同的操作最多只需要4ms。
由此可見:
NOR的讀速度比NAND稍快一些。
但是NAND的寫入速度比NOR快很多。
NAND的4ms擦除速度遠比NOR的5s快。
大多數(shù)寫入操作需要先進行擦除操作。
NAND的擦除單元更小,相應的擦除電路更少。
?。?)接口差別:
NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個字節(jié)。
NAND器件使用復雜的I/O口來串行地存取數(shù)據(jù),各個產(chǎn)品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數(shù)據(jù)信息。
NAND讀和寫操作采用512字節(jié)的塊,這一點有點像硬盤管理此類操作,很自然地,基于NAND的存儲器就可以取代硬盤或其他塊設備。
?。?)成本上:
NOR Flash的讀取和我們常見的SDRAM的讀取是一樣,用戶可以直接運行裝載在NOR FLASH里面的代碼,這樣可以減少SRAM的容量從而節(jié)約了成本。
NAND Flash沒有采取內(nèi)存的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個字節(jié),采用這種技術的Flash比較廉價。用戶不能直接運行NAND Flash上的代碼,因此好多使用NAND Flash的開發(fā)板除了使用NAND Flah以外,還加上了一塊小的NOR Flash來運行啟動代碼。
一般小容量的用NOR Flash,因為其讀取速度快,多用來存儲操作系統(tǒng)等重要信息,而大容量的用NAND FLASH,最常見的NAND FLASH應用是嵌入式系統(tǒng)采用的DOC(Disk On Chip)和我們通常用的“閃盤”,可以在線擦除。
?。?)易于使用:
可以非常直接地使用基于NOR的閃存,可以像其他存儲器那樣連接,并可以在上面直接運行代碼。
由于nandflash需要I/O接口,所以要復雜得多。各種NAND器件的存取方法因廠家而異。
在使用NAND器件時,必須先寫入驅(qū)動程序,才能繼續(xù)執(zhí)行其他操作。向NAND器件寫入信息需要相當?shù)募记?,因為設計師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進行虛擬映射。
?。?)尋址:
NAND每次讀取數(shù)據(jù)時都是指定塊地址、頁地址、列地址,列地址就是讀的頁內(nèi)起始地址,每次都是先將數(shù)據(jù)讀入頁緩沖區(qū)內(nèi),再 由I/O輸入地址 在緩沖區(qū)內(nèi)尋址,其實這里列地址,只是指定起始地址的作用。NAND是 以頁 為基本單位 操作的。寫入數(shù)據(jù)也是首先在頁面緩沖區(qū)內(nèi)緩沖,數(shù)據(jù)首先寫入這里,再寫命令后,再統(tǒng)一寫入頁內(nèi)。因此NAND頁緩沖區(qū)的作用就是,保證芯片的按頁的讀、寫操作,是I/O操作與芯片操作的接口、橋梁,因為數(shù)據(jù)是從I/O輸入的,又是每次一個字節(jié),因此需要緩沖。即使每次改寫一個字節(jié),都要重寫整個頁,因為它只支持頁寫,而且如果頁內(nèi)有未擦除的部分,則無法編程,在寫入前必須保證頁是空的。
NOR的 讀、寫 是字節(jié)為基本單位操作的,但擦除 是以扇區(qū)操作的。綜上所述在芯片操作上,NAND要比NOR快很多,因為NAND是頁操作的而NOR是字節(jié)操作的。
?。?)應用:
NAND 正是基于這種構造:塊、頁,無法字節(jié)尋址,頁讀寫本身就靠的是內(nèi)部復雜的串、并行轉(zhuǎn)換 ,因此也沒有很多地址引腳,所以其地址、數(shù)據(jù)線共用,所以容量可以做的很大 。 NOR 是和SRAM一樣的可隨機存儲的,也不需要驅(qū)動,因此,其地址就有限,所以容量普遍較小,其實是受限于地址線。 基于以上幾點,
在工業(yè)領域,NOR 用的較多,特別是程序存儲,少量數(shù)據(jù)存儲等。
在消費領域,大量數(shù)據(jù)存儲,NAND較多。
責任編輯人:CC
評論
查看更多