CPU指令集浅说
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
许多人在选择CPU,或了解CPU性能时,常常忽略指令集这个指标,甚至认为它无关紧要的。
其实,指令集对于CPU来讲,是相当重要的。
举个常见的例子吧,有些使用老机子的人,在玩3D、视频、音频、图像、游戏等多媒体文件时,常常会感到效果不好。速度慢、卡、甚至无法处理等。这其中最重要的一个原因,就是老机子的CPU缺少先进的指令集。
本文就是力图用最通俗的语言,给非专业人士说说CPU的指令集。都是从网上学来的,纯属个人理解,绝非权威观点。由于尽量不使用那些艰涩难懂的专业术语,所以难免有不严谨之处。就当扫盲吧。
CPU指令集浅说
啥是指令集?
我们对电脑下达的每一个命令都需要CPU根据预先设定好的某一条指令来完成。
这些预先设定好的指令是预存在CPU中的。CPU依靠外来指令“激活”自己内存的指令,来计算和操控电脑。
每款CPU在设计时就规定了一系列与电脑其它部件相配合的指令系统。
预先存储的指令越多,CPU越“聪明”。可以做的“动作”越多。预先存储的指令越先进,CPU就越高级。就好比大人脑袋里的知识多,所以比小孩聪明。
多个指令集中在一起,通常叫指令集。
基本指令集与扩展指令集
CPU都有一个基本的指令集,在基本功能方面,它们的差别并不太大。没有基本指令集的CPU,就是“傻子”一样的摆设。
为了提高CPU在某些方面的性能,就必须增加一些特殊的指令满足特殊的需求,这些新增的指令就构成了扩展指令集。也就是常说的指令集。
精简指令集与复杂指令集
不管是基本指令集还是扩展指令集,都有精简与复杂之分。
千万不要认为精简一定不如复杂。恰恰相反的是,目前的精简指令集比复杂指令集好得多。所以精简指令集基本用于中、高档服务器中。尤其是高档服务器,使用的都是精简指令集。而且,精简指令集有不断向个人电脑领域发展的趋势。
从长远上讲,精简指令集是以后高性能CPU的发展方向。预计总有一天会一统江湖。
说到这,您一定会明白一个事实,那就是,目前绝大部分个人电脑都是使用复杂指令集的。
精简指令集(RISC)
精简指令集(RISC)有人又叫“简单指令集”。它是从复杂指令集(CISC)脱胎出来的。
在使用复杂指令集(CISC)的实践中,人们发现大部分程序(大约80%)通常只使用复杂指令集(CISC)中的很少部分指令(大约20%)就能正常工作,其它的指令很少用到。于是就在这20%的常用指令的基础上,开发出了精简指令集(RISC)。
我们来看看下面复杂指令集与精简指令集的主要比较吧。
复杂指令集计算机(CISC)精简指令计算机(RISC)
指令系统指令比较多,基本上是一个功能一条
指令;每个特定、复杂的功能都有专
门的指令。因此实现特殊功能容易
每条指令可以处理的工作比较丰富;
格式不规则;
每条指令执行时间较长。
只有较少的常用指令;对不常用的功能或大部分复杂的操
作,则使用简单指令合成。因此在实现复杂功能时,效率
可能较低。但可利用流水线和超标量技术加以改进和弥补。
每条指令完成的动作也很单纯。
格式非常标准;
每条指令执行时间都很短。
执行操作指令多,操作直接。使用微程序来实
现指令操作。
在执行速度上不如精简指令集。
有限制,控制简单。大多数操作都是寄存器到寄存器之间
的操作。
执行速度较快。
CPU 电路单元丰富,结构复杂,面积大、
功耗大。
单元电路较少,结构简单,布局紧凑,面积小、功耗低,
易于采用最新技术。
非常适合采用流水线、超流水线和超标量技术,从而实现
指令级并行操作,提高处理器的性能。
无法摆脱的x86指令集
x86是一种复杂指令集(CISC)。一直被Intel和AMD两大CPU开发商所垄断。
x86指令集是Intel开发的,后来增加了x87指令集,现在将x86和x87指令集统称为x86指令集。并将使用x86指令集的系统统称为x86架构。
虽然随着CPU技术的不断发展,Intel陆续研制出更新型的CPU,而且每种新的CPU,都会有自己新的指令。但Intel不得不考虑这样一个事实,相当丰富的软件资源都是以x86指令集为基础编写的(例如:Win XP 操作系统就是x86架构的)。为了保证电脑能继续运行以往开发的各类应用程序,以保护和继承丰富的软件资源,所以Intel公司所生产的CPU仍然继续使用x86指令集,仍然属于x86架构。AMD也是向购买了x86指令集的使用权,来开发自己的x86架构的CPU。
这样就形成了如今庞大的x86系列CPU。其被大量应用于个人电脑。可以这样说,目前绝大部分个人电脑都是x86架构的。
x86指令集是由基本指令集和扩展指令集组成的。其最常见的扩展指令集如下。
扩展指令集
目前常提到的扩展指令集大都是专门为多媒体应用的指令集。主要功能提高CPU处理3D图形、视频、音频、图像等的能力,提高CPU的处理速度等。
非专业人士并不一定非要详细了解这些指令集的一些专业知识的。只要记住,CPU可以支持的指令集越多,指令集的版本越高,就越好。
属于Intel的这类指令集主要有MMX、SSE、SSE2、SSE3等,属于AMD的有3D Now!等。
随着64位CPU的问世,双方又都推出了一些64位系统的指令集。
目前最新的Intel的CPU可以支持SSE、SSE2、SSE3指令集。随着Intel的逐步授权,AMD的CPU不仅进一步发展了自己的3D Now!指令集,并且可以支持Inel的SSE、SSE2、SSE3指令集。
MMX(Multi Media Extensions,多媒体扩展)指令集。包含57条指令。
SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集。包含70条指令。