JP3636277B2 - 情報処理システム - Google Patents
情報処理システム Download PDFInfo
- Publication number
- JP3636277B2 JP3636277B2 JP25806498A JP25806498A JP3636277B2 JP 3636277 B2 JP3636277 B2 JP 3636277B2 JP 25806498 A JP25806498 A JP 25806498A JP 25806498 A JP25806498 A JP 25806498A JP 3636277 B2 JP3636277 B2 JP 3636277B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- logic cell
- information
- programmable logic
- logic
- 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
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Description
【発明の属する技術分野】
この発明は、少なくとも処理の一部分を、回路構成を部分的に再構成できるプログラマブル論理回路で処理することが可能である情報処理システムに関するものであり、特に、プログラマブル論理回路の有効な活用方法に関するものである。
【0002】
【従来の技術】
デジタル論理回路製品、特に特定用途向け集積回路(ASIC)の分野において、製品の開発期間を短縮するために、フィールドプログラマブルゲートアレイ(FPGA)やプログラマブルロジックデバイス(PLD)などで構成されたプログラマブル論理回路が広く使われている。
【0003】
これらのプログラマブル論理回路は、論理回路を記述する回路情報をこれらに読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。このため、プログラマブル論理回路を用いることで、従来は回路設計の終了後に数週間から数か月を必要とした集積回路の作製時間が不要になるというメリットがある。
【0004】
特に、米国特許第4,700,187号の発明のように論理セルの機能を決めるスイッチの入力にSRAMなどを用いて電気的に再構成可能なプログラマブル論理回路は、一度作製した回路を必要に応じて自由に何度でも変更できるという利点があり、プログラマブル論理回路は、ますます広く使われるようになってきている。
【0005】
ところで、最近の論理回路は複雑さが増し、一つのプログラマブル論理回路では実現できない規模にまで回路規模が大きくなっている。この問題を解決するための一つの方法は、複数個のプログラマブル論理回路を接続して使用することである。
【0006】
しかしながら、プログラマブル論理回路の入出力接続の数が制限されているので、この方法ですべての論理回路を実現することは困難である。また、たとえ実現できたとしても、使用するプログラマブル論理回路数の増加に伴い、消費電力が増加するという新たな欠点を引き起こす。
【0007】
別の解決方法として、異なる時間に異なる論理回路を実現するために、プログラマブル論理回路を処理の途中で再度構成し直すことが提案されている。この方法は、携帯情報端末のように、装置が小型であるため、内蔵できる回路規模に制約がある場合でも、様々な処理が比較的高速に行えるという利点がある。
【0008】
しかし、この場合は、プログラマブル論理回路に回路を再構成する時に回路情報を再度読み込ませるための余分な時間がかかるという欠点がある。さらに、処理の途中で再構成することは、処理を一時中断し、その時のデータをプログラマブル論理回路の外部の記憶装置に記憶させ、新たな回路情報を読み込んで再構成し、再構成前のデータと再構成に伴う新しいデータを入力させるという余分な処理が必要になる。
【0009】
この問題を解決するために、米国アトメル社の「CONFIGURABLE LOGIC」という名のデータブックに記載されているプログラマブル論理回路では、再構成を行う時にデータを記憶するためのデータ記憶装置(SRAM)を有し、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことで再構成をするための時間を最小に留めている。
【0010】
【発明が解決しようとする課題】
ところが、このような部分的に再構成可能なプログラマブル論理回路を用いて、異なる複数の論理回路を、異なる時間に、前記プログラマブル論理回路上に構成する場合、従来は、プログラマブル論理回路を利用するアプリケーションソフト側で、プログラマブル論理回路上で回路として使用されている論理セルの位置が不明であったため、再構成する回路は、例えば、プログラマブル論理回路の所定の位置を基準に構成する必要があり、複数の回路はプログラマブル論理回路上の同一部分に重ねて構成されるようになる。
【0011】
例えば、図14に示すように、2つの回路A、回路Bを、回路A→回路B→回路Aの順にプログラマブル論理回路上に構成して、処理を行う場合を考える。この場合、回路Aは、図14(a)に示すように、プログラマブル論理回路の回路構成領域FLの例えば左下隅を基準にしたエリアとして、プログラマブル論理回路上に構成される。そして、この回路Aでの処理が終了すると、次は、回路Bが、図14(b)に示すように、同じく回路構成領域FLの左下隅を基準にしたエリアとして、プログラマブル論理回路上に構成される。最後に、回路Aが、図14(c)に示すように、再び、回路構成領域FLの左下隅を基準にしたエリアとして、プログラマブル論理回路上に構成される。
【0012】
ところで、プログラマブル論理回路に再構成する回路には規模の大小があり、再構成する回路の規模が比較的小さく、プログラマブル論理回路上に複数の回路を同時に構成することが可能である場合もある。例えば、前述の例の場合には、回路Aと、回路Bとは、図14(d)に示すように、プログラマブル論理回路の回路構成領域FL上に同時に構成可能なものである。
【0013】
このように複数の回路が同時にプログラマブル論理回路上に構成可能な場合であって、しかも、前述の例の場合の回路Aのように、一度使用した回路を、後で、もう一度使用するような場合には、図14(a)のように、回路Aをプログラマブル論理回路上に構成した後、図14(d)に示すように、回路Bを回路構成領域10のうちの空きエリアに再構成することができれば、回路Aは、そのまま、プログラマブル論理回路上に残るので、回路Bでの処理の後、回路Aを再び再構成することなく、回路Aを用いた処理を実行することができる。
【0014】
このようにすれば、回路Bの後の回路Aの再構成の時間を節約できるので、全体としての処理時間を短くすることができ、処理を効率的に行うことができる。
【0015】
しかしながら、従来の情報処理システムでは、前述したように、プログラマブル論理回路を利用して処理を実行するアプリケーションソフト側では、プログラマブル論理回路上で回路として使用されている論理セルの位置が不明であるため、図14(d)に示すような再構成を行うことができなかった。
【0016】
この発明は、以上の点にかんがみ、プログラマブル論理回路上の論理セルの使用状況を把握できるようにして、効率的な処理ができるようにした情報処理システムを提供することを目的とする。
【0017】
【課題を解決するための手段】
上記課題を解決するため、請求項1の発明による情報処理システムは、
プログラムで処理を記述した一連の処理を実行するものであり、前記一連の処理の少なくとも一部が、プログラマブル論理回路で処理可能である情報処理システムにおいて、
前記プログラマブル論理回路の回路情報を記憶するコンフィギュレーションメモリを有し、
前記プログラマブル論理回路として、複数個の論理セルを有し、この複数個の論理セルのうちの、指定されたエリアの論理セルに前記回路情報がコンフィギュレーションされることにより、前記指定されたエリアに新たな論理回路を実装するものを備えるとともに、
前記コンフィギュレーションメモリとは別個に設けられ、前記プログラマブル論理回路の前記複数個の論理セルのそれぞれの状態を反映する情報を記憶する論理セル状態メモリを備え、
新たな回路情報がコンフィギュレーションされるごとに、前記論理セル状態メモリの記憶情報のうちの、当該コンフィギュレーションされた論理セルの状態を反映する情報を更新する
ことを特徴とする。
【0018】
また、請求項2の発明は、請求項1において、
前記論理セル状態メモリの前記論理セルの状態を反映する情報は、当該論理セルの回路状態は、何回目のコンフィギュレーションで構成されたかのコンフィギュレーション回数を含むものであることを特徴とする。
【0019】
また、請求項3の発明は、請求項1または請求項2の情報処理システムにおいて、
前記論理セル状態メモリの前記論理セルの状態を反映する情報は、当該論理セルを含む回路が、前記プログラマブル論理回路上で動作可能であるか否かを示す情報を含むことを特徴とする。
【0020】
【作用】
上述の構成の請求項1の発明によれば、プログラマブル論理回路の複数個の論理セルのそれぞれの状態を反映する情報を記憶する論理セル状態メモリを備えており、この論理セル状態メモリの記憶内容により、プログラマブル論理回路上の空き領域を容易に把握することができる。したがって、空き領域が、再構成しようとする回路よりも大きいときには、その空き領域に新たな回路を再構成することができ、以前にプログラマブル論理回路に構成されていた回路資源を有効に活用する効率的な処理が期待できる。
【0021】
また、請求項2の発明のように、論理セル状態メモリに記憶する論理セルの状態を反映する情報としてコンフィギュレーション回数が記憶されている場合には、できるだけ、以前にコンフィギュレーションされた回路を利用できるように、新たにコンフィギュレーションを行なう回路を構成するエリアを設定するようにすることができる。
【0022】
また、請求項3の発明においては、論理セルの状態を反映する情報には、当該論理セルを含む回路が、前記プログラマブル論理回路上で動作可能であるか否かを示す情報を含むので、以前にコンフィギュレーションされた回路であって、利用可能な回路を容易に検出することが可能である。
【0023】
【発明の実施の形態】
以下、この発明による情報処理システムの実施の形態を、図を参照しながら説明する。
【0024】
まず、この発明が適用される、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムの実施の形態の主要な概念構成を図2に示す。
【0025】
この実施の形態の情報処理システムにおいて、対象とするアプリケーションプログラム(単にプログラムという場合もある)100は、当該プログラムにより実行しようとする一連の処理を複数個の処理に分離し、分離された各処理ごとにモジュールとして構成したものである。このモジュールを、この明細書では処理モジュールと称することとする。
【0026】
この実施の形態では、プログラム100を構成する各処理モジュールは、CPU500が処理を実行するように、処理がプログラム言語で記述されたソフトウエアプログラムで構成される。このソフトウエアプログラムは、それぞれソフトウエアモジュールSMと称することとする。したがって、この実施の形態の場合、アプリケーションプログラム100は、複数個のソフトウエアモジュールSMの集合からなる。
【0027】
この実施の形態においては、記憶装置200に、ソフトウエアモジュールSMのそれぞれが行う処理と同じ処理をプログラマブル論理回路に再構成する回路情報で記述したモジュール(この明細書では、このモジュールをハードウエアモジュールと称する)HMを保存して用意する。記憶装置200は、当該情報処理システム内に設けてもよいし、ネットワーク上の記憶装置であってもよい。
【0028】
この例の場合、プログラム100は、図3に示すように、ヘッダ部HEDと、本体部PRGとからなり、本体部PRGが前述したように複数個のソフトウエアモジュールSMの集合で構成されている。そして、ヘッダ部HEDには、各ソフトウエアモジュールSMと同じ処理をプログラマブル論理回路に再構成する回路情報で記述した、対応するハードウエアモジュールHMの識別符号IDが記述されている。
【0029】
この場合、プログラム100には、同じ処理を行うソフトウエアモジュールSMとハードウエアモジュールHMとの対応が付くように識別符号IDが記述されている。例えば、この例では、本体部PRGの複数個のソフトウエアモジュールSMのプログラム上の処理実行順に従った順番で、各ソフトウエアモジュールSMに対応するハードウエアモジュールHMの識別符号IDが、ヘッダ部HEDに記述される。
【0030】
ハードウエアモジュール取得手段300は、プログラム100中に記述されている識別符号IDを用いて、ソフトウエアモジュールSMが実行する処理と同じ処理を実行するハードウエアモジュールHMを、システム内の記憶装置200から、あるいはネットワーク上の記憶装置200から取得する。そして、ハードウエアモジュール取得手段300は、取得したハードウエアモジュールHMによる回路をプログラマブル論理回路400上に再構成する。
【0031】
記憶装置200に記憶されるハードウエアモジュールHMは、プログラマブル論理回路400の回路情報からなる。図4は、この回路情報の構造を示すものである。
【0032】
すなわち、回路情報201は、図4に示すように、付加情報部であるヘッダ部202と、回路データ部であるコード部203からなる。ヘッダ部202には、回路名情報204と、入出力ポート情報205と、面積情報206とが記述される。
【0033】
回路名情報204には、自己の回路情報の識別子IDとして、この例では、当該回路情報201がプログラマブル論理回路400に構成する回路名(以下、自回路名と呼ぶ)が記述されている。この自己の回路情報の識別子IDとしての自回路名は、その回路情報201に付けられた名前でもある。この例では、アプリケーションプログラム100は、後述するように、プログラマブル論理回路400に構成する回路の指定情報として、この回路情報の識別子IDとしての自回路名を用いる。
【0034】
なお、回路名情報204は、ハードウエアモジュールHMと、ソフトウエアモジュールSMとを区別する識別部分を含むもので、この実施の形態では、その識別部分を除くと、アプリケーションプログラム100のソフトウエアモジュールSMと、ハードウエアモジュールHMとは同一の識別子を有するものである。
【0035】
ヘッダ部202の入出力ポート情報205は、回路に対する信号の流れの方向に応じて、入力(IN)、出力(OUT)または双方向(IN/OUT)のうちから選ばれるポートの種類207、論理セル(後に説明する)を単位にしたポートの位置座標(X,Y)208、およびポートのデータ幅(ビット数)209で構成される。
【0036】
面積情報206は、当該回路情報201でプログラマブル論理回路400上に構成される回路の大きさを示すもので、例えば回路構成エリアが矩形の場合には、縦方向および横方向に必要となる論理セルの個数Nx,Nyの組み合わせ(Nx,Ny)のように記述される。
【0037】
コード部(回路データ部)203は、アドレスADRとデータDTの対の集まりで構成される。アドレスADRは、プログラマブル論理回路400を構成する論理セルや配線の状態を決定するコンフィギュレーションメモリ(後に説明する)のアドレスである。データDTは、書き込まれたコンフィギュレーションメモリのアドレスに対応する論理セルや配線の状態を決める。
【0038】
プログラム100のソフトウエアモジュールSMによるソフトウエア処理は、CPU500が実行する。
【0039】
実際のアプリケーションプログラム100の処理は、処理モジュールごとに、実行モジュール決定手段600により、ソフトウエアモジュールSMまたはハードウエアモジュールHMのいずれで実行するかが選択されて、実行される。この実施の形態では、実行モジュール決定手段は、選択条件設定手段700に設定されている実行モジュール選択条件に基づいて、どちらのモジュールで処理モジュールを実行するかを決定する。
【0040】
選択条件設定手段700には、予め、例えばソフトウエアやハードウエアによる処理時間、メモリ消費量、プログラマブル論理回路の再構成時間などの種々の選択条件項目を想定し、その一つの条件項目あるいは複数個の条件項目を組み合わせて、実行モジュール選択条件を設定することができる。実行モジュール決定手段600は、ハードウエアモジュールHMと、ソフトウエアモジュールSMのうち、設定された選択条件に合致する方の処理モジュールを、実行モジュールとして選択する。なお、各処理モジュールについての前記選択条件項目の情報は、予め実行モジュール決定手段600のメモリに格納されている。
【0041】
なお、選択条件設定手段700は、実行モジュール選択条件をユーザにより設定変更可能なように設けられるものである。ユーザが、ある処理について、ハードウエアモジュールHMとソフトウエアモジュールSMのどちらを使用するかを設定しておくことも可能である。
【0042】
[実施の形態のハードウエア構成例]
図5は、この実施の形態の情報処理システム10のハードウエア構成例を示すブロック図である。この実施の形態の情報処理システム10においては、CPU11のホストバス11Bに、チップセット12に含まれるメモリコントローラ(図示せず)を介して、例えばDRAMで構成されるメインメモリ13が接続される。
【0043】
ホストバス11Bは、また、チップセット12に含まれるホスト−PCIバスブリッジ(図示せず)を介して、PCIバス14に接続される。PCIバス14には、プログラマブル論理回路インターフェース15を介してプログラマブル論理回路400と、ハードディスクインターフェース17を介してハードディスクドライブ18と、通信インターフェース19とが接続される。
【0044】
通信インターフェース19は、LANやインターネットなどのネットワーク20を介して、プログラマブル論理回路400に再構成される回路情報が格納されている記憶装置21に接続される。
【0045】
ハードディスクドライブ18により読み書きされるハードディスクには、アプリケーションプログラムが格納されている。また、アプリケーションプログラムは、ネットワーク20上の記憶装置(サーバ)に格納されている場合もある。
【0046】
また、ハードディスクドライブ18のハードディスクには、プログラマブル論理回路400に再構成される回路情報が格納されている場合もある。この例の場合、ハードディスクドライブ18により読み書きされるハードディスクは、この情報処理システム10内の記憶装置を構成する。
【0047】
この実施の形態では、ハードウエア取得手段300と、実行モジュール決定手段600が、図5に示した情報処理システム10のOSのひとつの機能としてソフトウエア的に実装される。
【0048】
次に、プログラマブル論理回路400の構造を図6に示す。プログラマブル論理回路400は、論理セル401と、配線領域402と、入出力端子403とを備えている。また、図示しないが、プログラマブル論理回路は、回路情報を格納するためのコンフィギュレーションメモリを備える。コンフィギュレーションメモリは、論理セル401内および配線領域402内のEEPROM、SRAMなどの書き換え可能なメモリ素子で構成されている。
【0049】
コンフィギュレーションメモリにアドレスADRが与えられて、新しい回路情報(図4参照)のデータが格納されると、この回路情報に従って、論理セル401内の回路構成と、論理セル401および入出力端子403を相互に接続する配線領域402の接続状態が再構成される。この一連の動作をコンフィギュレーションと呼ぶ。コンフィギュレーションメモリの一部分を書き換えることで、プログラマブル論理回路が動作中であっても、回路を部分的に再構成することができる。
【0050】
プログラマブル論理回路400に再構成された回路素子に、入出力端子403を介して、処理すべきデータが入力され、また、その処理結果が出力される。データ入力先の論理セル401と、データ出力元の論理セル401を、論理セルの位置に対応するセル座標を示した制御コードによってアプリケーションプログラムが指定する。
【0051】
次に、この発明の要部の論理セル状態メモリについて、図1を参照して説明する。この実施の形態においては、メインメモリ13の一部のメモリ領域として、図1に示すように、プログラマブル論理回路400の各論理セルのそれぞれに対応するメモリエリア(論理セル状態格納部)31を備える論理セル状態メモリ30を設ける。
【0052】
論理セル状態格納部31のそれぞれには、プログラマブル論理回路の、対応する論理セルの状態を反映する情報としての論理セル状態データSTDを記憶する。この場合、アプリケーションプログラム100が、プログラマブル論理回路400上の各論理セルの状態を、論理セル1個に対して例えば1バイトの論理セル状態データSTDを対応させて管理する。図1は、メインメモリ13に構成される論理セル状態メモリ30のメモリ空間の概念図である。
【0053】
この例の場合、1バイトの論理セル状態データSTDの先頭の1ビットには、その論理セル状態データSTDに対応する論理セルを含む回路が動作可能かを示すアクティブフラグAFを充て、残りの7ビットには、当該論理セルが何回目のコンフィギュレーションにより構成されたかを示すコンフィギュレーション番号CNoを書き込むようにする。
【0054】
例えば、説明の簡単のため、図7に示すように、プログラマブル論理回路400として、2次元に4×4個の論理セルが配列されたプログラマブル論理回路を想定する。そして、このプログラマブル論理回路の初期状態から、図7(A)で点線で囲むエリアに機能回路がコンフィギュレーションされた場合には、論理セル状態メモリ30の各論理セル状態格納部31の論理セル状態データSTDは、図7(B)のようになる。
【0055】
すなわち、機能回路がコンフィギュレーションされたエリア内の論理セルの論理セル状態データSTDのアクティブフラグAFは、アクティブ状態(プログラマブル論理回路400上で回路が利用可能である状態)を示す「1」となり、また、コンフィギュレーション番号CNoは、1回目のコンフィギュレーションであることを表す[0000001]となる。一方、機能回路がコンフィギュレーションされなかったエリア内の論理セルの論理セル状態データSTDのアクティブフラグAFは、非アクティブ状態を示す「0」となり、また、コンフィギュレーション番号CNoは、いまだコンフィギュレーションされていないことを表す[0000000]となる。
【0056】
このような論理セル状態メモリ30を備えることで、アプリケーションプログラム100は、次に、プログラマブル論理回路400上のどこに回路を構成すればよいかを判断する基礎資料を得ることができる。さらに、この実施の形態では、この論理セル状態メモリ30の各論理セル状態格納部のデータSTDの値のうちのコンフィギュレーション番号CNoと、アクティブフラグAFと、コンフィギュレーションした回路名とを関係づけた情報を、メインメモリ13は記憶するようにする。アクティブフラグAFがアクティブ「1」になっている回路は、プログラマブル論理回路400上で利用可能であることが分かる。
【0057】
なお、論理セル状態メモリ30に必要なメモリ容量は、論理セル状態データSTDが、上述の例のように、論理セル1個に対して1バイトとすると、64セル×64セル程度のプログラマブル論理回路では4kバイト程度、128セル×128セル程度のプログラマブル論理回路でも16kバイト程度となり、比較的小さいメモリ消費で済むものである。
【0058】
次に、この実施の形態の情報処理システムにおけるアプリケーション処理の例を、図8〜図11を用いて説明する。
【0059】
図8に示すように、アプリケーションプログラムが起動されると、前処理としてプログラムの先頭に書かれている、必要とされるハードウエアモジュールのリストの読み込みや、変数の設定などが行われる(ステップS101)。
【0060】
次に、メインの処理となり、ハードウエアモジュールとソフトウエアモジュールのいずれかが用いられて各処理ルーチンが実行される。すなわち、各処理ルーチンの実行前には、そのルーチンをCPU500によるソフトウエア処理を行うか、プログラマブル論理回路400上に専用ハードウエアを実装して、そこでハードウエア処理を行うかを判断する(ステップS102)。
【0061】
この判断は、前述もしたように、実行モジュール決定手段600により行うようにするが、アプリケーションプログラム100で指定されていてもよいし、実行時に、既にソフトウエアが他のCPUにより実行されていて、ソフトウエア処理では時間がかかると予測してハードウエア処理に切り換えるようにしてもかまわない。
【0062】
ステップS102において、ソフトウエア処理が選ばれた場合は、CPU500によりソフトウエア処理が行われる(ステップS103)。ハードウエア処理が選ばれた場合は、アプリケーションプログラム500は、プログラマブル論理回路400上に専用ハードウエアを実装して、処理すべきデータや制御変数などの必要なパラメータをプログラマブル論理回路400に渡し、ハードウエア処理を行った後、その結果を、このプログラマブル論理回路400から受け取る(ステップS104)。
【0063】
一つの処理ルーチンでの処理が終了すると、次の処理ルーチンへ移るか、あるいは次の処理ルーチンが無ければ、このアプリケーションプログラムを終了する(ステップS105)。
【0064】
次に、ステップS103で実行されるハードウエア処理について説明する。図10およびその続きである図11に、このハードウエア処理の詳細なフローチャートを示す。
【0065】
ハードウエア処理が開始されると、必要とされる回路がプログラマブル論理回路400上にあるかを否かを、メインメモリ13の参照情報を用いて調べる(ステップS111)。必要とされる回路がプログラマブル論理回路400上にあるか否かは、前述したように、メインメモリ13には、コンフィギュレーションした回路名と、論理セル状態メモリ30の状態データSTDであるコンフィギュレーション番号CNoおよびアクティブフラグAFとを関連付けて記憶してあるので、容易に判断可能である。すなわち、具体的には、論理セル状態メモリ30の状態データSTDのアクティブフラグAFがアクティブ状態になっている回路の回路名をメインメモリ13において検索し、それが、これから処理を行おうとするハードウエアの回路名と一致するか否かにより判別する。
【0066】
ステップS111での判別の結果、プログラマブル論理回路400上に必要な回路が存在していると判別されたときには、コンフィギュレーションを行わずに、その回路で処理を行う(ステップS123)。また、必要な回路がプログラマブル論理回路400上に存在していなければ、回路をプログラマブル論理回路400上に構成するために、次のステップS112へ進み、回路情報をハードディスクドライブ18やネットワーク20を通じて記憶装置21から入手する。
【0067】
次に、今回のコンフィギュレーションが、何回目のコンフィギュレーションかを確認する変数dを初期化する(ステップS113)。次に、メインメモリ13の論理セル状態メモリ30の論理セル状態データSTDを参照して、プログラマブル論理回路400上のコンフィギュレーション可能な空き領域を確認する。
【0068】
具体的には、各論理セルに対応するメモリ空間に書かれているコンフィギュレーション番号CNoが、変数d以下の論理セルの占める領域を確認する(ステップS114)。最初は、変数d=0なので、コンフィギュレーション番号CNo=0の論理セルの占める領域を把握する。そして、この把握した領域の大きさと、これからコンフィギュレーションする回路の面積情報から求められる当該回路の占める領域と比較する(ステップS115)。この比較の結果、回路が構成できる領域が空いていないと判別されれば、変数dの値を増やして(ステップS116)、ステップS114に戻る。回路が構成できる領域が空いていると判別されれば、次のステップS117に進んで、回路の再配置の処理を行う。
【0069】
このステップS117での回路の再配置の処理においては、プログラマブル論理回路400の空き領域中の回路が構成できる場所を特定し、ハードディスクドライブ18などの記憶装置に格納されている回路情報のなかのビットデータを、前記プログラマブル論理回路400上の特定された領域に構成するような回路データに書き替える。または、回路情報のなかの設計ツールにおけるレイアウトデータを変更してビットデータを生成する。
【0070】
次に、再配置されたビットデータを、ハードディスクドライブ18などの記憶装置からプログラマブル論理回路400のコンフィギュレーションメモリにロードする(ステップS118)。
【0071】
そして、ロードしている間に、論理セル状態メモリ30のコンフィギュレーションされる論理セルに対応する論理セル状態格納部31に、現時点でのコンフィギュレーション番号CNoの最大値CNomax に1を加えた値を書き込む(ステップS119)。そして、コンフィギュレーション番号の最大値CNomax を更新する(ステップS120)。
【0072】
そして、論理セル状態メモリ30に記憶されている論理セル状態データSTDのコンフィギュレーション番号CNoが変数d以下である論理セルの状態データSTDのアクティブフラグAFを「0」にリセットし(ステップS121)、それらのコンフィギュレーション番号の回路が、プログラマブル論理回路400上の回路として利用不可の状態とする。また、コンフィギュレーションされた回路を構成する論理セルに対応する論理セル状態データSTDのアクティブフラグAFを「1」にセットし(ステップS122)、プログラマブル論理回路400上でその回路が利用可能であることを示すようにする。
【0073】
プログラマブル論理回路400のコンフィギュレーションが完了すると、プログラマブル論理回路400に構成された当該回路で処理が行われ(ステップS123)、処理結果はアプリケーションプログラムに返す。以上のようにして、ハードウエア処理が実行される。
【0074】
図11は、コンフィギュレーションの回数と、メインメモリ13の論理セル状態メモリ30の領域の各論理セル状態格納部31のデータSTDの更新状態とを示す略図である。この図11では、説明の簡単のため、プログラマブル論理回路400の論理セル数は4×4=16としており、数値はコンフィギュレーション番号を示している。そして、論理セル状態格納部31を示す正方形にハッチングがかかっているものは、アクティブフラグAF=1(アクティブ状態)となっているものを示し、ハッチングのかかっていないものは、アクティブフラグAF=0(非アクティブ状態)となっているものを示している。
【0075】
なお、以下に説明する例では、回路は、空き領域があれば、その空き領域に左下詰めで配置し、空き領域がなければ、プログラマブル論理回路全体の左下詰めで配置することを原則とする。
【0076】
図11(A)は、システムのリセット後などの初期状態を示しており、論理セル状態メモリ30では、各論理セル状態格納部31の状態データSTDのコンフィギュレーション番号CNoは、CNo=0となっており、また、アクティブフラグAFも、AF=0となっており、回路は、プログラマブル論理回路400上のどこにも構成可能である。
【0077】
図11(B)は、1回目のコンフィギュレーションが行われた後の状態の例であり、この例では、破線で囲んだ領域32に対応する縦×横=2×4の論理セル領域に、回路aが構成されている場合である。このコンフィギュレーションされた論理セルに対応する論理セル状態格納部31のデータSTDは、コンフィギュレーション番号CNoがCNo=1、アクティブフラグAFがAF=1と、更新される。
【0078】
この時点では、プログラマブル論理回路400上の空き領域は、縦×横=2×4の論理セル領域であるので、次に構成される回路は、2×4の領域より小さい回路ならば、コンフィギュレーション番号CNoがCNo=0である論理セルの領域に構成され、この領域よりも大きい回路であるときには、回路aの領域も再構成領域となる。すなわち、コンフィギュレーション番号CNoが、CNo=0と、CNo=1の領域が、再構成対象領域となる。
【0079】
この状態から、縦×横=2×2の論理セル領域を占める回路bをコンフィギュレーションしようとする場合には、この2回目のコンフィギュレーション回路bが、図11(B)に示した、コンフィギュレーション番号CNo=0の論理セル領域より小さいので、空き領域の中で左下に配置することが原則であることを考慮すると、回路bは、図11(C)に示すように、回路aの領域32の上方の破線の領域33に配置される。
【0080】
この領域33の論理セル状態格納部31の状態データSTDとしては、そのコンフィギュレーション番号CNo=2、アクティブフラグAF=1が書き込まれる。この時点では、プログラマブル論理回路400上では、回路aと、回路bとが、ともに動作可能である。
【0081】
そして、この時点では、次に構成される回路は、2×2の領域より小さい回路ならば、コンフィギュレーション番号CNoがCNo=0である論理セルの領域に構成され、この領域よりも大きい回路であるときには、回路a、回路bの領域も再構成領域となる。すなわち、コンフィギュレーション番号CNoが、CNo=0と、CNo=1と、CNo=2の領域が、再構成対象領域となる。
【0082】
また、もしも、2回目のコンフィギュレーション回路が、縦×横=4×2の論理セル領域を占める回路cであって、図11(B)に示したコンフィギュレーション番号CNo=0の論理セル領域より大きい場合には、次のようにして再構成領域を決定する。
【0083】
すなわち、コンフィギュレーション番号CNo=0の論理セル領域とコンフィギュレーション番号CNo=1の論理セル領域とを合わせた領域と、回路cとの大きさを比較する。すると、回路cは、前記合わせた領域より小さいので、左下詰めが原則であることから、図11(D)で破線で囲んだ領域34に回路cが配置されることになる。この時点では、回路aは動作不能となり、回路cのみが動作可能である。
【0084】
次に、図6(C)に示す状態の後、さらに、3回目のコンフィギュレーションとして、縦×横=2×3の論理セル領域を占める回路dを構成する場合を考える。この場合には、回路dは、図11(C)に示したコンフィギュレーション番号CNo=0の論理セル領域より大きいので、次に、コンフィギュレーション番号CNo=0とCNo=1の論理セル領域を合わせた領域と、回路dの大きさとを比較する。すると、回路dは、この合わせた領域より小さいので、図11(E)に示すように、左下詰めが原則であることから、回路aが元々配置されていた領域の一部である破線の領域35に配置されるようにされる。
【0085】
そして、この領域35の論理セルの論理セル状態データSTDとしては、コンフィギュレーション番号CNo=3、アクティブフラグAF=1が書き込まれる。また、コンフィギュレーション番号CNo=1であった論理セルで、回路が構成されなかった領域の論理セルの論理セル状態データSTDは、そのうちのアクティブフラグAFがAF=0に書き替えられる。したがって、プログラマブル論理回路400上において、この時点で動作可能な回路は、回路bと回路cに変わる。
【0086】
また、図11(C)に示す状態の後の3回目のコンフィギュレーションとして、縦×横=2×2の論理セル領域を占める回路eを構成する場合には、この回路eの大きさは、図11(C)においてコンフィギュレーション番号CNo=0の空き領域と等しいので、図11(F)に示すように、回路eは、この空き領域に一致する破線で示す領域36に配置される。この例の場合には、プログラマブル論理回路400上においては、この時点では、回路aと、回路bと、回路cとのすべてが動作可能である。
【0087】
さらに、図11(C)に示す状態の後の3回目のコンフィギュレーションとして、縦×横=3×3の論理セル領域を占める回路fを構成する場合を考える。この場合には、この回路fの大きさは、図11(C)に示すコンフィギュレーション番号CNo=0の空き領域より大きく、また、コンフィギュレーション番号CNo=0の論理セル領域とCNo=1の論理セル領域とを合わせた領域よりも大きい。そこで、さらに、コンフィギュレーション番号CNo=0の論理セル領域とCNo=1の論理セル領域とCNo=2の論理セル領域とを合わせた領域と、回路fの大きさとを比較する。すると、回路fは、この3つの領域を合わせた領域より小さいので、回路fは、図11(G)に示すように、この領域の左下に合わせて配置される。この時点では、プログラマブル論理回路400上においては、回路cのみが動作可能である。
【0088】
以上のようにして、メインメモリ13の論理セル状態メモリ30の各論理セル状態格納部31の状態データSTDが、コンフィギュレーションが行われるごとに更新される。
【0089】
そして、上述したように、この論理セル状態メモリ30の各論理セル状態格納部31の状態データSTDのアクティブフラグAFを参照することにより、プログラマブル論理回路400上で、その時に動作可能である回路が把握できる。
【0090】
また、論理セル状態メモリ30の各論理セル状態格納部31の状態データSTDのコンフィギュレーション番号を参照することにより、空き領域の確認も容易にできるとともに、新たな回路をコンフィギュレーションするときにも、効率良く、その新たな回路の構成領域を定めることができる。
【0091】
この実施の形態においては、コンフィギュレーション番号CNoは、7ビットなので、0から127までしか番号付けができない。そのため、この実施の形態では、コンフィギュレーション番号CNoが127になった時点で、図12に示すようなメモリフル状態のコンフィギュレーション番号変換ルーチンを実行する。
【0092】
すなわち、図12に示すように、まず、メインメモリ13の論理セル状態メモリ領域30の最初の論理セル状態格納部31に格納されている状態データSTDをチェックし(ステップS131)、そのアクティブフラグAFが0であるかどうかを調べる(ステップS132)。
【0093】
アクティブフラグAF=0であれば、その論理セル状態データSTDのコンフィギュレーション番号CNoの値を0とする(ステップS133)。また、アクティブフラグAF=1であれば、その論理セル状態データSTDのコンフィギュレーション番号CNoの値によって、順次n=1から分類していく(ステップS134)。以上の処理を全論理セルに対して行う(ステップS135およびS136)。
【0094】
ここまでの処理を、論理セル状態メモリ領域30の概略図である図13を用いて説明すると、次のようになる。すなわち、図13(A)において、アクティブフラグAF=0であるコンフィギュレーション番号CNo=121である論理セルおよびコンフィギュレーション番号CNo=123である論理セルに対応するデータSTDのコンフィギュレーション番号CNoは、図13(B)に示すように、CNo=0に変換される。
【0095】
また、アクティブフラグAF=1であるコンフィギュレーション番号CNo=126の論理セルは、分類としてn=N1に、同様に、アクティブフラグAF=1であるコンフィギュレーション番号CNo=127の論理セルは、分類としてn=N2に対応づけられる。
【0096】
次に、分類された集合{N1,N2,…,Nn}に対し、分類したときのコンフィギュレーション番号CNoの値によって、小さいもの順になるように、ソーティングする(ステップS137)。図13の例では、集合{N1,N2}に対して、N1がCNo=126、N2がCNo=127なので、{N1,N2}のままである。
【0097】
次に、ソートした結果の集合に対し、最も小さいものがCNo=1、次がCNo=2というように、順に小さいものからコンフィギュレーション番号CNoの値を書き替える(ステップS138)。図13の例では、N1に対応する論理セルの状態データSTDのコンフィギュレーション番号CNoがCNo=1、N2に対応する論理セルの状態データSTDのコンフィギュレーション番号CNoがCNo=2と書き替えられる。
【0098】
そして、最後に、書き換え後のコンフィギュレーション番号の最大値を、コンフィギュレーション番号の最大値CNomax の値として(ステップS139)、このコンフィギュレーション番号変換ルーチンを終了する。
【0099】
なお、コンフィギュレーション番号CNoが127になり、そのハードウエア処理が完了した時点で、プログラマブル論理回路400のコンフィギュレーションメモリをリセットすると、アプリケーションプログラムは単純化される。
【0100】
また、コンフィギュレーション番号CNoが、ある番号になった時点でプログラマブル論理回路400のコンフィギュレーションメモリをリセットするようにすれば、何回ものコンフィギュレーションにより残されてしまう回路の断片による動作回路への影響を無くすことも可能である。
【0101】
また、アプリケーションによっては、プログラマブル論理回路上の論理セルの状態を記憶しておく論理セル状態メモリ空間の、論理セル1個に対してのメモリ量を増減することもできる。例えば、プログラマブル論理回路上でのコンフィギュレーションの回数が少ないアプリケーションでは、状態データSTDの割り当てビット数を少なく、コンフィギュレーションの回数が多いアプリケーションでは、状態データの割り当てビット数を多くするとよい。
【0102】
例えば、プログラマブル論理回路上でのコンフィギュレーションの回数が少ないアプリケーションにおいて、論理セル1個に対して状態データSTDに、例えば4ビットを割り当てると、コンフィギュレーション番号は0から7までしか利用できないが、128セル×128セルのプログラマブル論理回路で8kバイト程度の少ないメモリ消費で済むというメリットがある。
【0103】
【発明の効果】
以上説明したように、この発明によれば、動作中に回路構成を部分的に再構成することができるプログラマブル論理回路装置を用いた情報処理システムにおいて、複数の回路を空間的および時間的に再構成して利用する場合に、論理セル状態メモリに、プログラマブル論理回路上の各論理セルの状態を反映する情報を記憶させておくことにより、プログラマブル論理回路上の資源を効率的に利用することが可能となるようなコンフィギュレーションを行うことができる。
【0104】
そして、一旦構成され、処理を実行した回路で、まだプログラマブル論理回路上に残っているものは、必要ならばコンフィギュレーションしないでそのまま利用することが可能なので、コンフィギュレーションにかかる時間がなくなり、処理時間の短縮につながる。
【0105】
また、プログラマブル論理回路にコンフィギュレーションされる回数をカウントし、ある特定の回数においてコンフィギュレーションメモリをリセットすることにより、何回ものコンフィギュレーションにより残されてしまう回路の断片による動作回路への影響を無くすことが可能である。
【図面の簡単な説明】
【図1】この発明による情報処理システムの実施の形態の論理セル状態メモリを説明するための図である。
【図2】この発明による情報処理システムの実施の形態の構成の概要を説明するための機能ブロック図である。
【図3】この発明による情報処理システムの実施の形態の概要を説明するに使用する図である。
【図4】この発明による情報処理システムの実施の形態において、プログラマブル論理回路にコンフィギュレーションする回路情報の例を示す図である。
【図5】この発明による情報処理システムの実施の形態のハードウエア構成例を示すブロック図である。
【図6】この発明による情報処理システムの実施の形態に用いるプログラマブル論理回路の一例を示す図である。
【図7】この発明による情報処理システムの実施の形態におけるプログラマブル論理回路上の論理セルの状態と、論理セル状態メモリの内容との対応を説明するための図である。
【図8】この発明による情報処理システムの実施の形態における処理の概要を説明するためのフローチャートである。
【図9】この発明による情報処理システムの実施の形態における処理の要部を説明するためのフローチャートの一部を示す図である。
【図10】この発明による情報処理システムの実施の形態における処理の要部を説明するためのフローチャートの続きを示す図である。
【図11】この発明による情報処理システムの実施の形態において複数回のコンフィギュレーションを行った場合の論理セル状態メモリのデータ更新を説明するための図である。
【図12】この発明による情報処理システムの実施の形態において、論理セル状態メモリのコンフィギュレーション番号変換処理を説明するためフローチャートである。
【図13】図12の論理セル状態メモリのコンフィギュレーション番号変換処理を説明するための図である。
【図14】従来のプログラマブル論理回路へのコンフィギュレーションの方法を説明するための図である。
【符号の説明】
10 情報処理システム
11 CPU
13 メインメモリ
18 ハードディスクドライブ
20 ネットワーク
30 論理セル状態メモリ
31 論理セル状態格納部
400 プログラマブル論理回路
401 論理セル
402 配線領域
STD 論理セル状態データ
CNo コンフィギュレーション番号
AF アクティブフラグ
Claims (6)
- プログラムで処理を記述した一連の処理を実行するものであり、前記一連の処理の少なくとも一部が、プログラマブル論理回路で処理可能である情報処理システムにおいて、
前記プログラマブル論理回路の回路情報を記憶するコンフィギュレーションメモリを有し、
前記プログラマブル論理回路として、複数個の論理セルを有し、この複数個の論理セルのうちの、指定されたエリアの論理セルに前記回路情報がコンフィギュレーションされることにより、前記指定されたエリアに新たな論理回路を実装するものを備えるとともに、
前記コンフィギュレーションメモリとは別個に設けられ、前記プログラマブル論理回路の前記複数個の論理セルのそれぞれの状態を反映する情報を記憶する論理セル状態メモリを備え、
新たな回路情報がコンフィギュレーションされるごとに、前記論理セル状態メモリの記憶情報のうちの、当該コンフィギュレーションされた論理セルの状態を反映する情報を更新する
ことを特徴とする情報処理システム。 - 請求項1に記載の情報処理システムにおいて、
前記論理セル状態メモリの前記論理セルの状態を反映する情報は、当該論理セルの回路状態は、何回目のコンフィギュレーションで構成されたかのコンフィギュレーション回数を含むものであることを特徴とする情報処理システム。 - 請求項1または請求項2に記載の情報処理システムにおいて、
前記論理セル状態メモリの前記論理セルの状態を反映する情報は、当該論理セルを含む回路が、前記プログラマブル論理回路上で動作可能であるか否かを示す情報を含むことを特徴とする情報処理システム。 - 請求項1または請求項2に記載の情報処理システムにおいて、
前記論理セル状態メモリの各論理セルの状態を反映する情報を参照して、次の新たな機能回路のコンフィギュレーションが可能な、前記プログラマブル論理回路上の領域を決定することを特徴とする情報処理システム。 - 請求項1、請求項2または請求項3のいずれかに記載の情報処理システムにおいて、
前記論理セル状態メモリの各論理セルの状態を反映する情報を参照して、前記プログラマブル論理回路上で動作可能である回路を検出して、利用することを特徴とする情報処理システム。 - 請求項1または請求項2に記載の情報処理システムにおいて、
前記論理セル状態メモリの前記論理セルの状態を反映する情報が予め設定されたものに等しくなった時に、前記プログラマブル論理回路のコンフィギュレーションメモリをリセットすることを特徴とする情報処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25806498A JP3636277B2 (ja) | 1998-09-11 | 1998-09-11 | 情報処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25806498A JP3636277B2 (ja) | 1998-09-11 | 1998-09-11 | 情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000091435A JP2000091435A (ja) | 2000-03-31 |
JP3636277B2 true JP3636277B2 (ja) | 2005-04-06 |
Family
ID=17315036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25806498A Expired - Fee Related JP3636277B2 (ja) | 1998-09-11 | 1998-09-11 | 情報処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3636277B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1342158B1 (de) * | 2000-06-13 | 2010-08-04 | Richter, Thomas | Pipeline ct-protokolle und -kommunikation |
JP4022040B2 (ja) | 2000-10-05 | 2007-12-12 | 松下電器産業株式会社 | 半導体デバイス |
US7283628B2 (en) | 2001-11-30 | 2007-10-16 | Analog Devices, Inc. | Programmable data encryption engine |
JP4806417B2 (ja) * | 2005-11-25 | 2011-11-02 | パナソニック株式会社 | 論理ブロック制御システム及び論理ブロック制御方法 |
DE102007022970A1 (de) * | 2007-05-16 | 2008-11-20 | Rohde & Schwarz Gmbh & Co. Kg | Verfahren und Vorrichtung zur dynamischen Rekonfiguration eines Funkkommunikationssystems |
JP5355152B2 (ja) * | 2009-03-10 | 2013-11-27 | 三菱電機株式会社 | 動的再構成装置 |
US9075669B2 (en) | 2012-03-16 | 2015-07-07 | Nec Corporation | Time series data processing device, time series data processing method and time series data processing program storage medium |
-
1998
- 1998-09-11 JP JP25806498A patent/JP3636277B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000091435A (ja) | 2000-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8429385B2 (en) | Device including a field having function cells and information providing cells controlled by the function cells | |
US8686549B2 (en) | Reconfigurable elements | |
US6531891B1 (en) | Method and apparatus of memory clearing with monitoring memory cells | |
JP3587095B2 (ja) | 情報処理装置 | |
JP3809727B2 (ja) | 情報処理システム、回路情報管理方法および回路情報記憶装置 | |
US20110145547A1 (en) | Reconfigurable elements | |
US20070113054A1 (en) | Component with a dynamically reconfigurable architecture | |
US11301415B2 (en) | Interface discovery between partitions of a programmable logic device | |
US10885996B2 (en) | Processor having a programmable function unit | |
JP2000311156A (ja) | 再構成可能並列計算機 | |
CN103354977A (zh) | 在集成电路内进行处理器系统的扩展 | |
US7774591B2 (en) | Data processing device and data processing method | |
JP3636277B2 (ja) | 情報処理システム | |
WO2002008913A2 (en) | Memory resource arbitrator for multiple gate arrays | |
US7991909B1 (en) | Method and apparatus for communication between a processor and processing elements in an integrated circuit | |
US7149997B1 (en) | Routing with frame awareness to minimize device programming time and test cost | |
JP3489608B2 (ja) | プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法 | |
JP4664724B2 (ja) | 半導体集積回路装置および半導体集積回路装置の設計装置 | |
EP3975427A2 (en) | Logic fabric based on microsector infrastructure | |
JP4160956B2 (ja) | プログラマブル論理装置 | |
Tan et al. | A physical resource management approach to minimizing fpga partial reconfiguration overhead | |
US8890215B2 (en) | Reconfigurable elements | |
JP4853185B2 (ja) | 情報処理システム | |
JP3707360B2 (ja) | 回路機能の再構成方法、及びプログラマブル論理回路装置 | |
JP3573193B2 (ja) | 情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20041215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041228 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080114 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100114 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120114 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120114 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140114 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |