计算机系统结构考试:Chapter 6:Limits to ILP and SMT

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Najlepszy/article/details/84034587

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高速缓存; 内存别名
什么是线程级并行或多线程
线程级并行是多处理器支持多个线程同时并行执行。
线程级并行出现的原因:
由于程序代码中存在的数据及控制依赖,单线程中所能发掘的指令并行潜力是有限的。为了发掘有限的指令级并行潜力而一味强化乱序执行和分支预测,以至于处理器复杂度和功耗急剧上升,有时候得不偿失。
ILP本身也不再适应计算应用类型的变化:ILP更适用于传统的计算密集型应用,其中ILP程度较高。
多线程(Multithreading):多个线程通过重叠执行来共享同一个处理器的功能单元。
什么是数据级并行
处理器能够同时处理多条数据。
如何切换多线程
细粒度切换:细粒度切换在每条指令间都能进行线程的切换,从而导致多个线程的交替执行。
优点:
能够隐藏由任何或长或短的阻塞带来的吞吐率的损失
缺点:
减慢了每个独立线程的执行

粗粒度切换:粗粒度切换只在发生代价较高、时间较长的阻塞出现时执行。
优点:
线程切换速度快,线程只有遇到stall的时候才会停止下来,不会影响线程的执行速度
缺点:
不能有效地减少吞吐率的损失
什么是同时多线程
同时多线程技术是一种在多流出、动态调度处理器上同时开发线程级并行和指令级并行的改进的多线程技术。
multithreading 使用动态调度技术的处理器已经具有了开发线程级并行所需的硬件设置。

动态调度超标量处理器有大量的虚拟寄存器组,可以用来保存每个独立线程的寄存器状态
由于寄存器重命名机制提供了唯一的寄存器标识符,多个线程的指令可以在数据路径上混合执行,而不会导致各线程间源操作数和目的操作数的混乱。
乱序完成使得每个线程能够乱序执行,可以获得对硬件更好地利用。
为每个线程设置重命名表、保留各自的PC值、提供多个线程的指令结果提交的能力来实现。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Najlepszy/article/details/84034587
今日推荐