APP下载

基于BP神经网络的CPU电压噪声预测

2018-12-15李亚光

电子设计工程 2018年23期
关键词:功能模块功耗噪声

李亚光

(1.中国科学院上海微系统与信息技术研究所,上海200050;2.上海科技大学信息与技术学院,上海201210;3.中国科学院大学北京100049)

随着现代CPU和SOC的集成度的增长,功耗密度已经成为了一个主要问题[1]。另一方面,为了降低功耗密度过大的问题,降低CPU供电电压已经成为了不可避免的趋势[2-3]。但是同时,由于低电压的趋势,晶体管安全工作的阈值电压范围开始变小[4]。这将导致潜在的电压噪声很有可能使晶体管工作在安全工作的阈值电压以下,从而引起CPU/功能模块的异常工作,这种情况被称为电压紧急情况(Voltage Emergency)[5-7]。因此,低电压的趋势使得,CPU电压噪声预测变的尤为重要。

传统的电压噪声预测,首先需要建立精细的CPU供电网络物理模型,然后进行RTL层面仿真。但是整个过程不仅涉及到复杂的物理建模,RTL层面仿真时计算复杂度也大[8]。另外,最近有一些基于片上电压传感器的电压噪声预测方法[9]:利用训练数据中体现出来的数据相关性的特性,提出了一种基于贝叶斯方法进行片上电压噪声预测的方法[5]。利用了CPU供电网络物理相关性的特性,提出了一种基于Group-lasso和SVM的机器学习式的电压噪声预测方法。这两种方法都基于片上电压传感器和电压噪声数据的相关性进行了CPU电压噪声的电压预测。

与此同时,神经网络近些年来在各个领域发挥着巨大的作用[10],例如在模式识别[11],自然语言处理[12-13]等领域。通过采集一定量的训练集和调节网络的参数结构,神经网络,如BP神经网络,卷积神经网络等,就能够有效的学习到数据中潜在的模型,从而进行相应功能的预测。本文探讨了利用神经网络进行CPU电压噪声预测的潜在可能性。区别于传统的方法,该方法一方面避免了CPU供电网络精细的物理建模过程,另一方面也减少传统RTL仿真的复杂度。区别于[5,9]本文使用的方法,并不需要利用片上电压传感器和电压噪声数据的相关性,而是利用神经网络的方式探讨了CPU功能模块功耗和CPU电压噪声预测之间的潜在可能性。

1 CPU供电电压网络分析

CPU的供电网络可以被建模成由RCL(电阻电容电阻)组成的网络[8],通常分为片下供电网络和片上供电网络,如图1所示。其中片下供电网络包括由PC板和封装引入的RCL成分。片上供电网络包括由封装与芯片互连和芯片供电网格引入的RCL成分。完成片上和片下的供电网络建模和调参之后,传统的电压噪声分析通过RTL层面仿真得到实际的电压噪声。但是事实上,在构建CPU的供电网络时,不仅需要构建相应的RCL结构(见图1),也需要反复调节参数,其模型才足够精确。另外在进行RTL层面仿真时,由于需要进行精细的仿真,因此其耗时也较大。

但是事实上,对于给定的CPU供电网络,其RCL参数都是特定的,事实上我们可以尝试利用神经网络来学习给定的CPU供电网络的RCL特性,从而避免CPU供电网路的复杂的物理建模过程。另一方面,如果神经网络已经学习到了给CPU供电网络的RCL特性,那么我们就可以通过给定一定的输入向量,让其进行CPU电压噪声的预测。具体来讲,我们可以通过合理地构建训练集(训练特征集和训练目标集),让神经网络学习CPU供电网络的特性,从而进行CPU供电网络的电压噪声预测。

图1 CPU的供电网络

通过对CPU由于CPU的供电网络只包含RCL成分,因此CPU/功能模块的瞬时功耗对CPU的供电网络的影响应有如下两个特点:

1)持续性:由于CPU供电网路中容性和感性器件(电容和电感)的存在,瞬时功耗引起的电压噪声不仅不会随着瞬时功耗的消失而立即消失,反而会持续一段时间。所以过去的瞬时功耗对当前的电压噪声有影响。

2)有限性:过去某个瞬时功耗对电压噪声的影响不会影响未来所有的电压噪声,如果时间间隔足够久,那么其影响应当降为零。所以虽然过去的瞬时功耗对当前的电压噪声有影响,但是并不是所有的过去瞬时功耗都对当前的电压噪声有影响。所以可以利用有限个过去和当前的瞬时功耗去预测当前的电压噪声。

基于对CPU电压传递网络特性的分析,即瞬时功耗对于电压噪声影响的持续性和有限性,我们可以将有限个过去和当前的瞬时功耗作为一个训练特征样本,将当前的电压噪声作为相应的训练目标样本,同时采集多组训练数据,以便于神经网络来学习CPU供电网络的特性,从而进行电压噪声预测。

2 BP神经网络

BP(Back Propagation)神经网络的结构一般包含输入层,隐含层和输出层,如图2所示。本文根据部分1的分析,构建了用于适合电压噪声预测的神经网络结构:由于当前的电压噪声不仅与当前的负载有关,还有过去的负载有关,所以本文尝试了4层的BP神经网络:输入层为N个节点,表示过去和当前的N个功耗;第一层隐含层为2N个节点;第二层隐含层为N个节点;输出层为1个节点,表示需要预测的当前电压噪声。显然模型的精度会受到N的影响,关于N的取值将在实验部分讨论。

图2 BP神经网络

3 数据获取和训练集构建

本文首先通过软件仿真获得原始的电压噪声数据,然后将原始数据转换成用于神经网络学习的训练集。

图3 设计的芯片和片上供电网络

原始数据获取包括系统层面的仿真,CPU/功能模块的功耗仿真和RTL级Spice电压噪声仿真。第一步:本文通过系统级Gem5[14]仿真软件,以CPU2006[15]中部分程序作为测试程序,获得了程序运行时在X86架构下CPU的系统层面参数。Gem5详细配置如表1所示。第二步,将系统运行时的系统层面参数作为输入,利用McPAT[16]软件仿真,获得了CPU/功能模块的实际功耗。第三步,根据得到的实际功耗,利用由[17]中修改的电压供电网络,通过Spice仿真获得了CPU电压供电网络的实际电压噪声,仿真间隔为10 ns。软件平台基于Ubuntu,i7-4790U,32G。本文仿真的CPU共包含24个功能模块,总面积为17.91 mm2,如图3中左图所示。片上的供电网络为32 nm工艺下的5层供电网格,如图3中右图所示。实验中选取了部分具有代表性的供电网格点的功耗值作为训练特征集和Spice仿真电压作为训练目标集,并以此来完成BP神经网络的训练和预测。

表1 Gem5配置文件

本文将原始数据获取部分第二步中获得的CPU/功能模块的过去和当前的N个功耗数据作为一个训练特征样本,并且取M个样本数据作为一个训练特征集,如公式(1)中X矩阵,其中每一行代表一个训练样本,共M行。为了加速神经网络的训练速度,我们将第三步中获得电压噪声,以1 μs为一个时间间隔(即Spice中仿真数据每100个点为一个时间间隔),取该时间间隔中,电压噪声最大点作为一个电压噪声的训练目标,即该时间间隔中最坏情况的电压噪声作为训练目标,如图4所示。并取M个与相应训练特征对应的训练目标,如公式(2)所示,其中电压噪声定义为供电电压与实际电压的差值。本文在Matlab中实现了用于电压噪声预测的BP神经网络。为了避免过拟合,本文用在实验时,采用了5-fold交叉验证。

图4 电压噪声与训练特征的产生

4 实验结果

图5 训练结果样本

图5显示了神经网络预测所得的部分预测结果样本。从图片中可以发现,随着N的增加预测电压曲线与实际电压曲线越来越接近。

图6展示了基于神经网络模型电压噪声预测的准确度。当N=1时,电压噪声预测的绝对误差为16.9 mV,相对误差为10.3%。随着N的逐渐增加,模型的准确度有所增加,但是当N大于10之后,模型的准确度的增加程度变得平缓。当N=15时,电压噪声预测的绝对误差(见公式(3),其中k表示用于验证的数据集的样本数目)为3.9 mV,相对误差(见公式(4))为5.5%。可见,增加N的数量确实对于CPU的电压噪声预测有帮助,并且利用BP神经网络能够准确的完成CPU的电压噪声预测。

图6 模型准确度

5 结 论

低电压趋势,使得由电压噪声可能造成的电压紧急情况变的尤为突出,因此CPU电压噪声预测很重要。与传统的方法相比,本文中提到的基于BP神经网络的电压噪声预测方法,一方面不仅可以避免精细的物理建模过程,另一方面还可以减少RTL层面仿真的复杂度。数据实验结果表明,BP神经网络完成的电压噪声预测能够达到绝对误差为3.9 mV,相对误差为5.5%的准确预测。

猜你喜欢

功能模块功耗噪声
基于任务映射的暗硅芯片功耗预算方法
噪声可退化且依赖于状态和分布的平均场博弈
控制噪声有妙法
揭开GPU功耗的面纱
基于ASP.NET标准的采购管理系统研究
数字电路功耗的分析及优化
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
IGBT模型优化及其在Buck变换器中的功耗分析
功能模块的设计与应用研究