(57)【要約】画像処理システムでの使用のための画像信号プロセッサが開示される。画像信号プロセッサは、データを記憶するローカルメモリ、及び複数のメモリアドレスジェネレータを有するメモリコマンドハンドラを含む。それぞれのメモリアドレスジェネレータは、ローカルメモリにメモリアドレスを発生し、画像処理タスクにおいて役立てるためにメモリアドレスデ位置されるローカルメモリのデータに演算を実行するためにコマンドを解釈する。【特許請求の範囲】
【請求項１】
データを記憶するためのローカルメモリと、
複数のメモリアドレスジェネレータを含むメモリコマンド操作手段とを備え、
前記複数のメモリアドレスジェネレータのそれぞれは、前記ローカルメモリへのメモリアドレスを発生し、画像処理タスクで役立てるために前記メモリアドレスに位置される前記ローカルメモリのデータで実行されるべきコマンドを解釈する、
ことを特徴とする画像信号プロセッサ。
【請求項２】
前記複数のメモリアドレスジェネレータに結合される共有メモリを更に備え、前記共有メモリは、前記ローカルメモリに送出されるべきデータを記憶し、前記メモリアドレスジェネレータにより実行されるべきコマンドを記憶する、
請求項１記載の画像信号プロセッサ。
【請求項３】
前記共有メモリは、複数のクラスタコミュニケーションレジスタを備える、
請求項２記載の画像信号プロセッサ。
【請求項４】
前記複数のクラスタコミュニケーションレジスタを前記複数のメモリアドレスジェネレータに結合するためのクラスタコミュニケーションレジスタインタフェースを更に備える、
請求項３記載の画像信号プロセッサ。
【請求項５】
前記複数のクラスタコミュニケーションレジスタは、データを記憶するためのデータクラスタコミュニケーションレジスタと、コマンドを記憶するためのコマンドクラスタコミュニケーションレジスタとを含む、
請求項３記載の画像信号プロセッサ。
【請求項６】
前記複数のメモリアドレスジェネレータのそれぞれには、クラスタコミュニケーションレジスタのペアが割り当てられる、
請求項５記載の画像信号プロセッサ。
【請求項７】
前記クラスタコミュニケーションレジスタのそれぞれのペアは、データクラスタコミュニケーションレジスタ及びコマンドクラスタコミュニケーションレジスタを含む、
請求項６記載の画像信号プロセッサ。
【請求項８】
前記メモリアドレスジェネレータにより前記ローカルメモリへのアクセスを調停するためのアービタを更に備える、
請求項３記載の画像信号プロセッサ。
【請求項９】
前記複数のクラスタコミュニケーションレジスタは、少なくとも１６ビットレジスタである、
請求項８記載の画像信号プロセッサ。
【請求項１０】
前記クラスタコミュニケーションレジスタを前記メモリアドレスジェネレータに結合し、前記メモリアドレスジェネレータを前記アービタに結合し、前記アービタを前記ローカルメモリに結合する１６ビットのデータパスを更に備える、
請求項９記載の画像信号プロセッサ。
【請求項１１】
前記ローカルメモリは、スタティックランダムアクセスメモリを含む、
請求項１０記載の画像信号プロセッサ。
【請求項１２】
画像信号プロセッサのローカルメモリにデータを記憶するステップと、
前記画像信号プロセッサにおけるメモリアドレスジェネレータを利用して、前記ローカルメモリへのメモリアドレスを発生するステップと、
画像処理タスクで役立てるために前記メモリアドレスジェネレータを利用して前記メモリアドレスに位置される前記ローカルメモリのデータに動作を実行するステップと、
を備えることを特徴とする方法。
【請求項１３】
前記画像信号プロセッサの共有メモリで前記ローカルメモリに送出されるべきデータを記憶するステップと、
前記ローカルメモリにおけるデータに実行されるべきコマンドを前記共有メモリに記憶するステップと、
を更に備える請求項１２記載の方法。
【請求項１４】
前記共有メモリは、複数のクラスタコミュニケーションレジスタを備える、
請求項１３記載の方法。
【請求項１５】
前記複数のクラスタコミュニケーションレジスタは、データを記憶するためのデータクラスタコミュニケーションレジスタとコマンドを記憶するためのコマンドクラスタコミュニケーションレジスタを含む、
請求項１４記載の方法。
【請求項１６】
複数のメモリアドレスジェネレータのうちの１つにクラスタコミュニケーションレジスタのペアを割り当てるステップを更に備え、
前記複数のメモリアドレスジェネレータのそれぞれは、前記画像信号プロセッサの前記ローカルメモリにメモリアドレスを発生し、画像処理タスクで役立てるために前記メモリアドレスに位置される前記ローカルメモリのデータに動作を実行する、
請求項１５記載の方法。
【請求項１７】
前記複数のメモリアドレスジェネレータにより前記ローカルメモリへのアクセスを調停するステップを更に備える、
請求項１６記載の方法。
【請求項１８】
前記複数のクラスタコミュニケーションレジスタは、少なくとも１６ビットレジスタである、
請求項１４記載の方法。
【請求項１９】
１６ビットのデータパスは、前記クラスタコミュニケーションレジスタを前記メモリアドレスジェネレータに結合し、前記メモリアドレスジェネレータを前記ローカルメモリに結合する、
請求項１８記載のイメージプロセッサ。
【請求項２０】
マシンにより実行されたときに、
画像信号プロセッサのローカルメモリにデータを記憶するステップと、
前記画像信号プロセッサにおけるメモリアドレスジェネレータを利用して、前記ローカルメモリへのメモリアドレスを発生するステップと、
画像処理タスクで役立てるために前記メモリアドレスジェネレータを利用して、前記メモリアドレスに位置される前記ローカルメモリのデータに動作を実行するステップと、
を前記マシンに実行させるための命令が記憶されたマシン読取り可能な媒体。
【請求項２１】
前記画像信号プロセッサの共有メモリに前記ローカルメモリに送出されるデータを記憶するステップと、
前記ローカルメモリにおけるデータに実行されるべきコマンドを前記共有メモリに記憶するステップと、
を更に備える請求項２０記載のマシン読取り可能な媒体。
【請求項２２】
前記共有メモリは、複数のクラスタコミュニケーションレジスタを備える、
請求項２１記載のマシン読取り可能な媒体。
【請求項２３】
前記複数のクラスタコミュニケーションレジスタは、データを記憶するためのデータクラスタコミュニケーションレジスタ及びコマンドを記憶するためのコマンドクラスタコミュニケーションレジスタを含む、
請求項２２記載のマシン読取り可能な媒体。
【請求項２４】
複数のメモリアドレスジェネレータのうちの１つにクラスタコミュニケーションレジスタのペアを割り当てるステップを更に備え、
前記複数のメモリアドレスジェネレータのそれぞれは、前記画像信号プロセッサにおける前記ローカルメモリへのメモリアドレスを発生し、画像処理タスクで役立てるために前記メモリアドレスに位置される前記ローカルメモリのデータに動作を実行する、
請求項２３記載のマシン読取り可能な媒体。
【請求項２５】
前記複数のメモリアドレスジェネレータにより前記ローカルメモリへのアクセスを調停するステップを更に備える、
請求項２４記載のマシン読取り可能な媒体。
【請求項２６】
前記複数のクラスタコミュニケーションレジスタは、少なくとも１６ビットレジスタである、
請求項２２記載のマシン読取り可能な媒体。
【請求項２７】
１６ビットのデータパスは、前記クラスタコミュニケーションレジスタを前記メモリアドレスジェネレータに結合し、前記メモリアドレスジェネレータを前記ローカルメモリに結合する、
請求項２６記載のマシン読取り可能な媒体。
【請求項２８】
イメージプロセッサに結合されるプロセッサと、
互いに結合される複数の画像信号プロセッサを含む前記イメージプロセッサに結合されるダブルデータレート・シンクロノスダイナミックランダムアクセスメモリとを備え、
前記複数の画像信号プロセッサのそれぞれは、
データを記憶するためのローカルメモリと、
複数のメモリアドレスジェネレータを含むメモリコマンド操作手段とを有し、
前記複数のメモリアドレスジェネレータのそれぞれは、前記ローカルメモリへのメモリアドレスを発生し、画像処理タスクで役立てるため前記メモリアドレスに位置される前記ローカルメモリのデータに実行されるべきコマンドを解釈する、
ことを特徴とするイメージプロセッサシステム。
【請求項２９】
前記複数のメモリアドレスジェネレータに結合される共有メモリを更に備え、前記共有メモリは、前記ローカルメモリに送出されるデータを記憶し、前記メモリアドレスジェネレータにより実行されるべきコマンドを記憶する、
請求項２８記載のイメージプロセッサシステム。
【請求項３０】
前記共有メモリは、複数のクラスタコミュニケーションレジスタを備える、
請求項２９記載のイメージプロセッサシステム。
【請求項３１】
前記複数のクラスタコミュニケーションレジスタを前記複数のメモリアドレスジェネレータに結合するためのクラスタコミュニケーションレジスタインタフェースを更に備える、
請求項３０記載のイメージプロセッサシステム。
【請求項３２】
前記複数のクラスタコミュニケーションレジスタは、データを記憶するためのデータクラスタコミュニケーションレジスタ及びコマンドを記憶するためのコマンドクラスタコミュニケーションレジスタを含む、
請求項３０記載のイメージプロセッサシステム。
【請求項３３】
前記複数のメモリアドレスジェネレータのそれぞれには、クラスタコミュニケーションレジスタのペアが割り当てられる、
請求項３２記載のイメージプロセッサシステム。
【請求項３４】
前記クラスタコミュニケーションレジスタのそれぞれのペアは、データクラスタコミュニケーションレジスタ及びコマンドクラスタコミュニケーションレジスタを含む、
請求項３３記載のイメージプロセッサシステム。
【請求項３５】
前記メモリアドレスジェネレータにより前記ローカルメモリへのアクセスを調停するためのアービタを更に備える、
請求項３０記載のイメージプロセッサシステム。
【請求項３６】
前記複数のクラスタコミュニケーションレジスタは少なくとも１６ビットレジスタである、
請求項３５記載のイメージプロセッサシステム。
【請求項３７】
前記クラスタコミュニケーションレジスタを前記メモリアドレスジェネレータに結合し、前記メモリアドレスジェネレータを前記アービタに結合し、前記アービタを前記ローカルメモリに結合する１６ビットのデータパスを更に備える、
請求項３６記載のイメージプロセッサシステム。
【請求項３８】
前記ローカルメモリは、スタティックランダムアクセスメモリを含む、
請求項３７記載のイメージプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本発明の実施の形態は、画像処理の分野に関する。より詳細には、本発明の実施の形態は、データ駆動型のアーキテクチャを有する画像信号プロセッサでの使用のためのメモリコマンド操作機に関する。
【背景技術】
【０００２】
一般に、画像処理は、フォトコピー、スキャニング画像、写真、ビデオ等のような２次元画像の領域への信号処理技術の適用である。典型的に、画像処理は、画像を解析及び処理することを含んでおり、電子的な手段を利用して実行される。画像処理は、一般に、３つの演算を含んでおり、光学スキャナのような装置で画像をインポートするか、他のタイプの装置（たとえばデジタルカメラ、デジタルカムコーダ等）を通して直接的にインポートし、ある方法で画像を処理又は解析し、最後に結果を出力する。
【０００３】
常にではないが、多くの例では、画像は、特定又は前もってプログラムされた方法で電子的な手段により処理又は解析される。このステージでは、画像強調及びデータ圧縮のような技術が利用される場合がある。たとえば、画像は、人間の目に見えないパターンを発見するため、画像が解析又は強調される場合がある。画像の解析は、構造、影、色及び人間の目で知覚することのできない関係を確認することのできる関係を識別することのできる技術を利用する場合がある。このように、画像処理技術は、法医学のような問題を鑑定するために利用することができる。別な例として、画像処理技術は、衛星画像から天気マップを作成することに使用される場合がある。より一般的には、画像処理は、スキャニングされたか、又はデジタルカメラ等で捕捉され、ついで、解析、処理、強調される等である、ビットマップグラフィックフォーマットで画像を処理する場合がある。また、しばしば、画像は、以前にスキャニングされたか、又はビデオソースから入力された品質が低下した画像をリファインすることによるような、画像処理技術により改善される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
１つの特定の例として、ドキュメントイメージングアプリケーションにおける画像処理は、高性能の固定機能の特定用途向け集積回路（ＡＳＩＣ）により慣習的に処理されている。しかし、これら固定機能のＡＳＩＣは、画像処理タスクにおいて柔軟性を提供しない。他方では、プログラマブルソリューション（たとえば、ＦＰＧＡ（Field  Programmable  Gate  Arrays）、ＤＳＰ（Digital  Signal  Processor）等）は、画像処理タスクにおけるより多くの柔軟性を提供しつつ、これら競合する用途であって広く利用される用途について、必要とされる価格対性能特性を提供しない。さらに、手頃な値段ではないこと、プログラマブル及びスケーラブルソリューションのため、異なるパフォーマンスセグメントにわたる製品は、共通のプラットフォームで標準化されない。
【課題を解決するための手段】
【０００５】
以下の説明では、本発明の各種実施の形態が詳細に説明される。しかし、かかる詳細は、本発明の理解を容易にし、本発明を採用する例示的な実施の形態を説明するために含まれる。かかる詳細は、本発明の範囲にありつつ、他の変形及び実施の形態が可能であるために、記載される特定の実施の形態に本発明を制限するために使用されるべきではない。さらに、本発明の実施の形態の理解を通して提供するために様々な詳細が述べられるが、本発明の実施の形態を実施するためにこれら特定の詳細が必要とされないことは、当業者にとって明らかであろう。他の例では、公知の方法、データタイプ、プロトコル、手順、コンポーネント、電気的構造及び回路のような詳細は、詳細に説明されず、本発明を曖昧にしないためにブロック図の形式で示される。さらに、本発明の実施の形態は、特定の実施の形態で記載されるが、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、又はその組み合わせで実現される場合がある。
【０００６】
本発明の実施の形態は、画像処理の分野に関する。より詳細には、本発明の実施の形態は、データ駆動型のアーキテクチャを有する画像信号プロセッサでの使用のためのメモリコマンドハンドラ（MCH:  Memory  Command  Handler）に関する。より詳細には、本発明の実施の形態は、多くの異なる画像処理タスクを処理し、シグナルコマンドを利用して多数のパラメータを制御するためのアドレスジェネレータ装置として機能するメモリコマンドハンドラ（ＭＣＨ）を有するイメージプロセッサでの使用のための画像信号プロセッサ（ＩＳＰ）に関する。さらに、メモリコマンドハンドラは、たとえば二次元サブサンプルアレイで保持される自動データフィードを可能にする複数のメモリアドレスジェネレータ（ＭＡＧ）を利用することで、処理能力の高いアドレス指定機能を含んでいる。
【０００７】
有利なことに、データ駆動型のアーキテクチャを使用したメモリコマンドは、その処理能力の高いアドレス指定機能と共に、画像処理タスクを効率的に管理するために、メモリアドレスジェネレータでパラメータを制御するために使用される場合がある。たとえば、典型的に、画像処理タスクのようなデータフローアプリケーションでは、非常に小さな命令のセットが効率的に利用され、大きなデータストリームを動作させる場合がある。本発明の実施の形態は、画像処理アプリケーションの効率を最大にするため、最適化されたアーキテクチャに関する。
【発明を実施するための最良の形態】
【０００８】
図１は、本発明の１実施の形態に係る、画像処理での使用のためのシステムコンフィギュレーション１００の例を示すブロック図である。システムコンフォギュレーション１００は、互いに結合される複数の個々の画像信号プロセッサ（ＩＳＰ）１０４を有する少なくとも１つのイメージプロセッサ１０２を含んでいる。従来技術で知られているように、イメージプロセッサは、典型的に、多数の個々の画像信号プロセッサを含んでいる。
【０００９】
しかし、本発明の実施の形態によれば、イメージプロセッサ１０２は、以下に説明されるようにデータ駆動される、共有されるレジスタのアーキテクチャを実現する。本発明の１実施の形態では、画像信号プロセッサ（ＩＳＰ）１０４の間のデータパスは、１６ビット幅である場合があり、約２６６ＭＨｚの中心周波数で動作する場合がある。先に説明されたように、典型的にデータフローアプリケーションでは、非常に小さな命令のセットは、大きなデータストリームを動作させる。本発明の実施の形態によれば、システムコンフィギュレーション１００は、これらのタイプの画像処理データフローアプリケーションの
最大パフォーマンスを提供するために最適化される。１つの特定の実施の形態では、イメージプロセッサ１０２は、プログラマブルポートを通して互いに接続される８つの画像信号プロセッサ１０４を含む場合がある。１例では、プログラマブルポートは、グワッドポートである場合がある。
【００１０】
以下に説明されるようなシステムコンフィギュレーション１００は、非常にスケーラブルかつプログラマブルであって、（たとえば、入力画素ストリームを生成可能な他の画像処理チップ又は装置）他の装置からの入力ピクセルストリーム１０５に画像処理タスクを実行する。
【００１１】
さらに、１実施の形態では、メモリ装置１０６及び１０７は、イメージプロセッサ１０２に結合される場合がある。１実施の形態では、メモリ装置１０６及び１０７は、ダブルレータレート（ＤＤＲ）シンクロノスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）である場合がある。１例では、これらデュアルＤＤＲ  ＳＤＲＡＭ装置は、毎秒１ギガバイトを超えるデータ移動帯域幅を提供する場合がある。このデータフロー帯域幅は、画像信号プロセッサ１０４の処理性能でバランスされる場合がある。
【００１２】
図１に示されるように、システムコンフィギュレーション１００は、少なくとも１つのホストプロセッサ１１１、入力／出力（Ｉ／Ｏ）インタフェース１３３、及びバス１０３によりイメージプロセッサ１０２に結合されるネットワークインタフェース１３４を含んでいる。バス１０３は、たとえば、周辺機器インタフェース（PCI:  Peripheral  Component  Interface）タイプのバスである場合がある。システムメモリ装置１１３は、プロセッサ１１１に結合される場合もある。さらに、システムコンフィギュレーション１００は、コプロセッサ、モデム等のような更なるコンポーネントを含んでいる場合があり、これは非常に基本的な例のシステムコンフィギュレーションである。先に説明されたように、ホストプロセッサ１１１は、イメージプロセッサ１０２に結合され、バス１０３により前に記載された他のコンポーネントに結合される場合がある。本発明の明細書のため、用語「プロセッサ」又は「ＣＰＵ」は、命令のシーケンスを実行可能なマシンを示し、限定されるものではないが、汎用マイクロプロセッサ、特定用途マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、マルチメディアコントローラ、マイクロプロセッサ、マイクロコントローラ等を含んでいる。１実施の形態では、プロセッサ１１１は、ＩＮＴＥＬ  ＡＲＣＨＩＴＥＣＴＵＲＥの命令セットを実行可能な汎用マイクロプロセッサである場合がある。たとえば、プロセッサ１１１は、ＰＥＮＴＩＵＭ（登録商標）クラスのプロセッサの１つであるか、又はＣＥＬＥＲＯＮクラスのプロセッサの１つとすることができる。
【００１３】
メモリ装置１０６及び１０７は、スタティックなランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロノスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、及びダブルデータレート（ＤＤＲ）ＳＤＲＡＭ又はＤＲＡＭ等のような、デジタル情報を記憶するために調整されたメモリ装置を含むことができる。したがって、１実施の形態では、メモリ装置１０６及び１０７、並びにシステムメモリ装置１１３は、揮発性メモリを含んでいる。さらに、メモリ装置１０６及び１０７、並びにシステムメモリ装置１１３は、リードオンリメモリ（ＲＯＭ）のような不揮発性メモリからなるか、不揮発性メモリを含んでいる。
【００１４】
また、システムコンフォギュレーション１００は、Ｉ／Ｏ装置１３９とのＩ／Ｏインタフェース及びポート１３３を含む場合がある。Ｉ／Ｏインタフェース１３３は、制限されるものではないが、当業者により理解されるように、ＰＣＩスロット、ＰＣＩエージェント、ユニバーサルシリアルバス（ＵＳＢ）インタフェース、ＩＥＥＥ（Institute  of  Electrical  Electronics  Engineering）１３９４インタフェース、パラレルポートインタフェース、フォンインタフェース、（たとえばハードドライブ用の）集積デバイスエレクトロニクス（ＩＤＥ）インタフェース、高速シリアルインタフェース、他のタイプのインタフェースを含んでいる。システムコンフィギュレーション１００に適切なＩ／Ｏインタフェースを通して接続される場合がある広く様々な異なるタイプのＩ／Ｏ装置が存在することを理解されるべきである。Ｉ／Ｏ装置の例は、適切なＩ／Ｏ機能を実行するためのＩ／Ｏ装置を含む場合がある。たとえば、Ｉ／Ｏ装置は、モニタ、キーパッド、モデム、プリンタ、ストレージデバイス（たとえば、コンパクトディスクロム（ＣＤ  ＲＯＭ）、デジタルビデオディスク（ＤＶＤ）、ハードドライブ、フロプティカルディスク等）、他のタイプのＩ／Ｏ装置（たとえば、入力装置、マウス、トラックボール、プリンタ装置）、メディアカード（たとえば、オーディオ、ビデオ、グラフィック等）を含んでいる。より詳細には、Ｉ／Ｏ装置は、フォン、ファックス機、スキャナ、フォトコピーマシーン、デジタルコピー、ビデオカメラ、デジタルカメラ、マルチファンクションペリフェラル、及びイメージプロセッサに結合するために適切な他のタイプの装置を含む場合がある。さらに、ネットワークインタフェース１３４は、システムコンフィギュレーション１００をネットワーク１４０に結合するために提供される場合がある。ネットワークインタフェース１３４は、当該技術分野で公知であるように、規格及び適切なネットワークプロトコルを使用して、（たとえば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネット等）ネットワーク１４０と通信するために供給される。
【００１５】
例示的なシステムコンフィギュレーション１００のイメージプロセッサ１０２は、マイクロコード、レジスタコンフィギュレーション、レジスタイニシャリゼーション、インタラプトサービスをダウンロードし、画像処理のために画像データをアップロード及びダウンロードするための外部ホストプロセッサ１１１及びバス１０３を利用する場合がある。先に記載されたインタフェースのいずれかから読み出されたデータは、イメージプロセッサ１０２の画像信号プロセッサ１０４により処理される場合がある。１実施の形態では、画像信号プロセッサ１０４は、イメージプロセッサ１０２にわたり迅速かつ柔軟なデータの移動を容易にするため、クワッドポートを通して共有されるメッシュトポロジーで互いに接続される場合がある。１つの例では、イメージプロセッサ１０２は、８つの画像信号プロセッサ（ＩＳＰ）１０４を含む場合がある。さらに、グローバルバス１２３は、ＰＣＩバス１０３に接続し、イメージプロセッサ１０２の全ての他の機能ユニット（図示せず）と同様に、イメージプロセッサ１０２の画像信号プロセッサ（ＩＳＰ）１０４の全てに結合される。イメージプロセッサ１０２の様々なユニット及びレジスタがセットアップされる場合があり、グローバルバス１２３を通して制御される場合がある。特に、グローなるバス１２３は、それぞれのＩＳＰのコンフィギュレーションレジスタに読出し及び書込みするために使用される。１実施の形態では、グルーバルバスは、１６ビットであって、１６ビットデータバス及び８ビットアドレスバスを有しており、中断ステータスをＰＣＩバス１０３に伝達する。
【００１６】
図２を参照して、図２は、本発明の１実施の形態に係る、画像信号プロセッサ（ＩＳＰ）２００のためのアーキテクチャの例を示すブロック図である。図２でわかるように、ＩＳＰ２００は、入力プログラミングエレメント（Ｉｎｐｕｔ  ＰＥ）２０２、出力プログラミングエレメント（Ｏｕｔｐｕｔ  ＰＥ）２０４、第一のマルチプライ・アキュムレートプログラミングエレメント（ＭＡＣＰＥ）２０６、第二のＭＡＣＰＥ２０８、汎用プログラミングエレメント（ＧＰＥ）２１０、第一及び第二のアクセレレータユニット２１４及び２１６、及び、メモリコマンドハンドラ２２０を含んでおり、これらの全ては共有メモリ２３０に結合されている。１実施の形態では、共有メモリ２３０は、複数のクラスタコミュニケーションレジスタ（ＣＣＲ）を含む場合がある。更に特定の実施の形態では、それぞれのクラスタコミュニケーションレジスタは、１６ビット幅である場合がある。画像信号プロセッサ２００のクラスタコミュニケーションレジスタ２３０は、更に詳細に以下に記載される処理エレメント間のデータを記憶及び転送するために使用される場合がある。入力及び出力プログラミングエレメント２０２及び２０４は、画像信号プロセッサ２００を通してデータを経路制御するために構成される。また、画像信号プロセッサ２００は、以下に説明されるように、帯域幅のアクセス効率を最大にするため、メモリコマンドハンドラ２００により管理されるデータストレージメモリ２２２を含む場合がある。
【００１７】
さらに、それぞれのプログラミングエレメント２０２，２０４、２０６、２０８及び２１０のそれぞれは、ローカルレジスタ（たとえば、１６の１６ビットローカルレジスタ）を含んでいる場合がある。クラスタコミュニケーションレジスタ２３０及び他のローカルレジスタの両者は、たとえば、１６ビット画像又はデュアル８ビット画像のいずれかについて、画像処理の用途で使用することができる。全ての処理エレメントは、同時に実行し、以下に記載されるようなフロー制御命令及び算術論理ユニット（ＡＬＵ）命令からなるコモンベースラインインストラクションのセットを実現する場合がある。特に、ＭＡＣプログラミングエレメント２０６及び２０８のそれぞれは、更なるマルチプライ・アキュムレート命令を実現する場合があり、汎用プログラミングエレメント２１０は、更なるビットローテーション命令を実現する場合がある。画像信号プロセッサ（ＩＳＰ）２００のプログラマビリティと結合されるプログラミングエレメントの性能により、プログラマは、最適な性能のために迅速にアルゴリズムを開発及び調整することができる。また、ＩＳＰ２００は、専用のハードウェアアクセラレータ２１４及び２１６を含む場合がある。たとえば、これらアクセラレータユニット２１４及び２１６は、ハフマンエンコーダ／デコーダアクセラレータ、Ｇ４エンジンアクセラレータ、高速２Ｄトライアングルフィルタアクセラレータを含む場合がある。
【００１８】
先に説明されたように、画像処理アプリケーションは、典型的に、大量にデータについて小さな動作セットを実行する。イメージプロセッサ、及びイメージプロセッサのそれぞれの画像信号プロセッサ（ＩＳＰ）は、画像処理機能を実現するためにデータフロー／データ駆動型アーキテクチャを実現する場合がある。それぞれの画像信号プロセッサ２００では、それぞれのプログラミングエレメント２０２，２０４，２０６，２０８及び２１０のそれぞれは、命令を保持するためのインストラクションメモリ２４０を含んでいる。１実施の形態では、インストラクションメモリ２４０は、１２８インストラクションメモリである場合がある。典型的に、データフロー及び算術命令に加えて３又は４のタイトループからなる命令のセットが使用される場合がある。さらに、それぞれのプログラミングエレメントは、ローカルデータストレージについてローカルレジスタ（たとえば、１６の１６ビットレジスタ）を有する場合があり、全てのクラスタコミュニケーションレジスタ（ＣＣＲ）２３０への読出し／書込みアクセスを有する。クラスタコミュニケーションレジスタ２３０は、プログラミングエレメント間でデータをやり取りするために使用される。特に、１実施の形態では、クラスタコミュニケーションレジスタ２３０を通過するデータは、データバリッド（ＤＶ）ビットでタグ付けされる場合がある。データバリッドビットは、データストレージリソースのオーナシップを確立するために使用される場合があり、以下に説明されるようにデータの１以上の利用者を確立する場合がある。
【００１９】
簡単に説明すると、システムコンフィギュレーション１００（図１）のイメージプロセッサ１０２は、複数の信号プロセッサ（ＩＳＰ）２００（図２）を含んでいる。１実施の形態では、イメージプロセッサは、８つの画像信号プロセッサ（ＩＳＰ）２００を含んでいる。適切な数の画像信号プロセッサがアーキテクチャへの著しい変化なしで利用することができることを理解されたい。さらに、プログラミングエレメント２０２，２０４，２０６，２０８及び２１０、並びにハードワイヤド・アクセラレータ２１４及び２１６は、共有されるメモリ２３０を通して相互接続され、この共有メモリは、１実施の形態では、クラスタコミュニケーションレジスタ（ＣＣＲ）（たとえば、１６ビットレジスタ）として実現される場合がある。１実施の形態では、画像信号プロセッサ２００における５つのプログラミングエレメントは、クラスタコミュニケーションレジスタ２３０を通して互いに通信する。この実施の形態では、クラスタコミュニケーションレジスタ２３０は、画像信号プロセッサ２００における５つのプログラミングエレメントが互いに通信することのできるメカニズムである。以下に記載されるように、メモリコマンドハンドラ２２０は、プログラミングエレメントへのデータフローを管理するために使用される。
【００２０】
画像信号プロセッサ２００の個々のコンポーネントの幾つかに特に注目して、プログラミングエレメント（ＰＥ）２０２，２０４，２０６，２０８及び２１０が特に説明される。先に記載されたように、それぞれのプログラミングエレメントは、クラスタコミュニケーションレジスタ２３０と共に動作するのと同様に、それ自身のローカルレジスタのセットを有する。ローカルレジスタ及びクラスタコミュニケーションレジスタの両者は、本発明の１実施の形態では、１６ビット幅である場合があり、１６ビットオペランド又は２つの８ビットオペランドのいずれかについて使用することができる。さらに、それぞれ基本的な命令のセットについて設計される場合がある。１実施の形態では、基本的な命令のセットは、フロー制御をサポートするフロー制御命令、算術及び論理機能をサポートするＡＬＵ命令、及びカスタム命令に分割される場合がある。たとえば、カスタム命令に関して、ＭＡＣプログラミングエレメント（ＭＡＣＰＥ）２０６及び２０８は、マルチプライ・アキュムレート命令を有し、汎用プログラミングエレメント（ＧＰＥ）２１０は、ビットローテーション命令を含む場合がある。しかし、全てのプログラミングエレメント２０２，２０４，２０６，２０８及び２１０は、全てのフロー制御命令及びＡＬＵ命令をサポートする。
【００２１】
フロー制御命令の例は、ロード、リードインストラクションメモリ、ライトインストラクションメモリ、ブレイク、コンディショナルコーリ、インターラプトコントロール、コンディショナルジャンプ、インディレクトレジスタコントロール、ループインストラクション、ノーオペレーション、リピート、リターン、ストップ、パック、及びアンパックを含んでいる。ＡＬＵ命令の例は、絶対値機能、加算機能、加算及び累積機能、加算及びシフト機能、減算機能、減算及び累積機能、ビットワイズＡＮＤ機能、ビットワイズＯＲ機能、ビットワイズ排他的ＯＲ機能、最小／最大機能、ストアアキュムレータ機能、シフトエクステンド機能、シフトレフト機能、シフトライト機能、及びテストデータバリッドビットへの命令を含んでいる。ＭＡＣプログラミングエレメント（ＭＡＣＰＥ）２０６及び２０８との使用のためにカスタム命令に関して、例示的な命令は、マルチプライ・アキュムレート機能、マルチプライ命令、及びモードセットを含んでいる。汎用プログラミングエレメント（ＧＰＲ）２１０のためのカスタム命令に関して、例示的な命令は、ビットローテーション命令を含んでいる。
【００２２】
汎用のプログラミングエレメント（ＧＰＥ）２１０は、カスタムビットローテーション命令と共に、先に説明された基本フロー及びＡＬＵ命令を含んでおり、全ての他のプログラミングエレメント２０２，２０４，２０６及び２０８が構築される基本プログラミングエレメントである。したがって、汎用のプログラミングエレメント（ＧＰＥ）２１０は、先に記載されたように、ベースライン命令セットを実現する。入力プログラミングエレメント２０２は、到来するデータを受けるための入力ポートとして、クワッドポートインタフェースとの汎用のプログラミングエレメント２１０（−ビットローテーション命令）に基づいている。同様に、出力プログラミングエレメント２０４は、同様に、データを出力する出力ポートとしてクワッドポートインタフェースとの汎用プログラミングエレメント２１０（−ビットローテーション命令）に基づいている。ＭＡＣプログラミングエレメント２０６及び２０８は、同様に、マルチプライ・アキュムレータ２４２及び２４４のそれぞれにより提供される拡張されたＭＡＣ機能をもつ汎用のプログラミングエレメント２１０（−ビットローテーション命令）に基づいている。１実施の形態では、ＭＡＣプログラミングエレメント２０６及び２０８は、デュアルＳＩＭＤ（Single  Instruction  Multiple  Data）の８×８インストラクション、又は１６×１６マルチプライ・アキュムレートインストラクションをサポートする。これら基本的な機能に加えて、ＭＡＣプログラミングエレメント２０６及び２０８は、画像処理アルゴリズムを実現するのに有効な算術及び論理機能のワイドアレイを提供する。ＭＡＣプログラミングエレメント２０６及び２０８のマルチプライ・アキュムレータ２４２及び２４４のそれぞれは、他のＡＬＵユニットのように、クラスタコミュニケーションレジスタ（ＣＣＲ）２３０からのデータ、ローカルレジスタからのデータを利用することができることを理解されたい。
【００２３】
ここで共有メモリ２３０に戻り、１実施の形態では、共有メモリ２３０は、先に記載されたように複数のクラスタコミュニケーションレジスタ（ＣＣＲ）である場合がある。１例では、クラスタコミュニケーションレジスタ（ＣＣＲ）２３０は、それぞれ１６ビットレジスタである場合がある。クラスタコミュニケーションレジスタ２３０は、処理エレメント２０２，２０４，２０６，２０８及び２１０がデータをやり取りするのを可能にし、汎用レジスタとして使用される場合がある。１実施の形態では、データバリッド（ＤＶ）ビットは、様々な処理システムにより、データフロー及びクラスタコミュニケーションレジスタのオーナシップを調整するためにセマフォシステムを実現する場合がある。
【００２４】
図３を参照して、図３は、本発明の１実施の形態に係る、複数のクラスタコミュニケーションレジスタ（ＣＣＲ）３０２1-Nを含む共有メモリ２３０の例を示している。１実施の形態では、それぞれのクラスタコミュニケーションレジスタ３０２1-Nは、１６データビットを含む場合があり、画像信号プロセッサ２００におけるそれぞれの処理エレメントについて、それに付加される１つの更なるデータビット３０４を有している（たとえばＰＥ１、ＰＥ２、ＰＥ３．．．ＰＥn）。このように、データバリッド（ＤＶ）ビットと呼ばれる、これら更なる処理エレメントの識別ビットは、それぞれのクラスタコミュニケーションレジスタのオーナシップを示すために使用される場合がある。たとえば、プロセッサエレメント識別データビット（ＤＶビット）は、クラスタコミュニケーションレジスタを現在所有する処理エレメントを示すためにハイに設定される。
【００２５】
図２を再び参照して、メモリコマンドハンドラ２２０が更に詳細に説明される。メモリコマンドハンドラ２２０は、メモリ２２２（たとえば、データＲＡＭ）に結合される場合があり、このメモリは、画像信号プロセッサ（ＩＳＰ）２００でのデータ、定数及び命令のローカルストレージを可能にする。メモリは、画像処理のアクセスパターン特性について最適化されるローカルストレージについてスケーラブルなメカニズムを提供する。メモリコマンドハンドラ２２０は、コンポーネント、行、列、又は二次元ブロックによるような画像処理により必要されることがある構造化パターンでデータをアクセスするための手段を提供する。メモリコマンドハンドラ２２０は、後に更に詳細に説明される、画像処理アプリケーションにおいて、メモリアドレスジェネレータ（ＭＡＧ）を使用して個々のデータストリームをサポートするために利用される。
【００２６】
先に説明されたように、それぞれのプログラミングエレメント２０２，２０４，２０６，２０８及び２１０が処理することとなるデータは、１以上のクラスタコミュニケーションレジスタ（ＣＣＲ）２３０を通して典型的に到来する。本発明の１実施の形態では、クラスタコミュニケーションレジスタ（ＣＣＲ）２３０は、１６ビット幅であって、したがって、１６ビット幅のデータパスを必要とする。したがって、この実施の形態では、メモリコマンドハンドラ２２０への全ての通信は、同じ１６ビットのデータパス２１を通して行われることが必要とされる。制限された１６ビットデータパス２２１は、セットアップに関する幾つかの問題、メモリコマンドハンドラ２２０を制御に関する幾つかの問題を生じる。たとえば、狭いデータパスは、コマンド数を制限し、それぞれのコマンドに含まれる情報を制限する。しかし、１６ビットデータパスは、画像処理アプリケーションについて最適である。１つの画素はＹＵ、ＹＶ又はＬa、Ｌb又はＹＣr、ＹＣb等のように、１６ビットでのサブサンプルされた色空間により通常は表現される。さらに、例として、以下に記載されるように、１実施の形態に係る、メモリコマンドハンドラ２２０は、固有かつ効率的なやり方で１６ビットデータパスを利用して動作する場合がある。
【００２７】
簡単な外観として、一般に、本実施の形態は、画像処理に関連するデータを記憶する、ローカルメモリに結合される複数のメモリアドレスジェネレータを有するメモリコマンドハンドラを含む画像信号プロセッサに関する。それぞれのメモリアドレスジェネレータは、メモリアドレスをローカルメモリに発生し、画像処理タスクで役立てるためにメモリアドレスに位置されるローカルメモリのデータに実行されるべきコマンドを解釈する。共有メモリは、複数のメモリアドレスジェネレータに結合され、ローカルメモリに送出されるべきデータ、及びメモリアドレスジェネレータにより実行されるべきコマンドを記憶するために使用される。１実施の形態では、共有メモリは、クラスタコミュニケーションレジスタのインタフェースを使用することでメモリレジスタアドレスジェネレータとインタフェースする複数のクラスタコミュニケーションレジスタを有する場合がある。複数のクラスタコミュニケーションレジスタは、データを記憶するためにデータクラスタコミュニケーションレジスタを含み、コマンドを記憶するためにコマンドクラスタコミュニケーションレジスタを含む場合がある。
【００２８】
特に、クラスタコミュニケーションレジスタのペアは、それぞれのメモリアドレスジェネレータに割り当てられる場合があり、クラスタコミュニケーションレジスタのそれぞれのペアは、データクラスタコミュニケーションレジスタ及びコマンドクラスタコミュニケーションレジスタを含んでいる。さらに、以下に説明されるように、メモリコマンドハンドラは、メモリアドレスジェネレータによりローカルメモリへのアクセスを調停するアービタを含んでいる。また、１つの特定の実施の形態では、複数のクラスタコミュニケーションレジスタは、少なくとも１６ビットレジスタであり、１６ビット幅のデータパスは、クラスタコミュニケーションレジスタをメモリアドレスレジスタに結合し、メモリアドレスジェネレータをアービタに結合し、アービタをローカルメモリに結合するために使用される場合がある。
【００２９】
図４を参照して、図４は、本発明の１実施の形態に係る、メモリコマンドハンドラ４００を示すブロック図を示している。メモリコマンドハンドラ４００は、ローカルメモリ４０２と共に、コンポーネント、行、列、又は２Ｄブロックによるような画像処理により必要とされることがあるデータ及び構造化パターンをアクセスするための手段を提供する。メモリコマンドハンドラ４００は、ローカルメモリ４０２と共に動作し、複数のメモリアドレスジェネレータ（ＭＡＧ）４０４、アービタ４０６、クラスタコミュニケーションレジスタ（ＣＣＲ）４１４に結合するためのクラスタコミュニケーションレジスタ（ＣＣＲ）インタフェース４１０、及びグローバルバスインタフェース４２０を含んでいる。メモリアドレスジェネレータ（ＭＡＧ）４０４（たとえば、ＧＢ  ＭＡＧ、ＭＡＧＯ、ＭＡＧ１．．．ＭＡＧ７）は、個々のデータストリームをサポートするために使用される。
【００３０】
特に、図４に示される実施の形態では、９つのメモリアドレスジェネレータ（ＭＡＧ）４０４は、ＭＡＧ０−７を利用して、クラスタコミュニケーションレジスタ（ＣＣＲ）４１４への、及び該レジスタ４１４からの、最大８つの個々のデータストリームをサポートし、グローバルバス（ＧＢ）ＭＡＧを利用してグローバルバスインタフェース４２０を通してグローバルバス４２３からの別の個々のデータストリームをサポートするために利用される。しかし、いずれかの数のメモリアドレスジェネレータが利用され、いずれかの数の適切なデータストリームをサポートすることを理解されたい。ＭＡＧ０−７のそれぞれは、アービタ４０６と同様に、クラスタコミュニケーションレジスタ（ＣＣＲ）インタフェース４１０を通してクラスタコミュニケーションレジスタ（ＣＣＲ）４１４に結合され、ＧＢ  ＭＡＧは、アービタ４０６に直接結合される。クロックサイクルベースでアービタ４０６は、メモリ４０２へのアクセスを制御する。
【００３１】
さらに、グルーバルバスインタフェース４２０は、メモリコマンドハンドラ４００をグローバルバス４２３に結合し、イメージプロセッサの全ての他のＩＳＰの全ての他のＭＡＧに結合する。グローバルバス４２３は、ＰＣＩバスに接続し、イメージプロセッサのすべての他の機能ユニット（図示せず）と同様に、イメージプロセッサの他の画像信号プロセッサ（ＩＳＰ）の全てに結合される。イメージプロセッサの様々なユニット及びレジスタがセットアップされ、グローバルバス４２３を通して制御される場合がある。特に、グローバルバス４２３は、それぞれのＩＳＰのコンフィギュレーションレジスタを読出し及び書込みするために使用される。１実施の形態では、グローバルバスは、１６ビット幅であって、１６ビットデータバス及び８ビットアドレスバスを含んでおり、中断状態をＰＣＩパスに伝達する。メモリコマンドハンドラ４００は、メモリアドレスジェネレータ４０４に全てのコマンドについてグローバルバスインタフェース４２０を通してプログラムされる場合がある。
【００３２】
メモリ４０２へのデータは、幾つかのコマンドを通してと同様に、ＭＡＧ０−７  ４０４を利用して、クラスタコミュニケーションレジスタ（ＣＣＲ）４１４を通して通信される。さらに、メモリ４０２へのデータは、ＧＢ  ＭＡＧを利用して他のＩＳＰの他のＭＡＧからのデータを含んで、グローバルバス４２３から伝達される場合がある。
【００３３】
ここで、メモリコマンドハンドラ４００及びメモリ４０２のコンポーネントのそれぞれは、特に説明される。メモリ４０２で開始して、１実施の形態では、メモリ４０２は、スタティックランダムアクセスメモリ（ＲＡＭ）である場合がある。ＳＲＡＭ４０２は、１実施の形態では、１６ビットワードのＮアドレスとして編成される場合がある。ＳＲＡＭ４０２は、ソフトウェアにとって一つの隣接したメモリ領域として見える。図４に示されるように、ＳＲＡＭブロック４０２は、データイン・ポート（ＤＩ）、データアウト・ポート、コントロールポート（ＣＮＴＬ）及びアドレスポート（Ａ）を有しており、その全ては、アービタ４０６に結合されている。
【００３４】
ここでアービタ４０６を参照して、アービタ４０６は、メモリアドレスジェネレータ（ＭＡＣ）４０４からのＳＲＡＭブロック４０２へのアクセスのための全ての要求を受け、メモリコントロール（ＣＮＴＬ）、アドレス（Ａ）、及びデータ（ＤＩ及びＤＯ）バスのオーナシップを調停する。アービタ４０６は、１実施の形態ではラウンドロビン式の調停を実現し、この場合、アクセスが許可された最後のメモリアドレスジェネレータ４０４が最も低い優先度を想定し、次のメモリアドレスジェネレータ４０４が最も高い優先度を想定し、下降する優先度のチェインがそれぞれ順次にメモリアドレスジェネレータを通して送出される。アービタ４０６は、どのメモリアドレスジェネレータ４０４がメモリアクセスサイクルを実行することを得るかをクロック毎に判定する。
【００３５】
ここでクラスタコミュニケーションレジスタ（ＣＣＲ）インタフェース４１０に戻り、ＣＣＲインタフェース４１０は、メモリアドレスジェネレータを介してＳＲＡＭブロック４０２にデータ及びアドレスを通過し、ＳＲＡＭブロック４０２からのデータ及びコマンドを通過させるため、メモリアドレスジェネレータ（ＭＡＧ）４０４（たとえばＭＡＧ０−７）をクラスタコミュニケーションレジスタ４１４に接続する。メモリアドレスジェネレータ４０４（たとえばＭＡＧ０−７）は、クラスタコミュニケーションレジスタ（ＣＣＲ）４１４の特定のペアに接続される。クラスタコミュニケーションレジスタ（ＣＣＲ）のそれぞれのペアは、１つのコマンドＣＣＲ及び１つのデータＣＣＲを含んでいる。コマンドＣＣＲは、メモリアドレスジェネレータ４０４に様々な読出しコマンド及び書込みコマンドを送出するために使用される。データＣＣＲは、メモリアドレスジェネレータ４０４を介してＳＲＡＭブロック４０２にデータワードを送出するために使用される。
【００３６】
１実施の形態では、適切なデータバリッド（ＤＶ）ビットは、メモリコマンドハンドラ４００のためにクラスタコミュニケーションレジスタ（ＣＣＲ）４１４で設定される場合があり、その特定のメモリアドレスジェネレータ（ＭＡＧ）４０４についてクラスタコミュニケーションレジスタを使用することで、特定のメモリアドレスジェネレータ４０４（たとえばＭＡＧ０−７のうちの１つ）が選択される。メモリコマンドハンドラ４００のデータバリッド（ＤＶ）ビットが設定されていない場合、メモリコマンドハンドラ４００は、クラスタコミュニケーションレジスタにおけるコマンド又はデータに応答しない。これにより、クラスタコミュニケーションレジスタ（ＣＣＲ）４１４は、クラスタコミュニケーションレジスタがメモリコマンドハンドラ内の特定のメモリアドレスジェネレータに接続される場合でさえも、他のプログラミングエレメントと通信するために使用することができる。逆に、メモリアドレスジェネレータがクラスタコミュニケーションレジスタを通してデータをリターンするとき、データバリッド（ＤＶ）ビットの如何なるコンビネーションは、イメージプロセッサ全体のプログラミングエレメントの組み合わせにデータをリターンさせて設定することができる。
【００３７】
図５を簡単に参照して、図５は、本発明の１実施の形態に係る、特定のクラスタコミュニケーションレジスタ（ＣＣＲ）にマッピングされるメモリアドレスジェネレータ（ＭＡＧ）の例を示している。図５に示されるように、ＣＣＲ０及びＣＣＲ１は、コマンド及びデータ５０２及び５０４のそれぞれについてＭＡＧ０に割り当てられる。ＣＣＲ２及びＣＲ３は、コマンド及びデータ５０６及び５０８のそれぞれについてＭＡＧ１に割り当てられ、ＣＣＲ４及びＣＣＲ５は、コマンド及びデータ５１０及び５１２のそれぞれについてＭＡＧ２に割り当てられる、といった具合である。
【００３８】
図４に戻り、ここでメモリアドレスジェネレータ（ＭＡＧ）４０４が説明される。メモリアドレスジェネレータ（ＭＡＧ４０４）は、データクラスタコミュニケーションレジスタ４１４を通してＳＲＡＭメモリブロック４０２に通過されるそれぞれのワードについてアドレスを発生し、ＧＢ  ＭＡＧを通してグローバルバス４２３からと同様に、コマンドクラスタコミュニケーションレジスタ４１４を通してメモリアドレスジェネレータ４０４に送出されるコマンドを解釈するために使用される。１実施の形態では、それぞれの画像信号プロセッサにおけるそれぞれのメモリコマンドハンドラにおいて、９つのメモリアドレスジェネレータ（ＭＡＧ）４０４が存在する。それぞれのメモリアドレスジェネレータ（ＭＡＧ）は、コマンドクラスタコミュニケーションレジスタ（ＣＣＲ）４１４又はグローバルバス４２３を介してコマンドを受け、さらに詳細に以下に説明される、これらをメモリアドレスジェネレータによりサポートされる各種機能にデコードするコマンドインタプリタを含む。
【００３９】
有利なことに、それぞれのメモリアドレスジェネレータ（ＭＡＧ）４０４は、様々なフォーマット及び寸法で二次元アレイを扱うことができるように、画像処理アルゴリズムについて特に最適化される。それぞれのメモリアドレスジェネレータ（ＭＡＧ）４０４のパワー及びフレキシビリティは、クラスタコミュニケーションレジスタ４１４を通して処理エレメントによりプログラムされる各種パラメータにより形成される。有利なことに、本発明の実施の形態により、コマンドは、１つの１６ビットワードとすることが可能である。
【００４０】
本発明の実施の形態に係る、メモリコマンドハンドラ４００のメモリアドレスジェネレータ（ＭＡＧ）４０４は、幾つかのオフセットレジスタ、カウンタ、ポインタ等の使用を通してそれらのフレキシブルな機能を得る。図６に戻り、図６は、本発明の１実施の形態に係る、メモリアドレスジェネレータ（ＭＡＧ）４０４で利用される場合がある各種レジスを示すブロック図である。図６に示されるように、それぞれのメモリアドレスジェネレータ４０４は、マスクレジスタ６０２、データパスデータバリッド（ＤＶ）ビットレジスタ６０４、ベースオフセットレジスタ６０６、メモリポインタレジスタ６０８、第一のインクリメントレジスタ６１０、第二のインクリメントレジスタ６１２、オペレーションコンプリートレジスタ６１４、及び各種制御ビット６１６用のレジスタを含んでいる。勿論、それぞれのメモリアドレスジェネレータ４０４は、ここでは図示されていない更なるレジスタを含む場合がある。さらに、コマンドの符号化は、最大数のパラメータのビットを可能にする方法で達成される場合がある。
【００４１】
先に説明されたように、それぞれのメモリアドレスジェネレータ４０４のコマンドインタプリタは、コマンドクラスタコミュニケーションレジスタ（ＣＣＲ）４１４を介してコマンドを受け、これらを特定のメモリアドレスジェネレータによりサポートされる各種の機能にエンコードする。ここで図７を参照して、図７は、本発明の１実施の形態に係る、メモリアドレスジェネレータ（ＭＡＧ）４０４のそれぞれによりサポートされる場合があるコマンドの例を示している。図７に示されるように、これらのコマンドは、限定されるものではないが、巡回式バッファアドレス指定を形成するためのアドレス計算で利用されるＷＲＩＴＥ  ＭＡＳＫコマンド７０２、読出しデータのターゲット処理エレメントを決定するためのＳＥＴ  ＤＡＴＡ  ＰＡＴＨ  ＤＶ  ＢＩＴ７０４、指定されたアドレスからＲＡＭを読み取るためのＲＥＡＤ  ＩＭＭＥＤＩＡＴＥコマンド７０６、データクラスタコミュニケーションレジスタ（ＣＣＲ）から指定されたＲＡＭアドレスにＲＡＭを書き込むための書込みＷＲＩＴＥ  ＩＭＭＥＤＩＡＴＥコマンド７０８、アドレス計算で使用される初期のオフセット値を提供するＷＲＩＴＥ  ＭＰＲコマンド７１０、１次元又は２次元アドレス指定のためにＸ及びＹインクリメントを提供するためのＷＲＩＴＥ  ＩＮＣＲＥＭＥＮＴ  ＲＥＧＩＳＴＥＲコマンド７１２、アドレス指定で使用されるベースオフセットレジスタを設定するためのＷＲＩＴＥ  ＢＡＳＥ  ＯＦＦＳＥＴ  ＲＥＧＩＳＴＥＲコマンド７１４、メモリアドレスジェネレータ（ＭＡＧ）メモリポインタを使用してデータクラスタコミュニケーションレジスタ（ＣＣＲ）にＮワードを読み出すＲＥＡＤ  ＩＮＤＩＲＥＣＴ，Ｎ  ＷＯＲＤコマンド７１６、ＭＡＧメモリポインタを使用してデータＣＣＲからＮワードを書き込むＷＲＩＴＥ  ＩＮＤＩＲＥＣＴ，Ｎ  ＷＯＲＤコマンド７１８、ブロックトランスファーが完了した処理エレメントを制御するメモリコマンドハンドラー（ＭＣＨ）に合図するために使用されるＲＥＡＤ  ＯＰ  ＣＯＭＰＬＥＴＥコマンド７２０、無限の間接的なメモリコマンドハンドラ（ＭＣＨ）動作を設定するためのＩＮＦＩＮＩＴＥ  ＩＮＤＩＲＥＣＴ  ＯＰＥＲＡＴＩＯＮコマンド７２２を含んでいる。
【００４２】
ここで図８に戻り、図８は、本発明の１実施の形態に係る、コマンドをエンコードする方法の１例を示す図である。たとえば、図８に示されるように、ＲＥＡＤ  ＩＭＭＥＤＩＡＴＥコマンドは、たとえば１６ビットデータパスの上位２ビットにおける００としてエンコードされる。これは、１４ビットをコマンドに含まれる即時のアドレスについて残したままにし、これにより、それぞれのメモリアドレスジェネレータ（ＭＡＧ）に１例では３２ＫＢのデータで直接アドレス指定するための能力を与える。なお、ＷＲＩＴＥ  ＩＭＭＥＤＩＡＴＥコマンドは、ルックアップテーブルがコマンドとしてルックアップテーブルに単に書き込むことで実現することができるように、意図的に００であるように選択される。たとえば、００５７ｈをコマンドクラスタコミュニケーションレジスタ（ＣＣＲ）に書き込むことは、ＲＡＭにおけるロケーション００５７ｈへの即座の読出しを引き起こし、その入力値について新たな出力値をリターンする。勿論、ベースオフセットレジスタは、ルックアップテーブルアドレスをオフセットすることができる。また、コマンドの中には、非常に多くのパラメータデータを必要としないものがあり、より長いコマンドとしてエンコードされる場合がある。この例は、設定読出し動作完了レジスタであり、この例では、僅か９ビットのパラメータデータを必要とする。たとえば、図８に示されるように、多くのコマンドは、固定された値（すなわち０又は１）を有する。
【００４３】
したがって、本発明の実施の形態に係るメモリコマンドハンドラ（ＭＣＨ）を利用する画像信号プロセッサ（ＩＳＰ）を有するイメージプロセッサは、多くの異なる画像処理タスクを処理することができ、１例では単一の１６ビットコマンドをもつ多数のパラメータを制御することができる機能性を生成するアドレスを提供する。メモリアドレスジェネレータ（ＭＡＧ）及びメモリコマンドハンドラの処理能力のあるアドレス指定機能は、に次元のサブサンプルされたアレイのようなデータの自動供給を提供する。さらに、本発明の実施の形態に係るメモリコマンドハンドラ（ＭＣＨ）を利用した画像信号プロセッサ（ＩＳＰ）を有するイメージプロセッサは、プロセッサのプログラマビリティをＡＳＩＣの性能に提供する。さらに、アーキテクチャは、１実施の形態では、（たとえば、色変換、圧縮、及びフィルタ演算）頻繁に使用される画像形成機能の実行を加速しつつ、ワイドレンジの文書処理画像経路（たとえば、高いｐｐｍのモノクロ、バイナリカラー、コントーンカラー、ＭＲＣ−ベースのアルゴリズム等）を実現するためのフレキシビリティを提供する。
【００４４】
本発明の実施の形態、及びその様々な機能コンポーネントが特定の実施の形態で記載されたが、本発明の実施の形態がハードウェア、ソフトウェア、ファームウェア、ミドルウェア又はその組み合わせで実現され、システム、サブシステム、コンポーネント、又はサブコンポーネントで利用されることを理解されたい。ソフトウェア及びハードウェアで実現されたとき、本発明のエレメントは、必要なタスクを実行するための命令／コードセグメントである。プログラム又はコードセグメントは、マシン読取り可能な媒体で記憶され（たとえば、プロセッサ読取り可能な媒体又はコンピュータプログラムプロダクト）、伝送波で実施されるコンピュータデータ信号により送信され、若しくは伝送媒体又は通信リンクを通して搬送波により変調される信号である。マシン読取り可能な媒体は、マシン（たとえばプロセッサ、コンピュータ等）により読取り可能及び実行可能な形式で情報を記憶又は伝送することができる媒体を含む場合がある。マシン読取り可能な媒体の例は、電子回路、半導体メモリ装置、ＲＯＭ、フラッシュメモリ、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）フロプティカルディスク、コンパクトディスクＣＤ−ＲＯＭ、光ディスク、ハードディスク、光ファイバ媒体、無線周波（ＲＦ）リンク等を含んでいる。コンピュータデータ信号は、電子的なネットワークチャネル、光ファイバ、空気、電磁波、ＲＦリンク、バーコード等のような伝送媒体を通して伝播することができる信号を含む場合がある。コードセグメントは、インターネット、イントラネット等のようなネットワークを介してダウンロードされる場合がある。
【００４５】
さらに、本発明の実施の形態は例示的な実施の形態を参照して記載されたが、これらの記載は、限定的な意味で解釈されることが意図されていない。例示的な実施の形態の様々な変更は、本発明の実施の形態が属する技術分野における当業者にとって明らかであって、本発明の精神及び範囲にあると考えられる。
【図面の簡単な説明】
【００４６】
【図１】本発明の１実施の形態に係る、画像処理での使用のためのシステムコンフォギュレーションの例を示すブロック図である。
【図２】本発明の１実施の形態に係る、画像信号プロセッサ（ＩＳＰ）のアーキテクチャの例を示すブロック図である。
【図３】本発明の１実施の形態に係る、複数のクラスタコミュニケーションレジスタ（ＣＣＲ）を含む共有メモリの例を示すブロック図である。
【図４】本発明の１実施の形態に係る、メモリコマンドハンドラを示すブロック図である。
【図５】本発明の１実施の形態に係る、クラスタコミュニケーションレジスタ（ＣＣＲ）にマッピングされるメモリアドレスレジスタ（ＭＡＧ）の例を示す図である。
【図６】本発明の１実施の形態に係る、メモリアドレスジェネレータ（ＭＡＧ）で利用される各種レジスタを示すブロック図である。
【図７】本発明の１実施の形態に係る、メモリアドレスジェネレータ（ＭＡＧ）のそれぞれによりサポートされるコマンドの例を示すリストである。
【図８】本発明の１実施の形態に係る、コマンドをエンコードする方法の１例を示す図である。
【図１】
2007520767.tif 000002
【図２】
2007520767.tif 000003
【図３】
2007520767.tif 000004
【図４】
2007520767.tif 000005
【図５】
2007520767.tif 000006
【図６】
2007520767.tif 000007
【図７】
2007520767.tif 000008
【図８】
2007520767.tif 000009
【国際調査報告】
2007520767.tif 000010
2007520767.tif 000011
2007520767.tif 000012