(57)【要約】  デバイスは、グラフィックス、オーディオ、ビデオ、カメラ、ゲームなどのような様々なタイプのマルチメディアに関する複数のアプリケーションを同時にサポートできるマルチメディア・プロセッサを含む。  マルチメディア・プロセッサは、アプリケーションに関する情報、データ及び状態情報を蓄積するために構成可能な記憶リソース、及びアプリケーションに関する様々なタイプの処理を実行するための割り当て可能な処理装置を含む。構成可能な記憶リソースは、アプリケーションに関する命令を蓄積するための命令キャッシュと、アプリケーションに関するデータを蓄積するためレジスタ・バンクと、アプリケーションのスレッドに関する状態情報を蓄積するためのコンテキスト・レジスタなどを含む。前記処理装置は、演算論理装置(ALU)コア、初等関数コア、ロジック・コア、テクスチャ・サンプラ、ロード制御装置、フロー・コントローラなどを含む。前記マルチメディア・プロセッサは、各アプリケーションに記憶リソースの構成可能な一部を割り当て、これらのアプリケーションが要求した際、前記アプリケーションに処理装置を動的に割り当てる。【選択図】図１
2010519652.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションを同時にサポートするためのマルチメディア・プロセッサを含むデバイスであって、前記マルチメディア・プロセッサは、
前記複数のアプリケーションに関する命令、データ、状態情報を蓄積するための構成可能な記憶リソースと、
前記複数のアプリケーションに関する処理を実行するための割り当て可能な処理装置と、
を具備し、
前記マルチメディア・プロセッサは、各アプリケーションに前記記憶リソースの構成可能な一部分を割り当て、前記アプリケーションによって要求された際、前記複数のアプリケーションに前記処理装置を動的に割り当てることを特徴とするデバイス。
【請求項２】
前記構成可能な記憶リソースは、前記複数のアプリケーションに関するデータを格納するための命令キャッシュを有し、
各アプリケーションは、前記命令キャッシュの構成可能な一部分を割り当てられることを特徴とする請求項１に記載のデバイス。
【請求項３】
前記構成可能な記憶リソースは、前記複数のアプリケーションに関するデータを格納するためのレジスタ・バンクを有し、
各アプリケーションは、前記レジスタ・バンクの構成可能な一部分に割り当てられることを特徴とする請求項１に記載のデバイス。
【請求項４】
前記構成可能な記憶リソースは、
前記複数のアプリケーションに関する命令、又はデータを格納するための記憶装置であって、仮想メモリ及び物理メモリと関連付けられる記憶装置と、なお、各アプリケーションは、前記仮想メモリの構成可能な一部分を割り当てられる、
各アプリケーションに対して割り当てられた前記仮想メモリの一部分を前記物理メモリの対応した一部分にマッピングするための少なくとも１つのテーブルと、
を有することを特徴とする請求項１に記載のデバイス。
【請求項５】
前記マルチメディア・プロセッサは、前記アプリケーションに割り当てられた前記記憶リソースの一部分内の記憶に関するキャッシュ・メモリ、又はメイン・メモリから、要求された際に、各アプリケーションに関する命令及びデータを取り出すためのロード制御装置を更に具備することを特徴とする請求項１に記載のデバイス。
【請求項６】
前記処理装置は、独立に動作し、各処理装置は、与えられたタイム・スロット内で前記複数のアプリケーションの任意の一つに対して割り当て可能であることを特徴とする請求項１に記載のデバイス。
【請求項７】
前記マルチメディア・プロセッサは、前記マルチメディア・アプリケーションの任意の一つに割り当てられなかった処理装置の電力を落とすことを特徴とする請求項１に記載のデバイス。
【請求項８】
前記処理装置は、演算論理装置(ALU)コア、初等関数コア、論理コア、テクスチャ・サンプラ、ロード制御装置及びフロー・コントローラの少なくとも1つを有することを特徴とする請求項１に記載のデバイス。
【請求項９】
前記マルチメディア・プロセッサは、前記複数のアプリケーションからスレッドを非同期に受信するためのインプット・インターフェース装置と、
前記複数のアプリケーションに結果を非同期に供給するためのアウトプット・インターフェース装置と、
を更に具備することを特徴とする請求項１に記載のデバイス。
【請求項１０】
前記マルチメディア・プロセッサは、電力消費を削減するために前記マルチメディア・プロセッサの読み込みに基づいてクロックの速度を調節することを特徴とする請求項１に記載のデバイス。
【請求項１１】
前記マルチメディア・プロセッサは、前記処理装置がある特定の時間間隔に割り当てられた時間の割合に基づいて読み込みを決定することを特徴とする請求項１０に記載のデバイス。
【請求項１２】
前記マルチメディア・プロセッサは、前記複数のアプリケーションに関する複数のスレッドを同時にサポートすることを特徴とする請求項１２に記載のデバイス。
【請求項１３】
前記構成可能な記憶リソースは、前記複数のスレッドに関する複数のコンテキスト・レジスタを具備し、
各コンテキスト・レジスタは、関連付けられたスレッドに関する状態情報を格納することを特徴とする請求項１２に記載のデバイス。
【請求項１４】
各スレッドに関する前記状態情報は、プログラム・カウンタ、ダイナミック・フロー・コントロールに関するポインタを格納するためのスタック、関連したアドレス指定に関するアドレス・レジスタ、条件の計算結果を格納するための述語レジスタ及びロード要求及びデータバック条件を追跡するためのロード参照カウンタの少なくとも１つを有することを特徴とする請求項１３に記載のデバイス。
【請求項１５】
。
各スレッドは、前もって決められたサイズまでのデータ単位で処理することを特徴とする請求項１２に記載のデバイス。
【請求項１６】
各スレッドはイメージ内の４つのピクセルまで、又は４つの頂点までで処理することを特徴とする請求項１２に記載のデバイス。
【請求項１７】
前記マルチメディア・プロセッサは、前記複数のアプリケーションに適用可能な単一の命令セットをサポートすることを特徴とする請求項１に記載のデバイス。
【請求項１８】
前記複数のアプリケーションは、グラフィックス・アプリケーション、オーディオ・アプリケーション、ビデオ・アプリケーション、カメラ・アプリケーション、ゲーム・アプリケーションの少なくとも一つを有することを特徴とする請求項１に記載のデバイス。
【請求項１９】
複数のアプリケーションを同時にサポートすることと、
前記アプリケーションに関する命令、データ及び状態情報を蓄積するため各アプリケーションに記憶リソースの構成可能な一部を割り当てることと、
前記アプリケーションによって要求された際、前記複数のアプリケーションに処理装置を動的に割り当てることと、
を具備することを特徴とする方法。
【請求項２０】
前記割り当てることは、前記アプリケーションに関する命令を蓄積するために各アプリケーションに命令キャッシュの構成可能な一部分を割り当てることを具備することを特徴とする請求項１９に記載の方法。
【請求項２１】
前記割り当てることは、前記アプリケーションに関するデータを蓄積するために各アプリケーションにレジスタ・バンクの構成可能な一部分を割り当てることを具備することを特徴とする請求項１９に記載の方法。
【請求項２２】
前記複数のアプリケーションからスレッドを非同期に受信することと、
前記複数のアプリケーションに非同期に結果を与えることと、
を更に具備することを特徴とする請求項１９に記載の方法。
【請求項２３】
複数のアプリケーションを同時にサポートする手段と、
前記アプリケーションに関する情報、データ、状態情報を格納するために各アプリケーションに記憶リソースの構成可能な一部分を割り当てる手段と、
前記アプリケーションによって要求された際、前記複数のアプリケーションに処理装置を動的に割り当てる手段と、
を具備することを特徴とする装置。
【請求項２４】
割り当てるための前記手段は、前記アプリケーションに関する命令を蓄積するために各アプリケーションに命令キャッシュの構成可能な一部分を割り当てるための手段を具備することを特徴とする請求項２３に記載の装置。
【請求項２５】
前記割り当てるための前記手段は、前記アプリケーションに関するデータを蓄積するために各アプリケーションにレジスタ・バンクの構成可能な一部分を割り当てるための手段を具備することを特徴とする請求項２３に記載の装置。
【請求項２６】
前記複数のアプリケーションから非同期にスレッドを受信する手段と、
前記複数のアプリケーションに非同期にスレッドを送信する手段と、
を更に具備することを特徴とする請求項２３に記載の装置。
【請求項２７】
複数のアプリケーションを同時にサポートするためのマルチメディア・プロセッサを具備する無線装置であって、
前記マルチメディア・プロセッサは、
前記複数のアプリケーションに関する命令、データ及び状態情報を格納するための構成可能な記憶リソースと、
前記複数のアプリケーションに関する処理を実行するための割り当て可能な処理装置と、なお、前記マルチメディア・プロセッサは、各アプリケーションに前記記憶リソースの構成可能な一部分を割り当て、前記アプリケーションによって要求された際、前記複数のアプリケーションに前記処理装置を動的に割り当てる、
前記記憶リソースに読み込むための命令とデータを格納するためのキャッシュ・メモリと、
を具備することを特徴とする無線装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にエレクトロニクスに関し、具体的には、プロセッサに関する。
【背景技術】
【０００２】
プロセッサは、コンピュータ計算、通信、ネットワーキングなどの様々な目的に広く使用される。プロセッサは、中央処理装置(CPU)のような汎用プロセッサ、或いは、デジタル信号プロセッサ(DSP)のような専門化されたプロセッサ、或いは、グラフィックス処理装置(GPU)である。汎用プロセッサは、様々なタイプのアプリケーションで利用される包括的な関数及び包括的な命令のセットをサポートする。汎用プロセッサは、固有の処理を要求するある種のアプリケーションに対して非効率である。対照的に、専門化されたプロセッサは、固有のアプリケーションに対してカスタマイズされた特殊な機能及び命令の限定されたセットをサポートする。これは、設計されたものに対してアプリケーションを効率的にサポートするために専門化されたプロセッサが与えられるからである。しかしながら、専門化されたプロセッサによってサポートされるアプリケーションの範囲は限られる。
【０００３】
携帯電話、携帯情報端末(PDA)、又は、ラップトップ・コンピュータなどのデバイスは、様々なタイプのアプリケーションをサポートする。コスト、電力などを低減するためにできるだけ効率的に、且つ、小さなハードウェアでこれらのアプリケーションを実行することが望ましい。
【発明の概要】
【０００４】
複数のアプリケーションを同時にサポート出来るマルチメディア・プロセッサを含むデバイスが、ここに記載される。これらのアプリケーションは、グラフィックス、オーディオ、ビデオ、カメラ、ゲームなどの様々なタイプのマルチメディアに関するものである。マルチメディア・プロセッサは、アプリケーションに関する状態情報、データ及び命令を蓄積するための構成可能な(configurable)記憶リソースと、アプリケーションに関する様々なタイプの処理を行なうための割り当て可能な(assignable)処理装置を含む。構成可能な記憶リソースは、アプリケーションに関する命令を格納するための命令キャッシュ、アプリケーションに関するデータを格納するためのレジスタ・バンク(register banks)、アプリケーションのスレッドに関する状態情報を格納するためのコンテキスト・レジスタ(context registers)などを含む。処理装置は、算術論理演算装置(ALU)コア、初等関数コア、論理コア、テクスチャ・サンプラ、ロード制御装置、フロー・コントローラなどを含む。また、これらは、下記されたように動作する。マルチメディア・プロセッサは、各アプリケーションに構成可能な記憶リソースの一部を割り当て、これらのアプリケーションによって要求された時、アプリケーションに処理装置を動的に割り当てる。従って、各アプリケーションは、独立した仮想プロセッサを監視し、同時に実行している他のアプリケーションを認識することを必要としない。マルチメディア・プロセッサは、アプリケーションから非同期にスレッドを受け取るためのインプット・インターフェース装置、非同期にアプリケーションへ結果を供給するアウトプット・インターフェース装置及び必要に応じてキャッシュ・メモリ、及び／又は、メイン・メモリからアプリケーションに関する命令やデータを取り出すためのロード制御装置を更に含む。
【０００５】
マルチメディア・プロセッサは、処理装置がアプリケーションに割り当てられた時間の割合に基づいて読み込みを決定する。マルチメディア・プロセッサは、電力消費量を削減するために、読み込みに基づいてクロック速度を調節する。
【０００６】
本開示の様々な態様及び特徴は、以下で更に詳細に記述される。
【図面の簡単な説明】
【０００７】
【図１】マルチメディア・システムのブロック図。
【図２】マルチメディア・プロセッサのブロック図。
【図３】Ｎ個のアプリケーションに対する記憶リソースの割り当てを示す図。
【図４】Ｎ個のアプリケーションに対する処理装置の割り当てを示す図。
【図５】Ｎ個のアプリケーション各々に対する仮想プロセッサを示す図。
【図６】スレッド・スケジューラのブロック図。
【図７】仮想記憶アーキテクチャを備えた記憶装置の設計を示す図。
【図８】図７の記憶装置に対する論理的及び物理的な参照用テーブルを示す図。
【図９】マルチメディア・アプリケーションをサポートするための処理を示す図。
【図１０】無線通信デバイスのブロック図。
【発明の詳細な説明】
【０００８】
図1は、マルチメディア・システム100のブロック図を示している。システム100は、独立型のシステム、又はコンピューティング・システム(例えば、ラップトップ・コンピュータ)、無線通信装置(例えば、携帯電話)、ゲーム・システム(例えば、ゲーム機)などのより大きなシステムの一部である。システム100は、１からＮ個のアプリケーションとして参照されるＮ個のマルチメディア・アプリケーションをサポートする。一般的に、Ｎは任意の整数である。アプリケーションは、プログラム、ソフトウェア・プログラムなどとも呼ばれる。マルチメディア・アプリケーションは、グラフィックス、オーディオ、ビデオ、カメラ、ゲームなどの任意のタイプのマルチメディアに関するものである。アプリケーションは、異なる時間で開始し終了し、任意の数のアプリケーションは、ある瞬間で並列に実行される。
【０００９】
システム100は2次元(2D)、及び／又は、3次元の(3D)グラフィックスをサポートする。2D、又は3Dイメージはポリゴン(一般に三角形)で表わされる。各三角形は、画素(ピクセル)で構成される。各ピクセルは、空間座標、色値(color values)、テクスチャ座標などの様々な特性を有する。各特性は、4つまでのコンポーネントを有する。例えば、空間座標は、３つのコンポーネント、x、y及びz、又は４つのコンポーネント、x、y、z及びwのどちらで与えられても良い。ここで、xとyは水平座標と垂直座標であり、zは深さであり、wは同次座標である。色値は、３つのコンポーネント、r、g及びb、又は４つのコンポーネント、r、g、b及びaのどちらで与えられても良い。ここで、rは赤であり、gは緑あり、bは青であり、aは、１ピクセルの透明度を決定する透明度の要素である。同次座標は、一般的に水平座標と垂直座標であるu及びvによって与えられる。１ピクセルは、他の特性と関連付けられても良い。
【００１０】
システム100は、マルチメディア・プロセッサ120、テクスチャ・エンジン180及び構成可能なキャッシュ・メモリ190を含む。マルチメディア・プロセッサ120は、下記されるように、マルチメディア・アプリケーションに関する様々なタイプの処理を実行する。テクスチャ・エンジン180は、テクスチャ・マッピングなどのグラフィックス演算を実行する。ここで、テクスチャ・マッピングは、テクスチャ・イメージの色にピクセルの色の修正を関連させる複雑なグラフィックス演算である。キャッシュ・メモリ190は、マルチメディア・プロセッサ120及びテクスチャ・エンジン180に関するデータや命令を格納できる高速なメモリである。また、システム100は、他の装置を含んでも良い。
【００１１】
マルチメディア・プロセッサ120は、N個のアプリケーションに関する処理を実行する。マルチメディア・プロセッサ120は、一連のスレッドに各アプリケーションを、例えば、アプリケーションに対して透明であるように及び自動的に分割する。スレッド(又は、実行のスレッド)は、１つ以上の命令のセットを実行する特定の処理を示す。スレッドは、アプリケーションが複数の処理を異なる装置によって同時に実行することを可能にし、また、異なるアプリケーションが処理及び記憶リソースを共有することを可能にする。
【００１２】
図1に示される設計において、マルチメディア・プロセッサ120は、インプット・インターフェース装置122、アウトプット・インターフェース装置124、スレッド・スケジューラ130、フロー・コントローラ132、マスター・コントローラ134、割り当て可能な処理装置140、構成可能な記憶リソース150及びロード制御装置170を含む。インプット・インターフェース装置122は、N個のアプリケーションからスレッドを受け取り、スレッド・スケジューラ130にこれらのスレッドを供給する。スレッド・スケジューラ130は、下記されるようにスレッドの実行を予定し、管理する様々な関数を実行する。フロー・コントローラ132は、アプリケーション／プログラム・フロー制御を支援する。マスター・コントローラ134は、処理モード、データ形式などの情報を受信し、それに応じてマルチメディア・プロセッサ120内で様々な装置の演算を設定する。例えば、マスター・コントローラ134は、コマンドを解読し、アプリケーションに関する状態をセットアップし、状態のアップデート・シーケンスを制御する。
【００１３】
図1に示される設計において、割り当て可能な処理装置140は、ALUコア142、初等関数コア144、ロジック・コア146及びテクスチャ・サンプラ148を含む。コアは、一般的に集積回路内での処理装置を指す。用語「コア」、「エンジン」、「マシン」、「プロセッサ」、「処理装置」、「ハードウェア装置」などは、交換して利用できる。一般的に、指定可能な処理装置140は、任意の数の処理装置を含んでも良いし、任意のタイプの処理装置を含んでも良い。各処理装置は、他の処理装置と独立に動作してもよい。
【００１４】
ALUコア142は、加法、減法、乗法、積算及び加算、内積、絶対値、相反、比較、飽和などの算術演算を実行する。ALUコア142は、1つ以上のスカラーALU、及び／又は、1つ以上のベクトルALUで構成される。スカラーALUは、一度に1つのコンポーネント上で動作できる。ベクトルALUは、一度に複数の(例えば、4つの)コンポーネント上で動作できる。初等関数コア144は、グラフィック・アプリケーションで広く利用される、正弦、余弦、逆数、対数、指数関数、平方根、平方根の逆数などの超越初等関数を計算する。初等関数コア144は、簡単な命令を使用する初等関数の多項式近似を実行するために必要な時間より非常に少なく初等関数を計算することによって性能を改善する。初等関数コア144は、1つ以上の初等関数装置を含む。各初等関数装置は、一度に1つのコンポーネントに関する初等関数を計算する。
【００１５】
論理コア146は、論理演算(例えば、AND、OR、XORなど)、ビット演算(例えば、左シフトと右シフト)、整数演算、比較、データバッファ管理演算(例えば、格納(push)、取り出し(pop)など)、及び／又は、他の演算を実行する。更に、論理コア146は、フォーマット変換(format conversion)、例えば、整数から浮動小数点数に変換すること及びこの逆の変換も実行する。テクスチャ・サンプラ148は、テクスチャ・エンジン180に関する前処理を実行する。例えば、テクスチャ・サンプラ148はテクスチャ座標を読み込み、コード、及び／又は、他の情報を添付し、テクスチャ・エンジン180にその出力を送信する。更に、テクスチャ・サンプラ148は、テクスチャ・エンジン180に命令を与え、テクスチャ・エンジンからの結果を受信する。
【００１６】
図1に示された設計において、構成可能な記憶リソース150は、コンテキスト・レジスタ152、命令キャッシュ154、レジスタ・バンク156及び定数バッファ158を含む。一般に、構成可能な記憶リソース150は、任意の数の記憶装置及び任意のタイプの記憶装置を含む。コンテキスト・レジスタ152は、Ｎ個のアプリケーションからスレッドに関する状態情報、又はコンテキストを蓄積する。命令キャッシュ154は、スレッドに関する命令を蓄積する。これらの命令は、各スレッドで行なうための特有の演算を指し示す。各演算は、算術演算、初等関数、論理演算、メモリ・アクセス演算などである。命令キャッシュ154は、必要に応じてロード制御装置を経由し、キャッシュ・メモリ190及び／またはメイン・メモリ(図1に図示されていない)から命令をロードする。レジスタ・バンク156は、処理装置から中間及び最終結果もアプリケーションに関するデータも格納する。定数バッファ158は、論理装置140(例えば、ALUコア142及び論理コア146)によって使用される定数(例えば、スケール・ファクタ及びフィルタの重みなど)を蓄積する。
【００１７】
ロード制御装置170は、Ｎ個のアプリケーションに関する命令、データ及び定数を読み込むことを制御する。ロード制御装置170は、キャッシュ・メモリ190とインターフェースで結合し、命令キャッシュ154、レジスタ・バンク156及びコンスタント・バッファ158にキャッシュ・メモリからの定数、データ、及び命令をロードする。更に、ロード制御装置170は、キャッシュ・メモリ190にレジスタ・バンク156のデータと結果を書き込む。アウトプット・インターフェース装置124は、実行されたスレッドに関する最終結果をレジスタ・バンク156から受信し、アプリケーションにこれらの結果を供給する。インプット・インターフェース装置122及びアウトプット・インターフェース装置124は、Ｎ個のアプリケーションに関連した外部装置(例えば、カメラ、ディスプレイ装置など)に非同期のインターフェースを供給する。
【００１８】
図１は、マルチメディア・プロセッサ120の設計の一例を示している。一般的に、マルチメディア・プロセッサ120は、割り当て可能な処理装置の任意のセット及び構成可能な記憶リソースの任意のセットを含む。構成可能な記憶リソースは、アプリケーションに関する命令、データ、状態情報などを格納する。処理装置は、アプリケーションに関する任意のタイプの処理を実行する。たとえコントローラ132及びロード制御装置170が装置140内に含まれていなくても、フロー・コントローラ132及びロード制御装置170も指定可能な処理装置としてみなしてもよい。更に、マルチメディア・プロセッサ120は、図１で図示されていない他の処理装置、記憶装置及び制御装置を含んでもよい。マルチメディア・プロセッサ120は、各アプリケーションに構成可能な記憶リソースの一部を割り当て、これらのアプリケーションによって要求されたとき、アプリケーションに処理装置を動的に割り当てる。
【００１９】
マルチメディア・プロセッサ120は、オープン・グラフィックス・ライブラリー(OpenGL)、ダイレクト3D(Direct3D)、オープン・ベクター・グラフィックス(OpenVG)などの1つ以上のグラフィックス・アプリケーション・プログラム・インターフェイス(API)を実行する。これら様々なグラフィックスAPIsは当技術分野で周知である。更に、マルチメディア・プロセッサ120は、2Dグラフィックス、3Dグラフィックス、あるいは両方をサポートする。
【００２０】
図2は、図1のマルチメディア・プロセッサ120の設計のブロック図を示している。この設計において、スレッド・スケジューラ130は、割り当て可能な処理装置140内のALUコア142、初等関数コア144、論理コア146及びテクスチャ・サンプラ148とインターフェースで接続される。更に、スレッド・スケジューラ130は、インプット・インターフェース装置122、フロー・コントローラ132、マスター・コントローラ134、コンテキスト・レジスタ152、命令キャッシュ154及びロード制御装置170とインターフェースで接続される。レジスタ・バンク156は、ロード制御装置170、アウトプット・インターフェース装置124及び割り当て可能な処理装置140内のALUコア142、初等関数コア144、論理コア146及びテクスチャ・サンプラ148とインターフェースで接続される。更に、ロード制御装置170は、命令キャッシュ154、定数バッファ158及びキャッシュ・メモリ190とインターフェースで接続される。また、マルチメディア・プロセッサ120内の様々な装置は、他の方法で別の装置とインターフェースで接続されても良い。
【００２１】
メイン・メモリ192は、システム100の一部であってもよく、システム100の外部にあってもよい。メイン・メモリ192は、マルチメディア・プロセッサ120からより離れて(例えば、オフ−チップ)配置された大きく、より遅いメモリである。メイン・メモリ192は、マルチメディア・プロセッサ120によって実行されたN個のアプリケーションに関する全ての命令及びデータを格納する。メイン・メモリ192内の命令及びデータは、必要になった時及び必要に応じてキャッシュ・メモリ190にロードされる。
【００２２】
マルチメディア・プロセッサ120は、実行された各アプリケーションに独立した仮想プロセッサとして見えるように設計され、処理される。各アプリケーションは、命令、データ、定数及び状態情報に対して十分な記憶リソースを割り当てられる。各アプリケーションは、マルチメディア・プロセッサ120によって維持される、個々の状態（例えば、プログラム・カウンタ、データ形式など）を有している。更に、各アプリケーションは、そのアプリケーションに対して実行された命令に基づいて処理装置を割り当てられる。N個のアプリケーションは、別のアプリケーションと干渉せず、他のアプリケーションを認識していなくても同時に実行してもよい。マルチメディア・プロセッサ120は、アプリケーションの要求、及び／又は、別の要因（例えば、優先事項）に基づいて各アプリケーションに対する性能目標（performance target）を調節する。
【００２３】
図3は、N個のアプリケーションに記憶リソースを割り当てる一例を示している。各アプリケーションは、コンテキスト・レジスタ152の一部、命令キャッシュ154の一部、レジスタ・バンク156の一部及びコンスタント・バッファ158の一部が割り当てられる。各記憶装置について、与えられたアプリケーションに割り当てられた一部分は、そのアプリケーションの記憶の要求に依存して0、又は非0となる。
【００２４】
コンテキスト・レジスタ152は、以下で記載される様に、Ｎ個のアプリケーションから動的にスレッドを割り当て、スレッドに関する様々なタイプの情報を格納する。コンテキスト・レジスタ152は、スレッドが受理され、実行され、終了する時、更新される。命令キャッシュ154及びレジスタ・バンク156は、実行開始時に、例えば、アプリケーションの要求に基づいて、各アプリケーションに割り当てられる。各アプリケーションについて、命令キャッシュ154及び／またはレジスタ・バンク156に割り当てられた一部分は、その要求及び他の要因に基づいてアプリケーションの実行の間に変化してもよい。定数バッファ158は、任意のアプリケーションに対して使用される定数を格納する。与えられたアプリケーションに対する定数は、必要な時に定数バッファ158にロードされ、その時、すべてのアプリケーションで利用可能になる。
【００２５】
記憶装置は、以下で記載されるように、アプリケーションに記憶リソースの柔軟な割り当てをサポートするために設計されてもよい。更に、記憶装置は、以下で記載されるように、アプリケーションによって簡単にメモリ・アクセスするために設計されてもよい。
【００２６】
図4は、N個のアプリケーションに処理装置を割り当てる一例が示されている。別々のスケジュール(timeline)が、ALUコア142、初等関数コア144、論理コア146、テクスチャ・サンプラ148、フロー・コントローラ132及びロード制御装置170などの各処理装置で保持される。各処理装置に対するスケジュールは、タイム・スロットに仕切られる。タイム・スロットは、アプリケーションに割り当てられ、1周期以上のクロック周期に一致する最も小さな時間の単位である。処理装置は、同じ、又は、異なる持続時間のタイム・スロットを有する。
【００２７】
ALUコア142に関するタイム・スロットは、任意のアプリケーションに割り当てられる。図4に示される例において、ALUコア142は、タイム・スロットt及びt+1でアプリケーション１(app 1)に割り当てられ、タイム・スロットt+2でアプリケーション3に割り当てられ、タイム・スロットt+3でアプリケーションNに割り当てられるなどとなっている。同様に、初等関数コア144、論理コア146、テクスチャ・サンプラ148、フロー・コントローラ132及びロード制御装置170に対するタイム・スロットは、任意のアプリケーションに割り当てられる。マルチメディア・プロセッサ120は、これらのアプリケーションの処理要求に基づいてアプリケーションにオン−デマンドで処理装置を動的に割り当てる。
【００２８】
図5は、Ｎ個のアプリケーション各々に対する仮想プロセッサを示している。各アプリケーションは、そのアプリケーションによって利用される処理装置のすべてを有する仮想プロセッサを観察する。各アプリケーションは、そのアプリケーションの処理要求に基づいて処理装置を割り当てられる。更に、指定された処理装置は、そのアプリケーションに関するスケジュールで示される。図5に示された例において、アプリケーション1は、タイム・スロットt及びt+1でALUコア142を割り当てられ、その後、タイム・スロットt+2で論理コア144を、その後、タイム・スロットt+3でロード制御装置170を、その後、タイム・スロットt+4でALUコア142を、その後、タイム・スロットt+5でロード制御装置170を、その後、タイム・スロットt+6で論理コア144を割り当てられるなどである。アプリケーション1は、図5で示されるタイム・スロットの期間で初等関数コア144、テクスチャ・サンプラ148及びフロー・コントローラ132を使用せず、割り当てられない。アプリケーション2からNは、異なる順序で処理装置を割り当てられる。
【００２９】
図5で示されるように、各アプリケーションは、マルチメディア・プロセッサ120内の適切な処理装置を割り当てられる。各アプリケーションに割り当てられる特定の処理装置は、処理要求に依存して時間的に変化しても良い。各アプリケーションは、他のアプリケーションを認識している必要もないし、他のアプリケーションへの処理装置の割り当てを知る必要もない。
【００３０】
マルチメディア・プロセッサ120は、命令の並列実行を実現するためにマルチ−スレッディングをサポートし、全体の効率を改善する。マルチ−スレッディングは、異なる処理装置によって並列に多数のスレッドを実行するために参照する。スレッド・スケジューラ130は、Ｎ個のアプリケーションからスレッドを受け入れ、どのスレッドが実行の準備が出来ているか決定し、異なる処理装置にこれらのスレッドを送り出す。スレッド・スケジューラ130は、処理装置のスレッド及び利用の実行を管理する。
【００３１】
図6は、図1及び図2のスレッド・スケジューラ130の設計のブロック図を示している。この設計において、スレッド・スケジューラ130は、中央スレッド・スケジューラ610、ハイ−レベル・デコーダ612、リソース使用量モニター装置614、アクティブ・キュー(active queue)620及びスリープ・キュー(sleep queue)622を含む。コンテキスト・レジスタ152は、T個のスレッドに対するT個のコンテキスト・レジスタ630aから630tを含む。ここで、Tは、任意の値である。
【００３２】
中央スレッド・スケジューラ610は、リクエスト(Req)及び許可(grant)インターフェースを介して処理装置132、142、144、146、148及び170、及びコンテキスト・レジスタ630aから630tと通信する。スケジューラ610は、命令キャッシュ154への要求を発行し、レスポンス内でヒット／ミス(Hit/Miss)の命令を受信する。一般的に、これらの装置間の通信は、制御信号、一時停止、メッセージ、レジスタなどの様々な機構で成し遂げられる。
【００３３】
中央スレッド・スケジューラ610は、スレッドをスケジュールするために様々な関数を実行する。中央スレッド・スケジューラ610は、Ｎ個のアプリケーションから新規のスレッドを受け入れるか、実行用のスレッドを送出するか及び終了したスレッドを開放／削除(release/remove)するかどうか決定する。各スレッドに関して、中央スレッド・スケジューラ610は、そのスレッドによって要求されるリソース(例えば、命令、処理装置、レジスタ・バンクなど)が利用可能か判断する。もし、要求されたリソースが利用可能であれば、スレッドを起動してそれをアクティブ・キュー620に配置し、もし、どのスレッドも利用可能でない場合、スリープ・キュー622にスレッドを配置する。アクティブ・キュー620は、実行準備が出来たスレッドを格納し、スリープ・キュー622は、実行準備の出来ていないスレッドを格納する。
【００３４】
更に、中央スレッド・スケジューラ610は、スレッドの実行も管理する。各スケジューリング間隔(例えば、各タイム・スロット)において、中央スレッド・スケジューラ610は、評価及び可能な処理に対するアクティブ・キュー620内の候補スレッドの数を選択する。中央スレッド・スケジューラ610は、候補スレッドに対して利用する処理装置を決定し、記憶装置の読み込み／書き込み衝突をチェックし、そして、実行のために異なる処理装置に異なるスレッドを送り出す。マルチメディア・プロセッサ120は、Ｍ個のスレッドの実行を同時に実行することをサポートする。ここで、Mは、適切な値（例えば、M = 12）である。一般的に、Ｍは、処理装置が可能な限り使用するように、記憶リソース(例えば、命令キャッシュ154及びレジスタ・バンク156)のサイズ、ロード処理に対する呼出し時間又は遅延時間、処理装置のパイプライン、及び／又は、他の要因のサイズに基づいて選択される。
【００３５】
中央スレッド・スケジューラ610は、状態（status）を更新し、適切なスレッドの状態に更新する。もし、(a)スレッドに対する次の命令が命令キャッシュ154で見つからない場合、(b)次の命令が以前の命令からの結果待ちの場合、もしくは(c)幾つかの他のスリープ条件が満たされた場合、中央スレッド・スケジューラ610は、スリープ・キュー622にスレッドを配置する。スリープ条件が正しくない場合、中央スレッド・スケジューラ610は、スリープ・キュー622からアクティブ・キュー620にスレッドを移動する。
【００３６】
中央スレッド・スケジューラ610は、各スレッドに対するプログラム・カウンタを保持し、命令が実行される、又はプログラム・フローが変更された時、プログラム・カウンタを更新する。スケジューラ610は、スレッドに対してプログラム・フローを制御するためにフロー・コントローラ132から補助を求める。
【００３７】
フロー・コントローラ132は、if/else命令文、ループ、呼出しサブルーチン、ブランチ、スイッチ命令、画素落ち、及び／又は、命令を変更する他のフローを取り扱う。フロー・コントローラ132は、そのような各命令に対して一つ以上の条件を評価し、（複数の）条件に合致する場合はプログラム・カウンタの一方向の変化を示し、（複数の）条件に合致しない場合はプログラム・カウンタの別方向の変化を示す。更に、フロー・コントローラ132は、動的なプログラム・フローと関係する他の関数も実行する。中央スレッド・スケジューラ610は、フロー・コントローラ132による結果に基づいてプログラム・カウンタを更新する。
【００３８】
更に、中央スレッド・スケジューラ610は、コンテキスト・レジスタ152を管理し、スレッドが受理され、実行され、完了したときこれらのレジスタを更新する。コンテキスト・レジスタ152は、スレッドに対する様々なタイプの情報を格納する。例えば、スレッドに対するコンテキスト・レジスタ630は、(1)スレッドが属するアプリケーションに関するアプリケーション／プログラム識別子(ID)、(2)スレッド関する現在の命令を示すプログラム・カウンタ、(3)スレッドに関する有効及び無効なピクセルを指し示すカバレッジ・マスク、(4)命令を変更するフローの場合に処理するためのピクセルを指し示すアクティブ・フラッグ、(5)ピクセルが不活性で、再び活性化する場合を指し示すレジューム・命令ポインタ、(6)ダイナミック・フロー・コントロールに関する復帰命令ポインタを格納するためのスタック、(7)相対的なアドレス指定に関するアドレス・レジスタ、(8)状態の計算結果を格納する述語レジスタ(predicate registers)、(9)ロード要求及びデータバック条件を追跡するロード参照カウンタ、及び／又は、(10)他の情報を蓄積する。コンテキスト・レジスタ152は、少ない、多い、又は異なる情報も格納できる。
【００３９】
マルチメディア・プロセッサ120は、様々なマルチメディア・アプリケーションに対する包括的な命令のセットをサポートする。この命令のセットは、演算、初等関数、論理的、ビットに関するもの(bitwise)、フロー制御及び他の命令を含む。
【００４０】
命令の2つのレベルでの復号が性能を改善するために実行される。ハイ・レベルの復号器612は、命令のタイプ、オペランド・タイプ(operand type)、転送元(source)及び転送先(destination)識別子(IDs)、及び／又は、スケジューリングに利用される他の情報を決定するために命令のハイ・レベルでの復号を実行する。各処理装置は、その処理装置に関する命令の低レベルでの復号を実行する別々の命令デコーダを含む。例えば、ALUコア142に関する命令デコーダは、ALU−関連の命令のみを取り扱い、初等関数コア144に関する命令デコーダは、初等関数に関する命令のみを取り扱うなどである。2つのレベルでの復号は、処理装置に関する命令デコーダと同様に中央スレッド・スケジューラ610の設計を簡単にする。
【００４１】
リソース使用量モニター装置614は、例えば各処理装置が割り当てられる時間の割合(percentage)を追跡し続けることによって、処理装置の使用量をモニターする。モニター装置614は、適切な性能を供給している間、電池電力を節約するために処理装置の処理を調節する。例えば、モニター装置614は、電力消費量を削減するために、マルチメディア・プロセッサの読み込みに基づいてマルチメディア・プロセッサ120のクロック速度を調節する。更に、モニター装置614は、その処理装置の読み込み、又は利用の割合に基づいて個々の処理装置のクロック速度も調節する。モニター装置614は、最大限の読み込み(full loading)に対して最も速いクロック速度を選択し、次第に遅い読み込み(less loading)に対して次第により遅い速度のクロックを選択する。更に、モニター装置614は、どのアプリケーションにも割り当てられない任意の処理装置を一時停止し／電力を下げ、いずれかのアプリケーションに割り当てられた時、その処理装置を使用可能にし／電力を上げる。
【００４２】
各スレッドは、パケットベースであり、あらかじめ決められたサイズまでのデータ単位で処理する。データの単位のサイズは、処理装置及び記憶装置の設計、処理されているデータの特性などに基づいて選択される。1つの設計において、各スレッドは、イメージの中の4つまでのピクセル、又は4つまでの頂点を処理する。レジスタ・バンク156は、４つのレジスタ・バンクを含む。そのレジスタ・バンクは、(a)ピクセルに対して各特性の４つまでのコンポーネント、つまり、レジスタ・バンク毎に１つのコンポーネントを蓄積する、又は、(b)ピクセルに対する特性のコンポーネント、つまり、レジスタ・バンク毎に一つのピクセルを蓄積する。ALUコア142は、一度に4つまでのコンポーネント上で作動することができる4つのスカラーALUあるいは1つのベクトルALUを含む。
【００４３】
記憶装置(例えば、命令キャッシュ154又は、レジスタ・バンク156)は、アプリケーションに記憶リソースの効率的な割り当てを許可する仮想メモリ・アーキテクチャで実施され、アプリケーションによって割り当てられた記憶リソースを簡単に呼び出す。仮想メモリ・アーキテクチャは、仮想メモリと物理メモリを利用する。
【００４４】
アプリケーションは、仮想メモリの区画を割り当て、仮想アドレススペースを経由してメモリ・アクセスを行なう。仮想メモリの異なる区画は、命令、及び／又は、データを蓄積する物理メモリの異なった区画に割り振られる。
【００４５】
図7は、仮想メモリ・アーキテクチャと記憶装置700の設計を示す。記憶装置700は、命令キャッシュ154、レジスタ・バンク156などに対して使用される。この設計において、記憶装置700は、アプリケーションに仮想メモリ710として見られる。仮想メモリ710は、1からSの論理タイルとして参照される、複数（例えば、S個)の論理タイル、又は区分に仕切られる。一般的に、Sは、N以上の任意の整数である。Sは、同じサイズ、又は異なるサイズを持っている。各アプリケーションは、アプリケーションのメモリ使用量及び利用可能なタイルに基づいて任意の数の連続した論理タイルを割り当てられる。図7に示される例において、アプリケーション1は、論理タイル1および2を割り当てられ、アプリケーション2は、論理タイル3から6を割り当てられるなどである。
【００４６】
記憶装置700は、アプリケーションに関する命令、及び／又は、データを格納する物理メモリ720を実装する。物理メモリ720は、１からSまでのS個の物理タイルを含む。仮想メモリ710の各論理タイルは、物理メモリ720の1枚の物理タイルにマッピングされる。いくつかの論理タイルに対するマッピングの例は、図7に示される。この例において、物理タイル1は、論理タイル2に対する命令、及び／又は、データを蓄積し、物理タイル2は、論理タイルS-1に対する命令、及び／又は、データを蓄積する等である。
【００４７】
論理タイル及び物理タイルの使用は、アプリケーションに対するタイルの割り当て及びタイルの管理を簡単にする。アプリケーションは、命令及びデータに対するある量の記憶リソースを要求する。マルチメディア・プロセッサ120は、命令キャッシュ154内の１つ以上のタイル及びレジスタ・バンク156内の１つ以上のタイルをアプリケーションに割り当てる。アプリケーションは、必要に応じて、追加の論理タイル、より少ない論理タイル、又は異なる論理タイルを割り当てられてもよい。
【００４８】
図8は、図7の論理タイル参照用テーブル(look up table)(LUT)810の設計及び記憶装置700に対する物理アドレス参照テーブル820を示す。この設計において、論理タイル参照テーブル810は、N個のアプリケーションに対してN個のエントリー、つまり、各アプリケーションに対して1つのエントリーを含む。N個のエントリーは、アプリケーションIDによってインデックスを付けられる。各アプリケーションに対するエントリーは、アプリケーションに割り付けられた最初の論理タイルに対するフィールド及びアプリケーションに割り付けられた論理タイルの数に対する別のフィールドを含む。図8に示される例において、アプリケーション1は、論理タイル1から始まって2枚の論理タイルが割り当てられ、アプリケーション2は、論理タイル3から始まって4枚の論理タイルが割り当てられ、アプリケーション3は、論理タイル7から始まって8枚の論理タイルが割り当てられているなどが示されている。各アプリケーションは、メモリ・アクセスのためのアドレスの生成を単純化するために連続する論理タイルを割り当てられても良い。しかしながら、アプリケーションは、例えば、論理タイル1が任意のアプリケーションに割り当てられるように任意の順序で論理タイルを割り当てられても良い。
【００４９】
図8に示される設計において、物理アドレス参照テーブル820は、S個の論理タイルに対してS個のエントリーつまり、各論理タイルに対して1つのエントリーを含む。テーブル820のS個のエントリーは、論理タイル・アドレスによってインデックスを付けられる。各論理タイルに対するエントリーは、その論理タイルがマッピングされた物理タイルを指す。図7及び図8に示される例において、論理タイル1は、物理タイル4にマッピングされ、論理タイル2は物理タイル1にマッピングされ、論理タイル3は物理タイルiにマッピングされ、論理タイル4は物理タイルS-2にマッピングされるなどである。アプリケーションが追加の論理タイル、より少ない論理タイル、及び／又は、異なる論理タイルを割り当てられるたびに、参照テーブル810及び820は更新される。アプリケーションは、物理タイル間で実際に命令又はデータを転送する必要なく、単に参照テーブルを更新することによって異なる量の記憶リソースが割り当てられる。
【００５０】
従って、記憶装置は、仮想記憶及び物理メモリと関連付けられる。各アプリケーションは、設置可能な仮想メモリの一部分を当てられる。少なくとも1つのテーブルは、物理メモリの対応する一部分に各アプリケーションに割り当てられた仮想メモリの一部分をマッピングするために使用される。
【００５１】
各アプリケーションは、一般的に、そのアプリケーションに対する命令及びデータをそれぞれ格納するために命令キャッシュ154及びレジスタ・バンク156内の記憶リソースの有限の量を割り当てられる。キャッシュ・メモリ190は、アプリケーションのための追加の命令及びデータを格納する。アプリケーションに対する命令が命令キャッシュ154において利用可能でない時はいつでも、キャッシュ・ミスがスレッド・スケジューラ130に返される。その時、スレッド・スケジューラ130は、ロード制御装置170にロードするための命令要求を発行する。同様に、アプリケーションに対するデータがレジスタ・バンク156において利用可能でない、又は、記憶装置がデータでオーバーフローする時はいつでも、データ要求は、ロード制御装置170に発行される。
【００５２】
ロード制御装置170は、スレッド・スケジューラ130から命令要求を受信し、他の装置からデータ要求を受信する。ロード制御装置170は、(a)キャッシュ・メモリ190、又はメイン・メモリ192から要求された命令、及び／又は、データをロードするために、及び／又は、(b)キャッシュ・メモリ190、又はメイン・メモリ192にデータを書き込むために、これらの様々な要求を仲裁し、メモリ要求を生成する。
【００５３】
マルチメディア・プロセッサ120内の記憶装置は、アプリケーションで現在使用される命令及びデータの小さい一部を格納する。キャッシュ・メモリ190は、アプリケーションで使用されるであろう命令及びデータのより大きな部分を格納する。マルチメディア・プロセッサ120は、キャッシュ・メモリ190を経由して無制限の命令及びデータ・アクセスをサポートする。この性能(capability)は、マルチメディア・プロセッサ120が任意のサイズのアプリケーションをサポートすることを許容する。更に、マルチメディア・プロセッサ120は、キャッシュ・メモリ190とメイン・メモリ192との間の総称的なメモリ・ロード及びテクスチャ・ロードをサポートする。
【００５４】
図9は、マルチメディア・アプリケーションをサポートする過程900を示している。複数のアプリケーションは、例えば、マルチメディア・プロセッサによって同時にサポートされる(ブロック912)。設置可能な記憶リソースの一部分は、アプリケーションに関する命令、データ及び状態情報を格納するために各アプリケーションに割り当てられる(ブロック914)。ブロック914において、各アプリケーションは、アプリケーションに対する命令を格納するため設置可能な命令キャッシュの一部を割り当て、アプリケーションに対するデータを格納するため設置可能なレジスタ・バンクの一部を割り当て、アプリケーションに対する状態情報を格納するため一つ以上のコンテキスト・レジスタを割り当てるなどである。処理装置は、これらのアプリケーションによって要求されたとき、アプリケーションに動的に割り当てられる(ブロック916)。スレッドは、アプリケーションから非同期に受信され、実行するために予定される(ブロック918)。スレッドの実行結果は、アプリケーションに非同期に提供される(ブロック920)。
【００５５】
ここに記述されたマルチメディア・プロセッサは、無線通信デバイス、携帯型デバイス、ゲーム・デバイス、コンピューティング・デバイス、民生用電子機器デバイス、コンピュータなどに使用される。無線通信デバイスのためのマルチメディア・プロセッサの典型的な使用は、以下に記載される。
【００５６】
図10は、無線通信システム内における無線通信デバイス1000の設計のブロック図を示している。無線デバイス1000は、携帯電話、端末装置(terminal)、送受話器、携帯情報端末(PDA)、又は他のデバイスである。無線通信システムは、符号分割多元接続(CDMA)システム、グローバル移動体通信システム(GSM)システム、又は他のシステムである。
【００５７】
無線デバイス1000は、受信経路及び送信経路を経由して双方向通信を供給することが可能である。受信経路上において、基地局によって送信された信号は、アンテナ1012によって受信され、受信機(RCVR)1014に供給される。受信機1014は、受信信号を調整し、デジタル化し、更に処理するためにデジタル・セクション1020にサンプルを供給する。送信経路において、トランスミッタ(TMTR)1016は、デジタル・セクション1020から送信されるデータを受信し、データを処理・調整し、基地局にアンテナ1012を経由して送信される変調された信号を生成する。
【００５８】
デジタル・セクション1020は、例えば、モデム・プロセッサ1022、デジタル信号プロセッサ(DSP)1024、ビデオ／オーディオ・プロセッサ1026、コントローラ／プロセッサ1028、ディスプレイ・プロセッサ1030、中央処理装置(CPU)／縮小命令セット・コンピュータ(RISC)1032、マルチメディア・プロセッサ1034、カメラ・プロセッサ1036、内部メモリ／キャッシュ・メモリ1038および外部バス・インターフェース(EBI)1040のような様々な処理装置、インターフェース装置及び記憶素子を含む。モデム・プロセッサ1022は、データ送信及び受信(例えば、符号化、変調、復調及び復号)に関する処理を実行する。DSP1024は、無線デバイス1000に関する専門的な処理を実行する。ビデオ／オーディオ・プロセッサ1026は、カムコーダー、ビデオ・アシスト(video playback)及びビデオ会議のようなビデオ・アプリケーションに対するビデオの内容(例えば、静止画、動画及び動テキストで処理を実行する。更に、ビデオ／オーディオ・プロセッサ1026は、オーディオ・アプリケーションのためにオーディオの内容(例えば、合成されたオーディオ)に関する処理も実行する。コントローラ／プロセッサ1028は、デジタル・セクション1020内で様々な装置の演算を指示する。ディスプレイ・プロセッサ1030は、表示装置1050上のビデオ、グラフィックス及びテキストのディスプレイを用意にするための処理を実行する。CPU／RISC1032は、無線デバイス1000に関する汎用的な処理を実行する。マルチメディア・プロセッサ1034は、マルチメディア・アプリケーションに関する処理を実行し、上記の図1から図8のように具体化される。カメラ・プロセッサ1036は、カメラ(図10で省略されている)に関する処理を実行する。内部メモリ／キャッシュ・メモリ1038は、デジタル・セクション1020内で様々な装置に関するデータ及び／命令を格納し、図1及び図2のキャッシュ・メモリ190を実装する。EBI1040は、デジタル・セクション1020(例えば、内部メモリ／キャッシュ・メモリ1038)とメイン・メモリ1060間のデータの転送を容易にする。マルチメディア・アプリケーションは、デジタル・セクション1020の任意のプロセッ
サに対して実行される。
【００５９】
デジタル・セクション1020は、1つ以上のプロセッサ、マイクロプロセッサ、DSPs、RISCsなどで実行される。更に、デジタル・セクション1020は、1つ以上の特定用途向けIC(ASIC)及び／または、幾つかの他のタイプの集積回路(IC)で製作もされる。
【００６０】
ここに記載されたマルチメディア・プロセッサは、様々なハードウェア・デバイス内で実行される。例えば、マルチメディア・プロセッサは、ASICs、DSPs、デジタル信号処理デバイス(DSPD)、プログラム可能な論理回路(programmable logic devices) (PLDs)、フィールドプログラム可能なゲート・アレイ(field programmable gate arrys) (FPGAs)、プロセッサ、コントローラ、マイクロ・コントローラ、マイクロプロセッサ、電子デバイス及び他の電子装置内で実行されるマルチメディア・プロセッサは、統合メモリ／埋め込みメモリを含んでも良いし、含まなくてもよい。
【００６１】
ここに記述されたマルチメディア・プロセッサを実行する装置は、独立型の装置でも良いし、あるデバイスの一部であってもよい。デバイスは、(i)独立型のIC、(ii)蓄積されたデータ、及び／又は、命令に対するメモリICsを含む一つ以上のICsのセット、(iii)移動局モデム(MSM)のようなASIC、(iv)他のデバイス内に埋め込まれたモジュール、(v)携帯電話、無線デバイス、送受話器又は移動装置(vi)その他である。
【００６２】
本開示の以上の記載は、任意の当業者が本開示を製造し、使用することを可能にするために提供される。本開示に対する様々な修正は、それらの当業者には容易に明らかであり、ここで定義された総称的な原理は、開示の精神又は範囲から外れることなく他の様々なものに適用されても良い。従って、本開示は、ここで記載された例に限る意図は無く、ここに開示された新規な特徴や原理と一致する最も広い範囲が与えられるべきである。
【図１】
2010519652.tif 000003
【図２】
2010519652.tif 000004
【図３】
2010519652.tif 000005
【図４】
2010519652.tif 000006
【図５】
2010519652.tif 000007
【図６】
2010519652.tif 000008
【図７】
2010519652.tif 000009
【図８】
2010519652.tif 000010
【図９】
2010519652.tif 000011
【図１０】
2010519652.tif 000012
【国際調査報告】
2010519652.tif 000013
2010519652.tif 000014
2010519652.tif 000015