常用存储器分类
1.存儲器是計算機實現記憶功能的部件,用來存放程序和數據,是微機系統中重要的組成部分,存儲器的容量越大,表明能存儲的信息越多,計算機的處理能力也就越能充分展現。存儲器系統由外存儲器和內存儲器兩部分組成。其中內存儲器用來存放當前運行的程序和數據,一般由一定容量的速度較高存儲器組成,CPU可直接用指令對內存儲器進行讀/寫操作。內存儲器的分類如下:
2.RAM,“Random Access Memory”的縮寫,被譯為隨機存儲器,現在RAM 已經專門用于指代作為計算機內存的易失性半導體存儲器。
?
2.1.SRAM靜態隨機存儲器:存儲單元以鎖存器來存儲數據,見圖1。這種電路結構不需要定時刷新充電,就能保持狀態(斷電后數據還是會丟失),所以這種存儲器被稱為“靜態(Static)” RAM。相比于DRAM,SRAM的特點是只要不撤除工作電源,所保存的信息就不會丟失;讀出信息時不破壞原保存信息,一經寫入可多次讀出;存取速度較快,但功耗較大、存儲容量較小,適用于不需要大容量存儲器的系統,如單片機、工控機的內存和微機的高速緩存。SRAM 根據其通訊方式分為同步(SSRAM)和異步 SRAM,相對來說,異步SRAM 用得比較廣泛。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1 SRAM存儲單元
2.2.DRAM動態隨機存儲器:存儲單元以電容的電荷來表示數據,有電荷代表1,無電荷代表0,見圖2。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,因此需要定期刷新,這就是“動態(Dynamic)”一詞所形容的特性。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2 DRAM存儲單元
2.3.SDRAM:根據DRAM的通訊方式,又分為同步和異步兩種,這兩種方式根據通訊時是否需要使用時鐘信號來區分。由于使用時鐘同步的通訊速度更快,所以同步DRAM使用更為廣泛,這種DRAM被稱為SDRAM(Synchronous DRAM)。
2.4. DDR SDRAM:為了進一步提高SDRAM的通訊速度,人們設計了DDR SDRAM 存儲器(Double DataRate SDRAM)。它的存儲特性與 SDRAM 沒有區別,但SDRAM只在上升沿表示有效數據,在1個時鐘周期內,只能表示1個有數據;而DDR SDRAM在時鐘的上升沿及下降沿各表示一個數據,也就是說在1 個時鐘周期內可以表示2位數據,在時鐘頻率同樣的情況下,提高了一倍的速度。至于DDRII和DDRIII,它們的通訊方式并沒有區別,主要是通訊同步時鐘的頻率提高了。當前個人計算機常用的內存條是DDRIII SDRAM存儲器,在一個內存條上包含多個DDRIII SDRAM芯片。
2.5. DRAM與SRAM的應用場合:對比DRAM與SRAM的結構可知DRAM 的結構簡單得多,所以生產相同容量的存儲器,DRAM的成本要更低,且集成度更高。而DRAM中的電容結構則決定了它的存取速度不如SRAM,特性對比見表1。在實際應用場合中, SRAM一般只用于CPU內部的高速緩存(Cache),而外部擴展的內存一般使用DRAM。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表1 DRAM與SRAM對比
| 特性 | DRAM | SRAM |
| 存取速度 | 較慢 | 較快 |
| 集成度 | 較高 | 較低 |
| 生產成本 | 較低 | 較高 |
| 是否需要刷新 | 是 | 否 |
3.ROM,“Read Only Memory”的縮寫,意為只能讀的存儲器,現在一般用于指代非易失性半導體存儲器。
3.1. MROM:MASK(掩膜) ROM,存儲在內部的數據是在出廠時使用特殊工藝固化,生產后就不可修改,其主要優勢是大批量生產時成本低。當前在生產量大,數據不需要修改的場合,還有應用。
3.2. OTPROM:One Time Programable ROM,一次可編程存儲器,出廠時內部沒有資料,用戶可以使用專用的編程器將資料寫入,一經寫入,不能更改。
3.3. EPROM:Erasable Programmable ROM,可重復擦寫的存儲器,解決了PROM芯片只能寫入一次的問題,使用紫外線照射芯片內部擦除數據,擦除和寫入都要專用的設備,現在基本被EEPROM取代。
3.4. EEPROM:Electrically Erasable Programmable ROM,電可擦除存儲器。可以重復擦寫,擦除和寫入都是直接使用電路控制,不需要再使用外部設備來擦寫。而且可以按字節為單位修改數據,無需整個芯片擦除。現在主要使用的 ROM 芯片都是EEPROM。
3.5.FLASH 存儲器:又稱閃存,也是可重復擦寫的儲器,容量一般比EEPROM 大得多,且在擦除時,一般以多個字節為單位。如有的 FLASH 存儲器以 4096 個字節為扇區,最小的擦除單位為一個扇區。根據存儲單元電路的不同, FLASH 存儲器又分為 NOR FLASH 和 NAND FLASH,見表2。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表2 NOR FLASH與NAND FLASH特性對比
| 特性 | NOR FLASH | NAND FLASH |
| 同容量存儲器成本 | 較貴 | 較便宜 |
| 集成度 | 較低 | 較高 |
| 介質類型 | 隨機存儲 | 連續存儲 |
| 地址線和數據線 | 獨立分開 | 共用 |
| 擦除單元 | 以“扇區/塊”擦除 | 以“扇區/塊”擦除 |
| 讀寫單元 | 可以基于字節讀寫 | 必須以“塊”為單位讀寫 |
| 讀取速度 | 較高 | 較低 |
| 寫入速度 | 較低 | 較高 |
| 壞塊 | 較少 | 較多 |
| 是否支持XIP | 支持 | 不支持 |
NOR與NAND 的共性是在數據寫入前都需要有擦除操作,而擦除操作一般是以“扇區/塊”為單位的。而NOR與NAND特性的差別,主要是由于其內部“地址/數據線”是否分開導致的。
由于NOR的地址線和數據線分開,它可以按“字節”讀寫數據,符合CPU的指令譯碼執行要求,所以假如NOR上存儲了代碼指令,CPU給 NOR一個地址, NOR就能向CPU返回一個數據讓CPU執行,中間不需要額外的處理操作。
而由于NAND的數據和地址線共用,只能按“塊”來讀寫數據,假如NAND 上存儲了代碼指令,CPU給NAND地址后,它無法直接返回該地址的數據,所以不符合指令譯碼要求。表2中的最后一項“是否支持XIP”描述的就是這種立即執行的特性(eXecute In Place)。
若代碼存儲在NAND上,可以把它先加載到RAM存儲器上,再由CPU執行。所以在功能上可以認為 NOR是一種斷電后數據不丟失的RAM,但它的擦除單位與RAM有區別,且讀寫速度比RAM要慢得多。
另外, FLASH的擦除次數都是有限的(現在普遍是10萬次左右),當它的使用接近壽命的時候,可能會出現寫操作失敗。由于NAND通常是整塊擦寫,塊內有一位失效整個塊就會失效,這被稱為壞塊,而且由于擦寫過程復雜,從整體來說NOR壞塊更少,壽命更長。由于可能存在壞塊,所以FLASH存儲器需要“探測/錯誤更正(EDC/ECC)”算法來確保數據的正確性。
由于兩種FLASH存儲器特性的差異,NOR FLASH一般應用在代碼存儲的場合,如嵌入式控制器內部的程序存儲空間。而NAND FLASH一般應用在大數據量存儲的場合,包括SD卡、 U盤以及固態硬盤等,都是NAND FLASH類型的。
?
總結
- 上一篇: 太实用了!Schedule模块, Pyt
- 下一篇: “约见”面试官系列之常见面试题之第九十六