8位MCU(微控制器)体系架构特征及设计原则

发布者:喜从中来最新更新时间:2013-12-04 来源: 21ic关键字:8位MCU  微控制器  架构特征 手机看文章 扫描二维码
随时随地手机看文章

1.引言

微控制器(Microcontroller)自上世纪70年代出现以来,在将近30年的时间里得到了迅猛的发展和广泛的应用。随着微电子技术的飞速发展,微控制器以其性能好、体积小、价格优、功能齐全等突出优点被广泛应用于家用电器、计算和外设、通讯、工业控制、自动化生产、智能化设备以及仪器仪表等领域,成为科研、教学、工业技术改造最得力的工具。从最初采用普林斯顿结构的简单微控制器到现在普遍采用哈佛总线结构的RISC微控制器,微控制器取得了飞速的发展 。

8位微控制器是目前应用数量最大的微控制器,也是目前最多公司致力耕耘的市场;其市场及价格竞争都极为激烈,各种多功能需求以及不同规格的产品推陈出新的速度也极为快速。随着集成电路和半导体工艺技术的快速发展,FPGA和SOC技术的不断竞争和融合,电子产品的设计逐渐向系统性能更好、功耗更小、成本更低、可靠性更高、开发更容易的方向发展。因此,迅速推出符合市场需求的高性价比、低功耗、高经济效益的8位微控制器芯片或IP Core成为了现今不少公司竞争相逐的热点。

2.目前8位微控制器的更新和设计趋势

对于不同的微控制器(MCU)产品应用,不仅需要考虑不同厂家MCU的性价比,而且还需要考虑不同指令系统下MCU应用特点。针对不断涌现出来的新的智能化电子产品,人们一直在开发适合于不同嵌入式系统应用的MCU新产品。不同厂家的MCU产品其指令集各不相同,特别是指令集系统架构的不同,如市场上广泛应用的MCS51系列和PIC系列微控制器则分别采用CISC指令系统和RISC指令系统。

微控制器按照指令系统可以分为CISC、RISC、类RISC(RISC-LIKE)等几种。传统的MCS51控制器属于CISC型,其代码密度高,但大多数指令需要多个时钟周期完成。RISC型一般指令密度较低,但指令效率很高。类RISC型则兼有CISC和RISC的优点。RISC和类RISC之所以有如此高的指令效率,得益于小指令集带来的硬布线结构和流水线结构。简单的指令集可以用硬布线进行指令译码,而不需要用微码控制的方式,提高了译码的效率。流水线结构将指令分成几步完成,在流水线填满工作时,每条指令的平均执行时间(CPI)在1个时钟周期左右。一般来说,RISC比同等的CISC要快50%--70%,同时更容易设计和纠错。

因此,目前对8位微控制器的产品开发和研究设计主要是以兼容市场上已被客户广泛采用的产品为前提,不断提高性能并降低功耗以适应市场竞争和技术发展。对于原先为CISC指令系统的微控制器产品,在层出不穷的更新系列中已经渐渐的融合进了RISC思想;对于采用RISC指令系统的微控制器来说,更多的做法仍然是针对高性能低功耗的需求对其整个体系架构不断地进行优化和改善,尤其是流水线结构的改进最为多见。本文正是在这种形势下提出的,主要讨论RISC体系架构的8位微控制器产品的设计技术。

3.RISC微处理器的结构特征和设计原则

虽然现在业界对RISC 处理器应该具有什么特征还有不同的看法,但是各种RISC结构都有一些共性:(1)采用哈佛总线结构,大多数指令在一个时钟周期内完成以便于实现结构流水化;(2)采用独立且简单的装载/存储结构;(3)指令解码通常都是硬连线实现而不是微解码,以便加快执行速度;(4)多数指令具有固定格式,以简化指令编码和译码;(5)较小的指令集和少数几种寻址模式;(6)数据通道流水线化,使处理过程高度并行;(7)采用大容量高速寄存器堆(或称为寄存器文件),尽量避免与速度较低的系统RAM交换数据。尽量将运算数据存放在寄存器中,从而减少访问内存的次数。根据以上的讨论,下文重点从体系架构的角度出发,就高性能、低功耗两方面对8位RISC微控制器在设计中的关键技术进行了探讨研究。

4.关键技术

4.1 RISC指令集的选取

控制器系统的使用跟软件编程与硬件设计之间的规格接口密切相关,这个接口就是微控制器的指令集。指令体系结构(ISA)是进行微处理器软硬件协同设计的前提。指令集必须完备,使所有可计算的功能都在合理的程序空间内得以实现;而且指令集又必须是高效的,以便使常用的功能可以用相对少的指令实现。因此,提供给应用软件开发的微控制器系统必须有一个完备而高效的指令集。

指令集直接决定微控制器的内部硬件结构,同时也是用户程序编译生成目标代码的依据。指令集的最终确定与整个系统所需的程序存储器、数据存储器、寄存器变量及存储器寻址方式密切相关且相互制约。各个部件乃至具体的字节都应该有唯一的地址,以便指令集能够正确对各个部件或字节进行辨认操作。因此也就有了相应的一系列针对不同产品的不同措施: 1)从所需要的地址长度和相应增加的寄存器来权衡指令的长度;2)对指令进行分类并分别确定各类的指令字节格式,以简化操作控制信号的译码逻辑;3)增加相应的寄存器以弥补指令字节长度的不足;4)指令字节格式分配应考虑到相应部件的结构复杂度及对应的寻址方式;5)存储器、寄存器、I/O口是否统一寻址。以上所列举的并不详尽也无先后顺序之分,应该同时进行分析。相应的措施所对应的性能、功耗、设计复杂度各不一样,应统一考虑。

对ISA进行功耗分析应该从指令代码容量和指令执行效率两方面考虑。指令集大小、寄存器变量、存储器寻址方式、流水线结构等技术的选定都和指令代码密度有紧密联系。研究发现,在RISC的精简指令集中适当增加一些特定的复杂指令不失为提高代码密度、保证处理器高性能、低功耗的可行方法。因此能够产生高指令代码密度的指令集无疑是RISC低功耗设计的首选。

4.2 具有共享区的寄存器堆的分页设计

RISC设计思想的最主要特点是所有的操作都是面向寄存器的。利用寄存器---寄存器操作的指令进行数据传送,加快了速度,而且还简化了指令控制逻辑,缩小了硬布线逻辑构成的控制部件的芯片面积。[page]

在指令中固定寄存器地址的位数必然限制寄存器的数量,但是引入高端处理器的分段、分页的设计思想就可以扩展寻址的范围。分段、分页的设计思想的根本出发点在于将存储器的线性地址分解成二维或多维地址;在指令中只表达最低维地址,而使用其它设施(如段号寄存器、页号寄存器)用来存放高维地址。一般将寄存器堆分成若干个页,每个页有固定的大小,在指令中只使用寄存器的页内地址。在系统专用寄存器中设置一个页号寄存器,通过改变其内容来切换对不同页寄存器的访问。

为克服单纯分页机制中的各种缺陷,通常采用具有共享区的分页设计,这样不仅减少了指令中寄存器逻辑地址的位数,而且在任何时候都能够访问系统寄存器,同时便于不同页寄存器之间通过共享区中的通用寄存器交换信息。当然还得有相应的逻辑地址到物理地址的映射的方法措施。

4.3 程序空间的分页设计

由于和寄存器堆同样的原因,在指令中若采用完整的程序空间地址,也会局限程序空间的大小,所以对程序空间通常也采用了分页的设计思想,同时在不同页内设置了公共程序区(若指令长度完全符合程序空间地址的要求,则无需此思想),其设计思想类同于具有共享区的寄存器分页设计,在此不再赘述。唯一与寄存器公共区不同的是:程序公共区是为程序在不同页之间跳转提供平台。

4.4 流水线技术

流水线设计与8位RISC微控制器体系架构密不可分,是整个系统的设计核心,它的选用优劣直接影响到系统的性能和功耗。

流水线技术能最大限度地利用了微控制器资源,使每个部件在每个时钟周期都工作,大大提高了效率,但由于流水线的各个段之间存在很强的依赖关系。如果处理不当, 指令的运行将达不到预期的结果,因此必须熟知流水线的相关和转移问题。其一为资源冲突, 即同一时间内争用同一功能部件, 一般为同时访问存储器, 这就需要停顿一拍流水线; 其二为数据相关冲突, 有三种类型: RAW、WAR、WAW , 解决该冲突使用内部直通结构或者延迟一拍流水线; 其三为控制转移冲突, 即对于条件跳转指令, 根据运算结果判断是否跳转, 才能确定新的PC值, 运算结果是在执行阶段后获得, 这使流水线丧失很多的性能, 一般采用增加硬件预先获得运算结果解决该冲突。

越是长的流水线,相关和转移两大问题也越严重:一方面导致硬件控制电路复杂程度大大增加, 另一方面, 由于流水线节拍的停顿, 导致CPI值的增大及系统性能的下降。所以,流水线并不是越长越好,找到一个速度与效率的平衡点才是最重要的。

在8位RISC微控制器的流水线设计中,存在很多种方案。不同方案所对应的面积、速度与功耗各不相同。具体的选用则应该从多个方面融合考虑。首先应该由系统的工作速率要求和流水线级数、深度推导出多种具体的流水线结构方案及其所需要的严格时序;然后从系统的功耗、面积、性能及由流水线相关和转移问题引起的设计复杂度等方面考虑出发,判断各方案的优劣;最后折衷选择符合的最优方案。

4.5 低功耗技术

随着半导体工业的迅猛发展,集成电路进入深亚微米阶段,微处理器的时钟频率和芯片集成度不断提高,功耗已在很多设计领域成为了首要关注的问题,这点最为突出的即是高性能微处理器和便携电子设备产品。

在根据系统功能说明进行软硬件协同设计、确定指令体系结构时,不同的设计出发点所导致的设计功耗结果差别会很大。因此整个体系架构的确定无疑是低功耗问题应该考虑的首要问题,主要体现以下几个方面:1)尽可能根据功能需求优化指令集,简化系统的译码单元和执行单元;2)通过开发硬件的并行性以及功能单元的流水执行来实现低功耗的结构;3)合理设置确定存储器、寄存器的容量,减少所需的总线数目;4)系统硬件的各个子模块划分以及软件上设置不同的工作状态对功耗的优化非常重要。

5.结束语

在微控制器应用领域日益广泛的今天,对微控制器提出了更高要求,希望速度更快、功耗更低、价格低廉、易学易用以及组成系统时的外围器件更少。因此,对目前应用数量最广的8位微控制器的产品开发和设计研究显得尤为重要。又因其体系结构设计是整个设计关键之关键,其后的所有工作,都是依赖于所设计的体系结构来进行的。本文就此对8位RISC体系架构中采用的关键技术所应该考虑的问题进行了分析和探讨,具有一定的研究价值和意义。

关键字:8位MCU  微控制器  架构特征 引用地址:8位MCU(微控制器)体系架构特征及设计原则

上一篇:单片机中断方面的知识
下一篇:基于单片机的晶闸管触发装置的设计方案

推荐阅读最新更新时间:2024-03-16 13:31

单片机+LCD12864数字电压表设计
单片机源程序如下: //---库函数声明及相关定义---// #include reg51.h #include intrins.h #define unint unsigned int #define unchar unsigned char #define Databus P1 /*液晶数据总线*/ sbit RS=P3^3; /*数据指令 选择*/ sbit RW=P3^4; /*读写 选择*/ sbit EN=P3^2; /*读写使能*/ sbit cs1=P3^6; /*片选1*/ sbit cs2=P3^7; /*片选2*/ sbit clock=P0^4;//时钟线 sbit dout
[单片机]
<font color='red'>单片机</font>+LCD12864数字电压表设计
51单片机读端口与读引脚彻底研究(个人浅见)
要弄清读端口、读引脚问题,思考以下问题: (1)引脚的结构图清楚吗? 以上是P0口一位的结构。以上结构说明:读引脚之前一定要对端口先置1,使mosfet V2截止,以免信号被拉低而读错,这一点很容易理解。 (2)什么指令读端口?什么指令读引脚? 一般的教科书上都会强调:读端口的指令为端口内容取反这样的 读-修改-写 指令。而读引脚之前,先置1,然后用Mov A,Px之类的指令即可。 以下是从web( http://www.dzsc.com/dzbbs/20061112/200765184756359377.html )上搜集的资料: 资料称: 这样的指令才有 Read-Modify-Write 功效 ANL
[单片机]
51单片机向PC电脑发送汉字的方法
简介:最近看到有朋友在网上问单片机怎么向电脑发送一串汉字这个问题,其实这个问题也不难.呵呵.只要把相关的参数设置好一些,然后把汉字定义成一组字符向电脑发送就可以. 为了让大家更明确的了解,我就写了下面的一个程序来演示一下. 操作条件: 1.XP操作系统. 2.XP的超级终端显示. 3.WJ-V4.0开发板. 4.单片机STC89C52. 5.晶振11.0592M 操作步骤: 1.设置TMOD设置波特率和定时器1的工作方式. 2.设置定时器的初始值. 3.设置串行口工作方式. 4.设置波特率不加倍. 5.打开TR1允许发送. 6.启动定时器. 7.串行中断打开. 8.打开E
[单片机]
51<font color='red'>单片机</font>向PC电脑发送汉字的方法
NI Multisim下如何进行SPICE模型和8051 MCU的协同仿真
Multisim是基于SPICE的电路仿真软件,SPICE(Simulation Program with Intergrated Circuit Emphasis)是“侧重于集成电路的模拟程序”的简称,在1975年由加利福尼亚大学伯克莱分校开发。在Multisim9中,需要另安装MultiMCU进行单片机仿真。NI(National Instruments) Multisim10 将MuitiMCU称为MCU Module,不需要单独安装,可以与Multisim中的SPICE模型电路协同仿真,支持Intel/Atmel的8051/8052 和 Microchip的 PIC16F84a,典型的外设有RAM和ROM,键盘,图形和文字
[单片机]
NI Multisim下如何进行SPICE模型和8051 <font color='red'>MCU</font>的协同仿真
P89V51RD2单片机的时钟电路
时钟电路 时钟电路参数: 频率范围:0~40MHz C1、C2:20~30pF 详细请查看: 8051及P89V51RD2单片机 P89V51RD2的两种时钟模式 X1模式 X2模式 器件含有一个时钟加倍选项,可以加速器件的运行速度。此时: 时钟加倍模式只可于加倍内部系统时钟和内部flash存储器(即EA=1)。在访问外部存储器和外围器件时要特别小心,还要注意晶振的输出(XTAL2)是不能加倍的。 时钟加倍模式可通过外部编程器或IAP来实现。当该模式被选择时,FST寄存器的EDC位用来指示6时钟模式。 P89V51RD2的两种时钟模式——X2模式 时钟加倍模式可通过外部编程器或IAP来实现。当该模
[单片机]
P89V51RD2<font color='red'>单片机</font>的时钟电路
单片机 C51 编程要点总结
1、头文件:#include 2、预定义:sbit LED = P1^0// 定义 P1 口的 0 位为 LED 注:“P1^0”这个写法,与 A51 不同(A51 是 P1.0),P1 是一组端口,端口号范围 0~7 注2:sbit 用于定义 SFR(特殊功能寄存器)的位变量,上例中 LED 作为“全局变量”进行定义 注3:以下写法是错误的: sbit code table = {P1^0, P1^1, P1^2, P1^3};// 想用 table 指定不同的引脚,但这么做会报错 sbit table = {P1^0, P1^1, P1^2, P1^3}; // 考虑到上面可能是 code 关
[单片机]
基于电力载波的路灯电缆防盗报警器设计
引言 本文提出一种基于电力载波技术和模数转换器TLC3548的路灯电缆防盗报警器解决方案,可24小时实时监控电缆通断状况,较精确地测量出断缆位置,并将警情及时上报。 1 系统工作原理 路灯电缆防盗报警器由电缆前端防盗主机与电缆末端防盗从机两部分组成。由于系统报警信号的采集针对的是电力电缆线,其本身就是信号的良好载体,因此主机与从机的线缆通信技术采用电力载波通信技术。电力载波通信PLC(Power Line Communication)是电力系统特有的通信方式,它是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。电力载波通信的最大特点是不需要重新架设网络,只要有电缆,就能进行数据传递。 路灯供电线缆均采用三相
[电源管理]
基于电力载波的路灯电缆防盗报警器设计
51单片机红外遥控小车
学习51单片机,遥控小车小车是很多单片机爱好者、 电子制作 爱好者必先项目,这里为大家介绍一款51单片机红外遥控小车的制作。51单片机红外遥控小车材料准备,首先当然是淘宝网购啦,主要购买如下配件:单片机最小系统板、3轮小车底盘,L298N两个电机控制电路板、电池盒,还有一些铜柱、扎带等,所需要的配件很容易在一家店中购齐的。 51单片机红外遥控小车,十分简单,产生我们先从红外遥控部分开始。网上打一个红外的例程进行改,就成了51单片机红外遥控小车程序了。 51单片机红外遥控小车用单片机最小板是是一块6元钱的最小板(就是哪种直接把IO引出来,加个晶振),电机控制板,与P连接。先在电脑上测试程序,测试好后,再把程序下载到单
[单片机]
51<font color='red'>单片机</font>红外遥控小车
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved