一种表征微控制器内核工作负载情况的方法

文档序号:6402143阅读:203来源:国知局
专利名称:一种表征微控制器内核工作负载情况的方法
技术领域
本发明属于嵌入式系统技术领域,尤其涉及一种表征微控制器内核工作负载情况的方法。
背景技术
一个基于ARM内核典型的动态指令的使用率中,数据移动的动态使用率为43%,控制流为23%,其他的一些如,算术操作,比较,逻辑操作之类的指令占到动态使用率的34%,算术逻辑单元(ALU)是计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。可见,在ARM内核中,ALU指令的动态使用率只占数据移动和控制流指令总和的一半。因为ALU指令的操作会涉及到大量逻辑门的工作,所以动态功耗会远远大于数据移动和控制流指令所消耗的动态功耗,对于基于ARM内核的芯片来说,只有在34%的事件里,即1/3的时间内,其动态功耗才能达到峰值,内核工作负载变大,在其它2/3时间内,ARM ALU都处在低工作负载下,即ARM内核工作负载不高。为了检测微控制器的工作负载,即可以检测微控制器内核ALU模块的温度,因为ALU工作会涉及到大量晶体管工作,晶体管频繁翻转就会提高硅片的温度,所以用温度检测器来检测ALU是否繁忙是一种常规的物理方法。如图一所示,对于一个多内核系统,一个内核对应一个ALU和一个检测其温度的温度检测器,在ALU处于繁忙状态时有大量电流通过,温度升高。温度检测器用来检测ALU的具体温度,其两种判断方法如下:一种是给定一个绝对温度,高于绝对温度代表ALU工作负载大,反之则表征ALU工作负载小。如图一,若温度检测器I检测到的温度达到给定的绝对温 度,说明ALUl处于繁忙状态,微控制器内核I处于高工作负载状态下,反之,若温度检测器检测到的温度未达到此绝对温度,说明ALU处于非繁忙状态,微控制器内核I处于非高工作负载状态下。另一种使用温度变化率K进行判定的,K为控制器在一定时间内(AT)温度的变化(Atemp)率,即K等于Λ temp/Λ T。K值越大,即在短时间内温度升高越快,说明ALU越繁忙;反之说明ALU处于非繁忙状态。图2是ALU工作时的温度和时间关系示意图。如图2所示,如果Kl > Κ2,则说明在Kl所处的时间内ALU比在Κ2所处的时间内要繁忙。然而这两种方法的检测结果并不尽如人意。就第一种方法而言,如果芯片所处环境温度很高,已经接近预定的绝对温度,就算温度检测器检测到预定的绝对温度,也不说明微控制器内核处于高工作负载状态。而对于第二种方法,假设斜率Kl等于Κ2,温度检测器在Κ2检测到的温度达到预设的绝对温度,而在Kl时检测到的温度并没有达到预设的绝对温度。由于Kl等于Κ2,此种情况会误认为在Kl时间处已经达到绝对温度,这样就会在判断ALU是否处于高工作负载状态时出现偏差。同时此物理方法结构增加了温度检测器模块,增大了芯片面积。

发明内容
本发明克服了现有技术中需要采用物理方案表征微控制器内核工作负载,且增大芯片面积等缺陷,提出了一种表征微控制器内核工作负载情况的方法。本发明提出了一种表征微控制器内核工作负载情况的方法,包括:步骤一:在所述微控制器中设置一个标志位,所述标志位用于表征所述微控制器内核工作负载状态;步骤二:根据程序段对于所述微控制器内核的访问量在程序段中设置标志位数据;步骤三:所述微控制器内核运行在执行所述程序段时,根据所述程序段的标志位数据改变所述标志位,以标识所述微控制器内核工作负载为低负载状态或高负载状态;步骤四:在所述微控制器执行完所述程序段之后恢复所述标志位。其中,所述标志位与所述微控制器内核的输出管脚连接,通过所述输出管脚输出高电平信号或低电平信号以表不所述标志位。本发明用纯粹的软件方法来表征微控制器内核工作负载状态,不涉及任何物理方案,有效减小了芯片面积,且明确何时标志位应该被置起及何时应该被清零,解决了物理方法不易控制的问题。


图1表示用温度传感器判断算术逻辑单元是否处于高工作负载状态的结构示意图。图2表示算术逻辑单元工作的温度和时间关系示意图。图3表示表征微控制器内核工作负载情况的方法的流程图。图4表不一实施例中以软件方式表征微控制器内核工作负载情况的不意图。图5表不图4相应的微控制器工作负载状态标志位信号波形图。
具体实施例方式结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。图3显示的是表征微控制器内核工作负载情况的方法的流程,本发明的表征微控制器内核工作负载情况的方法包括以下步骤:步骤一:在微控制器中设置一个标志位,标志位用于表征微控制器内核工作负载状态。在微控制器中将标志位与一个输出管脚连接,输出管脚的输出信号表不该标志位为“I,,或“O,,。步骤二:根据程序段对于微控制器内核的访问量在程序段中设置标志位数据;步骤三:微控制器内核运行在执行程序段时,根据程序段的标志位数据改变标志位,以标识微控制器内核工作负载为低负载状态或高负载状态;步骤四:在微控制器执行完程序段之后恢复标志位。图4显示的是一段编写的应用程序段,其中,A和B、C和D之间表示算术逻辑单元模块ALU被大量访问的程序段,其标志位数据为“ I ”,E和F表示ALU被小量访问或不被访问的程序段,其标志位数据为“O”。本发明实施过程中,在微控制器内核不运行程序段时,默认标志位的初始状态为“O”,即微控制器内核处于低负载状态。在运行ALU被大量访问程序段(A和B之间,或C和D之间)之前改变标志位,即在A或C之前微控制器内核的输出管脚输出高电平信号,即表不标志位为“1”,表征此时ALU将被大量访问,同时表征此时微控制器内核将处于高工作负载状态。在ALU被大量访问程序段(A和B之间,或C和D之间)之后恢复标志位,即在B或D之后微控制器内核的输出管脚输出低电平信号,即表不此标志位已被恢复为“O”,来表示此时的ALU由繁忙状态转变为非繁忙状态。E和F之间的程序段不会大量访问ALU模块,所以微控制器内核运行该程序段时工作负载为低负载状态。根据E与F之间程序段的标志位数据“O”改变微控制器的标志位为并在结束运行后标志位恢复至默认状态,等同于E与F前后均不改变标志位。以上步骤可表征微控制器内核工作负载情况。图5显示的是上述实施例过程中微控制器工作负载状态标志位信号波形图,可见当此信号为高电平状态时(A和B程序段之间;(:和0程序段之间),表征微控制器内核处在高工作负载状态下,当此信号为低电平状态时(诸如E和F程序段之间),表征微控制器内核处在低工作负载状态下。实施本发明过程中,还可以调整高电平状态与低电平状态的表征关系,例如以标志位为“I”表征微控制器内核处在低工作负载状态下,标志位为“O”表征微控制器内核处在高工作负载状态下。综上,本发明实施例通过在微控制器内核的应用程序中插入负荷标识,从而可在微控制器内核运行过程中方便的检测其工作负载状态,且检测结果准确,不受应用环境的任何影响,同时不需在芯片上设置额外的器件(例如温度测量装置等),有效减小了芯片面积。本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在 本发明中,并且以所附的权利要求书为保护范围。
权利要求
1.一种表征微控制器内核工作负载情况的方法,其特征在于,包括: 步骤一:在所述微控制器中设置一个标志位,所述标志位用于表征所述微控制器内核工作负载状态; 步骤二:根据程序段对于所述微控制器内核的访问量在程序段中设置标志位数据;步骤三:所述微控制器内核运行在执行所述程序段时,根据所述程序段的标志位数据改变所述标志位,以标识所述微控制器内核工作负载为低负载状态或高负载状态; 步骤四:在所述微控制器执行完所述程序段之后恢复所述标志位。
2.如权利要求1所述的表征微控制器内核工作负载情况的方法,其特征在于,所述标志位与所述微控制器内核的输出管脚连接,通过所述输出管脚输出高电平信号或低电平信号以表示所述 标志位。
全文摘要
本发明公开了一种表征微控制器内核工作负载情况的方法,包括在所述微控制器中设置一个标志位;根据程序段对于所述微控制器内核的访问量在程序段中设置标志位数据;所述微控制器内核运行在执行所述程序段时,根据所述程序段的标志位数据改变所述标志位;在所述微控制器执行完所述程序段之后恢复所述标志位。本发明采用微控制器内的标志位表征微控制器内核工作负载情况,不附加采用物理方案表征微控制器内核工作负载,减小了芯片的表面积。
文档编号G06F11/32GK103226508SQ201310134229
公开日2013年7月31日 申请日期2013年4月17日 优先权日2013年4月17日
发明者景蔚亮 申请人:上海新储集成电路有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1