芯片上系统(SOC)的功耗评估方法、实施该方法的系统与流程

文档序号:12305604阅读:449来源:国知局
芯片上系统(SOC)的功耗评估方法、实施该方法的系统与流程

本发明的实施例一般地涉及半导体技术领域,更具体地,涉及功率评估方法及系统。



背景技术:

芯片上系统包括连接在一起执行功能的多个不同的子块(sub-block)。至少一个子块设计为执行与soc的另一子块不同的功能。在soc涉及工艺期间,为了执行期望的功能而多个设计子块。在一些示例中,多个子块设计称为知识产权(ip,intellectualproperty)块或单元设计。这些ip块或单元设计存储在单元库中以在soc设计工艺期间为设计者所用。

通常将用于ip块的功耗分为两类。功率状态类别包括具有基于ip块的功率状态的功耗的ip块。例如,在操作模式期间,ip块将消耗第一数量的功率,而在睡眠模式期间,ip块将消耗不同数量的功率。用于功率状态(powerstate)类别中的ip块的功耗通常独立于soc中的其他ip块的操作。

可编程处理器类别包括具有基于由ip块所执行的特定程序的功耗的ip块。例如,在操作状态期间,ip块执行第一程序并且具有第一功耗,而在操作状态期间,执行第二程序的同一ip块具有不同的功耗。可编程处理器类别内的ip块的功耗取决于soc的多种功率状态。



技术实现要素:

根据本发明的一方面,提供了一种评估芯片上系统(soc)的功耗的方法,所述方法包括:模拟所述芯片上系统的第一子块的操作以获得所述第一子块的功耗信息,其中,所述第一子块的功耗信息包括定位在所述第一子块中的第一ip(知识产权)块的第一激活信息;模拟所述芯片上系统的第二子块的操作以获得所述第二子块的功耗信息,其中,所述第二子块的功耗信息包括所述第一ip块的第二激活信息和定位在所述第二子块中的多个第二ip块的激活信息;确定所述第一ip块的第一激活信息、所述第一ip块的第二激活信息和所述多个第二ip块的每一个第二ip块的激活信息中的每一个的权重因数;以及基于所述第一ip块的第一激活信息、所述第一ip块的第二激活信息和所述多个第二ip块的至少一个第二ip块的激活信息、以及对应的权重因数来评估所述芯片上系统的功耗。

根据本发明的另一方面,提供了一种评估芯片上系统(soc)的功耗的方法,所述方法包括:模拟所述芯片上系统的第一子块的操作以获得所述第一子块的功耗信息,其中,所述第一子块的功耗信息包括定位在所述第一子块中的第一ip(知识产权)块的第一激活信息;模拟所述芯片上系统的第二子块的操作以获得所述第二子块的功耗信息,其中,所述第二子块的功耗信息包括所述第一ip块的第二激活信息和定位在所述第二子块中的多个第二ip块的第一激活信息,并且所述第一子块的功耗信息还包括所述多个第二ip块的第二激活信息;确定所述第一ip块的第一激活信息、所述第一ip块的第二激活信息、所述多个第二ip块中的每一个第二ip块的第一激活信息和所述多个第二ip块中的每一个第二ip块的第二激活信息中的每一个的权重因数;从所述第一ip块和所述多个第二ip块中去掉具有低于阈值的权重因数的ip块以确定剩余的ip块的组;以及基于所述剩余的ip块的组和对应的权重因数来评估所述芯片上系统的功耗。

根据本发明的又一方面,提供了一种评估芯片上系统(soc)的功耗的系统,所述系统包括:至少一个处理器;以及计算机可读介质,连接至至少一个处理器,其中,所述至少一个处理器配置为执行存储在所述计算机可读介质上的指令以:模拟所述芯片上系统的第一子块的操作来获得所述第一子块的功耗信息,其中,所述第一子块的功耗信息包括定位在所述第一子块中的第一ip(知识产权)块的第一激活信息;模拟所述芯片上系统的第二子块的操作来获得所述第二子块的功耗信息,其中,所述第二子块的功耗信息包括所述第一ip块的第二激活信息和定位在所述第二子块中的多个第二ip块的激活信息;确定所述第一ip块的第一激活信息、所述第一ip块的第二激活信息和所述多个第二ip块的每一个第二ip块的激活信息中的每一个的权重因数;以及基于所述第一ip块的第一激活信息、所述第一ip块的第二激活信息和所述多个第二ip块的至少一个第二ip块的激活信息、以及对应的权重因数来评估所述芯片上系统的功耗。

附图说明

当结合附图进行阅读时,根据下面详细的描述可以最好地理解本发明的各个方面。应该注意,根据工业中的标准实践,各种部件没有被按比例绘制。实际上,为了清楚的讨论,各种部件的尺寸可以被任意增加或减少。

图1是根据一些实施例的评估芯片上系统(soc)的功耗的方法的流程图。

图2是根据一些实施例的在图1的方法期间所使用的指示信息和计算的soc的框图。

图3a至图3e是根据一些实施例的在子块的模拟期间用于soc的活动计数器权重的图表。

图4是根据一些实施例的用于实施评估soc的功耗的方法的系统的框图。

图5是根据一些实施例的包括soc和电池的器件的示图。

具体实施方式

以下公开内容提供了许多不同实施例或实例,用于实现所提供主题的不同特征。以下将描述组件和布置的具体实例以简化本发明。当然,这些仅是实例并且不意欲限制本发明。例如,在以下描述中,在第二部件上方或上形成第一部件可以包括第一部件和第二部件形成为直接接触的实施例,也可以包括在第一部件和第二部件之间形成附加部件使得第一部件和第二部件不直接接触的实施例。而且,本发明在各个实例中可以重复参考数字和/或字母。这种重复仅是为了简明和清楚,其自身并不表示所论述的各个实施例和/或配置之间的关系。

评估soc的功耗有助于确定soc是否满足功率预算约束或有助于确定器件的电池的存储容量。在许多器件中,电池的尺寸是确定整体器件的尺寸的主要组件。另外,消费者喜欢更长的电池寿命以最大化器件的效用。精确地确定soc的功耗有助于设计者平衡更小的器件尺寸的需求,同时最大化器件的电池使用寿命。

在更多情形中,因为独立于特定程序的操作或soc设计内的不同ip块之间的互动来确定功耗,所以可预测soc内的功率状态ip块的功耗。然而,因为功耗随着正在被执行的特定程序以及随着soc设计内的不同ip块之间的互动而变化,所以更加难以确定可编程处理器ip块的功耗。

除了精确确定功耗之外,评估功耗的速度有助于降低器件的构想和器件的生产之间的时间的量。一旦产生了器件构思,就设计器件以满足期望的功能目标。该设计工艺的一部分包括确定用于器件的功率预算以用作期望数量的时间的目的。通过对于器件的功耗评估来确定功率的量(功率预算)。在一些示例中,功耗估计不能使人满意,并且修改器件的设计以改变器件的功耗。在一些实施例中,修改器件设计包括修改soc。在一些实施例中,修改器件设计包括调整器件中的电池的存储容量。在一些情况中,该功耗评估和设计修改循环重复多次。与具有更长的循环时间的设计工艺相比,减少每一次循环的时间的数量将有助于更快的开始器件的生产。

在一些实施例中,通过使用活动计数器来模拟soc的子块内的动作的数量以评估功耗。在一些实施例中,子块包括一个ip块。在一些实施例中,子块包括多个ip块。在soc的操作的模拟期间,活动计数器统计子块的特定部分的激活(activations)的数量。在一些实施例中,通过结合激活的数量与每一次激活所消耗的的功率的量,确定子块的评估的功耗。

图1是根据一些实施例的评估芯片上系统(soc)的功耗的方法100的流程图。在操作102中,选择soc的每一个子块内的所有的活动计数器。选择活动计数器意味着在soc或子块的模拟期间考虑活动计数器。在soc的每一个子块中选择活动计数器以提供soc的功耗的精确的评估。在一些示例中,soc的一个子块内的ip块的激活将导致soc的分离的子块中的功耗。例如,如果第一子块从第二子块中的存储器读取数据,则第一子块和第二子块这两者都消耗功率。在未考虑每一个子块中的活动计数器的方法中,源自于分离的子块的激活的功耗未包括在评估中并且增加了评估与实际功耗之间的误差。

功耗评估中的低精确度可能会导致soc或电池的过度设计(overdesign)。例如,如果已知评估具有高误差,则设计者将选择用于考虑误差的器件的电池尺寸。为了有助于确保适当地运行器件,设计者将选择比已知误差大的电池尺寸以考虑功耗评估中的附加的未知误差。在一些示例中,功耗评估中的低精确度可能增加构思和产品之间的时间的量,这是因为设计者不能够清楚地识别执行不同程序时功率是soc消耗在那里。在这种情形下,设计者将花费时间以试图优化soc中的对soc的整体功耗有一点影响或没有影响的部分。

在操作104中,使用模拟工具来对soc执行功耗模拟。模拟工具是配置为执行用于确定由soc的操作所消耗的功率的量的指令的专用计算机。基于通过将多个子块内的每一个活动计数器乘以每一个活动计数器的权重因数所确定的激活的数量来确定功耗。权重因数考虑与特定活动计数器相关联的ip块的激活期间的相对功耗。在一些实施例中,基于通过多个子块内的并非全部活动计数器所确定的活动的数量来确定功耗。例如,在一些实施例中,在功耗模拟期间将考虑一个子块中的第一活动计数器,同时在功耗模拟期间不考虑同一子块内的第二活动计数器。在一些实施例中,模拟中的多个子块为所有子块。在一些实施例中,模拟中的多个子块少于所有子块。例如,在一些实施例中,在功耗模拟期间考虑特定子块内的非全部活动计数器。

在操作106中,对于多个子块,确定用于soc内的每一个ip块的权重因数。基于由对应的活动计数器所记录的激活的数量和由与对应的活动计数器相关联的ip块的每一个激活消耗的功率的量来确定权重因数。以下的图3a至图3e中提供了包括用于活动计数器的权重因数的图表的实例。

在可选操作108中,从功耗评估中去除具有低于阈值的权重因数的ip块。从功耗评估中去除对于整体功耗评估具有较少影响的活动计数器有助于增加确定soc的功耗评估的速度。然而,从功耗评估中去除对于整体评估具有较少影响的活动计数器降低了功耗评估的精确度。

精确度降低的程度和评估的速度增加的程度与阈值的值有关。更高的阈值具有更低程度的精确度和更高程度的评估速度。更低的阈值具有更高程度的精确度和更低程度的评估速度。在一些实施例中,由设计值选择阈值。在一些实施例中,基于从设计者接收的可接受的误差,通过模拟工具推荐阈值。在一些实施例中,对于soc的每一个子块,阈值为相同的值。在一些实施例中,用于soc的一个子块的阈值与用于soc的至少一个其他的子块的阈值不同。可接受的误差为soc的功耗评估与实际功耗之间的可接受的差值。选择可接受的误差以提供soc的设计中的灵活性,从而降低soc的设计期间消耗的时间的量和/或有助于避免soc的过度设计。在一些实施例中,可接受的误差称为预定误差值。

在一些实施例中,省略可选操作108。如果期望功耗估计的最高程度的精确度,则省略可选操作108。在一些实施例中,对于一个子块省略操作108,而对于另一子块使用该操作。如果省略可选操作108,则方法100从操作106进行至操作110。

在可选操作110中,基于权重因数来对ip块进行排序。对ip块进行排序有助于设计者识别soc的哪些部分对功耗具有最大的影响。通过识别soc的哪些部分对功耗具有最大的影响,设计者能够致力于降低对soc整体具有最大影响的ip块的功耗。在一些实施例中,排序的ip块存储在表中。在一些实施例中,对于设计者显示排序的ip块。在一些实施例中,在提供给设计者的设计中突出排序的ip块。

在一些实施例中,省略可选操作110。在一些实施例中,如果设计者指定,则省略可选操作110。在一些实施例中,对于一个子块省略操作110,而对于另一子块使用该操作。如果省略可选操作110,则方法100从操作108进行至操作112。如果省略可选操作108和可选操作110这两者,则方法100从操作106进行至操作112。

在操作112中,确定soc功耗评估。基于每一个子块中的每一个ip块的功耗评估乘以对应的权重因数所得结果的和来确定soc的功耗评估。权重因数有助于考虑不同ip块之间的相对功耗。例如,如果一个ip块消耗的功率是另一ip块消耗的功率的两倍,则确定soc的功耗时将这两个ip块同等对待将降低soc的功耗评估的精确度。在一些实施例中,通过以下公式提供soc的功耗评估:

其中,pesoc为soc的功耗评估,c为由对应的活动计数器确定的ip块的激活的数量,w为对应的ip块的权重因数,j表示识别子块内的计数器的数量,k和l表示识别特定子块的数量,以及ksoc为不考虑ip块的激活的数量的soc的功耗的固有量。上述公式中的两个求和指示在功耗的评估期间考虑两个子块内的每一个活动计数器的功耗。在一些实施例中,随着soc中的子块的数量增加,包括附加的求和。

在其中方法100包括操作108的一些实施例中,在soc的功耗的评估期间,不会考虑所有的ip块。在其中方法100包括操作108的一些实施例中,在soc的功耗的评估期间,不会考虑所有的子块。

存储soc的功耗评估的结果以与其他功耗评估相比较。在一些实施例中,将第一soc的功耗评估的结果与第二soc的功耗评估的结果相比较,以执行与第一soc相同的功能但是具有不同架构。在一些实施例中,将soc的功耗评估的结果存储在模拟工具内。在一些实施例中,将功耗评估的结果存储在由模拟工具访问的计算机可读介质中。

在可选操作114中,确定选择的子块的功耗评估。基于每一个子块中的每一个ip块的功耗评估乘以对应的权重因数所得结果的和来确定选择的子块的功耗评估。用于确定子块的功耗的公式与用于确定soc的功耗的公式类似;然而,在一些实施例中,功耗的固有量不同和/或与特定活动计数器相关联的权重因数不同。在一些实施例中,通过以下公式提供子块的功耗评估:

其中,pesb为子块的功耗评估,c为子块内的ip块的激活的数量,w为对应的ip块的权重因数,j表示识别子块内的计数器的数量,k和l表示识别特定子块的数量,以及kk为不考虑激活的数量的子块的功耗的固有量。上述公式中的两个求和指示在功耗的评估期间考虑两个子块内的每一个活动计数器的功耗。在一些实施例中,随着soc中的子块的数量增加,包括附加的求和。

使用与评估soc的功耗相同的策略来评估每一个子块的功耗。考虑每一个子块中的ip块的激活。评估子块的功耗与soc的功耗之间的差值基于权重因数。对于其中子块内出现大部分功耗的子块,即,分离的子块中的功耗最低,对于内部ip块的权重因数将会较大。然而,对于soc,相同的子块可以仅仅为功耗的微弱来源,因此对于soc,用于相同的内部ip块的权重因数将低于子块。

存储子块的功耗评估的结果以确定soc的功耗评估。在一些实施例中,将第一子块的功耗评估的结果与第二子块的功耗评估的结果相比较,以实现与第一子块相同的功能但是具有不同架构。比较用于不同子块的功耗评估有助于设计者确定利用另一子块替换一个子块是否会改善soc的功耗。在一些实施例中,将子块的功耗评估的结果存储在模拟工具内。在一些实施例中,将功耗评估的结果存储在由模拟工具访问的计算机可读介质中。

在一些实施例中,省略操作114,其中,设计者重点关注获得soc的功耗评估而不考虑单独的子块的功耗。在一些实施例中,省略操作114,方法100从操作112进行至操作116。

在操作116中,比较soc的功耗评估与soc的功率预算。在一些实施例中,由设计者提供功率预算。在一些实施例中,从存储在soc的设计中的信息中提取功率预算。

如果soc的功耗评估满足soc的功率预算,则方法100进行至操作118。在操作118中,生成指令以用于设计soc的布局。在soc的布局生成之后,制造soc以生产器件的组件。

如果soc的功耗评估不满足soc的功率预算,则方法进行至操作120。如果功耗评估指示soc消耗比包括soc的器件的设计所分配的更多的功率,则功耗评估不能满足soc的功率预算。在一些实施例中,如果功耗评估与所分配的功率的量之间的差值低于由功率缓冲器所降低的功率的分配的量,则认为功耗评估不能满足功率预算。功率缓冲器有助于考虑功耗评估中的误差以有助于确保器件按期望运行。在操作120中,修改soc的设计。在一些实施例中,设计者对soc的设计进行修改。在一些实施例中,模拟工具提供对于soc的设计的修改的建议。在一些实施例中,soc的设计的修改基于来自操作110的多个ip块的排序。例如,在一些实施例中,soc的设计的修改重点在于对soc的功耗具有最显著的影响的多个ip块。

在一些实施例中,soc包括图形处理单元(gpu)、具有多个处理核心的中央处理单元(cpu)、数字信号处理器(dsp)或其他合适的soc。在一些实施例中,多个子块包括渲染(shader)集群、渲染块、渲染寄存器存储、gpu像素处理单元、gpu光栅单元、gpu纹理过滤器、或其他合适的子块。

与不考虑分离的子块之间的ip块的相互作用的其他方法相比较,方法100提供提高的精确度。例如,与线性回归功耗评估方法相比较,显著降低了方法100的最大误差。下面的表1提供了线性回归功耗评估方法的最大误差与考虑所有ip块的方法100的最大误差之间的比较。

表1

通过提高功耗评估的精确度,即,降低最大误差,设计者能够准确地确定soc是否满足功率预算或选择在器件中包括电池以降低器件不适当地运行的风险。soc的性能的精确的确定减少了soc的设计时间并且避免过度设计。另外,可选择电池的尺寸或材料,而不需要考虑功耗评估中的较大的潜在误差,即,减少了电池的过度设计。

图2是根据一些实施例的方法100期间所使用的指示信息和计算的soc200的框图。soc200包括子块210k、210l和210m。在一些实施例中,soc200为gpu,并且子块210k至210m为gpu子块。在一些实施例中,soc200不同于gpu并且包括除了gpu子块之外的多个子块。子块210k包括活动计数器ck,1至ck,nk。子块210l包括活动计数器cl,1至cl,nl。子块210m包括活动计数器cl,m至cl,nm。在soc200的模拟期间,活动计数器ck,1至ck,nk、cl,1至cl,nl以及cl,m至cl,nm跟踪子块内的对应的ip块的激活的数量。

如图2所示,soc200的功耗估计考虑来自soc内的每一个活动计数器ck,1至ck,nk、cl,1至cl,nl以及cl,m至cl,nm的信息。表示与用于确定soc200的功耗的每一个活动计数器相对应的ip块的相对重要性的权重因数与来自活动计数器的信息相结合,以确定soc的总体功耗。可以与soc200的任何子块的功耗的评估独立地执行soc200的功耗评估。例如,在一些实施例中,在评估至少一个子块210k至210m的功耗之前,评估soc200的功耗。在一些实施例中,与评估至少一个子块210k至210m的功耗的同时,评估soc200的功耗。在一些实施例中,在基于对应的权重因数的soc200的功耗的评估期间,不考虑至少一个ip块。

如图2所示,子块210k的功耗评估考虑来自活动计数器的信息,包括子块210l和子块210m中的活动计数器。表示与用于确定子块210k的功耗的每一个活动计数器相对应的ip块的相对重要性的权重因数与来自活动计数器的信息相结合,以确定子块210k的总体功耗。在一些示例中,因为ip块对于子块210k的功耗的贡献与ip块对于soc200的功耗的贡献不同,所以应用于子块210k的功耗的评估的权重因数与应用于soc200的功耗的评估的权重因数不同。

可以与soc200或soc200的任何其他的子块的功耗评估独立地执行子块210k的功耗评估。例如,在一些实施例中,在评估soc200的功耗之后,评估子块210k的功耗。在一些实施例中,与至少一个其他子块210l或210m同时,评估子块210k的功耗。在一些实施例中,在基于对应的权重因数的子块210k的功耗的评估期间,不考虑至少一个ip块。

与以上关于子块210k所描述的类似的方式,对于子块210l和子块210m中的每一个的功耗评估都考虑子块210k至210m的每一个中的所有活动计数器。

图3a是根据一些实施例的在子块的模拟期间用于soc的活动计数器权重的图表300。与图表300相关联的soc包括二十个活动计数器。在一些实施例中,soc的活动计数器的数量多于或少于二十个。与图表300相关联的soc包括四个子块310a至310d。在一些实施例中,soc的子块的数量多于或少于四个。

在子块310c的模拟期间,图表300指示soc的活动计数器权重。在soc的功耗的评估期间,当与由对应的活动计数器所检测的ip块激活的数量结合时,可使用图表300中的活动计数器权重。

在一些实施例中,在方法100(图1)的操作108和/或操作110中使用从图表300中获得的信息。在子块310c内,图表300中的活动计数器19的活动计数器权重显著大于图表300中的任何其他活动计数器的活动计数器权重。在一些实施例中,活动计数器19被视为与图表300相关联的子块的主要活动计数器。在方法100的一些实施例中,操作108中的功耗评估不考虑与除了主要活动计数器之外的活动计数器相对应的ip块。

子块310c为其中局部活动主导功耗的子块的实例,即,子块310c内的活动计数器的活动计数器权重显著大于其他活动计数器。在一些实施例中,如果确定子块具有局部主导的功耗,则在操作114期间的子块的功耗的评估期间,方法100(图1)丢弃来自子块外侧的活动计数器的信息。

图3b是根据一些实施例的在子块的模拟期间用于soc的活动计数器权重的图表300'。与图表300'相关联的子块是与图表300相关联的相同子块。图表300'指示子块310d的功耗。与图表300不同,图表300'指示,在子块310d的模拟期间,与外部子块(即,子块310a至310c)中的活动计数器相对应的ip块对功耗提供了明显的贡献。例如,子块310a中的活动计数器1、2、5和6具有活动计数器权重,以在子块310d的操作的模拟期间指示由子块310a贡献的大量(non-trivialamountof)的功耗。下文关于图3c中的阈值320描述了指示大量功耗的活动计数器权重与指示少量的功耗的活动计数器权重之间的区别。类似地,在子块310d的操作的模拟期间,子块310b中的活动计数器11和12以及子块310c中的活动计数器19也对功耗有贡献。

图表300'中的子块310d的模拟为一实例,其中认为方法100中的方法相比较,仅子块310d内的活动将导致soc的评估的功耗与soc的实际功耗之间更大误差。与仅考虑子块310d内的活动计数器的其他方法相比,利用方法100(其中考虑多个子块对功耗的贡献)将降低soc的评估的功耗的误差。

在一些实施例中,在方法100(图1)的操作108或操作110期间,可使用从图表300'中获得的信息或支持图表300'的数据。例如,在操作110期间,其中对活动计数器进行排序,设计者能够使用来自图表300'的信息来识别哪些ip块对soc的功耗具有最显著的贡献。该信息有助于设计者将任何设计修正努力都聚集在soc的将产生更多实质影响的部分上。例如,如果设计者试图优化与活动计数器3相关联的ip块中的功耗,该活动计数器位于与图表300'相关联的soc中,则设计者所花费的时间将对soc的整体功耗产生最小的影响。相反地,在soc的整体功耗中,与活动计数器12相关联的ip块的功耗的优化将提供比关于活动计数器3更大的影响。

图3c至图3e有助于阐明如何使用方法100(图1)的可选操作108和110来降低修正soc的设计所使用的时间的量。

图3c是根据一些实施例的在子块310d的模拟期间用于soc的活动计数器权重的图表300”。与图表300”相关联的子块是与图表300相关联的相同子块。与图表300'相比,图表300”包括阈值320。可通过方法100(图1)的操作108使用阈值320。为了降低用于修正soc的设计和评估soc的功耗的时间的量,从soc的功耗评估中去掉了与具有低于阈值320的活动计数器权重的活动计数器相关联的ip块。

在一些实施例中,基于功耗评估的可接受的误差来选择阈值320。在一些实施例中,可接受的误差为1%或更小。在一些实施例中,可接受的误差为2%或更小。在一些实施例中,可接受的误差为5%或更小。在一些实施例中,可接受的误差包括大于5%的值。限定可接受的误差以平衡功耗评估的精确度与用于确定功耗评估和修正soc的设计所使用的时间的量。更低的可接受的误差增加了功耗评估的精确度,但是也增加了用于确定功耗评估和修正soc的设计的时间的量。更高的可接受的误差降低了功耗评估的精确度,但是也减小了用于确定功耗评估和修正soc的设计的时间的量。

在图表300”的实例中,阈值320去掉与活动计数器3、4、7至10和13至18相关联的ip块。结果,在一些实施例中,与考虑所有ip块的图表300'的接近1.5%的误差相比,图表300”的功耗评估的误差接近2.5%。通过将功耗评估中所使用的ip块的数量减少一半以上来补偿误差率中这样较小的增加。

图3d是根据一些实施例的在子块310d的模拟期间用于soc的活动计数器权重的图表300*。与图表300*相关联的子块和与图表300相关联的子块相同。与图表300'和图表300”相比,图表300*指示,去掉与活动计数器1和2相关联的ip块。与图表300”中指示的去掉的活动计数器相比较,去掉与活动计数器1和2相关联的ip块对误差具有更大的影响。例如,在一些实施例中,因为从考虑因素中仅去除了两个ip块,所以仅去掉与活动计数器1和2相关联的ip块的图表300*的功耗评估的误差接近5%,并且与图表300”相比具有减少的节省时间。图表300*和图表300”中指示的去掉之间的误差的差值证明,在任何单个子块的模拟期间,考虑每一个子块的功耗贡献有助于提供soc的更加精确的功耗评估。

图3e是根据一些实施例的在子块310d的模拟期间用于soc的活动计数器权重的图表300^。与图表300^相关联的子块是与图表300相关联的相同子块。与图表300'和图表300”相比,图表300^指示,去掉与活动计数器1、2、5和6相关联的ip块。与图表300”或图表300*中指示的去除的活动计数器相比较,去掉与活动计数器1、2、5和6相关联的ip块对于误差具有更大的影响。例如,在一些实施例中,因为从考虑因素中仅去除了四个ip块,所以仅去掉与活动计数器1、2、5和6相关联的ip块的图表300^的功耗评估的误差接近8.5%,并且与图表300”相比具有减少的节省时间。

图4是根据一些实施例的用于实施评估soc的功耗的方法的系统400的框图。系统400包括硬件处理器402和非暂时性计算机可读存储介质404,非暂时性计算机可读存储介质604编码有(即,存储)计算机程序代码406(即,可执行指令集)。计算机可读存储介质404也编码有用于与生产存储器阵列的制造机器接口连接(interface)的指令407。处理器402通过总线408电耦接至计算机可读存储介质404。处理器402也通过总线408电连接至i/o接口410。网络接口412也通过总线408电连接至处理器402。网络接口412连接至网络414,使得处理器402和计算机可读存储介质404能够通过网络414连接至外部元件。处理器402配置为执行编码在计算机可读存储介质404中的计算机程序代码406以使得系统400可用于实施在方法100中描述的一些或全部的操作。

在一些实施例中,处理器402是中央处理单元(cpu)、多处理器、分布式处理系统、专用集成电路(asic)和/或合适的处理单元。

在一些实施例中,计算机可读存储介质404是电子的、磁性的、光学的、电磁的、红外的和/或半导体的系统(或装置或器件)。例如,计算机可读存储介质404包括半导体或固相存储器、磁带、移动计算机软盘、随机存取存储器(ram)、只读存储器(rom)、硬磁盘和/或光盘。在使用光盘的一些实施例中,计算机可读存储介质504包括只读光盘存储器(cd-rom)、读/写光盘(cd-r/w)和/或数字视频光盘(dvd)。

在一些实施例中,存储介质404存储计算机程序代码406,计算机程序代码606配置为使系统400实施方法100。在一些实施例中,存储介质404还存储用于执行方法100所需要的信息以及在执行方法100期间生成的信息,诸如活动计数器参数416、权重因数参数418、ip块参数420、功耗结果参数422和/或用于执行方法100的操作的可执行指令集。

在一些实施例中,存储介质404存储用于与制造机器接口连接的指令407。指令407使处理器402能够生成通过制造机器可读的制造指令以在制造工艺期间有效地执行方法100。

系统400包括i/o接口410。i/o接口410耦接至外部电路。在一些实施例中,i/o接口410包括键盘、小型键盘、鼠标、轨迹球、触控板和/或光标方向键,以用于向处理器402传达信息和命令。

系统400还包括耦接至处理器402的网络接口412。网络接口412允许系统400与网络414通信,其中一个或多个其他计算机系统连接至该网络。网络接口412包括诸如bluetooth、wifi、wimax、gprs或wcdma的无线网络接口;或诸如ethernet、usb或ieee-1394的有线网络接口。在一些实施例中,在两个或多个系统400中实施方法100,并且通过网络414在不同系统400之间交换诸如ip块、权重因数、活动计数器或功耗结果的信息。

将系统400配置为通过i/o接口410或网络接口412接收与soc设计相关的信息。通过总线408将信息传输至处理器402以确定soc设计中的活动计数器的数量、位置和相关联的ip块。然后将活动计数器信息存储在计算机可读介质404中作为活动计数器参数416。将系统400配置为通过i/o接口410或网络接口412接收与权重因数相关的信息。在一些实施例中,在方法100(图1)的执行期间,通过系统400确定与权重因数相关的信息。将信息存储在计算机可读介质404中作为权重因数参数418。将系统400配置为通过i/o接口410或网络接口412接收与ip块相关的信息。在一些实施例中,从包含标准单元的单元库中提取关于ip块的信息。在一些实施例中,从由soc的设计者提供的文件中提取关于ip块的信息。将信息存储在计算机可读介质404中作为ip块参数420。将系统400配置为通过i/o接口410或网络接口412接收与功耗结果相关的信息。在一些实施例中,在方法100(图1)的执行期间,通过系统400获得与功耗结果相关的信息。将信息存储在计算机可读介质404中作为功耗结果参数422。

在操作期间,处理器402执行指令集以确定提供给系统400的soc设计的功耗。在操作期间,处理器与计算机可读介质404交互以取回并且存储在方法100的执行期间所生成的数据。

图5是根据一些实施例的包括soc502和电池504的器件500的示图。器件500包括电连接至电池504的soc502。电池504向soc502提供功率以执行期望的功能。在一些实施例中,使用方法100(图1)生成soc502的设计。在一些实施例中,基于使用方法100确定的功耗评估来选择电池504的存储容量。

本发明的一个实施例涉及评估芯片上系统(soc)的功耗的方法。方法包括soc的第一子块的模拟操作以获得第一子块的功耗信息。第一子块的功耗信息包括定位在第一子块中的第一知识产权(ip)块的第一激活信息。方法还包括soc的第二子块的模拟操作以获得第二子块的功耗信息。第二子块的功耗信息包括第一ip块的第二激活信息和定位在第二子块的多个第二ip块的激活信息。方法还包括确定第一ip块的第一激活信息、第一ip块的第二激活信息、和多个第二ip块的每一个第二ip块的激活信息中的每一个的权重因数。方法还包括基于第一ip块的第一激活信息、第一ip块的第二激活信息和多个第二ip块的至少一个第二ip块的激活信息、以及对应的权重因数来评估soc的功耗。

在一个实施例中,评估芯片上系统的功耗的方法还包括:从所述多个第二ip块中去掉一个或多个第二ip块以确定所述至少一个第二ip块。

在一个实施例中,去掉所述一个或多个第二ip块包括基于与所述多个第二ip块的每一个第二ip块相关联的权重因数来去掉所述一个或多个ip块。

在一个实施例中,去掉所述一个或多个第二ip块包括去掉具有低于阈值的权重因数的第二ip块。

在一个实施例中,去掉所述一个或多个第二ip块包括评估所述芯片上系统的功耗期间基于预定误差值来选择所述阈值。

在一个实施例中,评估芯片上系统的功耗的方法还包括:基于对应的权重因数对所述第一ip块和所述多个第二ip块中的每一个第二ip块进行排序。

在一个实施例中,评估芯片上系统的功耗的方法还包括:将所述芯片上系统的评估的功耗与功率预算进行比较。

在一个实施例中,评估芯片上系统的功耗的方法还包括:如果所述芯片上系统的评估的功耗不满足所述功率预算,则修正所述芯片上系统的设计。

在一个实施例中,评估芯片上系统的功耗的方法还包括:基于对应的权重因数对所述第一ip块和所述多个第二ip块中的每一个第二ip块进行排序;以及基于所述第一ip块和所述多个第二ip块中的每一个第二ip块的排序来修正所述芯片上系统的设计。

在一个实施例中,评估芯片上系统的功耗的方法还包括:基于所述第一ip块的第二激活信息、所述多个第二ip块中的每一个第二ip块的激活信息和对应的权重因数来评估所述第二子块的功耗。

在一个实施例中,在评估所述第二子块的功耗之前,进行评估所述芯片上系统的功耗。

在一个实施例中,评估所述芯片上系统的功耗与评估所述第二子块的功耗同时发生。

本发明的另一实施例涉及评估芯片上系统(soc)的功耗的方法。方法包括soc的第一子块的模拟操作以获得第一子块的功耗信息。第一子块的功耗信息包括定位在第一子块中的第一知识产权(ip)块的第一激活信息。方法还包括soc的第二子块的模拟操作以获得第二子块的功耗信息。第二子块的功耗信息包括第一ip块的第二激活信息和定位在第二子块的多个第二ip块的第一激活信息。第一子块的功耗信息还包括多个第二ip块的第二激活信息。方法还包括确定第一ip块的第一激活信息、第一ip块的第二激活信息、多个第二ip块的每一个第二ip块的第一激活信息和多个第二ip块的每一个第二ip块的第二激活信息中的每一个的权重因数。方法还包括从第一ip块和多个第二ip块中去掉具有低于阈值的权重因数的ip块以确定剩余的ip块的组。方法还包括基于剩余的ip块的组和对应的权重因数来评估soc的功耗。

在一个实施例中,评估芯片上系统的功耗的方法还包括:将所述芯片上系统的评估的功耗与功率预算比较。

在一个实施例中,评估芯片上系统的功耗的方法还包括:如果所述芯片上系统的评估的功耗不满足所述功率预算,则修正所述芯片上系统的设计。

在一个实施例中,修正所述芯片上系统的设计包括修正所述剩余的ip块的组内的ip块的设计。

在一个实施例中,评估芯片上系统的功耗的方法还包括:基于所述第一ip块的第一激活信息、所述多个第二ip块的第二激活信息和对应的权重因数来评估所述第一子块的功耗;以及基于所述第一ip块的第二激活信息、所述多个第二ip块的第一激活信息和对应的权重因数来评估所述第二子块的功耗。

在一个实施例中,在评估所述第一子块的功耗或评估所述第二子块的功耗中的至少一个之前,进行评估所述芯片上系统的功耗。

本发明的又一实施例涉及评估芯片上系统(soc)的功耗的系统。系统包括至少一个处理器和连接至至少一个处理器的计算机可读介质。至少一个处理器配置为执行存储在计算机可读介质上的指令以模拟soc的第一子块的操作,从而获得第一子块的功耗信息。第一子块的功耗信息包括定位在第一子块中的第一知识产权(ip)块的第一激活信息。至少一个处理器还配置为模拟soc的第二子块的操作以获得第二子块的功耗信息。第二子块的功耗信息包括第一ip块的第二激活信息和定位在第二子块中的多个第二ip块的激活信息。至少一个处理器还配置为确定第一ip块的第一激活信息、第一ip块的第二激活信息和多个第二ip块的每一个第二ip块的激活信息中的每一个的权重因数。至少一个处理器还配置为基于第一ip块的第一激活信息、第一ip块的第二激活信息和多个第二ip块的至少一个第二ip块的激活信息、以及对应的权重因数来评估soc的功耗。

在一个实施例中,所述处理器还配置为执行所述计算机可读介质上的指令以:基于所述第一ip块的第二激活信息、所述多个第二ip块的至少一个第二ip块的激活信息和对应的权重因数来评估所述第二子块的功耗,其中,所述处理器配置为在评估所述第二子块的功耗之前评估所述芯片上系统的功耗。

以上论述了若干实施例的部件,使得本领域的技术人员可以更好地理解本发明的各个实施例。本领域技术人员应该理解,可以很容易地使用本发明作为基础来设计或更改其他的处理和结构以用于达到与本发明所介绍实施例相同的目的和/或实现相同优点。本领域技术人员也应该意识到,这些等效结构并不背离本发明的精神和范围,并且在不背离本发明的精神和范围的情况下,可以进行多种变化、替换以及改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1