cpu架构(3)——risc和cisc的区别
来源:互联网 发布:刘耀林 知乎 编辑:程序博客网 时间:2024/06/01 23:51
有关RISC和CISC的区别方面, 之前就有一些零零碎碎的理解, 这里再次做一次总结, 以求深入.
CISC架构的代表: x86, C51
RISC架构的代码:arm, mips,powerpc, avr, pic
指令集的区别
首先从字面上理解就能知道, CISC(Complex Instruction SetComputer)架构的指令数肯定是远远多于RISC(ReducedInstruction Set Computer)架构的.另外, RISC架构下,不同指令opcode的长度是相等的, 而x86下不同的指令的长度差别很大.
寄存器的区别
CISC架构一般都提供通用寄存器a(x86下为eax),来支持大部分运算指令,但是由于指令太过复杂的原因,并不是所有的寄存器都能支持全部指令的运算,所以汇编代码中会有各种针对eax的mov操作,影响性能.
指令执行所需要的时钟周期
在CISC架构中,不同指令所需要的时钟周期是不同的(比如乘法和加法的周期就不太可能相同).而RISC架构的处理器,大部分的指令都可以在一个时钟周期内完成,这应该可以降低指令流水线设计的复杂度. CISC架构的很多复杂指令都通过CPU内的微码来完成, 这样那些微码比较复杂的指令就需要多个时钟周期才能完成. 指令执行需要的时钟周期不同, 会增加指令流水线优化的难度.
访问内存的区别
RISC在结构设计上是一个载入/存储(load/store)的构架,只有载入和存储指令可以访问内存,数据处理指令只对寄存器的内容进行操作。为了加速程序的运算,RISC会设定多组的寄存器,并且指定特殊用途的寄存器。CISC架构则允许数据处理指令对内存进行操作,因此需要的寄存器数量会比较少.另外X86架构支持cpu对非对齐的内存地址的访问,这在RISC架构的处理器中通常会引起CPU产生异常.其实像类似非对齐内存地址访问的功能, X86也是通过CPU内微码来实现的,效率会大大降低.
寻址方式和IO空间
X86架构下IO空间和内存空间是分开的, IO空间使用完全不同的指令来访问(in, out). RISC架构则不区分IO空间和内存空间,都是直接把IO空间映射到内存空间,直接用内存空间的访问方式来操作. RISC架构下对于寻址方式同样做了精简,几乎所有的指令都使用寄存器寻址.
编译的区别
CISC的指令丰富的优势,使得它的编译器可以少做很多事情,编译器的设计更简单.而RISC在实现一个功能的时候,需要的指令条目数会更多一些,程序也会更大.
总结:
RISC相对于CISC架构来说,是一种较新的技术,由于没有历史负担,不需要考虑向下兼容,所以它的设计可以做的相当的简单而优雅. RISC架构的指令,寄存器和流水线特征使它非常适合于并行计算.可以遇见,未来RISC架构将会越来越大放异彩.
- cpu架构(3)——risc和cisc的区别
- CPU的RISC和CISC架构的区别
- CPU的RISC和CISC架构的区别
- CISC和RISC的区别
- RISC和CISC的区别
- CISC和RISC的区别
- RISC和CISC的区别
- RISC和CISC的区别
- CPU的两种指令集——CISC/RISC
- RISC 和CISC区别
- RISC和CISC区别
- RISC&CISC的区别
- RISC, CISC 的区别
- 1.3.RISC和CISC的区别
- cpu架构(2)——cisc
- CISC与RISC的区别
- CISC与RISC的区别?
- CISC与RISC的区别
- Vuforia SDK---- Vuforia AR开发对焦
- nginx 安装
- 装饰模式
- Nginx 负载均衡--(4)配置HTTPS 与 HTTP 同时存在
- 删除7天前的文件
- cpu架构(3)——risc和cisc的区别
- 常见JAVA面试问题
- spring @scheduled 定时任务详解
- [deeplearning-008] convertional neural networks卷积神经网络
- SpringMVC教程 入门案例 常见问题
- MySQL SQL_MODE详解
- mui初级入门教程(七)— 基于native.js的文件系统管理功能实现
- Jenkins自动化无人值守运行(上/下)
- 测试用例实例--常见功能测试点