説明

トリプル・バッファリングを使用するデータを処理する方法

【課題】トリプル・バッファリングを使用する双方向データ交換を提供する。
【解決手段】本発明は、データを処理する方法に関する。処理されるデータブロックは、第1の時間間隔(t1、t2、t3、...)においてメモリエリア(A、B、C)に書き込まれる。前記データブロックは、第2の時間間隔(t2、t3、t4...)において同一のメモリエリア(A、B、C)で処理される。処理されたデータブロックは、第3の時間間隔(t3、t4、t5...)において前記同一のメモリエリア(A、B、C)から返される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トリプル・バッファリングを使用するデータを処理する方法に関し、具体的には、第2のデータ処理システムにおける第1のデータ処理システムからのデータを処理する方法に関する。
【背景技術】
【0002】
データ処理における公知の方式は、例えば、数学演算といった特定のデータ操作を実行する専用ハードウェアを使用可能な状態に保つことである。これは、中央処理装置(CPU)のロードを軽減するために使用される。異なるユニット間でデータを交換する必要があるという要求は、この接続において頻繁に発生する。データは一般的には、第1のシステムから第2のシステムへ転送され、そこで処理されて、次いで第2のシステムから第1のシステムへ転送されて再び戻される。システムの特殊な構成は、データを転送する方法を判定することができる。データは、例えば、ネットワーク又はダイレクトメモリアクセス(DMA)を用いて、転送することができる。
【0003】
可能な限り高速なデータ処理速度を達成できるようにするため、前に伝えられたデータが処理される間、データの転送は、バックグラウンドで行われるような方式で組織化される。このため、ターゲット・システムの第2のシステム内で2個のメモリエリアが、使用可能な状態を保たれる。2個のメモリエリアのうちの1個の中のデータが処理されている間、処理される次のデータがもう一方のメモリエリアに書き込まれる。
【0004】
これらのデータは、一方のメモリエリア内に含まれているデータが処理されるとすぐに、処理のために使用可能になる。データは常に、処理のために使用可能であるので、処理手段によって有効な利用を行うことができる。理論的には、データを待たなければならないために処理手段内で動作することができない中断は発生しない。これは、とりわけ、データ転送媒体が十分に広いバンド幅を有することを前提とする。そのような方法は、ダブル・バッフアリングという分野における当業者にとっては公知である。
【0005】
IBMの、セル・ブロードバンド・エンジンのプログラミング・チュートリアルのバージョン3.0は、ダブル・バッファリングの方法を示す。この方法は、第1のシステムからターゲット・システムへの一方向なデータの転送を表現する。既に処理されたデータを転送してターゲット・システムから第1のシステムへ戻すために、第2のダブル・バッファリングの方法を実装することが必要である。
【0006】
図1は、データの双方向転送を可能にする、ターゲット・システム1内でダブル・バッファリングの方法を実装するメモリエリアの配置を示す。この目的のために、同一サイズの4個のメモリエリアA、B、C、Dは、ターゲット・システム1内で使用可能な状態を保たれる。2個の第1のメモリエリアA、Bは、入力バッファを形成し、入力データストリームのためのダブル・バッファリングの方法を実装する。2個の第2のメモリエリアC、Dは、出力バッファを形成し、既に処理されたデータ、出力データストリームのためのダブル・バッファリングの方法を実装する。第1の時間間隔t1において、データは、入力バッファA、Bのうちの第1のメモリエリアAに受信される。このことは、時間間隔t1にわたってメモリエリアAの充填を表す楔状の形により象徴的に示される。時間間隔t1の初めに、このメモリエリアは空であり、時間間隔t1の最後の少し前に、このメモリエリアはデータにより充填される。入力バッファA、Bのうちの第2のメモリエリアBに以前に受信され既に存在しているデータは、データ処理のために時間間隔t1において第2のメモリエリアBで使用可能な状態を保たれる。これらのデータはターゲット・システム1により処理され、結果データはこの第1の時間間隔t1において出力バッファC、Dのうちの第2のメモリエリアDに格納される。第1の時間間隔t1の最後で、結果は出力バッファC、Dのうちの第2のメモリエリアDで使用可能な状態を保たれる。時間間隔t1においてデータ処理のために使用可能な状態を保たれるメモリエリアB及びDは各々、ハッチングを用いて図示される。時間間隔t1の間のメモリエリアCの空白(emptying)は同様に、楔状の形により象徴的に示される。時間間隔t1の初めに、このメモリエリアは、返されるデータにより充填され、時間間隔t1の最後の少し前に、メモリエリアCからのデータは返されている。メモリエリアの空白及び充填を示すイラストは、図表上で反転している。第2の時間間隔t2において、出力バッファC、Dのうちの第2のメモリエリアDからの処理されたデータは、ここでは示されない第1のデータシステムに返される。出力バッファC、Dのうちの第1のメモリエリアCは、現時点では、第2の時間間隔t2において処理されたデータを受信するために使用可能である。第2の時間間隔t2において、第1の時間間隔t1で第1のメモリエリアAに受信され、処理を待つデータは、入力バッファA、B内のこのメモリエリアA内で使用可能な状態に保たれる。第2の時間間隔t2において、入力データは、入力バッファA、Bのうちの第2のメモリエリアBに受信される。従って、この方法では、各時間間隔において、データを受信するためのメモリエリア及び処理されるデータを含むメモリエリアがそれぞれ、入力バッファA、B内で使用可能である。各時間間隔において、既に処理されたデータを返すためのメモリエリア及びデータを処理するためのメモリエリアがそれぞれ、入力バッファC、D内で使用可能である。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、そのような方法を改善することである。
【課題を解決するための手段】
【0008】
本発明は、以下のステップを実行するデータを処理するための方法を提供する。処理されるデータブロックは、第1の時間間隔においてメモリエリアに書き込まれる。このデータブロックは、第2の時間間隔において同一のメモリエリアで処理される。処理されるデータは、そこから読み出され、処理されたデータも同一のメモリエリアに書き込まれる。現時点で処理されているデータブロックが、第3の時間間隔において、同一のメモリエリアから転送される。このメモリエリアは次いで、次の時間間隔においてデータを受信するため再度使用可能である。このことは、データを受信、処理、及び転送するのに、同数のメモリエリアのみがそれぞれ必要とされるという利点を有する。対照的に、ダブル・バッファリングの方法の場合、データを受信及び転送するために設けられるメモリエリアの2倍のメモリエリアがデータを処理するために設けられる。データは、処理ステップの間、あるメモリエリアから別のメモリエリアへ移す必要はない。概して、ダブル・バッファリングの方法と比較すると、本発明による方法は、このために必要なメモリエリアの個数を同時に減少させる間、同一の処理手段の利用を可能にする。
【0009】
本発明は、メモリ内に、グループ化される3個のメモリエリアを提供して、メモリエリアのグループを形成する。このように、使用可能メモリは明確に構造化され、必要な場合に、データを処理する方法として使用される。
【0010】
データを処理する方法において、本発明は、本方法のために使用されるメモリエリアの1個又は複数個のグループを提供する。メモリエリアのグループ内の1個のメモリエリアはそれぞれ、各時間間隔においてデータを受信、処理、及び送信するために使用される。メモリエリアの1個又は複数個のグループが、データを転送及び処理するために使用される結果、本方法は柔軟性があり、使用可能メモリ及び必要メモリについて、それぞれのタスクに適合させることができる。本方法は汎用的である。メモリエリアの各グループ内で、1個のメモリエリアをそれぞれ使用して、データを受信、処理、及び転送することは、データを使用可能な状態に保つため各時間間隔においてメモリエリアのグループ内にそれぞれ1個のデータブロックしか提供されないので、必要とされるメモリエリアの個数が減少するという利点を有する。そのような構造にもかかわらず、双方向データ交換を可能にする。
【0011】
本発明による方法は、画像処理において有利に使用される。画像処理の間、特に高解像度ビデオ画像の実時間処理の間、大量のデータが送られる。このような使用は、処理手段の必要メモリ及び処理手段の計算能力への高い要求を課す。処理手段の待機時間の減少又は処理手段の必要メモリの減少は、このような使用において特に有利な効果を有する。
【0012】
データを処理する方法において、本発明は、既に前に処理されており、データブロックを処理するステップの間に使用される、データに無作為にアクセスする必要がないアルゴリズムを提供する。そのようなアルゴリズムを使用するので、出力データ及び結果のためにそれぞれのメモリエリアを使用可能な状態に保つ必要がない。即ち、メモリ内で、アルゴリズムで既に使用されているデータに、結果データを上書きすることができる。アルゴリズムが前に処理されている個々のデータへの確定的アクセス(deterministic access)を要求するとき(例えば、デジタル水平フィルタの場合)、これらの値をバッファリングすることができるので、オリジナルのデータは上書きされているのにもかかわらず依然としてアルゴリズムにとって使用可能である。
【0013】
第1のデータ処理システムからのデータを第2のデータ処理システム内で処理する方法において、本発明は、第1の時間間隔において第2のデータ処理システムのメモリエリアに書き込まれるデータを提供する。データは、第2の時間間隔において第2のデータ処理システムの同一メモリエリア内で処理される。データは、第3の時間間隔において、第2のデータ処理システムのこのメモリエリアから第1のデータ処理システムに返される。第1のデータ処理システムから生じるデータ及び第2のデータ処理システムに再度返された結果データを有する、第2のデータ処理システム内でデータを処理する本発明による方法の使用は、提示された方法の利点を使用して、第1のデータ処理システムと、第2のデータ処理システム内で低減した必要メモリを有する第2のデータ処理システムとの間の双方向データ通信を可能にする。
【0014】
データを処理する方法において、本発明は、第1のデータ処理システムのサブシステムである第2のデータ処理システムを提供する。データは、メインシステムとサブシステムの間で、頻繁に交換される。そのため、可能な限り低い必要メモリを有するサブシステムで作成することが、最大限に活用するためのこの場合における特定の要求である。
【0015】
データを処理する方法において、本発明は、CPUである第1のデータ処理システム及びコプロセッサである第2のデータ処理システムを提供する。IBMの、セル・ブロードバンド・エンジンのプログラミング・チュートリアルのバージョン3.0では、CPUはPPE(PowerPC processor element)に相当し、コプロセッサは、SPE(synergistic processor element)に相当する。
【0016】
本発明は、全て同一のCPUに割り当てられる複数個のコプロセッサ内で実装されるデータを処理する方法を提供する。
【0017】
更に、本発明は、本発明による方法を実行するためのメモリ(メモリ自体は公知である)の使用に関する。
【0018】
更に、本発明は、本発明による方法を実行する、又は本発明によるメモリを含むデータ処理システムに関する。
【発明の効果】
【0019】
本発明の効果はまた、例示的実施形態の以下の説明から集めることができる。明確に述べられたこれら以外の組合せ、及び本分野の当業者の実践の範囲内での変更も同様に、本発明の範囲内であることは言うまでもない。
【図面の簡単な説明】
【0020】
【図1】双方向データ交換の公知の方法及びサブシステム内の必要メモリを示す図である。
【図2】双方向データ交換の本発明による方法及びサブシステム内で低減された必要メモリを示す図である。
【図3】本発明による方法に従ったメモリのメモリエリアの割り当てを示す図である。
【発明を実施するための形態】
【0021】
図2は、ターゲット・システム2内でトリプル・バッファリングを用いた、第1のデータ処理システムとターゲット・システム2との間の双方向データ交換のための本発明による方法を実装するメモリエリアの配置を示す。この目的のために、3個のメモリエリアA、B、Cが、ターゲット・システム2内で使用可能な状態に保たれる。各々のメモリエリアA、B、Cの機能的使用は、各時間間隔t1、t2、・・・、t5、t6に対し変化する。その長さが一般的にはデータを処理するのに必要な期間に起因する各時間間隔に対し、それぞれの時間間隔t1、t2、・・・、t5、t6においてメモリエリアがどのように使用されるか、図示される。データは、第1の時間間隔t1において、第1のメモリエリアA内に受信される。これらのデータは、第2の時間間隔t2において、第1のメモリエリアA内で処理される。データは、第3の時間間隔t3において、第1のメモリエリアAから第1のデータ処理システムへ返される。メモリエリアB、Cを用いて実行されるタスクについて同一のローテーションが、他の2個のメモリエリアB、C内で発生する。このローテーションは1個の時間間隔のオフセットを伴って発生し、その結果、各時間間隔t1、t2、・・・、t5、t6において、データを受信、データを処理、及びデータを返すために、正確に1個のメモリエリアA、B、Cが使用可能な状態に保たれることになる。
【0022】
3個の個別のメモリエリアから成る複数個のグループが使用される場合、類似したやり方でローテーションが発生する。そして、同数のメモリエリアも常に、データを受信、データを処理、及びデータを転送するために、使用可能である。
【0023】
トリプル・バッファリングという用語はまた、グラフィックカードの製造分野における当業者にとっても公知である。これに関連して、3個のメモリの提供が意図される。この場合、1個のメモリは、ある時間間隔において、現在表示される画像を使用可能な状態に保ち、第2のメモリは、この時間間隔の次の時間間隔の間、この画像を使用可能な状態に保つ。第3のメモリは、この時間間隔の次の次の時間間隔の間、この画像を受信する。このことは、光ビームのリターンフェーズの間、表示される画像データを常に変化せることができるので、ジャダーなし画像を再生することができるようになる。本発明による方法とは対照的に、これは双方向の方法ではない。
【0024】
本発明によるトリプル・バッファリングの方法において、各メモリエリアは、それぞれ異なる時間間隔において3個のタスクを実行する。各メモリエリアは、データを送信、処理、及び転送するために使用される。従来技術から知られるような、ダブル・バッファリングの方法では、メモリエリアは2個のタスクを実行する。あるメモリエリアは、データを受信及びデータを処理するために使用される。他のメモリエリアは、データを処理及びデータを転送するために使用される。
【0025】
換言すると、本発明は、データを処理する方法に関する。処理されるデータブロックは、第1の時間間隔t1、t2、t3・・・において、メモリエリアA、B、Cに書き込まれる。データブロックは、第2の時間間隔t2、t3、t4・・・において、同一メモリエリアA、B、C内で処理される。処理されたデータブロックは、第3の時間間隔t3、t4、t5・・・において、同一メモリエリアA、B、Cから返される。
【0026】
図3は、ターゲット・システム2のメモリ3の細分を図示する。メモリ3のある部分31は、ターゲット・システム2と第1のデータ処理システムとの間の双方向データ転送のために使用され、メモリ3の別の部分30は、他のタスクのために使用される。双方向データ転送のために使用されるメモリエリア31は、メモリエリアA、B、Cのグループ32、33、34、・・・に細分される。各グループ32、33、34、・・・は、同じサイズであり、且つ本発明による方法を実行するために使用される、3個のメモリエリアA、B、Cを備える。この細分が、本発明による方法に従い複数の双方向データ転送動作を同時に実行することを可能にし、メモリエリアA、B、Cの1個または複数個のグループ32、33、34、・・・はそれぞれ、上述のデータ転送動作のために使用されている。メモリエリアA、B、Cの複数個のグループ32、33、34、・・・を、双方向データ動作のために結合することができる。この双方向データ転送動作のために、データを受信、データを処理、及びデータを返すのにそれぞれ使用可能なメモリの容量は、このデータ転送動作のために使用されるメモリエリアA、B、Cのグループ32、33、34、・・・の数に従い増加する。

【特許請求の範囲】
【請求項1】
データを処理する方法であって、処理されるデータブロックは、
第1の時間間隔(t1)においてメモリエリアに書き込まれ、
第2の時間間隔(t2)において同一のメモリエリアで処理され、処理されたデータブロックは、第3の時間間隔(t3)において前記同一のメモリエリアから転送されることを特徴とする方法。
【請求項2】
メモリ内の3個のメモリエリアが集められて、メモリエリアのグループを形成することを特徴とする請求項1に記載の方法。
【請求項3】
前記方法のためにメモリエリアの1個又は複数個のグループが使用され、
メモリエリアのグループ内の1個のメモリエリアをそれぞれ使用して、各時間間隔(t1、t2、...、t6)においてデータを受信、処理、及び転送することを特徴とする請求項2に記載の方法。
【請求項4】
前記方法は、画像処理のために使用されることを特徴とする請求項1乃至3の何れかに記載の方法。
【請求項5】
既に処理されたデータに無作為にアクセスしないアルゴリズムが、データブロックを処理するステップの間に実行されることを特徴とする請求項1乃至4の何れかに記載の方法。
【請求項6】
第1のデータ処理システムからのデータは、第2のデータ処理システムで処理され、
処理されるデータブロックは、
第1の時間間隔(t1)において前記第2のデータ処理システムのメモリエリアに書き込まれ、
第2の時間間隔(t2)において前記第2のデータ処理システムの同一のメモリエリアで処理され、
第3の時間間隔(t3)において前記第2のデータ処理システムのこのメモリエリアから前記第1のデータ処理システムへ返されることを特徴とする請求項1乃至5の何れかに記載の方法。
【請求項7】
前記第2のデータ処理システムは、前記第1のデータ処理システムのサブシステムであることを特徴とする請求項6に記載の方法。
【請求項8】
前記第1のデータ処理システムは、中央処理装置であり、前記第2のデータ処理システムは、コプロセッサであることを特徴とする請求項6又は7に記載の方法。
【請求項9】
前記第1のデータ処理システムは、パワーPCのプロセッサエレメントであり、前記第2のデータ処理システムは、協働プロセッサエレメントであることを特徴とする請求項6乃至8の何れかに記載の方法。
【請求項10】
請求項1乃至9の何れかに記載の方法を実行するために使用されることを特徴とするメモリ。
【請求項11】
請求項1乃至9の何れかに記載の方法を実行する、又は請求項10に記載のメモリを含むことを特徴とするデータ処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2010−118058(P2010−118058A)
【公開日】平成22年5月27日(2010.5.27)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−258090(P2009−258090)
【出願日】平成21年11月11日(2009.11.11)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing 
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】