JP2006164077A - Memory system, control method therefor and method for maintaining data coherency - Google Patents

Memory system, control method therefor and method for maintaining data coherency Download PDF

Info

Publication number
JP2006164077A
JP2006164077A JP2004357333A JP2004357333A JP2006164077A JP 2006164077 A JP2006164077 A JP 2006164077A JP 2004357333 A JP2004357333 A JP 2004357333A JP 2004357333 A JP2004357333 A JP 2004357333A JP 2006164077 A JP2006164077 A JP 2006164077A
Authority
JP
Japan
Prior art keywords
data
memory
cache
bus
write
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.)
Granted
Application number
JP2004357333A
Other languages
Japanese (ja)
Other versions
JP4856373B2 (en
Inventor
Nobuyuki Harada
信之 原田
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/en
Publication of JP2006164077A publication Critical patent/JP2006164077A/en
Application granted granted Critical
Publication of JP4856373B2 publication Critical patent/JP4856373B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve the efficiency of memory access including write access while maintaining data coherency. <P>SOLUTION: This memory system has: buses 10, 11; and a first device 13 and a second device 15 each having a memory 17 connected to the bus, a memory controller 16, and a cache. The memory controller includes a buffer 20 for temporarily storing write data when data of the cache and the second device perform write access to the memory. By temporarily storing the write data when data of the cache and the second device perform the write access to the memory in the buffer of the memory controller, the data coherency can be maintained simultaneously while eliminating the write access retrial of the second device. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、一般的にはメモリ・システムとその制御方法に関し、特にデータ・コヒーレンシを保ちつつバスを介したメモリへのライト・アクセスを効率化する方法に関する。 The present invention generally relates to a memory system and a control method thereof, and more particularly to a method for improving the efficiency of write access to a memory via a bus while maintaining data coherency.

パーソナル・コンピュータ(PC)などのシステムでは、バスを介してCPUやメモリ(DRAM等)等のデバイスが相互に接続する。各デバイスは、マスタ・デバイス(バス・マスタ)となって、データが記憶されるメモリにアクセスする。DRAMなどのメモリ(システム・メモリ)は大きな記憶容量を持っているが、そのアクセス速度は遅い。頻繁に利用するデータへのアクセスの高速化を図るため、CPUはSRAM等からなるキャッシュ・メモリ(以下、単に”キャッシュ”と呼ぶ。)を使用する。キャッシュは、記憶容量は小さいが、DRAMなどのシステム・メモリに比べて高速アクセスが可能である。 In a system such as a personal computer (PC), devices such as a CPU and a memory (DRAM and the like) are connected to each other via a bus. Each device becomes a master device (bus master) and accesses a memory in which data is stored. A memory such as a DRAM (system memory) has a large storage capacity, but its access speed is slow. In order to increase the speed of access to frequently used data, the CPU uses a cache memory (hereinafter simply referred to as “cache”) such as SRAM. The cache has a small storage capacity, but can be accessed at a higher speed than a system memory such as a DRAM.

キャッシュを有するシステムでは、キャッシュとメイン・メモリとの間でコヒーレンシ(データの同一性)を保つ必要がある。このデータ・コヒーレンシを保つための方式(アルゴリズム)としてスヌープ(snoop)方式がある。図1は従来のスヌープ動作を説明するための図である。図1ではCPUバス1とシステムバス2がバスブリッジ3で接続する。CPUバス1にはCPU#0とCPU#2が接続する。2つのCPUはキャッシュを有している。システムバス2にはデバイス#2とメモリ・コントローラおよびメモリが接続する。 In a system having a cache, it is necessary to maintain coherency (data identity) between the cache and the main memory. As a method (algorithm) for maintaining this data coherency, there is a snoop method. FIG. 1 is a diagram for explaining a conventional snoop operation. In FIG. 1, the CPU bus 1 and the system bus 2 are connected by a bus bridge 3. CPU # 0 and CPU # 2 are connected to the CPU bus 1. The two CPUs have a cache. Device # 2, a memory controller, and a memory are connected to the system bus 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))。 In the snoop method, the CPU # 0 having a cache monitors (snoop 5) the address of the data access 4 from another device # 2 (master device) (FIG. 1A). The CPU # 0 issues a retry request 6 when the access address matches the address of the data in its own cache and the data state has been changed (updated) by the standard MESI protocol or the like (FIG. 1B). )). In response to the retry request 6, the ongoing access of the master device # 2 is interrupted (FIG. 1 (b)). Further, a cache line composed of a plurality of data of consecutive addresses including the matched addresses in the cache is written back to the memory first (FIGS. 1C and 1D). Thereafter, the master device # 2 accesses the memory again to transfer the data, so that the coherency of the data is maintained (FIGS. 1E and 1F).

図1の動作から明らかなように、監視している(スヌープ)デバイスからのリトライ要求が発生すると、転送途中のデバイスはアクセスを中断し、その後再度アクセスする必要がある。すなわち、ライト・アクセスでのスヌープ・ヒットによるオーバーヘッドが発生する。この動作により、バス利用率の低下や、デバイスの待ち時間の増加が生ずる。 As is apparent from the operation of FIG. 1, when a retry request from a monitored (snoop) device occurs, the device in the middle of transfer needs to interrupt access and then access again. That is, overhead due to a snoop hit in write access occurs. This operation causes a decrease in bus utilization and an increase in device waiting time.

スヌープ方式を利用するマルチ・プロセッサ・システムにおいて、メモリ・アクセスの高速化を図るための従来技術が、例えば、日本国の公開特許公報06-222993に開示されている。しかし、この公報は、スヌープ・ヒットした場合のアクセス・リトライによる動作遅延やバス利用率の低下を改善する技術を開示するものではない。
公開特許公報 06-222993
For example, Japanese Patent Laid-Open Publication No. 06-222993 discloses a conventional technique for speeding up memory access in a multiprocessor system using a snoop method. However, this publication does not disclose a technique for improving an operation delay or a decrease in bus utilization due to an access retry when a snoop hit occurs.
Published Patent Publication 06-222993

本発明の目的は、データ・コヒーレンシを保ちつつ、ライト・アクセスを含むメモリ・アクセスの効率化を図ることである。 An object of the present invention is to improve the efficiency of memory access including write access while maintaining data coherency.

本発明の目的は、スヌープ・モードにおいて、ライト・アクセスでのキャッシュ・ヒット(スヌープ・ヒット)が生じた場合に、アクセス・リトライ時のオーバーヘッドによる不具合(動作遅延、バス利用率の低下など)を軽減することである。 An object of the present invention is to solve a problem (operation delay, a decrease in bus utilization, etc.) due to an overhead at the time of access retry when a cache hit (snoop hit) occurs in write access in the snoop mode. It is to reduce.

本発明は、バスと、バスに接続するメモリ、メモリ・コントローラ、キャッシュを有する第1デバイス、および第2デバイスを備え、メモリ・コントローラは、キャッシュのデータおよび第2デバイスがメモリにライト・アクセスする場合におけるライト・データを一時記憶するためのバッファを含むことを特徴とするメモリ・システムを提供する。 The present invention comprises a bus, a memory connected to the bus, a memory controller, a first device having a cache, and a second device, wherein the memory controller has write access to the data in the cache and the second device. A memory system is provided that includes a buffer for temporarily storing write data in a case.

本発明は、メモリ・コントローラのバッファに、キャッシュのデータおよび第2デバイスがメモリにライト・アクセスする場合におけるライト・データを一時記憶することにより、第2デバイスのライト・アクセス・リトライをなくし、同時にデータ・コヒーレンシを保つことができる。 The present invention eliminates the write access retry of the second device by temporarily storing the cache data and the write data when the second device performs write access to the memory in the buffer of the memory controller. Data coherency can be maintained.

本発明は、ライト・アクセス・リトライをなくすことができるので、オーバーヘッドによる不具合(動作遅延、バス利用率の低下など)を軽減することができる。 Since the present invention can eliminate the write access retry, it is possible to reduce problems caused by overhead (such as an operation delay and a decrease in bus utilization).

本発明について図面を引用しながら説明する。図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以上あればいくつであってもかまわない。 The present invention will be described with reference to the drawings. FIG. 2 is a diagram for explaining the outline of the method (operation) of the present invention. In FIG. 2, the CPU bus 10 and the system bus 12 are connected by a bus bridge 13. CPU # 0 (13) and CPU # 2 (14) are connected to the CPU bus 10. The two CPUs have a cache. Device # 2 (15), a memory controller (16), and a memory (17) are connected to the system bus 12. The memory (17) is a system memory such as a DRAM. The memory controller (16) has a buffer 20 for temporary storage of data. Although FIG. 2 shows a configuration in which two buses, the CPU bus 10 and the system bus 12, exist, a configuration in which each device is connected to one system bus may be used. Further, the number of devices to be connected may be any number as long as there are at least two master devices that can occupy the bus.

スヌープ方式では、キャッシュを持つ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))。 In the snoop method, the CPU # 0 (13) having a cache monitors (snoop 19) the address of the data access 18 from the other master device # 2 (15) (FIG. 2A). The CPU # 0 (13) issues a retry request 6 when the access address matches the address of the data in its own cache and the data state has been changed (updated) by the standard MESI protocol or the like. Master device # 2 (15) does not interrupt ongoing access. Device # 2 (15) writes the write data to the buffer 20 in the memory controller (FIG. 2 (b)). The data at the matched address in the cache of CPU # 0 is written back to the buffer 20 (FIGS. 2C and 2D). Thereafter, the write data and cache data in the buffer 20 are written into the memory (17) as one continuous data (FIG. 1 (d)).

このように、本発明では、ライト・アクセス時のスヌープ・ヒットによるリトライ要求に対応したバス・アクセスの中断を必要としない。キャッシュ・データの書き戻し処理を後回しにして、メモリコントローラ内のバッファに一時記憶することにより、データコヒーレンシを維持する。これにより、図1の従来方式に比べて、システムバス11上のアービトレーション(arbitration)やアドレスフェーズを削減できる。さらに、メモリコントローラ16とメモリ17間のメモリバスにおいても、3回のRASアドレス転送、2回のCASアドレス転送、2回のデータ転送期間(連続データ転送を1期間として数えた場合)を、それぞれ1回に削減できる。ライトアクセスの開始から完了までを考えた場合、バス構成やメモリのスピードに依存するが、約20〜30%のアクセス時間の削減が可能となる。 Thus, in the present invention, it is not necessary to interrupt bus access corresponding to a retry request due to a snoop hit at the time of write access. Data coherency is maintained by postponing the cache data write-back process and temporarily storing it in a buffer in the memory controller. As a result, the arbitration and address phase on the system bus 11 can be reduced as compared with the conventional method of FIG. Further, in the memory bus between the memory controller 16 and the memory 17, three RAS address transfers, two CAS address transfers, and two data transfer periods (when continuous data transfer is counted as one period), Can be reduced once. When considering from the start to the completion of the write access, the access time can be reduced by about 20 to 30%, depending on the bus configuration and the memory speed.

図3は本発明の構成を示す機能ブロック図である。図3は、リトライ制御回路101、アービトレーション回路102、メモリ・コントローラ104、タグ制御回路106、バッファ108を含む。なお、タグ制御回路106とバッファ108は実際にはメモリ・コントローラ104に内臓されるが、説明のために異なるブロックとして記載している。これらの回路はいずれもシステム・バス(図2の11)に接続する。 FIG. 3 is a functional block diagram showing the configuration of the present invention. FIG. 3 includes a retry control circuit 101, an arbitration circuit 102, a memory controller 104, a tag control circuit 106, and a buffer 108. The tag control circuit 106 and the buffer 108 are actually built in the memory controller 104, but are illustrated as different blocks for the sake of explanation. Both of these circuits are connected to the system bus (11 in FIG. 2).

リトライ制御回路101は、アドレスリトライ信号を監視し、他のデバイスへの分配をする回路である。ライトアクセス時のスヌープヒットによるリトライ信号入力があった場合、リトライ出力をアサート(assert)せず、Retry-Hold信号及び、対応するPriority信号をアサートする。ライトアクセス時のスヌープヒット以外におけるリトライ入力は、そのままリトライ出力とする。アービトレーション回路102は、リトライ制御回路101からのPriority信号に対応して、デバイスのからのリクエストを最優先にする機能を持つ。Priority信号が無い場合は、通常のアービトレーションを行う。メモリ・コントローラ104は、メモリのタイミングをコントロールする。通常のDRAMコントロール回路が該当する。アクセス終了時にAccess Complete信号を出力する。 The retry control circuit 101 is a circuit that monitors an address retry signal and distributes it to other devices. When there is a retry signal input due to a snoop hit at the time of write access, the retry output is not asserted but the Retry-Hold signal and the corresponding Priority signal are asserted. The retry input other than the snoop hit at the time of write access is used as the retry output as it is. The arbitration circuit 102 has a function of making the request from the device the highest priority in response to the priority signal from the retry control circuit 101. If there is no Priority signal, normal arbitration is performed. The memory controller 104 controls the timing of the memory. This corresponds to a normal DRAM control circuit. Outputs an Access Complete signal when access is completed.

タグ制御回路106は、スヌープヒット時のライト・データについて、バッファ108内の書き込みデータ位置を記録する。バッファ108はキャシュラインサイズ(例えば32バイト)と同じサイズを単位としている。したがって、例えば32バイトのキャッシュ・ラインの場合、下位5ビット(2の5乗=32)の対応する位置がデータ位置として記録される。さらに、タグ制御回路106は、その後に続くキャッシュからのデータ(キャッシュアウトデータ)を、バッファ108のライトデータ以外に書き込むためのWrite Strobe信号を発生する。また、タグ制御回路106は、キャッシュアウトデータをバッファ108にラッチした後に、メモリへの書き込むためのOutput Select信号を発生する。バッファ108は、タグ制御回路106のWrite Strobe信号により、バス上のデータ(ライト・データ、キャッシュアウトデータ)をラッチする。また、バッファ108は、Output Select信号により、ラッチしたデータをメモリへ出力する。 The tag control circuit 106 records the write data position in the buffer 108 for the write data at the time of the snoop hit. The buffer 108 has the same size as the cache line size (for example, 32 bytes) as a unit. Therefore, for example, in the case of a 32-byte cache line, the corresponding position of the lower 5 bits (2 5 = 32) is recorded as the data position. Further, the tag control circuit 106 generates a Write Strobe signal for writing subsequent data (cache-out data) from the cache other than the write data in the buffer 108. In addition, the tag control circuit 106 latches the cache-out data in the buffer 108 and then generates an Output Select signal for writing to the memory. The buffer 108 latches data (write data, cache-out data) on the bus according to the Write Strobe signal of the tag control circuit 106. Further, the buffer 108 outputs the latched data to the memory in response to the Output Select signal.

図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 へのリトライ信号
A description of each signal in FIG. 3 is given below.
-Retry-Hold: Indicates that a retry for write access has been accepted.
Cleared when cache-out access ends.
・ Priority-X: When a retry for write access is accepted, the next action
Set the device-X so that the
Signal to maximize priority ・ Access Complete: Signal indicating the end of memory access cycle ・ Data Strobe: Data input from the bus and data output to the memory
Timing signal • Data DIR: Signal indicating the data transfer direction • Write Strobe: Which byte is racked by address and byte enable
Signal to specify whether to output ・ Output Select: Specify which data is output during memory write
Signals-Bus Request: Bus request signal from each device-Bus Grant: Bus grant signal to each device-Retry from X: Retry signal from cached device-X-Retry to X: Retry signal to device-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に送る(活性化する)。
Next, the operation of the present invention in the configuration of FIG. 3 will be described.
(A) The device C (Device # 2) outputs the Bus Request C signal (110) to the arbitration circuit 102 and receives the Bus Grant C signal (112) as a reply. Further, the device C (Device # 2) outputs an address (Bus Address 114) to the bus in order to write to the memory.
(B) Each cache such as device A (CPU # 0) monitors (snoops) an address (Bus Address 114) on the bus.
(C) Here, assuming that the address in the cache of device A (CPU # 0) hits (snoop hit), device A (CPU # 0) sends a Retry from A signal (116) to the retry control circuit 101. Activate.
(D) The retry control circuit 101 receives from the memory controller 104 a Write Access signal (118) indicating that the access from the device C (Device # 2) is a write access. In this case, even if the retry control circuit 101 receives the Retry from A signal (116), it does not activate the Retry to C signal (120) that is a signal for interrupting the write access of the device C.
(E) The retry control circuit 101 activates the Retry Hold signal (122) to the tag control circuit 106. Further, the retry control circuit 101 sends (activates) a Priority-A signal (124) corresponding to the device A (CPU # 0) that has received the Retry from A signal (116) to the arbitration circuit 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)のアクセスの直後に受け付けられる。
(F) The device C (Device # 2) uses the Bus Address signal (114), the Byte Enable signal (126), and the Bus Control signal (128) to control the memory controller 104 and to perform Bus Data In (130). The above write data is written into the buffer 108. The write position is designated by the Write Strobe signal (136) output from the tag control circuit 106 that has received the Data Strobe signal and Data DIR signal (134) from the memory controller 104. Specifically, the write position depends on the lower 5 bits of the Bus Address (138) (in the case of a 32-byte cache line) and the data width of the Byte Enable signal (140). At this time, the byte position information written in the tag control circuit 106 is recorded.
(G) Since the memory controller 104 receives the Retry Hold signal (122), the memory controller 104 waits for cache (data) out from the cache without writing to the memory. Further, when the writing to the buffer 108 by the device C (Device # 2) is completed, the memory controller 104 sets the Access Complete signal (144) to Active.
(H) The device A (CPU # 0) that has requested Retry requests cache-out. The arbitration circuit 102 that has received the Priority-A signal (124) sets the priority of the Bus Request A (146) from the device A (CPU # 0) to the highest priority. The cache-out of device A (CPU # 0) is accepted immediately after the access of device 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)情報に基づき、一連のデータとしてメモリへ書き込む。これにより、データ・コヒーレンシが保たれつつ、ライト・アクセス動作が完了する。
(I) The device A (CPU # 0) caches the snoop hit data out to the buffer 108. At this time, the write position is determined by the Write Strobe signal 136 so that the data previously written by the device C is not overwritten.
(J) When the writing to the buffer 108 by the device A (CPU # 0) is completed, the memory controller 104 outputs an Access Complete signal (144) to the retry control circuit 101.
(K) The retry control circuit 101 deactivates the activated Retry-Hold signal (122) and Priority-A signal (124).
(L) The memory controller 104 writes the data latched in the buffer 108 (write access data and cache-out data) to the memory as a series of data based on the address (TAG) information of the tag control circuit 106. . This completes the write access operation while maintaining data coherency.

従来のスヌープ動作を説明するための図である。It is a figure for demonstrating the conventional snoop operation | movement. 本発明の方法(動作)の概要を説明するための図である。It is a figure for demonstrating the outline | summary of the method (operation | movement) of this invention. 本発明の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of this invention.

符号の説明Explanation of symbols

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 バッファ
1, 10 CPU bus 2, 12 System bus 3, 13 Bus bridge 4 Data access 5 Snoop 6 Retry request 13 CPU # 0
14 CPU # 2
15 Device # 2
16 Memory Controller 17 Memory 20 Buffer 101 Retry Control Circuit 102 Arbitration Circuit 104 Memory Controller 106 Tag Control Circuit 108 Buffer

Claims (10)

バスと、
バスに接続するメモリ、メモリ・コントローラ、キャッシュを有する第1デバイス、および第2デバイスを備え、
メモリ・コントローラは、キャッシュのデータおよび第2デバイスがメモリにライト・アクセスする場合におけるライト・データを一時記憶するためのバッファを含むことを特徴とするメモリ・システム。
With bus,
A memory connected to the bus, a memory controller, a first device having a cache, and a second device;
The memory controller includes a buffer for temporarily storing cache data and write data when the second device performs write access to the memory.
さらに、前記ライト・データが前記キャッシュのデータとキャッシュ・ヒットする場合に、前記ライト・データを前記バッファに一時記憶させるための制御回路を備える、請求項1のメモリ・システム。 The memory system according to claim 1, further comprising a control circuit for temporarily storing the write data in the buffer when the write data hits the cache data. 前記制御回路は、前記キャッシュ・ヒットの場合に、前記第1デバイスからのアクセス・リトライ要求に応じて前記第2デバイスがリトライしないようにするためのリトライ制御回路を含む、請求項2のメモリ・システム。 The memory according to claim 2, wherein the control circuit includes a retry control circuit for preventing the second device from retrying in response to an access retry request from the first device in the case of the cache hit. system. さらに、前記ライト・データの前記バッファへの書き込み位置を記憶し、その書き込み位置での前記ライト・データに上書きすることなく、前記キャッシュのデータを前記バッファに一時記憶させるためのタグ制御回路を備える、請求項3のメモリ・システム。 And a tag control circuit for storing a write position of the write data in the buffer and temporarily storing the cache data in the buffer without overwriting the write data at the write position. The memory system of claim 3. 前記バッファに一時記憶されるキャッシュ・データは、キャッシュにおいて既に更新されたデータである、請求項4のメモリ・システム。 5. The memory system of claim 4, wherein the cache data temporarily stored in the buffer is data that has already been updated in the cache. 前記タグ制御回路は、前記バッファに記憶された前記ライト・データおよび前記キャッシュのデータを連続するデータとして前記メモリへ書き込ませる、請求項5のメモリ・システム。 6. The memory system according to claim 5, wherein the tag control circuit causes the write data and the cache data stored in the buffer to be written to the memory as continuous data. 前記バスはCPUローカル・バスおよびシステム・バスを含み、該2つのバスがバス・ブリッジで接続され、前記第1デバイスは前記CPUローカル・バスに接続するCPUを含む、請求項1のメモリ・システム。 2. The memory system of claim 1, wherein the bus includes a CPU local bus and a system bus, the two buses are connected by a bus bridge, and the first device includes a CPU connected to the CPU local bus. . バスと、バスに接続するメモリ、メモリ・コントローラ、キャッシュを有する第1デバイス、および第2デバイスを備え、さらにメモリ・コントローラがバッファを有するメモリ・システムにおいて、
第2デバイスがメモリにライト・アクセスする場合に、メモリ・システムを制御するための方法であって、
(a)ライト・アクセスにおけるライト・データのアドレスとキャッシュ中のデータのアドレスを比較するステップと、
(b)前記2つのアドレスが一致した場合に、キャッシュ中の一致したアドレスのデータ変更の有無を確認するステップと、
(c)前記データ変更がある場合に、第2デバイスにリトライ・アクセスをさせることなく、前記ライト・データをバッファに一時記憶するステップと、
(d)キャッシュ中の前記変更データを、一時記憶された前記ライト・データに上書きすることなく、バッファに一時記憶するステップと、
(e)バッファに一時記憶された前記変更データおよび前記ライト・データを連続するデータとしてメモリに書き込むステップと、
を備える方法。
In a memory system comprising a bus, a memory connected to the bus, a memory controller, a first device having a cache, and a second device, the memory controller having a buffer,
A method for controlling a memory system when a second device has write access to a memory, comprising:
(A) comparing the address of the write data in the write access with the address of the data in the cache;
(B) a step of confirming whether or not there is a data change of the matched address in the cache when the two addresses match;
(C) temporarily storing the write data in a buffer without causing the second device to retry access when the data is changed;
(D) temporarily storing the changed data in the cache in a buffer without overwriting the temporarily stored write data;
(E) writing the change data and the write data temporarily stored in the buffer to the memory as continuous data;
A method comprising:
前記比較ステップ(a)は、前記第1デバイスのキャッシュが前記第2デバイスのライト・アクセスを監視するステップを含む、請求項8の方法。 9. The method of claim 8, wherein the comparing step (a) comprises the first device cache monitoring the second device write access. バスを介して、メモリ、バッファを有するメモリ・コントローラ、複数のバス・マスタおよびキャッシュ・メモリが相互に接続するシステムにおいて、スヌープ方式でデータ・コヒーレンシを保つための方法であって、
バス・マスタのライト・アクセスがスヌープ・ヒットし、かつヒットしたキャッシュ・メモリのデータが更新されている場合に、バス・マスタによるアクセス・リトライを発生させることなく、バス・マスタのライト・データおよびキャシュ・メモリの更新データをバッファに一時記憶した後に連続するデータとしてメモリに書き込むステップを備える、方法。
A method for maintaining data coherency in a snoop manner in a system in which a memory, a memory controller having a buffer, a plurality of bus masters, and a cache memory are connected to each other via a bus,
When a bus master write access is snoop hit and the cache memory data hit is updated, the bus master write data and A method comprising: writing cache memory update data into the memory as continuous data after temporarily storing the update data in the buffer.
JP2004357333A 2004-12-09 2004-12-09 Memory system, control method thereof, and method of maintaining data coherency Expired - Fee Related JP4856373B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004357333A JP4856373B2 (en) 2004-12-09 2004-12-09 Memory system, control method thereof, and method of maintaining data coherency

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004357333A JP4856373B2 (en) 2004-12-09 2004-12-09 Memory system, control method thereof, and method of maintaining data coherency

Publications (2)

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

Family

ID=36666007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004357333A Expired - Fee Related JP4856373B2 (en) 2004-12-09 2004-12-09 Memory system, control method thereof, and method of maintaining data coherency

Country Status (1)

Country Link
JP (1) JP4856373B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262091A (en) * 1994-03-24 1995-10-13 Oki Electric Ind Co Ltd Memory system
JPH07271666A (en) * 1994-04-01 1995-10-20 Hitachi Ltd Dram control system
JPH08123722A (en) * 1994-10-25 1996-05-17 Fujitsu Ltd Method and device for controlling storage in information processing system
JPH09231134A (en) * 1996-02-23 1997-09-05 Oki Electric Ind Co Ltd Memory control circuit
JP2000020395A (en) * 1998-06-29 2000-01-21 Toshiba Corp Method and device for cache flash

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262091A (en) * 1994-03-24 1995-10-13 Oki Electric Ind Co Ltd Memory system
JPH07271666A (en) * 1994-04-01 1995-10-20 Hitachi Ltd Dram control system
JPH08123722A (en) * 1994-10-25 1996-05-17 Fujitsu Ltd Method and device for controlling storage in information processing system
JPH09231134A (en) * 1996-02-23 1997-09-05 Oki Electric Ind Co Ltd Memory control circuit
JP2000020395A (en) * 1998-06-29 2000-01-21 Toshiba Corp Method and device for cache flash

Also Published As

Publication number Publication date
JP4856373B2 (en) 2012-01-18

Similar Documents

Publication Publication Date Title
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
JP5431525B2 (en) A low-cost cache coherency system for accelerators
US5353415A (en) Method and apparatus for concurrency of bus operations
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
JP3771603B2 (en) Computer system, integrated processor, and snoop control method for cache-based computer system
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
US11500797B2 (en) Computer memory expansion device and method of operation
US6983348B2 (en) Methods and apparatus for cache intervention
JP2008512772A (en) Resolving cache conflicts
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 (en) Processor system
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
US7406571B2 (en) Memory system and method for controlling the same, and method for maintaining data coherency
JPH0830546A (en) Bus controller
JP3957240B2 (en) Data processing system
JP4856373B2 (en) Memory system, control method thereof, and method of maintaining data coherency
US20040128451A1 (en) Power/performance optimized caches using memory write prevention through write snarfing
JP2004240616A (en) Memory controller and memory access control method
US5813035A (en) Microprocessor employing a technique for restoration of an aborted cycle following a snoop writeback operation
US6546469B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers
JPH0744459A (en) Cache control method and cache controller
JPH0695962A (en) Processor having parallel access bus
US20020083268A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update
JP2000227877A (en) Asynchronous input/output cache reducing waiting time

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