0
点赞
收藏
分享

微信扫一扫

2022春季OS预习

计算机组成原理

CPU工作原理

CPU的功能:控制指令执行。

指令执行有五种基本操作:取指、译码、取数、运算、存数。

数据通路五个阶段:取指、译码和读寄存器、执行、访存、回写。

寄存器的加入将会影响流水线上的信息:为相邻的流水阶段增加寄存器 (e.g. IF/ID),寄存器可以将不同阶段的信息分隔开,在任何时间,每个阶段都在执行不同的指令。

流水线冒险( Hazard, 也称流水线相关问题) :相近 指令在流水线上出现某些关联,下一个时钟周期不能执行下一条指令,指令流水线必须出现停顿。

  1. 结构冒险:资源竞争,要使用的部件正在忙(同一部件在不同阶段中被不同的指令同时使用)。例如,若系统只有一个存储器部件,就会带来结构冒险问题。
  2. 数据冒险:指令执行所需的数据暂时不可用而造成的指令执行的停顿。数据冒险一般发生在相近指令访问个存储单元或寄存器时。后序指令需要等待前序指令执行完毕。
  3. 控制冒险:也称为分支冒险(branch hazard),必须根据前一条指令的执行结果才能确定下一条真正要执行的指令地址,此时流水线中取得的可能不是真正要执行的指令

解决冒险:

  1. 结构冒险:解决所需硬件资源的冲突,如果流水线仅有一个内存:读或写操作需要获取内存的权限、取值需要等待一个周期(引入流水线气泡);对于寄存器:我们将寄存器的使用权限分为两个部分,前半个周期进行写操作,后半个周期进行读操作、通过内部数据转发来实现(e.g.W到D的数据转发)。
  2. 数据冒险:①数据旁路(转发):什么时候转发?如何转发?如果不能转发则需要阻塞流水线。②

C程序设计、编译与运行

MIPS汇编语言

32个寄存器

举报

相关推荐

0 条评论