DRAM、NAND Flash 最近貴到炸,你還搞不懂記憶體的差異嗎?

常常聽說台灣兩兆雙星慘業,一個 DRAM 一個面板。等等,DRAM 到底是什麼意思?

DRAM 其實指的就是我們一般在用的記憶體噢!欸,那最近紅到炸 (價格貴到炸) 的 NAND Flash 快閃記憶體到底是什麼意思?它也是記憶體嗎?

Hmmm… 雖然名稱中有「記憶體」,但它在做的事情其實是硬碟喔。(廣義上來說,其實有記憶功能的硬體都可以叫記憶體)

什麼,那硬碟和記憶體到底有什麼差別?!我硬碟容量明明有 1TB,但電腦還是跑很慢?

記憶體還有 SRAM、SDRAM、DDR 3、DDR 4、NOR Flash …。天啊眼花撩亂,想知道現在 DRAM 、NAND Flash 價格在貴什麼的話,至少連「什麼是記憶體」都要搞懂吧!

在看完第一集介紹的馮紐曼架構,知道 CPU 和記憶體的簡單運作原理後,相信大家都對硬體元件有一些基本概念了~

等等,我還有一些其他的問題想問!

記憶體和硬碟差在哪邊?

我們在講的,記憶體有很多個位址(Address),還有 CPU 會讀取、寫入記憶體,其實都是「主記憶體」的部分。

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

就算關掉電源,硬碟的資料也不會消失噢!(想想看你關機後,若再開機、檔案會通通不見嗎?)

你可能會疑惑:但在〈一看就懂的 IC〉第一集—馮紐曼架構 一文中不是說,根據馮紐曼架構,「要被執行的程式和資料」會保存在記憶體中嗎?

這句話沒錯!但這是指電腦開啟後,才從硬碟「複製一部份的資料」到記憶體裡面。還記得我們說過為什麼要在 CPU 裡面設暫存器的原因嗎?因為 CPU 要運算時從暫存器中抓資料、會比跑到記憶體更快呀!

所以記憶體是為了跑「正在執行中的程式和資料」,先跑到硬碟中複製過來的。CPU 從記憶體中抓資料,和 CPU 不透過記憶體、自己去硬碟抓資料,前者的速度比後者快約數百萬倍。

(打開工作管理員,就可以看到現在執行中程式佔掉的記憶體空間噢!很多人就在罵Chrome 耗費的運算資源很高,記憶體使用率高於其他瀏覽器,多開幾個分頁記憶體就被吃完了!像小編電腦的記憶體只有 4GB,常不小心開太多分頁就會爆炸QQ)

所以簡單來說,電腦在運作就像是辦公一樣,喝飲料、看書本、聽音響… 想一次使用越多東西、桌面(記憶體)就要越大。

但其他一時間沒有要用到的東西,都會放在抽屜(硬碟)裡面。所以硬碟就算再大,你一次想執行很多任務,還是得要看記憶體大小。

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

重新整理一下——我們要運算資料時,如果 CPU 要直接從硬碟裡面抓資料,時間會太久。所以「記憶體」會作為中間橋梁,先到硬碟裡面複製一份進來、再讓 CPU 直接到記憶體中拿資料做運算。

但只有記憶體就夠了嗎?當然不。

快,還要更快。

還記得我們在馮紐曼架構一文中提到的小當家故事中,為大家解釋過 CPU 裡面也有一個儲存空間,叫做暫存器。

要運算時、CPU 會從記憶體中把資料載入暫存器、再讓暫存器中存的數字做運算,運算完再將結果存回記憶體中。

畢竟 CPU 和記憶體終究還是兩片不同的晶片,沒有在同一片晶片裡直接抓資料快。

但只要有 CPU 暫存器(在CPU晶片內)、記憶體、硬碟,這三層這樣就夠了嗎?

快,還要更快。

所以我們又把 CPU 和記憶體之間,再放一個「快取」(Cache) 當作 CPU 和記憶體的中間橋梁。

簡單來講,速度就是:CPU裡面的暫存器 > 快取 > 記憶體 > 硬碟

越上層(越靠近 CPU),速度就越快、價格越高、容量越低;像是現在花 3000 元就可以買到 1TB 的硬碟,而 16 GB的記憶體卻已高達 5000元。

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

依據儲存資料後是否需要不斷供電,可分為揮發性和非揮發性:

  • 揮發性(VOLATILE):停止供應電源,記憶資料便會消失。

> 動態隨機記憶體(Dynamic Random Access Memory, DRAM

> 靜態隨機記憶體(Static Random Access Memory, SRAM

  • 非揮發性(NON-VOLATILE):即使沒有供應電源,也能保存已經寫入的資料。

> 唯讀記憶體(Read Only Memory, ROM

> 快閃記憶體(Flash

RAM 是 Random Access Memory 的縮寫,意思是 CPU 能夠不用按照位址的順序,而能隨機指定記憶體位址來讀取或寫入資料。

像人腦就不是馮紐曼架構噢!因為人腦並不存在到所有神經元距離皆相等的 CPU,會因為神經元的分佈距離、而有傳輸速度上的差異。

但 CPU 到 RAM 的所有記憶體位址距離都是相等的,讀取或寫入時、也能不按照地址的順序,可以隨機跳。(不過人類的大腦應該也是可以隨機的XD 只差在距離)

事實上,我們上面講的小當家炒菜和桌面所講到的記憶體,都是用 RAM。所以小編的電腦硬碟是 128 GB、RAM 只有 4 GB(多開幾個 Chrome 分頁就會爆炸的真相…)

RAM 又分成了 DRAM 和 SRAM。它們都是做記憶體的技術。常常聽人講什麼 DRAM 是曾經的兩兆雙星產業、三星是市佔 50% 的 DRAM 大廠等等… 不要懷疑,他們這些說法講的就是「記憶體」啦!

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

記住這個結論很簡單,然而更重要的是要知道為什麼。

這是我們平常在電腦中使用的記憶體,更精確的說法應該叫「記憶體模組」(Memory Module)。

一個記憶體模組實際上就是由一塊小電路板、再加上幾塊的 DRAM 晶片構成。

圖示中的記憶體模組上一共有 8 個 DRAM 晶片。讓我們把一個 DRAM 晶片的內部結構剖開看看,會看到一個儲存陣列(Memorry Array)。

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

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

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

  • 備註:位元 (bit) 是記憶體的最小單位,在二進位數字系統中,每個 0 或 1 就是一個 bit。
  • 如果您不知道「電晶體」是什麼的話,歡迎參考晶圓代工爭霸戰:半導體知識

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

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

由於每個 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,一不供應電源就會喪失儲存的資料,所以都叫做揮發性記憶體。

如果是非揮發性記憶體的部分:

ROM 是 Read Only Memory 的縮寫。雖然 ROM 在不供應電源下、資料也不會消失,但上面的電路都是一開始就已經設計規劃好,資料都是固定的、不能做任何的更改。因此 ROM 上的資料只能被讀取,而不能做任何寫入的動作。

(不過上面是針對使用者的情形。對於工程師來說 ROM 還是可以寫入。不過有些也有寫入次數的限制,比如一兩次。)

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

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

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

(ROM 是用來幹嘛的?和 RAM 差在哪?詳細請參考本系列第三集噢!)

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

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

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

不過由於 SSD 的價格比 HDD 貴、壽命也比較短,所以對企業級伺服器來說——不會有什麼震動、大規模儲存成本低、資料儲存時間長,還是以 HDD 為主要應用。

不過未來也將慢慢以 SSD 硬碟為主,原因不外乎速度快、成本越來越低,最重要還是耗能比傳統硬碟低,在這個越來越講求環保的時代著實是個優勢。

想想從 1980 年代開始至今,三十多年來 CPU 的效能增長超過 10,000 倍,DRAM 的效能成長卻不到 10 倍。(這是因為若要減少電容充電放電的時間,是一件非常困難的事情)

硬碟呢?比起記憶體,更是慢的跟巨型烏龜一樣,十多年才好不容易從 5200 轉爬到 7200 轉。可知個人電腦對於能取代 HDD 的 SSD 需求是多急迫。

 

好啦,希望你已經對於記憶體的基本知識有些概念了:

依照停止供應電源的話、是否還能保留資料,分成「揮發性記憶體」與「非揮發性」記憶體。

> 揮發性記憶體分成 DRAM 和 SRAM。

> SRAM 更快但價格更貴,所以主記憶體多用 DRAM、快取多用 SRAM。

> 非揮發性記憶體分成 ROM 和 Flash。主要用來作為硬碟。

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

下一篇開始,就讓我們來介紹各大記憶體廠商之間的關係與競合策略吧。