JP4673585B2 - メモリシステム制御装置およびメモリシステム制御方法 - Google Patents

メモリシステム制御装置およびメモリシステム制御方法 Download PDF

Info

Publication number
JP4673585B2
JP4673585B2 JP2004229082A JP2004229082A JP4673585B2 JP 4673585 B2 JP4673585 B2 JP 4673585B2 JP 2004229082 A JP2004229082 A JP 2004229082A JP 2004229082 A JP2004229082 A JP 2004229082A JP 4673585 B2 JP4673585 B2 JP 4673585B2
Authority
JP
Japan
Prior art keywords
cache
state
data
processor
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
JP2004229082A
Other languages
English (en)
Other versions
JP2006048406A (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 JP2004229082A priority Critical patent/JP4673585B2/ja
Priority to US10/999,972 priority patent/US7783840B2/en
Priority to EP04257577.9A priority patent/EP1624377B1/en
Priority to KR1020040105539A priority patent/KR100691695B1/ko
Priority to CNB2004100821781A priority patent/CN100338587C/zh
Publication of JP2006048406A publication Critical patent/JP2006048406A/ja
Application granted granted Critical
Publication of JP4673585B2 publication Critical patent/JP4673585B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or 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/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)

Description

この発明は、プロセッサ毎にキャッシュメモリを有するマルチプロセッサシステムにおいてキャッシュメモリと主記憶とのコヒーレンシ(一貫性)を制御するメモリシステム制御装置およびメモリシステム制御方法に関し、特に主記憶とのトランザクションを減少させ、システムの性能低下を避けることができるメモリシステム制御装置およびメモリシステム制御方法に関するものである。
マルチプロセッサシステムには、キャッシュをプロセッサ毎に独立して備えたものがある。たとえば、プロセッサ自身がキャッシュを内蔵している場合がこれにあたる。従来より、このようなマルチプロセッサシステムにおいては、コヒーレンシの確保を効率的におこない、システムの性能を向上させるために、MESIプロトコル、投機リード、スヌープキャッシュといった技術や手法が用いられている。
MESIプロトコルは、キャッシュコヒーレンシプロトコルの一種であり、キャッシュの各ラインの状態を「更新状態(Modeified)」、「排他状態(Exclusive)」、「共有状態(Shared)」および「無効状態(Invalid)」に分けて制御する。このMESIプロトコルを利用することにより、最新のデータが存在する場所が明確になり、各キャッシュと主記憶間のコヒーレンシを効率的に確保することができる(例えば、特許文献1)。
投機リードは、プロセッサへの問合せと同時に主記憶へのリード要求をおこなう手法である。あるプロセサからデータの要求があった場合、データの一貫性を確保するためには、全プロセッサに対して当該のデータを保持しているか否かを問い合わせる必要があるが、プロセッサからの応答を待ってから主記憶へのリード要求をおこなったのではレイテンシ(遅延)が大きくなる。
そこでプロセッサへの問合せと同時に主記憶へのリード要求を投機的におこない、プロセッサから当該のデータを保持している旨の応答がなかった場合には、投機的に主記憶から読み出したデータを要求元のプロセッサに送信する。このように投機リードをおこなうことにより、データ取得に係るレイテンシを小さくすることができる。
ただし、全てのリード要求に対して投機リードをおこなうと、主記憶とのトランザクションが増大し、結果的にシステムの性能が悪化する恐れがある。そこで、メモリアクセスの制御をおこなうメモリシステム制御装置内に、各キャッシュメモリが保持しているラインの情報を格納するスヌープキャッシュを設ける手法がとられている。
メモリシステム制御装置は、スヌープキャッシュの状態を参照することで、プロセッサへの問合せをおこうことなく各プロセッサのキャッシュが保持している各ラインの状況を知ることができ、不要な投機リードの発生を避けることができる(例えば、特許文献2)。
特開2002−24198号公報 特開平8−185359号公報
しかしながら、プロセッサのバス仕様によっては、プロセッサのキャッシュの状態の遷移をメモリシステム制御装置側で正確に把握できない場合がある。このような場合には、スヌープキャッシュを参照してもプロセッサのキャッシュの状態を知ることができないため、プロセッサへの問合せが必要になる。
ここで、プロセッサからの応答を待つことによるレイテンシの増大を避けるには主記憶の投機リードが必要となるが、前述したように、投機リードが多発すると主記憶とのトランザクションが増大し、システムの性能が悪化する恐れがある。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、主記憶とのトランザクションを減少させることができるメモリシステム制御装置およびメモリシステム制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、プロセッサ毎にキャッシュメモリを有するマルチプロセッサシステムにおいて前記キャッシュメモリと主記憶とのコヒーレンシを制御するメモリシステム制御装置であって、前記プロセッサの有するキャッシュメモリの各エントリに格納されているデータのアドレス情報を記憶し、各エントリの利用状態を強い更新状態もしくは弱い更新状態のいずれかひとつの状態として保持するキャッシュ状態保持手段と、前記プロセッサの一つからデータのリード要求を受けた場合に、前記キャッシュ状態保持手段により保持されているエントリの利用状態が強い更新状態である場合に、当該キャッシュ状態保持手段に保持されているアドレス情報に対応するプロセッサの有するキャッシュメモリからデータを取得する取得手順を選択し、エントリの利用状態が弱い更新状態である場合に、当該キャッシュ状態保持手段に保持されているアドレス情報に対応するプロセッサの有するキャッシュメモリおよび前記主記憶からデータを取得する取得手順を選択するデータ取得手順選択手段と、前記データ取得手順選択手段の選択した取得手順により取得されたデータから最新状態のデータを選択し、要求元のプロセッサに送出するリードデータ選択送出手段と、前記データのアドレス情報を要求元のプロセッサに対応するキャッシュ状態保持手段のエントリの一つに登録する際に、前記リード要求の種別に応じて前記エントリの利用状態を更新するキャッシュ状態更新手段とを備え、前記キャッシュ状態更新手段は、前記プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が更新状態であり、該プロセッサによって暗に排他状態から変更されたものではないことを保証するタイプであるリード要求を受け取った場合に、該データの利用状態を前記キャッシュ状態保持手段に強い更新状態として登録し、前記プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が排他状態であり、該プロセッサによって変更される可能性のあるタイプであるリード要求を受け取った場合に、該データの利用状態を前記キャッシュ状態保持手段に弱い更新状態として登録することを特徴とする。
また、本発明は、プロセッサ毎にキャッシュメモリを有するマルチプロセッサシステムにおいて前記キャッシュメモリと主記憶とのコヒーレンシを制御するメモリシステム制御装置によるメモリシステム制御方法であって、前記メモリシステム制御装置が、前記プロセッサの有するキャッシュメモリの各エントリに格納されているデータのアドレス情報を記憶し、各エントリの利用状態を強い更新状態もしくは弱い更新状態のいずれかひとつの状態として保持するキャッシュ状態保持工程と、前記プロセッサの一つからデータのリード要求を受けた場合に、前記キャッシュ状態保持工程により保持されているエントリの利用状態が強い更新状態である場合に、当該キャッシュ状態保持工程に保持されているアドレス情報に対応するプロセッサの有するキャッシュメモリからデータを取得する取得手順を選択し、エントリの利用状態が弱い更新状態である場合に、当該キャッシュ状態保持工程に保持されているアドレス情報に対応するプロセッサの有するキャッシュメモリおよび前記主記憶からデータを取得する取得手順を選択するデータ取得手順選択工程と、前記データ取得手順選択工程の選択した取得手順により取得されたデータから最新状態のデータを選択し、要求元のプロセッサに送出するリードデータ選択送出工程と、前記データのアドレス情報を要求元のプロセッサに対応するキャッシュ状態保持工程のエントリの一つに登録する際に、前記リード要求の種別に応じて前記エントリの利用状態を更新するキャッシュ状態更新工程とを含み、前記キャッシュ状態更新工程は、前記プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が更新状態であり、該プロセッサによって暗に排他状態から変更されたものではないことを保証するタイプであるリード要求を受け取った場合に、該データの利用状態を前記キャッシュ状態保持工程に強い更新状態として登録し、前記プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が排他状態であり、該プロセッサによって変更される可能性のあるタイプであるリード要求を受け取った場合に、該データの利用状態を前記キャッシュ状態保持工程に弱い更新状態として登録することを特徴とする。
この発明によれば、「更新状態」を「強い更新状態」と「弱い更新状態」に区別して管理するように構成したので、「更新状態」にあるキャッシュの制御を精密かつ効率的におこなうことができる。
この発明によれば、プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が排他状態であり、該プロセッサによって暗に排他状態から変更されたものではないことを保証するタイプであるリード要求を受け取った場合は、そのデータを強い更新状態として登録するように構成したので、この場合のようにキャッシュメモリに確実に最新のデータが存在している場合を他の更新状態と区別することができる。
この発明によれば、「強い更新状態」としてキャッシュ状態保持手段に保持されているデータについてはキャッシュメモリのみにデータ要求をおこない、主記憶への投機リードをおこなわないように構成したので、主記憶とのトランザクションを減少させることができる。
本発明によれば、「更新状態」を「強い更新状態」と「弱い更新状態」に区別して管理するように構成したので、「更新状態」にあるキャッシュの制御を精密かつ効率的におこなうことができるという効果を奏する。
また、本発明によれば、プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が排他状態であり、該プロセッサによって暗に排他状態から変更されたものではないことを保証するタイプであるリード要求を受け取った場合は、そのデータを強い更新状態として登録するように構成したので、この場合のようにキャッシュメモリに確実に最新のデータが存在している場合を他の更新状態と区別することができるという効果を奏する。
また、本発明によれば、「強い更新状態」としてキャッシュ状態保持手段に保持されているデータについてはキャッシュメモリのみにデータ要求をおこない、主記憶への投機リードをおこなわないように構成したので、主記憶とのトランザクションを減少させることができるという効果を奏する。
以下に添付図面を参照して、この発明に係るメモリシステム制御装置およびメモリシステム制御方法の好適な実施の形態を詳細に説明する。なお、ここではプロセッサ自身がキャッシュを内蔵している場合を例にして説明をおこなうが、本発明は、キャッシュがプロセッサ毎に存在していることを前提にしており、必ずしもプロセッサ自身がキャッシュを内蔵している必要はない。
まず、従来のメモリシステム制御方式について説明する。図7−1は、MESIプロトコルによるメモリシステム制御方式について説明するための説明図である。この図は、プロセッサが複数存在するマルチプロセッサシステムにおける、キャッシュメモリ側のステータス管理とスヌープキャッシュ側のステータス管理の対応を示している。
キャッシュメモリとは、プロセッサと主記憶とのデータのやり取りを高速化するために両者の間に設けられる記憶装置であり、主記憶のラインの一部を保持する。この例では、プロセッサ毎に別個のキャッシュメモリが存在する。
スヌープキャッシュとは、プロセッサと主記憶とのデータのやり取りを制御するメモリシステム制御装置内に設けられる記憶装置であり、キャッシュメモリと対で存在し、対応するキャッシュメモリが保持している各ラインのタグ情報を保持する。
図7−1に示すように、キャッシュメモリに格納される各ラインは、”M(更新状態)”、”E(排他状態)”、”S(共有状態)”、”I(無効状態)”の4つのステータスに分類されて管理される。キャッシュメモリと対で存在するスヌープキャッシュの各ラインも、同じステータスに分類されて管理される。
このように、キャッシュメモリとスヌープキャッシュのステータスが常に一致している場合には、メモリシステム制御装置は、プロセッサにキャッシュメモリの状態を問い合わせることなく、自身が有するスヌープキャッシュを参照することでデータの取得先を決定することができる。
具体的には、メモリシステム制御装置は、あるプロセッサからデータのリード要求を受けたならば、各スヌープキャッシュを参照し、当該のデータを含むラインが保持されているか否かを検索する。そして、当該のデータを含むラインがいずれかのスヌープキャッシュに保持されていないならば、当該のデータを含むラインを主記憶から取得することとし、保持されていたならば、そのラインのステータスを確認してデータの取得先を決定する。
ラインのステータスが、”M”であった場合は、当該のラインがプロセッサにより変更された状態でキャッシュメモリに保持されていることを示しているので、そのラインを保持しているプロセッサのキャッシュメモリからデータを取得する必要がある。
ラインのステータスが、”E”もしくは”S”であった場合は、当該のラインがプロセッサにより変更されることなく一つもしくは複数のプロセッサに保持されていることを示しているので、そのラインを保持しているプロセッサのキャッシュメモリまたは主記憶のどちらからデータを取得しても問題ない。
ラインのステータスが、”I”であった場合は、当該のラインの内容が無効になっていることを示しているので、そのラインを保持している他のプロセッサのキャッシュメモリもしくは主記憶からデータを取得する必要がある。
このように、プロセッサのキャッシュメモリとスヌープキャッシュのステータスが常に一致している場合には、システムに負荷をかけることなく効率よくデータの取得をおこなうことができる。
図7−2は、MSIプロトコルによるメモリシステム制御方式について説明するための説明図である。同図に示した例では、プロセッサのバスの仕様により、プロセッサのキャッシュメモリに保持されたラインのステータスが”E”から”M”または”I”へ遷移したことをメモリシステム制御装置側で把握することができない。
このような場合、従来は、スヌープキャッシュ側ではMESIプロトコルの代わりにMSIプロトコルが使用され、”M”と”E”のステータスを区別せずに制御をおこなっていた。
この例では、キャッシュメモリ側でステータスが”E”となったラインのステータスをスヌープキャッシュ側では”M”として管理している。キャッシュメモリのラインのステータスが”M”や”I”へ遷移しても、メモリシステム制御装置側ではそれを感知できないため、スヌープキャッシュ側の”M”のステータスはそのまま保持される。このため、スヌープキャッシュ側の”M”のステータスは、キャッシュメモリ側の”E”だけでなく”M”や”I”とも対応している。
すなわち、この例におけるスヌープキャッシュ側の”M”のステータスは、キャッシュメモリに最新のデータが確実に存在することを示しているのではなく、プロセッサのキャッシュメモリに最新のデータが存在するその可能性もあるが、有効なデータが存在しない可能性もあることを示している。
したがって、メモリシステム制御装置は、プロセッサから要求されたデータを含むラインがスヌープキャッシュに存在し、そのステータスが”M”であった場合は、そのスヌープキャッシュに対応するプロセッサに当該のラインについての問合せをおこない、その応答によって有効なデータが存在しないことがわかった場合には主記憶に対して改めてデータを要求することが必要になる。
通常は、プロセッサの応答を待ってから主記憶にデータを要求したのではレイテンシが大きくなることから、プロセッサへの問合せと同時に主記憶に対して投機リードをおこなう。この投機リードは、キャッシュがミスしたときのレイテンシを小さくできる反面、主記憶とのトランザクションを増大させるという問題も含んでいる。
ここで、投機リードが発生する場合について例をあげて説明する。図8は、MSIプロトコルによるメモリシステム制御方式における「更新状態」の場合の制御手順を説明するための説明図である。
同図に示すように、メモリシステム制御装置200は、いずれのキャッシュにも保持されていないデータのリード要求をプロセッサ100aから受け付けたならば(ステップS301)、主記憶300に対して当該のデータを含むラインの読出しを要求する(ステップS302)。
主記憶300から読み出されたラインは、リードデータ選択送出部220に送られ(ステップS303)、ここから要求元のプロセッサ100aに送信されてキャッシュメモリ110aに格納される。この時点で、キャッシュメモリ110aにおける当該のラインのステータスは”E”となり、スヌープキャッシュ231aにおける同ラインのステータスは”M”となる。
その後、プロセッサ100aが当該のラインを更新してキャッシュメモリ110aにおけるステータスが”M”に遷移したり、もしくは、プロセッサ100aが当該のラインを破棄してキャッシュメモリ110aにおけるステータスが”I”に遷移したりしても、その遷移はメモリシステム制御装置200からは把握できない(ステップS305)。
ここで、プロセッサ100bから同じラインに含まれるデータの排他リード要求があったならば(ステップS306)、メモリシステム制御装置200は、各スヌープキャッシュを検索し、プロセッサ100aに対応するスヌープキャッシュ231aに当該のラインが”M”のステータスで保持されていることを確認する。
”M”のステータスは、キャッシュメモリ110aに最新のデータが存在する場合とキャッシュメモリ110aのラインが既に無効になっている場合のどちらもありうることを示しているため、メモリシステム制御装置200は、プロセッサ100aに対して当該のラインに関する問合せをおこなう(ステップS307)。
また、プロセッサ100aからの応答を待つことによるレイテンシの増大を避けるため、メモリシステム制御装置200は、主記憶300に対して当該のデータを含むラインの読出しを同時に要求する(ステップS308)。
そして、プロセッサ100aからの応答が届き(ステップS309)、さらに、主記憶300に要求していたラインが送信されてきたならば(ステップS310)、リードデータ選択送出部220は、プロセッサ100aからの応答の内容から最新のデータがどこにあるかを判断し、適切なデータを選択してプロセッサ100bに送信する(ステップS311)。
この時点で、キャッシュメモリ110aとスヌープキャッシュ231aにおける当該のラインのステータスは”I”となり、キャッシュメモリ110bにおける同ラインのステータスは”E”となり、スヌープキャッシュ231bにおける同ラインのステータスは”M”となる。
このように、スヌープキャッシュ側でMESIプロトコルの代わりにMSIプロトコルを使用した従来の方式では、主記憶に対する投機リードが必要になり、主記憶とのトランザクションが増大する。
次に、本実施例に係るメモリシステム制御方式について説明する。図1は、本実施例に係るメモリシステム制御方式について説明するための説明図である。本実施例でも、プロセッサのバスの仕様により、プロセッサのキャッシュメモリに保持されたラインのステータスが”E”から”M”または”I”へ遷移したことをメモリシステム制御装置側で把握することができない。
同図に示すように、本実施例に係るメモリシステム制御方式では、MSIプロトコルを使用した従来の方式では”M(更新状態)”と分類していたスヌープキャッシュ側の状態を”M(強い更新状態)”と”W(Weakly Modified、弱い更新状態)”に区別している。
本実施例に係るメモリシステム制御方式における”M”は、MESIプロトコルによるメモリシステム制御方式における”M”と同様にキャッシュメモリが最新データを保持していることを保証する。”W”は、MSIプロトコルによるメモリシステム制御方式における”M”と同様にキャッシュメモリ側の状態が不明であることを示す。
メモリシステム制御装置は、プロセッサの要求内容から当該のラインがキャッシュメモリにおいて”M”になると判断した場合に、スヌープキャッシュにおける同ラインのステータスを”M”に設定する。例えば、プロセッサから書込みを前提としたリード要求があった場合がこれに該当する。
スヌープキャッシュにおいてステータスが”M”となっているラインは、キャッシュメモリに最新の状態で存在していることが保証されるため、主記憶に対する投機リードが不要になり、その分だけシステムの負荷が軽減される。
次に、本実施例に係るメモリシステム制御装置の構成について説明する。図2は、本実施例に係るメモリシステム制御装置の構成を示す機能ブロック図である。同図に示すように、メモリシステム制御装置200は、プロセッサ100a〜100dの複数のプロセッサおよび主記憶300と接続された構成をとる。なお、接続されるプロセッサの数はいくつであってもよい。
プロセッサ100aは、各種演算をおこなう演算装置であり、キャッシュメモリ110aを有する。キャッシュメモリ110aは、主記憶のラインを所定の数だけ記憶することができ、記憶している各ラインのステータスを”M”、”E”、”S”または”I”のいずれか一つのステータスとして保持する。
プロセッサ100b、プロセッサ100cおよびプロセッサ100dは、プロセッサ100aと同様の構成であるため説明を省略する。
メモリシステム制御装置200は、プロセッサ100a〜100dと主記憶300の間のデータのやり取りを制御し、コヒーレンシを確保するための装置であり、プロセッサインターフェース部210a〜210dと、リードデータ選択送出部220と、キャッシュ制御部230と、主記憶インターフェース部240とを有する。
プロセッサインターフェース部210aは、プロセッサ100aとデータ等のやりとりをおこなう入出力部である。同様に、プロセッサインターフェース部210b〜210dは、それぞれ、プロセッサ100b〜dとデータ等のやりとりをおこなう。
リードデータ選択送出部220は、プロセッサ100a〜100dおよび主記憶300から送られたデータを要求元のプロセッサに送出する処理部である。メモリシステム制御装置200が、プロセッサ100a〜100dのいずれか一つにデータを問い合わせると同時に主記憶300に対して投機リードをおこなった場合には、リードデータ選択送出部220は、同一のラインの情報を2つ取得することになるが、プロセッサ側からの応答の内容を判断して要求元のプロセッサに送出するデータを選択する。
キャッシュ制御部230は、スヌープキャッシュの各ラインの状態を制御し、プロセッサ100a〜100dからデータの要求があった場合にそのデータを取得する手順を選択する処理部であり、スヌープキャッシュ231a〜231dと、データ取得手順選択部232と、スヌープキャッシュ更新部233とを有する。
スヌープキャッシュ231aは、キャッシュメモリ110aが記憶している各ラインのタグ情報を記憶し、記憶している各ラインのステータスを”M”、”W”、”S”または”I”のいずれか一つのステータスとして保持する。スヌープキャッシュ231b〜231dは、同様にキャッシュメモリ110b〜110dが記憶している各ラインのタグ情報と、各ラインのステータスとを記憶する。
データ取得手順選択部232は、プロセッサ100a〜100dからデータの取得要求があった場合に当該のデータを含むラインを取得するための手順を選択する処理部である。具体的には、まず、当該のデータを含むラインがスヌープキャッシュ231a〜231dに存在するか否かを調べ、存在しない場合は当該のデータを含むラインを主記憶から取得することとする。
当該のデータを含むラインがスヌープキャッシュ231a〜231dに存在する場合には、そのステータスを確認して取得手順を選択する。ステータスが”M”であれば、そのスヌープキャッシュに対応するキャッシュメモリからラインを取得することとする。ステータスが”W”であれば、そのスヌープキャッシュに対応するプロセッサに問合せをおこなうと同時に、主記憶300に対して投機リードをおこなうこととする。
ステータスが”S”のものがあれば、そのスヌープキャッシュに対応するキャッシュメモリからラインを取得することとする。なお、この場合は、主記憶300からラインを取得してもよい。そして、ステータスが”I”のものしかない場合は、主記憶300からラインを取得することとする。
スヌープキャッシュ更新部233は、スヌープキャッシュ231a〜231dに保持されている各ラインのステータスを更新する処理部である。ステータスの更新は、プロセッサ100a〜100dからのリード要求やステータス変更の通知に基づいておこなう。たとえば、プロセッサ100a〜100dからのリード要求の種類が書込みを前提としたものである場合には、スヌープキャッシュ231b〜231dに保持するラインのステータスを”M”に設定する。
主記憶インターフェース部240は、主記憶300とデータ等のやりとりをおこなう入出力部である。主記憶300は、メモリシステム制御装置200を具備するマルチプロセッサシステムにおいて稼動する各種プログラムやそれらのプログラムが使用するデータを展開するための記憶部である。
次に、本実施例に係るメモリシステム制御方式における制御手順について例をあげて説明する。図3は、本実施例に係るメモリシステム制御方式における「弱い更新状態」の場合の制御手順を説明するための説明図である。
同図に示すように、メモリシステム制御装置200は、いずれのキャッシュにも保持されていないデータのリード要求をプロセッサ100aから受け付けたならば(ステップS101)、主記憶300に対して当該のデータを含むラインの読出しを要求する(ステップS102)。
主記憶300から読み出されたラインは、リードデータ選択送出部220に送られ(ステップS103)、ここから要求元のプロセッサ100aに送信されてキャッシュメモリ110aに格納される。この時点で、キャッシュメモリ110aにおける当該のラインのステータスは”E”となり、スヌープキャッシュ231aにおける同ラインのステータスは”W”となる。
その後、プロセッサ100aが当該のラインを更新してキャッシュメモリ110aにおけるステータスが”M”に遷移したり、もしくは、プロセッサ100aが当該のラインを破棄してキャッシュメモリ110aにおけるステータスが”I”に遷移したりしても、その遷移はメモリシステム制御装置200からは把握できない(ステップS105)。
ここで、プロセッサ100bから同じラインに含まれるデータの排他リード要求があったならば(ステップS106)、メモリシステム制御装置200は、各スヌープキャッシュを検索し、プロセッサ100aに対応するスヌープキャッシュ231aに当該のラインが”W”のステータスで保持されていることを確認する。
”W”のステータスは、キャッシュメモリ110aに最新のデータが存在する場合とキャッシュメモリ110aのラインが既に無効になっている場合のどちらもありうることを示しているため、メモリシステム制御装置200は、プロセッサ100aに対して当該のラインに関する問合せをおこなう(ステップS107)。
また、プロセッサ100aからの応答を待つことによるレイテンシの増大を避けるため、メモリシステム制御装置200は、主記憶300に対して当該のデータを含むラインの読出しを同時に要求する(ステップS108)。
そして、プロセッサ100aからの応答が届き(ステップS109)、さらに、主記憶300に要求していたラインが送信されてきたならば(ステップS110)、リードデータ選択送出部220は、プロセッサ100aからの応答の内容から最新のデータがどこにあるかを判断し、適切なデータを選択してプロセッサ100bに送信する(ステップS111)。
この時点で、キャッシュメモリ110aとスヌープキャッシュ231aにおける当該のラインのステータスは”I”となり、キャッシュメモリ110bにおける同ラインのステータスは”E”となり、スヌープキャッシュ231bにおける同ラインのステータスは”W”となる。
このように、本実施例に係るメモリシステム制御方式においても、スヌープキャッシュ側のステータスが「弱い更新状態」の場合は、主記憶に対する投機リードが必要になり、主記憶とのトランザクションが増大する。
図4は、本実施例に係るメモリシステム制御方式における「強い更新状態」の場合の制御手順を説明するための説明図である。
同図に示すように、メモリシステム制御装置200は、いずれのキャッシュにも保持されていないデータについて書込みを前提としたリード要求をプロセッサ100aから受け付けたならば(ステップS201)、主記憶300に対して当該のデータを含むラインの読出しを要求する(ステップS202)。
主記憶300から読み出されたラインは、リードデータ選択送出部220に送られ(ステップS203)、ここから要求元のプロセッサ100aに送信されてキャッシュメモリ110aに格納される。この時点で、キャッシュメモリ110aにおける当該のラインのステータスは”M”となり、スヌープキャッシュ231aにおける同ラインのステータスも”M”となる。
その後、プロセッサ100aが当該のラインを更新してもキャッシュメモリ110aにおけるステータスは”M”のまま保持される(ステップS205)。
ここで、プロセッサ100bから同じラインに含まれるデータの排他リード要求があったならば(ステップS206)、メモリシステム制御装置200は、各スヌープキャッシュを検索し、プロセッサ100aに対応するスヌープキャッシュ231aに当該のラインが”M”のステータスで保持されていることを確認する。
”M”のステータスは、キャッシュメモリ110aに最新のデータが存在することを示しているため、メモリシステム制御装置200は、プロセッサ100aに対して当該のラインの排出を要求する(ステップS207)。
そして、プロセッサ100aからラインの排出がおこなわれたならば(ステップS208)、リードデータ選択送出部220が、その排出されたラインをプロセッサ100bに送信する(ステップS209)。
この時点で、キャッシュメモリ110aとスヌープキャッシュ231aにおける当該のラインのステータスは”I”となり、キャッシュメモリ110bにおける同ラインのステータスは”E”となり、スヌープキャッシュ231bにおける同ラインのステータスは”W”となる。
このように、本実施例に係るメモリシステム制御方式においては、スヌープキャッシュ側のステータスが「強い更新状態」の場合は、主記憶に対する投機リードが不要になり、主記憶とのトランザクションの増大を避けることができる。
投機リードの発生の有無は、制御手順をタイムチャートで表すことにより容易に見てとることができる。図5は、本実施例に係るメモリシステム制御方式における「弱い更新状態」の場合の制御手順を示すタイムチャートである。図6は、本実施例に係るメモリシステム制御方式における「強い更新状態」の場合の制御手順を示すタイムチャートである。
図5と図6を比較するとわかるように、図6では主記憶に対する投機リードであるステップS108とステップS109に相当するステップが存在しておらず、その分だけ主記憶とのトランザクションが減少していることになる。
上述してきたように、本実施例では、プロセッサからのリード要求の種類に応じてスヌープキャッシュの「更新状態」のステータスを「強い更新状態」と「弱い更新状態」に区別し、「強い更新状態」の場合はプロセッサのキャッシュメモリに最新のデータが存在することが保証されるように構成したので、主記憶に対する投機リードの発生を減少させ、もって主記憶とのトランザクションの増大を避けることができる。
(付記1)プロセッサ毎にキャッシュメモリを有するマルチプロセッサシステムにおいて前記キャッシュメモリと主記憶とのコヒーレンシを制御するメモリシステム制御装置であって、
前記プロセッサの有するキャッシュメモリの各エントリに格納されているデータのアドレス情報を記憶し、各エントリの利用状態を「強い更新状態」、「弱い更新状態」、「共有状態」もしくは「無効状態」のいずれかひとつの状態として保持するキャッシュ状態保持手段と、
前記プロセッサの一つからデータのリード要求を受けた場合に、前記キャッシュ状態保持手段により保持されている前記アドレス情報と前記利用状態に基づいて前記データの取得手順を少なくとも一つ選択するデータ取得手順選択手段と、
前記データ取得手順選択手段の選択した取得手順により取得されたデータから最新状態のデータを選択し、要求元のプロセッサに送出するリードデータ選択送出手段と、
前記データのアドレス情報を要求元のプロセッサに対応するキャッシュ状態保持手段のエントリの一つに登録する際に、前記リード要求の種別に応じて前記エントリの利用状態を更新するキャッシュ状態更新手段と
を備えたことを特徴とするメモリシステム制御装置。
(付記2)前記キャッシュ状態更新手段は、前記プロセッサの一つから書込みを前提としたデータとしてリード要求を受けた場合に、該データの利用状態を前記キャッシュ状態保持手段に「強い更新状態」として登録することを特徴とする付記1に記載のメモリシステム制御装置。
(付記3)前記キャッシュ状態更新手段は、前記プロセッサの一つから書込む可能性のあるデータとしてリード要求を受けた場合に、該データの利用状態を前記キャッシュ状態保持手段に「弱い更新状態」として登録することを特徴とする付記1または2に記載のメモリシステム制御装置。
(付記4)前記キャッシュ状態更新手段は、前記プロセッサの一つから「共有状態」への遷移を前提としたデータとしてリード要求を受けた場合に、該データの利用状態を前記キャッシュ状態保持手段に「弱い更新状態」として登録することを特徴とする付記1、2または3に記載のメモリシステム制御装置。
(付記5)前記キャッシュ状態更新手段は、前記プロセッサの一つから「無効状態」への遷移を前提としたデータとしてリード要求を受けた場合に、該データの利用状態を前記キャッシュ状態保持手段に「弱い更新状態」として登録することを特徴とする付記1〜4のいずれか一つに記載のメモリシステム制御装置。
(付記6)前記データ取得手順選択手段は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持手段のいずれかのエントリに存在し、そのエントリの利用状態が「強い更新状態」である場合に、当該のキャッシュ状態保持手段に対応するプロセッサからのデータ取得のみを該データの取得手順として選定することを特徴とする付記1〜5のいずれか一つに記載のメモリシステム制御装置。
(付記7)前記データ取得手順選択手段は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持手段のいずれかのエントリに存在し、そのエントリの利用状態が「弱い更新状態」である場合に、当該のキャッシュ状態保持手段に対応するプロセッサからのデータ取得と主記憶からのデータ取得とを該データの取得手順として選定することを特徴とする付記1〜6のいずれか一つに記載のメモリシステム制御装置。
(付記8)前記データ取得手順選択手段は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持手段のいずれかのエントリに存在し、そのエントリの利用状態が「共有状態」である場合に、当該のキャッシュ状態保持手段に対応するプロセッサからのデータ取得を該データの取得手順として選定することを特徴とする付記1〜7のいずれか一つに記載のメモリシステム制御装置。
(付記9)前記データ取得手順選択手段は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持手段のいずれかのエントリに存在し、そのエントリの利用状態が全て「無効状態」である場合に、主記憶からのデータ取得のみを該データの取得手順として選定することを特徴とする付記1〜8のいずれか一つに記載のメモリシステム制御装置。
(付記10)前記データ取得手順選択手段は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持手段のいずれのエントリにも存在しない場合に、主記憶からのデータ取得のみを該データの取得手順として選定することを特徴とする付記1〜9のいずれか一つに記載のメモリシステム制御装置。
(付記11)プロセッサ毎にキャッシュメモリを有するマルチプロセッサシステムにおいて前記キャッシュメモリと主記憶とのコヒーレンシを制御するメモリシステム制御方法であって、
前記プロセッサの有するキャッシュメモリの各エントリに格納されているデータのアドレス情報を記憶し、各エントリの利用状態を「強い更新状態」、「弱い更新状態」、「共有状態」もしくは「無効状態」のいずれかひとつの状態として保持するキャッシュ状態保持工程と、
前記プロセッサの一つからデータのリード要求を受けた場合に、前記キャッシュ状態保持工程により保持されている前記アドレス情報と前記利用状態に基づいて前記データの取得手順を少なくとも一つ選択するデータ取得手順選択工程と、
前記データ取得手順選択工程の選択した取得手順により取得されたデータから最新状態のデータを選択し、要求元のプロセッサに送出するリードデータ選択送出工程と、
前記データのアドレス情報を要求元のプロセッサに対応するキャッシュ状態保持工程のエントリの一つに登録する際に、前記リード要求の種別に応じて前記エントリの利用状態を更新するキャッシュ状態更新工程と
を含んだことを特徴とするメモリシステム制御方法。
(付記12)前記キャッシュ状態更新工程は、前記プロセッサの一つから書込みを前提としたリード要求を受けた場合に、該データの利用状態を前記キャッシュ状態保持工程に「強い更新状態」として登録することを特徴とする付記11に記載のメモリシステム制御方法。
(付記13)前記キャッシュ状態更新工程は、前記プロセッサの一つから書込む可能性のあるデータとしてリード要求を受けた場合に、該データの利用状態を前記キャッシュ状態保持工程に「弱い更新状態」として登録することを特徴とする付記11または12に記載のメモリシステム制御方法。
(付記14)前記キャッシュ状態更新工程は、前記プロセッサの一つから「共有状態」への遷移を前提としたリード要求を受けた場合に、該データの利用状態を前記キャッシュ状態保持工程に「弱い更新状態」として登録することを特徴とする付記11、12または13に記載のメモリシステム制御方法。
(付記15)前記キャッシュ状態更新工程は、前記プロセッサの一つから「無効状態」への遷移を前提としたリード要求を受けた場合に、該データの利用状態を前記キャッシュ状態保持工程に「弱い更新状態」として登録することを特徴とする付記11〜14のいずれか一つに記載のメモリシステム制御方法。
(付記16)前記データ取得手順選択工程は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持工程のいずれかのエントリに存在し、そのエントリの利用状態が「強い更新状態」である場合に、当該のキャッシュ状態保持工程に対応するプロセッサからのデータ取得のみを該データの取得手順として選定することを特徴とする付記11〜15のいずれか一つに記載のメモリシステム制御方法。
(付記17)前記データ取得手順選択工程は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持工程のいずれかのエントリに存在し、そのエントリの利用状態が「弱い更新状態」である場合に、当該のキャッシュ状態保持工程に対応するプロセッサからのデータ取得と主記憶からのデータ取得とを該データの取得手順として選定することを特徴とする付記11〜16のいずれか一つに記載のメモリシステム制御方法。
(付記18)前記データ取得手順選択工程は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持工程のいずれかのエントリに存在し、そのエントリの利用状態が「共有状態」である場合に、当該のキャッシュ状態保持工程に対応するプロセッサからのデータ取得を該データの取得手順として選定することを特徴とする付記11〜17のいずれか一つに記載のメモリシステム制御方法。
(付記19)前記データ取得手順選択工程は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持工程のいずれかのエントリに存在し、そのエントリの利用状態が全て「無効状態」である場合に、主記憶からのデータ取得のみを該データの取得手順として選定することを特徴とする付記11〜18のいずれか一つに記載のメモリシステム制御方法。
(付記20)前記データ取得手順選択工程は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持工程のいずれのエントリにも存在しない場合に、主記憶からのデータ取得のみを該データの取得手順として選定することを特徴とする付記11〜19のいずれか一つに記載のメモリシステム制御方法。
以上のように、本発明にかかるメモリシステム制御装置およびメモリシステム制御方法は、プロセッサ毎にキャッシュメモリを有するマルチプロセッサシステムにおけるコヒーレンシ制御に有用であり、特に、主記憶とのトランザクションを減少させたい場合に適している。
本実施例に係るメモリシステム制御方式について説明するための説明図である。 本実施例に係るメモリシステム制御装置の構成を示す機能ブロック図である。 本実施例に係るメモリシステム制御方式における「弱い更新状態」の場合の制御手順を説明するための説明図である。 本実施例に係るメモリシステム制御方式における「強い更新状態」の場合の制御手順を説明するための説明図である。 本実施例に係るメモリシステム制御方式における「弱い更新状態」の場合の制御手順を示すタイムチャートである。 本実施例に係るメモリシステム制御方式における「強い更新状態」の場合の制御手順を示すタイムチャートである。 MESIプロトコルによるメモリシステム制御方式について説明するための説明図である。 MSIプロトコルによるメモリシステム制御方式について説明するための説明図である。 MSIプロトコルによるメモリシステム制御方式における「更新状態」の場合の制御手順を説明するための説明図である。
符号の説明
100a,100b,100c,100d プロセッサ
110a,110b,110c,110d キャッシュメモリ
200 メモリシステム制御装置
210a,210b,210c,210d プロセッサインターフェース部
220 リードデータ選択送出部
230 キャッシュ制御部
231a,231b,231c,231d スヌープキャッシュ
232 データ取得手順選択部
233 スヌープキャッシュ更新部
240 主記憶インターフェース部
300 主記憶

Claims (4)

  1. プロセッサ毎にキャッシュメモリを有するマルチプロセッサシステムにおいて前記キャッシュメモリと主記憶とのコヒーレンシを制御するメモリシステム制御装置であって、
    前記プロセッサの有するキャッシュメモリの各エントリに格納されているデータのアドレス情報を記憶し、各エントリの利用状態を強い更新状態もしくは弱い更新状態のいずれかひとつの状態として保持するキャッシュ状態保持手段と、
    前記プロセッサの一つからデータのリード要求を受けた場合に、前記キャッシュ状態保持手段により保持されているエントリの利用状態が強い更新状態である場合に、当該キャッシュ状態保持手段に保持されているアドレス情報に対応するプロセッサの有するキャッシュメモリからデータを取得する取得手順を選択し、エントリの利用状態が弱い更新状態である場合に、当該キャッシュ状態保持手段に保持されているアドレス情報に対応するプロセッサの有するキャッシュメモリおよび前記主記憶からデータを取得する取得手順を選択するデータ取得手順選択手段と、
    前記データ取得手順選択手段の選択した取得手順により取得されたデータから最新状態のデータを選択し、要求元のプロセッサに送出するリードデータ選択送出手段と、
    前記データのアドレス情報を要求元のプロセッサに対応するキャッシュ状態保持手段のエントリの一つに登録する際に、前記リード要求の種別に応じて前記エントリの利用状態を更新するキャッシュ状態更新手段と
    を備え
    前記キャッシュ状態更新手段は、前記プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が更新状態であり、該プロセッサによって暗に排他状態から変更されたものではないことを保証するタイプであるリード要求を受け取った場合に、該データの利用状態を前記キャッシュ状態保持手段に強い更新状態として登録し、前記プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が排他状態であり、該プロセッサによって変更される可能性のあるタイプであるリード要求を受け取った場合に、該データの利用状態を前記キャッシュ状態保持手段に弱い更新状態として登録することを特徴とするメモリシステム制御装置。
  2. 前記データ取得手順選択手段は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持手段のいずれかのエントリに存在し、そのエントリの利用状態が共有状態である場合に、当該のキャッシュ状態保持手段に対応するプロセッサからのデータ取得を該データの取得手順として選定することを特徴とする請求項に記載のメモリシステム制御装置。
  3. 前記データ取得手順選択手段は、前記プロセッサの一つからリード要求されたデータのアドレスが前記キャッシュ状態保持手段のいずれかのエントリに存在し、そのエントリの利用状態が全て無効状態である場合に、主記憶からのデータ取得のみを該データの取得手順として選定することを特徴とする請求項1〜のいずれか一つに記載のメモリシステム制御装置。
  4. プロセッサ毎にキャッシュメモリを有するマルチプロセッサシステムにおいて前記キャッシュメモリと主記憶とのコヒーレンシを制御するメモリシステム制御装置によるメモリシステム制御方法であって、
    前記メモリシステム制御装置が、
    前記プロセッサの有するキャッシュメモリの各エントリに格納されているデータのアドレス情報を記憶し、各エントリの利用状態を強い更新状態もしくは弱い更新状態のいずれかひとつの状態として保持するキャッシュ状態保持工程と、
    前記プロセッサの一つからデータのリード要求を受けた場合に、前記キャッシュ状態保持工程により保持されているエントリの利用状態が強い更新状態である場合に、当該キャッシュ状態保持工程に保持されているアドレス情報に対応するプロセッサの有するキャッシュメモリからデータを取得する取得手順を選択し、エントリの利用状態が弱い更新状態である場合に、当該キャッシュ状態保持工程に保持されているアドレス情報に対応するプロセッサの有するキャッシュメモリおよび前記主記憶からデータを取得する取得手順を選択するデータ取得手順選択工程と、
    前記データ取得手順選択工程の選択した取得手順により取得されたデータから最新状態のデータを選択し、要求元のプロセッサに送出するリードデータ選択送出工程と、
    前記データのアドレス情報を要求元のプロセッサに対応するキャッシュ状態保持工程のエントリの一つに登録する際に、前記リード要求の種別に応じて前記エントリの利用状態を更新するキャッシュ状態更新工程と
    含み
    前記キャッシュ状態更新工程は、前記プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が更新状態であり、該プロセッサによって暗に排他状態から変更されたものではないことを保証するタイプであるリード要求を受け取った場合に、該データの利用状態を前記キャッシュ状態保持工程に強い更新状態として登録し、前記プロセッサの一つから、該プロセッサの有するキャッシュメモリ内のデータに対応する状態が排他状態であり、該プロセッサによって変更される可能性のあるタイプであるリード要求を受け取った場合に、該データの利用状態を前記キャッシュ状態保持工程に弱い更新状態として登録することを特徴とするメモリシステム制御方法。
JP2004229082A 2004-08-05 2004-08-05 メモリシステム制御装置およびメモリシステム制御方法 Expired - Fee Related JP4673585B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004229082A JP4673585B2 (ja) 2004-08-05 2004-08-05 メモリシステム制御装置およびメモリシステム制御方法
US10/999,972 US7783840B2 (en) 2004-08-05 2004-12-01 Method and apparatus for controlling memory system
EP04257577.9A EP1624377B1 (en) 2004-08-05 2004-12-06 Adapted MSI protocol used for snoop caches and speculative memory reads
KR1020040105539A KR100691695B1 (ko) 2004-08-05 2004-12-14 메모리 시스템 제어 장치 및 메모리 시스템 제어 방법
CNB2004100821781A CN100338587C (zh) 2004-08-05 2004-12-31 用于控制存储器系统的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004229082A JP4673585B2 (ja) 2004-08-05 2004-08-05 メモリシステム制御装置およびメモリシステム制御方法

Publications (2)

Publication Number Publication Date
JP2006048406A JP2006048406A (ja) 2006-02-16
JP4673585B2 true JP4673585B2 (ja) 2011-04-20

Family

ID=34930886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004229082A Expired - Fee Related JP4673585B2 (ja) 2004-08-05 2004-08-05 メモリシステム制御装置およびメモリシステム制御方法

Country Status (5)

Country Link
US (1) US7783840B2 (ja)
EP (1) EP1624377B1 (ja)
JP (1) JP4673585B2 (ja)
KR (1) KR100691695B1 (ja)
CN (1) CN100338587C (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4373485B2 (ja) * 2006-02-28 2009-11-25 富士通株式会社 情報処理装置及び該制御方法
JP5168800B2 (ja) * 2006-03-08 2013-03-27 富士通株式会社 マルチプロセッサシステム
WO2008114443A1 (ja) 2007-03-20 2008-09-25 Fujitsu Limited マルチプロセッサシステム及びその制御方法
US8898653B2 (en) * 2007-06-27 2014-11-25 International Business Machines Corporation Non-disruptive code update of a single processor in a multi-processor computing system
US7747908B2 (en) * 2007-07-18 2010-06-29 International Business Machines Corporation System and method for creating different start cache and bus states using multiple test patterns for processor design verification and validation
US7739570B2 (en) * 2007-07-18 2010-06-15 International Business Machines Corporation System and method for increasing error checking performance by calculating CRC calculations after multiple test patterns for processor design verification and validation
US7689886B2 (en) * 2007-07-18 2010-03-30 International Business Machines Corporation System and method for predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification and validation
US7661023B2 (en) * 2007-07-18 2010-02-09 International Business Machines Corporation System and method for verification of cache snoop logic and coherency between instruction & data caches for processor design verification and validation
US7647539B2 (en) * 2007-07-18 2010-01-12 International Business Machines Corporation System and method of testing using test pattern re-execution in varying timing scenarios for processor design verification and validation
US8127192B2 (en) * 2007-07-18 2012-02-28 International Business Machines Corporation Predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification/validation in interrupt mode
JP2009042992A (ja) * 2007-08-08 2009-02-26 Renesas Technology Corp バス制御装置
US8185694B2 (en) * 2008-07-25 2012-05-22 International Business Machines Corporation Testing real page number bits in a cache directory
KR101639672B1 (ko) * 2010-01-05 2016-07-15 삼성전자주식회사 무한 트랜잭션 메모리 시스템 및 그 동작 방법
KR101944329B1 (ko) * 2012-04-17 2019-04-18 삼성전자주식회사 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법
CN102722467A (zh) * 2012-05-31 2012-10-10 深圳市江波龙电子有限公司 一种多处理器设备及其程序运行方法
US9665468B2 (en) 2013-08-19 2017-05-30 Intel Corporation Systems and methods for invasive debug of a processor without processor execution of instructions
US9619382B2 (en) * 2013-08-19 2017-04-11 Intel Corporation Systems and methods for read request bypassing a last level cache that interfaces with an external fabric
US9632947B2 (en) 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US9361227B2 (en) 2013-08-30 2016-06-07 Soft Machines, Inc. Systems and methods for faster read after write forwarding using a virtual address
FR3021773B1 (fr) * 2014-05-27 2017-10-06 Bull Sas Interrogation speculative en memoire centrale d'un systeme multiprocesseur
JP6674085B2 (ja) * 2015-08-12 2020-04-01 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ
JP2002024198A (ja) * 2000-07-06 2002-01-25 Fujitsu Ltd 分散共有メモリ型並列計算機
US20020087811A1 (en) * 2000-12-28 2002-07-04 Manoj Khare Method and apparatus for reducing memory latency in a cache coherent multi-node architecture

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
JPH06208507A (ja) * 1993-01-11 1994-07-26 Casio Comput Co Ltd キャッシュメモリシステム
JPH08185359A (ja) * 1994-10-31 1996-07-16 Toshiba Corp メモリサブシステム
US5692149A (en) * 1995-03-16 1997-11-25 Samsung Electronics Co., Ltd. Block replacement method in cache only memory architecture multiprocessor
EP0735487B1 (en) * 1995-03-31 2001-10-31 Sun Microsystems, Inc. A fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system
US5684977A (en) 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
KR19980032776A (ko) * 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
KR100433511B1 (ko) * 1996-12-30 2005-05-09 삼성전자주식회사 캐시일관성유지를위한스누핑장치
JPH11212868A (ja) * 1998-01-28 1999-08-06 Oki Electric Ind Co Ltd スヌープキャッシュメモリ制御システム
JP3550092B2 (ja) 1998-12-10 2004-08-04 富士通株式会社 キャッシュ装置及び制御方法
US6918009B1 (en) * 1998-12-18 2005-07-12 Fujitsu Limited Cache device and control method for controlling cache memories in a multiprocessor system
US6857051B2 (en) * 1998-12-23 2005-02-15 Intel Corporation Method and apparatus for maintaining cache coherence in a computer system
US6721856B1 (en) * 2000-10-26 2004-04-13 International Business Machines Corporation Enhanced cache management mechanism via an intelligent system bus monitor
US6763435B2 (en) * 2001-10-16 2004-07-13 International Buisness Machines Corporation Super-coherent multiprocessor system bus protocols
US7073004B2 (en) * 2002-12-12 2006-07-04 International Business Machines Corporation Method and data processing system for microprocessor communication in a cluster-based multi-processor network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ
JP2002024198A (ja) * 2000-07-06 2002-01-25 Fujitsu Ltd 分散共有メモリ型並列計算機
US20020087811A1 (en) * 2000-12-28 2002-07-04 Manoj Khare Method and apparatus for reducing memory latency in a cache coherent multi-node architecture

Also Published As

Publication number Publication date
EP1624377A3 (en) 2008-06-04
KR20060013330A (ko) 2006-02-09
US7783840B2 (en) 2010-08-24
EP1624377B1 (en) 2013-10-23
JP2006048406A (ja) 2006-02-16
US20060031641A1 (en) 2006-02-09
CN1731372A (zh) 2006-02-08
KR100691695B1 (ko) 2007-03-09
CN100338587C (zh) 2007-09-19
EP1624377A2 (en) 2006-02-08

Similar Documents

Publication Publication Date Title
JP4673585B2 (ja) メモリシステム制御装置およびメモリシステム制御方法
JP5190236B2 (ja) 複数の上位レベルのキャッシュ・メモリおよび1つの下位レベルのキャッシュ・メモリを有するマルチプロセッサ・データ処理システムにおいてコヒーレンシを管理する方法、およびデータ処理システム
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US7657710B2 (en) Cache coherence protocol with write-only permission
US7360032B2 (en) Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks
KR101639672B1 (ko) 무한 트랜잭션 메모리 시스템 및 그 동작 방법
US7395376B2 (en) Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US7640401B2 (en) Remote hit predictor
US8185695B2 (en) Snoop filtering mechanism
US7949832B2 (en) Latency reduction for cache coherent bus-based cache
JP4409619B2 (ja) 情報処理装置、制御装置および制御方法
US8296520B2 (en) System and method for optimizing neighboring cache usage in a multiprocessor environment
US20140006716A1 (en) Data control using last accessor information
US10628312B2 (en) Producer/consumer paced data transfer within a data processing system having a cache which implements different cache coherency protocols
JP3550092B2 (ja) キャッシュ装置及び制御方法
US6976132B2 (en) Reducing latency of a snoop tenure
US11249908B1 (en) Technique for managing coherency when an agent is to enter a state in which its cache storage is unused
JP2001109662A (ja) キャッシュ装置及び制御方法
JPWO2007096978A1 (ja) スヌープ制御方法および情報処理装置
WO2007110914A1 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
JP2003216596A (ja) マルチプロセッサシステム及びノード装置
JP2008269513A (ja) マルチプロセッサコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101217

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4673585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees