第三章 CPU 的设计 3.1 引言 如果说前面指令集的设计是计算机处理器设计的蓝图,那么如何实现将直接影响到指令集的性能,而处理器实现中的一些问题也会或多或少地影响到指令集的设计。RISC 思想的提出,就是针对 CISC 指令集处理器实现中的困难,从简化指令集出发,降低处理器实现的复杂度,达到降低处理器的开发成本,提高处理器并行度的目的。 处理器实现直接影响到两个重要的性能指标:每条指令实现时钟数(clock per instru ction , CPI)和时钟频率。正象一个木桶能装水的多少取决于它最短一块木头的长度,处理器中各部件最慢的一个决定了处理器的时钟频率,所以处理器的设计必须使每个部件都能以相近的速率协调运行。 通常,我们把处理器又分为两部分:一部分执行算术逻辑运算,以完成"计算机"的计算功能,通常称为数据通道,另一部分则解释计算机机器指令代码,并按这些代码发出控制信号控制数据通道的工作以完成指令,称为控制器。前者由ALU(算术逻辑运算模块, Arithmetic logic u nit)和一些寄存器构成,为处理器工作时数据实际流过的路径,故称为数据通道;后一部分则是处理器中的主控部分,是将指令转换为实际硬件动作的桥梁,故而设计上最复杂,也最容易体现一种处理器的特色。一般处理器的设计主要就是指控制器设计。 3.2 数据通道(datapath) 数据通道是处理器中处理数据的部件,数据从主存取出,经数据通道的处理,得到所需要的结果后,再送回主存存放。整个数据通道的执行受控制器的控制,实际上也就是受指令的控制。 图 3.1 典型的数据通道组成示意图 图 3.1 是一个典型的数据通道组成示意图,在图中也表示出了控制器、主存与数据通道的密切关系,数据通道本身由一个算术逻辑部件(Arithmetic Logic Units,ALU)和一些寄存器组成,并包括两者间的通信渠道。 在冯·纽曼体系中,程序数据的地位是等同的,一起存储在主存中,为了得到适由数据通道执行的指令,首先必须在主存中寻找到指令。这项工作由一个叫程序计数器(Program Cou nter ,PC)的部件来完成。PC 是一个专用的寄存器,存放当前所执行指令的地址,供控制器读取指令时使用。同时,这个寄存器必须随时改变存放的内容,以便使程序能按序执行下去。比如,在正常情况下,每条指令执行前都必须将 PC 中的值增加一个指令长度,取顺序执行的下一条指令,这项工作则由ALU 完成。 ALU 不仅是一个可以完成 PC 递增功能的部件,还是一个通用的计算功能模块。它能独立完成所有的基本运算如...