低功耗应用微码电路设计研究

所属栏目:电子技术论文 发布日期:2020-12-02 09:57 热度:

   1现有的外设和CPU交互的方式

  (1)中断输入输出方式。当出现来自系统外部,机器内部,甚至处理机本身的任何例外的,或者虽然是事先安排的,但出现在现行程序的什么地方是事先不知道的事件时,CPU暂停执行现行程序,转去处理这些事件,等处理完成后再返回来继续执行原先的程序;该处理方式与CPU并行工作;数据的输入和输出都要经过CPU;一般用于连接低速外围设备。(2)直接存储器访问方式(DMA)。外围设备与主存储器之间建立直接数据通路,传输数据不需要CPU干预;计算机系统以主存储器为中心,主存储器既可以被CPU访问,也可以被外围设备访问;在外围设备与主存储器之间传送数据不需要执行程序,DMA传输方式只是减轻了CPU的工作负担;系统总线仍然被占用。特别是在传输大容量文件时,CPU的占用率可能不到10%,但是用户会觉得运行部分程序时系统变得相当的缓慢。主要原因就是在运行这些应用程序(特别是一些大型软件),操作系统也需要从系统总线传输大量数据;故造成过长的等待时间。而且DMA方式不够灵活,不具有可编程性。只适合一些高速的I/O设备和主存储器交换数据。由于嵌入式设备体积小,资源比较局限,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软、硬件,利用低的资源实现适当的功能,因此嵌入式设备的目标是资源小,低功耗,高效率。针对以上cpu和外设通信的局限问题和嵌入式的发展趋势,本设计提供一种面向低功耗应用的微码电路设计方法,在CPU等可编程模块处于低功耗模式的时候,通过对事件触发采取相应的总线操作来代替原本处理器中断例程的工作,争取最大程度的降低功耗,并具备一定的可编程灵活性,减少了CPU的负担,提高了芯片的处理事务的整体性能。

低功耗应用微码电路设计研究

  2模块介绍

  图1为该设计顶层框图。ahb_slv为总线配置信号,通过ahb总线对内部寄存器与memory进行配置。ahb_mst总线控制信号,通过ahb总线对外部地址空间进行读写操作。Events为输出事件信号,该信号来源是中断或外部dma请求。ack为dma响应。该设计总共分为4块电路:事件触发电路,指令存储电路,指令译码与执行电路,指令控制总线电路。事件触发电路event_trigger,对外部事件进行处理,该处理方式具有优先级。指令存储电路cmsdk_ahb_to_sram,两块片内sram存储指令,cpu通过总线事先对其中一块sram填充。当CPU或DMA不工作时,可以通过指令对另一块sram进行填充。指令译码与执行电路operator_top,对sram中的数据进行译码,通过状态机完成指令到op接口读写的转换。指令控制总线电路operator_top,op接口与ahb总线接口转换。

  2.1事件触发电路

  外部事件event具有优先级,第127个event优先级最高,第0个event优先级最低。每个event有使能信号,由4个32bit寄存器控制。event通过上升沿采样电路,输出该event对应的编号。

  2.2指令存储电路

  通过总线对片内3个sram存储数据,其中一块sram存储指令首地址,另外两块sram存储具体指令。图4为总线读写sram时序。三块sram均是cpu或者内部operator模块可以总线地址访问。为了使指令存储电路处理方便,将三块sram所占cpu地址空间平均分配。

  2.3指令译码与执行电路

  指令分为位操作,数据搬移操作,数据控制操作。有单周期指令,也有多周期指令。指令内容存放在两块sram中。通过译码电路,得到当前要执行的指令,再通过状态机,最终完成userinterface的读写。图5状态机就是不同指令间切换的操作。

  2.4指令控制总线电路

  利用状态机,将operator接口读写操作转换成标准ahb总线读写操作。各状态解释:IDLE:系统复位,状态机处于空闲状态。HOLD:当ahb处于single操作时。外部总线请求req使能,但总线hready无效,处于HOLD状态。该状态完成htrans操作。DATA:当ahb处于single操作时。总线hready有效。该状态完成读写操作。NONSEQ_ADDR:当ahb处于burst操作时。外部总线请求req使能,总线hready有效。该状态完成burst操作的第一个地址相位。SEQ_ADDR:当ahb处于burst操作时。总线hready有效。该状态完成burst操作的后几个地址相位以及数据相位。LAST_DATA:当ahb处于burst操作时。总线hready有效。该状态完成burst操作的最后一个数据相位。

  3具体操作流程

  该设计最大支持128个事件触发,最大支持任务个数以TaskMemory容量为上限,多个事件也可以对应同一任务,通过命令编码支持多种语义的操作。event事件信号为中断或握手信号(取上升沿),event具备优先级,event127为最高优先级,event0为最低优先级。当event到来的时候,事件触发电路event_trig会锁存当前到来的事件,并挑选最高优先级的事件,对改事件进行编号,将改编号作为table_memory的地址,进行读操作。在table_memory中寻找Task所在地址(首地址),并压入task_queue,并清除该锁存状态。当task_queue满的时候,产生中断,报告cpu处理该错误。如果当前事件还来不及加入队列,又来了一次脉冲信号,则仍作为一次事件。event_trig还具备设置相应位的enable/disable功能,由cpu配置。table_memory和task_memory均为可以在总线上寻址的memory,在进入工作模式之前由cpu对这两块memory进行初始化。当进入工作模式后,operator自动查询队列是否为空,如果不为空则弹出相应地址,对task_memory从该地址开始取指令,直至取得操作码为end作为任务结束标志,并再次查询是否队列为空.

  4指令和事件逻辑关系图

  部分微码指令软件实现见图8。

  5模块配置流程

  要想该设计在cpu不干预的情况下自动执行,一些基本的初始化的东西可以由CPU初始化完成,也可以在task0里初始化完成,但是后续的一些配置比如清中断操作必须在task里封装成指令,然后由easy-master来完成,这样就不需要cpu干预,后续的任务全部由easy-master来做,然后做好后通知CPU已完成。

  6结束语

  本文分析了外设—CPU交互方式的局限性和嵌入式设备的特点、趋势,说明了微码电路对事件触发中断处理、降低功耗、提高处理能力的作用。同时介绍该设计的各个部件。该设计综合结果,相对于传统DMA的面积,节省面积15%左右。对需求为低功耗、小面积的芯片来说,很有意义.

  《低功耗应用微码电路设计研究》来源:《中国集成电路》,作者:伍骏 卢磊 刘少庆

文章标题:低功耗应用微码电路设计研究

转载请注明来自:http://www.sofabiao.com/fblw/dianxin/dianzijishu/44424.html

相关问题解答

SCI服务

搜论文知识网的海量职称论文范文仅供广大读者免费阅读使用! 冀ICP备15021333号-3