欢迎光临散文网 会员登陆 & 注册

【转】计算机指令集架构 – 超长指令字(VLIW)

2023-05-23 02:16 作者:失传技术  | 我要投稿

计算机指令集架构 – 超长指令字(VLIW)

jacob

闲人散鹤

提高CPU性能的一个关键方向是如何提高指令级的细粒度并行。目前指令级细粒度并行性的一些方法有:

  • 流水线:流水线已经普遍应用于处理器中,通过改进单个流水线的实现,几乎无法再获得更多的收益。

  • 多处理器:使用多个处理器仅对有限的应用程序能够起到提高性能的效果。

  • 超标量体系结构:超标量架构可以提高所有类型程序的性能。超标量体系结构意味着一次能够完成多个指令的执行

  • 每条指令完成多个独立操作:即超长指令字架构(Very Long Instruction Word – VLIW)。


VLIW架构

VLIW架构是由Josh Fisher在20世纪80年代早期提出,当时集成电路制造技术和高级语言编译器技术出现了巨大的进步。其主要思想是:

  • 将多个相互无依赖的指令封装到一条超长的指令字中

  • CPU中有对应数量的ALU完成相应的指令操作

  • 指令之间的依赖性和调度由编译器来完成

由于在一条指令中封装了多个并行操作,其指令的长度比RISC或CISC的指令要长,因此起名为超长指令集。

VLIW的设计思想与RISC类似,即采用简单的指令和硬件。不同之处在于,VLIW并行执行多条指令。VLIW架构中,指令级并行的发现与指令执行顺序的调度(硬件中最困难的部分)完全交由编译器完成。这样,硬件可以尽可能的保持简单,并采用流水线,从而使得CPU的设计简化,并达到较高的主频。在某种程度上,可以将VLIW架构看作是多条RISC流水线并行起来的结果。

VLIW实现的功能与超标量处理器也有相似之处 —— 一次发射并完成多个操作,但他们之间有一个重要的区别:VLIW硬件不负责发现并发执行多个操作的工作。对于VLIW实现,很长的指令字已经对并发操作进行了编码,这通常是由编译器来完成的。与RISC或CISC的高度超标量实现相比,这种显式编码极大地降低了硬件的复杂性。

因此,VLIW的最大优势是,与同等并行的RISC或CISC芯片相比,高并发(并行)实现要简单得多,构建成本也低得多。RISC或CISC通常需要复杂逻辑发现指令之间的数据依赖关系,以及乱序执行逻辑和超标量架构来实现多指令的并行发射。VLIW是构建超标量微处理器的一种更简单的方法。

RISC、CISC和VLIW架构区别

架构特征CISCRISCVLIW指令长度变长固定,通常32 bits固定指令格式字段布局可变字段布局固定一致字段布局固定一致指令语义指令从简单到复杂变化,每条指令可能有许多依赖操作每个指令的语义几乎总是一个简单的操作多数指令是简单、独立的操作寄存器较少,部分为专用寄存器较多通用寄存器较多通用寄存器内存引用方式与许多不同类型指令中的操作捆绑在一起不与操作捆绑在一起,如,Load/Store架构不与操作捆绑在一起,如,Load/Store架构硬件设计利用微码实现采用单条流水线、不使用微码采用多条流水线、不使用微码和复杂的指令调度逻辑

从原理上看一下CISC、RISC和VLIW的区别,注意,实际上的代码不会是这样的,这里只是说明三种架构的区别。

一个C语言函数:

function( long j) {    long i;    j = j + I; }

VLIW指令架构优缺点

优点:

  • 不需要动态调度硬件  简化硬件电路

  • 不需要在VLIW指令中进行依赖项检查  简单的指令多发射硬件

  • 取指后分发到不同能单元,不需要进行指令对齐/分配  简化硬件电路

缺点:

  • 编译器需要找到N个独立的操作

    • 如果无法找到,需要在一个VLIW指令中插入NOP

    • 降低并行性,增加代码大小

  • 当执行宽度(N)、指令延迟、功能单元改变时需要重新编译(超标量架构不需要重新编译)

  • 同步执行会导致独立操作停止

    • 在延迟时间最长的指令完成之前,任何指令都不能执行

典型商用VLIW架构芯片

Intel IA-64

Intel IA-64是Itanium系列64位微处理器的指令集体系结构,基于VLIW设计思想,称为EPIC(Explicitly Parallel Instruction Computing)架构。指令之间可以存在依赖关系,指令编码中使用几个bit指明哪几条指令之间存在着依赖关系。

ATI GPU

相对于Nvidia GPU采用了SIMT架构,ATI GPU采用了VLIW架构。以ATI Radeon HD 5800为例,GPU由20个SIMD计算引擎组成,每个SIMD计算引擎由16个线程处理器单元(Thread Processor - TP)组成。而每个TP则是一个5-way的VLIW Processor。

VLIW架构在嵌入式市场,如DSP,领域获得了成功应用。


总而言之,VLIW指令集架构简化了硬件设计,将最复杂的工作推给了编译器。

通常,常用的应用中,发现足够的并行指令填满VLIW的可执行单元是非常困难的。这就导致VLIW的利用率较低,即出现设计/宣称处理能力很高,但是实际的性能却较低的现象。




发布于 2020-12-18 01:26


【转】计算机指令集架构 – 超长指令字(VLIW)的评论 (共 条)

分享到微博请遵守国家法律