(57)【要約】  本発明は、ＮＩ行×Ｎｃ列のデータの行列を生成する装置に由来するデータストリームを処理するための装置に関する。本処理装置は、Ｋ個の計算タイル（ＴＣ）と、計算タイル（ＴＣ）間でデータストリームを転送するための相互接続手段（４）とを含む。本発明によれば、少なくとも１つの計算タイル（ＴＣ）は、  −  命令を供給できるようにする１つまたは複数の制御ユニット（ＵＣ）と、  −  それぞれがＶＩ行×Ｖｃ列のデータの近傍に対し、制御ユニット（ＵＣ）から受信される命令を実行するｎ個の処理ユニット（ＵＴ）と、  −  ストリームのデータをＶＩ行×（ｎ＋Ｖｃ−１）列のデータの近傍の形式にすることができるようにする記憶ユニット（ＵＭ）であって、次元ＶＩ×Ｎｃの整形用メモリのブロック（３１）と次元ＶＩ×（ｎ＋Ｖｃ−１）の近傍レジスタのブロック（３４）とを含む記憶ユニット（ＵＭ）と、  −  一方では相互接続手段（４）と記憶ユニット（ＵＭ）間で他方では処理ユニット（ＵＴ）と相互接続手段（４）間でデータストリームを伝達できるようにする入出力ユニットとを含む。  本発明は、電気エネルギー消費を制限する一方でデータストリームの処理における優れたモジュラー性を可能にする。【選択図】      図１
2012504264.tif 000002
【特許請求の範囲】
【請求項１】
ＮＩ行×Ｎｃ列のデータの行列を生成する装置に由来するデータストリームを処理するための装置であって、Ｋ個の計算タイル（ＴＣ）と、前記計算タイル（ＴＣ）間で前記データストリームを転送するための相互接続手段（４）と、を含み、少なくとも１つの前記計算タイル（ＴＣ）は、
−  命令を供給できるようにする１つまたは複数の制御ユニット（ＵＣ）と、
−  それぞれがＶＩ行×Ｖｃ列のデータの近傍に対し、前記制御ユニット（ＵＣ）から受信される命令を実行するｎ個の処理ユニット（ＵＴ）と、
−  前記ストリームの前記データをＶＩ行×（ｎ＋Ｖｃ−１）列のデータの近傍の形式にできるようにする記憶ユニット（ＵＭ）であって、次元ＶＩ×Ｎｃの整形用メモリのブロック（３１）と次元ＶＩ×（ｎ＋Ｖｃ−１）の近傍レジスタのブロック（３４）とを含む記憶ユニット（ＵＭ）と、
−  一方では前記相互接続手段（４）と前記記憶ユニット（ＵＭ）間で他方では前記処理ユニット（ＵＴ）と前記相互接続手段（４）間で前記データストリームを伝達できるようにする入出力ユニット（ＵＥＳ）と
を含むことを特徴とする装置。
【請求項２】
前記近傍レジスタのブロック（３４）はＶＩ個のデータレジスタの列（３５）をさらに含むことを特徴とする、請求項１に記載の装置。
【請求項３】
カウンタＣＰＴＣとカウンタＣＰＴＬを含み、
前記カウンタＣＰＴＣは各入力データム後にインクリメントされ、前記値Ｎｃに到達する毎に零にリセットされ、
前記カウンタＣＰＴＬは前記カウンタＣＰＴＣが値Ｎｃに到達する毎にインクリメントされ、前記値ＶＩに到達する毎に零にリセットされ、
前記入力データムは、その行指標が前記値ＣＰＴＬに対応しその列指標が前記値ＣＰＴＣに対応する前記整形用メモリのブロック（３１）の前記セル（３３）内に格納される
ことを特徴とする、請求項１または２のいずれか一項に記載の装置。
【請求項４】
前記値ＣＰＴＣによって標識される整形用メモリの前記ブロック（３１）のデータの前記列は、前記データストリームの各クロック時刻に、ＶＩ個のデータレジスタの前記列（３５）に複製され、次に近傍レジスタの前記ブロック（３４）の第１列（３４１）内でシフトされることを特徴とする、請求項２または３のいずれか一項に記載の装置。
【請求項５】
前記値ＣＰＴＣによって標識される前記列とＲｏｗＮｏによって標識される前記行内に位置する整形用メモリの前記ブロック（３１）の各データムは、ＶＩを法とする（ＣＰＴＬ＋ＲｏｗＮｏ＋１）によって標識される前記行内のＶＩ個のデータレジスタの前記列（３５）に複製される（ここで、ＲｏｗＮｏは１〜ＶＩの正整数値をすべてとる）ことを特徴とする、請求項４に記載の装置。
【請求項６】
各制御ユニット（ＵＣ）はプログラムが格納されるメモリを含み、前記プログラムはコードセグメントに分割可能であり、各コードセグメントはその性質の関数として前記ストリームの前記データの異なる処理を可能にするための異なる命令を含むことを特徴とする、請求項１〜５のいずれか一項に記載の装置。
【請求項７】
前記データストリームはＮＩ行×Ｎｃ列の画素の画像を供給する映像センサ（２）に由来し、各画像は２つのタイプの行の交番を含み、各タイプの行は２つのタイプの画素を含み、少なくとも１つの計算タイル（ＴＣ）は２つの制御ユニット（ＵＣ）を含み、これら制御ユニット（ＵＣ）のそれぞれのプログラムは４つのコードセグメントに分割され、各コードセグメントは考慮すべき様々なタイプの画素に対応することを特徴とする、請求項６に記載の装置。
【請求項８】
前記画素のタイプはその色に依存することを特徴とする、請求項７に記載の装置。
【請求項９】
少なくとも１つの計算タイル（ＴＣ）は、
−  前記ストリームのデータを格納することができるようにする記憶ユニット（ＵＭ）と、
−  前記格納されたデータに処理を行うための命令を供給できるようにする制御ユニット（ＵＣ）と、
−  それぞれが前記格納されたデータの一部に対し、前記制御ユニット（ＵＣ）から受信される前記命令を実行するいくつかの処理ユニット（ＵＴ）と、
−  一方では前記相互接続手段（４）と前記記憶ユニット（ＵＭ）間で他方では前記処理ユニット（ＵＴ）と前記相互接続手段（４）間で前記データストリームを伝達できるようにする入出力ユニットと、
を含み、
前記記憶ユニット（ＵＭ）は前記処理ユニット（ＵＴ）の数に等しい数のデータレジスタを含むことを特徴とする、請求項１〜８のいずれか一項に記載の装置。
【請求項１０】
前記相互接続手段（４）は次の関係式：
Ｎｂ＿ｂｕｓ＝Ｋ×（Ｆｐｉｘｅｌ／Ｆａｒｃｈｉ）＋１
ここで、Ｆｐｉｘｅｌは前記データストリームの周波数であり、Ｆａｒｃｈｉは前記処理ユニット（ＵＴ）の動作周波数であり、前記周波数Ｆａｒｃｈｉはｐ×Ｆｐｉｘｅｌに等しい（ｐ：正整数）
により定義されるＮｂ＿ｂｕｓの数のデータバス（４１、４２）を含むことを特徴とする、請求項１〜９のいずれか一項に記載の装置。
【請求項１１】
各入出力ユニット（ＵＥＳ）はライトアクセス許可を管理するためのサイズｌｏｇ２（Ｍｕｘ＿ｔ）ビットのＮｂ＿ｂｕｓ個のレジスタと、サイズｌｏｇ２（Ｎｂ＿ｂｕｓ）ビットのレジスタと、リードアクセス許可を管理するためのサイズｌｏｇ２（Ｍｕｘ＿ｔ）ビットのレジスタと、を含む（ここで、Ｍｕｘ＿ｔは関係式Ｍｕｘ＿ｔ＝Ｆａｒｃｈｉ／Ｆｐｉｘｅｌにより定義される）ことを特徴とする、請求項１０に記載の装置。
【請求項１２】
前記計算タイル（ＴＣ）はその比が次の関係式：
Ｍｕｘ＿ｔ＝Ｆａｒｃｈｉ／Ｆｐｉｘｅｌ
により定義される時間多重化によりアドレス指定されることを特徴とする、請求項１１に記載の装置。
【請求項１３】
各計算タイル（ＴＣ）は、前記計算タイル（ＴＣ）の処理ユニット（ＵＴ）の数に等しい数のデータレジスタを含む直列ブロック（ＢＳ）を含み、
前記計算タイル（ＴＣ）の各直列ブロック（ＢＳ）は、入力として、前記計算タイル（ＴＣ）の前記処理ユニット（ＵＴ）に由来するデータを受信し、その出力において前記計算タイル（ＴＣ）の前記入出力ユニット（ＵＥＳ）に接続されることを特徴とする、請求項１〜１２のいずれか一項に記載の装置。
【請求項１４】
各処理ユニット（ＵＴ）は、２つの命令デコーダ（２１、２２）を含むプロセッサ、第１の組のマルチプレクサ（２３）、複数の計算演算子（２４）、第２の組のマルチプレクサ（２５）、データレジスタ（２６）、およびローカルメモリ（２７）を含み、
前記命令デコーダ（２１、２２）は制御ユニット（ＵＣ）に由来する命令を受信し、
前記第１の組のマルチプレクサ（２３）は、一組の利用可能な演算子のうちの１または２の計算演算子（２４）に対し処理されるデータを向け、
前記第２の組のマルチプレクサ（２５）は前記処理されたデータを前記データレジスタ（２６）に向け、
前記プロセッサは前記プロセッサの１クロックサイクル当たり２つまでの命令を実行することができることを特徴とする、請求項１〜１３のいずれか一項に記載の装置。
【請求項１５】
前記ストリームのデータは相補データムに連結され、
前記計算タイル（ＴＣ）は、前記計算タイル（ＴＣ）の前記処理ユニット（ＵＴ）が前記相補データムの関数として前記ストリームの前記データに対し命令を実行するように、前記相補データムからの前記ストリームの前記データを分離することができることを特徴とする、請求項１〜１４のいずれか一項に記載の装置。
【請求項１６】
前記ストリームのデータの前記相補データムとの前記連結は前記相互接続手段（４）上に挿入される挿入演算子（１２０）により実行されることを特徴とする、請求項１５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータストリームを処理するための装置に関する。本発明は、計算アーキテクチャの分野に関し、映像センサを集積化したマルチメディアタイプ埋め込みアプリケーションに特定の有用性を見出す。本発明は、特に移動体電話、移動体マルチメディアリーダー、写真装置、デジタルビデオカメラに関する。本発明はまた、電気通信に関係するアプリケーションに、より一般的には高速でデジタルデータを処理するための任意の信号処理チェーンに有用性を見出す。
【背景技術】
【０００２】
一般信号処理と画像の処理は特に、イメージセンサの解像度の急速な増加に伴い特にここ数年にわたってかなりの計算能力を必要としている。一般大衆向けの埋め込みアプリケーションの分野では、製造コストという意味での重い制約が電力消費の制約（数百ミリワット程度の）に加えられる。これらの制約に対応するために、画像処理は通常、データフローモードで動作する専用計算モジュールに基づき実行される。文献で一般的に知られているように「データフロー」モードは、計算モジュールに入るデータが到達したときにそれらが到達した速度で処理されるデータ処理モードであり、その結果は計算モジュールからの出力として、同じ速度で（随意的には待ち時間後に）供給される。専用計算モジュールは、その小さなシリコン面積の理由での製造コスト制約と、特に計算能力と電力消費に関する性能制約とに対応できる。しかしながらこのようなモジュールは、サポート対象の処理をモジュールの製造後に修正できないという柔軟性上の問題がある。せいぜい、これらのモジュールはパラメータ化可能である。特に断らない限り、所定数の処理関連パラメータは製造後に修正可能である。
【０００３】
この柔軟性欠如の解は、完全プログラム可能プロセッサを使用することにある。最も一般的に使用されるプロセッサは、「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ」の頭文字「ＤＳＰ」として文献では周知の信号プロセッサである。これらのプロセッサの欠点は大きなシリコンフットプリントと電力消費であり、制約の高い埋め込みアプリケーションにうまく適合できなくなることがしばしばある。
【０００４】
専用計算モジュールと完全プログラム可能プロセッサとの妥協策が現在開発中である。第１の妥協策によると、回路は、ＶＬＩＭ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）ユニットと呼ばれる超長命令語を有するデータ処理ユニットと、いくつかの計算ユニット上で命令を実行できるようにするＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）ユニットと呼ばれるユニットと、を含む。現在のいくつかの構成では、ＶＬＩＭおよび／またはＳＩＭＤタイプの計算ユニットは必要な計算能力の機能として回路内に植込まれる。回路に含まれるユニットのタイプ、その数、そしてそれらが連鎖されるやり方の選択は、アプリケーションコードと必要な資源とを解析することにより回路の構築の前に決定される。ユニットが連鎖される順序は固定されており、処理演算の連鎖を後で変更することはできない。また、アプリケーションの制御コードは処理コードと分離されていないのでユニットは全体的にかなり複雑である。したがってこれらのユニットの処理演算子はかなりのサイズであり、したがってそのシリコン面積と電力消費が同一計算能力に対してより大きいアーキテクチャとなる。
【０００５】
第２の妥協策によると、特定のコンパイラによりＣ言語コードを一組の基本命令に変換することができる。次に、一組の命令は所定の演算子の構成可能行列に植込まれる。この技術は「Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ」の頭文字であるＦＰＧＡの技術と比較して計算粒度はより大きいかもしれない。したがってこの技術によりプログラマブル回路を得ることはできないが、コードコンパイルにより構成可能回路だけは得ることができる。提供されないプログラムコードの一部を最初から集積化することが望ましい場合、回路内に存在しない計算資源が必要となる。したがってこのコードを実装することは困難であるかあるいは全く不可能である。
【０００６】
第３の妥協策によると、データはいわゆる並列アーキテクチャにより処理される。このようなアーキテクチャは、相互接続バスにより結合されるいくつかの計算タイルを含む。各計算タイルは、データをローカルに格納可能な記憶ユニットと、記憶データに対し処理を実行するための命令を提供する制御ユニットと、制御ユニットから受信された命令を記憶データに対し実行する処理ユニットと、相互接続バスと記憶ユニット間または処理ユニットと相互接続バス間のいずれかでデータを伝達する入出力ユニットと、を含む。このアーキテクチャはいくつかの利点を提供する。第１の利点は、アーキテクチャの構築後でも、処理ユニットにより実行されるコードを修正する可能性である。さらに、処理ユニットにより実行されるコードは通常、計算命令だけを含み、制御またはアドレス計算命令を含まない。第２の利点は、処理ユニットの並列配置の利点を生かすことにより同一のクロックサイクルで、いくつかのデータに対する同一の処理、またはより複雑な処理演算のいずれかを並列に実行する可能性である。第３の利点は、計算タイルはデータに対し実行される処理演算に応じて連鎖可能であり、相互接続バスは構成可能な順序でデータを計算タイル間で伝達するということである。また、並列アーキテクチャは、実行される処理演算にその処理能力を適合させるように計算タイルをさらに追加することにより拡張可能である。しかしながら、計算タイル内のデータの管理は複雑であり、通常はかなりのメモリ資源を必要とする。特に計算タイルがデータ近傍に対し処理を実行しているとき、この近傍のすべてのデータは同時に利用可能でなければならないがデータは連続ストリームの形式で到達する。このとき、計算タイルの記憶ユニットは、近傍に対する処理が実行可能となる前にストリームのデータのかなりの部分を格納しなければならない。この格納と格納データの管理は、データフローの処理に適合した計算性能を提供する一方でシリコン面積と並列アーキテクチャの電力消費を制限するように最適化を必要とする。
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明の目的は、特にデータの近傍に対する処理演算を実行しなければならない場合に、プログラム可能でデータストリームの処理に適合した計算構造を提案することである。この目的のため、本発明の主題は、ＮＩ行×Ｎｃ列のデータの行列を生成する装置に由来するデータストリームを処理するための装置である。本処理装置は、Ｋ個の計算タイルと、計算タイル間でデータストリームを転送するための相互接続手段と、を含む。少なくとも１つの計算タイルは、
−  命令を供給できるようにする１つまたは複数の制御ユニットと、
−  それぞれが制御ユニットから受信される命令をＶＩ行×Ｖｃ列のデータの近傍に対し実行するｎ個の処理ユニットと、
−  ストリームのデータをＶＩ行×（ｎ＋Ｖｃ−１）列のデータの近傍の形式にすることができるようにする記憶ユニットであって、次元ＶＩ×Ｎｃの整形用メモリのブロックと次元ＶＩ×（ｎ＋Ｖｃ−１）の近傍レジスタのブロックとを含む記憶ユニットと、
−  一方では相互接続手段と記憶ユニット間で他方では処理ユニットと相互接続手段間でデータストリームを伝達できるようにする入出力ユニットと、を含む。
【図面の簡単な説明】
【０００８】
本発明の利点は、特に処理ユニットによる記憶レジスタの次元決めとメモリレジスタへのアクセスの管理という点で、データの近傍に対する処理が実行される計算タイルの記憶ユニットが特にこのような処理に適合されるということである。
【０００９】
本発明は、添付図面との関連で示される一例として示される実施形態の詳細説明を読むとさらによく理解され、また他の利点が明らかになるであろう。
【００１０】
【図１】本発明によるデータストリームを処理するための例示的な装置。
【図２】超長命令語プロセッサを含む例示的な処理ユニット。
【図３】整形用メモリのブロックの例示的な管理。
【図４】整形用メモリのブロックのデータが順番通りである場合の近傍レジスタのブロックの例示的な管理。
【図５】整形用メモリのブロックのデータが順番通りでない場合の近傍レジスタのブロックの例示的な管理。
【図６】近傍レジスタのブロックの時間管理を例示する一組のタイムチャート。
【図７】いくつかの並列接続の処理ユニットを含む計算タイルの例示的な実施形態。
【図８】２つの並列接続の処理ユニットを含む計算タイルの記憶ユニットの時間管理を示す一組のタイムチャート。
【図９】入出力ユニットの例示的な実施形態。
【図１０】ビデオ画像に対する本発明による装置の例示的な実施形態。
【図１１】Ｂａｙｅｒフィルタの略図。
【図１２】ストリームのデータの分割を可能にするフォーマットレジスタの例。
【図１３】メタデータを含むレジスタへのアクセスを可能にする例示的な機構。
【図１４】メタデータの関数として特定の命令を受信するいくつかの処理ユニットを含む計算タイルの例示的な実施形態。
【図１５】挿入演算子の例示的な実施形態。
【発明を実施するための形態】
【００１１】
以下の説明は、ＣＭＯＳセンサなどの映像センサに由来する映像データストリームのための処理チェーンとの関連でなされる。処理チェーンは、復元された画像の品質を改善するために、あるいはそうでなければ浸食／拡大等のモルフォロジー演算または画像安定化、赤目補正または面検出等の高度なアプリケーションの画素の処理における低レベル部分を実行するために、例えばカラーフィルタ（例えばＢａｙｅｒフィルタ）が適用されるモノクロ映像センサに基づきカラー画像を復元できるようにする。しかしながら、本発明による装置は、映像センサから生じるもの以外のデータのストリームの処理に同様に適用されてもよい。本装置は、例えばオーディオデータストリームまたはフーリエ空間内のデータを処理することができる。一般的に、本装置は、ストリームの形式で伝達されるが２次元空間内でコヒーレンスを有するデータの処理に対し特定の利点を発揮する。
【００１２】
図１に、本発明によるデータストリームを処理するための装置１を概略的に表す。映像センサ２は、データバス３を経由して処理装置１に向けられるディジタルデータストリームを生成する。映像センサ２から生じるデータは生データと呼ばれる。装置１は、これらの生データを、最終データと呼ばれる出力データとして生成するように処理する。この目的を達成するために、本発明による装置１は、処理ユニットＵＴ、制御ユニットＵＣ、記憶ユニットＵＭ、およびＫ個の計算タイルＴＣにグループ化された入出力ユニットＵＥＳを含む。装置１はまたデータバス４１、４２などの相互接続手段４を含む。これらの相互接続手段４は、様々な計算タイルＴＣ間でデータストリームを転送できるようにする。各計算タイルＴＣは、記憶ユニットＵＭ、１つまたは複数の制御ユニットＵＣ、制御ユニットＵＣ当たり少なくとも１つの処理ユニットＵＴ、および入出力ユニットＵＥＳを含む。記憶ユニットＵＭは、ストリームのデータが、制御ユニットＵＣにより送出されたコード命令の関数として、処理ユニットＵＴにより処理されるようにそれらを整形できるようにする。入出力ユニットＵＥＳは、一方では相互接続手段４と記憶ユニットＵＭ間で他方では処理ユニットＵＴと相互接続手段４間でデータストリームを伝達できるようにする。図１の例では、装置１は、それぞれが記憶ユニットＵＭ、制御ユニットＵＣ、処理ユニットＵＴ、および入出力ユニットＵＥＳを含む第１と第４の計算タイルＴＣ１とＴＣ４と、記憶ユニットＵＭ、制御ユニットＵＣ、２つの処理ユニットＵＴ、および入出力ユニットＵＥＳを含む第２の計算タイルＴＣ２と、記憶ユニットＵＭ、２つの制御ユニットＵＣ、制御ユニットＵＣ当たり２つの処理ユニットＵＴ、および入出力ユニットＵＥＳを含む第３の計算タイルＴＣ３と、の４つの計算タイルＴＣを含む。各計算タイルＴＣは、コード命令に基づき関数または一連の関数を実行できるようにする。映像処理チェーンの枠組み内では、各計算タイルＴＣは例えば次の関数すなわちホワイトバランスの補正、非行列化、雑音低減、輪郭強調のうちの１つを実行する。計算タイルＴＣの構成は特に、実行しなければならない関数または関数群に依存する。特に、計算タイルＴＣを構成する制御ユニットＵＣの数は、計算タイルＴＣにより同時に実行されなければならない様々な処理演算の数に依存する。計算タイルＴＣ内の各制御ユニットＵＣは自己コードを含むことができるので、計算タイルＴＣは例えばデータに対し並列に実行される個別の処理演算と同数の制御ユニットＵＣを含む。
【００１３】
処理ユニットＵＴは多少複雑かもしれない。具体的には、処理ユニットＵＴは例えば論理ブロックからなる単純な専用演算子またはプロセッサのいずれかを含むことができる。各処理ユニットＵＴは他から独立しており、様々な演算子またはプロセッサを含むことができる。専用演算子は、例えば乗算器、加算器／減算器、代入演算子またはシフト演算子である。有利には、処理ユニットＵＴは想定される処理に共通に使用される専用演算子だけを含む。
【００１４】
処理ユニットＵＴはまたプロセッサを含むことができる。第１の実施形態では、プロセッサは単独の算術論理ユニットを含む。第２の実施形態では、プロセッサは超長命令語（ＶＬＩＭ）プロセッサである。このようなプロセッサはいくつかの算術論理ユニットを含むことができる。好ましい変形では、ＶＬＩＷプロセッサは、例えば、命令デコーダと、算術論理ユニットではなく計算演算子だけと、ローカルメモリと、データレジスタと、を含む。実行対象の計算コードの実行に必要な計算演算子だけが設計中にプロセッサに植込まれると有利である。その後、個別の演算を並列に実行するためにこれら計算演算子の２つ以上を同じサイクルで使用してもよい。使用されていない演算子はクロック信号を受信しない。これにより処理ユニットＵＴの電力消費は低減される。これらの有利な特性により図２に代表される特定の実施形態に至った。この図では、ＶＬＩＷプロセッサは２つの経路を含む。特に断らない限り、ＶＬＩＷプロセッサは同一クロックサイクル内に２つまでの命令を実行することができる。プロセッサは、第１の命令デコーダ２１、第２の命令デコーダ２２、第１の組のマルチプレクサ２３、一組の計算演算子２４、第２の組のマルチプレクサ２５、一組のデータレジスタ２６、およびローカルメモリ２７を含む。命令デコーダ２１、２２は制御ユニットＵＣに由来する命令を受信する。受信された命令の関数として、マルチプレクサ２３は処理対象のデータを計算演算子２４のうちの１つの入力へ向け、マルチプレクサ２５は処理されたデータをデータレジスタ２６に向ける。処理されたデータを含むデータレジスタ２６をプロセッサの出力と結合することができる超長命令語のサイズは例えば４８ビット（１経路当たり２４ビット）である。したがって計算演算子２４は２４ビットの高精度で働く。映像処理、より具体的には映像センサから生じたデータに基づく画像再生の枠組み内では、計算演算子２４が２つの加算器／減算器、乗算器、代入演算子、ローカルメモリへの書き込み用の演算子、およびシフト演算子であると有利である。
【００１５】
依然として特定の実施形態によると、フラグを設定することにより命令の実行を条件付けることができる。このとき、実行条件を示す接頭辞により命令を補間することができる。フラグは例えば前のクロックサイクル中に実行された命令の結果を含むレジスタのビットである。このビットはレジスタの零、符号、または桁上げ表示子に対応することができる。命令毎に、命令デコーダ２１、２２はこの命令に関連するフラグの設定を試験する。この設定が実行条件に合致すると、演算が実行されるかそうでなければ演算はＮＯＰと呼ぶ無動作命令で置換される。各命令のサイクルの最後に、フラグの値は次命令の条件（もしあれば）を試験することができるように２つの命令デコーダ２１、２２に送られる。
【００１６】
特定の実施形態によると、各命令語は２４ビットでコード化される。最初の３ビット（ビット０〜２）は命令条件を含むことができ、次の２ビット（ビット３、４）はデータムへのアクセスのモードをコード化することができ、第６のビット、第７のビット、第８のビット（ビット５〜７）は演算の識別子をコード化することができ、次の４ビット（ビット８〜１１）は送信先レジスタを指定することができ、次の４ビット（ビット１２〜１５）は送信元レジスタを示すことができ、最後の８ビット（ビット１６〜２３）は定数を含むことができる。このようなコード化を使用した例示的なプログラム方法を付録に示す。
【００１７】
データストリームを処理するための装置１はＭ個の制御ユニットＵＣを含む（ここで、Ｍは１〜Ｎ、Ｎは処理ユニットＵＴの数）。制御ユニットＵＣの数Ｍが処理ユニットＵＴの数Ｎに等しい場合、各処理ユニットＵＴはそれ自身の制御ユニットＵＣを有することができる。制御ユニットＵＣの数Ｍが処理ユニットＵＴの数Ｎ未満である場合、少なくとも１つの計算タイルＴＣは例えば図１の例（ＴＣ２、ＴＣ３）のようにいくつかの処理ユニットＵＴを含む。このとき、この計算タイルＴＣの制御ユニットＵＣはいくつかの処理ユニットＵＴに命令を供給する。これらの処理ユニットＵＴは並列接続であると言われる。制御ユニットＵＣは、それが対応する処理ユニットまたはユニット群ＵＴのコード命令を格納できるようにするメモリを含むことができる。制御ユニットＵＣはまた、順序カウンタ、命令デコーダ、およびアドレスマネジャーを含むことができる。
【００１８】
カラーフィルタにより得られる生画像の処理の枠組み内では、アドレスマネジャーと順序カウンタは現在の画素の色の関数として異なる処理を適用することができる。特に、コードはそれぞれがフィルタの色の１つに対する命令を含むコードセグメントに分割可能である。アドレスマネジャーは順序カウンタに現在の画素の色（例えば赤、緑、青）を指示することができる。特定の実施形態によると、アドレスマネジャーは、２×２のサイズの画素近傍内の画素の４つまでの異なる色または性質をコード化できるようにする２ビット語を含む。各クロックサイクルでは、順序カウンタはワードの値に依存するシフト値（オフセット）によりインクリメントされる。次に順序カウンタは、現在の画素の色に対応するコードセグメントを指示することができる。４つのシフト値は、コードセグメントのそれぞれの命令の数の関数としてコードのコンパイル中に決定される。アドレスマネジャーと順序カウンタの使用により、プログラマの負担を除くことができ、したがってプログラム毎に現在の画素の性質を決定しなければならないことを回避する。この管理は自動的であり、より短い実行時間とより単純なプログラミングを可能にする。処理される画像がモノクロである特定の場合、同じ命令がすべての画素に適用される。このとき、シフト値は等しく、順序カウンタが初期化コード後の最初の命令を指示するように決定される。
【００１９】
データストリームを処理する装置１はまたＫ（Ｋは１〜Ｍ）個の記憶ユニットＵＭを含む。計算タイルＴＣは図１の例（ＴＣ３）のようにいくつかの制御ユニットＵＣを含むことができる。次に、記憶ユニットＵＭ内に存在するストリームの同じデータ（または近傍データ）は、それぞれが少なくとも１つの処理ユニットＵＴに命令を供給する計算タイルの処理ユニットＵＴにより違ったやり方で処理可能である。記憶ユニットＵＭの主要機能は、処理ユニットＵＴによりこれらのデータへのアクセスを容易にするようにストリームのデータを整形することである。
【００２０】
第１の実施形態によると、記憶ユニットＵＭは、当該記憶ユニットＵＭの計算タイルＴＣ内に位置する処理ユニットＵＴの数と等しい数のデータレジスタを含む。
【００２１】
ビデオ画像の処理に特に適合した第２の実施形態によると、記憶ユニットＵＭは、処理ユニットＵＴが並列接続である場合、データを近傍の形式に整形しデータへのアクセスを管理する。このような記憶ユニットＵＭは、整形用メモリのブロックと呼ばれる第１のメモリブロックと近傍レジスタのブロックと呼ばれる第２のメモリブロックとを含むことができる。様々な計算タイルＴＣの記憶ユニットＵＭは互いに独立であるので、データストリームを処理するための装置１は第１の実施形態による記憶ユニットＵＭと第２の実施形態による記憶ユニットＵＭとを同一時間に含むことができる。第２の実施形態は、データ近傍に対し処理演算を実行できるようにする。ビデオ画像については、近傍は隣接ピクセルのメッシュ（一般的には正方形または少なくとも矩形）として定義されてよい。矩形のメッシュはその次元ＶＩ×Ｖｃにより定義されてよい（ここで、ＶＩは近傍行の意味でのピクセルの数、Ｖｃは近傍列の意味でのピクセルの数）。整形用メモリのブロックは、ストリームのデータを新しいデータムのそれぞれの到着に基づく系統的なやり方で複製できるように格納する。近傍レジスタのブロックは、当該計算タイルの処理ユニットまたはユニット群ＵＴによる現在の近傍の画素へのアクセスを可能にする。
【００２２】
図３には、異なる時間ステップＴで表される整形用メモリのブロック３１により、ＮＩ行×Ｎｃ列のデータの行列を生成する装置（例えば映像センサ３２）に由来する画素の値のストリームに対応するデータのブロック３１の例示的な管理を示す。映像センサ３２はＮｌ行×Ｎｃ列の画素解像度を有する。解像度は、例えばＶＧＡ（６４０×４８０）、「ＨＤレディ」（１０８０×７２０）、または「フルＨＤ」（１９２０×１０８０）である。画素は、整形用メモリのブロック３１に到達すると送られ格納される。このブロック３１は次元ＶＩ×Ｖｃの近傍を生成することができるように次元ＶＩ×Ｎｃであると有利である。特に断らない限り、ブロック３１はＶＩ行×Ｎｃ列のメッシュに従って配置されるＶＩ×Ｎｃ個のメモリセルを含む。ＶＩの通常値は３、４、５、６または７である。物理的に、ブロック３１は１つまたは複数のメモリモジュールからなることができる。ブロック３１はシフトレジスタとして管理されてよい。特に断らない限り、各時間ステップまたはクロックサイクルにおいて、データは新しい入力データム用の空間を残すようにシフトされる。有利には、ブロック３１は、従来型メモリとして、画素がその到着の順番で複製されるやり方で管理される。
【００２３】
後者の場合と第１の実施形態にでは、各入力データム上でインクリメントされるカウンタＣＰＴを考慮する。データストリームから来る各新しい画素は次に、Ｅ（ＣＰＴ／Ｎｃ）（ここで、Ｅ（ｘ）は数ｘの整数部を戻す関数）に対応する行に位置する整形用メモリのブロック３１のセル３３とＣＰＴ／Ｎｃの残りの部分に対応する列とに複製される。カウンタＣＰＴは、ＶＩ×Ｎｃに等しい値に到達する毎に零にリセットされる
【００２４】
第２の実施形態では、各入力データム後にインクリメントされるカウンタＣＰＴＣとカウンタＣＰＴＣが値Ｎｃに到達する毎にインクリメントされるカウンタＣＰＴＬとを考慮する。カウンタＣＰＴＣは値Ｎｃに到達する毎に零にリセットされ、カウンタＣＰＴＬは値ＶＩに到達する毎に零にリセットされる。次に、データストリームから来る各新しい画素は、その行指標が値ＣＰＴＬに対応しその列指標が値ＣＰＴＣに対応するセル３３に複製される。
【００２５】
図４に、整形用メモリのブロック３１に由来するデータの近傍レジスタのブロックの例示的な管理を示す。近傍レジスタのブロック３４は例えばＶＩ×Ｖｃに等しい数の近傍レジスタを含む。これらの近傍レジスタは画素の近傍と同様なやり方で配置される。すなわち、これらの近傍レジスタはＶＩ行×Ｖｃ列のレジスタのメッシュを形成する。整形用メモリのブロック３１のデータの近傍への複製は、ブロック３１内に（ＶＩ−１）×Ｎｃ＋１に等しい数のデータが存在すると直ちに開始する。したがって図４に表す次元３×３の近傍の場合、データの複製は２行のデータ＋１データムがブロック３１内に存在する場合に開始する。一実施形態では、データはクロックサイクル毎に同一列のＶＩ個のデータ群内に複製される。所定の時間ステップに、複製される列の指標がＣＰＴＣの値により与えられる。この列は実際、ブロック３１内に到達した最後の画素を含む。ＶＩ個のデータレジスタの列３５が近傍レジスタに追加されると有利である。この列３５は、ブロック３４内における値のシフトの単一クロックサイクル中だけ、処理ユニットＵＴによりブロック３４のレジスタへのアクセスを無効にすることができる。そうでなければアクセスは、値のシフト中とブロック３１からのデータの複製中、同一時間に無効にされる。第１のクロックサイクル中、ブロック３１のカウンタＣＰＴＣにより指示される列のデータは列３５のレジスタに複製される。第２のクロックサイクル中、ブロック３４と列３５のすべてのデータは１列だけシフトされる。したがって同一クロックサイクル内の次元３×３の近傍では、第１列３４１のデータは第２の列３４２にシフトされ、一方この列３４２のデータは第３の列３４３にシフトされ、列３５のデータは列３４１にシフトされる。
【００２６】
ブロック３１の周期的管理の理由で、データは必ずしも映像センサ３２の行の順に従ってブロック３１内に記憶されるとは限らない。この場合、画素は、異なる順序でブロック３４の列３５または（適切ならば）列３４１に複製されなければならない。図５に、ストリームの最後のデータがブロック３１の第１行に格納される場合を示す。次元３×３の近傍の場合、画素の列３５への複製は以下の配置手順により管理可能である。
−  最後に到達する画素は常に近傍レジスタの列３５の第３の行３４７に入る。
−  カウンタＣＰＴＬが零に等しい場合（特に断らない限り、最後の画素がブロック３１の第１行３１１に到達している場合）、
ｏブロック３１の第２行３１２の画素は列３５の第１行３４５に複製され、
ｏブロック３１の第３の行３１３の画素は列３５の第２行３４６に複製される。
−  カウンタＣＰＴＬが零に等しい場合（特に断らない限り、最後の画素がブロック３１の第１行３１２に到達している場合）、
ｏブロック３１の第１行の画素は列３５の第２行３４６に複製され、
ｏブロック３１の第３の行３１３の画素は列３５の第１行３４５に複製される。
−  カウンタＣＰＴＬが零に等しい場合（特に断らない限り、最後の画素がブロック３１の第３行３１３に到達している場合）、
ｏブロック３１の第１行３１１の画素は列３５の第１行３４５に複製され、
ｏブロック３１の第２行３１２の画素は列３５の第２行３４６に複製される。
【００２７】
より一般的には、サイズＶＩ×Ｖｃの近傍の場合、行ＲｏｗＮｏとＣＰＴＣにより指示される列と、に位置する整形用メモリのブロック３１の画素は特に、ＶＩを法とする（ＣＰＴＬ＋ＲｏｗＮｏ＋１）により定義される行内のブロック３４の列３５に、または適切ならば第１列３４１に複製される。ＲｏｗＮｏは近傍のすべての行に対する画素の複製を可能にするように１〜ＶＩのすべての正整数値をとる。
【００２８】
特定の実施形態によると、ブロック３１の画素のレジスタの列３５への複製はブロック３４内の画素のシフトと同時に実行されない。この実施形態は、処理ユニットＵＴが、より長い期間中、近傍レジスタのブロック３４内に存在するデータにアクセスできるようにする。図６は、この実施形態を実施できるようにする一組のタイムチャートを表す。画素の複製と画素のブロック３４へのシフトとの時間的なずれは、画素クロック６１と呼ばれるデータストリームと画素の複製とを規制できるようにする第１のクロックに加え、シフト画素クロック（ｓｈｉｆｔｅｄ  ｐｉｘｅｌ  ｃｌｏｃｋ）６２と呼ばれる第２のクロックを導入することにより達成可能である。このシフト画素クロック６２は、画素クロック６１と同じ周波数であるが時間的にずらされてよい。このずれは例えば処理ユニットＵＴ６３のクロックの一周期に対応する。このときブロック３４内に存在するデータは、シフト画素クロック６２の２クロック時刻を分離する期間中アクセス可能である。処理ユニットＵＴによる近傍レジスタへのアクセスは、例えば各処理ユニットＵＴに組み込まれた入出力ポート（その接続部の数はデータのサイズを掛けた近傍レジスタの数に等しい）を介し達成可能である。各近傍レジスタは入出力ポートに結合される。有利には、各記憶ユニットＵＭは、その入力の数がブロック３４の近傍レジスタの数に等しくその出力の数が当該計算タイルＴＣの処理ユニットＵＴにより同時に処理可能なデータの数に等しいマルチプレクサを含む。このとき処理ユニットＵＴは、その接続部の数がデータのサイズを掛けた同時処理可能なデータの数に等しい入出力ポートを含むことができる。この例では、１２ビットのデータを処理する２つの経路を有するＶＬＩＷプロセッサを含む処理ユニットＵＴは、２４（２×１２）の接続部を有する入出力ポートを含むことができる。
【００２９】
特定の実施形態によると、同一の記憶ユニットＵＭは、いくつかの並列接続の処理ユニットＵＴへデータを供給する。特に断らない限り、処理装置１はいくつかの処理ユニットＵＴを含む計算タイルＴＣを含む。この実施形態は有利には、整形用メモリのブロック３１と近傍レジスタのブロック３４とを含む記憶ユニットＵＭを使用する。しかしながら、近傍レジスタのブロック３４の次元は適合されなければならない。図７に、記憶ユニットＵＭがｎ個の並列接続の処理ユニットＵＴへデータを供給する例示的な計算タイルＴＣを示す（ｎは装置１の処理ユニットＵＴの数Ｎ以下である）。命令は１つまたは複数の制御ユニットＵＣによりｎ個の処理ユニットＵＴに供給される。この実施形態によると、近傍レジスタのブロック３４は次元ＶＩ×（ｎ＋Ｖｃ−１）である。特に断らない限り、ブロック３４は、ＶＩ行×（ｎ＋Ｖｃ−１）列のメッシュに従って配置されたＶＩ×（ｎ＋Ｖｃ−１）個のデータレジスタを含む。例えば、３つの並列接続の処理ユニットＵＴと次元５×５の近傍に関しては、７（＝３＋５−１）列×５行のレジスタのメッシュが必要である。また、ＶＩ個のデータレジスタの列３５がブロック３４に追加されてもよい。したがって処理ユニットＵＴによる近傍レジスタへのアクセスは処理ユニットＵＴの単一サイクル中にだけ無効にされる。次に、ブロック３１のデータのレジスタの列３５への複製は、整形用メモリのブロック３１が（ＶＩ−１）×Ｎｃ＋１個のデータを含むと始まる。また、ｎ個の並列接続の処理ユニットＵＴに関しては、データの処理はｎ個の新しいデータがブロック３１内に到達すると実行される。ｎ個の処理ユニットＵＴによる近傍レジスタへのアクセスもまた、各処理ユニットＵＴに組み込まれた入出力ポートを介し実行可能である。このとき、各処理ユニットＵＴの入出力ポートの接続部の数は、処理ユニットＵＴがアクセスを必要とする近傍レジスタの数にデータのサイズを掛けた数に等しい。同様に、記憶ユニットＵＭは、その入力の数がブロック３４の近傍レジスタの数に等しくその出力の数がｎ個の処理ユニットＵＴにより同時処理可能なデータの数に等しいマルチプレクサを含むことができる。各処理ユニットＵＴは、その接続部の数が処理ユニットＵＴにより同時処理可能なデータの数にデータのサイズを掛けた数に等しい入出力ポートを含む。
【００３０】
図８は、一組のタイムチャートにより、２つの並列接続の処理ユニットＵＴを含む計算タイルＴＣの例示的な管理を示す。第１のタイムチャート８１は速度Ｆａｒｃｈｉの処理ユニットＵＴのクロックを表す。第２のタイムチャート８２は速度Ｆｐｉｘｅｌの画素クロックを表す。画素クロックは、整形用メモリのブロック３１内に送られるストリームのデータの到着の速度を固定する。速度Ｆａｒｃｈｉはｐ×Ｆｐｉｘｅｌ（ｐ：正整数）に等しくてよい。図８によると、速度Ｆｐｉｘｅｌは速度Ｆａｒｃｈｉより４倍大きい。したがって、各処理ユニットＵＴは処理対象のデータム当たり４クロックサイクルを有する。第３のタイムチャート８３はシフトクロックを表す。このクロックは、画素クロックの２つのクロック時刻の１つの後に２つの連続クロック時刻８３１、８３２を生成する。シフトクロックの各クロック時刻では、ブロック３４のデータは１列分シフトされる。第４のタイムチャート８４はシフト画素クロックを表す。このクロックの速度は速度Ｆｐｉｘｅｌの半分にほぼ等しく、クロック時刻８４０はシフトクロックの２つのクロック時刻８３１、８３２の後に生成される。一般に、シフト画素クロックの速度は画素クロックの速度Ｆｐｉｘｅｌの１／ｎ倍に等しい。シフト画素クロックの各クロック時刻８４０では、データはブロック３１からブロック３５へ複製される。処理ユニットＵＴによる近傍レジスタへのアクセスは、シフト画素クロックの２つのクロック時刻８４０の間で可能である。
【００３１】
特定の実施形態によると、相互接続手段４はＮｂ＿ｂｕｓの数のデータバスを含む。Ｎｂ＿ｂｕｓは以下の関係式：
Ｎｂ＿ｂｕｓ＝Ｋ×（Ｆｐｉｘｅｌ／Ｆａｒｃｈｉ）＋１
により定義可能である。この実施形態は、その時間多重化比率Ｍｕｘ＿ｔが次の関係式：
Ｍｕｘ＿ｔ＝Ｆａｒｃｈｉ／Ｆｐｉｘｅｌ
により定義される時空多重化を実行することによりＫ個の計算タイルＴＣを互いに接続できるようにする。
【００３２】
時間多重化比率Ｍｕｘ＿ｔは等しい数の時間間隔を定義できるようにする。リードアクセスおよびライトアクセス許可は各時間間隔毎に定義可能である。例えば、５０ＭＨｚに等しい速度Ｆｐｉｘｅｌと２００ＭＨｚの速度Ｆａｒｃｈｉに関し、図１の４つの計算タイルＴＣは、相互接続手段４が最少２個（４×（５０／２００））のデータバスを含む場合、任意の順序で連鎖可能であり、計算タイルＴＣは比４（＝２００／５０）の時間多重化によりアドレス指定される。
【００３３】
この実施形態によると、各入出力ユニットＵＥＳは、Ｎｂ＿ｂｕｓの数のバスと時間多重化比率Ｍｕｘ＿ｔとの関数としてリードアクセスとライトアクセス許可を管理することができる。特に、各入出力ユニットＵＥＳは、当該の計算タイルＴＣがデータバスの１つであって各時間間隔毎にリードまたはライトアクセスが許可されるデータバス上にリードアクセスまたはライトアクセス許可を有する、時間間隔を決定できるようにするレジスタを含むことができる。入出力ユニットＵＥＳは例えばライトアクセス許可の管理のためにサイズｌｏｇ２（Ｍｕｘ＿ｔ）ビットのＮｂ＿ｂｕｓ個のレジスタを含む。ここで、ｌｏｇ２（ｘ）はリードアクセス許可の管理のための数ｘの２を基とする対数を戻す関数であり、サイズｌｏｇ２（Ｎｂ＿ｂｕｓ）ビットのレジスタはリード対象のバスの指標を規定し、サイズｌｏｇ２（Ｍｕｘ＿ｔ）ビットのレジスタは時間間隔を規定する。このような入出力ユニットＵＥＳの例示的な実施形態を図９に表す。入出力ユニットＵＥＳは、それぞれが２ビットの２つのレジスタ９１、９２を含む。レジスタ９１はバス４１上のライトアクセス許可を管理し、レジスタ９２バス４２上のライトアクセス許可を管理する。レジスタ９１、９２の内容は例えば比較器９３、９４により現在の時間間隔の値と比較され、等しい場合はデータの書き込みが当該のバス４１または４２上で許可される。入出力ユニットＵＥＳはまた、リード対象のバス４１または４２の指標を規定する１ビットのレジスタ９５と、読み取りの時間間隔を規定する２ビットのレジスタ９６と、を含む。レジスタ９６の内容もまた例えば比較器９７により現在の時間間隔と比較され、等しい場合はデータの読み取りが当該のバス４１または４２上で許可される。この実施形態は、各入出力ユニットＵＥＳが計算タイルＴＣとバス４１、４２との間のアクセス認可を個々に管理するという利点を発揮する。したがって集中制御機構は必要ない。各入出力ユニットＵＥＳのレジスタの値は、計算タイルＴＣの所望の連鎖の関数として、システムをブートするときに固定される。使用されていない計算タイルＴＣは、バス４１または４２上にリードまたはライト権を有しないように初期化される入出力ユニットＵＥＳのレジスタの値を有することができるようになる。
【００３４】
図１に表す特定の実施形態によると、各計算タイルＴＣはさらに、当該のタイル内に存在する処理ユニットＵＴと同数のデータレジスタを含む直列ブロックＢＳを含む。レジスタのサイズは少なくともストリームのデータのサイズに等しいサイズである。計算タイルＴＣの直列ブロックＢＳは、入力として処理ユニットまたはユニット群ＵＴに由来するデータを受信し、出力時に入出力ユニットＵＥＳに接続される。バス４１または４２の１つの上の書き込み許可中に、直列ブロック（ＢＳ）内に存在するデータはこのバス４１または４２上に連続的に送られる。
【００３５】
図１０に、生画像に対し実行される処理演算のデータストリーム処理装置１の例示的な実施形態を示す。生画像は例えば図１１に表すＢａｙｅｒフィルタ１１０から発生する。このようなフィルタにより、カラー画像は赤、緑、青のカラー画素のモザイクからなる。特に、モザイクは第１のタイプの行上の青と緑の画素の交番と第２のタイプの行上の緑と赤の画素の交番とからなり、これら行のタイプは緑の画素の対角線を形成するように交番される。本発明による装置１は特にこのようなデータに適合される。実際、各タイプの行毎に、異なる色であってもいくつかの画素を同時に処理できる計算タイルＴＣを構築することが可能である。図１０に表す一実施形態では、計算タイルＴＣは、一方では第１のコードを第１と第３の処理ユニットＵＴ１、ＵＴ３に供給する第１の制御ユニットＵＣ１と、他方では第２のコードを第２と第４の処理ユニットＵＴ２、ＵＴ４に供給する第２の制御ユニットＵＣ２と、を含む。第１のコードは画素の第１の色（例えば赤）に固有であり、第２のコードは画素の第２の色（例えば緑）に固有である。コードはまたコードセグメントに分割可能であり、このときアドレスマネジャーは処理される画素の色を制御ユニットＵＣ１、ＵＣ２に指示する。次に、処理ユニットＵＴ１、ＵＴ２、ＵＴ３、ＵＴ４は、受信する命令の関数として、近傍レジスタのブロック３４内に存在するデータに作用する。この例では、第１と第３の処理ユニットＵＴ１、ＵＴ３は赤い画素に作用し、第２と第４の処理ユニットＵＴ２、ＵＴ４は緑の画素に作用する。したがって計算タイルは、近傍レジスタのブロック３４の４つの画素を同時であるが個別に処理できるようにする。Ｂａｙｅｒフィルタ１１０の場合、行は２つの異なる色だけを含むので行当たり２つの制御ユニットＵＣ１、ＵＣ２で十分である。言うまでもなく、計算タイルはカラーフィルタの関数として適用化されてよい。
【００３６】
特定の実施形態によると、相互接続手段４上の送信データは、メタデータと呼ばれる処理対象のデータム（また追加情報も）を含むことができる。これらのメタデータはデータに関連する様々な情報の移送に使用可能である。データが画素に関係するビデオ画像処理の枠組み内では、メタデータムは例えば画素に適用されるノイズ補正または利得補正を表す値を含む。したがって同じ補正を画像のすべての画素に適用することができる。メタデータはまた、３つの値Ｒ、Ｇ、Ｂ（赤、緑、青）、画素に関連付けられる中間結果、あるいは画素の特性の関数としてプログラムを制御できるようにする情報に、関係してもよい。これらのメタデータの使用により、アルゴリズムをいくつかの部分に容易に分割し、マルチＳＩＭＤモードにおける様々な計算タイルＴＣ上でそれらを実行することができるようにする。送信データは様々な形式に従って分割可能である。分割フォーマットは、図１２に表されるようにフォーマットレジスタＭｒｉ内で規定される（この特定の場合は４個：Ｍｒ０、Ｍｒ１、Ｍｒ２、Ｍｒ３）。図１２に提示したケースでは、２４ビットデータワードは３つの部分１２１、１２２、１２３に分割された（但し、４つまでの分割が可能である）。これらのフォーマットレジスタは計算タイルＴＣ毎に定義され、それぞれの値はプログラムをロードするときに固定される。データへのアクセスはその後、図１３に提示されるようなマルチプレクサ１３１ａ、１３１ｂ、１３１ｃ、１３１ｄ、シフトレジスタ１３２ａ、１３２ｂ、および論理ゲート１３３ａ、１３３ｂ、１３３ｃ、１３３ｄ、１３７からなる機構により系統的に実行される。図１３に示すのは、位置レジスタＤｒｉ１３５を伴うフォーマットレジスタＭｒｉ１３４である。これらのレジスタＤｒｉ１３５は、プログラムのパラメータをロードするソフトウェアによりレジスタＭｒｉ１３４から導出される。これらのレジスタＤｒｉ１３５は、当該のメタデータムの開始位置を得られるようにする。フォーマットレジスタＭｒｉ１３４だけはプログラマにより与えられ、位置レジスタＤｒｉ１３５はフォーマットレジスタＭｒｉ１３４に基づき自動的に得られる。図１３の例では、Ｍｒ０はＤｒ０＝０と関連付けられ、Ｍｒ１はＤｒ１＝８と関連付けられ、Ｍｒ２はＤｒ２＝１６と関連付けられ、Ｍｒ３はＤｒ１＝２４と関連付けられる。通信ネットワークへのアクセスを可能にする２４ビットレジスタ１３６におけるメタデータの読み取りおよび書き込みのための機構の可能な実施形態を図１３に示す。
【００３７】
メタデータ読み取り部分に関し、フォーマットレジスタ１３４は、回復される現在の位置ＣＭｒにより制御されるマルチプレクサ１３１ｂにより、定義された位置が関係しないレジスタ１３６のビットを零に設定可能な論理積セル１３３ｄに結合される。次に、位置レジスタ１３５は、当該の位置に対し回復される終値である右シフト値を有するように、前の結果を適切な回数だけシフト可能なシフトレジスタ１３２ｂに結合される。
【００３８】
メタデータ書き込み部分に関し、書き込まれるデータムＶａｌは、書き込まれる現在位置ＣＭｗにより制御されるマルチプレクサに１３１ｃに結合される位置レジスタ１３５のおかげで、適正位置にシフトされ、マルチプレクサ１３１ｃ自体はシフトレジスタ１３２ａに結合される。当該ビットだけは、フォーマットレジスタ１３４のおかげでマスクされるビットを与えるマルチプレクサ１３１ａに結合される論理積セル１３３ａのおかげで、零に設定されない。最終的に、これらのビットは送信先レジスタ１３６内に既に存在するビットに連結される。この目的のため、フォーマットレジスタ１３４は論理否定セル１３７により反転され、次に、反転フォーマットレジスタとレジスタ１３６の間のセル１３３ｂにより論理積が実行される。これにより、関係がないビットに触れることなく新しいデータムとレジスタ１３６とを関連付けることができるようにする論理和セル１３３ｃを駆動する新しいマスクを作製できるようにする。
【００３９】
このメタデータの管理により、複素数または固定小数点数の計算が著しく楽になる。したがって、本発明による処理装置は例えばフーリエ領域（周波数領域）における処理演算に有利に使用可能である。本発明による処理装置はまた、固定小数点演算子の助けにより浮動小数点数のエミュレーションを加速するように適合可化されてよい。
【００４０】
マルチＳＩＭＤアーキテクチャでは、プロセッサに送られる命令を決定するためにメタデータを使用することができる。実際、補足情報（メタデータ）は、関連付けられるデータに対し実行される特定の処理を指示することができる。補足情報は、図１４の例により示すように、データワードが計算タイルＴＣに入ると直ちにデータワードから必要な情報を抽出し、マルチＳＩＭＤモードの処理ユニットＵＴを管理する制御ユニットＵＣにそれを送るのに十分である。この例では、近傍マネジャーがマルチプレクサ１４１を介し処理ユニットＵＴにデータを送るようにそれらを編成すると、メタデータムは抽出可能である。図１４に表されるように、入出力ユニットＵＥＳと制御ユニットＵＣ間の追加の通信１４２がメタデータムの転送を可能にする。
【００４１】
メタデータの転送を可能にするために、相互接続手段４は容量という意味で適合化されてよい。具体的には、メタデータのサイズの関数としてデータバス４１、４２のサイズを増加してもよい。また、本発明による装置１は、ストリームの各データムとメタデータムとを連結できるようにする挿入演算子を含むことができる。図１５はこのような挿入演算子１５０を表す。挿入演算子１５０は、その出力が出力バス１５３に結合される挿入ブロック１５２の入力に結合された入力バス１５１を含む。挿入演算子１５０はまたメタデータムを格納することができるようにするメモリ１５４を含むことができる。メモリ１５４はメタデータムの転送を可能にするように挿入ブロック１５２に結合される。このデータムのサイズは、相互接続手段４により転送可能なデータの最大サイズとストリームのデータのサイズとの差以下でなければならない。入力バス１５１のサイズはストリームのデータのサイズに適合されなければならなく、一方、出力バス１５３のサイズはメタデータムに連結されるストリームのデータのサイズに適合されなければならない。挿入演算子１５０は、データバス４１、４２の１つの上で、例えば映像センサ２と計算タイルＴＣとの間または２つの計算タイルＴＣの間に挿入可能である。一実施形態では、挿入演算子１５０は計算タイルＴＣにより具現される。このとき、計算タイルＴＣは、相補データムを含む記憶ユニットＵＭと、ストリームデータを相補データムに連結可能にするにする処理ユニットＵＴと、を含む。相補データムは例えば記憶ユニットＵＭのデータレジスタに格納される。この実施形態は、データストリームを処理するためのチェーンへの追加部品の挿入を回避するという利点を与える。これは、本発明による装置１のモジュラー性のおかげで可能になる。
付録
命令セット（４８ビット：１経路当たり２４ビット）
２４ビット命令語の構成
０．．２−>３つの条件ビット
３．．４−>２つのデータアクセスモードビット
５．．７−>演算を特定する３ビット
８．．１１−>４つの送信先レジスタビット
１２．．１５−>４つの送信元レジスタビット
１６．．２３−>８つの定数ビット
命令の接頭辞
Ｆ＿：フラグ＝１の場合に実行
ＮＦ＿：フラグ＝０の場合に実行
ｆＣ：桁上げに関するフラグの更新
ｆＺ：結果零に関するフラグの更新
ｆＳ：符号に関するフラグの更新（１  ｉｆ>０，０  ｉｆ<０）
命令の接尾辞
送信元の選択を可能にする。
ｒ（Ｄ，Ａ，Ｂ）：Ｒ［Ｄ］送信先レジスタ、Ｒ［Ａ］送信元レジスタ、Ｒ［Ｂ］送信元レジスタ
ｃ（Ｄ，Ａ，Ｃ）：Ｒ［Ｄ］送信先レジスタ、Ｒ［Ａ］送信元レジスタ、Ｃ定数
ｖ（Ｄ，Ａ，Ｖ）：Ｒ［Ｄ］送信先レジスタ、Ｒ［Ａ］送信元レジスタ、Ｎｅｉｇｈｂｏｒ［Ｖ］
引数Ｂの８ビットが"０．．<Ｖ>"の代わりに"１０．．．０<Ｖ>"のやり方で形成される場合、「レジスタＶにより格納される値は、近傍すなわちＮｅｉｇｈｂｏｒ［Ｒ［Ｖ］］ｍ（Ｄ，Ａ，Ｍ）として取られる。ここで、Ｒ［Ｄ］  送信先レジスタ、Ｒ［Ａ］  送信元レジスタ、Ｍ  ローカルメモリのメモリアドレス。
使用
ＶＬＩＭは２つの経路に対する作用を可能にする。
ＯＰｉ（Ｄｍ．．．）／ＯＰｊ（Ｄｎ）
但し、ｊ！＝ｉ、ｍ！＝ｎ
相補条件命令の場合以外：
Ｆ＿ＯＰ；ＦＬＡＧ＝１  ＮＦ＿ＯＰの場合、ノーオペレーション
ＦＬＡＧ＝０の場合、ノーオペレーション
したがって、同じ行上に書き込むことができる。
Ｆ＿ＯＰ（Ｄｍ．．．）／ＮＦ＿ＯＰ（Ｄｎ．．．）
フラグの値が何であっても１つだけが実際に実行される。
演算のリスト
−ＮＯＰ
ＰＲＥＦＩＸ：Ｆ＿ＮＦ＿＿
ＮＯＰ
Ｆ＿ＮＯＰ
ＮＦ＿ＮＯＰ
−ＬＤ
ＰＲＥＦＩＸ：Ｆ＿＿ＮＦ＿＿ｆＺ＿＿ｆＣ＿＿ｆＳ＿
ＬＤｒ（Ｄ，Ａ）：Ｒ［Ｄ］＝Ｒ［Ａ］
ＬＤｃ（Ｄ，Ｃ）：Ｒ［Ｄ］＝Ｃ；Ｃ  符号付き定数
ＬＤｖ（Ｄ，Ｖ）：Ｒ［Ｄ］＝Ｎｅｉｇ［Ｖ］
ＬＤｖ（Ｄ，Ｖ）；Ｒ［Ｄ］＝Ｎｅｉｇ［Ｒ［Ｖ］］
ＬＤｍ（Ｄ，Ｍ）；Ｒ［Ｄ］＝ＳＰ［Ｍ］
−ＡＤＤ；ＳＵＢ；ＭＵＬ
ＰＲＥＦＩＸ：Ｆ＿＿ＮＦ＿＿ｆＺ＿＿ｆＣ＿＿ｆＳ＿＿
２つの符号付き加算器が利用可能である。したがって経路への制約なしに同時に使用可能なＡＤＤ０とＡＤＤ１を有する。
ＰＲＥＦＩＸ：Ｆ＿＿ＮＦ＿＿ｆＺ＿＿ｆＣ＿＿ｆＳ＿
ＡＤＤ０ｒ（Ｄ，Ａ，Ｂ）：Ｒ［Ｄ］＝Ｒ［Ａ］＋Ｒ［Ｂ］
ＡＤＤ０ｃ（Ｄ，Ａ，Ｃ）：Ｒ［Ｄ］＝Ｒ［Ａ］＋Ｃ；Ｃ  符号付き定数
ＡＤＤ０ｖ（Ｄ，Ａ，Ｖ）：Ｒ［Ｄ］＝Ｒ［Ａ］＋Ｎｅｉｇ［Ｖ］
ＡＤＤ０ｖ（Ｄ，Ａ，−Ｖ）；Ｒ［Ｄ］＝Ｒ［Ａ］＋Ｎｅｉｇ［Ｒ［Ｖ］］
ＡＤＤ０ｍ（Ｄ，Ａ，Ｍ）；Ｒ［Ｄ］＝Ｒ［Ａ］＋ＳＰ［Ｍ］
ＤＩＴＴＯ  ｆｏｒ  ＡＤＤ０，ＳＵＢ０  ＳＵＢ１，ａｎｄ  ＭＵＬ；これらの演算はすべて符号付きである。
−シフト
ＰＲＥＦＩＸ：Ｆ＿＿ＮＦ＿＿ｆＺ＿＿ｆＣ＿＿ｆＳ＿＿
符号付きシフト演算子は、シフトの符号に従って値を右または左へシフトできるようにする。
０のシフトは代入（ａｓｓｉｇｎｍｅｎｔ）と等価である。
ＳＨＩＦＴｃ（Ｄ，Ａ，Ｃ）：
ｉｆ（Ｃ>０）
Ｒ［Ｄ］＝Ｒ［Ａ］<<Ｃ
ｉｆ（Ｃ<０）
Ｒ［Ｄ］＝Ｒ［Ａ］>>Ｃ
−ＩＮＶ
ＩＮＶｒ（Ｄ，Ａ）：Ｒ［Ｄ］＝−Ｒ［Ａ］
ＩＮＶｃ（Ｄ，Ｃ）：Ｒ［Ｄ］＝−Ｃ
ＩＮＶｖ（Ｄ，Ｖ）：Ｒ［Ｄ］＝−Ｎｅｉｇ［Ｖ］
ＩＮＶｖ（Ｄ，−Ｖ）：Ｒ［Ｄ］＝−Ｎｅｉｇ［Ｒ［Ｖ］］
ＩＮＶｍ（Ｄ，Ｍ）：Ｒ［Ｄ］＝−ＳＰ［Ｍ］
プログラムコード例
このコードは次の演算を実行する。
２×２近傍に関して、平均値>１２８の場合、Ｒ１を近傍の画素の平均値に設定し、Ｒ０を２５５に設定する。
画素が２５５にある場合、Ｒ２をインクリメントする（処理の終わりに画素カウント>１２８を有するために）。
１  ＃ｉｎｃｌｕｄｅ"ｍａｃｒｏｓ．ｈ"
２．ｉｎｉｔｃｏｄｅ
３  ＬＤｃ（Ｒ０，０）；／ＮＯＰ
４  ＬＤｃ（Ｒ１，０）；／ＮＯＰ
５  ＬＤｃ（Ｒ２，０）；／ＮＯＰ
６  ＬＤｃ（Ｒ３，０）；／ＮＯＰ
７  ＬＤｃ（Ｒ４，０）；／ＮＯＰ
８  ＬＤｃ（Ｒ５，０）；／ＮＯＰ
９  ＮＯＰ／ＮＯＰ
１０．ｐｉｘｅｌｃｏｄｅ０
１１  ＬＤｖ（Ｒ１，Ｖ０）／ＮＯＰ
１２  ＬＤｖ（Ｒ２，Ｖ１）／ＡＤＤ０ｖ（Ｒ１，Ｒ１，Ｖ０）
１３  ＡＤＤ０ｖ（Ｒ２，Ｒ２，Ｖ２）／ＡＤＤ１ｖ（Ｒ１，Ｒ１，Ｖ３）
１４  ＡＤＤ０（Ｒ１，Ｒ１，Ｒ２）／ＮＯＰ
１５  ＳＨＩＦＴｃ（Ｒ１，Ｒ１，−２）／ＮＯＰ
１６  ｆＳ＿ＳＵＢｃ（Ｒ７，Ｒ１，１２８）／ＮＯＰ
１７  Ｆ＿ＬＤｃ（Ｒ０，０）／ＮＦ＿ＬＤｃ（Ｒ０，２５５）；この例外的ケースでは、１つが実行され他は実行されないのでＬＤ  ２×を呼び出すことが可能である。
１８  ＮＦ＿ＡＤＤ０ｖ（Ｒ２，Ｒ２，１）／ＮＯＰ
１９  ＮＯＰ／ＮＯＰ
２０．ｐｉｘｅｌｃｏｄｅ１
２１．ｐｉｘｅｌｃｏｄｅ２
２２．ｐｉｘｅｌｃｏｄｅ３
ＶＬＩＭの２経路を有効利用する一方で書き込みが可能となるであろう。
１０．ｐｉｘｅｌｃｏｄｅ０
１１  ＬＤｖ（Ｒ１，Ｖ０）／ＮＦ＿ＡＤＤ０ｖ（Ｒ２，Ｒ２，１）
１２  ＬＤｖ（Ｒ２，Ｖ１）／ＡＤＤ０ｖ（Ｒ１，Ｒ１，Ｖ０）
１３  ＡＤＤ０ｖ（Ｒ２，Ｒ２，Ｖ２）／ＡＤＤ１ｖ（Ｒ１，Ｒ１，Ｖ３）
１４  ＡＤＤ０（Ｒ１，Ｒ１，Ｒ２）／ＮＯＰ
１５  ＳＨＩＦＴｃ（Ｒ１，Ｒ１，−２）／ＮＯＰ
１６  ｆＳ＿ＳＵＢｃ（Ｒ７，Ｒ１，１２８）／ＮＯＰ
１７  Ｆ＿ＬＤｃ（Ｒ０，０）／ＮＦ＿ＬＤｃ（Ｒ０，２５５）
【図１】
2012504264.tif 000003
【図２】
2012504264.tif 000004
【図３】
2012504264.tif 000005
【図４】
2012504264.tif 000006
【図５】
2012504264.tif 000007
【図６】
2012504264.tif 000008
【図７】
2012504264.tif 000009
【図８】
2012504264.tif 000010
【図９】
2012504264.tif 000011
【図１０】
2012504264.tif 000012
【図１１】
2012504264.tif 000013
【図１２】
2012504264.tif 000014
【図１３】
2012504264.tif 000015
【図１４】
2012504264.tif 000016
【図１５】
2012504264.tif 000017
【国際調査報告】
2012504264.tif 000018
2012504264.tif 000019
2012504264.tif 000020
2012504264.tif 000021
2012504264.tif 000022
2012504264.tif 000023
2012504264.tif 000024
2012504264.tif 000025
2012504264.tif 000026
2012504264.tif 000027