JPH07281955A - マルチプロセッサーシステムのスヌープ回路 - Google Patents

マルチプロセッサーシステムのスヌープ回路

Info

Publication number
JPH07281955A
JPH07281955A JP6326220A JP32622094A JPH07281955A JP H07281955 A JPH07281955 A JP H07281955A JP 6326220 A JP6326220 A JP 6326220A JP 32622094 A JP32622094 A JP 32622094A JP H07281955 A JPH07281955 A JP H07281955A
Authority
JP
Japan
Prior art keywords
address
cache
memory
snoop
bus
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
JP6326220A
Other languages
English (en)
Inventor
Min-Hee Sonn
敏 煕 孫
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JPH07281955A publication Critical patent/JPH07281955A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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

Abstract

(57)【要約】 (修正有) 【目的】 キャッシュコヒーレンスを保障して、システ
ムの信頼性を向上する。 【構成】 スヌープ回路50は第1比較器54の出力を
入力して他のリクェストとスヌープ制御器間とのマッチ
を判断し、第2比較部55の出力を入力して1バス動作
完了前に同一のアドレスに対する重複のバス動作が駆動
されるかを判断し、判断された結果及び他のリクェスト
とキャッシュメモリ間のアドレスマッチ信号に応じてシ
ステムバス上に所定のキャッシュコヒーレンス信号を出
力し、ライトバックのための第1制御信号、状態更新の
ための第2制御信号、データバッファーを制御するため
の第3制御信号及び前記中央処理装置の再試のための第
4制御信号をローカルバス上に出力して前記状態タグメ
モリのデータを参照又は更新する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサーシ
ステムにおいてキャッシュメモリとメインメモリ間にデ
ータの一貫性を維持するためのスヌープ回路に係り、特
に変形されたイリノイプロトコル(Modified Illinois
Protocol) に基づき高速のプログラマブルデバイス(E
PLD:electrically programmable logic device)
で具現したスヌープ回路に関する。
【0002】
【従来の技術】一般的に、コンピューターシステムでは
システムの性能向上のために階層構造のメモリを使用す
る。すなわち、階層的な構造のメモリを構成するキャッ
シュ、メインメモリ、ハードディスクおよびマグネティ
ックテープなどは中央処理装置CPUによるデータ使用
の頻度に応じて順次に位置する。キャッシュメモリやメ
インメモリのように最も高い使用頻度を持つメモリ素子
(通常、CPUに最も近くに位置する)は処理速度が速
い反面、単位メモリ容量当たりコストが高い。同様に、
使用頻度の低いメモリ素子(CPUから遠く離れて位置
する)は一般的に速度が遅く、磁気テープのように割合
大きいメモリ容量を有する。したがって、効率的なメモ
リ使用、即ち安価のコストで高速のメモリを使用するた
めに、大部分のコンピューターシステムはキャッシュメ
モリを採用する。キャッシュメモリを使用する場合、キ
ャッシュメモリとメインメモリ間のデータの一貫性が維
持されるべきである。マルチプロセッサーシステムは、
キャッシュメモリとメインメモリ間のデータの一貫性を
保つために、特にスヌープ回路を採用する。キャッシュ
メモリの使用時、データの一貫性維持のための従来の方
法として、シナプスプロトコル、バークレー(Berkele
y)プロトコル、イリノイプロトコルおよびファイアフ
ライ(Firefly)とドラゴンプロトコルなどがある。この
ような従来のプロトコルは、 J.Archibald & J.L. Ba
erにより発表された論文(“Cache Coherence Protocol
s : Evaluation Using a Multiprocessor Simulation M
odel," ACMTrans. on Computer Systems, 1986 )に述
べられている。シナプスプロトコルは、メインメモリに
キャッシュデータブロックと関連する1ビットのタグを
置いてキャッシュミスが発生した際に、メインメモリに
データを供給するか否かを決定する方式に関するもので
ある。バークレープロトコルは、キャッシュメモリの間
に直接データ伝送が生じ、メインメモリと異なる内容の
データブロックがキャッシュメモリの間に共有される方
式に関するものである。イリノイプロトコルはデータを
キャッシュメモリに読み取る際に、他のキャッシュメモ
リと共有されるか否かを決定する。また、これを利用し
てキャッシュメモリに貯蔵されたデータが変更されてい
ない状態で書き込む場合に発生する無効化を避けること
により、バスの使用を減らす方法に関するものである。
【0003】一方、本発明と関連する従来の技術とし
て、TAKESHI KITAHARAの他の2人が考案した“メインメ
モリ、外部キャッシュメモリおよび内部キャッシュメモ
リに貯蔵されたデータのコヒーレンスを維持するための
データ処理方法とその装置”が大韓民国特許93−76
72号(1993.8.18 ,出願人:(株)富士通)として公
告された。これはメインメモリ、外部キャッシュメモリ
および内部キャッシュメモリに貯蔵されたデータの一貫
性を維持するためにシステムバスを通じてメインメモ
リ、外部キャッシュメモリおよび外部装置に連結される
データ処理装置を提案したものである。前記データ処理
装置は、メインメモリ内容の一部を貯蔵するための内部
キャッシュメモリを含む。
【0004】前記データ処理装置は、メインメモリから
1つのブロックデータをフェッチするためのブロック−
インユニット、所定信号に応じてシステムバスを復旧
(レリーズ)するためのバスレリーズユニット、ブロッ
ク−インユニットのフェッチング動作を中断させるため
のブロック−インブレーキユニットおよびフェッチング
動作の状態を外部キャッシュメモリに通知する通知ユニ
ットから構成された。データの一貫性を維持するための
装置は、システムの性能と信頼性を決定付ける非常に重
要な要素である。しかしながら、前述した従来のプロト
コルや発明は各々それなりの長所があるにもかかわら
ず、それぞれのマルチプロセッサーシステムのシステム
バスの仕様およびコンピューター構造の差のために、全
てのマルチプロセッサーシステムに対して常に最適の方
法を提供するものではなかった。
【0005】
【発明が解決しようとする課題】本発明の目的はタイコ
ン(TICOM)コンピューター構造に適するように変形され
たイリノイプロトコルを適用してシステムバスの大きさ
とプロセッサーボード内のキャッシュメモリのラインサ
イズとが異なる場合にもバス上の動作を監視するスヌー
プ動作によってデータの一貫性を維持し、効果的な内部
仲裁によってシステムの性能損失を最小化するスヌープ
回路を提供することである。
【0006】
【課題を解決するための手段】前記のような本発明の目
的を達成するために本発明の装置は、ローカルバスを通
じて連結される中央処理装置CPUとキャッシュメモリ
とこれを制御するキャッシュ制御器とを有する複数のプ
ロセッサーボードと、メインメモリと、前記プロセッサ
ーボードとメインメモリを連結するシステムバスと前記
プロセッサーボード上に位置して前記メインメモリと前
記キャッシュメモリの間にデータコヒーレンスを維持す
るスヌープ回路とを含むマルチプロセッサーシステムに
おいて、前記スヌープ回路は所属されたプロセッサーボ
ード内のキャッシュメモリのアドレスを貯蔵し、他のリ
クェストにより前記システムバス上で駆動されるアドレ
スを受信して、前記貯蔵されたアドレスと比べてマッチ
されればアドレスマッチ信号を出力するアドレスタグメ
モリと、前記マッチされたアドレスのデータ状態を貯蔵
する状態タグメモリと、前記他のリクェストが駆動する
アドレスと前記スヌープ制御器が駆動するアドレスとを
比較する第1比較器と、前記中央処理装置がバス動作を
する初期に駆動されるアドレスをラッチして貯蔵し、所
定時間の間隔でシステムバス上のアドレスをモニターし
て前記ラッチされたアドレスと比較する第2比較部と、
前記第1比較器の出力を入力して前記他のリクェストと
スヌープ制御器が駆動するアドレスがマッチされたか否
かを判断し、第2比較部の出力を入力して特定のリクェ
ストが要求したバス動作完了前に他のリクェストにより
同じアドレスに対するバス動作を駆動するか否かを判断
し、前記判断された結果および前記アドレスマッチ信号
に応じて前記システムバス上に所定のキャッシュコヒー
レンス信号を出力し、ライトバックのための第1制御信
号、状態更新のための第2制御信号、データバッファー
を制御するための第3制御信号および前記中央処理装置
の再試しのための第4制御信号をローカルバス上に出力
し前記状態タグメモリのデータを参照あるいは更新する
前記スヌープ制御器とを具備したことを特徴とする。
【0007】
【作用】タイコンコンピューター構造に適するように変
形されたイリノイプロトコルを適用してシステムバスの
大きさとプロセッサーボード内のキャッシュメモリのラ
インサイズとが相異なる場合にもバス上の動作を監視す
るスヌープ動作によりデータの一貫性を維持する。ま
た、効果的な内部仲裁によりシステムの性能損失を最小
化することができる。
【0008】
【実施例】以下、添付した図面に基づき本発明を詳細に
説明する。本発明はイリノイプロトコルを変更して具現
したものであり、タイコンコンピューターシステムのシ
ステムバス(TICOM BUS)から提供される所定のコヒーレ
ンス信号を利用して信号線の追加なくキャッシュ制御器
とスヌープ制御器との動作をより知能的に制御する。特
に、状態遷移によるシステムの性能低下を防止するため
に非常に速いプログラマブルデバイス(例えば、PA
L,EPLDなど)を利用してスヌープ制御器が具現で
きる。
【0009】図1は本発明を説明するために、一般的な
タイコンコンピューターシステムの構成を概略的に示し
た図である。本発明が適用できるコンピューターシステ
ム(例えば、タイコンコンピューターなど)は複数のプ
ロセッサーボード101 ,102 ,・・・,10n と、
メインメモリ20と、入出力プロセッサーボード40
と、これらを相互連結するシステムバス30と、前記入
出力プロセッサー40と入出力装置(図示せず)を連結
する入出力バス45とを具備する。図1において、プロ
セッサーボード101 ,102 ,・・・,10n は内部
に所定の大きさ(例えば、256Kバイト)のキャッシ
ュメモリを有しており、他のプロセッサーのキャッシュ
メモリおよびメインメモリ101 ,102 ,・・・,1
n のキャッシュコヒーレンスを維持するために本発明
によるスヌープ回路50(図2)をそれぞれ具備する。
また、それぞれのプロセッサーボード101 ,102
・・・,10n は中央処理装置(CPU:例えばモトロ
ーラー社のMC68040など)を有し、内部のローカ
ルバスを通じて各機能ブロックを制御してシステムバス
30とインタフェースする。従って、プロセッサーボー
ド101 ,102 ,・・・,10n が入出力装置(図示
せず)をアクセスするためにはシステムバス30を通じ
て入出力プロセッサーボード40および入出力バス45
と通信する。メインメモリ20は必要に応じてメモリ容
量を拡張するために複数のモジュール201 ,202
・・・,20kで構成されることができ、全てのプロセ
ッサーボード101 ,102 ,・・・,10n と入出力
プロセッサー40により共有される。よって、共有され
るメインメモリ20と各プロセッサーボード101 ,1
2 ,・・・,10n に位置したキャッシュメモリ間に
データを一致させる必要がある。データの一貫性を保つ
技法は前述したように、シナプスプロトコル、バークレ
ープロトコル、イリノイプロトコルなどがあるが、本発
明はタイコンシステムの特性に最も適するようにイリノ
イプロトコルを改良して適用する。ここで、プロセッサ
ーボード101 ,102 ,・・・,10n および入出力
プロセッサーボード40のようにシステムバス30を使
用して能動的にデータを処理するマスターになりうる手
段をリクェストRQCとする。システムバス30上の伝
送形態(TT:Transfer Type)としては、リードフォ
リード(RFR:Read For Read)、リードフォライト
(RFW:Read For Write)、ノーマルリード(NR
D:Normal Read)、ノーマルライト(NWR:Normal W
rite)、ロックリード(LCR:Lock Read)、ロックラ
イト(LWR:Lock Write)、ライトバック(WRB:
Write Back)などの7種類がある。これらのうちで特に
キャッシュ動作と関連するものは、RFR,LWR,W
RBである。
【0010】図2は、本発明によるマルチプロセッサー
システムのスヌープ回路を示したブロック図である。本
発明によるスヌープ回路50は、マルチプレクサー5
1、アドレスタグメモリ52、状態タグメモリ53、第
1比較器54、第2比較部55およびスヌープ制御器5
6を具備する。前記スヌープ回路50は、バスインタフ
ェース部65を通じて得られるシステムバス30上の各
種の信号と自分の属するプロセッサーボードのキャッシ
ュ制御器(図示せず)から情報を受信してキャッシュメ
モリ(図示せず)の状態を変更したり、ローカルアビタ
ル60へ再試しのための第4制御信号/SNRETRYを出力す
る。
【0011】マルチプレクサー51は、第1および第2
マルチプレクサー511 ,512 で構成され、第1マル
チプレクサー511 はローカルバスからキャッシュアド
レス(CA)とCPUアドレス(SA)とバスインタフ
ェース部65を経たシステムアドレスSBAを受信して
一つのアドレスSBAを出力する。第2マルチプレクサ
ー512 は、前記キャッシュアドレスCAとシステムア
ドレスSBAを受信する。マルチプレクサー51は、キ
ャッシュアドレスCAの変動があればこれを受信してア
ドレスタグメモリ52に貯蔵させ、システムバス30を
通じて他のリクェストRQCが駆動するアドレスSBA
をアドレスバッファー(図示せず)を通じて受信してア
ドレスタグメモリ52に出力する。
【0012】アドレスタグメモリ52は、キャッシュア
ドレスCAと他のリクェストRQCとによりシステムバ
ス30上に駆動されるシステムアドレスSBAを比較し
てそのアドレスが自分のキャッシュメモリに既に存して
いるかを判定する。アドレスタグメモリ52は、自分の
属するプロセッサーボード内のキャッシュメモリのアド
レスを貯蔵している所定の大きさ(例えば16Kバイ
ト)のスタティックラムSRAM(図示せず)で構成さ
れ、比較器(図示せず)を内蔵する。即ち、マルチプレ
クサー51から入力されるシステムバス30上のシステ
ムアドレスSBAを貯蔵されたキャッシュメモリのアド
レスと比較して一致すれば、アドレス一致信号をスヌー
プ制御器56へ出力する。
【0013】状態タグメモリ53は、アドレスタグメモ
リ52でマッチされたアドレスに当たるデータの状態を
貯蔵する。状態タグメモリ53は所定の大きさ(16K
バイト)のスタティックラムSRAMで具現可能であ
る。前記データは4種類の状態、すなわち、共有,ダー
ティ,有効および無効に存する。4種類の状態を区分す
るために2ビットを使用する。共有とは、同一のアドレ
スのデータを2つ以上のキャッシュメモリが共有してお
り、そのデータはメインメモリ20のデータと一致する
状態にあることを示す。ダーティとは、特定キャッシュ
メモリのデータが他のキャッシュメモリにより共有され
ず前記特定のキャッシュメモリのみに存し、CPUのラ
イト動作によりキャッシュデータが変更されてそのアド
レスに当たるメインメモリ20のデータと一致しない状
態を示す。有効とは、特定キャッシュメモリのデータが
他のキャッシュメモリにより共有されずメインメモリ2
0のデータと一致する状態である。無効とは、データの
使用が不可能であることを意味する。このように、状態
タグは、4種類の状態でデータを管理しスヌープ制御器
56の制御により貯蔵された状態情報を変更したり提供
したりする。このようなタグ用のメモリは、74ACT
2164などで具現して高速処理を可能にする。
【0014】第1比較器54は、キャッシュアドレスC
Aとシステムバス30上で駆動されたシステムアドレス
SBAとを比較して出力/PEQ信号をスヌープ制御器
56に出力する。これらのアドレスはバスサイクル毎に
又はCPUのクロックBCLKに応じて変更される。/PE
Q信号は、CPU(あるいはキャッシュ制御器)とスヌ
ープ制御器が同一のキャッシュラインをアクセスするか
を判断するために用いられる信号である。前記のような
同一のキャッシュラインのアクセス時の衝突は、キャッ
シュ制御器とスヌープ制御器56とが同一のキャッシュ
状態を見て動作を始める場合に発生する。2つの制御器
の独立動作を許容すれば、キャッシュ状態が相異なる状
態に遷移されうるのでこれを考慮すべきである。キャッ
シュメモリの状態が有効の際に、CPUがライト動作を
要求しスヌープ制御器56が無効化を要求する場合を考
えて見る。始めはキャッシュ制御器とスヌープ制御器5
6とが同時にキャッシュの状態を参照して両方とも有効
であることを確認して動作したが、2つの制御器の動作
が完了する際には、キャッシュの状態をキャッシュ制御
器によってダーティに、スヌープ制御器56によって無
効に遷移されるべきである。つまり、状態の遷移が二重
に発生する結果になり、キャッシュコヒーレンスが維持
され得ない。スヌープ制御器56は、このような場合を
判断してキャッシュコヒーレンスを保障するための動作
を次のように施す。第1、スヌ−プ制御器56はCPU
が先ず動作を始めた場合にはスナックを駆動して他のリ
クェストを再試しさせる。第2、CPUが後で動作して
スナックを駆動できなかった場合にはCPUを再試しさ
せる。このような第1比較器54は74F521などを
利用して具現可能である。
【0015】第2比較部55は、システムバス30上に
駆動されたアドレスをバス動作初期にラッチして貯蔵す
るラッチ551 と、所定の時間間隔でシステムバス30
上のアドレスと前記ラッチ551 によりラッチされたア
ドレスとを比較する比較器552 とから構成される。前
記第2比較部55は、所定の時間間隔でアドレスを比較
して出力/PPM信号をスヌープ制御器56に出力す
る。前記第2比較部55は、74F521,74F37
7などを使用して具現することができ、前記第2比較部
55の出力/PPM信号はCPU(あるいはキャッシュ
制御器)が要求したバス動作の遂行が完了される前に、
他のリクェストで同一のアドレスに対するバス動作を遂
行しているかを判断するための信号である。この場合に
はキャッシュ制御器のバス動作によりキャッシュメモリ
の状態が異なった状態に遷移されるべきであり、これは
‘RFR’あるいは‘RFW’の転送形態のみに局限さ
れる。即ち、キャッシュメモリの状態を参照してキャッ
シュ制御器による動作開始からバス動作の完了によるキ
ャッシュメモリの状態変更時までの情報は不確実なもの
なので、キャッシュ制御器はキャッシュメモリの状態が
変更されるまでスナック信号を駆動して他のリクェスト
を再試しさせなければならない。
【0016】スヌープ制御器56は、感知されたバス情
報(アドレス、伝送形態TT)とキャッシュ制御器が提
供する情報、状態タグメモリ53およびアドレスタグメ
モリ52からの情報を受入れて次のような機能を遂行す
る。 (1)状態更新機能(STATE UPDATE) スヌープ制御器56は、システムバス30上の伝送形態
TTを感知し、アドレスタグメモリ52からはCPUと
スヌープ制御器が同じキャッシュラインをアクセスする
場合の駆動信号(SCMATCH)を、状態タグメモリ53から
は状態信号(STATE)を受け入れて次の表(1)のように
ライトバックのための第1制御信号/SWRBABUF または状
態更新のための第2制御信号/SNUPREQを発生して状態を
更新する。
【0017】
【表1】
【0018】前記表1において、現在状態が共有の際に
バス伝送形態が‘RFR’なら共有状態を維持し、伝送
形態が‘RFW’なら無効に現在状態を更新する。ま
た、現在状態がダーティの際にバス伝送形態が‘RF
R’ならライトバックを遂行した後、現在状態は共有に
状態を更新し、‘RFW’ならライトバック後に無効に
状態を更新する。また、現在状態が有効の際に伝送形態
が‘RFR’なら現在状態は共有に状態を更新し、伝送
形態が‘RFW’なら無効に状態を更新する。
【0019】(2)ダーティ状態のデータに対するライ
トバック機能 キャッシュメモリにダーティ状態に存するデータに対し
て他のリクェストからの要求がある場合にライトバック
が遂行され、状態更新が要求される。このためにスヌー
プ制御器56は、状態更新のための第2制御信号/SNUPR
EQとデータバッファ制御のための第3制御信号/SWRBDEN
を発生させる。このようなライトバック動作の実行順序
の流れは図3に示した。図3を参照すれば、ライトバッ
ク過程ではアドレスがマッチされたか否かを判断する
(100)。マッチされればシステムバス30の使用が
許されたか否か(BUS GRANT)を判断する(101)。シ
ステムバス30の使用が許されると、アドレスバッファ
ー(図示せず)とデータバッファー(図示せず)を駆動
してメインメモリ20にデータをライトし(102)、
結果を確認する(103)。確認した結果、ライト動作
が完了されたなら状態を更新し(104)、失敗したな
らエラールーチンを駆動する(105)。
【0020】(3)他のリクェストのバス使用を統制す
る機能 スヌープ制御器56は、キャッシュメモリに貯蔵されて
いるデータの状態に関する情報や自分の属するプロセッ
サーボード内で遂行中の動作に関する情報をシステムバ
ス30上で駆動してシステムバス30を通じてメインメ
モリ20に接近しようとする全てのリクェストのシステ
ムバス30の使用を統制する。このためにスヌープ制御
器56は、システムバス30上に次の表2の通り所定の
コヒーレンス信号(DIRTY, SHARED, SNACK)を発生させ
る。
【0021】
【表2】
【0022】前記表2に示されるように、現在状態がダ
ーティならスヌープ制御器56は全ての伝送形態でシス
テムバス30上にダーティ信号を駆動して他のリクェス
トを再試しさせる。現在状態が共有又は有効の際に、伝
送形態が‘RFR’ならシステムバス上に共有信号を駆
動して他のリクェストの動作を進めつづける。一方、ス
ヌープ制御器56がシステムバス30上にスナック信号
を駆動して他のリクェストを再試しさせる場合は次のよ
うな3種類である。第1の場合は、特定のスヌープ制御
器56を含むプロセッサーボード101 ,102 ,・・
・,10n のうちの1つが‘RFR’や‘RFW’を遂
行するために、あるアドレスをシステムバス30に駆動
した後、その動作が完了される前に他のリクェストの要
求が発生した時である。第2の場合は、他のリクェスト
が駆動したアドレスと伝送形態に応じて状態更新が必要
である時である。この場合にスナックを駆動しなけれ
ば、状態更新前に又他のリクェストの要求がある際にデ
ータの一貫性が破れる危険がある。第3の場合は、同一
のプロセッサーボードに属するCPUが駆動するアドレ
スに対してキャッシュメモリからミスが発生して、シス
テムバス30を要求する場合である。この場合にはスヌ
ープ回路50により感知されるアドレスのうちでSBA
がCPUが駆動するキャッシュアドレスCAと一致する
際に(即ち、CPUとスヌープ制御器56とが同一のキ
ャッシュラインをアクセスするCSMATCHが発生する
時)、スナック信号を発生させる。もしスナック信号が
発生しなければ、スヌープ回路50によるライトバック
動作がブロックは同一であるが実際のアドレスが異なる
データに対して遂行される場合が発生しうる。その結
果、他のリクェストが間違ったデータを持っていく場合
が発生する。
【0023】(4)CPUを再試させる機能 スヌープ制御器56がCPUを再試させる場合は次の通
りである。第1、スヌープ回路50とCPUのライト動
作によるアドレスのデータがキャッシュメモリに有効に
存する際に、スヌープ回路50が同じアドレスに対して
状態更新を必要とする場合である。第2、CPUが必要
とするアドレスに対してキャッシュメモリからミスが発
生してバス動作が要求され、この時に同一のアドレスに
対してスヌープ回路50で状態更新の必要性がある場合
(但し、キャッシュ制御器の状態マシンがスタートする
前であろう)である。第3、CPUがノンキャッシャブ
ル(noncachable)動作をキャッシュ制御器に要求する際
に、スヌープ回路50が状態更新を必要とする場合であ
る。前記第2および第3の場合にはスナックを発生させ
て他のリクェストを再試しさせることもできるが、性能
の側面からCPUを再試しさせた方が一層有利である。
【0024】
【発明の効果】以上のように、本発明はタイコンシステ
ムにおいて、各プロセッサーボードに位置したキャッシ
ュメモリとメインメモリ間のキャッシュコヒーレンスを
保障してシステムの信頼性を向上させ、変更されたイリ
ノイプロトコルを適用しバス使用上の効率的な内部仲裁
を可能にする高速のデバイスに具現してシステムの性能
を向上させる効果がある。特に、タイコンバスから提供
されるスナック信号を利用して信号線の追加なくキャッ
シュ制御器とスヌープ制御器の動作をより知能的に制御
できる。
【図面の簡単な説明】
【図1】本発明によるスヌープ回路の機能を説明するた
めに示したマルチプロセッサーシステムのブロック図で
ある。
【図2】本発明によるスヌープ回路を示したブロック図
である。
【図3】図2に示したスヌープ制御器が遂行するライト
バック過程を示したフローチャートである。
【符号の説明】
101 〜10n プロセッサボード 20 メインメモリ 30 システムバス 40 入出力プロセッサ 50 スヌープ回路 52 アドレスタグメモリ 53 状態タグメモリ 54 比較器 55 比較部 56 スループ制御器

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ローカルバスを通じて連結される中央処
    理装置とキャッシュメモリとこれを制御するキャッシュ
    制御器とを有する複数のプロセッサーボードと、メイン
    メモリと、前記プロセッサーボードとメインメモリとを
    連結するシステムバスと、前記プロセッサーボード上に
    位置して前記メインメモリと前記キャッシュメモリの間
    にデータコヒーレンスを維持するスヌープ回路とを含む
    マルチプロセッサーシステムにおいて、 所属されたプロセッサーボード内のキャッシュメモリの
    アドレスを貯蔵し、他のリクェスト(CPU又はキャッ
    シュ制御器)により前記システムバス上で駆動されるア
    ドレスを受信して、前記貯蔵されたアドレスと比べてマ
    ッチされればアドレスマッチ信号を出力するアドレスタ
    グメモリと、 前記マッチされたアドレスのデータ状態を貯蔵する状態
    タグメモリと、 前記他のリクェストが駆動するアドレスと前記スヌープ
    制御器が駆動するアドレスとを比較する第1比較器と、 前記中央処理装置がバス動作をする初期に駆動されるア
    ドレスをラッチし、所定時間の間隔でシステムバス上の
    アドレスをモニターして前記ラッチされたアドレスと比
    較する第2比較部と、 前記第1比較器の出力を入力して前記他のリクェストと
    スヌープ制御器が駆動するアドレスがマッチされたか否
    かを判断し、第2比較部の出力を入力して特定のリクェ
    ストが要求したバス動作完了前に他のリクェストにより
    同じアドレスに対するバス動作を駆動するか否かを判断
    し、前記判断された結果および前記アドレスマッチ信号
    に応じて前記システムバス上に所定のキャッシュコヒー
    レンス信号を出力し、ライトバックのための第1制御信
    号、状態更新のための第2制御信号、データバッファー
    を制御するための第3制御信号および前記中央処理装置
    の再試しのための第4制御信号をローカルバス上に出力
    し前記状態タグメモリのデータを参照あるいは更新する
    前記スヌープ制御器とを具備したことを特徴とするマル
    チプロセッサーシステム。
  2. 【請求項2】 前記スヌープ制御器は、前記コヒーレン
    ス信号として前記複数のプロセッサーによりキャッシュ
    データが共有されていることを示す共有信号と、前記メ
    インメモリと前記キャッシュメモリのデータが一致しな
    いことを示すダーティ信号と、他のプロセッサーボード
    のスヌープ制御器に現システムバス上の動作が遂行され
    得ないことを知らせるスナック信号とを出力することを
    特徴とする請求項1項記載のマルチプロセッサーシステ
    ムのスヌープ回路。
  3. 【請求項3】前記状態タグメモリは、データ状態の種類
    として共有,ダーティ,有効および無効を使用すること
    を特徴とする請求項1項記載のマルチプロセッサーシス
    テムのスヌープ回路。
JP6326220A 1994-04-11 1994-12-27 マルチプロセッサーシステムのスヌープ回路 Pending JPH07281955A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR7531/1994 1994-04-11
KR1019940007531A KR960009659B1 (ko) 1994-04-11 1994-04-11 멀티프로세서 시스템의 스누프회로

Publications (1)

Publication Number Publication Date
JPH07281955A true JPH07281955A (ja) 1995-10-27

Family

ID=19380773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6326220A Pending JPH07281955A (ja) 1994-04-11 1994-12-27 マルチプロセッサーシステムのスヌープ回路

Country Status (3)

Country Link
US (1) US5829040A (ja)
JP (1) JPH07281955A (ja)
KR (1) KR960009659B1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100387576B1 (ko) * 1995-12-29 2003-09-22 엘지엔시스(주) 멀티프로세서시스템의캐쉬응집프로토콜처리방법
US6038644A (en) * 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US6018791A (en) * 1997-04-14 2000-01-25 International Business Machines Corporation Apparatus and method of maintaining cache coherency in a multi-processor computer system with global and local recently read states
US6314495B1 (en) 1998-01-07 2001-11-06 International Business Machines Corporation Method and apparatus for executing multiply-initiated, multiply-sourced variable delay system bus operations
US6108753A (en) * 1998-03-31 2000-08-22 International Business Machines Corporation Cache error retry technique
US6141714A (en) * 1998-07-13 2000-10-31 International Business Machines Corporation Method and apparatus for executing self-snooped unresolvable system bus operations
US6178485B1 (en) * 1998-07-13 2001-01-23 International Business Machines Corporation Method and apparatus for executing singly-initiated, singly-sourced variable delay system bus operations of differing character
US6192453B1 (en) * 1998-07-13 2001-02-20 International Business Machines Corporation Method and apparatus for executing unresolvable system bus operations
KR100348100B1 (ko) * 1998-07-31 2002-11-07 하나제약 주식회사 2-[(2,6-디클로로페닐)아미노]페닐아세톡시아세트산의제조방법
JP3525771B2 (ja) * 1998-11-30 2004-05-10 日本電気株式会社 バス・スヌープ制御回路
KR100544871B1 (ko) * 1998-12-29 2006-03-31 매그나칩 반도체 유한회사 듀얼 라이트 백 버퍼_
US6434641B1 (en) * 1999-05-28 2002-08-13 Unisys Corporation System for reducing the number of requests presented to a main memory in a memory storage system employing a directory-based caching scheme
US6275909B1 (en) * 1999-08-04 2001-08-14 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6321305B1 (en) 1999-08-04 2001-11-20 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly cancelling master allocation of read data
US6353875B1 (en) 1999-08-04 2002-03-05 International Business Machines Corporation Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6343344B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation System bus directory snooping mechanism for read/castout (RCO) address transaction
US6343347B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
US6502171B1 (en) 1999-08-04 2002-12-31 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US6324617B1 (en) 1999-08-04 2001-11-27 International Business Machines Corporation Method and system for communicating tags of data access target and castout victim in a single data transfer
US6338124B1 (en) 1999-08-04 2002-01-08 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6349367B1 (en) 1999-08-04 2002-02-19 International Business Machines Corporation Method and system for communication in which a castout operation is cancelled in response to snoop responses
US6996645B1 (en) * 2002-12-27 2006-02-07 Unisys Corporation Method and apparatus for spawning multiple requests from a single entry of a queue
US7127562B2 (en) * 2003-06-11 2006-10-24 International Business Machines Corporation Ensuring orderly forward progress in granting snoop castout requests
US7363427B2 (en) * 2004-01-12 2008-04-22 Hewlett-Packard Development Company, L.P. Memory controller connection to RAM using buffer interface
US8301844B2 (en) * 2004-01-13 2012-10-30 Hewlett-Packard Development Company, L.P. Consistency evaluation of program execution across at least one memory barrier
US7376794B2 (en) * 2004-01-13 2008-05-20 Hewlett-Packard Development Company, L.P. Coherent signal in a multi-processor system
US7409503B2 (en) * 2004-01-13 2008-08-05 Hewlett-Packard Development Company, L.P. Register file systems and methods for employing speculative fills
US7380107B2 (en) * 2004-01-13 2008-05-27 Hewlett-Packard Development Company, L.P. Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss
US7409500B2 (en) * 2004-01-13 2008-08-05 Hewlett-Packard Development Company, L.P. Systems and methods for employing speculative fills
US7340565B2 (en) * 2004-01-13 2008-03-04 Hewlett-Packard Development Company, L.P. Source request arbitration
US7360069B2 (en) * 2004-01-13 2008-04-15 Hewlett-Packard Development Company, L.P. Systems and methods for executing across at least one memory barrier employing speculative fills
US7383409B2 (en) 2004-01-13 2008-06-03 Hewlett-Packard Development Company, L.P. Cache systems and methods for employing speculative fills
US7406565B2 (en) * 2004-01-13 2008-07-29 Hewlett-Packard Development Company, L.P. Multi-processor systems and methods for backup for non-coherent speculative fills
US8281079B2 (en) * 2004-01-13 2012-10-02 Hewlett-Packard Development Company, L.P. Multi-processor system receiving input from a pre-fetch buffer
US7856534B2 (en) 2004-01-15 2010-12-21 Hewlett-Packard Development Company, L.P. Transaction references for requests in a multi-processor network
US7962696B2 (en) * 2004-01-15 2011-06-14 Hewlett-Packard Development Company, L.P. System and method for updating owner predictors
US7240165B2 (en) * 2004-01-15 2007-07-03 Hewlett-Packard Development Company, L.P. System and method for providing parallel data requests
US7149852B2 (en) * 2004-01-20 2006-12-12 Hewlett Packard Development Company, Lp. System and method for blocking data responses
US20050160238A1 (en) * 2004-01-20 2005-07-21 Steely Simon C.Jr. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8176259B2 (en) * 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US7395374B2 (en) * 2004-01-20 2008-07-01 Hewlett-Packard Company, L.P. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8468308B2 (en) * 2004-01-20 2013-06-18 Hewlett-Packard Development Company, L.P. System and method for non-migratory requests in a cache coherency protocol
US8090914B2 (en) * 2004-01-20 2012-01-03 Hewlett-Packard Development Company, L.P. System and method for creating ordering points
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US7143245B2 (en) * 2004-01-20 2006-11-28 Hewlett-Packard Development Company, L.P. System and method for read migratory optimization in a cache coherency protocol
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points
US7769959B2 (en) * 2004-01-20 2010-08-03 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration to memory
US7177987B2 (en) * 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
US7818391B2 (en) * 2004-01-20 2010-10-19 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
JP2509344B2 (ja) * 1989-09-19 1996-06-19 富士通株式会社 デ―タ処理装置
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
JPH0477097U (ja) * 1990-11-20 1992-07-06
KR920009441A (ko) * 1990-11-21 1992-06-25 김덕환 정수제및 경화제로 유용한 무기 응집제
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus

Also Published As

Publication number Publication date
KR960009659B1 (ko) 1996-07-23
US5829040A (en) 1998-10-27
KR950029941A (ko) 1995-11-24

Similar Documents

Publication Publication Date Title
JPH07281955A (ja) マルチプロセッサーシステムのスヌープ回路
JP3737834B2 (ja) 2重化キャッシュ・スヌープ機構
US7827354B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
US5940856A (en) Cache intervention from only one of many cache lines sharing an unmodified value
US5963974A (en) Cache intervention from a cache line exclusively holding an unmodified value
US5940864A (en) Shared memory-access priorization method for multiprocessors using caches and snoop responses
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
KR19980079663A (ko) Smp 버스의 최근 판독 상태에서의 캐시 라인들의 공유 개입 방법
US5943685A (en) Method of shared intervention via a single data provider among shared caches for SMP bus
JP2003316753A (ja) マルチプロセッサ装置
US6898676B2 (en) Computer system supporting both dirty-shared and non-dirty-shared data processing entities
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
US6351791B1 (en) Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
US20040111563A1 (en) Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
US5787468A (en) Computer system with a cache coherent non-uniform memory access architecture using a fast tag cache to accelerate memory references
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US6601145B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
WO1997004392A1 (en) Shared cache memory device
JPH09128346A (ja) 階層バスシステム
JP3202943B2 (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
US6658536B1 (en) Cache-coherency protocol with recently read state for extending cache horizontally
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050614