第五章 程序的执行
程序执行概述与数据通路
程序及指令执行概述
程序由一条条的指令组成,指令按顺序存放在连续的存储单元中。
用程序计数器PC保存将要执行指令的存储地址(不能由汇编程序直接操作)。
通过改变PC的值来控制指令的执行顺序,PC=PC+“1”直接给PC赋值。
时钟周期是计算机最小的时间周期,即为主频的倒数。
一个机器周期(CPU周期、取指周期)包含多个时钟周期。
一个指令周期又包含多个机器周期和时钟周期。
访问指令和访问数据处于指令周期中不同的机器周期,它们的访问时间点不同,CPU据此进行区分。
指令保存在存储器中,PC中存放的是后继指令的地址,因此PC的位数和存储器地址寄存器MAR的位数相同。
IR称为指令寄存器,用来存放当前正在执行的指令。
CPU中控制器的功能是完成指令操作码译码,并产生操作控制信号。
数据通路
指令执行过程中,数据所经过的路径,包括路径中的ALU、通用寄存器、状态寄存器、cache、MMU、FPU、异常和中断处理逻辑等,是指令的执行部件。
基本结构
两类元件:
组合逻辑元件(操作元件)
时序逻辑元件(状态元件、存储元件)通用寄存器属于状态元件,包含在数据通路中
元件间的连接方式:
总线连接方式(总线方式连接)
分散连接方式(专用连接线互连)
数据通路由操作元件和状态(存储)元件通过总线或分散方式连接而成,进行数据存储、处理与传送
流水线方式下指令的执行
流水线
五段流水线取指令(IF):根据PC的值从存储器取出指令。
指令译码(ID):产生指令执行所需的控制信号。
取操作数(OF):读取存储器操作数或寄存器操作数。
执行(EX):对操作数完成指定操作。
写回(WB):将操作结果写入存储器或寄存器。
空操作指令没有涉及控制或数据,不会阻塞指令流水线。
计算机的CPU时钟周期以各流水段的最长时间为准。
指令系统
适合流水线的指令集特征
长度尽量一致,有利于简化取指令和指令译码操作
格式少而规整,且源寄存器位置相同,有利于在指令未知时就可取操作数
load / Store指令才能访问存储器,有利于减少操作步骤,规整流水线
内存中”对齐”存放,有利于减少访存次数和流水线的规整总之,规整、简单和一致等特性有利于指令的流水线执行。
流水寄存器的插入需要考虑最大时间,平均的时间。
1/1ps = 10^12
CISC与RISC
RISC相比CISC的一大特点,就是通用寄存器数目多,指令周期短,指令系统简单(指令少/ 寻址方式少/ 指令格式少/ 指令长度一致),以RR方式工作。