JP2010039511A - パイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラム - Google Patents

パイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラム Download PDF

Info

Publication number
JP2010039511A
JP2010039511A JP2008198078A JP2008198078A JP2010039511A JP 2010039511 A JP2010039511 A JP 2010039511A JP 2008198078 A JP2008198078 A JP 2008198078A JP 2008198078 A JP2008198078 A JP 2008198078A JP 2010039511 A JP2010039511 A JP 2010039511A
Authority
JP
Japan
Prior art keywords
execution code
processing
processor element
path information
pipeline
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
Application number
JP2008198078A
Other languages
English (en)
Other versions
JP4599438B2 (ja
Inventor
Shiro Nakase
史郎 中瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008198078A priority Critical patent/JP4599438B2/ja
Publication of JP2010039511A publication Critical patent/JP2010039511A/ja
Application granted granted Critical
Publication of JP4599438B2 publication Critical patent/JP4599438B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減する。
【解決手段】パイプライン処理装置10では、スケジューラが、アプリケーションの初期化時に、複数のステージに分割されたアプリケーションプログラムの各実行コードを各プロセッサ要素PE1〜PE8のローカルメモリ21に個別に割り当てる。アプリケーションの実行中は、各プロセッサ要素PE1〜PE8が、対象データを実行コードにより処理する。各プロセッサ要素PE1〜PE8では、実行コードが対象データの単位データ量の処理を終了したことを検知すると、経路情報に従って他のプロセッサ要素に実行コードを転送する。
【選択図】 図1

Description

本発明は、マルチプロセッサを用いてパイプライン処理するパイプライン処理装置等に関し、特に、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し、且つアプリケーション開発の負荷を軽減し得るパイプライン処理装置等に関する。
従前より、例えば動画像を再生するときには、一定時間内に一定量のデータ処理がリアルタイム要求される場合がある。
リアルタイム要求を実現する方法としては、DSP(digital signal processor)などの専用のハードウェアを組み込んだ組み込みシステムが挙げられる。近年では、プロセッサ技術の進歩により、マルチプロセッサを用いてプログラム並列処理を行う組み込みシステムが増えている。
例えば、各々のプロセッサ要素(以下、PEとも表記する)が比較的小容量のローカルメモリを有し、実行コードと処理対象のデータ(以下、対象データともいう)とをローカルメモリに取り込んでから処理する構成のシステムがある。この構成のシステムでは、ローカルメモリに取り込まれるデータを処理している間は共有メモリなどの外部資源にアクセスする必要がない。そのため、他のプロセッサとの資源の競合が生じにくく、リアルタイム要求を実現するのに適している。
しかしながら、マルチプロセッサを使用する場合、どのようにスケジューリングするかが問題となる。すなわち、複数のプロセッサとプログラムとをどのような手順で割り当てればリアルタイム要求を満たせるのかが問題となる。この問題の解決策のひとつとして、ソフトウェアをパイプライン処理(以下、単にパイプライン処理という)する方法がある。
従来のパイプライン処理では、アプリケーションソフトウェアをあらかじめ複数のプログラムまたは機能モジュールなどのステージに分割する。そして、分割したステージのそれぞれを1つのPEに割り付ける(ロードする)。なお、多くの場合は、プログラムの分割数を使用可能なPE数に対応させる。
パイプライン処理するためのマルチプロセッサでは、対象データが入力されると、例えばローカルメモリの空き領域の大きさから決定される処理単位分のデータが最前段のPE1にロードされる。PE1での処理が終了すると、処理結果のデータが次の段のPE2に転送される。PE2で2段目の処理が開始されると同時に、最前段のPE1に新しいデータがロードされる。それから、最初のデータがパイプラインの最終段であるPE3に転送され、処理が定常状態になる。この後は、PE1〜PE3の全てにおいて、データが同時に処理されている状態になる。これにより、所望の要求性能が満たされるようになる。
パイプライン処理のメリットとしては、メモリやI/O等の外部資源にアクセスするPEが限定されるため資源競合が起こりにくく、処理時間を見積もり易いためリアルタイム設計がしやすいということが挙げられる。また、データの処理順序が逆転することがないため出力段の同期処理の必要がないことや、データが必ず逐次処理となるためあらかじめ分割できないデータでも問題なく処理できることが挙げられる。
特許第3889726号明細書
しかしながら、上述したパイプライン処理には次の課題がある。第1の課題は、パイプライン段数分のPE間でデータを転送しなければならない、ということである。データ転送はDMA(direct memory access)により行われることが多いが、転送すべきデータが大きい場合やパイプライン段数を多くしたい場合には、DMAのオーバヘッドがシステム全体に影響にすることがある。特に、転送用のバスを共有しているハードウェアであれば、バスの使用率が上昇してくると、バスが使用できるまでの待ちの時間を見積もるのが困難になる。結果として、リアルタイム性を実現できなくなることがある。
第2の課題は、処理の重い段が1つでもあると、その段がボトルネックとなり、システム全体としての要求性能を達成できない、ということである。例えば図17に示すように、単位データ当たり5msの要求性能が求められる前提において、ソフトウェア全体の処理性能が単位データ当たり14msかかるとする。そこで、アプリケーション設計者がプログラムを3ステージに分割し、各ステージをPE1〜PE3で実行するとする。ここでは、PE1〜PE3は、それぞれ単位データ当たり4ms,6ms,4msの処理時間を要するので、PE2において要求性能を満たしていないことになる。要するに、PE1,PE3が要求性能を満たしていてもPE2が要求性能を満たしていなければ、システム全体として要求性能を達成できないことになる。なお、PE数に余裕がある場合でも同様である。
そこで、アプリケーション設計者は、所望の要求性能を実現できるようにプログラムをさらに分割し、あまっているPEに割り付ける作業を行う。PE数に余裕がない場合は、アプリケーション設計者は、プログラムの分割を見直す作業を行う。
しかしながら、一般的には、プログラムを分割する作業は非常な労力を伴う。プログラムを分割する作業を行うとした場合、アプリケーション設計者は、プログラムの分割可能点を正確に把握しなければならない。また、分割した場合にボトルネックが生じないように、各ステージにおける処理性能を把握しなければならない。
また、原理的あるいは現実的に分割不可能な機能モジュールがボトルネックになってしまう。この問題は、性能を上げるために多段化しようとすればするほど現れやすくなる。
なお、このような問題はパイプライン処理の潜在的欠点と認識されている。これに対し、例えば、スケジューラがプログラムの実行時間と入出力関係とを認識し、処理内容がパイプライン状になるように周期的にスケジュールすることによって所望の時間を達成できる枠組みをアプリケーション設計者に提供する方法などもある(例えば特許文献1参照)。
本発明は、上記実情に鑑みてなされたものであり、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し得るパイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラムを提供することを目的とする。
本発明は上記課題を解決するために以下の手段を講じる。
第1の発明は、対象データをパイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを記憶する局所記憶手段と、経路情報を記憶する経路情報記憶手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置であって、前記アプリケーションの初期化時に、分割されたステージの各実行コードを前記各プロセッサ要素の局所記憶手段に個別に割り当てる手段と、前記各プロセッサ要素の使用順序を決定し、該使用順序に従った経路情報を前記各プロセッサ要素の経路情報記憶手段に書き込む経路情報書込手段とを備え、前記各プロセッサ要素は、前記対象データを前記実行コードにより処理するデータ処理手段と、前記実行コードが前記対象データの単位データ量の処理を終了したことを検知する検知手段と、前記実行コードが単位データ量の処理を終了したことが前記検知手段により検知された場合、前記経路情報に従って他のプロセッサ要素に前記実行コードを転送する実行コード転送手段とを備えたパイプライン処理装置である。
第1の発明は、アプリケーションの初期化時に、分割されたステージの各実行コードを前記各プロセッサ要素の局所記憶手段に個別に割り当てる手段と、各プロセッサ要素の使用順序を決定し、該使用順序に従った経路情報を各プロセッサ要素の経路情報記憶手段に書き込む経路情報書込手段とを備え、各プロセッサ要素において、実行コードにより単位データ量の処理を終了したことが検知された場合、経路情報に従って他のプロセッサ要素に実行コードを転送するので、対象データを転送するのに比してバスの使用率を抑えることができ、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し得るパイプライン処理装置を提供することができる。
第2の発明は、対象データをパイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを記憶する局所記憶手段と、経路情報を記憶する経路情報記憶手段と、前記各ステージに対応するステータス情報を記憶するステータス情報記憶手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置であって、前記アプリケーションの初期化時に、一のプロセッサ要素の局所記憶手段に、複数のステージに分割された該アプリケーションプログラムの最初のステージの実行コードを割り当てる手段を備え、前記各プロセッサ要素が、前記対象データを前記実行コードにより処理するデータ処理手段と、前記局所記憶手段に実行コードを書き込み可能であるときは、前記ステータス情報を空き状態と設定する手段と、前記データ処理手段による処理が終了した場合、他のプロセッサ要素に前記実行コードの転送要求を送出する手段と、他のプロセッサ要素から該実行コードの転送要求を受けたときに、前記ステータス情報が空き状態と設定されている場合、該他のプロセッサ要素に許可応答を送出する手段と、前記転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報を前記経路情報記憶手段に書き込む経路情報書込手段と、前記経路情報書込手段により書き込まれた経路情報に従って他のプロセッサ要素に前記実行コードを転送する手段とを備えたパイプライン処理装置である。
第2の発明は、各プロセッサ要素が、他のプロセッサ要素から実行コードの転送要求を受けたときに、ステータス情報が空き状態と設定されている場合、許可応答を送出するとともに、転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、許可応答元のプロセッサ要素を次の転送先とし、その経路情報に従って他のプロセッサ要素に実行コードを転送するので、対象データを転送するのに比してバスの使用率を抑えることができ、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し得るパイプライン処理装置を提供することができる。
本発明によれば、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し、且つアプリケーション開発の負担を軽減することができる。
以下、図面を参照して本発明の実施形態を説明する。なお、本発明において、「アプリケーション」は、プログラムのみならず、ミドルウェアやデバイスドライバなどを含むものとする。
<第1の実施形態>
図1は本発明の第1の実施形態に係るパイプライン処理装置10の構成を示す模式図である。このパイプライン処理装置10は、複数のプロセッサ要素PE1〜PE8、共有メモリ11、バス12、入出力ポート(I/O)13,14を備えている。なお、図1に示すプロセッサ要素の個数は例示であり、これに限るものではない。
共有メモリ11は、「スケジューラ」のプログラムを記憶する記憶装置である。スケジューラは、アプリケーションの初期化時に、そのアプリケーションのプログラムを複数のステージに分割し、分割した各ステージに対応する実行コードを各プロセッサ要素PE1〜PE8のローカルメモリ21に個別に割り当てる機能を有している。また、スケジューラは、各プロセッサ要素PE1〜PE8の使用順序を決定し、この使用順序に従った「経路情報」を各プロセッサ要素PE1〜PE8のパイプライン制御プログラムに設定する機能を有している。
なお、ここではスケジューラが共有メモリ11に記憶されるとしているが、これに限らず、プロセッサ要素のローカルメモリ21に記憶される構成であってもよい。
各プロセッサ要素PE1〜PE8は、図2に示すように、ローカルメモリ21、演算ユニット22、DMAC(direct memory access controller)23を有している。
ローカルメモリ21は、各プロセッサ要素PE1〜PE8に個別に設けられた記憶装置であり、対象データをパイプライン処理するための「実行コード」と、「対象データ」とを記憶する。また、ローカルメモリ21は、「パイプライン制御プログラム」も記憶している。パイプライン制御プログラムは、経路情報や、ステージの実行コードが格納されるステージバッファの状態を示す「ステータス情報」を管理情報として保持しており、これらの情報に基づいて各プロセッサ要素PE1〜PE8を制御する。パイプライン制御プログラムの詳細については後述する。
なお、ローカルメモリ21は、図3に示すように、各ステージの実行コードを格納するステージバッファ(stage buffer)をステージバッファA及びステージバッファBとして2重化している。これにより、DMAC23が実行コードの転送中に(図3(A))、次のステージの処理を実行できる(図3(B))。この結果、DMAの処理時間に要するタイムラグをなくすことが可能となる。従来のデータパイプライン方式でもよく用いられる構成である。
演算ユニット22は、対象データを実行コードにより処理するものである。演算ユニット22にパイプライン制御プログラムが組み込まれることにより各種機能が発揮される。具体的には、演算ユニット22は、実行コードが対象データの単位データ量の処理を終了したことを検知する検知機能を有する。また、演算ユニット22は、検知機能により実行コードが単位データ量の処理を終了したことを検知した場合、DMAC23にDMA起動をかける機能を有する。
DMAC23は、演算ユニット22からDMA起動がかかると、ローカルメモリ21に記憶された経路情報に従って他のプロセッサ要素に実行コードを転送する。
図4は本実施形態に係るパイプライン制御プログラムの機能構成を示した模式図である。パイプライン制御プログラムは、管理情報とパイプライン制御プログラム実行コードとを保持する。
管理情報は、パイプライン制御プログラムがプロセッサ要素PEの制御を行う上で必要な情報である。管理情報として、例えば、経路情報や、データバッファ状態を示す情報、ステージバッファ状態を示す情報(ステータス情報含む)が保持される。なお、管理情報はキャッシュメモリなどに記憶される。
経路情報は、パイプラインがどのようにつながっているかを示すデータであり、例えば図4に示す「転送先のPE番号」が該当する。なお、本実施形態においては、経路情報はアプリケーションの初期化時にスケジューラにより固定値が与えられるものとする。ただし、これに限るものではなく、アプリケーション実行中に動的に変更されるとしてもよい。
他の管理情報は、アプリケーション実行時に動的に変更されるものであり、現在の実行状態を保持するものである。例えば、データバッファの状態を示す情報としては、最終ステージ番号、入力データを保持するバッファのアドレス、出力データを保持するバッファのアドレス、有効データサイズがある。また、ステージバッファの状態を示す情報としては、ステータス情報、ステージ番号がある。
ステージバッファは、ローカルメモリ21における各ステージの実行コードを保持する記憶領域のことであり、各ステージを識別するためのステージ番号やステージバッファの状態を示すステータス情報により管理される。ステージバッファは、図5に示すように、“空き状態(IDLE)”,“準備状態(STANDBY)”,“実行状態(ACTIVE)”,“転送状態(TRANSFER)”の順に状態遷移する。ここでは、ステータス情報の設定を変えることにより、ステージバッファを状態遷移させて、パイプラインの逐次処理を実現する。
なお、“ACTIVE”は、「現在この実行コードを実行している」状態であるので、1個のPE内でACTIVEであるステージバッファは高々1つである。“STANDBY”は、実行コードはすでに存在するが、まだそれを実行するときではない状態である。現在ACTIVE状態のステージの処理が終了すると、STANDBY状態のステージがACTIVE状態となる。
また、パイプライン制御プログラム実行コードが演算ユニット22に組み込まれると、演算ユニット22が次のように機能する。まず、演算ユニット22は、そのPEが保持する実行コードの処理が全体の処理のうち最初のステージか否かを認識する。そして、演算ユニット22に、最初のステージの実行コードが処理すべきデータが到着すると、その実行コードを実行する。演算ユニット22は、単位データ量の処理が終了すると、DMA起動をかける。また、演算ユニット22は、実行した実行コードを消去する。実行コードのDMA転送がされると、次ステージの実行コードが到着する(あるいは到着している)ので、演算ユニット22は、次ステージの実行コードを実行する。次ステージの実行が完了したら、経路情報に従って実行コードを転送し、今実行した実行コードを消去する。これを繰り返すと、最終ステージの処理とその実行コードの転送とが終了したときに、最初のステージの処理が到着していることになる。
なお、ローカルメモリの容量に余裕がある場合、全てのPEのローカルメモリに全ての段の実行コードを収容できる場合がある。このような場合は、実行コードの実体の転送を省略することができる。パイプライン制御プログラムは前段に対して、次ステージの実行コードの準備ができたこと(次ステージの実行コードの実行許可)を通知するだけでよい。そのため、PE間のデータ転送をほとんど無くす、または全く無し(割り込みだけなど)にすることができる。また、処理単位ごとに実行コードを消去する必要もなくなる。 図6はパイプライン処理装置10における初期化処理を説明するための図である。パイプライン処理装置10における初期化処理は、例えばアプリケーションの開始時などにスケジューラにより実行される。ただし、この初期化処理を行う主体は、共有メモリ11に記憶されたスケジューラに限るものではなく、各パイプライン制御プログラム内に設けた別個の初期化プログラムが実行するとしてもよい。なお、以下の説明において、パイプライン処理するためのアプリケーションプログラムは、ステージ1〜ステージ3に分割されるものとする。
始めに、アプリケーションの開始時などにおいて、スケジューラに初期化命令が送出される。これに応じて、スケジューラは、各PEの経路情報を設定し、対応する経路情報を各PEに送出する(S1)。ここでは、PE3,PE2,PE1の転送先としてそれぞれPE2,PE1,PE3が設定される。
続いて、スケジューラは、全PEの有効データバッファサイズを0にセットする(S2)。それから、スケジューラは、全PEの2重化した2番目のステージバッファBのステータス状態を“IDLE”にセットする(S3)。
次に、スケジューラは、全PEの最終ステージ番号と、1番目のステージバッファAのステージ番号をセットする(S4)。ここでは、PE3,PE2,PE1のそれぞれに対して、最終ステージ番号及びステージバッファAのステージ番号を(3,1),(1,2),(2,3)と設定する。
続いて、スケジューラは、各PEの1番目のステージバッファAに対応するステージの実行コードをロードする(S5)。ここでは、PE3,PE2,PE1に対してそれぞれステージ1,ステージ2,ステージ3をロードする。
次に、スケジューラは、全PEのステージバッファAのステータス状態を“STANDBY”にセットする(S6)。そして、スケジューラは、全PEに「STANDBY通知」を送出する(S7)。
以上の手順で初期化処理が行われると、パイプライン処理装置10においてパイプライン処理を実行できるようになる。
パイプライン処理装置10の初期化後は、各PEにおいて、STANDBY通知の受取処理、ステージの終了処理、DMA完了通知の受取処理、が随時実行される。
図7はSTANDBY通知の受取処理の手順を示す図である。各PEは、「STANDBY通知」を受け取ると、あるステージバッファxのステータス情報を“IDLE”から“STANDBY”に変更する(T1)。STANDBY通知時に2重化した一方のステージバッファが“ACTIVE”であれば、その処理が継続される(T2−Yes)。
一方、ACTIVE状態のステージバッファがなければ、ステージ番号と最終ステージ番号とから次のステージバッファを検索する(T2−No,T3)。
ステージバッファを検索した場合、該当するステージバッファのステータス情報を“STANDBY”から“ACTIVE”に変更する(T4)。ステータス情報をACTIVEに変更するときには、パイプライン制御プログラムが、バッファの最初と最後のアドレス及びバッファの大きさを、該当するステージの実行コードに渡す処理を行う(T5)。これにより、該当するステージの実行コードの処理が開始される。
図8はステージの終了処理の手順を示す図である。各PEでは、実行コード完了通知が送出されると、処理したステージバッファxのステータス情報を“ACTIVE”から“TRANSFER”に変更する(U1)。
ステップU1の処理をしたPEは、入力データバッファのアドレスと出力データバッファのアドレスとを入れ替える(U2)。そして、実行コード完了通知に含まれる出力サイズを有効データサイズにする(U3)。また、最終ステージ番号を更新する(U4)。
それから、PEは、転送先PEから“空き状態(IDLE)”のステージバッファ(stage buff)を検索する(U5)。空き状態のステージバッファが検索された場合、PEでは、転送先PEへ実行コードのDMA転送を開始する(U6−Yes,U7)。また、PEは、DMA転送を開始したときに、後述するSTANDBY通知を他のプロセッサ要素から既に受けている場合、ステージ番号と最終ステージ番号とから次ステージのステージバッファを検索する(U8−Yes,U9)。
そして、PEは、次ステージのステージバッファが検索された場合、該当するステージバッファのステータス情報を“STANDBY”から“ACTIVE”に変更する(U10)。
この後、PEは、該当するステージの実行コードの処理を開始する(U11)。具体的には、データバッファの最初と最後のアドレス及びバッファの大きさを実行コードに引き渡すことにより処理を実行する。
図9はDMA完了処理の手順を示す図である。各PEでは、実行コードのDMA転送が完了した場合、転送先PEに「STANDBY通知」を送信する(V1)。STANDBY通知を送信したPEは、ステージバッファのステータス情報を“TRANSFER”から“IDLE”に変更する。これにより実行コードが無効化される(V2)。
従来のパイプライン処理の方式では、図10(A)に示すように、実行コードが各プロセッサ要素に固定され、対象データが紙面の左から右へ順次転送される。これに対し、本実施形態の方式では、図10(B)に示すように、対象データが各プロセッサ要素に固定され、実行コードが紙面の右から左へと逆方向に順次転送される。
つまり、ステージに着目すると、例えばステージ1の実行コードが入力データをローカルメモリ21のデータバッファにロードする機能を有する場合、ステージ1の実行コードは対象データをロードし終えたら次のプロセッサ要素PE3に移って次の対象データをロードすることになる。そして、ステージの実行コードはプロセッサ要素P2,P1,P3・・・を順次移り、上述の処理を繰り返すようになる。
また、データに着目すると、まず、処理単位の対象データが最初のステージ1によってデータバッファにロードされ、対象データは最終ステージ3が終了して出力I/Oなどに渡される。この間、対象データは同一のプロセッサ要素に存在し続けていることになる。
また、プロセッサ要素(PE)に着目すると、次の動作が行われていることになる。すなわち、対象データのひとつの処理単位に対して順々に実行コードが到着し、データが処理されていく。データの処理が一巡すると、また最初のステージ1の実行コードと対象データとがデータバッファにロードされる。そして、これを繰り返す動作が行われる。
上述した構成により、本実施形態に係るパイプライン処理装置10では、次の処理が行われることになる。すなわち、スケジューラが、アプリケーションの初期化時に、複数のステージに分割されたアプリケーションプログラムの各実行コードを各プロセッサ要素PE1〜PE8のローカルメモリ21に個別に割り当てる。そして、スケジューラが、各プロセッサ要素PE1〜PE8の使用順序を決定し、この使用順序に従った経路情報を各プロセッサ要素PE1〜PE8のローカルメモリ21に書き込む。そして、アプリケーションの実行中は、各プロセッサ要素PE1〜PE8が、対象データを実行コードにより処理する。各プロセッサ要素PE1〜PE8では、実行コードが対象データの単位データ量の処理を終了したことを検知すると、経路情報に従って他のプロセッサ要素に実行コードを転送する。
それゆえ、本実施形態に係るパイプライン処理装置10では、対象データを他のプロセッサ要素に転送するのではなく実行コードを転送するので、リアルタイム処理に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減することができる。
すなわち、データの総量に比べて実行コードの総量が少ない場合、PE間の転送の総量がその差分だけ小さく済むので、転送オーバヘッドとバス競合を削減することができる。また結果として、データの処理時間も見積もりやすくなるので、アプリケーション設計者に複雑詳細なプログラム分割をする手間を省くことが可能となる。
なお、可変長符合の処理などにより生じる小さなデータ片が残る場合はデータ片も実行コードとともに前段のPEに転送する構成としてもよい。
また、本実施形態に係るパイプライン処理装置10において、最前段のデータの入力と最終段のデータの出力とはアプリケーションが行う実装でもよいし、パイプライン制御プログラムが行う実装でも良い。本発明の本質に関係するものではない。
<第2の実施形態>
図11は本発明の第2の実施形態に係るパイプライン処理装置10Sの構成を示す模式図である。なお、既に説明した部分と同一部分には同一符号を付し、特に説明がない限りは重複した説明を省略する。本実施形態に係るパイプライン処理装置10Sでは、スケジューラが経路情報を決定するのではなく、各プロセッサ要素が自ら決定する。
各プロセッサ要素PE1〜PE8の演算ユニット22Sは、パイプライン制御プログラムが組み込まれることにより、図12に示すように、データ処理部31、ステータス情報設定部32、転送要求部33、許可応答部34、経路情報書込部35、実行コード転送制御部36を有する。
データ処理部31は、各プロセッサ要素において、対象データを実行コードにより処理するものである。ステータス情報設定部32は、ローカルメモリ21Sに記憶されたステージバッファのステータス情報を随時更新するものであり、データ処理部31が対象データを処理していないときは、ステータス情報を“空き状態(IDLE)”と設定する。
転送要求部33は、各プロセッサ要素PE1〜PE8において、データ処理部31による処理が終了した場合、他のプロセッサ要素に実行コードの転送要求を送出するものである。許可応答部34は、他のプロセッサ要素から該実行コードの転送要求を受けたときに、ステータス情報が“空き状態(IDLE)”と設定されている場合、該他のプロセッサ要素に許可応答を送出するものである。経路情報書込部35は、転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報をローカルメモリ21Sに書き込むものである。
実行コード転送制御部36は、DMAC23にDMA起動をかけるものである。具体的には、実行コード転送制御部36は、データ処理部31において実行コードの処理が完了した場合、実行コード完了通知をDMAC23に送出することによりDMAを起動させる。ここでは、実行コード転送制御部36は、経路情報書込部35により書き込まれた経路情報に従って他のプロセッサ要素に実行コードをDMA転送させる。
次に本実施形態に係るパイプライン処理装置10Sの動作を説明する。始めに、対象データを処理するアプリケーションが実行されると、その初期化が行われ、スケジューラなどにより、アプリケーションプログラムが複数のステージに分割される。そして、一のプロセッサ要素PE1のローカルメモリに最初のステージの実行コードが割り当てられる。なお、各プロセッサ要素PE1〜PE8は、対象データを処理していないときは、ステータス情報設定部42により、ステータス情報が“IDLE”に設定される。
続いて、プロセッサ要素PE1では、実行コードによる処理が終了すると、他のプロセッサ要素PE2にその実行コードの転送要求を送出する。転送要求を受けたプロセッサ要素PE2は、ステータス情報が空き状態と設定されている場合、転送要求元のプロセッサ要素PE1に許可応答を送出する。
プロセッサ要素PE1は、転送要求に応じて他のプロセッサ要素PE2から許可応答を受けた場合、許可応答元のプロセッサ要素PE2を次の転送先とする経路情報を設定する。そして、プロセッサ要素PE1は、設定された経路情報に従って他のプロセッサ要素PE2に実行コードを転送する。
以上説明したように、本実施形態に係るパイプライン処理装置10Sは、各プロセッサ要素が、転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報をローカルメモリ21Sに書き込み、その経路情報に従って他のプロセッサ要素に実行コードを転送するので、対象データを転送するのに比してバスの使用率を抑えることができ、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減することができる。
<第3の実施形態>
本発明の第3の実施形態に係るパイプライン処理装置10Tは、第2の実施形態に係るパイプライン処理装置10Sの変形例であり、実行コードを複製することでパイプライン段数を動的に決定するものである。
本実施形態に係るローカルメモリ21Tは、各ステージの状態をサブステージに区分けし、これらのサブステージが先頭状態か継続状態かを示す「サブステータス情報」をサブステージ番号とともに記憶している。つまり、後述する実行コード複製部40により実行コードが複製されると、ACTIVE状態は、複製された実行コードの先頭であることを示す先頭状態か、先頭ではないことを示す継続状態かの2つの状態に区別されることになる。そして、サブステータス情報がこれらの2つの状態に対応して設定される。
本実施形態に係る演算ユニット22Tは、図13に示すように、実行コード複製部40をさらに備えている。本実施形態に係る演算ユニット22Tは、第2の実施形態に係るデータ処理部31、転送要求部33、実行コード転送制御部36に代えて、データ処理部41、転送要求部43、実行コード転送制御部46を備えている。
実行コード複製部40は、実行コードによる処理が予め設定された要求時間を超える場合、実行コードの複製を生成する。要求時間に近づいたことの検知は、「タイマ割込」などで実装される。また、実行コード複製部40は、実行コードが複製された場合、複製元の実行コード及び複製により得られた実行コードに対応する各ステージのサブステータス情報をサブステージ番号と関連付けて設定する。
データ処理部41は、第2の実施形態に係るデータ処理部31の機能に加え、サブステータス情報が設定されたときのステージの状態から対象データの処理を再開する。転送要求部43は、第2の実施形態に係る転送要求部33の機能に加え、実行コード複製部40により実行コードが複製された場合、他のプロセッサ要素に複製された実行コードの転送要求を送出する。
具体的には、転送要求部43は、実行コードによる処理が予め設定された要求時間を超えることをタイマ割込により検知する。転送要求部43は、タイマ割込が生じると、サブステータス情報が先頭状態であるか否かを判定する。転送要求部43は、サブステータス情報が先頭状態である場合、転送先PEが経路情報として設定されているか否かを判定する。転送先PEが設定されていない場合、空き状態のプロセッサ要素(空きPE)を検索し、検索したプロセッサ要素に転送要求を送出する。
一方、転送要求部43は、タイマ割込の通知時にサブステータス情報が継続状態である場合、既に転送先PEが経路情報として設定されているはずなので、空きPEの検索は行わない。また、転送先PEには、複製した実行コードが既に存在するはずなので、実行コードの転送は行わない。この場合、プロセッサ要素のコンテキストを移動する必要がないので、バス使用率の上昇を回避することができる。
実行コード転送制御部46は、第2の実施形態に係る実行コード転送制御部36の機能に加え、サブステータス情報に基づいて、複製された実行コードを他のプロセッサ要素にDMA転送させる。実行コード転送制御部46は、継続状態の実行コードに対しては、各プロセッサ要素でコンテキストを移動する必要がない。このような場合、実行コード転送制御部46は、サブステージ番号のみを通知するようにする。これにより、同一の実行コードを複数回転送することによる処理時間の増加を回避できる。また、実行コード転送制御部46は、最後のサブステージにおいて対象データの処理が終了した場合、実行コードを削除する機能を有する。なお、ローカルメモリ21Tが全てのステージの実行コードを収容できるほどの記憶領域を有している場合は、実行コードを転送する必要がないので、サブステータス番号のみが通知されることになる。
次に、本実施形態に係るパイプライン処理装置10Tの動作を図14を用いて説明する。前提として、対象データをパイプライン処理するためのアプリケーションプログラムはステージ1〜3の3ステージに分割され、それぞれプロセッサ要素PE1〜PE3に割り付けられるものとする(図14(A))。
かかる前提のもと、要求時間が経過してタイマ割込が生じたときにプロセッサ要素PE2の処理が終了していない場合、プロセッサ要素PE2における実行コード複製部40により実行コードが複製される。実行コードが複製されると、プロセッサ要素PE2の実行コード転送制御部46により、複製された実行コードのDMA起動がかけられる。これにより、プロセッサ要素PE1にも同一の実行コードが記憶されることになる(図14(B))。要するに、実行コードを複製して同一の実行コードを持つPEが1つ増加することになる。なお、実行コードが複製された場合、実行コード複製部40により、サブステータス情報がサブステージ番号とともに設定される。ここでは、プロセッサ要素PE1の実行コードには先頭状態が設定され、プロセッサ要素PE2の実行コードには継続状態が設定される。
そして、このような動作が、最初のデータ単位の処理が全て終了する時点(パイプライン処理が一巡する時点)まで繰り返されると(図14(C),(D))、パイプライン段数が決まり、経路情報が決定された状態になる。図14の例では5段に決定された状態となっている。
この後は、各プロセッサ要素に対象データがロードされ、実行コードが順次実行される。この状態では、全てのプロセッサ要素において、各ステージ及びサブステージが要求時間内に終了するので、所望の要求性能を達成することができる。
図15はタイマ割込が生じたときの処理の手順を示す図である。各PEでは、要求時間が経過してタイマ割込が生じたときに、サブステータス情報が先頭状態である場合、転送先PEには現在のステージの情報がないので、実行コードを転送する(W1−Yes)。実行コードの転送に際しては、経路情報が設定されているか否かを検索し、経路情報が設定されていなければ、空きPEを検索して転送先PEとして設定する(W2〜W4)。
各PEは、転送先PEに実行コードを転送する際には、まず、転送先PEから空き状態のステージバッファを検索する(W5)。各PEは、空き状態のステージバッファが検索された場合、転送先PEへ実行コードのDMA転送を開始する(W6−Yes,W7)。そして、各PEは、DMA転送を終了すると、サブステータス情報を先頭状態から継続状態に変更する(W8)。
一方、ステップW1において、サブステータス情報が継続状態である場合、転送先PEに複製した実行コードがあるので、各PEは実行コードを転送しない(W1−No)。
なお、実行コード完了通知を受けたときに、サブステータス情報が継続状態である場合は、タイマ割込と同じ理由でDMAの実行が省略される。ステータス情報が“IDLE”に変更されるだけである。
図16はDMA完了処理の手順を示す図である。各PEでは、実行コードのDMA転送が完了した場合、転送先PEに「STANDBY通知」を送信する(X1)。ここで、STANDBY通知を送信したPEに複製された実行コードが存在しない場合、既に処理が終了しており、ステータス情報は“TRANSFER”となっている。そこで、ステータス情報を“TRANSFER”から“IDLE”に変更する(X2−Yes,X3)。
一方、STANDBY通知を送信したPEが、タイマ割込によってDMAを起動していた場合、ステータス情報の変更はしない(X2−No)。DMAがタイマ割込によって起動された場合、実行コードによる処理が終了しておらず、ステータス情報は“ACTIVE”のまま維持する。
以上説明したように、本実施形態に係るパイプライン処理装置10Tでは、各プロセッサ要素が、ステージの状態を区分けするためのサブステータス情報を記憶しており、実行コードによる処理が予め設定された要求時間を超える場合、実行コードの処理を停止するとともに複製し、実行コードが複製された場合、先頭状態か継続状態かを示すサブステータス情報を設定し、複製された実行コードを転送した後、このサブステータス情報に基づいて対象データの処理を再開するので、各プロセッサ要素における処理を要求時間内に終了させることができ、所望の要求性能を満たすことができる。
例えば、第2に実施形態に係るパイプライン処理装置10Sでは、ステージ1,2,3の処理にそれぞれ4ms,12ms,4msを要するとすると、単位データ量当り5msの要求性能が求められたときには、ステージ2がボトルネックとなって要求性能を満たすことができない。これに対し、本実施形態係るパイプライン処理装置10Tであれば、ステージ2の処理を3つのプロセッサ要素で処理させることにより、5ms以内の処理を実現することができる。
また、本実施形態に係るパイプライン処理装置10Tでは、アプリケーションの設計者は各ステージの処理時間を正確に把握する必要がなくなるので、アプリケーションの設計者の負荷を軽減することができる。具体的には、アプリケーションの設計者は、例えばデータロード、暗号解読、圧縮解凍、データ出力などの機能単位に分割するだけの作業で済むようになる。また、アプリケーション設計者は、実行コードを細分化させる必要もなくなる。
なお、本実施形態に係るパイプライン処理装置10Tは、動作概念としては前記の通りサブステージを順繰りに送っていくパイプライン処理であるが、継続状態の実行コードは移動する必要がなく、複製した実行コードでの処理が非常に簡素になる。
1個のPEに着目した場合、要求時間の到来によって概念上のサブステージが変更されても、実行コードの内容自体は変更していない。また処理対象のデータはローカルメモリ21Tに記憶されたまま転送されていない。したがって、ローカルメモリ21T上では、実行コードもデータも同じままであるため、実行コードをあらゆるタイミングで一時停止したり、再開したりすることができる。さらに、データの中途半端なところを処理中でも、一時変数などに重要な情報を保持しているタイミングでも一時停止したり、再開したりすることができる。
要するに、割り込みがかかって戻っていくだけなので、実行コードがそれを認識する必要がなく、非常に精度の高いタイミングでパイプライン動作を行うことができる。
また、本実施形態に係るパイプライン処理装置10Tは、サブステージ変更のための一時停止と再開とが同一PE上で行われるため、アプリケーション処理のどのタイミングでも転送可能である。アプリケーションに対しては、例えば一時タイマ割り込みがかかって、そこから復帰しただけのように認識させることができるので、処理対象のデータ、実行コードともどこを実行中でもサブステージの変更が可能である。したがって、実際に1個のステージまたはサブステージの処理が行われる時間はアプリケーションの中身によらず非常に高い精度(例えばタイマ割り込みの精度)で実現できる。
<他の変形例>
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
本発明の第1の実施形態に係るパイプライン処理装置10の構成を示す模式図である。 同実施形態に係る各プロセッサ要素の構成を示す模式図である。 同実施形態に係るローカルメモリの概念を示す模式図である。 同実施形態に係るパイプライン制御プログラムの機能構成を示した模式図である。 同実施形態に係るステージバッファの状態遷移を示す模式図である。 同実施形態に係るパイプライン処理装置10における初期化処理を説明するための図である。 同実施形態に係るSTANDBY通知の受取処理の手順を示す図である。 同実施形態に係るステージの終了処理の手順を示す図である。 同実施形態に係るDMA完了処理の手順を示す図である。 従来のパイプライン処理との差異を説明するための図である。 本発明の第2の実施形態に係るパイプライン処理装置10Sの構成を示す模式図である。 同実施形態に係る各プロセッサ要素の構成を示す模式図である。 本発明の第3の実施形態に係る各プロセッサ要素の構成を示す模式図である。 同実施形態に係るパイプライン処理装置10Tの動作を説明するための模式図である。 同実施形態に係るタイマ割込が生じたときの処理の手順を示す図である。 同実施形態に係るDMA完了処理の手順を示す図である。 一般的なパイプライン処理を説明するための模式図である。
符号の説明
10・・・パイプライン処理装置、11・・・共有メモリ、12・・・バス、13,14・・・入出力ポート、21・・・ローカルメモリ、22・・・演算ユニット、23・・・DMAC、31・・・データ処理部、32・・・ステータス情報設定部、33・・・転送要求部、34・・・許可応答部、35・・・経路情報書込部、36・・・実行コード転送制御部、40・・・実行コード複製部、41・・・データ処理部、43・・・転送要求部、46・・・実行コード転送制御部、PE1〜PE8・・・プロセッサ要素。

Claims (6)

  1. 対象データをパイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを記憶する局所記憶手段と、経路情報を記憶する経路情報記憶手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置であって、
    アプリケーションの初期化時に、分割されたステージの各実行コードを前記各プロセッサ要素の局所記憶手段に個別に割り当てる手段と、
    前記各プロセッサ要素の使用順序を決定し、該使用順序に従った経路情報を前記各プロセッサ要素の経路情報記憶手段に書き込む経路情報書込手段と、
    を備え、
    前記各プロセッサ要素は、
    前記対象データを前記実行コードにより処理するデータ処理手段と、
    前記実行コードが前記対象データの単位データ量の処理を終了したことを検知する検知手段と、
    前記実行コードが単位データ量の処理を終了したことが前記検知手段により検知された場合、前記経路情報に従って他のプロセッサ要素に前記実行コードを転送する実行コード転送手段と
    を備えたことを特徴とするパイプライン処理装置。
  2. 対象データをパイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを記憶する局所記憶手段と、経路情報を記憶する経路情報記憶手段と、前記各ステージに対応するステータス情報を記憶するステータス情報記憶手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置であって、
    アプリケーションの初期化時に、一のプロセッサ要素の局所記憶手段に、複数のステージに分割された該アプリケーションプログラムの最初のステージの実行コードを割り当てる手段を備え、
    前記各プロセッサ要素は、
    前記対象データを前記実行コードにより処理するデータ処理手段と、
    前記局所記憶手段に実行コードを書き込み可能であるときは、前記ステータス情報を空き状態と設定する手段と、
    前記データ処理手段による処理が終了した場合、他のプロセッサ要素に前記実行コードの転送要求を送出する手段と、
    他のプロセッサ要素から該実行コードの転送要求を受けたときに、前記ステータス情報が空き状態と設定されている場合、該他のプロセッサ要素に許可応答を送出する手段と、
    前記転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報を前記経路情報記憶手段に書き込む経路情報書込手段と、
    前記経路情報書込手段により書き込まれた経路情報に従って他のプロセッサ要素に前記実行コードを転送する手段と
    を備えたことを特徴とするパイプライン処理装置。
  3. 対象データをパイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを記憶する局所記憶手段と、経路情報を記憶する経路情報記憶手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置に用いられるパイプライン処理方法であって、
    アプリケーションの初期化時に、分割されたステージの各実行コードを前記各プロセッサ要素の局所記憶手段に個別に割り当てる工程と、
    前記各プロセッサ要素の使用順序を決定し、該使用順序に従った経路情報を前記各プロセッサ要素の経路情報記憶手段に書き込む経路情報書込工程と、
    前記各プロセッサ要素において、前記対象データを前記実行コードにより処理するデータ処理工程と、
    前記実行コードが前記対象データの単位データ量の処理を終了したことを検知する検知工程と、
    前記実行コードが単位データ量の処理を終了したことが前記検知工程により検知された場合、前記経路情報に従って他のプロセッサ要素に前記実行コードを転送する実行コード転送工程と
    を具備したことを特徴とするパイプライン処理方法。
  4. 対象データをパイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを記憶する局所記憶手段と、経路情報を記憶する経路情報記憶手段と、前記各ステージに対応するステータス情報を記憶するステータス情報記憶手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置に用いられるパイプライン処理方法であって、
    アプリケーションの初期化時に、該プログラムを複数のステージの実行コードに分割し、一のプロセッサ要素の局所記憶手段に最初のステージの実行コードを割り当てる工程と、
    前記各プロセッサ要素において、対象データを前記実行コードにより処理するデータ処理工程と、
    前記局所記憶手段に実行コードを書き込み可能であるときは、前記ステータス情報を空き状態と設定する工程と、
    前記各プロセッサ要素において、前記データ処理工程による処理が終了した場合、他のプロセッサ要素に前記実行コードの転送要求を送出する工程と、
    前記転送要求を受けた他のプロセッサ要素において、ステータス情報が空き状態と設定されている場合、転送要求元のプロセッサ要素に許可応答を送出する手段と、
    前記転送要求に応じて許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報を前記経路情報記憶手段に書き込む経路情報書込工程と、
    前記経路情報書込工程により書き込まれた経路情報に従って他のプロセッサ要素に前記実行コードを転送する工程と
    を具備したことを特徴とするパイプライン処理方法。
  5. 個別に記憶手段を備えており、対象データをパイプライン処理するため複数のプロセッサ要素に用いられるパイプライン制御プログラムであって、
    前記各プロセッサ要素を、
    前記パイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを前記記憶手段に書き込む手段、
    アプリケーションの初期化時に、予め設定された各プロセッサ要素の使用順序に従った経路情報を前記各プロセッサ要素の記憶手段に書き込む手段、
    前記対象データを前記実行コードにより処理するデータ処理手段、
    前記実行コードが前記対象データの単位データ量の処理を終了したことを検知する検知手段、
    前記実行コードが単位データ量の処理を終了したことが前記検知手段により検知された場合、前記経路情報に従って他のプロセッサ要素に前記実行コードを転送する実行コード転送手段、
    として実現させるプログラム。
  6. 個別に記憶手段を備えており、対象データをパイプライン処理するための複数のプロセッサ要素に用いられるパイプライン制御プログラムであって、
    前記各プロセッサ要素を、
    前記パイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを前記記憶手段に書き込む手段、
    前記対象データを前記実行コードにより処理するデータ処理手段、
    前記記憶手段に実行コードを書き込み可能であるときは、前記ステータス情報を空き状態と設定する手段、
    前記データ処理手段による処理が終了した場合、他のプロセッサ要素に前記実行コードの転送要求を送出する手段、
    他のプロセッサ要素から該実行コードの転送要求を受けたときに、前記ステータス情報が空き状態と設定されている場合、該他のプロセッサ要素に許可応答を送出する手段、
    前記転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報を前記記憶手段に書き込む手段、
    前記記憶手段に書き込まれた経路情報に従って他のプロセッサ要素に前記実行コードを転送する手段
    として実現させるパイプライン制御プログラム。
JP2008198078A 2008-07-31 2008-07-31 パイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラム Expired - Fee Related JP4599438B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008198078A JP4599438B2 (ja) 2008-07-31 2008-07-31 パイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008198078A JP4599438B2 (ja) 2008-07-31 2008-07-31 パイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラム

Publications (2)

Publication Number Publication Date
JP2010039511A true JP2010039511A (ja) 2010-02-18
JP4599438B2 JP4599438B2 (ja) 2010-12-15

Family

ID=42012037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008198078A Expired - Fee Related JP4599438B2 (ja) 2008-07-31 2008-07-31 パイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラム

Country Status (1)

Country Link
JP (1) JP4599438B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844678A (ja) * 1994-07-29 1996-02-16 Canon Inc 画像処理装置及びシステム
JPH08263306A (ja) * 1995-03-10 1996-10-11 Xerox Corp パイプラインデータ処理用データ処理システムとパイプラインデータ処理方法
JP2004062686A (ja) * 2002-07-30 2004-02-26 Dainippon Printing Co Ltd 並列処理システム、サーバ、並列処理方法、プログラム、及び、記録媒体
JP2006221638A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc タスク変更アプリケーションプログラミングインタフェースを提供する方法及び装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844678A (ja) * 1994-07-29 1996-02-16 Canon Inc 画像処理装置及びシステム
JPH08263306A (ja) * 1995-03-10 1996-10-11 Xerox Corp パイプラインデータ処理用データ処理システムとパイプラインデータ処理方法
JP2004062686A (ja) * 2002-07-30 2004-02-26 Dainippon Printing Co Ltd 並列処理システム、サーバ、並列処理方法、プログラム、及び、記録媒体
JP2006221638A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc タスク変更アプリケーションプログラミングインタフェースを提供する方法及び装置

Also Published As

Publication number Publication date
JP4599438B2 (ja) 2010-12-15

Similar Documents

Publication Publication Date Title
US9928109B2 (en) Method and system for processing nested stream events
JP3139392B2 (ja) 並列処理システム
US7630388B2 (en) Software defined FIFO memory for storing a set of data from a stream of source data
KR101366075B1 (ko) 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치
US10002031B2 (en) Low overhead thread synchronization using hardware-accelerated bounded circular queues
US20160019067A1 (en) Mechanism for instruction set based thread execution on a plurality of instruction sequencers
TWI426452B (zh) Work processing device
US20120147021A1 (en) Graphics compute process scheduling
US20120229481A1 (en) Accessibility of graphics processing compute resources
US20120188258A1 (en) Graphics processing dispatch from user mode
KR101901587B1 (ko) 연성 실시간 운영체제의 실시간성을 확보하는 방법 및 장치
JP2012104140A (ja) 待機状態にあるプロセッサ実行リソースの共有
US20100131720A1 (en) Management of ownership control and data movement in shared-memory systems
US20140068625A1 (en) Data processing systems
WO2007020740A1 (ja) バッファ管理方法およびバッファ管理装置
US20190236017A1 (en) Method and system for efficient communication and command system for deferred operation
KR20040017822A (ko) 데이터 전송 방법, 시스템 및 컴퓨터 판독가능 매체
JP2000047887A (ja) 投機的マルチスレッド処理方法および投機的マルチスレッド処理装置
US20140082624A1 (en) Execution control method and multi-processor system
US20140189711A1 (en) Cooperative thread array granularity context switch during trap handling
US9779044B2 (en) Access extent monitoring for data transfer reduction
JP4599438B2 (ja) パイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラム
US9329893B2 (en) Method for resuming an APD wavefront in which a subset of elements have faulted
US11860785B2 (en) Method and system for efficient communication and command system for deferred operation
KR102170966B1 (ko) 고성능 비순차 실행 코어의 리오더 버퍼 관리 장치 및 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100726

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: 20100831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100927

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: 20131001

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees