読み出し要求に対応するデータが将来的なクロックサイクルで送信されると予想される旨の指示をメモリコントローラから受け取るように結合されたインターフェイスユニットであって、前記データを前記読み出し要求の発信元に転送する要求を生成し、前記メモリコントローラから前記指示を受け取ってから、以前の遅延から予測される正の整数をNとするNクロックサイクル後に前記要求を生成して、前記データを前記将来的なクロックサイクルで続けて受け取った時に前記データの転送を許可するように構成された制御回路と、前記指示から前記対応するデータの転送までの時間の少なくとも一部にわたる遅延をモニタし、Nを適応的に修正して前記遅延の不確実性を考慮するように構成された遅延モニタ回路と、を備えることを特徴とするインターフェイスユニット。前記遅延モニタ回路及び前記制御回路が、第1のクロックに従って動作し、該第1のクロックのクロックサイクルでNが測定され、前記メモリコントローラが、前記第1のクロックに同期しない第2のクロックに従って動作するように構成され、前記遅延の不確実性の原因が、前記第2のクロックに関連する第2のクロックドメインから前記第1のクロックに関連する第1のクロックドメインへの同期を含む、ことを特徴とする請求項1に記載のインターフェイスユニット。前記遅延の不確実性の別の原因が、前記第1のクロック及び前記第2のクロックの少なくとも一方のクロック周波数の変化である、ことを特徴とする請求項1又は2のいずれかに記載のインターフェイスユニット。前記遅延の不確実性の原因が、前記読み出し要求の発信元へのパイプラインにおけるストールである、ことを特徴とする請求項1から3のいずれかに記載のインターフェイスユニット。前記同期を実行するように構成された1又はそれ以上の先出し先入れFIFOバッファと、前記第1のクロックに従って増分するように構成されたカウンタと、をさらに備え、前記インターフェイスユニットが、前記カウンタの値を前記第2のクロックドメインに同期させるとともに、前記FIFOバッファを介して前記第2のクロックドメインから前記第1のクロックドメインに同期させるように構成され、前記指示と同時に前記FIFOバッファから受け取った前記カウンタの値と、前記データと同時に前記FIFOバッファから受け取った値との差分を前記遅延の測定値とする、ことを特徴とする請求項1から4のいずれかに記載のインターフェイスユニット。各々がデータキャッシュを含むとともに、該データキャッシュにおけるキャッシュミスに応答して読み出し動作を生成するように構成された1又はそれ以上のプロセッサと、前記プロセッサに結合された第2レベルキャッシュと、を備え、前記第2レベルキャッシュが、該第2レベルキャッシュにおいて失敗した読み出し動作を請求項1から5のいずれかに記載の前記インターフェイスユニットへ送信するように構成され、前記インターフェイスユニットが、前記第2レベルキャッシュ及びメモリコントローラに結合されて、前記メモリコントローラに前記読み出し動作を送信するように構成されるとともに、前記メモリコントローラから早期応答を受け取るように結合されて、所与の読み出し動作に対応する前記早期応答に応答して、前記所与の読み出し動作の転送にキャッシュブロックのクリティカルワードを利用できるようになる将来的なクロックサイクルを予測するように構成される、ことを特徴とする集積回路。前記インターフェイスユニットが、遅延の第1の数のクロックサイクルを予測し、前記第1の数のクロックサイクルと、前記遅延をモニタすることにより検出された第2の数のクロックサイクルとの差分を求め、前記第1の数を前記差分の2分の1だけ修正して次の予測値を生成するように構成される、ことを特徴とする請求項6に記載の集積回路。前記インターフェイスユニットが、前記予測に応答して前記第2レベルキャッシュからの前記転送経路を推測的に調停するように構成される、ことを特徴とする請求項6に記載の集積回路。インターフェイスユニットにおいて、キャッシュブロックフィルの最初のワードが提供されると予測される旨の指示をメモリコントローラから受け取るステップと、前記最初のワードが、前記メモリコントローラからの前記指示に従って予想通りに提供された場合、前記インターフェイスユニットが、前記最初のワードを送信するために、前記キャッシュブロックフィルを開始したプロセッサに前記最初のワードを転送する要求を生成すべき後続のクロックサイクルを予測するステップと、前記指示から前記最初のワードまでの時間の少なくとも一部にわたる実際の遅延をモニタするステップと、前記実際の遅延に応答して前記予測を適応的に修正するステップと、を含むことを特徴とする方法。前記要求を前記後続のクロックサイクルで生成するステップと、前記要求に応答して許可を受け取るステップと、前記メモリコントローラが予測した通りに前記最初のワードが提供されたことを検出するステップと、前記許可に応答して前記最初のワードを転送するステップと、をさらに含むことを特徴とする請求項9に記載の方法。前記インターフェイスユニットにおいて、第2のキャッシュブロックフィルの第2の最初のワードが提供されると予測される旨の第2の指示を前記メモリコントローラから受け取るステップと、前記第2の最初のワードが、前記メモリコントローラが予測した通りに提供された場合、前記インターフェイスユニットが、前記最初のワードを送信するために、前記第2のキャッシュブロックフィルを開始した前記プロセッサに前記第2の最初のワードを転送する第2の要求を生成すべき第2の後続のクロックサイクルを予測するステップと、前記第2の要求を前記第2の後続のクロックサイクルで生成するステップと、前記第2の要求に応答して第2の許可を受け取るステップと、前記第2の最初のワードが予測通りに提供されないことを検出するステップと、前記第2の許可に応答して取消を送信するステップと、をさらに含むことを特徴とする請求項9又は10に記載の方法。前記第2の最初のワードを続けて受け取るステップと、前記第2の最初のワードの受け取りに応答して第3の要求を生成するステップと、前記第3の要求に応答して第3の許可を受け取るステップと、前記受け取りに応答して前記第2の最初のワードを転送するステップと、をさらに含むことを特徴とする請求項11に記載の方法。前記インターフェイスユニットにおいて、第2のキャッシュブロックフィルの第2の最初のワードが提供されると予測される旨の第2の指示を前記メモリコントローラから受け取るステップと、前記第2の最初のワードが、前記メモリコントローラが予測した通りに提供された場合、前記インターフェイスユニットが、前記最初のワードを送信するために、前記第2のキャッシュブロックフィルを開始した前記プロセッサに前記第2の最初のワードを転送する第2の要求を生成すべき第2の後続のクロックサイクルを予測するステップと、前記第2の最初のワードを予測よりも早く受け取るステップと、前記第2の最初のワードの受け取りに応答して前記第2の要求を生成するステップと、前記第2の要求に応答して第2の許可を受け取るステップと、前記許可に応答して前記プロセッサに前記第2の最初のワードを転送するステップと、をさらに含むことを特徴とする請求項9に記載の方法。前記メモリコントローラからのそれぞれの指示と前記対応する最初のワードとの間の遅延をモニタするステップと、前記遅延に従って前記後続のクロックサイクルの予測を修正するステップと、をさらに含むことを特徴とする請求項9に記載の方法。ある実施形態では、システムが、メモリコントローラ、1又はそれ以上のプロセッサ、及び対応するキャッシュを含む。このシステムは、プロセッサキャッシュ内で失敗したロード動作に関するデータ転送の正確なスケジューリングを妨げる不確実性の原因を含むことがある。メモリコントローラは、次のクロックサイクルでデータが提供されるはずであることを示す早期応答を提供することができる。しかしながら、システムの不確実性に起因して、データが転送される実際のクロックサイクルは変化する。メモリコントローラとキャッシュ/プロセッサの間のインターフェイスユニットは、現在受け取っている早期応答から対応するデータまでの遅延を予測し、予測した通りにデータが利用できるようになると仮定して、データを転送する準備を推測的に行うことができる。この予測が正確な場合、短い待ち時間でデータを転送することができる。予測が正確でない場合、より長い待ち時間でデータが転送されることがある。インターフェイスユニットは、データの早期応答と転送の間の遅延、又は変化し得る遅延の少なくとも一部をモニタすることができる。インターフェイスユニットは、この測定遅延に基づいて、後から予測した遅延を修正することができる。従って、インターフェイスユニットは、予測した遅延をシステム内で生じる実際の遅延に時間とともに適応させ、不確実性に合わせて調整することができる。ある実施形態では、この不確実性として、例えば、非同期クロックドメインの交差における不確実な同期遅延、メモリコントローラ、キャッシュ、及び/又はプロセッサ内のパイプライン遅延における不確実性、及びシステムの動作モードの変化例えば、低出力モードに出入りすることなどに起因するクロック周波数の1又はそれ以上の変化を挙げることができる。不確実性の原因は、システムによって異なることがある。予測した遅延を、生じた実際の遅延に適応させることにより、データの転送準備ができている時にデータの転送経路に転送の準備ができている頻度が上がり、いくつかの実施形態では、キャッシュミスの状況におけるロードデータのための平均待ち時間を短縮することができる。以下の詳細な説明では添付図面を参照し、以下これらの図面について簡単に説明する。本発明は、様々な修正及び代替形態が可能であるが、図面には本発明の特定の実施形態を一例として示し、本明細書ではこれらについて詳細に説明する。しかしながら、図面及びこれらに対する詳細な説明は、開示する特定の形態に本発明を限定することを意図するものではなく、むしろ添付の特許請求の範囲によって定められる本発明の思想及び範囲内にある全ての修正物、同等物及び代替物を含むことを意図するものであると理解されたい。本明細書で使用する表題は構成目的のものにすぎず、説明の範囲を限定するために使用することを意味するものではない。本出願を通じて使用するmay~できるという用語は、強制的な意味のすなわち、~しなければならないmustを意味するものではなく、許容的な意味すなわち、可能性を有することhavingthepotentialtoを意味するで使用される。同様に、含むinclude、including、及びincludesという用語は、限定するわけではないがincludingを意味する。様々なユニット、回路、又はその他の構成要素について、1又は複数のタスクを実行するように構成されるconfiguredtoと記載することがある。このような文脈では、ように構成されるという表現は、動作中に1又は複数のタスクを実行する回路を有することを一般に意味する包括的な構造の記述である。従って、これらのユニット/回路/構成要素は、ユニット/回路/構成要素が現在オンでない場合でもタスクを実行するように構成することができる。通常、ように構成されるに相当する構造を成す回路は、ハードウェア回路を含むことができる。同様に、説明の都合上、様々なユニット/回路/構成要素について、1又は複数のタスクを実行する、と記載することもある。このような記載は、ように構成されるという表現を含むと解釈すべきである。1又はそれ以上のタスクを実行するように構成されたユニット/回路/構成要素について記述することは、このユニット/回路/構成要素に対して米国特許法第112条第6項の解釈を行使することを明確に意図するものではない。ここで図1を参照すると、メモリ12に結合された集積回路10の1つの実施形態を示すブロック図を示している。図示の実施形態では、集積回路10が、プロセッサ14A~14Bなどの1又はそれ以上のプロセッサ、レベル2L2キャッシュ16、インターフェイスユニット18、及びメモリコントローラ20を含む。図1には、プロセッサ14Bの一部が、レジスタファイル22及びデータキャッシュ24を含むことをより詳細に示している。プロセッサ14Aも同様とすることができる。メモリコントローラ20は、メモリ12に結合するように構成され、インターフェイスを介してインターフェイスユニット18に結合することもできる。図1に示すように、このインターフェイスは、要求、データ書き込み及びデータ読み出し、及び早期応答を含むことができる。インターフェイスユニット18は、書き込みというラベルを付けた書き込みバス、及び要求読み出し及びデータ読み出しを含む読み出しバスを介してL2キャッシュ16にも結合される。インターフェイスユニット18は、調停読み出しReadArb、許可Gnt及び取消Cxclを含む調停信号方式を介してL2キャッシュ16にさらに結合される。プロセッサ14A~14Bは、要求、データ書き込み、及びデータ読み出しを含むことができるインターフェイスによってL2キャッシュ16に結合される。図1には、破線26でクロックドメイン境界も示している。プロセッサ14A~14Bは、ロード及びストア動作本明細書ではより簡潔にロード及びストアと呼ぶを実行するように構成するとともに、そのローカルキャッシュ例えば、プロセッサ14B内のデータキャッシュ24及びプロセッサ14A内の同様のキャッシュ内のキャッシュミスを検出するように構成することができる。ロードに関しては、プロセッサ14A~14Bを、失われたキャッシュブロックを読み出すためにL2キャッシュ16にキャッシュフィル要求を送信するように構成することができる。ストアミスに関しても、いくつかの実施形態では、プロセッサ14A~14Bを、キャッシュフィル要求を送信するように構成することができる。他の実施形態では、プロセッサ14A~14Bを、L2キャッシュ16及び/又はメモリ12を更新するためにストアを送信するように構成することはできるが、失われたキャッシュブロックを読み出すためにキャッシュフィルを送信することはない。プロセッサ14A~14Bは、プロセッサ14A~14Bが開始した各キャッシュフィル要求及び互いのトランザクションに識別子トランザクション識別子、すなわちTIDなどを割り当てるように構成することができる。このTIDを、トランザクションの要求、データなどとともに送信して、この送信を同じトランザクションの一部として識別するようにすることができる。図1に示すように、プロセッサ14BとL2キャッシュ16の間のインターフェイスは、要求バスアドレス、コマンドなど及びデータ読み出し/書き込みバスを含むことができる。データ読み出し及び書き込みバスは、図示のように別個の一方向バスであってもよく、又は双方向データバスとして組み合わせてもよい。いくつかの実施形態では、コヒーレンス応答を送信するための応答バスが存在してもよい図1には図示せず。他の実施形態では、要求、応答及びデータを送信するための、パケットインターフェイスなどの他のインターフェイスを使用してもよい。プロセッサ14Aへのインターフェイスは、プロセッサ14Bへのインターフェイスと同様のものであってよい。プロセッサ14A~14Bは、キャッシュフィル要求にキャッシュブロックのアドレスを含めて送信するように構成することができる。このアドレスは、キャッシュライン内でロードがアクセスしようと試みているワードを識別する、キャッシュミスが検出されたロードの最下位ビットを含むことができる。従って、L2キャッシュ16及びL2キャッシュに失敗した場合にはメモリコントローラ20に、ロードデータの転送を許可するためにキャッシュブロックのいずれの部分を最初に戻すべきかを識別する情報を提供することができる。ワードは、ロードによりアクセスされるデータ量例えば、隣接するバイトの数とすることができる。いくつかの命令セットアーキテクチャでは、様々なデータサイズにアクセスするロードを定義することができる。ワードは、これらのデータサイズの1つとすることができ、このワードの観点から他のデータサイズを表すこともできる例えば、ワードの1/2にアクセスするロードを表すハーフワード、ワード、2つの隣接するワードにアクセスするロードを表すダブルワードなど。ロードによりアクセスされたワードは、現在のプロセッサの性能にとってキャッシュブロック内で最も重要なワードであるため、キャッシュフィルのために提供されるキャッシュブロックのクリティカルワードと呼ばれることが多い。すなわち、クリティカルワードが提供されるまで、プロセッサはロード状態でストールするまたロードに関するいずれの依存動作もストールする。いくつかの実施形態では、プロセッサを、他の非依存動作を推測的に実行するように構成することができるが、ロード及びこれに依存する動作を完了するにはクリティカルワードが必要である。図1に示すように、データ読み出しバスは、データキャッシュ24に結合してこのキャッシュにキャッシュブロックを書き込むことができ、またレジスタファイル22に結合してこのレジスタファイル22にクリティカルワードを書き込むことができる。レジスタファイル22に書き込むべきクリティカルワードを読み出しデータから選択するための多重化複合機能又はその他のスイッチング機能が存在してもよい図1には図示せず。データ読み出しバスからのデータをデータキャッシュ24及び/又はレジスタファイル22にパイプライン処理するためのバッファリング機能が存在してもよい。キャッシュブロックは、メモリコントローラ20からインターフェイスユニット18に、インターフェイスを介した複数の送信として転送することができる。本明細書では、各送信をデータのビートと呼ぶことができる。例えば、32バイトのキャッシュブロックは、8バイトの4ビートとして送信することができる。ビートのサイズは、実施形態によって異なることがある。より大きなビートはより広いデータバスで送信することができ、従ってキャッシュブロックの送信にはより少ないビートが必要となり得る。一方、より広いデータバスは、集積回路10内に設ける相互接続配線又は、他の実施形態では集積回路上のピンの面から、より高価となり得る。従って、ビートのサイズは、設計/性能のトレードオフに基づき、実施形態によって異なることがある。同様に、ビートのサイズは、地点によっても異なることがある。例えば、L2キャッシュ16とインターフェイスユニット18の間で転送されるビート、及びプロセッサ14A~14BとL2キャッシュ16の間で転送されるビートの各々は、インターフェイスユニット18とメモリコントローラ20の間のビートに対してサイズが異なることがある同様に、互いにサイズが異なることもある。L2キャッシュ16は、プロセッサ14Bからのキャッシュフィル要求に対するヒットをチェックするように構成することができ、またキャッシュヒットが検出された際に、プロセッサ14Bに最初のビート内のクリティカルワードを含むキャッシュブロックを戻すように構成することができる。L2キャッシュ16におけるキャッシュヒットをインターフェイスユニット18に進める必要はない。L2キャッシュ16は、プロセッサ14A~14Bから受け取った要求のためのキューイング機能又はその他のバッファリング機能を含むとともに、インターフェイスユニット18へ送信されるL2キャッシュミスのためのキューイング/バッファリング機能を含むことができる図1には図示せず。図示の実施形態では、L2キャッシュ16が、インターフェイスユニット18への図1では一般的に書き込みとして示す書き込みバスインターフェイスと、図1に示す要求読み出しバス及びデータ読み出しバスを含む、インターフェイスユニット18への読み出しバスインターフェイスとを含むことができる。他の実施形態では、読み出し及び書き込みに単一のバスインターフェイス又は各々が読み出し及び書き込みをいずれも送信できる複数のバスインターフェイスを使用することができ、又はパケットインターフェイスなどの他の種類のインターフェイスを使用することもできる。L2キャッシュ16とインターフェイスユニット18の間のインターフェイスは、調停機能を含むこともでき、従ってインターフェイスユニット18は、上述したように及び以下でより詳細に説明するように、プロセッサ14Bへのデータ転送を調停することができる。インターフェイスユニット18は、クリティカルワードの転送、及びキャッシュフィルのためのキャッシュブロックの転送を調停するように構成することができる。L2キャッシュ16は、プロセッサ14A~14BにL2キャッシュヒットデータを供給することもでき、従ってこのL2キャッシュヒットデータとインターフェイスユニット18からのデータ送信との間を調停することにより、競合するデータソース同士がプロセッサバスに適切にアクセスできるようにすることができる。L2キャッシュミスの場合、L2キャッシュ16を、インターフェイスユニット18に読み出し要求を送信するように構成することができる。インターフェイスユニット18は、その後この要求をインターフェイスを介してメモリコントローラ20へ送信するように構成することができる。インターフェイスユニット18の1つの実施形態のさらなる詳細については、以下で図2に関連して説明する。図示の実施形態では、インターフェイスが、要求バス、データ書き込みバス、及びデータ読み出しバスを含む他の実施形態では、双方向のデータ読み出し/書き込みバスを使用することができ、さらに他の実施形態は、パケットインターフェイスを実装することができる。図示の実施形態では、インターフェイスユニット18からメモリコントローラ20への要求の送信が、図1に破線26で示すクロックドメイン境界の交差を含むことができる。すなわち、線26よりも上の回路プロセッサ14A~14B、L2キャッシュ16、及びインターフェイスユニット18の一部は、1つのクロックドメイン内に存在し、メモリコントローラ20及びここへのインターフェイスは、異なるクロックドメイン内に存在することができる。クロックドメイン内のクロックは同期することができ、従ってクロックの立ち上がりと立ち下がりの関係は雑音及びジッタを許容する決定論的なものとなり得る。クロックドメイン内の回路は、同じ周波数及び位相すなわち、論理的に同じクロックで、又は異なる周波数ではあるが互いにロックされた位相でクロック制御することができる。一方、異なるクロックドメイン内のクロックは、互いに同期しないことがある。異なるクロックドメイン内のクロック間には、決定論的な位相関係が存在しないことがある。これらのクロックは周波数が異なることがあり、周波数は互いに依存しないことがある。1つのドメイン内のクロックは、他方のクロックドメインへのいずれの信号又はその他の通知にも関係なく、及びこれらを伴わずに周波数を変化させることができる。従って、インターフェイスユニット18は、一方のクロックドメインから他方のクロックドメインに情報要求、データなどを安全に送信するために同期回路を含むことができる。この同期回路は、一方のクロックドメインで正確に例えば、発信側クロックドメインのタイミング要件を満たして情報を取得して、他方のクロックドメインで正確に例えば、受信側クロックドメインのタイミング要件を満たして情報を送信できるいずれかの回路を含むことができる。以下では、一例として先入れ先出しバッファFIFOを使用するが、あらゆる同期回路を使用することができる。本明細書では、図1のクロックドメイン境界26よりも上のクロックドメインをプロセッサクロックドメインと呼び、クロックドメイン境界よりも下のクロックドメインをメモリクロックドメインと呼ぶ。各ドメインの対応するクロックを、それぞれプロセッサクロック及びメモリクロックと呼ぶことができる。同様に、所与のクロックドメインのクロックサイクルを、それぞれプロセッサクロックサイクル及びメモリクロックサイクルと呼ぶことができる。クロックサイクルは、対応するクロックの1つの周期とすることができる。メモリコントローラ20は、キャッシュブロックのためのデータを他のデータよりも先に読み出して、クリティカルワードを含むビートを読み出すように構成することができる。メモリコントローラ20は、クリティカルワードを含むビートを、キャッシュブロックの他のビートよりも先に送信するように構成することもできる。本明細書では、クリティカルワードを含むビートを略してクリティカルワードと呼ぶこともできる。インターフェイスユニット18は、クリティカルワードを受け取ることができ、クリティカルワードを転送するためにL2キャッシュ16に対する調停要求ReadArbを送信するように構成することができる。ReadArb要求は、プロセッサ14A~14Bのいずれが要求されているかを識別することもできる。L2キャッシュ16は、インターフェイスユニット18と、L2キャッシュ16内のキャッシュヒットからのデータとの間の調停を行い、データ読み出しバスを介してプロセッサ14Bへ送信すべきデータを決定するように構成することができる同様にプロセッサ14Aに対する調停を行うこともできる。L2キャッシュ16がインターフェイスユニット18の要求を許可した場合、L2キャッシュ16を、インターフェイスユニット18に許可を送信するように構成することができる。また、L2キャッシュ16は、インターフェイスユニット18からのデータ読み出しバスからプロセッサ14Bへのデータ読み出しバスまでの転送経路28を準備することができる。経路28は、複合機能又はその他のスイッチング機能を含むことができ、必要に応じてバッファリング機能を含むこともできる。インターフェイスユニット18は、データを送信するように構成することができる。一般に、転送経路は、ソースから宛先へデータを送信できる、書き込み、バッファリング、複合、及び/又はその他の回路のあらゆる組み合わせを含むことができる。メモリコントローラ20は、キャッシュフィルのための早期応答を戻して、この早期応答を送信したメモリクロックサイクル早期応答クロックサイクルの後続のメモリクロックサイクルでクリティカルワードの転送が予想されている旨を示すように構成することもできる。この早期応答は、早期応答が行われているトランザクションを識別する、キャッシュフィルのTIDを含むことができる。後続のクロックサイクルと早期応答クロックサイクルの間のメモリクロックサイクルの数は、実施形態によって異なることがある。一般に、このメモリクロックサイクルの数は、インターフェイスユニット18、L2キャッシュ16、及びプロセッサ14A~14Bがデータの転送に備える時間を与えるように選択することができる。転送経路を準備するために、1又はそれ以上のプロセッサクロックサイクルを使用することができる。例えば、要求を送信し、調停し、許可を戻し、実際に経路を準備するためのプロセッサクロックサイクルが必要になり得る。このようにして、早期応答が存在せず、クリティカルワードを受け取った時にL2に対する調停が行われる場合に比較して、クリティカルワードの転送の遅延を短縮することができる。しかしながら、許可を受け取った時にデータの転送準備ができていない例えば、以下の様々な不確実性のために場合、インターフェイスユニット18は、このデータ送信を取消、クリティカルワードを待ってから再び転送経路に対する調停を行うことができる。メモリコントローラ20は、キャッシュフィルの読み出しがメモリコントローラ20内の指図点を通過してメモリ12に送信されるようスケジュールされた後に早期応答を戻すように構成することができる。1つの実施形態では、メモリコントローラ20が、早期応答により示されたサイクルで読み出しデータを戻すための迂回経路を含むことができる。ある実施形態では、メモリ12にインターフェイス接続する物理層回路を、データ戻り待ち時間を動的に調整してメモリ12の動作を追跡するように構成することができる。このような実施形態では、物理層回路を、現在の遅延を示すフィードバックをメモリコントローラ論理回路に提供するように構成することができる。メモリコントローラ20は、このフィードバックを使用して、早期戻り応答の配信を調整することができる。早期応答とクリティカルワードの間のメモリクロックサイクル数は、プロセッサクロックがそのサポートされる最も低い周波数で実行されている一方で、メモリがそのサポートされる最も高い周波数で実行されている時にデータ経路の準備を許可するように選択することもできる。他のクロック周波数設定では、提供する必要があったはずの時点よりも早く早期応答を提供することもできるが、あらゆるクロック周波数の構成で早期応答を使用できるようにすることができる。また、早期応答と対応するデータの間のメモリクロックサイクル数は、L2キャッシュ16を調停する際にインターフェイスユニット18に何らかの柔軟性を提供するように選択することができる。インターフェイスユニット18は、早期応答と対応するデータの間の遅延における不確実性の様々な原因を解明するために、早期応答の送信と比較して調停要求タイミングを変化させることができる。インターフェイスユニット18は、システム内で実際に生じた遅延に基づいて調停要求のタイミングを適応させて、転送経路の準備をクリティカルワードの到着により厳密に一致させることができ、従ってクリティカルワードの転送をより短い遅延で成功させる頻度を上げることができる。上述したように、早期応答から対応するデータまでの遅延の不確実性には原因がある。この不確実性として、例えば、非同期クロックドメインの交差における不確実性を挙げることができる。遅延は、データが到着した時点におけるクロックの捕獲端の位相関係に応じて、様々な時点において1プロセッサクロックサイクルだけ異なることがある。また、いずれかのクロックのクロック周波数の変化が、インターフェイスユニット18がプロセッサクロックサイクルで測定した新たな遅延に合わせて調整を行うまで不確実性の原因となり得る。プロセッサ14A~14B、L2キャッシュ16、インターフェイスユニット18、及び/又はメモリコントローラ20のいずれかにおけるパイプラインのストールも、L2キャッシュ16における調停遅延と同様に不確実性の原因になり得る。従って、インターフェイスユニット18を、以前のクリティカルワード転送動作で生じた遅延をモニタするように構成することができる。インターフェイスユニット18を、以前に生じた遅延に基づいて、現在のクリティカルワード転送動作に生じる可能性がある遅延を予測するよう構成することができる。すなわち、インターフェイスユニット18は、最近生じた遅延に基づいて、予測される遅延を適応させることができる。従って、インターフェイスユニット18は、時間の経過につれて不確実性に適応するので、クリティカルワード転送をより正確に実行することができる。プロセッサ14A~14Bは、あらゆる命令セットアーキテクチャを実装することができる。様々な実施形態では、プロセッサ14A~14Bが、スーパースカラ又はスカラ、スーパーパイプライン又はパイプライン、アウトオブオーダー又はインオーダー、投機的又は非投機的などを含むあらゆるマイクロアーキテクチャを実装することができる。様々な実施形態では、必要に応じてマイクロコーディング技術を利用してもよく、又は利用しなくてもよい。データキャッシュ24は、あらゆる容量及び構成セットアソシアティブ、直接マップなどを有することができる。所与の実施形態に含まれるプロセッサ14A~14Bの数は異なることができ、1つのプロセッサ又は2つよりも多くのプロセッサを有する実施形態を含む。レジスタファイル22は、あらゆる数のレジスタに対応する記憶装置を含むことができる。例えば、レジスタファイル22は、プロセッサ14A~14Bが実装する命令セットアーキテクチャで指定される汎用レジスタの数と同じ数のレジスタを少なくとも含むことができる。ある実施形態では、レジスタファイル22が、レジスタ名変更、マイクロコードの使用のための一時レジスタなどをサポートするために、汎用レジスタの数よりも多くのレジスタを含むことができる。L2キャッシュ16は、必要に応じてあらゆる容量及び構成を有することができる。L2キャッシュ16は、データキャッシュ24を含んでも、或いはデータキャッシュ24を別にし、すなわち含まなくてもよい。他の実施形態は、L2キャッシュ16を含まなくてもよいそしてプロセッサ14A~14Bをインターフェイスユニット18に直接結合することができる。さらに他の実施形態は、追加の階層レベルを含むことができる。メモリコントローラ20は、メモリ要求を受け取り、メモリ12にインターフェイス接続して要求を完了するように構成された回路を含むことができる。様々な実施形態では、メモリコントローラ20を、静的ランダムアクセスメモリSRAM或いは、同期DRAMSDRAM、ダブルデータレートDDR、DDR2、DDR3、DDR4などDRAM、低パワーDDRLPDDR2などDRAM、RAMBUSDRAMなどの様々な種類の動的RAMDRAMなどのあらゆる種類のメモリにインターフェイス接続するように構成することができる。図示の実施形態では、プロセッサ14A~14B、L2キャッシュ16、インターフェイスユニット18及びメモリコントローラ20が、全て集積回路10としての単一の半導体基板上に統合される。他の実施形態は、他のレベルの統合及び/又は離散部品を実装することができる。集積回路10は、周辺回路を統合してシステムオンチップSOCの実施構成を形成することができる。例えば、このSOCは、ビデオ及び/又はオーディオ処理回路、オンチップ周辺機器、及び/又はオフチップ周辺機器に結合するための周辺インターフェイスなどをさらに含むことができる。図1には1つのクロックドメイン境界26を示しているが、他の実施形態は、複数のクロックドメイン境界を含むことができる。ある実施形態では、プロセッサ14A~14Bをプロセッサ手段の一例とすることができ、L2キャッシュ16をキャッシュ手段の一例とすることができ、インターフェイスユニット18をインターフェイス手段の一例とすることができ、メモリコントローラ20をメモリコントローラ手段の一例とすることができる。各手段は、対応する部品の上述した動作を実現するための手段とすることができる。一般に、指定した動作を実行する組み合わせ論理回路及び/又は順序論理回路を使用することができる。次に図2を参照すると、インターフェイスユニット18の1つの実施形態のブロック図を示している。図示の実施形態では、インターフェイスユニット18が、書き込みキュー30、読み出し要求キュー32、読み出しデータキュー34、L2調停Arb回路36、要求制御回路38、カウンタ40、クリティカルワード転送制御回路42、遅延モニタ回路44、及び非同期asyncFIFO46A、46B、46C及び46Dを含む。書き込みキュー30は、L2キャッシュ16から書き込み動作を受け取るように結合され、非同期FIFO46A~46B及び要求制御回路38に結合される。読み出し要求キュー32は、L2キャッシュ16から読み出し要求を受け取るように結合され、要求制御回路38及び非同期FIFO46Bに結合される。カウンタ40は、非同期FIFO46Bに結合される。読み出しデータキュー34は、L2キャッシュ16へのデータ読み出しインターフェイス、L2Arb回路36、及び非同期FIFO46Cに結合される。L2Arb回路36は、L2キャッシュ16への調停インターフェイスReadArb、Gnt、及びCxcl及びクリティカルワード転送制御回路42に結合される。クリティカルワード転送制御回路42は、遅延モニタ回路44及び非同期FIFO46Dに結合される。遅延モニタ回路44は、非同期FIFO46C~46Dに結合される。非同期FIFO46Aは、メモリコントローラ20へのデータ書き込みバスに結合される。非同期FIFO46Bは、メモリコントローラ20及び非同期FIFO46C~46Dへの要求バスに結合される。非同期FIFO46Cは、メモリコントローラ20からのデータ読み出しバスに結合され、非同期FIFO46Dは、メモリコントローラ20から早期応答を受け取るように結合される。クリティカルワード転送制御回路42を、メモリコントローラ20から非同期FIFO46Dを介して早期応答指示を受け取るように結合して、受け取った早期応答に対応するクリティカルワードを転送するためにL2キャッシュ16に対していつ推測的に調停を行うべきかを決定するように構成することができる。より詳細には、クリティカルワード転送制御回路42を、早期応答を受け取ってから、ゼロよりも大きな正の整数をNとするNプロセッサクロックサイクル後に転送経路28を調停する要求を生成するように構成することができる。クロックサイクル数Nは、転送経路の許可を、クリティカルワードを転送に利用できるクロックサイクルに合わせて調整して、クリティカルワードまでの遅延を短縮できるように選択することができる。より詳細には、Nのサイズを、遅延モニタ回路44により計算された遅延とすることができ、又はこの遅延から導出することができる。クリティカルワード転送制御回路42は、L2Arb回路36に調停要求を信号送信することができ、L2Arb回路36は、読み出しArbを応答に含めて送信することができる。1つの実施形態では、クリティカルワード転送制御回路42を、複数の早期応答を同時に追跡するように構成することができる。例えば、クリティカルワード転送制御回路42は、各々が別個の早期応答を追跡するように割り当て可能な、状態マシーン又はその他の論理回路の複数のインスタンスを含むことができる。クリティカルワード転送制御回路42は、早期応答を受け取った時に、この早期応答にアイドル状態のマシーンを割り当てるように構成することができる。メモリコントローラ20は、他の読み出しデータと同様のクリティカルワードをインターフェイスユニット18に提供することができ、インターフェイスユニット18は、非同期FIFO46Cを使用して、このデータをプロセッサクロックドメインに同期させることができる。このデータを、読み出しデータキュー34に提供して記憶し、これを読み出しデータキュー34からデータ読み出しバスを介してL2キャッシュ16に転送することができる。いくつかの実施形態では、クリティカルワードを、読み出しデータキュー34を迂回させて、1プロセッサクロックサイクル早く転送するために利用可能にすることができる。遅延モニタ回路44は、非同期FIFO46D及び46Cから提供された早期応答と対応するデータの間の遅延をそれぞれ測定して、実際に生じている遅延をプロセッサクロックサイクルの面から検出するように構成することができる。この測定遅延が以前に測定した遅延と異なる場合、遅延モニタ回路44を、クリティカルワード転送制御回路42に提供する遅延を修正するように構成することができる。遅延モニタ回路は、遅延を適応させることができるが、1つの実施形態では、現在測定されている遅延に等しい遅延については即座に設定しないことがある。代わりに、遅延モニタ回路44は、現在測定されている遅延に近付くように遅延を修正することができる。時間の経過につれ、現在測定されている遅延が安定したままである場合、遅延モニタ回路44からの遅延は、現在測定されている遅延に近付くことができる。一方、現在測定されている遅延の短期的な変化が、クリティカルワード転送制御回路42に提供される遅延に大きく影響を与えることはない。遅延モニタ回路44は、早期応答から実際にデータを受け取るまでの遅延を測定できるが、様々な実施形態は、早期応答とクリティカルワードの転送の間のいずれかの遅延部分を測定すること、又は遅延を全て測定することができる。図示の実施形態では、カウンタ40が、プロセッサクロックドメインのクロックサイクル毎に増分し、読み出しデータ及び早期応答のタイムスタンプとして機能することができる。クロックサイクル毎に、現在のカウンタ値を非同期FIFO46Bに存在する場合には、読み出し要求キュー32又は書き込みキュー30からの読み出し又は書き込み要求とともに書き込み、非同期FIFO46Bの出力に非同期FIFO46C及び46Dへの入力として提供することができる。このタイムスタンプを存在する場合には、読み出しデータ及び早期応答データとともにそれぞれ非同期FIFO46C~46Dに書き込むことができる。遅延モニタ回路44は、非同期FIFO46C~46Dからタイムスタンプ及びTIDを受け取ることができる。遅延モニタ回路44は、同じTIDに関するタイムスタンプの差分を遅延の測定値として取ることができる。他の実施形態では、他の方法で遅延を測定することができる。また、他の実施形態は、他の同期回路をすなわち、非同期FIFO46Bを使用する代わりに使用して、タイムスタンプをメモリクロックドメインに同期させることができる。例えば、図9は、インターフェイスユニット18の別の実施形態のブロック図である。図9の実施形態では、カウンタ40がグレイエンコーダ160に結合される。このグレイエンコーダ160を、カウンタ値をグレイ符号化し、このグレイ符号化値を同期装置162に提供するように構成することができる。同期装置162は、このグレイ符号化値をメモリクロックドメインに同期させるように構成することができる。同期装置162の出力は、非同期FIFO46C~46Dにタイムスタンプを提供するように結合されたグレイデコーダ164に結合される。グレイデコーダ164は、グレイ符号化したカウンタ値を復号し、この値をタイムスタンプとして非同期FIFO46C~46Dに供給することができる。一般に、グレイ符号化は、値が増分される度にこの値の1ビットしか変化しないように設計することができる。グレイ符号化は、クロックドメイン境界26をまたぐビットの同期タイミングにばらつきがある場合でも、有効値がメモリクロックドメインでサンプリングされることを確実にすることができる。図9の同期回路は、例えば、メモリコントローラ20に新たな要求が送信された場合にのみ非同期FIFO46Bに書き込みが行われる実施構成で使用することができる。すなわち、カウンタ値を絶えずメモリクロックドメインに同期させることができ、非同期FIFO46Bは、毎クロックサイクルで発生するわけではない有効な要求のみをメモリクロックドメインに同期させることができる。この実施形態では、非同期FIFO46A~46Dが同期回路として機能し、クロックドメイン境界26をまたいで情報の送信を同期させることができる。一般に、非同期FIFOは、複数のエントリとして構成されたメモリ、発信側クロックドメインから次の情報を書き込むべきエントリの1つを示す、発信側クロックドメイン内の書き込みポインタ、及び受信側クロックドメインにおいて次の情報を読み出すべきエントリの別の1つを示す、受信側クロックドメイン内の読み出しポインタを含むことができる。読み出しポインタと書き込みポインタが同じエントリを示さないことを確実にする及び場合によっては、読み出しポインタと書き込みポインタの間に1又はそれ以上のエントリが存在することを確実にすることにより、エントリ内の情報が、読み出しポインタに応答して読み出される前に書き込みからのエントリ内で安定することを確実にすることができる。図示の実施形態では、非同期FIFO46A~46Bを、発信される書き込みデータ及び読み出し/書き込み要求をそれぞれメモリコントローラ20に同期させるように構成することができる。より詳細には、L2キャッシュ16から受け取った時に、読み出し要求を読み出し要求キュー32に入れ、書き込み要求及びデータを書き込みキュー30に入れることができる。要求制御回路38を、書き込みキュー30及び読み出し要求キュー32をモニタして、メモリコントローラ20に送信すべき要求を選択するように構成することができる。この選択された要求を、キュー30又は32から非同期FIFO46Bに書き込むことができる。読み出し要求キュー32には、例示的なエントリを示しており、このエントリは、要求のアドレスを記憶するアドレスフィールドAddr、属性フィールドAttr内の様々な属性、及びこの要求に割り当てられたTIDを記憶するトランザクションIDフィールドTIDを含む。書き込みキューエントリも同様とすることができるが、このエントリは、データのためのデータフィールドを含むこともできる又は別個の書き込みデータキューが存在してもよい。これらの要求アドレス、属性及びTIDを、非同期FIFO46Bの例示的なエントリ内の要求フィールドReqとして、上述したようなカウンタ40からのタイムスタンプとともに示している。同様に、非同期FIFO46Aの例示的なエントリには、書き込みデータ及びTIDを示している。非同期FIFO46C~46Dは、メモリコントローラ20からの着信読み出しデータ及び早期応答をそれぞれ同期させるように構成することができる。非同期FIFO46Cの例示的なエントリには、読み出しデータData及びTIDフィールド、並びに非同期FIFO46Bからのタイムスタンプを取り込むタイムスタンプフィールドTSを示している。この非同期FIFO46Cからのデータを、L2キャッシュ16に送信するために読み出しデータキュー34に書き込むことができる。例示的な読み出しデータキューのエントリには、データフィールドData及びTIDフィールドTIDを示している。非同期FIFO46Dには、早期応答が提供される読み出しのTID及びタイムスタンプフィールドTSを含む例示的なエントリを示している。ある実施形態では、キュー30、32及び34をキューイング手段の一例とすることができ、L2arb制御回路36を調停手段の一例とすることができ、クリティカルワード転送制御回路42をクリティカルワード転送手段の一例とすることができ、遅延モニタ回路44をモニタリング手段の一例とすることができ、カウンタ40を計数手段の一例とすることができ、要求制御回路38を要求制御手段の一例とすることができ、非同期FIFO46A~46Dを同期手段の一例とすることができる。各手段は、対応する部品の上述した動作を実現するための手段とすることができる。一般に、指定した動作を実行する組み合わせ論理回路及び/又は順序論理回路を使用することができる。なお、インターフェイスユニット18の他の実施形態は、L2キャッシュ16及び/又はメモリコントローラ20への異なるインターフェイスを有することができ、他にも内部的な違いを有することができる。例えば、ある実施形態では、L2キャッシュ16への要求書き込みインターフェイスとデータ書き込みインターフェイスを分離することができ、L2への調停インターフェイスを、上述したような読み出し及び書き込みデータを抽出するための書き込みの両方に使用することができる。ある実施形態では、書き込み要求及び読み出し要求を別個のインターフェイスを介してメモリコントローラ20へ送信することができ、読み出し要求及び書き込み要求のための別個の非同期FIFOが存在することができる。メモリコントローラ20への別個のデータ書き込み及び応答書き込みインターフェイス、及びこれらのインターフェイスのための別個の非同期FIFOが存在してもよい。様々な実施形態において、あらゆる構成を使用することができる。ここで図3を参照すると、遅延を測定し、この測定遅延に基づいて、クリティカルワード転送制御回路42に提供する遅延を調整するための、遅延モニタ回路44の1つの実施形態の動作を示すフロー図を示している。理解しやすくするために、ブロックを特定の順序で示しているが、他の順序を使用することもできる。遅延モニタ回路44が実装する組み合わせ論理では、ブロックを同時に実行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフロー図は、複数のクロックサイクルにわたってパイプライン化することができる。遅延モニタ回路44を、図3に示す動作を行うように構成することができる。遅延モニタ回路44は、早期応答を受け取った判定ブロック50、はいの支脈場合、非同期FIFO46DからTID及びタイムスタンプを取り込むことができるブロック52。この遅延モニタ回路44を、複数の早期応答を同時に追跡するように構成することができる。従って、遅延モニタ回路44は、ゼロよりも大きな正の整数をMとする最大M個のTID及びタイムスタンプを取り込むためのリソースを含むことができる。非同期FIFO46Cにおいてクリティカルワードを受け取った判定ブロック54、はいの支脈場合、遅延モニタ回路44は、このクリティカルワードのTIDを、取り込んだ早期応答のTIDと比較することができる。このTIDがクリティカルワードのTIDの1つに一致した判定ブロック56、はいの支脈場合、遅延モニタ回路は、測定遅延を求め、この測定遅延と出力遅延が異なる場合、クリティカルワード転送制御回路42への出力遅延を調整することができるブロック58。図4は、図3に示すブロック58の1つの実施形態を示すフロー図である。理解しやすくするために、ブロックを特定の順序で示しているが、他の順序を使用することもできる。遅延モニタ回路44が実装する組み合わせ論理では、ブロックを同時に実行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフロー図は、複数のクロックサイクルにわたってパイプライン化することができる。遅延モニタ回路44を、図4に示す動作を行うように構成することができる。遅延モニタ回路44は、クリティカルワードのタイムスタンプと、一致するTIDからの早期応答タイムスタンプの差分として、測定遅延を計算することができるブロック60。遅延モニタ回路44は、ブロック60からの測定遅延からクリティカルワード転送制御回路42に出力される現在の遅延を差し引いたものとして、誤差を計算することができるブロック62。従って、測定遅延が現在出力されている遅延よりも大きい場合、この誤差は正であり、測定遅延が現在出力されている遅延よりも小さい場合、この誤差は負である。遅延モニタ回路44は、現在出力されている遅延に誤差の1/2を加算して、新たな出力遅延を生成することができるブロック64。従って、この新たな遅延を、現在出力されている遅延と測定遅延の間の距離の1/2に移行させることができる。他の実施形態では、異なる誤差の割合を含む他の調整機構を使用することができる。ここで図5を参照すると、クリティカルワード転送制御回路42の1つの実施形態の動作を示すフロー図を示している。理解しやすくするために、ブロックを特定の順序で示しているが、他の順序を使用することもできる。クリティカルワード転送制御回路42が実装する組み合わせ論理では、ブロックを同時に実行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフロー図は、複数のクロックサイクルにわたってパイプライン化することができる。クリティカルワード転送制御42を、図5に示す動作を行うように構成することができる。クリティカルワード転送制御回路42が早期応答を受け取り判定ブロック70、はいの支脈、予測される遅延に従ってL2調停要求を推測的に生じさせるために状態マシーンを利用できる判定ブロック72、はいの支脈場合、クリティカルワード転送制御回路42は、このトランザクションに状態マシーンを割り当てることができるブロック74。様々な実施形態では、あらゆる数の状態マシーンを実装することができ、様々な割り当て機構を使用することができる。例えば、到着する最初のクリティカルワード転送動作に状態マシーンを割り当てる先着順方式を使用することができる。他の実施形態では、各プロセッサ14A~14Bへの少なくとも1つのクリティカルワード転送を処理できるように、各プロセッサ14A~14Bのために1又はそれ以上の状態マシーンを確保することができる。残りの状態マシーンが存在する場合、これらを先着順に割り当てることができる。いくつかの実施形態では、各要求をモニタできるように、状態マシーンの数を未処理のキャッシュフィル要求の最大数に等しくすることができる。図6は、L2キャッシュ16への調停要求を推測的に生成し、予測される遅延に基づいてクリティカルワードを転送するためにクリティカルワード転送制御回路42が実装できる状態マシーンの1つの実施形態のブロック図である。上述したように、複数のクリティカルワード転送の機会を同時に追跡するために、複数の状態マシーンのインスタンスが存在することができる。クリティカルワード転送制御回路42は、状態マシーンを実装する回路を含むことができる。一般に、状態マシーンは、状態マシーンを所与の状態から離す条件が検出されるまで例えば、図6に示す矢印を介して、その状態に留まることができる。状態マシーンは、リセット時に、又は状態マシーンがそのクリティカルワード転送動作を完了した時にアイドル状態80において開始することができる。早期応答に応答して状態マシーンが割り当てられると図5のブロック74、状態マシーンは、要求を待つ状態82に移行することができる。状態マシーンは、要求を行うための予測時間が経過するまで、又はクリティカルワードが到着して転送に利用できるようになるまで、要求を待つ状態82に留まることができる。予測時間が経過する前にクリティカルワードが到着した場合、転送経路に対する調停要求が非推測的に行われる。いずれの場合にも、状態マシーンは、要求適格状態84に移行することができる。この予測時間は、遅延モニタ回路44からの出力遅延から導出することができる。例えば、予測時間は、インターフェイスユニット18に対する調停要求と許可の間のサイクル数例えば、この実施形態では3クロックサイクルだけ遅延時間よりも少ないことがある。或いは、予測時間と出力される遅延時間の差分に、パイプライン遅延の追加クロックサイクルを含めることもできる。一般に、予測時間は、クリティカルワードの転送経路を推測的に要求することによって短縮できるクロックサイクル数だけ遅延時間よりも少なくなり得る。いくつかの実施形態では、データよりも前に転送経路が利用可能となるように遅延を低く見積もるよりも転送経路が準備される直前にデータが到着するように高く見積もることが有益な場合がある。例えば、転送経路が利用可能であってクリティカルワードの転送準備ができていない場合、インターフェイスユニット18は転送を取り消して、データが利用可能になった時に再び調停を行い、推測的な調停によって短縮される遅延を失うことがある。要求適格状態84において、クリティカルワード転送制御回路42は、転送経路の調停を行う要求をL2Arb回路36に対して推測的に生成することができる。この読み出しarb要求が送信されると、状態マシーンは、許可を待つ状態86に移行して、L2キャッシュ16が調停要求を許可するまでここに留まることができる。その後、状態マシーンは、クリティカルワード準備状態88に移行することができる。クリティカルワードを転送に利用できる場合、状態マシーンは、クリティカルワード転送状態90に移行してクリティカルワードを転送することができる。1つの実施形態では、キャッシュフィルが完了している場合、状態マシーンが、インターフェイスユニット18内で読み出し要求が待機解除される時点まで状態90に留まって待機解除を阻止することができる。その後、キャッシュブロックが提供されると、同じ経路を使用してL2キャッシュ16及びデータキャッシュ24にデータを書き込むことができる。待機解除が阻止された後、クリティカルワードの転送が完了し、状態マシーンはアイドル状態80に移行することができる。他の実施形態では、クリティカルワード状態90後に、連続状態の組を使用して待機解除への進行を追跡し、待機解除を抑制した後でアイドル状態80に戻ることができる。一方、状態マシーンが状態88に到達した時にクリティカルワードの準備ができていない場合、状態マシーンは、転送L2キャッシュ16へのCxclを取り消して、データを待つ状態92に移行することができる。状態マシーンは、クリティカルワードを受け取った時に状態92から状態84に移行して、このクリティカルワードを非推測的に転送することができる。或いは、他の実施形態では、状態マシーンが、クリティカルワードを転送するための推測的要求のみを処理すればよい。推測に失敗した場合、L2Arb回路36は、クリティカルワードが到着した時にこれを調停することができる。このような実施形態では状態92を削除することができ、クリティカルワードを転送する準備ができていない場合、状態マシーンは、状態88からアイドル状態80へ戻ることができる。いくつかの実施形態では、同様にさらなる移行が存在してもよい。例えば、状態マシーンが非推測的なクリティカルワード転送を処理する実施形態では、クリティカルワードが到着した場合、状態マシーンは、アイドル状態80から要求適格状態84に移行することができる。図7は、クリティカルワード転送例の垂直破線で境界を定めたプロセッサクロックサイクルを示すタイミング図である。クロックサイクル毎の状態マシーンの状態を、ラベルSMから横方向に示している。インターフェイスユニット18とL2キャッシュ16の間の動作をラベルL2から横方向に示しており、プロセッサにおける動作をラベルPから横方向に示している。最初のクロックサイクルにおいて、状態マシーンはアイドル状態80にあり、状態マシーンの割り当てを生じる早期応答が受け取られる矢印100。状態マシーンは、要求を待つ状態82図7のW4Rに移行し、推測的要求を行うための予測時間をカウントし始める。第5のクロックサイクルにおいて予測時間が経過し矢印102、状態マシーンは、要求適格状態84図7のReqElに移行する。第6のクロックサイクルにおいて読み出しarb要求が送信され矢印106、状態マシーンは、許可を待つ状態86図7のW4Gに移行する。第7のクロックサイクルにおいてL2キャッシュが調停を行い、第8のクロックサイクルにおいてインターフェイスユニット18に許可を送信する矢印108。状態マシーンは、クリティカルワード準備状態88に移行し、読み出しバッファ34内でクリティカルワードを転送に利用できるようになる矢印110。第10のクロックサイクルにおいて、クリティカルワードが転送経路内に送信され、状態マシーンは、転送クリティカルワード状態90図7のFCWに移行する。このクロックサイクルは、非推測的調停読み出し要求が正常に送信されるクロックサイクルでもある破線112。従って、この実施形態で短縮される遅延は、この実施形態の矢印106及び112に対応するクロックサイクル間の差分、すなわち図示の実施形態では4クロックサイクルとなり得る。この実施形態では、クリティカルワード転送のためには実行されないL2キャッシュルックアップヒット検出のためのいくつかのクロックサイクルが経過する。しかしながら、この例では、クリティカルワードの転送に同じパイプラインが使用され、従ってデータはこれらのパイプライン段階を流れる。データは、L2を介してL2へのデータ、参照数字114プロセッサPへのデータ、参照数字116に転送される。その後、状態マシーンはアイドル状態に戻ることができる。次に図8を参照すると、システム150の1つの実施形態のブロック図を示している。図示の実施形態では、システム150が、外部メモリ12に結合された集積回路10の少なくとも1つのインスタンスを含む。集積回路10は、1又はそれ以上の周辺機器154及び外部メモリ12に結合される。集積回路152に供給電圧を供給し、メモリ12及び/又は周辺機器154に1又はそれ以上の供給電圧を供給する電力供給装置156も設けられる。いくつかの実施形態では、集積回路10の複数のインスタンスを含めることができる及び複数の外部メモリ12を同様に含めることもできる。周辺機器154は、システム150の種類に応じて、あらゆる所望の回路を含むことができる。例えば、1つの実施形態では、システム150を携帯情報端末PDA、スマートフォンなどのモバイル装置とすることができ、周辺機器154が、wifi、Bluetooth、セルラー、全地球測位システムなどの、様々な種類の無線通信のための装置を含むことができる。周辺機器154は、RAM記憶装置、固体記憶装置又はディスク記憶装置を含む、追加の記憶装置を含むこともできる。周辺機器154は、タッチディスプレイ画面又はマルチタッチディスプレイ画面などのディスプレイ画面、キーボード又はその他の入力装置、マイク、スピーカなどのユーザインターフェイス装置を含むことができる。他の実施形態では、システム150が、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップなどのいずれの種類のコンピュータシステムであってもよい。上記開示が完全に理解されると、当業者には数多くの変形例及び修正例が明らかになるであろう。以下の特許請求の範囲は、全てのこのような変形例及び修正例を含むと解釈されたい。