指令周期的数据流

指令周期的数据流_第1张图片

指令周期的不同:

指令周期由若干个机器周期/cpu周期组成
下面的图为不同的指令的指令周期
指令周期的数据流_第2张图片

指令周期的流程:
指令周期的数据流_第3张图片
如何判断在哪个阶段呢

提供一个硬件结构:触发器
指令周期的数据流_第4张图片

一个方框代表一个触发器,4个代表4个不同的周期。FE,IND,EX,INT
分别代表的是取指周期,间指周期,执行周期,间断周期

4个操作都由访存的操作,但是目的不同:
取指周期是为了取指令,间指周期是为了取指令有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点

取指周期的数据流:

将指令放入CPU中

指令周期的数据流_第5张图片
1.(PC)->MAR
2.CU发出控制信号,读信号:1->R表示CU发送信号到存储器
3.M(MAR)->MDR
4.(MDR)->IR
5.(PC)+1->PC
这里的+1可以为+2,+3…
目的就是为了把PC的指令传入到IR中

间址周期的数据流

指令周期的数据流_第6张图片
1.从IR中将指令地址传入到MAR
Ad(IR)->MAR
2.CU发出控制信号,读信号:1->R
3.MAR中的内容到MDR中:M(MAR)->MDR
4.将有效地址送至指令的地址码字段:MDR->Ad(IR)
或者直接在MDR中操作。不同的第4步代表着不同的下一个数据流的指向

执行周期的数据流:

由于不同的执行周期不同,因此执行周期的数据流多种多样,可能设计到CPU内部寄存器间的数据传送,对存储器进行读写操作或者对ALU的操作。所有这里无法用图统一显示

中断周期的数据流:

中断:暂停当前的任务去完成其他的任务
为了可以快速的恢复当前任务,设置断点
一般使用堆栈来保存断定,这里为SP为堆栈表示,这里SP为堆栈的首地址
进栈操作为先修改指针,然后加入数据
进栈为-1,出栈为+1

指令周期的数据流_第7张图片

1-3为保存断点的操作
4为恢复原来的操作

不同的指令执行方案

单指令周期方案
对所有的指令周期都是相同的时间完成的
多指令周期方案
每条指令可以使用不同的指令周期完成
流水线方案
在每一个时钟周期启动一条指令,经量让多条指令同时运行。
指令周期的数据流_第8张图片

你可能感兴趣的:(计算机组成)