指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。
指令集也作为一种标准规范,用于规范芯片设计工程师及编译器开发工程师:
因为芯片与IDE都遵循相同的指令集标准,所以高级语言编写的程序经指定编译器编译后能直接运行在对应的CPU上,反之则不能运行。
指令集的分类有几种?
从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分:
什么是精简指令集?
精简指令集侧重于结构简单、处理速度更加快速上。
精简指令集的特点是:一个周期执行一条指令,指令长度固定,通过简单指令的组合实现复杂的操作;其寄存器多是通用寄存器。精简指令集主要用于嵌入式处理器上。
我们比较熟知的就是ARM指令集、MIPS指令集及RISC-V指令集。
① ARM
其中ARM指令集是目前用得最多的。ARM家族占比所有32位嵌入式处理器的75%,成为占全世界最多数的32位架构。
ARM处理器广泛使用在嵌入式系统设计,低耗电节能,非常适用移动通讯领域。
消费性电子产品,例如可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机),电脑外设(硬盘、桌上型路由器),甚至导弹的弹载计算机等军用设施。
随着处理器的不断发展,应用需求不断提高,ARM指令集也发展了很多个版本:
ARM V1:最初版本,采用的地址空间是26位的,寻址空间是64MB,这个版本没有商业化。
ARM V2:增加了乘法指令及支持协处理器指令。
ARM V3:实现了32位的地址空间。
ARM V4:增加了半字指令的读取和写入操作,增加了处理器系统模式,增加Thumb指令集。
ARM V5:增加了DSP指令、JAVA指令。
ARM V6:增加60多条SIMD指令。
ARM V7:采用了NEON技术,将DSP和媒体处理能力提高了近4倍。并支持改良的浮点运算。
ARM V8:增加64位指令集、寄存器数量增加到31个。
② MIPS
在设计理念上MIPS指令集强调软硬件协同提高性能,同时简化硬件设计。
其指令系统经过通用处理器指令体系MIPS I、MIPS II、MIPS III、MIPS IV到MIPS V,嵌入式指令体系MIPS16、MIPS32到MIPS64的发展已经十分成熟。
在嵌入式方面,MIPS K系列微处理器是仅次于ARM的用得最多的处理器之一(1999年以前MIPS是世界上用得最多的处理器),其应用领域覆盖游戏机、路由器、激光打印机、掌上电脑等各个方面。
③ RISC-V
RISC-V(读作“RISC-FIVE”)是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA)。
RISC-V指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。
主流的架构为x86与ARM架构为了能够保持架构的向后兼容性,其不得不保留许多过时的定义,导致其指令数目多。而RISC-V架构则能完全抛弃包袱,从轻上路。
RISC-V基础指令集则只有40多条,加上其他的模块化扩展指令总共几十条指令。
RISC-V特点:
完全开源:开源采用宽松的BSD协议,企业完全自由免费使用,同时也容许企业添加自有指令集拓展而不必开放共享以实现差异化发展。架构简单:RISC-V基础指令集则只有40多条,加上其他的模块化扩展指令总共几十条指令。易于移植:RISC-V提供了详细的特权级指令规范和用户级指令规范的详细信息,使开发者能非常方便的移植linux和unix系统到RISC-V平台。模块化设计:RISC-V其不同的部分以模块化的方式组织在一起,用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要。完整的工具链:芯片设计公司不再担心工具链问题,只需专注于芯片设计,RISC-V社区已经提供了完整的工具链。