(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムによる処理の少なくとも一部分を処理するプログラマブル論理回路を備え、前記アプリケーションプログラムからの命令により、前記プログラマブル論理回路に構成された回路を用いて処理を実行する処理手段と、
前記プログラマブル論理回路に前記回路を構成するための複数個の回路情報を記憶し、指定情報により指定される１つの回路の回路情報を、前記記憶された回路情報に基づいて得て提供するようにする回路情報提供手段と、
前記プログラマブル論理回路に構成する回路を特定するために前記アプリケーションプログラムにより指定される情報を前記指定情報として前記回路情報提供手段に渡すことにより、前記回路情報提供手段から前記指定情報により指定された回路情報を取得し、この取得した回路情報により前記処理手段のプログラマブル論理回路に前記指定された回路を構成する取得手段と、
前記回路情報提供手段に対して、更新した回路情報を提供すると共に、前記回路情報を更新した旨の更新通知を行なう回路情報更新手段と、
ユーザインターフェース手段と、
を備え、
前記回路情報提供手段は、記憶している回路情報を、前記回路情報更新手段から受けた前記更新した回路情報に書き替えると共に、前記更新通知を前記取得手段に転送し、
前記取得手段は、前記回路情報提供手段から受け取った前記更新通知を前記ユーザインターフェース手段を通じてユーザに提示すると共に、当該提示された更新通知に対応するユーザからの更新指示を受け付け、前記ユーザインターフェース手段を通じて前記更新指示を受け取ったときに、前記回路情報提供手段に、前記更新通知で示される更新回路を前記指定情報として送り、当該指定情報に対応して、前記回路情報提供手段から送られてくる前記更新回路の回路情報を受け取って、前記プログラマブル論理回路に前記更新回路を構成するようにする
ことを特徴とする情報処理システム。
【請求項２】
前記回路情報提供手段は、
前記プログラマブル論理回路に前記回路を構成するための複数個の回路情報を記憶する記憶手段と、
前記取得手段からの前記指定情報を受けて、この指定情報により指定される一つの回路の回路情報を、前記記憶手段に記憶された回路情報を用いて生成する機能を備える編集手段と、
前記回路情報更新手段から前記更新通知を受けたときに、前記取得手段に前記更新通知を渡す手段と、
を備えることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
請求項１に記載の情報処理システムにおいて、
前記回路情報提供手段と、前記取得手段及び処理手段を構成する部分とが、ネットワークを介して接続されていることを特徴とする情報処理システム。
【請求項４】
請求項２に記載の情報処理システムにおいて、
前記記憶手段を構成する部分と、前記編集手段を構成する部分と、前記取得手段及び処理手段を構成する部分とが、ネットワークを介して接続されていることを特徴とする情報処理システム。
【請求項５】
請求項２または請求項４に記載の情報処理システムにおいて、
前記記憶手段に記憶される複数個の回路情報のそれぞれは、自己の回路情報の識別子を備えるとともに、当該回路情報の一部または全部を他の回路情報で構成する場合には、前記プログラマブル論理回路に回路を構成するための回路データとして、当該他の回路情報の識別子を参照識別子として備えるものであり、
前記編集手段は、前記取得手段からの前記指定情報により指定される回路の回路情報を、当該指定された回路の回路情報と前記参照識別子で示される他の回路情報とを前記記憶手段から入手して生成する
ことを特徴とする情報処理システム。
【請求項６】
請求項２、請求項４または請求項５に記載の情報処理システムにおいて、
前記記憶手段に記憶される複数個の回路情報のそれぞれは、回路データ部と、その付加情報部とからなり、
前記付加情報部は、自己の回路情報の識別子を含むとともに、当該回路情報の一部または全部を他の回路情報で構成する場合には、当該他の回路情報の識別子を参照識別子として含むものであり、
前記回路データ部は、前記プログラマブル論理回路のコンフィギュレーションメモリのアドレスと、そのアドレスに格納される回路データとの対で記述され、前記回路情報の一部または全部が他の回路情報で構成される場合には、前記参照識別子が、前記回路情報において前記他の回路情報を参照する位置に対応するアドレスの回路データとして記述されており、
前記編集手段は、前記取得手段からの前記指定情報により指定される回路の回路情報を、その識別子により前記記憶手段に照会し、
前記記憶手段は、前記編集手段からの照会に応じて、その照会時の前記識別子で示される回路情報の前記付加情報部が参照識別子を含む場合には、その参照識別子を前記編集手段に返し、
前記編集手段は、前記記憶部から入手した前記参照識別子を用いて、前記記憶手段から前記他の回路情報を取得する
ことを特徴とする情報処理システム。
【請求項７】
前記更新した回路情報により更新される回路は、前記プログラマブル論理回路の予め定められた領域に、固定的に構成されるものであることを特徴とする請求項１〜請求項６のいずれかに記載の情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、アプリケーションプログラムによる処理の少なくとも一部分を、回路構成を再構成できるプログラマブル論理回路で処理することが可能である情報処理システムに関する。
【０００２】
【従来の技術】
デジタル回路装置、特に特定用途向け集積回路（ＡＳＩＣ）の分野において、製品の開発期間を短縮するために、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）やプログラマブルロジックデバイス（ＰＬＤ）などで構成されたプログラマブル論理回路が広く使われている。
【０００３】
これらのプログラマブル論理回路は、論理回路を記述する回路情報をこれらに読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。このため、プログラマブル論理回路を用いることで、従来は回路設計の終了後に数週間から数か月を必要とした集積回路の作製時間が不要になるというメリットがある。特に、米国特許第４，７００，１８７号の発明のような電気的に再構成可能なプログラマブル論理回路は、一度作製した回路を必要に応じて自由に何度でも変更できるという利点があり、プログラマブル論理回路は、ますます広く使われるようになってきている。
【０００４】
この種のプログラマブル論理回路の回路を設計する装置のひとつとして、特開平６−２３２２５９号公報に開示される「ＦＰＧＡ回路設計装置及び方法」の例がある。これを従来例１として図１８及び図１９を参照しながら説明する。
【０００５】
図１８は、大規模ＦＰＧＡ回路を設計するＣＡＤシステムの構成図を示したものである。この装置は、予め、配置配線情報および論理機能情報を有したＦＰＧＡ機能モジュールよりなるハードマクロセルを、複数個、登録したデータベース１２を有し、このデータベースに登録された複数のハードマクロセルを用いて配置、配線することで、より大規模のＦＰＧＡ集積回路を設計するものである。
【０００６】
この装置においては、マンマシンインターフェースとしてのデータ入出力装置１０に対して設計者が操作してファイル管理プログラム群１１を動作させる。このファイル管理プログラム群１１は、論理ファイル管理プログラム、ライブラリ管理プログラム、配置配線管理プログラム等を有し、これらにより、管理対象であるデータベース１２を管理する。
【０００７】
データベース１２は、ＦＰＧＡの論理機能情報を多数登録した論理ファイルと、機能モジュールとしてのＦＰＧＡセルを登録したセルライブラリと、ＦＰＧＡ内外の配置配線情報を登録した配置配線ファイルとからなる。セルライブラリには、予め配置配線情報および論理機能情報を持ち、ペリフェラル回路等として特定の機能を実行するハードマクロセルを予め多数登録する。このデータベース１２の各ファイルの内容は、適宜、診断システム１３により読み出されて診断され、その診断データ１４が出力される。
【０００８】
そして、このデータベースに登録される各ファイルの内容に従い、図面入力システム、ネットリスト生成システム、レイアウトシステム、セル内配置配線システム、出力プログラムを順次用いることにより、大規模ＦＰＧＡ回路を実現するための設計図面及びそのプログラムを出力させる。
【０００９】
このＣＡＤシステムによって設計された１チップのＦＰＧＡによるマイクロコンピュータシステムの構成例を図１９に示す。このＦＰＧＡチップ２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、Ｉ／Ｏポート２４、処理すべきプログラムの経過時間を計るＰＩＴ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｖａｌ  Ｔｉｍｅｒ）２５、同時に発生した複数の装置からの割り込み信号を制御するＰＩＣ  （Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）２６、ＣＰＵ２１と必要なメモリアクセスの調停を行うＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２７のそれぞれが、アドレス／データバス２８および制御信号線２９に接続されて構成される。
【００１０】
このうち、Ｉ／Ｏポート２４、ＰＩＴ２５、ＰＩＣ２６、ＤＭＡＣ２７に相当するハードマクロセルが、あらかじめデータベース１２のセルライブラリに登録されており、これらは、このハードマクロセルをそのまま読み出してＦＰＧＡチップ２０上にマッピングするのみで、これらのＦＰＧＡセル内の配置配線処理を終えることができる。
【００１１】
以上のようにして、この従来例１によれば、あらかじめ配置配線情報及び論理機能情報を有したＦＰＧＡ機能モジュールよりなるハードマクロセルを複数登録したライブラリを有し、このライブラリに登録された複数のハードマクロセルを用いて配置、配線を行うことで、既存のＦＰＧＡ回路を設計財産として活かし、システム設計の負担を軽減して開発期間を短縮した設計ができる。
【００１２】
ところで、以上説明した従来例１は、１個のＦＰＧＡチップを設計する際の発明に関するものであるが、最近の論理回路は複雑さが増し、一つのプログラマブル論理回路装置では実現できない規模にまで回路規模が大きくなっている。
【００１３】
この問題を解決するためのひとつの方法として、異なる時間に異なる論理回路を実現するために、プログラマブル論理回路を処理の途中で再構成することが提案されている。この方法を用いることにより、携帯情報端末のように、装置が小型であるため、内蔵できる回路規模に制約がある場合でも、様々な処理が比較的高速に行えるという利点がある。
【００１４】
しかし、プログラマブル論理回路を再構成するときには、回路全体の回路情報を再度読み込ませるため、再構成に時間がかかるという欠点がある。さらに、処理の途中で再構成することは、処理を一時中断し、その時のデータをプログラマブル論理回路の外部の記憶装置に待避させ、新たな回路情報を読み込んで再構成し、再構成前のデータと再構成に伴う新しいデータを入力するという余分な処理が必要で、データを出し入れする処理は冗長なものとになる。
【００１５】
この問題を解決するために、米国アトメル社の「ＣＯＮＦＩＧＵＲＡＢＬＥ  ＬＯＧＩＣ」という名のデータブックに記載されているプログラマブル論理回路、および米国ザイリンクス社の「ＴＨＥ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＬＯＧＩＣ」という名のデータブックに記載されているプログラマブル論理回路では、データを記憶するためのデータ記憶装置を有し、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことで、再構成するための時間を最小に留めるようにしている。
【００１６】
このようなプログラマブル論理回路を情報処理システムに用いるときの問題は、所望の論理回路を構成するための回路情報を格納先から取り出し、必要に応じて複数の回路情報を合成して処理に適切な形式に変換し、所望の論理回路を再構成することを高速かつ効率的に行わねばならないことである。
【００１７】
上述した複数の回路情報をプログラマブル論理回路に異なる時間に再構成して所定の処理を行う情報システムは、ネットワークに接続して利用することができる。その例として、特開平１０−７８９３２号公報に記載される「リコンフィグラブル・ネットワークコンピュータ」があり、それを従来例２として図２０を参照しながら説明する。
【００１８】
この従来例２の情報処理システムは、通信ネットワークＮＥＴに接続された複数のコンピュータで構成され、その内の少なくとも一つがアプリケーションプログラムを配布するコンピュータ（アプリケーション・サーバ）ＳＢであり、残りのコンピュータが前記アプリケーションプログラムをダウンロードし、実行するクライアントとなるコンピュータ（クライアント・コンピュータ）ＣＬで構成されたシステムである。複数のクライアント・コンピュータＣＬの一部に、プログラムにより機能を随時変更し再構成することが可能な拡張ハードウェア（拡張ＨＷ）３１が搭載されている。
【００１９】
サーバＳＢに格納されたアプリケーションプログラムＡＰにおいては、その一部の機能に対して、拡張ハードウェアのプログラムコード（拡張コード）と、クライアント・コンピュータＣＬのメインのプロセッサ（メインＰ）３２のコードが含まれている。
【００２０】
クライアント・コンピュータＣＬのＯＳは、拡張ハードウェア３１が実装されているか否かを判断する機能を持ち、拡張ハードウエア３１が実装されている場合には、図２０の上側のクライアント・コンピュータＣＬのように、アプリケーションプログラムＡＰの中からハードウェア構成に適したコードのみ取り出すコード選択機能３３を持っている。また、図２０の下側のクライアント・コンピュータＣＬのように、拡張ハードウェア３１を持たない場合には、コード選択機能３３により、メインプロセッサ３２のコードが選択されてアプリケーションを利用できる。
【００２１】
別の構成では、拡張ハードウェア３１で実現する機能を、クライアント・コンピュータＣＬ上に後から動的に追加／削除が可能なＯＳの拡張機能あるいは動的ライブラリとして実現し、アプリケーションプログラムＡＰがＯＳに対し処理中に利用する拡張機能あるいは動的ライブラリの種類を登録する。ＯＳは、拡張機能あるいは動的ライブラリがクライアント上に存在する場合にはそれを用い、存在しない場合にはネットワークＮＥＴ上のサーバＳＢから必要とする拡張機能あるいは動的ライブラリを転送し、利用する。
【００２２】
また、メインプロセッサ３２用のコード、拡張ハードウェア３１用のコードは、一体となっているのではなく、アプリケーションプログラムＡＰまたはＯＳの拡張機能または動的ライブラリ毎に、個々のコードをホストコンピュータに上に備えることもできる。
【００２３】
さらに、従来例２の場合には、拡張ハードウエアを構成するプログラマブル論理回路の構成が、クライアント間で異なる場合は、拡張コードを、適当なゲート数と入出力端子数の論理回路の機能をブール式等で記述した基本モジュールと、それらの接続関係を表現したコードとすることもできる。なお、基本モジュールは、他の回路が参照して設計財産として再利用することができる。
【００２４】
さらに、この基本モジュールを、それぞれプログラマブル論理回路の基本プログラムに割り付ける機能と、複数のプログラマブル論理回路チップにまたがる大きな拡張コードの場合には、基本モジュールを接続の度合いに応じて分割し、各プログラマブル論理回路チップに配置配線する機能を、サーバまたはクライアント上に持つ。
【００２５】
また、拡張ハードウェアを利用する複数のアプリケーションを同時に実行できるように、必要のなくなったハードウェア資源を別のアプリケーションプログラムのために再利用するハードウェア資源の管理機能と、拡張ハードウェアに入りきらない拡張コードを時分割で入れ替えるコード入れ替え機能を持つ。
【００２６】
また、クライアント上で実行されるアプリケーションプログラム毎に適宜設定されるプライオリティ値、メインプロセッサの処理能力値、拡張ハードウェアの処理能力値、ハードウェア資源量、コード入れ替えのために必要な処理能力値を基に、ハードウェア資源に入りきらない複数のアプリケーションプログラムに対して選択する拡張ハードウェア管理機能を持つ。
【００２７】
複数のアプリケーションが同時に同じ拡張コードを拡張ハードウェアで利用する場合には、内部状態のみを時分割で切り替えて機能を共有する。
【００２８】
以上のように、従来例２の場合には、ネットワークで接続されたコンピュータ上で、サーバから配布されたアプリケーションプログラムをクライアント側で実行する際、クライアント側に、プログラムにより機能を随時変更し、再構成可能な拡張ハードウェアを搭載し、サーバに格納されたアプリケーションプログラムには、クライアントのメインプロセッサコードと拡張コードを含ませ、拡張ハードウェアの有無、種類を判断したコード選択機能によって、クライアント側の計算機の構成を変え、処理に適した構成にすることでアプリケーションプログラムを高速に処理できる。
【００２９】
また、ネットワーク上で、クライアント側に特殊なハードウエアを必要とする新しいサービスを開始しようとする場合には、従来は、クライアント側のユーザはそのために新しいハードウエアを導入する必要があり、また、サービスの提供者は、新しいハードウエアをもつ一部のユーザに対してのみ、新しいサービスを提供することになったが、上述の従来例２を実施することにより、新しいハードウエアを導入することなく、新しいサービスを開始することが可能となる。
【００３０】
【発明が解決しようとする課題】
しかしながら、従来例２では、回路の開発者側が、回路の機能あるいは性能のバージョンアップを行った場合、ユーザ側はその回路を時間差なく使用することができない、という問題があった。
【００３１】
また、ユーザ側がその回路を入手してプログラマブル論理回路上で使用するためには、回路の構成手続きとして、いくつかの回路情報を、回路情報が格納されているサーバとの間でやり取りするという複雑な手順を必要とする、という問題があった。
【００３２】
また、従来例２の場合には、ひとつの回路は、より小さい機能を持った基本モジュールの集まりとして構成される場合もあり、この基本モジュールは、他の回路が参照して設計財産として再利用することができるが、クライアント・コンピュータに、拡張コードとして格納する回路情報を、基本モジュールの集まりとして構成した場合に、その一つの基本モジュールに修正や改良が必要になった場合、クライアント・コンピュータに格納されている回路情報の全体を初めから作成し直さなければならないという問題がある。
【００３３】
この発明は、アプリケーションプログラムの少なくとも一部を、プログラマブル論理回路で処理する情報処理システムにおいて、プログラマブル論理回路に構成する回路の開発者側が、回路の機能あるいは性能のバージョンアップを行った場合に、ユーザ側がその回路を時間差なく使用することができるようにすることを目的とする。
【００３４】
また、この発明は、プログラマブル論理回路に構成する回路の機能や性能をバージョンアップした回路情報を生成するときに、その回路情報の全体を作成し直すことなく、必要な部分のみを変更するだけで簡単に生成することができるようにすることを目的とする。
【００３５】
【課題を解決するための手段】
上記課題を解決するため、第１の発明による情報処理システムは、
アプリケーションプログラムによる処理の少なくとも一部分を処理するプログラマブル論理回路を備え、前記アプリケーションプログラムからの命令により、前記プログラマブル論理回路に構成された回路を用いて処理を実行する処理手段と、
前記プログラマブル論理回路に前記回路を構成するための複数個の回路情報を記憶し、指定情報により指定される１つの回路の回路情報を、前記記憶された回路情報に基づいて得て提供するようにする回路情報提供手段と、
前記プログラマブル論理回路に構成する回路を特定するために前記アプリケーションプログラムにより指定される情報を前記指定情報として前記回路情報提供手段に渡すことにより、前記回路情報提供手段から前記指定情報により指定された回路情報を取得し、この取得した回路情報により前記処理手段のプログラマブル論理回路に前記指定された回路を構成する取得手段と、
前記回路情報提供手段に対して、更新した回路情報を提供すると共に、前記回路情報を更新した旨の更新通知を行なう回路情報更新手段と、
ユーザインターフェース手段と、
を備え、
前記回路情報提供手段は、記憶している回路情報を、前記回路情報更新手段から受けた前記更新した回路情報に書き替えると共に、前記更新通知を前記取得手段に転送し、
前記取得手段は、前記回路情報提供手段から受け取った前記更新通知を前記ユーザインターフェース手段を通じてユーザに提示すると共に、当該提示された更新通知に対応するユーザからの更新指示を受け付け、前記ユーザインターフェース手段を通じて前記更新指示を受け取ったときに、前記回路情報提供手段に、前記更新通知で示される更新回路を前記指定情報として送り、当該指定情報に対応して、前記回路情報提供手段から送られてくる前記更新回路の回路情報を受け取って、前記プログラマブル論理回路に前記更新回路を構成するようにする
ことを特徴とする。
【００３６】
第２の発明による情報処理システムは、第１の発明において、
前記回路情報提供手段は、
前記プログラマブル論理回路に前記回路を構成するための複数個の回路情報を記憶する前記記憶手段と、
前記取得手段からの前記指定情報を受けて、この指定情報により指定される一つの回路の回路情報を、前記記憶手段に記憶された回路情報を用いて生成する機能を備える編集手段と、
前記回路情報更新手段から前記更新通知を受けたときに、前記取得手段に前記更新通知を渡す手段と、
を備えることを特徴とする。
【００３７】
第３の発明による情報処理システムは、第１の発明または第２の発明において、
前記回路情報提供手段と、前記取得手段及び処理手段を構成する部分とが、ネットワークを介して接続されていることを特徴とする。第２の発明に従属する場合には、前記憶手段を構成する部分と、前記編集手段を構成する部分とが、さらに、ネットワークを介して接続されていることを特徴とする。
【００３８】
第４の発明による情報処理システムは、第２の発明において、
前記記憶手段に記憶される複数個の回路情報のそれぞれは、自己の回路情報の識別子を備えるとともに、当該回路情報の一部または全部を他の回路情報で構成する場合には、前記プログラマブル論理回路に回路を構成するための回路データとして、当該他の回路情報の識別子を参照識別子として備えるものであり、
前記編集手段は、前記取得手段からの前記指定情報により指定される回路の回路情報を、当該指定された回路の回路情報と前記参照識別子で示される他の回路情報とを前記記憶部から入手して生成する
ことを特徴とする。
【００３９】
この第４の発明においても、記憶部を構成する部分と、編集手段を構成する部分と、取得手段及び処理手段を構成する部分とは、ネットワークを介して接続されていてもよい。
【００４０】
第５の発明による情報処理システムは、
前記記憶手段に記憶される複数個の回路情報のそれぞれは、回路データ部と、その付加情報部とからなり、
前記付加情報部は、自己の回路情報の識別子を含むとともに、当該回路情報の一部または全部を他の回路情報で構成する場合には、当該他の回路情報の識別子を参照識別子として含むものであり、
前記回路データ部は、前記プログラマブル論理回路のコンフィギュレーションメモリのアドレスと、そのアドレスに格納される回路データとの対で記述され、前記回路情報の一部または全部が他の回路情報で構成される場合には、前記参照識別子が、前記回路情報において前記他の回路情報を参照する位置に対応するアドレスの回路データとして記述されており、
前記編集手段は、前記取得手段からの前記指定情報により指定される回路の回路情報を、その識別子により前記記憶手段に照会し、
前記記憶手段は、前記編集手段からの照会に応じて、その照会時の前記識別子で示される回路情報の前記付加情報部が参照識別子を含む場合には、その参照識別子を前記編集手段に返し、
前記編集手段は、前記記憶部から入手した前記参照識別子を用いて、前記記憶手段から前記他の回路情報を取得する
ことを特徴とする。
【００４１】
上記第１〜第５の発明において、更新される回路は、前記プログラマブル論理回路の予め定められた領域に、固定的に構成されるものであるとよい。
【００４２】
【作用】
第１の発明の情報処理システムにおいては、アプリケーションプログラムがプログラマブル論理回路に回路を構成するために、その回路の指定情報を取得手段に送ると、取得手段は、回路情報提供手段に、その指定情報を送る。すると、回路情報提供手段は、記憶している回路情報に基づいて指定された回路情報を生成して取得手段にその回路情報を渡す。取得手段は、回路情報提供手段から得た回路情報により、指定された回路をプログラマブル論理回路に構成する。
【００４３】
したがって、第１の発明によれば、取得手段が回路情報提供手段に回路の指定情報を渡すと、自動的に必要な回路情報が取得手段に送られてきて、プログラマブル論理回路に再構成されるので、予め回路情報をアプリケーションプログラム内などに格納しておく必要はない。
【００４４】
そして、回路情報更新手段により、回路情報の更新の通知が入力されると、回路情報提供手段には、更新された回路情報が記憶されると共に、ユーザインターフェース手段を通じて、更新された回路情報の情報がユーザに対して通知される。ユーザは、このユーザインターフェースを通じて通知された更新された回路情報を利用するかどうかを、当該ユーザインターフェースを通じて入力する。
【００４５】
すると、取得手段は、回路情報提供手段に更新された回路情報を指定する指定情報を送るので、回路情報提供手段は、記憶された当該更新された回路情報を取得手段に渡す。これにより、プログラマブル論理回路には、更新された回路が再構成される。
【００４６】
こうして、第１の発明によれば、プログラマブル論理回路に構成された回路がバージョンアップされたときに、ユーザは、それをタイムリーに知って、プログラマブル論理回路に再構成して利用することができる。したがって、バージョンアップされた回路が、プログラマブル論理回路において、常時、使用される回路である場合には、その効果は大きい。
【００４７】
第２の発明においては、回路情報提供手段は、回路情報を記憶する記憶手段と、この記憶手段の回路情報を用いて、取得手段から要求される指定回路情報を生成する編集手段とからなる。
【００４８】
したがって、記憶手段は、直接的に取得手段との複雑なやり取りを行う必要がなく、回路情報の管理が容易である。そして、プログラマブル論理回路上への実際的な回路情報への変更を、編集手段が行うようにすることができるため、記憶手段に記憶される回路情報の回路データを、基本的な形式とすることができるので、この点でも、記憶手段で回路情報の管理が容易になる。
【００４９】
また、第３の発明の情報処理システムにおいては、回路情報提供手段を構成する部分と、取得手段および処理手段を構成する部分とが、または、記憶手段を構成する部分と、編集手段を構成する部分と、取得手段および処理手段を構成する部分とが、ネットワークを介して接続されており、一つの情報処理装置内に編集手段や記憶手段を持つ必要がない。
【００５０】
このため、取得手段および処理手段とアプリケーションプログラムで動作する情報処理装置から見ると、指定情報をネットワークを通じて送出すると、その指定情報に対応した回路情報が自動的に送られてくるシステムの構造となり、回路情報提供手段の部分（または、記憶手段部分と、編集手段部分）、取得手段および処理手段の部分の構成は、それぞれ任意にできる。
【００５１】
また、第４の発明の情報処理システムにおいては、記憶手段に記憶される回路情報の構造は、他の回路を参照しない回路データの構成の回路情報を最下層の回路情報として、いわゆるツリー構造となる。
【００５２】
すなわち、各回路情報は、自己の識別子として例えば回路名を備える。そして、各回路情報は、その一部または全部を他の回路情報で構成する場合には、回路データとして、当該他の回路情報の識別子を参照識別子として備える。参照識別子は、他の回路情報の回路名を用いることができる。参照識別子で示される他の回路情報も、その一部または全部を他の回路情報で構成することができる。そして、最下層の回路情報は、参照識別子を回路データに持たない構造となる。
【００５３】
編集手段は、指定情報で指定された回路情報が、その一部を他の回路情報で構成される場合には、当該指定された回路情報と、それに含まれる参照識別子で示される他の回路情報とを記憶手段から取得して結合し、指定された回路情報を生成する。また、指定された回路情報の全部が他の回路情報で構成される場合には、参照識別子で示される他の回路情報のすべてを記憶手段から取得して結合し、指定された回路情報を生成する。
【００５４】
したがって、この第４の発明によれば、バージョンアップした回路の回路情報を生成する際に、バージョンアップに関与する回路部分のみを更新して、バージョンアップに関与しない、参照識別子で示されるその他の回路情報部分は、全く留意する必要はない。このため、バージョンアップ回路の回路情報の生成が容易である。
【００５５】
そして、回路情報の付加情報として参照識別子が含まれるので、編集手段は、回路情報の回路データ部を解析して、指定された回路情報を構成する他の回路情報の参照識別子を見い出す必要はなく、編集手段は、迅速に記憶手段から必要な回路情報の取得を行える。したがって、更新された回路情報が、更新された部分と、その他の更新に関与しない参照識別子で示される回路部分とに分けられて構成されることにより、編集手段では、迅速に記憶手段から必要な更新回路情報の取得を行って、取得手段に渡すことができる。
【００５６】
第５の発明は、記憶手段に記憶される回路情報のデータ構造に関するもので、このデータ構造にすることにより、編集手段と記憶手段との間での前記回路情報の識別子と回路情報とのやり取りを迅速に行えるようにしている。
【００５７】
すなわち、回路情報は、回路データ部と、その付加情報部とからなり、付加情報部は、自己の回路情報の識別子を含むとともに、当該回路情報の一部または全部を他の回路情報で構成する場合には、当該他の回路情報の識別子を参照識別子として含む。
【００５８】
また、この第５の発明においては、回路情報の回路データ部は、プログラマブル論理回路のコンフィギュレーションメモリのアドレスと、そのアドレスに格納される回路データとの対で記述されているとともに、回路情報の一部または全部が他の回路情報で構成される場合には、参照識別子が、回路情報において他の回路情報を参照する位置に対応するアドレスの回路データとして記述されている。
【００５９】
したがって、編集手段は、回路データ部のデータ内容に従って、参照識別子で示される回路情報を割り付けることにより、指定情報で指定された回路の回路情報を、迅速に組み立てることができる。
【００６０】
バージョンアップされる回路が、プログラマブル論理回路において、常時、使用される回路である場合には、更新された回路をプログラマブル論理回路に再構成することは有益であるが、その場合に、この第５の発明の場合には、更新対象の回路の回路データのアドレスは、固定座標として指定することにより、その配置管理が容易にできるものである。
【００６１】
【発明の実施の形態】
以下、この発明による情報処理システムの実施の形態を、図を参照しながら説明する。
【００６２】
［実施の形態の情報処理システム全体の構成の概要］
この発明による、少なくとも処理の一部分が、プログラマブル論理回路を保有するハードウエア処理部で処理される情報処理システムの実施の形態の主要な構成を図１に示す。
【００６３】
この場合の情報処理システムは、情報処理部１００と、記憶部２００および編集部３００からなる回路情報提供部４００と、回路情報更新部５００とから構成される。これら情報処理部１００と、回路情報提供部４００と、回路情報更新部５００とは、一つの情報処理装置内に構成されることもできるし、それぞれ別々の装置として、互いにネットワークを介して接続するようにして構成することもできる。また、回路情報提供部４００の記憶部２００と、編集部３００も、前記の一つの情報処理装置内に構成されることもできるし、それぞれ別々の装置として、互いにネットワークを介して接続するようにして構成することもできる。
【００６４】
また、記憶部２００と編集部３００とを一つのコンピュータシステムにより構成し、これと、コンピュータシステムからなる情報処理部１００とをネットワークを通じて接続して、情報処理システムを構成するようにすることもできる。
【００６５】
以下に説明する例では、これら情報処理部１００、記憶部２００、編集部３００、回路情報更新部５００は、それぞれ別々の装置として、互いにネットワークを介して接続する場合として説明する。
【００６６】
情報処理部１００においては、アプリケーションプログラム１０１は、実行しようとする一連の処理を複数個の処理に分割し、分割した処理をＣＰＵ１０２またはプログラマブル論理回路を保有するハードウエア処理部１０３で実行する。アプリケーションプログラム１０１には、ＣＰＵ１０２で行う処理は、ＣＰＵ１０２の命令コードで記述され、また、ハードウエア処理部１０３で行う処理は、これが保有するプログラマブル論理回路１０４に構成する回路名と、その回路を構成要素の一部として構成されたハードウエア処理部１０３の制御コードで記述されている。
【００６７】
ハードウエア処理部１０３は、処理手段を構成するもので、プログラマブル論理回路１０４として、この例ではＦＰＧＡタイプのプログラマブル論理回路を保有し、このプログラマブル論理回路１０４に構成された回路を利用して処理を行う。
【００６８】
取得手段を構成する回路情報取得部１０５は、アプリケーションプログラム１０１からのハードウエア処理部１０３のプログラマブル論理回路１０４に構成する回路の要求を受けて、その回路を構成するための回路情報を編集部３００に要求し、その要求した回路情報を編集部３００から取得する。後で説明するように、回路情報はヘッダ部とコード部（回路データ部）で構成されている。
【００６９】
また、回路情報取得部１０５は、取得した回路情報のコード部に記述されている回路データを、ハードウエア処理部１０３にロードして、そのプログラマブル論理回路１０４に回路を構成する。また、回路情報取得部１０５は、回路情報のヘッダ部に記述されている入出力ポート情報をアプリケーションプログラム１０１に提供する。
【００７０】
アプリケーションプログラム１０１は、この回路情報取得部１０５からの入出力ポート情報に基づいて、ハードウエア処理部１０３のプログラマブル論理回路１０４に構成された回路に、データを入出力する。
【００７１】
記憶部２００は、プログラマブル論理回路１０４の回路を構成する複数の回路情報を格納する格納部を備える。後述するように、この実施の形態の場合、回路情報は、他の回路情報を参照することにより、記述することができる、いわゆるツリーデータ構造によって記憶部２００に記憶することができるようにされており、これにより、過去に生成された回路情報資源を有効に活用することができるとともに、記憶部２００の記憶素子の記憶容量の削減を図っている。
【００７２】
この記憶部２００は、この例の場合には、後述するように、情報処理部１００に接続されるネットワーク上のコンピュータシステムに設けるが、情報処理部１００と一体のコンピュータシステム内に設けてもよい。
【００７３】
編集部３００は、情報処理部１００の回路情報取得部１０５からの指定情報により要求された回路の回路情報を生成するのに必要な回路情報を、記憶部２００から取得する。そして、必要に応じて、取得した回路情報を編集して、プログラマブル論理回路１０４に再構成する回路の回路情報を生成し、回路情報取得部１０５に提供する。
【００７４】
後で詳細に説明するように、回路情報は他の回路情報を参照することができるデータ構造であるので、編集部３００は、記憶部２００に要求する回路情報を照会して参照関係を解決する参照解決処理と、参照解決処理の結果に基づいて、回路情報を編集する再配置処理を行う。
【００７５】
この編集部３００は、この例の場合には、後述するように、情報処理部１００に接続されるネットワーク上のコンピュータシステムに設けるが、情報処理部１００と一体のコンピュータシステム内に設けてもよい。
【００７６】
回路情報更新部５００は、新規に生成した回路情報や、修正やバージョンアップした回路情報などの更新回路情報を記憶部２００に渡すと共に、その更新した回路名やバージョンなどの更新通知情報を編集部３００に知らせるものである。
【００７７】
この回路情報更新部５００は、回路情報作成者により作成された回路情報および更新通知情報を発生あるいは転送する装置、例えばコンピュータで構成される。この回路情報更新部５００は、回路情報作成者から回路情報を受け取り、クライアントに配布することのできるローカルエリアネットワークの管理者などでもよい。
【００７８】
この回路情報更新部５００は、回路情報提供部４００と、ネットワークを介して接続される。また、情報処理システム１００内の装置として、構成することもできる。回路情報およびその更新通知情報は、回路情報更新部５００から、例えばブロードキャスト形式によって記憶部２００および編集部３００に知らされる。
【００７９】
回路情報更新部５００からの回路情報を受け取った記憶部２００は、その回路情報を、回路情報の格納部に格納する。また、回路情報更新部５００から更新通知情報を受け取った編集部３００は、それを回路情報取得部１０５に転送し、回路情報取得部１０５からの返答を待つ。
【００８０】
また、回路情報取得部１０５は、更新情報告知部１０６により、ユーザに更新通知情報を告知する。更新情報告知部１０６は、また、ユーザからの回路を更新するか否かの操作入力を受け付けることが可能であるように構成されている。ユーザからの回路を更新するか否かの操作入力の情報は、回路情報取得部１０５を通じて、編集部３００に返される。編集部３００は、回路情報取得部１０５からの返答が更新回路を要求するものであれば、以降、通常のオペレーションと同様のデータの受け渡しを行う。
【００８１】
通常のオペレーションにおいては、回路情報取得部１０５はアプリケーションプログラム１０１が要求する回路の回路情報を編集部３００に要求する。この要求を受けた編集部３００は、要求された回路情報を、記憶部２００から回路情報を取得し、編集して生成し、回路情報取得部１０５に提供する。要求した回路情報を編集部３００から取得した回路情報取得部１０５は、その回路情報をハードウエア処理部１０３のプログラマブル論理回路にロードする。
【００８２】
［記憶部２００に記憶される回路情報の構造］
記憶部２００が格納する回路情報２０１は、図２に示すように、付加情報部であるヘッダ部２０２と、回路データ部であるコード部２０３からなる。ヘッダ部２０２には、回路名情報２０４と、入出力ポート情報２０５とが記述される。
【００８３】
回路名情報２０４には、自己の回路情報の識別子ＩＤとして、この例では、当該回路情報２０１がプログラマブル論理回路１０４に構成する回路名（以下、自回路名と呼ぶ）が記述されている。この自己の回路情報の識別子ＩＤとしての自回路名は、その回路情報２０１に付けられた名前でもある。この例では、アプリケーションプログラム１０１は、後述するように、プログラマブル論理回路１０４に構成する回路の指定情報として、この回路情報の識別子ＩＤとしての自回路名を用いる。
【００８４】
自回路名に加えて、ヘッダ部２０２の回路名情報２０４には、その回路情報２０１が参照する他の回路情報を特定するための参照識別子ｒｅｆＩＤとして、その参照する回路情報の回路名（以下、参照回路名と呼ぶ）も記述される。自己の回路情報の識別子ＩＤとしてヘッダ部２０２に記述される自回路名はひとつであるが、参照回路名は、参照する回路情報の数に応じて、複数の参照回路名がヘッダ部２０２に記述されることもある。
【００８５】
ヘッダ部２０２の入出力ポート情報２０５は、回路名情報２０４の記述の後に記述される。この入出力ポート情報２０５は、回路に対する信号の流れの方向に応じて、入力（ＩＮ）、出力（ＯＵＴ）または双方向（ＩＮ／ＯＵＴ）から選ばれるポートの種類２０６、論理セル（後に説明する）を単位にしたポートの位置座標（Ｘ，Ｙ）２０７、およびポートのデータ幅（ビット数）２０８で構成される。
【００８６】
コード部２０３は、アドレスＡＤＲとデータＤＴの対の集まりで構成される。アドレスＡＤＲは、プログラマブル論理回路１０４を構成する論理セルや配線の状態を決定するコンフィギュレーションメモリ（後に説明する）のアドレスである。データＤＴは、書き込まれたコンフィギュレーションメモリのアドレスに対応する論理セルや配線の状態を決める。
【００８７】
記憶部２００に格納されている各回路情報２０１のコード部２０３のアドレスは、ある特定のアドレス（例えば１６ビットアドレスであれば０ｘ００００など：Ｏｘは１６進表示を意味している。以下同じ）から開始する。後述するように、このアドレスに一定の値を加えてオフセットすることで、コード部のアドレスは、ハードウエア処理部１０３のプログラマブル論理回路１０４上に実際に構成する回路位置に対応したアドレスに変換される。
【００８８】
ヘッダ部２０２の回路名情報２０４に、参照回路名が記述されている場合には、その参照回路名で示される回路情報が、その参照回路名が記述されている回路情報で構成される回路において、どのように結合されるかを決める参照回路情報がコード部２０３に記述される。
【００８９】
参照回路情報は、アドレス（参照アドレスと呼ぶ）と参照回路名の対として参照元の回路情報のコード部に記述される。例えば、図２の例のアドレスｉと参照回路名ｐや、アドレスｋと参照回路名ｑなどのように記述される。後述もするように、編集部３００は、参照回路名により参照された回路情報のコード部の開始アドレスに、参照回路情報の参照アドレスを加えてオフセットした回路データを、参照元の回路情報のコード部に結合することにより、参照回路を参照元回路に結合する。
【００９０】
また、後で説明するように、アドレスＡＤＲと論理セルは一定の対応関係があるので、編集部３００は、参照アドレスから参照回路の入出力ポート位置のオフセット座標を算出して、参照回路の入出力ポート位置座標にオフセット座標を加えてオフセットした参照回路の入出力ポート情報を、参照元回路の回路情報のヘッダ部に結合する。
【００９１】
他の回路情報を用いない回路情報は、ヘッダ部２０２に参照回路名を持たない。基本回路モジュールのような最小単位の回路情報は、ヘッダ部２０２に参照回路名を持たない回路情報である。参照回路名により参照される他の回路情報が、そのヘッダ部２０２に参照回路名を持つ場合もある。このような多層構造のツリー構造の場合には、編集部３００では、最下層の回路情報から順次に回路情報を結合することにより、取得部１０５から指定された回路名の回路情報を生成するようにする。
【００９２】
［情報処理システムのハードウエア構成］
図３は、この実施の形態の情報処理システムのハードウエア構成例を示すブロック図である。この実施の形態の情報処理システムにおいて、情報処理部１００は、ＣＰＵ１１１のホストバス１１１Ｂに、チップセット１１２に含まれるメモリコントローラ（図示せず）を介して、例えばＤＲＡＭで構成されるメインメモリ１１３が接続される。
【００９３】
ホストバス１１１Ｂは、また、チップセット１１２に含まれるホスト−ＰＣＩバスブリッジ（図示せず）を介して、ＰＣＩバス１１４に接続される。ＰＣＩバス１１４には、プログラマブル論理回路インターフェース１１５を介してプログラマブル論理回路１１６と、ハードディスクインターフェース１１７を介してハードディスクドライブ１１８と、通信インターフェース１１９とが接続される。プログラマブル論理回路１１６は、図１のハードウエア処理部１０３のプログラマブル論理回路１０４に相当する。
【００９４】
通信インターフェース１１９は、ＬＡＮやインターネットなどのネットワーク６００を介して、複数個のコンピュータシステム７００に接続される。コンピュータシステム７００は、少なくとも、ＣＰＵ（図示せず）、メインメモリ（図示せず）、およびハードディスクドライブ（図示せず）などの記憶装置を保有する。
【００９５】
ハードディスクドライブ１１８により読み書きされるハードディスクには、アプリケーションプログラム（図示せず）が格納されている。アプリケーションプログラムは、ハードディスクインターフェース１１７、ＰＣＩバス１１４およびチップセット１１２に含まれるホスト−ＰＣＩブリッジ（図示せず）を介して、ハードディスクドライブ１１８からメインメモリ１１３にロードされてＣＰＵ１１１によって実行される。
【００９６】
また、アプリケーションプログラムは、ネットワーク６００に接続されるいずれかのコンピュータシステム７００の記憶装置（図示せず）に格納されている場合もある。この場合は、情報処理部１００が、アプリケーションプログラムを、ネットワーク６００に接続されるコンピュータシステム７００から、通信インターフェース１１９を介してメインメモリ１１３に取得して実行する。
【００９７】
ネットワーク６００に接続されるいずれかのコンピュータシステム７００の記憶装置（図示せず）は、回路情報を格納して、図１の記憶部２００を構成する。また、情報処理部１００のハードディスクドライブ１１８が、回路情報を格納して、図１の記憶部２００を構成することもある。
【００９８】
コンピュータシステム７００が、図１の記憶部２００として格納する回路情報を検索したり、ネットワーク６００を介して他のコンピュータシステム７００へ転送する機能は、コンピュータシステム７００の機能のひとつとしてソフトウエア的に実装される。
【００９９】
図１の編集部３００は、ネットワーク６００に接続されるいずれかのコンピュータシステム７００の機能のひとつとして、ソフトウエア的に実装される。図１の編集部３００を構成するコンピュータシステム７００と、図１の記憶部２００を構成するコンピュータシステム７００は、同じコンピュータシステムであってもよいし、別のコンピュータシステムであってもよい。
【０１００】
図１の編集部３００を構成するコンピュータシステム７００と、図１の記憶部２００を構成するコンピュータシステム７００が、別のコンピュータシステムである場合は、ネットワーク６００を介して互いに通信する。
【０１０１】
情報処理部１００の図１の回路情報取得部１０５は、通信インターフェース１１９を介してネットワーク６００に接続されたいずれかのコンピュータシステムで構成される編集部３００と通信する機能と、ＰＣＩバス１１４に接続されたプログラマブル論理回路インターフェース１１５を介してプログラマブル論理回路１１６に回路データをロードする機能とを含んだ機能として、ソフトウエア的に情報処理部１００に実装される。
【０１０２】
このように、回路情報取得部１０５は、情報処理部１００にソフトウエア的に実装されるので、情報処理部１００で実行されるアプリケーションプログラムと通信することができる。
【０１０３】
図１のハードウエア処理部１０３は、プログラマブル論理回路インターフェース１１５とプログラマブル論理回路１１６とで構成される。ハードウエア処理部１０３は、ＰＣＩバス１１４に接続されたプログラマブル論理回路インターフェース１１５を介して、ＣＰＵ１１１で実行されるアプリケーションプログラムと通信する機能を持つ。
【０１０４】
図１の更新情報告知部１０６は、グラフィカル・ユーザ・インターフェース１２０と、ディスプレイ１２１と、マウスなどのポインティングデバイス１２２とで構成される。ディスプレイ１２１の画面には、更新された回路の回路名やバージョンなどの通知情報の一覧が表示される。そして、ユーザは、ディスプレイ１２１の画面に表示された更新通知情報の一覧を参照して、ポインティングデバイス１２２を用いて、当該更新された回路をプログラマブル論理回路１０４に再構成して利用するか否かの指示を入力するようにする。
【０１０５】
前述したように、このユーザによる指示は、回路情報取得部１０５を通じて編集部３００に渡される。
【０１０６】
［ＦＰＧＡタイプのプログラマブル論理回路の説明］
前述したように、この実施の形態においては、ＦＰＧＡタイプのプログラマブル論理回路を、プログラマブル論理回路（図１のプログラマブル論理回路１０４）として用いる。このＦＰＧＡタイプのプログラマブル論理回路５０の平面構造を図４に、内部構造のブロック図を図５に示す。
【０１０７】
このプログラマブル論理回路５０は、回路情報を格納するためのコンフィギュレーションメモリ６１と、論理セル５１や配線領域５２からなる回路素子６２と、入出力端子５３とで構成される。
【０１０８】
コンフィギュレーションメモリ６１は、ＥＥＰＲＯＭ、ＳＲＡＭなどの書き換え可能なメモリ素子で構成されている。回路データは、アドレスＡＤＲとデータＤＴの対で構成される。コンフィギュレーションメモリ６１にアドレスＡＤＲを与えて、そのアドレスＡＤＲに対応するメモリセルに、アドレスＡＤＲと対になったデータＤＴが格納されると、このデータＤＴに従って、論理セル５１内の回路構成や、論理セル５１と入出力端子５３を相互に接続する配線領域５２の接続状態が再構成される。コンフィギュレーションメモリ６１の一部分を書き換えることにより、プログラマブル論理回路５０が動作中であっても、回路を部分的に再構成することができる。
【０１０９】
プログラマブル論理回路５０に再構成された回路素子６２に、入出力端子５３を介して、処理すべきデータが入力され、また、その処理結果が出力される。データ入力先の論理セルと、データ出力元の論理セルを、論理セルの位置に対応するセル座標を示した制御コードによって、アプリケーションプログラム（図１の例では、アプリケーションプログラム１０１）が指定する。
【０１１０】
［情報処理システムでの処理動作の説明］
以上のように構成される情報処理システムの処理動作を、図１の構成図と、図６、図７、図８に示したフローチャートを用いて説明する。
【０１１１】
情報処理装置（図示せず）で起動したアプリケーションプログラム１０１は、一連の処理をＣＰＵ１０２またはハードウエア処理部１０３のプログラマブル論理回路１０４で実行する。アプリケーションプログラム１０１からＣＰＵ１０２への処理の指示は、通常の計算機を用いた処理と同じ手順で行われる。
【０１１２】
以下の説明は、アプリケーションプログラム１０１が処理を実行するために必要な回路を、プログラマブル論理回路１０４に構成する場合である。すなわち、情報処理システムが、プログラマブル論理回路１０４に構成することができる回路情報を生成し、その回路情報に基づいて、ハードウエア処理部１０３のプログラマブル論理回路１０４に回路を構成し、その構成された回路を用いて処理を行う手順を示すものである。
【０１１３】
（回路情報要求）
図６のフローチャートに示すように、情報処理装置（図示せず）で起動したアプリケーションプログラム１０１が、ハードウエア処理部１０３で実行する処理に必要な回路の指定情報を取得部１０５に指示する（ステップＳ１０１）。この例では、回路の指定情報としては、その回路名（自回路名）が用いられる。
【０１１４】
アプリケーションプログラム１０１から、回路の指定情報としての回路名を受け取った回路情報取得部１０５は、その回路名を編集部３００へ伝え、ハードウエア処理部１０３が必要とする回路を構成することができる回路情報の編集を編集部３００へ指示する（ステップＳ１０２）。
【０１１５】
（参照解決処理）
編集部３００は、取得部１０５から受け取った回路名を記憶部２００に渡して、照会することにより、その回路名の回路情報を取得するが、上述したように、この例の場合には、その回路名で指定される回路情報が、他の回路情報を参照するものである場合があることから、その参照回路名を知るための処理として参照解決の処理が行われる（ステップＳ１０３）。
【０１１６】
この参照解決の処理手順を図７Ａ，Ｂのフローチャートを参照して説明する。図７Ａは、この参照解決処理として編集部３００で実行される処理のフローチャートであり、図７Ｂは、参照解決処理として記憶部２００で実行される処理のフローチャートである。
【０１１７】
まず、図７Ａに示すように、編集部３００は、取得部１０５から得た回路名を記憶部２００に問い合わせる（ステップＳ１１１）。
【０１１８】
図７Ｂに示すように、記憶部２００は、この編集部３００からの回路名の照会が有ったことを検知すると（ステップＳ１２１）、その回路名を取得し（ステップＳ１２２）、その回路名に対応する回路情報２０１のヘッダ部２０２を調べて、参照回路が有るか否かを参照回路名が記述されているか否かにより判別する（ステップＳ１２３）。そして、参照回路名が記述されている場合は、ヘッダ部２０２に記述されている参照回路名を編集部３００に答える（ステップＳ１２４）。
【０１１９】
編集部３００は、記憶部２００に照会した回路名に参照回路があるか否かを記憶部２００からの参照回路名の返答があるかないかにより判別し（ステップＳ１１２）、参照回路名の返送があれば、それを取得して一時保持する（ステップＳ１１３）。
【０１２０】
編集部３００は、記憶部２００から受け取った参照回路名に対応する回路がさらに参照している参照回路名を知るために、受け取った参照回路名を再び記憶部２００に問い合わせる（ステップＳ１１４およびステップＳ１１１）。
【０１２１】
記憶部２００は、編集部３００からの参照回路名による更なる回路名の照会があったことを検出すると（ステップＳ１２５）、ステップＳ１２２以降を繰り返し、その参照回路名の回路情報について、参照回路がある場合には、その参照回路名を再び返す。編集部３００は、ステップＳ１１３でこの参照回路名を取得保持する。
【０１２２】
そして、編集部３００は、取得部１０５と記憶部２００から受け取った全ての回路名に対し、参照回路がなくなるまで、ステップＳ１１２以降の前記手順を繰り返して、回路が参照する参照回路名をすべて知ったら、この参照解決の処理を終了する。同様に、記憶部２００は、編集部３００からの回路名の照会がなくなったら、この参照解決の処理を終了する。
【０１２３】
こうして、回路情報取得部１０５が編集部３００に要求した回路名の回路を構成するために必要な全ての回路名を、編集部３００が入手することができる。
【０１２４】
（再配置処理）
次に、図６に示すように、編集部３００は、上述の参照解決の処理で得られた回路名に対応する回路情報を結合して、回路情報取得部１０５が編集部３００に要求した回路名の回路情報を生成するために、再配置の処理を行う（ステップＳ１０４）。再配置の処理の手順を図８に示す。
【０１２５】
編集部３００は、回路情報取得部１０５から受け取った指定回路の回路情報と、その指定回路を参照元回路として参照する参照回路の回路情報を記憶部２００に要求する（ステップＳ１３１）。記憶部２００は、要求された回路名の回路情報を編集部３００に提供するので、編集部３００は、それを取得する（ステップＳ１３２）。参照回路を参照元回路として、さらに参照回路があれば、その参照回路の回路情報も要求し、必要なすべての回路情報を取得する。なお、指定回路の回路情報は、参照解決の最初の回路名の照会の際に、記憶部２００から取得するようにしてもよい。
【０１２６】
編集部３００は、受け取った参照回路の回路データのアドレスに、参照元回路の参照アドレスを加えてオフセットして、参照元の回路情報のコード部に結合する（ステップＳ１３３）。この処理については、具体例を挙げて後で詳述する。また、編集部３００は、参照アドレスから参照回路の入出力ポート位置のオフセットセル座標を算出して、参照回路の入出力ポート位置座標にオフセットセル座標を加えて、参照元回路の回路情報のヘッダ部に結合する（ステップＳ１３４）。この処理についても、具体例について後で詳述する。
【０１２７】
編集部３００は、全ての回路名に対して前記の手順を行うまで手順を繰り返す（ステップＳ１３５）。
【０１２８】
以上のようにして再配置の処理が終わると、図６に示すように、編集部３００は、生成した回路情報を、回路情報取得部１０５へ提供する（ステップＳ１０５）。
【０１２９】
（ロード）
回路情報取得部１０５は、編集部３００から入手した回路情報のコード部に記述されている回路データを、ハードウエア処理部１０３にロードして、プログラマブル論理回路１０４に回路を再構成し（ステップＳ１０６）、ヘッダ部に記述されている入出力ポート情報を、アプリケーションプログラム１０１に提供する（ステップＳ１０７）。
【０１３０】
（アプリケーションによる処理）
ハードウエア処理部１０３は、入出力ポート情報に基づいたアプリケーションプログラム１０１からの制御コードに従って、プログラマブル論理回路１０４に再構成された回路とデータの入出力を行い、プログラマブル論理回路１０４に再構成された回路を用いた情報処理を行う（ステップＳ１０８）。
【０１３１】
［回路情報の更新があったときの処理の説明］
回路情報の更新通知が回路情報更新部５００から発生したときの、この実施の形態の情報処理システムでの処理動作を、図９および図１０のフローチャートを参照して説明する。
【０１３２】
まず、回路情報更新部５００から編集部３００に、新規回路情報あるいは機能的または性能的に改良されて更新された回路の回路名を含む更新通知が送られる（ステップＳ１４１）。これに先立ち、回路情報更新部５００から、記憶部２００に、その更新された回路の回路情報が転送されて、記憶部２００の回路情報格納部に格納される。
【０１３３】
この場合、回路情報更新部５００から送られてくる回路情報は、図２に示した回路構成を備えており、他の回路を参照する構成であって、その参照する部分については変更がないときには、ヘッダ部２０２に参照回路名が記述されると共に、回路データ部２０３のその参照回路の部分のデータは、参照アドレスと、参照回路名とからなるのは前述の通りである。すなわち、回路情報の作成者は、必要な回路部分のみの回路情報を更新することにより、更新後の回路の回路情報を作成することができる。
【０１３４】
回路情報更新部５００からの更新情報通知を受け取った編集部３００は、その通知に含まれる更新された回路の回路名を記憶部２００に渡して、照会することにより、その回路名の更新された回路情報を取得する。この場合に、上述したように、この例の場合には、その回路名で指定される回路情報が、他の回路情報を参照する場合があることから、その参照回路名を知るための処理として、図７のフローチャートを用いて説明した参照解決の処理が行われる（ステップＳ１４２）。
【０１３５】
そして、編集部３００は、更新された回路の回路情報を生成するために必要なすべての必要な回路名を参照したら、この参照解決の処理を終了し、図８のフローチャートを用いて説明した再配置の処理に移り（ステップＳ１４３）、記憶部２００から必要な回路情報の取得を行い、更新された回路の回路情報を生成しておく。
【０１３６】
その後、編集部３００は、情報処理部１００と共に、更新された回路情報の提示処理を行う（ステップＳ１４４）。この例の場合、編集部３００は、新規回路情報あるいは機能的または性能的にバージョンアップされた回路情報についての一連の通知情報群は、ブロードキャスト式に、ネットワークに接続される全ユーザの情報処理部１００に転送されて、ユーザに提示されて告知される。図１０のフローチャートを参照して、更新回路の通知情報提示の手順を示す。
【０１３７】
まず、編集部３００は、回路情報更新部５００から取得した更新回路の通知情報一覧を回路情報取得部１０５へ転送する（ステップＳ１５１）。転送された通知情報群は、新規回路あるいはバージョンアップされた回路の回路名のほか、その回路がダウンロードして利用可能であることが、その回路情報のダイジェストと、その回路の詳細情報の格納場所と共に記述されており、グラフィカル・ユーザ・インターフェース１２０によりディスプレイ１２１の画面表示などで、それらがユーザ側に通知される（ステップＳ１５２）。
【０１３８】
ユーザ側では、更新回路についての詳細情報を必要とするかどうかを判断し（ステップＳ１５３）、必要とする場合には、前記詳細情報の格納場所へアクセスして詳細情報を表示させる（ステップＳ１５４）。以上で、更新回路の通知情報の提示の処理は終了である。
【０１３９】
そして、この更新回路の通知情報の提示の画面には、当該更新回路を各ユーザが取得してプログラマブル論理回路１０４に再構成するかどうかの指示入力を促すメッセージがなされるので、これを受けて、ユーザは、更新回路を取得して利用するか否かの操作入力をマウスなどのポインティングデバイス１２２を用いて行う（図９のステップＳ１４５）。この指示入力に応じた更新回路を利用するかどうかの情報は、回路情報取得部１０５を通じて編集部３００に送られる。
【０１４０】
ここで、ユーザが更新回路を利用しないとしたときには、図９の更新回路の通知情報提示は終了となる。また、ユーザが更新回路を利用すると指示したときには、図６のステップＳ１０５〜１０８までの処理に全く等しいステップＳ１４６〜Ｓ１４９の処理を行う。
【０１４１】
すなわち、ステップＳ１４６においては、編集部３００は、ステップＳ１４３までの処理により、既に再配置の処理までが終了している更新回路の回路情報を、回路情報取得部１０５に転送する。すると、次のステップＳ１４７において、回路情報取得部１０５は、ハードウエア処理部１０３のプログラマブル論理回路１０４に回路情報をロードする。また、ステップＳ１４８において、回路情報取得部１０５は、入出力ポートの情報を、アプリケーションプログラム１０１に提供する。そして、次のステップＳ１４９において、アプリケーションプログラム１０１が、更新回路が組み込まれたプログラマブル論理回路１０４を用いて処理を実行する。
【０１４２】
以上のようにして、プログラマブル論理回路１０４に構成可能な回路情報が更新されると、その更新された回路についての情報がユーザに提示され、ユーザはこの提示情報を参照しながら、更新された回路を利用するか否かを判断することができる。そして、更新回路を利用すると指示したときには、編集部３００から当該更新回路情報が自動的に提供されて、プログラマブル論理回路１０４に再構成されて処理に利用することができる。
【０１４３】
したがって、機能や性能が向上した更新回路を、タイムリーにプログラマブル論理回路に再構成して利用することが可能になる。この場合に、通常は、ユーザは、更新回路の通知情報により、自己の情報処理装置が使用している回路であるか否かを判断したのち、更新するか否かを決める必要がある。
【０１４４】
しかし、例えば、ＰＣＩバスインターフェースや、ＣＰＵなどのように、常にプログラマブル論理回路１０４に存在するような固定的回路である場合には、プログラマブル論理回路上に使用されているか否かを判断する必要はないので、この実施の形態は、上述のようなプログラマブル論理回路に常に存在するような回路の更新について、非常に有益である。
【０１４５】
そして、この種の回路は、その更新により、処理速度や処理結果の品質の向上が期待できるものであり、その効果は大きい。
【０１４６】
［実施例：ＰＣＩバスインターフェース回路情報のバージョンアップ］
次に、この実施の形態の情報処理システムの、より詳細な実施例について、図１１〜図１６を用いて説明する。
【０１４７】
この実施例では、ハードウエア処理部１０３のプログラマブル論理回路１０４上には、図３のプログラマブル論理回路インターフェース１１５の部分も、固定的に構成されて使用されており、このＰＣＩバスインターフェースの部分が、更新された場合として説明する。ここでは、３３ＭＨｚ対応のＰＣＩバスインターフェース回路を使用している状況で、６６ＭＨｚ対応のＰＣＩバスインターフェース回路が新規に作成されて、ダウンロードが可能となった例を示す。
【０１４８】
［ＦＰＧＡタイプのプログラマブル論理回路のアドレス構成］
この実施例で用いるＦＰＧＡタイプのプログラマブル論理回路は、列方向に３２個を、また、行方向に３２個を、それぞれ配置した合計１０２４個の論理セルで構成される。ひとつの論理セルは、６４アドレスのコンフィギュレーションメモリで設定され、１アドレスのコンフィギュレーションメモリは８ビットのデータを保持する。すなわち、ひとつの論理セルは、６４バイトの回路データで設定される。
【０１４９】
ＰＣＩバスインターフェース回路は、汎用的に多くのユーザが使用し、また、プログラマブル論理回路１０４上で、常に、固定位置に配置されて使用されるものであることから、再配置の座標は考えず、再配置は絶対座標で行われる。すなわち、この実施例では、ＰＣＩバスインターフェース回路がプログラマブル論理回路１０４において生成される位置は、固定的に設定されている。
【０１５０】
この実施例では、図１１で網点を付して示すように、ＰＣＩバスインターフェース回路が構成されるプログラマブル論理回路１０４上の領域は、固定領域部１５０として、プログラマブル論理回路１０４の行方向のすべての１６セルから３１セルに渡るエリア１５０全体を設定しておく。
【０１５１】
この実施例の場合のコンフィギュレーションメモリのアドレス設定の方法を、図１１に示す。プログラマブル論理回路のセル座標は、左下を原点（０，０）として定義される。ひとつの論理セルを設定するコンフィギュレーションメモリは、８×８のメモリ空間に対応し、プログラマブル論理空間全体で２５６×２５６のメモリ空間を構成する。アドレスは、１６ビットアドレスで「０ｘ００００」を開始アドレスとして、セル座標の原点（０，０）から「０ｘＦＦＦＦ」まで定義される。
【０１５２】
このとき、アドレスとセル座標は次の関係を持つ。すなわち、図１１の表に示すように、１６ビットアドレスＡ［１５：０］の上位８ビットＡ［１５：８］が、２５６×２５６のメモリ空間の列アドレスに、下位８ビットＡ［７：０］が、当該メモリ空間の行アドレスに、それぞれ対応する。
【０１５３】
１６ビットアドレスＡ［１５：０］の最上位アドレスＡ［１５：１５］は、この実施例では、ＰＣＩバスインターフェース回路が構成されている固定座標を指定するアドレスであり、このアドレスＡ［１５：１５］の値が「０」である場合には、列セル座標の０から１５までの任意の領域に回路が構成され、このアドレスＡ［１５：１５］の値が「１」である場合には、前述のように、再配置の座標は考えず、絶対座標で行われる。
【０１５４】
そして、１６ビットアドレスＡ［１５：０］の４ビットＡ［１４：１１］（８ビットの列アドレスの上位４ビット）が列セル座標に、３ビットＡ［１０：８］（８ビットの列アドレスの下位３ビット）が列メモリ座標に、それぞれ対応する。また、１６ビットアドレスＡ［１５：０］の５ビットＡ［７：３］（８ビットの行アドレスの上位５ビット）が行セル座標に、３ビットＡ［２：０］（８ビットの行アドレスの下位３ビット）が行メモリ座標に、それぞれ対応する。
【０１５５】
以下に説明するこの実施例の場合は、最初は、プログラマブル論理回路１０４の、前記固定領域には、図１２に示すような３３ＭＨｚ対応のＰＣＩバスインターフェース回路が構成されている状態において、６６ＭＨｚ対応のＰＣＩバスインターフェース回路が、更新回路として通知された場合である。なお、３３ＭＨｚ対応のＰＣＩバスインターフェース回路および６６ＭＨｚ対応のＰＣＩバスインターフェース回路は、ともに、前述したプログラマブル論理回路１０４の回路情報を構成するエリア全体の半分の固定領域部に構成が可能な大きさの回路であるものとする。
【０１５６】
［ＰＣＩバスインターフェース回路情報］
図１２に３３ＭＨｚ対応のＰＣＩバスインターフェース回路のプログラマブル論理回路におけるアドレスと回路情報の関係を、図１３に６６ＭＨｚ対応のＰＣＩバスインターフェース回路のプログラマブル論理回路におけるアドレスと回路情報の関係を、それぞれ示す。
【０１５７】
回路情報は、ヘッダ部とコード部とから構成されている。この実施例のＰＣＩバスインターフェース回路は、いずれも参照情報をもたない。また、入出力ポート情報として、３３ＭＨｚ対応のＰＣＩバスインターフェース回路は、図１２に示すように、データポート情報とアドレスポート情報をもっている。
【０１５８】
これらのポート情報は、それぞれ、３２ビット幅、すなわち４セル分を使用することから、この実施例では、データポートの座標として（１８，２５）から（１８，２８）までが、アドレスポートの座標として（１８，２１）から（１８，２４）までが、割り当てられている。
【０１５９】
一方、６６ＭＨｚ対応のＰＣＩバスインターフェース回路は、プログラマブル論理回路上での構成が絶対座標で行われることから、その基準となる入出力ポート情報は、図１３に示したように、３３ＭＨｚ対応のＰＣＩバスインターフェース回路と同じ回路情報とアドレスの関係で構成されている。
【０１６０】
［プログラマブル論理回路１０４上の構成］
図１４は、３３ＭＨｚ対応のＰＣＩバスインターフェース回路８０１のプログラマブル論理回路１０４上での構成の概略を示している。
【０１６１】
ＰＣＩバスの、ＦＲＡＭＥ＃、Ｃ／ＢＥ＃、ＤＥＶＳＥＬ＃などの端子と接続される配線から、データポート８０２やアドレスポート８０３などの入出力ポート端子の配線を含んだ回路全体は、固定領域部である１６列から３１列までの領域に構成されている。
【０１６２】
一方、６６ＭＨｚ対応のＰＣＩバスインターフェース回路９０１は、図１５に示すように、３３ＭＨｚ対応のＰＣＩバスインターフェース回路８０１と、入出力ポート座標９０２、９０３およびＰＣＩバスへ接続される端子位置を基準として、固定領域内に全回路が構成される。
【０１６３】
［処理手順］
図１６および図１７は、より詳細な実施例の処理手順を示すフローチャートである。このフローチャートは、図９の回路更新時のフローチャートの、詳細実施例である。
【０１６４】
まず、回路情報更新部５００から編集部３００に対して、６６ＭＨｚ対応ＰＣＩバスインターフェース回路の更新通知が到来する（ステップＳ２０１）。これを受けた編集手段３００は、参照解決のため、６６ＭＨｚ対応ＰＣＩバスインターフェース回路の回路名を記憶部２００に照会して、その参照回路名を取得する（ステップＳ２０２）。この参照回路名の取得を、記憶部２００の６６ＭＨｚ対応ＰＣＩバスインターフェース回路の回路情報に、参照回路名がなくなるまで繰り返し行う（ステップＳ２０３）。
【０１６５】
この実施例の場合、６６ＭＨｚ対応ＰＣＩバスインターフェース回路についての参照回路は、図１３に示したように存在しないので、ここでは参照回路名は取得せずにステップＳ２０２、Ｓ２０３の参照解決の処理を終了する。
【０１６６】
同様に、この実施例では、６６ＭＨｚ対応ＰＣＩバスインターフェース回路は参照回路をもたないので、回路データと入出力ポートのオフセットを行う必要がなく、記憶部２００から該当する回路情報を取得することで、再配置の処理が終了する（ステップＳ２０４、Ｓ２０５）。
【０１６７】
次に、編集部３００は、回路情報取得部１０５へ、６６ＭＨｚ対応ＰＣＩバスインターフェース回路の更新通知情報を転送し（ステップＳ２０６）、ユーザに告知する（ステップＳ２０７）。すなわち、６６ＭＨｚ対応ＰＣＩバスインターフェース回路の回路情報がダウンロード可能であること、および回路情報ダイジェストの掲載と、その詳細情報のありかを、ユーザに通知する。
【０１６８】
ユーザは、これらの情報に従い、詳細情報を表示させるかどうかを判断し（ステップＳ２０８）、必要な場合には詳細情報を表示して内容を確認する（ステップＳ２０９）。そして、６６ＭＨｚ対応ＰＣＩバスインターフェース回路情報を取得するかどうかを選択する（ステップＳ２１０）。
【０１６９】
ユーザが、６６ＭＨｚ対応ＰＣＩバスインターフェース回路の回路情報の取得を選択した場合、編集部３００から回路情報は回路情報取得部１０５へ転送され（ステップＳ２１１）、プログラマブル論理回路上へ構成される（ステップＳ２１２）。
【０１７０】
そして、回路情報取得部１０５は、入出力ポート情報をアプリケーションプログラム１０１に提供する（ステップＳ２１３）。この場合、入出力ポート情報は、前述したように、６６ＭＨｚ対応のＰＣＩバスインターフェース回路が絶対座標として取り扱われる。ユーザが、６６ＭＨｚ対応ＰＣＩバスインターフェース回路の回路情報の取得を選択しなかった場合は、そのまま処理が終了する。
【０１７１】
したがって、この実施例においては、ユーザは、ＰＣＩバスインターフェース回路についてのバージョンアップ情報を取得するサーバ側とのやりとりが最小限で、かつ、絶対座標への構成による手順が簡単な方法で、更新した回路情報を自ら探索する労力をかけず、オンタイムで、更新した回路情報を取得することが可能となる。
【０１７２】
なお、以上の実施の形態の説明では、回路情報更新部５００で回路情報の更新があったときに、この回路情報更新部５００から編集部に更新通知を送るようにしたが、ユーザが、例えばグラフィカル・ユーザ・インターフェースを通じて、回路の更新状況を、編集部３００を介して回路情報更新部５００に問い合わせることにより、上述と同様にして、更新回路の一覧情報をユーザに告知し、その後、ユーザの要求に応じて、プログラマブル論理回路に再構成するようにしてもよい。
【０１７３】
また、上述の実施の形態では、編集部３００が、回路情報更新部５００からの更新通知を受けたときに、その更新通知を回路情報取得部１０５に渡す手段を兼ねるようにしたが、この更新通知を回路情報取得部１０５に渡す手段は、編集部３００とは別に設けるようにしてもよい。
【０１７４】
【発明の効果】
以上説明したように、この発明によれば、アプリケーションプログラムの少なくとも一部を、プログラマブル論理回路で処理する情報処理システムにおいて、プログラマブル論理回路で利用する回路情報が更新されたときに、その更新された回路情報をオンタイムで取得でき、あるいは、自身の都合により所望の時間に回路情報を取得することができる。
【０１７５】
また、この発明によれば、複雑な手順を経ることなく回路情報を取得できる。そして、取得した回路情報を用いて、より高機能あるいは高性能な処理を行うことが可能となる。
【０１７６】
また、この発明によれば、回路情報をいわゆるツリー構造として他の回路を参照して構成することができるようにしているので、更新回路を作成するときに、参照回路のうち、元のまま利用できる部分はそのままの形とすることができ、更新回路の回路情報の生成が参照識別子を含ませることにより容易に行える。
【図面の簡単な説明】
【図１】この発明による情報処理システムの実施の形態の全体の概要を示すブロック図である。
【図２】この発明の実施の形態による回路情報管理方法を説明するための図である。
【図３】この発明による情報処理システムの実施の形態のハードウエア構成図である。
【図４】ＦＰＧＡタイプのプログラマブル論理回路を説明するための図である。
【図５】ＦＰＧＡタイプのプログラマブル論理回路を説明するための図である。
【図６】この発明による情報処理システムの実施の形態における通常処理手順のフローチャートである。
【図７】図６のフローチャートの一部の処理の詳細な手順のフローチャートである。
【図８】図６のフローチャートの一部の処理の詳細な手順のフローチャートである。
【図９】この発明による情報処理システムの実施の形態における回路更新時の処理手順のフローチャートである。
【図１０】図９のフローチャートの一部の処理の詳細な手順のフローチャートである。
【図１１】実施の形態において、プログラマブル論理回路に回路構成するためのアドレス配置を説明するための図である。
【図１２】プログラマブル論理回路に構成される回路情報例を示す図である。
【図１３】プログラマブル論理回路に構成される回路情報例を示す図である。
【図１４】プログラマブル論理回路に構成された回路例を示す図である。
【図１５】プログラマブル論理回路に構成された回路例を示す図である。
【図１６】この発明による情報処理システムの実施の形態で用いる具体的な処理の例を説明するためのフローチャートである。
【図１７】図１６の続きのフローチャートである。
【図１８】従来の情報処理システムの一例を説明するための図である。
【図１９】図１８の従来例で生成されるプログラマブル論理回路の回路例を示す図である。
【図２０】従来の情報処理システムの他の例を説明するための図である。
【符号の説明】
１００  情報処理部
１０１  アプリケーションプログラム
１０２  ＣＰＵ
１０３  ハードウエア処理部（処理手段）
１０４  プログラマブル論理回路
１０５  回路情報取得部（取得手段）
１０６  更新情報告知部
２００  記憶部
３００  編集部
２０１  回路情報
２０２  ヘッダ部（付加情報部）
２０３  コード部（回路データ部）
ＡＤＲ  アドレス
ＤＴ  回路データ
４００  回路情報提供部
５００  回路情報更新部
６００  ネットワーク
７００  コンピュータシステム
【図１】
0003664215.tif 000002
【図２】
0003664215.tif 000003
【図３】
0003664215.tif 000004
【図４】
0003664215.tif 000005
【図５】
0003664215.tif 000006
【図６】
0003664215.tif 000007
【図７】
0003664215.tif 000008
【図８】
0003664215.tif 000009
【図９】
0003664215.tif 000010
【図１０】
0003664215.tif 000011
【図１１】
0003664215.tif 000012
【図１２】
0003664215.tif 000013
【図１３】
0003664215.tif 000014
【図１４】
0003664215.tif 000015
【図１５】
0003664215.tif 000016
【図１６】
0003664215.tif 000017
【図１７】
0003664215.tif 000018
【図１８】
0003664215.tif 000019
【図１９】
0003664215.tif 000020
【図２０】
0003664215.tif 000021