JP3718599B2 - キャッシュ装置、メモリ制御システムおよび方法、記録媒体 - Google Patents

キャッシュ装置、メモリ制御システムおよび方法、記録媒体 Download PDF

Info

Publication number
JP3718599B2
JP3718599B2 JP37190398A JP37190398A JP3718599B2 JP 3718599 B2 JP3718599 B2 JP 3718599B2 JP 37190398 A JP37190398 A JP 37190398A JP 37190398 A JP37190398 A JP 37190398A JP 3718599 B2 JP3718599 B2 JP 3718599B2
Authority
JP
Japan
Prior art keywords
access
memory
main memory
replacement
page
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
JP37190398A
Other languages
English (en)
Other versions
JP2000194596A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP37190398A priority Critical patent/JP3718599B2/ja
Priority to US09/332,883 priority patent/US6542969B1/en
Publication of JP2000194596A publication Critical patent/JP2000194596A/ja
Priority to US10/295,855 priority patent/US6754778B2/en
Application granted granted Critical
Publication of JP3718599B2 publication Critical patent/JP3718599B2/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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Dram (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、キャッシュ装置、メモリ制御システムおよび方法、記録媒体に関し、特に、データの入出力を高速化した記憶装置を制御するための技術に用いて好適なものである。
【0002】
【従来の技術】
近年、コンピュータシステムにおけるCPUのクロックの高速化、あるいは他の様々な電子回路の処理速度の高速化に伴って、インタフェース部分も高速化する必要に迫られている。そのために、例えば、CPUより連続して出力される記憶装置のアドレスは互いに近接している可能性が高いという特性を利用して、メモリセルアレイ内で一度アクティブにした部分をその後もアクティブ状態に保つことにより、同じ部分に対する後続のアクセスを高速化するという機能が、高速DRAM以降のDRAM(Dynamic Random Access Memory)で採用されている。
【0003】
図10は、DRAMの概略構成を示す図である。図10において、メモリセルアレイ35は、互いに直交する複数のワード線とビット線、およびこれらのワード線とビット線との各交差部に設けられた複数のメモリセルを備える。外部よりアドレスバッファ31に入力されるアドレスは、その上位ビットがロウ(行)アドレスを示し、下位ビットがカラム(列)アドレスを示している。ロウアドレスはロウアドレスバッファ32に保持され、カラムアドレスはカラムアドレスバッファ33に保持される。
【0004】
ロウアドレスバッファ32に保持されたロウアドレスは、ロウデコーダ34でデコードされて、メモリセルアレイ35内の1つのワード線を選択する。データ読み出し時には、その選択したワード線に接続されている各メモリセルのデータが微小な電圧としてそれぞれのビット線に読み出され、センスアンプ36で夫々増幅される。
【0005】
他方、カラムアドレスバッファ33に保持されたカラムアドレスは、カラムデコーダ37でデコードされて、1つのビット線に対応するカラムゲートを選択的に開く。これにより、選択したビット線上のデータがこのカラムゲートを介して共通線40に取り出される。データ読み出しの場合は、このデータDQがデータI/Oバッファ38を介して外部に出力される。
【0006】
また、データ書き込みの場合は、外部より入力されたデータDQが、データI/Oバッファ38から共通線40およびカラムアドレスによって選択されているカラムゲートを通ってメモリセルアレイ35内のビット線に伝達される。そして、このビット線と、ロウアドレスによって選択されているワード線との交点に当たるメモリセルにデータが書き込まれる。
【0007】
上記31〜38に示した各構成要素は、制御回路39で制御される。制御回路39には、外部からロウアドレスストローブ信号/RAS、カラムアドレスストローブ信号/CAS、ライトイネーブル信号/WEが供給される。なお、図面上で信号名にオーバーラインを付けて表した反転信号は、明細書中では信号名の前に/の記号を付けて表すものとする。
【0008】
このような構成のDRAMにおいて、データの読み書きのために行われる連続したアクセスは、互いに近接したアドレスに対するものである可能性が高く、あるロウアドレスへのアクセスが終了しても、次に同一のロウアドレスへのアクセスが生じる可能性が高いという特性を有する。よって、異なるロウアドレスをアクセスする必要が生じないときには、一度ロウアドレスによって選択した1つのワード線をアクティブ状態のままにしておくことにより、後続のアクセスをカラムアドレスだけで実行できるようにし、アクセスの高速化を図っている。
【0009】
このような機能を有効に利用するために、近年のメモリコントローラでは、あるアドレスに従ってデータにアクセスした後も、そのデータ位置を含む所定の大きさのブロック(1つのワード線)をアクティブ状態に保つような制御を行い、同じブロックへのアクセスが連続したときには高速に応答できるようにしている。このようなブロックの大きさの単位のことをページと言い、この機能を利用したDRAMのことをファストページDRAMとも言う。
【0010】
一方、近年のコンピュータシステムでは、一度アクセスされたデータは近い将来に再びアクセスされる確率が高いという特性を利用して、CPUとメインメモリとの間に、メインメモリに比べて高速の記憶素子により構成されたキャッシュメモリを置くのが一般的になっている。すなわち、メインメモリに対して一度アクセスしたデータをキャッシュメモリに登録しておき、次に同じデータにアクセスしたときにはキャッシュメモリから取り出すことにより、見かけ上メインメモリへのアクセス速度を高速化することができるようにしている。
【0011】
このキャッシュメモリを備えたコンピュータシステムでは、メインメモリ内のデータへのアクセスが要求されると、まずキャッシュメモリを参照し、そこに要求されたデータが存在すれば(キャッシュヒット)、直ちにそのデータをCPUに転送する。もし存在しなければ(キャッシュミス)、要求されたデータを含む適当な大きさのブロックをメインメモリから読み出してキャッシュメモリへ格納する。このとき、キャッシュメモリ内に未使用のブロックがなければ、再使用の可能性の小さいブロック等を選び出して新しいデータに割当て換えをする。
【0012】
キャッシュメモリには、大きく分けてストアスルー方式とストアバック方式とがある。ストアスルー方式は、キャッシュの内容を書き換えるときにメインメモリの方も必ず書き換えを行うことにより、メインメモリ内にも常に最新のデータが格納されているようにする方式である。また、ストアバック方式は、当面はキャッシュだけを書き換え、キャッシュミスの発生に応じてブロックの割当て換えを行う際にメインメモリに戻すという方式である。したがって、ストアバック方式の場合は、キャッシュメモリの内容とメインメモリの内容とが互いに異なっている状態が存在することになる。
【0013】
後者のストアバック方式において、一時的にキャッシュだけが書き換えられた部分をダーティエントリと呼ぶ。また、ブロックの割当て換えを行う場合、このダーティエントリを含まないブロックに関しては単純にメインメモリからロードを行えば良いが、ダーティエントリを含むブロックに関しては、当該ブロックをメインメモリに書き出すとともに、異なるブロックをメインメモリから割り当てる必要がある。これを、ダーティエントリのリプレースと呼ぶ。
【0014】
近年では、CPUの高速化やキャッシュの大容量化などに伴い、メインメモリへのアクセス頻度が高いストアスルー型のキャッシュから、メインメモリへのアクセス頻度が低いストアバック型のキャッシュに切り替わりつつある。これは、データ処理システムにおいて、メモリへのアクセス速度がシステム性能のボトルネックになることが多いためである。
【0015】
図11は、キャッシュメモリの概略構成を示す図である。この図11に示すように、キャッシュメモリは、通常、メインメモリに保持されているデータの一部を格納するキャッシュ(データ領域)41と、キャッシュ41に格納(エントリ)されているデータのメインメモリ上のアドレスの一部(タグ)を格納するタグメモリ(タグ領域)42とを備えて構成される。
【0016】
キャッシュ41は、メインメモリに比べて小容量であるため、キャッシュ41のエントリに対応するアドレスをタグメモリ42に登録し、その登録したタグメモリ42中のアドレスと、CPUがアクセス要求したデータのアドレスとを比較することによって、両者が一致するか否かで当該アクセス要求したデータがキャッシュ41に存在するか否かのキャッシュヒット/ミスの判定を行っている。
【0017】
このとき、キャッシュ41内の全てのエントリ、すなわち、タグメモリ42内の全てのタグをアクセス要求のあったアドレスと比較するのではハードウェアが大量に要ることになる。そのため、一般的には、まずアクセス要求に係るアドレスの下位ビット(INDEX)を使用して、当該下位ビットが一致するエントリを選択する。そして、その選択したエントリのタグのみを比較部43において比較する手法(セット連想記憶方式)が採られている。ここで、アクセス要求に係るアドレスの下位ビットが使用されるのは、CPUからのアクセス要求は局所性が高く、近傍のアドレスにアクセスが集中する可能性が高いためである。
【0018】
同様のことが、上述したファストページDRAMのメモリ制御においても言える。このため、上位アドレスにDRAMのロウアドレスを割り付け、下位アドレスにカラムアドレスを割り付けることにより、連続するアクセス要求でロウアドレスが同じ(ページヒット)となる確率を高くする。そして、ページヒットした場合は、そのページをアクティブ状態にしたまま、次以降のアクセスはカラムだけのアドレス出力でアクセスするように制御することで、ロウアドレスを出力しなくても良い分だけアクセス速度を高速化しているのである(ページアクセス手法)。
【0019】
【発明が解決しようとする課題】
しかしながら、近年増えつつあるストアバック型のキャッシュメモリと、従来のファストページDRAMのメモリコントローラとを接続すると、以下のような問題が生じる。すなわち、ストアバック型のキャッシュメモリにおけるダーティエントリのリプレース時に行われるメインメモリへのアクセスでは、下位アドレスが同じで上位アドレスが異なるというアクセスが連続して発生する確率が極めて高くなり、ほとんどの場合にはメインメモリでページミスが発生する。
【0020】
連続するアクセス要求でページヒットする場合はアクセス速度を高速にできるが、連続するアクセス要求でロウアドレスが異なるページミスが発生した場合には、後続のアクセスにおいて、先行するアクセス時に選択したページをプリチャージしてアクティブ状態からアイドル状態に戻し、その後に異なるページをアクティブ状態に活性化しなければならないというオーバーヘッドが発生する。
【0021】
特に、シンクロナスDRAM(SDRAM:Synchronous Dynamic Random Access Memory)のメモリコントローラでは、高速なインタフェースのため、オーバーヘッドの比率が高くなる。このようなSDRAMのメモリコントローラとストアバック型のキャッシュメモリとを用いて、異なる領域へのメモリアクセスの頻度が多い標準的なプログラムに対して実行時間の計測を行うベンチマークテストを実行したところ、2割程度のオーバーヘッドがあった。このようなオーバーヘッドが発生すると、その分だけアクセス速度が低下してしまうという問題が生じる。
【0022】
図12は、従来のメモリコントローラのページ制御の流れを示すフローチャートである。図12において、DRAMがリセット(ステップS1)された後は、どのワード線も選択されていないアイドル状態となる(ステップS2)。ここで、CPUから何らかのアクセス要求があると(ステップS3)、そのアクセス要求に係るロウアドレスによって1つのワード線(ページ)が選択され、アクティブ状態とされる(ステップS4)。このとき、カラムアドレスに従って1つのビット線が選択されてデータの読み書きが行われるが、その実行後も上記選択されたページはアクティブ状態に保たれる。
【0023】
なお、CPUから何のアクセス要求もない場合は、DRAMのリフレッシュ動作を行うか否かが判定され(ステップS8)、行わない場合はステップS2に戻ってアクセス要求待ちの状態となり、行う場合はリフレッシュ動作を実行する(ステップS11)。
【0024】
あるページがアクティブ状態のときに、CPUから何のアクセス要求もない場合も(ステップS5)、DRAMのリフレッシュ動作を行うか否かが判定され(ステップS9)、行わない場合はステップS4に戻ってアクセス要求待ちの状態となる。また、リフレッシュ動作を行う場合は、まず現在選択しているページをプリチャージした後(ステップS10)、リフレッシュ動作を実行する(ステップS11)。
【0025】
一方、CPUから何らかのアクセス要求があると(ステップS5)、そのアクセス要求に係るロウアドレスが前回与えられたロウアドレスと同じか否かを見ることにより、ページヒットかページミスかが判定される(ステップS6)。ページヒットの場合は、ステップS4に戻ってそのロウアドレスに対応するページがアクティブ状態に保たれ、そのときのカラムアドレスに従ってデータの読み書きが直ちに実行される。
【0026】
他方、ページミスが発生した場合は、まず、現在選択しているページをプリチャージして(ステップS7)、そのページをアクティブ状態からアイドル状態に戻す(ステップS2)。その後、ステップS3を経由してステップS4に進み、異なるページをアクティブ状態にしなければならない。つまり、ページミスの発生時には、ページヒットの場合と比べて、現在のページをアクティブ状態からアイドル状態に戻し、その後に異なるページをアクティブ状態にするというオーバーヘッドが発生していた。
【0027】
本発明は、このような問題を解決するために成されたものであり、一度アクティブ状態にしたページをその後もアクティブ状態に保つことにより、同じページに対する後続のアクセスを高速化するというファストページ機能を有するメモリにおいて、ページミスが発生しても、そのときにページをアクティブ状態からアイドル状態にするという処理を行わずに済むようにして、メモリに対するアクセス速度を更に高速化できるようにすることを目的としている。
【0028】
【課題を解決するための手段】
本発明のキャッシュ装置は、ストアバック型のキャッシュ装置であって、ダーティエントリのリプレースが発生したことと、上記ダーティエントリのリプレースに伴う連続するアクセスが、複数のメインメモリのうち互いに同じメインメモリヘのアクセスであることとの双方を検出し、上記メインメモリに対するアクセスが上記ダーティエントリのリプレースで、かつ同じメインメモリへのアクセスであることを示す信号を上記メインメモリの制御装置に通知する検出・通知手段を備えたことを特徴とする。
【0029】
また、本発明のメモリ制御システムは、CPUとメインメモリとの間に設けられるストアバック型のキャッシュ装置と、上記キャッシュ装置に接続されて上記メインメモリヘのアクセスを制御するメモリ制御装置とを備え、上記メモリ制御装置は、上記メインメモリに対するあるアクセスの終了後もそのアクセスのあったページをアクティブ状態に保つモードを有するメモリ制御システムであって、上記キャッシュ装置は、ダーティエントリのリプレースの発生を検出し、上記メインメモリヘのアクセスが上記ダーティエントリのリプレースに伴うアクセスか否かの信号を上記メモリ制御装置に通知する検出・通知手段を備え、上記メモリ制御装置は、上記メインメモリヘのアクセスが上記ダーティエントリのリプレースに伴うアクセスであることを示す信号を上記キャッシュ装置から受けたときに、先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをプリチャージしてアイドル状態に戻すように制御する状態制御手段を備えたことを特徴とする。
【0030】
また、本発明のメモリ制御システムは、CPUと複数のメインメモリとの間に設けられるストアバック型のキャッシュ装置と、上記キャッシュ装置に接続されて上記複数のメインメモリヘのアクセスを制御するメモリ制御装置とを備え、上記メモリ制御装置は、あるメインメモリに対するあるアクセスの終了後もそのアクセスのあったページをアクティブ状態に保つモードを有するメモリ制御システムであって、上記キャッシュ装置は、ダーティエントリのリプレースが発生したことと、上記ダーティエントリのリプレースに伴う連続するアクセスが互いに同じメインメモリヘのアクセスであることとの双方を検出し、上記メインメモリに対するアクセスが上記ダーティエントリのリプレースで、かつ同じメインメモリヘのアクセスであることを示す信号を上記メモリ制御装置に通知する検出・通知手段を備え、上記メモリ制御装置は、上記メインメモリヘのアクセスが上記ダーティエントリのリプレースで、かつ同じメインメモリへのアクセスであることを示す信号を上記キャッシュ装置から受けたときに、先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをプリチャージしてアイドル状態に戻すように制御する状態制御手段を備えたことを特徴とする。
【0031】
また、本発明のメモリ制御方法は、ストアバック型のキャッシュ装置と、メインメモリに対するあるアクセスの終了後もそのアクセスのあったページをアクティブ状態に保つモードを有するメモリ制御装置とを備えたコンピュータシステムにおいて上記メインメモリヘのアクセスを制御するためのメモリ制御方法であって、上記キャッシュ装置においてダーティエントリのリプレースの発生を検出するステップと、上記メインメモリヘのアクセスが上記ダーティエントリのリプレースで、かつ同じメインメモリヘのアクセスであることを示す信号を上記キャッシュ装置から上記メモリ制御装置に通知するステップと、上記ダーティエントリのリプレースの発生が検出されたときに、上記メモリ制御装置において、上記リプレースに伴う上記メインメモリヘの先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをプリチャージしてアイドル状態に戻すように制御するステップとを有することを特徴とする。
【0032】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。
図1は、本発明によるメモリ制御装置およびキャッシュ装置を実施したメモリ制御システム(コンピュータシステム)の概略構成を示すブロック図である。図1において、CPU1は、バスのアクセス制御6、アドレス7、データ8を介してROM5やRAM4等から与えられる制御プログラムに基づいて、様々な命令を実行するための中央演算処理装置である。
【0033】
このCPU1は、メインメモリ4へのアクセス要求、このアクセス要求の種類(リードかライトかの種類/1つのデータに対するアクセスかブロック単位のデータに対するアクセスかの種類など)を示すタイプおよびアドレスを出力し、これらの信号に応じてデータを入出力する。メインメモリ4へのアクセス要求は、キャッシュメモリ2を介して行う。これは、大容量のメインメモリ4は、アクセス応答速度が比較的遅いので、高速なキャッシュメモリ2にデータのコピーを持たせることで、アクセス応答の速度を高速化するためである。
【0034】
上記メインメモリ4は、例えばSDRAMのようなファストページモードを有する記憶装置であり、例えば図10に示したような構成を有する。これに対し、キャッシュメモリ2は、メインメモリ4に比べて小容量で、かつ高速な記憶素子により構成された一時記憶装置(緩衝記憶装置)である。
【0035】
最近になって、キャッシュの大容量化等に伴い、キャッシュの制御方式としてストアスルー方式ではなく、ストアバック方式がマイクロコントローラの分野でも使用されるようになってきている。本実施形態でも、キャッシュメモリ2としてストアバック型のメモリを用いている。さらに、本実施形態のキャッシュメモリ2は、図11に示したような構成を有し、アドレスの下位ビットを使用してエントリを選択し、その選択したエントリのアドレスのみを比較するセット連想記憶方式を採用している。
【0036】
メモリコントローラ3は、キャッシュメモリ2からのアクセス要求をメインメモリ4のアクセスプロトコルに変換するためのブロックである。このメモリコントローラ3は、アクセス制御信号としてロウアドレスストローブ信号/RAS、カラムアドレスストローブ信号/CAS、ライトイネーブル信号/WEなど(図4〜図6参照)をメインメモリ4に出力する。メモリコントローラ3をキャッシュメモリ2とは別のブロックとして構成しているのは、メモリコントローラ3の種類を変更することで、メインメモリ4として各種のメモリを付け替えることができるようにするためである。
【0037】
このような構成において、CPU1からメインメモリ4内のデータへのアクセスが要求されたときは、まずキャッシュメモリ2にそのデータのコピーがあるか否かを判定する。そして、コピーがある場合(キャッシュヒット)には、キャッシュメモリ2とのデータの送受信だけでアクセスを終了することができる。CPU1からのアクセス要求は、一度アクセスしたデータ(命令)に対して近い将来に何回も行われることが多いため、キャッシュヒットする確率が高く、データ入出力のためのアクセスを高速化することができる。
【0038】
一方、キャッシュメモリ2にアクセス要求されたデータのコピーがない場合(キャッシュミス)には、キャッシュメモリ2からメモリコントローラ3に対してアクセス要求を実行することにより、メインメモリ4に対して実際にアクセスを行い、必要なデータを取り出す。このとき、当該要求されたデータを含む適当な大きさのブロックをメインメモリ4から読み出して、キャッシュメモリ2のエントリに登録する。
【0039】
ストアバック方式とセット連想記憶方式とを適用したキャッシュメモリ2においては、キャッシュミスの発生に応じてダーティエントリのリプレースを行うときは、キャッシュメモリ2内のダーティエントリの内容をメインメモリ4に書き出さないといけないため、同じセットアドレスのリードアクセスとライトアクセスとが連続して起こることになる。
【0040】
すなわち、ダーティエントリのリプレースは、図2に示すような▲1▼〜▲3▼の手順で実行する必要がある。まず、ダーティエントリを含む所定ブロックのデータをキャッシュメモリ2から取り出してバッファ9に一時的に退避させておく(▲1▼)。そして、アクセス要求に応じたデータをメインメモリ4から読み出し、そのデータを含むブロックをキャッシュメモリ2内の上記ダーティエントリが存在していた部分に登録する(▲2▼)。その後で、上記バッファ9に一時格納しておいたダーティエントリ部分の内容をメインメモリ4に書き込む(▲3▼)。
【0041】
ここで、セット連想記憶方式においては、図11のように、下位アドレスをキーとしてエントリを選択し、その選択したエントリのアドレスと上位アドレスとを比較してキャッシュのヒット/ミスを判定している。よって、キャッシュミスの発生によりダーティエントリのリプレースが行われるときには、リプレース動作時に与えられる連続するアドレスが、互いに下位ビットは同じであるが上位ビットは異なっている確率が極めて高いということになる。
【0042】
このように、ダーティエントリのリプレースの発生時には、下位アドレスが同じで上位アドレスが異なるといった、同じセットアドレスのリードアクセスとライトアクセスとが連続して起こることになる。下位アドレスが同じで上位アドレスが異なるということは、メモリコントローラ3の制御方式では、あるアクセスに後続する次のアクセスで、ロウアドレスが異なるページミスが発生しているということになる。
【0043】
つまり、CPU1からのあるアクセス要求に対してキャッシュメモリ2でキャッシュミスが発生し、キャッシュにおけるダーティエントリのリプレースが行われるときには、リプレースに伴う後続するアクセスではメインメモリ4でページミスが発生する確率が極めて高いということになる。
【0044】
そこで、本実施形態では、図1に示すように、ストアバック型のキャッシュメモリ2内に、ダーティエントリのリプレースの発生を検出し、当該リプレースに伴うアクセスであるか否かを示すページ制御信号をメモリコントローラ3に通知するリプレース検出・通知回路11を設ける。このリプレース検出・通知回路11は、ダーティエントリのリプレース状態を示す内部状態信号を、アクセスに同期してページ制御信号としてキャッシュメモリ2の外部のメモリコントローラ3に出力するように構成したものである。
【0045】
メモリコントローラ3は、状態制御回路12を備え、メインメモリ4内の各メモリセルをアクティブ状態あるいはアイドル状態にする制御等を行う。この状態制御回路12は、リプレース検出・通知回路11から上記リプレース時のアクセスであることを示すページ制御信号を受け取ると、リプレースに伴う先行するアクセスの終了時に直ちにプリチャージを実行することにより、アクティブ状態にあるページをアイドル状態に戻すように制御する。
【0046】
ここで、メインメモリ4へのアクセスは、キャッシュミスが発生したときに初めて行われるので、キャッシュミスの発生時に行われるダーティエントリのリプレースの状態は、メインメモリ4へのアクセス時に発生することがあるページミスの状態よりも先に検知できる。したがって、ダーティエントリのリプレースが発生したら、そのセットアドレスに基づくメインメモリ4への先行アクセスの終了時にページのプリチャージを直ちに行うようにすることで、後続のアクセスは、あるページをアイドル状態からアクティブ状態にするという動作だけで行うことができるようになる。
【0047】
つまり、本実施形態によれば、メインメモリ4でのページミスの発生時において、異なるページをアクティブ状態に活性化する前に現在アクティブ状態のページをプリチャージしてアイドル状態に戻すというオーバーヘッドをなくすことができる。例えば、従来例にて説明したのと同様のベンチマークテストを行った結果、オーバーヘッドを1割程度に抑えることができるようになった。
【0048】
この場合のメモリコントローラ3の制御フローを、図3に示す。図12に示した従来のメモリコントローラの制御フローとの違いは、ステップS3とステップS4との間にステップS20の処理を挿入し、キャッシュメモリ2内のリプレース検出・通知回路11からページ制御信号、すなわち、ダーティエントリのリプレースの検出信号が与えられているか否かを判断し、与えられている場合にはステップS7にジャンプしてプリチャージを行うようにしたことである。
【0049】
すなわち、本実施形態では、メインメモリ4に対して何らかのアクセスが終わったときに無条件にアクティブ状態に遷移せずに、キャッシュメモリ2からのページ制御信号により、現在のページをアクティブ状態に保持するか、プリチャージしてアイドル状態に戻すかを選択できるようにしている。このように、実際にページミスが発生するのに先立ってあらかじめプリチャージを行うことにより、従来はページミスの発生時にプリチャージによるページの非活性化、ロウアドレス出力によるページのアクティブ化(活性化)、カラムアドレス出力という3つの手順を実行しなければならなかったのが、本実施形態ではページのプリチャージという手順を省略することができる。
【0050】
なお、メモリコントローラ3の制御を、キャッシュミスの発生によりメインメモリ4へのアクセスが行われたらそのアクセスの終了後に該当するページを無条件にプリチャージするという方法も考えられるが、これではメインメモリ4の高速ページモードが生かされない。すなわち、アクセスの終了後にそのページを無条件でプリチャージすると、ダーティエントリのリプレース以外のアクセスでも、ページのアクティブ化という手順を必ず実施しなければならなくなるので、アクセス速度が逆に遅くなってしまう。よって、上述した本実施形態のような制御が好ましい。
【0051】
次に、図4、図5および図6に示すタイミングチャートを用いて、本実施形態によるメモリコントローラ3のページ制御の動作例を従来例と比較しながら説明する。図4は、ページヒットした場合の波形を示すものである。図4において、クロック信号CLKの第2サイクルでカラムアドレスストローブ信号/CASが立ち下がってアクティブになると、第4サイクルからメインメモリ4よりデータDQの読み出しが行われる。
【0052】
その後、クロック信号CLKの第9サイクルでカラムアドレスストローブ信号/CASとライトイネーブル信号/WEとが立ち下がってアクティブになると、メインメモリ4に対してデータDQの書き込みが行われる。この図4の場合、メインメモリ4に対する2回目のライトアクセスは、1回目のリードアクセスのときと同じページに対して行われることによりページがヒットし、全くオーバーヘッドのない様子が示されている。
【0053】
図5は、従来のメモリコントローラによるページ制御時の波形を示すものである。図5では、クロック信号CLKの第9サイクルでページミスが発生し、ロウアドレスストローブ信号/RASとライトイネーブル信号/WEとが立ち下がることにより、プリチャージが行われている。その後、プリチャージ動作の完了後の第11サイクルでロウアドレスストローブ信号/RASが立ち下がり、異なるページがアクティブ状態にされる。さらに、第13サイクルでカラムアドレスストローブ信号/CASとライトイネーブル信号/WEとが立ち下がることにより、メインメモリ4の異なるページに対してデータDQの書き込みが行われる。
【0054】
このように、ページミスが発生した場合には、データDQの書き込みは第16サイクル目で終了しており、第12サイクル目で終了していたページヒットのケースに対して4サイクル分のオーバーヘッドが発生している。この部分だけならば、約33%のオーバーヘッドということになる。しかし、実際にはこのようなアクセスで全てのサイクルが埋まらない。それでも割り込み応答時やタスクスイッチ時のキャッシュリプレースが多発するような場合には、約20%程度のオーバーヘッドが発生する。
【0055】
図6は、ストアバックのアクセスが後続にあるリードアクセスの直後にプリチャージ動作を行う本実施形態によるページ制御時の波形を示すものである。図6では、クロック信号CLKの第2サイクルでカラムアドレスストローブ信号/CASが立ち下がってアクティブになると、第4サイクルからメインメモリ4よりデータDQの読み出しが行われる。このリードアクセスは、図2に示した▲2▼の動作に相当するものである。このリードアクセスの実行前には、リプレース検出・通知回路11によるダーティエントリのリプレース発生の検出に応じて、ページ制御信号CTLが立ち上がってアクティブとなっている。
【0056】
そして、ページ制御信号CTLが立ち上がっており、かつ、リードアクセスの最終段階に当たる第7サイクルで、ロウアドレスストローブ信号/RASとライトイネーブル信号/WEとが立ち下がることにより、プリチャージが行われる(SDRAMの規格上、アクセスの最終段でプリチャージの指示を出すことが可能である)。リード動作が終了すると、ページ制御信号CTLは立ち下がる。
【0057】
その後、プリチャージ動作の完了後の第9サイクルでロウアドレスストローブ信号/RASが立ち下がり、異なるページがアクティブ状態にされる。さらに、第11サイクルでカラムアドレスストローブ信号/CASとライトイネーブル信号/WEとが立ち下がることにより、メインメモリ4の異なるページに対してデータDQの書き込みが行われる。このライトアクセスは、図2に示した▲3▼の動作に相当するものである。
【0058】
このように、本実施形態のページ制御によると、プリチャージ動作がリード動作中に隠れて行われるため、メインメモリ4の異なるページに対する書き込みは第14サイクル目で終了しており、図5の場合と比較して、オーバーヘッドは2サイクル分に軽減される。すなわち、従来の方法に比べてオーバーヘッドを半分に減らすことができ、割り込み応答時やタスクスイッチ時のキャッシュリプレースが多発するような場合でも、約10%程度にオーバーヘッドを減少させることができる。これらのケースは、キャッシュサイズをいくら大きくしてもキャッシュミスが発生するケースであるため、これらのケースについては、キャッシュサイズを大きくするよりも本実施形態を適用する方が性能の向上を図る上で優れている。
【0059】
次に、本発明の第2の実施形態について説明する。以上に述べた第1の実施形態ではメインメモリが1つの場合(例えば、DRAMのバンクが1組しかない場合)について説明したが、DRAMを複数組接続する場合がある。特に、SDRAMでは、チップ内部に複数のバンクが存在し、異なるバンクであれば異なるページを同時にアクティブ状態にすることができるようになっている。すなわち、チップ内部に複数のDRAMがあるのと同様にアクセスすることができる。
【0060】
以下に述べる第2の実施形態は、DRAMが複数あり、何れかのメモリに対してアクセス要求が適宜行われるようなシステムに適用したものである。図7は、第2の実施形態によるメモリ制御システム(コンピュータシステム)で用いるメインメモリ4の例としてSDRAMの構成を示す図である。図7に示すSDRAMは、複数のバンク21a〜21dより成る記憶領域21を備えている。これらのバンク21a〜21dは、異なるチップ上に夫々設けられていても良いし、同一チップ上に設けられていても良い。
【0061】
各バンク21a〜21dにおけるデータの読み出し/書き込み等の動作や、ページのアクティブ状態/アイドル状態の切替え制御等は、制御信号ラッチ回路22から3つの端子RAS,CAS,WEに与えられる制御信号に基づいて行われる。制御信号ラッチ回路22には、チップセレクト信号/CS、ロウアドレスストローブ信号/RAS、カラムアドレスストローブ信号/CASおよびライトイネーブル信号/WEがコマンドデコーダ25によりデコードされて生成された制御信号がラッチされる。
【0062】
また、各バンク21a〜21dにおいてページをアクティブ状態にしたり、プリチャージを行ってアイドル状態にするときのメモリセルアレイ上の位置は、外部よりアドレスバッファ/レジスタ&バンク選択回路26に与えられるアドレスに基づいて指定される。ただし、この場合は、アドレスバッファ/レジスタ&バンク選択回路26から各バンク21a〜21dに与えられる上位のロウアドレスに従ってワード線を選択することにより、該当するページを指定する。
【0063】
一方、各バンク21a〜21dにてデータの読み出しや書き込みを行うときのメモリセルアレイ上の位置も、外部よりアドレスバッファ/レジスタ&バンク選択回路26に与えられるアドレスに基づいて指定される。この場合は、アドレスバッファ/レジスタ&バンク選択回路26から各バンク21a〜21dに与えられる上位のロウアドレスに従ってワード線が選択され、カラムアドレスカウンタ24を介して与えられる下位のカラムアドレスに従ってビット線が選択される。
【0064】
本実施形態のように、例えばチップセレクトで選択される複数のバンク21a〜21dが接続されている場合は、外部より与えられるアドレス中には、下位のカラムアドレスとその上位のロウアドレスの他に、更にその上位にどのバンクにアクセスするかを示す識別情報が含まれる。アドレスバッファ/レジスタ&バンク選択回路26では、このアドレス中に含まれる識別情報に基づいてバンクの選択も行う。
【0065】
上記外部よりアドレスバッファ/レジスタ&バンク選択回路26に与えられたアドレスに従って読み書きされるデータDQは、I/Oデータバッファ/レジスタ27を介して外部との間で入出力される。
なお、本実施形態で用いているSDRAMは種々の動作モードを有している。上記カラムアドレスカウンタ24のカウント動作は、コマンドデコーダ25およびアドレスバッファ/レジスタ&バンク選択回路26からモードレジスタ23を介して与えられるモード制御信号に応じて適当に制御される。
以上に述べた各ブロックの動作は、外部よりクロックバッファ28に与えられるクロック信号CLKに同期して行われる。
【0066】
このようにメインメモリ4が複数のDRAM(バンク)を備えるシステムにおいて、ダーティエントリのリプレースの実行時にキャッシュメモリ2に新たにロードするデータの読み出しアドレスと、リプレース対象のエントリの書き出し先アドレスとが異なるチップ(SDRAMの場合はバンク)に位置する場合には、先行するリードアクセスの要求先であるチップ(バンク)に対してはプリチャージを行う意味がなく、ページをアクティブ状態に保持しておくのが望ましい。
【0067】
すなわち、第1の実施形態と同様に、単純にキャッシュのダーティエントリのリプレースの発生を検出しただけで、アクセスを行ったページのプリチャージを行うこととすると、先行するリードアクセス要求先と後続のライトアクセス要求先とが異なるチップ(バンク)に位置する場合には不要なプリチャージを行うこととなり、アクセス速度が却って遅くなる可能性がある。
【0068】
このような不都合を回避するために、第2の実施形態では、キャッシュメモリ2でのアドレス比較を上位アドレスと下位アドレスとに分割し、接続するDRAMの容量に応じて分割する位置を変えられるようにする。このとき、上位アドレスの部分にどのチップ(バンク)にアクセスするかを示す識別情報が含まれるようにアドレスの分割を行う。このようにすれば、上位アドレスが異なる場合には、リプレース対象のエントリとは異なるチップ(バンク)に対するアクセスであることを検出できる。
【0069】
キャッシュメモリ2は、異なるチップ(バンク)へのアクセスであることを検出すると、リードアクセスを行ったページのプリチャージを指示するページ制御信号をリプレース検出・通知回路11からメモリコントローラ3に出力しないように制御する。このようにすることで、不要なプリチャージ動作を抑止することができ、全体としてメインメモリ4へのアクセスを速くすることができる。
【0070】
以下に、本実施形態で用いるアドレスの割り当てについて、図8を用いて説明する。例えば、メインメモリ4が、8ビット幅の64MビットSDRAMを4個使用して32ビット幅で接続された構成を有する場合には、32ビットのアドレスは、図8(a)のように分割される。
【0071】
すなわち、最下位の第0〜第1ビットは、バイト単位でデータの読み書きを行うことを指定するために使用される。その上位の第2〜第10ビットは、カラムアドレスとして使用され、SDRAMに出力される。また、第11〜第22ビットは、ロウアドレスとして使用され、SDRAMに出力される。さらに、第23〜第24ビットは、バンクを指定するためのバンクアドレスとして使用され、これもSDRAMに出力される。なお、それより上位の第25〜第31ビットは未使用である。
【0072】
このとき、キャッシュメモリ2の構成が、16Kバイト/4ウェイ(4Kバイト/1ウェイ:1つのウェイは図11のような構成を有する)の場合には、アドレス比較は、図8(b)に示すように第12〜第31ビットに対して行う。そして、このアドレス比較を、DRAMの容量に合わせて第12〜第22ビット(下位アドレス)と第23〜第31ビット(上位アドレス)とに分割して行うようにする。なお、この場合、第0〜第11ビットはキャッシュでのアドレス比較においては未使用である。
【0073】
この図8(b)に示したような上位アドレスと下位アドレスとを用いて図11のようにアドレス比較を行った結果、アドレスが一致した場合は、キャッシュヒットであり、キャッシュメモリ2へのアクセスだけでデータの入出力を行うことができる。
【0074】
一方、アドレスが一致しない場合は、キャッシュミスであり、キャッシュメモリ2内で最もアクセスされていないエントリを選択して新しいデータに割当て換えをする。その対象となるエントリがダーティ(データの書き換えが行われ、メインメモリ4とキャッシュメモリ2とで異なるデータになっている状態)でなければ、メインメモリ4から新たなデータを読み出し、キャッシュメモリ2のエントリを更新する。
【0075】
また、割当て換えの対象となるエントリがダーティエントリであれば、そのエントリをメインメモリ4に書き出すとともに、別のエントリをメインメモリ4から読み出してキャッシュメモリ2のエントリを更新するリプレースを行う必要がある。その際に本実施形態では、アドレスの上位(第23〜第31ビット)が一致する場合には、連続するアクセスが同じチップ(バンク)へのアクセスであるので、第1の実施形態と同様にプリチャージを行うべくリプレース検出・通知回路11からページ制御信号を出力し、キャッシュのリプレースを行う。
【0076】
一方、リプレース対象がダーティであった場合でも、アドレスの上位(第23〜第31ビット)が一致しない場合には、連続するアクセスは異なるチップ(バンク)へのアクセスであるので、当該連続するアクセスによりメインメモリ4上でページミスが起こることはない。よって、この場合は、ダーティエントリのリプレースに伴うアクセスか否かを示すページ制御信号をリプレース検出・通知回路11においてアサートせずに、キャッシュのリプレースを行う。
【0077】
以上のように、第2の実施形態によれば、ダーティエントリのリプレースの発生時であっても、そのリプレースに伴って連続して行われるメインメモリ4へのアクセスが異なるメモリへのアクセスであるときには、ページのプリチャージを行わないようにすることができ、不要なプリチャージ動作を少なくすることができる。これにより、複数のメモリを備えたシステムにおいてメインメモリ4へのアクセス速度を全体として速くすることができる。
【0078】
なお、上記各実施形態において示した各部の構成および動作等は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0079】
例えば、上記実施形態では、ダーティエントリのリプレースを検出したときに出力する信号を専用のページ制御信号で実施する例を示したが、アクセス要求のタイプを示す信号線にビット割り付けの余裕がある場合には、このアクセスタイプの1つとして、ストアバックのアクセス(ダーティエントリのリプレースに伴うライトアクセス)が後続にあることを示すタイプを追加することによって実施するようにしても良い。
【0080】
また、上記実施形態では、メインメモリ4の一例としてDRAM、特にSDRAMを用いた例を示したが、ファストページモードを有するメモリであれば何れにも適用可能である。
また、第2の実施形態では、異なるメインメモリ4へのアクセスであることが判明したときにページ制御信号をアサートしないように制御しているが、ページミスが発生しないことをメモリコントローラ3に通知するようにしても良い。
【0081】
また、本実施形態のページ制御の動作は、シーケンサ等のハードウェアにより実現されるが、例えば図3に示すようなページ制御のフローを、図1のROM5やRAM4に記憶されたプログラムが動作することによって実現するようにしても良い。なお、図9に示すように、CPU1からバス16を介してROM5やRAM15を接続し、これらに上記プログラムを格納するようにしても良い。また、コンピュータが上記機能を果たすように動作させるプログラムを、例えばCD−ROMのような記録媒体に記録し、コンピュータに読み込ませることによって実現するようにしても良い。記録媒体としては、上記したROMやRAM、CD−ROM以外に、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
【0082】
また、コンピュータが供給されたプログラムを実行することにより上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合や、供給されたプログラムの処理の全てあるいは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。
【0083】
【発明の効果】
本発明は上述したように、メインメモリへのアクセスがキャッシュ装置におけるダーティエントリのリプレースに伴うアクセスである場合に、先行するアクセスの終了時に上記メインメモリのページをプリチャージしてアイドル状態に戻すようにしたので、キャッシュリプレース時のオーバーヘッドによる無駄時間を短くすることができる。特に、本発明をコンピュータシステムに適用した場合に、割り込み応答時やタスクスイッチ時にキャッシュリプレースが多発するような場合でのオーバーヘッドに伴う無駄時間を格段に短くすることができ、メモリに対するアクセス速度を更に高速にすることができる。
【0084】
また、本発明の他の特徴によれば、メインメモリへのアクセスがキャッシュ装置におけるダーティエントリのリプレースに伴うアクセスであり、かつ、ダーティエントリのリプレースに伴う連続するアクセスが、複数のメインメモリのうち互いに同じメインメモリへのアクセスである場合に、先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをプリチャージしてアイドル状態に戻すようにしたので、キャッシュ装置におけるダーティエントリのリプレースの発生時であっても、ダーティエントリのリプレースに伴う連続するアクセスが互いに異なるメインメモリへのアクセスである場合には、先行してアクセスしたメインメモリのページはプリチャージされないようにすることができる。これにより、本来は不要な異なるメインメモリへのプリチャージ動作をなくすことができ、それに伴うオーバーヘッドによる無駄時間を短くすることができる。
【0085】
また、本発明のその他の特徴によれば、ダーティエントリのリプレースに伴うアクセスか否かの信号をキャッシュ装置からメモリ制御装置に通知する際に、メインメモリに対するアクセスのタイプを表す信号中に含ませて通知するようにしたので、既存の信号線の他に専用の信号線を別個に設ける必要がなく、回路の規模が大きくならないようにすることができる。
【図面の簡単な説明】
【図1】本発明によるメモリ制御装置およびキャッシュ装置を実施したコンピュータシステムの概略構成例を示すブロック図である。
【図2】ダーティエントリのリプレースの動作を説明するための図である。
【図3】本実施形態のメモリコントローラによるページ制御の流れを示すフローチャートである。
【図4】SDRAM用メモリコントローラにおけるページヒットした場合の動作波形例を示すタイミングチャートである。
【図5】従来のSDRAM用メモリコントローラにおけるページミスした場合の動作波形例を示すタイミングチャートである。
【図6】本実施形態のSDRAM用メモリコントローラにおけるページミスした場合の動作波形例を示すタイミングチャートである。
【図7】本発明の第2の実施形態で用いるSDRAMの概略構成を示すブロック図である。
【図8】第2の実施形態で用いるアドレスの割り当てを説明するための図である。
【図9】本発明によるメモリ制御装置およびキャッシュ装置を実施したコンピュータシステムの他の概略構成例を示すブロック図である。
【図10】DRAMの概略構成を示す図である。
【図11】キャッシュメモリの概略構成を示す図である。
【図12】従来のメモリコントローラによるページ制御の流れを示すフローチャートである。
【符号の説明】
1 CPU
2 キャッシュメモリ
3 メモリコントローラ
4 メインメモリ(RAM)
5 ROM
11 リプレース検出・通知回路
12 状態制御回路
15 RAM
21 記憶領域
21a〜21d バンク(DRAMコア)
22 制御信号ラッチ回路
23 モードレジスタ
24 カラムアドレスカウンタ
25 コマンドデコーダ
26 アドレスバッファ/レジスタ&バンク選択回路
27 I/Oデータバッファ/レジスタ
31 アドレスバッファ
32 ロウアドレスバッファ
33 カラムアドレスバッファ
34 ロウデコーダ
35 メモリセルアレイ
36 センスアンプ
37 カラムデコーダ
38 データI/Oバッファ
41 キャッシュ(データ領域)
42 タグメモリ(タグ領域)
43 比較部

Claims (8)

  1. ストアバック型のキャッシュ装置であって、
    ダーティエントリのリプレースが発生したことと、上記ダーティエントリのリプレースに伴う連続するアクセスが、複数のメインメモリのうち互いに同じメインメモリヘのアクセスであることとの双方を検出し、上記メインメモリに対するアクセスが上記ダーティエントリのリプレースで、かつ同じメインメモリへのアクセスであることを示す信号を上記メインメモリの制御装置に通知する検出・通知手段を備えたことを特徴とするキャッシュ装置。
  2. 上記検出・通知手段は、アドレス中に割り当てられた上記メインメモリの識別情報を比較することによって、上記ダーティエントリのリプレースに伴う連続するアクセスが互いに同じメインメモリヘのアクセスであるか異なるメインメモリヘのアクセスであるかを検出することを特徴とする請求項1に記載のキャッシュ装置。
  3. CPUとメインメモリとの間に設けられるストアバック型のキャッシュ装置と、上記キャッシュ装置に接続されて上記メインメモリヘのアクセスを制御するメモリ制御装置とを備え、上記メモリ制御装置は、上記メインメモリに対するあるアクセスの終了後もそのアクセスのあったページをアクティブ状態に保つモードを有するメモリ制御システムであって、
    上記キャッシュ装置は、ダーティエントリのリプレースの発生を検出し、上記メインメモリヘのアクセスが上記ダーティエントリのリプレースに伴うアクセスか否かの信号を上記メモリ制御装置に通知する検出・通知手段を備え、
    上記メモリ制御装置は、上記メインメモリヘのアクセスが上記ダーティエントリのリプレースに伴うアクセスであることを示す信号を上記キャッシュ装置から受けたときに、先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをプリチャージしてアイドル状態に戻すように制御する状態制御手段を備えたことを特徴とするメモリ制御システム。
  4. 上記検出・通知手段は、上記ダーティエントリのリプレースに伴うアクセスか否かの信号を、上記メインメモリに対するアクセスのタイプを表す信号中に含ませて通知することを特徴とする請求項3に記載のメモリ制御システム。
  5. CPUと複数のメインメモリとの間に設けられるストアバック型のキャッシュ装置と、上記キャッシュ装置に接続されて上記複数のメインメモリヘのアクセスを制御するメモリ制御装置とを備え、上記メモリ制御装置は、あるメインメモリに対するあるアクセスの終了後もそのアクセスのあったページをアクティブ状態に保つモードを有するメモリ制御システムであって、
    上記キャッシュ装置は、ダーティエントリのリプレースが発生したことと、上記ダーティエントリのリプレースに伴う連続するアクセスが互いに同じメインメモリヘのアクセスであることとの双方を検出し、上記メインメモリに対するアクセスが上記ダーティエントリのリプレースで、かつ同じメインメモリヘのアクセスであることを示す信号を上記メモリ制御装置に通知する検出・通知手段を備え、
    上記メモリ制御装置は、上記メインメモリヘのアクセスが上記ダーティエントリのリプレースで、かつ同じメインメモリへのアクセスであることを示す信号を上記キャッシュ装置から受けたときに、先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをプリチャージしてアイドル状態に戻すように制御する状態制御手段を備えたことを特徴とするメモリ制御システム。
  6. ストアバック型のキャッシュ装置と、メインメモリに対するあるアクセスの終了後もそのアクセスのあったページをアクティブ状態に保つモードを有するメモリ制御装置とを備えたコンピュータシステムにおいて上記メインメモリヘのアクセスを制御するためのメモリ制御方法であって、
    上記キャッシュ装置においてダーティエントリのリプレースの発生を検出するステップと、
    上記メインメモリヘのアクセスが上記ダーティエントリのリプレースで、かつ同じメイ ンメモリヘのアクセスであることを示す信号を上記キャッシュ装置から上記メモリ制御装置に通知するステップと、
    上記ダーティエントリのリプレースの発生が検出されたときに、上記メモリ制御装置において、上記リプレースに伴う上記メインメモリヘの先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをプリチャージしてアイドル状態に戻すように制御するステップとを有することを特徴とするメモリ制御方法。
  7. CPUとメインメモリとの間に設けられるストアバック型のキャッシュ装置と、上記キャッシュ装置に接続されて上記メインメモリヘのアクセスを制御するメモリ制御装置とを備え、上記メモリ制御装置が上記メインメモリに対するあるアクセスの終了後もそのアクセスのあったページをアクティブ状態に保つモードを有するコンピュータシステムにおいて、
    上記キャッシュ装置においてダーティエントリのリプレースの発生を検出して上記メモリ制御装置に通知する手段と、
    上記ダーティエントリのリプレースの発生が通知された場合に、上記メモリ制御装置において上記リプレースに伴う先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをアイドル状態に戻すように制御する手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
  8. CPUと複数のメインメモリとの間に設けられるストアバック型のキャッシュ装置と、上記キャッシュ装置に接続されて上記複数のメインメモリヘのアクセスを制御するメモリ制御装置とを備え、上記メモリ制御装置が上記メインメモリに対するあるアクセスの終了後もそのアクセスのあったページをアクティブ状態に保つモードを有するコンピュータシステムにおいて、
    上記キャッシュ装置において、ダーティエントリのリプレースが発生したことと、上記ダーティエントリのリプレースに伴う連続するアクセスが互いに同じメインメモリヘのアクセスであることとの双方を検出して上記メモリ制御装置に通知する手段と、
    上記キャッシュ装置からの通知が行われた場合に、上記メモリ制御装置において、上記リプレースに伴う先行するアクセスの終了時にそのアクセスが行われたメインメモリのページをアイドル状態に戻すように制御する手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
JP37190398A 1998-12-28 1998-12-28 キャッシュ装置、メモリ制御システムおよび方法、記録媒体 Expired - Fee Related JP3718599B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP37190398A JP3718599B2 (ja) 1998-12-28 1998-12-28 キャッシュ装置、メモリ制御システムおよび方法、記録媒体
US09/332,883 US6542969B1 (en) 1998-12-28 1999-06-15 Memory controller and a cache for accessing a main memory, and a system and a method for controlling the main memory
US10/295,855 US6754778B2 (en) 1998-12-28 2002-11-18 Memory controller and a cache for accessing a main memory, and a system and a method for controlling the main memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP37190398A JP3718599B2 (ja) 1998-12-28 1998-12-28 キャッシュ装置、メモリ制御システムおよび方法、記録媒体

Publications (2)

Publication Number Publication Date
JP2000194596A JP2000194596A (ja) 2000-07-14
JP3718599B2 true JP3718599B2 (ja) 2005-11-24

Family

ID=18499505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37190398A Expired - Fee Related JP3718599B2 (ja) 1998-12-28 1998-12-28 キャッシュ装置、メモリ制御システムおよび方法、記録媒体

Country Status (2)

Country Link
US (2) US6542969B1 (ja)
JP (1) JP3718599B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063069A (ja) * 2000-08-21 2002-02-28 Hitachi Ltd メモリ制御装置、データ処理システム及び半導体装置
US7085973B1 (en) * 2002-07-09 2006-08-01 Xilinx, Inc. Testing address lines of a memory controller
KR100560949B1 (ko) * 2004-04-20 2006-03-14 주식회사 하이닉스반도체 반도체 메모리 소자의 워드라인 억세스 방법
US8612797B2 (en) * 2006-03-31 2013-12-17 Hewlett-Packard Development Company, L.P. Systems and methods of selectively managing errors in memory modules
JP5034551B2 (ja) * 2007-02-26 2012-09-26 富士通セミコンダクター株式会社 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
US20090240912A1 (en) * 2008-03-18 2009-09-24 Apple Inc. System and method for selectively storing and updating primary storage
US8108621B2 (en) * 2009-05-27 2012-01-31 Via Technologies, Inc. Data cache with modified bit array
US8140767B2 (en) * 2009-06-04 2012-03-20 International Business Machines Corporation Cache management through delayed writeback
JP5481428B2 (ja) * 2011-05-26 2014-04-23 株式会社東芝 半導体記憶装置およびメモリシステム
JP5699854B2 (ja) * 2011-08-15 2015-04-15 富士通株式会社 記憶制御システムおよび方法、置換方式および方法
CN105243031B (zh) * 2015-09-17 2018-01-26 浪潮(北京)电子信息产业有限公司 一种缓存分区分配空闲页的方法及装置
US11972145B2 (en) * 2021-01-21 2024-04-30 Micron Technology, Inc. Opportunistic data movement

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247648A (en) * 1990-04-12 1993-09-21 Sun Microsystems, Inc. Maintaining data coherency between a central cache, an I/O cache and a memory
US5450564A (en) * 1990-05-04 1995-09-12 Unisys Corporation Method and apparatus for cache memory access with separate fetch and store queues
JP2916421B2 (ja) * 1996-09-09 1999-07-05 株式会社東芝 キャッシュフラッシュ装置およびデータ処理方法
US6272594B1 (en) * 1998-07-31 2001-08-07 Hewlett-Packard Company Method and apparatus for determining interleaving schemes in a computer system that supports multiple interleaving schemes
US6457104B1 (en) * 2000-03-20 2002-09-24 International Business Machines Corporation System and method for recycling stale memory content in compressed memory systems

Also Published As

Publication number Publication date
JP2000194596A (ja) 2000-07-14
US6542969B1 (en) 2003-04-01
US6754778B2 (en) 2004-06-22
US20030065891A1 (en) 2003-04-03

Similar Documents

Publication Publication Date Title
US6389514B1 (en) Method and computer system for speculatively closing pages in memory
US5889714A (en) Adaptive precharge management for synchronous DRAM
KR100626770B1 (ko) 메모리 페이지 종료 기법의 동적 조절 방법
US4937791A (en) High performance dynamic ram interface
US5825710A (en) Synchronous semiconductor memory device
US6507897B2 (en) Memory paging control apparatus
JP3718599B2 (ja) キャッシュ装置、メモリ制御システムおよび方法、記録媒体
JP5428687B2 (ja) メモリ制御装置
CN114115715B (zh) 执行存储器的低时延存取的设备和方法
JP2003501747A (ja) プログラマブルsram及びdramキャッシュ・インタフェース
US20080282028A1 (en) Dynamic optimization of dynamic random access memory (dram) controller page policy
US20080098176A1 (en) Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching
US6363460B1 (en) Memory paging control method
US7577791B2 (en) Virtualized load buffers
US7328311B2 (en) Memory controller controlling cashed DRAM
US6535966B1 (en) System and method for using a page tracking buffer to reduce main memory latency in a computer system
US7159066B2 (en) Precharge suggestion
US6775741B2 (en) Cache system with limited number of tag memory accesses
US7543105B2 (en) Memory access control based on hit prediction
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
US20080282029A1 (en) Structure for dynamic optimization of dynamic random access memory (dram) controller page policy
EP0471462B1 (en) Computer memory operating method and system
US20060090059A1 (en) Methods and devices for memory paging management
US20090182938A1 (en) Content addressable memory augmented memory
JPS63101943A (ja) キヤツシユム−ブイン制御方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050812

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050812

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050905

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

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

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130909

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees