软件驱动的功耗分析
电力往往需要成本;高电力成本高。这种对阿克顿勋爵名言的强制改编抓住了半导体设计和功耗的两个重要方面。从一段时间内的平均功耗来看,很明显,具有高功耗的芯片会产生高成本。在便携式设备中,更大的功率意味着更大和更昂贵的电池,或者缩短电池寿命。此外,更大的功率意味着更先进和更昂贵的封装来消散产生的热量。这三个因素在产品定价、利润率和市场成功可能性方面也会产生连锁反应成本。
对功耗的担忧远远超出了至少部分时间依靠电池运行的便携式设备。壁挂式设备还会在封装、电源和配电系统方面产生额外成本。这些相同的问题一直延伸到服务器群,包括机架或计算服务器、海量数据存储阵列和网络交换机。服务器群的运营成本是巨大的;研究表明,在每台服务器的整个生命周期内,电力费用都超过了硬件本身的价格。服务器农场可能位于水电大坝或大型太阳能电池阵列附近,以满足他们的高需求。某些地点还必须满足规范服务器功耗的“绿色法律”。
在高端,过度的功耗可能需要增加大量基础设施和相关成本的液体冷却系统。由于所有这些原因,降低平均功耗是几乎所有半导体项目的目标,无论终端市场如何。在考虑峰值功率时,降低可能是一项关键需求,而不仅仅是一个目标。有些芯片被设计成只能同时运行某些部分。在这种情况下,打开所有功能可能需要比设备处理更多的电流,从而导致热击穿和永久性损坏。
功效分析的挑战
鉴于限制功耗的所有动机,该行业已开发出多种低功耗设计技术。这些范围从布局级电路调整到系统级、应用感知、基于软件的电源管理。无论使用何种技术,在开发中的芯片的设计和验证过程中,通过估算平均和峰值功耗来准确评估其影响是非常有价值的。等到制造完成后才发现平均功率对于可行产品来说太高或峰值功率消耗会损坏芯片是不可接受的。需要有效的硅前功率分析,最好在项目的多个阶段进行。
电子设计自动化行业的传统功耗分析方法依赖于仿真。芯片的功能验证需要开发一个测试平台,然后编写或生成一套测试来检查芯片设计的每个功能或特性。模拟整个测试套件,或者可能只是一个有代表性的部分,并将结果提供给传统的电源签核工具是一件相对简单的事情。由于大部分功耗仅在电路切换状态时发生,因此模拟器可以向电源签核工具提供切换活动文件。当结合目标技术库中的功率特性时,该工具可以为平均和峰值功耗提供相当准确的估计。
然而,这种准确性完全与在模拟中运行的测试有关。实际上,任何验证测试套件都不能代表运行生产软件的芯片操作。专为功能验证而设计的测试旨在仅关注目标功能所需的设计领域。受约束的随机测试平台可以生成更多的并行活动,但仍然不太可能模拟现实世界的使用情况。只有使用来自真实软件工作负载(包括运行在操作系统 (OS) 之上的用户应用程序)的切换活动,才能执行真正准确的功耗分析。
启动操作系统、启动系统服务和运行应用程序通常需要数十亿个时钟周期。这在模拟中运行是完全不切实际的。相比之下,模拟器通常会运行数十亿个周期,从操作系统启动到多个用户应用程序并行运行。仿真只是执行高精度功耗分析所需的那种真实的软件工作负载。挑战在于电源签核工具旨在处理数千个周期,而不是数百万个周期,当然也不是数十亿个周期。需要一种新方法来识别仿真运行中的几个高活动区域,并专注于仅使用这些窗口进行功耗分析(图 1)。
点击查看大图
图 1. 使用 Power windows 的功率分析(来源:Synopsys)
转向软件驱动的功耗分析
图 1 所示流程的第一个要求是仿真器生成一个配置文件,显示设计的哪些部分随着时间的推移处于活动状态。此活动配置文件可以在波形查看器或其他硬件调试工具中查看为图形。由于无法在数十亿个周期内执行电源签核,因此用户下一步是利用活动配置文件来识别一个或多个电源关键窗口,在这些窗口期间活动最高,功耗也可能最高。如果这些窗口中的每一个都在数百万个周期内,则可以用于下一阶段的功率分析。作为基准,模拟器应该能够在 3 小时内为 10 亿个软件工作负载周期生成活动配置文件。
嵌入式