挑战408——组成原理(18)——CISC和RISC

指令字长,可以简单理解为指令的位数。所以指令的字长(不同的机器不相同),主要取决于:

  • 操作码长度
  • 操作地址的长度
  • 操作地址的个数

指令字长分为固定跟可变两种。固定的指令字长,结构简单,控制线路简单。可变的指令字长,结构灵活,充分利用了指令长度,但是控制复杂,一般按照字节的倍数而变化。
上一篇说过操作码分为定长操作码跟不定长操作码。下面介绍一下不定长操作码。

不定长操作码(扩展操作码技术)

不定长操作码,其位数随着地址数的减少而增加。假设指令字长为16位,我们画一下初始为3地址码的情况。
在这里插入图片描述
当操作码为4位的时候,我们可以得到最多15条三地址指令,就像这样(从000 - 1110):
在这里插入图片描述
当操作码为8位的时候,最多有15条二地址指令:
在这里插入图片描述
那么当操作码为12位的时候呢?可以依次画出所有的情况。

指令设计:从全0到全1,最多有16种,将0000到1110用作15条三地址指令,把1111作为扩展标识。也就是说,若指令的前4位都是1111,则它表明这条指令操作码长度至少为8,。将操作码扩展到8位,因此减少了一个地址字段。(这里注意,前面的情况都是15条指令,因为1111用于拓展,后面的零地址码,由于不能再拓展,所以是16条指令)。
不定长操作码的设计不是单一的有4个操作码为一组的,比如我们大可以设计一组指令,满足下面条件:

  • 有15条三地址指令
  • 有12条二地址指令
  • 有62条一地址指令
  • 有30条零地址指令

可以动手试试(这里不说了)。这样设计可以得到指令的操作码长度分别是4,8,12,16不等的长度。

CISC与RISC的基本概念

按指令的复杂程度,可以将指令分成CISC和RISC两种类型的指令系统。

复杂指令系统计算机(CISC)

随着VLSI技术的发展,硬件成本的不断下降,软件成本的不断攀升,促使人们在指令系统中增加了许多更加复杂的指令,以适应不同的领域,于是便有了CISC。
主要特点:

  1. 指令系统复杂庞大
  2. 指令长度不固定,指令格式多,寻址方式多
  3. 控制器大多采用微程序控制

代表:Intel公司的x86系列CPU是典型的CISC体系结构
例子:主要应用于桌面PC,笔记本市场(windo,Mac等)

从最初的8086到后来的Pentium系列,每出一代新的CPU,都会有自己新的指令,而为了兼容以前的CPU平台上的软件,旧的指令集又不得不被保留,这使得指令系统越来越复杂,而且,CISC使计算机的研制周期变长,难以保证正确性。不易调试维护,并且采用了使用频率很低的复杂指令而造成硬件资源浪费。

精简指令系统计算机(RISC)

基于28定律:对传统CISC指令系统的研究表明,各种指令的使用频率相差悬殊,大概只有20%的比较简单的指令被反复使用,越占程序的80%,而80%左右的指令则很少使用,约占整个程序的20%。从这一事实出发,于是RISC随之产生:

  1. 选取使用频率较高的简单指令,并能组合成复杂的指令
  2. 指令长度固定,指令格式种类少,寻址方式种类少
  3. 只有load/store(存/取数操作)。其余指令的操作都在寄存器之间完成。
  4. CPU有多个通用寄存器(比CISC多很多)
  5. 采用流水线技术,一般在一个时钟周期内完成。
  6. 功耗小,成本低

代表:ARM指令构架,MIP指令构架
应用:主要用于移动手机端(如Android,ios,Windowsphone)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值