Pentium 4处理器架构/微架构/流水线 (2) - SSE2

SIMD Technology and Streaming SIMD Extension 2

可以提升处理器性能的一种办法就是并行的执行多个计算,这样可以使用单条指令处理多个计算操作。实现这个办法就是使用单指令多数据(SIMD)计算技术。

下图是一个典型的SIMD计算。一条指令指定要进行的计算类型(OP表示),8个数据元素(X1, X2, X3, X4和Y1, Y2, Y3, Y4)分成了两组,分别紧缩在各自的数据结构中。相应的数据元素对(X1与Y1; X2与Y2; X3与Y3; X4与Y4)同时执行相同的计算操作。计算的结果也是相应的紧缩数据元素。

上图描述的SIMD计算方式,最早是由IA32架构引入的MMX技术实现。MMX技术可以对存储在8个64位的MMX寄存器中的紧缩的字节,单字和双字上进行SIMD计算。MMX寄存器集参看下图。

Pentium III处理器扩展了最初的SIMD计算模型,引入了Streaming SIMD Extension,即SSE技术。SSE技术可以对紧缩的单精度浮点数进行SIMD计算,这些操作数可以位于存储器中或者8个128位的XMM寄存器中。 每个单精度浮点数是32比特位长,所以一个XMM寄存器可以保存4个浮点数据元素。内存中的操作数也遵循128位长。XMM寄存器参看下图:

此外,SSE还扩展了SIMD计算能力(即MMX指令集),引入了若干额外的64位的MMX指令。

Pentium 4处理器进一步扩展了SIMD计算模型,引入了SSE2指令集。SSE2没有增加新的寄存器,依然利用存储器操作数和128位的XMM寄存器进行计算。但是引入了两种新的数据类型:紧缩的双精度浮点数据类型以及128位的紧缩的整型数据类型。因此SSE2的144条指令可以操作如下的数据类型及其数据元素:2个紧缩的双精度浮点数,16个紧缩的字节,8个紧缩的单字,4个紧缩的双字,以及2个紧缩的四字类型。

注:回忆一下:SSE指令集只能操作4个紧缩的单精度浮点数。

MMX指令集与SSE/SSE2指令集联合在一起,使得程序员具有了操作(即设计算法)紧缩的64位/128位整型,以及单精度/双精度浮点数的能力。

SIMD计算能力提升了3D图形处理,语音识别,图像处理,科学计算,以及其他多媒体程序的性能。这些程序具有如下的特征:

  • 内在的计算并行性
  • 规律的,重复的内存访问模式
  • 局部的,重复的操作数据
  • 独立于数据的控制流

IA32架构上的 SIMD浮点指令完全遵循IEEE 754二进制浮点算术标准。而且这些指令在处理器的各种执行模式下都可用:模式模式,实地址模式,以及虚拟8086模式。

SSE/SSE2技术和MMX技术是对IA32体系结构在架构层面上的增强扩展。所有的现有软件,无需修改,都可以继续正确地运行在采用了这些技术的处理器上。现有软件也可以和使用了这些技术的新软件共同运行,互不干扰。

SSE和SSE2指令集也引入了控制数据可缓存性以及存储器操作的指令,用来提升高速缓存的利用率和程序性能。

Summary of SIMD Technology

下面我们按时间顺序总结一下添加到IA32架构上的SIMD技术的新特性:

MMX技术

  • 64位MMX寄存器
  • MMX指令操作紧缩的字节,单字,双字整型数据
  • MMX指令主要用于多媒体及通信软件
  • MMX技术的PRM:Order#:243007-002

SSE技术

  • 128位XMM寄存器
  • SSE指令操作紧缩的单精度浮点数据类型
  • 引入数据预取指令
  • 引入非临时存储指令(non-temporal instruction)以及其他的数据可缓存性指令,内存排序指令
  • 新增额外的64位SIMD整型指令(即相当于扩充了MMX指令集)
  • SSE技术主要用于3D几何,3D渲染,语音识别,以及视频编解码

SSE2技术

  • 新增128位紧缩的双精度浮点数据类型
  • 新增128位SIMD整型操作指令,作用于16字节,8单字,4双字,或2四字紧缩数据类型
  • 新增支持对64位整型操作数进行SIMD计算
  • 新增指令用于新增与现存数据类型进行转换
  • 扩展对data shuffling的支持
  • 扩展对可缓存性与内存排序操作的支持
  • SSE2指令主要用于3D图形,视频编解码,以及加密计算
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
80x86/Pentium型计算机是指由Intel公司设计的一种处理器架构并且广泛应用于个人计算机(PC)中的处理器。它是基于80x86架构的进化版本,具有更高的性能和更多的功能。 80x86架构最初是在1978年由Intel推出的。它被称为80x86是因为它的前身是Intel的8086处理器,而80则是指它的指令集具有80位的宽度。这种架构从那时起一直在不断发展,通过添加新的指令、增加内存容量和提高性能来适应不断变化的计算需求。 Pentium型计算机是80x86架构的一个重要里程碑,在1993年由Intel发布。它是第一个能够执行超标量处理和动态指令预测的x86处理器。这些功能使得处理器能够同时执行多个指令,并且能够在运行时预测分支,从而提高了性能。 Pentium型计算机在处理器中引入了多级缓存,这些缓存可用于存储常用的指令和数据,以减少对内存的访问次数,从而加快计算速度。此外,Pentium还引入了虚拟内存和分段机制,以提高内存的管理和保护。 另外,Pentium型计算机还引入了多媒体扩展指令集(MMX)和浮点运算扩展指令集(SSE),这些指令集提供了对多媒体和浮点计算的加速,从而提高了处理器在这些领域的性能。 总的来说,80x86/Pentium型计算机架构是一种被广泛应用于个人计算机中的处理器架构。它通过引入超标量处理、动态指令预测、多级缓存和扩展指令集等功能来提高了计算机的性能和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值