JP5725582B2 - 駆動電力ゲーティングの応用 - Google Patents

駆動電力ゲーティングの応用 Download PDF

Info

Publication number
JP5725582B2
JP5725582B2 JP2013519753A JP2013519753A JP5725582B2 JP 5725582 B2 JP5725582 B2 JP 5725582B2 JP 2013519753 A JP2013519753 A JP 2013519753A JP 2013519753 A JP2013519753 A JP 2013519753A JP 5725582 B2 JP5725582 B2 JP 5725582B2
Authority
JP
Japan
Prior art keywords
computer
power
code
architecture
computer readable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013519753A
Other languages
English (en)
Other versions
JP2013538386A (ja
Inventor
パイアス ウン
パイアス ウン
アナン パンドゥランガン
アナン パンドゥランガン
アナン ダーバ
アナン ダーバ
サティシュ パドゥマナバン
サティシュ パドゥマナバン
ギャリー オブロック
ギャリー オブロック
スレッシュ カディヤラ
スレッシュ カディヤラ
Original Assignee
アルゴトゥチップ コーポレーション
アルゴトゥチップ コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アルゴトゥチップ コーポレーション, アルゴトゥチップ コーポレーション filed Critical アルゴトゥチップ コーポレーション
Publication of JP2013538386A publication Critical patent/JP2013538386A/ja
Application granted granted Critical
Publication of JP5725582B2 publication Critical patent/JP5725582B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Power Sources (AREA)

Description

(相互に参照される出願)
出願人を共通とする、同日に出願された米国特許出願第12/835,603号『アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ(AUTOMATIC OPTIMAL INTEGRATED CIRCUIT GENERATOR FROM ALGORITHMS AND SPECIFICATION)』、米国特許出願第12/835,621号『アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ(AUTOMATIC OPTIMAL INTEGRATED CIRCUIT GENERATOR FROM ALGORITHMS AND SPECIFICATION)』、米国特許出願第12/835,628号『駆動電力ゲーティングの応用(APPLICATION DRIVEN POWER GATING)』、米国特許出願第12/835,631号『集積回路におけるシステム、アーキテクチャおよびマイクロアーキテクチャ(SAMA)表現(SYSTEM, ARCHITECTURE AND MICRO‐ARCHITECTURE (SAMA) REPRESENTATION OF AN INTEGRATED CIRCUIT)』、および米国特許出願第12/835,640号『アーキテクチャ・レベルの省電力指向の最適化およびリスク軽減(ARCHITECTURAL LEVEL POWER‐AWARE OPTIMIZATION AND RISK MITIGATION)』が相互に関連しており、これらの文献によって参照される内容が、本願に援用される。
本発明は、電子回路における電力消費を管理するための方法および装置に関する。
持ち運びできるバッテリ駆動電子デバイスにおいて、エネルギ効率の高いシステム設計は、エネルギ消費がポータブル・システムのバッテリ寿命を決定づけ、且つ消費者市場におけるあらゆる製品の売れ行きに影響を与える非常に重要な性能測定基準であることから、ますます重要なものとなった。したがって、電力管理が、システムのインフラストラクチャにおいて欠くことができない部分になりつつある。
動的電力管理(DPM)は、エネルギまたは電力効率の高い計算のためにシステムの動的な構成または再構成を可能にする設計技法である。DPM技術は、通常、システムの休止部分をオフにすることまたは処理速度を「低下」すること、およびシステムのパフォーマンスとエネルギ効率とを動的にトレードすること、を伴う。DPM技術は、変化する作業負荷に対してシステム構成要素のパフォーマンスを個別に調整することによって、システムの電力を最適化し、かつそれをコントロールする方法を提供する。
動的に変化する作業負荷を伴うシステム、言い換えると、常時、ピークまたは最大パフォーマンスを実行する必要のないシステムにおいては、電圧およびクロック周波数をコントロールしてシステムの電力消費を最適化することが可能である。これは、動的電圧周波数制御(DVFS)として知られる。米国特許出願第20070266268号は、第1の周波数を有するローカル・クロック信号によって動作がコントロールされる単一インストラクション多重データ(SIMD)プロセッサ・アーキテクチャを開示しており、それにおいては、コントロール・プロセッサが、SIMDプロセッサ・アーキテクチャの動作をコントロールし、かつプロセッサ・アレイの動作とデータ・ベクトルのストリームとを同期させる信号を生成するべく適合されている。コントロール・プロセッサの動作は、第2の周波数を有するローカル・クロック信号によってコントロールされ、かつ電力管理手段が、コントロール・プロセッサによって生成された同期信号に応答してローカル・クロック信号の周波数を調整し、それによってSIMDプロセッサ・アーキテクチャの電力消費を最小化する。しかしながら、このアプローチは、周波数を調整するだけであり、デバイスが、アプリケーション・コードによって必要とされないときでさえ、低い周波数において動作できる状態に置かれたままとなる。
チップによって消費される電力は、2つの主要成分、すなわち動的なスイッチング電力、および静的または漏れ電力に属する。これらの成分は、独立に管理することが可能である。従来の電力管理技術は、回路レベルの技術に頼っている。製造技術が、より小さい構造に向かっていることから、静的な電力の漏れが決定的なものとなりつつある。静的または漏れ電力は、ICの活動とは独立している。したがって、携帯電話等のバッテリ駆動電子機器にとっては、漏れ電力を低減することが重要である。
1つの態様においては、カスタム集積回路(IC)設計における、電力を、コンピュータ可読コードを含むカスタム集積回路の仕様を受け取り、かつそのコンピュータ可読コードのプロファイルを生成してインストラクション利用度を決定し、そのコンピュータ可読コードに対して固有のカスタマイズがなされたプロセッサ・アーキテクチャであって、1つまたは複数の処理ブロックおよび1つまたは複数の電力ドメインを有するプロセッサ・アーキテクチャを自動的に生成し、各処理ブロックがいつ必要とされるかについてコード・プロファイルに基づいて決定し、かつ各ブロックを電力ドメインのうちの1つに割り当て、電力ドメインの電力のゲーティングを、コード・プロファイルに基づいて行ない、生成されたアーキテクチャを、半導体製造のためにカスタム集積回路のコンピュータ可読記述に合成する、ことによって管理するシステムおよび方法が開示される。
上記の態様の実装には、次に示す内容のうちの1つまたは複数を含めることが可能である。システムは、プロファイルから機能ブロック利用度の統計を生成することができる。システムは、時間の関数として、異なる処理ブロックの利用度を追跡することができる。システムは、1つまたは複数の処理ブロックの電力を推測して遮断することが可能であり、必要時には、電力を遮断した処理ブロックを自動的にオンに切り換えることができる。各電力ドメインに電力がいつ印加されるべきかについては、インストラクション・デコーダが決定することができる。アプリケーション・コードを走らせるカスタムICのためのソフトウエア・ツールは、自動的に生成することが可能である。これらのツールには、コンパイラ、アッセンブラ、リンカ、サイクル‐ベースのシミュレータのうちの1つまたは複数が含まれる。ツールは、自動的にファームウエアを生成する。ツールは、ファームウエアのプロファイリングを行なうことが可能であり、ファームウエアのプロファイルを、フィードバックとしてアーキテクチャの最適化に提供する。コンパイラのインストラクション・スケジューラは、この電力最適化スキームが与えられ、効率を最大化するべくインストラクションの順序を調整することが可能である。システムは、あらかじめ決定済みの物理的な制約に基づいてプロセッサ・アーキテクチャを反復的に最適化することが可能である。システムは、コンピュータ可読コードの静的プロファイリングまたは動的プロファイリングを実行することが可能である。システムは、コンピュータ可読コードを走らせるカスタム集積回路のためのソフトウエア開発キット(SDK)を自動的に生成することが可能である。コンピュータ可読コードは、アッセンブリ・コードに変換され、かつリンクされて、選択されたアーキテクチャのためのファームウエアを生成することが可能である。システムは、ファームウエアのサイクル精度のシミュレーションを実行することが可能である。アーキテクチャは、プロファイリングが行なわれたファームウエアおよび/またはアッセンブリ・コードに基づいて最適化が行われることが可能である。システムは、選択されたアーキテクチャのために、したがって、タイミング、面積、または電力に関して最適化された物理設計のために、レジスタ・トランスファ・レベルのコードを生成することが可能である。システムは、RTLコードを合成することが可能である。
好ましい実施態様の利点には、次に示す内容のうちの1つまたは複数が含まれる。静的な電力は、アーキテクチャ上の見通しからコントロールされることが可能である。このことは、チップ設計者に、消費される電力のより良好な取り扱いを前もって知らせることになり、さらには電力関連のスケジュール遅延を回避させることにもなる。
図1は、アプリケーション・コードに応答して自動的に設計された特定用途向け集積回路(ASIC)のために電力を自動的に管理するシステムの一例を示した説明図である。 図2は、多様なプロセッサ・ブロック利用度のプロファイルの一例を示した説明図である。 図3は、図2のプロファイルを伴う特定のアプリケーション・コードの一例またはアルゴリズムのためにカスタム生成されたアーキテクチャの一例を示した説明図である。 図4は、プロセッサ・アーキテクチャの物理実装の一例を示した説明図である。 図5は、アーキテクチャ・レベルのホヮット‐イフ・インクリメンタル・コスト推定データ・モデル(WICE‐DM)の一例を示した説明図である。 図6は、アーキテクチャ・ベースの電力管理を伴うカスタムICを自動的に生成するシステムの一例を示した説明図である。
図1は、アプリケーション・コードに応答して自動的に設計された特定用途向け集積回路(ASIC)のために電力を自動的に管理するシステムの一例を示している。図1においては、このシステムに、入力としてアプリケーション・コードまたはアルゴリズム10が提供される。アプリケーション・コードは、コンパイラ20に与えられ、それがファームウエア30を生成する。ファームウエア30は、プロファイラ40によって分析される。プロファイラの出力は、機能ブロック利用度統計モジュール50に提供される。それの結果が電力ゲーティング・ジェネレータ60に提供され、電力ゲーティング・ジェネレータ60の出力は、SAMA(システム、アーキテクチャおよびマイクロアーキテクチャ)ブロック70に提供される。SAMAブロック70は、高レベルの軽量アブストラクト・モデルを生成するが、これは、アーキテクチャ・オプティマイザが、SAMAブロック70内に記述された新しいアーキテクチャを最適化し、かつ生成することを可能にする。SAMAブロック70は、ASICの機能的および物理的なモデルが統一された拡張モデルであるデータ・モデル(DM)に対して情報を提供する。DMは、ASICの、たとえば加算器、乗算器等といった物理プリミティブ情報を受け取る。ファームウエアのプロファイルは、アーキテクチャ・オプティマイザにフィードバックされ、とりわけ電力、サイズ、速度等のあらかじめ決定済みの物理的な制約に基づいてASIC設計の最適化が行なわれる。DMは、これらの制約に従ったRTLコードを生成し、アーキテクチャ・オプティマイザに提供されるタイミング、面積、電力フィードバック情報とともに物理設計に到達することが可能である。SAMAブロック70については、本願と同日に出願された出願人を共通とする係属中の出願の中でより詳細に述べられており、それによって参照される内容が、本願に援用される。
図1のシステムは、電力ゲーティングを通じて静的な電力消費を最小化する。通常、供給電圧が高く、トランジスタの切り換えが高速なほど、より電力が高い。したがって、デバイスの異なる領域での電圧供給をコントロールすることによって、電力とパフォーマンスのトレードオフを行なうことが可能である。また、必要とされていない特定のロジックについて、システムが電力ゲート標準セル、または電力ゲーティングを通じて電力供給を切り離すことも可能である。図1のシステムは、アルゴリズムまたはコード・プロファイルに基づいて、ほかの機能が使用されている間に、チップの種々のセクションが小さな時間窓にわたって使用されていない状態になる時期を決定する。たとえば、DSPチップでは、FIRフィルタにおいてMAC(積和演算ユニット)が使用されている間にALU(算術ロジック・ユニット)が使用されないことがあり得る。電力ゲーティング・ジェネレータ60は、1つの例において、コードの挙動を生かして、ALUロジックに対する電力グリッドを遮断することが可能である。
図2は、多様なプロセッサ・ブロック利用度のプロファイルの一例を示している。このプロファイルは、図1のシステムに対して電力管理を提供する上で使用される。この例では、コード・プロファイルが、浮動小数点ユニット(FPU)が散発的に期間400、410、および420において使用されることを示している。またこのプロファイルは、加算器が、期間450の間にわたって使用され、その期間が期間400、410、および420よりはるかに長いことも示している。このブロック利用度統計に基づけば、加算器は非常に頻繁に使用されていることから、それが、分離される電力ドメインの候補になることはないが、FPUについては、長い休止期間にわたる間、CPUの電力のゲーティングを行って電力消費量を減少させ、エネルギを節約することが可能となるように、電力ゲーティング付きの新しい電力ドメインを作り出すことが可能である。
図3は、図2のプロファイルを伴う特定のアプリケーション・コードの一例またはアルゴリズムのためにカスタム生成されたアーキテクチャの一例を示している。このアーキテクチャにおいて、インストラクション・フェッチ(IF)ユニット110は、インストラクション・デコーダ120にインストラクションを提供する。インストラクションは、デコーダ130によってデコードされ、多様な汎用レジスタ140にアクセスする。オペランド・フェッチ・ユニット150は、これらのレジスタから、またはメモリからのデータをフェッチすることが可能である。加算器160は、加算および減算を行なうことが可能であり、浮動小数点ユニット(FPU)170は、浮動小数点演算を扱うことが可能である。実行ユニット180は、インストラクションを実行することができる。
設計されているIC内において、デバイスのある部分は常時オンの電力供給を有することが許容され、別の部分は、プログラムに従って遮断することができるコントロール可能な電力供給を有することが許容される。1つの利点は、電源とグラウンドの間の差がほぼゼロになることから漏れ電力が効果的に低減されることである。アルゴリズムの特定の要求に対する情報を使用し、図1のシステムは、ICの特定部分への電力供給を完全にオフにする電力ゲーティングを提供する。また、電力をオンにするプロセスもまた、電力消費量を減少させている回路が電力投入されるときの『突入』電流の可能性を回避するべく慎重にシーケンシングが行なわれる。さらに、種々のボルテージアイランド内にドライバ‐負荷のペアが存在することがあり、スパイクおよびそのほかの過渡状態を最小化するべくそれらの関係がコントロールされる。
電力ゲーティングがシームレスに作動することを可能にするために、アーキテクチャ上の電力特徴を使用して静的な電力がコントロールされる。過去においては、チップ内の電力節約の特徴は、チップの多様なセクションの電力消費量が減少される『休止』、『スリープ』、および『停止』モード等の基本モードに限定されていた。しかしながら、スマート‐フォン等の新しい応用においてますます増加するパフォーマンス要件にあっては、活動を伴うことなくチップを休止させることは稀である。したがって、チップのいくつかの部分が常時アクティブであることから、これらの伝統的な電力モードのアクティブ化が可能になることはあまり一般的でない。
この例においては、図2のプロファイルに基づいて、FPUがそれ独自の電力ドメインVDD2に割り当てられることになり、ブロックの残りの部分が電力ドメインVDD1から電力供給されることをアーキテクチャ・オプティマイザが決定する。図1のシステムは、1つの実施態様において、インストラクション・デコーダ120を通じて電力ゲーティング・コントロール・ビットを自動的に生成する。インストラクション・デコーダ120は、アルゴリズムまたはコードのプロファイルに基づいて、特定の電力ドメインの電力消費量をいつ増加させるか、またはいつ減少させるかについて決定する電力ゲーティング・コントロール・ビットのストリームを生成する。
図4は、プロセッサ・アーキテクチャの実装の一例を示している。この実施態様においては、パイプライン段200、220、および270が提供される。組み合わせロジック210をパイプライン段200と220の間に位置決めすることが可能であり、ロジック210から継続的に静的な電力が流出される。組み合わせロジック210の電力消費を最小化するためにできることはなにもない。しかしながら、FPU 230、乗算器240、および加算器250については、それぞれを別々の電力バス上、またはドメインに置き、ゲーティング・コントローラ260として作用するインストラクション・デコーダによってゲーティングされるようにすることが可能である。
図4のシステムにおいては、ハードウエアの各機能ユニットおよびスレッドが、別々の電力コントロール・システムを有することができる。このシステムは、インストラクション・コードによってコントロールされ、したがって、動的にコントロールすることが可能である。またこの情報は、同一の電力コントロール・メカニズムを伴う異なるセクションを、単一の電力ゲーティング・メカニズムがそれらのロジックのための電力をオフにする方法で配置し、かつ配線することが可能となるように、プレイス・アンド・ルート・プロセスにも入力される。
1つの実施態様においては、システムが、異なる機能ブロックの利用度を時間の関数として知的に追跡する。こうして推測されて、異なる機能ブロックの電力が遮断されることになる。それらの機能ブロックの使用が必要となるインストラクションを伴うプログラム・フローが生じた場合には、ハードウエアが、それらの機能ブロックのための電力を自動的にオンに切り換える。したがって、プログラマが電力コントロール・システムの詳細な管理に関わることがなくなり、したがってそのことがシステムを使用することを容易にする。
図1は、カスタムICを自動的に生成するシステムの一例を示している。図6のシステムは、選択された目標とするアプリケーションに対するプログラマブルハードウエア・ソリューションのために、インストラクション・セット圧縮および可変幅エンコーディングを使用する最適インストラクション・セットを伴うアーキテクチャを自動的に生成することをサポートする。目標とするアプリケーションの仕様は、一般に、C、MATLAB(マトラボ)、SystemC(システムC)、フォートラン、エイダ等の高水準言語またはそのほかのいずれかの言語によるコンピュータ可読コードとして表現されたアルゴリズムを通じてなされる。仕様は、目標とするアプリケーションの記述を含み、またそれには、望ましいコスト、面積、電力、速度、パフォーマンス、およびそのほかのハードウエア・ソリューションの属性といった1つまたは複数の制約も含まれる。
図5は、アーキテクチャおよびマイクロ‐アーキテクチャ・レベルのインクリメンタル・ホヮット‐イフ分析のための物理設計(PD)モデル・ベースの面積、電力、および遅延コスト推定についてのデータ・フローを示している。図5を参照すると、i回の繰り返しの後に、次のSAMA i+1が、502において、次の繰り返しへの入力として使用される。したがって、第i回のSAMAは、504において更新される。504におけるSAMAは、506においてCAシミュレータに、510においてアーキテクチャ・オプティマイザに、提供される。AO 510は、コスト関数クエリAPI 512を通じて通信する。SAMAは、SAMAリーダAPI 514を通じて通信する。CAsimは、プロファイル・データ・リーダAPI 516を通じてプロファイル情報を送る。
SAMAリーダAPI 514は、アーキテクチャ設計状態(MAML‐HG)518に、アーキテクチャおよび合成情報を伝達する。コスト関数クエリAPI 512は、評価コンテキスト管理515に情報を提供し、続いてそれが、MAML‐HG 518に情報を提供する。コンテキスト管理515は、評価コンテキスト物理設計モデル530の形成に使用することが可能である。コンテキスト管理515は、ベースラインからの提案された設計の修正の記録を保持している。コスト評価の初期段階の間には、多くの変更が確定されることなく提案される。確定されたコンテキストは、ベースライン設計の一部になる(SAMAファイルの更新)。
MAML‐HG 518は、多レベルのX階層マネージャ520に対して多レベルのハイパーグラフ・データ構造を提供する。続いてマネージャ520が多様なビューを、とりわけブラック‐ボックス・ビュー522、カスタム多分解能階層的ビュー524、および完全に合成可能なネットリスト・ビュー526を含む多様なビューを提供する。これらのビュー522乃至526は、ベースラインの物理設計モデル528の形成に使用することが可能である。
モデル528乃至530は、とりわけ電力ホット‐スポット推定エンジン540、遅延およびタイミング推定エンジン542、および面積推定エンジン544によって使用されることが可能である。電力ホット‐スポット推定エンジン540は、MAML‐HG 518から推定による作動係数(AFs)を受け取ることが可能である。エンジン540乃至544からのデータは、分析情報マネージャ550に提供され、それがコスト関数クエリAPI 512を介してAO 510にフィードバックを提供する。
次に、1つのAPIの例について、より詳細に考察する。
コスト関数推定(CFE)API。
boolean define_contextcontext_name {change_list}
boolean set_active_context context_name
response_type compute_delay {path|whole_chip}
response_type compute_area component
boolean commit_context context_name ‐outfileName sama_i.txt
「response_type」は、以下の情報を含む。
● 相対的コスト(遅延、面積、電力等、実際のクエリに依存する)
○ 定性(改善、有意の影響なし、低下)
○ 定量(定性的変化のヒューリスティックな測度)
● 補足的な物理設計の最適化を伴う条件付きコスト(SPDO)
○ 補足的なPD最適化ID(将来的な参照のための内部のブック‐キーピングID)
○ WAが受け入れられた場合の新しい相対的コスト
● 信頼区間
○ 0と1の間の値
○ 1は、もっとも正確なデータ駆動ツールのフローを伴ってコストが計算されたことを意味する
○ 0は、コストが大まかに推定されたことを意味し、詳細なコスト分析が実行された場合には大きく異なる可能性が非常に高い。
補足的な最適化提案(IDによってインデクスされる)を提供する能力は、物理設計の最適化を向上させ、アーキテクチャの最適化がまだ処理中であり、最適化が完了していないときにはAOに影響を与える。標準的な工業フローにおいては、アーキテクチャの最適化が完了するまで物理設計の最適化が行なわれない。システムは、物理的な合成が可能であると考えられる最適化をAOが選択することを可能にするが、AOに、この最適化がどのように達成されるべきかについての詳細を理解することは求めない。その後、データ・モデルが、実際の実装のために物理的な合成を適切に構成する。このメカニズムは、AOが、単なる直ちに計算されたコスト関数ではなく、広範囲にわたって変化する最適化の結果を考慮することを可能にし、したがって、より良好な設計に収束することを可能にする。
別のAPIの例は、次のようなパス作動プロファイルである。
パス・プロファイル(PP)API
set_path_likelihood path activity_factor
パス作動係数は、そのパスが用いられる確率または尤度である。この情報は、サイクル精度のシミュレータから利用することが可能である(第1ページの図解1参照)。WICE‐DMは、この情報を、物理設計のモデリングから獲得されたパスのトポロジ情報と統合する。その結果として、それが、物理設計の各単位面積についての電力利用度の見積を生成する。続いてこれが、電力ホット‐スポット情報を提供し、その後それは、フィードバックとしてリソース制約の形式でインストラクション・スケジューラに提供されることが可能である。このフィードバックの正味の効果は、(a)潜在的なタイミングおよびそのほかの信号品質の問題が回避されるようにインストラクションがスケジュールされること、および(b)電力の散在、クロック・ゲーティングまたはそのほかの技術を用いて電力ホット‐スポットの近隣となる必要がある構成要素を組み込むことが可能となり、かつその種の即席処理の面積/タイミングのコストが直ちに利用可能となることである。
図5の1つの実施態様においては、アーキテクチャ・レベルの情報が、通常は物理的な合成に利用可能でない情報を渡すべく、ネットリスト・ファイル内にエンコーディングされる。たとえば、階層名には、その階層内のセルのグループ化がハード制約またはソフト制約であるか否かを示すプレフィクスおよびポストフィクス・タグを含めることができる。この情報は、ツール・チェーン・キャパシティの向上に帰する物理的な分割を行う点でより積極的な決定を行なうために有用であり、この結果、より高速なターン・アラウンド時間を実現できる。インスタンスの名前にもまた、アーキテクチャ・レベルのモデルが、これを実在のクリティカル・パスのためのありえる経路として見るか否かを示す特定のプレフィクス/ポストフィクスを含めることができる。物理的な合成は、正しいものが発見されるまで正しくないものを徐々に除いていくのではなく、実在のクリティカル・パスに対する『ルック・アヘッド』を行なうことが可能である。これは、望ましくない最適化(ほかのコスト増加を導く過剰な最適化)を除去し、ターン・アラウンド時間を節約する。別の例として、特定のマクロ・ブロックに、配置制約(とりわけアレイの配置等)を示す名前を付けることができ、それが、一度目で最適タイミングを達成することの補助となる。ネットリスト・ファイルに『側波帯』情報をエンコーディングすることに加えて、図5のフローは、オリジナルのユーザ制約のみで生成するより、物理的な合成を導出する上でより生産的な(物理的はもとよりタイミングの)設計制約を生成することも可能である。いくつかの場合においては、その種の制約は、ネットリストのインスタンス名設定スキームを通じた『暗黙的』なものである。
図6においては、ICカスタマがプロダクト仕様102を生成する。通常は、所望のプロダクトのすべての主要機能を取り込んだ初期プロダクト仕様が存在する。そのプロダクトから、アルゴリズムの専門家がそのプロダクトに必要とされるコンピュータ可読コードまたはアルゴリズムを識別する。それらのアルゴリズムのうちのいくつかは、サードパーティから、または標準開発委員会からのIPとして利用可能となることがある。それらのうちのいくつかは、製品開発の一部として開発されなければならない。この態様においては、さらにプロダクト仕様102が、とりわけCプログラム等のプログラムまたはMATLAB(マトラボ)モデル等の数学モデルとして表現することが可能なコンピュータ可読コードまたはアルゴリズム104で詳述される。プロダクト仕様102は、また、とりわけコスト、面積、電力、プロセス・タイプ、ライブラリ、およびメモリ・タイプ等の要件106も含んでいる。
コンピュータ可読コードまたはアルゴリズム104および要件106は、自動化されたICジェネレータ110に提供される。コードまたはアルゴリズム104およびチップ設計に課せられた制約だけに基づいて、ICジェネレータ110は、人間の掛かり合いを殆ど、またはまったく伴うことなく、GDSファイル112、ICを実行させるファームウエア114、ソフトウエア開発キット(SDK)116、および/またはテスト・スート118を含む出力を自動的に生成する。GDSファイル112およびファームウエア114は、カスタム・チップ121の製造に使用される。
このシステムは、チップ設計の問題を緩和し、それを単純なプロセスにする。このシステムは、プロダクト開発プロセスの焦点を、ハードウエア実装プロセスからプロダクト仕様およびアルゴリズム設計に戻すようにシフトさせる。特定のハードウエアを選択することに束縛される代わり、アルゴリズムが、そのアプリケーションのために特に最適化されたプロセッサ上において実装されることが常に可能となる。システムは、この最適化されたプロセッサを自動的に、すべての関連付けされたソフトウエア・ツールおよびファームウエア・アプリケーションとともに生成する。この全体的なプロセスは、現在数年の問題として対処されていた事項を、数日の問題として対処することを可能とする。要約して言えば、このシステムは、プロダクト開発のデジタル・チップ設計部分をブラック・ボックス化する。
1つの実施態様においては、このシステム・プロダクトが、次に示すものを入力として取ることが可能である。
C/MATLAB(マトラボ)で定義されたコンピュータ可読コードまたはアルゴリズム、
必要とされる周辺機器、
面積目標、
電力目標、
マージン目標(将来的なファームウエア更新のためにどの程度のオーバーヘッドを組み込むべきか、またどの程度複雑性が増加するか)、
プロセスの選択肢、
標準セル・ライブラリの選択肢、
テスト可能性スキャン
システムの出力は、関連付けされるファームウエアすべてを伴ったデジタル・ハード・マクロとすることができる。このデジタル・ハード・マクロのために最適化されたソフトウエア開発キット(SDK)もまた自動的に生成されて、ファームウエアに対する将来的なアップグレードがプロセッサの交換を強いることなく実装されるようにすることが可能である。
このシステムは、選択された目標とするアプリケーションに対して完全かつ最適なハードウエア・ソリューションを自動的に生成する。共通の目標とするアプリケーションは埋め込みアプリケーション空間内にあるが、それらは、必ずしもそれに限定されない。
次に、例として、自動化されたチップ設計システムをサポートするコンピュータについて考察する。コンピュータは、好ましくは、プロセッサ、ランダム・アクセス・メモリ(RAM)、プログラム・メモリ(好ましくは、フラッシュROM等の書き込み可能な読み出し専用メモリ(ROM))、および入力/出力(I/O)コントローラをCPUバスによって結合された形で含んでいる。このコンピュータは、ハードディスクおよびCPUバスに結合されるハード・ドライブ・コントローラをオプションとして含むことができる。ハードディスクは、本発明等のアプリケーション・プログラムおよびデータを記憶するために使用することができる。それに代えて、アプリケーション・プログラムをRAMまたはROM内に記憶することができる。I/Oコントローラは、I/Oバスを経由してI/Oインターフェースに結合される。I/Oインターフェースは、シリアル・リンク、ローカル・エリア・ネットワーク、無線リンク、およびパラレル・リンク等の通信リンクを介してアナログまたはデジタル形式でデータの受信および送信を行なう。オプションとして、表示器、キーボード、およびポインティング・デバイス(マウス)がI/Oバスに接続されることもある。それに代えて、I/Oインターフェース、表示器、キーボード、およびポインティング・デバイスのために別々の接続(別々のバス)が使用されることもある。プログラマブル処理システムは、あらかじめプログラムすること、または別のソース(たとえば、フロッピー(登録商標)ディスク、CD‐ROM、または別のコンピュータ)からプログラムをダウンロードすることによってそれをプログラムすること(および再プログラムすること)ができる。
各コンピュータ・プログラムは、目に見える形として、コンピュータによってストレージ媒体またはデバイスが読み出されたときに、ここで説明している手順を実行するべくそのコンピュータの構成および動作のコントロールを行なうために、汎用または専用プログラマブル・コンピュータによって読み出されることが可能なマシン可読ストレージ媒体またはデバイス(たとえば、プログラム・メモリまたは磁気ディスク)内に記憶される。また本発明のシステムは、コンピュータ・プログラムを用いて構成されるコンピュータ可読ストレージ媒体内において具体化されると考えてもよく、それにおいてストレージ媒体は、ここで述べている機能を実行するべく特定の、あらかじめ定義済みの態様でコンピュータを動作させるように構成される。
以上、ここでは、特許法に従うため、および当業者に、新しい原理の適用および必要とされる専用の構成要素の組み立ておよび使用に必要となる情報を提供するために、相当に詳細に本発明を説明してきた。しかしながら、本発明が明確に異なる装置およびデバイスによって実行可能であること、および装置の詳細および動作手順の両方に対する多様な修正が本発明自体の範囲からの逸脱なしに達成可能であることは理解されるものとする。
10 アプリケーション・コードまたはアルゴリズム
20 コンパイラ
30 ファームウエア
40 プロファイラ
50 機能ブロック利用度統計モジュール
60 電力ゲーティング・ジェネレータ
70 SAMAブロック
102 プロダクト仕様
104 コンピュータ可読コードまたはアルゴリズム
106 要件
110 インストラクション・フェッチ・ユニット、IFユニット、ICジェネレータ、自動化されたICジェネレータ
112 GDSファイル
114 ファームウエア
116 ソフトウエア開発キット、SDK
118 テスト・スート
120 インストラクション・デコーダ
121 カスタム・チップ
130 デコーダ
140 汎用レジスタ
150 オペランド・フェッチ・ユニット
160 加算器
170 浮動小数点ユニット、FPU
180 実行ユニット
200 パイプライン段
210 組み合わせロジック、ロジック
220 パイプライン段
230 FPU
240 乗算器
250 加算器
260 ゲーティング・コントローラ
270 パイプライン段
400 期間
410 期間
420 期間
450 期間
510 AO
512 コスト関数クエリAPI
514 SAMAリーダAPI
515 評価コンテキスト管理
516 プロファイル・データ・リーダAPI
518 アーキテクチャ設計状態、MAML‐HG
520 多レベルのX階層マネージャ
522 ブラック‐ボックス・ビュー
524 カスタム多分解能階層的ビュー
526 ネットリスト・ビュー
528 ベースラインの物理設計モデル
530 評価コンテキスト物理設計モデル
540 電力ホット‐スポット推定エンジン
550 分析情報マネージャ

Claims (20)

  1. コンピュータが、カスタム集積回路(IC)設計において電力を管理する方法であって、
    a. コンピュータが、コンピュータ可読コードを含む前記カスタム集積回路の仕様を受け取り、かつ前記コンピュータ可読コードのプロファイルを生成してインストラクション利用度を決定し、
    b. コンピュータが、前記コンピュータ可読コードに対して固有のカスタマイズがなされたプロセッサ・アーキテクチャであって、1つまたは複数の処理ブロックおよび1つまたは複数の電力ドメインを有するプロセッサ・アーキテクチャを自動的に生成し、
    c. コンピュータが、各処理ブロックがいつ必要とされるかについて前記コード・プロファイルに基づいて決定し、かつ各ブロックを前記電力ドメインのうちの1つに割り当て、
    d. コンピュータが、前記電力ドメインの電力のゲーティングを、前記コード・プロファイルに基づいて行ない、
    e. コンピュータが、生成された前記アーキテクチャを、半導体製造のために前記カスタム集積回路のコンピュータ可読記述に合成する、
    方法。
  2. コンピュータが、前記プロファイルから機能ブロック利用度の統計を生成する、請求項1に記載の方法。
  3. コンピュータが、異なる処理ブロックの利用度を時間の関数として追跡する、請求項2に記載の方法。
  4. コンピュータが、1つまたは複数の処理ブロックの電力を推測して遮断し、電力を遮断した処理ブロックを必要時に自動的にオンに切り換える、請求項1に記載の方法
  5. コンピュータが、インストラクション・デコーダを使用して、各電力ドメインに対して電力がいつ印加されるべきかを決定する、請求項1に記載の方法。
  6. コンピュータが、前記コンピュータ可読コードの静的プロファイリングまたは動的プロファイリングを実行して処理ブロックの利用度を決定する、請求項1に記載の方法。
  7. コンピュータが、前記コンピュータ可読コードを走らせる前記カスタム集積回路のためのファームウエアまたはソフトウエア開発キット(SDK)を自動的に生成する、請求項1に記載の方法。
  8. コンピュータが、前記コンピュータ可読コードをアッセンブリ・コードにコンパイルする、請求項1に記載の方法。
  9. コンピュータが、前記アッセンブリ・コードをリンクして前記選択されたアーキテクチャのためのファームウエアを生成する、請求項8に記載の方法。
  10. コンピュータが、前記ファームウエアのサイクル‐ベースのシミュレーションを実行する、請求項に記載の方法。
  11. コンピュータが、前記ファームウエアの動的プロファイリングを実行する、請求項に記載の方法。
  12. コンピュータが、プロファイリングが行なわれたファームウエアに基づいて前記アーキテクチャを最適化する、請求項11に記載の方法。
  13. コンピュータが、前記アッセンブリ・コードに基づいて前記アーキテクチャを最適化する、請求項8に記載の方法。
  14. コンピュータが、前記選択されたアーキテクチャのためのレジスタ・トランスファ・レベルのコードを生成する、請求項1に記載の方法。
  15. コンピュータが、前記RTLコードの合成を実行する、請求項11に記載の方法。
  16. カスタム集積回路(IC)設計において電力を自動的に管理するシステムであって、
    a. コンピュータ可読コードを含む前記カスタム集積回路の仕様を受け取り、かつ前記コンピュータ可読コードのプロファイルを生成してインストラクション利用度を決定するための手段と、
    b. 前記コンピュータ可読コードに対して固有のカスタマイズがなされたプロセッサ・アーキテクチャであって、1つまたは複数の処理ブロックおよび1つまたは複数の電力ドメインを有するプロセッサ・アーキテクチャを自動的に生成するための手段と、
    c. 各処理ブロックがいつ必要とされるかについて前記コード・プロファイルに基づいて決定し、かつ各ブロックを前記電力ドメインのうちの1つに割り当てるための手段と、
    d. 前記電力ドメインの電力のゲーティングを、前記コード・プロファイルに基づいて行なうための手段と、
    e. 生成された前記アーキテクチャを、半導体製造のために前記カスタム集積回路のコンピュータ可読記述に合成するための手段と、
    を備えるシステム。
  17. 前記プロファイルから機能ブロック利用度の統計を生成する、請求項16に記載のシステム。
  18. 異なる処理ブロックの利用度を時間の関数として追跡するための手段を備える、請求項17に記載のシステム。
  19. 1つまたは複数の処理ブロックの電力を推測して遮断し、電力を遮断した処理ブロックを必要時に自動的にオンに切り換えるための手段を備える、請求項16に記載のシステム。
  20. 各電力ドメインに対して電力がいつ印加されるべきかを決定するインストラクション・デコーダを備える、請求項16に記載のシステム。
JP2013519753A 2010-07-13 2011-07-11 駆動電力ゲーティングの応用 Expired - Fee Related JP5725582B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/835,628 2010-07-13
US12/835,628 US8589854B2 (en) 2010-07-13 2010-07-13 Application driven power gating
PCT/US2011/043607 WO2012009293A1 (en) 2010-07-13 2011-07-11 Application driven power gating

Publications (2)

Publication Number Publication Date
JP2013538386A JP2013538386A (ja) 2013-10-10
JP5725582B2 true JP5725582B2 (ja) 2015-05-27

Family

ID=45467884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013519753A Expired - Fee Related JP5725582B2 (ja) 2010-07-13 2011-07-11 駆動電力ゲーティングの応用

Country Status (7)

Country Link
US (1) US8589854B2 (ja)
EP (1) EP2593889A1 (ja)
JP (1) JP5725582B2 (ja)
KR (1) KR20130044321A (ja)
CN (1) CN103097986A (ja)
TW (1) TW201222306A (ja)
WO (1) WO2012009293A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225247B2 (en) * 2010-07-13 2012-07-17 Satish Padmanabhan Automatic optimal integrated circuit generator from algorithms and specification
EP2798432A4 (en) 2011-12-27 2015-07-22 Intel Corp METHODS AND SYSTEMS FOR CONTROLLING POWER SUPPLY NETWORKS DURING AN ACTIVE STATE OF A PERIODICALLY TRIGGERED DOMAIN IN ACCORDANCE WITH PERIODICALLY RELEASED DOMAIN LOADING CONDITIONS
US9098271B2 (en) 2012-02-05 2015-08-04 Jeffrey R. Eastlack Autonomous microprocessor re-configurability via power gating pipelined execution units using static profiling
US9229524B2 (en) * 2012-06-27 2016-01-05 Intel Corporation Performing local power gating in a processor
US9557800B2 (en) 2012-08-31 2017-01-31 Micron Technology, Inc. Sequence power control
JP2014048972A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 処理装置、情報処理装置、及び消費電力管理方法
US9971535B2 (en) 2014-11-05 2018-05-15 Industrial Technology Research Institute Conversion method for reducing power consumption and computing apparatus using the same
US20220012392A1 (en) * 2020-07-10 2022-01-13 Taiwan Semiconductor Manufacturing Company Limited Systems and Methods for Generating Synthesizable Netlists From Register Transfer Level Designs
WO2023196124A1 (en) * 2022-04-08 2023-10-12 Microchip Technology Incorporated System-level design tool for selecting and confirming compatability of electrical components

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2815281B2 (ja) * 1993-04-19 1998-10-27 株式会社ピーエフユー デジタル回路設計支援システムおよびその方法
US7478031B2 (en) * 2002-11-07 2009-01-13 Qst Holdings, Llc Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information
JP2004186671A (ja) * 2002-11-18 2004-07-02 Matsushita Electric Ind Co Ltd 半導体集積回路装置及びその設計方法
WO2005024910A2 (en) * 2003-09-09 2005-03-17 Robert Eisenstadt Apparatus and method for integrated circuit power management
US7369815B2 (en) * 2003-09-19 2008-05-06 Qualcomm Incorporated Power collapse for a wireless terminal
US7930572B2 (en) * 2003-12-24 2011-04-19 Texas Instruments Incorporated Method and apparatus for reducing memory current leakage a mobile device
US7725848B2 (en) * 2005-01-27 2010-05-25 Wolfgang Nebel Predictable design of low power systems by pre-implementation estimation and optimization
US7627838B2 (en) * 2006-04-25 2009-12-01 Cypress Semiconductor Corporation Automated integrated circuit development
US7620926B1 (en) * 2007-03-20 2009-11-17 Xilinx, Inc. Methods and structures for flexible power management in integrated circuits
US8266575B1 (en) * 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
JP4422179B2 (ja) * 2007-10-19 2010-02-24 株式会社半導体理工学研究センター 半導体集積回路のタイミング解析装置及び方法
US8442697B2 (en) * 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
JP4954862B2 (ja) * 2007-12-25 2012-06-20 ルネサスエレクトロニクス株式会社 半導体集積回路
US7984412B1 (en) * 2008-03-03 2011-07-19 Xilinx, Inc. IC design estimation using mid-level elements of IP cores
US7966345B1 (en) * 2008-03-28 2011-06-21 Cypress Semiconductor Corporation Method, system, and graphical user interface for generating firmware code for a programmable integrated circuit
CN101329597B (zh) * 2008-07-28 2011-02-16 北京中星微电子有限公司 便携式多媒体处理平台的片上处理系统及电源管理方法
US20100138811A1 (en) * 2008-12-02 2010-06-03 Qualcomm Incorporated Dynamic Performance Profiling
JP2010282585A (ja) * 2009-06-08 2010-12-16 Fujitsu Ltd 電力管理回路、電力管理方法及び電力管理プログラム
US8286120B2 (en) * 2009-08-13 2012-10-09 Empire Technology Development, Llc Non-invasive leakage power device characterization of integrated circuits using device grouping and compressive sensing

Also Published As

Publication number Publication date
CN103097986A (zh) 2013-05-08
JP2013538386A (ja) 2013-10-10
US20120017198A1 (en) 2012-01-19
KR20130044321A (ko) 2013-05-02
TW201222306A (en) 2012-06-01
EP2593889A1 (en) 2013-05-22
WO2012009293A1 (en) 2012-01-19
US8589854B2 (en) 2013-11-19

Similar Documents

Publication Publication Date Title
JP5725582B2 (ja) 駆動電力ゲーティングの応用
Benini et al. System-level power optimization: techniques and tools
JP5725583B2 (ja) アーキテクチャ・レベルの省電力指向の最適化およびリスク軽減
Hong et al. Power optimization of variable voltage core-based systems
Burd et al. Processor design for portable systems
Swanson et al. Greendroid: Exploring the next evolution in smartphone application processors
Park et al. A multi-granularity power modeling methodology for embedded processors
Li et al. An efficient algorithm for library-based cell-type selection in high-performance low-power designs
Qamar et al. LP-HLS: Automatic power-intent generation for high-level synthesis based hardware implementation flow
Senn et al. SoftExplorer: estimation, characterization, and optimization of the power and energy consumption at the algorithmic level
Azizi et al. An integrated framework for joint design space exploration of microarchitecture and circuits
JP2013532856A (ja) アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ
Henkel et al. Avalanche: an environment for design space exploration and optimization of low-power embedded systems
Ratković et al. An overview of architecture-level power-and energy-efficient design techniques
Marchal et al. Optimizing the memory bandwidth with loop fusion
Wang et al. Compiler-assisted leakage-aware loop scheduling for embedded VLIW DSP processors
Hajiamini et al. Impact of cache voltage scaling on energy-time pareto frontier in multicore systems
Macko Contribution to automated generating of system power-management specification
Sampson et al. An evaluation of selective depipelining for fpga-based energy-reducing irregular code coprocessors
Huang et al. Efficient and scalable compiler-directed energy optimization for realtime applications
Marculescu et al. Application-driven processor design exploration for power-performance trade-off analysis
Chen et al. TACLC: Timing-aware cache leakage control for hard real-time systems
Agosta et al. Multi-objective co-exploration of source code transformations and design space architectures for low-power embedded systems
Raghavan et al. Distributed loop controller for multithreading in unithreaded ILP architectures
Lee et al. Power-aware code scheduling assisted with power gating and DVS

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150326

R150 Certificate of patent or registration of utility model

Ref document number: 5725582

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees