200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 编程语言-2-处理器架构 指令集和汇编语言

编程语言-2-处理器架构 指令集和汇编语言

时间:2020-07-13 08:43:24

相关推荐

编程语言-2-处理器架构 指令集和汇编语言

1 概念

(1)指令集决定了处理器的架构,因为处理器架构就是用硬件电路实现指令集。但是具体用什么样的处理器架构,设计怎样的硬件电路,每个人设计的都可以不一样。

Instruction Set Architecture

指令集架构ISA:它是CPU的一个特性,决定CPU的解码电路和执行单元,但并不存储在CPU内部。是微结构提供给上层一个接口,类似于程序员编程时用到的api。某CPU能执行哪个指令集的所有指令就称为兼容此指令集。

(2)处理器架构就是处理器的硬件架构,称为微架构。是一堆硬件电路,去实现指令集所规定的操作运算。

处理器架构即微结构,指令集架构决定微结构的一部分(解码逻辑和执行单元)。

微架构其实更好理解一些,他们是在指令集架构体系之内的一种结构设计,是CPU内部晶体管的一种排列方式。英特尔和AMD有各自的技术,它们微架构也各不相同,对微架构的优化,会让CPU性能有较大的提升。

(3)汇编语言是用人类看得懂的语言来描述指令集。否则指令集的机器码都是一堆二进制数字,人类读起来非常麻烦,但汇编是用类似人类语言的方式描述指令集,读起来方便多了。

2 发展历程

要设计处理器,首先就需要有指令集,规定处理器相应操作,通过指令集去控制处理器实现相应功能。

但处理器是一堆硬件电路,只能识别二进制数据,所以指令集是由一堆二进制数据组成。而二进制数据对人类来说读起来很麻烦。为了方便人类操作指令集,发明了汇编语言来描述指令集。汇编语言类似人类语言,读起来方便多了。

虽然汇编语言读起来方便了,但也有缺陷。首先汇编语言操作起来还是挺麻烦的。其次汇编语言对应一条条指令集,所以当指令集改变时,就得修改相应汇编语言,导致其可移植性很差,不能跨平台使用,如ARM的汇编语言与Intel X86的就不同。

这时人们就想开发一种更方便操作,超越指令集的语言,于是有了C,C++等高级语言

但处理器只能识别二进制码,那怎么能识别高级语言呢?于是人们开发了编译器,依照如下顺序,将高级语言翻译成二进制码: 高级语言→汇编语言→二进制机器码。

至此,人类可以很方便的利用高级语言编写程序,控制处理器完成相应功能。

3 指令集

在计算机中,指示计算机硬件执行某种运算、处理功能的命令称为指令。

指令是计算机运行的最小的功能单位,而硬件的作用是完成每条指令规定的功能。

一台计算机上全部指令的集合,就是这台计算机的指令系统,也称指令集,是这台计算机全部功能的体现。

常见的指令集有:Intel的x86,EM64T,MMX,SSE,SSE2,SSE3,SSSE3 (Super SSE3),SSE4A,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX等指令集;和AMD的x86,x86-64,3D-Now!指令集。

从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分。

(1)复杂指令集

复杂指令集,也称为CISC指令集,英文名是CISC,(Complex Instruction Set Computing的缩写)。

所谓复杂指令集计算机是依靠增加机器的硬件结构来满足对计算机日益增加的性能要求。

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

其实它是英特尔生产的x86系列(也就是IA-32架构)CPU及其兼容CPU(如AMD、VIA的)。即使是现在新起的X86-64(也被称为AMD64)都是属于CISC的范畴。

(2)精简指令集

在具有先进的存储器技术和先进的编译程序的条件下,CISC体系结构已不再适用了,因而诞生了RISC体系结构,RISC技术的基本出发点就是通过精减机器指令系统来减少硬件设计的复杂程度,提高指令执行速度。

精简指令集计算机(RISC:Reduced Instruction Set Computing)是一种指令长度较短的计算机,其运行速度比CISC要快。

RISC的指令系统相对简单,它只要求硬件执行很有限且最常用的那部分指令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。

4 厂商

从CPU发明到现在,有非常多种架构,从我们熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它们之间的差距都非常大。

以ARM 为代表的精简指令集。

以x86 为代表的复杂指令集。

(1)制造工艺

ARM和Intel处理器的一大区别是ARM从来只是设计低功耗处理器,Intel的强项是设计超高性能的台式机和服务器处理器。

一直以来,Intel都是台式机的服务器行业的老大。然而进入移动行业时,Intel依然使用和台式机同样的复杂指令集架构,试图将其硬塞入给移动设备使用的体积较小的处理器中。但是Intel i7处理器平均发热率为45瓦。基于ARM的片上系统(其中包括图形处理器)的发热率最大瞬间峰值大约是3瓦,约为Intel i7处理器的1/15。

(2)64位计算

对于64位计算,ARM和Intel也有一些显著区别。Intel并没有开发64位版本的x86指令集。64位的指令集名为x86-64(有时简称为x64),实际上是AMD设计开发的。Intel想做64位计算,它知道如果从自己的32位x86架构进化出64位架构,新架构效率会很低,于是它搞了一个新64位处理器项目名为IA64。由此制造出了Itanium系列处理器。

同时AMD知道自己造不出能与IA64兼容的处理器,于是它把x86扩展一下,加入了64位寻址和64位寄存器。最终出来的架构,就是 AMD64,成为了64位版本的x86处理器的标准。IA64项目并不算得上成功,现如今基本被放弃了。Intel最终采用了AMD64。

4.1 ARM公司

ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。

Acorn计算机公司是著名的ARM公司的前身。Acorn计算机公司(Acorn Computers)创立于1978年,公司位于英格兰的剑桥,它在80年代PC革命初期的贡献,相当于美国的“苹果公司”。1991年,Acorn计算机公司剥离了ARM部门,成立了ARM公司。

4.2 Intel公司

以x86 为代表的复杂指令集。

,AMD推出了业界首款64位处理器Athlon 64,也带来了x86-64,即x86指令集的64位扩展超集,具备向下兼容的特点。

为了和AMD展开竞争,Intel也在推出了自己的64位版x86,也就是EM64T。

4.3 MIPS科技公司

MIPS架构(英语:MIPS architecture,为Microprocessor without interlocked piped stages architecture的缩写,亦为Millions of Instructions Per Second的双关语),是一种采取精简指令集(RISC)的处理器架构,1981年出现,由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。

MIPS是一种采取精简指令集(RISC)的处理器架构,既有指令集,也有相应的处理器架构。大名鼎鼎的龙芯就是MIPS的。

4.4 开源社区

RISC-V(发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。

与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。

虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。

RISC-V(读作“RISC-FIVE”)是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC(精简指令集计算机),表示此前已经四代RISC处理器原型芯片。每一代RISC处理器都是在同一人带领下完成,那就是加州大学伯克利分校的David A. Patterson教授。

适用于未来万物互联时代的芯片指令集架构是RISC-V,并且当下华为等公司都在积极参与该套指令集架构相关芯片的开发。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。