说明
- 博客作为笔记备份,不定时更新
- 参考内容为《计算机组成原理(第3版)》唐朔飞 高等教育出版社;王道考研《计算机组成原理考研复习指导2023》
- 文中的例题摘自王道考研《计算机组成原理考研复习指导2023》,大多是我个人认为较为典型的题目以及错题的部分整理
文章目录
指令执行过程
1. 指令周期
-
指令周期
- CPU从主存中取出并执行一条指令的时间称为指令周期
- 不同指令的指令周期可能不同
- 指令周期通常由若干机器周期组成,一个机器周期又包含若干时钟周期
- 每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等
-
时钟周期
- 也称为振荡周期、节拍或T周期,为时钟脉冲的倒数
-
机器周期
- 在计算机中,为了便于管理,通常把一条指令的执行过程划分为若干阶段,每个阶段完成一项工作。例如取指、存储器读、存储器写等,这一项工作称为一个基本操作。完成一个基本操作所需时间称为机器周期(来源网络)
- 机器周期可视为所有指令执行过程中的一个基准时间
- 访问一次存储器的时间是固定的,因此通常以存取周期作为基准时间,即内存中读取一个指令字的最短时间作为机器周期。(当存储字长等于机器字长时,取指周期也可视为机器周期)
-
三者关系
-
中断周期
- 当CPU采用中断方式实现主机和I/O设备的信息交换时,CPU在每条指令执行结束前,都要发中断查询信号,若有中断请求,则CPU进入中断响应阶段,又称中断周期
-
一个完整的指令周期应包含取指、间址、执行、中断周期
- 为了区分不同的工作周期,在CPU内设置了4个标志触发器
- FE:对应取指周期,“1“状态表示有效
- IND:对应间址周期,“1“状态表示有效
- EX:对应执行周期,“1“状态表示有效
- INT:对应中断周期,“1“状态表示有效
2. 指令周期的数据流
2.1 取指周期
- 任务:根据PC中的内容从主存中取出指令代码并存放在IR中
- 取指周期的数据流向
- P C → M A R → 地址总线 → 主存 PC\rightarrow MAR \rightarrow 地址总线 \rightarrow 主存 PC→MAR→地址总线→主存
- C U 发出读命令 → 控制总线 → 主存 CU发出读命令\rightarrow 控制总线 \rightarrow 主存 CU发出读命令→控制总线→主存
- 主存(指令) → 数据总线 → M D R → I R (存放指令) 主存(指令)\rightarrow 数据总线\rightarrow MDR\rightarrow IR(存放指令) 主存(指令)→数据总线→MDR→IR(存放指令)
- C U 发出控制信号 → P C + 1 CU发出控制信号\rightarrow PC+1 CU发出控制信号→PC+1
2.2 间址周期
- 任务:取操作数的有效地址
- 一次间址的间址周期的数据流向
- A d ( I R ) ( 或 M D R ) → M A R → 地址总线 → 主存 Ad(IR)(或MDR)\rightarrow MAR \rightarrow 地址总线\rightarrow 主存 Ad(IR)(或MDR)→MAR→地址总线→主存,Ad(IR)表示取出IR中存放的指令字的地址字段
- C U 发出读命令 → 控制总线 → 主存 CU发出读命令\rightarrow 控制总线\rightarrow 主存 CU发出读命令→控制总线→主存
- 主存 → 数据总线 → M D R (存放有效地址 主存\rightarrow 数据总线\rightarrow MDR(存放有效地址 主存→数据总线→MDR(存放有效地址
2.3 执行周期
- 任务:取操作数,并根据IR中的指令字的操作码通过ALU操作产生执行结果
- 不同指令的指令周期操作不同,因此没有统一的数据流向
2.4 中断周期
- 任务:处理中断请求
- 中断周期的数据流向
- C U 控制将 S P 减一 , S P → M A R → 地址总线 → 主存 CU控制将SP减一,SP\rightarrow MAR\rightarrow 地址总线\rightarrow 主存 CU控制将SP减一,SP→MAR→地址总线→主存,(减一是因为计算机的堆栈中都是向低地址增加)
- C U 发出写命令 → 控制总线 → 主存 CU发出写命令\rightarrow 控制总线\rightarrow 主存 CU发出写命令→控制总线→主存
- P C → M D R → 数据总线 → 主存(程序断点存入主存) PC\rightarrow MDR \rightarrow 数据总线 \rightarrow 主存(程序断点存入主存) PC→MDR→数据总线→主存(程序断点存入主存)
- C U (中断服务程序的入口地址) → P C CU(中断服务程序的入口地址)\rightarrow PC CU(中断服务程序的入口地址)→PC
3. 指令执行方案
3.1 单指令周期
- 单指令周期方案是对所有指令都选用相同的执行时间来完成
- 每条指令都在固定的时钟周期内完成,指令间串行执行,即下一条指令只能在前一条指令执行结束后才能启动
- 指令周期取决于执行时间最长的指令的执行时间
3.2 多指令周期
- 多指令周期方案对不同类型的指令选用不同的执行步骤
- 指令之间串行执行
- 可选用不同个数的时钟周期来完成不同指令的指令过程,指令需要几个周期就为其分配几个周期,不要求所有指令占用相同的执行时间
3.3 流水线
- 指令之间并行执行
4. 例题
- (
P
209
12
P_{209}12
P20912)以下关于间址周期的描述中,正确的是()
A. 所有指令的间址操作都是相同的
B. 凡是存储器间接寻址的指令,它们的操作都是相同的
C. 对于存储器间接寻址和寄存器间接寻址,它们的操作是不同的
D. 都不对
解答:指令的间址分为一次间址、两次间址和多次间址,因此它们的操作是不同的。存储器间址是通过形式地址访存,寄存器间址通过寄存器内容访存,因此操作不同,选C
错误原因:错选A - (
P
209
14
P_{209}14
P20914)以下叙述中,错误的是()
A. 取指操作是控制器固有的功能,不需要在操作码控制下完成
B. 所有指令的取指操作都是相同的
C. 在指令长度相等的情况下,所有指令的取指操作是相同的
D. 中断周期是在指令执行完成后出现的
解答:不同长度的指令,其取指操作可能是不同的。例如,双字指令、三字指令和单字指令的取指操作是不同的。选B
错误原因:错选C - (
P
210
16
P_{210}16
P21016)下列说法中,正确的是()
I. 指令字长等于机器字长的前提下,取指周期等于机器周期
II. 指令字长等于存储字长的前提下,取指周期等于机器周期
III. 指令字长和机器字长的长度没有任何关系
IV. 为了硬件设计方便,指令字长都和存储字长一样大
A. II、III B. II、III、IV C. I、III、IV D. I、IV
解答:(1)指令字长一般取存储字长的整数倍。若指令字长等于存储字长的两倍,则需两次访存,取指周期等于机器周期的两倍;若指令字长等于存储字长,则取指周期等于机器周期。(2)指令字长与操作码的长度、操作数地址长度、操作数地址的个数有关,与机器字长没有必然的联系。为了设计方便,指令字长一般取字节或存储字长的整数倍,但不一定和存储字长一样大。选A
错误原因:错选D
更新文档
更新日期 | 更新内容 |
---|---|
2022/7/20 | 增加例题 |