# 数据通路 - 单总线结构
数据通路:数据在功能部件之间传送的路径
信息从哪里开始,中间经过哪些部件,最后传到哪里
由控制部件产生的控制信号建立数据通路
数据通路的基本结构:
- CPU 内部单总线方式
- CPU 内部多总线方式
- 专用数据通路方式
内部总线是指同一部件,如 CPU 内部连接各寄存器及运算部件之间的总线;
系统总线是指同一台计算机系统的各部件,如 CPU、内存、通道和各类 I/O 接口间互相连接的总线
- 寄存器之间数据传送
- 比如 PC 内容送至 MAR,实现传送操作的流程及控制信号为:
- PC->Bus,PCout 有效,PC 内容送总线
- Bus->MAR,MARin 有效,总线内容送 MAR
- 也可写为:(PC)->Bus->MAR,重要的是描述清楚数据流向,且要注明哪些控制信号有效
- 比如 PC 内容送至 MAR,实现传送操作的流程及控制信号为:
- 主存与 CPU 之间的数据传送
- 比如 CPU 从主存读取指令,实现传送操作的流程及控制信号为:
- (PC)->Bus->MAR,PCout 和 MARin 有效,现行指令地址 ->MAR
- 1->R,CU 发读命令 (通过控制总线发出)
- MEM (MAR)->MDR,MDRin 有效
- MDR->Bus->IR,MDRout 和 IRin 有效,现行指令 ->IR
- 比如 CPU 从主存读取指令,实现传送操作的流程及控制信号为:
- 执行算数或逻辑运算
- 比如一条加法指令,微操作序列及控制信号为:
- Ad (IR)->Bus->MAR,MDRout 和 MARin 有效(或 AdIRout 和 MARin 有效)
- 1->R,CU 发读命令
- MEM (MAR)-> 数据线 ->MDR,MDRin 有效
- MDR->Bus->Y,MDRout 和 Yin 有效,操作数 ->Y
- (ACC)+(Y)->Z,ACCout 和 ALUin 有效,CU 向 ALU 发送加命令
- Z->ACC,Zout 和 ACCin 有效,结果 ->ACC
- 比如一条加法指令,微操作序列及控制信号为:
例题:
设有如图所示的单总线结构,分析指令 ADD (R0),R1 的指令流程和控制信号
注:(R0) 代表需要一次间接寻址,即 R0 中存放的是操作数地址
- 分析指令功能和指令周期
- 功能:((R0))+(R1)->(R0)
- 取指周期、间址周期、执行周期
- 写出各阶段的指令流程
取指周期:公共操作
时序 | 微操作 | 有效控制信号 |
---|---|---|
1 | (PC)->MAR | PCout,MARin |
2 | M(MAR)->MDR | MemR,MARout,MDRinE |
3 | (MDR)->IR | MDRout,IRin |
4 | 指令译码 | |
5 | (PC)+1->PC |
间址周期:完成取数操作,被加数在主存中,加数已经放在寄存器 R1 中
时序 | 微操作 | 有效控制信号 |
---|---|---|
1 | (R0)->MAR | R0out,MARin |
2 | M(MAR)->MDR | MemR,MARout,MDRinE |
3 | (MDR)->Y | MDRout,Yin |
执行周期:完成取数操作,被加数在主存中,加数已经放在寄存器 R1 中
时序 | 微操作 | 有效控制信号 |
---|---|---|
1 | (R1)+(Y)->Z | R1out,ALUin,CU 向 ALU 发 ADD 控制信号 |
2 | (Z)->MDR | Zout,MDRin |
3 | (MDR)->M(MAR) | MemW,MDRoutE,MARout |
# 数据通路 - 专用通路结构
# 取指周期
- (PC)->MAR,C0 有效
- (MAR)-> 主存,C 有效
- 1->R,控制单元向主存发送读命令
- M (MAR)->MDR,C2 有效
- (MDR)->IR,C3 有效
- (PC)+1->PC
- Op (IR)->CU,C4 有效
例题:
上图是一个简化了的 CPU 与主存连接结构示意图 (图中省略了所有的多路选择器)。其中有一个累加寄存器 (ACC),一个状态数据寄存器和其他 4 个寄存器:主存地址寄存器 (MAR)、主存数据寄存器 (MDR)、程序寄存器 (PC) 和指令寄存器 (IR),各部分及其之间的连线表示数据通路,箭头表示信息传递方向。要求:
- 请写出图中 a、b、c、d,4 个寄存器的名称
- d 能自动 + 1,d 为 PC
- PC 内容是地址,送 MAR,故 c 为 MAR
- b 与微操作信号发生器相连,是 IR
- 与主存相连的寄存器是 MAR 和 MDR,c 是 MAR,则 a 是 MDR
- 简述图中取指令的数据通路
- (PC)->MAR
- M(MAR)->MDR
- MDR->IR
- OP (IR)-> 微操作信号发生器 (可写)
- (PC)+1->PC (可写)
- 简述数据在运算器和主存之间进行存 / 取访问
- 存 / 取的数据放入 ACC 中,设数据地址已放入 MAR 中,
- 取:M (MAR)->MDR;MDR)->ALU->ACC
- 存:(ACC)->MDR;(MDR)->M (MAR)
- 存 / 取的数据放入 ACC 中,设数据地址已放入 MAR 中,
- 简述完成指令 LDA X 的数据通路 (X 为主存地址,LDA 的功能为 (X)->ACC)
- X->MAR
- M(MAR)->MDR
- (MDR)->ALU->ACC
- 简述完成指令 ADD Y 的数据通路 (Y 为主存地址,ADD 的功能为 (ACC)+(Y)->ACC)
- Y->MAR
- M(MAR)->MDR
- (MDR)->ALU;(ACC)->ALU;ALU 执行加法
- (ALU)->ACC
- 简述完成指令 STA Z 的数据通路 (Z 为主存地址,STA 的功能为 (ACC)->Z)
- Z->MAR
- (ACC)->MDR
- (MDR)->M(MAR)