第十六课 控制器

寄存器分类

image.png

  • 用户:特指编程人员
  • 可见:通过编程语言访问
  • 状态寄存器:没有必要让编程人员访问,也不应该可见
    • 会导致不安全的情况
    • 程序出现漏洞的风险也会增高
    • 指令集的复杂度也会增加,效率降低

用户可见寄存器

image.png
条件码寄存器不是必须的。缺点:硬件复杂性增加

设计出发点

image.png

保存和恢复

image.png

控制和状态寄存器

image.png
PC是可见的
image.png
image.png

设计出发点

image.png

8086

通用寄存器

image.png

段寄存器

image.png

标志寄存器

image.png

指令指针寄存器

image.png
为什么是[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RfW8v5FO-1677462998068)(null#card=math&code=2^{20}&id=K0dvY)]

微操作

image.png

分组原则

通过放在前后的时间周期内,让时间的流动顺序恰当
对同一个寄存器进行读写,不能放在同一个时间周期内
image.png

取指周期

image.png
t1:数据通过MAR传给地址总线
t2:对应两个微操作

  • 取出指令放到数据总线上
  • PC+“1” 要当心同步、异步 — 发送在同一个时间单位内

每一个t表示一个时间单位,表示微操作发送在哪一个时间单位内。
image.png
调整了pc + 1的位置

间址周期

将间接地址转换成有效地址
image.png

  1. IR中存了取到的指令,将指令中的地址部分放到MAR中
  2. 将地址对应的内容从存储器中放到MBR中
  3. 替换IR的地址部分

执行周期

image.png

  1. 送地址后才能取到内容,所以t1和t2不能合并
  2. t2是写MBRt3是读MBR,所以不能合并

转移并保存:保存PC地址,并跳转到一个新的地址

  1. 将IR中的地址送到MAR中,告诉MAR,PC要存到哪里,该地址是PC要保存到的地址。把PC的内容送到MBR中。这俩个步骤互相独立,可以存放在同一个时间周期内。
  2. 把MBR的内容写到主存中,把新的地址存到PC中。只有PC保存了,才能更新PC;只有写入了MBR,才能继续读MBR
  3. PC+1

中断周期?

image.png
只需要两个时间单位

指令周期代码 ICC

取指、间址、中断周期各有一个微操作序列,执行周期则对于每个操作码有一个微操作序列
image.png

取指周期

image.png

间址周期

image.png

执行周期

image.png

中断周期

image.png

CPU内部总线

image.png

控制器

功能需求

image.png

控制器的输入

操作码影响执行周期
寻址方式影响间址周期
控制器也会收到控制信号:中断请求
image.png

控制器的输出

image.png

控制信号

image.png
image.png(图有点小问题)

控制器的最小特性

image.png
实现上尽可能地简洁

控制器实现

image.png

硬布线实现

控制器输入

时钟、标志、控制总线的输入、指令寄存器

image.png
操作码通过译码器转化为微操作序列
image.png

控制器逻辑

image.png
缺点:太过复杂

微程序实现?

和硬布线实现有什么不同

基本概念和思路
  • 微程序(固件)介于硬件与软件之间
  • 设计固件比设计硬件容易,但写固件程序比软件程序困难·微指令序列
  • 微指令∶每行描述一个时间内出现的一组微操作

基本思路

  • 对于每个微操作,控制器的任务是产生一组控制信号,即控制器发出的每根控制线或开或关(每根控制线由一个二进制数字表示)·构造一个控制字,每位代表一根控制线,这样每个微操作能用控制字中的不同的0和1的样式来表示
  • 将这些控制字串在一起,可以表示控制器需要完成的微操作序列

image.png

微程序执行?

取指、间接、中断的微操作序列是一样的,都可以用相同的微指令** ? 为什么是一样的**
相同的操作码可以用相同的微指令序列
image.png

任务

image.png

定序

下一个指令的地址在哪?
image.png
双地址:指令太长,成本上升
地址选择有不同的方式。

构成

image.png

工作流程??

image.png
下面这张图什么意思?
image.png

  • 操作码在指令寄存器中,需要进行译码器译码
优缺点

image.png

总结

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值