6.7-总线结构与CPU指令周期(2)
MOVE指令执行数据通路,MOVE R1,10功能是将10 送到R1中, 将指令寄存器中的地址部分,也就是我们的立即数部分送到寄存器中
- 需要将IR的值输出,需要IR out来进行控制,用IR out将数据输出到总线,再由总线输出到对应的寄存器R1中,给出一个R1 in的的信号,再时钟的配合想对应的数据就会写入到R1中
ADD指令执行数据通路
ADD R0,R1, (R0)+ (R1)->R0
相加的值送入到R0中
- 需要将R0的值输出到ALU的A端,再将R1的值输出到ALU的B端再来运算,运算以后输出到Z,送回即可
- 先输出R0的值,给出R0 out的信号输出到总线,输出到X端,给出一个X in信号,然后在时钟的配合下,响应的数据就会锁存到X中
- 在第二个时钟的时候我们输出R1,同时要复用总线,将R1的值输出到B端,所以可以通过这个路径输送到B端,再给出ADD的运算符,给出一个加的运算符,我们在时钟的配合下,就可以将运算的结果写入到Z
- 第四个时钟要将Z中的数据存放在寄存器R0中,需要将Z输出,给出一个Z out,将数据输出到总线,再给出一个R0 in,在第三个时钟的配合下,我们可以将对应的数据写入到R0中来
STORE指令数据通路
STORE R0,(R2) (R0)->Mem[R2]
Store指令是写存指令,将R0的值写入到以R2为地址的内存单元中来
- 首先要准备地址,在准备数据,将R2的值输出到AR中来,所以我们给出R2 out信号,将数据由R2中输出到总线再给出一个AR in信号,我们的数据就会锁存再AR中来,需要第一个时钟来触发
- 第二个时钟周期准备数据,将对应的R0的值送到DR,所以同样的通路给出R0 out,DR in就会建立响应的数据通路,在第二个时钟的配合之下,就可以将数据锁存在DR中
- 第二节拍完成后,访问的地址放在AR中,数据在DR中我们只需要给出一个写信号,在时钟的配合下,响应的数据就会写入到对应的地址单元
JMP指令数据通路
JMP 1000 是要跳转到1000号单元,它的功能就是要将1000送到PC,1000作为一个立即数是存放在IR寄存器中的
(IRa)->PC
- 直接给出一个IR out和PC in的数据信号操作,给出一个时钟信号给出PC的写使能,1000这个数据就会存放在PC寄存器中