当前位置: 移动技术网 > 科技>硬件教程>cpu > CPU之多媒体指令集详细介绍

CPU之多媒体指令集详细介绍

2020年09月19日  | 移动技术网科技  | 我要评论
CPU之多媒体指令集详细介绍CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。... 12-04-16
cpu依靠指令来计算和控制系统,每款cpu在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是cpu的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如intel的mmx(multi media extended)、sse、 sse2(streaming-single instruction multiple data-extensions 2)和amd的3dnow!等都是cpu的扩展指令集,分别增强了cpu的多媒体、图形图象和internet等的处理能力。我们通常会把cpu的扩展指令集称为"cpu的指令集"。
1、精简指令集的运用
在最初发明计算机的数十年里,随着计算机功能日趋增大,性能日趋变强,内部元器件也越来越多,指令集日趋复杂,过于冗杂的指令严重的影响了计算机的工作效率。后来经过研究发现,在计算机中,80%程序只用到了20%的指令集,基于这一发现,risc精简指令集被提了出来,这是计算机系统架构的一次深刻革命。risc体系结构的基本思路是:抓住cisc指令系统指令种类太多、指令格式不规范、寻址方式太多的缺点,通过减少指令种类、规范指令格式和简化寻址方式,方便处理器内部的并行处理,提高vlsi器件的使用效率,从而大幅度地提高处理器的性能。
risc指令集有许多特征,其中最重要的有:
•指令种类少,指令格式规范:risc指令集通常只使用一种或少数几种格式。指令长度单一(一般4个字节),并且在字边界上对齐,字段位置、特别是操作码的位置是固定的。
•寻址方式简化:几乎所有指令都使用寄存器寻址方式,寻址方式总数一般不超过5个。其他更为复杂的寻址方式,如间接寻址等则由软件利用简单的寻址方式来合成。
•大量利用寄存器间操作:risc指令集中大多数操作都是寄存器到寄存器操作,只以简单的load和store操作访问内存。因此,每条指令中访问的内存地址不会超过1个,访问内存的操作不会与算术操作混在一起。
•简化处理器结构:使用risc指令集,可以大大简化处理器的控制器和其他功能单元的设计,不必使用大量专用寄存器,特别是允许以硬件线路来实现指令操作,而不必像cisc处理器那样使用微程序来实现指令操作。因此risc处理器不必像cisc处理器那样设置微程序控制存储器,就能够快速地直接执行指令。
•便于使用vlsi技术:随着lsi和vlsi技术的发展,整个处理器(甚至多个处理器)都可以放在一个芯片上。risc体系结构可以给设计单芯片处理器带来很多好处,有利于提高性能,简化vlsi芯片的设计和实现。基于vlsi技术,制造risc处理器要比cisc处理器工作量小得多,成本也低得多。
•加强了处理器并行能力:risc指令集能够非常有效地适合于采用流水线、超流水线和超标量技术,从而实现指令级并行操作,提高处理器的性能。目前常用的处理器内部并行操作技术基本上是基于risc体系结构发展和走向成熟的。
正由于risc体系所具有的优势,它在高端系统得到了广泛的应用,而cisc体系则在桌面系统中占据统治地位。而在如今,在桌面领域,risc也不断渗透,预计未来,risc将要一统江湖。
2、cpu的扩展指令集
对于cpu来说,在基本功能方面,它们的差别并不太大,基本的指令集也都差不多,但是许多厂家为了提升某一方面性能,又开发了扩展指令集,扩展指令集定义了新的数据和指令,能够大大提高某方面数据处理能力,但必需要有软件支持。
•mmx 指令集
mmx(multi media extension,多媒体扩展指令集)指令集是intel公司于1996年推出的一项多媒体指令增强技术。mmx指令集中包括有57条多媒体指令,通过这些指令可以一次处理多个数据,在处理结果超过实际处理能力的时候也能进行正常处理,这样在软件的配合下,就可以得到更高的性能。mmx的益处在于,当时存在的操作系统不必为此而做出任何修改便可以轻松地执行mmx程序。但是,问题也比较明显,那就是mmx指令集与x87浮点运算指令不能够同时执行,必须做密集式的交错切换才可以正常执行,这种情况就势必造成整个系统运行质量的下降。
•sse指令集
sse(streaming simd extensions,单指令多数据流扩展)指令集是intel在pentium iii处理器中率先推出的。其实,早在piii正式推出之前,intel公司就曾经通过各种渠道公布过所谓的kni(katmai new instruction)指令集,这个指令集也就是sse指令集的前身,并一度被很多传媒称之为mmx指令集的下一个版本,即mmx2指令集。究其背景,原来"kni"指令集是intel公司最早为其下一代芯片命名的指令集名称,而所谓的"mmx2"则完全是硬件评论家们和媒体凭感觉和印象对"kni"的 评价,intel公司从未正式发布过关于mmx2的消息。
而最终推出的sse指令集也就是所谓胜出的"互联网sse"指令集。sse指令集包括了70条指令,其中包含提高3d图形运算效率的50条simd(单指令多数据技术)浮点运算指令、12条mmx 整数运算增强指令、8条优化内存中连续数据块传输指令。理论上这些指令对目前流行的图像处理、浮点运算、3d运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。sse指令与3dnow!指令彼此互不兼容,但sse包含了3dnow!技术的绝大部分功能,只是实现的方法不同。sse兼容mmx指令,它可以通过simd和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。
sse2指令集
sse2(streaming simd extensions 2,intel官方称为simd 流技术扩展 2或数据流单指令多数据扩展指令集 2)指令集是intel公司在sse指令集的基础上发展起来的。相比于sse,sse2使用了144个新增指令,扩展了mmx技术和sse技术,这些指令提高了广大应用程序的运行性能。随mmx技术引进的simd整数指令从64位扩展到了128 位,使simd整数类型操作的有效执行率成倍提高。双倍精度浮点simd指令允许以 simd格式同时执行两个浮点操作,提供双倍精度操作支持有助于加速内容创建、财务、工程和科学应用。除sse2指令之外,最初的sse指令也得到增强,通过支持多种数据类型(例如,双字和四字)的算术运算,支持灵活并且动态范围更广的计算功能。sse2指令可让软件开发员极其灵活的实施算法,并在运行诸如mpeg-2、mp3、3d图形等之类的软件时增强性能。intel是从willamette核心的pentium 4开始支持sse2指令集的,而amd则是从k8架构的sledgehammer核心的opteron开始才支持sse2指令集的。
sse3指令集
sse3(streaming simd extensions 3,intel官方称为simd 流技术扩展 3或数据流单指令多数据扩展指令集 3)指令集是intel公司在sse2指令集的基础上发展起来的。相比于sse2,sse3在sse2的基础上又增加了13个额外的simd指令。sse3 中13个新指令的主要目的是改进线程同步和特定应用程序领域,例如媒体和游戏。这些新增指令强化了处理器在浮点转换至整数、复杂算法、视频编码、simd浮点寄存器操作以及线程同步等五个方面的表现,最终达到提升多媒体和游戏性能的目的。intel是从prescott核心的pentium 4开始支持sse3指令集的,而amd则是从2005年下半年troy核心的opteron开始才支持sse3的。但是需要注意的是,amd所支持的sse3与intel的sse3并不完全相同,主要是删除了针对intel超线程技术优化的部分指令。
•3d now!(3d no waiting)指令集
3dnow!是amd公司开发的simd指令集,可以增强浮点和多媒体运算的速度,并被amd广泛应用于其k6-2 、k6-3以及athlon(k7)处理器上。3dnow!指令集技术其实就是21条机器码的扩展指令集。
与intel公司的mmx技术侧重于整数运算有所不同,3dnow!指令集主要针对三维建模、坐标变换 和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高3d处理性能。后来在athlon上开发了enhanced 3dnow!。这些amd标准的simd指令和intel的sse具有相同效能。因为受到intel在商业上以及pentium iii成功的影响,软件在支持sse上比起3dnow!更为普遍。enhanced 3dnow!amd公司继续增加至52个指令,包含了一些sse码,因而在针对sse做最佳化的软件中能获得更好的效能。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网