JPH05241954A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH05241954A
JPH05241954A JP4298236A JP29823692A JPH05241954A JP H05241954 A JPH05241954 A JP H05241954A JP 4298236 A JP4298236 A JP 4298236A JP 29823692 A JP29823692 A JP 29823692A JP H05241954 A JPH05241954 A JP H05241954A
Authority
JP
Japan
Prior art keywords
processor
data
write
line
cache
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
JP4298236A
Other languages
English (en)
Other versions
JP2717752B2 (ja
Inventor
Michael Kagan
マイケル・カガン
Itamar Kazachinsky
イタマール・カザチンスキイ
Simcha Gochman
シムチャ・ゴッホマン
Tal Gat
タル・ガット
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JPH05241954A publication Critical patent/JPH05241954A/ja
Application granted granted Critical
Publication of JP2717752B2 publication Critical patent/JP2717752B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

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)【要約】 【目的】 ライトバック、ライトスルー、ないしライト
ワンス・プロトコルの選択を可能にする改良されたプロ
セッサを提供する。 【構成】 ピンを大地ないしVcc電位に接続してライト
スルーないしライトバック・プロトコルを選択する。こ
のピンを読取り/書込み回線に接続すると、ライトワン
ス・プロトコルを選択できる。2つのプロセッサを相互
接続することで最低限のグルーロジックでライトバック
・プロトコルでのプロセッサ操作を可能にする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はキャッシュ・メモリに関
し、特に多重プロセッサ環境で作動するキャッシュ・メ
モリに関する。
【0002】
【従来の技術】本発明ではキャッシュ・メモリとRIS
Cマイクロプロセッサで実行する関連ロジックにおける
いくつかの改良点を説明する。RISCプロセッサは市
販のインテル 860プロセッサの改良型バージョンであ
る。改良型キャッシュ・メモリと関連ロジックは特に共
用バスを使用する多重プロセッサ環境に適用することが
できる。
【0003】インテル 860マイクロプロセッサは市販さ
れていることに加え、1990年にオズボーン・マックグロ
ーヒル社刊行のニール・マルグリスによる「i 860マイ
クロプロセッサ・アーキテクチャ」などの数々の印刷物
で説明されている。キャッシュ・メモリを有するインテ
ル 860マイクロプロセッサと他のマイクロプロセッサは
処理装置からそのキャッシュ・メモリに仮想アドレスで
アクセスする。仮想アドレスは変換装置により物理的ア
ドレスに変換され、ミスが生じると外部メモリサイクル
を始動して物理的アドレスを用いて主記憶装置にアクセ
スする。一般に仮想アドレスでキャッシュ・メモリにア
クセスすることは、仮想アドレスから物理的アドレスへ
の変換を待たずにアドレスを行うことができるのでより
望ましい。
【0004】マイクロプロセッサないし多重タスク環境
では、いくつかの仮想アドレスを単一物理的アドレスに
写像することがある。これは従来技術で克服し難い問題
を提起してはいないが、この環境で従来の仮想アドレス
を元にしたキャッシュ・メモリを用いるには弱点があ
る。そこで後述するように本発明ではマイクロプロセッ
サないし多重タスク環境により適したキャッシュ・メモ
リを説明する。
【0005】キャッシュ・メモリを組織する際、回線サ
イズ、タッグフィールドサイズ、オフセット・フィール
ドサイズなどの間で一定の取り決めを行う。大方の場
合、それらの取り決めでは回線サイズをデータバスより
かなり広くし、一般にキャッシュ回線にはいくつかの命
令を含める。例えばインテル 860マイクロプロセッサで
は、キャッシュ回線は32バイトで、データバスは8バイ
ト、命令は4バイトである。命令取出しでミスが生じる
と処理装置は、命令がキャッシュ・メモリから処理装置
に与えられる前にキャッシュ・メモリが全命令(8命
令)を受け取るまで待機しなければならない。そこで後
述するように、本発明ではこの待機期間をなくする回線
バッファを備える。
【0006】多重プロセッサ環境で特にキャッシュ・コ
ヒーレンスを提供するよく知られたプロトコルが数多く
ある。キャッシュ・メモリ(例:インテル 486)を含む
一部のプロセッサではライトスルー・プロトコルを用い
ている。キャッシュ・メモリへの書込みが生じると、同
時に書込みサイクルは主記憶装置へ「ライトスルー」す
る。このようにして主記憶装置は常に現在データの真の
コピーを持つことになる(このプロトコルに付いては、
キャッシュ・メモリはデータを無効ないし本発明の用語
で「共用」と類別する)。他のプロセッサでは、インテ
ル 860で使用されるライトバック・プロトコルのような
ディファード(deferred)書込みプロトコルを使用して
いる。ここでキャッシュ・メモリ内のデータは無効ない
し排他的あるいは修正済み(汚染)と類別される。一部
のシステムで使用されているディファード書込みを有す
る他のプロトコルにライトワンス・プロトコルがある。
このプロトコルでは、キャッシュ・メモリ内のデータを
無効、排他的、修正済み、あるいは共用と類別する。こ
れらのプロトコルとその変形は米国特許 4,755,930号で
検討されている。
【0007】後述するように本発明によりユーザは3つ
のプロトコルの内の1つを選択することができる。本発
明を使用するプロセッサは、多重プロセッサ環境でプロ
セッサ外に最低の回路しか有せずにキャッシュ・コヒー
レンスを可能にする他のプロセッサと相互接続するいく
つかの端子(ピン)を内蔵している。主記憶装置へ書き
込むデータの順序を維持することはときどき問題とな
り、特にメモリに共用バスを通してアクセスする場合に
そうである。「書込み」を格納するためにバッファを使
用し、それによりそれらを都合の良いときに主記憶装置
に書き込むことができるようにしている。これに伴う問
題は、データが生成された順序で主記憶装置に書き込む
ようにするには何らかのメカニズムを備えなければなら
ないということである。本発明は、一定の条件に基づい
て書込みの強い順序付けと弱い順序付けの両方を可能に
する適応的なメカニズムを提供する。
【0008】
【発明が解決しようとする課題】以上のように本発明の
目的はマイクロプロセッサないし多重タスク環境により
適したキャッシュ・メモリを提供することである。更な
る目的は上記待機期間をなくする回線バッファを備え、
ユーザが上記3つのプロトコルの内の1つを選択するこ
とができるマイクロプロセッサを提供することである。
別の目的は一定の条件に基づいて書込みの強い順序付け
と弱い順序付けの両方を可能にする適応的なメカニズム
を提供することである。
【0009】
【課題を解決するための手段】キャッシュ・メモリを有
するマイクロプロセッサを改良するため、キャッシュ・
メモリはそのデータが無効状態、共用状態、排他的状
態、あるいは修正状態の1つの状態にあるかどうかを示
すデータ各々の回線の記憶手段を内蔵する。プロセッサ
はライトバック、非ライトスルー端子(WB/WT\)
を識別する端子を内蔵している。この端子が大地と接続
されている場合はライトスルー・プロトコルが選択さ
れ、Vccと接続されている場合はライトバック・プロト
コルが選択される。プロセッサからの読取り/書込み信
号と接続されている場合は、ライトワンス・プロトコル
が選択される。プロセッサは、本発明の詳細な説明で説
明するように接続された場合に2つのプロセッサが最小
限の外部回路を用いてライトワンス・プロトコルに接続
可能にする他の端子を内蔵している。本発明の他の態様
は以下の詳細な説明で述べる。
【0010】
【実施例】改良したキャッシュ・メモリと関連ロジック
を説明する。以下の説明では、本発明の完全な理解をも
たらすため特定ビット数など数々の特定の詳細を挙げ
る。しかし当業者には本発明はそれらの特定の詳細がな
くとも実施できることが明かとなろう。他の例では本発
明を不必要に曖昧にしないため、よく知られた回路をブ
ロック図で示すことにする。本出願を通しバイナリ情報
を示すのに「データ」という語を使用する。一部の例で
は、「データ」は例えばメモリに格納された定数、命令
ないし無数のその他のフィールドを初めとする総称的な
意味で使用している。本発明の本実施例では命令(デー
タ)は非命令データとは別々にキャッシュ・メモリ内に
格納される。これは適宜指摘する。
【0011】本発明のキャッシュ・メモリの本実施例は
64ビットRISCマイクロプロセッサの単一チップに組
み込む。プロセッサはよく知られた相補型金属酸化膜半
導体(CMOS)技術その他の技術を使用して実現でき
る。このプロセッサを製作するために用いる技術は本発
明にとっては重要ではなく、本発明はマイクロプロセッ
サで使用するのに適したキャッシュ・メモリに向けたも
のである。そこで大部分本発明に関連したプロセッサの
それらの部分のみを説明することにする。
【0012】従来の技術の項で述べたように、本発明の
キャッシュ・メモリを組み込むプロセッサはインテル 8
60の改良型バージョンである。この市販のRISCプロ
セッサの入出力の多くは本発明のキャッシュ・メモリを
組み込んだプロセッサで使用される。また先述したよう
に、インテル 860マイクロプロセッサを説明した優れた
参考文献として、1990年にオズボーン・マックグローヒ
ル社刊行のニール・マルグリスによる「i 860マイクロ
プロセッサ・アーキテクチャ」がある。
【0013】本発明のキャッシュ・メモリはデータ(非
命令)キャッシュと命令キャッシュに分割される。両方
とも32バイトの回線幅の4ウェイ・セットアソシアティ
ブ方式で、両方とも16kBのデータを格納する。各々の
タッグフィールドは20ビットである。7ビットのオフセ
ットフィールドを用いてデータ記憶装置のバンク内にエ
ントリ番号を形成する。後述するように物理的タッグ及
び仮想タッグは両方とも非命令データ記憶装置に格納す
る。物理的タッグは、(詮索)外部バス上のアドレス並
びに変換装置からの物理的アドレスの両方の検査を可能
にする二重ポート記憶装置アレィに格納する。このアレ
ィで用いられるセルと1サイクル読取り/修正書込みサ
イクルを可能にする付随回路は、1989年12月29日に出願
され、本発明の譲渡人に譲渡された出願番号 458,985号
の「1サイクル読取り・修正・書込み操作を有する二重
ポート静的メモリ」の係属出願で説明されている。キャ
ッシュ・メモリの記憶の残りは、マスタ・スレーブ・セ
ルを用いる回線バッファを除き、通常の6トランジスタ
・セル(静的、フリップフロップ・セル)で実現する。
仮想アドレスと物理的アドレスの各々は、インテル 860
の場合と同様に32ビットで構成する。
【0014】仮想及び物理的タッグ記憶装置の全体的な
アーキテクチャとその作動 図1には、インテル 860などの従来のプロセッサで見ら
れる処理装置と同様の処理装置15が示されている。この
処理装置には両方向データバスと仮想アドレスバスが接
続されている。データバスは外部データバス26と接続さ
れている。仮想アドレスはキャッシュ・メモリと変換装
置20にバスを通して接続されている。アドレスのタッグ
フィールドは仮想アドレスタッグ記憶部分22に接続され
ている。アドレスのオフセットフィールドはデータ・キ
ャッシュ23に接続されている。オフセットフィールド
は、データ・キャッシュ23のバンクにエントリ番号(回
線選択)を与える。インデックス・フィールドは図示し
ていない。仮想タッグの格納に加えて、物理的タッグも
物理的アドレスタッグ記憶部分21に格納する。各々の物
理的タッグはその対応する仮想タッグと連関している。
変換装置20は処理装置15からの仮想アドレスを通常の方
法で物理的アドレスに変換する。変換装置20の出力のバ
ス24は外部アドレスバス25と接続される。物理的アドレ
ス(タッグフィールド)は物理的アドレスタッグ記憶部
分21と接続される。
【0015】図1に示すように、主記憶装置18、アドレ
スバス25及びデータバス26は「チップ外」にあり、すな
わちそれらは本実施例ではプロセッサの残りと共に単一
の基板上には形成されない。インテル 860の場合と同
様、キャッシュ・メモリ、処理装置、変換装置その他の
装置は単一基板上に形成される。作動の際、処理装置15
がデータを要求する場合、データの仮想アドレスが仮想
アドレスタッグ記憶部分22に送られる。処理装置からの
タッグフィールドと仮想アドレスタッグ記憶部分22に格
納されているタッグフィールドが合致せず、ミス状態に
なると想定する。仮想アドレスタッグ記憶部分22での比
較過程と同時に、変換装置20は仮想アドレスを物理的ア
ドレスに変換する。次に物理的アドレスのタッグフィー
ルドは物理的アドレスタッグ記憶部分21(非命令データ
用)と連結される。再びそれを物理的アドレスタッグ記
憶部分21に格納された物理的タッグフィールドの各々と
比較する。再び合致せず、ミス状態が起こると想定する
と、読取りメモリサイクルが起動され、物理的アドレス
を用いて主記憶装置18にアクセスする。求めるアドレス
が「キャッシュ可能」ならば、そのデータの対応する仮
想アドレスと物理的アドレスがそれぞれ仮想アドレスタ
ッグ記憶部分22と物理的アドレスタッグ記憶部分21に格
納され、主記憶装置からのデータはデータ・キャッシュ
23に格納される。
【0016】図2で、再び処理装置はブロック28に示す
仮想アドレスを与えると想定する。このアドレスは再び
仮想アドレスタッグ記憶部分22に連結される。ブロック
30に示すように、処理装置15からの仮想アドレスの20ビ
ット・タッグフィールドを仮想アドレスタッグ記憶部分
22に格納された20ビット・タッグフィールドと比較す
る。合致すれば、ブロック33に示すようにデータ(有効
ならば)を従来技術でよく知られているように、オフセ
ットと索引ビットを用いて通常の方法でデータ・キャッ
シュ23から得ることができる。仮想タッグに対して比較
が行われている間に、変換装置20は図2のブロック29に
示すように、仮想アドレスを物理的アドレスに変換す
る。物理的アドレスのタッグフィールドは物理的アドレ
スタッグ記憶部分21と連結され、そこに格納されている
20ビットタッグフィールドと比較される。仮想タッグに
対してミスが生じるが、物理的タッグに対してヒットが
生ずれば、再びオフセットと索引ビット(これらのビッ
トは仮想、物理的アドレスに対して同じ)を用いて物理
的タッグ部分のヒットに基づいてデータキャッシュから
データを選択する。またこの状態に対しブロック35で示
すように、仮想アドレスタッグ・フィールドを、仮想ア
ドレスタッグ記憶部分22のヒットをもたらした物理的ア
ドレスのタッグフィールドに対応する位置に入れる。
【0017】仮想、物理的タッグの両方に対してミスが
生ずれば、通常のメモリサイクルを起動してデータは主
記憶装置から読み取られる。データがキャッシュ可能で
あれば、ブロック32に示すように、データ自身に加えて
仮想アドレスタッグ記憶部分と物理的アドレスタッグ記
憶部分は更新される。プロセッサに対してタスクないし
内容変更があれば、仮想アドレスタッグ記憶部分22の全
ての仮想タッグは無効化される。データ・キャッシュ23
のデータ並びに物理的アドレスタッグ記憶部分21の物理
的タッグは残存する。変換装置は一般に新しいタスクに
写像することでこの時に再プログラム化される。処理装
置15が次に仮想アドレスを生成しても、仮想アドレスタ
ッグ記憶部分22内ではヒットは不可能である。しかし物
理的アドレスタッグ記憶部分21内ではヒットは可能であ
り、そしてそれが生ずれば、データ・キャッシュ23から
データが与えられ、仮想アドレスのタッグフィールドは
仮想アドレスタッグ記憶部分22のヒットをもたらした物
理的タッグフィールドに対応する位置にロードされる。
【0018】プロセッサ上で1つ以上のタスクが実行さ
れる場合、単一物理的アドレスにとり1つ以上の対応す
る仮想アドレスを有することは異常なことではない。従
って1つのタスクから他のものへの変更がある場合、異
なる仮想アドレスが他の仮想アドレスと関連してデータ
・キャッシュ23内に先に格納されたデータを要求するこ
とができる。物理的タッグが比較されるので、主記憶装
置18に依存することなくデータをデータ・キャッシュ23
内で求められる。図1に示すメモリキャッシュの他の利
点、特にマイクロプロセッサ・アプリケーションでは、
外部アドレスバス25上の物理的アドレスを物理的アドレ
スタッグ記憶部分21内のタッグと比較することが出来、
特定のキャッシュがデータの最新バージョンを有する場
合、後述するようにそれを容易に判定することができ
る。物理的アドレスタッグ記憶部分21は上記の機能を行
いつつ、詮索を可能にする二重ポート記憶アレィであ
る。
【0019】回線バッファ 本実施例で、図1で説明した仮想及び物理的タッグフィ
ールドの用途は、キャッシュ・メモリの非命令データ部
分と共にのみ使用する。しかし命令記憶部分についても
使用することができる。他方、図3に示す改良形の回線
バッファは、非命令データ記憶装置ではなく命令記憶装
置と共に使用するが、これも非命令データ記憶装置に使
用することができる。図3の回線バッファを説明する前
に、プロセッサが命令の取出しを求め、キャッシュ・メ
モリでミスが生じる場合、どのようなことが起こるか検
討することにする。説明するキャッシュ・メモリに対
し、8命令に対応してデータの各々の回線は32バイドワ
イドである。ミスが生じると、キャッシュ・メモリの全
回線は充填され、そこでプロセッサはその回線で要求し
た命令(4バイト)を検索することができる。その結
果、ミスが一旦生じると、プロセッサが要求した命令を
検索できる前に、直ちに必要なバイトよりも多くのバイ
トをキャッシュ・メモリに転送する必要があることがあ
る。
【0020】図3の回線バッファはこの問題を解決す
る。図3の点線の下に示すキャッシュ・メモリ部分は、
命令データキャッシュ38(命令記憶装置を除き、データ
・キャッシュ23と同様)と命令タッグ記憶部分37を内蔵
した通常のキャッシュ・メモリを反映したものである。
プロセッサからの仮想アドレスのタッグフィールドは命
令タッグ記憶部分と連結され、通常の方法で格納された
タッグフィールドと比較される。合致すれば、オフセッ
トで選択した回線の1つは命令を通常の方法でもたら
す。典型的なケースとしてオフセットをキャッシュ38に
与えて、タッグ記憶部分37で比較過程が行われているの
と同時に適切な回線を選択可能にすることに留意する。
【0021】本発明の回線バッファでは、完全に連関
し、更にデータの単一回線内に格納されたデータのフィ
ールドを存在する残りの回線なしに選択できる1つの追
加回線キャッシュ・メモリを加える。回線バッファは仮
想アドレス(27ビットと以下に説明するように少なくと
も1つの追加ビット)を格納する第1の記憶手段42とデ
ータ(32ビットと後述する追加ビット)を格納する第2
の記憶手段44からなる。本実施例の記憶手段42と44は、
従来技術でよく知られているマスタ・スレーブ・フリッ
プフロップを用いて製作する。この配置により例えばア
ドレスやデータの記憶手段42、44からの読取りや、新し
いアドレスやデータの単一サイクルでの回線バッファへ
の読込みを可能にする単一メモリサイクルでの読取り、
書込みが可能になる。
【0022】第1記憶手段42はタッグフィールド(20ビ
ット)とオフセットフィールド(7ビット)の両方を格
納する。これは20ビット・タッグフィールドだけしか格
納しない命令タッグ記憶部分37と対照的である。処理装
置がキャッシュ・メモリからの命令を求める場合、命令
タッグ記憶部分37のタッグフィールドで比較が生じるだ
けでなく、処理装置からのタッグとオフセットフィール
ドの両方が第1記憶手段42内に格納されたタッグ及びオ
フセットと比較される。通常の比較手段がこのために第
1記憶手段42内に内蔵されている。第1記憶手段42は追
加ビット43、「有効ビット」を含んでいる。ミスが生じ
ると、後述するように第1記憶手段42(タッグ部分だ
け)の内容は命令タッグ記憶部分37に移され、オフセッ
トを用いてキャッシュ38内の回線を選択する。そして第
2記憶手段44内のデータがキャッシュ38に移される。処
理装置からのタッグとオフセットフィールドはそこで第
1記憶手段42にロードされる。この時の有効ビットは無
効にセットされる。通常のメモリサイクルを用いてここ
で主記憶装置にアクセスする。主記憶装置にアクセスさ
れているデータは「キャッシュ可能」であることを示す
信号を主記憶装置が返答すると、有効ビット43はその有
効状態にセットされる。処理装置がキャッシュ可能デー
タを要求したことを示す信号は、KEN/として識別さ
れる。この信号は現在インテル 860で使用しているが、
回線バッファでではない。この有効ビットの利用は図12
と共に説明する。
【0023】第2記憶手段44はそれぞれ64ビットワイド
の4つの部分に分割されている。更に各々の部分には、
各々の部分のデータが有効かどうかを示すために用いる
追加ビットが含まれている。例えば8バイト(2命令)
が部分45に格納されている。ビット49は部分45内のデー
タが有効かどうかを示すために用いる。同様に部分46、
47、48に関連したビットと、全回線の有効性を示すため
に用いる1つの追加ビット51がある。このビットはキャ
ッシュ38内で使用される有効ビットと対応している。
【0024】本実施例では、データバスは64ビットワイ
ドで、従って各々のメモリサイクルについて第2記憶手
段44の1つの部分が充填される。データが第2記憶手段
44に左から右に典型的な回線充填でロードされるとする
と、まず記憶部分45が第1のメモリサイクルで充填さ
れ、有効ビット49はその有効状態にセットされる。第2
記憶手段44と関連した他の全ての有効ビットはその無効
ビット状態のままである。更にメモリサイクルが生じる
と、部分46、47、48へデータがロードされ、それらの部
分の各々の関連有効ビットは有効状態に変わる。全ての
部分が有効データを持つようになると、ビット51が有効
状態にセットされる。
【0025】後述するようにデータを第2記憶手段44か
らキャッシュ38に転送することができる。転送が生じる
と、第1記憶手段42からのオフセットフィールドをキャ
ッシュ38へのエントリ番号として用い、第2記憶手段44
からのデータがキャッシュ38に転送される。最終有効ビ
ット51だけがキャッシュ38に格納される。後述するよう
に、例えば部分45、46だけがデータを有していても、キ
ャッシュ38へのデータの転送は生じ得る。その後、次の
2回のメモリサイクルで、回線の残りの半分のデータが
キャッシュ38に直接転送される。
【0026】重要なことは、処理装置は全回線の充填が
生じる前に第2記憶手段44からデータを読み取ることが
できることである。例えば部分45が主記憶装置から2つ
の命令を受け取る第1のメモリサイクルの後、無効ビッ
ト49はその有効状態にセットされる。仮想アドレスの索
引フィールドを用いることで、処理装置は部分45からの
命令の1つないし両方を選択し、それにより残りの部分
46、47、48が主記憶装置からの命令で充填されていなく
とも作動し続ける。これは従来の技術ではそのようなア
クセスが可能になる前にキャッシュ38の全回線を満たす
こととは対照的である。実際、これを「第5番目の」集
合結合性とみることができる。
【0027】ここで図12に示すように、処理装置はブロ
ック55で示すように命令を読み取ろうとしていると想定
する。この命令のアドレス(タッグとオフセットフィー
ルドの両方)は、第1記憶手段42と結合しており、記憶
手段の内容と比較される。同時に、オフセットフィール
ドがキャッシュ38内の回線を選択する間、命令のタッグ
フィールドは通常の方法で命令タッグ記憶部分37に格納
されたタッグフィールドと比較される。ヒットが命令タ
ッグ記憶部分37ないし第1記憶手段42のどちらかで生じ
得る。ヒットが命令タッグ記憶部分37で生じる場合、命
令は通常の方法でキャッシュ38から提供される。ヒット
が第1記憶手段42の内容故に(タッグとオフセットフィ
ールドは合致しなければならない)生じる場合は、第2
記憶手段44から当該するデータがもちろんそれを有効と
想定して選択される。
【0028】ブロック55で示す取出しが第1記憶手段42
と命令タッグ記憶部分37の両方でミスになる場合を想定
する。ミスにより外部メモリサイクルが起動される。す
なわちプロセッサは主記憶装置から命令を得ようとす
る。これが生じている間、第1記憶手段42の有効な内容
(があれば)は記憶手段から移される(実際、回線バッ
ファの内容は、回線バッファの次の回線充填が行われて
いる間、キャッシュに書き込まれる)。タッグフィール
ドは命令タッグ記憶部分37に転送され、所定の置換アル
ゴリズム(例:ランダム置換)下で命令タッグ記憶部分
37に格納されているタッグフィールドと取って替わる。
第1記憶手段42からのオフセットフィールドはエントリ
番号を提供して第2記憶手段44からのデータをキャッシ
ュ38へ転送できるようにする。ミスを起こしたアドレス
のタッグとオフセットフィールドはそこで第1記憶手段
42に転送される。これをブロック56により示す。
【0029】ここで第1記憶手段42にロードしたアドレ
スはキャッシュ可能であると想定する。KEN\信号が
返答されると、ビット43は有効状態にセットされる。求
めるデータがキャッシュ可能でない場合は、次のミスで
新しいアドレスが第1記憶手段42にロードされ、その以
前の内容は廃棄される。データが主記憶装置からもたら
され、第2記憶手段44の少なくとも1つの部分にロード
されると、先述したように処理装置はそれを利用するこ
とができる。一般にプロセッサ操作では、パイプライン
化故に主記憶装置から先の命令が返答される前に次の命
令が取り出される。これを図12のブロック58に示し、こ
の次の命令取出しが生じた場合、次の2つの可能な状態
を示している。1つは回線バッファでのヒットであり、
もう1つは回線バッファでのミスである。別の可能性と
しては、命令タッグ記憶部分37内でヒットが生じること
があり、この場合、主記憶装置から先の命令が返答され
た後にキャッシュ38から命令を選択する。
【0030】ここでミスが回線バッファで生じると想定
する。ブロック59に示すように、データ内容(があれ
ば)は第1記憶手段42からのオフセットフィールドでキ
ャッシュ38に移され、先述したようにエントリ番号を提
供し、第1記憶手段42からのタッグフィールドは命令タ
ッグ記憶部分37に入力される。これにより新しい命令ア
ドレスを第1記憶手段42に入れる方法が切り開かれる。
外部メモリサイクルが起動され、一度主記憶装置からも
たらされた新しいデータは第2記憶手段44に入力され
る。
【0031】次の命令取出しで回線バッファでヒットが
生じる場合、そのようなヒットは先の命令が返答される
前後に生じ得る。それがブロック60で示すように先の命
令が返答される前に生じると、以下の指示子が存在す
る。すなわちアドレス有効ビット43は有効状態になり、
先に要求した命令と関連した有効ビットは無効状態とな
る。その状態下で、処理装置は先の命令は主記憶装置か
らのその途上にあり、ブロック60で示すようにその命令
を待つべきであることを知る。他方、ヒットが先の命令
が返答された後に生じると、例えばビット49のその命令
と関連した有効ビットはその有効状態にあり、処理装置
は先の命令がもちろんプロセッサにより受け取られれば
第2記憶手段44からその命令を読み取ることができる。
従って図3の回線バッファにより、処理装置は全回線充
填が生じる前に続行でき、それにより通常キャッシュ・
メモリで全回線を充填するのに関連した時間を節約でき
る。
【0032】キャッシュ干渉性プロトコルの実施 以下の説明では、既知のプロトコルのライトスルー、ラ
イトバック、ライトワンスを説明する。これに関して
「M」「E」「S」「I」の文字を使用し、それらの文
字はときどき集合的にMESIと称する。ライトワンス
・プロトコルについては、「I」はデータが無効である
ことを示し、「S」は例えばデータが主記憶装置にある
と共に他のキャッシュ・メモリにもあるという共有であ
ることを示す。「E」はデータが排他的であること、す
なわちデータが1つのキャッシュ・メモリと主記憶装置
内にあり、他のキャッシュ・メモリにないことを示す。
「M」はデータが修正されたものであり、主記憶装置内
のデータは不正確であることを示す。現在実施されてい
るように、データ(非命令データ)の各々の回線には、
4つのプロトコル状態「M」「E」「S」「I」の1つ
を示すビットが含まれている。ライトスルー・プロトコ
ルに付いては、「I」「S」状態だけが用いられ、ライ
トバック・プロトコルには「I」「E」「M」状態が用
いられる。
【0033】重要なことは、プロセッサは3つのプロト
コルの1つをどれでも実行することができることであ
る。図8はライトワンス・プロトコルを提供する本発明
で実施できるように相互接続した2つのプロセッサを示
している。これには、インテル860には見られないプロ
セッサと関連したいくつかの端子ないしピンがある。ま
ず図4を見ると、様々なプロトコルを理解するのに必要
な限りにおいて、プロセッサの端子とそれらの端子上の
信号が示されている。線62はプロセッサ(チップ)とそ
の外部環境の間の境界を意図したものである。従って線
62より上はプロセッサ内部であり、線より下はプロセッ
サ外である。左端から順に両方向データバスが示されて
いる。また両方向アドレスバスがある。このバスは上記
したように外部アドレスバス上のアドレスを感知するこ
とが出来、そのために両方向である。2つのアドレスス
トローブのEADS\とADS\がある。EADS\信
号が低いときは、外部アドレスが有効である。同様にA
DS\信号が低いときは、内部アドレスが有効になる。
プロトコルの選択を可能にするプロトコル選択端子が設
けられている。この端子はWB/WT\(ライトバック
/非ライトスルー)として識別する。この端子への接続
は後述する。
【0034】メモリサイクルが書込みあるいは読取りサ
イクル(W/R\)であるかどうかを示す通常に用いら
れる信号も後に説明するので図4に示す。プロセッサは
プロセッサに対しデータを無効化すべきであるというこ
とを示す信号を受け取る。この信号は「INV」と示
す。プロセッサが外部アドレスを感知(詮索)している
場合、この信号が高ければ、プロセッサは対応するデー
タ(そのキャッシュ・メモリ内に見つかれば)を無効
「I」状態に置く。「BOFF\」信号はプロセッサに
印加されると、プロセッサはメモリサイクルの完了から
撤回する。この信号の利用は後述する。プロセッサは
「外部書込みバッファ非空」のEWBE\信号を受け取
る。この信号は、外部右バッファが空の場合に低くな
る。HIT\信号は、外的に感知されたアドレスに対し
てヒットが生じる場合にプロセッサによりもたらされ
る。この信号は通常電位が高いが、ヒットが生じ、対応
するデータが「M」ないし「E」「S」である場合に降
下する。HITM\信号は、外的に感知されたアドレス
に対してヒットが生じ、対応するデータが「M」状態に
ある場合に電位が降下する。従ってプロセッサが詮索し
ており、対応するデータが「M」状態にある場合は、H
IT\とHITM\の両信号は電位が降下する。最後に
HOLD\信号は、プロセッサに実際上作動を停止させ
る。これはバス・アービタと共に用いるが、図8と共に
説明する。
【0035】以下の説明では、異なるプロトコルに対し
「M」「E」「S」「I」を示すビットの状態をそれら
が変わる条件に沿って説明する。これらは例えばゲート
よりも状態図に付いて例示するが、これは本発明のより
明解な理解をもたらすために行うものである。当業者に
は通常のロジックを用いて状態図を実現できることが明
かであろう。図5、6、7は異なるプロトコルを得るた
めWB/WT\端子に対して行った接続を示している。
これらの図はシステム内で単一のプロセッサを使用した
場合に該当する。
【0036】まず図5で、本発明のキャッシュ・メモリ
とその関連ロジックを内蔵したプロセッサ63は大地に接
続されたそのWB/WT\端子を持つとする。これはラ
イトスルーが真であることを示し、従ってライトスルー
・プロトコルが実施されることを示している。ライトス
ルー・プロトコルに付いては、データは無効(I)状態
か共用(S)状態にあり、それは単一プロセッサ環境に
対してキャッシュ・メモリ内のデータは有効であること
を示す。ライン66に接続された大地電位で、キャッシュ
・メモリは各々のラインのデータで「I」ないし「S」
状態とだけ連関する。プロセッサが読取りサイクルを始
めると、キャッシュ・メモリに読み込まれたデータは図
5の「I」から「S」への状態の変化(矢印71)で示す
ように有効である。プロセッサがデータをキャッシュ・
メモリから読み取ると、データは矢印73で示すように
「S」状態に留まる。データは例えばキャッシュ・メモ
リからデータをパージすることにより矢印72で示すよう
に無効になることができる。
【0037】図6を見ると、WB/WT\端子がライン
65によりVcc(例:5ボルト)に接続されたことを除い
てプロセッサ63と同一であるプロセッサ64が示されてい
る。これはライトバック・プロトコルを使用しているこ
とを示し、従って各々のラインのデータに付いて、
「I」ないし「E」「M」を示すビットが適用されるこ
とを示している。回線充填が生じると、状態は無効から
プロトコルが主記憶装置内で見つかるコピーを有してい
ることを示す「E」に変化する。書込みヒットが生じる
と、状態は「E」から「M」へと変化する。ライトバッ
ク・プロトコルに対する状態とそれらの変移は現在イン
テル 860で使用されている。
【0038】図7を見ると、プロセッサ63ないし64と同
一のものとすることのできるプロセッサ65が示されてい
る。今回はWB/WT\端子は回線66により回線67に接
続されている(回線66はW/R\端子である)。この接
続によりライトワンス・プロトコルをもたらしている。
例えば全ての回線充填後、W/R\は読取りサイクルに
対して低いから回線は「S」状態になる。これは図7で
矢印74により示されており、回線66が低電位(大地)に
接続された図5の矢印71と対応する。この回線への引続
きの書込みは「S」状態故に主記憶装置へのライトスル
ーとなる。最初の書込みを行っているとき、プロセッサ
はWB/WT\端子を抽出し、書込みサイクル故に高い
と判定し、矢印75で示すように状態を「E」状態に変え
る(ライトワンス)。この回線への全ての後続の書込み
は、矢印76で示すように「M」状態への変更故に、バス
上に出てこない。その結果、ライトワンス・プロトコル
を実現できる。
【0039】図8には、共用データバス81と共用アドレ
スバス82に接続された2つのプロセッサ76(P1)と77
(P2)が示されている。プロセッサ76と77は先述のプ
ロセッサと同一のものとすることができる。すなわちそ
れらは本発明のキャッシュ・メモリとその関連ロジック
を内蔵している。共用バス81、82は主記憶装置79と後述
する外的書込みバッファ78に接続されている。図8で
は、共用データに対するライトワンス・プロトコルを実
施するプロセッサ76と77に対する様々な相互接続が示さ
れている(他のプロセッサが回線充填を行っている間に
HIT\が詮索プロセッサに対して表明される)。ここ
で分かるようにそれらの相互接続により、最低限のグル
ー(glue)ロジックで干渉性キャッシュが可能になる。
【0040】回線84、86で示すように、1つのプロセッ
サからの出力アドレスストローブ端子(ADS\)は他
のプロセッサの外部アドレスストローブ端子に接続され
る。これによりプロセッサの各々はそれぞれ他のサイク
ルを詮索できるようになる。すなわち、プロセッサP1
がバス81上にアドレスを出すと、回線81上のADS\ス
トローブ信号によりプロセッサ77はアドレスを読み取
る。このストローブ信号はバッファ78やメモリ79といっ
たシステム内の他の構成部分と接続できることに留意す
る。1つのプロセッサのHIT\端子は回線82と85によ
り他のプロセッサのWB/WT\端子に接続される。こ
れにより1つのプロセッサがデータを読み取ってそのキ
ャッシュ・メモリ内の回線を充填し、他のプロセッサが
同一データを有しているとき、プロセッサは確実にデー
タは「S」状態にあることを示すようになる。これはB
OFF\信号に関連して後に説明するようにHITM\
信号が低い場合は生じない。
【0041】プロセッサ76が主記憶装置からキャッシュ
・メモリへのデータの回線を読取り、その回線はプロセ
ッサ77内にも存在すると想定する。更にプロセッサ77内
のその回線は「E」状態にあると想定する。回線82上の
ヒット信号の電位は下がり、図9の線93で示すようにデ
ータはプロセッサ76に「S」状態として読み取られるよ
うになる。詮索しているプロセッサ77の場合は、図10b
の線 100で示すように「E」状態は「S」状態に変化す
る。プロセッサ77では、HIT\信号は低く、プロセッ
サ77内にデータがあることを示している。しかしデータ
は「M」状態にはないので、HITM\信号は高い。ま
たこれはプロセッサ76による読取りサイクルであるの
で、回線87上の無効信号は低いままとなる。その結果、
両プロセッサは「S」状態にあること、すなわちデータ
はキャッシュ・メモリにより共用されることを示してい
る。
【0042】1つのプロセッサのW/R\信号は他のプ
ロセッサのINV端子に接続されている。これにより他
のプロセッサが書込みを行っている間に1つのプロセッ
サでデータの妥当性検査が確実に行われる。図8の回線
83と87はこれを行う。プロセッサ76が書込みを行いその
アドレスのデータがプロセッサ77内で見つかると想定す
る。回線87上の信号は高くなり、それによりプロセッサ
77内の対応するデータは「I」状態を取る。これは図10
aでは矢印97、10bでは矢印98、10cでは矢印99により
示されている。また図10aに示すように、プロセッサ77
内のデータが記述した条件に対して「S」状態にあると
き、キャッシュ・メモリ内のデータは「M」状態ではな
く、「S」状態にあるため、HIT\信号は低くなり、
HITM\信号は高くなる。図10bで、データが「E」
状態にあるとき、それは矢印98で示すように「I」状態
に変化し、HIT\信号は再び高くなる。INVピンが
EADS\で活性になれば「M」から「S」への転移が
生じる。図10cでプロセッサ77内のデータが矢印99で示
すように「M」状態であれば、それは無効化される。H
IT\とHITM\の両信号は低い状態にあることに留
意する。あるプロセッサが詮索を行い他のプロセッサが
データを読み取っていると感知した場合、プロセッサが
既に「S」状態にあるならば、図10aの矢印96に示すよ
うにそれは「S」状態に留まる。ここで詮索しているプ
ロセッサはヒットが生じ、データはその変更状態にない
ことを示す。
【0043】図8に示すように、1つのプロセッサのH
ITM\端子は回線91と92により他のプロセッサのバッ
クオフ端子とバスアービタに接続されている。これによ
り1つのプロセッサが修正データを含むとき、他のプロ
セッサが主記憶装置から無効データを読み取るのを確実
に防ぐことができる。例えばプロセッサ76が修正データ
を含むとき、主記憶装置79内の対応するアドレスのデー
タは不正確である。プロセッサ77がそのデータを読み取
ろうとする場合は、回線91上のHITM\信号は低くな
り、プロセッサ77に撤回させる。これは後に説明する。
【0044】図9の残りは、プロセッサ76ないし77のよ
うなプロセッサが読取り、書込みを行う場合に、そのラ
イトワンス・プロトコルの標準更新を示している。矢印
94で示すように、プロセッサは「S」状態で、「S」状
態を変化する事なくそのキャッシュ・メモリから読み取
ることができる。矢印95で示すように、プロセッサがそ
のキャッシュに一旦書き込むと(第1の書込み)、状態
は「E」に変化し、データが主記憶装置に読み込まれ
る。別の書込みがその位置に対して生じると、矢印 101
で示すように状態を「M」状態に変化し、データの真の
コピーだけがキャッシュ・メモリ内に含まれていること
を示す。この「M」状態、特にHITM\信号は他のプ
ロセッサが主記憶装置から不正確なデータを読み取るの
を防ぐ。
【0045】説明のため、プロセッサ76が「M」状態の
データを含み、プロセッサ77が主記憶装置79からそのア
ドレスのデータを読み取ろうとしていると想定する。こ
の時プロセッサ76は詮索モードであり、メインバス上の
アドレスを認識する。そのHIT\及びHITM\は共
に電位が降下する。これはプロセッサ77に主記憶装置は
旧くなっているということを示す。特に回線91上の信号
はプロセッサ77に撤回させ、主記憶装置からのデータを
読み取らないようにさせる。回線91と92に接続されたバ
スアービタ80は回線91上の信号を感知し、プロセッサ77
が読み取ることができる前にプロセッサ76からデータを
フラッシュ可能にしなければならないことを認識する。
バスアービタ80は名目上、両プロセッサのホールド端子
を通してそれらを続行できるようにする。しかし上記の
ような特定状況下では、アービタ80は1つのプロセッサ
を保留し、他のプロセッサが先に進むことができるよう
にする。ここでアービタはプロセッサ77を保留してプロ
セッサ76が主記憶装置79を更新できるようにする。そし
てプロセッサ77をリリースしてそれが主記憶装置から捜
しているデータを読み取ることができるようにする。バ
スアービタ80は一般に他のよく知られた機能を遂行する
が、本発明に関しては本発明に関連した機能のみを説明
した。
【0046】主記憶装置への書込みの強順序と弱順序 本発明のプロセッサは図1に示す内部書込みバッファ17
を使用する。このバッファはよく知られた方法で作動
し、以下に説明するものを除き、外部メモリへの書込み
のためのデータとアドレスを格納するものである。更に
本発明のプロセッサは図8に示す外部バッファ78と共に
作動するようにしている。このバッファは主記憶装置79
に書き込むデータの一時的な記憶装置となる。それらの
バッファによりバスが使用中でないときにデータを主記
憶装置に書き込むことができる。外部バッファ78は、い
つ外部書込みバッファが空になるかを示す(図11、13
の)回線88上に信号(EWBE\)を与える。図13では
この信号は回線 121上の書込み順序制御回路 120に接続
して示されている。回線 122上の書込み順序制御回路 1
20にはいつ内部書込みバッファが空きになるかを示す同
様の信号IWBE\が接続されている。
【0047】上記のようにいつ書込みバッファを使用
し、キャッシュ・メモリがどこを詮索するかという固有
の問題がある。この問題はメモリに書き込まれるデータ
の順序に関連する。これは、外部観測者の観点からは詮
索するキャッシュの(「他の」プロセッサ)アクセスが
主記憶装置アクセスと等価であることから生じる。他
方、書込みバッファ内のデータ(主記憶装置に書き込ま
れるのを待っている)は主記憶装置更新とはみられな
い。その結果、書込みバッファを持つ詮索キャッシュは
メモリアクセス順序問題を生じることがある。ライトバ
ック・プロトコルでは連続書込みが問題を悪化させるの
でこの問題は更に深刻になる。
【0048】本発明は2つの際だった書込み順序モード
を提供する。1つは弱順序モードと呼び、他方は強順序
モード(SOM)と呼ぶ。リセット期間の最後の3クロ
ックサイクル中にEWBE\回線がアクティブになる場
合、プロセッサは強順序モードにロックされ、さもなく
ば弱順序モードが使用中となる。モードの変更にはリセ
ットが必要である。SOMビットは、ソフトウエアが順
序モードをチェックできるように内部制御レジスタに入
力される。図13で、書込み順序制御回路 120はリセット
信号を受け取り、強順序モードあるいは弱順序モードが
選択されたかを判定するためリセット期間中に回線88を
検査する。弱順序モードでは、キャッシュへの書込みは
バッファ内のデータでも許可される。データキャッシュ
から修正回線がフラッシュされると、書込みサイクル
中、同一回線と関連したデータに対して書込みバッファ
内を検査する。そのようなデータが見つかれば、無効化
される。その結果、弱順序モード内で修正回線は懸案の
書込みデータを含み、二重格納を防ぐ。以下の説明から
分かるように、強順序モードの作動とは対照的である。
【0049】図11ではブロック102から107までは強順序
モード中の全体的な作動を示す。まず、プロセッサがブ
ロック 102で示すように書込みサイクルを要求すると想
定する。更にブロック 103で示すようにそのプロセッサ
のキャッシュ・メモリ内でミスが生じると想定する。次
にブロック 105に示すように、データは外部バッファ78
に書き込まれたと想定する。3つの条件に対してEWB
E\信号は高くなっている。ここで更にブロック 106に
示すように、同一プロセッサないし別のプロセッサが書
込みサイクルを要求し、ブロック106、107に示すように
そのキャッシュ・メモリ内でヒットが生じると想定す
る。ヒットが生じると、プロセッサはEWBE\信号を
送って外部書込みバッファ内にデータがあるかどうかを
判定し、更にブロック 108に示すようにIWBE\信号
を送ってその内部書込みバッファ内にデータがあるかど
うかを判定する。上記の条件に対してどちらかの信号が
高ければ、ブロック 109で「プロセッサ凍結」で示すよ
うにプロセッサは停止される。キャッシュ・メモリはブ
ロック 110で示すように、全てのデータが外部書込みバ
ッファと内部書込みバッファから主記憶装置に書き込ま
れるまで更新されない。内部及び外部バッファが空にな
れば、キャッシュをブロック 111に示すように更新する
ことができる。
【0050】要求した書込みが続いてキャッシュを更新
する前に全てのバッファを空にしなければならない。キ
ャッシュ内の「M」データはミスと関連した最初の書込
みが外部書込みバッファに到着する前にキャッシュから
主記憶装置にフラッシュすることができるので、内部チ
ェックが行われる。上記したように、ブロック 107に示
すヒットと関連したキャッシュの更新は、バッファが空
になり、更にこのヒットと関連したデータが安全に外部
メモリに格納されるまでキャッシュに書き込まれない。
これは、プロセッサが書込みバッファが空になるのを待
つ間に回線が無効化されるのを避けるために行われる。
【0051】以下の例を考える。まず書込みバッファが
空であると想定する。キャッシュ・メモリの1つの中の
データラインは「M」状態にあり、その仮想タッグは
「I」状態にある。最初の書込みサイクルはこのライン
の物理的タッグにヒットし、従ってデータキャッシュが
更新され、データは外部バスに入力される。ここで第2
の書込みサイクルで、ヒットがその修正ラインに対して
生じるが、データは強順序を確保するため外部メモリに
最初に書き込まなければならないので、キャッシュ・メ
モリに書き込まれないと想定する。ここで詮索の結果と
して修正ラインに対してヒットが生じ、それによりライ
ンはデータキャッシュから外部メモリにフラッシュさ
れ、先に述べた2つの懸案の書込みサイクルをバイパス
すると想定する。ラインは第1の書込みデータを含むが
第2の書込みデータを含まずにライトバックされ、デー
タキャッシュへの入力は無効化される。第1の書込みと
関連したデータは二重格納と識別され、要求は打ち切ら
れる。第2の書込み要求は新しい格納と識別され、ライ
ンフラッシュの後に進められる。第2の書込みと関連し
たデータはデータキャッシュを参照し続け、ここで外部
書込みが完了してそのラインが無効状態になれば、内部
要求は打ち切られる。
【0052】図13ではプロセッサの輪郭を線 125で示し
ている。アドレスとデータバスはバス 130により示され
ている。上述したように、EWBE\信号は回線88上の
書込み順序制御回路 120と接続され、内部書込みバッフ
ァ空信号IWBE\は回線 122上の書込み順序制御回路
120に接続されている。回路はキャッシュ・メモリ内で
いつヒットが生じるかを示す入力と書込みサイクルを示
す信号を受け取る。強順序を選択し、空でないバッファ
で書込みサイクル中にヒットが生じると、処理装置15は
回線 124上の信号で示すように凍結される。先述したよ
うに、バッファが一旦空になれば、書込み順序制御回路
120は処理装置15をリリースし、キャッシュ・メモリへ
の書込みが可能になる。以上、キャッシュ・メモリを単
一基板上に処理装置や関連装置と共に形成するマイクロ
プロセッサで特に有用な改良型キャッシュ・メモリと関
連回路を説明した。
【図面の簡単な説明】
【図1】本発明のキャッシュ・メモリの、一部の処理装
置、変換装置、主記憶装置との接続を示すブロック図
で、仮想タッグ記憶装置と物理的タッグ記憶装置部分を
示す。
【図2】図1のブロック図で実施されるロジックを示す
流れ図である。
【図3】本発明のキャッシュ・メモリで使用する回線バ
ッファのブロック図である。
【図4】プロセッサ・インターフェイス特に本発明のキ
ャッシュ・メモリを内蔵するプロセッサに供給及びそれ
により与えられる一部の信号を示す図である。
【図5】本発明のキャッシュ・メモリを内蔵したプロセ
ッサの端子への接続を示し、更にプロセッサ内でのライ
トスルー・プロトコルの実施を示す状態図である。
【図6】本発明のキャッシュ・メモリを内蔵したプロセ
ッサの端子への接続を示し、更にプロセッサ内でのライ
トバック・プロトコルの実施を示す状態図である。
【図7】本発明のキャッシュ・メモリを内蔵したプロセ
ッサの端子への接続を示し、更にプロセッサ内でのライ
トワンス・プロトコルの実施を示す状態図である。
【図8】本発明と相互接続にしたがってそれぞれキャッ
シュ・メモリを内蔵した2つのプロセッサを示す図であ
る。
【図9】図8のプロセッサの作動を説明するために用い
た状態図である。
【図10】S状態への詮索ヒットのための図8のプロセッ
サの作動を説明するために用いた状態図(a)と、E状
態への詮索ヒットのための図8のプロセッサの作動を説
明するために用いた状態図(b)と、E状態への詮索ヒ
ットを無効にする図8のプロセッサの作動を説明するた
めに用いた状態図(c)である。
【図11】強順序モードについて図13のブロック図で実施
されるロジックを示す流れ図である。
【図12】図3の回線バッファ内で実施されるロジックを
示す流れ図である。
【図13】順序付けモードのためのキャッシュ・メモリと
関連ロジックを示すブロック図である。
【符号の説明】
15・・・処理装置 17・・・内部書込みバッファ 18・・・主記憶装置 20・・・変換装置 21・・・物理的アドレスタッグ 22・・・仮想アドレスタッグ 23・・・データ・キャッシュ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 シムチャ・ゴッホマン イスラエル国 31015 ハイファ・ピイオ ーボックス 1659・(番地無し) (72)発明者 タル・ガット イスラエル国 31015 ハイファ・ピイオ ーボックス 1659・(番地無し)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュ・メモリを有するプロセッサ
    において、 前記プロセッサの一部であり前記キャッシュ・メモリに
    接続され、前記キャッシュ・メモリ内のデータが無効状
    態、共用状態、排他的状態、修正状態の1つにあること
    を示すビットを格納する記憶手段と、 前記プロセッサと接続され、ライトバック・プロトコ
    ル、ライトスルー・プロトコル、ライトワンス・プロト
    コルの1つを選択し、 ライトバック・プロトコルが選択された場合に前記無効
    状態、排他的状態及び修正状態を示す前記ビットのいず
    れかの所定の第1のロジックを実施し、 前記ライトスルー・プロトコルが選択された場合に前記
    無効状態と前記共用状態を示す前記ビットのいずれかの
    所定の第2のロジックを実施し、 前記ライトワンス・プロトコルが選択された場合に前記
    無効状態、前記共用状態、前記排他的状態及び前記修正
    状態を示す前記ビットの所定の第3のロジックを実施す
    る選択手段とからなる前記改良形プロセッサ。
JP4298236A 1991-10-11 1992-10-12 プロセッサ Expired - Fee Related JP2717752B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/775,161 US5301298A (en) 1991-10-11 1991-10-11 Processor for multiple cache coherent protocols
US775161 1991-10-11

Publications (2)

Publication Number Publication Date
JPH05241954A true JPH05241954A (ja) 1993-09-21
JP2717752B2 JP2717752B2 (ja) 1998-02-25

Family

ID=25103509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4298236A Expired - Fee Related JP2717752B2 (ja) 1991-10-11 1992-10-12 プロセッサ

Country Status (4)

Country Link
US (1) US5301298A (ja)
JP (1) JP2717752B2 (ja)
GB (1) GB2260432B (ja)
HK (1) HK1006881A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011519461A (ja) * 2008-04-30 2011-07-07 フリースケール セミコンダクター インコーポレイテッド データ処理システムにおけるキャッシュ・コヒーレンス・プロトコル

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2260429B (en) * 1991-10-11 1995-05-24 Intel Corp Versatile cache memory
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
JPH07168763A (ja) * 1992-11-13 1995-07-04 Cyrix Corp ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ
US5561783A (en) * 1992-11-16 1996-10-01 Intel Corporation Dynamic cache coherency method and apparatus using both write-back and write-through operations
US5848283A (en) * 1993-01-29 1998-12-08 International Business Machines Corporation Method and system for efficient maintenance of data coherency in a multiprocessor system utilizing cache synchronization
US5813028A (en) * 1993-10-12 1998-09-22 Texas Instruments Incorporated Cache read miss request invalidation prevention method
US5586297A (en) * 1994-03-24 1996-12-17 Hewlett-Packard Company Partial cache line write transactions in a computing system with a write back cache
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
US5890221A (en) * 1994-10-05 1999-03-30 International Business Machines Corporation Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
US5669003A (en) * 1994-12-23 1997-09-16 Intel Corporation Method of monitoring system bus traffic by a CPU operating with reduced power
US5692153A (en) * 1995-03-16 1997-11-25 International Business Machines Corporation Method and system for verifying execution order within a multiprocessor data processing system
AU693334B2 (en) * 1995-03-17 1998-06-25 Intel Corporation Multi-processing cache coherency protocol on a local bus
US5699548A (en) * 1995-06-01 1997-12-16 Intel Corporation Method and apparatus for selecting a mode for updating external memory
KR100252752B1 (ko) * 1997-06-26 2000-04-15 김영환 다단계 제어 버스 중재장치
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
JP2002169724A (ja) * 2000-12-01 2002-06-14 Oki Electric Ind Co Ltd キャッシュメモリにおける部分無効化装置
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7802058B1 (en) * 2003-04-30 2010-09-21 Silicon Graphics International Method for performing cache coherency in a computer system
US7610473B2 (en) * 2003-08-28 2009-10-27 Mips Technologies, Inc. Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor
US8176259B2 (en) 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US7818391B2 (en) 2004-01-20 2010-10-19 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration
US8090914B2 (en) * 2004-01-20 2012-01-03 Hewlett-Packard Development Company, L.P. System and method for creating ordering points
US7769959B2 (en) 2004-01-20 2010-08-03 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration to memory
US20050160238A1 (en) * 2004-01-20 2005-07-21 Steely Simon C.Jr. System and method for conflict responses in a cache coherency protocol with ordering point migration
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US8468308B2 (en) * 2004-01-20 2013-06-18 Hewlett-Packard Development Company, L.P. System and method for non-migratory requests in a cache coherency protocol
US7395374B2 (en) * 2004-01-20 2008-07-01 Hewlett-Packard Company, L.P. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points
US20070038814A1 (en) * 2005-08-10 2007-02-15 International Business Machines Corporation Systems and methods for selectively inclusive cache
US8504777B2 (en) * 2010-09-21 2013-08-06 Freescale Semiconductor, Inc. Data processor for processing decorated instructions with cache bypass
US10025711B2 (en) 2012-01-16 2018-07-17 Qualcomm Incorporated Hybrid write-through/write-back cache policy managers, and related systems and methods
GR20130100707A (el) 2013-12-23 2015-07-31 Arm Limited, Μεταφραση διευθυνσης σε μια συσκευη επεξεργασιας δεδομενων

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436351A (en) * 1987-07-31 1989-02-07 Alps Electric Co Ltd Disk cache system
JPH02226449A (ja) * 1989-02-28 1990-09-10 Toshiba Corp キャッシュメモリ制御方式
JPH0387948A (ja) * 1989-06-21 1991-04-12 Hitachi Ltd マルチプロセッサシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3151422C2 (de) * 1981-12-24 1984-05-30 Karl 3350 Kreiensen Burgsmüller Verbrennungs-Kolbenkraftmaschine
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4847804A (en) * 1985-02-05 1989-07-11 Digital Equipment Corporation Apparatus and method for data copy consistency in a multi-cache data processing unit
US5113510A (en) * 1987-12-22 1992-05-12 Thinking Machines Corporation Method and apparatus for operating a cache memory in a multi-processor
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
EP0343567A3 (en) * 1988-05-25 1991-01-09 Hitachi, Ltd. Multi-processing system and cache apparatus for use in the same
GB8814077D0 (en) * 1988-06-14 1988-07-20 Int Computers Ltd Data memory system
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
US5148533A (en) * 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436351A (en) * 1987-07-31 1989-02-07 Alps Electric Co Ltd Disk cache system
JPH02226449A (ja) * 1989-02-28 1990-09-10 Toshiba Corp キャッシュメモリ制御方式
JPH0387948A (ja) * 1989-06-21 1991-04-12 Hitachi Ltd マルチプロセッサシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011519461A (ja) * 2008-04-30 2011-07-07 フリースケール セミコンダクター インコーポレイテッド データ処理システムにおけるキャッシュ・コヒーレンス・プロトコル

Also Published As

Publication number Publication date
GB9220788D0 (en) 1992-11-18
GB2260432B (en) 1995-05-17
GB2260432A (en) 1993-04-14
US5301298A (en) 1994-04-05
JP2717752B2 (ja) 1998-02-25
HK1006881A1 (en) 1999-03-19

Similar Documents

Publication Publication Date Title
US5367660A (en) Line buffer for cache memory
US5717898A (en) Cache coherency mechanism for multiprocessor computer systems
US5301298A (en) Processor for multiple cache coherent protocols
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5379396A (en) Write ordering for microprocessor depending on cache hit and write buffer content
US20100064107A1 (en) Microprocessor cache line evict array
US11789868B2 (en) Hardware coherence signaling protocol
US5926830A (en) Data processing system and method for maintaining coherency between high and low level caches using inclusive states
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템
KR980013130A (ko) 멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: 20081114

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091114

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20091114

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20101114

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees