JP2011039698A - 演算処理装置 - Google Patents
演算処理装置 Download PDFInfo
- Publication number
- JP2011039698A JP2011039698A JP2009185041A JP2009185041A JP2011039698A JP 2011039698 A JP2011039698 A JP 2011039698A JP 2009185041 A JP2009185041 A JP 2009185041A JP 2009185041 A JP2009185041 A JP 2009185041A JP 2011039698 A JP2011039698 A JP 2011039698A
- Authority
- JP
- Japan
- Prior art keywords
- timing
- operation timing
- processes
- output data
- timings
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
【課題】異なるプロセス間で正しいデータをやり取りする。
【解決手段】プロセスAは、離散的に順次訪れる動作タイミングXを基準にした各区間において動作し、プロセスBは、離散的に順次訪れる動作タイミングYを基準にした各区間において動作する。動作タイミングX及びYは、基準タイミングT1、T2、T3、T4、T5・・・を元にして定められる。i番目の動作タイミングX及びYは、夫々、基準タイミングTi及びT2i-1と一致する。プロセス間通信部は、動作タイミングX及びYが重なる時においてプロセスA及びB間のデータ受け渡しを行う。例えば、タイミングT2及びT3間に行われたプロセスAであるプロセスA[2]の出力データを、タイミングT3においてプロセスBに渡すことでプロセスB[3]の中で該出力データを利用する。
【選択図】図2
【解決手段】プロセスAは、離散的に順次訪れる動作タイミングXを基準にした各区間において動作し、プロセスBは、離散的に順次訪れる動作タイミングYを基準にした各区間において動作する。動作タイミングX及びYは、基準タイミングT1、T2、T3、T4、T5・・・を元にして定められる。i番目の動作タイミングX及びYは、夫々、基準タイミングTi及びT2i-1と一致する。プロセス間通信部は、動作タイミングX及びYが重なる時においてプロセスA及びB間のデータ受け渡しを行う。例えば、タイミングT2及びT3間に行われたプロセスAであるプロセスA[2]の出力データを、タイミングT3においてプロセスBに渡すことでプロセスB[3]の中で該出力データを利用する。
【選択図】図2
Description
本発明は、プロセス間の通信機能を備えた演算処理装置に関する。
近年、1つの演算装置のみでは処理能力が不足するため、複数の演算装置を使用したシステムが採用されることも多い。この種のシステムでは、各演算装置上で動作するプロセス間で、データのやり取りを行う必要が生じる。このデータやり取りを実現する機構として、共有メモリなどが一般的に用いられる。プロセスとは、あるまとまった一連の演算処理を指し、所謂スレッドもプロセスの一種である。
また、複数のメモリを用いることで、複数のプロセス間のデータやり取りを実現する方法も提案されている(特許文献1参照)。特許文献1の中で、複数のプロセスの動作タイミングを全て同一にする方法が提案されている。この方法により、プロセスとメモリとの割り当て関係の切り替えが容易となる。
しかし、実際のアプリケーションにおいて、プロセスの動作時間はプロセスごとに様々であるため、複数のプロセスの動作タイミングを全て同一にするためには、各プロセスの動作周期を動作時間が一番長いプロセスの動作周期に合わせる必要がある。例えば、第1、第2及び第3プロセスの、1回当たりの動作時間が夫々50ms、100ms及び200msであった場合、第1、第2及び第3プロセスの動作周期を夫々50ms、100ms及び200msにまで縮めることもできるが、第1〜第3プロセスの動作タイミングを全て同一にするためには、第1、第2及び第3プロセスの動作周期を第3プロセスのそれ(即ち200ms)に合わせる必要が生じる。つまり、第1及び第2プロセスの動作周期を200msにまで拡大する必要が生じ、システムの動作効率が低下する。
そこで本発明は、動作効率低下を抑制しつつ複数のプロセス間の通信を可能ならしめる演算処理装置を提供することを目的とする。
本発明に係る演算処理装置は、第1動作タイミング列を形成する各第1動作タイミングを基準にした各区間で動作する第1プロセス及び第2動作タイミング列を形成する各第2動作タイミングを基準にした各区間で動作する第2プロセスを含む複数のプロセスが動作する演算処理装置において、前記第1プロセスの出力データを前記第2プロセスにて利用できるようにするためのプロセス間通信部を備え、前記第1動作タイミング列と前記第2動作タイミング列は互いに異なり、前記プロセス間通信部は、第1動作タイミングと第2動作タイミングが一致する場合、或いは、第2動作タイミングが第1動作タイミングから所定時間が経過した後のタイミングである場合に、当該第1動作タイミング前における前記第1プロセスの出力データを、当該第2動作タイミング後において前記第2プロセスが利用できるようにすることを特徴とする。
これにより、第1プロセスと第2プロセスの動作タイミング列が異なっていても、適切なデータの受け渡しができるようになる。これを実現するために、第1又は第2プロセスの動作周期を拡大する必要もないため、該拡大に起因する動作効率の低下も生じない。
そして例えば、前記複数のプロセスに含まれる各プロセスは演算動作を行って演算結果を表すデータを出力し、前記第1及び第2動作タイミング列の少なくとも一方は、前記第1プロセスの出力データ、前記第2プロセスの出力データ、又は、前記複数のプロセスに含まれる、前記第1及び第2プロセスと異なる第3プロセスの出力データ、に基づいて可変設定されるようにしても良い。
また例えば、前記第1及び第2プロセスは、複数のALUを備えたリコンフィギャラブルプロセッサ上で動作する。
本発明によれば、動作効率低下を抑制しつつ複数のプロセス間の通信を可能ならしめる演算処理装置を提供することができる。
本発明の意義ないし効果は、以下に示す実施の形態の説明により更に明らかとなろう。ただし、以下の実施の形態は、あくまでも本発明の一つの実施形態であって、本発明ないし各構成要件の用語の意義は、以下の実施の形態に記載されたものに制限されるものではない。
以下、本発明の実施の形態につき、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。
<<第1実施形態>>
本発明の第1実施形態を説明する。図1は、第1実施形態に係る演算処理装置10の概略ブロック図である。演算処理装置10は、プロセス実行部11及び12と、プロセス実行部11及び12間でデータのやり取りを行うためのプロセス間通信部13と、タイミング制御部14と、を備える。
本発明の第1実施形態を説明する。図1は、第1実施形態に係る演算処理装置10の概略ブロック図である。演算処理装置10は、プロセス実行部11及び12と、プロセス実行部11及び12間でデータのやり取りを行うためのプロセス間通信部13と、タイミング制御部14と、を備える。
プロセス実行部11及び12の夫々はプロセスを実行する演算装置である。本明細書において、プロセスとは、あるまとまった一連の演算処理を指し、所謂スレッドもプロセスの一種である。プロセス実行部11が実行するプロセスをプロセスAと呼び、プロセス実行部12が実行するプロセスをプロセスBと呼ぶ。プロセスAとプロセスBは互いに異なるプロセスである。演算処理装置10には、プロセス実行部11及び12の他に、プロセスA及びB以外のプロセスを実行するプロセス実行部(不図示)も含まれうる。以下では、プロセス実行部11及び12に注目し、特に必要の無い限り、プロセス実行部11及び12以外のプロセス実行部の説明を割愛する。
図2を参照して、プロセスA及びBの動作タイミングについて説明する。プロセスAは、離散的に順次訪れる動作タイミングXを基準にした各区間において動作し、プロセスBは、離散的に順次訪れる動作タイミングYを基準にした各区間において動作する。図2において、上方側に記載された7つの矢印の夫々は動作タイミングXに対応しており、下方側に記載された4つの矢印の夫々は動作タイミングYに対応している。
時間の経過するにつれて、基準タイミングT1、T2、T3、T4、T5、T6、T7・・・、がこの順番で訪れるものとする。即ち基準タイミングTi+1は基準タイミングTiの後に訪れるタイミングである(iは自然数)。
i番目の動作タイミングXは基準タイミングTiと一致する。プロセス実行部11は、i番目の動作タイミングXから始まる区間であって且つ所定時間長さを有する区間において、i回目のプロセスAを実行する。i回目のプロセスAを特にプロセスA[i]と表記する。1回分のプロセスAの動作時間は、隣接する基準タイミングTi及びTi+1間の時間長さ以下である。従って例えば、基準タイミングT1と一致する1番目の動作タイミングXにおいてプロセスA[1]が実行開始され、プロセスA[1]は基準タイミングT2までに終了する。同様に例えば、基準タイミングT2と一致する2番目の動作タイミングXにおいてプロセスA[2]が実行開始され、プロセスA[2]は基準タイミングT3までに終了する。プロセスA[3]等についても同様である。
i番目の動作タイミングYは基準タイミングT2i-1と一致する。プロセス実行部12は、i番目の動作タイミングYから始まる区間であって且つ所定時間長さを有する区間において、i回目のプロセスBを実行する。i回目のプロセスBを特にプロセスB[i]と表記する。1回分のプロセスBの動作時間は、隣接する基準タイミングTi及びTi+1間の時間長さの2倍である。従って例えば、基準タイミングT1と一致する1番目の動作タイミングYにおいてプロセスB[1]が実行開始され、プロセスB[1]は基準タイミングT3までに終了する。同様に例えば、基準タイミングT3と一致する2番目の動作タイミングYにおいてプロセスB[2]が実行開始され、プロセスB[2]は基準タイミングT5までに終了する。プロセスB[3]等についても同様である。
このように、プロセスAの動作タイミングXは基準タイミングの全て(T1、T2、T3、T4、T5、・・・)に対応しており、プロセスBの動作タイミングYは基準タイミングの一部(T1、T3、T5、・・・)に対応している。勿論、これは本実施形態で採用している例示に過ぎず、i番目の動作タイミングX又はYを、基準タイミングT3i-2や基準タイミングT4i-3に一致させることも可能である。
タイミング制御部14は、基準タイミング並びに動作タイミングX及びYを生成する。タイミング制御部14は、一定クロックを発生する発振器(不図示)を用いて、それらのタイミングを生成することができる。尚、タイミング制御部14が、プロセス間通信部13に内在していると考えても構わない。
尚、時系列に順次訪れる複数のタイミングを総称してタイミング列と呼ぶ。これにならい、1、2、3・・・番目の動作タイミングXから成るタイミング列を動作タイミング列Xと呼び、1、2、3・・・番目の動作タイミングYから成るタイミング列を動作タイミング列Yと呼び、基準タイミングT1、T2、T3・・・から成るタイミング列を基準タイミング列と呼ぶ。上述の説明からも明らかなように、動作タイミング列Xと動作タイミング列Yは互いに異なる。以下の説明では、特記なき限り、基準タイミング列の内、基準タイミングT1〜T7にのみ注目する。また、以下の説明では、基準タイミングTiを単にタイミングTiとも呼ぶ。
プロセスA又はBなどの任意のプロセスは、定められた演算動作を行って演算結果を表すデータを出力する。注目時点においてプロセスAは、注目時点以前に実行されたプロセスBの出力データに基づいて自身の演算動作を行う。同様に、注目時点においてプロセスBは、注目時点以前に実行されたプロセスAの出力データに基づいて自身の演算動作を行う。これを実現するために、プロセス間通信部13は、プロセスAの出力データをプロセスBにて利用できるようにするための処理及びプロセスBの出力データをプロセスAにて利用できるようにするための処理を実行する。尚、本例では、プロセスAの演算動作がプロセスBの出力データに基づいて行われ且つプロセスBの演算動作がプロセスAの出力データに基づいて行われることと想定しているが、プロセスBの出力データに依存することなくプロセスAの演算動作が行われても良い。この場合、プロセスBの出力データをプロセスAにて利用できるようにするための処理の実行は不要である。或いは、プロセスAの出力データに依存することなくプロセスBの演算動作が行われても良い。この場合、プロセスAの出力データをプロセスBにて利用できるようにするための処理の実行は不要である。
図3に、プロセス間通信部13の内部ブロック図をも含めた、演算処理装置10の構成ブロック図を示す。図3のプロセス間通信部13は、メモリ21及び22と切替制御部23を備える。メモリ21及び22の夫々は、プロセスAの出力データ(換言すれば、プロセス実行部11の出力データ)又はプロセスBの出力データ(換言すれば、プロセス実行部12の出力データ)を記憶することができる。但し、或る区間では、プロセスAのみがメモリ21にアクセス可能であって且つプロセスBのみがメモリ22にアクセス可能であり、他の区間では、プロセスBのみがメモリ21にアクセス可能であって且つプロセスAのみがメモリ22にアクセス可能となるように、各プロセスのアクセス可能なメモリが切り替わるようになっている。注目プロセスが注目メモリにアクセス可能であるとは、注目プロセスが、注目メモリに任意のデータを書き込むことが可能であると共に注目メモリに書き込まれた任意のデータを読み出すことが可能である状態を指す。
便宜上、図4(a)に示すような、プロセスAのみがメモリ21にアクセス可能であって且つプロセスBのみがメモリ22にアクセス可能である状態を第1アクセス状態と呼び、図4(b)に示すような、プロセスBのみがメモリ21にアクセス可能であって且つプロセスAのみがメモリ22にアクセス可能である状態を第2アクセス状態と呼ぶ。第1及び第2アクセス状態間の切り替えは、切替制御部23によって成される。プロセスA及びBのメモリ21及び22に対するアクセス状態が第1アクセス状態である時において該切り替えが行われると該アクセス状態は第2アクセス状態へと変化し、プロセスA及びBのメモリ21及び22に対するアクセス状態が第2アクセス状態である時において該切り替えが行われると該アクセス状態は第1アクセス状態へと変化する。
切替制御部23は、プロセスA及びB間の適切な通信を可能とするべく、動作タイミングX及びYが重なった場合にのみ上記切り替えを行う。つまり、タイミングT3、T5及びT7において上記切り替えを行う。これにより、プロセスA及びB間で正しいデータの受け渡し(換言すれば、最新のデータの受け渡し)ができるようになる。尚、タイミングT1以前においてプロセスA及びBは動作していないため、タイミングT1における切り替えは不要である(或いは意味を成さない)。
より具体的な動作例を説明する。タイミングT1及びT3間の区間においては第1アクセス状態(図4(a)参照)が実現されるように且つタイミングT3及びT5間の区間においては第2アクセス状態(図4(b)参照)が実現されるように上記切り替えが行われる場合を想定する。この際、タイミングT2及びT3間の区間において、プロセスA[2]が自身の出力データDTA[2]をメモリ21に書き込む。その後、タイミングT3において第1アクセス状態から第2アクセス状態への切り替えが行われると、タイミングT3及びT5間の区間において、プロセスB[2]がメモリ21内のデータDTA[2]にアクセスできるようになり、結果、プロセスB[2]はデータDTA[2]に基づいて必要な演算動作を行うことができるようになる。また、タイミングT1及びT2間の区間において、プロセスA[1]が自身の出力データDTA[1]をメモリ21に書き込んでいたならば、該データDTA[1]をプロセスB[2]においてメモリ21から読み出すことも可能である。
同様に、タイミングT1及びT3間の区間において、プロセスB[1]は自身の出力データDTB[1]をメモリ22に書き込む。その後、タイミングT3において第1アクセス状態から第2アクセス状態への切り替えが行われると、タイミングT3及びT4間の区間において、プロセスA[3]がメモリ22内のデータDTB[1]にアクセスできるようになり、結果、プロセスA[3]はデータDTB[1]に基づいて必要な演算動作を行うことができるようになる。更に、プロセスA[3]においてメモリ22上のデータDTB[1]が変更されていなければ、タイミングT4及びT5間の区間においてもプロセスA[4]がメモリ22内のデータDTB[1]にアクセスできるようになり、プロセスA[4]もデータDTB[1]に基づいて必要な演算動作を行うことができるようになる。
上述の如く、動作タイミング列Xを形成する何れかの動作タイミングX及び動作タイミング列Yを形成する何れかの動作タイミングYを夫々注目動作タイミングX及び注目動作タイミングYと呼ぶとすると、注目動作タイミングXと注目動作タイミングYが一致するタイミング(例えばタイミングT3)においてのみ、第1及び第2アクセス状態間の切り替えを行う。これにより、注目動作タイミングX前(例えばタイミングT3前)におけるプロセスAの出力データを、注目動作タイミングY後(例えばタイミングT3後)においてプロセスBが利用できるようになると共に、注目動作タイミングY前(例えばタイミングT3前)におけるプロセスBの出力データを、注目動作タイミングX後(例えばタイミングT3後)においてプロセスAが利用できるようになる。つまり、プロセスA及びBの動作タイミング列が異なっていても、プロセスA及びB間で正しいデータの受け渡し(換言すれば、最新のデータの受け渡し)ができるようになる。また、この受け渡しを簡易な機構にて実現することができる。
動作タイミングの設定方法等について説明を補足する。上述の例では、動作タイミングX及びYが予め定められた間隔にて周期的に訪れることを想定しているが、演算処理装置10における任意の演算処理の結果等に応じて動作タイミングX及びYを動的に変更するようにしても良い。時間的に隣接する2つの動作タイミングX間の間隔をX間隔と呼び、時間的に隣接する2つの動作タイミングY間の間隔をY間隔と呼ぶ。タイミングT1及びT2間の間隔はX間隔の一つであり、タイミングT1及びT3間の間隔はY間隔の一つである。上述してきた例では、Y間隔がX間隔の2倍に固定されている。X間隔の設定は、プロセスAが行っても良いし、プロセスB又はプロセス間通信部13が行っても良い。同様に、Y間隔の設定は、プロセスBが行っても良いし、プロセスA又はプロセス間通信部13が行っても良い。
例えば、タイミングTi以前に出力されたプロセスA、B及び/又はCの出力データに基づいてタイミングTi以降におけるX間隔を動的に設定するようにしても良い。プロセスCとは、演算処理装置10に内在するプロセス実行部であって且つプロセス実行部11及び12以外のプロセス実行部(不図示)が実行する、プロセスA及びB以外のプロセスである。同様に例えば、タイミングTi以前に出力されたプロセスA、B及び/又はCの出力データに基づいてタイミングTi以降におけるY間隔を動的に設定するようにしても良い。より具体的な例として例えば、Y間隔の設定がプロセスAにて行われるようにしておき、プロセスAが、自身の演算結果である自身の出力データに応じてY間隔をX間隔の2倍又は3倍に設定するようにしてもよい。このように、動作タイミングが動的に変化する場合でも、プロセス間のデータのやり取りを問題なく行うことができる。
また、上述の如く、共通の基準タイミングを元に複数のプロセスの動作タイミングを規定することにより、複数のプロセスの動作タイミングが重なるタイミングを容易に知ることが可能となる。例えば、2回の基準タイミングごとに1回の動作タイミングが発生する第1プロセスと、3回の基準タイミングごとに1回の動作タイミングが発生する第2プロセスとが実行される場合においては、6回の基準タイミングごとに第1及び第2プロセスの動作タイミングが重なるということが容易に判明する。つまり、2つのプロセス間におけるデータのやり取りのタイミングを簡単に求めることができる。尚、各プロセスの動作タイミングを基準タイミングとは無関係に設定することも可能ではある。
また、基準タイミングは一定の周期で訪れるようにすると良い。例えば、プロセスAの演算にて参照される入力データが1kHz(キロヘルツ)の周期で更新される場合には、基準タイミングを1kHzの周期で発生させることで、最新の入力データに応じた演算をプロセスAにて実行させることができる。加えて、動作タイミングの周期が規定されることになるため、各プロセスの処理にかけることができる時間を確定することができる。但し、基準タイミングの周期を可変設定することも可能ではある(即ち例えば、タイミングTi及びTi+1間の時間とタイミングTi+1及びTi+2間の時間を、異ならせることも可能である)。
動作タイミング列が互いに異なる複数のプロセスが動作するアプリケーションの例として、音声処理などが挙げられる。例えば、プロセスAが音声信号に対して50kHzの周期で低域通過フィルタの処理を行い、プロセスBが該処理の結果を利用して25kHzの周期で別のフィルタ処理を音声信号に対して行う、といったアプリケーションが考えられる。
また、切替制御部23に、図5に示すようなAND回路30を備えるようにしても良い。AND回路30には、動作タイミングXの発生時点において“1”の論理値をとり且つそれ以外では“0”の論理値をとるX信号と、動作タイミングYの発生時点において“1”の論理値をとり且つそれ以外では“0”の論理値をとるY信号と、が入力される。AND回路30は、図6に示す如く、X信号及びY信号の論理値が共に“1”の場合に “1”の論理値をとり且つそれ以外の場合に“0”の論理値をとるZ信号を出力する。Z信号は、第1及び第2アクセス状態間の切り替えを指示する切り替え信号として機能し、Z信号の論理値が“1”になるタイミングにおいて、第1及び第2アクセス状態間の切り替えを行うようにすると良い。
<<第2実施形態>>
本発明の第2実施形態を説明する。第2実施形態は、第1実施形態を基礎にした実施形態であり、矛盾なき限り、第1実施形態の記載が第2実施形態にも適用される。
本発明の第2実施形態を説明する。第2実施形態は、第1実施形態を基礎にした実施形態であり、矛盾なき限り、第1実施形態の記載が第2実施形態にも適用される。
第1実施形態では、プロセスが実際に演算を始めるタイミングや、プロセスのメモリへのアクセス状態が切り替えられるタイミングが、基準タイミング列を形成する何れかの基準タイミングと完全に一致していることを想定したが、それらのタイミングは基準タイミングと完全に一致している必要は無い。例えば、或る基準タイミングの数クロック後に、プロセスの演算が開始されたり、プロセスのメモリへのアクセス状態が切り替えられたりする実施の形態も、本発明に含まれる。このような実施の形態を、図7を参照して説明する。
図7には、第2実施形態に係るプロセスA及びBの動作タイミングX及びYが示されている。図7において、上方側に記載された7つの矢印の夫々は動作タイミングXに対応しており、下方側に記載された4つの矢印の夫々は動作タイミングYに対応している。
i番目の動作タイミングXは、図2に示したものと同様、基準タイミングTiと一致する。但し、i番目の動作タイミングYは、図2に示したものと異なり、基準タイミングT2i-1から所定時間ΔT経過後のタイミングと一致する。タイミングTiから時間ΔTだけ経過したタイミングを(Ti+ΔT)と表記する。そうすると例えば、第2実施形態では、タイミング(T1+ΔT)と一致する1番目の動作タイミングYにおいてプロセスB[1]が実行開始され、プロセスB[1]はタイミング(T3+ΔT)までに終了する。同様に例えば、タイミング(T3+ΔT)と一致する2番目の動作タイミングYにおいてプロセスB[2]が実行開始され、プロセスB[2]はタイミング(T5+ΔT)までに終了する。プロセスB[3]等についても同様である。
図8は、第2実施形態に係る演算処理装置60の概略ブロック図である。演算処理装置60は、プロセス実行部61及び62と、プロセス実行部61及び62間でデータのやり取りを行うためのプロセス間通信部63と、タイミング制御部64と、を備える。矛盾なき限り、図1の演算処理装置10に対して上述した事項を、演算処理装置60に適用することができる。プロセス実行部61及び62は、夫々、図1のプロセス実行部11及び12と同じものであり、プロセスA及びBを実行する。タイミング制御部64は、基準タイミング並びに動作タイミングX及びYを生成する。タイミング制御部64は、一定クロックを発生する発振器(不図示)を用いて、それらのタイミングを生成することができる。尚、タイミング制御部64が、プロセス間通信部63に内在していると考えても構わない。
プロセス間通信部63は、プロセスAの出力データをプロセスBにて利用できるようにするための処理を実行する。図9に、この処理を実現するための回路構成例を示す。図9における保持用メモリ71及び入力用メモリ72をプロセス間通信部63に設けておくことができる。プロセスAは保持用メモリ71に自身の出力データを自由に書き込むことができ、プロセスBは入力用メモリ72に書き込まれたデータを自由に読み出すことができる。
図9の回路を用いた具体的な動作例を説明する。タイミングT2及びT3間の区間において、プロセスA[2]が自身の出力データDTA[2]を保持用メモリ71に書き込む。或いは、タイミングT3以降であって且つタイミング(T3+Δ)以前のタイミングにおいて、出力データDTA[2]が保持用メモリ71に書き込まれても良い。データDTA[2]が保持用メモリ71に書き込まれた後、タイミング(T3+Δ)に至るまでに、プロセス通信部63は、保持用メモリ71に書き込まれたデータDTA[2]を入力用メモリ72に転送する。これにより、タイミング(T3+Δ)から始まる2回目のプロセスB用の区間において、プロセスB[2]は、入力用メモリ72内のデータDTA[2]にアクセスできるようになり、データDTA[2]に基づいて必要な演算動作を行うことができる。
また、タイミングT1及びT2間の区間において、プロセスA[1]が自身の出力データDTA[1]を保持用メモリ71に書き込んでいたならば、該データDTA[1]も、タイミング(T3+Δ)に至るまでに入力用メモリ72に転送され、プロセスB[2]はデータDTA[2]だけでなくデータDTA[1]も入力用メモリ72から読み出すことが可能となる。プロセスB[2]とプロセスA[2](及びA[1])との間におけるデータ受け渡しについて説明したが、他のプロセスB及びA間のデータ受け渡し(例えば、プロセスB[3]とプロセスA[4](及びA[3])との間におけるデータ受け渡し)についても同様である。
第2実施形態によっても、注目動作タイミングX前(例えばタイミングT3前)におけるプロセスAの出力データを、注目動作タイミングY後(例えばタイミング(T3+ΔT))においてプロセスBが利用できるようになる。つまり、プロセスA及びBの動作タイミング列が異なっていても、プロセスA及びB間で正しいデータの受け渡し(換言すれば、最新のデータの受け渡し)ができるようになる。また、この受け渡しを簡易な機構にて実現することができる。
<<第3実施形態>>
上述してきた各プロセスを、リコンフィギャラブルプロセッサ上で動作させることができ、そのような動作を実現する実施の形態を、第3実施形態として説明する。第3実施形態は、第1又は第2実施形態を基礎にした実施形態であり、矛盾なき限り、第1又は第2実施形態の記載が第3実施形態にも適用される。
上述してきた各プロセスを、リコンフィギャラブルプロセッサ上で動作させることができ、そのような動作を実現する実施の形態を、第3実施形態として説明する。第3実施形態は、第1又は第2実施形態を基礎にした実施形態であり、矛盾なき限り、第1又は第2実施形態の記載が第3実施形態にも適用される。
図10は、第3実施形態に係る演算処理装置100の概略ブロック図である。演算処理装置100は、リコンフィギャラブルプロセッサ101及び102と、リコンフィギャラブルプロセッサ101及び102間でデータのやり取りを行うためのプロセス間通信部103と、タイミング制御部104と、を備える。
各リコンフィギャラブルプロセッサは、論理回路の再構成を可能とする機能を備え、与えられた設定情報に応じて、各リコンフィギャラブルプロセッサ内で実際に実行される処理の内容が定められる。リコンフィギャラブルプロセッサ101(以下、プロセッサ101と略記する)の内部に四則演算や論理演算などを行う複数のALU(Arithmetic and Logic Unit)がアレイ状に並べられ、リコンフィギャラブルプロセッサ101に対する設定情報に応じて該複数のALUを接続することによりリコンフィギャラブルプロセッサ101において所望のプロセスを実行することが可能となる。リコンフィギャラブルプロセッサ102(以下、プロセッサ102と略記する)についても同様である。
プロセッサ101及び102にて実行されるプロセスは、タイミング制御部104にて生成される動作タイミングに従って動作する。該動作タイミングは、プロセスの処理内容等に応じて任意に設定され、プロセス間で異なるものであっても良い。また、タイミング制御部104にて生成される動作タイミングは、プロセッサ101及び/又は102の出力に応じて変更されるものであってもよい。
プロセッサ101上で動作するプロセスとプロセッサ102上で動作するプロセスとの間の通信は、プロセス間通信部103を介して行われる。プロセス間通信部103は、タイミング制御部104にて生成される動作タイミングに応じて、プロセス間のデータのやり取りを行わせる。
ここで、プロセッサ101及び102において実行されるプロセスが夫々プロセスA及びBであるとする。そうすると、プロセッサ101及び102は図1のプロセス実行部11及び12として機能すると共にプロセス間通信部103及びタイミング制御部104は図1のプロセス間通信部13及びタイミング制御部14として機能する。或いは、プロセッサ101及び102は図8のプロセス実行部61及び62として機能すると共にプロセス間通信部103及びタイミング制御部104は図8のプロセス間通信部63及びタイミング制御部64として機能する。
上述の各実施形態は、本発明の実施の形態の例に過ぎず、それらを様々に変形できることは言うまでもない。尚、上述した説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。
10、60、100 演算処理装置
11、12、61、62 プロセス実行部
13、63、103 プロセス間通信部
14、64、104 タイミング制御部
101、102 リコンフィギャラブルプロセッサ
11、12、61、62 プロセス実行部
13、63、103 プロセス間通信部
14、64、104 タイミング制御部
101、102 リコンフィギャラブルプロセッサ
Claims (3)
- 第1動作タイミング列を形成する各第1動作タイミングを基準にした各区間で動作する第1プロセス及び第2動作タイミング列を形成する各第2動作タイミングを基準にした各区間で動作する第2プロセスを含む複数のプロセスが動作する演算処理装置において、
前記第1プロセスの出力データを前記第2プロセスにて利用できるようにするためのプロセス間通信部を備え、
前記第1動作タイミング列と前記第2動作タイミング列は互いに異なり、
前記プロセス間通信部は、第1動作タイミングと第2動作タイミングが一致する場合、或いは、第2動作タイミングが第1動作タイミングから所定時間が経過した後のタイミングである場合に、当該第1動作タイミング前における前記第1プロセスの出力データを、当該第2動作タイミング後において前記第2プロセスが利用できるようにする
ことを特徴とする演算処理装置。 - 前記複数のプロセスに含まれる各プロセスは演算動作を行って演算結果を表すデータを出力し、
前記第1及び第2動作タイミング列の少なくとも一方は、
前記第1プロセスの出力データ、
前記第2プロセスの出力データ、又は、
前記複数のプロセスに含まれる、前記第1及び第2プロセスと異なる第3プロセスの出力データ、
に基づいて可変設定される
ことを特徴とする請求項1に記載の演算処理装置。 - 前記第1及び第2プロセスは、複数のALUを備えたリコンフィギャラブルプロセッサ上で動作する
ことを特徴とする請求項1または請求項2に記載の演算処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009185041A JP2011039698A (ja) | 2009-08-07 | 2009-08-07 | 演算処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009185041A JP2011039698A (ja) | 2009-08-07 | 2009-08-07 | 演算処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011039698A true JP2011039698A (ja) | 2011-02-24 |
Family
ID=43767415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009185041A Pending JP2011039698A (ja) | 2009-08-07 | 2009-08-07 | 演算処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011039698A (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62295157A (ja) * | 1986-06-14 | 1987-12-22 | Fuji Electric Co Ltd | 通信制御装置における受信デ−タの制御方式 |
JPH0869384A (ja) * | 1994-08-11 | 1996-03-12 | Cegelec | 連続タスクをスケジューリングする方法 |
JP2000199450A (ja) * | 1998-12-28 | 2000-07-18 | Denso Corp | エンジン制御装置 |
JP2006040254A (ja) * | 2004-06-21 | 2006-02-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路および処理装置 |
JP2006257998A (ja) * | 2005-03-17 | 2006-09-28 | Hitachi Ltd | 車両制御用ソフトウェア及び車両制御装置 |
JP2007219937A (ja) * | 2006-02-17 | 2007-08-30 | Toyota Infotechnology Center Co Ltd | タスク管理システム、タスク管理方法およびタスク管理プログラム |
-
2009
- 2009-08-07 JP JP2009185041A patent/JP2011039698A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62295157A (ja) * | 1986-06-14 | 1987-12-22 | Fuji Electric Co Ltd | 通信制御装置における受信デ−タの制御方式 |
JPH0869384A (ja) * | 1994-08-11 | 1996-03-12 | Cegelec | 連続タスクをスケジューリングする方法 |
JP2000199450A (ja) * | 1998-12-28 | 2000-07-18 | Denso Corp | エンジン制御装置 |
JP2006040254A (ja) * | 2004-06-21 | 2006-02-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路および処理装置 |
JP2006257998A (ja) * | 2005-03-17 | 2006-09-28 | Hitachi Ltd | 車両制御用ソフトウェア及び車両制御装置 |
JP2007219937A (ja) * | 2006-02-17 | 2007-08-30 | Toyota Infotechnology Center Co Ltd | タスク管理システム、タスク管理方法およびタスク管理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3120683C (en) | Configuration load of a reconfigurable data processor | |
JP5610566B2 (ja) | 半導体装置及びデータ処理システム | |
JP2010244238A (ja) | リコンフィギュラブル回路及びリコンフィギュラブル回路システム | |
JP6494155B2 (ja) | ミニコア基盤の再構成可能プロセッサ、そのためのスケジュール装置及び方法 | |
TW201643684A (zh) | 用於配置具有軟錯誤檢測和低佈線複雜度的多個寄存器的系統和方法 | |
JP5680466B2 (ja) | 並列処理システム及び並列処理システムの動作方法 | |
TW200928759A (en) | Data processing with time-based memory access | |
JP4753895B2 (ja) | 遅延調整回路を有するアレイ型プロセッサ | |
JP4838009B2 (ja) | リコンフィグラブル回路 | |
JP2011039698A (ja) | 演算処理装置 | |
JP2007188171A (ja) | メモリコントローラ | |
JP5599987B2 (ja) | 多重化用補助peおよび半導体集積回路 | |
US9697122B2 (en) | Data processing device | |
JP4633334B2 (ja) | 情報処理装置およびメモリアクセス調停方法 | |
JP2007241570A (ja) | プログラマブルコントローラ間通信のための共有メモリの設定方式 | |
US12013781B2 (en) | Processing device using variable stride pattern | |
JP2005100448A (ja) | データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体 | |
US20240126709A1 (en) | Direct memory access controller | |
JP2007249560A (ja) | プログラマブルコントローラにおけるcpuモジュール | |
JP2006202172A (ja) | バスタイミング制御回路 | |
JP2009182438A (ja) | 再構成論理回路装置および回路切替制御方法 | |
JP2009049649A (ja) | 集積回路装置 | |
JP5445385B2 (ja) | データ処理装置 | |
JP2012174105A (ja) | メモリアクセス制御回路 | |
JP2004206241A (ja) | データ転送制御方法及びその回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120803 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131009 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131015 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140304 |