ソフトウェア駆動の電力分析
電力はコストがかかる傾向があります。高電力コストは非常に高くなります。アクトン卿の有名な引用のこのかなり強制的な適応は、半導体設計と電力消費の2つの重要な側面を捉えています。時間の経過に伴う平均消費電力を見ると、消費電力の高いチップには高いコストがかかることは明らかです。ポータブルデバイスでは、電力が増えると、バッテリーが大きくて高価になるか、バッテリーの寿命が短くなります。さらに、より多くの電力は、結果として生じる熱を放散するためのより高度でより高価なパッケージングを意味します。これらの3つの要因には、製品の価格設定、利益率、および市場での成功の可能性の観点からも波及効果のコストがあります。
消費電力に関する懸念は、少なくとも一部の時間はバッテリーで動作するポータブルデバイスをはるかに超えています。壁掛け式のデバイスには、パッケージング、電源、および配電システムの面でも追加のコストがかかります。これらの同じ問題は、ラックまたはコンピューティングサーバー、大規模なデータストレージアレイ、およびネットワークスイッチを備えたサーバーファームにまで及びます。サーバーファームの運用コストは莫大です。調査によると、電力料金は、各サーバーの存続期間中、ハードウェア自体の価格を上回っています。サーバーファームは、高い需要を満たすために、水力発電ダムまたは大規模なソーラーアレイの近くに配置される場合があります。一部の場所では、サーバーの消費電力を規制する「グリーン法」も満たす必要があります。
ハイエンドでは、過度の電力消費には、膨大なインフラストラクチャと関連コストを追加する液体冷却システムが必要になる場合があります。これらすべての理由から、最終市場に関係なく、ほぼすべての半導体プロジェクトで平均消費電力を削減することが目標です。ピーク電力を検討する場合、削減は単なる目標ではなく、重要なニーズとなる可能性があります。一部のチップは、特定の部分のみが同時に実行されるように設計されています。このような場合、すべての機能をオンにすると、デバイスが処理できるよりも多くの電流が必要になり、熱破壊と永久的な損傷が発生する可能性があります。
検出力分析の課題
消費電力を制限するすべての動機を考慮して、業界はさまざまな低電力設計手法を開発してきました。これらは、レイアウトレベルの回路調整から、システムレベルのアプリケーション対応のソフトウェアベースの電力管理にまで及びます。どの手法を使用する場合でも、開発中のチップの設計および検証中に平均消費電力とピーク消費電力の両方を推定することにより、その影響を正確に評価できることは非常に価値があります。製造後、平均電力が実行可能な製品に対して高すぎること、またはピーク消費電力がチップを破壊することを発見するまで待つことは容認できません。効果的なプレシリコンパワー分析が、できればプロジェクトの複数の段階で必要です。
電力分析に対する電子設計自動化業界の従来のアプローチは、シミュレーションに依存しています。チップの機能検証には、テストベンチを開発してから、チップ設計の各機能または機能をチェックする一連のテストを作成または生成することが含まれます。テストスイート全体、またはおそらく代表的な部分のみをシミュレートし、その結果を従来の電源サインオフツールにフィードするのは比較的簡単なことです。ほとんどの電力消費は回路が状態を切り替えるときにのみ発生するため、シミュレータはスイッチングアクティビティファイルを電源サインオフツールに提供できます。このツールをターゲットテクノロジーのライブラリの電力特性と組み合わせると、平均電力消費量とピーク電力消費量の両方についてかなり正確な見積もりを提供できます。
ただし、この精度は、シミュレーションで実行されるテストに完全に関連しています。実際には、検証テストスイートは、実稼働ソフトウェアが実行されているチップの動作を表すものではありません。機能検証用に設計されたテストは、意図的に、対象の機能に必要な設計の領域のみを刺激することに焦点を当てています。制約付きランダムテストベンチは、より多くの並列アクティビティを生成できますが、実際の使用法をモデル化する可能性はほとんどありません。真に正確な電力分析は、オペレーティングシステム(OS)上で実行されているユーザーアプリケーションを含む、実際のソフトウェアワークロードからのスイッチングアクティビティを使用することによってのみ実行できます。
通常、OSの起動、システムサービスの開始、およびアプリケーションの実行には、数十億クロックサイクルかかります。これは、シミュレーションで実行するのは完全に非現実的です。対照的に、エミュレーターは、OSの起動から、並行して実行される複数のユーザーアプリケーションまで、数十億のサイクルを日常的に実行します。エミュレーションは、高精度の電力分析を実行するために必要な実際のソフトウェアワークロードのようなものを実行します。課題は、電源サインオフツールが、数百万ではなく、数十億ではなく、数千のサイクルを処理するように設計されていることです。エミュレーションの実行でアクティビティが多いいくつかの領域を特定し、これらのウィンドウのみを電力分析に使用することに焦点を当てるには、新しい方法が必要です(図1)。
クリックして大きな画像を表示
図1.パワーウィンドウを使用した電力分析(出典:Synopsys)
ソフトウェア主導の電力分析への移行
図1に示すフローの最初の要件は、エミュレーターが、設計のどの部分が時間の経過とともにアクティブであるかを示すプロファイルを作成することです。このアクティビティプロファイルは、波形ビューアまたはその他のハードウェアデバッグツール内でグラフとして表示できます。電力サインオフは数十億サイクルで実行できないため、次のステップは、ユーザーがアクティビティプロファイルを活用して、アクティビティが最も高く、消費電力も最も高くなる可能性が高い1つ以上の電力クリティカルウィンドウを特定することです。これらのウィンドウのそれぞれが数百万サイクルである場合、それは電力分析の次の段階に使用できます。ベンチマークとして、エミュレータは3時間で10億サイクルのソフトウェアワークロードのアクティビティプロファイルを生成できる必要があります。
埋め込み