2009-06-05 14:04:43
1966年,M.J.Flynn根据指令流(Instruction Stream机器执行指令序列)、数据流(Data Stream指令流调用的数据序列)、多倍性(Multiplicity在系统结构的流程瓶颈上同时执行的指令or数据可能最大个数)对计算机的体系结构进行了分类,这就是所谓的Flynn分类法。Flynn将计算机划分为四种基本类型,即SISD、MIMD、SIMD、MISD。
传统的顺序执行的计算机在同一时刻只能执行一条指令(即只有一个控制流)、处理一个数据(即只有一个数据流),因此被称为单指令流单数据流计算机(Single Instruction Single Data,SISD)。
而对于大多数并行计算机而言,多个处理单元都是根据不同的控制流程执行不同的操作,处理不同的数据,因此,它们被称作是多指令流多数据流计算机,即MIMD(Multiple Instruction Multiple Data,MIMD)计算机。
曾经在很长一段时间内成为超级并行计算机主流的向量计算机除了标量处理单元之外,最重要的是具有能进行向量计算的硬件单元。在执行向量操作时,一条指令可以同时对多个数据(组成一个向量)进行运算,这就是单指令流多数据流(Single Instruction Multiple Data,SIMD)的概念。因此,我们将向量计算机称为SIMD计算机。
第四种类型即所谓的多指令流单数据(MultipleInstructionSingleData,MISD)计算机。在这种计算机中,各个处理单元组成一个线性阵列,分别执行不同的指令流,而同一个数据流则顺次通过这个阵列中的各个处理单元。这种系统结构只适用于某些特定的算法。
相对而言,SIMD和MISD模型更适合于专用计算。在商用并行计算机中,MIMD模型最为通用,SIMD次之,而MISD最少用。
PII的MMX指令采用的是SISD,高性能服务器与超级计算机大多属于MIMD。