计算机组成原理——中央处理器-指令执行过程(课程笔记)

说明

  1. 博客作为笔记备份,不定时更新
  2. 参考内容为《计算机组成原理(第3版)》唐朔飞 高等教育出版社;王道考研《计算机组成原理考研复习指导2023》
  3. 文中的例题摘自王道考研《计算机组成原理考研复习指导2023》,大多是我个人认为较为典型的题目以及错题的部分整理

指令执行过程

1. 指令周期

  • 指令周期

    • CPU从主存中取出并执行一条指令的时间称为指令周期
    • 不同指令的指令周期可能不同
    • 指令周期通常由若干机器周期组成,一个机器周期又包含若干时钟周期
    • 每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等
  • 时钟周期

    • 也称为振荡周期、节拍或T周期,为时钟脉冲的倒数
  • 机器周期

    • 在计算机中,为了便于管理,通常把一条指令的执行过程划分为若干阶段,每个阶段完成一项工作。例如取指、存储器读、存储器写等,这一项工作称为一个基本操作。完成一个基本操作所需时间称为机器周期(来源网络)
    • 机器周期可视为所有指令执行过程中的一个基准时间
    • 访问一次存储器的时间是固定的,因此通常以存取周期作为基准时间,即内存中读取一个指令字的最短时间作为机器周期。(当存储字长等于机器字长时,取指周期也可视为机器周期)
  • 三者关系
    ![[Pasted image 20220626153007.png]]

  • 中断周期

    • 当CPU采用中断方式实现主机和I/O设备的信息交换时,CPU在每条指令执行结束前,都要发中断查询信号,若有中断请求,则CPU进入中断响应阶段,又称中断周期
  • 一个完整的指令周期应包含取指、间址、执行、中断周期

    • 为了区分不同的工作周期,在CPU内设置了4个标志触发器
    • FE:对应取指周期,“1“状态表示有效
    • IND:对应间址周期,“1“状态表示有效
    • EX:对应执行周期,“1“状态表示有效
    • INT:对应中断周期,“1“状态表示有效

2. 指令周期的数据流

2.1 取指周期

![[Pasted image 20220626153908.png]]

  • 任务:根据PC中的内容从主存中取出指令代码并存放在IR中
  • 取指周期的数据流向
    1. P C → M A R → 地址总线 → 主存 PC\rightarrow MAR \rightarrow 地址总线 \rightarrow 主存 PCMAR地址总线主存
    2. C U 发出读命令 → 控制总线 → 主存 CU发出读命令\rightarrow 控制总线 \rightarrow 主存 CU发出读命令控制总线主存
    3. 主存(指令) → 数据总线 → M D R → I R (存放指令) 主存(指令)\rightarrow 数据总线\rightarrow MDR\rightarrow IR(存放指令) 主存(指令)数据总线MDRIR(存放指令)
    4. C U 发出控制信号 → P C + 1 CU发出控制信号\rightarrow PC+1 CU发出控制信号PC+1

2.2 间址周期

![[Pasted image 20220626153925.png]]

  • 任务:取操作数的有效地址
  • 一次间址的间址周期的数据流向
    1. A d ( I R ) ( 或 M D R ) → M A R → 地址总线 → 主存 Ad(IR)(或MDR)\rightarrow MAR \rightarrow 地址总线\rightarrow 主存 Ad(IR)(MDR)MAR地址总线主存,Ad(IR)表示取出IR中存放的指令字的地址字段
    2. C U 发出读命令 → 控制总线 → 主存 CU发出读命令\rightarrow 控制总线\rightarrow 主存 CU发出读命令控制总线主存
    3. 主存 → 数据总线 → M D R (存放有效地址 主存\rightarrow 数据总线\rightarrow MDR(存放有效地址 主存数据总线MDR(存放有效地址

2.3 执行周期

  • 任务:取操作数,并根据IR中的指令字的操作码通过ALU操作产生执行结果
  • 不同指令的指令周期操作不同,因此没有统一的数据流向

2.4 中断周期

![[Pasted image 20220626154018.png]]

  • 任务:处理中断请求
  • 中断周期的数据流向
    1. C U 控制将 S P 减一 , S P → M A R → 地址总线 → 主存 CU控制将SP减一,SP\rightarrow MAR\rightarrow 地址总线\rightarrow 主存 CU控制将SP减一,SPMAR地址总线主存,(减一是因为计算机的堆栈中都是向低地址增加)
    2. C U 发出写命令 → 控制总线 → 主存 CU发出写命令\rightarrow 控制总线\rightarrow 主存 CU发出写命令控制总线主存
    3. P C → M D R → 数据总线 → 主存(程序断点存入主存) PC\rightarrow MDR \rightarrow 数据总线 \rightarrow 主存(程序断点存入主存) PCMDR数据总线主存(程序断点存入主存)
    4. C U (中断服务程序的入口地址) → P C CU(中断服务程序的入口地址)\rightarrow PC CU(中断服务程序的入口地址)PC

3. 指令执行方案

3.1 单指令周期

  • 单指令周期方案是对所有指令都选用相同的执行时间来完成
  • 每条指令都在固定的时钟周期内完成,指令间串行执行,即下一条指令只能在前一条指令执行结束后才能启动
  • 指令周期取决于执行时间最长的指令的执行时间

3.2 多指令周期

  • 多指令周期方案对不同类型的指令选用不同的执行步骤
  • 指令之间串行执行
  • 可选用不同个数的时钟周期来完成不同指令的指令过程,指令需要几个周期就为其分配几个周期,不要求所有指令占用相同的执行时间

3.3 流水线

  • 指令之间并行执行

4. 例题

  1. P 209 12 P_{209}12 P20912)以下关于间址周期的描述中,正确的是()
    A. 所有指令的间址操作都是相同的
    B. 凡是存储器间接寻址的指令,它们的操作都是相同的
    C. 对于存储器间接寻址和寄存器间接寻址,它们的操作是不同的
    D. 都不对
    解答:指令的间址分为一次间址、两次间址和多次间址,因此它们的操作是不同的。存储器间址是通过形式地址访存,寄存器间址通过寄存器内容访存,因此操作不同,选C
    错误原因:错选A
  2. P 209 14 P_{209}14 P20914)以下叙述中,错误的是()
    A. 取指操作是控制器固有的功能,不需要在操作码控制下完成
    B. 所有指令的取指操作都是相同的
    C. 在指令长度相等的情况下,所有指令的取指操作是相同的
    D. 中断周期是在指令执行完成后出现的
    解答:不同长度的指令,其取指操作可能是不同的。例如,双字指令、三字指令和单字指令的取指操作是不同的。选B
    错误原因:错选C
  3. 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增加例题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值