指令系统主要分为risc和cisc
基本概念
- RISC(Reduced Instruction Set Computer):精简指令集计算机
- CISC(Complex Instruction Set Computer):复杂指令集计算机
含义
CISC(Complex Instruction Set Computing)
- 复杂庞大的指令系统:指令数目一般多达200~300条。
- 指令长度不固定:指令格式种类多,寻址方式种类多。
- 存储器访问不受限制:可以访存的指令不受限制(RISC只有取数/存数指令访问存储器)。
- 执行时间差异大:各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。
- 微程序控制:控制器大多数采用微程序控制。
- 难优化编译:难以用优化编译生成高效的目标代码程序。
RISC(Reduced Instruction Set Computing)
- 选取高频简单指令:使用频率较高的简单指令以及一些实用但不复杂的指令,复杂指令的功能由高频简单指令的组合来实现。
- 指令长度固定:指令格式种类少,寻址方式种类少。
- 存储器访问限制:只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成。
- 多通用寄存器:CPU中有多个通用寄存器(比CISC的多)。
- 流水线技术:一定采用流水线,大部分指令在一个时钟周期内完成。采用超标量超流水线技术,使每条指令的平均时间小于一个时钟周期。
- 组合逻辑控制:控制器采用组合逻辑控制,不用微程序控制。
- 优化编译程序:采用优化的编译程序。
区别
1. 指令集复杂度
-
CISC:
- 指令集复杂,包含大量不同的指令。
- 每条指令可能执行多个低级操作。
- 指令长度不固定,可能需要多个时钟周期才能完成。
-
RISC:
- 指令集精简,指令数量较少且简单。
- 每条指令通常只执行一个低级操作。
- 指令长度固定,通常在一个时钟周期内完成。
2. 指令执行速度
-
CISC:
- 由于指令复杂,单条指令可能需要多个时钟周期。
- 优化重点在于减少程序中的指令数量。
-
RISC:
- 指令简单,通常在一个时钟周期内完成。
- 优化重点在于提高每条指令的执行速度。
3. 寄存器使用
-
CISC:
- 寄存器数量较少,大量使用内存操作。
- 寄存器与内存之间的操作较为频繁。
-
RISC:
- 寄存器数量较多,尽量减少内存访问。
- 大部分操作在寄存器之间完成,减少内存操作带来的延迟。
4. 编译器设计
-
CISC:
- 编译器设计相对简单,因为复杂的指令可以直接实现高级语言的语义。
- 程序代码相对较短,但每条指令的执行时间较长。
-
RISC:
- 编译器设计较复杂,需要将高级语言的语义分解成更多的简单指令。
- 程序代码相对较长,但每条指令的执行时间较短。
5. 硬件实现
-
CISC:
- 硬件实现复杂,需要更多的电路来支持复杂的指令集。
- 通常包括微代码来实现复杂指令的执行。
-
RISC:
- 硬件实现相对简单,支持精简的指令集。
- 不需要微代码,每条指令直接由硬件执行。
6. 能效比
-
CISC:
- 由于指令复杂,能效比通常较低。
-
RISC:
- 由于指令简单且执行速度快,能效比通常较高。
7. 典型应用
-
CISC:
- 常用于传统桌面计算机和服务器,典型代表为 x86 架构。
-
RISC:
- 常用于嵌入式系统和移动设备,典型代表为 ARM 架构。
总结
- CISC:复杂指令集,适用于需要高效代码密度的应用,常见于桌面计算机和服务器。
- RISC:精简指令集,适用于需要高执行效率和低功耗的应用,常见于嵌入式系统和移动设备。
这两种架构各有优缺点,实际应用中根据具体需求选择合适的架构。
相关文章推荐
如果你觉得这篇文章对你有帮助,不妨看看以下几篇相关文章,内容同样精彩:
- 病毒肆虐,电脑遭殃,360和火绒哪家强?
探讨了流行杀毒软件360和火绒的各自优缺点,以及在面对不同病毒威胁时的表现。 - 编码器与译码器的工作原理及应用
详细解析了编码器与译码器的工作原理,特别是n位2^n线编码器的运算规律,对于学习计算机硬件的读者非常有帮助。 - python课程设计作业-TCP客户端-服务端通信
介绍了如何使用Python进行TCP客户端与服务端通信的课程设计作业,适合对网络编程感兴趣的读者。 - 海明检验码过程(超详细)
详尽讲解了海明检验码的原理和实现过程,适合需要了解错误检测与纠正编码的读者。
每篇文章都经过精心编写,涵盖了丰富的知识点和实用技巧,希望能为你的学习和实践提供更多帮助!