1、CISC(Complex Instruction Set Computing),RISC(Reduced Instruction-Set Computer),MIPS(Million Instructions Per Second)。
2、CISC编码是可变长度的,IA32的指令长度可以是1~15;RISC编码是固定长度的,通常所有的指令都是编码为4个字节。
3、在硬件设计中,电子电路被用来计算位的函数(function on bits),以及在各种存储元素中存储位。大多数现代电路技术都用信号线上的高电压或低电压来表示不同的位值。要实现一个数字系统需要三个主要的组成部分:计算位的函数的组合逻辑,存储位的存储器元素,以及控制存储器元素更新的时钟信号。
4、通常,处理一条指令包括很多操作。
1)取指(fetch):取指阶段从存储器读入指令,地址为程序计数器PC的值。从指令中抽取出指令指示符字节的两个四位部分,称为icode(指令代码)和ifun(指令功能)。
2)解码(decode):解码阶段从寄存器文件读入最多两个操作数,得到值valA or/and valB。
3)执行(execute):在执行阶段,算术/逻辑单元(ALU)要么执行指令指明的操作(根据ifun的值),计算存储器引用的有效地址,要么增加或减少栈指针。
4)访存(memory):访存阶段可以将数据写入存储器,或者从存储器读出数据。读出的值为valM。
5)写回(write back):写回阶段最多可以写两个结果到寄存器文件。
6)更新PC(PC update,程序计数器):将PC设置成下一条指令的地址。
注:这一部分就是所谓的微指令,在《计算机组成原理》这门课中有讲述。
5、指令执行过程,从PC中取出指令,然后沿着上述的几个步骤操作,周而复始的进行循环。
6、处理器从来不需要为了完成一条指令的执行而读由指令更新的状态。
7、关于处理器的硬件结构设计,SEQ时序,及流水线设计,可以参见书中第四章部分。
<Computer Systems:A Programmer's Perspective>