数据通路的功能
数据通路
数据通路:数据在功能部件之间传送的路径,来表示信息从哪里开始、中间经过哪些部件、最后传到哪。
- 数据通路的基本结构类型:
- CPU内部单总线方式
- CPU内部多总线方式
- 专用数据通路方式
总线
-
总线:BUS —— 公共汽车,大家都可以用,但同一时间内承载额能力有限。
-
内部总线:同一部件内连接各部件的总线
- 如CPU内部连接各寄存器及运算部件之间的总线;
-
系统总线:同一台计算机系统的各部件
- 如CPU、内存、通道和各类I/O接口间互相连接的总线。
-
控制信号:由控制部件产生的控制信号用以建立数据通路
数据流动的类型
- 寄存器与寄存器之间
- 如从PC流向MAR
- 寄存器与主存之间
- 如存储器与MDR
- 寄存器与ALU之间
- MDR与ALU
1、寄存器与寄存器之间数据传送【高频】
例:把PC内容送至MAR,实现传送操作的流程及控制信号为:
( PC ) → Bus PCout有效,PC内容送到总线
-
Bus → MAR MARin有效,总线内容送到MAR
- 也可写为:(PC) → Bus → MAR
- 也有的教材写为:PC → Bus → MAR
- 后面要注明:哪些信号是有效的
- 哪种写法、有没有( )这里暂且不谈。重要的是描述清楚数据流向
就是要输出的out有效、输入的就in有效信号
2、CPU与主存之间
CPU从主存读取指令,实现传送操作的流程及控制信号为:
-
(PC) → Bus → MAR
PCout和MARin有效,现行指令地址 → MAR -
1 → R
CU发出读命令(通过控制总线发出,图中未画出) -
M(MAR) → MDR
MDRinE有效 -
MDR → Bus → IR
MDRout和lRin有效,现在指令就到了IR- 以上两步与主存交互的,是需要用到控制信号,通过地址总线、数据总线,给出地址、得到数据
3、寄存器与ALU之间
执行算术或逻辑运算
比如一条加法指令微操作序列及控制信号为:
- ACC中已经存到了一个数
- Y与ALU是有一个专用的通路的,不占用BUS
- 因为这里是单总线结构,需要先把一个数字放到暂存器Y
- 如果是双总线,肯定不用放在Y了,就并行相加
CPU内部单总线方式-例题
设有如图所示的单总线结构,分析指令ADD (R0), R1
的指令流程和控制信号。
ADD (R0),R1
操作 目的操作数 源操作数
- 最终结果需要放回到目的操作数的位置
1.功能
((R0)) + (R1) → (R0)