文章目录
- 1 数据通路的功能和基本结构单总线
- 1.1 数据通路的功能
- 1.2 数据通路-基本结构单总线
- 2 数据通路-CPU内部单总线方式
- 2.1 三种结构之间数据传送方式
- 2.2 CPU内部单总线方式-例题
- 3 专用通路
- 3.1 专用数据通路方式
- 3.2 专用数据通路方式-例题
1 数据通路的功能和基本结构单总线
1.1 数据通路的功能
数据通路:数据在功能部件之间传送的路径。
我们关心的是:信息从哪里开始,中间经过哪些部件,最后传到哪里由控制部件产生的控制信号建立数据通路
数据通路的基本结构:
- CPU内部单总线方式。
- CPU内部多总线方式。
- 专用数据通路方式
1.2 数据通路-基本结构单总线
每个部件都直接跟总线相连,部件之间无相应的连线
以in
结尾的控制信号决定通路能否由外向部件内传递信息
以out
结尾的控制信号决定通路能否向外传递信息
内部总线与系统总线:
- 内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;
- 系统总线是指同一台计算机系统的各部件,如CPU、内存、通道和各类I/0接口间互相连接的总线。
2 数据通路-CPU内部单总线方式
2.1 三种结构之间数据传送方式
- 寄存器之间数据传送
比如把PC内容送至MAR,实现传送操作的流程及控制信号为:
- (PC)→Bus PCout有效,PC内容送总线
- Bus→MAR MARin有效,总线内容送MAR
- 主存与CPU之间的数据传送
比如CPU从主存读取指令,实现传送操作的流程及控制信号为:
- (PC)→Bus→MAR PCout和MARin有效,现行指令地址→MAR
- 1→R CU发读命令(通过控制总线发出,图中未画出)
- MEM(MAR)→MDR MDRin有效
- (MDR)→Bus→IR MDRout和IRin有效,现行指令→IR
- 执行算术或逻辑运算
比如一条加法指令,微操作序列及控制信号为:
- Ad(IR)→Bus→MAR MDRout和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
2.2 CPU内部单总线方式-例题
设有如图所示的单总线结构,分析指令ADD(R0),R1的指令流程和控制信号。
- 分析指令功能和指令周期功能:((R0))+(R1)→(R0)
R0目的操作数,R1源操作数,R1表示操作数放此寄存器中,(R0)表示操作数地址放在寄存器中,存放的是主存的地址,最终目标存回主存
分析取指周期、间址周期、执行周期
- 写出各阶段的指令流程
取指周期:公共操作
时序 | 微操作 | 有效控制信号 |
---|---|---|
1 | (PC)→MAR | PCout,MARin |
2 | M(MAR)→MDR (PC)+1→PC | MemR,MARout,MDRinE |
3 | (MDR)→IR | MDRout,IRin |
4 | 指令译码 | - |
间址周期:完成取数操作,被加数在主存中,加数已经放在寄存器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,MDRinE |
3 | (MDR)→M(MAR) | MemW,MDRoutE,MARout |
说明:
数据放在Z里面,最后要放在(R0)指示的位置,而(R0)指示的位置是主存中的一个单元,(R0)寄存器间接寻址,存的是主存的地址,最终需要放回主存
要放回主存,先得把Z中数据放MDR(第2步),再放回主存(第3步)
3 专用通路
3.1 专用数据通路方式
专用数据通路方式→取指周期
- (PC)→MAR Co有效
- (MAR)→主存 C1有效
- 1→R 控制单元向主存发送读命令
- M(MAR)→MDR C2有效
- (MDR)→IR C3有效
- (PC)+1>PC
- Op(IR)→CU C4有效
3.2 专用数据通路方式-例题
下图是一个简化了的CPU与主存连接结构示意图(图中省略了所有的多路选择器)。其中有一个累加寄存器(ACC)、一个状态数据寄存器和其他4个寄存器:主存地址寄存器(MAR)、主存数据寄存器(MDR)、程序寄存器(PC)和指令寄存器(IR),各部件及其之间的连线表示数据通路,箭头表示信息传递方向。
要求:
(1)请写出图中a、b、c、d 4个寄存器的名称。
(2)简述图中取指令的数据通路。
(3)简述数据在运算器和主存之间进行存/取访问的数据通路。
(4)简述完成指令LDA X的数据通路(X为主存地址,LDA的功能为(X)→ACC)。
(5)简述完成指令ADD Y的数据通路(Y为主存地址,ADD的功能为(ACC)+(Y)→ACC)。
(6)简述完成指令STA Z的数据通路(Z为主存地址,STA的功能为(ACC)→Z)。
(1)请写出图中a、b、c、d 4个寄存器的名称。
(1)
- d能自动“+1”,是PC
- PC内容是地址,只会送MAR,故c是MAR
- b与微操作信号发生器相连,是IR(指令寄存器IR的操作码是要送微操作信号发生器)
- 与主存相连的寄存器是MAR和MDR,c是MAR,则a是MDR
(2)简述图中取指令的数据通路。
(2)
- (PC)→MAR
- M(MAR)→MDR
- (MDR)→IR
(3)简述数据在运算器和主存之间进行存/取访问的数据通路。
存/取的数据放到ACC中
设数据地址已放入MAR
- 取:
M(MAR)→MDR
(MDR)→ALU→ACC(MDR和ACC之间没有专门的写到ACC的数据通路,要经过ALU到ACC)- 存:ACC中的数据存到主存
(ACC)→MDR
(MDR)→M(MAR)
(4)简述完成指令LDA X的数据通路(X为主存地址,LDA的功能为(X)→ACC)。
X→MAR
M(MAR)→MDR
(MDR)→ALU→ACC
(5)简述完成指令ADD Y的数据通路(Y为主存地址,ADD的功能为(ACC)+(Y)→ACC)。
一般隐含一些东西时候,隐含的位置都是ACC
Y→MAR (主存地址放MAR)
M(MAR)→MDR (MAR定位主存中地址,把数据取出放到MDR)
(MDR)→ALU,(ACC)→ALU
ALU→ACC
(6)简述完成指令STA Z的数据通路(Z为主存地址,STA的功能为(ACC)→Z)。
Z→MAR (先把主存地址放MAR)
(ACC)→MDR (把ACC中数据移到MDR)
(MDR)→M(MAR) (MDR中数据存到指定的主存位置)