(57)【要約】【課題】メモリ・システムを提供すること。【解決手段】例示的実施形態では、本メモリ・システムは、複数のメモリ・バンクと、そのメモリ・バンクと通信するキャッシュとを含む。複数のメモリ・バンクとキャッシュはともに、破壊読み出し型のメモリ素子をさらに含む。
2005524146.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ・バンクと、
前記複数のメモリ・バンクと通信するキャッシュと
を備え、
前記複数のメモリ・バンクと前記キャッシュは両方とも、破壊読み出し型メモリ素子をさらに備えるメモリ・システム。
【請求項２】
前記破壊読み出し型メモリ素子は、ＤＲＡＭセルを備える請求項１に記載のメモリ・システム。
【請求項３】
前記キャッシュは、前記複数のメモリ・バンクの一部分を含む請求項１に記載のメモリ・システム。
【請求項４】
前記メモリ・バンクおよび前記キャッシュと通信するライン・バッファ構造と、
前記ライン・バッファ構造に関連付けられたバッファ・タグと、
前記キャッシュに関連付けられたキャッシュ・タグと
をさらに備える請求項１に記載のメモリ・システム。
【請求項５】
前記ライン・バッファ構造は、一対のバッファを含む請求項４に記載のメモリ・システム。
【請求項６】
前記複数のメモリ・バンクはさらに、ｎ個のＤＲＡＭバンクを備え、前記ｎ個のＤＲＡＭバンクはそれぞれ、当該ＤＲＡＭバンクに関連付けられたｍ本のワード線を有し、
前記キャッシュはさらに、一対のＤＲＡＭキャッシュ・バンクを含み、前記ＤＲＡＭキャッシュ・バンクの対はそれぞれ、当該キャッシュ・バンクに関連付けられた前記ｍ本のワード線を有する請求項５に記載のメモリ・システム。
【請求項７】
前記一対のバッファはそれぞれ、その中にデータ・ページを記憶することができ、前記データ・ページは、選択されたＤＲＡＭバンクの選択されたワード線、または選択されたＤＲＡＭキャッシュ・バンクの選択されたワード線から破壊読み出しされたデータ・ビットを含む請求項６に記載のメモリ・システム。
【請求項８】
前記ｎ個のＤＲＡＭバンクの１つに初めに保持されているデータは、前記一対のＤＲＡＭキャッシュ・バンクの１つに記憶することができる請求項７に記載のメモリ・システム。
【請求項９】
初めに前記ｎ個のＤＲＡＭバンクに関連付けられている、前記一対のＤＲＡＭキャッシュ・バンクに保持されているデータは、直接マッピング方式を通じて当該ＤＲＡＭキャッシュ・バンクに記憶され、
前記ｎ個のＤＲＡＭバンクの１つにおける所与のワード線アドレスに関連付けられたデータは、前記一対のＤＲＡＭキャッシュ・バンクの１つにおける前記所与のワード線アドレスに記憶される請求項８に記載のメモリ・システム。
【請求項１０】
前記一対のバッファはそれぞれ、レベル・センシティブ・ラッチを備える請求項７に記載のメモリ・システム。
【請求項１１】
関連付けられたｍ本のワード線をそれぞれが有する、ｎ個のＤＲＡＭバンクと、
第１のＤＲＡＭキャッシュ・バンクおよび第２のＤＲＡＭキャッシュ・バンクを含むキャッシュであって、前記第１のＤＲＡＭキャッシュ・バンクおよび前記第２のＤＲＡＭキャッシュ・バンクは両方とも、当該キャッシュ・バンクに関連付けられた前記ｍ本のワード線を有するキャッシュと、
前記ＤＲＡＭバンクと前記第１および第２のＤＲＡＭキャッシュ・バンクから読み出されたデータを記憶することが可能な一対のバッファを含むライン・バッファ構造と、
前記ＤＲＡＭバンク、前記一対のバッファ、および前記ＤＲＡＭキャッシュ・バンク間のデータ転送を制御する制御アルゴリズムと
を備え、
前記ＤＲＡＭバンクおよび前記ＤＲＡＭキャッシュ・バンクから読み出されるデータは、破壊読み出しされるＤＲＡＭシステム。
【請求項１２】
前記ＤＲＡＭキャッシュ・バンクの所与のワード線に保持されたデータのＤＲＡＭバンク・アドレス情報を記憶するキャッシュ・タグと、
前記一対のバッファに保持されたデータのＤＲＡＭバンク・アドレス情報を記憶するバッファ・タグと
をさらに備える請求項１１に記載のＤＲＡＭシステム。
【請求項１３】
前記バッファ・タグはさらに、
前記一対のバッファに有効なデータが存在するかどうかを示す第１のフラグと、
前記一対のバッファのいずれかに、ランダムに要求されるデータが保持されているかどうかを示す第２のフラグと
を備える請求項１２に記載のＤＲＡＭシステム。
【請求項１４】
外部から発信されたデータを、前記バッファ構造を通じて前記ＤＲＡＭシステム中に受け取るデータ・イン・バスと、
内部に記憶されたデータをＤＲＡＭシステムの外部へ送信するデータ・アウト・バスと、
前記ＤＲＡＭバンクから前記一対のバッファのうち一方にデータを送信する読み出し補助データ線と、
前記ＤＲＡＭキャッシュ・バンクから前記一対のバッファのもう一方にデータを送信するキャッシュ補助データ線と
前記一対のバッファのどちらかから前記ＤＲＡＭバンクにデータを送信する書き込み補助データ線と、
前記一対のバッファのどちらかから前記ＤＲＡＭキャッシュ・バンクにデータを送信するキャッシュ書き込み補助データ線と
をさらに備える請求項１１に記載のＤＲＡＭシステム。
【請求項１５】
前記一対のバッファはさらに、レベル・センシティブ・ラッチを備える請求項１４に記載のＤＲＡＭシステム。
【請求項１６】
前記一対のバッファはさらに、エッジ・トリガ・ラッチを備える請求項１４に記載のＤＲＡＭシステム。
【請求項１７】
前記制御アルゴリズムはさらに、
前記ＤＲＡＭバンク、前記一対のバッファ、および前記ＤＲＡＭキャッシュ・バンク中に存在する有効データの定義された許容可能な状態の規則と、
前記定義された許容可能な状態の規則に従って、前記ＤＲＡＭバンクに記憶されたデータに対する最初のランダム・アクセス要求の前に前記ＤＲＡＭシステムを初期化するステップと、
同じく前記定義された許容可能な状態の規則に従って、データに対する前記最初のランダム・アクセス要求の後、およびその後行われるどのランダム・アクセス要求の後にも、要求されるデータが前記ライン・バッファ構造中で入手できるようにするステップと
を備える請求項１１に記載のシステム。
【請求項１８】
前記要求されるデータが前記バッファ構造中で入手できるようにする前記ステップはさらに、前記ＤＲＡＭバンクと前記ライン・バッファ構造の間、および前記ＤＲＡＭキャッシュ・バンクと前記ライン・バッファ構造の間で実行される、決定された一続きのデータ転送動作を含み、
前記決定された一続きのデータ転送動作は経路に依存せず、前記決定された一続きのデータ転送動作が、前記ＤＲＡＭバンク、前記ライン・バッファ構造、および前記キャッシュに記憶されたデータの以前の位置に依存しないことを特徴とする請求項１７に記載のシステム。
【請求項１９】
ｎ個のＤＲＡＭバンクと、ライン・バッファ構造と、キャッシュとを有するダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）システム内でデータの移動を制御する方法であって、
前記記憶バンク、前記バッファ構造、および前記キャッシュ内に存在する有効なデータの許容可能な状態の規則を定義するステップと、
前記定義された許容可能な状態の規則に準拠して、前記ＤＲＡＭバンクに記憶されたデータに対する最初のランダム・アクセス要求の前に前記ＤＲＡＭシステムを初期化するステップと、
前記データに対する最初のランダム・アクセス要求の後、およびその後行われるデータに対するどのランダム・アクセス要求の後にも、要求されるデータを前記バッファ構造中で入手できるようにするステップとを備え、
前記要求されるデータを前記バッファ構造中で入手できるようにするステップの後に、前記許容可能な状態の規則が維持される方法。
【請求項２０】
前記要求されるデータを前記バッファ構造中で入手できるようにするステップはさらに、前記ＤＲＡＭバンクと前記バッファの間、および前記キャッシュと前記バッファの間で決定された一続きのデータ転送動作を実行することを含み、
前記決定された一続きのデータ転送動作は、経路に依存せず、前記決定された一続きのデータ転送動作は、前記ＤＲＡＭバンク、前記バッファ構造、および前記キャッシュに記憶されたデータの以前の場所に依存しないことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記ｎ個のＤＲＡＭバンクはそれぞれ、当該ＤＲＡＭバンクに関連付けられたｍ本のワード線と記憶バンク・アドレスとを有し、
前記キャッシュは、第１のキャッシュ・バンクおよび第２のキャッシュ・バンクを含み、前記第１および第２のキャッシュ・バンクも、ともに、当該キャッシュ・バンクに関連付けられたｍ本のワード線を有し、
前記バッファ構造は、それぞれその内部にデータワードを記憶することが可能な第１のバッファおよび第２のバッファを含み、前記データワードは、前記ＤＲＡＭバンクの１つ、または前記第１および第２のキャッシュ・バンクの１つから読み出された、特定のワードラインにあったデータを含む請求項２０に記載の方法。
【請求項２２】
前記許容可能な状態の規則を定義するステップはさらに、所与のクロック・サイクルの開始時に、
前記第１および第２のバッファがそれぞれ有効なデータを保持しており、前記第１のバッファ中の前記有効なデータは、前記第２のバッファ中の前記有効データと同じワード線アドレスｉ（ｉは０〜ｍの間の任意の数）を有すること、
前記第１のバッファにも前記第２のキャッシュ・バンクにも、前記アドレスｉに等しいワード線アドレスを有する有効データはないこと、および
前記アドレスｉ以外のすべての他のワード線アドレスについて、前記第１のキャッシュ・バンクまたは前記第２のキャッシュ・バンクのいずれかの対応するワード線に１つのデータ・ワードが記憶されていること
を保証するステップを備える請求項２０に記載の方法。
【請求項２３】
前記要求されるデータを前記バッファ構造中で入手できるようにするステップは、前記所与のクロック・サイクルの終わりまでに、
記憶バンク・アドレスＸ（Ｘは０からｎ−１の間の任意の数）、およびワード線アドレスｊ（ｊは０〜ｍの間の任意の数）に対応する前記要求されるデータが、前記第１および第２のバッファの１つに保持されていること、
前記第１および第２のバッファのもう一方が、ワード線アドレスｊを有するがＸとは異なる記憶バンク・アドレスを有するデータを保持していること、
前記第１のキャッシュ・バンクにも前記第２のキャッシュ・バンクにも、前記アドレスｊに等しいワード線アドレスを有する有効データはないこと、および
前記アドレスｊ以外のすべての他のワード線アドレスについて、前記第１のキャッシュ・バンクまたは前記第２のキャッシュ・バンクのどちらかの対応するワード線に１つのデータ・ワードが記憶されていること
を保証するステップを備える請求項２２に記載の方法。
【請求項２４】
前記要求されるデータを前記バッファ構造中で入手できるようにするステップはさらに、
前記要求されるデータが、初めに、対応するＤＲＡＭバンク、前記第１および第２のバッファの１つ、または前記第１および第２のキャッシュ・バンクの１つに見つかるかどうかを判定するステップを備え、
前記決定された一続きのデータ転送動作の実行は、前記要求されるデータの最初の場所に依存する請求項２３に記載の方法。
【請求項２５】
ｎ個のＤＲＡＭバンクと、ライン・バッファ構造と、破壊読み出し型のＤＲＡＭキャッシュとを有する破壊読み出し型のダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）システム内でデータの移動を制御する方法であって、
前記記憶バンク、前記バッファ構造、および前記キャッシュ内に存在する有効なデータの許容可能な状態の規則を定義するステップと、
前記定義された許容可能な状態の規則に準拠して、前記ＤＲＡＭバンクに記憶されたデータに対する最初のランダム・アクセス要求の前に前記ＤＲＡＭシステムを初期化するステップと、
前記データに対する最初のランダム・アクセス要求の後、およびその後行われるデータに対するどのランダム・アクセス要求の後にも、要求されるデータを前記バッファ構造中で入手できるようにするステップとを備え、
前記要求されるデータを前記バッファ構造中で入手できるようにするステップの後に、前記許容可能な状態の規則が維持される方法。
【請求項２６】
前記要求されるデータを前記バッファ構造中で入手できるようにするステップはさらに、前記ＤＲＡＭバンクと前記バッファの間、および前記キャッシュと前記バッファの間で決定された一続きのデータ転送動作を実行することを含み、
前記決定された一続きのデータ転送動作は、経路に依存せず、前記決定された一続きのデータ転送動作は、前記ＤＲＡＭバンク、前記バッファ構造、および前記キャッシュに記憶されたデータの以前の位置に依存しないことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記ｎ個のＤＲＡＭバンクはそれぞれ、当該ＤＲＡＭバンクに関連付けられたｍ本のワード線と、当該ＤＲＡＭバンクに関連付けられた記憶バンク・アドレスとを有し、
前記キャッシュは、第１のキャッシュ・バンクおよび第２のキャッシュ・バンクを含み、前記第１および第２のキャッシュ・バンクも、ともに、当該キャッシュ・バンクに関連付けられたｍ本のワード線を有し、
前記バッファ構造は、それぞれその中にデータワードを記憶することが可能な第１のバッファおよび第２のバッファを含み、前記データワードは、前記ＤＲＡＭバンクの１つ、または前記第１および第２のキャッシュ・バンクの１つから読み出された、特定のワード線にあったデータを含む請求項２６に記載の方法。
【請求項２８】
前記許容可能な状態の集合を定義するステップはさらに、所与のクロック・サイクルの開始時に、
前記第１および第２のバッファがそれぞれ有効なデータを保持しており、前記第１のバッファ中の前記有効なデータは、前記第２のバッファ中の前記有効データと同じワード線アドレスｉ（ｉは０〜ｍの間の任意の数）を有すること、
前記第１のバッファにも前記第２のキャッシュ・バンクにも、前記アドレスｉに等しいワード線アドレスを有する有効データはないこと、および
前記アドレスｉ以外のすべての他のワード線アドレスについて、前記第１のキャッシュ・バンクまたは前記第２のキャッシュ・バンクのいずれかの対応するワード線に１つのデータ・ワードが記憶されていること
を保証するステップを備える請求項２７に記載の方法。
【請求項２９】
前記要求されるデータを前記バッファ構造中で入手できるようにするステップは、前記所与のクロック・サイクルの終わりまでに、
記憶バンク・アドレスＸ（Ｘは０からｎ−１の間の任意の数）、およびワード線アドレスｊ（ｊは０〜ｍの間の任意の数）に対応する前記要求されるデータが、前記第１および第２のバッファの１つに保持されていること、
前記第１および第２のバッファのもう一方が、ワード線アドレスｊを有するがＸとは異なる記憶バンク・アドレスを有するデータを保持していること、
前記第１のキャッシュ・バンクにも前記第２のキャッシュ・バンクにも、前記アドレスｊに等しいワード線アドレスを有する有効データはないこと、および
前記アドレスｊ以外のすべての他のワード線アドレスについて、前記第１のキャッシュ・バンクまたは前記第２のキャッシュ・バンクのどちらかの対応するワード線に１つのデータ・ワードが記憶されていること
を保証するステップを備える請求項２８に記載の方法。
【請求項３０】
前記要求されるデータを前記バッファ構造中で入手できるようにするステップはさらに、
前記要求されるデータが、初めに、対応するＤＲＡＭバンク、前記第１および第２のバッファの１つ、または前記第１および第２のキャッシュ・バンクの１つに見つかるかどうかを判定するステップを備え、
前記決定された一続きのデータ転送動作の実行は、前記要求されるデータの最初の場所に依存する請求項２９に記載の方法。
【請求項３１】
前記許容可能な状態の集合を定義するステップはさらに、所与のクロック・サイクルの開始時に、
前記第１および第２のバッファ両方にそれぞれ有効なデータがある場合は、前記第１のバッファの前記有効データは、前記第２のバッファの前記有効データと同じワード線アドレスｉ（iは０〜ｍの間の任意の数）を有し、
前記第１および第２のバッファの両方に有効なデータがある場合、または前記第１および第２のバッファの１つにワード線アドレスｉを有する有効データがある場合は、前記第１のキャッシュ・バンクにも前記第２のキャッシュ・バンクにも、前記アドレスｉに等しいワード線アドレスを有する有効データはなく、かつ
前記第１および第２のバッファのいずれかまたは両方にワード線アドレスｉを有する有効データがある場合は、前記アドレスｉ以外のすべての他のワード線アドレスについて、前記第１のキャッシュ・バンクまたは前記第２のキャッシュ・バンクのどちらかの対応するワード線に１つのデータ・ワードがある
ことを保証するステップを備える請求項２７に記載の方法。
【請求項３２】
前記要求されるデータを前記バッファ構造中で入手できるようにする前記ステップは、前記所与のクロック・サイクルの終わりまでに、
記憶バンク・アドレスＸ（Ｘは０からｎ−１の間の任意の数）、およびワード線アドレスｊ（ｊは０〜ｍの間の任意の数）に対応する前記要求されるデータが、前記第１および第２のバッファの１つに保持されており、
前記第１のキャッシュ・バンクにも前記第２のキャッシュ・バンクにも、前記アドレスｊに等しいワード線アドレスを有する有効データはなく、かつ
前記アドレスｊ以外のすべての他のワード線アドレスについて、前記第１のキャッシュ・バンクまたは前記第２のキャッシュ・バンクのどちらかの対応するワード線に１つのデータ・ワードが記憶されている
ことを保証するステップを備える請求項３１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には集積回路メモリ・デバイスに関し、より詳細には、破壊読み出し方式のメモリによってキャッシュされる破壊読み出し方式のメモリのランダム・アクセス・メモリ・システムに関する。
【背景技術】
【０００２】
サブミクロンのＣＭＯＳ技術が発達した結果、マイクロプロセッサの速度が著しく向上している。マイクロプロセッサの速度は、約３年ごとに４倍になっており、現在では１Ｇｈｚを超えている。こうしたマイクロプロセッサ技術の進歩に伴い、より高度なソフトウェアやマルチメディア・アプリケーションが登場しており、そうしたソフトウェア、アプリケーションは、利用のためにより大容量のメモリを必要とする。したがって、より高い密度と性能を備えたより大型のダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）に対する需要が高まっている。
【特許文献１】米国特許第６，２０５，０７６号
【特許文献２】米国特許第６，３３３，８３３号
【特許文献３】米国特許出願番号０９／８４３，５０４
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＤＲＡＭアーキテクチャは、より高いメモリ容量を必要とするシステム要件に後押しされてここ何年かの間に発展してきた。しかし、ランダム・アクセス時間（ｔＲＡＣ）とランダム・アクセス・サイクル時間（ｔＲＣ）によって特徴付けられるＤＲＡＭの速度は、アーキテクチャと同様には向上していない。その結果、ＣＰＵのクロック速度が時間の経過とともに着実に向上しているため、ＤＲＡＭとＣＰＵの速度の差が広がりつつある。
【０００４】
ＤＲＡＭアレイのランダム・アクセス・サイクル時間（ｔＲＣ）は、一般に、すべてのランダム・アクセス動作を完了する時間量に相当するアレイ時間定数によって決まる。そのような動作には、ワード線（wordline）の通電（activate）、ビット線上の信号の展開、ビット線の感知、信号のライト・バック、ワード線の通電停止（deactivate）、およびビット線のプリチャージが含まれる。従来のＤＲＡＭアーキテクチャではこれらの動作が順次行われるので、ＤＲＡＭの転送速度（すなわち帯域幅）を上げることが困難になる。
【０００５】
特定のアプリケーションのためのＤＲＡＭシステムの行アクセス・サイクル時間を改善する方式の１つは、ＤＲＡＭセルに記憶されたデータの破壊読み出しを実施し、破壊読み出しされたデータを、同じローカル・メモリ・アレイのセンス・アンプ（sense amplifier）に接続されたバッファ・セルに一時的に記憶するものである。（例えばWakayama他の米国特許第６，２０５，０７６号および６，３３３，８３３号を参照されたい。）この方式では、共通のセンス・アンプ・ブロックに接続されたローカル・メモリ・アレイの異なるワード線が、１に、センス・アンプ１つ当たりのバッファ・セル数を足した数に設定される回数だけ順次破壊読み出しされることができる。しかし、各ローカルＤＲＡＭアレイのバッファ・セルとそれに関連付けられた制御ロジックの両方に必要な面積（realestate）が大きいため、この方式で実際に実装できるバッファ・セルの数はわずかである。さらに、バッファ・セルの数が本来のセル・アレイのワード線の数より少ない限り、このシステムでは、限られた数のデータ・アクセス事例についてしかアクセス・サイクル時間が改善されず、一般的なアプリケーションで必要とされるランダム・アクセス・サイクル時間は改善されない。
【０００６】
ＤＲＡＭシステムのランダム・アクセス・サイクル時間を向上させるより実際的な方式は、ＤＲＡＭセルに記憶されたデータの破壊読み出しを実施し、次いで、破壊読み出ししたデータを、メイン・メモリ・アレイの外部にあるＳＲＡＭを利用したキャッシュに一時的に記憶するものである。ＳＲＡＭを利用したキャッシュは、少なくとも、１つのシングル・バンクＤＲＡＭアレイと同じ数のワード線を有する。（本明細書に記載される用語「バンク」とは、同じセンス・アンプを共有するメモリ・セルのアレイを意味する。）この技術は、本願の譲受人に譲渡された、２００１年４月２６日出願の「A Destructive Read Architecture for Dynamic Random Access Memories」という名称の米国特許出願番号０９／８４３，５０４に記載されている。この技術では、後の時間に適切なＤＲＡＭの記憶場所にデータを復元するために、遅延させたライト・バック動作がスケジュールされる。遅延させたライト・バック動作のスケジューリングは、ＳＲＡＭを利用したキャッシュ内の空間の可用性に依存して行われる。このような方式はランダム・アクセス・サイクル時間を短縮する際には有効であるが、ＳＲＡＭを利用したキャッシュを使用すると、望ましからぬ量のチップ面積が占拠される可能性があり、また、結果としてＤＲＡＭとキャッシュ間でデータを転送するための相互接続の配線がより複雑になる可能性がある。したがって、チップ面積が特に問題となる場合は、ＳＲＡＭを利用したキャッシュを使用することで比較的広いデバイス面積を占めることなく、ランダム・アクセス・サイクル時間を短縮することが望ましくなる。
【課題を解決するための手段】
【０００７】
従来技術の上記およびその他の欠点と不完全性は、メモリ・システムによって克服あるいは軽減される。例示的実施形態で、このメモリ・システムは、複数のメモリ・バンクと、そのメモリ・バンクと通信するキャッシュとを含む。複数のメモリ・バンクとキャッシュはともに、破壊読み出し型の（destructive read）メモリ素子をさらに含む。
【０００８】
好ましい実施形態では、破壊読み出し型のメモリ素子は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）の記憶セルである。また、このシステムはさらに、複数のメモリ・バンクおよびキャッシュと通信するライン・バッファ構造を含む。ライン・バッファ構造にバッファ・タグが関連付けられ、キャッシュにキャッシュ・タグが関連付けられる。ライン・バッファ構造は、それぞれがＤＲＡＭアレイのように１ページ分のワード線データを記憶することが可能な一対のレジスタ・アレイを含む。すなわち、ライン・バッファ構造は、１つのデータＩ／Ｏにつき２つのレジスタを含む。
【０００９】
複数のメモリ・バンクはさらに、それぞれが関連付けられたｍ本のワード線を有するｎ個のＤＲＡＭバンクを備える。キャッシュはさらに、それぞれが同じ数ｍ本の関連付けられたワード線を有する一対のＤＲＡＭキャッシュ・バンクを含む。さらに、各バッファは、ページ・データを記憶することができ、データ・ページは、選択されたＤＲＡＭバンクの選択されたワード線、または選択されたＤＲＡＭキャッシュ・バンクの選択されたワード線から破壊読み出しされたデータ・ビットを含む。初めにＤＲＡＭバンクの１つに保持されていたデータは、ＤＲＡＭキャッシュ・バンクの１つに記憶することができる。初めにＤＲＡＭバンクに関連付けられていた、一対のＤＲＡＭキャッシュ・バンクに保持されるデータは、直接マッピング方式でそのＤＲＡＭキャッシュ・バンクに記憶され、ＤＲＡＭバンクの１つの所与のワード線アドレスに関連付けられたデータは、ＤＲＡＭキャッシュ・バンクの１つのそのワード線アドレスに記憶される。
【００１０】
別の態様では、ｎ個のＤＲＡＭバンクと、ライン・バッファ構造と、キャッシュとを有するダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）システム内でデータ移動を制御する方法が開示される。例示的実施形態で、この方法は、記憶バンク、バッファ構造、およびキャッシュに有効なデータが存在するための許容できる状態の集合を定義することを含む。このＤＲＡＭシステムは、ＤＲＡＭバンクに記憶されたデータに対する最初のランダム・アクセス要求の前に初期化され、この初期化は、定義された許容可能な状態の集合に準拠する。データに対する最初のランダム・アクセス要求の後、およびその後行われるデータに対するどのランダム・アクセス要求の後にも、要求されるデータをバッファ構造中で入手できるようにし、許容可能な状態の集合が維持される。
【００１１】
例示的図面を参照すると、それら数個の図では同様の要素は同様の参照符号を付している。
【発明を実施するための最良の形態】
【００１２】
これも破壊読み出し型メモリによってキャッシュされる破壊読み出し型メモリに基づくランダム・アクセス・メモリ・システムがここに開示される。破壊読み出し型のメモリとは、読み出し動作が行われた後にそのデータを失うメモリ構造を指し、したがってそのデータをメモリ・セルに復元するために続いてライト・バック動作が行われる。ＤＲＡＭセル内のデータが読み出され、直ちにそこへのライト・バック（write back）が行われない場合、その後そのデータはそのセルにもはや存在しなくなる。上記のように、ランダム・アクセス・サイクル時間を向上させる１方式は、ＳＲＡＭデータ・キャッシュを使用した遅延ライト・バックのスケジューリングと組み合わせて、破壊読み出しモードでメモリ・アレイを作動させるものであった。しかし、同じく先に述べたように、既存のＳＲＡＭデバイスは、より多くのデバイス面積を占め、また、１つのアクセス・トランジスタと１つの記憶コンデンサを有するＤＲＡＭセルと異なり、通例は１つのセルにつき４つ以上のトランジスタを含む。したがって、本発明の実施形態は、同一の破壊読み出しＤＲＡＭバンクをキャッシュとしても機能させ、それにより、下記の諸利点の中でも特にデバイス面積を節減する。
【００１３】
簡潔に述べると、本発明の実施形態では、複数のＤＲＡＭバンクから読み出されることによって破壊されるデータが、同じく破壊読み出しモードで作動されるデュアル・バンク（dual bank）ＤＲＡＭデータ・キャッシュによりキャッシュされる（すなわち当該キャッシュに書き込まれる）。ＤＲＡＭバンクおよびデュアル・バンク・キャッシュに加えて、それぞれが１ページ分のデータを記憶する１対のレジスタ・ライン・バッファも含まれる。キャッシュ・タグが、キャッシュの各ワード線についてのバンク情報と、デュアル・バンク・キャッシュの特定バンクに有効なデータが存在するかどうかを示すフラグとを記憶する。バッファごとにそのバッファに有効なデータが存在するかどうかを示すフラグと、そのデータに関連付けられたバンク情報および行情報とを含むバッファ・タグもある。別のフラグが、２つのバッファのどちらに、１つ前のサイクルで無作為に要求されたデータが含まれる可能性があるかを示す。
【００１４】
これも下記でより詳細に述べるように、「許容できる状態の規則」の概念に基づいて、１つまたは複数の経路に依存しない（path independent）アルゴリズムを考案して、次のクロック・サイクルに備えて実施すべきデータ転送動作を決定することができる。データ転送動作（すなわち移動）は、現在の状態に先立つ履歴ではなく、ＤＲＡＭバンク、キャッシュ、およびバッファ内のデータの現在の状態のみに依存する。理解を容易にするために、以下の詳細な説明は、（１）システム・アーキテクチャ、および（２）そのアーキテクチャのために実装されるスケジューリング・アルゴリズム、の２つの主要部分で構成する。
【００１５】
Ｉ．システム・アーキテクチャ
まず図１に、破壊読み出し型ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）システム１０の概略的なブロック図を示す。ＤＲＡＭシステム１０は、複数ｎ個のＤＲＡＭバンク１２（それぞれＢＡＮＫ０〜ＢＡＮＫｎ−１とする）と、デュアル・キャッシュ・バンク１６を含む破壊読み出しＤＲＡＭキャッシュ１４と、キャッシュ・タグ１８と、１対のレジスタ・ライン・バッファ２０（それぞれをバッファ０およびバッファ１とする）と、バッファ・タグ２２と、関連付けられた論理回路２４とを含む。本発明で使用される用語「バンク」または「ＢＡＮＫ」は、共通のセンス・アンプのセットを共有するメモリ・セル・アレイを指すことに留意されたい。
【００１６】
関連付けられた論理回路２４はさらに、レシーバ／データ・イン素子、ＯＣＤ／データ・アウト素子、および他の論理素子を含むことができる。既存のキャッシュと異なり、２つのＤＲＡＭキャッシュ・バンク１６は、ｎ個の通常のＤＲＡＭバンク１２と（構成と性能の両面で）全く同じでよい。したがって、システム１０は、ｎ＋２個のバンクを備えるアーキテクチャを有すると考えることもでき、その場合は、ｎ個のＤＲＡＭバンクが従来のメモリに使用され、２つのＤＲＡＭバンクがキャッシュとして使用される。以降では、キャッシュ１４に使用される２つのＤＲＡＭバンク１６を「キャッシュ・バンク」と称し、それぞれをＣＢＡＮＫ  ＡおよびＣＢＡＮＫ  Ｂとする。
【００１７】
各ＤＲＡＭバンク１２（ＢＡＮＫ０からｎ−１）およびキャッシュ・バンク１６（ＣＢＡＮＫ  Ａ、Ｂ）は、同じ数のワード線およびビット線を有する。好ましい実施形態では、同じアレイ・サポート回路（例えばワード線ドライバおよびセンス・アンプの構成）が、ＤＲＡＭバンク１２とキャッシュ・バンク１６の両方をサポートすることができる。あるいは、各キャッシュ・バンク１６（ＣＢＡＮＫ  Ａ、Ｂ）がＤＲＡＭバンク１２（ＢＡＮＫ０〜ｎ−１）と少なくとも同数のワード線とビット線を含むのであれば、各ＤＲＡＭバンク１２（ＢＡＮＫ０からｎ−１）および各キャッシュ・バンク１６（ＣＢＡＮＫ  Ａ、Ｂ）に異なるアレイ構成を使用してもよい。
【００１８】
両キャッシュ・バンク１６は、直接マッピングのキャッシュ方式でキャッシュ・タグ１８を共有する。ＤＲＡＭバンク１２の１つの特定のワード線アドレス（例えばワード線０）に関連付けられたデータは、２つのキャッシュ・バンク１６の１つ（ＡまたはＢ）のその特定のワード線に記憶できるが、両方のバンク１６には記憶することができない。これにより、キャッシュ１４が、別のＤＲＡＭバンク１２に新しいデータを書き込むのと同時に、ＤＲＡＭバンク１２の１つからデータを読み出すことが可能になる。キャッシュ・タグ１８の構造を図２に示す。図から分かるように、キャッシュ・タグ１８は、ワード線（番号０〜ｍ）ごとに、ＤＲＡＭバンクのアドレス情報（この例では３ビットの符号化バンク・アドレスとして示す）と、キャッシュ・バンクＣＢＡＮＫ  ＡおよびＣＢＡＮＫ  Ｂのワード線にデータが存在することの指示を記憶する。「Ａ」および「Ｂ」のフラグは、ＣＢＡＮＫ  ＡまたはＣＢＡＮＫ  Ｂに有効データが存在するか、あるいはどちらにも存在しないかを示す。図の例では、ＣＢＡＮＫ  Ａのワード線０は、（ＤＲＡＭ）ＢＡＮＫ０のワード線０にあった有効データを保持している。また、ＣＢＡＮＫ  Ｂのワード線２は、ＢＡＮＫ７、ワード線２にあった有効データを保持し、一方、ＣＢＡＮＫ  Ａのワード線３は、ＢＡＮＫ３、ワード線３にあった有効データを保持している。
【００１９】
２つのライン・バッファ２０はそれぞれ、１ページ分のデータ（すなわちワード）を記憶することができる。ライン・バッファ２０は、レジスタ・アレイで構成することができ、それぞれが別個の入力ポートおよび出力ポートを有する。図３にバッファ・タグ２２の構造を示し、これは、各バッファ２０のバンク・アドレス、行アドレス（この例では８ビットの符号化アドレス）、有効フラグ、および要求フラグを含む。ただし、下記で述べるように、各バッファ２０に関連付けられた行アドレスは、好ましい実施形態では同じであるべきであり、したがって２つのバッファで共有される。有効フラグは、バッファのデータが有効であるかどうかを示す。要求フラグは、バッファ２０（バッファ０またはバッファ１）が、データ・アウト（ＯＣＤ）への読み込みまたはｄａｔａ＿ｉｎ（レシーバ）からの書き出しのために、特定のバンクおよび行アドレスについて以前に要求されたデータを保持しているかどうかを示す。
【００２０】
次いで図４に、各ｄａｔａ＿ｉｎ／ｏｕｔピンについての２つのバッファ２０（バッファ０およびバッファ１）の構造を示す模式図を示す。バッファ２０は、データ線（dataline）上で生じる可能性のあるデータ競合を回避しながら、ＤＲＡＭバンク（ＢＡＮＫ０〜ｎ−１）とキャッシュ１４（ＣＢＡＮＫ  Ａ、Ｂ）間のデータ転送のトラフィックに対処するために使用される。ｄａｔａ＿ｉｎ／ｄａｔａ＿ｏｕｔバス３０（ｄａｔａ＿ｉｎ線３０ａおよびｄａｔａ＿ｏｕｔ線３０ｂを含む）が、それぞれ読み出し／書き込み信号ｇｗ０／ｇｒ０とｇｗ１／ｇｒ１によって制御される、対応する複数の転送ゲート３２を通じてバッファ０とバッファ１の両方に接続される。ｄａｔａ＿ｉｎ／ｄａｔａ＿ｏｕｔバス３０は、ＤＲＡＭシステム１０と、このシステムへの読み書きを行う任意の外部デバイス（顧客）との間の外部インタフェースを提供する。
【００２１】
読み出し補助（secondary）データ線（ＲＳＤＬ）３４は、ＤＲＡＭバンク・アレイ内のセンス・アンプ（ＳＡ）または補助センス・アンプ（ＳＳＡ）（図示せず）の出力を、信号ｒ０で制御される転送ゲート３６を通じてバッファ０に接続する単方向の信号バスである。すなわち、ＤＲＡＭバンク１２の１つからバッファ２０に読み出されるデータはいずれも、ＲＳＤＬ３４を通じてバッファ０に送られる。同様に、ＣＲＳＤＬ（キャッシュ読み出し補助データ線）３８は、キャッシュ１４に関連付けられたセンス・アンプ（ＳＡ）または補助センス・アンプ（ＳＳＡ）（図示せず）の出力を、信号ｒ０で制御される転送ゲート４０を通じてバッファ１に接続する単方向信号バスである。すなわち、キャッシュ・バンク１６の１つからバッファ２０に読み出されるデータはいずれも、ＣＲＳＤＬ３８を通じてバッファ１に送られる。
【００２２】
また、書き込み補助データ線（ＷＳＤＬ）４２は、バッファ０またはバッファ１からの出力データ（outgoing data）をＤＲＡＭバンク１２に接続する単方向信号バスである。これは、信号ｗ００およびｗ１０で制御される多重化転送ゲート４４を通じて行われる。これに対応して、キャッシュ書き込み補助データ線（ＣＷＳＤＬ）４６は、バッファ０またはバッファ１からの出力データをキャッシュ・バンク１６に接続する単方向信号バスである。これは、信号ｗ０１およびｗ１１で制御される多重化転送ゲート４８を通じて行われる。
【００２３】
図５は、ｎ個のＤＲＡＭバンク、２つのＤＲＡＭキャッシュ・バンク、および２つのバッファ間の、データ線ＷＳＤＬ、ＲＳＤＬ、ＣＷＳＤＬ、およびＣＲＳＤＬの例示的な接続を示す模式図である。例として、データ線の幅は１２８ビットとする。
【００２４】
このバッファ構造は、図４に図示するレベル・センシティブ（level sensitive）・ラッチを使用することによって実施されるが、下記で述べるように、エッジ・トリガ（edgetriggered）・ラッチおよびパイプライン方式のタグ比較に基づく代替方式を実施してもよい。さらに、本実施形態では、図４のバッファ構造は以下のように定義されることに留意されたい。ＤＲＡＭバンク１２からの入力データ（incomingdata）は常にバッファ０に記憶される。キャッシュ・バンク１６からの入力データは常にバッファ１に記憶される。バッファ０およびバッファ１からの出力データは、ＤＲＡＭバンク１２かキャッシュ・バンク１６のいずれかに送ることができる。ただし、この構造は逆にして、ＤＲＡＭバンク１２またはキャッシュ・バンク１６からバッファに入るデータをどちらかのバッファに記憶し、対して、特定のバッファから書き出されるデータはＤＲＡＭバンクまたはキャッシュ・バンク１６のいずれかのみに送られるようにしてもよいことは理解されよう。
【００２５】
ＤＲＡＭシステム１０の動作を理解するために、シングル・クロック・サイクル動作について以下で述べ、１／４クロックのセットアップ・タイム分のコマンドとアドレス信号をタグ比較に使用すると想定する。シングル・サイクル動作とは、各ＤＲＡＭバンク（キャッシュ・バンクを含む）が、１クロック・サイクルで読み出しまたは書き込み動作を完了できることを意味する。各クロック・サイクルで、ＤＲＡＭバンクからの読み出し動作はわずか１回、キャッシュ・バンクからの読み出し動作はわずか１回、ＤＲＡＭバンクへの書き込み動作はわずか１回、キャッシュ・バンクへの書き込み動作はわずか１回である。したがって、各サイクル中にＤＲＡＭバンクとキャッシュの間で最高４回の個々の読み出し動作または書き込み動作を行うことができ、同時に２つのバッファとの正常な通信を可能にする。各データ転送動作に伴い、２つのバッファの１つを通じて通信が可能にされる。
【００２６】
図６は、本システム構成で許される４つの可能なデータ転送動作各々の例を示す表である。例えば、ＢＡＮＫ２のワード線４（ｂａｎｋ２＿ｗｌ４と略記する）に記憶されたデータに対するランダム・アクセス要求中には、次の動作を行うことができる。
【００２７】
（１）それまでバッファ０（ｂａｎｋ０＿ｗｌ２）にあったデータをＢＡＮＫ０に戻す。
【００２８】
（２）ｂａｎｋ２＿ｗ１４からバッファ０にデータを移動する。
【００２９】
（３）それまでバッファ１（ｂａｎｋ３＿ｗｌ２）にあったデータをキャッシュ・バンク（例えばＣＢＡＮＫ  Ａ）に移動する。
【００３０】
（４）ＣＢＡＮＫ  Ｂのワード線４（ｂａｎｋ０＿ｗｌ４）のデータをバッファ１に移動する。
【００３１】
少なくとも２つのＤＲＡＭバンク、２つのバッファ、および２つのキャッシュ・バンクがあるので、上記の４つのデータ転送動作はすべて同時に可能にすることができる。
【００３２】
下記でさらに詳細に説明するように、上記の１クロック・サイクル中の一連の例示的動作は、一般には、要求されるコマンド（ある場合）とデータの既存の状態に基づいて決定される。一連の許容できる状態が定義され、許容できる状態の規則を支持するアルゴリズムが実装される。図６に示す上記の例に関しては、ｂａｎｋ２＿ｗｌ４のデータに対する要求の直前に、バッファ０は当初、ＤＲＡＭバンク０の２番目のワード線（ｂａｎｋ０＿ｗｌ２）に関連付けられたセルから以前に読み出されたデータ・ビットを保持している。また、バッファ１は当初、ＤＲＡＭバンク３の２番目のワード線（ｂａｎｋ３＿ｗｌ２）に関連付けられたセルから以前に読み出されたデータ・ビットを保持している。キャッシュ・タグ１８は、キャッシュ・バンクの各ワード線に関連付けられたバンク・アドレス情報と、ＡまたはＢバンクに有効データがあるかどうかとを保持する。詳細には、上記の例では、キャッシュ・バンクＢが初めに、ＤＲＡＭバンク０の４番目のワード線（ｂａｎｋ０＿ｗｌ４）から以前読み出されたデータ・ビットを保持していると仮定する。これらの初期状態はすべて、１つ前のクロック・サイクルから分かる。
【００３３】
セットアップ・タイム中に新しいコマンド（Ｒｅｑｕｅｓｔ  ｂａｎｋ２＿ｗｌ４）が受け取られると、タグ比較が行われる。このタグ比較で、要求されるデータがバッファ・ヒットであるか、キャッシュ・ヒットであるか、またはバッファ・ミスかつキャッシュ・ミス（すなわちＤＲＡＭバンク・ヒット）であるかを判定する。この例では、要求されるデータは、バッファにもキャッシュにもなく、したがって比較の結果はＤＲＡＭバンク・ヒットと考えられる。すなわち、要求されるデータは、実際にはＤＲＡＭバンクの指定される位置にある。タグ比較では、要求されるデータの場所を特定することに加えて、どちらかのキャッシュ・バンクの、要求と同じワード線アドレス（ｗｌ４）に有効データがあるかどうかも調べる。この例では結果として、ＤＲＡＭバンク０のワード線４（ｂａｎｋ０＿ｗｌ４）にあった有効データがキャッシュ・バンクＢに見つかる。
【００３４】
本システムは直接マッピング方式のスケジューリングを採用するので、ｂａｎｋ０＿ｗｌ４からのデータ・ビットは、将来のスケジューリングのためにどちらのキャッシュ・バンクにも記憶してはならない。したがって、ｂａｎｋ０＿ｗｌ４からのデータ・ビットは、バッファ１に転送すべきことになる。一方、要求されるデータｂａｎｋ２＿ｗｌ４は、続いて顧客によって取り出されるためにバッファ０に転送する必要がある。しかし、当初バッファ０（ｂａｎｋ０＿ｗｌ２）にあるデータを、要求中のバンクとは異なるＤＲＡＭバンクのその場所（すなわちＢＡＮＫ０のワード線２）にまず戻さなければならない。両方のバッファに有効データがあるので、それらバッファの１つが、要求されるＤＲＡＭバンクと同じ数でないＤＲＡＭバンク番号に関連付けられる。バッファ０が最初に調べられ、タグ比較を通じて、バッファ０が要求と同じＤＲＡＭバンク番号に関連付けられていないことが判定され、したがってバッファ０のデータはＤＲＡＭバンク０に送り返される。もう一方のバッファのデータ、すなわちバッファ１のｂａｎｋ３＿ｗｌ２のデータ・ビットは、キャッシュ・バンクＡに転送される。
【００３５】
本システムの基本的なデータ転送原理は、同じワード線番号を有する最高２つのデータ・ページを２つのバッファに対として記憶するものである。１つのバッファは要求されるデータ・ページに使用され、もう一方のバッファは、必要な場合に、キャッシュから有効なデータ・ページ（要求されるデータと同じワード線アドレスに対応する特定のワード線アドレスを有する）を転送して、将来のサイクルでデータのオーバーフローを防止するために使用される。このペアリング規則に従う限り、バンク・データを損失することなく、データ転送の整合性が完全に保たれる。
【００３６】
次いで図７に、図４に示すバッファ構造の動作を説明するタイミング図を示す。ここでも、新しい要求に対応するコマンド、アドレス、およびデータについてセットアップ・タイムが想定される。関連付けられたロジックが比較的単純なので、少量の時間（例えば０．１３マイクロ技術で約０．５ナノ秒）で十分である可能性がある。セットアップ・タイムを設定しない場合は、内部のＤＲＡＭ動作に、遅延クロックを実施することができる。セットアップ・タイム中に、アドレス情報（ａｄｄ）がタグ比較に使用され、コマンド（ｃｍｄ）を使用してデータ転送の要求が存在するかどうかを調べる。またコマンドは次のクロックにパイプラインされ、読み出し（書き込み）の待ち時間１の動作におけるように、次いでデータ・バッファから（またはデータ・バッファに）読み出し（または書き込み）のコマンドが行われる。このレベル・センシティブ・ラッチ方式では、図４の「ｗ」ゲート４４がクロック・サイクルの初め半分はオンにされ、クロック・サイクルの後の半分でオフにされて、それによりデータを１クロックでＷＳＤＬ４２に送信し、ラッチできるようにする。「ｒ」ゲート３６、４０はクロック・サイクルの後の半分でオンにされ、マクロの読み出し待ち時間が１クロック・サイクル未満なるように想定されるので、ＤＲＡＭバンクの有効データが入れるようにする。次いで、次のサイクルの立ち上がりエッジ時にそのデータがレジスタ・バッファにラッチされる。読み出しコマンドが受け取られた場合は、（要求されるアドレスに関連付けられた）バッファからｄａｔａ＿ｏｕｔ線３０ｂにデータが読み出される。書き込みコマンドが受け取られた場合は、ｄａｔａ＿ｉｎ線３０ａから、要求されるアドレスに関連付けられたバッファにデータが書き込まれる。
【００３７】
要求が読み出しであるか、書き込みであるか、またはビット・マスクを伴う書き込みであるかに関係なく、ここに提案するランダム・アクセス・メモリ・システムでは、内部動作により、初めに、要求されるワード線に関連付けられたデータ・ページをバッファの１つに移し、そのバッファで読み出し（ｄａｔａ＿ｏｕｔ３０ｂへのデータのコピー）、または書き込み（データ・ページをｄａｔａ＿ｉｎ３０ａの入力で更新する）が行われることに留意されたい。ｄａｔａ＿ｉｎ線およびｄａｔａ＿ｏｕｔ線、制御ゲートｇｗ０、ｇｗ１、ｒｗ０、ｒｗ１における動作を除いて、ＤＲＡＭバンク、キャッシュ、およびバッファのスケジューリング・アルゴリズムとデータ移動は、読み出し要求および書き込み要求について全く同じである。
【００３８】
ポジティブ・クロック・エッジ・トリガ・ラッチ５２に基づく代替のバッファ方式５０を図８に示す。この方式では、よりＡＳＩＣの方法論に合致するように、１クロック・サイクルをタグの読み出しと比較に使用する。図９に、１クロックのタグ比較を使用した、図８のクロック・エッジ・トリガ設計に沿ったタイミング・フローを示す。この実施形態における読み出し待ち時間は２クロックである。図９に示すように、２つの連続したコマンド（要求１および要求２）が順次スタックされ、シームレスなパイプライン方式で実行されることに気づかれよう。説明の次の項では、ＤＲＡＭシステム１０専用に設計された経路に依存しないアルゴリズムを実装することにより、どのようなランダム・シーケンスのシームレス・スタッキングも可能であることを述べる。
【００３９】
ＩＩ．スケジューリング・アルゴリズム
上記の破壊読み出し型キャッシュを有する破壊読み出し型ＤＲＡＭアレイのアーキテクチャをうまく使用するために、システムがどの新しいランダム・アクセス要求の後にも許容可能な状態に維持されるように適切なスケジューリング方式を実施しなければならない。一般的な手法は、まず許容できる状態を定義し、その許容できる状態に合致するようにシステムを初期化し（初期設定）、所与のデータ転送動作が行われた後に許容可能な状態が維持されていることを保証する（システムの連続性（continuity））ものである。
【００４０】
許容できる状態の規則（ストロング・フォーム（strong form））
好ましい実施形態では、許容可能な状態の「ストロング・フォーム」規則を定義し、この規則は、両方のバッファに有効データを保持する対称アルゴリズムを特徴とし、そのデータは、ワード線アドレスは同じであるが、異なるＤＲＡＭバンクにあったものである。したがって、毎クロック・サイクルの立ち上がりエッジ時に、次の規則が満たされなければならない。
【００４１】
規則＃１−  ２つのバッファそれぞれに、相互に共通のワード線アドレスを有するデータ・ワードが記憶されている。それらバッファの２つのデータ・ワードの１つは、１つ前のランダム・アクセス要求のバンク・アドレスおよびワード線アドレスに対応する特定のデータである。
【００４２】
この規則の一例として、例えば、バッファ０が、ＤＲＡＭバンク２のワード線３から読み出されたデータを含み（１つ前のサイクルで要求された）、一方バッファ１は、以前にキャッシュ（キャッシュ・バンクＡまたはキャッシュ・バンクＢ）のワード線３から読み出され、バンク４のワード線３に関連付けられたデータを含む。
【００４３】
規則＃２−  キャッシュには、上記のワード線アドレス（すなわちバッファ中のデータに関連付けられた特定のワード線アドレス）に現在関連付けられた有効データはない。
【００４４】
上記の例を続けると、キャッシュ・バンクＡもキャッシュ・バンクＢも、ワード線アドレス３には有効データが記憶されていないことになる。すなわち、キャッシュ・タグのワード線３ではＡ＝０かつＢ＝０になる。
【００４５】
規則＃３−  バッファのワード線アドレスに対応するワード線アドレス以外のすべてのワード線アドレスについては、１つのみのキャッシュ・バンクに１つのみの有効データ・ワードが記憶される。
【００４６】
したがって、上の例では、ワード線アドレス３以外のすべてのワード線アドレスについて、（Ａ＝１かつＢ＝０）または（Ａ＝０かつＢ＝１）のいずれかとなる。
【００４７】
規則＃１では、（読み出しまたは書き込みのために）要求されるバンクおよびワード線アドレスに関連付けられたデータ・ページは、該当する読み出しおよび書き込み動作について、次のクロック・サイクルにバッファに到着することにも留意されたい。上記で概説した許容可能な状態の規則を考慮すると、どのランダム・アクセス要求（読み出し／書き込み）に対しても、予め定義された手順を実行して、その手順の下でここに提案されるシステムが初期化され、またその後どのクロック・サイクルについても許容できる状態に維持されることが可能である。
【００４８】
初期設定
ストロング・フォーム・アルゴリズムの最初の部分は、初期化手順から開始する。システムの電源投入後、バッファ・タグ２２（図３。上記で説明）が次のように設定される。（１）バッファ０およびバッファ１の有効フラグを「１」に設定する。（２）行アドレスがワード線０に対応する。（３）バッファ０のバンク・アドレスはバンク１。（４）バッファ１のバンク・アドレスはバンク０。および、（５）それより前に要求がないので両バッファの要求フラグは０。
【００４９】
また、システムの電源投入に続き、ワード線０を除いて、キャッシュ・タグ１８のキャッシュ・バンクＡの各フラグはＡ＝１に初期化され、一方、キャッシュ・タグ１８のすべてのバンク・アドレスはバンク０に設定される。キャッシュ・バンクＢの各フラグは、Ｂ＝０に初期化される。上記のようにバッファおよびキャッシュ・タグを設定することにより、バッファ０は、ｂａｎｋ１＿ｗｏｒｄｌｉｎｅ０に関連付けられ有効データ・ワードに対応し、一方、バッファ１は、ｂａｎｋ０＿ｗｏｒｄｌｉｎｅ０に関連付けられた有効データ・ワードに対応する。最後に、ワード線０に対応する有効データがないことを除いて、デュアル・バンク・キャッシュのすべての他のワード線は、キャッシュ・バンクＡのバンク０に関連付けられた有効データを有する。したがって、上述のストロング・フォーム規則が初めに満たされる。
【００５０】
連続性
初期化に続き、クロック・サイクルの立ち上がりエッジの直前にランダムの読み出しまたは書き込み要求が行われると仮定する。クロック・サイクルの立ち上がりエッジ時に、ランダム・アクセス要求（読み出しまたは書き込み）を以下ではＸｊと表記し、「Ｘ」はバンク・アドレスであり、「ｊ」はワード線の番号（アドレス）である。用語Ｄｉは、初めにバッファ０に記憶されているデータ・ページを表すものとし、「Ｄ」はバンク・アドレスであり、「ｉ」はワード線番号である。用語Ｑｉは、バッファ１に初めに記憶されているデータ・ページを表すものとし、「Ｑ」はバンク・アドレスであり、「ｉ」がワード線番号である。上記の規則＃１に従うと、すべての事例でＤ≠Ｑとなり、ワード線番号（ｉ）は、バッファ０とバッファ１で同じになることに気づかれよう。
【００５１】
規則＃２および＃３の場合も同様に、所与のワード線番号ｋ≠ｉについて、ワード線ｋに関連付けられた１つのみの有効データ・ページがキャッシュに記憶されている。用語Ｃ（ｋ）は、本明細書では、キャッシュ・タグのワード線ｋの対応バンク・アドレスとする。したがって、どの所与の要求Ｘｊについても、関連付けられたＤＲＡＭバンク、２つのバッファの１つ、またはキャッシュにデータが見つかることになる。以下に、３つの一般的な可能なシナリオそれぞれで実行される、結果的に行われるデータ転送動作を具体的に説明する。
【００５２】
事例１−  バッファ・ヒット
この場合はｊ＝ｉ、かつ、Ｘ＝ＤまたはＸ＝Ｑになる。すなわち、要求されるデータは、すでにバッファ０またはバッファ１に記憶されている。許容可能な状態の規則がすでに満たされているので、このクロック・サイクルではそれ以上データ転送は実施されない。これは、図１０の状態図で変化がないことに反映される。
【００５３】
事例２−  キャッシュ・ヒット
要求されるデータＸｊがキャッシュに保持されている場合は、Ｊ≠ｉとなる（規則＃２により）。すなわち、要求されるデータのワード線番号が、バッファのデータのワード線に対応しない。さらに、１ページ分のデータが２つのバンク・アドレスに対応することはできないので、Ｘ≠ＤまたはＸ≠Ｑ、あるいはその両方となる。
【００５４】
Ｘ≠Ｄの場合は、Ｄｊに対応するデータは（先の段落から）バッファにも、キャッシュにも（規則＃３により）なく、したがってＤｊのデータは、対応するＤＲＡＭバンクにある。次いで、以下のステップを実施して、上記の許容できる状態についての規則に従う。
【００５５】
一方のキャッシュ・バンク（ＡまたはＢ）からバッファ１にＸｊを移動する。
【００５６】
バッファ０からもう一方のキャッシュ・バンク（ＢまたはＡ）にＤｉを移動する。
【００５７】
バッファ１からＤＲＡＭバンクＱにＱｉを移動する。
【００５８】
ＤＲＡＭバンクＤからバッファ０にＤｊを移動する。
【００５９】
この一連のデータ移動を図１１に示す。一方、Ｘ＝Ｄの場合は、Ｘ≠Ｑが真でなければならないことになり、Ｑｊのデータが対応するＤＲＡＭバンクに見つかる。したがって、次いで以下のステップが実施される。
【００６０】
一方のキャッシュ・バンク（ＡまたはＢ）からバッファ１にＸｊを移動する。
【００６１】
バッファ１からもう一方のキャッシュ・バンク（ＢまたはＡ）にＱｉを移動する。
【００６２】
バッファ０からＤＲＡＭバンクＤにＤｉを移動する。
【００６３】
ＤＲＡＭバンクＱからバッファ０にＱｊを移動する。
【００６４】
この一連のデータ移動を図１２に示す。
【００６５】
事例３ａ−  バッファ・ミス、キャッシュ・ミス、ｊ＝ｉの場合
要求されるデータＸｊがバッファにもキャッシュにもない場合は、それ（Ｘｊ）は、対応するＤＲＡＭバンクにある。ｊ＝ｉなので、Ｘ≠Ｄも真であることになる。したがって、図１３に示すように、これに沿った動作を２ステップで行うことができる。
【００６６】
ＤＲＡＭバンクＸからバッファ０にＸｊを移動する。
【００６７】
バッファ０からＤＲＡＭバンクＤにＤｉを移動する。
【００６８】
事例３ｂ−  バッファ・ミス、キャッシュ・ミス、ｊ≠ｉ、Ｘ≠Ｄの場合
この場合も、要求されるデータは、対応するＤＲＡＭバンクにある。しかし、要求されるデータのワード線アドレスは、バッファのデータのワード線アドレスと異なる。許容可能な状態の規則では、キャッシュ・バンクの１つに記憶された行アドレスｊに有効なＣｊが存在する。Ｘ≠Ｄなので、要求されるデータのバンク・アドレスは、バッファ０のデータのバンク・アドレスと異なり、以下のステップが実施される。
【００６９】
ＤＲＡＭバンクＸからバッファ０にＸｊを移動する。
【００７０】
一方のキャッシュ・バンク（ＡまたはＢ）からバッファ１にＣｊを移動する。
【００７１】
バッファ１からもう一方のキャッシュ・バンク（ＢまたはＡ）にＱｉを移動する。
【００７２】
バッファ０からＤＲＡＭバンクＤにＤｉを移動する。
【００７３】
この一連のデータ移動を図１４に示す。
【００７４】
事例３ｃ−  バッファ・ミス、キャッシュ・ミス、ｊ≠ｉ、Ｘ＝Ｄ、Ｘ≠Ｑの場合
この事例と上述の事例３ｂとの唯一の違いは、要求されるデータのバンク・アドレスが、バッファ０に保持されるデータのバンク・アドレスと同じである（すなわちＸ＝Ｄ）点である。しかし、要求されるデータのバンク・アドレスが、バッファ１に保持されているデータのバンク・アドレスと異なる（すなわちＸ≠Ｑ）ことが真でなければならない。したがって、図１５に示すように以下のステップが実施される。
【００７５】
ＤＲＡＭバンクＸからバッファ０にＸｊを移動する。
【００７６】
一方のキャッシュ・バンク（ＡまたはＢ）からバッファ１にＣｊを移動する。
【００７７】
バッファ０からもう一方のキャッシュ・バンク（ＢまたはＡ）にＤｉを移動する。
【００７８】
バッファ１からＤＲＡＭバンクＱにＱｉを移動する。
【００７９】
この初期化手順の代替実施形態は、システムが、データを長い時間にわたってバッファに記憶しないことにより、ソフト・エラー・レート（ＳＥＲ）を低下させるのを助ける際に有用である可能性がある。そのような実施形態では、システムの電源投入後、キャッシュ・タグ１８のキャッシュ・バンクＡの各フラグをＡ＝１に初期化し、一方、キャッシュ・タグ１８のすべてのバンク・アドレスを同じアドレス（例えば０００）に設定し、タグ・バッファ２２の有効フラグを両方とも「０」に設定する。
【００８０】
次いで図１６に、上述の初期化手順に対応する状態図も示しており、ここでは、最初の要求がキャッシュ・ヒット（Ｃｉ）の場合は、キャッシュからバッファ１にそのデータが移動され、キャッシュ・ミスおよびバッファ・ミス（Ｄｉ）の場合は、ＤＲＡＭバンクＤからバッファ０にデータが移動される。
【００８１】
最後に、図１７は、所与のクロック・サイクル中に要求が受け取られない場合に行うことが可能なオプションのデータ移動動作の状態図である。ソフト・エラーの可能性があるので、顧客（外部デバイス）から要求がない場合はバッファにデータを記憶したままにしないことが望ましい場合がある。この場合、バッファ０のデータＤｉはＤＲＡＭバンクＤに戻され、一方、バッファ１のデータＱｉはキャッシュ・バンクの１つに送られる。
【００８２】
許容可能な状態の「ストロング・フォーム」規則に基づく上記のデータ移動アルゴリズムは、常に両方のバッファに有効データを保持させることにより、要求されるデータを１クロック・サイクル中にバッファの１つに転送することができ、同時にシステムを許容可能な状態に保つ点で有用である。上記で概説した各種の可能性から分かるように、最高でも４回のデータ転送動作しか行われず、データ転送のロジックは比較的実施が容易である。ただし、ストロング・フォームの規則は、そのシステム実施におけるパフォーマンス、能力、およびロジック・ゲートの数の間のトレードオフに合わせて一般化することができる。したがって、「ジェネラル・フォーム（general form）」のアルゴリズムもここに提示する。
【００８３】
簡単に述べると、「ジェネラル・フォーム」は、バッファ内の許容可能な状態をより多く可能にし、それにより必要なデータ転送動作の回数を減らす。その結果、デバイス中で消費（dissipate）される電力が低減する。一方、トレードオフは、許容可能な状態の増加に対応するために余分なロジックが用いられることである。比較として、図１８は、ストロング・フォーム規則に基づく許容可能な状態を示す表であり、一方図１９〜２２は、ジェネラル・フォーム規則に基づく許容可能な状態を示す。図から分かるように、バッファ０および１が有効なデータを含むのに加えて、いずれかのバッファまたは両方のバッファが空の可能性もある。ジェネラル・フォームの場合の許容可能な状態の規則は、以下のように要約することができる。
【００８４】
許容可能な状態の規則（ジェネラル・フォーム）
規則＃１−  ２つ以下の有効データ・ページを２つのバッファに置くことができる。偶然各バッファが有効データを保持している場合は、各バッファのデータは同じワード線アドレスを有する。ただし、１つ前のサイクルでランダム・アクセス要求が行われた場合は、バッファの１つは、１つ前のそのランダム・アクセス要求に対応するデータを含んでいなければならない。
【００８５】
規則＃２−  バッファのいずれかまたは両方が（特定のワード線アドレスに関連付けられた）有効なデータ・ページを保持している場合は、キャッシュにはそれと同じワード線アドレスを有する有効データは記憶されていない。
【００８６】
規則＃３−  規則＃２で述べた特定のワード線アドレス以外のすべてのワード線アドレスについて、そのワード線アドレスに関連付けられた最高１つの有効なデータ・ワードが１つのみのキャッシュ・バンクに記憶されている。すなわち、有効フラグ（図３）とともにバッファ・タグに記憶されたワード線アドレス以外のすべてのワード線アドレスについては、ＡとＢ（図２）が同時に１に等しくなることはできない。
【００８７】
ストロング・フォーム方式と対照的に、上述のジェネラル・フォーム規則の下では、低電力方式を実施して必要とされる移動回数を低減する。例えば、先に説明したキャッシュ・ヒットの事例（事例２）では、許容可能な状態のストロング・フォーム規則によるＤＲＡＭバンクからバッファへのデータ転送は、ジェネラル・フォームの許容可能な状態の規則の下では不必要になる。また、ジェネラル・フォームの許容可能な状態の規則では、少し前で説明したデータ移動の開始点である特定の有効データ・ワード（例えばＤｉ、Ｑｉ、およびＣｊ）が、ランダム・アクセス要求中に初期のシステム状態にない可能性がある。したがって、もう一方のバッファとの間で行われる対称的な移動はもはや必要でなくなる。
【００８８】
ジェネラル・フォーム規則では、必要とされるデータ移動の最小回数は、特定のサイクルごとに決定される。最初にバッファの１つのみが有効なデータ・ページを保持している場合には、そのページをキャッシュまたはＤＲＡＭバンクのどちらにも送れることに気づかれよう。ただし、好ましい実施形態では、選択される動作は、ＤＲＡＭバンクにデータを移動する動作である。代わりにキャッシュにデータを移動すると、同じワード線アドレスを有するＤＲＡＭバンクのヒットが後にあった場合に、そのデータをキャッシュからバッファに移動しなければならなくなる。ＤＲＡＭバンク・ヒット（バッファ・ミスかつキャッシュ・ミス）は、ランダム・アクセス要求時に生じる可能性が統計的に最も高い事象なので、移動動作の回数を減らすために、可能な時にはバッファからＤＲＡＭバンクにデータを移動した方がよいことになる。ｎがシステムにおけるＤＲＡＭバンクの総数を表し、ｍがＤＲＡＭバンク１つ当たりのワード線の数を表すとすると、１回の要求時のバッファ・ヒットの確率は、２／（ｎ＊ｍ）未満であり、一方キャッシュ・ヒットの確率は１／ｎ未満になる。逆に、ＤＲＡＭバンク・ヒット（バッファ・ミスかつキャッシュ・ミス）の確率は、およそ（ｎ−１）／ｎになる。したがって、ｎとｍの値が大きいほど、ランダム・アクセス動作についてＤＲＡＭバンク・ヒットの確率が高くなる。ジェネラル・フォーム下での初期化手順は、より従来型のシステムとして実現することができる。例えば、キャッシュおよびバッファのすべての有効フラグを「０」に設定することにより、すべての有効データを通常のＤＲＡＭバンクに入れることができる。
【００８９】
以下の方法論は、ジェネラル・フォーム規則によって支配されるデータ転送動作を概説する。ランダム・アクセス要求が受け取られない場合は、ＤｉまたはＱｉの１つ（どちらかがバッファ０またはバッファ１にある場合）が各自のＤＲＡＭバンク（ＤＲＡＭバンクＤまたはＤＲＡＭバンクＱ）に戻される。ランダム・アクセス要求Ｘｊが受け取られた場合は、ジェネラル・フォーム規則で概説したように、初めに、バッファ０に有効なＤｉがあるか、バッファ１に有効なＱｉがあるか、キャッシュに有効なＣｊがあるか、またはそれらの組合せの可能性がある。可能性のある事例は以下の通りである。
【００９０】
事例１−  バッファ・ヒット
ストロング・フォーム規則と同様に、ｊ＝ｉ、かつ、Ｘ＝ＤまたはＸ＝Ｑである。すなわち、要求されるデータは、定義上バッファ０かバッファ１にすでに記憶されている。許容可能な状態についてのジェネラル・フォーム規則がすでに満たされているので、このクロック・サイクルではそれ以上データ転送は実施されない。これは、図２３の状態図で変化がないことに反映される。
【００９１】
事例２−  キャッシュ・ヒット
要求されるデータＸｊをキャッシュ・バンクの１つのその現在の場所からバッファ１に移動することが求められる。どちらかのバッファまたは両方のバッファに有効データがある場合は、可能であれば、好ましくは対応するＤＲＡＭバンクにそのデータが移動される。２つのバッファのステータスに関係なく、
【００９２】
一方のキャッシュ・バンク（ＡまたはＢ）からバッファ１にＸｊを移動する。
【００９３】
ここで両方のバッファに有効なデータがある場合は、さらに以下の動作が行われる。
【００９４】
バッファ０からもう一方のキャッシュ・バンク（ＢまたはＡ）にＤｉを移動し、
【００９５】
バッファ１からＤＲＡＭバンクＱにＱｉを移動する。
【００９６】
そうでなく、２つのバッファのうち１つのみに有効データがある場合は、
【００９７】
バッファ０からもう一方のキャッシュ・バンク（ＡまたはＢ）にＤｉを移動するか、または
【００９８】
バッファ１からもう一方のキャッシュ・バンク（ＢまたはＡ）にＱｉを移動する。
【００９９】
無論、初めにどちらのバッファにも有効データがない場合は、キャッシュからバッファ１にＸｊを移動する以外の動作は行われない。上記の一連のデータ移動を図２４および２５に示す。
【０１００】
事例３ａ−  バッファ・ミス、キャッシュ・ミス、ｊ＝ｉ、少なくとも１つのバッファに有効データがある場合
要求されるデータがバッファにもキャッシュにもない場合は、それ（Ｘｊ）は、対応するＤＲＡＭバンクにある。少なくとも１つのバッファが最初に有効データを有すると仮定し、さらにｊ＝ｉと仮定すると、ＤｉまたはＱｉが存在する場合にはＸ≠ＤおよびＸ≠Ｑも真であることになる。したがって、図２６に示すように、この状態に沿った動作を２回の移動で行うことができ、ここではＤｉが存在すると仮定する。
【０１０１】
ＤＲＡＭバンクＸからバッファ０にＸｊを移動する。
【０１０２】
バッファ０からＤＲＡＭバンクＤにＤｉを移動する。
【０１０３】
事例３ｂ−  バッファ・ミス、キャッシュ・ミス、Ｊ≠ｉ、少なくとも１つのバッファに有効データがある場合
この場合も、要求されるデータは、対応するＤＲＡＭバンクに見つかる。ただし、要求されるデータのワード線アドレスは、１つまたは両方のバッファにあるデータのワード線アドレスと異なる。許容可能な状態の一般的規則の下では、キャッシュ・バンクの１つに記憶された、行アドレスｊについて有効なＣｊが存在する可能性がある。まず、Ｃｊ、Ｄｉ、およびＱｉがそれぞれ最初に存在すると仮定する。そのため、Ｘ≠ＤまたはＸ≠Ｑが真であるか、あるいはその両方が真であることになる。Ｘ≠Ｄの場合は、以下のステップが実施される。
【０１０４】
ＤＲＡＭバンクＸからバッファ０にＸｊを移動する。
【０１０５】
一方のキャッシュ・バンク（ＡまたはＢ）からバッファ１にＣｊを移動する。
【０１０６】
バッファ１からもう一方のキャッシュ・バンク（ＢまたはＡ）にＱｉを移動する。
【０１０７】
バッファ０からＤＲＡＭバンクＤにＤｉを移動する。
【０１０８】
しかし、Ｘ＝Ｄの場合はＸ≠Ｑとなり、以下のステップが実施される。
【０１０９】
ＤＲＡＭバンクＸからバッファ０にＸｊを移動する。
【０１１０】
一方のキャッシュ・バンク（ＡまたはＢ）からバッファ１にＣｊを移動する。
【０１１１】
バッファ０からもう一方のキャッシュ・バンク（ＢまたはＡ）にＤｉを移動する。
【０１１２】
バッファ１からＤＲＡＭバンクＱにＱｉを移動する。
【０１１３】
Ｃｊが存在し、ＤｉおよびＱｉのうち１つのみが存在する場合は、対応する移動の開始点が存在しないので、そのような移動は行われない。最終的な結果は、なおジェネラル・フォーム規則に従う。
【０１１４】
次いで、Ｃｊが存在しないが、ＤｉとＱｉがともに存在すると仮定する。すると、Ｘ≠Ｄの場合は以下のステップが実施される。
【０１１５】
ＤＲＡＭバンクＸからバッファ０にＸｊを移動する。
【０１１６】
バッファ１からどちらかのキャッシュ・バンク（ＡまたはＢ）にＱｉを移動する。
【０１１７】
バッファ０からＤＲＡＭバンクＤにＤｉを移動する。
【０１１８】
そうでなく、Ｘ＝Ｄの場合は、Ｘ≠Ｑとなり、以下のステップが実施される。
【０１１９】
ＤＲＡＭバンクＸからバッファ０にＸｊを移動する。
【０１２０】
バッファ０からどちらかのキャッシュ・バンク（ＡまたはＢ）にＤｉを移動する。
【０１２１】
バッファ１からＤＲＡＭバンクＱにＱｉを移動する。
【０１２２】
ここで、Ｃｊが存在せず、バッファに有効なデータ・ページが１つのみある場合（Ｄｉが存在するか、またはＱｉが存在するかのいずれかで、両方は存在しない場合）、かつＸがバッファ・データに対応しない（Ｘ≠ＤまたはＸ≠Ｑ）場合は、以下のステップが実施される。
【０１２３】
ＤＲＡＭバンクからバッファ０にＸｊを移動する。
【０１２４】
有効なバッファ・データを、対応するＤＲＡＭバンクに移動する。
【０１２５】
そうでなく、バッファ中の１つの有効データ・ページがＸに対応する場合（Ｘ＝ＤまたはＸ＝Ｑ）は、以下のステップが実施される。
【０１２６】
ＤＲＡＭバンクからバッファ０にＸｊを移動する。
【０１２７】
キャッシュ・バンク（ＢまたはＡ）に有効なバッファ・データを移動する。
【０１２８】
最後に、Ｃｊ、Ｄｉ、またはＱｉのいずれも存在しない場合は、行われる唯一の動作は、Ｘｊをバッファ０に移動することである。
【０１２９】
この一連のデータ移動を図２７および２８に示す。
【０１３０】
以上、破壊読み出し型ＤＲＡＭを利用したキャッシュを破壊読み出し型ＤＲＡＭアレイと併せて使用して、アレイへのランダム・アクセス・サイクル時間を短縮する方式について説明した。本システムは、諸利点の中でも特に、ＳＲＡＭキャッシュを用いるシステム等の他のシステムを上回る、大幅な面積の節減、プロセス統合時の互換性、およびソフト・エラー問題の低減を提供する。
【０１３１】
このシステム・アーキテクチャ固有の要点の１つとして、同時の読み出しアクセス動作と書き込みアクセス動作を実行することが可能なデュアル・バンク・キャッシュ構造が挙げられる。また、このアーキテクチャは、データ転送をリダイレクトするために使用される２つのバッファも含む。キャッシュ・タグとバッファ・タグは、現在の状態で記憶されたデータ・ページに関連付けられたすべての情報を含み、それにより、次のクロック・サイクルについてデータ移動の決定性の決定を行うための十分な情報を表す。したがって、タグに履歴データを記憶する必要はない。
【０１３２】
許容可能な状態の概念を定義する（ストロング・フォーム規則およびジェネラル・フォーム規則により例示した）ことにより、後に行われるすべてのデータ移動が現在の状態に先立つ履歴ではなく現在の状態のみに依存して行われるように、経路に依存しないアルゴリズムを設計することができる。連続した動作のシーケンスはともにスタックすることができ、したがってすべてのランダム・アクセスをシームレスに行うことができる。さらに、要求されるデータは、限られた数のサイクルで最終状態に達する（すなわち、要求されるデータは、セットアップ・タイムが使用される場合は１クロック・サイクルでバッファに到達し、あるいはタグ比較に１クロックのパイプが使用される場合は２クロック・サイクルでバッファに到達する）。経路の非依存性という性質と、ランダム・アクセス要求が限られたサイクルで完了されるという事実から、限られた数のテスト・ケースしか存在しない。したがって、このＤＲＡＭキャッシュ・システムは、テスト・ベンチ設計で完全に検証することができる。
【０１３３】
先に述べたように、ストロング・フォーム規則に基づく許容可能な状態は、ジェネラル・フォーム規則による許容可能状態の部分集合である。したがって、ストロング・フォーム規則と併せて使用される「対称アルゴリズム」は、一般にはより単純なロジックを含むが、電力消費はより高くなる。「低電力」アルゴリズムは、電力消費は低いが、一般にはより長いタグ比較時間が伴う、より多くの論理コンポーネントを有する。ただし、本発明の実施形態は、経路の非依存性が維持される限りは、許容できる状態についての他の可能な規則とそれに関連付けられたアルゴリズムも企図することに留意されたい。
【０１３４】
さらに、この破壊読み出し型メモリによってキャッシュされる破壊読み出し型ランダム・アクセス・メモリ・システムでは、キャッシュとして使用されるＤＲＡＭバンクの数は３つ以上としてもよいことが企図される。バッファの数も３つ以上にしてよい。追加的なキャッシュ・バンクおよびバッファを、代替アーキテクチャと併せて、またはコアからのマルチサイクル待ち時間などの異なる動作構成で使用することもできる。倍速のサイクル時間のキャッシュを用いるシステムでは、キャッシュ・バンクの数は１つに減らしてもよい。ラッチ機能がローカルＤＲＡＭアレイまたはグローバル・データ・リドライバなどの他の場所に提供される場合は、バッファをマルチプレクサに置き換えてもよい。チップ面積がそれほど問題とならない場合は、上記のアーキテクチャまたはアルゴリズムあるいはその両方を、ＳＲＡＭキャッシュを利用したシステムに適用することも可能である。キャッシュ待ち時間から見たより多くの動作の余裕、あるいは冗長性へのより良好な対処、またはその他の性能上またはタイミングの問題のために、上記のアーキテクチャまたはアルゴリズムあるいはその両方を、シングル・ポートまたはデュアル・ポートのＳＲＡＭキャッシュを利用したシステムに適用してもよい。
【０１３５】
本発明について好ましい実施形態を参照して説明したが、当業者には、本発明の範囲から逸脱せずに、各種の変更を加え、また本発明の要素を均等物に置き換えてもよいことが理解されよう。また、本発明の基本的な範囲から逸脱せずに、特定の状況または材料を本発明の教示に合わせて適合するために多くの変更を加えることができる。したがって、本発明は、本発明を実施するために企図される最良の形態としてここに開示される特定の実施形態に限定されず、本発明は、頭記の特許請求の範囲に該当するすべての実施形態を包含するものとする。
【図面の簡単な説明】
【０１３６】
【図１】本発明の一実施形態による、破壊読み出し型のダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）システムの概略的ブロック図である。
【図２】ＤＲＡＭシステムに含まれるキャッシュ・タグの構造を示す表である。
【図３】ＤＲＡＭシステムに含まれるバッファ・タグの構造を示す表である。
【図４】ＤＲＡＭシステムに含まれるバッファ構造の一実施形態を示す略図である。
【図５】図４に示すデータ線の例示的な接続を示す略図である。
【図６】ＤＲＡＭシステム構成で許可される可能なデータ転送動作の例を説明する表である。
【図７】図４に示すバッファ構造の動作を説明するタイミング図である。
【図８】図４に示すバッファ構造の代替実施形態の略図である。
【図９】図８のバッファ構造に関連付けられたパイプライン方式を説明する表である。
【図１０】ＤＲＡＭシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図１１】ＤＲＡＭシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図１２】ＤＲＡＭシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図１３】ＤＲＡＭシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図１４】ＤＲＡＭシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図１５】ＤＲＡＭシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図１６】ストロング・フォーム・アルゴリズムで使用される初期化手順を説明する状態図である。
【図１７】ストロング・フォーム・アルゴリズムにおけるオプションのデータ転送動作を説明する状態図である。
【図１８】ストロング・フォーム・アルゴリズムで許容される状態を説明する状態の表である。
【図１９】ＤＲＡＭシステムと併せて代替として使用することが可能なジェネラル・フォーム・アルゴリズムで許可される状態を説明する状態表である。
【図２０】ＤＲＡＭシステムと併せて代替として使用することが可能なジェネラル・フォーム・アルゴリズムで許可される状態を説明する状態表である。
【図２１】ＤＲＡＭシステムと併せて代替として使用することが可能なジェネラル・フォーム・アルゴリズムで許可される状態を説明する状態表である。
【図２２】ＤＲＡＭシステムと併せて代替として使用することが可能なジェネラル・フォーム・アルゴリズムで許可される状態を説明する状態表である。
【図２３】ＤＲＡＭシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図２４】ＤＲＡＭシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図２５】ＤＲＡＭシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図２６】ＤＲＡＭシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図２７】ＤＲＡＭシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図２８】ＤＲＡＭシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。
【図１】
2005524146.tif 000003
【図２】
2005524146.tif 000004
【図３】
2005524146.tif 000005
【図４】
2005524146.tif 000006
【図５】
2005524146.tif 000007
【図６】
2005524146.tif 000008
【図７】
2005524146.tif 000009
【図８】
2005524146.tif 000010
【図９】
2005524146.tif 000011
【図１０】
2005524146.tif 000012
【図１１】
2005524146.tif 000013
【図１２】
2005524146.tif 000014
【図１３】
2005524146.tif 000015
【図１４】
2005524146.tif 000016
【図１５】
2005524146.tif 000017
【図１６】
2005524146.tif 000018
【図１７】
2005524146.tif 000019
【図１８】
2005524146.tif 000020
【図１９】
2005524146.tif 000021
【図２０】
2005524146.tif 000022
【図２１】
2005524146.tif 000023
【図２２】
2005524146.tif 000024
【図２３】
2005524146.tif 000025
【図２４】
2005524146.tif 000026
【図２５】
2005524146.tif 000027
【図２６】
2005524146.tif 000028
【図２７】
2005524146.tif 000029
【図２８】
2005524146.tif 000030
【国際調査報告】
2005524146.tif 000031
2005524146.tif 000032