“存儲器”這個詞對于電子設備的使用者一點都不陌生,在市面上沒有任何一款電子產品不需要用到存儲器的,而且有時還不止用一款存儲器,然而對于存儲器種類,規格與形成,未必大家就分的一清二楚,比如:身為“執行”程序(資料)的 DRAM ,以及“儲存”程序與資料的 Flash ROM 就是一例,下面就為大家簡單介紹一下存儲器的分類:
電的存儲器是指電寫電讀的存儲器,主要分為兩大類,如圖一所示:
揮發性存儲器(Volatile Memory,VM):電源開啟時資料存在,電源關閉則資料立刻流失(資料揮發掉),例如:
SRAM、DRAM、SDRAM、DDR-SDRAM 等。
非揮發性存儲器(Non-Volatile Memory,NVM):電源開啟時資料存在,電源關閉資料仍然可以保留,例如:ROM、PROM、EPROM、EEPROM、Flash ROM、FRAM、MRAM、RRAM、PCRAM 等。
▲ 圖一:存儲器的分類。
存儲器的單元
存儲器的“單元”(Cell)是指用來存取資料的最小結構,如果含有一個電晶體(Transistor)與一個電容(Capacitor)則稱為“1T1C”;如果含有一個電晶體(Transistor)與一個電阻(Resistor)則稱為“1T1R”;如果含有一個二極體(Diode)與一個電阻(Resistor)則稱為“1D1R”。
存儲器的每個“單元”不一定只能儲存 1 個位的資料,由于我們對存儲器容量的要求越來越高,每個“單元”能儲存的資料越來越多,依照每個“單元”能儲存的資料位數又分為:單層單元(Single-Level Cell,SLC)、多層單元(Multi-Level Cell,MLC)、三層單元(Triple-Level Cell,TLC)、四層單元(Quad-Level Cell,QLC)等。
對存儲器的 SLC、MLC、QLC、TLC 有興趣的人可以參考“知識力專家社交:存儲器的分類與階層”。
存儲器階層(Memory hierarchy)
要了解電子產品的各種存儲器配置,就必須先介紹“存儲器階層”(Memory hierarchy)觀念。存儲器階層是指如何將儲存容量不同、運算速度不同、單位價格不同的多種存儲器妥善分配,才能達到最大的經濟效益,使產品的運算速度合理、儲存容量合理、產品價格合理。
圖二為存儲器階層示意圖,由上而下依序為暫存器、快取存儲器、主存儲器、輔助存儲器:
暫存器(Register):在處理器內,用來設定處理器的功能,主要是“暫時儲存”設定值的地方。
快取存儲器(Cache memory):在處理器內,執行程序時“暫時儲存”程序與資料的地方,通常以 SRAM 制作。
主存儲器(Main memory):在處理器外,“暫時儲存”程序與資料的地方,通常以 DRAM 制作,目前已經改良成 SDRAM 或 DDR。
輔助存儲器(Assistant memory):在處理器外,“永久儲存”程序與資料的地方,包括:快閃存儲器、磁盤機、光盤機、磁帶機等。
不同種類的存儲器分別有不同的儲存容量、工作速度、單位價格:
儲存容量:輔助存儲器(GB)> 主存儲器(MB)> 快取存儲器(KB)> 暫存器(B)。
工作速度:輔助存儲器(1ms)< 主存儲器(10ns)< 快取存儲器(1ns)< 暫存器(1ns)。
單位價格:輔助存儲器 < 主存儲器 < 快取存儲器 < 暫存器。
【延伸閱讀】對存儲器階層的每一種類細節有興趣的人可以參考“知識力專家社交:存儲器的分類與階層”。
▲ 圖二:存儲器階層示意圖。
存儲器的應用
所有的電子產品都必須用到存儲器,而且通常用到不只一種存儲器,由于存儲器的種類繁多,常常讓使用者混淆,我們簡單說明不同存儲器之間的差異,圖三為手機主要芯片的系統方塊圖(System block diagram),包括:應用處理器(Application processor)、基頻處理器(Baseband processor)、運動控制器(Motion Controller)。
應用處理器主要是執行操作系統(Operating System,OS)與應用程序(Application program,App),暫存器與快取存儲器目前都是內建在處理器內,其中暫存器用來設定處理器的功能,用來設定暫存器數值的程序,也就是用來趨動硬件的軟件程序又稱為“固件”(Firmware);快取存儲器是在執行程序時用來“暫時儲存”程序與資料的地方,由于在處理器內離運算單元比較近,可以縮短程序與資料來回的時間,加快程序的執行速度因此稱為“快取”(Cache)。
由于快取存儲器成本較高因此容量不大,如果執行程序時放不下,則可以退一步放在主存儲器內,可是目前主存儲器所使用的 SDRAM 或 DDR,屬于揮發性存儲器,電源關閉則資料立刻流失,因此關機后資料必須儲存在非揮發性的輔助存儲器內,早期輔助存儲器使用磁盤機、光盤機、磁帶機等,由于半導體制程的進步,目前大多使用快閃存儲器(Flash ROM),或所謂的固態硬盤(Solid State Disk,SSD),固態硬盤其實也是使快閃存儲器制作。
由于快取存儲器(SRAM)與主存儲器(SDRAM、DDR)是執行程序用來“暫時儲存”程序與資料的地方,與處理器內的運算單位直接使用匯流排(Bus)連接,一般都是用“位”(bit)來計算容量;而輔助存儲器是“永久儲存”程序與資料的地方,由于一個位組(Byte)可以儲存一個半型字,因此一般都是用“位組”(Byte)來計算容量。
▲ 圖三:手機主要芯片的系統方塊圖(System block diagram)。
靜態隨機存取存儲器(SRAM:Static RAM)
以 6 個電晶體(MOS)來儲存 1 個位(1bit)的資料,而且使用時“不需要”周期性地補充電源來保持記憶的內容,故稱為“靜態”(Static)。
SRAM 的構造較復雜(6 個電晶體儲存 1 個位的資料),不使用電容所以存取速度較快,但是成本也較高,因此一般都制作成對容量要求較低但是對速度要求較高的存儲器,例如:中央處理器(CPU)內建 256KB、512KB、1MB 的“快取存儲器”(Cache memory),一般都是使用 SRAM。
動態隨機存取存儲器(DRAM:Dynamic RAM)
以一個電晶體(MOS)加上一個電容(Capacitor)來儲存一個位(1bit)的資料,而且使用時“需要”周期性地補充電源來保持記憶的內容,故稱為“動態”(Dynamic)。
DRAM 構造較簡單(一個電晶體加上一個電容),由于電容充電放電需要較長的時間造成存取速度較慢,但是成本也較低,因此一般制作成對容量要求較高但是對速度要求較低的存儲器,例如:個人電腦主機板通常使用 1GB 以上的 DDR-SDRAM 就是屬于一種 DRAM。由于處理器的速度越來越快,傳統 DRAM 的速度已經無法滿足要求,因此目前都改良成 SDRAM 或 DDR-SDRAM 等兩種型式來使用。
同步動態隨機存取存儲器(SDRAM:Synchronous DRAM)
中央處理器(CPU)與主機板上的主存儲器(SDRAM)存取資料時的“工作時脈”(Clock)相同,故稱為“同步”(Synchronous)。由于 CPU 在存取資料時不需要“等待”(Wait)因此效率較高,SDRAM 的存取速度較 DRAM 快,所以早期電腦主機板上都是使用 SDRAM 來取代傳統 DRAM,不過目前也只有少數工業電腦仍然使用 SDRAM。
DRAM 使用一個電晶體(MOS)與一個電容來儲存一個位的資料(一個 0 或一個 1),如圖四(a)所示,當電晶體(MOS)不導通時沒有電子流過,電容沒有電荷,代表這一個位的資料是 0,如圖四(b)所示;當電晶體(MOS)導通時(在閘極施加正電壓),電子會由源極流向汲極,電容有電荷,代表這一個位的資料是 1,為了要將這些流過來的電荷“儲存起來”,因此必須使用一個微小的電容,如圖四(c)所示,DRAM 就是因為電容需要時間充電,所以速度比 SRAM 還慢。
▲ 圖四:動態隨機存取存儲器(DRAM)的結構與工作原理示意圖。
動態隨機存取存儲器的缺點
動態隨機存取存儲器(DRAM)是以一個電晶體加上一個電容來儲存一個位(1bit)的資料,由于傳統 DRAM 的電容都是使用“氧化矽”做為絕緣體,氧化矽的介電常數不夠大(K 值不夠大),因此不容易吸引(儲存)電子與電洞,造成必須不停地補充電子與電洞,所以稱為“動態”,只要電腦的電源關閉,電容所儲存的電子與電洞就會流失,DRAM 所儲存的資料也就會流失。
要解決這個問題,最簡單的就是使用介電常數夠大(K 值夠大)的材料來取代“氧化矽”為絕緣體,讓電子與電洞可以儲存在電容里不會流失。目前業界使用“鈦鋯酸鉛”(PZT)或“鉭鉍酸鍶”(SBT)這種介電常數很大(K 值很大)的“鐵電材料”(Ferroelectric material)來取代氧化矽,則可以儲存電子與電洞不會流失,讓原本“揮發性”的動態隨機存取存儲器(DRAM)變成“非揮發性”的存儲器稱為“鐵電隨機存取存儲器”(Ferroelectric RAM,FRAM)。