JPH10222423A - キャッシュメモリ制御方式 - Google Patents
キャッシュメモリ制御方式Info
- Publication number
- JPH10222423A JPH10222423A JP9024933A JP2493397A JPH10222423A JP H10222423 A JPH10222423 A JP H10222423A JP 9024933 A JP9024933 A JP 9024933A JP 2493397 A JP2493397 A JP 2493397A JP H10222423 A JPH10222423 A JP H10222423A
- Authority
- JP
- Japan
- Prior art keywords
- shared
- state
- cache memory
- block
- address
- 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
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 ライトバック方式のキャッシュメモリを有す
る共有メモリ型マルチプロセッサシステムにおいて、余
分なスヌープ処理をなくして高いシステム性能を実現す
るキャッシュメモリ制御方式を提供する。 【解決手段】 プロセッサ100、200は、無効状
態、共有状態、排他一致状態、および排他変更状態の4
状態を取る状態部132、232を備えるコピータグ1
30、230を有している。キャッシュメモリ110、
210が排他変更状態に遷移したときは、コピータグ1
30、230に通知することによってキャッシュメモリ
110、210の状態と一致させ、共有バス10上の共
有メモリ300へのリード要求をバス監視回路170、
270によって検出し、コピータグ130、230の検
査を行ってキャッシュメモリ110、210へのアクセ
スを減らし、排他変更状態のブロックにヒットしたとき
にだけ、変更信号線11を出力して共有メモリ300を
待機させ、キャッシュメモリ110、210に対してス
ヌープ処理を行う。
る共有メモリ型マルチプロセッサシステムにおいて、余
分なスヌープ処理をなくして高いシステム性能を実現す
るキャッシュメモリ制御方式を提供する。 【解決手段】 プロセッサ100、200は、無効状
態、共有状態、排他一致状態、および排他変更状態の4
状態を取る状態部132、232を備えるコピータグ1
30、230を有している。キャッシュメモリ110、
210が排他変更状態に遷移したときは、コピータグ1
30、230に通知することによってキャッシュメモリ
110、210の状態と一致させ、共有バス10上の共
有メモリ300へのリード要求をバス監視回路170、
270によって検出し、コピータグ130、230の検
査を行ってキャッシュメモリ110、210へのアクセ
スを減らし、排他変更状態のブロックにヒットしたとき
にだけ、変更信号線11を出力して共有メモリ300を
待機させ、キャッシュメモリ110、210に対してス
ヌープ処理を行う。
Description
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
制御方式に関し、特に、キャッシュメモリを持つ複数の
プロセッサを有するマルチプロセッサシステム(MPシ
ステム)におけるキャッシュメモリ制御方式に関する。
制御方式に関し、特に、キャッシュメモリを持つ複数の
プロセッサを有するマルチプロセッサシステム(MPシ
ステム)におけるキャッシュメモリ制御方式に関する。
【0002】
【従来の技術】通常、キャッシュメモリをそれぞれ備え
る複数のプロセッサが共有メモリをアクセスするMPシ
ステムでは、システム内のキャッシュメモリや共有メモ
リに記憶されたデータをも含む全てのデータの間で、一
貫性(コヒーレンシ)を保証しなければならない。この
一貫性を保証するとは、各プロセッサが共有メモリの特
定のアドレスに対応する最新のデータにアクセスできる
ことを保証するということである。例えば、特定のアド
レスのデータがあるプロセッサのキャッシュメモリに格
納されかつ変更された場合は、変更後のデータは、全て
のプロセッサにとってアクセス可能なでなければならな
い。
る複数のプロセッサが共有メモリをアクセスするMPシ
ステムでは、システム内のキャッシュメモリや共有メモ
リに記憶されたデータをも含む全てのデータの間で、一
貫性(コヒーレンシ)を保証しなければならない。この
一貫性を保証するとは、各プロセッサが共有メモリの特
定のアドレスに対応する最新のデータにアクセスできる
ことを保証するということである。例えば、特定のアド
レスのデータがあるプロセッサのキャッシュメモリに格
納されかつ変更された場合は、変更後のデータは、全て
のプロセッサにとってアクセス可能なでなければならな
い。
【0003】従来、MPシステムにおいて、一貫性を維
持するための1つの方法として、スヌープ方式があっ
た。スヌープ方式とは、共有バス上の一貫性に関連する
動作や要求を絶えず監視し、キャッシュメモリに対して
一貫性を維持するための処置(スヌープ)を行う制御方
式である。スヌープ方式には、共有バス上の全ての要求
に対応してキャッシュメモリをアクセスすると、その干
渉によってプロセッサの処理性能が低下するという欠点
があった。この欠点を解決するために種々の技術が提案
されている。
持するための1つの方法として、スヌープ方式があっ
た。スヌープ方式とは、共有バス上の一貫性に関連する
動作や要求を絶えず監視し、キャッシュメモリに対して
一貫性を維持するための処置(スヌープ)を行う制御方
式である。スヌープ方式には、共有バス上の全ての要求
に対応してキャッシュメモリをアクセスすると、その干
渉によってプロセッサの処理性能が低下するという欠点
があった。この欠点を解決するために種々の技術が提案
されている。
【0004】例えば、特開平8−30510号公報に開
示されているキャッシュ制御システムがある。このキャ
ッシュ制御システムでは、メモリバスに接続されたスヌ
ープ監視回路内に各プロセッサに対応して監視回路を設
け、その回路内に対応するプロセッサのキャッシュメモ
リの格納エントリ情報を格納する格納手段を設け、共有
メモリに対するライトアクセスがあったときに前記格納
手段を検索してライトアドレスに対応するエントリを格
納しているキャッシュメモリを検出し、そのキャッシュ
メモリのみに対して対応するエントリの無効化処理を行
う。これにより、各プロセッサのキャッシュメモリへの
スヌープの回数を減らしてプロセッサのスヌープ処理に
要する時間を減らし、プロセッサの処理性能を高めてい
る。
示されているキャッシュ制御システムがある。このキャ
ッシュ制御システムでは、メモリバスに接続されたスヌ
ープ監視回路内に各プロセッサに対応して監視回路を設
け、その回路内に対応するプロセッサのキャッシュメモ
リの格納エントリ情報を格納する格納手段を設け、共有
メモリに対するライトアクセスがあったときに前記格納
手段を検索してライトアドレスに対応するエントリを格
納しているキャッシュメモリを検出し、そのキャッシュ
メモリのみに対して対応するエントリの無効化処理を行
う。これにより、各プロセッサのキャッシュメモリへの
スヌープの回数を減らしてプロセッサのスヌープ処理に
要する時間を減らし、プロセッサの処理性能を高めてい
る。
【0005】
【発明が解決しようとする課題】第1の問題点は、上述
の特開平8−30510号公報の技術では、ライトバッ
ク方式のキャッシュメモリに対しては、データの一貫性
を保証できないことである。
の特開平8−30510号公報の技術では、ライトバッ
ク方式のキャッシュメモリに対しては、データの一貫性
を保証できないことである。
【0006】その理由は、共有メモリへのライトアクセ
スに対してのみバス監視を行い、リードアクセスに対し
てはバス監視を行っていないからである。ライトバック
方式のキャッシュメモリの場合には、あるキャッシュメ
モリのデータがプロセッサのライトアクセスにより変更
されて、対応するアドレスの共有メモリのデータと一致
しない状態になりうる。この場合は、キャッシュメモリ
のデータが、最新のデータである。他のプロセッサがそ
のアドレスをリードして共有メモリのデータを読んでし
まうと、間違った古いデータを読むことになり、データ
の一貫性が保たれない。データの一貫性を維持するため
には、共有メモリへのリードアクセスをも監視して、別
のキャッシュメモリで変更されたデータを読もうとした
場合には、例えば共有メモリからではなく、変更された
キャッシュメモリから直接データを渡すようにするなど
という対応が可能でなければならない。
スに対してのみバス監視を行い、リードアクセスに対し
てはバス監視を行っていないからである。ライトバック
方式のキャッシュメモリの場合には、あるキャッシュメ
モリのデータがプロセッサのライトアクセスにより変更
されて、対応するアドレスの共有メモリのデータと一致
しない状態になりうる。この場合は、キャッシュメモリ
のデータが、最新のデータである。他のプロセッサがそ
のアドレスをリードして共有メモリのデータを読んでし
まうと、間違った古いデータを読むことになり、データ
の一貫性が保たれない。データの一貫性を維持するため
には、共有メモリへのリードアクセスをも監視して、別
のキャッシュメモリで変更されたデータを読もうとした
場合には、例えば共有メモリからではなく、変更された
キャッシュメモリから直接データを渡すようにするなど
という対応が可能でなければならない。
【0007】第2の問題点は、上述の技術では、仮に、
共有メモリへのリードアクセスを監視したとしても、キ
ャッシュメモリのエントリ情報格納手段に格納されてい
るエントリを検出したならば、変更されているか否かに
拘らず各プロセッサのキャッシュメモリに対してスヌー
プを実行しなければならないが、変更されていないエン
トリへのリードアクセスに対するスヌープは無駄であ
り、共有メモリへのリードアクセス時間が無駄なスヌー
プ処理を待つために遅くなることである。
共有メモリへのリードアクセスを監視したとしても、キ
ャッシュメモリのエントリ情報格納手段に格納されてい
るエントリを検出したならば、変更されているか否かに
拘らず各プロセッサのキャッシュメモリに対してスヌー
プを実行しなければならないが、変更されていないエン
トリへのリードアクセスに対するスヌープは無駄であ
り、共有メモリへのリードアクセス時間が無駄なスヌー
プ処理を待つために遅くなることである。
【0008】その理由は、キャッシュメモリのエントリ
情報格納手段に、対応するキャッシュメモリが変更され
ているか否かの情報が、格納されないからである。前記
格納手段とキャッシュメモリとが直接通信する手段を持
たないことに、その原因がある。
情報格納手段に、対応するキャッシュメモリが変更され
ているか否かの情報が、格納されないからである。前記
格納手段とキャッシュメモリとが直接通信する手段を持
たないことに、その原因がある。
【0009】本発明の課題は、ライトバック方式のキャ
ッシュメモリを持つ複数のプロセッサを有するMPシス
テムにおいて、データの一貫性を保証するスヌープ方式
を実現するためのキャッシュメモリ制御方式を提供する
ことである。
ッシュメモリを持つ複数のプロセッサを有するMPシス
テムにおいて、データの一貫性を保証するスヌープ方式
を実現するためのキャッシュメモリ制御方式を提供する
ことである。
【0010】本発明の他の課題は、共有バスのアクセス
要求監視に対応して各プロセッサのキャッシュメモリへ
アクセスする条件を、アクセス要求されたブロックがそ
のキャッシュメモリに存在している場合だけに限定して
キャッシュメモリへの干渉を減らし、各プロセッサの処
理性能を高めるようにしたキャッシュメモリ制御方式を
提供することである。
要求監視に対応して各プロセッサのキャッシュメモリへ
アクセスする条件を、アクセス要求されたブロックがそ
のキャッシュメモリに存在している場合だけに限定して
キャッシュメモリへの干渉を減らし、各プロセッサの処
理性能を高めるようにしたキャッシュメモリ制御方式を
提供することである。
【0011】さらに本発明の他の課題は、共有メモリへ
のリードアクセスがプロセッサのキャッシュメモリへの
スヌープ処理を待つ条件を、リード要求されたブロック
がそのキャッシュメモリで変更されている場合だけに限
定してリードアクセス時間を短縮し、共有バスの性能を
高めるようにしたキャッシュメモリ制御方式を提供する
ことである。
のリードアクセスがプロセッサのキャッシュメモリへの
スヌープ処理を待つ条件を、リード要求されたブロック
がそのキャッシュメモリで変更されている場合だけに限
定してリードアクセス時間を短縮し、共有バスの性能を
高めるようにしたキャッシュメモリ制御方式を提供する
ことである。
【0012】
【課題を解決するための手段】本発明によれば、共有メ
モリと、共有メモリのデータの写しを格納するキャッシ
ュメモリをそれぞれ備える複数のプロセッサと、前記共
有メモリと前記複数のプロセッサとを接続する共有バス
とを有するマルチプロセッサシステムにおけるキャッシ
ュメモリ制御方式において、前記共有バスは、リード要
求に対する応答データがプロセッサにより変更されてい
るか否かを通知する変更信号線と、リード要求に対する
応答データが複数のプロセッサで共有されるか否かを通
知する共有信号線とを備え、前記キャッシュメモリは、
ブロック毎に対応するアドレスの上位アドレスを格納す
るアドレス部と、無効状態、共有状態、排他一致状態、
および排他変更状態の4状態を格納する状態部と、対応
するアドレスのデータの写しを格納するデータ部とを含
み、ライトバック方式で制御されるものであり、前記複
数のプロセッサのそれぞれは、前記キャッシュメモリの
前記アドレス部と前記状態部の写しを格納するコピータ
グと、前記キャッシュメモリの任意のブロックの排他変
更状態への遷移およびそのブロック位置を前記コピータ
グに対して通知する手段と、前記共有バスに接続された
バス監視回路とを備え、前記バス監視回路は、前記共有
バス上のリード要求、ライト要求、および無効化要求を
検出し、前記コピータグを検査し、該コピータグの状態
に応じて変更信号および共有信号を出力し、自らのキャ
ッシュメモリの状態変更が必要な場合にはその指示を
し、さらに自らのキャッシュメモリのブロックが排他変
更状態にある場合にはスヌープの指示をするように動作
するものであることを特徴とするキャッシュメモリ制御
方式が得られる。
モリと、共有メモリのデータの写しを格納するキャッシ
ュメモリをそれぞれ備える複数のプロセッサと、前記共
有メモリと前記複数のプロセッサとを接続する共有バス
とを有するマルチプロセッサシステムにおけるキャッシ
ュメモリ制御方式において、前記共有バスは、リード要
求に対する応答データがプロセッサにより変更されてい
るか否かを通知する変更信号線と、リード要求に対する
応答データが複数のプロセッサで共有されるか否かを通
知する共有信号線とを備え、前記キャッシュメモリは、
ブロック毎に対応するアドレスの上位アドレスを格納す
るアドレス部と、無効状態、共有状態、排他一致状態、
および排他変更状態の4状態を格納する状態部と、対応
するアドレスのデータの写しを格納するデータ部とを含
み、ライトバック方式で制御されるものであり、前記複
数のプロセッサのそれぞれは、前記キャッシュメモリの
前記アドレス部と前記状態部の写しを格納するコピータ
グと、前記キャッシュメモリの任意のブロックの排他変
更状態への遷移およびそのブロック位置を前記コピータ
グに対して通知する手段と、前記共有バスに接続された
バス監視回路とを備え、前記バス監視回路は、前記共有
バス上のリード要求、ライト要求、および無効化要求を
検出し、前記コピータグを検査し、該コピータグの状態
に応じて変更信号および共有信号を出力し、自らのキャ
ッシュメモリの状態変更が必要な場合にはその指示を
し、さらに自らのキャッシュメモリのブロックが排他変
更状態にある場合にはスヌープの指示をするように動作
するものであることを特徴とするキャッシュメモリ制御
方式が得られる。
【0013】本発明によればまた、前記キャッシュメモ
リ制御方式において、さらに、前記共有バスに接続され
た前記共有メモリに対してアクセス可能な入出力制御装
置を有するキャッシュメモリ制御方式が得られる。
リ制御方式において、さらに、前記共有バスに接続され
た前記共有メモリに対してアクセス可能な入出力制御装
置を有するキャッシュメモリ制御方式が得られる。
【0014】
【発明の実施の形態】以下、図面を参照して、本発明の
実施の形態によるキャッシュメモリ制御方式について説
明する。
実施の形態によるキャッシュメモリ制御方式について説
明する。
【0015】図1は、本実施の形態によるキャッシュメ
モリ制御方式が適用されるMPシステムの構成を示すブ
ロック図である。図1を参照して、本キャッシュメモリ
制御方式は、プロセッサ100、プロセッサ200、共
有メモリ300、および入出力制御装置400が共有バ
ス10に接続されたMPシステムである。
モリ制御方式が適用されるMPシステムの構成を示すブ
ロック図である。図1を参照して、本キャッシュメモリ
制御方式は、プロセッサ100、プロセッサ200、共
有メモリ300、および入出力制御装置400が共有バ
ス10に接続されたMPシステムである。
【0016】プロセッサ100は、ライトバック方式で
制御されるキャッシュメモリ110と、キャッシュメモ
リ110に入出力されるアドレス信号線、データ信号
線、制御信号線などを制御するキャッシュメモリ制御回
路120と、キャッシュメモリ110のアドレス部と状
態部の写しを格納するコピータグ130と、コピータグ
130に入出力されるアドレス信号線、データ信号線、
制御信号線などを制御するコピータグ制御回路140
と、演算処理やプログラムの実行制御を行う演算制御回
路150と、演算制御回路150と共有バス10とのイ
ンターフェースを制御するバスインターフェース回路1
60と、共有バス10上のアクセス要求を検出しコピー
タグ制御回路140やバスインターフェース回路160
への指示を行うバス監視回路170とで構成される。キ
ャッシュメモリ110は、格納している各ブロックの上
位アドレスを記憶するアドレス部111と、各ブロック
の状態値を格納する状態部112と、各ブロックのデー
タを記憶するデータ部113とから構成される。ここで
いう上位アドレスとは、アドレスをビット列としてみた
場合に、ブロック内のバイト位置を指定するビット列お
よびキャッシュメモリ内のブロック位置を指定するビッ
ト列を除いた上位ビット列を指す。アドレス部111と
状態部112とを合わせて、タグ部と呼ぶ。コピータグ
130は、キャッシュメモリ110のタグ部の写しを格
納するものであり、キャッシュメモリ110のアドレス
部111の写しを格納するアドレス部131と、キャッ
シュメモリ110の状態部112の写しを格納する状態
部132とから構成される。キャッシュメモリ110の
状態部112とコピータグ130の状態部132とはそ
れぞれ、ブロックごとに4つの状態値を格納することが
できる。4つの状態値とは、無効状態、共有状態、排他
一致状態、および排他変更状態である。キャッシュメモ
リ制御回路120は、キャッシュメモリ110の任意の
ブロックの排他変更状態への遷移とそのブロック位置を
コピータグ130に通知する信号を信号線121を通し
て出力する。
制御されるキャッシュメモリ110と、キャッシュメモ
リ110に入出力されるアドレス信号線、データ信号
線、制御信号線などを制御するキャッシュメモリ制御回
路120と、キャッシュメモリ110のアドレス部と状
態部の写しを格納するコピータグ130と、コピータグ
130に入出力されるアドレス信号線、データ信号線、
制御信号線などを制御するコピータグ制御回路140
と、演算処理やプログラムの実行制御を行う演算制御回
路150と、演算制御回路150と共有バス10とのイ
ンターフェースを制御するバスインターフェース回路1
60と、共有バス10上のアクセス要求を検出しコピー
タグ制御回路140やバスインターフェース回路160
への指示を行うバス監視回路170とで構成される。キ
ャッシュメモリ110は、格納している各ブロックの上
位アドレスを記憶するアドレス部111と、各ブロック
の状態値を格納する状態部112と、各ブロックのデー
タを記憶するデータ部113とから構成される。ここで
いう上位アドレスとは、アドレスをビット列としてみた
場合に、ブロック内のバイト位置を指定するビット列お
よびキャッシュメモリ内のブロック位置を指定するビッ
ト列を除いた上位ビット列を指す。アドレス部111と
状態部112とを合わせて、タグ部と呼ぶ。コピータグ
130は、キャッシュメモリ110のタグ部の写しを格
納するものであり、キャッシュメモリ110のアドレス
部111の写しを格納するアドレス部131と、キャッ
シュメモリ110の状態部112の写しを格納する状態
部132とから構成される。キャッシュメモリ110の
状態部112とコピータグ130の状態部132とはそ
れぞれ、ブロックごとに4つの状態値を格納することが
できる。4つの状態値とは、無効状態、共有状態、排他
一致状態、および排他変更状態である。キャッシュメモ
リ制御回路120は、キャッシュメモリ110の任意の
ブロックの排他変更状態への遷移とそのブロック位置を
コピータグ130に通知する信号を信号線121を通し
て出力する。
【0017】プロセッサ200は、プロセッサ100と
同様に構成されており、プロセッサ200の構成要素も
それぞれプロセッサ100の相当する構成要素と同様で
ある。即ち、プロセッサ200は、アドレス部211、
状態部212、およびデータ部213を備えるキャッシ
ュメモリ210と、キャッシュメモリ制御回路220
と、アドレス部231および状態部232を備えるコピ
ータグ230と、コピータグ制御回路240と、演算制
御回路250と、バスインターフェース回路260と、
バス監視回路270とで構成される。
同様に構成されており、プロセッサ200の構成要素も
それぞれプロセッサ100の相当する構成要素と同様で
ある。即ち、プロセッサ200は、アドレス部211、
状態部212、およびデータ部213を備えるキャッシ
ュメモリ210と、キャッシュメモリ制御回路220
と、アドレス部231および状態部232を備えるコピ
ータグ230と、コピータグ制御回路240と、演算制
御回路250と、バスインターフェース回路260と、
バス監視回路270とで構成される。
【0018】共有メモリ300は、共有バス10に接続
され、プロセッサ100、プロセッサ200、および入
出力制御装置400から共有バス10上に要求されたメ
モリリードアクセスやメモリライトアクセスに対して応
答可能な記憶装置である。
され、プロセッサ100、プロセッサ200、および入
出力制御装置400から共有バス10上に要求されたメ
モリリードアクセスやメモリライトアクセスに対して応
答可能な記憶装置である。
【0019】入出力制御装置400は、特定の入出力装
置、例えば磁気ディスク装置(図示せず)とのインター
フェースを持ち、共有バス10を介して共有メモリ30
0にリード/ライト可能な装置である。
置、例えば磁気ディスク装置(図示せず)とのインター
フェースを持ち、共有バス10を介して共有メモリ30
0にリード/ライト可能な装置である。
【0020】共有バス10は、接続された各装置が相互
にアクセス可能なためのアドレス信号線、データ信号
線、その他リードライトコマンド信号線、バス調停信号
線、タイミング信号線などの制御信号線を含むバスであ
る。共有バス10は、特に、リード要求に対する応答デ
ータがプロセッサにより変更されているか否かを通知す
る変更信号線11と、リード要求に対する応答データが
複数のプロセッサで共有されるか否かを通知する共有信
号線12とを含む。
にアクセス可能なためのアドレス信号線、データ信号
線、その他リードライトコマンド信号線、バス調停信号
線、タイミング信号線などの制御信号線を含むバスであ
る。共有バス10は、特に、リード要求に対する応答デ
ータがプロセッサにより変更されているか否かを通知す
る変更信号線11と、リード要求に対する応答データが
複数のプロセッサで共有されるか否かを通知する共有信
号線12とを含む。
【0021】次に、キャッシュメモリ110、210の
状態部112、212、ならびにコピータグ130、2
30の状態部132、232が格納することのできる4
つの状態値のそれぞれを、順番に説明する。無効状態
は、そのブロックのアドレス部とデータ部とが有効でな
いこと、即ち、そのブロックが共有メモリの写しを持っ
ていないことを表す。共有状態は、そのブロックが共有
メモリの写しを持っており、複数のキャッシュメモリに
写しが存在しうるが、共有メモリのデータと内容とが一
致していることを表す。排他一致状態は、そのブロック
が共有メモリの写しを持っており、1つのキャッシュメ
モリにしか写しが存在せず、共有メモリのデータと内容
とが一致していることを表す。排他変更状態は、そのブ
ロックが共有メモリの写しを持っており1、つのキャッ
シュメモリにしか写しが存在せず、共有メモリのデータ
と内容とが一致していないこと、即ち、変更されている
ことを表す。データの一貫性を維持するためには、全て
のキャッシュメモリ内に、これらの状態値が矛盾なく格
納されなければならない。
状態部112、212、ならびにコピータグ130、2
30の状態部132、232が格納することのできる4
つの状態値のそれぞれを、順番に説明する。無効状態
は、そのブロックのアドレス部とデータ部とが有効でな
いこと、即ち、そのブロックが共有メモリの写しを持っ
ていないことを表す。共有状態は、そのブロックが共有
メモリの写しを持っており、複数のキャッシュメモリに
写しが存在しうるが、共有メモリのデータと内容とが一
致していることを表す。排他一致状態は、そのブロック
が共有メモリの写しを持っており、1つのキャッシュメ
モリにしか写しが存在せず、共有メモリのデータと内容
とが一致していることを表す。排他変更状態は、そのブ
ロックが共有メモリの写しを持っており1、つのキャッ
シュメモリにしか写しが存在せず、共有メモリのデータ
と内容とが一致していないこと、即ち、変更されている
ことを表す。データの一貫性を維持するためには、全て
のキャッシュメモリ内に、これらの状態値が矛盾なく格
納されなければならない。
【0022】以上説明したように、本発明によるキャッ
シュメモリ制御方式において、キャッシュメモリは、ブ
ロック毎に無効状態、共有状態、排他一致状態、および
排他変更状態の4状態を格納できる状態部を有してい
る。このため、そのブロックが、「共有メモリの写しを
持っていない」か、「共有メモリの写しを持っており複
数のキャッシュメモリに写しが存在しうるが共有メモリ
のデータと一致している」か、「共有メモリの写しを持
っており1つのキャッシュメモリにしか存在せず共有メ
モリのデータと一致している」か、あるいは「共有メモ
リの写しを持っており1つのキャッシュメモリにしか存
在せず共有メモリのデータと一致していない」かの判断
が即座に可能であり、データの一貫性維持のために必要
十分な情報を保持している。
シュメモリ制御方式において、キャッシュメモリは、ブ
ロック毎に無効状態、共有状態、排他一致状態、および
排他変更状態の4状態を格納できる状態部を有してい
る。このため、そのブロックが、「共有メモリの写しを
持っていない」か、「共有メモリの写しを持っており複
数のキャッシュメモリに写しが存在しうるが共有メモリ
のデータと一致している」か、「共有メモリの写しを持
っており1つのキャッシュメモリにしか存在せず共有メ
モリのデータと一致している」か、あるいは「共有メモ
リの写しを持っており1つのキャッシュメモリにしか存
在せず共有メモリのデータと一致していない」かの判断
が即座に可能であり、データの一貫性維持のために必要
十分な情報を保持している。
【0023】また、各プロセッサ内に、共有バス上のリ
ード要求、ライト要求、無効化要求を検出するバス監視
回路と、キャッシュメモリのアドレス部と状態部の写し
を格納するコピータグとを有している。このため、共有
バス上のアクセス要求を検出し、共有メモリとキャッシ
ュメモリのデータの一貫性を保つための手段を適宜に講
じることができる。また、検出した要求アドレスのキャ
ッシュメモリ内での状態をキャッシュメモリにアクセス
することなく、コピータグによって検査することができ
るため、直接キャッシュメモリを検査するのとは異な
り、プロセッサの処理性能が下がることがない。
ード要求、ライト要求、無効化要求を検出するバス監視
回路と、キャッシュメモリのアドレス部と状態部の写し
を格納するコピータグとを有している。このため、共有
バス上のアクセス要求を検出し、共有メモリとキャッシ
ュメモリのデータの一貫性を保つための手段を適宜に講
じることができる。また、検出した要求アドレスのキャ
ッシュメモリ内での状態をキャッシュメモリにアクセス
することなく、コピータグによって検査することができ
るため、直接キャッシュメモリを検査するのとは異な
り、プロセッサの処理性能が下がることがない。
【0024】さらに、リード要求に対する応答データが
プロセッサにより変更されているか否かを通知する変更
信号線を有しているため、共有メモリが応答すべきか否
かを一定の短時間で判定でき、共有バス上のアクセス性
能を高めることができる。
プロセッサにより変更されているか否かを通知する変更
信号線を有しているため、共有メモリが応答すべきか否
かを一定の短時間で判定でき、共有バス上のアクセス性
能を高めることができる。
【0025】また、リード要求に対する応答データが複
数のプロセッサで共有されるか否かを通知する共有信号
線を有しているため、リード要求の応答データの状態値
を、リード要求したプロセッサが認識することができ、
応答データの一貫性を維持できる。
数のプロセッサで共有されるか否かを通知する共有信号
線を有しているため、リード要求の応答データの状態値
を、リード要求したプロセッサが認識することができ、
応答データの一貫性を維持できる。
【0026】さらに、各プロセッサのキャッシュメモリ
の任意のブロックの排他変更状態への遷移とそのブロッ
ク位置をコピータグに通知する手段を有しているため、
プロセッサのライトアクセスにより変更されたブロック
をコピータグに反映することができ、コピータグの状態
をキャッシュメモリの状態と常に同一に保つことができ
る。
の任意のブロックの排他変更状態への遷移とそのブロッ
ク位置をコピータグに通知する手段を有しているため、
プロセッサのライトアクセスにより変更されたブロック
をコピータグに反映することができ、コピータグの状態
をキャッシュメモリの状態と常に同一に保つことができ
る。
【0027】また、各プロセッサ内のバス監視回路は、
共有バスのアクセス要求を検出したときにコピータグの
状態に応じて、自分のキャッシュメモリの状態変更が必
要な場合はその指示をし、自分のキャッシュメモリのブ
ロックが排他変更状態にある場合だけスヌープの指示を
するように動作する。このため、キャッシュメモリの状
態変更やスヌープなどのバス要求に起因する干渉の回数
を、必要最小限にすることができ、各プロセッサの処理
性能を最高度にすることができる。
共有バスのアクセス要求を検出したときにコピータグの
状態に応じて、自分のキャッシュメモリの状態変更が必
要な場合はその指示をし、自分のキャッシュメモリのブ
ロックが排他変更状態にある場合だけスヌープの指示を
するように動作する。このため、キャッシュメモリの状
態変更やスヌープなどのバス要求に起因する干渉の回数
を、必要最小限にすることができ、各プロセッサの処理
性能を最高度にすることができる。
【0028】
【実施例】図2は、図1におけるキャッシュメモリ11
0、コピータグ130、キャッシュメモリ210、およ
びコピータグ230の内部を模式的に表現した図であ
る。以下、図1および図2を参照して、本発明によるキ
ャッシュメモリ制御方式の実施例としての各種動作を説
明する。
0、コピータグ130、キャッシュメモリ210、およ
びコピータグ230の内部を模式的に表現した図であ
る。以下、図1および図2を参照して、本発明によるキ
ャッシュメモリ制御方式の実施例としての各種動作を説
明する。
【0029】[実施例1]第1に、プロセッサ100の
演算制御回路150が共有メモリ300のアドレスA番
地に対してリードアクセスを行う場合を考える。
演算制御回路150が共有メモリ300のアドレスA番
地に対してリードアクセスを行う場合を考える。
【0030】このとき、演算制御回路150は、まず、
キャッシュメモリ制御回路120に対してキャッシュメ
モリ110のアドレスA番地に対応するブロック110
Aの読み出し検査を指示する。キャッシュメモリ制御回
路120は、キャッシュメモリ110のブロック110
Aのアドレス部111Aの値と状態部112Aの値を読
み出して検査する。
キャッシュメモリ制御回路120に対してキャッシュメ
モリ110のアドレスA番地に対応するブロック110
Aの読み出し検査を指示する。キャッシュメモリ制御回
路120は、キャッシュメモリ110のブロック110
Aのアドレス部111Aの値と状態部112Aの値を読
み出して検査する。
【0031】アドレス部111Aの値がアドレスAの上
位アドレス(AH)と一致し、状態部112Aの値が無
効状態以外ならば、キャッシュヒットとなり、ブロック
110Aのデータ部113Aに格納されているデータ
が、キャッシュメモリ制御回路120によって演算制御
回路150に渡され、リードアクセスは終了する。
位アドレス(AH)と一致し、状態部112Aの値が無
効状態以外ならば、キャッシュヒットとなり、ブロック
110Aのデータ部113Aに格納されているデータ
が、キャッシュメモリ制御回路120によって演算制御
回路150に渡され、リードアクセスは終了する。
【0032】アドレス部111Aの値が上位アドレスA
Hと一致しないか、または状態部112Aの値が無効状
態ならば、キャッシュリードミスとなる。キャッシュメ
モリ制御回路120からキャッシュリードミスを通知さ
れると、演算制御回路150は、バスインターフェース
回路160に対してアドレスAの共有リード要求を指示
する。共有リード要求とは、共有バス10上のコマンド
であり、応答データが複数のキャッシュメモリで共有さ
れてもよいリード要求を表す。バスインターフェース回
路160は、共有バス10の使用権を要求し、それを獲
得すると、アドレスAに対する共有リード要求を共有バ
ス10上に出力する。このとき、プロセッサ100のバ
ス監視回路170とプロセッサ200のバス監視回路2
70は、アドレスAに対する共有リード要求を検出す
る。
Hと一致しないか、または状態部112Aの値が無効状
態ならば、キャッシュリードミスとなる。キャッシュメ
モリ制御回路120からキャッシュリードミスを通知さ
れると、演算制御回路150は、バスインターフェース
回路160に対してアドレスAの共有リード要求を指示
する。共有リード要求とは、共有バス10上のコマンド
であり、応答データが複数のキャッシュメモリで共有さ
れてもよいリード要求を表す。バスインターフェース回
路160は、共有バス10の使用権を要求し、それを獲
得すると、アドレスAに対する共有リード要求を共有バ
ス10上に出力する。このとき、プロセッサ100のバ
ス監視回路170とプロセッサ200のバス監視回路2
70は、アドレスAに対する共有リード要求を検出す
る。
【0033】バス監視回路170は、自分のバスインタ
ーフェース回路160の共有リード要求であることを認
識し、何もしない。これは、コピータグ130がアドレ
スAに対応する有効なブロックを持っていないことが明
白だからである。
ーフェース回路160の共有リード要求であることを認
識し、何もしない。これは、コピータグ130がアドレ
スAに対応する有効なブロックを持っていないことが明
白だからである。
【0034】バス監視回路270は、自分のバスインタ
ーフェース回路260以外の共有リード要求であること
を認識し、コピータグ制御回路240に対してコピータ
グ230のアドレスAに対応するブロック230Aの読
み出し検査を指示する。コピータグ制御回路240は、
コピータグ230のブロック230Aのアドレス部23
1Aの値と状態部232Aの値を読み出し検査する。こ
のとき、以下の4つのケースがあり得る。
ーフェース回路260以外の共有リード要求であること
を認識し、コピータグ制御回路240に対してコピータ
グ230のアドレスAに対応するブロック230Aの読
み出し検査を指示する。コピータグ制御回路240は、
コピータグ230のブロック230Aのアドレス部23
1Aの値と状態部232Aの値を読み出し検査する。こ
のとき、以下の4つのケースがあり得る。
【0035】(ケース1):アドレス部231Aの値が
上位アドレスAHと一致しないか、または状態部232
Aの値が無効状態の場合(コピータグミス)は、バス監
視回路270は、変更信号線11への変更信号と共有信
号線12への共有信号とを出力しない。変更信号が出力
されないため、アドレスAに対する共有リード要求の応
答は、共有メモリ300の責任となる。共有信号が出力
されないため、プロセッサ100は、応答データの状態
値を排他一致状態と認識する。バス監視回路270はこ
れ以上何の動作もしないので、プロセッサ200内の他
の回路は、何の干渉も受けずに動作することができる。
共有メモリ300は、アドレスAに記憶されていたブロ
ックデータDを、共有バス10上に出力する。
上位アドレスAHと一致しないか、または状態部232
Aの値が無効状態の場合(コピータグミス)は、バス監
視回路270は、変更信号線11への変更信号と共有信
号線12への共有信号とを出力しない。変更信号が出力
されないため、アドレスAに対する共有リード要求の応
答は、共有メモリ300の責任となる。共有信号が出力
されないため、プロセッサ100は、応答データの状態
値を排他一致状態と認識する。バス監視回路270はこ
れ以上何の動作もしないので、プロセッサ200内の他
の回路は、何の干渉も受けずに動作することができる。
共有メモリ300は、アドレスAに記憶されていたブロ
ックデータDを、共有バス10上に出力する。
【0036】(ケース2):アドレス部231Aの値が
上位アドレスAHと一致し、状態部232Aの値が共有
状態の場合は、バス監視回路270は、変更信号線11
を出力せず、共有信号線12を有効に出力する。変更信
号線11が出力されないため、アドレスAに対する共有
リード要求の応答は、共有メモリ300の責任となる。
共有信号線12が有効なため、プロセッサ100は、応
答データの状態値を共有状態と認識する。バス監視回路
270はこれ以上何の動作もしないので、プロセッサ2
00内の他の回路は、何の干渉も受けずに動作すること
ができる。共有メモリ300は、アドレスA番地に記憶
されていたブロックデータDを共有バス10上に出力す
る。
上位アドレスAHと一致し、状態部232Aの値が共有
状態の場合は、バス監視回路270は、変更信号線11
を出力せず、共有信号線12を有効に出力する。変更信
号線11が出力されないため、アドレスAに対する共有
リード要求の応答は、共有メモリ300の責任となる。
共有信号線12が有効なため、プロセッサ100は、応
答データの状態値を共有状態と認識する。バス監視回路
270はこれ以上何の動作もしないので、プロセッサ2
00内の他の回路は、何の干渉も受けずに動作すること
ができる。共有メモリ300は、アドレスA番地に記憶
されていたブロックデータDを共有バス10上に出力す
る。
【0037】(ケース3):アドレス部231Aの値が
上位アドレスAHと一致し、状態部232Aの値が排他
一致状態の場合は、バス監視回路270は、変更信号線
11を出力せず、共有信号線12を有効に出力する。変
更信号線11が出力されないため、アドレスAに対する
共有リード要求の応答は、共有メモリ300の責任とな
る。共有信号線12が有効なため、プロセッサ100
は、応答データの状態値を共有状態と認識する。バス監
視回路270は、バスインターフェース回路260に対
してキャッシュメモリ210のブロック210Aの共有
状態への変更を指示し、コピータグ制御回路240に対
してコピータグ230のブロック230Aの共有状態へ
の変更を指示する。ブロック210Aの共有状態への変
更の指示は、バスインターフェース回路260から演算
制御回路250を通してキャッシュメモリ制御回路22
0に通知される。キャッシュメモリ制御回路220は、
キャッシュメモリ210のブロック210Aの状態部2
12Aの値を共有状態に変更する。コピータグ制御回路
240は、コピータグ230のブロック230Aの状態
部232Aの値を共有状態に変更する。共有メモリ30
0は、アドレスAに記憶されていたブロックデータDを
共有バス10上に出力する。
上位アドレスAHと一致し、状態部232Aの値が排他
一致状態の場合は、バス監視回路270は、変更信号線
11を出力せず、共有信号線12を有効に出力する。変
更信号線11が出力されないため、アドレスAに対する
共有リード要求の応答は、共有メモリ300の責任とな
る。共有信号線12が有効なため、プロセッサ100
は、応答データの状態値を共有状態と認識する。バス監
視回路270は、バスインターフェース回路260に対
してキャッシュメモリ210のブロック210Aの共有
状態への変更を指示し、コピータグ制御回路240に対
してコピータグ230のブロック230Aの共有状態へ
の変更を指示する。ブロック210Aの共有状態への変
更の指示は、バスインターフェース回路260から演算
制御回路250を通してキャッシュメモリ制御回路22
0に通知される。キャッシュメモリ制御回路220は、
キャッシュメモリ210のブロック210Aの状態部2
12Aの値を共有状態に変更する。コピータグ制御回路
240は、コピータグ230のブロック230Aの状態
部232Aの値を共有状態に変更する。共有メモリ30
0は、アドレスAに記憶されていたブロックデータDを
共有バス10上に出力する。
【0038】(ケース4):アドレス部231Aの値が
上位アドレスAHと一致し、状態部232Aの値が排他
変更状態の場合は、バス監視回路270は、変更信号線
11と共有信号線12とをともに有効に出力する。変更
信号線11が有効なため、アドレスAに対する共有リー
ド要求の応答はプロセッサ200の責任となり、共有メ
モリ300は、待機状態となる。共有信号線12が有効
なため、プロセッサ100は、応答データの状態値を共
有状態と認識する。バス監視回路270は、バスインタ
ーフェース回路260に対してキャッシュメモリ210
のブロック210Aのデータの読み出しと共有状態への
変更を含むスヌープ要求を指示すると共に、コピータグ
制御回路240に対してコピータグ230のブロック2
30Aの共有状態への変更を指示する。バスインターフ
ェース回路260は、ブロック210Aのスヌープを演
算制御回路250に通知する。演算制御回路250は、
ブロック210Aのスヌープをキャッシュメモリ制御回
路220に指示する。キャッシュメモリ制御回路220
は、キャッシュメモリ210のブロック210Aのデー
タ部213AからブロックデータDを読み出して演算制
御回路250に渡すと共に、ブロック210Aの状態部
212Aを共有状態に変更する。演算制御回路250
は、ブロックデータDをバスインターフェース回路26
0に渡す。バスインターフェース回路260は、アドレ
スAに対する共有リード要求の応答としてブロックデー
タDを共有バス10上に出力する。共有メモリ300
は、共有バス上に出力されたブロックデータDをアドレ
スAに格納し、これによって、キャッシュメモリ210
のブロック210Aの内容は、共有メモリ300の内容
と一致したことになる。コピータグ制御回路240は、
コピータグ230のブロック230Aの状態部232A
の値を共有状態に変更し、これによって、キャッシュメ
モリ210のブロック210Aの状態とコピータグ23
0のブロック230Aの状態とは一致する。
上位アドレスAHと一致し、状態部232Aの値が排他
変更状態の場合は、バス監視回路270は、変更信号線
11と共有信号線12とをともに有効に出力する。変更
信号線11が有効なため、アドレスAに対する共有リー
ド要求の応答はプロセッサ200の責任となり、共有メ
モリ300は、待機状態となる。共有信号線12が有効
なため、プロセッサ100は、応答データの状態値を共
有状態と認識する。バス監視回路270は、バスインタ
ーフェース回路260に対してキャッシュメモリ210
のブロック210Aのデータの読み出しと共有状態への
変更を含むスヌープ要求を指示すると共に、コピータグ
制御回路240に対してコピータグ230のブロック2
30Aの共有状態への変更を指示する。バスインターフ
ェース回路260は、ブロック210Aのスヌープを演
算制御回路250に通知する。演算制御回路250は、
ブロック210Aのスヌープをキャッシュメモリ制御回
路220に指示する。キャッシュメモリ制御回路220
は、キャッシュメモリ210のブロック210Aのデー
タ部213AからブロックデータDを読み出して演算制
御回路250に渡すと共に、ブロック210Aの状態部
212Aを共有状態に変更する。演算制御回路250
は、ブロックデータDをバスインターフェース回路26
0に渡す。バスインターフェース回路260は、アドレ
スAに対する共有リード要求の応答としてブロックデー
タDを共有バス10上に出力する。共有メモリ300
は、共有バス上に出力されたブロックデータDをアドレ
スAに格納し、これによって、キャッシュメモリ210
のブロック210Aの内容は、共有メモリ300の内容
と一致したことになる。コピータグ制御回路240は、
コピータグ230のブロック230Aの状態部232A
の値を共有状態に変更し、これによって、キャッシュメ
モリ210のブロック210Aの状態とコピータグ23
0のブロック230Aの状態とは一致する。
【0039】ケース1〜4全ての場合に、この時点で、
共有バス10上にアドレスAに対する共有リード要求の
応答データDが出力されており、プロセッサ100、即
ち、バスインターフェース回路160とバス監視回路1
70とは、応答データDの状態値を認識している。
共有バス10上にアドレスAに対する共有リード要求の
応答データDが出力されており、プロセッサ100、即
ち、バスインターフェース回路160とバス監視回路1
70とは、応答データDの状態値を認識している。
【0040】共有バス10からブロックデータDを受け
取ると、バスインターフェース回路160は、ブロック
データDとその状態値を演算制御回路150に渡す。演
算制御回路150は、ブロックデータD中のリードデー
タを読み込むと共に、キャッシュメモリ制御回路120
に対してキャッシュメモリ110のブロック110Aに
ブロックデータDとその状態値を格納することを指示す
る。キャッシュメモリ制御回路120は、キャッシュメ
モリ110のブロック110Aのアドレス部111Aに
上位アドレスAHを格納し、状態部112Aに受け取っ
た状態値を格納し、データ部113Aにブロックデータ
Dを格納する。
取ると、バスインターフェース回路160は、ブロック
データDとその状態値を演算制御回路150に渡す。演
算制御回路150は、ブロックデータD中のリードデー
タを読み込むと共に、キャッシュメモリ制御回路120
に対してキャッシュメモリ110のブロック110Aに
ブロックデータDとその状態値を格納することを指示す
る。キャッシュメモリ制御回路120は、キャッシュメ
モリ110のブロック110Aのアドレス部111Aに
上位アドレスAHを格納し、状態部112Aに受け取っ
た状態値を格納し、データ部113Aにブロックデータ
Dを格納する。
【0041】バス監視回路170は、ブロックデータD
がバスインターフェース回路160によって受け取られ
ると同時に、コピータグ制御回路140に対してコピー
タグ130の更新を指示する。コピータグ制御回路14
0は、コピータグ130のブロック130Aのアドレス
部131Aに上位アドレスAHを格納し、状態部132
AにブロックデータDの状態値を格納する。これによっ
て、コピータグ130のブロック130Aの内容は、キ
ャッシュメモリ110のブロック110Aのタグ部の内
容と一致することになる。これで、キャッシュリードミ
スの処理が終了する。
がバスインターフェース回路160によって受け取られ
ると同時に、コピータグ制御回路140に対してコピー
タグ130の更新を指示する。コピータグ制御回路14
0は、コピータグ130のブロック130Aのアドレス
部131Aに上位アドレスAHを格納し、状態部132
AにブロックデータDの状態値を格納する。これによっ
て、コピータグ130のブロック130Aの内容は、キ
ャッシュメモリ110のブロック110Aのタグ部の内
容と一致することになる。これで、キャッシュリードミ
スの処理が終了する。
【0042】以上説明したように、実施例1では、プロ
セッサから共有メモリへのリードアクセスの一連の動作
において、キャッシュメモリ110とキャッシュメモリ
210と共有メモリ300との間のデータの一貫性が保
証される。また、キャッシュメモリ110とコピータグ
130、キャッシュメモリ210とコピータグ230
は、互いの内容が一致するように制御される。さらに、
共有メモリ300が共有リード要求に対する応答をせ
ず、スヌープ処理のために待機させられるのは、ケース
4の場合、即ち、ブロック230Aが排他変更状態の場
合だけである。
セッサから共有メモリへのリードアクセスの一連の動作
において、キャッシュメモリ110とキャッシュメモリ
210と共有メモリ300との間のデータの一貫性が保
証される。また、キャッシュメモリ110とコピータグ
130、キャッシュメモリ210とコピータグ230
は、互いの内容が一致するように制御される。さらに、
共有メモリ300が共有リード要求に対する応答をせ
ず、スヌープ処理のために待機させられるのは、ケース
4の場合、即ち、ブロック230Aが排他変更状態の場
合だけである。
【0043】[実施例2]第2に、プロセッサ100の
演算制御回路150が共有メモリ300のアドレスB番
地に対してライトアクセスを行う場合を考える。
演算制御回路150が共有メモリ300のアドレスB番
地に対してライトアクセスを行う場合を考える。
【0044】このとき、演算制御回路150は、まずキ
ャッシュメモリ制御回路120に対してキャッシュメモ
リ110のアドレスB番地に対応するブロック110B
の読み出し検査を指示する。キャッシュメモリ制御回路
120は、キャッシュメモリ110のブロック110B
のアドレス部111Bの値と状態部112Bの値を読み
出し検査する。
ャッシュメモリ制御回路120に対してキャッシュメモ
リ110のアドレスB番地に対応するブロック110B
の読み出し検査を指示する。キャッシュメモリ制御回路
120は、キャッシュメモリ110のブロック110B
のアドレス部111Bの値と状態部112Bの値を読み
出し検査する。
【0045】アドレス部111Bの値がアドレスBの上
位アドレス(BH)と一致し、状態部112Bの値が排
他変更状態ならば、キャッシュメモリ制御回路120
は、ブロック110Bのデータ部113Bに、演算制御
回路150から与えられたライトデータを書き込み、ラ
イトアクセスは終了する。
位アドレス(BH)と一致し、状態部112Bの値が排
他変更状態ならば、キャッシュメモリ制御回路120
は、ブロック110Bのデータ部113Bに、演算制御
回路150から与えられたライトデータを書き込み、ラ
イトアクセスは終了する。
【0046】アドレス部111Bの値が上位アドレスB
Hと一致し、状態部112Bの値が排他一致状態なら
ば、キャッシュメモリ制御回路120は、ブロック11
0Bのデータ部113Bに、演算制御回路150から与
えられたライトデータを書き込むと共に、ブロック11
0Bの状態部112Bの値を排他変更状態に変更する。
さらに、ブロック110Bの状態部112Bが排他変更
状態に変更されたことを、信号線121を使ってコピー
タグ制御回路140に通知する。コピータグ制御回路1
40は、コピータグ130のブロック130Bの状態部
132Bの値を排他変更状態に変更する。これによっ
て、コピータグ130のブロック130Bの内容は、キ
ャッシュメモリ110のブロック110Bのタグ部の内
容と一致し、ライトアクセスは終了する。
Hと一致し、状態部112Bの値が排他一致状態なら
ば、キャッシュメモリ制御回路120は、ブロック11
0Bのデータ部113Bに、演算制御回路150から与
えられたライトデータを書き込むと共に、ブロック11
0Bの状態部112Bの値を排他変更状態に変更する。
さらに、ブロック110Bの状態部112Bが排他変更
状態に変更されたことを、信号線121を使ってコピー
タグ制御回路140に通知する。コピータグ制御回路1
40は、コピータグ130のブロック130Bの状態部
132Bの値を排他変更状態に変更する。これによっ
て、コピータグ130のブロック130Bの内容は、キ
ャッシュメモリ110のブロック110Bのタグ部の内
容と一致し、ライトアクセスは終了する。
【0047】アドレス部111Bの値が上位アドレスB
Hと一致し、状態部112Bの値が共有状態ならば、キ
ャッシュメモリ制御回路120は、ブロック110Bの
データ部113Bに、演算制御回路150から与えられ
たライトデータを書き込むと共に、ブロック110Bの
状態部112Bの値を排他変更状態に変更し、演算制御
部150に共有ライトヒットが発生したことを通知す
る。さらに、ブロック110Bの状態部112Bが排他
変更状態に変更されたことを、信号線121を使ってコ
ピータグ制御回路140に通知する。コピータグ制御回
路140は、コピータグ130のブロック130Bの状
態部132Bの値を、排他変更状態に変更する。共有ラ
イトヒットが発生したことを通知された演算制御部15
0は、バスインターフェース回路160に対してアドレ
スBの無効化要求を指示する。バスインターフェース回
路160は、共有バス10の使用権を要求し、それを獲
得すると、アドレスBに対する無効化要求を共有バス1
0上に出力する。このとき、プロセッサ100のバス監
視回路170とプロセッサ200のバス監視回路270
は、アドレスBに対する無効化要求を検出する。
Hと一致し、状態部112Bの値が共有状態ならば、キ
ャッシュメモリ制御回路120は、ブロック110Bの
データ部113Bに、演算制御回路150から与えられ
たライトデータを書き込むと共に、ブロック110Bの
状態部112Bの値を排他変更状態に変更し、演算制御
部150に共有ライトヒットが発生したことを通知す
る。さらに、ブロック110Bの状態部112Bが排他
変更状態に変更されたことを、信号線121を使ってコ
ピータグ制御回路140に通知する。コピータグ制御回
路140は、コピータグ130のブロック130Bの状
態部132Bの値を、排他変更状態に変更する。共有ラ
イトヒットが発生したことを通知された演算制御部15
0は、バスインターフェース回路160に対してアドレ
スBの無効化要求を指示する。バスインターフェース回
路160は、共有バス10の使用権を要求し、それを獲
得すると、アドレスBに対する無効化要求を共有バス1
0上に出力する。このとき、プロセッサ100のバス監
視回路170とプロセッサ200のバス監視回路270
は、アドレスBに対する無効化要求を検出する。
【0048】バス監視回路170は、自分のバスインタ
ーフェース回路160の無効化要求であることを認識
し、何もしない。
ーフェース回路160の無効化要求であることを認識
し、何もしない。
【0049】バス監視回路270は、自分のバスインタ
ーフェース回路260以外の無効化要求であることを認
識し、コピータグ制御回路240に対してコピータグ2
30のアドレスBに対応するブロック230Bの読み出
し検査を指示する。コピータグ制御回路240は、コピ
ータグ230のブロック230Bのアドレス部231B
の値と状態部232Bの値を読み出し検査する。
ーフェース回路260以外の無効化要求であることを認
識し、コピータグ制御回路240に対してコピータグ2
30のアドレスBに対応するブロック230Bの読み出
し検査を指示する。コピータグ制御回路240は、コピ
ータグ230のブロック230Bのアドレス部231B
の値と状態部232Bの値を読み出し検査する。
【0050】アドレス部231Bの値が上位アドレスB
Hと一致しないか、または状態部232Bの値が無効状
態の場合は、バス監視回路270は何もせず、無効化は
終了する。
Hと一致しないか、または状態部232Bの値が無効状
態の場合は、バス監視回路270は何もせず、無効化は
終了する。
【0051】アドレス部231Bの値が上位アドレスB
Hと一致し、状態部232Bの値が無効状態以外の場合
は、バス監視回路270は、バスインターフェース回路
260に対してキャッシュメモリ210のブロック21
0Bの無効状態への変更を指示すると共に、コピータグ
制御回路240に対してコピータグ230のブロック2
30Bの無効状態への変更を指示する。ブロック210
Bの無効状態への変更の指示は、バスインターフェース
回路260から演算制御回路250を通してキャッシュ
メモリ制御回路220に通知される。キャッシュメモリ
制御回路220は、キャッシュメモリ210のブロック
210Bの状態部212Bの値を無効状態に変更する。
コピータグ制御回路240は、コピータグ230のブロ
ック230Bの状態部232Bの値を無効状態に変更す
る。これで、無効化は終了する。この無効化により、ア
ドレスBの共有メモリの写しを持つのはキャッシュメモ
リ110だけになるので、データの一貫性が保たれる。
無効化の終了により、共有ライトヒット時のライトアク
セスは終了する。
Hと一致し、状態部232Bの値が無効状態以外の場合
は、バス監視回路270は、バスインターフェース回路
260に対してキャッシュメモリ210のブロック21
0Bの無効状態への変更を指示すると共に、コピータグ
制御回路240に対してコピータグ230のブロック2
30Bの無効状態への変更を指示する。ブロック210
Bの無効状態への変更の指示は、バスインターフェース
回路260から演算制御回路250を通してキャッシュ
メモリ制御回路220に通知される。キャッシュメモリ
制御回路220は、キャッシュメモリ210のブロック
210Bの状態部212Bの値を無効状態に変更する。
コピータグ制御回路240は、コピータグ230のブロ
ック230Bの状態部232Bの値を無効状態に変更す
る。これで、無効化は終了する。この無効化により、ア
ドレスBの共有メモリの写しを持つのはキャッシュメモ
リ110だけになるので、データの一貫性が保たれる。
無効化の終了により、共有ライトヒット時のライトアク
セスは終了する。
【0052】アドレス部111Bの値が上位アドレスB
Hと一致しないか、または状態部112Bの値が無効状
態ならば、キャッシュライトミスとなる。キャッシュメ
モリ制御回路120からキャッシュライトミスを通知さ
れると、演算制御回路150は、バスインターフェース
回路160に対してアドレスBの変更リード要求を指示
する。変更リード要求とは、共有バス10上のコマンド
であり、リード後のデータの変更を目的としたリード要
求を表す。バスインターフェース回路160は、共有バ
ス10の使用権を要求し、それを獲得すると、アドレス
Bに対する変更リード要求を共有バス10上に出力す
る。このとき、プロセッサ100のバス監視回路170
とプロセッサ200のバス監視回路270は、アドレス
Bに対する変更リード要求を検出する。
Hと一致しないか、または状態部112Bの値が無効状
態ならば、キャッシュライトミスとなる。キャッシュメ
モリ制御回路120からキャッシュライトミスを通知さ
れると、演算制御回路150は、バスインターフェース
回路160に対してアドレスBの変更リード要求を指示
する。変更リード要求とは、共有バス10上のコマンド
であり、リード後のデータの変更を目的としたリード要
求を表す。バスインターフェース回路160は、共有バ
ス10の使用権を要求し、それを獲得すると、アドレス
Bに対する変更リード要求を共有バス10上に出力す
る。このとき、プロセッサ100のバス監視回路170
とプロセッサ200のバス監視回路270は、アドレス
Bに対する変更リード要求を検出する。
【0053】バス監視回路170は、自分のバスインタ
ーフェース回路160の変更リード要求であることを認
識し、何もしない。
ーフェース回路160の変更リード要求であることを認
識し、何もしない。
【0054】バス監視回路270は、自分のバスインタ
ーフェース回路260以外の変更リード要求であること
を認識し、コピータグ制御回路240に対してコピータ
グ230のアドレスB番地に対応するブロック230B
の読み出し検査を指示する。コピータグ制御回路240
は、コピータグ230のブロック230Bのアドレス部
231Bの値と状態部232Bの値を読み出し検査す
る。このとき、以下に示す3つのケース(ケース5〜
7)があり得る。
ーフェース回路260以外の変更リード要求であること
を認識し、コピータグ制御回路240に対してコピータ
グ230のアドレスB番地に対応するブロック230B
の読み出し検査を指示する。コピータグ制御回路240
は、コピータグ230のブロック230Bのアドレス部
231Bの値と状態部232Bの値を読み出し検査す
る。このとき、以下に示す3つのケース(ケース5〜
7)があり得る。
【0055】(ケース5):アドレス部231Bの値が
上位アドレスBHと一致しないか、または状態部232
Bの値が無効状態の場合は、バス監視回路270は変更
信号線11と共有信号線12とを出力しない。変更信号
線11が出力されないため、アドレスBに対する変更リ
ード要求の応答は、共有メモリ300の責任となる。共
有信号線12が出力されないため、プロセッサ100
は、応答データの状態値を排他変更状態と認識する。バ
ス監視回路270はこれ以上何の動作もしないので、プ
ロセッサ200内の他の回路は、何の干渉も受けずに動
作することができる。共有メモリ300は、アドレスB
に記憶されていたブロックデータEを共有バス10上に
出力する。
上位アドレスBHと一致しないか、または状態部232
Bの値が無効状態の場合は、バス監視回路270は変更
信号線11と共有信号線12とを出力しない。変更信号
線11が出力されないため、アドレスBに対する変更リ
ード要求の応答は、共有メモリ300の責任となる。共
有信号線12が出力されないため、プロセッサ100
は、応答データの状態値を排他変更状態と認識する。バ
ス監視回路270はこれ以上何の動作もしないので、プ
ロセッサ200内の他の回路は、何の干渉も受けずに動
作することができる。共有メモリ300は、アドレスB
に記憶されていたブロックデータEを共有バス10上に
出力する。
【0056】(ケース6):アドレス部231Bの値が
上位アドレスBHと一致し、状態部232Bの値が共有
状態または排他一致状態の場合は、バス監視回路270
は、変更信号線11と共有信号線12とを出力しない。
変更信号線11が出力されないため、アドレスBに対す
る変更リード要求の応答は共有メモリ300の責任とな
る。共有信号線12が出力されないため、プロセッサ1
00は、応答データの状態値を排他変更状態と認識す
る。バス監視回路270は、バスインターフェース回路
260に対してキャッシュメモリ210のブロック21
0Bの無効状態への変更を指示すると共に、コピータグ
制御回路240に対してコピータグ230のブロック2
30Bの無効状態への変更を指示する。ブロック210
Bの無効状態への変更の指示は、バスインターフェース
回路260から演算制御回路250を通してキャッシュ
メモリ制御回路220に通知される。キャッシュメモリ
制御回路220は、キャッシュメモリ210のブロック
210Bの状態部212Bの値を無効状態に変更する。
コピータグ制御回路240は、コピータグ230のブロ
ック230Bの状態部232Bの値を無効状態に変更す
る。共有メモリ300は、アドレスB番地に記憶されて
いたブロックデータEを共有バス10上に出力する。
上位アドレスBHと一致し、状態部232Bの値が共有
状態または排他一致状態の場合は、バス監視回路270
は、変更信号線11と共有信号線12とを出力しない。
変更信号線11が出力されないため、アドレスBに対す
る変更リード要求の応答は共有メモリ300の責任とな
る。共有信号線12が出力されないため、プロセッサ1
00は、応答データの状態値を排他変更状態と認識す
る。バス監視回路270は、バスインターフェース回路
260に対してキャッシュメモリ210のブロック21
0Bの無効状態への変更を指示すると共に、コピータグ
制御回路240に対してコピータグ230のブロック2
30Bの無効状態への変更を指示する。ブロック210
Bの無効状態への変更の指示は、バスインターフェース
回路260から演算制御回路250を通してキャッシュ
メモリ制御回路220に通知される。キャッシュメモリ
制御回路220は、キャッシュメモリ210のブロック
210Bの状態部212Bの値を無効状態に変更する。
コピータグ制御回路240は、コピータグ230のブロ
ック230Bの状態部232Bの値を無効状態に変更す
る。共有メモリ300は、アドレスB番地に記憶されて
いたブロックデータEを共有バス10上に出力する。
【0057】(ケース7):アドレス部231Bの値が
上位アドレスBHと一致し、状態部232Bの値が排他
変更状態の場合は、バス監視回路270は、変更信号を
有効に出力し、共有信号は出力しない。変更信号線11
が有効なため、アドレスBに対する変更リード要求の応
答は、プロセッサ200の責任となり、共有メモリ30
0は待機状態となる。共有信号が出力されないため、プ
ロセッサ100は応答データの状態値を排他変更状態と
認識する。バス監視回路270は、バスインターフェー
ス回路260に対してキャッシュメモリ210のブロッ
ク210Bのデータの読み出しと無効状態への変更を含
むスヌープ要求を指示すると共に、コピータグ制御回路
240に対してコピータグ230のブロック230Bの
無効状態への変更を指示する。バスインターフェース回
路260は、ブロック210Bのスヌープを演算制御回
路250に通知する。演算制御回路250は、ブロック
210Bのスヌープをキャッシュメモリ制御回路220
に指示する。キャッシュメモリ制御回路220は、キャ
ッシュメモリ210のブロック210Bのデータ部21
3BからブロックデータEを読み出して演算制御回路2
50に渡すと共に、ブロック210Bの状態部212B
を無効状態に変更する。演算制御回路250は、ブロッ
クデータEをバスインターフェース回路260に渡す。
バスインターフェース回路260は、アドレスBに対す
る変更リード要求の応答としてブロックデータEを共有
バス10上に出力する。共有メモリ300は、共有バス
上に出力されたブロックデータEをアドレスBに格納す
る。コピータグ制御回路240は、コピータグ230の
ブロック230Bの状態部232Bの値を無効状態に変
更し、これによって、キャッシュメモリ210のブロッ
ク210Bの状態とコピータグ230のブロック230
Bの状態とが一致する。
上位アドレスBHと一致し、状態部232Bの値が排他
変更状態の場合は、バス監視回路270は、変更信号を
有効に出力し、共有信号は出力しない。変更信号線11
が有効なため、アドレスBに対する変更リード要求の応
答は、プロセッサ200の責任となり、共有メモリ30
0は待機状態となる。共有信号が出力されないため、プ
ロセッサ100は応答データの状態値を排他変更状態と
認識する。バス監視回路270は、バスインターフェー
ス回路260に対してキャッシュメモリ210のブロッ
ク210Bのデータの読み出しと無効状態への変更を含
むスヌープ要求を指示すると共に、コピータグ制御回路
240に対してコピータグ230のブロック230Bの
無効状態への変更を指示する。バスインターフェース回
路260は、ブロック210Bのスヌープを演算制御回
路250に通知する。演算制御回路250は、ブロック
210Bのスヌープをキャッシュメモリ制御回路220
に指示する。キャッシュメモリ制御回路220は、キャ
ッシュメモリ210のブロック210Bのデータ部21
3BからブロックデータEを読み出して演算制御回路2
50に渡すと共に、ブロック210Bの状態部212B
を無効状態に変更する。演算制御回路250は、ブロッ
クデータEをバスインターフェース回路260に渡す。
バスインターフェース回路260は、アドレスBに対す
る変更リード要求の応答としてブロックデータEを共有
バス10上に出力する。共有メモリ300は、共有バス
上に出力されたブロックデータEをアドレスBに格納す
る。コピータグ制御回路240は、コピータグ230の
ブロック230Bの状態部232Bの値を無効状態に変
更し、これによって、キャッシュメモリ210のブロッ
ク210Bの状態とコピータグ230のブロック230
Bの状態とが一致する。
【0058】ケース5〜7全ての場合に、この時点で、
共有バス10上にアドレスBに対する変更リード要求の
応答データEが出力されており、プロセッサ100は、
応答データDの状態値を排他変更状態と認識している。
共有バス10上にアドレスBに対する変更リード要求の
応答データEが出力されており、プロセッサ100は、
応答データDの状態値を排他変更状態と認識している。
【0059】共有バス10からブロックデータEを受け
取ると、バスインターフェース回路160は、ブロック
データEとその状態値を演算制御回路150に渡す。演
算制御回路150は、キャッシュメモリ制御回路120
に対してキャッシュメモリ110のブロック110Bに
ブロックデータEとその状態値の格納を指示する。キャ
ッシュメモリ制御回路120は、キャッシュメモリ11
0のブロック110Bのアドレス部111Bに上位アド
レスBHを格納し、状態部112Bに排他変更状態を格
納し、データ部113BにブロックデータEを格納す
る。
取ると、バスインターフェース回路160は、ブロック
データEとその状態値を演算制御回路150に渡す。演
算制御回路150は、キャッシュメモリ制御回路120
に対してキャッシュメモリ110のブロック110Bに
ブロックデータEとその状態値の格納を指示する。キャ
ッシュメモリ制御回路120は、キャッシュメモリ11
0のブロック110Bのアドレス部111Bに上位アド
レスBHを格納し、状態部112Bに排他変更状態を格
納し、データ部113BにブロックデータEを格納す
る。
【0060】バス監視回路170は、ブロックデータE
がバスインターフェース回路160によって受け取られ
ると同時に、コピータグ制御回路140に対してコピー
タグ130の更新を指示する。コピータグ制御回路14
0は、コピータグ130のブロック130Bのアドレス
部131Bに上位アドレスBHを格納し、状態部132
Bに排他変更状態を格納する。これによって、コピータ
グ130のブロック130Bの内容は、キャッシュメモ
リ110のブロック110Bのタグ部の内容と一致する
ことになる。演算制御回路150は、中断されていたラ
イトアクセスを再開し、キャッシュメモリ制御回路12
0に対して、アドレスBに対応するキャッシュメモリ1
10のブロック110Bへのライトデータの書き込みを
指示する。キャッシュメモリ制御回路120は、ブロッ
ク110Bのデータ部113Bに、演算制御回路150
から与えられたライトデータを書き込む。これで、キャ
ッシュライトミスの処理が終了する。
がバスインターフェース回路160によって受け取られ
ると同時に、コピータグ制御回路140に対してコピー
タグ130の更新を指示する。コピータグ制御回路14
0は、コピータグ130のブロック130Bのアドレス
部131Bに上位アドレスBHを格納し、状態部132
Bに排他変更状態を格納する。これによって、コピータ
グ130のブロック130Bの内容は、キャッシュメモ
リ110のブロック110Bのタグ部の内容と一致する
ことになる。演算制御回路150は、中断されていたラ
イトアクセスを再開し、キャッシュメモリ制御回路12
0に対して、アドレスBに対応するキャッシュメモリ1
10のブロック110Bへのライトデータの書き込みを
指示する。キャッシュメモリ制御回路120は、ブロッ
ク110Bのデータ部113Bに、演算制御回路150
から与えられたライトデータを書き込む。これで、キャ
ッシュライトミスの処理が終了する。
【0061】以上説明したように、実施例2では、プロ
セッサから共有メモリへのライトアクセスの一連の動作
において、キャッシュメモリ110、キャッシュメモリ
210、および共有メモリ300間のデータの一貫性が
保証されるように制御される。また、キャッシュメモリ
110とコピータグ130、キャッシュメモリ210と
コピータグ230は、互いの内容が一致するように制御
される。さらに、共有メモリ300が変更リード要求に
対する応答をせず、スヌープ処理のために待機させられ
るのは、ケース7の場合、即ち、ブロック230Bが排
他変更状態の場合だけである。
セッサから共有メモリへのライトアクセスの一連の動作
において、キャッシュメモリ110、キャッシュメモリ
210、および共有メモリ300間のデータの一貫性が
保証されるように制御される。また、キャッシュメモリ
110とコピータグ130、キャッシュメモリ210と
コピータグ230は、互いの内容が一致するように制御
される。さらに、共有メモリ300が変更リード要求に
対する応答をせず、スヌープ処理のために待機させられ
るのは、ケース7の場合、即ち、ブロック230Bが排
他変更状態の場合だけである。
【0062】[実施例3]第3に、プロセッサ100か
ら共有メモリ300に対するライト要求が共有バス10
上に出力される場合を考える。
ら共有メモリ300に対するライト要求が共有バス10
上に出力される場合を考える。
【0063】プロセッサ100のキャッシュメモリ11
0はライトバック方式で制御されているので、このよう
なライト要求が発生するのは、キャッシュミスに伴うキ
ャッシュメモリ110のブロックの書き換えによって排
他変更状態のブロックがライトバックされるときだけで
ある。排他変更状態のブロックは1つのキャッシュメモ
リにしか存在しないから、キャッシュメモリ210は、
そのブロックを持っていない。したがって、バス監視回
路270はラ、イトバック要求を検出しても何の処置も
とる必要はない。また、キャッシュメモリ110のライ
トバックされたブロックは、ブロックの書き換えの原因
となったキャッシュミスの終了と同時に更新されるの
で、コピータグ130の対応するブロックもそのときに
更新される。したがって、バス監視回路170も、ライ
トバック要求検出時に何の処置もとる必要はない。原理
的に、プロセッサから共有バス10上に出力される共有
メモリ300へのライト要求は全て、キャッシュミスに
伴うブロックの置き換えによる排他変更状態のブロック
のライトバック要求である。したがって、実施例3のM
Pシステムでは、バス監視回路170および270は、
共有バス10上のプロセッサからのライトバック要求を
検出しても、何もしなくてもデータの一貫性は維持され
る。共有メモリ300は、ライト要求に対応して出力さ
れたデータを指定されたアドレスに格納する。
0はライトバック方式で制御されているので、このよう
なライト要求が発生するのは、キャッシュミスに伴うキ
ャッシュメモリ110のブロックの書き換えによって排
他変更状態のブロックがライトバックされるときだけで
ある。排他変更状態のブロックは1つのキャッシュメモ
リにしか存在しないから、キャッシュメモリ210は、
そのブロックを持っていない。したがって、バス監視回
路270はラ、イトバック要求を検出しても何の処置も
とる必要はない。また、キャッシュメモリ110のライ
トバックされたブロックは、ブロックの書き換えの原因
となったキャッシュミスの終了と同時に更新されるの
で、コピータグ130の対応するブロックもそのときに
更新される。したがって、バス監視回路170も、ライ
トバック要求検出時に何の処置もとる必要はない。原理
的に、プロセッサから共有バス10上に出力される共有
メモリ300へのライト要求は全て、キャッシュミスに
伴うブロックの置き換えによる排他変更状態のブロック
のライトバック要求である。したがって、実施例3のM
Pシステムでは、バス監視回路170および270は、
共有バス10上のプロセッサからのライトバック要求を
検出しても、何もしなくてもデータの一貫性は維持され
る。共有メモリ300は、ライト要求に対応して出力さ
れたデータを指定されたアドレスに格納する。
【0064】[実施例4]第4に、入出力制御装置40
0が共有メモリ300のアドレスB番地に対してリード
アクセスを行う場合を考える。
0が共有メモリ300のアドレスB番地に対してリード
アクセスを行う場合を考える。
【0065】入出力制御装置400は、共有バス10上
にアドレスBに対する共有リード要求を出力する。この
とき、プロセッサ100のバス監視回路170とプロセ
ッサ200のバス監視回路270は、アドレスBに対す
る共有リード要求を検出する。
にアドレスBに対する共有リード要求を出力する。この
とき、プロセッサ100のバス監視回路170とプロセ
ッサ200のバス監視回路270は、アドレスBに対す
る共有リード要求を検出する。
【0066】バス監視回路170は、自分のバスインタ
ーフェース回路160以外の共有リード要求であること
を認識し、コピータグ制御回路140に対してコピータ
グ130のアドレスB番地に対応するブロック130B
の読み出し検査を指示する。コピータグ制御回路140
は、コピータグ130のブロック130Bのアドレス部
131Bの値と状態部132Bの値を読み出し検査す
る。アドレス部131Bの値は上位アドレスBHと一致
し、状態部132Bの値は排他変更状態であるから、バ
ス監視回路170は、変更信号と共有信号をともに有効
に出力する。
ーフェース回路160以外の共有リード要求であること
を認識し、コピータグ制御回路140に対してコピータ
グ130のアドレスB番地に対応するブロック130B
の読み出し検査を指示する。コピータグ制御回路140
は、コピータグ130のブロック130Bのアドレス部
131Bの値と状態部132Bの値を読み出し検査す
る。アドレス部131Bの値は上位アドレスBHと一致
し、状態部132Bの値は排他変更状態であるから、バ
ス監視回路170は、変更信号と共有信号をともに有効
に出力する。
【0067】バス監視回路270は、自分のバスインタ
ーフェース回路260以外の共有リード要求であること
を認識し、コピータグ制御回路240に対してコピータ
グ230のアドレスB番地に対応するブロック230B
の読み出し検査を指示する。コピータグ制御回路240
は、コピータグ230のブロック230Bのアドレス部
231Bの値と状態部232Bの値を読み出し検査す
る。アドレス部231Bの値が上位アドレスBHと一致
しないか、または状態部232Bの値が無効状態なの
で、バス監視回路270は、変更信号と共有信号を出力
しない。バス監視回路270はこれ以上何の動作もしな
いので、プロセッサ200内の他の回路は、何の干渉も
受けずに動作することができる。
ーフェース回路260以外の共有リード要求であること
を認識し、コピータグ制御回路240に対してコピータ
グ230のアドレスB番地に対応するブロック230B
の読み出し検査を指示する。コピータグ制御回路240
は、コピータグ230のブロック230Bのアドレス部
231Bの値と状態部232Bの値を読み出し検査す
る。アドレス部231Bの値が上位アドレスBHと一致
しないか、または状態部232Bの値が無効状態なの
で、バス監視回路270は、変更信号と共有信号を出力
しない。バス監視回路270はこれ以上何の動作もしな
いので、プロセッサ200内の他の回路は、何の干渉も
受けずに動作することができる。
【0068】変更信号線11がバス監視回路170によ
り有効なため、アドレスBに対する共有リード要求の応
答はプロセッサ100の責任となり、共有メモリ300
は待機状態となる。バス監視回路170は、バスインタ
ーフェース回路160に対してキャッシュメモリ110
のブロック110Bの読み出しと共有状態への変更を含
むスヌープ要求を指示すると共に、コピータグ制御回路
140に対してコピータグ130のブロック130Bの
共有状態への変更を指示する。バスインターフェース回
路160は、ブロック110Bのスヌープを演算制御回
路150に通知する。演算制御回路150は、ブロック
110Bのスヌープをキャッシュメモリ制御回路120
に指示する。キャッシュメモリ制御回路120は、キャ
ッシュメモリ110のブロック110Bのデータ部11
3BからブロックデータEを読み出して演算制御回路1
50に渡すと共に、ブロック110Bの状態部112B
を共有状態に変更する。演算制御回路150は、ブロッ
クデータEをバスインターフェース回路160に渡す。
バスインターフェース回路160は、アドレスBに対す
る共有リード要求の応答として、ブロックデータEを共
有バス10上に出力する。共有メモリ300は、共有バ
ス上に出力されたブロックデータEをアドレスB番地に
格納し、これによって、キャッシュメモリ110のブロ
ック110Bの内容は、共有メモリ300の内容と一致
したことになる。コピータグ制御回路140は、コピー
タグ130のブロック130Bの状態部132Bの値を
共有状態に変更し、これによって、キャッシュメモリ1
10のブロック110Bの状態とコピータグ130のブ
ロック130Bの状態とは一致する。共有バス10上に
アドレスBに対する共有リード要求の応答としてブロッ
クデータEが出力されると、入出力装置400はデータ
Eを受け取り、リードアクセスは終了する。
り有効なため、アドレスBに対する共有リード要求の応
答はプロセッサ100の責任となり、共有メモリ300
は待機状態となる。バス監視回路170は、バスインタ
ーフェース回路160に対してキャッシュメモリ110
のブロック110Bの読み出しと共有状態への変更を含
むスヌープ要求を指示すると共に、コピータグ制御回路
140に対してコピータグ130のブロック130Bの
共有状態への変更を指示する。バスインターフェース回
路160は、ブロック110Bのスヌープを演算制御回
路150に通知する。演算制御回路150は、ブロック
110Bのスヌープをキャッシュメモリ制御回路120
に指示する。キャッシュメモリ制御回路120は、キャ
ッシュメモリ110のブロック110Bのデータ部11
3BからブロックデータEを読み出して演算制御回路1
50に渡すと共に、ブロック110Bの状態部112B
を共有状態に変更する。演算制御回路150は、ブロッ
クデータEをバスインターフェース回路160に渡す。
バスインターフェース回路160は、アドレスBに対す
る共有リード要求の応答として、ブロックデータEを共
有バス10上に出力する。共有メモリ300は、共有バ
ス上に出力されたブロックデータEをアドレスB番地に
格納し、これによって、キャッシュメモリ110のブロ
ック110Bの内容は、共有メモリ300の内容と一致
したことになる。コピータグ制御回路140は、コピー
タグ130のブロック130Bの状態部132Bの値を
共有状態に変更し、これによって、キャッシュメモリ1
10のブロック110Bの状態とコピータグ130のブ
ロック130Bの状態とは一致する。共有バス10上に
アドレスBに対する共有リード要求の応答としてブロッ
クデータEが出力されると、入出力装置400はデータ
Eを受け取り、リードアクセスは終了する。
【0069】以上説明したように、実施例4では、入出
力制御装置から共有メモリへのリードアクセスの一連の
動作において、キャッシュメモリ110、キャッシュメ
モリ210、および共有メモリ300間のデータの一貫
性が保証されるように制御される。また、キャッシュメ
モリ110とコピータグ130は、互いの内容が一致す
るように制御される。
力制御装置から共有メモリへのリードアクセスの一連の
動作において、キャッシュメモリ110、キャッシュメ
モリ210、および共有メモリ300間のデータの一貫
性が保証されるように制御される。また、キャッシュメ
モリ110とコピータグ130は、互いの内容が一致す
るように制御される。
【0070】[実施例5]第5に、入出力制御装置40
0が共有メモリ300のアドレスB番地に対してライト
アクセスを行う場合を考える。
0が共有メモリ300のアドレスB番地に対してライト
アクセスを行う場合を考える。
【0071】入出力制御装置400は、共有バス10上
にアドレスBに対する変更ライト要求を出力する。変更
ライト要求とは、共有バス10上のコマンドであり、共
有メモリ300のデータをキャッシュメモリとは無関係
に変更するライト要求を表す。このとき、プロセッサ1
00のバス監視回路170とプロセッサ200のバス監
視回路270は、アドレスBに対する変更ライト要求を
検出する。
にアドレスBに対する変更ライト要求を出力する。変更
ライト要求とは、共有バス10上のコマンドであり、共
有メモリ300のデータをキャッシュメモリとは無関係
に変更するライト要求を表す。このとき、プロセッサ1
00のバス監視回路170とプロセッサ200のバス監
視回路270は、アドレスBに対する変更ライト要求を
検出する。
【0072】バス監視回路170は、自分のバスインタ
ーフェース回路160以外の変更ライト要求であること
を認識し、コピータグ制御回路140に対してコピータ
グ130のアドレスB番地に対応するブロック130B
の読み出し検査を指示する。コピータグ制御回路140
は、コピータグ130のブロック130Bのアドレス部
131Bの値と状態部132Bの値を読み出し検査す
る。アドレス部131Bの値は上位アドレスBHと一致
し、状態部132Bの値は共有状態であるから、バス監
視回路170は、バスインターフェース回路160に対
してキャッシュメモリ110のブロック110Bの無効
状態への変更を指示すると共に、コピータグ制御回路1
40に対してコピータグ130のブロック130Bの無
効状態への変更を指示する。ブロック110Bの無効状
態への変更の指示は、バスインターフェース回路160
から演算制御回路150を通してキャッシュメモリ制御
回路120に通知される。キャッシュメモリ制御回路1
20は、キャッシュメモリ110のブロック110Bの
状態部112Bの値を無効状態に変更する。コピータグ
制御回路140は、コピータグ130のブロック130
Bの状態部132Bの値を無効状態に変更する。
ーフェース回路160以外の変更ライト要求であること
を認識し、コピータグ制御回路140に対してコピータ
グ130のアドレスB番地に対応するブロック130B
の読み出し検査を指示する。コピータグ制御回路140
は、コピータグ130のブロック130Bのアドレス部
131Bの値と状態部132Bの値を読み出し検査す
る。アドレス部131Bの値は上位アドレスBHと一致
し、状態部132Bの値は共有状態であるから、バス監
視回路170は、バスインターフェース回路160に対
してキャッシュメモリ110のブロック110Bの無効
状態への変更を指示すると共に、コピータグ制御回路1
40に対してコピータグ130のブロック130Bの無
効状態への変更を指示する。ブロック110Bの無効状
態への変更の指示は、バスインターフェース回路160
から演算制御回路150を通してキャッシュメモリ制御
回路120に通知される。キャッシュメモリ制御回路1
20は、キャッシュメモリ110のブロック110Bの
状態部112Bの値を無効状態に変更する。コピータグ
制御回路140は、コピータグ130のブロック130
Bの状態部132Bの値を無効状態に変更する。
【0073】バス監視回路270は、自分のバスインタ
ーフェース回路260以外の変更ライト要求であること
を認識し、コピータグ制御回路240に対してコピータ
グ230のアドレスB番地に対応するブロック230B
の読み出し検査を指示する。コピータグ制御回路240
は、コピータグ230のブロック230Bのアドレス部
231Bの値と状態部232Bの値を読み出し検査す
る。アドレス部231Bの値が上位アドレスBHと一致
しないか、または状態部232Bの値が無効状態なの
で、バス監視回路270は、これ以上何の動作もしな
い。プロセッサ200内の他の回路は、何の干渉も受け
ずに動作することができる。
ーフェース回路260以外の変更ライト要求であること
を認識し、コピータグ制御回路240に対してコピータ
グ230のアドレスB番地に対応するブロック230B
の読み出し検査を指示する。コピータグ制御回路240
は、コピータグ230のブロック230Bのアドレス部
231Bの値と状態部232Bの値を読み出し検査す
る。アドレス部231Bの値が上位アドレスBHと一致
しないか、または状態部232Bの値が無効状態なの
で、バス監視回路270は、これ以上何の動作もしな
い。プロセッサ200内の他の回路は、何の干渉も受け
ずに動作することができる。
【0074】共有メモリ300は、変更ライト要求に対
応して出力されたデータを指定されたアドレスB番地に
格納する。これで、ライトアクセスは終了する。
応して出力されたデータを指定されたアドレスB番地に
格納する。これで、ライトアクセスは終了する。
【0075】以上説明したように、実施例5では、入出
力制御装置から共有メモリへのライトアクセスの一連の
動作において、キャッシュメモリ110、キャッシュメ
モリ210、および共有メモリ300間のデータの一貫
性が保証されるように制御される。
力制御装置から共有メモリへのライトアクセスの一連の
動作において、キャッシュメモリ110、キャッシュメ
モリ210、および共有メモリ300間のデータの一貫
性が保証されるように制御される。
【0076】以上説明した実施例1〜5によるキャッシ
ュメモリ制御システムはそれぞれ、本発明によるキャッ
シュメモリ制御システムの一例である。プロセッサの数
や入出力制御装置の数は任意に増やすことができ、その
場合でも、同様の機能と効果を得ることができる。
ュメモリ制御システムはそれぞれ、本発明によるキャッ
シュメモリ制御システムの一例である。プロセッサの数
や入出力制御装置の数は任意に増やすことができ、その
場合でも、同様の機能と効果を得ることができる。
【0077】
【発明の効果】本発明によるキャッシュメモリ制御方式
は、以下の効果を奏する。
は、以下の効果を奏する。
【0078】第1の効果は、ライトバック方式のキャッ
シュメモリを持つ複数のプロセッサを有するMPシステ
ムにおいて、データの一貫性を保証するスヌープ方式を
実現できるということである。
シュメモリを持つ複数のプロセッサを有するMPシステ
ムにおいて、データの一貫性を保証するスヌープ方式を
実現できるということである。
【0079】その理由は、キャッシュメモリがブロック
ごとに無効状態、共有状態、排他一致状態、および排他
変更状態の4状態を格納できる状態部を備えていると共
に、各プロセッサ内に共有バス上のリード要求、ライト
要求、無効化要求を検出するバス監視回路を有している
からである。
ごとに無効状態、共有状態、排他一致状態、および排他
変更状態の4状態を格納できる状態部を備えていると共
に、各プロセッサ内に共有バス上のリード要求、ライト
要求、無効化要求を検出するバス監視回路を有している
からである。
【0080】第2の効果は、共有バスのアクセス要求に
対応したキャッシュメモリへの干渉を減らし、各プロセ
ッサの処理性能を高めることができることである。
対応したキャッシュメモリへの干渉を減らし、各プロセ
ッサの処理性能を高めることができることである。
【0081】その理由は、各プロセッサ内にキャッシュ
メモリのアドレス部および状態部の写しを格納するコピ
ータグを有し、共有バス上のアクセス要求を検出したと
きにコピータグを検査することによってキャッシュメモ
リにアクセスすることなくキャッシュメモリ内での要求
アドレスのブロックの状態を検査することができるから
である。加えて、キャッシュメモリへアクセスする条件
を、そのキャッシュメモリ内にアクセス要求されたブロ
ックが存在している場合だけに限定しているからであ
る。
メモリのアドレス部および状態部の写しを格納するコピ
ータグを有し、共有バス上のアクセス要求を検出したと
きにコピータグを検査することによってキャッシュメモ
リにアクセスすることなくキャッシュメモリ内での要求
アドレスのブロックの状態を検査することができるから
である。加えて、キャッシュメモリへアクセスする条件
を、そのキャッシュメモリ内にアクセス要求されたブロ
ックが存在している場合だけに限定しているからであ
る。
【0082】第3の効果は、共有メモリへのリードアク
セス時間を短縮して共有バスの性能を高めることができ
ることである。
セス時間を短縮して共有バスの性能を高めることができ
ることである。
【0083】その理由は、共有バス上にリード要求に対
する応答データがプロセッサによって変更されているか
否かを通知する変更信号線を備えているため、共有メモ
リが応答すべきか否かを短時間で判定できるからであ
る。加えて、共有メモリへのリードアクセスがキャッシ
ュメモリへのスヌープ処理を待つ条件を、リード要求さ
れたブロックがあるキャッシュメモリにて変更されてい
る場合に限るように動作するからである。
する応答データがプロセッサによって変更されているか
否かを通知する変更信号線を備えているため、共有メモ
リが応答すべきか否かを短時間で判定できるからであ
る。加えて、共有メモリへのリードアクセスがキャッシ
ュメモリへのスヌープ処理を待つ条件を、リード要求さ
れたブロックがあるキャッシュメモリにて変更されてい
る場合に限るように動作するからである。
【図1】本発明の実施の形態によるキャッシュメモリ制
御方式が適用されるMPシステムの構成を示すブロック
図である。
御方式が適用されるMPシステムの構成を示すブロック
図である。
【図2】図1に示すMPシステムにおける複数のキャッ
シュメモリおよびコピータグの各内部を模式的に表現し
た図である。
シュメモリおよびコピータグの各内部を模式的に表現し
た図である。
10 共有バス 11 変更信号線 12 共有信号線 100、200 プロセッサ 110、210 キャッシュメモリ 111、211 アドレス部 112、212 状態部 113、213 データ部 120、220 キャッシュメモリ制御回路 130、230 コピータグ 131、231 アドレス部 132、232 状態部 140、240 コピータグ制御回路 150、250 演算制御回路 160、260 バスインターフェース回路 170、270 バス監視回路 300 共有メモリ 400 入出力制御装置
Claims (2)
- 【請求項1】 共有メモリと、共有メモリのデータの写
しを格納するキャッシュメモリをそれぞれ備える複数の
プロセッサと、前記共有メモリと前記複数のプロセッサ
とを接続する共有バスとを有するマルチプロセッサシス
テムにおけるキャッシュメモリ制御方式において、前記
共有バスは、リード要求に対する応答データがプロセッ
サにより変更されているか否かを通知する変更信号線
と、リード要求に対する応答データが複数のプロセッサ
で共有されるか否かを通知する共有信号線とを備え、前
記キャッシュメモリは、ブロック毎に対応するアドレス
の上位アドレスを格納するアドレス部と、無効状態、共
有状態、排他一致状態、および排他変更状態の4状態を
格納する状態部と、対応するアドレスのデータの写しを
格納するデータ部とを含み、ライトバック方式で制御さ
れるものであり、前記複数のプロセッサのそれぞれは、
前記キャッシュメモリの前記アドレス部と前記状態部の
写しを格納するコピータグと、前記キャッシュメモリの
任意のブロックの排他変更状態への遷移およびそのブロ
ック位置を前記コピータグに対して通知する手段と、前
記共有バスに接続されたバス監視回路とを備え、前記バ
ス監視回路は、前記共有バス上のリード要求、ライト要
求、および無効化要求を検出し、前記コピータグを検査
し、該コピータグの状態に応じて変更信号および共有信
号を出力し、自らのキャッシュメモリの状態変更が必要
な場合にはその指示をし、さらに自らのキャッシュメモ
リのブロックが排他変更状態にある場合にはスヌープの
指示をするように動作するものであることを特徴とする
キャッシュメモリ制御方式。 - 【請求項2】 請求項1のキャッシュメモリ制御方式に
おいて、さらに、前記共有バスに接続された前記共有メ
モリに対してアクセス可能な入出力制御装置を有するキ
ャッシュメモリ制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9024933A JPH10222423A (ja) | 1997-02-07 | 1997-02-07 | キャッシュメモリ制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9024933A JPH10222423A (ja) | 1997-02-07 | 1997-02-07 | キャッシュメモリ制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10222423A true JPH10222423A (ja) | 1998-08-21 |
Family
ID=12151893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9024933A Pending JPH10222423A (ja) | 1997-02-07 | 1997-02-07 | キャッシュメモリ制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10222423A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613885B2 (en) | 2006-01-04 | 2009-11-03 | Hitachi, Ltd. | Cache coherency control method, chipset, and multi-processor system |
JP2012074036A (ja) * | 2010-09-28 | 2012-04-12 | Arm Ltd | ライトバック順序付けによるコヒーレンス制御 |
US8935485B2 (en) | 2011-08-08 | 2015-01-13 | Arm Limited | Snoop filter and non-inclusive shared cache memory |
US10346307B2 (en) | 2016-09-28 | 2019-07-09 | Samsung Electronics Co., Ltd. | Power efficient snoop filter design for mobile platform |
-
1997
- 1997-02-07 JP JP9024933A patent/JPH10222423A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613885B2 (en) | 2006-01-04 | 2009-11-03 | Hitachi, Ltd. | Cache coherency control method, chipset, and multi-processor system |
JP2012074036A (ja) * | 2010-09-28 | 2012-04-12 | Arm Ltd | ライトバック順序付けによるコヒーレンス制御 |
US8935485B2 (en) | 2011-08-08 | 2015-01-13 | Arm Limited | Snoop filter and non-inclusive shared cache memory |
US10346307B2 (en) | 2016-09-28 | 2019-07-09 | Samsung Electronics Co., Ltd. | Power efficient snoop filter design for mobile platform |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6148416A (en) | Memory update history storing apparatus and method for restoring contents of memory | |
KR960009659B1 (ko) | 멀티프로세서 시스템의 스누프회로 | |
US5555398A (en) | Write back cache coherency module for systems with a write through cache supporting bus | |
EP0735480B1 (en) | Cache coherent computer system that minimizes invalidation and copyback operations | |
US5249284A (en) | Method and system for maintaining data coherency between main and cache memories | |
JP3086779B2 (ja) | メモリ状態復元装置 | |
JPH08185359A (ja) | メモリサブシステム | |
JPH09223118A (ja) | スヌープキャッシュメモリ制御システム | |
JP2003316753A (ja) | マルチプロセッサ装置 | |
JP3236287B2 (ja) | マルチプロセッサシステム | |
WO1999035578A1 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
JP2708943B2 (ja) | キャッシュメモリ制御装置 | |
US5737568A (en) | Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory | |
JPH05324468A (ja) | 階層化キャッシュメモリ | |
WO1997004392A1 (en) | Shared cache memory device | |
JPH04230549A (ja) | 多重レベル・キャッシュ | |
US6594732B1 (en) | Computer system with memory system in which cache memory is kept clean | |
JPH10222423A (ja) | キャッシュメモリ制御方式 | |
JPH10105461A (ja) | 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法 | |
JPH0744459A (ja) | キャッシュ制御方法およびキャッシュ制御装置 | |
JPH0529943B2 (ja) | ||
JPH03230238A (ja) | キャッシュメモリ制御方式 | |
JPH10154134A (ja) | メモリ更新履歴保存装置およびメモリ更新履歴保存方法 | |
KR0145454B1 (ko) | 분산된 공유 메모리를 갖는 다중 프로세서 | |
JPH0535697A (ja) | マルチプロセツサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19991124 |