(57)【特許請求の範囲】
【請求項１】
各プロセッサコアが第１の供給電圧および第１のクロック信号を動的に受け取るように構成されているマルチコアプロセッサの第１のプロセッサコアのセットと、
各プロセッサコアが第２の供給電圧および第２のクロック信号を動的に受け取るように構成されているマルチコアプロセッサの第２のプロセッサコアのセットと、
前記第１のプロセッサコアのセットと前記第２のプロセッサコアのセットとの間の通信を円滑化するように構成されている、前記第１のプロセッサコアのセットに結合され、前記第２のプロセッサコアのセットにも結合されたインターフェースブロックと
を備える、マルチコアプロセッサであって、
前記インターフェースブロックが、前記第１のクロック信号および／または前記第２のクロック信号のうちの１つまたは複数が変化したと判定されるときに、前記第１のプロセッサコアのセットと前記第２のプロセッサコアのセットとの間の通信をアイドル状態にするように構成されている、マルチコアプロセッサ。
【請求項２】
前記インターフェースブロックが、前記第１のプロセッサコアのセットから前記第２のプロセッサコアのセットへ進む第１の信号について、前記第２の供給電圧を基準とし、前記第１のプロセッサコアのセットと関連付けられる第１の論理レベルを前記第２のプロセッサコアのセットと関連付けられる第２の論理レベルへ変換するように適合されている第１のレベルシフタを備える、請求項１に記載のマルチコアプロセッサ。
【請求項３】
前記インターフェースブロックが、前記第２のプロセッサコアのセットから前記第１のプロセッサコアのセットへ進む第２の信号について、前記第１の供給電圧を基準とし、前記第２のプロセッサコアのセットと関連付けられる第２の論理レベルを前記第１のプロセッサコアのセットと関連付けられる第１の論理レベルへ変換するように適合されている第２のレベルシフタを備える、請求項１に記載のマルチコアプロセッサ。
【請求項４】
前記インターフェースブロックが、前記第１のプロセッサコアのセットのうちの１つまたは複数のプロセッサコアと前記第２のプロセッサコアのセットのうちの１つまたは複数のプロセッサコアとの間の通信のために前記第１のクロック信号と前記第２のクロック信号との同期をとるように構成された同期装置を備える、請求項１に記載のマルチコアプロセッサ。
【請求項５】
前記第１のプロセッサコアのセットおよび前記第２のプロセッサコアのセットが、マルチコアプロセッサの周囲に位置する１つまたは複数の制御ブロックから１つまたは複数の制御信号を受け取るように構成されている、請求項１に記載のマルチコアプロセッサ。
【請求項６】
前記第１のプロセッサコアのセットがマルチコアプロセッサの第１の領域に位置し、前記第２のプロセッサコアのセットがマルチコアプロセッサの第２の領域に位置する、請求項１に記載のマルチコアプロセッサ。
【請求項７】
前記第１の領域と前記第２の領域とがマルチコアプロセッサの重なり合わない領域である、請求項６に記載のマルチコアプロセッサ。
【請求項８】
前記第１の領域がマルチコアプロセッサの第１行に対応し、前記第２の領域がマルチコアプロセッサの第２行に対応する、請求項６に記載のマルチコアプロセッサ。
【請求項９】
前記インターフェースブロックが、前記第１のクロック信号および／または前記第２のクロック信号のうちの１つまたは複数が安定したと判定された後で、前記第１のプロセッサコアのセットと前記第２のプロセッサコアのセットとの間の通信を再開するように構成されている、請求項１に記載のマルチコアプロセッサ。
【請求項１０】
前記第１のプロセッサコアのセットが前記第２のプロセッサコアのセットに隣接しており、前記１つまたは複数の制御ブロックが、前記第１の供給電圧と前記第２の供給電圧とを、前記第１の供給電圧と前記第２の供給電圧との差分関係を維持するように選択するように構成されている、請求項５に記載のマルチコアプロセッサ。
【請求項１１】
前記差分関係が、前記第１のプロセッサコアのセットと関連付けられる出力電圧レベルを、前記第２のプロセッサコアのセットと関連付けられる入力電圧レベル内とすることに基づくものである、請求項１０に記載のマルチコアプロセッサ。
【請求項１２】
前記第１のプロセッサコアのセットおよび前記第２のプロセッサコアのセットが、前記第１のプロセッサコアのセットと前記第２のプロセッサコアのセットとの実質的に中央にある共通域に位置する１つまたは複数の制御ブロックから１つまたは複数の制御信号を受け取るように構成されている、請求項１に記載のマルチコアプロセッサ。
【請求項１３】
第１のプロセッサコアのセットと第２のプロセッサコアのセットとを有する複数のプロセッサコアを含むマルチコアプロセッサにおける通信を管理するための方法であって、
前記第１のプロセッサコアのセットについてのクロック周波数変更要求に応答して、前記第１のプロセッサコアのセットと前記第２のプロセッサコアのセットとの通信をアイドル状態にするステップと、
前記第１のプロセッサコアのセットと関連付けられた第１の位相ロックループ動作が第１のロック信号を取得し、前記第２のプロセッサコアのセットと関連付けられた第２の位相ロックループ動作も第２のロック信号を取得したと判定した後で、前記第１のプロセッサコアのセットと前記第２のプロセッサコアのセットとの通信を再開するステップと
を含む、方法。
【請求項１４】
前記第２のプロセッサコアのセットが前記第１のプロセッサコアのセットに隣接する、請求項１３に記載の方法。
【請求項１５】
第１のプロセッサコアのセットと第２のプロセッサコアのセットとを有する複数のプロセッサコアを含むマルチコアプロセッサにおける通信を管理するための命令シーケンスであって、コンピューティング装置によって実行されると、前記コンピューティング装置に、
前記第１のプロセッサコアのセットについてのクロック周波数変更要求に応答して、前記第１のプロセッサコアのセットと前記第２のプロセッサコアのセットとの通信をアイドル状態にするための第１のコマンドを発行させ、
前記第１のプロセッサコアのセットと関連付けられた第１の位相ロックループ動作が第１のロック信号を取得し、前記第２のプロセッサコアのセットと関連付けられた第２の位相ロックループ動作も第２のロック信号を取得したと判定した後で、第１のプロセッサコアのセットと前記第２のプロセッサコアのセットとの通信を再開するための第２のコマンドを発行させる
前記命令シーケンスを含むコンピュータ可読媒体。
【請求項１６】
前記コンピューティング装置によって実行されると、前記コンピューティング装置に、前記第２のコマンドを発行する前に、前記マルチコアプロセッサ内の前記第１のプロセッサコアのセットに隣接する第３のプロセッサコアのセットと関連付けられた第３の位相ロックループ動作が第３のロック信号を取得したかどうか判定させる命令シーケンスをさらに含む、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記第２のプロセッサコアのセットが前記第１のプロセッサコアのセットに隣接する、請求項１６に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般にプロセッサ技術に関し、より詳細には、マルチコアプロセッサにおけるプロセッサコア通信に関する。
【背景技術】
【０００２】
マルチコアプロセッサは、配列として配置された２つ以上の独立のプロセッサコアを含む。従来のマルチコアプロセッサ内の各プロセッサコアは、一般に、プロセッサコア間のインターフェースを簡略化するために、同じ供給電圧およびクロック信号を共用する。電力消費管理については、動的な供給電圧およびクロック速度制御を利用することができ、そのためマルチコアプロセッサは、必要なときには高電力、高クロック周波数で動作し、計算処理要件が低減されるときには低電力で動作し得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の一実施形態は一般に、マルチコアプロセッサに関し得る。マルチコアプロセッサの一例は、各プロセッサコアが第１の供給電圧および第１のクロック信号を動的に受け取るように構成されているマルチコアプロセッサの第１のプロセッサコアのセットと、各プロセッサコアが第２の供給電圧および第２のクロック信号を動的に受け取るように構成されているマルチコアプロセッサの第２のプロセッサコアのセットと、第１のプロセッサコアのセットと第２のプロセッサコアのセットとの間の通信を円滑化するように構成されている、第１のプロセッサコアのセットに結合され、第２のプロセッサコアのセットにも結合されたインターフェースブロックを含み得る。
【０００４】
本開示の別の実施形態は一般に、第１のプロセッサコアのセットと第２のプロセッサコアのセットとを有する複数のプロセッサコアを含むマルチコアプロセッサにおける通信を管理するための方法に関し得る。方法の一例は、第１のプロセッサコアのセットについてのクロック周波数変更要求に応答して、複数のプロセッサコアのうちの１つまたは複数との通信をアイドル状態にするステップと、第１のプロセッサコアのセットと関連付けられた第１の位相ロックループ動作が第１のロック信号を取得し、第２のプロセッサコアのセットと関連付けられた第２の位相ロックループ動作も第２のロック信号を取得したと判定した後で、複数のプロセッサコアのうちの１つまたは複数との通信を再開するステップを含み得る。
【０００５】
本開示のさらに別の実施形態は一般に、第１のプロセッサコアのセットと第２のプロセッサコアのセットとを有する複数のプロセッサコアを含むマルチコアプロセッサにおける通信を管理するための命令シーケンスを含むコンピュータ可読媒体に関し得る。命令シーケンスの一例がコンピューティング装置によって実行されると、コンピューティング装置は、第１のプロセッサコアのセットについてのクロック周波数変更要求に応答して、複数のプロセッサコアのうちの１つまたは複数との通信をアイドル状態にするための第１のコマンドを発行し、第１のプロセッサコアのセットと関連付けられた第１の位相ロックループ動作が第１のロック信号を取得し、第２のプロセッサコアのセットと関連付けられた第２の位相ロックループ動作も第２のロック信号を取得したと判定した後で、複数のプロセッサコアのうちの１つまたは複数との通信を再開するための第２のコマンドを発行するように構成され得る。
【０００６】
以上の概要は例示にすぎず、いかなる点においても限定が意図されるものではない。図面および以下の詳細な説明を参照すれば、前述の例示的態様、実施形態、および特徴に加えて、さらに別の態様、実施形態、および特徴も明らかになるであろう。
【図面の簡単な説明】
【０００７】
本開示の上記その他の特徴は、以下の説明および添付の特許請求の範囲を、添付の図面と併せて読めばより十分に明らかになるであろう。これらの図面は本開示によるいくつかの実施形態を示すものにすぎず、したがって、本開示の範囲を限定するものとみなすべきでない。添付の図面を使用して、本開示をさらに具体的に詳細に説明する。
【０００８】
【図１】マルチコアプロセッサの一構成例を示す図である。
【図２】レベルシフタを有するインターフェースブロックの例を伴うプロセッサコアのセットの例を示すブロック図である。
【図３】同期装置を有するインターフェースブロックの例を伴うプロセッサコアのセットの例を示す別のブロック図である。
【図４】クロック周波数変更を管理するための遷移処理ルーチンの例を示す流れ図である。
【図５】すべて本開示の少なくともいくつかの実施形態に従って構成された、マルチコアプロセッサにおけるプロセッサコア通信を処理するためのコンピュータプログラム製品の例を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明では、本開示の一部を形成する添付の図面を参照する。図面では、文脈上他の意味に解される場合を除き、類似の記号は、通常、類似の構成要素を識別する。詳細な説明、図面、および特許請求の範囲に記載される例示的実施形態は、限定を意図するものではない。本開示で提示する主題の趣旨または範囲を逸脱することなく、他の実施形態が利用されてもよく、他の変更が加えられてもよい。本明細書において概説し、図に例示する本開示の態様は、多種多様な構成として配置し、置換し、結合し、設計することができ、それらすべてが明確に企図されており、本開示の一部をなすものであることが容易に理解されるであろう。
【００１０】
本開示は、とりわけ、マルチコアプロセッサのための電源管理に関連した装置、方法、システム、およびコンピュータプログラムを対象とするものである。
【００１１】
マルチコアプロセッサは、配列として配置された複数のプロセッサコアを含み得る。個々のプロセッサコアと関連付けられる電力プロファイルは、マルチコアプロセッサの周囲に位置する制御ブロックから受け取られ得る信号によって制御され得る。電力プロファイルには、それだけに限らないが、コアプロセッサの１つまたは複数の電源電圧、コアプロセッサのクロック速度、コアプロセッサのクロック乗数、コアプロセッサの電力スロットリング、および／またはコアプロセッサの休眠状態サイクルが含まれ得る。
【００１２】
図１に、本開示の少なくともいくつかの実施形態に従って構成されているマルチコアプロセッサ１００の一構成例を示す。マルチコアプロセッサ１００は、集積回路において２次元配列の行と列として配置された複数のプロセッサコア１０２を含み得る。プロセッサコアは、インターフェース回路１２０を介して隣接するプロセッサコアと結合され得る。ある実施態様では、プロセッサコア１０２は、インターフェース回路１２０によって、相互に横に結合され、相互に縦に結合され、かつ／または相互に斜めに結合され得る。ある例示的実施態様では、マルチコアプロセッサ１００の一辺に位置するプロセッサコア１０２は、循環接続１２２を用いて対辺上のプロセッサコア１０２にも結合されていてよく、循環接続１２２は、同じ行および／または列内のプロセッサコア間の接続の連続性を保証するために用いられ得る。
【００１３】
マルチコアプロセッサ１００はさらに領域に分割され得る。ある実施態様では、マルチコアプロセッサ１００の領域は２次元配列の行に対応していてよく、各領域は重なり合っていても重なり合わなくてもよい。また、プロセッサの各行を「ストライプ」と呼ぶこともできる。例えば、マルチコアプロセッサ１００は、ストライプ１１２、１１４、１１６、および１１８に分割され得る。各ストライプは独立の電力プロファイルと関連付けられ得る。例えばストライプ１１２は、電力制御ブロック１０８から受け取られる供給電圧によって電力供給され、かつ／またはクロック制御ブロック１１０から受け取られるクロック信号によって定義される独立のクロックドメインと関連付けられ得る。ある実施態様では、電力制御ブロック１０８とクロック制御ブロック１１０とは、図１に示すように、マルチコアプロセッサ１００の２つの異なる側に配置され得る。別の実施態様では、電力制御ブロック１０８とクロック制御ブロック１１０とは、マルチコアプロセッサ１００の同じ側に配置され得る。さらに別の実施態様では、電力制御ブロック１０８とクロック制御ブロック１１０とは、マルチコアプロセッサ１００の中央の近くに位置する共通域に配置され得る。
【００１４】
あるストライプと関連付けられる電力プロファイルは、当該ストライプ内のプロセッサコアに割り当てられるタスクの計算処理要件に基づいて決定され得る。ある実施態様では、各プロセッサコアの入力のところに配置されたセンサが、各プロセッサコアの供給電圧および局部温度を測定するように構成され得る。測定された供給電圧および局部温度は電力制御ブロック１０８において保持され得る。また、各プロセッサコアと関連付けられた１つまたは複数の性能カウンタも電力制御ブロック１０８へフィードバックを提供し得る。測定された動作情報（供給電圧や局部温度など）および性能データに基づき、電力制御ブロック１０８は、次いで、ストリップごとの供給電圧を選択するように構成され得る。例えば、最高の計算処理要件を伴うタスクは、ストライプ１１２といった一番上のストライプへとスケジュールされ得る。ストライプ１１２は、高供給電圧で動作するように構成され得る。より低い計算処理要件を伴うタスクはストライプ１１４へとスケジュールされ、以下同様とすることができる。よってストライプ１１４、１１６、および１１８は、より低い供給電圧で動作するように構成され得る。
【００１５】
ある実施態様では、各ストライプへの供給電圧は、隣接するストライプのために選択される供給電圧がわずかな量だけ異なり得るように選択され得る。このわずかな量は、あるストライプと関連付けられる出力電圧レベルと隣接するストライプと関連付けられる入力電圧レベルとの関係に基づくものとすることができる。例えば、より高い供給電圧を有するストライプ（ストライプ１１２など）がある出力電圧レベル（Ｖｏなど）と関連付けられ得るものと仮定する。Ｖｏは、隣接するストライプ（ストライプ１１４など）の許容入力電圧レベル範囲（Ｖｉ＋からＶｉ−までなど）内に確実に含まれる必要がある。言い換えると、電力制御ブロック１０８は、ストライプ１１２とストライプ１１４とへの供給電圧を、前述のＶｏと範囲Ｖｉ＋からＶｉ−までとの関係が維持され得るように選択するように構成され得る。
【００１６】
前述のわずかな差分関係を維持するために、あるストライプへの供給電圧を調整することは、その他のストライプへの供給電圧を調整することを伴い得る。例示のために、電力制御ブロック１０８はストライプ１１２への供給電圧を調整し得るものと仮定する。わずかな差分関係を維持するために、電力制御ブロック１０８は、ストライプ１１２への供給電圧を調整する前に、ストライプ１１８、１１６、および１１４への供給電圧を調整し得る。
【００１７】
計算処理要件の変化に応答してあるストライプについての電力プロファイルを動的に調整することによりマルチコアプロセッサの電力消費が低減され得るが、そのような調整は安定するのに多少の時間を要する場合もある。マルチコアプロセッサ１００内の２つのプロセッサコア間の通信を円滑化するインターフェースをさらに例示するために、図１のプロセッサコア１５２、１５４、および１５６のサブセット１５０を選択することができる。プロセッサコア１５２はストライプ１１２に属し、プロセッサコア１５４はストライプ１１４に属し、プロセッサコア１５６はストライプ１１６に属する。
【００１８】
図２は、本開示の少なくともいくつかの実施形態に従って構成された、レベルシフタを有するインターフェースブロックの例を伴うプロセッサコアのサブセットの例１５０を示すブロック図である。プロセッサコア１５２は、供給電圧１によって電力供給され、レベルシフタ２０２を有するインターフェースブロック２００に結合されていてよく、プロセッサコア１５４は、供給電圧２によって電力供給され、同じインターフェースブロック２００に結合されていてよく、プロセッサコア１５６は、供給電圧３によって電力供給され、レベルシフタ２０６を有するインターフェースブロック２０４に結合されていてよい。ある実施態様では、レベルシフタ２０２の入力を供給電圧１および供給電圧２とすることができ、レベルシフタ２０６の入力を供給電圧２および供給電圧３とすることができる。供給電圧１、供給電圧２、および供給電圧３は、図１の電力制御ブロック１０８などの電力制御ブロックからもたらされ得る。
【００１９】
ある実施態様では、ストライプ１１２のプロセッサコア１５２がストライプ１１４のプロセッサコア１５４に信号を送るときには、レベルシフタ２０２の出力電圧は供給電圧２に拘束され、レベルシフタ２０２の入力電圧は供給電圧１に拘束され得る。各レベルシフタは、信号レベルを、各プロセッサコアが正しく動作する（例えば、各プロセッサコアが、たとえ異なる供給電圧によって電力供給される場合でさえも、電圧を有効な論理レベルとして適正に解釈する）よう変換するように構成される。この場合レベルシフタ２０２は、ストライプ１１２と関連付けられる第１の論理レベルをストライプ１１４と関連付けられる第２の論理レベルへ変換するように適合されてよく、レベルシフタ２０２は、供給電圧２を基準とし得る。他方、ストライプ１１４のプロセッサコア１５４がストライプ１１２のプロセッサコア１５２に信号を送るときには、レベルシフタ２０２の出力電圧は供給電圧１に拘束され、レベルシフタ２０２の入力電圧は供給電圧２に拘束され得る。言い換えると、レベルシフタ２０２は、ストライプ１１４と関連付けられる第２の論理レベルをストライプ１１２と関連付けられる第１の論理レベルへ変換するよう適合されてよく、レベルシフタ２０２は供給電圧１を基準とし得る。前述の供給電圧１と供給電圧２とレベルシフタ２０２との関係は、供給電圧２と供給電圧３とレベルシフタ２０６との関係にも同様に当てはまる。
【００２０】
図３は、本開示の少なくともいくつかの実施形態に従って構成された、同期装置を有するインターフェースブロックの例を伴うプロセッサコアのサブセットの例１５０を示す別のブロック図である。プロセッサコア１５２は、クロック信号１によって駆動され、同期装置３０２を有するインターフェースブロック３００に結合されていてよく、プロセッサコア１５４は、クロック信号２によって駆動され、同じインターフェースブロック３００に結合されていてよく、プロセッサコア１５６は、クロック信号３によって駆動され、同期装置３０６を有するインターフェースブロック３０４に結合されていてよい。ある実施態様では、クロック信号１、クロック信号２、クロック信号３、および個々の位相ロックループ（ＰＬＬ）を、クロック制御ブロック１１０などのクロック制御ブロックの一部とすることができる。ＰＬＬブロックの処理結果は、遷移処理ルーチン３０８にフィードバックされ得る。また、遷移処理ルーチン３０８によって生成されるコマンドも同期装置３０２および／または同期装置３０６に送られ得る。
【００２１】
前述のように、クロック周波数の変更など、あるストライプについての電力プロファイルが変化するときに、当該ストライプのクロック信号は不安定になり得る。図４は、そのような状況に対処するための、本開示の少なくともいくつかの実施形態に従って構成された、クロック周波数変更を管理するための遷移処理ルーチンの例４００を示す流れ図である。説明を容易にするために、遷移処理ルーチン４００を、図３に関連して前述したのと実質的に同様のプロセッサコアのセットおよびインターフェースブロックについて説明する。遷移処理ルーチン４００は、動作４０２、４０４、４０６、４０８、および／または４１０によって示す１つまたは複数の機能、動作、または処置を含み得る。ある実施態様では、遷移処理ルーチン４００についての例示の動作の様々な特徴が、所望の結果に基づいて、より少数の動作へと組み合わされ、さらに多くの動作へと分割され、あるいは削除され得る。
【００２２】
遷移処理ルーチン３００の処理は、動作３０２、「クロック周波数変更要求を受け取る」から開始し得る。動作３０２に続いて動作３０４、「ストライプ間の通信をアイドル状態にする」が行われ得る。動作３０４に続いて動作３０６、「要求側ストライプと隣接する（１つまたは複数の）ストライプのＰＬＬブロックを検査する」が行われ得る。動作３０６に続いて動作３０８、「各ＰＬＬブロックがロックを取得するか？」が行われ得る。動作３０８に続いて、ブロック３０８で判定される判断論理が満たされない（いいえ）ときの動作３０６、またはブロック３０８で判定される判断論理が満たされる（はい）ときの動作３１０、「ストライプ間の通信を再開すべきかどうか判定する」が行われ得る。ルーチンの処理はブロック３１０の後で終了し得る。
【００２３】
例示のために、図３のストライプ１１４のプロセッサコア１５４が、処理のためにストライプ１１４に割り当てられているタスクに基づいてそのクロック周波数を変更するよう求められるものと仮定する。動作４０２で要求を受け取った後で、遷移処理ルーチン４００は、動作４０４で、同期装置３０２と同期装置３０６とに、プロセッサコア１５４とプロセッサコア１５２との間の通信と、プロセッサコア１５４とプロセッサコア１５６との間の通信とをアイドル状態にするためのコマンドを発行し得る。動作４０４に続いて、動作４０６で、ストライプ１１４に隣接するストライプのＰＬＬブロックの出力が検査され得る。動作４０８で各ＰＬＬブロックがロックを取得したと判定されるかどうかに応じて、遷移処理ルーチン４００は、動作４１０で、遷移シーケンスが適正に行われたかどうか判断することができ、ストライプ間の通信が再開され得る。
【００２４】
ある実施態様では、ＰＬＬブロック１、ＰＬＬブロック２、およびＰＬＬブロック３のそれぞれが、動作４０８で個々のクロック信号のロックを取得したと判定された後で、安定したクロック信号がプロセッサコア１５４に送られてよく、同期装置３０２と同期装置３０６にも送られてよい。次いで、同期装置３０２は、プロセッサコア１５２とプロセッサコア１５４との間の通信のためにクロック信号１とクロック信号２の同期をとるように構成され得る。同様に、同期装置３０６も、プロセッサコア１５４とプロセッサコア１５６との通信のためにクロック信号２とクロック信号３の同期をとるように構成され得る。
【００２５】
図５は、本開示の少なくともいくつかの実施形態と合致する、マルチコアプロセッサにおけるプロセッサコア通信を処理するためのコンピュータプログラム製品５００を示すブロック図である。コンピュータプログラム製品５００は、前述の、図４に示す遷移処理ルーチンを実行するための１つまたは複数の実行可能命令のセット５０２を含み得る。コンピュータプログラム製品５００は、信号担持媒体５０４または別の類似の通信媒体５０６において送信され得る。またコンピュータプログラム製品５００は、コンピュータ可読媒体５０８または別の類似の書込み可能媒体５１０に記録されてもよい。
【００２６】
システムの態様のハードウェア実施態様とソフトウェア実施態様との間にはほとんど区別がない。ハードウェアを使用するかソフトウェアを使用するかは、（状況によっては、ハードウェアとソフトウェアのどちらを選択するかが重要となり得るという点で、常にそうであるとはいえないが）一般には、コスト対効率のトレードオフを意味する設計上の選択である。本明細書で説明するプロセスおよび／またはシステムおよび／または他の技術を実施するための様々な手段（ハードウェア、ソフトウェア、および／またはファームウェアなど）があり、好ましい手段は、プロセス、および／またはシステム、および／または他の技術が展開される状況によって異なる。例えば、実施者が、速度と正確さが最優先であると判断する場合には、実施者は、主に、ハードウェアおよび／またはファームウェアの手段を選択し得る。柔軟性が最優先である場合には、実施者は、主にソフトウェア実装を選択し得る。あるいは、さらに代替として、実施者は、ハードウェア、ソフトウェア、および／またはファームウェアの何らかの組み合わせを選択してもよい。
【００２７】
以上の詳細な説明では、ブロック図、流れ図、および／または例を使用して、装置および／またはプロセスの様々な実施形態を示した。そのようなブロック図、流れ図、および／または例が１つまたは複数の機能および／または動作を含む限りにおいて、そのようなブロック図、流れ図、または例に含まれる各機能および／または動作は、広範なハードウェア、ソフトウェア、ファームウェア、または事実上それらの任意の組み合わせによって、個別に、かつ／または一括して実施することができることが当業者には理解されるであろう。一実施形態では、本明細書で説明する主題のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、ディジタル信号プロセッサ（ＤＳＰ）、または他の集積形式によって実施され得る。しかし、本明細書で開示する実施形態のいくつかの態様は、集積回路において、その全部または一部を、１台または複数のコンピュータ上で走る１つまたは複数のコンピュータプログラムとして（例えば、１つまたは複数のコンピュータシステム上で走る１つまたは複数のプログラムとして）も、１つまたは複数のプロセッサ上で走る１つまたは複数のプログラムとして（例えば１つまたは複数のマイクロプロセッサ上で走る１つまたは複数のプログラムとして）も、ファームウェアとしても、事実上それらの任意の組み合わせとしても同等に実施することができること、ならびにソフトウェアおよび／またはファームウェアのための回路の設計および／またはコードの作成は、本開示を踏まえれば十分に当業者の技能範囲内となるはずであることを当業者は理解するであろう。加えて当業者は、本明細書で説明する主題の機構を様々な形態のプログラム製品として配布することができること、および本明細書で説明する主題の一例示的実施形態は、実際に配布を実行するのに使用される信号担持媒体の特定の種類にかかわらず適用できることも理解するであろう。信号担持媒体の例には、それだけに限らないが、以下が含まれる。フロッピーディスク、ハード・ディスク・ドライブ、コンパクトディスク（ＣＤ）、ディジタル多用途ディスク（ＤＶＤ）、ディジタルテープ、コンピュータメモリなどといった書込み可能型媒体、ならびに、ディジタルおよび／またはアナログ通信媒体（例えば、光ファイバケーブル、導波管、有線通信リンクおよび／またはチャネル、無線通信リンクおよび／またはチャネルなど）といった伝送型媒体。
【００２８】
当分野においては、装置および／またはプロセスを本明細書に示すように記載し、その後、技術的手法を用いてそのように記載される装置および／またはプロセスをデータ処理システムへと統合することが一般的であることを、当業者は理解するであろう。すなわち、本明細書で説明する装置および／またはプロセスの少なくとも一部分を、妥当な量の実験を経てデータ処理システムへと統合することができる。典型的なデータ処理システムは、一般に、システム・ユニット・ハウジング、ビデオ表示装置、揮発性メモリや不揮発性メモリといったメモリ、マイクロプロセッサやディジタル信号プロセッサといったプロセッサ、オペレーティングシステム、ドライバ、グラフィカル・ユーザ・インターフェース、アプリケーションプログラムといったコンピュータエンティティ、タッチパッドや画面といった１つまたは複数の対話装置、ならびに／または、フィードバックループおよび制御モータを含む制御システム（位置および／もしくは速度を感知するためのフィードバック、構成要素および／もしくは量を移動および／もしくは調整するための制御モータなど）のうちの１つもしくは複数を含むことを当業者は理解するであろう。典型的なデータ処理システムは、データ計算／通信システムおよび／またはネットワーク計算／通信システムにおいて典型的に見られるような、任意の適切な市販の構成部品を利用して実施され得る。
【００２９】
本明細書で説明する主題は、場合によっては、別の異なる構成要素内に含まれる、または別の異なる構成要素と接続された別個の構成要素を示すことがある。そのように描かれるアーキテクチャは単なる例示にすぎず、実際は、同じ機能を達成する他の多くのアーキテクチャを実施することができることを理解すべきである。概念的な意味では、同じ機能を達成するための構成要素の任意の配置は、事実上、所望の機能が達成されるように「関連付けられている」。したがって、特定の機能を達成するように組み合わされる本明細書の任意の２つの構成要素は、アーキテクチャや介在する構成要素にかかわらず、所望の機能が達成されるように相互に「関連付けられた」ものとみなすことができる。同様に、そのように関連付けられた任意の２つの構成要素を、所望の機能を達成するように相互に「動作可能に接続され」、または「動作可能に結合され」ているものとみなすこともでき、そのように関連付けることができる任意の２つの構成要素を、所望の機能を達成するように相互に「動作可能に結合可能である」ものとみなすこともできる。動作可能に結合可能であるものの具体例には、それだけに限らないが、物理的に結合可能であり、かつ／もしくは物理的に相互作用する構成要素、および／または無線で相互作用可能であり、かつ／もしくは無線で相互作用する構成要素、および／または論理的に相互作用し、かつ／もしくは論理的に相互作用可能な構成要素が含まれる。
【００３０】
本明細書における実質的にいかなる複数形および／または単形数の用語の使用についても、当業者は、状況および／または用途に合わせてしかるべく、複数形から単数形に、かつ／または単数形から複数形に変換することができる。本明細書においては明確にするために様々な単数形／複数形の置換形が明示され得る。
【００３１】
一般に、本明細書において、特に添付の特許請求の範囲（例えば添付の特許請求の範囲の本文など）において使用される用語は、一般には、「非限定的な（ｏｐｅｎ）」用語として意図されている（例えば、「ｉｎｃｌｕｄｉｎｇ（〜を含み）」という用語は「それだけに限らないが〜を含み」と解釈すべきであり、「ｈａｖｉｎｇ（〜を有し）」という用語は「少なくとも〜を有し」と解釈すべきであり、「ｉｎｃｌｕｄｅｓ（〜を含む）」という用語は、「それだけに限らないが、〜を含む」と解釈すべきであるなど）ことが当業者には理解されるであろう。さらに、導入請求項記載の特定の数が意図される場合、そのような意図は当該請求項において明示的に記載され、そのような記載がない場合にはそのような意図が存在しないことも当業者には理解されるであろう。例えば理解の一助として挙げると、添付の特許請求の範囲は、請求項記載を導入するために、「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」という導入句の使用を含み得る。しかし、そのような句の使用は、同じ請求項が「１つまたは複数の」あるいは「少なくとも１つの」という導入句および「ａ」や「ａｎ」といった不定冠詞を含むときでさえも、不定冠詞「ａ」または「ａｎ」による請求項記載の導入が、そのような導入請求項記載を含む任意の特定の請求項を、ただ１つのそのような記載を含む発明だけに限定することを意味するものと解釈されるべきではない（例えば、「ａ」および／または「ａｎ」は、通常は、「少なくとも１つの」または「１つまたは複数の」を意味するものと解釈されるべきであるなど）。同じことが、請求項記載を導入するのに使用される定冠詞の使用についても当てはまる。加えて、導入請求項記載の特定の数が明示的に記載されている場合でさえも、そのような記載が、通常は、少なくとも記載される数を意味するものと解釈されるべきであることも当業者は理解するであろう（例えば、他の修飾語句を伴わない「２つの記載」という記載だけで、通常は、少なくとも２つの記載、または２つ以上の記載を意味するなど）。さらに、「Ａ、Ｂ、およびＣのうちの少なくとも１つなど」に類似した慣用表現が使用される場合、一般にそのような構造は、当業者が当該慣用表現を理解するはずの意味として意図されるものである（例えば、「Ａ、Ｂ、およびＣのうちの少なくとも１つを有するシステム」は、それだけに限らないが、Ａだけを、Ｂだけを、Ｃだけを、ＡとＢとを共に、ＡとＣとを共に、ＢとＣとを共に、かつ／またはＡ、Ｂ、およびＣを共に有するシステムを含むはずであるなど）。「Ａ、Ｂ、またはＣのうちの少なくとも１つなど」に類似した慣用表現が使用される場合、一般にそのような構造は、当業者が当該慣用表現を理解するはずの意味として意図されるものである（例えば、「Ａ、Ｂ、またはＣのうちの少なくとも１つを有するシステム」は、それだけに限らないが、Ａだけを、Ｂだけを、Ｃだけを、ＡとＢとを共に、ＡとＣとを共に、ＢとＣとを共に、かつ／またはＡ、Ｂ、およびＣを共に有するシステムを含むはずであるなど）。さらに、２つ以上の択一的項目を提示する事実上あらゆる選言的な語および／または句は、本明細���においてであれ、特許請求の範囲においてであれ、図面においてであれ、それらの項目のうちの１つ、それらの項目のうちのどちらか、またはそれらの項目の両方を含む可能性を企図するものと理解すべきであることも当業者には理解されるであろう。例えば、「ＡまたはＢ」という句は、「Ａ」または「Ｂ」または「ＡおよびＢ」の可能性を含むものと理解されるであろう。
【００３２】
本明細書では様々な態様および実施形態が開示されているが、当業者には他の態様および実施形態も明らかであろう。本明細書で開示する様々な態様および実施形態は例示のためのものであり、限定を意図するものではなく、その真の範囲および趣旨は添付の特許請求の範囲によって指示される。
【図１】
0005547820.tif 000002
【図２】
0005547820.tif 000003
【図３】
0005547820.tif 000004
【図４】
0005547820.tif 000005
【図５】
0005547820.tif 000006