(57)【要約】【課題】  プログラマブル論理回路を実装したデータ処理端末において、ユーザー側で処理内容が変更した場合、ユーザーがプログラマブル論理回路を変更し、処理の最適化を図ることを実現する。【解決手段】  ユーザーにより異なる処理手順に応じて、データ処理手順と、処理時間制約と、データ処理装置が持つプログラマブル論理回路の規模を入力することにより、予め用意してあるソフトウェアライブラリとハードウェアライブラリから該当する処理を参照して、データ処理端末で実行可能なソフトウェアモジュールとハードウェアモジュールをネットワークを介して提供するシステム。【選択図】図１
2007102651.tif 000002
【特許請求の範囲】
【請求項１】
データ処理手順を、プログラム言語で記述したソフトウェアモジュールとプログラマブル論理回路で記述したハードウェアモジュールで処理するデータ処理システムであって、
前記ソフトウェアモジュールを実行するためのプロセッサと前記ハードウェアモジュールを実行するためのプログラマブル論理回路を持つデータ処理装置と、
前記データ処理手順と、処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模との情報を入力する端末と、
前記端末から入力された情報から、前記ソフトウェアモジュールと前記ハードウェアモジュールを、ソフトウェアライブラリとハードウェアライブラリから生成するホストシステムと、を備え
前記端末と前記ホストシステムと前記データ処理装置がネットワークで接続され、前記端末より入力された前記情報を元に前記ホストシステムが生成した前記ソフトウェアモジュールと前記ハードウェアモジュールを前記ネットワークからダウンロードして実行することを特徴とするデータ処理システム。
【請求項２】
請求項１のデータ処理システムにおいて、
前記ソフトウェアモジュールを実行するためのプロセッサと前記ハードウェアモジュールを実行するためのプログラマブル論理回路を持つデータ処理装置と、
前記データ処理手順と、前記処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模との情報を入力する端末と、
が同一の装置であることを特徴とするデータ処理システム。
【請求項３】
データ処理手順を、プログラム言語で記述したソフトウェアモジュールとプログラマブル論理回路で記述したハードウェアモジュールで処理するデータ処理システムであって、
前記ソフトウェアモジュールを実行するためのプロセッサと前記ハードウェアモジュールを実行するためのプログラマブル論理回路を持つデータ処理装置と、
ソフトウェアライブラリとハードウェアライブラリを持つサーバシステムと
前記データ処理手順と、処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模との情報を入力し、前記サーバシステムから前記ソフトウェアライブラリと前記ハードウェアライブラリを参照し、前記ソフトウェアモジュールと前記ハードウェアモジュールから生成するホストシステムと、を備え、
前記データ処理装置と前記ホストシステムと前記ホストシステムがネットワークで接続され、前記ホストシステムは、入力された前記情報を元に、前記サーバシステムの前記ソフトウェアライブラリと前記ハードウェアライブラリを参照し、前記ソフトモジュールと前記ハードウェアモジュール生成し、前記ネットワークからダウンロードして実行することを特徴とするデータ処理システム。
【請求項４】
請求項３のデータ処理システムにおいて、
前記ソフトウェアモジュールを実行するためのプロセッサと前記ハードウェアモジュールを実行するためのプログラマブル論理回路を持つデータ処理装置と、
前記データ処理手順と、処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模との情報を入力し、前記サーバシステムから前記ソフトウェアライブラリと前記ハードウェアライブラリを参照し、前記ソフトウェアモジュールと前記ハードウェアモジュールから生成するホストシステムと、
が同一の装置であることを特徴とするデータ処理システム。
【請求項５】
請求項１及び請求項３のデータ処理システムにおいて、
前記ソフトウェアライブラリに、該当する処理のソフトウェア論理と、前記ソフトウェア論理の実行時間を、
前記ハードウェアライブラリに、該当する処理のハードウェア論理と、前記ハードウェア論理を実行させるためのソフトウェアドライバ論理と、前記ハードウェア論理と前記ソフトウェアドライバ論理との実行時間と
を備えることを特徴とするデータ処理システム。
【請求項６】
プログラム言語で記述したソフトウェアモジュールとプログラマブル論理回路で記述したハードウェアモジュールでデータ処理するデータ処理システムにおいて、
データの処理手順を含む情報を入力する端末と、
当該端末から入力された情報から、ソフトウェアモジュールとハードウェアモジュールを生成するホストシステムと、
前記ソフトウェアモジュールとハードウェアモジュールを、前記ホストシステムからダウンロードして実行するデータ処理装置を備えたデータ処理システム。
【請求項７】
請求項６において、
前記端末から入力される情報には、処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模の情報が含まれることを特徴とするデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル論理回路を用途に合わせて変更するデータ処理システムに関するものである。
【背景技術】
【０００２】
半導体の微細化の進展により、プロセッサの能力は増大し、従来ハードウェアで行っていた処理もソフトウェアで行うことが可能となってきた。このプロセッサの性能を生かして、多くの処理のソフトウェア化が進められている。特定アプリケーションごとにソフトウェアを作成するのではなく、基本単位ごとにライブラリ化を行い、各アプリケーションに対しては、ライブラリの組み合わせとして機能を実現してきた。例えば、画像処理分野では、各アプリケーションで異なる処理が必要となるため、ソフトウェアのライブラリ化を推し進め、ライブラリの組み合わせで必要なデータを生成するやり方が主流となってきている。
【０００３】
しかし、汎用的に作られるプロセッサはコストとの関係で最小公倍数的な機能しかサポートできず、その他、大部分の処理に関しては未だに複数の処理を組み合わせて実行するレベルに留まっている。例えば、マルチメディア関連の命令でＳＩＭＤ(Single 
Instruction／Multiple Data）処理も、積和演算のレベルに留まっているため、これを複数実行する画像処理やデータ処理に関してはソフトウェアでＳＩＭＤを複数回実行する形態を取っている。ＭＰＥＧ２デコードやＭＰ３でコードなどは、この処理でリアルタイム性を確保できるが、画像のエッジ処理や特定周波数の抽出などのアプリケーションに特化した機能は、複数の処理となるためリアルタイム性を確保できない。
【０００４】
そのため特定処理の高速化は、専用のハードウェアを用いて処理時間を短縮して高速化を実現してきた。このハードウェアはＧ／ＡやＣＢＩＣをアプリケーションに合わせて作成していたが、今度は逆に、半導体の微細化が開発費を押し上げ、数百万個／月以上の使用量がなければ、開発費を回収できない事態となってきている。そこで、回路規模や動作周波数もＧ／ＡやＣＢＩＣに近づいてきたプログラマブル論理回路がその代替として広く使用されるようになってきた。特許文献１には、ソフトウェアとハードウェアの処理時間，メモリー消費量，ＦＰＧＡの再構成時間を考慮して、実行モジュールを決定する技術が開示されている。
【０００５】
【特許文献１】特開２０００−２５２８１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
必要なデータ処理の多くは、複数のアルゴリズムの順番で決定されることが多い。例えば、産業システムでの遠隔操作では、遠隔操作側での画像を取得する必要があるため画像圧縮を行うが、この画像圧縮では離散コサイン変換（ＤＣＴ）の後、符号化を行う手順を踏むため、ＤＣＴのアルゴリズムと符号化のアルゴリズムの組み合わせとなる。このようなアルゴリズムの組み合わせで行われる処理（処理手順）は、ユーザーにより様々であるため、プログラマブル論理回路とはいえソフトウェアほど柔軟に対応できるものではなく、本来ユーザー毎にプログラマブル論理回路を作成すべきであるが、そこまでの対応は出来ないため、プロセッサと同じく最小公倍数的な機能しかサポートしないプログラマブル論理回路を作成している。
【０００７】
また、装置に内蔵されているデータ処理部分は、対象となるものが変わると、データ処理自体も変わることがあり、プログラマブル論理回路自体を再設計する必要もある。
【０００８】
本発明の目的は、プログラマブル論理回路を搭載しているデータ処理装置において、データ処理に応じて自由にプログラマブル論理回路を変更し、尚且つそのためのソフトウェアも提供するためのシステムを実現するためのものである。
【課題を解決するための手段】
【０００９】
本発明では、入力されたデータの処理手順を含む情報から、ソフトウェアモジュールとハードウェアモジュールを生成し、この各モジュールを実行するデータ処理システムを提案する。
【発明の効果】
【００１０】
本発明の効果の一例として、以下のようなものが挙げられる。
【００１１】
まず、ユーザー側でデータ処理装置の処理内容の変更が発生した場合、端末を用いてホスト側に新しい処理内容を入力することにより、ユーザーが持っているプログラマブル論理回路の規模に応じてハードウェアモジュールとソフトウェアモジュールを生成し、ダウンロードすることが可能である。このシステムを使用することにより、新しい処理内容に対して最適なデータ処理を行うことが実現できる。
【００１２】
次に本発明の一例である制御システムは、データ処理装置が端末の機能を持つことにより、データ処理装置のみでホストに対して入力が実現できる。
【００１３】
次に本発明の他の一例である制御システムは、ユーザー側にソフトウェアモジュールとハードウェアモジュールの生成機能を持ち、ソフトウェアライブラリとハードウェアライブラリをネットワークに接続されたサーバに持つことにより、例えばホストをユーザー側に持つことにより、さらにソフトウェアモジュールとハードウェアモジュールの最適化を高めることが実現できる。
【００１４】
本発明の更に他の一例である制御システムは、データ処理装置がホストの機能を持つことにより、データ処理装置と連動してソフトウェアモジュールとハードウェアモジュールの生成が実現できる。
【００１５】
本発明の更に他の一例である制御システムは、ソフトウェアモジュールとハードウェアモジュール生成時に制約条件を満たす最適な組み合わせを実現することができる。
【発明を実施するための最良の形態】
【００１６】
プログラマブル論理回路を実装したデータ処理端末において、処理内容が変更した場合のユーザーによるプログラマブル論理回路の変更という目的を、ハードウェアライブラリ及びソフトウェアライブラリと、ユーザーが入力するデータ処理手順・処理時間制約・データ処理装置が持つプログラマブル論理回路の規模の情報から、簡便に実現する
【実施例１】
【００１７】
以下、図面を用いて、本発明の第１の実施例について説明する。
【００１８】
図１に示すように、データ処理装置１０１，端末１０２，ホスト１０３と、それらを接続するネットワーク１０４から構成される。
【００１９】
データ処理装置は、図２に示す通り、プロセッサ２０１，通信インターフェス２０２，プログラマブル論理回路２０３，記憶装置２０４から構成される。
【００２０】
次に、一連の処理の流れを図３をもとに説明する。ユーザーが端末１０３を用いて、データ処理手順と、処理時間制約と、データ処理装置が持つプログラマブル論理回路の規模を入力すると、そのデータがホストに転送される（３０１）。ホスト側では図４に示す処理に従って、図５に示すソフトウェアライブラリ５０１とハードウェアライブラリ５０２をもとに、ソフトウェアモジュール／ハードウェアモジュール３０３を生成する。ソフトウェアライブラリ５０１には処理時間データ５０３と処理に対応するソフトウェア５０４が、ハードウェアライブラリ５０２内には処理時間データ５０５と処理に対応する処理ドライバ５０６と処理ハードウェア５０７が入っている。この処理時間データ５０３と処理時間データ５０５の情報をもとに、入力された前記処理時間制約と前記プログラマブル論理回路規模に、必要であればデータ量（画像の大きさ）も情報として入力し、これからハードウェアモジュール／ソフトウェアモジュール３０３を生成する。
【００２１】
この手順を欠陥抽出の手順を示している図６をもとに説明する。欠陥抽出は、産業用途向けの検査装置などに利用される一般的な手法である。この場合、ノイズ除去機能６０１，２画像位置合わせ機能６０２，比較機能６０３，特徴点抽出機能６０４を入力する。その後、ノイズ除去機能６０１は平滑化処理６０５とエッジ抽出処理６０６に、２画像位置合わせ機能６０２は位置合わせ処理６０７に、比較機能６３は減算処理６０８に、特徴点抽出機能６０４は２値化処理６０９に自動的に分解される。処理内容に分解された後、ソフトウェアライブラリ５０１とハードウェアライブラリ５０２を検索し、該当する処理のライブラリを参照する。この時、該当する処理のライブラリ内には処理時間５０５と処理時間５０６が入っており、必要であれば、入力されたデータ量から全体の処理時間を再計算して、入力された処理時間制約とプログラマブル論理回路の規模から処理ごとにソフトウェア処理又はハードウェア処理を選択する。前述のとおり選択されたソフトウェア処理とハードウェア処理は、ソフトウェアとハードウェア毎に組み合わされ、ソフトウェアモジュール／ハードウェアモジュール３０３を生成する。処理時間制約が厳しい場合には、例えば図７に示す通り、平滑化処理７０１，減算処理７０４，特徴点抽出処理７０５がハードウェア処理となり、エッジ抽出処理７０２，位置合わせ処理７０３がソフトウェア処理となり、ハードウェア処理を増やし制約時間を達成する。逆に処理時間制約に余裕がある場合やハードウェア論理規模が小さい場合には、例えば図８に示す通り、平滑化処理
８０１がハードウェア処理となり、エッジ抽出処理８０２，位置合わせ処理８０３，減算処理８０４，２値化処理８０５がソフトウェア処理となり、ハードウェア化される論理は少なくなる。処理時間が間に合わない場合には、プログラマブル論理回路規模を大きくしたり、処理手順を簡素化することにより必要な処理時間を確保することが必要となる。
【００２２】
このように生成されたソフトウェアとハードウェアは、図３のネットワーク１０４を介してユーザーが使用するデータ処理装置１０１に転送される。
【００２３】
以上のように本発明によれば、各ユーザーに合わせてデータ処理内容を変更することが可能であり、一度、本発明の手順でソフトウェア／ハードウェアを作成すれば、データ処理装置は必要な処理手順を実行可能となる。
【実施例２】
【００２４】
次に、図面を用いて本発明の第３の実施例について説明する。
【００２５】
図９に示すように、データ処理装置９０１,ホスト９０２,サーバ９０３と、データ処理装置９０１とホスト９０２を接続するネットワーク２  ９０４、及びホスト９０２とサーバ９０３を接続するネットワーク２  ９０５から構成される。尚、データ処理装置９０１,ホスト９０２,サーバ９０３はネットワーク１  ９０４とネットワーク２  ９０５に別々に接続されているが、これは、ホスト９０２とサーバ９０３間のネットワーク２  ９０５をインターネットとしている場合を想定しており、セキュリティーに問題のない場合には同一のネットワークとしても構わない。
【００２６】
データ処理装置９０１は、図２に示す通り、プロセッサ２０１，通信インターフェス
２０２，プログラマブル論理回路２０３，記憶装置２０４で構成される。
【００２７】
次に、一連の処理の流れを図１０をもとに説明する。ユーザーがホスト９０２を用いて、データ処理手順と、処理時間制約と、データ処理装置が持つプログラマブル論理回路の規模を入力すると、ホスト９０２は図４に示すフローに従って処理を実行する。ここで、入力されたデータ処理手順から必要となるソフトウェアライブラリ５０１とハードウェアライブラリ５０２をネットワーク２  ９０５を介してサーバ９０３からダウンロードし、ソフトウェアモジュール／ハードウェアモジュール１００４を生成する。ソフトウェアライブラリ５０１とハードウェアライブラリ５０２の構造を図５に示す。ソフトウェアライブラリ５０１には処理時間データ５０３と処理に対応するソフトウェア５０４が、ハードウェアライブラリ５０２内には処理時間データ５０５と処理に対応する処理ドライバ506と処理ハードウェア５０７が入っている。この処理時間データ５０３と処理時間データ
５０５の情報をもとに、入力された前記処理時間制約と前記プログラマブル論理回路規模に、必要であればデータ量（画像の大きさ）も情報として入力し、これからソフトウェアモジュール／ハードウェアモジュール１００４を生成する。
【００２８】
この手順を実施例１と同じ図６をもとに説明する。この場合、ノイズ除去機能６０１，２画像位置合わせ機能６０２，比較機能６０３，特徴点抽出機能６０４を入力する。その後、ノイズ除去機能６０１は平滑化処理６０５とエッジ抽出処理６０６に、２画像位置合わせ機能６０２は位置合わせ処理６０７に、比較機能６３は減算処理６０８に、特徴点抽出機能６０４は２値化処理６０９に自動的に分解される。処理内容に分解された後、ソフトウェアライブラリ５０１とハードウェアライブラリ５０２をネットワーク２  ９０５を介して問い合わせを行い（１００２）、該当する処理のライブラリを取得する(１００３)。この時、該当する処理のライブラリ内には処理時間５０５と処理時間５０６が入っており、必要であれば、入力されたデータ量から全体の処理時間を再計算して、入力された処理時間制約とプログラマブル論理回路の規模から処理ごとにソフトウェア処理又はハードウェア処理を選択する。前述のとおり選択されたソフトウェア処理とハードウェア処理は、ソフトウェアとハードウェア毎に組み合わされ、ソフトウェアモジュール／ハードウェアモジュール３０３を生成する。処理時間制約が厳しい場合には、例えば図７に示す通り、平滑化処理７０１，減算処理７０４，特徴点抽出処理７０５がハードウェア処理となり、エッジ抽出処理７０２，位置合わせ処理７０３がソフトウェア処理となり、ハードウェア処理を増やし制約時間を達成する。逆に処理時間制約に余裕がある場合やハードウェア論理規模が小さい場合には、例えば図８に示す通り、平滑化処理８０１がハードウェア処理となり、エッジ抽出処理８０２，位置合わせ処理８０３，減算処理８０４，２値化処理８０５がソフトウェア処理となり、ハードウェア化される論理は少なくなる。処理時間が間に合わない場合には、プログラマブル論理回路規模を大きくしたり、処理手順を簡素化することにより必要な処理時間を確保することが必要となる。
【００２９】
例えばホスト９０２をユーザーが持つことにより、ソフトウェアライブラリ５０１とハードウェアライブラリ５０２から、ソフトウェアモジュール／ハードウェアモジュール
１００４を生成するアルゴリズムを変更したり、ある処理を固定的にすることが可能であり、ユーザーカスタマイズ性が向上することとなる。
【００３０】
このように生成されたソフトウェアモジュール／ハードウェアモジュール１００４は、ネットワーク１  ９０４を介してデータ処理装置９０１に転送される。
【００３１】
以上のように、本発明によれば、ソフトウェアライブラリ５０１とハードウェアライブラリ５０２を用意しておけば、各ユーザーに合わせてデータ処理内容を変更することが可能であり、一度、本発明の手順でソフトウェアモジュール／ハードウェアモジュール1004を作成すれば、データ処理装置は必要な処理手順を実行可能となる。また、ソフトウェアライブラリ５０１とハードウェアライブラリ５０２以外はユーザー側にあるため、サーバの負荷は必要最低限に押さえることができる。
【産業上の利用可能性】
【００３２】
異なるデータ処理手順を、同一のプログラマブル論理回路の入った端末で実行するための、ユーザー側にとっては、処理手順の変更を行う場合、同一の装置で実現可能であり、提供側にとっては、同一のハードウェアを提供すればよく、また、ライブラリやモジュール生成のためのサーバやホストを立ち上げておけば、ユーザーに応じた柔軟なシステムを提供することが出来る。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１の実施形態を示すブロック図。
【図２】本発明のデータ処理装置のブロック図。
【図３】本発明の第１の実施例のデータフローの説明図。
【図４】本発明のライブラリからモジュール生成までのフローチャート。
【図５】本発明のソフトウェアライブラリとハードウェアライブラリの内部構造図。
【図６】本発明の機能ブロックから処理ブロックへの変更説明図。
【図７】本発明のライブラリからモジュール変換への説明図１。
【図８】本発明のライブラリからモジュール変換への説明図２。
【図９】本発明の第２の実施形態を示すブロック図。
【図１０】本発明の第２の実施例のデータフローの説明図。
【符号の説明】
【００３４】
１０１，９０１…データ処理装置、１０２…端末、１０３，９０２…ホスト、１０４…ネットワーク、２０１…プロセッサ、２０２…通信インターフェス、２０３…プログラマブル論理回路、２０４…記憶装置、３０１…データ転送、３０２…ライブラリ問い合わせ／取得、３０３，１００４…ソフトウェアモジュール／ハードウェアモジュール生成、
３０４，１００５…ダウンロード、５０１…ソフトウェアモジュール、５０２…ハードウェアモジュール、５０３，５０５…処理１時間データ，…，処理ｎ時間データ、５０４…処理１ソフトウェアデータ，…，処理ｎソフトウェアデータ、５０６…処理１ドライバ，…，処理ｎドライバ、５０７…処理１ハードウェア，…，処理ｎハードウェア、６０１…ノイズ除去機能、６０２…２画像位置合わせ機能、６０３…比較機能、６０４…特徴点抽出機能、６０５…平滑化処理、６０６…エッジ抽出処理、６０７…位置合わせ処理、608…減算処理、６０９…２値化処理、７０１，８０１…平滑化処理のハードウェアとソフトウェアドライバ、７０２，８０２…エッジ抽出処理のソフトウェア、７０３，８０３…位置合わせ処理のソフトウェア、７０４…減算処理のハードウェアとソフトウェアドライバ、７０５…２値化処理のハードウェアとソフトウェアドライバ、８０４…減算処理のソフトウェア、８０５…２値化処理用ソフトウェア、９０３…サーバ、９０４…ネットワーク１、９０５…ネットワーク２、１００１…データ入力、１００２…ライブラリ問い合わせ、１００３…ライブラリ参照。
【図１】
2007102651.tif 000003
【図２】
2007102651.tif 000004
【図３】
2007102651.tif 000005
【図４】
2007102651.tif 000006
【図５】
2007102651.tif 000007
【図６】
2007102651.tif 000008
【図７】
2007102651.tif 000009
【図８】
2007102651.tif 000010
【図９】
2007102651.tif 000011
【図１０】
2007102651.tif 000012