SRAM vs DRAM:為什麼 CPU 快取用 SRAM 不用 DRAM

modern%20workspace%20with%20laptop%2C%20smartphone...
發表時間:2026 年 10 月 25 日 | 更新日期:2026 年 10 月 25 日 | 編輯:雅寶社區編輯團隊
SRAM vs DRAM:為什麼 CPU 快取用 SRAM 不用 DRAM - 雅寶社區 · 頂客論壇

這個結構的關鍵在於「正回饋」:只要供電持續,兩個反相器就會互相把對方的輸出拉向相反電位,形成穩定的 0 或 1。資料不需要週期性重寫,也不會因為時間過去而消失,這就是「靜態」的意思。讀取時,先把兩條位元線預充電到中間電位,再拉高字元線(wordline)導通存取電晶體,儲存節點會把其中一條位元線稍微拉高或拉低,感測放大器偵測這個微小差值後放大成完整的邏輯準位。

因為是靠電晶體的主動驅動來改變位元線電壓,SRAM 的讀取速度非常快,典型存取時間在 1 奈秒上下,甚至更快。而且讀取是非破壞性的,讀完之後資料依然完好,不需要額外寫回。

2. DRAM:一顆電晶體加一個電容的「動態」儲存

DRAM 的位元單元只有一顆電晶體與一個電容,稱為 1T1C 結構。電容充電代表 1,放電代表 0,電晶體則當作開關,由字元線控制是否讓電容連接到位元線。這種設計的位元面積遠小於 SRAM,因此能在同樣晶片面積下塞進多達十幾倍的容量,單位成本也低得多。

問題在於電容不是理想的儲存元件。電晶體關閉時仍有漏電流,電荷會慢慢流失;再加上讀取時的電荷分享,資料會愈來愈不可靠。因此 DRAM 必須每隔一段時間就把整個陣列的資料讀出再寫回,這個動作稱為「刷新」(refresh)。JEDEC 標準要求每個儲存列在 64 毫秒內至少刷新一次,實際運作時記憶體控制器會以數微秒的間隔穿插刷新命令。

此外,DRAM 的讀取是「破壞性讀取」:電荷分享到寄生電容後,原本的儲存狀態就被破壞了,感測放大器必須立刻把資料寫回。這也是 DRAM 控制邏輯比 SRAM 複雜許多的原因之一。

3. 讀寫流程:破壞性讀取與電荷分享

把兩者的讀取流程並排來看,差異會非常明顯。SRAM 的讀取大致是:預充電位元線、導通字元線、位元單元拉動位元線、感測放大器放大、輸出資料,整個流程只有幾個步驟,且可完全由靜態邏輯控制。

DRAM 的讀取則牽涉更多階段:先預充電(precharge),送出列位址並激活該列(ACT),等待 row access 時間,再送出行位址(CAS),經過 CAS latency 後資料才從資料匯流排輸出;如果下一次要存取的列不同,還得先關閉目前列(precharge)再重新激活。這一連串時序,正是 DRAM 延遲動輒數十奈秒的結構性原因,而不只是「技術還不夠進步」而已。

比較項目

SRAM

DRAM

位元單元結構

6 顆電晶體(6T)

1 顆電晶體 + 1 顆電容(1T1C)

資料保存方式

正回饋鎖存,供電即保存

電容電荷,會漏電流失

是否需要刷新

不需要

需要,週期性 refresh

讀取是否破壞性

非破壞性

破壞性,需寫回

典型存取延遲

約 1 奈秒(數個時脈週期)

約 60~100 奈秒(含控制器)

位元單元面積

較大,約 100~200 F²

極小,約 6~10 F²

單位容量成本

典型用途

CPU 快取、暫存器、TLB

系統主記憶體、GPU 記憶體

三、速度對決:延遲、頻寬與存取粒度

很多人會說「SRAM 比較快」,但「快」到底是什麼意思?在處理器設計裡,延遲(latency)與頻寬(bandwidth)是兩個完全不同的指標。DRAM 的頻寬其實很高,DDR5 一條模組動輒每秒數十 GB,但它的延遲始終降不下來。而快取最在意的,恰恰是延遲。

1. 延遲數量級:1 奈秒與 80 奈秒的差距

以現代 x86 處理器為例,L1 資料快取的命中延遲大約是 4 到 5 個時脈週期,在 3GHz 下約 1.3 到 1.7 奈秒;L2 約 10 到 15 個週期;L3 則落在 30 到 50 個週期,換算約 10 到 20 奈秒。至於 DRAM,從 CPU 發出請求到資料回來,包含記憶體控制器排程、匯流排傳輸與 PHY 延遲,通常在 60 到 100 奈秒之間。

換句話說,一次 DRAM 存取的延遲,大約等於 50 到 100 次 L1 命中。這個差距不是靠「最佳化」可以抹平的,而是由儲存原理與存取時序決定的物理事實。對一條需要即時資料的指令來說,等待 5 個週期與等待 250 個週期,是完全不同量級的世界。

2. 為什麼 DRAM 這麼慢?拆解存取時序

DRAM 的慢可以拆成幾個層次。第一是位址多工:DRAM 為了節省接腳,列位址與行位址是分兩次送出的,這本身就多出一個步驟。第二是列激活時間(tRCD),從送出列位址到資料可以被存取,需要十幾奈秒。第三是 CAS 延遲(CL),從送出可行址到資料出現在匯流排上,又是十幾奈秒。如果這次存取的列與上次不同,還要加上預充電時間(tRP)。

更麻煩的是刷新。刷新會佔用記憶體匯流排,讓原本要進行的存取往後延,形成不可預測的延遲抖動。對於講究管線穩定度的 CPU 來說,這種不確定性本身就是大問題。相對地,SRAM 的存取是固定週期、可預測的,處理器排程器才能精準安排指令。這也是快取設計特別重視「確定性延遲」的原因。

3. 頻寬不是一切:延遲才是快取的關鍵

有人可能會問:既然 DRAM 頻寬那麼大,為什麼不能拿來當快取?關鍵在於 CPU 的存取模式。快取每天處理的是大量細碎、隨機、小粒度的存取,例如讀一個 8 位元組的變數、抓一條 64 位元組的快取線。SRAM 可以針對這類模式做寬匯流排、多埠、低延遲的設計;DRAM 則必須以 burst 方式整批傳輸,還要面對列切換的成本。

打個比方:SRAM 像是放在桌上的工具盒,伸手就拿;DRAM 則像是倉庫,雖然一次可以搬很多貨,但你得先申請、走過去、等待吊車,整個流程耗時甚久。處理器需要的是「隨時伸手就有」,而不是「一次搬很多但等很久」。

四、功耗與面積:SRAM 昂貴的代價

如果 SRAM 又快又穩定,那為什麼不把整顆 CPU 都塞滿 SRAM?答案很現實:面積與成本。這也解釋了為什麼快取容量只能一層一層放大,而不能無限制地堆疊。

1. 靜態功耗與漏電

SRAM 雖然不需要刷新,但只要通電就會有漏電流。隨著製程微縮到 7 奈米、5 奈米甚至更先進節點,電晶體的漏電問題愈來愈嚴重,大容量 SRAM 陣列的待機功耗成為晶片設計的頭痛問題。為此,現代處理器常使用電源閘控(power gating)等技術,把暫時不用的快取區塊斷電以節省功耗。

DRAM 的劣勢則在於刷新功耗:即使系統閒置,記憶體仍必須持續刷新以維持資料,這在伺服器與行動裝置上都是實際的能源成本。不過因為 DRAM 位元密度高,平均分攤到每個位元的刷新能量其實不高。整體來說,兩者在功耗上各有難處,但 SRAM 的優勢是「需要時立刻可用、不需週期性打擾」,這對延遲敏感的運算負載更為關鍵。

2. 單位面積成本:6 倍以上的差距

面積是更決定性的因素。SRAM 的 6T 位元單元需要六顆電晶體,實際佈局面積大約在 100 到 200 平方最小特徵尺寸(F²)之間;DRAM 的 1T1C 單元則可以小到 6 到 10 F²。兩者相差十幾到二十倍,這意味著同樣的晶片面積,DRAM 能提供的容量遠遠超過 SRAM。

更關鍵的是製程整合。DRAM 的電容需要特殊的深溝槽或堆疊結構,必須使用專門的記憶體製程;SRAM 則可以完全用標準邏輯製程製造,與 CPU 核心、周邊電路無縫整合。若要在邏輯晶片上嵌入 DRAM(即 eDRAM),得額外增加好幾道光罩,成本與良率風險都大幅提高。這也解釋了為什麼歷史上只有少數產品採用 eDRAM 快取。

3. 製程微縮下的 SRAM 困境

另一個現實問題是,SRAM 的面積微縮速度在先進製程下已經明顯放緩。電晶體通道變短後,SRAM 位元單元的穩定性(尤其是讀取干擾與寫入裕度)變得難以維持,設計者往往得加大單元面積或採用輔助電路來補救。這使得「用 SRAM 堆大容量快取」的成本愈來愈高,也是近年晶片設計開始導入晶片外快取、3D 堆疊快取的原因之一。

五、快取階層設計:L1、L2、L3 的分工

理解了 SRAM 快但貴、DRAM 慢但便宜之後,快取階層的設計邏輯就一目了然:用多層 SRAM 把「速度」與「容量」這兩個互相衝突的目標折衷起來,再用 DRAM 當作容量後盾。

1. 容量與延遲的取捨

L1 快取最靠近核心,容量通常只有 32KB 到 64KB,延遲壓在 4 到 5 個週期。L2 快取較大,約 512KB 到 2MB,延遲約 10 到 15 個週期。L3 快取則是多核心共享,容量可達 8MB 到 96MB 甚至更多,延遲約 30 到 50 個週期。容量愈大,陣列愈大,位元線與字元線愈長,解碼與感測的延遲也跟著增加,所以不可能把 L1 做得跟 L3 一樣大。

這樣的階層設計讓大多數存取在 L1 就被攔下,少數漏失才往 L2、L3 找,最後才到 DRAM。統計上,L1 的命中率通常超過 90%,這正是快取機制能夠奏效的關鍵。

2. SRAM 在 CPU 內的其他應用

SRAM 在處理器裡的角色不只快取。暫存器堆(register file)本質上就是多埠 SRAM 的變體; Translation Lookaside Buffer(TLB)用 SRAM 實作位址轉換的快取;分支預測器、指令佇列、寫入緩衝區等功能單元,也都大量使用 SRAM 結構。可以說,沒有 SRAM,現代超純量處理器根本無法運作。

這些應用有兩個共同點:需要極低延遲,以及需要頻繁、隨機的小粒度存取。DRAM 的存取粒度與時序特性,完全無法滿足這類需求。這也是為什麼即使 DRAM 容量再大、價格再便宜,也無法取代 SRAM 在處理器內部的地位。

六、思想實驗:如果 L1 快取換成 DRAM 會怎樣?

要真正體會 SRAM 的價值,不妨做個思想實驗:假設我們把 L1 快取換成同樣容量的 DRAM,會發生什麼事?答案不是「變慢一點」,而是「慢到無法使用」。

1. IPC 與管線停頓的估算

假設某處理器理想狀況下每週期可執行 1 條指令(CPI = 1),其中 30% 的指令涉及記憶體存取,L1 命中延遲為 4 個週期。若把 L1 換成延遲 250 週期的 DRAM,每 100 條指令就多了 30 ×(250 − 4)= 7380 個週期的等待,平均 CPI 會從 1 暴增到約 74.8,效能只剩原來的 1/75 左右。

即使把記憶體存取的比率降到 10%,CPI 也會增加到約 25.6,效能剩下不到 4%。這還沒計算 DRAM 刷新、列衝突與多核心爭搶匯流排造成的額外延遲。換句話說,沒有 SRAM 快取,現代處理器的效能會倒退回數十年前的水準,再高的時脈與再多的核心都救不回來。

2. 匯流排、刷新與多核心競爭

除了延遲,還有結構性問題。DRAM 必須透過記憶體匯流排存取,頻寬是有限的;多個核心同時搶用,會產生嚴重的排隊延遲。刷新週期又會不定期打斷存取,讓延遲變得不確定。相對地,每個核心的 L1 是專屬的 SRAM 陣列,可以做到多埠同時存取,不必與其他核心排隊。這種「專屬、低延遲、可預測」的特性,是共享 DRAM 完全無法提供的。

3. 歷史上真的做過:eDRAM 與 L4 快取

有趣的是,業界並非沒有嘗試過用 DRAM 技術做快取。IBM 曾在 POWER7 處理器上使用 eDRAM 作為 L3 快取,容量達 32MB;Intel 也在 Haswell、Broadwell 世代推出搭載 128MB eDRAM 的 L4 快取(Crystal Well),試圖在容量與延遲間取得平衡。這些方案的延遲大約落在 20 到 30 奈秒,比 SRAM 的 L3 慢,但換來更大的容量。

然而這些嘗試最終並未成為主流。原因包括 eDRAM 需要額外製程步驟、成本偏高,以及在先進節點下 DRAM 電容的微縮愈來愈困難。後來業界轉向以 3D 堆疊 SRAM 或 HBM 等方式擴充快取容量,eDRAM 快取便逐漸退出舞台。這段歷史恰好說明:DRAM 技術不是不能沾快取的邊,而是它的物理特性讓它在這個位置上始終處於劣勢。

七、新興記憶體能否取代 SRAM?

近年來,STT-MRAM、ReRAM、PCM、FeRAM 等新興記憶體技術備受關注,許多人會問:這些技術有沒有可能取代 SRAM,成為新一代快取?

1. STT-MRAM、ReRAM、PCM 的現況

STT-MRAM 利用磁穿隧接面儲存資料,具備非揮發性、讀取速度快、耐久度尚可等特性,目前已實際應用於嵌入式記憶體與部分快取替代方案,例如取代 SRAM 作為較低階的快取或工作記憶體。不過它的寫入延遲與寫入能量仍高於 SRAM,耐久度也有限,較適合讀多寫少的場景。

ReRAM 與 PCM 則偏向高密度、非揮發性的儲存級記憶體(Storage Class Memory),速度比 DRAM 慢或相當,但遠不及 SRAM。至於 Intel 曾主推的 3D XPoint(Optane),雖然延遲介於 DRAM 與 NAND 之間,最終仍因成本與生態系因素退出市場。整體來看,這些技術各有定位,但都還沒能在「超低延遲、超高耐久、可隨機存取」這個 SRAM 的守備範圍內形成真正威脅。

2. SRAM 為何仍然難以撼動

SRAM 的優勢在於它是「用標準邏輯製程做出來的靜態鎖存器」:速度快、延遲可預測、可多埠、可與邏輯電路緊密整合、耐久度幾乎無限。這些特性加總起來,使它成為 L1、L2 這類最靠近核心的快取的不二選擇。新興記憶體或許能在 L3、L4 或嵌入式儲存領域找到位置,但要取代 L1 的 SRAM,目前還看不到明確的時間表。

八、常見問題 FAQ

Q1:SRAM 比較快,為什麼不全部都用 SRAM?

因為成本與面積。SRAM 每個位元需要六顆電晶體,面積是 DRAM 的十幾倍以上;若把系統記憶體全部換成 SRAM,價格會高到無法接受,晶片面積也做不出來。此外,大容量 SRAM 的漏電與良率問題同樣棘手。快取階層的存在,就是為了在速度與成本之間取得最佳平衡。

Q2:DRAM 一直刷新,不會很耗電嗎?

會,但因為 DRAM 位元密度高,平均分攤到每個位元的刷新成本相對低。真正耗電的是資料傳輸與列激活。對行動裝置而言,DRAM 的待機刷新確實是電力預算的一部分,因此業界發展出多種省電模式與溫度補償刷新機制來降低負擔。

Q3:L3 快取愈大愈好嗎?

不一定。容量變大雖然能提高命中率,但陣列變大也會讓延遲上升,且佔用晶片面積、增加成本與功耗。此外,不同工作負載對快取的需求差異很大,遊戲、資料庫、科學計算的最佳配置各不相同。處理器設計師必須在命中率、延遲、面積與功耗之間取得平衡。

Q4:手機的處理器也用 SRAM 快取嗎?

是的。無論是智慧型手機的 SoC 或伺服器 CPU,都使用 SRAM 作為 L1、L2、L3 快取,原理完全相同。差別只在於容量配置與功耗管理策略,行動晶片會更積極地使用電源閘控與動態電壓頻率調整來控制 SRAM 的漏電。

Q5:未來會不會有「比 SRAM 更快」的記憶體?

目前學術界與業界持續研究多種新型記憶體,但要在延遲、耐久度、功耗與製程整合上全面超越 SRAM,難度極高。更可能的發展方向是異質整合:SRAM 繼續負責最靠近核心的快取,新興記憶體填補 DRAM 與儲存之間的空白,形成更細緻的記憶體階層。

結語:速度、容量與成本的三方博弈

回到最初的問題:為什麼 CPU 快取用 SRAM 而不用 DRAM?答案可以濃縮成一句話:因為快取要的是「延遲」,而 SRAM 在這件事上擁有 DRAM 無法企及的物理優勢。SRAM 用六顆電晶體把資料鎖在正回饋迴路裡,不需要刷新、不怕破壞性讀取、延遲只有個位數奈秒,還能與邏輯電路緊密整合;DRAM 則用一顆電晶體加一個電容換取極高的密度與低廉的成本,代價是數十奈秒的延遲、複雜的時序與週期性刷新。

處理器的記憶體階層,本質上就是一場速度、容量與成本的三角博弈。L1、L2、L3 用 SRAM 守住速度防線,DRAM 用容量與價格撐起後勤補給,兩者各司其職,缺一不可。理解這個分工,不只在考試或面試時有用,更能幫助你在選購電腦、解讀規格、甚至評估新興記憶體技術時,看出數字背後的真正意義。

下次當你看到「L3 快取 32MB」這種規格時,不妨想想:這 32MB 背後是數億顆電晶體、數十道光罩與無數次的設計取捨。它之所以存在,正是因為工程師很清楚,在 CPU 的世界裡,靠近核心的每一奈秒,都值得用最貴的技術去換。

🏠 返回首頁