首页 > 编程知识 正文

CPU指令集,cpu基础指令集

时间:2023-05-06 04:52:41 阅读:217170 作者:1201

)1)什么是指令集

参考:

3358 product.pconline.com.cn/itbk/bjbzj/notebook/1109/2522116.html

指令集是指就是CPU中用来计算和控制计算机系统的一套指令的集合指令集是否先进与CPU的性能发挥有关,也是指示CPU性能的重要符号。

为了清楚起见,指令集是CPU可识别的语言,其中指令集可在一定的微架构上执行,而不同的微架构可支持同一指令集。 例如,Intel和AMD的CPU的微架构不同,但支持同一套X86指令集。 这个很容易理解。 指令集是指令集、指令集规范的集合,具体实现依赖于CPU的翻译和执行。 同一c语言代码可以使用不同的编译器编译不同的可执行文件。 当然,效率也可能不同。

)2)指令集分类:

一般来说,指令集分为精简指令集和复杂指令集。

指令集的简化,即RISC指令集reducedinstructionsetcomputer:(http://baike.Baidu.com/view/981569.htm ) )。

该指令集的特点是指令数量少,每条指令采用普通话长度,执行时间短,中央处理器的实现细节可见于机级程序中。

复杂指令集,即CISC指令集complexinstructionsetcomputer:(http://baike.Baidu.com/view/1177592.htm )。

在CISC微处理器中,程序中的每个指令都按顺序串行执行,每个指令的每个操作也按顺序串行执行。 逐次执行的优点是控制简单,但计算机各部分利用率不高,执行速度慢。

一般而言,RICS指令集是针对CISC指令集中常用指令优化的设计;必须通过放弃复杂的指令并结合指令来完成复杂的功能性。 当然,两者的使用情况不同,CISC适合复杂系统,否则RICS适合且功耗低。

注意:当初没有RICS和CISC的区别。 首先,Intel X86的第一个CPU定义了第一组指令集。 这是第一组指令集。 后来,一些公司发现许多指令并不常见,于是他们设计了一个简单高效的指令集,称为RICS指令集,并将原来的Intel X86指令集定义为CISC指令集。 所以,不是先有RICS,后有CISC,而是相反。

典型的RICS指令集的CPU为ARM、MIPS等

典型的CICS指令集的CPU是Intel的x86指令集和当前AMD的x86-64指令集。 PS:AMD兼容的CPU也支持x86指令集。 恰恰相反。

(3)指令集发展:

上面的分类是大致的分类,指令集一直在发展。 在CISC指令集上,一组指令集逐渐发展起来。

1. X86指令集:

X86指令集是Intel专门为第一个16位CPU(I8086 )开发的,IBM于1981年发售的世界第一台PC的CPU(I8086 ) I8086简化版)也使用了X86指令集。 另外,为提高计算机浮点数据处理能力而增加的X87芯片系列数学协处理器使用的是X87指令集,今后将使用X86指令集

2. MMX指令集:

1997年,英特尔推出了多媒体扩展指令集多媒体扩展指令集mmx(Multimediaextensions )。 这包括57条多媒体指令。 MX指令主要用于提高CPU处理多媒体信息的能力,提高CPU处理3D图形、视频和音频信息的能力。

3. SSE指令集:流精简扩展

由于MMX指令并未带来3D游戏性能的显著提升,1999年国际公司在奔腾iii CPU产品上发布了数据流单命令序列扩展指令(SSE )。 与单时钟周期并行处理多个浮点以有效提高浮点运算速度的MMX指令兼容的se。

4.SSE2指令集:

在奔腾4 CPU上,国际公司开发了新的指令集SSE2。 此次新开发的SSE2指令共有144条,包括浮点SIMD指令、整形SIMD指令、SIMD浮点与整形数据之间的转换、MMX寄存器中的数据转换等大部分。 重要的改进包括引入新的数据格式,例如128位SIMD整数运算和64位双精度浮点运算。

5.SSE3指令集:

对于SSE2,SSE3又添加了13条新指令,到目前为止,它们统称为pni(prescottnewinstructions )。 13条命令中,1条用于视频解码,2条用于线程同步,剩下的用于复杂的数学运算、浮点到整数的变换、SIMD浮点运算。

6.SSE4指令集:

SE4添加了50个新的性能增强指令,有助于加快编译、媒体、字符/文本处理和面向程序的速度。

7.3D Now! 扩展指令集:

3D Now! 指令集是AMD公司于1998年开发的多媒体扩展指令集,共有21条指令。 相对于MM

X指令集没有加强浮点处理能力的弱点,重点提高了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倍。

 

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

 

参考:

http://baike.soso.com/v126959.htm

http://baike.baidu.com/view/9174.htm

http://product.pconline.com.cn/itbk/bjbzj/notebook/1109/2522116.html

 

本文转载于:https://blog.csdn.net/gengshenghong/article/details/7006817

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。