JPH0962576A - 情報処理装置及びその制御方法 - Google Patents

情報処理装置及びその制御方法

Info

Publication number
JPH0962576A
JPH0962576A JP7211797A JP21179795A JPH0962576A JP H0962576 A JPH0962576 A JP H0962576A JP 7211797 A JP7211797 A JP 7211797A JP 21179795 A JP21179795 A JP 21179795A JP H0962576 A JPH0962576 A JP H0962576A
Authority
JP
Japan
Prior art keywords
processor
memory
cache
cache memory
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.)
Withdrawn
Application number
JP7211797A
Other languages
English (en)
Inventor
Kazumasa Hamaguchi
一正 濱口
Shuichi Nakamura
秀一 中村
Toshiyuki Fukui
俊之 福井
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP7211797A priority Critical patent/JPH0962576A/ja
Priority to US08/699,943 priority patent/US6021472A/en
Publication of JPH0962576A publication Critical patent/JPH0962576A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 並列計算機システムにおける複数キャッシュ
・メモリ中に存在するコピー間の一貫性をとるための動
作は、トランザクション毎に行われるものであった。 【解決手段】 プロセッサ10からキャッシュ・メモリ
11に対して発行されたアクセスが同期アクセスである
場合、キャッシュ・メモリ11内のDIRTYブロック
・シークを開始する。キャッシュ・メモリ11は、シス
テム・バス上にバス・トランザクションを発行し、キャ
ッシュ・メモリ11内のDIRTYブロックのwrit
e backを、主記憶20に対して行う。なお一方、
上記のようにして一方のキャッシュ・メモリ11から発
行されたwrite backのバス・トランザクショ
ンは、他方のキャッシュ・メモリ16よりスヌープされ
る。以上の様に、緩いメモリ・コンシステンシ・モデル
を採る並列計算機システムにおいて不要な一貫性保持動
作が省かれ、メモリ・アクセス時の遅延を小さくでき
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のプロセッサ
及び複数のキャッシュ・メモリを有する情報処理装置及
びその制御方法に関するものである。
【0002】
【従来の技術】従来の並列計算機システムにおいては、
プロセッサから発せられる主記憶に対するアクセス要求
に高速に応じるため、及び相互結合網のトラフィックを
減じるために、各プロセッサにキャッシュ・メモリを付
随させることが多い。各プロセッサから発行されるメモ
リ・アクセスはキャッシュ・メモリを介して行われ、キ
ャッシュ・メモリ中にはそれらメモリ・アクセス対象の
データ・ブロックのコピーが置かれることになる。並列
計算機システムにおいては、複数あるキャッシュ・メモ
リ中に同一データ・ブロックのコピーが各々存在する状
況が生じ得るが、それらコピー間の一貫性を保証するた
めに、従来様々な方法が考案あるいは実現されている。
【0003】プロセッサ間やプロセッサ・主記憶間を相
互に接続する結合網に、全てのトランザクションが監視
可能であるバスのようなものを用いた並列計算機システ
ムにおいては、スヌープ方式が一般的である。スヌープ
方式は、キャッシュ・メモリが結合網上に発行される全
トランザクションを監視し、トランザクション対象のデ
ータ・ブロックのコピーが自キャッシュ・メモリ中に存
在していた場合は、必要な一貫性保持動作を施すもので
ある。
【0004】また、プロセッサ間やプロセッサ・主記憶
間を相互に接続する結合網に、全てのトランザクション
を監視することが困難なものを用いた並列計算機システ
ムにおいては、ディレクトリ方式が用いられる。ディレ
クトリ方式は、データ・ブロック単位、あるいはそれに
類する単位毎に、いずれのキャッシュ・メモリ中にその
コピーが存在するかというキャッシング情報を、ディレ
クトリと呼ばれる記憶装置に格納・管理しておき、プロ
セッサからのトランザクション発行時にはディレクトリ
から得られるキャッシング情報をもとにして、トランザ
クション対象データ・ブロックのコピーを有するキャッ
シュ・メモリにトランザクションの発生を通知し、コピ
ー間の一貫性保持を図るものである。
【0005】
【発明が解決しようとしている課題】従来、並列計算機
システムにおける複数キャッシュ・メモリ中に存在する
コピー間の一貫性をとるための動作は、上述の通りトラ
ンザクション毎に行われるものであった。
【0006】しかしこれは、メモリに対するアクセス・
レイテンシを抑えるために様々考案あるいは実現されて
いる緩いメモリ・コンシステンシ・モデルにはそぐわな
いものである。一般に緩いメモリ・コンシステンシ・モ
デルでは、処理の過程に同期ポイントを定め、処理が同
期ポイントに達した時点で、それまでに発行したメモリ
・トランザクションをシステム中に反映させることを義
務付けている。このことは、同期ポイント以前には各メ
モリ・トランザクション結果を反映させる必要がないこ
とを意味する。即ち、緩いメモリ・コンシステンシ・モ
デルを採る並列計算機システムにおいて従来のキャッシ
ュ一貫性保持手法を用いた場合、その時点では不要な一
貫性保持動作がトランザクション毎に入ることとなり、
そのオーバヘッドは、緩いメモリ・コンシステンシ・モ
デルの目的に反し、不用意にメモリ・アクセス・レイテ
ンシを嵩ませていると言える。
【0007】
【課題を解決するための手段】本発明は、上記課題を解
決するために、複数のプロセッサと、各プロセッサに付
随する複数のキャッシュ・メモリと、記憶装置と、及び
キャッシュ・メモリと記憶装置間を相互に接続する結合
網から成る情報処理装置であって、各プロセッサの処理
が予め定めた段階に達した時点でのみ、付随するキャッ
シュ・メモリ中に存在するデータ・ブロックのシステム
における一貫性保持を図ることを特徴とする情報処理装
置を提供する。本発明は、上記課題を解決するために、
好ましくは、プロセッサの処理が予め定めた段階に達し
たことを、プロセッサが付随するキャッシュ・メモリに
知らせる手段として、プロセッサが発行した要求の種別
によって判別する機能をキャッシュ・メモリ中に設ける
ことを特徴とする。本発明は、上記課題を解決するため
に、好ましくは、プロセッサの処理が予め定めた段階に
達したことを、プロセッサが付随するキャッシュ・メモ
リに知らせる手段として、プロセッサが発行したアドレ
スによって判別する機能をキャッシュ・メモリ中に設け
ることを特徴とする。本発明は、上記課題を解決するた
めに、好ましくは、上記情報処理装置は緩いメモリ・コ
ンシステンシ・モデルに基づいた動作を行うことを特徴
とする。
【0008】本発明は、上記課題を解決するために、複
数のプロセッサと、各プロセッサに付随する複数のキャ
ッシュ・メモリと、記憶装置と、及びキャッシュ・メモ
リと記憶装置間を相互に接続する結合網から成る情報処
理装置であって、プロセッサからキャッシュ・メモリに
対するアクセスが同期アクセスか否か判断する判断手段
と、該判断手段により同期アクセスであると判断された
場合、キャッシュ・メモリ内の特定のブロックを検索す
る検索手段と、該検索手段により検索された特定のブロ
ックについて前記記憶装置に対して書き戻しを行う手段
とを有することを特徴とする情報処理装置を提供する。
【0009】本発明は、上記課題を解決するために、複
数のプロセッサと、各プロセッサに付随する複数のキャ
ッシュ・メモリと、記憶装置と、及びキャッシュ・メモ
リと記憶装置間を相互に接続する結合網から成る情報処
理装置の制御方法であって、各プロセッサの処理が予め
定めた段階に達した時点でのみ、付随するキャッシュ・
メモリ中に存在するデータ・ブロックのシステムにおけ
る一貫性保持を図ることを特徴とする情報処理装置の制
御方法を提供する。
【0010】
【発明の実施の形態】以下、添付図面を参照して本発明
の好適な実施の形態を詳細に説明する。
【0011】〈マルチプロセッサシステムの構成〉図1
は本発明を実現するためのシステムの第1のマルチプロ
セッサシステムの構成図である。10、15はプロセッ
サであり、各プロセッサはプロセッサバス(12〜1
4、17〜19)を介してキャッシュ・メモリ11、1
6に接続される。プロセッサバスは、コントロール信号
線12、17、アドレス信号線13、18、及びデータ
信号線14、19から成る。また、キャッシュ・メモリ
11、16はシステムバス(21、22、23)を介し
て主記憶20、及びキャッシュ同志の間を接続され、主
記憶20に反映させたり等すると共に、バス上を流れる
アドレス情報等をスヌープしてキャッシュのメインテナ
ンスを実施する。システムバスは、コントロール信号線
21、アドレス信号線22、及びデータ信号線23から
成る。バスアービタ24はシステム・バス(21、2
2、23)の利用権を調停するためのものである。
【0012】図2は、図1におけるキャッシュ・メモリ
11、16の構成図である。
【0013】キャッシュの本体は、キャッシュ全体を制
御する制御論理100、タグメモリ101、データ・メ
モリ102、比較器103、バッファ104、プロセッ
サ・バスとのコントロール信号インタフェース105、
プロセッサ・バスとのアドレス信号インタフェース10
6、プロセッサ・バスとのデータ信号インタフェース1
07、システム・バスとのコントロール信号インタフェ
ース108、システム・バスとのアドレス信号インタフ
ェース109、システム・バスとのデータ信号インタフ
ェース110からなる。
【0014】タグ・メモリ101は、図3に示すように
キャッシュ・メモリ11、16中のデータ・ブロックの
タグとなるアドレス、及びその状態フラグを格納するメ
モリである。データ・メモリ102は、データ・ブロッ
クのデータそのものを格納するメモリである。比較器1
03はヒット或はミスをチェックする。
【0015】104はタグ・メモリから或はタグ・メモ
リへのリード或はライト時に用いるバッファである。1
05はプロセッサ・バスとのコントロール信号インタフ
ェースである。106はプロセッサ・バスとのアドレス
信号インタフェースである。107はプロセッサ・バス
とのデータ信号インタフェースである。108はシステ
ム・バスとのコントロール信号インタフェースである。
109はシステム・バスとのアドレス信号インタフェー
スである。110はシステム・バスとのデータ信号イン
タフェースである。
【0016】111はプロセッサ・バスのコントロール
信号インタフェース105と制御論理100間の信号線
である。112はシステム・バスのコントロール信号イ
ンタフェース108と制御論理100間の信号線であ
る。113、114、及び115はアドレス信号線であ
り、各々図4に示すタグ・フィールド(ビット0 から
ビット14の15ビット)、セット・フィールド(ビッ
ト15からビット26の12ビット)、及びブロック内
フィールド(ビット27からビット31の5ビット)が
出力される。116はデータ信号線である。117は制
御論理100とプロセッサ・バスのアドレス信号インタ
フェース106間の制御信号線であり、118は制御論
理100とプロセッサ・バスのデータ信号インタフェー
ス107間の制御信号線である。119は制御論理10
0が発するデータ・メモリ102のOE(:Outpu
t Enable)信号であり、120は同様にW
E(:Write Enable)信号である。121
は制御論理100が発するタグ・メモリ101のOE信
号であり、122は同様にWE信号である。123は制
御論理100が発するバッファ104の方向制御信号で
ある。124は比較器103の比較結果を制御論理10
0に通知する信号線である。125は制御論理100と
システム・バスのデータ信号インタフェース110間の
制御信号線であり、126は制御論理100とシステム
・バスのアドレス信号インタフェース109間の制御信
号線である。127はタグ・メモリ101に格納される
エントリの状態が流れる信号線である。
【0017】なお、本実施形態におけるキャッシュ・メ
モリの構成は、4kエントリ、データ・ブロック・サイ
ズ32Bのダイレクト・マップ方式を採っているが、こ
の構成は本発明を制限するものではない。
【0018】本実施形態では、図1、図2に示すような
構成のシステムにおいて、緩いメモリ・コンシステンシ
・モデルに適合したキャッシュメモリの制御方法に基づ
いて、キャッシュ・メモリの一貫性が保証される例を示
す。
【0019】以下、本装置の動作を説明する。
【0020】以下に、プロセッサ10からのアクセスを
例にとって実施形態を説明するがこれに限定されるもの
ではない。プロセッサ15からのアクセスが発行される
場合も同様に処理される。
【0021】図5に、プロセッサ10からのアクセスに
起因した動作の流れ図を示す。
【0022】ステップS1で、プロセッサ10がアクセ
スを発行すると、プロセッサ・バスのコントロール信号
インタフェース105は出力されたコントロール信号を
デコードし、制御論理100に対して、プロセッサ10
がアクセスを発行したことを通知し、ステップS2で、
同期アクセスか否か判断し、プロセッサがアクセスを発
行したこと、及びアクセス属性(リード/ライト、アク
セス・サイズ、同期アクセスであるか否か等)を制御論
理100に通知する。なお、本実施形態のプロセッサ1
0は同期アクセスとして定義されたアクセスを発行する
ことができ、アクセス種を示すコントロール信号をデコ
ードすることによって、発行されたアクセスが同期アク
セスであるか否かが判断できる。
【0023】なお、アクセスが同期アクセスでなかった
場合は、ステップS3〜ステップS6で示すようなキャ
ッシュ・メモリとしての一般的な動作を行う。
【0024】ステップS3では、以下に説明する処理に
よりキャッシュ・アクセスが開始される。
【0025】制御論理100は制御信号線117を用い
て、プロセッサ・バスのアドレス信号インタフェース1
06にアドレスのキャッシュ・メモリ11内への出力を
指示する。プロセッサ・バスのアドレス信号インタフェ
ース106がアドレスを出力。アドレス信号線113に
タグ・フィールドを、アドレス線114にセット・フィ
ールドを、アドレス線115にブロック内フィールドを
出力する。制御論理100はタグ・メモリ101のOE
信号122をアサートする。プロセッサ10が発行した
アクセスがリード・アクセスであった場合は、データ・
メモリ102のOE信号119も同時にアサートする。
タグ・メモリ101はセット・フィールドで指されたエ
ントリの内容を出力する。
【0026】次に、ステップS4では、以下の処理によ
りキャッシュにヒットしたか否かが判断される。
【0027】出力されたデータは、比較器103でタグ
・フィールドと比較され、比較の結果(一致/不一致)
が制御論理100に信号線124で伝えられる。伝えら
れた比較結果が一致であった場合はキャッシュ・ヒット
であり、ステップS5で、アクセスに対するサービスが
開始される。また、不一致であった場合はキャッシュ・
ミスであり、ステップS6で、キャッシュ・ミス処理が
行われる。
【0028】次に、ステップS5の、アクセスに対する
サービスについて説明する。
【0029】〔LOAD命令〕LOAD命令実行の際
の、キャッシュ11による制御手順を示したものであ
る。 (a)制御論理100はプロセッサ・バスのデータ信号
インタフェース107に対して、制御信号線118を用
いて、アドレスのブロック内フィールドで指されるデー
タの、プロセッサ・バスのデータ信号線14への出力を
指示する。 (b)制御論理100はプロセッサ・バスのコントロー
ル信号インタフェース105に対して、制御信号線11
1を用いて、アクセスのターミネートを指示する。 (c)プロセッサ・バスのデータ信号インタフェース1
07はデータ信号線14へデータを出力し、コントロー
ル信号インタフェース105はアクセスをターミネート
する。 (d)プロセッサ10はデータを受けとる。
【0030】〔STORE命令〕STORE命令実行の
際の、キャッシュ11による制御手順を示したものであ
る。 (a)制御論理100はプロセッサ・バスのデータ信号
インタフェース107に対して、制御信号線118を用
いて、プロセッサ・バスのデータ信号線14、上に出力
されているデータの、キャッシュ・メモリ11内への出
力を指示し、キャッシュ・メモリ11、16内のデータ
信号線116上にデータが出力される。 (b)制御論理100は、アドレスのブロック内フィー
ルドで指された部分に対応する、データ・メモリ102
のWE信号120をアサートし、データをデータ・メモ
リ102に書き込む。また、信号線127に0b11
(Vフラグ=1、Dフラグ=1)を出力し、タグ・メモ
リ101のWE信号123をアサートすることで、当該
エントリの状態を更新する。 (c)制御論理100はプロセッサ・バスのコントロー
ル信号インタフェース105に対して、制御信号線11
1を用いて、アクセスのターミネートを指示し、コント
ロール信号インタフェース105はアクセスをターミネ
ートする。
【0031】次に、ステップS2で、アクセスが同期ア
クセスであった場合の動作について説明する。
【0032】ステップS7では、DIRTYブロック
(プロセッサからのライト・アクセスによって書き換え
られたデータブロック)・シークを開始する。
【0033】(1)制御論理100は、セット・フィー
ルドに対応するアドレス線114に0x000を出力
し、タグ・メモリ101のOE信号122をアサートす
る。このとき同時に、データ・メモリ102のOE信号
119をアサートし、また制御信号123を用いてバッ
ファ104の方向制御を行い、タグ・メモリ101から
出力されるタグ・データがタグ・フィールドに対応する
アドレス線113に出力されるようにしておく。
【0034】ステップS8で、制御論理100は、タグ
・メモリ101から出力されるブロックの状態値(Vフ
ラグ及びDフラグ)が0b11であった場合、即ち当該
エントリがDIRTY状態でると判断された場合は、ス
テップS9で、writeback処理を以下のように
行う。
【0035】(2−a)制御論理100はシステム・バ
スのコントロール信号インタフェース108に対して、
制御信号線112を用いて、システム・バスの獲得を指
示する。指示を受けたコントロール信号インタフェース
108はバス・アービタ24に対して、コントロール信
号線21を用いて、システム・バスの使用を要求する。
バス・アービタ24は調停の後、コントロール信号線2
1を用いて、システム・バスの使用許可を通知する。使
用許可通知を受けたコントロール信号インタフェース1
08は制御論理100に対して、制御信号線112を用
いて、システム・バスの獲得を通知する。
【0036】(2−b)制御論理100はシステム・バ
スのアドレス信号インタフェース109に対して、制御
信号線126を用いて、システム・バスのアドレス信号
線22上にアドレスを出力することを指示し、データ信
号インタフェース110に対して、制御信号線125を
用いて、システム・バスのデータ信号線23上にデータ
を出力することを指示する。また、システム・バスのコ
ントロール信号インタフェース108に対して、制御信
号線112を用いて、バス・トランザクションの開始を
指示する。
【0037】(2−c)システム・バス上にバス・トラ
ンザクションが発行され、当該データ・ブロックのwr
ite backが主記憶20に対して行われる。
【0038】制御論理100は、信号線127に0b1
0(Vフラグ=1、Dフラグ=0)を出力し、タグ・メ
モリ101のWE信号123をアサートすることで、当
該エントリの状態を更新する。
【0039】以上の動作を、セット・フィールドを0x
001単位でインクリメントして、0xfffまで繰返
しシーク動作を行う。ステップS10で、全ブロックの
シーク動作が完了したと判断された場合、制御論理10
0はプロセッサ・バスのコントロール信号インタフェー
ス105に対して、制御信号線111を用いて、アクセ
スのターミネートを指示し、コントロール信号インタフ
ェース105はアクセスをターミネートする(ステップ
S12)。
【0040】また、ステップS10で、全ブロックのシ
ークが完了していないと判断された場合は、ステップS
8の処理にもどる。
【0041】なお一方、上記のようにして一方のキャッ
シュ・メモリ11から発行されたwrite back
のバス・トランザクションは、他方のキャッシュ・メモ
リ16によりスヌープされる。
【0042】図6に、write backのバス・ト
ランザクションに起因した動作の流れ図を示す。
【0043】ステップS61で、キャッシュ・メモリ1
6のシステム・バス・コントロール信号インタフェース
108は、システム・バス上にバス・トランザクション
が発行されたことが検出さ、ステップS62で、そのバ
ス・トランザクションがwrite backであると
判断された場合、制御論理100に対して、信号線11
2を用いて、その発生を通知する。また、ステップS6
2で、バス・トランザクションがwrite back
のバス・トランザクションでないと判断された場合は、
ステップS65では、何も行わない。ステップS62
で、バス・トランザクションがwrite backで
あると判断され、ステップS63でヒットした場合、ス
テップS64に処理が移り、ブロック無効化処理を行
う。
【0044】以下に、ブロック無効化処理について説明
する。
【0045】通知を受けた制御論理100は、以下のよ
うな動作を行う。
【0046】(1)制御論理100は制御信号線126
を用いて、システム・バスのアドレス信号インタフェー
ス109にアドレスのキャッシュ・メモリ16内への出
力を指示する。
【0047】(2)システム・バスのアドレス信号イン
タフェース109がアドレスを出力。アドレス信号線1
13にタグ・フィールドを、アドレス線114にセット
・フィールドを、アドレス線115にブロック内フィー
ルドを出力する。
【0048】(3)制御論理100はタグ・メモリ10
1のOE信号122をアサートする。
【0049】(4)タグ・メモリ101はセット・フィ
ールドで指されたエントリの内容を出力する。出力され
たデータは、比較器103でタグ・フィールドと比較さ
れ、比較の結果(一致/不一致)が制御論理100に信
号線124で伝えられる。
【0050】(5)伝えられた比較結果が不一致であっ
た場合は、ここでこの操作は終了する。一致であった場
合、制御論理100は信号線127に0b00(Vフラ
グ=0、Dフラグ=0)を出力し、タグ・メモリ101
のWE信号123をアサートすることで、当該エントリ
の状態を更新し、当該データ・ブロックを無効化する。
【0051】本装置のキャッシュ・メモリ11、16は
以上示したように動作し、状態遷移図は図7のようにな
る。
【0052】図7は、各メモリトランザクション実行時
の状態フラグの状態遷移図を示したものである。(以下
キャッシュ・メモリ11の状態フラグとして説明す
る。)
【0053】図7において、状態”INVALID”は
当該状態フラグが管理するデータエントリが無効である
ことを示す。状態”CLEAN”は当該状態フラグが管
理するデータエントリがメイン・メモリからリードされ
た後、書き換えられていないことを示す。当該データエ
ントリにはメイン・メモリと同一の値が格納されている
が、他のキャッシュのデータエントリには最新の値が格
納されている可能性がある。状態”DIRTY”は当該
状態フラグが管理するデータエントリがメイン・メモリ
からリードされた後、1回以上最新の値で書き換えら
れ、かつ、主記憶にその値を反映していないことを示
す。当該データエントリには最新の値が格納されてい
る。
【0054】”INVALID”状態のデータに対し
てプロセッサ10からLOAD命令が発行された場合、
キャッシュ・リード・ミス処理が行なわれ、状態フラグ
は”CLEAN”に遷移する。
【0055】”INVALID”状態のデータに対し
てプロセッサ10からSTORE命令が発行された場
合、一旦キャッシュ・リードミス処理が実行され、状態
フラグは”CLEAN”に遷移する。その後、キャッシ
ュ・ライトヒット処理が実行され、状態フラグは”DI
RTY”に遷移する。
【0056】”CLEAN”状態のデータに対してプ
ロセッサ10からLOAD命令が発行された場合、キャ
ッシュ・リードヒット処理が実行され、状態フラグは”
CLEAN”に遷移する。
【0057】”CLEAN”状態のデータに対してプ
ロセッサ10からSTORE命令が発行された場合、キ
ャッシュ・ライトヒット処理が実行され、状態フラグ
は”DIRTY”に遷移する。
【0058】”CLEAN”状態のデータに対して外
部のバスマスタのライトバック処理に対してスヌープヒ
ットした場合は、一貫性保持動作が実行され、状態フラ
グは”INVALID”に遷移する。
【0059】”DIRTY”状態のデータに対してプ
ロセッサ10からLOAD命令が発行された場合、キャ
ッシュ・リードヒット処理が実行され、状態フラグは”
DIRTY”のままである。
【0060】”DIRTY”状態のデータに対しプロ
セッサ10からSTORE命令が発行された場合、キャ
ッシュ・ライトヒット処理が実行され、状態フラグは”
DIRTY”のままである。
【0061】”DIRTY”状態のデータに対して主
記憶へのライトバック処理が実行された場合、状態フラ
グは”CLEAN”に遷移する。
【0062】”DIRTY”状態のデータに対して、
外部のバスマスタのライトバック処理に対してスヌープ
ヒットした場合は、一貫性保持動作が実行され、状態フ
ラグは”INVALID”に遷移する。
【0063】以上のように状態を遷移させることで、図
1におけるキャッシュブロックとメインメモリとの一貫
性を保持することができる。
【0064】(他の実施形態)なお、システムの構成は
第1の実施形態のシステム構成図(図1)と同一である
のでここでの説明を省略する。
【0065】図8は本発明を実現するための第2の実施
形態のキャッシュ・メモリ11、16の構成図である。
【0066】キャッシュの本体は、キャッシュ全体を制
御する制御論理200、タグメモリ201、データ・メ
モリ202、比較器203、バッファ204、プロセッ
サ・バスとのコントロール信号インタフェース205、
プロセッサ・バスとのアドレス信号インタフェース20
6、プロセッサ・バスとのデータ信号インタフェース2
07、システム・バスとのコントロール信号インタフェ
ース208、システム・バスとのアドレス信号インタフ
ェース209、システム・バスとのデータ信号インタフ
ェース210と、アドレス・デコーダ211からなる。
【0067】タグ・メモリ201は、図3に示すように
キャッシュ・メモリ11、16中のデータ・ブロックの
タグとなるアドレス、及びその状態フラグを格納するメ
モリである。データ・メモリ202は、データ・ブロッ
クのデータそのものを格納するメモリである。比較器2
03はヒット或はミスをチェックする。
【0068】204はタグ・メモリから或はタグ・メモ
リへのリード或はライト時に用いるバッファである。2
05はプロセッサ・バスとのコントロール信号インタフ
ェースである。206はプロセッサ・バスとのアドレス
信号インタフェースである。
【0069】207はプロセッサ・バスとのデータ信号
インタフェースである。208はシステム・バスとのコ
ントロール信号インタフェースである。209はシステ
ム・バスとのアドレス信号インタフェースである。21
0はシステム・バスとのデータ信号インタフェースであ
る。
【0070】211はアドレス・デコーダである。21
2はプロセッサ・バスのコントロール信号インタフェー
ス205と制御論理200間の信号線である。213は
システム・バスのコントロール信号インタフェース20
8と制御論理200間の信号線である。214、21
5、及び216はアドレス信号線であり、各々図4に示
すタグ・フィールド、セット・フィールド、及びブロッ
ク内フィールドが出力される。217はデータ信号線で
ある。218は制御論理200とプロセッサ・バスのア
ドレス信号インタフェース206間の制御信号線であ
り、219は制御論理200とプロセッサ・バスのデー
タ信号インタフェース207間の制御信号線である。2
20はアドレス・デコーダ211のデコード結果を制御
論理200に通知する信号線である。221は制御論理
200が発するデータ・メモリ202のOE信号であ
り、222は同様にWE信号である。223は制御論理
200が発するタグ・メモリ201のOE信号であり、
224は同様にWE信号である。225は制御論理20
0が発するバッファ204の方向制御信号である。22
6はタグ・メモリ201に格納されるエントリの状態が
流れる信号線である。227は比較器203の比較結果
を制御論理200に通知する信号線である。228は制
御論理200とシステム・バスのデータ信号インタフェ
ース210間の制御信号線であり、229は制御論理2
00とシステム・バスのアドレス信号インタフェース2
09間の制御信号線である。
【0071】なお、本実施例におけるキャッシュ・メモ
リの構成は、4kエントリ、データ・ブロック・サイズ
32Bのダイレクト・マップ方式を採っているが、この
構成は本発明を制限するものではない。
【0072】本実施形態では、図1、図8に示すような
構成のシステムにおいて、緩いメモリ・コンシステンシ
・モデルに適合したキャッシュメモリの制御方法に基づ
いて、キャッシュ・メモリの一貫性が保証される例を示
す。
【0073】以下、本装置の動作を説明する。
【0074】以下に、プロセッサ10からのアクセスを
例にとって実施形態を説明するがこれに限定されるもの
ではない。プロセッサ15からのアクセスが発行される
場合も同様に処理される。
【0075】図9にプロセッサ10からのアクセスに起
因した動作の流れ図を示す。
【0076】各ステップの処理については、S13を除
いてはほぼ同じ動作を行うので各ステップに添っての詳
細な説明を省略する。
【0077】ステップS1で、プロセッサ10がアクセ
スを発行すると、プロセッサ・バスのコントロール信号
インタフェース205は出力されたコントロール信号を
デコードし、またアドレス・デコーダ211はアドレス
をデコードする。ここでプロセッサ・バスのコントロー
ル信号インタフェース205は信号線212を用いて、
制御論理200に対して、プロセッサ10がアクセスを
発行したこと、アクセス属性(リード/ライト、アクセ
ス・サイズ等)を通知する。
【0078】またアドレス・デコーダ211は信号線2
20を用いて、制御論理200に対して、アドレスが同
期点動作指示アドレスを指しているか否かを通知する。
【0079】なお本実施形態の装置は、プロセッサ10
がキャッシュ・メモリ11に対して、処理が同期点に至
ったことを通知するためのアドレスが定義されており、
アドレスをデコードすることによってアクセスがその指
示のためのものであるか否かを判別することができる。
【0080】アクセス・アドレスが同期点動作指示アド
レスを指していなかった場合は、第1の実施形態で示し
たのと同様な、キャッシュ・メモリとしての一般的な動
作を行う。アクセス・アドレスが同期点動作指示アドレ
スを指していた場合は、まず、ステップS13で、制御
論理200はプロセッサ・バスのコントロール信号イン
タフェース205に対して、制御信号線212を用い
て、アクセスのターミネートを指示し、コントロール信
号インタフェース205はアクセスをターミネートす
る。なお、同期点動作指示を行ったプロセッサ10はw
ait状態に入る。
【0081】以下、次のような動作を行う。
【0082】(1)制御論理200は、セット・フィー
ルドに対応するアドレス線215に0x000を出力
し、タグ・メモリ201のOE信号223をアサートす
る。このとき同時に、データ・メモリ202のOE信号
221をアサートし、また制御信号225を用いてバッ
ファ204の方向制御を行い、タグ・メモリ201から
出力されるタグ・データがタグ・フィールドに対応する
アドレス線214に出力されるようにしておく。
【0083】(2)制御論理200は、タグ・メモリ2
01から出力されるブロックの状態値(Vフラグ及びD
フラグ)が0b11であった場合、即ち当該エントリが
DIRTY状態であった場合は、writeback
処理を以下のように行う。
【0084】(2−a)制御論理200はシステム・バ
スのコントロール信号インタフェース208に対して、
制御信号線213を用いて、システム・バスの獲得を指
示する。指示を受けたコントロール信号インタフェース
208はバス・アービタ24に対して、コントロール信
号線21を用いて、システム・バスの使用を要求する。
バス・アービタ24は調停の後、コントロール信号線2
1を用いて、システム・バスの使用許可を通知する。使
用許可通知を受けたコントロール信号インタフェース2
08は制御論理200に対して、制御信号線213を用
いて、システム・バスの獲得を通知する。
【0085】(2−b)制御論理200はシステム・バ
スのアドレス信号インタフェース209に対して、制御
信号線229を用いて、システム・バスのアドレス信号
線22上にアドレスを出力することを指示し、データ信
号インタフェース210に対して、制御信号線228を
用いて、システム・バスのデータ信号線23上にデータ
を出力することを指示する。また、システム・バスのコ
ントロール信号インタフェース208に対して、制御信
号線213を用いて、バス・トランザクションの開始を
指示する。
【0086】(2−c)システム・バス上にバス・トラ
ンザクションが発行され、当該データ・ブロックのwr
ite backが主記憶20に対して行われる。
【0087】(3)制御論理200は、信号線226に
0b10(Vフラグ=1、Dフラグ=0)を出力し、タ
グ・メモリ201のWE信号224をアサートすること
で、当該エントリの状態を更新する。
【0088】以上の動作を、セット・フィールドを0x
001単位でインクリメントして、0xfffまで繰返
しシーク動作を行う。全ブロックのシーク動作が完了す
ると、制御論理200はプロセッサ・バスのコントロー
ル信号インタフェース205に対して、制御信号線21
2を用いて、プロセッサ10に同期点動作が完了したこ
とを割り込み等によって通知することを指示する。指示
を受けたコントロール信号インタフェース205はプロ
セッサ10に対して、同期点動作の完了を通知し、プロ
セッサ10はwait状態を解かれる。
【0089】なお一方、上記のようにして一方のキャッ
シュ・メモリ11から発行されたwrite back
のバス・トランザクションは、他方のキャッシュ・メモ
リ16によりスヌープされ、同一アドレスのデータ・ブ
ロックがキャッシングされていた場合は、当該データ・
ブロックの無効化が行われるが、その動作は第1の実施
形態と同様にして行われる。本システムのキャッシュ・
メモリの状態遷移図も、第1の実施形態同様、図7のよ
うになる。
【0090】
【発明の効果】以上説明したように、プロセッサの処理
が同期ポイントに達した時点でキャッシュ・メモリ内に
存在する全てのDIRTYなデータ・ブロックをwri
tebackし、write backトランザクショ
ンに対してのみ一貫性保持動作を行うようにすることに
より、緩いメモリ・コンシステンシ・モデルに基づいた
動作を行う並列計算機システムにおいて不要な一貫性保
持動作が省かれ、リード時の遅延を小さくでき、システ
ム性能の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明を実現するためのシステムの一構成例を
示す図である。
【図2】本発明の構成例で用いられているキャッシュ・
メモリの構成を示した図である。
【図3】タグ・メモリ・エントリのフィールド構成を示
す図である。
【図4】本システムのアドレスのフィールド構成を示す
図である。
【図5】第1の実施形態におけるプロセッサのアクセス
発行に起因したキャッシュ・メモリの動作流れ図であ
る。
【図6】バス・トランザクションに起因したキャッシュ
・メモリの動作流れ図である。
【図7】キャッシュ・メモリ中のデータ・ブロックの状
態遷移図である。
【図8】本発明を実現するための第2の実施形態のキャ
ッシュ・メモリの構成である。
【図9】第2の実施形態におけるプロセッサのアクセス
発行に起因したキャッシュ・メモリの動作流れ図であ
る。
【符号の説明】
10、15 プロセッサ 11、16 キャッシュ・メモリ 12、17 プロセッサ・バスのコントロール信号線 13、18 プロセッサ・バスのアドレス信号線 14、19 プロセッサ・バスのデータ信号線 20 主記憶 21 システム・バスのコントロール信号線 22 システム・バスのアドレス信号線 23 システム・バスのデータ信号線 24 システム・バスのバス・アービタ 100、200 キャッシュ・メモリの制御論理 101、201 タグ・メモリ 102、202 データ・メモリ 103、203 比較器 104、204 バッファ 105、205 プロセッサ・バスとのコントロール信
号インタフェース 106、206 プロセッサ・バスとのアドレス信号イ
ンタフェース 107、207 プロセッサ・バスとのデータ信号イン
タフェース 108、208 システム・バスとのコントロール信号
インタフェース 109、209 システム・バスとのアドレス信号イン
タフェース 110、210 システム・バスとのデータ信号インタ
フェース 111、112、212、213 信号線 113、114、115、214、215、216 ア
ドレス信号線 116、217 データ信号線 117、118、218、219 制御信号線 119、221 データ・メモリのOE信号線 120、222 データ・メモリのWE信号線 121、223 タグ・メモリのOE信号線 122、224 タグ・メモリのWE信号線 123、225 制御信号線 124、227 信号線 125、126、228、229 制御信号線 211 アドレス・デコーダ 220 信号線 127、226 信号線

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサと、各プロセッサに付
    随する複数のキャッシュ・メモリと、記憶装置と、及び
    キャッシュ・メモリと記憶装置間を相互に接続する結合
    網から成る情報処理装置であって、 各プロセッサの処理が予め定めた段階に達した時点での
    み、付随するキャッシュ・メモリ中に存在するデータ・
    ブロックのシステムにおける一貫性保持を図ることを特
    徴とする情報処理装置。
  2. 【請求項2】 プロセッサの処理が予め定めた段階に達
    したことを、プロセッサが付随するキャッシュ・メモリ
    に知らせる手段として、プロセッサが発行した要求の種
    別によって判別する機能をキャッシュ・メモリ中に設け
    ることを特徴とする請求項1に記載の情報処理装置。
  3. 【請求項3】 プロセッサの処理が予め定めた段階に達
    したことを、プロセッサが付随するキャッシュ・メモリ
    に知らせる手段として、プロセッサが発行したアドレス
    によって判別する機能をキャッシュ・メモリ中に設ける
    ことを特徴とする請求項1に記載の情報処理装置。
  4. 【請求項4】 上記情報処理装置は緩いメモリ・コンシ
    ステンシ・モデルに基づいた動作を行うことを特徴とす
    る請求項1乃至3記載の情報処理装置。
  5. 【請求項5】 複数のプロセッサと、各プロセッサに付
    随する複数のキャッシュ・メモリと、記憶装置と、及び
    キャッシュ・メモリと記憶装置間を相互に接続する結合
    網から成る情報処理装置であって、 プロセッサからキャッシュ・メモリに対するアクセスが
    同期アクセスか否か判断する判断手段と、 該判断手段により同期アクセスであると判断された場
    合、キャッシュ・メモリ内の特定のブロックを検索する
    検索手段と、 該検索手段により検索された特定のブロックについて前
    記記憶装置に対して書き戻しを行う手段とを有すること
    を特徴とする情報処理装置。
  6. 【請求項6】 複数のプロセッサと、各プロセッサに付
    随する複数のキャッシュ・メモリと、記憶装置と、及び
    キャッシュ・メモリと記憶装置間を相互に接続する結合
    網から成る情報処理装置の制御方法であって、 各プロセッサの処理が予め定めた段階に達した時点での
    み、付随するキャッシュ・メモリ中に存在するデータ・
    ブロックのシステムにおける一貫性保持を図ることを特
    徴とする情報処理装置の制御方法。
JP7211797A 1995-08-21 1995-08-21 情報処理装置及びその制御方法 Withdrawn JPH0962576A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7211797A JPH0962576A (ja) 1995-08-21 1995-08-21 情報処理装置及びその制御方法
US08/699,943 US6021472A (en) 1995-08-21 1996-08-20 Information processing device and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7211797A JPH0962576A (ja) 1995-08-21 1995-08-21 情報処理装置及びその制御方法

Publications (1)

Publication Number Publication Date
JPH0962576A true JPH0962576A (ja) 1997-03-07

Family

ID=16611774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7211797A Withdrawn JPH0962576A (ja) 1995-08-21 1995-08-21 情報処理装置及びその制御方法

Country Status (1)

Country Link
JP (1) JPH0962576A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990511B2 (en) 2007-11-01 2015-03-24 Nec Corporation Multiprocessor, cache synchronization control method and program therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990511B2 (en) 2007-11-01 2015-03-24 Nec Corporation Multiprocessor, cache synchronization control method and program therefor

Similar Documents

Publication Publication Date Title
US5802559A (en) Mechanism for writing back selected doublewords of cached dirty data in an integrated processor
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
US5802577A (en) Multi-processing cache coherency protocol on a local bus
US7062613B2 (en) Methods and apparatus for cache intervention
US7100001B2 (en) Methods and apparatus for cache intervention
US5774700A (en) Method and apparatus for determining the timing of snoop windows in a pipelined bus
US5909699A (en) Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JPH0744458A (ja) キャッシュメモリ構造およびキャッシュ・メモリを動作させる方法
KR20030097871A (ko) 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템
JPH03121548A (ja) ライトバツクキヤツシユと主メモリとの間の無矛盾化を維持するデータバススヌープ制御方法
US6321307B1 (en) Computer system and method employing speculative snooping for optimizing performance
WO2000038077A1 (fr) Antememoire et procede de commande
US6976132B2 (en) Reducing latency of a snoop tenure
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
JPH11328106A (ja) グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム
JP3202943B2 (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
US9672153B2 (en) Memory interface control
US6021472A (en) Information processing device and control method thereof
US6205507B1 (en) Memory coherency in a processor-to-bus cycle in a multi-processor system
JPH0962576A (ja) 情報処理装置及びその制御方法
US5974511A (en) Cache subsystem with pseudo-packet switch
US20040128451A1 (en) Power/performance optimized caches using memory write prevention through write snarfing
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
JPH11316738A (ja) 公平な仲裁機構を提供するコンピュータ・システム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021105