2009年第17题
下列关于 RISC 的叙述中,错误的是( )
A. RISC 普遍采用微程序控制器
B. RISC 大多数指令在一个时钟周期内完成
C. RISC 的内部通用寄存器数量相对 CISC 多
D. RISC 的指令数、寻址方式和指令格式种类相对 CISC 少
解析
本题主要考查 RISC 和 CISC 的基础知识。
(1)RISC(精简指令集计算机,Reduced Instruction Set Computer)通过简化指令集和优化硬件设计来提高性能,其核心原则包括:
- 精简指令:指令数量少(通常几十条),格式统一(固定长度),操作简单(每条指令仅完成一个基本操作)。
- 硬件加速:复杂功能由编译器组合简单指令实现,硬件只需高效执行基础指令。
- 流水线友好:指令长度和周期固定,便于深度流水线并行处理。
- 寄存器密集型:大量通用寄存器(通常32个以上),减少内存访问延迟。
RISC 的关键技术特征:
- 单周期执行:大多数指令在一个时钟周期内完成。
- Load/Store架构:只有专门的加载(Load)和存储(Store)指令可访问内存,其余指令操作均在寄存器间进行。
- 硬连线控制:指令解码用硬件电路实现,而非微程序,减少延迟。
- 优化编译器:依赖编译器高效调度指令,填补流水线停顿(如分支延迟槽)。
(2)CISC(复杂指令集计算机,Complex Instruction Set Computer)旨在通过复杂指令减少程序代码量,其设计特点包括:
- 丰富指令集:指令数量多(可达数百条),支持复杂操作(如单条指令完成数组遍历或字符串处理)。
- 可变指令格式:指令长度和周期不固定(如x86指令长度为1~15字节)。
- 微程序控制:复杂指令由内部微程序分解为微操作执行。
- 内存直接操作:允许算术指令直接操作内存数据。
(3)RISC vs CISC
特性 | RISC | CISC |
---|---|---|
指令数量 | 少(约几十条) | 多(数百条) |
指令复杂度 | 简单(单周期完成) | 复杂(可能需多周期或微码解码) |
指令长度 | 固定(如ARM定长4字节) | 可变(如x86的1~15字节) |
寄存器数量 | 多(32+通用寄存器) | 较少(x86-64有16个) |
内存访问 | 仅Load/Store指令可访存 | 指令可直接操作内存 |
控制单元 | 硬连线(速度快) | 微程序(灵活性高) |
编译器角色 | 关键(优化指令调度) | 次要(硬件处理复杂性) |
功耗效率 | 高(适合移动/嵌入式) | 较低(但现代设计优化后差距缩小) |
典型代表 | ARM、RISC-V、MIPS、PowerPC | x86(Intel/AMD)、z/Architecture(IBM) |
(4)现代架构的融合趋势
- CISC借鉴RISC:现代x86处理器(如Intel Core)将CISC指令拆分为RISC风格的微操作(μOps)执行。
- RISC增强功能:部分RISC架构(如ARMv8)加入SIMD和复杂寻址模式。
- 性能差距缩小:随着技术进步,两者在实际性能上的差异已不明显,RISC因能效比优势主导移动/嵌入式市场,CISC凭借兼容性统治PC/服务器。
根据以上知识,结合本题选项,很显然选项 A 是错误的。
本题答案:A