JP4150718B2 - 破壊読み出し型ランダム・アクセス・メモリ・システム - Google Patents

破壊読み出し型ランダム・アクセス・メモリ・システム Download PDF

Info

Publication number
JP4150718B2
JP4150718B2 JP2004500188A JP2004500188A JP4150718B2 JP 4150718 B2 JP4150718 B2 JP 4150718B2 JP 2004500188 A JP2004500188 A JP 2004500188A JP 2004500188 A JP2004500188 A JP 2004500188A JP 4150718 B2 JP4150718 B2 JP 4150718B2
Authority
JP
Japan
Prior art keywords
dram
buffer
bank
data
cache bank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004500188A
Other languages
English (en)
Other versions
JP2005524146A (ja
Inventor
ジ、ブライアン、エル
ファン、チョン−リー
キリハタ、トシアキ、ケイ
誠治 宗藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005524146A publication Critical patent/JP2005524146A/ja
Application granted granted Critical
Publication of JP4150718B2 publication Critical patent/JP4150718B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Dram (AREA)

Description

本発明は、一般には集積回路メモリ・デバイスに関し、より詳細には、破壊読み出し方式のメモリによってキャッシュされる破壊読み出し方式のメモリのランダム・アクセス・メモリ・システムに関する。
サブミクロンのCMOS技術が発達した結果、マイクロプロセッサの速度が著しく向上している。マイクロプロセッサの速度は、約3年ごとに4倍になっており、現在では1Ghzを超えている。こうしたマイクロプロセッサ技術の進歩に伴い、より高度なソフトウェアやマルチメディア・アプリケーションが登場しており、そうしたソフトウェア、アプリケーションは、利用のためにより大容量のメモリを必要とする。したがって、より高い密度と性能を備えたより大型のダイナミック・ランダム・アクセス・メモリ(DRAM)に対する需要が高まっている。
米国特許第6,205,076号 米国特許第6,333,833号 米国特許出願番号09/843,504
DRAMアーキテクチャは、より高いメモリ容量を必要とするシステム要件に後押しされてここ何年かの間に発展してきた。しかし、ランダム・アクセス時間(tRAC)とランダム・アクセス・サイクル時間(tRC)によって特徴付けられるDRAMの速度は、アーキテクチャと同様には向上していない。その結果、CPUのクロック速度が時間の経過とともに着実に向上しているため、DRAMとCPUの速度の差が広がりつつある。
DRAMアレイのランダム・アクセス・サイクル時間(tRC)は、一般に、すべてのランダム・アクセス動作を完了する時間量に相当するアレイ時間定数によって決まる。そのような動作には、ワード線(wordline)の通電(activate)、ビット線上の信号の展開、ビット線の感知、信号のライト・バック、ワード線の通電停止(deactivate)、およびビット線のプリチャージが含まれる。従来のDRAMアーキテクチャではこれらの動作が順次行われるので、DRAMの転送速度(すなわち帯域幅)を上げることが困難になる。
特定のアプリケーションのためのDRAMシステムの行アクセス・サイクル時間を改善する方式の1つは、DRAMセルに記憶されたデータの破壊読み出しを実施し、破壊読み出しされたデータを、同じローカル・メモリ・アレイのセンス・アンプ(sense amplifier)に接続されたバッファ・セルに一時的に記憶するものである。(例えばWakayama他の米国特許第6,205,076号および6,333,833号を参照されたい。)この方式では、共通のセンス・アンプ・ブロックに接続されたローカル・メモリ・アレイの異なるワード線が、1に、センス・アンプ1つ当たりのバッファ・セル数を足した数に設定される回数だけ順次破壊読み出しされることができる。しかし、各ローカルDRAMアレイのバッファ・セルとそれに関連付けられた制御ロジックの両方に必要な面積(realestate)が大きいため、この方式で実際に実装できるバッファ・セルの数はわずかである。さらに、バッファ・セルの数が本来のセル・アレイのワード線の数より少ない限り、このシステムでは、限られた数のデータ・アクセス事例についてしかアクセス・サイクル時間が改善されず、一般的なアプリケーションで必要とされるランダム・アクセス・サイクル時間は改善されない。
DRAMシステムのランダム・アクセス・サイクル時間を向上させるより実際的な方式は、DRAMセルに記憶されたデータの破壊読み出しを実施し、次いで、破壊読み出ししたデータを、メイン・メモリ・アレイの外部にあるSRAMを利用したキャッシュに一時的に記憶するものである。SRAMを利用したキャッシュは、少なくとも、1つのシングル・バンクDRAMアレイと同じ数のワード線を有する。(本明細書に記載される用語「バンク」とは、同じセンス・アンプを共有するメモリ・セルのアレイを意味する。)この技術は、本願の譲受人に譲渡された、2001年4月26日出願の「A Destructive Read Architecture for Dynamic Random Access Memories」という名称の米国特許出願番号09/843,504に記載されている。この技術では、後の時間に適切なDRAMの記憶場所にデータを復元するために、遅延させたライト・バック動作がスケジュールされる。遅延させたライト・バック動作のスケジューリングは、SRAMを利用したキャッシュ内の空間の可用性に依存して行われる。このような方式はランダム・アクセス・サイクル時間を短縮する際には有効であるが、SRAMを利用したキャッシュを使用すると、望ましからぬ量のチップ面積が占拠される可能性があり、また、結果としてDRAMとキャッシュ間でデータを転送するための相互接続の配線がより複雑になる可能性がある。したがって、チップ面積が特に問題となる場合は、SRAMを利用したキャッシュを使用することで比較的広いデバイス面積を占めることなく、ランダム・アクセス・サイクル時間を短縮することが望ましくなる。
従来技術の上記およびその他の欠点と不完全性は、メモリ・システムによって克服あるいは軽減される。例示的実施形態で、このメモリ・システムは、複数のメモリ・バンクと、そのメモリ・バンクと通信するキャッシュとを含む。複数のメモリ・バンクとキャッシュはともに、破壊読み出し型の(destructive read)メモリ素子をさらに含む。
好ましい実施形態では、破壊読み出し型のメモリ素子は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の記憶セルである。また、このシステムはさらに、複数のメモリ・バンクおよびキャッシュと通信するライン・バッファ構造を含む。ライン・バッファ構造にバッファ・タグが関連付けられ、キャッシュにキャッシュ・タグが関連付けられる。ライン・バッファ構造は、それぞれがDRAMアレイのように1ページ分のワード線データを記憶することが可能な一対のレジスタ・アレイを含む。すなわち、ライン・バッファ構造は、1つのデータI/Oにつき2つのレジスタを含む。
複数のメモリ・バンクはさらに、それぞれが関連付けられたm本のワード線を有するn個のDRAMバンクを備える。キャッシュはさらに、それぞれが同じ数m本の関連付けられたワード線を有する一対のDRAMキャッシュ・バンクを含む。さらに、各バッファは、ページ・データを記憶することができ、データ・ページは、選択されたDRAMバンクの選択されたワード線、または選択されたDRAMキャッシュ・バンクの選択されたワード線から破壊読み出しされたデータ・ビットを含む。初めにDRAMバンクの1つに保持されていたデータは、DRAMキャッシュ・バンクの1つに記憶することができる。初めにDRAMバンクに関連付けられていた、一対のDRAMキャッシュ・バンクに保持されるデータは、直接マッピング方式でそのDRAMキャッシュ・バンクに記憶され、DRAMバンクの1つの所与のワード線アドレスに関連付けられたデータは、DRAMキャッシュ・バンクの1つのそのワード線アドレスに記憶される。
別の態様では、n個のDRAMバンクと、ライン・バッファ構造と、キャッシュとを有するダイナミック・ランダム・アクセス・メモリ(DRAM)システム内でデータ移動を制御する方法が開示される。例示的実施形態で、この方法は、記憶バンク、バッファ構造、およびキャッシュに有効なデータが存在するための許容できる状態の集合を定義することを含む。このDRAMシステムは、DRAMバンクに記憶されたデータに対する最初のランダム・アクセス要求の前に初期化され、この初期化は、定義された許容可能な状態の集合に準拠する。データに対する最初のランダム・アクセス要求の後、およびその後行われるデータに対するどのランダム・アクセス要求の後にも、要求されるデータをバッファ構造中で入手できるようにし、許容可能な状態の集合が維持される。
例示的図面を参照すると、それら数個の図では同様の要素は同様の参照符号を付している。
これも破壊読み出し型メモリによってキャッシュされる破壊読み出し型メモリに基づくランダム・アクセス・メモリ・システムがここに開示される。破壊読み出し型のメモリとは、読み出し動作が行われた後にそのデータを失うメモリ構造を指し、したがってそのデータをメモリ・セルに復元するために続いてライト・バック動作が行われる。DRAMセル内のデータが読み出され、直ちにそこへのライト・バック(write back)が行われない場合、その後そのデータはそのセルにもはや存在しなくなる。上記のように、ランダム・アクセス・サイクル時間を向上させる1方式は、SRAMデータ・キャッシュを使用した遅延ライト・バックのスケジューリングと組み合わせて、破壊読み出しモードでメモリ・アレイを作動させるものであった。しかし、同じく先に述べたように、既存のSRAMデバイスは、より多くのデバイス面積を占め、また、1つのアクセス・トランジスタと1つの記憶コンデンサを有するDRAMセルと異なり、通例は1つのセルにつき4つ以上のトランジスタを含む。したがって、本発明の実施形態は、同一の破壊読み出しDRAMバンクをキャッシュとしても機能させ、それにより、下記の諸利点の中でも特にデバイス面積を節減する。
簡潔に述べると、本発明の実施形態では、複数のDRAMバンクから読み出されることによって破壊されるデータが、同じく破壊読み出しモードで作動されるデュアル・バンク(dual bank)DRAMデータ・キャッシュによりキャッシュされる(すなわち当該キャッシュに書き込まれる)。DRAMバンクおよびデュアル・バンク・キャッシュに加えて、それぞれが1ページ分のデータを記憶する1対のレジスタ・ライン・バッファも含まれる。キャッシュ・タグが、キャッシュの各ワード線についてのバンク情報と、デュアル・バンク・キャッシュの特定バンクに有効なデータが存在するかどうかを示すフラグとを記憶する。バッファごとにそのバッファに有効なデータが存在するかどうかを示すフラグと、そのデータに関連付けられたバンク情報および行情報とを含むバッファ・タグもある。別のフラグが、2つのバッファのどちらに、1つ前のサイクルで無作為に要求されたデータが含まれる可能性があるかを示す。
これも下記でより詳細に述べるように、「許容できる状態の規則」の概念に基づいて、1つまたは複数の経路に依存しない(path independent)アルゴリズムを考案して、次のクロック・サイクルに備えて実施すべきデータ転送動作を決定することができる。データ転送動作(すなわち移動)は、現在の状態に先立つ履歴ではなく、DRAMバンク、キャッシュ、およびバッファ内のデータの現在の状態のみに依存する。理解を容易にするために、以下の詳細な説明は、(1)システム・アーキテクチャ、および(2)そのアーキテクチャのために実装されるスケジューリング・アルゴリズム、の2つの主要部分で構成する。
I.システム・アーキテクチャ
まず図1に、破壊読み出し型ダイナミック・ランダム・アクセス・メモリ(DRAM)システム10の概略的なブロック図を示す。DRAMシステム10は、複数n個のDRAMバンク12(それぞれBANK0〜BANKn−1とする)と、デュアル・キャッシュ・バンク16を含む破壊読み出しDRAMキャッシュ14と、キャッシュ・タグ18と、1対のレジスタ・ライン・バッファ20(それぞれをバッファ0およびバッファ1とする)と、バッファ・タグ22と、関連付けられた論理回路24とを含む。本発明で使用される用語「バンク」または「BANK」は、共通のセンス・アンプのセットを共有するメモリ・セル・アレイを指すことに留意されたい。
関連付けられた論理回路24はさらに、レシーバ/データ・イン素子、OCD/データ・アウト素子、および他の論理素子を含むことができる。既存のキャッシュと異なり、2つのDRAMキャッシュ・バンク16は、n個の通常のDRAMバンク12と(構成と性能の両面で)全く同じでよい。したがって、システム10は、n+2個のバンクを備えるアーキテクチャを有すると考えることもでき、その場合は、n個のDRAMバンクが従来のメモリに使用され、2つのDRAMバンクがキャッシュとして使用される。以降では、キャッシュ14に使用される2つのDRAMバンク16を「キャッシュ・バンク」と称し、それぞれをCBANK AおよびCBANK Bとする。
各DRAMバンク12(BANK0からn−1)およびキャッシュ・バンク16(CBANK A、B)は、同じ数のワード線およびビット線を有する。好ましい実施形態では、同じアレイ・サポート回路(例えばワード線ドライバおよびセンス・アンプの構成)が、DRAMバンク12とキャッシュ・バンク16の両方をサポートすることができる。あるいは、各キャッシュ・バンク16(CBANK A、B)がDRAMバンク12(BANK0〜n−1)と少なくとも同数のワード線とビット線を含むのであれば、各DRAMバンク12(BANK0からn−1)および各キャッシュ・バンク16(CBANK A、B)に異なるアレイ構成を使用してもよい。
両キャッシュ・バンク16は、直接マッピングのキャッシュ方式でキャッシュ・タグ18を共有する。DRAMバンク12の1つの特定のワード線アドレス(例えばワード線0)に関連付けられたデータは、2つのキャッシュ・バンク16の1つ(AまたはB)のその特定のワード線に記憶できるが、両方のバンク16には記憶することができない。これにより、キャッシュ14が、別のDRAMバンク12に新しいデータを書き込むのと同時に、DRAMバンク12の1つからデータを読み出すことが可能になる。キャッシュ・タグ18の構造を図2に示す。図から分かるように、キャッシュ・タグ18は、ワード線(番号0〜m)ごとに、DRAMバンクのアドレス情報(この例では3ビットの符号化バンク・アドレスとして示す)と、キャッシュ・バンクCBANK AおよびCBANK Bのワード線にデータが存在することの指示を記憶する。「A」および「B」のフラグは、CBANK AまたはCBANK Bに有効データが存在するか、あるいはどちらにも存在しないかを示す。図の例では、CBANK Aのワード線0は、(DRAM)BANK0のワード線0にあった有効データを保持している。また、CBANK Bのワード線2は、BANK7、ワード線2にあった有効データを保持し、一方、CBANK Aのワード線3は、BANK3、ワード線3にあった有効データを保持している。
2つのライン・バッファ20はそれぞれ、1ページ分のデータ(すなわちワード)を記憶することができる。ライン・バッファ20は、レジスタ・アレイで構成することができ、それぞれが別個の入力ポートおよび出力ポートを有する。図3にバッファ・タグ22の構造を示し、これは、各バッファ20のバンク・アドレス、行アドレス(この例では8ビットの符号化アドレス)、有効フラグ、および要求フラグを含む。ただし、下記で述べるように、各バッファ20に関連付けられた行アドレスは、好ましい実施形態では同じであるべきであり、したがって2つのバッファで共有される。有効フラグは、バッファのデータが有効であるかどうかを示す。要求フラグは、バッファ20(バッファ0またはバッファ1)が、データ・アウト(OCD)への読み込みまたはdata_in(レシーバ)からの書き出しのために、特定のバンクおよび行アドレスについて以前に要求されたデータを保持しているかどうかを示す。
次いで図4に、各data_in/outピンについての2つのバッファ20(バッファ0およびバッファ1)の構造を示す模式図を示す。バッファ20は、データ線(dataline)上で生じる可能性のあるデータ競合を回避しながら、DRAMバンク(BANK0〜n−1)とキャッシュ14(CBANK A、B)間のデータ転送のトラフィックに対処するために使用される。data_in/data_outバス30(data_in線30aおよびdata_out線30bを含む)が、それぞれ読み出し/書き込み信号gw0/gr0とgw1/gr1によって制御される、対応する複数の転送ゲート32を通じてバッファ0とバッファ1の両方に接続される。data_in/data_outバス30は、DRAMシステム10と、このシステムへの読み書きを行う任意の外部デバイス(顧客)との間の外部インタフェースを提供する。
読み出し補助(secondary)データ線(RSDL)34は、DRAMバンク・アレイ内のセンス・アンプ(SA)または補助センス・アンプ(SSA)(図示せず)の出力を、信号r0で制御される転送ゲート36を通じてバッファ0に接続する単方向の信号バスである。すなわち、DRAMバンク12の1つからバッファ20に読み出されるデータはいずれも、RSDL34を通じてバッファ0に送られる。同様に、CRSDL(キャッシュ読み出し補助データ線)38は、キャッシュ14に関連付けられたセンス・アンプ(SA)または補助センス・アンプ(SSA)(図示せず)の出力を、信号r0で制御される転送ゲート40を通じてバッファ1に接続する単方向信号バスである。すなわち、キャッシュ・バンク16の1つからバッファ20に読み出されるデータはいずれも、CRSDL38を通じてバッファ1に送られる。
また、書き込み補助データ線(WSDL)42は、バッファ0またはバッファ1からの出力データ(outgoing data)をDRAMバンク12に接続する単方向信号バスである。これは、信号w00およびw10で制御される多重化転送ゲート44を通じて行われる。これに対応して、キャッシュ書き込み補助データ線(CWSDL)46は、バッファ0またはバッファ1からの出力データをキャッシュ・バンク16に接続する単方向信号バスである。これは、信号w01およびw11で制御される多重化転送ゲート48を通じて行われる。
図5は、n個のDRAMバンク、2つのDRAMキャッシュ・バンク、および2つのバッファ間の、データ線WSDL、RSDL、CWSDL、およびCRSDLの例示的な接続を示す模式図である。例として、データ線の幅は128ビットとする。
このバッファ構造は、図4に図示するレベル・センシティブ(level sensitive)・ラッチを使用することによって実施されるが、下記で述べるように、エッジ・トリガ(edgetriggered)・ラッチおよびパイプライン方式のタグ比較に基づく代替方式を実施してもよい。さらに、本実施形態では、図4のバッファ構造は以下のように定義されることに留意されたい。DRAMバンク12からの入力データ(incomingdata)は常にバッファ0に記憶される。キャッシュ・バンク16からの入力データは常にバッファ1に記憶される。バッファ0およびバッファ1からの出力データは、DRAMバンク12かキャッシュ・バンク16のいずれかに送ることができる。ただし、この構造は逆にして、DRAMバンク12またはキャッシュ・バンク16からバッファに入るデータをどちらかのバッファに記憶し、対して、特定のバッファから書き出されるデータはDRAMバンクまたはキャッシュ・バンク16のいずれかのみに送られるようにしてもよいことは理解されよう。
DRAMシステム10の動作を理解するために、シングル・クロック・サイクル動作について以下で述べ、1/4クロックのセットアップ・タイム分のコマンドとアドレス信号をタグ比較に使用すると想定する。シングル・サイクル動作とは、各DRAMバンク(キャッシュ・バンクを含む)が、1クロック・サイクルで読み出しまたは書き込み動作を完了できることを意味する。各クロック・サイクルで、DRAMバンクからの読み出し動作はわずか1回、キャッシュ・バンクからの読み出し動作はわずか1回、DRAMバンクへの書き込み動作はわずか1回、キャッシュ・バンクへの書き込み動作はわずか1回である。したがって、各サイクル中にDRAMバンクとキャッシュの間で最高4回の個々の読み出し動作または書き込み動作を行うことができ、同時に2つのバッファとの正常な通信を可能にする。各データ転送動作に伴い、2つのバッファの1つを通じて通信が可能にされる。
図6は、本システム構成で許される4つの可能なデータ転送動作各々の例を示す表である。例えば、BANK2のワード線4(bank2_wl4と略記する)に記憶されたデータに対するランダム・アクセス要求中には、次の動作を行うことができる。
(1)それまでバッファ0(bank0_wl2)にあったデータをBANK0に戻す。
(2)bank2_w14からバッファ0にデータを移動する。
(3)それまでバッファ1(bank3_wl2)にあったデータをキャッシュ・バンク(例えばCBANK A)に移動する。
(4)CBANK Bのワード線4(bank0_wl4)のデータをバッファ1に移動する。
少なくとも2つのDRAMバンク、2つのバッファ、および2つのキャッシュ・バンクがあるので、上記の4つのデータ転送動作はすべて同時に可能にすることができる。
下記でさらに詳細に説明するように、上記の1クロック・サイクル中の一連の例示的動作は、一般には、要求されるコマンド(ある場合)とデータの既存の状態に基づいて決定される。一連の許容できる状態が定義され、許容できる状態の規則を支持するアルゴリズムが実装される。図6に示す上記の例に関しては、bank2_wl4のデータに対する要求の直前に、バッファ0は当初、DRAMバンク0の2番目のワード線(bank0_wl2)に関連付けられたセルから以前に読み出されたデータ・ビットを保持している。また、バッファ1は当初、DRAMバンク3の2番目のワード線(bank3_wl2)に関連付けられたセルから以前に読み出されたデータ・ビットを保持している。キャッシュ・タグ18は、キャッシュ・バンクの各ワード線に関連付けられたバンク・アドレス情報と、AまたはBバンクに有効データがあるかどうかとを保持する。詳細には、上記の例では、キャッシュ・バンクBが初めに、DRAMバンク0の4番目のワード線(bank0_wl4)から以前読み出されたデータ・ビットを保持していると仮定する。これらの初期状態はすべて、1つ前のクロック・サイクルから分かる。
セットアップ・タイム中に新しいコマンド(Request bank2_wl4)が受け取られると、タグ比較が行われる。このタグ比較で、要求されるデータがバッファ・ヒットであるか、キャッシュ・ヒットであるか、またはバッファ・ミスかつキャッシュ・ミス(すなわちDRAMバンク・ヒット)であるかを判定する。この例では、要求されるデータは、バッファにもキャッシュにもなく、したがって比較の結果はDRAMバンク・ヒットと考えられる。すなわち、要求されるデータは、実際にはDRAMバンクの指定される位置にある。タグ比較では、要求されるデータの場所を特定することに加えて、どちらかのキャッシュ・バンクの、要求と同じワード線アドレス(wl4)に有効データがあるかどうかも調べる。この例では結果として、DRAMバンク0のワード線4(bank0_wl4)にあった有効データがキャッシュ・バンクBに見つかる。
本システムは直接マッピング方式のスケジューリングを採用するので、bank0_wl4からのデータ・ビットは、将来のスケジューリングのためにどちらのキャッシュ・バンクにも記憶してはならない。したがって、bank0_wl4からのデータ・ビットは、バッファ1に転送すべきことになる。一方、要求されるデータbank2_wl4は、続いて顧客によって取り出されるためにバッファ0に転送する必要がある。しかし、当初バッファ0(bank0_wl2)にあるデータを、要求中のバンクとは異なるDRAMバンクのその場所(すなわちBANK0のワード線2)にまず戻さなければならない。両方のバッファに有効データがあるので、それらバッファの1つが、要求されるDRAMバンクと同じ数でないDRAMバンク番号に関連付けられる。バッファ0が最初に調べられ、タグ比較を通じて、バッファ0が要求と同じDRAMバンク番号に関連付けられていないことが判定され、したがってバッファ0のデータはDRAMバンク0に送り返される。もう一方のバッファのデータ、すなわちバッファ1のbank3_wl2のデータ・ビットは、キャッシュ・バンクAに転送される。
本システムの基本的なデータ転送原理は、同じワード線番号を有する最高2つのデータ・ページを2つのバッファに対として記憶するものである。1つのバッファは要求されるデータ・ページに使用され、もう一方のバッファは、必要な場合に、キャッシュから有効なデータ・ページ(要求されるデータと同じワード線アドレスに対応する特定のワード線アドレスを有する)を転送して、将来のサイクルでデータのオーバーフローを防止するために使用される。このペアリング規則に従う限り、バンク・データを損失することなく、データ転送の整合性が完全に保たれる。
次いで図7に、図4に示すバッファ構造の動作を説明するタイミング図を示す。ここでも、新しい要求に対応するコマンド、アドレス、およびデータについてセットアップ・タイムが想定される。関連付けられたロジックが比較的単純なので、少量の時間(例えば0.13マイクロ技術で約0.5ナノ秒)で十分である可能性がある。セットアップ・タイムを設定しない場合は、内部のDRAM動作に、遅延クロックを実施することができる。セットアップ・タイム中に、アドレス情報(add)がタグ比較に使用され、コマンド(cmd)を使用してデータ転送の要求が存在するかどうかを調べる。またコマンドは次のクロックにパイプラインされ、読み出し(書き込み)の待ち時間1の動作におけるように、次いでデータ・バッファから(またはデータ・バッファに)読み出し(または書き込み)のコマンドが行われる。このレベル・センシティブ・ラッチ方式では、図4の「w」ゲート44がクロック・サイクルの初め半分はオンにされ、クロック・サイクルの後の半分でオフにされて、それによりデータを1クロックでWSDL42に送信し、ラッチできるようにする。「r」ゲート36、40はクロック・サイクルの後の半分でオンにされ、マクロの読み出し待ち時間が1クロック・サイクル未満なるように想定されるので、DRAMバンクの有効データが入れるようにする。次いで、次のサイクルの立ち上がりエッジ時にそのデータがレジスタ・バッファにラッチされる。読み出しコマンドが受け取られた場合は、(要求されるアドレスに関連付けられた)バッファからdata_out線30bにデータが読み出される。書き込みコマンドが受け取られた場合は、data_in線30aから、要求されるアドレスに関連付けられたバッファにデータが書き込まれる。
要求が読み出しであるか、書き込みであるか、またはビット・マスクを伴う書き込みであるかに関係なく、ここに提案するランダム・アクセス・メモリ・システムでは、内部動作により、初めに、要求されるワード線に関連付けられたデータ・ページをバッファの1つに移し、そのバッファで読み出し(data_out30bへのデータのコピー)、または書き込み(データ・ページをdata_in30aの入力で更新する)が行われることに留意されたい。data_in線およびdata_out線、制御ゲートgw0、gw1、rw0、rw1における動作を除いて、DRAMバンク、キャッシュ、およびバッファのスケジューリング・アルゴリズムとデータ移動は、読み出し要求および書き込み要求について全く同じである。
ポジティブ・クロック・エッジ・トリガ・ラッチ52に基づく代替のバッファ方式50を図8に示す。この方式では、よりASICの方法論に合致するように、1クロック・サイクルをタグの読み出しと比較に使用する。図9に、1クロックのタグ比較を使用した、図8のクロック・エッジ・トリガ設計に沿ったタイミング・フローを示す。この実施形態における読み出し待ち時間は2クロックである。図9に示すように、2つの連続したコマンド(要求1および要求2)が順次スタックされ、シームレスなパイプライン方式で実行されることに気づかれよう。説明の次の項では、DRAMシステム10専用に設計された経路に依存しないアルゴリズムを実装することにより、どのようなランダム・シーケンスのシームレス・スタッキングも可能であることを述べる。
II.スケジューリング・アルゴリズム
上記の破壊読み出し型キャッシュを有する破壊読み出し型DRAMアレイのアーキテクチャをうまく使用するために、システムがどの新しいランダム・アクセス要求の後にも許容可能な状態に維持されるように適切なスケジューリング方式を実施しなければならない。一般的な手法は、まず許容できる状態を定義し、その許容できる状態に合致するようにシステムを初期化し(初期設定)、所与のデータ転送動作が行われた後に許容可能な状態が維持されていることを保証する(システムの連続性(continuity))ものである。
許容できる状態の規則(ストロング・フォーム(strong form))
好ましい実施形態では、許容可能な状態の「ストロング・フォーム」規則を定義し、この規則は、両方のバッファに有効データを保持する対称アルゴリズムを特徴とし、そのデータは、ワード線アドレスは同じであるが、異なるDRAMバンクにあったものである。したがって、毎クロック・サイクルの立ち上がりエッジ時に、次の規則が満たされなければならない。
規則#1− 2つのバッファそれぞれに、相互に共通のワード線アドレスを有するデータ・ワードが記憶されている。それらバッファの2つのデータ・ワードの1つは、1つ前のランダム・アクセス要求のバンク・アドレスおよびワード線アドレスに対応する特定のデータである。
この規則の一例として、例えば、バッファ0が、DRAMバンク2のワード線3から読み出されたデータを含み(1つ前のサイクルで要求された)、一方バッファ1は、以前にキャッシュ(キャッシュ・バンクAまたはキャッシュ・バンクB)のワード線3から読み出され、バンク4のワード線3に関連付けられたデータを含む。
規則#2− キャッシュには、上記のワード線アドレス(すなわちバッファ中のデータに関連付けられた特定のワード線アドレス)に現在関連付けられた有効データはない。
上記の例を続けると、キャッシュ・バンクAもキャッシュ・バンクBも、ワード線アドレス3には有効データが記憶されていないことになる。すなわち、キャッシュ・タグのワード線3ではA=0かつB=0になる。
規則#3− バッファのワード線アドレスに対応するワード線アドレス以外のすべてのワード線アドレスについては、1つのみのキャッシュ・バンクに1つのみの有効データ・ワードが記憶される。
したがって、上の例では、ワード線アドレス3以外のすべてのワード線アドレスについて、(A=1かつB=0)または(A=0かつB=1)のいずれかとなる。
規則#1では、(読み出しまたは書き込みのために)要求されるバンクおよびワード線アドレスに関連付けられたデータ・ページは、該当する読み出しおよび書き込み動作について、次のクロック・サイクルにバッファに到着することにも留意されたい。上記で概説した許容可能な状態の規則を考慮すると、どのランダム・アクセス要求(読み出し/書き込み)に対しても、予め定義された手順を実行して、その手順の下でここに提案されるシステムが初期化され、またその後どのクロック・サイクルについても許容できる状態に維持されることが可能である。
初期設定
ストロング・フォーム・アルゴリズムの最初の部分は、初期化手順から開始する。システムの電源投入後、バッファ・タグ22(図3。上記で説明)が次のように設定される。(1)バッファ0およびバッファ1の有効フラグを「1」に設定する。(2)行アドレスがワード線0に対応する。(3)バッファ0のバンク・アドレスはバンク1。(4)バッファ1のバンク・アドレスはバンク0。および、(5)それより前に要求がないので両バッファの要求フラグは0。
また、システムの電源投入に続き、ワード線0を除いて、キャッシュ・タグ18のキャッシュ・バンクAの各フラグはA=1に初期化され、一方、キャッシュ・タグ18のすべてのバンク・アドレスはバンク0に設定される。キャッシュ・バンクBの各フラグは、B=0に初期化される。上記のようにバッファおよびキャッシュ・タグを設定することにより、バッファ0は、bank1_wordline0に関連付けられ有効データ・ワードに対応し、一方、バッファ1は、bank0_wordline0に関連付けられた有効データ・ワードに対応する。最後に、ワード線0に対応する有効データがないことを除いて、デュアル・バンク・キャッシュのすべての他のワード線は、キャッシュ・バンクAのバンク0に関連付けられた有効データを有する。したがって、上述のストロング・フォーム規則が初めに満たされる。
連続性
初期化に続き、クロック・サイクルの立ち上がりエッジの直前にランダムの読み出しまたは書き込み要求が行われると仮定する。クロック・サイクルの立ち上がりエッジ時に、ランダム・アクセス要求(読み出しまたは書き込み)を以下ではXjと表記し、「X」はバンク・アドレスであり、「j」はワード線の番号(アドレス)である。用語Diは、初めにバッファ0に記憶されているデータ・ページを表すものとし、「D」はバンク・アドレスであり、「i」はワード線番号である。用語Qiは、バッファ1に初めに記憶されているデータ・ページを表すものとし、「Q」はバンク・アドレスであり、「i」がワード線番号である。上記の規則#1に従うと、すべての事例でD≠Qとなり、ワード線番号(i)は、バッファ0とバッファ1で同じになることに気づかれよう。
規則#2および#3の場合も同様に、所与のワード線番号k≠iについて、ワード線kに関連付けられた1つのみの有効データ・ページがキャッシュに記憶されている。用語C(k)は、本明細書では、キャッシュ・タグのワード線kの対応バンク・アドレスとする。したがって、どの所与の要求Xjについても、関連付けられたDRAMバンク、2つのバッファの1つ、またはキャッシュにデータが見つかることになる。以下に、3つの一般的な可能なシナリオそれぞれで実行される、結果的に行われるデータ転送動作を具体的に説明する。
事例1− バッファ・ヒット
この場合はj=i、かつ、X=DまたはX=Qになる。すなわち、要求されるデータは、すでにバッファ0またはバッファ1に記憶されている。許容可能な状態の規則がすでに満たされているので、このクロック・サイクルではそれ以上データ転送は実施されない。これは、図10の状態図で変化がないことに反映される。
事例2− キャッシュ・ヒット
要求されるデータXjがキャッシュに保持されている場合は、J≠iとなる(規則#2により)。すなわち、要求されるデータのワード線番号が、バッファのデータのワード線に対応しない。さらに、1ページ分のデータが2つのバンク・アドレスに対応することはできないので、X≠DまたはX≠Q、あるいはその両方となる。
X≠Dの場合は、Djに対応するデータは(先の段落から)バッファにも、キャッシュにも(規則#3により)なく、したがってDjのデータは、対応するDRAMバンクにある。次いで、以下のステップを実施して、上記の許容できる状態についての規則に従う。
一方のキャッシュ・バンク(AまたはB)からバッファ1にXjを移動する。
バッファ0からもう一方のキャッシュ・バンク(BまたはA)にDiを移動する。
バッファ1からDRAMバンクQにQiを移動する。
DRAMバンクDからバッファ0にDjを移動する。
この一連のデータ移動を図11に示す。一方、X=Dの場合は、X≠Qが真でなければならないことになり、Qjのデータが対応するDRAMバンクに見つかる。したがって、次いで以下のステップが実施される。
一方のキャッシュ・バンク(AまたはB)からバッファ1にXjを移動する。
バッファ1からもう一方のキャッシュ・バンク(BまたはA)にQiを移動する。
バッファ0からDRAMバンクDにDiを移動する。
DRAMバンクQからバッファ0にQjを移動する。
この一連のデータ移動を図12に示す。
事例3a− バッファ・ミス、キャッシュ・ミス、j=iの場合
要求されるデータXjがバッファにもキャッシュにもない場合は、それ(Xj)は、対応するDRAMバンクにある。j=iなので、X≠Dも真であることになる。したがって、図13に示すように、これに沿った動作を2ステップで行うことができる。
DRAMバンクXからバッファ0にXjを移動する。
バッファ0からDRAMバンクDにDiを移動する。
事例3b− バッファ・ミス、キャッシュ・ミス、j≠i、X≠Dの場合
この場合も、要求されるデータは、対応するDRAMバンクにある。しかし、要求されるデータのワード線アドレスは、バッファのデータのワード線アドレスと異なる。許容可能な状態の規則では、キャッシュ・バンクの1つに記憶された行アドレスjに有効なCjが存在する。X≠Dなので、要求されるデータのバンク・アドレスは、バッファ0のデータのバンク・アドレスと異なり、以下のステップが実施される。
DRAMバンクXからバッファ0にXjを移動する。
一方のキャッシュ・バンク(AまたはB)からバッファ1にCjを移動する。
バッファ1からもう一方のキャッシュ・バンク(BまたはA)にQiを移動する。
バッファ0からDRAMバンクDにDiを移動する。
この一連のデータ移動を図14に示す。
事例3c− バッファ・ミス、キャッシュ・ミス、j≠i、X=D、X≠Qの場合
この事例と上述の事例3bとの唯一の違いは、要求されるデータのバンク・アドレスが、バッファ0に保持されるデータのバンク・アドレスと同じである(すなわちX=D)点である。しかし、要求されるデータのバンク・アドレスが、バッファ1に保持されているデータのバンク・アドレスと異なる(すなわちX≠Q)ことが真でなければならない。したがって、図15に示すように以下のステップが実施される。
DRAMバンクXからバッファ0にXjを移動する。
一方のキャッシュ・バンク(AまたはB)からバッファ1にCjを移動する。
バッファ0からもう一方のキャッシュ・バンク(BまたはA)にDiを移動する。
バッファ1からDRAMバンクQにQiを移動する。
この初期化手順の代替実施形態は、システムが、データを長い時間にわたってバッファに記憶しないことにより、ソフト・エラー・レート(SER)を低下させるのを助ける際に有用である可能性がある。そのような実施形態では、システムの電源投入後、キャッシュ・タグ18のキャッシュ・バンクAの各フラグをA=1に初期化し、一方、キャッシュ・タグ18のすべてのバンク・アドレスを同じアドレス(例えば000)に設定し、タグ・バッファ22の有効フラグを両方とも「0」に設定する。
次いで図16に、上述の初期化手順に対応する状態図も示しており、ここでは、最初の要求がキャッシュ・ヒット(Ci)の場合は、キャッシュからバッファ1にそのデータが移動され、キャッシュ・ミスおよびバッファ・ミス(Di)の場合は、DRAMバンクDからバッファ0にデータが移動される。
最後に、図17は、所与のクロック・サイクル中に要求が受け取られない場合に行うことが可能なオプションのデータ移動動作の状態図である。ソフト・エラーの可能性があるので、顧客(外部デバイス)から要求がない場合はバッファにデータを記憶したままにしないことが望ましい場合がある。この場合、バッファ0のデータDiはDRAMバンクDに戻され、一方、バッファ1のデータQiはキャッシュ・バンクの1つに送られる。
許容可能な状態の「ストロング・フォーム」規則に基づく上記のデータ移動アルゴリズムは、常に両方のバッファに有効データを保持させることにより、要求されるデータを1クロック・サイクル中にバッファの1つに転送することができ、同時にシステムを許容可能な状態に保つ点で有用である。上記で概説した各種の可能性から分かるように、最高でも4回のデータ転送動作しか行われず、データ転送のロジックは比較的実施が容易である。ただし、ストロング・フォームの規則は、そのシステム実施におけるパフォーマンス、能力、およびロジック・ゲートの数の間のトレードオフに合わせて一般化することができる。したがって、「ジェネラル・フォーム(general form)」のアルゴリズムもここに提示する。
簡単に述べると、「ジェネラル・フォーム」は、バッファ内の許容可能な状態をより多く可能にし、それにより必要なデータ転送動作の回数を減らす。その結果、デバイス中で消費(dissipate)される電力が低減する。一方、トレードオフは、許容可能な状態の増加に対応するために余分なロジックが用いられることである。比較として、図18は、ストロング・フォーム規則に基づく許容可能な状態を示す表であり、一方図19〜22は、ジェネラル・フォーム規則に基づく許容可能な状態を示す。図から分かるように、バッファ0および1が有効なデータを含むのに加えて、いずれかのバッファまたは両方のバッファが空の可能性もある。ジェネラル・フォームの場合の許容可能な状態の規則は、以下のように要約することができる。
許容可能な状態の規則(ジェネラル・フォーム)
規則#1− 2つ以下の有効データ・ページを2つのバッファに置くことができる。偶然各バッファが有効データを保持している場合は、各バッファのデータは同じワード線アドレスを有する。ただし、1つ前のサイクルでランダム・アクセス要求が行われた場合は、バッファの1つは、1つ前のそのランダム・アクセス要求に対応するデータを含んでいなければならない。
規則#2− バッファのいずれかまたは両方が(特定のワード線アドレスに関連付けられた)有効なデータ・ページを保持している場合は、キャッシュにはそれと同じワード線アドレスを有する有効データは記憶されていない。
規則#3− 規則#2で述べた特定のワード線アドレス以外のすべてのワード線アドレスについて、そのワード線アドレスに関連付けられた最高1つの有効なデータ・ワードが1つのみのキャッシュ・バンクに記憶されている。すなわち、有効フラグ(図3)とともにバッファ・タグに記憶されたワード線アドレス以外のすべてのワード線アドレスについては、AとB(図2)が同時に1に等しくなることはできない。
ストロング・フォーム方式と対照的に、上述のジェネラル・フォーム規則の下では、低電力方式を実施して必要とされる移動回数を低減する。例えば、先に説明したキャッシュ・ヒットの事例(事例2)では、許容可能な状態のストロング・フォーム規則によるDRAMバンクからバッファへのデータ転送は、ジェネラル・フォームの許容可能な状態の規則の下では不必要になる。また、ジェネラル・フォームの許容可能な状態の規則では、少し前で説明したデータ移動の開始点である特定の有効データ・ワード(例えばDi、Qi、およびCj)が、ランダム・アクセス要求中に初期のシステム状態にない可能性がある。したがって、もう一方のバッファとの間で行われる対称的な移動はもはや必要でなくなる。
ジェネラル・フォーム規則では、必要とされるデータ移動の最小回数は、特定のサイクルごとに決定される。最初にバッファの1つのみが有効なデータ・ページを保持している場合には、そのページをキャッシュまたはDRAMバンクのどちらにも送れることに気づかれよう。ただし、好ましい実施形態では、選択される動作は、DRAMバンクにデータを移動する動作である。代わりにキャッシュにデータを移動すると、同じワード線アドレスを有するDRAMバンクのヒットが後にあった場合に、そのデータをキャッシュからバッファに移動しなければならなくなる。DRAMバンク・ヒット(バッファ・ミスかつキャッシュ・ミス)は、ランダム・アクセス要求時に生じる可能性が統計的に最も高い事象なので、移動動作の回数を減らすために、可能な時にはバッファからDRAMバンクにデータを移動した方がよいことになる。nがシステムにおけるDRAMバンクの総数を表し、mがDRAMバンク1つ当たりのワード線の数を表すとすると、1回の要求時のバッファ・ヒットの確率は、2/(nm)未満であり、一方キャッシュ・ヒットの確率は1/n未満になる。逆に、DRAMバンク・ヒット(バッファ・ミスかつキャッシュ・ミス)の確率は、およそ(n−1)/nになる。したがって、nとmの値が大きいほど、ランダム・アクセス動作についてDRAMバンク・ヒットの確率が高くなる。ジェネラル・フォーム下での初期化手順は、より従来型のシステムとして実現することができる。例えば、キャッシュおよびバッファのすべての有効フラグを「0」に設定することにより、すべての有効データを通常のDRAMバンクに入れることができる。
以下の方法論は、ジェネラル・フォーム規則によって支配されるデータ転送動作を概説する。ランダム・アクセス要求が受け取られない場合は、DiまたはQiの1つ(どちらかがバッファ0またはバッファ1にある場合)が各自のDRAMバンク(DRAMバンクDまたはDRAMバンクQ)に戻される。ランダム・アクセス要求Xjが受け取られた場合は、ジェネラル・フォーム規則で概説したように、初めに、バッファ0に有効なDiがあるか、バッファ1に有効なQiがあるか、キャッシュに有効なCjがあるか、またはそれらの組合せの可能性がある。可能性のある事例は以下の通りである。
事例1− バッファ・ヒット
ストロング・フォーム規則と同様に、j=i、かつ、X=DまたはX=Qである。すなわち、要求されるデータは、定義上バッファ0かバッファ1にすでに記憶されている。許容可能な状態についてのジェネラル・フォーム規則がすでに満たされているので、このクロック・サイクルではそれ以上データ転送は実施されない。これは、図23の状態図で変化がないことに反映される。
事例2− キャッシュ・ヒット
要求されるデータXjをキャッシュ・バンクの1つのその現在の場所からバッファ1に移動することが求められる。どちらかのバッファまたは両方のバッファに有効データがある場合は、可能であれば、好ましくは対応するDRAMバンクにそのデータが移動される。2つのバッファのステータスに関係なく、
一方のキャッシュ・バンク(AまたはB)からバッファ1にXjを移動する。
ここで両方のバッファに有効なデータがある場合は、さらに以下の動作が行われる。
バッファ0からもう一方のキャッシュ・バンク(BまたはA)にDiを移動し、
バッファ1からDRAMバンクQにQiを移動する。
そうでなく、2つのバッファのうち1つのみに有効データがある場合は、
バッファ0からもう一方のキャッシュ・バンク(AまたはB)にDiを移動するか、または
バッファ1からもう一方のキャッシュ・バンク(BまたはA)にQiを移動する。
無論、初めにどちらのバッファにも有効データがない場合は、キャッシュからバッファ1にXjを移動する以外の動作は行われない。上記の一連のデータ移動を図24および25に示す。
事例3a− バッファ・ミス、キャッシュ・ミス、j=i、少なくとも1つのバッファに有効データがある場合
要求されるデータがバッファにもキャッシュにもない場合は、それ(Xj)は、対応するDRAMバンクにある。少なくとも1つのバッファが最初に有効データを有すると仮定し、さらにj=iと仮定すると、DiまたはQiが存在する場合にはX≠DおよびX≠Qも真であることになる。したがって、図26に示すように、この状態に沿った動作を2回の移動で行うことができ、ここではDiが存在すると仮定する。
DRAMバンクXからバッファ0にXjを移動する。
バッファ0からDRAMバンクDにDiを移動する。
事例3b− バッファ・ミス、キャッシュ・ミス、J≠i、少なくとも1つのバッファに有効データがある場合
この場合も、要求されるデータは、対応するDRAMバンクに見つかる。ただし、要求されるデータのワード線アドレスは、1つまたは両方のバッファにあるデータのワード線アドレスと異なる。許容可能な状態の一般的規則の下では、キャッシュ・バンクの1つに記憶された、行アドレスjについて有効なCjが存在する可能性がある。まず、Cj、Di、およびQiがそれぞれ最初に存在すると仮定する。そのため、X≠DまたはX≠Qが真であるか、あるいはその両方が真であることになる。X≠Dの場合は、以下のステップが実施される。
DRAMバンクXからバッファ0にXjを移動する。
一方のキャッシュ・バンク(AまたはB)からバッファ1にCjを移動する。
バッファ1からもう一方のキャッシュ・バンク(BまたはA)にQiを移動する。
バッファ0からDRAMバンクDにDiを移動する。
しかし、X=Dの場合はX≠Qとなり、以下のステップが実施される。
DRAMバンクXからバッファ0にXjを移動する。
一方のキャッシュ・バンク(AまたはB)からバッファ1にCjを移動する。
バッファ0からもう一方のキャッシュ・バンク(BまたはA)にDiを移動する。
バッファ1からDRAMバンクQにQiを移動する。
Cjが存在し、DiおよびQiのうち1つのみが存在する場合は、対応する移動の開始点が存在しないので、そのような移動は行われない。最終的な結果は、なおジェネラル・フォーム規則に従う。
次いで、Cjが存在しないが、DiとQiがともに存在すると仮定する。すると、X≠Dの場合は以下のステップが実施される。
DRAMバンクXからバッファ0にXjを移動する。
バッファ1からどちらかのキャッシュ・バンク(AまたはB)にQiを移動する。
バッファ0からDRAMバンクDにDiを移動する。
そうでなく、X=Dの場合は、X≠Qとなり、以下のステップが実施される。
DRAMバンクXからバッファ0にXjを移動する。
バッファ0からどちらかのキャッシュ・バンク(AまたはB)にDiを移動する。
バッファ1からDRAMバンクQにQiを移動する。
ここで、Cjが存在せず、バッファに有効なデータ・ページが1つのみある場合(Diが存在するか、またはQiが存在するかのいずれかで、両方は存在しない場合)、かつXがバッファ・データに対応しない(X≠DまたはX≠Q)場合は、以下のステップが実施される。
DRAMバンクからバッファ0にXjを移動する。
有効なバッファ・データを、対応するDRAMバンクに移動する。
そうでなく、バッファ中の1つの有効データ・ページがXに対応する場合(X=DまたはX=Q)は、以下のステップが実施される。
DRAMバンクからバッファ0にXjを移動する。
キャッシュ・バンク(BまたはA)に有効なバッファ・データを移動する。
最後に、Cj、Di、またはQiのいずれも存在しない場合は、行われる唯一の動作は、Xjをバッファ0に移動することである。
この一連のデータ移動を図27および28に示す。
以上、破壊読み出し型DRAMを利用したキャッシュを破壊読み出し型DRAMアレイと併せて使用して、アレイへのランダム・アクセス・サイクル時間を短縮する方式について説明した。本システムは、諸利点の中でも特に、SRAMキャッシュを用いるシステム等の他のシステムを上回る、大幅な面積の節減、プロセス統合時の互換性、およびソフト・エラー問題の低減を提供する。
このシステム・アーキテクチャ固有の要点の1つとして、同時の読み出しアクセス動作と書き込みアクセス動作を実行することが可能なデュアル・バンク・キャッシュ構造が挙げられる。また、このアーキテクチャは、データ転送をリダイレクトするために使用される2つのバッファも含む。キャッシュ・タグとバッファ・タグは、現在の状態で記憶されたデータ・ページに関連付けられたすべての情報を含み、それにより、次のクロック・サイクルについてデータ移動の決定性の決定を行うための十分な情報を表す。したがって、タグに履歴データを記憶する必要はない。
許容可能な状態の概念を定義する(ストロング・フォーム規則およびジェネラル・フォーム規則により例示した)ことにより、後に行われるすべてのデータ移動が現在の状態に先立つ履歴ではなく現在の状態のみに依存して行われるように、経路に依存しないアルゴリズムを設計することができる。連続した動作のシーケンスはともにスタックすることができ、したがってすべてのランダム・アクセスをシームレスに行うことができる。さらに、要求されるデータは、限られた数のサイクルで最終状態に達する(すなわち、要求されるデータは、セットアップ・タイムが使用される場合は1クロック・サイクルでバッファに到達し、あるいはタグ比較に1クロックのパイプが使用される場合は2クロック・サイクルでバッファに到達する)。経路の非依存性という性質と、ランダム・アクセス要求が限られたサイクルで完了されるという事実から、限られた数のテスト・ケースしか存在しない。したがって、このDRAMキャッシュ・システムは、テスト・ベンチ設計で完全に検証することができる。
先に述べたように、ストロング・フォーム規則に基づく許容可能な状態は、ジェネラル・フォーム規則による許容可能状態の部分集合である。したがって、ストロング・フォーム規則と併せて使用される「対称アルゴリズム」は、一般にはより単純なロジックを含むが、電力消費はより高くなる。「低電力」アルゴリズムは、電力消費は低いが、一般にはより長いタグ比較時間が伴う、より多くの論理コンポーネントを有する。ただし、本発明の実施形態は、経路の非依存性が維持される限りは、許容できる状態についての他の可能な規則とそれに関連付けられたアルゴリズムも企図することに留意されたい。
さらに、この破壊読み出し型メモリによってキャッシュされる破壊読み出し型ランダム・アクセス・メモリ・システムでは、キャッシュとして使用されるDRAMバンクの数は3つ以上としてもよいことが企図される。バッファの数も3つ以上にしてよい。追加的なキャッシュ・バンクおよびバッファを、代替アーキテクチャと併せて、またはコアからのマルチサイクル待ち時間などの異なる動作構成で使用することもできる。倍速のサイクル時間のキャッシュを用いるシステムでは、キャッシュ・バンクの数は1つに減らしてもよい。ラッチ機能がローカルDRAMアレイまたはグローバル・データ・リドライバなどの他の場所に提供される場合は、バッファをマルチプレクサに置き換えてもよい。チップ面積がそれほど問題とならない場合は、上記のアーキテクチャまたはアルゴリズムあるいはその両方を、SRAMキャッシュを利用したシステムに適用することも可能である。キャッシュ待ち時間から見たより多くの動作の余裕、あるいは冗長性へのより良好な対処、またはその他の性能上またはタイミングの問題のために、上記のアーキテクチャまたはアルゴリズムあるいはその両方を、シングル・ポートまたはデュアル・ポートのSRAMキャッシュを利用したシステムに適用してもよい。
本発明について好ましい実施形態を参照して説明したが、当業者には、本発明の範囲から逸脱せずに、各種の変更を加え、また本発明の要素を均等物に置き換えてもよいことが理解されよう。また、本発明の基本的な範囲から逸脱せずに、特定の状況または材料を本発明の教示に合わせて適合するために多くの変更を加えることができる。したがって、本発明は、本発明を実施するために企図される最良の形態としてここに開示される特定の実施形態に限定されず、本発明は、頭記の特許請求の範囲に該当するすべての実施形態を包含するものとする。
本発明の一実施形態による、破壊読み出し型のダイナミック・ランダム・アクセス・メモリ(DRAM)システムの概略的ブロック図である。 DRAMシステムに含まれるキャッシュ・タグの構造を示す表である。 DRAMシステムに含まれるバッファ・タグの構造を示す表である。 DRAMシステムに含まれるバッファ構造の一実施形態を示す略図である。 図4に示すデータ線の例示的な接続を示す略図である。 DRAMシステム構成で許可される可能なデータ転送動作の例を説明する表である。 図4に示すバッファ構造の動作を説明するタイミング図である。 図4に示すバッファ構造の代替実施形態の略図である。 図8のバッファ構造に関連付けられたパイプライン方式を説明する表である。 DRAMシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるストロング・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 ストロング・フォーム・アルゴリズムで使用される初期化手順を説明する状態図である。 ストロング・フォーム・アルゴリズムにおけるオプションのデータ転送動作を説明する状態図である。 ストロング・フォーム・アルゴリズムで許容される状態を説明する状態の表である。 DRAMシステムと併せて代替として使用することが可能なジェネラル・フォーム・アルゴリズムで許可される状態を説明する状態表である。 DRAMシステムと併せて代替として使用することが可能なジェネラル・フォーム・アルゴリズムで許可される状態を説明する状態表である。 DRAMシステムと併せて代替として使用することが可能なジェネラル・フォーム・アルゴリズムで許可される状態を説明する状態表である。 DRAMシステムと併せて代替として使用することが可能なジェネラル・フォーム・アルゴリズムで許可される状態を説明する状態表である。 DRAMシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。 DRAMシステムと併せて使用されるジェネラル・フォーム・アルゴリズムにおける各種のデータ転送動作を表す状態図である。

Claims (11)

  1. m本のワード線をそれぞれが有するn個のDRAMバンクと、
    第1DRAMキャッシュ・バンク及び第2DRAMキャッシュ・バンクを含むキャッシュであって、前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクは両方ともm本のワード線を有する前記キャッシュと、
    前記n個のDRAMバンク、前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクから読み出されたデータを記憶することが可能な第1バッファ及び第2バッファを含むライン・バッファ構造と、
    前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクの所与のワード線に保持されたデータのDRAMバンク・アドレス情報と、前記第1DRAMキャッシュ・バンクのワード線におけるデータの存在又は不存在を示すフラグAと、前記第2DRAMキャッシュ・バンクのワード線におけるデータの存在又は不存在を示すフラグBとを記憶するキャッシュ・タグと、
    前記第1バッファ及び前記第2バッファに保持されているデータのDRAMバンク・アドレス情報と、前記第1バッファ及び前記第2バッファのそれぞれに有効なデータが存在するかどうかを示す有効フラグと、前記第1バッファ及び前記第2バッファのいずれかに以前に要求されたデータが保持されているかどうかを示す要求フラグとを記憶するバッファ・タグとを備え、
    前記n個のDRAMバンクと前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクから読み出されるデータは、破壊読み出しされるDRAMシステム。
  2. 1クロック・サイクル内に、前記n個のDRAMバンクからの読み出し動作が1回行われ、前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクからの読み出し動作が1回行われ、前記n個のDRAMバンクへの書き込み動作が1回行われ、そして前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクへの書き込み動作が1回行われる、請求項1に記載のDRAMシステム。
  3. 前記第1バッファ及び前記第2のバッファがそれぞれ有効データを保持しており、前記第1バッファ内の前記有効データは、前記第2バッファ内の前記有効データと同じワード線アドレスiを有し且つ前記第2バッファ内の前記有効データと異なるバンク・アドレスを有するという規則1と、
    前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクのいずれにも前記ワード線アドレスiに等しいワード線アドレスを有する有効データがないという規則2と、
    前記アドレスi以外のすべての他のワード線アドレスについて、前記第1のキャッシュ・バンク又は前記第2のキャッシュ・バンクのいずれかの対応するワード線に1つの有効データが記憶されているという規則3とを満足するように、
    前記キャッシュ・タグの前記DRAMバンク・アドレス情報、前記フラグA及び前記フラグBを初期設定すると共に、前記バッファ・タグの前記DRAMバンク・アドレス情報、前記有効フラグ及び前記要求フラグを初期設定する、請求項1又は請求項2に記載のDRAMシステム。
  4. 前記初期設定後の読み出し又は書き込み要求毎に、前記規則1,前記規則2及び前記規則3を維持するように、前記n個のDRAMバンク、前記第1DRAMキャッシュ・バンク、前記第2DRAMキャッシュ・バンク、前記第1バッファ及び前記第2バッファの間のデータ転送が行われる、請求項3に記載のDRAMシステム。
  5. 前記初期設定後の読み出し又は書き込み要求毎に、前記規則1,前記規則2及び前記規則3を維持するように、1クロック・サイクル内に、前記n個のDRAMバンクからの読み出し動作、前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクからの読み出し動作、前記n個のDRAMバンクへの書き込み動作、並びに前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクへの書き込み動作が選択的に行われる、請求項3に記載のDRAMシステム。
  6. m本のワード線をそれぞれが有するn個のDRAMバンクと、
    第1DRAMキャッシュ・バンク及び第2DRAMキャッシュ・バンクを含むキャッシュであって、前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクは両方ともm本のワード線を有する前記キャッシュと、
    前記n個のDRAMバンクと前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクとの間にそれぞれ接続された第1バッファ及び第2バッファを含むライン・バッファ構造とを備え
    前記n個のDRAMバンクからのデータは常に前記第1バッファに記憶され、前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクからのデータは常に前記第2バッファに記憶され、そして前記第1バッファ及び前記第2バッファからのデータは前記n個のDRAMバンク、前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクに送られ、
    前記n個のDRAMバンクと前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクから読み出されるデータは、破壊読み出しされるDRAMシステム。
  7. 前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクの所与のワード線に保持されたデータのDRAMバンク・アドレス情報と、前記第1DRAMキャッシュ・バンクのワード線におけるデータの存在又は不存在を示すフラグAと、前記第2DRAMキャッシュ・バンクのワード線におけるデータの存在又は不存在を示すフラグBとを記憶するキャッシュ・タグと、
    前記第1バッファ及び前記第2バッファに保持されているデータのDRAMバンク・アドレス情報と、前記第1バッファ及び前記第2バッファのそれぞれに有効なデータが存在するかどうかを示す有効フラグと、前記第1バッファ及び前記第2バッファのいずれかに以前に要求されたデータが保持されているかどうかを示す要求フラグとを記憶するバッファ・タグとを備える、請求項6に記載のDRAMシステム。
  8. 1クロック・サイクル内に、前記n個のDRAMバンクからの読み出し動作が1回行われ、前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクからの読み出し動作が1回行われ、前記n個のDRAMバンクへの書き込み動作が1回行われ、そして前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクへの書き込み動作が1回行われる、請求項6又は請求項7に記載のDRAMシステム。
  9. 前記第1バッファ及び前記第2のバッファがそれぞれ有効データを保持しており、前記第1バッファ内の前記有効データは、前記第2バッファ内の前記有効データと同じワード線アドレスiを有し且つ前記第2バッファ内の前記有効データと異なるバンク・アドレスを有するという規則1と、
    前記第1DRAMキャッシュ・バンク及び前記第2DRAMキャッシュ・バンクのいずれにも前記ワード線アドレスiに等しいワード線アドレスを有する有効データがないという規則2と、
    前記アドレスi以外のすべての他のワード線アドレスについて、前記第1のキャッシュ・バンク又は前記第2のキャッシュ・バンクのいずれかの対応するワード線に1つの有効データが記憶されているという規則3とを満足するように、
    前記キャッシュ・タグの前記DRAMバンク・アドレス情報、前記フラグA及び前記フラグBを初期設定すると共に、前記バッファ・タグの前記DRAMバンク・アドレス情報、前記有効フラグ及び前記要求フラグを初期設定する、請求項7又は請求項8に記載のDRAMシステム。
  10. 前記初期設定後の読み出し又は書き込み要求毎に、前記規則1,前記規則2及び前記規則3を維持するように、前記n個のDRAMバンク、前記第1DRAMキャッシュ・バンク、前記第2DRAMキャッシュ・バンク、前記第1バッファ及び前記第2バッファの間のデータ転送が行われる、請求項7,請求項8又は請求項9の記載のDRAMシステム。
  11. 前記初期設定後の読み出し又は書き込み要求毎に、前記規則1,前記規則2及び前記規則3を維持するように、1クロック・サイクル内に、前記n個のDRAMバンクからの読み出し動作、前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクからの読み出し動作、前記n個のDRAMバンクへの書き込み動作、並びに前記第1DRAMキャッシュ・バンク又は前記第2DRAMキャッシュ・バンクへの書き込み動作が選択的に行われる、請求項10に記載のDRAMシステム。
JP2004500188A 2002-04-25 2003-04-07 破壊読み出し型ランダム・アクセス・メモリ・システム Expired - Fee Related JP4150718B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/063,466 US6801980B2 (en) 2002-04-25 2002-04-25 Destructive-read random access memory system buffered with destructive-read memory cache
PCT/US2003/010746 WO2003091883A1 (en) 2002-04-25 2003-04-07 Destructive-read random access memory system buffered with destructive-read memory cache

Publications (2)

Publication Number Publication Date
JP2005524146A JP2005524146A (ja) 2005-08-11
JP4150718B2 true JP4150718B2 (ja) 2008-09-17

Family

ID=29248086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004500188A Expired - Fee Related JP4150718B2 (ja) 2002-04-25 2003-04-07 破壊読み出し型ランダム・アクセス・メモリ・システム

Country Status (10)

Country Link
US (3) US6801980B2 (ja)
EP (1) EP1497733B1 (ja)
JP (1) JP4150718B2 (ja)
KR (1) KR100772998B1 (ja)
CN (1) CN1296832C (ja)
AT (1) ATE513264T1 (ja)
AU (1) AU2003234695A1 (ja)
IL (1) IL164726A0 (ja)
TW (1) TW594740B (ja)
WO (1) WO2003091883A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100541366B1 (ko) * 2002-07-19 2006-01-16 주식회사 하이닉스반도체 고속 데이터 억세스를 위한 디램
DE10317162B4 (de) * 2003-04-14 2010-02-11 Qimonda Ag Speichervorrichtung mit kurzer Wortleitungszykluszeit und Leseverfahren hierzu
US20040221117A1 (en) * 2003-05-02 2004-11-04 Shelor Charles F. Logic and method for reading data from cache
US20050114588A1 (en) * 2003-11-26 2005-05-26 Lucker Jonathan C. Method and apparatus to improve memory performance
JP2006190402A (ja) * 2005-01-07 2006-07-20 Renesas Technology Corp 半導体装置
KR100672029B1 (ko) * 2005-05-27 2007-01-19 삼성전자주식회사 Dram히든 리프레쉬 동작 시 발생되는 동작 시간 지연을감소시킬 수 있는 장치와 방법
KR100970946B1 (ko) 2008-02-05 2010-07-20 부경대학교 산학협력단 플래시 메모리 기반 임베디드 데이터베이스 시스템의지연쓰기 방법 및 그를 위한 시스템
US9442846B2 (en) 2009-03-17 2016-09-13 Cisco Technology, Inc. High speed memory systems and methods for designing hierarchical memory systems
US8266408B2 (en) * 2009-03-17 2012-09-11 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
US8433880B2 (en) * 2009-03-17 2013-04-30 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
WO2011075167A1 (en) * 2009-12-15 2011-06-23 Memoir Systems,Inc. System and method for reduced latency caching
CN102939590B (zh) * 2010-06-11 2016-09-14 飞思卡尔半导体公司 为在存储器元件内存储的数据提供数据保护的方法及其集成电路器件
WO2012106332A1 (en) 2011-01-31 2012-08-09 Everspin Technologies, Inc. Method of writing to a spin torque magnetic random access memory
US8675442B2 (en) 2011-10-04 2014-03-18 Qualcomm Incorporated Energy efficient memory with reconfigurable decoding
CN104484239B (zh) * 2014-12-05 2019-02-26 深圳市华宝电子科技有限公司 一种车载视频文件修复方法及装置
US10866897B2 (en) * 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US10650899B2 (en) * 2017-04-27 2020-05-12 Everspin Technologies, Inc. Delayed write-back in memory with calibration support
JP2019079377A (ja) 2017-10-26 2019-05-23 東芝メモリ株式会社 半導体記憶装置
KR20200091184A (ko) 2019-01-22 2020-07-30 에스케이하이닉스 주식회사 반도체 메모리 장치
US11899590B2 (en) * 2021-06-18 2024-02-13 Seagate Technology Llc Intelligent cache with read destructive memory cells

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725945A (en) 1984-09-18 1988-02-16 International Business Machines Corp. Distributed cache in dynamic rams
US5434530A (en) * 1990-05-02 1995-07-18 Microelectronics & Computer Technology Corporation Superconducting semiconducting cross-bar circuit
US5544306A (en) 1994-05-03 1996-08-06 Sun Microsystems, Inc. Flexible dram access in a frame buffer memory and system
US6161208A (en) 1994-05-06 2000-12-12 International Business Machines Corporation Storage subsystem including an error correcting cache and means for performing memory to memory transfers
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
US5629889A (en) * 1995-12-14 1997-05-13 Nec Research Institute, Inc. Superconducting fault-tolerant programmable memory cell incorporating Josephson junctions
US5838943A (en) * 1996-03-26 1998-11-17 Advanced Micro Devices, Inc. Apparatus for speculatively storing and restoring data to a cache memory
US5809528A (en) 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
JP3816110B2 (ja) 1997-02-17 2006-08-30 株式会社ルネサステクノロジ 半導体集積回路装置
US5801996A (en) * 1997-02-26 1998-09-01 Micron Technology, Inc. Data path for high speed high bandwidth DRAM
US6018763A (en) 1997-05-28 2000-01-25 3Com Corporation High performance shared memory for a bridge router supporting cache coherency
US6081872A (en) 1997-07-07 2000-06-27 International Business Machines Corporation Cache reloading performance improvement through the use of early select techniques with and without pipelining
KR100329024B1 (ko) 1998-03-27 2002-03-18 아끼구사 나오유끼 파괴 읽기형 메모리 회로, 이를 위한 리스토어 회로 및 감지 증폭기
US6378110B1 (en) * 1998-03-31 2002-04-23 Synopsys, Inc. Layer-based rule checking for an integrated circuit layout
JP3786521B2 (ja) * 1998-07-01 2006-06-14 株式会社日立製作所 半導体集積回路及びデータ処理システム
JP3374967B2 (ja) 1998-10-26 2003-02-10 日本電気株式会社 半導体集積回路
US6178479B1 (en) 1999-02-22 2001-01-23 Nband Communications Cycle-skipping DRAM for power saving
KR100326939B1 (ko) 1999-09-02 2002-03-13 윤덕용 고속 열 사이클이 가능한 메모리의 파이프라인 구조
JP3863330B2 (ja) * 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
JP4427847B2 (ja) * 1999-11-04 2010-03-10 エルピーダメモリ株式会社 ダイナミック型ramと半導体装置
JP4535563B2 (ja) 2000-04-28 2010-09-01 ルネサスエレクトロニクス株式会社 半導体記憶装置
US6697909B1 (en) 2000-09-12 2004-02-24 International Business Machines Corporation Method and apparatus for performing data access and refresh operations in different sub-arrays of a DRAM cache memory
DE60112701T2 (de) * 2000-12-20 2006-05-18 Fujitsu Ltd., Kawasaki Multiportspeicher auf Basis von DRAM
US6829682B2 (en) * 2001-04-26 2004-12-07 International Business Machines Corporation Destructive read architecture for dynamic random access memories
US6587388B2 (en) * 2001-04-27 2003-07-01 International Business Machines Corporation Method and apparatus for reducing write operation time in dynamic random access memories
US6711078B2 (en) * 2002-07-01 2004-03-23 International Business Machines Corporation Writeback and refresh circuitry for direct sensed DRAM macro

Also Published As

Publication number Publication date
EP1497733B1 (en) 2011-06-15
US20030204667A1 (en) 2003-10-30
AU2003234695A1 (en) 2003-11-10
JP2005524146A (ja) 2005-08-11
KR100772998B1 (ko) 2007-11-05
WO2003091883A1 (en) 2003-11-06
IL164726A0 (en) 2005-12-18
US20050226083A1 (en) 2005-10-13
CN1650270A (zh) 2005-08-03
EP1497733A4 (en) 2008-04-30
TW200305882A (en) 2003-11-01
CN1296832C (zh) 2007-01-24
US7203794B2 (en) 2007-04-10
US6801980B2 (en) 2004-10-05
US20040221097A1 (en) 2004-11-04
EP1497733A1 (en) 2005-01-19
US6948028B2 (en) 2005-09-20
KR20040105805A (ko) 2004-12-16
ATE513264T1 (de) 2011-07-15
TW594740B (en) 2004-06-21

Similar Documents

Publication Publication Date Title
US7203794B2 (en) Destructive-read random access memory system buffered with destructive-read memory cache
US6647478B2 (en) Semiconductor memory device
JP3065736B2 (ja) 半導体記憶装置
JP2007234225A (ja) ダイナミック・ランダム・アクセス・メモリの破壊読出アーキテクチャ
KR100613941B1 (ko) 커맨드당 포스트된 라이트를 갖는 메모리 장치
US6459647B1 (en) Split-bank architecture for high performance SDRAMs
US6282604B1 (en) Memory controller and method for meory devices with mutliple banks of memory cells
JP3789998B2 (ja) メモリ内蔵プロセサ
US6219283B1 (en) Memory device with local write data latches
US6941414B2 (en) High speed embedded DRAM with SRAM-like interface
KR100398954B1 (ko) 멀티웨이 세트 연관 구조의 캐쉬 메모리 및 데이터 판독방법
KR100861854B1 (ko) 반도체 기억 장치 및 그 버스트 동작 방법
US20020087805A1 (en) Method of maintaining data coherency in late-select synchronous pipeline type semiconductor memory device and data coherency maintaining circuit therefor
JP2002237184A (ja) 半導体記憶装置
US11983113B2 (en) Method for copying data within memory device, memory device, and electronic device thereof
US20230418474A1 (en) Pim computing system and memory controller thereof
WO2009092037A1 (en) Content addressable memory augmented memory
JP2004355810A (ja) 半導体記憶装置
Ji et al. Destructive-read random access memory system buffered with destructive-read memory cache for SoC applications
KR100335587B1 (ko) 다이나믹 랜덤 액세스 기억 장치

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080624

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080630

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130704

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees