JP4856373B2 - メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法 - Google Patents

メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法 Download PDF

Info

Publication number
JP4856373B2
JP4856373B2 JP2004357333A JP2004357333A JP4856373B2 JP 4856373 B2 JP4856373 B2 JP 4856373B2 JP 2004357333 A JP2004357333 A JP 2004357333A JP 2004357333 A JP2004357333 A JP 2004357333A JP 4856373 B2 JP4856373 B2 JP 4856373B2
Authority
JP
Japan
Prior art keywords
data
cache
bus
write
memory
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
JP2004357333A
Other languages
English (en)
Other versions
JP2006164077A (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
Priority to JP2004357333A priority Critical patent/JP4856373B2/ja
Publication of JP2006164077A publication Critical patent/JP2006164077A/ja
Application granted granted Critical
Publication of JP4856373B2 publication Critical patent/JP4856373B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、一般的にはメモリ・システムとその制御方法に関し、特にデータ・コヒーレンシを保ちつつバスを介したメモリへのライト・アクセスを効率化する方法に関する。
パーソナル・コンピュータ(PC)などのシステムでは、バスを介してCPUやメモリ(DRAM等)等のデバイスが相互に接続する。各デバイスは、マスタ・デバイス(バス・マスタ)となって、データが記憶されるメモリにアクセスする。DRAMなどのメモリ(システム・メモリ)は大きな記憶容量を持っているが、そのアクセス速度は遅い。頻繁に利用するデータへのアクセスの高速化を図るため、CPUはSRAM等からなるキャッシュ・メモリ(以下、単に”キャッシュ”と呼ぶ。)を使用する。キャッシュは、記憶容量は小さいが、DRAMなどのシステム・メモリに比べて高速アクセスが可能である。
キャッシュを有するシステムでは、キャッシュとメイン・メモリとの間でコヒーレンシ(データの同一性)を保つ必要がある。このデータ・コヒーレンシを保つための方式(アルゴリズム)としてスヌープ(snoop)方式がある。図1は従来のスヌープ動作を説明するための図である。図1ではCPUバス1とシステムバス2がバスブリッジ3で接続する。CPUバス1にはCPU#0とCPU#2が接続する。2つのCPUはキャッシュを有している。システムバス2にはデバイス#2とメモリ・コントローラおよびメモリが接続する。
スヌープ方式では、キャッシュを持つCPU#0は、他のデバイス#2(マスタ・デバイス)からのデータ・アクセス4のアドレスを監視(スヌープ5)する(図1(a))。CPU#0は、そのアクセス・アドレスが自己のキャッシュ内のデータのアドレスと一致し、かつデータ状態が標準MESIプロトコル等で変更(更新)済みである場合、リトライ要求6を出す(図1(b))。リトライ要求6に応じて、マスタデバイス#2の進行中のアクセスが中断される(図1(b))。さらに、キャッシュ内の一致したアドレスを含む連続するアドレスの複数データで構成されるキャッシュ・ラインがメモリに先に書き戻される(図1(c)、(d))。その後、マスタデバイス#2が再度メモリにアクセスしてデータを転送することで、データのコヒーレンシが保たれる(図1(e)、(f))。
図1の動作から明らかなように、監視している(スヌープ)デバイスからのリトライ要求が発生すると、転送途中のデバイスはアクセスを中断し、その後再度アクセスする必要がある。すなわち、ライト・アクセスでのスヌープ・ヒットによるオーバーヘッドが発生する。この動作により、バス利用率の低下や、デバイスの待ち時間の増加が生ずる。
スヌープ方式を利用するマルチ・プロセッサ・システムにおいて、メモリ・アクセスの高速化を図るための従来技術が、例えば、日本国の公開特許公報06-222993に開示されている。しかし、この公報は、スヌープ・ヒットした場合のアクセス・リトライによる動作遅延やバス利用率の低下を改善する技術を開示するものではない。
公開特許公報 06-222993
本発明の目的は、データ・コヒーレンシを保ちつつ、ライト・アクセスを含むメモリ・アクセスの効率化を図ることである。
本発明の目的は、スヌープ・モードにおいて、ライト・アクセスでのキャッシュ・ヒット(スヌープ・ヒット)が生じた場合に、アクセス・リトライ時のオーバーヘッドによる不具合(動作遅延、バス利用率の低下など)を軽減することである。
本発明は、バスと、バスに接続するメモリ、メモリ・コントローラ、キャッシュを有する第1デバイス、および第2デバイスを備え、メモリ・コントローラは、キャッシュのデータおよび第2デバイスがメモリにライト・アクセスする場合におけるライト・データを一時記憶するためのバッファを含むことを特徴とするメモリ・システムを提供する。
本発明は、メモリ・コントローラのバッファに、キャッシュのデータおよび第2デバイスがメモリにライト・アクセスする場合におけるライト・データを一時記憶することにより、第2デバイスのライト・アクセス・リトライをなくし、同時にデータ・コヒーレンシを保つことができる。
本発明は、ライト・アクセス・リトライをなくすことができるので、オーバーヘッドによる不具合(動作遅延、バス利用率の低下など)を軽減することができる。
本発明について図面を引用しながら説明する。図2は、本発明の方法(動作)の概要を説明するための図である。図2ではCPUバス10とシステムバス12がバスブリッジ13で接続する。CPUバス10にはCPU#0(13)とCPU#2(14)が接続する。2つのCPUはキャッシュを有している。システムバス12にはデバイス#2(15)とメモリ・コントローラ(16)およびメモリ(17)が接続する。メモリ(17)はDRAMなどのシステム・メモリである。メモリ・コントローラ(16)はデータの一時記憶用のバッファ20を持つ。なお、図2ではCPUバス10とシステムバス12の2つのバスが存在する構成を示しているが、1つのシステムバスに各デバイスが接続する構成であってもよい。また、接続するデバイス数は、バスを占有可能なマスタデバイスが最低2以上あればいくつであってもかまわない。
スヌープ方式では、キャッシュを持つCPU#0(13)は、他のマスタデバイス#2(15)からのデータ・アクセス18のアドレスを監視(スヌープ19)する(図2(a))。CPU#0(13)は、そのアクセス・アドレスが自己のキャッシュ内のデータのアドレスと一致し、かつデータ状態が標準MESIプロトコル等で変更(更新)済みである場合、リトライ要求6を出すが、マスタデバイス#2(15)は進行中のアクセスを中断しない。デバイス#2(15)はライト・データをメモリ・コントローラ内のバッファ20に書き込む(図2(b))。CPU#0のキャッシュ内の一致したアドレスのデータがバッファ20に書き戻される(図2(c)、(d))。その後、バッファ20のライト・データおよびキャッシュ・データが1つの連続するデータとしてメモリ(17)に書き込まれる(図1(d))。
このように、本発明では、ライト・アクセス時のスヌープ・ヒットによるリトライ要求に対応したバス・アクセスの中断を必要としない。キャッシュ・データの書き戻し処理を後回しにして、メモリコントローラ内のバッファに一時記憶することにより、データコヒーレンシを維持する。これにより、図1の従来方式に比べて、システムバス11上のアービトレーション(arbitration)やアドレスフェーズを削減できる。さらに、メモリコントローラ16とメモリ17間のメモリバスにおいても、3回のRASアドレス転送、2回のCASアドレス転送、2回のデータ転送期間(連続データ転送を1期間として数えた場合)を、それぞれ1回に削減できる。ライトアクセスの開始から完了までを考えた場合、バス構成やメモリのスピードに依存するが、約20〜30%のアクセス時間の削減が可能となる。
図3は本発明の構成を示す機能ブロック図である。図3は、リトライ制御回路101、アービトレーション回路102、メモリ・コントローラ104、タグ制御回路106、バッファ108を含む。なお、タグ制御回路106とバッファ108は実際にはメモリ・コントローラ104に内臓されるが、説明のために異なるブロックとして記載している。これらの回路はいずれもシステム・バス(図2の11)に接続する。
リトライ制御回路101は、アドレスリトライ信号を監視し、他のデバイスへの分配をする回路である。ライトアクセス時のスヌープヒットによるリトライ信号入力があった場合、リトライ出力をアサート(assert)せず、Retry-Hold信号及び、対応するPriority信号をアサートする。ライトアクセス時のスヌープヒット以外におけるリトライ入力は、そのままリトライ出力とする。アービトレーション回路102は、リトライ制御回路101からのPriority信号に対応して、デバイスのからのリクエストを最優先にする機能を持つ。Priority信号が無い場合は、通常のアービトレーションを行う。メモリ・コントローラ104は、メモリのタイミングをコントロールする。通常のDRAMコントロール回路が該当する。アクセス終了時にAccess Complete信号を出力する。
タグ制御回路106は、スヌープヒット時のライト・データについて、バッファ108内の書き込みデータ位置を記録する。バッファ108はキャシュラインサイズ(例えば32バイト)と同じサイズを単位としている。したがって、例えば32バイトのキャッシュ・ラインの場合、下位5ビット(2の5乗=32)の対応する位置がデータ位置として記録される。さらに、タグ制御回路106は、その後に続くキャッシュからのデータ(キャッシュアウトデータ)を、バッファ108のライトデータ以外に書き込むためのWrite Strobe信号を発生する。また、タグ制御回路106は、キャッシュアウトデータをバッファ108にラッチした後に、メモリへの書き込むためのOutput Select信号を発生する。バッファ108は、タグ制御回路106のWrite Strobe信号により、バス上のデータ(ライト・データ、キャッシュアウトデータ)をラッチする。また、バッファ108は、Output Select信号により、ラッチしたデータをメモリへ出力する。
図3の各信号の説明を以下に示す。
・Retry-Hold :ライトアクセス時のリトライを受け付けた事を示す。
キャッシュアウトアクセスが終了したときにクリアされる。
・Priority-X :ライトアクセス時のリトライを受け付けた時に、次のアク
セスがリトライ発行デバイスとなるようにデバイス-X の
プライオリティを最高にする信号
・Access Complete:メモリアクセスサイクルの終了を示す信号
・Data Strobe :バスからのデータ入力及び、メモリへのデータ出力の
タイミング信号
・Data DIR :データの転送方向を示す信号
・Write Strobe :アドレス、バイトイネーブルにより、どのバイトをラッ
チするか指定する信号
・Output Select :メモリライト時に、どのデータを出力するのかを指定する
信号
・Bus Request :各デバイスからのバスリクエスト信号
・Bus Grant :各デバイスへのバスグラント信号
・Retry from X :キャッシュ付きデバイス-X からのリトライ信号
・Retry to X :デバイス-X へのリトライ信号
次に、図3の構成における本発明の動作を説明する。
(a)デバイスC(Device#2)は、アービトレーション回路102にBus Request C信号(110)を出力し、その返信としてBus Grant C信号(112)を受け取る。さらに、デバイスC(Device#2)は、メモリへ書き込みをするために、バスにアドレス(Bus Address114)を出力する。
(b)デバイスA(CPU#0)等の各キャッシュは、バス上のアドレス(Bus Address114)を監視(スヌープ)する。
(c)ここで、デバイスA(CPU#0)のキャッシュ中のアドレスがヒット(スヌープ・ヒット)したとすると、デバイスA(CPU#0)はリトライ制御回路101へのRetry from A信号(116)を活性化する。
(d)リトライ制御回路101は、メモリ・コントローラ104から、デバイスC(Device#2)からのアクセスがライト・アクセスであることを示すWrite Access信号(118)を受け取る。この場合、リトライ制御回路101は、Retry from A信号(116)を受けても、デバイスCのライト・アクセスを中断させるための信号であるRetry to C信号(120)を活性化しない。
(e)リトライ制御回路101は、タグ制御回路106へのRetry Hold信号(122)を活性化する。また、リトライ制御回路101は、Retry from A信号(116)を受け取ったデバイスA(CPU#0)に対応するPriority-A信号(124)をアービトレーション回路102に送る(活性化する)。
(f)デバイスC(Device#2)は、Bus Address信号(114)、Byte Enable信号(126)、Bus Control信号(128)を用いて、メモリ・コントローラ104を制御して、Bus Data In(130)上のライト・データをバッファ108へ書き込む。書き込み位置は、メモリ・コントローラ104からのData Strobe信号およびData DIR信号(134)を受けたタグ制御回路106が出力するWrite Strobe信号(136)により指定される。具体的には、書き込み位置は、Bus Address(138)の下位5ビット(32バイト・キャッシュラインの場合)とByte Enable信号(140)のデータ幅に依存する。この時、タグ制御回路106に書き込まれたバイト位置情報が記録される。
(g)メモリ・コントローラ104は、Retry Hold信号(122)を受け取っているので、メモリへの書き込みをせずに、キャッシュからのキャッシュ(データ)・アウトを待つ。また、メモリ・コントローラ104は、デバイスC(Device#2)によるバッファ108への書き込みが終了すると、Access Complete信号(144)をActive(活性)にする。
(h)Retryを要求していたデバイスA(CPU#0)は、キャッシュ・アウトを要求する。Priority-A信号(124)を受け取ったアービトレーション回路102は、デバイスA(CPU#0)からのBus Request A(146)の優先順位を最高位にする。デバイスA(CPU#0)のキャッシュ・アウトは、デバイスC(Device#2)のアクセスの直後に受け付けられる。
(i)デバイスA(CPU#0)は、スヌープ・ヒットしたデータをバッファ108にキャッシュ・アウトする。この時、Write Strobe信号136によって、先にデバイスCによって書き込まれたデータに上書きしないように書き込み位置が決められる。
(j)デバイスA(CPU#0)によるバッファ108への書き込みが終わると、メモリ・コントローラ104は、Access Complete信号(144)をリトライ制御回路101へ出力する。
(k)リトライ制御回路101は、活性化していたRetry-Hold信号(122)とPriority-A信号(124)を非活性化する。
(l)メモリ・コントローラ104は、バッファ108にラッチされたデータ(ライト・アクセス・データおよびキャッシュ・アウト・データ)をタグ制御回路106のアドレス(TAG)情報に基づき、一連のデータとしてメモリへ書き込む。これにより、データ・コヒーレンシが保たれつつ、ライト・アクセス動作が完了する。
従来のスヌープ動作を説明するための図である。 本発明の方法(動作)の概要を説明するための図である。 本発明の構成を示す機能ブロック図である。
符号の説明
1、10 CPUバス
2、12 システムバス
3、13 バスブリッジ
4 データ・アクセス
5 スヌープ
6 リトライ要求
13 CPU#0
14 CPU#2
15 デバイス#2
16 メモリ・コントローラ
17 メモリ
20 バッファ
101 リトライ制御回路
102 アービトレーション回路
104 メモリ・コントローラ
106 タグ制御回路
108 バッファ

Claims (5)

  1. バスと、
    バスに接続するメモリ、メモリ・コントローラ、キャッシュを有する第1デバイス、および第2デバイスを備え、
    前記メモリコントローラは、
    第2デバイスからのライトデータを記憶できるライトバッファと、
    第1デバイスからのキャッシュ更新データを記憶できるキャッシュラインバッファと、
    第1デバイスからのリトライ信号を受け付けて第2デバイスへのリトライ信号をマスクするリトライ制御回路と、
    前記リトライ制御回路から受け取ったバス優先順位に基づいて第1デバイスが一番と機能させるアービトレーション制御回路とを含み、
    第2デバイスからのライト・アクセスにおいてキャッシュ・ヒットした場合に、前記第1デバイスからのアクセス・リトライ要求が発行されても、前記第2デバイスへリトライを発行せず、前記ライト・データを前記ライトバッファに記憶してシステムバス上の第2デバイスからのアクセス処理を完了させた後に、アクセス優先順位が一番とした、第1デバイスからの前記キャッシュ・メモリの更新データを受け取り前記キャッシュライン・バッファに記憶し、前記ライトバッファと同じアドレスのデータは前記バッファのデータを優先しキャッシュラインバッファの内容をメモリへ書き込みむ処理を行う、ことを特徴とする、メモリ・システム。
  2. さらに、前記ライト・データの前記バッファへの書き込み位置を記憶し、その書き込み位置での前記ライト・データに上書きすることなく、前記キャッシュのデータを前記バッファに一時記憶させるためのタグ制御回路を備える、請求項1のメモリ・システム。
  3. 前記バッファに一時記憶されるキャッシュ・データは、キャッシュにおいて既に更新されたデータである、請求項2のメモリ・システム。
  4. 前記タグ制御回路は、前記バッファに記憶された前記ライト・データおよび前記キャッシュのデータを連続するデータとして前記メモリへ書き込ませる、請求項3のメモリ・システム。
  5. 前記バスはCPUローカル・バスおよびシステム・バスを含み、該2つのバスがバス・ブリッジで接続され、前記第1デバイスは前記CPUローカル・バスに接続するCPUを含む、請求項1のメモリ・システム。
JP2004357333A 2004-12-09 2004-12-09 メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法 Expired - Fee Related JP4856373B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004357333A JP4856373B2 (ja) 2004-12-09 2004-12-09 メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004357333A JP4856373B2 (ja) 2004-12-09 2004-12-09 メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法

Publications (2)

Publication Number Publication Date
JP2006164077A JP2006164077A (ja) 2006-06-22
JP4856373B2 true JP4856373B2 (ja) 2012-01-18

Family

ID=36666007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004357333A Expired - Fee Related JP4856373B2 (ja) 2004-12-09 2004-12-09 メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法

Country Status (1)

Country Link
JP (1) JP4856373B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262091A (ja) * 1994-03-24 1995-10-13 Oki Electric Ind Co Ltd メモリシステム
JPH07271666A (ja) * 1994-04-01 1995-10-20 Hitachi Ltd Dram制御方式
JP3260566B2 (ja) * 1994-10-25 2002-02-25 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
JPH09231134A (ja) * 1996-02-23 1997-09-05 Oki Electric Ind Co Ltd メモリ制御回路
JP4091171B2 (ja) * 1998-06-29 2008-05-28 株式会社東芝 キャッシュフラッシュ方法および装置

Also Published As

Publication number Publication date
JP2006164077A (ja) 2006-06-22

Similar Documents

Publication Publication Date Title
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
KR0163231B1 (ko) 입/출력 채널 제어기, 멀티 프로세싱 시스템 및 데이타 프로세싱 방법
US5353415A (en) Method and apparatus for concurrency of bus operations
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
US5463753A (en) Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller
US6434672B1 (en) Methods and apparatus for improving system performance with a shared cache memory
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
US11500797B2 (en) Computer memory expansion device and method of operation
EP0683457A1 (en) A computer system including a snoop control circuit
US5918069A (en) System for simultaneously writing back cached data via first bus and transferring cached data to second bus when read request is cached and dirty
JP4434534B2 (ja) プロセッサ・システム
US6321302B1 (en) Stream read buffer for efficient interface with block oriented devices
US5987544A (en) System interface protocol with optional module cache
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
JPH0797352B2 (ja) コンピュータ・システム及び入出力コントローラ
US7406571B2 (en) Memory system and method for controlling the same, and method for maintaining data coherency
JPH03189845A (ja) 階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム
US6629213B1 (en) Apparatus and method using sub-cacheline transactions to improve system performance
JPH0830546A (ja) バス制御装置
JP4856373B2 (ja) メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法
US20040128451A1 (en) Power/performance optimized caches using memory write prevention through write snarfing
US7757046B2 (en) Method and apparatus for optimizing line writes in cache coherent systems
JPH11338760A (ja) デ―タ処理システムにおけるメモリ・コントロ―ラ
JP2004240616A (ja) メモリコントローラ及びメモリアクセス制御方法
US20020129209A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071031

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110415

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110913

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110920

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

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

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees