计分板 (处理器)

编辑
本词条由“匿名用户” 建档。
处理器(处理器)是一种集中的方法,首先用于CDC6600计算机,用于动态调度指令,以便在没有冲突且硬件可用时它们可以乱序执行。 在记分牌中,每条指令的数据依赖性都会被记录、跟踪并始终严格遵守。只有当记分牌确定与之前发布的(飞行中)指令没有冲突时,才会发布指令。如果一条指令因为发出不安全(或资源不足)而停止,记分板会监视执行指令的流程,直到在发出停止的指令之前解决所有依赖关系。本质上:读取在没有写风...

计分板 (处理器)

编辑

处理器(处理器)是一种集中的方法,首先用于CDC 6600计算机,用于动态调度指令,以便在没有冲突且硬件可用时它们可以乱序执行。

在记分牌中,每条指令的数据依赖性都会被记录、跟踪并始终严格遵守。 只有当记分牌确定与之前发布的(飞行中)指令没有冲突时,才会发布指令。 如果一条指令因为发出不安全(或资源不足)而停止,记分板会xxx执行指令的流程,直到在发出停止的指令之前解决所有依赖关系。 本质上:读取在没有写风险的情况下进行,而写入在没有读取风险的情况下进行。

处理器(处理器)本质上是数据流语言中相同底层算法的硬件实现,创建有向无环图,其中在编程语言运行时应用相同的逻辑

阶段

编辑

指令按顺序解码并经过以下四个阶段。

  • 问题:系统检查该指令将读取和写入哪些寄存器,以及在何处检测到冲突 WAR 和 RAW 以及 WAW。 RAW 和 WAR 危险使用依赖矩阵(由原始 6600 设计中的 SR NOR 锁存器构建)记录,因为在以下阶段将需要它。 同时,在第二个矩阵中记录一个条目,该矩阵将指令顺序记录为有向无环图。 为了避免输出依赖性(WAW – 写后写)指令被暂停,直到打算写入同一寄存器的指令完成。 当所需的功能单元当前正忙时,该指令也会停止。 除非从头到尾完全可追踪,否则不会发出任何指令。
  • 读取操作数:指令发出并正确分配给所需的硬件模块(在 Thornton 的书中称为计算单元)后,该单元等待所有操作数可用。 当所有其他单元都删除了写入依赖项(RAW – 写入后读取)时,只读继续进行。 为避免寄存器文件端口争用,优先选择器选择一个计算单元(在多个单元都没有危险的情况下)。
  • 执行:获取所有操作数后,计算单元开始执行。 结果准备好后,通知记分牌。
  • 写入结果:在此阶段,结果已准备就绪,但尚未写入其目标寄存器。 在单元清除所有(WAR - 读取后写入)危险之前,写入可能不会继续。 此处xxx的额外延迟是基于寄存器文件端口的可用性:在 6600 中,使用优先级选择器为每个写入端口选择一个结果。 一旦写入,该单元就被标记为不再忙碌,所有的危险和状态都被丢弃。 请注意,只有在具有阴影功能的高级(增强、精确)记分板中,写入结果阶段才会被阻止(延迟)。 原来的6600没有这个能力

上面必须注意的是,读取仅在没有写入风险的情况下进行,而写入在没有读取风险的情况下进行。 这是合乎逻辑的,但与预期相矛盾。 特别要注意,Writes 必须在读取后等待写入,以便其他单元有机会读取寄存器中的当前值,然后再用新值覆盖它。 因此,为什么写入必须等到没有 WaR 危险。

数据结构

编辑

为了控制指令的执行,记分板维护了三个状态表:

  • 指令状态:指示每条正在执行的指令处于四个阶段中的哪个阶段。
  • 功能单元状态:指示每个功能单元的状态。 每个功能单元在表中维护9个字段:
    • 忙碌:表示设备是否正在使用
    • Op:要在单元中执行的操作电脑处理器
    • Fi:目标寄存器
    • Fj,Fk:源寄存器编号
    • Qj,Qk:将产生源寄存器 Fj,Fk 的功能单元
    • Rj,Rk:指示 Fj、Fk 何时准备好但尚未读取的标志
  • 寄存器状态:表示对于每个寄存器,哪个功能单元将结果写入其中。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196089/

(1)
词条目录
  1. 计分板 (处理器)
  2. 阶段
  3. 数据结构

轻触这里

关闭目录

目录
尊敬的全球百科用户,全球百科新系统上线了!新增排名保障卡、词条年卡,更有增值功能——百度排名保障包年服务,详情访问“glopedia.cn/261472/”关注公众号可联系人工客服。