JP4082706B2 - マルチプロセッサシステム及びマルチグレイン並列化コンパイラ - Google Patents
マルチプロセッサシステム及びマルチグレイン並列化コンパイラ Download PDFInfo
- Publication number
- JP4082706B2 JP4082706B2 JP2005114842A JP2005114842A JP4082706B2 JP 4082706 B2 JP4082706 B2 JP 4082706B2 JP 2005114842 A JP2005114842 A JP 2005114842A JP 2005114842 A JP2005114842 A JP 2005114842A JP 4082706 B2 JP4082706 B2 JP 4082706B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- processor unit
- control
- unit
- task
- 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
Links
- 238000012545 processing Methods 0.000 claims description 181
- 238000000034 method Methods 0.000 claims description 91
- 230000008569 process Effects 0.000 claims description 56
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000015654 memory Effects 0.000 description 71
- 101000844802 Lacticaseibacillus rhamnosus Teichoic acid D-alanyltransferase Proteins 0.000 description 30
- 235000019800 disodium phosphate Nutrition 0.000 description 21
- 102100022692 Density-regulated protein Human genes 0.000 description 17
- 238000007726 management method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 101710092028 Density-regulated protein Proteins 0.000 description 12
- 230000003068 static effect Effects 0.000 description 10
- 101150115013 DSP1 gene Proteins 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 235000019580 granularity Nutrition 0.000 description 7
- 101800000026 Dentin sialoprotein Proteins 0.000 description 5
- 101001044612 Homo sapiens Density-regulated protein Proteins 0.000 description 5
- 101000909218 Homo sapiens Dynamin-1-like protein Proteins 0.000 description 5
- 101000841301 Homo sapiens Utrophin Proteins 0.000 description 5
- 238000005206 flow analysis Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 4
- 102000004152 Bone morphogenetic protein 1 Human genes 0.000 description 3
- 108090000654 Bone morphogenetic protein 1 Proteins 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000010248 power generation Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101001132841 Homo sapiens Mitochondrial ribosome-associated GTPase 1 Proteins 0.000 description 2
- 102100033815 Mitochondrial ribosome-associated GTPase 1 Human genes 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007728 cost analysis Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 1
- 101100494218 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) BRP1 gene Proteins 0.000 description 1
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 1
- -1 and CPU1 Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System (AREA)
- Microcomputers (AREA)
- Multi Processors (AREA)
Description
また、単一または複数種類のプロセッサユニットを複数個有するマルチプロセッサシステムに実行させる目的プログラムを生成するコンパイラであって、前記プロセッサユニットは、特定用途プロセッサユニットと汎用プロセッサユニットとを含み、入力プログラムを読み込む処理と、前記入力プログラムを解析し、前記入力プログラムを複数の粒度の単位ブロックに分割する処理と、前記単位ブロック間の制御依存性、及びデータ依存性を解析し、前記単位ブロックの並列性を抽出する処理と、前記マルチプロセッサシステムが具備する各プロセッサユニットで前記単位ブロックを処理するために必要な電力をコスト情報として求める処理と、前記コスト情報に基づいて前記入力プログラムの処理時間が最小となるように、前記単位ブロックを処理するのに必要な前記特定用途プロセッサユニットを選択し、さらに少なくともひとつの汎用プロセッサユニットを選択し、これら特定用途プロセッサユニットと汎用プロセッサユニットを1つのグループとして前記単位ブロックを割り当てるスケジューリングコードを生成する処理と、前記スケジューリングコードを入力プログラムに付加し、前記各プロセッサユニット毎の実行コードを生成し、目的コードとして出力する処理と、を計算機に実行させる。
図1は、本発明の一実施形態であるマルチプロセッサシステムの構成を示す。図1において、マルチプロセッサシステムは、複数の異種のプロセッサユニット(以下、PUとする)10〜17と、これら共有メモリ(以下、SMとする)18を主体にして構成される。当該各PU10〜17は、それぞれのバスインタフェース(BIF)27を介し、ローカルバス(LBUSとする)19に接続される。また、SM18はLBUS19に接続され、各PU10〜17からアクセするすることができる。当該各PU10〜17は、当該PUに対し電源電圧及び動作クロックを供給する電源電圧生成回路(DCGEN)20、及びクロック生成回路(CLKGEN)21が接続されている。なお、本マルチプロセッサシステムは、異種のプロセッサユニットで構成されたヘテロジニアスマルチプロセッサシステムの例を示す。
次に、各PUに接続された電源電圧生成回路(DCGEN)20及びクロック生成回路(CLKGEN)21の構成について説明する。
以上のように、各PU10〜17は電源電圧を個別に設定することが可能なため、当該PUと接続されたLBUS19間においては、信号の電圧レベルが異なることになる。そこで、PU10〜17とLBUS19間に接続されたバスインタフェース(BIF)27は信号レベル変換回路(図示省略)を具備し、バスLBUS19とPU10〜17間の信号レベル変換を行う。
次に、電源電圧生成回路(DCGEN)20及びクロック生成回路(CLKGEN)21で生成する電源電圧(VL)205及び動作クロック(FL)216を決定するハードウェア機構について説明する。
以上ではFV制御を対象とする範囲をPU全体とし、一括でFV制御モードを設定するとして説明したが、PU10〜17に搭載するローカルメモリ(LM)やFV制御レジスタ、また他のプロセッサ周辺回路に対し、夫々異なるFV制御モード設定を行っても良い。これは、FV制御レジスタのビットフィールドを拡張し、被FV制御部に対応したFV制御モードを設定するフィールドを持たせることで実現できる。例えば、ローカルメモリLMまたはシステム制御レジスタ(R)25といったデータ保持が必要な回路部に対しては、独立にFL、VLを設定する機構とすることが考えられる。つまりローカルメモリLMやFV制御レジスタに対し独立してFV制御を行うことで、前記PUのFVが遮断状態としても、当該LM及びRのデータが保持され、また対象PUが遮断状態においても、他のPUから当該PUのLMに対しアクセスすることも可能となる。
FV制御対象をPU内の複数部分(機能部分)とする例として、ローカルメモリLMに対してPUとは独立してFV制御を行う方法を以下に説明する。本例ではローカルメモリLMは図10(a)で示したように4バンク(Bank0〜3)で構成し、FV制御対象はPU及びLMバンク毎とする。
また、各PU10〜17を接続するローカルバス(LBUS)19に対しても、マルチプロセッサシステムの機能部位単位のFV制御として、部分的に電源制御(電源遮断)することができる。
次に、FV制御レジスタ1250を設定する具体的な方法について説明する。なお以下では、レジスタフォーマットを図14(a)の構成として説明する。
続いて、上記図16で示したメモリマップの先頭領域に設けたブロードキャスト(BC)領域について、以下に説明する。当該BC領域は書き込み専用の領域であり、一PUが当該BC領域の一アドレスに対しデータの書き込みを行うと、当該アドレスに予め対応させた全PUの各LMエントリに当該データを、ローカルバスLBUS19を介して同時に書き込む。これにより、全PUで共有するデータを同時に各PUのローカルメモリLMが持つこととなり、各PU10〜17は共有メモリSMにアクセスしなくとも高速にLM上の当該データにアクセスすることが可能となる。
次に、図18を用いて各PU10〜17におけるタスク処理時の電源電圧、動作周波数(FV)制御方法の概念について説明する。各PUで実行するタスク(プログラム)は、後述するコンパイラによって入力プログラムから生成される。つまり、当該入力プログラムは、まず後述するコンパイルにより、当該プログラムの構造を解析することで、代入文のみからなるベーシックブロック(BB)、繰り返しブロック(RB)、サブルーチン(SB)といった粒度が大きなステートメント・ブロックをマクロタスク(MT)として分割する。本例では、3個のマクロタスクMT301〜303に分割されるとする。ここで、マクロタスクは、入力プログラム(ソースコード)を複数の粒度の単位ブロックに分割したものである。つまり、マクロタスクに分割することで、サブルーチン等の粗粒度タスク間の並列処理を利用するマクロデータフロー処理、ループレベルの並列処理である中粒度並列処理に、基本ブロック内部のステートメントレベルの並列性を利用する近細粒度並列処理とを階層的に組み合わせて並列処理を行うマルチグレイン並列処理を行う。また、本実施形態では、プログラムの構成要素をマクロタスクとし、マクロタスクの構成要素をタスクとし、タスクをPU10〜17に割り当てるものとする。
以上では、マクロタスク(MT)の実行条件が他のマクロタスクMTに依存する場合のFV制御方法を説明したが、他にもタスクがある一定時間内に処理すべき制約を持つ、すなわち図19(a)で図示するような、当該タスクの処理期限(許容時間)が決定されているリアルタイム処理タスクを対象としたFV制御方法も考えることができる。
次に前述したマルチプロセッサ・アーキテクチャ上で、プロセッサユニット(PU)の特性に合わせたスケジューリングと電圧・周波数の動的変化による消費電力の最適制御を行うコードを生成するコンパイル方法と、当該手法を実装したコンパイラの処理について以下順を追って説明していく。図20に本手法を実装したコンパイラ40の処理フローを示す。
CやFortran等の高級言語で記述された逐次構造の入力プログラム400は、まず、当該プログラム構造を解析することで、繰り返しブロック(RB:Repetition Block)、サブルーチン(SB:Sub Routine)、擬似代入文ブロック(BPA:Block of Pseudo Assignment statements)の3種類の粒度が大きなマクロタスク(MT)に分割し、各マクロタスクを生成する(401)。RBはループブロックで各階層での最も外側のループであり、BPAはスケジューリングオーバーヘッドあるいは並列性を考慮し、代入文からなる複数の基本ブロックを融合あるいは分割したブロックである。図21に、上記のような入力プログラム(ソースプログラム400)の一例を示す。
なお、当該ソースプログラム400中には、予めPUの割り当てを記述することが可能であり、例えばあるサブルーチンをDSPに、またあるサブルーチンをCPUに割り当てることを明示的に指定することも可能である。その結果、当該DSPサブルーチンはコンパイラ40によりさらに並列性の解析が行われ、例えばDSPが4個ある場合、当該4個のDSPに対してコンパイラ40は並列化スケジューリングを実施する。
続いて、分割生成された当該マクロタスク間の制御フロー及びデータ依存性を解析し、マクロタスクMTの実行順序関係を抽出する(402)。図21の入力プログラム400は、逐次的に記述されているため、通常のコンパイラ40によって生成される実行コードは、当該プログラムの構造と同様に逐次的な順序で実行されるが、マクロタスクMT間で見ると必ずしも記述された順序で実行する必要がないことが多い。
続いて、マクロタスクMT内の中粒度レベルの並列性解析として、ループレベルの並列化を行う(403)。ループレベル並列化403では、ループの繰り返し(イタレーション)単位間のデータ依存性を解析して、各イタレーションが独立に処理できるかを判断し、可能な場合は各イタレーションを複数のPUに割り当てて並列処理を行う。
次に、上記生成されたマクロタスクMTを各PUで実行した際に必要となる処理サイクルを見積もる、処理コスト解析を行う(404)。処理コスト(演算コスト)の見積もり方法としては、例えばCPUなどに関しては、乗算や加算など命令レベルで必要とするサイクル数を処理コストテーブル420にプロファイリング情報として保持しておき、当該テーブル420を参照することで、マクロタスクMTを当該PUで実行する際の逐次処理サイクル数を見積もることができる。
消費電力=動作電圧2×駆動周波数
と見積もることができるので、処理期限内で消費電力が最小となるFV制御モードの組み合わせを選択し、スケジューリングすればよい。例えば、図19(b)のようにLOWモードのみで、処理を実行する場合や、図19(c)のように複数のFV制御モードを組み合わせる。あるいは、処理時間が最小かつ消費電力が最小となるFV制御モードの組み合わせを選択することもできる。
コンパイラ40はマクロタスクMTの処理コストが決定した後、データ依存・制御フロー解析処理402で抽出したマクロタスクMT間の制御フローと、データ依存性を同時に解析した結果から、マクロタスクMT間の並列性、つまり各マクロタスクMTの実行を最も早く実行してよい条件(最早実行条件)を決定する(405)。
以下、図22を参照しながら、マクロタスクグラフMTGについて説明する。本グラフ中の各ノードはマクロタスクMTを示し、ノード間の実線はマクロタスク間のデータ依存関係を、ノード間の破線はマクロタスク間の制御依存関係を、ノード内の小円が条件分岐を表している。例えば、マクロタスクMT1_1(501)からMT1_2(502)及びMT1_3(503)に対して実線が伸びているが、これは粒度の大きいマクロタスクMT1_2及びMT1_3がMT1_1を実行した結果生じたデータを入力データとして用い、処理を実行しているという依存関係があることを示している。そのため、実行順序として、MT1_2及びMT1_3はMT1_1の終了後、実行できることを示す。
次にコンパイラ40は、生成されたマクロタスクグラフMTGテーブル421を参照し、マクロタスクグラフの形状や並列性に応じた、またはユーザからの指定に応じたプロセッサのグループ化を行う(406)。
コンパイラ40は次にスケジューリング方法として、スタティックスケジュールかダイナミックスケジュールかを判断する(407)。夫々のスケジューリング方法の詳細は後述するが、以下簡単に説明する。まず、もし、タスクMTに条件分岐がなく最早実行条件が予め決定できるMTフローであれば、前者のスタティックスケジュールを適用し、コンパイラ40が予めタスクMTのスケジューリングを行い、同期コード及びFV制御コード(スケジューリングコード)をタスク間に挿入する。
まず、スタティックスケジューリングの処理フローについて説明する。スタティックスケジューリングでは、コンパイル時にタスクMTの割り当てと実行順序がすでに決定しているため、まず、マクロタスクスケジューリング処理408により、マクロタスクテーブル421及びプロセッサグルーピングテーブル422情報を参照し、PU間における実行タスク間の同期や他タスクの起動等を行う制御情報を生成し、当該制御情報の挿入箇所を決定する。
次に、ダイナミックスケジューリングの処理フローについて説明する。ダイナミックスケジューリング時は、タスクMT内の条件分岐等の不確定要素によりコンパイル時にスケジューリング内容を決定することができない。このためコンパイラ40は、タスクMTの処理結果に基づき、プログラム実行時に動的にスケジューリングを行うスケジューリングプログラムを生成する(410)。本プログラムは、処理結果に基づきタスクMTの起動や同期、及び当該MTが必要とするデータのロードを行う。また、さらに図18で説明したタスク並列処理実行時のFV制御概念に基づき、PUの動作周波数・供給電圧を決定する動作モード(FV制御モード)を設定する。生成したスケジューリングプログラムは、電源・FV制御スケジュールテーブル424として、外部記憶装置に保持される。
コンパイラ40は以上の処理により、入力プログラム400のPU10〜17へのスケジューリングを完了する。これまでの処理で生成したスケジューリング情報は外部記憶装置にテーブル(421〜424)として保持されている。コンパイラ40は、当該テーブル(421〜424)にアクセスし、タスクの実行順序やデータ転送情報、及びFV制御情報を読み込み、入力プログラムに対してスタティックスケジュール部には制御コード(スケジューリングコード)を、またダイナミックスケジュール部にはスケジューリングプログラムを付加する(411)。制御コードは、例えば分散メモリ型並列計算機における並列プログラミング標準インタフェースであるMPI(Message Passing Interface)などを用いて生成する。当該コードが付加された入力プログラムは、さらに各PUの種類毎に用意されたローカルコンパイラで処理することにより、当該PUにおける実行バイナリコードに変換される(412)。なお、ローカルコンパイラは、上述のようにCPU、DSP、DRP、BMPのPUの種類毎に予め用意され、コンパイラ40から各PUの種類に応じたローカルコンパイラを呼び出して実行バイナリコードを生成するものである。
本スケジューリング結果の例を図23に示す。図23は、MTのスケジューリング結果をPU毎に時間軸で示している。本例ではCPU0がタスクの起動や同期、FV制御などの管理を行うため、最初にCPU0上にコンパイラ40が生成した制御コード550がロードされる。当該制御コード550は、各PUのFV制御を行うコード、及びCPU0においてマクロタスクMT1_1を起動するコードで表現されている。つまりCPU0は、マクロタスクMT1_1を実行するCPU0に対し動作モードをFULLにするようFV制御レジスタの値を“3”に設定する。また、他のPUに対しては処理すべきMTがないため、動作モードをOFFにするようFV制御レジスタの値を“0”に設定する。次に、CPU0は自CPU0にてマクロタスクMT1_1の処理を開始する。
コンパイラ40により、以上で説明したようなスケジュールを行うスケジューリングコードを、入力プログラム400に付加しPU毎に出力した出力プログラム(目的コード)の一例を図24及び図25に示す。図24、図25は、上記図23で示した処理を記述したもので、図24はマクロタスクMTG1_2を処理するプロセッサのグループとしてCPU0、DSP0、DRP0、DRP1の各PU用の実行コードを示す。また、図25は、マクロタスクMTG1_3を処理するプロセッサのグループとしてCPU1、DSP1、BMP0、1の各PU用の実行コードを示す。コンパイラ40の生成コードは擬似コードで表現されているが、前述したように実際はMPI等のインタフェース規格に従って表現される。
以上のように、本発明によれば、多種のプロセッサユニットPUを集積するマルチプロセッサシステムにおいて、当該PUを効率よく動作させるプログラムの分割配置および制御コードを生成するコンパイラ40により、当該プロセッサシステムの性能を最大限活用しつつ、最小限の処理時間内に低電力にて効率よく処理することが可能となる。また、さらにはソフトウェア開発者がプロセッサの構成を意識することなく、短時間で極めて効率の良いプログラム作成が可能となる。
なお、上記実施形態においては、一つのチップに複数のPU10〜17を備えたマルチプロセッサシステムに本発明を適用した例を示したが、図1に示したチップを複数備えた並列計算機に適用することも可能であり、上記と同様の作用効果を得ることができる。
前記スケジューリングコードを生成する処理は、前記マクロタスクグラフテーブルとプロセッサグルーピングテーブル及びコスト情報を参照してプロセッサユニットの制御コードを生成する処理と、前記単位ブロックの実行順序に応じて前記制御コードを挿入する処理を含むことを特徴とするマルチグレイン並列化コンパイラ。
前記スケジューリングコードを生成する処理は、前記マクロタスクグラフテーブルとプロセッサグルーピングテーブル及びコスト情報を参照して、動的に前記単位ブロックのスケジューリングを行うスケジューリングプログラムを生成する処理と、前記単位ブロックの実行順序に応じて前記スケジューリングプログラムを挿入する処理を含むことを特徴とするマルチグレイン並列化コンパイラ。
12、13 BMP(プロセッサユニット)
14、15 DSP(プロセッサユニット)
16、17 DRP(プロセッサユニット)
18 共有メモリSM
19 ローカルバス
20 電源電圧生成回路(DCGEN)
21 クロック生成回路(CLKGEN)
24 ローカルメモリ(LM)
25 システム制御レジスタ
Claims (6)
- 単一または複数種類のプロセッサユニットを複数個有するマルチプロセッサシステムに実行させる目的プログラムを生成するコンパイラであって、
前記プロセッサユニットは、特定用途プロセッサユニットと汎用プロセッサユニットとを含み、
入力プログラムを読み込む処理と、
前記入力プログラムを解析し、前記入力プログラムを複数の粒度の単位ブロックに分割する処理と、
前記単位ブロック間の制御依存性、及びデータ依存性を解析し、前記単位ブロックの並列性を抽出する処理と、
前記マルチプロセッサシステムが具備する各プロセッサユニットで前記単位ブロックを処理するために必要な演算サイクル時間をコスト情報として求める処理と、
前記コスト情報に基づいて前記入力プログラムの処理時間が最小となるように、前記単位ブロックを処理するのに必要な前記特定用途プロセッサユニットを選択し、さらに少なくともひとつの汎用プロセッサユニットを選択し、これら特定用途プロセッサユニットと汎用プロセッサユニットを1つのグループとして前記単位ブロックを割り当てるスケジューリングコードを生成する処理と、
前記スケジューリングコードを入力プログラムに付加し、前記各プロセッサユニット毎の実行コードを生成し、目的コードとして出力する処理と、
を計算機に実行させることを特徴とするマルチグレイン並列化コンパイラ。 - 単一または複数種類のプロセッサユニットを複数個有するマルチプロセッサシステムに実行させる目的プログラムを生成するコンパイラであって、
前記プロセッサユニットは、特定用途プロセッサユニットと汎用プロセッサユニットとを含み、
入力プログラムを読み込む処理と、
前記入力プログラムを解析し、前記入力プログラムを複数の粒度の単位ブロックに分割する処理と、
前記単位ブロック間の制御依存性、及びデータ依存性を解析し、前記単位ブロックの並列性を抽出する処理と、
前記マルチプロセッサシステムが具備する各プロセッサユニットで前記単位ブロックを処理するために必要な電力をコスト情報として求める処理と、
前記コスト情報に基づいて前記入力プログラムの処理時間が最小となるように、前記単位ブロックを処理するのに必要な前記特定用途プロセッサユニットを選択し、さらに少なくともひとつの汎用プロセッサユニットを選択し、これら特定用途プロセッサユニットと汎用プロセッサユニットを1つのグループとして前記単位ブロックを割り当てるスケジューリングコードを生成する処理と、
前記スケジューリングコードを入力プログラムに付加し、前記各プロセッサユニット毎の実行コードを生成し、目的コードとして出力する処理と、
を計算機に実行させることを特徴とするマルチグレイン並列化コンパイラ。 - 前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニットで演算した際に、前記演算に必要とする時間が前記スケジューリングで許容された時間内であった場合は、
前記プロセッサユニットの演算に際して消費する電力を低減するためプロセッサユニットに与える動作電圧及び動作クロックを変化または遮断するための制御コードを生成する処理を含むことを特徴とする請求項1または請求項2に記載のマルチグレイン並列化コンパイラ。 - 前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニット以外のプロセッサユニットについて、動作クロック及び動作電源の供給を遮断するための制御コードを生成することを特徴とする請求項1または請求項2に記載のマルチグレイン並列化コンパイラ。 - 前記実行コードを生成し、目的コードとして出力する処理は、
前記各プロセッサユニットの種類に応じたローカルコンパイラを用いて前記実行コードを生成することを特徴とする請求項1または請求項2に記載のマルチグレイン並列化コンパイラ。 - 前記マルチプロセッサシステムは、前記プロセッサユニットに複数のクロック周波数の内の一つを動作クロックとして供給するクロック供給部と、前記プロセッサユニットに複数の電圧の内の一つを動作電圧として供給する供給する電力供給部と、前記クロック供給部及び電力供給部がプロセッサユニットに供給する動作クロックと動作電圧とを設定するシステム制御レジスタを有し、
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニットで演算した際に、前記演算に必要とする時間が前記スケジューリングで許容された時間内であった場合は、
前記プロセッサユニットの演算に際して消費する電力を低減するため前記システム制御レジスタに設定する値を変更する制御コードを生成する処理を含むことを特徴とする請求項1または請求項2に記載のマルチグレイン並列化コンパイラ。
Priority Applications (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005114842A JP4082706B2 (ja) | 2005-04-12 | 2005-04-12 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
PCT/JP2006/308161 WO2006109887A1 (ja) | 2005-04-12 | 2006-04-12 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
CNB2006800006660A CN100514253C (zh) | 2005-04-12 | 2006-04-12 | 多处理器系统 |
CN2009100075365A CN101504619B (zh) | 2005-04-12 | 2006-04-12 | 多粒度并行化编译方法 |
KR20077003527A KR100861631B1 (ko) | 2005-04-12 | 2006-04-12 | 멀티프로세서 시스템 및 멀티그레인 병렬화 컴파일러를 기록한 컴퓨터 판독 가능 매체 |
EP06732068A EP1870792A4 (en) | 2005-04-12 | 2006-04-12 | MULTIPROCESSOR AND COMPILER SYSTEM WITH MULTIGRAIN PARALLELISM |
EP13176745.1A EP2657839B1 (en) | 2005-04-12 | 2006-04-12 | Multiprocessor system and multigrain parallelizing compiler |
US11/660,104 US7895453B2 (en) | 2005-04-12 | 2006-04-12 | Multiprocessor system and multigrain parallelizing compiler |
CN2009101466440A CN101571745B (zh) | 2005-04-12 | 2006-04-12 | 多处理器系统 |
EP13161131.1A EP2620840B1 (en) | 2005-04-12 | 2006-04-12 | Multiprocessor system |
US12/654,956 US8812880B2 (en) | 2005-04-12 | 2010-01-11 | Multiprocessor system and multigrain parallelizing compiler |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005114842A JP4082706B2 (ja) | 2005-04-12 | 2005-04-12 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007166280A Division JP2007305148A (ja) | 2007-06-25 | 2007-06-25 | マルチプロセッサシステム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006293768A JP2006293768A (ja) | 2006-10-26 |
JP2006293768A5 JP2006293768A5 (ja) | 2007-04-19 |
JP4082706B2 true JP4082706B2 (ja) | 2008-04-30 |
Family
ID=37087143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005114842A Expired - Fee Related JP4082706B2 (ja) | 2005-04-12 | 2005-04-12 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
Country Status (6)
Country | Link |
---|---|
US (2) | US7895453B2 (ja) |
EP (3) | EP2657839B1 (ja) |
JP (1) | JP4082706B2 (ja) |
KR (1) | KR100861631B1 (ja) |
CN (3) | CN101571745B (ja) |
WO (1) | WO2006109887A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3343351A1 (en) | 2016-12-28 | 2018-07-04 | Waseda University | Parallel program generating method and parallelization compiling apparatus |
DE112019006739T5 (de) | 2019-02-26 | 2021-11-04 | Mitsubishi Electric Corporation | Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren und informationsverarbeitungsprogramm |
Families Citing this family (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4784827B2 (ja) * | 2006-06-06 | 2011-10-05 | 学校法人早稲田大学 | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ |
JP4697805B2 (ja) * | 2006-10-24 | 2011-06-08 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
US7949887B2 (en) | 2006-11-01 | 2011-05-24 | Intel Corporation | Independent power control of processing cores |
JP4945410B2 (ja) * | 2006-12-06 | 2012-06-06 | 株式会社東芝 | 情報処理装置及び情報処理方法 |
US7917784B2 (en) * | 2007-01-07 | 2011-03-29 | Apple Inc. | Methods and systems for power management in a data processing system |
WO2008090665A1 (ja) * | 2007-01-25 | 2008-07-31 | Nec Corporation | プログラム並列化方法及び装置 |
US8291197B2 (en) | 2007-02-12 | 2012-10-16 | Oracle America, Inc. | Aggressive loop parallelization using speculative execution mechanisms |
JP2007305148A (ja) * | 2007-06-25 | 2007-11-22 | Univ Waseda | マルチプロセッサシステム |
EP2178115B1 (en) * | 2007-08-09 | 2017-12-13 | Fujitsu Limited | Semiconductor integrated circuit |
WO2009021539A1 (de) * | 2007-08-16 | 2009-02-19 | Siemens Aktiengesellschaft | Kompilieren von computerprogrammen für multicore-prozessoren und deren ausführung |
JP2009064340A (ja) * | 2007-09-07 | 2009-03-26 | Murata Mach Ltd | データ転送システム |
JP2009069921A (ja) | 2007-09-11 | 2009-04-02 | Hitachi Ltd | マルチプロセッサシステム |
EP2202638A4 (en) * | 2007-09-21 | 2011-12-14 | Fujitsu Ltd | TRANSLATION FACILITY, TRANSLATION PROCEDURE AND TRANSLATION PROGRAM AND PROCESSOR CONTROL SYSTEM AND PROCESSOR |
JP2009140304A (ja) * | 2007-12-07 | 2009-06-25 | Sony Corp | 半導体チップ |
KR100957060B1 (ko) * | 2007-12-12 | 2010-05-13 | 엠텍비젼 주식회사 | 명령어 병렬 스케줄러, 방법 및 그 기록매체 |
JP4823209B2 (ja) * | 2007-12-13 | 2011-11-24 | アラクサラネットワークス株式会社 | パケット転送装置 |
JP2009146243A (ja) * | 2007-12-17 | 2009-07-02 | Hitachi Ltd | 基板バイアス制御を活用する電力性能最適化コンパイラ及びプロセッサシステム |
US8683133B2 (en) * | 2008-01-18 | 2014-03-25 | Texas Instruments Incorporated | Termination of prefetch requests in shared memory controller |
JP5214262B2 (ja) * | 2008-01-30 | 2013-06-19 | 株式会社東芝 | 半導体集積回路及び電源制御方法 |
KR101418969B1 (ko) * | 2008-02-27 | 2014-08-13 | 삼성전자주식회사 | 프로세서 및 컴파일 방법 |
JP4996519B2 (ja) * | 2008-03-27 | 2012-08-08 | パナソニック株式会社 | 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法 |
US8176341B2 (en) * | 2008-03-31 | 2012-05-08 | Intel Corporation | Platform power management based on latency guidance |
US20100058086A1 (en) * | 2008-08-28 | 2010-03-04 | Industry Academic Cooperation Foundation, Hallym University | Energy-efficient multi-core processor |
JP5245722B2 (ja) * | 2008-10-29 | 2013-07-24 | 富士通株式会社 | スケジューラ、プロセッサシステム、プログラム生成装置およびプログラム生成用プログラム |
US8863105B2 (en) | 2008-11-28 | 2014-10-14 | Siemens Aktiengesellschaft | Automatic control system and method for executing control program in parallel |
US9323306B2 (en) * | 2008-12-03 | 2016-04-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Energy based time scheduler for parallel computing system |
US8495342B2 (en) * | 2008-12-16 | 2013-07-23 | International Business Machines Corporation | Configuring plural cores to perform an instruction having a multi-core characteristic |
JP5007838B2 (ja) * | 2009-03-05 | 2012-08-22 | 富士ゼロックス株式会社 | 情報処理装置および情報処理プログラム |
JP5293289B2 (ja) * | 2009-03-11 | 2013-09-18 | 富士通株式会社 | マルチコアプロセッサ及びその制御方法 |
JP4621786B2 (ja) * | 2009-04-28 | 2011-01-26 | 株式会社東芝 | 情報処理装置、並列処理最適化方法およびプログラム |
US9032407B2 (en) | 2009-05-25 | 2015-05-12 | Panasonic Intellectual Property Corporation Of America | Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit |
US8230410B2 (en) * | 2009-10-26 | 2012-07-24 | International Business Machines Corporation | Utilizing a bidding model in a microparallel processor architecture to allocate additional registers and execution units for short to intermediate stretches of code identified as opportunities for microparallelization |
CN101714103B (zh) * | 2009-12-15 | 2012-11-28 | 中国华录·松下电子信息有限公司 | 基于可编程逻辑器件的任务调度器 |
US9563250B2 (en) * | 2009-12-16 | 2017-02-07 | Qualcomm Incorporated | System and method for controlling central processing unit power based on inferred workload parallelism |
US9176572B2 (en) | 2009-12-16 | 2015-11-03 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US20110145559A1 (en) * | 2009-12-16 | 2011-06-16 | Thomson Steven S | System and method for controlling central processing unit power with guaranteed steady state deadlines |
US8650426B2 (en) | 2009-12-16 | 2014-02-11 | Qualcomm Incorporated | System and method for controlling central processing unit power in a virtualized system |
US8909962B2 (en) | 2009-12-16 | 2014-12-09 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9128705B2 (en) | 2009-12-16 | 2015-09-08 | Qualcomm Incorporated | System and method for controlling central processing unit power with reduced frequency oscillations |
US8689037B2 (en) * | 2009-12-16 | 2014-04-01 | Qualcomm Incorporated | System and method for asynchronously and independently controlling core clocks in a multicore central processing unit |
US9104411B2 (en) | 2009-12-16 | 2015-08-11 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US8775830B2 (en) | 2009-12-16 | 2014-07-08 | Qualcomm Incorporated | System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature |
KR101155202B1 (ko) | 2009-12-24 | 2012-06-13 | 포항공과대학교 산학협력단 | 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템 |
WO2011079424A1 (zh) * | 2009-12-31 | 2011-07-07 | 西门子公司 | 并行化自动控制程序的方法及编译器 |
EP2539808A4 (en) * | 2010-02-22 | 2015-10-14 | Analog Devices Inc | SUPERSCAL ORDER FOR PROBABILITY COMPUTER |
JP4809497B2 (ja) | 2010-02-25 | 2011-11-09 | ファナック株式会社 | 複数の独立したシーケンスプログラムを並列実行するプログラマブルコントローラ |
US8723877B2 (en) | 2010-05-20 | 2014-05-13 | Apple Inc. | Subbuffer objects |
JP5382220B2 (ja) * | 2010-06-30 | 2014-01-08 | 富士通株式会社 | データ復元プログラム、データ復元装置およびデータ復元方法 |
US8943334B2 (en) * | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
JP5581960B2 (ja) * | 2010-10-14 | 2014-09-03 | 凸版印刷株式会社 | 半導体装置 |
CN101989192A (zh) * | 2010-11-04 | 2011-03-23 | 浙江大学 | 一种程序自动并行化的方法 |
WO2012086040A1 (ja) | 2010-12-22 | 2012-06-28 | 富士通株式会社 | マルチコアプロセッサシステム、および電力制御方法 |
WO2012093498A1 (en) * | 2011-01-07 | 2012-07-12 | Nec Corporation | Energy-efficient resource management system and method for heterogeneous multicore processors |
US8468373B2 (en) * | 2011-01-14 | 2013-06-18 | Apple Inc. | Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state |
KR101754998B1 (ko) * | 2011-01-27 | 2017-07-06 | 삼성전자주식회사 | 멀티 코어 시스템 및 멀티 코어 시스템에서의 데이터 병렬 처리 방법 |
CN107256077A (zh) * | 2011-02-10 | 2017-10-17 | 富士通株式会社 | 调度方法、设计辅助方法以及系统 |
US8799880B2 (en) * | 2011-04-08 | 2014-08-05 | Siemens Aktiengesellschaft | Parallelization of PLC programs for operation in multi-processor environments |
CN102207892B (zh) * | 2011-05-27 | 2013-03-27 | 清华大学 | 一种动态可重构处理器内子单元间进行同步的方法 |
US8494477B2 (en) * | 2011-06-24 | 2013-07-23 | Intel Corporation | Power management for an electronic device |
KR20130002046A (ko) | 2011-06-28 | 2013-01-07 | 삼성전자주식회사 | 멀티 코어를 포함하는 저장 장치의 전력 관리 방법 |
JP5653315B2 (ja) * | 2011-07-28 | 2015-01-14 | 株式会社東芝 | 情報処理装置 |
US8918770B2 (en) * | 2011-08-25 | 2014-12-23 | Nec Laboratories America, Inc. | Compiler for X86-based many-core coprocessors |
US9846673B2 (en) | 2011-11-04 | 2017-12-19 | Waseda University | Processor, accelerator, and direct memory access controller within a processor core that each reads/writes a local synchronization flag area for parallel execution |
KR101893982B1 (ko) * | 2012-04-09 | 2018-10-05 | 삼성전자 주식회사 | 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 |
FR2989797B1 (fr) * | 2012-04-24 | 2014-12-26 | Kalray | Reduction de la consommation electrique d'une matrice de processeurs |
RU2012127578A (ru) | 2012-07-02 | 2014-01-10 | ЭлЭсАй Корпорейшн | Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред |
RU2012127581A (ru) * | 2012-07-02 | 2014-01-10 | ЭлЭсАй Корпорейшн | Генератор исходного кода для разработки и тестирования программного обеспечения для многопроцессорных сред |
US9619282B2 (en) | 2012-08-21 | 2017-04-11 | Lenovo (Singapore) Pte. Ltd. | Task scheduling in big and little cores |
US20140068581A1 (en) * | 2012-08-30 | 2014-03-06 | International Business Machines Corporation | Optimized division of work among processors in a heterogeneous processing system |
US9110734B2 (en) * | 2012-11-12 | 2015-08-18 | International Business Machines Corporation | Power-constrained compiler code generation and scheduling of work in a heterogeneous processing system |
EP2950211B1 (en) * | 2013-01-23 | 2021-07-07 | Waseda University | Parallelism extraction method and method for making program |
US9442559B2 (en) | 2013-03-14 | 2016-09-13 | Intel Corporation | Exploiting process variation in a multicore processor |
CN103257892B (zh) * | 2013-05-27 | 2016-03-23 | 北京世纪瑞尔技术股份有限公司 | 一种基于宏组合的多任务调度方法及系统 |
JP6018022B2 (ja) | 2013-06-14 | 2016-11-02 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
JP2015014833A (ja) * | 2013-07-03 | 2015-01-22 | スパンション エルエルシー | 再構築可能なlsi |
KR102114453B1 (ko) | 2013-07-19 | 2020-06-05 | 삼성전자주식회사 | 모바일 장치 및 그것의 제어 방법 |
CN104424156A (zh) * | 2013-09-09 | 2015-03-18 | 中兴通讯股份有限公司 | 处理器的核处理方法、装置及终端 |
WO2015050474A1 (en) * | 2013-10-03 | 2015-04-09 | Huawei Technologies Co., Ltd | Method and system for assigning a computational block of a software program to cores of a multi-processor system |
JP6387626B2 (ja) * | 2014-03-04 | 2018-09-12 | 日本電気株式会社 | 情報処理システム、情報処理方法、および、スケジューリングプログラム |
US10180828B2 (en) * | 2014-04-29 | 2019-01-15 | Significs And Elements, Llc | Systems and methods for power optimization of processors |
JP6372331B2 (ja) | 2014-12-05 | 2018-08-15 | 富士通株式会社 | 並列演算装置、並列演算システム、および並列演算プログラム |
JP6072090B2 (ja) | 2015-01-16 | 2017-02-01 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置、データ処理方法 |
US9400685B1 (en) * | 2015-01-30 | 2016-07-26 | Huawei Technologies Co., Ltd. | Dividing, scheduling, and parallel processing compiled sub-tasks on an asynchronous multi-core processor |
CN105005547B (zh) * | 2015-06-25 | 2017-08-25 | 浪潮电子信息产业股份有限公司 | 一种基于numa的多路服务器完全物理分区方法 |
EP3121714B1 (en) * | 2015-07-23 | 2018-02-21 | Karlsruher Institut für Technologie | Computer system and method for multi-processor communication |
JP6439623B2 (ja) | 2015-08-05 | 2018-12-19 | 富士通株式会社 | 計算機、動作周波数決定プログラム及び動作周波数決定方法 |
CN108141648B (zh) * | 2015-10-13 | 2021-10-26 | 富士通株式会社 | 控制系统和控制方法 |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US10877816B2 (en) * | 2016-04-20 | 2020-12-29 | Samsung Electronics Co., Ltd. | Optimal task scheduler |
JP6808414B2 (ja) * | 2016-09-21 | 2021-01-06 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
US10386909B1 (en) * | 2016-09-28 | 2019-08-20 | Cadence Design Systems, Inc. | Method and system to mitigate large power load steps due to intermittent execution in a computation system |
US10459817B2 (en) * | 2017-01-18 | 2019-10-29 | International Business Machines Corporation | Evaluating performance improvement of executing instructions in a first processor over execution on a second processor |
KR102475892B1 (ko) * | 2017-07-26 | 2022-12-08 | 삼성전자주식회사 | 집적 회로, 집적 회로에게 전력을 공급하는 방법 및 시스템 |
JP6933052B2 (ja) * | 2017-08-23 | 2021-09-08 | 富士通株式会社 | 情報処理装置、コンパイル方法及びコンパイルプログラム |
JP7031930B2 (ja) * | 2018-03-19 | 2022-03-08 | Necプラットフォームズ株式会社 | プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム |
JP2019179418A (ja) * | 2018-03-30 | 2019-10-17 | 株式会社デンソー | スケジューリング方法、スケジューリング装置 |
RU2685018C1 (ru) * | 2018-04-24 | 2019-04-16 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ распараллеливания программ в вычислительной системе |
RU2691860C1 (ru) * | 2018-06-25 | 2019-06-18 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ распараллеливания программ в среде логического программирования в вычислительной системе |
GB2575290B (en) * | 2018-07-04 | 2020-12-02 | Graphcore Ltd | Gateway Fabric Ports |
JP7087752B2 (ja) * | 2018-07-11 | 2022-06-21 | 株式会社デンソー | 電子装置 |
US10831535B2 (en) | 2019-01-01 | 2020-11-10 | International Business Machines Corporation | Reducing minimum operating voltage through heterogeneous codes |
RU2704533C1 (ru) * | 2019-01-28 | 2019-10-29 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ распараллеливания программ в среде агентно-ориентированного программирования в вычислительной системе |
CN111913743B (zh) * | 2019-05-09 | 2023-04-14 | 杭州海康威视数字技术股份有限公司 | 数据处理方法及装置 |
JP7259656B2 (ja) | 2019-09-04 | 2023-04-18 | トヨタ自動車株式会社 | 車両の制御装置、車両の制御方法及び制御プログラム |
JP7316902B2 (ja) * | 2019-10-16 | 2023-07-28 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
KR20210132862A (ko) * | 2020-04-28 | 2021-11-05 | 삼성전자주식회사 | 클록 제어 방법 및 이를 위한 전자 장치 |
CN112257362B (zh) * | 2020-10-27 | 2023-01-31 | 海光信息技术股份有限公司 | 逻辑代码的验证方法、验证装置以及存储介质 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1013070B (zh) * | 1988-01-09 | 1991-07-03 | 北京信通电脑技术公司 | 直接处理接近数学公式的″机器表达式″的计算机系统 |
JPH0786787B2 (ja) * | 1988-04-12 | 1995-09-20 | 日本電気株式会社 | マイクロコンピュータ |
US5461266A (en) * | 1990-11-27 | 1995-10-24 | Hitachi, Ltd. | Power consumption control system |
JP3343346B2 (ja) * | 1990-11-28 | 2002-11-11 | 株式会社日立製作所 | 消費電力制御方式、情報処理装置および複合部品 |
US5392430A (en) * | 1992-10-30 | 1995-02-21 | International Business Machines | Hierarchical scheduling method for processing tasks having precedence constraints on a parallel processing system |
JP3433970B2 (ja) * | 1993-05-25 | 2003-08-04 | シャープ株式会社 | デジタル電子機器用電力制御装置、該電力制御装置により電力が制御される処理装置、及び該電力制御装置を備えたデジタル電子機器用電力管理システム |
JP3718251B2 (ja) * | 1994-02-28 | 2005-11-24 | 株式会社ルネサステクノロジ | データ処理装置 |
US5778237A (en) * | 1995-01-10 | 1998-07-07 | Hitachi, Ltd. | Data processor and single-chip microcomputer with changing clock frequency and operating voltage |
US5815715A (en) * | 1995-06-05 | 1998-09-29 | Motorola, Inc. | Method for designing a product having hardware and software components and product therefor |
US5996083A (en) * | 1995-08-11 | 1999-11-30 | Hewlett-Packard Company | Microprocessor having software controllable power consumption |
US5630110A (en) * | 1996-03-01 | 1997-05-13 | Samsung Electronics Co., Ltd. | Method and apparatus for enhancing performance of a processor |
JPH11272490A (ja) | 1998-03-20 | 1999-10-08 | Mitsubishi Electric Corp | 診断制御システム |
US6205519B1 (en) * | 1998-05-27 | 2001-03-20 | Hewlett Packard Company | Cache management for a multi-threaded processor |
JP2000003225A (ja) * | 1998-06-16 | 2000-01-07 | Hitachi Ltd | データ処理装置及びデータ処理システム |
FI117523B (fi) | 1998-10-07 | 2006-11-15 | Nokia Corp | Menetelmä tehonkulutuksen säätämiseksi |
US6477654B1 (en) * | 1999-04-06 | 2002-11-05 | International Business Machines Corporation | Managing VT for reduced power using power setting commands in the instruction stream |
JP3138737B1 (ja) | 1999-10-22 | 2001-02-26 | 東京大学長 | パワー制御装置及び方法並びにパワー制御プログラムを記録した記録媒体 |
JP4784792B2 (ja) | 1999-12-22 | 2011-10-05 | 学校法人早稲田大学 | マルチプロセッサ |
US6587737B2 (en) * | 2000-09-14 | 2003-07-01 | Sulzer Makert And Technology Ag | Method for the monitoring of a plant |
JP2002215597A (ja) * | 2001-01-15 | 2002-08-02 | Mitsubishi Electric Corp | マルチプロセッサ装置 |
JP2003099148A (ja) * | 2001-09-19 | 2003-04-04 | Sanyo Electric Co Ltd | データ処理装置とこれに利用可能なシステム制御装置およびデータ変換方法 |
US7111178B2 (en) * | 2001-09-28 | 2006-09-19 | Intel Corporation | Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system |
JP3794312B2 (ja) * | 2001-11-08 | 2006-07-05 | ソニー株式会社 | 電源電圧周波数制御回路 |
CN1625727A (zh) * | 2002-04-19 | 2005-06-08 | 国际商业机器公司 | 采用由具有累加指令配置的编译器控制的硬件结构的处理器的功率控制 |
JP3485558B1 (ja) * | 2002-05-28 | 2004-01-13 | 沖電気工業株式会社 | 半導体集積回路 |
JP2004038642A (ja) | 2002-07-04 | 2004-02-05 | Renesas Technology Corp | マルチプロセッサ |
JP2004199139A (ja) * | 2002-12-16 | 2004-07-15 | Matsushita Electric Ind Co Ltd | プロセッサシステム、命令列最適化装置、および命令列最適化プログラム |
JP2004234116A (ja) | 2003-01-28 | 2004-08-19 | Hitachi Information Technology Co Ltd | 電力供給課金システム及び電力供給課金方法 |
JP3896087B2 (ja) | 2003-01-28 | 2007-03-22 | 松下電器産業株式会社 | コンパイラ装置およびコンパイル方法 |
JP4177681B2 (ja) | 2003-02-20 | 2008-11-05 | 学校法人早稲田大学 | コンパイル方法、コンパイラ、およびコンパイル装置 |
JP4090908B2 (ja) | 2003-02-21 | 2008-05-28 | シャープ株式会社 | 画像処理装置および画像形成装置 |
US7185215B2 (en) * | 2003-02-24 | 2007-02-27 | International Business Machines Corporation | Machine code builder derived power consumption reduction |
US7009363B2 (en) * | 2003-03-26 | 2006-03-07 | Pathfinder Energy Services, Inc. | Optimized battery life in multiple battery applications |
US7134031B2 (en) * | 2003-08-04 | 2006-11-07 | Arm Limited | Performance control within a multi-processor system |
JP4025260B2 (ja) * | 2003-08-14 | 2007-12-19 | 株式会社東芝 | スケジューリング方法および情報処理システム |
US6956579B1 (en) * | 2003-08-18 | 2005-10-18 | Nvidia Corporation | Private addressing in a multi-processor graphics processing system |
US8190863B2 (en) * | 2004-07-02 | 2012-05-29 | Intel Corporation | Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction |
US7930539B2 (en) * | 2004-08-03 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Computer system resource access control |
JP4557803B2 (ja) * | 2005-05-27 | 2010-10-06 | 富士通株式会社 | ネットワークシステム及び通信方法 |
JP4457047B2 (ja) * | 2005-06-22 | 2010-04-28 | 株式会社ルネサステクノロジ | マルチプロセッサシステム |
US7464280B2 (en) * | 2005-06-22 | 2008-12-09 | Hewlett-Packard Development Company, L.P. | Power module for a plurality of processors |
US7870400B2 (en) * | 2007-01-02 | 2011-01-11 | Freescale Semiconductor, Inc. | System having a memory voltage controller which varies an operating voltage of a memory and method therefor |
-
2005
- 2005-04-12 JP JP2005114842A patent/JP4082706B2/ja not_active Expired - Fee Related
-
2006
- 2006-04-12 EP EP13176745.1A patent/EP2657839B1/en not_active Not-in-force
- 2006-04-12 CN CN2009101466440A patent/CN101571745B/zh not_active Expired - Fee Related
- 2006-04-12 EP EP06732068A patent/EP1870792A4/en not_active Withdrawn
- 2006-04-12 CN CNB2006800006660A patent/CN100514253C/zh not_active Expired - Fee Related
- 2006-04-12 US US11/660,104 patent/US7895453B2/en active Active
- 2006-04-12 EP EP13161131.1A patent/EP2620840B1/en not_active Not-in-force
- 2006-04-12 WO PCT/JP2006/308161 patent/WO2006109887A1/ja active Application Filing
- 2006-04-12 KR KR20077003527A patent/KR100861631B1/ko active IP Right Grant
- 2006-04-12 CN CN2009100075365A patent/CN101504619B/zh not_active Expired - Fee Related
-
2010
- 2010-01-11 US US12/654,956 patent/US8812880B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3343351A1 (en) | 2016-12-28 | 2018-07-04 | Waseda University | Parallel program generating method and parallelization compiling apparatus |
DE112019006739T5 (de) | 2019-02-26 | 2021-11-04 | Mitsubishi Electric Corporation | Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren und informationsverarbeitungsprogramm |
DE112019006739B4 (de) | 2019-02-26 | 2023-04-06 | Mitsubishi Electric Corporation | Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren und informationsverarbeitungsprogramm |
Also Published As
Publication number | Publication date |
---|---|
CN101571745B (zh) | 2012-04-04 |
US20070255929A1 (en) | 2007-11-01 |
CN101504619B (zh) | 2012-08-08 |
CN101504619A (zh) | 2009-08-12 |
US20100146310A1 (en) | 2010-06-10 |
EP2620840B1 (en) | 2016-02-03 |
KR20070061795A (ko) | 2007-06-14 |
CN101019084A (zh) | 2007-08-15 |
KR100861631B1 (ko) | 2008-10-07 |
CN100514253C (zh) | 2009-07-15 |
WO2006109887A1 (ja) | 2006-10-19 |
EP1870792A1 (en) | 2007-12-26 |
US8812880B2 (en) | 2014-08-19 |
CN101571745A (zh) | 2009-11-04 |
EP2657839B1 (en) | 2020-06-03 |
EP1870792A4 (en) | 2010-11-03 |
EP2657839A2 (en) | 2013-10-30 |
JP2006293768A (ja) | 2006-10-26 |
US7895453B2 (en) | 2011-02-22 |
EP2657839A3 (en) | 2014-08-20 |
EP2620840A1 (en) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4082706B2 (ja) | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ | |
US8051412B2 (en) | Global compiler for controlling heterogeneous multiprocessor | |
JP4936517B2 (ja) | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ | |
JP6018022B2 (ja) | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 | |
US8438359B2 (en) | Memory management method, information processing device, program creation method, and program | |
JP6319880B2 (ja) | 並列性の抽出方法及びプログラムの作成方法 | |
US20140137123A1 (en) | Microcomputer for low power efficient baseband processing | |
JP2007305148A (ja) | マルチプロセッサシステム | |
JP2010079622A (ja) | マルチコアプロセッサシステム、および、そのタスク制御方法 | |
JP2016192153A (ja) | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 | |
JP2001175619A (ja) | シングルチップマルチプロセッサ | |
Abbas et al. | Run-time parallelization switching for resource optimization on an MPSoC platform | |
Wada et al. | A parallelizing compiler cooperative heterogeneous multicore processor architecture | |
Aust et al. | Energy-aware mpsoc for real-time applications with space-sharing, adaptive and selective clocking and software-first design | |
Shirako et al. | Power reduction controll for multicores in OSCAR multigrain parallelizing compiler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070302 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070302 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20070302 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20070326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070508 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070814 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071015 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080115 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080121 |
|
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: 20080205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080208 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4082706 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150222 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S201 | Request for registration of exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R314201 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S804 | Written request for registration of cancellation of exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R314803 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |