(57)【要約】プロセッサ（１００）は、例えば、実行ユニット（１１０）のセット又はプロセッサのキャッシュ等における動作の実行をスケジュールする動作スケジューラ（１０５）を含む。動作スケジューラは、動作のセットを追跡アレイ（１２０）に定期的に追加し、さらに、例えば、動作が、実行が完了していない他の動作に依存していることを識別したことに応じて、追跡されたセット内の動作が実行スケジュールからブロックされるときを識別する。さらに、プロセッサは、追跡アレイ内の動作が実行することからブロックされる毎に調整されるカウンタ（１３０）を含み、カウンタは、追跡アレイ内の動作が実行される毎にリセットされる。カウンタの値が閾値（１３５）を超えると、動作スケジューラは、残りの追跡された動作を、実行スケジュールのために優先させる。【選択図】図１
2019521451.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ（１００）での実行をスケジュールするために動作を受信したことに応じて、第１動作（１０７）をプロセッサ（１００）の追跡アレイ（１２０）に追加することと、
前記第１動作が前記追跡アレイに記憶されている間に前記第１動作を実行のためにスケジュールするのをブロックしたことに応じて、第１調整によってカウンタ（１３０）の値を調整することと、
前記カウンタの値が閾値（１３５）を超えたことに応じて、前記追跡アレイに記憶されていない動作の実行のスケジュールを抑制すること（４２２）と、を含む、
方法。
【請求項２】
前記第１動作が前記追跡アレイに記憶されている間に前記第１動作が実行のためにスケジュールされたことに応じて、カウンタをリセットすること（４１６）をさらに含む、
請求項１の方法。
【請求項３】
前記カウンタの値は、前記追跡アレイに記憶された動作が実行のためにスケジュールされたことに応じて、第２調整によって調整される、
請求項１の方法。
【請求項４】
前記第１動作は、前記第１動作が第２動作に依存していることを識別したことに応じて、ブロックされる、
請求項１の方法。
【請求項５】
前記第１動作は、プロセッサの実行ユニット（１１０）での実行のスケジュールを待機している動作である、
請求項１の方法。
【請求項６】
前記第１動作は、前記プロセッサのキャッシュにおける実行のスケジュールを待機しているメモリアクセス要求である、
請求項１の方法。
【請求項７】
前記追加することは、前記プロセッサでの実行のスケジュールの準備ができている複数の動作を前記追跡アレイに追加することを含み、前記複数の動作は前記第１動作を含む、
請求項１の方法。
【請求項８】
プロセッサ（１００）での実行のスケジュールの準備ができている複数の動作を追跡アレイ（１２０）に追加することと、
前記第１動作が前記追跡アレイに記憶されている間に、前記複数の動作のうち第１動作（１０７）が実行のためにスケジュールされるのをブロックされたことに応じて、カウンタ（１３０）を調整することと、
前記カウンタが閾値（１３５）を超えたことに応じて、前記追跡アレイに記憶された動作を、前記プロセッサでの実行のために優先させることと、を含む、
方法。
【請求項９】
プロセッサ（１００）であって、
前記プロセッサでの実行のために動作をスケジュールするように構成された動作スケジューラ（１０５）と、
前記動作スケジューラにおける動作のセットを記憶するように構成された追跡アレイ（１２０）と、
前記追跡アレイに記憶された第１動作が、前記動作スケジューラで実行のためにスケジュールされるのをブロックされたことに応じて、第１調整によって値を調整するように構成されたカウンタ（１３０）と、を備え、
前記動作スケジューラは、前記カウンタの値が閾値（１３５）を超えたことに応じて、前記追跡アレイに記憶された動作を、実行のために優先させるように構成されている、
プロセッサ。
【請求項１０】
前記カウンタは、前記第１動作が前記追跡アレイに記憶されている間に前記第１動作が実行のためにスケジュールされたことに応じて、値をリセットするように構成されている、
請求項９のプロセッサ。
【請求項１１】
前記カウンタは、前記追跡アレイに記憶された動作が実行のためにスケジュールされたことに応じて、第２調整によって前記カウンタの値を調整するように構成されている、
請求項９のプロセッサ。
【請求項１２】
前記動作スケジューラは、前記第１動作が第２動作に依存していることを識別したことに応じて、前記第１動作をブロックするように構成されている、
請求項９のプロセッサ。
【請求項１３】
前記第１動作は、前記プロセッサの実行ユニット（１１０）での実行のスケジュールを待機している動作である、
請求項９のプロセッサ。
【請求項１４】
前記第１動作は、前記プロセッサのキャッシュにおける実行のスケジュールを待機しているメモリアクセス要求である、
請求項９のプロセッサ。
【請求項１５】
前記動作のセットは、前記動作スケジューラでのスケジュールの準備が同時にできている動作のセットを含む、
請求項９のプロセッサ。
【発明の詳細な説明】
【背景技術】
【０００１】
プロセッサは、処理効率を向上させるために、プロセッサで実行されている命令のプログラム順序とは異なる順序で動作をスケジュールすることができる。例えば、プロセッサは、プロセッサの実行ユニットにおいてアウトオブオーダーで動作をスケジュールすることができ、プロセッサキャッシュにおいてアウトオブオーダーでメモリアクセス動作をスケジュールすることができる。アウトオブオーダーで動作をスケジュールすることは、比較的遅い実行動作が、実行する準備ができている他の動作の実行を遅らせるのを抑制することによって、処理効率を向上させることができる。しかしながら、アウトオブオーダーでの実行は、特定の動作が他の動作に依存している場合（例えば、一方の動作が他方の動作の結果を入力値として使用する場合等）にエラーが発生する可能性がある。かかるエラーを防ぐために、プロセッサは、実行する動作をスケジュールするスケジューラを使用することができる。スケジューラは、動作間の依存関係を識別し、ある依存動作を、それが依存する他の動作の前に実行するためにスケジュールすることを抑制する。しかしながら、従来のスケジューラは、依存動作を比較的長期間スケジューラにおいて保留したままにする場合があり、処理効率を低下させる。
【０００２】
添付図面を参照することによって、本開示は当業者により良く理解され、その多数の特徴及び利点が明らかになるであろう。異なる図面での同じ参照記号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【０００３】
【図１】いくつかの実施形態による、保留中の動作が閾値回数だけ実行することからブロックされた場合に、保留中の動作を追跡し、追跡された動作のスケジューリングを優先させる処理システムのブロック図である。
【図２】いくつかの実施形態による、ブロックされた動作の閾値数を超える前後の動作をスケジュールする図１の処理システムの一例を示すブロック図である。
【図３】いくつかの実施形態による、ブロックされた動作の閾値数を超えたことを識別する図１の処理システムの追跡アレイ及びカウンタの一例を示すブロック図である。
【図４】いくつかの実施形態による、保留中の動作が閾値回数だけ実行することからブロックされた場合に保留中の動作のスケジューリングを優先させることを実行する、動作のスケジュール方法を示すフロー図である。
【発明を実施するための形態】
【０００４】
図１〜図４は、保留中の動作が閾値回数だけ実行することからブロックされた場合に、プロセッサにおいて保留中の動作を追跡し、追跡された動作のスケジューリングを優先させるための技術を示す図である。プロセッサは、例えば、実行ユニットのセット又はプロセッサのキャッシュにおける動作の実行をスケジュールする動作スケジューラを含む。動作スケジューラは、動作のセットを定期的に追跡アレイに追加し、さらに、例えば、動作が、実行を完了していない他の動作に依存しているのを識別したことに応じて、追跡されたセット内の動作が実行スケジュールからブロックされるときを識別する。さらに、プロセッサは、追跡アレイ内の動作が実行することからブロックされる毎に調整されるカウンタを含み、カウンタは、追跡アレイ内の動作が実行される毎にリセットされる。動作スケジューラは、カウンタの値が閾値を超えると、例えば、追跡アレイ内に存在しない保留中の動作が実行のためにスケジュールされるのを抑制すること等によって、実行スケジュールに関する残りの追跡された動作を優先させる。したがって、動作スケジューラは、依存した動作が実行することから無期限にブロックされないようにすることによって、処理効率を向上させる。
【０００５】
図１は、いくつかの実施形態による、現在保留中のスケジュールされた動作が実行することからブロックされた回数が閾値を超えた場合に、スケジュールされた動作を追跡し、新たな動作をスケジュールするのを一時的に停止する処理システム１００を示す図である。処理システム１００は、概して、電子デバイスに代わってタスクを実行するために、コンピュータプログラムの形態で構成された動作のセットを実行するように構成されている。したがって、処理システム１００は、デスクトップ又はラップトップコンピュータ、サーバ、スマートフォン、タブレット、ゲーム機等の様々な電子デバイスの何れにも使用することができる。
【０００６】
処理システム１００は、命令の実行を容易にするために、動作スケジューラ１０５と、スケジュール動作追跡アレイ１２０と、閾値１３５を有するカウンタ１３０と、１つ以上の実行ユニット１１０と、を含む。いくつかの実施形態では、処理システム１００は、１つ以上のメモリキャッシュ及びメインメモリ（図示省略）をさらに含むことができ、これらの各々は、概して、データを記憶するように構成されたメモリデバイスであり、ひいては、１つ以上のランダムアクセスメモリ（ＲＡＭ）メモリモジュール、不揮発性メモリデバイス（例えば、フラッシュメモリ）等である。
【０００７】
動作スケジューラ１０５は、例えば、メモリコントローラ、Ｉ／Ｏコントローラ、及び、例えば、命令パイプラインのディスパッチステージ（図示省略）又は命令パイプラインのロード／ストアユニットから一連のプログラム動作１０２を受信するように構成及び接続されたデジタル及び／又はアナログ回路を含むモジュール等のモジュールである。いくつかの実施形態では、動作は、整数ユニット、浮動小数点演算ユニット等の実行ユニットのセットで実行されるように構成されたプログラム動作である。他の実施形態では、動作は、プロセッサのキャッシュ（図示省略）で実行されるように構成されたロード動作及び記憶動作等のメモリアクセス動作である。
【０００８】
一連のプログラム動作１０２の各動作は、一連のプログラム動作１０２内の他の動作から独立していてもよいし、一連のプログラム動作１０２の１つ以上の他の動作に依存していてもよい。独立した動作は、他の保留中の動作が実行を完了するのを待たずに、１つ以上の実行ユニット１１０によって適切に実行され得る（すなわち、期待された結果を達成するように実行され得る）動作である。対照的に、依存した動作は、１つ以上の他の保留中の動作が実行を完了するまで実行ユニット１１０で適切に実行されない動作である。依存した動作の例は、ロード動作の結果を１つの入力として有する加算動作である。加算動作は、ロード動作が完了するまで適切に実行することができず、これにより、加算動作はロード動作に依存する。
【０００９】
動作スケジューラ１０５は、概して、受信した動作１０２を記憶し、記憶された動作を実行ユニット１１０に提供するために選択するように構成されており、これにより、選択された動作を実行のためにスケジュールするように構成されている。いくつかの実施形態では、動作スケジューラ１０５は、受信した動作毎に初期のエイジ値を割り当て、異なる動作が実行のためにスケジュールされたことに応じて、各動作のエイジ値をインクリメントする。動作スケジューラ１０５は、最高又は最古のエイジ値を有する動作を選択すること等によって、記憶された動作のエイジ値に基づいて、スケジュールされる次の動作を選択する。
【００１０】
いくつかの実施形態では、動作スケジューラ１０５は、エイジ値に基づいて動作を選択した後、選択された動作が他の動作に依存しているかどうかを識別する。この依存性チェックは、依存動作が依存する動作へのポインタを含むことによって、及び、動作スケジューラ１０５が最近実行された動作のリストを検討して、依存動作が既に実行された動作をポイントしているかどうかを識別することによって等のように、様々な依存性チェック技術の何れかに従って実行することができる。（動作が他の動作に依存したことがないか、以前に依存した全ての動作が実行を完了したために）選択された動作が独立した動作であることを識別したことに応じて、動作スケジューラ１０５は、動作を実行ユニット１１０に提供することによって、動作の実行をスケジュールする。動作スケジューラ１０５は、選択された動作が依存した動作であることを識別したことに応じて、選択された動作を実行ユニット１１０に提供せず、代わりに他の動作を選択する。動作を依存した動作として識別したことに応じて、選択された動作を提供するのを抑制することは、本明細書では「動作をブロックすること」と呼ばれる。いくつかの実施形態では、動作スケジューラ１０５は、動作をブロックしたことに応じて、そのエイジ値をより低い値にリセットし、これにより、ブロックされた動作が実行のために直ちに再度選択されないことを確実にする。
【００１１】
受信した動作のいくつかのパターンに関して、動作選択スキームは、依存した動作が繰り返しブロックされ、結果として、動作スケジューラ１０５において比較的長期間保留になり、これにより、全体的な処理効率を低下させる。これらの受信した動作のパターンに対処するために、処理システム１００は、スケジュール動作追跡アレイ１２０を含む。スケジュール動作追跡アレイ１２０は、本明細書でさらに説明するように、閾値１３５を有するカウンタ１３０と連動して、依存関係によってブロックされた保留中の動作の数が閾値１３５を超えるまで、独立した動作及び依存した動作の両方をアウトオブシーケンスでスケジュールすることを可能にする。スケジュール動作追跡アレイ１２０は、保留中の動作を追跡するように構成されたアレイ又はベクトルである。動作スケジューラ１０５は、概して、動作自体に対応するデータを追跡アレイ１２０に追加することによって、又は、追加された動作に対応する指標（例えば、タグ）を追加することによって、動作（例えば、動作１０７）を追跡アレイ１２０に追加するように構成されている。いくつかの実施形態では、動作スケジューラ１０５は、定期的に又は特定の条件のセットに応じて、全ての保留中の動作を追跡アレイ１２０に追加する。他の実施形態では、動作スケジューラ１０５は、動作の閾値数に達するまで、受信した動作の各々を追跡アレイ１２０に追加する。いくつかの実施形態では、動作スケジューラ１０５は、実行ユニット１１０における実行のためにスケジュールされるのを保留している動作のサブセット（すなわち、全ての動作よりも少ない動作）のみを記憶する。
【００１２】
カウンタ１３０は、概して、調整可能な値を記憶するように構成されている。カウンタ１３０は、リセット信号によって示されるリセットイベントに応じて、記憶した値をリセット値（例えば、０）に初期化し、追跡アレイ１２０内の何れかの動作の実行が動作スケジューラ１０５によってブロックされる毎に、記憶した値を調整（例えば、インクリメント）する。すなわち、カウンタ１３０は、動作の実行がブロックされる毎に、ブロックされた動作が初めてブロックされたのか事前にブロックされていたのかに関係なく、インクリメントする。したがって、例えば、スケジュール動作追跡アレイ１２０が４つのスケジュールされた動作で占められる場合（１番目の動作が１回ブロックされており、２番目の動作が２回ブロックされており、３番目の動作がブロックされておらず、４番目の動作が１回ブロックされている場合）、カウンタは４回インクリメントする。いくつかの実施形態では、スケジュール動作追跡アレイ１２０内の動作が動作スケジューラ１０５によってスケジュールされる場合、追跡アレイ１２０は、スケジュールされた動作をスケジュール動作追跡アレイ１２０から削除し、カウンタ１３０は、その初期値にリセットされる。他の実施形態では、カウンタ１３０は、追跡された動作がスケジュールされたときに完全にリセットするのではなく、記憶した値を、リセット値に向かって閾値から離れるように調整する（例えば、記憶した値をデクリメントする）。
【００１３】
閾値１３５は、追跡アレイ１２０によって追跡された動作が、動作スケジューラ１０５によって優先される前にブロックされるのが許可される回数の制限を記憶するプログラム可能なレジスタである。例示すると、動作スケジューラ１０５は、カウンタ１３０の値が閾値１３５を超えたことに応じて、追跡アレイ１２０に記憶された動作を、実行ユニット１１０でスケジュールするために優先させる。いくつかの実施形態では、動作スケジューラ１０５は、追跡アレイ１２０に記憶された少なくとも１つの動作が実行ユニット１１０にスケジュールされるまで、スケジュール動作追跡アレイ１２０に記憶されていない動作のスケジュールを優先させる。したがって、処理システム１００は、繰り返しブロックされた動作が実行のために優先されることを確実にして、処理効率を向上させる。
【００１４】
図２は、いくつかの実施形態による、ブロックされた動作の閾値数を超える前後の動作をスケジュールする図１の処理システムの一例を示す図である。図示した例では、時間Ｔ１において、スケジュール動作追跡アレイ１２０は、動作２１２，２１４，２１６を含む。カウンタ１３０は３の値を有しており、閾値１３５は、３に設定されている。また、時間Ｔ１において、動作スケジューラ１０５は、例えば動作を受信する等の特定の条件に応じて、閾値数の動作が動作スケジューラ１０５で受信されたこと等に応じて、動作２１８を追跡アレイ１２０に追加する。
【００１５】
その後の時間Ｔ２において、動作２１２が動作スケジューラ１０５によって選択され、独立した動作であると判別される。これに応じて、動作スケジューラ１０５は、動作２１２を実行ユニット１１０に提供することによって、動作２１２の実行をスケジュールする。また、動作スケジューラ１０５は、制御信号を追跡アレイ１２０に送信して動作２１２を削除し、制御信号をカウンタ１３０に送信してカウンタ値を初期値０にリセットする。したがって、図２の例では、追跡された動作が閾値回数だけブロックされておらず、これにより、動作スケジューラ１０５によってスケジュールが優先されない。
【００１６】
図３は、いくつかの実施形態による、ブロックされた動作の閾値数を超えたことを識別する図１の処理システムの追跡アレイ及びカウンタの一例を示すブロック図である。図示した例では、時間Ｔ１において、スケジュール動作追跡アレイ１２０は、４つのスケジュールされた動作（時間Ｔ１において実行が０回ブロックされたスケジュールされた動作３１２と、時間Ｔ１において実行が２回ブロックされたスケジュールされた動作３１４と、時間Ｔ１において実行が１回ブロックされたスケジュールされた動作３１６と、時間Ｔ１において実行が０回ブロックされたスケジュールされた動作３１８と）を含む。カウンタ１３０は、３の値を記憶しており、この値は、スケジュール動作追跡アレイ１２０内のスケジュールされた動作が時間Ｔ１の時点でブロックされた回数の合計を反映する。時間Ｔ１において、カウンタ１３０の値は、閾値１３５（３に設定されている）を超えていない。したがって、動作スケジューラ（図示省略）は、時間Ｔ１において、追跡された動作（追跡アレイ１２０に記憶された動作）を優先しない。
【００１７】
その後の時間Ｔ２において、スケジュール動作追跡アレイ１２０は、４つのスケジュールされた動作（時間Ｔ２において実行が０回ブロックされたスケジュールされた動作３１２と、時間Ｔ２において実行が２回ブロックされたスケジュールされた動作３１４と、時間Ｔ２において実行が１回ブロックされたスケジュールされた動作３１６と、時間Ｔ２において実行が１回ブロックされたスケジュールされた動作３１８と）を含む。カウンタ１３０は、４の値を有しており、この値は、スケジュール動作追跡アレイ１２０内のスケジュールされた動作が時間Ｔ２の時点でブロックされた回数の合計を反映する。時間Ｔ２において、カウンタ１３０の値は、閾値３３５（３に設定されている）を超えている。したがって、動作スケジューラ１０５（図示省略）は、追跡アレイ１２０に記憶された動作を、実行ユニット１１０でスケジュールするために優先させる。いくつかの実施形態では、動作スケジューラ１０５は、非追跡動作（追跡アレイ１２０に記憶されていない動作）よりも高いエイジ値を動作に割り当てることによって、及び、追跡された動作の全てが実行ユニット１１０での実行のためにスケジュールされるまで、追跡された動作に関してより高いエイジ値を維持することによって、追跡された動作を優先させる。いくつかの実施形態において、カウンタ１３０は、閾値で飽和する飽和カウンタである。かかる実施形態では、カウンタ１３０の値が閾値３３５に等しい場合、動作スケジューラ１０５（図示省略）は、追跡アレイ１２０に記憶された動作を、実行ユニット１１０でスケジュールするために優先させる。
【００１８】
図４は、いくつかの実施形態による、保留中の動作が閾値回数だけ実行することからブロックされた場合に保留中の動作のスケジュールを優先させることを実行する、動作のスケジュール方法４００を示すフロー図である。ブロック４０２において、動作スケジューラ１０５は、動作のセットを追跡アレイ１２０に記憶する。ブロック４０４において、動作スケジューラ１０５は、潜在的なスケジュールのために、保留中の動作を選択する。ブロック４０６において、動作スケジューラ１０５は、選択された動作が追跡アレイ１２０に記憶されているかどうかを識別する。記憶されていない場合、方法のフローはブロック４０８に移行し、動作スケジューラ１０５は、動作を正常にスケジュールするかどうかを判別する。特に、動作スケジューラ１０５は、選択された動作が他の動作に依存しているかどうかを判別し、依存している場合、選択された動作をブロックする。選択された動作が他の動作に依存しておらず、ブロック４２０（後述する）でカウンタ閾値を超えていない場合、動作スケジューラ１０５は、動作を、実行ユニット１１０で実行するためにスケジュールする。ブロック４２０でカウンタ閾値を超えている場合、以下にさらに説明するように、選択された動作はスケジュールされない。
【００１９】
ブロック４０６に戻り、選択された動作が追跡アレイ１２０に記憶されている場合、方法のフローはブロック４１０に移行し、動作スケジューラ１０５は、選択された動作が他の動作に依存しているかどうかを判別する。依存していない場合、方法のフローはブロック４１２に移行し、動作スケジューラ１０５は、選択された動作を、実行のために実行ユニット１１０に提供することによって、選択された動作を、実行のためにスケジュールする。方法はブロック４１４に移行し、動作スケジューラ１０５は、選択された動作を追跡アレイ１２０から削除し、ブロック４１６においてカウンタを初期値にリセットする。次に、方法はブロック４０４に戻り、他の動作が選択される。
【００２０】
ブロック４１０に戻り、選択された動作が他の動作に依存している場合、動作スケジューラ１０５は、動作をブロックする。これに応じて、方法のフローはブロック４１８に移行し、動作スケジューラ１０５は、カウンタ１３０をインクリメントする。ブロック４２０において、動作スケジューラ１０５は、カウンタ値が閾値１３５を超えているかどうかを判別する。超えていない場合、方法のフローはブロック４０４に戻り、他の動作が選択される。ブロック４２０において、カウンタ値が閾値１３５を超えていることを動作スケジューラ１０５が判別した場合に、方法のフローはブロック４２２に移行し、動作スケジューラは、追跡アレイ１２０に記憶された少なくとも１つの動作がスケジュールされるまで、追跡アレイ１２０に記憶されていない動作が実行のためにスケジュールされるのを抑制する。
【００２１】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの１つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の１つ以上のセットを含む。ソフトウェアは、１つ以上のプロセッサによって実行されると、上記の技術の１つ以上の態様を実行するように１つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）、又は、他の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、１つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【００２２】
コンピュータ可読記憶媒体は、命令及び／又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体、又は、記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定されないが、光媒体（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（登録商標）ディスク）、磁気媒体（例えば、フロッピー（登録商標）ディスク、磁気テープ、磁気ハードドライブ）、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）、キャッシュ）、不揮発性メモリ（例えば、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ）、又は、微小電気機械システム（ＭＥＭＳ）ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム（例えば、システムＲＡＭ又はＲＯＭ）に内蔵されてもよいし、コンピュータシステム（例えば、磁気ハードドライブ）に固定的に取り付けられてもよいし、コンピュータシステム（例えば、光学ディスク又はユニバーサルシリアルバス（ＵＳＢ）ベースのフラッシュメモリ）に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム（例えば、ネットワークアクセス可能なストレージ（ＮＡＳ））に接続されてもよい。
【００２３】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、１つ以上のさらなるアクティビティが実行される場合があり、１つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【００２４】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【図１】
2019521451.tif 000003
【図２】
2019521451.tif 000004
【図３】
2019521451.tif 000005
【図４】
2019521451.tif 000006
【国際調査報告】
2019521451.tif 000007
2019521451.tif 000008