JP2004032016A - プログラム処理装置及びプログラム処理方法 - Google Patents
プログラム処理装置及びプログラム処理方法 Download PDFInfo
- Publication number
- JP2004032016A JP2004032016A JP2002180811A JP2002180811A JP2004032016A JP 2004032016 A JP2004032016 A JP 2004032016A JP 2002180811 A JP2002180811 A JP 2002180811A JP 2002180811 A JP2002180811 A JP 2002180811A JP 2004032016 A JP2004032016 A JP 2004032016A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- program
- circuit data
- data
- processing
- 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.)
- Granted
Links
Images
Landscapes
- Microcomputers (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Abstract
プログラマブル論理回路部を備えるシステムにおいて、滞りなくプログラムを実行し、システムの高速化を図ることができるプログラム処理装置及びプログラム処理方法の提供。
【解決手段】
固定ハードウェア回路部2と、プログラマブル論理回路部1と、プログラムの一部を実行可能な複数の回路データを格納する回路データライブラリ6と、プログラムの処理に先立って、これから処理されるプログラムに対応する回路データを選択し、プログラマブル論理回路部に再構成する先読み回路5とを備え、先読み回路5に、プログラムと回路データとの対応情報を記憶する記憶手段5aと、プログラムの読み位置が回路データの再構成に十分な時間を確保できるプログラムステップ数であるかを判断し、その結果に基づいて固定ハードウェア回路部にプログラム実行開始信号を発給する比較手段5bとを備える。
【選択図】
図1
Description
【発明の属する技術分野】
本発明は、プログラム処理装置及びプログラム処理方法に関し、特に、再構成可能なプログラマブル論理回路部を備えるプログラム処理装置及び該装置を用いたプログラム処理方法に関する。
【0002】
【従来の技術】
高速なコンピュータシステムを構成する方法としては、大別して2つの方法がある。第1の方法は、図6に示すように、複数のCPU8を設け、それらを並列に動作させるマルチプロセッサ方式であり、第2の方法は、図7に示すように、CPU8の動作を支援することにより、高速化を達成するものである。
【0003】
マルチプロセッサの代表例としては、並列型のスーパーコンピュータや高性能なサーバー等が挙げられる。また最近では、JAVA(R)プロセッサを搭載するケースや、DSP(Digital Signaling Processor)を搭載するケースなど、特定のアプリケーションに特化して性能を向上させることができるようなマルチプロセッサシステムも提案されている。
【0004】
また、CPU8の動作を支援する構成としては、コプロセッサを搭載する構成やASIC(Application Specific Integrated Circuit)を搭載する構成等がある。
【0005】
コプロセッサの代表例として、浮動小数点演算を高速に行うFPU(Floating−point Processing Unit)がある。このFPUを用いることにより、CPUがハードで浮動小数点演算を行えず、ソフトウェアで処理しなければならない場合に高速化が可能になる。他の例としては、行列の演算を高速に行うためのベクトルコプロセッサがある。これは、行列演算などの規則的な演算を高速に行うためのハードウェアを備えているものである。このようなコプロセッサを用いることにより、科学技術計算などで規則的な演算が大量に出てくる場合に、CPUだけで処理するよりも高速に処理することが可能になる。
【0006】
一方、ASICは、アプリケーションに特化した機能の一部または全部をハードウェアで構成することにより、高速動作を可能にするものであり、その代表例としてゲートアレイが知られている。組み込み型のシステムでは、ASICを搭載することより高速でかつ小型のシステム構築が可能になるが、このASICは、アプリケーションに特化した機能を持つために、さまざまなアプリケーションに対応することができないという欠点がある。
【0007】
この欠点を補うため、近年、FPGA(field Programmable Gate Array)やPLD(Programmable logic device)等の書き換え可能な領域を備えるデバイス(以下、これらを総称してプログラマブル論理回路と呼ぶ。)の開発が行われている(例えば、米国特許第4,700,187号)。このプログラマブル論理回路は、図8に示すように、LUT(LookUp Table)20aとフリップフロップ20bとで構成される基本セル20を配列したものであり、LUT20aを書き換えることにより内部のハードウェアロジックを変更することが出来る。従って、アプリケーションに応じてハードウェアロジックを書き換えることができることから、特殊な用途やサイクルの短い機器等の制御デバイスとして利用されている。
【0008】
【発明が解決しようとする課題】
一般にコンピュータシステムの高速化を図るには、多くのハードウェアを使用すればよい。例えば、図6のマルチプロセッサシステムでは、CPU8の個数を増やすほど、全体のパフォーマンスは向上する。また、図7のコプロセッサやASICを搭載するシステムでは、より多くのCPU8の仕事を肩代わりすることができるようなハードウェアを構成すれば、全体のパフォーマンスは向上する。
しかしながら、このような方法ではシステムを構成する部品数が増えるため、システムの高価格化と大規模化を招いてしまう。また、これらのシステムでは、ハードウェアが提供する機能が限定的なものであるために、さまざまなアプリケーションに対応できる機能を提供することができない。
【0009】
一方、図8に示すプログラマブル論理回路19では、アプリケーションで必要となる複数の処理の回路情報を予めメモリに格納しておき、必要に応じてメモリから読み出して書き換え可能領域に書き込むことにより、その時点で必要となる回路を生成することが可能である。従って、この方法では、回路規模の小さなプログラマブル論理回路を用いて、その回路規模以上の回路を実現することができ、コンピュータシステムの小型化と低コスト化を図ることができる。
【0010】
しかしながら、このようなコンピュータシステムではコンピュータシステムがプログラムの処理を実行する場合、プログラマブル論理回路の書き換え可能領域に書き込まれる回路データは、コンピュータシステムがプログラムの処理を実行する段階もしくはそれ以前に書き込みが行われるため、プログラムの処理を実行中はプログラマブル論理回路の書き換え可能領域を再構成できない。このため、プログラムの処理が滞ってしまうという問題点がある。
【0011】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、プログラマブル論理回路部を備えるシステムにおいて、滞りなくプログラムを実行し、システムの高速化を図ることができるプログラム処理装置及びプログラム処理方法を提供することにある。
【0012】
【課題を解決するための手段】
上記目的を達成するため、本発明のプログラム処理装置は、固定ハードウェアによりプログラムを処理する第1の回路部と、再構成可能な領域を有する第2の回路部とを含むプログラム処理装置において、少なくとも、前記プログラムの一部を実行可能な複数の回路データを格納する回路データライブラリと、前記プログラムの処理に先立って、予め記録された前記プログラムの一部と前記回路データとの対応情報を参照して、これから処理しようとする前記プログラムの一部又は全部に対応する前記回路データを前記回路データライブラリの中から選択し、前記第2の回路部に再構成する先読み回路とを備え、前記プログラムの処理中に、逐次前記第2の回路部に前記回路データを書き込み、該回路データを使用して前記プログラムを実行するものである。
【0013】
本発明においては、前記先読み回路に、前記第1の回路部から取得した前記プログラムの処理位置と前記先読み回路がメモリから読み込んだ前記プログラムの読み位置とで与えられるプログラムステップ数と、前記回路データを前記第2の回路に再構成するための時間とを比較する手段を備え、該比較手段では、再構成に要する時間を確保できる場合に、前記第1の回路部に対して前記プログラムの実行開始信号を発給する構成とすることができる。
【0014】
また、本発明においては、前記回路データライブラリには、前記先読み回路に読み出される順番で、前記複数の回路データが配置される構成とすることもできる。
【0015】
また、本発明においては、前記回路データライブラリには、前記プログラムをコンパイルした結果に基づいて、前記第2の回路部に書き込む回路データが格納される構成とすることもできる。
また、本発明においては、前記第2の回路部の再構成可能な領域は、略等しい論理規模の複数のスロットに分割され、各々の前記スロットが独立して書き換え可能に制御される構成とすることもできる。
【0016】
また、本発明の演算素子は、上記記載の前記第1の回路部と前記第2の回路部と前記先読み回路とを同一チップ内に備えるものである。
【0017】
また、本発明の演算素子は、上記記載の前記第1の回路部と前記第2の回路部と前記先読み回路と前記回路データライブラリとを同一チップ内に備えるものである。
【0018】
また、本発明のプログラム処理方法は、固定ハードウェアによりプログラムを実行する第1の回路部と再構成可能な領域を有する第2の回路部とを用いたプログラム処理方法であって、少なくとも、前記プログラムの一部を実行可能な複数の回路データを回路データライブラリに格納するステップと、前記プログラムの一部と前記回路データとの対応情報を先読み回路に記憶するステップと、前記先読み回路おいて、前記プログラムの処理に先立って、これから処理しようとするプログラムの一部又は全部に対応する前記回路データを前記回路データライブラリの中から選択するステップと、選択した前記回路データを前記第2の回路部に再構成するステップとを備え、プログラムの処理中に、逐次前記第2の回路部に前記回路データを書き込み、該回路データを使用して前記プログラムを実行するものである。
【0019】
このように、本発明は、固定ハードウェアによりプログラムを処理する第1の回路部と、書き換え可能な領域を有する第2の回路部とを備えるプログラム処理装置に、先読み回路と回路データライブラリとを設け、プログラムの処理に先だって、先読み回路によって、これから処理しようとするプログラムの一部又は全部に対応する回路データを回路データライブラリから選択し、逐次書き換え可能な第2の回路部に書き込み、また、先読み回路では、第1の回路から取得したプログラムの処理位置と先読み回路のプログラムの読み位置とで与えられるプログラムステップ数と、第2の回路部に回路データを再構成するのに要する時間とが比較され、再構成の時間が確保できる場合に、第1の回路部に対してプログラムの実行開始信号を発給するため、再構成のためにプログラムの処理が滞るという問題を回避することができる。
【0020】
また、回路データライブラリでは、先読み回路が読み出す順番に回路データを配置することにより、回路データの読み出しを容易にし、また、処理されるプログラムのコンパイルした結果に基づいて回路データを格納することにより、プログラムを効率的に第2の回路部で実行することができる。
【0021】
更に、プログラマブル論理回路部を、所定の論理規模、数量に分割された複数のスロットからなる書き換え可能領域と、各々のスロットに書き込まれた回路データと外部のハードウェアやソフトウェアとの調停を行うスロット入力制御部及びスロット出力制御部と、回路データの割り込み制御を行う割り込み制御部と、各々のスロットの状態を示すステータスとを備える構成とすることにより、効率的に回路データを再構成することができ、更に処理の高速化を図ることができる。
【0022】
【発明の実施の形態】
本発明に係るプログラム処理装置は、好ましい一実施の形態において、固定ハードウェアによりプログラムを処理する固定ハードウェア回路部と、再構成可能な領域を有するプログラマブル論理回路部と、プログラムの一部を実行可能な複数の回路データをライブラリとして格納する回路データライブラリと、プログラムの処理に先立って、これから処理されるプログラムの一部又は全部に対応する回路データを選択し、プログラマブル論理回路部に再構成する先読み回路とを備え、先読み回路に、プログラムと回路データとの対応情報を記憶する記憶手段と、プログラムの読み位置が選択した回路データをプログラマブル論理回路部に再構成するのに十分な時間を確保できるプログラムステップ数であるかを判断し、その結果に基づいて固定ハードウェア回路部にプログラム実行開始信号を発給する比較手段とを備えるものであり、プログラマブル論理回路部に書き込まれた回路データを使用して円滑かつ遅滞なくプログラムを実行することができる。
【0023】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係るプログラム処理装置及びプログラム処理方法について、図1乃至図5を参照して説明する。図1は、本発明の一実施例に係るプログラム処理装置の基本構成及び処理の流れを模式的に示す図であり、図2は、プログラム処理方法の手順を示すフローチャート図である。また、図3及び図5は、先願に係るプログラマブル論理回路の構成を示す図であり、図4は、該プログラマブル論理回路のスロットの入出力インターフェース構成を示す図である。
【0024】
従来技術において記載したように、プログラマブル論理回路を用いることによって、プログラムに対応する回路データをその都度書き換え可能領域に書き込んで処理することができるため、回路規模を大きくすることなく、様々なプログラムを実行することができるが、プログラマブル論理回路を備えた従来のプログラム処理装置では、プログラムを実行する時点でプログラマブル論理回路に回路データが書き込まれるため、プログラマブル論理回路を再構成する間、プログラムの処理が滞ることになりシステムの高速化の妨げとなっていた。
【0025】
そこで、本発明では、従来のCPUに相当する固定ハードウェアによりプログラムを処理する固定ハードウェア回路部と、書き換え可能な領域を有するプログラマブル論理回路部とを備えるプログラム処理装置において、処理しようとするプログラムに対応する回路データをプログラムの実行中に逐次プログラマブル論理回路部に書き込んでおき、このプログラマブル論理回路部に書き込まれた回路データを使用して遅滞なくプログラムを実行することを特徴としている。
【0026】
具体的に説明すると、本実施例のプログラム処理装置は、図1に示すように、書き換え可能領域を含むプログラマブル論理回路部1と、固定ハードウェアによりプログラムを処理する固定ハードウェア回路部2と、プログラムメモリ3とがバス4によって接続されるコンピュータシステムに、プログラムの一部に対応する複数の回路データを格納する回路データライブラリ6と、これから処理されるプログラムの一部又は全部に対応する回路データを回路データライブラリ6の中から選択してプログラマブル論理回路部1に再構成する先読み回路5とを備える。
【0027】
また、先読み回路5には、これから処理されるプログラムと回路データライブラリ6に格納されている回路データとの対応情報を記憶する記憶手段5aと、固定ハードウェア回路部2からプログラムの処理位置を示す同期信号を受信し、先読み回路のプログラム読み位置からプログラムステップ数を演算し、回路データの再構成に要する時間と比較して、その結果を参照して固定ハードウェア回路部2にプログラムの実行開始信号を送信する比較手段5bとを備えている。
【0028】
なお、図1の構成は本発明のプログラム処理回路の基本的な構成であり、プログラマブル論理回路部1を複数備える構成としても良い。また、図ではプログラマブル論理回路部1と固定ハードウェア回路部2とを別々に記載しているが、これらが一体となった構成、例えば、固定ハードウェア回路部2の一部に書き換え可能領域を有する構造や、逆にプログラマブル論理回路部1の一部に固定ハードウェアロジックを備える構成としてもよい。また、これらの構成要素は、別々のチップに実装されていてもよく、固定ハードウェア回路部2とプログラマブル論理回路部1と先読み回路5、又はこれらと回路データライブラリ6とが一体となった演算素子として構成されていてもよい。
【0029】
上記構成のプログラム処理装置では、プログラムメモリ3に記憶されているプログラムの処理に先立って、先読み回路5ではプログラムメモリ3からプログラムを読み出し、これから処理されるプログラムを取得する。そして、記憶手段5aに記憶された対応情報を参照して、プログラムの一部又は全部に対応する回路データの有無を判断し、対応する回路データがある場合に、回路データライブラリ6に回路選択信号を送り、対応する回路データを取得してプログラマブル論理回路部1に再構成する。そして、再構成に必要な時間が確保できる場合に固定ハードウェア回路部2にプログラム実行開始信号を送り、プログラムの実行を開始する。
【0030】
その後、プログラム処理中に、これから処理しようとするプログラムが逐次プログラマブル論理回路部1に書き込まれて実行される。従って、従来のように再構成の間、プログラムの処理が滞るといった問題が生じることなく、システムの高速化を図ることができる。
【0031】
なお、予めプログラムをコンパイルし、その結果からプログラマブル論理回路部1にロードする回路データを格納することにより、プログラマブル論理回路部1でプログラムを効率的に実行することができるが、プログラムのどの部分をプログラマブル論理回路部1で実行するかは任意であり、例えば、画像処理関数等の複雑又は特殊な処理のみをプログラマブル論理回路部1で実行する構成としても良く、回路データの規模、再構成に要する時間、固定ハードウェア回路部2の構成、プログラムの処理のタイミング等を総合的に勘案して設定することができる。
【0032】
次に、具体的なプログラムの処理手順について、図2のフローチャート図を参照して説明する。
【0033】
まず、プログラムを実行する前に、予め回路データライブラリ6にプログラムの一部(例えば、処理に時間のかかる画像処理関数等)に対応する回路データを書き込み、その回路データとプログラムとの対応情報を先読み回路5の記憶手段5aに記憶する。その際、先読み回路5が回路データを容易に選択できるように、各々の回路データに対してアドレスを設定しておく。
【0034】
このアドレスを用いることにより、先読み回路5は任意の回路データにアクセスすることができるが、回路データの読み出し作業を容易にするために、予め、先読み回路5が読み出す順番に回路データを配置する構成とすることもできる。
なお、この回路データはサブルーチン毎又はタスク毎に重複して登録してもよい。
【0035】
そして、回路データライブラリ6に回路データを登録した後、ステップS101で、先読み回路5はプログラムメモリ3からプログラムを読み出し、ステップS102で、記憶手段5aに記憶されている対応情報を参照して、これから処理されるプログラムの一部又は全部に対応する回路データが回路データライブラリ6に登録されているか否かを判断する。
【0036】
次に、ステップS102で対応する回路データが登録されている場合は、ステップS103で、回路データライブラリ6に回路選択信号を送り、回路データライブラリ6からその回路データを読み出し、プログラマブル論理回路部1に書き込みを開始する。また、対応する回路データが登録されていない場合はステップS103をスキップする。
【0037】
次に、ステップS104で、先読み回路5の比較手段5bを用いて、プログラム読み位置を判断する。このステップは、読み出した回路データをプログラマブル論理回路部1に再構成するに際し、再構成が完了する前に固定ハードウェア回路部2がプログラムの実行を開始すると、プログラマブル論理回路部1でのプログラムの実行が間に合わなくなるという不具合を防止するために行うものであり、具体的には、固定ハードウェア回路部2からの同期信号を参照して取得したプログラムの処理位置と、プログラムの読み位置とで与えられるプログラムステップ数(α)が、先読み回路5がプログラマブル論理回路部1に回路データを書き込むに十分な時間を確保できるプログラムステップ数であるかを判断することにより行う。
【0038】
そして、プログラム読み位置が再構成に要する時間を確保できるプログラムステップ数であれば、ステップS105で、固定ハードウェア回路部2にプログラム実行開始信号を発給し、プログラム読み位置が再構成に要する時間を確保できるプログラムステップ数でなければ、ステップS101に戻って再度プログラムの読み出しを行う。
【0039】
その後、先読み回路5では、ステップS106で同様にプログラムメモリ3からプログラムを読み出し、ステップS107において、プログラムに対して回路データライブラリ6に登録された回路データを使用するか否かを判断し、使用する場合にはステップS108で回路データライブラリ6から対応する回路データを読み取り、プログラマブル論理回路部1に再構成する。以降、同様の処理を繰り返すことにより、プログラムの内、回路データライブラリ6に登録された処理がプログラマブル論理回路部1で実行される。
【0040】
このように、回路データライブラリ6に、プログラマブル論理回路部1に再構成して処理すべき回路データを登録しておき、プログラムの実行に際して、先読み回路5でこれから処理しようとするプログラムの一部又は全部に対応する回路データを読み出してプログラマブル論理回路部1に逐次書き込み、その回路データを使用してプログラムが実行されるため、プログラムを遅滞なく円滑に実行することができ、システムの高速化を図ることができる。
【0041】
なお、本発明は、プログラム処理装置に先読み回路5と回路データライブラリ6とを備えることを特徴とするものであり、プログラマブル論理回路部1としては一般的に用いられているものを使用すればよいが、複数の回路データを再構成する場合に、再構成すべき領域がなく、処理が遅延する場合が考えられる。この場合、複数のプログラマブル論理回路部1を設けたり、書き換え可能領域の回路規模を大きくすることによっても対応することは可能であるが、この方法ではプログラム処理装置自体の規模が大きくなり好ましくない。そこで、回路データをプログラマブル論理回路部1に効率的に書き込むために、本願出願人の先願(特願2002−153586号、特願2002−173181号)に記載されたプログラマブル論理回路を用いることが好ましい。
【0042】
特願2002−153586号記載のプログラマブル論理回路は、図3に示すように、書き換え可能領域を所定の論理規模、数量のスロット10に分割し、各々のスロット10に、独立してハードウェアロジック(回路データ)を書き換え可能に制御することを特徴とするものである。
【0043】
そして、分割された各々のスロット10にハードウェアロジックを書き込むにあたり、ファイル又はデータの形としてソフトウェアの管理下に置き、ソフトウェアの実行中にスロット10への定義・リプレースが出来るように構成している。また、このハードウェアロジックは独立に動作可能な部分であり、メモリ9へのアクセスやCPU8等のプロセッサとのアクセスを独自に行うことができるようにするために、アドレスの空間を分割している。
【0044】
また、各ハードウェアロジックが個別に動作を行うので、外部のハードウェアやソフトウェアとの調停を行う必要がある。そこで、プログラマブル論理回路7内にスロット入力制御部11、スロット出力制御部12等の調停ロジックを設け、これにより外部のハードウェアやソフトウェア等との全体の調整を行う。また、指定された処理の終了通知や内部ステータスの変化などを通知するため、各スロット10からの割り込み要求を受け付け、CPU8へ割り込みを通知する割り込み制御部13を搭載している。このスロット入力制御部11、スロット出力制御部12、割り込み制御部13は、書き換え可能領域にプログラマブルに、又は、書き換え可能領域外部に固定ロジックとして形成される。
【0045】
更に、各々のスロット10は個別に書き換え可能であるが、あるスロットが書き換えを行っている間は、他のスロットは動作している必要がある。このため、各スロット及びその調停ロジック(スロット入力制御部11及びスロット出力制御部12)に、書き換え中のスロット10を論理的に切り離すロジック(図示せず)を搭載している。
【0046】
なお、このスロット10は、図4に示すようなスロット入力制御部11を介して入力される入力側インターフェース信号(Address、Data_in、Control_in)と、スロット出力制御部12又は割り込み制御部13に出力される出力側インターフェース信号(Data_out、Control_out、Interrupt)等のインターフェース信号によって機能する独立した領域であり、各々のスロット10には自由にハードウェア機能を定義することができる。
【0047】
このスロット10の分割数や各々のスロット10の論理規模は任意であり、スロット10に書き込まれるハードウェアロジックの論理規模やマルチタスクで処理する論理の数、コンピュータシステム全体の規模や性能等を勘案して設定され、プログラマブル論理回路1を汎用性の高いシステムとする場合には、スロット10は略等しい論理規模に等分割される。同様に、ハードウェアロジックもその論理規模は任意であるが、論理規模が大きすぎると一度に多くのスロット10を占有したり、各々のハードウェアロジックの論理規模が違いすぎると、他のハードウェアロジックとの入れ替えができない場合も生じるため、各々のハードウェアロジックはスロット10の論理規模を考慮して構成される。
【0048】
上記構成の先願(特願2002−153586号)に係るプログラマブル論理回路7を用いることにより、適宜ハードウェアロジックをスロット10に挿入して処理を行うことができるが、スロット数よりも多い処理が要求された場合に処理が停滞する可能性がある。そこで、このような場合であっても対応可能とするために、特願2002−173181号では、図5に示すように、スロット10に挿入されるハードウェアロジック16(回路データ)と同じ機能を持つソフトウェアロジック17を用意し、ハードウェアロジック16とソフトウェアロジック17とをハードマクロライブラリ管理部15等のソフトウェアの管理下に置き、このソフトウェアを用いてハードウェアロジック16とソフトウェアロジック17とを状況に応じて自由に選択することが出来るようにシステムを構成している。
【0049】
このように、同等の機能を有するハードウェアロジック16とソフトウェアロジック17とをソフトウェア管理下に置き、対応するハードウェアロジック16がない場合にソフトウェアロジック17を選択したり、空きスロット10がない場合にソフトウェアロジック17を選択したり、扱うデータ量に応じてハードウェア/ソフトウェアを選択したり、フラグを参照して置き換え可能なスロット10に新たなハードウェアロジック16を書き込む等の柔軟な処理を行うことにより、処理の遅滞を防止し、システムの高速化を図ることができる。
【0050】
上記先願記載のプログラマブル論理回路7を本発明のプログラム処理装置に適用することにより、プログラムの実行に際して複数の回路データを用いて処理する場合であってもプログラム処理の遅滞を防止することができ、また、スロット10から回路データを追い出す際に、頻繁に使用される回路データをスロットに残しておき、他のスロットに順次他の回路データを書き換える等の処理を行うことにより、より効率的にプログラムを実行することができる。
【0051】
【発明の効果】
以上説明したように、本発明のプログラム処理装置及びプログラム処理方法によれば、下記記載の効果を奏する。
【0052】
本発明の第1の効果は、遅滞なくプログラム実行することができるということである。
【0053】
その理由は、固定ハードウェアによるプログラムの処理を行う固定ハードウェア回路部と、再構成可能な領域を備えるプログラマブル論理回路部と、プログラムの処理に先立ってこれから処理しようとするプログラムを先読みする先読み回路と、そのプログラムを実行する回路データを格納する回路データライブラリとを設け、先読み回路ではプログラムの処理中にこれから処理しようとするプログラムの一部又は全部に対応する回路データを回路データライブラリから選択し、逐次プログラマブル論理回路部に書き込むため、プログラマブル論理回路部に再構成する間、プログラムの処理が滞ることがないからである。
【0054】
また、先読み回路では、固定ハードウェア回路部から取得したプログラムの処理位置と、先読み回路のプログラムの読み位置とで与えられるプログラムステップ数と、回路データをプログラマブル論理回路部に再構成するのに要する時間とを比較し、再構成の時間を十分に確保できる場合に、固定ハードウェア回路部に対してプログラム実行開始信号を発給するため、固定ハードウェア回路部とプログラマブル論理回路部とのプログラム処理のタイミングを図ることができるからである。
【0055】
また、本発明の第2の効果は、装置の規模を拡大することなく、効率的にプログラムを実行することができるということである。
【0056】
その理由は、プログラマブル論理回路部として、書き換え可能領域が所定の規模、数量のスロットに分割され、各々のスロットが独立して書き換え可能に制御される先願記載のプログラマブル論理回路を用いるからである。
【図面の簡単な説明】
【図1】本発明の一実施例に係るプログラム処理装置の基本構成及び信号の流れを模式的に示す図である。
【図2】本発明の一実施例に係るプログラム処理方法の手順を示すフローチャート図である。
【図3】先願(特願2002−153586号)に係るプログラマブル論理回路の構成を示す図である。
【図4】先願に係るプログラマブル論理回路のスロットの入出力インターフェース構成を示す図である。
【図5】先願(特願2002−173181号)に係るプログラマブル論理回路の構成を示す図である。
【図6】従来のマルチプロセッサシステムの基本構成を示す図である。
【図7】従来のプロセッサ支援システムの基本構成を示す図である。
【図8】従来のプログラマブル論理回路の基本構成を示す図である。
【符号の説明】
1 プログラマブル論理回路部
2 固定ハードウェア回路部
3 プログラムメモリ
4 バス
5 先読み回路
5a 記憶手段
5b 比較手段
6 回路データライブラリ
7 先願のプログラマブル論理回路
8 CPU
9 メモリ
10 スロット
11 スロット入力制御部
12 スロット出力制御部
13 割り込み制御部
14 ステータス
15 ハードマクロライブラリ管理部
15a 記憶部
16 ハードウェアロジック
17 ソフトウェアロジック
18 コプロセッサ又はASIC
19 従来のプログラマブル論理回路
20 単位セル
20a LUT
20b フリップフロップ
Claims (11)
- 固定ハードウェアによりプログラムを処理する第1の回路部と、再構成可能な領域を有する第2の回路部とを含むプログラム処理装置において、
少なくとも、前記プログラムの一部を実行可能な複数の回路データを格納する回路データライブラリと、前記プログラムの処理に先立って、予め記録された前記プログラムの一部と前記回路データとの対応情報を参照して、これから処理しようとする前記プログラムの一部又は全部に対応する前記回路データを前記回路データライブラリの中から選択し、前記第2の回路部に再構成する先読み回路とを備え、前記プログラムの処理中に、逐次前記第2の回路部に前記回路データを書き込み、該回路データを使用して前記プログラムを実行することを特徴とするプログラム処理装置。 - 前記先読み回路に、前記第1の回路部から取得した前記プログラムの処理位置と前記先読み回路がメモリから読み込んだ前記プログラムの読み位置とで与えられるプログラムステップ数と、前記回路データを前記第2の回路に再構成するための時間とを比較する手段を備え、該比較手段では、再構成に要する時間を確保できる場合に、前記第1の回路部に対して前記プログラムの実行開始信号を発給することを特徴とする請求項1記載のプログラム処理装置。
- 前記回路データライブラリには、前記先読み回路に読み出される順番で、前記複数の回路データが配置されることを特徴とする請求項1又は2に記載のプログラム処理装置。
- 前記回路データライブラリには、前記プログラムをコンパイルした結果に基づいて、前記第2の回路部に書き込む回路データが格納されることを特徴とする請求項1乃至3のいずれか一に記載のプログラム処理装置。
- 前記第2の回路部の再構成可能な領域は、略等しい論理規模の複数のスロットに分割され、各々の前記スロットが独立して書き換え可能に制御されることを特徴とする請求項1乃至4のいずれか一に記載のプログラム処理装置。
- 請求項1乃至5のいずれか一に記載の前記第1の回路部と前記第2の回路部と前記先読み回路とを同一チップ内に備えることを特徴とする演算素子。
- 請求項1乃至5のいずれか一に記載の前記第1の回路部と前記第2の回路部と前記先読み回路と前記回路データライブラリとを同一チップ内に備えることを特徴とする演算素子。
- 固定ハードウェアによりプログラムを実行する第1の回路部と再構成可能な領域を有する第2の回路部とを用いたプログラム処理方法であって、
少なくとも、前記プログラムの一部を実行可能な複数の回路データを回路データライブラリに格納するステップと、前記プログラムの一部と前記回路データとの対応情報を先読み回路に記憶するステップと、前記先読み回路おいて、前記プログラムの処理に先立って、これから処理しようとするプログラムの一部又は全部に対応する前記回路データを前記回路データライブラリの中から選択するステップと、選択した前記回路データを前記第2の回路部に再構成するステップとを備え、プログラムの処理中に、逐次前記第2の回路部に前記回路データを書き込み、該回路データを使用して前記プログラムを実行することを特徴とするプログラム処理方法。 - 前記先読み回路において、前記第1の回路部から取得した前記プログラムの処理位置と前記先読み回路がメモリから読み込んだ前記プログラムの読み位置とで与えられるプログラムステップ数と、前記回路データを前記第2の回路に再構成するための時間とを比較し、再構成に要する時間を確保できる場合に、前記第1の回路部に対して前記プログラムの実行開始信号を発給することを特徴とする請求項8記載のプログラム処理方法。
- 前記回路データライブラリに、前記先読み回路に読み出される順番で、前記複数の回路データを配置することを特徴とする請求項8又は9に記載のプログラム処理方法。
- 前記回路データライブラリに、前記プログラムをコンパイルした結果に基づいて、前記第2の回路部に書き込む回路データを格納することを特徴とする請求項8乃至10のいずれか一に記載のプログラム処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002180811A JP3874104B2 (ja) | 2002-06-21 | 2002-06-21 | プログラム処理装置及びプログラム処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002180811A JP3874104B2 (ja) | 2002-06-21 | 2002-06-21 | プログラム処理装置及びプログラム処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004032016A true JP2004032016A (ja) | 2004-01-29 |
JP3874104B2 JP3874104B2 (ja) | 2007-01-31 |
Family
ID=31177813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002180811A Expired - Fee Related JP3874104B2 (ja) | 2002-06-21 | 2002-06-21 | プログラム処理装置及びプログラム処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3874104B2 (ja) |
-
2002
- 2002-06-21 JP JP2002180811A patent/JP3874104B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3874104B2 (ja) | 2007-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7196168B2 (ja) | 複数のプロセッサおよびニューラルネットワークアクセラレータを有するニューラルネットワーク処理システム | |
US7237091B2 (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
TWI441021B (zh) | 使用多個較低連接埠數記憶體模擬單一記憶體之方法與裝置 | |
US5752073A (en) | Digital signal processor architecture | |
JP2020537785A (ja) | ホスト通信されるマージされた重みと層単位命令のパッケージとを使用するニューラルネットワークアクセラレータによる多層ニューラルネットワーク処理 | |
US11967952B2 (en) | Electronic system including FPGA and operation method thereof | |
JPH11513825A (ja) | 縮小命令セット・コンピューター・マイクロプロセッサーの構造 | |
KR20140014299A (ko) | 시프트 가능 메모리 | |
US20090113192A1 (en) | Design structure for improving efficiency of short loop instruction fetch | |
KR20140065477A (ko) | 원자적 동작을 지원하는 시프트 가능형 메모리 | |
WO2006026086A2 (en) | Method and apparatus for management of bit plane resources | |
WO2021091649A1 (en) | Super-thread processor | |
TW201435576A (zh) | 陷阱處理期間的協作執行緒陣列粒化內文切換 | |
JPH0682320B2 (ja) | データ処理装置 | |
US5499348A (en) | Digital processor capable of concurrently executing external memory access and internal instructions | |
JP3952856B2 (ja) | キャッシュ方法 | |
JP2004334429A (ja) | 論理回路及びその論理回路上で実行するプログラム | |
EP0260837B1 (en) | Microprocessor with selective cache memory | |
JP4088763B2 (ja) | コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 | |
JP2004032016A (ja) | プログラム処理装置及びプログラム処理方法 | |
WO2001086432A2 (en) | Cryptographic data processing systems, computer program products, and methods of operating same, using parallel execution units | |
TWI249130B (en) | Semiconductor device | |
US20240192994A1 (en) | Accelerated draw indirect fetching | |
JP2004040599A (ja) | プログラマブル論理回路及びコンピュータシステム並びに回路データの再構成方法 | |
JP3904072B2 (ja) | プログラマブル論理回路及びコンピュータシステム並びに回路の初期化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050613 |
|
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: 20061004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061017 |
|
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: 20101102 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111102 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131102 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |