WEB开发网
开发学院软件开发C++ Pentium III处理器的单指令多数据流扩展指令(1)... 阅读

Pentium III处理器的单指令多数据流扩展指令(1)

 2010-10-15 09:08:13 来源:Web开发网   
核心提示:4.程序中的应用Pentium III的SSE指令集是为SIMD设计的,她可以同时操作4个单精度浮点值.因此,利用这些加强的浮点计算能力,对3D应用程序的细节表现是有实质性的提高的.事实上,SSE就是为3D应用创建的.游戏和其他的使用后端3D来显示2D和2.5D图象的程序,和使用矢量图形的应用程序一样都能分享到这种好处

4.程序中的应用

Pentium III的SSE指令集是为SIMD设计的,她可以同时操作4个单精度浮点值.因此,利用这些加强的浮点计算能力,对3D应用程序的细节表现是有实质性的提高的.事实上,SSE就是为3D应用创建的.游戏和其他的使用后端3D来显示2D和2.5D图象的程序,和使用矢量图形的应用程序一样都能分享到这种好处.

4.1 3D运算

计算机表示的3D图形是用大量的表示图形顶点的浮点数组成的,通过操作这些顶点数据就可以改变3D图形的外观.通过使用SSE指令集,应用程序可以获得更多的帮助,处理器可以在一个时钟周期内处理更多的数据,大大加快了3D图形的顶点计算速度,可以给用户带来更深刻的3D体验.

同样,应用程序开发者还可以用更多的顶点数据和更复杂的算法来创造出更为生动的3D图象效果来.

使用SSE指令集可以显著的改善一些在3D操作中经常用到的计算,像矩阵乘法、矩阵变换以及矩阵之间的加、减、乘、向量矩阵相乘、矢量化、 矢量点相乘和光照计算等等.

5.单指令多数据流指令集

SSE增加了70条新的指令,同时也添加了一个状态/控制字(status/control word).SSE指令集必须要得到操作系统的支持,支持她的操作系统必须能够保存和恢复这个处理器的状态字.目前,只有Microsoft的Windows98和Windows2000支持SSE指令集.SSE定义了新的指令、新的数据类型和指令范畴.

这些新添加的指令不是全部用来浮点数SIMD操作的,在这70条新指令中,有50条是浮点数的SIMD操作的,12条是针对整数的SIMD操作的,还有8条是cache操作(cacheability )指令.在这篇文章里,我们将着重讨论这50条浮点数的SIMD操作指令.

5.1 分类

Pentium III的SIMD新指令集可以按照不同的分类标准得到不同的分类方法.

如果我们按照指令的操作数划分,可以得到"数据包装"(Data Packing)的分类方法.

如果按照指令的动作特征划分,可以得到"指令范畴"(Instruction Categories)分类方法.

如果按照指令的计算特征划分,可以得到"指令分组"(Instruction Groups)分类方法.

5.1.1 数据包装分类

如果我们按照指令的操作数划分浮点数的SIMD部分,我们可以得到两个明显的分类:操作包裹数据(packed data)的指令和操作标量数据(scalar data)的指令.因此,我们可以得到包裹指令(packed instructions )和标量指令(scalar instructions)这两个种类.

在Pentium III指令集中,包裹指令和标量指令可以很方便的被区分出来.包裹指令的都带有"ps"前缀,而标量指令有一个"ss"前缀. SSE还定义了一个新的数据类型(data type),可以用来储存4个单精度浮点数,这个新的数据类型可以用下面的图3来表示.图中的元素"A"包含了4 个单精度浮点数a0,a1,a2,a3.

Tags:Pentium III 处理器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接