JP2642851B2 - キャッシュメモリ制御方式 - Google Patents

キャッシュメモリ制御方式

Info

Publication number
JP2642851B2
JP2642851B2 JP5255303A JP25530393A JP2642851B2 JP 2642851 B2 JP2642851 B2 JP 2642851B2 JP 5255303 A JP5255303 A JP 5255303A JP 25530393 A JP25530393 A JP 25530393A JP 2642851 B2 JP2642851 B2 JP 2642851B2
Authority
JP
Japan
Prior art keywords
data block
processor
control circuit
data
shared memory
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 - Lifetime
Application number
JP5255303A
Other languages
English (en)
Other versions
JPH0793217A (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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP5255303A priority Critical patent/JP2642851B2/ja
Publication of JPH0793217A publication Critical patent/JPH0793217A/ja
Application granted granted Critical
Publication of JP2642851B2 publication Critical patent/JP2642851B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は共有バス結合の並列計算
機システムにおける、プログラム実行の高速化を目指し
たキャッシュメモリ制御方式に関する。
【0002】
【従来の技術】従来、共有バス結合の並列計算機システ
ムにおけるキャッシュメモリについては”A Low―overh
ead Coherence Solution for Multipurocessors with P
rivateCache Memories”(M.S.Papamacrosほか、 Proc.
of 11th Int. Symp. on Computer Architecture, IEE
E, 1984., pp.348―354)において論じられている。
【0003】上記従来技術では、共有メモリに共有バス
を介して複数のプロセッサエレメント(以下PEと略
す)が接続されている。各PE毎にアドレスが連続する
特定ワード数のデータ(キャッシュブロック)とアドレ
ス情報、有効フラグおよびキャッシュブロック状態を関
連づけたストアインのキャッシュを設けている。各PE
は自己に属するキャッシュに、そのPE内のcpuから
要求されたデータを含むデータブロックがないとき、共
有バスを介して他のPEと共有メモリに対してそのデー
タのアドレスを指定するデータ転送要求を出す。共有メ
モリ制御回路は共有メモリからそのデータブロックを要
求元PEへ送る。但し、いずれかのPEが、そのデータ
ブロックを自己のキャッシュ内に有し、かつ、それを更
新済みのときには、そのPEが要求元PEにそのデータ
ブロックを転送する。各PEは、自己のキャッシュ内の
データブロックを更新したとき、他のPEにそのブロッ
クの無効コマンドを送る。各キャッシュが共有バスに出
力される無効コマンドのアドレス部分を照合し、自分が
キャッシュしているブロックの有効フラグを無効とする
ことによりキャッシュの一貫性を保つ。
【0004】
【発明が解決しようとする課題】上記従来技術では、ど
のキャッシュにも保持されていないブロックについてい
ずれかのPEから転送要求があった場合、共有メモリに
有効なデータが存在しなくても、共有メモリがデータを
転送するという問題がある。
【0005】すなわち、例えば、いずれかのブロックの
先頭ワードへの書き込み要求がいずれかのPE内のcp
uにより、全てのPE内で最初に発行されたときには、
その共有メモリ内のそのデータブロックの内容が無効で
あることがあり得る。しかし、上記従来技術では、この
データブロックを共有メモリから要求元PEに転送する
という問題を有する。
【0006】本発明は、上記の問題点を解決した、キャ
ッシュメモリ制御方式を提供することを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、共有メモリのキャッシュブロック情報
として、有効フラグを追加し、この有効フラグは、プロ
セッサからの無効化コマンドによりリセットし、いずれ
かのPEからキャッシュからの書き戻しによってセット
する。共有メモリにもいずれのPE内のキャッシュメモ
リにも有効フラグがセットされていないアドレスのキャ
ッシュブロック要求についてはブロック転送を行わない
ように制御する。
【0008】
【作用】共有メモリ内の各ブロックに対する有効フラグ
を参照することによって、共有メモリ内の無効なデータ
ブロックの転送を回避できる。
【0009】
【実施例】以下、本発明の一実施例を図1から図3によ
り説明する。 図1は、本発明の一実施例の構成図であ
る。3プロセッサエレメントPE〜PEと共有メモ
リ1を、共有バス2を介して接続し、メモリ共有型マル
チプロセッサを構成している。
【0010】本実施例の、PE、PE、PEのC
PU(Central Processing Uni
t)40はマイコン等により実現できる。各PEには、
有効フラグ、キャッシュ状態(たとえば、更新の有無な
ど)、データブロックのアドレス、キャッシュブロック
データを保持するストアインタイプのキャッシュ41、
42または43を備える。
【0011】共有メモリ1は、データブロック単位にデ
ータ有効フラグを備える。本実施例では、一例として各
データブロックは2ワードからなると仮定する。共有メ
モリ制御回路11は、いずれかのPEから、データブロ
ックの転送要求コマンドが共有バス2に発行されたと
き、そのコマンドが指定するデータアドレスに対応する
有効フラグを参照し、そのフラグが有効を示していない
場合、応答信号”0”を送ることにより要求されたデー
タブロックの転送をしないようになっている。
【0012】さて、図2は本発明によるキャッシュ書き
込み制御フロー100である。共有メモリおよび各PE
内のキャッシュ上のブロックの有効フラグを”0”に初
期化されとする。
【0013】(1)あるPEが、その中のcpuから発
行されたメモリ書き込み命令を実行したときには、キャ
ッシュミス判定c1で、書き込みアドレスを含むデータ
ブロックがそのPE内のキャッシュに存在するか否かを
判定する。
【0014】(2)書き込みアドレスのデータを含むデ
ータブロックが、当該キャッシュに存在するなら、その
PEは、キャッシュに対して書き込み制御c5を行う。
この書き込み制御では、そのブロックにcpuから要求
されたデータを書き込むとともに、共有バス2上にその
データブロックのアドレスを指定する無効化コマンドを
発行する。このコマンドに応答して、共有メモリ制御回
路11は、共有メモリ上の対応するデータブロックを無
効とし、他のPEは、そのデータブロックを自己のキャ
ッシュ内に有効なデータとして有するときには、それを
無効とする。
【0015】(3)書き込みアドレスを含むキャッシュ
ブロックが当該キャッシュに存在しないなら、c2でそ
のブロックと置き換えるための古いキャッシュブロック
を選択する。選択した古いブロックの有効フラグがオン
で、かつ、キャッシュ状態がデータが変更されているこ
とを示すなら、この古いブロックを共有メモリ1に書き
戻すコマンドを共有バス2に発行する。このコマンドに
応答して、共有メモリ制御回路11は共有メモリ1にこ
のブロックを書き込み、対応する有効フラグを”1”に
セットする。他のPEは、このコマンドには応答しな
い。
【0016】(4)そのPEはさらにc2で、共有バス
2に、書き込みアドレスのデータを含むデータブロック
の転送要求コマンドを発行する。
【0017】(5)このコマンドに応答して、共有メモ
リ制御回路11および他のPEにおいて、書き込みアド
レスに対応する共有メモリ1あるいはそれぞれのPE内
のキャッシュ内データブロックが有効かの判定c3を行
なう。共有メモリ制御回路11および他のPEは、判定
したデータブロックが有効であるときには、応答信号と
して‘1’を共有バス2に送る。
【0018】(6)いずれかのPEが応答信号“1”を
出力した場合、そのPEから要求元PEにそのデータブ
ロックを転送する。
【0019】他のPEから応答信号“1”がなくて、共
有メモリ制御回路11から応答信号“1”がある場合、
この回路11は、共有メモリ1から、キャッシュブロッ
クデータの要求元PEへの転送c4を行う。回路11
は、どのPEからも”1”の応答がない場合でも、共有
メモリ1内の有効フラグが0のときには、このデータブ
ロックを転送しないことが本実施例の特徴である。
【0020】(7)要求元PEはさらに書き込み制御c
5を行って処理を終える。この処理では、新たなキャッ
シュブロックが転送されたときには、先に選択された置
換用の古いブロックをこのブロックで置換した後で書き
込みを行う。新たなキャッシュブロックが転送されない
ときには、置換用のブロックの記憶位置に新たなブロッ
クを登録し、そこに書き込みを行う。
【0021】図3は本発明によるキャッシュ読みだし制
御フロー200である。
【0022】(1)PEはcpuからの読みだし命令の
実行時に、キャッシュミス判定d1で、読みだしアドレ
スのデータを含むブロックがそのPE内のキャッシュに
存在するか否かを判定する。
【0023】(2)そのブロックが当該キャッシュに存
在するなら、そのPEは、キャッシュに対して読みだし
制御d6を行って処理を終える。
【0024】(3)読みだしアドレスを含むブロックが
当該キャッシュに存在しないなら、d2で、そのPE
は、そのブロックと置き換えるべき古いブロックをキャ
ッシュ40から選択する。選択した古いブロックが有効
で、かつ、変更されているなら古いそのブロックを共有
メモリ1に書き戻すコマンドを共有バス2に発行する。
共有メモリ制御回路はこのコマンドに応答して、共有メ
モリ1に、このデータを書き戻し、対応する有効フラグ
を”1”にセットする。
【0025】(4)そのPEはさらにd2で、共有バス
2に対して、その読み出しアドレスのデータを含むブロ
ックの転送要求コマンドを発行する。
【0026】(5)共有メモリ制御回路11および他の
PEにおいて、読みだしアドレスに対応する有効フラグ
の判定d3を行なう。これは前述のステップc3と同様
である。
【0027】(6)他のPEから’1’の応答がある場
合、その、他のPEから要求元PEにデータブロックを
転送し、いずれのPEからも’1’の応答がなく、か
つ、共有メモリ制御回路11から’1’の応答がある場
合、この回路11は、共有メモリ1から、そのブロック
の転送を行う(d4)。
【0028】(7)他のPEからも制御回路11から
も、’1’の応答がない場合、要求元PEでは例外発生
割り込みを発生する(d5)。この例外発生の割り込み
により、プログラムの異常のチェックを行うことができ
る。
【0029】(8)要求元PEは、そこへのデータブロ
ックの転送があった場合、キャッシュに対して読みだし
制御d6を行って処理を終える。すなわち、そのデータ
ブロックをキャッシュに登録した後、cpuから要求さ
れたデータをcpuに送る。
【0030】以上の説明のように、本実施例によれば、
並列計算機システムにおいて、無駄なデータ転送を削減
することができる。
【0031】
【発明の効果】本発明によれば、共有メモリ上の有効デ
ータの有無を知ることができるので、書き込み前のキャ
ッシュブロックデータの無駄な転送を削減し、処理を高
速化する効果がある。
【図面の簡単な説明】
【図1】図1は、本発明の一実施例の構成図である。
【図2】図2は本発明によるキャッシュ書き込み制御を
表わしたフローチャート。
【図3】図3は本発明によるキャッシュ読みだし制御を
表わしたフローチャート。
【符号の説明】
1…共有メモリ、11…共有メモリ制御回路、2…共有
バス、41〜43…キャッシュ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井門 徳安 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 平4−137052(JP,A) 特開 平4−98338(JP,A)

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】共有バスで結合され、それぞれストアイ
    ンタイプのキャッシュメモリを有する複数のプロセッサ
    エレメントと、該複数のプロセッサエレメントにより共
    有されたメモリと、該共有メモリへのアクセスを制御す
    る該共有バスに接続された制御回路とを有し、いずれか
    のプロセッサエレメントが書き込みまたは読み出しのた
    めにアクセスするデータを含むデータブロックがそのプ
    ロセッサエレメント内のキャッシュに保持されていない
    ときには、そのデータブロックの転送を上記制御回路お
    よび他のプロセッサエレメントに要求し、そのデータブ
    ロックを有効なデータブロックとして保持する他のプロ
    セッサエレメントあるいは上記共有メモリからその要求
    されたデータブロックを上記要求元プロセッサエレメン
    トに転送するバス結合のマルチプロセッサシステムにお
    いて、 いずれかのプロセッサエレメントがそのプロセッサエレ
    メント内のキャッシュメモリに保持されたデータを書き
    換えたときには、そのプロセッサエレメントによりその
    データブロックの無効を上記制御回路および他のプロセ
    ッサエレメントに要求し、 この要求に応答して、上記制御回路は、上記共有メモリ
    にそのデータブロックが有効なデータとして保持されて
    いるときには、そのデータブロックを無効とし、他のプ
    ロセッサエレメントにおいて、それぞれのプロセッサエ
    レメント内のキヤッシュメモリにそのデータブロックが
    有効なデータとして保持されているときには、そのデー
    タブロックを無効とし、 いずれかのプロセッサエレメントが、その中のキャッシ
    ュメモリに保持されたデータブロックを該共有メモリへ
    書き戻しすることを該制御回路に要求したときには、該
    制御回路によりその共有メモリ内にそのデータブロック
    を書き戻すとともに、そのデータブロックを有効とし、 いずれかのプロセッサエレメントが他のプロセッサエレ
    メントおよび該制御回路にデータブロックの転送を要求
    したとき、該制御回路においては、該共有メモリ内にそ
    のデータブロックが有効なデータブロックとして保持さ
    れているかを判別し、その判別結果に依存してそのデー
    タブロックを該共有メモリから転送するか否かを制御す
    るキャッシュメモリ制御方式。
  2. 【請求項2】いずれかのプロセッサエレメントが他のプ
    ロセッサエレメントおよび該制御回路に書き込みのため
    にデーダブロックの転送要求をした場合において、該共
    有メモリおよび該他のプロセッサエレメントのいずれか
    らもそのデータブロックが転送されないときには、転送
    要求元のプロセッサエレメントにおいて、新たなデータ
    ブロックを書き込むための領域を確保し、その確保され
    た領域に該要求元プロセッサエレメントが要求した書き
    込みデータを書き込む請求項1記載のキャッシュメモリ
    制御方式。
  3. 【請求項3】いずれかのプロセッサエレメントが他のプ
    ロセッサエレメントおよび該制御回路に読み出しのため
    にデータブロックの転送要求をした場合において、該共
    有メモリおよび該他のプロセッサエレメントのいずれか
    らもそのデータブロックが転送されないときには、転送
    要求元のプロセッサエレメントにおいて、例外割込を発
    生する請求項1記載のキャッシュメモリ制御方式。
JP5255303A 1993-09-20 1993-09-20 キャッシュメモリ制御方式 Expired - Lifetime JP2642851B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5255303A JP2642851B2 (ja) 1993-09-20 1993-09-20 キャッシュメモリ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5255303A JP2642851B2 (ja) 1993-09-20 1993-09-20 キャッシュメモリ制御方式

Publications (2)

Publication Number Publication Date
JPH0793217A JPH0793217A (ja) 1995-04-07
JP2642851B2 true JP2642851B2 (ja) 1997-08-20

Family

ID=17276907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5255303A Expired - Lifetime JP2642851B2 (ja) 1993-09-20 1993-09-20 キャッシュメモリ制御方式

Country Status (1)

Country Link
JP (1) JP2642851B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks

Also Published As

Publication number Publication date
JPH0793217A (ja) 1995-04-07

Similar Documents

Publication Publication Date Title
US6021468A (en) Cache coherency protocol with efficient write-through aliasing
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5155824A (en) System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US7174431B2 (en) Mechanism for resolving ambiguous invalidates in a computer system
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
KR100330935B1 (ko) 최적화된 캐시 동작을 독립적으로 구현하는 캐시 일관성 프로토콜
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US5249284A (en) Method and system for maintaining data coherency between main and cache memories
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
KR100515059B1 (ko) 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US5694575A (en) Direct I/O control system with processor, main memory, and cache employing data consistency retaining scheme
JP2642064B2 (ja) 非同期dmaキャッシュ
US20040068619A1 (en) Linked-list early race resolution mechanism
WO1997004392A1 (en) Shared cache memory device
JP2642851B2 (ja) キャッシュメモリ制御方式
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
JP3626609B2 (ja) マルチプロセッサシステム
US6021466A (en) Transferring data between caches in a multiple processor environment
JP2002116954A (ja) キャッシュシステム
JPS60237553A (ja) キヤツシユコヒ−レンスシステム
JPH0529943B2 (ja)
JP3081635B2 (ja) キャッシュメモリの無効化処理装置および無効化制御方法