目录
1. 概述
在研究数据通路的时候,要搞清楚的一个问题就是:信息从哪里流出来的,中间经过哪些部件,最后传到哪个部件;
以及这样的流动是怎么去控制的 = => 依靠的是控制单元所发出来的控制信号,这些控制信号可以建立数据通路。
而具体应该有哪些控制信号 ==> 基于 CPU 内部这些连线的方式的。
连线的方式有三种:CPU 内部单总线方式、CPU 内部多总线方式、专用数据通路方式。
前两种可以看成一种:即采用总线的方式。
2. 单总线方式下的分析
部件的连接逻辑:每个部件都直接和 CPU 总线相连,但是部件与部件之间没有直接的连线。
每个部件和总线连接的方式是一条可以控制通断的通路,通路的通断是由上面标志的控制信号来控制的,
out 结尾的控制信号决定这条通路能否向外传输信息, in 结尾的控制信号决定这条通路能否由外向内部传输信息。
(所以应该是单向指向内,图中画了双向,应该修改为单向。)
MAR MDR 是和主存进行交流的,所以向外连接到地址总线和数据总线。 图中的 Y 和 Z 是暂存寄存器。
CPU内部总线 和 地址总线 数据总线的总线区别
寄存器之间的数据传送
注: 当 (PC)—> Bus 执行后,主线上的内容是PC的内容,因为主线是公共传输线,所以此时均可读取该信息,但是需要控制单元的控制信号。
在 1操作 完成后,就可以将控制信号撤销,将总线释放给后面的步骤。
主存和 CPU 之间的数据传送
CU发出读命令之后, M(MAR)—> MDR 此时图中的MDRin是用内部控制信号代替的,(实际上应该由外部控制信号)因为MDR比较特殊,一方面需要进行内部数据交流,一方面需要进行外部数据交流。
其次图中 MDR—>Bus —> IR 中, MDR应该加括号。
IR是指令寄存器!
执行算术或逻辑运算
操作流程有的地方也叫做微操作系列。
这里为什么是MDRout有效呢,因为此时MDR中的操作数地址信息还没有改变,并且图中的IR并没有画向总线传输数据的线路。
这个过程完成后,就可以将控制信号撤销,将总线释放给后面的步骤。
划线处,需要说明的和上面一致(借用信号、加括号)
同样,这个过程完成后,就可以将控制信号撤销,将总线释放给后面的步骤。
这里假设的是 一个操作数在主存中,一个操作数在ACC中,当两部分中的数据达到ALU中,加法操作是自动进行的!
同样,这个过程完成后,就可以将控制信号撤销,将总线释放给后面的步骤。
运算的结果,一般是存回ACC中!
上面即为数据通路的三类基本描述,关于不同指令阶段的数据通路的描述实际上就是这三类描述之间的组合。
3. 例题
第一步:先分析指令的功能和指令周期
ADD (R0) R1
该指令的意思是:加法指令; (R0) 是目的操作数, R1是源操作数,结果存回目的操作数。
如何定位操作数?
R 开头表示寄存器,直接写 R1 表示操作数就放在该寄存器中,如果加括号 (R0) 表示操作数地址放在该寄存器中。
所以可以得出 R1 是寄存器寻址, R0 是寄存器间接寻址。
所以指令周期涉及:取指周期、间址周期、执行周期。
时序表示这个操作在第几步完成的
指令送到 IR 之后,会自动地送到控制单元进行译码。
PC+1 这步操作可能是 PC 硬件能够自动实现,也有可能需要借助 ALU 来实现。根据情况不同去写,此处题目没有要求。
PC+1 这步操作,实际上在 PC 放到 MAR 之后,现在要执行的这条指令已经可以安全取出来了,如果 PC 有自增功能,它并不影响其它部分的数据传送。所以可以将 PC+1 放到第二步,这样整个取指周期可以少一个步骤,少一个步骤意味着少用一小段时间,因为每个步骤都代表一小段时间(节拍)。
这样的每一步操作都是1个节拍下去完成的。
上面是取指周期,下面分析间址周期。
在数据流那一块,定义的间址周期是完成取有效地址这个操作,这里是将间址周期是完成取数操作。这是比较麻烦的地方,组成原理这门课,有很多概念是不同的老师,定义是不一样的。所以写这道题时,更多的是要理解要有哪些操作。考试时会避免概念不一样的地方。一般考试的时候,是将间址周期和执行周期都归为执行周期。
执行周期
小结: 单总线题目,需要掌握,一方面能写出这些微操作序列,以及相应控制信号; 另一方面,理解时序标号代表的是 1 个节拍,而节拍是可以并行地 发送到部件,所以当部件使用的公共资源没有冲突的时候,是可以把多个操作并行地放在同一节拍中。