(57)【特許請求の範囲】
【請求項１】
プログラマブル論理回路の書き換え可能なロジック部を略等しいデータサイズの複数のスロットに分割し、スロット番号を前記スロットに対して割り当て、前記スロット番号に対応する前記ロジック部の領域に対して、データ又はファイルの形でソフトウェアから参照されるハードウェアロジックを順次書き込むキャッシュ方法であって、
前記スロットの個数以上のハードウェアロジックを挿入する場合に、各々の前記スロットに挿入されている前記ハードウェアロジックの履歴情報を参照して、使用する可能性の低いスロットを選択し、該選択されたハードウェアロジックの追い出しを行うことを特徴とするキャッシュ方法。
【請求項２】
前記ハードウェアロジックと前記スロットの容量又は該スロットに割り当てられたアドレス空間とを比較し、前記ハードウェアロジックが、前記スロットの容量又は該スロットに割り当てられたアドレス空間よりも大きい場合に、複数の前記スロットに対して前記ハードウェアロジックを書き込むことを特徴とする請求項１記載のキャッシュ方法。
【請求項３】
前記スロットの入出力段に設けた制御手段により、前記スロットに書き込まれたハードウェアロジックと外部のハードウェア又はソフトウェアとの調停を行うことを特徴とする請求項１又は２に記載のキャッシュ方法。
【請求項４】
前記ハードウェアロジックの割り込み信号を前記スロットに設けた割り込みポートに割り付け、前記スロットの出力段に設けた割り込み制御手段により、該割り込み制御手段が設定する優先順位に従ってプロセッサに割り込みを通知することを特徴とする請求項１乃至３のいずれか一に記載のキャッシュ方法。
【請求項５】
前記スロット及び前記制御手段に設けた切り離し手段により、ハードウェアロジックが書き込まれていない前記スロット、又は、書き換えが行われている前記スロットを論理的に分離することを特徴とする請求項１乃至４のいずれか一に記載のキャッシュ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブル論理回路を含むコンピュータシステムにおけるキャッシュ方法に関する。
【０００２】
【従来の技術】
高速なコンピュータシステムを構成する方法としては、大別して２つの方法がある。第１の方法は、図８に示すように、複数のＣＰＵ２を設け、それらを並列に動作させるマルチプロセッサ方式であり、第２の方法は、図９に示すように、ＣＰＵ２の動作を支援することにより、高速化を達成するものである。
【０００３】
マルチプロセッサの代表例としては、並列型のスーパーコンピュータや高性能なサーバー等が挙げられる。また最近では、ＪＡＶＡ（Ｒ）プロセッサを搭載するケースや、ＤＳＰ（Digital Signaling Processor）を搭載するケースなど、特定のアプリケーションに特化して性能を向上させることができるようなマルチプロセッサシステムも提案されている。
【０００４】
また、ＣＰＵ２の動作を支援する構成としては、コプロセッサを搭載する構成やＡＳＩＣ（Application Specific Integrated Circuit）を搭載する構成等がある。
【０００５】
コプロセッサの代表例として、浮動小数点演算を高速に行うＦＰＵ（Floating-point Processing Unit）がある。このＦＰＵを用いることにより、ＣＰＵがハードで浮動小数点演算を行えず、ソフトウェアで処理しなければならない場合に高速化が可能になる。他の例としては、行列の演算を高速に行うためのベクトルコプロセッサがある。これは、行列演算などの規則的な演算を高速に行うためのハードウェアを備えているものである。このようなコプロセッサを用いることにより、科学技術計算などで規則的な演算が大量に出てくる場合に、ＣＰＵだけで処理するよりも高速に処理することが可能になる。
【０００６】
一方、ＡＳＩＣは、アプリケーションに特化した機能の一部または全部をハードウェアで構成することにより、高速動作を可能にするものであり、その代表例としてゲートアレイが知られている。組み込み型のシステムでは、ＡＳＩＣを搭載することより高速でかつ小型のシステム構築が可能になるが、このＡＳＩＣは、アプリケーションに特化した機能を持つために、さまざまなアプリケーションに対応することができないという欠点がある。
【０００７】
この欠点を補うため、近年、ＦＰＧＡ（field Programmable Gate Array）やＰＬＤ（Programmable logic device）等の書き換え可能な領域を備えるデバイス（以下、これらを総称してプログラマブル論理回路と呼ぶ。）の開発が行われている（例えば、米国特許第４，７００，１８７号）。このプログラマブル論理回路は、図１０に示すように、ＬＵＴ（LookUp Table）８ａとフリップフロップ８ｂとで構成される基本セル８を配列したものであり、ＬＵＴ８ａを書き換えることにより内部のハードウェアロジックを変更することが出来る。従って、アプリケーションに応じてハードウェアロジックを書き換えることができることから、特殊な用途やサイクルの短い機器等の制御デバイスとして利用されている。
【０００８】
【発明が解決しようとする課題】
一般にコンピュータシステムの高速化を図るには、多くのハードウェアを使用すればよい。例えば、図８のマルチプロセッサシステムでは、ＣＰＵ２の個数を増やすほど、全体のパフォーマンスは向上する。また、図９のコプロセッサやＡＳＩＣを搭載するシステムでは、より多くのＣＰＵ２の仕事を肩代わりすることができるようなハードウェアを構成すれば、全体のパフォーマンスは向上する。しかしながら、このような方法ではシステムを構成する部品数が増えるため、システムの高価格化と大規模化を招いてしまう。また、これらのシステムでは、ハードウェアが提供する機能が限定的なものであるために、さまざまなアプリケーションに対応できる機能を提供することができない。
【０００９】
一方、図１０に示すプログラマブル論理回路では、アプリケーションで必要となる複数の処理の回路情報を予めメモリに格納しておき、必要に応じてメモリから読み出して書き換え可能領域に書き込むことにより、その時点で必要となる回路を生成することが可能である。従って、この方法では、回路規模の小さなプログラマブル論理回路を用いて、その回路規模以上の回路を実現することができ、コンピュータシステムの小型化と低コスト化を実現することが可能となる。しかしながら、単一の書き換え可能領域からなるプログラマブル論理回路では、ある時間で見た場合には一つのアプリケーションに特化しており、マルチタスクで動作するコンピュータに比べて高速化に限界がある。
【００１０】
そこで、マルチタスクを実現するために、複数のプログラマブル論理回路を並設し、各々を独立して駆動させる構成とすることも可能であるが、この構成ではマルチプロセッサシステムと同様にシステムの高価格化と大規模化を招き、また、プログラマブル論理回路同士を結ぶ配線が複雑になるために結果として処理が遅くなってしまう。
【００１１】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、限られたハードウェアを活用し、マルチタスクを含むさまざまなアプリケーションを高速に処理することができるキャッシュ方法を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明は、プログラマブル論理回路の書き換え可能なロジック部を略等しいデータサイズの複数のスロットに分割し、スロット番号を前記スロットに対して割り当て、前記スロット番号に対応する前記ロジック部の領域に対して、データ又はファイルの形でソフトウェアから参照されるハードウェアロジックを順次書き込むキャッシュ方法であって、前記スロットの個数以上のハードウェアロジックを挿入する場合に、各々の前記スロットに挿入されている前記ハードウェアロジックの履歴情報を参照して、使用する可能性の低いスロットを選択し、該選択されたハードウェアロジックの追い出しを行うものである。
【００１３】
本発明においては、前記ハードウェアロジックと前記スロットの容量又は該スロットに割り当てられたアドレス空間とを比較し、前記ハードウェアロジックが、前記スロットの容量又は該スロットに割り当てられたアドレス空間よりも大きい場合に、複数の前記スロットに対して前記ハードウェアロジックを書き込む構成とすることができる。
【００１４】
また、本発明においては、前記スロットの入出力段に設けた制御手段により、前記スロットに書き込まれたハードウェアロジックと外部のハードウェア又はソフトウェアとの調停を行う構成とすることができる。
【００１５】
また、本発明においては、前記ハードウェアロジックの割り込み信号を前記スロットに設けた割り込みポートに割り付け、前記スロットの出力段に設けた割り込み制御手段により、該割り込み制御手段が設定する優先順位に従ってプロセッサに割り込みを通知する構成とすることもできる。
【００１６】
また、本発明においては、前記スロット及び前記制御手段に設けた切り離し手段により、ハードウェアロジックが書き込まれていない前記スロット、又は、書き換えが行われている前記スロットを論理的に分離する構成とすることもできる。
【００２４】
このように、本発明の構成によれば、略等しいデータサイズに分割された複数のスロットに、ソフトウェアの管理下に置かれたハードウェアロジックが、調停手段、割り込み手段、切り離し手段によって制御されて、必要に応じて書き込まれるため、アプリケーションで必要な処理をハード上で高速に処理することができる。
【００２５】
また、スロットに書き込んだハードウェアロジックの登録情報や使用情報等の履歴情報を参照して、新たなハードウェアロジックと既に書き込まれているハードウェアロジックとが比較され、優先順位の低いハードウェアロジックが順次追い出されるため、ハードウェア資源を有効に利用することができ、スロット不足による処理の遅延を防止することができる。
【００２６】
【発明の実施の形態】
本発明に係るプログラマブル論理回路は、好ましい一実施の形態において、書き換え可能領域が個別にアクセス可能な複数のスロットに略等分割され、スロットの入出力段に、スロットに書き込むハードウェアロジックと外部のハードウェアやソフトウェアとの調停を行うスロット入力制御部及びスロット出力制御部と、ハードウェアロジックの割り込み制御を可能とする割り込み制御部と、各々のスロットの状態を示すステータスとを備えるものであり、この制御部で調停を取りながら、各々のスロットにソフトウェアによって管理されるハードウェアロジックを書き込むことにより、ソフトウェアの実行中に必要となる処理をハード上で高速に処理することができ、システム全体の規模を大きくすることなく、様々なアプリケーションに対応することができる汎用的なコンピュータシステムを提供することができる。
【００２７】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係るプログラマブル論理回路及びコンピュータシステム並びにキャッシュ方法について、図１乃至図７を参照して説明する。図１は、プログラマブル論理回路を含むコンピュータシステムの基本構成を示す図であり、図２は、各々のスロットの入出力インターフェース構成を示す図である。又、図３は、ハードウェアロジックの管理形態を示す図であり、図４は、アドレス空間の分割例を示す図である。又、図５は、ハードウェアロジックのリプレースの様子を示す図であり、図６及び図７は、ハードウェアロジックの書き換え処理の手順を示すフロー図である。
【００２８】
まず、本発明の基本概念について説明する。
【００２９】
ソフトウェアの高速化手段としてキャッシュがある。キャッシュは、ソフトウェアのプログラムやデータを高速にアクセスできる場所（例えば、キャッシュメモリ）に置くことにより、高速化を図る技術である。本発明の基本的な考え方は、プログラムやデータではなく、ハードウェアの機能をキャッシュする方法を提案するものである。
【００３０】
そのための構成について図１を参照して説明する。本発明の一実施例に係るコンピュータシステムは、書き換え可能領域を含むプログラマブル論理回路１と、ＣＰＵ等のプロセッサ２と、メモリ３とがＰＣＩ等のバス４によって接続され、プログラマブル論理回路１には、所定のデータサイズ（データ幅）、数量に分割された複数のスロット１０からなる書き換え可能領域と、各々のスロット１０に書き込まれたハードウェアロジックと外部のハードウェアやソフトウェアとの調停を行うスロット入力制御部１１及びスロット出力制御部１２と、ハードウェアロジックの割り込み制御を行う割り込み制御部１３と、各々のスロット１０の状態を示すステータス１４とを備えている。
【００３１】
なお、図の構成は本発明のコンピュータシステムの基本的な構成であり、プロセッサ２やメモリ３が複数接続されていてもよく、コプロセッサ等のＣＰＵの動作を支援する回路が接続されていてもよい。また、図ではプログラマブル論理回路１とＣＰＵ２とメモリ３とを別ＩＣ（ＬＳＩ）として記載しているが、実際の構成では、これらが一つのシステムＬＳＩ内に含まれる場合もある。以下では、便宜的にプログラマブル論理回路１をＣＰＵ２及びメモリ３と切り離して説明するが、プログラマブル論理回路１には、書き換え可能な領域に入出力制御部や割り込み制御部を備えた構造、更にプロセッサ２やメモリ３等を含むコンピュータシステム全体のいずれの構造も含まれるものとする。
【００３２】
まず、本発明では、高速化を実現する方法として、複数のプログラマブル論理回路１を設けるのではなく、１つのプログラマブル論理回路１の書き換え可能領域を複数のスロット１０という単位に分割することを特徴としている。このスロット１０は、図２に示すようなインターフェース信号によって機能する独立した領域であり、各々のスロット１０には自由にハードウェア機能を定義することができる。
【００３３】
インターフェース信号は、スロット入力制御部１１を介して入力される入力側インターフェース信号（Address、Data_in、Control_in）と、スロット出力制御部１２又は割り込み制御部１３に出力される出力側インターフェース信号（Data_out、Control_out、Interrupt）とがあり、各々は以下に示す役割を果たす。
【００３４】
・Address：１ビット又は複数ビット（スロット共通のビット数）からなり、このAddress信号により、スロット１０内部に埋め込まれる論理にＣＰＵ２又はソフトウェアがアクセスすることができる、
・Data_in：スロット１０内部の論理に対する入力データであり、例えば、３２ビット等の共通のビット数を持つ、
・Control_in：１ビット又は複数ビットからなり、スロットを制御するための制御信号である。例えば、Adoress信号と同期してスロット内部の論理に対して、ReadやWriteを行う、
・Data_out：スロット１０外部に対して演算結果などを出力するパスであり、例えば、３２ビット等の共通のビット数を持つ、
・Control_out：スロット１０内部の論理が外部の論理に対して要求等を通知するための出力信号である、
・(Interrupt)：オプションとして設けられるもので、ＣＰＵ２又はソフトウェアに、演算の終了通知などを行うための割り込み信号である。
【００３５】
なお、図では、スロット１０を３つに分割している例を示しているが、分割数や各々のスロット１０のデータサイズ（データ幅）は任意であり、スロット１０に書き込まれるハードウェアロジックのデータ幅やマルチタスクで処理する論理の数、コンピュータシステム全体の規模や性能等を勘案して設定することができる。但し、スロット１０のデータ幅が各々異なる場合、ハードウェアロジックのデータ幅を考慮して書き込むべきスロット１０を選択しなければならず、ハードウェアロジックの書き換えが煩雑になる可能性があるため、本発明のプログラマブル論理回路１を汎用性の高いシステムとするためには、スロット１０は略等しいデータサイズに等分割することが好ましい。
【００３６】
次に、分割された各々のスロット１０にハードウェアロジックを書き込むが、このハードウェアロジックは、図３に示すように、ファイル又はデータの形としてソフトウェア５の管理下に置き、ソフトウェア５の実行中にスロット１０への定義・リプレースが出来るようにする。
【００３７】
ここで、スロット１０は固定のビット数のアドレスやデータ幅を持つため、ハードウェアロジック６によっては空間やデータ幅が足りない場合もある。その場合には、複数のスロット１０を使用することにより解決することができる。例えば、スロットが３２ビットのデータ幅を持ち、６４ビットのハードウェアロジック６を入れたい場合には２つのスロット１０を使用すればよい。
【００３８】
なお、ハードウェアロジック６に関してもそのデータサイズ（データ幅）は任意であるが、データ幅が大きすぎると一度に多くのスロット１０を占有することになり、他のハードウェアロジック６の処理に支障をきたす場合もある。また、各々のハードウェアロジック６のデータサイズが違いすぎると、他のハードウェアロジック６との入れ替えができない場合も生じる。従って、各々のハードウェアロジック６はスロット１０の容量を考慮して構成されることが好ましい。
【００３９】
このハードウェアロジック６は独立に動作可能な部分であり、メモリ３へのアクセスやＣＰＵ２等のプロセッサとのアクセスは独自に行うことができるようにする必要がある。そこで、プロセッサ２から個別にアクセスすることが出来るようにするために、例えば、図４に示すように、アドレスの空間を分割し、アドレス（Slot1 offset等）を用いて個別制御が出来るようにしている。
【００４０】
また、本発明の構造では、各ハードウェアロジック６が個別に動作を行うので、外部のハードウェアやソフトウェアとの調停を行う必要がある。そこで、プログラマブル論理回路１内にスロット入力制御部１１、スロット出力制御部１２等の調停ロジックを設け、これにより外部のハードウェアやソフトウェア等との全体の調整を行う。また、指定された処理の終了通知や内部ステータスの変化などを通知するため、各スロット１０からの割り込み要求を受け付け、ＣＰＵ２へ割り込みを通知する割り込み制御部１３を搭載している。なお、このスロット入力制御部１１、スロット出力制御部１２、割り込み制御部１３は、書き換え可能領域にプログラマブルに形成しても、書き換え可能領域外部に固定ロジックとして形成してもよい。
【００４１】
また、各々のスロット１０は個別に書き換え可能であるが、あるスロットが書き換えを行っている間は、他のスロットは動作している必要がある。このため、各スロット及びその調停ロジック（スロット入力制御部１１及びスロット出力制御部１２）には、書き換え中のスロット１０を論理的に切り離すロジック（図示せず）を搭載している。
【００４２】
更に、本発明のプログラマブル論理回路１は、ハードウェアのキャッシュであるので、不必要になったハードウェアロジック６の追い出しが必要である。そこで、本発明では、各ハードウェアロジック６がどのスロット１０に入り、いつ使用されたか等の履歴をとり、その履歴情報から追い出すべきハードロジックを選択できるようにしている。
【００４３】
具体的に説明すると、図５に示すように、スロット（１）に音楽プレーヤー、スロット（２）にペイントツール、スロット（３）にゲーム１のハードウェアロジック６が書き込まれおり、各々のハードウェアロジック６が図の塗りつぶし領域で使用されているとすると、スロット（１）の音楽プレーヤーのハードウェアロジック６は一旦使用された後、使用されない状態が続いているため、スロット（１）から追い出しても問題ないと考えられる。そこで、新たなハードウェアロジック６が要求された時点（図の矢印の時点）で音楽プレーヤーを追い出し、代わりにゲーム２をリプレースしている。
【００４４】
このように、各々のスロット１０に書き込まれたハードウェアロジック６の書き込み時期、使用頻度、不使用期間等の履歴情報と、スロット１０の残数や処理が予定されている論理数等を勘案して、使用される可能性の低いハードウェアロジックを適宜追い出すことにより、スロット１０の空きを確保し、次のハードウェアロジック６の書き込みに対して待ち時間が生じないようにして処理の遅延を防止している。
【００４５】
以上説明したように、ハードウェアの機能をキャッシュするために、書き換え可能な領域を汎用的なデータサイズ、数量のスロット１０に分割し、各々のスロット１０に書き込まれたハードウェアロジック６と外部のハードウェア又はソフトウェアとの調停を行うためのスロット入力制御部１１、スロット出力制御部１２、割り込み制御部１３、切り離しロジックを設けることにより、ソフトウェアの管理下に置かれたハードウェアロジック６を、必要に応じてスロット１０に書き込んで機能させることができるため、複数のプログラマブル論理回路を設ける場合のようにシステム全体の規模を拡大することなく、高速処理を実現することができる。
【００４６】
また、各スロット１０に書き込まれたハードウェアロジック６の使用状況を監視し、履歴情報を参照して、ハードウェアロジックをスロット１０から追い出しているため、次のハードウェアロジック６を書き込むべきスロット１０がなく処理が滞るという問題を防止し、システム全体としての処理の高速化を図っている。
【００４７】
次に、上記構成のプログラマブル論理回路１にハードウェアロジック６を書き込む手順について具体的に説明する。
【００４８】
本発明のプログラマブル論理回路１は、上述したようにハードウェアをキャッシュするものであり、アプリケーション側からの要求（例えば、関数コール）が送信されてから、この要求に対応するハードウェアロジック６を空きスロット１０に書き込んでハード上で処理し、その処理結果をアプリケーションに返送する。そこで、アプリケーションとプログラマブル論理回路１とを仲介する手段が必要となるが、ここでは、この制御をハードマクロライブラリ管理部により行っている。
【００４９】
このハードマクロライブラリ管理部は、スロット１０に入れるハードウェアロジック６をライブラリとして持ち、アプリケーション側からの要求により、必要なハードウェアロジック６をスロット１０に挿入し、動作させるソフトウェアであり、このソフトウェアがＣＰＵ２やプログラマブル論理回路部１のスロット入力制御部１１やスロット出力制御部１２、ステータス１４にアクセスしてハードウェアロジック６の書き換え制御を行う。
【００５０】
以下、アプリケーションとハードマクロライブラリ管理部とプログラマブル論理回路部１とで行われる処理を図６及び図７に基づいて説明する。まず、図６に示すように、アプリケーション（例えば、画像処理プログラム）の動作において、画像処理関数等の演算が必要になった場合、アプリケーションはハードマクロライブラリ管理部に対して関数コールを行う。この関数コールに対して、ハードマクロライブラリ管理部では、ハードウェアロジック６の登録情報を参照して、この関数の演算を行うハードウェアロジック６が既にスロット１０に挿入されているか否かを調査する。
【００５１】
そして、対応するハードウェアロジックがスロット１０に挿入されていない場合は、ハードマクロライブラリ管理部は、プログラマブル論理回路１のステータス１４にアクセスして各々のスロット１０の状態を調べ、スロット１０に空きがあるか否かを確認する。
【００５２】
ここで、スロット１０に空きがない場合は、新たなハードウェアロジック６を書き込むことができないため、関数の演算ができずに処理が滞ってしまうが、本発明のプログラマブル論理回路１では、各々のスロット１０に書き込まれているハードウェアロジックの履歴情報を参照して、使用されていないハードウェアロジックが適宜追い出されるため、スロット１０の空きを確保することができ、処理が滞るという問題を回避している。
【００５３】
次に、スロット１０に空きがあることを確認したら、ハードマクロライブラリ管理部は、ライブラリの中から対応するハードウェアロジック６を取り出し、スロット入力制御部１１を介して図２に示す入力インターフェース信号により、該スロット１０に書き込みを開始する。その際、ハードウェアロジック６とスロット１０の容量とが比較され、例えば、ハードウェアロジック６のデータ幅がスロット１０のデータ幅より大きい場合は、複数のスロット１０に対して書き込みを行う。また、書き込み中は他のスロット１０の動作に支障が生じないように、スロット１０及び調停ロジック（スロット入力制御部１１及びスロット出力制御部１２）に設けた切り離しロジックにより、書き込み中のスロット１０を論理的に切り離す。そして、スロット出力制御部１２は、スロット１０への書き込みが終了したら書き込み終了信号をハードマクロライブラリ管理部に送出する。
【００５４】
次に、ハードマクロライブラリ管理部は、スロット入力制御部１１を介してスロット１０のControl inに制御信号を送り処理の起動を命令すると共に、Data inに関数の演算に必要なデータを送る。そして、プログラマブル論理回路１では、ハードウェアロジック６により関数の演算を行い、演算が終了したらData outからハードマクロライブラリ管理部に演算結果を送ると共に、interruptから割り込み制御部１３を介してＣＰＵ２に割り込み信号を送り、演算が終了したことを通知する。そして、ハードマクロライブラリ管理部はその演算結果をアプリケーションに送って一連の処理が終了する。
【００５５】
上記フローは関数コールに対応するハードウェアロジック６がスロット１０に挿入されていない場合の手順であるが、関数を演算するハードウェアロジック６が既にスロット１０に挿入されている場合には、図７に示すように、ハードマクロライブラリ管理部は、ステータス１４にスロット１０の空き状態を確認することなく、スロット入力制御部１１を介してスロット１０のControl inに制御信号を送り処理の起動を命令すると共に、Data inに関数の演算に必要なデータを送る。
【００５６】
そして、プログラマブル論理回路１では、ハードウェアロジックにより関数の演算を行い、演算が終了したらData outからハードマクロライブラリ管理部に演算結果を送ると共に、interruptから割り込み制御部１３を介してＣＰＵ２に割り込み信号を送り、演算が終了したことを通知する。そして、ハードマクロライブラリ管理部はその演算結果をアプリケーションに送って一連の処理が終了する。
【００５７】
このように、本発明のプログラマブル論理回路１では、アプリケーションから関数コールがあった場合に、自動的に、該関数の演算を行うハードウェアロジック６がスロット１０に挿入されているか、スロット１０に空きがあるかが調査され、挿入されていない場合に該ハードウェアロジック６がスロット１０に書き込まれ、ハード上で演算を行って演算結果が返送されるため、関数コールに対して迅速かつ円滑な処理を行うことができる。
【００５８】
【発明の効果】
以上説明したように、本発明のプログラマブル論理回路及びコンピュータシステム並びにキャッシュ方法によれば、下記記載の効果を奏する。
【００５９】
本発明の第１の効果は、システム全体の規模を大きくすることなく、マルチタスクを含む処理を高速に行うことができることができる。
【００６０】
その理由は、書き換え可能領域を複数のスロットに分割し、ソフトウェアで管理されたハードウェアロジックを必要に応じてスロットに書き込んで処理を行うため、書き換え可能領域を効率的に利用することができるからである。また、スロット入力制御部やスロット出力制御部等の調停手段や割り込み制御部を用いて外部のハードウェアやソフトウェアと調停するため、相互の処理を円滑に実行することができるからである。
【００６１】
また、本発明の第２の効果は、汎用的なプログラマブル論理回路を構築することができるということである。
【００６２】
その理由は、書き換え可能領域を複数のスロットに分割するに際して、スロットのデータ幅や分割数を一般的なハードウェアロジックに合わせて設定し、また、スロットよりも大きなハードウェアロジックを書き込む場合は、複数のスロットに書き込むことができるため、どのようなハードウェアロジックにも対応することができるからである。
【００６３】
また、本発明の第３の効果は、処理の遅延を防止し、演算要求に対して迅速に対応することができるということである。
【００６４】
その理由は、各々のスロットに書き込まれたハードウェアロジックの履歴情報を参照して、使用されていないハードウェアロジックの追い出しを行っているため、スロットの占有を防止し、書き込み待ちの発生を防止することができるからである。
【図面の簡単な説明】
【図１】本発明の一実施例に係るコンピュータシステムの基本構成を示すブロック図である。
【図２】本発明の一実施例に係るプログラマブル論理回路を構成するスロットのインターフェース構成を示す図である。
【図３】スロットに書き込まれるハードウェアロジックの管理形態を示す図である。
【図４】本発明の一実施例に係るプログラマブル論理回路のスロットに対するアドレス空間の分割例を示す図である。
【図５】ハードウェアロジックのリプレース動作を示す図である。
【図６】本発明の一実施例に係るプログラマブル論理回路にハードウェアロジックを書き込む手順を示すフロー図である。
【図７】本発明の一実施例に係るプログラマブル論理回路にハードウェアロジックを書き込む手順を示すフロー図である。
【図８】従来のマルチプロセッサシステムの基本構成を示す図である。
【図９】従来のプロセッサ支援システムの基本構成を示す図である。
【図１０】従来のプログラマブル論理回路の基本構成を示す図である。
【符号の説明】
１  プログラマブル論理回路
２  ＣＰＵ
３  メモリ
４  バス
５  ソフトウェア
６  ハードウェアロジック
７  コプロセッサ又はＡＳＩＣ
８  単位セル
８ａ  ＬＵＴ
８ｂ  フリップフロップ
１０  スロット
１１  スロット入力制御部
１２  スロット出力制御部
１３  割り込み制御部
１４  ステータス
【図１】
0003952856.tif 000002
【図２】
0003952856.tif 000003
【図３】
0003952856.tif 000004
【図４】
0003952856.tif 000005
【図５】
0003952856.tif 000006
【図６】
0003952856.tif 000007
【図７】
0003952856.tif 000008
【図８】
0003952856.tif 000009
【図９】
0003952856.tif 000010
【図１０】
0003952856.tif 000011