JP2003167726A - コプロセッサ装置およびデータ転送を容易にするための方法 - Google Patents

コプロセッサ装置およびデータ転送を容易にするための方法

Info

Publication number
JP2003167726A
JP2003167726A JP2001357206A JP2001357206A JP2003167726A JP 2003167726 A JP2003167726 A JP 2003167726A JP 2001357206 A JP2001357206 A JP 2001357206A JP 2001357206 A JP2001357206 A JP 2001357206A JP 2003167726 A JP2003167726 A JP 2003167726A
Authority
JP
Japan
Prior art keywords
data
data transfer
block
template
templates
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
JP2001357206A
Other languages
English (en)
Other versions
JP2003167726A5 (ja
JP4384828B2 (ja
Inventor
Sun Weiyun
ウェイユン・スン
Donglok Kim
ドンロク・キム
Kim Yonmin
ヨンミン・キム
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.)
University of Washington
Original Assignee
University of Washington
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 University of Washington filed Critical University of Washington
Priority to JP2001357206A priority Critical patent/JP4384828B2/ja
Publication of JP2003167726A publication Critical patent/JP2003167726A/ja
Publication of JP2003167726A5 publication Critical patent/JP2003167726A5/ja
Application granted granted Critical
Publication of JP4384828B2 publication Critical patent/JP4384828B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 メディアプロセッサ12からのブロックデー
タ転送動作をオフロードするために、テンプレートデー
タ転送コプロセッサ(TDTP)14を実現する。 【解決手段】 ユニブロックテンプレート36、プログ
ラム誘導テンプレート66、間接テンプレート80およ
びキューに基づくテンプレート102が説明される。T
DTPは、テンプレートインタプリタ110を含み、該
テンプレートインタプリタ110は、事象駆動制御機構
を用いてテンプレートを設定し、ブロック情報およびテ
ンプレートごとのブロック情報を計算する。ビデオおよ
び画像処理アルゴリズムに対するブロックデータ転送を
規定することにかかわるプログラミングは、これらのテ
ンプレートを用いることによって実質的に減じられる。

Description

【発明の詳細な説明】
【0001】
【発明の背景】この発明は、オンチップ並列性を実現す
るプロセッサのためのデータフロー管理に関し、より特
定的には、データ転送を管理し、オンチップ並列性を示
す効率のよい性能のプロセッサを可能にするためのコプ
ロセッサに関する。
【0002】ここで用いられる「メディアプロセッサ」
は、ビデオまたは画像データを処理するためのオンチッ
プ並列性を示すプロセッサを指す。効率のよいデータフ
ロー管理は、メディアプロセッサにおいて高性能を達成
するために必須である。しかしながら、現在のメディア
プロセッサはアプリケーションプログラマに対して低レ
ベルのデータ転送インターフェイスしか提供せず、これ
はデータフロープログラミングを困難にするだけでな
く、ソースコードを長くし維持を難しくする。
【0003】現在のメディアプロセッサは典型的には、
広いデータ経路でサブGHzクロック周波数で動作す
る。これは、メモリに対する高いデータアクセス率を要
求する。しかしながら、オフチップメモリへのアクセス
は長いレイテンシに関わり、結果として全体的なメモリ
帯域幅を制限する。したがって、これらの頻繁に用いら
れるデータをキャッシュし、かつ外部メモリアクセスペ
ナルティを減じるために高速オンチップメモリが用いら
れる。さらに、実効アクセスレイテンシを減じるため
の、すなわちCPUが実際にデータを用いる前にデータ
をオンチップメモリ上で利用可能にするためのさまざま
なデータプリフェッチ技術が開発されている。
【0004】負担の大きい、大量の生データに関わる画
像およびビデオアプリケーションがメディアプロセッサ
の主なターゲットである。典型的な画像およびビデオ処
理アルゴリズムは、規則的なデータアクセスパターンを
有する。こうして、プログラムはまもなく使われるデー
タのブロックを前もってフェッチできる。しかしなが
ら、そのような負荷を実現するために従来のメディアプ
ロセッサによって要求されるプログラミングは非常に制
限されている。ほとんどのメディアプロセッサは、プロ
グラマが処理タスクを区分して、ブロック転送を行なう
ために区分の各々に対して用いられるデータブロックの
サイズおよびアドレスを決定することを要求する。画像
とビデオフレームとは異なったサイズを有し得るので、
プログラマは不規則な区分および付加的な制御フローを
用いてコードを一般化しなければならず、プログラムが
長くなる。さらに、いくつかのアルゴリズムにおいて
は、パッディングのようなさらなるタスクが行なわれる
ことが必要となる。これらは付加されたプログラム命令
によって行なわれるので、データ処理タスクの効率性を
減じる。ブロックに基づくデータフロープログラミング
が用いられる多くのアルゴリズムにおいて、バルクデー
タに加えて境界のピクセルを明確にフェッチすることが
必要である。プログラムにおけるそのような不規則なデ
ータフローを取扱うことは、プログラマの全体的な生産
性を減じ、かつソースコードをアップグレードおよび維
持することをも困難にする。さらに、計算とデータフロ
ーとの間の同時実行の程度が減じられる。したがって、
ブロックデータ転送を行なう、より効率的で汎用性の高
い態様に対する必要性が存在する。
【0005】広いデータ経路を備えたメディアプロセッ
サに対する特別な懸念は、多倍精度(multiple small p
recision)オペランドを異なった記憶場所からワイドワ
ード(wide word)へのパッキングのオーバーヘッドで
ある。これは従来、メディアプロセッサにおいて命令を
明示的に実行することにより行なわれるので、貴重なC
PUサイクルが消費され、かつ全体的な性能が減じられ
る。したがって、多数のオペランドをパッキングするた
めの、より効率的な態様に対する必要性が存在する。
【0006】
【発明の概要】この発明によると、メディアプロセッサ
からのオフロードブロックデータ転送動作に対してテン
プレートデータ転送コプロセッサが実現される。テンプ
レートデータ転送コプロセッサは、さまざまなタイプの
ブロックデータ転送動作を指定するための汎用性の高い
プロトコルを提供する。
【0007】この発明の一局面によると、さまざまなタ
イプのデータ転送テンプレートが導入される:ユニブロ
ック(uniblock)テンプレート、プログラム誘導(prog
ram-guided)テンプレート、間接(indirect)テンプレ
ート、およびキューに基づく(queue-based)テンプレ
ートである。これらのテンプレートは、メディアプロセ
ッサにおけるさまざまなタイプのデータ転送フローを容
易にする。この発明の利点によると、ブロック転送ごと
に低レベルデータ転送パラメータを計算しかつ設定する
のではなく、パラメータ化されたテンプレートがプログ
ラマに特定のアルゴリズムに対して必要なデータフロー
を容易に設計できる効率的で汎用性の高い機構を提供す
る。たとえば、2D畳み込みおよびアフィンワーピング
(affinewarping)においては、データフロープログラ
ミングに関するソースコードラインの数が実質的に減じ
られる(たとえば、テンプレートなしで要求されるデー
タ転送を達成する場合に要求される数の約6分の1とな
る)。
【0008】この発明の別の局面によると、ユニブロッ
クおよびプログラム誘導テンプレートは、メディアプロ
セッサのオンチップメモリとオフチップメモリとの間で
ブロックに基づくデータ転送において用いられる。その
ようなテンプレートの利点によると、オンチップメモリ
における入力および出力データブロックはダブルバッフ
ァリングされることが可能であり、それによりメディア
プロセッサ機能ユニットは高速計算のためにオンチップ
メモリにおけるデータにアクセスするだけでよい一方
で、遅い外部メモリとの間のデータ転送は機能ユニット
から隠される。ブロックごとに、アドレスおよびサイズ
はテンプレートデータ転送コプロセッサによってテンプ
レートから計算される。したがって、データフロープロ
グラミングは簡略化され、CPUの計算負荷は減じられ
る。
【0009】ユニブロックテンプレートは、オーバーラ
ップすることができるソースメモリ空間からのブロック
を指定する。したがって、境界のブロックはパッディン
グされるか、またはラップアラウンドされて、境界に沿
った必要なオーバーラップ領域を準備する。
【0010】パッディングおよびラッピングは実際のデ
ータ転送の間に行なわれる。したがって、メディアプロ
セッサ計算はさらに減じられ、かつこれらの不規則なデ
ータコピー動作はテンプレートデータ転送コプロセッサ
によって自動的に扱われるという事実により、プログラ
マの負担は軽くなる。
【0011】この発明の別の局面によると、間接データ
フローテンプレートは、プロセッサの計算エンジンに顕
著な負荷を生成することなく、ランダムな場所からデー
タをアセンブルするための効率的な方法を可能にする。
【0012】この発明の別の局面によると、キューに基
づくデータフローテンプレートは、仮想キューと物理キ
ューとの間のデータ転送を容易にする。仮想キューは、
循環的にアクセスされるメモリ空間であってもよく、任
意のサイズを有する。物理キューはデータをバッファ
し、かつ計算エンジンに対してオペランドストリームを
提供する。テンプレートデータ転送コプロセッサは、2
Dメモリ空間からオペランドバッファへのデータをスト
リーム化するか、またはデスティネーションオペランド
バッファにストアされるメディアプロセッサ結果を2D
メモリ空間にディスパッチする。そのようなテンプレー
トの利点によると、キューに基づくデータフローは多く
のロード/ストア命令をなくし、レジスタファイルサイ
ズに対する圧力を緩和する。さらに、長いレイテンシロ
ード/ストア命令がなくなってコードスケジューリング
はより簡略化され、高性能のために要求されるループア
ンローリングの量は減じられ、よりコンパクトなコード
をもたらす。
【0013】この発明の別の局面によると、テンプレー
トデータ転送コプロセッサは2Dアドレス生成ユニット
(AGU)を含み、これは割込なしでアドレスのシーケ
ンスが生成されることを可能にする組込み論理ユニット
を有する。これらのアドレスが2Dブロックに対応し、
これは最も小さなデータ転送ユニットとしての役割を果
たす。この態様で、テンプレートデータ転送コプロセッ
サ内のセントラルコントローラは、アドレス生成事象の
各々に関与する必要がなく、よってたとえば、次の転送
ブロックの位置の突き止めや、データフローのアービト
レーションなどの他のテンプレート計算のためのさらな
る時間をもたらす。
【0014】この発明の別の局面によると、テンプレー
トデータ転送コプロセッサはテンプレートインタプリタ
を含み、これはコプロセッサのメインコントローラとし
ての役割を果たす。一実施例においては、インタプリタ
はテンプレートをセットアップし、テンプレートごとに
ブロック情報を計算するための事象駆動制御機構を用い
る。インタプリタの利点によると、テンプレートのタイ
プごとの計算はモジュラ化される。したがって、新しい
テンプレートタイプを簡単に追加することができる。
【0015】この発明のこれらおよび他の局面と利点と
は、添付の図面と併せて以下の詳細な説明を参照するこ
とにより、よりよく理解されるであろう。
【0016】
【特定の実施例の説明】概要 図1を参照すると、画像またはビデオデータを処理する
ためのホストシステム10は、1つ以上のバス構造22
によって相互接続される、メディアプロセッサ12、テ
ンプレートデータコプロセッサ14、メインメモリ1
6、不揮発性メモリ18、およびユーザインターフェイ
ス20を含む。ユーザインターフェイス20はディスプ
レイ装置24、キーボード26およびポイント/クリッ
ク装置28を含む。
【0017】図2を参照すると、一実施例においてメデ
ィアプロセッサ12は、日本国東京の株式会社日立製作
所およびカリフォルニア州キャンベルのイクエータ・テ
クノロジー(Equator Technologies)によって製造され
るメディア加速プロセッサ(Media Accelerated Proces
sor)1000(MAP1000)によって形成され
る。MAP1000は、直接メモリアクセス(DMA)
コントローラ29、オンチップメモリ(データキャッシ
ュ30および命令キャッシュ32)およびクラスタ34
と呼ばれる並列実行ユニットを含む。クラスタ34の各
々は、整数演算および論理ユニット(IALU)36
と、整数浮動小数点グラフィック演算および論理ユニッ
ト(IFGALU)38とを含む。また、クラスタ34
の各々はいくつかの汎用レジスタ(たとえば32ビット
レジスタ)、いくつかの1ビットプレディケートレジス
タおよび多数の特別レジスタ(たとえば、128ビット
レジスタ)を含む。
【0018】他のさまざまなメディアプロセッサ実施例
もまた実現される。特に、ここで用いられる「メディア
プロセッサ」は、ビデオまたは画像データを処理するた
めのオンチップ並列性を示すプロセッサを指す。マイク
ロプロセッサおよびデジタル信号プロセッサは、命令レ
ベル並列性と呼ばれる技術によってオンチップ並列性を
用いる。命令レベル並列性は、多数の動作が単一のクロ
ックサイクルで開始されるものである。命令レベル並列
性への2つの方策は:超長命令語(VLIW)アーキテ
クチャおよびスーパースカラアーキテクチャである。V
LIWアーキテクチャにおいては、プロセッサは多数の
独立処理ユニットを含む。長い命令の各々は機能ユニッ
トの各々に対するオペレーションコードを含む。すべて
の機能ユニットは、実質的に同じ時点でそれらのオペレ
ーションコードを受取る。機能ユニットはそれらの割当
てられたタスクを同時に実行する。スーパースカラアー
キテクチャは特別なオンチップハードウェアを用いて、
命令ストリームを調べ、並列性を最大化するために同時
に実行し得る独立した動作を見出す。
【0019】命令レベル並列性は、サブワード並列性を
用いていくつかのシステムにおいてさらに展開される
が、ここでは実行ユニットは多数のより小さなユニット
に区分される。たとえば、主に64ビット論理演算装置
(ALU)によって実現されるプロセスは、ALUを論
理的に4つの小さな16ビットALUに分割する。特定
的には、ALUへのデータ入力は4つの小さなサブワー
ドの連結である。ALU出力は4つのサブワードでの結
果の連結である。そのようなサブワード並列性は、「単
一命令多重データ」(SIMD)命令と呼ばれるものを
与えることによりアーキテクチャに組入れられる。メデ
ィアプロセッサ12のSIMD実現化の例は:サン・マ
イクロシステムズ(Sun Microsystems)のビジュアル命
令セット、インテル(Intel)のマルチメディア拡張機
構、ヒューレット・パッカード(Hewlett-Packard)のm
ultimedia acceleration extensions-s、デジタル・イ
クイップメント・コーポレーション(Digital Equipmen
t Corporation)のマルチメディア拡張機構、シリコン
・グラフィックス(Silicon Graphics, Inc.)のデジタ
ルメディア拡張機構である。これらの拡張機構における
命令は、データワード(たとえば32ビットまたは64
ビット)を1組の多数のサブワード(8、16または3
2)として処理する。サブワードの各々で区分された動
作を実行することができ、最小限の付加的なハードウェ
アで2倍、4倍または8倍の性能向上が得られる。
【0020】テンプレートデータ転送コプロセッサ(T
DTP)14は、メディアプロセッサの処理ユニット
(たとえばクラスタ34)、メディアプロセッサのオン
チップメモリキャッシュ30、32および外部メモリ
(たとえばシステムキャッシュ16および不揮発性メモ
リ18)の間のさまざまなデータフローパターンを扱う
役割を果たす。テンプレートを用いることにより、最小
限のプログラミングが実現されてこのデータフロー制御
を達成する。
【0021】テンプレート テンプレートは、(i)パラメータ化されたデータ構
造、または(ii)規定されたパラメータの組を備えたパ
ラメータ化されたデータ構造、のいずれかである。メデ
ィアプロセッサにおいて異なったタイプのデータフロー
を扱うためにさまざまなテンプレートが用いられる。こ
こでは、ユニブロックテンプレート、プログラム誘導テ
ンプレート、間接テンプレートおよびキューに基づくテ
ンプレートを含む4つのテンプレートを説明する。これ
らのテンプレートタイプの各々は、同様のデータフロー
の群に対して用いられる。ユニブロックテンプレート
は、2つの記憶場所領域の間のブロックごとのデータ転
送を説明する。すべてのデータブロックパラメータ、た
とえばアドレスおよびサイズは、テンプレートから導出
される。プログラム誘導テンプレートもまたブロックに
基づくデータ転送を規定するが、データブロックパラメ
ータはプログラムによって明示的に与えられる。ユニブ
ロックテンプレートおよびプログラム誘導テンプレート
は主に画像/ビデオ処理に対して望ましいフローパター
ンであるダブルバッファリングデータフローを実現する
ために用いられる。間接テンプレートにより、離散的デ
ータ要素を(隣接するデータをインデクシングすること
により)連結するメモリ空間へマッピングすることが可
能になる。間接テンプレートは効率的にメディアプロセ
ッサの作業負荷を減じる。キューに基づくテンプレート
は、メディアプロセッサに対するメモリ空間とバッファ
されたオペランドの小さな物理ストリームキューとの間
のデータ転送を指定する。一実施例においてはテンプレ
ートの各々における第1の項目はテンプレートのタイプ
を識別するためのコードである。各々のテンプレートタ
イプのより詳細な説明を以下に述べる。
【0022】ユニブロックテンプレート ほとんどの画像およびビデオアルゴリズムは、単一のデ
ータフレームまたは多数のデータフレームで計算を実行
する。多くのアルゴリズムは連続的なデータが独立して
計算できるデータレベルの並列性さえも実現する。たと
えば、処理は区分され、各々の区分が制限されたオンチ
ップメモリ空間に整合する画像データのブロックに動作
し得る。そのような処理に対するデータ転送を容易にす
るために、ユニブロックテンプレートが導入される。ユ
ニブロックテンプレートは、予め定められた転送ブロッ
ク次元およびサイズでオンチップメモリ空間とオフチッ
プメモリ空間との間のデータ転送を説明するために用い
られる。
【0023】図3を参照すると、ユニブロックテンプレ
ートは、ソースブロックパラメータ38とデスティネー
ションブロックパラメータ40とを用いてソースブロッ
クとデスティネーションブロックとを規定する。ソース
ブロックパラメータ38は、ベースアドレス、幅、高
さ、ピッチおよびソースアクセスモードを含む。同様
に、デスティネーションブロックパラメータ40は、ベ
ースアドレス、幅、高さ、ピッチおよびデスティネーシ
ョンアクセスモードを含む。次元フラグ42(すなわ
ち、1D/2Dフラグと標識付けされる)は、データ転
送の次元を決定する。典型的には、2次元(2D)ブロ
ックはブロック幅44およびブロック高さ46パラメー
タで規定される。フラグ42が1次元(1D)を示す場
合、ブロック幅44のみが有効である。2次元データ転
送に関しては、オーバーラップモードパラメータ48が
用いられ、これはソースメモリ空間における隣接するブ
ロックがオーバーラップするか否かを指定する。オーバ
ーラップが設定される場合、パッディングモードパラメ
ータ50またはラッピングモードパラメータ52のいず
れかが有効であり、オーバーラップする境界で必要であ
るデータを処理するためにパッディングまたはラッピン
グのいずれかが用いられることを示す。さらに、パッデ
ィングモードおよびラッピングモードの各々に対して、
水平オーバーラップパラメータ54値および垂直オーバ
ーラップパラメータ56値が設定される。オーバーラッ
プする部分で、ソースブロックおよび隣接するデータの
ウィンドウからピクセル値が導出される。
【0024】そのようなパッディングおよびラッピング
指定は、あるアルゴリズムをより効率的に実現するため
に望ましい。たとえば、2D畳み込みを含むアルゴリズ
ムにおいては、境界上のデータブロックがパッディング
される必要がある。ウェーブレット変換を含むアルゴリ
ズムにおいては、データブロックはラップアラウンドさ
れる必要がある。ブロックに基づくデータフロープログ
ラミングが用いられる多くのアルゴリズムにおいて、バ
ルクデータに加えて境界のピクセルを明示的にフェッチ
することが必要である。プログラム内でそのような不規
則なデータフローを扱うことは、プログラマの全体的な
生産性を減じ、かつソースコードをアップグレードし維
持することを難しくする傾向がある。さらに、計算とデ
ータフローとの間の同時性の度合が減じられる。ユニブ
ロックテンプレートは、そのような機能を指定するため
の効率的なプログラミングインターフェイスを提供す
る。
【0025】図4を参照すると、パッディングが実施さ
れるべき9つのブロック58のソースデータが示され
る。ピクセルを計算するのに隣接するピクセルが用いら
れる場合、示される対称的な隣接ウィンドウが境界で用
いられる。図4は、ブロック64に対する水平オーバー
ラップ60および垂直オーバーラップ62を示す。対称
的な隣接ウィンドウに対しては、パッディングは同様で
ある。
【0026】図5を参照すると、ラッピングモードが用
いられる場合、オーバーラップは対称的ではない。そう
ではなく、これは単方向性である。パッディングモード
は、ゼロパッディングと境界拡張との間を選択可能であ
る一方、ラッピングモードはさらに垂直(上または下)
および水平(左または右)ラッピングを指定できる。図
5は、ブロック64′に対する水平オーバーラップ6
0′および垂直オーバーラップ62′を示す。
【0027】ソースおよびデスティネーションアクセス
モードを用いることにより、付加的な柔軟性が得られ
る。アクセスモードは、アクセスされたデータがオンチ
ップに向けられているか、またはオフチップメモリに対
して向けられているかを判断する。これはオンチップメ
モリにおけるオフチップデータのダブルバッファリング
において主要な問題である。また、アクセスモードはソ
ースまたはデスティネーションメモリ空間における次の
データブロックがどのようにアドレスされるかを決定す
る。図6(A)を参照すると、アクセスモードは次のブ
ロックが2Dメモリ空間において行ごとにまたは列ごと
にアクセスされるかを決定する。図6(B)を参照する
と、メモリ空間境界に到達すると、アクセスモードは次
に逆方向のブロックがアクセスされるべきかまたはメモ
リ空間は循環的にアクセスされるべきかを判断する。
【0028】ユニブロックテンプレート36は、ソース
ブロックとデスティネーションブロックとが同じサイズ
であることを必要としない。たとえば、テンプレート3
6が入力データフローを規定する場合、ソースメモリ空
間はソース画像に対応する一方、デスティネーションメ
モリ空間は入力データをダブルバッファするオンチップ
メモリ領域に対応する。データ転送は、大きい方のソー
スメモリ空間におけるすべてのデータが転送されたとき
に終了する。小さい方のオンチップメモリ空間は逆方向
のまたは循環的なアクセスモードのいずれかによって、
図6(B)に示されるように再利用される。
【0029】テンプレートデータ転送コプロセッサ14
は、ブロック転送ごとにデータブロックアドレスを計算
し、ソースまたはデスティネーションメモリ空間に整合
するようブロックサイズを調整する。したがって、画像
境界におけるブロックは異なった幅および/または高さ
値を、テンプレートに指定されるものからは異なって有
し得る。ランタイムブロック情報、たとえばアドレス、
幅、および高さは、プログラムにパスされる。こうし
て、プログラムは単にデータフローテンプレートを初期
化し、ブロック転送を同期させ、ブロックをオンチップ
に処理するだけでよい。
【0030】プログラム誘導テンプレートいくつかのア
ルゴリズムは不規則なブロックアクセスを要求し、すな
わちデータブロックの各々のアドレスおよびサイズがプ
ログラムから計算されなければならない。図7に示すプ
ログラム誘導テンプレート66は、そのようなプログラ
ムによって導かれるデータ転送を容易にするために用い
られる。プログラム誘導テンプレート66は記述アドレ
スパラメータ68、ソースフィールド69およびデステ
ィネーションフィールド73を含む。ソースフィールド
69は、ソースアドレスパラメータ70およびソースピ
ッチパラメータ72を含む。デスティネーションフィー
ルドは、デスティネーションアドレスパラメータ74お
よびデスティネーションピッチパラメータ76を含む。
【0031】記述アドレスパラメータ68は、転送され
るべきブロックの各々のソースアドレスオフセット、デ
スティネーションアドレスオフセット、およびサイズ情
報を含むブロック記述テーブル78をポイントするアド
レスをストアする。ソースフィールド69およびデステ
ィネーションフィールド73は、それぞれソースブロッ
クおよびデスティネーションブロックを開始するための
ベースアドレスおよびピッチ値をストアする。異なった
ベースアドレスを用いることにより、同じブロック記述
テーブルは異なったプログラムによって再利用されるこ
とができる。
【0032】ブロックを転送する場合、テンプレートデ
ータ転送コプロセッサ14はブロック記述テーブル78
からブロック情報をフェッチし、ソースおよびデスティ
ネーションブロックアドレスを計算し、データ転送を開
始する。ブロック記述テーブルにおいて規定されるブロ
ックは、記述テーブルが到達されるまでシーケンシャル
に転送される。
【0033】プログラム誘導テンプレートはまた、外部
メモリ16、18とオンチップメモリ30、32との間
での計算の実行と同時のデータ転送のために用いられ、
こうしてプロセッサ計算サイクルからメモリレイテンシ
サイクルを隠す。特に、プログラム誘導データフロー
は、ランダムに配置される任意の大きさのデータブロッ
クのシーケンスを転送することを可能にする。したがっ
て、これはプログラムがデータフローを規定すること
に、より柔軟性を与える。関連するオーバーヘッドは、
テンプレートデータ転送コプロセッサ14が、ブロック
転送ごとにブロック記述にアクセスすることである。
【0034】間接データフローテンプレート 図8を参照すると、間接データフローテンプレート80
によって容易になるデータ転送は、3つのメモリ空間、
すなわちインデックスデータ領域82、ソースデータ領
域84、およびデスティネーションデータ領域86に関
わる。インデックスデータはソースデータアドレスを計
算するために用いられる。したがって、ソースデータ領
域84へのアクセスは極めてランダムになり得る。イン
デックスデータ領域82およびデスティネーションデー
タ領域86へのアクセスは、シーケンシャルであること
が期待される。間接データフローテンプレート80はイ
ンデックスフィールド88(たとえばインデックスアド
レス90およびインデックス幅92)、ソースデータア
ドレスパラメータ94およびデスティネーションデータ
アドレスパラメータ96を含む。これはまた、データ幅
98およびデータカウント100を指定する。インデッ
クス幅パラメータ92は、さまざまな形式のデータ、た
とえば8、16または32ビットのデータをインデック
スとして用いることを可能にする。テンプレートデータ
転送コプロセッサ14は、インデックスデータ82をシ
ーケンシャルな順序に参照し、現在アクセスされている
インデックスデータ値を対応のソースアドレスパラメー
タ値94に加え、結果として生じるアドレスをソースデ
ータ領域84へのアクセスに用いる。アクセスされたソ
ースデータはデスティネーション領域86にシーケンシ
ャルに書込まれる。転送されるデータ項目の数および項
目の各々のデータ幅は、カウントパラメータ100およ
び幅パラメータ98によって決定される。この態様で、
ランダム記憶場所からのデータはパックされることがで
きる。間接データフローは、たとえばジオメトリ変換お
よびグレースケールマッピングなどの、ルックアップテ
ーブルが用いられるアルゴリズムに望ましい。
【0035】間接データ転送は、データフローを通して
パックまたはアンパックし、かつプロセッサのアドレス
計算を緩和するために用いられるので、TDTP14を
用いて達成されるそのような転送速度は、好ましくはメ
ディアプロセッサクラスタ34によって行なわれるもの
に匹敵する。しかしながら、デスティネーションデータ
要素の移動を終了させるためには3つのメモリアクセ
ス、すなわち1つはインデックス領域82からの読出、
1つはソース領域84からの読出、および1つはデステ
ィネーション領域86への書込、が必要となるが、これ
はオフチップメモリアクセスに関わる場合に遅くなる。
このような潜在的なボトルネックを避けるために、間接
データフローはいくつかの実施例においては、上のセク
ションにおいて説明されたブロックに基づくデータフロ
ーを通してプリフェッチすることができるオンチップデ
ータを扱うためにのみ限定される。
【0036】キューに基づくデータフロー ストリームキューは、計算エンジンに対して一定のオペ
ランドのフローを効率的に提供し、こうしてレジスタに
対する圧力を緩和する。キューはハードウェア、たとえ
ばFIFO(先入れ先出し)メモリを用いるか、または
ソフトウェア、たとえば規則的なメモリ空間を用いるこ
とのいずれかによって実現される。一実施例においては
テンプレートデータ転送コプロセッサは、ハードウェア
キューを用いて計算エンジンに対して必要なオペランド
をバッファする。別の実施例においては、テンプレート
データ転送コプロセッサによって循環的にアドレスされ
るメモリ空間として仮想キューが規定される。さらに別
の実施例においては、物理キューとその関連の仮想キュ
ーとの組合せとして、プログラマに対して可視である論
理キューが規定される。テンプレートデータ転送コプロ
セッサ14は、仮想キューと物理キューとの間のデータ
転送を制御し、それにより論理キューが仮想キューに匹
敵する深さを有するようにする。物理キューはデータを
バッファするためにだけ用いられるので、これはデータ
転送レートの変動を扱える限り、小さくてもよい。
【0037】従来は、キューにストアされたデータはシ
ーケンシャルにアクセスされる。しかしながら、TDT
P14は、キューに基づくテンプレートを用いることに
よりさらなる柔軟性を可能にする。図9を参照すると、
キューに基づくテンプレート102は、物理キュー名を
指定するためのパラメータ104と、関連の仮想キュー
107を指定するためのパラメータのフィールド106
とを含む。仮想キューパラメータは、仮想キューアドレ
ス108、幅110、ストライド112、およびサイズ
114を含む。仮想キュー107に対するアクセスは一
定のストライドを有し、これはメモリ空間におけるシー
ケンシャルではないデータがキューにストリーム化され
ることを可能にする。TDTP14は、仮想および物理
キューの間で、方向パラメータ116の値に従ってデー
タを転送する。方向は、キューがクラスタ34機能ユニ
ット内でソースまたはデスティネーションのどちらとし
て用いられるかを決定する。仮想キューメモリ空間は循
環状にアドレスされ、かつ一度にいくつかの物理キュー
に関連付けられることができる。たとえば、同じ仮想キ
ューが、ソースオペランドキューおよびデスティネーシ
ョンオペランドキューに関連付けられることができる。
機能ユニットはメモリ空間におけるソースキューデータ
を消費する一方で、その結果でデスティネーションキュ
ーメモリ空間を埋める。
【0038】キューに基づくデータ転送は、物理キュー
ステータスによって制御される。ソースオペランドキュ
ーに対しては、オンチップメモリからオペランドバッフ
ァへの転送は、物理キューがフルになったときに停止す
る。デスティネーションオペランドキューに対しては、
オペランドバッファからオンチップメモリへの転送は物
理キューが空になったときに停止する。
【0039】テンプレートデータ転送コプロセッサアー
キテクチャ 図10を参照すると、一実施例においてテンプレートデ
ータ転送コプロセッサ14は、テンプレートインタプリ
タ110、2Dアドレス生成ユニット(AGU)112
の群、テンプレートバッファ114、パッディングバッ
ファ116およびデータ転送バッファ118を含む。テ
ンプレートバッファ114は、1つ以上のテンプレート
タイプ36、66、80、102に対してTDTPを用
いるアプリケーションプログラムによって設定されるテ
ンプレートパラメータのような静的なデータフロー情報
を含む。テンプレートバッファ114はまた、ランタイ
ムに計算されるブロックアドレスのような動的データフ
ロー情報をも含む。
【0040】テンプレートインタプリタ110は、アク
ティブなテンプレートエントリのリストを維持し、アク
ティブなテンプレートごとのランタイムデータ転送パラ
メータを計算する。ブロックに基づくテンプレートに対
しては、すなわちユニブロックおよびプログラム誘導テ
ンプレート36、66に対しては、ブロックごとの転送
パラメータはプログラムに同期して計算される。
【0041】2D AGU112の各々は、2Dブロッ
ク情報を受け、そのブロックに対してアドレスのシーケ
ンスを生成し、これはデータ転送のためのオンチップバ
スを駆動するために用いられる。2D AGU112の
数は、外部メモリ16、18およびオンチップメモリ3
0、32に接続されるオンチップデータバスの数によっ
て決定される。マルチバンクオンチップメモリは、多数
のデータフローが最小限のコンフリクトで同時に進行す
ることを可能にする。
【0042】異なったテンプレートのタイプは、異なっ
た2D AGU112の組を用い得るが、これは2D
AGUが別々のデータバスに関連付けられるためであ
る。たとえば、キューに基づくテンプレート102は、
オンチップメモリ30、32およびオペランドキュー1
20に接続するデータバス22に結合される2D AG
U112の組を用いる。多数のデータフローが同じAG
U112を共用し得る。AGUが利用可能になると、テ
ンプレートインタプリタ110は、このAGUを用いる
ことができるアクティブなテンプレートからブロックを
選択する。この選択は、ラウンドロビン方式で行なわれ
る。しかしながら、テンプレートにおいて優先パラメー
タを用いることにより、代替的な選択規則もまた実施し
得る。
【0043】テンプレートの各々は、ソースおよびデス
ティネーションメモリ空間を規定し、データはソースメ
モリから転送されて、(必要であれば)データ転送バッ
ファ118にストアされる前に整列される。データ転送
バッファ118の数は、外部メモリ16、18とオンチ
ップメモリ30、32との間の同時データフローの最大
数を決定する。転送バッファ118内のデータもまた、
(必要であれば)デスティネーションメモリに転送され
る前に整列される。
【0044】さらに、2つの特別な場合を説明する。第
1に、間接テンプレート80に対して、ソースデータア
ドレスは、ソースアドレスパラメータ94(図8を参
照)にストアされるソースベースアドレスにインデック
スデータを加えることにより計算される。関連の2D
AGU112は、オペランドを直接オンチップメモリま
たはこのインデックスデータをストアするオペランドキ
ューから取ることによりこれらの加算を素早く実行す
る。第2に、パッディングおよびラッピングデータフロ
ーを実現するために、境界のピクセルはTDTP14に
ロードされる。これらのピクセルはパッディングバッフ
ァ116にストアされて、他のデータとともにデータ整
列ユニットにシンクロナスに挿入される。
【0045】テンプレートインタプリタ110は、デー
タ転送を制御し、メディアプロセッサクラスタ34およ
びAGU112からの信号に応答する。図11を参照す
ると、テンプレートインタプリタ110の制御フロー1
22が示される。テンプレートインタプリタ110は、
ステップ124においてクラスタ34の信号または次の
利用可能な2D AGU112を待機する。4つの潜在
的な動作のうちの1つが、受信される信号に応じて発生
する。クラスタ信号「A」に対しては、インタプリタは
ステップ126において新しいテンプレートを初期化す
る。これを行なうために、インタプリタ110は、テン
プレートタイプに従って適切なテンプレートセットアッ
プモジュールを呼出し、ステップ127において転送さ
れるべき最初のブロックを決定する。クラスタ信号
「B」に対しては、インタプリタ110はステップ12
8においてテンプレートを削除することによりテンプレ
ート転送を終了させる。テンプレートに対するブロック
転送を行なうためのクラスタ信号「C」に対しては、イ
ンタプリタはステップ130において現在のブロックを
準備モードに設定する。ステップ132において、イン
タプリタは、最後のブロックに到達したか否かをテスト
する。もし到達していなければ、次に転送されるべきブ
ロックがステップ134において決定される。テンプレ
ートで指定されるブロックがない場合、インタプリタ1
10はクラスタ34に(クラスタによってポーリングさ
れるフラグを設定することにより)信号を送り、テンプ
レートの終了を示す。
【0046】第4の起こり得る動作は、AGU112の
うちの1つのテンプレートデータ転送コプロセッサ14
内で生成される。2D AGUユニット112が利用可
能になると、AGUはインタプリタ110に対して信号
「D」を生成する。次いでステップ136において、イ
ンタプリタ110はテンプレートを選択し、準備された
ブロックをAGUユニットに対してディスパッチする。
2D AGUはまた、ブロック転送の各々が完了した場
合にインタプリタに信号を送る。
【0047】以下の例は、テンプレートデータ転送のプ
ログラミングインターフェイスを示す。第1の例におい
ては、関数はset_uniblockルーチン(ライン1−2)
を用いて2つのブロックに基づくデータフローを生成す
るが、1つは入力データのためであり、他方は出力デー
タのためのものである。set_uniblockルーチンはTD
TP14がテンプレートを指定し、テンプレートバッフ
ァ114にパラメータをコピーし、ハンドラにそのテン
プレートを返すことを要求する。データフローは、tran
sferルーチン(ライン3、6および10)によって開始
される。transferルーチンへのコールの各々は、データ
のブロックをソースメモリからデスティネーションメモ
リに転送する。テンプレートで指定されたデータのすべ
てが転送されると、さらなる転送は無効にされる。
【0048】waitルーチン(ライン5および9)は、テ
ンプレートに関連の準備信号をポーリングすることによ
りブロック転送が完了することを待機する。テンプレー
トが生成されると、その準備信号が自動的に設定され
る。TDTPは、ブロックの転送を開始するときに準備
信号をリセットする。準備信号は、ブロック転送が完了
したときに設定される。タイトループコールは、クラス
タ34とTDTP14との間の共通のデータ構造から入
力および出力データブロックに関するアドレスおよびサ
イズ情報を受ける。タイトループがクラスタ34で実行
される一方で、次の入力データブロックおよび先行する
出力データブロックはTDTP14によって転送され
る。テンプレートに対するすべてのデータが転送される
と、TDTP14はテンプレート完了信号を設定し、こ
れもまたプログラムにおいてループ制御のために用いら
れる。
【0049】deleteルーチン(ライン11−12)は、
関連のテンプレートバッファを無効化することによりテ
ンプレートを終了させる。例1に示されるように、TD
TP14はアプリケーションプログラムに対して効率的
で簡単なプログラミングインターフェイスの組を提供す
る。特に、データフローの詳細は、適切なテンプレート
パラメータを選択することによりTDTP14において
隠されている。
【0050】例1:ユニブロックテンプレート転送
【0051】
【表1】
【0052】プログラム誘導テンプレートは、ユニブロ
ックテンプレートに加えてデータブロックをダブルバッ
ファリングするために用い得るので、そのプログラミン
グインターフェイスは例1のものに似ているが、テンプ
レートがset_guidedルーチンによって設定され、ブロ
ック記述テーブルがデータフローを活性化する前に誘導
テンプレートに対してオンチップメモリで確立される点
が異なる。
【0053】第2の例は、間接データフローのためのプ
ログラミングインターフェイスを示す。間接データフロ
ーは、set_indirectルーチン(ライン1)によって生
成され、これはTDTP14がテンプレートバッファ1
14における間接テンプレートを指定し、次いで指定さ
れたテンプレートにパラメータを転送することを要求す
る。ルーチンはまた、ハンドラを返し、これによりプロ
グラムがテンプレートに関するステータス情報にアクセ
スすることができる。間接データ転送は、transferルー
チン(ライン2)を用いることにより開始され、その後
に他のタスク(ライン3)が続く。同じ時点で、プログ
ラムは間接データ転送が完了するのを待機し、次いで転
送されたデータを計算する。deleteはテンプレートを終
了させる。
【0054】例2:間接テンプレートデータ転送
【0055】
【表2】
【0056】例3は、キューに基づくデータフローイン
ターフェイスを示す。ブロックに基づくデータフローお
よび間接データフローと同様に、set_voq(ライン1)
がテンプレートを生成するために用いられ、transferル
ーチン(ライン2)がデータ転送を開始するために用い
られる。しかしながら、プログラムは転送が完了するの
を待機することなく、transferルーチンのすぐ後にキュ
ーを使い始める。
【0057】例3:キューに基づくテンプレート転送
【0058】
【表3】
【0059】価値のある有利な効果 パラメータ化されたテンプレートの1つの利点は、その
ようなテンプレートはブロック転送ごとに低レベルデー
タ転送パラメータを計算し設定するのではなく、プログ
ラマが特定のアルゴリズムのために必要なデータフロー
を容易に設計するために効率的で汎用性の高い機構であ
ることである。
【0060】ユニブロックテンプレートの利点は、オン
チップメモリにおける入力および出力データブロックが
ダブルバッファリングされることが可能であり、それに
よりメディアプロセッサ機能ユニットは、高速計算のた
めにオンチップメモリにおけるデータにアクセスするだ
けでよく、一方で遅い外部メモリとの間のデータ転送は
機能ユニットから隠されることである。また、ブロック
ごとに、テンプレートデータ転送コプロセッサによって
テンプレートからアドレスおよびサイズが計算される。
したがって、データフロープログラミングは簡略化さ
れ、CPUの計算負荷は減じられる。別の利点とは、ユ
ニブロックテンプレートがソースメモリ空間からオーバ
ーラップされるべきブロックを指定することである。し
たがって、境界のブロックはパッディングされるかまた
はラップアラウンドされ、境界に沿った必要なオーバー
ラッピングを準備する。
【0061】パッディングおよびラッピングは実際のデ
ータ転送の間に行なわれる。したがって、メディアプロ
セッサ計算はさらに減じられ、かつプログラマの負担
は、テンプレートデータ転送コプロセッサによってこれ
らの不規則なデータコピー動作が自動的に扱われるとい
う事実により、減じられる。
【0062】間接テンプレートの利点は、これがプロセ
ッサの計算エンジンに対して顕著な負荷を生成すること
なく、ランダムな場所からデータをアセンブルするため
の効率的な方法を提供することである。
【0063】キューに基づくデータフローテンプレート
の利点は、仮想キューと物理キューとの間のデータ転送
を促進することである。キューに基づくデータフロー
は、ロード/ストア命令をなくし、レジスタファイルサ
イズに対する圧力を緩和する。さらに、コードスケジュ
ーリングは長いレイテンシロード/ストア命令をなくし
て簡略化され、高性能のために必要となるループアンロ
ーリングの量は減じられ、よりコンパクトなコードをも
たらす。
【0064】この発明の好ましい実施例を例示し説明し
たが、さまざまな代替例、変形および等価物を用い得
る。したがって、上述の説明は前掲の特許請求の範囲に
よって規定されるこの発明の範囲を限定するものと解さ
れてはならない。
【図面の簡単な説明】
【図1】 この発明の実施例に従った、メディアプロセ
ッサおよびテンプレートデータ転送コプロセッサを有す
る画像/ビデオ処理システムのブロック図である。
【図2】 例示的なメディアプロセッサ実施例のブロッ
ク図である。
【図3】 図1のテンプレートデータ転送コプロセッサ
によって実現されるデータ転送のためのユニブロックテ
ンプレートの図である。
【図4】 1組の画像データブロックの間のソースブロ
ックに対するパッディング領域の図である。
【図5】 1組の画像データブロックの間のソースブロ
ックに対するデータラッピングの図である。
【図6】 データブロックに対するアクセスパターンを
示す図である。
【図7】 図1のテンプレートデータ転送コプロセッサ
によって実現されるデータ転送のためのプログラム誘導
テンプレートの図である。
【図8】 図1のテンプレートデータ転送コプロセッサ
によって実現されるデータ転送のための間接テンプレー
トの図である。
【図9】 図1のテンプレートデータ転送コプロセッサ
によって実現されるデータ転送のためのキューに基づく
テンプレートの図である。
【図10】 この発明の実施例に従った、図1のテンプ
レートデータ転送コプロセッサのブロック図である。
【図11】 図10のテンプレートインタプリタに対す
る処理状況のフローチャートである。
【符号の説明】
12 メディアプロセッサ、14 テンプレートデータ
転送コプロセッサ、36 ユニブロックテンプレート。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウェイユン・スン アメリカ合衆国、98125 ワシントン州、 シアトル、ワンハンドレッドアンドシック スス・ストリート、エヌ・イー、818、ア パートメント・410 (72)発明者 ドンロク・キム アメリカ合衆国、98105 ワシントン州、 シアトル、ミサン・プレイス・エヌ・イ ー、5290 (72)発明者 ヨンミン・キム アメリカ合衆国、98155 ワシントン州、 シアトル、エヌ・イー・ワンハンドレッド アンドエイティナインス・プレイス、4431 Fターム(参考) 5B013 DD03 DD05 5B057 CH04 CH14 5B061 BA03 DD09 DD12 PP05 5B069 LA02 LA14

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 メディアプロセッサ12によってアクセ
    スするためにデータをロードおよびアンロードするデー
    タ転送を扱うためのテンプレートデータ転送コプロセッ
    サ装置14であって、前記コプロセッサ装置は、 1つ以上のデータ転送テンプレートをストアするテンプ
    レートバッファ114を含み、前記1つ以上のデータ転
    送テンプレート36/66/80/102の各々は、対
    応のデータ転送動作を規定する1組のパラメータを含
    み、前記コプロセッサ装置はさらに前記1つ以上のデー
    タ転送テンプレートを読出し、かつ前記1つ以上のデー
    タ転送テンプレートに対する対応のデータ転送動作をト
    ラッキングするテンプレートインタプリタ110と、 現在のデータ転送テンプレートに対してアクセスするた
    めの1組のアドレスを生成するアドレス生成ユニット1
    12と、 ソースからデスティネーションに転送されるデータを受
    けるデータ転送バッファ118とを含む、コプロセッサ
    装置。
  2. 【請求項2】 前記テンプレートバッファ114にスト
    アされる前記1つ以上のデータ転送テンプレートの所与
    の1つに対するパラメータの組は、コンパイルの間に設
    定される静的なデータフロー情報と、ランタイムに計算
    される動的なデータフロー情報とを含み、前記テンプレ
    ートインタプリタ110は、ランタイムの間に動的なデ
    ータフロー情報を導出する、請求項1に記載の装置。
  3. 【請求項3】 前記1つ以上のデータ転送テンプレート
    の前記少なくとも1つのタイプ36は、ブロックデータ
    転送を容易にし、ブロックデータ転送のブロックサイズ
    が導出されブロックデータ転送に対するソースおよびデ
    スティネーションアドレスが導出されるパラメータを含
    む、請求項1に記載の装置。
  4. 【請求項4】 前記1つ以上のデータ転送テンプレート
    の前記少なくとも1つのタイプ36は、ソースブロック
    パラメータおよびデスティネーションブロックパラメー
    タと、かつブロック転送が1次元データブロックに対す
    るものであるか、または2次元データブロックに対する
    ものであるかの表示42とを含む、請求項3に記載の装
    置。
  5. 【請求項5】 ブロックデータ転送を容易にする前記1
    つ以上のデータ転送テンプレートの前記少なくとも1つ
    のタイプ36は、オーバーラップモードおよび境界デー
    タを変更する態様の表示48をさらに含む、請求項4に
    記載の装置。
  6. 【請求項6】 前記1つ以上のデータ転送テンプレート
    の前記少なくとも1つのタイプ66は、プログラム誘導
    ブロックデータ転送を容易にし、ランダムに配置される
    任意のサイズのデータブロックのシーケンスの転送を容
    易にするためのソースパラメータ69とデスティネーシ
    ョンパラメータ73とを含む、請求項1に記載の装置。
  7. 【請求項7】 前記1つ以上のデータ転送テンプレート
    の前記少なくとも1つのタイプ80は、間接データ転送
    を容易にし、インデックス開始アドレスパラメータ9
    0、ソースアドレスパラメータ94およびデスティネー
    ションアドレスパラメータ96を含む、請求項1に記載
    の装置。
  8. 【請求項8】 前記1つ以上のデータ転送テンプレート
    の前記少なくとも1つのタイプ102は、物理キューと
    仮想キュー107との間のデータ転送を容易にするため
    のキューに基づくデータ転送を容易にする、請求項1に
    記載の装置。
  9. 【請求項9】 外部メモリ16/18とオンチップメモ
    リを有するメディアプロセッサ12との組合せにおい
    て、テンプレートデータ転送コプロセッサ装置14は、
    外部メモリとオンチップメモリとの間のデータ転送を容
    易にする。請求項1に記載の装置。
  10. 【請求項10】 メディアプロセッサ12のオンチップ
    メモリとオフチップメモリ18との間のデータ転送を容
    易にするための方法であって、 複数のデータ転送テンプレート36/66/80/10
    2を含むコードをコンパイルするステップを含み、前記
    複数のデータ転送テンプレートの各々は、オンチップメ
    モリとオフチップメモリとの間のデータ転送を容易にす
    るためのパラメータを識別するためのものであり、前記
    方法はさらに 複数の画像データブロックに対してメディアプロセッサ
    12で画像処理アルゴリズムを実行するステップと、 テンプレートバッファ114から前記複数のデータ転送
    テンプレートの少なくとも1つを読出すステップと、 前記データ転送テンプレートのうちの少なくとも1つに
    アクセスして前記画像処理アルゴリズムを実行するステ
    ップのためにメディアプロセッサ12に複数の画像デー
    タブロックを提供するコプロセッサ14によって、オン
    チップメモリとオフチップメモリとの間のデータ転送を
    容易にするステップとを含む、方法。
  11. 【請求項11】 前記複数のデータ転送テンプレートの
    前記少なくとも1つはブロックデータ転送を容易にし、
    ブロックデータ転送のブロックサイズを導出できブロッ
    クデータ転送に対するソースおよびデスティネーション
    アドレスを導出できるパラメータを含む、請求項10に
    記載の方法。
  12. 【請求項12】 前記複数のデータ転送テンプレートの
    前記少なくとも1つ36は、ソースブロックパラメータ
    とデスティネーションブロックパラメータとを含み、か
    つブロック転送が1次元データブロックに対するもので
    あるか、または2次元データブロックに対するものであ
    るかの表示42を含む、請求項10に記載の方法。
  13. 【請求項13】 前記複数のデータ転送テンプレートの
    うちの前記少なくとも1つは、オーバーラップモードお
    よび境界データを変更する態様の表示48をさらに含
    む、請求項12に記載の方法。
  14. 【請求項14】 前記1つ以上のデータ転送テンプレー
    トの前記少なくとも1つ66は、プログラム誘導ブロッ
    クデータ転送を容易にし、ランダムに配置される任意の
    サイズのデータブロックのシーケンスを転送することを
    容易にするためのソースパラメータとデスティネーショ
    ンパラメータとを含む、請求項10に記載の方法。
  15. 【請求項15】 前記1つ以上のデータ転送パラメータ
    の前記少なくとも1つ80は、間接データ転送を容易に
    し、インデックス開始アドレスパラメータ、ソースアド
    レスパラメータ94、およびデスティネーションアドレ
    スパラメータ96を含む、請求項10に記載の方法。
  16. 【請求項16】 前記1つ以上のデータ転送テンプレー
    トの前記少なくとも1つ102は、物理キューと仮想キ
    ュー107との間のデータ転送を容易にするためのキュ
    ーに基づくデータ転送を容易にする、請求項10に記載
    の方法。
  17. 【請求項17】 前記識別されたパラメータは、コンパ
    イル時に決定される、請求項10に記載の方法。
  18. 【請求項18】 前記識別されたパラメータの少なくと
    も1つは、コプロセッサによってランタイムに規定され
    る、請求項10に記載の方法。
  19. 【請求項19】 前記容易にするステップは、サブワー
    ド区分を有するオペランドとしてパックした前記複数の
    画像データブロックをメディアプロセッサ12に提供す
    るステップを含み、サブワードは、前記複数のデータブ
    ロックの画像データブロックの1つのデータ項目に対応
    する、請求項10に記載の方法。
JP2001357206A 2001-11-22 2001-11-22 コプロセッサ装置およびデータ転送を容易にするための方法 Expired - Fee Related JP4384828B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001357206A JP4384828B2 (ja) 2001-11-22 2001-11-22 コプロセッサ装置およびデータ転送を容易にするための方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001357206A JP4384828B2 (ja) 2001-11-22 2001-11-22 コプロセッサ装置およびデータ転送を容易にするための方法

Publications (3)

Publication Number Publication Date
JP2003167726A true JP2003167726A (ja) 2003-06-13
JP2003167726A5 JP2003167726A5 (ja) 2005-07-14
JP4384828B2 JP4384828B2 (ja) 2009-12-16

Family

ID=19168580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001357206A Expired - Fee Related JP4384828B2 (ja) 2001-11-22 2001-11-22 コプロセッサ装置およびデータ転送を容易にするための方法

Country Status (1)

Country Link
JP (1) JP4384828B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005006207A2 (en) * 2003-06-27 2005-01-20 Intel Corporation Memory command handler for use in an image signal processor having a data driven architecture
JP2007505373A (ja) * 2003-09-08 2007-03-08 フリースケール セミコンダクター インコーポレイテッド Simdオペレーションを実行するデータ処理システム及び方法
JP2010244113A (ja) * 2009-04-01 2010-10-28 Canon Inc 画像処理装置および画像処理方法、並びにプログラム
JP2011141823A (ja) * 2010-01-08 2011-07-21 Renesas Electronics Corp データ処理装置および並列演算装置
JP2014508982A (ja) * 2010-12-15 2014-04-10 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 異種処理デバイスの動的ワークパーティション
JP2015130058A (ja) * 2014-01-07 2015-07-16 ルネサスエレクトロニクス株式会社 半導体装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005006207A2 (en) * 2003-06-27 2005-01-20 Intel Corporation Memory command handler for use in an image signal processor having a data driven architecture
WO2005006207A3 (en) * 2003-06-27 2005-10-20 Intel Corp Memory command handler for use in an image signal processor having a data driven architecture
US7088371B2 (en) 2003-06-27 2006-08-08 Intel Corporation Memory command handler for use in an image signal processor having a data driven architecture
KR100818819B1 (ko) * 2003-06-27 2008-04-02 인텔 코오퍼레이션 데이터 구동 아키텍처를 갖는 화상 신호 프로세서용 메모리명령 핸들러
JP2007505373A (ja) * 2003-09-08 2007-03-08 フリースケール セミコンダクター インコーポレイテッド Simdオペレーションを実行するデータ処理システム及び方法
JP2010244113A (ja) * 2009-04-01 2010-10-28 Canon Inc 画像処理装置および画像処理方法、並びにプログラム
JP2011141823A (ja) * 2010-01-08 2011-07-21 Renesas Electronics Corp データ処理装置および並列演算装置
JP2014508982A (ja) * 2010-12-15 2014-04-10 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 異種処理デバイスの動的ワークパーティション
US9645854B2 (en) 2010-12-15 2017-05-09 Advanced Micro Devices, Inc. Dynamic work partitioning on heterogeneous processing devices
JP2015130058A (ja) * 2014-01-07 2015-07-16 ルネサスエレクトロニクス株式会社 半導体装置
US10049063B2 (en) 2014-01-07 2018-08-14 Renesas Electronics Corporation Semiconductor apparatus

Also Published As

Publication number Publication date
JP4384828B2 (ja) 2009-12-16

Similar Documents

Publication Publication Date Title
JP4987882B2 (ja) スレッドに最適化されたマルチプロセッサアーキテクチャ
US8639882B2 (en) Methods and apparatus for source operand collector caching
US5872985A (en) Switching multi-context processor and method overcoming pipeline vacancies
US6807614B2 (en) Method and apparatus for using smart memories in computing
US5822606A (en) DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
JP4292198B2 (ja) 実行スレッドをグループ化するための方法
US20080140994A1 (en) Data-Parallel processing unit
US20190121697A1 (en) Streaming engine with error detection, correction and restart
US20070245123A1 (en) Parallel data processing apparatus
JP2011023037A (ja) 並列データ処理装置
US11068164B2 (en) Streaming engine with fetch ahead hysteresis
US9395997B2 (en) Request coalescing for instruction streams
US20160283241A1 (en) Parallel data processing apparatus
US6785743B1 (en) Template data transfer coprocessor
US8169440B2 (en) Parallel data processing apparatus
JP4384828B2 (ja) コプロセッサ装置およびデータ転送を容易にするための方法
US8174530B2 (en) Parallel date processing apparatus
US6782470B1 (en) Operand queues for streaming data: A processor register file extension
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
JP2668987B2 (ja) データ処理装置
US20040123073A1 (en) Data processing system having a cartesian controller
Foster Computer architecture
JP2005071351A (ja) プロセッサおよびプロセッサの動作方法
JP3182177B2 (ja) ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法
JPH07210404A (ja) プロセッサ・システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080708

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081006

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081107

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081202

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

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

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees