JPH05210590A - 書き込みキャッシュメモリのための装置および方法 - Google Patents

書き込みキャッシュメモリのための装置および方法

Info

Publication number
JPH05210590A
JPH05210590A JP4266883A JP26688392A JPH05210590A JP H05210590 A JPH05210590 A JP H05210590A JP 4266883 A JP4266883 A JP 4266883A JP 26688392 A JP26688392 A JP 26688392A JP H05210590 A JPH05210590 A JP H05210590A
Authority
JP
Japan
Prior art keywords
data
processor
cache
write
cache 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.)
Pending
Application number
JP4266883A
Other languages
English (en)
Inventor
Craig A Walrath
エイ.ウォールラス クレイグ
Lee W Hoevel
ダブリュー.フーヴェル リー
Randolph G Young
ジー.ヤング ランドルフ
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.)
NCR International Inc
Original Assignee
NCR International 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 NCR International Inc filed Critical NCR International Inc
Publication of JPH05210590A publication Critical patent/JPH05210590A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】読み取りでない、データラインへの書き込みの
みを格納する新規なキャッシュメモリおよびその作動方
法を与える。 【構成】この書き込みキャッシュ16は読み取りデータ
を格納せず、読み取りヒットに直接応答することもしな
い。関連のプロセッサ12からの読み取りはすべて、当
該読み取りリクエストに対応するデータラインを供給す
る主メモリ20に案内される。もしもこのローカル書き
込みキャッシュ16に含まれるローカルデータが、該読
み取りのすべてまたは一部に対応する修正済みデータラ
インを有すると、それが主メモリからのデータと統合さ
れ、関連のプロセッサ12に送られる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプロセッサに供するキャ
ッシュメモリに関し、特にシステムバスを介して本来は
主メモリに書き込まれるデータオペランドをまたは指令
を格納するためのキャッシュメモリを与える方法および
装置に関する。
【0002】
【従来の技術】キャッシュメモリは元来、プロセッサの
読み取りおよび書き込みアクセス時間を向上させるため
にコンピューターシステムに付加されたものである。メ
モリアドレスがアクセスされると、次にアクセスされる
メモリアドレスは前回のメモリアドレスに近接した別の
アドレスとなる可能性が高いということがプロセッサア
クセスのパターンの分析から判明した。そのような可能
性が高いのは、データオペランドおよびマシン指令はし
ばしば主メモリ内の連続的ブロック内に組織的に格納さ
れているからである。もしもプロセッサが一つのブロッ
ク内でデータまたは指令にアクセスしているなら、その
後続のアクセスはそのブロックに対して行われる可能性
が高い。その結果、キャッシュ化されてないアドレスが
アクセスされたときはプロセッサはそのアドレスが関連
する多重ラインまたはブロック全体を読み取り、そのラ
インもしくはブロックをそのキャッシュメモリ内に格納
する。
【0003】プロセッサアクセス時間の改善のために通
常使用されるキャッシュメモリも一型式はライト-スル
ーキャッシュ(Write-through cache)である。この型
式のキャッシュは、プロセッサと、このプロセッサを主
メモリに接続するシステムバスとの間のどこかでプロセ
ッサバスに接続する。このキャッシュメモリは代表的に
は可能なかぎりそのプロセッサに近くに配置される。こ
のように接続することにより、この型式のキャッシュメ
モリは、主メモリへのプロセッサのアクセスを監視す
る。もしもアクセスされるデータまたは指令がキャッシ
ュメモリ内に現在格納されているなら、当該プロセッサ
によりアドレスされたそのデータまたは指令をその格納
部から供給することにより、そのキャッシュメモリがそ
のアクセスを完了する。このようにしてそのアクセスが
読み取られたとすると、キャッシュメモリの存在により
その主メモリに対するシステムバスバックプレーン(sy
stem bus backplane)およびそのデータまたは指令の返
却機能を通して、プロセッサのアクセスが節約される。
【0004】もしもプロセッサによるこのアクセスがキ
ャッシュメモリ内に格納されていないデータまたは指令
を求めるための読み取りオペレーションであると、プロ
セッサまたは他の何らかのメモリアクセス装置が主メモ
リから当該データまたは指令が格納されているブロック
を読み取り、このブロックをキャッシュメモリ内に格納
する。その後このデータまたは指令は、そのキャッシュ
メモリから読み取ることができる。
【0005】もしもプロセッサ等によるそのアクセスが
キャッシュメモリ内に格納されていないアドレスロケー
ションデータまたは指令への書き込みオペレーションで
あると、当該プロセッサまたは他のメモリアクセス装置
がそのデータまたは指令をキャッシュメモリに書き込む
と共に主メモリへもそのデータまたは指令を書き込む。
【0006】ライトスルーキャッシュメモリは単一プロ
セッサシステムにとって優れた方法である。その理由
は、キャッシュメモリおよび主メモリはデータコヒーレ
ントであることが保証されているからである。しかし、
各書き込みはシステムバスを経由して主メモリへ到達す
るので、システムバス上の書き込み通行量(write traf
fic)はライト-スルーキャッシュメモリ構成によっては
低減されない。さらに、多重のプロセッサおよびキャッ
シュを有するシステムでは、主メモリおよび多重キャッ
シュメモリ間でデータの一貫性を保持するために必要な
アクセスは、システムバス通行量を顕著に増大させるこ
とになる。その結果、多重ライト-スルーキャッシュメ
モリ付き多重プロセッサを有するコンピューターシステ
ムにとってシステムバスのデータ許容量が制限的要因と
なる。
【0007】
【発明が解決しようとする課題】そこで本発明は、その
プロセッサからの書き込みを局所的に格納し、データコ
ヒーレン達成上必要なときのみ、主メモリにこのデータ
を書き戻す書き込みキャッシュ構成を与えることであ
る。
【0008】本発明のもう一つの課題は局所的に書き込
みを格納し、格納された書き込みデータを主メモリとコ
ヒーレントに保持すべく書き込みキャッシュを作動させ
る方法を与えることである。
【0009】
【課題を解決するための手段】簡潔に述べると、本発明
の一局面において上記の諸課題は、プロセッサバスによ
りプロセッサに接続されたキャッシュメモリ装置を与え
ることにより達成される。このキャッシュメモリ装置に
は、プロセッサによる主メモリラインアドレスへの読み
取りを当該キャッシュメモリ装置内に格納されているア
ドレスおよびキャッシュタグと比較すると共にもしもそ
のキャッシュメモリ装置内に格納されているデータライ
ンが主メモリ内に格納されている対応のデータラインよ
りも近時のデータバイトのコピーを有するか否かを決定
する装置が含まれる。読み取り命令に応じて主メモリか
ら返されるデータライン中にデータバイトの近時コピー
を統合すると共にその統合したデータラインをプロセッ
サに送る装置が、上記比較装置に接続され、かつその比
較装置によりイネーブル化される。このキャッシュメモ
リ装置はまた、プロセッサにより主メモリラインアドレ
スに書き込まれるべきデータラインを阻止し、その代わ
りにそのデータラインをキャッシュメモリ装置内に格納
する装置も含む。
【0010】上記の諸課題は、プロセッサと、キャッシ
ュコントローラおよびキャッシュメモリアレーを有する
書き込みキャッシュとの間でデータ転送する本発明の方
法を与えることにより達成される。この方法は、該プロ
セッサにより主メモリからデータラインを読み取るステ
ップと、該プロセッサにより読み取られた各データライ
ンのアドレスを該キャッシュメモリアレー内に格納され
ているデータラインのアドレスと比較するステップと、
もしも該プロセッサにより読み取られたデータラインの
アドレスが該キャッシュメモリアレーに格納されている
ラインのアドレスに対応するなら、該書き込みキャッシ
ュコントローラが、読み取ったデータライン内の各修正
済みのバイトを同定し、該データラインが該プロセッサ
へ返される際にその主メモリから読み取られたデータラ
インと該修正済み各バイトを統合するステップと、もし
も該プロセッサにより読み取られたデータラインのアド
レスが該キャッシュメモリアレーに格納されているいか
なるラインのアドレスにも対応しないならデータ統合は
行わず、該キャッシュはキャッシュヒットがなくても、
主メモリからデータラインが返される際にそのデータラ
インを該キャッシュ中に格納するためのラインアロケー
トをさせないステップとを含む。
【0011】本発明に関する上記の説明に現われる諸課
題その他の課題、本発明の適用可能な範囲は、以下の詳
細な説明および添付の図面から一層明確になろう。ただ
し以下の詳細な説明は単に例示のためであり、本発明の
範囲内で種々の設計変更が可能であることを了解された
い。
【0012】
【実施例】図1を見ると本発明の一実施例に基づくコン
ピューターシステム10のブロック線図が示されてい
る。このコンピューターシステム10はプロセッサ12
を有する。プロセッサ12は二方向プロセッサバス14
により書き込みキャッシュメモリ16に接続される。書
き込みキャッシュメモリ16はシステムバス18に接続
される。システムバス18は書き込みキャッシュメモリ
16にも接続されることに加えて主メモリ20および入
出力バス22に接続される。
【0013】主メモリ20は,アレー状に一体的に接続
された多数のRAMチップ(図示して無し)のような大
容量RAM格納装置である。主メモリ20はまた、コン
ピューターシステム10のいくつかのオペレティング指
令(operating instructions)に対する不揮発格納手段
を与えるためのROM部分を含むことができる。そのよ
うなオペレティング指令はとりわけ、入出力バス22か
ら主メモリ20中に負荷されるデータブロックおよび指
令を入力する。入出力バス22はさらにディスクドライ
ブ、テープドライブその他の大容量格納装置(図示して
なし)等の大容量格納周辺機器に接続される。上記の負
荷を行った後では、主メモリ20はその中にブロック状
のデータオペランドおよび指令を有する。
【0014】初め、プロセッサ12は主メモリ20から
受信した指令にしたがって主メモリ20から受けたデー
タオペランドを処理する。これは書き込みキャッシュメ
モリ16が初めは空であるからである。さらに書き込み
キャッシュメモリ16は、プロセッサ12からの主メモ
リ20へのすべての読み取りオペレーションに対する経
路(a path)を与える。データオペランドおよび指令
は、読み取りオペレーションの一部として書き込みキャ
ッシュメモリ16中には格納されず、プロセッサ12に
よる読み取りオペレーションに対する応答としてもメモ
リ16中に格納されることもない。それゆえ書き込みキ
ャッシュメモリ16は最初はデータ処理に参加しない。
【0015】初期処理の後、プロセッサ12は書き込み
オペレーションにより主メモリ20へ書き込むべきいく
つかのデータオペランドおよび指令を有することにな
る。このデータもしくは指令は、いずれは主メモリアド
レスに書き込まれるが、その書き込みオペレーションは
書き込みキャッシュメモリ16により阻止され、その中
に格納される。この阻止および書き込みキャッシュメモ
リ16内への格納が行われるので、システムバス18を
介して行われるデータオペランドもしくは指令の送信お
よび主メモリ20内への格納はされない。
【0016】書き込みキャッシュメモリ16はラインと
呼ばれる多重バイトユニット形態で書き込みデータを格
納する。データブロックは一つ以上のラインからなる。
主メモリ20もライン形態でデータを格納する。各ライ
ンはその中に16もしくは32バイトを有する。16バ
イトライン、すなわち128ビットライン、はデフォル
トラインサイズであり、32ビットラインすなわち25
6ビットラインは、システムバス18が少なくとも64
データ線を有するシステムで選択的に設定できるサイズ
である。書き込みキャッシュメモリ16が無いと、ライ
ンの書き込み伴って生じたラインのただ一ビットの変更
でもライン全体の書き込みを主メモリ20に行わなけれ
ばならない場合がある。書き込みキャッシュメモリ16
があると、キャッシュメモリへのラインの書き込み後に
生じたライン内の任意の変更は、書き込みキャッシュメ
モリ16内の対応するラインに対して行われる。
【0017】書き込みキャッシュメモリ16内に格納さ
れていないラインへのプロセッサ12による書き込み
は、ライトミス(write miss)と呼ばれ、これは書き込
みキャッシュメモリ16に主メモリ20への「所有権獲
得の書き込みオペレーション(write-for-ownership op
eration)」を行わせる。このオペレーションは主メモ
リ20内のラインステータス表(Line status table, L
ST)中に書き込みキャッシュメモリ16を当該ライン所
有者として書き込む。この表LSTは次いでその所有権
が解除されるまでは書き込みキャッシュメモリ16がそ
のラインの所有者であることを示す。このような表LS
Tの内容は後述するように多重プロセッサシステムの場
合に一層重要となる。
【0018】書き込みキャッシュメモリ16はやがて一
杯になり、次のデータラインオペランドもしくは指令の
書き込みを格納することができなくなる。そのような事
情が起きたとき、書き込みキャッシュメモリ16は最古
に使用されたデータ(leastrecently used)の置換ルー
チンを使用する。このルーチンでは最古に使用されたラ
インが無効化され、書き込みすべき最近のラインで置換
される。書き込みキャッシュメモリ16は最古に使用さ
れたデータラインを主メモリ20に書き戻す。この時点
で書き込みキャッシュメモリ16がもはや当該データラ
インの現所有者としてはリストされないように表が更新
される。この書き込みキャッシュプロトコルはまた、も
しも別のプロセッサもしくはコントローラ、例えば入出
力バス22上の入出力バス(図示して無し)、がそのラ
インを主メモリ20から読み取りしようとすると、主メ
モリ20への書き込みリクエストを行う。その場合、主
メモリコントローラ(図示して無し)がその表から、書
き込みキャッシュメモリ16がそのラインを所有するこ
とを決定し、書き込みキャッシュメモリ16にアクセス
してそのラインを主メモリ20に書き戻すことを指令す
る。このようにしてコヒーレンシーコピーは別のプロセ
ッサもしくはコントローラが各データラインを必要とす
るときは、必ずそれが与えられる。
【0019】もしもラインが一度変更されただけで主メ
モリへ書き込まれたなら、書き込みキャッシュメモリ1
6が存在することによる利益は大したことはない。実
際、初期アロケーションの際に所有権獲得書き込みによ
り余計な処理時間が費やされる可能性がある。しかしな
がらもしも最古に使用したデータが置換される前にデー
タラインが20回更新されるなら、システムバス18を
通して行われる書き込みオペレーションに費やされる1
9回分の時間が回避できる。これは書き込みキャッシュ
メモリの一つの利点である。
【0020】ここで図2を参照して本発明の第二実施例
を説明する。図2においてコンピューターシステム40
は第一レベルキャッシュメモリ43に接続されたプロセ
ッサ42を有する。第一レベルキャッシュメモリ43は
高速並列バス44により書き込みキャッシュメモリ46
に接続される。キャッシュメモリ46はプロセッサ42
に関しては第二レベルのキャッシュメモリである。キャ
ッシュメモリ46は図1に示した書き込みキャッシュメ
モリ16と実質的に同一である。キャッシュメモリ46
はシステムバス48に接続される。システムバス48は
キャッシュメモリ46への接続と共に主メモリ50およ
び入出力バス52にも接続する。
【0021】もしも第一レベルキャッシュメモリ43が
ライト-スルー型のキャッシュメモリであると、キャッ
シュメモリ46はシステムバス48上の書き込み通行量
を低減する点で非常に効果的である。ライト-スルー(w
rite through)キャッシュメモリの場合、ライト-スル
ーキャッシュメモリに格納されたと同一のラインが主メ
モリまで書き込まれる。キャッシュメモリ46は、第一
レベルキャッシュメモリ43からのデータオペランドお
よび指令を阻止して第二キャッシュメモリ46内に格納
することにより、実質的にシステムバス通行量を低減す
る。
【0022】キャッシュメモリ46を作動させるための
プロトコルは図1に関して上に説明した書き込みキャッ
シュメモリ16のオペレーションプロトコルと実質的に
同一である。
【0023】図3には多重コンピューターシステム60
が示されている。多重コンピューターシステム60はプ
ロセッサバス641-64Nに各々接続された対応のプロ
セッサ621-62N、およびプロセッサバス651-65N
各々に接続された対応のプロセッサ631-63Nを有す
る。プロセッサバス641-64N、651-65Nはそれぞ
れ、前記の書き込みキャッシュメモリ16、46と実質
的に各同一な書き込みキャッシュメモリ661-66N
671-67Nに接続される。
【0024】書き込みキャッシュメモリ661-66N
671-67Nはそれぞれシステムバス68、69に実質
的に並列に接続される。システムバス68、69はまた
二重ポート付き主メモリ70に接続される。主メモリ7
0はM個のインターリーブ(interleave)部分711-7
Nからなる。M個のインターリーブ部分711-71M
メモリアクセスを高速にする。なぜならばシステムバス
69上のプロセッサ631-63Nの別の一つが別のイン
ターリーブ部分にアクセスする間も、例えばシステムバ
ス68上のプロセッサ621-62Nの一つがメモリイン
ターリーブ部分にアクセスできるからである。システム
バス68、69に二重ポート付き入出力バス72が接続
されており、図1、2の入出力バス22、52のように
周辺装置にアクセスを与える。
【0025】システムバス68、69は実質的に同一
で、二重ポート付きメモリ70に関して対称的である。
従って、簡単のため、システムバス68およびプロセッ
サ621-62Nおよびこれらに対応の書き込みキャッシ
ュメモリ661-66Nのみを詳細に説明する。しかしそ
の説明は、書き込みキャッシュメモリ671-67Nを具
えたシステムバス69およびプロセッサ631-63N
対しても当てはまることを了解されたい。
【0026】プロセッサ621-62Nおよびインターリ
ーブ化された主メモリ70を具えたコンピューターシス
テム60は、図1および図2に示した単一プロセッサコ
ンピューターシステム10、40に較べてデータ処理お
よび格納の能力を増倍したことを理解されたい。しかし
また、システムバス68は未だ能力を増倍していないこ
とを理解されたい。このようにして、図3に示すように
プロセッサおよびメモリ資産を拡大(scaling up)する
ためには、可能なかぎりシステムバス68上の通行量を
低減しなければならない。書き込みキャッシュメモリ6
1-66Nは書き込みの多くを阻止し、データコヒーレ
ンシーの達成のためキャッシュ化したデータオペランド
および指令を主メモリ70へ書き込む必要が生ずる(例
えばコンピュータープログラムの一部が完了した場合)
までこれらの書き込みをシステムバス68から遠退けて
おくことにより、システムバスの必要通行量を低減す
る。主メモリ70への書き込みはプログラムの一部が完
了したとき等のようにそれが必要になるまで待つことに
より、その結果生じたオペランドおよび指令、ライン内
の多重書き込みが結合され、主メモリ70へは最終的結
果のデータオペランドおよび指令のみが書き込まれる。
これによって、システムバス68経由の中間的ライン書
き込みが防止される。
【0027】データオペランドおよび指令は通常、プロ
グラム部分内の指令あるいは最古データのデフォルト置
換のいずれかによって、上述したように各コンピュータ
ープログラム部分の終了時に主メモリ70に書き込まれ
る。データラインを書き戻す他の例は、別のプロセッサ
またはコントローラから寄せられるデータラインのリク
エストがあった場合であるが、これはシステムバス68
上の通行量低減のため、可能なかぎり回避すべきであ
る。
【0028】図4を参照して本発明の別の実施例を説明
する。コンピューターシステム100は多重プロセッサ
1021-102p、プロセッサ1031-103pを有する
ことが図示されている。プロセッサ1021-102p
それぞれのプロセッサバス1041-104pによりそれ
ぞれの第一レベルキャッシュメモリ1061-106p
接続され、プロセッサ1031-103pはそれぞれのプ
ロセッサバス1051-105pによりそれぞれの第一レ
ベルキャッシュメモリ1071-107pに接続される。
各々の第一レベルキャッシュメモリ1061-106p
図2に示した第一キャッシュメモリ43と実質的に同じ
である。各々の第一レベルキャッシュメモリ1061-1
06p、1071-107pはそれぞれの高速並列バス10
1-108p、1091-109pに接続される。各高速並
列バス1081-108p、1091-109pはそれぞれの
書き込みキャッシュメモリ1101-110p、書き込み
キャッシュメモリ1111-111pに接続される。各書
き込みキャッシュメモリ1101-110pはそれぞれの
高速並列キャッシュバス1121-112pにより高速並
列システムバス116に接続される。同様に、各書き込
みキャッシュメモリ1111-111pはそれぞれの高速
並列キャッシュバス1131-113pにより第に高速並
列システムバス117に接続される。
【0029】システムバス116および117は実質的
に同一であり、二重ポート付きメモリ120および二重
ポート付き入出力バス130に関して対称的である。そ
れゆえ簡単のため、第一キャッシュメモリ1061-10
pおよび書き込みキャッシュメモリ1101-110p
具えたシステムバス116およびプロセッサ1021-1
02pの動作のみを説明する。しかし、その説明はシス
テムバス117および第一レベルキャッシュメモリ10
1-107pと書き込みキャッシュメモリ1111-11
pを備えたプロセッサ1031-103pにもあてはまる
ことを理解されたい。
【0030】主メモリ120はM通り例えば四通りにイ
ンターリーブ化することができる。そのような場合、主
メモリ120はM個のインターリーブ化された部分を有
し、その各々の部分1221-122pはそれ自身のメモ
リバス1241-124Mによりシステムバス116に接
続される。
【0031】図4に示す二レベルのキャッシュメモリ構
成を有するコンピューターシステム100は図2に示し
た単一のコンピューターシステム40と実質的に同じに
動作するが、ただしこれは多重第一レベルキャッシュメ
モリ1061-106pおよび多重書き込みキャッシュメ
モリ1101-110pならびに主メモリ120間のデー
タオペランドおよび指令のコヒーレンシーを維持する追
加的機能をもたなければならない。
【0032】もしも第一レベルキャッシュメモリ106
1-106pが前述したライト-スルー型のものであり、か
つそれらのバス1041-104pと共にそれぞれのプロ
セッサ1021-102p中に集積化されていれば、その
ときの図4の上半分は図5に示すようになる。
【0033】ここで図5を参照して本発明の特定の一実
施例を説明する。二重バスコンピューターシステム10
0の半分は多重プロセッサ1021-102pを有する。
これらのプロセッサ1021-102pはカルフォルニア
州サンタクララ市のインテルコーポレーションにより製
造されているマイクロプロセッサ-型式80486であ
る。各プロセッサ1021-102pはその第一レベルキ
ャッシュメモリとしてオン-チップライト-スルーキャッ
シュメモリ1061-106pを有する。
【0034】オン-チップ第一レベルキャッシュメモリ
1061-106p付き各プロセッサ1021-102pは、
それぞれの高速並列バス1081-108pを介してそれ
ぞれの書き込みキャッシュメモリ1101-110pに接
続する。各書き込みキャッシュメモリ1101-110p
は、下に詳細に説明するように第二レベル書き込みメモ
リとして一体に動作する一組の個別の集積回路からな
る。
【0035】書き込みキャッシュメモリ1101-110
pは高速並列バス1121-112pにより高速システムバ
ス116に接続される。このシステムバス116はま
た、一群のMメモリバス1241-124Mを介して主メ
モリ120にも接続する。主メモリ120はM通りにイ
ンターリーブ化されており、メモリバス1241-124
Mの各々はインターリーブ化された主メモリ120のそ
れぞれの部分に接続される。さらに、システムバス11
6は、インターナショナルビジネスマシーン社製のマイ
クロチャンネルアーキテクチャバスまたは拡張工業標準
アーキテクチャバスのような、少なくとも一つの入出力
バス入出力バス130にも接続される。
【0036】好ましくは書き込みキャッシュメモリ11
1-110pは1kバイトで、128ビットもしくは2
56ビットの選択可能なラインサイズを有する2ウェイ
-関連キャッシュメモリ群である。ラインサイズの選択
に応じて各書き込みキャッシュメモリ1101-110p
一ライン当たり128ビットの64ライン、あるいは一
ライン当たり256ビットの32ラインのいずれかを格
納する。このラインサイズはシステムバス116の制御
ラインの論理状態に従って選択される。このラインサイ
ズは、もしコンピューターシステム100内のいずれか
のデバイスが256ビットラインサイズを利用するな
ら、コンピューターシステム全体について256ビット
ラインサイズが選択される、との規則にしたがって選択
される。そうでないときは、コンピューターシステム1
00についてライン当たり128ビットのデフォルトラ
インサイズが選択される。格納領域がすべて使用されて
いるキャッシュメモリ1101-110pの一つにライト
ミスが生じた後、いずれのラインがキャストアウトされ
るべきか、すなわち主メモリ120内にに書き込み、格
納されるべきか、を決定するため、最古使用データ置換
アルゴリズム(leastrecently used replacement algor
ithm)が使用される。
【0037】前述したように書き込みキャッシュメモリ
1101-110pは三つの特定用途集積回路(applicati
on specific integrated circuits, ASICs)を含むこと
ができる。これらの特定用途集積回路には、書き込みキ
ャッシュデータ(write cache data , WCD)ASIC2
101-210p、および2111-211p、書き込みキャ
ッシュバスインターフェース制御(wtrite cache bus i
nterface control,WCBIC)ASIC2121-212p
ある。WCD ASIC2101-210pはWCD A
SIC2111-211pと同一であり、各書き込みキャ
ッシュメモリ1101-110pは一対のWCD ASI
C2101-210pを有する。WCBIC ASIC2
121-212pはそれぞれのプロセッサ1021-102p
に対するバスインターフェースとして動作すると共に、
いずれのプロセッサメモリアクセスがヒットであり、ミ
スであるかを決定するために使用されるそれぞれの書き
込みキャッシュメモリ1101-110pのキャッシュタ
グを格納する。各書き込みキャッシュメモリ1101-1
10pは、高速プロセッサバス1081-108pのスタブ
長(切り取り長さ、stub lengths)および送信遅延を低
減するため、一対のWCD ASIC2101-210p
および2111-211pを使用する。この構成で、各プ
ロセッサバス1081-108p上の各32ビットプロセ
ッサデータワードは二つの16ビットデータ片に分割さ
れる。その結果得られる16ビットデータ片はバス20
1-205pを介してそれぞれのWCD ASIC21
1-210pに送信されると共に、バス2061-206p
を介してそれぞれのWCD ASIC2111-211p
に送信される。
【0038】図5に示すコンピューターシステムについ
ては、32ビットワードの第一16ビットデータ片を形
成するためにバイト0、1が対にされ、第二16ビット
データ片を形成するためにバイト2、3が対にされる。
当業者ならデータは、バイトイネーブル信号およびデー
タパリティ信号が適法にマッチしているかぎり、任意の
順序の対にできることを了解できよう。このようにして
各書き込みキャッシュメモリ1101-110p内に格納
される書き込みデータは、実際にはWCD ASIC対
2101-210pおよび2111-211p内にバイト対と
して格納され、キャッシュタグはそれぞれのWCBIC
2121-212p内に格納される。
【0039】
【好ましい実施例のオペレーション】各書き込みキャッ
シュメモリ1101-110pは、それぞれのプロセッサ
1021-102pからの書き込みのみを格納する1kバ
イトのイン-ラインキャッシュメモリである。プロセッ
サ1021-102pの一つによるメモリへの読み取りア
クセスは、それぞれの書き込みキャッシュメモリ110
1-110pを読み「回り」する。読み回りとは、もしも
キャッシュヒットまたはミスがあると、主メモリ120
へ至る接続路に沿って読み取りアクセスが回送され、直
接にデータラインオペランドまたは指令をキャッシュメ
モリから読み取ることを言う。プロセッサ1021-10
pにより読み取られたラインが現にそれぞれの書き込
みキャッシュメモリ1101-110p内に格納されてい
る場合、すなわちキャッシュヒットである場合は、主メ
モリ120から返されるデータラインオペランドまたは
指令はそれがプロセッサ1021-102pへ送られる前
にそのラインのために用意された書き込みキャッシュメ
モリ内の修正済みデータと統合される。
【0040】いずれのプロセッサ1021-102pから
でてくるデータもそれぞれのWCDASIC2101-2
10p、2111-211pの対とそれぞれのWCBIC
ASIC2121-212pとに送られる。各WCBIC
ASIC2121-212pは、当該データの目的地、
例えば主メモリ120、を決定するためにデータアドレ
スを復号する。そのデータの目的地およびその内部格納
済みキャッシュタグに従って、各WCBICは、格納、
統合、あるいはデータ送信路設定のため、それぞれのW
CD ASIC2101-210p、2111-211pをど
のように制御すべきかを決定する。
【0041】これらのWCD ASICは四つの主要機
能分野を含む。これらの四つの機能分野は、プロセッサ
インターフェース、キャッシュ格納、キャストアウト-
アンド-ライトバック制御、および読み取り路制御であ
る。
【0042】このWCDのプロセッサインターフェース
は到来する書き込みデータを受信し、その関連のWCB
ICがデータの目的地を決定するまで、このデータを待
機させる。これには二つのレベルのデータポスティング
(data posting、データ保持)が含まれる。第一レベル
のポスティングはそのプロセッサバス1041-104 p
からのデータを直接にラッチ留めする。第二レベルポス
ティングは、データがそのWCD ASIC2101-2
10pの一つに格納されるか、あるいはシステムバス1
16に書き込まれるかするまで、そのデータを保持す
る。第三、第四、および第五最下位プロセッサアドレス
ライン4、3、2もまたそれぞれのデータバイト共にク
ロックされる。これらのアドレスラインはやがてデータ
がキャッシュ化されるとしても当該キャッシュ格納装置
内にそのデータ用メモリ格納位置を選択するため、使用
される。
【0043】このキャッシュ格納装置は各ラインのデー
タビットが格納される実際の格納セルを含む。高速オペ
レーションを得るため、これらはスタティックRAMセ
ルである。各WCD ASIC2101-210p、21
1-211pは、(パリティおよびバイトイネーブルを
除いて)512バイトのスタティックRAM格納空間を
有する。この空間はラインサイズに応じて、もしも12
8ビットラインサイズが使用されるなら64ラインキャ
ッシュメモリとして構成でき、あるいは256ビットラ
インサイズが使用されるなら32ラインキャッシュメモ
リとして構成できる。いずれの構成でもキャッシュ格納
装置内の各ラインはライン内のデータビット、そのライ
ン内の各バイトに対するパリティビット、およびそのラ
イン内の各バイトに対するイネーブルビットを含む。主
メモリアドレスへの書き込みのみがキャッシュ格納装置
内に格納され、入出力バスアドレスまたは類似のアドレ
スはいずれのキャッシュ格納装置内にも格納されない。
【0044】キャッシュ格納装置内に実際にデータを書
き込みするため、二つの制御機能が含まれる。その第一
は、なされるべき書き込みサイクルがあるかいなかを決
定するため、WCBICからの信号を使用する。これは
二つの異なる形態の書き込みサイクル、すなわち書き込
みアロケートおよび書き込みヒット、を行う。書き込み
アロケートでは、新規のラインがキャッシュ中に格納さ
れる。主メモリ120内の表LSTにおけるラインの所
有権を獲得するためには各書き込みアロケート毎にシス
テムバスサイクルが起きなければならない。このサイク
ルが完了すると直ちに、特定のラインに対するローカル
キャッシュコピーと主メモリ120のデータと同じにな
る。書き込みヒットはローカル書き込みキャッシュメモ
リ1101-110pがそのラインの所有権を有するの
で、直ちに処理される。ヒットとは、当該キャッシュメ
モリ内に既に所有されているラインへの書き込みであ
る。書き込みは一バイトの小さなものから現キャッシュ
ラインサイズの大きさのものまで何でもよい。
【0045】各個別スタティックRAMセル(図示して
無し)に第二の独特な制御機能がある。この制御機能
は、バイトイネーブル信号および前述した最下位アドレ
スラインを見るのであるが、これはキャッシュ格納装置
内のどこに書き込みが行われるべきか、いずれのダブル
ワード、いずれのバイトを書き込むか、等を決定するた
めである。
【0046】キャストアウトまたは書き戻し機能はシス
テムバス116へのデータ書き込みのためにキャストア
ウトまたは書き戻しのいずれの場合にも使用される。キ
ャストアウト/書き戻し機能はそのキャッシュ格納装置
からデータを取得し、システムバス116上へ出される
このデータのバーストシーケンスを制御する。
【0047】典型的書き込みアロケートおよび書き戻し
オペレーションでは、書き込みキャッシュメモリ110
1-110p中に書き込まれるデータラインが、現在そこ
に格納されているデータラインに置き換わる。そのよう
な置換のため、現キャッシュデータラインは書き戻しバ
ッファに転送され、その後、到来データラインが書き込
みキャッシュメモリ1101-110p内の空き空間にア
ロケートされる。次いで書き込みキャッシュメモリがそ
のデータラインをその書き戻しバッファから主メモリ1
20へ書き込みを行う。主メモリ120では対応のライ
ンロケーションおよび表LSTの対応エントリーが更新
される。この書き戻しの後はこのラインは所有されな
い。
【0048】名称が示唆するように、キャストアウト/
書き戻し機能はまた、キャストアウトを扱うのにも使用
される。多重プロセッサコンピューターシステムにおい
てはキャッシュコヒーレンシーが保証されなければなら
ない。すべてのキャッシュメモリに対する表LSTが主
メモリ120に維持されており、複数ののキャッシュ間
のデータコヒーレンシーを保持するため、すべての書き
込みキャッシュ1101-110pは主メモリ120から
主メモリ120へデータラインをキャストアウトするた
めの指令を受けることができる。このようにする理由
は、別のプロセッサ1021-102pがそのキャッシュ
メモリにより現在所有されているラインを読み取りたが
るからである。1101-110pの一つに保持されてい
るデータラインをキャストアウトすべきことを指令され
ると、そのWCBIC2121-212pはそのデータラ
インの正しいアドレスとそれに続く制御信号を送る。こ
の制御信号は、WCD ASIC2101-210pの各
対に、キャストアウトのためにアロケートされたバッフ
ァ中に指定のデータラインを書き込むことを指令する。
そのデータラインは次いでこのバッファからシステムバ
ス116へ書き戻しされる。
【0049】書き込みキャッシュメモリ1101-110
pへのすべてのキャストアウト命令はキャストアウト-無
効化信号である。なぜならばキャッシュコヒーレンシー
プロトコルはキャストアウト-共有サイクルを与えない
からである。書き込みキャッシュメモリ1101-110
pはデータの所有権を共有しないので、キャストアウト-
共有サイクルは無いのである。
【0050】読み取り経路機能は、各プロセッサ102
1-102pから来る主メモリ読み取りアクセスが常に主
メモリ120へ行くことを保証する。主メモリ120か
ら読み取りデータが戻ることを待つ間、WCBICはそ
の読み取りが、各書き込みキャッシュメモリ1101-1
10p内に格納されているいずれかのデータラインに対
するヒットであるか否かを決定する。もしも読み取りが
ミスであると、主メモリ120から送信されたデータは
単にそれぞれの書き込みキャッシュメモリ1101-11
pを経由して直接にそのプロセッサ1021-102p
回送される。もしもその読み取りがヒットであると、書
き込みキャッシュメモリ1101-110p内に格納され
ている「汚れた」データ、すなわち修正を受けたデー
タ、は主メモリ120から転送し戻されたデータライン
と統合される。統合されたデータラインはそれぞれのプ
ロセッサ1021-102pまで送られる。
【0051】書き込みキャッシュメモリ1101-110
pの各々は、それぞれのバス1121-112pによりシス
テムバス116に並列に接続される。システムバス11
6、主メモリ120、および入出力バス130に関して
コンピューターシステム100の他の残りの部分はプロ
セッサ1021-102pと相互作用してオペランドおよ
び指令を処理し、有用な結果を与えるが、それらのオペ
レーションは本発明の範囲でない。
【0052】
【効果】以上、関連のプロセッサから書き込みのために
アクセスされるデータに対してのみキャッシュ格納を与
えるキャッシュメモリのオペレーションを与える新規な
書き込みキャッシュメモリ装置および新規な方法を開示
した。すなわち本発明はプロセッサからの書き込みを局
所的に格納し、データコヒーレン達成上必要なときの
み、主メモリにこのデータを書き戻す書き込みキャッシ
ュ構成を与えるものである。また本発明は局所的に書き
込みを格納し、格納された書き込みデータを主メモリと
コヒーレントに保持すべく書き込みキャッシュを作動さ
せる方法を与える。
【0053】本発明は任意の型式のプロセッサに使用で
きるが、オン-チップライト-スルーキャッシュメモリを
有するプロセッサに使用するとき非常に利点がある。本
発明は特に好ましい実施例について例示し、説明したが
本発明の範囲内でいろいろの型式、詳細および用途に変
更できることを了解されたい。例えばいろいろの数のプ
ロセッサを二重システムバスの一つの上に置くこともで
きるし、他のシステムバス上に置くこともできる。
【図面の簡単な説明】
【図1】本発明の一実施例で、書き込みキャッシュおよ
びシステムバスに接続された単一プロセッサ付きコンピ
ューターシステムのブロック線図である。
【図2】本発明のもう一つの実施例で、第一レベルのキ
ャッシュメモリ、書き込みキャッシュおよびシステムバ
スに接続された単一プロセッサ付きコンピューターシス
テムのブロック線図である。
【図3】システムバスに接続された複数の書き込みキャ
ッシュメモリに接続される多重プロセッサ付きコンピュ
ーターシステムのブロック線図で、これは図1に示す実
施例を多重化したものである。
【図4】システムバスに接続された、多重ライト-スル
ーキャッシュメモリと多重書き込みキャッシュメモリに
接続された多重プロセッサとを具えたコンピューターシ
ステムのブロック線図で、図2に示す実施例のプロセッ
サを多重化したものである。
【図5】図4に示す多重プロセッサコンピューターシス
テムの一態様の部分的ブロック線図で、各プロセッサが
その集積回路チップの一部として第一レベルキャッシュ
を有する場合である。
【符号の説明】
10 コンピューターシステム 12 プロセッサ 14 プロセッサバス 16 書き込みキャッシュ 18 システムバス 20 主メモリ 22 入出力バス 40 コンピューターシステム 48 システムバス 60 多重コンピューターシステム 68、69 システムバス 70 二重ポート付きメモリ 100 コンピューターシステム 116、117 システムバス 120 二重ポート付きメモリ
フロントページの続き (72)発明者 リー ダブリュー.フーヴェル アメリカ合衆国 45419 オハイオ、デイ トン、ハーマン アヴェニュー 718 (72)発明者 ランドルフ ジー.ヤング アメリカ合衆国 29681 サウス カロラ イナ、シンプソンヴィル、ネヴィン コー ト 6

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】プロセッサバスによりプロセッサに接続さ
    れたキャッシュメモリ装置であって、 該プロセッサによる主メモリラインアドレスの読み取り
    値を該キャッシュメモリ装置内に格納されているセット
    アドレスおよびキャッシュタグと比較して該キャッシュ
    メモリ装置内に格納されているデータラインが主メモリ
    内に格納されている対応のデータラインよりも近時のコ
    ピーバイトを有するか否かを決定する手段と、 該近時コピーバイトデータを、該主メモリラインアドレ
    スの該読み取りに応答して主メモリから返されたデータ
    ライン中に統合すると共に該統合したデータラインを該
    プロセッサに送る手段と、 該プロセッサにより任意の主メモリラインアドレスに書
    き込まれるべきデータラインを阻止してその代わりに該
    データラインを該キャッシュメモリ装置内に格納する手
    段とを含むことを特徴とするキャッシュメモリ装置。
  2. 【請求項2】プロセッサと書き込みキャッシュコントロ
    ーラおよびキャッシュメモリアレーを有する書き込みキ
    ャッシュとの間のデータ転送を行う方法であって、 該プロセッサにより主メモリからデータラインを読み取
    るステップと、 該プロセッサにより読み取られた各データラインのアド
    レスを該キャッシュメモリアレー内に格納されているデ
    ータラインのアドレスと比較するステップと、 もしも該プロセッサにより読み取られたデータラインの
    アドレスが該キャッシュメモリアレーに格納されている
    ラインのアドレスに対応するなら、該書き込みキャッシ
    ュコントローラが、読み取ったデータライン内の各修正
    済みのバイトを同定し、該データラインが該プロセッサ
    へ返される際にその主メモリから読み取られたデータラ
    インと該修正済み各バイトを統合するステップと、 もしも該プロセッサにより読み取られたデータラインの
    アドレスが該キャッシュメモリアレーに格納されている
    いかなるラインのアドレスにも対応しないならデータ統
    合は行わず、該キャッシュはキャッシュヒットがなくて
    も、主メモリからデータラインが返される際にそのデー
    タラインを該キャッシュ中に格納するためのラインアロ
    ケートをさせないステップとを含むことを特徴とするデ
    ータ転送方法。
JP4266883A 1991-09-18 1992-09-10 書き込みキャッシュメモリのための装置および方法 Pending JPH05210590A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US76158491A 1991-09-18 1991-09-18
US761584 1996-12-06

Publications (1)

Publication Number Publication Date
JPH05210590A true JPH05210590A (ja) 1993-08-20

Family

ID=25062659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4266883A Pending JPH05210590A (ja) 1991-09-18 1992-09-10 書き込みキャッシュメモリのための装置および方法

Country Status (2)

Country Link
EP (1) EP0533374A1 (ja)
JP (1) JPH05210590A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4836641A (en) * 1987-07-27 1989-06-06 Societa' Cavi Pirelli S.P.A. Submarine optical fiber line with interconnected different cable types

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4836641A (en) * 1987-07-27 1989-06-06 Societa' Cavi Pirelli S.P.A. Submarine optical fiber line with interconnected different cable types

Also Published As

Publication number Publication date
EP0533374A1 (en) 1993-03-24

Similar Documents

Publication Publication Date Title
US5715428A (en) Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
JP2540517B2 (ja) 階層キヤツシユメモリ装置および方法
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
US5960455A (en) Scalable cross bar type storage controller
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
JPH10187645A (ja) プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム
US5559987A (en) Method and apparatus for updating a duplicate tag status in a snoop bus protocol based computer system
KR20110031361A (ko) 스누프 필터링 메커니즘
US5860101A (en) Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
JPH0576060B2 (ja)
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US6546465B1 (en) Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
US7159079B2 (en) Multiprocessor system
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
US5893163A (en) Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US6516391B1 (en) Multiprocessor system and methods for transmitting memory access transactions for the same
US6496917B1 (en) Method to reduce memory latencies by performing two levels of speculation
EP0533427A1 (en) Computer memory control system
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
US6532519B2 (en) Apparatus for associating cache memories with processors within a multiprocessor data processing system
JPH0282330A (ja) ムーブアウト・システム
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
US6704820B1 (en) Unified cache port consolidation