指令集介绍

1.什么是指令集

所谓指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统,而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志

通俗的理解,指令集就是CPU能认识的语言,指令集运行于一定的微架构之上,不同的微架构可以支持相同的指令集,比如Intel和AMD的CPU的微架构是不同的,但是同样支持X86指令集,这很容易理解,指令集只是一套指令集合,一套指令规范,具体的实现,仍然依赖于CPU的翻译和执行,就像,同样是一段C语言代码,我们可以用不同的编译器去编译得到不同的可执行文件,当然,自然而言,效率也可能不一样

2.指令集种类:

指令集是一直在发展的,在CISC指令集中,慢慢的发展了一系列的指令集:

1、X86指令集:

X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU—i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器则另外使用X87指令,以后就将X86指令集和X87指令集统称为X86指令集

2、MMX指令集:

1997年Intel公司推出了多媒体扩展指令集MMX(MultiMedia eXtensions),它包括57条多媒体指令,MMX指令主要用于增强CPU对多媒体信息的处理能力,提高CPU处理3D图形、视频和音频信息的能力

3、SSE指令集:Streaming SIMD Extensions

由于MMX指令并没有带来3D游戏性能的显著提升,所以,1999年Inter公司在Pentium III CPU产品中推出了数据流单指令序列扩展指令(SSE),SSE兼容MMX指令,它可以通过SIMD(单指令多数据技术)和单时钟周期并行处理多个浮点来有效地提高浮点运算速度

4、SSE2指令集:

在Pentium 4 CPU中,Inter公司开发了新指令集SSE2,这一次新开发的SSE2指令一共144条,包括浮点SIMD指令、整形SIMD指令、SIMD浮点和整形数据之间转换、数据在MMX寄存器中转换等几大部分,其中重要的改进包括引入新的数据格式,如:128位SIMD整数运算和64位双精度浮点运算等

5、SSE3指令集:

相对于SSE2,SSE3又新增加了13条新指令,此前它们被统称为pni(prescott new instructions),13条指令中,一条用于视频解码,两条用于线程同步,其余用于复杂的数学运算、浮点到整数转换和SIMD浮点运算

6、SSE4指令集:

SSE4又增加了50条新的增加性能的指令,这些指令有助于编译、媒体、字符/文本处理和程序指向加速

7、3D Now!扩展指令集:

3D Now!指令集是AMD公司1998年开发的多媒体扩展指令集,共有21条指令,针对MMX指令集没有加强浮点处理能力的弱点,重点提高了AMD公司K6系列CPU对3D图形的处理能力,由于指令有限,3D Now!指令集主要用于3D游戏,而对其他商业图形应用处理支持不足。

8、EM64T指令集:

Intel公司的EM64T(Extended Memory 64 Technology)即64位内存扩展技术,该技术为服务器和工作站平台应用提供扩充的内存寻址能力,拥有更多的内存地址空间,可带来更大的应用灵活性,特别有利于提升音频视频编辑、CAD设计等复杂工程软件及游戏软件的应用

9、3DNow!+指令集:

在原有的指令集基础上,增加到52条指令,其中包含了部分SSE指令,该指令集主要用于新型的AMD CPU上

10、AVX指令集:

Intel公司将为Sandy Bridge带来全新的指令扩展集Intel Advanced Vector Extensions (Intel AVX),AVX是在之前的128bit扩展到和256bit的SIMD(Single Instruction, Multiple Data),而Sandy Bridge的SIMD演算单元扩展到256bits的同时数据传输也获得了提升,所以从理论上看CPU内核浮点运算性能提升到了2倍

补充:

1、ARM指令集:ARM指令集是一种精简指令集(RISC)架构,广泛应用于移动设备和嵌入式系统中,ARM指令集具有较高的能效和较低的功耗,适合于低功耗设备,它包含了基本的算术、逻辑操作指令,以及分支、跳转、存储和加载指令等

2、MIPS指令集:MIPS指令集是一种常见的32位精简指令集(RISC架构,广泛应用于嵌入式系统和网络设备中,MIPS指令集包含了大约50条指令,包括算术、逻辑操作、条件跳转、数据传输等,MIPS指令集的特点是指令简单、格式统一,易于编译和优化

总结:可以看到,CPU指令集是一只在不断发展的,随着需求的不断增加,指令集也在不断扩展,从而提高CPU的性能,RICS指令集一般用于嵌入式等场合,所以指令集并没有太多的扩展

你可能感兴趣的:(网络,安全)