JP2009187478A - 情報処理装置、情報処理方法およびプロセッサ - Google Patents
情報処理装置、情報処理方法およびプロセッサ Download PDFInfo
- Publication number
- JP2009187478A JP2009187478A JP2008029461A JP2008029461A JP2009187478A JP 2009187478 A JP2009187478 A JP 2009187478A JP 2008029461 A JP2008029461 A JP 2008029461A JP 2008029461 A JP2008029461 A JP 2008029461A JP 2009187478 A JP2009187478 A JP 2009187478A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- program
- setting data
- data
- execution
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
【課題】シーケンス処理はハードウェア構成により制限されてしまう。
【解決手段】抽出部10は、所定のソースプログラムから、それぞれ意味的または機能的にまとまった単位演算処理を実行する複数の単位プログラムを抽出する。解析部14は、ソースプログラムを解析して、各単位プログラムごとに次に実行すべき単位プログラムを特定する。追加処理生成部18は、実行順序保持部16に保持される識別情報を参照し、各単位プログラムごとに次に実行すべき単位プログラムを特定するためのデータまたはプログラムを生成する。実行プログラム生成部20は、追加処理生成部18により保持される、それぞれ対応する単位プログラムに追加して一連の実行プログラムを生成する。
【選択図】図1
【解決手段】抽出部10は、所定のソースプログラムから、それぞれ意味的または機能的にまとまった単位演算処理を実行する複数の単位プログラムを抽出する。解析部14は、ソースプログラムを解析して、各単位プログラムごとに次に実行すべき単位プログラムを特定する。追加処理生成部18は、実行順序保持部16に保持される識別情報を参照し、各単位プログラムごとに次に実行すべき単位プログラムを特定するためのデータまたはプログラムを生成する。実行プログラム生成部20は、追加処理生成部18により保持される、それぞれ対応する単位プログラムに追加して一連の実行プログラムを生成する。
【選択図】図1
Description
本発明は、ソースプログラムをプロセッサが実行可能な、実行プログラムまたは設定データに変換するための情報処理装置、情報処理方法およびプロセッサに関する。
プロセッサで実行されるべきプログラムは、ある処理の演算結果に基づいて次の処理を決定または選択する処理(本明細書では、適宜、シーケンス処理という)を有している。たとえば、if文が該当する。シーケンス処理を実現するための手法には様々なものがある。
たとえば、CPUの多くに用いられているスタックベースのシーケンス処理では次のように処理される。すなわち、第1サブルーチンを呼び出す場合、戻りアドレスをメモリ内のスタック領域に格納してから第1サブルーチンにジャンプする。そして、第1サブルーチンが終了すると、当該スタック領域から戻りアドレスを取り出すことによって元の処理に戻る。第1サブルーチンから別の第2サブルーチンを呼び出す場合、第1サブルーチンの戻りアドレスをさらにスタック領域に格納する。そして、第2サブルーチンが終了するとスタック領域に最後に格納されたアドレスに戻ることにより第1サブルーチンに戻る。
特許文献1は再構成可能演算装置を開示する。この再構成可能演算装置は、演算を行う複数の演算器ユニットから構成される演算器群が、シーケンサによって制御される。シーケンサは演算器群の状態を決める設定情報を予め複数保持しており、演算器群による演算結果に応じて設定情報を切り替え、演算器群の状態を再構成する。
特開2006−11825号公報
上述したスタックベースのシーケンス処理では、サブルーチンの数がスタック領域の容量を超えるようなプログラムは処理できない。すなわち、シーケンス処理がハードウェア構成、ここではメモリの構成により制限されてしまう。
本発明はこうした状況に鑑みなされたものであり、その目的は、ハードウェア構成に依存せずにシーケンス処理を実現することができる情報処理装置、情報処理方法およびプロセッサを提供することにある。
本発明のある態様の情報処理装置は、所定のソースプログラムから、それぞれ意味的または機能的にまとまった単位演算処理を実行する複数の単位プログラムを抽出する抽出部と、抽出部により抽出された複数の単位プログラムを保持する単位プログラム保持部と、ソースプログラムを解析して、各単位プログラムごとに次に実行すべき単位プログラムを特定する解析部と、解析部により特定された、次に実行すべき単位プログラムの識別情報を保持する実行順序保持部と、実行順序保持部に保持される識別情報を参照し、各単位プログラムごとに次に実行すべき単位プログラムを特定するためのデータまたはプログラムを生成する第1生成部と、第1生成部により生成されたデータまたはプログラムを、単位プログラム保持部により保持される、それぞれ対応する単位プログラムに追加して一連の実行プログラムを生成する第2生成部と、を備える。
本発明のさらに別の態様は、プロセッサである。このプロセッサは、情報処理装置により生成された設定データを保持する設定データ保持部と、設定データ保持部から設定データが供給される、機能の変更が可能なリコンフィギュラブル回路と、を備える。
本発明のさらに別の態様もまた、プロセッサである。このプロセッサは、機能の変更が可能なリコンフィギュラブル回路と、機能の変更が可能なリコンフィギュラブル回路と、リコンフィギュラブル回路に所期の回路を構成するための設定データをリコンフィギュラブル回路に供給する設定データ保持部と、を備える。リコンフィギュラブル回路は、設定データ保持部に保持される設定データの、アドレスまたはアドレスに置換可能な信号を含む選択信号を出力する。
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、ハードウェア構成に依存せずにシーケンス処理を実現することができる。
図1は、本発明の実施の形態に係る情報処理装置100の構成を示すブロック図である。情報処理装置100は、ユーザにより生成されたソースプログラムをプロセッサが実行可能な実行プログラムまたは設定データにコンパイルする装置である。ソースプログラムは、多くの場合、C言語などの高級プログラム言語で記述される。本実施の形態に係る情報処理装置100は、リコンフィギュラブル回路を搭載したプロセッサに設定すべき設定データの生成に適しているが、そのタイプのプロセッサに限定されるものではない。
情報処理装置100は、抽出部10、単位プログラム保持部12、解析部14、実行順序保持部16、追加処理生成部18および実行プログラム生成部20を備える。
これらの構成は、ハードウェア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
これらの構成は、ハードウェア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
抽出部10は、所定のソースプログラムから、それぞれ意味的または機能的にまとまった単位演算処理を実行する複数の単位プログラムを抽出する。単位演算処理の一例として、サブルーチンまたは関数などが該当する。抽出部10は、ソースプログラム中の、当該複数の単位演算処理の実行順序を決定または選択するためのシーケンス処理に関する部分は抽出しない。抽出部10は、ソースプログラム全体をコンパイルする場合、ソースプログラム中の、すべての単位演算処理を抽出する必要がある。
単位プログラム保持部12は、抽出部10により抽出された複数の単位プログラムを保持する。実行順序保持部16は、解析部14により特定された、各単位プログラムごとに次に実行すべき単位プログラムの識別情報を保持する。
解析部14は、ソースプログラムを解析して、各単位プログラムごとに次に実行すべき単位プログラムを特定し、実行順序保持部16に登録する。具体的には、ソースプログラム中のシーケンス処理に関する部分を解析して、次に実行すべき単位プログラムを特定する。
解析部14は、次に実行する可能性のある単位プログラムが複数ある単位プログラムについて、次に実行する可能性のある複数の単位プログラムの識別情報と実行する単位プログラムを決定するための条件を実行順序保持部16に登録する。また、解析部14は、ソースプログラム中で複数回出現する単位プログラムについて、その出現位置ごとに次に実行すべき単位プログラムの識別情報、または次に実行する可能性のある複数の単位プログラムの識別情報と実行する単位プログラムを決定するための条件を実行順序保持部16に登録する。
追加処理生成部18は、実行順序保持部16に保持される識別情報を参照し、各単位プログラムごとに次に実行すべき単位プログラムを特定するためのデータまたはプログラムを生成する。実行順序保持部16に上記条件も登録される場合、その条件も参照する。追加処理生成部18は、各単位プログラムを特定するためのデータまたはプログラムを生成するとき、少なくとも上記複数回出現する単位プログラムについて、その出現位置を特定するための情報を付す。追加処理生成部18は、複数回出現する単位プログラムについて、その出現位置を特定するための情報によって次に実行すべき単位プログラムを特定するデータまたはプログラムを生成すると捉えることもできる。図4以降で後述する例では、当該出現位置を特定するための情報として、後述するシーケンステーブル内で管理される「state」の値を付す。一回だけ出現する単位プログラムについては、その情報を付しても付さなくてもよい。
実行プログラム生成部20は、追加処理生成部18により生成されたデータまたはプログラムを、単位プログラム保持部12により保持される、それぞれ対応する単位プログラムに追加して一連の実行プログラムを生成する。
以下、情報処理装置100がリコンフィギュラブル回路を搭載したプロセッサに設定すべき設定データを生成する例を説明する。この場合、情報処理装置100は設定データ生成部22を含む必要がある。
設定データ生成部22は、実行プログラム生成部20により生成された実行プログラムから、所定のリコンフィギュラブル回路に所期の回路を構成するための設定データを生成する。設定データはコマンドデータで記述される。
設定データ生成部22は、実行プログラム生成部20、複数の単位プログラムに対応する複数の実行プログラムをデータフローグラフにそれぞれ変換し、その後、各データフローグラフを設定データに変換してもよい。また、データフローグラフを介さず、直接、設定データに変換してもよい。
設定データ生成部22は、実行プログラム生成部20、複数の単位プログラムに対応する複数の実行プログラムをデータフローグラフにそれぞれ変換し、その後、各データフローグラフを設定データに変換してもよい。また、データフローグラフを介さず、直接、設定データに変換してもよい。
設定データ生成部22は、各実行プログラムの切替タイミングに対応するタイミングで、次に実行すべき設定データを特定するためのパラメータが上記リコンフィギュラブル回路から出力されるよう、各設定データを生成することもできる。その際、上記リコンフィギュラブル回路に上記パラメータを生成させるための処理と、そのパラメータを上記リコンフィギュラブル回路から出力させる処理との間に、時間的間隔を設ける設定データまたはデータフローグラフを生成することもできる。こららの詳細は後述する。
なお、上記切替タイミングの調整を実行プログラムの生成段階で行うこともできる。その場合、実行プログラム生成部20は、各実行プログラムの切替タイミングに対応するタイミングで、次に実行すべき実行プログラムを特定するためのパラメータが上記リコンフィギュラブル回路から出力されるよう、各実行プログラムを生成する。
図2は、本発明の実施の形態に係るプロセッサ200の構成を示すブロック図である。
プロセッサ200は、設定データ保持部30、リコンフィギュラブル回路40、出力データ保持部50およびシーケンサ装置60を備える。
プロセッサ200は、設定データ保持部30、リコンフィギュラブル回路40、出力データ保持部50およびシーケンサ装置60を備える。
設定データ保持部30は、リコンフィギュラブル回路40に所期の回路を構成するための設定データをリコンフィギュラブル回路40に供給する。当該設定データは上記情報処理装置100により生成された設定データであってもよいし、この設定データと同様のデータ構造であれば、他の情報処理装置により生成された設定データであってもよい。
リコンフィギュラブル回路40は、設定データ保持部30から供給される設定データに応じて、動的に機能の変更が可能である。リコンフィギュラブル回路40は、設定データ保持部30に保持される設定データの、アドレスまたはアドレスに置換可能な信号を含むを含む選択信号を出力する。リコンフィギュラブル回路40は、演算部42および選択信号生成部44を含む。演算部42は、当該設定データに基づいて所定の演算を実行する。選択信号生成部44は、演算部42から上記単位演算処理ごとに出力される、次に実行すべき単位演算処理を特定するためのパラメータを受け、そのパラメータに基づき上記選択信号を生成する。当該パラメータは、設定データ保持部30に保持される設定データの、アドレスまたはアドレスに置換可能な信号を含む。当該パラメータは、演算部42から直近に出力された一つが保持されればよい。選択信号生成部44および選択信号の詳細は後述する。
出力データ保持部50は、演算部42から出力される演算結果を一時保持する。この演算結果には、一連の演算における途中の演算結果も含まれる。当該演算結果は、演算部42により適宜、参照される。出力データ保持部50は、演算部42から出力される一種類以上のパラメータを、パラメータごとに一つ保持する領域を有する。
シーケンサ装置60は、選択信号生成部44から選択信号が出力されるとき、その選択信号で指定される、設定データ保持部30の設定データを選択し、それ以外のとき、所定の順番にしたがい設定データ保持部30の設定データを選択する。シーケンサ装置60の詳細な構成は後述する。
選択信号生成部44は、上記パラメータに基づき、次に実行すべき単位演算処理の、設定データ保持部30の読み出しアドレスを生成することができる。このアドレスは、上記パラメータそのものであってもよいし、または一定の変換によって生成されるものであってもよい。
演算部42は、上記パラメータおよび設定データ保持部30から供給される設定データに基づいて、次に選択信号生成部44に出力すべきパラメータを生成する。
選択信号生成部44は、演算部42からデータフローグラフ単位で出力される、次に実行すべきデータフローグラフに対応する設定データの開始アドレスを特定するためのパラメータを受け、上記選択信号を生成する。
図3は、実施の形態に係る演算部42の構成の一例を示す図である。
演算部42は、複数の演算器(Arithmetic Logic Unit:ALU)を備える。ALUは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行することができる。各ALUは、複数の演算機能を設定するためのセレクタを有して構成されている。図示の例では、ALUが、2つの入力端子と1つの出力端子を有して構成される。
演算部42は、複数の演算器(Arithmetic Logic Unit:ALU)を備える。ALUは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行することができる。各ALUは、複数の演算機能を設定するためのセレクタを有して構成されている。図示の例では、ALUが、2つの入力端子と1つの出力端子を有して構成される。
演算部42は、縦方向にX(Xは自然数)個、横方向にY(Yは自然数)個のALUが配置されたX段Y列のALUアレイとして構成される。演算部42は、接続部71a〜7Xa、ALU列71b〜7Xbおよび選択部80を備える。接続部71a〜7XaおよびALU列71b〜7Xbの構成は上記設定データにより動的に設定変更される。接続部71a〜7Xaは前後段のALU列の間に設けられて、前段のALUの出力と後段のALUの入力の接続関係を設定する。選択部80は、最下段のALU列7Xbの、各ALU(X1)〜(XY)の出力データを適宜選択して、選択信号生成部44に出力する。
以下、実施の形態に係る情報処理装置100を用いて、ソースプログラムからコマンドデータを生成するまでの、一例を説明する。この例は、シーケンス処理としてif文を含む例である。
図4は、ソースプログラムの一例を示す。図4(a)はメインルーチンを示し、図4(b)はサブルーチン1を示し、図4(c)はサブルーチン2を示し、図4(d)はサブルーチン3を示し、図4(e)はサブルーチン4を示す。サブルーチン1、3は、後の説明でその具体的な演算内容について問題としないためその演算内容を省略して描いている。
図4は、ソースプログラムの一例を示す。図4(a)はメインルーチンを示し、図4(b)はサブルーチン1を示し、図4(c)はサブルーチン2を示し、図4(d)はサブルーチン3を示し、図4(e)はサブルーチン4を示す。サブルーチン1、3は、後の説明でその具体的な演算内容について問題としないためその演算内容を省略して描いている。
解析部14は、図4に示すプログラムの記述内容を解析し、メインルーチン内のif文を上記シーケンス処理部分と判断する。抽出部10は、そのif文の分岐先の各サブルーチンと、そのif文の前後の処理とにプログラムを分割する。抽出部10は、分割された各サブルーチンを中間プログラムとして単位プログラム保持部12に登録する。この中間プログラムは、実行順序を決定すべき際の処理単位となる。
図5は、図4のソースプログラムに対応する中間プログラムを示す図である。図5(a)はサブルーチン1に対応する中間プログラムを示し、図4(b)はサブルーチン2に対応する中間プログラムを示し、図5(c)はサブルーチン3に対応する中間プログラムを示し、図5(d)はサブルーチン4に対応する中間プログラムを示す。ここでは、各サブルーチンの具体的な演算内容について問題としないためその演算内容を省略して描いている。
解析部14は、上記解析結果に基づいて、中間プログラムの実行順序を示すシーケンステーブルを生成する。
図6は、図4のソースプログラムに対応するシーケンステーブルを示す図である。
このシーケンステーブルは、「PRG」欄、「state」欄、および「NextPRG」欄を有する。「PRG」欄は各中間プログラムの識別情報を記述する。「state」欄はソースプログラム中での各中間プログラムの出現位置を示す情報を記述する。「NextPRG」欄は次に実行する可能性のある中間プログラムとその実行条件を示す情報を記述する。ここで、「NextPRG」欄の「end’0」は処理終了を意味するものとする。
図6は、図4のソースプログラムに対応するシーケンステーブルを示す図である。
このシーケンステーブルは、「PRG」欄、「state」欄、および「NextPRG」欄を有する。「PRG」欄は各中間プログラムの識別情報を記述する。「state」欄はソースプログラム中での各中間プログラムの出現位置を示す情報を記述する。「NextPRG」欄は次に実行する可能性のある中間プログラムとその実行条件を示す情報を記述する。ここで、「NextPRG」欄の「end’0」は処理終了を意味するものとする。
中間プログラムは、ソースプログラム中に出現する箇所ごとに「PRG」欄に記述される。すなわち、ソースプログラム中の複数箇所に出現する中間プログラムは、「PRG」欄にその出現数分、その中間プログラム名が記述される。
「state」は出現ごとに数値を0から割り当てた値である。この値によりソースプログラムのどの位置で出現した中間プログラムであるかを判断することが可能となる。たとえば、「func02」(サブルーチン2に対応する中間プログラムを示す)は、メインルーチン内のif文の分岐先と最終処理の2箇所に出現するため、シーケンステーブルに「func02」が2箇所存在する。「func02」の「state」は出現順に0から割り振られている。図6では、上記if文の分岐先の、「func02」の「state」を「0」、最終処理の「func02」の「state」を「1」としている。
なお、「PRG」欄の中間プログラムをソースプログラム中の出現順に保持しているが、これに限る必要はない。また、「state」は「PRG」欄の全中間プログラムに対して固有の値であってもよい。ソースプログラム中の複数箇所に出現する中間プログラムが、どの箇所の処理に対応するものかを判断できる情報であればよい。
「NextPRG」欄は、解析部14により、「PRG」欄の各中間プログラムがソースプログラムのどの処理に対応しているかを解析されることにより生成される。より具体的には、各中間プログラムの次に実行される可能性のある中間プログラムがどれで、その実行される可能性のある中間プログラムがどのような条件のとき実行されるかが、解析されることにより生成される。
「NextPRG」欄に記述される、次に実行する可能性のある中間プログラムを特定するための情報は、中間プログラム名と「state」を有する。中間プログラム名だけでは、その中間プログラムがソースプログラム中の複数箇所で出現する場合、どの箇所で出現した中間プログラムであるかを特定することができず、各中間プログラムの次に実行する中間プログラムを特定することができない。このような場合、「state」の値を参照することにより、当該中間プログラムを特定することができる。
追加処理生成部18は、上記シーケンステーブルに基づいて次に実行する実行プログラムを選択または決定する処理(たとえば、プログラム)を各中間プログラムに追加して、一連の実行プログラムを生成する。
図7は、図4のソースプログラムに対応する実行プログラムを示す図である。
図7(a)はサブルーチン1に対応する実行プログラムを示し、図7(b)はサブルーチン2に対応する実行プログラムを示し、図7(c)はサブルーチン3に対応する実行プログラムを示し、図7(d)はサブルーチン4に対応する実行プログラムを示す。ここでは、各ルーチンの具体的な演算内容について問題としないためその演算内容を省略し、次に実行する中間プログラムを特定するための処理をメインに描いている。
図7(a)はサブルーチン1に対応する実行プログラムを示し、図7(b)はサブルーチン2に対応する実行プログラムを示し、図7(c)はサブルーチン3に対応する実行プログラムを示し、図7(d)はサブルーチン4に対応する実行プログラムを示す。ここでは、各ルーチンの具体的な演算内容について問題としないためその演算内容を省略し、次に実行する中間プログラムを特定するための処理をメインに描いている。
まず、追加処理生成部18は、シーケンステーブルの「NextPRG」欄の、各「PRG”state」を「_SEQ_= PRG”state」に変換する。ここで、「_SEQ_」は演算部42から選択信号生成部44に渡すデータであることを示す出力変数であり、グローバル変数のように常に保持される変数である。図6のシーケンステーブルの2行目では、「NextPRG」欄の「func02’0」を「_SEQ_ = func02’0」に変換する。
次に、追加処理生成部18は、ソースプログラム中に複数箇所出現する中間プログラム、つまり「1」以上の「state」の値を持つ中間プログラムにおいて、現在実行中の中間プログラムがどの出現位置の処理であるかを判定する。その判定結果に応じて「NextPRG」欄の処理を選択するための処理を生成する。実際には、現在実行中の中間プログラムがどの出現位置の処理であるかを判定するには、「_SEQ_」の値を参照することにより行うことが可能である。つまり、図7の「func02」中のif文のように「SEQ」が「func02’1」であれば、現在実行中の処理が出現位置1の「func02」の処理であると特定することができる。
追加処理生成部18は、この処理を実現するためのプログラムとして、たとえば以下に示す追加プログラムを生成する。すなわち、この追加プログラムは、判定結果が真の場合、「DFG=func02,state=1」の「NextPRG」欄に記述された処理を実行し、判定結果が偽の場合、「DFG=func02,state=0」の「NextPRG」欄に記述された処理を実行する。実行プログラム生成部20は、このようにして追加処理生成部18により生成された追加プログラムを各中間プログラムに追加し、図7に示す実行プログラムを生成する。
以上のように、次に実行する実行プログラムの選択を実行プログラム中で実行可能とすることにより、複雑なシーケンス処理にも対応が可能となる。また、リコンフィギュラブル回路40に依存する、次に実行する実行プログラムの選択数の制限がなくなり、従来のような回路の最大選択数を越えるような分岐処理の場合、複数のシーケンス処理に分けて処理するという必要がなくなる。そのため、分岐処理における実行プログラム数を少なくすることができ、その処理時間を短縮することができる。さらに、その実行プログラム数が少なくなることにより、設定データ保持部30に格納されるコマンドデータの量を削減することができ、回路規模を縮小することができる。また、全体の、実行プログラム数またはデータフローグラフ数も少なくなることにより、設定データ保持部30に格納されるコマンドデータの量を削減することができ、回路規模を縮小することができる。
設定データ生成部22は、実行プログラムごとにリコンフィギュラブル回路40に適したデータフローグラフを生成する。その際、シーケンサ装置60における、データフローグラフの切替判定タイミングに合うよう、「_SEQ_」が演算部42から出力されるよう、データフローグラフを生成することが望ましい。
図8は、図4のソースプログラムに対応するデータフローグラフを示す図である。
図8(a)はサブルーチン1に対応するデータフローグラフを示し、図8(b)はサブルーチン2に対応するデータフローグラフを示し、図8(c)はサブルーチン3に対応するデータフローグラフを示し、図8(d)はサブルーチン4に対応するデータフローグラフを示す。ここでは、サブルーチン1、3は、具体的な演算内容について問題としないためその演算内容を省略して描いている。なお、各データフローグラフ内の、「○」が演算命令(以下適宜、ノードという)、「□」が入力変数または出力変数を示す。
図8(a)はサブルーチン1に対応するデータフローグラフを示し、図8(b)はサブルーチン2に対応するデータフローグラフを示し、図8(c)はサブルーチン3に対応するデータフローグラフを示し、図8(d)はサブルーチン4に対応するデータフローグラフを示す。ここでは、サブルーチン1、3は、具体的な演算内容について問題としないためその演算内容を省略して描いている。なお、各データフローグラフ内の、「○」が演算命令(以下適宜、ノードという)、「□」が入力変数または出力変数を示す。
以下、つぎに示す前提にしたがい説明する。データフローグラフの1段の処理に1クロックを必要とする。また、ALUの出力が設定データ保持部30に入力されるまでに1クロックを必要とする。また、第1選択部62で実行される、データフローグラフの切替判定処理は、データフローグラフの最下段の実行タイミングで行う必要がある。
以上を前提とした場合、データフローグラフの切替判定タイミングに「_SEQ_」の出力を合わせるには、データフローグラフの下から2段目で「_SEQ_」を出力するようにすればよい。この構成によれば、「_SEQ_」が出力されたか否かにより、データフローグラフの切替判定タイミングを決定することができる。したがって、データフローグラフの実行に要する時間情報など、データフローグラフの切替判定に必要となる情報を別途保持しておく必要がない。よって、回路規模を削減することに寄与する。
図8(d)は、「_SEQ_」が下から2段目で出力されるように制限されたデータフローグラフである。このようなデータフローグラフを生成するには、「_SEQ_」を出力するノードの配置を最後に行うとよい。「_SEQ_」を下から2段目に配置することが不可能であれば、それより下の段に配置し、データフローグラフの切替判定タイミングとのタイミング調整用に、配置した段の下に処理に影響しないノードを追加することで実現できる。
当然のことながら、データフローグラフの段数が多くなると実行時間が長くなるため、段数はできるだけ少ないほうが望ましい。この要請を実現ための手法として、データフローグラフを生成する際、「_SEQ_」を算出する処理を分割してノードを配置する手法がある。この手法を用いることにより、可能な限りデータフローグラフの段数を少なくすることができる。図8(b)に示すデータフローグラフは分割した場合の例である。
「_SEQ_」を算出する処理を分割するか否かの判定は、たとえば分割しない場合に生成されるデータフローグラフの段数と、分割した場合に生成されるデータフローグラフの段数とを比較して、段数の少ないほうを採用するといった方法がある。また、別の方法として、「_SEQ_」を算出する処理が多ければ、「_SEQ_」を下から2段目に配置できる可能性が少なくなるため、ある一定の処理量以上であれば分割するといった方法もある。この処理量は、設計者が実験やシミュレーションの結果に基づき決定されることができる。また、分割態様として「_SEQ_」を算出する処理と「_SEQ_」を出力する処理とで分割する態様に限るものではなく、「_SEQ_」を算出する処理の途中までの処理と、それ以降の処理から「_SEQ_」を出力するまでの処理とで分割する態様も可能である。さらに、二つに分割する態様に限るものではなく、三つ以上に分割する態様も可能である。
図9は、図8(b)のデータフローグラフと比較すべき、データフローグラフを示す図である。
図8(d)に示す「func04」のデータフローグラフでは、処理を分割せずに「_SEQ_」を出力するノードを配置することができる。これに対し、「func02」では、リコンフィギュラブル回路40内のALUアレイが横3列である場合、処理を分割しないと図9に示すようなデータフローグラフになる。一方、処理を分割した場合、図8(b)に示すデータフローグラフのように、「_SEQ_」を算出する処理を上段の空いているところで処理できるため、図9と比較し、データフローグラフの段数が1段少なくなる。
図8(d)に示す「func04」のデータフローグラフでは、処理を分割せずに「_SEQ_」を出力するノードを配置することができる。これに対し、「func02」では、リコンフィギュラブル回路40内のALUアレイが横3列である場合、処理を分割しないと図9に示すようなデータフローグラフになる。一方、処理を分割した場合、図8(b)に示すデータフローグラフのように、「_SEQ_」を算出する処理を上段の空いているところで処理できるため、図9と比較し、データフローグラフの段数が1段少なくなる。
処理を分割する場合、分割した処理間のデータの受け渡しは一時変数として、出力データ保持部50などのデータ保持領域に一旦保持し、再度そこから出力して使用すればよい。図8に示す「func02」のデータフローグラフでは、「tmp」が一時変数に当たる。また、そのデータフローグラフでは、「_SEQ_」が下から2段目の段から出力されるように、データフローグラフの切替判定タイミングとのタイミング調整用に、最下段に演算結果に影響を与えない処理が追加されてもよい。
設定データ生成部22は、各データフローグラフに基づいて、プロセッサ200の設定データ保持部30に格納すべきコマンドデータを生成する。その際、「DFG”state」を、そのデータフローグラフに対応するコマンドデータを格納している領域の、設定データ保持部30内の開始アドレス値と、「state」の値を含んだ定数値に変換する。たとえば、定数値の上位ビットを当該開始アドレス値、下位ビットを「state」の値としてもよい。
ここでは、データフローグラフに対応するコマンドデータを格納している領域の、設定データ保持部30内の開始アドレス値と、「state」の値を一つの変数または値として出力するようにしているが、別々に出力してもよい。一つの値として出力するほうが一般的に、処理量が少なくてすむが、リコンフィギュラブル回路40を搭載したプロセッサ200の構成によっては別々に出力するほうが望ましい場合もある。最適な方法はシステムに依存する。
次に、実施の形態に係る情報処理装置100を用いて、ソースプログラムから実行プログラムを生成するまでの、別の例を説明する。この例は、シーケンス処理としてループ文を含む例である。
図10は、ソースプログラムの別の例を示す。
図10(a)はメインルーチンを示し、図10(b)はサブルーチン1を示し、図10(c)はサブルーチン2を示し、図10(d)はサブルーチン3を示す。サブルーチン1〜3は、その具体的な演算内容について問題としないためその演算内容を省略して描いている。
図10は、ソースプログラムの別の例を示す。
図10(a)はメインルーチンを示し、図10(b)はサブルーチン1を示し、図10(c)はサブルーチン2を示し、図10(d)はサブルーチン3を示す。サブルーチン1〜3は、その具体的な演算内容について問題としないためその演算内容を省略して描いている。
図11は、図10のソースプログラムに対応する中間プログラムを示す図である。
図11(a)はサブルーチン1に対応する中間プログラムを示し、図11(b)はサブルーチン2に対応する中間プログラムを示し、図11(c)はサブルーチン3に対応する中間プログラムを示す。
図12は、図10のソースプログラムに対応するシーケンステーブルを示す図である。
図11(a)はサブルーチン1に対応する中間プログラムを示し、図11(b)はサブルーチン2に対応する中間プログラムを示し、図11(c)はサブルーチン3に対応する中間プログラムを示す。
図12は、図10のソースプログラムに対応するシーケンステーブルを示す図である。
図13は、図10のソースプログラムに対応する実行プログラムを示す図である。
図13(a)はサブルーチン1に対応する実行プログラムを示し、図13(b)はサブルーチン2に対応する実行プログラムを示し、図13(c)はサブルーチン3に対応する実行プログラムを示す。シーケンス処理としてループ文を含む場合も上述したif文を含む場合と同様に、ソースプログラムから、複数の中間プログラムとシーケンステーブルを生成でき、それらを基に実行プログラムを生成できることが分かる。
図13(a)はサブルーチン1に対応する実行プログラムを示し、図13(b)はサブルーチン2に対応する実行プログラムを示し、図13(c)はサブルーチン3に対応する実行プログラムを示す。シーケンス処理としてループ文を含む場合も上述したif文を含む場合と同様に、ソースプログラムから、複数の中間プログラムとシーケンステーブルを生成でき、それらを基に実行プログラムを生成できることが分かる。
図14は、実施の形態に係る、シーケンサ装置60および選択信号生成部44の具体的な構成例を示す図である。
シーケンサ装置60は、第1選択部62、第2選択部64、次アドレス生成部66および次アドレス保持部68を含む。選択信号生成部44は、比較回路45、AND回路46および変更アドレス生成回路47を含む。
シーケンサ装置60は、第1選択部62、第2選択部64、次アドレス生成部66および次アドレス保持部68を含む。選択信号生成部44は、比較回路45、AND回路46および変更アドレス生成回路47を含む。
第1選択部62は、AND回路46から入力される「seq_chg」信号に応じて、変更アドレス生成回路47から入力される「seq_addr」信号と、次アドレス保持部68から入力される「next_addr」信号とのいずれかを選択し、第2選択部64に出力する。「seq_chg」信号は、データフローグラフの変更タイミングを通知するための信号である。「seq_addr」信号は、次に実行するデータフローグラフに対応するコマンドデータを格納している保持領域の、設定データ保持部30内の開始アドレスを示す信号である。上述した選択信号の一例である。「next_addr」信号は、次アドレス保持部68に保持されているアドレスを示す信号である。
第2選択部64は、リセット信号に応じて、初期アドレスと第1選択部62から入力されるアドレスとのいずれかを選択し、設定データ保持部30および次アドレス生成部66に出力する。
次アドレス生成部66は、第2選択部64から入力される、設定データ保持部30内の特定のアドレスにアクセするための信号である「com_addr」信号を、次にアクセスすべきアドレス用の、「com_addr」信号に変更し、次アドレス保持部68に出力する。次アドレス保持部68は、次アドレス生成部66から入力されるアドレスを保持する。
より具体的には、次アドレス生成部66は、実行しているデータフローグラフ内の、次のコマンドデータに対応したアドレスを生成する。また、次アドレス保持部68は、次に設定データ保持部30にアクセスするまでの間、次アドレス生成部66で生成されたアドレスを保持する。
ここで、データフローグラフ内のコマンドデータが設定データ保持部30に1段ごと別のアドレスに保持され、次段のアドレスが現段のアドレスの+1である場合であり、設定データ保持部30に毎クロック、アクセスする必要がある場合を想定する。この場合、次アドレス生成部66は、「com_addr」信号を+1するインクリメント回路として機能し、次アドレス保持部68は、入力される信号を1クロック保持する回路として機能する。
リコンフィギュラブル回路40を搭載したプロセッサ200のシステムによっては、1サイクルの処理(たとえば、図6の1行目の「func01」の処理が開始されて5行目の最後の「func02」の処理が終了するまでの一連の処理)が終了した場合、次の処理が開始されるまで、それまでの演算結果を変更しないように待機処理が必要となることがある。待機処理の例としては、演算処理を一時止める、または演算結果を変更しないような処理を実行させる、などが考えられる。待機処理が必要な場合、次アドレス生成部66に、変更アドレス生成回路47から入力される「seq_addr」信号が「end’0」のような演算終了を示す信号であるとき、上記のような待機処理を行う回路をさらに持たせておく必要がある。
「seq_chg」信号および「seq_addr」信号は、選択信号生成部44内の、比較回路45、AND回路46および変更アドレス生成回路47で生成される。比較回路45およびAND回路46は、演算部42が「_SEQ_」を出力しているか否かを判定し、「seq_chg」信号を生成する。変更アドレス生成回路47は、「_SEQ_」から設定データ保持部30内のアドレス値を生成し、「seq_addr」信号を生成する。
「_SEQ_」は、上述したように次の「_SEQ_」を生成する際に必要な場合があるため、どこかに保持しておく必要がある。本実施の形態では、「_SEQ_」を保持する領域を予め決めておき、その領域に書き込むための信号を用いて「_SEQ_」の出力を判定する。
以下、より具体的に説明する。本実施の形態では、「_SEQ_」は、出力データ保持部50の特定のアドレスに保持されるものとする。これにより、「_SEQ_」を保持するための特別な保持回路が不要となり、回路規模を削減することができる。
「_SEQ_」出力の判定は、演算部42からアクセスされているアドレスが「_SEQ_」を格納している領域のアドレスと同一であり、かつその領域への書き込みイネーブル信号(図14では、書込Eと表記している)が書き込みを許可する値(図14では「1」)であれば、「_SEQ_」であり、書き込みを禁止する値(図14では「0」)であれば、「_SEQ_」でないと判定する。
より具体的には、比較回路45は、「_SEQ_」を格納している領域のアドレスと、演算部42からアクセスされているアドレスとが一致する場合、「1」をAND回路46に出力し、一致しない場合、「0」を出力する。AND回路46は、比較回路45の出力と、書き込みイネーブル信号の論理積を演算し、演算結果を第1選択部62に出力する。すなわち、比較回路45の出力が「1」であり、かつ書き込みイネーブル信号が「1」の場合、「seq_chg」信号として「1」を出力する。それ以外の場合、「seq_chg」信号として「0」を出力する。第1選択部62は、「seq_chg」信号として「1」が入力されるとき、データフローグラフの切替タイミングと判断することができる。
変更アドレス生成回路47は、「_SEQ_」を格納している領域への書き込みデータから、「seq_addr」信号または「seq_addr」信号の基礎となるデータを生成する。たとえば、上述したように「_SEQ_」の上位ビットに、データフローグラフに対応するコマンドデータを格納している領域の、設定データ保持部30内の開始アドレス値が設定され、下位ビットに「state」の値が設定される場合を想定する。この場合、変更アドレス生成回路47は「_SEQ_」の上位ビットを抽出し、そのデータを「seq_addr」信号として第1選択部62に出力する。
以上説明したように本実施の形態によれば、次のデータフローグラフに対応するコマンドデータの、設定データ保持部30内のアドレスをリコンフィギュラブル回路40により選択および決定するため、その選択および決定用の専用回路が不要である。したがって、回路規模を削減することができ、消費電力を低減することができる。
また、専用回路の構成により制限されていた、分岐先選択数による制限がなくなる。たとえば、図7の「func01」のような分岐処理では分岐先の選択数が3(「if」、「else if」、「else」)であるため、専用回路の分岐先選択数が2の装置ではそのままでは実行できない。このような場合、まずif文の分岐判定を専用回路で行った後、「else if」文の分岐判定を行うといった2段判定が必要となる。そのため、2つの判定処理をそれぞれ行う処理が必要となるとともに、判定回路による処理判定も2回必要となる。
これに対し、本実施の形態によれば、処理を少なくすることができるため、コマンドデータの保持領域を従来よりも小さくでき、回路規模を削減することができる。それにより、消費電力を低減することができる。また、処理時間が従来よりも短縮されるため、その点からも消費電力を低減することができる。
また、本実施の形態は、CPUのようなスタックベースのシーケンス処理と比べても、分岐に関する情報を1つしか持たないため、回路構成が単純で小型である。また、スタックベースのような戻りアドレスを格納するメモリの容量による分岐制限がないため、より多くの分岐パターンに対応することができる。これらにより、リコンフィギュラブル回路を搭載したプロセッサの処理パフォーマンスが向上する。
以上、本発明をいくつかの実施形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上述した、シーケンステーブル、中間プログラム、データフローグラフを示した図は概念図であり、必ずしもこのような形態である必要はない。また、上述した処理方法は一例であり、これに限ったものではない。たとえば、追加処理生成部18により行われる追加処理を中間プログラムに対して行うのではなく、中間プログラムから作成されたデータフローグラフに対して行ってもよい。また、必ずしもデータフローグラフを生成する必要はなく、実行プログラムから直接、コマンドデータを生成してもよい。
10 抽出部、 12 単位プログラム保持部、 14 解析部、 16 実行順序保持部、 18 追加処理生成部、 20 実行プログラム生成部、 22 設定データ生成部、 30 設定データ保持部、 40 リコンフィギュラブル回路、 42 演算部、 44 選択信号生成部、 45 比較回路、 46 AND回路、 47 変更アドレス生成回路、 50 出力データ保持部、 60 シーケンサ装置、 62 第1選択部、 64 第2選択部、 66 次アドレス生成部、 68 次アドレス保持部、 80 選択部、 100 情報処理装置、 200 プロセッサ。
Claims (17)
- 所定のソースプログラムから、それぞれ意味的または機能的にまとまった単位演算処理を実行する複数の単位プログラムを抽出する抽出部と、
前記抽出部により抽出された複数の単位プログラムを保持する単位プログラム保持部と、
前記ソースプログラムを解析して、各単位プログラムごとに次に実行すべき単位プログラムを特定する解析部と、
前記解析部により特定された、次に実行すべき単位プログラムの識別情報を保持する実行順序保持部と、
前記実行順序保持部に保持される識別情報を参照し、各単位プログラムごとに次に実行すべき単位プログラムを特定するためのデータまたはプログラムを生成する第1生成部と、
前記第1生成部により生成されたデータまたはプログラムを、前記単位プログラム保持部により保持される、それぞれ対応する単位プログラムに追加して一連の実行プログラムを生成する第2生成部と、
を備えることを特徴とする情報処理装置。 - 前記解析部は、次に実行する可能性のある単位プログラムが複数ある単位プログラムについて、次に実行する可能性のある複数の単位プログラムの識別情報と実行する単位プログラムを決定するための条件を前記実行順序保持部に登録し、
前記第1生成部は、前記識別情報と前記条件を参照し、次に実行すべき単位プログラムを特定するためのデータまたはプログラムを生成することを特徴とする請求項1に記載の情報処理装置。 - 前記解析部は、前記ソースプログラム中で複数回出現する単位プログラムについて、その出現位置ごとに次に実行すべき単位プログラムの識別情報、または次に実行する可能性のある複数の単位プログラムの識別情報と実行する単位プログラムを決定するための条件を前記実行順序保持部に登録し、
前記第1生成部は、各単位プログラムを特定するためのデータまたはプログラムを生成するとき、少なくとも前記複数回出現する単位プログラムについて、その出現位置を特定するための情報を付することを特徴とする請求項2に記載の情報処理装置。 - 前記第1生成部は、前記複数回出現する単位プログラムについて、その出現位置を特定するための情報によって次に実行すべき単位プログラムを特定するデータまたはプログラムを生成することを特徴とする請求項3に記載の情報処理装置。
- 前記第2生成部により生成された実行プログラムから、所定のリコンフィギュラブル回路に所期の回路を構成するための設定データを生成する第3生成部をさらに備え、
前記第3生成部は、前記第2生成部により生成された、前記複数の単位プログラムに対応する複数の実行プログラムをデータフローグラフにそれぞれ変換し、その後、各データフローグラフを設定データに変換することを特徴とする請求項1から4のいずれかに記載の情報処理装置。 - 前記第2生成部により生成された実行プログラムから、所定のリコンフィギュラブル回路に所期の回路を構成するための設定データを生成する第3生成部をさらに備え、
前記第3生成部は、各実行プログラムの切替タイミングに対応するタイミングで、次に実行すべき設定データを特定するためのパラメータが前記リコンフィギュラブル回路から出力されるよう、前記設定データを生成することを特徴とする請求項1から4のいずれかに記載の情報処理装置。 - 前記第3生成部は、各データフローグラフの切替タイミングに対応するタイミングで、次に実行すべきデータフローグラフを特定するためのパラメータが前記リコンフィギュラブル回路から出力されるよう、前記実行プログラムを前記データフローグラフに変換することを特徴とする請求項5に記載の情報処理装置。
- 前記第3生成部は、前記リコンフィギュラブル回路に前記パラメータを生成させるための処理と、そのパラメータを前記リコンフィギュラブル回路から出力させる処理との間に、時間的間隔を設ける設定データまたはデータフローグラフを生成することを特徴とする請求項6または7に記載の情報処理装置。
- 所定のソースプログラムから、それぞれ意味的または機能的にまとまった単位演算処理を実行する複数の単位プログラムを抽出部により抽出するステップと、
前記抽出部により抽出された複数の単位プログラムを単位プログラム保持部に保持するステップと、
前記ソースプログラムを解析して、各単位プログラムごとに次に実行すべき単位プログラムを解析部により特定するステップと、
前記解析部により特定された、次に実行すべき単位プログラムの識別情報を実行順序保持部に保持するステップと、
前記実行順序保持部に保持される識別情報を参照し、各単位プログラムごとに次に実行すべき単位プログラムを特定するためのデータまたはプログラムを第1生成部により生成するステップと、
前記第1生成部により生成されたデータまたはプログラムを、前記単位プログラム保持部により保持される、それぞれ対応する単位プログラムに追加して一連の実行プログラムを第2生成部ににより生成するステップと、
を備えることを特徴とする情報処理方法。 - 請求項5から8のいずれかに記載の情報処理装置により生成された設定データを保持する設定データ保持部と、
前記設定データ保持部から前記設定データが供給される、機能の変更が可能なリコンフィギュラブル回路と、
を備えることを特徴とするプロセッサ。 - 機能の変更が可能なリコンフィギュラブル回路と、
前記リコンフィギュラブル回路に所期の回路を構成するための設定データを前記リコンフィギュラブル回路に供給する設定データ保持部と、を備え、
前記リコンフィギュラブル回路は、前記設定データ保持部に保持される設定データの、アドレスまたはアドレスに置換可能な信号を含む選択信号を出力することを特徴とするプロセッサ。 - 前記設定データに基づいて所定の演算を実行する演算部と、
前記演算部から単位演算処理ごとに出力される、次に実行すべき単位演算処理を特定するためのパラメータを受け、そのパラメータに基づき前記選択信号を生成する選択信号生成部と、を含み、
前記パラメータは、前記設定データ保持部に保持される設定データの、アドレスまたはアドレスに置換可能な信号を含むことを特徴とする請求項11に記載のプロセッサ。 - 前記パラメータは、前記演算部から直近に出力された一つが保持されることを特徴とする請求項11または12に記載のプロセッサ。
- 前記リコンフィギュラブル回路は、
前記演算部から出力される演算結果を一時保持する出力データ保持部をさらに備え、
前記出力データ保持部は、前記演算部から出力される一種類以上のパラメータを、パラメータごとに一つ保持する領域を有することを特徴とする請求項12または13に記載のプロセッサ。 - 前記選択信号生成部は、前記パラメータに基づき、次に実行すべき単位演算処理の、前記設定データ保持部の読み出しアドレスを生成することを特徴とする請求項12から14のいずれかに記載のプロセッサ。
- 前記演算部は、前記パラメータに基づいて、次に前記選択信号生成部に出力すべきパラメータを生成することを特徴とする請求項12から15のいずれかに記載のプロセッサ。
- 前記選択信号生成部から前記選択信号が出力されるとき、その選択信号で指定される、前記設定データ保持部の設定データを選択し、それ以外のとき、所定の順番にしたがい前記設定データ保持部の設定データを選択するシーケンサ装置をさらに備えることを特徴とする請求項11から16のいずれかに記載のプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008029461A JP2009187478A (ja) | 2008-02-08 | 2008-02-08 | 情報処理装置、情報処理方法およびプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008029461A JP2009187478A (ja) | 2008-02-08 | 2008-02-08 | 情報処理装置、情報処理方法およびプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009187478A true JP2009187478A (ja) | 2009-08-20 |
Family
ID=41070619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008029461A Pending JP2009187478A (ja) | 2008-02-08 | 2008-02-08 | 情報処理装置、情報処理方法およびプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009187478A (ja) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000101421A (ja) * | 1998-09-22 | 2000-04-07 | Fujitsu Ltd | プログラマブルデバイス |
JP2001068993A (ja) * | 1999-08-25 | 2001-03-16 | Fuji Xerox Co Ltd | 情報処理システム |
JP2003016122A (ja) * | 2001-06-29 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 論理回路設計方法 |
JP2004021308A (ja) * | 2002-06-12 | 2004-01-22 | Denso Corp | プログラム作成支援装置、プログラム作成支援プログラム及び記録媒体 |
JP2004062234A (ja) * | 2002-07-24 | 2004-02-26 | Hitachi Software Eng Co Ltd | インライン展開処理方法及びそれに用いたコンパイルプログラム |
JP2005229275A (ja) * | 2004-02-12 | 2005-08-25 | Matsushita Electric Ind Co Ltd | プログラマブル論理回路 |
JP2005276854A (ja) * | 2004-03-22 | 2005-10-06 | Sanyo Electric Co Ltd | 処理装置 |
JP2006065787A (ja) * | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | データフローグラフ処理方法、リコンフィギュラブル回路 |
JP2006065788A (ja) * | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路を備えた処理装置 |
JP2006099720A (ja) * | 2004-08-30 | 2006-04-13 | Sanyo Electric Co Ltd | データフローグラフ処理方法 |
WO2007029421A1 (ja) * | 2005-09-05 | 2007-03-15 | Nec Corporation | 情報処理装置 |
-
2008
- 2008-02-08 JP JP2008029461A patent/JP2009187478A/ja active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000101421A (ja) * | 1998-09-22 | 2000-04-07 | Fujitsu Ltd | プログラマブルデバイス |
JP2001068993A (ja) * | 1999-08-25 | 2001-03-16 | Fuji Xerox Co Ltd | 情報処理システム |
JP2003016122A (ja) * | 2001-06-29 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 論理回路設計方法 |
JP2004021308A (ja) * | 2002-06-12 | 2004-01-22 | Denso Corp | プログラム作成支援装置、プログラム作成支援プログラム及び記録媒体 |
JP2004062234A (ja) * | 2002-07-24 | 2004-02-26 | Hitachi Software Eng Co Ltd | インライン展開処理方法及びそれに用いたコンパイルプログラム |
JP2005229275A (ja) * | 2004-02-12 | 2005-08-25 | Matsushita Electric Ind Co Ltd | プログラマブル論理回路 |
JP2005276854A (ja) * | 2004-03-22 | 2005-10-06 | Sanyo Electric Co Ltd | 処理装置 |
JP2006065787A (ja) * | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | データフローグラフ処理方法、リコンフィギュラブル回路 |
JP2006065788A (ja) * | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路を備えた処理装置 |
JP2006099720A (ja) * | 2004-08-30 | 2006-04-13 | Sanyo Electric Co Ltd | データフローグラフ処理方法 |
WO2007029421A1 (ja) * | 2005-09-05 | 2007-03-15 | Nec Corporation | 情報処理装置 |
Non-Patent Citations (2)
Title |
---|
CSNG200701022001; 小曽根 真、平瀬勝典、飯塚和久、平松達夫、木村晋二: 'カーチューナ向けリコンフィギュラブルアーキテクチャ' 電子情報通信学会技術研究報告 Vol.107,No.225, 20070913, pp.35〜38, 社団法人電子情報通信学会 * |
JPN6012060263; 小曽根 真、平瀬勝典、飯塚和久、平松達夫、木村晋二: 'カーチューナ向けリコンフィギュラブルアーキテクチャ' 電子情報通信学会技術研究報告 Vol.107,No.225, 20070913, pp.35〜38, 社団法人電子情報通信学会 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9244883B2 (en) | Reconfigurable processor and method of reconfiguring the same | |
CN100447738C (zh) | 含有多级寄存器文件的数字数据处理设备 | |
US8127283B2 (en) | Enabling graphical notation for parallel programming | |
JP3150122B2 (ja) | 低電力vlsiデザインのための制限付きレジスタ共用方法及びそのシステム | |
JP2004157593A (ja) | 多ポート統合キャッシュ | |
US20120331278A1 (en) | Branch removal by data shuffling | |
JP4996654B2 (ja) | プロセッサ | |
JP4272108B2 (ja) | データ処理装置用バス相互接続ブロックの設計に関するフレキシビリティの改善 | |
JP2006099719A (ja) | 処理装置 | |
KR100781358B1 (ko) | 데이터 처리 시스템 및 그의 데이터 처리방법 | |
CN112074810B (zh) | 并行处理设备 | |
US20130305198A1 (en) | Circuit design support device, circuit design support method and program | |
US20040236929A1 (en) | Logic circuit and program for executing thereon | |
JP2008299464A (ja) | 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置 | |
JP5979965B2 (ja) | 回路設計支援装置及び回路設計支援方法及びプログラム | |
JP2005508029A (ja) | リコンフィギュアラブルアーキテクチャのためのプログラム変換方法 | |
JP2009187478A (ja) | 情報処理装置、情報処理方法およびプロセッサ | |
US8095806B2 (en) | Method of power simulation and power simulator | |
US7181720B2 (en) | Process and device for circuit design by means of high-level synthesis | |
JP2016157339A (ja) | コンパイラプログラム、コンピュータプログラム及びコンパイラ装置 | |
Rohde et al. | Improving HLS generated accelerators through relaxed memory access scheduling | |
CN112463327B (zh) | 逻辑线程快速切换的方法、装置、cpu芯片及服务器 | |
JP2010146102A (ja) | 演算処理装置および記憶領域割当方法 | |
JP2006065786A (ja) | 処理装置 | |
JP4436734B2 (ja) | 処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20110128 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121106 |
|
A131 | Notification of reasons for refusal |
Effective date: 20121127 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Effective date: 20130326 Free format text: JAPANESE INTERMEDIATE CODE: A02 |