JPH02224161A - 高速データ処理装置 - Google Patents

高速データ処理装置

Info

Publication number
JPH02224161A
JPH02224161A JP1281587A JP28158789A JPH02224161A JP H02224161 A JPH02224161 A JP H02224161A JP 1281587 A JP1281587 A JP 1281587A JP 28158789 A JP28158789 A JP 28158789A JP H02224161 A JPH02224161 A JP H02224161A
Authority
JP
Japan
Prior art keywords
tag memory
duplicate
cache
data
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.)
Pending
Application number
JP1281587A
Other languages
English (en)
Inventor
Andrew Milia
アンドリュー・ミリア
Richard G Bahr
リチャード・ジー・バー
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.)
Apollo Computer Inc
Original Assignee
Apollo Computer 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 Apollo Computer Inc filed Critical Apollo Computer Inc
Publication of JPH02224161A publication Critical patent/JPH02224161A/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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods

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)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明はキャッシュメモリ装置に関し、特にデータおよ
びタグ信号を格納し、該タグ信号に基づいてキャッシュ
データを操作する要素を含むキャッシュメモリ装置に関
する。
[従来の技術、および発明が解決しようとする課趙] データ処理システムにおいては、主メモリの内容をコピ
ーし、1つ以上のプロセッサが個別に主メモリの内容に
高速でアクセスできるようにすることが行われる。この
技術は一般にメモリキャッシングと呼ばれる。メモリキ
ャッシングを基本にしたシステムでは、複数のソースに
よってデータが変更されるので、キャッシュされたデー
タがその出所である主メモリの内容と不一致とならぬよ
う処理しなければならない、一般にデータの変更は、プ
ロセッサや、直接メモリアクセス(DMA)をベースと
した入出力装置などによって行われる9前記した不一致
の問題はキャッシュメモリ(以下、単にキャッシュと呼
ぶ)の整合性と呼ばれ、主メモリの内容を変更した装置
が何であるかに関わらず、各キャッシュはその変更結果
に絶対的に従わねばならない、この問題についてはソフ
トウェアおよびハードウェアの両面からの対策がある。
ハードウェアによる一般的な対策は、各キャッシュに他
の装置の動作を監視させながら適切にそのキャッシュ自
体を無効にしたり更新したりすることである。いわゆる
スヌーピーキャッシュは同時書込み(ライトスルー)方
式または書戻しくライトバック)方式のキャッシュであ
る。ライトスル一方式のキャッシュでは、キャッシュの
検索動作の後に主メモリの書込みが行われる。ライトバ
ック方式のキャッシュでは、一般に主メモリの読出しに
よってそのキャッシュの動作が開始される。
各キャッシュの最初の動作は、格納されようとするまた
は読み出されようとするデータがそのキャッシュ自体に
保持されているかどうかを検査することである。この検
査はタグメモリと呼ばれるキャッシュのタグディレクト
リを調べるか、またはそのディレクトリのコピーを調べ
ることによって行われる。検査の結果、ディレクトリの
一致が発見されれば、そのシステムが採用している特定
のキャッシュ整合方式に基づいて各動作が行われる。
このような動作に関してのプロセッサの処理は複雑であ
る。スヌービーキャッシュを介しての記憶方法は全体と
して良く知られた技術であるが、多くの同順が存在する
と共に、それらの対策もたくさん提案されている。バス
インタフェースのキャッシュ整合性アルゴリズムを理解
するため、これら問題点を以下に説明する。
第1の問題点は、データ用(オペランド用)のタグメモ
リや命令用のタグメモリを連続的にアクセスすると、ア
ドレスの衝突を判定するためプロセッサの負担が増し、
その処理能力が低下することである。
第2の問題点は、キャッシュの検索が仮想アドレスに基
づいて行われることである。つ家り、バス上の物理アド
レスではタグメモリを検索できず、アドレスの衝突を判
定できない。
第3の極めて重要な問題点は、バス転送、複製タグメモ
リの参照、およびキャッシュの無効化に1サイクル以上
の多くのサイクルを必要とすることである。
第4の問題点は、複製タグメモリ用のRAMを多重ボー
トにしたりサイクル時間よりも著しく高速にすることは
望ましくないことである。この結果、RAMの供給の問
題やコストの問題が生ずる9第5の間慧点は、読出しバ
スプロトコルである。
このバスプロトコルは、読出しアドレスの転送と読み出
されたデータの返送との間において、書込み用にバスを
占有させることを可能にする0間離は、書込みデータと
返送される読出しデータとが衝突する場合、その読出し
データは受け取られる前にすでに古いデータとなってし
まうことである。
[課題を解決するための手段、および作用]本発明に基
づく複製タグメモリは、マルチプロセッサl境において
使用され、単一ポートのRAMのみを使用してキャッシ
ュの整合性を保証する装置を備える。その装置は複製タ
グメモリ消去装置であり、複製タグメモリの内容を無効
化する機構であって、キャッシュの不必要な無効化の回
数を減らすと共に、プロセッサ速度を効果的に向上させ
る経済的な技術である。
複製タグメモリは、プロセッサのキャッシュのタグメモ
リのコピーであり、プロセッサの処理がキャッシュに影
響する場合、システムバスを監視する段目を果たす9他
のプロセッサやデバイスによるすべての記憶動作に対し
て最初に前記mfRタグメモリが参照される。そして参
照されたアドレスに対応するキャッシュの内容が無効化
される9このようにして古いデータの適時の消去が保証
される9本来のタグメモリよりも複製タグメモリを使用
する理由は、プロセッサ動作に対する干渉を最小限にす
るなめである。
使用する高速RAMのサイクル時間を最小にすると共に
そのサイズを最大にするため、1サイクルにつき1つの
読出しまたは書込み動作を行う。
システムバスに対する他のデバイスによる処理は予測不
可であり各サイクル毎に常に行われ得る。
このため複製タグメモリは常に参照可能でなければなら
ない。参照によって複製タグメモリ内に一致が発見され
れば、それに対応するキャッシュの内容が無効化される
。しかしこの無効化にもかかわらず、これと同じ無効化
動作が繰り返される可能性がある。これは複製タグメモ
リ内の対応するタグが無効化されずに残るためである。
この無駄なキャッシュ無効化動作は、プロセッサのキャ
ッシュ動作と衝突してプロセッサの処理能力を低下させ
る。
本発明の複製タグメモリ消去装置は、複製タグメモリの
無効化されるべきタグのアドレスを保持する。この複製
タグメモリ消去装置は、システムバスに従属する通常の
複製タグメモリの9態動作や割付は動作から独立してお
り、空いたサイクルを適切に利用して複製タグメモリの
タグを無効化する。したがって本発明に基づく複製タグ
メモリ機構は、キャッシュが必要とする無効化信号のみ
を通過させるほぼ完璧なフィルタである。
本発明に基づく複製タグメモリ消去装置は消去待ち行列
を構成し、その消去待ち行列中の各アドレスと、複製タ
グメモリに割付けられようとする各アドレスとを比較す
る機構を含む。比較によって両者が一致すれば、一致し
たアドレスは消去待ち行列から削除される。これにより
、新しく割付けられる内容が無効化されてしまう恐れは
なくなる。消去待ち行列があふれてもシステムの保全性
は確保される。最悪の場合、キャッシュにおいて無効化
された古い内容に対応する古いタグが複製タグメモリに
残ったままとなり、これがキャッシュの無駄な無効化動
作を伴うが、この動作は全く無害である。
[実力IB1 ] 本発明の特徴を添付図面を参照して詳細に説明する。
以下の説明において、「キャッシュ」とは命令用および
データ用(オペランド用)のキャッシュの一方または両
方を意味し、特に一方を特定する場合は「命令用」また
は「データ用」の語を付加する。同様に「タグメモリ」
とは命令用およびデータ用(オペランド用)のタグメモ
リの一方または両方を意味し、特に一方を特定する場合
は「命令用」才たは「データ用」の語を付加する。また
この「タグメモリ」には、前記キャッシュに付属する本
来のタグメモリと、そのコピーである複製タグメモリと
がある。
本発明に基づく複製タグメモリ消去装置は、複製タグメ
モリを使用したスヌーピーキャッシュを備えるマルチプ
ロセッサシステムにおいて動作する。
第1図はプロセッサのブロック図であり、キャッシュ5
0.52と、バスインタフェース54と。
複製タグメモリ56とを備える。第1図において各プロ
セッサは2つのキャッシュ50.52を有する。一方の
キャッシュ50は命令用であり、他方のキャッシュ52
はデータ(オペランド)用である。各キャッシュは直接
マツプされる。
書込みアドレスはIP60で発生され、バス58を介し
て提供される。書込みデータはI P2OまなはFPU
62によって供給される。これら書込みアドレスおよび
データは、即座にデータ用キャッシュ52に影響する。
前記書込みアドレスおよびデータは、バスインタフェー
ス54において深さが可変の書込み待ち行列となってか
らシステムバス64に送られ、該システムバス64を介
して主メモリ(図示せず)に送られる。
書込み伝送用プロセッサなど全てのプロセッサは、前記
バス書込みと当該プロセッサに対して局所的にキャッシ
ュされる命令とが衝突しないかをチエツクする。書込み
伝送用プロセッサ以外の全てのプロセッサは、前記書込
みと当該プロセッサに対して局所的にキャッシュされる
データとが衝突しないかをチエツクする。アドレスの衝
突が検出されると、局所的にキャッシュされた命令また
はデータは無効としてマークされる。このようにしてシ
ステムのキャッシュ整合性が維持される。
バスインタフェース54におけるキャッシュ整合性アル
ゴリズムの詳細を説明する。
本来のタグメモリを連続的にアクセスするとプロセッサ
の処理能力が低下する。これに対処するため複製タグメ
モリを提供する。複製タグメモリは、データ(オペラン
ド)用複製タグメモリと、命令用複製タグメモリとから
なる。
仮想アドレスによるキャッシュの検索の同順を解決する
なめ、背景バス転送の期間中、仮想アドレスの一部に全
物理アドレスを持たせる。また仮想アドレスの一部は仮
想ページ番号(VPN)と呼ばれるビットで構成される
バス転送、複製タグメモリの参照、およびキャッシュの
無効化の各処理に複数サイクルが必要となる問題を解決
するため、パイプライン化した無効化処理方式を採用す
る。この方式は6段階からなる。すなわち、バス転送段
階、バスコマンドの復号段階、複製タグメモリの参照段
階、物理アドレスバス要求段階、物理アドレスバス転送
段階、およびキャッシュの無効化段階である9最初の3
段階はバス書込み動作において無条件に発生する。
後の3段階はアドレスの衝突が検出された場合にのみ発
生する。これに関連して問題となるのは、プロセッサの
読出しデータの返送が無効化処理に優先するので、前記
の6段階の手順がパイプライン処理中に停止され得るこ
とである。
複製タグメモリとして極めて高速のRAMや多重ポート
を避ける問題は、複製タグメモリをシステムバスに厳密
に従属させて使用することである。
書込みと読出しとの衝突の問題を解決するには、そのよ
うな事態となった場合にキャッシュのローディングを禁
止することである。返送される読出しデータは使用され
るが、そのデータをキャッシュしてはならない。
本発明に基づくこれら新規な解決方法を詳細に説明する
複製タグメモリは対応するプロセッサの本来のタグメモ
リのコピーであり、バスを介して内容が変更される主メ
モリとキャッシュの内容とを比較するために使用される
。バスを介して内容が変更される主メモリのアドレスと
複製タグメモリに記憶されているタグとが一致すれば、
前記タグに対応するキャッシュの内容が無効化される。
この作業を複製タグメモリなしで行おうとすると、キャ
ッシュのタグとバスを介してのメモリ変更処理とを比較
する際、多くのサイクルがキャッシュ内で無駄になる。
複製タグメモリには命令用とデータ用(オペランド用)
とがある。
複製タグメモリはキャッシュと同様に仮想アドレスでア
クセスされる。システムバス64は物理アドレスのみを
処理するので、前記仮想アドレスは物理アドレスの12
個の下位ビットを使用して形成される。これらはビット
は前記仮想アドレスの12個の下位ビットとなり、他の
仮想ビットと連結されて複製タグメモリを検索するため
に使用される。プロセッサの128KBの命令用キャッ
シュに対して5個の仮想ビットが必要であり、プロセッ
サの64KBのデータ用キャッシュに対して4個の仮想
ビットが必要である。これらビットはバス上の前記物理
アドレスを伴う。
第2図に示すように、ビット16から3までが複製タグ
メモリのアドレス指定に使用される。ビット16から1
2まではバス処理の仮想アドレス(仮想ページ番号)で
あり、とット11から3まではバス処理の物理アドレス
である。データ用(オペランド用)複製タグメモリをア
ドレスするよりも命令用Wt製タグメモリをアドレスす
る方が1ビット余分に必要である。データ用複製タグメ
モリをアドレスするには13ビツトが使用され、ビット
16は固定値を収る。命令用およびデータ用複製タグメ
モリは共通にアドレスされる。
複製タグメモリに記憶される各タグは、18ビツトの物
理タグフィールドと1ビツトのパリティ検査ビットフィ
ールドとを含む、前記物理タグフィールドは18ビツト
の物理ページ番号であり、12ビツトバイトの索引アド
レスと共に合計30ビツトによって、1ギガバイトの物
理アドレス空間をアドレス指定する。明示有効ビットは
無い。
無効のタグは単に有り得ないメモリ位置Oを指示するだ
けである。
FIA= ?5理タグ   = ooooooooooooooo
oo。
パリティビット=1 複製タグ格納動作は次の各段階に分割される。
・複製タグメモリ参照。
・複製タグメモリ一致。
・プロセッサ書込みによる複製タグメモリの割付け。
・読出し応答による複製タグメモリの割付け9・複製タ
グメモリの内容消去。
他のプロセッサなど他のシステムデバイスが主メモリの
内容を変更すると、常に複製タグメモリカを検査され、
その主メモリの内容がプロセッサのいずれかのキャッシ
ュに存在するか調べられる。
それが存在すれば、当該内容を含むキャッシュからキャ
ッシュサイクルが起動され、そのキャッシュにおける対
応する内容と複製タグメモリにおける対応するタグとが
無効化される。キャッシュにおいて無効化された内容に
対応するタグが、複製タグメモリ内に有効のまま保持さ
れることがある。
これは単に無駄なキャッシュ無効化サイクルを発生させ
るだけなので無害である。
複製タグメモリは、キャッシュと同様、2つの別個の状
況において更新される。第1の状況は、プロセッサが記
憶動作を実行して主メモリの内容を変更する場合である
。第2の状況は、キャtツシュミスが発生してデータが
バスを戻る場合である。
他のデバイスからの書込み動作や、他のデバイスからの
書込みデータを伴う多重書込み処理がバス上に検出され
ると、命令用およびデータ用の複製タグメモリが共に参
照される。0牙のプロセッサからの書込みや書込みデー
タの処理がバス上に検出されると、命令用複製タグメモ
リのみが参照される。複製タグメモリの参照は基本的に
3段階のパイプライン処理である。すなわち、コマンド
の復号段階、複製タグメモリのアクセス段階、およびタ
グの比較段階である。これら各段階はシステムバス64
の動作に従属する。
バス書込み処理発生後の第1サイクルにおいて、コマン
ド(CMD)フィールドの反りが行われる。
書込みコマンドの復号が行われると、複製タグメモリの
索引として使用されるアドレスが複製タグメモリの索引
レジスタにロードされる。次のサイクルにおいて、命令
用複製タグメモリが読出し動作でアクセスされ、データ
用複製タグメモリが任意にアクセスされる。必要に応じ
てタグと物理ページ番号とが比較される0両者が一致す
ると、キャッシュの対応する内容の無効化と複製タグメ
モリの対応するタグの無効化とが行われる。
第1表 第1表は、書込みまたは書込み解除動作(WRで表示)
における複製タグメモリ参照のためのパイプライン処理
を示す。サイクルlにおいて、バス上に書込み処理が発
生し、それがバスインタフェースのバス入力レジスタに
ロードされる。サイクル2においてコマンドが復号され
る。それが書込み命令であれば、物理アドレスと物理ペ
ージ番号とから複製タグメモリの索り1がロードされる
この物理アドレスはタグ比較のなめに次の段階へ送られ
る。サイクル3において、複製タグメモリの読出しアク
セスが実行され、タグと物理アドレスとが比較される。
両者が一致すれば、キャッシュの対応する内容の無効化
と複製タグメモリの対応するタグの無効化とが行われる
復号されたコマンドが多重書込み処理であれば、そのア
ドレスが複製タグメモリの索引として格納される。次の
サイクルにおいて対応する多重書込みデータが復号され
ると、前記多重書込みが奇数ロングワード境界で行われ
る場合、最初の参照が任意に行われる。あるいはそのア
ドレスが複製タグメモリの索引として保持される9次に
その複製タグメモリの索引の以前の内容に多重書込みの
方向(増加方向埜たは減少方Iff)に応じて±8バイ
トを加えたものがロードされる。そして次の多重書込み
データサイクルが行われる。
第2表は、2つのデータ転送サイクルを伴う多重書込み
における?X製タグメモリの参照パイプライン処理を示
す。サイクルlにおいて多重書込み処理(WM)がバス
上に発生する。この処理はバスインタフェースのバス入
力レジスタにロードされる。サイクル2においてコマン
ドが復号される。
それが多重書込みであれば、複製タグメモリの索引アド
レスが複製タグメモリ索引レジスタにロードされる。こ
の時、多重書込みデータの最初の4ビツトワード(WD
I)はバス上にある。サイクル3において多重書込みデ
ータが復号され、複製タグメモリ索引レジスタ内のアド
レスが4バイトたけ任意に増加tたは減少される。任意
の奇数ロングワード(WDO)が参照される。この参照
において一致が見つかれば、キャッシュの対応する内容
の無効化と複製タグメモリの対応するタグの無効化とが
予定される。サイクル4においてワード(WD 1 )
に対して複製タグメモリの読出しアクセスが行われる。
そしてタグと物理アドレスとが比較される。この結果が
一致すればキャッシュの対応する内容の無効化と複製タ
グメモリの対応するタグの無効化とが行われる。サイク
ル5において、ワード(WD2)に対して複製タグメモ
リの読出しアクセスが行われ、タグと物理アドレスとが
比較される。その結果が一致すれば、キャッシュの対応
する内容の無効化と複製タグメモリの対応するタグの無
効化とが予定される。
他のデバイスによる主メモリの変更動作においていずれ
かの?I[タグメモリに一致が見つかるか、局所的な書
込みにおいて命令用複製タグメモリに一致が見つかると
、2つの事態が予定される。第1の事態はキャッシュの
対応する内容が無効化されることである。第2の事態は
複製タグメモリの対応するタグを無効化し、キャッシュ
に対する複製タグメモリの整合性を維持することである
主メモリおよび局所キャッシュの内容を変更する書込み
処理は、バスからの処理の取り込みから内容の無効化ま
で一最に6サイクルかかる。すなわち、バスにおける処
理の発生、コマンドの復号、複製タグメモリのアクセス
、物理アドレス(PA)バスの割当て、バス(PA、E
ASRC,PC8RC)転送、タグの書き込みである。
5番目のバス転送サイクル中に、複製タグメモリの消去
予定タグが消去待ち行列に置かれる。ただし実際の消去
は使用可能な複製タグメモリサイクルを待って実行され
る。
タグの一致が検出されると、一致が検出された複製タグ
メモリに対応するキャッシュのアドレスレジスタに、一
致した索引がロードされる。次にアドレスの比較が行わ
れ、物理アドレスバスの使用要求が出される。この物理
アドレスバスはキャッシュへの伝送媒体である。キャッ
シュミスを補償するための読出し応答動作<tit述す
る)が複製タグメモリの無効化パイプライン処理に優先
して行われる場合を除き、前記物理アドレスバスは常に
使用可能である。?5理アドレスバスの割当ての次のサ
イクルにおいて、バスインタフェースアドレスチップか
ら索引が取り出され、メモリ管理ユニット(MML+)
60はバス(PC3RCまたはEASRCまたは両方)
のドライバを許可する。
命令用複製タグメモリにおける一致に基づく索引はプロ
グラムカウンタレジスタ(PCREG)にロードされ、
データ用複製タグメモリにおける一致に基づく索引は有
効アドレスレジスタ(EAREG)にロードされる。命
令用およびオペランド用の両方の複製タグメモリにおけ
る一致に基づく索引はプログラムカウンタレジスタと有
効アドレスレジスタとの両方にロードされる。
第3表 第3表は、複製タグメモリの一致と、キャッシュ内容の
無効化と、複製タグメモリのタグの無効化の遅延とを示
す。サイクル1において書込み処理がバスに発生する。
この書込み処理はバスインタフェース54のバス入力レ
ジスタにロードされる9サイクル2においてコマンドが
復号される。
物理アドレスはタグの比較のために転送される。
仮想索引は複製タグメモリ索引レジスタにロードされる
。サイクル3において複製タグメモリの読出しが行われ
る。サイクル4においてタグの比較結果が準備される9
比較結果は一致するので、バス(PASRC)が要求さ
れる。サイクル5において、無効化される箇所の仮想索
引がバス(PASRC)を介して適切なキャッシュアド
レスレジスタに送られる。複製タグメモリの無効化され
るタグが消去待ち行列に置かれ(INVI)、複製タグ
メモリの使用可能タイミングを待ってそれが実行される
。サイクル6において、複製タグメモリでの前記一致に
対応するキャッシュの内容が無効化される。
プロセッサからの記憶命令によってデータ用キャッシュ
の内容を変更する場合、データ用複製タグメモリも更新
してキャッシュの新しい状態を反映しなければならない
、この更新はバスにその処理が置かれてから発生する。
これは、複製タグメモリをアクセスするための同期点と
してバスを使用すると複製タグメモリが混乱するので、
それを避けるためである。1度に1つだけのデバイスが
バスを使用でき、そのデバイスはバスを獲得するための
判定を待つ、複製タグメモリの動作のうち、タグの無効
化だけはバスを介しての同期が収られない。この無効化
は他の処理に較べて優先度が低い。
バスインタフェース54のアドレスチップがバスからの
書込み動作コマンドを復号すると、新しいタグがデータ
用複製タグメモリに書込まれ、命令用複製タグメモリの
参照が行われる。命令用複製タグメモリの参照手順はす
でに説明した通りである。この時点で命令用複製タグメ
モリに一致が発見されると、これはプロセッサが命令用
キャッシュの内容を変更していることを意味する。この
ため命令用キャッシュの内容の無効化と、命令用複製タ
グメモリのタグの消去とが予定される。
書込みのために複製タグメモリが割り付けられている間
、複製タグメモリ内の各タグは、データ用複製タグメモ
リのタグを無効化すべく待ち行列に置かれている消去予
定タグの各索引と比較されなければならない。比較結果
が一致した索引は前記待ち行列から削除される9つまり
無効化の予定自体が無効とされる。ここで命令用および
オペランド用の両複製タグメモリの無効化が予定されて
いる場合は、命令用複製タグメモリのみの無効化として
新たに予定される。このように、データ用複製タグメモ
リの古いタグの無効化は、新しく割付けられたタグを破
壊しない。
プロセッサからの多重書込みは、他のデバイスからの多
重書込みと同様に扱われる。ただし、データ用複製タグ
メモリは物理タグによって書込みが行われ、読出しやタ
グの一致検査は行われない。
第4表 第4表は、プロセッサからの書込みによる複製タグメモ
リの割付は処理を示す。サイクル1においてプロセッサ
からの書込みが書込みバッファからバスに置かれる。サ
イクル2において書込みコマンドが復号され、同一のプ
ロセッサからの書込み処理であることが決定される。サ
イクル3においてデータ用複製タグメモリが新しい物理
タグによって更新される。命令用複製タグメモリについ
てはタグの比較が行われ、比較結果が一致すれば、命令
用キャッシュの内容の無効化と、命令用?X製タグメモ
リのタグの無効化とが通常の方法で予定される。
埜た複製タグメモリは、同一プロセッサによる多重読出
しに対する読出し応答の返送によっても書込まれる9キ
ヤツシユにおいてキャッシュミスが発生すると、多重読
出し要求が主メモリに送られる。主メモリは連続する読
出し応答の形式において要求されたデータを返送する。
読出し応答コマンドが復号されると、バスインタフェー
スは関連するタグを待ち状態にあるキャッシュに送ると
共に、従来の複製タグメモリのパイプラインを使用して
複製タグメモリにタグを挿入する。この複製タグメモリ
のサイクルにおいてはタグ比較は全く行われず、ミスし
たキャッシュに対応する複製タグメモリのみが更新され
る9 複製タグメモリのアドレス指定においては、3組のアド
レスが格納され処理される必要がある。
このため、多重書込み処理に使用される前記複製タグメ
モリ索引レジスタと、キャッシュミスにおける読出し応
答に関連するアドレスを保持するための2つのレジスタ
とが使用される。
第5表 第5表は多重読出し要求および、複製タグメモリの更新
を伴う読出し応答処理を示す。サイクルlにおいてキャ
ッシュミスが発生し、バスインタフェースから多重読出
し要求がバスに置かれる。
サイクル2においてコマンドが復号され、自己で発生し
た多重読出しであることが決定される。仮想アドレス(
仮想ページ番号)および?5理アドレスは、キャッシュ
ミスが命令であるかデータであるかを示すバスサブID
に応じて、適切な動作保持レジスタに格納される。サイ
クル3〜N−1において、メモリサブシステムが多重読
出しを処理する。サイクルNにおいて、メモリサブシス
テムは2つの読出し応答の第1番目をバスに置く。サイ
クルN+1において第2の読出し応答がバスに置かれる
。前記第1の読出し応答は復号され、それに対応するア
ドレスが保持レジスタから複製タグメモリ索引レジスタ
にロードされる。前記保持レジスタには、動作の順序(
命令キャッシュミスかデータキャッシュミスか)に応じ
て±8バイトがその内容にロードされる。サイクルN+
2において、第1の読出し応答が複製タグメモリを更新
する。第2の読出し応答が復号され、保持レジスタの内
容が再び複製タグメモリ索引レジスタに転送され、保持
レジスタの内容がステップされる(±8バイト)。サイ
クルN+3において第2の読出し応答が複製タグメモリ
を更新する。
後続のバス書込み処理によってキャッシュの同一箇所が
繰り返し無効化されることを避けるため、本来のタグメ
モリと複製タグメモリとのタグを同時に無効化すること
が極めて望ましい9本来のタグメモリは無効化パイプラ
インの第6サイクルにおいて常に無効化される。しかし
ながら複製タグメモリはその動作がバスに従属している
ため、複製タグメモリ用の処理幅はバス動作によって完
全に消費されてしまう、したがって複製タグメモリは、
いくぶん遅れた時点においてのみ無効化される。消去待
ち行列は可変長の行列であり、無効化が未実行である命
令用およびデータ用複製タグメモリのタグの索引を保持
する。
第4図は待ち行列処理の詳細を示す。一方、第3図は複
製タグメモリ消去装置130の全体を示す。第3図にお
いてキャッシュ61はプロセッサ59にデータおよび命
令を提供する。複製タグはバスの書込みアドレスチエツ
ク用として保持される。
複製タグメモリ消去装置130は、複製タグメモリ10
7からタグの索引を選択的に受け収り、下記に説明する
ようにタグを選択的に無効化する。
第4図はバスインタフェースの無効化処理に関する部分
を示す。命令用複製タグメモリ106またはデータ用複
製タグメモリ108において一致が検出されると、信号
110または信号112が発信される。これら信号は複
製タグメモリの参照サイクルにおいて発信され、レジス
タ114に保持されている索引がレジスタ116および
レジスタ118を介して、本来のタグメモリの索引レジ
スタであるプログラムカウンタレジスタ120または有
効アドレスレジスタ122に送られる。本来のタグメモ
リの無効化は次のサイクルにおいて行われ、命令用キャ
ッシュ102またはデータ用キャッシュ104に関連す
るタグメモリの有効ビットが消去される。
レジスタ118から物理アドレスバス124を介しての
索引の転送と同時に、その索引が複製タグメモリ消去装
置130に与えられる。この時点で信号132が発生さ
れる。これは前記6サイクルの処理の第5サイクルで発
生する。索引は物理成分と仮想成分とを有し、命令用複
製タグメモリでの一致(信号134の発生)、データ用
複製タグメモリでの一致(信号136の発生)、または
両方での一致を指示する。
複製タグメモリ消去装置130は消去待ち行列を構成す
る。該消去待ち行列は多数のエントリからなる。ただし
第4図では、エントリはPO(142)、PI (14
4)およびP2 (146)の3つである。各エントリ
は、14ビツトの複製タグメモリ索引と有効表示とを保
持する。有効表示は、待ち行列が満杯であるか空である
かを決定するために使用される。また前記有効表示は、
消去待ち行列のエントリからデータを収り出した場合、
そのデータによってどの複製タグメモリを無効化するの
かを決定するためにも使用される。
消去待ち行列が満杯で、しかも同一サイクルにおいて該
待ち行列のエントリからデータが収り出されない場合、
新たな索引は単に捨てられる。待ち行列はエントリ14
2.144および146がすべて有効である場合に満杯
となる。待ち行列からは、信号148に基づいて、デー
タが収り出される。なお前記のように新たな索引を捨て
ることが可能な理由は、本来のタグメモリと複製タグメ
モリとは必ずしも互いに等しくなくて良いからである0
本来のタグメモリが有効である場合は複製タグメモリも
有効でなければならないが、その逆は求められない。
消去待ち行列が満杯でない場合、あるいは各エントリか
らデータが同時に収り出される場合、新たな索引は消去
待ち行列の第1の空エントリに入れられる。
待ち行列が空の場合、あるいは1つのエントリのみがデ
ータを有して同時的にデータの収り出しが行われる場合
、第1の空エン1〜りは142である。待ち行列の1つ
のエントリのみがデータを有する場合、あるいは2つの
エントリがデータを有して同時的にデータの取り出しが
行われる場合、第1の空エントリは144である。待ち
行列の2つのエントリがデータを有する場合、あるいは
3つのエントリがデータを有して同時的にデータの取り
出しが行われる場合、第1の空エントリは146である
このように待ち行列は同期的に動作するように設計され
る。複製タグメモリ消去装置130の一連の2:1マル
チプレクサ150,152は、待ち行列の有効エントリ
の前送りを可能にし、待ち行列におけるいかなる接続点
においても新しい索引を平行的にロードすることを可能
にする。
なお前記待ち行列には、複製タグメモリの消去予定タグ
の索引と、待ち行列の全エントリの有効性の指標とに加
えて、命令用複製タグメモリでの一致を表示する信号1
34と、データ用複製タグメモリでの一致を表示する信
号136とが供給される。
消去待ち行列が空でなく、レジスタ160が次のサイク
ルにおいてアイドル状態である場合、消去待ち行列の各
エントリからデータが収り出される。実際において、複
製タグメモリ消去装置130は、命令用およびデータ用
複製タグメモリに対する要求において、バスよりも優先
度が低い。消去待ち行列のエントリからデータが取り出
されると、どの複製タグメモリ(命令用、データ用1才
たは両方)に値を書き込むかが一致指示を利用して決定
される。この時書き込まれる値は無効化を意味する0で
ありレジスタ162に保持される。
複製タグメモリ消去装置130の消去待ち行列に索引デ
ータが存在する間に、その索引データに対応する命令用
またはオペランド用のタグが再使用されることがある。
この場合、その再使用された複製タグメモリのタグを無
効化するのは間違いである。このため比較器154,1
56,158が消去待ち行列の各エントリに対して設け
られる。
これら比較器は、命令用またはデータ用の複製タグメモ
リの再割付けの時点において、消去待ち行列に存在する
各索引データと、5:1マルチプレクサ166が発生す
る信号164とを比較する。
命令用複製タグメモリに記憶されているタグが再使用さ
れたかどうかは信号138によって指示され、データ用
複製タグメモリに記憶されているタグが再使用されたか
どうかは信号140によって指示される。ここで消去待
ち行列中に前記タグに対応する索引データが存在すると
、比較器154.156,158は対応する索引データ
がどれであるかを決定する。そしてその索引データはキ
ャンセルされなければならない9ただし待ち行列中の全
ての索引データを除去するのではない。これは残りの索
引データに関連する複製タグメモリのタグを無効化する
必要があるからである。
レジスタ114,116,118には比較器を設ける必
要はない、理由は、キャッシュの無効化は、複製タグメ
モリに記憶されているタグの再使用とは実質的に無量イ
系に行われるからである。
前記比較器の第2の使用目的は、命令用またはデータ用
複製タグメモリの無駄な無効化を防止することである。
データ用および命令用複製タグメモリのサイズが各々異
なると問題が複雑になる。特にデータ用複製タグメモリ
は13ビツトの索引を必要とし、命令用複製タグメモリ
は14ビツトの索引を必要とする。しかしこれは前記し
た比較動作においては開廷とならない9
【図面の簡単な説明】
第1図は、本発明を採用したシステムを示すブロック図
、 第2図は、本発明の一実施例に基づいて提供される信号
の各ビットを示す図、 第3図は、本発明の実施例の概略を示すブロック図、お
よび 第4図は、第3図に示した実施例の詳細ブロック図であ
る。 08・・・データ用複製タグメモリ 20・・・プログラムカウンタレジスタ22・・・有効
アドレスレジスタ 30・・・複製タグメモリ消去装置 50.152・・・マルチプレクサ 54.156,158・・・比較器 50・・・命令用キャッシュ 52・・・データ用キャッシュ 54・・・バスインタフェース 56・・・複製タグメモリ 59・・・プロセッサ 64・・・システムバス 102・・・命令用キャッシュ 104・・・データ用キャッシュ 106・・・命令用複製タグメモリ 107・・・複製タグメモリ 手続補正側 (方式) %式% 1、事件の表示 平成1年 2、発明の名称 殿) 特許願第281587号 高速データ処理装置 3゜ 4゜ 補正をする者 事件との関係  特許出願人

Claims (1)

  1. 【特許請求の範囲】 1、選択的にクロック同期される時間サイクルにおいて
    データを搬送する同期バスと、 データの同期転送を提供すべく接続された複数のキャッ
    シュメモリと、 前記キャッシュメモリのデータ転送の整合性を提供する
    手段とを備え、該整合性を提供する手段が、データ書込
    みの衝突を検査する複製タグメモリと、前記複製タグメ
    モリに記憶されている各タグを選択的に無効化する手段
    とを有する、高速データ処理装置。 2、前記選択的に無効化する手段が無効化しようとする
    タグの索引を格納する消去待ち行列を含む、請求項1に
    記載の高速データ処理装置。 3、前記消去待ち行列が動的に調整可能な記憶容量を有
    した弾性バッファを備える、請求項2に記載の高速デー
    タ処理装置。 4、前記複製タグメモリに記憶されているタグが再使用
    された場合に該タグの無効化の予定をキャンセルする手
    段をさらに備える、請求項2に記載の高速データ処理装
    置。 5、前記複製タグメモリのタグを消去するための索引の
    うち余分な索引を除去する手段をさらに備える、請求項
    2に記載の高速データ処理装置。 6、前記消去待ち行列があふれた場合に無効化のための
    索引を捨てる手段をさらに備える、請求項2に記載の高
    速データ処理装置。 7、選択されたプロセッサに付随するタグメモリと、 前記タグメモリの内容の複製を有する複製タグメモリと
    、 他のプロセッサからの全てのデータ格納動作に対して前
    記複製タグメモリを参照し、該複製タグメモリ中に発見
    したデータに対応する指標を提供する手段と、 前記指標を受け取る消去待ち行列と、 前記消去待ち行列に格納された指標に対応する前記デー
    タを前記複製タグメモリから消去する手段とを備える、
    多重プロセッサシステムのプロセッサキャッシュから古
    いデータを消去する装置。 8、前記消去待ち行列と前記複製タグメモリとに格納さ
    れている同一アドレスを検出する手段と、前記待ち行列
    から前記同一アドレスを除去する手段とをさらに備える
    、請求項7に記載の装置。 9、選択されたプロセッサに付随するタグメモリのコピ
    ーである複製タグメモリを提供し、他のプロセッサから
    のデータ格納動作に関連するタグと前記複製タグメモリ
    に記憶されている各タグとを比較し、 前記他のプロセッサからのデータ格納動作に関連するタ
    グと前記複製タグメモリに記憶されているタグとが対応
    する場合、前記複製タグメモリの対応するタグを無効化
    する各段階を備える、多重プロセッサシステムにおいて
    プロセッサキャッシュから古いデータを消去する方法。 10、前記複製タグメモリにおける各アドレスと消去待
    ち行列中の各アドレスとを比較し、前記比較の結果とし
    て一致が発見されれば前記複製タグメモリの一致したア
    ドレスのデータを消去する各段階をさらに備える、請求
    項9に記載の方法。 11、無効化しようとする内容を消去待ち行列に格納す
    る段階をさらに備える、請求項9に記載の方法。
JP1281587A 1988-10-28 1989-10-27 高速データ処理装置 Pending JPH02224161A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26371188A 1988-10-28 1988-10-28
US263711 1988-10-28

Publications (1)

Publication Number Publication Date
JPH02224161A true JPH02224161A (ja) 1990-09-06

Family

ID=23002940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1281587A Pending JPH02224161A (ja) 1988-10-28 1989-10-27 高速データ処理装置

Country Status (2)

Country Link
EP (1) EP0366323A3 (ja)
JP (1) JPH02224161A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784877A (ja) * 1993-08-27 1995-03-31 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19532418A1 (de) * 1994-09-01 1996-03-14 Gmd Gmbh Cache-System zum Speichern von Daten
US9021306B2 (en) 2012-12-13 2015-04-28 Apple Inc. Debug access mechanism for duplicate tag storage
CN110750960A (zh) * 2018-07-05 2020-02-04 武汉斗鱼网络科技有限公司 一种配置文件的解析方法、存储介质、电子设备及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4142234A (en) * 1977-11-28 1979-02-27 International Business Machines Corporation Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
ATE62764T1 (de) * 1984-02-10 1991-05-15 Prime Computer Inc Cache-kohaerenz-anordnung.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784877A (ja) * 1993-08-27 1995-03-31 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法

Also Published As

Publication number Publication date
EP0366323A3 (en) 1991-09-18
EP0366323A2 (en) 1990-05-02

Similar Documents

Publication Publication Date Title
US11693791B2 (en) Victim cache that supports draining write-miss entries
US6751720B2 (en) Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US5226146A (en) Duplicate tag store purge queue
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US8782348B2 (en) Microprocessor cache line evict array
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US7434007B2 (en) Management of cache memories in a data processing apparatus
US20060155934A1 (en) System and method for reducing unnecessary cache operations
JPH0342745A (ja) 複数キャッシュ・メモリ・アクセス方法
US6105108A (en) Method and apparatus for releasing victim data buffers of computer systems by comparing a probe counter with a service counter
US6061765A (en) Independent victim data buffer and probe buffer release control utilzing control flag
US6202126B1 (en) Victimization of clean data blocks
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
US6101581A (en) Separate victim buffer read and release control
JPH02224161A (ja) 高速データ処理装置
US20060224834A1 (en) Write-back cache methods and apparatus
JPH06187239A (ja) 多階層キャッシュメモリにおけるデータ一致制御方式
JPH10232831A (ja) キャッシュ・タグ維持装置
EP0407053B1 (en) Small, fast, look-aside data cache memory
JPH08106417A (ja) メモリアクセス方法及びメモリ共有システム