数据通路就是数据在各个部件之间传输的路径(包括路径上的部件)
控制信号是有控制部件产生的
数据通路的结构
1cpu内部单总线方式
2cpu内部多总线方式
3专用数据通路方式
内部总线
是指同一个部件,如cpu内部链接各寄存器以及运算部件之间的总线;
系统总线
是指同一台计算机系统的各部件,如cpu,内存,通道和各类io借口间相互连接的总线
寄存器之间的数据传输
比如我们要把pc的内容送到mar,实现传送操作的流程以及控制信号为
(pc)->Bus PCout有效,PC内容送总线
Bus->MAR MARin有效,总线内容送MAR
也可以写成(PC)->Bus->MAR
也就是当需要传输是CU会给PCout发送一个信号以激活PCout的输出线路
*此处的bus是总线的意思
主存和cpu之间的数据传送
CPU从主存中读取指令,实现传送操作的流程以及控制信号为:
(PC)->Bus->MAR PCout和MARin都有效,现行指令地址->MAR
1->R 然后CU发出一个读命令(要读的地址在MAR中,通过总线传输给主存)
MEM(MAR)->MDR MDRin有效 (内存根据mar指示的地址读出相应数据,然后传入mdr中)
MDR->Bus->IR MDRout 和IRin有效,现行指令->IR
执行算数和逻辑运算
这里以加法为例子
其中一个操作数已经被存放在acc里了
还有一条操作数就要从指令寄存器IR中取出放到MAR里
Ad(IR)->Bus->MAR MDRout和MARin 有效 或者IRout和MARin有效 (因为这里需要MDR先读取到指令,然后把指令复制给IR,然后在从IR获取传送到MAR,因此这里也需要MDRout有效)
1->R 然后CU需要发出一个读命令,在mar中读数据通过总线传输给主存
MEM(MAR)->数据线->MDR MDRin有效
MDR-》Bus->Y 保证Yin有效,Yin是alu旁边的其中一个寄存器,必须两个寄存器都有值才能让alu有效
(ACC)+(Y)->Z ACCout,ALUin有效,然后CU向ALU发送命令,告诉他这是一个加法操作,运算结果会被输出到暂存寄存器Z
Z->ACC Zout和ACCin有效,把结果存入ACC中