【408笔记】计算机组成原理第五章 中央处理器

文章目录

5.1 CPU的功能和基本结构

5.1.1 CPU的基本功能

中央处理器(CPU)包括运算器和控制器
控制器扶额协调并控制计算机各个部件执行程序的指令序列,包括取指令、分析指令和执行指令
运算器负责对数据进行加工

CPU功能包括

  1. 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制
  2. 操作控制:管理并产生指令的操作信号,送往相应部件,从而控制这些部件按照指令的要求进行动作
  3. 时间控制:对各种操作加以时间上的控制,为每条指令按照时间顺序提供应有的控制信号
  4. 数据加工:对数据进行算术和逻辑运算
  5. 中断处理:对异常情况和特殊请求进行处理

5.1.2 CPU的基本结构

运算器

运算器接受从控制器送来的命令并执行相应的动作,对数据进行加工和处理
主要由算术逻辑单元ALU,暂存寄存器、累加寄存器(ACC)、通用寄存器组、程序状态字寄存器PSW、移位器、计数器CT等组成

  1. 算术逻辑单元ALU(核心):主要功能是进行算术/逻辑运算
  2. 暂存寄存器:暂存从主存读来的数据,该数据不能存放在通用寄存器中,否则会破坏原有内容。暂存寄存器对应用程序员是透明的
  3. 累加寄存器:是一个通用寄存器,用于暂时存放ALU运算的结果,可以作为加法运算的一个输入端
  4. 通用寄存器组:例如AX、BX等,用于存放操作数、各种地址信息等
  5. 程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息。例如溢出标志OF、符号标志SF、零标志ZF、进位标志CF等
  6. 移位器:进行移位运算
  7. 计数器:控制乘法、除法运算的操作步数

控制器

控制器的基本功能:执行指令,每条指令的执行由控制器发出的一组微操作实现
控制器实现上有:硬布线微程序控制器两种

控制器包括:程序计数器PC、指令寄存器IR、指令译码器、存储器地址寄存器MAR、存储器数据寄存器MDR、时序系统微操作信号发生器等

  1. 程序计数器PC:用于指出下一条指令在主存中的存放位置,PC有自增功能
  2. 指令寄存器IR:保存当前正在执行的那条指令
  3. 指令译码器:对操作码进行译码,向控制器提供特定的操作信号
  4. 存储器地址寄存器MAR:存放将要访问的主存单元的地址
  5. 存储器数据寄存器MDR:存放向主存写入的信息或从主存读出的信息
  6. 时序系统:产生各种时序信号,由统一时钟CLOCK分频得到
  7. 微信号操作发生器:根据IR、PSW及时序信号,产生各种控制信号
  1. 所谓的n位CPU中,n指的是数据总线的数量
  2. CPU的寄存器中,指令寄存器IR对用户是透明的
  3. 在一条无条件跳转指令的指令周期中,PC的值被修改2次。(取指令后PC+1,跳转后PC修改

5.2 指令执行过程

5.2.1 指令周期

CPU从主存中取出一条指令并执行的时间称为指令周期
指令周期通常用若干个机器周期来表示,每个机器周期又包含若干个时钟周期(CPU操作的最基本单位)

对于无条件跳转指令JMP X,执行阶段不需要访问主存,只包含取指(包括取指和分析)阶段和执行阶段,因此其指令周期只包括取指周期和执行周期
对于间接寻址的指令,为了取操作数,需要先访问一次主存,取出有效地址,然后访问主存,取出操作数。因此还需要包括间址周期,间址周期介于取指和执行周期之间

取指周期 执行周期
取指周期(取指令) 间址周期(取有效地址) 执行周期(执行指令)

在这里插入图片描述

CPU采用中断方式实现主机和I/O设备的信息交换时,每条指令结尾,都需要发送中断查询信号,如果有中断请求,则CPU进入中断相应阶段,又称中断周期。此时一个完整的指令周期包括:取指、间址、执行和中断周期
上述四个工作周期都有CPU访存操作,访存目的不同

  1. 取指周期:取指令
  2. 间址周期:取有效地址
  3. 执行周期:取操作数
  4. 中断周期:保存程序断点
取指周期(取指令) 间址周期(取有效地址) 执行周期(执行指令) 中断周期

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

在这里插入图片描述

5.2.2 指令周期的数据流

数据流是根据指令要求依次访问的数据序列。在执行指令的不同阶段、以及对于不同指令,数据流往往不同

1. 取指周期数据流

取指周期的任务:根据PC的内容,从主存中取出指令代码,放在IR中

在这里插入图片描述
在这里插入图片描述

  1. PC->MAR->地址总线->主存
  2. CU发出读命令->控制总线->主存
  3. 主存->数据总线->MDR->IR
  4. CU发出控制信号->PC+1

2. 间址周期数据流

间址周期的任务:取操作数有效地址。将指令中的地址码送到MAR并发送至地址总线,之后CU向存储器发读命令,获取有效地址存到MDR

在这里插入图片描述
在这里插入图片描述

  1. Ad(IR)->MAR->地址总线->主存
  2. CU发出读命令->控制总线->主存
  3. 主存->数据总线->MDR(存放有效地址)

3. 执行周期数据流

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

4. 中断周期

任务:处理中断请求。
假设程序断点存入堆栈中,用SP指示栈顶位置,进栈操作先修改栈顶指针&#

  • 14
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值