与并行处理相关的技术
1.超标量技术
如果说流水线技术是依靠提高每个“操作工人”的效率来达到提高整体效率的目的的话,那超标量就是纯粹在增加“工人”的数量了。它通过重复设置大量的处理单元,并核定方式连接起来,在统一的控制部件控制下,通过并行操作来完成各自分配的不同任务,如果说流水线等技术是提高CPU部件的重叠使用效率,那么超标量技术则是通过典型的资源重复设置来提高计算机处理速度的方法。超标量技术从某种程度上讲是阵列处理机的一种典型的应用。
2.向量处理技术
通常把一串相互独立的数叫做向量,这样一组数的运算叫做向量处理。可以看出,一条向量指令可以处理多个甚至多对操作数。对应地,也需要相应的向量来处理单元和数据表示。
现在,向量处理技术比较热门,已经投入应用而且流行起来的也很多。下面就来分别予以介绍。
(1)MMX指令集
MMX指令集由ntel公司开发,包括57条指令,允许CPU同时对2个、4个甚至8个数据进行并行处理,而丝毫不影响系统的速度。在Pentium MMX结构的CPU中,增加若干64位的寄存器来完成上述使命。其最初目的是用于提高CPU对3D数据的处理能力,但实质上3D技术更需要的是浮点运算。随后出现的3DNow,SSE和用于苹果电脑的ALtiVec指令系统很快便让MMX指令集走入了历史。
(2)3DNow!指令集
3DNow!指令集由AMD公司开发,包括21条新指令,用来缓解CPU与三维图形加速卡之间在三维图像建模和纹理数据取用中的传输瓶颈。3Dow!致力于提高个人电脑在三维图形,Internet VRML,AC-3杜比环绕音效处理以及其他浮点运算密集型应用程序上的处理能力。
(3)SSE指令集
SSE这项技术也是Intel开发的,曾被叫做“KNI”,但它最终的名字被定义为流式SMD扩展(Streaming SIMD Extension)的简称。它,总共包含70条指令,其中50条SIMD(单指令多数据)浮点指令、12条全新MMX指令和8条系统内存数据流传送优化指令。它通过8个全新的128位单精度寄存器,能同时处理4个单精度浮点变量,提供了全新的“处理器分离模式”。这是继10年前386模式之后,对系统首次进行构架模块化的变动。
(4)AltiVec指令单元
7400是一款RISC处理器,由Motorola公司生产,被苹果公司用于G4苹果电脑上。它提供的AltiVec指令单元和SSE,3DNow!原理类似(但更强大),共有162条的单指令多数据(SMD)指令,主要用于加速矩阵的计算功能中。AltiVec单元一次处理128位的数据。这些数据可以按3种方法来分配:16个8位数据、8个16位数据或4个32位数据。G4内建有128位的内部内存通路。它有162条AltiVec指令,比X86系统中的SSE和3Dnow!多出许多。指令的范围从最基本的向量算法(加/减、点乘、十字相乘等)到复杂的线性代数函数,比如置换操作等。
3.多处理器技术
多处理器技术采用多指令流、多数据流(MMD)的操作方式。从结构上看,一类是具有共享存储器的系统:另一类是具有分布存储器的系统。
另外有一种多处理器技术是在一个封装里实现多个子CPU的工作方式,让多个子CPU同时分别执行一个线程,而每个线程内部照样使用现在最先进的超标量、流水线等结构。