ILP的限制在哪里?
1、大量相互矛盾的研究
基准不同(比如Fortran语言和C语言的不同)、硬件的复杂度、编译器的复杂度
2、随着硬件预算的增加,ILP的可用性正逐渐减小
3、我们是否需要发明新的硬件/软件机制来保持处理器的性能曲线?
理论上:
编译器技术的进步+显著的新的和不同的硬件技术可能能够克服研究中假定的限制。
实际上:
然而,与现实硬件结合的这种进展不太可能在不久的将来克服这些限制。
完美机器的限制:
1、寄存器重命名:有无限的虚拟寄存器,可以避免全部的RAW和WAW数据相关。
2、分支预测:完全准确,无预测失误的情况
3、跳转预测:完全准确,无预测失误的情况
2&3实现消除了控制相关。
4、记忆地址分析
什么是指令窗口
The set of instructions that is examined for simultaneous execution is called the window
在窗口中,我们可以找到同时发射的指令的集合。
窗口大小将由确定n个发出寄存器寄存器指令之间是否具有寄存器依赖关系的成本来确定。
限制ILP发展的因素:
每个时钟发射的指令数 ;指令窗口大小; 寄存器重命名; 分支预测; Cache高速缓存; 内存别名
什么是线程级并行或多线程
线程级并行是多处理器支持多个线程同时并行执行。
线程级并行出现的原因:
由于程序代码中存在的数据及控制依赖,单线程中所能发掘的指令并行潜力是有限