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