JPH05282203A - キャッシュ・コントローラ - Google Patents

キャッシュ・コントローラ

Info

Publication number
JPH05282203A
JPH05282203A JP5029685A JP2968593A JPH05282203A JP H05282203 A JPH05282203 A JP H05282203A JP 5029685 A JP5029685 A JP 5029685A JP 2968593 A JP2968593 A JP 2968593A JP H05282203 A JPH05282203 A JP H05282203A
Authority
JP
Japan
Prior art keywords
cache
memory array
data
status
cache tag
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.)
Granted
Application number
JP5029685A
Other languages
English (en)
Other versions
JP3218773B2 (ja
Inventor
Gene W Shen
ジーン・ダブリュー・シェーン
James S Golab
ジェームス・エス・ゴラブ
William C Moyer
ウィリアム・シー・モイヤー
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.)
Motorola Solutions Inc
Original Assignee
Motorola 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 Motorola Inc filed Critical Motorola Inc
Publication of JPH05282203A publication Critical patent/JPH05282203A/ja
Application granted granted Critical
Publication of JP3218773B2 publication Critical patent/JP3218773B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【目的】データ・メモリ内の所定のアドレス位置が同時
にアクセスされたときの衝突を効率的に処理する。 【構成】キャッシュ・コントローラはキャッシュ制御論
理回路34と、タグ・ユニット36からなる。タグ・ユ
ニット36では検索タグ・キャッシュとデータ・タグ・
キャッシュとがそれぞ各々、被検索値または被アクセス
・データ値がデータ・キャシュ・ユニット26内に記憶
されているか否かを表す。ステータス・ビット・アレイ
は検索およびデータ・タグ・キャッシュのステータス情
報を記憶するように構成し、衝突が起こるとステータス
情報は両タグ・キャッシュ間で「順送り」される。さら
に、それぞれのアクセスのタイミングを変更し、ステー
タス情報をより簡単に「順送り」させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的に、キャッシュ
・メモリ・システムに関する。さらに詳しくは、キャッ
シュ・メモリ・システム内のキャッシュ・コントローラ
に関する。
【0002】
【従来の技術】電子産業においては、多重処理システム
が開発されて、システムのユーザは、より迅速により効
率的に情報の操作および処理ができるようになった。多
重処理システムは、通常、システム・インターフェース
・バスにより、共用されるメモリ・アレイに接続されて
いる2台以上のデータ・プロセッサを備えている。それ
ぞれのデータ・プロセッサには、データ・キャッシュが
あり、多重処理システムの各コンポーネント間で転送さ
れるデータの量を減らし、データ・プロセッサからメモ
リ・アレイに対するアクセス時間を改善している。一般
に、データ・キャッシュには、キャッシュ・コントロー
ラと、データ・タグ・キャッシュと、検索タグ・キャッ
シュ(snoop tag cache )とが含まれている。データ・
タグ・キャッシュ・ユニットは、データ・プロセッサの
実行ユニットからの内部メモリ・リクエストを処理し
て、情報値がデータ・キャッシュ内に現在記憶されてい
るか否かの判定を行う。データ・タグ・キャッシュは、
データ・キャッシュに記憶されている情報値が有効であ
るか否かを表すことも行う。検索タグ・キャッシュ・ユ
ニットは、システム・インターフェース・バス上のトラ
ンザクションを監視すなわち「検索(snoop )」して、
多重処理システムの各要素間のデータ可干渉性(coheren
cy)を維持する。外部プロセッサにより修正された各情
報値を検索して、多重処理システム全体のデータ可干渉
性を維持しなければならない。さらに、キャッシュ・コ
ントローラはデータ・キャッシュの動作の制御を行う。
【0003】多重処理システムにおいては、データ・タ
グ・キャッシュと検索タグ・キャッシュとを用いる読み
込みおよび書き込みの動作中にコンフリクトが起こる。
第1の例では、第1データ・プロセッサが現在データ・
キャッシュ内にあるデータを読もうとしており、第2デ
ータ・プロセッサは同時にそのデータを変更しようとし
ているとする。第1データ・プロセッサがデータを読み
込むと、そのデータ・キャッシュ・タグ内の所定のアド
レスがアクセスされて、データ・キャッシュ内のそのデ
ータのアドレス位置を表す、すなわち「指し示す(poin
t to)」。同様に、第2データ・プロセッサがそのデー
タを変更しようとすると、検索タグ・キャッシュもデー
タ・キャッシュ内のそのアドレス位置を指し示す。デー
タ・タグ・キャッシュと検索タグ・キャッシュとによっ
て同一のアドレス位置が同時にアクセスされると、エラ
ーの可能性すなわち「衝突」が起こる。この場合、第1
データ・プロセッサは、データ・キャッシュ・タグ内の
所定のアドレスに記憶されたデータを読み込もうとし、
一方、第2データ・プロセッサは、そのアドレスに書き
込もうとして、「読み込み/書き込み」の衝突が起こ
る。
【0004】「二重書き込み衝突」と呼ばれるコンフリ
クトの第2の例は、両方のデータ・プロセッサが同じデ
ータを同時に修正しようとすると起こる。両方のデータ
・プロセッサが同じデータを読み込もうとする「二重読
み込み衝突」が起こることもある。しかし、読み込み動
作は、通常は、データ・キャッシュの内容を修正するこ
とはないので、エラーは起こらない。状況によっては、
読み込み動作によりデータに対応する状態情報が修正さ
れることもある。
【0005】読み込み/書き込みおよび二重書き込み衝
突は、多重処理システムの動作と性能とに悪影響を及ぼ
す。衝突が起こると、キャッシュ・コントローラは、通
常その衝突をエラーとして処理する。そのために、多重
処理システムのユーザにより指定された機能を実行せず
に、キャッシュ・コントローラは、データ・プロセッサ
がエラーに対応して、その後で不確定な応答をユーザに
与えるようにしなければならなくなる。また、読み込み
/書き込みおよび二重書き込み衝突は、多重処理システ
ム内では予測することが難しく、そのために簡単に予期
したり修正することができない。多重処理システムにお
いて衝突の制御に用いられる技術の詳細に関しては、1
986年のIEEE Transactions on Computersの424ペ
ージないし433ページに発表された、「Multiprocess
or Cache Synchronization-Issues, Innovations, Evol
ution 」と題された記事を参照されたい。本記事は、Ph
illip Bitar とAlvin M. Despainにより著された。また
Third International Conference on Architectural Su
pport for Programming Languages and OperatingSyste
mの予敲集の64ページないし75ページに発表され
た、「Effcient Synchronization Primitives for Larg
e-Scale Cache-Coherent Multiprocessors」と題された
技術論文を参照されたい。本論文は、James R. Goodma
n, Mary K. VernonおよびPhillip J. Woestにより著さ
れた。
【0006】
【発明が解決しようとする課題】そのため、読み込み/
書き込みおよび二重書き込み衝突を迅速に効率的に解決
することのできるキャッシュ・コントローラに対する必
要性が生まれる。本キャッシュ・コントローラは、衝突
の間に指定された各種の動作も充分に実行することがで
きなければならない。たとえば、読み込み/書き込み衝
突では読み込みおよび書き込みの両動作を実行して正確
な結果を出さなければならない。
【0007】
【課題を解決するための手段】上述の必要性は、本発明
により達成される。従って、ある形態のキャッシュ・コ
ントローラが提供される。本キャッシュ・コントローラ
には、キャッシュ・コントローラを第1バスに結合する
第1バス・インターフェースと、キャッシュ・コントロ
ーラを第2バスに結合する第2バス・インターフェース
とが含まれる。第1キャッシュ・タグ・メモリ・アレイ
は、第1バス・インターフェースに結合される。第1キ
ャッシュ・タグ・メモリ・アレイは、所定の数のエント
リを有し、このエントリのそれぞれが、キャッシュ・コ
ントローラに外付けされているデータ・メモリ・アレイ
内の独自のエントリに対応する。第2キャッシュ・タグ
・メモリ・アレイは、第2バス・インターフェース手段
に結合される。第2キャッシュ・タグ・メモリ・アレイ
には、所定の数のエントリが含まれ、そのそれぞれがデ
ータ・メモリ・アレイ内の独自のエントリに対応する。
ステータス・メモリ・アレイは、第1および第2キャッ
シュ・タグ・メモリ・アレイの両方に結合される。ステ
ータス・メモリ・アレイは、所定の数のエントリによっ
て構成され、このエントリのそれぞれが第1キャッシュ
・タグ・メモリ・アレイ内の独自のエントリと、第2キ
ャッシュ・タグ・メモリ・アレイ内の独自のエントリと
に対応する。
【0008】これらとその他の特徴および利点は、以下
の詳細な説明と、添付の図面とによりさらに明確に理解
されるだろう。図面は、本発明の唯一の形態を表すもの
ではない点に留意されたい。
【0009】
【実施例】本発明は、多重処理システムのためのキャッ
シュ・コントローラを提供する。ここで説明される本発
明の実行例においては、データ・キャッシュ・メモリ・
アレイ内の特定のアドレス位置が、複数のデータ・プロ
セッサにより同時にアクセスされるときに起こる「衝
突」を、キャッシュ・コントローラが効率的に解決す
る。「資源パイプライン処理(resource pipelining) 」
と呼ばれる第1の技術と、「ステータス順送り処理(sta
tus forwarding) 」と呼ばれる第2の技術とがそれぞれ
用いられ、キャッシュ・コントローラはこのような衝突
状態を効率的に解決することができる。いずれの技術
も、以下に詳細に説明される。また、パイプライン化さ
れたバスを別々のアドレスおよびデータ支配期間(tenu
re)に分割して、それぞれを別の支配期間として認識す
ることにより、より多くの情報を処理することができ
る。同様に特定のキャッシュの検索動作が、同一のキャ
ッシュに対する書き込み動作により失われたりあるいは
遅れることなく実行される。キャッシュ・コントローラ
はまた、多重処理システム内でデータ・キャッシュ・メ
モリ・アレイとその他のメモリ・アレイとのデータの可
干渉性を維持する。
【0010】図1は、ここで説明される、請求の範囲に
記載されている発明の実行例を提供する多重処理システ
ム10を示す。もちろん多重処理システム10は、例と
して示されたに過ぎず、本発明の唯一の実行例を表すも
のではない。多重処理システム10は、一般的に、メモ
リ・システム12と、プロセッサA20とプロセッサB
21とを備える。ある実施例においては、プロセッサA
20とプロセッサB21はいずれも、モトローラ社(テ
キサス州オースティン)から販売されているMC88110 な
どの単独の集積回路として実現することができる。MC88
110 は、プロセッサが1台の環境でも、複数台ある環境
でも機能することができる。以下に説明されるように、
MC88110 はまた、搭載データ・キャッシュ内のアドレス
位置が2台以上のデータ・プロセッサにより同時にアク
セスされる多重処理状態においても、効率的にキャッシ
ュのアクセスを実行するシステムを提供する。
【0011】プロセッサA20およびプロセッサB21
はいずれも、本発明のこの実施例においてはMC88110 RI
SCプロセッサとして実現されるが、プロセッサB21だ
けを詳細に図示する。プロセッサB21は、一般的に、
クロック論理回路22と、バス・インターフェース・ユ
ニット23と、実行ユニット24と、データ・キャッシ
ュ・ユニット26と、命令キャッシュ・ユニット28
と、シーケンサ30と、ロード/記憶ユニット32とを
備える。
【0012】動作中は、アドレス・バス14は、メモリ
・システム12,プロセッサA20およびプロセッサB
21のそれぞれのアドレス入力に接続され、「外部アド
レス(External Address)」とラベルを付けられた信号を
送る。外部アドレス信号は、nが整数である通常nビッ
ト幅の外部アドレスを転送する。ここで説明される例で
は、外部アドレスは32ビット幅で、そのためnも32
に等しい。同様にデータ・バス16は、メモリ・システ
ム12,プロセッサA20およびプロセッサB21のそ
れぞれのデータ入力に接続され「外部データ(External
Data) 」信号を送る。外部データ信号は、mが整数であ
る通常mビット幅の外部データ値を転送する。ここで説
明されるように外部データ値は64ビット幅であるの
で、mも64に等しくなる。また、制御バス18は、複
数の制御値を、メモリシステム12,プロセッサA20
およびプロセッサB21のそれぞれの第1入力に送る。
この複数の制御値は、メモリ・システム12,プロセッ
サA20およびプロセッサB21のそれぞれが共に正確
に機能するために必要なものである。制御バス18は、
複数の制御値の第1部分と第2部分とを、メモリ・シス
テム12とプロセッサA20とにそれぞれ送る。同様に
制御バス18は、複数の制御値の第3部分を、「外部制
御(External Control)」とラベルを付けられた信号を介
してプロセッサB21に送る。
【0013】プロセッサB21においては、外部アドレ
ス値が、データ・キャッシュ・ユニット26およびバス
・インターフェース・ユニット23の両方の第1群のア
ドレス入力に送られる。データ・キャッシュ・ユニット
26のこの複数の入力のそれぞれは、外部アドレス値の
所定ビットを受け取り、それぞれにラベルが付けられ
る。たとえば複数のアドレス入力のうち第1のものには
「EA0」とラベルが付けられ、外部アドレスのビット
0を受け取る。同様に、複数のアドレス入力の最後のも
のは、「EA31」とラベルが付けられ、外部アドレス
のビット31を専門に受け取る。さらに、データ・バス
16を介して転送される外部データ値は、バス・インタ
ーフェース・ユニット23の双方向データ端子に送られ
る。外部制御信号もまた、バス・インターフェース・ユ
ニット23に送られる。
【0014】バス・インターフェース・ユニット23
は、プロセッサB21と多重処理システム10の残りの
コンポーネントとの間のインターフェースとして働く。
バス・インターフェース・ユニット23は、データ・キ
ャッシュ・ユニット26に結合され、外部アドレス値を
送り、外部データ値を受け取る。外部アドレス値は、デ
ータ・キャッシュ・アドレス・バスを介して送られ、外
部データ値はデータ・キャッシュ・データ・バスを介し
て受け取られる。同様にバス・インターフェース・ユニ
ット23は、命令キャッシュ・ユニット28に結合さ
れ、命令キャッシュ・アドレス・バスを介して外部アド
レス値を、また命令キャッシュ・データ・バスを介して
外部データ値を送る。外部制御信号により、バス・イン
ターフェース・ユニット23は、適切な時点でアドレス
情報またはデータ情報のいずれかを伝えることができ
る。
【0015】また、制御バス18を介して転送される
「クロック(Clock) 」信号が、クロック論理回路22に
送られる。クロック論理回路22は、それぞれ「T
1」,「T2」,「T3」および「T4」とラベルの付
けられた複数のクロック信号を送る。この複数のクロッ
ク信号はそれぞれ、4位相クロック周期のうちの1つの
位相を表し、プロセッサB21の各コンポーネントのそ
れぞれに送られる。各クロック信号の経路は図1には詳
細に図示されてはいないが、この経路はよく知られてお
り、当業者には容易に理解されよう。
【0016】実行ユニット24は、nビット幅の内部デ
ータ値および複数の制御信号の両方を、双方向内部デー
タ・バス25と、双方向内部制御バス27とにそれぞれ
伝える。内部データ・バス25は、ロード/記憶ユニッ
ト32およびシーケンサ30の両方の第1データ入力に
接続され、内部データ値を実行ユニット24とやり取り
する。同様に内部制御バス26は、ロード/記憶ユニッ
ト32およびシーケンサ30の両方の複数の制御入力に
接続され、複数の内部制御信号を実行ユニット24とや
り取りする。
【0017】シーケンサ30は、命令キャッシュ・ユニ
ット28の複数のアドレス入力に接続され、「内部命令
アドレス(Internal Instruction Address) 」とラベル
の付けられたnビット幅の信号を送る。本発明のこの実
行例においては、内部命令アドレス信号は外部アドレス
値と同じ幅であるが、内部命令アドレス信号は、外部ア
ドレス値とは異なるビット幅であってもよい。シーケン
サ30もまた、命令キャッシュ・ユニット28の第2群
の双方向データ入力に接続され、「内部命令キャッシュ
・データ(Internal Instruction Cache Data) 」とラベ
ルの付けられた信号を送る。内部命令キャッシュ・デー
タ信号は、シーケンサ30と命令キャッシュ・ユニット
28との間で内部データを伝える。また、シーケンサ3
0は命令キャッシュ・ユニット28の複数の双方向制御
入力に接続され、「命令キャッシュ制御(Instruction C
ache Control) 」と集合的にラベルを付けられた複数の
信号を送る。
【0018】命令キャッシュ・ユニット28は、ソフト
ウェア・ルーチンの実行中にアクセスされ、迅速に命令
を送り、命令を受け取るのに通常必要な処理時間の量を
減ずる。実行ユニット24により与えられた内部データ
および制御信号に応答して、シーケンサ30は内部命令
アドレス信号を介して、命令キャッシュ・ユニット28
内の所定のアドレス位置にアクセスして、次に実行ユニ
ット24により処理される命令が送られる。所定のアド
レス位置に記憶されている命令が有効で、正確にアクセ
スされると、命令キャッシュ・ユニット28は、アクセ
スされた命令と、次の命令の両方を内部命令キャッシュ
・データ信号を介してシーケンサ30に送る。シーケン
サ30は次に、2つの命令を実行ユニット24に送り、
命令は処理される。命令が命令キャッシュ・ユニット2
8に記憶されていないと、実行ユニット24は他のソー
ス(ここでは図示せず)から命令にアクセスしなければ
ならなくなる。
【0019】ロード/記憶ユニット32は、データ・キ
ャッシュ・ユニット26の第2群のアドレス入力に接続
され、内部データ・アドレス信号を送る。ロード/記憶
ユニット32は、データ・キャッシュ・ユニット26の
第2群の双方向データ入力にも接続され、「内部データ
・キャッシュ・データ(Internal Data Cache Data)」と
ラベルの付けられたmビット幅の信号を送る。ここで
も、本発明のこの実行例においては、内部データ・キャ
ッシュ・データ信号は、外部データ値と同じ幅である
が、内部データ・キャッシュ・データ信号は、外部デー
タ値とは異なるビット幅であってもよい。また、ロード
/記憶ユニット32は、データ・キャッシュ・ユニット
26の第2群の双方向制御端子に接続され、集合的に
「データ・キャッシュ制御(Data Cache Control)」とラ
ベルの付けられた内部制御情報を伝える。ロード/記憶
ユニット32は、制御,アドレスおよびデータ情報を所
定の時に送り、タグ・ユニット36に対するアクセス中
にエラーが起こらないようにする。標準論理回路構成を
用いて、多重処理システム10のユーザにより決定され
た方法で、ロード/記憶ユニット32を実現することが
できる。
【0020】図2には、データ・キャッシュ・ユニット
26がより詳細に図示されている。データ・キャッシュ
・ユニット26は、一般的に、キャッシュ制御論理回路
34と、タグ・ユニット36と、データ・メモリ37と
を備える。キャッシュ制御論理34とタグ・ユニット3
6とが、データ・キャッシュ・ユニット26の動作を制
御するキャッシュ・コントローラを形成し、プロセッサ
B21とプロセッサA20などの外部のデータ・プロセ
ッサとの間で、データ可干渉性を維持する。データ・メ
モリ37は、データ・キャッシュ・ユニット26から最
後にアクセスされたデータを記憶するメモリ・アレイで
ある。データ・キャッシュ・アドレス・バスは、データ
・メモリ37と、バス・インターフェース・ユニット2
3との間で外部アドレス値を送る。外部アドレス値は、
データ・メモリ37内の独自の位置に対応する。同様に
データ・キャッシュ・データ・バスは、データ・メモリ
37とバス・インターフェース・ユニット23との間
で、外部データ値を伝える。外部データ値は、データ・
メモリ37内に記憶されているデータ値に対応する。デ
ータ・キャッシュ・ユニット26内では、データ・キャ
ッシュ制御,内部アドレスおよび内部データ・キャッシ
ュ・データ信号のそれぞれが、キャッシュ制御論理回路
32のそれぞれの入力に送られる。内部データ・キャッ
シュ・データ信号は、データ・メモリ37の第1双方向
データ入力にも送られる。また、キャッシュ制御論理回
路32は、「データ・メモリ・アドレス(Data Memory A
ddress)」とラベルの付けられた信号をロード/記憶ユ
ニット32に送る。
【0021】キャッシュ制御論理回路34は、タグ・ユ
ニット36に接続され、それぞれが「検索ヒット(Snoop
Hit) 」,「検索ステータス(Snoop Status)」,「デー
タ・ステータス(Data Status) 」および「データ・ヒッ
ト(Data Hit)」とラベルの付けられた複数の信号を送
る。これらの信号のそれぞれの機能は、後で詳述され
る。また、タグ・ユニット36は、上述の複数の信号に
応答して、データ・タグ値と検索タグ値の両方をキャッ
シュ制御論理34に送る。
【0022】キャッシュ制御論理34は、タグ・ユニッ
ト36とデータ・メモリ37の両方の複数の入力にも接
続され、内部アドレス信号を送る。複数の入力のそれぞ
れは、内部アドレス信号の所定のビットに対応する。た
とえば、内部アドレス信号のビット0は、「IA0」と
ラベルの付けられた第1入力に送られる。同様に内部ア
ドレス信号の最終ビットは、「IA31」とラベルの付
けられた最終入力に送られる。
【0023】外部アドレス信号は、複数のビットEA0
ないしEA31を、タグ・ユニット36とキャッシュ制
御論理34の両方の複数の外部アドレス入力に送る。キ
ャッシュ制御論理34は、標準の論理回路を用いて実現
され、以下に説明されるような所定の動作を実行する。
図3は、タグ・ユニット36をより詳細に図示する。図
3では、タグ・ユニット36は、一般的に、検索解読器
38と、検索比較器39と、検索タグ・キャッシュ40
と、ステータス・アレイ41と、データ・タグ・キャッ
シュ42と、データ比較器43と、データ解読器44と
を備える。ステータス・アレイ41は、複数のステータ
ス・ビット・セルを有し、ここではステータス・ビット
の各行により検索タグ・キャッシュ40とデータ・タグ
・キャッシュ42の両方の単独のタグ値のステータス情
報値が与えられる。たとえば、検索タグ・キャッシュ4
0とデータ・タグ・キャッシュ42の両方の第1タグ値
は、両タグ・キャッシュの16進数アドレス$0におい
てアクセスされる。そのため、第1タグ値に相当するス
テータス・ビット・セルには、それぞれ「A0ステータ
ス・ビット0」から「A0ステータス・ビットX」まで
のラベルが付けられる。ただしXは整数である。同様
に、本発明のこの実施例における検索タグ・キャッシュ
40とデータ・タグ・キャッシュ42の両方の最終タグ
値に関しても、対応する複数のステータス・ビット・セ
ルにはそれぞれ、「A127ステータス・ビット0」か
ら「A127ステータス・ビットX」とラベルが付けら
れている。
【0024】タグ・ユニット36の動作をよりよく理解
するために、プロセッサA20がメモリ・システム12
内の所定のアドレスに記憶されているデータ値を修正す
ることにする。データ可干渉性を維持するには、プロセ
ッサB21がアドレス値を検索して、データ値がその内
部メモリであるデータ・メモリ37内に記憶されている
か否かを判定する。プロセッサB21は、データ・メモ
リ37を試験してそのデータ値がそこに記憶されている
か否かを判定するのではなく、データ値に対応する内部
アドレスを、タグ・ユニット36内の検索タグ・キャッ
シュ40に送る。検索タグ・キャッシュ40は、複数の
検索タグ値を記憶しており、そのそれぞれが、データ・
キャッシュ26内の所定のアドレス位置に対応する。次
に、検索タグ値はプロセッサB21により検索されたア
ドレスの部分と比較され、そのデータ値がデータ・メモ
リ37内に記憶されているか否かが判定される。
【0025】タグ・ユニット36内では、外部アドレス
信号のビット5ないし11が、検索解読器38により解
読されて、対応する検索タグ値が検索タグ・キャッシュ
40内で記憶されている所定の16進数アドレスを特定
する。検索タグ・キャッシュ40の16進数アドレスが
特定され、アサートされると、検索タグ値が検索比較器
39の第1入力とキャッシュ制御論理回路34の両方に
送られる。次に比較器39は、検索タグ値と、外部アド
レス信号の所定部分とを比較する。ここで説明されてい
る例では、外部アドレスのビット12ないし31が検索
比較器39の第2入力に送られる。検索ヒット信号は、
検索比較器39により出力されて、アクセスされた値
が、検索タグ・キャッシュ40内に記憶されているか否
かを表す。次に検索タグ値は、キャッシュ制御ユニット
34に送られ、検索ヒット信号の値に応じて処理され
る。
【0026】また、ステータス制御ビットは、アクセス
されたアドレスに対応する複数のステータス・ビット・
セルのそれぞれに対して平行(concurrently)して送られ
る。たとえば、外部アドレス信号のビット5ないし11
が解読され、16進数アドレス$0がアクセスされるこ
とが特定されると、A0検索ステータス制御信号がアサ
ートされる。次に、A0ステータス・ビット0 46な
いしA0ステータス・ビットX 48がイネーブルにな
り、アクセスされたアドレスのデータ値に対応するステ
ータス情報が修正される。同様に外部アドレス信号のビ
ット5ないし11が解読され、16進数アドレス$12
7がアクセスされることが特定されると、A127検索
ステータス制御信号がアサートされ、A127ステータ
ス・ビット0 50ないしA127ステータス・ビット
X 52がイネーブルになる。
【0027】同様に、プロセッサB21がデータ・メモ
リ37の所定のアドレス位置に記憶されているデータ値
を修正することにする。データ・メモリ37内のデータ
値を修正するには、ロード/記憶ユニット32が所定の
アドレスをキャッシュ制御論理34に送る。データ・タ
グ・キャッシュ42は、複数のデータ・タグ値を記憶し
ており、それらのそれぞれが、データ・キャッシュ26
の所定のアドレス位置に対応する。次にデータ・タグ値
は、内部アドレス信号により与えられたアドレスの部分
と比較され、データ値がデータ・キャッシュ26内に記
憶されているか否かが判定される。さらに、データ・タ
グ値は、キャッシュ制御論理回路34にも送られ、ここ
で、その後、データ・メモリ・アドレス信号を介してロ
ード/記憶ユニット32に送られる。
【0028】タグ・ユニット36においては、内部アド
レス信号のビット5ないし11がデータ解読器44によ
り解読され、データ・タグ・キャッシュ42内で対応す
るデータ・タグ値が記憶されている所定の16進数アド
レスを特定する。データ・タグ・キャッシュ42の16
進数アドレスがアサートされると、データ・タグ値はデ
ータ比較器43の第1入力に送られる。また、複数のス
テータス制御ビットが、アクセスされたアドレスに対応
する複数のステータス・ビット・セルに同時に送られ
る。たとえば、内部データ・アドレス信号のビット5な
いし11が解読され、16進数アドレス$0がアクセス
されることが特定されると、A0データ・ステータス信
号がA0ステータス・ビット0 46ないしA0ステー
タス・ビットX 48に送られる。同様に、内部アドレ
ス信号のビット5ないし11が解読され、16進数アド
レス$127がアクセスされることが特定されると、A
127データ・ステータス制御信号が、A127ステー
タス・ビット0 50ないしA127ステータス・ビッ
トX 52に対して送られる。
【0029】複数のステータス・ビットのそれぞれの制
御は、データ・ステータス信号と検索ステータス信号と
を介して、キャッシュ制御論理34により行われる。た
とえば、キャッシュ制御論理34は、「データ0ステー
タス(Data 0 Status) 」とラベルを付けられた信号と、
「検索0ステータス(Snoop 0 Status)」とラベルを付け
られた信号の両方を、A0ステータス・ビット0 46
ないしA127ステータス・ビット0 50に送る。同
様に、キャッシュ制御論理34は、「データXステータ
ス(Data X Status) 」とラベルを付けられた信号と、
「検索Xステータス(Snoop X Status)」とラベルを付け
られた信号の両方を、A0ステータス・ビットX 48
ないしA127ステータス・ビットX 52に送る。
【0030】複数のステータス・ビットのそれぞれが、
検索タグ・キャッシュ40とデータ・タグ・キャッシュ
42との間で共用されているので、データ可干渉性が確
保される。検索タグ・キャッシュ40内の検索タグ値が
修正されると、ステータス・アレイ41内の対応するス
テータス・ビットも修正される。対応するステータス・
ビットもまた、データ・タグ・キャッシュ42により共
用されているので、ステータス・ビットに対する修正は
すべて対応するデータ・タグ値に反映される。同様に、
データ・タグ・キャッシュ42内のデータ・タグ値に対
する修正もすべて、検索タグ・キャッシュ40内で反映
される。データ・タグ値と検索タグ値との両方の間でス
テータス・ビットを共用することにより、ステータス・
ビットに対する修正はすべて、データ・タグ・キャッシ
ュ42と検索タグ・キャッシュ40との中でそれぞれ平
行して反映される。
【0031】ここで説明した本発明の実行例において
は、Xは3に等しく、被アクセス値の可能な状態を決定
するステータス・ビット・セルは3つある。この3つの
ステータス・ビットが、アクセスされたデータ値が有効
であるか否か、メモリ12などの外部メモリに関してそ
の値が修正されたか否か、また、値が単独のプロセッサ
により「専有」されているのか、他のプロセッサと共用
されているのかを決定する。被アクセス値が、単独のプ
ロセッサにより専有されている場合は、他のプロセッサ
は、まずその値の所有権(ownership) を得なければ、そ
の値を修正することはできない。
【0032】また、任意の被アクセス値に対して、合計
4つの状態が可能である。第1状態においては、3個の
ステータス・ビット・セルが無効状態を定義する。被ア
クセス値が無効状態にあると、その被アクセス値は古
い、すなわち、データの最も新しいコピーではないの
で、使うべきではない。第2状態においては、3個のス
テータス・ビット・セルが、共用−未修正状態を定義す
る。被アクセス値が共用−未修正状態にあると、その被
アクセス値は、複数のプロセッサ間で共用され、そのた
めに他のキャッシュにもこの値のコピーがあることもあ
る。しかしその被アクセス値は、外部メモリに関しては
未修正状態である。第3状態は専有未修正状態(Exclusi
ve Unmodified state)として定義される。専有未修正状
態においては、1台のプロセッサしか、そのデータ・キ
ャッシュ内に被アクセス値のコピーをもっていない。ま
た、その被アクセス値は、外部メモリに関しては未修正
状態である。第4の状態は、3個のステータス・ビット
が、専有修正状態を定義する。専有修正状態において
は、1台のプロセッサしか、そのデータ・キャッシュ内
に、被アクセス値のコピーを持っていない。さらに、そ
の被アクセス値は、「汚い(dirty) 」すなわち外部メモ
リに関して修正されている。データ・キャッシュ・アク
セスの間、被アクセス値の状態は、アクセスの種類とア
クセスの結果(たとえばアクセス結果がヒットであった
か、ミスであったかなど)により状態が変化する。
【0033】被アクセス値の状態を反映するように実行
されると、複数のステータス・ビット・セルのそれぞれ
が同一の論理回路構成を用いる。そのため、図4には、
図示の目的で、A0ステータス・ビット0 46が示さ
れている。A0ステータス・ビット0 46は、通常、
ドライバ54と、ドライバ56と、感度増幅器58と、
トランジスタ60と、トランジスタ62と、ステータス
・ビット・セル64と、トランジスタ66と、感度増幅
器68と、トランジスタ70と、ドライバ72と、ドラ
イバ74とを備える。
【0034】データ0ステータス信号は、ドライバ54
およびドライバ56の両方のデータ入力に接続されて、
「データ・ステータス入力(Data Status In)」とラベル
の付けられた信号を送る。複数のA0データ・ステータ
ス制御信号は、トランジスタ62の制御端子に接続され
て、データ・ワード・ライン制御信号を送る。書き込み
動作中は、内部アドレス信号が解読されて、データ・タ
グ・キャッシュ42の16進数アドレス$0が選択され
たことが示されると、データ・ワード・ライン制御信号
がアサートされる。さらに、複数のA0データ・ステー
タス制御信号は、トランジスタ60の制御電極に接続さ
れて、データ列制御信号を送る。データ列制御信号と、
データ・ワード制御信号とは、集合的に修正されるべき
ステータス・ビット・セルを表す。また、複数のA0デ
ータ・ステータス制御信号が、ドライバ56の制御電極
に接続されてデータ衝突信号を送り、またドライバ54
の制御電極にも接続されてデータ更新信号を送る。デー
タ衝突信号は、衝突が起こったのか否か、また同じメモ
リ位置が同時にアクセスされたか否かを表す。データ更
新信号は、データ・タグ・キャッシュ内のデータ・タグ
値を修正すべきか否かを表す。
【0035】検索0ステータス信号は、ドライバ74お
よびドライバ72の両方のデータ入力に接続され、「検
索ステータス入力(Snoop Status In) 」とラベルの付け
られた信号を送る。複数のA0検索ステータス制御信号
は、トランジスタ66の制御端子に接続されて、検索ワ
ード・ライン制御信号を送る。検索動作中は、外部アド
レス信号が解読されて検索タグ・キャッシュ40の16
進数アドレス$0が選択されたことが示されると、検索
ワード・ライン制御信号がアサートされる。また、複数
のA0検索ステータス制御信号がトランジスタ70の制
御電極に接続されて、検索列制御信号を送る。検索列制
御信号と検索ワード制御信号とは、集合的に、修正され
るべきステータス・ビット・セルを表す。また、複数の
A0検索ステータス制御信号が、ドライバ72の制御電
極に接続されて検索衝突信号を送り、またドライバ74
の制御電極にも接続されて検索更新信号を送る。検索更
新信号は、検索タグ・キャッシュ内の検索タグ値を修正
すべきか否かを表す。
【0036】ドライバ54の出力と、ドライバ72の出
力とは、いずれもトランジスタ60の第1電流電極に接
続される。トランジスタ60の第2電流電極は、トラン
ジスタ62の第1電流電極に接続される。トランジスタ
62の第2電流電極は、ステータス・ビット・セル64
の第1双方向端子に接続される。ドライバ56の出力
と、ドライバ74の出力とは、いずれもトランジスタ7
0の第1電流電極に接続される。トランジスタの第2電
流電極は、トランジスタ66の第1電流電極に接続され
る。トランジスタ66の第2電流電極は、ステータス・
ビット・セル64の第2双方向端子に接続される。さら
に、ドライバ56の出力は、感度増幅器68にも接続さ
れる。感度増幅器の出力は、検索0ステータス信号に結
合されて、「検索ステータス出力(Snoop Status Out)」
とラベルの付けられた信号をキャッシュ制御論理34に
送る。ドライバ72の出力は、感度増幅器58の入力に
も結合される。感度増幅器58の出力は、データ0ステ
ータス信号に送られ、「データ・ステータス出力(Data
Status Out) 」とラベルの付けられた信号をキャッシュ
制御論理34に送る。動作中は、キャッシュ制御論理3
4は、検索ステータス出力およびデータ・ステータス出
力信号をそれぞれ受け取って処理して、同一のアドレス
位置に対する2回のアクセスが、いずれも効率的に正確
に処理されることを可能にする。
【0037】一例として、プロセッサA20およびプロ
セッサB21の両方が、データ・キャッシュ26内の所
定のアドレス位置に記憶されているデータ値を平行して
修正することにする。前述のように、情報値がデータ・
タグ・キャッシュ42または検索タグ・キャッシュ40
のいずれかでアクセスされると、情報値の状態が修正さ
れる。そのために、ステータス・ビットの値は、「順送
り(forward) 」されて、同時アクセス中に行われた修正
を正確に反映する。
【0038】たとえば、16進数アドレス$0がデータ
・タグ・キャッシュ42内に書き込まれるのと、検索タ
グ・キャッシュ40内で読み込まれるのが平行に行われ
るとする。16進数アドレス$0がアクセスされるの
で、データ・ワード・ライン信号と検索ワード・ライン
信号の両方がアサートされる。データ列信号と検索列信
号もアサートされる。書き込み動作中は、データ更新信
号がアサートされて、ドライバ54は、データ・ステー
タス入力信号を介して、修正されたステータス・ビット
を受け取ることができる。またデータ衝突がアサートさ
れて、「衝突」が起きたこと、同一アドレスが2台の異
なるプロセッサにより平行にアクセスされていることを
示す。検索タグ・キャッシュ40内の検索タグ値にはア
クセスされないので、検索更新信号も検索衝突信号もア
サートされない。
【0039】それぞれの信号が適切にアサートされる
と、修正されたステータス・ビットは、ステータス・ビ
ット・セル64に送られて、次の使用に備えて記憶され
る。また、ドライバ56は、修正されたステータス・ビ
ットを感度増幅器68に送り、そこでは、ステータス・
ビット・セル64に以前記憶されていたステータス・ビ
ットではなく、修正されたステータス・ビットがキャッ
シュ制御論理34に送られる。
【0040】同様に、16進数アドレス$0が、検索タ
グ・キャッシュ40内で書き込まれるのと、データ・タ
グ・キャッシュ42内に読み込まれるのが平行して行わ
れるとする。この場合も、データ・ワード・ライン,検
索ワード・ライン,データ列および検索列信号がすべて
アサートされる。新しい検索タグ値が書き込まれるの
で、検索更新信号がアサートされて、ドライバ74は、
検索ステータス入力信号を介して修正されたステータス
・ビットを受け取ることができる。さらに検索衝突がア
サートされて、「読み込み/書き込み」衝突が起こった
こと、同一のアドレスが、2台の異なるプロセッサによ
り平行してアクセスされたことを表す。データ・タグ・
キャッシュ42内のデータ・タグ値は修正されないの
で、データ更新信号もデータ衝突信号もアサートされな
い。
【0041】各信号が適切にアサートされると、この場
合も、修正されたステータス・ビットは、ステータス・
ビット・セル64に送られて、次の使用に備えて記憶さ
れる。また、ドライバ72は修正されたステータス・ビ
ットを感度増幅器58に送り、そこではステータス・ビ
ット・セル64内に以前記憶されていたステータス・ビ
ットではなく、修正されたステータス・ビットがキャッ
シュ制御論理34に送られる。
【0042】動作中は、多重処理システム10は、機能
性も性能も損なうことなく、検索および読み込みまたは
書き込み動作を効率的に行うことができる。ステータス
・ビット・セルの構造と、それぞれ「資源パイプライン
処理(resource pipelining)」および「分割バス支配期
間(spilt bus tenures) 」と呼ばれる2つの技術によ
り、多重処理システム10は、衝突中も効率的に動作す
ることができる。たとえば、プロセッサB21がデータ
・メモリ37の第1メモリ記憶位置に新しい値を書き込
む動作を始め、同時に、プロセッサA20も第2メモリ
位置に記憶されているデータ値を修正するとする。その
ため、プロセッサB21は、プロセッサA20により修
正されたデータ値の検索も行い、その値がデータ・メモ
リ37内に記憶されているか否かを判定する。データ値
がデータ・メモリ37内に記憶されていれば、そのデー
タ値も修正してデータ可干渉性を維持するようにしなけ
ればならない。多重処理システムのためのキャッシュ・
コントローラの他の実行例においては、同一のメモリ記
憶位置に対する書き込み動作と検索動作の両方は、平行
に処理することができないのが普通である。通常、キャ
ッシュ・コントローラは、いずれの動作に関しても不確
定な応答を行う。
【0043】しかし、ここで説明される本発明の実行例
においては、プロセッサB21は、分割バス支配期間を
用いて、性能を損なわずに検索動作と書き込み動作の両
方を同時に処理する。分割バス支配期間を示すタイミン
グ図を図5に示す。
【0044】図5には、タイミング図の最上部に時間が
一連のクロック周期として示されている。図5では、プ
ロセッサB21がアドレス・バス14の所有権を持って
おり、メモリ回路12から情報値にアクセスするものと
する。次にプロセッサB21は、アドレス支配期間の1
周期中に、アドレス・バス14に対してアドレスX値を
送る。図5に示されたタイミング図では、アドレス支配
期間は、クロック周期の開始点で始まり、同一のクロッ
ク位相における2クロック周期後に終了する。別のデー
タ支配期間では、メモリ回路12は、アドレスXにより
アクセスされた複数のデータ値をデータ・バス16に送
る。データ値にはそれぞれ「データA」,「データ
B」,「データC」および「データD」とラベルが付け
られる。ここで説明される例においては、データ支配期
間は、アドレス支配期間が開始された1クロック周期後
に始まり、終了するまでに1クロック周期毎に複数のデ
ータ値のうち1つを転送する。
【0045】プロセッサB21がアドレス・バス14の
所有権を持つときのアドレス支配期間中は、その他のプ
ロセッサはメモリ・システム12内のデータ値を修正す
ることはできない。プロセッサB21がアドレス・バス
14の所有権を有しているので、多重処理システム10
内の他のプロセッサは、検索アクセスを行うこともでき
ない。そのために、アドレス支配期間中は、プロセッサ
B21は外部トランザクションを検索する必要はなく、
外部ソースからの競合なしに、検索タグ・キャッシュ内
の検索値を修正することができる。
【0046】同様に、データ所有期間中は、プロセッサ
B21がデータ・バス16の所有権を持っていれば、デ
ータ・タグ値をタグ・ユニット36のデータ・タグ・キ
ャッシュ42内で修正することができる。プロセッサB
21内のキャッシュ制御論理34により、データ・タグ
値に対する変更が完全に実行されるまでは、そのデータ
・タグ値はリクエストされない。このトランザクション
の効率をさらに向上するためには、プロセッサB21が
データ支配期間を終了しないうちに、プロセッサA20
がメモリ回路12からアドレスYにアクセスするとよ
い。アドレス支配期間とデータ支配期間とを重ねること
により、さらに多くの機能を平行して処理することがで
きる。また、プロセッサB21がデータ・バス16の所
有権を持たないときのデータ所有期間中は、プロセッサ
B21は多重処理システム10から「離れる(decoupl
e)」ことができる。プロセッサB21は、離れると、外
部のトランザクションを監視せずに機能を実行すること
ができる。たとえば、プロセッサB21の実行ユニット
24が、データ・メモリ37に記憶されていないデータ
値をリクエストすると、「ミス」が起こる。ミスが起こ
ると、そのデータ値はメモリ・システム12からアクセ
スされる。データ値がメモリ・システム12からアクセ
スされている間、プロセッサB21は多重処理システム
10から離れており、他の内部リクエストを処理するこ
とができる。
【0047】さらに、「資源パイプライン実行(Resourc
e Pipeline Execution) 」と呼ばれる方法を用いて、
「ロック・ステップ・パイプライン実行(Lock Step Pip
elineExecution)」などの通常のパイプライン・データ
転送方法を改変して、キャッシュ・コントローラの性能
を高めることもできる。ロック・ステップ・パイプライ
ン化と資源パイプライン化との差を示したタイミング図
を図6に示す。
【0048】図6の最上部にはクロック信号が描かれて
いる。クロックの各周期は、4つの位相に分割され、そ
れぞれに「T1」,「T2」,「T3」および「T4」
とラベルが付けられている。検索タグ・キャッシュ40
またはデータ・タグ・キャッシュ42のいずれかにおけ
るタグ値への各アクセスは、1クロック周期内で終了す
る。ロック・ステップ・パイプライン実行方法では、2
台のデータ・プロセッサが1つの情報値に同時にアクセ
スすると、衝突(陰影が付いた部分で示される)が起こ
る。プロセッサAとプロセッサBの両方が、クロック位
相T1,T2の間に情報値を読み込むと、その情報値の
状態は修正されず、そのため、情報は競合なしに2台の
プロセッサの両方によって読み込まれる。しかし、クロ
ック位相T3,T4中にプロセッサAが第1データ値で
アクセスされた値を修正しようとしており、平行して、
プロセッサBが第2データ値で同一の被アクセス値を修
正しようとすると、両方のプロセッサが被アクセス値の
状態を修正しようとしていることになり、競合が起こ
る。競合が起こると、誤った結果が出ることもある。同
様に、プロセッサAが被アクセス値に対して第3データ
値を書き込もうとしており、同時にプロセッサBが被ア
クセス値を読み込もうとすると、ここでも競合が起こ
り、被アクセス値の状態は不確定のものとなる。
【0049】しかし、資源パイプライン実行方法を用い
ることにより、衝突が回避され、アドレス値には2台以
上のプロセッサにより平行してアクセスすることができ
る。資源パイプライン実行方法では、プロセッサBクロ
ックの1位相がプロセッサAクロックの位相より、所定
の時間だけずらされる。ここで説明する例では、プロセ
ッサAは、「T1」と呼ばれる第1の所定の時点で読み
込みアクセスを実行し、プロセッサBは、「T2」と呼
ばれる第2の所定の時点に読み込みアクセスを実行す
る。ここで説明される本発明の実施例においては、プロ
セッサB21のキャッシュ制御論理34は、プロセッサ
Bクロックの位相をずらして、プロセッサB21は、後
で読み込みアクセスを行うことができるようになってい
る。そのために、プロセッサAが第1データ値を修正す
ると、前述された複数のステータス・ビット・セルが修
正された情報値を順送りして、プロセッサBは、古い情
報値ではなく、修正された情報値を読み込む。同様に、
第1プロセッサが読み込み動作を行うのと同時に(T
3)、第2プロセッサが書き込み動作を行うと、修正さ
れた情報値のステータス・ビットが順送りされて、プロ
セッサAは修正された情報値を読み込むことになる。
【0050】これらのそれぞれの例において、資源パイ
プライン処理,分割バス支配期間およびステータス・ビ
ット・セルの構造により、タグ・ユニット36は、有効
な機能性を損なうことなく同一のメモリ位置の少なくと
も2回のアクセスに対応することができる。
【0051】図7および図8は、それぞれの種類の衝突
条件におけるタグ・ユニット36の機能をまとめたもの
である。図7では、新しいデータ・タグ値がデータ・タ
グ・キャッシュ42のアドレスA0に書き込まれ、アド
レスA0の検索タグ値が検索タグ・キャッシュ40から
読み込まれるときに、「書き込み/読み込み」衝突が起
こる。ここでも、両方の動作がアドレスA0に対応する
ステータス・ビットを修正しようとすると、衝突が起こ
る。衝突が起こると、書き込み動作に応答して修正され
たステータス・ビットが、検索ステータス読み込みに対
応するステータス・ビットとして送られる。そのため、
データ・タグ書き込み動作により決定された専有修正状
態が、検索タグ読み込み動作の状態に順送りされる。ま
た、ステータス・ビットを順送りした後で、データ・ヒ
ットがアサートされて、アドレスA0によりアクセスさ
れた値はデータ・タグ・キャッシュ42内に記憶されて
いることを示す。この場合も、ステータス・ビットは修
正されて専有未修正状態を反映する。専有修正状態は、
検索読み込み動作中に反映されるので、キャッシュ制御
論理34によりタグ・ユニット36は、正しい検索タグ
値を検索タグ・キャッシュ40から送ることができる。
古いステータス・ビットが読み込まれた場合は、誤った
検索タグ値が引き出される。
【0052】また、図7は、新しい検索タグ値が検索タ
グ・キャッシュ40のアドレスA0に書き込まれ、平行
してアドレスA0のデータ・タグ値がデータ・タグ・キ
ャッシュ42から読み込まれるときに起こる「読み込み
/書き込み」衝突も示している。新しい検索タグ値を検
索タグ・キャッシュ40に書き込む第1段階の間は、対
応するステータス・ビットにより、古い検索タグ値は無
効状態にあることが示される。次に無効状態が順送りさ
れて、データ・タグ値の読み込み中に、誤ったデータ・
タグ値は読み込まれないようになる。
【0053】図8では、新しいデータ・タグ値と新しい
検索タグ値の両方がアドレスA0に書き込まれると、
「書き込み/書き込み」衝突が起こる。この例では、ス
テータス・ビットが修正されて、データ・タグ値に加え
られた修正を反映する。この場合も、ステータス・ビッ
トが順送りされて、アクセスされた検索タグ値は、無効
状態ではなく、専有修正状態になる。
【0054】図8はまた、「読み込み/読み込み」衝突
に関するタイミング図をも示している。しかし、ステー
タス・ビットは読み込み動作中には修正されないので、
状態は修正されず、ステータス・ビットを修正する必要
はない。
【0055】前述のように、キャッシュ制御論理ユニッ
ト34は、タグ・ユニット36の動作を制御して、衝突
が効率的に処理されるようになっている。図9は、キャ
ッシュ制御論理回路34が、タグ・ユニット36内の検
索タグ40に対して書き込み動作を行うときに実行する
一連の段階を示す状態図である。状態図の各動作は、キ
ャッシュ制御論理回路34内の回路構成により実行され
る。動作中は、キャッシュ制御論理回路34はアイドル
(IDLE)状態76にあり、これは多重処理システム10
のユーザによりリセット信号がアサートされるか、ある
いはプロセッサB21がアドレス・バス14の所有権を
リクエストするまで続く。アドレス・バス14の所有権
をリクエストするためには、プロセッサB21は制御バ
ス18に対して「外部アドレス・バス・リクエスト(Ext
ernal Address Bus Request)」とラベルを付けられた信
号を送らなければならない。外部アドレス・バス・リク
エスト信号がアサートされると、キャッシュ制御論理回
路34は、検索タグ値を書き込むべか否かを判定する処
理を開始する。データ支配期間がプロセッサB21によ
り現在実行されていない場合は、キャッシュ制御論理回
路34はデータ支配期間が始まるまで、開始状態78で
待機しなければならない。「データ使用中(Data Busy)
」とラベルの付けられた信号は、そのデータ支配期間
が現在実行されているか否かを示す。また、キャッシュ
制御論理回路34は、書き込まれているデータ値のステ
ータスが決定されるまでは、状態78に留まらねばなら
ない。データ値のステータスは、「ステータス保留(Sta
tus Pending)」とラベルの付けられた信号により示され
る。ステータス保留信号がアサートされると、キャッシ
ュ制御論理回路34は、データ値のステータスが決定し
て、ステータス・レジスタ(図示せず)のような適切な
ステータス記憶位置に書き込まれるまで、保留状態82
で待機しなければならない。「ステータス書き込み(Sta
tus Write)」とラベルの付けられた信号は、データ値の
ステータスが適切な記憶位置に書き込まれた否かを表
す。ステータス保留がアサートされても、ステータス書
き込みがアサートされない場合は、キャッシュ制御論理
回路34はアイドル状態76に戻る。
【0056】しかし、ステータス保留信号がアサートさ
れなくても、データ使用中信号およびステータス書き込
み信号の両方がアサートされると、キャッシュ制御論理
回路34は、第1待機0状態80に入り、次に第2待機
1 84状態に入る。状態84の間に、ステータス保留
信号およびステータス書き込み信号は、キャッシュ制御
論理回路34により再試験される。ステータス保留信号
またはステータス書き込み信号のいずれかがアサートさ
れると、キャッシュ制御論理34は再びアイドル状態7
6に進む。しかし、ステータス保留信号もステータス書
き込み信号もアサートされず、再試行(Retry) 信号がア
サートされないと、キャッシュ制御論理回路34は適切
な制御信号を送って、キャッシュ・コントローラ36内
で、検索タグ値の検索タグ・キャッシュへの書き込みを
イネーブルにする。また、ここで再試行信号がアサート
されると、キャッシュ制御論理回路34はアイドル状態
76に進む。検索タグ・キャッシュへの書き込みを実行
した後で、キャッシュ制御論理回路34は、アイドル状
態76に進んで次の外部バス・リクエスト信号を待つ
か、あるいは、外部バス・リクエスト信号が検索タグ・
キャッシュへの書き込み直後に受け取られた場合は、開
始状態76に進む。
【0057】図9に図示される検索タグ状態装置によ
り、外部プロセッサとのコンフリクトを起こさずに、検
索タグ値をデータ・キャッシュ・ユニット26のタグ・
キャッシュ36に書き込むことができる。さらに、試験
によってデータ値が現在書き込まれているか否かを判定
すると、検索タグ・キャッシュには有効な検索タグ値の
みが書き込まれることになる。
【0058】検索動作と書き込み動作の両方を平行して
実行するだけでなく、プロセッサA20およびプロセッ
サB21はいずれも、それぞれの各データ・キャッシュ
内の同一のメモリ記憶位置にアクセスする複数の動作を
処理することができる。たとえば、データ・メモリ37
内に記憶されているデータ値が検索され、しかも書き込
まれるか読み込まれるかされても、それぞれのアクセス
を効率も機能性も損なわずに実行することができる。プ
ロセッサB21のタグ・ユニット36は、複数のステー
タス・ビットを送り、これが動的に制御されて、処理速
度を落とさずに両方のアクセスに関して正確な結果をも
たらす。
【0059】ここで説明されたキャッシュ・コントロー
ラは、検索タグ・キャッシュにおいてもデータ・タグ・
キャッシュにおいても、効率的に、機能性を損なわずに
所定のアドレス位置の同時アクセスを処理することがで
きる。資源パイプライン処理とステータス・ビット順送
り技術の両方を用いることにより、それぞれのアクセス
が正確に実行され、正しい結果をもたらすことができ
る。さらに、アドレス支配期間とデータ支配期間を別個
に認識することにより、データ・プロセッサは、外部メ
モリ回路と、その内部のデータ・キャッシュとから平行
して、1つの情報値にアクセスすることができる。アド
レス支配期間とデータ支配期間とを別個にすることで、
データ・プロセッサは、外部データ・プロセッサからの
アクセス動作を処理して、同時に自身のアクセス動作も
行うことができる。
【0060】ここで説明された実行例は、単に例として
提供されたに過ぎない。しかし、ここで説明された機能
を実行する実行例は他にも多くある。たとえば、多重処
理システム10は、3台以上のプロセッサを備えていて
も、あるいは1台のデータ・プロセッサだけを有しても
よい。また、すべての関連の制御およびインターフェー
ス機能は図には特に示されていないが、プロセッサB2
1に含まれることを理解されたい。キャッシュ制御論理
34は、論理回路構成として実現して、多重処理システ
ム10内で検索タグ・キャッシュに対して書き込みを実
行する状態装置の実行に必要な制御を提供することもで
きる。当業者であれば、状態装置内に解説されたそれぞ
れの機能を実行するために必要な論理回路構成を実現す
ることができるだろう。また、ステータス・ビット順送
り技術は、ここで図示されたように2個のキャッシュ・
タグ・アレイを用いなくとも、単独の多重ポート・キャ
ッシュ・タグ・アレイを用いても実現することができ
る。
【0061】以上本発明の原理を説明してきたが、本説
明は単に例としてなされたに過ぎず、本発明の範囲を制
限するものでないことは、当業者には明確に理解いただ
けよう。従って、添付の請求項により、本発明の精神と
範囲とに入るすべての修正を包括するものとする。
【図面の簡単な説明】
【図1】本発明によるデータ・キャッシュ・ユニットを
有する多重処理システムのブロック図である。
【図2】図1のデータ・キャッシュ・ユニットのブロッ
ク図である。
【図3】本発明による図2のタグ・ユニットのブロック
図である。
【図4】図3のステータス・アレイ・ビット・セル回路
の部分論理図である。
【図5】本発明によるキャッシュ・タグ書き込み動作中
のアドレスおよびデータ・バスの行動をタイミング図に
示したものである。
【図6】本発明による通常のパイプライン化された命令
の流れと、資源パイプライン化された命令の流れの両方
をタイミング図に示したものである。
【図7】本発明による書き込み/読み込み衝突動作およ
び読み込み/書き込み衝突動作の両方のステータスの流
れをタイミング図に示したものである。
【図8】本発明による二重書き込み衝突動作および二重
読み込み衝突動作の両方のステータスの流れをタイミン
グ図に示したものである。
【図9】本発明による検索キャッシュ・タグ書き込み動
作を実行する状態装置の状態図である。
【符号の説明】
12 メモリ・システム 14 アドレス・バス 16 データ・バス 18 制御バス 20,21 プロセッサ 22 クロック論理 23 バス・インターフェース・ユニット 24 実行ユニット 25 内部データ 26 データ・キャッシュ・ユニット 27 内部制御 28 命令キャッシュ・ユニット 30 シーケンサ 32 ロード/記憶ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームス・エス・ゴラブ アメリカ合衆国テキサス州オースチン、ク ラーノ・ドライブ4501 (72)発明者 ウィリアム・シー・モイヤー アメリカ合衆国テキサス州ドリッピング・ スプリングス、ピヤー・ブランチ・ロード 1005

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュ・コントローラ(36)であ
    って:前記キャッシュ・コントローラを第1バスに結合
    する第1バス・インターフェース手段(34,38);
    前記キャッシュ・コントローラを第2バスに結合する第
    2バス・インターフェース手段(34,44);前記第
    1バス・インターフェース手段に結合された第1キャッ
    シュ・タグ・メモリ・アレイ(40)であって、前記第
    1キャッシュ・タグ・メモリ・アレイは所定の数のエン
    トリによって構成され、各エントリが前記キャッシュ・
    コントローラに外付けされているデータ・メモリ・アレ
    イ内の独自のエントリに対応する第1キャッシュ・タグ
    ・メモリ・アレイ(40);前記第2バス・インターフ
    ェース手段に結合された第2キャッシュ・タグ・メモリ
    ・アレイ(42)であって、前記第2キャッシュ・タグ
    ・メモリ・アレイは所定の数のエントリによって構成さ
    れ、各エントリが前記データ・メモリ・アレイ内の独自
    のエントリに対応する第2キャッシュ・タグ・メモリ・
    アレイ(42);および前記の第1および第2キャッシ
    ュ・タグ・メモリ・アレイに結合されたステータス・メ
    モリ・アレイ(41)であって、前記ステータス・メモ
    リ・アレイは所定の数のエントリによって構成され、各
    エントリが前記第1キャッシュ・タグ・メモリ・アレイ
    内の独自のエントリと、前記第2キャッシュ・タグ・メ
    モリ・アレイ内の独自のエントリとに対応するステータ
    ス・メモリ・アレイ(41);によって構成されること
    を特徴とするキャッシュ・コントローラ(36)。
  2. 【請求項2】 第1データ・プロセッサ(21)と、第
    2データ・プロセッサ(20)と、外部メモリ・アレイ
    (12)と、前記の第1データ・プロセッサ,第2デー
    タ・プロセッサおよび外部メモリ・アレイにそれぞれ結
    合された外部情報バス(14,16,18)とを備えた
    多重処理システム(10)であって、前記第1データ・
    プロセッサは、さらにキャッシュ・メモリ(37)と、
    キャッシュ・コントローラ(36)とを備えており、前
    記キャッシュ・コントローラがさらに:前記キャッシュ
    ・コントローラを前記外部情報バスに結合する第1バス
    ・インターフェース手段(34,38);前記キャッシ
    ュ・コントローラを内部情報バスに結合する第2バス・
    インターフェース手段(34,44);前記第1バス・
    インターフェース手段に結合された第1キャッシュ・タ
    グ・メモリ・アレイ(40)であって、前記第1キャッ
    シュ・タグ・メモリ・アレイは所定の数のエントリによ
    って構成され、各エントリが前記外部メモリ・アレイ内
    の独自のエントリに対応する第1キャッシュ・タグ・メ
    モリ・アレイ(40);前記第2バス・インターフェー
    ス手段に結合された第2キャッシュ・タグ・メモリ・ア
    レイ(42)であって、前記第2キャッシュ・タグ・メ
    モリ・アレイは所定の数のエントリによって構成され、
    各エントリが前記外部メモリ・アレイ内の独自のエント
    リに対応する第2キャッシュ・タグ・メモリ・アレイ
    (42);および前記の第1および第2キャッシュ・タ
    グ・メモリ・アレイの両方に結合されたステータス・メ
    モリ・アレイ(41)であって、前記ステータス・メモ
    リ・アレイは所定の数のエントリによって構成され、各
    エントリが前記第1キャッシュ・タグ・メモリ・アレイ
    内の独自のエントリと、前記第2キャッシュ・タグ・メ
    モリ・アレイ内の独自のエントリとに対応するステータ
    ス・メモリ・アレイ(41);によって構成されること
    を特徴とする多重処理システム(10)。
  3. 【請求項3】 多重処理システムにおいてキャッシュ・
    コントローラ(36)を提供する方法であって: 前記キャッシュ・コントローラを第1バスに結合する段
    階; 前記キャッシュ・コントローラを第2バスに結合する段
    階; 第1キャッシュ・タグ・メモリ・アレイ(40)を前記
    第1バスに結合する段階であって、前記第1キャッシュ
    ・タグ・メモリ・アレイは所定の数のエントリによって
    構成され、各エントリが前記キャッシュ・コントローラ
    に外付けされているデータ・メモリ・アレイ内の独自の
    エントリに対応する第1キャッシュ・タグ・メモリ・ア
    レイを結合する段階;第2キャッシュ・タグ・メモリ・
    アレイ(42)を前記第2バスに結合する段階であっ
    て、前記第2キャッシュ・タグ・メモリ・アレイは所定
    の数のエントリによって構成され、各エントリが前記デ
    ータ・メモリ・アレイ内の独自のエントリに対応する第
    2キャッシュ・タグ・メモリ・アレイを結合する段階;
    およびステータス・メモリ・アレイ(41)を前記の第
    1および第2キャッシュ・タグ・メモリ・アレイの両方
    に結合する段階であって、前記ステータス・メモリ・ア
    レイは所定の数のエントリによって構成され、各エント
    リが前記第1キャッシュ・タグ・メモリ・アレイ内の独
    自のエントリと、前記第2キャッシュ・タグ・メモリ・
    アレイ内の独自のエントリとに対応するステータス・メ
    モリ・アレイを結合する段階;によって構成されること
    を特徴とする方法。
  4. 【請求項4】 キャッシュ・コントローラ(36)であ
    って:前記キャッシュ・コントローラを第1バスに結合
    する第1バス・インターフェース手段(34,38);
    前記キャッシュ・コントローラを第2バスに結合する第
    2バス・インターフェース手段(34,44);前記第
    1バス・インターフェース手段に結合された第1群の入
    力と、前記第2バス・インターフェース手段に結合され
    た第2群の入力とを有する多重ポート・キャッシュ・タ
    グ・メモリ・アレイ(40,44)であって、前記キャ
    ッシュ・タグ・メモリ・アレイは、所定の数のエントリ
    によって構成され、各エントリが、前記キャッシュ・コ
    ントローラに外付けされたデータ・メモリ・アレイ内の
    独自のエントリに対応する多重ポート・キャッシュ・タ
    グ・メモリ・アレイ(40,44);および前記キャッ
    シュ・タグ・メモリ・アレイに結合されたステータス・
    メモリ・アレイ(41)であって、前記ステータス・メ
    モリ・アレイは所定の数のエントリによって構成され、
    各エントリが前記キャッシュ・タグ・メモリ・アレイ内
    の独自のエントリに対応するステータス・メモリ・アレ
    イ(41);によって構成されることを特徴とするキャ
    ッシュ・コントローラ(36)。
  5. 【請求項5】 第1データ・プロセッサ(21)と、第
    2データ・プロセッサ(20)と、メイン・メモリ(1
    2)と、前記第1データ・プロセッサ,前記第2データ
    ・プロセッサおよび前記メイン・メモリにそれぞれ結合
    されたシステム・バス(14,16,18)とを備えた
    多重処理システム(10)において、前記第1データ・
    プロセッサが、さらにキャッシュ・コントローラ(3
    6)と、第1キャッシュ・タグ・メモリ(40)と、第
    2キャッシュ・タグ・メモリ(42)と、ステータス情
    報メモリ・アレイ(41)と、内部バスとを備えている
    多重処理システム(10)において、前記キャッシュ・
    コントローラを動作させる方法であって:前記システム
    ・バスにより提供されたアドレスの部分を用いて、前記
    第1キャッシュ・タグ・メモリ・アレイ内の第1位置に
    アクセスする段階;前記第1キャッシュ・タグ・メモリ
    ・アレイ内の前記第1位置と関連性をもつ第1ステータ
    ス情報値に、前記第1キャッシュ・タグ・メモリ・アレ
    イ内の前記第1位置と独自に関連性を持つ前記ステータ
    ス情報メモリ・アレイ内の第1位置から平行にアクセス
    する段階;前記内部バスにより提供されたアドレスの部
    分を用いて、前記第2キャッシュ・タグ・メモリ・アレ
    イ内の第2位置に平行してアクセスする段階;および前
    記第2キャッシュ・タグ・メモリ・アレイ内の前記第2
    位置に関連性をもつ第2ステータス情報値に平行にアク
    セスする段階であって、この第2位置は前記第1キャッ
    シュ・タグ・メモリ・アレイ内の前記第2位置と独自の
    関連性を持ち、前記システム・バスにより提供されたア
    ドレスの前記部分が、前記内部バスにより提供されたア
    ドレスの前記部分と同じであれば、前記ステータス情報
    メモリ・アレイ内の前記第1および第2位置は等しくな
    る、平行にアクセスする段階;によって構成されること
    を特徴とする方法。
JP02968593A 1992-01-31 1993-01-27 キャッシュ・コントローラ Expired - Lifetime JP3218773B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US82911492A 1992-01-31 1992-01-31
US829114 1992-01-31

Publications (2)

Publication Number Publication Date
JPH05282203A true JPH05282203A (ja) 1993-10-29
JP3218773B2 JP3218773B2 (ja) 2001-10-15

Family

ID=25253563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02968593A Expired - Lifetime JP3218773B2 (ja) 1992-01-31 1993-01-27 キャッシュ・コントローラ

Country Status (4)

Country Link
US (1) US5598550A (ja)
EP (1) EP0553743A1 (ja)
JP (1) JP3218773B2 (ja)
KR (1) KR100286962B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08297642A (ja) * 1995-04-26 1996-11-12 Kofu Nippon Denki Kk 共有メモリ型マルチプロセッサシステム
JP2004199677A (ja) * 2002-12-13 2004-07-15 Hewlett-Packard Development Co Lp キャッシュを動作させるためのシステム及び方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0735481B1 (en) * 1995-03-31 2003-05-14 Sun Microsystems, Inc. System level mechanism for invalidating data stored in the external cache of a processor in a computer system
US5765208A (en) * 1995-09-29 1998-06-09 Motorola, Inc. Method of speculatively executing store instructions prior to performing snoop operations
US5809537A (en) * 1995-12-08 1998-09-15 International Business Machines Corp. Method and system for simultaneous processing of snoop and cache operations
US6223260B1 (en) * 1996-01-25 2001-04-24 Unisys Corporation Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US6038644A (en) * 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US5862316A (en) * 1996-07-01 1999-01-19 Sun Microsystems, Inc. Multiprocessing system having coherency-related error logging capabilities
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US5909561A (en) * 1997-04-14 1999-06-01 International Business Machines Corporation Apparatus and method for separately layering cache and architectural specific functions in different operational controllers to facilitate design extension
US5937172A (en) * 1997-04-14 1999-08-10 International Business Machines Corporation Apparatus and method of layering cache and architectural specific functions to permit generic interface definition
JP3864509B2 (ja) * 1997-08-19 2007-01-10 株式会社日立製作所 マルチプロセッサシステム
US6415358B1 (en) 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6263407B1 (en) 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6292872B1 (en) 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
US6272603B1 (en) 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
US6266744B1 (en) * 1999-05-18 2001-07-24 Advanced Micro Devices, Inc. Store to load forwarding using a dependency link file
US6536000B1 (en) 1999-10-15 2003-03-18 Sun Microsystems, Inc. Communication error reporting mechanism in a multiprocessing computer system
JP2002055879A (ja) * 2000-08-11 2002-02-20 Univ Hiroshima マルチポートキャッシュメモリ
JP3755415B2 (ja) * 2001-04-04 2006-03-15 株式会社デンソー 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体
US7085885B2 (en) * 2002-04-24 2006-08-01 Ip First Llc Apparatus and method for early cache miss detection
US7146468B2 (en) * 2002-04-24 2006-12-05 Ip-First, Llc. Cache memory and method for handling effects of external snoops colliding with in-flight operations internally to the cache
KR100474704B1 (ko) * 2002-04-29 2005-03-08 삼성전자주식회사 데이터의 버스트 동시쓰기가 가능한 프로세서 이중화 장치
US7073026B2 (en) * 2002-11-26 2006-07-04 Advanced Micro Devices, Inc. Microprocessor including cache memory supporting multiple accesses per cycle
US7020752B2 (en) * 2003-02-07 2006-03-28 Sun Microsystems, Inc. Apparatus and method for snoop access in a dual access, banked and pipelined data cache memory unit
US8347034B1 (en) 2005-01-13 2013-01-01 Marvell International Ltd. Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US7685372B1 (en) 2005-01-13 2010-03-23 Marvell International Ltd. Transparent level 2 cache controller
US20070136724A1 (en) * 2005-12-12 2007-06-14 Arun Sharma Transferring registers in transitions between computer environments
US8667226B2 (en) 2008-03-24 2014-03-04 Freescale Semiconductor, Inc. Selective interconnect transaction control for cache coherency maintenance
US8935485B2 (en) 2011-08-08 2015-01-13 Arm Limited Snoop filter and non-inclusive shared cache memory
US9424948B1 (en) * 2015-10-23 2016-08-23 International Business Machines Corporation Detection of initial state by eFuse array
US10613980B2 (en) * 2017-12-19 2020-04-07 International Business Machines Corporation Coherence protocol providing speculative coherence response to directory probe

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
US4345309A (en) * 1980-01-28 1982-08-17 Digital Equipment Corporation Relating to cached multiprocessor system with pipeline timing
US4731739A (en) * 1983-08-29 1988-03-15 Amdahl Corporation Eviction control apparatus
US4620275A (en) * 1984-06-20 1986-10-28 Wallach Steven J Computer system
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
US5168560A (en) * 1987-05-29 1992-12-01 Amdahl Corporation Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line
US4926317A (en) * 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US4992930A (en) * 1988-05-09 1991-02-12 Bull Hn Information Systems Inc. Synchronous cache memory system incorporating tie-breaker apparatus for maintaining cache coherency using a duplicate directory
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
US5276828A (en) * 1989-03-01 1994-01-04 Digital Equipment Corporation Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions
IT1229240B (it) * 1989-05-08 1991-07-26 Bull Hn Information Syst Memoria tampone e relativo protocollo di consistenza dati.
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
JPH03219345A (ja) * 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
EP0439952A3 (en) * 1990-01-31 1992-09-09 Sgs-Thomson Microelectronics, Inc. Dual-port cache tag memory
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5251310A (en) * 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
IE860318L (en) * 1990-10-01 1986-08-05 Digital Equipment Corp System bus for a multi-cache data processing system
US5276835A (en) * 1990-12-14 1994-01-04 International Business Machines Corporation Non-blocking serialization for caching data in a shared cache
US5339399A (en) * 1991-04-12 1994-08-16 Intel Corporation Cache controller that alternately selects for presentation to a tag RAM a current address latch and a next address latch which hold addresses captured on an input bus
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08297642A (ja) * 1995-04-26 1996-11-12 Kofu Nippon Denki Kk 共有メモリ型マルチプロセッサシステム
JP2004199677A (ja) * 2002-12-13 2004-07-15 Hewlett-Packard Development Co Lp キャッシュを動作させるためのシステム及び方法

Also Published As

Publication number Publication date
US5598550A (en) 1997-01-28
EP0553743A1 (en) 1993-08-04
KR100286962B1 (ko) 2001-04-16
JP3218773B2 (ja) 2001-10-15
KR930016891A (ko) 1993-08-30

Similar Documents

Publication Publication Date Title
JP3218773B2 (ja) キャッシュ・コントローラ
JP4045062B2 (ja) ロード命令を実行する方法、プロセッサ、およびシステム
US4881163A (en) Computer system architecture employing cache data line move-out queue buffer
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US4831581A (en) Central processor unit for digital data processing system including cache management mechanism
US6035376A (en) System and method for changing the states of directory-based caches and memories from read/write to read-only
JP3759193B2 (ja) アトミック動作バス・システム
JPH0410102B2 (ja)
JP3836836B2 (ja) メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構
JP2001256109A (ja) 統合キャッシュポートの制御方法および装置
US6928524B2 (en) Data processing system with naked cache line write operations
JPH05282204A (ja) 第1および第2キャッシュ・タグ・メモリ・アレイの動作方法
JPH0816475A (ja) マルチプロセッサシステム
JP3226557B2 (ja) マルチプロセッサシステム
JPS63240651A (ja) キヤツシユメモリ
JPS6391756A (ja) 記憶装置の部分書き込み命令処理方式
JP2000066946A (ja) メモリコントローラ
JP3219422B2 (ja) キャッシュメモリ制御方式
JP3241637B2 (ja) キャッシュメモリ
JPH06231032A (ja) アクセス制御装置
JP2684752B2 (ja) 拡張記憶制御方式
JPH0635787A (ja) ライトバッファ制御方式
JPH061440B2 (ja) デジタルデータ処理装置内で使用されるプロセッサ及びデータ処理方法
JPH06124235A (ja) キャッシュ制御方式
JPH10143430A (ja) 階層キャッシュメモリとそのステート遷移制御方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070810

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080810

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080810

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090810

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130810

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130810

Year of fee payment: 12