JPH08185359A - メモリサブシステム - Google Patents

メモリサブシステム

Info

Publication number
JPH08185359A
JPH08185359A JP7151738A JP15173895A JPH08185359A JP H08185359 A JPH08185359 A JP H08185359A JP 7151738 A JP7151738 A JP 7151738A JP 15173895 A JP15173895 A JP 15173895A JP H08185359 A JPH08185359 A JP H08185359A
Authority
JP
Japan
Prior art keywords
memory
bus
tag
processor
cache
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.)
Pending
Application number
JP7151738A
Other languages
English (en)
Inventor
Hiroshi Komuro
浩 小室
Nobuhiko Yamagami
宣彦 山上
Hiroo Hayashi
宏雄 林
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP7151738A priority Critical patent/JPH08185359A/ja
Priority to US08/550,403 priority patent/US5829032A/en
Publication of JPH08185359A publication Critical patent/JPH08185359A/ja
Pending legal-status Critical Current

Links

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

Abstract

(57)【要約】 【目的】NUMA方式の多階層キャッシュにおいて、少
量のハードウェアの追加によりキャッシュのコヒーレン
シ制御を可能とし、更に、主記憶からの高速レイテンシ
を可能にする。 【構成】タグメモリ14(15)に格納されたタグ情報
を参照してキャッシュのコヒーレンシー制御の返事を行
う一方、タグ情報が“ダーティ”を示していた場合、主
記憶12(13)から読み出されたデータを停止させ、
ダーティラインのコピーバック処理の完了を待って正し
いデータを要求元のプロセッサ1(2,3,4)に送る
コントローラ内蔵のバスブリッジ14(15)を構築す
ることにより、安価なハードウェアでかつ高速メモリサ
ブシステムを提供する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、主記憶が分散配置さ
れ、独立して動作する内部バスにそれぞれ接続されるキ
ャッシュメモリ内蔵の少なくとも1個のプロセッサから
成るマルチプロセッサシステムに用いて好適なメモリサ
ブシステムに関する。
【0002】
【従来の技術】通常、複数のプロセッサを同時動作させ
るマルチプロセッサシステムにおいて、プログラムを格
納する主記憶装置とプロセッサは図14のように接続さ
れる。図14に示す接続構成において、複数の各プロセ
ッサ41 〜4n が一つの主記憶装置40を共有すること
でいずれのプロセッサ41 〜4n からのリクエストであ
っても均一のタイミングで応答を返すことが可能であ
り、一般的にUMA(Uniform Memory Access )と呼ば
れている。
【0003】この方式は、システムを容易に構築できる
利点がある反面、プロセッサの性能向上に起因するメモ
リアクセスの集中によるレイテンシの増加や、プロセッ
サ台数の増加によるプロセッサ、主記憶装置間のバス負
荷増加に伴うサイクルタイムの劣化等の欠点が挙げられ
る。
【0004】上述した欠点を解消するために、図15に
示す接続形態が提案された。図15に示す構成におい
て、主記憶装置50a〜50nは分散配置されるが、論
理的には一つの連続した空間にマッピングされている。
【0005】この場合、一台の主記憶装置に接続される
プロセッサ台数の上限を設定することで高速レイテンシ
を可能にしている。この構成において、通常の処理はそ
れぞれのプロセッサ51〜5nに接続されている主記憶
装置50a〜50nのメモリに置かれ、他プロセッサと
の同期処理等の必要なアクセスのみ他プロセッサが接続
されている主記憶装置内のメモリにアクセスされること
が望ましい。
【0006】この方式は、リクエスト先の主記憶装置に
よりメモリからのレイテンシが異なるため、NUMA
(Non Uniform Memory Access )と呼ばれている。NU
MA方式のマルチプロセッサシステムにおいては、キャ
ッシュメモリ制御が最大の問題となる。
【0007】マルチプロセッサシステムにおいて、キャ
ッシュメモリは、プロセッサバスをスヌープしてキャッ
シュコヒーレンシ制御を行うのが一般的であるが、NU
MA方式ではプロセッサバス同士が別々に独立して動作
しているため、バススヌープ方式を採用することはでき
ない。
【0008】この問題解決のためには、システムバスに
大容量のキャッシュを設ける多階層構成キャッシュメモ
リシステムがある。図16にその接続構成を示す。図
中、符号60a〜60nはプロセッサユニット、符号6
1a〜61nは主記憶装置、符号62a〜62nはキュ
ッシュ、符号63a〜63nはインタフェースユニッ
ト、符号64a〜64nはプロセッサバス、符号65は
システムバスである。
【0009】近年のプロセッサは、プロセッサ内部にプ
ロセッサの周波数と同期している超高速のオンチップキ
ャッシュが数KB程度実装されており、レベル1(L
1)キャッシュと呼ばれている。
【0010】更に、プロセッサの外部に、高速SRAM
等のメモリ素子を複数実装しプロセッサが直接アクセス
する、数十KB程度のレベル2(L2)キャッシュが実
装される。
【0011】L2キャッシュはL1キャッシュに比べて
速度は遅いが、比較的容量が大きいことで知られる。図
17にこれらの接続構成が示されている。
【0012】図中、符号71はプロセッサユニットであ
り、符号72は内蔵のL1キャッシュ、符号73はL2
キャッシュコントローラ、符号74はL2キャッシュメ
モリ、符号75はバスである。
【0013】尚、図16において、単にプロセッサ61
a〜61nとのみ示されているブロックは図17に示す
L1およびL2キャッシュまで含まれていることを前提
として以下の説明を行う。
【0014】図16に示す例は、更にNUMAの対策用
としてレベル3キャッシュ(L3)を設けている。L3
キャッシュはプロセッサバス側のL1,L2キャッシュ
と論理的に同期して動作する。
【0015】つまり、L1またはL2のキャッシュライ
ンの無効化時にはL3キャッシュの同一ラインにも無効
化処理を行う。一方、L3キャッシュはシステムバス上
のL3キャッシュ間のスヌープ機能を持つことで、全プ
ロセッサのキャッシュのコヒーレンシ制御を実現してい
る。
【0016】ここでL3キャッシュはキャッシュの機能
を十分に引き出すために通常L2キャッシュの十倍程度
かそれ以上の容量が必要である。つまり、L3キャッシ
ュは数十MB程度の容量のメモリ(通常はSRAM)に
より構成され、上述した機能を実現している。
【0017】
【発明が解決しようとする課題】ところで、上述したN
UMA方式の多階層キャッシュは、L3キャッシュの性
能を十分引き出すために大容量(通常、数十MB程度の
SRAM)のメモリが必要で非常に高価なシステム構成
となってしまう。
【0018】また、L3キャッシュは、プロセッサバ
ス、システムバスのコヒーレンシ制御回路が必要であ
る。更に、プロセッサから主記憶装置内のメモリをリー
ドする場合に、主記憶装置から読み出されたデータは、
他プロセッサのキャッシュ内にデータが存在するか否か
の条件を他のL3キャッシュからの返事が返ってくるま
で正しいか否かを判断することができないといった欠点
を有していた。
【0019】本発明は上記実情に鑑みなされたもので、
NUMA方式の多階層キャッシュにおいて、少量のハー
ドウェアの追加によりキャッシュのコヒーレンシ制御を
可能とし、更に、主記憶装置からの高速アクセスを可能
にするメモリサブシステムを提供することを目的とす
る。
【0020】
【課題を解決するための手段】本発明は、主記憶装置が
分散配置され、独立して動作する内部バスにそれぞれ接
続されるキャッシュメモリ内蔵の少なくとも1個のプロ
セッサから成るマルチプロセッサシステムにおいて、メ
モリサブシステムは、主記憶装置に実装される全メモリ
容量分のタグ情報が記憶されるタグメモリと、システム
バスを介して接続されるプロセッサからのキャッシュの
書き替え発生と、主記憶装置への書き戻しの発生を検出
し、上記タグメモリへその状態情報を書き込むタグメモ
リ制御回路、当該タグ情報からキャッシュコヒーレンシ
制御のレスポンスを内部バスへ出力する他、上記タグ情
報から主記憶装置とキャッシュのいずれか正しいレスポ
ンスを選択するコントローラで構成されるバスインタフ
ェース制御回路とを具備することを特徴とする。
【0021】尚、上述したコントローラは、当該タグ情
報からキャッシュコヒーレンシ制御のレスポンスを内部
バスへ出力する他、タグ情報から主記憶装置へキャッシ
ュの書き戻し完了後、書き替えられたデータを再度読み
出しレスポンスを要求元のプロセッサへ返す応用も考え
られる。
【0022】また本発明は、キャッシュ内蔵のプロセッ
サが接続されたそれぞれ独立して動作するプロセッサバ
スを一つ以上持ち、これらのプロセッサバスをバスイン
ターフェイス制御回路を介して一つのシステムバスに接
続し、主記憶装置が分散されてそれぞれのバスインター
フェイス制御回路に接続されるマルチプロセッサシステ
ムにおいて、上記バスインターフェイス制御回路は、バ
スに発行されたトランザクションが自身に接続されてい
る自主記憶装置に関係するものであるか否かを判別する
比較回路と、上記自主記憶装置に実装されるメモリ容量
分の、データが有効であるか否かを示すタグ情報を記憶
するタグメモリと、上記比較回路による判別結果に基づ
いて、何れかのプロセッサにより上記自主記憶装置中の
データのキャッシュでの書き換えの発生を検出した時に
無効、キャッシュから上記主記憶装置への書き戻しの発
生を検出した時に有効を表す状態に、上記タグメモリ中
の該当するタグ情報を設定するタグメモリ制御回路と、
上記比較回路により上記自主記憶装置に対する読み出し
要求を検出した時に、上記タグメモリの状態情報に応じ
て、自主記憶装置からデータを読み出して要求に応答す
るか否かを制御する制御回路とを具備することを特徴と
する。
【0023】
【作用】タグメモリには主記憶装置に実装される全メモ
リ容量分のタグ情報が格納され、システムバスの先に接
続されている他方のプロセッサからアクセス要求が発生
し、かつキャッシュの書き替えが発生したことが記憶さ
れる。バスインタフェース制御回路は、上述したタグ情
報を参照してキャッシュのコヒーレンシ制御の返事を行
う一方、タグ情報が“ダーティ”を示していた場合、主
記憶から読み出されたデータを停止させ、ダーティライ
ンのコピーバック処理の完了を待って正しいデータを要
求元のプロセッサに送る。バスインタフェース制御回路
は、プロセッサからのアクセス要求を受信し、内蔵する
アドレス比較回路にて、分散配置された主記憶のアドレ
ス範囲を検出し、そのアドレスを内部バスもしくはシス
テムバスに出力する他、システムバスを常に監視し、他
方の内部バスに接続されるプロセッサのいずれかで“モ
ディファイ”ステート(当該キャッシュのみ有効データ
を持ち主記憶データは無効)が発生したとき、あるい
は、他方の内部バスに接続されるプロセッサにおいて、
“モディファイ”のステートから主記憶へのライトバッ
クが発生したとき、メモリタグ情報の変更を行ない、プ
ロセッサ側では、メモリタグから参照アドレスのタグ情
報を得、主記憶から得られるレスポンスデータの正否を
判断し、キャッシュコヒーレンシ信号を要求元プロセッ
サに返却する。
【0024】このことにより、安価なハードウェアで、
かつ高速なメモリサブシステムを提供できる。また、各
タグメモリがシステム全体のメモリ総容量分のタグ情報
(メモリタグ)を記憶するのではなく、同じバスインタ
フェース制御回路に接続された主記憶装置に実装された
メモリに対応するタグ情報のみをタグメモリに記憶する
ことにより、システム中のメモリ容量の増加に応じて大
容量のタグメモリを用意する必要がなくなる。この場
合、システム中の何れかのプロセッサのキャッシュにお
いて、自主記憶装置のデータに対する書き替えが発生し
た場合、すなわちバスに無効化要求付きリード要求、あ
るいは無効化要求のトランザクションが発行された場合
には、バスインタフェース制御回路がスヌープして、対
象とするデータに対応するメモリタグを無効(Inva
lid)にし、キャッシュ上のデータが主記憶装置に書
き戻された場合、すなわちライト要求のトランザクショ
ンが発行された場合に有効(Valid)に設定する。
そして、バスからアクセス要求を受け付けた際に、対象
とするデータのタグ情報が有効を示すのであれば、自主
記憶装置に対するアクセスにより処理を完了し、アクセ
ス要求をバスに発行しない。
【0025】
【実施例】以下図面を参照して本発明の実施例を説明す
る。図1は本発明の第1実施例によるシステムの構成を
示すブロック図である。図1に於いて、符号1〜4はプ
ロセッサであり、それぞれが持つプロセッサバス5,6
に接続されている。
【0026】プロセッサバス5,6には、更にバスイン
タフェース制御回路(バスブリッジ)7,8を介しシス
テムバス9が接続される。バスブリッジ7,8は、プロ
セッサバス5,6とシステムバス9との間のブリッジ機
能と主記憶制御装置10,11とのインタフェース、ア
ドレスとタグとのインタフェース及び制御機能を有す
る。
【0027】符号12,13はデータを格納する主記憶
装置であり、それぞれ主記憶制御装置10,11により
リード/ライト制御がなされる。符号14,15はタグ
メモリであり、全主記憶分のタグ情報を記憶する。
【0028】以下、あるバスブリッジについて、同バス
ブリッジに直接接続されているプロセッサバスに接続さ
れているプロセッサをローカルプロセッサと呼び、同バ
スブリッジに直接接続されていないプロセッサバスに接
続されているプロセッサをリモートプロセッサと呼ぶ。
【0029】図2は第1実施例において使用されるメモ
リタグのアドレスマップを示す図であり、図中、21は
主記憶アドレスを、22はメモリタグアドレスを示す。
タグ中、“0”はリモートプロセッサにダーティライン
有り、“1”はリモートプロセッサにダーティライン無
しを意味する。
【0030】図3は、図1に示すバスブリッジの回路構
成を示す図である。図中、符号31はプロセッサバス入
出力制御回路であり、プロセッサバス5(6)とのイン
タフェース制御を行う。
【0031】符号32はシステムバス入出力制御回路で
あり、システムバス9とのインタフェース制御を行う。
符号33はプロセッサバスアドレス比較回路であり、こ
こでプロセッサバス5(6)のリクエストアドレスとロ
ーカルのメモリアドレスが比較される。
【0032】符号34は主記憶制御入出力回路であり、
主記憶制御装置10(11)とのインタフェース制御を
行う。符号35はシステムバスアドレス比較回路であ
り、ここでシステムバス9のリクエストアドレスとロー
カルのメモリアドレスが比較される。
【0033】符号36はメモリタグステート制御回路で
あり、ここでメモリタグ情報キャッシュのコヒーレンシ
ーのステート信号を生成する。符号37はメモリタグ制
御回路であり、メモリタグとのインタフェース制御を行
う。
【0034】符号38はメモリタグステート変更回路で
あり、ここでシステムバス9のキャッシュスヌープ情報
からメモリタグのステート信号を変化させる。以下、本
発明の実施例の動作につき、図1乃至図3を使用して説
明する。
【0035】図1に示す実施例(システム構成)は、4
台のマルチプロセッサシステム構成を例示している。プ
ロセッサ1〜4は、それぞれのプロセッサバス5,6に
2台ずつ接続されており、それぞれのプロセッサバス
5,6は独立して動作している。図示してないが、それ
ぞれのプロセッサ1〜4は図17に示すL1,L2のキ
ャッシュメモリによる制御を行っている。
【0036】プロセッサ1からメモリへのアクセスが発
生した場合を例にキャッシュコヒーレンシ制御が不要な
場合の基本的な動作を説明する。プロセッサ1からのリ
クエストは、バスブリッジ7に入力される。バスブリッ
ジ7では、受け付けたリクエストが主記憶装置12(こ
の場合のアクセスを“ローカルアクセス”と定義する)
の範囲か、それとも主記憶装置13(この場合のアクセ
スをリモートアクセス”と定義する)への範囲かを判断
する。リクエストが主記憶装置12(ローカル)の範囲
の場合は、主記憶制御回路10にリクエストが通知さ
れ、主記憶制御回路10は主記憶装置12へのアクセス
を開始する。ライトリクエストの場合は、ライトデータ
を主記憶装置12内の指定アドレスへ書き込み、リード
リクエストの場合は主記憶装置12からデータを読み出
し、逆のパス、即ち、主記憶装置12、バスブリッジ7
を経由してプロセッサ1にデータが取り込まれる。
【0037】リクエストが主記憶装置13の範囲(リモ
ート)であった場合は、バスブリッジ7からシステムバ
ス9を介してバスブリッジ8にリクエストが送られる。
バスブリッジ8では、上述したローカルアクセスと同
様、主記憶制御回路11にリクエストが通知され、主記
憶制御回路11は、主記憶装置13をアクセスする。リ
ードリクエストの場合は、バスブリッジ8、システムバ
ス9、バスブリッジ7経由でプロセッサ1にデータが取
り込まれる。
【0038】このような機能をバスブリッジ7,8に備
えることでプロセッサ1〜4は主記憶装置のアドレスを
意識することなくリクエストを送出することができる。
また、このようなNUMA方式のマルチプロセッサシス
テムには標準的に含まれている機能である。
【0039】以下の動作は、プロセッサ2にモディファ
イドラインが存在しなかった場合を仮定している。プロ
セッサ2はモディファイドラインを持った状態で、その
キャッシュラインに対するリードリクエストをスヌープ
した時は、「モディファイ」ステータスを要求元プロセ
ッサ1に返却し、そのモディファイドラインのデータを
レスポンスデータとして転送する。
【0040】次にキャッシュ制御について説明する。上
述したように、それぞれのプロセッサ1〜4にはキャッ
シュが内蔵されている。
【0041】キャッシュのコヒーレンシを保証するため
に、プロセッサバス1,2はプロセッサバス6の、プロ
セッサバス3,4はプロセッサバス5のスヌープ機能を
実現している。
【0042】ここではコピーバック(またはライトバッ
ク)キャッシュ方式のMESIプロトコルをサポートす
るプロセッサを例にとって説明する。MESIには文字
どおり、以下に示す4つのステートが存在する。
【0043】M(モディファイ):キャッシュライン有
効。主記憶データは無効(キャッシュと不一致)当該キ
ャッシュのみ変更データを持つ。
【0044】E(イクスクルーシブ):キュッシュライ
ン有効。主記憶データは有効(キャッシュと一致)当該
キャッシュのみデータが存在する。
【0045】S(シェア):キャッシュライン有効。主
記憶データは有効(キャッシュと一致)。複数のキャッ
シュにデータが存在する。
【0046】I(インバリッド):キャッシュライン無
効。主記憶のみ有効。MESIプロトコルのキャッシュ
では、プロセッサバスをスヌープし、バスのアクセスか
ら上記4つの状態遷移を行うことで、キャッシュのコヒ
ーレンシ制御を行っている。
【0047】この例では、プロセッサ内部にL2キャッ
シュコントローラの回路が内蔵されているため、それぞ
れのプロセッサ1〜4が上記キャッシュの制御を行って
いる。
【0048】しかし、図1に示したシステム構成ではプ
ロセッサバスが2本存在し、それぞれ独立して動作して
いるため、接続されていないプロセッサバス上のキャッ
シュのスヌープを行うことは不可能である。
【0049】これを解決するために、メモリタグ14,
15とバスブリッジ7,8に以下に示す機能を付加す
る。まず、メモリタグ14,15について説明を加え
る。
【0050】図2はメモリタグ14,15のアドレスマ
ッピングを示す。図2に示す例では、主記憶容量64K
B、キャッシュラインサイズ64Bの例を示す。
【0051】メモリタグはキャッシュ1ラインに1ビッ
トずつマッピングされる。つまり、“主記憶容量/キャ
ッシュラインサイズ”の容量を持つため、図2に示す例
では1Kビット必要となる。
【0052】このメモリタグにはリモートプロセッサに
ダーティラインが有るか否かの情報が格納されるが、詳
細動作については後述する。次に、バスブリッジの機能
について説明する。
【0053】バスブリッジ7,8はプロセッサバス5,
6とシステムバス9との間のブリッジ機能と、リクエス
トアドレスを比較する機能があることについては既に述
べた。ここでは、バスブリッジ制御の流れについて図3
を用いて説明する。
【0054】まず、プロセッサ1からのリクエストがバ
スブリッジ7内のプロセッサバス入出力制御回路31に
入力される。次にリクエストアドレスはプロセッサバス
アドレス比較回路33に入力され、主記憶装置12に実
装されたメモリ、即ち、ローカルアドレスの場合は主記
憶制御入出力回路34に送られる。
【0055】リクエストがローカルアドレスとして存在
しない場合は、システムバス入出力制御回路32からシ
ステムバス9に出力される。システムバス9に出力され
たリクエストはバスブリッジ8内のシステムバス入出力
制御回路32に入力され、更にシステムバスアドレス比
較回路35に入力される。
【0056】バスブリッジ8は主記憶装置13のアドレ
スと比較し、アドレス範囲内の場合にのみ主記憶制御入
出力回路34から主記憶回路11に送出される。本発明
ではバスブリッジ7,8に更に以下に示す機能が付加さ
れる。
【0057】メモリタグステート変更回路38の機能に
ついて述べる。バスブリッジ7,8はシステムバス9を
常にスヌープしており、次の条件が成立した時、メモリ
タグの情報変更要求をメモリタグ制御回路37に送出す
る。
【0058】“*→1”(リモートダーティ):リモー
トプロセッサのいずれかでモディファイステートが発生
した時。 “*→0”(リモートクリーン):リモートプロセッサ
においてモディファイのステートから主記憶装置へのラ
イトバックが発生した時。
【0059】つまり、メモリタグ14,15はシステム
バス9からのトランサクションのみ書き換えが行われ
る。また、ライトバックやモディファイのトランザクシ
ョン時は、プロセッサバス入出力制御回路31からシス
テムバス入出力制御回路32へダイレクトのパスで送ら
れる。
【0060】一方、プロセッサバス側では以下の制御が
行なわれる。プロセッサからメモリへのトランザクショ
ンが発生した場合、プロセッサバス入出力制御回路31
からメモリタグ制御回路37にアドレスが通知され、メ
モリタグ7,8からは図2に示す参照アドレスのタグ情
報を読み出す。
【0061】タグ情報はメモリタグステート制御回路3
6へ送られる。メモリタグステート制御回路36はリー
ドリクエストを受けとった時、メモリタグ情報に基づき
以下に示す制御を行う。 (1)メモリタグ=リモートクリーン(“1”)の場合 他方のプロセッサバス6に接続されるプロセッサ3,4
のキャッシュラインにモディファイドラインが存在しな
いため、主記憶装置から読み出されたレスポンスデータ
が正しいことが判明する。
【0062】このため、プロセッサバス入出力制御回路
31からはキャッシュコヒーレンシー制御信号として
「シェア」ステータスを要求元プロセッサに返却する。
プロセッサ2は「クリーン」または「シェア」ステータ
スの場合、主記憶装置からのレスポンスデータ待ちとな
る。
【0063】ローカルアドレスのリクエストは主記憶装
置12から、リモートアドレスに対しては主記憶装置1
3からレスポンスデータを転送する。また、同一プロセ
ッサバス上に接続されるプロセッサ2が「モディファ
イ」ステータスの場合は、「モディファイド」ステータ
スを要求元プロセッサに返却し、プロセッサ2からのモ
ディファイラインのデータがプロセッサ1に転送され、
バスブリッジ7は主記憶装置からのデータ転送を禁止す
る。 (2)メモリタグ=リモートダーティ(“0”)の場合 プロセッサ3または4のキャッシュにダーティラインが
存在するため、プロセッサ3または4のキャッシュが読
み出される。
【0064】バスブリッジは「シェア」を要求元のプロ
セッサにステータスとして返す。プロセッサ3または4
はダーティラインを主記憶装置に書き戻し、ステータス
を「ダーティ」から「シェア」に変化させる。
【0065】バスブリッジは書き戻されたデータを要求
元プロセッサ1に送ると同時に、メモリタグのビットを
「クリーン」に変化させる。バスブリッジの「シェア」
ステータスの返事に対して若干補足説明を加える。
【0066】キャッシュのプロトコルはMESIの4状
態をサポートしているが、本発明の方式では“E”(イ
クスクルーシブ)の状態は無く、MSIの3状態しか存
在しない。
【0067】仮りに、主記憶データがあるプロセッサか
ら読み出された場合でも“イクスクルーシブ”でなく
“シェア”を書き込む。この処理により、プロセッサ
は、そのキャッシュラインは他のプロセッサと“シェ
ア”しているものと見せかけている。
【0068】これにより、“イクスクルーシーブ”→
“モディファイ”のバストランザクションが発生しない
状態遷移を禁止している。つまり、キャッシュラインの
書き換え(モディファイ)の変化時に必ずプロセッサバ
スへのバスコヒーレンシ用トランザクションが発生す
る。このトランザクションが発生するため、メモリタグ
の制御が可能となる。
【0069】一般的には、キャッシュのコヒーレンシ制
御を行う場合、実装されている他の全プロセッサのキャ
ッシュのコヒーレンシの返事を持たなければ、処理を開
始することができなかった。
【0070】しかし、本発明の方式を実現することで、
モディファイの状態以外の全ての場合において、レスポ
ンスデータが正しいことが保証される。つまり、リクエ
ストがローカルアドレスの場合、システムバスを使用せ
ずにメモリタグのみでトランザクションが完結する。
【0071】尚、本発明実施例では、メモリタグが“ダ
ーティ”の時、ダーティラインの主記憶装置への書き戻
しと同時に、プロセッサへのデータ転送とメモリタグ
“クリーン”の書き替えを行っているが、制御回路を簡
単にするため、ダーティラインの主記憶装置への書き替
え後、メモリタグ“クリーン”に変化させ、メモリタグ
が“クリーン”に書き替えられた後、データを再度主記
憶装置から読み出してプロセッサに転送してもよい。つ
まり、プロセッサからのキャッシュの書き戻しが完了す
るまで待った後、要求元のプロセッサにレスポンスを返
す応用例も考えられる。
【0072】次に、本発明の第2実施例について説明す
る。第1実施例では、各タグメモリ14,15に、シス
テム中の全主記憶装置に実装される全メモリ容量分のタ
グ情報(メモリタグ)を格納し、他のプロセッサバスに
接続された(リモートプロセッサ)プロセッサによりモ
ディファイステートが発生したことを記憶している。こ
れにより、バスブリッジ7,8は、プロセッサからのア
クセス要求に対し、他にダーティなデータが存在する場
合にのみシステムバス9にトランザクションを発行する
ようにできる。
【0073】第2実施例では、第1実施例における効果
を確保し、さらにメモリタグを記憶するためのタグメモ
リの容量を減少させることができるものである。図4は
第2実施例に係わるマルチプロセッサシステムの構成を
示すブロック図である。図4に示すマルチプロセッサシ
ステムは、NUMA方式の構成となっている。
【0074】図4に示すように、第2実施例のマルチプ
ロセッサは、4つのプロセッサ81〜84が設けられて
いる。プロセッサ81,82は、プロセッサバス85を
介して接続されている。また、プロセッサ83,84
は、プロセッサバス86を介して接続されている。
【0075】各プロセッサ81〜84は、それぞれキャ
ッシュ81a〜84aを内蔵している(図17中に示す
L1,L2のキャッシュメモリ)。第2実施例ではキャ
ッシュメモリラインサイズを64バイトとする。
【0076】プロセッサバス85,86は、それぞれバ
スインターフェイス制御回路(バスブリッジ)87,8
8を介して、システムバス89と接続されている。バス
ブリッジ87,88は、プロセッサバス85,86とシ
ステムバス89との間のブリッジ機能(双方のバス要求
の転送機能)と、主記憶制御装置90,91とのインタ
ーフェイス、タグメモリ94,95とのインターフェイ
ス及び制御機能を有する。
【0077】主記憶制御装置90,91は、それぞれ主
記憶装置92,93に対するメモリアクセス制御(リー
ド制御、ライト制御)を行なう。主記憶装置92,93
は、データを格納するものであり、第2実施例ではそれ
ぞれ64Kバイトの容量を持つものとする。
【0078】タグメモリ94,95は、それぞれ各バス
ブリッジ87,88が管理する主記憶装置92,93に
実装されたメモリ容量分のタグ情報(メモリタグ)を記
憶する。タグ情報は、キャッシュ1ライン単位ごとに1
ビットの情報である。本実施例ではキャッシュ1ライン
64バイト、主記憶装置92,93の容量はそれぞれ6
4Kバイトであるため、タグメモリ94,95の容量は
それぞれ1Kビットの容量となる。
【0079】図5は第2実施例のマルチプロセッサシス
テムのアドレスマップを示す図であり、0番地から0F
FFF番地までが主記憶装置92の主記憶アドレス0番
地からFFFF番地に割り当てられ、10000番地か
ら1FFFF番地までが主記憶装置93の主記憶アドレ
ス0番地からFFFF番地に割り当てられている。
【0080】図6は第2実施例において使用されるタグ
メモリ94(95)のアドレスマップを示す図であり、
主記憶アドレス100に示すキャッシュの各管理単位、
すなわち各キャッシュラインに対応するメモリタグアド
レス102を示している。
【0081】図6に示すように、メモリタグとして、対
応するキャッシュラインのデータが無効であるか否かを
示す1ビットがセットされる。第2実施例では、メモリ
タグ中“0”は主記憶装置中のデータが無効、つまり
“Modified”状態のデータが何れかのキャッシ
ュに存在することを示し、“1”は主記憶装置中のデー
タが有効、つまり“Modified”状態のデータが
何れのキャッシュにも存在しないことを示す。
【0082】タグメモリ94には主記憶装置92に実装
されたメモリ分のメモリタグが格納され、タグメモリ9
5には主記憶装置93に実装されたメモリ分のメモリタ
グが格納される。
【0083】図7は図4に示すバスブリッジ87(8
8)の構成を示すブロック図である。図7に示すよう
に、バスブリッジ87(88)は、プロセッサバス入出
力制御回路131、システムバス入出力制御回路13
2、プロセッサバスアドレス比較回路133、主記憶制
御入出力回路134、システムバスアドレス比較回路1
35、及びタグメモリ入出力回路136によって構成さ
れている。
【0084】プロセッサバス入出力制御回路131は、
プロセッサバスとのインターフェイス制御を行なうもの
で、プロセッサバスに発行されたトランザクションの入
力、プロセッサバスへのトランザクションの発行等を実
行する。プロセッサバス入出力制御回路131は、入力
したトランザクションの、トランザクションが対象とす
るデータを示すアドレスをプロセッサバスアドレス比較
回路133に供給する。
【0085】システムバス入出力制御回路132は、シ
ステムバス89とのインターフェイス制御を行なうもの
で、システムバスに発行されたトランザクションの入
力、システムバスへのトランザクションの発行等を実行
する。システムバス入出力制御回路132は、入力した
トランザクションの、トランザクションが対象とするデ
ータを示すアドレスをシステムバスアドレス比較回路1
35に供給する。
【0086】プロセッサバスアドレス比較回路133
は、プロセッサバス入出力制御回路131から供給され
たアドレスをもとに、プロセッサバスに発行されたトラ
ンザクションが、自バスブリッジに対応する主記憶装置
に対するアクセス要求(ローカルアクセス)であるか、
あるいは他の主記憶装置に対するアクセス要求(リモー
トアクセス)であるかを判別する。第2実施例では、図
5に示すように、主記憶装置92,93にそれぞれアド
レスが割り当てられているので、プロセッサバスアドレ
ス比較回路133は、17ビットで表わされるアドレス
の最上位ビットを参照して判別する。バスブリッジ87
では、アドレスの最上位ビットと“0”とが比較され、
バスブリッジ88では、最上位ビットと“1”とが比較
される。プロセッサバスアドレス比較回路133は、比
較した結果、等しい場合にはローカルアドレス、等しく
ない場合はリモートアドレスと判断する。
【0087】主記憶制御入出力回路134は、主記憶制
御装置90(91)とのインターフェイス制御を行な
う。主記憶制御入出力回路134は、プロセッサバスア
ドレス比較回路133及びシステムバスアドレス比較回
路135における比較結果に応じて、主記憶装置92
(93)に対するアクセスを主記憶制御装置90(9
1)に要求する。なお、主記憶制御入出力回路134
は、タグメモリ入出力回路136による対応するメモリ
タグの状態に応じて、トランザクション(バス要求)に
応じたアクセスを実行する。ただし、主記憶制御入出力
回路134は、アクセス要求に応じた動作をし実行し、
プロセッサバス入出力制御回路131またはシステム入
出力制御回路132において、トランザクションに応じ
た応答を発行するか否かを制御するようにもできる。
【0088】システムバスアドレス比較回路135は、
システムバス入出力制御回路132から供給されるアド
レスをもとに、システムバス89に発行されたトランザ
クションが、自バスブリッジに対応する主記憶装置に対
するアクセス要求(ローカルアクセス)であるか、ある
いは他の主記憶装置に対するアクセス要求(リモートア
クセス)であるかを判別する。前述したプロセッサバス
アドレス比較回路133と同じように、システムバスア
ドレス比較回路135は、17ビットで表わされるアド
レスの最上位ビットを参照して判別する。バスブリッジ
87では、アドレスの最上位ビットと“0”とが比較さ
れ、バスブリッジ88では、最上位ビットと“1”とが
比較される。プロセッサバスアドレス比較回路133
は、比較した結果、等しい場合にはローカルアドレス、
等しくない場合はリモートアドレスと判断する。
【0089】タグメモリ入出力制御回路136は、タグ
メモリとのインターフェイス制御を行なうもので、プロ
セッサバス入出力制御回路131及びシステムバス入出
力制御回路132がスヌープしたトランザクションに基
づいて、メモリタグの有効(Valid)/無効(In
valid)にセットする。タグメモリ入出力回路13
6は、自バスブリッジに対応する主記憶装置のデータが
何れかのプロセッサのキャッシュ上で更新されたことが
通知された場合に、該当するキャッシュラインに対応す
るメモリタグを無効“0”にセットする。また、タグメ
モリ入出力回路136は、キャッシュに格納されていた
データが自バスブリッジに対応する主記憶装置へ書き戻
された場合に、該当するキャッシュラインに対応するメ
モリタグを無効“1”にセットする。
【0090】次に、第2実施例におけるキャッシュ制御
について説明する。前述したように、それぞれのプロセ
ッサ81〜84には、キャッシュ81a〜84aが内蔵
されている。プロセッサ81〜84は、キャッシュのコ
ヒーレンシを保証するために、プロセッサバスをスヌー
プし、キャッシュに格納されたデータの状態を管理して
いる。なお、キャッシュ81a〜84aは、コピーバッ
クキャッシュ方式を用いているものとする。
【0091】第2実施例ではプロセッサのキャッシュ
は、Modified/Shared/Invalid
の3状態(MSI)で管理されるものとする。第2実施
例のマルチプロセッサシステムでは、プロセッサによる
キャッシュ上でのデータ変更が発生した場合、データ変
更の発生がバスブリッジに通知(スヌープ)され、タグ
メモリに反映される必要がある。しかし、MESIプロ
トコルに基づいて制御されるキャッシュでは、プロセッ
サがExclusive状態と呼ばれる状態のキャッシ
ュメモリの書き換えを行った場合、データの変更が外部
に通知されず、タグメモリに反映されなくなってしま
う。
【0092】一般に、MSIの3状態に、Exclus
ive状態を加えた4状態でキャッシュメモリを管理す
るプロセッサが多く使われている。この様なプロセッサ
を使用する場合でも、プロセッサがリード要求を発行す
る度にバス上に共有(Shered)応答を返す回路を
付加することにより(バスブリッジ(バスインターフェ
イス制御回路)に付加することも可能)、疑似的にMS
Iの3状態のみを持つようにすることができる。すなわ
ち、プロセッサは、リード要求の発行に対して共有応答
が返されると、読み込んだデータをShared状態と
して管理する。これにより、このデータを更新する際
に、データ変更の発生を外部に通知するようになり、一
般的なMESIプロトコルを用いたプロセッサを用いて
も、疑似的にMSIの3状態で管理するマルチプロセッ
サシステムとすることができる。
【0093】図8に3状態のキャッシュの状態遷移図を
示している。各状態の意味、各状態でロード(loa
d)命令、ストア(store)命令を実行した時の処
理は以下の通りである。
【0094】(A)Invalid(I:無効) (a1)そのキャッシュラインのデータが無効であるこ
とを示す。 (a2)キャッシュメモリ有効にした時の初期値。
【0095】(a3)ロード命令を実行するとロードミ
スとなり、バスにリード要求を発行し、Shared状
態に遷移する。 (a4)ストア命令を実行するとストアミスとなり、バ
スに無効化つきリード要求を発行し、Modified
状態に遷移する。
【0096】(B)Shared(S:共有) (b1)−そのキャッシュラインのデータが有効である
ことを示す。その内容はメモリに格納されている物と一
致する。
【0097】(b2)ロード命令を実行するとロードヒ
ットとなり、バス要求も状態遷移も起きない。 (b3)ストア命令を実行するとストアヒットとなり、
バスに無効化要求を発行しModified状態に遷移
する。
【0098】(b4)キャッシュラインの置き換えが起
きた時、およびバス上の無効化要求もしくは無効化つき
リード要求をスヌープした時は、バス要求を発行せずに
Invalid状態へ遷移する。
【0099】(b5)リード要求をスヌープした時は、
バス要求も状態遷移も起きない。 (C)Modified(M:変更済み) (c1)そのキャッシュラインのデータが有効であるこ
とを示す。メモリに格納されているデータは無効であ
る。(つまりこのキャッシュラインに格納されているデ
ータのみが有効) (c2)ロード命令を実行するとロードヒットとなり、
バス要求も状態遷移も起きない。
【0100】(c3)ストア命令を実行するとストアヒ
ットとなり、バス要求も状態遷移も起きない。 (c4)キャッシュラインの置き換えが起きた時、およ
びバス上の無効化つきリード要求をスヌープした時は、
バスにライト要求を発行しメモリにデータを書き戻し、
Invalid状態へ遷移する。
【0101】(c5)リード要求をスヌープした時は、
バスにライト要求を発行しメモリにデータを書き戻し、
Shared状態へ遷移する。 (c6)あるプロセッサがこの状態の時は、他の全ての
プロセッサは全てInvalid状態である。従って無
効化要求をスヌープすることはない。
【0102】次に、第2実施例におけるメモリタグの制
御について説明する。図9にメモリタグの状態遷移図を
示している。メモリタグは、キャッシュライン毎に1ビ
ットの情報を持つ。つまり2つの状態(Valid、I
nvalid)を持ち、それぞれ次のような意味を持
つ。
【0103】Valid(有効)。システム中の何れの
プロセッサも対応するデータをキャッシュにModif
ied状態で持っていない。つまり、主記憶装置に格納
されているデータが有効なデータである。
【0104】Invalid(無効)。システム中の何
れかのプロセッサが、対応するデータをキャッシュにM
odified状態で持っている。つまり主記憶装置に
格納されているデータは無効なデータである。
【0105】キャッシュの使用を開始する時点では、何
れのプロセッサのキャッシュも全てInvalid状態
であるため、メモリタグの値は全てValidとなって
いる。
【0106】図8に示すキャッシュの状態遷移の中で、
Modified状態へ遷移する時、また、この時の
み、必ずバスに無効化要求か無効化つきリード要求が発
行される。また、Modified状態から他の状態へ
遷移する時、またこの時のみ、必ずバスにライト要求が
発行される。従って、バス上に無効化要求もしくは無効
化つきリード要求が発行された時にメモリタグをInv
alidに変更し、バス上にライト要求が発行された時
にメモリタグをValidに変更することにより、メモ
リタグの内容をその定義した値に維持することが可能と
なる。
【0107】次に、第2実施例の動作について説明す
る。ここでは、プロセッサ81から(1)リード要求、
(2)無効化付きリード要求、(3)無効化要求、
(4)ライト要求、が発生した場合についての動作をそ
れぞれ説明する。
【0108】(1)リード要求 プロセッサ81がリード要求を発行した場合の処理の流
れを、図10のフローチャートに示している。なお、フ
ローチャート中に示す括弧内の数字は、その処理を実行
する機能ブロックの図4及び図7における参照符号を示
している。
【0109】まず、プロセッサ81は、リード要求のト
ランザクションをプロセッサバス85に発行する(ステ
ップA1)。ここで、プロセッサバス85に接続された
他のプロセッサ82が、要求されたデータをModif
ied状態でキャッシュ82aに持っている場合(ステ
ップA2)、プロセッサ82は、リトライ応答を行な
い、リード要求を一度中断させる(ステップA3)。プ
ロセッサ82は、要求されたModified状態のデ
ータを主記憶装置へコピーバックする(これはスヌープ
型プロセッサの通常の動作である)。その後、プロセッ
サ81は、リード要求を再発行する。
【0110】バスブリッジ87は、プロセッサバス85
に発行されたリード要求を、プロセッサバス入出力制御
回路131で取り込む(ステップA4)。前述したステ
ップA2,A3のように、共通するプロセッサバス85
に接続された他のプロセッサによってリード要求に対す
るリトライ応答を受けた場合は、その時点でリード要求
を破棄する。
【0111】バスブリッジ87は、プロセッサバスアド
レス比較回路133を用いて、受け付けたリード要求が
主記憶装置92の領域の範囲(ローカルアクセス)か、
あるいは、それ以外(図4の構成では主記憶装置93の
領域の範囲(リモートアクセス)かを、対象とするデー
タを示すアドレス(キャッシュラインアドレス)を参照
して判別する(ステップA5)。
【0112】一方、タグメモリ入出力回路136は、タ
グメモリ94から、リード要求の対象アドレスのメモリ
タグの値を読み出し、主記憶装置92中のデータが有効
(Valid)であるか否かを判別する(ステップA
6)。
【0113】なお、メモリタグの値を判別する処理は、
ローカルアクセスの場合にのみ意味があるので、プロセ
ッサバスアドレス比較回路133によって、リード要求
がローカルアクセスであると判別されてからタグメモリ
の読み出しを開始すれば良い。この際、タグメモリ入出
力回路136は、プロセッサバスアドレス比較回路13
3からの判別結果の通知を受けて、タグメモリ94に対
するアクセスを開始する。ただし、高速化のために、タ
グメモリ入出力回路136は、プロセッサバスアドレス
比較回路133による判別結果を待たず、プロセッサバ
ス入出力制御回路131からのリード要求受付けの通知
(対象とするアドレスを含む)に応じて、タグメモリの
読み出し、及び判別を開始するようにしても良い。
【0114】プロセッサバスアドレス比較回路133に
よるアドレス比較の結果がリモートアクセスであった場
合、もしくはメモリタグが無効(Invalid)を示
す場合には、システムバス入出力制御回路132は、プ
ロセッサバス入出力制御回路131を介して得たリード
要求をシステムバス89に発行する(ステップA7)。
【0115】一方、プロセッサバスアドレス比較回路1
33によるアドレス比較の結果がローカルアクセスであ
り、かつメモリタグが有効(Valid)を示す場合に
は、主記憶制御入出力回路134は、主記憶制御装置9
0にリード要求を通知する。主記憶制御装置90は、主
記憶装置92に対してリードアクセスを実行し、該当す
るデータを読み込み、主記憶制御入出力回路134に出
力する。読み出されたデータは、主記憶制御入出力回路
134、プロセッサバス入出力制御回路131、プロセ
ッサバス85を介して、プロセッサ81に供給される
(ステップA8)。
【0116】なお、タグメモリ94へのアクセスと同様
に、高速化のために、主記憶制御入出力回路134は、
プロセッサバスアドレス比較回路133でのアドレス比
較と、タグメモリ入出力回路136によるメモリタグの
判別を待たずに、主記憶装置92に対する読み出し制御
を開始して良い。
【0117】また、主記憶制御入出力回路134は、メ
モリタグの状態に関係なくリード要求に応じて主記憶装
置92に対してアクセス制御し、プロセッサバス入出力
制御回路131がタグメモリ入出力回路136による判
別結果に応じて、プロセッサバス85に出力するか否か
を制御しても良い。
【0118】ところで、ステップA7において、システ
ムバス89に発行されたリード要求は、バスブリッジ8
8のシステムバス入出力制御回路132で取り込まれる
(ステップA9)。
【0119】バスブリッジ88は、システムバスアドレ
ス比較回路135を用いて、受け付けたリード要求が主
記憶装置93の領域の範囲(ローカルアクセス)か、あ
るいは、それ以外(リモートアクセス)かを、対象とす
るデータを示すアドレス(キャッシュラインアドレス)
を参照して判別する(ステップA10)。第2実施例で
は、説明を簡単にするために、システムバス89に2つ
のバスブリッジ87,88のみが接続された構成として
いるため、ここでは必ずローカルアクセスとなる。従っ
て、ステップA10の処理は不要であるが、システムバ
ス89に他のバスブリッジやI/Oデバイスなどが接続
される場合には必要となる。
【0120】一方、タグメモリ入出力回路136は、タ
グメモリ95から、リード要求の対象アドレスのメモリ
タグの値を読み出し、主記憶装置93中のデータが有効
(Valid)であるか否かを判別する(ステップA1
1)。
【0121】なお、メモリタグの値を判別する処理は、
ローカルアクセスの場合にのみ意味があるので、システ
ムバスアドレス比較回路135によって、リード要求が
ローカルアクセスであると判別されてからタグメモリの
読み出しを開始すれば良い。この際、タグメモリ入出力
回路136は、システムバスアドレス比較回路135か
らの判別結果の通知を受けて、タグメモリ95に対する
アクセスを開始する。ただし、高速化のために、タグメ
モリ入出力回路136は、システムバスアドレス比較回
路135による判別結果を待たず、システムバス入出力
制御回路132からのリード要求受付けの通知(対象と
するアドレスを含む)に応じて、タグメモリの読み出
し、及び判別を開始するようにしても良い。
【0122】システムバスアドレス比較回路135によ
るアドレス比較の結果がリモートアクセスであった場
合、もしくはメモリタグが無効(Invalid)を示
す場合には、プロセッサバス入出力制御回路131は、
システムバス入出力制御回路132を介して得たリード
要求をプロセッサバス86に発行する(ステップA1
2)。
【0123】一方、プロセッサバスアドレス比較回路1
33によるアドレス比較の結果がローカルアクセスであ
り、かつメモリタグが有効(Valid)を示す場合に
は、主記憶制御入出力回路134は、主記憶制御装置9
1にリード要求を通知する。主記憶制御装置91は、主
記憶装置93に対してリードアクセスを実行し、該当す
るデータを読み込み、主記憶制御入出力回路134に出
力する。読み出されたデータは、(バスブリッジ88の
主記憶制御入出力回路134及びシステムバス入出力制
御回路132、システムバス89、バスブリッジ87の
システムバス入出力制御回路132及びプロセッサバス
入出力制御回路131、プロセッサバス85を介して、
プロセッサ81に供給される(ステップA13)。
【0124】なお、タグメモリ95へのアクセスと同様
に、高速化のために、主記憶制御入出力回路134は、
システムバスアドレス比較回路135でのアドレス比較
と、タグメモリ入出力回路136によるメモリタグの判
別を待たずに、主記憶装置93に対する読み出し制御を
開始して良い。
【0125】また、主記憶制御入出力回路134は、メ
モリタグの状態に関係なくリード要求に応じて主記憶装
置93に対してアクセス制御し、システムバス入出力制
御回路132がタグメモリ入出力回路136による判別
結果に応じて、システムバス89に出力するか否かを制
御しても良い。
【0126】ところで、ステップA12において、プロ
セッサバス86に発行されたリード要求は、プロセッサ
83,84によってスヌープされる。プロセッサ83,
84は、自キャッシュ83a,84aにリード要求のあ
ったデータを、Modified状態で保持していない
かを調べる。もし、あった場合はリトライ応答を行い、
リード要求を一度中断させ、該当するデータを主記憶装
置へコピーバックする(ステップA14)。
【0127】プロセッサ81は、リード要求をリトライ
し、その結果、主記憶装置にコピーバックされたデータ
を読取ることができる。 (2)無効化付きリード要求 プロセッサ81が無効化リード要求を発行した場合の処
理の流れを、図11のフローチャートに示している。図
10と同様に、フローチャート中に示す括弧内の数字
は、その処理を実行する機能ブロックの図4及び図7に
おける参照符号を示している。
【0128】無効化付きリード要求の処理は、前述した
リード要求の場合と大きな処理の流れが同じであるた
め、ここでは異なる点に着目して説明する。前述したリ
ード要求時の処理では、プロセッサバスアドレス比較回
路133(バスブリッジ87)またはシステムバスアド
レス比較回路135(バスブリッジ88)におけるアド
レス比較の結果、リモートアクセスであったと判別され
た場合、もしくはタグメモリ入出力回路13による対象
とするデータに対応するメモリタグが無効(Inval
id)であった場合にのみ、入力したリード要求を他方
のバスに発行している。すなわち、バスブリッジ87
は、前述した条件の場合にのみ、プロセッサバス85か
らのリード要求をシステムバス89に発行する。またバ
スブリッジ88は、同様にシステムバス89からのリー
ド要求をプロセッサバス86に発行する。
【0129】これに対し、無効化付きリード要求の場合
は、主記憶装置からのデータの読み出しの他に、システ
ム中の全てのキャッシュの該当するデータを無効化する
必要があるため、全てのプロセッサに無効化付きリード
要求をスヌープさせる必要がある。
【0130】このため、バスブリッジ87は、プロセッ
サバス入出力制御回路131によって無効化付きリード
要求を受付けると(ステップB4)、無条件にシステム
バス入出力制御回路132を介してシステムバス89に
無効化付きリード要求を発行する(ステップB9)。
【0131】同様にして、バスブリッジ88は、システ
ムバス入出力制御回路132によって無効化付きリード
要求を受付けると(ステップB10)、無条件にプロセ
ッサバス入出力制御回路131を介してプロセッサバス
86に無効化付きリード要求を発行する(ステップB1
5)。
【0132】バスブリッジ87は、プロセッサバスアド
レス比較回路133によるアドレス比較の結果がリモー
トアクセスであった場合、もしくはメモリタグが無効
(Invalid)を示す場合には、無条件に無効化付
きリード要求がシステムバス89に発行されているので
処理を終了する(ステップB5,B6)。
【0133】また、バスブリッジ87は、プロセッサバ
スアドレス比較回路133によるアドレス比較の結果が
ローカルアクセスであり、かつメモリタグが有効(Va
lid)を示す場合には、主記憶装置92から該当する
データを読み出して、プロセッサバス85を介してプロ
セッサ81に供給する(ステップB7)。また、バスブ
リッジ87は、タグメモリ入出力回路136によって、
該当するデータに対応するメモリタグの値が有効(Va
lid)を示す場合には、ローカルアクセス、リモート
アクセス何れの場合でも、無効(Invalid)に書
き換える(ステップB8)。
【0134】バスブリッジ88は、システムバスアドレ
ス比較回路135によるアドレス比較の結果がリモート
アクセスであった場合、もしくはメモリタグが無効(I
nvalid)を示す場合には、無条件に無効化付きリ
ード要求がプロセッサバス86に発行されているので処
理を終了する(ステップB11,B12)。
【0135】また、バスブリッジ88は、システムバス
アドレス比較回路135によるアドレス比較の結果がロ
ーカルアクセスであり、かつメモリタグが有効(Val
id)を示す場合には、主記憶装置93から該当するデ
ータを読み出して、システムバス89、バスブリッジ8
7を介してプロセッサ81に供給する(ステップB1
3)。また、バスブリッジ88は、タグメモリ入出力回
路136によって、該当するデータに対応するメモリタ
グの値が有効(Valid)を示す場合には、無効(I
nvalid)に書き換える(ステップB15)。
【0136】ところで、ステップB15において、プロ
セッサバス86に発行された無効化付きリード要求は、
プロセッサ83,84によってスヌープされる。プロセ
ッサ83,84は、自キャッシュ83a,84aにリー
ド要求のあったデータを、Modified状態で保持
しているかを調べる。もし、あった場合はリトライ応答
を行い、リード要求を一度中断させ、該当するデータを
主記憶装置へコピーバックする(ステップB15)。ま
た、プロセッサ83,84は、自キャッシュ83a,8
4aの該当するデータの状態を無効(Invalid)
に変更する。
【0137】(3)無効化要求 プロセッサ81が無効化要求を発行した場合の処理の流
れを、図12のフローチャートに示している。図10と
同様に、フローチャート中に示す括弧内の数字は、その
処理を実行する機能ブロックの図4及び図7における参
照符号を示している。
【0138】無効化要求の処理は、前述した無効化付き
リード要求と大きな処理の流れが同じであるため、ここ
では異なる点に着目して説明する。無効化要求はキャッ
シュ81aに格納されたデータが共有(Shared)
状態である時に発行されるため、他のプロセッサ82,
83,84のキャッシュ82a,83a,84aではM
odified状態でありえない(あるプロセッサのキ
ャッシュでModified状態であるデータは、他の
プロセッサのキャッシュにおいてInvalid状態で
なければならない)。そのため、プロセッサバス85,
86に接続された他のプロセッサ82,83,84で
は、キャッシュにModified状態のデータを持つ
ことによるリトライ応答は発生しない。
【0139】バスブリッジ87は、プロセッサバス入出
力制御回路131によって無効化要求を受付けると(ス
テップC2)、無条件にシステムバス入出力制御回路1
32を介してシステムバス89に無効化要求を発行する
(ステップC5)。
【0140】同様にして、バスブリッジ88は、システ
ムバス入出力制御回路132によって無効化要求を受付
けると(ステップC6)、無条件にプロセッサバス入出
力制御回路131を介してプロセッサバス86に無効化
要求を発行する(ステップC9)。
【0141】バスブリッジ87は、プロセッサバスアド
レス比較回路133によるアドレス比較の結果がリモー
トアクセスであった場合には、無条件に無効化要求がシ
ステムバス89に発行されているので処理を終了する
(ステップC3)。また、バスブリッジ87は、プロセ
ッサバスアドレス比較回路133によるアドレス比較の
結果がローカルアクセスである場合には、タグメモリ入
出力回路136によって、該当するデータに対応するメ
モリタグの値を無効(Invalid)に書き換える
(ステップC4)。
【0142】バスブリッジ88は、システムバスアドレ
ス比較回路135によるアドレス比較の結果がリモート
アクセスであった場合には、無条件に無効化要求がプロ
セッサバス86に発行されているので処理を終了する
(ステップC7)。また、バスブリッジ88は、システ
ムバスアドレス比較回路135によるアドレス比較の結
果がローカルアクセスである場合には、タグメモリ入出
力回路136によって、該当するデータに対応するメモ
リタグの値を無効(Invalid)に書き換える(ス
テップC8)。
【0143】プロセッサバス86に発行された無効化要
求は、プロセッサ83,84によってスヌープされる。
プロセッサ83,84は、自キャッシュ83a,84a
中に該当するデータが存在すれば、データの状態を無効
(Invalid)に変更する。
【0144】(4)ライト要求 プロセッサ81がライト要求を発行した場合の処理の流
れを、図13のフローチャートに示している。図10と
同様に、フローチャート中に示す括弧内の数字は、その
処理を実行する機能ブロックの図4及び図7における参
照符号を示している。
【0145】ライト要求の処理は、前述した無効化付き
リード要求の場合と大きな処理の流れが同じであるた
め、ここでは異なる点に着目して説明する。ライト要求
はキャッシュ81aがModified状態である時に
発行されるため、他のプロセッサ82,83,84のキ
ャッシュ82a,83a,84aでは全てInvali
d状態である。そのため、プロセッサバス85,86に
接続された他のプロセッサ82,83,84では、キャ
ッシュにModified状態のデータを持つことによ
るリトライ応答は発生しない。
【0146】バスブリッジ87は、プロセッサバス85
に発行されたライト要求を、プロセッサバス入出力制御
回路131で取り込む(ステップD2)。バスブリッジ
87は、プロセッサバスアドレス比較回路133を用い
て、受け付けたライト要求がローカルアクセスか、ある
いはリモートアクセスかを、対象とするデータを示すア
ドレス(キャッシュラインアドレス)を参照して判別す
る(ステップD3)。
【0147】プロセッサバスアドレス比較回路133に
よるアドレス比較の結果がリモートアクセスであった場
合、システムバス入出力制御回路132は、プロセッサ
バス入出力制御回路131を介して得たライト要求をシ
ステムバス89に発行する(ステップD6)。
【0148】一方、プロセッサバスアドレス比較回路1
33によるアドレス比較の結果がローカルアクセスであ
る場合には、主記憶制御入出力回路134は、主記憶制
御装置90にライト要求を通知する。主記憶制御装置9
0は、主記憶装置92に対してライトアクセスを実行
し、該当するデータを書き込む。また、タグメモリ入出
力回路13は、ライトアクセスの対象となるデータに対
応するメモリタグを有効(Valid)にする(ステッ
プD5)。なお、タグメモリ入出力回路13によるメモ
リタグの変更と、主記憶制御入出力回路134による主
記憶装置92に対するライト要求は、並行して実行する
ことができる。
【0149】ところで、ステップD6において、システ
ムバス89に発行されたライト要求は、バスブリッジ8
8のシステムバス入出力制御回路132で取り込まれる
(ステップD7)。
【0150】バスブリッジ88は、システムバスアドレ
ス比較回路135を用いて、受け付けたライト要求がロ
ーカルアクセスか、あるいはリモートアクセスかを、対
象とするデータを示すアドレス(キャッシュラインアド
レス)を参照して判別する(ステップD8)。
【0151】システムバスアドレス比較回路135によ
るアドレス比較の結果がリモートアクセスであった場
合、処理を終了する。また、システムバスアドレス比較
回路135によるアドレス比較の結果がローカルアクセ
スである場合には、主記憶制御入出力回路134は、主
記憶制御装置90にライト要求を通知する。主記憶制御
装置90は、主記憶装置92に対してライトアクセスを
実行し、該当するデータを書き込む。また、タグメモリ
入出力回路13は、ライトアクセスの対象となるデータ
に対応するメモリタグを有効(Valid)にする(ス
テップD10)。なお、タグメモリ入出力回路13によ
るメモリタグの変更と、主記憶制御入出力回路134に
よる主記憶装置92に対するライト要求は、並行して実
行することができる。
【0152】このようにして、バスブリッジ(バスイン
ターフェイス制御回路)87,88は、バス上に発行さ
れたリード要求もしくは無効化つきリード要求を検出し
たとき、その対象となるメモリアドレスがローカルアク
セスであるか判別し、ローカルアクセスであった場合は
メモリタグの値を調べる。この時、メモリタグの値が有
効(Valid)を示す場合は主記憶装置からデータを
読み出してリード要求に応答する。すなわち、システム
中の他のプロセッサからの通知等を待つことなく、処理
を完了することができる。もし、無効(Invali
d)を示す場合は、Modified状態のデータをも
ったプロセッサが、他に必ず存在するため、システムバ
スにトランザクションを発行することで、該当するプロ
セッサから応答させる。
【0153】以上のようにして、階層をもったスヌープ
方式のキャッシュコヒーレンシ制御と、主記憶装置から
の高速なレイテンシを提供することができる。しかも、
タグメモリ94,95に必要な記憶容量は、それぞれに
対応する主記憶装置のみに関するメモリタグ分で良く、
第1実施例と比較すると大幅に少なくすることができ
る。
【0154】
【発明の効果】以上詳記したように本発明によれば、タ
グメモリに格納されたタグ情報を参照してキャッシュの
コヒーレンシ制御の返事を行う一方、タグ情報が“ダー
ティ”を示していた場合、主記憶から読み出されたデー
タを停止させ、ダーティラインのコピーバック処理の完
了を待って正しいデータを要求元のプロセッサに送るコ
ントローラ内蔵のバスブリッジを提供することにより、
安価なハードウェアで、かつ高速メモリサブシステムを
構築できる。このことにより、L3キャッシュのような
大規模なキャッシュメモリが不要となり、更に他方のL
3キャッシュのコヒーレンシ制御の返事を待つことなし
に主記憶から読み出されたデータを要求プロセッサに高
速に転送可能となる。
【図面の簡単な説明】
【図1】本発明の第1実施例の構成を示すブロック図。
【図2】第1実施例にて使用されるメモリタグのアドレ
スマッピングの例を示す図。
【図3】図1に示すバスブリッジの内部構成を示すブロ
ック図。
【図4】第2実施例に係わるマルチプロセッサシステム
の構成を示すブロック図。
【図5】第2実施例のマルチプロセッサシステムのアド
レスマップを示す図。
【図6】図4に示すタグメモリ94(95)のアドレス
マップを示す図。
【図7】図4に示すバスブリッジ87(88)の構成を
示すブロック図。
【図8】第2実施例における3状態(MSI)のキャッ
シュの状態遷移を説明するための図。
【図9】第2実施例におけるメモリタグの状態遷移を説
明するための図。
【図10】リード要求を発行した場合の処理の流れを示
すフローチャート。
【図11】無効化付きリード要求を発行した場合の処理
の流れを示すフローチャート。
【図12】無効化要求を発行した場合の処理の流れを示
すフローチャート。
【図13】ライト要求を発行した場合の処理の流れを示
すフローチャート。
【図14】均等メモリアクセス方式採用のマルチプロセ
ッサシステムの構成例を示す図。
【図15】不均等メモリアクセス方式採用のマルチプロ
セッサシステムの構成例を示す図。
【図16】多階層キャッシュを採用したマルチプロセッ
サシステムの構成例を示す図。
【図17】プロセッサ内キャッシュの構成例を示す図。
【符号の説明】
1,2,3,4,81,82,83,84…プロセッ
サ、5,6,85,86…プロセッサバス(内部バ
ス)、7,8,87,88…バスブリッジ、9,89…
システムバス、10,11,90,91…主記憶制御装
置、12,13,92,93…主記憶装置、14,1
5,94,95…タグメモリ、31,131…プロセッ
サバス入出力制御回路、32,132…システムバス入
出力制御回路、33,133…プロセッサバスアドレス
比較回路、34,134…主記憶制御入出力回路、3
5,135…システムバスアドレス比較回路、36…メ
モリタグステート制御回路、37…メモリタグ制御回
路、38…メモリタグステート変更回路、136…タグ
メモリ入出力回路。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 主記憶が分散配置され、独立して動作す
    る内部バスにそれぞれ接続されるキャッシュメモリ内蔵
    の少なくとも1個のプロセッサから成るマルチプロセッ
    サシステムにおいて、 主記憶に実装される全メモリ容量分のタグ情報が記憶さ
    れるタグメモリと、 システムバスを介して接続されるプロセッサからのキャ
    ッシュの書き替え発生と、主記憶への書き戻しの発生を
    検出し、上記タグメモリへその状態情報を書き込むタグ
    メモリ制御回路、および当該タグ情報からキャッシュコ
    ヒーレンシー制御のレスポンスを内部バスへ出力すると
    ともに、上記タグ情報から主記憶とキャッシュのいずれ
    か正しいレスポンスを選択するコントローラで構成され
    るバスインタフェース制御回路とを具備することを特徴
    とするメモリサブシステム。
  2. 【請求項2】 上記バスインタフェース制御回路は、キ
    ャッシュ内蔵のプロセッサが接続され、独立して動作す
    る複数の内部バスと分散配置される主記憶が接続される
    システムバスの間にあって、 プロセッサからのアクセス要求を受信し、分散配置され
    た主記憶のアドレス範囲を検出し、そのアドレスを内部
    バスもしくはシステムバスに出力するアドレス比較回路
    と、 システムバスを常に監視し、以下に示す条件A,Bが成
    立したとき、メモリタグの情報の変更を行うメモリタグ
    状態変更回路と、 A.他方の内部バスに接続されるプロセッサのいずれか
    で“モデファイ”ステイト(当該キャッシュのみ有効デ
    ータを持ち主記憶データは無効)が発生したとき、 B.他方の内部バスに接続されるプロセッサにおいて、
    “モデファイ”のステートから主記憶へのライトバック
    が発生したとき、 メモリタグから参照アドレスのタグ情報を得、主記憶か
    ら得られるレスポンスデータの正否を判断し、キャッシ
    ュコヒーレンシー信号を要求元プロセッサに返却するメ
    モリタグ状態制御回路とで構成されることを特徴とする
    請求項1記載のメモリサブシステム。
  3. 【請求項3】 主記憶が分散配置され、独立して動作す
    る内部バスにそれぞれ接続されるキャッシュメモリ内蔵
    の少なくとも1個のプロセッサから成るマルチプロセッ
    サシステムにおいて、 主記憶に実装される全メモリ容量分のタグ情報が記憶さ
    れるタグメモリと、 システムバスを介して接続されるプロセッサからのキャ
    ッシュの書き替えの発生と主記憶への書き戻しの発生を
    検出し、上記タグメモリへその状態情報を書き込むタグ
    メモリ制御回路、および当該タグ情報からキャッシュコ
    ヒーレンシー制御のレスポンスを内部バスへ出力する
    他、上記タグ情報から主記憶へキャッシュの書き戻し完
    了後、書き替えられたデータを再度読み出しレスポンス
    を要求元のプロセッサへ返すコントローラで構成される
    バスインタフェース制御回路とを具備することを特徴と
    するメモリサブシステム。
  4. 【請求項4】 キャッシュ内蔵のプロセッサが接続され
    たそれぞれ独立して動作するプロセッサバスを一つ以上
    持ち、これらのプロセッサバスをバスインターフェイス
    制御回路を介して一つのシステムバスに接続し、主記憶
    装置が分散されてそれぞれのバスインターフェイス制御
    回路に接続されるマルチプロセッサシステムにおいて、 上記バスインターフェイス制御回路は、 バスに発行されたトランザクションが自身に接続されて
    いる自主記憶装置に関係するものであるか否かを判別す
    る比較回路と、 上記自主記憶装置に実装されるメモリ容量分の、データ
    が有効であるか否かを示すタグ情報を記憶するタグメモ
    リと、 上記比較回路による判別結果に基づいて、何れかのプロ
    セッサにより上記自主記憶装置中のデータのキャッシュ
    での書き換えの発生を検出した時に無効、キャッシュか
    ら上記主記憶装置への書き戻しの発生を検出した時に有
    効を表す状態に、上記タグメモリ中の該当するタグ情報
    を設定するタグメモリ制御回路と、 上記比較回路により上記自主記憶装置に対する読み出し
    要求を検出した時に、上記タグメモリの状態情報に応じ
    て、自主記憶装置からデータを読み出して要求に応答す
    るか否かを制御する制御回路とを具備することを特徴と
    するメモリサブシステム。
  5. 【請求項5】 上記タグ情報に基づいて、プロセッサバ
    スで検出された読み出し要求をシステムバスに発行する
    かどうかを制御する制御回路を具備することを特徴とす
    る請求項4記載のメモリサブシステム。
  6. 【請求項6】 上記タグ情報に基づいて、システムバス
    で検出された読み出し要求をプロセッサバスに発行する
    かどうかを制御する制御回路を具備することを特徴とす
    る請求項4記載のメモリサブシステム。
JP7151738A 1994-10-31 1995-06-19 メモリサブシステム Pending JPH08185359A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7151738A JPH08185359A (ja) 1994-10-31 1995-06-19 メモリサブシステム
US08/550,403 US5829032A (en) 1994-10-31 1995-10-30 Multiprocessor system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP6-267770 1994-10-31
JP26777094 1994-10-31
JP7151738A JPH08185359A (ja) 1994-10-31 1995-06-19 メモリサブシステム

Publications (1)

Publication Number Publication Date
JPH08185359A true JPH08185359A (ja) 1996-07-16

Family

ID=26480884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7151738A Pending JPH08185359A (ja) 1994-10-31 1995-06-19 メモリサブシステム

Country Status (2)

Country Link
US (1) US5829032A (ja)
JP (1) JPH08185359A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005044342A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd マルチプロセッサシステム及びマルチプロセッサシステムのキャッシュ一貫性維持方法
EP1624377A2 (en) 2004-08-05 2006-02-08 Fujitsu Limited Adapted MSI protocol used for snoop caches and speculative memory reads
JP2006202215A (ja) * 2005-01-24 2006-08-03 Fujitsu Ltd メモリ制御装置及び制御方法
US7093078B2 (en) 1999-12-09 2006-08-15 Nec Corporation Data access method in the network system and the network system
JP2008046890A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd マルチプロセッサシステム
JP2008204101A (ja) * 2007-02-19 2008-09-04 Nec Computertechno Ltd バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置
US8359419B2 (en) 2008-12-25 2013-01-22 Fujitsu Limited System LSI having plural buses
US9256439B2 (en) 2011-05-13 2016-02-09 Canon Kabushiki Kaisha Parallel processing of two-dimensional data, storage of plural data of the processing results in a cache line and transfer of the data to a memory as in the cache line
US10775870B2 (en) 2017-05-19 2020-09-15 Fujitsu Limited System and method for maintaining cache coherency

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154100A (ja) * 1996-11-25 1998-06-09 Canon Inc 情報処理システム及び装置及びその制御方法
US5966082A (en) * 1997-05-23 1999-10-12 Intemec Ip Corp. Method of flagging partial write in RF tags
US5996050A (en) * 1997-07-31 1999-11-30 Advanced Micro Devices, Inc. Cache coherency detection in a bus bridge verification system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6353836B1 (en) 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US7930278B2 (en) 1998-02-13 2011-04-19 Oracle International Corporation Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US7200623B2 (en) 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
JP2000010860A (ja) * 1998-06-16 2000-01-14 Hitachi Ltd キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
US6633891B1 (en) 1998-11-24 2003-10-14 Oracle International Corporation Managing replacement of data in a cache on a node based on caches of other nodes
US7065540B2 (en) * 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
US6314500B1 (en) * 1999-01-11 2001-11-06 International Business Machines Corporation Selective routing of data in a multi-level memory architecture based on source identification information
US6279085B1 (en) * 1999-02-26 2001-08-21 International Business Machines Corporation Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system
US6557078B1 (en) * 2000-02-21 2003-04-29 Hewlett Packard Development Company, L.P. Cache chain structure to implement high bandwidth low latency cache memory subsystem
US6766360B1 (en) * 2000-07-14 2004-07-20 Fujitsu Limited Caching mechanism for remote read-only data in a cache coherent non-uniform memory access (CCNUMA) architecture
US6850938B1 (en) * 2001-02-08 2005-02-01 Cisco Technology, Inc. Method and apparatus providing optimistic locking of shared computer resources
US6698357B2 (en) 2001-04-05 2004-03-02 Lockheed Martin Corporation Hydrocarbon warhead and method
US7380001B2 (en) * 2001-05-17 2008-05-27 Fujitsu Limited Fault containment and error handling in a partitioned system with shared resources
US6754776B2 (en) 2001-05-17 2004-06-22 Fujitsu Limited Method and system for logical partitioning of cache memory structures in a partitoned computer system
US6961761B2 (en) * 2001-05-17 2005-11-01 Fujitsu Limited System and method for partitioning a computer system into domains
US6760809B2 (en) * 2001-06-21 2004-07-06 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory
US6901485B2 (en) 2001-06-21 2005-05-31 International Business Machines Corporation Memory directory management in a multi-node computer system
US6760817B2 (en) 2001-06-21 2004-07-06 International Business Machines Corporation Method and system for prefetching utilizing memory initiated prefetch write operations
US6754782B2 (en) 2001-06-21 2004-06-22 International Business Machines Corporation Decentralized global coherency management in a multi-node computer system
US6862634B2 (en) 2001-06-29 2005-03-01 Fujitsu Limited Mechanism to improve performance in a multi-node computer system
US6757790B2 (en) * 2002-02-19 2004-06-29 Emc Corporation Distributed, scalable data storage facility with cache memory
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7346744B1 (en) 2002-11-04 2008-03-18 Newisys, Inc. Methods and apparatus for maintaining remote cluster state information
US7003633B2 (en) * 2002-11-04 2006-02-21 Newisys, Inc. Methods and apparatus for managing probe requests
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
GB0228110D0 (en) * 2002-12-02 2003-01-08 Goodrich Control Sys Ltd Apparatus for and method of transferring data
US7020752B2 (en) * 2003-02-07 2006-03-28 Sun Microsystems, Inc. Apparatus and method for snoop access in a dual access, banked and pipelined data cache memory unit
US7334089B2 (en) * 2003-05-20 2008-02-19 Newisys, Inc. Methods and apparatus for providing cache state information
US7337279B2 (en) * 2003-06-27 2008-02-26 Newisys, Inc. Methods and apparatus for sending targeted probes
US7698397B2 (en) * 2003-06-27 2010-04-13 Microsoft Corporation Method and framework for providing system performance information
JP5300407B2 (ja) 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
US8510334B2 (en) 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
JP2011198091A (ja) 2010-03-19 2011-10-06 Toshiba Corp 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム
US9727879B2 (en) * 2011-03-30 2017-08-08 Nokia Technologies Oy Method and apparatus for providing tag-based content installation
US9678872B2 (en) * 2015-01-16 2017-06-13 Oracle International Corporation Memory paging for processors using physical addresses

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108578A (ja) * 1991-10-19 1993-04-30 Fuji Xerox Co Ltd 情報処理システム
JPH06110844A (ja) * 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
JPH0512117A (ja) * 1991-07-04 1993-01-22 Toshiba Corp キヤツシユ一致化方式
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5692149A (en) * 1995-03-16 1997-11-25 Samsung Electronics Co., Ltd. Block replacement method in cache only memory architecture multiprocessor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108578A (ja) * 1991-10-19 1993-04-30 Fuji Xerox Co Ltd 情報処理システム
JPH06110844A (ja) * 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093078B2 (en) 1999-12-09 2006-08-15 Nec Corporation Data access method in the network system and the network system
JP2005044342A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd マルチプロセッサシステム及びマルチプロセッサシステムのキャッシュ一貫性維持方法
EP1624377A2 (en) 2004-08-05 2006-02-08 Fujitsu Limited Adapted MSI protocol used for snoop caches and speculative memory reads
JP2006048406A (ja) * 2004-08-05 2006-02-16 Fujitsu Ltd メモリシステム制御装置およびメモリシステム制御方法
CN100338587C (zh) * 2004-08-05 2007-09-19 富士通株式会社 用于控制存储器系统的方法和设备
US7783840B2 (en) 2004-08-05 2010-08-24 Fujitsu Limited Method and apparatus for controlling memory system
JP2006202215A (ja) * 2005-01-24 2006-08-03 Fujitsu Ltd メモリ制御装置及び制御方法
JP2008046890A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd マルチプロセッサシステム
JP2008204101A (ja) * 2007-02-19 2008-09-04 Nec Computertechno Ltd バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置
US8359419B2 (en) 2008-12-25 2013-01-22 Fujitsu Limited System LSI having plural buses
US9256439B2 (en) 2011-05-13 2016-02-09 Canon Kabushiki Kaisha Parallel processing of two-dimensional data, storage of plural data of the processing results in a cache line and transfer of the data to a memory as in the cache line
US10775870B2 (en) 2017-05-19 2020-09-15 Fujitsu Limited System and method for maintaining cache coherency

Also Published As

Publication number Publication date
US5829032A (en) 1998-10-27

Similar Documents

Publication Publication Date Title
JPH08185359A (ja) メモリサブシステム
US5740400A (en) Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
KR100491435B1 (ko) 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법
US8606997B2 (en) Cache hierarchy with bounds on levels accessed
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US7827354B2 (en) Victim cache using direct intervention
US6138217A (en) Method and apparatus for cache coherency in an interconnecting network
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
US20060184743A1 (en) Cache memory direct intervention
US6260117B1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
JPH0247756A (ja) 多重プロセツサ・システム用書込み共用キヤツシユ回路
JP2003316753A (ja) マルチプロセッサ装置
JPH0272452A (ja) 無効要求を選別する方法及び装置
WO2009130671A1 (en) Multiprocessing circuit with cache circuits that allow writing to not previously loaded cache lines
US6345344B1 (en) Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
JP5587539B2 (ja) ローカルメモリデータのコヒーレントなキャッシュ処理
JPH05324468A (ja) 階層化キャッシュメモリ
JPH09128346A (ja) 階層バスシステム
JP3626609B2 (ja) マルチプロセッサシステム
JPH1091521A (ja) 二重ディレクトリー仮想キャッシュ及びその制御方法
JPH06309231A (ja) キャッシュメモリ制御方法
JPH0529943B2 (ja)
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
JPH03230238A (ja) キャッシュメモリ制御方式