(57)【要約】  単一命令複数データ（ＳＩＭＤ）プロセッサ（１）は、複数の処理エレメント（ＰＥ０．．．ＰＥＮ）を含む処理エレメントアレイ（１０）と、動作可能にメモリ部（１４１．．．１４Ｎ）に分割され、各メモリ部は特定の処理エレメントに割り当てられている、メモリアレイ（１４）と、を備える。第１の処理エレメント（ＰＥＮ）は、この第１の処理エレメントに割り当てられたメモリアレイ（１４）の一部をアクセスし、かつ、第２の処理エレメントに割り当てられたメモリアレイの一部にもアクセスするように動作可能である。このようなアクセスは、アクセスされるべきメモリ位置に割り当てられた処理エレメントを示すインデックス値を用いて行なわれる。
2008512762.tif 000002
【特許請求の範囲】
【請求項１】
単一命令複数データ（ＳＩＭＤ：single instruction multiple data）プロセッサであって、
複数の処理エレメントを含む処理エレメントアレイと、
複数のメモリ部に動作可能に分割され、各メモリ部は特定の処理エレメントに割り当てられている、メモリアレイと、を備え、
第１の処理エレメントは、この第１の処理エレメントに割り当てられた前記メモリアレイの一部にアクセスし、かつ、第２の処理エレメントに割り当てられた前記メモリアレイの一部にアクセスするように動作可能であり、
このようなアクセスは、アクセスされるべきメモリ位置に割り当てられた処理エレメントを示すインデックス値を用いて行なわれる、
ことを特徴とするプロセッサ。
【請求項２】
前記インデックス値は、関連する前記処理エレメントおよび前記メモリアレイの前記一部におけるアドレスを示す、ことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記インデックス値は、前記第１の処理エレメントに相対して前記第２のエレメントの位置を示す、ことを特徴とする請求項１に記載のプロセッサ。
【請求項４】
各処理エレメントに対する、マルチプレクサをさらに備え、前記マルチプレクサは、データ経路を選択して、関連する前記処理エレメントにデータを転送するように動作可能であり、前記データ経路は、複数のメモリアレイ部から選択される、ことを特徴とする請求項１乃至請求項３のいずれかに記載のプロセッサ。
【請求項５】
コントローラおよびクロック信号生成器を有するデータ転送ユニットと、各処理エレメントに対する、マルチプレクサおよびレジスタと、を備え、
前記レジスタは、関連する前記処理エレメントにデータアイテムを供給し、かつ、関連する前記マルチプレクサからデータアイテムを受信するように、接続されており、
前記マルチプレクサは、前記インデックス値から独立して、複数のデータ入力のうちの１つを選択するように動作可能である、ことを特徴とする請求項１乃至請求項４のいずれかに記載のプロセッサ。
【請求項６】
複数の処理エレメントのＳＩＭＤアレイ内の処理エレメントの間でデータを伝達し、前記処理エレメントのそれぞれがメモリアレイに記憶されたデータをアクセスするように動作可能である方法であって、
前記メモリアレイの各部を、前記アレイ内の前記処理エレメントに割り当てる工程と、
前記アレイ内の第１の処理エレメントが、前記第１および第２の処理エレメントに割り当てられた前記メモリアレイの前記各部を、前記メモリアレイ部に割り当てられた前記処理エレメントを示すインデックス値を用いてアクセスする工程と、
を備えることを特徴とする方法。
【請求項７】
関連する前記処理エレメントに供給するためのデータは、マルチプレクサを用いて選択される、ことを特徴とする請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ（single instruction multiple data）プロセッサアーキテクチャにおける相互接続に関する。
【背景技術】
【０００２】
増大するマルチメディアアプリケーションの複雑さは、より高い計算性能の必要性を、絶え間なくもたらしている。この点に関して、データおよびタスクレベルの並列性を活用するメディアアクセラレータを使用することにより、並列処理を使用する汎用のＣＰＵ（central processing unit）およびＤＳＰ（digital signal processor）が開発されている。
【０００３】
しかし、このようなメディアアクセラレータは、高い性能の達成における従来のＣＰＵアーキテクチャの制限に対処する努力において、単なる拡張でしかない。その結果、解決策は、動作単位当たりの高い電力損失をもたらしている。潜在的により成功しているアプローチは、利用可能な完全なデータの並列性を活用して、電力効率が高いアーキテクチャを作り出している。このようなアーキテクチャの１つは、Ｘｅｔａｌ（例えば、ベルギーのゲント（Ghent, Belgium）における、ＡＣＩＶＳ２００２の議事録の、“スマートカメラ：アーキテクチャ的な挑戦（Smart Cameras: Architectural Challenge）”を参照されたい）であり、これは、単一命令複数データ（ＳＩＭＤ）処理の実例に基づいている。この実例は、大規模な並列性によるデータの局所性を保存し、電力消費の減少に重要な、命令およびアドレスデコーダなどのリソースの共有を可能にする。
【０００４】
図１は、ＳＩＭＤアーキテクチャを示すブロック図である。アーキテクチャ１は、処理エレメントアレイ１０を含み、処理エレメントアレイ１０は、複数の処理エレメントＰＥ−０．．．ＰＥ−Ｎを備える。処理エレメントＰＥ−０〜ＰＥ−Ｎは、入力ラインメモリ１２からデータを受信し、入力ラインメモリ１２自体は、入力前処理ユニット４０を介して、データ３を受信する。ＳＩＭＤアーキテクチャ１は、また、ワーキングメモリアレイ１４を含み、ワーキングメモリアレイ１４は、動作可能に、メモリ部に分割されている。各メモリ部は、処理エレメントアレイ１０における処理エレメントの特定の１つと関連する。アレイ１０内の処理エレメントは、ワーキングメモリアレイ１４から、およびこれに対して、データを転送することができ、処理エレメントによって受信された命令に従い、このデータを処理する。出力ラインメモリユニット１６が、出力前処理ユニット５０を介してデータを出力するために設けられている。
【０００５】
アレイ１０は、プログラムメモリ３０に記憶されたプログラムに従って動作する、グローバル制御プロセッサ２０によって制御される。制御プロセッサ２０は、取り出されたプログラムに従って、処理エレメントアレイに命令を供給するように動作する。
【０００６】
入力ラインメモリユニット１２は、入力データの直列−並列変換を提供し、一方、出力ラインメモリユニット１４は、出力データの並列−直列変換を提供する。画像処理分野においては、出力経路に直列プロセッサ（５０）を設けて、画像フレームにおいて、関連する事前に定義された領域から統計的情報を抽出することができる。この情報は、オートホワイトバランスおよび露出時間制御などの、適応的な画像処理に用いることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＳＩＭＤアーキテクチャ（および類似の並列処理マシン）における重要な問題は、処理エレメント間の相互通信の度合いである。通信チャンネルの数が多いほど、特定の信号処理アルゴリズムの実行が効率的となる。フィルタリングのようなアルゴリズムは、隣接するデータエレメントの範囲に対する基本的な重畳処理を伴っており、プロセッサ対プロセッサの通信チャンネルから恩恵を被る。
【０００８】
ＰＥごとのＮ個のデータエレメントの相互接続レベル（ほとんどの画像処理カーネルについて、Ｎ≧３である）を仮定すると、全てのＮ個のデータエレメントに対して、最小の待ち時間でアクセスさせるためには、ＰＥは、Ｎ個の通信チャンネルを必要とする。そして、Ｎ対１のスイッチ（マルチプレクサ）が、Ｎ個のチャンネルの１つをＰＥ入力に接続するために必要とされる。図２は、６つの隣接するデータ点からのＰＥアクセシングデータの論理通信経路を示している。これは、ＰＥとメモリの間で、非常に複雑な相互接続のネットワークをもたらすことが、容易に理解されるであろう。
【０００９】
実際に、通信の度合いが高いほど、および設計での処理エレメントの数が多いほど、物理的な設計は、シリコン面積および性能に関する最適な相互接続トポロジーを見出すための設計時間の点で、より複雑となる。相互接続ネットワークの複雑さを減少させることは、ＳＩＭＤアーキテクチャにおいて重要な問題である。この問題を首尾良く処理できないことは、通常、大規模な並列システムが有効となることを妨げる。
【００１０】
よって、費用的に効果的でかつ実用的なＰＥ−ＰＥ通信およびＰＥ−メモリ通信を可能にする方法論の必要性が存在する。
【課題を解決するための手段】
【００１１】
本発明の一態様によると、単一命令複数データ（ＳＩＭＤ：single instruction multiple data）プロセッサであって、複数の処理エレメントを含む処理エレメントアレイと、複数のメモリ部に動作可能に分割され、各メモリ部は特定の処理エレメントに割り当てられている、メモリアレイと、を備え、第１の処理エレメントは、この第１の処理エレメントに割り当てられたメモリアレイの一部にアクセスし、かつ、第２の処理エレメントに割り当てられたメモリアレイの一部にアクセスするように動作可能であり、このようなアクセスは、アクセスされるべきメモリ部に割り当てられた処理エレメントを示すインデックス値を用いて行なわれるプロセッサが、提供される。
【発明を実施するための形態】
【００１２】
本発明の実施形態は、先に考察したアーキテクチャおよび技術の欠点を軽減することが可能な、ＳＩＭＤアーキテクチャおよび技術を提供することができる。特に、本発明の実施形態は、データのＰＥ−ＰＥ相互通信を、ワーキングラインメモリアレイ１４を介して可能にすることに関係する。本発明の実施形態は、図１を参照して、かつ画像処理を参考にして説明され、画像処理では、処理エレメントが使用され、色および他の画像値を、表示装置上の画素に対して生成する。本開示において述べられる処理技術は、画像データ以外のデータにも適用できることが、容易に理解されるであろう。
【００１３】
ＰＥの数を、ラインごとの画素数よりも少なく制限することには、理由があり、例えば、シリコン効率のため、または、入力データ実体が、２×２画素以上である場合などである。同様の状況は、計算の要求を、完全に並列のＳＩＭＤアーキテクチャのＰＥよりも少ないＰＥによって満たすことができる応用においても生じ得る。
【００１４】
本発明の実施形態は、メモリインターリービング技術を活用し、この技術は、Ｎ対１スイッチおよび関連する相互接続の複雑さを、簡素な３対１スイッチに減少させることができる。このような３対１スイッチは、国際特許出願第２００２／０９３９０５号に開示されたものなどの、スタガーレイアウト（staggered layout）技術を用いて実施することができる。図３および図４は、ＰＥの数が、それぞれ、ラインごとの画素数の半分および４分の１である場合について、本発明を具現化するインターリーブされた画素記憶技術をそれぞれ示している。ＰＥのアレイへのインターフェイスは、入力および出力データラインによって示されている。両方の画像において、色（赤（Ｒ）、緑（Ｇ）、青（Ｂ））は、完全な画像ラインであり、その画素は、ＰＥの数に対して分割された列において適切に配置されている。
【００１５】
ＰＥ−ＰＥの隣接通信を可能にするために、ワーキングラインメモリアレイ１４は、どのような外部相互接続のコストも必要とせずに、既存のアドレッシング機構を使用する。処理エレメントの数が画素数の半分である最も簡素なケースである、図３に示されるように、メモリアレイ部１４０．．．１４９に、３つの画素値の２つの群が割り当てられることが分かる。各画素は、赤、緑および青の値（Ｒ，ＧおよびＢで示す）を有する。図３において、画素番号が、メモリアレイにおいて示されている。よって、画素０の値は、Ｒ０，Ｇ０およびＧ０で与えられ、画素１の値は、Ｒ１，Ｇ１およびＧ１で与えられる、などとなる。画素０および１に対する画素値は、第１メモリアレイ部１４０に割り当てられる。同様に、残存するワーキングラインメモリアレイ部には、それぞれの画素値の対が割り当てられる。
【００１６】
図４は、処理エレメントの数が、表示されるべき画素数の４分の１であるケースを示している。よって、各ワーキングラインメモリアレイ部１４０．．．１４９には、４つの画素のそれぞれに対して、赤、緑および青の値が割り当てられる。図４は、これを達成することができる方法を示している。
【００１７】
第１の処理エレメントが、隣接する（第２の）処理エレメントに割り当てられたメモリ部に記憶されたデータにアクセスするために、メモリアクセスは、第１の処理エレメントに割り当てられたメモリ部に相対して、データが取り出されるべきメモリ部を示すインデックス値を用いて、達成される。
【００１８】
図５は、適当なインデックス付けによって、ワーキングアレイ１４内で、どのようにしてＰＥ−ＰＥ通信が実現されるかを示している。ＰＥアキュムレータにメモリ位置をコピーする、簡素なＰＥタスクが、例として用いられる。（ａ）に示される、２つの画素インターリービングの場合、インデックス（０，１）を用いて、ＰＥに割り当てられる画素がアクセスされ、（−２，−１）および（２，３）を用いて、左および右ＰＥにそれぞれ割り当てられた画素がアクセスされる。同じアプローチを、（ｂ）における４画素インターリービング向けに示されるように、より高いインターリービング度合いに延長することができる。
【００１９】
図６は、図３，４および５において述べられている技術の１つの可能な実施を示している。各ＰＥ（ＰＥＮ−１，ＰＥＮ，ＰＥＮ＋１）は、関連するマルチプレクサＭＮ−１，ＭＮ，ＭＮ＋１を有する。マルチプレクサは、関連する処理エレメントに割り当てられたメモリアレイ部からデータを受信するように、かつ隣接する（左および右の）処理エレメントメモリアレイ部からデータを受信するようにも接続されている。図６において、ＰＥＮが、それ自身のメモリ部１４Ｎから、かつ左のＰＥ（ＰＥＮ−１）および右のＰＥ（ＰＥＮ＋１）にそれぞれ割り当てられたメモリ部１４Ｎ−１および１４Ｎ＋１から、データを受信できることが理解できる。従って、図５に示された値を用いて、正しいデータ経路を、各マルチプレクサを介して選択することができる。図５において、ＰＥ  Ｔａｓｋと示された列は、例としてのアキュムレータ値を示し、Ｅｆｆｅｃｔ＠ＰＥ１０およびＥｆｆｅｃｔ＠ＰＥ１４と示された列は、処理エレメント１０および１４でそれぞれ取り出された画素値を示している。ＰＥ  Ｍｕｘ  Ｓｅｌｅｃｔ列は、どのようにＰＥマルチプレクサが制御されるかを示している。
【００２０】
このメモリインターリービングアプローチは、ＰＥの数が、ラインごとのデータエレメントの数よりも、積分因数だけ小さいときに魅力的であることが証明される。しかし、（完全に並列なＳＩＭＤアーキテクチャの場合のように）ラインごとにデータエレメントとして多くのＰＥがある場合、インターリービングを行なうことはできず、その結果、ＰＥ間通信に関して、どのような利益もない。同じ技術を、異なる特定のインデックス値、例えば（−１，０，１）と共に、成功裏に用いることができる。技術は、特定の画像値に限定されない。
【００２１】
幸い、ＳＩＭＤアーキテクチャにおけるＰＥが多いほど、クロック速度がより遅くなるが、これは、アルゴリズム負荷が同じままだからである。このより遅い速度を活用して、時間分散された通信インターフェイスを実現し、必要なＰＥ−ＰＥ通信が提供される。基本的なアイディアは、Ｎシフタを使用して、１システムサイクル内にＮ回の左／右シフトを行なうことにより、データエレメントを、適当なＰＥに整列することである。最大の許容可能な数のシフト（Ｎｍａｘ）は、シフトごとに必要とされる時間（ｔｓｈｉｆｔ）、システムクロックの期間（Ｔｓｙｓｔ）およびＰＥがロード動作を行なうのにかかる時間（ｔｌｏａｄ）に依存する。
【数１】
2008512762.tif 000003
【００２２】
このアプローチの可能な実施が、図７に示されている。実施は、各処理エレメントおよびメモリアレイ部に対して、マルチプレクサＭおよびレジスタＲを含む。図７に示されるように、ＰＥ１は、関連するマルチプレクサＭ１と、レジスタＲ１とを有する。マルチプレクサおよびレジスタへのクロッキング信号を制御する、シフトコントローラ１０３を、設けることができる。このクロッキング信号（ｌｏｃａｌ＿ｃｌｏｃｋ）は、クロックユニット１０１によって供給される。メモリ部出力は、このメモリ部に関連するマルチプレクサと、隣接するマルチプレクサとに接続される。よって、メモリ部１（ＰＥ１）に対して、メモリ部Ｄ１からのデータ出力は、マルチプレクサＭ１に接続される。マルチプレクサの出力は、適切なレジスタＲ１に接続される。クロック信号ＣＬＫが、イネーブルされた場合、レジスタＲ１への入力は、出力Ｑ１からＰＥ１に出力される。レジスタは、従来のやり方で動作する。各レジスタ出力は、隣接するマルチプレクサにも供給され、例えば、マルチプレクサＭ１が、ＰＥ１向けに、メモリ部１（Ｄ１）ならびにレジスタＲ０およびＲ２の出力から入力を受信する。図７のデータ転送ユニットの動作は、次の通りである。ベースアドレスにおけるデータが、第１の局部クロックサイクルの間に、レジスタにロードされる。これに続いて、Ｎ個の局部クロックパルスが生成され、Ｎ回のシフトを生成する。シフト方向およびシフトの数は、コントローラによって用意される。これに続いて、コントローラは、次いで、クロック生成器をイネーブル／ディセーブルすることで、正しい動作を決定する。局部クロックの期間は、正しいステージの機能を可能にするように設定される。
【００２３】
ＰＥの数が、ラインごとのデータエレメントの数よりも小さい場合、シフタおよびメモリインターリービング技術を組み合わせて、ＰＥのアクセス範囲を最大化することができる。
【００２４】
シフタベースのアプローチは、加速領域を、ＩＣの小さな部分に閉じ込め、これにより、電力損失を節約し、このアプローチは、そうでなければ、全てのＰＥとグローバル相互接続とを加速することにより、複数のシフト−コピー動作を実行して、データエレメントを整列する、同じ機能を実現する必要がある。
【００２５】
シフタベースのアプローチは、基本的に、入力データ選択マルチプレクサを、ＰＥからメモリインターフェイスモジュールに移動する。
【００２６】
従って、本発明の実施形態は、費用効果的で実用的なＰＥ−ＰＥおよびＰＥ−メモリ通信の達成を可能にする方法論および技術を提供することができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、ＳＩＭＤ処理アーキテクチャを示すブロック図である。
【図２】図２は、図１のアーキテクチャ内のメモリ転送部を示すブロック図である。
【図３】図３は、本発明の一態様を具現化するインターリービング技術を示している。
【図４】図４は、本発明の一態様を具現化するインターリービング技術を示している。
【図５】図５は、本発明を具現化するインターリービング技術のためのＰＥアキュムレータおよび制御値を示している。
【図６】図６は、図３〜図５の技術の実施を示している。
【図７】図７は、本発明を具現化する他の技術を示している。
【図１】
2008512762.tif 000004
【図２】
2008512762.tif 000005
【図３】
2008512762.tif 000006
【図４】
2008512762.tif 000007
【図５】
2008512762.tif 000008
【図６】
2008512762.tif 000009
【図７】
2008512762.tif 000010
【国際調査報告】
2008512762.tif 000011
2008512762.tif 000012
2008512762.tif 000013