第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对硬件的控制操作。