计算机组成原理——中央处理器-数据通路(课程笔记)

说明

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

数据通路

1. 数据通路的功能

  • 数据在功能部件之间传送的路径称为数据通路,包括数据通路上的部件,如ALU、通用寄存器、状态将寄存器、异常和中断处理逻辑等
  • 数据通路由控制部件控制,控制部件根据各条指令功能的不同,生成对数据通路的控制信号
  • 数据通路的功能是实现CPU内部的运算器与寄存器及寄存器之间的数据交换

2. 数据通路的基本结构

2.1 CPU内部单总线方式

  • 将所有寄存器的输入端和输出端都连接到一条公共通路上,这种结构较简单,但数据传输存在较多的冲突现象,性能较低
  • 连接各部件的总线只有一条时,称为单总线结构;CPU中有两条或更多的总线时,构成双总线或多总线结构

2.2 CPU内部三总线方式

  • 将所有寄存器的输入端和输出端都连接到多条公共通路上,相比之下单总线中一个时钟内只允许传送一个数据,因而指令执行效率低,因此采取多总线方式,同时在多个总线上传送不同的数据,提高效率

2.3 专用数据通路方式

  • 根据指令执行过程中的数据和地址的流动方向安排连接通路,避免使用共享的总线
  • 性能较高,但硬件量大

2.4 说明

  • 内部总线是指同一部件,如CPU内部连接各个寄存器及运算部件之间的总线
  • 系统总线是指同一计算机系统的各部件,如CPU、内存、通道和各类I/O接口之间互相连接的总线

3. 数据传送

3.1 寄存器之间的数据传送

  • 寄存器之间的数据传送可通过CPU内部总线完成
  • 举例:将PC的内容送到MAR,实现传送操作的流程及控制信号为:
    P C → B u s             P C o u t 有效, P C 内容送总线 PC\rightarrow Bus \ \ \ \ \ \ \ \ \ \ \ PCout有效,PC内容送总线 PCBus           PCout有效,PC内容送总线
    B u s → M A R             M A R i n 有效,总线内容送 M A R Bus\rightarrow MAR\ \ \ \ \ \ \ \ \ \ \ MARin有效,总线内容送MAR BusMAR           MARin有效,总线内容送MAR

3.2 主存与CPU之间的数据传送

  • 主存与CPU之间的数据传送也要借助CPU内部总线完成
  • 举例:CPU从主存读取指令,实现传送操作的流程及控制信号为:
    P C → B u s → M A R             P C o u t 和 M A R i n 有效,现行指令 → M A R PC\rightarrow Bus\rightarrow MAR\ \ \ \ \ \ \ \ \ \ \ PCout和MARin有效,现行指令\rightarrow MAR PCBusMAR           PCoutMARin有效,现行指令MAR
    1 → R             C U 发出读命令 1\rightarrow R\ \ \ \ \ \ \ \ \ \ \ CU发出读命令 1R           CU发出读命令
    M E M ( M A R ) → M D R             M D R i n 有效 MEM(MAR)\rightarrow MDR\ \ \ \ \ \ \ \ \ \ \ MDRin有效 MEM(MAR)MDR           MDRin有效
    M D R → B u s → I R             M D R o u t 和 I R i n 有效,现行指令 → I R MDR\rightarrow Bus\rightarrow IR\ \ \ \ \ \ \ \ \ \ \ MDRout和IRin有效,现行指令\rightarrow IR MDRBusIR           MDRoutIRin有效,现行指令IR

3.3 执行算术或逻辑运算

  • 举例( P 214 P_{214} P214
    A d ( I R ) → B u s → M A R             M D R o u t 和 M A R i n 有效 Ad(IR)\rightarrow Bus\rightarrow MAR\ \ \ \ \ \ \ \ \ \ \ MDRout和MARin有效 Ad(IR)BusMAR           MDRoutMARin有效
    1 → R             C U 发出读命令 1\rightarrow R\ \ \ \ \ \ \ \ \ \ \ CU发出读命令 1R           CU发出读命令
    M E M → 数据线 → M D R            操作数从存储器 → 数据线 → M D R MEM\rightarrow 数据线\rightarrow MDR\ \ \ \ \ \ \ \ \ \ \ 操作数从存储器\rightarrow 数据线\rightarrow MDR MEM数据线MDR           操作数从存储器数据线MDR
    M D R → B u s → Y             M D R o u t 和 Y i n 有效,操作数 → Y MDR\rightarrow Bus\rightarrow Y\ \ \ \ \ \ \ \ \ \ \ MDRout和Yin有效,操作数\rightarrow Y MDRBusY           MDRoutYin有效,操作数Y
    ( A C C ) + ( Y ) → Z             A C C o u t 和 A L U i n 有效, C U 向 A L U 发出加命令,结果 → Z (ACC)+(Y)\rightarrow Z\ \ \ \ \ \ \ \ \ \ \ ACCout和ALUin有效,CU向ALU发出加命令,结果\rightarrow Z (ACC)+(Y)Z           ACCoutALUin有效,CUALU发出加命令,结果Z
    Z → A C C             Z o u t 和 A C C i n 有效,结果 → A C C Z\rightarrow ACC\ \ \ \ \ \ \ \ \ \ \ Zout和ACCin有效,结果\rightarrow ACC ZACC           ZoutACCin有效,结果ACC

4. 例题

2016 2016 2016)单周期处理器中所有指令的指令周期为一个时钟周期,下列关于单周期处理器的叙述,错误的是()
A. 可以采用单总线结构数据通路
B. 处理器时钟频率较低
C. 在指令执行过程中控制信号不变
D. 每条指令的CPI为1
解答

  • 单周期处理器是指所有指令周期为一个时钟周期的处理器,即CPI=1,要考虑到比较慢的指令,因此处理器的时钟频率较低。
  • 单总线数据通路将所有寄存器的输入输出端都连接在一条公共通路上,一个时钟内只允许有一次操作,无法完成指令的所有操作,因此A错误。
  • 控制信号是CU根据指令操作码发出的信号,对于单周期处理器来说,每条指令的执行只有一个时钟周期,而在一个时钟周期内控制信号并不会变化;若是多周期处理器则指令的执行需要多个时钟周期,在每个时钟周期控制器会发出不同信号
  • 选A
    错误原因:错选C

2015 2015 2015) 某16位计算机的主存按字节编码,存取单位为16位;采用16位定长指令字格式; CPU采用单总线结构,主要部分如下图所示。
![[Pasted image 20220728195956.png]]

图中R0~ R3为通用寄存器;T为暂存器; SR为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)三种操作,控制信号为SRop, SR的输出由信号SRout控制; ALU可 实现直送A( mova)、A加B (add)、A减B (sub)、A与B (and)、 A或B (or)、非A (not)、A加1(inc)七种操作,控制信号为ALUop。
回答下列问题:

  1. 图中哪些寄存器是程序员可见的?为何要设置暂存器T?
    解答:程序员可见的寄存器为通用寄存器 R 0 , R 1 , R 2 , R 3 R_0,R_1,R_2,R_3 R0,R1,R2,R3和PC。因为采用了单总线结构,因此若没有暂存器T,则ALU的A,B端口会同时获得两个相同的数据,使数据通路无法正常工作
  2. 控制信号ALUop和SRop的位数至少各是多少?
    解答:ALUop:3位;SRop:2位
  3. 控制信号SRout所控制部件的名称或作用是什么?
    解答:SRout控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开
  4. 端口①~⑨中,哪些端点须连接到控制部件的输出端?
    解答:端口1、2、3、5、8必须连接到控制部件的输出端
  5. 为完善单总线数据通路,需要在端点①~⑨中相应的端点之间添加必要的连线。写出连线的起点和终点,以正确表示数据的流动方向。
    解答:连线1: ⑥ → ⑨ ⑥\rightarrow⑨ ;连线2: ⑦ → ④ ⑦\rightarrow④
  6. 为什么二路选择器MUX的一个输入端是2?
    解答:因为每条指令的长度为16位,按字节编址,所以每条指令占用2个内存单元,顺序执行时,下条指令地址为(PC)+2,MUX的一个输入端为2,可便于执行(PC)+2操作
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值