(57)【要約】  ディジタルシステム１は、アプリケーションの実行（３）を制御するソフトウェアからの一つ以上の性能インジケータ又はパラメータ（６）を受信するための受信手段（５）を備えている。調整回路（７）は、受信手段（５）により受信される性能インジケータに基づいてディジタルシステム（１）の周波数（ｆ）、供給電圧（Ｖｄｄ）及び／又はトランジスタ閾値電圧（Ｖｂ）を調整するために設けられている。また、パイプライン設定手段（８）は、選択手段（１０）により決定されたパイプライン深さに基づいてディジタルシステム（１）のパイプラインを設定するために設けられている。選択手段（１０）は、周波数（ｆ）、供給電圧（Ｖｄｄ）、トランジスタ閾値電圧（Ｖｂ）に基づいて且つアプリケーションが最大スループット又は最小待ち時間を必要とするかどうかに従ってパイプライン深さ（Ｐｄ）を選択するように構成されている。
2008527560.tif 000002
【特許請求の範囲】
【請求項１】
ディジタルシステムの性能を調整する方法であって、
ディジタルシステムの性能に関連する一つ以上の性能インジケータを受信するステップと、
ディジタルシステムの周波数、供給電圧及び／又はトランジスタ閾値電圧を調整して所望の性能を得るステップと、
その後、ディジタルシステムの性能を微調整するためにディジタルシステムのパイプライン深さを調整するステップと、
を含むことを特徴とする方法。
【請求項２】
パイプライン深さを調整する前記ステップの前に、所定の周波数にとって最適なパイプライン深さを決定するステップがあることを特徴とする請求項１に記載の方法。
【請求項３】
最適なパイプライン深さを決定する前記ステップは、ディジタルシステムにおいて最大スループットを達成することに基づいていることを特徴とする請求項２に記載の方法。
【請求項４】
最適なパイプライン深さを決定する前記ステップは、ディジタルシステムにおいて最小待ち時間を達成することに基づいていることを特徴とする請求項２に記載の方法。
【請求項５】
最適なパイプライン深さを決定する前記ステップは、ディジタルシステムにおけるスループットと待ち時間との間の折衷を達成することに基づいていることを特徴とする請求項２に記載の方法。
【請求項６】
パイプライン深さを調整する前記ステップは、ディジタルシステムにおいて異なるパイプラインステージを分離する一つ以上のレジスタバンクをスキップするステップを含んでいることを特徴とする請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
ディジタルシステムの異なる部分が異なる性能インジケータに従って調整されることを特徴とする請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
ディジタルシステムが、ＩＰブロック又はＳｏＣであることを特徴とする請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
ディジタルシステムの性能を調整するための装置であって、
ディジタルシステムの性能に関連する一つ以上の性能インジケータを受信するための手段と、
所望の性能を得るためにディジタルシステムの周波数、供給電圧及び／又はトランジスタ閾値電圧を調整するための調整手段と、
前記調整手段がディジタルシステムを調整した後にディジタルシステムのパイプライン深さを調整することによりディジタルシステムの性能を微調整するためのパイプライン設定手段と、
を備えることを特徴とする装置。
【請求項１０】
所望の性能を得るために最適なパイプライン深さを選択するための選択手段を更に備えることを特徴とする請求項９に記載の装置。
【請求項１１】
前記選択手段は、ディジタルシステムにおいて最大スループットを達成するのに最適なパイプライン深さを選択するように構成されていることを特徴とする請求項１０に記載の装置。
【請求項１２】
前記選択手段は、ディジタルシステムにおいて最小待ち時間を達成するのに最適なパイプライン深さを選択するように構成されていることを特徴とする請求項１０に記載の装置。
【請求項１３】
前記選択手段は、ディジタルシステムにおけるスループットと待ち時間との間の折衷を達成するのに最適なパイプライン深さを選択するように構成されていることを特徴とする請求項１０に記載の装置。
【請求項１４】
パイプライン深さを調整するための前記パイプライン設定手段は、ディジタルシステムにおいて異なるパイプラインステージを分離する一つ以上のレジスタバンクをスキップするための手段を備えていることを特徴とする請求項９乃至１３のいずれか一項に記載の装置。
【請求項１５】
ディジタルシステムの異なる部分は異なる性能インジケータに従って調整されるように構成されていることを特徴とする請求項９乃至１４のいずれか一項に記載の装置。
【請求項１６】
ディジタルシステムがＩＰブロック又はＳｏＣであることを特徴とする請求項９乃至１５のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰブロック又はシステムオンチップ（ＳｏＣ）等のディジタルシステムの性能を調整するための方法及び装置に関し、特に、特定のアプリケーションに従って最良の実行を行うためにディジタルシステムの性能を調整する方法及び装置に関する。
【背景技術】
【０００２】
ディジタルシステムのハードウェア設計を改良して、速度、電力消費量、誤りの無い動作等に関して最良の可能な性能を得ようとする流れはとどまることがない。ディジタルシステムの実際のハードウェア設計の改良に加え、ディジタルシステムの動作パラメータを変更することにより任意の所定のディジタルシステムの性能を向上させようとする流れも絶え間なく続いている。例えば、所定のアプリケーションにとって望ましい性能に応じてディジタルシステムが最も速い可能な周波数で及び／又は最も低い可能な電力消費量をもって動作するようにディジタルシステムの動作パラメータを変更することが知られている。
【０００３】
例えば孤立したＩＰブロック又はＳｏＣ等のディジタルシステムの性能を適合させ、それにより、特定のアプリケーションに応じて何等かの最適な方法で特定のレベルの性能が速度及び電力の両方に関して保証されるようにするべく技術が開発されてきた。図１は、ディジタルシステムの性能を変化させるためにディジタルシステムの供給電圧、周波数、トランジスタ閾値電圧を変更することができる既知のシステムの一例を示している。
【０００４】
図１において、ディジタルシステム１は、特定のアプリケーションを実行するための実行手段３を備えている。また、ディジタルシステム１は、ディジタルシステム１を調整するための性能インジケータ又はパラメータを受信する受信手段５も備えている。例えば、性能インジケータは、アプリケーションの実行を制御するソフトウェアから専用の命令６の形態において受信されてもよい。調整回路７は、受信手段５により受信される性能インジケータに基づいてディジタルシステム１の周波数（ｆ）、供給電圧（Ｖｄｄ）及び／又はトランジスタ閾値電圧（Ｖｂ）を調整するために設けられている。このように、ソフトウェアにより通信される性能インジケータ６は、所望の性能を得ることができるようにハードウェアの動作パラメータを適合させるという効果を有している。所望の性能は、多くの方法で、例えば、ギガ毎秒演算（ＧＯＰＳ）を参照することにより、最大電力消費量レベルを参照することにより、又は、所望の雑音マージン若しくはレベルを参照することにより、指定することができる。そして、調整手段７は、所望の性能を得るためにハードウェアの性能を調整することができる。
【０００５】
図２は、図１のディジタルシステムの動作を制御するソフトウェアの動作を記載している。ステップ２１においては、アプリケーションがコンパイルされ、その後、アプリケーションの実行プロファイルを決定するステップが続く（ステップ２３）。その後、一つ以上の性能インジケータ又はパラメータが決定される（ステップ２５）。前述したように、性能インジケータは、ＧＯＰＳ、電力消費量又は雑音指数に関して指定することができる。性能インジケータに基づいてディジタルシステムのパラメータを調整することによりアプリケーションの実行が増大させられる（ステップ２７）。また、前述したように、調整は、ディジタルシステム１の周波数（ｆ）、供給電圧（Ｖｄｄ）及び／又はトランジスタ閾値電圧（Ｖｂ）を調整することを含んでいる。
【０００６】
この技術は、ＩＰブロック又はＳｏＣの性能をリアルタイムで最適化するための調整方式を提供している。この技術は、速度及び／又は電力消費量に関する所定の望ましい性能にとって最適な供給電力（Ｖｄｄ）、閾値電圧（Ｖｂ）及びクロック周波数（ｆ）を決定する。
【０００７】
また、近年のディジタルシステムは、遅い相互接続、過度な電力需要及び複雑なシステム構成に関連する益々多くの問題に直面している。これらの問題は、結果として、それぞれが内部で同期し且つシステムの残部から独立する複数の島（すなわち、ＩＰのグループ）にディジタルシステムを分割するという概念をもたらしてきた。このようにすると、システムが非同期となる。所定のアプリケーションにとって最適な性能を与えるために各区分又は島の性能を前述したように調整することができる。そのような技術は、速度及び／又は電力消費量に関して所望の性能を得るために有利であるが、これらの技術は、ディジタルシステムのデータスループット及び／又はデータ待ち時間にとって不利な結果をもたらす可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、前述した欠点を有することなくディジタルシステムの性能を調整するための方法及び装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明の第一の態様によれば、ディジタルシステムの性能を調整する方法が提供される。上記方法は、ディジタルシステムの性能に関連する一つ以上の性能インジケータを受信するステップと、ディジタルシステムの周波数、供給電圧及び／又はトランジスタ閾値電圧を調整して所望の性能を得るステップと、を含む。また、上記方法は、その後、ディジタルシステムの性能を微調整するためにディジタルシステムのパイプライン深さを調整するステップを含む。
【００１０】
本発明は、所望レベルの性能を得るために与えられる性能インジケータに従って初期調整ステップを行うことができるとともに、ディジタルシステムの性能を微調整するためにパイプライン深さ調整を行うことができるという利点を有している。
【００１１】
本発明の他の態様によれば、ディジタルシステムの性能を調整するための装置が提供される。上記装置は、ディジタルシステムの性能に関連する一つ以上の性能インジケータを受信するための手段と、所望の性能を得るためにディジタルシステムの周波数、供給電圧及び／又はトランジスタ閾値電圧を調整するための調整手段と、を備える。また、上記装置は、上記調整手段がディジタルシステムを調整した後にディジタルシステムのパイプライン深さを調整することによりディジタルシステムの性能を微調整するためのパイプライン設定手段を備える。
【００１２】
ここで、本発明を更に良く理解するため、また、本発明をどのように実行に移すことができるのかを更に明確に示すために、単なる一例として図面を参照する。
【発明を実施するための最良の形態】
【００１３】
図３は、本発明に係るシステムを示している。図１に関連して前述したように、ディジタルシステム１は、特定のアプリケーションを実行するための実行手段３を備えている。また、ディジタルシステム１は、ディジタルシステム１の性能を増大させるためにソフトウェアからの一つ以上の性能インジケータ又はパラメータ６を受信する受信手段５も備えている。調整回路７は、受信手段５により受信される性能インジケータに基づいてディジタルシステム１の周波数（ｆ）、供給電圧（Ｖｄｄ）及び／又はトランジスタ閾値電圧（Ｖｂ）を調整するために設けられている。
【００１４】
しかしながら、本発明においては、ディジタルシステム１は、ディジタルシステム１のパイプライン深さを設定するためのパイプライン設定手段８も備えている。また、システムは、調整されるディジタルシステムの周波数（ｆ）、供給電圧（Ｖｄｄ）、トランジスタ閾値電圧（Ｖｂ）及びパイプライン深さ（Ｐｄ）を選択するための選択手段１０を備えている。選択手段１０は、以下で更に詳しく説明するように、所定のアプリケーションのために受信された性能インジケータに従ってディジタルシステムの周波数（ｆ）、供給電圧（Ｖｄｄ）、トランジスタ閾値電圧（Ｖｂ）及びパイプライン深さ（Ｐｄ）を選択するように構成されている。
【００１５】
図４は、本発明に係る図３のディジタルシステムの動作を制御するソフトウェアの動作を記載している。ステップ４１においては、アプリケーションがコンパイルされ、その後、アプリケーションの実行プロファイルを決定するステップが続く（ステップ４３）。その後、所定のアプリケーションのための所望の性能に関して一つ以上の性能インジケータ又はパラメータが決定される（ステップ４５）。例えば、性能インジケータは、ＧＯＰＳ、電力消費量又は雑音指数に関して指定することができる。その後、パイプライン深さが所定の周波数に関して設定され、それにより、スループット又は待ち時間を最適化することができる（ステップ４６）。ソフトウェアによって提供される一つ又は複数の性能インジケータに基づいてディジタルシステムのパラメータを調整することによりアプリケーションの実行が増大される（ステップ４７）。
【００１６】
従って、本発明によれば、調整は、ディジタルシステム１の周波数（ｆ）、供給電圧（Ｖｄｄ）及び／又はトランジスタ閾値電圧（Ｖｂ）を調整することに加え、パイプライン深さ（Ｐｄ）を調整することを含んでいる。このように、パイプライン深さの調整は、ディジタルシステムが周波数（ｆ）、供給電圧（Ｖｄｄ）及び／又はトランジスタ閾値電圧（Ｖｂ）に関して調整された後にディジタルシステムを微調整する手段としての機能を果たす。
【００１７】
選択手段１０は、スループット、待ち時間、又は、スループット及び待ち時間の折衷（compromise）若しくは平均を最適化すべく、任意の所定の周波数に関して最良の可能なパイプライン深さを決定するように構成することができる。あるいは、選択手段１０は、任意の所定の周波数に関して可能なパイプライン深さの範囲を決定するように構成することができる。これは、パイプラインの二つのステージ間の最大遅延に関して周波数がパイプライン深さに対する厳しい制約を与えるからである。電源（Ｖｄｄ）及びトランジスタ閾値電圧（Ｖｂ）も遅延を変更し、その意味では、これらもこの厳しい制約に影響を与える。これが上側の遅延制約であることは認識されるであろうが、更に小さい遅延（更に深いパイプラインに対応する）が許容され、これはソフトウェアから受信される性能インジケータにのみ依存する。
【００１８】
選択手段１０は、パイプライン深さオンザフライ（on-the-fly；進行中）を決定するように構成することができる。換言すると、選択手段１０は、ソフトウェアから受信される一つ又は複数の性能インジケータに応じてパイプライン深さを動的に決定するように構成することができる。あるいは、選択手段１０は、ルックアップテーブルに記憶された予め計算された値に基づいてパイプライン深さを選択するように構成することができる。後者の場合、ルックアップテーブルは、周波数（ｆ）、供給電圧（Ｖｄｄ）及び／又はトランジスタ閾値電圧（Ｖｂ）の異なる組合せにおける特定のスループット又は待ち時間を与えるために必要とされるパイプライン深さのリストを含んでいる。
【００１９】
パイプラインを設定するステップは、パイプラインの深さを変更することを含んでいる。パイプラインの深さは、ディジタルシステムにおいてパイプラインステージを分離する一つ以上のレジスタバンクをスキップすることにより変更することができる。これにより、特定のアプリケーションに応じてデータスループット又はデータ待ち時間に関して性能を変化させることができる。当業者には認識されるように、パイプラインのスループットは、命令がどのくらいの頻度でパイプラインから出ていくのかについての指標、即ち、１秒間当たりに完了される命令の数の指標である。一方、パイプライン待ち時間は、パイプラインで一つの命令を実行するのにどのくらいの時間を要するのかに関連している。
【００２０】
パイプラインの深さを変更すること自体は知られているが、深さは、通常、周波数を減少させるために変更され、それにより、電力消費量が減少させられる。これは分離の利点を制限していた。本発明は、最初に例えば電力消費量を低減するために供給電圧（Ｖｄｄ）、周波数（ｆ）及び／又はトランジスタ閾値電圧（Ｖｂ）に関してシステムが調整されるが、パイプライン深さを調整するために更なる調整がなされるという点において異なっている。即ち、電力消費量を低減するための供給電圧（Ｖｄｄ）、周波数（ｆ）及び／又はトランジスタ閾値電圧（Ｖｂ）の調整が、システムの全体の性能を低下させるという副作用をもたらしても、これがパイプライン深さの調整によって補償されて性能が向上する。即ち、データスループット又はデータ待ち時間が最適化される。
【００２１】
図５は、本発明に係る装置の動作を記載した状態図を示している。初期状態は状態５０であり、この状態は、コントローラが始動されるとき又はコントローラが新たな性能インジケータを受信するときのいずれかである。この時点で、コントローラは状態５１に移行し、この状態では、コントローラは、ノイズ（雑音）が所定のマージンの範囲内にあるかどうかを決定するために雑音指数等の抽出されたパラメータをチェックする。ノイズが所定のマージンの範囲内にない場合、コントローラは、ノイズを許容レベルまで低下させるためのノイズループ５６に入る。これは、供給電圧（Ｖｄｄ）、トランジスタ閾値電圧（Ｖｂ）及び／又は供給周波数（ｆ）の非常に細かい変化により達成される。
【００２２】
ノイズが最大レベルを下回る場合、コントローラは状態５３へ移行する。この状態では、パイプラインチェックが行われる。ここで、性能インジケータは、電力を最小限に抑制し且つ達することが容易なトリプル（パイプライン深さ、周波数、供給電圧）へ変換される（新たなトリプルに達するのにどのくらいの時間を要するのかに対する設計制約、並びに、供給電圧及び周波数の変化における遅延により、局所性が決定される最小状態距離を伴う極大）。その後、トリプルは、遅延ループ（５４）及び供給ループ（５５）によってシステムに課される。パイプライン深さ、供給電圧及びクロック周波数が変更されるべき順序が存在するため、これらのループは独立していない。例えば、好ましくは、電力供給が増大されるまで周波数が増大されるべきではない。また、好ましくは、電力供給の減少の前に周波数の減少が行われなければならない。トランジスタ閾値電圧（Ｖｂ）の変化がパワー速度及びノイズ作用に隠され得ることは認識されるであろう。
【００２３】
コントローラは、性能インジケータを変化させなくてもそれが常に制約された極小を追跡するという事実に起因してトリプル（パイプライン深さ、周波数、供給電圧）を変更することができるようになっている。これは、例えば、温度等の環境条件の変化に起因して供給電圧（Ｖｄｄ）、周波数（ｆ）、トランジスタ閾値電圧（Ｖｂ）及びパイプライン深さ（Ｐｄ）の値が変更されるときに起こり得る。
【００２４】
好ましい実施の形態は、ＩＰブロック又はＳｏＣであるディジタルシステムに言及しているが、ディジタルシステムが別個の領域又は島に分けられる集積回路を含む任意の形態の集積回路であってもよいことは認識されるであろう。
【００２５】
また、性能インジケータは、ソフトウェアからハードウェアへ専用の命令の形態で通信されるものとして説明されているが、性能インジケータを他の方法により供給することができることは認識されるであろう。
【００２６】
尚、前述した実施の形態は例示であり、本発明を限定するものではなく、また、当業者であれば添付の請求項の範囲から逸脱することなく多くの他の実施の形態を想起することができる。用語「備える、含む（comprising ）」は、請求項に記載された要素又はステップ以外の要素又はステップの存在を排除せず、「一つの（ａ，ａｎ）」は複数を排除せず、また、一つのプロセッサ又は他のユニットが請求項に記載された複数のユニットの機能を果たしてもよい。請求項中の任意の参照符号は、請求項の範囲を限定するように解釈されてはならない。
【図面の簡単な説明】
【００２７】
【図１】ディジタルシステムの性能を調整するための従来の装置のブロック図である。
【図２】ディジタルシステムの性能を調整するために図１の装置がどのように制御されるのかを示すフローチャートである。
【図３】ディジタルシステムの性能を調整するための本発明に係る装置のブロック図である。
【図４】本発明に従ってディジタルシステムの性能を調整するために図３の装置がどのように制御されるのかを示すフローチャートである。
【図５】本発明に係るシステムの動作を示す状態図である。
【図１】
2008527560.tif 000003
【図２】
2008527560.tif 000004
【図３】
2008527560.tif 000005
【図４】
2008527560.tif 000006
【図５】
2008527560.tif 000007
【国際調査報告】
2008527560.tif 000008
2008527560.tif 000009
2008527560.tif 000010