首页> 中国专利> 信息安全SoC中基于门控时钟的动态功耗管理方法

信息安全SoC中基于门控时钟的动态功耗管理方法

摘要

本发明属集成电路技术领域,具体为一种信息安全SoC的动态功耗管理方法。信息安全SoC是计算密集型的专用集成电路,主要由微控制器MCU、密码运算单元、真随机数发生器、DMA控制器、存储器、USB接口控制器、总线控制器以及中断控制器、UART控制器和时钟管理模块等必要外设构成。其工作过程决定了并非每一个部件都同时参与工作。本发明根据信息安全SoC的工作过程将其构成模块划分为多个时钟区域,然后用DPM技术的嵌入式软件管理每个时钟区域的时钟供给:对于不参与当前工作的模块完全关闭其时钟输入,在需要参与工作时重新打开时钟供给。本发明中阐述的动态功耗管理技术能极大地降低信息安全SoC的系统功耗。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-11-03

    未缴年费专利权终止 IPC(主分类):G06F1/32 授权公告日:20071031 申请日:20050818

    专利权的终止

  • 2007-10-31

    授权

    授权

  • 2006-05-24

    实质审查的生效

    实质审查的生效

  • 2006-03-29

    公开

    公开

说明书

技术领域

本发明属集成电路技术领域,具体涉及一种在数字集成电路系统中方便实现且性能卓越的动态功耗管理(Dynamic Power Management,DPM)方法。

技术背景

伴随全球信息化步伐的加快,网络,尤其是有线、无线互联网络,已与人们的生活紧密相连,成为现代社会中信息交换不可或缺的载体。信息化的深入与网络的普及也促进了各种基于网络、电子信息交互的业务发展,最具代表性的有电子商务、电子政务、金融支付、智能交通、互动娱乐等等。网络业务的普及,给人们的生活带来了方便,但同时也给人们的生活带来了更多的安全隐患。今天,网络信息交换中产生的信息安全问题已经成为要进一步推进信息化、加速网络应用中急需解决的关键问题之一。

信息安全SoC芯片正是在这种背景下迅速发展起来并成为网络信息保障体系的芯片级硬件防护的基础。而由于应用领域的不同,目前国际上信息安全SoC芯片也在两个方向上不断得到发展:一是面向客户端应用的信息安全SoC芯片,如用于身份签名和认证的USB-key;另一方向是面向高端应用,如宽带网络应用的高端信息安全SoC芯片。两个方向的安全芯片虽然在运算速度和数据吞吐量上有很大的不同,但在降低系统功耗方面却保持一致。前者希望芯片的功耗尽可能低以延长便携式电池的使用时间,而后者希望芯片的功耗尽可能低以保证芯片能够长时间的正常工作和省去降温装置(如风扇、散热片等)。

根据CMOS理论,降低CMOS电路的功耗,尤其是动态功耗,主要有以下几种方法:减小等效电容、降低电源电压、降低工作频率以及节点的翻转概率。一般而言,减小等效电容这种方法在基于标准单元库的ASIC设计中可用性很低;降低电源电压和降低工作频率这两种方法则对系统的性能会产生负面影响。而降低节点的翻转概率这种方法,节点的负载电容越高,这种方法就越有意义。同步ASIC中负载最大的两个节点就是时钟信号和全局复位信号。而全局复位信号在系统工作过程中翻转的概率很低(一般只在系统上电时或者出现逻辑故障时才会翻转),因此控制时钟信号节点的翻转是基于CMOS标准单元的SoC中降低功耗的非常行之有效的策略。

DPM能够根据系统现时的工作状态动态配置系统参数,使用最少的激活部件(activecomponent)来满足应用的需求,进而提高系统的能量利用效率。DPM技术在低功耗设计领域中具有非常重要的地位,它既是很多高校的研究重点,如美国斯坦福大学有专门的DPM研究小组;也是目前最新产品中普遍采用的技术,如Intel的迅驰CPU中就使用了DPM。

DPM包括软件部分和硬件部分两个方面。软件部分主要分析现时系统的工作状态进而对系统未来的行为做出预测;硬件部分主要支持各个时钟区域的时钟信号的开启与关闭。

发明内容

本发明的目的在于提出一种简单易行且可靠性高的动态功耗管理方法,它对现有的硬件模块和软件模块改动非常小,而且几乎不影响系统性能。

信息安全SoC(System-on-Chip,SoC)是计算密集型的专用集成电路,主要由微控制器MCU(Micro Controller Unit,MCU)、密码运算单元、真随机数发生器、DMA(Direct MemoryAccess,DMA)控制器、存储器、USB(Universal Serial Bus,USB)接口控制器、总线控制器以及中断控制器、UART(Universal Asynchronous Receiver/Transceiver)控制器和时钟管理模块(Clock Management Module,CMM)等必要外设构成。其工作过程决定了并非每一个部件都同时参与工作。本发明根据信息安全SoC的工作过程将其构成模块划分为多个时钟区域,然后用DPM技术的嵌入式软件管理每个时钟区域的时钟供给:对于不参与当前工作的模块完全关闭其时钟输入,在需要参与工作时重新打开时钟供给。

本发明在划分时钟区域时,一般要求某个区域的模块可以独立于其它一些(并非所有)模块工作;并且将划分入时钟区域的所有模块的时钟输入纳入软件可控范围。

与上述嵌入式管理软件相匹配,本发明提出的信息安全SoC中的DPM的相关硬件部分,包括一个上述软件可访问的由时钟管理模块(Clock Management Module,CMM)和一个上述软件可访问的微控制器(Micro ControllerUnit,MCU)wrapper构成。前者负责管理SoC中除了MCU以外的其它功能模块的时钟;后者负责管理MCU本身的时钟。

CMM的结构如附图1所示。它包括:

一个CMM的控制寄存器组件1.1,MCU可以通过APB接口访问并修改它,它的值为‘0’表示关闭对应的时钟输出,‘1’表示开启对应的时钟输出;

一个低电平有效的锁存器组件1.2,它保证了只有当时钟信号为低电平时组件1.1的输出才可能影响到最终的n#时钟输出,从而有效地避免了在时钟信号上引入毛刺,提高系统的稳定性;

一个二输入与门组件1.3,它是关闭/开启时钟输出的功能部件;

一个上升沿触发的功能模块组件1.4,例如RSA/ECC协处理器、DMA控制器、真随机数发生器等。

对于CMM,MCU,通过改写CMM中的控制寄存器,可以灵活地开启/关闭系统中每一个时钟区域的时钟。当微控制器根据系统的当前工作状态发现某个功能模块的处于空闲状态,并且在接下来的一段时间内这个模块仍无需参与工作,那么微控制器可以通过修改时钟管理模块的控制状态寄存器来关闭这个模块的时钟;当微控制器根据系统调度算法或者终端用户的请求而需要某个正处于时钟关闭状态的模块参与工作时(以下称时钟关闭状态为“挂起”),微控制器首先通过修改时钟管理模块的控制状态寄存器来打开此模块的时钟,然后再继续其对此模块的操作。

MCU wrapper的结构如图2所示。它包括:

一个MCU wrapper内部的控制寄存器组件2.1,它可以被MCU通过系统总线改写,而它的状态值控制了组件2.3的动作,进而实现开启/关闭MCU的时钟;

一个AHB总线控制器组件2.2,它不断采样MCU的输出控制信号,并将它转换成符合AHB总线协议的总线信号,同时它将操作结果返回给MCU;

一个控制MCU wrapper正常工作的有限状态机组件2.3,其状态转换反映了MCU的工作状态,因此它可以判断何时可以关闭/开启MCU的时钟而不会导致误动作,它的一个输出信号直接接到组件2.4的D端,进而实现MCU的时钟管理;

一个低电平有效的锁存器组件2.4,它的作用是保证在时钟的低电平时才有可能关闭时钟,从而避免可能出现的毛刺;

一个二输入与门组件2.5,它是关闭/开启时钟输出的功能部件。

对于MCU wrapper,它一方面作为MCU与系统总线AHB之间的连接桥路,即把MCU的接口信号时序转换成AHB接口时序,再接入系统总线AHB;另一方面也是一个AHB设备,MCU可以访问或修改MCU wrapper内部的控制寄存器——用来关闭MCU本身的时钟。若嵌入式软件发现在一段时间内MCU都无需参与运算或者控制,则可以通过写MCUwrapper中的控制寄存器迫使MCU本身挂起;当MCU被挂起之后,MCU wrapper开始监控中断请求信号;当中断信号来临,MCU wrapper重新开启MCU的时钟,使得MCU可以及时处理中断事务;当中断处理完成后,调度程序再查询系统的当前状态从而判断是否需要再次迫使MCU挂起。

从上述描述可以看出,本发明提出的这种DPM方法无需改动任何功能模块(如RSA/ECC协处理器、DMA控制器、USB控制器、TRNG等等),只需要额外的添加一个CMM和略微修改MCU wrapper即可实现。因此它非常适合基于标准单元库(standard celllibrary)的SoC设计。

本发明方法是一种信息安全SoC中基于门控时钟的动态功耗管理方法,它能极大地降低信息安全SoC的系统功耗。

附图说明

图1为时钟管理模块CMM的结构。

图2为MCU wrapper结构图。

图3为信息安全SoC的时钟区域划分图示。

图中标号:1.1为CMM的控制寄存器组件,1.2为低电平有效的锁存器组件,1.3为二输入与门组件,1.4为功能模块组件;2.1为MCU wrapper内部的控制存器组件,2.2为AHB总线控制器组件,2.3为有限状态机组件,2.4为低电平有效的锁存器组件,2.5为二输入与门组件;3.1为微控制器,3.2为PSA/ECC协处理器,3.3为DMA控制器,3.4为程序存储器模块,3.5为数据存储器模块,3.6为真随机数发生器模块,3.7为USB接口控制器模块,3.8为通用异步传输总线控制器模块,3.9为中断控制器,3.10为时钟管理模块,3.11为AHB到APB的桥。

具体实施方式

下面通过一个具体例子进一步描述本发明。

1、首先根据系统的工作过程将整个信息安全SoC系统划分成9个时钟区域(如图3所示)。其中8个阴影区域的时钟是软件可控的,8个时钟区域以外区域的时钟始终开启。下面将具体分析信息安全SoC中各个部件的时钟是否可以被纳入管理的范围。

部件3.1是信息安全SoC中的核心控制部件和运算部件:微控制器(或MCU),它和程序存储器(ROM)和数据存储器(SRAM)协同工作,一起完成数值运算任务;或者控制其它部件完成信息安全算法相关的任务。但是对于一些大批量传输数据任务,比如将数据存储器中的数据搬运到RSA/ECC协处理器的数据缓冲区中,MCU的处理效率会迅速下降。这时候需要DMA控制器来加速批量数据的传输任务。而在DMA控制器工作的过程中,MCU本身实际上仅仅在等待DMA搬运完所有数据,因此在DMA搬运数据期间,MCU可以选择关闭其时钟。鉴于此过程,本发明将MCU独立的划分到时钟区域1(以下简称区域1)。需要注意MCU wrapper没有被划入区域1,这主要是考虑它是完成MCU的时钟控制的模块,并且其电路规模也非常小(对整个电路的功耗贡献很小),让它的时钟始终保持开启状态可以提高电路的可靠性。

部件3.2是信息安全SoC的核心安全引擎:RSA/ECC协处理器,它包括协处理器微指令存储器和协处理器数据存储器,可完成签名/验证和加密/解密任务。由于只有在执行安全计算任务时它才需要参与工作,因此可以将RSA/ECC协处理器包括协处理器微指令存储器和协处理器数据存储器纳入时钟区域2(以下简称区域2)。

部件3.3是DMA控制器,它用来加速批量数据的搬运工作。与通常意义上的DMA控制器不同的是,本发明中的DMA控制器的工作完全由MCU控制完成。当调度程序发现需要搬运批量数据时,MCU首先告诉DMA控制器数据源和目的地址以及数据块的大小,然后再启动DMA控制器工作——在此之前DMA控制器不会申请系统总线。鉴于DMA控制器的工作过程及条件,本发明将DMA控制器纳入时钟区域3(以下简称区域3)。

部件3.6是真随机数发生器(True Random Number Generator,TRNG)模块,主要产生随机性能非常高的随机数供“安全计算任务”使用。信息安全SoC需要随机数的情况有两种:生成RSA公钥和私钥时;ECC签名时。信息安全SoC的工作方式决定了系统一旦获得有效的随机数,TRNG的任务就随之宣告完成。因此TRNG大部分时间都处于“休眠”状态,本发明将其纳入时钟区域6(以下简称区域6)。

部件3.4是程序存储器模块,用来存储信息安全SoC的嵌入式软件——调度程序、功能模块驱动程序和素性检测程序;另外还可以存放一些特定的数据。某些情况下DMA控制器也可以访问它,因此它不应该被直接纳入区域1或者区域3,而应该将它单独纳入一个独立的时钟区域4(以下简称区域4)。区域4还包括程序存储器桥。

部件3.5是数据存储器模块,它实际上是整个信息安全SoC的主存储器,它可以供MCU访问,也可以供DMA控制器访问。和程序存储器模块类似,本发明将其纳入单独的时钟区域5(以下简称区域5)。区域5还包括数据存储器桥。

部件3.7和部件3.8分别是USB接口控制器模块和通用异步收发(传输)(UniversalAsynchronous Receive Transfer,UART)总线控制器模块,它们是信息安全SoC的两个与外界通信的接口。当调度程序发现不需要它们工作时,便可以关闭它们的时钟。同样地,本发明将它们分别纳入两个独立的时钟区域:时钟区域7(以下简称区域7)和时钟区域8(以下简称区域8)。

部件3.9是中断控制器,由于它肩负着唤醒MCU的任务(发明内容部分描述了MCU休眠/唤醒的过程),加上其电路规模很小,因此本发明并不控制其时钟供给。

部件3.10是实现DPM的关键模块之一的时钟管理模块,由于规模很小,没有控制其时钟供给。

同样地,本发明也不控制AHB到APB桥模块11时钟供给。

2、其次描述调度程序的功耗管理过程

(1)初始化:

上电时,首先初始化两个对外接口USB和UART,然后初始化其他部件。由于信息安全SoC的功能主要是将外界传送进来的数据进行加密/解密或者签名/验证工作,因而系统各个模块初始化完成后,若MCU发现USB和UART没有接收到任何数据传输请求,则先关闭区域1(主控单元MCU)、区域7和区域8(对外接口电路USB和UART)之外的其它时钟区域的时钟,然后通过写控制字(即MCU总线桥中的控制寄存器)强迫MCU进入“休眠”状态,等待中断到来;若MCU发现USB或UART已经接收到外界的操作命令,则MCU继续其调度工作。

(2)素性检测:

当外界要求产生公钥/密钥对时,MCU首先打开区域6(TRNG)的时钟,然后再强迫MCU本身“休眠”,等待TRNG“数据缓冲区已满”的中断。当MCU被此中断唤醒之后,MCU开始检测TRNG生成的随机数,如果检测到符合要求的素数,再关闭区域6的时钟供给,MCU继续其调度任务(比如再进行其他计算或将计算结果保存起来等)。当整个检测完成之后,MCU再进入“休眠”状态,等待下一次中断。

(3)签名或验证:

当外界要求完成签名或验证任务时,MCU首先打开区域2(RSA/ECC协处理器)的时钟,然后把从对外接口(如USB、UART)接收到的数据传输到RSA/ECC协处理器的数据缓冲区。如果在传输速度没有限制的情况下,MCU本身就可以完成数据传输任务;如果要求高的传输速度,MCU需要打开区域3(DMA)的时钟,然后通知DMA需要搬运的数据块的首地址和数据块大小,再启动DMA并迫使MCU本身进入“休眠”状态,等待DMA搬运数据完成的中断信号。数据搬运完成之后,MCU再启动RSA/ECC协处理器工作,然后再进入“休眠”,等待RSA/ECC协处理器中断信号。当协处理器完成运算之后,MCU继续其调度任务。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号