解答:
RISC&CISC 之争
我们在编写 MSP430 单片机的时候会发现,该系列的单片机在对 IO
口的处理上有很大的不同。如:
我们可以看出,MSP430 系列单片机不支持像 8051 系列单片机那样的位
操作。这跟单片机的内部结构有着很大的关系。
我们先来说说处理器的两种分类:RISC、CISC
RISC:(Reduced Instruction Set Computer)精简指令集计算机.其代表 MSP430 中的 C 语言8051 中的 C
语言
P2OUT |=0x01;//P2.0 置
高Sbit P20=P2^0;
P20=1;//P2.0 置高
P2OUT &=~0x02;//P2.1 置
低Sbit P21=P2^1;
P21=0;//P2.1 置低
P2OUT^=0x04;//P2.2 取反Sbit P22=P2^2;
P22=~P22;//P2.2 取反
XDLab 出品
有 MSP430 系列单片机,AVR 系列单片机,PIC 系列单片机。其特点是体积小、
功耗低、主频高。
CISC:(Complex Instruction Set Computer)复杂指令计算机。其代表
有 8086 系列(PC 机),8051 系列单片机,FreeScale 系列单片机。特点是用
复杂的指令系统功能简化了软件。
然后我们再来说说系统指令的概念:指令系统是计算机硬件的语言系统,
也叫机器语言,它是软件和硬件的主要界面,从系统结构的角度看,它是系
统程序员看到的计算机的主要属性。(摘自百度百科)。
在 70 年代末 CISC 刚诞生的时候,半导体技术非常落后,由于材料、工
艺等诸多原因的限制,计算机的速度很难提高。可是人们又非常希望处理器
的性能能够强大。于是就在不增加其速度的前提下尽可能的增加其指令,让
处理器能够用单条指令来完成功能。CISC 中通常带有布尔处理机,布尔处
理机使得计算机拥有了位处理的能力,这也是用单条指令来完成操作的典型
例子。比如,如果没有位操作的指令,用语句 P2OUT |=0x01 对 IO 口赋值实
际上在 CPU 中需要三句指令来执行,而 P20=1 只需要一句。8051 单片机的指
令集多达 111 条,就是为了在不增加其主频的情况下尽可能的加快处理器的
速度。
可是现在的大多数计算机中已经去掉了布尔处理机。那么,很显然位操
作使用起来得心应手,为什么要将这个功能去掉呢?
在 90 年代中期,由于半导体技术的迅猛发展,计算机的主频突然加快。
然而芯片的版图面积增大却反过来阻碍的其速度的提升。于是出现了一种新
的思路:如果某些指令能够用其他指令的组合来替代,那么久没有必要保留
这条指令。RISC 由此诞生。RISC 的一大特点就是指令集相比于 CISC 有了很
大的精简。比如位操作可以用“与”“或”“非”的字节操作来替代,那么就
不需要位操作。相比于 8051 中 100 多条指令,MSP430 中的指令集仅有 20
多条。指令的大幅度精简带来的收益就是数字电路的版图面积大幅度缩小,
由于版图面积的减小,处理器的主频有了大幅度的提升。这让计算速度的增
加显得微不足道。另外 RICS 型处理器带来的另一大优势就是由于版图减小,
功耗有了大幅度的降低。
而 CISC 型处理器由于主频受限,只能用多核来弥补。未来的发展,会
以 RISC 为主,如果有新的技术诞生,CISC 也能在市场中夺回优势。