第三章 指令级并行 计算机系统结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
转移预测的五个等级: 1.完美:所有的跳转和转移都在执行开始时 被准确地预测。 2.基于tournament的转移预测器:使用相 关2bit预测器和不相关2bit预测器,结合使 用选择器。 3.有512个2bit入口的标准2bit预测器。 4.基于历史的预测器 5.无转移预测
图3.3 转移预测方法的影响 结论:在两种浮点程序中,转移行为要比在其他 程序中简单得多,这主要是由于这两种程序的 转移较少,且大部分转移的可预测性非常高。 因此,我们可以通过实际的转移预测方法开发 更高的并行度。
窗口大小和最大发射数的限制
窗口: 为了实现并行执行,需要对指令之间是 否存在相关进行检测,被检测指令的合称为 窗口。 限制: 所需的存储容量、能够承受的比较次数 以及有限的发射速率,大窗口未必能发挥更 大的作用。 最大吞吐量有可能受到发射速率的限制。
窗口大小直接限制了在给定时钟周期内开始 执行的指令数量。实际上,可以在同一时钟 周期内发射、启动执行或提交的指令数量通 常要远远低于窗口大小。
第三章 指令级并行性的限制
3.1介绍 3.2指令级并行性限制的研究 3.3实际处理器中的指令级并行性限制 3.4相关问题:硬件推测和软件推测 3.5多线程:使用指令级并行支持线程级并行 的开发 3.6综合:高级多发射处理器的性能和效率
3.1 介绍
指令级并行性的限制: 程序结构、硬件的预测以及推测使用 的关键技术(如转移预测等)的准确率。
3.2指令级并行性限制的研究
理想处理器: 1.寄存器重命名:可用寄存器数量没有限制wk.baidu.com2.转移预测:能够准确预测所有的调剂转移。 3.跳转预测:能够预测所有的跳转。 4.存储器地址别名分析:能够准确确定所有 的存储器地址(最佳地址别名分析)。 5.最优Cache:所有的存储器访问花费一个 时钟周期。
见图3.2:结论 1.随着窗口大小的减小,可开发的指令级并 行度严重下降。 2.定点程序的指令级并行度要少于浮点程序 的指令级并行度。 3.与理想情况相比,实际的窗口大小回事指 令的吞吐量严重下降。 因此,我们以后假设窗口大小为2K,最大发射 能力为每时钟周期64条指令。
实际转移和跳转预测的影响
多线程主要有两种方法: 细密度多线程和粗密度多线程 细密度多线程能够在指令之间进行线 程切换,从而使多个线程交替执行。 粗粒度多线程作为细粒度多线程的替 代方法而设计的,只在发生代价较高的停顿 时才切换线程,比如二级Cache缺失。
同时多线程:将线程并行转化为指 令级并行
见图3.8 1.不支持多线程的超标量处理器 2.支持粗粒度多线程的超标量处理器 3.支持细粒度多线程的超标量处理器 4.支持同时多线程的超标量处理器
3.3实际处理器中的指令级并行性限制
预先设定以下一组属性: 1.没有发射限制,每时钟周期至少发射64条 指令。 2.1K入口的tournament预测器和16入口 的返回预测器。 3.动态的、完美地消除存储器引用的二义性 4.64个附加定点寄存器和64个附加浮、点 寄存器用于寄存器重命名。
图3.7 :
图3.10中所示当前最新的四种高性能处 理器的特性 和总体性能同等重要的是对硅晶体面积 和功耗的利用率。 四种方法中没有哪一种是可以用来高效 开发指令级并行的捷径。
同时多线程的设计挑战
平衡单线程性能同多线程性能之间的矛盾 同时多线程处理器的设计还面临一些其他 的挑战 注:1.在大多数情况下,由多线程引起的开 销通常是很小的,简单的选择已经足够应付 2.当前超标量处理器的效率相当低, 还有很大的上升空间,在这种情况下即使付 出一些代价也是值得的。
同时多线程的潜在性能优势
目前用来提升多发射处理器性能的技术都是 低效的,原因有二: 1.多发射会增加一些逻辑开销,而这类 开销的增长速度要快于发射率的增长速度。 2.发射速率的峰值与持续性能之间差距 的拉大。 推测永远不可能是完美的, 且对于绝大 多数实际程序来说,推测处理器不可能节约 能源。
3.6综合:高级多发射处理器的性能和效率
3.4 相关问题:硬件推测和软件推测
硬件推测方法和软件方法为我们开发指令 级并行度提供了不同的选择。如何在两者之 间做出权衡?
3.5多线程:使用指令级并行支持线程级 并行的开发
由于逻辑结构为可独立执行的线程,因此 称这种高层并行度为线程级并行。 与开发循环或直线型代码中的并行操作的 指令级并行不同,线程级并行的目标是开发 多个执行线程之间内在的并行性。 开发线程级并行所学要的成本要比指令 级并行低得多。
有限存储器的影响
图3.5结论: 说明了减少重命名可用寄存器的数量的 对并行度的影响,浮点寄存器和定点寄存器 的数目随寄存器数量的增长而增长。 使用无限数量的寄存器仍然是不现实的。
非完美别名分析的影响
三种存储器别名分析模型: 1.全局/堆栈完美分析模型 2.检测分析模型:在编译阶段对访问操作 进行检测,以确定它们是否会相互影响。 3.无分析 要想获得更高的并行度,就必须有复杂编 译技术和按需动态分析的支持。
同时多线程对性能起到的实际作用比当初 的研究结果逊色得多。 大多数设计者更倾向于在单独的CPU晶片 上实现多个核心,同时辅以轻量级的多发射 和多线程的支持。
是什么限制了多发射处理器
功耗是限制当代处理器的首要因素。 功耗是静态功耗和动态功耗的函数。 静态功耗随晶体管的数量成比例增长,动 态功耗与切换晶体管的次数和切换速率的乘 机成比例关系。动态功耗通常是能源的主要 消费者。
窗口大小对定点程序的影响不如对浮点程 序(循环级并行度较高,因此可开发的指令 级并行度较高)的影响大。
怎样在简单的、有大容量Cache和高时钟 频率的处理器与强调指令级并行度但时钟 频率较慢且Cache容量较小的处理器之间 做出权衡。见例题
克服研究模型的限制
完美模型中的主要限制: 1.访问存储器的WAW和WAR冒险。 2.多余的相关。 3.克服数据流的限制。 本节中讨论的这些限制理论上并不是无法 克服的。
图3.3 转移预测方法的影响 结论:在两种浮点程序中,转移行为要比在其他 程序中简单得多,这主要是由于这两种程序的 转移较少,且大部分转移的可预测性非常高。 因此,我们可以通过实际的转移预测方法开发 更高的并行度。
窗口大小和最大发射数的限制
窗口: 为了实现并行执行,需要对指令之间是 否存在相关进行检测,被检测指令的合称为 窗口。 限制: 所需的存储容量、能够承受的比较次数 以及有限的发射速率,大窗口未必能发挥更 大的作用。 最大吞吐量有可能受到发射速率的限制。
窗口大小直接限制了在给定时钟周期内开始 执行的指令数量。实际上,可以在同一时钟 周期内发射、启动执行或提交的指令数量通 常要远远低于窗口大小。
第三章 指令级并行性的限制
3.1介绍 3.2指令级并行性限制的研究 3.3实际处理器中的指令级并行性限制 3.4相关问题:硬件推测和软件推测 3.5多线程:使用指令级并行支持线程级并行 的开发 3.6综合:高级多发射处理器的性能和效率
3.1 介绍
指令级并行性的限制: 程序结构、硬件的预测以及推测使用 的关键技术(如转移预测等)的准确率。
3.2指令级并行性限制的研究
理想处理器: 1.寄存器重命名:可用寄存器数量没有限制wk.baidu.com2.转移预测:能够准确预测所有的调剂转移。 3.跳转预测:能够预测所有的跳转。 4.存储器地址别名分析:能够准确确定所有 的存储器地址(最佳地址别名分析)。 5.最优Cache:所有的存储器访问花费一个 时钟周期。
见图3.2:结论 1.随着窗口大小的减小,可开发的指令级并 行度严重下降。 2.定点程序的指令级并行度要少于浮点程序 的指令级并行度。 3.与理想情况相比,实际的窗口大小回事指 令的吞吐量严重下降。 因此,我们以后假设窗口大小为2K,最大发射 能力为每时钟周期64条指令。
实际转移和跳转预测的影响
多线程主要有两种方法: 细密度多线程和粗密度多线程 细密度多线程能够在指令之间进行线 程切换,从而使多个线程交替执行。 粗粒度多线程作为细粒度多线程的替 代方法而设计的,只在发生代价较高的停顿 时才切换线程,比如二级Cache缺失。
同时多线程:将线程并行转化为指 令级并行
见图3.8 1.不支持多线程的超标量处理器 2.支持粗粒度多线程的超标量处理器 3.支持细粒度多线程的超标量处理器 4.支持同时多线程的超标量处理器
3.3实际处理器中的指令级并行性限制
预先设定以下一组属性: 1.没有发射限制,每时钟周期至少发射64条 指令。 2.1K入口的tournament预测器和16入口 的返回预测器。 3.动态的、完美地消除存储器引用的二义性 4.64个附加定点寄存器和64个附加浮、点 寄存器用于寄存器重命名。
图3.7 :
图3.10中所示当前最新的四种高性能处 理器的特性 和总体性能同等重要的是对硅晶体面积 和功耗的利用率。 四种方法中没有哪一种是可以用来高效 开发指令级并行的捷径。
同时多线程的设计挑战
平衡单线程性能同多线程性能之间的矛盾 同时多线程处理器的设计还面临一些其他 的挑战 注:1.在大多数情况下,由多线程引起的开 销通常是很小的,简单的选择已经足够应付 2.当前超标量处理器的效率相当低, 还有很大的上升空间,在这种情况下即使付 出一些代价也是值得的。
同时多线程的潜在性能优势
目前用来提升多发射处理器性能的技术都是 低效的,原因有二: 1.多发射会增加一些逻辑开销,而这类 开销的增长速度要快于发射率的增长速度。 2.发射速率的峰值与持续性能之间差距 的拉大。 推测永远不可能是完美的, 且对于绝大 多数实际程序来说,推测处理器不可能节约 能源。
3.6综合:高级多发射处理器的性能和效率
3.4 相关问题:硬件推测和软件推测
硬件推测方法和软件方法为我们开发指令 级并行度提供了不同的选择。如何在两者之 间做出权衡?
3.5多线程:使用指令级并行支持线程级 并行的开发
由于逻辑结构为可独立执行的线程,因此 称这种高层并行度为线程级并行。 与开发循环或直线型代码中的并行操作的 指令级并行不同,线程级并行的目标是开发 多个执行线程之间内在的并行性。 开发线程级并行所学要的成本要比指令 级并行低得多。
有限存储器的影响
图3.5结论: 说明了减少重命名可用寄存器的数量的 对并行度的影响,浮点寄存器和定点寄存器 的数目随寄存器数量的增长而增长。 使用无限数量的寄存器仍然是不现实的。
非完美别名分析的影响
三种存储器别名分析模型: 1.全局/堆栈完美分析模型 2.检测分析模型:在编译阶段对访问操作 进行检测,以确定它们是否会相互影响。 3.无分析 要想获得更高的并行度,就必须有复杂编 译技术和按需动态分析的支持。
同时多线程对性能起到的实际作用比当初 的研究结果逊色得多。 大多数设计者更倾向于在单独的CPU晶片 上实现多个核心,同时辅以轻量级的多发射 和多线程的支持。
是什么限制了多发射处理器
功耗是限制当代处理器的首要因素。 功耗是静态功耗和动态功耗的函数。 静态功耗随晶体管的数量成比例增长,动 态功耗与切换晶体管的次数和切换速率的乘 机成比例关系。动态功耗通常是能源的主要 消费者。
窗口大小对定点程序的影响不如对浮点程 序(循环级并行度较高,因此可开发的指令 级并行度较高)的影响大。
怎样在简单的、有大容量Cache和高时钟 频率的处理器与强调指令级并行度但时钟 频率较慢且Cache容量较小的处理器之间 做出权衡。见例题
克服研究模型的限制
完美模型中的主要限制: 1.访问存储器的WAW和WAR冒险。 2.多余的相关。 3.克服数据流的限制。 本节中讨论的这些限制理论上并不是无法 克服的。