存儲器類型分析本文為設計類容為存儲器類型分析,大部分資料來源於網絡,經過個人整理形成本文檔,希望對大家有所幫助。-- flyownway
存儲器介紹
存儲器(Memory)是計算機系統中的記憶設備,用來存放程序和數據。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。
按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。
外存通常是磁性介質或光盤等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用於暫時存放程序和數據,關閉電源或斷電,數據會丟失。
構成
構成存儲器的存儲介質,目前主要采用半導體器件和磁性材料。存儲器中最小的存儲單位就是一個雙穩態半導體電路或一個CMOS晶體管或磁性材料的存儲元,它可存儲一個二進制代碼。由若干個存儲元組成一個存儲單元,然后再由許多存儲單元組成一個存儲器。 一個存儲器包含許多存儲單元,每個存儲單元可存放一個字節(按字節編址)。每個存儲單元的位置都有一個編號,即地址,一般用十六進制表示。一個存儲器中所有存儲單元可存放數據的總和稱為它的存儲容量。假設一個存儲器的地址碼由20位二進制數(即5位十六進制數)組成,則可表示2的20次方,即1M個存儲單元地址。每個存儲單元存放一個字節,則該存儲器的存儲容量為1MB。
分類按存儲介質分
半導體存儲器:用半導體器件組成的存儲器。
磁表面存儲器:用磁性材料做成的存儲器。
按存儲方式分 隨機存儲器:任何存儲單元的內容都能被隨機存取,且存取時間和存儲單元的物理位置無關。
順序存儲器:只能按某種順序來存取,存取時間和存儲單元的物理位置有關。
按存儲器的讀寫功能分 只讀存儲器(ROM):存儲的內容是固定不變的,只能讀出而不能寫入的半導體存儲器。
隨機讀寫存儲器(RAM):既能讀出又能寫入的半導體存儲器。
按信息的可保存性分非永久記憶的存儲器:斷電后信息即消失的存儲器。
永久記憶性存儲器: 斷電后仍能保存信息的存儲器。
按存儲器用途分 根據存儲器在計算機系統中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。
為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,目前通常采用多級存儲器體系結構,即使用高速緩沖存儲器、主存儲器和外存儲器。
名稱 用途 特點
高速緩沖存儲器 Cache 高速存取指令和數據 存取速度快,但存儲容量小
主存儲器 內存 存放計算機運行期間的大量程序和數據 存取速度較快,存儲容量不大
外存儲器 外存 存放系統程序和大型數據文件及數據庫 存儲容量大,位成本低
功能
存儲器 功能 尋址方式 掉電后 說 明
隨機存取存儲器(RAM) 讀、寫 隨機尋址 數據丟失
只讀存儲器(ROM) 讀 隨機尋址 數據不丟失 工作前寫入數據
閃存(Flash Memory) 讀、寫 隨機尋址 數據不丟失
先進先出存儲器(FIFO) 讀、寫 順序尋址 數據丟失
先進后出存儲器(FILO) 讀、寫 順序尋址 數據丟失
各類存儲器
RAM
RAM(random access memory,隨機存取存儲器)。存儲單元的內容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關的存儲器。這種存儲器在斷電時將丟失其存儲內容,故主要用於存儲短時間使用的程序。 按照存儲信息的不同,隨機存儲器又分為靜態隨機存儲器(Static RAM,SRAM)和動態隨機存儲器(Dynamic RAM,DRAM)。
SRAMS
RAM(Static RAM,靜態隨機存儲器),不需要刷新電路,數據不會丟失,而且,一般不是行列地址復用的。但是他集成度比較低,不適合做容量大的內存,一般是用在處理器的緩存里面。像S3C2440的ARM9處理器里面就有4K的SRAM用來做CPU啟動時用的。
SRAM其實是一種非常重要的存儲器,它的用途廣泛。SRAM的速度非常快,在快速讀取和刷新時能夠保持數據完整性。SRAM內部采用的是雙穩態電路的形式來存儲數據。所以SRAM的電路結構非常復雜。制造相同容量的SRAM比DRAM的成本高的多。正因為如此,才使其發展受到了限制。因此目前SRAM基本上只用於CPU內部的一級緩存以及內置的二級緩存。僅有少量的網絡服務器以及路由器上能夠使用SRAM。
DRAM
Dynamic RAM,動態隨機存取存儲器,每隔一段時間就要刷新一次數據,才能保存數據。而且是行列地址復用的,許多都有頁模式。SDRAM是其中的一種。
SDRAM
SDRAM(Synchronous DRAM,同步動態隨機存儲器),即數據的讀寫需要時鍾來同步。其存儲單元不是按線性排列的,是分頁的。
DRAM和SDRAM由於實現工藝問題,容量較SRAM大。但是讀寫速度不如SRAM。
一般的嵌入式產品里面的內存都是用的SDRAM。電腦的內存也是用的這種RAM,叫DDR SDRAM,其集成度非常高,因為是動態的,所以必須有刷新電路,每隔一段時間必須得刷新數據。
ROM
Read-Only Memory,只讀存儲器的總稱。
在微機的發展初期,BIOS都存放在ROM(Read Only Memory,只讀存儲器)中。ROM內部的資料是在ROM的制造工序中,在工廠里用特殊的方法被燒錄進去的,其中的內容只能讀不能改,一旦燒錄進去,用戶只能驗證寫入的資料是否正確,不能再作任何修改。如果發現資料有任何錯誤,則只有舍棄不用, 重新訂做一份。ROM是在生產線上生產的,由於成本高,一般只用在大批量應用的場合。
PROM
可編程只讀存儲器,只能寫一次,寫錯了就得報廢,現在用得很少了,好像那些成本比較低的OPT單片機里面用的就是這種存儲器吧。
EPROM
EPROM(Erasable Programmable ROM,可擦除可編程ROM)芯片可重復擦除和寫入,解決了PROM芯片只能寫入一次的弊端。
EPROM芯片有一個很明顯的特征,在其正面的陶瓷封裝上,開有一個玻璃窗口,透過該窗口,可以看到其內部的集成電路,紫外線透過該孔照射內部芯片就可以擦除其內的數據,完成芯片擦除的操作要用到EPROM擦除器。
EPROM內資料的寫入要用專用的編程器,並且往芯片中寫內容時必須要加一定的編程電壓(VPP=12—24V,隨不同的芯片型號而定)。EPROM的型號是以27開頭的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在寫入資料后,還要以不透光的貼紙或膠布把窗口封住,以免受到周圍的紫外線照射而使資料受損。 EPROM芯片在空白狀態時(用紫外光線擦除后),內部的每一個存儲單元的數據都為1(高電平)。
EEPROMEEPROM (Electrically Erasable Programmable ROM,電可擦可編程只讀存儲器),一種掉電后數據不丟失的存儲芯片。EEPROM是可用戶更改的只讀存儲器,其可通過高於普通電壓的作用來擦除和重編程(重寫),即可以在電腦上或專用設備上擦除已有信息並重新編程。不像EPROM芯片,EEPROM不需從計算機中取出即可修改,是現在用得比較多的存儲器,比如24CXX系列的EEPROM。
在一個EEPROM中,當計算機在使用的時候是可頻繁地重編程的,EEPROM的壽命是一個很重要的設計考慮參數。
EEPROM的一種特殊形式是閃存,其應用通常是個人電腦中的電壓來擦寫和重編程。
EEPROM一般用於即插即用(Plug & Play),常用在接口卡中,用來存放硬件設置數據,也常用在防止軟件非法拷貝的"硬件鎖"上面。
閃存(Flash)
閃存(FLASH)是一種非易失性存儲器,即斷電數據也不會丟失。因為閃存不像RAM(隨機存取存儲器)一樣以字節為單位改寫數據,因此不能取代RAM。
閃存卡(Flash Card)是利用閃存(Flash Memory)技術達到存儲電子信息的存儲器,一般應用在數碼相機,掌上電腦,MP3等小型數碼產品中作為存儲介質,所以樣子小巧,有如一張卡片,所以稱之為閃存卡。根據不同的生產廠商和不同的應用,閃存卡大概有U盤、SmartMedia(SM卡)、Compact Flash(CF卡)、MultiMediaCard(MMC卡)、Secure Digital(SD卡)、Memory Stick(記憶棒)、XD-Picture Card(XD卡)和微硬盤(MICRODRIVE)。這些閃存卡雖然外觀、規格不同,但是技術原理都是相同的。
NAND FLASH和NOR FLASH都是現在用得比較多的非易失性閃存。
設計實現
采用的並行接口,有獨立的地址線和數據線,性能特點更像內存,是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中。
NAND采用的是串行的接口,地址線和數據線是共用的I/O線,類似電腦硬盤。CPU從里面讀取數據的速度很慢,所以一般用NAND做閃存的話就必須把NAND里面的數據先讀到內存里面,然后CPU才能夠執行。但是它的集成度很高,成本很低。還有就是它的擦除速度也的NOR要快。其實NAND型閃存在設計之初確實考慮了與硬盤的兼容性,小數據塊操作速度很慢,而大數據塊速度就很快,這種差異遠比其他存儲介質大的多。這種性能特點非常值得我們留意
性能對比 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閃存的管理,包括糾錯、壞塊處理和損耗平衡。
應用環境
NOR型閃存現在的容量一般在2M左右,比較適合頻繁隨機讀寫的場合,通常用於存儲程序代碼並直接在閃存內運行,手機就是使用NOR型閃存的大戶,所以手機的“內存”容量通常不大。另外用在代碼量小的嵌入式產品方面,可以把LINUX操作系統剪裁到2M以內在其上面直接運行。
NAND型閃存主要用來存儲資料,我們常用的閃存產品,如閃存盤、數碼存儲卡、U盤、MP3等。另外用在那些要跑大型的操作系統的嵌入式產品上面,比如LINUX啊,WINCE啊。當然也可以把LINUX操作系統剪裁到2M以內在NOR Flash上運行。但是很多時候,一個嵌入式產品里面,操作系統占的存儲空間只是一小部分,大部分都是給用戶跑應用程序的。就像電腦,硬盤都是幾百G,可是WINDOWNS操作系統所占的空間也不過幾G而已。
總結:
簡單地說,在計算機中,RAM 、ROM都是數據存儲器。RAM 是隨機存取存儲器,它的特點是易揮發性,即掉電失憶。ROM 通常指固化存儲器(一次寫入,反復讀取),它的特點與RAM 相反。
ROM又分一次性固化(PROM)、光擦除(EPROM)和電擦除(EEPROM)重寫幾種類型。舉個例子來說也就是,如果突然停電或者沒有保存就關閉了文件,那么ROM可以隨機保存之前沒有儲存的文件但是RAM會使之前沒有保存的文件消失。
RAM又分為靜態隨機存儲器(SRAM)和動態隨機存儲器(DRAM)。
問與答
問題1:什么是DRAM、SRAM、SDRAM?答:名詞解釋如下DRAM--------動態隨即存取器,需要不斷的刷新,才能保存數據,而且是行列地址復用的,許多都有頁模式SRAM--------靜態的隨機存儲器,加電情況下,不需要刷新,數據不會丟失,而且一般不是行列地址復用的SDRAM-------同步的DRAM,即數據的讀寫需要時鍾來同步
問題2:為什么DRAM要刷新,SRAM則不需要?答:這是由RAM的設計類型決定的,DRAM用了一個T和一個RC電路,導致電容會漏電和緩慢放電,所以需要經常刷新來保存數據
問題3:我們通常所說的內存用的是什么呢?這三個產品跟我們實際使用有什么關系?答:內存(即隨機存貯器RAM)可分為靜態隨機存儲器SRAM,和動態隨機存儲器DRAM兩種。我們經常說的“內存”是指DRAM。而SRAM大家卻接觸的很少。
問題4:為什么使用DRAM比較多、而使用SRAM卻很少?答:1)因為制造相同容量的SRAM比DRAM的成本高的多,正因為如此,才使其發展受到了限制。因此目前SRAM基本上只用於CPU內部的一級緩存以及內置的二級緩存。僅有少量的網絡服務器以及路由器上能夠使用SRAM。2)存儲單元結構不同導致了容量的不同:一個DRAM存儲單元大約需要一個晶體管和一個電容(不包括行讀出放大器等),而一個SRAM存儲單元大約需要六個晶體管。DRAM和SDRAM由於實現工藝問題,容量較SRAM大,但是讀寫速度不如SRAM。
問題5:用得最多的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。
問題6:用得比較少但速度很快,通常用於服務器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。