3.7 多发射和静态调度

3.7 多发射和静态调度

之前所描述的方法虽然可以尽量降低CPI,但是最低为1,如果要为了进一步提高性能,希望将CPI降低到小于1,这就必须要一个时钟周期发射多条指令,即多发射处理器,主要有以下三种方式:

  1. 静态调度超标量处理器

  2. VLIW处理器

  3. 动态调度的超标量处理器

超标量处理器和VLIW处理器实现多发射的方式不一样

  1. 超标量处理器是通过设置多套“取指令”、“译码”、“执行”和“写回结果”等指令执行部件,能够同时发射并执行完成多条指令。这种设计允许处理器在一个时钟周期内识别和执行多个独立的指令,提高了处理器的并行性和吞吐量。实现需要复杂的硬件支持,增加了处理器的复杂性和成本,一般用于桌面系统中。

  2. VLIW处理器是通过静态调度的方式,使用编译器将多条互相独立的指令打包在一起形成一条超长指令送入处理器的取值模块,寻找独立指令的负担放在编译器上,硬件不解决数据依赖问题,从而简化了硬件结构,因此应用主要在功耗和面积为主要约束的嵌入式场合,例如某些DSP处理器就采用VLIW体系结构。

基本VLIW方法

VLIW使用多个独立的功能单元,将多个操作包装在一个非常长的指令中发射,收益随着最大发射率增大,开销的增长是限制宽发射处理器的主要因素。

早期VLIW是锁步工作的,没有冒险检测硬件。所有功能单元都要保持同步,故任意功能单元在流水线中的停顿都会导致整个处理器停顿。

二进制代码的兼容性是VLIW的主要逻辑问题,当功能单元和单元延迟不同的时候就需要不同的代码版本。旧代码的运行成问题。

小结

大量ILP是通过展开浮点程序中的简单循环实现的,原来的循环很可能可以在向量处理器上高效运行,对于此不清楚多发射方法相较于向量处理器究竟能够有多大优势。

而多发射方法相较于向量处理器的主要优势在于能够从结构化程度较低的代码中提取某些并行,以及能够轻松缓存所有形式的数据,这就是多发射方法能够成为利用ILP的主要方法,而向量主要作为拓展。

posted @ 2023-11-30 20:49  杨小靖  阅读(96)  评论(0编辑  收藏  举报