1. 程式人生 > >牛人經驗5(什麼是DRAM、什麼是NAND Flash)

牛人經驗5(什麼是DRAM、什麼是NAND Flash)

來自:http://www.kaoder.com/?m=thread&a=view&fid=1075&tid=543332

所有使用者對“儲存器”這個名詞可是一點都不陌生,因為所有的電子產品都必須用到儲存器,且通常用到不只一種儲存器。不過對於儲存器種類、規格與形式,很多人容易搞混。比如,最近價格貴到炸的 NAND Flash,產業新聞裡常常提到的DRAM,還有SRAM、SDRAM、DDR 3、DDR 4、NOR Flash … 這些又是什麼?

先來一段百度百科。

儲存器是用來儲存程式和資料的部件,對於計算機來說,有了儲存器,才有記憶功能,才能保證正常工作。儲存器的種類很多,按其用途可分為主儲存器和輔助儲存器,主儲存器又稱記憶體儲器

(簡稱記憶體,港臺稱之為記憶體)。外儲存器是指除計算機記憶體及CPU快取以外的儲存器,此類儲存器一般斷電後仍然能儲存資料。常見的外儲存器有硬碟、軟盤、光碟、U盤等。

而簡單來說,DRAM就是我們一般在用的記憶體,而NAND Flash 快閃記憶體,它在做的事情其實是硬碟。

(這段是給電腦小白的科普,大家可以酌情跳過)

不熟悉PC知識的朋友常常在選購裝置時問,硬碟和記憶體到底有什麼差別?我硬碟容量明明有 1TB,但PC還是跑得很慢哎?

硬碟和記憶體的差異,在於把電源關掉後、空間中儲存的資料還會不會留著。就算關掉電源,硬碟的資料也不會消失。

但我們要運算資料時,如果 CPU 要直接從硬盤裡面抓資料,時間會太久。所以”記憶體”會作為中間橋樑,先到硬盤裡面複製一份進來、再讓 CPU 直接到記憶體中拿資料做運算。這樣會 比直接去硬碟抓資料,快約數百萬倍。

開啟工作管理員,就可以看到現在執行中程式佔掉的記憶體空間,很多人就在罵Chrome 耗費的運算資源很高,記憶體使用率高於其他瀏覽器,多開幾個分頁記憶體就被吃完了。

所以簡單來說,計算機在運作就像是辦公一樣,喝飲料、看書本、聽音響… 想一次使用越多東西、桌面(記憶體)就要越大。但其他一時間沒有要用到的東西,都會放在抽屜(硬碟)裡面。所以硬碟就算再大,你一次想執行很多工,還是得要看記憶體大小。

記憶體的處理速度比硬碟更快,但斷電之後資料會消失,且價格也比硬碟貴。

當然儲存器的層次結構裡面還有更多細節。參見後文。

簡單來說,CPU 裡面也有一個儲存空間,叫做 Register

。要運算時、CPU 會從記憶體中把資料載入Register、再讓Register中存的數字做運算,運算完再將結果存回記憶體中。畢竟 CPU 和記憶體終究還是兩片不同的晶片,沒有在同一片晶片裡直接抓資料快。

還有一個概念是 Cache,這是CPU 和記憶體之間的中間橋樑。

速度來講,就是:CPU裡面的Register > Cache > 記憶體 > 硬碟。越上層(越靠近 CPU),速度就越快、價格越高、容量越低。

儲存器的分類

電的儲存器是指電寫電讀的儲存器,主要分為兩大類,如圖一所示:

易失性儲存器(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)等。

儲存器層次結構(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。

可以記住一個簡單的結論:SRAM 比較快、 DRAM 比較慢;SRAM 比較貴、DRAM 比較便宜。

這是我們平常在計算機中使用的記憶體,更精確的說法應該叫”記憶體模組”(Memory Module)。一個記憶體模組實際上就是由一塊小電路板、再加上幾塊的 DRAM 晶片構成。圖示中的記憶體模組上一共有 8 個 DRAM 晶片。讓我們把一個 DRAM 晶片的內部結構剖開看看,會看到一個儲存陣列(Memorry Array)。

CPU 會給這個儲存陣列”行地址”和”列地址”,就可以選出一個”儲存單元”。常見

的儲存單元包含了 4 bit 或 8 bit,每一個 bit 都會採用一個電路結構,我們稱為 DRAM 的一個”基本儲存單元”。

這個基本儲存單元中包含了一個電晶體匹配一個電容。然後就可以視電容器是否有充電電荷存在、來判別目前的記憶狀態。

“寫入記憶體”的動作,就是由外部的資料線、對電容進行充電或放電,從而完成寫入 1 或 0 的數字資料。

DRAM 使用一個電晶體(MOS)與一個電容來儲存一個位的資料(一個 0 或一個 1),如圖四(a)所示,當電晶體(MOS)不導通時沒有電子流過,電容沒有電荷,代表這一個位的資料是 0,如圖四(b)所示;當電晶體(MOS)導通時(在閘極施加正電壓),電子會由源極流向汲極,電容有電荷,代表這一個位的資料是 1,為了要將這些流過來的電荷“儲存起來”,因此必須使用一個微小的電容,如圖四(c)所示,DRAM 就是因為電容需要時間充電,所以速度比 SRAM 還慢。


▲ 圖四:動態隨機存取儲存器(DRAM)的結構與工作原理示意圖。

由於電容會有漏電的現象,導致電位差不足而使記憶消失,因此除非電容經常週期性地充電,否則無法確保資料能長久儲存起來。

由於每個 DRAM 基本儲存單元的電路結構非常的簡單,所以功耗低、價格也較低。這樣一來用低成本就能製造出大儲存容量的 DRAM 晶片。缺點就是讀寫的速度慢(電容要充電放電),影響了 DRAM 的效能。

SRAM 的結構則較為複雜,一共有六個電晶體構成。我們能分別用 M1、M2、M3 到 M6 進行標記。這六個電晶體合起來才能儲存一個 bit。

SRAM 晶片和 DRAM 晶片不太一樣,不需要分成行地址和列地址分別選擇,而且 SRAM 的設計相對來說又更加靈活,一個地址對應的儲存單元數量可以是 8 bit、10 bit,或 32 bit、40 bit、64 bit 都行。

另外,電晶體的開關速度遠比電容充電放電的速度還快,所以相對於 DRAM、SRAM 的讀寫速度比 DRAM 快很多。

然而 SRAM 中要儲存一個 bit 就得用到六個電晶體。電晶體的數量一多、就會造成晶片的面積變大,從而帶來積體電路難以變得更小、還有價格更貴的問題。

(SRAM 的價格比起 DRMA 要高達 1000 倍以上。比如 2010 年世代––—SRAM 的每單位儲存價格是 $60/MB,DRAM 則是 $0.06/MB。)

同時每個電晶體都要耗電,電晶體越多、功耗就越高。考慮到價格高和功耗大,目前只能在一些很嚴苛的地方來使用 SRAM,比如上面提到的快取 (Cache)。

故目前”主儲存器”還是使用 DRAM 技術,但小塊用來拉速度的”快取”就是採用 SRAM。然而無論是 DRAM 還是 SRAM,一不供應電源就會喪失儲存的資料,所以都叫做揮發性記憶體。

鐵電隨機存取儲存器 FRAM

動態隨機存取儲存器(DRAM)是以一個電晶體加上一個電容來儲存一個位(1bit)的資料,由於傳統 DRAM 的電容都是使用“氧化矽”做為絕緣體,氧化矽的介電常數不夠大(K 值不夠大),因此不容易吸引(儲存)電子與電洞,造成必須不停地補充電子與電洞,所以稱為“動態”,只要電腦的電源關閉,電容所儲存的電子與電洞就會流失,DRAM 所儲存的資料也就會流失。

要解決這個問題,最簡單的就是使用介電常數夠大(K 值夠大)的材料來取代“氧化矽”為絕緣體,讓電子與電洞可以儲存在電容裡不會流失。目前業界使用“鈦鋯酸鉛”(PZT)或“鉭鉍酸鍶”(SBT)這種介電常數很大(K 值很大)的“鐵電材料”(Ferroelectric material)來取代氧化矽,則可以儲存電子與電洞不會流失,讓原本“易失性”的動態隨機存取儲存器(DRAM)變成“非易失性”的儲存器稱為“鐵電隨機存取儲存器”(Ferroelectric RAM,FRAM)。

 

NAND Flash 又是什麼呢?

 

繼續講講非易失性的部分:

Flash(快閃記憶體)由於具備了重量輕、體積小、功率低等優點,被應用在各類電子產品的硬碟上。Flash 又可以分成 NOR 型 Flash 和 NAND 型 Flash。

NOR Flash 比 NAND Flash 更早匯入市場。讀取的速度較快,但寫入的速度慢、價格也比 NAND Flash 貴。

目前用來儲存作業系統的程式程式碼或重要資料,比如拿來做 ROM。像是生產 NOR Flash 的臺廠旺巨集就是因為打入任天堂 Switch 主機的 ROM 供應鏈,今年營收上看攀升。

NAND Flash 寫入的速度快、價格較低,故目前以 NAND Flash 最為普遍。現在的 USB 硬碟和手機儲存空間,就是用 NAND Flash 為主流技術。

另外,固態硬碟(Solid State Drive, SSD)也是以 NAND 型 Flash 為基礎所建構的儲存裝置。SSD 不像傳統硬碟(HDD)中有馬達、讀寫臂等零件。速度慢、功耗高,對震動又相當敏感,很難用在小型行動裝置中。

SSD 在讀寫資料時不會有噪音,耐震、傳輸速度快、重量又能縮減到 HDD 十分之一以上,現在已經成為個人計算機和膝上型電腦的主流儲存裝置。

總結:

依照停止供應電源的話、是否還能保留資料,分成”易失性”與”非易失性”儲存。

易失性儲存分成 DRAM 和 SRAM。

SRAM 更快但價格更貴,所以主儲存器多用 DRAM、快取多用 SRAM。

非易失性儲存分成 ROM 和 Flash。主要用來作為硬碟。

Flash 又分成 NOR Flash 與 NAND Flash,現在硬碟多以 NAND Flash 構成的 SSD 為主。


▲ Q:看看一天到晚聽到的 DRAM、SRAM、Flash 等記憶體廠商又分別代表哪層?