內存工作原理:
內存是用來存放當前正在使用的(即執行中)的數據和程序,我們平常所提到的計算機的內存指的是動態內存(即DRAM),動態內存中所謂的"動態",指的是當我們將數據寫入DRAM后,經過一段時間,數據會丟失,因此需要一個額外設電路進行內存刷新操作。具體的工作過程是這樣的:一個DRAM的存儲單元存儲的是0還是1取決于電容是否有電荷,有電荷代表1,無電荷代表0。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,這就是數據丟失的原因;刷新操作定期對電容進行檢查,若電量大于滿電量的1/2,則認為其代表1,并把電容充滿電;若電量小于1/2,則認為其代表0,并把電容放電,藉此來保持數據的連續性 。
ROM和RAM指的都是半導體存儲器,ROM是Read Only Memory的縮寫,RAM是Random Access Memory的縮寫。
ROM在系統停止供電的時候仍然可以保持數據,而RAM通常都是在掉電之后就丟失數據,典型的RAM就是計算機的內存。
RAM主要分為兩類,一類是靜態RAM(static RAM/SRAM)。另一類是動態RAM(Dynamic RAM/DRAM)。
RAM
SRAM速度非常快,是目前讀寫最快的存儲設備了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩沖。利用寄存器來存儲信息,所以一旦掉電,資料就會全部丟失,只要供電,它的資料就會一直存在,不需要動態刷新,所以叫靜態隨機存儲器。
DRAM保留數據的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很多,計算機內存就是DRAM的。 DRAM分為很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,這里介紹其中的一種DDR RAM。
DDR RAM(Date-Rate RAM)也稱作DDR SDRAM,是雙倍速率同步動態隨機存儲器的意思。這種改進型的RAM和SDRAM是基本一樣的,不同之處在于它可以在一個時鐘讀寫兩次數據,這樣就使得數據傳輸速度加倍了。這是目前電腦中用得最多的內存,而且它有著成本優勢,事實上擊敗了Intel的另外一種內存標準-Rambus DRAM。在很多高端的顯卡上,也配備了高速DDR RAM來提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。
SDRAM,即Synchronous DRAM(同步動態隨機存儲器),曾經是PC電腦上最為廣泛應用的一種內存類型,即便在今天SDRAM仍舊還在市場占有一席之地。既然是“同步動態隨機存儲器”,那就代表著它的工作速度是與系統總線速度同步的。SDRAM內存又分為PC66、PC100、PC133等不同規格,而規格后面的數字就代表著該內存最大所能正常工作系統總線速度,比如PC100,那就說明此內存可以在系統總線為100MHz的電腦中同步工作。
PSRAM,假靜態隨機存儲器。具有一個單晶體管的DRAM儲存格,但它具有類似SRAM的穩定接口,內部的DRAM架構給予PSRAM一些比low-power 6TSRAM優異的長處,例如體積更為輕巧,售價更具競爭力。
基本原理:PSRAM就是偽SRAM,內部的內存顆粒跟SDRAM的顆粒相似,但外部的接口跟SRAM相似,不需要SDRAM那樣復雜的控制器和刷新機制,PSRAM的接口跟SRAM的接口是一樣的。
PSRAM容量有8Mbit,16Mbit,32Mbit等等,容量沒有SDRAM那樣密度高,但肯定是比SRAM的容量要高很多的,速度支持突發模式,并不是很慢,Hynix,Coremagic, WINBOND .MICRON. CY等廠家都有供應,價格只比相同容量的SDRAM稍貴一點點,比SRAM便宜很多。
ROM
PROM是可編程的ROM,主要分為兩類,PROM和EPROM,PROM是一次性的,EEPROM是通過電子擦出,價格很高,寫入時間很長,寫入很慢。
FLASH
存儲器又稱閃存,它結合了ROM和RAM的長處,不僅具備電子可擦除可編程(EEPROM)的性能,還不會斷電丟失數據同時可以快速讀取數據(NVRAM的優勢),U盤和MP3里用的就是這種存儲器。在過去的20年里,嵌入式系統一直使用ROM(EPROM)作為它們的存儲設備,然而近年來Flash全面代替了ROM(EPROM)在嵌入式系統中的地位,用作存儲Bootloader以及操作系統或者程序代碼或者直接當硬盤使用(U盤)。
目前Flash主要有兩種NOR Flash和NADN Flash.
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)和我們通常用的"閃盤",可以在線擦除。目前市面上的FLASH 主要來自Intel,AMD,Fujitsu和Toshiba,而生產NAND Flash的主要廠家有Samsung和Toshiba。
比較
1、性能比較:
flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為1。
由于擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多只需要4ms。執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,對于給定的一套寫入操作(尤其是更新小文件時),更多的擦除操作必須在基于NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素:
● NOR的讀速度比NAND稍快一些。
● NAND的寫入速度比NOR快很多。
● NAND的4ms擦除速度遠比NOR的5s快。
● 大多數寫入操作需要先進行擦除操作。
● NAND的擦除單元更小,相應的擦除電路更少。
(注:NOR FLASH SECTOR擦除時間視品牌、大小不同而不同,比如,4M FLASH,有的SECTOR擦除時間為60ms,而有的需要最大6s。)
2、接口差別:
NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。
NAND器件使用復雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。
NAND讀和寫操作采用512字節的塊,這一點有點像硬盤管理此類操作,很自然地,基于NAND的存儲器就可以取代硬盤或其他塊設備。
3、容量和成本:
NAND flash的單元尺寸幾乎是NOR器件的一半,由于生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。
NOR flash占據了容量為1~16MB閃存市場的大部分,而NAND flash只是用在8~128MB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合于數據存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。
4、可靠性和耐用性:
采用flahs介質時一個需要重點考慮的問題是可靠性。對于需要擴展MTBF的系統來說,Flash是非常合適的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性。
A) 壽命(耐用性)
在NAND閃存中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND存儲器除了具有10比1的塊擦除周期優勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間內的刪除次數要少一些。
B) 位交換
所有flash器件都受位交換現象的困擾。在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特(bit)位會發生反轉或被報告反轉了。一位的變化可能不很明顯,但是如果發生在一個關鍵文件上,這個小小的故障可能導致系統停機。
如果只是報告有問題,多讀幾次就可能解決了。當然,如果這個位真的改變了,就必須采用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉的問題更多見于NAND閃存,NAND的供應商建議使用NAND閃存的時候,同時使用EDC/ECC算法。這個問題對于用NAND存儲多媒體信息時倒不是致命的。當然,如果用本地存儲設備來存儲操作系統、配置文件或其他敏感信息時,必須使用EDC/ECC系統以確保可靠性。
C) 壞塊處理
NAND器件中的壞塊是隨機分布的。以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不劃算。NAND器件需要對介質進行初始化掃描以發現壞塊,并將壞塊標記為不可用。在已制成的器件中,如果通過可靠的方法不能進行這項處理,將導致高故障率。
5、易于使用:
可以非常直接地使用基于NOR的閃存,可以像其他存儲器那樣連接,并可以在上面直接運行代碼。
由于需要I/O接口,NAND要復雜得多。各種NAND器件的存取方法因廠家而異。
在使用NAND器件時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND器件寫入信息需要相當的技巧,因為設計師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進行虛擬映射。
6、軟件支持:
當討論軟件支持的時候,應該區別基本的讀/寫/擦操作和高一級的用于磁盤仿真和閃存管理算法的軟件,包括性能優化。在NOR器件上運行代碼不需要任何的軟件支持,在NAND器件上進行同樣操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND和NOR器件在進行寫入和擦除操作時都需要MTD。使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用于NOR器件的更高級軟件,這其中包括M-System的TrueFFS驅動,該驅動被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所采用。驅動還用于對DiskOnChip產品進行仿真和NAND閃存的管理,包括糾錯、壞塊處理和損耗平衡。
NOR FLASH的主要供應商是INTEL ,MICRO等廠商,曾經是FLASH的主流產品,但現在被NAND FLASH擠的比較難受。它的優點是可 以直接從FLASH中運行程序,但是工藝復雜,價格比較貴。
NAND FLASH的主要供應商是SAMSUNG和東芝,在U盤、各種存儲卡、MP3播放器里面的都是這種FLASH,由于工藝上的不同,它比NOR FLASH擁有更大存儲容量,而且便宜。但也有缺點,就是無法尋址直接運行程序,只能存儲數據。另外NAND FLASH非常容易出現壞區,所以需要有校驗的算法。
在掌上電腦里要使用NAND FLASH 存儲數據和程序,但是必須有NOR FLASH來啟動。除了SAMSUNG處理器,其他用在掌上電腦的主流處理器還不支持直接由NAND FLASH 啟動程序。因此,必須先用一片小的NOR FLASH 啟動機器,在把OS等軟件從NAND FLASH 載入SDRAM中運行才行,挺麻煩的。
評論
查看更多