基于CISC和RISC架构的微控制器的对比分析
时间:09-02
来源:互联网
点击:
微控制器可从不同方面进行分类:根据数据总线宽度可分为8位、16位和32位机;根据存储器结构可分为Harvard结构和Von Neumann结构;根据内嵌程序存储器的类别可分为OTP、掩膜、EPROM/EEPROM和闪存Flash;根据指令结构又可分为CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。本文将结合不同指令结构微控制器的发展及其特性进行论述。
1 微控制器的发展历程
Intel公司作为最早推出微处理器的公司,同样也是最早推出微控制器的公司。继1976年推出MCS-48后,又于1980年推出了MCS-51,为发展具有良好兼容性的新一代微控制器奠定了良好的基础。在8051技术实现开放后,Philips、Atmel、Dallas和Siemens等公司纷纷推出了基于80C5l内核(805l的CMC)S版本)的微控制器。这些各具特色的产品能够满足大量嵌入式应用需求。基于80C51内核的微控制器并没有停止发展的脚步,例如现在Maxim/Dallas公司提供的DS89C430系列微控制器,其单周期指令速度已经提高到了805l的12倍。
基于CISC架构的微控制器除了80C51外,还包括Motorola提供的68HC系列微控制器,这也是大量应用的微控制器系列。
基于RISC架构的微控制器则包括Microchip的PIC系列8位微控制器等。在16位RISC架构的微控制器中,Maxim公司推出的MAXQ系列微控制器以其高性能、低功耗和卓越的代码执行效率,成为许多需要高精度混合信号处理以及便携式系统和电池供电系统的理想选择。
2 基于8051内核的COSC微控制器
迄今为止,MCS-51已成为8位机中运行最慢的系列。现在Dallas推出的DS89C430系列产品在保持与80C51引脚和指令集兼容的基础上,每个机器周期仅为一个时钟,实现了8051系列的最高吞吐率。一般而言,对于现有的基于8051的应用软件可以直接写入DS89C430而无需进行更改。除此之外,DS89C430还在许多其他方面引入了新的功能,从而为具体应用提供了更多灵活性。下面介绍DS89C430不同于8051的功能和特点。
2.1 片内程序存储器及应用
片内程序存储器逻辑上分为成对的8 KB、16 KB或32 KB闪存单元,以支持在应用编程。这允许器件在应用软件的控制下修改程序存储器,应用系统能够在执行其主要功能的情况下,完成在线软件升级。DS89C430集成了64 B加密阵列,允许用户以加密形式查看数据,进行程序代码校验。
器件支持通过RS-2 32串口实现在系统编程。在系统编程通过将器件的一个或多个外部引脚设置为某特定状态来激活引导加载程序。器件启动后,开始执行驻留于器件内部专用ROM的加载程序。一旦收到一个回车符号,串口就执行自动波特率功能,并与主机的波特率同步。如图1所示是在系统编程的物理连接.简单的引导加载程序接口允许使用几种方法来实现PC机与目标微控制器间的通信。最简单的方法是使用Dallas的微控制器工具包(MTK)软件.它具有高度前端特征,简化了目标配置,上传、下载代码以及特殊功能配置等任务操作。
2.2 双数据指针
8051微控制器是通过MOVX指令来访问片外数据空间的,用MOVX@DPTR指令可访问整个64 KB的片外数据存储器。传统的8051只有一个数据指针DPTR,要将数据从一个地址移到另一个地址非常麻烦。DS89C430则具备双数据指针DPTR0和DPTRl,因此软件可以使用一个指针装载源地址,另一个指针装载目的地址。DPTR0的SFR地址与805l相同(82H和83H),因此使用该指针时源代码无需更改,DPTRl位于84H和85H地址。所有与数据指针相关的操作都使用活动数据指针,活动指针通过控制位SEL选择。每个指针还各有一个控制位,决定INCDPTR操作是递增还是递减数据指针值。
在拷贝数据块时,与使用单数据指针相比,双数据指针可以节省大量代码。用户通过转换SEL位来转换活动数据指针,其中一种方法可通过执行INCDPS指令来实现。对于这些大的数据块拷贝,用户必须频繁执行该指令来转换DPTR0和DPTRl。为了在节省代码的同时提高运行速度和效率,DS89C430又包含了一个转换选择位 (TSL),来确定执行MOVX指令时硬件是否自动转换SEL位,这样就可以省去INCDPS指令并进一步提高运行速度。大的数据块拷贝需要源指针和目的指针逐字节寻址数据空间,传统的方法是通过使用INCDPTR指令来增加数据指针。为了进一步提高数据传输速率,引入了自动增减控制位(AID),用以确定执行MOVX指令时,是否会自动增减活动指针值。表l为各种情况下DS80C320和DS89C430进行64B数据块传输时的速度比较。从表l中可以看出,采用双数据指针后运行速度得到极大提高。
2.3 电源管理和时钟分频控制
CMOS电路的功耗主要由两部分组成:连续漏电流造成的静态功耗以及对负载电容进行充放电所需的转换开关电流造成的动态功耗。其中,动态功耗是总体功耗的主要部分,该功耗(PD)可以通过负载电容(CL)、电源电压(VDD)和工作频率(f)进行计算,即:PD=CL×VDD2×f。
对于某具体应用,电容和电源电压相对固定,而处理器的处理速度在不同时刻可能是不同的,因此工作频率可以根据不同需要进行调整,从而在不影响系统性能的前提下达到降低功耗的要求。DS89C430支持三种低功耗节电模式。
①系统时钟分频控制:允许微控制器使用内部分频的时钟源继续工作,以节省功耗。通过软件设置时钟分频控制位,设置工作速率为每机器周期1024个振荡器周期.
②空闲模式:以静态方式保持程序计数器,并挂起处理器。在此模式中,处理器不取指令也不执行指令。除了外围接口时钟保持为活动状态以及定时器、看门狗、串口和电源监视功能仍然工作外,所有的资源均保存。处理器能够使用允许的中断源退出空闲模式。
③停机模式:禁止处理器内部的所有电路。所有片内时钟、定时器和串口通信都停止运行,处理器不执行任何指令。通过使用六个外部中断中的任何一个,处理器都能够退出停机模式。
3 基于RISC架构的微控制器
MAXQ2000微控制器是Maxino/Dallas公司推出的一款基于RIS(:架构的16位微控制器。理解这款微控制器的一些结构特点,可以使我们更好地理解RISO结构微控制器的最新发展趋势和技术特点,从而为我们构建新型系统提供更加理想的选择。MAXQ2000的指令读取和执行操作在一个周期内完成,而没有流水线操作,这是因为指令既包含了操作码也包括了数据。字母Q表示这款微控制器的一个重要特点便是“安静”,MAXQ架构通过智能化的时钟管理来降低噪声.这意味着MAXQ只向那些需要使用时钟的电路提供时钟,这样既降低了功耗,又为模拟电路的整合提供了一个最安静的环境。它包含液晶显示(I.CD)接口,最可以驱动100或132段(两种版本)。这款微控制器的功耗指标和MIPS/MHz代码效率方面都在同类微控制器当中遥遥领先.下面介绍MAXQ2000的主要特性。
3.1 指令集
指令集由23条对寄存器和存储器进行操作的固定长度的16位指令组成。指令集高度正交,允许算术和逻辑操作使用累加器和任何寄存器。特殊功能寄存器控制外围设备,并细分成寄存器模块。产品系列的结构是模块化的,因此新的器件和模块能够继续使用为现有产品开发的代码.该结构是基于传送触发的,这意味着对某一寄存器位置的读或写会产生额外作用。这些额外作用构成了由汇编器定义的高层操作码的基础,如ADDC、OR和JUMP等。
3.2 存储器配置
MAXQ2000具有32KB闪存、lKBRAM、4KB的内部ROM存储器块和16级堆栈存储器。存储器缺省配置成Harvard结构,程序和数据存储器具有独立的地址空间,还可以使能为Vorl Ncumann存储器配置模式,即将固定用途ROM、代码和数据存储器放置到一个连续的存储器映射中.这适合于需要进行动态程序修改或特殊存储器配置的应用。闪存程序存储器可以通过16字密钥进行密码保护,从而防止未授权者访问程序存储器。同时,还具有3个数据指针,支持高效快速地处理数据.
固定用途ROM由可以在应用软件中进行调用的子程序组成(缺省起始地址为8000H).包括:通过JTAG或UART接口进行在系统编程(引导加载程序);在电路调试程序;测试程序(内部存储器测试,存储器加载等);用于在应用闪存编程和快速查找表的用户可调用程序。无论以任何方式复位,都从固定用途ROM开始运行程序。R。M软件决定程序立刻跳转到8000H位置、用户应用代码的起始位置、还是上面提到的某特定用途子程序.用户可访问固定用途ROM中的程序,并且可以由应用软件调用这些程序。
3.3 寄存器组
器件的大多数功能是由寄存器组来控制的。这些寄存器为存储器操作提供工作空间,并配置和寻址器件上的外设寄存器。寄存器分成两大类:系统寄存器和外设寄存器.公共寄存器组也称作系统寄存器,包括ALU、累加器寄存器、数据指针、堆栈指针等。外设寄存器定义了可能包含在基于MAXQ架构的不同产品中的附加功能.
3.4 电源管理
MAXQ2000同样提供了先进的电源管理功能,根据系统不同时刻的不同性能需求,可以动态设置处理速度,从而大大降低功耗。通过软件选择分频功能,来选择系统时钟周期是l、2、4或者8个振蔼周期。为进一步降低功耗,还有另外三种低功耗模式,256分频、32 kH。和停机模式。
3.5 中 断
提供多个中断源,可对内部和外部事件快速响应。MAXQ结构采用了单一中断向量(IV)和单一中断服务程序(ISR)设计。必须在用户中断程序内清除中断标志,以避免由同一中断源引发重复中断。当检测到使能的中断时,软件跳转到一个用户可编程的中断向量位置。
一旦软件控制权转移到ISR,可以使用中断识别寄存器(IIR)来判定中断源是系统寄存器还是外设寄存器。然后,就可以查询特定模块以确定具体中断源,并采取相应的操作 。由于中断源是由用户软件识别的,因此用户可以为每种应用确立一个独特的中断优先级方案。
3.6 高速硬件乘法器
集成的硬件乘法器模块执行高速乘法、乘方和累加操作,并能在一个周期内完成一个16位×16位乘法和累加操作。硬件乘法器由2个]6位并行加载操作数寄存器(MA,MB)和1个累加器组成。加载寄存器能够自动启动操作,从而节省了重复计算的时间。硬件乘法器的累加功能是数字滤波、信号处理以及PII)控制系统中的一个基奉单元,这使得MAXQ2000可以胜任需要大量数学运算的应用。
4 结 论
通过以上两种基于CISC.和RISC架构的微控制器的对比分析,会发现许多共同的特性,如安全特性、外围设备、电源管理和在系统编程等。显然.它们都是适应具体应用的共性要求而增加的功能。两者最大的不同是指令结构的差异。MCS一5l有50条基本指令,若累计各种不同寻址方式,指令共计lll条,对应的机器指令有单字节、双字节和三字节指令~68H(:05有62条基本指令,加上多种寻址方式,最终指令达210条,也分为单字节、双字节和三字节指令。比较而言,RIS(:微控制器的所有指令是由一些简单、等长度的指令构成.精简指令使微控制器的线路可以尽量优化,硬件结构更加简单,从而可以实现较低的成本和功耗,当然完成相同的工作可能需要更多的指令。所以,二者取舍之间没有绝对优势,只能说根据应用的不同需求和侧重来进行选择。
1 微控制器的发展历程
Intel公司作为最早推出微处理器的公司,同样也是最早推出微控制器的公司。继1976年推出MCS-48后,又于1980年推出了MCS-51,为发展具有良好兼容性的新一代微控制器奠定了良好的基础。在8051技术实现开放后,Philips、Atmel、Dallas和Siemens等公司纷纷推出了基于80C5l内核(805l的CMC)S版本)的微控制器。这些各具特色的产品能够满足大量嵌入式应用需求。基于80C51内核的微控制器并没有停止发展的脚步,例如现在Maxim/Dallas公司提供的DS89C430系列微控制器,其单周期指令速度已经提高到了805l的12倍。
基于CISC架构的微控制器除了80C51外,还包括Motorola提供的68HC系列微控制器,这也是大量应用的微控制器系列。
基于RISC架构的微控制器则包括Microchip的PIC系列8位微控制器等。在16位RISC架构的微控制器中,Maxim公司推出的MAXQ系列微控制器以其高性能、低功耗和卓越的代码执行效率,成为许多需要高精度混合信号处理以及便携式系统和电池供电系统的理想选择。
2 基于8051内核的COSC微控制器
迄今为止,MCS-51已成为8位机中运行最慢的系列。现在Dallas推出的DS89C430系列产品在保持与80C51引脚和指令集兼容的基础上,每个机器周期仅为一个时钟,实现了8051系列的最高吞吐率。一般而言,对于现有的基于8051的应用软件可以直接写入DS89C430而无需进行更改。除此之外,DS89C430还在许多其他方面引入了新的功能,从而为具体应用提供了更多灵活性。下面介绍DS89C430不同于8051的功能和特点。
2.1 片内程序存储器及应用
片内程序存储器逻辑上分为成对的8 KB、16 KB或32 KB闪存单元,以支持在应用编程。这允许器件在应用软件的控制下修改程序存储器,应用系统能够在执行其主要功能的情况下,完成在线软件升级。DS89C430集成了64 B加密阵列,允许用户以加密形式查看数据,进行程序代码校验。
器件支持通过RS-2 32串口实现在系统编程。在系统编程通过将器件的一个或多个外部引脚设置为某特定状态来激活引导加载程序。器件启动后,开始执行驻留于器件内部专用ROM的加载程序。一旦收到一个回车符号,串口就执行自动波特率功能,并与主机的波特率同步。如图1所示是在系统编程的物理连接.简单的引导加载程序接口允许使用几种方法来实现PC机与目标微控制器间的通信。最简单的方法是使用Dallas的微控制器工具包(MTK)软件.它具有高度前端特征,简化了目标配置,上传、下载代码以及特殊功能配置等任务操作。
2.2 双数据指针
8051微控制器是通过MOVX指令来访问片外数据空间的,用MOVX@DPTR指令可访问整个64 KB的片外数据存储器。传统的8051只有一个数据指针DPTR,要将数据从一个地址移到另一个地址非常麻烦。DS89C430则具备双数据指针DPTR0和DPTRl,因此软件可以使用一个指针装载源地址,另一个指针装载目的地址。DPTR0的SFR地址与805l相同(82H和83H),因此使用该指针时源代码无需更改,DPTRl位于84H和85H地址。所有与数据指针相关的操作都使用活动数据指针,活动指针通过控制位SEL选择。每个指针还各有一个控制位,决定INCDPTR操作是递增还是递减数据指针值。
在拷贝数据块时,与使用单数据指针相比,双数据指针可以节省大量代码。用户通过转换SEL位来转换活动数据指针,其中一种方法可通过执行INCDPS指令来实现。对于这些大的数据块拷贝,用户必须频繁执行该指令来转换DPTR0和DPTRl。为了在节省代码的同时提高运行速度和效率,DS89C430又包含了一个转换选择位 (TSL),来确定执行MOVX指令时硬件是否自动转换SEL位,这样就可以省去INCDPS指令并进一步提高运行速度。大的数据块拷贝需要源指针和目的指针逐字节寻址数据空间,传统的方法是通过使用INCDPTR指令来增加数据指针。为了进一步提高数据传输速率,引入了自动增减控制位(AID),用以确定执行MOVX指令时,是否会自动增减活动指针值。表l为各种情况下DS80C320和DS89C430进行64B数据块传输时的速度比较。从表l中可以看出,采用双数据指针后运行速度得到极大提高。
2.3 电源管理和时钟分频控制
CMOS电路的功耗主要由两部分组成:连续漏电流造成的静态功耗以及对负载电容进行充放电所需的转换开关电流造成的动态功耗。其中,动态功耗是总体功耗的主要部分,该功耗(PD)可以通过负载电容(CL)、电源电压(VDD)和工作频率(f)进行计算,即:PD=CL×VDD2×f。
对于某具体应用,电容和电源电压相对固定,而处理器的处理速度在不同时刻可能是不同的,因此工作频率可以根据不同需要进行调整,从而在不影响系统性能的前提下达到降低功耗的要求。DS89C430支持三种低功耗节电模式。
①系统时钟分频控制:允许微控制器使用内部分频的时钟源继续工作,以节省功耗。通过软件设置时钟分频控制位,设置工作速率为每机器周期1024个振荡器周期.
②空闲模式:以静态方式保持程序计数器,并挂起处理器。在此模式中,处理器不取指令也不执行指令。除了外围接口时钟保持为活动状态以及定时器、看门狗、串口和电源监视功能仍然工作外,所有的资源均保存。处理器能够使用允许的中断源退出空闲模式。
③停机模式:禁止处理器内部的所有电路。所有片内时钟、定时器和串口通信都停止运行,处理器不执行任何指令。通过使用六个外部中断中的任何一个,处理器都能够退出停机模式。
3 基于RISC架构的微控制器
MAXQ2000微控制器是Maxino/Dallas公司推出的一款基于RIS(:架构的16位微控制器。理解这款微控制器的一些结构特点,可以使我们更好地理解RISO结构微控制器的最新发展趋势和技术特点,从而为我们构建新型系统提供更加理想的选择。MAXQ2000的指令读取和执行操作在一个周期内完成,而没有流水线操作,这是因为指令既包含了操作码也包括了数据。字母Q表示这款微控制器的一个重要特点便是“安静”,MAXQ架构通过智能化的时钟管理来降低噪声.这意味着MAXQ只向那些需要使用时钟的电路提供时钟,这样既降低了功耗,又为模拟电路的整合提供了一个最安静的环境。它包含液晶显示(I.CD)接口,最可以驱动100或132段(两种版本)。这款微控制器的功耗指标和MIPS/MHz代码效率方面都在同类微控制器当中遥遥领先.下面介绍MAXQ2000的主要特性。
3.1 指令集
指令集由23条对寄存器和存储器进行操作的固定长度的16位指令组成。指令集高度正交,允许算术和逻辑操作使用累加器和任何寄存器。特殊功能寄存器控制外围设备,并细分成寄存器模块。产品系列的结构是模块化的,因此新的器件和模块能够继续使用为现有产品开发的代码.该结构是基于传送触发的,这意味着对某一寄存器位置的读或写会产生额外作用。这些额外作用构成了由汇编器定义的高层操作码的基础,如ADDC、OR和JUMP等。
3.2 存储器配置
MAXQ2000具有32KB闪存、lKBRAM、4KB的内部ROM存储器块和16级堆栈存储器。存储器缺省配置成Harvard结构,程序和数据存储器具有独立的地址空间,还可以使能为Vorl Ncumann存储器配置模式,即将固定用途ROM、代码和数据存储器放置到一个连续的存储器映射中.这适合于需要进行动态程序修改或特殊存储器配置的应用。闪存程序存储器可以通过16字密钥进行密码保护,从而防止未授权者访问程序存储器。同时,还具有3个数据指针,支持高效快速地处理数据.
固定用途ROM由可以在应用软件中进行调用的子程序组成(缺省起始地址为8000H).包括:通过JTAG或UART接口进行在系统编程(引导加载程序);在电路调试程序;测试程序(内部存储器测试,存储器加载等);用于在应用闪存编程和快速查找表的用户可调用程序。无论以任何方式复位,都从固定用途ROM开始运行程序。R。M软件决定程序立刻跳转到8000H位置、用户应用代码的起始位置、还是上面提到的某特定用途子程序.用户可访问固定用途ROM中的程序,并且可以由应用软件调用这些程序。
3.3 寄存器组
器件的大多数功能是由寄存器组来控制的。这些寄存器为存储器操作提供工作空间,并配置和寻址器件上的外设寄存器。寄存器分成两大类:系统寄存器和外设寄存器.公共寄存器组也称作系统寄存器,包括ALU、累加器寄存器、数据指针、堆栈指针等。外设寄存器定义了可能包含在基于MAXQ架构的不同产品中的附加功能.
3.4 电源管理
MAXQ2000同样提供了先进的电源管理功能,根据系统不同时刻的不同性能需求,可以动态设置处理速度,从而大大降低功耗。通过软件选择分频功能,来选择系统时钟周期是l、2、4或者8个振蔼周期。为进一步降低功耗,还有另外三种低功耗模式,256分频、32 kH。和停机模式。
3.5 中 断
提供多个中断源,可对内部和外部事件快速响应。MAXQ结构采用了单一中断向量(IV)和单一中断服务程序(ISR)设计。必须在用户中断程序内清除中断标志,以避免由同一中断源引发重复中断。当检测到使能的中断时,软件跳转到一个用户可编程的中断向量位置。
一旦软件控制权转移到ISR,可以使用中断识别寄存器(IIR)来判定中断源是系统寄存器还是外设寄存器。然后,就可以查询特定模块以确定具体中断源,并采取相应的操作 。由于中断源是由用户软件识别的,因此用户可以为每种应用确立一个独特的中断优先级方案。
3.6 高速硬件乘法器
集成的硬件乘法器模块执行高速乘法、乘方和累加操作,并能在一个周期内完成一个16位×16位乘法和累加操作。硬件乘法器由2个]6位并行加载操作数寄存器(MA,MB)和1个累加器组成。加载寄存器能够自动启动操作,从而节省了重复计算的时间。硬件乘法器的累加功能是数字滤波、信号处理以及PII)控制系统中的一个基奉单元,这使得MAXQ2000可以胜任需要大量数学运算的应用。
4 结 论
通过以上两种基于CISC.和RISC架构的微控制器的对比分析,会发现许多共同的特性,如安全特性、外围设备、电源管理和在系统编程等。显然.它们都是适应具体应用的共性要求而增加的功能。两者最大的不同是指令结构的差异。MCS一5l有50条基本指令,若累计各种不同寻址方式,指令共计lll条,对应的机器指令有单字节、双字节和三字节指令~68H(:05有62条基本指令,加上多种寻址方式,最终指令达210条,也分为单字节、双字节和三字节指令。比较而言,RIS(:微控制器的所有指令是由一些简单、等长度的指令构成.精简指令使微控制器的线路可以尽量优化,硬件结构更加简单,从而可以实现较低的成本和功耗,当然完成相同的工作可能需要更多的指令。所以,二者取舍之间没有绝对优势,只能说根据应用的不同需求和侧重来进行选择。
- CISC处理器调试系统的设计实现,详细软硬件架构、流程、代码(06-04)
- RISC与CISC以及ARM版本的RISC改动(11-28)
- 复杂指令集CISC和简单指令集RISC以及ARM和X86的区别(11-25)
- 嵌入式系统架构(六):CISC家族之AMD架构 (09-11)
- 嵌入式系统架构(五):CISC家族之VIA架构(09-10)
- MIPS 体系和CISC体系结构有什么不同(12-13)