族谱网 头条 人物百科

指令集架构

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:691
转发:0
评论:0
指令集的分类复杂指令集计算机包含许多应用程序中很少使用的特定指令,由此产生的缺陷是指令长度不固定。精简指令集计算机通过只执行在程序中经常使用的指令来简化处理器的结构,而特殊操作则以子程序的方式实现,它们的特殊使用通过处理器额外的执行时间来弥补。理论上的重要类型还包括最小指令集计算机(英语:Minimalinstructionsetcomputer)与单指令集计算机,但都未用作商业处理器。另外一种衍生类型是超长指令字,处理器接受许多经过编码的指令并通过检索提取出一个指令字并执行。机器语言机器语言是由声明和指令所组成的。在处理结构上,一个特定指令指明了以下几个部分:用于算术运算,寻址或者控制功能的特定寄存器;特定存储空间的地址或偏移量;用于解译操作码的特定寻址模式;复杂的操作可以借由将简单的指令合并而达成,可以(在冯·诺依曼体系中)连续的执行,也可以藉控制流来执行指令。指令类型有效的指令操作须...

指令集的分类

复杂指令集计算机包含许多应用程序中很少使用的特定指令,由此产生的缺陷是指令长度不固定。精简指令集计算机通过只执行在程序中经常使用的指令来简化处理器的结构,而特殊操作则以子程序的方式实现,它们的特殊使用通过处理器额外的执行时间来弥补。理论上的重要类型还包括 最小指令集计算机 ( 英语 : Minimal instruction set computer ) 与单指令集计算机,但都未用作商业处理器。另外一种衍生类型是超长指令字,处理器接受许多经过编码的指令并通过检索提取出一个指令字并执行。

机器语言

机器语言是由 声明 和 指令 所组成的。在处理结构上,一个特定指令指明了以下几个部分:

用于算术运算,寻址或者控制功能的特定寄存器;

特定存储空间的地址或偏移量;

用于解译操作码的特定寻址模式;

复杂的操作可以借由将简单的指令合并而达成,可以(在冯·诺依曼体系中)连续的执行,也可以藉控制流来执行指令。

指令类型

有效的指令操作须包含:

数据处理与存储操作

算术逻辑单元

控制流

复杂指令

一些电脑在他们的指令集架构内包含复杂指令。复杂指令包含:

将许多暂存器存成堆叠的形式。

移动内存内大笔的资料。

复杂或是浮点数运算(正弦,余弦,平方根等等)

执行test-and-set指令。

执行数字存在内存而非暂存器的运算

有一种复杂指令单指令流多资料流,英文全名是Single-Instruction Stream Multiple-Data Stream。或是向量指令,这是一种可以在同一时间对多笔资料进行相同运算的操作。SIMD有能力在短时间内将大笔的向量和矩阵计算完成。SIMD指令使平行计算变得简单,各种SIMD指令集被开发出来,例如MMX,3DNow!以及AltiVec。

指令的组成

指令集架构

  一条指令往往有好几个区块,这些区块包含要做的运算(加或减),可能还包含资料的原始或是目的地位置,以及常数。图中的MIPS“Add Immediate”指令允许使用者选择哪个暂存器是资料来源以及哪一个暂存器是要存运算后的结果,还有一个常数

在传统的架构上,一条指令包含opcode,表示运算的方式,以及零个或是更多的算子,有些像是算子的数字可能指的是暂存器的编号,还有内存位置,或是文字资料。

在超长指令字(VLIW)的结构中,包含了许多微指令,借此将复杂的指令分解为简单的指令。

指令的长度

指令长度的范围可以说是相当广泛,从微控制器的4 bit,到VLIW系统的数百bit。在个人电脑,大型电脑,超级电脑内的处理器,其内部的指令长度介于8到64 bits(在x86处理器结构内,最长的指令长达15 bytes,等于120 bits)。在一个指令集架构内,不同的指令可能会有不同长度。在一些结构,特别是大部分的精简指令集(RISC),指令是固定的长度,长度对应到结构内一个字的大小。在其他结构,长度则是byte的整数倍或是一个halfword。

设计

对微处理器而有两种指令集。第一种是复杂指令集(Complex Instruction Set Computer),拥有许多不同的指令。在1970年代,许多机构,像是IBM,发现有许多指令是不需要的。结果就产生了精简指令集(Reduced Instruction Set Computer),它所包含的指令就比较少。精简的指令集可以提供比较高的速度,使处理器的尺寸缩小,以及较少的电力损耗。然而,比较复杂的指令集较容易使工作更完善,内存及缓存的效率较高,以及较为简单的程式码。

一些指令集保留了一个或多个的opcode,以执行系统调用或软件中断。

指令集的实作

在设计处理器内的微架构时,工程师使用藉电路连接的区块来架构,区块用来表示加法器,乘法器,计数器,暂存器,算术逻辑单元等等,暂存器传递语言通常被用来描述被解码的指令,指令是借由微架构来执行指令。 有两种基本的方法来建构控制单元,藉控制单元,以微架构作为通路来执行指令:

早期的电脑和采用精简指令集的电脑藉将电路接线(像是微架构剩下的部分)。

其他的装置使用微程序来达成—像是晶体管ROM或PLA(即使RAM已使用很久)。

电脑微处理器的 指令集架构 (Instruction Set Architecture)常见的有三种:

复杂指令集运算 (Complex Instruction Set Computing,CISC)

精简指令集运算 (Reduced Instruction Set Computing,RISC)

显式并行指令集运算 (Explicitly Parallel Instruction Computing,EPIC)

超长指令字指令集运算 (VLIW)

延伸阅读

Bowen, Jonathan P. Standard Microprocessor Programming Cards 9 (6): 274–290. July–August 1985. doi:10.1016/0141-9331(85)90116-4 .


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· FMA指令集
参见AVXSSSE3SSE
· AVX指令集
支援目前AppleOSX10.6.8(雪豹的更新版本)及更高,Linux2.6.30内核以后,以及Windows7SP1(ServicePack1)KB976932,WindowsServer2008RC2SP1与Windows8支援AVX。参见组合语言MMXSSE
· 精简指令集
历史精简指令集的名称最早来自1980年大卫·帕特森在加州大学柏克莱分校主持的BerkeleyRISC计划。但在他之前,已经有人提出类似的设计理念。由约翰·科克主持,在1975年开始,1980年完成的IBM801项目,可能是第一个使用精简指令集理念来设计的系统。这种设计思路最早的产生缘自于有人发现,尽管传统处理器设计了许多特性让代码编写更加便捷,但这些复杂特性需要几个指令周期才能实现,并且常常不被运行程序所采用。此外,处理器和主内存之间运行速度的差别也变得越来越大。在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问内存的次数。早期,这种指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、中央处理器的实现细节对于机器级程序是可见的等等。实际上在后来的发展中,RISC与CISC在竞争的过程中相互学习,现在的RISC指令集也达到数百条,运行周期也不再固定...
· ARM架构
特色和应用自2005年,每年超过一亿的手机销售约98%至少使用了一个ARM处理器。截至2009年,占大约90%的所有嵌入式32位RISC处理器和ARM处理器被广泛使用在消费性电子产品,包括个人数字助理(PDA)、平板电脑、移动电话、数字媒体和音乐播放器、手持式游戏游戏机、计算器和计算机外围设备(如硬盘驱动器和路由器)。历史一颗主要用于路由器的科胜讯公司ARM处理器用于松下多媒体播放机的芯片ARM的设计是艾康电脑公司于1983年开始的开发项目。这个团队由RogerWilson和SteveFurber带领,着手开发一种类似高级6502架构的处理器。Acorn电脑有一大堆建构在6502处理器上的电脑,因此能设计出一颗类似的芯片即意味着对公司有很大的优势。AcornRISCMachine:ARM2用在BBCMicro上的ARM1secondprocessor团队在1985年时开发出样本“ARM1”...
· MIPS架构
发展历史在1981年,史丹佛大学教授约翰·轩尼诗领导他的团队,实现出第一个MIPS架构的处理器。他们原始的概令是通过指令管线化来增加CPU运算的速度。1984年,约翰·轩尼诗教授离开斯坦福大学,创立MIPS科技公司。于1985年,设计出R2000芯片,1988年,将其改进为R3000芯片。MIPS指令格式在MIPS架构中,指令被分为三种类型:R型、I型和J型。三种类型的指令的最高6位均为6位的opcode码。从25位往下,R型指令用连续三个5位二进制码来表示三个寄存器的地址,然后用一个5位二进制码来表示移位的位数(如果未使用移位操作,则全为0),最后为6位的function码(它与opcode码共同决定R型指令的具体操作方式);I型指令则用连续两个5位二进制码来表示两个寄存器的地址,然后是一个16位二进制码来表示的一个立即数二进制码;J型指令用26位二进制码来表示跳转目标的指令地址(实际的...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信