處理器快取 Cache
比起暫存器那種通常只出現在技術解說與計算機組織相關書籍上的東西,處理器快取應該知道的人就多很多了吧,我們選購處理器的時候時常注意的一項規格之一就是「這枚處理器有幾 MB 的快取」,可不是嗎?
以上面這盒當年售價要將近兩萬元的 i7-4930K 來說,在包裝盒上就強調了其有內建 12 MB 的快取記憶體,不過實際上 Core i 家族討論快取大小的時候,指的其實只有快取中的一部分,或許你會好奇這是甚麼意思?實際上在現代的處理器中,處理器快取這一階層之中還有額外分層,最近比較常見的設計是三層式的,比較少見到四層甚至以上的做法,至於這個分層其實是有典故的,主要原因是技術的演化與成本的考慮。
回顧上一章談了很久的處理器演化史,1985 年發佈的 Intel 80386 是第一款使用快取記憶體來加速處理器存取資料的處理器,不過當時的快取記憶體是獨立放在主機板上的晶片 (還可以拔起來換),基本上只能以處理器本身不到一半的時脈運作 (於是從此記憶體階層從三層變四層了),直到 1989 年發佈的 Intel 80486 才開始在 CPU 上整合 8KB 的快取記憶體,這就是現代 x86 處理器中 L1 (即 Level 1) Cache 的初登場,而原本在主機板上的快取記憶體晶片就變成 L2 Cache 了 (一如預期,L2 通常比 L1 來得大上許多,但也慢了不少)。