RISC与CISCCPU构架
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架构将会越来越大放异彩.
APARC,x86 ARM
sun有自己的cpu 是基于SPARTC, 其实就是一款RISC的CPU
硬件:cpu
最核心的软件产业
1.操作系统
2.编译器
3.数据库
RISC与CISCCPU构架的更多相关文章
- risc与cisc
RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法. 早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成 ...
- 【转帖】MIPS构架:曾经是英特尔的“眼中钉”
MIPS构架:曾经是英特尔的“眼中钉” https://www.eefocus.com/mcu-dsp/363953 <处理器史话>之十一 2016-06-17 08:02 作者:付丽华预 ...
- 【转帖】你知道X86构架,你知道SH构架吗?
你知道X86构架,你知道SH构架吗? https://www.eefocus.com/mcu-dsp/363100 前面我们讲到了 8 位处理器,32 位处理器,以及 X86 构架,那么除了这些还 ...
- .a静态库构架合成
一.如果类库生成的构架和对应设备的构架不一致,会链接报错 如果项目中使用类库后,遇到形似Undefined symbols for architecture x86_64(x86_64架构下有未定义的 ...
- ARM概论(Advanced RISC Machines)
简介 ARM7是32 位通用微处理器ARM(Advanced RISC Machines)家族中的一员,具有比较低的电源消耗和良好的性价比, 基于(精简指令)RISC结构,指令集和相关的译码机制与微程 ...
- Web系统开发构架再思考-前后端的完全分离
前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开 ...
- RISC指令集的五个周期
RISC指令集的五个周期 RISC(reduced instruction set computer,精简指令集计算机)简称为精简指令集.RISC把执行指令的精力主要放在了经常使用的指令上面.本文主要 ...
- 【6集iCore3_ADP触摸屏驱动讲解视频】6-1 工程及程序构架介绍
视频简介: 该视频由银杏科技有限公司基于iCore3应用开发平台推出,包含 触摸屏驱动工程文件的介绍与程序构架的介绍等. 源视频包下载地址: http://pan.baidu.com/s/1dFz ...
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-2 工程及程序构架介绍
视频简介: 该视频介绍iCore3应用开发平台出厂源代码中ARM部分程序构架. 源视频包下载地址: http://pan.baidu.com/s/1jHGnc7k 银杏科技优酷视频发布区: htt ...
随机推荐
- django用mysql数据库出现的问题解决
blog添加不了文章!! 做了个程序,将数据库迁移到服务器之后,发现一个奇怪的错误.Field 'id' doesn't have a default value.查看了一下,程序是没问题的,但是这是 ...
- Jmeter--报错 WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
今天要用Jmeter测试服务器性能,发现GUI界面总是有warning提示: WARNING: Could not open/create prefs root node Software\JavaS ...
- golang 查看代码调用关系图
go-callvis 是github上一个开源项目,可以用来查看golang代码调用关系. 安装 安装graphviz $ brew install graphviz 安装go-callvis go ...
- MVC4.0,并完美结合Razor引擎
本文主要解决“当前上下文不存在ViewBag”的问题, 在View视图实际使用过程中,如果引用不正确会提示“当前上下文不存在ViewBag”,首先需要引入“Microsoft.CSharp”类库 然后 ...
- RedHat如何关闭防火墙
1.查看防火墙是否已开启 #可以查看到iptables服务的当前状态. service iptables status 上图表示防火墙已关闭. 2.关闭防火墙 关闭防火墙的方法为: 1)永久性生 ...
- max_result_window
PUT http://192.168.1.12:9200/_settings { "index": { "max_result_window": "1 ...
- xe5 android 手机上使用sqlite [转]
在android手机上怎样使用sqlite数据库,这里用Navigator实现 增删改查. 1.新建firemonkey mobile application 2.选择blank applicatio ...
- aircrack 破解wifi密码
分享一个用aircrack破解wifi密码的步骤: 1.新建一个终端 airmon-ng check kill airmon-ng start wlan0 airodump-ng wlan0mon 此 ...
- sql server 存储过程使用游标记录
sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...
- WCF类型共享技巧【转载】
调用过WCF服务的同学可能都会遇到这样的问题,同一个实体类型,不同的服务Visual Studio生成了不同的版本,例如Service1.User和Service2.User,对于C#来说,这是两个不 ...