在經過超過半年的漫長過程後,終於要進入第三章了 (處理器發展史實在寫太多節了),第三章要談的是記憶體,不過由於凡是能夠儲存或暫存資料的都可以算是「廣義上」的記憶體,因此本節也會談到一點點有關暫存器、硬碟或是其他儲存裝置的內容 (之後硬碟會有專章介紹)。

記憶體階層架構

如同前面所說,下圖中出現的這些東西基本上都可以算做是廣義上的記憶體,從上而下大致上可以分成四大階層,這四個階層各自具有鮮明的特色。

MHA6855

暫存器 Register

暫存器是處理器運算核心中的一部分電路,基本上只有「暫存」的功能,一般來說暫存器是有專一性的記憶體 (這點跟其他記憶體有很明顯的不同),也就是只能儲存特定類型的資料 (像是馬上要接著執行的指令、馬上會用到的記憶體位置、當下運算單元的狀態等),而且通常都只會用於存放「馬上」就會用到 (例如指令暫存器或記憶體位置暫存器) 或是「隨時」可能用到的東西 (例如常數暫存器),因此位置通常也緊黏著會使用到該資料的電路,甚至在介紹的時候我們會乾脆省略不畫,只表現出其緊連著的功能電路。

ADZ9633

↑ 最簡單的記憶電路-「正反器」

暫存器是所有種類的記憶體當中使用限制最多、成本最高 (也因此容量最小,是以 bit 計算的),但也是速度最快的一種,另一個明顯的特色是與處理器快取一樣,暫存器沒有固定共通的設計規範,在不同地方、不同用途、不同的處理器中可能會使用截然不同的方式來構成,一枚處理器當中也可能有很多種由不同技術設計出來的暫存器,而基本上同架構 (此處的架構是指第二章介紹處理器歷史時談及的 Micro-architecture,例如 Sandy Bridge) 的處理器會具有幾乎完全相同的暫存器規劃,然後因為我不想討論數位電路跟計算機組織的內容,所以暫存器只會介紹到這裡 XD。