1、超标量(Super Scalar)
将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用
率的技术叫做标量流水技术.
超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理.在单流水线结构
中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)
一条指令.超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多).
这样,可以使得cpu的IPC(Instruction Per Clock) > 1, 从而提高cpu处理速度.
超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行
部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度.
超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行
操作.
我们熟知的pentium系列(可能是p-II开始),还有SUN SPARC系列的较高级型号,以及
MIPS若干型号等都采用了超级标量技术.
将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用
率的技术叫做标量流水技术.
超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理.在单流水线结构
中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)
一条指令.超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多).
这样,可以使得cpu的IPC(Instruction Per Clock) > 1, 从而提高cpu处理速度.
超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行
部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度.
超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行
操作.
我们熟知的pentium系列(可能是p-II开始),还有SUN SPARC系列的较高级型号,以及
MIPS若干型号等都采用了超级标量技术.
2、超级流水线(Super Pipeline)
超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令
是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么
需要的时间久越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理
指令是得操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力
运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度久提高了。
当然,这是理想情况下,一般是流水线级数越多,重叠执行的执行就越多,那么发生
竞争冲突得可能性就越大,对流水线性能有一定影响。
现在很多cpu都是将超标量和超级流水线技术一起使用,例如pentium IV,流水线达
到20级,频率最快已经超过3GHZ.我们教科书上用于教学的经典MIPS只有5级流水。
超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令
是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么
需要的时间久越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理
指令是得操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力
运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度久提高了。
当然,这是理想情况下,一般是流水线级数越多,重叠执行的执行就越多,那么发生
竞争冲突得可能性就越大,对流水线性能有一定影响。
现在很多cpu都是将超标量和超级流水线技术一起使用,例如pentium IV,流水线达
到20级,频率最快已经超过3GHZ.我们教科书上用于教学的经典MIPS只有5级流水。
3、超长指令字(VLIW:Very Long Instruction Word)
超常指令字是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条
指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常
一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以
并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,
长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,
避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。
VLIW机器较少,可能不太容易实现,我们平时很少接触VLIW机器(也许是我孤陋寡
闻),我知道业界比较有名的VLIW公司之一是Transmeta,在加州硅谷Santa Clara(呵呵
我心目中硅谷圣地之一,还有San Jose, Palo Alto,都是it英雄辈出的地方)。它做的
机器采用X86指令集,VLIW实现,具体资料可以去访问公司的网站。
超常指令字是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条
指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常
一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以
并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,
长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,
避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。
VLIW机器较少,可能不太容易实现,我们平时很少接触VLIW机器(也许是我孤陋寡
闻),我知道业界比较有名的VLIW公司之一是Transmeta,在加州硅谷Santa Clara(呵呵
我心目中硅谷圣地之一,还有San Jose, Palo Alto,都是it英雄辈出的地方)。它做的
机器采用X86指令集,VLIW实现,具体资料可以去访问公司的网站。
4、向量机(Vector Machine)
我们平时接触的计算机都是标量机,向量机都是大型计算机,一般用于军事工业,气
象预报,以及其他大型科学计算领域,这也说明了向量机都很贵。国产的银河计算机就是
向量机。
普通的计算机所做的计算,例如加减乘除,只能对一组数据进行操作,
被称为标量运算。向量运算一般是若干同类型标量运算的循环。
向量运算通常是对多组数据成批进行同样运算,所得结果也是一组数据。
很多做科学计算的大(巨)型机都是向量机,例如国产银河。这个好像我们平时不太
接触的到。
5、SIMD技术我们平时接触的计算机都是标量机,向量机都是大型计算机,一般用于军事工业,气
象预报,以及其他大型科学计算领域,这也说明了向量机都很贵。国产的银河计算机就是
向量机。
普通的计算机所做的计算,例如加减乘除,只能对一组数据进行操作,
被称为标量运算。向量运算一般是若干同类型标量运算的循环。
向量运算通常是对多组数据成批进行同样运算,所得结果也是一组数据。
很多做科学计算的大(巨)型机都是向量机,例如国产银河。这个好像我们平时不太
接触的到。
刚刚看到网上一段介绍SIMD的文字,贴在这里:
单指令多数据(Single Instruction Multiple Data)
简称SIMD。SIMD结构的CPU有多个执行部件,但都在同一个指令部件的控制下。
SIMD在性能上有什么优势呢?以加法指令为例,单指令单数据(SISD)的CPU对加法指令
译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操
作数;随后才能进行求和运算。
而在SIMD型CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进
行运算。这个特点使得SIMD特别适合于多媒体应用等数据密集型运算。AMD公司的3D NOW!
技术其实质就是SIMD,这使K6-2处理器在音频解码、视频回放、3D游戏等应用中显示出优
异性能。