热点推荐
ZOL首页 > 显卡 > 评测 > 1000元以上 >

SIMD和MIMD两种结构你知道吗?

显卡帝教你读懂GPU架构图 轻松做达人

CBSi中国·ZOL 作者:中关村在线 唐磊 责任编辑:林光楠 【原创】 2011年07月12日 05:00 评论

SIMD和MIMD两种结构你知道吗?

    在我们继续介绍GPU架构设计之前我们需要对SIMD和MIMD这两种结构进行一个详细的说明。1966年,MichealFlynn根据指令和数据流的概念对计算机的体系结构进行了分类,这就是所谓的Flynn分类法。Flynn将计算机划分为四种基本类型,即SISD、MIMD、SIMD、MISD。


显卡帝手把手教你读懂GPU架构图
SIMD(Single Instruction Single Data Stream,单指令单数据流)结构

    传统的顺序执行的计算机在同一时刻只能执行一条指令(即只有一个控制流)、处理一个数据(即只有一个数据流),因此被称为单指令单数据流计算(Single Instruction Single Data Stream,SISD)。 

显卡帝手把手教你读懂GPU架构图
MIMD(多指令流多数据流)结构

    而对于大多数并行计算机而言,多个处理单元都是根据不同的控制流程执行不同的操作,处理不同的数据,因此,它们被称作是多指令流多数据流计算机,即MIMD(Multiple Instruction Stream Multiple Data Stream,简称MIMD)计算机,它使用多个控制器来异步地控制多个处理器,从而实现空间上的并行性

    ● 传统SIMD架构在执行效率下降的原因分析

    数据的基本单元是Scalar(标量),就是指一个单独的值,GPU的ALU进行一次这种变量操作,被称做1D标量。由于传统GPU的像素着色单元和顶点着色单元从一开始就被设计成为同时具备4次运算能力的算数逻辑运算器(ALU),所以GPU的ALU在一个时钟周期可以同时执行4次这样的并行运算,所以ALU的操作被称做4D Vector(矢量)操作。一个矢量就是N个标量,一般来说绝大多数图形指令中N=4。

显卡帝手把手教你读懂GPU架构图
图形指令中标量与矢量

    由于顶点和像素的绝大部分运算都是4D Vector,它只需要一个指令端口就能在单周期内完成4倍运算量,显然SIMD架构能够有效提升GPU的矢量处理性能以使效率达到100%。但如果4D SIMD架构一旦遇上1D标量指令的时候,效率就会陡然降至原来的1/4,而其他的3/4模块几乎被闲置。为了解决这种资源被浪费的情况,ATINVIDIA在进入DX9时代后相继采用混合型设计,比如R300就采用了3D+1D的架构,允许Co-issue操作(矢量指令和标量指令可以并行执行),NV40以后的GPU支持2D+2D和3D+1D两种模式,虽然很大程度上缓解了标量指令执行效率低下的问题,但依然无法最大限度的发挥ALU运算能力,尤其是一旦遇上分支预测的情况,SIMD在矢量处理方面高效能的优势将会大大降低。

    分析一下其中的原因,我们可以得知:在早期,传统的1条渲染管线包含了4个基本单元,而大多数程序指令都是4D的,所以执行效率会很高。然而随着API的不断革新以及游戏设计中复杂的Shader指令的发展,4D指令的出现比例开始逐步下降,而1D/2D/3D等混合指令开始大幅出现,故而传统的管线式架构效率开始越来越低下。

上一页 1 2 3 4 5 6 7 下一页
频道热词:华硕主板  Intel  AMD  
视觉焦点
显卡评测热点
排行 文章标题
TOP10周热门显卡排行榜
  • 热门
  • 新品