RISC指令长度固定,32位机为4字节,很多复杂操作需要很多个指令操作.指令长度大,所需空间多
问题: arm符合risc规范,但是由thumb指令集,16字节指令.怎么讲?
对内存的访问要 load store
因为 指令长度固定,可以做流水线
问题: arm 指令长度不笃定,怎么做流水线
因为 复杂操作 需要多条指令操作 ,所以 通用寄存器 也 多.
问题: armv5 总共有37个寄存器,其中有 31 个通用寄存器. x86呢? mips有几个?
RISC指令长度固定,从1-6字节,很多在risc中的复杂指令在cisc中只需要一个指令就可操作,所需空间少.
直接修改内存
因为指令长度不固定,不可以做流水线
因为复杂操作 很多只需要一条指令完成,所以通用寄存器少
CPU体系架构-RISC和CISC
官方区别
RISC和CISC的区别:
(1)指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。
(2)存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接。
(3)程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC 汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。
(4)中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。
(5)CPU芯片电路:RISC CPU 包含有较少的单元电路,因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。
(6)设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC 微处理器结构复杂,设计周期长。
(7)用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。
(8)应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。
ARM(RISC)中寄存器比较多;
ARM有定时计数器等, x86(CISC)不用管这些;
x86内存比较大, 编程不用考虑内存不够用的问题;
x86指令比较多, 特别是到386, 586之后, 有了保护模式更不得了了;
指令多就是因为 x86 是 CISC .
CISC
变长编码,以节约存储空间.
由于一条指令能完成很多的功能,对内存的访问少了,这样减少了缓慢的存储器访问对程序性能的影响
CISC 架构实现
x86
VIA
RISC
只留下了CISC的简单指令,大部分简单指令都在一个cycle内完成,因此处理器的频率得以大幅提升.???
并为了更好地实现流水线,指令集采用了定长编码.
RISC 架构实现
IBM RISC :Power PowerPC
Berkeley RISC : ARM SPARC
Stanford RISC : MIPS Alpha
Tensilica
ARC
后RISC时代
CISC的发展
一开始,RISC因为高性能取代CISC占据了服务器市场 . PC领域因为兼容性问题还是被CISC的x86占据.
Intel 的 P6 微架构 将 x86 指令集 先解码为类似RISC指令的位操作,然后采用RISC内核执行.然后性能超过同期RISC,然后将服务器市场抢夺回来,RISC开始向嵌入式领域发展.
RISC的发展
RISC过分精简的指令数量,使RISC处理器与存储器之间的数据交换增多,二存储器的工作速度远低于处理器,很容易导致性能恶化.
增加处理器性能的一种方法就多提供指令功能,RISC向多指令发展.
RISC 定长编码,造成程序空间大,但是程序空间大会降低cache的命中率,降低执行效率.然后开始使用变长编码.
指令集分类
处理器公司很多,品牌很多,而指令集比较稳定,有以下几个:
x86 arm mips power c6000 risc-v
x86 : PC领域 和 服务器领域
ARM : 嵌入式领域 和 服务器领域
MIPS : 先主攻服务器领域,失败告终.然后开始面向嵌入式领域,但是难以撼动ARM的地位,已经开源
Power : 开发 Power 和 PowerPC 架构处理器的公司只有 IBM(Power 和 PowerPC,服务器 游戏机领域) 和 Freescale(被NXP收购)(PowerPC嵌入式市场),已经开源
risc-v : 开源
龙芯
源于中科院
有独立的指令集
loongISA: 2008年,龙芯购买了MIPS指令(216条MIPS指令与311条DSP指令)的永久授权,在十几年的发展中对指令集进行了相当大的扩展,逐渐发展处了自己的指令集loongISA(148条loongEXT,5条loongVM指令,213条loongBT指令,1014条loongSIMD指令).目前(2019-12-16)有7个微架构 gs132 gs232 gs264 gs464 gs464v gs464e gs464v
兆芯
获得x86授权,
飞腾
申威
申威不是Alpha,申威的指令集是国内自主定义的SW64