(57)【要約】【課題】時間パラメータを含む三次元に効率よく論理回路を配置できる情報処理システム、プログラマブル論理回路、及び、配線方法を提供する。【解決手段】情報処理システムは、ＰＬＤ（Programmable Logic Device）を備える。ＰＬＤは、モジュールを備える。モジュールは、複数の演算器エレメントを備える。情報処理システムは、二次元論理回路１１０を作成し、二次元論理回路１１０に基づいて仮想的な三次元論理回路１２０を作成する。ＰＬＤは、仮想的な三次元論理回路１２０を、時間パラメータを含む三次元論理回路として動的に再構成しながら、つまり、モジュールを論理回路Ａ〜Ｄの順に再構成しながら、データ処理を行う。【選択図】図３
2009043094.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器エレメントを含むモジュールを備えるプログラマブル論理回路装置に任意の論理回路を実現させるための情報処理システムであって、
二次元の論理回路を取得する二次元論理回路取得手段と、
前記二次元論理回路取得手段が取得した二次元論理回路に基づいて、複数の面論理回路を重ね合わせた仮想的な三次元の論理回路を作成する三次元論理回路作成手段と、
前記三次元論理回路作成手段が作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路のうちの一の面論理回路を前記モジュールで実現するために前記モジュールが含む前記複数の演算器エレメントを動的に結線する演算器エレメント結線手段と、
前記三次元論理回路作成手段が作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線手段を制御する制御手段と、を備える、
ことを特徴とする情報処理システム。
【請求項２】
前記三次元論理回路作成手段は、
前記二次元論理回路取得手段が取得した二次元論理回路を、その二次元論理回路が含むフリップフロップ回路で区切り、前記複数の面論理回路に分割し、その複数の面論理回路について仮想的に折り畳んでいくことによって、前記複数の面論理回路を重ね合わせた仮想的な三次元論理回路を作成する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記演算器エレメント結線手段は、
前記一の面論理回路を実現するモジュールを、他の面論理回路を実現するモジュールに再構成するために、前記複数の演算器エレメントを再結線する、
ことを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記制御手段は、
それぞれの面論理回路を複数回前記モジュールで繰り返し、実現させ、
前記二次元論理回路内における多方向のデータフローを実現させる、
ことを特徴とする請求項１乃至３の何れか１項に記載の情報処理システム。
【請求項５】
前記プログラマブル論理回路装置内に複数の記録領域を設置する記録領域設置手段と、
前記記録領域設置手段が設置した複数の記憶領域のそれぞれに前記複数の面論理回路のうちの任意の二面論理回路間におけるデータの入力、記憶、出力を行わせるように制御する記憶領域制御手段と、をさらに備える、
ことを特徴とする請求項４に記載の情報処理システム。
【請求項６】
任意のクロック信号を取得するクロック信号取得手段をさらに備え、
前記制御手段は、前記クロック信号取得手段が取得したクロック信号のクロック毎に前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線手段を制御する、
ことを特徴とする請求項４又は５に記載の情報処理システム。
【請求項７】
複数の演算器エレメントを含むモジュールを備え、該複数の演算器エレメントを結線させて任意の論理回路を実現するプログラマブル論理回路装置であって、
複数の面論理回路を重ね合わせた仮想的な三次元の論理回路に基づいて、該複数の面論理回路のうちの一の面論理回路を前記モジュールで実現するために前記モジュールが含む前記複数の演算器エレメントを動的に結線する演算器エレメント結線手段と、
前記三次元論理回路作成手段が作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線手段を制御する制御手段と、を備える、
ことを特徴とするプログラマブル論理回路装置。
【請求項８】
前記制御手段は、
前記演算器エレメント結線手段に、前記仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路として、前記複数の面論理回路を順に前記モジュールで実現させる、
ことを特徴とする請求項７に記載のプログラマブル論理回路装置。
【請求項９】
前記演算器エレメント結線手段は、
前記一の面論理回路を実現したモジュールを、他の面論理回路を実現するモジュールに再構成するために、前記複数の演算器エレメントを再結線する、
ことを特徴とする請求項７又は８に記載のプログラマブル論理回路装置。
【請求項１０】
任意のデータを格納するデータ格納手段をさらに備え、
前記データ格納手段は、前記一の面論理回路を実現するモジュールが出力したデータを格納し、前記他の面論理回路を実現するモジュールに出力する、
ことを特徴とする請求項９に記載のプログラマブル論理回路装置。
【請求項１１】
前記データ格納手段は、前記モジュールの周囲に配置され、且つ、前記一の面論理回路と前記他の面論理回路とを連結するように配置される、
ことを特徴とする請求項１０に記載のプログラマブル論理回路装置。
【請求項１２】
前記データ格納手段はＦＩＦＯ回路である、
ことを特徴とする請求項１０又は１１に記載のプログラマブル論理回路装置。
【請求項１３】
前記データ格納手段は、複数の記録領域を備え、
前記複数の記憶領域は、それぞれ、前記複数の面論理回路のうちの任意の二面論理回路間のデータの入力、格納、出力を行う、
ことを特徴とする請求項１０乃至１２の何れか１項に記載のプログラマブル論理回路装置。
【請求項１４】
任意のクロック信号を取得するクロック信号取得手段をさらに備え、
前記制御手段は、前記クロック信号取得手段が取得したクロック信号のクロック毎に前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線手段を制御する、
ことを特徴とする請求項１３に記載のプログラマブル論理回路装置。
【請求項１５】
複数の演算器エレメントを含むモジュールを備え、該複数の演算器エレメントを結線させて任意の論理回路を実現するプログラマブル論理回路装置の配線方法であって、
二次元の論理回路を取得する二次元論理回路取得ステップと、
前記二次元論理回路取得ステップで取得した二次元論理回路に基づいて、複数の面論理回路を重ね合わせた仮想的な三次元の論理回路を仮想的に作成する三次元論理回路作成ステップと、
前記三次元論理回路作成ステップで作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路のうちの一の面論理回路を前記モジュールで実現するために前記モジュールが含む前記複数の演算器エレメントを動的に結線する演算器エレメント結線ステップと、
前記三次元論理回路作成ステップで作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線ステップで制御する制御ステップと、を備える、
ことを特徴とする配線方法。
【請求項１６】
前記三次元論理回路作成ステップでは、
前記二次元論理回路取得ステップで取得した二次元論理回路を、その二次元論理回路が含むフリップフロップ回路で区切り、前記複数の面論理回路に分割し、それぞれの面論理回路について仮想的に折り畳んでいくことによって、前記複数の面論理回路を重ね合わせた仮想的な三次元論理回路を作成する、
ことを特徴とする請求項１５に記載の配線方法。
【請求項１７】
前記制御ステップでは、
前記演算器エレメント結線ステップに、前記仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路として、前記複数の面論理回路を順に前記モジュールで実現させる、
ことを特徴とする請求項１５又は１６に記載の配線方法。
【請求項１８】
前記演算器エレメント結線ステップでは、
前記一の面論理回路を実現するモジュールを、他の面論理回路を実現するモジュールに再構成するために、前記複数の演算器エレメントを再結線する、
ことを特徴とする請求項１５乃至１７の何れか１項に記載の配線方法。
【請求項１９】
任意のデータを格納するデータ格納ステップをさらに備え、
前記データ格納ステップで、前記一の面論理回路を実現するモジュールが出力したデータを格納し、前記他の面論理回路を実現するモジュールに出力する、
ことを特徴とする請求項１５乃至１８の何れか１項に記載の配線方法。
【請求項２０】
前記データ格納ステップで複数の記録領域を設置する記録領域設置ステップと、
前記記録領域設置ステップで設置した複数の記憶領域のそれぞれに前記複数の面論理回路のうちの任意の二面論理回路間におけるデータの入力、記憶、出力を行わせるように制御する記憶領域制御ステップと、をさらに備える、
ことを特徴とする請求項１９に記載の配線方法。
【請求項２１】
任意のクロック信号を取得するクロック信号取得ステップをさらに備え、
前記制御ステップでは、前記クロック信号取得ステップで取得したクロック信号のクロック毎に前記複数の面論理回路を順に前記モジュールで実現させる、
ことを特徴とする請求項１９又は２０に記載の配線方法。
【請求項２２】
複数の演算器エレメントを含むモジュールを備え、該複数の演算器エレメントを結線させて動的に任意の論理回路を実現するプログラマブル論理回路装置が使用する論理回路の作成方法であって、
二次元の論理回路を取得する二次元論理回路取得ステップと、
前記二次元論理回路取得ステップで取得した二次元論理回路を、その二次元論理回路が含むフリップフロップ回路で区切り、複数の面論理回路に分割し、それぞれの面論理回路について仮想的に折り畳んでいくことによって、前記複数の面論理回路を重ね合わせた仮想的な三次元の論理回路を作成する三次元論理回路作成ステップと、
前記三次元論理回路作成ステップで作成した仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路に置換する三次元論理回路置換ステップと、
を備えることを特徴とする論理回路作成方法。
【請求項２３】
複数の演算器エレメントを含むモジュールを備え、該複数の演算器エレメントを結線させて動的に任意の論理回路を実現するプログラマブル論理回路装置が使用する論理回路を生成するプログラムであって、
コンピュータを、
二次元の論理回路を取得する二次元論理回路取得手段、
前記二次元論理回路取得手段が取得した二次元論理回路を、その二次元論理回路が含むフリップフロップ回路で区切り、複数の面論理回路に分割し、それぞれの面論理回路について仮想的に折り畳んでいくことによって、前記複数の面論理回路を重ね合わせた仮想的な三次元の論理回路を作成する三次元論理回路作成手段、
前記三次元論理回路作成手段が作成した仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路に置換する三次元論理回路置換手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの実行をハードウェアで直接的に実現する情報処理システム、プログラマブル論理回路装置、及び、その配線方法に関する。
【背景技術】
【０００２】
プログラムの実行をハードウェアで直接的に実現する再構成可能なデバイスとして、ＦＰＧＡ（Field Programmable Gate Array）が知られている（例えば、特許文献１）。
【０００３】
ＦＰＧＡは、プログラムとして論理データを与えることで論理回路間の結線論理を変更し、これによってハードウェア的に演算結果を得ることができるようにしたものである。ＦＰＧＡを利用して演算を行うことによって、従来の汎用コンピュータに搭載されたＣＰＵ（Central Processing Unit）による演算よりも高速に演算結果を得ることができる。
【０００４】
ところで、特許文献１の技術による再構成可能なデバイスの配置配線ツールは、近年、その性能が向上しており、効率の良い配置配線結果を得ることができる。また、近年、動作中に論理回路の再構成を行える動的再構成可能なデバイスが開発されている。
【特許文献１】特許第３５４０７９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、時間パラメータを加えた三次元の配置配線ツールは、開発段階であり、そのことは、上記の動的再構成可能なデバイスを効率よく設計できない主要原因の一つである。現在、デバイスの使用効率を高くするために、設計者がマニュアルで配置配線している。
【０００６】
本発明は、上記問題点に鑑みてなされたもので、時間パラメータを加えた三次元に効率よく論理回路を配置できる情報処理システム、プログラマブル論理回路装置、配線方法、論理回路作成方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係る情報処理システムは、
複数の演算器エレメントを含むモジュールを備えるプログラマブル論理回路装置に任意の論理回路を実現させるための情報処理システムであって、
二次元の論理回路を取得する二次元論理回路取得手段と、
前記二次元論理回路取得手段が取得した二次元論理回路に基づいて、複数の面論理回路を重ね合わせた仮想的な三次元の論理回路を作成する三次元論理回路作成手段と、
前記三次元論理回路作成手段が作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路のうちの一の面論理回路を前記モジュールで実現するために前記モジュールが含む前記複数の演算器エレメントを動的に結線する演算器エレメント結線手段と、
前記三次元論理回路作成手段が作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線手段を制御する制御手段と、
を備えることを特徴とする。
【０００８】
例えば、前記三次元論理回路作成手段は、
前記二次元論理回路取得手段が取得した二次元論理回路を、その二次元論理回路が含むフリップフロップ回路で区切り、前記複数の面論理回路に分割し、その複数の面論理回路について仮想的に折り畳んでいくことによって、前記複数の面論理回路を重ね合わせた仮想的な三次元論理回路を作成してもよい。
【０００９】
例えば、前記演算器エレメント結線手段は、
前記一の面論理回路を実現するモジュールを、他の面論理回路を実現するモジュールに再構成するために、前記複数の演算器エレメントを再結線してもよい。
【００１０】
例えば、前記制御手段は、
それぞれの面論理回路を複数回前記モジュールで繰り返し、実現させ、
前記二次元論理回路内における多方向のデータフローを実現させてもよい。
【００１１】
例えば、前記プログラマブル論理回路装置内に複数の記録領域を設置する記録領域設置手段と、
前記記録領域設置手段が設置した複数の記憶領域のそれぞれに前記複数の面論理回路のうちの任意の二面論理回路間におけるデータの入力、記憶、出力を行わせるように制御する記憶領域制御手段と、をさらに備えてもよい。
【００１２】
例えば、任意のクロック信号を取得するクロック信号取得手段をさらに備え、
前記制御手段は、前記クロック信号取得手段が取得したクロック信号のクロック毎に前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線手段を制御してもよい。
【００１３】
本発明の第２の観点に係るプログラマブル論理回路装置は、
複数の演算器エレメントを含むモジュールを備え、該複数の演算器エレメントを結線させて任意の論理回路を実現するプログラマブル論理回路装置であって、
複数の面論理回路を重ね合わせた仮想的な三次元の論理回路に基づいて、該複数の面論理回路のうちの一の面論理回路を前記モジュールで実現するために前記モジュールが含む前記複数の演算器エレメントを動的に結線する演算器エレメント結線手段と、
前記三次元論理回路作成手段が作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線手段を制御する制御手段と、
を備えることを特徴とする。
【００１４】
例えば、前記制御手段は、
前記演算器エレメント結線手段に、前記仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路として、前記複数の面論理回路を順に前記モジュールで実現させてもよい。
【００１５】
例えば、前記演算器エレメント結線手段は、
前記一の面論理回路を実現したモジュールを、他の面論理回路を実現するモジュールに再構成するために、前記複数の演算器エレメントを再結線してもよい。
【００１６】
例えば、任意のデータを格納するデータ格納手段をさらに備え、
前記データ格納手段は、前記一の面論理回路を実現するモジュールが出力したデータを格納し、前記他の面論理回路を実現するモジュールに出力してもよい。
【００１７】
例えば、前記データ格納手段は、前記モジュールの周囲に配置され、且つ、前記一の面論理回路と前記他の面論理回路とを連結するように配置されてもよい。
【００１８】
例えば、前記データ格納手段はＦＩＦＯ回路であってもよい。
【００１９】
例えば、前記データ格納手段は、複数の記録領域を備え、
前記複数の記憶領域は、それぞれ、前記複数の面論理回路のうちの任意の二面論理回路間のデータの入力、格納、出力を行ってもよい。
【００２０】
例えば、任意のクロック信号を取得するクロック信号取得手段をさらに備え、
前記制御手段は、前記クロック信号取得手段が取得したクロック信号のクロック毎に前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線手段を制御してもよい。
【００２１】
本発明の第３の観点に係るプログラマブル論理回路装置の配線方法は、
複数の演算器エレメントを含むモジュールを備え、該複数の演算器エレメントを結線させて任意の論理回路を実現するプログラマブル論理回路装置の配線方法であって、
二次元の論理回路を取得する二次元論理回路取得ステップと、
前記二次元論理回路取得ステップで取得した二次元論理回路に基づいて、複数の面論理回路を重ね合わせた仮想的な三次元の論理回路を仮想的に作成する三次元論理回路作成ステップと、
前記三次元論理回路作成ステップで作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路のうちの一の面論理回路を前記モジュールで実現するために前記モジュールが含む前記複数の演算器エレメントを動的に結線する演算器エレメント結線ステップと、
前記三次元論理回路作成ステップで作成した仮想的な三次元論理回路に基づいて、前記複数の面論理回路を順に前記モジュールで実現させるように前記演算器エレメント結線ステップで制御する制御ステップと、
を備えることを特徴とする。
【００２２】
例えば、前記三次元論理回路作成ステップでは、
前記二次元論理回路取得ステップで取得した二次元論理回路を、その二次元論理回路が含むフリップフロップ回路で区切り、前記複数の面論理回路に分割し、それぞれの面論理回路について仮想的に折り畳んでいくことによって、前記複数の面論理回路を重ね合わせた仮想的な三次元論理回路を作成してもよい。
【００２３】
例えば、前記制御ステップでは、
前記演算器エレメント結線ステップに、前記仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路として、前記複数の面論理回路を順に前記モジュールで実現させてもよい。
【００２４】
例えば、前記演算器エレメント結線ステップでは、
前記一の面論理回路を実現するモジュールを、他の面論理回路を実現するモジュールに再構成するために、前記複数の演算器エレメントを再結線してもよい。
【００２５】
例えば、任意のデータを格納するデータ格納ステップをさらに備え、
前記データ格納ステップで、前記一の面論理回路を実現するモジュールが出力したデータを格納し、前記他の面論理回路を実現するモジュールに出力してもよい。
【００２６】
例えば、前記データ格納ステップで複数の記録領域を設置する記録領域設置ステップと、
前記記録領域設置ステップで設置した複数の記憶領域のそれぞれに前記複数の面論理回路のうちの任意の二面論理回路間におけるデータの入力、記憶、出力を行わせるように制御する記憶領域制御ステップと、をさらに備えてもよい。
【００２７】
例えば、任意のクロック信号を取得するクロック信号取得ステップをさらに備え、
前記制御ステップでは、前記クロック信号取得ステップで取得したクロック信号のクロック毎に前記複数の面論理回路を順に前記モジュールで実現させてもよい。
【００２８】
本発明の第４の観点に係る論理回路作成方法は、
複数の演算器エレメントを含むモジュールを備え、該複数の演算器エレメントを結線させて動的に任意の論理回路を実現するプログラマブル論理回路装置が使用する論理回路の作成方法であって、
二次元の論理回路を取得する二次元論理回路取得ステップと、
前記二次元論理回路取得ステップで取得した二次元論理回路を、その二次元論理回路が含むフリップフロップ回路で区切り、複数の面論理回路に分割し、それぞれの面論理回路について仮想的に折り畳んでいくことによって、前記複数の面論理回路を重ね合わせた仮想的な三次元の論理回路を作成する三次元論理回路作成ステップと、
前記三次元論理回路作成ステップで作成した仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路に置換する三次元論理回路置換ステップと、
を備えることを特徴とする。
【００２９】
本発明の第５の観点に係るプログラムは、
複数の演算器エレメントを含むモジュールを備え、該複数の演算器エレメントを結線させて動的に任意の論理回路を実現するプログラマブル論理回路装置が使用する論理回路を生成するプログラムであって、
コンピュータを、
二次元の論理回路を取得する二次元論理回路取得手段、
前記二次元論理回路取得手段が取得した二次元論理回路を、その二次元論理回路が含むフリップフロップ回路で区切り、複数の面論理回路に分割し、それぞれの面論理回路について仮想的に折り畳んでいくことによって、前記複数の面論理回路を重ね合わせた仮想的な三次元の論理回路を作成する三次元論理回路作成手段、
前記三次元論理回路作成手段が作成した仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路に置換する三次元論理回路置換手段、
として機能させることを特徴とする。
【発明の効果】
【００３０】
本発明によれば、デバイス上において、時間パラメータを含む三次元に効率よく論理回路を配置できる。
【発明を実施するための最良の形態】
【００３１】
（実施形態１）
以下、本発明の実施形態１に係るプログラマブル論理回路装置１００を説明する。プログラマブル論理回路装置（以下、ＰＬＤ）１００は、動的に再構成可能であり、時間パラメータを含めた三次元で任意の論理回路を構築し、その論理回路でデータ処理を行う。
図１に示すように、ＰＬＤ１００は、モジュール１０と、Ｉ／Ｏ部２０と、を備える。
【００３２】
モジュール１０は、図１に示すように、二次元に配列された複数の演算器エレメント１と、複数の配線２と、を備えている。
【００３３】
演算器エレメント１は、複数個がモジュール１０上に二次元に配置される。また、それぞれの演算器エレメント１は、例えば、ＡＬＵ（Arithmetic and Logic Unit）やルックアップテーブルやセレクタやフリップフロップ回路等を備え、それら内部の回路構成を動的に変化させ、任意の論理関数を生成可能である。
【００３４】
配線２は、例えば、スイッチマトリクスやセレクタ等を備え、複数の演算器エレメント１を任意に結線する。
【００３５】
ＰＬＤ１００は、ルックアップテーブル等に含まれるＳＲＡＭ、ＤＲＡＭ等の書き換え可能なメモリ素子を備えており、それらのメモリ素子で構成されたコンフィギュレーションメモリ（図示省略）を備えている。
【００３６】
このコンフィギュレーションメモリ（図示省略）にアドレスを与えて、新しい回路情報のデータが格納されると、この回路情報に従って演算器エレメント１内の構成情報と、各演算器エレメント１間や各演算器エレメント１とＩ／Ｏ部２０との間等を相互に接続する配線２の接続状態とが再構成される。この一連の動作をコンフィギュレーション（構成）と呼ぶ。
【００３７】
Ｉ／Ｏ部２０は、ＰＬＤ１００の周辺部に配置されており、外部と信号のやりとりを行う。また、Ｉ／Ｏ部２０は、ＦＩＦＯ部２１を備える。
【００３８】
ＦＩＦＯ（First in First out）部２１は、再構成される前と後のモジュール１０間のデータのバッファリングとフロー制御とを行う。
【００３９】
上記構成のＰＬＤ１００は、例えば、図２に示すような情報処理システム１０００に組み込まれて使用される。
【００４０】
例えば、情報処理システム１０００は、ＰＬＤ１００と、インタフェース２００と、ＣＰＵ（Central Processing Unit）３００と、ＲＯＭ（Read Only Memory）４００と、ハードディスク５００と、ＲＡＭ（Random Access Memory）６００と、表示部７００と、操作部８００と、から構成される。
【００４１】
ＰＬＤ１００は、インタフェース２００を介してＰＣＩ（Peripheral Components Interconnect）バスに接続されている。
【００４２】
ハードディスク５００は、ＰＬＤ１００のコンフィギュレーションを行うためのアプリケーションプログラムやコンフィギュレーションの元になる論理コードを格納している。
【００４３】
ＣＰＵ３００は、ハードディスク５００からＲＡＭ６００にアプリケーションプログラムをロードして実行する。また、ＣＰＵ３００は、アプリケーションプログラム実行中に必要に応じて、ハードディスク５００から回路情報を読み出して、ＰＬＤ１００のコンフィギュレーションメモリ（図示省略）にロードし、ＰＬＤ１００上に任意の論理回路を構成し、当該論理回路上でデータ処理を行う。
【００４４】
つまり、ＣＰＵ３００は、ＰＬＤ１００におけるコンフィギュレーション（構成）や、ＰＬＤ１００上に構成された論理回路へのデータの入出力を制御する。
【００４５】
以下、上記構成を有するＰＬＤ１００の論理回路の構成方法を説明する。
【００４６】
図３を参照しながら、ＰＬＤ１００における時間パラメータを含む三次元論理回路の実現例を簡単に説明する。
【００４７】
先ず、情報処理システム１０００は、図３（ａ）に示すような二次元の論理回路１１０を生成する。次に、情報処理システムは、図３（ａ）に示すように、二次元論理回路１１０を論理回路Ａ〜Ｄに分割する。ただし、論理回路のフローの向きは、ＡからＤへの向きである。情報処理システム１０００は、図３（ａ）（ｂ）に示すように、仮想的に論理回路Ｄを論理回路Ｃに対して左右対称に折り畳む。情報処理システム１０００は、図３（ｂ）（ｃ）に示すように、仮想的に論理回路Ｃ，Ｄを論理回路Ｂに対して上下対称に折り畳む。情報処理システム１０００は、図３（ｃ）（ｄ）に示すように、仮想的に論理回路Ｂ，Ｃ，Ｄを論理回路Ａに対して左右対称に折り畳み、仮想的な三次元の論理回路１２０を生成する。ただし、図３（ｄ）に示すように、仮想的な三次元論理回路１２０において、論理回路Ａ，Ｂの接続部は辺ｂ２に有り、論理回路Ｂ，Ｃの接続部は辺ｃ３に有り、論理回路Ｃ，Ｄの接続部は辺ｄ４に有る。
【００４８】
ここで、情報処理システム１０００は、生成した仮想的な三次元論理回路１２０を、時間パラメータを含む三次元論理回路としてＰＬＤ１００に書き込む。
【００４９】
先ず、情報処理システム１０００は、論理回路Ａをモジュール１０に書き込む。ＰＬＤ１００は、論理回路Ａが書き込まれたモジュール１０によるデータ処理を行い、それによって得られたデータＡを、論理回路Ａ，Ｂの接続部（辺ｂ２）に対応するＦＩＦＯ部２１−２に格納する。
【００５０】
次に、情報処理システム１０００は、論理回路Ｂをモジュール１０に書き込む（構成）。ＰＬＤ１００は、ＦＩＦＯ部２１−２からデータＡをモジュール１０に入力し、論理回路Ｂが書き込まれたモジュール１０によるデータ処理を行い、それによって得られたデータＢを、論理回路Ｂ，Ｃの接続部（辺ｃ３）に対応するＦＩＦＯ部２１−３に格納する。
【００５１】
情報処理システム１０００は、論理回路Ｃをモジュール１０に書き込む（構成）。ＰＬＤ１００は、ＦＩＦＯ部２１−３からデータＢをモジュール１０に入力し、論理回路Ｃが書き込まれたモジュール１０によるデータ処理を行い、それによって得られたデータＣを、論理回路Ｃ，Ｄの接続部（辺ｄ４）に対応するＦＩＦＯ部２１−４に格納する。
【００５２】
情報処理システム１０００は、論理回路Ｄをモジュール１０に書き込む（構成）。ＰＬＤ１００は、ＦＩＦＯ部２１からデータＣをモジュール１０に入力し、論理回路Ｄが書き込まれたモジュール１０によるデータ処理を行い、それによって得られたデータＤを出力する。
【００５３】
このようにして、二次元論理回路１１０に基づいて仮想的な三次元論理回路１２０を生成し、生成した仮想的な三次元論理回路１２０を、時間パラメータを含んだ三次元論理回路で実現することによって、ＰＬＤ１００における使用効率を高くすることができる。
【００５４】
ここで、図４〜１０を参照しながら上記構成を有するＰＬＤ１００における論理回路の構成方法を詳細に説明する。
【００５５】
先ず、情報処理システム１０００が行う論理回路作成処理を説明する。簡単に説明すると、情報処理システム１０００は、ＲＴＬ（Register Transfer Level）等の論理コードをもとに論理合成した二次元論理回路を取得し、時間パラメータを含む三次元論理回路を作成する。
【００５６】
以下、図４に示すフローチャートを参照しながら、論理回路作成処理を詳細に説明する。
【００５７】
先ず、ＣＰＵ３００は、操作部８００を介してユーザよりＰＬＤ１００のコンフィギュレーションを行うための論理回路を生成するアプリケーションプログラム（以下、論理回路作成プログラム）の起動を行う旨の要求を受信すると、論理回路作成プログラムを起動する（ステップＳ１０）。
【００５８】
次に、ＣＰＵ３００は、ユーザが操作部８００を介して入力した、又は、ハードディスク５００に格納されている、ＶＨＤＬ（VHSIC Hardware Description Language）やＶｅｒｉｌｏｇ等の開発言語で記述された論理コードを論理合成し、配置配線した二次元論理回路を取得した（ステップＳ１１）と仮定する。
【００５９】
ここで、ユーザより操作部８００を介して上記論理コードに基づいたコンフィギュレーションを行うための論理回路を作成する旨の要求を受信したと仮定すると、ＣＰＵ３００は、上記二次元論理回路を元に仮想的な三次元論理回路を作成する（ステップＳ１２）。
【００６０】
ＣＰＵ３００は、作成した仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路に置換し（ステップＳ１３）、処理を終了する。
【００６１】
このようにして、論理回路作成処理によれば、情報処理システム１０００は、任意の論理コードに基づいた二次元論理回路から、ＰＬＤ１００上で実際に使用する時間パラメータを含む三次元論理回路を作成することができる。
【００６２】
次に、情報処理システム１０００が行う論理回路再構成処理を説明する。簡単に説明すると、情報処理システム１０００は、上記論理回路作成処理で作成した時間パラメータを含む三次元論理回路を取得し、順次書き込み、データ処理を行う。なお、取得する三次元論理回路はＮ枚の二次元論理回路から構成されると仮定する。つまり、情報処理システム１０００は、ＰＬＤ１００上でＮ回、コンフィギュレーションを行う。
【００６３】
以下、図５に示すフローチャートを参照しながら、論理回路再構成処理を詳細に説明する。
【００６４】
先ず、ＣＰＵ３００は、ハードディスク５００等から上記論理回路作成処理で作成された、時間パラメータを含む三次元論理回路を取得し（ステップＳ２０）、カウンタ「ｎ」に「１」を代入する。
【００６５】
ＣＰＵ３００は、時間パラメータを含む三次元論理回路のうちのｎ枚目の二次元論理回路をＰＬＤ１００のモジュール１０に書き込む（ステップＳ２１）。
【００６６】
ＣＰＵ３００は、処理対象のデータをハードディスク５００又はＦＩＦＯ部２１からモジュール１０に入力する（ステップＳ２２）。
【００６７】
ＣＰＵ３００は、モジュール１０に入力されたデータをｎ枚目の二次元論理回路で処理する（ステップＳ２３）。
【００６８】
ＣＰＵ３００は、処理されたデータをＦＩＦＯ部２１に格納する（ステップＳ２４）。
【００６９】
ＣＰＵ３００は、Ｎ枚の二次元論理回路でデータを処理したか否かを判別する（ステップＳ２５）。
【００７０】
Ｎ枚の二次元論理回路でデータを処理していないと判別すると（Ｓ２５；ＮＯ）、ＣＰＵ３００は、カウンタ「ｎ」に「１」を加算し、処理をステップＳ２１に移行させる。
【００７１】
Ｎ枚の二次元論理回路でデータを処理していたと判別すると（Ｓ２５；ＹＥＳ）、ＣＰＵ３００は、ＰＬＤ１００で処理したデータをハードディスク５００等に格納する（ステップＳ２６）。
【００７２】
このようにして、論理回路再構成処理によれば、情報処理システム１０００は、二次元論理回路に基づいた仮想的な三次元論理回路を、時間パラメータを含む三次元論理回路としてＰＬＤ１００で実現し、プログラムの実行をハードウェア（ＰＬＤ１００）において直接的に且つ動的に実現することができる。
【００７３】
ここで、ステップＳ１１〜１３において行われる二次元論理回路１１０から仮想的な三次元論理回路１２０への変換、及び、仮想的な三次元論理回路の、時間パラメータを含む三次元論理回路としての実現の一例を説明する。
【００７４】
先ず、ステップＳ１１において、ＣＰＵ３００が、二つのフローを持つ二次元論理回路１１０を取得したと仮定する。
【００７５】
ステップＳ１２において、ＣＰＵ３００は、仮想的に二次元論理回路１１０をフリップフロップ回路１１２で区切り、図６に示すように、論理回路１１１ａ〜ｄをフリップフロップ回路１１２Ａ〜Ｄで分ける。
【００７６】
次に、ＣＰＵ３００は、図７，８に示すように、仮想的に論理回路１１１ｂを左右反転させ、論理回路１１１ｃを上下反転させ、論理回路１１１ｄを左右反転と上下反転をさせる。
【００７７】
ＣＰＵ３００は、図８，９に示すように、仮想的に論理回路１１１ａ〜ｄをモジュール１０ａ〜ｄに置換し、フリップフロップ回路１１２Ａ〜ＤをＦＩＦＯ部２１Ａ〜Ｄで置換する。また、モジュール１０の他辺にＦＩＦＯ部２１を配置する。ここで、複数のモジュール１０が隣に有するＦＩＦＯ部２１の番号（Ａ〜Ｄ）が同じである場合は、それらのモジュール１０は、そのＦＩＦＯ部２１で接続されているということである。
【００７８】
ＣＰＵ３００は、図９，１０に示すように、仮想的に向きを変えないようにし、且つ、矢印の順にモジュール１０ａ〜ｄを積層させ、仮想的な三次元論理回路１２０を生成する。
【００７９】
このようにして、ステップＳ１２において、ＣＰＵ３００は、二次元論理回路１１０から仮想的な三次元論理回路１２０を生成することができる。
【００８０】
ステップＳ１３において、情報処理システム１０００は、生成した仮想的な三次元論理回路１２０を、時間パラメータを含む三次元論理回路としてハードディスク５００等に記憶する。
【００８１】
ステップＳ２０〜２５において、情報処理システム１０００は、時間パラメータを含む三次元論理回路をＰＬＤ１００に動的に書き込み、データ処理を行う。
【００８２】
先ず、情報処理システム１０００は、モジュール１０ａの論理回路をモジュール１０に書き込む。ＰＬＤ１００は、モジュール１０ａの論理回路によるデータ処理を行う。ＰＬＤ１００は、得られたデータＡを、ＦＩＦＯ部２１Ａに対応するＦＩＦＯ部２１−２に格納する。また、ＰＬＤ１００は、得られたデータＢを、ＦＩＦＯ部２１Ｂに対応するＦＩＦＯ部２１−３に格納する。
【００８３】
次に、情報処理システム１０００は、モジュール１０ｂの論理回路をモジュール１０に書き込む（構成）。ＰＬＤ１００は、ＦＩＦＯ部２１−２からデータＡをモジュール１０に入力し、モジュール１０ｂの論理回路によるデータ処理を行い、それによって得られたデータＣを、ＦＩＦＯ部２１Ｃに対応するＦＩＦＯ部２１−３に格納する。
【００８４】
情報処理システム１０００は、モジュール１０ｃの論理回路をモジュール１０に書き込む（構成）。ＰＬＤ１００は、ＦＩＦＯ部２１−３からデータＢをモジュール１０に入力し、モジュール１０ｃの論理回路によるデータ処理を行い、それによって得られたデータＤを、ＦＩＦＯ部２１Ｄに対応するＦＩＦＯ部２１−２に格納する。
【００８５】
情報処理システム１０００は、モジュール１０ｄの論理回路をモジュール１０に書き込む（構成）。ＰＬＤ１００は、ＦＩＦＯ部２１−３からデータＣを、ＦＩＦＯ部２１−２からデータＤをモジュール１０に入力し、モジュール１０ｄの論理回路によるデータ処理を行い、それによって得られたデータＥを出力する。
【００８６】
このようにして、二次元論理回路１１０に基づいて仮想的な三次元論理回路１２０を生成し、生成した仮想的な三次元論理回路１２０を、時間パラメータを含んだ三次元論理回路で実現することによって、ＰＬＤ１００における使用効率を高くすることができる。
【００８７】
以上、本発明の実施形態１に係るＰＬＤ１００を有する情報処理システム１０００によれば、二次元論理回路に基づいて、時間パラメータを含む三次元論理回路を実現することによって、ＰＬＤ１００における使用効率を高くすることができる。また、二次元論理回路に変換できる、時間パラメータを含む三次元論理回路を書き込むので、システム全体の設計がしやすい。データをメモリに退避させている訳ではないので書き換えオーバヘッドが小さい。従来の二次元論理回路に関する配置配線アルゴリズムを適用できる。ストリームデータを扱える。モジュール１０から物理的に離れた位置にＦＩＦＯ部２１を配置するので高バンド幅のＦＩＦＯが使用できる。正方形にとらわれないので単位面積当たりの処理スピードが速くなる。
【００８８】
（実施形態２）
実施形態１に係るＰＬＤ１００のデータフローは、図３に示すように、例えば、Ａ，Ｂ，Ｃ，Ｄの順に一方向のみであったが、実施形態２では、図１１（ａ）に示すように、例えば、Ａ，Ｂ，Ａ，Ｂ，Ｃ，Ｄ，Ｃ，Ｄの順にデータフローが反対方向の流れを含んでいてもよい。
なお、実施形態２に係る情報処理システム及びＰＬＤは、実施形態１と同様である。
実施形態２に係るＰＬＤ１００は、各論理回路間のデータを記憶するために、ＦＩＦＯ２１−１〜４それぞれの内部に複数の記憶領域を備える。複数の記憶領域はそれぞれ、モジュール１０で実現される複数の論理回路のうちの任意の二論理回路間のデータの入力、格納、出力を行う。
また、データフローが一方向ではなく、大量のデータをまとめて処理できないので、図１１（ｂ）に示すように、全ての論理回路を順次１クロック毎に切り換えることを繰り返す。
また、論理回路をクロック毎に切り換えて再度使用するので、各ＰＥ１の構成情報や内部フリップフロップ回路の値等を全て記憶しておく。
【００８９】
実施形態２に係るＰＬＤ１００によれば、データフローが一方向に限定されない。また、大きな面積を必要とする処理でも時間的に分割して処理することができる。
【００９０】
なお、本発明は上記実施形態に限定されず、種々の変形及び応用が可能である。
【００９１】
上記実施形態では、データフローの数が一又は二であったが、それ以上の数であっても良い。
上記実施形態では、二次元論理回路を四枚に折り畳み、四枚の仮想的な三次元論理回路を実現したが、二次元論理回路を任意の枚数に折り畳み、任意の枚数の仮想的な三次元論理回路を実現するようにしてもよい。また、折り畳み方は任意である。また、上記実施形態では、二次元論理回路を左右対称もしくは上下対称に折り畳み、仮想的な三次元論理回路を実現したが、左右対称もしくは上下対称に限定されるものではなく、折り畳み方は任意である。
【００９２】
上記実施形態では、情報処理システム１０００が、ＲＴＬ等の論理コードを二次元論理回路に変換し、変換した二次元論理回路を仮想的な三次元論理回路に変換したが、ユーザによって入力された、又は、ハードディスク５００に格納された二次元論理回路を仮想的な三次元論理回路に変換するようにしてもよい。また、具体的な細部構造等についても適宜変更可能である。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施形態１に係るプログラマブル論理回路装置の構成図である。
【図２】本発明の実施形態１に係る情報処理システムの構成図である。
【図３】本発明の実施形態１に係るプログラマブル論理回路装置における論理回路の構成方法を説明するための図である。
【図４】論理回路作成処理を説明するためのフローチャートである。
【図５】論理回路再構成処理を説明するためのフローチャートである。
【図６】二次元論理回路の構成図である。
【図７】二次元論理回路の仮想三次元論理回路への変換を説明するための図である。
【図８】二次元論理回路の仮想三次元論理回路への変換を説明するための図である。
【図９】二次元論理回路の仮想三次元論理回路への変換を説明するための図である。
【図１０】仮想三次元論理回路の構成図である。
【図１１】本発明の実施形態２に係るプログラマブル論理回路装置における論理回路の構成方法を説明するための図である。
【符号の説明】
【００９４】
１          演算器エレメント
２          配線
１０        モジュール
２０        Ｉ／Ｏ部
２１        ＦＩＦＯ部
１００      プログラマブル論理回路装置
１１０      二次元論理回路
１１１      モジュール
１１２      フリップフロップ回路
１２０      仮想的な三次元論理回路
２００      インタフェース
３００      ＣＰＵ
４００      ＲＯＭ
５００      ハードディスク
６００      ＲＡＭ
７００      表示部
８００      操作部
１０００    情報処理システム
【図１】
2009043094.tif 000003
【図２】
2009043094.tif 000004
【図３】
2009043094.tif 000005
【図４】
2009043094.tif 000006
【図５】
2009043094.tif 000007
【図６】
2009043094.tif 000008
【図７】
2009043094.tif 000009
【図８】
2009043094.tif 000010
【図９】
2009043094.tif 000011
【図１０】
2009043094.tif 000012
【図１１】
2009043094.tif 000013