首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指令级并行方法

指令级并行方法
EN

Stack Overflow用户
提问于 2016-04-14 11:53:31
回答 2查看 629关注 0票数 0

我试图了解指令级并行性中使用的方法以及它们之间的区别。我在这里的问题是,假设一组指令集最初是在没有指令级并行的处理器上运行的,那么这些方法中的哪一种可以用于在新处理器上实现指令级并行,以及为什么/如何。新处理器将执行相同的指令集并运行与原始处理器相同的程序二进制文件,但性能会更好。备选方案如下:

1)无序执行(Tomasulo算法)

2)流水线

3)超标量

4)VLIW

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-15 03:31:46

我想说,OOO将是第一件将大大提高ILP的事情。OOO体系结构是完全独立于编译器工作的硬件技术(这意味着OOO体系结构将在没有OOO的情况下对CPU执行相同的计算,并在不改变指令结构的情况下产生相同的结果。)

管道衬里是一种众所周知的老技术,但它有其局限性,增加了硬件的复杂性,最终会带来越来越少的回报。

VLIW和超标量本质上是相同的,但它们的并行性不同,需要特殊的硬件和特殊的编译器,与传统的控制流结构不兼容。这种技术基本上依赖于编译器将更多的指令打包到一个非常长的指令字(VLIW)中,这样就可以并行执行。

票数 0
EN

Stack Overflow用户

发布于 2020-01-13 21:34:22

从流水线开始。这是通过重叠提取、解码、执行、.实现ILP的最古老和最好的方法。多条指令。这是如此普遍,任何真正的CPU具有OOO,有序,超标量,VLIW,.要实现ILP,也将采用流水线方式。

是的,OOO将实现ILP。下面的第一和第三条指令可以并行执行OOO,而第二个指令必须等待第一个指令完成(生危害 on r1)。CPU调度程序必须动态地查找第三个指令OOO。

代码语言:javascript
复制
ld  r1, 0(r2)
add r2, r1, r3
add r4, r3, r5

你没有提到有序,但它也可以实现ILP。第一和第二指令可以并行执行,但第三条指令必须等待第一条指令完成,因为它在r1上也有原始危险。

代码语言:javascript
复制
ld  r1, 0(r2)
add r4, r3, r5
add r2, r1, r3

超标量和VLIW只存在于ILP中。VLIW采用静态编译时间调度来实现ILP。超标量使用CPU的执行时间调度和编译器的编译时间调度来实现ILP。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36622261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档