超标量、超级流水线、超长指令字、向量机详解

	“指令级并行 ILP”的含义是:如果程序中相邻的一组指令是相互独立的,即不竞争同一个功能部件、不相互等待对方的运算结果、不访问同一个存储单元,那么它们就可以在处理器内部并行地执行。超标量(Superscalar)技术 和 超长指令字(Very Long Instruction Word, VLIW)技术是目前最基本的两类指令级并行技术。Intel 公司的 Pentium 微处理器的实现采用了超标量技术,设置了两条相同的整数流水线(分别叫 U 流水线和 V 流水线)和一条浮点数流水线。浮点数流水线中又进一步采用多功能部件的思想,设置了加法器、乘法器和除法器。目前,主流的微处理器都采用了超标量技术。
 
  

1、超标量(Super Scalar) 将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术。 超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理.在单流水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)一条指令.超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多).这样,可以使得cpu的IPC(InstructionPer Clock) > 1, 从而提高cpu处理速度.    超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度. 超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作. 我们熟知的pentium系列(可能是p-II开始),还有SUNSPARC系列的较高级型号,以及MIPS若干型号等都采用了超级标量技术.

2、超级流水线(Super Pipeline) 超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么需要的时间久越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理指令是得操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度久提高了。当然,这是理想情况下,一般是流水线级数越多,重叠执行的执行就越多,那么发生竞争冲突得可能性就越大,对流水线性能有一定影响。 现在很多cpu都是将超标量和超级流水线技术一起使用,例如pentium IV,流水线达到20级,频率最快已经超过3GHZ.我们教科书上用于教学的经典MIPS只有5级流水。

3、超长指令字(VLIWVery Long InstructionWord 超常指令字是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。

VLIW机器较少,可能不太容易实现,我们平时很少接触VLIW机器(也许是我孤陋寡闻),我知道业界比较有名的VLIW公司之一是Transmeta,在加州硅谷Santa Clara(呵呵,我心目中硅谷圣地之一,还有San Jose,Palo Alto,都是it英雄辈出的地方)。它做的机器采用X86指令集,VLIW实现,具体资料可以去访问公司的网站。

4、向量机(Vector Machine 我们平时接触的计算机都是标量机,向量机都是大型计算机,一般用于军事工业,气象预报,以及其他大型科学计算领域,这也说明了向量机都很贵。国产的银河计算机就是向量机。 普通的计算机所做的计算,例如加减乘除,只能对一组数据进行操作,被称为标量运算。向量运算一般是若干同类型标量运算的循环。向量运算通常是对多组数据成批进行同样运算,所得结果也是一组数据。很多做科学计算的大(巨)型机都是向量机,例如国产银河。这个好像我们平时不太接触的到。

5SIMD技术 刚刚看到网上一段介绍SIMD的文字,贴在这里:   单指令多数据(Single Instruction Multiple Data)   简称SIMD。SIMD结构的CPU有多个执行部件,但都在同一个指令部件的控制下。 SIMD在性能上有什么优势呢?以加法指令为例,单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。 而在SIMD型CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使得SIMD特别适合于多媒体应用等数据密集型运算。AMD公司的3D NOW!技术其实质就是SIMD,这使K6-2处理器在音频解码、视频回放、3D游戏等应用中显示出优异性能。

你可能感兴趣的:(超标量、超级流水线、超长指令字、向量机详解)