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