某计算机字长16位,采用16位定长指令字结
构,部分数据通路结构如下图所示.图中所有控制信号为1时表示有效,为0时表示无效.例如,控制信号MDRinE为1表示允许数据从DB打入MDR,MDRin为1表示允许数据从DB打入MDR,MDRin为1表示允许数据从总线打入MDR,假设MAR的输出一直处于使能状态.加法指令"ADD (R1), R0"的功能为(R0)+(R1)–>(R1),即将R0中的数据与R1的内容所指主存单元的数据相加,并将结构送入R1的内容所指主存单元中保存.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9hirCuu8-1628143294567)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210419103558777.png)]](https://img-blog.csdnimg.cn/19480ee6d7c540d2833f97188a3c0689.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEyOTgzNA==,size_16,color_FFFFFF,t_70)
下表给出了上述指令取值和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号, 请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-roHLes6r-1628143294570)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210419104427935.png)]](https://img-blog.csdnimg.cn/062d3a33ef87471990ef4a6a5bee282b.png)
解:
指令"ADD (R1), R0"的操作数,一个在寄存器中,一个在主存中,运算结果放在主存中,根据指令功能,要读出R1的内容所指的主存单元,必须先将R1的内容送至MAR,即(R1)–>MAR. 而读出的数据必须经过MDR,即M(MAR)—>MDR
因此,将R1的内容所指的主存单元的数据读出到MDR的节拍安排如下:
C5: (R1)—>MAR
C6: M(MAR)---->MDR
ALU一端是寄存器A, MDR或R0中必须有一个先写入A中,如MDR.
C7: (MDR)—>A
然后执行加法操作,并将结果送入寄存器AC
C8:(A)+(R0)–>AC
之后将加法结果写回到R1的内容所指的主存单元,注意MAR中的内容没有改变
C9:(AC)—>MDR
C10:(MDR)—>M(MAR)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lKfWfcLv-1628143294572)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210419134037282.png)]](https://img-blog.csdnimg.cn/10cc44b7df4d49168cabcf4674f241c4.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEyOTgzNA==,size_16,color_FFFFFF,t_70)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1fQeEVgT-1628143294574)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210419134115475.png)]](https://img-blog.csdnimg.cn/f12a8d482e50469fa956c40789e5dd9f.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEyOTgzNA==,size_16,color_FFFFFF,t_70)
5.3 数据通路的功能和基本结构
5.3.1 数据通路的功能
数据在功能部件之间传送的路径称为数据通路,路径上的部件称为数据通路部件,如ALU,通用寄存器,状态寄存器,异常和中断处理逻辑等.数据通路描述了信息从什么地方开始,中间经过那个寄存器或多路开关,最后传送到那个寄存器,这些都需要加以控制.
数据通路中专门进行数据运算的部件称为执行部件或功能部件,数据通路由控制部件控制,控制部件根据每条指令功能的不同生成对数据通路的控制信号,并正确控制指令的执行流程.数据通路的功能是实现CPU内部的运算器与寄存器及寄存器之间的数据交换
5.3.2 数据通路的基本结构
数据通路的基本结构主要有以下几种:
CPU内部单总线方式.
将所有寄存器的输入端和输出端都连接在一条一条公共通路上,这种结构比较简单,但数据传输存在较多的冲突现象,性能较低.连接各部件的总线只有一条时,称为单总线结构;CPU中有两条或更多的总线时,构成双总线结构或多总线结构
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fhQ3OOH5-1628143294575)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210421093302109.png)]](https://img-blog.csdnimg.cn/1c89cc3f99f84d869f2db5e1c35c5cd4.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEyOTgzNA==,size_16,color_FFFFFF,t_70)
CPU内部三总线方式
将所有寄存器的输入端和输出端都连接在多条公共通路上,相比之下单总线中一个时钟内只允许传一个数据,因而指令执行效率很低,因此采用多总线方式,同时在多个总线上传送不同的数据,提高效率.
专用数据通路方式
根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,但硬件量大.
规定个部件用大写字母表示,字母加"in"表示该部件的允许输入控制信号;字母加"out"表示该部件的允许输出控制信号
注意: 内部总线总是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;系统总线时指同一台计算机系统的各部件,如CPU, 内存,通道和各类I/0接口间互相连接的总线.
(一) 寄存器之间的数据传送
寄存器之间的数据传送可通过CPU内部总线完成,以PC寄存器为例,把PC内容送至MAR,实现传送操作的流程及控制信号为
PC—>Bus PCout有效,PC内容送总线
Bus—>MAR MARin有效,总线内容送MAR
(二) 主存与CPU之间的数据传送
主存与CPU之间的数据传送也要借助CPU内部总线完成,现以CPU从主存读取指令为例说明数据在数据通路中的传送过程,实现传送操作的流程及控制信号为
PC—>Bus—>MAR PCout和MARin有效, 现行指令地址---->MAR
I—>R CU发读命令
MEM(MAR)—>MDR MDRin有效
MDR—>Bus—>IR MDRout和IRin有效,现行指令—>IR
(三) 执行算术或逻辑运算
执行算术或逻辑操作时,由于ALU本身是没有内部存储功能的组合电路,因此如要执行加法运算,相加的两个数必须在ALU的两个输入端同时有效
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k1XmrgeJ-1628143294577)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210421141747593.png)]](https://img-blog.csdnimg.cn/d28936b0ddbc447c9674ffacff01897e.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEyOTgzNA==,size_16,color_FFFFFF,t_70)
图5.7中的暂存器Y即用于该目的.先将一个操作数经CPU内部总线送入暂存器Y保存,Y的内容在ALU的左输入端始终有效,再将另一个操作数经总线直接送到ALU的右输入端.这样两个操作数都送入了ALU,运算结果暂存在暂存器Z中
Ad(IR)—>Bus—>MAR MDRout和MARin有效
I—>R CU发读命令
MEM—>数据线—>MDR 操作数从存储器—>数据线—>MDR
MDR—>Bus—>Y MDRout和Yin有效,操作数—>Y
(ACC) + (Y) —> Z ACCout和ALUin有效,CU向ALU发加命令,结果—>Z
Z —> ACC Zout和ACCin有效,结果—>ACC
数据通路结构直接影响CPU内各种信息的传送路径,数据通路不同,指令执行过程的微操作序列的安排也不同,它关系着微操作信号形成部件的设计
结果—>ACC
数据通路结构直接影响CPU内各种信息的传送路径,数据通路不同,指令执行过程的微操作序列的安排也不同,它关系着微操作信号形成部件的设计