(57)【特許請求の範囲】
【請求項１】
キャッシュ管理のためのシステムであって、
ユニバーサルシリアルバス（ＵＳＢ）デバイスの一部をそれぞれが含む複数のデバイスエンドポイントに対応する複数のキャッシュラインを有するキャッシュと、
キャッシュ管理コンポーネントと
を備え、
前記キャッシュ管理コンポーネントは、
第１デバイスエンドポイントに関わるデータ転送のための１または複数の第１転送要求ブロック（ＴＲＢ）を受信し、
前記キャッシュにおけるキャッシュラインが前記第１デバイスエンドポイントに割り当てられているかを決定し、
前記キャッシュにおけるキャッシュラインが前記第１デバイスエンドポイントに割り当てられていないことに応答して、有効なＴＲＢを含まないエンプティキャッシュラインを前記キャッシュが含むかを決定し、
前記キャッシュがエンプティキャッシュラインを含むことに応答して、
前記エンプティキャッシュラインを前記第１デバイスエンドポイントに割り当て、
前記１または複数の第１ＴＲＢを前記エンプティキャッシュラインに格納し、
前記キャッシュがエンプティキャッシュラインを含まないことに応答して、
制御エンドポイントに事前に割り当てられた制御キャッシュラインに対応する予め定められたキャッシュラインを前記第１デバイスエンドポイントに割り当て、
前記１または複数の第１ＴＲＢを前記予め定められたキャッシュラインに格納する、システム。
【請求項２】
前記キャッシュ管理コンポーネントはさらに、
第２デバイスエンドポイントに関わるデータ転送のために１または複数の第２ＴＲＢを受信し、
前記キャッシュにおけるキャッシュラインが前記第２デバイスエンドポイントに割り当てられているかを決定し、
キャッシュラインが前記第２デバイスエンドポイントに割り当てられていないことに応答して、前記キャッシュがエンプティキャッシュラインを含むかを決定し、
前記キャッシュがエンプティキャッシュラインを含むことに応答して、
前記エンプティキャッシュラインを前記第２デバイスエンドポイントに割り当て、
前記１または複数の第２ＴＲＢを前記エンプティキャッシュラインに格納し、
前記キャッシュがエンプティキャッシュラインを含まないことに応答して、
前記予め定められたキャッシュラインを前記第２デバイスエンドポイントに割り当て、
前記１または複数の第２ＴＲＢを前記予め定められたキャッシュラインに格納して前記１または複数の第１ＴＲＢを置き換える、請求項１に記載のシステム。
【請求項３】
前記キャッシュ管理コンポーネントはさらに、前記第１デバイスエンドポイントに関連付けられる第１ＴＲＢリングから前記１または複数の第１ＴＲＢを受信し、前記第２デバイスエンドポイントに関連付けられる第２ＴＲＢリングから前記１または複数の第２ＴＲＢを受信する、請求項２に記載のシステム。
【請求項４】
前記第１デバイスエンドポイントに関わるデータ転送のために前記キャッシュから前記１または複数の第１ＴＲＢを取得するスケジューラをさらに備える、請求項１から３のいずれか一項に記載のシステム。
【請求項５】
前記キャッシュ管理コンポーネントはさらに、前記第１デバイスエンドポイントに割り当てられている第１キャッシュラインがロケートされたことに応答して、前記１または複数の第１ＴＲＢを前記第１キャッシュラインに格納する、請求項１から４のいずれか一項に記載のシステム。
【請求項６】
前記キャッシュ管理コンポーネントはさらに、前記１または複数の第１ＴＲＢを前記第１キャッシュラインに格納して、前記第１キャッシュラインに事前に格納されている１または複数の第２ＴＲＢを置き換える、請求項５に記載のシステム。
【請求項７】
前記予め定められたキャッシュラインは、前記１または複数の第１ＴＲＢの前に最も直近に受信された１または複数の第２ＴＲＢを含む最後のキャッシュラインに対応し、
前記キャッシュ管理コンポーネントはさらに、前記１または複数の第１ＴＲＢを前記予め定められたキャッシュラインに格納して、前記１または複数の第２ＴＲＢを置き換える、請求項１から６のいずれか一項に記載のシステム。
【請求項８】
第１ユニバーサルシリアルバス（ＵＳＢ）デバイスの一部を含む第１デバイスエンドポイントに関わるデータ転送のための１または複数の第１転送要求ブロック（ＴＲＢ）を受信する段階と、
複数のデバイスエンドポイントに対応する複数のキャッシュラインを含むキャッシュにおけるキャッシュラインが前記第１デバイスエンドポイントに割り当てられているかを決定する段階と、
キャッシュラインが前記第１デバイスエンドポイントに割り当てられていないことに応答して、有効なＴＲＢを含まないエンプティキャッシュラインを前記キャッシュが含むかを決定する段階と、
前記キャッシュがエンプティキャッシュラインを含むことに応答して、
前記エンプティキャッシュラインを前記第１デバイスエンドポイントに割り当てる段階と、
前記１または複数の第１ＴＲＢを前記エンプティキャッシュラインに格納する段階と、
前記キャッシュがエンプティキャッシュラインを含まないことに応答して、
制御エンドポイントに事前に割り当てられた制御キャッシュラインに対応する予め定められたキャッシュラインを前記第１デバイスエンドポイントに割り当てる段階と、
前記１または複数の第１ＴＲＢを前記予め定められたキャッシュラインに格納する段階と
を備える、方法。
【請求項９】
第２デバイスエンドポイントに関わるデータ転送のために１または複数の第２ＴＲＢを受信する段階と、
前記キャッシュにおけるキャッシュラインが前記第２デバイスエンドポイントに割り当てられているかを決定する段階と、
前記キャッシュにおけるキャッシュラインが前記第２デバイスエンドポイントに割り当てられていないことに応答して、前記キャッシュがエンプティキャッシュラインを含むかを決定する段階と、
前記キャッシュがエンプティキャッシュラインを含むことに応答して、
前記エンプティキャッシュラインを前記第２デバイスエンドポイントに割り当てる段階と、
前記１または複数の第２ＴＲＢを前記エンプティキャッシュラインに格納する段階と、
前記キャッシュがエンプティキャッシュラインを含まないことに応答して、
前記予め定められたキャッシュラインを前記第２デバイスエンドポイントに割り当てる段階と、
前記１または複数の第２ＴＲＢを前記予め定められたキャッシュラインに格納して前記１または複数の第１ＴＲＢを置き換える段階と
をさらに備える、請求項８に記載の方法。
【請求項１０】
前記１または複数の第１ＴＲＢは、前記第１デバイスエンドポイントに関連付けられる第１ＴＲＢリングから受信され、
前記１または複数の第２ＴＲＢは、前記第２デバイスエンドポイントに関連付けられる第２ＴＲＢリングから受信される、請求項９に記載の方法。
【請求項１１】
前記第１デバイスエンドポイントに関わるデータ転送のために前記キャッシュから前記１または複数の第１ＴＲＢを取得する段階をさらに備える、請求項８から１０のいずれか一項に記載の方法。
【請求項１２】
前記第１デバイスエンドポイントに割り当てられた第１キャッシュラインがロケートされたことに応答して、前記１または複数の第１ＴＲＢを前記第１キャッシュラインに格納する段階をさらに備える、請求項８から１１のいずれか一項に記載の方法。
【請求項１３】
前記１または複数の第１ＴＲＢは前記第１キャッシュラインに格納されて、前記第１キャッシュラインに事前に格納されている１または複数の第２ＴＲＢを置き換える、請求項１２に記載の方法。
【請求項１４】
第１ユニバーサルシリアルバス（ＵＳＢ）デバイスの一部を含む第１デバイスエンドポイントに関わるデータ転送のための１または複数の第１転送要求ブロック（ＴＲＢ）を受信する手順と、
複数のデバイスエンドポイントに対応する複数のキャッシュラインを含むキャッシュにおけるキャッシュラインが前記第１デバイスエンドポイントに割り当てられているかを決定する手順と、
キャッシュラインが前記第１デバイスエンドポイントに割り当てられていないことに応答して、有効なＴＲＢを含まないエンプティキャッシュラインを前記キャッシュが含むかを決定する手順と、
前記キャッシュがエンプティキャッシュラインを含むことに応答して、
前記エンプティキャッシュラインを前記第１デバイスエンドポイントに割り当てる手順と、
前記１または複数の第１ＴＲＢを前記エンプティキャッシュラインに格納する手順と、
前記キャッシュがエンプティキャッシュラインを含まないことに応答して、
制御エンドポイントに事前に割り当てられた制御キャッシュラインに対応する予め定められたキャッシュラインを前記第１デバイスエンドポイントに割り当てる手順と、
前記１または複数の第１ＴＲＢを前記予め定められたキャッシュラインに格納する手順と
を１または複数のデータプロセッサに実行させるプログラム。
【請求項１５】
第２デバイスエンドポイントに関わるデータ転送のために１または複数の第２ＴＲＢを受信する手順と、
前記キャッシュにおけるキャッシュラインが前記第２デバイスエンドポイントに割り当てられているかを決定する手順と、
前記キャッシュにおけるキャッシュラインが前記第２デバイスエンドポイントに割り当てられていないことに応答して、前記キャッシュがエンプティキャッシュラインを含むかを決定する手順と、
前記キャッシュがエンプティキャッシュラインを含むことに応答して、
前記エンプティキャッシュラインを前記第２デバイスエンドポイントに割り当てる手順と、
前記１または複数の第２ＴＲＢを前記エンプティキャッシュラインに格納する手順と、
前記キャッシュがエンプティキャッシュラインを含まないことに応答して、
前記予め定められたキャッシュラインを前記第２デバイスエンドポイントに割り当てる手順と、
前記１または複数の第２ＴＲＢを前記予め定められたキャッシュラインに格納して前記１または複数の第１ＴＲＢを置き換える手順と
をさらに前記１または複数のデータプロセッサに実行させる請求項１４に記載のプログラム。
【請求項１６】
前記１または複数の第１ＴＲＢは、前記第１デバイスエンドポイントに関連付けられる第１ＴＲＢリングから受信され、
前記１または複数の第２ＴＲＢは、前記第２デバイスエンドポイントに関連付けられる第２ＴＲＢリングから受信される、請求項１５に記載のプログラム。
【請求項１７】
前記第１デバイスエンドポイントに関わるデータ転送のために前記キャッシュから前記１または複数の第１ＴＲＢを取得する手順をさらに前記１または複数のデータプロセッサに実行させる、請求項１４から１６のいずれか一項に記載のプログラム。
【請求項１８】
前記第１デバイスエンドポイントに割り当てられた第１キャッシュラインがロケートされたことに応答して、前記１または複数の第１ＴＲＢを前記第１キャッシュラインに格納する手順をさらに前記１または複数のデータプロセッサに実行させる、請求項１４から１７のいずれか一項に記載のプログラム。
【請求項１９】
前記１または複数の第１ＴＲＢは前記第１キャッシュラインに格納されて、前記第１キャッシュラインに事前に格納されている１または複数の第２ＴＲＢを置き換える、請求項１８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本開示は、２０１３年６月７日に提出された米国仮特許出願第６１／８３２，２０７号の優先権および便益を主張する。当該米国仮特許出願は全体が参照により本明細書に組み込まれる。
【０００２】
本特許文書に説明されている技術は概して、記憶媒体に関し、より具体的にはキャッシュ管理に関する。
【背景技術】
【０００３】
ユニバーサルシリアルバス（ＵＳＢ）は、ホストと周辺機器（すなわち、ＵＳＢデバイス）との間のデータ転送のために広く用いられている。ＵＳＢシステムにおいて、ホストと周辺機器との間のデータ転送は、ホストコントローラにより制御され、ホストコントローラとホストとの間の通信は、ホストコントローラインタフェース（ＨＣＩ）、例えば、「ｅＸｔｅｎｓｉｂｌｅ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ｘＨＣＩ）」において指定されている。
【０００４】
通常、ホストコントローラは複数のＵＳＢ処理を実行して、ホストメモリと複数のデバイスエンドポイントとの間でデータを移動させ、ここで各デバイスエンドポイントは、ホストとＵＳＢデバイスとの間の通信フローにおけるデータのソースまたはシンクであるＵＳＢデバイスの一意にアドレス指定可能な部分に対応する。ホストコントローラは、複数のＵＳＢ処理のために、複数の転送要求ブロック（ＴＲＢ）などの特定の複数のデータ構造を用い得る。例えば、ＵＳＢデバイスのデバイスエンドポイントへの複数の転送、またはデバイスエンドポイントからの複数の転送は、１または複数のＴＲＢを含む転送記述子（ＴＤ）を用いて規定される。複数のＴＤはしばしば、ホストメモリに存在する１または複数の転送リング（すなわち、複数のＴＤの巡回待ち行列）を通じて管理され、各転送リングは、ＵＳＢデバイスのアクティブなデバイスエンドポイントに対応する。図１は、８つのＴＲＢを含む例示的な転送リングを示す。複数のＴＲＢを含む複数のコマンドリングおよびイベントリングも、複数のＵＳＢ処理のためにホストコントローラにより用いられ得る。
【発明の概要】
【０００５】
本明細書で説明されている教示によると、キャッシュ管理のためのシステムおよび方法が提供される。例示的なシステムは、キャッシュとキャッシュ管理コンポーネントとを含む。キャッシュは、ユニバーサルシリアルバス（ＵＳＢ）デバイスの一部をそれぞれが含む複数のデバイスエンドポイントに対応する複数のキャッシュラインを有する。キャッシュ管理コンポーネントは、第１デバイスエンドポイントに関わるデータ転送のための１または複数の第１転送要求ブロック（ＴＲＢ）を受信し、キャッシュにおけるキャッシュラインが第１デバイスエンドポイントに割り当てられているかを決定するよう構成される。キャッシュ管理コンポーネントはさらに、キャッシュにおけるキャッシュラインが第１デバイスエンドポイントに割り当てられていないことに応答して、有効なＴＲＢを含まないエンプティキャッシュラインをキャッシュが含むかを決定し、キャッシュがエンプティキャッシュラインを含むことに応答して、エンプティキャッシュラインを第１デバイスエンドポイントに割り当て、１または複数の第１ＴＲＢをエンプティキャッシュラインに格納するよう構成される。加えて、キャッシュ管理コンポーネントは、キャッシュがエンプティキャッシュラインを含まないことに応答して、予め定められたキャッシュラインを第１デバイスエンドポイントに割り当て、１または複数の第１ＴＲＢを予め定められたキャッシュラインに格納するよう構成される。
【０００６】
一実施形態において、キャッシュ管理のための方法が提供される。第１ユニバーサルシリアルバス（ＵＳＢ）デバイスの一部を含む第１デバイスエンドポイントに関わるデータ転送のための１または複数の第１転送要求ブロック（ＴＲＢ）が受信される。複数のデバイスエンドポイントに対応する複数のキャッシュラインを含むキャッシュにおけるキャッシュラインが第１デバイスエンドポイントに割り当てられているかが決定される。キャッシュラインが第１デバイスエンドポイントに割り当てられていないことに応答して、有効なＴＲＢを含まないエンプティキャッシュラインをキャッシュが含むかが決定される。キャッシュがエンプティキャッシュラインを含むことに応答して、エンプティキャッシュラインが第１デバイスエンドポイントに割り当てられ、１または複数の第１ＴＲＢがエンプティキャッシュラインに格納される。キャッシュがエンプティキャッシュラインを含まないことに応答して、予め定められたキャッシュラインが第１デバイスエンドポイントに割り当てられ、１または複数の第１ＴＲＢが予め定められたキャッシュラインに格納される。
【０００７】
他の実施形態において、非一時的コンピュータ可読記憶媒体は、キャッシュ管理のための複数のプログラミング命令を含む。複数のプログラミング命令は、１または複数のデータプロセッサに、特定の複数の処理を実行させるよう構成される。第１ユニバーサルシリアルバス（ＵＳＢ）デバイスの一部を含む第１デバイスエンドポイントに関わるデータ転送のための１または複数の第１転送要求ブロック（ＴＲＢ）が受信される。複数のデバイスエンドポイントに対応する複数のキャッシュラインを含むキャッシュにおけるキャッシュラインが第１デバイスエンドポイントに割り当てられているかが決定される。キャッシュラインが第１デバイスエンドポイントに割り当てられていないことに応答して、有効なＴＲＢを含まないエンプティキャッシュラインをキャッシュが含むかが決定される。キャッシュがエンプティキャッシュラインを含むことに応答して、エンプティキャッシュラインが第１デバイスエンドポイントに割り当てられ、１または複数の第１ＴＲＢがエンプティキャッシュラインに格納される。キャッシュがエンプティキャッシュラインを含まないことに応答して、予め定められたキャッシュラインが第１デバイスエンドポイントに割り当てられ、１または複数の第１ＴＲＢが予め定められたキャッシュラインに格納される。
【図面の簡単な説明】
【０００８】
【図１】８つのＴＲＢを含む例示的な転送リングを示す。
【０００９】
【図２】例示的なＴＲＢキャッシュシステムを示す。
【００１０】
【図３】キャッシュ管理メカニズムを示す例示的な図を示す。
【図４】キャッシュ管理メカニズムを示す例示的な図を示す。
【図５】キャッシュ管理メカニズムを示す例示的な図を示す。
【００１１】
【図６】キャッシュからＴＲＢを取得するスケジューラを示す例示的な図を示す。
【００１２】
【図７Ａ】キャッシュからＴＲＢを取得するスケジューラを示す他の例示的な図を示す。
【図７Ｂ】キャッシュからＴＲＢを取得するスケジューラを示す他の例示的な図を示す。
【００１３】
【図８】キャッシュ管理のための例示的なフロー図を示す。
【発明を実施するための形態】
【００１４】
ＵＳＢシステムにおいて、ホストコントローラはしばしば、ホストとデバイスエンドポイントとの間のデータ転送のために、ホストメモリから直接的に複数のＴＲＢを読み取る。ホストによるメモリアクセスのレイテンシ（例えば、数十マイクロ秒から数ミリ秒）は通常、システムの性能にマイナスの影響を与える。ホストメモリから複数のＴＲＢをプリフェッチし格納するのに、アクセスレイテンシがより短いキャッシュが用いられ得る。このように、ホストコントローラは、ホストメモリの代わりにキャッシュから直接的にＴＲＢを読み取って、システム性能を向上させ得る。しかし、キャッシュ量はしばしば限られており、他方、多くのリング（例えば、転送リング）がホストメモリに存在し得る。したがって、多くのリングに関連するデータ転送のためにキャッシュを効果的に用いるようキャッシュ管理メカニズムが必要であり得る。
【００１５】
図２は、例示的なＴＲＢキャッシュシステムを示す。図２に示されているように、ＴＲＢキャッシュシステム１００は、複数のキャッシュライン１０４１、１０４２、・・・、および１０４ｍ（ｍは正の整数）を含むキャッシュ１０２を実装する。キャッシュ管理コンポーネント１０６は、特定のリング１０８ｋ（ｎ≧ｋ≧１）から１または複数のＴＲＢをプリフェッチし、キャッシュ管理アルゴリズムに基づきリング１０８ｋのためのキャッシュラインを決定し、プリフェッチされた複数のＴＲＢを、決定されたキャッシュラインに格納する。
【００１６】
具体的には、リング１０８１、１０８２、・・・および１０８ｎのそれぞれは、ＵＳＢデバイスのデバイスエンドポイントに対応する。キャッシュ管理コンポーネント１０６は、特定のデバイスエンドポイントに対応するリング１０８ｋから１または複数のＴＲＢ（例えば、ＴＤ）をプリフェッチする。例えば、ＴＲＢは、メモリにおいて、ホストメモリとホストコントローラ（図２において図示せず）との間で単一の物理的に隣接するデータブロックを転送するよう構築される。ＴＲＢは、４つの倍長語または１６バイトを含み得、データバッファポインタ、データバッファのサイズおよび制御情報を含み得る。単純なシングルバッファ処理に関して、単一のＴＲＢはＴＤに対応し、大きなマルチバッファ処理に関して、複数のＴＲＢが繋げられて複雑なＴＤを形成し得る。例えば、複数のリングは、単一のＵＳＢデバイスの異なる複数のデバイスエンドポイントに対応し得る。
【００１７】
キャッシュ管理コンポーネント１０６は、既にリング１０８ｋに割り当てられた、キャッシュ１０２におけるキャッシュラインを検索し得る。リング１０８ｋに割り当てられたキャッシュラインがロケートされた場合、キャッシュ管理コンポーネント１０６はプリフェッチされた複数のＴＲＢを、リング１０８ｋに事前に割り当てられたキャッシュラインに格納する。リング１０８ｋにキャッシュラインが割り当てられていない場合、キャッシュ管理コンポーネント１０６は、有効なＴＲＢを何ら含まないエンプティキャッシュラインを検索し得る。例えば、エンプティキャッシュラインにおける全てのＴＲＢが無効である。図３に示されているように、エンプティキャッシュライン３０２がロケートされ、キャッシュ管理コンポーネント１０６は、エンプティキャッシュライン３０２をリング１０８ｋに割り当て、プリフェッチされた複数のＴＲＢ３０４をエンプティキャッシュライン３０２に格納する。例えば、プリフェッチされた複数のＴＲＢをエンプティキャッシュラインに格納することに関連するヒット率は、およそ１００％である。
【００１８】
エンプティキャッシュラインがキャッシュ１０２においてロケートされない場合、キャッシュ管理コンポーネント１０６は予め定められたキャッシュライン４０２をリング１０８ｋに割り当て得、プリフェッチされた複数のＴＲＢ３０４を予め定められたキャッシュライン４０２に格納し得る。特定の複数の実施形態において、予め定められたキャッシュラインは、コマンドまたはステータス処理に関連する制御転送のために用いられる制御エンドポイントに対応する制御キャッシュラインであり得る。いくつかの実施形態において、予め定められたキャッシュラインは、直近にアクセスされた最も直近に用いられたキャッシュラインに対応する。図５に示されているように、キャッシュライン１０４ｍが最も直近に用いられたキャッシュラインであると決定され、その後、キャッシュ管理コンポーネント１０６は、キャッシュライン１０４ｍをリング１０８ｋに割り当て、プリフェッチされた複数のＴＲＢ３０４をキャッシュライン１０４ｍに格納する。加えて、キャッシュ管理コンポーネント１０６は、１または複数のＴＲＢ５０２を他のリングからプリフェッチし、キャッシュライン１０４ｍが、最も直近に用いられたキャッシュラインに対応すると決定する。したがって、キャッシュ管理コンポーネント１０６は、プリフェッチされた複数のＴＲＢ５０２をキャッシュライン１０４ｍに格納して、キャッシュライン１０４ｍに事前に格納されている複数のＴＲＢ３０４と置き換える。例えば、ホストメモリに１００個のリングがあり、キャッシュ１０２に３２個のキャッシュラインがある場合、プリフェッチされた複数のＴＲＢを予め定められたキャッシュラインに格納することに関連するヒット率は、およそ３１／１００である。
【００１９】
図６は、キャッシュ１０２からＴＲＢを取得するスケジューラを示す例示的な図を示す。図６に示されているように、スケジューラ６０２はリング１０８ｕのＴＲＢを要求する。キャッシュ１０２におけるキャッシュライン１０４ｓは、リング１０８ｕに割り当てられており、１または複数のＴＲＢがリング１０８ｕからプリフェッチされており、キャッシュライン１０４ｓに格納されている。図６に示されているように、キャッシュライン１０４ｓは、２つの有効なＴＲＢと２つの無効なＴＲＢとを含む。リング１０８ｕに対応するデバイスエンドポイントに関わるデータ転送のために、単一の有効なＴＲＢ６０４がキャッシュライン１０４ｓから取得され、スケジューラ６０２に送信される。
【００２０】
図７Ａおよび図７Ｂは、キャッシュ１０２からＴＲＢを取得するスケジューラを示す他の例示的な図を示す。図７Ａに示されているように、スケジューラ６０６は、リング１０８ｔのＴＲＢを要求し、キャッシュ１０２におけるキャッシュライン１０４ｒがリング１０８ｔに割り当てられている。しかし、キャッシュライン１０４ｒに含まれる複数のＴＲＢは、全て無効である。つまり、キャッシュライン１０４ｒはエンプティキャッシュラインに対応する。１または複数のＴＲＢ（例えば、４つのＴＲＢ）がリング１０８ｔからフェッチされ、キャッシュライン１０４ｒに格納され得る。図７Ｂに示されているように、リング１０８ｔに対応するデバイスエンドポイントに関わるデータ転送のために、単一の（例えば、有効または無効な）ＴＲＢ６０８がその後、キャッシュライン１０４ｒから取得されスケジューラ６０６に送信される。
【００２１】
図８は、キャッシュ管理のための方法を示す例示的な図を示す。７０２において、デバイスエンドポイントに関わるデータ転送のための１または複数の転送要求ブロック（ＴＲＢ）が受信される。デバイスエンドポイントは、ユニバーサルシリアルバス（ＵＳＢ）デバイスの一部を含む。７０４において、キャッシュにおけるキャッシュラインがデバイスエンドポイントに割り当てられているかが決定される。キャッシュは、複数のデバイスエンドポイントに対応する複数のキャッシュラインを含む。デバイスエンドポイントに割り当てられているキャッシュラインがロケートされた場合、７０８において、１または複数の第１ＴＲＢが、デバイスエンドポイントに割り当てられているキャッシュラインに格納される。キャッシュラインがデバイスエンドポイントに割り当てられていない場合、７０６において、有効なＴＲＢを含まないエンプティキャッシュラインをキャッシュが含むかが決定される。キャッシュがエンプティキャッシュラインを含む場合、７１０において、エンプティキャッシュラインが第１デバイスエンドポイントに割り当てられる。７１２において、１または複数の第１ＴＲＢがエンプティキャッシュラインに格納される。キャッシュがエンプティキャッシュラインを含まない場合、７１４において、予め定められたキャッシュラインが第１デバイスエンドポイントに割り当てられる。７１６において、１または複数の第１ＴＲＢが予め定められたキャッシュラインに格納される。
【００２２】
ここに書かれた説明は、複数の例を用いて本願発明を開示しており、最良のモードを含んでおり、当業者が本願発明を成し、用いることを可能とする。特許を受けることが可能な本願発明の範囲は、当業者が思いつく他の複数の例を含み得る。しかし、本明細書で説明されている複数の方法およびシステムを実行するよう構成されたファームウェアまたは適切に設計されたハードウェアなどの他の複数の実施例も用いられ得る。例えば、本明細書で説明されているシステムおよび方法は、コプロセッサとして、またはハードウェアアクセラレータとして独立した処理エンジンにおいて実装され得る。さらに他の例において、本明細書で説明されているシステムおよび方法は、多くの異なるタイプのコンピュータ可読媒体上で提供され得る。それらコンピュータ可読媒体には、方法の複数の処理を実行し、本明細書で説明されているシステムを実装するための１または複数のプロセッサによる実行において用いるための複数の命令（例えば、ソフトウェア）を含むコンピュータストレージメカニズム（例えば、ＣＤ−ＲＯＭ、ディスク、ＲＡＭ、フラッシュメモリ、コンピュータのハードドライブ等）が含まれる。
【図１】
0006330904.tif 000002
【図２】
0006330904.tif 000003
【図３】
0006330904.tif 000004
【図４】
0006330904.tif 000005
【図５】
0006330904.tif 000006
【図６】
0006330904.tif 000007
【図７Ａ】
0006330904.tif 000008
【図７Ｂ】
0006330904.tif 000009
【図８】
0006330904.tif 000010