RISC的结构特征和设计原则
科技那回事 2022-08-19

 1.引言

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

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

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

  对于不同的微控制器()产品应用,不仅需要考虑不同厂家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.1RISC指令集的选取

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

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

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

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

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

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

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

 4.3程序空间的分页设计

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

 4.4流水线技术

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

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

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

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

 4.5低功耗技术

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

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

 5.结束语

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

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • ARM语音识别系统原理和软件规划

      伴着高新技能在军事范畴的大范围利用,武器装备逐渐向高、精、尖方面开展。传统的军事练习因为练习时刻长、练习费用高、练习空间窄,常常不能到达预期的练习作用,已不

    09-23
  • Linux下软件的安装与卸载

      第一篇:Linux下软件的安装与卸载  在Windows下安装软件时,只需运行软件的安装程序(setup、install等)或者用zip等解压缩软件解开即可

    09-22
  • C8051F单片机使用注意事项

    C8051F单片机使用注意事项(原创)由于C8051F单片机是3.3V低功耗、高速单片机,与大家过去应用传统的5V供电低速单片机在引脚处理与PCB布板方面会有一

    09-22
  • 嵌入式芯片有哪些?

      嵌入式微处理器(EMPU)  嵌入式微处理器的基础是通用计算机中的CPU.在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这

    09-21
  • linux 下的进程控制块-task

    进程控制块PCB(ProcessControlBlock)(1)概述进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基

    09-21
  • 聊聊电子通信,嵌入式工程师面试的那些事

    火哥自从校招找工作到现在,面试过不下50家公司,拿到过不少于30个offer。虽然不能是百战百胜,但是也还算有着较高的面试成功率。这50场以上的面试中,火哥用过不同的简历,尝试过不同的项目介绍技巧,也算颇有心得,今天我们聊聊电子通信,嵌入式工程师面试

    09-20
  • 单片机低功耗设计,软件优化很重要!

      现在,有许多单片机应用领域,都是用电池供电,节能成为设计工程师普遍关心的问题。  进入掉电模式  现在有很多的低功耗的片子,特别是在进入掉电模式之后,只有1

    09-20
  • 物联网安全之ARM TrustZone® 技术

    物联网安全之TrustZone ARM TrustZone® 技术是系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理 (DRM)、企业服务和基于 Web 的服务。 移动设备已发展为能够从 Internet 下载各种大型应用程序的开放软件平台。这些应用程序通

    09-20
  • 智能电子锁发展前景与技术应用

    智能电子锁发展及应用 所谓的智能电子锁,就是将电子技术、集成电路设计、大量的电子元器件,结合多种创新的识别技术(包括计算机网络技术、内置软件卡、生物识别,网络报警、锁体的机械设计)等综合的产品。 电子锁的研究从20世纪30年代就开始了,在一些特殊场

    09-20
  • 无缓存下对Flash的AHB读访问竟然是这样!

    今天给大家介绍的是实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形。 上一篇文章 《i.MXRT中FlexSPI外设对AHB Burst Read特性的支持》 里痞子衡介绍了FlexSPI外设在不开启Prefetch功能下响应AHB ma

    09-19
下载排行榜
更多
广告