JP4088763B2 - コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 - Google Patents
コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 Download PDFInfo
- Publication number
- JP4088763B2 JP4088763B2 JP2002173181A JP2002173181A JP4088763B2 JP 4088763 B2 JP4088763 B2 JP 4088763B2 JP 2002173181 A JP2002173181 A JP 2002173181A JP 2002173181 A JP2002173181 A JP 2002173181A JP 4088763 B2 JP4088763 B2 JP 4088763B2
- Authority
- JP
- Japan
- Prior art keywords
- logic
- slot
- hardware
- hardware logic
- software
- 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
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータシステム並びにキャッシュ方法に関し、特に、柔軟かつ高速に処理を実行することができるプログラマブル論理回路を備えたコンピュータシステム及び該コンピュータシステムに適したハードウェアロジック/ソフトウェアロジック並びにキャッシュ方法に関する。
【0002】
【従来の技術】
高速なコンピュータシステムを構成する方法としては、大別して2つの方法がある。第1の方法は、図11に示すように、複数のCPU2を設け、それらを並列に動作させるマルチプロセッサ方式であり、第2の方法は、図12に示すように、CPU2の動作を支援することにより、高速化を達成するものである。
【0003】
マルチプロセッサの代表例としては、並列型のスーパーコンピュータや高性能なサーバー等が挙げられる。また最近では、JAVA(R)プロセッサを搭載するケースや、DSP(Digital Signaling Processor)を搭載するケースなど、特定のアプリケーションに特化して性能を向上させることができるようなマルチプロセッサシステムも提案されている。
【0004】
また、CPU2の動作を支援する構成としては、コプロセッサを搭載する構成やASIC(Application Specific Integrated Circuit)を搭載する構成等がある。
【0005】
コプロセッサの代表例として、浮動小数点演算を高速に行うFPU(Floating-point Processing Unit)がある。このFPUを用いることにより、CPUがハードで浮動小数点演算を行えず、ソフトウェアで処理しなければならない場合に高速化が可能になる。他の例としては、行列の演算を高速に行うためのベクトルコプロセッサがある。これは、行列演算などの規則的な演算を高速に行うためのハードウェアを備えているものである。このようなコプロセッサを用いることにより、科学技術計算などで規則的な演算が大量に出てくる場合に、CPUだけで処理するよりも高速に処理することが可能になる。
【0006】
一方、ASICは、アプリケーションに特化した機能の一部または全部をハードウェアで構成することにより、高速動作を可能にするものであり、その代表例としてゲートアレイが知られている。組み込み型のシステムでは、ASICを搭載することより高速でかつ小型のシステム構築が可能になるが、このASICは、アプリケーションに特化した機能を持つために、さまざまなアプリケーションに対応することができないという欠点がある。
【0007】
この欠点を補うため、近年、FPGA(Field Programmable Gate Array)やPLD(Programmable logic device)等の書き換え可能な領域を備えるデバイス(以下、これらを総称してプログラマブル論理回路と呼ぶ。)の開発が行われている(例えば、米国特許第4,700,187号)。このプログラマブル論理回路は、図13に示すように、LUT(Look Up Table)8aとフリップフロップ8bとで構成される基本セル8を配列したものであり、LUT8aを書き換えることにより内部のハードウェアロジックを変更することが出来る。従って、アプリケーションに応じてハードウェアロジックを書き換えることができることから、特殊な用途やサイクルの短い機器等の制御デバイスとして利用されている。
【0008】
【発明が解決しようとする課題】
一般にコンピュータシステムの高速化を図るには、多くのハードウェアを使用すればよい。例えば、図11のマルチプロセッサシステムでは、CPU2の個数を増やすほど、全体のパフォーマンスは向上する。また、図12のコプロセッサやASICを搭載するシステムでは、より多くのCPU2の仕事を肩代わりすることができるようなハードウェアを構成すれば、全体のパフォーマンスは向上する。しかしながら、このような方法ではシステムを構成する部品数が増えるため、システムの高価格化と大規模化を招いてしまう。また、これらのシステムでは、ハードウェアが提供する機能が限定的なものであるために、さまざまなアプリケーションに対応できる機能を提供することができない。
【0009】
一方、図13に示すプログラマブル論理回路では、アプリケーションで必要となる複数の処理の回路情報を予めメモリに格納しておき、必要に応じてメモリから読み出して書き換え可能領域に書き込むことにより、その時点で必要となる回路を生成することが可能である。従って、この方法では、回路規模の小さなプログラマブル論理回路を用いて、その回路規模以上の回路を実現することができ、コンピュータシステムの小型化と低コスト化を図ることができる。しかしながら、単一の書き換え可能領域からなるプログラマブル論理回路では、ある時間で見た場合には一つのアプリケーションに特化しており、マルチタスクで動作するコンピュータに比べて高速化に限界がある。
【0010】
そこで、本願発明者は先願(特願2002−153586号)において、コンピュータを高速化させる手段として、プログラマブル論理回路の書き換え可能ロジック部をスロット単位に分割し、各々のスロットにソフトウェア管理化にあるハードウェアロジックをロードすることにより、システム全体の規模を大きくすることなくマルチタスクを含む処理を高速に行うことができるプログラマブル論理回路及びコンピュータシステム並びにハードウェアのキャッシュ方法を提案している。
【0011】
上記先願のプログラマブル論理回路により、各々のシステムに適した柔軟かつ高速なロジックをつくりあげることができるが、書き換え可能ロジック部を複数のスロットに分割するに際し、ロジック部の規模に応じてスロットの分割数が制限されるため、動作中のスロットの数よりも多いハードウェアが要求された場合に、スロットに空きができるまで該当するプロセスが待たされてしまい、処理の高速化が図れない場合が生じる。
【0012】
また、固定ハードウェアロジックしか持たない場合はもちろん、書き換え可能ロジック部をスロットに分割しているシステムでも、要求される処理に対応するハードウェアロジックがない場合、高速化が図れないだけでなく、実行そのものが不可能になってしまう。
【0013】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、ハードウェア/ソフトウェアのいずれかを用い、柔軟かつ高速に処理を実行することができ、更に、複数のスロットに分割された書き換え可能ロジック部を有するプログラマブル論理回路を備える構成において、ハードウェア機能のキャシングをより効果的に行うことができるコンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法を提供することにある。
【0014】
【課題を解決するための手段】
上記目的を達成するため、本発明のコンピュータシステムは、所定の論理規模の複数のスロットに分割された書き換え可能なロジック部を備え、各々の前記スロットが独立して書き換え可能に制御されるプログラマブル論理回路を少なくとも備えるコンピュータシステムであって、前記スロットに挿入されるハードウェアロジック及び該ハードウェアロジックと同等の機能を有するソフトウェアロジックを備え、前記ハードウェアロジックと前記ソフトウェアロジックとを選択可能に管理するための管理部を有し、前記管理部は、各々の前記スロットに付与された、未使用/置き換え可能/置き換え不可の3つの状態を示すフラグを参照して、要求される処理に該当するハードウェアロジックを書き込むスロットを調査する機能を備え、前記スロットに空きがない場合に、置き換え可能なスロットを選択し、該スロットに前記ハードウェアロジックを書き込むものである。
【0017】
本発明においては、前記スロットに挿入される前記ハードウェアロジック毎に、使用回数又は扱うデータ量の閾値が予め定義され、前記使用回数又は前記データ量が前記閾値を越えた場合に、前記フラグの状態が変更される構成とすることができる。
【0022】
また、本発明のキャッシュ方法は、所定の論理規模の複数のスロットに分割された書き換え可能なロジック部を備え、各々の前記スロットが独立して書き換え可能に制御されるプログラマブル論理回路と、プロセッサと、メモリとを少なくとも備えるコンピュータシステムにおけるキャッシュ方法であって、前記スロットに挿入されるハードウェアロジック及び該ハードウェアロジックと同等の機能を有するソフトウェアロジックを備え、管理部によって前記ハードウェアロジックと前記ソフトウェアロジックとを選択可能に管理し、処理の要求に対して、前記ハードウェアロジック又は前記ソフトウェアロジックのいずれか一方を選択し、前記管理部では、各々の前記スロットに付与した、未使用/置き換え可能/置き換え不可の3つの状態を示すフラグを参照して、要求される処理に該当するハードウェアロジックを書き込むスロットを調査し、前記スロットに空きがない場合に、置き換え可能なスロットを選択し、該スロットに前記ハードウェアロジックを書き込むものである。
【0023】
このように、本発明の構成によれば、同等の機能を有するハードウェアロジックとソフトウェアロジックとをソフトウェア(管理部)の管理下に置き、システムの状態に応じて適宜ハードウェア/ソフトウェアの選択が行われるため、対応するハードウェアロジックがないために処理が滞るという問題を解決することができる。
【0024】
特に、書き換え可能ロジック部を複数のスロットに分割し、各々のスロットが書き換え可能に制御されるプログラマブル論理回路を備えるシステムでは、空きスロットの有無やスロットで扱うデータ量等を考慮してハードウェア/ソフトウェアの選択が行われるため、スロット分割数以上の処理が要求された場合であってもハードウェアロジック又はソフトウェアロジックのいずれかで処理を実行することができ、柔軟かつ高速なシステムを構築することができる。
【0025】
更に、各々のスロットに、未使用/置き換え不可/置き換え可能等の種別を示すフラグを付加することによって、該フラグを参照してハードウェア/ソフトウェアの選択が行われるため、空きスロットがない場合でも、置き換え可能なスロットに新たなハードウェアロジックを書き込むことができ、更に柔軟性、高速性を高めることができる。
【0026】
【発明の実施の形態】
本発明に係るコンピュータシステムは、好ましい一実施の形態において、略等しい論理規模の複数のスロットに分割された書き換え可能なロジック部を備え、各々の前記スロットが独立して書き換え可能に制御されるプログラマブル論理回路と、プロセッサと、メモリとを少なくとも備え、同等の機能を有するハードウェアロジックとソフトウェアロジックとがソフトウェア(例えば、ハードマクロライブラリ管理部)によって選択可能に管理され、要求された処理に対して、対応するハードウェアロジックの有無、空きスロットの有無、置き換え可能なスロットの有無、スロットが扱うデータ量等を参照して、ハードウェアロジック/ソフトウェアロジックの選択が行われるため、多数の処理が要求された場合であっても柔軟かつ高速に対応することができる。
【0027】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係るコンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法について、図1乃至図10を参照して説明する。図1は、本発明の一実施例に係るコンピュータシステムの基本構成及びキャッシュ方法を模式的に示す図であり、図2は、本発明のコンピュータシステムに適用するプログラマブル論理回路の構成を示す図、図3は、該プログラマブル論理回路のスロットの入出力インターフェース構成を示す図である。また、図4及び図5は、本発明のハードウェア/ソフトウェアロジックの選択例を示す図であり、図6は、データ量の違いによるハードウェア/ソフトウェアロジックの性能を比較する図である。また、図7及び図8は、スロットの状態を示すフラグを説明する図であり、図9及び図10は、本発明のキャッシュ方法の具体的な手順を示すフロー図である。
【0028】
従来技術において記載したように、本願出願人は先願において、コンピュータを高速化させる手段として、書き換え可能ロジック部をスロット単位に分割したプログラマブル論理回路及びコンピュータシステムを提案している。このプログラマブル論理回路及びコンピュータシステムを用いることにより、各々のスロットにソフトウェア管理化にあるハードウェアロジックを自由にロードすることができ、システムに適した柔軟かつ高速なロジックをつくりあげることができるが、動作中のスロットの数よりも多いハードウェアが要求された場合などに処理が滞る可能性がある。また、固定ハードウェアロジックを用いるコンピュータシステムにおいても、要求された処理に対応するハードウェアロジックがない場合に、実行そのものが不可能になるという問題がある。
【0029】
そこで本発明では、ハードウェアロジックのみならず、ハードウェアロジックと同等の機能を有するソフトウェアロジックもソフトウェア(例えば、ハードマクロライブラリ管理部)の管理下に置き、システムの状況(空きスロットがない場合や要求される処理に対応するハードウェアロジックがない場合等)に応じてソフトウェアロジックで処理を行うことにより、柔軟かつ高速な処理を実現するものである。
【0030】
本発明の考え方は、固定ハードウェアロジックを備えるコンピュータシステムにおいても適用できるが、先願記載のプログラマブル論理回路を用いることによって、より柔軟なシステムの構築が可能となる。そこで、本発明のコンピュータシステム及びキャッシュ方法について説明する前に、先願記載のプログラマブル論理回路について説明する。
【0031】
先願発明の基本的な考え方は、プログラムやデータではなく、ハードウェアの機能をキャッシュする方法を提案するものであり、図2に示すように、書き換え可能領域を含むプログラマブル論理回路1と、CPU等のプロセッサ2と、メモリ3とがPCI等のバス4によって接続されるコンピュータシステムにおいて、プログラマブル論理回路1に、所定の論理規模(容量又はデータサイズと同義、論理規模の表現としてデータ幅を用いることもできる。)、数量に分割された複数のスロット10からなる書き換え可能領域と、各々のスロット10に書き込まれたハードウェアロジックと外部のハードウェアやソフトウェアとの調停を行うスロット入力制御部11及びスロット出力制御部12と、ハードウェアロジックの割り込み制御を行う割り込み制御部13と、各々のスロット10の状態を示すステータス14とを備えるものである。すなわち、先願では高速化を実現する方法として、複数のプログラマブル論理回路1を設けるのではなく、1つのプログラマブル論理回路1の書き換え可能領域を複数のスロット10という単位に分割することを特徴としている。
【0032】
このスロット10は、図3に示すようなインターフェース信号によって機能する独立した領域であり、各々のスロット10には自由にハードウェア機能を定義することができる。
【0033】
このインターフェース信号は、スロット入力制御部11を介して入力される入力側インターフェース信号(Address、Data_in、Control_in)と、スロット出力制御部12又は割り込み制御部13に出力される出力側インターフェース信号(Data_out、Control_out、Interrupt)とに分類され、各々は以下に示す役割を果たす。
【0034】
・Address:1ビット又は複数ビット(スロット共通のビット数)からなり、このAddress信号により、スロット10内部に埋め込まれる論理にCPU2又はソフトウェアがアクセスすることができる、
・Data_in:スロット10内部の論理に対する入力データであり、例えば、32ビット等の共通のビット数を持つ、
・Control_in:1ビット又は複数ビットからなり、スロットを制御するための制御信号である。例えば、Address信号と同期してスロット内部の論理に対して、ReadやWriteを行う、
・Data_out:スロット10外部に対して演算結果などを出力するパスであり、例えば、32ビット等の共通のビット数を持つ、
・Control_out:スロット10内部の論理が外部の論理に対して要求等を通知するための出力信号である、
・(Interrupt):オプションとして設けられるもので、CPU2又はソフトウェアに、演算の終了通知などを行うための割り込み信号である。
【0035】
そして、分割された各々のスロット10にハードウェアロジック6を書き込むが、このハードウェアロジック6は、図14に示すように、ファイル又はデータの形としてソフトウェア(例えば、ハードマクロライブラリ管理部5)の管理下に置き、ソフトウェアの実行中にスロット10への定義・リプレースが出来るようにしている。また、このハードウェアロジック6は独立に動作可能な部分であり、メモリ3へのアクセスやCPU2等のプロセッサとのアクセスを独自に行うことができるようにするために、アドレスの空間を分割している。
【0036】
また、各ハードウェアロジック6が個別に動作を行うので、外部のハードウェアやソフトウェアとの調停を行う必要がある。そこで、プログラマブル論理回路1内にスロット入力制御部11、スロット出力制御部12等の調停ロジックを設け、これにより外部のハードウェアやソフトウェア等との全体の調整を行う。また、指定された処理の終了通知や内部ステータスの変化などを通知するため、各スロット10からの割り込み要求を受け付け、CPU2へ割り込みを通知する割り込み制御部13を搭載している。このスロット入力制御部11、スロット出力制御部12、割り込み制御部13は、書き換え可能領域にプログラマブルに、又は、書き換え可能領域外部に固定ロジックとして形成される。
【0037】
また、各々のスロット10は個別に書き換え可能であるが、あるスロットが書き換えを行っている間は、他のスロットは動作している必要がある。このため、各スロット及びその調停ロジック(スロット入力制御部11及びスロット出力制御部12)には、書き換え中のスロット10を論理的に切り離すロジック(図示せず)を搭載している。
【0038】
なお、図2の構成は先願のコンピュータシステムの基本的な構成であり、プロセッサ2やメモリ3が複数接続されている構成や、コプロセッサ等のCPUの動作を支援する回路が接続されている構成も含まれる。また、図ではプログラマブル論理回路1とCPU2とメモリ3とを別IC(LSI)として記載しているが、実際の構成では、これらが一つのシステムLSI内に含まれる場合もある。
【0039】
また、スロット10の分割数や各々のスロット10の論理規模は任意であり、スロット10に書き込まれるハードウェアロジックの論理規模やマルチタスクで処理する論理の数、コンピュータシステム全体の規模や性能等を勘案して設定され、プログラマブル論理回路1を汎用性の高いシステムとする場合には、スロット10は略等しい論理規模に等分割される。同様に、ハードウェアロジック6もその論理規模は任意であるが、論理規模が大きすぎると一度に多くのスロット10を占有したり、各々のハードウェアロジック6の論理規模が違いすぎると、他のハードウェアロジック6との入れ替えができない場合も生じるため、各々のハードウェアロジック6はスロット10の論理規模を考慮して構成される。
【0040】
上記構成の先願に係るプログラマブル論理回路1を用いることにより、適宜ハードウェアロジック6をスロット10に挿入して処理を行うことができるが、スロット数よりも多い処理が要求された場合であっても対応可能とするために、本発明では、スロット10に挿入されるハードウェアロジック6と同じ機能を持つソフトウェアロジック9を用意する。または、ハードウェアロジック6がない場合にその代わりになるソフトウェアロジック9を用意する。そして、図1に示すように、ハードウェアロジック6とソフトウェアロジック9とをソフトウェア(例えば、ハードマクロライブラリ管理部5)の管理下に置き、ソフトウェアを用いてハードウェアロジック6とソフトウェアロジック9とを状況に応じて自由に選択することが出来るようにシステムを構成する。
【0041】
ハードウェアロジック6とソフトウェアロジック9の選択基準としてはいくつか考えられる。第1に、スロット10の空き状況に応じて選択する方法がある。例えば、図4に示すように、ハードウェアロジック6が必要としているスロット数(図ではハードウェアロジック(1)〜(4)の4つ)よりも空きスロット数(図ではスロット(1)〜(3)の3つ)が少ない場合は、ハードウェアロジック(4)に代えてソフトウェアロジック(4)を選択することにより、該当プロセスをストップさせることなく実行することができる。
【0042】
また、第2は、該当するハードウェアロジック6がない場合である。図1では、n個のハードウェアロジック6に対してn個のソフトウェアロジック9を保有しているが、ハードウェアロジック6とソフトウェアロジック9とは完全に対応させる必要はなく、特定の処理に関してはソフトウェアロジック9のみを設けても良い。この場合、例えば図5では、システム内にハードウェアロジック(2)がないため、ソフトウェアロジック(2)を選択することになる。なお、ハードウェア機能のキャッシングを提供できないシステムにおいても、該当するハードウェアロジック(2)がない場合にソフトウェアロジック(2)で代行することができ、従来システムや他システムとの互換性を確保することもできる。
【0043】
第3に、扱うデータの量に応じた選択が挙げられる。例えば、扱うデータ量が少ない場合、ソフトウェアロジック9での実行の方が早い場合がある。これは、スロット10内のハードウェア機能で実行する場合には、起動と終結のオーバーヘッドが入ってしまうからである。例えば、図6に示すように、データ量が1MBと小さい場合は、ハードウェアロジック6の処理自体はソフトウェアロジック9よりも早いが、起動と終結のオーバーヘッドを加味すると結果的にソフトウェアロジック9の方が早くなる。また、データ量が5MBと大きい場合は、ソフトウェアロジック9による処理では1MBの5倍の時間がかかるが、ハードウェアロジック6では起動と終結のオーバーヘッドは同じであり、結果的にハードウェアロジック6の方が処理が早くなる。従って、扱うデータの量に応じてハードウェア/ソフトウェアを選択することにより、システムの高速化を図ることができる。
【0044】
次に、ハードウェアロジック6が不当にスロット10を占有しないような工夫を行う。その方法として、図7に示すように、スロット10毎にハードウェアロジック6の使用状況を示すフラグ15を設け、例えば、”未使用/置き換え不可/置き換え可”等が識別できるようにフラグ15を構成する。このフラグ15はハードウェア/ソフトウェアのどちらで構成しても構わない。
【0045】
また、図8に示すように、スロット10に挿入されるハードウェアロジック6毎に使用回数や扱うデータの総量の閾値(図では3MB)を定義し、その値を超えたらフラグ15を変更する機構を設けることもできる。例えば、扱うデータの総量が3MBを越えたらフラグ15を置き換え不可から置き換え可に変更する。
【0046】
ここで、先願ではスロット10の使用履歴情報を参照して使用されないハードウェアロジック6の追い出しを行っていたが、この方法では、実際には使用の終わったハードウェアロジック6であるのに関わらず、スロット10内に残ってしまう場合があったが、本発明では、フラグ15を未使用/置き換え不可/置き換え可に分類することにより、空きスロットがない場合であっても、置き換え可のスロット10から置き換えるべきハードウェアロジック6を選択し、そこに新たなハードウェアロジック6を書き込むことができ、スロット10を有効に利用することができる。
【0047】
なお、置き換えるべきハードウェアロジック6の選択アルゴリズムとしては、LRU(Least Recently Used)等のアルゴリズムを用いればよい。
【0048】
このように、同等の機能を有するハードウェアロジック6とソフトウェアロジック9とをソフトウェア(例えば、ハードマクロライブラリ管理部5)の管理下に置き、対応するハードウェアロジック6がない場合にソフトウェアロジック9を選択したり、空きスロットがない場合にソフトウェアロジック9を選択したり、扱うデータ量に応じてハードウェア/ソフトウェアを選択したり、フラグ15を参照して置き換え可能なスロット10に新たなハードウェアロジック6を書き込む等の柔軟な処理を行うことにより、処理の遅滞を防止し、システムの高速化を図ることができる。
【0049】
また、固定ハードウェアロジックを備えるシステムにおいても、要求される処理に対応するハードウェアロジックがない場合にソフトウェアロジックで代行することにより、システムの柔軟性、高速性を高めることができる。
【0050】
次に、上記構成のコンピュータシステムを用いてアプリケーションからの要求に対してハードウェア又はソフトウェアで処理を行う手順について、図9及び図10を参照して具体的に説明する。
【0051】
図のハードマクロライブラリ管理部5は、スロット10に入れるハードウェアロジック6及びソフトウェアロジック9をライブラリとして持ち、アプリケーション側からの要求により、必要なハードウェアロジック6をスロット10に挿入し、動作させるソフトウェアであり、このソフトウェアがCPU2やプログラマブル論理回路部1のスロット入力制御部11やスロット出力制御部12、ステータス14にアクセスしてハードウェアロジック6の書き換え制御を行う。
【0052】
まず、図9に示すように、アプリケーション(例えば、画像処理プログラム)の動作において、画像処理関数等の演算が必要になった場合、アプリケーションはハードマクロライブラリ管理部5に対して関数コールを行う。この関数コールに対して、ハードマクロライブラリ管理部5では、対応するハードウェアロジック6があるか、空きスロットがあるか、扱うデータ量等を総合的に判断して、ハードウェア/ソフトウェアの選択を行う。
【0053】
そして、ハードウェアロジック6を選択した場合は、ハードマクロライブラリ管理部5は、ライブラリの中から対応するハードウェアロジック6を取り出し、スロット入力制御部11を介して図3に示す入力インターフェース信号により、該スロット10に書き込みを開始する。その際、ハードウェアロジック6とスロット10の論理規模とが比較され、例えば、ハードウェアロジック6のデータ幅がスロット10のデータ幅より大きい場合は、複数のスロット10に対して書き込みを行う。また、書き込み中は他のスロット10の動作に支障が生じないように、スロット10及び調停ロジック(スロット入力制御部11及びスロット出力制御部12)に設けた切り離しロジックにより、書き込み中のスロット10を論理的に切り離す。そして、スロット出力制御部12は、スロット10への書き込みが終了したら書き込み終了信号をハードマクロライブラリ管理部5に送出する。
【0054】
次に、ハードマクロライブラリ管理部5は、スロット入力制御部11を介してスロット10のControl inに制御信号を送り処理の起動を命令すると共に、Data inに関数の演算に必要なデータを送る。そして、プログラマブル論理回路1では、ハードウェアロジック6により関数の演算を行い、演算が終了したらData outからハードマクロライブラリ管理部5に演算結果を送ると共に、interruptから割り込み制御部13を介してCPU2に割り込み信号を送り、演算が終了したことを通知する。そして、ハードマクロライブラリ管理部5はその演算結果をアプリケーションに送って一連の処理が終了する(図9上部参照)。
【0055】
ここで、スロット10にハードウェアロジック6を書き込む際、スロット10に空きがない場合もあり得る。この場合は、図10に示すように、スロット10のステータスを管理するスロットステータス管理部にアクセスし(ステータスリード)、各々のスロット10のフラグ15を取得する(ステータスリターン)。そしてフラグ15を参照して、置き換え可能なスロット10を選択する(スワップ対象スロット決定)。
【0056】
以降、図9と同様に、該スロット10に新たなハードウェアロジック6を書き込み、書き込み終了信号を受信したら、処理の起動を命令すると共に、関数の演算に必要なデータを送る。そして、ハードウェアロジック6により関数の演算を行い、演算が終了したらハードマクロライブラリ管理部5に演算結果を送ると共に、CPU2に割り込み信号を送り、演算が終了したことを通知する。そして、ハードマクロライブラリ管理部5はその演算結果をアプリケーションに送って一連の処理が終了する。
【0057】
一方、ソフトウェアを選択した場合は、ハードマクロライブラリ管理部5は、スロットステータス管理部に問い合わせることなく、ソフトウェアロジック9を用いて関数の演算を行い、演算が終了したらその演算結果をアプリケーションに送って一連の処理が終了する(図9下部参照)。
【0058】
このように、本発明のコンピュータシステムでは、アプリケーションから関数コールがあった場合に、自動的に、該関数の演算をハードウェアロジック6で行うかソフトウェアロジック9で行うかが判断され、ハードウェアロジック6で行う場合にはフラグ15を読み込み、空きスロット又は置き換え可能なスロットに新たなハードウェアロジック6が書き込まれるため、関数コールに対して柔軟に対応することができ、処理の高速化を図ることができる。
【0059】
【発明の効果】
以上説明したように、本発明のコンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法によれば、下記記載の効果を奏する。
【0060】
本発明の第1の効果は、様々な要求に対して、柔軟かつ高速に対応することができるということである。
【0061】
その理由は、同一の機能のハードウェアロジックとソフトウェアロジックとをソフトウェア管理下に置き、対応するハードウェアロジックの有無、空きスロットの有無、扱うデータ量等を勘案してハード/ソフトの選択が行われるため、スロット数以上のハードウェアが要求された場合や対応するハードウェアロジックがない場合であってもソフトウェアロジックで処理を代行することができるからである。
【0062】
また、本発明の第2の効果は、プログラマブル論理回路のスロットを有効に利用することができるということである。
【0063】
その理由は、各々のスロットに対して、未使用/置き換え可能/置き換え不可等の種別を示すフラグを設け、フラグを参照してスロットが選択されるため、新たな処理に対して、優先度の低いハードウェアロジックを追い出して置き換えを行うことができるからである。
【図面の簡単な説明】
【図1】本発明の一実施例に係るコンピュータシステムの基本構成及びキャッシュ方法を模式的に示す図である。
【図2】本発明の一実施例に係るコンピュータシステムに適用するプログラマブル論理回路の構成を示す図である。
【図3】プログラマブル論理回路のスロットの入出力インターフェース構成を示す図である。
【図4】本発明の一実施例に係るハード/ソフトの選択例を例示する図である。
【図5】本発明の一実施例に係るハード/ソフトの選択例を例示する図である。
【図6】データ量の違いによるハード/ソフトの性能比較を示す図である。
【図7】本発明の一実施例に係るフラグの構成を示す図である。
【図8】本発明の一実施例に係るフラグの変更方法を示す図である。
【図9】本発明の一実施例に係るハードウェア/ソフトウェアロジックの選択手順を示すフロー図である。
【図10】本発明の一実施例に係るスロットの選択手順を示すフロー図である。
【図11】従来のマルチプロセッサシステムの基本構成を示す図である。
【図12】従来のプロセッサ支援システムの基本構成を示す図である。
【図13】従来のプログラマブル論理回路の基本構成を示す図である。
【図14】先願に係るプログラマブル論理回路の基本構成を示す図である。
【符号の説明】
1 プログラマブル論理回路
2 CPU
3 メモリ
4 バス
5 ハードマクロライブラリ管理部
5a 記憶部
6 ハードウェアロジック
7 コプロセッサ又はASIC
8 単位セル
8a LUT
8b フリップフロップ
9 ソフトウェアロジック
10 スロット
11 スロット入力制御部
12 スロット出力制御部
13 割り込み制御部
14 ステータス
15 フラグ
Claims (4)
- 所定の論理規模の複数のスロットに分割された書き換え可能なロジック部を備え、各々の前記スロットが独立して書き換え可能に制御されるプログラマブル論理回路を少なくとも備えるコンピュータシステムであって、
前記スロットに挿入されるハードウェアロジック及び該ハードウェアロジックと同等の機能を有するソフトウェアロジックを備え、前記ハードウェアロジックと前記ソフトウェアロジックとを選択可能に管理するための管理部を有し、
前記管理部は、各々の前記スロットに付与された、未使用/置き換え可能/置き換え不可の3つの状態を示すフラグを参照して、要求される処理に該当するハードウェアロジックを書き込むスロットを調査する機能を備え、前記スロットに空きがない場合に、置き換え可能なスロットを選択し、該スロットに前記ハードウェアロジックを書き込むことを特徴とするコンピュータシステム。 - 前記スロットに挿入される前記ハードウェアロジック毎に、使用回数又は扱うデータ量の閾値が予め定義され、前記使用回数又は前記データ量が前記閾値を越えた場合に、前記フラグの状態が変更されることを特徴とする請求項1記載のコンピュータシステム。
- 所定の論理規模の複数のスロットに分割された書き換え可能なロジック部を備え、各々の前記スロットが独立して書き換え可能に制御されるプログラマブル論理回路と、プロセッサと、メモリとを少なくとも備えるコンピュータシステムにおけるキャッシュ方法であって、
前記スロットに挿入されるハードウェアロジック及び該ハードウェアロジックと同等の機能を有するソフトウェアロジックを備え、管理部によって前記ハードウェアロジックと前記ソフトウェアロジックとを選択可能に管理し、処理の要求に対して、前記ハードウェアロジック又は前記ソフトウェアロジックのいずれか一方を選択し、
前記管理部では、各々の前記スロットに付与した、未使用/置き換え可能/置き換え不可の3つの状態を示すフラグを参照して、要求される処理に該当するハードウェアロジックを書き込むスロットを調査し、前記スロットに空きがない場合に、置き換え可能なスロットを選択し、該スロットに前記ハードウェアロジックを書き込むことを特徴とするキャッシュ方法。 - 前記スロットに挿入される前記ハードウェアロジック毎に、使用回数又は扱うデータ量の閾値を予め定義し、前記使用回数又は前記データ量が前記閾値を越えた場合に、前記フラグの状態を変更する処理を行うことを特徴とする請求項3記載のキャッシュ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002173181A JP4088763B2 (ja) | 2002-06-13 | 2002-06-13 | コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002173181A JP4088763B2 (ja) | 2002-06-13 | 2002-06-13 | コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004021426A JP2004021426A (ja) | 2004-01-22 |
JP4088763B2 true JP4088763B2 (ja) | 2008-05-21 |
Family
ID=31172544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002173181A Expired - Fee Related JP4088763B2 (ja) | 2002-06-13 | 2002-06-13 | コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4088763B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4978006B2 (ja) * | 2006-01-05 | 2012-07-18 | 日本電気株式会社 | データ処理装置及びデータ処理方法 |
CN101493496B (zh) * | 2008-01-22 | 2012-09-19 | 致茂电子股份有限公司 | 可程控ic检测机台的程序规划方法 |
JP5552855B2 (ja) | 2010-03-19 | 2014-07-16 | 富士ゼロックス株式会社 | 画像処理装置、画像形成システム及び画像処理プログラム |
JP6228381B2 (ja) * | 2012-04-30 | 2017-11-08 | 株式会社半導体エネルギー研究所 | 半導体装置 |
JP6610271B2 (ja) * | 2016-01-08 | 2019-11-27 | 富士通株式会社 | 制御回路、データ処理装置および論理回路管理方法 |
JP6694138B2 (ja) | 2016-07-26 | 2020-05-13 | 富士通株式会社 | プログラマブルロジックデバイスの制御プログラム、制御方法及び情報処理装置 |
-
2002
- 2002-06-13 JP JP2002173181A patent/JP4088763B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004021426A (ja) | 2004-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100810017B1 (ko) | 서로 다른 스레드에 대한 비대칭 하드웨어 멀티스레딩지원을 갖는 디지털 데이터 처리 장치 | |
EP0747816B1 (en) | Method and system for high performance multithread operation in a data processing system | |
KR101002911B1 (ko) | 멀티스레디드 프로세서에서 고속 크로스-스레드 인터럽트를위한 방법 및 장치 | |
JP3714598B2 (ja) | マルチスレッド式プロセッサでのスレッド優先順位の変更 | |
US6260114B1 (en) | Computer cache memory windowing | |
US6209085B1 (en) | Method and apparatus for performing process switching in multiprocessor computer systems | |
US5021993A (en) | Device for saving and restoring register information | |
US7093258B1 (en) | Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system | |
US5636362A (en) | Programmable high watermark in stack frame cache using second region as a storage if first region is full and an event having a predetermined minimum priority | |
US20060294344A1 (en) | Computer processor pipeline with shadow registers for context switching, and method | |
US20060123282A1 (en) | Service layer architecture for memory access system and method | |
JPH11513825A (ja) | 縮小命令セット・コンピューター・マイクロプロセッサーの構造 | |
US8868835B2 (en) | Cache control apparatus, and cache control method | |
CN109313604B (zh) | 用于压缩虚拟存储器的动态配置的计算系统、装置和方法 | |
US20040015684A1 (en) | Method, apparatus and computer program product for scheduling multiple threads for a processor | |
JP5226010B2 (ja) | 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路 | |
JP3236287B2 (ja) | マルチプロセッサシステム | |
JPH06250928A (ja) | 情報処理装置 | |
WO2011142058A1 (ja) | 計算機システム | |
JP4088763B2 (ja) | コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
JP3952856B2 (ja) | キャッシュ方法 | |
US8266379B2 (en) | Multithreaded processor with multiple caches | |
JPH05257808A (ja) | マイクロプロセッサ及びその動作変換方法 | |
JPH06202951A (ja) | キャッシュ・メモリ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050613 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071025 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071210 |
|
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: 20080130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080212 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4088763 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130307 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140307 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |