Concluding Remarks: What’s Ahead?
随着2000年开始,对利用指令级并行性的关注已达到顶峰。 在新世纪的前五年,很明显 ILP 方法可能已经达到顶峰,需要新的方法。 到2005年,英特尔和所有其他主要处理器制造商都对他们的方法进行了改进,以专注于多核。 更高的性能将通过线程级并行而不是指令级并行实现,高效使用处理器的责任将在很大程度上从硬件转移到软件和程序员。 这是自25年前流水线化和指令级并行性问世以来最重大的处理器体系结构变化。
在同一时期,设计人员开始探索使用更多数据级并行性作为获得性能的另一种方法。 SIMD 扩展使桌面和服务器微处理器能够实现图形和类似功能的适度性能提升。 更重要的是,图形处理单元 (GPU) 积极使用 SIMD,为具有广泛数据级并行性的应用程序实现了显着的性能优势。 对于科学应用,这种方法代表了一种可行的替代方案,可以替代在多核中使用的更通用但效率较低的线程级并行性。 下一章将探讨这些在使用数据级并行性方面的发展。
许多研究人员预测,ILP 的使用将出现重大缩减,并预测未来会出现两个问题的超标量处理器和更多数量的内核。 然而,稍高的问题率和推测性动态调度处理不可预测事件(例如一级缓存未命中)的能力的优势导致中等 ILP(通常大约 4 个问题/时钟)成为多核设计的主要构建块。 SMT的添加及其有效性(包括性能和能源效率)进一步巩固了适度问题,无序投机方法的地位。 事实上,即使在嵌入式市场,最新的处理器(例如 ARM Cortex-A9 和 CortexA73)也引入了动态调度、推测和更广泛的issue率。
未来的处理器极不可能尝试显着增加问题的宽度。从硅利用率和功率效率的角度来看,它的效率太低了。考虑Figure 3.46 中显示 IBM Power 系列中的五个处理器的数据。十多年来,Power 处理器对 ILP 的支持略有改进,但晶体管数量增加的主要部分(从 Power4 到 Power8 的 10 倍以上)用于增加缓存以及每个芯片的核心数量。甚至 SMT 支持的扩展似乎比 ILP 吞吐量的增加更受关注:从 Power4 到 Power8 的 ILP 结构从 5 个问题变为 8 个,从 8 个功能单元增加到 16 个(但没有从最初的 2加载/存储单元),而SMT支持从不存在增加到8个线程/处理器。在六代 i7 处理器中可以观察到类似的趋势,几乎所有额外的芯片都用于支持更多内核。接下来的两章重点介绍利用数据级和线程级并行性的方法。