存儲器(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。php