具體的工作過程是這樣的:
一個DRAM的存儲單元存儲的是0還是1取決於電容是否有電荷,有電荷代表1,無電荷代表0。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,這就是數據丟失的原因;刷新操作定期對電容進行檢查,若電量大於滿電量的1/2,則認為其代表1,並把電容充滿電;若電量小於1/2,則認為其代表0,並把電容放電,藉此來保持數據的連續性。
從一有計算機開始,就有內存。內存發展到今天也經歷了很多次的技術改進,從最早的DRAM一直到FPMDRAM、EDODRAM、SDRAM等,內存的速度一直在提高且容量也在不斷的增加。
靜態RAM(Static RAM/SRAM),SRAM速度非常快,是目前讀寫最快的存儲設備了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩沖。
另一種稱為動態RAM(Dynamic RAM/DRAM),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加速卡的像素渲染能力。
為便於使 用和大批量生產,進一步發展了可編程只讀存儲器(PROM)、可擦可編程序只讀存儲器(EPROM)和電可擦可編程只讀存儲器(EEPROM)。EPROM需用紫外光長時間照射才能擦除,使用很不方便。20世紀 80 年代制出的 EEPROM ,克服了EPROM的不足,但集成度不高 ,價格較貴。於是又開發出一種新型的存儲單元結構同 EPROM 相似的快閃存儲器 。其集成度高、功耗低 、體積小 ,又能在線快速擦除 ,因而獲得飛速發展。
簡單地說,在計算機中,RAM 、ROM都是數據存儲器。RAM是隨機存取存儲器,它的特點是易揮發性,即掉電失憶。ROM通常指固化存儲器(一次寫入,反復讀取),它的特點與RAM 相反。ROM又分一次性固化、光擦除和電擦除重寫兩種類型。
ROM在系統停止供電的時候仍然可以保持數據,而RAM通常都是在掉電之後就丟失數據,典型的RAM就是計算機的內存。
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。
DRAM——–動態隨即存取器,需要不斷的刷新,才能保存數據,而且是行列地址復用的,許多都有頁模式
SRAM——–靜態的隨機存儲器,加電情況下,不需要刷新,數據不會丟失,而且一般不是行列地址復用的
SDRAM——-同步的DRAM,即數據的讀寫需要時鐘來同步
問題2:為什麼DRAM要刷新,SRAM則不需要? 答:
這是由RAM的設計類型決定的,DRAM用了一個T和一個RC電路,導致電容會漏電和緩慢放電,所以需要經常刷新來保存數據
問題3:為什麼使用DRAM比較多、而使用SRAM卻很少?答:
1)因為制造相同容量的SRAM比DRAM的成本高的多,正因為如此,才使其發展受到了限制。因此目前SRAM基本上只用於CPU內部的一級緩存以及內置的二級緩存。僅有少量的網絡服務器以及路由器上能夠使用SRAM。
2)存儲單元結構不同導致了容量的不同:一個DRAM存儲單元大約需要一個晶體管和一個電容(不包括行讀出放大器等),而一個SRAM存儲單元大約需要六個晶體管。DRAM和SDRAM由於實現工藝問題,容量較SRAM大,但是讀寫速度不如SRAM。
問題4:用得最多的DRAM有什麼特點呢?它的工藝是什麼情況?(通常所說的內存就是DRAM) 答:
1)DRAM需要進行周期性的刷新操作,我們不應將SRAM與只讀存儲器(ROM)和Flash Memory相混淆,因為SRAM是一種易失性存儲器,它只有在電源保持連續供應的情況下才能夠保持數據。“隨機訪問”是指存儲器的內容可以以任何順序訪問,而不管前一次訪問的是哪一個位置。
2)DRAM和SDRAM由於實現工藝問題,容量較SRAM大。但是讀寫速度不如SRAM,但是現在,SDRAM的速度也已經很快了,時鐘好像已經有150兆的了。那麼就是讀寫周期小於10ns了。
3)SDRAM雖然工作頻率高,但是實際吞吐率要打折扣。以PC133為例,它的時鐘周期是7.5ns,當CAS latency=2 時,它需要12個周期完成8個突發讀操作,10個周期完成8個突發寫操作。不過,如果以交替方式訪問Bank,SDRAM可以在每個周期完成一個讀寫操作(當然除去刷新操作)。
4)其實現在的主流高速存儲器是SSRAM(同步SRAM)和SDRAM(同步DRAM)。目前可以方便買到的SSRAM最大容量是8Mb/片,最大工作速度是166MHz;可以方便買到的SDRAM最大容量是128Mb/片,最大工作速度是133MHz。
問題5:用得比較少但速度很快,通常用於服務器cache的SRAM有什麼特點呢?答:
1)SRAM是靜態的,DRAM或SDRAM是動態的,靜態的是用的雙穩態觸發器來保存信息,而動態的是用電子,要不時的刷新來保持。SRAM是Static Random Access Memory的縮寫,中文含義為靜態隨機訪問存儲器,它是一種類型的半導體存儲器。“靜態”是指只要不掉電,存儲在SRAM中的數據就不會丟失。
2)SRAM其實是一種非常重要的存儲器,它的用途廣泛。SRAM的速度非常快,在快速讀取和刷新時能夠保持數據完整性。SRAM內部采用的是雙穩態電路的形式來存儲數據。所以SRAM的電路結構非常復雜。
3)從晶體管的類型分,SRAM可以分為雙極性與CMOS兩種。從功能上分,SRAM可以分為異步SRAM和同步SRAM(SSRAM)。異步SRAM的訪問獨立於時鐘,數據輸入和輸出都由地址的變化控制。同步SRAM的所有訪問都在時鐘的上升/下降沿啟動。地址、數據輸入和其它控制信號均於時鐘信號相關。
最後要說明的一點:
SRAM不應該與SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),這與SRAM是完全不同的。SRAM也不應該與PSRAM相混淆,PSRAM是一種偽裝成SRAM的DRAM。
許多業內人士也搞不清楚NAND閃存技術相對於NOR技術的優越之處,因為大多數情況下閃存只是用來存儲少量的代碼,這時NOR閃存更適合一些。而NAND則是高數據存儲密度的理想解決方案。
一、存儲區別比較
NOR的特點是芯片內執行(XIP, execute In Place),這樣應用程序可以接在flash閃存內運行,不必再把代碼讀到系統RAM中。
NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於Flash的管理和需要特殊的系統接口。
二、性能比較
Flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何Flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為0。
由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多只需要4ms。
執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,對於給定的一套寫入操作(尤其是更新小文件時更多的擦除操作必須在基於NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。
NOR的讀速度比NAND稍快一些。
NAND的寫入速度比NOR快很多。
NAND的4ms擦除速度遠比NOR的5s快。
大多數寫入操作需要先進行擦除操作。
NAND的擦除單元更小,相應的擦除電路更少。
三、接口差別
NOR Flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。
NAND器件使用復雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。
NAND讀和寫操作采用512字節的塊,這一點有點像硬盤管理此類操作,很自然地,基於NAND的存儲器就可以取代硬盤或其他塊設備。
四、容量和成本
NAND Flash的單元尺寸幾乎是NOR器件的一半,由於生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。
NOR Flash占據了容量為1~16MB閃存市場的大部分,而NAND Flash只是用在8~128MB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合於數據存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。
五、可靠性和耐用性
采用Flahs介質時一個需要重點考慮的問題是可靠性。對於需要擴展MTBF的系統來說,Flash是非常合適的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性。
六、壽命(耐用性)
在NAND閃存中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND存儲器除了具有10比1的塊擦除周期優勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間內的刪除次數要少一些。
七、位交換問題
所有flash器件都受位交換現象的困擾。在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特位會發生反轉或被報告反轉了。
一位的變化可能不很明顯,但是如果發生在一個關鍵文件上,這個小小的故障可能導致系統停機。如果只是報告有問題,多讀幾次就可能解決了。
當然,如果這個位真的改變了,就必須采用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉的問題更多見於NAND閃存,NAND的供應商建議使用NAND閃存的時候,同時使用EDC/ECC算法。
這個問題對於用NAND存儲多媒體信息時倒不是致命的。當然,如果用本地存儲設備來存儲操作系統、配置文件或其他敏感信息時,必須使用EDC/ECC系統以確保可靠性。
八、壞塊處理
NAND器件中的壞塊是隨機分布的。以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不劃算。
NAND器件需要對介質進行初始化掃描以發現壞塊,並將壞塊標記為不可用。在已制成的器件中,如果通過可靠的方法不能進行這項處理,將導致高故障率。 易於使用可以非常直接地使用基於NOR的閃存,可以像其他存儲器那樣連接,並可以在上面直接運行代碼。
由於需要I/O接口,NAND要復雜得多。各種NAND器件的存取方法因廠家而異。
在使用NAND器件時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND器件寫入信息需要相當的技巧,因為設計師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進行虛擬映射。
九.軟件支持
當討論軟件支持的時候,應該區別基本的讀/寫/擦操作和高一級的用於磁盤仿真和閃存管理算法的軟件,包括性能優化。
在NOR器件上運行代碼不需要任何的軟件支持,在NAND器件上進行同樣操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND和NOR器件在進行寫入和擦除操作時都需要MTD。
使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用於NOR器件的更高級軟件,這其中包括M-System的TrueFFS驅動,該驅動被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所采用。
驅動還用於對DiskOnChip產品進行仿真和NAND閃存的管理,包括糾錯、壞塊處理和損耗。
itxiebo
20160502