第15章 Alpha AXP 處理器

Alpha AXP處理器是一種64位的RISC處理器,它在設計時以提高運行速
度作為主要目標。在AXP中,所有的暫存器都是64位的,其中包括32個整數寄
存器與32個浮點數暫存器。第31號整數暫存器與31號浮點數暫存器只在空操作
(null)中使用,即從這兩個暫存器中讀時將得到0,而向其中寫不會產生任何結
果。另外,AXP處理指令也是32位的,記憶體操作只有讀和寫兩種。
在AXP中,讀與寫之外的操作不能直接在記憶體中進行,而只能通過寄存
器。比如,若想實現一個計數器,就得先將記憶體中保存的計數器值讀到暫存器中,
修改後再寫回記憶體中。暫存器與記憶體還是不同指令之間交互的媒介,即在AXP中
只能先將一條指令的執行結果寫入暫存器或記憶體,然後由另一暫存器讀入這一值。
AXP的另一個值得注意的特徵就是在該系統中有專門用來產生標誌的指令。比如
進行兩個暫存器內容的比較時,比較的結果並不是存儲在某個狀態暫存器中,而是
存在另外一個獨立的暫存器中。這種看似奇怪的設計使得指令操作不再依賴於狀態
暫存器,從而有利於提高CPU內部指令的並行性,因為在這種體系結構中,不相
關的暫存器不需要因為要使用狀態暫存器而進行等待。上文中所提到的不能對記憶體
直接進行操作也同樣有利於多指令間的並行操作。
AXP中使用了一組例程,我們稱之為特權系統函式庫程式碼(privileged
architecture library code,PALcode)。PALcode用於作業系統、AXP中CPU以及
系統硬體的設計。這些例程提供了一些作業系統原生碼用於進行中斷處理、記憶體管理
等。例程可由硬體或CALL_PAL指令調用。PALcode是用標準的Alpha AXP組合語言
語言書寫的,並在功能上進行了擴展,從而能夠對低階的硬體(比如處理器內的暫
存器)進行操作。PALcode在PALmode模式下運行,它一種特權級模式,能暫停
其他事件的運行從而能及時地完成PALcode對硬體的控制操作。