JP2009069921A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム Download PDF

Info

Publication number
JP2009069921A
JP2009069921A JP2007234829A JP2007234829A JP2009069921A JP 2009069921 A JP2009069921 A JP 2009069921A JP 2007234829 A JP2007234829 A JP 2007234829A JP 2007234829 A JP2007234829 A JP 2007234829A JP 2009069921 A JP2009069921 A JP 2009069921A
Authority
JP
Japan
Prior art keywords
task
processing
processor unit
control
tasks
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.)
Pending
Application number
JP2007234829A
Other languages
English (en)
Inventor
Hiroaki Kano
裕明 鹿野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007234829A priority Critical patent/JP2009069921A/ja
Priority to US12/172,919 priority patent/US8112754B2/en
Publication of JP2009069921A publication Critical patent/JP2009069921A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K2217/00Indexing scheme related to electronic switching or gating, i.e. not by contact-making or -breaking covered by H03K17/00
    • H03K2217/0018Special modifications or use of the back gate voltage of a FET
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Power Sources (AREA)

Abstract

【課題】マルチタスク処理においてタスクの処理時間短縮と消費電力の低減とを両立することができるマルチプロセッサシステムを提供する。
【解決手段】SOI・MOSトランジスタを用いるマルチプロセッサシステムにおいて、複数のタスクに分割された実行プログラムを複数のプロセッサユニット(101)に割り当てるスケジューリング処理において、複数個のプロセッサユニットにタスク割当を行なう。このとき、プログラムの実行時間を小さくするようタスク実行順を決定するプロセスと、スケジューリング時に、実行タスク間に依存性があるとき一のタスクの処理性能に影響を与える他のタスクを実行する際に実行するプロセッサユニットの動作速度を一時的に向上させるようにプロセッサユニットのクロック信号周波数と基板バイアスを制御する電力制御と、を採用する。
【選択図】図1

Description

本発明はマルチプロセッサシステムにおける基板バイアス制御と周波数制御に関し、例えばシステム・オン・チップ(SoC)の半導体装置に適用して有効な技術に関する。
半導体製造技術の進歩による回路素子の微細化により、膨大な数のトランジスタを集積することが可能となっている。それと同時にプロセッサの同期クロック信号の高周波数化も進むが、動作時の消費電力の増加、更には待機時のリーク電流に起因する待機時電力の増加により、従来のプロセッサが歩んできた動作周波数の向上と論理方式の改善により達成してきた性能向上に限界が見え始めている。一方で、自動車のナビゲーションシステム、携帯電話、デジタルテレビなど、画像、音声、データベース情報など多様なデータを同時に扱うデジタル民生機器が登場し、特性の異なる膨大なデータを短時間にかつ低電力に処理することが強く求められている。そこで現在、性能改善と低電力化を実現する手段として、従来の単一チップで提供されたプロセッサユニットを複数個単一チップ上に集積し、処理を並列で行うことで、動作周波数を向上させなくとも、高い演算性能を得ることが可能な、マルチプロセッサシステムが有望となっている。将来、微細化がさらに進むことで、100個〜1000個のプロセッサユニット(演算ユニット)をオンチップで搭載することも可能となると予測される。
また、特に組み込み機器向けシステムにおいては、無線や画像、音声など定型的なデジタル信号処理を扱うことも多く、性能改善と低電力化を両立する手段として、同一の汎用プロセッシング、つまり同一の命令セットで構成及び演算性能が同一な汎用プロセッシングを複数個集積したホモジニアスなマルチプロセッサシステム以外に、複数個のプロセッシングに加え、ある特定の処理を非常に効率良く(高速にかつ低電力に)処理可能な専用プロセッサ、アクセラレータ、といった命令セットが異種である、様々な種類のプロセッシングを複数個単一チップで搭載し、特に一定のアプリケーションを対象とし、高い演算効率を目指したヘテロジニアスマルチプロセッサシステムも現在提案されている。
以上のような複数個のプロセッサユニット(PU)を搭載するマルチプロセッサシステムでは、その性能を引き出すために複数個のPUを同時に効率よく動作させるよう、プログラムを作成する必要が生じる。通常の入力プログラムは処理が時系列で逐次的に記述されているため、複数のPUを搭載するにも関わらず、当該複数PUに比例して期待される演算性能を得ることができない。この問題点を解決するための一つの方法として、プログラム開発者が自らプログラムの並列性を考慮し、当該プログラムを実行させるマルチプロセッサシステムの構成に基づいて、当該プログラムを複数のPUで実行させるための並列化コードを付加する必要がある。しかしながら、本手法はPUが数個のシステムにおいては有効であるが、将来の数十〜数千といった数のPUが積載されたシステムにおいては、また特にPUが異種で構成される場合は、開発時間、実効性能の点で実用的ではない。特許文献1では、これを解決する一手法として、並列化コンパイラによるプログラムのタスク分割とタスク並列解析、コンパイル時におけるPUへの並列タスクケジューリング、並びに並列スケジューリング結果に基づく静的なPUの電力制御手法を開示している。
また、以上のプロセッサを実現するためのデバイス技術として、これまでCMOS(Complementary Metal−Oxide−Semiconductor)技術が主流であり、上記で述べた通り、トランジスタのスケーリングに併せてトランジスタ数の増加と、スイッチング速度の高速化による周波数向上で、プロセッサの性能向上が実現されていた。しかしながら、上述の理由により、これ以上の微細化は、リーク電流等の様々な問題により、従来手法での性能向上が見出せなくなっている。そこで、リーク電力を抑えつつ高速化を実現するデバイス技術として、絶縁基板上にシリコン結晶を形成し、当該シリコン上にトランジスタを形成する、SOI(Silicon on Insulator)が有望となっている。SOI構造を取ることにより、基板容量を抑えられスイッチング速度が向上でき、また従来のシリコン基板では難しかった基板電位の操作(基板バイアス制御)が容易に実現でき、高速化と低電力化を同時に実現される。SOIには、絶縁膜上のシリコン層の膜厚が薄い完全空乏型MOSトランジスタ(FD−SOI・MOSトランジスタ)と、シリコン層の膜厚が厚い部分空乏型トランジスタ(PD−SOI・MOSトランジスタ)とに分類される。完全空乏型のMOSトランジスタは動作状態においてチャネル領域(ボディー部)全体が空乏化し、チャネル(反転層)を形成する電荷は基板の影響を受けずに移動ずることができ、ゲート電圧による反転層電荷への影響がより支配的となり、部分空乏型の構造等に比べて非状に良好なサブスレッショルド特性を持つ。
特に従来のSOI構造をとらない、バルクCMOSでは、基板容量が大きく基板電圧の印加には駆動能力の大きな電圧生成回路が必要、基板電位の制御時間が大きい、トランジスタ素子が分離されていないためラッチアップ現象による過電流が流れてしまう、基板ノイズ発生の要因となる、といった問題が生じていた。このため、基板電位を正の方向(閾値電圧を極めて小さくする方向)に印加する、短期間で電位を切り替える、といったことは現実的ではなかった。SOI技術を利用することにより、さまざまな粒度における高速な基板バイアス制御が実現される。
特許文献2では、薄膜埋め込み酸化膜層を持つFD−SOIを使用し、薄膜埋め込み酸化膜層の下層半導体領域をバックゲートとし、論理回路ブロックにおいてブロック中の負荷の軽い論理回路にはバックゲートの電圧をブロック活性化に合わせてブロック外から制御することで、回路の動作特性に応じて使い分け、幅広い温度範囲にて高速かつ低電力な半導体装置を実現する手法を開示している。
また、従来からある半導体回路の電力制御の手法として、特許文献3で開示されている周波数・電圧制御手法がある。本手法は処理時間に余裕のあるタスクを実行するときはクロック周波数と共に電源電圧を低下させることで、消費電力の削減を実現する。しかしながら、電圧変更に対する制御時間が非常に大きい、また電源を駆動するためには駆動力が大きな電源回路を付加する必要があり面積的なオーバーヘッドが大きい、といった問題点がある。また、デバイスの微細化が進む中で、電源電圧もスケーリングされ、65nm世代のCMOSでは電源電圧が1.0Vと非常に低い値となっている。そのため、電源電圧を安定的に低下させることが可能なレベルは0.8〜0.9Vと、その下げ幅は非常に小さいものとなっている。これは、プロセスの微細化がさらに進んだ、45nm以降では電圧の下げ幅がほとんどゼロとなり、電圧降下手法を取ることが難しくなると予想される。また、微細化に伴い、これまでスイッチング電流である充放電電流が支配的であった消費電力は、スイッチを定常的に流れる各種リーク電流が問題となり、電源電圧を下げるのみでなく、基板バイアス制御など複数の手法を組み合わせる必要がある。
特開2006−293768号公報 特開2007−42730号公報 特開2002−304232号公報
現在、自動車のナビゲーションシステム、携帯電話、デジタルテレビなどといった、画像、音声、データベース情報など多様なデータを同時に扱う新アプリケーションが生まれる中で、プロセッサ性能への要求が大きく高まっている。そこで、複数のプロセッサユニット(PU)を搭載し、プログラムを並列動作させることで、動作周波数を上げずとも性能を向上する、マルチプロセッサシステムが主流となっている。本発明者は以下の検討を行った。複数のPUを活用するためには、複数の並列化可能なタスクを同時に多くのPUに効率的に割り当てる必要がある。また、マルチプロセッサシステムでは、タスクを実行する際に、タスク間のデータや制御依存性のため、必ずしも同時に実行されないケース、PUが他のタスクの実行終了を待つケース、により、PUがアイドル状態になることもある。性能・電力面でのシステム全体の実行効率を上げるためには、全体の実行時間に影響を与えるタスクを高速に実行し、また電力効率の観点から、全体の実行時間に影響を与えないタスクは低速に実行する必要がある。また、特に消費電力の観点からも、各PUがアイドル状態では無駄な電力が消費されていることから、アイドル状態を削減する、またはアイドル状態において電源遮断を行う、基板バイアスを印加する、等の電力制御を行う必要がある。
本発明の目的は、マルチタスク処理においてタスクの処理時間短縮と消費電力の低減とを両立することができるマルチプロセッサシステムを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、SOI・MOSトランジスタを用いるマルチプロセッサシステムにおいて、複数のタスクに分割された実行プログラムを複数のプロセッサユニットに割り当てるスケジューリング処理において、複数個のプロセッサユニットにタスク割当を行なう。このとき、プログラムの実行時間を小さくするようタスク実行順を決定するプロセスと、スケジューリング時に、実行タスク間に依存性があるとき一のタスクの処理性能に影響を与える他のタスクを実行する際に実行するプロセッサユニットの動作速度を一時的に向上させるようにプロセッサユニットのクロック信号周波数と基板バイアスを制御する電力制御と、スケジューリング時に実行タスク間に依存性があるとき一のタスクの処理性能に影響を与えない他のタスクを実行する際には実行するプロセッサユニットの動作速度を一時的に低下させるようにプロセッサユニットのクロック信号周波数と基板バイアスを制御する電力制御と、を採用する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、SOI・MOSトランジスタを用いたマルチプロセッサシステムによるマルチタスク処理においてタスクの処理時間短縮と消費電力の低減とを両立することができる。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕マルチプロセッサシステムは、並列動作可能な複数のプロセッサユニット(101)と、基板バイアス制御回路(102)と、コントロールプロセッサユニット(103)とを有する。前記プロセッサユニットは、他のMOSトランジスタから電気的に分離された背面ゲート電極を備えたシリコン・オン・インシュレータ構造のSOI・MOSトランジスタから成る内部回路を備え、クロック信号に同期動作される。前記基板バイアス回路は前記内部回路のSOI・MOSトランジスタの背面電極に基板バイアス電圧を出力する。前記コントロールプロセッサユニットは、タスク間の依存性を考慮して前記複数のプロセッサユニットに複数のタスクを並列的に処理させるタスクスケジューリングを行なうと共に、前記基板バイアス電圧と前記クロック信号の周波数を前記プロセッサユニット毎に制御するための制御データを生成し、前記タスクスケジューリングに際して、一のタスクの処理開始に影響を与える他のタスクの処理時間を短縮するように前記制御データを決定する。
タスクの依存関係、特にタスクの処理開始に影響を与えるタスクの処理を基板バイアス制御と周波数制御によって高速化することができる。SOI・MOSトランジスタのデバイス構造より動作時の基板電流リークの抑制と非動作時のサブスレッショルド電流リークの抑制が実現される。これにより、マルチプロセッサシステムにおけるマルチタスク処理においてタスクの処理時間短縮と消費電力の低減とを両立することが可能になる。
〔2〕項1のマルチプロセッサシステムにおいて、タスク間の依存関係を規定する依存関係テーブル(タスクスケジューリングテーブル)を格納するメモリを有する。前記コントロールプロセッサユニットは、前記依存関係テーブルを参照して、タスク間の依存性を把握する。ソースプログラムをコンパイルする段階でタスク間の依存性を考慮する場合に比べて、ソフトウェア開発時間の短縮に寄与することができる。その効果は、マルチプロセッサシステムに搭載されるプロセッサユニットの数が多数であるほど顕著である。
〔3〕項1のマルチプロセッサシステムにおいて、前記コントロールプロセッサユニットは、前記他のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を小さくし、且つクロック信号の周波数を高くするように、前記制御データを決定する。基板バイアス制御によりSOI・MOSトランジスタの閾値電圧が小さくされることにより、回路の状態遷移時間が短くなり、高い周波数による動作の高速化が実現される。SOI・MOSトランジスタは、その構造ゆえに、動作状態において閾値電圧を小さくしても基板への電流リークを生ぜず、非動作状態におけるオサブスレッショルドリーク電流も低減され、これらの点で低消費電力が実現される。
〔4〕項1のマルチプロセッサシステムにおいて、前記他のタスクの処理の完了を待って、前記一のタスクが処理されるとき、前記コントロールプロセッサユニットは、前記他のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を小さくし、且つクロック信号の周波数を高くするように、前記制御データを決定する。他のタスクの処理
〔5〕項4のマルチプロセッサシステムにおいて、前記他のタスクの処理に並行して、前記一のタスクの処理開始に影響を与える別のタスクが処理されるとき、前記コントロールプロセッサユニットは、前記別のタスクの処理終了タイミングが前記他のタスクの処理終了タイミングよりも遅くならない範囲で、前記別のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を大きくし、且つクロック信号の周波数を低くするように、前記制御データを決定する。前記別のタスクの処理は前記他のタスクの処理よりも遅延せずに終了すれば、当該他のタスクの処理を高速化した意味は失われない。したがって、前記別のタスクの処理を他のタスクの処理終了に間に合う範囲で低速にすることによってシステムの低消費電力に寄与する。
〔6〕マルチプロセッサシステムは、並列動作可能な複数のプロセッサユニットと、基板バイアス制御回路とを有する。前記プロセッサユニットは、他のMOSトランジスタから電気的に分離された背面ゲート電極を備えたシリコン・オン・インシュレータ構造のSOI・MOSトランジスタから成る内部回路を備え、クロック信号に同期動作される。前記基板バイアス回路は前記内部回路のSOI・MOSトランジスタの背面電極に基板バイアス電圧を出力する。一のプロセッサユニットはスケジューラ(300)を実行してタスク間の依存性を考慮して前記複数のプロセッサユニットに複数のタスクを並列的に処理させるタスクスケジューリングを行なう。夫々の前記プロセッサユニットはタスクマネージャ(301)を実行して前記タスクスケジューリングの結果を参照して自らが実行すべきタスクの処理を制御するタスク実行管理を行なう。前記一のプロセッサユニットは前記タスクスケジューリングに際して、前記基板バイアス電圧と前記クロック信号の周波数をタスク単位で制御可能な制御データを生成し、一のタスクの処理開始に影響を与える他のタスクの処理時間を短縮するように前記制御データを決定する。項1のコントロールプロセッサユニットの機能を一つのプロセッサユニットが担っている。上記同様に、マルチプロセッサシステムにおけるマルチタスク処理においてタスクの処理時間短縮と消費電力の低減とを両立することが可能になる。
〔7〕項6のマルチプロセッサシステムにおいて、前記一のプロセッサユニットは前記タスクスケジューリングにおいて、スケジューリングされたタスクとこれに対応する制御データとをプロセッサユニット毎のキューイングテーブルに登録する。前記プロセッサユニットはタスク実行管理において対応するキューイングテーブルを参照して自ら処理すべきタスクと制御情報を取得する。
〔8〕項7のマルチプロセッサシステムにおいて、前記一のプロセッサユニットは前記タスクスケジューリングにおいて、前記他のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を小さくし、クロック信号の周波数を高くするように、前記制御データを決定する。
〔9〕項7のマルチプロセッサシステムにおいて、前記他のタスクの処理の完了を待って、前記一のタスクが処理されるとき、前記一のプロセッサユニットは前記タスクスケジューリングにおいて、前記他のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を小さくし、且つクロック信号の周波数を高くするように、前記制御データを決定する。
〔10〕項9のマルチプロセッサシステムにおいて、前記他のタスクの処理に並行して、前記一のタスクの処理開始に影響を与える別のタスクが処理されるとき、前記一のプロセッサユニットは前記タスクスケジューリングにおいて、前記別のタスクの処理終了タイミングが前記他のタスクの処理終了タイミングよりも遅くならない範囲で、前記別のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を大きくし、且つクロック信号の周波数を低くするように、前記制御データを決定する。
〔11〕項1のマルチプロセッサシステムにおいて、前記シリコン・オン・インシュレータ構造は完全空乏型である。不完全空乏型よりも閾値電圧制御と電流リークの抑制を高精度に行うことができる。
〔12〕項11のマルチプロセッサシステムにおいて、前記SOI・MOSトランジスタは、半導体基板上に、埋め込み酸化膜を介して形成される第1半導体層と、前記第1半導体層に形成され、前記第1半導体層の厚さを有するソース領域及びドレイン領域と、前記ソース領域及びドレイン領域に挟まれるように形成されたチャネル領域と、該チャネル領域の第1主面側に形成された第1ゲートと、前記埋め込み酸化膜の下面に接して形成された導電層からなる第2ゲートとを有し、前記第2ゲートが前記背面ゲート電極である。
〔13〕項12のマルチプロセッサシステムは1個の半導体基板の上に形成された、SoC形態とされる。
2.実施の形態の詳細
実施の形態について更に詳述する。
<マルチプロセッサシステム>
図1には本発明に係るマルチプロセッサシステム(CMP)が例示される。同図に示されるCMP100は、特に制限されないが、公知の相補型SOI・MOS集積回路製造技術によって単結晶シリコンのような1個の半導体基板に形成され、所謂SoCとして構成される。
CMP100は、複数のプロセッサユニット(PU)101、複数の基板バイアス制御回路(BGCTL)102、コントロールプロセッサ(CTLP)103及び共有メモリ(CSM)104を有する。前記夫々のPU101はインターコネクションネットワーク(BUS)105を介してCSM104及びCTLP103に共通接続される。
PU101は、特に図示はしないが、命令をフェッチして実行するCPU(中央処理)、CPUの同期動作クロック信号の周波数制御等を行うクロック生成回路等を備える。PU101を構成するMOSトランジスタは例えばFD−SOI・MOSトランジスタによって構成される。基板バイアス生成回路(BGCTL)102はPU101を構成するFD−SOI・MOSトランジスタの背面電極に印加する基板バイアス電圧を生成する。コントロールプロセッサ(CTLP)103はタスクスケジューラプログラム(スケジューラ)を実行して個々のPU101が処理するタスクのタスクスケジューリングを行うと共に、リソース管理制御を行う。ここでリソース管理制御とは、タスクスケジューリングに際してPU毎に基板バイアス電圧と前記クロック信号の周波数を制御するための制御データを生成する制御を意味する。詳細は後述するが、その制御データは、一のタスクの処理開始に影響を与える他のタスクの処理時間を短縮するように決定される。
特に制限されないが、各PU101は、CPUの他にCSM104に対するアクセス時間を隠蔽のためのキャッシュメモリやローカルメモリを搭載する。基板バイアス制御回路102は、CTLP103から出力される基板バイアス制御信号110に従って、基板バイアス電圧BGP,BGNを対応するPU101内のFD−SOI・MOSトランジスタの背面電極に印加する。詳細は後述するが前記タスクスケジューリングに際して生成された前記制御データは、タスクIDと共にタスクキューイングテーブルに登録され、登録されたタスクを実行するPUがその制御データをCTLP103に与えることによって対応する基板バイアス生成回路102が基板バイアス制御信号110に従って基板バイアス電圧を生成する。
各PUが有する前記クロック生成回路は、基板バイアス電圧の状態に応じたてクロック信号の周波数を決定する。基板バイアス電圧がNOSトランジスタの閾値電圧を小さくするときはクロック信号の周波数を高くし、逆の場合は低くする。クロック信号周波数の制御は、前記タスクキューイングテーブルに登録されたタスクを実行するPUがそのタスクに対応する制御データを用いて行えばよい。特に制限されないが、夫々のPUは、周波数に応じて電源電圧を切り替えたり、不使用時に電源遮断を行ったり、といった電源制御を行う電力制御回路を備えてもよい。
図1の例ではPU101は全て同一、例えば汎用プロセッサを複数個接続したホモジニアスなマルチプロセッサ構成とされているが、例えば一部のPUが信号処理プロセッサ(DSP)や動的再構成可能プロセッサ(DRP)といったホモジニアスなマルチプロセッサ構成とすることも可能である。要するに、PUの種類と数は、図1に限定されず、適宜変更可能である。
図2にはマルチプロセッサシステムの別に例が示される。同図に示されるCMP100_Aは、コントローラプロセッサ(CTLP)103を持たない。コントローラプロセッサ(CTLP)103が担っていたタスクスケジューリング機能は一つのプロセッサユニットPUが負担する。コントローラプロセッサ(CTLP)103が担っていた基板バイアス制御機能は各PUが持つ制御レジスタ(CR)111でBGCTL102を制御する構成とされる。CRはグローバルなメモリ空間にアドレスマッピングされる。タスク割り当て(タスクスケジューリング)と電源管理を行うスケジューラプログラムを実行する一つのPUが、タスクスケジューリングに際して前記制御データを生成する。登録されたタスクを実行するPUがその制御データを対応するCR111に与えることによって対応する基板バイアス生成回路102が基板バイアス制御信号110に従って基板バイアス電圧を生成する。その他の構成は図1と同様であるからその詳細な説明を省略する。
図3には同図にはプロセッサユニット101の内部回路の一部と共に基板バイアス制御回路102が例示される。DCLは、基板バイアス制御の対象となる回路と例示された論理回路ブロックである。PFCは負荷の大きな出力端子BO1を駆動する回路として例時されたドライバ回路である。同図に示されるMOSトランジスタは、特に制限されないが、全てFD−SOI・MOSトランジスタとされる。DCLは、ここでは例としてインバータ回路2段としており、このブロックへの入力がBIであり、出力がCOである。電源電圧はVCC、接地電圧はVSCである。DCL内のpチャンネル型FD−SOI・MOSトランジスタに対する基板バイアス電圧はBGPであり、同DCL内のnチャンネル型FD−SOI・MOSトランジスタに対する基板バイアス電圧はBGNである。BGCLT102は入力信号BAに従って電位の基板バイアス電圧BGP,BGNを出力する。VCA,VSAは基板バイアス制御回路102の動作電源であり、これらの電源電圧はそれぞれ,基板バイアス制御の対象となる回路の電源電圧VCC、VSCと同じでも良いし異なっても良い。たとえば、LSIチップのレイアウトでは、外部電源と接続されたパッドから、VCA、VCC、について独立に電源配線を準備する場合もある。また、VSCとVSAは接地電圧としたが、同様に各々これとは異なる電圧でも良い。基板バイアス制御のモードにより負電圧も取りえる。また,当該電圧値が当該モードにより連続的に変化させるよう、制御回路102を構成してもよいし、チップ外に電源回路を別途設けて変化させても良い。本実施例によれば、DCLの中のnMOS及びpMOSのしきい値電圧の状態を変えることができるため、DCLの動作状態に応じて、DCLの中のしきい値電圧を選択することができる。これによって、高速化が必要な時には、しきい値電圧を絶対値で低く設定し、低速で良い場合や待機状態ではしきい値電圧を高く設定しリーク電流を低く抑えることができる。このようにして高速化と低電力化を達成することができる。入力信号BAは、図1のCTLP103から出力される基板バイアス制御信号110の対応する1ビットの信号、あるいは図2のCR111の設定値に従って出力される基板バイアス制御信号110とされる。タスクの処理に応じて信号BAのレベルが制御されることで、基板バイアス電圧を変化させることができる。その結果、制御対象であるDCLのトランジスタのしきい値電圧を、DCLが低速動作若しくは標準速度で動作するとき基板電圧を負の方向に印加し高くすることでリーク電流を減少させ、また高速動作するときは基板場椅子電圧を正の方向に印加し低くすることで、大きな駆動電流によって高速スイッチング動作が可能になる。尚、ゲート電極が自らの背面ゲート電極に接続する形態はFD−SIO・MOSトランジスタ特有の接続形態であり、オフ状態において閾値電圧を大きくして電流リークを抑制し、オン状態において閾値電圧を小さくスイッチング動作を高速化する、自律的基板バイアス制御形態とされる。半導体基板へのリークが抑制されたMOSデバイス構造を持っているからである。
<基板バイアス電圧変化の効果>
基板バイアス電圧印加に対する、トランジスタの駆動電流特性を見ることで、その効果を説明する。
図4の(A)にはnチャンネル型のSOI・MOSトランジスタの縦断面構造が例示される。このSOI・MOSトランジスタは、端子SBを持つp型基板であるp−sub上に、トレンチアイソレーション(溝堀型絶縁)領域STI、および埋め込み酸化膜UTBにより隣接トランジスタ、基板から電気的に絶縁された領域に形成される。UTBの厚さは例えば10〜20nmである。S、G、Dはソース端子、ゲート端子、ドレイン端子であり、それぞれシリサイドSCを介してn+領域(ソース)、p領域(チャネル形成領域)、n+領域(ドレイン)に接続される。個の厚みは例えば20nm程度である。ゲートのSCとp領域の間には酸化膜OXがあり、いわゆるMOS構造となっている。UTBの下には端子BGと接続されたp領域、および端子TWを持ちp領域と基板とを電気的に分離するためのn領域がある。本構成によれば、BGはUTBを絶縁膜としてp領域を介した形で接続されており、UTBを第2のゲート酸化膜と見立てると、MOS構造の背面に第2のゲートが存在する構造をとることが分かる。
上記シリコン・オン・インシュレート構造のMOSトランジスタはウェル分離を行なうバルク構造に比べて、トランジスタ個別の閾値電圧制御が容易である。また、SOI・MOSトランジスタはその埋め込み酸化膜上のチャネル形成領域及びソール・ドレインとされるシリコン層n+、Pの膜厚が薄い完全空乏型、又はその膜厚が厚い不完全空乏型として構成することができる。例えば0.2μmプロセスでは前者の当該膜厚は通常50nm程度以下というように極めて薄い。従って、前者は後者に比べてデバイスプロセスが難しくなるが、不完全空乏型のシリコン・オン・インシュレート構造に比べて、ゲート電圧によるチャネル領域内反転層電荷への影響が支配的になり、良好な閾値電圧特性を持ち、後述するスタティック・ノイズ・マージンの設定が更に容易になる。尚、0.2μmプロセスにおいて不完全型の膜厚は100〜200nm程度にある。図4の(B)には(A)の構造に対する回路記号が例示される。
図4の(C)にはnチャンネル型のFD−SOI・MOSトランジスタにおける基板バイアス電圧VBGSを1V、0Vとしたときの、ID−VGS特性を示した図である。この図より、VBGS=1Vと正の方向に基板バイアス印加した場合、VGS>0.5Vでのオン状態において、駆動電流の量が増す。また、VBGS=0Vと負の方向に基板バイアス印加した場合、VGS=0Vでのオフ状態において、オフ電流すなわちリーク電流が低減する。
<スケジューラ>
スケジューラの動作フローを説明する。スケジューラは分割された複数のタスク群をPU101の処理状況により、全体のタスク実行時間がなるべく小さくなるよう、タスクをPU101に割り当てる。入力タスクは、ユーザが明示的に分割、定義しても良いし、後述するようなコンパイラが機械的にサブルーチンやループ等のプログラム構造を利用して分割、定義しても良い。なお、ここで言うタスクの単位粒度は、ある機能を実現するプログラム内の分割された部分プログラム単位でも良いし、また複数の機能を実現するための複数のプログラム群のうちの一プログラムとしても良い。なお、タスクという用語は、スレッド、プロセスと呼ばれることもある。
<タスクテーブル>
スケジューラが入力するタスク群の関係は、予めユーザまたはツール等によって定義をしておく。図5にタスク間の依存関係を示したタスク依存テーブル(スケジューリングテーブル)を示す。スケジューリングテーブルは、タスク毎に、タスク番号、依存タスク番号、処理時間、ターゲットPU、タスク間データ共有量、の項目(フィールド)を持つ。各項目を説明すると、タスク番号は、あるプログラムを実行する際の各タスクの固有番号(ID)であり、タスクを一意に指定できるような番号付けをする。なお、スケジューラ内部で扱うタスク番号はスケジューラ内部で自動生成するため、必ずしもスケジューリングテーブル内で扱うタスク番号と一致するとは限らない。
依存タスク番号は、当該タスクを実行するに際して、当該タスクが実行可能となるために、当該タスクより前に処理すべきタスク番号を表す。つまり、依存タスク番号で指定されたタスクの実行により生成される出力データを、当該タスクが入力データとして使用する(データ依存)、または依存タスク内に分岐処理が含まれており、当該分岐処理の実行結果で次に起動すべきタスクが当該タスクとなる(制御依存)ことを意味する。次に、処理時間は、ターゲットとなるCMP100が持つPU101上で当該タスクを実行した際の処理時間を示す。処理時間の単位は、サイクル数、または予め定めた単位時間で設定される。処理時間は、実際に当該タスクを単一のPU101で逐次実行した際に得る実実行時間を設定しても良い。また、コンパイラ等のツールにより、生成された命令コードより概算の実行時間を見積もり、処理時間として設定しても良い。本実施例では、後述するコンパイラで見積もった処理時間を、キロサイクル単位で表示した。
優先度は、タスクを実行するに際して複数のタスクが割り当て対象となった場合、時間的に優先して割り付けるべきタスクを選出する際に用いる指標値である。優先度は、さまざまな指標を用いて設定をする。たとえば、ユーザが優先度を指定するケースがある。アプリケーション設計時に、タスクの実行を優先的に行うことでプログラム全体の実行時間が短縮できることがわかる場合は、当該タスクに高い優先度を与える。また、周期タスク等で、時間制約に対し余裕が少ないタスクに高い優先度を与える、割り込み処理を行うタスクで、通常の処理タスクに対し影響を最低限にするよう当該割り込み処理タスクに高い優先度を与える、等がある。また、コンパイラ等のツールによって優先度を設定することもできる。たとえば、コンパイラにより生成されたタスクで、タスクの依存関係を表すタスクグラフを作る過程で各タスクの実行時間を見積もり、タスク間の依存関係から当該タスクからの残存タスクのうち、実行時間が最長のパス(クリティカルパス)を求め、クリティカルパス上のタスクに高い優先度を与え、非クリティカルパス上のタスクに低い優先度を与える。これは、後続タスクの処理量が多いタスクから優先的にPUへ割当を行うことで、全体の処理時間に影響あるタスクを優先的に処理でき、全体の実行時間を最適化できる。従って、優先度は、残存タスク処理時間としても良い。また、優先度を基板バイアス制御による高速化対象タスクとして、直接指定するためのフラグとして扱う方法もある。
ターゲットプロセッサの項目は、CMP100が搭載するPU101の一部が信号処理プロセッサDSPなど、特定の処理を高速に実行可能な専用処理PUを持つヘテロジニアス構成において、当該タスクの処理に適しているPU101を示している。今回の例では、ターゲットをホモジニアスCMP構成としているため、汎用プロセッサユニットがターゲットプロセッサとなる。図ではこの汎用プロセッサユニットをCPUとして示している。
タスク間データ共有量は、データ依存が存在する依存タスクと当該タスクで、データ授受の量を表す。つまり、依存タスクが生成したデータで当該タスクが使用するデータの量、または依存タスクが使用するデータで当該タスクも使用するデータ量を示す。これは、当該タスクを割り当てる際、共有データ量が多いタスクを実行したPU101と同一のPU101に割り当てることで、依存タスク処理時にキャッシュに読み込まれたデータ、またはローカルメモリに予め転送されたデータを、当該タスクが最大限活用する。その結果、当該タスクを実行するに際し必要なCSM104等の外部メモリとの転送量をなるべく少なくし、転送に関わる処理時間を低減できる。なお、ローカルメモリにデータを配置する場合には、予め当該データの配置アドレスを固定的に定めておく必要がある。プログラム内で明示的にメモリ配置位置を指定しておくか、コンパイラ等のツールにより、これが実現される。
<電力制御の概念>
基板バイアス制御を利用したタスクスケジューリングにおける電力制御手法を説明する。第1の制御手法として、スケジューリングテーブルで定義された優先度を利用する方法がある。ユーザまたはコンパイラ等のツールにより設定された優先度で、予め定められた一定以上の優先度のタスクを処理する際に、当該タスクを実行するPU101の基板バイアス制御(順方向バイアス印加)を行うことで閾値電圧を下げ(閾値電圧であるゲート・ソース間電圧を小さくする)、PU101の速度を高めて処理することで全体の処理時間を短縮する。また、優先度が一定以下の低いタスクに対しては、当該タスクを実行するPU101に対して逆方向の基板バイアス制御を行うことで閾値電圧を上げ(閾値電圧であるゲート・ソース間電圧を大きくする)、PU101の速度を低減して処理を行うことで、全体の処理時間に対する処理時間の影響を抑えつつ電力消費を削減できる。例えば、図5のスケジューリングテーブルで定義されたようなタスク群を実行する際に、優先度が5以上のタスクを実行するPU101には順方向基板バイアス制御を適用する。
第2の制御手法は、スケジューリングを複数のPU101に割り当てる際に、タスク間依存関係から生じるプロセッサ処理量の不均衡を利用して、並列実行時にプロセッサ処理量の不均衡が低減されるよう(処理速度若しくは処理性能のアンバランスを小さくするように)、各PU101の基板バイアス制御を行う手法である。
図6にはその第2の手法による制御の概念が例示される。図5のスケジューリングテーブルで示したタスクを、2個のPU_0、PU_1に割り当てることを想定する。図6の(A)は基板バイアス制御を行う前の状態、(B)は基板バイアス制御を行った後の状態を示す。破線は、スケジューラが動作するスケジューリング実行ポイントを示す。当該テーブル情報により、初期タスクT0がまず割り当て対象となり、この時点ではPU_0、PU_1共にアイドル状態であるためPU_0に割り当てられる。このとき、T0を依存タスクとするタスクはT1とT2であり、当該依存が解決しないと、つまりT0の終了を待たないと次のタスクが実行できない。そこでスケジューラはT0を割り当てるに際して、T0を実行するプロセッサPU_0の基板バイアス制御(順方向バイアス印加)を行うことでしきい値を下げ、T0の実行を高速化することでT1及びT2の処理開始を早める。またT0を実行中アイドル状態となるPU_1の電源電圧を遮断、または基板バイアス制御(逆方向バイアス印加)を行い、しきい値を上げることで、消費電力を抑えつつ制御非適用時と比較して全体の処理時間を短縮することができる。図においてVBG=forwardは順方向バイアス印加を意味し、VBG=backwardは逆方向バイアス印加を意味する。VD=OFFは動作電源遮断、VD=ONは動作電源投入を意味する。120〜128は対応するタスクの処理を意味する。
次に、スケジューラをT0実行終了の通知を受け、T1とT2を実行可能タスク(レディタスク)として選択する。当該テーブル情報により、T1及びT2双方を依存タスクとするタスクはT3であり、T1とT2双方の実行が終了しなければT3は実行できない。T1とT2の処理時間はそれぞれ30Kサイクル、15Kサイクルと異なり、スケジューラは当該スケジューリングテーブルを参照し、T1とT2が処理時間の異なる2個のPU_0、PU_1上での並列実行であることを検出する。そして、コスト(実行間が長いほど、優先度が高いほど、タスクのこととは高い)の大きなT1を実行するPU_0の基板バイアス制御(順方向バイアス印加)を行うことでPU_0の速度を向上させ、T3の実行開始時刻を早めることでプログラム全体の実行時間を高速化する。またコストの小さなT2を実行するPU_1においては、T3の開始時間に影響を与えない範囲で、可能であれば基板バイアス制御(逆方向バイアス印加)を行い、PU_1の速度を低減して処理することで、全体の処理時間への影響を抑えつつ電力を削減する。T2及びT3双方の処理が終了後、スケジューラは依存が解決するタスクT3を選出する。スケジューラは、T3を依存タスクとするタスク及び同時に実行される並列タスクは存在せず、T3の依存タスクでデータ共有量がより大きなタスクであるT2を実行したPU_1にT3を割り当て、さらに基板バイアス制御(順方向バイアス印加)によりT3の実行を高速化する。
<スケジューラの動作フロー>
図7にスケジューラの動作フローを示す。初めにスケジューラは、図5で説明したようなスケジューリングテーブル(SCTBL)234を参照し、その時点で実行可能となっているタスク(レディタスク)を検出する(220)。レディタスクとは、あるタスクの実行が終了した結果、またはスケジューラが起動した状態で、データ依存や制御依存が解消され実行可能状態となっているタスクをさす。なお、プログラム開始時は初期状態で実行可能であるタスクが選択される。当該タスクのデータを後続の複数のタスクが利用するといったケースなど、複数のタスクがレディタスクとなりうる。検出の結果、レディタスクが存在しない場合は、タスクスケジューリングステップは踏まずに、その時点でアイドル状態となっているプロセッサをチェックする(232)。アイドル状態か、否かは、各PU101別に用意されるタスクキュー(タスクキューイングテーブル)にタスクが登録されているかをチェックすることで実現される。もし、タスクキュー内のすべてのタスク実行が当該PUで終了し、プロセッサがアイドル状態であれば、当該PUの電源を遮断する、基板バイアス制御(逆方向バイアス)を適用する、等の電力制御を実施し(233)、アイドルPUの電力を削減する。その後、終了タスクの検知を繰り返す。
レディタスクが検出された場合、次にスケジューリングテーブル234を参照し、優先度が一番高いタスクをPUへ割り当てるべき対象タスクとして選出する(222)。優先度指標は、スケジューリングテーブルの構成で説明した通りである。これは例えば、優先度を当該タスクから見た残存タスク量とし、残存タスク量が大きいほど優先度を高く設定した場合、レディ状態となったタスクのうち、優先度が高い(残存タスクが大きな)タスクを早くにPUに割り当て処理することにより、プログラム全体の実行時間を最適化(短縮)できる。
続いて、当該タスクを処理するPUを決定する(223)。もし、既に割当済みのタスクが存在する場合は、もっとも早い時間に割当済みタスクの処理が完了するPU101に前記割当済みタスクに後続する形で、当該タスクを当該PU101に割り当てる。なお、PU101への割当は、対象となるPU101上でのタスク実行を管理するタスクキュー(タスクキューイングテーブル)に、エントリを追加することで実現される。図9にタスクキュー内容を示す。タスクキューに登録するエントリ項目は、タスクID、電力モード、処理終了予想時刻、ステータスである。電力モードは後続の処理で決定される。また処理終了予想時刻は、スケジューリングテーブルで定義した当該タスクの処理時間情報を用いる。もし、割当済みタスクがあればその終了時刻に加算して求める。ステータスは、本処理においてキューに登録する段階では電力モードが未決定のため、 “Assigning”とされる。
次に、レディタスクが複数個検出された場合、割当が未だ完了されていないレディタスクが存在するかを検出する(224)。すでにレディ状態のタスクが存在しない場合は、後続の電力制御処理へ移行する。もし、レディ状態のタスクがまだ存在する場合は、残存レディタスクをPUに割り当ててしまう(以下では、先行タスク割当と呼ぶ)。これは、レディ状態となったタスクはその時点ではすでに実行可能状態であるため、レディタスク群を一度にPUへスケジューリングできる。その結果、スケジューリングのオーバーヘッドが低減される。なお、先行割り当ての数を多くしてしまうと、スケジューリング時のプロセッサ資源の不足により、優先度の高いタスク実行が妨げられてしまう問題も生じるため、先行タスク割当可能なタスク数が制約される場合は、予め指定した先行タスク割当数の制限内であるかを検出し(225)、制限内であれば再びタスク割り当ての手順を繰り返す(236)。もし制限に達した場合は、その時点で電力制御処理に移行する。
タスクのPUへの割当が完了した時点で、割り当てたタスク(群)を実行した結果実行可能となる非依存タスクを検索し、処理時間情報を利用して開始時間を計算する(226)。複数の被依存タスク、つまり当該タスク(群)終了後に同時に実行できるタスクが複数ある場合は、それぞれのタスクで開始時間を計算する。本処理は、後続の電力制御処理にて利用されることになる。なお、電力制御手法が上述した2通りの手法のうち、優先度情報によって電力モードが一意に決まる手法を用いる場合は、被依存タスク開始時間情報を使わないため、本処理226は行わない。
次に、電力制御(基板バイアス制御)適用とタスクキューへの電力モード登録処理を実行する(227)。電力制御適用手順は、上述した2手法の制御手法それぞれで異なる。まず、第1の優先度情報によって電力モードが一意に決まる手法を適用する場合は、優先度と適用する電力制御モードを対応させた電力制御情報235を予め定義しておき、優先度情報より電力モードを決定する。そして、決定された電力モードを、タスクキューテーブルの対応するタスクIDを持つエントリに書き込む。次に第2の、並列スケジューリングの結果、PU処理量の不均衡を低減する手法を適用する場合の手順を示す。まず、処理226の結果求められた非依存タスクの開始時間情報を使い、電力制御適用により当該タスクの実行時間を変化させた場合に、被依存タスクの開始時間(電力制御適用基準)が変化するかを計算する。このとき、基板バイアスを順方向に印加しPUを高速化した際に、被依存タスクの何れかで開始時間が高速化される場合は、当該タスクを電力制御適用(順方向バイアス印加)対象として、タスクテーブルに当該タスクに対応する電力モードを“Low−Vt”にセットする。また、逆に逆方向バイアス印加を行い当該タスクの実行時間を延ばした場合、被依存タスクの実行開始時間が変化しないは、当該タスクを電力制御適用(逆方向バイアス印加)対象として、タスクテーブルに当該タスクに対応する電力モードを“High−Vt”にセットする。なお、もし被依存タスクが存在しない場合は、割り当て済みのタスクのうち、処理終了時刻が一番遅いタスクの処理終了時刻を、電力制御適用基準として用いる。
電力制御処理227が終了後、未割り当て状態のPUがあるかをチェックする(228)。これは、PU別に設けたタスクキューにエントリがあるかをチェックすることで、判断する。もし未割り当てPUが存在する場合は、処理タスクが存在しないため、電力低減を目的とした電力制御を実施する(231)。その後、タスクキューのステータスを実行可能状態“Assigned”にセットし(229)、各PU101はタスクキューから実行タスクを取り出し、実行を開始する。そして、スケジューラはPU101のタスク処理終了通知を待ち(230)、タスク終了を検出した場合、処理220からを繰り返す。
<タスクマネージャの動作フロー>
図8にはタスクマネージャの動作フローが例示される。各PUではタスクキューのエントリに従ってタスク処理を行うためのタスクマネージャが実行される。タスクマネージャは、以下の手順で動作する。まず、図9に示すようなタスクキューからエントリをチェックし、タスクキューに割り当て済みタスク、つまりステータスが“Assigned”なタスクがあるかをチェックする(240)。タスクキューはFIFO(First In First Out)であり、割り当てられた順でタスクが取り出され(241)、エントリ内の電力制御モードを読み、制御レジスタCRに値をセット、またはコントロールプロセッサCTLPに電力制御モードの通知を行う(242)。次に、タスク実行を開始し、エントリのステータスを実行中であることを示す“Running”に変更する(243)。当該タスクの終了を待ち(244)、終了が検出された場合、当該タスクのキューエントリを削除する(245)。そして、再度割り当て済みタスクの検出を実行する(240)。なお、各タスクの末尾にはスケジューラへ処理を移行する、終了処理コードがコンパイル時に埋め込まれている。
なお、タスク実行中でのタスク切り替えは想定せず、タスクマネージャはノンプリエンティブなタスクスケジューリングを行う。なお、OS側でプリエンティブなタスク切り替えを行った際は、本タスクマネージャで実行されるタスクが一時中断し、OS側からの指示で再開することとなる。
タスクを実行すべきPU毎のタスクキューは実行すべきタスクIDとそのタスクを実行するときの電力及び周波数を制御のための制御データを保有するから、PUは自分のタスクキューに設定されているタスクをその制御データを用いて実行すれば、既にスケジューラによってスケジューリングされた通りの依存関係を満足して複数のタスクが並列的に処理される。
<スケジューラの構成>
スケジューラの構成を説明する。スケジューラの実行形態は様々な構成をとり得る。図10〜図13に実行形態の一例を示す。図10では、スケジューラ300は一つのPU(PU_0)101のOS上で動作し、またタスク実行を行うタスクマネージャ301は、各PUのOS上で動作する。PU(PU_0〜PU_3)101毎のタスクキューTQ_0〜TQ_3とスケジューリングテーブルSCTBLはCSM104に配置される。
また、図11に示す構成では、スケジューラ300をコントロールプロセッサ103で実行し、タスクマネージャ301を各PU(PU_0〜PU_3)101上で走るOS上で実行する。図12に示す構成では、PU_0においてそのOS上でスケジューラ300、タスクマネージャ301が実行されるが、他のPU_1〜PU_3はOS無しでタスクマネージャ300の管理の下で、タスクが実行される構成である。またタスクキューの置き方も、様々な位置が考えられる。図13に示す構成では、タスクキューTQ_0〜TQ_3を各PU101のローカルメモリに配置する。またスケジューリングに利用するスケジューリングテーブルSCTBLをPU_0のローカルメモリに配置する。この結果、高速なローカルメモリ上のスケジューラ300からのスケジューリングテーブルSCTBL、タスクマネージャ301からのタスクキューTQへのアクセスが可能となり、またBUS105経由の通信負荷を減少させることができる。なお、他にもスケジューリングテーブルSCTBLと各PUのタスクキューTQをスケジューラ300を実行するPU0のローカルメモリ上にすべて配置してしまう、オンチップの共有メモリが存在する場合は、当該共有メモリに配置してしまう、といった構成も考えられる。
<マクロタスクの生成>
続いて、コンパイラによるプログラムの自動タスク分割と並列性解析、並びにタスクテーブル生成の手順を説明する。Cやフォートラン(Fortran)等の高級言語で記述された逐次構造の入力プログラム例を図14に示す。プログラムはまず、当該プログラム構造を解析することで、繰り返しブロック(RB:Repetition Block)、サブルーチン(SB:Sub Routine)、擬似代入文ブロック(BPA:Block of Pseudo Assignment statements)の3種類の粒度が大きなタスク(以下、マクロタスクMTと呼ぶ)に分割、生成する。RBはループブロックで各階層での最も外側のループであり、BPAはスケジューリングオーバーヘッドあるいは並列性を考慮し、代入文からなる複数の基本ブロックを融合あるいは分割したブロックである。
<データ依存・制御フロー解析>
続いて、分割生成された当該マクロタスク間の制御フロー及びデータ依存性を解析し、マクロタスクMTの実行順序関係を抽出する。入力プログラムは逐次的に記述されているため、通常のコンパイラによる実行コードは、当該プログラムの構造と同様に逐次的な順序で実行されるが、マクロタスクMT間で見ると必ずしも記述された順序で実行する必要がないことが多い。つまり、マクロタスクMT間において制御またはデータ参照の依存性がない場合、特にマルチプロセッサシステムにおいては、複数のPU101に複数のマクロタスクMTを配置して同時にまたは順序を変更して、全体の実行時間が短くなるようスケジューリングすることが重要となる。このようなスケジューリングを行うためには、マクロタスクMT間の並列性を解析する必要がある。そこでこれに向けた準備として、データ依存・制御フロー解析処理により、マクロタスクMT間の実行順序関係を抽出する。
<ループレベル並列性解析>
続いてマクロタスクMT内の中粒度レベルの並列性解析として、ループレベル並列化を行う。ループレベル並列化では、ループの繰り返し(イタレーション)単位間のデータ依存性を解析して、各イタレーションが独立に処理できるかを判断し、可能な場合は各イタレーションを複数のPU101に割り当てて並列処理を行う。また、単一のループを複数のループに分割し並列性を高めたり、データのコピーや配列変数の拡張によりループ間のデータ依存性を削除することで並列したり、また複数のループを単一のループに融合することでループ制御に必要なオーバーヘッドを軽減したり、といった様々な手法によりループの並列化を実現する。
<処理コスト解析>
次に生成されたマクロタスクMTを各PU101で実行した際に必要となる処理サイクルを、予め付加されたディレクティブ情報より求める。なお、CPUの処理サイクルに関しては、通常並列化コンパイラ内のCPU命令コストテーブルを参照することによってもとめる。CPU処理コストの見積もり方法としては、例えばCPUなどに関しては乗算や加算など命令レベルで必要とするサイクル数をテーブルに保持しておき、当該テーブルを参照することでマクロタスクMTを当該PU101で実行する際の逐次処理サイクル数を見積もることができる。
なお、コンパイル時にコストを決定できない要素が存在する場合、例えばマクロタスクMTが分岐を含む場合は、分岐確率を50%としてコスト算出を行う。また例えばループや配列のサイズが定まらない場合は、ループを固定回数とする、配列宣言時の最大サイズとする、等の方法を適用する。
<マクロタスク間並列性解析=最早実行条件解析>
コンパイラはマクロタスクMTの処理コストが決定した後、データ依存・制御フロー解析処理で抽出したマクロタスクMT間の制御フローとデータ依存性を同時に解析結果から、マクロタスクMT間の並列性、つまり各マクロタスクMTの実行を最も早く実行してよい条件(最早実行条件)を決定する。この最早実行条件をグラフで可視的に示したものがマクロタスクグラフ(MTG)である。図3の入力プログラムを解析し生成されたMTGを、図15に示す。本グラフ中の各ノードはマクロタスクMTを示し、ノード間の実線はマクロタスク間のデータ依存関係を表す。例えば、マクロタスクMT1.1からマクロタスクMT1.2(502)及びマクロタスクMT1.3(503)に対して実線が伸びているが、これはマクロタスクMT1.2及びマクロタスクMT1。3がマクロタスクMT1.1を実行した結果生じたデータを入力データとして用い処理を実行しているという依存関係があることを示している。そのため、実行順序として、マクロタスクMT1.2及びマクロタスクMT1.3はマクロタスクMT1.1タスク終了後、実行できることを示す。
また、入力プログラムよりマクロタスクMT1.2(502)は複数のループやサブルーチンで構成されたブロックなので、コンパイラは当該マクロタスクMTをさらに複数のマクロタスクMTに階層的に分割する。よって、当該MTGではマクロタスクMT1.2中に、別階層でMTGを構成する。MTG1.3(503)も同様である。
なお、マクロタスク間並列性解析結果は、スケジューリングテーブルとして外部記憶装置に保持され、スケジューラが使用する。
以上説明したFD−SOI・MOSトランジスタから構成され複数のプロセッサユニットを集積するマルチプロセッサシステムにおいて、プロセッサユニットを動作させるタスクの実行効率の向上、タスクの実行状態に合わせたきめ細かな電力制御が実現される。すなわち、マルチプロセッサシステムの性能を最大限活用しつつ、低電力にて効率よくタスクを処理することが可能になる。その結果、高い演算性能を持ちかつ低電力に処理することが強く望まれる、カーナビゲーションや携帯電話、情報家電向けの半導体集積回路若しくは半導体装置に本発明を適用することができ、高品質の動画像や音声処理、また画像認識や音声認識といった機能を実現することが可能となる。また、自動車における情報系、制御系システム向けの半導体集積回路若しくは半導体装置に対しても適用することができ、自動運転や安全運転システム等を実現することが可能となる。さらには、将来非常に高い演算性能を有しつつ低電力化が必須となる、スーパーコンピュータへ本発明を適用することも可能である。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、本発明に係るマルチプロセッサシステムは1チップに限定されず、マルチチップで構成されてもよい。また、マルチプロセッサシステムはPD−SOI・MOSトランジスタやバルク構成のMOSトランジスタを含んでいてもよい。また基板バイアス制御の対象は個々のプロセッサユニット内の少なくとも演算処理速度に関係する回路部分であればよい。キューイングテーブル、タスクスケジューリングテーブルを格納するメモリは複数のプロセッサユニットの共有メモリであっても、また、夫々のプロセッサユニットのローカルメモリであってもよい。
本発明に係るマルチプロセッサシステムの一例を示すブロック図である。 本発明に係るマルチプロセッサシステムの別の例を示すブロック図である。 プロセッサユニットの内部回路の一部と共に基板バイアス制御回路を例示する回路図である。 SOI・MOSトランジスタの縦断面構造と基板バイアス特性を示す説明図である。 タスク依存テーブル(スケジューリングテーブル)を例示する説明図である。 電力制御手法を示す説明図である。 スケジューラの動作フローチャートである。 タスクマネージャの動作フローチャートである。 タスクマネージャが用いるタスクキューの構成を示す説明図である。 スケジューラの実行の形態の一例を示す説明図である。 スケジューラの実行の形態の別の例を示す説明図である。 スケジューラの実行の形態の更に別の例を示す説明図である。 スケジューラの実行の形態のその他の例を示す説明図である。 コンパイラに入力するプログラム例を示す説明図である。 コンパイラが生成したタスク間依存関係を示す説明図である。
符号の説明
100,100_A:マルチプロセッサシステム
101:プロセッサユニット
102:基板電圧制御回路
103:制御プロセッサ
104:共有メモリ
105:インターコネクションネットワーク
106:接地電源
107:電源
108:nMOS基板電源
109:pMOS基板電源
110:基板電圧制御線
111:制御レジスタ
120〜123、125〜128:タスク
234:スケジューリングテーブル
235:電力制御情報
236:手順
30:スケジューラ
301:タスクマネージャ

Claims (13)

  1. 並列動作可能な複数のプロセッサユニットと、基板バイアス制御回路と、コントロールプロセッサとを有し、
    前記プロセッサユニットは、他のMOSトランジスタから電気的に分離された背面ゲート電極を備えたシリコン・オン・インシュレータ構造のSOI・MOSトランジスタから成る内部回路を備え、クロック信号に同期動作され、
    前記基板バイアス回路は前記内部回路のSOI・MOSトランジスタの背面電極に基板バイアス電圧を出力し、
    前記コントロールプロセッサユニットは、タスク間の依存性を考慮して前記複数のプロセッサユニットに複数のタスクを並列的に処理させるタスクスケジューリングを行なうと共に、前記基板バイアス電圧と前記クロック信号の周波数を前記プロセッサユニット毎に制御するための制御データを生成し、前記タスクスケジューリングに際して、一のタスクの処理開始に影響を与える他のタスクの処理時間を短縮するように前記制御データを決定する、マルチプロセッサシステム。
  2. タスク間の依存関係を規定する依存関係テーブルを格納するメモリを有し、
    前記コントロールプロセッサユニットは、前記依存関係テーブルを参照して、タスク間の依存性を把握する、請求項1記載のマルチプロセッサシステム。
  3. 前記コントロールプロセッサユニットは、前記他のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を小さくし、且つクロック信号の周波数を高くするように、前記制御データを決定する、請求項1記載のマルチプロセッサシステム。
  4. 前記他のタスクの処理の完了を待って、前記一のタスクが処理されるとき、前記コントロールプロセッサユニットは、前記他のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を小さくし、且つクロック信号の周波数を高くするように、前記制御データを決定する、請求項1記載のマルチプロセッサシステム。
  5. 前記他のタスクの処理に並行して前記一のタスクの処理開始に影響を与える別のタスクが処理されるとき、前記コントロールプロセッサユニットは、前記別のタスクの処理終了タイミングが前記他のタスクの処理終了タイミングよりも遅くならない範囲で、前記別のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を大きくし、且つクロック信号の周波数を低くするように、前記制御データを決定する、請求項4記載のマルチプロセッサシステム。
  6. 並列動作可能な複数のプロセッサユニットと、基板バイアス制御回路とを有し、
    前記プロセッサユニットは、他のMOSトランジスタから電気的に分離された背面ゲート電極を備えたシリコン・オン・インシュレータ構造のSOI・MOSトランジスタから成る内部回路を備え、クロック信号に同期動作され、
    前記基板バイアス回路は前記内部回路のSOI・MOSトランジスタの背面電極に基板バイアス電圧を出力し、
    一のプロセッサユニットはタスク間の依存性を考慮して前記複数のプロセッサユニットに複数のタスクを並列的に処理させるタスクスケジューリングを行ない、
    夫々の前記プロセッサユニットは前記タスクスケジューリングの結果を参照して自らが実行すべきタスクの処理を制御するタスク実行管理を行ない、
    前記一のプロセッサユニットは前記タスクスケジューリングに際して、前記基板バイアス電圧と前記クロック信号の周波数をタスク単位で制御可能な制御データを生成し、一のタスクの処理開始に影響を与える他のタスクの処理時間を短縮するように前記制御データを決定する、マルチプロセッサシステム。
  7. 前記一のプロセッサユニットは前記タスクスケジューリングにおいて、スケジューリングされたタスクとこれに対応する制御データとをプロセッサユニット毎のキューイングテーブルに登録し、
    前記プロセッサユニットはタスク実行管理において対応するキューイングテーブルを参照して自ら処理すべきタスクと制御情報を取得する、請求項6記載のマルチプロセッサシステム。
  8. 前記一のプロセッサユニットは前記タスクスケジューリングにおいて、前記他のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を小さくし、クロック信号の周波数を高くするように、前記制御データを決定する、請求項7記載のマルチプロセッサシステム。
  9. 前記他のタスクの処理の完了を待って、前記一のタスクが処理されるとき、前記一のプロセッサユニットは前記タスクスケジューリングにおいて、前記他のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を小さくし、且つクロック信号の周波数を高くするように、前記制御データを決定する、請求項7記載のマルチプロセッサシステム。
  10. 前記他のタスクの処理に並行して、前記一のタスクの処理開始に影響を与える別のタスクが処理されるとき、前記一のプロセッサユニットは前記タスクスケジューリングにおいて、前記別のタスクの処理終了タイミングが前記他のタスクの処理終了タイミングよりも遅くならない範囲で、前記別のタスクを処理するプロセッサユニットの前記内部回路に対して、SOI・MOSトランジスタの閾値電圧を大きくし、且つクロック信号の周波数を低くするように、前記制御データを決定する、請求項9記載のマルチプロセッサシステム。
  11. 前記シリコン・オン・インシュレータ構造は完全空乏型である、請求項1記載のデータ処理システム。
  12. 前記SOI・MOSトランジスタは、半導体基板上に、埋め込み酸化膜を介して形成される第1半導体層と、前記第1半導体層に形成され、前記第1半導体層の厚さを有するソース領域及びドレイン領域と、前記ソース領域及びドレイン領域に挟まれるように形成されたチャネル領域と、該チャネル領域の第1主面側に形成された第1ゲートと、前記埋め込み酸化膜の下面に接して形成された導電層からなる第2ゲートとを有し、前記第2ゲートが前記背面ゲート電極である、請求項11記載のマルチプロセッサシステム。
  13. 1個の半導体基板の上に形成された、請求項12記載のマルチプロセッサシステム。
JP2007234829A 2007-09-11 2007-09-11 マルチプロセッサシステム Pending JP2009069921A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007234829A JP2009069921A (ja) 2007-09-11 2007-09-11 マルチプロセッサシステム
US12/172,919 US8112754B2 (en) 2007-09-11 2008-07-14 Controlling body-bias voltage and clock frequency in a multiprocessor system for processing tasks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007234829A JP2009069921A (ja) 2007-09-11 2007-09-11 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JP2009069921A true JP2009069921A (ja) 2009-04-02

Family

ID=40433237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007234829A Pending JP2009069921A (ja) 2007-09-11 2007-09-11 マルチプロセッサシステム

Country Status (2)

Country Link
US (1) US8112754B2 (ja)
JP (1) JP2009069921A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011187045A (ja) * 2010-02-09 2011-09-22 Canon Inc データ処理装置及びその制御方法、プログラム
WO2011161884A1 (ja) * 2010-06-25 2011-12-29 パナソニック株式会社 集積回路、コンピュータシステム、制御方法
KR20120017295A (ko) * 2010-08-18 2012-02-28 삼성전자주식회사 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법
JP2012048545A (ja) * 2010-08-27 2012-03-08 Lenovo Singapore Pte Ltd 特定のプロセスを短時間で処理する方法およびコンピュータ
JP2013214331A (ja) * 2013-07-22 2013-10-17 Panasonic Corp コンパイラ
JP2014219230A (ja) * 2013-05-02 2014-11-20 三菱電機株式会社 並列信号処理装置
JP2015031967A (ja) * 2013-07-31 2015-02-16 三菱電機株式会社 設定処理実行装置及び設定処理実行方法及びプログラム
JP2015191282A (ja) * 2014-03-27 2015-11-02 富士通株式会社 ジョブスケジュールプログラム、ジョブスケジュール方法、及びジョブスケジュール装置
US9563465B2 (en) 2011-01-07 2017-02-07 Fujitsu Limited Multi-task scheduling method for assigning threads based on time slices to multi-core processors and multi-core processor system therefor
JP2017062666A (ja) * 2015-09-25 2017-03-30 富士ゼロックス株式会社 情報処理装置および画像形成装置
KR101775029B1 (ko) * 2016-12-21 2017-09-05 삼성전자주식회사 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법
WO2017217084A1 (ja) * 2016-06-14 2017-12-21 株式会社デンソー データ処理システム
WO2019188181A1 (ja) * 2018-03-30 2019-10-03 株式会社デンソー スケジューリング方法、スケジューリング装置
JP2020113194A (ja) * 2019-01-16 2020-07-27 トヨタ自動車株式会社 情報処理装置
US11709697B2 (en) 2019-09-04 2023-07-25 Toyota Jidosha Kabushiki Kaisha Vehicle control device, vehicle control method, and recording medium storing vehicle control program

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264863A (ja) * 2006-03-28 2007-10-11 Hitachi Ltd 業務使用解析装置
JP5195408B2 (ja) * 2008-12-25 2013-05-08 富士通セミコンダクター株式会社 マルチコアシステム
WO2010095358A1 (ja) * 2009-02-18 2010-08-26 日本電気株式会社 タスク割当装置、タスク割当方法、及び、タスク割当プログラムが格納された記憶媒体
EP2282264A1 (en) * 2009-07-24 2011-02-09 ProximusDA GmbH Scheduling and communication in computing systems
US8776066B2 (en) * 2009-11-30 2014-07-08 International Business Machines Corporation Managing task execution on accelerators
JP2011180894A (ja) * 2010-03-02 2011-09-15 Fujitsu Ltd ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
US20110276966A1 (en) * 2010-05-06 2011-11-10 Arm Limited Managing task dependency within a data processing system
US8560876B2 (en) * 2010-07-06 2013-10-15 Sap Ag Clock acceleration of CPU core based on scanned result of task for parallel execution controlling key word
KR20120017294A (ko) * 2010-08-18 2012-02-28 삼성전자주식회사 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법
US8539494B2 (en) * 2011-01-31 2013-09-17 Oracle International Corporation Method and system for scheduling threads
US9218177B2 (en) * 2011-03-25 2015-12-22 Microsoft Technology Licensing, Llc Techniques to optimize upgrade tasks
US9195501B2 (en) * 2011-07-12 2015-11-24 Qualcomm Incorporated Instruction culling in graphics processing unit
US9411641B2 (en) * 2012-10-04 2016-08-09 Lawrence J. Dickson Method and apparatus implemented in processors for real-time scheduling and task organization based on response time order of magnitude
US9442559B2 (en) 2013-03-14 2016-09-13 Intel Corporation Exploiting process variation in a multicore processor
US9286106B1 (en) * 2013-04-16 2016-03-15 Ca, Inc. Scheduling periodic tasks with dependencies and determining improper loop dependencies between tasks placed in a waiting tasks set and in a unfinished dependent tasks set
JP6018022B2 (ja) * 2013-06-14 2016-11-02 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置
US9477523B1 (en) * 2013-06-25 2016-10-25 Amazon Technologies, Inc. Scheduling data access jobs based on job priority and predicted execution time using historical execution data
FR3009149A1 (fr) * 2013-07-24 2015-01-30 St Microelectronics Sa Element a retard variable
US9921870B2 (en) * 2014-09-25 2018-03-20 Oracle International Corporation System and method for supporting a scalable thread pool in a distributed data grid
US9811390B1 (en) * 2015-03-30 2017-11-07 EMC IP Holding Company LLC Consolidating tasks into a composite request
DE102016218210A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Engineering and Business Solutions Ltd. Ein dynamischer Aufgabenplaner in einer Mehrkern-Elektroniksteuereinheit
US9798583B2 (en) 2015-12-04 2017-10-24 Microsoft Technology Licensing, Llc Onboarding of a service based on automated supervision of task completion
US9891982B2 (en) 2015-12-04 2018-02-13 Microsoft Technology Licensing, Llc Error handling during onboarding of a service
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US11361800B2 (en) 2017-08-04 2022-06-14 RACYICS GmbH Method for characterization of standard cells with adaptive body biasing
US10915356B2 (en) * 2018-08-30 2021-02-09 Intel Corporation Technology to augment thread scheduling with temporal characteristics
US20230108234A1 (en) * 2021-09-28 2023-04-06 Advanced Micro Devices, Inc. Synchronous labeling of operational state for workloads

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08274620A (ja) * 1995-03-29 1996-10-18 Hitachi Ltd 半導体集積回路装置及びマイクロコンピュータ
JP2004199139A (ja) * 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
JP2006293768A (ja) * 2005-04-12 2006-10-26 Univ Waseda マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
JP2007201236A (ja) * 2006-01-27 2007-08-09 Renesas Technology Corp 半導体集積回路

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3814385B2 (ja) * 1997-10-14 2006-08-30 株式会社ルネサステクノロジ 半導体集積回路装置
US6484265B2 (en) * 1998-12-30 2002-11-19 Intel Corporation Software control of transistor body bias in controlling chip parameters
US6744301B1 (en) * 2000-11-07 2004-06-01 Intel Corporation System using body-biased sleep transistors to reduce leakage power while minimizing performance penalties and noise
JP2002304232A (ja) 2001-04-03 2002-10-18 Sony Corp 演算処理システム及び演算処理制御方法、並びに記憶媒体
US7493149B1 (en) * 2002-03-26 2009-02-17 National Semiconductor Corporation Method and system for minimizing power consumption in mobile devices using cooperative adaptive voltage and threshold scaling
US7194385B2 (en) * 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US7120804B2 (en) * 2002-12-23 2006-10-10 Intel Corporation Method and apparatus for reducing power consumption through dynamic control of supply voltage and body bias including maintaining a substantially constant operating frequency
US7106128B2 (en) * 2004-11-03 2006-09-12 Intel Corporation Processor apparatus with body bias circuitry to delay thermal throttling
JP2006237388A (ja) * 2005-02-25 2006-09-07 Matsushita Electric Ind Co Ltd 半導体集積回路及び半導体集積回路の制御方法及び信号伝送回路
JP4800700B2 (ja) 2005-08-01 2011-10-26 ルネサスエレクトロニクス株式会社 半導体装置およびそれを用いた半導体集積回路
US20070266385A1 (en) * 2006-05-11 2007-11-15 Arm Limited Performance level setting in a data processing system
US8234652B2 (en) * 2007-08-28 2012-07-31 International Business Machines Corporation Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08274620A (ja) * 1995-03-29 1996-10-18 Hitachi Ltd 半導体集積回路装置及びマイクロコンピュータ
JP2004199139A (ja) * 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
JP2006293768A (ja) * 2005-04-12 2006-10-26 Univ Waseda マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
JP2007201236A (ja) * 2006-01-27 2007-08-09 Renesas Technology Corp 半導体集積回路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200301461011; 石坂 一久: '共有メモリマルチプロセッサ上でのキャッシュ最適化を考慮した粗粒度タスク並列処理' 情報処理学会論文誌 第43巻,第4号, 20020415, p.958-970, 社団法人情報処理学会 *
JPN6011040719; 石坂 一久: '共有メモリマルチプロセッサ上でのキャッシュ最適化を考慮した粗粒度タスク並列処理' 情報処理学会論文誌 第43巻,第4号, 20020415, p.958-970, 社団法人情報処理学会 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011187045A (ja) * 2010-02-09 2011-09-22 Canon Inc データ処理装置及びその制御方法、プログラム
JP5853216B2 (ja) * 2010-06-25 2016-02-09 パナソニックIpマネジメント株式会社 集積回路、コンピュータシステム、制御方法
WO2011161884A1 (ja) * 2010-06-25 2011-12-29 パナソニック株式会社 集積回路、コンピュータシステム、制御方法
US8918664B2 (en) 2010-06-25 2014-12-23 Panasonic Corporation Integrated circuit, computer system, and control method, including power saving control to reduce power consumed by execution of a loop
KR20120017295A (ko) * 2010-08-18 2012-02-28 삼성전자주식회사 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법
KR101689736B1 (ko) 2010-08-18 2016-12-27 삼성전자주식회사 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법
JP2012048545A (ja) * 2010-08-27 2012-03-08 Lenovo Singapore Pte Ltd 特定のプロセスを短時間で処理する方法およびコンピュータ
US9563465B2 (en) 2011-01-07 2017-02-07 Fujitsu Limited Multi-task scheduling method for assigning threads based on time slices to multi-core processors and multi-core processor system therefor
JP2014219230A (ja) * 2013-05-02 2014-11-20 三菱電機株式会社 並列信号処理装置
JP2013214331A (ja) * 2013-07-22 2013-10-17 Panasonic Corp コンパイラ
JP2015031967A (ja) * 2013-07-31 2015-02-16 三菱電機株式会社 設定処理実行装置及び設定処理実行方法及びプログラム
JP2015191282A (ja) * 2014-03-27 2015-11-02 富士通株式会社 ジョブスケジュールプログラム、ジョブスケジュール方法、及びジョブスケジュール装置
JP2017062666A (ja) * 2015-09-25 2017-03-30 富士ゼロックス株式会社 情報処理装置および画像形成装置
WO2017217084A1 (ja) * 2016-06-14 2017-12-21 株式会社デンソー データ処理システム
JP2017224089A (ja) * 2016-06-14 2017-12-21 株式会社デンソー データ処理システム
KR101775029B1 (ko) * 2016-12-21 2017-09-05 삼성전자주식회사 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법
WO2019188181A1 (ja) * 2018-03-30 2019-10-03 株式会社デンソー スケジューリング方法、スケジューリング装置
JP2020113194A (ja) * 2019-01-16 2020-07-27 トヨタ自動車株式会社 情報処理装置
JP7172625B2 (ja) 2019-01-16 2022-11-16 トヨタ自動車株式会社 情報処理装置
US11526378B2 (en) 2019-01-16 2022-12-13 Toyota Jidosha Kabushiki Kaisha Information processing device and information processing method
US11709697B2 (en) 2019-09-04 2023-07-25 Toyota Jidosha Kabushiki Kaisha Vehicle control device, vehicle control method, and recording medium storing vehicle control program

Also Published As

Publication number Publication date
US20090070772A1 (en) 2009-03-12
US8112754B2 (en) 2012-02-07

Similar Documents

Publication Publication Date Title
JP2009069921A (ja) マルチプロセッサシステム
CN1322397C (zh) 处理器系统、指令序列优化装置和指令序列优化程序
JP4082706B2 (ja) マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US8051412B2 (en) Global compiler for controlling heterogeneous multiprocessor
KR101655137B1 (ko) 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링
JP4936517B2 (ja) ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
US7571342B2 (en) Processor system, instruction sequence optimization device, and instruction sequence optimization program
US20180260018A1 (en) Operating point controller for circuit regions
JP2009146243A (ja) 基板バイアス制御を活用する電力性能最適化コンパイラ及びプロセッサシステム
KR20170024898A (ko) 사용자 어플리케이션의 특성에 따른 연산 디바이스 동적 제어 기법
JP2007305148A (ja) マルチプロセッサシステム
JP2004199139A (ja) プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
Lotfi et al. Aging-aware compilation for GP-GPUs
JP2011129147A (ja) プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
Swaminathan et al. Thermal-aware application scheduling on device-heterogeneous embedded architectures
Kühn et al. MuCCRA4-BB: A fine-grained body biasing capable DRP
Medeiros et al. Transparent aging-aware thread throttling
Multanen Hardware optimizations for low-power processors
Takase et al. Partitioning and allocation of scratch-pad memory for energy minimization of priority-based preemptive multi-task systems
Xie et al. Utilizing Power Management and Timing Slack for Low Power in High-Level Synthesis
Milutinovic et al. Dynamic voltage and frequency scaling and adaptive body biasing for active and leakage power reduction in MPSoC: A literature overview
Cai Power/Performance Modeling and Optimization: Using and Characterizing Machine Learning Applications
Shikano et al. Power-aware compiler controllable chip multiprocessor
Chen et al. Low Power Design Methodologies for Digital Signal Processors
Pal et al. Leakage Power Minimization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120713

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120830