CPU有多种架构,例如x86,ARM,RISC-V,不同的架构定义了不同的指令集架构(ISA,Instruction Set Architecture)。ISA通常包括数据处理指令(数学运算、逻辑运算、比较、移位等)、数据搬运、控制流指令(程序执行地址的跳转);从宏观角度ISA可以分为CISC(复杂指令集计算)和RISC(精简指令集计算)两种不同的处理器设计理念。
1 CISC的设计理念
CISC是在硬件中实现复杂的指令,以减少编程的复杂性和代码长度,可以执行多种复杂的操作,通过少量指令实现多步骤的任务。
CISC的特点
- 丰富的指令集:CISC处理器通常具有大量复杂指令,每条指令可以执行多个低级操作(如内存访问、算术运算等)。
- 多种寻址模式:CISC支持多种复杂的寻址模式,以便灵活访问内存。
- 较少的指令数量:通过复杂指令,减少程序中指令的数量,从而减少程序大小。
- 微代码控制:CISC处理器使用微代码(microcode)来实现复杂指令的执行,硬件内部通过微指令解释高级指令。
- 复杂性和功耗:由于硬件设计复杂,CISC处理器往往具有较高的功耗和复杂性。
CISC的优劣势
- 编程简便,高级指令减少了编程的复杂性,开发者可以使用更少的代码实现复杂的操作;代码紧凑,复杂指令减少了指令的数量,使得程序占用更少的存储空间。
- 实现复杂指令需要更多的硬件资源,增加了硬件设计和制造的复杂性;而复杂的硬件设计通常导致较高的功耗。
CISC的典型代表
x86架构:由Intel和AMD主导,广泛应用于桌面计算机和服务器。
2 RISC设计理念
RISC处理器使用简单而高效的指令,每条指令执行的操作尽可能少,并在一个时钟周期内完成,通过简化指令集,优化指令执行的效率。
RISC的特点
- 简化的指令集:RISC处理器的指令集简洁,每条指令通常只执行一个简单操作。
- 固定长度指令:指令长度通常是固定的,便于指令解码和流水线处理。
- 多通用寄存器:RISC处理器通常具有大量通用寄存器,用于减少对内存的访问。
- 加载/存储架构:RISC使用加载(Load)和存储(Store)指令进行内存访问,其他指令只在寄存器之间操作。
- 流水线技术:RISC架构特别适合指令流水线技术,提高指令执行的吞吐量。
RISC的优劣势
- 简单指令易于解码和执行,提高了处理器的执行效率;简化的硬件设计通常带来较低的功耗,适合移动和嵌入式设备;此外由于指令集简洁,RISC处理器易于扩展和优化。
- 编程复杂:由于每条指令执行的操作简单,可能需要更多的指令来完成复杂任务,增加了编程复杂性和程序长度。
RISC的典型代表
- ARM架构:广泛应用于移动设备、嵌入式系统和物联网设备。
- MIPS架构:曾广泛用于嵌入式系统、网络设备和游戏机。