存儲器的分類方式
存儲器的分類方式有很多種,列舉如下:
1、按存儲介質:半導體、磁性、光學。
2、按存儲方式:隨機、順序。
3、按讀寫功能:只讀、讀寫。
4、按可保存性:斷電保存、斷電不保存。
5、按存儲架構:寄存器、緩存、內存、外存(輔存)。
下圖結合各種分類方式對各種存儲器進行了歸類。
按照個人計算機存儲器體系的通常情況,可以粗略地說:半導體RAM的特點是隨機、讀寫、斷電不保存、緩存/內存,半導體ROM、磁性和光學存儲器的特點一般是:順序、只讀、斷電保存、外存。這樣的說法雖然便於理解,但並不准確,比如混合存儲器就可以同時具備二者的一些特點。最終需要根據具體的芯片原理進行分析。
存儲器的發展歷史
各類計算機系統的存儲體系
個人計算機存儲體系
個人計算機具有完整的存儲體系,包括寄存器、緩存、內存、外存。
1、寄存器采用半導體材料,容量一般為1、2、4、8個字節,但數量很多、功能豐富。
2、緩存一般采用SRAM,容量一般在幾KB到幾MB之間。
3、內存一般采用DRAM,比如DDR SDRAM內存條,容量一般為2GB、4GB、8GB。
4、外存采用半導體、磁性、光學材料,如Flash(固態硬盤、U盤、SD卡、MMC等)、機械硬盤、光盤,容量一般在幾百GB到幾TB之間。
微控制器存儲體系
微控制器(單片機),着重“控制”而非“處理”, 對成本敏感而對速度要求不高。因此,單片機具有精簡的存儲體系,包括寄存器、內存、外存。
1、寄存器類似個人計算機存儲體系中的寄存器。
2、內存通常采用“SRAM+片內Flash”的組合方式,其中SRAM用於臨時存儲數據,片內FLASH用於存儲程序。
3、外存采用半導體,如EEPROM,片外Flash(W25QXX、SD卡等)。
補充說明:
1、片內Flash為什么也是內存?內存的定義:CPU能直接尋址的存儲空間。斷電不保存並非內存必備的特點。單片機內部的FLASH一般采用NOR FLASH,CPU取指模塊支持NOR Flash的硬件接口,所以CPU能直接尋址。這種情況,NOR Flash的硬件接口一般稱作SRAM接口,也就是說CPU訪問NOR Flash的方式類似於訪問SRAM的方式。
2、由於Flash用作存儲單片機程序,所以又稱作程序存儲器。SRAM存儲中間數據,又稱作數據存儲器。小容量的EEPROM一般用作數據存儲器(存放系統參數),較大容量的W25QXX(NOR Flash)和超大容量的SD卡(NAND Flash)一般用作數據存儲器(存儲較多數據)。
3、由於單片機一般沒有操作系統且只有一種用戶程序,所以外存不存放程序。但並不意味着不可以如此,如果單片機需要升級用戶程序,就可以將新的用戶程序首先存放在外存中。
4、外存只是程序和數據的倉庫,必須加載到內存中才能使用。
微處理器存儲體系
一般提到嵌入式系統,默認是微處理器系統,甚至默認是“ARM+LINUX”系統。微處理器系統采用高性能的嵌入式處理器芯片,並且運行操作系統,已經和個人計算機沒有明顯的界限。微處理器系統同樣具有完整的存儲體系,包括寄存器、緩存、內存、外存。
手機算不算嵌入式系統呢?從技術層面,手機采用嵌入式芯片和嵌入式操作系統,算嵌入式系統。從功能層面,手機並非專用設備,甚至比個人計算機功能更加豐富,不算嵌入式系統。手機雖然是可裁剪的設備,但裁剪度太低。
典型的嵌入式系統如DTU專注於通信、迪文屏專注於顯示。
詳解NOR Flash和NAND Flash
1、誕生
1971年,富士雄加入了東芝公司,受到了EEPROM的啟發,鑽研一種能快速擦除的EERPOM並於1980年取得突破,申請了一個叫做simultaneously erasable EEPROM的專利。由於新發明的這種EEPROM擦除速度飛快,富士雄的同事建議他把這種技術取名Flash,暗合相機的閃光燈飛快閃爍之意。這就是最初的NOR Flash。因為NOR Flash的制造成本高,富士雄在1986年發明了NAND Flash,大大降低了制造成本。
2、原理
采用雙柵極結構(場效應管為單柵極結構)的浮置柵極存儲電荷,向浮柵中注入電荷表示寫入了0,沒有注入電荷表示1,所以對 Flash清除數據是寫1的,這與機械硬盤正好相反。
寫:在寫入新數據之前,必須先將原來的數據擦除,這點跟機械硬盤不同,也就是將浮柵的電荷放掉,兩種Flash都是通過F-N隧道效應放電。NOR Flash通過熱電子注入方式給浮柵充電,而NAND Flash則通過F-N隧道效應給浮柵充電。
讀:檢測晶體管的導通狀態就可以獲得存儲單元中的數據,如果位線上的電平為低,說明晶體管處於導通狀態,讀取的數據為0,如果位線上為高電平,則說明晶體管處於截止狀態,讀取的數據為1。由於控制柵極在讀取數據的過程中施加的電壓較小或根本不施加電壓,不足以改變浮置柵極中原有的電荷量,所以讀取操作不會改變Flash中原有的數據。
3、特性
NOR Flash有自己的數據和地址總線,因此可采用類似RAM的隨機訪問。各單元之間是並聯的,對存儲單元進行統一編址(有獨立地址線),所以可以隨機訪問任意一個字。應用程序可以直接在NOR Flash內運行(應用程序的Code和RO段可以直接在NOR Flash上運行,只需要把RW段和ZI段拷貝到RAM中運行即可),不必再把代碼讀到系統RAM中去。但NOR Flash不能像RAM以字節改寫數據,只能按頁依次寫數據,故NOR Flash不能代替RAM。
單片機使用的就是NOR Flash。因為NOR Flash讀取快而寫入很慢,所以中間數據都是寫入SRAM中。
NAND Flash接口和操作均相對復雜,NAND器件使用復雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。同時NAND Flash位交換操作也很多,關鍵性數據更是需安錯誤探測/錯誤更正算法來確保數據的完整性,因此出現問題的幾率要大的多,壞區塊也是不可避免的,而且由於壞區塊是隨機分布的,連糾錯也無法做到。建議在使用NAND Flash時,要采用EDC/ECC等校驗算法。
4、應用
NOR Flash常用作BIOS程序存儲介質、單片機外掛Flash、單片機片上Flash。
NAND Flash廣泛應用在各種存儲卡(如SD卡)、U盤、固態硬盤、eMMC等等大容量設備中。
題外話
1、手機的運存和機身內存是什么?這是錯誤的叫法,所謂的“運存”其實是內存,所謂的“機身內存”其實是外存。
2、由於有固態硬盤的說法,磁性硬盤最好稱為“機械硬盤”而不要簡稱為“硬盤”。
3、寄存器概念厘清。寄存器有狹義和廣義兩種理解。狹義的寄存器就是單獨的電路模塊,由觸發器組成。廣義的寄存器就是臨時存放數據的局部電路。從廣義的角度說,所有存儲器的某地址臨時存放了數據,都可以粗略稱為寄存器。比如,51單片機將SRAM低32字節的地址空間稱作“4個工作寄存器組”(每組8個工作寄存器)就是廣義的寄存器概念。比如,51單片機中的特殊功能寄存器都是狹義的寄存器概念。