超标量和VLIW

标量流水线机器的性能可以通过并行发出和执行多条指令来提高。 多发射处理器可以分为两类:VLIW 和超标量。 两者的根本区别在于同时发出的指令是由编译器静态决定还是由硬件动态决定。 VLIW 处理器是静态调度的,而超标量处理器是动态调度指令的。

VLIW 处理器依靠编译器利用依赖信息来静态调度指令的能力,以便可以并行调度多个独立指令。 这种架构具有宽指令字,可以打包多个指令。 宽度决定了可以并行发出的指令数。 这些宽字格式还对可以并行发布的指令类型施加了限制,以将资源争用考虑在内。 由于寻找独立指令的负担落在编译器身上,因此生成的体系结构并不复杂,适合嵌入式体系结构。

超标量处理器可以进一步分为两类:顺序发射(in-order issue)和乱序发射(out-of-order issue)。 顺序发射处理器按照指令到达解码阶段的相同顺序发出指令。 换句话说,由编译器静态调度指令 i 晚于指令 j ,则指令i永远不会在 j 之前执行。 硬件只是试图并行发出多个连续的独立指令。 另一方面,乱序发射处理器在运行时动态调度指令。 因此,只要不存在相关性,就可以在指令 j 之前发射指令i,即使静态编译时指令i晚于指令 j 。 通过在运行时消除假的的依赖关系并能够更早地发出后面的指令,乱序发射处理器可以利用更多的 ILP,从而显著提高性能。 然而,这是以增加硬件复杂性为代价的。 指令发射窗口(Instruction Issue Windows) 必须足够大才能找到没有依赖的指令; 发射阶段的依赖检查逻辑非常复杂; 为了保持对精确异常的顺序提交,增加了更多的硬件和复杂性。 这种额外的硬件在嵌入式环境中是不合理的,因此这种利用 ILP 的途径是不可用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
超长指令字(Very Long Instruction Word,简称VLIW)和超标(Superscalar)都是处理器中常见的并行处理架构。它们都可以在同一时钟周期内执行多个指令,从而提高处理器的并行处理能力。但是,超长指令字比超标更能提高并行处理能力的原因主要有以下两点: 1. 指令级并行性更高 超长指令字的指令包含了多个操作,这些操作可以在同一时钟周期内并行执行。因此,超长指令字可以更好地利用指令级并行性,从而提高并行处理能力。 而超标的指令是独立的,每个指令都需要单独的执行单元进行处理,因此不能像超长指令字那样在同一时钟周期内并行执行多个操作。这就限制了超标的并行处理能力。 2. 硬件复杂度更低 超长指令字的指令包含了多个操作,这些操作可以在同一时钟周期内并行执行。因此,超长指令字的处理器可以采用静态调度,即在编译期就将多个操作打包成一个指令,然后在运行期直接执行。这样可以避免运行期的指令调度,从而降低处理器的硬件复杂度。 而超标的指令是独立的,每个指令都需要单独的执行单元进行处理,因此需要在运行期进行指令调度,以便将多个指令并行执行。这就增加了处理器的硬件复杂度。 综上所述,超长指令字比超标更能提高并行处理能力,因为它可以更好地利用指令级并行性,并且可以采用静态调度,从而降低处理器的硬件复杂度。但是需要注意,超长指令字的指令长度通常较长,可能会导致一些缓存和总线等硬件资源的限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值