説明

データ処理システム

【課題】
プログラマブル論理回路を実装したデータ処理端末において、ユーザー側で処理内容が変更した場合、ユーザーがプログラマブル論理回路を変更し、処理の最適化を図ることを実現する。
【解決手段】
ユーザーにより異なる処理手順に応じて、データ処理手順と、処理時間制約と、データ処理装置が持つプログラマブル論理回路の規模を入力することにより、予め用意してあるソフトウェアライブラリとハードウェアライブラリから該当する処理を参照して、データ処理端末で実行可能なソフトウェアモジュールとハードウェアモジュールをネットワークを介して提供するシステム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブル論理回路を用途に合わせて変更するデータ処理システムに関するものである。
【背景技術】
【0002】
半導体の微細化の進展により、プロセッサの能力は増大し、従来ハードウェアで行っていた処理もソフトウェアで行うことが可能となってきた。このプロセッサの性能を生かして、多くの処理のソフトウェア化が進められている。特定アプリケーションごとにソフトウェアを作成するのではなく、基本単位ごとにライブラリ化を行い、各アプリケーションに対しては、ライブラリの組み合わせとして機能を実現してきた。例えば、画像処理分野では、各アプリケーションで異なる処理が必要となるため、ソフトウェアのライブラリ化を推し進め、ライブラリの組み合わせで必要なデータを生成するやり方が主流となってきている。
【0003】
しかし、汎用的に作られるプロセッサはコストとの関係で最小公倍数的な機能しかサポートできず、その他、大部分の処理に関しては未だに複数の処理を組み合わせて実行するレベルに留まっている。例えば、マルチメディア関連の命令でSIMD(Single
Instruction/Multiple Data)処理も、積和演算のレベルに留まっているため、これを複数実行する画像処理やデータ処理に関してはソフトウェアでSIMDを複数回実行する形態を取っている。MPEG2デコードやMP3でコードなどは、この処理でリアルタイム性を確保できるが、画像のエッジ処理や特定周波数の抽出などのアプリケーションに特化した機能は、複数の処理となるためリアルタイム性を確保できない。
【0004】
そのため特定処理の高速化は、専用のハードウェアを用いて処理時間を短縮して高速化を実現してきた。このハードウェアはG/AやCBICをアプリケーションに合わせて作成していたが、今度は逆に、半導体の微細化が開発費を押し上げ、数百万個/月以上の使用量がなければ、開発費を回収できない事態となってきている。そこで、回路規模や動作周波数もG/AやCBICに近づいてきたプログラマブル論理回路がその代替として広く使用されるようになってきた。特許文献1には、ソフトウェアとハードウェアの処理時間,メモリー消費量,FPGAの再構成時間を考慮して、実行モジュールを決定する技術が開示されている。
【0005】
【特許文献1】特開2000−252814号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
必要なデータ処理の多くは、複数のアルゴリズムの順番で決定されることが多い。例えば、産業システムでの遠隔操作では、遠隔操作側での画像を取得する必要があるため画像圧縮を行うが、この画像圧縮では離散コサイン変換(DCT)の後、符号化を行う手順を踏むため、DCTのアルゴリズムと符号化のアルゴリズムの組み合わせとなる。このようなアルゴリズムの組み合わせで行われる処理(処理手順)は、ユーザーにより様々であるため、プログラマブル論理回路とはいえソフトウェアほど柔軟に対応できるものではなく、本来ユーザー毎にプログラマブル論理回路を作成すべきであるが、そこまでの対応は出来ないため、プロセッサと同じく最小公倍数的な機能しかサポートしないプログラマブル論理回路を作成している。
【0007】
また、装置に内蔵されているデータ処理部分は、対象となるものが変わると、データ処理自体も変わることがあり、プログラマブル論理回路自体を再設計する必要もある。
【0008】
本発明の目的は、プログラマブル論理回路を搭載しているデータ処理装置において、データ処理に応じて自由にプログラマブル論理回路を変更し、尚且つそのためのソフトウェアも提供するためのシステムを実現するためのものである。
【課題を解決するための手段】
【0009】
本発明では、入力されたデータの処理手順を含む情報から、ソフトウェアモジュールとハードウェアモジュールを生成し、この各モジュールを実行するデータ処理システムを提案する。
【発明の効果】
【0010】
本発明の効果の一例として、以下のようなものが挙げられる。
【0011】
まず、ユーザー側でデータ処理装置の処理内容の変更が発生した場合、端末を用いてホスト側に新しい処理内容を入力することにより、ユーザーが持っているプログラマブル論理回路の規模に応じてハードウェアモジュールとソフトウェアモジュールを生成し、ダウンロードすることが可能である。このシステムを使用することにより、新しい処理内容に対して最適なデータ処理を行うことが実現できる。
【0012】
次に本発明の一例である制御システムは、データ処理装置が端末の機能を持つことにより、データ処理装置のみでホストに対して入力が実現できる。
【0013】
次に本発明の他の一例である制御システムは、ユーザー側にソフトウェアモジュールとハードウェアモジュールの生成機能を持ち、ソフトウェアライブラリとハードウェアライブラリをネットワークに接続されたサーバに持つことにより、例えばホストをユーザー側に持つことにより、さらにソフトウェアモジュールとハードウェアモジュールの最適化を高めることが実現できる。
【0014】
本発明の更に他の一例である制御システムは、データ処理装置がホストの機能を持つことにより、データ処理装置と連動してソフトウェアモジュールとハードウェアモジュールの生成が実現できる。
【0015】
本発明の更に他の一例である制御システムは、ソフトウェアモジュールとハードウェアモジュール生成時に制約条件を満たす最適な組み合わせを実現することができる。
【発明を実施するための最良の形態】
【0016】
プログラマブル論理回路を実装したデータ処理端末において、処理内容が変更した場合のユーザーによるプログラマブル論理回路の変更という目的を、ハードウェアライブラリ及びソフトウェアライブラリと、ユーザーが入力するデータ処理手順・処理時間制約・データ処理装置が持つプログラマブル論理回路の規模の情報から、簡便に実現する
【実施例1】
【0017】
以下、図面を用いて、本発明の第1の実施例について説明する。
【0018】
図1に示すように、データ処理装置101,端末102,ホスト103と、それらを接続するネットワーク104から構成される。
【0019】
データ処理装置は、図2に示す通り、プロセッサ201,通信インターフェス202,プログラマブル論理回路203,記憶装置204から構成される。
【0020】
次に、一連の処理の流れを図3をもとに説明する。ユーザーが端末103を用いて、データ処理手順と、処理時間制約と、データ処理装置が持つプログラマブル論理回路の規模を入力すると、そのデータがホストに転送される(301)。ホスト側では図4に示す処理に従って、図5に示すソフトウェアライブラリ501とハードウェアライブラリ502をもとに、ソフトウェアモジュール/ハードウェアモジュール303を生成する。ソフトウェアライブラリ501には処理時間データ503と処理に対応するソフトウェア504が、ハードウェアライブラリ502内には処理時間データ505と処理に対応する処理ドライバ506と処理ハードウェア507が入っている。この処理時間データ503と処理時間データ505の情報をもとに、入力された前記処理時間制約と前記プログラマブル論理回路規模に、必要であればデータ量(画像の大きさ)も情報として入力し、これからハードウェアモジュール/ソフトウェアモジュール303を生成する。
【0021】
この手順を欠陥抽出の手順を示している図6をもとに説明する。欠陥抽出は、産業用途向けの検査装置などに利用される一般的な手法である。この場合、ノイズ除去機能601,2画像位置合わせ機能602,比較機能603,特徴点抽出機能604を入力する。その後、ノイズ除去機能601は平滑化処理605とエッジ抽出処理606に、2画像位置合わせ機能602は位置合わせ処理607に、比較機能63は減算処理608に、特徴点抽出機能604は2値化処理609に自動的に分解される。処理内容に分解された後、ソフトウェアライブラリ501とハードウェアライブラリ502を検索し、該当する処理のライブラリを参照する。この時、該当する処理のライブラリ内には処理時間505と処理時間506が入っており、必要であれば、入力されたデータ量から全体の処理時間を再計算して、入力された処理時間制約とプログラマブル論理回路の規模から処理ごとにソフトウェア処理又はハードウェア処理を選択する。前述のとおり選択されたソフトウェア処理とハードウェア処理は、ソフトウェアとハードウェア毎に組み合わされ、ソフトウェアモジュール/ハードウェアモジュール303を生成する。処理時間制約が厳しい場合には、例えば図7に示す通り、平滑化処理701,減算処理704,特徴点抽出処理705がハードウェア処理となり、エッジ抽出処理702,位置合わせ処理703がソフトウェア処理となり、ハードウェア処理を増やし制約時間を達成する。逆に処理時間制約に余裕がある場合やハードウェア論理規模が小さい場合には、例えば図8に示す通り、平滑化処理
801がハードウェア処理となり、エッジ抽出処理802,位置合わせ処理803,減算処理804,2値化処理805がソフトウェア処理となり、ハードウェア化される論理は少なくなる。処理時間が間に合わない場合には、プログラマブル論理回路規模を大きくしたり、処理手順を簡素化することにより必要な処理時間を確保することが必要となる。
【0022】
このように生成されたソフトウェアとハードウェアは、図3のネットワーク104を介してユーザーが使用するデータ処理装置101に転送される。
【0023】
以上のように本発明によれば、各ユーザーに合わせてデータ処理内容を変更することが可能であり、一度、本発明の手順でソフトウェア/ハードウェアを作成すれば、データ処理装置は必要な処理手順を実行可能となる。
【実施例2】
【0024】
次に、図面を用いて本発明の第3の実施例について説明する。
【0025】
図9に示すように、データ処理装置901,ホスト902,サーバ903と、データ処理装置901とホスト902を接続するネットワーク2 904、及びホスト902とサーバ903を接続するネットワーク2 905から構成される。尚、データ処理装置901,ホスト902,サーバ903はネットワーク1 904とネットワーク2 905に別々に接続されているが、これは、ホスト902とサーバ903間のネットワーク2 905をインターネットとしている場合を想定しており、セキュリティーに問題のない場合には同一のネットワークとしても構わない。
【0026】
データ処理装置901は、図2に示す通り、プロセッサ201,通信インターフェス
202,プログラマブル論理回路203,記憶装置204で構成される。
【0027】
次に、一連の処理の流れを図10をもとに説明する。ユーザーがホスト902を用いて、データ処理手順と、処理時間制約と、データ処理装置が持つプログラマブル論理回路の規模を入力すると、ホスト902は図4に示すフローに従って処理を実行する。ここで、入力されたデータ処理手順から必要となるソフトウェアライブラリ501とハードウェアライブラリ502をネットワーク2 905を介してサーバ903からダウンロードし、ソフトウェアモジュール/ハードウェアモジュール1004を生成する。ソフトウェアライブラリ501とハードウェアライブラリ502の構造を図5に示す。ソフトウェアライブラリ501には処理時間データ503と処理に対応するソフトウェア504が、ハードウェアライブラリ502内には処理時間データ505と処理に対応する処理ドライバ506と処理ハードウェア507が入っている。この処理時間データ503と処理時間データ
505の情報をもとに、入力された前記処理時間制約と前記プログラマブル論理回路規模に、必要であればデータ量(画像の大きさ)も情報として入力し、これからソフトウェアモジュール/ハードウェアモジュール1004を生成する。
【0028】
この手順を実施例1と同じ図6をもとに説明する。この場合、ノイズ除去機能601,2画像位置合わせ機能602,比較機能603,特徴点抽出機能604を入力する。その後、ノイズ除去機能601は平滑化処理605とエッジ抽出処理606に、2画像位置合わせ機能602は位置合わせ処理607に、比較機能63は減算処理608に、特徴点抽出機能604は2値化処理609に自動的に分解される。処理内容に分解された後、ソフトウェアライブラリ501とハードウェアライブラリ502をネットワーク2 905を介して問い合わせを行い(1002)、該当する処理のライブラリを取得する(1003)。この時、該当する処理のライブラリ内には処理時間505と処理時間506が入っており、必要であれば、入力されたデータ量から全体の処理時間を再計算して、入力された処理時間制約とプログラマブル論理回路の規模から処理ごとにソフトウェア処理又はハードウェア処理を選択する。前述のとおり選択されたソフトウェア処理とハードウェア処理は、ソフトウェアとハードウェア毎に組み合わされ、ソフトウェアモジュール/ハードウェアモジュール303を生成する。処理時間制約が厳しい場合には、例えば図7に示す通り、平滑化処理701,減算処理704,特徴点抽出処理705がハードウェア処理となり、エッジ抽出処理702,位置合わせ処理703がソフトウェア処理となり、ハードウェア処理を増やし制約時間を達成する。逆に処理時間制約に余裕がある場合やハードウェア論理規模が小さい場合には、例えば図8に示す通り、平滑化処理801がハードウェア処理となり、エッジ抽出処理802,位置合わせ処理803,減算処理804,2値化処理805がソフトウェア処理となり、ハードウェア化される論理は少なくなる。処理時間が間に合わない場合には、プログラマブル論理回路規模を大きくしたり、処理手順を簡素化することにより必要な処理時間を確保することが必要となる。
【0029】
例えばホスト902をユーザーが持つことにより、ソフトウェアライブラリ501とハードウェアライブラリ502から、ソフトウェアモジュール/ハードウェアモジュール
1004を生成するアルゴリズムを変更したり、ある処理を固定的にすることが可能であり、ユーザーカスタマイズ性が向上することとなる。
【0030】
このように生成されたソフトウェアモジュール/ハードウェアモジュール1004は、ネットワーク1 904を介してデータ処理装置901に転送される。
【0031】
以上のように、本発明によれば、ソフトウェアライブラリ501とハードウェアライブラリ502を用意しておけば、各ユーザーに合わせてデータ処理内容を変更することが可能であり、一度、本発明の手順でソフトウェアモジュール/ハードウェアモジュール1004を作成すれば、データ処理装置は必要な処理手順を実行可能となる。また、ソフトウェアライブラリ501とハードウェアライブラリ502以外はユーザー側にあるため、サーバの負荷は必要最低限に押さえることができる。
【産業上の利用可能性】
【0032】
異なるデータ処理手順を、同一のプログラマブル論理回路の入った端末で実行するための、ユーザー側にとっては、処理手順の変更を行う場合、同一の装置で実現可能であり、提供側にとっては、同一のハードウェアを提供すればよく、また、ライブラリやモジュール生成のためのサーバやホストを立ち上げておけば、ユーザーに応じた柔軟なシステムを提供することが出来る。
【図面の簡単な説明】
【0033】
【図1】本発明の第1の実施形態を示すブロック図。
【図2】本発明のデータ処理装置のブロック図。
【図3】本発明の第1の実施例のデータフローの説明図。
【図4】本発明のライブラリからモジュール生成までのフローチャート。
【図5】本発明のソフトウェアライブラリとハードウェアライブラリの内部構造図。
【図6】本発明の機能ブロックから処理ブロックへの変更説明図。
【図7】本発明のライブラリからモジュール変換への説明図1。
【図8】本発明のライブラリからモジュール変換への説明図2。
【図9】本発明の第2の実施形態を示すブロック図。
【図10】本発明の第2の実施例のデータフローの説明図。
【符号の説明】
【0034】
101,901…データ処理装置、102…端末、103,902…ホスト、104…ネットワーク、201…プロセッサ、202…通信インターフェス、203…プログラマブル論理回路、204…記憶装置、301…データ転送、302…ライブラリ問い合わせ/取得、303,1004…ソフトウェアモジュール/ハードウェアモジュール生成、
304,1005…ダウンロード、501…ソフトウェアモジュール、502…ハードウェアモジュール、503,505…処理1時間データ,…,処理n時間データ、504…処理1ソフトウェアデータ,…,処理nソフトウェアデータ、506…処理1ドライバ,…,処理nドライバ、507…処理1ハードウェア,…,処理nハードウェア、601…ノイズ除去機能、602…2画像位置合わせ機能、603…比較機能、604…特徴点抽出機能、605…平滑化処理、606…エッジ抽出処理、607…位置合わせ処理、608…減算処理、609…2値化処理、701,801…平滑化処理のハードウェアとソフトウェアドライバ、702,802…エッジ抽出処理のソフトウェア、703,803…位置合わせ処理のソフトウェア、704…減算処理のハードウェアとソフトウェアドライバ、705…2値化処理のハードウェアとソフトウェアドライバ、804…減算処理のソフトウェア、805…2値化処理用ソフトウェア、903…サーバ、904…ネットワーク1、905…ネットワーク2、1001…データ入力、1002…ライブラリ問い合わせ、1003…ライブラリ参照。

【特許請求の範囲】
【請求項1】
データ処理手順を、プログラム言語で記述したソフトウェアモジュールとプログラマブル論理回路で記述したハードウェアモジュールで処理するデータ処理システムであって、
前記ソフトウェアモジュールを実行するためのプロセッサと前記ハードウェアモジュールを実行するためのプログラマブル論理回路を持つデータ処理装置と、
前記データ処理手順と、処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模との情報を入力する端末と、
前記端末から入力された情報から、前記ソフトウェアモジュールと前記ハードウェアモジュールを、ソフトウェアライブラリとハードウェアライブラリから生成するホストシステムと、を備え
前記端末と前記ホストシステムと前記データ処理装置がネットワークで接続され、前記端末より入力された前記情報を元に前記ホストシステムが生成した前記ソフトウェアモジュールと前記ハードウェアモジュールを前記ネットワークからダウンロードして実行することを特徴とするデータ処理システム。
【請求項2】
請求項1のデータ処理システムにおいて、
前記ソフトウェアモジュールを実行するためのプロセッサと前記ハードウェアモジュールを実行するためのプログラマブル論理回路を持つデータ処理装置と、
前記データ処理手順と、前記処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模との情報を入力する端末と、
が同一の装置であることを特徴とするデータ処理システム。
【請求項3】
データ処理手順を、プログラム言語で記述したソフトウェアモジュールとプログラマブル論理回路で記述したハードウェアモジュールで処理するデータ処理システムであって、
前記ソフトウェアモジュールを実行するためのプロセッサと前記ハードウェアモジュールを実行するためのプログラマブル論理回路を持つデータ処理装置と、
ソフトウェアライブラリとハードウェアライブラリを持つサーバシステムと
前記データ処理手順と、処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模との情報を入力し、前記サーバシステムから前記ソフトウェアライブラリと前記ハードウェアライブラリを参照し、前記ソフトウェアモジュールと前記ハードウェアモジュールから生成するホストシステムと、を備え、
前記データ処理装置と前記ホストシステムと前記ホストシステムがネットワークで接続され、前記ホストシステムは、入力された前記情報を元に、前記サーバシステムの前記ソフトウェアライブラリと前記ハードウェアライブラリを参照し、前記ソフトモジュールと前記ハードウェアモジュール生成し、前記ネットワークからダウンロードして実行することを特徴とするデータ処理システム。
【請求項4】
請求項3のデータ処理システムにおいて、
前記ソフトウェアモジュールを実行するためのプロセッサと前記ハードウェアモジュールを実行するためのプログラマブル論理回路を持つデータ処理装置と、
前記データ処理手順と、処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模との情報を入力し、前記サーバシステムから前記ソフトウェアライブラリと前記ハードウェアライブラリを参照し、前記ソフトウェアモジュールと前記ハードウェアモジュールから生成するホストシステムと、
が同一の装置であることを特徴とするデータ処理システム。
【請求項5】
請求項1及び請求項3のデータ処理システムにおいて、
前記ソフトウェアライブラリに、該当する処理のソフトウェア論理と、前記ソフトウェア論理の実行時間を、
前記ハードウェアライブラリに、該当する処理のハードウェア論理と、前記ハードウェア論理を実行させるためのソフトウェアドライバ論理と、前記ハードウェア論理と前記ソフトウェアドライバ論理との実行時間と
を備えることを特徴とするデータ処理システム。
【請求項6】
プログラム言語で記述したソフトウェアモジュールとプログラマブル論理回路で記述したハードウェアモジュールでデータ処理するデータ処理システムにおいて、
データの処理手順を含む情報を入力する端末と、
当該端末から入力された情報から、ソフトウェアモジュールとハードウェアモジュールを生成するホストシステムと、
前記ソフトウェアモジュールとハードウェアモジュールを、前記ホストシステムからダウンロードして実行するデータ処理装置を備えたデータ処理システム。
【請求項7】
請求項6において、
前記端末から入力される情報には、処理時間制約と、前記データ処理装置が持つプログラマブル論理回路の規模の情報が含まれることを特徴とするデータ処理システム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−102651(P2007−102651A)
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2005−294288(P2005−294288)
【出願日】平成17年10月7日(2005.10.7)
【出願人】(501387839)株式会社日立ハイテクノロジーズ (4,325)
【Fターム(参考)】