JP3587095B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP3587095B2 JP3587095B2 JP23838499A JP23838499A JP3587095B2 JP 3587095 B2 JP3587095 B2 JP 3587095B2 JP 23838499 A JP23838499 A JP 23838499A JP 23838499 A JP23838499 A JP 23838499A JP 3587095 B2 JP3587095 B2 JP 3587095B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- circuit
- information
- programmable logic
- data
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Description
【発明の属する技術分野】
本発明は、アプリケーションプログラムによる処理の一部分を、回路構成を再構成できるプログラマブル論理回路で処理することが可能である情報処理装置に関する。特に、回路の再構成と処理を連続的に実行する方法に関するものである。
【0002】
【従来の技術】
デジタル回路装置、特に特定用途向け集積回路(ASIC)の分野において、製品の開発期間を短縮するために、フィールドプログラマブルゲートアレイ(FPGA)やプログラマブルロジックデバイス(PLD)などで構成されたプログラマブル論理回路が広く使われている。これらのプログラマブル論理回路は、論理回路を記述する回路情報を読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。このため、プログラマブル論理回路を用いることで、従来は回路設計の終了後に数週間から数か月を必要とした集積回路の作製時間が不要となるメリットがある。特に、例えば米国特許第4,700,187号明細書等に記載されているような電気的に再構成可能なプログラマブル論理装置は、一度作製した回路を必要に応じて自由に何度でも変更できるという利点があり、ますます広く使われるようになってきている。
【0003】
ところで、最近の論理回路はますます複雑になってきており、ひとつのプログラマブル論理回路では実現できない規模にまで回路規模が大きくなっている。この問題を解決するためのひとつの方法として、異なる時間に異なる論理回路を実現するために、プログラマブル論理回路を処理の途中で再構成することが提案されている。この方法を用いることにより、携帯情報端末のように装置が小型であるために内蔵できる回路規模に制約がある場合でも、様々な処理を比較的高速に行うことができるという利点がある。
【0004】
しかし、プログラマブル論理回路を再構成するときには、回路全体の回路情報を再度読み込ませる必要があるため、再構成に時間がかかるという欠点がある。さらに、処理の途中で再構成することは、処理を一時中断し、その時のデータをプログラマブル論理回路の外部の記憶装置に待避させ、新たな回路情報を読み込んで再構成し、再構成前のデータと再構成に伴う新しいデータを入力するという余分な処理が必要になる。
【0005】
この問題を解決するものとして、例えば米国アトメル社の「CONFIGURABLE LOGIC」という名のデータブックに記載されているプログラマブル論理回路、および米国ザイリンクス社の「THE PROGRAMMABLELOGIC」という名のデータブックに記載されているプログラマブル論理回路等がある。これらのプログラマブル論理回路は、データを記憶するためのデータ記憶装置を有し、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことができる。これによって、再構成するための時間を最小に留めるようにしている。
【0006】
このようなプログラマブル論理回路を情報処理システムに用いる場合には、例えばCPUなどの制御装置がアプリケーション等の処理とプログラマブル論理回路の再構成とを高速かつ効率的に行わなければならないという問題がある。すなわち制御装置は、所望の論理回路を構成するための回路情報を格納先から取り出し、必要に応じて複数の回路情報を合成し、プログラマブル論理回路内に所望の論理回路を再構成する。これと並行して、アプリケーションの処理を実行する必要があり、両者の処理を高速かつ効率的に行わねばならない。
【0007】
以上に述べた複数の回路情報によりプログラマブル論理回路を再構成しながら処理を行う情報システムは、ネットワークに接続して利用することができる。その例として、特開平10−78932号公報に公開される「リコンフィグラブル・ネットワークコンピュータ」がある。
【0008】
図17は、従来の情報処理システムの一例を示すブロック図である。図中、51はアプリケーションサーバ、52,53はクライアントコンピュータ、54は通信ネットワーク、55はメインプロセッサ、56は拡張ハードウェア、57はアプリケーションプログラム、58は拡張コード、59はメインプロセッサコード、60はOS、61はコード選択機能である。この情報処理システムは、通信ネットワーク54によって接続された複数のコンピュータで構成されている。
【0009】
アプリケーションサーバ51は、アプリケーションプログラムを配布するコンピュータである。また、クライアントコンピュータ52,53は、アプリケーションサーバ51からアプリケーションプログラム57をダウンロードして実行する。クライアントコンピュータ52,53には、メインプロセッサ55が搭載されており、OS60の管理下においてアプリケーションプログラム57を実行することができる。また、クライアントコンピュータ52は、メインプロセッサ55とは別に拡張ハードウェア56を有している。拡張ハードウェア56は、上述のプログラマブル論理回路が搭載されており、プログラムにより機能を随時変更し、再構成することが可能である。
【0010】
アプリケーションサーバ51に格納されたアプリケーションプログラム57においては、その一部の機能については、拡張ハードウェア56のプログラムコード(拡張コード58)と、クライアントコンピュータのメインプロセッサ55のコード(メインプロセッサコード59)が含まれている。
【0011】
また、クライアントコンピュータ52,53のOS60には、それぞれのハードウェア構成に適したコードを選択するコード選択機能61を有している。このコード選択機能61が、拡張ハードウェア56を実装しているか否かを判断し、クライアントコンピュータ52のように拡張ハードウェア56が実装されている場合には、アプリケーションプログラム57の中から拡張コード58を取り出して拡張ハードウェア56により実行する。またクライアントコンピュータ53のように拡張ハードウェアを持たない場合には、メインプロセッサコード59を選択して実行する。
【0012】
別の構成では、拡張ハードウェア56で実現する機能を、クライアントコンピュータ上に後から動的に追加/削除が可能なOS60の拡張機能あるいは動的ライブラリとして実現し、アプリケーションプログラム57がOS60に対し、処理中に利用する拡張機能あるいは動的ライブラリの種類を登録する。OS60は、拡張機能あるいは動的ライブラリがクライアントコンピュータに上に存在する場合にはそれを用い、存在しない場合には通信ネットワーク54上のアプリケーションサーバ51から必要とする拡張機能あるいは動的ライブラリを転送して利用する。
【0013】
また、メインプロセッサコード59と拡張コード58は、一体となっているのではなく、アプリケーションプログラム57またはOS60の拡張機能または動的ライブラリ毎に、個々のコードをアプリケーションサーバ51に上に備えている。
【0014】
拡張ハードウェア56を構成するプログラマブル論理回路の構成が、クライアントコンピュータ間で異なる場合は、拡張コード58を、適当なゲート数と入出力端子数の論理回路の機能をブール式等で記述した基本モジュールと、それらの接続関係を表現したコードから構成される。この基本モジュールをそれぞれプログラマブル論理回路の基本プログラムとして割り付ける機能と、複数のプログラマブルロジックチップにまたがる大きな拡張コードの場合には、基本モジュールを接続の度合いに応じて分割し、各プログラマブルロジックチップに配置、配線する機能を、アプリケーションサーバ51またはクライアントコンピュータ上に持つ。
【0015】
拡張ハードウェア56を利用する複数のアプリケーションを同時に実行できるように、必要のなくなったハードウェア資源を別のアプリケーションプログラムのために再利用するハードウェア資源の管理機能と、拡張ハードウェア56に入りきらない拡張コードを時分割で入れ替えるコード入れ替え機能を持つ。クライアントコンピュータ上で実行されるアプリケーションプログラム毎に適宜設定されるプライオリティ値、メインプロセッサ55の処理能力値、拡張ハードウェア56の処理能力値、ハードウェア資源量、コードを入れ替えるために必要な処理能力値を基に、ハードウェア資源に入りきらない複数のアプリケーションプログラムに対して選択する拡張ハードウェア管理機能を持つ。複数のアプリケーションが同時に同じ拡張コードを拡張ハードウェア56で利用する場合には、内部状態のみを時分割で切り替えて機能を共有する。
【0016】
以上のように、ネットワークで接続されたコンピュータ上で、アプリケーションサーバから配布されたアプリケーションプログラムをクライアントコンピュータ側で実行する際、プログラムにより機能を随時変更し、再構成可能な拡張ハードウェアをクライアントコンピュータに搭載する。そして、アプリケーションサーバに格納されたアプリケーションプログラムには、メインプロセッサコードと拡張コードを含ませておく。実行時には、拡張ハードウェアの有無、種類を判断するOSのコード選択機能によって、クライアントコンピュータ側で拡張ハードウェアの構成を変え、処理に適した構成にする。これによって、クライアントコンピュータにおいて、アプリケーションプログラムを高速に処理することができる。
【0017】
また、従来、ネットワーク上で、クライアントコンピュータ側に特殊なハードウェアを必要とする新しいサービスを開始しようとする場合、クライアントコンピュータ側のユーザは、そのために新しいハードウェアを導入する必要があった。またサービスの提供者は、新しいハードウェアをもつ一部のユーザに対してのみ、新しいサービスを提供していた。しかし上述のように、プログラマブル論理回路を搭載した拡張ハードウェアを有している構成では、プログラマブル論理回路を再構成することによって、新しいハードウェアを導入することなく、新しいサービスを開始することが可能となる。
【0018】
このように拡張ハードウェアにプログラマブル論理回路を用いて、回路を再構成しながら処理を実行していく場合には、CPUによる制御が必要であった。例えばアプリケーションプログラムにおいて、処理のフローが決定されていて、そのために用いる機能回路があらかじめ選択指定可能な場合にも、常にメインプロセッサを動作させた処理方法が用いられている。特に、上述のシステム例のように、クライアントコンピュータに拡張ハードウェアが搭載されている場合、拡張コードによって再構成する制御は、クライアントコンピュータのメインプロセッサにより行われる。そのため、アプリケーションプログラムのメインプログラムにはあらかじめ必要な拡張コードが関連づけされていて、拡張ハードウェアの再構成の都度、メインプロセッサの制御によって拡張コードを用いて行われている。このため、多種多様な拡張ハードウェアを頻繁に再構成しながらアプリケーションプログラムを実行していく場合には、常に、メインプロセッサが処理の進行状態を監視するとともに、再構成のための制御を行う必要があり、メインプロセッサの負荷が大きくなる欠点がある。また、拡張ハードウェアの動作とともにメインプロセッサも動作させる必要があり、クライアント全体の消費電力も増大する欠点がある。
【0019】
このように、回路の再構成のための制御によって、メインプロセッサの処理負荷が常時発生することにより、消費電力として、メインプロセッサと拡張ハードウェアとを合わせた増加となってしまう問題がある。また、回路の再構成のためのメインプロセッサの負荷のため、システム全体のパフォーマンスが制約を受けて低下してしまう欠点があった。
【0020】
次に、プログラマブル論理回路の新しいデバイス技術について述べる。アプリケーションの処理に合わせた処理回路をプログラマブル論理回路上に構成し、この専用の処理回路を用いて高速処理を実現するというリコンフィギュラブルコンピューティングにプログラマブル論理回路が活用されはじめている。リコンフィギュラブルコンピューティングでは、アプリケーション処理で必要となる複数の処理回路の回路情報を記憶装置へ事前に格納しておき、必要に応じて記憶装置から読み出した回路情報をプログラマブル論理回路に書き込むことで、その時点で必要となる回路を生成する。この技術はキャッシュロジック技術とかバーチャルロジック技術と呼ばれる。
【0021】
キャッシュロジック技術は、同じプログラマブル論理回路上に必要に応じて異なる回路を構成するという時分割駆動技術である。その結果、回路規模の小さなプログラマブル論理回路を用いて、その回路規模以上の回路を実現でき、回路装置の小型化と低コスト化が可能となる。しかしながら、プログラマブル論理回路に書きこむ回路情報の規模によっては、回路の再構成時間が長くなり、専用の処理回路を用いて高速処理を実現するというリコンフィギュラブルコンピューティングの効果を損なうという問題がある。
【0022】
この問題のひとつの解決方法が、マルチコンテキスト技術と呼ばれるデバイス技術である。すなわち、プログラマブル論理回路内に複数の回路情報を格納するメモリを備え、必要に応じてメモリを切り替えて回路を再構成することにより、回路の再構成時間を大幅に短縮できる。
【0023】
マルチコンテキスト技術の従来例のひとつが、FPD’95の“A First Generation DPGA Implementation”で示されたDPGAである。図18は、DPGAの論理セル構造の一例の説明図である。図中、71はDRAM、72,75はマルチプレクサ、73はルックアップテーブル、74はフリップフロップである。図18に示すように、DPGAの論理セルは、4組の構成を格納する4×32ビットのDRAM71、4つの8入力マルチプレクサ72、4入力ルックアップテーブル73、フリップフロップ74、出力を切り替えるマルチプレクサ75で構成されている。32ビットのDRAM71の出力のうち、12ビットが4つの8入力マルチプレクサ72の状態を、16ビットが4入力ルックアップテーブル73の状態を、1ビットがマルチプレクサ75の状態を決定し、残り3ビットは保留されている。4組のDRAM71には、それぞれ異なるデータが格納されており、メモリ出力を切り替えることにより、異なる回路を構成することができる。
【0024】
マルチコンテキスト技術は、回路の再構成時間を大幅に短縮することができる。また、回路を再構成するための回路情報をプログラマブル論理回路に転送するときの入出力バスラインの負荷を小さくできるため、高速化と低消費電力化に有利な構成である。しかし、回路情報を格納するためのメモリ回路領域をプログラマブル論理回路と一体構成する必要があり、集積回路化した場合のプログラマブル論理回路全体の回路規模が大きくなるという欠点を有している。
【0025】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、プログラマブル論理回路を再構成するためのメインプロセッサの負荷を大幅に軽減させることができ、これにより低消費電力化を図るとともに、メインプロセッサを有効に活用できるようにしてシステム全体のパフォーマンスを向上させた情報処理装置を提供することを目的とするものである。
【0026】
【課題を解決するための手段】
一般にアプリケーションプログラムにおいて、処理のフローが決定されていて、そのために用いる処理回路が複数の種類の組み合わせであらかじめ選択指定可能な場合、同じ順番を単位として一定の繰り返される処理の場合などには、あらかじめ使用する回路情報と順番を決定できる。本発明はこれを利用し、プログラマブル論理回路に処理回路を構成するための回路情報を、予め順番に回路情報保持手段に保持させておく。そしてCPUなどの制御手段は、プログラマブル論理回路で処理を行う処理データのヘッダ部などに、使用する回路情報を特定するための情報を含めて、処理を依頼する。インタフェース手段は、与えられた処理データの例えばヘッダ部などから、プログラマブル論理回路の再構成に使用する最初の回路情報を特定するとともに、特定された回路情報から回路情報保持手段に保持されている順番に回路情報を取り出し、プログラマブル論理回路を再構成して処理回路を構成し、構成した処理回路に処理データの処理を行わせる。
【0027】
このようにして、プログラマブル論理回路では、予め設定されている順番で、処理回路の再構成と実行が自動的に行われる。そのため、CPUなどの制御手段では、最初に実行指示を行うだけで、以後順番に行われるプログラマブル論理回路の再構成や実行指示を行う必要がない。これによってCPUなどの制御手段によるプログラマブル論理回路の制御を行うための処理ステップが大幅に削減され、高速化を図ることができるとともに、消費電力を大幅に低減することができる。これとともに、プログラマブル論理回路を含めた情報処理装置における全体のパフォーマンスを向上させることができる。
【0028】
【発明の実施の形態】
図1は、本発明の情報処理システムの実施の一形態を示す構成図である。図中、1は情報処理システム、2はネットワーク、3は外部機器、11はCPU、12はホストバス、13はチップセット、14はメインメモリ、15はシステムバス、16はハードディスクインタフェース、17はハードディスクドライブ、18は通信インタフェース、19は拡張ハードウェア部、21はプログラマブル論理回路、22はローカルメモリ、23はプログラマブル論理回路インタフェース、24は外部入出力インタフェースである。
【0029】
情報処理システム1において、CPU11のホストバス12に、チップセット13に含まれる図示しないメモリコントローラを介して、DRAMで構成されるメインメモリ14が接続されている。ホストバス12は、チップセット13に含まれる図示しないバスブリッジを介してシステムバス15に接続されている。システムバス15は、例えばPCIバスやISAバス、その他各種のバスを使用することができる。例えばシステムバス15としてPCIバスを用いた場合、チップセット13内にはホスト−PCIブリッジを備えていればよい。
【0030】
システムバス15には、この例では、ハードディスクインタフェース16を介してハードディスクドライブ17が接続され、また通信インタフェース18を介してネットワーク2と接続されている。さらに拡張ハードウェア部19が接続され、この拡張ハードウェア部19を介して外部機器3が接続されている。もちろん他の種々の機器が直接あるいはインタフェースを介してシステムバス15に接続されていてもよく、また、ハードディスクおよびネットワークについても接続は任意である。
【0031】
この例では、ハードディスクドライブ17にはアプリケーションプログラムが格納されている。アプリケーションプログラムは、ハードディスクインタフェース16、システムバス15、および、チップセット13に含まれる図示しないバスブリッジを介して、ハードディスクドライブ17からメインメモリ14にロードされてCPU11によって実行される。
【0032】
また、通信インタフェース18は、LANやインターネットなどのネットワーク2を介して、様々な機器との間でデータの転送を行うことができる。CPU11によって実行されるアプリケーションプログラムは、この通信インタフェース18を介して通信を行うことにより、ネットワーク2に接続される例えば記憶装置に格納されている情報へのアクセスを行うことができ、様々なアプリケーションプログラムやデータなどを入手できる。この場合、ネットワーク2に接続される通信インタフェース18を介して転送したアプリケーションプログラムをメインメモリ14に格納して実行したり、あるいはシステムバス15から直接プログラマブル論理回路インタフェース23を介してプログラマブル論理回路21へ転送することもできる。
【0033】
拡張ハードウェア部19は、プログラマブル論理回路21、ローカルメモリ22、プログラマブル論理回路インタフェース23を有している。またこの例では、外部入出力インタフェース24もこの拡張ハードウェア部19に設けられている。プログラマブル論理回路21は、回路情報を変更することによって機能を随時変更し再構成することが可能であり、プログラマブル論理回路インタフェース23を介してシステムバス15に接続されている。また、この例では外部入出力インタフェース24を介して外部機器3とも接続されており、プログラマブル論理回路21における処理により、外部機器3を制御可能に構成した例を示している。
【0034】
ローカルメモリ22は、プログラマブル論理回路21で処理を行う処理データや、処理後の中間処理データなどを保持することができる。また、予め使用する回路情報と順番を保持する回路情報保持手段としても機能する。
【0035】
プログラマブル論理回路インタフェース23は、システムバス15によってCPU11やメインメモリ14、ローカルメモリ22、プログラマブル論理回路21との間でデータ転送や制御を行うためのものである。またプログラマブル論理回路インタフェース23は、転送されてきた処理データからプログラマブル論理回路の再構成に使用する最初の回路情報を特定する機能を有している。この最初の回路情報が例えば処理データのヘッダ情報として付加されている場合、処理データのヘッダ情報を解釈することによって実現できる。また、回路再構成のための回路情報や処理データ、中間処理データの最後に付加されるEOFのマーカ検出機能なども含まれている。さらに、特定した最初の回路情報をもとにローカルメモリ22から回路情報を順番に取り出し、順次プログラマブル論理回路21を再構成して処理回路を構成し、構成した処理回路に処理データの処理を行わせる。また、ローカルメモリ22とプログラマブル論理回路21との間での処理データや中間処理データの転送も行う。
【0036】
なお、予め使用する回路情報等は、例えばメインメモリ14やハードディスクドライブ17に格納しておいてもよい。この場合、プログラマブル論理回路インタフェース23は、メインメモリ14やハードディスクドライブ17に対して、CPU11を動作させずにデータ転送を行う機能を有していればよい。例えばメインメモリ14とローカルメモリ22を同じメモリ空間においてアクセス可能に構成し、いずれのメモリを利用しているかを意識しないでアクセスできるように構成してもよい。
【0037】
また、拡張ハードウェア部19は、集積化により一体化することで、入出力部のライン負荷を低減させたり、専用バス化の構成により、高速化及び低消費電力化を図ることができる。
【0038】
図2は、プログラマブル論理回路の一例を示す平面構造図、図3は、同じく内部構造の一例を示すブロック図である。図中、31は論理セル、32は配線領域、33は入出力端子、41はコンフィギュレーションメモリ、42は回路素子である。プログラマブル論理回路21は、回路情報を格納するためのコンフィギュレーションメモリ41と、論理セル31や配線領域32からなる回路素子42と、入出力端子33とで構成されている。
【0039】
コンフィギュレーションメモリ41は、EEPROM、SRAMなどの書き換え可能なメモリ素子で構成されている。回路情報はアドレスとデータの対で構成される。コンフィギュレーションメモリ41にアドレスを与えて、そのアドレスに対応するメモリセルにアドレスと対になったデータを格納すると、このデータに従って、論理セル31内の回路構成や、論理セル31と入出力端子33を相互に接続する配線領域32の接続状態が再構成される。コンフィギュレーションメモリ41の一部分を書き換えることにより、プログラマブル論理回路21が動作中であっても、回路を部分的に再構成することができる。
【0040】
プログラマブル論理回路21に再構成された回路素子42に、入出力端子33を介して処理すべきデータ(処理データや中間処理データ)が入力され、また、その処理結果(中間処理データ)が出力される。データ入力先の論理セルと、データ出力元の論理セルは、論理セルの位置に対応するセル座標を示した制御コードによってアプリケーションプログラムが指定する。
【0041】
以上のシステム構成によって、プログラマブル論理回路21による処理データの入出力方法から、以下のような処理形態があげられる。データとしては、マルチメディアのような画像、音声などのストリーミングデータなどがある。
▲1▼ ネットワーク2を経由して情報システム1に入力したデータを、システムバス15を経由して、プログラマブル論理回路21に再構成した処理回路で処理する。
▲2▼ ハードディスクドライブ17などの記憶装置に格納されたデータを、システムバス15を経由して、プログラマブル論理回路21に再構成した処理回路で処理する。
▲3▼ 外部の記憶装置からの転送やアプリケーションの処理結果などのデータで、メインメモリ14に一時的に格納されたデータを、システムバス15を経由して、プログラマブル論理回路21に再構成した処理回路で処理する。
▲4▼ ローカルメモリに格納されたデータを、プログラマブル論理回路インタフェース23を経由して、プログラマブル論理回路21に再構成した処理回路で処理する。
【0042】
次に、本発明の情報処理システムの実施の一形態における動作について説明する。アプリケーションプログラムにおいて、処理のフローが決定されていて、そのために用いる機能回路が複数の種類の組み合わせであらかじめ選択指定可能な場合や、同じ順番を単位として繰り返される処理の場合などには、あらかじめ使用する回路情報と順番を決定できる。そこで、アプリケーションの処理が開始される前に、予め、使用する回路情報と順番等の情報を参照テーブルとして例えばローカルメモリ22などに登録しておく。なお、全く不定な順番で、任意の処理の次にどのような処理を行うことになるのか特定できない場合には、メインプロセッサによって、その都度、制御を行えばよいので、ここでは対象外とする。
【0043】
図4は、参照テーブルの一例の説明図である。図4に示した例では、処理回路の順番を示す処理ステップNo.に対応して、再構成のための回路情報が格納されているメモリ中の開始アドレスを示すポインタ、中間処理を行うことになる場合に対応してアロケーションされた中間処理データを格納するメモリ中の開始アドレスを示すポインタ、プログラマブル論理回路21に同時に再構成可能な回路数の情報によって参照テーブルが構成されている。
【0044】
アプリケーションの処理でi番目の処理回路で処理した結果を次のi+1番目で処理する場合には、i番目の処理回路から出力されるデータは中間処理データとなる。また最後のM番目で処理した結果は、最終出力データとなる。この中間処理データを格納するメモリの開始アドレスポインタが図4におけるポインタPdiである。なお、最終データもさらに別のアプリケーションで用いられることも考えられるので、最終データも中間処理データ用メモリへ格納しておいてもよい。
【0045】
また、再構成する処理回路について、プログラマブル論理回路の回路規模に応じて、同時に再構成できる回路数Niは、i番目の回路からの同時再構成可能最大数である。このNiに対応する回路の再構成のモードとして、1個の場合には自動的に単独コンフィギュレーションモードになり、複数個の場合には単独コンフィギュレーションモードまたは連続コンフィギュレーションモードの選択ができる。これは、アプリケーション開始時にCPUによって選択指定できる。
【0046】
この図4に示すような参照テーブルは、アプリケーションが実行されるときに情報処理システムで用いられるプログラマブル論理回路21の品種や回路規模サイズ、メインメモリ14やローカルメモリ22などのメモリサイズなどを考慮して、CPU11によって作成する。あるいは、当然ながら、決まった処理を同じシステムで行う場合には、処理の実行の都度にこの参照テーブルを作成する必要はなく、予め用意しておくこともできる。
【0047】
図5は、処理データおよび回路情報と、これらを格納するメモリアドレス空間の説明図である。図4に示すような参照テーブルの情報は、図5に示すように、例えば処理データのヘッダ部に付加しておくことができる。プログラマブル論理回路インタフェース23において、処理データを受け取った際にヘッダ部を解析し、これらの情報を取り出して、参照テーブルを作成することができる。また、このような参照テーブルをもとに、ある処理ステップiを実行する際には、処理ステップNo.iに対応付けられている回路情報用のポインタPciと中間処理データ用のポインタPdiが割り付けられる。処理の順番によっては、同じポインタを用いて上書きでアロケートすることによって、メモリの使用効率を向上させることもできる。
【0048】
なお、図5に示すメモリアドレス空間は、ローカルメモリ22のメモリアドレス空間、あるいは、メインメモリ14とローカルメモリ22を一体としたメモリアドレス空間であってよい。後者の場合、例えば回路情報や中間処理データを格納する領域などがメインメモリ14上に確保される場合もある。
【0049】
前述の回路情報と順番において、図4に示すように、処理ステップNo.として最初の0番からM番までのM+1ステップの場合で、i番目の処理を行う際の動作について述べる。再構成する回路情報を格納するメモリの開始アドレスポインタをPciとする。また、中間処理データを格納するメモリの開始アドレスポインタをPdiとする。さらに、再構成する処理回路について、プログラマブル論理回路の回路規模に応じて、同時に再構成できる回路数をNiとする。
【0050】
アプリケーションの処理データファイル及び回路情報を読み出し、あらかじめアプリケーションプログラムの実行前に、回路情報をメモリ空間に割り付けておく。また、CPU11によって前述の4種の情報をアプリケーションの処理データファイルのヘッダ部に付加する。なお、処理データファイルや回路情報は、例えば、ネットワーク2に接続された記憶装置、情報処理システム1内部のハードディスクドライブ17などの記憶装置、メインメモリ14、あるいは、ローカルメモリ22など、いずれの記憶装置に記憶されていてもよい。
【0051】
アプリケーションプログラムの実行がCPU11によって開始されると、処理データファイルがプログラマブル論理回路インタフェース23に転送されてヘッダ部に付加されている情報が解釈される。最初の回路情報によってプログラマブル論理回路21に対する処理回路の再構成が行われ、回路情報の最後を示すEOFのマーカにより、再構成が終了する。このEOFマーカをプログラマブル論理回路インタフェース23で検出し、ヘッダ部に続くデータ部の転送が行われて、再構成した処理回路におけるデータ処理が進められていく。
【0052】
処理されたデータを次に再構成する処理回路で用いる場合には、処理されたデータを中間処理データとして、さきにメモリ空間にアロケートした領域に一旦格納する。そして、次の処理回路を再構成した後、中間処理データを新たに再構成した処理回路に入力し、データ処理を進める。最終データは、例えば外部入出力インタフェース24を介して外部機器3に転送されたり、あるいはメインメモリ14,ハードディスクドライブ17,ネットワーク2に接続された記憶装置などに転送される。または、中間処理データと同様に格納されていてもよい。
【0053】
以上のように、CPU11が最初の開始制御を行うことによって、回路の再構成とデータ処理が順次実行されていくので、CPU11はプログラマブル論理回路21の再構成のための処理を行う必要がない。そのため、CPU11の負荷を軽減して消費電力を大幅に低減し、またCPU11とプログラマブル論理回路21との並行動作を可能として情報処理システムにおける全体のパフォーマンスを向上させることができる。
【0054】
次に、プログラマブル論理回路21への処理回路の再構成領域とそれぞれの処理回路によって処理された中間処理データのメモリへの格納あるいは連続処理について、以下、3つの形態をあげて説明する。
【0055】
図6は、プログラマブル論理回路への処理回路の第1の再構成例の説明図、図7は、同じく動作時の一例を示すタイミングチャートである。図6に示す例では、シングルタスクモードで、処理回路の再構成とその処理回路での処理の実行を順次行いながら、中間処理データの入出力をその間に入れていく方式を示している。この例は、プログラマブル論理回路21の構成可能な最大回路規模と再構成する回路規模との関係において、連続する処理回路が同時に再構成できる領域が確保できない場合に対応する形態である。
【0056】
最初の処理回路の再構成が完了し、データ処理が行われて得られた結果は、一時的にプログラマブル論理回路21の内部メモリまたはローカルメモリ22やメインメモリ14など外部メモリを利用して中間処理データのまま格納する。そして、最初に再構成された領域に上書きして次の処理回路の再構成を行う。次の処理回路の再構成が完了すると、続けて中間処理データに対してデータ処理を行う。このようにしてデータ処理が継続されていく。処理モードとしては、回路の同時再構成可能な数Niは、1個である単独コンフィギュレーションモードの場合である。
【0057】
一例として、図6に示す例について、図7に示すタイミングチャートを用いて説明する。まず、CPU11によって、例えば図4に示すような参照テーブルが用意され、図5に示すようにメモリアドレス空間が割り当てられる。プログラマブル論理回路インタフェース23は、CPU11から処理データが転送されてくると、その処理データのヘッダ部に付加された情報を解釈して、プログラマブル論理回路21に対する回路Aの再構成を開始する(図7−▲1▼)。
【0058】
回路Aの再構成が完了すると、処理データを回路Aに入力し、回路Aを用いた処理が開始される(図7−▲2▼)。回路Aによって得られた結果は、中間処理データとしてメモリに格納されていく(図7−▲3▼)。
【0059】
処理データのEOFが検出されて処理が終了すると、次の回路Bの再構成を行う(図7−▲4▼)。最初に再構成された回路Aの領域に上書きして次の処理回路である回路Bの再構成を行うことができる。図6は、この回路Bを再構成したときの状態を示している。回路情報のEOFが検出されると、回路Bの再構成が完了する(図7−▲5▼)。回路Bの再構成が完了すると、回路Bは中間処理データに対してデータ処理を開始する(図7−▲6▼)。
【0060】
このステップが繰り返されて、処理ステップMで終了する。このように、最初にCPU11による制御を施すだけで、あとは、処理回路の再構成と、再構成された処理回路における処理の実行が、あらかじめ設定された規定通りに連続して行われる。これによって、CPU11の制御負荷が大幅に軽減され、消費電力が大幅に低減できる。
【0061】
図8は、プログラマブル論理回路への処理回路の第1の再構成例における動作の一例を示すフローチャートである。上述の例について処理動作をまとめると図8に示すようになる。S101において処理ステップを示す変数iを0に初期化し、S102において、処理データを入力し、ヘッダ部の情報を解釈してポインタ等の設定を行う。
【0062】
S103において、回路情報Pciにアクセスしてプログラマブル論理回路21に対して処理回路の再構成を行う。S104において回路情報の終了を示すEOFを検出すると、処理回路の再構成を終了する。そしてS105において、中間処理データPd(i−1)へアクセスして再構成した処理回路に入力し、あるいは、処理データを再構成した処理回路に入力して、S106においてデータ処理を開始する。
【0063】
S107において、処理データあるいは中間処理データの終了を示すEOFを検出すると、処理回路における処理を終了する。S108において、処理ステップを示す変数iに1を加え、S109において、変数iの値がM以下か否かを判定する。変数iの値がM以下であれば、S110において、処理結果を中間処理データとして中間処理データ用のメモリ領域Pd(i−1)に格納する。そしてS103へ戻り、次の処理回路の再構成および処理を繰り返す。
【0064】
処理ステップMまでの処理を行い、処理ステップを示す変数iの値がMを超える場合には、S111において、処理後のデータを最終データとして出力し、プログラマブル論理回路21における処理を終える。
【0065】
なお、上述の説明では中間処理データを生成して処理する形態で記述したが、図2に示すように回路Aの結果を内部メモリで受けて、引き続き回路Bで処理する場合には、内部メモリの代わりに、データラッチ回路を用いた一時的なデータ保持方法の利用も可能である。
【0066】
図9は、プログラマブル論理回路への処理回路の第2の再構成例の説明図、図10は、同じく動作時の一例を示すタイミングチャートである。図9に示す例では、シングルタスクモードではあるが、複数の処理が同時に形成できる場合に、複数の処理回路の再構成を行ってから、処理を連続して実行する形態である。処理モードとして、回路の同時再構成可能な数Niまでの再構成を連続的に行う、連続コンフィギュレーションモードの選択である。
【0067】
プログラマブル論理回路21の構成可能な最大回路規模と再構成する処理回路の回路規模との関係において、連続する処理回路が同時に再構成できる領域が確保できるが、データ処理が行われて得られた結果は、一時的にプログラマブル論理回路の内部メモリまたはローカルメモリやメインメモリの外部メモリを利用して中間処理データのまま格納して行っていく場合である。ただし、中間処理データを介しながら分割して処理を進めていく場合も含めることができる。当然ながら、処理モードとして、処理回路を一つずつ再構成してゆく単独コンフィギュレーションモードも選択できる。この場合には、図6に示した形態として扱うこともできる。
【0068】
一例として、図9に示す例について、図10に示すタイミングチャートを用いて説明する。まず、CPU11によって、図4に示すような参照テーブルが用意され、図5に示すようにメモリアドレス空間が割り当てられる。プログラマブル論理回路インタフェース23は、CPU11から処理データが転送されてくると、その処理データのヘッダ部に付加された情報を解釈する。そして、プログラマブル論理回路21に再構成可能な複数個の回路、ここでは回路Aと回路Bの再構成を開始する(図10−▲1▼、▲2▼)。
【0069】
2つの回路情報のEOFが検出されると再構成を完了し、これらの処理回路を用いた処理の実行が開始される(図10−▲3▼、▲4▼)。ここでは、回路Aによって処理された結果が回路Bに入力され、回路Bによる処理結果が中間処理データとしてメモリに格納されていく。ここでは、最後の処理回路による処理結果のみを示している(図10−▲5▼、▲6▼)。
【0070】
このような処理が繰り返されて、処理ステップMで終了する。このように連続処理が可能になるため、中間処理データのすべてに対してメモリへ格納せずに処理を進めることができる。そのため、中間処理データを格納する回数が低減され、高速処理、消費電力の低減が図れる。また、最初にCPU11による制御を施すだけで、あとは、処理回路の再構成と、再構成された処理回路における処理の実行が、あらかじめ設定された規定通りに連続して行われる。これによって、CPU11の制御負荷が大幅に軽減され、消費電力が大幅に低減できる。
【0071】
図11は、プログラマブル論理回路への処理回路の第2の再構成例における動作の一例を示すフローチャートである。上述の第2の構成例について処理動作をまとめると図11に示すようになる。S121において処理ステップを示す変数iを0に初期化し、S122において、処理データを入力し、ヘッダ部の情報を解釈してポインタ等の設定を行う。
【0072】
S123において、再構成した回路数を示す変数jを0に初期化する。S124において、回路情報Pc(i+j)にアクセスしてプログラマブル論理回路21に対して処理回路の再構成を行う。S125において回路情報の終了を示すEOFを検出すると、処理回路の再構成を終了する。S126において変数jの値に1を加算し、S127において、新たな変数jの値が処理ステップiにおける同時構成可能な回路数Niより小さいか否かを判定する。新たな変数jの値がNiより小さければ、S124へ戻って、同時に再構成可能な次の処理回路の再構成を行う。変数jの値がNiに達すると、S128において、同時に再構成可能な回路数までの処理回路の再構成を終了する。
【0073】
S129において、変数iが0の場合には処理データを、また変数iが0でない場合には中間処理データPd(i+Ni−1)へアクセスして、再構成した処理回路に入力し、S130においてデータ処理を開始する。
【0074】
S131において、処理データあるいは中間処理データの終了を示すEOFを検出すると、処理回路における処理を終了する。S132において、処理ステップを示す変数iにNiを加え、S133において、新たな変数iの値がM以下か否かを判定する。変数iの値がM以下であれば、S134において、処理結果を中間処理データとして中間処理データ用のメモリ領域Pd(i+Ni−1)に格納する。そしてS123へ戻り、次の複数の処理回路の再構成および再構成した複数の処理回路による連続処理を繰り返す。
【0075】
処理ステップMまでの処理を行い、処理ステップを示す変数iの値がMを超える場合には、S135において、処理後のデータを最終データとして出力し、プログラマブル論理回路21における処理を終える。
【0076】
なお、上述の第1の再構成例と同様に、シングルタスクモードで単独コンフィギュレーションを行う場合には、それぞれの処理ステップごとに中間処理データをメモリへ格納していけばよい。連続した回路の同時構成が可能なため、連続した処理が可能になる。当然、必要に応じて中間処理データはローカルメモリ22などへ格納されてもよい。
【0077】
図12は、プログラマブル論理回路への処理回路の第3の再構成例の説明図、図13は、同じく動作時の一例を示すタイミングチャートである。図12に示す例では、マルチタスクモードとして、処理回路の再構成が完了すると処理が実行されるとともに、その処理の実行中に並行して次の処理回路の再構成がプログラマブル論理回路の別の領域に対して行われる。そして、先の処理回路による処理結果が連続して処理されたり、別のデータによる並列処理などが行われていく。例えば回路Aによるプロセス中に回路Bのコンフィギュレーションを行って処理を連続的に行っていくものである。しかも、処理回路の再構成は、プログラマブル論理回路21に同時再構成可能な数Niまでの処理回路の再構成を連続的に行う、連続コンフィギュレーションモードが選択される。
【0078】
なおこの例では、さきの処理回路の再構成が完了してデータ処理が行われているときに、次の処理回路の再構成が並列して行われていく。さきの処理回路によるデータ処理の結果は、一時的にプログラマブル論理回路21の内部メモリまたはローカルメモリ22やメインメモリ14等の外部メモリを利用して中間処理データのまま格納して、次の回路の再構成が完了したときに続けてデータ処理が継続されていく。しかし、次の処理回路の再構成が、さきの処理回路の出力までに完了する場合には、図9に示したように回路Aの出力を直接、回路Bに入力するように構成してもよい。
【0079】
一例として、図12に示す例について、図13に示すタイミングチャートを用いて説明する。まず、CPU11によって、図4に示すような参照テーブルが用意され、図5に示すようにメモリアドレス空間が割り当てられる。プログラマブル論理回路インタフェース23は、CPU11から処理データが転送されてくると、その処理データのヘッダ部に付加された情報を解釈する。プログラマブル論理回路インタフェース23は、CPU11から処理データが転送されてくると、その処理データのヘッダ部に付加された情報を解釈して、プログラマブル論理回路21に対する回路Aの再構成を開始する(図13−▲1▼)。
【0080】
回路Aに関する回路情報のEOFを検出し、回路Aの再構成が完了すると、処理データを回路Aに入力し、回路Aを用いた処理が開始される(図13−▲2▼)。回路Aによって得られた結果は、中間処理データとしてメモリに格納されていく(図13−▲3▼)。
【0081】
この回路Aにおける処理と並行して、次の回路Bの再構成を開始する(図13−▲4▼)。このような処理回路において処理を行っている間に、プログラマブル論理回路に回路の同時再構成可能な数Niまでの再構成を連続的に行うことができる。
【0082】
回路Aにおける処理において処理データのEOFを検出して処理の終了を検出するとともに、次の回路Bの再構成の終了を検出すると、回路Bにおける中間処理データを用いた処理の実行が開始される(図13−▲5▼、▲6▼)。
【0083】
このように、処理回路の再構成と、再構成した処理回路の実行の並列処理によって、処理回路の再構成による処理の待ち時間を短くして高速化を図ることができるとともに、処理を連続して実行することによる処理の高速化を図ることができる。また、最初にCPU11による制御を施すだけで、あとは、処理回路の再構成とその実行を、あらかじめ設定された規定通りに連続して行うことができる。これによって、CPU11の制御負荷が大幅に軽減され、消費電力が大幅に低減できる。
【0084】
図14は、プログラマブル論理回路への処理回路の第3の再構成例における動作の一例を示すフローチャートである。上述の第3の構成例について処理動作をまとめると図14に示すようになる。S141において処理ステップを示す変数iを0に初期化し、S142において、処理データを入力し、ヘッダ部の情報を解釈してポインタ等の設定を行う。
【0085】
S143において、回路情報Pciにアクセスしてプログラマブル論理回路21に対して処理回路の再構成を行う。S144において回路情報の終了を示すEOFを検出すると、処理回路の再構成を終了する。そしてS145において処理ステップiの処理回路の再構成が終了していることを確認後、S146において、中間処理データPd(i−1)へアクセスして再構成した処理回路に入力し、あるいは、処理データを再構成した処理回路に入力して、S147においてデータ処理を開始する。
【0086】
このような再構成された処理回路における処理の実行と並行して、S161以降の処理回路の再構成を行う。まずS161において変数iの値を変数kに待避し、S162において、再構成した回路の処理ステップを示す変数jの値をk+1に初期化する。そして、S163において、回路情報Pc(j)にアクセスしてプログラマブル論理回路21に対して、空いている領域に処理回路の再構成を行う。S164において回路情報の終了を示すEOFを検出すると、処理回路の再構成を終了する。S165において変数jの値に1を加算し、S166において、同時に再構成した回路数が、処理ステップkにおいて同時構成可能な回路数Nkより小さいか否かを判定する。この判定のために、いままで再構成した回路数+1を示す新たな変数jの値と、k+Nkの値とを比較する。新たな変数jの値がk+Nkより小さければ、S163へ戻って、同時に再構成可能な次の処理回路の再構成を行う。変数jの値がk+Nkに達すると、同時に構成可能な回路数に達したものとして、処理回路の再構成を一旦停止する。
【0087】
S167において、変数jの値がMに達していれば、すべての処理回路の再構成が終了したものとして、再構成の処理を終了する。変数jの値がM以下であれば処理を継続し、S168において、再構成が終了している処理回路のすべてにおいて処理が終了するまで待ち、その後、S161へ戻って、次の同時に構成可能な回路数だけの処理回路の再構成処理を行う。
【0088】
このような処理回路の再構成処理と並行して行われていた処理回路における処理の実行は、S148において処理データあるいは中間処理データの終了を示すEOFを検出して終了する。S149において、処理ステップを示す変数iに1を加え、S150において、新たな変数iの値がM以下か否かを判定する。変数iの値がM以下であれば、S151において、処理結果を中間処理データとして中間処理データ用のメモリ領域Pd(i−1)に格納する。そしてS145へ戻り、次の処理回路の再構成終了を確認してから、次の処理回路による連続処理を繰り返す。
【0089】
処理ステップMまでの処理を行い、処理ステップを示す変数iの値がMを超える場合には、S152において、処理後のデータを最終データとして出力し、プログラマブル論理回路21における処理を終える。
【0090】
なお、上述の説明では、処理回路の再構成を、同時に構成可能な回路数ごとに行っている。しかしこれに限らず、例えば処理が終了した処理回路の領域を順次開放してゆき、次の処理回路が構成可能な領域が確保できた時点ですぐに次の処理回路を再構成するように構成してもよい。
【0091】
上述の3つの例は、適宜組み合わせることが可能である。図15は、プログラマブル論理回路への処理回路の第4の再構成例の説明図、図16は、同じく動作時の一例を示すタイミングチャートである。この例では、最初に上述の第2の再構成例で示したように、同時に構成可能な回路数だけの処理回路の再構成を先に行っておき、その後、第3の再構成例で示したように、処理が終了した処理回路の領域を開放して新たな処理回路の再構成を行うことができる。
【0092】
一例として、図15に示す例について、図16に示すタイミングチャートを用いて説明する。まず、図15(A)に示すように、プログラマブル論理回路21に再構成可能な複数個の回路、ここでは回路Aと回路Bの再構成を開始する(図16−▲1▼、▲2▼)。
【0093】
2つの回路情報のEOFが検出されると再構成を完了し、これらの処理回路を用いた処理の実行を開始する(図16−▲3▼、▲4▼)。ここでは、回路Aによって処理された結果が回路Bに入力され、回路Bによる処理結果が中間処理データとしてメモリに格納されていく(図16−▲5▼、▲6▼)。
【0094】
回路Aの処理が終了した時点で、回路Aが配置されていたプログラマブル論理回路21内の領域は不要となる。そのため、回路Bの処理実行中に並行して、回路Aが構成されていた領域も用いて、回路Cの再構成を開始する(図16−▲7▼)。このような処理回路の再構成は、処理回路を配置可能であればいくつでも行ってよい。このようにして、図15(B)に示すように、回路Aが配置されていた領域も用いて回路Cの再構成が行われる。
【0095】
回路Bにおける処理において処理データのEOFを検出して処理の終了を検出するとともに、次の回路Cの再構成の終了を検出すると、回路Bから出力された中間処理データを用いて、回路Cにおける処理の実行が開始される(図16−▲8▼、▲9▼)。このような処理が繰り返されて、処理ステップMまでの処理を連続して行うことができる。
【0096】
なお、上述の説明では、図1に示した構成をもとにして説明してきた。本発明の情報処理システムは図1に示す構成に限られることはなく、種々の変形が可能である。そのうちのいくつかの変形例については既に述べた。さらに極端な例として、例えば拡張ハードウェア部19の部分のみの構成や、さらには外部入出力インタフェース24も設けず、プログラマブル論理回路インタフェース23を介してのみデータの入出力を行う構成などであってもよい。
【0097】
【発明の効果】
以上の説明から明らかなように、本発明によれば、あらかじめ使用する回路と順番を規定できる場合には、メインプロセッサによる最初のデータ処理開始の制御だけで、あとは処理データ(例えば処理データのヘッダ情報)を解釈するだけで、プログラマブル論理回路の複数の機能回路によるデータ処理を順次実行してゆくことができる。このため、メインプロセッサによる制御の処理ステップを削減して高速化を図ることができるとともに、消費電力も低減することができる。
【0098】
また、回路の再構成のための制御に対するメインプロセッサの負荷が軽減されることによって、その処理パワーを他の処理へ使用できるため、システム全体のパフォーマンスの向上を図ることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の情報処理システムの実施の一形態を示す構成図である。
【図2】プログラマブル論理回路の一例を示す平面構造図である。
【図3】プログラマブル論理回路の内部構造の一例を示すブロック図である。
【図4】参照テーブルの一例の説明図である。
【図5】処理データおよび回路情報と、これらを格納するメモリアドレス空間の説明図である。
【図6】プログラマブル論理回路への処理回路の第1の再構成例の説明図である。
【図7】プログラマブル論理回路への処理回路の第1の再構成例における動作時の一例を示すタイミングチャートである。
【図8】プログラマブル論理回路への処理回路の第1の再構成例における動作の一例を示すフローチャートである。
【図9】プログラマブル論理回路への処理回路の第2の再構成例の説明図である。
【図10】プログラマブル論理回路への処理回路の第2の再構成例における動作時の一例を示すタイミングチャートである。
【図11】プログラマブル論理回路への処理回路の第2の再構成例における動作の一例を示すフローチャートである。
【図12】プログラマブル論理回路への処理回路の第3の再構成例の説明図である。
【図13】プログラマブル論理回路への処理回路の第3の再構成例における動作時の一例を示すタイミングチャートである。
【図14】プログラマブル論理回路への処理回路の第3の再構成例における動作の一例を示すフローチャートである。
【図15】プログラマブル論理回路への処理回路の第4の再構成例の説明図である。
【図16】プログラマブル論理回路への処理回路の第4の再構成例における動作時の一例を示すタイミングチャートである。
【図17】従来の情報処理システムの一例を示すブロック図である。
【図18】DPGAの論理セル構造の一例の説明図である。
【符号の説明】
1…情報処理システム、2…ネットワーク、3…外部機器、11…CPU、12…ホストバス、13…チップセット、14…メインメモリ、15…システムバス、16…ハードディスクインタフェース、17…ハードディスクドライブ、18…通信インタフェース、19…拡張ハードウェア部、21…プログラマブル論理回路、22…ローカルメモリ、23…プログラマブル論理回路インタフェース、24…外部入出力インタフェース、31…論理セル、32…配線領域、33…入出力端子、41…コンフィギュレーションメモリ、42…回路素子、51…アプリケーションサーバ、52,53…クライアントコンピュータ、54…通信ネットワーク、55…メインプロセッサ、56…拡張ハードウェア、57…アプリケーションプログラム、58…拡張コード、59…メインプロセッサコード、60…OS、61…コード選択機能、71…DRAM、72,75…マルチプレクサ、73…ルックアップテーブル、74…フリップフロップ。
Claims (7)
- 回路情報を変更することによって機能を随時変更し再構成することが可能なプログラマブル論理回路を備えた情報処理装置において、予め使用する回路情報と順番を保持する回路情報保持手段と、与えられた処理データから前記プログラマブル論理回路の再構成に使用する最初の回路情報を特定するとともに特定された回路情報から前記回路情報保持手段に保持されている順番に前記回路情報により前記プログラマブル論理回路を再構成して処理回路を構成し該処理回路に前記処理データの処理を行わせるインタフェース手段を有していることを特徴とする情報処理装置。
- 前記処理データのヘッダ部には、あらかじめ規定された処理ステップの順番、前記順番に対応した再構成する回路情報を格納した前記回路情報保持手段のアドレス情報、前記順番に対応した回路で処理されたデータを格納するための記憶手段のアドレス情報、前記順番に対応して前記プログラマブル論理回路に連続的に同時再構成可能な回路数の情報が付加されていることを特徴とする請求項1に記載の情報処理装置。
- 前記インタフェース手段は、前記プログラマブル論理回路の構成可能な最大回路規模と再構成する回路規模との関係において、連続する処理回路が同時に再構成できる領域が確保できない場合に、処理ステップの順番に対応して回路の再構成と構成した処理回路による処理と、該処理回路で処理された中間処理データの前記記憶手段への入出力を順次行いながら連続的に処理が行われるように制御することを特徴とする請求項2に記載の情報処理装置。
- 前記インタフェース手段は、前記プログラマブル論理回路の構成可能な最大回路規模と再構成する回路規模との関係において、複数の処理回路の再構成を行ってから、該処理回路における処理が連続して実行され、最後の処理回路による結果を中間処理データとして前記記憶手段に格納し、続けて複数の処理回路の再構成と複数の処理回路における処理が順次実行されるように制御することを特徴とする請求項2に記載の情報処理装置。
- 前記インタフェース手段は、前記プログラマブル論理回路の構成可能な最大回路規模と再構成する回路規模との関係において、複数の処理回路の再構成を、同時に再構成できる数だけ連続的に行いながら、最初の処理回路の再構成が終了した時点で最初の処理が実行されるとともに、処理の実行と並列的に次の回路の再構成を行い、処理結果を次に再構成された処理回路に受け渡して連続して処理が行われるように制御することを特徴とする請求項2に記載の情報処理装置。
- 前記処理回路における処理結果は中間処理データとして前記記憶手段に格納可能であることを特徴とする請求項4または請求項5に記載の情報処理装置。
- 前記処理回路における処理結果は、予め規定した処理ステップの処理終了ごとに中間処理データとして前記記憶手段に格納可能であることを特徴とする請求項4または請求項5に記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23838499A JP3587095B2 (ja) | 1999-08-25 | 1999-08-25 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23838499A JP3587095B2 (ja) | 1999-08-25 | 1999-08-25 | 情報処理装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001068993A JP2001068993A (ja) | 2001-03-16 |
JP2001068993A5 JP2001068993A5 (ja) | 2004-10-28 |
JP3587095B2 true JP3587095B2 (ja) | 2004-11-10 |
Family
ID=17029401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23838499A Expired - Fee Related JP3587095B2 (ja) | 1999-08-25 | 1999-08-25 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3587095B2 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434687B1 (en) * | 1997-12-17 | 2002-08-13 | Src Computers, Inc. | System and method for accelerating web site access and processing utilizing a computer system incorporating reconfigurable processors operating under a single operating system image |
JP3561506B2 (ja) * | 2001-05-10 | 2004-09-02 | 東京エレクトロンデバイス株式会社 | 演算システム |
DE10139610A1 (de) | 2001-08-11 | 2003-03-06 | Daimler Chrysler Ag | Universelle Rechnerarchitektur |
FR2838208B1 (fr) * | 2002-04-03 | 2005-03-11 | Centre Nat Rech Scient | Architecture de calcul logique comprenant plusieurs modes de configuration |
WO2004088528A1 (ja) * | 2003-03-31 | 2004-10-14 | Fujitsu Limited | 半導体装置 |
US20070038971A1 (en) * | 2003-09-30 | 2007-02-15 | Tatsuo Hiramatsu | Processing device with reconfigurable circuit, integrated circuit device and processing method using these devices |
CN100412801C (zh) * | 2003-09-30 | 2008-08-20 | 三洋电机株式会社 | 备有可重构电路的处理装置、集成电路装置 |
JP2005122514A (ja) * | 2003-10-17 | 2005-05-12 | Rikogaku Shinkokai | プログラム共通制御のソフトウェア及びハードウェアで成る装置 |
JP3838367B2 (ja) * | 2003-12-26 | 2006-10-25 | 東京エレクトロン株式会社 | プログラマブル論理回路制御装置、プログラマブル論理回路制御方法及びプログラム |
US7365566B2 (en) | 2004-02-12 | 2008-04-29 | Matsushita Electric Industrial Co., Ltd. | Programmable logic circuit |
WO2006011232A1 (ja) * | 2004-07-30 | 2006-02-02 | Fujitsu Limited | リコンフィギュラブル回路およびリコンフィギュラブル回路の制御方法 |
US7941794B2 (en) | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
JP3810419B2 (ja) | 2004-12-07 | 2006-08-16 | 松下電器産業株式会社 | 再構成可能な信号処理プロセッサ |
JP2006260411A (ja) * | 2005-03-18 | 2006-09-28 | Japan Radio Co Ltd | 信号処理装置およびそれを利用した通信機器 |
JP5175517B2 (ja) * | 2005-04-12 | 2013-04-03 | パナソニック株式会社 | プロセッサ |
CN101258469B (zh) * | 2005-09-05 | 2010-09-15 | 日本电气株式会社 | 信息处理设备 |
JP4720436B2 (ja) * | 2005-11-01 | 2011-07-13 | 株式会社日立製作所 | リコンフィギュラブルプロセッサまたは装置 |
JP2007133456A (ja) * | 2005-11-08 | 2007-05-31 | Hitachi Ltd | 半導体装置 |
WO2007060932A1 (ja) * | 2005-11-25 | 2007-05-31 | Matsushita Electric Industrial Co., Ltd. | 動的再構成論理回路を有するマルチスレッドプロセッサ |
JP2007279984A (ja) * | 2006-04-05 | 2007-10-25 | Fuji Xerox Co Ltd | データ処理装置およびプログラム |
JP4997821B2 (ja) * | 2006-05-10 | 2012-08-08 | 富士ゼロックス株式会社 | データ処理装置及びそのプログラム |
JP4853185B2 (ja) * | 2006-08-29 | 2012-01-11 | 富士ゼロックス株式会社 | 情報処理システム |
JPWO2008026273A1 (ja) * | 2006-08-31 | 2010-01-14 | 富士通株式会社 | Dmaコントローラ |
JP5045036B2 (ja) * | 2006-09-05 | 2012-10-10 | 富士ゼロックス株式会社 | データ処理装置 |
KR100886730B1 (ko) * | 2006-11-02 | 2009-03-04 | 후지쯔 가부시끼가이샤 | 재구성 가능 회로 및 재구성 가능 회로의 제어 방법 |
DE102007022970A1 (de) * | 2007-05-16 | 2008-11-20 | Rohde & Schwarz Gmbh & Co. Kg | Verfahren und Vorrichtung zur dynamischen Rekonfiguration eines Funkkommunikationssystems |
US20100223596A1 (en) * | 2007-10-03 | 2010-09-02 | Takeshi Inuo | Data processing device and method |
JP5175524B2 (ja) * | 2007-11-13 | 2013-04-03 | 株式会社日立製作所 | コンパイラ |
JP5277615B2 (ja) * | 2007-11-22 | 2013-08-28 | 富士ゼロックス株式会社 | データ処理装置及びデータ処理プログラム |
JP2009187478A (ja) * | 2008-02-08 | 2009-08-20 | Sanyo Electric Co Ltd | 情報処理装置、情報処理方法およびプロセッサ |
JP5355152B2 (ja) * | 2009-03-10 | 2013-11-27 | 三菱電機株式会社 | 動的再構成装置 |
JP5438358B2 (ja) * | 2009-04-13 | 2014-03-12 | キヤノン株式会社 | データ処理装置及びその制御方法 |
US8612789B2 (en) * | 2011-01-13 | 2013-12-17 | Xilinx, Inc. | Power management within an integrated circuit |
JP5994679B2 (ja) * | 2013-02-26 | 2016-09-21 | 株式会社ソシオネクスト | 処理装置、及び処理装置の制御方法 |
JP6824806B2 (ja) * | 2017-04-10 | 2021-02-03 | 東芝デベロップメントエンジニアリング株式会社 | 管理装置 |
-
1999
- 1999-08-25 JP JP23838499A patent/JP3587095B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001068993A (ja) | 2001-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3587095B2 (ja) | 情報処理装置 | |
Baumgarte et al. | PACT XPP—A self-reconfigurable data processing architecture | |
US6278289B1 (en) | Content-addressable memory implemented using programmable logic | |
JP4500772B2 (ja) | 集積回路のプログラマブル論理の再構成 | |
US6326806B1 (en) | FPGA-based communications access point and system for reconfiguration | |
JP3801214B2 (ja) | 再構成可能な演算システム | |
JP3921367B2 (ja) | データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム | |
KR101080465B1 (ko) | 데이터 처리 장치 | |
US7178130B2 (en) | Digital processing architecture using compiled dataflow definition | |
KR20070112468A (ko) | 퍼스널 컴퓨터(pc) 아키텍쳐로의 프로그래머블 로직 통합 | |
JP2000311156A (ja) | 再構成可能並列計算機 | |
US11232247B1 (en) | Adaptable dynamic region for hardware acceleration | |
US11082364B2 (en) | Network interface device | |
WO2018067251A1 (en) | Methods and apparatus for dynamically configuring soft processors on an integrated circuit | |
Jara-Berrocal et al. | VAPRES: A virtual architecture for partially reconfigurable embedded systems | |
US20020010825A1 (en) | Memory resource arbitrator for multiple gate arrays | |
KR20210052188A (ko) | 스토리지 주변의 계층적 정렬 가속을 위한 시스템 및 방법 | |
JP3832557B2 (ja) | プログラマブル論理回路への回路の再構成方法および情報処理システム | |
Weinhardt et al. | Using function folding to improve silicon efficiency of reconfigurable arithmetic arrays | |
GB2424503A (en) | Active memory device including a processor array | |
Zamacola et al. | An integrated approach and tool support for the design of fpga-based multi-grain reconfigurable systems | |
EP3877851A1 (en) | Network interface device | |
JP2022054412A (ja) | マイクロセクタインフラストラクチャに基づくロジックファブリック | |
Möller et al. | A NoC-based infrastructure to enable dynamic self reconfigurable systems | |
JP3573193B2 (ja) | 情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040702 |
|
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: 20040720 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040802 |
|
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: 20070820 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080820 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090820 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100820 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110820 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120820 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120820 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |