(57)【要約】  本開示は、シェイダーコンパイラシステム及び方法を含む。ある実施形態では、シェイダーコンパイラは、ベクトル表現を有する命令を、統合された命令表現に変換するためのデコーダを含む。シェイダーコンパイラは、統合された命令表現を有する命令を、プロセッサ実行可能命令に変換するためのエンコーダを含む。【選択図】図【特許請求の範囲】
【請求項１】
ベクトル表現を有する命令を統合された命令表現に変換するデコーダと、
統合された命令表現を有する命令をプロセッサ実行可能命令に変換するエンコーダとを具備するシェイダーコンパイラ。
【請求項２】
前記プロセッサ実行可能命令はスカラー表現を有する請求項１記載のシェイダーコンパイラ。
【請求項３】
前記統合された命令表現は、ベクトル命令及びスカラー命令の両方に共通の少なくとも１つの要素を含む請求項１記載のシェイダーコンパイラ。
【請求項４】
前記少なくとも１つの要素は、加法演算、乗法演算、サイン演算、及びコサイン演算の少なくとも１つを含む請求項３記載のシェイダーコンパイラ。
【請求項５】
前記少なくとも１つの要素は、演算コード、レジスタ番号、及び宛先ライトマスクの少なくとも１つを含む請求項３記載のシェイダーコンパイラ。
【請求項６】
前記統合された命令表現を備える命令は、対応するベクトル命令表現及びスカラー命令表現を格納するために要するよりも少ないスタティックメモリを使用する請求項３記載のシェイダーコンパイラ。
【請求項７】
前記統合された命令表現は、少なくとも１つのベクトル命令のレジスタタイプ及び少なくとも１つのスカラー命令のレジスタタイプに対応する請求項３記載のシェイダーコンパイラ。
【請求項８】
前記デコーダは、低レベルのシェイダーソースコードを受け取るように構成される請求項１記載のシェイダーコンパイラ。
【請求項９】
シェイダーコンパイラで、ベクトル表現を有する第１命令を受け取ることと、
前記第１命令を、ベクトル及びスカラーの両方の要素を含む統合された命令表現に変換することと、
グラフィックス処理ユニットによって実行可能な前記統合された命令表現に由来するコードを含む出力コードを生成することとを具備する方法。
【請求項１０】
前記出力コードは、前記第１命令に対応するスカラー表現を有する少なくとも１つの第２命令を含む請求項９記載の方法。
【請求項１１】
前記少なくとも１つの第２命令を、前記統合された命令表現から前記スカラー表現に変換することをさらに具備する請求項１０記載の方法、
【請求項１２】
前記第１命令を含む入力ストリームをコンパイルすることと、前記統合された命令表現を有する命令を含む中間結果を生成することとをさらに具備する請求項１０記載の方法。
【請求項１３】
スカラーの出力プログラムを生成するために、統合された命令表現を用いたシェイダープログラムをコンパイルするための手段と、
前記スカラーの出力プログラムを実行するための手段とを具備する携帯型デバイス。
【請求項１４】
プロセッサと、
前記プロセッサに連結されたメモリとをさらに具備し、
前記シェイダープログラムをコンパイルするための手段は、前記メモリに格納され、前記プロセッサによって実行可能なシェイダーコンパイラを含む請求項１３記載の携帯型デバイス。
【請求項１５】
前記スカラーの出力プログラムを実行するための手段は、グラフィックス処理ユニットを含む請求項１３記載の携帯型デバイス。
【請求項１６】
前記スカラーの出力プログラムは、前記メモリに格納されるオブジェクトファイルを含む請求項１４記載の携帯型デバイス。
【請求項１７】
遠隔の場所からコンパイルされていないシェイダーコードを受け取るための無線データ通信手段をさらに具備する請求項１６記載の携帯型デバイス。
【請求項１８】
ベクトル表現を有する命令をシェイダーコンパイラで受け取ることと、
前記命令を、ベクトル及びスカラーの両方の要素を含む統合された命令表現に変換することと、
前記統合された命令表現を用いて、スカラー表現を有するプロセッサ命令を含むオブジェクトファイルを生成することとを具備する方法をプロセッサに実行させるためのプロセッサ読み取り可能な命令を有するプロセッサ読み取り可能な媒体。
【請求項１９】
前記命令は、ＯｐｅｎＧＬの仕様に対応する低レベルのベクトル命令である請求項１８記載のプロセッサ読み取り可能な媒体。
【請求項２０】
前記方法は、少なくとも１つの命令を、統合された命令表現からスカラー命令表現に変換することをさらに具備する請求項１８記載のプロセッサ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にグラフィックス処理に関連する。
【背景技術】
【０００２】
技術の進歩は、より小さく、より強力なパーソナルコンピューティングデバイスをもたらす。例えば、小さく、軽量で、容易にユーザに持ち運ばれる携帯無線電話機、携帯情報端末(ＰＤＡ)及びページングデバイスのような無線コンピューティングデバイスを含む様々な携帯型パーソナルコンピューティングデバイスが現在存在する。より具体的には、携帯電話機及びＩＰ電話機のような携帯無線電話機は、無線ネットワーク上で声及びデータパケットを通信することができる。さらに、多くのそのような無線電話機は、そこに組み込まれる他のタイプのデバイスを含む。例えば、無線電話機は、ディジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、及びオーディオファイルプレーヤーも含むことができる。さらに、そのような無線電話機は、インターネットにアクセスするために使用することができるウェブブラウザアプリケーションのようなソフトウェアアプリケーションを含む実行可能な命令を処理することができる。そのため、これらの無線電話機は、かなりの（significant）コンピューティング能力を含むことができる。
【０００３】
グラフィックス処理ユニット（ＧＰＵ）は、グラフィックスパイプラインに関連付けられたデータを処理することによって、グラフィックス処理及びマルチメディアアプリケーションの性能を改善することができる。ＧＰＵは、一般にシェイダー（shader）と呼ばれ、デフォルトのグラフィックスパイプラインのステージを補足し、置換し得るプログラムを実行することができる。シェイダーは、ベクトルデータ又はスカラデータを操作し得、高レベル又は低レベルのプログラミング言語で書かれ得る。シェイダーコンパイラは、実行可能なコードを出力するためにシェイダー命令を処理する。
【発明の概要】
【０００４】
ある実施形態では、シェイダーコンパイラが開示される。シェイダーコンパイラは、ベクトル表現を有する命令を統合された（unified）命令表現に変換するためのデコーダを含む。シェイダーコンパイラは、統合された命令表現を有する命令をプロセッサ実行可能な命令に変換するためのエンコーダも含む。
【０００５】
別のある実施形態では、ベクトル表現を有する第１命令をシェイダーコンパイラで受け取ることを含む方法が開示される。前記方法は、第１命令をベクトル及びスカラーの両方の要素を含む統合された命令表現に変換することを含む。前記方法は、グラフィックス処理ユニットによって実行可能な統合された命令表現に由来するコードを含む出力コードを生成することをさらに含む。
【０００６】
別のある実施形態では、スカラーの出力プログラムを生成するために、統合された命令表現を用いて、シェイダープログラムをコンパイルするための手段を含む携帯型デバイスが開示される。携帯型デバイスは、スカラーの出力プログラムを実行するための手段も含む。
【０００７】
別のある実施形態では、プロセッサ読み取り可能な媒体が開示される。プロセッサ読み取り可能な媒体は、プロセッサに方法を実行させるためのプロセッサ読み取り可能な命令を格納する。前記方法は、ベクトル表現を有する第１命令をシェイダーコンパイラで受け取ることを含む。前記方法は、第１命令を、ベクトル及びスカラーの両方の要素を含む統合された命令表現に変換することも含む。前記方法は、統合された命令表現を用いて、スカラー表現を有するプロセッサ命令を含むオブジェクトファイルを生成することをさらに含む。
【０００８】
開示された実施形態によって提供される１つの特別な利点は、ベクトル及びスカラー命令の統合された表現による、削減されたコンパイラメモリのフットプリント（footprint）である。
【０００９】
本開示の他の態様、利点及び特徴は、後続するセクション、すなわち図面の簡単な説明、詳細な説明、特許請求の範囲を含む出願全体の検討の後に明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】図１は、シェイダーコンパイラシステムのある実例となる実施形態の機能ダイアグラムである。
【図２】図２は、シェイダーコンパイラシステムの第２の実例となる実施形態の機能ダイアグラムである。
【図３】図３は、シェイダーコンパイラシステム内で使用され得るデコーダのある実例となる実施形態の機能ダイアグラムである。
【図４】図４は、シェイダーコンパイラ方法の実施形態のフローチャートである。
【図５】図５は、シェイダーコンパイラシステムを含む携帯通信デバイスのブロック図である。
【発明を実施するための形態】
【００１１】
図１を参照して、シェイダーコンパイラシステムのある実例となる実施形態が、１００に描かれ、一般に示される。システム１００は、ベクトル命令を備えるシェイダープログラム１０２、シェイダープログラムコンパイラ１０６、及びスカラー命令を備えるオブジェクトファイル１１０を含む。ある実施形態では、ベクトル命令を備えるシェイダープログラム１０２、シェイダープログラムコンパイラ１０６、オブジェクトファイル１１０、又はそれらの任意の組合せは、パーソナルコンピュータ又は携帯型無線デバイスのような、グラフィックス処理ユニット（ＧＰＵ）を有するコンピュータ化された（computerized）デバイスのメモリに格納される。
【００１２】
ベクトル命令を備えるシェイダープログラム１０２は、入力データストリーム１０４を介してシェイダープログラムコンパイラ１０６に入力される。シェイダープログラムコンパイラ１０６は、シェイダープログラム１０２をコンパイルし、出力データストリーム１０８を介してオブジェクトファイル１１０に書き込む。出力データストリーム１０８は、ＧＰＵによって実行可能である、スカラーフォーマットを有する命令を含み得る。
【００１３】
ある実施形態では、シェイダープログラムコンパイラ１０６は、ベクトル命令を備えるシェイダープログラム１０２の各命令を、処理のためのそれぞれの統合された命令表現にマップする（map）。統合された命令表現を用いて、シェイダープログラムコンパイラ１０６は、統合された命令表現を有する、コンパイルされた命令を生成し得る。シェイダープログラムコンパイラ１０６は、コンパイルされた命令を、統合された命令表現からＧＰＵによって実行可能であるスカラー表現に変換し、得られたスカラー表現をオブジェクトファイル１１０に書き込み得る。
【００１４】
ベクトル及びスカラー命令に対する統合された命令表現の使用は、シェイダープログラムコンパイラ１０６に、ベクトル及びスカラー命令の両方を独立してサポートするように構成されるコンパイラよりも、小さなメモリフットプリントで動作することを可能にし得る。さらに、シェイダープログラムコンパイラ１０６が統合された命令表現を用いて動作するので、シェイダープログラムコンパイラ１０６は、ＯｐｅｎＧＬのような現在のシェイダーの仕様の基準に、新しいシェイダープログラミング言語及び改訂（revision）を適応させるために、より容易に改訂される。
【００１５】
図２を参照して、コンパイラシステムの第２の実例となる実施形態が、２００に描かれ、一般に示される。システム２００は、図１に示されるように、入力データストリーム１０４を受け取り、出力データストリーム１０８を提供するように構成されるシェイダープログラムコンパイラ１０６を含む。シェイダープログラムコンパイラ１０６は、デコーダ２０２、トランスレータ２０４、命令スケジューラ２０６、レジスタアロケータ２０８、オプティマイザ２１０、エンコーダ２１２、及びオブジェクトファイルジェネレータ２１４を含む。
【００１６】
ある実施形態では、デコーダ２０２は、ベクトル命令を受け取り、一定の記憶（storage）表現にベクトル命令をマップするように構成される。デコーダ２０２はさらに、スカラー命令を受け取り、一定のスカラー表現にスカラー命令をマップするように同様に構成され得る。トランスレータ２０４、命令スケジューラ２０６、レジスタアロケータ２０８、オプティマイザ２１０、エンコーダ２１２、及びオブジェクトファイルジェネレータ２１４の各々は、統合された命令表現を用いて、そのそれぞれの機能を実行するように構成され得る。ある実施形態では、エンコーダ２１２は、統合された命令表現の命令を受け取り、命令をオブジェクトファイルジェネレータ２１４による出力のためのスカラー命令表現に変換するように構成され得る。
【００１７】
図３を参照して、シェイダーコンパイラシステム内で使用され得るデコーダのある実施形態が、３００に描かれ、一般に示される。デコーダ３００は、命令マッピングモジュール３０４に、ベクトル命令を備えるシェイダープログラムデータ３０２を供給するように構成される。命令マッピングモジュール３０４は、ユニバーサルな命令表現３０６を用いて、シェイダープログラムデータの表現を出力するように構成される。ある実施形態では、デコーダ３００は、図１、２に示されるシェイダープログラムコンパイラ１０６のようなシェイダーコンパイラ内で使用され得る。
【００１８】
ベクトル命令は、異なる演算、オペランド、修飾子（modifiers）、及びスカラー命令以外のプロパティに関連付けられ得る。特に、ベクトル及びスカラー命令は、異なる動作コード、メモリオブジェクトタイプ、定数（constant）タイプ、宛先修飾子、ソース修飾子、同期モード、スウィズル（swizzle）モード、命令圧縮スキーム、ロックモード、又はそれらの任意の組合せを有し得る。しかしながら、ベクトル及びスカラー命令は共通の属性も有し得る。ベクトル命令及びスカラー命令の属性を結合する（combine）統合された命令表現は、単一の（single）命令表現だけを定義し、多重の（multiple）命令表現から生じ得る冗長性を排除することによって、シェイダーコンパイラが、より小さなスタティックメモリのフットプリントを有することを可能にし得る。
【００１９】
例えば、ベクトル及びスカラーの両方の命令は、加法、乗法、サイン、及びコサイン演算を有し得る。ベクトル命令は、内積（「DP3」）、「呼び出し（call）」及び「条件（if）」演算の３つの要素も有し得る。スカラー命令は、DP3、呼び出し、条件を有さず、代わりに、「分岐（branch）」演算を有し得る。統合された命令表現は、ベクトル及びスカラー命令から統合された表現への直接的な（straightforward）変換を可能にするために、加法、乗法、サイン、コサイン、DP3、呼び出し、条件、及び分岐演算を含む。
【００２０】
別の例として、レジスタタイプINPUT及びOUTPUTはベクトル命令に特有であり得、レジスタタイプADDRESSはスカラー命令に特有であり得、レジスタタイプTEMP及びCONSTはベクトル及びスカラーの両方の命令に共通であり得る。したがって、統合された命令表現は、レジスタタイプINPUT、OUTPUT、ADDRESS、TEMP、及びCONSTを含み得る。同様に、ソーススウィズルマスクのような属性はベクトル命令に特有であり得、繰り返し数（repeat number）及び分岐対象（branch target）はスカラー命令に特有であり得、演算コード、レジスタ番号及び宛先ライトマスクはベクトル及びスカラーの両方の命令に共通であり得る。ソーススウィズルマスク、繰り返し数、分岐対象、演算コード、レジスタ番号、及び宛先ライトマスクを含む統合された命令表現は、結合されたベクトル命令及びスカラー命令において冗長性が排除されることによって、より小さな総スタティックメモリフットプリントを用いると同時に、ベクトル命令及びスカラー命令の両方に対応する。
【００２１】
実例の、限定されない例として、ある属性に対して、ベクトル命令は、{C1, C2, ..., Cn, V1, V2, ..., Vm}からの値を取り得、スカラー命令は、{C1, C2, ..., Cn, S1, S2, ..., Sr}からの値を取り得る。なお、C1..Cnはスカラー及びベクトルの両方の命令に共通であり、V1... Vmはベクトル命令に特有であり、S1...Sr はスカラー命令に特有である。独立して表現される、ベクトル及びスカラー命令のための列挙型は、  
enum T_VECTOR {C1, C2, ..., Cn, V1, V2, ..., Vm};  
enum T_SCALAR {C1, C2, ..., Cn, S1, S2, ..., Sr};  
と定義され得る。
【００２２】
ベクトル命令及びスカラー命令の独立した表現のためのデータ構造は、以下のように定義され得る。
【００２３】
struct Instr_Vector  
{  
...  
T_VECTOR member;  
...  
};
struct Instr_Scalar  
{  
...  
T_SCALAR member;  
...  
};
独立した表現のためのデータ構造に対するに対する演算は以下のように定義され得る。  
void operation_vector(Instr_Vector);  
void operation_scalar(Instr_Scalar);
対照的に、ある実施形態では、統合された命令表現は、以下のような統合された命令表現の列挙型、データ構造、及び演算を定義し得る。  
enum T_UIR {C1, C2,..., Cn, V1, V2,..., Vm, S1, S2, ..., Sr};  
struct Instr_UIR  
{  
...  
T_UIR member;  
...  
};  
void operation_UIR(Instr_UIR);
同様に、統合されたデータ型及び構造は、以下のように定義され得る。
【００２４】
enum UIR_OPCODE  
{  
UIR_ADD,  
UIR_MUL,  
UIR_SIN,  
UIR_COS,  
UIR_DP3,  
UIR_CALL,  
UIR_IF,  
UIR_BRANCH,  
...  
};
enum UIR_OPERAND  
{  
UIR_TEMP,  
UIR_CONST,  
UIR_INPUT,  
UIR_OUTPUT,  
UIR_ADDRESS,  
...  
};
struct UIR_Operation  
{  
UIR_OPCODE      opcode;  
int      instruction_repeat_number;  
int      branch_target;  
...  
};
struct UIR_Operand  
{  
UIR_OPERAND      register_type;  
int      register_num;  
uint8      destination_write_mask;  
uint8      source_swizzle_mask;  
...  
};
struct UIR_Instruction  
{  
UIR_Operation      operation;  
UIR_Operand  *destination;  
UIR_Operand  **source;  
int      source_num;  
...  
};
統合された命令表現のサブルーチンは、例えば以下のように定義され得る。  
void instr_self_check(UIR_Instruction *instr);  
UIR_Instruction* create_NOP(int repeat_num);  
UIR_Instruction* copy_instruction(UIR_Instruction *old_instr);  
void delete_instr(UIR_Instruction *instr);  
UIR_Operand* copy_operand(UIR_Operand *old_operand);  
void delete_operand(UIR_Operand *operand);  
int get_source_swizzle(UIR_Operand *operand);
上に明示された利点に加えて、より容易なコンパイラ開発、検証及びメンテナンス、より短い開発サイクル、より安定した動作、より容易な将来のアップグレード、又はそれらの任意の組合せを含む他の利点は、シェイダーコンパイラ内において、統合された命令表現を介してベクトル及びスカラー命令に対応することによって得られ得る。例えば、図２に示されたコンパイラの構成要素２０２−２１２に加えて、統合された命令表現は、制御フローのグラフ構造、依存状態（dependence）のグラフ構造、及び定義−使用（Definition-Use）及び使用−定義（Use-Definition）連鎖（chain）構造のためのモジュールのような、他のコンパイラサブモジュールによって使用されてもよい。ベクトル空間及びスカラー空間の両方に現われる、サンプリング命令のような特別な命令の実装は、統合された命令表現の使用によっても単純化される。
【００２５】
図４を参照して、シェイダーコンパイラ方法のある実例となる実施形態が、４００に描かれ一般に示される。ベクトル表現を有する第１命令は、４０２において、シェイダーコンパイラで受け取られる。ある実施形態では、シェイダーコンパイラは、コンピュータデバイスのメモリ内に組み込まれ、シェイダープログラムのランタイム編集（compilation）に対応するように構成される、低レベルのコンパイラであり得る。ある実施形態では、シェイダーコンパイラは、図１、図２に示されたシェイダープログラムコンパイラ１０６であり得る。
【００２６】
４０４に進み、第１命令は統合された命令表現に変換される。統合された命令表現は、ベクトル及びスカラーの両方の要素を含む。４０６に移り、第１命令を含む入力ストリームはコンパイルされる。コンパイルは、統合された命令表現を使用し、統合された命令表現を有する命令を含む中間（interim）結果を生成して実行される。
【００２７】
４０８に続いて、第２命令は統合された命令表現からスカラー表現に変換される。ある実施形態では、第２命令は第１命令に対応するスカラー表現を有し得る。４１０に進み、統合された命令表現に由来するコードを含み、グラフィックス処理ユニットによって実行可能な出力コードが生成される。
【００２８】
図５は、一般に５２０に示される携帯型通信デバイスの例であり、限定されない実施形態を示す。図５に示されるように、携帯型通信デバイスは、デジタル信号プロセッサ５２４及びグラフィックス処理ユニット（ＧＰＵ）５２６を含む、オンチップシステム５２２を含む。ある実例となる実施形態では、ＧＰＵ５２６は、メモリ５３２に格納された１つ以上のオブジェクトファイル５７０を実行するように構成され得る。１つ以上のオブジェクトファイル５７０は、図１、図２に示されるシェイダープログラムコンパイラ１０６のような、シェイダーコンパイラ５９０によって生成された、コンパイルされたシェイダープログラムを含み得る。携帯型通信デバイス５２０は、１つ以上の遠隔のソースからの無線伝送又は他の通信路を介して、シェイダーソースコード、コンパイルされたシェイダーファイル又はそれらの任意の組合せを受け取るように構成され得る。
【００２９】
図５は、さらにＧＰＵ５２６がデジタル信号プロセッサ５２４及びディスプレイ５２８に結合されることを示す。入力デバイス５３０及びメモリ５３２もデジタル信号プロセッサ５２４に結合される。さらに、コーダ／デコーダ（CODEC）５３４は、デジタル信号プロセッサ５２４に結合されることができる。スピーカー５３６及びマイクロホン５３８はＣＯＤＥＣ５３４に結合されることができる。
【００３０】
図５は、無線コントローラ５４０がデジタル信号プロセッサ５２４及び無線アンテナ５４２に結合され得ることを示す。ある実施形態では、電源５４４はオンチップシステム５２２に結合される。さらに、ある実施形態では、図５に示されるように、ディスプレイ５２８、入力デバイス５３０、スピーカー５３６、マイクロホン５３８、無線アンテナ５４２、及び電源５４４は、オンチップシステム５２２の外側にある。しかしながら、各々はオンチップシステム５２２の構成要素に結合される。
【００３１】
ある実施形態では、デジタル信号プロセッサ５２４は、携帯型通信デバイス５２０の様々な構成要素によって必要とされる動作と機能性を実行するために必要なプログラムに関連付けられた命令を処理する。例えば、無線アンテナ５４２を介して無線通信セッションが確立されるとき、ユーザはマイクロホン５３８に向かって話すことができる。ユーザの声を表わす電子信号は、符号化されるためにＣＯＤＥＣ５３４に送信されることができる。デジタル信号プロセッサ５２４は、マイクロホンからの電子信号を符号化するために、ＣＯＤＥＣ５３４のためのデータ処理を実行することができる。さらに、無線アンテナ５４２を介して受信された入力信号は、復号され、スピーカー５３６に送られるために、無線コントローラ５４０によって、ＣＯＤＥＣ５３４に送られ得る。アンテナ５４２を介して受信された信号を復号するとき、デジタル信号プロセッサ５２４は、ＣＯＤＥＣ５３４のためのデータ処理を実行することもできる。
【００３２】
さらに、通信セッションの前、間、又は後に、デジタル信号プロセッサ５２４は、入力デバイス５３０から受け取られる入力を処理することができる。例えば、無線通信セッション中に、ユーザは、携帯型通信デバイス５２０のメモリ５３２内に組み込まれたウェブブラウザを介して、インターネットを見る（surf）ために、入力デバイス５３０及びディスプレイ５２８を使用し得る。デジタル信号プロセッサ５２４は、ここに記述されるように、携帯型通信デバイス５２０及びその中の様々な構成要素の動作を効率的に制御するために、入力デバイス５３０、ＧＰＵ５２６、ディスプレイ５２８、ＣＯＤＥＣ５３４、及び無線コントローラ５４０によって使用される様々なプログラムスレッドをインタリーブすることができる。様々なプログラムスレッドに関連付けられた命令の多くは、１つ以上のクロックサイクル中に並行して実行され得る。そのため、無駄なクロックサイクルによるパワー及びエネルギーの消費は、かなり減少する。
【００３３】
当業者は更に、本明細書における開示に関連して記載された、実例となる様々な論理ブロック、構成（configurations）、モジュール、回路、及びアルゴリズムステップが、電子工学的ハードウェア、コンピュータソフトウェア、又は両方の組合せとして実装され得ることをよく理解するであろう。ハードウェアとソフトウェアとの相互置換性を明確に説明するために、様々な実例となる構成要素、ブロック、構成、モジュール、回路、及びステップが、それらの機能性の観点から一般的に説明された。このような機能が、ハードウェアとして実現されるかソフトウェアとして実現されるかは、システム全体に課された設計制約及び特定のアプリケーションによる。当業者は、各特定のアプリケーションのために上述した機能を様々な方法で実装し得るが、このような実装の決定は、本開示の範囲から逸脱させるものとして解釈されてはならない。
【００３４】
本明細書に開示された実施形態に関連して記述された方法やアルゴリズムのステップは、ハードウェアによって直接、プロセッサによって実行されるソフトウェア・モジュールによって、又は、これらの組み合わせによって具現化されうる。ソフトウェア・モジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、又は当該技術分野で知られているその他任意の形式の記憶媒体に収納されうる。典型的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、また記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。あるいは、記憶媒体はプロセッサに統合され得る。このプロセッサと記憶媒体とは、ＡＳＩＣ内に存在することができる。ＡＳＩＣは、コンピューティングデバイス又はユーザ端末内に存在することができる。あるいはこのプロセッサと記憶媒体とは、コンピューティングデバイス又はユーザ端末内のディスクリート部品として存在することができる。
【００３５】
開示された実施形態における上記記載は、当業者をして、本願の技術の製造又は利用を可能とするために提供される。これら実施形態への様々な変形例もまた、当業者には明らかであり、本明細書で定義された一般原理は、本開示の精神又は範囲から逸脱することなく他の実施形態にも適用されうる。従って本開示は、本明細書に示された実施形態に限定することは意図されておらず、後続する特許請求の範囲によって定義される原理及び新規特徴と整合が取れた最も広い範囲と一致するように意図されている。
【図１】
2011501249.tif 000002
【図２】
2011501249.tif 000003
【図３】
2011501249.tif 000004
【図４】
2011501249.tif 000005
【図５】
2011501249.tif 000006