開始玩

← fab24hr 專欄

晶片入門約 5 分鐘

記憶體和處理器差在哪?DRAM 和快閃記憶體又差在哪

處理器負責「算」,記憶體負責「記」。處理器也叫邏輯晶片,照著程式一步一步做計算、做判斷;記憶體把程式和資料存著,等處理器來拿。記憶體最常見的有兩種:DRAM 很快,可是一斷電就忘,手機規格上寫的「RAM」就是它;快閃記憶體慢得多,可是斷電還記得,手機的「128GB、256GB」容量就是它。一支手機裡,這三種晶片都有。

處理器和記憶體,怎麼分工?

把處理器想成坐在書桌前做事的你。

  • DRAM 是書桌:攤在桌上的東西,伸手就拿得到,可是桌面不大;一關燈(斷電),桌面就清空。
  • 快閃記憶體是書櫃:放得多,放著也不會不見,可是要起身去拿,比較慢。

打開一個 App,就像從書櫃拿一本書攤到桌上:程式從快閃記憶體複製到 DRAM,處理器再從 DRAM 一筆一筆拿來算。晶片還有哪些種類,可以先讀「晶片是什麼?」。

處理器為什麼叫「邏輯」晶片?

晶片裡最多的是電晶體,一個用電控制的小開關,通了是 1,斷了是 0(電晶體是什麼?)。幾個開關接在一起,可以做成「兩個都是 1,才出 1」「有一個是 1,就出 1」「進來 1,出去 0」這種小電路,叫邏輯閘。邏輯閘再一層一層組合,就會做加法、比大小、照條件決定下一步。「邏輯」兩個字就從這裡來。電腦和手機的處理器、顯示卡上算圖的晶片,都是邏輯晶片。

處理器身上其實也有一點記憶體,像書桌旁的一張便條紙。它叫 SRAM,記一個 0 或 1 要用六個電晶體,不用刷新、非常快,可是很佔地方,所以只放少少的,記處理器下一刻馬上要用的東西。

DRAM 為什麼斷電就忘?

DRAM 的一格,是一個電晶體加一個電容。電容像一個小杯子,裝了電是 1,空的是 0;電晶體是杯子的門,要讀、要寫才打開。

麻煩是這個杯子會漏,電會慢慢流掉。所以 DRAM 得不停地把每一格讀出來、再裝回去,這叫刷新。照公開的標準,一般溫度下每一格每隔幾十毫秒就要刷一次(有的標準是 64 毫秒,有的是 32 毫秒),等於一秒十幾到三十幾次。DRAM 的 D 是 dynamic(動態),說的就是這件事。一斷電,沒人刷新,資料很快就不見了。手機螢幕關著、東西還留著,DRAM 也得繼續刷新,這也要花一點電。

它的好處是快:讀一筆資料只要幾十奈秒(一奈秒是十億分之一秒)。

快閃記憶體為什麼斷電還記得?

快閃記憶體的一格也是一個電晶體,不過在閘極(控制開關的那道門)和底下的通道之間,多夾了一個專門關電子的地方,四周用絕緣層包得緊緊的,像一個沒有門的小房間。要寫,就加比較高的電壓,把電子硬推過很薄的絕緣層,關進這個小房間。電子出不來,斷了電也還在,一般可以留好幾年。房間裡關了電子,這個開關就變得比較難打開;讀的時候試一下好不好開,就知道是 0 還是 1。

代價是慢。把電子推進推出要時間,而且不能只擦一格,要一次擦掉一整塊。「快閃」這個名字,據說就是因為一次擦掉一大塊,讓人想到相機的閃光燈。光是讀,也要幾十微秒(一微秒是百萬分之一秒),比 DRAM 慢了幾百倍到上千倍;寫和擦更慢。每一格能擦寫的次數也有上限,所以控制電路會把寫入平均分到各格。

新聞常說的 NAND,就是手機和固態硬碟裡這種快閃記憶體;格子串成一串的接法,像一種叫 NAND 的邏輯閘,名字就這樣來。手機規格表常把容量寫成「ROM」,是以前留下來的叫法,裡面其實也是快閃記憶體。

一支手機,為什麼兩種記憶體都要?

因為兩種各缺一樣:

  • 快閃記憶體太慢:處理器直接從它拿資料,會一直在等;而且這種快閃記憶體不能讓處理器直接在上面跑程式,要先搬到 DRAM。
  • DRAM 會忘,也比較貴:同樣的容量,DRAM 貴得多,又一斷電就清空,不能拿來放照片。

所以照片、App、系統放在快閃記憶體,正在用的那一部分搬到 DRAM。手機的 RAM 通常是幾 GB 到十幾 GB,容量常常大上十倍以上。重新開機之後 App 要從頭開,就是因為 DRAM 清空了,要再從快閃記憶體搬一次。

記憶體晶片和邏輯晶片,做法差在哪?

記憶體晶片:同一種格子,重複排上幾十億個以上。 一顆 DRAM 晶片有幾十億到上百億格,每一格都長一樣,像用同一種磁磚鋪滿一大片地板。比的是每一格能不能再小一點:格子越小,一顆裝得越多,每一位元就越便宜。因為格子都一樣,設計時還會多放幾排備用的;測出哪一排有壞格,就換上備用的那一排,整顆晶片還能用,良率就高一些。

格子越做越小,兩種記憶體各有難處:

  • DRAM:杯子變窄了,還是要裝得下夠多的電,只好往上長,做成又高又細的柱子,高度是寬度的幾十倍。
  • 快閃記憶體:平面上縮不太下去,就把格子一層一層往上疊,現在已經疊到上百層,再從上面蝕刻出又深又細的洞,穿過一層又一層。

邏輯晶片:線路比較雜,拼的是開關夠不夠快。 處理器裡很大一部分的電路長得各不相同,看不太出重複的圖案;導線也比較複雜,最先進的會疊到十層以上,DRAM 的導線層通常少得多。邏輯晶片最在意電晶體切換得快不快,所以新的電晶體做法常先用在它身上;記憶體更在意每一位元便宜,旁邊控制用的電晶體常常刻意不用最新的做法。

另外,新聞說的「2 奈米」「3 奈米」,講的是邏輯晶片的世代(新聞說的「2 奈米」,是什麼東西 2 奈米?);記憶體有自己的算法,DRAM 用自己的一套世代代號,快閃記憶體常用「疊了幾層」來比。AI 晶片旁邊那種特別的記憶體,可以讀「高頻寬記憶體(HBM)」。

在 fab24hr 裡

遊戲裡的研發線、量產廠、封測廠都是虛構的,裡面沒有記憶體廠,也沒有說晶片裡哪一塊在算、哪一塊在記。主線「晶片的一生」跟著的,是一顆虛構的助聽器晶片「螢火」:它要讓一顆鈕扣電池多撐好幾天,所以晶片什麼都不做的時候還在漏的電(漏電),客戶的產品工程師說是這顆晶片最重要的一個數字。第 10 章「待機電流」,你是測試工程師,要決定針測時這個電流的上限畫在哪、寫進測試程式:卡緊,良率掉;放寬,電池撐不久。遊戲裡的公司、晶片、人物和數字都是虛構的;處理器和記憶體怎麼分工、DRAM 和快閃記憶體怎麼記,照公開的一般資料寫。其他行話可以到「半導體晶圓廠的行話,白話解釋」查。

在遊戲裡你會在哪裡遇到它主線「晶片的一生」跟著一顆虛構的助聽器晶片「螢火」,它要讓一顆鈕扣電池多撐好幾天;第 10 章「待機電流」,測試工程師要決定晶片什麼都不做的時候還在漏的電,多高就擋下來。

在 fab24hr 裡,一顆晶片什麼都不做的時候還在漏多少電,是測試工程師要定上限的數字。

從第 10 章「待機電流」開始玩

其他文章

這個網站的其他頁