现有的单片机按照其采用的指令结构主要分为两大类:复杂指令集(CISC)和精简指令集(RISC)结构。CISC 的英文全称“Complex Instruction Set Computer”,中文即(复杂指令集计算机);RISC 的英文全称为“Reduced Instruction Set Computing” ,中文即(精简指令集计算机)。
两种指令结构的单片机其应用不同之处,在于CISC 结构的单片机数据线和指令线分时复用,即所谓冯.诺伊曼结构。它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限,价格亦高。采用RISC 结构的单片机数据线和指令线分离,即所谓哈佛结构。这使得取指令和取数据可同时进行,且由于一般指令线宽于数据线,使其指令较同类CISC 单片机指令包含更多的处理信息,执行效率更高,速度亦更快。同时,这种单片机指令多为单字节,程序存储器的空间利用率大大提高,有利于实现超小型化。
2.1.1 CISC
长期以来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能,处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC) 结构.一般CISC 计算机所含的指令数目至少300 条以上,有的甚至超过500 条.
2.1.2 RISC
80 年代开始,人们发现机器执行的指令中85%左右的都是简单指令,复杂指令甚少,因此开始研制精简指令系统计算机(RISC)。由于程序执行时间=程序中指令数I*每条指令执行所用周期数CPI*周期时间T,因此RISC 技术主要从这三方面下手,对I、CPI、T 进行优化改良,其措施如下:
1.采用多级指令流水线结构
采用流水线技术可使每一时刻都有多条指令重叠执行,以减小CPI 的值,使CPU 不浪费空周期。实例:Pentium Ⅱ/Pro/Celeron 可同时发出执行五条指令,AMD-K6/K6-2 可同时发出六条指令。
2.选取机器中使用频率最高的简单指令及部分复杂指令
这样可减小时钟周期数量,提高CPU 速度,其实质是减小CPI 下的值实现。实例:选取运算指令、加载、存储指令和转移指令作主指令集。
3.采用加载(Load)、存储(Store) 结构
只允许Load 和Store 指令执行存储器操作,其余指令均对寄存器操作。实例:Amd-K6/K6-2 、PⅡ/Celeron/Pro 均支持对寄存器的直接操作和重新命名,并大大增加通用寄存器的数量。
4.延迟加载指令和转移指令
由于数据从存储器到寄存器存在二者速度差、转移指令要进行入口地址的计算,这使CPU 执行速度大大受限,因此,RISC 技术为保证流水线高速运行,在它们之间允许加一条不相关的可立即执行的指令,以提高速度。实例:主要体现于预测执行、非顺序执行和数据传输等方面,除Intel P54/55C 不支持,像K6-2 、PⅡ均支持。
5.采用高速缓存(cache)结构
为保证指令不间断地传送给CPU 运算器,CPU 设置了一定大小的Cache 以扩展存储器的带宽,满足CPU 频繁取指需求,一般有两个独立Cache ,分别存放“指令+数据”。实例:PⅡ/Celeron:16K+16K,AMD-K6/K6-2 为32K+32K,Cyrix MⅡ:64K( 实质上为2 个32K Cache,此作共享Cache),PⅡ还加了L2 Cache,更是大幅提高了CPU 速度。
两种结构的单片机各有自己的特点,目前市面上属于CISC 结构的单片机有Intel8051 系列、Motorola 和M68HC 系列、Atmel 的AT89 系列、台湾Winbond( 华邦)W78 系列、荷兰Pilips 的PCF80C51 系列等;属于RISC 结构的有Microchip 公司的PIC 系列、Zilog 的Z86 系列、Atmel 的AT90S 系列、韩国三星公司的KS57C 系列4 位单片机、台湾义隆的EM-78 系列等。一般来说,控制关系较简单的小家电,可以采用RISC 型单片机;控制关系较复杂的场合,如通讯产品、工业控制系统应采用CISC 单片机。


