指令集或指令集体系
:是计算机体系结构中与程序设计有关的部分,包含了基本数据类型、指令集、寄存器、寻址模式、中断、异常处理以及外部的I/O。指令集架构包含一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。
指令集的分类
:(1)、复杂指令集计算机包含许多应用程序中很少使用的特定指令;(2)、精简指令集计算机通过只执行在程序中经常使用的指令来简化处理器的结构,而特殊操作则以子程序的方式实现,它们的特殊使用通过处理器额外的执行时间来弥补。理论上的重要类型还包括
最小指令集计算机
与
单指令集计算机
,但都未用作商业处理器。另外一种衍生类型是
超长指令字
,处理器接受许多经过编码的指令并通过检索提取出一个指令字并执行。
机器语言
:是由声明和指令所组成的。在处理结构上,一个特定指令指明了以下几个部分:(1)、用于算术运算,寻址或者控制功能的特定寄存器;(2)、特定存储空间的地址或偏移量;(3)、用于解译操作码的特定寻址模式。
指令类型
:有效的指令操作须包含,(1)、数据处理与存储操作:将
暂存器
的值(在中央处理器作为高速缓存的存储空间)设为固定值;将数据从存储空间中传送至寄存器,反之亦然。用于将数据取出并执行计算,或者将计算结果予以保存;从硬件设备读取或写入数据。(2)、
算术逻辑单元
:对两个储存于暂存器的数字进行add、subtract、multiply、divide,将结果放到一个暂存器内,一个或是更多的
状态码
可能被设置在
状态突破口
中;执行
位操作
,即对两组数字(为两串的数字,都由0与1构成,分别储存于两个暂存器内)执行
逻辑与
和
逻辑或
,或者对寄存器的每一位执行
逻辑非
操作;比较两个寄存器中的数据(例如是大于或者相等);(3)、
控制流
:
分支
,跳跃至程序某地址并执行相应指令;
条件分支
,假设某一条件成立,就跳到程序的另一个位置;
间接分支
,在跳到另一个位置之前,将现在所执行的指令的下一个指令的位置储存起来,作为
子程式
执行完返回的地址。
复杂指令
:一些电脑在他们的指令集架构内包含复杂指令。复杂指令包含:(1)、将许多暂存器存成堆栈的形式;(2)、移动内存内大笔的资料;(3)、复杂或是浮点数运算(
正弦
、
余弦
、
平方根
等等);(4)、执行
test-and-set
指令;(5)、执行数字存在内存而非暂存器的运算。有一种复杂指令
单指令流多数据流
,英文全名是Single-InstructionStream Multiple-Data Stream,或是
向量指令
,这是一种可以在同一时间对多笔数据进行相同运算的操作。SIMD有能力在短时间内将大笔的向量和矩阵计算完成。SIMD指令使
平行计算
变得简单,各种SIMD指令集被开发出来,例如
MMX
,
3DNow!
以及
AltiVec
。
指令的组成
:在传统的架构上,一条指令包含
opcode
,表示运算的方式,以及零个或是更多的
算子
,有些像是算子的数字可能指的是
暂存器
的编号,还有内存位置,或是文字资料。在
超长指令字
(VLIW)的结构中,包含了许多
微指令
,借此将复杂的指令分解为简单的指令。
指令的长度
:指令长度的范围可以说是相当广泛,从
微控制器
的4bit,到
VLIW
系统的数百bit。在
个人电脑
,
大型电脑
,
超级电脑
内的处理器