Atitit 指令集(IA及指令集架构 )
扫描二维码
随时随地手机看文章
Atitit 指令集(IA及指令集架构)
1. 指令集(IA:InstructionSet)是指CPU指令系统所能识别(翻译)执行的全部指令的集合。 1
1.1. (1)运算指令 1
1.2. (2)控制指令 1
1.3. (3)数据传送指令 1
2. 2.3 CISC和RISC 复杂指令集(CISC,Complex InstructionSet Computer)和精简指令集(RISC,Reduced Instruction Set Computer) 2
3. RISC 优缺点 2
4. 指令执行过程 3
5. 每一个具体步骤就是一条业务指令 3
5.1. 业务指令集 3
1. 指令集(IA:InstructionSet)是指CPU指令系统所能识别(翻译)执行的全部指令的集合。
处理器要完成计算任务,需要具备以下几种指令类型。
1.1. (1)运算指令
运算由运算器单元(ALU)实现,指令包括算术运算指令、逻辑运算指令和移位指令。
算术运算指令实现加减乘除(+-*/)等基本的算术运算;逻辑运算指令实现与或非(&|~)等基本的逻辑运算;移位指令实现二进制比特位(bit)的左右移(<<>>)运算。
1.2. (2)控制指令
除了做计算外,CPU还要实现循环。循环是由跳转指令实现的,跳回去执行就是循环。循环在一定条件下跳出,否则就成死循环了,条件跳转指令能完成这个功能。条件跳转指令在一定条件下实现跳转,它能实现分支功能。跳转指令也称为控制指令。控制由CPU控制器单元实现。
1.3. (3)数据传送指令
运算和控制指令的操作数从哪里来的呢?操作数都放在存储器中。在x86 IA中,运算指令的操作数既可以是寄存器,也可以是存储器;而在其他RISCIA例如MIPS中,运算指令的操作数只能是寄存器,因此需要先使用加载(load)指令将存储器中的数据导入到寄存器中,运算完成后,再用存储(store)指令将寄存器中的运算结果数据导出到存储器中。这类指令就是数据传送指令。
有了这三类指令,CPU就能完成各种复杂的运算。
2. 2.3 CISC和RISC 复杂指令集(CISC,Complex InstructionSet Computer)和精简指令集(RISC,Reduced Instruction Set Computer)
处理器的指令集可简单分为两种:复杂指令集(CISC,Complex InstructionSet Computer)和精简指令集(RISC,Reduced Instruction Set Computer)。
(1)指令集的演进
一开始的处理器都是CISC架构,随着时间的演进,有越来越多的指令集加入。采用复杂指令系统的计算机有着较强的处理高级语言的能力,这对提高计算机的性能是有益的。当计算机的设计沿着这条道
3. RISC 优缺点
5>高效的流水线特性——流水线的本质就是CPU并行运行,只是并行运行不像FPGA中的那么直接,它只是把一条指令分成几个更小的执行单元;CISC指令的执行需要调用一个微码,明显没有RISC的指令吞吐量大。
固定的指令长度、大型寄存器堆和load/store结构可充分发挥流水线特性。在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成
7>RISC的缺点——代码密度不高,可执行文件体积较大,汇编代码可读性差。代码密度不高是值得关注的问题:若不使用cache,会需要更大的指令存储控件,取指时也占用更大的内存带宽;若采用cache,又会降低cache的命中率。而从CPU的设计上来讲,由于RISC的核心代码要少很多,使得其结构相应简化,因此在体积、造价、功耗、散热和价格上都具有优势。
从以上的比较来看,RISC与CISC各有千秋,由于RISC具有更强的实用性,故应该是未来处理器的发展方向。但事实上,当今时代wintel一统江湖,且早期很多软件都是根据CISC设计的,单纯的RISC将无法兼容。此外,现代CISC结构的CPU已经融合了很多RISC的成分,其性能差距已经越来越小。复杂指令可以提供更多的功能,这是程序设计所需要的。例如ARM提供了DSP& SIMD扩展:增强型DSP指令(E变种)和媒体功能扩展(SIMD变种)。因此,CISC与RISC的融合应该是未来的发展方向。
4. 指令执行过程
指令的执行过程按时间顺序可分为以下几个步骤:
(1)CPU发出指令地址。将指令指针寄存器(IP)的内容——指令地址,经地址总线送入存储器的地址寄存器中。
(2)从地址寄存器中读取指令。将读出的指令暂存于存储器的数据寄存器中。
(3)将指令送往指令寄存器。将指令从数据寄存器中取出,经数据总线送入控制器的指令寄存器中。
(4)指令译码。指令寄存器中的操作码部分送指令译码器,经译码器分析产生相应的操作控制信号,送往各个执行部件。
(5)按指令操作码执行。
(6)修改程序计数器的值,形成下一条要取指令的地址。若执行的是非转移指令,即顺序执行,则指令指针寄存器的内容加1,形成下一条要取指令的地址。