一种面向异构众核芯片的量化功耗控制方法_2

文档序号:9726918阅读:来源:国知局
随的优点和特征,其中:
[0035]图I示意性地示出了根据本发明优选实施例的面向异构众核芯片的量化功耗控制方法的流程图。
[0036]图2示意性地示出了根据本发明优选实施例采取的管理流程的流程图。
[0037]需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
【具体实施方式】
[0038]为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
[0039]目前,现有技术的异构众核处理器一般都是基于超时机制、采用定性的状态切换来管理功耗,而且主要管理资源在非工作状态下的功耗。这种方法属于非精确、粗放式的被动功耗管理模式,不能解决芯片运行工作负载时的量化功耗管理问题,功耗管理的时间开销也很大,不但带来一定功耗浪费,而且也不能应对因为功耗变化带来的芯片稳定性问题。
[0040]本发明通过硬件传感器方法敏捷感知实时功耗水平,结合软件决策、寄存器控制和中断处理机制,通过精细、量化的功耗控制管理方法,能快速将芯片控制在可稳定运行的功耗水平,在保持芯片对应用需求高响应度的情况下最小化芯片的功耗,从而减少传统定性功耗控制的功耗损失,缓解极限使用模式下的稳定性问题,并提升由此类芯片所构成的系统的稳定性。
[0041]本发明提出的面向异构众核芯片的量化功耗控制方法,基于硬件提供相关的功耗传感器、配置与控制寄存器等支持下,一方面在异构众核芯片的操作系统内完成主要的功耗管理过程,将定时心跳检测机制改为由硬件功耗预警中断触发,可大幅降低功耗管理的开销,提高功耗控制的效率;另一方面,借助量化的功耗传感器、相关配置寄存器和训练获得的基准功耗数据,可进行比较精确、量化、快速的功耗管理。
[0042]下面将结合附图I的流程图来描述本发明的具体实施例。
[0043]图I示意性地示出了根据本发明优选实施例的面向异构众核芯片的量化功耗控制方法的流程图。
[0044]如图I所示,根据本发明优选实施例的面向异构众核芯片的量化功耗控制方法包括:
[0045]第一步骤SI、通过测试以及训练机制获取异构众核芯片在每种状态下的基准功耗数据,建立外部的基础功耗数据表;
[0046]例如,基础功耗数据表中的基准功耗数据包括:①最大稳定运行功耗(MAX_POWER)、②全片空闲功耗(IDLE_P0WER)、③从核睡眠功耗(SSLEEP_P0WER)、④全片睡眠功耗(SLEEP_P0WER)。基于CPU的工作状态,这些基准功耗将满足如下的大小关系:MAX_P0WER>IDLE_P0ffER>SSLEEP_P0ffER>SLEEP_P0ffERo
[0047]第二步骤S2、通过测试以及训练机制获取异构众核芯片所支持的所有稳定运行频率的频率档次表(FREQ1 · ·-FREQi · · -FREQn),建立外部的频率档次表;而且针对所有稳定运行频率建立不同频率下运行相同应用代码的芯片功耗存在关系,其中,若FREQl>FREQi>FREQn,则P0WER_FREQl>P0WER_FREQi>P0WER_FREQn,即频率越高,功耗越大,并且最低频率档次工作功耗一定小于最大稳定运行功耗,即满足P0WER_FREQn〈MAX_P0WER。
[0048]第三步骤S3、建立芯片的功耗管理策略作为功耗管理的依据;
[0049]例如,功耗管理策略可包括:①超过最大稳定运行功耗时,优先降频以确保稳定性;②在控制降低功耗时,优先采用渐进式的功耗管理策略,逐步节能;③空闲时优先使用低开销的从核离线机制。
[0050]第四步骤S4、众核操作系统启动后,即进入空闲状态(IDLE),将功耗阈值寄存器(P0WER_C0NF_REG)、功耗预警寄存器(P0WER_WRN_REG)均初始化为最大稳定运行功耗(MAX_POWER)ο
[0051 ]第五步骤S5、众核芯片操作系统运行时,外部功耗管理系统启动功耗管理过程,将基础功耗表、频率档次表、功耗管理策略等通知到各异构众核芯片的操作系统中。
[0052]第六步骤S6、外部功耗管理系统接收异构众核芯片操作系统的睡眠通知,并在有工作负载需要执行,且当前处于空闲状态和从核睡眠状态的资源数量无法满足需求,必须唤醒一些处于睡眠状态的资源时,唤醒满足需求数量处于睡眠状态(SLEEP)的资源,否则忽略。
[0053]第七步骤S7、异构众核芯片操作系统在运行期间判断芯片工作状态,结合芯片中断处理和预定义的功耗管理策略进行相应的管理流程。
[0054]如图2所示,管理流程中的功耗管理手段具体可包括下述步骤:
[0055]第八步骤S8、若芯片当前处于忙状态(BUSY),则根据实时功耗(N0W_P0WER)是否超过最大稳定运行功耗(MAX_P0WER)来分别执行相应的功耗管理流程。
[0056]第九步骤S9、若处理器实时功耗大于功耗阈值寄存器中配置的数值(即N0W_P0WER>MAX_P0WER),则处理器自动产生发向主核的预警中断信号,并给功耗预警寄存器(P0WER_WRN_REG)jjpio
[0057]第十步骤S10、操作系统被该预警信号中断,在中断处理程序内,确认N0W_P0WER>MAX_P0ffER,说明出现了功耗过载情况,首要策略是保护芯片稳定,在操作系统内将芯片的工作频率降低一档以降低功耗(此时,芯片状态只可能为忙状态(BUSY),当频率降低到最低档时,一定满足N0W_P0WER〈MAX_P0WER),返回第七步骤S7,若在中断处理内判断到N0W_P0WER<=MAX_P0WER,则说明是瞬间偶发情况,不处理,转第七步骤S7。
[0058]第十一步骤S11、若处理器实时功耗不大于功耗阈值寄存器中配置的数值(S卩N0W_P0WER<=MAX_P0WER),则不产生中断,操作系统不进行任何功耗修正,转第七步骤S7。
[0059]第十二步骤S12、若当前工作负载结束资源释放,则操作系统将芯片的主频修改为正常工作频率,并将状态设置为空闲状态(IDLE),芯片进入空闲状态(IDLE),等待新的工作负载,转第七步骤S7。
[0060]第十三步骤S13、若芯片当前处于空闲状态(IDLE),根据当前是否有工作负载需要执行,分别执行不同的功耗管理流程。
[0061]第十四步骤S14、若没有负载需要执行,则操作系统控制睡眠芯片的所有从核,进入从核睡眠状态(SSLEEP),转第七步骤S7;若有负载需要执行,则操作系统将芯片状态登记为忙状态(BUSY),加载并启动任务执行,转第七步骤S7。
[0062]第十五步骤S15、若芯片当前处于从核睡眠状态(SSLEEP),判断是否有工作负载需要执行,根据情况调度芯片工作状态。
[0063]第十六步骤S16、若有工作负载需要执行,则OS唤醒芯片的从核,将芯片恢复到正常的空闲状态(IDLE),加载并执行工作负载,将芯片状态登记为忙状态(BUSY),转第七步骤S7。若无工作负载需要执行,判断处于该状态下的时间超过预定义的超时时间,则通知外部功耗管理系统将本芯片的状态修改为睡眠装填状态(SLEEP),将本芯片切换到睡眠状态,转第六步骤S6;否则,如果无工作负载需要执行、而且处于该状态下的时间未超过预定义的超时时间,则不处理,转第七步骤S7。
[0064]第十七步骤S17、若芯片状态处于睡眠装填状态(SLEEP),并且有资源使用需求,则由外部功耗管理系统通过魔包唤醒该资源,恢复状态到正常的空闲状态(IDLE),加载并执行工作负载,将状态登记为忙状态(BUSY),转第七步骤7;若无资源使用需求,则忽略,转第六步骤S6。
[0065]从上述步骤可以发现,其中步骤S8-12为正在执行工作负载的芯片提供了一种快速的功耗管理手段,由处理器中断机制触发进入管理流程,应用了量化的功耗感知数据信息,与超时机制相比响应度大大提高,量化管理的精确度也更高。步骤S13-14将处于IDLE态且没有使用需求的资源立即切换到SSLEEP状态,相比传统方法,没有经过外部感知、外部决策、外部通知等过程,开销极低(一般在用户无感知的微秒级)。
[0066]采用根据本发明的新型功耗管理技术对异构众核芯片进行按需、快速、更加精细化的功耗管理,可以有效避免现有技术中存在的技术问题,在现实的高性能应用中具有重要意义。
[0067]为了便于更好地理解本发明,下面将对本文中使用的术语进行简要的解释:
[006
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1