指令集可分为复杂指令集(CISC)和精简指令集(RISC)两部分,代表架构分别是 x86、ARM 和 MIPS。
ARMRISC
ARMRISC是为了提高处理器运行速度而设计的芯片体系,它的关键技术在于流水线操作即在一个时钟周期里完成多条指令。相较复杂指令集CISC而言,以RISC为架构体系的ARM指令集的指令格式统一、种类少、寻址方式少,简单的指令意味着相应硬件线路可以尽量做到最佳化,从而提高执行速率。因为指令集的精简,所以许多工作必须组合简单的指令,而针对复杂组合的工作便需要由编译程序来执行。而CISC体系的x86指令集因为硬件所提供的指令集较多,所以许多工作都能够以一个或是数个指令来代替,编译的工作因而减少了许多。
ARM指令集架构的主要特点:一是体积小、低功耗、低成本、高性能;二是大量使用寄存器且大多数数据操作都在寄存器中完成,指令执行速度更快;三是寻址方式灵活简单,执行效率高;四是指令长度固定,可通过多流水线方式提高处理效率。
MIPS
MIPS是高效精简指令集计算机体系结构中的一种,与当前商业化最成功的ARM架构相比,MIPS的优势主要有五点:一是早于ARM支持64bit指令和操作,截至目前MIPS已面向高中低端市场先后发布了P5600系列、I6400系列和M5100系列64位处理器架构,其中P5600、I6400单核性能分别达到3.5和3.0DMIPS/MHz,即单核每秒可处理350万条和300万条指令,超过ARM Cortex-A53 230万条/秒的处理速度;二是MIPS有专门的除法器,可以执行除法指令;三是MIPS的内核寄存器比ARM多一倍,在同样的性能下MIPS的功耗会比ARM更低,同样功耗下性能比ARM更高;四是MIPS指令比ARM稍微多一些,执行部分运算更为灵活;五是MIPS在架构授权方面更为开放,允许授权商自行更改设计,如更多核的设计。
同时,MIPS架构也存在一些不足之处:一是MIPS的内存地址起始有问题,这导致了MIPS在内存和cache的支持方面都有限制,即MIPS单内核无法面对高容量内存配置;二是MIPS技术演进方向是并行线程,类似INTEL的超线程,而ARM未来的发展方向是物理多核,从目前核心移动设备的发展趋势来看物理多核占据了上风;三是MIPS虽然结构更加简单,但是到现在还是顺序单/双发射,ARM则已经进化到了乱序双/三发射,执行指令流水线周期远不如ARM高效;四是MIPS学院派发展风格导致其商业进程远远滞后于ARM,当ARM与高通、苹果、NVIDIA等芯片设计公司合作大举进攻移动终端的时候,MIPS还停留在高清盒子、打印机等小众市场产品中;五是MIPS自身系统的软件平台也较为落后,应用软件与ARM体系相比要少很多。
x86
x86 CISC是一种为了便于编程和提高记忆体访问效率的芯片设计体系,包括两大主要特点:一是使用微代码,指令集可以直接在微代码记忆体里执行,新设计的处理器,只需增加较少的电晶体就可以执行同样的指令集,也可以很快地编写新的指令集程式;二是拥有庞大的指令集,x86拥有包括双运算元格式、寄存器到寄存器、寄存器到记忆体以及记忆体到寄存器的多种指令类型,为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外,还通过存于只读存储器(ROM)中的微程序来实现极强的功能,微处理器在分析完每一条指令之后执行一系列初级指令运算来完成所需的功能。
x86指令体系的优势体现在能够有效缩短新指令的微代码设计时间,允许实现CISC体系机器的向上兼容,新的系统可以使用一个包含早期系统的指令集合。另外微程式指令的格式与高阶语言相匹配,因而编译器并不一定要重新编写。相较ARM RISC指令体系,其缺点主要包括四个方面。
第一,通用寄存器规模小,x86指令集只有8个通用寄存器,CPU大多数时间是在访问存储器中的数据,影响整个系统的执行速度。而RISC系统往往具有非常多的通用寄存器,并采用了重叠寄存器窗口和寄存器堆等技术,使寄存器资源得到充分的利用。
第二,解码器影响性能表现,解码器的作用是把长度不定的x86指令转换为长度固定的类似于RISC的指令,并交给RISC内核。解码分为硬件解码和微解码,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复杂。
第三,x86指令集寻址范围小,约束用户需要。
第四,x86 CISC单个指令长度不同,运算能力强大,不过相对来说结构复杂,很难将CISC全部硬件集成在一颗芯片上。而ARM RISC单个指令长度固定,只包含使用频率最高的少量指令,性能一般但结构简单,执行效率稳定。