我们想要构建顺序实现的Y86-64处理器,首先需要构建Y86-64指令集体系结构,然后基于该ISA来构建处理器。
1 Y86-64指令集体系结构
想要定义一个指令集体系结构,需要包含:
- 定义状态单元
- 指令集和他们的编码
- 编程规范和异常事件处理
1.1 状态单元
我们将每条指令会读取或修改处理器状态的部分称为程序员可见状态,如下图所示

- **程序寄存器RF:**这里对x86-64的寄存器进行省略,降低复杂度。其中
%rsp
用于指示出栈、入栈、函数调用和返回地址。
- **条件码CC:**保存最近算数或逻辑指令造成的影响。
- **程序计数器PC:**保存当前正在执行的指令的地址。
- **内存DEME:**操作系统将物理内存抽象为一个单一的字节数组。
- **程序状态Stat:**表明当前程序运行的状态,取值如下图所示。当出现异常时,处理器会调用异常处理程序,这里为了简化,直接让处理器停止执行指令。

1.2 Y86-64指令及其编码
指令集的设计要求字节编码要有唯一的解释。这里实现如下图所示的Y86-64指令集,左侧为汇编指令,右侧为指令对应的编码。