(57)【要約】【課題】柔軟性が高く、広範囲の応用に関して単独で解決できると共に、経済性が高く、少量多品種の応用について量産効果を図れるプログラム共通制御のソフトウェア及びハードウェアで成る装置を提供する。【解決手段】プログラム命令で動作するソフトウェア処理と、前記プログラム命令で制御される回路再構成で動作するハードウェア処理との２つの処理によって機能するようにしたプログラム共通制御のソフトウェア及びハードウェアで成る装置である。【選択図】 図２ 
2005122514.tif 000002
【特許請求の範囲】
【請求項１】
プログラム命令で動作するソフトウェア処理を行うソフトデータパスと、前記プログラム命令で再構成される再構成データパスで動作するハードウェア処理との２つの処理が独立又は従属に動作し、
前記ソフトウェア処理のデータパスをメモリに記憶されたプログラム命令に従って動作させるソフトウェア制御回路と、
前記ソフトウェア処理をソフトデータパス制御回路の制御に従って実行するソフトデータパスの回路と、
実働時のプログラム命令に従って前記メモリに記憶された再構成データによって、前記ハードウェア処理を実行する１つ又はそれ以上の再構成データパスの再構成及び各再構成データパスの動作を制御する再構成データパス制御回路と、
前記ハードウェア処理を前記再構成データパス制御回路の制御に従って実行する実働時に可変の再構成データパスの回路と、
前記ソフトウェア処理及びハードウェア処理の動作の同期を図るために、前記ソフトデータパス又はプログラムが再構成データパスの動作状態に合わせて動作を実行又は停止する回路機構と、各再構成データパスが前記ソフトデータパス又はプログラムの動作状態に合わせて動作を実行又は停止する回路機構と、
前記ソフトウェア処理及びハードウェア処理に使用されるデータの交換を実行するために、前記ソフトデータパスと再構成データパスのデータ交換を効率良く行う再構成データパス制御回路に装備された入出力ローカルメモリ又は入出力バッフアで成る回路機構を具備したことを特徴とするプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【請求項２】
前記ソフトウェア処理及びハードウェア処理のデータ交換を図るため、前記再構成データパス制御回路の入力及び出力装置として、複数の入力FIFOバッファ及び複数の出力FIFOバッファを設け、前記ソフトデータパス及び再構成データパスからのアクセスを独立にすることにより、データ交換を効率良く行う機能を有することを特徴とする請求項１に記載のプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【請求項３】
前記ソフトウェア処理及びハードウェア処理のデータ交換を図るため、前記再構成データパス制御回路の入力及び出力装置として、それぞれ複数の入力メモリ装置及び複数の出力メモリ装置を設け、前記ソフトデータパスからのアクセスはグローバルアドレス、再構成データパスからのアクセスは逐次的に自動生成されるローカルアドレスで制御する機能を有することを特徴とする請求項１に記載のプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【請求項４】
前記ソフトウェア処理及びハードウェア処理の同期を図るために、前記ソフトデータパスの実行制御を行うソフトデータパス制御回路と、再構成データパスの実行制御を行う前記再構成データパス制御回路との間でそれぞれの動作状態を通信しながら、各データパスの実行又は停止の動作制御を行う機能を有することを特徴とする請求項１乃至３の何れかに記載のプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【請求項５】
前記ソフトウェア処理及びハードウェア処理の同期を図るために、前記ソフトデータパスの実行制御及び再構成データパスの実行制御を前記入出力バッファ又は前記入出力メモリ装置の利用データの利用可能性情報又は格納データの格納可能性情報に基づき、利用不可能又は格納不可能な場合には前記ソフトデータパス及び複数の再構成データパスの実行をそれぞれ独立に停止する機能を有することを特徴とする請求項１乃至４の何れかに記載のプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【請求項６】
前記再構成データパス制御回路として、データに処理可能かどうかのフラグ情報を持たせ、演算器の入力データが全て処理可能になると自動的に演算を行うデータ駆動型の演算器から成ることを特徴とする請求項１乃至５の何れかに記載のプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【請求項７】
外部制御により論理機能が決定される論理ブロックと、前記外部制御により前記論理ブロック間の結線が決定されるビットシリアル方式のプログラム可変論理装置を再構成データパス装置として利用するようになっている請求項１乃至６の何れかに記載のプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【請求項８】
周辺入出力装置との間で入力信号又は出力信号を受信又は送信しながら動作する処理装置として、前記周辺入出力装置との間の接続回路をプログラム命令によって可変にさせた形態で各種の周辺入出力装置との接続を可能にする請求項１乃至７の何れかに記載のプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【請求項９】
各種応用信号を通信するネットワークの共通の端末接続装置として、応用信号に応じて変化する接続回路を再構成ハードウェア処理で実現し、前記応用信号に無関係な通信制御の処理を前記ソフトウェア処理で実現する請求項１乃至７の何れかに記載のプログラム共通制御のソフトウェア及びハードウェアで成る装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、従来の柔軟性を持つソフトウェア処理に加え、同様に柔軟性を持ち独立に動作するハードウェア処理を併用するが、ソフトウェア命令とハードウェア再構成命令で成る単一のプログラムで駆動し、動作同期機構によりソフト処理と複数のハード処理を効率良く同時並列に実行する柔軟性を持つ新たなシステムアーキテクチャである。ソフト処理及びハード処理が密に結合して動作するための動作同期及びデータ交換に関して、知見を得たものである。主に多品種少量生産を必要とする応用分野での、新たな量産効果をもたらす経済性の高いプログラム共通制御のソフトウェア及びハードウェアで成る装置に関する。
【背景技術】
【０００２】
従来の組み込みシステム等では、プロセッサと再構成可能なプログラム可能論理装置（Programmable Logic Device; PLD）との組み合わせにより、プログラム駆動のソフトウェア処理と再構成用データによって再構成されるハードウェア処理とが行われている。ソフトウェア処理とハードウェア処理のデータ交換、動作同期が十分でないため、ソフトウェア処理とハードウェア処理が緊密に関連して動作するものはなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
プログラム命令によって、ソフトウェア処理及びハードウェア処理のための回路再構成を行う装置は従来から提案されているが、ソフトウェア処理とハードウェア処理のデータを緊密に交換しながら効率良く動作するアーキテクチャが得られていなかった。本発明では、高級言語で記述されたアルゴリズムから、自然にソフトウェア処理とハードウェア処理を併用した協調システムにマッピングすることを重視した新たなソフト駆動設計法に基づき、ソフトとハードの分割、互いに並行して動作しながらデータの交換や動作の調和を行うプログラム共通制御のソフトウエア及びハードウエアで成る装置を示すことにより、新たに汎用性が高く、しかも高速動作するプロセッサのアーキテクチャを示すことが課題である。
【０００４】
プロセッサとプログラム可能論理装置（PLD）を搭載したLSIチップでは、かかる問題をある程度解決できる。しかし、PLDはプログラム可能であるため、そのハードウェアのチップ面積は実行ゲートに比べて大きくなり、経済性が問題になる。この問題を解決するためには、実働時に必要に応じてハードウェアの再構成を行い、ハードウェア面積を小さくする必要がある。また、プロセッサと実働時に再構成可能なPLDとを含むシステムは、プロセッサの実行とハードウェアの実行タイミング制御を行う必要がある。特に、プロセッサは同時に１データしか扱えないが、PLDは複数データを利用して並列動作が可能であり、プロセッサとPLDのデータ交換の効率が問題となる。
【０００５】
また、通常のPLDは、入出力信号端子とビットシリアル形式で再構成制御信号を入力する端子とが備えられている。ビットシリアル形式の再構成制御信号は、再構成の時間が長く必要で、実働時の再構成には向かない。３２ビットプロセッサの例では、３２ビットのデータを取り扱っているため、再構成データもこの３２ビットのデータとして取り扱うことができ、データパスを経由して再構成が行われれば、プロセッサシステムの中に自然な形で実働時再構成のPLDを埋め込むことが可能になる。
【０００６】
このようなプロセッサと実働時再構成可能なPLDとで成るシステムは、少量多品種向けの超汎用システムになる可能性がある。各種応用に利用できれば、LSIの量産効果により大量に生産が可能になり、特定な応用にも利用できる安価なLSIを実現することができる。そのためには、プロセッサと可変入出力インタフェース回路という利用方法の他にも、広い応用を考えていく必要がある。
【０００７】
本発明は上述のような事情よりなされたものであり、本発明の目的は、柔軟性が高く、広範囲な応用に関しても単独で解決できると共に、経済性が高く、少量多品種の応用について量産効果を図れるプログラム共通制御のソフトウェア及びハードウェアで成る装置を提供することにある。
【課題を解決するための手段】
【０００８】
前述した本発明の目的を達成するために、本発明は、プログラム命令の再構成をソフトウェア処理のための命令（ソフトウェア処理命令）と、ハードウェアの回路再構成を制御するための命令（ハードウェア再構成命令）との２種類にする。ソフトウエア命令はソフトデータパス制御回路で解読され、ソフトデータパスで処理される。ハードウェアの再構成命令は、再構成するハードウェアの範囲（一部だけの再構成を可能にする）及び再構成用データの格納場所を規定する形式にする。ハードウェア再構成命令が発行されると、所定の複数の格納番地のデータがハードウェアに転送され、規定されたハードウェアの範囲の回路が転送データにより再構成される。この間、ソフトウェア装置と再構成中のハードウェア装置の一部は動作が停止する。ハードウェア再構成にかかる時間はハードウェア規模に依存するが、全体の処理時間に重大な影響がない程度に高速であることが要求される。ハードウェア装置は、最終のハードウェア再構成命令に基づく回路再構成に従って動作する。
【０００９】
再構成データパスは算術論理演算装置や論理回路装置が格子状に配置され、再構成データパス制御回路からの制御により、その機能と配置された装置との間の通信経路などが再構成される。この再構成のためのデータが再構成データである。この再構成が、再構成データパスの一部又は全部について実行するため、実働時に必要に応じて複数の再構成データパスを実現する。この再構成データパスはデータパス毎に入力、出力及び動作開始、繰り返し制御、動作停止を再構成データパス制御回路が制御する。
【００１０】
ソフト処理とハード処理は並列に実行されるが、正しい動作のためにはソフト処理とハード処理の動作順序が入れ替わってはいけない。ソフト処理では、割り込みによる割り込み処理の追加や、プログラムキャッシュメモリを用いた構成ではキャッシュヒットミスなどの例外処理のため、ソフト処理の実行ステップが実働時に変化する。ハード処理では、ループ回数が変数で与えられるループ繰り返し処理や、条件分岐も含むデータパスの処理では、データパスの終了時間を予め特定することはできない。このため、ソフト処理とハード処理の動作順序の動的な制御が必要となる。本発明は、ソフトデータパス制御回路を主体とした再構成データパス制御回路との制御データ交換機構によってこれを実現する状態制御方式、又はソフトデータパスにデータ駆動を採用してデータ情報により制御データ交換を行うデータ駆動方式のいずれか一方を採用し、データに処理可能かどうかのフラグを装着して処理可能なデータかどうかを判定して、処理可能な入力データが揃ったときに演算処理を開始するデータ駆動制御方式を検討している。ソフトデータパスの動作も、再構成データパスからのデータが処理可能になったときまで、ソフトデータパスを停止するやり方である。
【００１１】
ソフト処理では、単一固定のデータパスで単一データが取り扱われるが、ハード処理では複数データパスによる高速処理が前提であるため、複数データが必要となる。このため、再構成データパスの入力FIFOバッファ群を配置して、ソフト処理の結果を逐次入力していき、必要な入力データが蓄積されると、ハード処理のために入力バッファ群から規則的に読み出しを行う。このような入力バッファへの入力時間と出力時間を変えることにより、ソフトデータパスから生成されるデータのバンド幅に比べて、再構成データパスで利用するデータのバンド幅を大きくでき、ソフト処理からハード処理への効率の良いデータ交換が可能となる。再構成データパスの出力側にも出力FIFOバッファ群を配置して、同様にハード処理からソフト処理への効率良いデータ交換が可能となる。
【００１２】
同様な目的で、入力FIFOバッファ及び出力FIFOバッファの代わりに、入力用ローカルメモリ及び出力用ローカルメモリを利用できる。メモリのアクセスにはアドレスが必要であるが、ソフトデータパスからのアクセスには、プログラムや再構成データを格納していると主メモリと区別可能なのグローバルアドレスを割り当てることにより、メモリ格納やメモリロード命令によって、ソフトデータパスのデータをローカルメモリに転送することが可能である。再構成データパスからのアクセスは、逐次的なローカルアドレスを自動生成することによって再構成データパスへ高速にデータを入力することが可能となる。
【００１３】
ソフト処理とハード処理の同期を図るためには、プログラムで動作するソフトデータパスの実行を、再構成データパス制御回路から送られる状態によって制御する。即ち、再構成データパスの実行が予め予定されたスケジュールに比べて遅くなったときに、ソフトデータパスに対して送られた動作状態が停止状態になるまで待機する。同様に、再構成データパスの実行は、再構成データ命令によって制御する。このようにして、ソフトデータパスを主体に、再構成データパスの動作状態をソフトデータパス制御回路へ送ることによって、両データパスの動作同期を行う。
【００１４】
ソフト処理とハード処理の同期を図るために、ソフトデータパス装置のプログラム命令を実行・停止させる。その一つは、再構成データパスから生成された出力データを直接利用するプログラム命令の実行に際して、データが再構成データパスから生成されるまでプログラム命令の実行を待たせる。このためには、再構成データパスの出力が利用可能かどうかのフラグ情報をもたせる必要がある。もう一つは、再構成データパスの入力となるレジスタ又はメモリに直接データを出力するプログラム命令の実行に際して、そのレジスタ又はメモリにデータを格納できない状態であるとき、利用可能になるまで実行を待たせる必要がある。この待ち合わせ機能により、ソフトデータパスは再構成データパスの動作とは無関係なスケジューリングでプログラム実行が可能で、再構成データパスのデータが必要になったときだけ、待ち合わせによりタイミング同期を計ることになる。
【００１５】
同様に、再構成データパス装置のデータパスの実行・停止の制御が必要である。再構成データパスの実行を開始するための入力データが到着していないときは、到着するまで再構成データパスの実行開始は待たせる必要がある。また、再構成データパス装置の出力レジスタ又はメモリが利用可能でない状態では、再構成データパス全体を停止させ、出力レジスタ又はメモリのデータを上書きしないように制御する必要がある。この停止機能により、再構成データパスはデータを準備することができ、出力が可能な状態で独立してデータパスの実行が可能になる。再構成データパスは複数存在するが、それぞれ独立して動作することも可能となる。
【００１６】
データ駆動形の再構成データパスとは、データパス上の演算器の動作が、演算器の動作に必要な入力データが全て揃った時点でだけ動作するデータパスのことである。各演算器のローカル制御により、各演算器は独立した正しい動作を行う。このため、データパスの全体的な制御は不要である。しかも、データパス毎の独立した動作も簡単に実現することが可能である。反面、入力線や出力線のデータがデータとして意味があるかないかの判別が必要となり、フラグビットを用意してデータが処理可能かどうかの制御を必要とする。
【００１７】
また、本発明は、入出力端子から論理単位までの信号経路を介して再構成することにより、複数の入出力端子からの並列信号で複数の論理単位の再構成を同時に行うことができる。そして、入出力信号端子と再構成のための入力端子とを共通化している。結線単位は、結線スイッチを制御するRAMメモリに、入出力端子から通常の信号データと同様にして再構成データを転送することにより再構成することができる。これにより、信号データと再構成用データを同一のフォーマットで取り扱うことができるようになり、PLD構成が簡単化される。
【００１８】
このように本発明では、ソフトとハード処理を行うアーキテクチャを設定し、この仮想アーキテクチャの要求条件を明かにしている。更に、本発明の応用として、PLDをハードウェア処理装置として、プログラム共通制御のソフトウェア及びハードウェアで成る装置に利用することにより、処理のためにソフトウェア装置からハードウェア装置へのデータ転送を行う方法と同じ手段によって、ハードウェア装置へ再構成用データを転送することができる。その結果、ハードウェア再構成命令の構築は、通常のソフトウェア処理命令を拡張した形で、メモリにある再構成用データをPLDへ転送する形式で実現することができる。
【００１９】
本発明は、ソフトウェア装置と周辺入出力装置との間の接続回路（インタフェース）で動作する通常のマイクロプロセッサシステムにおいて、周辺入出力装置は種々あるが、速度的にはマイクロプロセッサ動作と比べて極めて遅いのが通常である。そこで、周辺入出力インタフェースを必要に応じて再構成することにより、各種のインタフェースを同一のハードウェア量で実現することが可能になる。実際には再構成データをメモリに格納しておき、必要に応じてプログラム命令によって再構成を変化させるソフトウェア処理命令とハードウェア再構成命令とが混在した形式のプログラムによって動作する。
【００２０】
本発明は、各端末接続装置のネットワーク構築と、通信情報の受信・送信・転送のネットワーク機能と、受信・送信情報を端末接続装置に接続される端末機器との間で交換する機能が要求される。ネットワークプロトコルとしては種々考えられるが、ネットワーク端末接続装置としては、ネットワークアーキテクチャの構築、受信したデータを他の端末装置へ転送する機能や、自分自身の端末装置へ転送する機能が要求される。また、自分自身の端末装置からの信号をネットワーク上に配信する機能も要求される。これらのネットワーク操作は、高速性は要求されないが、様々な状況に対応できるよう複雑な手順が決められている。端末装置がネットワーク上のデータを送信したり受信したりするには高速性が要求されるため、ハードウェアによるネットワークとのやり取りが必要となる。このときの端末装置との間の接続回路は端末装置によって異なるため、ＰＬＤを用いたハードウェア論理回路によって実現することが重要である。このように、ネットワーク端末接続装置としては、ネットワーク制御のソフトウェア機能と、データフロー制御のためのハードウェア機能とが要求され、本発明はこれらに対する最適な解を提供することができる。
【発明の効果】
【００２１】
本発明によれば、ソフトウェアに向いた処理とハードウェアに向いた処理を含むシステムを効率良く実現できると共に、少量多品種向けの極めて汎用的なシステムを実現することができる。同一プログラム命令で、ソフトウェア処理とハードウェア再構成の取り扱いができることにより、ソフトウェア処理命令とハードウェア再構成命令を同一のプログラムメモリに格納でき、更にソフトウェアで扱うデータとハードウェア再構成のためのデータも同一に取り扱うことができるため、ハードウェア再構成制御のための回路として追加するものを必要としない。
【００２２】
また、本発明によれば、プログラム可能論理装置の再構成をビット並列に行うことができ、再構成時間を極端に短縮することができる。そのため、回路動作開始以前だけでなく、回路動作中に再構成することも可能となる。外部入力信号と外部再構成信号の入力端子が共通であるため、信号データと再構成データを全く同等に扱うことができれば、両者同様な方法でプログラム可能論理回路に転送することが可能になる。
【００２３】
本発明によれば、プロセッサ、プログラム可能論理回路、プログラムメモリ、データメモリをバスで接続したアーキテクチャにより、プログラムメモリからプロセッサへの命令のロードと、プログラムメモリやデータメモリからバスを経由したプログラム可能論理回路への再構成データ及び信号データの転送が可能となる。プログラム可能論理回路以外はハードウェア再構成命令を追加したプロセッサ、ＲＯＭ、ＲＡＭといった通常の要素を用いて、プログラム制御のハード・ソフト装置を再構成することができる。
【００２４】
更に、本発明によれば、指紋照合システムを例にすれば、スタンドアローンで動作する指紋照合LSIとして、マイクロプロセッサで指紋照合動作を実行し、その動作を制御するための電源、リセット、登録、消去といったスイッチと、照合結果を表示するLED表示回路や出力パルスの生成を、プログラム命令及び再構成データで実現することができる。その他の応用として、PCやマイクロコントローラから発行される命令に従って動作する命令制御型の指紋照合LSIとして、外部から信号を受信するRS232CやRS485のような通信方式のインタフェース回路や、LED表示回路をプログラム命令及び再構成データで実現することができる。別の応用には、ネットワークに直接接続される指紋照合LSIとして、TPC／IPなどのプロトコルを取り扱うインターネット接続回路をプログラム命令及び再構成データで実現することができる。入退室の管理などの応用には、登録指紋データの登録者の名前等の情報を入力するためのキーボード入力回路や、これらのデータを表示するためのLCD表示装置との接続回路を、プログラム命令及び再構成データで実現することができる。ICカードを指紋照合に利用した応用には、ICカードリーダ／ライタとの接続回路が必要であり、登録指紋データを接続回路、リーダ／ライタを通してＩＣカードに読み書きすることに利用できる。これらの多くの応用が、全て同じＬＳＩでプログラムを変更するだけで容易に実現できる。
【００２５】
更にまた、本発明によれば、家庭ホームネットワークとして、テレビやDVD装置などの画像表示装置や、ステレオ、CDROMなどの音響装置や、PCやPDAの家庭計算機や、風呂や空調装置などの住宅装置を結ぶローカル・エリア・ネットワーク（LAN）の通信端末接続装置に本LSIチップを搭載することが可能であり、しかも１つのLSIで各種装置に共通に利用できる。このため、コストを極力下げることが可能となる。家電機器のインタフェースに合わせた端末接続装置に書き換え可能であることは、住宅装置として予め端末接続装置を壁に組み込むことを可能にする。接続する家電機器に合わせて端末接続装置を書き換えれば、家電機器は好みの場所に自由に設置ができるようになる。
【００２６】
本発明によれば、必要に応じてプログラム可能論理回路をハードウェア処理装置に再構成することにより、ハードウェア資源を少量化した効率の良い処理加速器を実現でき、高速化、低消費電力化が可能となる。また、各種応用や国際基準の変更などにも大幅なハードウェア再構成を変えることなく、プログラムを自由に変えることで柔軟に対応できる利点がある。
【発明を実施するための最良の形態】
【００２７】
従来の組み込みシステム等では、プロセッサと再構成可能なプログラム可能論理装置との組み合わせにより、プログラム駆動のソフトウェア処理と再構成用データによって再構成されるハードウェア処理とが行われていて、ソフトウェア処理とハードウェア処理の密に結合した動作は達成できていなかった。ソフト処理に関しては、ソフトデータパスとソフトデータパス制御回路は従来と同様にプログラム命令を解読し、データパスでの実行及びその実行制御が必要となる。これに対して、ハード処理では再構成データパスの構成法、再構成データパス制御回路の構成、ハードウェア再構成データパスの状態検出法、ソフト処理とハード処理のデータ交換を行うローカルメモリの構成法が課題となっている。このような課題を解決することによって、ソフトウェア処理とハードウェア処理が最適な役割分担を果たし、従来に比べて飛躍的に応用範囲を拡大する極めて経済的な組み込みシステムを実現することができる。
【００２８】
以下に本発明の実施の形態を、図面を参照して説明する。
【００２９】
図１はソフトデータパスを主体とした再構成データパスを制御する状態制御形同期機構に基づく本発明の概念（プログラム命令で動作するソフト・ハード装置）を示しており、プログラム命令を格納する読出し専用メモリROMで成るプログラムメモリ装置１と、データを扱うＲＡＭで成るデータメモリ装置２と、２つのバス３−１，３−２で接続され、そのバス３−２には更にソフトデータパス制御回路４−１と、ソフトデータパス４−２と、再構成データパス制御回路５−１と、再構成データパス５−２とが接続されている。プログラム命令はソフトデータバス制御回路４−１に読み込まれ、ソフトデータパス４−２での処理を規定するソフトウェア処理命令と、再構成データパス５−２の再構成を規定するハードウェア再構成命令とで構成されている。
【００３０】
ソフトデータパス４−２にあるプログラム命令解読装置は、プログラムメモリ装置１の指定の番地より命令を呼び出す。呼び出された命令がソフトウェア処理命令であればそれを解読し、データメモリ等のデータを用いてソフトデータパス４−２を中心に、ハード処理インタフェースのローカルメモリ６−１との間でのデータの授受も行う。また、呼び出された命令がハードウェア再構成命令であれば、命令で規定されるプログラムメモリ装置１の番地から再構成データを呼び出し、バス３−１、５−３を介して再構成データパス制御回路５−１に再構成データを転送し、再構成データパス５−２の回路再構成を行う。このハードウェア処理装置（５−１、５−２）の回路再構成を回路全体に施している間は、ソフトウェア処理もハードウェア処理も停止状態になっている。ただし、再構成データパス５−２の回路再構成が回路全体の一部の場合は、再構成されないハードウェア部分が動作を続けることも可能である。
【００３１】
また、ソフトデータパス４−２を主体とした再構成データパス５−２との制御データ交換機構として、プログラム命令による再構成データパスの動作開始制御を信号線７を介して、ハード処理の再構成データパス毎の動作状態を状態ベクトルとして、ソフトデータパス制御回路４−１に信号線８を介して転送し、再構成データパスの終了の通知を再構成データパス制御回路５−２に行う。このデータ制御により、ソフトウエア処理とハードウエア処理の動作同期を達成することができる。
【００３２】
図２は、本発明の実施の形態の中の再構成データパス５−２の一例を示している。信号線９−１，９−２，９−３の３つの入力を受け入れ、固定係数乗算器１０−１，１０−２，１０−５と加算器１０−４、１０−６とから成り、その間をレジスタ１２−１、１２−２、１２−３，１２−４，１２−５が挿入され、信号線１１から出力されている。このデータパスは、再構成データによって再構成されたデータパスの概念図を示している。このデータパスが３つの入力系列に対してパイプライン並列で実行される場合も、このデータパスを制御する再構成データパス制御回路５−１からの制御線で制御される。その繰り返し回数などは制御線で制御できる。例えば、レジスタの制御線１２−１,１２−２,１２−３，１２−４，１２−５のロード信号をＬＯＷにして、データパスを停止することもできる。
【００３３】
図３は、本発明の実施の形態の中の再構成データパス制御回路１５（再構成データパス制御回路５−１）と再構成データパス１４（再構成データパス５−２）の実現例を示している。図２のデータパスの例は図３に示すように、演算アレー１４への演算ユニット１６、１７による機能割り当てや、信号線１７の結線によって実現される。各演算ユニットや接続線には、再構成データパス制御回路から制御線１８から、機能/結線/実行/停止などの制御をデータパスに与えている。また、信号線２０には、データパス制御回路から各データパスの実行状況として、状態ベクトルを転送している。
【００３４】
図４は、本発明の実施の形態の中のローカルメモリ６−１の実現例を示している。このローカルメモリ２１には、アドレス線２２からマルチプレクサ２３を介して、データバス２４から信号線２５を通して、データＲＡＭなどのメモリ装置などとデータ通信を行う。このときのアドレスは、他のメモリ装置と共通のアドレスを割り当てることにより、ソフトウエア命令やＤＭＡ転送により、ローカルメモリにデータを蓄積することができる。これらのローカルメモリを複数台用意することにより、逐次的ではあるがローカルメモリにソフト処理結果などのデータを蓄積することができる。ハード処理を実行する場合は、アドレスはローカルアドレスを逐次的に生成することにより、複数のデータを複数のデータパスに同時に供給することが可能になる。
【００３５】
図５は、ソフトデータパスと再構成データパスをデータ駆動形同期機構に基づいて同期させる本発明の概念（プログラム命令で動作するソフト・ハード装置）を示しており、プログラム命令を格納する読出し専用メモリROMで成るプログラムメモリ装置２６と、データを扱うＲＡＭで成るデータメモリ装置２７と、２つのバス２８−１，２８−２とで接続され、そのバス２８−２には更にソフトデータパス制御回路２９−１と、ソフトデータパス２９−２と、データ駆動形の再構成データパス３０とが接続されている。プログラム命令はソフトデータバス制御回路２９−１に読み込まれ、ソフトデータパス２９−２での処理を規定するソフトウェア処理命令と、再構成データパス３０の再構成を規定するハードウェア再構成命令とで構成されている。
【００３６】
ソフトデータパス２９−２にあるプログラム命令解読装置は、プログラムメモリ装置２６の指定の番地より命令を呼び出す。呼び出された命令がソフトウェア処理命令であればそれを解読し、データメモリ等のデータを用いてソフトデータパス２９−２を中心に、ハード処理インタフェースの入出力FIFOバッファ３１−１との間でのデータの授受も行う。また、呼び出された命令がハードウェア再構成命令であれば、命令で規定されるプログラムメモリ装置２６の番地から再構成データを呼び出し、バス２８−１を介して再構成データを転送して再構成データパス３０の回路再構成を行う。このハードウェア処理装置の回路再構成を回路全体に施している間は、ソフトウェア処理もハードウェア処理も停止状態になっている。ただし、再構成データパス３０の回路再構成が回路全体の一部の場合は、再構成されないハードウェア部分が動作を続けることも可能である。
【００３７】
ソフトデータパス２９−２と再構成データパス３０との間のデータ交換のために、入出力FIFOバッファ３１−３が接続されている。FIFOバッファ３１−３は複数のレジスタが一列に並べられたものであり、複数のデータを格納できるが、早く入力されたデータが早く出力されるレジスタ群である。このFIFOバッファ３１−３にデータが入力されると、FIFOバッファ３１−３には最後に入力された記録と共にデータが記憶される。また、FIFOバッファ３１−３からデータが読み込まれると、FIFOバッファ３１−３からはこのデータが消去される。このFIFOバッファ３１−３に何もデータが入力されていない空の状態と、全てのレジスタが入力されている溢れ状態とを制御機構が検出することができる。
【００３８】
この入出力FIFOバッファ３１−３からの溢れ状態は、制御パス32−１を通してソフトデータパス制御回路２９−１に送られ、入出力FIFOバッファ３１−３にデータを出力するプログラム命令の実行は、溢れ状態の解除まで停止される。溢れ状態の解除は、当該再構成データパスの実行に従って解除される。逆に、入出力FIFOバッファ３１−３の空の状態は、そのデータを利用する再構成データパスの動作開始を待機させる。ソフトデータパス２９−２からデータが書き込まれて、初めて再構成データパスが動作が開始される。その制御パスが３２−３である。
【００３９】
同様に入出力FIFOバッファ３１−３の空の状態は、制御パス３２−１を通してソフトデータパス制御回路２９−１に送られ、入出力FIFOバッファ３１−３のデータを利用するプログラム命令の実行は、空の状態の解除まで停止される。入出力FIFOバッファ３１−３の空の状態は、再構成データパスの実行に従い出力が生成されて解除される。逆に、入出力FIFOバッファ３１−３の溢れ状態は、その入出力FIFOバッファ３１−３にデータを出力する再構成データパスの動作を停止させる。入出力FIFOバッファ３１−３のデータが読み出されて、初めて再構成データパスの動作が開始される。この制御パスが３２−３である。
【００４０】
これらのデータ駆動制御方式により、ソフトデータパスと複数の再構成データパスが独立に動作することを可能にさせることができる。ソフトデータパスが予想以上に速く処理された場合は、入出力FIFOバッファ３１−３は溢れ状態に近づき、再構成データパスは待ち状態なしで動作できるため、再構成データパスの動作が加速される。また、入出力FIFOバッファ３１−３は空の状態に近づき、同様に再構成データパスの動作を加速させる。これとは逆に、ソフトデータパスが予想以上に遅く処理された場合は、入出力FIFOバッファ３１−３は空の状態に近づき、再構成データパスに待ち状態が生じるので、再構成データパスの動作を遅くさせる。また、入出力FIFOバッファ３１−３は溢れ状態に近づき、同様に再構成データパスの動作を遅くさせる。
【００４１】
図６は、本発明の実施の形態の中のデータ駆動形の再構成データパスの一例を示している。信号線３３−１，３３−２，３３−３の３つの入力には、データ情報のほかに処理可能かどうかのフラグ情報も持っている。即ち、信号線のデータがある値を持っていたとしても、処理可能フラグが０であればそこにデータはないと考える。例えばソフトデータパスから入出力FIFOバッファにデータが書き込まれたときに初めて、処理可能フラグが１となり、データ入力が印加されたことになる。固定係数乗算器３４−１，３４−２，３４−４と加算器３４−３、３４−５とから成り、その間にレジスタ３６−１、３６−２、３６−３，３６−４，３６−５が挿入され、信号線３５から出力されている。
【００４２】
固定係数乗算器や加算器の演算器は、それぞれの入力データが揃った時点でのみ演算を開始し、1クロック後に出力データが出力される。出力データはデータ自身の値が変化するだけでなく、出力データの処理可能フラグを1にする。このようなデータの処理可能フラグが、次々に再構成データパスの演算を制御していく。
【００４３】
図７は、本発明の実施の形態の中の再構成データパスの入力FIFOバッファ３８−１，３８−２と、出力FIFOバッファ３９とを示している。バス３７を介してソフトデータパスやデータメモリと、入出力FIFOバッファ３９，３８−２との間のデータ交換を行う。各FIFOバッファ３９，３８−２は、空き状態と溢れ状態を検出する機構を備えている。
【００４４】
図８は、再構成データと入出力信号データを共通の入力端子から入力可能な別の形式のハードウェア処理装置（プログラム可能論理回路２０）のブロック構成図であり、プログラム可能論理回路２０は論理ブロックＬと結線ブロックＳ，Ｃとで構成される。ＩＯは入出力端子を示し、結線ブロックＳ及びＣは実際には切換スイッチの構成である。
【００４５】
論理ブロックＬの詳細な構成を図９に示す。図９に示すように論理ブロックＬは、直列に配列されたRAMセル２０１〜２０ｎと、スイッチ機能を有するパス・トランジスタ・スイッチ２２１〜２２ｍと、外部メモリからの書き込み信号を入力するゲート（ＯＲ）２１と、出力ゲート（ＮＯＴ）２３とで構成されている。RAMセル２０１〜２０ｎの値に外部から論理値を書き込むことにより、論理ブロックＬの論理関数が規定される。論理関数の入力変数a0,
a1, …, an によりパス・トランジスタ・スイッチ２２１〜２２ｍの一部がオンし、入力変数の組み合わせに対応したパスが導通（図９の太線）して、１つのRAMセル（図９ではＲＡＭセル２０４）の値が出力される。ＲＡＭセル２０１〜２０ｎには再構成データがシリアルで入力され、パス・トランジスタ・スイッチ２２１〜２２ｍを設定関数ｆ（a0,
a1, …, an）でＯＮ／ＯＦＦすることにより１つのパスが形成され、初期値となるＲＡＭセルの値が出力される。
【００４６】
RAMセル２０１〜２０ｎの回路構成は図１０に示すようになっており、インバータ２４１〜２４３及びスイッチング素子Ｎ１，Ｎ２で構成されている。このRAMセルは、再構成時には、再構成モード信号がオンになることによりシフトレジスタとして構成される。即ち、選択信号はスイッチング素子Ｎ１をＯＮ／ＯＦＦすると共に、インバータ２４１を介してスイッチング素子Ｎ２をＯＮ／ＯＦＦし、再構成データはスイッチング素子Ｎ１に入力され、スイッチング素子Ｎ２がＯＮしたときにメモリ機能を有することになる。
【００４７】
図１１は結線ブロックＳ及びＣの構成例を示しており、結線ブロックＳ及びＣはいずれもｎＭＯＳトランジスタ群で成るスイッチング手段と、各ｎＭＯＳトランジスタ群の各ゲートをＯＮ／ＯＦＦ制御するRAMセル（図示せず）とで構成されている。これら結線ブロックＳ及びＣは、論理ブロックＬの入出力端子間の結線を自由に変えるものである。
【００４８】
また、図１２は論理ブロックＬの再構成法を説明するための図であり、入出力端子ＩＯを介しての高速再構成法である。図９ではＲＡＭセル２０１〜２０ｎを直列に接続し、シリアルの再構成データを入力するようにしているので、データ設定に時間を要する。高速のデータ設定を行うにはパラレル入力が適しており、図１２の例では論理ブロックの再構成時に、各行又は各列の論理ブロックＬをブロック内及びブロック間も全てシフトレジスタ再構成に変えることにより、行単位又は列単位での再構成を、入出力端子ＩＯを通じて並列に実行することができるようにしている。このため、16×16程度の論理ブロックＬの再構成にも、パラレル入力によれば3000クロック程度の時間で再構成可能である。例えば100メガヘルツ動作のプログラム可能論理回路（ＰＬＤ）であれば、30マイクロ秒の時間で再構成可能である。また、行又は列単位の再構成も可能となる。このような再構成法では、実際に信号が処理されている実働時でも、必要に応じて再構成を行うことも可能となる。
【００４９】
図１３は、再構成データ及び信号データの共通端子を持つプログラム可能論理回路２０とマイクロプロセッサ１０とで成る装置を示しており、プログラム可能論理回路２０とマイクロプロセッサ１０とはバス４を介して接続されており、データはバス４を経由してマイクロプロセッサ１０又はプログラム可能論理回路２０に入力する。また、プログラム可能論理回路２０は、再構成のためのデータを複数の入出力端子ＩＯから取り込むことができることを利用すると、マイクロプロセッサ１０の命令を追加して、プログラム可能論理回路２０に再構成モードの制御信号を伝えると同時に、データ用のバス４経由で再構成データをプログラム可能論理回路２０に転送することができる。このため、プログラム命令は、マイクロプロセッサ命令とＰＬＤ再構成命令とで成る構成になる。また、ＰＬＤ再構成は実働時での実行が可能なほど高速であるため、プログラム命令としては、ソフトウェア処理とハードウェア再構成を適宜組み合わせたソフト・ハード混在プログラムを構成することも可能である。
【００５０】
図１４は可変周辺入出力装置付きプロセッサ装置の構成例を示しており、バス４にプログラム可能論理回路として、センサ接続回路２０Ａ、スイッチ接続回路２０Ｂ、ＬＥＤ表示器接続回路、ＩＣリーダ／ライタ接続回路２０Ｄ及び通信プロトコル接続回路２０Ｅが接続されている。例えば指紋照合ＬＳＩでは指紋センサ部から画像データを入力し、プロセッサで特徴点抽出や登録/照合を行うが、名前、番号等の入力のためのキー入力や、指紋画像を表示する表示装置が必要な場合もある。必要に応じてプログラム可能論理回路の再構成をプログラムで行うことにより、少ないハード量で各種の応用に対応できる。その他、指紋データを格納する媒体として、ＩＣカードとの接続、バーコードや無線タグの接続なども必要となる。また、ネットワーク接続では、ＴＣＰ／ＩＰなどのネットワークプロトコルを扱うことができるインタフェース回路が必要となる。これらを全てハードウェアとして用意するのではなく、プログラムコードとしてプログラムメモリ装置１に格納することにより、極めて汎用性の高いプロセッサを実現することができる。
【００５１】
図１５は、家庭内ＬＡＮを構築するIEEE1394プロトコルによる汎用端末接続装置３０の構成例を示しており、汎用端末接続装置３０はバスブリッジ３１、家電機器接続回路３２、IEEE1394接続回路３３及びこれらを相互接続するＰＣＩバス３４で構成されている。IEEE1394プロトコルでは、稼動中に新たな通信端子の追加や除去が可能になっている。端末接続装置間の通信によりルート（根）端末接続装置が決定され、更に巡回的に２分木構造の端末接続装置のネットワークアーキテクチャの構成が決定される。
【００５２】
図１６は、上述した汎用端末接続装置３０（３０１〜３０７）を用いたIEEE1394ネットワークアーキテクチャを示しており、各汎用端末接続装置３０１〜３０７はネットワークのシリアル通信から情報を受信し、自分自身が受信する情報を取り除き、自分自身が送信する情報を転送情報に付加して、他の汎用端末接続装置へ送信する。従って、各汎用端末接続装置３０１〜３０７はネットワーク構築と、通信情報の受信・送信・転送のネットワーク機能と、受信・送信情報を汎用端末接続装置３０１〜３０７に接続される家電機器との間で交換する機能とが要求される。これらの複雑な処理は全て、汎用端末接続装置３０１〜３０７に搭載のプロセッサのプログラムで実現される。ネットワークアーキテクチャの再構成はルート端末接続装置が異なるため、全ての汎用端末接続装置３０１〜３０７のプログラムを共通にし、どのような再構成にも対応できるようにしておくことが重要である。しかし、汎用端末接続装置３０１〜３０７の家電機器との接続回路は家電機器毎に異なるため、固定化された汎用端末接続装置では家電機器の接続回路の種類毎に端末接続装置を準備する必要がある。本汎用端末接続装置ではプログラム可能なプログラム可能論理回路により汎用化できるため、この点についても共通化が可能となる。このように、本発明によれば、ホームネットワークで用いられる統一的な汎用端末接続装置を提供することができる。
【００５３】
図１７はプログラム可能なハードウェアクセラレータ付きプロセッサを示しており、プログラム可能論理回路として動きベクトル探索器２０Ｆ、離散コサイン変換器２０Ｇ及び離散コサイン逆変換器２０Ｈがバス４に接続されている。ソフトウェア処理の中で、規則的な並列演算等はハードウェアで実現すれば、ソフトウェアの柔軟性と合わせて高速かつ高効率なシステムを構築することができる。本例はこれを更に拡張して、プログラム可能で実働時に再構成可能なハードウェア加速処理器とプロセッサの併用による高機能高速システムの実現を示唆している。応用として、ＭＰＥＧ４符号／復号器の中の規則的な並列処理が可能な動きベクトル探査器２０Ｆ、離散コサイン変換器２０Ｇや離散コサイン逆変換器２０Ｈの再構成をプログラム可能なハードウェアクセラレータで順次行うことにより、高いハードウェア使用効率やマイクロプロセッサ１０との並列処理が可能となり、小型なＭＰＥＧ４符号／復号器の再構成が可能になる。簡単な計算では、毎秒30フレーム、毎秒64Kビットを処理可能なＭＰＥＧ4符号／復号器を再構成することができる。
【産業上の利用可能性】
【００５４】
本発明は、ソフトウェアに向いた処理とハードウェアに向いた処理を含むシステムを効率良く実現できると共に、少量多品種向けの極めて汎用的なシステムを実現でき、その結果同一プログラム命令で、ソフトウェア処理とハードウェア再構成の取り扱いができることにより、ソフトウェア処理命令とハードウェア再構成命令を同一のプログラムメモリに格納できる。プログラム可能論理装置の再構成をビット並列に行うことができ、再構成時間を極めて短縮できるため、回路動作開始以前だけでなく、回路動作中に再構成することもでき、多品種少量生産を必要とする応用分野での新たな量産効果をもたらす経済性の高いものである。
【図面の簡単な説明】
【００５５】
【図１】プログラム命令で動作するソフトウェアとハードウェアで成る装置の概念を示すブロック構成図である。
【図２】再構成データで構成される再構成データパスの一例を示すブロック図である。
【図３】再構成データと再構成データパス制御回路の一例である。
【図４】ローカルメモリによるハードウエア処理の必要メモリ領域の例を示す図である。
【図５】データ駆動形同期機構を有するブロック構成図である。
【図６】データ駆動形の再構成データパスの一例を示す図である。
【図７】入出力FIFOバッファの一例を示す図である。
【図８】再構成データと入出力信号データを共通の入力端子から入力可能なハードウェア処理装置の一例を示すブロック構成図である。
【図９】論理ブロックの一例を示す構成図である。
【図１０】論理ブロック内のＲＡＭセルの回路構成図である。
【図１１】結線ブロックの構成図である。
【図１２】論理ブロックの再構成法の説明図である。
【図１３】再構成及び信号データ共通端子を持つプログラム可能論理回路とマイクロプロセッサとで成る装置の構成図である。
【図１４】可変周辺入出力装置付きプロセッサ装置のブロック構成図である。
【図１５】IEEE1394プロトコル汎用端末接続装置のブロック構成図である。
【図１６】IEEE1394ネットワークアーキテクチャの構成図である。
【図１７】プログラム可能ハードウェアクセラレータ付きプロセッサのブロック構成図である。
【符号の説明】
【００５６】
１        プログラムメモリ装置
２        データメモリ装置
３        プログラム解読装置
４        バス
５        ソフトウェア処理装置
６        ハードウェア処理装置
１０      マイクロプロセッサ
２０      プログラム可能論理回路（ＰＬＤ）
２０Ａ    センサ接続回路
２０Ｂ    スイッチ接続回路
２０Ｃ    ＩＣリーダ／ライタ接続回路
２０Ｄ    通信プロトコル接続回路
２０Ｆ    動きベクトル探索器
２０Ｇ    離散コサイン変換器
２０Ｈ    離散コサイン逆変換器
３０      汎用端末接続装置
【図１】
2005122514.tif 000003
【図２】
2005122514.tif 000004
【図３】
2005122514.tif 000005
【図４】
2005122514.tif 000006
【図５】
2005122514.tif 000007
【図６】
2005122514.tif 000008
【図７】
2005122514.tif 000009
【図８】
2005122514.tif 000010
【図９】
2005122514.tif 000011
【図１０】
2005122514.tif 000012
【図１１】
2005122514.tif 000013
【図１２】
2005122514.tif 000014
【図１３】
2005122514.tif 000015
【図１４】
2005122514.tif 000016
【図１５】
2005122514.tif 000017
【図１６】
2005122514.tif 000018
【図１７】
2005122514.tif 000019