(57)【要約】  データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータを用いた方法及び装置が、説明される。一実施例では、本装置は、複数のプロセッシング要素（ＰＥ）を備える。複数のハードウェアアクセラレータが、選択ユニットに接続される。レジスタが、選択ユニットと複数のプロセッシング要素に接続される。一実施例では、レジスタは複数のプロセッシング要素によりアクセス可能な複数の汎用レジスタ（ＧＰＲ）と、複数のハードウェアアクセラレータとを備える。一実施例では、ＧＰＲの少なくとも１つは、選択ユニットを介した選択されたハードウェアアクセラレータへのアクセスを可能にするプロセッシング要素をイネーブル化するビットを有する。
2007520766.tif 000002
【特許請求の範囲】
【請求項１】
メディア信号プロセッサの複数のプロセッシング要素によりアクセス可能なレジスタファイルを提供するステップと、
プロセッシング要素により設定された前記レジスタファイル内のレジスタの少なくとも１つのビットに従って、複数のハードウェアアクセラレータから選択されたハードウェアアクセラレータをイネーブル化するステップと、
前記選択されたハードウェアアクセラレータに対し前記プロセッシング要素の所有権を付与するステップと、
から構成されることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、
前記選択されたハードウェアアクセラレータをイネーブル化するステップは、
当該処理がハードウェアアクセラレータの選択を所望するとき、プロセッシング要素がビットを設定するのを可能にするステップと、
前記ビットが設定される場合、前記選択されたハードウェアアクセラレータを起動するステップと、
から構成されることを特徴とする方法。
【請求項３】
請求項１記載の方法であって、
前記選択されたハードウェアアクセラレータをイネーブル化するステップは、
前記複数のプロセッシング要素から制御コマンドを受信するため、前記レジスタファイル内の少なくとも１つのレジスタを指定するステップと、
前記レジスタ内の検出された制御コマンドに従ってメディア処理機能を実行するため、前記選択されたハードウェアアクセラレータを起動するステップと、
から構成されることを特徴とする方法。
【請求項４】
請求項１記載の方法であって、さらに、
前記複数のハードウェア要素に接続された選択ユニットを提供するステップと、
前記複数のプロセッシング要素から制御コマンドを受信するため、前記レジスタファイル内の少なくとも１つのレジスタを指定するステップと、
選択されたハードウェア要素とのアクセスをプロセッシング要素に提供するよう前記選択ユニットに指示するステップと、
受信した制御コマンドに従うメディア処理機能を前記選択されたハードウェアアクセラレータに実行するよう指示するステップと、
を有することを特徴とする方法。
【請求項５】
請求項３記載の方法であって、
前記選択されたハードウェアアクセラレータを起動するステップは、
前記制御コマンドを書き込んだプロセッシング要素を特定するステップと、
前記制御コマンドに従って、前記選択されたハードウェアアクセラレータに対する入力データストリームを決定するステップと、
前記制御コマンドに従って、前記選択されたハードウェアアクセラレータに対する出力データストリームを決定するステップと、
受信した制御コマンドに従ってメディア処理機能を実行するよう前記選択されたハードウェアアクセラレータに指示するステップと、
１以上のデータに応じたプロセッシング要素に対しデータが利用可能か示すため、前記レジスタファイルのレジスタ内の制御ビットを更新するステップと、
１以上のレジスタにおいて命令を実行するのに必要なデータが利用可能となるまで、前記１以上のデータに応じたプロセッシング要素に前記命令の実行を待機するよう求めるステップと、
から構成されることを特徴とする方法。
【請求項６】
メディア信号プロセッサの複数のプロセッシング要素によりアクセス可能なレジスタファイルを提供するステップと、
プロセッシング要素により設定された前記レジスタファイル内のレジスタの少なくとも１つのビットに従って、複数のハードウェアアクセラレータから選択されたハードウェアアクセラレータをイネーブル化するステップと、
前記選択されたハードウェアアクセラレータに対し前記プロセッシング要素の所有権を付与するステップと、
から構成される方法をシステムに実行させるようプログラムするのに用いられる命令を格納した機械可読媒体を有することを特徴とする製造物。
【請求項７】
請求項６記載の製造物であって、
前記選択されたハードウェアアクセラレータをイネーブル化するステップは、
当該処理がハードウェアアクセラレータの選択を所望するとき、プロセッシング要素がビットを設定するのを可能にするステップと、
前記ビットが設定される場合、前記選択されたハードウェアアクセラレータを起動するステップと、
から構成されることを特徴とする製造物。
【請求項８】
請求項６記載の製造物であって、
前記選択されたハードウェアアクセラレータをイネーブル化するステップは、
前記複数のプロセッシング要素から制御コマンドを受信するため、前記レジスタファイル内の少なくとも１つのレジスタを指定するステップと、
前記レジスタ内の検出された制御コマンドに従ってメディア処理機能を実行するため、前記選択されたハードウェアアクセラレータを起動するステップと、
から構成されることを特徴とする製造物。
【請求項９】
請求項６記載の製造物であって、さらに、
前記複数のハードウェア要素に接続された選択ユニットを提供するステップと、
前記複数のプロセッシング要素から制御コマンドを受信するため、前記レジスタファイル内の少なくとも１つのレジスタを指定するステップと、
選択されたハードウェア要素とのアクセスをプロセッシング要素に提供するよう前記選択ユニットに指示するステップと、
受信した制御コマンドに従うメディア処理機能を前記選択されたハードウェアアクセラレータに実行するよう指示するステップと、
を有することを特徴とする製造物。
【請求項１０】
請求項８記載の製造物であって、
前記選択されたハードウェアアクセラレータを起動するステップは、
前記制御コマンドを書き込んだプロセッシング要素を特定するステップと、
前記制御コマンドに従って、前記選択されたハードウェアアクセラレータに対する入力データストリームを決定するステップと、
前記制御コマンドに従って、前記選択されたハードウェアアクセラレータに対する出力データストリームを決定するステップと、
受信した制御コマンドに従ってメディア処理機能を実行するよう前記選択されたハードウェアアクセラレータに指示するステップと、
１以上のデータに応じたプロセッシング要素に対しデータが利用可能か示すため、前記レジスタファイルのレジスタ内の制御ビットを更新するステップと、
１以上のレジスタにおいて命令を実行するのに必要なデータが利用可能となるまで、前記１以上のデータに応じたプロセッシング要素に前記命令の実行を待機するよう求めるステップと、
から構成されることを特徴とする製造物。
【請求項１１】
複数のプロセッシング要素と、
選択ユニットに接続された複数のハードウェアアクセラレータと、
前記選択ユニットと前記複数のプロセッシング要素とに接続されたレジスタファイルと、
から構成されるプロセッサであって、
前記レジスタファイルは、前記複数のハードウェアアクセラレータ、前記選択ユニット及び前記複数のプロセッシング要素によりアクセス可能な複数の汎用レジスタを有し、
前記汎用レジスタの少なくとも１つは、選択されたハードウェアアクセラレータを前記選択ユニットに起動するようプロセッシング要素に指示することを可能にする少なくとも１つのビットを有する、
ことを特徴とするプロセッサ。
【請求項１２】
請求項１１記載のプロセッサであって、
前記複数のプロセッシング要素は、
前記レジスタファイルに接続され、入力データを受信する入力プロセッシング要素と、
前記レジスタファイルに接続され、データを送信する出力プロセッシング要素と、
から構成されることを特徴とするプロセッサ。
【請求項１３】
請求項１１記載のプロセッサであって、
前記選択ユニットは、前記レジスタファイルの少なくとも１つのレジスタ内のプロセッシング要素から制御コマンドを受信し、該受信した制御コマンドに従うメディア処理機能を実行するため、前記選択されたハードウェアアクセラレータを起動することを特徴とするプロセッサ。
【請求項１４】
請求項１１記載のプロセッサであって、
前記制御ユニットは、制御コマンドを書き込んだプロセッシング要素を特定し、前記選択されたハードウェアアクセラレータから前記特定されたプロセッシング要素に対してデータが利用可能であるときを示すよう前記レジスタファイルのレジスタ内の制御ビットを設定することを特徴とするプロセッサ。
【請求項１５】
請求項１１記載のプロセッサであって、
プロセッシング要素は、ハードウェアアクセラレータの選択を所望するときにビットを設定し、１以上のデータに応じたプロセッシング要素を特定する１以上のビットを設定し、該１以上のビットがリセットされるまで前記特定されたプロセッシング要素が命令を実行するのを阻止することを特徴とするプロセッサ。
【請求項１６】
請求項１１記載のプロセッサであって、
前記プロセッシング要素は、前記レジスタファイル内の少なくとも１つのレジスタに制御コマンドを書き込み、該制御コマンドに従うメディア処理機能を実行するよう選択されたハードウェアアクセラレータに指示し、前記選択されたハードウェアアクセラレータが使用中であることを示すため制御ビットを設定することを特徴とするプロセッサ。
【請求項１７】
請求項１１記載のプロセッサであって、
プロセッシング要素は、１以上のデータに応じたプロセッシング要素を特定するため前記レジスタファイルのレジスタ内の１以上の制御ビットを設定し、前記特定されたプロセッシング要素を停止し、該プロセッシング要素により必要とされるデータが１以上のレジスタにおいて利用可能になるまで、命令の実行を阻止することを特徴とするプロセッサ。
【請求項１８】
請求項１１記載のプロセッサであって、
前記ハードウェアアクセラレータは、画像処理ハードウェアアクセラレータからなることを特徴とするプロセッサ。
【請求項１９】
請求項１１記載のプロセッサであって、
前記ハードウェアアクセラレータは、映像処理ハードウェアアクセラレータからなることを特徴とするプロセッサ。
【請求項２０】
請求項１１記載のプロセッサであって、
前記ハードウェアアクセラレータは、音声処理ハードウェアアクセラレータからなることを特徴とするプロセッサ。
【請求項２１】
入出力ポートを介し共に接続され、各メディア信号プロセッサ間のデータ交換を可能にする複数のメディア信号プロセッサから構成されるシステムであって、
前記メディア信号プロセッサは、
複数のプロセッシング要素と、
選択ユニットに接続された複数のハードウェアアクセラレータと、
前記選択ユニットと前記複数のプロセッシング要素とに接続されたレジスタファイルと、
前記メディア信号プロセッサの１以上に接続されたメモリインタフェースと、
前記メモリインタフェースに接続されたランダムアクセスメモリと、
から構成され、
前記レジスタファイルは、前記複数のハードウェアアクセラレータ及び前記複数のプロセッシング要素によりアクセス可能な複数の汎用レジスタを有し、
前記汎用レジスタの少なくとも１つは、前記選択ユニットを介し選択されたハードウェアアクセラレータをプロセッシング要素が起動することを可能にする少なくとも１つのビットを有する、
ことを特徴とするシステム。
【請求項２２】
請求項２１記載のシステムであって、
前記選択ユニットは、前記レジスタファイルの少なくとも１つのレジスタ内のプロセッシング要素から制御コマンドを受信し、該受信した制御コマンドに従うメディア処理機能を実行するため、前記選択されたハードウェアアクセラレータを起動することを特徴とするシステム。
【請求項２３】
請求項２１記載のシステムであって、
前記制御ユニットは、制御コマンドを書き込んだプロセッシング要素を特定し、前記選択されたハードウェアアクセラレータから前記特定されたプロセッシング要素に対してデータが利用可能であるときを示すよう前記レジスタファイルのレジスタ内の制御ビットを設定することを特徴とするシステム。
【請求項２４】
請求項２１記載のシステムであって、
プロセッシング要素は、ハードウェアアクセラレータの選択を所望するときにビットを設定し、１以上のデータに応じたプロセッシング要素に対応する１以上のビットを設定し、該１以上のビットがリセットされるまで前記特定されたプロセッシング要素が命令を実行するのを阻止することを特徴とするシステム。
【請求項２５】
請求項２１記載のシステムであって、
前記プロセッシング要素は、前記レジスタファイル内の少なくとも１つのレジスタに制御コマンドを書き込み、該制御コマンドに従うメディア処理機能を実行するよう選択されたハードウェアアクセラレータに指示し、前記選択されたハードウェアアクセラレータが使用中であることを示すため制御ビットを設定することを特徴とするシステム。
【請求項２６】
請求項２１記載のシステムであって、
プロセッシング要素は、１以上のデータに応じたプロセッシング要素を特定するため前記レジスタファイルのレジスタ内の１以上の制御ビットを設定し、前記特定されたプロセッシング要素を停止し、該プロセッシング要素により必要とされるデータが１以上のレジスタにおいて利用可能になるまで、命令の実行を阻止することを特徴とするシステム。
【請求項２７】
請求項２１記載のシステムであって、
前記ランダムアクセスメモリ（ＲＡＭ）は、シンクロナスデータランダムアクセスメモリ（ＳＤＲＡＭ）であることを特徴とするシステム。
【請求項２８】
請求項２１記載のシステムであって、
前記ＳＤＲＡＭは、ダブルデータレート（ＤＤＲ）ＳＤＲＡＭであることを特徴とするシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の技術分野］
本発明の１以上の実施例は、一般にデジタル信号処理の技術分野に関する。より詳細には、本発明の実施例の１以上は、データドリブンハードウェアにおける選択可能なハードウェアアクセラレータのための装置及び方法に関する。
［発明の背景］
マルチプロセッシングデジタル信号プロセッサは、一般に階層的またはピア・ツー・ピアプロセッサアレイを利用する。残念なことに、新たなプロセッシング要素がデジタル信号プロセッサに追加されると、既存のコードの書き換えが必要となる。さらに、デジタル信号プロセッサを実行するソフトウェアは、ハードウェアタイミングに依存し、このため、異なるシリコン処理技術間での移植性はない。この結果、これらのプロセッサの一バージョンに書き込まれたバイナリまたはアセンブリコードは、異なるプロセッシング要素を有する他のバージョンへの移植性はないかもしれない。マルチプロセッシングデジタル信号プロセッサを実現する一技術は、データドリブンアーキテクチャの利用である。
【０００２】
データドリブンアーキテクチャと対照的に、現在広く利用されているプロセッサは、いわゆるフォン・ノイマン論理に従い開発されたものである。フォン・ノイマン論理によると、プロセッサは１つずつ逐次的に命令を処理する。さらに、フォン・ノイマンプロセッサは、クロックを用いてデータ入出力（Ｉ／Ｏ）を制御し、一時点に１つの命令によりプログラムを実行するよう動作する。この結果、処理スピードの向上には、増大する電力消費を導くクロック周波数の増加を必要とする。
【０００３】
言い換えると、マルチプロセッサの機能は、データ転送及びメモリへのデータ書き込みの同期を必要とする。同期処理の一方法は、すべての回路をクロック信号と呼ばれる共通の信号に結び付けることである。残念なことに、内部回路の大多数はこのクロックに結び付けられているため、データ量の大きなアプリケーションを処理する際には、内部回路は良好に実行されない。一方、データドリブンアーキテクチャは、データシーケンスに関係なく、データが利用可能であるときのみ処理を行うプロセッサを利用する。従って、複数のデータが入力されるときには常に、複数のプログラムが読み込まれるため、データ処理はデータドリブンアーキテクチャ内でパラレルに実行される。
【０００４】
ハードウェアアクセラレータは、処理を向上及び高速化するため、よく利用されるデータ処理機能または処理を高速化するよう設計されたものである。データドリブンアーキテクチャでは、複数のハードウェアアクセラレータがデータ処理パフォーマンスを向上させるため、デジタル処理ユニットに実装されているかもしれない。残念なことに、デジタルプロセッシングユニット内部で制御可能なハードウェアアクセラレータの個数は、ハードウェアアクセラレータのアドレッシングなどの複数の要因により制限される。これらの要因の結果として、ハードウェアアクセラレータの個数は、少数の大規模かつ複雑なハードウェアアクセラレータに制限される。この要求は、データドリブンアーキテクチャのデジタルプロセッシングユニット内部の複数のより小規模かつシンプルなハードウェアアクセラレータを有するという要求と相反するものである。
【０００５】
［詳細な説明］
データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータを用いた方法及び装置が説明される。一実施例では、本装置は、複数のプロセッシングユニット（ＰＥ）を備える。複数のハードウェアアクセラレータが、選択ユニットに接続されている。さらに、レジスタが、選択ユニット及び複数のプロセッシングユニットに接続されている。一実施例では、当該レジスタは、複数のアクセラレータと共に、複数のプロセッシング要素によりアクセス可能な複数の汎用レジスタ（ＧＰＲ）を備える。一実施例では、ＧＰＲの少なくとも１つは、プロセッシングユニットが選択ユニットを介し選択されたハードウェアアクセラレータにアクセス可能となるためのビットを有する。
【０００６】
メディア処理アプリケーションは、典型的には、大量のデータに対する少数の処理リセットを実行する。命令フローアプリケーション用に設計された汎用プロセッサは、汎用プロセッサがフォン・ノイマン論理に従い設計されているため、データ量の大きなアプリケーションに対しては良好には機能しない。フォン・ノイマン論理によると、プロセッサは一つずつ逐次的に命令を処理する。さらに、汎用プロセッサの機能は、データ転送及びデータのメモリへの書き込みの同期を必要する。この同期方法は、すべての回路を通常はクロック信号と呼ばれる共通信号に結び付けることにより実行される。
【０００７】
従って、近年の進歩により、画像処理アプリケーションなどのデータ量の大きなアプリケーションのためのデータドリブンアーキテクチャが利用されるようになった。汎用プロセッサと対照的に、データドリブンアーキテクチャは、データシーケンスに関係なく、データが利用可能なときに限り機能するプロセッサを利用する。複数のデータが入力されるときは常に、プログラムが読み込まれるため、データ処理はデータドリブンアーキテクチャ内でパラレルに実行される。従って、一実施例は、以下に限定されるものではないが、映像処理、画像処理、音声処理、セキュリティベースアプリケーションなどを含むメディア処理アプリケーションなどのデータ量の大きなアプリケーションを実行するため、データドリブンアーキテクチャ内に組み込まれるメディア信号プロセッサ（ＭＳＰ）を提供する。
【０００８】
図示されるように、メディア信号プロセッサ（ＭＳＰ）１００は、１以上のプロセッシング要素１２０（１２０−１，．．．，１２０−ｎ）から構成される。図示されるように、各プロセッシング要素（ＰＥ）１２０は、通信制御レジスタファイル１１０に接続される。レジスタファイル１１０は、ＰＥ１２０によるデータ交換を可能にすると共に、レジスタファイル１１０内に含まれる１以上の汎用レジスタ（ＧＰＲ）内に格納機能を提供する。ＰＥ１２０は、ＭＳＰ１１０の基本構成ブロックであり、マルチプライ−アキュムレート命令、ビット回転命令などのカスタムインタフェース機能、算術論理ユニット機能及びフロー制御を提供するよう構成された命令セットを有するものであってもよい。また、ＭＳＰ１００が実行するよう構成された機能に応じて、ＰＥ１２０は、所望の機能を実現し、メディア信号プロセッサ１００により実現されるメディア処理アプリケーションのアルゴリズム部分をパラレルに実行するよう分割されてもよい。
【０００９】
メディア処理アプリケーションのパフォーマンスを向上及び促進するため、ＭＳＰ１００は、複数のハードウェアアクセラレータ１５０（１５０−１，．．．，１５０−ｎ）を備える。従来、ハードウェアアクセラレータは、よく利用されるメディア機能を高速化するためのハードウェア論理を提供するよう構成されている。例えば、ＭＳＰ１００が画像処理アプリケーションを実行するよう構成されている場合、ハードウェアアクセラレータは、例えば、２レベルテキストエンコーダ／デコーダ機能、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、ハフマンエンコーダ／デコーダ機能、２Ｄ三角フィルタ機能などを実行するよう構成可能である。
【００１０】
このような構成では、ハードウェアアクセラレータは、通信制御レジスタ１００に配線化実装された１または２のハードウェアアクセラレータに限定されるであろう。さらに、ハードウェアアクセラレータは、ＰＥ１２０により直接制御される。ＰＥ１２０の命令セットは、ＭＳＰの他のＰＥ１２０及びハードウェアアクセラレータのアドレッシングを処理するよう構成される。残念なことに、ＰＥ１２０により制御可能なハードウェアアクセラレータとＰＥの個数は、ハードウェアアクセラレータのアドレッシングに割当てられる命令ワードのビット数を含む複数の要因により制限される。この結果、従来の画像信号プロセッシングユニットの結果として得られる制御ビット及びハードウェアアクセラレータの個数を制限することが望ましい。
【００１１】
従来の画像信号プロセッシングユニットと対照的に、ＭＳＰ１００は、従来の画像信号プロセッサの大規模かつ複雑なハードウェアアクセラレータのペアに対して、複数のより小規模かつシンプルなハードウェアアクセラレータを利用するよう構成される。一実施例では、制御論理１３０と共にスイッチ１４０が、複数のハードウェアアクセラレータに対応するよう設けられる。従って、ＰＥ１２０は、通信制御レジスタファイル１１０内のレジスタを介して選択されたハードウェアアクセラレータに指示することができる。ＰＥ１２０による選択されたハードウェアアクセラレータのイネーブル化及び起動が、以下においてより詳細に説明される。従って、ＭＳＰ１００は、指定されたハードウェアアクセラレータ内の所望の技術の一部を実現することによって（「メディア処理機能」）、画像処理アプリケーション、映像処理アプリケーション、音声処理アプリケーション、セキュリティアプリケーションなどを同時に実行するよう構成されてもよい。
【００１２】
図２は、図２に図示されるようなＭＳＰ１００をさらに示すブロック図である。図示されるように、ＭＳＰ２００はさらに、各種プロセッシング要素１２０の構成を示す。一実施例では、汎用プロセッシング要素（ＧＰＥ）は、より複雑なＰＥが生成可能な基本プロセッシング要素である。一実施例では、ＰＥは、入力データストリームを受付ける入力ポートに接続された入力プロセッシング要素（ＩＰＥ）、汎用プロセッシング要素（ＧＰＥ）、マルチプライアキュムレートプロセッシング要素（ＭＡＣＰＥ）、及び所望の処理機能を実行するため出力データストリームを送信する出力ポートに接続された出力プロセッシング要素（ＯＰＥ）として分類されてもよい。
【００１３】
さらに、ＭＳＰ２００は、オフチップメモリに関する帯域幅ボトルネックを軽減するため、ローカルデータ及び変数の格納用の内部メモリを備える。例えば、ＭＳＰ２００は、複数のデータストリームを処理するメモリコマンドハンドラ（ＭＣＨ）と共に、データＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２７０を備えるようにしてもよい。図示されるように、入力ＰＥ２２０−１と出力ＰＥ２２０−５は、データストリームの入出力処理を扱い、ＰＥ２２０−２〜２２０４は、ハードウェアアクセラレータ２５０（２５０−１，．．．，２５０−ｎ）を用いることにより、あるタイプのアルゴリズム機能を実行する。さらに、各ＰＥ２２０は、例えば、１６ビット長であり、１６ビットオペランドまたは８ビットオペランドに利用可能な１６個のローカルレジスタ及び間接レジスタを備えるようにしてもよい。所望のメディア処理機能を実行するため、各種ＰＥがレジスタファイル２１０を利用する。
【００１４】
一実施例では、レジスタファイル３００が、ＰＥによるデータ交換を可能にし、図３Ａに示されるようなデータ操作用の汎用レジスタを提供するためのレジスタファイル２１０として利用される。一実施例では、データ有効（ＤＶ）ビットが、ＰＥによる汎用レジスタ（ＧＰＲ）３１０（３１０−１，．．．，３１０−ｎ）の所有権及びデータフローを調整するため、セマフォーシステムを実現する。一実施例では、すべてのＰＥ２２０は、レジスタファイル３００とデータを共有する際、図４〜９を参照することにより示されるように、標準的な所定のセマフォープロトコルに従うことが求められる。一実施例では、各ＰＥ２２０は、例えば、１２８命令メモリとして、命令を保持する必要がある。典型的には、これらの命令は、データフロー及び算術命令に加えて、１以上のループ処理から構成されてもよい。
【００１５】
一実施例では、ＧＰＲ３１０は、データ有効（ＤＶ）ビット３０６（３０６−１，．．．，３０６−ｎ）によりＧＰＲ３１０を通過するデータをタグ付けすることによって、ＰＥ２２０間でデータを交換する。ＤＶビット３０６の目的は、データ格納リソースの所有権の確立と、１以上のデータ利用者の確率と、選択されたハードウェアアクセラレータの起動の特定の３つである。図４に示された実施例では、ＰＥ間のデータ同期処理が説明される。まず、ＰＥ０（２２０−２）が、例えば、ＰＥ１（２２０−３）による利用を意味するＧＰＲ３６０に書き込まれた結果によりＨＷＡ  ＤＶビット３６２（図３Ａのビット３０４）を設定することにより、選択されたハードウェアアクセラレータ（ＨＷＡ）２５０のイネーブル化を要求する。また、ＰＥ０はＤＶビット３６４をアサートする。さらに、ＨＷＡ  ＤＶビット３６２がまた、ＰＥ０（２２０−２）によるＨＷＡ２５０の制御を示すよう設定される。
【００１６】
一実施例では、ＨＷＡ  ＤＶビット３６２の設定は、プロセッシング要素がＨＷＡ２５０のイネーブル化または起動を要求しているということを制御論理２３０に通知する。一実施例では、図３Ｂに示されるように、汎用レジスタ３２０が制御論理２３０のための制御レジスタとして指定されてもよい（図２）。このような実施例によると、ＰＥ２２０は、レジスタ３２０が制御ブロック２３０のコマンドチャネルとして機能するように、指定されたレジスタ３２０に制御データを書き込むためのものである。一実施例では、ＰＥ２２０は、出力データのための位置を特定すると共に、ハードウェアアクセラレータの入力データ３２４を特定する選択されたハードウェアアクセラレータ（ＨＷＡセレクト）３２２を示すためのものである。一実施例では、ＰＥ２２０は、制御データ３３０に書き込むことによりメディア処理機能を実行するようＨＷＡ２５０に指示する。他の実施例では、コントローラ（図示せず）は、指定されたハードウェアアクセラレータをイネーブル化するようコントローラ２３０（図２）を設定するためのものとすることが可能である。
【００１７】
図５を再び参照するに、ＨＷＡ  ＤＶビット３６２とＤＶビット３６４が、ＧＰＲ０（３６０）の所有権をまず主張し、生成されたデータが選択されたハードウェアアクセラレータ２２０により与えられることを示すため、ＰＥ０（２２０−２）により設定される。ＰＥ１（２２０−３）は、ＧＰＲ３６０のデータに依存しており、それが利用可能となるまで停止される。図示されるように、データが利用可能になるまで、ＰＥ１（２２０−３）とＰＥ２（２２０−４）は停止される。また、ＨＷＡが計算を実行し、出力データをＧＰＲ３６０に書き込むと、図６に示されるようにＰＥ１のＤＶビット３６６が設定される。一実施例では、ＤＶビット３６６がＧＲＰ３６０に設定されているため、ＰＥ１は当該データを読み込み、実行を継続することができる。ＧＲＰ３６０のデータがＰＥ１（２２０−３）により１回だけ必要とされる仮定すると、ＰＥ１（２２０−３）は読み出されたデータと共に、それの対応するＤＶビット３６６をクリアする。一実施例では、ＤＶビットのリセットと共に、レジスタ３１０へのリード命令が一命令として実行される。
【００１８】
図７において、ＰＥ０（２２０−２）は、ＰＥ２（２２０−４）の新たなデータを生成し、結果をＧＰＲ３６０に書き込む。データがＰＥ２（２２０−４）によるデータの読み込みを可能にするためＧＰＲ３６０に書き込まれると、ＰＥ０はＤＶビット３６８を設定する。ＰＥ０は、図８に示されるように、それがＧＰＲ３６０により終了されたことを示すＤＶビット３６２をリセットする。ＤＶビット３６８のアサート処理の検出は、データが利用可能であることを示す。この結果、ＤＶビット３６８が処理を再開するよう設定されるため、ＰＥ２が停止から解放される。次に、ＰＥ２（２２０−４）がＧＰＲ３６０からデータを読出し、ＤＶビット３６８をクリアする。
【００１９】
このため、一度クリアされると、すべてのＤＶビットが図９に示されるようにリセットされるため、ＧＰＲ３６０はすべてのＰＥ２２０に利用可能となる。ここで説明されるように、「設定」、「アサート」、「リセット」または「デアサート」の用語は、特定の論理値を意味するものではない。ビットは「１」に設定されてもよく、また「０」に設定されてもよく、何れも本発明の実施例とみなされる。この結果、ここで説明される実施例によると、ビットはアクティブ「０」（アサートされたロー信号またはアクティブ「１」（アサートされたハイ信号）であってもよい。
【００２０】
従って、ＤＶビットを用いることにより、ＰＥはレジスタファイル３００（図３Ａ）内のＧＰＲ３１０の所有権を指定することが可能である。一実施例では、設定されたＤＶビットの検出は、データがＧＰＲ３６０に書き込まれるまでデータに依存するＰＥ２２０を停止させる。一実施例では、ＨＷＡ  ＤＶビット３６２は、要求されたデータがＰＥ２２０または選択されたＨＷＡにより生成されたものか示す。一実施例では、制御レジスタ３２０（図３Ｂ）は、ＨＷＡ２５０と当該ＨＷＡ２５０を選択したＰＥ２２０とを特定するためアクセスされる。従って、ＭＳＰ２００の各種ＰＥ２２０は、データドリブンであり、指定されたプログラムデータフローとは関係なく機能する。
【００２１】
図１０は、本発明の一実施例によるメディアプロセッサ４００を構成するため結合された複数のＭＳＰ２００を備えるブロック図を示す。図示されるように、ＭＳＰ２００は、データがユニット間でフローするのを可能にする双方向データ接続を可能にする各種ポートを備える。各ポートは、各種の独立した一方向データバスを介しデータを同時に送受信することができる。一実施例では、ＭＳＰ２００の各種ポートは、ポート選択レジスタなどを介し制御された２つのユニット間の各方向におけるＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）装置から構成される。
【００２２】
従って、ユニット内の任意のポートが、例えば、１６ビット長などのデータバスを利用するその他のＭＳＰ２００のそれぞれのポートに接続可能である。従って、メディアプロセッサ４００は、複数のＭＳＰ２００を用いてデータを自由に交換及び共有し、音声、映像及び画像処理アプリケーションなどのデータ量の大きなアプリケーションのパフォーマンスを向上させる。
【００２３】
さらに、メディアプロセッサ４００のＭＳＰ２００内の各種ＨＷＡを備えることにより、メディアプロセッサ４００が、映像処理アプリケーション、画像処理アプリケーション、音声処理アプリケーションなどの内部で利用される。さらに、ストリーム及びブロック暗号やキー生成装置などのセキュリティベースアクセラレータを搭載することにより、メディアプロセッサ４００は、所望のメディア処理アプリケーションに対して交換されるデータをセキュアなものとする。さらに、メディアプロセッサ４００は、メモリアクセスユニット４２０及び４２５と、メモリインタフェースユニット４３０及び４３５を備える。同様に、入出力（Ｉ／Ｏ）ブロック４６０は、各種Ｉ／Ｏ装置へのアクセスを提供する。
【００２４】
一実施例では、メディアプロセッサ４００は、所望のメディア処理機能を提供するため、データドリブンアーキテクチャに搭載されていてもよい。一実施例では、データドリブンメディアアーキテクチャ５００が、図１１を参照して示される。図１１は、本発明の一実施例によるデータドリブンメディアアーキテクチャ５００のシステムレベルの図を示す。メディアアーキテクチャ５００は、メモリ４５０及び４４０に接続されるメディアプロセッサ４００を備える。一実施例では、メモリは、例えば、１３３ＭＨｚで実行されるデュアルデータレート（ＤＤＲ）シンクロナスデータランダムアクセスメモリ（ＳＤＲＡＭ）（２６６−ＭＨｚＤＤＲ装置）である。
【００２５】
図示されるように、入力メディアストリーム５０２が、画素情報、音声ストリーム、映像ストリームなどのメディアストリームを処理するメディアプロセッサ４００に提供される。メディアプロセッサ４００は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスなどのバスに接続される。バス５６０は、メモリ５２０に接続されるホストプロセッサ５１０との接続を可能にする。同様に、バス５６０は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）５３２、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）プロトコル１３９４、パラレルポート５３６、及び電話５３７を備えるＩ／Ｏインタフェース５３０に接続される。さらに、ネットワークインタフェース５４０は、ネットワーク５５０とバス５６０とを接続する。
【００２６】
従って、メディアアーキテクチャ装置がより汎用的なメディア処理の実現に進むに従い、固定されたメディア処理機能アクセラレータに対する要求は、画像信号プロセッサ内で現在用いられている大規模かつ複雑なハードウェアアクセラレータと対照的に増大している。例えば、メディア信号プロセッサは、映像符号化中に限って用いられる絶対誤差合計（ＳＡＤ）エンジンなどのメディア処理機能を実現するようにしてもよい。同一のＭＳＰがまた、表示処理中に限って用いられるスケーリングアクセラレータを有するようにしてもよい。追加的なメディア処理機能はまた、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）映像再生処理などのビットストリーム復号化中に用いられる可変長符号デコーダブロックであってもよい。
【００２７】
開示される実施例によると、各アクセラレータは、図１〜３Ｂを参照して示されるように、通信レジスタのＰＥ選択ビットまたはＰＥの命令ワードの重要ビットを占有することなく同一のＭＳＰに存在可能である。従って、ここで開示されるメディア信号プロセッサにより利用されるハードウェアアクセラレータは、データドリブンアーキテクチャの通信制御レジスタのパスから切り替えられるとき、自らのコンテクストを維持することができる。さらに、ＰＥ選択ビットのパスの変更は、使用されていないときには、ハードウェアアクセラレータの非イネーブル化を可能にする。従って、専用制御レジスタなどを利用すると、ＰＥは所望のハードウェアアクセラレータの選択を制御することができる。
【００２８】
他の実施例
メディアを提供するＭＳＰの一実現形態のいくつかの特徴が説明された。しかしながら、ＭＳＰの各種実現形態が、上記特徴の補完、補充及び／または置換を含む多数の特徴を提供する。特徴は、各実現形態におけるデジタル信号の一部またはメディアの一部として実現することが可能である。さらに、説明のため上記記載は、本発明の実施例の完全なる理解を提供するため、具体的専門用語を利用した。しかしながら、本発明の実施例を実現するのに上記具体的詳細は必ずしも必要でないことは、当業者には明らかであろう。
【００２９】
さらに、ここで開示された実施例はＭＳＰのためのものであるが、本発明の実施例は他のシステムに適用可能であるということは、当業者には理解されるであろう。実際、データドリブンのためのシステムは、添付された請求項により規定されるような本発明の実施例の範囲内のものである。上述の実施例は、本発明の実施例の原理及びそれの実践的用途を最善に説明するため、選択及び説明されたものである。これらの実施例は、当該技術分野の他の当業者が想定される特定の利用に適するような各種変更を有する各種実施例及び本発明を最も良く利用できるように選ばれたものである。
【００３０】
本発明の各種実施例の構成及び機能の詳細と共に、本発明の各種実施例の多数の特徴及び効果が上記記載で与えられたが、本開示は単なる例示的なものであるということを理解されたい。一部のケースでは、特定の部分のみがそのような１つの実施例により詳細に説明されている。にもかかわらず、そのような部分が、本発明の他の実施例において利用可能であるということが、認識及び意図される。特に本発明の実施例の原理の範囲内のパーツの管理及び構成の問題などの変更が、添付された請求項が表現される用語の広い一般的な意味により示される程度まで可能である。
【００３１】
一例となる実施例とベストモードが開示されたが、以下の請求項により規定されるような本発明の実施例の範囲内に留まりながら、開示された実施例に対して変更及び変形が可能である。
【図面の簡単な説明】
【００３２】
【図１】図１は、本発明の一実施例によるメディア信号プロセッサを示すブロック図である。
【図２】図２は、本発明のさらなる実施例によるメディア信号プロセッサを示すブロック図である。
【図３Ａ】図３Ａは、本発明のさらなる実施例による図１及び２の通信制御レジスタをさらに示すブロック図である。
【図３Ｂ】図３Ｂは、本発明の一実施例によるハードウェアアクセラレータ制御レジスタを示すブロック図である。
【図４】図４は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。
【図５】図５は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。
【図６】図６は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。
【図７】図７は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。
【図８】図８は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。
【図９】図９は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。
【図１０】図１０は、本発明の一実施例によるメディアプロセッサを示すブロック図である。
【図１１】図１１は、本発明の一実施例によるメディア処理アーキテクチャを示すシステムレベルの図である。
【図１】
2007520766.tif 000003
【図２】
2007520766.tif 000004
【図３Ａ】
2007520766.tif 000005
【図３Ｂ】
2007520766.tif 000006
【図４】
2007520766.tif 000007
【図５】
2007520766.tif 000008
【図６】
2007520766.tif 000009
【図７】
2007520766.tif 000010
【図８】
2007520766.tif 000011
【図９】
2007520766.tif 000012
【図１０】
2007520766.tif 000013
【図１１】
2007520766.tif 000014
【国際調査報告】
2007520766.tif 000015
2007520766.tif 000016