计算机组成原理第五章 *处理器 数据通路
文章目录
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 |
2 专用通路
2.1 专用数据通路方式
专用数据通路方式→取指周期
2.2 专用数据通路方式-例题
下图是一个简化了的CPU与主存连接结构示意图(图中省略了所有的多路选择器)。其中有一个累加寄存器(ACC)、一个状态数据寄存器和其他4个寄存器:主存地址寄存器(MAR)、主存数据寄存器(MDR)、程序寄存器(PC)和指令寄存器(IR),各部件及其之间的连线表示数据通路,箭头表示信息传递方向。
要求:
(1)请写出图中a、b、c、d4个寄存器的名称。
(2)简述图中取指令的数据通路。
(3)简述数据在运算器和主存之间进行存/取访问的数据通路。
(4)简述完成指令LDAX的数据通路(X为主存地址,LDA的功能为(X)→ACC)。
(5)简述完成指令ADDY的数据通路(Y为主存地址,ADD的功能为(ACC)+(Y)→ACC)。
(6)简述完成指令STAZ的数据通路(Z为主存地址,STA的功能为(ACC)→Z)。
(1)请写出图中a、b、c、d4个寄存器的名称。
(1)
- d能自动“+1”,是PC
- PC内容是地址,只会送MAR,故c是MAR
- b与微操作信号发生器相连,是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- 存:
(ACC)→MDR
(MDR)→M(MAR)
(4)简述完成指令LDAX的数据通路(X为主存地址,LDA的功能为(X)→ACC)。
X→MAR
M(MAR)→MDR
(MDR)→ALU→ACC
(5)简述完成指令ADDY的数据通路(Y为主存地址,ADD的功能为(ACC)+(Y)→ACC)。
一般隐含一些东西时候,隐含的位置都是ACC
Y→MAR
M(MAR)→MDR
(MDR)→ALU,(ACC)→ALU
ALU→ACC
(6)简述完成指令STAZ的数据通路(Z为主存地址,STA的功能为(ACC)→Z)。
Z→MAR
(ACC)→MDR
(MDR)→M(MAR)