第十六课 控制器
寄存器分类
用户可见寄存器
设计出发点
保存和恢复
控制和状态寄存器
设计出发点
8086
通用寄存器
段寄存器
标志寄存器
指令指针寄存器
微操作
分组原则
通过放在前后的时间周期内,让时间的流动顺序恰当
对同一个寄存器进行读写,不能放在同一个时间周期内
取指周期
t1:数据通过MAR传给地址总线
t2:对应两个微操作
- 取出指令放到数据总线上
- PC+”1” 要当心同步、异步 — 发送在同一个时间单位内
每一个t
表示一个时间单位,表示微操作发送在哪一个时间单位内。
调整了pc + 1
的位置
间址周期
将间接地址转换成有效地址
执行周期
- 送地址后才能取到内容,所以t1和t2不能合并
t2
是写MBR
,t3
是读MBR
,所以不能合并
转移并保存:保存PC地址,并跳转到一个新的地址
- 将IR中的地址送到MAR中,告诉MAR,PC要存到哪里,该地址是PC要保存到的地址。把PC的内容送到MBR中。这俩个步骤互相独立,可以存放在同一个时间周期内。
- 把MBR的内容写到主存中,把新的地址存到PC中。只有PC保存了,才能更新PC;只有写入了MBR,才能继续读MBR
- PC+1
中断周期?
指令周期代码 ICC
取指、间址、中断周期各有一个微操作序列,执行周期则对于每个操作码有一个微操作序列
取指周期
间址周期
执行周期
中断周期
CPU内部总线
控制器
功能需求
控制器的输入
操作码影响执行周期
寻址方式影响间址周期
控制器也会收到控制信号:中断请求
控制器的输出
控制信号
控制器的最小特性
控制器实现
硬布线实现
控制器输入
时钟、标志、控制总线的输入、指令寄存器
控制器逻辑
微程序实现?
基本概念和思路
- 微程序(固件)介于硬件与软件之间
- 设计固件比设计硬件容易,但写固件程序比软件程序困难·微指令序列
- 微指令∶每行描述一个时间内出现的一组微操作。
基本思路
- 对于每个微操作,控制器的任务是产生一组控制信号,即控制器发出的每根控制线或开或关(每根控制线由一个二进制数字表示)·构造一个控制字,每位代表一根控制线,这样每个微操作能用控制字中的不同的0和1的样式来表示
- 将这些控制字串在一起,可以表示控制器需要完成的微操作序列
微程序执行?
取指、间接、中断的微操作序列是一样的,都可以用相同的微指令** ? 为什么是一样的**
相同的操作码可以用相同的微指令序列
任务
定序
下一个指令的地址在哪?
双地址:指令太长,成本上升
地址选择有不同的方式。
构成
工作流程??
下面这张图什么意思?
优缺点
总结
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 丁丁的小窝(*^_^*)!