JP3340047B2 - マルチプロセッサシステムおよび複製タグの制御方法 - Google Patents

マルチプロセッサシステムおよび複製タグの制御方法

Info

Publication number
JP3340047B2
JP3340047B2 JP05671997A JP5671997A JP3340047B2 JP 3340047 B2 JP3340047 B2 JP 3340047B2 JP 05671997 A JP05671997 A JP 05671997A JP 5671997 A JP5671997 A JP 5671997A JP 3340047 B2 JP3340047 B2 JP 3340047B2
Authority
JP
Japan
Prior art keywords
cache
tag
cpu
write buffer
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP05671997A
Other languages
English (en)
Other versions
JPH10254774A (ja
Inventor
敦 中島
正文 柴田
英雄 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP05671997A priority Critical patent/JP3340047B2/ja
Publication of JPH10254774A publication Critical patent/JPH10254774A/ja
Application granted granted Critical
Publication of JP3340047B2 publication Critical patent/JP3340047B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、主記憶を共有する
密結合型のマルチプロセッサシステムおよびその複製タ
グの制御等に適用して有効な技術に関する。
【0002】
【従来の技術】たとえば、特開平7−121442号公
報等の文献にも記載されているように、汎用のマイクロ
プロセッサ等の任意のCPUエレメントでは、動作の高
速化のためにキャッシュメモリを内蔵するとともに、主
記憶からのリードデータのみならず主記憶へのライトデ
ータもキャッシュメモリ内に一時的に保持させるライト
バック方式を採用することが一般化している。
【0003】一方、各々がキャッシュメモリを内蔵した
複数のCPUエレメントやプロセッサにて主記憶を共有
する密結合型のマルチプロセッサシステムを構築する場
合、主記憶内の同一アドレスのデータが、複数のプロセ
ッサのキャッシュメモリ内に分散して存在することとな
り、しかも更新後のライトデータもキャッシュメモリを
経由して主記憶に転送するライトバック方式では分散し
たデータは各プロセッサにて独立に更新され、主記憶上
の同一アドレスのデータとは異なっている(ダーティに
なっている)可能性がある。このため、任意のプロセッ
サにて主記憶のリード要求が発生した場合、各プロセッ
サ内のキャッシュメモリおよび主記憶におけるデータの
時系列的な一意性(キャッシュコヒーレンシ)、換言す
ればリードデータが最新のデータであることを検証する
操作が必須となる。
【0004】このような操作の一つとしてスヌープ処理
が知られており、自プロセッサ内にて目的のリード要求
データのキャッシュミスが発生した時点で、他の全ての
プロセッサ内のキャッシュメモリに目的の最新データが
存在するか否かを調べる処理を行う。このとき、スヌー
プ対象のプロセッサ内部のキャッシュメモリ(キャッシ
ュタグ)にその都度直接的にアクセスしたのでは、アク
セスされたプロセッサの負荷を増大させ、処理速度を低
下させることとなる。
【0005】このため、プロセッサの外部に、プロセッ
サ内のキャッシュメモリの状態を反映した複製タグを配
置し、スヌープ処理ではこの複製タグをアクセスするこ
とで処理速度の低下を防ぐことが考えられる。
【0006】ところで、最近のマイクロプロセッサ等で
は、リード要求処理の高速化のために、キャッシュメモ
リの他に、ライトバッファを内蔵し、キャッシュミス等
によりキャッシュメモリでのデータ置換が発生した時
に、置換対象となったダーティ(更新後、未だ主記憶に
未反映)なキャッシュラインを、外部の主記憶に書き出
すことなく、ライトバッファに過渡的に保持(キューイ
ング)させることで、可能な限り、外部の主記憶等への
時間のかかるライトバックアクセスを減らすことが行わ
れている。このようなライトバッファへのダーティなデ
ータの移動を伴うリード要求処理は、内蔵のキャッシュ
メモリでのキャッシュミス時に、ライトバック処理の先
行による遅延が回避されるので、ノンブロッキングリー
ドと呼ばれている。
【0007】
【発明が解決しようとする課題】上述のように、複製タ
グを備えたマルチプロセッサシステムにて、個々のプロ
セッサがライトバックに先行するリード発行を実行した
時を考えると、プロセッサ内部では、置換対象のダーテ
ィなキャッシュラインは、ライトバッファに移動し、プ
ロセッサ外部に出力されるキャッシュミスによるリード
要求の検出を契機として、複製タグ内の該当タグエント
リが無効化される。この時点で他のプロセッサから、当
該タグエントリに対応したキャッシュライン(このデー
タは現在、ライトバッファに存在)にリード要求が発生
すると、スヌープ処理にて複製タグをアクセスしてもキ
ャッシュミスとなり、最新のキャッシュラインがライト
バッファ内に存在するにもかかわらず、キャッシュミス
を応答されたリード要求元のプロセッサは、主記憶内の
古いデータへのアクセスを実行してしまうため誤動作と
なる、という技術的課題がある。
【0008】この対策としては、スヌープ時に、プロセ
ッサ内部のライトバッファにアクセスして目的のキャッ
シュラインが存在するか否かを調べる操作をその都度実
行すれば回避できることは自明であるが、折角、複製タ
グをプロセッサの外部に配置してスヌープ時のアクセス
に起因するプロセッサの負荷を減らす効果が損なわれ
る、という他の技術的課題が発生する。
【0009】さらに、プロセッサによって、ライトバッ
ファの数量は様々であることが予想され、たとえば、プ
ロセッサ内部に複数キャッシュライン分のライトバッフ
ァを配置する場合、キャッシュメモリ内の同一エントリ
に対する反復したノンブロッキングリードを許容する場
合、すなわち、先行発行されたライトバックをリード要
求が追い越すことを許容した場合の対策も必要となる。
【0010】なお、前述の特開平7−121442号公
報の技術では、プロセッサ内のL1キャッシュの他に、
外部にL2キャッシュを備えたマルチレベルキャッシュ
において、L2キャッシュ内のラインがL1キャッシュ
内にロードされた時に該ラインにセットされ、L1キャ
ッシュの該ラインによってL2キャッシュが置換された
時にリセットされる内包ビットを持ち、スヌープ時に、
この内包ビットがセットされたL2キャッシュのライン
対応のL1キャッシュのラインを追跡する技術が開示さ
れているが、L1キャッシュとともにプロセッサ内にラ
イトバッファを配置し、外部に複製タグを配置した場合
においてノンブロッキングリードを実行する時のスヌー
プの正確化の対策については配慮されていない。
【0011】本発明の目的は、複製タグを備えたマルチ
プロセッサシステムにおいて、ハードウェア規模を必要
以上に増大させることなく、正しいスヌープ処理を実現
することにある。
【0012】本発明の他の目的は、複製タグを備えたマ
ルチプロセッサシステムにおいて、動作の信頼性を維持
しつつ、ノンブロッキングリードの実行による性能向上
を達成することにある。
【0013】本発明の他の目的は、複製タグを備えたマ
ルチプロセッサシステムにおいて、個々のプロセッサや
CPUエレメント等における多様な仕様に影響されるこ
となく、動作の信頼性を維持しつつ、ノンブロッキング
リードの実行による性能向上を達成することにある。
【0014】本発明の他の目的は、ノンブロッキングリ
ードを実現するための複数のライトバッファを備え、先
行発行されたライトバックをリード要求が追い越すこと
を許容した構成において、動作の信頼性を維持しつつ、
複数のノンブロッキングリードの連続した実行による性
能向上を達成することにある。
【0015】本発明の他の目的は、複数のCPUエレメ
ントを構成するマイクロプロセッサの仕様変更に対し
て、最小限の設計変更にて対応することが可能なマルチ
プロセッサシステムおよび複製タグの制御技術を提供す
ることにある。
【0016】本発明の他の目的は、使用するCPUエレ
メント等の仕様変更等に影響されることなく、マルチプ
ロセッサシステムの市場での寿命を延ばすことにある。
【0017】
【課題を解決するための手段】本発明では、キャッシュ
メモリの他に当該キャッシュメモリの置換時等に発生す
るライトバックデータを一時的に保持するライトバッフ
ァを備え、ノンブロッキングリードの実行を可能にした
プロセッサやCPUエレメント等を含むシステムにおい
て、スヌープ処理のために外部に設けられた複製タグの
一部に、ノンブロッキングリードに伴って、キャッシュ
メモリ内からライトバッファにキャッシュラインが移動
して存在することを識別するための識別情報を、複製タ
グ内の該当エントリの一部に記憶させるものである。
【0018】この識別情報としては、たとえば、ライト
バッファが一つの場合には、1ビットのフラグが設定さ
れ、このフラグは、キャッシュメモリからライトバッフ
ァに該当キャッシュラインが移動させるノンブロッキン
グリードの発生時にセットされ、ライトバッファから主
記憶、あるいはプロセッサ外部の二次キャッシュ等に当
該キャッシュラインが書き出された時点でリセットされ
る。
【0019】また、プロセッサやCPUエレメント内に
複数のライトバッファを備え、キャッシュメモリ内の特
定エントリに対する連続したノンブロッキングリードの
実行を許容する構成では、複製タグに設定される識別情
報としては、当該タグエントリの有効/無効を示すフラ
グと、当該タグエントリのキャッシュラインに対するノ
ンブロッキングリードの実行時にインクリメントされ、
ライトバッファから当該キャッシュラインが書き出され
た時点でデクリメントされるカウンタフィールドとが設
定される。
【0020】これらのフラグおよびカウンタ値に応じ
て、ライトバッファ内における一つあるいは複数のライ
トバックデータの存在を、ライトバッファ自体にアクセ
スすることなく、確実に知ることができる。また、所望
のnビット幅のカウンタフィールドを設定することで、
n −1個までの多様な数のライトバッファを内蔵した
構成の多様なプロセッサやCPUエレメントの複製タグ
の使用による正確なスヌープ処理を、複数のノンブロッ
キングリードを許容しつつ、実現可能となる。
【0021】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照しながら詳細に説明する。
【0022】(実施の形態1)図1および図2は、本発
明の第1の実施の形態である複製タグの制御方法が実施
されるマルチプロセッサシステムの構成の一例を示すブ
ロック図であり、図2は、本第1の実施の形態の複製タ
グの制御方法にて用いられる制御情報の一例を示す概念
図である。また、図4および図5は、本第1の実施の形
態のマルチプロセッサシステムおよび複製タグの制御方
法の作用の一例を示す概念図、図6、図7および図8
は、本第1の実施の形態のマルチプロセッサシステムお
よび複製タグの制御方法の作用の一例を示すフローチャ
ートである。
【0023】図1に例示されるように、本第1の実施の
形態のマルチプロセッサシステムは、各々がCPUエレ
メント10およびCPU−SCインタフェース20を備
えた複数のプロセッサモジュールPM0〜PMnと、少
なくとも一つのメインメモリ30(MM)とが、バスま
たはクロスバスイッチ等の任意のシステムコネクション
40(SC)を介して結合された構成となっており、メ
インメモリ30は、複数のプロセッサモジュールPM0
〜PMnによって共有される密結合型のマルチプロセッ
サシステムとなっている。
【0024】CPUエレメント10は、たとえば汎用の
マイクロプロセッサ等で構成され、その内部には、所望
の演算処理等を行うCPUコア11と、このCPUコア
11によってアクセスされるメインメモリ30上のデー
タが一時的に格納されるCPUキャッシュ12およびC
PUキャッシュ12を管理するための情報が格納される
CPUキャッシュタグ13と、ライトバッファ14を備
えている。本実施の形態のCPUエレメント10は、メ
インメモリ30から読出されるリードデータのみなら
ず、CPUコア11にて更新されたライトデータもCP
Uキャッシュ12を経由してメインメモリ30に書き出
す、ライトバック(ストアイン)方式を採用している。
【0025】CPUキャッシュ12でのキャッシュミス
が発生し、新なリードデータをCPUキャッシュ12に
格納するためにCPUキャッシュ12上の更新データ
(メインメモリ30に未反映のダーティなデータライ
ン)の置換が発生した場合、置換対象のダーティなデー
タラインは、直ちにメインメモリ30に書き出されるの
ではなく、一旦、ライトバッファ14に移動され、任意
のタイミングでメインメモリ30に書き出される。この
ため、キャッシュミス時のメインメモリ30へのリード
要求時に、当該リード要求に先行してCPUキャッシュ
12からメインメモリ30へのライトバック動作が発生
しない、ノンブロッキングリードが可能である。
【0026】CPU−SCインタフェース20は、CP
Uエレメント10とメインメモリ30との間に介在して
両者間における情報の授受を制御する。具体的には、上
位のCPUエレメント10から受信したリード要求やラ
イト要求のシステムコネクション40への送出、システ
ムコネクション40から受信した他のプロセッサモジュ
ールからのリード要求の後述のような選別およびCPU
エレメント10への送出、等の動作を行う。
【0027】本実施の形態の場合、このCPU−SCイ
ンタフェース20には、CPUキャッシュ複製タグ21
が配置されており、CPUエレメント10とメインメモ
リ30との間で授受されるリードデータおよびライトデ
ータのアドレスを監視することで、CPUエレメント1
0内のCPUキャッシュ12の状態を記録する。これに
より、スヌープ処理等に際して、他のプロセッサモジュ
ールからシステムコネクション40を経由してリード要
求が到来した時、CPUキャッシュ複製タグ21を参照
し、CPUキャッシュ12内に目的のデータがある時
(キャッシュヒット時)は当該リード要求をCPUエレ
メント10に送出し、無い(キャッシュミス)時には、
当該リード要求をCPUエレメント10に送出すること
なく、リード要求元にキャッシュミスを応答する、とい
うシステムコネクション40側からのリード要求の選別
処理を行う。これにより、CPUエレメント10に対す
る無駄なアクセスの発生が少なくなり、スヌープ処理等
におけるCPUエレメント10の負荷が軽減される。
【0028】本実施の形態の場合、このCPUキャッシ
ュ複製タグ21の各タグエントリ22には、任意のアド
レスのキャッシュラインのCPUキャッシュ12におけ
る有無を判別するためのタグアドレス23の他に、ライ
トバッファ監視情報24が設けられている。
【0029】図2に例示されるように、このライトバッ
ファ監視情報24は、本実施の形態の場合、1ビットの
全ヒットフラグ24aであり、当該タグエントリ22に
対応するCPUキャッシュ12内のダーティなキャッシ
ュラインが、ノンブロッキングリード要求に伴う置換操
作のためにライトバッファ14に移動(キューイング)
された時に“1”にセットされ、ライトバッファ14の
キャッシュラインがメインメモリ30に書き出されるラ
イトバック実行時に、“0”にリセットされる。
【0030】ノンブロッキングリードと、CPUキャッ
シュ12からライトバッファ14へのデータ移動が伴わ
ない通常のリード要求とを区別する方法としては、たと
えば、CPUエレメント10として市販の汎用のマイク
ロプロセッサを使用する場合、リード要求の発生時に、
マイクロプロセッサの特定のピンの信号(論理)状態を
検査することでノンブロッキングリードか否かを識別可
能である。このような動作仕様のマイクロプロセッサと
しては、たとえばPowerPC604等の製品が知ら
れている。たとえば、1995年12月発行、「Pow
erPC604RISC マイクロプロセッサ ユーザ
ーズ・マニュアル」第7章、P1〜P13、には、通常
のリード要求(書き出し無しデータ・リード)と、ノン
ブロッキングリード(書き出し付きデータ・リード)
は、転送コード出力TC0〜TC2のうち、TC2の論
理状態が“0”か“1”かで外部から区別できる。な
お、PowerPC604はあくまでも一例であり、C
PUエレメント10としては、同様の動作仕様を有する
ものであれば、任意のマイクロプロセッサ製品を使用可
能であることはいうまでもない。
【0031】あるいは、たとえば、CPUエレメント1
0とCPU−SCインタフェース20との間に、ノンブ
ロッキングリード要求か通常のリード要求かを区別する
ための専用のインタフェースを設けることでリード要求
がノンブロッキングリードか否かを判別することもでき
る。
【0032】以下、図4、図5および図6、図7、図8
等を参照して、本実施の形態のマルチプロセッサシステ
ムおよび複製タグの制御方法の作用の一例を説明する。
【0033】〔1〕CPUキャッシュ複製タグ21の制
御動作 図4(1)初期状態 この状態では、CPUキャッシュ12のインデックスa
のエントリにタグアドレスAのダーティなキャッシュラ
インAが存在し、これに対応して、CPUキャッシュ複
製タグ21のインデックスa対応のタグエントリ22に
は、タグアドレスAが格納さている。この時、全ヒット
フラグ24aは不定(×)である。
【0034】図4(2)CPUエレメント10がリード
要求B発行 図4(1)の初期状態で、CPUコア11によるCPU
キャッシュ12のキャッシュミスにより、リードリクエ
ストB(ノンブロッキングリード)が発生すると、新規
のリードデータBの格納領域を確保するための置換によ
り、ダーティなキャッシュラインAは、ライトバッファ
14に移動(キューイング)され、外部に対するライト
バックは抑止される。また、CPUエレメント10は、
リード要求Bおよび当該リード要求Bがノンブロッキン
グリードであることを示す図示しない識別信号をCPU
−SCインタフェース20に出力する。
【0035】このリード要求Bを受けたCPU−SCイ
ンタフェース20では、図6に例示されるように、ま
ず、CPUキャッシュ複製タグ21のインデックスaの
タグエントリ22に、リードターゲットのタグアドレス
Bを記録(ステップ101)したのち、ノンブロッキン
グリード(置換によるライトバック有り)か否かを判別
し(ステップ102)、ライトバック有りのため、全ヒ
ットフラグ24aを“1”にセットする。なお、ノンブ
ロッキングリードでない通常のリード要求であれば、全
ヒットフラグ24aは“0”にリセット(ステップ10
3)される。
【0036】図4(3)CPUエレメント10がライト
要求A発行 図4(2)の状態で、CPUエレメント10からライト
バッファ14内のキャッシュラインAのライトバックが
CPU−SCインタフェース20に発行されると、メイ
ンメモリ30にキャッシュラインAが反映されるととも
に、図7に示すように、CPU−SCインタフェース2
0は、全ヒットフラグ24aを“0”にリセット(ステ
ップ201)する。
【0037】〔2〕CPUエレメント10の同一インデ
ックスアドレスに対するシリアライズ動作 図5(1)初期状態 この初期状態は、図4の(2)の状態である。
【0038】図5(2)CPUエレメント10による、
リード要求に先立つライトバック動作 CPUコア11から同一インデックスaに対するリード
要求Cが発生してキャッシュミスすると、CPUエレメ
ント10は、ライトバッファ14に以前にキューイング
されたキャッシュラインA(インデックスa)の存在を
検出し、当該リード要求Cに先立ち、まず、当該ライト
バッファ14内のキャッシュラインAをメインメモリ3
0に反映させるためのライト要求Aを発行する。これに
より、ライトバッファ14内のキャッシュラインAのデ
ータは、メインメモリ30に書き込まれるとともに、こ
のライト要求Aは、インデックスaのタグエントリ22
の全ヒットフラグ24aを“0”にリセットする。
【0039】図5(3)CPUエレメント10による、
リード要求Cの実行 図5(2)の後、CPUコア11からインデックスaに
対するリード要求Cが実行されると、CPUキャッシュ
12内のインデックスaのエントリには現在、ダーティ
なキャッシュラインBが存在するため当該キャッシュラ
インの置換が発生し、当該キャッシュラインBはライト
バッファ14に移動(キューイング)される。その後リ
ード要求C(ノンブロッキングリード)がCPU−SC
インタフェース20に発行される。
【0040】これを受けた、CPU−SCインタフェー
ス20は、インデックスaのタグエントリ22にタグア
ドレスCをセットするとともに、全ヒットフラグ24a
を“1”にセットする。
【0041】このような動作により、同一のインデック
スに対する複数のリード要求が発生しても当該リード要
求はライトバックを追い越さないので、コヒーレンシは
維持される。
【0042】〔3〕システムコネクション40を経由し
た他のCPUエレメント10からのリード要求の処理 次に、任意の契機、たとえば、図4の(2)の状態で、
スヌープ処理のために、システムコネクション40(他
のCPUエレメント10)からCPU−SCインタフェ
ース20にリード要求Aが到来すると、CPU−SCイ
ンタフェース20は、まずCPUキャッシュ複製タグ2
1を検索する(ステップ301)。
【0043】そして、リード要求Aに対応するタグエン
トリ22(インデックスa)の全ヒットフラグ24aが
“1”か否かを判定する(ステップ302)。この時、
“1”ならば、目的のキャッシュラインAは、CPUエ
レメント10内のライトバッファ14に存在すると判る
ので(ライトバッファヒット)、CPUエレメント10
に対して、リード要求Aを発行する(ステップ30
4)。
【0044】一方、前記ステップ302の判定で全ヒッ
トフラグ24aが“1”でない場合には、さらに、同一
タグエントリ22のタグアドレスがリード要求Aのもと
一致するか否かを調べる(ステップ303)。
【0045】一致する場合には、CPUキャッシュヒッ
トとなり、前記ステップ304を実行する。また、不一
致の場合にはCPUキャッシュミスとなり、当該結果を
リード要求Cの要求元に応答するだけで、CPUエレメ
ント10に対するアクセスは発生しない(ステップ30
5)。
【0046】ここで、本実施の形態における前記ステッ
プ302の全ヒットフラグ24aの判定がなく、CPU
キャッシュ複製タグ21におけるヒット判定がタグアド
レスのみの従来の場合には、タグアドレスが不一致とな
ると、CPUエレメント10のライトバッファ14内に
目的のキャッシュラインAが存在する(ライトバッファ
ヒット)にも関わらず要求元にはミスが応答されること
になる。このミス応答を受けた要求元の他のCPUエレ
メント10は、メインメモリ30に対して当該リード要
求Aを発行することになるが、メインメモリ30のリー
ド要求Aのアドレスのデータは、ライトバッファ14内
のキャッシュラインAが反映される前の古い無効なデー
タであるため、キャッシュコヒーレンシが保たれず、障
害が発生する。
【0047】これに対して、本実施の形態の場合には、
タグアドレスが不一致の場合でも、全ヒットフラグ24
aによって、ノンブロッキングリード時にライトバッフ
ァ14にキューイングされた状態の目的のキャッシュラ
インAを確実に見い出して正確にヒット判定をすること
ができ、前述のような障害の発生は確実に回避される。
【0048】また、使用する物量は、CPUキャッシュ
複製タグ21のタグエントリ22における高々1ビット
であるため、CPUキャッシュ複製タグ21の容量が必
要以上に増大する等の不利益が発生することもない。す
なわち、比較的少ない物量にて、CPUキャッシュ複製
タグ21を備えたマルチプロセッサシステムにおけるノ
ンブロッキングリード実行時のキャッシュコヒーレンシ
の制御、すなわちスヌープ処理を正確に実行することが
可能になる。
【0049】(実施の形態2)図3は、本発明の第2の
実施の形態である複製タグの制御方法が実施されるマル
チプロセッサシステムにて用いられる制御情報の一例を
示す概念図であり、図図9および図10は、その作用の
一例を示す概念図、図11、図12および図13は、そ
の作用の一例を例示すフローチャートである。
【0050】前述の第1の実施の形態では、全ヒットフ
ラグ24aが1ビットであったため、図5に例示される
ような同一インデックスに対する複数のリード要求処理
時のシリアライズ動作、すなわち、2回目以降のリード
要求がライトバック処理を追い越さない動作が必要、と
いう制約があった。そこで、この第2の実施の形態で
は、前述のような制約を取り除く技術を例示する。
【0051】本実施の形態では、図3に例示されるよう
に、ライトバッファ監視情報25として、ライトカウン
タ25aおよびエントリバリッド25bを、CPUキャ
ッシュ複製タグ21におけるタグエントリ22の一部に
設ける。また、CPUエレメント10では、ライトバッ
ファ14を複数エントリ(N個)備えている。その他の
構成は前記第1の実施の形態と同様なので、同一の構成
要素は同一の符号にて引用する。
【0052】ライトカウンタ25aのビット幅は、ライ
トバッファ14のエントリ数Nに依存し、log(N+
1)ビットの幅を持つ(ただし小数は切上げ)。エント
リバリッド25bは1ビットのフラグである。
【0053】ライトカウンタ25aは、当該タグエント
リ22に対応したCPUキャッシュ12内のインデック
スのデータのライトバッファ14へのキューイングが行
われる毎にインクリメントされ、ライトバッファ14か
らメインメモリ30への書込動作が実行される毎にデク
リメントされる。
【0054】エントリバリッド25bは、当該タグエン
トリ22が有効の時に“1”セットされ、それ以外は
“0”にクリアされる。
【0055】以下、図9および図10、さらには図1
1、図12、図13を参照して、本第2の実施の形態の
作用の一例を説明する。
【0056】〔1〕基本的なCPUキャッシュ複製タグ
21の制御動作 図9(1)初期状態 この初期状態では、CPUエレメント10内のCPUキ
ャッシュ12のインデックスaにキャッシュラインA
(ダーティ)が存在し、これ対応して、CPUキャッシ
ュ複製タグ21のタグエントリ22には、タグアドレス
Aが設定されている。この時、ライトバッファ14は空
であり、ライトカウンタ25aは0、エントリバリッド
25bは“1”である。
【0057】図9(2)CPUエレメント10によるノ
ンブロッキングリードの実行 前記(1)の状態にて、CPUコア11から出されたリ
ード要求BがCPUキャッシュ12にてミスすると、置
換のためのライトバックが発生し、ダーティなキャッシ
ュラインAは、ライトバッファ14にキューイングされ
るとともに、外部にリード要求B(ノンブロッキングリ
ード)が発行される。
【0058】これを受けたCPU−SCインタフェース
20は、図11に例示されるように、インデックスaに
タグアドレスBを上書きし、エントリバリッド25bに
“1”をセットする(ステップ401)とともに、ノン
ブロッキングリードか判定し(ステップ402)、ノン
ブロッキングリードであるので、さらにエントリバリッ
ド25bが“0”か否か判別し(ステップ403)、
“1”なので、さらにライトカウンタ25a=ライトバ
ッファ14のエントリ数か否か判定し(ステップ40
4)、不一致の場合にライトカウンタ25aをインクリ
メントする(ステップ405)。なお、ステップ403
およびステップ404の判定での条件成立の場合はER
ROR終了であるが、本第2の実施の形態の正常な動作
では発生せず、図示の便宜上記載されている。
【0059】図9(3)CPUエレメント10によるラ
イトバック実行 CPUエレメント10からライトバッファ14内のキャ
ッシュラインAのライトバック要求が発生すると、当該
キャッシュラインAは、メインメモリ30の対応アドレ
スに上書きされて反映される。このとき、このライトバ
ック要求を検出したCPU−SCインタフェース20
は、CPUキャッシュ複製タグ21における当該インデ
ックスaの対応タグエントリ22のエントリバリッド2
5bが“0”(無効)か否かを判定し(ステップ50
1)、“0”でない(有効)場合は、ライトカウンタ2
5a=0か否か(ライトバッファ14にデータがあるの
にライトカウンタ25a=0だとERRORであるが、
本実施の形態では起こりえない)を調べ(ステップ50
2)、0でない場合には、ライトカウンタ25aをデク
リメントする。
【0060】〔2〕CPUエレメント10による同一イ
ンデックスに対する複数のノンブロッキングリード実行
(第1の実施の形態のシリアライズ動作は不要) 図10(1)初期状態 これは、図9(2)の状態に相当し、CPUエレメント
10におけるCPUキャッシュ12のインデックスaに
はキャッシュラインB(ダーティ)が存在し、ライトバ
ッファ14には前のノンブロッキングリードでキューイ
ングされたキャッシュラインAが存在する。これに対応
してCPUキャッシュ複製タグ21の当該インデックス
aのタグエントリ22にはタグアドレスBが設定され、
ライトカウンタ25aには、キャッシュラインAがライ
トバッファ14に存在することを示す1が設定され、エ
ントリバリッド25bは“1”が設定されている。
【0061】図10(2)CPUエレメント10がライ
トバック未完のインデックスに対するリード要求を発行 CPUエレメント10において、CPUコア11から発
行されたリード要求C(インデックスa)がCPUキャ
ッシュ12にてミスすると、CPUキャッシュ12の置
換のためのライトバック要求Bが発生し、キャッシュラ
インBは、ライトバッファ14にキューイングされる。
リード要求Cは、ノンブロッキングリードとしてCPU
−SCインタフェース20に発行される。
【0062】これを受けたCPU−SCインタフェース
20では、まず、CPUキャッシュ複製タグ21のイン
デックスaにタグアドレスCを記録し、エントリバリッ
ド25bに“1”をセットし、さらに、ライトカウンタ
25aをインクリメントする。これにより、ライトカウ
ンタ25aの値は2となる。これは、インデックスaに
対応するライトバック未完のキャッシュラインが、CP
Uエレメント10内のライトバッファ14内に2つ(A
およびB)存在することを意味する。
【0063】図10(3)CPUエレメント10がライ
トバック要求を発行 前記(2)の状態から、CPUエレメント10にてライ
トバック要求が実行されると、ライトバッファ14内に
て最も古いキャッシュラインAがCPU−SCインタフ
ェース20を経由してメインメモリ30に書き込まれ反
映される。
【0064】このとき、このライトバック要求を受けた
CPU−SCインタフェース20は、CPUキャッシュ
複製タグ21のインデックスaにおけるライトカウンタ
25aをデクリメントする。
【0065】この結果、CPUエレメント10内のライ
トバッファ14にはキャッシュラインBが残り、CPU
キャッシュ複製タグ21におけるインデックスaのタグ
エントリ22のライトカウンタ25aは1となる。
【0066】図10(4)CPUエレメント10がライ
トバック要求を発行 前記(3)と同様に、さらにCPUエレメント10から
ライトバック要求が発行されると、キャッシュラインB
は、メインメモリ30に反映されるとともに、CPUキ
ャッシュ複製タグ21のライトカウンタ25aは0にな
る。この時、ライトバッファ14は空である。
【0067】〔3〕システムコネクション40を経由し
た他のCPUエレメント10からのリード要求の処理 次に、任意の契機、たとえば図10の(2)の状態で、
システムコネクション40を介して他のプロセッサモジ
ュール(CPUエレメント10)からリード要求Bを受
けたとすると、図13に例示されるように、まずCPU
キャッシュ複製タグ21の該当タグエントリ22を検索
する(ステップ601)。
【0068】そして、ライトカウンタ25a>0か調
べ、この条件が成立する場合には、目的のキャッシュラ
インBがCPUエレメント10内のライトバッファ14
に存在すると判定して、CPUエレメント10に対して
リード要求Bを発行する(ステップ604)。
【0069】また、ステップ602での条件が不成立の
場合には、さらに、エントリバリッド25b=“1”で
かつタグアドレスが一致するか否かを調べ(ステップ6
02)、条件成立の場合には、CPUキャッシュ12内
に目的のデータがあると判断して、CPUエレメント1
0に対してリード要求Bを発行する(ステップ60
4)。
【0070】また、ステップ603において条件が不成
立の場合には、ミスと判定して、要求元に応答するとと
もに、CPUエレメント10に対するリード要求の発行
は抑止される。
【0071】このように、本第2の実施の形態の場合に
も、前記第1の実施の形態の場合と同様に、他のプロセ
ッサモジュールからのリード要求に対して、ノンブロッ
キングリードによってCPUエレメント10内のライト
バッファ14にキューイングされているキャッシュライ
ンをライトカウンタ25aおよびエントリバリッド25
bの情報によって確実に把握でき、障害の発生を防止で
きるとともに、ライトカウンタ25aにより、複数のラ
イトバッファ14を利用して、同一インデックスに対す
る複数の連続したノンブロッキングリードの発生を許容
できるという利点がある。
【0072】たとえば、市販の汎用のマルチプロセッサ
では、製品の市場サイクルが比較的短く、したがって、
製品改良(バージョンアップ)等により、CPUエレメ
ント10内のライトバッファ14のエントリ数は変化す
る可能性がある。本第2の実施の形態の場合には、この
ような仕様変更が発生しても、ライトカウンタ25aの
ビット幅を調整するだけで、CPU−SCインタフェー
ス20等の制御論理に対する変更は全く必要ない。ま
た、マイクロプロセッサ側の仕様変更を見越してある程
度広いビット幅のライトカウンタ25aを設定すれば、
ライトバッファ14のエントリ数の異なる多様なマイク
ロプロセッサをCPUエレメント10として用いるマル
チプロセッサシステムの構築に際して、CPU−SCイ
ンタフェース20やシステムコネクション40等を共通
に用いることが可能になる。
【0073】すなわち、汎用のマイクロプロセッサをC
PUエレメント10として用いることにより、マルチプ
ロセッサシステム構築することを考えた場合、マイクロ
プロセッサの仕様変更に際しても、CPU−SCインタ
フェース20やシステムコネクション40等のユーザ側
の制御論理等の変更は全く必要ないか、あるいは最小限
に止めることが可能となり、マルチプロセッサシステム
を開発する場合の設計工数等を削減できるとともに、マ
ルチプロセッサシステムの市場での寿命を長くすること
ができる。
【0074】(実施の形態3)図14は、本発明の第3
の実施の形態であるマルチプロセッサシステムの構成の
一例を示すブロック図である。この第3の実施の形態で
は、CPU−SCインタフェース20の内部に、二次キ
ャッシュ50および当該二次キャッシュ50を制御する
ための二次キャッシュタグ51を備えたところが、前記
第1および第2の実施の形態と異なっており、他は同様
である。
【0075】この第3の実施の形態の場合、他のプロセ
ッサモジュール(CPUエレメント10)からのリード
要求をCPU−SCインタフェース20が受信すると、
二次キャッシュタグ51の検索と、CPUキャッシュ複
製タグ21のタグアドレスおよびライトバッファ監視情
報24(25)のチェックを同時並行して実行する。こ
のとき、たとえ、二次キャッシュ50やCPUキャッシ
ュ複製タグ21のタグアドレスにてミスと判定されて
も、ライトバッファ監視情報24(25)により、ノン
ブロッキングリードにてCPUエレメント10内のライ
トバッファ14にキューイングされた存在するライトバ
ック保留中のキャッシュラインの存在を確実に把握でき
るので、ノンブロッキングリードによってCPUエレメ
ント10内のライトバッファ14内に存在するデータを
見逃すことに起因するスヌープ処理の失敗を確実に回避
することが可能になる。
【0076】なお、図14では、説明の便宜上、CPU
キャッシュ複製タグ21と、二次キャッシュ50用の二
次キャッシュタグ51とを別個に例示しているが、両者
を同一の記録媒体内に配置して管理することも本発明に
含まれる。
【0077】以上本発明者によってなされた発明を実施
の形態に基づき具体的に説明したが、本発明は前記実施
の形態に限定されるものではなく、その要旨を逸脱しな
い範囲で種々変更可能であることはいうまでもない。
【0078】
【発明の効果】本発明のマルチプロセッサシステムおよ
び複製タグの制御方法によれば、複製タグを備えたマル
チプロセッサシステムにおいて、ハードウェア規模を必
要以上に増大させることなく、正しいスヌープ処理を実
現することができる、という効果が得られる。
【0079】本発明のマルチプロセッサシステムおよび
複製タグの制御方法によれば、複製タグを備えたマルチ
プロセッサシステムにおいて、動作の信頼性を維持しつ
つ、ノンブロッキングリードの実行による性能向上を達
成することができる、という効果が得られる。
【0080】本発明のマルチプロセッサシステムおよび
複製タグの制御方法によれば、複製タグを備えたマルチ
プロセッサシステムにおいて、個々のプロセッサやCP
Uエレメント等における多様な仕様に影響されることな
く、動作の信頼性を維持しつつ、ノンブロッキングリー
ドの実行による性能向上を達成することができる、とい
う効果が得られる。
【0081】本発明のマルチプロセッサシステムおよび
複製タグの制御方法によれば、ノンブロッキングリード
を実現するための複数のライトバッファを備え、先行発
行されたライトバックをリード要求が追い越すことを許
容した構成のマルチプロセッサシステムにおいて、動作
の信頼性を維持しつつ、複数のノンブロッキングリード
の連続した実行による性能向上を達成することができ
る、という効果が得られる。
【0082】本発明のマルチプロセッサシステムおよび
複製タグの制御方法によれば、複数のCPUエレメント
を構成するマイクロプロセッサの仕様変更に対して、最
小限の設計労力にて対応することができる、という効果
が得られる。
【0083】本発明のマルチプロセッサシステムおよび
複製タグの制御方法によれば、使用するCPUエレメン
ト等の仕様変更等に影響されることなく、マルチプロセ
ッサシステムの市場での寿命を延ばすことができる、と
いう効果が得られる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態である複製タグの制
御方法が実施されるマルチプロセッサシステムの構成の
一例を示すブロック図である。
【図2】本発明の第1の実施の形態のマルチプロセッサ
システムおよび複製タグの制御方法にて用いられる制御
情報の一例を示す概念図である。
【図3】本発明の第2の実施の形態であるマルチプロセ
ッサシステムおよび複製タグの制御方法にて用いられる
制御情報の一例を示す概念図である。
【図4】本発明の第1の実施の形態であるマルチプロセ
ッサシステムおよび複製タグの制御方法の作用の一例を
説明する概念図である。
【図5】本発明の第1の実施の形態のマルチプロセッサ
システムおよび複製タグの制御方法の作用の一例を示す
概念図である。
【図6】本発明の第1の実施の形態であるマルチプロセ
ッサシステムおよび複製タグの制御方法の作用の一例を
説明するフローチャートである。
【図7】本発明の第1の実施の形態であるマルチプロセ
ッサシステムおよび複製タグの制御方法の作用の一例を
説明するフローチャートである。
【図8】本発明の第1の実施の形態のマルチプロセッサ
システムおよび複製タグの制御方法の作用の一例を示す
フローチャートである。
【図9】本発明の第2の実施の形態のマルチプロセッサ
システムおよび複製タグの制御方法の作用の一例を示す
概念図である。
【図10】本発明の第2の実施の形態のマルチプロセッ
サシステムおよび複製タグの制御方法の作用の一例を示
す概念図である。
【図11】本発明の第2の実施の形態のマルチプロセッ
サシステムおよび複製タグの制御方法の作用の一例を示
すフローチャートである。
【図12】本発明の第2の実施の形態のマルチプロセッ
サシステムおよび複製タグの制御方法の作用の一例を示
すフローチャートである。
【図13】本発明の第2の実施の形態のマルチプロセッ
サシステムおよび複製タグの制御方法の作用の一例を示
すフローチャートである。
【図14】本発明の第3の実施の形態であるマルチプロ
セッサシステムの構成の一例を示すブロック図である。
【符号の説明】
10…CPUエレメント(上位モジュール)、11…C
PUコア、12…CPUキャッシュ(上位キャッシ
ュ)、13…CPUキャッシュタグ、14…ライトバッ
ファ、20…CPU−SCインタフェース(インタフェ
ース手段)、21…CPUキャッシュ複製タグ、22…
タグエントリ、23…タグアドレス、24…ライトバッ
ファ監視情報(識別情報)、24a…全ヒットフラグ、
25…ライトバッファ監視情報(識別情報)、25a…
ライトカウンタ、25b…エントリバリッド、30…メ
インメモリ、40…システムコネクション(システム結
合手段)、50…二次キャッシュ、51…二次キャッシ
ュタグ。
フロントページの続き (72)発明者 鈴木 英雄 神奈川県海老名市下今泉810番地 株式 会社日立製作所 オフィスシステム事業 部内 (56)参考文献 特開 平9−54758(JP,A) 特開 平10−232832(JP,A) 特開 平7−44459(JP,A) 特開 平9−138779(JP,A) 特開 平7−6092(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 15/16 - 15/177

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサモジュールがシステム
    結合手段を介してメモリモジュールを共有し、個々の前
    記プロセッサモジュールは、CPUコアおよびCPUキ
    ャッシュおよびライトバッファを含むCPUエレメント
    と、前記CPUエレメントと前記システム結合手段との
    間における情報の授受を仲介するインタフェース手段と
    を含む構成のマルチプロセッサシステムであって、 前記インタフェース手段の一部には、前記CPUエレメ
    ント内の前記CPUキャッシュの状態が反映される複製
    タグを備え、 前記複製タグの各タグエントリには、当該タグエントリ
    に対応した前記CPUキャッシュ内のデータラインが当
    該CPUキャッシュから前記ライトバッファ内に移動し
    て存在するか否かを識別するための識別情報を含むこと
    を特徴とするマルチプロセッサシステム。
  2. 【請求項2】 請求項1記載のマルチプロセッサシステ
    ムにおいて、前記識別情報は、 前記タグエントリに対応する前記CPUキャッシュ内の
    前記データラインが前記ライトバッファに移動した時に
    セットされ、前記ライトバッファ内の前記キャッシュラ
    インが前記メモリモジュールに書き出された時にリセッ
    トされる1ビットの第1のフラグからなる第1の構成、 または、前記タグエントリが有効か否かを示す1ビット
    の第2のフラグと、当該タグエントリに対応した前記C
    PUキャッシュ内のデータラインが前記ライトバッファ
    に移動する毎にインクリメントされ、前記ライトバッフ
    ァから前記キャッシュラインが前記メモリモジュールに
    書き出される毎にデクリメントされるカウンタフィール
    ドとを含む第2の構成、 のいずれかを備えたことを特徴とするマルチプロセッサ
    システム。
  3. 【請求項3】 上位キャッシュメモリと、この上位キャ
    ッシュメモリを管理する上位タグと、前記上位キャッシ
    ュメモリから外部に書き出されるキャッシュラインを一
    時的に保持するライトバッファとを含む上位モジュール
    の外部に、前記上位キャッシュメモリの状態が反映され
    る複製タグを配置し、前記上位モジュールの外部から前
    記上位キャッシュメモリに対するリード要求が発生した
    時、前記複製タグを参照して前記リード要求の対象の前
    記キャッシュラインが前記上位キャッシュメモリ内に存
    在するか否かを判定する複製タグの制御方法であって、 前記複製タグのタグエントリの一部に、当該タグエント
    リに対応した前記上位キャッシュメモリ内のキャッシュ
    ラインが、前記ライトバッファに移動して存在するか否
    かを識別するための識別情報を備えたことを特徴とする
    複製タグの制御方法。
JP05671997A 1997-03-11 1997-03-11 マルチプロセッサシステムおよび複製タグの制御方法 Expired - Fee Related JP3340047B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05671997A JP3340047B2 (ja) 1997-03-11 1997-03-11 マルチプロセッサシステムおよび複製タグの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05671997A JP3340047B2 (ja) 1997-03-11 1997-03-11 マルチプロセッサシステムおよび複製タグの制御方法

Publications (2)

Publication Number Publication Date
JPH10254774A JPH10254774A (ja) 1998-09-25
JP3340047B2 true JP3340047B2 (ja) 2002-10-28

Family

ID=13035307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05671997A Expired - Fee Related JP3340047B2 (ja) 1997-03-11 1997-03-11 マルチプロセッサシステムおよび複製タグの制御方法

Country Status (1)

Country Link
JP (1) JP3340047B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4965974B2 (ja) * 2006-11-14 2012-07-04 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2014182488A (ja) 2013-03-18 2014-09-29 Fujitsu Ltd 演算処理装置、及び演算処理装置の制御方法

Also Published As

Publication number Publication date
JPH10254774A (ja) 1998-09-25

Similar Documents

Publication Publication Date Title
US6021468A (en) Cache coherency protocol with efficient write-through aliasing
US5953538A (en) Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US6564306B2 (en) Apparatus and method for performing speculative cache directory tag updates
US6021456A (en) Method for communicating interrupt data structure in a multi-processor computer system
US5940856A (en) Cache intervention from only one of many cache lines sharing an unmodified value
US6128711A (en) Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
US5963974A (en) Cache intervention from a cache line exclusively holding an unmodified value
US5946709A (en) Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing
JP3533355B2 (ja) キャッシュ・メモリ・システム
EP0667578B1 (en) Apparatus and method for checking cache coherency with double snoop mechanism
CA2280125C (en) Non-uniform memory access (numa) data processing system that speculatively issues requests on a node interconnect
US5940864A (en) Shared memory-access priorization method for multiprocessors using caches and snoop responses
CA2271536C (en) Non-uniform memory access (numa) data processing system that buffers potential third node transactions to decrease communication latency
US7577795B2 (en) Disowning cache entries on aging out of the entry
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
US5943685A (en) Method of shared intervention via a single data provider among shared caches for SMP bus
US6751705B1 (en) Cache line converter
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
US10949292B1 (en) Memory interface having data signal path and tag signal path
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US6085293A (en) Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
WO1997004392A1 (en) Shared cache memory device
WO1998047071A1 (en) Read operations in multiprocessor computer system

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees