- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
40 41 42 43 44 45 46 PowerPC 定点异常寄存器 PowerPC 条件寄存器 MMX 寄存器映射 22 23 24 25 26 27 28 29 30 31 32 33 35 36 38 39 两段指令流水线 条件转移对指令流水的影响 6段CPU指令流水 流水线的性能 — 加速比 指令流水线的周期时间 现假设有 n 条指令在进行,无转移发生 指令流水线的段数为 k 则执行所有 n 条指令的总时间为: 使用流水线相对于不使用流水线的加速比为: 流水线的性能 — 加速比和指令数目的关系 流水线的性能 — 加速比和流水线段数的关系 转移处理 指令流水线的主要障碍是条件转移,已有几种方法用于处理条件转移: 多个指令流 (Multiple Streams) 预取转移目标 (Prefetch Branch Target) 循环缓冲器 (Loop buffer) 转移预测 (Branch prediction) 延迟转移 (Delayed branching) 多个指令流 IBM 370/168 和 IBM 3033 机使用 使用两条流水线,同时取指令 当遇到转移指令时,两条流水线不用全部丢弃已取的指令 问题: 带来寄存器和存储器访问的竞争延迟 在原先的转移判决还没解决之前,可能又有新的转移指令进入流水线 预取转移目标 识别出一个转移指令时,除了取此指令之后的指令外,转移目标处的指令也被取来 这个目标指令被保存到转移指令执行 IBM 360/91 使用该方法 循环缓冲器 循环缓冲器是由流水线指令取阶段维护的一个小的但极高速的存储器,含有 n 条最近取来的顺序指令 若一个转移将要发生,硬件首先检查转移目标是否在此缓冲器中,若是,则下一条指令由缓冲器取出 这一策略非常适合处理循环,因此称为循环缓冲器 CRAY-1 使用 循环缓冲器框图 转移预测 — 静态转移预测策略 预测决不发生 假设转移决不发生 总是继续顺序取指令 68020 VAX 11/780 预测总是发生 假设转移总是发生 总是由转移目标处取指令 依操作码预测 处理器假定,对某些条件转移指令的操作码将总是发生转移,对另外的总时不发生 成功率大于 75% 动态转移策略试图通过纪录条件转移指令在程序中的历史来改善预测的准确度 在循环中效率较高 发生/不发生开关 每个条件转移指令可有与之关联的一位或几位,它们反应此指令的历史 这些位称为发生/不发生开关,它们指挥处理器下次遇到此指令时产生具体的判决 转移历史表 是一个与流水线取指令阶段相关联的小型高速缓存 每个表项由三个元素组成:转移指令的地址,记录该指令使用状况的历史位;有关它的目标指令的信息 转移预测 — 动态转移预测策略 转移预测流程图 转移预测状态图 转移处理策略 — 预测决不发生策略 转移历史表策略 Intel 80486 的流水线 (1) 取指 指令由cache或外存取来,放入两个预取缓冲器中的一个 只要旧的数据被译码器用掉,立即用新数据填充缓冲器 取阶段的操作独立于其他阶段以保持运球缓冲器总是满的 译码段1 对操作码和寻址方式信息进行译码 指挥D2阶段计算其余的信息(偏移量和立即数) 译码段2 将每个操作码扩展成对ALU的控制信号 亦控制更复杂寻址方式的计算 Intel 80486 的流水线 (2) 执行 包括ALU运算、cache访问和寄存器修改 写回 如果需要,则更改寄存器和在前面执行阶段修改过的状态标志 80486 的指令流水线举例 12.5 Pentium 处理器 Pentium 4 寄存器组织 — 整数单元 类型 数目 长度(位) 目的 通用 8 32 通用用户寄存器 段 6 16 含有段选择符 标志 1 32 状态和控制位 指令指针 1 32 指令指针 类型 数目 长度(位) 目的 数值 8 80 保持浮点数 控制 l l6 控制位 状态 l l6 状态位 标记字 l 16 指示数值寄存器的内容 指令指针 1 48 指向被异常中断的指令 数据指针 1 48 指向被异常中断的数据 Pentium 4 寄存器组织 — 浮点单元 标志寄存器 控制寄存器 MMX 寄存器 MMX 使用 64 位数据类型 MMX 使用 3 位寄存器地址字段 支持 8 个MMX寄存器的使用 实际上,处理器并没有专门设置MMX处理器,而是使用“别名”技术,用现有的浮点寄存器保存MMX数值 8 个浮点寄存器的低64位用来构造 8 个MMX寄存器 Pentium 中断处理 中断 可屏蔽中断和不可屏蔽中断 异常 处理器确定的异常和程序异常 中断向量表 每一类中断都被指派了一个中断号,中断号用于对中断向量表的索引 中断向量表容纳 256 个 32 位中断向量
文档评论(0)