DRAM是什麼?動態隨機存取記憶體用電容記住資料的原理
DRAM(動態隨機存取記憶體)是電腦、手機和伺服器的「記憶體」所用的半導體晶片。它用一個小開關,加上一個存電的小容器,記住1位元。容器裡的電會一點一點漏掉。所以DRAM每隔數十毫秒,就把全部內容重寫一次,來保住資料。
這篇文章可以了解
- DRAM用在哪裡、用來做什麼
- 記住1位元的原理,以及為什麼需要重寫(更新)
- 一讀取內容就會減少的問題,以及彌補它的電路
- 「隨機存取」的意思、「DDR5」「LPDDR」等名稱的看法,以及主要廠商
先備知識:知道記憶體是「放置工作中的資料、關掉電源就會消失的地方」,會比較容易閱讀。「記憶體和儲存空間有什麼不同?」有說明。
生活中的例子:「記憶體16 GB」裡面是什麼
電腦的規格表上,會寫著「記憶體 16 GB DDR5」;手機則寫著「RAM 8 GB」等。這個「記憶體」或「RAM」的真面目,就是DRAM晶片。CPU工作時,它是暫放程式和資料的地方。
桌上型電腦會把幾顆DRAM晶片裝在細長的電路板上,再插進插槽使用。這種板子就是記憶體模組,代表性的形式叫做DIMM。只要改變插的片數,之後就能增加容量。
手機和輕薄筆電,則把DRAM晶片直接焊在電路板上。這樣能節省空間,但之後就不能增加。資料中心的伺服器,裝的DRAM比電腦多得多。AI運算用的晶片(GPU)旁邊,也放著把DRAM堆疊起來的零件。
形狀和位置雖然不同,記住資料的原理都一樣。本文會依序說明這個原理。
原理①:1位元就是「開關」和「容器」一組
DRAM用2個零件,記住一個0或1(1位元)。一個是開關,負責接通或切斷電的通路。這就是電晶體(「電晶體是什麼?」)。
另一個是存電的小容器,這種零件叫做電容器,也常簡稱電容(「電容器是什麼?」)。我們先規定:容器裡存著電就是1,空的就是0。開關切斷時,容器和外面隔開,把電關在裡面。
記住1位元的這一組,叫做「記憶單元」。因為只有2個零件,可以做得非常小。1顆晶片上,排列著數十億個這樣的記憶單元。
打開開關的訊號線,會一起連到橫向排成一排的記憶單元。這條線叫做字元線。對1條字元線送出訊號,那一排的開關就會同時打開。
開關的另一端,接到另一條直向的線。資料就經由這條線,進出記憶單元。這條線叫做位元線。
這個原理是IBM的Robert Dennard在1966年想出來的。現在的DRAM,基本形式也一樣。1970年,Intel推出了產品「1103」。1103每1位元使用3個電晶體,記憶單元的形式稍有不同。即使如此,它仍是第一個能在價格上和磁芯記憶體競爭的半導體記憶體。磁芯記憶體用小小的磁環記住資料,是當時的主流。
原理②:電會漏掉,所以要一直重寫
容器裡的電,即使開關切斷,也會一點一點漏掉。因為開關和容器,都無法完全擋住電。放著不管,記住1的記憶單元,就會變得和0分不出來。
所以DRAM會在內容消失前把它讀出來,再寫回同樣的值。這叫做更新(refresh)。DRAM的「D」是「Dynamic(動態)」的縮寫,表示它需要不停地維護。
重寫的間隔,由制定半導體規格的業界團體JEDEC決定。在DDR4這個世代,85 ℃以下時,要在64毫秒(0.064秒)內,把所有記憶單元各重寫1次。溫度高時漏得更快,所以超過85 ℃就縮短為32毫秒。新的DDR5,即使在85 ℃以下也是32毫秒。
如果一次重寫全部的記憶單元,這段時間內記憶體就不能用。所以在DDR4,CPU端的電路會在64毫秒內,發出8,192次重寫的指令。晶片每收到一次指令,只重寫一部分的記憶單元。指令大約每7.8微秒(1微秒是100萬分之1秒)1次。更新會穿插在平常的讀寫之間進行。
關掉電源,更新也會停止。漏掉的電不會回來,所以內容遲早會消失。這就是DRAM關掉電源就會失去內容的原因。
原理③:一讀取內容就會減少,由感測放大器寫回
記憶單元的容器非常小,能存的電極少。另一方面,位元線是連接許多記憶單元的長線。開關一打開,容器的電就會散到位元線上而被稀釋。線上的電壓,只會變動一點點。
所以在讀取前,要先把位元線調到0和1正中間的電壓。這個準備叫做預充電。記憶單元是1時,電壓會稍微上升;是0時,會稍微下降。
有一種電路,能分辨這微小的升降,並放大成清楚的0或1的電壓。這叫做感測放大器。名稱的意思是「感測(sense)並放大(amplify)」。
散到位元線上的電,不會自己回到容器裡。也就是說,DRAM是一讀取內容就會被破壞的記憶體。不過,感測放大器確定下來的值,會直接經由位元線寫回容器。讀取的同時,也完成了重寫。更新也是利用這個機制。
這裡為了簡化,省略了感測放大器內部的電路。重點是它的任務:「分辨微小的差異並放大,順便寫回去」。
原理④:用列和行決定位置,「隨機存取」的意思
晶片裡的記憶單元,像棋盤的格子一樣縱橫排列。橫的一排叫做「列」(row),直的一排叫做「行」(column)。想讀的位置,用「第幾列第幾行」的號碼指定。
讀取時,先用字元線選出1列。這叫做「開啟一列」。這時,那一列的記憶單元會全部經由各自的位元線,讀到感測放大器裡。接著再用行的號碼,從中只把需要的部分送到外面。以美光(Micron)的DDR4晶片為例,1列有8,192位元(1 KB)。
只要在開啟的列裡面,改變行就能連續快速讀取。要換到別的列時,必須先關閉現在的列,重新對位元線預充電,再開啟新的列。等待時間就會因此變長。
RAM是「Random Access Memory(隨機存取記憶體)」的縮寫。這裡的「隨機」,不是亂七八糟的意思。而是不論哪個號碼的位置,都不必依序經過,就能直接讀寫。這個名稱是和磁帶等裝置相比而來的。磁帶必須從頭依序轉過去,才能到達目標位置。
不過如上所述,同一列連續讀取時快,跨列時就慢。要注意,它並不是「任何位置都完全一樣快」的意思。
1顆晶片裡,裝了好幾組這樣的棋盤格子。能各自獨立動作的1組,叫做記憶體庫(bank)。某個記憶體庫開啟一列時,可以在別的記憶體庫準備下一步,因此能把等待時間藏起來。
DRAM、SRAM、快閃記憶體的差異
半導體記憶體除了DRAM,還有其他代表性的種類。CPU裡有存放常用資料副本的快取,用的是SRAM(「快取記憶體的原理」)。手機的儲存空間和SSD,則使用快閃記憶體。
SRAM通常用6個電晶體的電路記住1位元。只要通著電就能保住值,所以不需要更新。它的速度快,但每1位元占的面積大,不適合做成大容量。
快閃記憶體是把電子關在不導電的膜包住的小室裡,來記住資料。關掉電源也不會消失,但讀寫比DRAM慢得多,覆寫次數也有上限(「SSD與快閃記憶體的原理」)。
| SRAM | DRAM | 快閃記憶體 | |
|---|---|---|---|
| 1個記憶單元的零件 | 6個電晶體 | 1個電晶體和1個電容器 | 1個特殊的電晶體 |
| 關掉電源後 | 消失 | 消失 | 保留 |
| 更新 | 不需要 | 需要 | 不需要 |
| 讀取等待時間的參考值 | 約1奈秒 | 約100奈秒 | 約50微秒 |
| 主要用途 | 快取 | 主記憶體 | 儲存空間 |
等待時間是從CPU來看的大約參考值(1奈秒是10億分之1秒)。SRAM以CPU裡的快取為例,快閃記憶體以SSD等常見的晶片為例,會依產品而不同。3者擅長的事不同,所以電腦會組合使用。想用表格詳細比較,可以看「DRAM與SRAM的差異」和「DRAM與NAND快閃記憶體的差異」。
DDR與LPDDR:世代名稱的看法
電腦和伺服器的DRAM,依照和CPU交換資料的方式規定,分成不同世代。現在的標準方式是DDR SDRAM。規格表上的「DDR5」,意思是它的第5個世代。
DRAM和CPU會配合以固定節奏發出的訊號,來傳送資料。這個訊號叫做「時脈」。DDR是「Double Data Rate(雙倍資料速率)」的縮寫。訊號的波在上升和下降時都會傳送資料,所以1次訊號能傳2次。
下表是JEDEC發表各世代規格的時間,以及1條資料線的速度。MT/s是「每秒傳送100萬次」的單位,3,200 MT/s就是每秒32億次。
| 世代 | 規格發表 | 1條線的速度 | 電源電壓 |
|---|---|---|---|
| DDR3 | 2007年6月 | 800~1,600 MT/s | 1.5 V |
| DDR4 | 2012年9月 | 1,600~3,200 MT/s | 1.2 V |
| DDR5 | 2020年7月 | 從4,800 MT/s起(2024年的修訂提高到8,800 MT/s) | 1.1 V |
速度是各規格最初訂定的範圍(DDR5包含了後來的修訂)。DDR3之前,還有DDR和DDR2的世代。世代一換,插槽的形狀和電氣規定都會改變,所以DDR5不能插進DDR4的插槽。
手機和輕薄筆電使用的是LPDDR,這是為了少用電而改良的DRAM。LP是「Low Power(低功耗)」的縮寫。它會降低電壓,或讓沒在用的部分細分開來休息。2025年7月,JEDEC發表了新一代的LPDDR6。
繪圖用的GDDR,以及把晶片堆疊起來的HBM,裡面也是DRAM。不同的是晶片的排列方式,以及和CPU、GPU的連接方式。HBM在「HBM是什麼?」有詳細說明。
誰在製造?DRAM的廠商
全世界能大量生產DRAM的公司,只有極少數。調查公司TrendForce統計了2026年第2季(4~6月)的營收市占率。第1名是韓國的三星(Samsung),占39.4%。第2名是韓國的SK海力士(SK hynix),占24.9%。第3名是美國的美光,占23.3%。3家合計約占9成。
排名會隨價格的變動,以及AI用HBM的銷售情況而互換。同樣根據TrendForce的調查,2025年第1季(1~3月),是SK海力士超越三星,成為第1名。在新聞上看到市占率時,要確認是什麼時候、由誰調查的。
DRAM也和日本有關。日本的DRAM廠商爾必達記憶體(Elpida),在2013年被美光收購。當時,位於日本廣島的DRAM工廠,也成為美光的工廠。
常見的誤解
誤解:電腦的記憶體(DRAM)關掉電源後,仍然記得資料
實際上,關掉電源後更新就會停止,內容會消失。沒存檔的文件會不見,就是這個原因。誤解的來源是電腦的「睡眠」。睡眠時仍有一部分電源開著,DRAM會自己繼續更新(自我更新)。另外,內容並不是一瞬間全部消失。2008年普林斯頓大學等的研究發現,即使在一般溫度下,內容也會留下幾秒;冷卻後,會留得更久。
誤解:記憶體容量(GB)越大,電腦就越快
實際上,容量是「一次能放多少」的數字,不是速度本身。不夠時,和儲存空間之間的資料交換會增加,電腦就會變慢。夠用時,再增加容量,速度也幾乎不變。影響速度的是世代、1條線的速度(MT/s),以及能同時使用的通道數。例如在許多電腦上,同樣是16 GB,插2片8 GB會有2組通道,比插1片時能搬更多資料。
從數字來看
| 項目 | 數字 | 比較 |
|---|---|---|
| 重寫全部記憶單元的間隔(DDR4,85 ℃以下) | 64毫秒 | 每秒約16次 |
| DDR4的更新指令 | 64毫秒內8,192次 | 約每7.8微秒1次 |
| DDR4的8 Gb晶片的內容(美光的例子) | 16個記憶體庫×65,536列×1,024行×8位元 | 合計約86億位元 |
| 開啟1列時讀出的位元 | 8,192位元(1 KB) | 送到外面的只是其中一部分 |
| DDR5-6400記憶體1片能搬的量 | 每秒51.2 GB | 2片(2組)每秒102.4 GB |
| 前3大廠的營收市占率(2026年第2季) | 合計87.6% | 約9成 |
這顆晶片每個行號,一次存取8位元。把8 Gb(gigabit)晶片的數字乘起來,是8,589,934,592位元。這是把2連乘33次得到的數,記憶體的「8 Gb」就是用這種算法。8位元是1位元組,所以把8顆這種晶片排在一起,就是8 GB的記憶體。
DDR5的1片記憶體,資料線合計有64條(相當於8位元組)。DDR5-6400是每條線每秒傳送64億次(6,400 MT/s)的產品。8位元組乘以64億,就是每秒51.2 GB。這是理論上的最大值,實際能用的量會少一些。
進一步學習
- 用表格看差異:「DDR4與DDR5的差異」、「DDR、LPDDR、GDDR、HBM的差異」
- 用數字試試看:「記憶體頻寬計算器」(可以從線的條數和速度,算出能搬的量)
- 下一步的用語:1T1C單元(DRAM記憶單元的正式名稱)、列鎚攻擊(Rowhammer,多次開啟同一列,相鄰列的內容就會改變的現象)
- 更進一步的用語:CAS延遲(指定行之後,到資料出來為止的等待時間)、ECC(找出錯誤並更正的機制)、3D DRAM(把記憶單元垂直堆疊的研究)
- 用圖來看:用電路圖符號畫的DRAM記憶單元圖,在圖解的一覽中
- 相關文章:「AI為什麼要用GPU?」(記憶體速度拖慢運算的話題)