(57)【要約】  プロセッサアレイは、プロセッサ要素（２）と、プロセッサ要素（２）によりパラレルにアクセス可能なパラレル接続されたメモリ（４）とを有する。分離したシリアルモジュール（３０）は、ルックアップテーブルモジュール（３０）の形式などにより追加的な機能を提供する。シリアルモジュール（３）は、モジュール（３０）に入力される各データラインをシリアルに処理する。処理は、適切なプログラミングステップを利用して、プロセッサ要素（２）においてパラレルに継続することが可能である。
2009507292.tif 000002
【特許請求の範囲】
【請求項１】
各データラインをパラレルに処理する複数のプロセッサ要素と、
前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、
シリアル入力と出力とを有し、前記シリアル入力において入力されたデータラインに対して、前記データラインを変更するための処理を実行し、結果を変更されたデータラインとして前記シリアル出力に出力するシリアルモジュールと、
前記プロセッサ要素とメモリからのデータラインをシリアルに前記シリアル入力に提供し、前記処理後に前記シリアル出力から前記プロセッサ要素とメモリに前記変更されたデータラインを返す手段と、
を有するプロセッサアレイ。
【請求項２】
前記シリアルモジュールは、ルックアップテーブルモジュール、ルックアップテーブル処理、Ｈｕｆｆｍａｎ、算術若しくはランレングス符号化モジュール又はデータへの限定アクセスを可能にする限定アクセスモジュールである、請求項１記載のプロセッサアレイ。
【請求項３】
前記シリアルモジュールは、前記処理としてルックアップテーブル処理を実行するよう構成されるルックアップテーブルモジュールである、請求項２記載のプロセッサアレイ。
【請求項４】
当該プロセッサアレイは、
前記複数のプロセッサ要素をパラレルに使用して各データラインを処理し、
前記プロセッサ要素におけるデータラインの処理中に、前記プロセッサ要素が前記変更されたデータラインを要求する前に前記変更されたデータラインが返されるように、前記シリアルモジュールにおいて次のデータラインに対する前記処理を実行する、
よう構成される、請求項１乃至３何れか一項記載のプロセッサアレイ。
【請求項５】
当該プロセッサアレイは、
ルックアップテーブル処理のｋ番目のデータラインを決定し、
前記決定されたｋ番目のデータラインに対して処理を指示し、
前の（ｋ−１）番目のデータラインに対して実行された処理の結果を処理し、
すべてのデータラインの処理が完了するまで、前記決定、指示及び処理の各ステップを繰り返す、
ことによって、複数のデータラインを処理するよう構成される、請求項１乃至４何れか一項記載のプロセッサアレイ。
【請求項６】
前記データラインを提供する手段は、前記メモリのデータラインに直接アクセスし、前記処理の結果を前記メモリに格納するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラであり、
前記ＤＭＡコントローラは、前記シリアルモジュールが前記処理要素における処理の継続中にシリアルに入力されたデータラインに対して処理を実行することが可能となるように、前記シリアルモジュールのシリアル入力とシリアル出力とに接続される、請求項１乃至５何れか一項記載のプロセッサアレイ。
【請求項７】
前記データラインを提供する手段は、少なくとも１つのシフトレジスタを有するシフトレジスタユニットを有し、
前記シフトレジスタユニットは、シリアル出力とシリアル入力とを有し、
前記シリアル入力は、前記処理テーブルモジュールのシリアル出力に接続され、
前記シリアル出力は、前記シリアルモジュールのシリアル入力に接続され、
前記メモリは、前記シフトレジスタユニットのデータにパラレルにアクセス可能である、請求項１乃至６何れか一項記載のプロセッサアレイ。
【請求項８】
当該プロセッサアレイは、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサアレイである、請求項１乃至７何れか一項記載のプロセッサアレイ。
【請求項９】
複数のプロセッサ要素と、前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、シリアルモジュールとを有するプロセッサアレイの動作方法であって、
前記複数のプロセッサ要素を使用してデータラインを処理するステップと、
前記プロセッサ要素におけるデータラインの処理中に、次のデータラインを前記処理要素とメモリから前記シリアルモジュールにシリアル送信するステップと、
変更された次のデータラインを生成するため、前記シリアルモジュールにおける次のデータラインに対する処理を実行するステップと、
前記変更された次のデータラインを前記シリアルモジュールから前記プロセッサ要素とメモリとに返すステップと、
前記シリアルモジュールにおける次のデータラインに対する処理の実行とパラレルに、前記プロセッサ要素を利用して各データラインを処理するため上記各ステップを繰り返すステップと、
を有する方法。
【請求項１０】
前記処理するステップは、各ｋ番目のデータラインに対して、
シリアル処理のためのｋ番目のデータラインを決定するステップと、
前記決定されたｋ番目のデータラインに対するシリアル処理を指示するステップと、
前の（ｋ−１）番目のデータラインに対して実行されたシリアル処理の結果を処理するステップと、
すべてのデータラインの処理が完了するまで、前記決定、指示及び処理の各ステップを繰り返すステップと、
を実行する、請求項９記載の方法。
【請求項１１】
前記処理は、ルックアップテーブル処理、Ｈｕｆｆｍａｎ、算術若しくはランレングス符号化処理又はデータへの限定アクセスを可能にする限定アクセス処理である、請求項９又は１０記載の方法。
【請求項１２】
前記処理は、ルックアップテーブル処理である、請求項１１記載の方法。
【請求項１３】
請求項９乃至１２何れか一項記載の方法を、複数のプロセッサ要素と、前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、ルックアップテーブルモジュールとを有するプロセッサアレイに実行させるよう構成されるコンピュータプログラムコード手段を有するコンピュータプログラム。
【請求項１４】
データキャリアに記録された請求項１３記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサアレイに関し、限定するものではないが特に、分離したシリアルモジュール、特にＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）モジュールを備えたＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）データプロセッサアレイと、当該プロセッサアレイの動作方法及び動作コンピュータプログラムとに関する。
【背景技術】
【０００２】
ＳＩＭＤ処理アレイでは、複数の処理要素（ＰＥ）のそれぞれが、共通の命令ストリームから同一の命令を受け取り、ローカルデータと呼ばれる当該処理要素に固有のデータに基づき命令を実行する。このような処理アレイは、例えば、画像処理の分野において行われる同一の処理を同時に複数のデータアイテムに実行する繰り返しの多いタスクに適している。
【０００３】
図１は、複数の処理要素２と当該要素により共有されるメモリ４とを備えた従来のＳＩＭＤアレイを示す。命令入力６は、すべての処理要素に対してパラレルに命令を提供し、すなわち、すべての要素が同一の命令を実行する。しかしながら、これらの要素はメモリ４の各データをパラレルにアクセスする。
【０００４】
しかしながら、ＳＩＭＤ処理アレイは、例えば、ルックアップテーブル処理の実行時など、処理がデータに依存する場合には特に効率性が低くなる。このような場合、ルックアップテーブルがメモリ４に格納される場合、各プロセッサは、同時にメモリの各部分へのアクセスを要求する可能性があり、それは、試行されるシーケンシャルなアクセスのためパフォーマンスを低減する。このため、いくつかのアーキテクチャでは、特にＳＩＭＤアーキテクチャでは、ルックアップテーブル処理は機能的に計算されることとなり、これは、多数の処理を必要とする可能性がある。
【０００５】
この問題を解消する１つのアプローチは、ＵＳ６，６６５，７６８（Ｒｅｄｆｏｒｄ）に記載されている。このアプローチでは、単一のメモリバンクが複数のプロセッサによりアクセスされる。しかしながら、これは、ルックアップテーブルの複数のコピーが複数のメモリバンクに格納されるという欠点を有している。複数のメモリバンクが、各処理要素によりパラレルにアクセス可能である。各処理要素は、バンクの１つを選択可能な識別値を有し、これにより、スピードの向上を図ることができる。
【０００６】
改良されたルックアップテーブルを処理するための処理アレイが、ＷＯ２００５／０１７７６５（Ｐｈｉｌｉｐｓ）に記載されている。この処理アレイの簡単化されたバージョンが、図２に簡単化された形式により示されている。各処理要素２は、算術論理ユニット１０と、当該処理要素２に専用の複数の記憶要素１２とを有する。処理要素は、内部のアキュミュレータ１６と共に、係数入力１４と共通命令入力６とを有する。各処理要素はまた、各種マルチプレクサと算術論理ユニットとを有するが、これらは、簡単化のため図２では省略されている。
【０００７】
データアイテムは、係数入力１４によりインデックス化された記憶要素のアキュミュレータにデータを格納するため、命令入力も適切な命令と係数入力にインデックスとを供給することによって、処理要素２の記憶要素１２の１つに格納することができる。他方、データは、係数入力によりインデックス化された記憶要素からアキュミュレータにロードすることができる。係数入力１４によりインデックス化された記憶要素１２からのデータがまた、アキュミュレータ１６におけるデータと乗算することができる。
【０００８】
ルックアップテーブル処理のため正しいデータを記憶要素にロードするための他のいくつかの方法が、ＷＯ２００５／０１７７６５に記載されている。データをロードした後、アキュミュレータ１６のデータは、記憶要素の１つを選択し、対応する記憶要素に格納されているデータを直接的に又は内部のレジスタに出力するためのインデックスとして利用可能である。
【０００９】
このため、ＷＯ２００５／０１７７６５の処理アレイは３つの方法により動作可能である。第１に、各処理要素は、通常のアレイ装置についてと同様に、配信された命令に基づきローカルデータに対して同一の命令を実行することが可能である。第２に、各処理要素は、係数入力に供給される異なる係数によってであるが、ローカルデータに対して同一の命令を実行することが可能である。第３に、各処理要素は、ルックアップテーブルにおいて決定される機能を実行することが可能である。従って、ＷＯ２００５／０１７７６５の処理アレイは、データに依存した処理において向上したパフォーマンスによるＳＩＭＤ処理の効果を提供することができる。
【００１０】
しかしながら、図２の構成と同様に、各処理要素にローカルメモリを設けることは、図１の構成と同様に、より多数のプロセッサにわたる従来のワイドなメモリよりはるかに大きなシリコンエリアを占有する。さらに、このコンプレクシティの増大は、アドレスデコーダなどの各処理要素においてより大きなオーバヘッドを要求する。
【００１１】
このコンプレクシティは、間接的なアドレス処理によるＳＩＭＤ装置が高価なものとなりうることを意味する。
【００１２】
さらに、パラレルなルックアップテーブル処理のケースでは、ルックアップテーブルを各処理要素の記憶要素に格納する必要がある。実際には、各処理要素が大きなルックアップテーブルの格納を可能にするのに十分な記憶位置を提供することはできない。
【００１３】
同じ問題が、パラレル処理アレイに追加される他のタイプの追加的な処理について生じる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
従って、追加的な機能を提供するためのより改良されたパラレルな処理アレイが必要とされる。
【課題を解決するための手段】
【００１５】
本発明によると、各データラインをパラレルに処理する複数のプロセッサ要素と、前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、シリアル入力と出力とを有し、前記シリアル入力において入力されたデータラインに対して、前記データラインを変更するための処理を実行し、結果を変更されたデータラインとして前記シリアル出力に出力するシリアルモジュールと、前記プロセッサ要素とメモリからのデータラインをシリアルに前記シリアル入力に提供し、前記処理後に前記シリアル出力から前記プロセッサ要素とメモリに前記変更されたデータラインを返す手段とを有するプロセッサアレイが提供される。
【００１６】
前記シリアルモジュールは、ルックアップテーブルモジュールであってもよい。
【００１７】
各実施例では、前記データラインを提供する手段は、モジュールが前記処理要素における処理の継続中に処理を実行することが可能となるように、前記メモリのデータラインに直接アクセスし、前記処理の結果を前記メモリに格納するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラである。
【００１８】
他の実施例では、前記データラインを提供する手段は、少なくとも１つのシフトレジスタを有するシフトレジスタユニットを有し、前記シフトレジスタユニットは、シリアル出力とシリアル入力とを有し、前記シリアル入力は、前記処理テーブルモジュールのシリアル出力に接続され、前記シリアル出力は、前記シリアルモジュールのシリアル入力に接続され、前記メモリは、前記シフトレジスタユニットのデータにパラレルにアクセス可能である。
【００１９】
当該プロセッサアレイは、特にＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサアレイであってもよい。
【００２０】
あるいは、本発明は、ＭＩＭＤ（Ｍｕｌｔｉｐｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサアレイ又はロックステップモードで動作するＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）プロセッサなどを含む他のマルチプロセッサ構成に適用されてもよい。
【００２１】
他の特徴では、本発明は、複数のプロセッサ要素と、前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、シリアルモジュールとを有するプロセッサアレイの動作方法であって、前記複数のプロセッサ要素を使用してデータラインを処理するステップと、前記プロセッサ要素におけるデータラインの処理中に、次のデータラインを前記処理要素とメモリから前記シリアルモジュールにシリアル送信するステップと、変更された次のデータラインを生成するため、前記シリアルモジュールにおける次のデータラインに対する処理を実行するステップと、前記変更された次のデータラインを前記シリアルモジュールから前記プロセッサ要素とメモリとに返すステップと、前記シリアルモジュールにおける次のデータラインに対する処理の実行とパラレルに、前記プロセッサ要素を利用して各データラインを処理するため上記各ステップを繰り返すステップとを有する方法に関する。
【００２２】
これは、パイプライン化された処理を実現する。
【００２３】
他の特徴では、本発明は、上記方法を、複数のプロセッサ要素と、前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、ルックアップテーブルモジュールとを有するプロセッサアレイに実行させるよう構成されるコンピュータプログラムコード手段を有するコンピュータプログラムに関する。
【発明を実施するための最良の形態】
【００２４】
図３を参照するに、本発明によるプロセッサアレイは、複数のプロセッサ要素２と、各プロセッサ要素によりパラレルにアクセス可能なメモリ４と、共通の命令入力６とを有する。これらの特徴は、図１に示される従来技術による構成のものと類似している。プロセッサ要素の個数は、以下においてＮにより参照される。ここで、Ｎは１より大きな正の整数である。
【００２５】
中央コントローラ８が、プロセッサアレイを制御するのに設けられる。
【００２６】
ルックアップテーブルモジュール３０の形式によるシリアルモジュールに、メモリ４に接続されたＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ３９を介したメモリ４への直接的なアクセスと、ルックアップテーブルモジュール３０のシリアルデータ出力３６及びシリアルデータ入力３４への直接的なアクセスが提供される。制御入力３２が提供される。ルックアップテーブルモジュール３０内のルックアップテーブルメモリ３８が、１以上のルックアップテーブルを格納するため設けられる。
【００２７】
ルックアップテーブルモジュール３０は、制御入力３２を介し制御され、シリアルデータ入力３４を介しデータを受信し、出力３６を介し処理されたデータを出力する。中央コントローラ８は、プロセッサ及びルックアップテーブルモジュールに命令を提供する。中央コントローラは、新たなルックアップテーブルのルックアップテーブルメモリ３８への格納を指示することができる。
【００２８】
ルックアップテーブルモジュール３０は、シリアルデータ入力３４を介しシリアルにデータラインを受信し、データラインを変更するためルックアップテーブル処理を実行し、出力３６を介しシリアルに変更されたデータラインを出力するよう構成される。本実施例では、データラインは、ＤＭＡにより、すなわち、プロセッサから独立にメモリ４から直接取得される。
【００２９】
典型的には、データラインは、それぞれが各プロセッサ要素に対するＮ個のデータを含む。ルックアップテーブルモジュールはデータに対してシリアルに動作し、プロセッサ要素はパラレルに動作することが理解される。このため典型的には、ルックアップテーブルモジュールがクロックサイクルにおいてシリアルに入力された１つのデータに対してルックアップ処理を実行することが可能であると仮定すると、ルックアップテーブルモジュールは、Ｎ個のクロックサイクルがラインを構成するＮ個のデータに対してルックアップテーブル処理を実行することを要求することとなる。
【００３０】
まず、このような遅延は、特にパラレルプロセッサの個数とデータラインのデータアイテムの個数が大きなものである状況では、大きなものとなると考えられるかもしれない。
【００３１】
しかしながら、適切な技術を利用して、ルックアップテーブル処理の実行は、後述されるように、プログラマにとって１つの命令として考えられるかもしれない。
【００３２】
図４は、データベクトルａ、ｂ及びｆ（ｃ）として表される複数のデータラインに対するプロセッサアレイの動作方法を示す。ループは、各データラインの処理を実行し、ｋはループインデックスを表す。ルックアップテーブル処理を除くすべての処理は、処理要素２によりパラレルに実行される。
【００３３】
ループの各繰り返しについて、各プロセッサ要素はデータａをパラレルに取得する（ステップ４０）。各プロセッサは、それぞれが各プロセッサ要素２に対するＮ個のデータ要素を有する効果的なデータラインを生成する異なるデータアイテムを取得する。
【００３４】
次のステップ（ステップ４２）は、ｋ番目のデータラインに対してルックアップテーブル処理を実行するものである。これは、図示されるようなデータラインに対するシンプルなルックアップテーブル処理としてプログラムされる。このステップは、ルックアップテーブルモジュールにプロセッサ要素に関係しないメモリへの直接的なシリアルデータアクセスを利用したデータラインの処理をスタートさせる。
【００３５】
このシリアルルックアップテーブル処理が継続するＮクロックサイクルを待機するのでなく、次のステップ（ステップ４４）は、前のデータライン（ｋ−１）に対するルックアップテーブル処理の結果のさらなる処理を実行するものである。１つの計算ステップしか示されていないが、実際にはルックアップテーブル処理の結果に対していくつかの計算ステップが実行される必要があるかもしれない。
【００３６】
その後、インデックスｋがインクリメントされ（ステップ４６）、すべてのデータラインが処理されるまでループが継続される（ステップ４８）。
【００３７】
プロセッサアレイ及びルックアップテーブルの各クロックは、全く異なるものとすることが可能であり、遅延を低減することをさらに支援することに留意されたい。
【００３８】
このため、図４に示された方法は、シリアルルックアップテーブル処理の大きな遅延を表面化せず、ルックアップテーブル処理は、１つのクロックサイクルしか必要としないかのようにプログラマには見える。
【００３９】
簡単化のため、いくつかの詳細は図４から省略されていることは当業者に理解されるであろう。例えば、第１サイクルについて、ステップ４４は、前のデータラインが存在しないため実行されず、最後のサイクルについて、ステップ４０は不要となる。
【００４０】
図３のプロセッサアレイ及び図４の方法は、典型的には、複数のデータラインの処理をシーケンシャルに要求し、処理ステップの１つとしてルックアップテーブル処理を利用して、各データラインに対した同一の処理を実行する画像処理に対して特に適している。
【００４１】
ルックアップテーブル処理を実行するための各プロセッサ要素に係るメモリによる構成とは異なって、メモリ３８にはルックアップテーブルの１つのコピーしか必要でなく、これは、各処理要素２のメモリに細かくロードされる必要はない。このため、メモリ及びルックアップテーブルは、小さなルックアップテーブルしか必要としない構成において不要なオーバヘッドを有することなく必要に応じた大きさにすることが可能である。
【００４２】
ルックアップテーブル処理をシリアルに実行するために独立した要素を設けることによって、１つのルックアップテーブルしか必要としない。各プロセッサが異なるメモリバンクにアクセスするＵＳ６，６６５，７６８の従来のアプローチでは、複数のプロセッサがルックアップテーブルの全体に一度にアクセスすることは不可能であり、このため、複数のコピーが要求されるかもしれない。さらに、ＵＳ６，６６５，７６８は、ルックアップテーブル処理について個別のプロセッサ要素を利用して、これは、大きな外部メモリにアクセスするのにいくつかのクロックサイクルを必要とする可能性があり、処理を遅延させる。
【００４３】
さらに、独立したルックアップテーブルモジュールを設けることによって、これは、プロセッサ要素の従来のやや異なる処理を害することなく、ルックアップテーブル処理について最適化することができる。
【００４４】
本実施例の変形では、要素３０はルックアップテーブル処理を実行するのでなく、他の形態の処理を実行するよう構成されるシリアルモジュールとなる。
【００４５】
要素３０自体は、シリアル入出力に関してプロセッサ要素２と必ずしも同一でない何れか適切なクロックスピードにより実行可能なプロセッサを有するかもしれない。モジュール３０は、例えば、Ｈｕｆｆｍａｎ、算術又はランレングス符号化を実行してもよい。モジュール３０はまた、例えば、限定アクセスモジュールであってもよい。
【００４６】
さらなる実施例が、図５に関して示される。
【００４７】
この構成では、ＤＭＡ装置は、メモリ４にアクセスするのに使用されない。その代わりに、シフトレジスタユニット５１として、シフトレジスタのペアが使用される。シフトレジスタユニット５１は、パラレルな出力とシリアルな入力とを有する第１シフトレジスタ５０と、パラレルな入力とシリアルな出力とを有する第２シフトレジスタ５２とを有する。第１シフトレジスタ５０のシリアル入力５４は、ルックアップテーブルモジュール３０の出力３６と接続され、第２シフトレジスタのシリアル出力５６は、ルックアップテーブルモジュール３０の入力３４に接続される。本実施例では、各シフトレジスタ５０、５２は、Ｎ個のポジションを有する。ここで、Ｎはプロセッサ２の個数である。
【００４８】
パラレルポート５８は、メモリ４のアドレススペース内でアドレス指定され、このため、通常のラインメモリとしてプログラマには見える。
【００４９】
図６において、単一のシフトレジスタ６０を用いた同様の構成が示される。シフトレジスタ６０は、シリアル入力５４とシリアル出力５６とを有し、シリアル出力５６はルックアップテーブルモジュールの入力３４に接続され、シリアル入力５４はルックアップテーブルモジュールの出力３６に接続される。シフトレジスタ６０のコンテンツは、メモリ４によりパラレルにアドレス指定することが可能である。
【００５０】
図５及び６の実施例はルックアップテーブルモジュールの代わりに、他のシリアルモジュールにより利用可能であるということが理解されるであろう。
【００５１】
各実施例は、ルックアップテーブル処理を含む多数のタイプのシリアル処理を可能にする。例えば、ルックアップテーブル処理は、ｓｉｎ（）、ａｒｃｔａｎ（）、ｓｑｒｔ（）などのいくつかの関数を計算する効率的な方法とすることが可能であり、これにより、各実施例は、パラレル処理に使用されるしばしばシンプルなプロセッサを上記関数に容易に含める。各実施例はまた、リアルタイムビデオ処理に利用可能である。
【００５２】
当業者者は、記載された実施例に対する多数の変形が可能であることを理解するであろう。例えば、当業者は、ＤＭＡでなくラインのデータにアクセスするための他のアプローチが可能であるということを認識するであろう。
【００５３】
処理ユニットの個数は調整可能であり、シフトレジスタポジションと同数のプロセッサ要素を有する必要はない。
【図面の簡単な説明】
【００５４】
【図１】図１は、従来技術によるＳＩＭＤアレイを示す。
【図２】図２は、さらなる従来技術によるＳＩＭＤアレイを示す。
【図３】図３は、本発明の第１実施例によるプロセッサアレイを示す。
【図４】図４は、図３のプロセッサアレイを使用した方法のフローチャートを示す。
【図５】図５は、他の実施例を示す。
【図６】図６は、さらなる他の実施例を示す。
【図１】
2009507292.tif 000003
【図２】
2009507292.tif 000004
【図３】
2009507292.tif 000005
【図４】
2009507292.tif 000006
【図５】
2009507292.tif 000007
【図６】
2009507292.tif 000008
【手続補正書】
【提出日】平成20年3月6日(2008.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各データラインをパラレルに処理する複数のプロセッサ要素と、
前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、
シリアル入力と出力とを有し、前記シリアル入力において入力されたデータラインに対して、前記データラインを変更するための処理を実行し、結果を変更されたデータラインとして前記シリアル出力に出力するシリアルモジュールと、
前記プロセッサ要素とメモリからのデータラインをシリアルに前記シリアル入力に提供し、前記処理後に前記シリアル出力から前記プロセッサ要素とメモリに前記変更されたデータラインを返すよう構成される手段と、
を有するプロセッサアレイ。
【請求項２】
前記シリアルモジュールは、ルックアップテーブルモジュール、ルックアップテーブル処理、Ｈｕｆｆｍａｎ、算術若しくはランレングス符号化モジュール又はデータへの限定アクセスを可能にする限定アクセスモジュールである、請求項１記載のプロセッサアレイ。
【請求項３】
前記シリアルモジュールは、前記処理としてルックアップテーブル処理を実行するよう構成されるルックアップテーブルモジュールである、請求項２記載のプロセッサアレイ。
【請求項４】
当該プロセッサアレイは、
前記複数のプロセッサ要素をパラレルに使用して各データラインを処理し、
前記プロセッサ要素におけるデータラインの処理中に、前記プロセッサ要素が前記変更されたデータラインを要求する前に前記変更されたデータラインが返されるように、前記シリアルモジュールにおいて次のデータラインに対する前記処理を実行する、
よう構成される、請求項１乃至３何れか一項記載のプロセッサアレイ。
【請求項５】
当該プロセッサアレイは、
ルックアップテーブル処理のｋ番目のデータラインを決定し、
前記決定されたｋ番目のデータラインに対して処理を指示し、
前の（ｋ−１）番目のデータラインに対して実行された処理の結果を処理し、
すべてのデータラインの処理が完了するまで、前記決定、指示及び処理の各ステップを繰り返す、
ことによって、複数のデータラインを処理するよう構成される、請求項１乃至４何れか一項記載のプロセッサアレイ。
【請求項６】
前記データラインを提供する手段は、前記メモリのデータラインに直接アクセスし、前記処理の結果を前記メモリに格納するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラであり、
前記ＤＭＡコントローラは、前記シリアルモジュールが前記処理要素における処理の継続中にシリアルに入力されたデータラインに対して処理を実行することが可能となるように、前記シリアルモジュールのシリアル入力とシリアル出力とに接続される、請求項１乃至５何れか一項記載のプロセッサアレイ。
【請求項７】
前記データラインを提供する手段は、少なくとも１つのシフトレジスタを有するシフトレジスタユニットを有し、
前記シフトレジスタユニットは、シリアル出力とシリアル入力とを有し、
前記シリアル入力は、前記処理テーブルモジュールのシリアル出力に接続され、
前記シリアル出力は、前記シリアルモジュールのシリアル入力に接続され、
前記メモリは、前記シフトレジスタユニットのデータにパラレルにアクセス可能である、請求項１乃至６何れか一項記載のプロセッサアレイ。
【請求項８】
当該プロセッサアレイは、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサアレイである、請求項１乃至７何れか一項記載のプロセッサアレイ。
【請求項９】
複数のプロセッサ要素と、前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、シリアルモジュールとを有するプロセッサアレイの動作方法であって、
前記複数のプロセッサ要素を使用してデータラインを処理するステップと、
前記プロセッサ要素におけるデータラインの処理中に、次のデータラインを前記処理要素とメモリから前記シリアルモジュールにシリアル送信するステップと、
変更された次のデータラインを生成するため、前記シリアルモジュールにおける次のデータラインに対する処理を実行するステップと、
前記変更された次のデータラインを前記シリアルモジュールから前記プロセッサ要素とメモリとに返すステップと、
前記シリアルモジュールにおける次のデータラインに対する処理の実行とパラレルに、前記プロセッサ要素を利用して各データラインを処理するため上記各ステップを繰り返すステップと、
を有する方法。
【請求項１０】
前記処理するステップは、各ｋ番目のデータラインに対して、
シリアル処理のためのｋ番目のデータラインを決定するステップと、
前記決定されたｋ番目のデータラインに対するシリアル処理を指示するステップと、
前の（ｋ−１）番目のデータラインに対して実行されたシリアル処理の結果を処理するステップと、
すべてのデータラインの処理が完了するまで、前記決定、指示及び処理の各ステップを繰り返すステップと、
を実行する、請求項９記載の方法。
【請求項１１】
前記処理は、ルックアップテーブル処理、Ｈｕｆｆｍａｎ、算術若しくはランレングス符号化処理又はデータへの限定アクセスを可能にする限定アクセス処理である、請求項９又は１０記載の方法。
【請求項１２】
前記処理は、ルックアップテーブル処理である、請求項１１記載の方法。
【請求項１３】
請求項９乃至１２何れか一項記載の方法を、複数のプロセッサ要素と、前記複数のプロセッサ要素によりパラレルにアクセス可能なメモリと、ルックアップテーブルモジュールとを有するプロセッサアレイに実行させるよう構成されるコンピュータプログラムコード手段を有するコンピュータプログラム。
【請求項１４】
データキャリアに記録された請求項１３記載のコンピュータプログラム。
【国際調査報告】
2009507292.tif 000009
2009507292.tif 000010
2009507292.tif 000011