关于CPU指令集,帮我理一下思路。

作者&投稿:再谈 (若有异议请与网页底部的电邮联系)
CPU常见的指令集有?~

  CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。我们通常会把CPU的扩展指令集称为"CPU的指令集"。


  精简指令集的运用

  在最初发明计算机的数十年里,随着计算机功能日趋增大,性能日趋变强,内部元器件也越来越多,指令集日趋复杂,过于冗杂的指令严重的影响了计算机的工作效率。后来经过研究发现,在计算机中,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将要一统江湖。


  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运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。S SE指令与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 !指令集
  由AMD公司提出的3DNow!指令集应该说出现在SSE指令集之前,并被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做最佳化的软件中能获得更好的效能。

  目前最新的Intel CPU可以支持SSE、SSE2、SSE3指令集。早期的AMD CPU仅支持3DNow!指令集,随着Intel的逐步授权,从Venice核心的Athlon 64开始,AMD的CPU不仅进一步发展了3DNow!指令集,并且可以支持Inel的SSE、SSE2、SSE3指令集。不过目前业界接受比较广泛的还是Intel的SSE系列指令集,AMD的3DNow!指令集应用比较少。

CPU的x86和ARM架构有啥区别?指令集又是啥?

悬赏真高,尽量详细作答。

错误挺多的嘛,慢慢解释




注明下面可能用到的一些名词的意义

micro-arch微架构

ISA指令集架构(指令集)

CPU处理器

HAL硬件抽象层

PLL物理逻辑层




———————————————————————————————————————————————————————————————————————————————————


先说指令集,指令集是一个CPU和软件之间的接口。他不是一个实物,只是CPU提供给上层软件的一个抽象。

所以程序员在编程时并不需要了解芯片的布局,只需要知道根据那些指令能完成怎样的功能就行了(这些指令由CPU执行)。

为了方便理解,我做个比喻会好一些,就像你买来一个灯泡你并不需要知道灯泡里面的电路时如何布局的,只是简单的看看说明书,怎样装上,怎样通电就能实现发光的供能了。灯泡好比CPU,ISA就是说明书,人就当程序员(编译器)的角色。




再来说汇编指令,机器指令的关系,CPU执行的是二进制代码(这叫机器指令,机器能理解的),汇编就是给人看的,人能理解的,如add,sub指令。

每条汇编指令都有相应的二进制代码。完成他们之间的转换是汇编器(现在的汇编器和编译器是打包在一起的)。

不同的指令集有不同的指令,汇编指令对应的机器码也不同。在一个指令集中,一条汇编指令对应一条二进制机器码(图,mips指令集汇编指令对应的机器指令)



现在的程序都是由高级语言编写的,如C,C++,C#,等等,这个明显比用汇编语言去编程高效得多,高级语言到二进制代码的转换时有编译器去完成,当然编译器还有优化代码的功能,使代码执行起来更有效率。(图,手迹,一条 C语句对应的mips指令和机器所执行的二进制代码,感受一下高级语言编程的高效)


系统是介乎在应用程序层和硬件之间的,作用我也不太清楚,应该是为应用程序分配硬件资源,用哪段内存,什么时候要使用CPU执行这样吧??



CPU的指令集所包括含的指令取决于程序员需不需要这些指令,这些指令能不能代替以往的指令使程序执行起来更有效率,说白了就是这条指令有没有存在的价值。





———————————————————————————————————————————————————————————————————————————————————



下面慢慢指出错误:


“汇编是老子,系统是儿子,程序就是小儿子了。”     ——完全没有这个关系,他们不再同一个层面上。完成的工作也不同。



“是不是我把汇编指令集的100多条命令背会了,就能写出各种程序”  ——现在编程都用高级语言了。   



“系统内存中的某些地方时受保护的,禁止查看,里面有不可告人的目的。于是我就在网上找资料,资料上说汇编可以实现机器语言几乎所有的功能。看到这里,我有些困惑了,那些汇编实现不了的,机器语言能办到的,是不是就是那些不可告人的地方?”   ——汇编的攻击性的确很强,因为他可以用指令直接操作硬件。但系统就是为了不让指令操作某些内存段,因为这段内存里面放着一些重要的系统文件,一旦被破坏就会造成系统崩溃。



“我猜CPU指令集和汇编指令集都是从机器语言中挑出来的吧!”——上面说了,CPU指令集是一个抽象,他是两个层面之间的接口,表现给下层硬件的是二进制的机器码,表现给应用层面的是汇编指令。一条汇编指令对应一条机器指令。




“CPU指令集对应的机器码可以写出一个小的系统,然后写出一个最初的汇编程序,用汇编可以做一个大大的系统,再做出更高级的程序设计语言,比如C,VC++

这么想对吗?”——系统和应用程序也是由高级语言编写,因为高级语言开发(编写)更有效率,代码读起来更容易理解



“地址总线就很容易理解。我的是32位系统,就是32个地址嘛!最后一个地址是32个1。”——地址总线32位是CPU设计决定的,系统32位是系统的事,不能浑然一谈。




码字码了很久,感觉问主还是个初学者啊,在这方面还需要多看看书




服务器CPU跟普通的台式机CPU有什么区别?
CPU,也即中央处理器,是一台电脑的神经中枢。作为PC的核心部件,CPU同时兼具运算核心和控制核心两大使命,可以说意义非小。不过在不同的产品线,CPU的构造和功用也并不相同,比如企业和消费领域的CPU并不尽相同。一般来说,服务器CPU和家用CPU有以下几点区别:1.指令集 服务器CPU的指令一般是采用的...

Intel VT- x对电脑系统有影响吗?
Intel VT-x开启对电脑系统没有影响,对运行虚拟机有帮助。VT-x是intel运用Virtualization虚拟化技术中的一个指令集,是CPU的硬件虚拟化技术,VT可以同时提升虚拟化效率和虚拟机的安全性,在x86平台上的VT技术,一般称之为VT-x,而在Itanium平台上的VT技术,被称之为VT-i。为解决纯软件虚拟化解决方案在...

X86指令集的内容有哪些?
指令集: (1) X86指令集要知道什么是指令集还要从当今的X86架构的CPU说起。X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU—i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器则另外使用X87指令,以后就将X86...

cpuz怎么看cpu主频
下面我整理了 关于这方面有关的知识,希望对你有帮助啦!CPU-Z是一款专业识别CPU(处理器)并查看CPU参数的硬件检测软件。通过它可以查看CPU的各种规格及参数,比如具体型号、制造工艺、指令集、各种频率、以及缓存等。先科普下各种技术名词:主频——就是CPU的时钟频率,简单地说就是CPU的工作...

请问CPU靠什么分辨好坏高低能详细点吗
但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。 7.CPU扩展指令集 CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标...

龙芯电脑系统信息解析,芯片界的“中国梦”
2006年9月13日,中国科学家宣布研制成功通用中央处理器芯片龙芯2E。它是一款采用64位元MIPSⅢ指令集的RISC处理器,扩展了多条多媒体指令,采用90纳米的CMOS工艺,晶体管数目是4700万个,芯片面积是6.8mm×5.2mm。最高主频达到1.0GHz,一般频率是800MHz,功耗大约是5-7瓦。实际运行频率定于660...

1:USB到底是干什么用的? 2:CPU到底是干什么用的? 3:独立显卡玩大型游戏...
提取指令之后,程式计数器根据指令式长度增加记忆体单元。指令的提取常常必须从相对较慢的记忆体寻找,导致CPU等候指令的送入。这个问题主要被论及在现代处理器的快取和管线化架构(见下)。 CPU根据从记忆体提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据CPU的指令集架构...

字节与字长的关系是字长为字节的()倍数.
字节与字长的关系是:字长为字节的8倍数。字节是计算机的基本编码单位,由8位组成,是计算机中的基本编码单位。字长是指同一时间中处理二进制数的位数,常用的字长为8位、16位、32位和64位,他们都是8的倍数。

服务器中央处理器子系统与内存子系统有什么技术?
我们通常会把CPU的扩展指令集称为"CPU的指令集"。SSE3指令集也是目前规模最小的指令集,此前MMX包含有57条命令,SSE包含有50条命令,SSE2包含有144条命令,SSE3包含有13条命令。目前SSE3也是最先进的指令集,英特尔Prescott处理器 已经支持SSE3指令集,AMD会在未来双核心处理器当中加入对SSE3指令集的支持,全美达的...

CPU的主频是高好,还是低好?
CPU的频率越高越好,主频越高就代表计算机的速度也越快。CPU主频越高那么性能就越强,这是在同代相架构、核心\/线程数量、制造工艺、缓存等基础上,在选择CPU的时候,还需要看架构、核心\/线程数量、制造工艺、缓存等核心参数。CPU频率越高,电脑性能越好,其中要注意其它搭配配制。随着CPU频率的升高,其...

安庆市13646045209: CPU的指令大致可以归纳为? -
老昭八正: 从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力.通常会把CPU的扩展指令集称为"CPU的指令集".

安庆市13646045209: CPU的指令集有哪些? -
老昭八正: (1)CISC指令集 CISC指令集,也称为复杂指令集,英文名是CISC,(Complex Instruction Set Computer的缩写).在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的.顺序执行的优点是控制简...

安庆市13646045209: 谁能帮我解释下CPU内核、指令↗集和架构之间的联系和作用 -
老昭八正: 指令集是一套编程的快捷算法,说白了善用指令集就能大幅提高运算的效率.而架构就是一套运行指令集的理论系统,它决定了CPU的工作模式以及执行效率.基本上每过一段时间,CPU的设计厂商就会发布一套新的CPU运算架构,而核心就是通过按照运算架构所设计的电路来制造的硬件.所以每一代新架构就对应产生不同的CPU内核.

安庆市13646045209: cpu指令是怎么回事 -
老昭八正: 补偿: cpu的指令集从主流的体系结构上分为精简指令集和复杂指令集,而在普通的计算机处理器基本上是使用的复杂指令集.在计算机早期的发展过程中,cpu中的指令集是没有划分类型的,而是都将各种程序需要相配合的指令集成到cpu中,...

安庆市13646045209: CPU多媒体指令集有哪些 -
老昭八正: MMX、MMX2、SSE、SSE2、SSE3和3DNOW.时下流行的较新的指令集是SSW3指令集,Intel出品.

安庆市13646045209: CPU指令集的问题` -
老昭八正: cpu作为一台电脑中的核心,它的作用是无法替代的.而cpu本身只是在块硅晶片上所集成的超大规模的集成电路,集成的晶体管数量可达到上亿个,是由非常先进复杂的制造工艺制造出来的,拥有相当高的科技含量. 然而如此一颗精密的芯片...

安庆市13646045209: 请问CPU的指令集是用来干嘛的? -
老昭八正: CPU_多媒体指令集解释nbsp;nbsp;nbsp;CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统.指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一.从现阶段的主流...

安庆市13646045209: CPU中的指令集是干什么用的?他是一个什么物件或程序? -
老昭八正: 它就是能够特定的解释一些电流或电信号的意思 要想十分清楚的话要学习数字电路与信号的知识 它不是一个物件也不是一个程序 平常说CPU有几千万个晶体管之类的,就是说这些指令集就是有这些晶体管组成的电路,而这个电路可以把它看成...

安庆市13646045209: 指令集是如何写入cpu的? -
老昭八正: 指令集不是写入CPU的,指令集是CPU体系结构设计的一个重要方面.CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统.这些指令系统就称为指令集,指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一.也就是说指令集是和CPU同时诞生的,而不是后来写入的.每一种CPU都有对应的指令集,指令集反映了CPU的处理能力和方式,体现编程者可以使用的指令和编程规则.

安庆市13646045209: 处理器什么是指令集?干嘛用的?
老昭八正: CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统.指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一.从现阶段的主流体系结构讲,指令集可分为复杂指令集和...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网