|
|
本章以MIPS指令系统中有代表性的几条指令作为实现目标,介绍了单周期数据通路和多周期数据通路的设计过程,以及相应的控制部件的设计。主要内容包括:CPU的主要功能和内部结构、指令的执行过程、数据通路的基本组成、数据通路的定时、数据通路中信息的流动过程、控制器的实现方式、硬连线路控制器的设计、微程序控制器的设计、异常和中断的概念等。具体总结如下: (1)CPU的主要功能 a)周而复始执行指令 b)定时查询有没有DMA请求,有DMA请求的话,则让出总线 c)每个指令周期结束,查询有没有中断请求。有中断请求的话,则响应中断 (2)CPU的内部结构:由数据通路(Datapath)和控制单元(Control unit)组成。 a)数据通路中包含组合逻辑单元和存储信息的状态单元。组合逻辑单元用于对数据进行处理,如:加法器、运算器ALU、扩展器(0扩展或符号扩展)、多路选择器、以及状态单元的读操作线路等。状态单元包括触发器、寄存器、寄存器堆、数据/指令存储器等,用于对指令执行的中间状态或最终结果进行保存。 b)控制单元对取出的指令进行译码,与指令执行得到的条件码或当前机器的状态、时序信号等组合,生成对数据通路进行控制的控制信号。 (3)CPU中的寄存器 a)用户可见寄存器 ①通用寄存器:可用来存放地址或数据 ②数据寄存器:用于保存数据,一般为通用寄存器,需在指令中明显地给出。 ③地址寄存器:用于保存地址。可以是通用寄存器,此时,需在指令中明显地给出。也可以是专用寄存器,不需明显给出编号。如:段指针、变址器、基址器、堆栈指针等。 ④标志(条件码)寄存器:部分可见。值由CPU硬件根据指令执行的结果设定,只能以隐含方式读出其中的若干位,而不能被程序员(非管理程序)改变。 b)控制和状态寄存器(用户不可使用) ①程序计数器PC ②指令寄存器IR ③存储器地址寄存器MAR ④存储器缓冲(数据)寄存器MBR/MDR ⑤程序状态字寄存器PSWR ⑥其他寄存器:如,进程控制块指针、系统堆栈指针、页表指针等。 (4)指令执行过程:取指、译码、取数、运算、存结果、查中断 a)指令周期:取出并执行一条指令的时间,由若干个机器周期组成 b)机器周期:完成一次总线操作访问一次主存或I/O的时间,一个机器周期由多个时钟组成(现代计算机大多数已经没有机器周期的概念,每个指令周期直接由若干个时钟周期组成。) c)时钟周期:CPU中用于操作控制信号同步的信号。是CPU中最小的时间单位。 (5)数据通路的定时方式:现代计算机都采用时钟信号进行定时,规定:一旦时钟有效信号到来,数据通路中的状态单元可以开始写入信息。 (6)数据通路中信息的流动过程:每条指令的功能不同,所以,每条指令执行时数据在数据通路中所经过的部件和路径可能不同。但是,每条指令在取指令阶段都一样。 (7)控制单元的实现方式:根据不同的控制描述方式,可以有两种不同的实现方式。 a)有限状态图描述:将指令执行过程中每个时钟周期所包含的控制信号值的组合看成一个状态,每来一个时钟,控制信号会有一组新的取值,也就是一个新的状态,这样,所有指令的执行过程就可以用一个有限状态转换图来描述。实现时,用一个组合逻辑电路(一般为PLA电路)来生成控制信号,用一个状态寄存器实现状态之间的转换。所以,也称为组合逻辑电路设计方式,实现的控制器称为硬布线控制器。 b)微程序描述:将指令执行过程中每个时钟周期所包含的控制信号值的组合看成是一个0/1序列,每个控制信号对应一个微命令,控制信号取不同的值,就发出不同的微命令。这样,若干微命令组合成一个微指令,每条指令所包含的动作就由若干条微指令来完成。每条指令执行时,先找到对应的第一条微指令,然后按照特定的顺序取出后续的微指令执行。每来一个时钟,执行一条微指令。实现时,每条指令对应的微指令序列事先存放在一个只读存储器中,用一个PLA电路来控制生成第一条微指令地址,用相应的微程序定序器来控制微指令指令流程。这种方式实现的控制器称为微程序控制器。 (8)微程序定序器的实现:有计数器法和下址字段法两种。 (9)中断源的种类: a)内中断:CPU内部在执行某条指令时发生的异常 ①故障:指令执行时异常 ②陷阱:自愿访问管理程序 ③终止:硬件故障 b)外中断:外设或它机通过中断请求线申请,与执行指令无关 |