指令周期
指令执行流程
基本概念
时钟周期
CPU的基本时间计量单位,是CPU一切操作的计时标准和基本控制信号,由计算机的主频决定
机器周期(CPU周期)
CPU通过总线从内存读取一个机器字的时间称为一个CPU周期,一般需要4个时钟周期,分别称为T1、T2、T3、T4状态
指令周期
执行一条指令需要经过读取指令、指令译码、指令执行的过程,把执行一条指令所需要的时间称为指令周期。不同指令的指令周期是不等长的,最短时间为两个机器周期,一个机器周期取指令,一个机器周期执行指令;有的复杂的指令需要更多机器周期
取指周期
取指令操作
间址周期
取得有效地址
执行周期
取得操作数完成具体操作
中断周期
保存程序断点
寄存器传送语言
含义
是一种描述数字系统内部各模块之间连接关系的高级描述方法。它既表示了寄存器传输操作,又与硬件之间有简单对应关系,方便设计工具使用。
寄存器传送微操作
RTL级描述中,可以将二元信息从一个寄存器传送到另一个寄存器,而在操作中信息的内容不会发生改变。这种传送操作是一个复制过程,不改变源寄存器的内容。
其他微操作
RTL级描述还涵盖了其他微操作,包括算术运算、逻辑运算和移位操作。
寄存器间传送操作
在RTL级描述中,使用大写英文字母表示寄存器,也可以用图形表示。
无条件传送语句的格式为:A → B,其中B是源寄存器,A是目的寄存器。
传送操作是一个复制过程,不改变源寄存器的内容。
数据通路及指令操作流程
含义
部件之间传输的路径称为数据通路
数据通路由控制部件控制,控制部件根据指令功能的不同,生成对数据通路的控制信号
功能
实现CPU内部的运算器和寄存器、以及寄存器和寄存器之间的数据交换
基本结构
CPU 内部单总线方式。
将所有寄存器的输入端和输出端都连接到一条公共通路上,这种结构比较简单,但数据传输存在较多的冲突现象。
CPU 内部多总线方式。
将所有寄存器的输入端和输出端都连接到多条公共通路上,同时在多个总线上传送不同的数据,提高效率。
专用数据通路方式。
根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,但硬件量大。
指令流水线
基本概念
核心:并行处理技术
并行和并发的含义:
并行性:两个以上事件在 同一时刻 发生。例如在多 CPU 系统中,同一时刻多个进程在运行
并行性的三种形式:
时间并行: 让多个处理过程在时间上相互错开,轮流地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。时间并行性概念的实现方式就是采用流水处理部件
空间并行:设置重复资源,同时工作。空间并行技术主要体现在多处理器系统和多计算机系统
时间并行+空间并行:时间重叠和资源重复的综合应用
并发行:两个以上事件在 同一间隔内 发生。如某一时刻 CPU 中只有一个进程运行,而一个时间段内多个进程同时运行
影响流水线的因素
设一条指令流水线包含5个子过程:取指令(IF)、指令译码(ID)、计算有效地址(EX)、取操作数(MEM)、结果回写(WB)
结构相关(资源冲突):
多条指令在同一时刻争用同一资源而形成的冲突
解决方法:
前一指令访存时,使后一条相关指令(及其后续指令)暂停一个时钟周期
单独设置数据存储器和指令存储器,使两项操作各自在不同的存储器中进行(属于资源重复配置)
数据相关(数据冲突):
指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令为是数据相关,当多条指令重叠处理时就会发生冲突
解决方法:
数据旁路技术:设置相关专用通路,即不等前一条指令把计算结果写回寄存器组,下一条指令也不再读寄存器组,而是直接把前一条指令的ALU的计算结果作为自己的输入数据开始计算过程,使本来需要暂停的操作变得可以继续执行
把遇到数据相关的指令及其后续指令都暂停1到n个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞和软件插入“NOP”指令两种方法
通过编译器对数据相关的指令编译优化的方法,调整指令顺序来解决数据相关
控制相关:
当执行转移指令时,依据转移条件的产生结果可能顺序取下条指令,也可能转移到新的目标地址取指令,从而使流水线发生断流
解决方法:
延迟转移法:
基本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令之后已进入流水线的少数几条指令继续完成。如果这些指令是与结果有关的指令,那么延迟损失时间片正好得到了有效的利用,否则将结果丢弃
转移预测法:
用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过记录产生转移的指令和转移地址,将转移预测提前到取指阶段进行,使用转移取和顺序取两路指令预取队列器,以获得良好的效果
时序与控制
中央处理器的时序
含义
CPU在执行指令和操作过程中的时间顺序
作用
时序控制系统是控制器的心脏,功能是为指令的执行提供各种定时信号。它规定在这个脉冲到来时做什么,在那个脉冲到来时又做什么,给计算机各部分提供工作所需的时间标志。
控制方式
同步控制方式
同步控制是指系统有一个统一的时钟,所有控制信号均来自这个统一的时钟信号。优点是电路简单,缺点是速度慢。
异步控制方式
异步控制是指不存在基准时标信号,各部件按自身固有的速度工作,通过应答方式联络。优点是运行速度快,缺点是控制电路复杂。
联合控制方式
联合控制是同步控制、异步控制的折中,对不同指令的微操作实行大部分采用同步控制、小部分采用异步控制的方法。
时序发生器
含义
时序发生器通常作为时序控制器使用,为各种逻辑门和寄存器输入同步的脉冲信号。
作用
时序发生器负责产生CPU时钟以及各种输入输出接口的时序控制。在数字控制设备中,经常要用到时序脉冲发生器(又称节拍脉冲发生器或脉冲分配器)。它有许多条输出线,在这些输出线上能依次出现节拍控制电位(或时序脉冲),用以协调机器各部分的动作。
硬布线控制器
三级时序硬布线控制器
含义
三级时序硬布线控制器是一种控制器设计,它基于传统的三级时序模型,包括节拍脉冲、状态周期电位和节拍电位。
作用
三级时序硬布线控制器的主要作用是产生固定时序的控制信号,这些控制信号用于驱动计算机的各个功能部件。
三级时序硬布线控制器设计
设计三级时序硬布线控制器首先需要设计时序产生器,然后根据这三级时序的不同组合,获得相应的状态机。在执行指令周期中,一共有8个状态,这8个状态的前后对应关系是确定的,处在不断地往返循环当中。可以用一个3位的状态寄存器来表示这8种状态,将目前的状态即现态分别输入到状态机组合逻辑和时序产生器组合逻辑中,前者会将现态变成次态(即过去的状态),根据次态产生该次态的下一个状态,变成新的现态;后者会根据现态产生相应的时序信号。
现代时序硬布线控制器
含义
现代时序硬布线控制器是一种更加灵活的控制器设计,它不再依赖于固定的机器周期,而是可以根据指令的实际需要动态地调整指令周期。
作用
现代时序硬布线控制器的主要作用是提供更加灵活和高效的控制信号生成,以适应各种不同的指令需求。
现代时序硬布线控制器设计
设计现代时序硬布线控制器时,需要首先构建时序产生器,然后根据指令译码信号、时钟信号和反馈信号,生成对应的控制信号序列。在指令执行过程中,状态的切换除了与时钟有关系以外,还跟指令的译码信号有关系。将所有指令在执行的不同阶段,都用一个状态唯一的标识,比如上表中,将指令分节拍表示成了16个状态来表示,我们用一个四位的状态机来表示指令执行的不同的状态,这样的话,指令执行过程中,所有的信号只与对应的状态有关。
微程序控制器
基本概念
微程序控制器的基本原理是将一条指令的微操作控制信号序列,以二进制编码字(称为微指令)的形式编制成程序(称为微程序),并存放在控制存储器中。执行指令时,通过依次读取一条条微指令,产生一组组操作控制信号,控制有关功能部件完成一组组微操作,从而完成一条指令的功能。
组成原理
微程序控制器的核心成分是控制存储器 (CM),由ROM器件实现,用于存储按一定规则组织好的全部的控制信号。微程序控制器的工作原理是依据读来的机器指令的操作码找到与之对应的一段微程序的入口地址,并按由指令具体功能所确定的次序,逐条从控制存储器中读出微指令,以“驱动”计算机各功能部件正确运行。
微程序控制器设计
微程序控制器的设计思路是将操作控制信号编制成微指令,存放在存储器中,运行的时候,从存储器中取出微指令,从而产生指令运行所需要的操作控制信号。所以所谓的微程序设计技术,实际上是用软件的方法来设计硬件的技术。
微指令及其编码方法
直接表示法:微指令操作控制字段的每一位都直接表示一个微命令,该位为“1”,表示执行这个微命令。
最短编码法:将所有的微命令进行统一编码,每条微指令只定义一个微命令。
字段直接编码法:将微指令的微命令字段分为若干小字段,把互斥性微命令组合在同一字段中,把相容性微命令组合在不同的字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其他字段无关。
异常与中断处理
异常(内中断)
CPU内部产生的意外事件
分类
异常由CPU内部产生,分为硬故障中断和程序性异常。
硬故障中断:硬件连线出现异常引起。例如存储器校验错误,总线错误
程序性中断:又称软件中断,是在CPU内部因为执行指令而引起的异常。例如整除以0
按照异常的发生原因,返回方式的不同,异常可以分为故障、自陷、终止
故障和自陷属于程序性中断。终止和外中断属于硬件中断
1)故障(Fault
引起故障的指令启动后、执行结束前被检测到的异常事件。
例如指令译码出现非法操作码、取数据发生“缺页/缺段”等
某些故障可以解决(缺页故障),某些必须终止执行(整除以0)
2)自陷(Trap
又称陷阱或陷入,是预先安排好的一种“异常”事件。通常在程序中用特殊指令或设置控制标志来人为设置陷阱
注意:当自陷指令是转移指令时,并不是返回到下一条指令执行,而是返回到转移目标指令执行
3)终止(Abort
执行指令过程中出现使计算机无法继续执行的硬件故障,例如控制器出错、存储器校验错误等。
和故障、自陷不同,终止不是由特定指令产生的,而是随机发生的
中断(外中断)
CPU外部的设备向CPU发送的中断请求称为中断。通常用于信息输入或输出
中断和异常本质上一样,但有两个重要不同点:
异常是由特定指令在中产生的,而中断不和任何指令相关联,也不阻止任何指令的完成
异常的检测由CPU完成,而中断必须通过中断请求线获取中断源信息。
分类
中断是指来自CPU外部,与CPU执行的指令无关的事件引发的中断,包括IO设备发出的I/O中断、或者某些特殊事件(用户输入)
外部IO设备通过特定的中断请求信号线向CPU发送中断请求,CPU执行完一条指令就检查中断请求信号线,如果检测到中断请求,就进入中断响应周期
中断分为可屏蔽中断和不可屏蔽中断
可屏蔽中断
通过INTR向CPU发送中断请求。CPU可以通过在中断控制器中设置相应的屏蔽字来屏蔽或者不屏蔽。被屏蔽的中断请求不被送到CPU
不可屏蔽中断
通过NMI向CPU发出的中断请求。通常是非常紧急的硬件故障,例如掉电等。这类信号不可以被屏蔽,以让CPU快速处理这类紧急事件