"複数のメモリソースに対する階層的バッファシステム中へのデータエントリを制御する方法であって、データが複数の第一ティアバッファから一つの第二ティア転送バッファに流通できるようにバッファを管理するステップと、前記第二ティア転送バッファ中の前記データに対する正確な配信時間を計算するステップと、前記第二ティア転送バッファ中の前記データを、共用データバス上に前記計算された正確な配信時間で配信するステップと、を含む、方法。前記正確な配信時間の前記計算のために初期フレーム待ち時間計算を用いるステップ、をさらに含む、請求項1に記載の方法。データを前記第一ティアバッファから前記第二ティア転送バッファに、および前記第二ティア転送バッファから前記共用データバス上に移動することが可能になるときまで前記データを前記第一ティアバッファ中に保持するため、リードデータバッファ遅延を用いるステップ、をさらに含む、請求項1に記載の方法。前記リードデータバッファ遅延の期限が切れ次第、受動的にデータを前記第二ティア転送バッファに移動するステップ、をさらに含む、請求項3に記載の方法。前記第二ティア転送バッファ中のスロットが利用可能になったならば、能動的にデータを前記第二ティア転送バッファに移動するステップ、をさらに含む、請求項3に記載の方法。前記第二ティア転送バッファは、従来型の先入れ先出しバッファとして作動することができ、前記第二ティア転送バッファがステージングレジスタとしての役割をする能力をさらに含み、前記第二ティア転送バッファは、複数のデータ転送長さを含む前記データを最小の待ち時間で配信するため、前記データの同時ローディングを備える、請求項1に記載の方法。メモリコンポーネントを前記共用バスと同期させるための複数のギア比、をさらに含む、請求項1に記載の方法。好適なデータ転送レートを維持しながら、前記複数のギア比の間で必要な速度整合性を提供するため、返送データストリーム中にアイドルギャップを挿入するステップ、をさらに含む、請求項7に記載の方法。複数のトランザクションからのバッファされたデータを、アイドルギャップを挿入することなく、シームレスなパターンで返送するステップ、をさらに含む、請求項7に記載の方法。前記共用データバスが利用可能で、バッファ格納が必要でないとき、待ち時間を最小化するためデータを高速通過させるステップ、をさらに含む、請求項1に記載の方法。メモリコントローラにシステム回復ポリシーを実施するようアラートするため、データフレーム境界にポイズンデータパターンを差し挟むステップ、をさらに含む、請求項1に記載の方法。メモリコアと、共用データバスと前記メモリからデータを受信する複数の第一ティアバッファと、前記データを所定のタイミングで前記共用データバス上に配信する第二ティア転送バッファと、を含む集積回路デバイス。データを前記第一ティアバッファから前記第二ティア転送バッファに、および前記第二ティア転送バッファから前記共用データバス上に移動することが可能になるときまで前記データを前記第一ティアバッファ中に保持するための複数のリードデータバッファ遅延バッファをさらに含み、前記複数のリードデータバッファ遅延バッファは、タグ、トークン、またはアラートメカニズムの必要なしに、前記第一ティアバッファ中の前記データに対する正確な配信時間を計算するため、初期フレーム待ち時間計算を用いる、請求項12に記載の集積回路デバイス。前記複数の第一ティアバッファ中の前記データは、前記リードデータバッファ遅延の期限が切れ、前記第二ティア転送バッファ中のスロットが利用可能になったとき、受動的に前記第二ティア転送バッファに移動される、請求項13に記載の集積回路デバイス。前記第二ティア転送バッファは、従来型の先入れ先出しバッファとして作動することができ、前記第二ティア転送バッファがステージングレジスタとしての役割をする能力をさらに含み、前記第二ティア転送バッファは、複数のデータ転送長さを含む前記データを最小の待ち時間で配信するため、前記データの同時ローディングを備える、請求項12に記載の集積回路デバイス。メモリコンポーネントを前記共用バスと同期させるための複数のギア比をさらに含み、前記複数のギア比の少なくとも一つは、好適なデータ転送レートを維持しながら必要な速度整合性を提供するため、返送データストリーム中にアイドルギャップを挿入する、請求項12に記載の集積回路デバイス。データを包含するキャッシュコアと、共用データバスと、前記データが複数の第一ティアバッファから第二ティア転送バッファに流通するのを可能にするように前記バッファを管理し、前記データを所定のタイミングで共用データバス上に配信するように構成された回路と、を含む、プロセッサデバイス。データを前記第一ティアバッファから前記第二ティア転送バッファに、および前記第二ティア転送バッファから前記共用データバス上に移動することが可能になるときまで前記データを前記第一ティアバッファ中に保持するための複数のリードデータバッファ遅延バッファをさらに含み、前記複数のリードデータバッファ遅延バッファは、タグ、トークン、またはアラートメカニズムの必要なしに、前記第一ティアバッファ中の前記データに対する正確な配信時間を計算するため、初期フレーム待ち時間計算を用いる、請求項17に記載のプロセッサデバイス。前記第二ティア転送バッファは、従来型の先入れ先出しバッファとして作動することができ、前記第二ティア転送バッファがステージングレジスタとしての役割をする能力をさらに含み、前記第二ティア転送バッファは、複数のデータ転送長さを含む前記データを最小の待ち時間で配信するため、前記データの同時ローディングを備える、請求項17に記載のプロセッサデバイス。メモリコンポーネントを前記共用バスと同期させるための複数のギア比をさらに含み、前記複数のギア比の少なくとも一つは、好適なデータ転送レートを維持しながら必要な速度整合性を提供するため、返送データストリーム中にアイドルギャップを挿入する、請求項17に記載のプロセッサデバイス。バッファチップ自体の動作周波数増加とともに、リードバッファの数が増えるにつれ、新しい問題が生じてきた。処理待ちリード要求の数とデータバーストの数との乗算積から、メモリチャネル上に多重化する必要のあるデータソースの数が得られる。例えば、各バッファがバースト長8すなわちBL8DRAMリードを保持可能な、4つのリードバッファを有するバッファチップからは、メモリチャネルに配信すべき32バーストのデータが得られる。2GHzを上回るチャネル周波数を使い、バッファのデータフローは今や1.5GHzサイクル時間を超える。さらに、高性能プロセッサは、バッファチップに対し、物理的リードバッファの実際の数を超える処理待ちリード数への対応を要求するような、連続リードストリームを生成する能力を有する。例えば、バッファチップが4つのリードバッファを有する場合、メモリコントローラが用いる高度なスケジューリングスキームは、通常、1番目のリードがバッファチップから出て行く前に5番目のリードを開始することになろう。これは、メモリチャネル、バッファチップ、およびDRAMデバイスにおける既知の固定待ち時間を利用し、追加のリードオペレーションをパイプライン化してバッファにストレスを加えるものである。最も簡単なすなわち、力ずくの解決策は、バッファチップのデータフローを過剰設計し、追加バッファのインスタンスを作成することである。簡単なラウンドロビンスキームを用いて、バッファ管理ロジックを実行するのは容易であるが、追加のハード装置の物理的設計コストがかかる。これは、データソースがチップの周りに散り散りに配置されている場合には大きな問題を生じる。これは、データをバッファプールとやり取り転送するだけのためのパイプラインステージを追加することを必要とさせることになろう。また、このアプローチは、データフロー多重化中にさらに多くのソースを取り込むことによって、データソース全てからの選定をしなければならないという問題を悪化させることにもなろう。もっと一般的なアプローチは、必要な数だけのバッファこの例では4つを用いることであるが、パイプライン化をサポートするさらに高度なバッファコントローラを使うことになる。第一バッファからデータが読み出されると、同時に第一バッファ中への、第五リードからの返送DRAMデータのローディングが始まる。次いで、第六リードからの返送データを第二バッファにパイプライン化することができ、以下同様に続く。この対処策は、メモリコントローラが連続するリードストリームを送信することを可能にし、FRAM周波数のチャネル周波数に対する比率によっては、通常、実際のリードバッファの数の二倍の持続的処理量を達成することができる。しかしながら、32のソースの送出処理の問題は依然として残る。これは、1~2GHzで作動するデータフローを使っても、多くの場合、バッファプールとメモリチャネルとの間に追加のパイプラインステージを必要とする。残念ながら、この方法は、データ配信の開始までの待ち時間に影響を与える。本発明の実施形態は、階層的バッファシステムにおけるデータエントリの制御のためのシステムおよび方法を提供する。簡単に述べれば、該システムの一つの実施形態は、とりわけ、アーキテクチャにおいて下記のように実装することができる。該システムは、メモリコアと、メモリデータチャネル共用データバスと、メモリからデータを受信する複数の第一ティアバッファとを包含する集積回路デバイスを含む。該システムは、所定のタイミングで共用バス上にデータを配信する第二ティア転送バッファをさらに含む。また、本発明の実施形態は、階層的バッファシステムにおけるデータエントリを制御する方法を提供すると見ることもできる。これに関し、かかる方法の一つの実施形態は、とりわけ、下記のステップによって概略的に要約することができる。該方法は、データが複数の第一ティアバッファから一つの第二ティア転送バッファに流通できるようにバッファを管理するステップと、所定のタイミングで該データを共用バスに配信するステップとを含む。本発明の技法を介して、さらなる特質および利点が実現される。本明細書において本発明の他の実施形態および態様が詳細に説明され、これらは請求される発明の一部と見なされる。本発明の特質および利点をよりよく理解するために、これらの説明および図面を参照されたい。本発明の実施形態とみなされる主題は、本明細書に添付された請求項の中で具体的に指摘され、明確に請求されている。本発明の前述および他の目的、特質、および利点は、添付の図面と併せ、以下の詳細説明を読めば容易に分かる。これら詳細な説明によって、例示として図面を参照しながら、本発明の好適な実施形態をその利点および特質と併せ解説する。以下では本発明の実施形態を参照する。ただし、本発明が、説明された特定の実施形態に限定されないことを理解すべきである。それよりむしろ、下記の特質およびエレメントのいかなる組み合わせも、各種の実施形態に関係するかどうかにかかわらず、本発明を実装、実践するものと見なされる。さらに、さまざまな実施形態において、本発明は従来技術を超える数多くの利点を提供する。しかしながら、本発明の実施形態が他の可能な対処策または従来技術あるいはその両方を超える利点を実現することが可能ではあっても、所与の実施形態によってある特定の利点が実現されるかどうかは本発明を限定するものではない。しかして、以下の態様、特質、実施形態、および利点は、単なる例示であって、請求項群に明示で記載されている場合を除き、添付の請求項のエレメントまたは限定事項とは見なされるものではない。同様に、本発明への言及は、本明細書に開示されたどの発明主題の一般化とも解釈されてはならず、請求項群に明示で記載されている場合を除き、添付の請求項のエレメントまたは限定事項と見なされてはならない。本発明の一つの実施形態は、カスケード式のバッファ構造を用いることによって前述の問題に対処し、該構造では、第一ティアは3つのバッファを含み、第二ティアは4番目のバッファを保持する。高度なバッファコントローラが、2レベルのデータパイプライン化をサポートする。第一レベルは、上記3つの保持バッファの一つから、第二ティア転送バッファへのデータの移動を生じさせる。所与のバッファ内で第二レベルのパイプライン化が行われ、一つのトランザクションに関連するデータが、同時に第二のトランザクションに対するデータをバッファ中にロードしながら、アンローディングを開始できるようにする。このアプローチは、バースト長8のリードオペレーションに対する最終的な送出処理マルチプレックスすなわち多重化を最大で8つまでのソースに低減し、データをチャネル上に送信するため必要なパイプラインステージの数をさらに低減する。本発明の別の実施形態は、従来式の並列バッファプールを用いた従来式設計の持続的処理量に対応するために、バッファに対しスケジュールされたメモリチャネル上のタイムスライスに先行して、データバーストを第一ティア保持バッファから第二ティア転送バッファに転送するフローコントローラをさらに考案している。従って、本発明の該一つの実施形態は、複数のリードが近接して連続に発行された場合に、後続のリードトランザクションに対するデータがギャップレスな仕方で返送されることを確実にするための、速度整合バッファとしての役割もするリード転送バッファを取り入れている。本発明の一つの実施形態は、4スロットの先入れ先出しすなわち、FIFOfirst-infirst-outまたはキューバッファと、デュアルポート2スロットFIFOバッファと、単純なステージングレジスタとの間を動的に変形する革新的リードバッファを含む。この構造は、バッファリングが不必要なとき、わずかな待ち時間の初回データ転送、並びに、任意のシーケンスで発行された4および8バーストのリードオペレーションの収容を可能にする。ダブルデータレート3同期ダイナミックランダムアクセスメモリDDR3DRAM:double-data-ratethreesynchronousdynamicrandomaccessmemoryは、2つの連続するバーストチョップ4のリードオペレーションの間にギャップを取り入れるので、DDRメモリデバイスは、通常2種類のデータ転送をサポートする。バーストチョップは、データトランザクションのサイズがバッファ容量の半分の場合である。バースト長8は、4つの連続するメモリクロック期間の各立ち上がりおよび立下りでデータの8ビートを転送する。該好適な実施形態は、メモリからの全体キャッシュラインにアクセスするためにこの型の転送を用いる。さらに、DDRデバイスは、該デバイスによってデータの4ビートだけが配信される、バースト長4または動的チョップオペレーションも可能にする。プロセッサがキャッシュラインの一部しか必要としない状況では、本発明は、第一および第二ティアバッファの半分を返送データの収容に使うことができるようにする。さらに、第二ティアバッファは、2つの異なるトランザクションからのデータが第二ティアバッファの各半分中に同時にロードされ、共用バス上でのシームレスなデータ転送を確実にすることができる手段を提供する。本発明の一つの実施形態のデュアルポートリード転送バッファは、これらのギャップを排除して、第一、第二両方のトランザクションが利用可能な状況では、第一トランザクションからの4つのデータショットの直後に第二トランザクションからの4つのデータショットを転送することを可能にする。これの一つの利点は、最大処理量を向上、維持するタイミング終了に対するものである。しかしながら、同一のDRAMポートで2つのバーストチョップ4のトランザクションが連続的に存在し、一番目のものが、第二ティアバッファで遅延させられなかった場合、このときまだ、メモリデータチャネルにおいて一番目のトランザクションの終了後と二番目のトランザクションの開始にギャップが生じ得る。また一方、レイアウト計画の基本的態様もある。最適レイアウト計画の狙いは、できるだけ小さな合計チップ面積および短い遅延時間すなわち、セル間の短い連結ワイヤである。かさねて、ある出力チャネルに集約連結する必要のある16または32のバッファを使う例を考えてみると、従来式のアプローチでは、終了タイミングの何らかの見込み持ってこれらをひとまとまりに連結しようとするであろう。しかしながら、これは、データソースがチップの周りに散り散りに配置されている場合には大きな問題を生じる。これは、データをバッファプールとやり取り転送するだけのためのパイプラインステージの追加を必要とさせることになろう。あらゆる転送が余分の待ち時間増を被り、出力チャネルへの順番を待って100サイクルの間もバッファ中に置かれるトランザクションすら出よう。本発明の一つの実施形態の段階化された構造は、回路のレイアウト計画の最適化を可能にする。8つのバッファの4つのプールとして編成され、各プールがチップ角の近辺に配置されている、32の第一ティアを有する例を考えてみよう。この場合、4つのプールを2つの第二ティアバッファに集約連結し、これらバッファの各々をパスの中間点に配置することができる。最後に、これら2つの第二ティアバッファを、出力チャネルに配置された単一の第三ティアバッファにマルチプレックス化または多重化することができる。これは、バックグラウンドでデータを移動しているリロードマネージャの一部としてのチップ伝搬遅延を基本的に見えなくする。本発明の一つの実施形態は、クリティカルパスへのバッファの影響を最小化し、低待ち時間高速パス上の伝搬遅延への尽力に集中できるようにするためのやり方である。本発明の実施形態は、例えばコンピュータシステムなどのシステムとともに活用することができ、これらに関連させて以下に説明する。本明細書での使用において、システムは、メインフレーム、サーバ、パソコン、インターネット機器、デジタルメディア機器、携帯情報端末PDA:portabledigitalassistant、携帯音楽/映像プレイヤ、ビデオゲームコンソールを含め、プロセッサおよびメモリを利用する任意のシステムを含み得る。メモリは、該メモリを利用するプロセッサと同じダイに配置することができるが、場合によっては、プロセッサとメモリとを異なるダイに配置することもできる例、別々のモジュール内の別々のチップ、または単一のモジュール内の別々のチップ。本発明の他の実施形態は、ネットワークルーティング、グラフィックカードメモリマネジメント、キャッシュ階層などと併せ活用することができる。以下は、各プロセッサコアが複数のパイプラインを使って命令を実行する、複数のメモリを有するプロセッサに関連させて説明するが、本発明の実施形態は、単一の処理コアを有するプロセッサを含め、一つのメモリを使用する任意のプロセッサとともに用いることができる。一般に、本発明の実施形態は、任意のプロセッサとともに活用することができ、いかなる特定の構成にも限定されない。図1は、階層的バッファシステムに対する本発明の一つの実施形態を用いるコンピュータ11の例を示すブロック図である。コンピュータ11は、以下に限らないが、メインフレーム、サーバ、パソコン、ワークステーション、ラップトップ、PDA、手持ちデバイスなどを含む。一般に、図1に示されるように、ハードウエアアーキテクチャに関して、コンピュータ11は、ローカルインタフェース23を介して通信可能に連結された、プロセッサ21、メモリ22、および一つ以上の入力または出力あるいはその両方のI/O:Input/Outputデバイスまたは周辺機器を含む。ローカルインタフェース23は、例えば、以下に限らないが、当技術で既知の、一つ以上のバスあるいは有線または無線の接続とすることができる。ローカルインタフェース23には、簡明化のため省略しているが、コントローラ、バッファキャッシュドライバ、リピータ、およびレシーバなど、通信を可能にするための追加のエレメントを持たせることができる。さらに、ローカルインタフェース23には、前述のコンポーネント間の適切な通信を可能にするための、アドレス、制御、またはデータ接続あるいはこれらの組み合わせを含めることができる。プロセッサ21は、メモリ22に格納可能なソフトウエアを実行するためのハードウエアデバイスである。データおよび命令へのより速いアクセス、並びにプロセッサ21のより高い利用度を備えるため、該プロセッサには複数のプロセッサコア41A~Nを持たせることができる。プロセッサ21は、メモリ22からローカルインタフェース23を介してデータを読み出すことができる。プロセッサ21は、実際上、任意のカスタムメイドまたは市販のプロセッサ、中央処理ユニットCPU:centralprocessingunit、データ信号プロセッサDSP:datasignalprocessor、またはコンピュータ11に属するいくつかのプロセッサのうちの補助プロセッサ、および半導体ベースのマイクロチップ形状のマイクロプロセッサまたはマクロプロセッサとすることができる。適切な市販のマイクロプロセッサの例として、米国IBM製のPowerPCIBM社の登録商標またはCellBERマイクロプロセッサあるいはzSeriesIBM社の登録商標プロセッサ、米国IntelCorporation製の80×86またはPentiumRシリーズマイクロプロセッサ、SunMicrosystems,Inc.製のSparcRシリーズマイクロプロセッサ、Hewlett-Packard社製のPA-RISCRシリーズマイクロプロセッサ、あるいは米国MotorolaCorporation製の68xxxシリーズマイクロプロセッサがある。メモリエレメント22A~Nは複製とすることができる。一つの実施形態において、メモリエレメント22A~Nは、本発明の階層的バッファシステム60中の、バッファマネジメント機能を含むメモリバッファチップに結合されている。メモリバッファチップは、デイジーチェーントポロジーに構成され、あらゆるメモリトランザクションが各メモリバッファチップを通して転送され、返送メモリのリードデータは、これも各メモリバッファチップを通過する単一のアップストリームデータパスを共用する。このトポロジーは、デイジーチェーン方式で追加の2ポートメモリバッファを接続することにより容易なメモリ拡張を可能にする。メモリ22には、揮発性メモリエレメント例、ダイナミックランダムアクセスメモリDRAM:dynamicrandomaccessmemory、静的ランダムアクセスメモリSRAM:staticrandomaccessmemoryなどのランダムアクセスメモリRAM:randomaccessmemory、および不揮発性メモリエレメント例、ROM、消去再書き込み可能読み取り専用メモリEPROM:erasableprogrammablereadonlymemory、電気的消去再書き込み可能読み取り専用メモリEEPROM:electronicallyerasableprogrammablereadonlymemory、フラッシュ、プログラム可能読み取り専用メモリPROM:programmablereadonlymemory、テープ、コンパクトディスク読み取り専用メモリCD-ROM:compactdiscreadonlymemory、ディスク、ディスケット、カートリッジ、カセットなどの任意の一つまたは組み合わせを含めることができる。さらに、メモリ22には、電子的、磁気的、光学的、または他の種類の記憶媒体あるいはこれらの組み合わせを組み込むことができる。なお、メモリ22には、メモリエレメント22A~Nの分散型アーキテクチャを含めることができ、さまざまなコンポーネントは相互に遠隔に配置されているが、プロセッサ21はこれらにアクセスできる。また、複数のメモリエレメント22A~Nが、階層的バッファシステム60を使ってローカルインタフェース23に直接取り付けられている、他の実施形態も考えられる。階層的バッファシステム60は、リードデータバッファ遅延の概念を用い、各返送データトランザクションの正確なタイミングをスケジュールし、複数のメモリエレメント22A~Nからのメモリデータトランザクションを分散方式で管理する。本発明の階層的バッファシステム60は、複数のメモリエレメント22A~N内に包含されている階層的バッファシステム群60の間で明示的通信は必要としない。メモリ22A~N中のソフトウエアには、各々が論理機能を遂行するための実行可能命令の順序付けられたリストを含む、一つ以上の別個のプログラムを含めることができる。図1に示された事例では、メモリ22A~N中のソフトウエアは、適切なオペレーティングシステムO/S:operatingsystem31を含む。オペレーティングシステム31は、基本的に、他のコンピュータプログラムの実行を制御し、スケジューリング、入出力制御、ファイルおよびデータマネジメント、メモリマネジメント、並びに通信制御および関連サービスを提供する。適切な市販のオペレーティングシステム31の非包括的リストには、aMicrosoftCorporationから入手可能なWindowsRオペレーティングシステム、bNovell,Inc.から入手可能なNetwareRオペレーティングシステム、cAppleComputer,Inc.から入手可能なMacintoshRオペレーティングシステム、dHewlett-Packard社、SunMicrosystems,Inc.およびATTCorporationなど多くの供給者から入手可能なUNIXRオペレーティングシステム、eインターネットで容易に入手可能なフリーウエアであるLinuxRオペレーティングシステム、fIBMCorporationから入手可能なz/OSIBM社の登録商標またはz/VMIBM社の登録商標オペレーティングシステム、gWindRiverSystems,Inc.のランタイムVxworksRオペレーティングシステム、h手持ちコンピュータまたは携帯情報端末PDAなどに実装されている機器ベースのオペレーティングシステム、例、Symbian,Inc.から入手可能なSymbianOSR、PalmComputing,Inc.から入手可能なPalmOSR、およびMicrosoftCorporationから入手可能なWindowsCERが挙げられる。I/Oデバイスには、例えば、以下に限らないが、マウス24、キーボード25、スキャナ図示せず、マイクロフォン図示せずなどの入力デバイスを含めることができる。さらに、I/Oデバイスには、例えば、以下に限らないが、プリンタ図示せず、ディスプレイ26などの出力デバイスも含めることができる。最後に、I/Oデバイスには、例えば、以下に限らないが、遠隔デバイス、他のファイル、デバイス、システム、またはネットワークにアクセスするためのNICまたはモデム/通信ポート27、無線周波数RF:radiofrequencyまたは他のトランシーバ図示せず、電話インタフェース図示せず、ブリッジ図示せず、ルータ図示せずなどをさらに含めることができる。コンピュータ11がパソコン、ワークステーション、インテリジェントデバイスなどである場合、メモリ22中のソフトウエアには、基本入出力システムBIOS:basicinputoutputsystem簡明化のため省略をさらに含めることができる。BIOSは、立ち上げ時にハードウエアを初期化しテストして、オペレーティングシステム31を開始させ、ハードウエアデバイスへのデータ転送をサポートする基本的なソフトウエアルーチンのセットである。BIOSは、コンピュータ11が始動されたときにBIOSを実行できるように、ROM、PROM、EPROM、EEPROMなどある種の読み取り専用メモリに格納される。プロセッサ21は、コンピュータ11が作動中、メモリ22内に格納されたソフトウエアを実行し、メモリ22とデータのやり取り通信をするように構成され、一般には、コンピュータ11のオペレーション制御はこれらソフトウエアに従って行われる。オペレーティングシステム31および他の一切のプログラムは、全体的にまたは部分的にプロセッサ21によって読み取られ、おそらくはプロセッサ21内でバッファされ次いで実行される。図2は、本発明の一つの実施形態による階層的バッファシステム60のアーキテクチャの一例を図示したブロック図である。簡明化のため、図2は、階層的バッファシステム60、メモリ22A~N、およびローカルインタフェース23に関して図示され、説明されている。ある別の実施形態において、階層的バッファシステム60は、キャッシュメモリ42とプロセッサ21の単一個のプロセッサコア41との間に配置される。一つの実施形態において、各プロセッサコア41は同一とすることができる例えば、同一の階層的バッファシステム60を含む。別の実施形態において、各プロセッサコア41は、単一個の階層的バッファシステム60を共用することができる。第一ティアデータバッファ61a~cからメモリデータチャネル59すなわち、ローカルインタフェース23上へのデータの移動は、第二ティア転送バッファ65を介する。該好適な実施形態において、メモリデータチャネル59は、任意のデータバスとすることができよう。メモリデータチャネル59は、データを要求するどのユニットにでも戻る単なるメモリデータチャネルとすることができる。データを要求するユニットは、例えば、以下に限らないが、プロセッサユニット、別の格納ユニット、周辺機器などであり得る。データの移動は、一緒に作業をしているいくつかの有限状態機械によって管理される。第一ティアデータバッファ61a~cは、リードデータバッファ遅延有限状態機械71a~dによって制御され、該機械は、階層セレクタ63a~bおよびセレクタ64a~dを使って、第一ティアデータバッファ61a~cから第二転送バッファ65中へのリードデータのアンローディングを管理する。示された例の実装では、3つのリードデータバッファ遅延有限状態機械71a~cが、それぞれ一つずつ各物理第一ティアデータバッファ61a~cに用いられ、第四リードデータバッファ遅延有限状態機械71dが使われている。第四リードデータバッファ遅延有限状態機械71dは、リードデータが第一ティアデータバッファ61a~cを迂回し、高速パスステージングレジスタ62から直接第二ティア転送バッファ65中に直接ロードされる状況で、第二ティア転送バッファ65中へのリードデータトラフィックを管理する。このフラッシュパスについては後記で説明する。該3つのリードデータバッファ遅延有限状態機械71a~cは各々が特定の第一ティアデータバッファ61a~cに関連付けられており、その第一ティアデータバッファ61a~cからのデータのアンローディングを制御する。第一ティアデータバッファ61a~cから第二ティア転送バッファ65中へのデータのアンローディングの制御は、階層セレクタ63a~bおよびセレクタ64a~dに対するアービトレイション72からのコントローラ信号81および82によって提供される。第二ティア転送バッファ65へのデータのローディングの制御は、信号83によって提供される。該好適な実施形態において、アービトレイション72は、単に、各リードデータバッファ遅延有限状態機械71a~cからの制御信号を一緒にORして、階層セレクタ63a~b、セレクタ64a~dおよび第二ティア転送バッファ65に出力する制御信号を形成する。該好適な実施形態では、一つのリードデータバッファ遅延有限状態機械71a~cが別の機械に対して優先付け設定されることはない。しかしながら、他の実施形態では、付加的な保護のため、リードデータバッファ遅延有限状態機械71a~cに優先付けがされる。また、アービトレイション72は、リードデータバッファ遅延有限状態機械71a~cが、第二ティア転送バッファ65に同時にデータをロードしようとして衝突が生じるのを防止するためのチェックを行うエラー検出機能を遂行する。該好適な実施形態において、リードデータバッファ遅延有限状態機械71a~dは、DRAMクロック周波数で作動し、DRAMクロックインクリメントで遅延を管理する。リードデータバッファ遅延有限状態機械71a~dは、新規のデータ転送が利用可能な第一ティアデータバッファ61a~cにロードされると、これら機械が、データを第二ティア転送バッファ65に同時にアンロードできるように作動する。該好適な実施形態において、これは、各リードデータバッファ遅延有限状態機械71a~c内のキューシステムを利用し、第一ティアデータバッファ61a~c中の各リードデータ転送の、現在および今後のバッファ待ち時間とデータバースト長とを追跡することによって達成される。最初の要求のデータが受信される前に、システムに対し複数のリード要求が発行され得るので、キューが用いられる。リードデータバッファ遅延有限状態機械71a~dは、それが最初の要求の処理を待っているまたは処理している間に、後続の要求に対する情報を格納する。最初の要求が完了すると、次の要求が存在する場合、それがキューの前部から取得される。データが第一ティアデータバッファ61a~cからアンロードされたならば、コントロールは、リードデータバッファ遅延有限状態機械71a~dから3つのデータブロックコントローラすなわち、ブロック有限状態機械73a~cの一つに移り、該コントローラは、第二ティア転送バッファ65内のデータを管理し、ブロックステージングレジスタ68へのデータのシリアライゼーションを制御する。ブロック有限状態機械73a~cは、リードデータバッファ遅延有限状態機械71a~dと同様に、データが第二ティア転送バッファ65中にある間にリードデータバッファ遅延を管理し、セレクタ66とセレクタ67との間の共用チャネル上でのデータ衝突を防止するため、特定の時間に、データをメモリデータチャネル59上にアンロードする能力を有する。これがセレクタ66と67との間での衝突を防止するだけでなく、リードデータバッファ遅延有限状態機械71a~dの使用によって、共用バス上での複数のバッファコントローラの間、例えば、複数のメモリバッファチップの間での衝突も防止される。アービトレイション75は、ブロック有限状態機械73a~cによって管理され、セレクタ66およびセレクタ67を制御する。使用されるブロック有限状態機械73a~cの数は、実装される第一ティアデータバッファ61a~cの数に関係する。示された例において、3つのブロック有限状態機械73a~cは、ラウンドロビン方式で作動し、特定の第一ティアデータバッファ61a~cに関連付けられてはいない。3つのブロック有限状態機械73a~cの各々は、第二ティア転送バッファ65からメモリデータチャネル59上へのデータのシリアライゼーションを独立的に制御することができる。しかして、3つの第一ティアデータバッファ61a~cから第二ティア転送バッファ65にアンロードするときには、衝突を検出し回避するため注意を払わなければならない。リードデータバッファ遅延有限状態機械71a~dは、所与のトランザクションについて、第二ティア転送バッファ65とブロックステージングレジスタ68との間での衝突を検出し回避するために、データブロックコントローラすなわち、ブロック有限状態機械73a~cに調整信号を送る。次いで、ブロックステージングレジスタ68中のデータが、ポイズンインジェクタ69を通して移動された後、メモリデータチャネル59に置かれる。エラー状態が生じた場合、階層的バッファシステム60は、特殊な巡回冗長コードCRC:cyclicredundancycodeを使って、不具合が発生して要求されたリードデータを送信できないことを、ホストに返信する。これにより、ホストは、不具合となったリード命令を再発行する、または、オペレーティングシステムを変更して、メモリスペースを割り当て解除し、今後のリードを他の物理メモリ場所にリダイレクトするなど、回復手順を試みることができる。該好適な実施形態において、階層的バッファシステム60は、メモリデータチャネル59で80ビット幅のデータブロックを用いる。連続する2つの80ビットブロックが単一個のフレームを表す。この160ビットのうち、144ビットは実際のメモリデータで、残りの16ビットは、巡回冗長コードCRCのため使われる。CRCは当技術分野ではよく知られており、144ビットの送信を保護するために数多くのコードを利用することができる。該好適な実施形態は、いかなる単一個のソリッドレーンの不具合、および、フレーム内での、4ビットまでのいかなるランダムビットフリップをも検出可能なコードを用いる。全てゼロの80ビットのブロックが正当なアイドルパターンと見なされる。フレーム内の2つの80ビットブロックの最初と最後のビットを交互に反転させることにより、これがポイズンCRCコードを生成する。ポイズンCRCは、特殊なパターンであって、送信にエラーが発生した場合、該ビットフリップは真のCRCエラーをもたらす。しかして、ポイズンCRCコードをメッセージとして使って、ホストに対し、問題が発生し、リード命令をうまく処理することができなかったことを提示することができる。階層的バッファシステム60は、該階層的バッファシステム内に、エラーインジケータをモニタする対応機能を有するポイズンインジェクタ69を用いる。エラーインジケータが検出されると、ポイズンインジェクタ69は、ブロックステージングレジスタ68からの処理中の一切の転送を途中捕捉し、存在する80ビットのデータパターンをポイズンCTCパターンに重ね合わせる。さらに、階層的バッファシステム60は、新しいフレームの開始部が必ずポイズンインジェクションから始まっていることを確実にするフレーム境界検出ロジックを包含する。一つの実施形態で用いられるCRCコードは、1番目の80ビットブロック中のランダムなデータパターンとそれに続く2番目の80ビットブロック中のポイズンCRCパターンとが、正常なCRCを備えた正当なデータに見えるような160ビットのデータを生成する統計的確率を有するようなコードである。ホストが、受信したフレームが正当なデータであると信じるようミスリードされるいかなる可能性をも阻止するために、階層的バッファシステム60は、転送の最中にあるフレームを完了させることができる。次のフレーム境界で、ポイズンインジェクタ69は、位置パターンを重ね合わせ、データを要求したユニットにその不具合を警告することになる。該好適な実施形態は、全システム的な回復ポリシーを用いており、該ポリシーはある命令が十分な深さのキューを再試行することを可能にし、ポイズンインジェクタ69が、次のフレーム境界を待ってポイズンCRCパターンを挿入することができるようにする。ブロック有限状態機械73a~cを使用することによって、DRAMデータの、第一ティアデータバッファ61a~c中へのローディングと、第二ティア転送バッファ65中へのローディングと、第二ティア転送バッファ65からメモリデータチャネル59上へのアンローディングとの間の多様なクロック比すなわち、ギア比を使うことが可能になる。該好適な実施形態において、ブロック有限状態機械73a~cはリードデータバッファ遅延有限状態機械71a~dよりも高いクロック周波数で作動し、サブDRAMクロックサイクルリードバッファ遅延を使って、個別のリードデータ転送の間にギャップのない移行をもたらすことを可能にする。ある他の実施形態において、ブロック有限状態機械73a~cは、リードデータバッファ遅延有限状態機械71のクロック周波数で作動する。データ転送に用いられる第三コントローラは、リロードマネージャ74であり、該マネージャは、第二ティア転送バッファ65をモニタし、リードデータバッファ遅延有限状態機械71a~dに、第二ティア転送バッファ65が使用可能になることと、第一ティアデータバッファ61a~cからデータをロードできることとを信号伝達する役割をもつ。この早期アンロードは、後続のデータのため第一ティアデータバッファ61a~cの可及的速やかな解放を可能にし、第二ティア転送バッファ65が十分に利用されることを確実にする。データフローを介しての個別リードデータオペレーションの追跡に役立てるため、および誤った順序での第一ティアデータバッファ61a~cのアンローディングを防止するために、各リードデータ転送にはidが割り当てられる。リロードマネージャ74は、どのリードidが、各第一ティアデータバッファ61からアンロードされたか、どれを次にアンロードするかを追跡する。リードデータバッファ遅延有限状態機械71がブロック有限状態機械73a~cにコントロールを移すときに、このidも転送される。ブロック有限状態機械73a~cが、リロードマネージャ74に、第二ティア転送バッファがアンロードされていることを信号伝達するとき、この送信の一部として転送idが連絡され、リロードマネージャ74は、第二ティア転送バッファ65中に移動すべき次の転送idの情報を更新し、これにより、正しいリードデータバッファ遅延有限状態機械71a~dに信号伝達することができる。本発明の一つの実施形態において、高速パスステージングレジスタ62がタイミングを終了するのが示されている。ある好適な実施形態において、高速パスステージングレジスタ62は、ステージングレジスタである。ある他の実施形態において、階層的バッファシステム60を提供するシステムおよび方法は、高速パスステージングレジスタ62がなくても効率的に作動し、データはソースドメイン57から第二ティア転送バッファ65に直行する。さらに別の実施形態では、階層的バッファシステム60を提供するシステムおよび方法は、タイミングを終了するため複数の高速パスステージングレジスタ62を活用する。第一ティアデータバッファ61a~cを早期にアンロードするために、階層的バッファシステム60はリロードマネージャ74を利用する。リロードマネージャ74エンティティは、第一ティアデータバッファ61a~cから第二ティア転送バッファ65へのデータのフローを能動的に管理し、データがメモリデータチャネル59に送出される順番がきたとき第二ティア転送バッファ65で該データの準備が整っていることを確実にする。これが、一般に、データ構造の如何によって以下の3つの仕方のうち一つで作動することになる従来技術との主要差別化点である。該3つの仕方とは、a単に、遅延が期限切れになる0に達するまで、第一ティアデータバッファ61a~cにデータを在置する。これは受動的バッファパイプライン化といわれる。というのは、第二ティア転送バッファ65中に利用可能な余地があっても、データは、該データが移動する前に遅延が期限切れになるまで何もせずに待つことになるからである。b第二ティア転送バッファ65が空になるまで待って、その次に第一ティアデータバッファ61a~cから第二ティア転送バッファ65にデータを移動する。この方法は、まったく遅延タイマーには依存しない。これは、要求される遅延時間をデータ中に有するアーキテクチャに対しては機能しない。これは、データが非同期で移動する環境、または従来技術のような構造中でだけ使用することができる。言い換えれば、あるときには、第二ティア転送バッファ65は5サイクルで空になり得、続いてデータが第一ティアデータバッファ61a~cから移動する。しかしながら、次回には、空になるのに50サイクルかかるかもしれないのに、システムアーキテクチャはこの可変時間を考慮せず、秩序正しくものごとが運ばれることだけを要求する。c遅延期限切れに先立って第二ティア転送バッファ65が空になった場合に、データを第二ティア転送バッファ65に早期移動することを試みるためaとbとの組み合わせを使えるが、空にならない場合、受動モードのオペレーションに戻ってしまい、ただ遅延が時間切れになるのを待つことになる。これに関する問題は、リードのシーケンスおよびそれらに関連する転送の長さの如何によっており、ギャップレス転送ルールに執着するのはうまくいかない場合がある。というのは、該ルールは、一旦データがバッファされ、ホストへの返信が開始されたならば、残りの全てデータの送信は、ギャップレスとなり正確なサイクルで行われことになるからである。図3は、本発明の一つの実施形態による、階層的バッファシステム60のオペレーションの例を示すフローチャートである。該フローチャートは、データがバッファの階層を通って移動される際の、データに対する制御パスを示す。該フローチャートは、所定のリード遅延、バッファ利用度、およびトランザクションサイズに基づいた、単一のトランザクションすなわちバースト長8または7に対する実行可能なデータパスを示す。ステップ101において、階層的バッファシステム60は、データの第一バーストをメモリデータチャネル59上に返さなければならない、正確な配信時間を計算する。該好適な実施形態は、要求者から見た、命令発信から先頭のデータバーストが到着するまでの合計伝搬時間を意味する、初期フレーム遅延IFL:initialframelatencyで構成される方法を用いる。この往復遅延は、システム初期化シーケンスの間に一度計算され、参照のためローカルに保存される。バッファリングが必要でない、バス不活動のウィンドウの間に、コンピュータに対する初期フレーム遅延のベースラインが設定され、DRAMアクセス時間およびデータフロー内の内部遅延を取り入れてさらに調整される。リード命令が受信されたときにカウンタがロードされ、デクリメントが開始される。カウンタは、データの最初のバーストをメモリデータチャネル59に送信しなければならなくなるまでの残り時間を表示する。初回リード命令に近い時間に到着した一切の後続リード命令は、メモリデータチャネル59が利用可能になるまで待つ間の追加遅延を被る。この追加遅延は、現在のトランザクションのカウンタの値を設定されたベースラインと比較して決められる。その差異は、第二トランザクションが、メモリデータチャネル59が利用可能になるのを待つため、バッファ格納されなければならない時間の量を表す。また、このリードバッファ遅延の計算には、転送には複数サイクルの分メモリデータチャネル59が使われるので、アップストリーム転送のバースト長を取り入れるための調整がさらに含まれることに留意すべきである。また、バッファ格納を要求するすなわち、正のリードデータバッファ遅延を有する後続のリード要求も、サイクル通過ごとにリードデータバッファ遅延をデクリメントするカウンタを有することになる。データが第一ティアバッファから第二ティアバッファに移動される際に、残りのリードデータバッファ遅延も、リードデータバッファ遅延有限状態機械71a~dからブロック有限状態機械73a~cに渡される。最後に、デイジーチェーントポロジーの場合、階層的バッファシステム60は、一つのメモリエレメント22Nが現在メモリデータチャネル59を使っている間に、第二のメモリエレメント22Aに対するリード要求を受信することができる。この状況において、階層的バッファシステム60は、デイジーチェーンに取り付けられた各メモリエレメント22A~Nに対する初期フレーム遅延を格納する機能も包含し、階層的バッファシステム60の各インスタンスが、各メモリエレメントA~Nの間で一切通信しないで、分散方式で全ての処理待ちトランザクションの配信時間を計算、追跡することができる。このようにして、階層的バッファシステム60は、第二リード要求を管理し、該階層的バッファシステム60が他の遠隔のメモリリソースを標的としていることを理解しながら、第一リード要求をスヌープし、第一要求に対する配信時間を計算し、次いで、これをリードデータバッファ遅延として第二要求配信時間計算に適用することになる。従って、リードデータバッファ遅延は、ローカルまたは遠隔いずれかのリソースがチャネルを使用していることに起因して、一つのトランザクションが、メモリデータチャネル59が利用可能になるのを待つためにバッファ格納されなければならない時間量データとして算定される。リードデータバッファ遅延有限状態機械71a~dおよびブロック有限状態機械73a~cに対するリードデータバッファ遅延を設定する手段を示すため、正確な配信時間を計算する方法を説明する。正確な配信時間を計算するための装置および方法は、本発明の譲受人に譲渡され、同時継続中の、2008年7月1日付の米国特許出願第12/166,226号代理人番号:POU920080110、名称AutomaticReadDataFlowControlInACascadeInterconnectMemorySystemに記載されている。メモリデータチャネルに対する正確な配信時間を設定する他の手段も存在し、本発明が、本明細書に記載された以外の手段の使用を排除するものでないことを理解する。別の実施形態の一つの例は、リード命令の内部に、トランザクションに対し要求される配信時間を指定するフィールド使うことである。このアプローチは、バスまたはメモリのコントローラが、特定のフロー制御およびバス利用を設定することを可能にする。配信時間を計算するためた方法の如何にかかわらず、および関連する一切のリードデータバッファ遅延の如何にかかわらず、出願人らの発明は、このエレメントを用い、階層的バッファシステム60を介してデータの移動を制御することを意図している。ステップ103において、階層的バッファシステム60は、プロセッサ21によって要求されるデータを受信するのを待つ。プロセッサ21によって要求されたデータが受信されたならば、各トランザクションにはIDが割り当てられ、次いで階層的バッファシステム60は、ステップ105において、遅延カウントがDRAMサイクルあたりのブロックのカウントよりも小さいかどうかを確認する。ステップ105において、遅延カウントがDRAMサイクルあたりのブロックのカウントよりも小さいと判定されれば、次いで、階層的バッファシステム60のオペレーションは、ステップ127にスキップする。しかしながら、ステップ105において、遅延カウントがDRAMサイクルあたりのブロックのカウント以上であると判定された場合、階層的バッファシステム60は、ステップ107において、第二ティア転送バッファ65が使用可能かどうかを判定する。ステップ107で、第二ティア転送バッファ65が利用可能と判定されると、階層的バッファシステム60のオペレーションはステップ125にスキップする。しかしながら、第二ティア転送バッファ65が利用可能でないと判定された場合は、階層的バッファシステム60は、ステップ109において、データを第一ティアデータバッファ61a~cに格納する。これは、第一ティアデータバッファ61a~cが利用可能であることを前提としており、利用可能でなければバッファオーバーフロー状態が生じる。ステップ111において、第二ティア転送バッファ65が満杯かどうかが判定される。第二ティア転送バッファ65が満杯であると判定された場合、階層的バッファシステム60はステップ117にスキップする。しかしながら、ステップ111において、第二ティア転送バッファ65が満杯でないと判定された場合には、ステップ113において、第一ティアデータバッファ61a~c中のシーケンスの次のデータトランザクションが、バーストチョップかどうかが判定される。第一ティアデータバッファ61a~c中のデータは、該データトランザクションのサイズが第一ティアデータバッファ61a~cまたは第二ティア転送バッファ65の容量の半分である場合、バーストチョップである。この場合、該バッファは半分1/2が埋まっている。ステップ113において、第一ティアデータバッファ61a~c中のデータが、バーストチョップであると判定された場合、階層的バッファシステム60のオペレーションは、ステップ119にスキップする。また一方、ステップ113で、第一ティアデータバッファ61a~cのデータがバーストチョップでないと判定された場合、階層的バッファシステム60のオペレーションは、ステップ115において、第二ティア転送バッファ65のアンロード時間の直前まで遅延される。この遅延を行ったのは、リードデータバッファ遅延有限状態機械71a~cおよびアービトレイション72である。該好適な実施形態において、ブロック有限状態機械73a~cは、リロードマネージャ74に、該機械が、ラインの次のトランザクションのコンテンツに基づいて、第二ティア転送バッファをメモリデータチャネル59上に空けていると信号伝達する時間を変えることによって、この遅延を実施する。リロードマネージャ74は、第二ティア転送バッファ65が半分詰まっているか完全満杯かによって、随時に、第一ティアデータバッファ61a~cを早期アンロードする要求を発行する。次いで、階層的バッファシステム60のオペレーションはステップ119にスキップする。ステップ117において、階層的バッファシステム60のオペレーションは、第一ティアデータバッファ61a~cから第二ティア転送バッファ65中へのデータのアンローディングを、第二ティア転送バッファ65がメモリデータチャネル59へのデータのアンローディングを能動的に開始するまで遅延させる。第一ティアデータバッファ61a~cにデータがある場合、それを第二ティア転送バッファ65に移動できる2つの好適なやり方がある。第一の好適な方法では、リードデータバッファ遅延有限状態機械71a~cのカウントが自然失効するすなわち、カウントが、DRAMクロックサイクルあたりのリードデータバッファ遅延ステップ数の閾値より低くなる。第二の好適な方法では、リロードマネージャ74が、第二ティア転送バッファ65が利用可能でロードできることを示す。この早期の指示が行われる場合、それはカウントが自然失効する前となる。第一ティアデータバッファ61a~cを第二ティア転送バッファ65中にアンロードするためのこの信号は、第二ティア転送バッファ65の現在のコンテンツ如何によって、2つの異なるときに生じることになる。第二ティア転送バッファ65がハーフブロックのすなわちBL4トランザクションを保持している場合、これは、第二ティア転送バッファ65中に2つの使用可能な空きスロットがあることを意味し、リロードマネージャ74は、第一ティアデータバッファ61a~cからの早期アンロードを、第二ティア転送バッファ65が満杯であった場合に比べ数サイクル早く信号伝達することができる。これにより、第二ティア転送バッファ65の2つの空きスロットを、第二ティア転送バッファ65の他の2つの満たされたスロットからどれかのデータのアンローディングが実際に開始されるよりも前に、満たし始めることができることになる。第二ティア転送バッファ65が満杯の場合には、階層的バッファシステム60は、第一ティアデータバッファ61a~cスロットが、少なくとも、該スロットが新しい第一ティアデータバッファ61a~cデータで満される前に、アンロードされるまで待たなければならない。ステップ103において割り当てられたトランザクションIDは、リードデータ遅延とともに使用され、トランザクションが順次的な仕方で処理されており、第一ティアデータバッファ61a~cがラウンドロビン方式で処理されていることを確実にする。リロードマネージャ74は、第二ティア転送バッファ65中にロードされることになる次回アンロードトランザクションIDの実行タリーを維持する。リードデータバッファ遅延有限状態機械71a~cがそれらのデータを第二ティア転送バッファ65にアンロードするとき、これら機械は、リロードマネージャ74にトランザクションIDを示し、リロードマネージャ74が、各第一ティアデータバッファ61a~cからアンロードされることになる次のIDがどれかについての自分の記録を更新できるようにする。ブロック有限状態機械73a~cが第二ティア転送バッファ65をアンロードする都度、これら機械もアンロードされたIDについてリロードマネージャ74に通知する。これにより、トランザクションが順次的に処理されておりスキップされたものがないことを確実にする。ステップ119において、階層的バッファシステム60のオペレーションは、第一ティアデータバッファ61a~cを早期アンロードすることが実施可能かどうかを判定する。ステップ119で、第一ティアデータバッファ61a~cが早期アンロード可能と判定された場合、階層的バッファシステム60のオペレーションは、ステップ129にスキップする。早期アンロードを行うかどうかの決定はリロードマネージャ74およびブロック有限状態機械73a~cによって行われる。ブロック有限状態機械73a~cが、リロードマネージャ74に、第二ティアバッファがアンロードされている、またはされようとしていることを通知した場合、リロードマネージャ74は、次にアンロード予定の第一ティアバッファに、そのコンテンツを早期アンロードすることを信号伝達可能かどうかを判定する。この決定は、該第一ティアバッファがそのデータをまだ中に保有しているか、および該バッファがすでに自然的アンローディングを既に開始しているか、または開始しようとしているかに基づいて行われる。それが利用可能なデータを有しているが自然的アンロードは開始していない場合、該バッファは、リロードマネージャ74から早期アンロードをすることを信号伝達されることになる。また一方、ステップ119において、第一ティアデータバッファ61a~cが早期アンロードできないと判定された場合には、階層的バッファシステム60のオペレーションは、ステップ121において、遅延カウントがDRAMサイクルあたりのブロックのカウントより小さいかどうかを判定する。ステップ121で、遅延カウントがDRAMサイクルあたりのブロックのカウント以上であると判定された場合、階層的バッファシステム60のオペレーションは、ステップ121において遅延カウントをデクリメントし、ステップ109~121に戻りこれを繰り返す。また一方、ステップ121で、遅延カウントがDRAMサイクルあたりのブロックのカウントを下回ると判定された場合、第一ティアデータバッファ61a~c中のデータは、ステップ129において第二ティア転送バッファ65に格納される。ステップ131において、遅延カウントがゼロに等しいかどうか判定される。ステップ131で遅延カウントがゼロに等しくないと判定された場合、階層的バッファシステム60のオペレーションは、ステップ133で遅延カウントをデクリメントし、ステップ129~131に戻りこれを繰り返す。また一方、ステップ131で、遅延カウントがゼロに等しいと判定された場合、階層的バッファシステム60は、ステップ135にスキップする。ステップ127において、プロセッサ21に要求されたデータは、高速パスステージングレジスタ中、1つのサイクル間、格納される。高速パスステージングレジスタ62中に格納されている、プロセッサ21に要求されたデータは、ステップ129で第二ティア転送バッファ65中に格納される。ステップ135において、第二ティア転送バッファ65中のデータはブロックステージングレジスタ68に格納される。ステップ137で、ブロックステージングレジスタ68中のデータは、ポイズンインジェクタ69を通してメモリデータチャネル59に移動される。ステップ139において、階層的バッファシステム60のオペレーションはプロセッサ21のため要求された次のデータの受信を待つ。プロセッサ21のため要求されたデータを受信した後、階層的バッファシステム60のオペレーションはステップ103~139に戻りこれを繰り返す。図4~図6は、本発明の一つの実施形態による、階層的バッファシステム100のオペレーションの例を図示するタイミング図である。図4Aに示されているのは、ゼロリードバッファ遅延のフラッシュリードに対する例示的タイミング図である。データをDRAMから返送するときに、メモリデータチャネル59が空いている/空くことになる状況においては、第一ティアデータバッファ61a~cの一つにデータを一時的に格納する必要はない。この場合、203で示すように、リードデータは、パイプライン化レジスタ、すなわち高速パスステージングレジスタ62を介して第一ティアデータバッファ61a~cを迂回することになり、204で示すように、フラッシュリードデータバッファ遅延有限状態機械71a~dによって、直接第二ティア転送バッファ65中にロードされる。同時に、205で示すように、3つのブロック有限状態機械73a~cの一つが呼び出され、第二ティア転送バッファ65からのデータの、メモリデータチャネル59上への、シリアライゼーションを直ちに開始することになる。この例において、第二ティア転送バッファ65は、単純なステージングレジスタとしての役割をする。これは、フラッシュリードデータが、該データが単一回のサイクルを超えてバッファ中に在置されることがなく、最小の待ち時間で構造を通り抜けて移動することを可能にする。図4B中に示されているのは、非ゼロバッファ遅延のフラッシュリードに対する例示的タイミング図である。このバッファ構造は、複数のバッファデバイスからメモリコントローラに戻る共通データチャネルが存在する、カスケード型相互接続メモリシステムでの使用を意図されているので、リードデータを空の第二ティア転送バッファ65中にロードできるようにすることは可能であるが、第二ティア転送バッファ65から直ちにシリアライズしてメモリデータチャネル59上に置くことはできないすなわち、チャネルは使用中である。この状況で、データはこれも第一ティアデータバッファ61a~cを迂回して、第二ティア転送バッファ65中に直接にロードされることになる。しかしながら、この場合も、リードデータバッファ遅延有限状態機械71a~cは、ブロック有限状態機械73a~cに非ゼロのバッファ遅延待ち時間を渡すことになる。ブロック有限状態機械73a~cは、リードデータを、第二ティア転送バッファ65からメモリデータチャネル59上にアンロードする前に、このバッファ遅延時間を待つことになる。このデータが第二ティア転送バッファ65中で待っている間に後続のリードオペレーションが要求された場合、これらのオペレーションからのデータが第一ティアリードデータバッファを満たし始めることになる。図5に示されているのは、第一ティアバッファから早期アンロードされる、バッファ格納リードに対する例示的タイミング図である。データスループットを最大化し、データが前述の階層的バッファシステム60を通して適切な固定タイミングで返送されることを確実にするために、必要な場合にだけ第一ティアデータバッファ61a~cが利用され、できるだけ迅速にデータがこれらバッファから第二ティア転送バッファ65にアンロードされ、しかして、後続のリードオペレーションのため第一ティアデータバッファを空けるように注意が払われる。ブロック有限状態機械73a~cがそのリードデータを第二ティア転送バッファ65からメモリデータチャネル59上にアンロードを開始するとき、該機械は、リロードマネージャ74に、第二ティア転送バッファ65が利用可能であることを信号伝達し、今アンロードされルデータ伝送に対するidを提供する。次いで、リロードマネージャ74は、第一ティアデータバッファ61a~c中にアンロードを待つデータがある場合、ラインの次のリードデータバッファ遅延有限状態機械71a~cに、第一ティアデータバッファ61a~cからのそのデータを第二ティア転送バッファ65中にアンロードするよう信号伝達することになる。これは、リードデータバッファ遅延有限状態機械71a~cに、そのリードデータを、早期に、すなわち待ちカウントがDRAMサイクルあたりのステップ閾値に達する前に、第二ティア転送バッファ65中にロードさせる。次いで、リードデータバッファ遅延有限状態機械71a~cは、次に利用可能なブロック有限状態機械73a~cを呼び出し、idおよび残余の待ちカウントがブロック有限状態機械73a~cに移され、カウントされ、データがメモリチャネル上にアンロードされる。第一ティアデータバッファ61a~cの利用度を最大化するため、第二ティア転送バッファ65には、しばしば、前のリードデータをメモリデータチャネル59にアンロードしながら同時に新しいデータがロードされる。図6に示されているのは、第二ティア転送バッファ65が2つのソースから同時にロードされることができ、メモリデータチャネル59が即時の使用のため利用可能である場合の、例示的タイミング図である。このシナリオにおいて、リードデータは、2つの場所、ポートAおよびポートBから得られる。ポートAからのトランザクションはバーストチョップ4のトランザクションであり、ポートB上のトランザクションはBL8である。同時に行われているが、ポートAからのリードは、メモリデータチャネル上で優先権を与えられており、先に返送される。これにより、トランザクションAは、高速パスステージングレジスタを利用し、第二ティア転送バッファ65の上位半分中にロードでき、即時にブロックステージングレジスタに移ることができるすなわち、リード遅延=0。トランザクションBは、第二ティア転送バッファ65中にロードされる前に、第一ティアデータバッファの一つに格納されることが必要となり、4ブロックのリード遅延が割り当てられることになる。第二ティア転送バッファ65は、トランザクションAからのデータがロードされているとき半分だけが満たされ、直ちにブロックステージングレジスタ中にアンロードされることになるので、第二ティア転送バッファ65の下位半分は、直ちにトランザクションBからのデータのロードを開始することができる。トランザクションBからのデータは、第二ティア転送バッファ65のより下位のスロットから順次にロードが開始され、最後には、該バッファのより上位のスロット中の、既にアンロードされているトランザクションAからのデータを上書きする。図7に示されているのは、フラッシュリード、バッファ格納リード、および第一ティアデータバッファ61a~cからの通常のアンロードを含む、例示的タイミング図である。前述のように、第二ティア転送バッファ65が使用されている、または使用されようとしているときに、後続のリードオペレーションが要求された場合、そのオペレーションから返送されるデータには、非ゼロのデータバッファ遅延時間が割り当てられ、第一ティアデータバッファ61a~cの一つに格納されることになる。データが第一ティアデータバッファ61a~c中にロードされるとき、それに対応するリードデータバッファ遅延有限状態機械71a~cが呼び出される。そのリードデータバッファ遅延有限状態機械71a~cは、DRAMクロックサイクルで該リードバッファ遅延待ち時間をカウントダウンすることになる。リードバッファ遅延は、サブDRAMクロックサイクルの粒度で作動されるので、リードバッファ遅延カウントがDRAMサイクルあたりのステップ閾値に達したならば、リードデータバッファ遅延有限状態機械71a~cは、自動的に次に利用可能なブロック有限状態機械73a~c呼び出し、そのデータを第二ティア転送バッファ65中にアンロードする。残りのリードバッファ待ち時間すなわち、残余は、ブロック有限状態機械73a~cが呼び出されたときに、該機械に渡され、該ブロック有限状態機械a~cは、その残り残余時間を待った後で、第二ティア転送バッファ65からデータをメモリデータチャネル59にアンロードすることになる。この例において、残余時間はゼロであり、該リードデータが第二ティア転送バッファ65の中でさらなる時間遅延されることはない。該好適な実施形態において、第二ティア転送バッファ65は2つのローディングポートを有する。本発明の前述の実施形態は、特にどの好適な実施形態も、インプリメンテーションの単なる可能な事例であり、単に、本発明の原理の明瞭な理解のため記述したものであることを強調しておきたい。本発明の精神および原理から実質的に逸脱することなく、本発明の前述の実施形態群に、多くの変形および修改を加えることができる。かかる全ての修改および変形は、本明細書内の開示および本発明の範囲に含まれるものと意図されており、添付の請求項で保護されている。"