考研笔记-计算机之计算机组成原理:指令系统(指令周期)
- 2026-11-09 03:10:29
——如阅读体验不佳,可转为横屏阅读;如微信无法横屏,可尝试文末方法。
表-CPU的结构 | |||
CPU | CU | ||
ALU | |||
寄存器 | 用户可见寄存器 | CPU执行机器语言时访问的寄存器 | |
控制和状态寄存器(用户透明寄存器) | 控制寄存器 | MAR 存放数据地址 | |
MDR 存放数据 | |||
PC存放指令地址 | |||
IR存放指令 | |||
状态寄存器 | PSW、中断相关寄存器等 |
表-CU的控制方式 | ||||
方式 | 定义 | 方案 | 实现 | |
同步控制 | 所有微操作的执行均受统一基准时标的时序信号所控制 | 定长机器周期 | 采用完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期 | 以最繁琐的微操作和最长的微操作序列为标准 |
不定长机器周期 | 每个机器周期内的节拍数不等 | 大多数微操作安排在一个较短的机器周期内完成,对于复杂的微操作,采用延长机器周期或增加节拍的方法解决 | ||
中央控制和局部控制相结合 | 大部分指令安排在统一的、较短的机器周期内完成,称为中央控制;少数操作复杂的指令中的某些操作采用局部控制方式来完成 | 1) 局部控制的每个节拍的宽度与中央控制的节拍宽度相同; 2) 局部控制节拍作为中央控制中机器节拍的延续,插入到中央控制的执行周期内 | ||
异步控制 | 不存在基准时标信号,没有固定的周期节拍和严格的时钟同步 | 微操作的时序由应答线路控制 | ||
联合控制 | 同步控制和异步控制相结合 | 对于各种不同指令的微操作,实行大部分统一、小部分区别对待的办法 | ||
人工控制 | 为了调机和软件开发的需要,在机器内部设置一些开关或按键,来达到人工控制的目的 | 1) 复位键; 2) 连续或单条执行转换开关; 3) 符合停机开关; |
表-多级时序系统 | |||
多级时序 | 定义 | 操作 | 关系 |
时钟周期 | 时钟周期是控制计算机操作的最小时间单位,使用时钟信号来控制产生每一个微操作命令 | 每个时钟周期串行完成一个(或几个并行执行的)微操作 | 节拍脉冲的宽度等于时钟周期的任意倍数(可小于1,通常一个时钟脉冲的宽度即为一个节拍脉冲的宽度) |
机器周期 | 机器周期可看作所有指令执行过程中的一个基准时间,在该基准时间内,所有指令的任意操作都能完成 | 每个机器周期串行完成一个(或几个并行执行的)操作 | 一个机器周期包含若干个时钟周期,且每个机器周期内的时钟周期数可以不等 |
指令周期 | 一个指令周期包含若干个机器周期,且每个指令周期内的机器周期数可以不等 | ||
说明: 1) 一个操作中可以包含若干个串行的微操作; 2) 机器内的各种操作可归属于两大类:对CPU内部的操作和对主存的操作; 3) 通常以访问一次主存的时间作为基准时间,即机器周期; 4) 脉冲的宽度与脉冲的周期不同,脉冲的宽度小于脉冲的周期(脉冲的宽度为脉冲的周期的一部分); |
表-指令周期 | |||||
指令周期 | 操作 | 访存目的 | 组合逻辑中的微操作 | 组合逻辑中微操作的节拍安排 | 存储逻辑中微操作的节拍安排 |
取指周期 | 取指令、分析指令 | 获取指令 | PC→MAR; 1→R; M(MAR)→MDR; MDR→IR; Op(IR)→CU; (PC)+1→PC; | T0: PC→MAR,1→R; T1: M(MAR)→MDR,(PC)+1→PC; T2:MDR→IR,Op(IR)→CU; | T0:PC→MAR,1→R; T1:Ad(CMDR)→CMAR; T2:M(MAR)→MDR,(PC)+1→PC; T3:Ad(CMDR)→CMAR; T4:MDR→IR,Op(IR)→微地址形成部件(编码器); T5: Ad(CMDR)→CMAR;(间址微程序入口地址→CMAR) |
间址周期 | 得到有效地址 | 获取有效地址 | Ad(IR)→MAR; 1→R; M(MAR)→MDR; MDR→Ad(IR); | T0:Ad(IR)→MAR,1→R; T1:M(MAR)→MDR; T2:MDR→Ad(IR); | T0:Ad(IR)→MAR,1→R; T1:Ad(CMDR)→CMAR; T2:M(MAR)→MDR; T3:Ad(CMDR)→CMAR; T4:MDR→Ad(IR); T5: Op(IR)→微地址形成部件(编码器)→CMAR;(指令的特定执行微程序入口地址→CMAR) |
执行周期 | 得到操作数,执行指令 | 获取操作数 | …… Ti: Ad(CMDR)→CMAR;(中断微程序入口地址→CMAR) | ||
中断周期 | 完成中断隐指令(保存断点;寻找服务程序入口地址;关中断) | 保存断点 | 1) 保存断点: (SP)-1→SP;(栈向下生长) SP→MAR; 1→W; PC→MDR; MDR→M(MAR); 2) 寻找服务程序入口地址: 向量地址→PC; 3) 关中断: 0→EINT; | T0:(SP)-1→SP; T1:SP→MAR,1→W,PC→MDR; T2:MDR→M(MAR), 向量地址→PC,0→EINT; | T0:(SP)-1→SP; T1: Ad(CMDR)→CMAR; T2:SP→MAR,1→W,PC→MDR; T3: Ad(CMDR)→CMAR; T4:MDR→M(MAR),向量地址→PC,0→EINT; T5: Ad(CMDR)→CMAR;(取指微程序入口地址→CMAR) |
说明: 1) 取指周期和执行周期是必须的,间址周期和中断周期是可选的; 2) 各个周期均可能有访存操作,因而各个周期均占一个机器周期(机器周期一般以访存周期为准); 3) 间址周期单独作为一个周期是因为该周期需要访存,而机器周期一般以访存周期为准,该间址周期不包括寄存器间址周期(寄存器间址获取有效地址不需访存); 4) 微操作节拍安排的3个原则: a) 注意微操作的先后顺序; b) 被控制对象不同的微操作,若能在一个节拍内执行,应尽可能安排在同一个节拍内; c) 被控制对象相同,但有些微操作所占的时间不长,应将它们安排在一个节拍内完成,并允许这些微操作有先后次序(使用逻辑条件在单个节拍内控制先后次序?); 5) 一旦微指令打入到CMDR中(即CM(CMAR)→CMDR),该微指令对应的微操作便同步执行了(即CM(CMAR)→CMDR与CMDR中控制信号的执行是同时完成的),而微操作Ad(CMDR)→CMAR只能在微指令送至CMDR(即CM(CMAR)→CMDR)这一微操作完成后的下一时钟周期完成,微指令打入到CMDR中(即CM(CMAR)→CMDR)均发生在微操作Ad(CMDR)→CMAR的下一时钟周期T的上升沿。 |
文章合集:
点击下方公众号主页,关注以阅读更多文章
——可选择“【右上角···】→【在浏览器中打开】”进行横屏阅读。