JP4360766B2 - Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置 - Google Patents

Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置 Download PDF

Info

Publication number
JP4360766B2
JP4360766B2 JP2001276057A JP2001276057A JP4360766B2 JP 4360766 B2 JP4360766 B2 JP 4360766B2 JP 2001276057 A JP2001276057 A JP 2001276057A JP 2001276057 A JP2001276057 A JP 2001276057A JP 4360766 B2 JP4360766 B2 JP 4360766B2
Authority
JP
Japan
Prior art keywords
address
refresh
sub
data
array
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
JP2001276057A
Other languages
English (en)
Other versions
JP2002150771A (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 JP2002150771A publication Critical patent/JP2002150771A/ja
Application granted granted Critical
Publication of JP4360766B2 publication Critical patent/JP4360766B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • 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
    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40607Refresh operations in memory devices with an internal cache or data buffer

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ・システム内のキャッシュ・メモリに関し、より詳細には、リフレッシュの不利益なしにダイナミック・ランダム・アクセス・メモリ(DRAM)キャッシュ・メモリをリフレッシュする方法および装置に関する。
【0002】
【従来の技術】
一般的なコンピュータ・システムでは、データ記憶機能によって中央演算処理装置(CPU)をサポートするためのメモリ階層が存在する。コンピュータ内のメイン・メモリとして最も頻繁に使用されるメモリ・デバイスのタイプの1つは、ダイナミック・ランダム・アクセス・メモリ(DRAM)である。これは、DRAMが比較的低コストかつ高密度であり、コンピュータ・システムの小さなエリアに大量のデータを記憶することが容易だからである。しかし、DRAMに記憶したデータは定期的にリフレッシュしなければならず、さもなければ、DRAMセルから電荷が漏れるせいでデータは失われることになる。トレード・オフとなるのは、DRAM中のデータをリフレッシュするのに必要なシステム・オーバーヘッドにおけるコストがより高くなり、それにより速度上の不利益が生じることである。速いプロセッサをより遅いメモリとインタフェースする必要があるとき、プロセッサ・サイクル・タイムがメモリのデータ・アドレス・アクセス時間よりも速いので、全体的なシステム速度は遅くなる。このような状況への対処法の1つは、より高速の組込みキャッシュ・メモリを使用して、より遅いメモリ(すなわちコンピュータ・システムのメイン・メモリ)にアクセスする実効時間を短縮するものである。
【0003】
キャッシュ・メモリは、より大きく通常はより遅いメイン・メモリから選択されたデータを保持し、それによりプロセッサが選択データから必要なデータをより迅速にフェッチできるようにするバッファである。キャッシュ・メモリは、所与の時間に、あるデータが次にプロセッサによって選択される確率が他のデータよりも高いという原理に基づく。プロセッサによって使用される確率のより高いデータがキャッシュ・メモリに記憶されて、アクセス時間がより速くなった場合、そのデータにアクセスする平均速度は上昇する。したがって、メイン・メモリよりも通常小さく速いキャッシュ・メモリを使用して、メイン・メモリの最も頻繁にアクセスされるデータを記憶する。
【0004】
現代のコンピュータ処理システムのメモリ階層では、キャッシュ・メモリは通常、最上位レベルのプロセッサ、すなわち中央演算処理装置(CPU)のすぐ下に位置する。通常、キャッシュ・メモリは複数のレベルに分割される。例えば、レベル1キャッシュ(L1)とレベル2キャッシュ(L2)である。いくつかのレベル(例えばレベル1キャッシュL1)は、CPUと同じチップ上にある場合があり、したがって、「オンチップ」と呼ばれる。このようなオンチップ・キャッシュ・メモリは、通常、より低密度だがより高速であるスタティック・ランダム・アクセス・メモリ(SRAM)で構成される。キャッシュ・メモリの他のレベル(例えばレベル2キャッシュL2)は、CPUとは別に位置する場合があり、より高密度だがより低速であるDRAMで構成される。高密度DRAMをコンピュータ・システム内のプロセッサのキャッシュ・メモリとして使用することにより、より大きなサイズのキャッシュ・メモリを提供することができ、したがって、「キャッシュ・ミス・レート」(後で詳細に説明する)を減少させることができる。
【0005】
DRAMに記憶されたデータは、ある時間にわたってアイドルであった後は破壊されるので、DRAMは、DRAM中のデータをリストアするためのリフレッシュ・サイクルを必要とする。DRAM中のメモリ・セルは、ある時間内に定期的にリフレッシュしなければならない。この時間を「保持時間」と呼ぶ。技術およびチップ温度に応じて、保持時間は、ほんの数ミリ秒から数百ミリ秒までの範囲で変動する場合がある。データ・リフレッシュは、メモリ配列中の各行に一度に一行ずつアクセスすることによって達成される。メモリ配列がアクセスを受けてリフレッシュされるとき、配列のメモリ・セルに記憶されているデータがセンス増幅器に読み出され、すぐにメモリ・セルにライトバックされる。したがって、各メモリ・セルに対応するコンデンサが、その初期値まで再充電される。DRAMにおけるこうした必要なリフレッシュ・サイクルでは、メモリ配列の各行がリフレッシュ・サイクルの最中にある間はDRAM中のデータにアクセスできないため、大幅な遅延が生じる。言い換えれば、DRAMキャッシュ・メモリのメモリ・セルがリフレッシュされている間は、そのメモリ・エリアで他の動作を行うことができない。この「デッド・タイム」により、コンピュータ・システム内のメモリ中のデータにアクセスする実効速度が遅くなる。より質の高いコンデンサをキャッシュ・メモリ中のメモリ・セルに使用することによってリフレッシュ時間を短縮することはできるものの、データ・リフレッシュの要件は、依然としてコンピュータ・システムのタイミングにおける遅延を引き起こす重要な要因である。
【0006】
Leungに譲渡された米国特許第6028804号は、上記の問題の解決法を提案している。Leungは、DRAMキャッシュ・メモリのピーク周波数をCPUのピーク外部アクセス周波数よりも高く動作させる方法を述べている。DRAMリフレッシュ動作のためのリフレッシュ・サイクルは隠すことができ、したがってメモリ・システムは、外部世界にはSRAMのようにみえる。しかし、このような従来システムにおける欠点は、このような従来型のコンピュータ・システム内に採用したDRAMキャッシュ・メモリがCPUよりも速く動作できなければならないことであり、これは実際には非常に難しく、実際的であったとしても高いコストを必要とする。
【0007】
したがって、余分な遅延をなくすために、DRAMキャッシュ・メモリに記憶されたデータをリフレッシュする改良型の方法が必要とされている。
【0008】
【発明が解決しようとする課題】
本発明の目的は、リフレッシュの不利益なしにコンピュータ・システム内のキャッシュ・メモリ中のデータをリフレッシュする方法および装置を提供することである。
【0009】
【課題を解決するための手段】
上記および他の目的を達成するために、本発明は、コンピュータ・システム内でプロセッサからアクセスされるキャッシュ・メモリ中のデータをリフレッシュする方法を提供する。この方法は、(a)プロセッサから出された要求アドレスをキャッシュ・メモリに記憶されているTAGアドレスによって検証するステップと、(b)ステップ(a)で要求アドレスが検証されたときに、キャッシュ・メモリの複数のサブ配列のうちの1つにある、要求アドレスに対応するワード線にアクセスするステップと、(c)リフレッシュ・アドレスを生成して、キャッシュ・メモリ中の該1つのサブ配列以外の複数のサブ配列中のデータをリフレッシュするステップであって、各リフレッシュ・アドレスが、該1つのサブ配列以外の複数のサブ配列それぞれの、対応するワード線のアドレスを指定するステップと、(d)該1つのサブ配列以外の複数のサブ配列中のデータがリフレッシュされる間に、1つのサブ配列中の、要求アドレスによってアクセスされるワード線に対して読取り/書込み動作を行うステップとを含む。該1つのサブ配列に対する読取り/書込み動作と、該1つのサブ配列以外の複数のサブ配列中のデータのリフレッシュは、同時に行うことが好ましい。前述の方法のステップ(a)は、TAGメモリにTAGアドレスを記憶するステップであって、各TAGアドレスが、キャッシュ・メモリに記憶された対応するワード線データに関連するステップと、要求アドレスをTAGアドレスと比較するステップと、要求アドレスと同一のTAGアドレスを選択するステップを含むことができる。前述の方法のステップ(c)は、1つのサブ配列以外の複数のサブ配列それぞれのワード線の状態を把握することにより、そのサブ配列に対するデータ・リフレッシュ・タイミングを提供するステップと、該1つのサブ配列以外の複数のサブ配列それぞれの中のデータがリフレッシュされたときに、そのサブ配列に対するデータ・リフレッシュ・タイミングをリセットするステップとを含むことができる。
【0010】
本発明はまた、コンピュータ・システム内でプロセッサからアクセス可能なキャッシュ・メモリ中のデータをリフレッシュするための装置も提供する。この装置は、プロセッサから出された要求アドレスを検出するためのメモリ・コントローラと、メモリ・コントローラによって検出された要求アドレスを、キャッシュ・メモリに記憶されているデータに関連するアドレスと比較するためのコンパレータと、コンパレータが要求アドレスと同一のアドレスを見つけたときにリフレッシュ・アドレスを生成して、キャッシュ・メモリに記憶されているデータをリフレッシュするためのリフレッシュ・コントローラとを備え、要求アドレスは、キャッシュ・メモリの第1のサブ配列中のワード線にアクセスし、各リフレッシュ・アドレスは、第1のサブ配列以外の各サブ配列中の、対応するワード線にアクセスする。コンパレータは、キャッシュ・メモリ中のTAGメモリからTAGアドレスを受け取ることが好ましく、各TAGアドレスは、キャッシュ・メモリのデータ・メモリに記憶されているデータの一部に関連する。本発明のリフレッシュ・コントローラは、リフレッシュ・アドレスを生成するためのリフレッシュ・アドレス・ジェネレータを含むことが好ましい。各リフレッシュ・アドレス・ジェネレータを第1のサブ配列以外の各サブ配列と関連付けて、第1のサブ配列以外のサブ配列のうちの対応する1つに記憶されているデータをリフレッシュするためのリフレッシュ・アドレスを生成することができ、また、各リフレッシュ・アドレス・ジェネレータは、第1のサブ配列以外のサブ配列のうち対応する1つに対するリフレッシュ・タイミングを提供するためのリフレッシュ・カウンタを含むこともできる。リフレッシュ・カウンタは、そのリフレッシュ・カウンタに関連するサブ配列中のデータがリフレッシュされたとき、リフレッシュ・タイミングを初期値にリセットすることができる。
【0011】
【発明の実施の形態】
本明細書では、本発明の詳細な例示的実施形態を開示する。しかし、本明細書に開示する具体的な構造上および機能上の詳細は、本発明の好ましい実施形態を述べるための典型にすぎない。どんなキャッシュ・レベルに対するどんなダイナミック・ランダム・アクセス・メモリ(DRAM)にも、同じリフレッシュの概念を適用することができる。
【0012】
サイズの大きいメイン・メモリを備えるコンピュータ・システムに有用なキャッシュ・メモリのタイプの1つは、「連想キャッシュ・メモリ」である。連想キャッシュ・メモリは、2つのタイプのメモリ、すなわちデータ・メモリおよびTAGメモリを含む。データ・メモリは、メイン・メモリの固定サイズの領域(例えばワード線)であるキャッシュ・ラインを記憶し、TAGメモリ(またはディレクトリ・メモリ)は、データ・メモリに記憶されている各キャッシュ・ラインのアドレスを記憶する。
【0013】
図1を参照すると、本発明によるコンピュータ・システムのメモリ構成を示すブロック図が提供されている。このコンピュータ・システムは、「オンチップ」キャッシュ・メモリ(L1キャッシュ)13を有する中央演算処理装置(CPU)11、メイン・メモリ15、CPUバス17、CPUバス17上のデータ・トラフィックを制御するためのメモリ・コントローラ18、および第2レベル・キャッシュ・メモリ(L2キャッシュ)19を備える。
【0014】
第1レベル・キャッシュ・メモリ13は、CPU11と同じチップ上に統合されている。第1レベル・キャッシュ・メモリ13は、より広い帯域幅およびより短いワイヤ幅でCPU11と統合されており、したがって外部チップとの間の信号の送信または受信あるいはその両方に関連するどんな遅延も回避するので、より高速である。第2レベル・キャッシュ・メモリ19は、CPUとは異なるチップ上に位置し、第1レベル・キャッシュ・メモリ13よりも容量が大きいが、メイン・メモリ15よりは小さい。
【0015】
キャッシュ・メモリ13、19は、CPU11とメイン・メモリ15との間のバッファとして働く。キャッシュ・メモリ13、19のそれぞれでは、データ・ワードがキャッシュ・メモリに記憶され、「キャッシュ・ブロック」または「キャッシュ・ライン」と呼ばれる小さなページに分類される。キャッシュ・メモリの内容は、メイン・メモリ・ブロックのセットのコピーである。各キャッシュ・ラインは、「TAGアドレス」でマークされる。したがって、各キャッシュ・ラインは、メイン・メモリのどの部分にそのキャッシュ・ラインが属するかを知っている。対応するキャッシュ・ラインに割り当てられたTAGアドレス(非連続的な場合もある)は、「TAGメモリまたはディレクトリ」と呼ばれる特別なメモリに記憶される。
【0016】
第1レベル・キャッシュ・メモリ13では、あるデータにアクセスするためにアドレスがCPU11から要求されたとき、その要求アドレスが、第1レベル・キャッシュ・メモリ13のTAGメモリ(図2参照)に記憶されているTAGアドレスと比較される。要求アドレスがTAGメモリ中のTAGアドレスの中に見つかった場合は、要求アドレスに対応するデータがキャッシュ・メモリ13中に存在すると判定され、このことは「ヒット」と呼ばれる。キャッシュ・メモリ13中に要求アドレスのデータが見つかると、そのデータはCPU11に転送される。TAGメモリはまた、キャッシュ・メモリ13中のデータを突き止めるためのオフセット・アドレスも含む。キャッシュ・メモリ中のデータを突き止めることは当技術分野で周知であり、したがって、その詳細な記述は本明細書では省略する。
【0017】
一方、要求アドレスがキャッシュ・メモリ13のTAGメモリ中に見つからない場合は、要求アドレスに対応するデータがキャッシュ・メモリ13中に存在しないと判定され、このことは「ミス」と呼ばれる。第1レベル・キャッシュ・メモリ13中で「ミス」が生じると、要求アドレスは、より低いレベルのメモリ、例えば第2レベル・キャッシュ・メモリ19に送られる。以下に、第2レベル・キャッシュ・メモリにおけるデータ・アクセス・プロセスについて詳細に述べる。第2レベル・キャッシュ・メモリ19中で「ミス」が生じた場合(すなわち第2レベル・キャッシュ・メモリ中にデータが存在しない場合)、要求アドレスは、第3レベル・キャッシュ・メモリ(利用可能ならば)、またはメイン・メモリに送られる。
【0018】
図1において、このコンピュータ・システムは、第1レベル・キャッシュ・メモリ13にSRAMを採用し、第2レベル・キャッシュ・メモリ19にDRAMを採用するのが好ましいため、第1レベル・キャッシュ・メモリ13にはデータ・リフレッシュ・プロセスは必要ない。したがって、本発明によるデータのリフレッシュ方法を第2レベル・キャッシュ・メモリ19に関して述べる。ただし本発明は、メイン・メモリをサポートするための階層メモリ・システムで使用されるどんなDRAMキャッシュ・メモリにも適用されることに留意されたい。
【0019】
図2を参照すると、第2レベル・キャッシュ・メモリ19は、データ・メモリ191およびTAGメモリ192を含む。データ・メモリ191は、CPU(11、図1参照)によって選択される確率がより高いデータを記憶し、TAGメモリ192は、データ・メモリ191に記憶されたデータの対応するキャッシュ・ラインのアドレスをそれぞれ指定するTAGアドレスを記憶する。
【0020】
前述のように、第1レベル・キャッシュ・メモリ(13、図1参照)中で「ミス」が生じたとき、CPUから出された要求アドレスがCPUバス(17、図1参照)上にロードされて、第2キャッシュ・メモリ19に転送される。メモリ・コントローラ(18、図1参照)は、CPUバスから要求アドレスを受け取り、それをTAGリフレッシュ・コントローラ194に含まれるTAGコンパレータ193に送る。TAGコンパレータ193は、要求アドレスを、キャッシュ・メモリ19のTAGメモリ192から提供されるTAGアドレスと比較する。TAGメモリ中のTAGアドレスの中に要求アドレスが見つかった(すなわち「ヒット」が生じた)場合は、データ・メモリ191中で、要求アドレス(または選択されたTAGアドレス)に対応するキャッシュ・ラインがCPUからアクセスを受ける。TAGメモリ中のTAGアドレスの中に要求アドレスが見つからない(すなわち「ミス」が生じた)場合は、要求アドレスに対応するワード線をメイン・メモリ中で見つけるために、要求アドレスがメイン・メモリ(15、図1参照)に送られる。
【0021】
TAGリフレッシュ・コントローラ194は、DRAMキャッシュ・メモリ19のデータ・メモリ191に記憶されているデータをリフレッシュするために備わっている。TAGリフレッシュ・コントローラ194を使用して、データ・リフレッシュ・プロセスをそれぞれが必要とするメモリ・アドレスをトレースするための履歴テーブルがマッピングされる。TAGリフレッシュ・コントローラ194を使用することにより、データ・リフレッシュ・プロセスによる遅延を生じずに済む。TAGリフレッシュ・コントローラ194はまた、データ・リフレッシュ・プロセスを行うために、リフレッシュ・アドレス・ジェネレータ320およびリフレッシュ・カウンタ322も備える。次に、データ・リフレッシュ・プロセスについてより詳細に述べる。
【0022】
図3を参照すると、本発明によりDRAMキャッシュ・メモリ(例えば図1の第2レベル・キャッシュ・メモリ19)中のデータをリフレッシュする方法を記述するフロー・チャートが提供されている。まず、キャッシュ・メモリ中の要求アドレスに対応するワード線に対して読取り/書込み動作を行うようにCPUから外的に要求されたアドレスがあるかどうかが判定される(ステップ302)。言い換えれば、CPUがキャッシュ・メモリ中のワード線に対するデータの読取りまたは書込みを要求しており、したがってそのワード線を表すアドレスがCPUバス上にロードされるかどうかが判定される。CPUからの要求アドレスがない場合は、通常のデータ・リフレッシュ動作が行われる(ステップ304)。通常のリフレッシュ動作では、キャッシュ・メモリのメモリ配列が連続してリフレッシュされる形で、キャッシュ・メモリに記憶されているデータがリフレッシュされる。TAGリフレッシュ・コントローラ(194、図2参照)に含まれるリフレッシュ・アドレス・ジェネレータ320が、リフレッシュ・アドレスを少なくとも1つ生成して、リフレッシュ・カウンタ(322、図2参照)から提供されるリフレッシュ・クロックに基づいてキャッシュ・メモリのサブ配列中にある対応するワード線中のデータをリフレッシュする。例えば、ある時間にわたり、キャッシュ・メモリ中の各サブ配列につき1本のワード線を同時にリフレッシュすることができる。したがってこの場合、サブ配列ごとに1つのリフレッシュ・アドレス・ジェネレータが必要となる。キャッシュ・メモリ中のサブ配列へのリフレッシュ・アドレスの生成については、図4を参照しながら後で詳細に述べる。
【0023】
CPUから出された要求アドレスがある場合は、通常のリフレッシュ動作のためのリフレッシュ・サイクルが停止される(ステップ306)。キャッシュ・メモリに対する通常のリフレッシュ動作が停止されると、要求リフレッシュ・アドレスがTAGリフレッシュ・コントローラに送られる。TAGリフレッシュ・コントローラは、TAGコンパレータ(193、図2参照)およびTAGメモリ(192、図2参照)を使用して行われる「ヒット/ミス比較」を制御する(ステップ307)。ヒット/ミス比較において、「ヒット」は、CPUから要求されたデータがキャッシュ・メモリ中に見つかる場合であり、「ミス」は、要求データがキャッシュ・メモリ中に見つからず、したがってメイン・メモリに行ってそのデータにアクセスする場合である。「ヒット」か「ミス」かを判定するために、TAGコンパレータは、要求アドレスをTAGメモリ中に記憶されているTAGアドレスと比較し、要求アドレスがTAGアドレスの中に見つかるかどうかを判定する。
【0024】
「ヒット/ミス比較」を行って、要求アドレスがTAGメモリ中のTAGアドレスの中に見つからない(すなわちステップ308で「ヒット」がない)場合は、要求アドレスはメイン・メモリに送られる。メモリ・コントローラ(18、図1参照)が、メイン・メモリ中のワード線を表す要求アドレスを用いてそのワード線にアクセスして、CPUから要求された読取り/書込み動作をメイン・メモリ中のそのワード線に対して行う(ステップ310)。読取り/書込み動作を行うと、メモリ・コントローラは、キャッシュ・メモリに対する通常のリフレッシュ動作の実施を制御する(ステップ304)。メモリ・コントローラはまた、読取り/書込み動作を行う場所のアドレスをリフレッシュ・アドレス・ジェネレータ320にも送るが、これにより、これらのアドレスに記憶されているデータを再びリフレッシュする必要がなくなる。
【0025】
「ヒット/ミス比較」を行って、要求アドレスがTAGメモリ中のTAGアドレスの中に見つかった(すなわちステップ308で「ヒット」があった)場合は、リフレッシュ・アドレス・ジェネレータ320は、キャッシュ・メモリ中の、要求アドレスを有するサブ配列以外のサブ配列のリフレッシュ・アドレスを生成する(ステップ312)。キャッシュ・メモリは複数のサブ配列を有し、各サブ配列中のデータは、異なるワード線アドレスによってアドレス指定することができる。「ヒット」があったときは、要求アドレス(または選択されたTAGアドレス)によってキャッシュ・メモリのサブ配列中のワード線にアクセスすることができる。この場合、要求アドレスは、サブ配列中の対応するワード線にアクセスするためのアクセス・アドレスになる。また、「ヒット」があったときは、リフレッシュ・アドレス・ジェネレータ320は、キャッシュ・メモリの、CPUによる読取り/書込み動作に対するワード線を有するサブ配列以外のサブ配列中のデータをリフレッシュするためのリフレッシュ・アドレスを生成する。各リフレッシュ・アドレスは、リフレッシュすべき各サブ配列中のワード線のアドレスを指定する(これについては図4を参照しながら詳細に述べる)。
【0026】
リフレッシュ・アドレス・ジェネレータ320は、例えば、対応する優先順位インデックスおよびフレッシュ・インデックスを各ワード線アドレスが有するように、優先順位インデックス、フレッシュ・インデックス、およびワード線アドレスを記憶する。優先順位インデックスは、リフレッシュ・アドレス・ジェネレータ320中の対応するワード線アドレスの置換の優先順位を示す。フレッシュ・インデックスは、データ信頼性の標識(すなわち「ダーティ」ビットまたは無効ビット)である。ワード線アドレスは、キャッシュ・メモリ中の、CPUから要求された読取り/書込み動作がメモリ・コントローラの制御下で行われる場所のワード線アドレスと同じアドレスである。
【0027】
リフレッシュ・アドレス・ジェネレータ320からリフレッシュ・アドレスが得られると、CPUから要求された読取り/書込み動作およびデータ・リフレッシュ動作が、CPUからの要求アドレス(すなわちアクセス・アドレス)および内部生成されたリフレッシュ・アドレスをそれぞれ用いてキャッシュ・メモリ中で同時に行われる(ステップ314)。データ・リフレッシュ動作は、キャッシュ・メモリ中の、アクセス・アドレスに対応するデータが記憶されているサブ配列以外のサブ配列に対して行われる。読取り/書込み動作およびデータ・リフレッシュ動作をキャッシュ・メモリ中で行う際、サブ配列中にあるアクセス・アドレス中のデータにアクセスするプロセスは、アクセス・アドレスが提供されたサブ配列以外のサブ配列にそれぞれ提供された各リフレッシュ・アドレス中のデータをリフレッシュするプロセスと同時に行われる。この結果、従来技術においてデータ・リフレッシュ要件によって生じる遅延は、大幅に削減されるか完全になくすことができる。
【0028】
図4を参照すると、キャッシュ・メモリ、およびキャッシュ・メモリに適用されるワード線アドレスの構成を示すブロック図が提供されている。DRAMキャッシュ・メモリは、それぞれがセンス増幅器を有する複数のサブ配列を有することができる。各サブ配列に記憶されたデータには、対応するワード線アドレスによってアクセスすることができる。例えば、図4のキャッシュ・メモリは4つのサブ配列41〜44を有し、それぞれがセンス増幅器バンク401〜404を有する。CPUから要求された読取り/書込み動作が行われるワード線が第1のサブ配列41中に位置すると仮定した場合、このワード線に対応するアクセス・アドレスが、第1のサブ配列41に提供される。同時に、リフレッシュ・アドレス・ジェネレータ320A〜320Cが、第2〜第4のサブ配列42〜44への第1〜第3のリフレッシュ・アドレスをそれぞれ生成する。CPUから要求された読取り/書込み動作を行うために、第1のサブ配列41中で対応するワード線がアクセス・アドレスによってアクセスを受ける一方で、第2〜第4のサブ配列42〜44中の対応するワード線のデータをリフレッシュするために、対応するワード線が第1〜第3のリフレッシュ・アドレスによってそれぞれアクセスを受ける。言い換えれば、データ・リフレッシュ動作では、キャッシュ・メモリの第2〜第4のサブ配列42〜44それぞれの中で1つのワード線データが、第1〜第3のリフレッシュ・アドレスのそれぞれによってアクセスを受ける。例えば、TAGリフレッシュ・コントローラ194中に含まれる第1〜第3のリフレッシュ・アドレス・ジェネレータ320A〜320Cは、第1〜第3のリフレッシュ・カウンタ322A〜322Cからリフレッシュ・クロックをそれぞれ受け取り、第2〜第4のサブ配列42〜44への第1〜第3のリフレッシュ・アドレスをそれぞれ生成する。4つのサブ配列41〜44がある場合、各サブ配列は、例えばサブ配列中のワード線にアクセスするためのアドレスの最初の2桁によって識別される。言い換えれば、ワード線アドレスの最初の2桁は、「00」、「01」、「10」、または「11」とすることができ、これらはそれぞれ、第1のサブ配列41、第2のサブ配列42、第3のサブ配列43、または第4のサブ配列44を指定する。
【0029】
読取り/書込み動作では、第1のサブ配列41中のワード線データがアクセス・アドレスによってアクセスを受け、第1のサブ配列41をリフレッシュするために生成されたリフレッシュ・アドレスは、次に利用可能なリフレッシュ動作実施の時まで保持されなければならない。言い換えれば、CPUが他の3つのサブ配列42〜44のいずれかにアクセスするときに、第1のサブ配列41中でデータ・リフレッシュ・プロセスを行うことができる。ただし、リフレッシュ・アドレス・ジェネレータから提供されたリフレッシュ・アドレスによってリフレッシュできるのは、良好なリフレッシュ可能状態にあるデータだけである。CPUが長時間にわたり第1のサブ配列41のある部分に連続してアクセスする場合、第1のサブ配列41の残りの部分に記憶されているデータは「ダーティ」となり、したがって、CPUがそれらのデータを必要としたときには、それらをメイン・メモリから置換しなければならない。すなわち、老化してリフレッシュ不可能な状態になったダーティ・データに対しては、データをメイン・メモリからコピーし直さなければならない。ただし、複数のサブ配列に対してこのように非常に不均一なアクセスが生じる確率は稀である。
【0030】
リフレッシュ・アドレス・ジェネレータ320は、リフレッシュ動作が行われることになる各サブ配列にワード線のリフレッシュ・タイミングおよびアドレスを提供するリフレッシュ・カウンタ322を含むことが好ましい。リフレッシュ・カウンタ322は、例えば、リフレッシュされる各サブ配列に対するワード線アドレスの状態を把握している。あるワード線データがリフレッシュされるとき、リフレッシュ・カウンタ322は、リフレッシュするための次のサブ配列アドレスを生成する。サブ配列中のすべてのワード線がリフレッシュされたとき、リフレッシュ・カウンタ322はゼロにリセットされ、次のリフレッシュ・サイクル中で再び第1のワード線のリフレッシュを開始する。所定の時間にわたってリフレッシュまたはアクセスされなかった「ダーティ・ビット」を有するワード線のアドレスもまた、TAGメモリに記録され、キャッシュ・メモリがアクティブに読取り/書込み動作を行わないときにメイン・メモリからデータを転送することによってリフレッシュされる。各ワード線アドレスに対するタイミング情報の状態が把握され記録されるので、「ダーティ・ビット」を有するワード線アドレスを検出することができる。次いで、メイン・メモリからのデータによってワード線アドレスのダーティ・データを「クリーンにする」ために信号を送ることにより、ダーティ・ワード線アドレスのデータがリフレッシュされる。クリーンにすべきダーティ・データは、CPUからの要求に従ってデータがアクセスを受けるサブ配列以外のサブ配列中のものである。
【0031】
DRAMキャッシュ・メモリが「n」個のサブ配列を有し、それぞれがワード線アドレスによってアクセスされるデータを記憶していると仮定した場合、あるサブ配列に対して読取り/書込み動作が行われ、同時に、「n−1」個のサブ配列に対してデータ・リフレッシュ動作が実施できる。言い換えれば、キャッシュ・メモリ中の「n−1」個のサブ配列に対してデータ・リフレッシュ動作を行う時間が余分に必要とはならない。したがって、DRAMキャッシュ・メモリ中のデータ・リフレッシュ動作に必要な時間は、CPUにおいてどんな遅延も引き起こさない。
【0032】
リフレッシュの不利益なしにDRAMキャッシュ・メモリ中のデータをリフレッシュする方法を述べたが、以上の教示に鑑みて、当業者なら容易に修正および変形を加えることができる。したがって本発明は、添付の特許請求の範囲内で、本明細書に具体的に述べた以外の方式で実施することができることを理解されたい。
【0033】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0034】
(1)コンピュータ・システム内でプロセッサからアクセスされるキャッシュ・メモリ中のデータをリフレッシュする方法であって、
(a)前記プロセッサから出された要求アドレスを、前記キャッシュ・メモリに記憶されているTAGアドレスによって検証するステップと、
(b)ステップ(a)で前記要求アドレスが検証されたときに、前記キャッシュ・メモリの複数のサブ配列のうちの1つにある、前記要求アドレスに対応するワード線にアクセスするステップと、
(c)リフレッシュ・アドレスを生成して、前記キャッシュ・メモリ中の前記1つのサブ配列以外の前記複数のサブ配列中のデータをリフレッシュするステップであって、各リフレッシュ・アドレスが、前記1つのサブ配列以外の前記複数のサブ配列それぞれの、対応するワード線のアドレスを指定するステップと、
(d)前記1つのサブ配列以外の前記複数のサブ配列中のデータがリフレッシュされる間に、前記1つのサブ配列中の、前記要求アドレスによってアクセスされる前記ワード線に対して読取り/書込み動作を行うステップとを含む方法。
(2)前記1つのサブ配列に対する読取り/書込み動作と、前記1つのサブ配列以外の前記複数のサブ配列中のデータのリフレッシュが同時に行われる、上記(1)に記載の方法。
(3)ステップ(a)が、
TAGメモリにTAGアドレスを記憶するステップであって、各TAGアドレスが、前記キャッシュ・メモリに記憶された対応するワード線データに関連するステップと、
前記要求アドレスを前記TAGアドレスと比較するステップと、
前記要求アドレスと同一のTAGアドレスを選択するステップとを含む、上記(1)に記載の方法。
(4)前記要求アドレスが前記TAGメモリ中の前記TAGアドレスと異なるとき、前記キャッシュ・メモリ中のデータに対して通常のリフレッシュ動作を行うステップをさらに含む、上記(3)に記載の方法。
(5)ステップ(c)が、前記リフレッシュ・アドレスにより、前記1つのサブ配列以外の前記複数のサブ配列中のワード線に同時にアクセスするステップを含み、各リフレッシュ・アドレスが、前記1つのサブ配列以外の前記複数のサブ配列のうちの対応する1つに関連する、上記(1)に記載の方法。
(6)ステップ(c)が、前記1つのサブ配列以外の前記複数のサブ配列それぞれのワード線の状態を把握することにより、前記それぞれのサブ配列に対するデータ・リフレッシュ・タイミングを提供するステップを含む、上記(1)に記載の方法。
(7)前記1つのサブ配列以外の前記複数のサブ配列それぞれの中のデータがリフレッシュされたときに、前記それぞれのサブ配列に対する前記データ・リフレッシュ・タイミングをリセットするステップをさらに含む、上記(6)に記載の方法。
(8)前記リフレッシュ・アドレスがそれぞれ、対応するリフレッシュ・アドレス中のデータの置換の優先順位を表す優先順位インデックスと、前記キャッシュ・メモリの対応するサブ配列中のワード線のアドレスを指定するためのワード線アドレスとを含む、上記(1)に記載の方法。
(9)前記リフレッシュ・アドレスがそれぞれ、対応するワード線アドレス中のデータの信頼性を示すフレッシュ・インデックスを含む、上記(8)に記載の方法。
(10)コンピュータ・システム内でプロセッサからアクセスされるキャッシュ・メモリ中のデータをリフレッシュする方法であって、
(e)前記プロセッサから出された要求アドレスを検出するステップと、
(f)前記要求アドレスが検出されたときに、前記キャッシュ・メモリの複数のサブ配列に記憶されたデータを連続してリフレッシュする通常のリフレッシュ動作を停止するステップと、
(g)前記要求アドレスを、メモリにあらかじめ記憶されているアドレスと比較するステップであって、前記メモリ中の前記アドレスが、前記プロセッサによって選択される確率のより高い前記キャッシュ・メモリ中のデータに関連するステップと、
(h)前記キャッシュ・メモリに記憶されたデータをリフレッシュするためのリフレッシュ・アドレスを生成するステップであって、各リフレッシュ・アドレスが、前記リフレッシュ・アドレスに対応するデータの古さに基づいて生成されるステップと、
(i)前記要求アドレスによってアクセスされるワード線に対して読取り/書込み動作を行い、前記リフレッシュ・アドレスによってアクセスされるワード線上のデータをリフレッシュするステップであって、前記読取り/書込み動作と前記データのリフレッシュとが同時に行われるステップとを含む方法。
(11)ステップ(i)が、
前記読取り/書込み動作が行われるワード線にアクセスするために、前記キャッシュ・メモリのサブ配列に前記要求アドレスを提供するステップと、
前記要求アドレスが提供される前記サブ配列以外の複数のサブ配列にリフレッシュ・アドレスを提供するステップとを含み、前記リフレッシュ・アドレスがそれぞれ、前記サブ配列以外の前記複数のサブ配列それぞれの中の対応するワード線にアクセスする、上記(10)に記載の方法。
(12)コンピュータ・システム内でプロセッサからアクセス可能なキャッシュ・メモリ中のデータをリフレッシュするための装置であって、
前記プロセッサから出された要求アドレスを検出するためのメモリ・コントローラと、
前記メモリ・コントローラによって検出された前記要求アドレスを、前記キャッシュ・メモリに記憶されているデータに関連するアドレスと比較するためのコンパレータと、
前記コンパレータが前記要求アドレスと同一のアドレスを見つけたときにリフレッシュ・アドレスを生成して、前記キャッシュ・メモリに記憶されているデータをリフレッシュするためのリフレッシュ・コントローラとを備え、前記要求アドレスが前記キャッシュ・メモリの第1サブ配列にあるワード線にアクセスし、リフレッシュ・アドレスのそれぞれが、前記第1サブ配列以外のサブ配列のそれぞれにある、対応するワード線にアクセスする装置。
(13)前記コンパレータが、前記キャッシュ・メモリ中のTAGメモリからTAGアドレスを受け取り、前記TAGアドレスがそれぞれ、前記キャッシュ・メモリのデータ・メモリに記憶されているデータの一部に関連する、上記(12)に記載の装置。
(14)前記キャッシュ・メモリの前記データ・メモリが、前記プロセッサによって選択される確率のより高いデータを記憶する、上記(13)に記載の装置。
(15)前記リフレッシュ・コントローラが、前記リフレッシュ・アドレスを生成するための複数のリフレッシュ・アドレス・ジェネレータを含み、前記リフレッシュ・アドレス・ジェネレータがそれぞれ、第1のサブ配列以外の各サブ配列と関連し、前記第1のサブ配列以外の前記サブ配列のうちの対応する1つに記憶されているデータをリフレッシュするためのリフレッシュ・アドレスを生成する、上記(12)に記載の装置。
(16)前記複数のリフレッシュ・アドレス・ジェネレータがそれぞれ、前記第1のサブ配列以外の前記サブ配列のうち対応する1つに対するリフレッシュ・タイミングを提供するためのリフレッシュ・カウンタを含む、上記(15)に記載の装置。
(17)前記リフレッシュ・カウンタが、前記リフレッシュ・カウンタに関連するサブ配列中のデータがリフレッシュされたときに前記リフレッシュ・タイミングを初期値にリセットする、上記(16)に記載の装置。
(18)前記要求アドレスが前記第1のサブ配列に提供されるのと同時に、前記リフレッシュ・コントローラが、前記第1のサブ配列以外の前記サブ配列にリフレッシュ・アドレスを提供する、上記(12)に記載の装置。
【図面の簡単な説明】
【図1】本発明の好ましい実施形態が適用されるコンピュータ・システム内のメモリ構成のブロック図である。
【図2】図1のキャッシュ・メモリを示すブロック図である。
【図3】本発明によりキャッシュ・メモリをリフレッシュする方法を記述するフロー・チャートである。
【図4】本発明による、キャッシュ・メモリのサブ配列およびデータ・リフレッシュ動作を示すブロック図である。
【符号の説明】
11 中央演算処理装置(CPU)
13 第1レベル・キャッシュ・メモリ
15 メイン・メモリ
17 CPUバス
18 メモリ・コントローラ
19 第2レベル・キャッシュ・メモリ
41 サブ配列
42 サブ配列
43 サブ配列
44 サブ配列
191 データ・メモリ
192 TAGメモリ
193 TAGコンパレータ
194 TAGリフレッシュ・コントローラ
320A リフレッシュ・アドレス・ジェネレータ
320B リフレッシュ・アドレス・ジェネレータ
320C リフレッシュ・アドレス・ジェネレータ
322A リフレッシュ・カウンタ
322B リフレッシュ・カウンタ
322C リフレッシュ・カウンタ
401 センス増幅器バンク
402 センス増幅器バンク
403 センス増幅器バンク
404 センス増幅器バンク

Claims (18)

  1. コンピュータ・システム内でプロセッサからアクセスされる第2レベル・キャッシュ・メモリ中のデータをTAGリフレッシュ・コントローラがリフレッシュする方法であって、
    (a)TAGコンパレータにより前記プロセッサから出された要求アドレスを、前記キャッシュ・メモリに記憶されているTAGアドレスと比較するステップと、
    (b)ステップ(a)で前記要求アドレスの比較により前記要求アドレスと前記TAGアドレスとが一致することが検証されたときに、リフレッシュ・クロックにしたがってキャッシュ・メモリのメモリ配列を連続してリフレッシュする第1のリフレッシュ動作を停止させ、前記キャッシュ・メモリの複数のサブ配列のうちの1つにある、前記要求アドレスに対応するワード線にアクセスするステップと、
    (c)リフレッシュ・アドレス・ジェネレータがリフレッシュ・カウンタを使用して生成したリフレッシュ・アドレスにより、前記キャッシュ・メモリ中の前記1つのサブ配列以外の前記複数のサブ配列中のデータをリフレッシュする第2のリフレッシュするステップであって、各リフレッシュ・アドレスが、前記1つのサブ配列以外の前記複数のサブ配列それぞれの、対応するワード線のアドレスを指定するステップとを含み、
    (d)前記TAGリフレッシュ・コントローラにより、前記第2のリフレッシュするステップが、前記1つのサブ配列以外の前記複数のサブ配列中のデータがリフレッシュされる間に、前記1つのサブ配列中の、前記要求アドレスによってアクセスされる前記ワード線に対して読取り/書込み動作を行うステップとを含む方法。
  2. 前記1つのサブ配列に対する読取り/書込み動作と、前記1つのサブ配列以外の前記複数のサブ配列中のデータのリフレッシュが同時に行われる、請求項1に記載の方法。
  3. ステップ(a)が、
    TAGメモリに、前記キャッシュ・メモリに記憶された対応するワード線データを指定する各TAGアドレスを記憶するステップと、
    前記要求アドレスを前記TAGアドレスと比較するステップと、
    前記要求アドレスと同一のTAGアドレスを選択するステップとを含む、請求項1に記載の方法。
  4. 前記要求アドレスが前記TAGメモリ中の前記TAGアドレスと異なるとき、前記キャッシュ・メモリ中のデータに対して前記リフレッシュ・クロックにしたがってキャッシュ・メモリのメモリ配列を連続してリフレッシュするリフレッシュ動作を行うステップをさらに含む、請求項3に記載の方法。
  5. ステップ(c)が、前記リフレッシュ・アドレスにより、前記1つのサブ配列以外の前記複数のサブ配列中のワード線に同時にアクセスするステップを含み、各リフレッシュ・アドレスが、前記1つのサブ配列以外の前記複数のサブ配列のうちの対応する1つに対応する、請求項1に記載の方法。
  6. ステップ(c)が、前記1つのサブ配列以外の前記複数のサブ配列それぞれのワード線の状態を把握することにより、前記それぞれのサブ配列に対するデータ・リフレッシュ・タイミングを提供するステップを含む、請求項1に記載の方法。
  7. 前記1つのサブ配列以外の前記複数のサブ配列それぞれの中のデータがリフレッシュされたときに、前記それぞれのサブ配列に対する前記データ・リフレッシュ・カウンタをリセットするステップをさらに含む、請求項6に記載の方法。
  8. 前記リフレッシュ・アドレス・ジェネレータは、前記リフレッシュ・アドレスに対応して格納されるデータは、対応するリフレッシュ・アドレス中のデータの置換の優先順位を表す優先順位インデックスと、前記キャッシュ・メモリの対応するサブ配列中のワード線のアドレスを指定するためのワード線アドレスとを含む、請求項1に記載の方法。
  9. 前記リフレッシュ・アドレスに対応して格納されるデータが、それぞれ対応するワード線アドレス中のデータの信頼性を示すフレッシュ・インデックスを含む、請求項8に記載の方法。
  10. コンピュータ・システム内でプロセッサからアクセスされる第2レベル・キャッシュ・メモリ中のデータをTAGリフレッシュ・コントローラによりリフレッシュする方法であって、
    (e)前記TAGリフレッシュ・コントローラが前記プロセッサから出された要求アドレスを検出するステップと、
    (f)前記要求アドレスが検出されたときに、前記TAGリフレッシュ・コントローラが前記キャッシュ・メモリの複数のサブ配列に記憶されたデータを連続してリフレッシュする第1のリフレッシュ動作を停止するステップと、
    (g)TAGコンパレータが前記要求アドレスを、メモリにあらかじめ記憶されているTAGアドレスと比較するステップであって、前記メモリ中の前記TAGアドレスが、前記プロセッサによって選択される確率のより高い前記キャッシュ・メモリ中のデータを指定するステップと、
    (h)TAGリフレッシュ・アドレス・ジェネレータが前記キャッシュ・メモリに記憶されたデータをリフレッシュするためのリフレッシュ・アドレスを生成するステップであって、各リフレッシュ・アドレスが、前記リフレッシュ・アドレスに対応するデータの古さに基づいて生成されるステップと、
    (i)前記TAGリフレッシュ・コントローラが前記要求アドレスによってアクセスされるワード線に対して読取り/書込み動作を行い、前記リフレッシュ・アドレスによってアクセスされるワード線上のデータをリフレッシュするステップであって、前記要求アドレスへの前記読取り/書込み動作を行う間に前記データのリフレッシュなうステップとを含む方法。
  11. ステップ(i)が、
    前記読取り/書込み動作が行われるワード線にアクセスするために、前記キャッシュ・メモリのサブ配列に前記要求アドレスを提供するステップと、
    前記要求アドレスが提供される前記サブ配列以外の複数のサブ配列にリフレッシュ・アドレスを提供するステップとを含み、前記リフレッシュ・アドレスがそれぞれ、前記サブ配列以外の前記複数のサブ配列それぞれの中の対応するワード線にアクセスする、請求項10に記載の方法。
  12. コンピュータ・システム内でプロセッサからアクセス可能な第2レベル・キャッシュ・メモリ中のデータをリフレッシュするための装置であって、
    前記プロセッサから出された要求アドレスを検出するためのメモリ・コントローラと、
    前記メモリ・コントローラによって検出された前記要求アドレスを受け取って、前記キャッシュ・メモリに記憶されているデータに関連するTAGアドレスと比較するためのTAGコンパレータと、
    前記TAGコンパレータが前記要求アドレスと同一の前記TAGアドレスを見つけたときに、リフレッシュ・クロックにしたがってキャッシュ・メモリのメモリ配列を連続してリフレッシュする第1のリフレッシュ動作を停止させ、リフレッシュ・アドレスを生成して、前記キャッシュ・メモリに記憶されているデータをリフレッシュするための第2のリフレッシュ動作を実行させるための前記リフレッシュ・アドレスを生成するための複数のリフレッシュ・アドレス・ジェネレータおよびリフレッシュ・カウンタとをえる、TAGリフレッシュ・コントローラとを含み、前記第2のリフレッシュ動作が、前記要求アドレスを含む前記キャッシュ・メモリの第1サブ配列にあるワード線にアクセスする間に、リフレッシュ・アドレスが前記第1サブ配列以外のサブ配列のそれぞれに割り当てられた対応するワード線に対してアクセスする装置。
  13. 前記コンパレータが、前記キャッシュ・メモリ中の前記TAGメモリから前記TAGアドレスを受け取り、前記TAGアドレスがそれぞれ、前記キャッシュ・メモリのデータ・メモリに記憶されているデータの一部を指定する、請求項12に記載の装置。
  14. 前記キャッシュ・メモリの前記データ・メモリが、前記プロセッサによって選択される確率のより高いデータを記憶する、請求項13に記載の装置。
  15. 前記TAGリフレッシュ・コントローラ前記リフレッシュ・アドレス・ジェネレータがそれぞれ、第1のサブ配列以外の各サブ配列と関連し、前記第1のサブ配列以外の前記サブ配列のうちの対応する1つに記憶されているデータをリフレッシュするためのリフレッシュ・アドレスを生成する、請求項12に記載の装置。
  16. 前記複数のリフレッシュ・アドレス・ジェネレータがそれぞれ、前記第1のサブ配列以外の前記サブ配列のうち対応する1つに対するリフレッシュ・タイミングを提供するためのリフレッシュ・カウンタを含む、請求項15に記載の装置。
  17. 前記リフレッシュ・カウンタが、前記リフレッシュ・カウンタに関連するサブ配列中のデータがリフレッシュされたときに前記リフレッシュ・カウンタを初期値にリセットする、請求項16に記載の装置。
  18. 前記要求アドレスが前記第1のサブ配列に提供されるのと同時に、前記リフレッシュ・コントローラが、前記第1のサブ配列以外の前記サブ配列にリフレッシュ・アドレスを提供する、請求項12に記載の装置。
JP2001276057A 2000-09-12 2001-09-12 Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置 Expired - Fee Related JP4360766B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/660431 2000-09-12
US09/660,431 US6697909B1 (en) 2000-09-12 2000-09-12 Method and apparatus for performing data access and refresh operations in different sub-arrays of a DRAM cache memory

Publications (2)

Publication Number Publication Date
JP2002150771A JP2002150771A (ja) 2002-05-24
JP4360766B2 true JP4360766B2 (ja) 2009-11-11

Family

ID=24649505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001276057A Expired - Fee Related JP4360766B2 (ja) 2000-09-12 2001-09-12 Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置

Country Status (3)

Country Link
US (1) US6697909B1 (ja)
JP (1) JP4360766B2 (ja)
TW (1) TW526491B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160035737A (ko) * 2014-09-24 2016-04-01 삼성전자주식회사 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862654B1 (en) * 2000-08-17 2005-03-01 Micron Technology, Inc. Method and system for using dynamic random access memory as cache memory
US6779076B1 (en) * 2000-10-05 2004-08-17 Micron Technology, Inc. Method and system for using dynamic random access memory as cache memory
US6989024B2 (en) * 2002-02-28 2006-01-24 Counter Clockwise, Inc. Guidewire loaded stent for delivery through a catheter
US6944708B2 (en) * 2002-03-22 2005-09-13 Intel Corporation Method of self-refresh in large memory arrays
US6801980B2 (en) * 2002-04-25 2004-10-05 International Business Machines Corporation Destructive-read random access memory system buffered with destructive-read memory cache
US7617356B2 (en) * 2002-12-31 2009-11-10 Intel Corporation Refresh port for a dynamic memory
KR100543932B1 (ko) * 2003-04-30 2006-01-23 주식회사 하이닉스반도체 초기화 동작시간이 감소된 태그블럭을 구비하는 반도체 메모리 장치 및 그의 구동방법
KR100522431B1 (ko) * 2003-04-30 2005-10-20 주식회사 하이닉스반도체 리프레쉬 동작이 향상된 고속 데이터 억세스를 위한반도체 메모리 장치
JP4439838B2 (ja) * 2003-05-26 2010-03-24 Necエレクトロニクス株式会社 半導体記憶装置及びその制御方法
EP1530217A2 (en) * 2003-11-05 2005-05-11 Fujitsu Limited Semiconductor integrated circuit having temperature detector
KR100564633B1 (ko) * 2004-09-25 2006-03-28 삼성전자주식회사 향상된 동작 성능을 가지는 반도체 메모리 장치 및 이에대한 액세스 제어 방법
TWI267855B (en) * 2004-09-25 2006-12-01 Samsung Electronics Co Ltd System and method for controlling the access and refresh of a memory
US7708722B2 (en) * 2006-01-10 2010-05-04 Stealth Therapeutics, Inc. Stabilized implantable vascular access port
WO2007087460A2 (en) * 2006-01-30 2007-08-02 Glenn Bradley J Bone supported vascular access port
US7969808B2 (en) * 2007-07-20 2011-06-28 Samsung Electronics Co., Ltd. Memory cell structures, memory arrays, memory devices, memory controllers, and memory systems, and methods of manufacturing and operating the same
KR20090116088A (ko) * 2008-05-06 2009-11-11 삼성전자주식회사 정보 유지 능력과 동작 특성이 향상된 커패시터리스 1t반도체 메모리 소자
KR101308048B1 (ko) * 2007-10-10 2013-09-12 삼성전자주식회사 반도체 메모리 장치
GB0722707D0 (en) * 2007-11-19 2007-12-27 St Microelectronics Res & Dev Cache memory
US20090144504A1 (en) * 2007-12-04 2009-06-04 International Business Machines Corporation STRUCTURE FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS
US8024513B2 (en) * 2007-12-04 2011-09-20 International Business Machines Corporation Method and system for implementing dynamic refresh protocols for DRAM based cache
US20090144507A1 (en) * 2007-12-04 2009-06-04 International Business Machines Corporation APPARATUS AND METHOD FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS
US7962695B2 (en) * 2007-12-04 2011-06-14 International Business Machines Corporation Method and system for integrating SRAM and DRAM architecture in set associative cache
US7882302B2 (en) * 2007-12-04 2011-02-01 International Business Machines Corporation Method and system for implementing prioritized refresh of DRAM based cache
US8108609B2 (en) * 2007-12-04 2012-01-31 International Business Machines Corporation Structure for implementing dynamic refresh protocols for DRAM based cache
KR20090075063A (ko) * 2008-01-03 2009-07-08 삼성전자주식회사 플로팅 바디 트랜지스터를 이용한 동적 메모리 셀을 가지는메모리 셀 어레이를 구비하는 반도체 메모리 장치 및 이장치의 동작 방법
KR20100070158A (ko) * 2008-12-17 2010-06-25 삼성전자주식회사 커패시터가 없는 동작 메모리 셀을 구비한 반도체 메모리 장치 및 이 장치의 동작 방법
KR101442177B1 (ko) * 2008-12-18 2014-09-18 삼성전자주식회사 커패시터 없는 1-트랜지스터 메모리 셀을 갖는 반도체소자의 제조방법들
WO2012074724A1 (en) * 2010-12-03 2012-06-07 Rambus Inc. Memory refresh method and devices
KR101932663B1 (ko) 2012-07-12 2018-12-26 삼성전자 주식회사 리프레쉬 주기 정보를 저장하는 반도체 메모리 장치 및 그 동작방법
US9032141B2 (en) 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US8982654B2 (en) 2013-07-05 2015-03-17 Qualcomm Incorporated DRAM sub-array level refresh
TWI526966B (zh) 2013-11-25 2016-03-21 財團法人資訊工業策進會 資料處理裝置及資料處理方法
US9928183B2 (en) 2014-09-26 2018-03-27 Ampere Computing Llc Priority framework for a computing device
US10489237B2 (en) 2014-12-19 2019-11-26 Hewlett Packard Enterprise Development Lp Flushing data content in response to a power loss event to a processor
KR102373544B1 (ko) 2015-11-06 2022-03-11 삼성전자주식회사 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
EP3549129B1 (en) * 2016-11-29 2021-03-10 ARM Limited Storage circuitry responsive to a tag-matching command
WO2018100363A1 (en) * 2016-11-29 2018-06-07 Arm Limited Memory address translation
US10394719B2 (en) * 2017-01-25 2019-08-27 Samsung Electronics Co., Ltd. Refresh aware replacement policy for volatile memory cache
US10437708B2 (en) 2017-01-26 2019-10-08 Bank Of America Corporation System for refreshing and sanitizing testing data in a low-level environment
US10831673B2 (en) 2017-11-22 2020-11-10 Arm Limited Memory address translation
US10866904B2 (en) 2017-11-22 2020-12-15 Arm Limited Data storage for multiple data types
US10929308B2 (en) 2017-11-22 2021-02-23 Arm Limited Performing maintenance operations
US10777297B2 (en) * 2018-12-10 2020-09-15 Micron Technology, Inc. Age-based refresh of firmware

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091846A (en) 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US5469555A (en) 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
JPH0668671A (ja) * 1992-08-18 1994-03-11 Matsushita Electric Ind Co Ltd メモリ装置
US5469559A (en) 1993-07-06 1995-11-21 Dell Usa, L.P. Method and apparatus for refreshing a selected portion of a dynamic random access memory
JP3305056B2 (ja) 1993-08-31 2002-07-22 沖電気工業株式会社 ダイナミックram
US5596521A (en) * 1994-01-06 1997-01-21 Oki Electric Industry Co., Ltd. Semiconductor memory with built-in cache
TW358907B (en) 1994-11-22 1999-05-21 Monolithic System Tech Inc A computer system and a method of using a DRAM array as a next level cache memory
JPH09288614A (ja) 1996-04-22 1997-11-04 Mitsubishi Electric Corp 半導体集積回路装置、半導体記憶装置およびそのための制御回路
JPH09306164A (ja) * 1996-05-13 1997-11-28 Internatl Business Mach Corp <Ibm> メモリ・リフレッシュ・システム
US5835401A (en) 1996-12-05 1998-11-10 Cypress Semiconductor Corporation Dram with hidden refresh
US6028804A (en) * 1998-03-09 2000-02-22 Monolithic System Technology, Inc. Method and apparatus for 1-T SRAM compatible memory
US6167484A (en) * 1998-05-12 2000-12-26 Motorola, Inc. Method and apparatus for leveraging history bits to optimize memory refresh performance
US5963497A (en) * 1998-05-18 1999-10-05 Silicon Aquarius, Inc. Dynamic random access memory system with simultaneous access and refresh operations and methods for using the same
US6415353B1 (en) * 1998-10-01 2002-07-02 Monolithic System Technology, Inc. Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
US6389505B1 (en) * 1998-11-19 2002-05-14 International Business Machines Corporation Restore tracking system for DRAM
JP2000251467A (ja) * 1999-03-02 2000-09-14 Nec Ibaraki Ltd メモリリフレッシュ制御装置およびその制御方法
US6445636B1 (en) * 2000-08-17 2002-09-03 Micron Technology, Inc. Method and system for hiding refreshes in a dynamic random access memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160035737A (ko) * 2014-09-24 2016-04-01 삼성전자주식회사 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템
KR102344834B1 (ko) * 2014-09-24 2021-12-29 삼성전자주식회사 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템

Also Published As

Publication number Publication date
TW526491B (en) 2003-04-01
US6697909B1 (en) 2004-02-24
JP2002150771A (ja) 2002-05-24

Similar Documents

Publication Publication Date Title
JP4360766B2 (ja) Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置
US6920523B2 (en) Bank address mapping according to bank retention time in dynamic random access memories
US7961542B2 (en) Methods, circuits, and systems to select memory regions
US7962695B2 (en) Method and system for integrating SRAM and DRAM architecture in set associative cache
US7617355B2 (en) Parity-scanning and refresh in dynamic memory devices
US20090027989A1 (en) System and Method to Reduce Dynamic Ram Power Consumption via the use of Valid Data Indicators
TW200426831A (en) SRAM-compatible memory device having three sense amplifiers between two memory blocks
JPH087718B2 (ja) コンピュータメモリシステム
RU97117589A (ru) Контроллер памяти, который выполняет команды считывания и записи не в порядке простой очереди
US20230402086A1 (en) Memory system
US7917692B2 (en) Method and system for using dynamic random access memory as cache memory
US20060190678A1 (en) Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a single DRAM cache and tag
US6823426B2 (en) System and method of data replacement in cache ways
US6754778B2 (en) Memory controller and a cache for accessing a main memory, and a system and a method for controlling the main memory
CN116250041A (zh) 用于dram的刷新管理列表
KR100193193B1 (ko) N-방향 셋트 관련 온-칩 캐시를 갖고 있는 고밀도 메모리 및 이를 사용하는 시스템
JPH04313127A (ja) キャッシュメモリシステム
JPH04262432A (ja) 高速アクセスモード記憶装置
JPH05135577A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050622

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050627

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20050908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050908

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060809

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060919

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090527

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090528

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090605

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090804

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: 20090811

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: 20120821

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

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

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130821

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees