本発明は、SIMD(single instruction multiple data)プロセッサアーキテクチャにおける相互接続に関する。
増大するマルチメディアアプリケーションの複雑さは、より高い計算性能の必要性を、絶え間なくもたらしている。この点に関して、データおよびタスクレベルの並列性を活用するメディアアクセラレータを使用することにより、並列処理を使用する汎用のCPU(central processing unit)およびDSP(digital signal processor)が開発されている。
しかし、このようなメディアアクセラレータは、高い性能の達成における従来のCPUアーキテクチャの制限に対処する努力において、単なる拡張でしかない。その結果、解決策は、動作単位当たりの高い電力損失をもたらしている。潜在的により成功しているアプローチは、利用可能な完全なデータの並列性を活用して、電力効率が高いアーキテクチャを作り出している。このようなアーキテクチャの1つは、Xetal(例えば、ベルギーのゲント(Ghent, Belgium)における、ACIVS2002の議事録の、“スマートカメラ:アーキテクチャ的な挑戦(Smart Cameras: Architectural Challenge)”を参照されたい)であり、これは、単一命令複数データ(SIMD)処理の実例に基づいている。この実例は、大規模な並列性によるデータの局所性を保存し、電力消費の減少に重要な、命令およびアドレスデコーダなどのリソースの共有を可能にする。
図1は、SIMDアーキテクチャを示すブロック図である。アーキテクチャ1は、処理エレメントアレイ10を含み、処理エレメントアレイ10は、複数の処理エレメントPE−0...PE−Nを備える。処理エレメントPE−0〜PE−Nは、入力ラインメモリ12からデータを受信し、入力ラインメモリ12自体は、入力前処理ユニット40を介して、データ3を受信する。SIMDアーキテクチャ1は、また、ワーキングメモリアレイ14を含み、ワーキングメモリアレイ14は、動作可能に、メモリ部に分割されている。各メモリ部は、処理エレメントアレイ10における処理エレメントの特定の1つと関連する。アレイ10内の処理エレメントは、ワーキングメモリアレイ14から、およびこれに対して、データを転送することができ、処理エレメントによって受信された命令に従い、このデータを処理する。出力ラインメモリユニット16が、出力前処理ユニット50を介してデータを出力するために設けられている。
アレイ10は、プログラムメモリ30に記憶されたプログラムに従って動作する、グローバル制御プロセッサ20によって制御される。制御プロセッサ20は、取り出されたプログラムに従って、処理エレメントアレイに命令を供給するように動作する。
入力ラインメモリユニット12は、入力データの直列−並列変換を提供し、一方、出力ラインメモリユニット14は、出力データの並列−直列変換を提供する。画像処理分野においては、出力経路に直列プロセッサ(50)を設けて、画像フレームにおいて、関連する事前に定義された領域から統計的情報を抽出することができる。この情報は、オートホワイトバランスおよび露出時間制御などの、適応的な画像処理に用いることができる。
SIMDアーキテクチャ(および類似の並列処理マシン)における重要な問題は、処理エレメント間の相互通信の度合いである。通信チャンネルの数が多いほど、特定の信号処理アルゴリズムの実行が効率的となる。フィルタリングのようなアルゴリズムは、隣接するデータエレメントの範囲に対する基本的な重畳処理を伴っており、プロセッサ対プロセッサの通信チャンネルから恩恵を被る。
PEごとのN個のデータエレメントの相互接続レベル(ほとんどの画像処理カーネルについて、N≧3である)を仮定すると、全てのN個のデータエレメントに対して、最小の待ち時間でアクセスさせるためには、PEは、N個の通信チャンネルを必要とする。そして、N対1のスイッチ(マルチプレクサ)が、N個のチャンネルの1つをPE入力に接続するために必要とされる。図2は、6つの隣接するデータ点からのPEアクセシングデータの論理通信経路を示している。これは、PEとメモリの間で、非常に複雑な相互接続のネットワークをもたらすことが、容易に理解されるであろう。
実際に、通信の度合いが高いほど、および設計での処理エレメントの数が多いほど、物理的な設計は、シリコン面積および性能に関する最適な相互接続トポロジーを見出すための設計時間の点で、より複雑となる。相互接続ネットワークの複雑さを減少させることは、SIMDアーキテクチャにおいて重要な問題である。この問題を首尾良く処理できないことは、通常、大規模な並列システムが有効となることを妨げる。
よって、費用的に効果的でかつ実用的なPE−PE通信およびPE−メモリ通信を可能にする方法論の必要性が存在する。
本発明の一態様によると、単一命令複数データ(SIMD:single instruction multiple data)プロセッサであって、複数の処理エレメントを含む処理エレメントアレイと、複数のメモリ部に動作可能に分割され、各メモリ部は特定の処理エレメントに割り当てられている、メモリアレイと、を備え、第1の処理エレメントは、この第1の処理エレメントに割り当てられたメモリアレイの一部にアクセスし、かつ、第2の処理エレメントに割り当てられたメモリアレイの一部にアクセスするように動作可能であり、このようなアクセスは、アクセスされるべきメモリ部に割り当てられた処理エレメントを示すインデックス値を用いて行なわれるプロセッサが、提供される。
発明を実施するための形態
本発明の実施形態は、先に考察したアーキテクチャおよび技術の欠点を軽減することが可能な、SIMDアーキテクチャおよび技術を提供することができる。特に、本発明の実施形態は、データのPE−PE相互通信を、ワーキングラインメモリアレイ14を介して可能にすることに関係する。本発明の実施形態は、図1を参照して、かつ画像処理を参考にして説明され、画像処理では、処理エレメントが使用され、色および他の画像値を、表示装置上の画素に対して生成する。本開示において述べられる処理技術は、画像データ以外のデータにも適用できることが、容易に理解されるであろう。
PEの数を、ラインごとの画素数よりも少なく制限することには、理由があり、例えば、シリコン効率のため、または、入力データ実体が、2×2画素以上である場合などである。同様の状況は、計算の要求を、完全に並列のSIMDアーキテクチャのPEよりも少ないPEによって満たすことができる応用においても生じ得る。
本発明の実施形態は、メモリインターリービング技術を活用し、この技術は、N対1スイッチおよび関連する相互接続の複雑さを、簡素な3対1スイッチに減少させることができる。このような3対1スイッチは、国際特許出願第2002/093905号に開示されたものなどの、スタガーレイアウト(staggered layout)技術を用いて実施することができる。図3および図4は、PEの数が、それぞれ、ラインごとの画素数の半分および4分の1である場合について、本発明を具現化するインターリーブされた画素記憶技術をそれぞれ示している。PEのアレイへのインターフェイスは、入力および出力データラインによって示されている。両方の画像において、色(赤(R)、緑(G)、青(B))は、完全な画像ラインであり、その画素は、PEの数に対して分割された列において適切に配置されている。
PE−PEの隣接通信を可能にするために、ワーキングラインメモリアレイ14は、どのような外部相互接続のコストも必要とせずに、既存のアドレッシング機構を使用する。処理エレメントの数が画素数の半分である最も簡素なケースである、図3に示されるように、メモリアレイ部140...149に、3つの画素値の2つの群が割り当てられることが分かる。各画素は、赤、緑および青の値(R,GおよびBで示す)を有する。図3において、画素番号が、メモリアレイにおいて示されている。よって、画素0の値は、R0,G0およびG0で与えられ、画素1の値は、R1,G1およびG1で与えられる、などとなる。画素0および1に対する画素値は、第1メモリアレイ部140に割り当てられる。同様に、残存するワーキングラインメモリアレイ部には、それぞれの画素値の対が割り当てられる。
図4は、処理エレメントの数が、表示されるべき画素数の4分の1であるケースを示している。よって、各ワーキングラインメモリアレイ部140...149には、4つの画素のそれぞれに対して、赤、緑および青の値が割り当てられる。図4は、これを達成することができる方法を示している。
第1の処理エレメントが、隣接する(第2の)処理エレメントに割り当てられたメモリ部に記憶されたデータにアクセスするために、メモリアクセスは、第1の処理エレメントに割り当てられたメモリ部に相対して、データが取り出されるべきメモリ部を示すインデックス値を用いて、達成される。
図5は、適当なインデックス付けによって、ワーキングアレイ14内で、どのようにしてPE−PE通信が実現されるかを示している。PEアキュムレータにメモリ位置をコピーする、簡素なPEタスクが、例として用いられる。(a)に示される、2つの画素インターリービングの場合、インデックス(0,1)を用いて、PEに割り当てられる画素がアクセスされ、(−2,−1)および(2,3)を用いて、左および右PEにそれぞれ割り当てられた画素がアクセスされる。同じアプローチを、(b)における4画素インターリービング向けに示されるように、より高いインターリービング度合いに延長することができる。
図6は、図3,4および5において述べられている技術の1つの可能な実施を示している。各PE(PEN−1,PEN,PEN+1)は、関連するマルチプレクサMN−1,MN,MN+1を有する。マルチプレクサは、関連する処理エレメントに割り当てられたメモリアレイ部からデータを受信するように、かつ隣接する(左および右の)処理エレメントメモリアレイ部からデータを受信するようにも接続されている。図6において、PENが、それ自身のメモリ部14Nから、かつ左のPE(PEN−1)および右のPE(PEN+1)にそれぞれ割り当てられたメモリ部14N−1および14N+1から、データを受信できることが理解できる。従って、図5に示された値を用いて、正しいデータ経路を、各マルチプレクサを介して選択することができる。図5において、PE Taskと示された列は、例としてのアキュムレータ値を示し、Effect@PE10およびEffect@PE14と示された列は、処理エレメント10および14でそれぞれ取り出された画素値を示している。PE Mux Select列は、どのようにPEマルチプレクサが制御されるかを示している。
このメモリインターリービングアプローチは、PEの数が、ラインごとのデータエレメントの数よりも、積分因数だけ小さいときに魅力的であることが証明される。しかし、(完全に並列なSIMDアーキテクチャの場合のように)ラインごとにデータエレメントとして多くのPEがある場合、インターリービングを行なうことはできず、その結果、PE間通信に関して、どのような利益もない。同じ技術を、異なる特定のインデックス値、例えば(−1,0,1)と共に、成功裏に用いることができる。技術は、特定の画像値に限定されない。
幸い、SIMDアーキテクチャにおけるPEが多いほど、クロック速度がより遅くなるが、これは、アルゴリズム負荷が同じままだからである。このより遅い速度を活用して、時間分散された通信インターフェイスを実現し、必要なPE−PE通信が提供される。基本的なアイディアは、Nシフタを使用して、1システムサイクル内にN回の左/右シフトを行なうことにより、データエレメントを、適当なPEに整列することである。最大の許容可能な数のシフト(N
max)は、シフトごとに必要とされる時間(t
shift)、システムクロックの期間(T
syst)およびPEがロード動作を行なうのにかかる時間(t
load)に依存する。
このアプローチの可能な実施が、図7に示されている。実施は、各処理エレメントおよびメモリアレイ部に対して、マルチプレクサMおよびレジスタRを含む。図7に示されるように、PE1は、関連するマルチプレクサM1と、レジスタR1とを有する。マルチプレクサおよびレジスタへのクロッキング信号を制御する、シフトコントローラ103を、設けることができる。このクロッキング信号(local_clock)は、クロックユニット101によって供給される。メモリ部出力は、このメモリ部に関連するマルチプレクサと、隣接するマルチプレクサとに接続される。よって、メモリ部1(PE1)に対して、メモリ部D1からのデータ出力は、マルチプレクサM1に接続される。マルチプレクサの出力は、適切なレジスタR1に接続される。クロック信号CLKが、イネーブルされた場合、レジスタR1への入力は、出力Q1からPE1に出力される。レジスタは、従来のやり方で動作する。各レジスタ出力は、隣接するマルチプレクサにも供給され、例えば、マルチプレクサM1が、PE1向けに、メモリ部1(D1)ならびにレジスタR0およびR2の出力から入力を受信する。図7のデータ転送ユニットの動作は、次の通りである。ベースアドレスにおけるデータが、第1の局部クロックサイクルの間に、レジスタにロードされる。これに続いて、N個の局部クロックパルスが生成され、N回のシフトを生成する。シフト方向およびシフトの数は、コントローラによって用意される。これに続いて、コントローラは、次いで、クロック生成器をイネーブル/ディセーブルすることで、正しい動作を決定する。局部クロックの期間は、正しいステージの機能を可能にするように設定される。
PEの数が、ラインごとのデータエレメントの数よりも小さい場合、シフタおよびメモリインターリービング技術を組み合わせて、PEのアクセス範囲を最大化することができる。
シフタベースのアプローチは、加速領域を、ICの小さな部分に閉じ込め、これにより、電力損失を節約し、このアプローチは、そうでなければ、全てのPEとグローバル相互接続とを加速することにより、複数のシフト−コピー動作を実行して、データエレメントを整列する、同じ機能を実現する必要がある。
シフタベースのアプローチは、基本的に、入力データ選択マルチプレクサを、PEからメモリインターフェイスモジュールに移動する。
従って、本発明の実施形態は、費用効果的で実用的なPE−PEおよびPE−メモリ通信の達成を可能にする方法論および技術を提供することができる。
図1は、SIMD処理アーキテクチャを示すブロック図である。
図2は、図1のアーキテクチャ内のメモリ転送部を示すブロック図である。
図3は、本発明の一態様を具現化するインターリービング技術を示している。
図4は、本発明の一態様を具現化するインターリービング技術を示している。
図5は、本発明を具現化するインターリービング技術のためのPEアキュムレータおよび制御値を示している。
図6は、図3〜図5の技術の実施を示している。
図7は、本発明を具現化する他の技術を示している。