JP3434462B2 - 割振り解除方法およびデータ処理システム - Google Patents

割振り解除方法およびデータ処理システム

Info

Publication number
JP3434462B2
JP3434462B2 JP03146699A JP3146699A JP3434462B2 JP 3434462 B2 JP3434462 B2 JP 3434462B2 JP 03146699 A JP03146699 A JP 03146699A JP 3146699 A JP3146699 A JP 3146699A JP 3434462 B2 JP3434462 B2 JP 3434462B2
Authority
JP
Japan
Prior art keywords
cache
data
bus
snooped
data item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP03146699A
Other languages
English (en)
Other versions
JPH11328015A (ja
Inventor
ラヴィ・クマリ・アリミッリ
ジョン・スチーブン・ドッドソン
ジェリー・ドン・ルイス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11328015A publication Critical patent/JPH11328015A/ja
Application granted granted Critical
Publication of JP3434462B2 publication Critical patent/JP3434462B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

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)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、全般的にはデータ
処理システム内のキャッシュからのデータの追出しに関
し、具体的には、複数レベル・キャッシュ階層を有する
データ処理システムのキャッシュからのデータの追出し
に関する。さらに具体的に言うと、本発明は、複数レベ
ル・キャッシュ階層を有するデータ処理システム内で
の、あるキャッシュから論理的にイン・ラインのキャッ
シュへのデータの追出しに関する。
【0002】
【従来の技術】現在のデータ処理システム・アーキテク
チャのほとんどには、記憶階層内に複数レベルのキャッ
シュ・メモリが含まれる。キャッシュは、データ処理シ
ステムで、頻繁に使用されるデータへの、システム・メ
モリに関連するアクセス時間より高速のアクセスを提供
し、これによって総合性能を改善するために使用され
る。記憶階層のどのレベルのキャッシュも、私有(ロー
カル・プロセッサ用に予約される)か、共用(複数のプ
ロセッサからアクセス可能)とすることができるが、通
常は、プロセッサに近いレベルのキャッシュは私有であ
る。論理的にプロセッサに最も近いレベル1(L1)キ
ャッシュは、通常は、プロセッサに一体化された部分と
して実施され、別々のデータ・キャッシュおよび命令キ
ャッシュに分けることができる。下位レベルのキャッシ
ュは、一般的には別々の装置として実施されるが、レベ
ル2(L2)は、プロセッサと同一のシリコン・ダイ内
に形成される場合がある。
【0003】複数のキャッシュ・レベルが使用される時
には、通常、それらのキャッシュ・レベルは、サイズが
徐々に大きくなるが、トレード・オフとしてアクセス待
ち時間が徐々に長くなる形で使用される。小さいが高速
のキャッシュは、記憶階層内でプロセッサに近いレベル
で使用され、大きいが低速のキャッシュは、システム・
メモリに近いレベルで使用される。複数レベルのキャッ
シュ階層内の論理的にイン・ラインのキャッシュは、一
般的に、記憶階層の上位レベルのキャッシュとの間でデ
ータをステージングするのに使用される。データがシス
テム・メモリまたは記憶階層の下位レベルのキャッシュ
から記憶階層の上位レベルのキャッシュへステージング
または転送される際に、置換方針(通常は最も古くに使
用されたものを置換する)を使用して、新しいデータの
格納に使用するキャッシュ位置を決定する。この処理
は、キャッシュの「更新」と称する場合が多いが、これ
によって、置換方針によって選択されたキャッシュ位置
(「データ置換位置」とも称する)に関連する変更され
たデータが、記憶階層の下位レベルに書き戻される。デ
ータ置換位置からシステム・メモリまたは下位のキャッ
シュ・レベルへ変更されたデータを書き込む処理を、キ
ャスト・アウトまたは追出しと称する。
【0004】システム・メモリへのアクセスは、一般
に、記憶階層内のすべてのキャッシュへのアクセスに関
連する待ち時間よりもかなり長い待ち時間を有する。た
とえば、システム・メモリへのアクセスは、レベル3
(L3)キャッシュへのアクセスに必要なプロセッサ・
サイクルの4倍までのプロセッサ・サイクルを必要と
し、L2キャッシュへのアクセスに必要なプロセッサ・
サイクルの10ないし15倍までのプロセッサ・サイク
ルを必要とする可能性がある。したがって、最低レベル
以外のキャッシュ階層レベルのキャッシュからのデータ
の追出しは、従来は、システム・メモリではなく、キャ
ッシュ階層の次の下位レベルに書き込まれてきた。たと
えば、L2キャッシュからキャスト・アウトされるデー
タは、通常は、システム・メモリまでデータを書き込む
のではなく、L2キャッシュとL3キャッシュの間の私
有バスを介してL3キャッシュに書き込まれる。特定の
動作に関する待ち時間は、この形で最小化されるが、こ
のような追出しは、一般にマルチプロセッサ・システム
の他の装置からはアクセスできない記憶階層の局所的な
部分に変更済みデータが保存されるという効果を有す
る。
【0005】データがL2キャッシュとL3キャッシュ
を接続する私有バスを介してL2キャッシュからL3キ
ャッシュへ追い出されるシステムでは、確実にデータ保
全性を保つために、L3ディレクトリおよびL3キャッ
シュに対する誤り訂正コード(ECC)検査が必要であ
る。これによって、2つのキャッシュを接続するバスに
必要なビット数が増える。たとえば、L2キャッシュと
L3キャッシュ間のデータ転送に64ビット・データ・
バスを使用する場合、ECC検査用に追加の8ビットが
必要であり、72ビット・バスがもたらされる。この拡
大されたバスは、シリコン内の追加の面積を消費し、6
4ビット・バスより低い周波数で動作することが必要に
なる可能性がある。
【0006】したがって、2つのキャッシュの間の私有
バスの必要なしに、また、2つのキャッシュの間のデー
タ転送のECC検査の必要なしに、あるキャッシュ・レ
ベルから下位のキャッシュ・レベルへデータを追い出せ
ることが望ましい。マルチプロセッサ・システムの他の
装置のスヌープ論理に対して追出しを可視にすることが
できる、そのようなデータ追出しのための機構を提供す
ることが、さらに有利である。
【0007】
【発明が解決しようとする課題】したがって、本発明の
目的は、データ処理システム内のキャッシュからデータ
を追い出すための改良された方法および装置を提供する
ことである。
【0008】本発明のもう1つの目的は、複数レベル・
キャッシュ階層を有するデータ処理システム内のキャッ
シュからデータを追い出すための改良された方法および
装置を提供することである。
【0009】本発明のもう1つの目的は、複数レベル・
キャッシュ階層を有するデータ処理システム内でキャッ
シュから論理的にイン・ラインのキャッシュへデータを
追い出すための改良された方法および装置を提供するこ
とである。
【0010】
【課題を解決するための手段】前述の目的は、これから
説明する形で達成される。複数レベル・キャッシュ階層
内の最下位以外のレベルの第1キャッシュからデータを
追い出す際に、データは、システム・バスに書き込ま
れ、キャッシュ階層の下位レベルの第2キャッシュにス
ヌープ・バックされる。したがって、この2つのキャッ
シュの間の私有データ経路の必要がなくなり、第2キャ
ッシュ・メモリがデュアル・ポート式である必要はな
い。第2キャッシュの更新に使用される再ロード経路
は、システム・バスからのキャスト・アウトのスヌープ
に再利用される。システム・バスを介して第1キャッシ
ュからデータを追い出した結果として、第2キャッシュ
には、システム・メモリに関して変更済み(M)である
データは絶対に含まれず、マルチプロセッサ・システム
内の他の装置は、より早期に更新される。誤り訂正コー
ド(ECC)検査の必要がなくなり、これと共に関連す
る追加ビットの必要もなくなり、ECC検査を単純なパ
リティ検査によって置換することができる。したがっ
て、第2キャッシュへのバスは、必要なビット数が減
り、消費する面積が減り、より高い周波数で動作するこ
とが可能になる。H−MESIキャッシュ・コヒーレン
シ・プロトコルと共に使用される時に、水平装置は、ホ
バリング(H)状態から共用(S)状態により速く移行
する。
【0011】
【発明の実施の形態】ここで図面、具体的には図1を参
照すると、本発明の好ましい実施例によるマルチプロセ
ッサ・データ処理システムが示されている。データ処理
システム100は、米国ニューヨーク州アーモンクのIn
ternational Business Machines社から入手できるPo
werPC(商標)系列のプロセッサのうちの1つを含
むことが好ましい複数のプロセッサ102および104
を含む対称型マルチプロセッサ(SMP)システムであ
る。この実施例では2つのプロセッサだけが図示されて
いるが、当業者であれば、本発明によるマルチプロセッ
サ・データ処理システムで追加のプロセッサを使用でき
ることを諒解するであろう。
【0012】プロセッサ102および104には、それ
ぞれ、レベル1(L1)データ・キャッシュ106およ
び108と、L1命令キャッシュ110および112が
含まれる。この実施例では、分離された命令キャッシュ
およびデータ・キャッシュとして図示されているが、当
業者であれば、単一の統一L1キャッシュを実施できる
ことを諒解するであろう。データ・アクセス待ち時間を
最小にするために、レベル2(L2)キャッシュ114
および116とレベル3(L3)キャッシュ118およ
び119などの1つまたは複数の追加レベルのキャッシ
ュ・メモリをデータ処理システム100内で実施するこ
とができる。下位のキャッシュ・レベル(L2およびL
3)は、L1キャッシュへのデータのステージングに使
用され、通常は、徐々に容量が大きくなるが、アクセス
待ち時間が長くなる。たとえば、L1データ・キャッシ
ュ106および108とL1命令キャッシュ110およ
び112は、それぞれ32KBの記憶容量と、約1ない
し2プロセッサ・サイクルのアクセス待ち時間を有す
る。L2キャッシュ114および116は、512KB
の記憶容量を有するが、5プロセッサ・サイクルのアク
セス待ち時間を有する可能性があり、L3キャッシュ1
18および119は、4MBの記憶容量を有するが、1
5プロセッサ・サイクルを超えるアクセス待ち時間を有
する可能性がある。したがって、L2キャッシュ114
および116とL3キャッシュ118および119は、
プロセッサ102および104とシステム・メモリ12
0の間の中間記憶装置として働き、システム・メモリ1
20は、通常ははるかに大きい記憶容量を有するが、5
0プロセッサ・サイクルを超えるアクセス待ち時間を有
する可能性がある。
【0013】データ処理システム100で使用されるキ
ャッシュ階層内のレベルの数とキャッシュ階層構成の両
方が、可変である。図示の例のL2キャッシュ114お
よび116は、それぞれのプロセッサ102および10
4とシステム・メモリ120の間にシステム・バス12
2を介して接続された専用キャッシュである。L3キャ
ッシュ118および119は、論理的にL2キャッシュ
114および116に垂直のルックアサイド・キャッシ
ュとして図示されている。その結果、データまたは命令
は、L2キャッシュ114または116のどちらかとL
3キャッシュ118または119のどちらかで同時にテ
ーブル索引される可能性があるが、データまたは命令
は、L2キャッシュ114または116がミスし、L3
キャッシュ118または119がヒットした場合に限っ
てL3キャッシュ118または119から取り出され
る。当業者であれば、図示のレベルと構成のさまざまな
組み合わせを実施できることを諒解するであろう。
【0014】L2キャッシュ114および116とL3
キャッシュ118および119は、システム・バス12
2を介してシステム・メモリ120に接続される。シス
テム・バス122には、表示装置(図示せず)の接続を
提供するグラフィックス・アダプタなどのメモリ・マッ
プ式装置124と、入出力バス・ブリッジ126も接続
される。入出力バス・ブリッジ126は、システム・バ
ス122を入出力バス128に接続し、入出力バス12
8は、入出力装置130および不揮発性メモリ132へ
の接続を提供することができる。したがって、システム
・バス122、入出力バス・ブリッジ126および入出
力バス128は、接続される装置を結合する相互接続を
形成するが、その代替実施例は当技術分野で既知であ
る。入出力装置130には、キーボード、マウスやトラ
ックボールなどのグラフィカル・ポインティング装置、
表示装置およびプリンタを含む、従来のアダプタを介し
て入出力バス128にインターフェースされる従来の周
辺装置が含まれる。不揮発性メモリ132には、ハード
・ディスク・ドライブを含めることができ、データ処理
システム100の動作を制御するオペレーティング・シ
ステムおよび他のソフトウェアが格納され、このオペレ
ーティング・システムおよび他のソフトウェアは、デー
タ処理システム100の電源投入に応答して揮発性のシ
ステム・メモリ120にロードされる。当業者であれ
ば、データ処理システム100に、シリアル・ポート、
パラレル・ポート、ネットワークまたは接続された装置
への接続、システム・メモリ120へのアクセスを調整
するメモリ・コントローラなど、図1に示されていない
多数の追加構成要素を含めることができることを諒解す
るであろう。このような変更および変形は、本発明の趣
旨および範囲に含まれる。
【0015】システム・バス122上の通常の通信トラ
ンザクションには、トランザクションのソースを示すソ
ース・タグ、トランザクションの向けられる宛先を指定
する宛先タグ、アドレスまたはデータが含まれる。シス
テム・バス122に接続された装置のそれぞれは、シス
テム・バス122上のすべての通信トランザクションを
スヌープし、必要な時には他の宛先へ向けられた通信ト
ランザクションに介入し、実現可能かつ適当な時には装
置内で複製されたシステム・メモリ・データへの変更を
再作成することが好ましい。
【0016】図2を参照すると、本発明の好ましい実施
例によるキャッシュ・エントリ追出し機構の論理ブロッ
ク図が示されている。本発明を説明する目的で示される
機構は、図1のL2キャッシュ114および116と、
それぞれL2キャッシュ114および116に関連する
L3キャッシュ118および119と、システム・バス
122とに関連して図示されている。しかし、本発明
は、L1データ・キャッシュ106および108やL1
命令キャッシュ110および112など、複数レベル・
キャッシュ階層内の他のキャッシュと共に実施すること
ができる。本発明は、たとえばL2キャッシュ114と
L2キャッシュ114にデータをステージングするのに
使用されるL3キャッシュ118との間などの、私有デ
ータ経路200を使用しない。本発明では、L2キャッ
シュ114から追い出されるデータは、システム・バス
122への通常のデータ経路202を介してシステム・
メモリ120に書き込まれる。その後、追い出されるデ
ータは、L3キャッシュ118へのスヌープ論理経路2
04を介してシステム・バス122からスヌープされ
る。追い出されるデータは、L2キャッシュ116への
スヌープ論理経路206を介してシステム・バス122
からスヌープすることができ、L2キャッシュ116へ
のデータのステージングに使用されるL3キャッシュ1
19へのスヌープ論理経路208を介してシステム・バ
ス122からスヌープすることができる。このL2キャ
ッシュからデータを追い出すための機構は、上で示した
関連特許に記載の併合された垂直キャッシュ・コントロ
ーラ機構と共に実施することもできる。
【0017】追い出されるデータをL2キャッシュ11
4からシステム・バス122に書き込み、そのデータを
L3キャッシュ118へスヌープ・バックすることによ
って、L2キャッシュ114とL3キャッシュ118の
間の私有データ経路200の必要がなくなる。L2キャ
ッシュ114は、1つのデータ経路だけを有し、その経
路によってL2キャッシュ114がシステム・バス12
2に接続される。L3キャッシュ118を更新するため
のスヌープ論理経路204は、L2キャッシュ114か
らのキャスト・アウトのスヌープに再利用される。した
がって、L3キャッシュ118がデュアル・ポート式で
ある必要はない。L3キャッシュ118のディレクトリ
またはキャッシュに対するECC検査は不要であり、L
3キャッシュ118へのデータ経路に関連する複数のE
CCビットの必要がなくなる。これらのECCビット
は、L3キャッシュ118へのデータ経路内の全ビット
に対する単一のパリティ・ビットによって置換でき、こ
れによってL3キャッシュ118へのバスが小さくな
り、消費するシリコン面積が減り、より高い周波数での
動作が可能になる。システム・バス122から追い出さ
れるデータをスヌープする際のパリティ・エラーは、ミ
スとして扱われ、その後、L3キャッシュ118が、シ
ステム・メモリ120からそのデータを取り出す。
【0018】L2キャッシュ114からのキャスト・ア
ウトのすべてがシステム・バス122に書き込まれるの
で、追い出されるデータは、システム・メモリ120と
メモリ・コントローラに対してキャスト・アウトされ
る。システム・バス122を介してデータを追い出すこ
とによって、L2キャッシュ116や関連するL3キャ
ッシュ119などの他の水平バス装置が、キャッシュ・
データ追出しのための従来技術の方式の場合より早期に
更新される。水平装置は、システム・バスのみを介して
L2キャッシュ114に接続され、キャッシュ階層のど
のレベルに置くこともできるが、システム・バス122
から追い出されるデータをスヌープすることができ、L
2キャッシュ114のデータをステージングするのに使
用されるL3キャッシュ118と同時に、システム・メ
モリ120とコヒーレントな状態になる。
【0019】L2キャッシュ114がシステム・バス1
22を介してデータを追い出した結果として、L3キャ
ッシュ118には、MESIキャッシュ・コヒーレンシ
・プロトコルの下でシステム・メモリ120に関して変
更済み(M)のデータが絶対に含まれない。L2キャッ
シュ114からシステム・バス122へのデータの追出
しをL3キャッシュ118および他の水平装置がスヌー
プすることによって、H−MESIキャッシュ・コヒー
レンシ・プロトコルを実施するシステムで追加の利益が
達成される。H−MESIキャッシュ・コヒーレンシ・
プロトコルのホバリング(H)状態は、キャッシュ・エ
ントリのタグ・フィールドに格納されたアドレス・タグ
が有効であるが、関連するデータ項目(たとえばキャッ
シュ・ラインやキャッシュ・セクタ)が無効であること
を示す。データはシステム・バスに追い出され、そのシ
ステム・バスをスヌープすることができるので、H状態
のキャッシュ・エントリを更新でき、より高速に共用
(S)状態にすることができる。したがって、データ
は、オン・デマンドで水平装置によって取り出され、そ
のような水平装置内では加齢がはるかに少ない。
【0020】ここで図3を参照すると、本発明の好まし
い実施例による、複数レベル・キャッシュ階層の上位レ
ベル内のキャッシュからデータをキャスト・アウトする
処理の高水準流れ図が示されている。この処理は、図1
および図2に示されたものなどの複数レベル・キャッシ
ュ階層を含むデータ処理システム内で実施できる。この
処理は、ステップ302で開始され、最下位レベル以外
のキャッシュ階層のレベルのキャッシュ内で適用可能な
キャッシュ置換方針に従ってデータ置換位置が選択され
る。処理は次にステップ304に進み、選択されたデー
タ置換位置からシステム・バスへデータを書き込み、次
にステップ306に進み、キャッシュ階層の下位レベル
のキャッシュで、選択されたデータ置換位置からのデー
タを書き込むバス動作をスヌープする。
【0021】処理は次にステップ308に進み、追い出
されたデータに対応するキャッシュ・エントリが下位キ
ャッシュ内での更新を必要とするかどうかを判定する。
不要な場合、この処理はステップ316に進み、次のキ
ャッシュ追出しまで遊休状態になる。しかし、下位キャ
ッシュが更新を必要とする場合には、処理はステップ3
10に進み、システム・バスからのキャッシュ追出しの
スヌープでパリティ・エラーが発生したかどうかを判定
する。そうである場合、処理はステップ312に進み、
スヌープ動作をミスとして扱い、システム・メモリから
下位キャッシュを更新する。しかし、パリティ・エラー
が検出されない場合には、処理はステップ314に進
み、スヌープされたバス動作から下位キャッシュを更新
し、その後ステップ316に進み、次の追出しまで遊休
状態になる。
【0022】システム・バス動作の長い待ち時間をこう
むるが、L2キャッシュから追い出されるデータは、シ
ステム・バスに書き込まれ、L3キャッシュにスヌープ
・バックされる。これによって、L2キャッシュとL3
キャッシュの間の私有または「裏口」データ・バスの必
要がなくなる。L2キャッシュからのデータ経路は、シ
ステム・バスに接続される単一のデータ経路だけが必要
であり、L3キャッシュがデュアル・ポート式である必
要はない。L3キャッシュの更新に使用される再ロード
経路は、システム・バスを出るL2キャッシュからのキ
ャスト・アウトのスヌープに再利用される。L3ディレ
クトリおよびL3キャッシュでのECC検査とこれに関
連するオーバーヘッドも不要である。データ保全性は、
1ビットだけのオーバーヘッドを伴う単純なパリティ検
査によって検証でき、パリティ・エラーは、スヌープ・
ミスとして扱われ、その場合にはL3キャッシュはシス
テム・メモリから更新される。
【0023】L2データ置換位置からのデータは、シス
テム・バスに書き込むことによってキャスト・アウトさ
れるので、L3キャッシュは、常にシステム・メモリと
コヒーレントな状態であり、システム・メモリに関して
変更済みのデータは絶対に格納されない。マルチプロセ
ッサ・システム内の他の装置は、システム・バスからの
キャストアウトをスヌープすることによって、早期に更
新される。H−MESIキャッシュ・コヒーレンシ・プ
ロトコルを使用する時には、水平装置がホバリング状態
から共用状態へよりすばやく移行する。
【0024】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0025】(1)第1キャッシュ内でデータ置換位置
を選択するステップと、システム・バス動作を使用し
て、上記選択されたデータ置換位置からシステム・メモ
リへデータ項目を書き込むステップと、第2キャッシュ
用のスヌープ論理で上記システム・バス動作をスヌープ
するステップと、上記第1キャッシュ内の上記選択され
たデータ置換位置に対応する上記第2キャッシュ内のキ
ャッシュ位置に上記データ項目が含まれるかどうかを上
記スヌープされたシステム・バス動作から判定するステ
ップとを含む、上記システム・バスによって上記システ
ム・メモリに接続された、論理的にイン・ラインの上記
第1キャッシュおよび上記第2キャッシュを含むデータ
処理システム内で、上記第1キャッシュ内のキャッシュ
位置の割振りを解除する方法。 (2)上記第1キャッシュ内の上記選択されたデータ置
換位置に対応する上記第2キャッシュ内のキャッシュ位
置に上記データ項目が含まれるかどうかを上記スヌープ
されたシステム・バス動作から判定するステップが、上
記キャッシュ位置に関連するコヒーレンシ状態を検査す
るステップをさらに含む、上記(1)の方法。 (3)上記第1キャッシュ内の上記選択されたデータ置
換位置に対応する上記第2キャッシュ内の上記キャッシ
ュ位置に上記データ項目が含まれないことの判定に応答
して、上記スヌープされたシステム・バス動作から上記
データ項目を用いて上記第2キャッシュ内の上記位置を
更新するステップをさらに含む、上記(1)の方法。 (4)上記第1キャッシュ内の上記選択されたデータ置
換位置に対応する上記第2キャッシュ内の上記キャッシ
ュ位置に上記データ項目が含まれないことの判定に応答
して、パリティ・エラーに関して上記スヌープされたシ
ステム・バス動作を検査するステップをさらに含む、上
記(1)の方法。 (5)上記スヌープされたシステム・バス動作でのパリ
ティ・エラーの検出に応答して、上記スヌープされたシ
ステム・バス動作をミスとして扱うステップをさらに含
む、上記(4)の方法。 (6)上記スヌープされたシステム・バス動作でのパリ
ティ・エラーの検出に応答して、システム・メモリから
上記データ項目を取り出すための動作を待ち行列化する
ステップをさらに含む、上記(4)の方法。 (7)上記スヌープされたシステム・バス動作でパリテ
ィ・エラーが検出されないことに応答して、上記スヌー
プされたシステム・バス動作から上記データ項目を用い
て上記第2キャッシュ内の上記キャッシュ位置を更新す
るステップをさらに含む、上記(4)の方法。 (8)データ処理システムの記憶階層内の上位キャッシ
ュと、上記上位キャッシュと上記記憶階層の他の部分と
の間で論理的にイン・ラインの下位キャッシュと、上記
上位キャッシュおよび上記下位キャッシュに接続され、
上記上位キャッシュおよび上記下位キャッシュを上記記
憶階層の他の部分に接続する、バスと、データ項目を含
む上記上位キャッシュ内のキャッシュ位置の割振り解除
の際に、上記上位キャッシュから上記バスへ上記データ
項目を書き込むキャッシュ制御論理と、上記バスから上
記データ項目をスヌープする、上記下位キャッシュのた
めのスヌープ論理とを含む、上記データ処理システム。 (9)上記上位キャッシュ内の上記割振り解除されるキ
ャッシュ位置に対応する上記下位キャッシュ内のキャッ
シュ位置のコヒーレンシ状態を検査するコヒーレンシ論
理をさらに含む、上記(8)の装置。 (10)上記バスからスヌープされた上記データ項目の
パリティを検査するパリティ検査論理をさらに含む、上
記(8)の装置。 (11)上記スヌープされたデータ項目の上記パリティ
が誤りである場合に、上記スヌープ論理が、上記上位キ
ャッシュ内の上記割振り解除されるキャッシュ位置に対
応する上記下位キャッシュ内のキャッシュ位置を上記記
憶階層の他の部分から更新する動作を待ち行列化する、
上記(10)の装置。 (12)上記スヌープされたデータ項目の上記パリティ
が正しい場合に、上記スヌープ論理が、上記上位キャッ
シュ内の上記割振り解除されるキャッシュ位置に対応す
る上記下位キャッシュ内のキャッシュ位置を上記データ
項目を用いて更新する、上記(10)の装置。 (13)上記データ項目が変更済みの場合に、上記キャ
ッシュ制御論理が、上記キャッシュ位置の割振り解除の
際に、上記上位キャッシュから上記バスへ上記データ項
目を書き込む、上記(8)の装置。 (14)システム・メモリと、上記システム・メモリに
結合されたシステム・バスと、上記システム・バスに結
合された第1キャッシュと、データ処理システム内で上
記第1キャッシュと論理的にイン・ラインの第2キャッ
シュと、上記第1キャッシュ内の割り振り解除されるキ
ャッシュ位置から上記システム・バス上のシステム・バ
ス動作を介して上記システム・メモリへデータ項目を書
き込むキャッシュ制御論理と、上記第1キャッシュ内の
上記割振り解除されるキャッシュ位置に対応する上記第
2キャッシュ内の対応するキャッシュ位置が更新を必要
とするかどうかを判定するために、上記システム・バス
から上記システム・バス動作をスヌープする、上記第2
キャッシュのためのスヌープ論理とを含む、データ処理
システム。 (15)上記第1キャッシュが、レベル2キャッシュを
含む、上記(14)のデータ処理システム。 (16)上記第2キャッシュが、レベル3キャッシュを
含む、上記(14)のデータ処理システム。 (17)上記第1キャッシュが、レベル1キャッシュを
含み、上記第2キャッシュが、レベル2キャッシュを含
む、上記(14)のデータ処理システム。 (18)上記第2キャッシュ内の上記対応するキャッシ
ュ位置のコヒーレンシ状態を検査するコヒーレンシ論理
をさらに含む、上記(14)のデータ処理システム。 (19)上記システム・バスからスヌープされた上記デ
ータ項目のパリティを検査するパリティ検査論理をさら
に含む、上記(14)のデータ処理システム。 (20)上記スヌープ論理が、上記システム・バスから
スヌープされた上記データ項目の上記パリティが正しい
場合に、上記スヌープされたデータ項目を用いて上記第
2キャッシュ内の上記対応するキャッシュ位置を更新
し、上記スヌープされたデータ項目のパリティが正しく
ない場合に、上記システム・メモリから上記第2キャッ
シュ内の上記対応するキャッシュ位置を更新する動作を
待ち行列化する、上記(19)のデータ処理システム。
【図面の簡単な説明】
【図1】本発明の好ましい実施例によるマルチプロセッ
サ・データ処理システムを示す図である。
【図2】本発明の好ましい実施例による、キャッシュ・
エントリ追出し機構の論理ブロック図である。
【図3】本発明の好ましい実施例による、複数レベル・
キャッシュ階層の上位レベル内のキャッシュからデータ
をキャスト・アウトする処理の高水準流れ図である。
【符号の説明】
100 データ処理システム 102 プロセッサ 104 プロセッサ 106 レベル1(L1)データ・キャッシュ 108 レベル1(L1)データ・キャッシュ 110 L1命令キャッシュ 112 L1命令キャッシュ 114 レベル2(L2)キャッシュ 116 レベル2(L2)キャッシュ 118 レベル3(L3)キャッシュ 119 レベル3(L3)キャッシュ 120 システム・メモリ 122 システム・バス 124 メモリ・マップ式装置 126 入出力バス・ブリッジ 128 入出力バス 130 入出力装置 132 不揮発性メモリ 200 私有データ経路 202 データ経路 204 スヌープ論理経路 206 スヌープ論理経路 208 スヌープ論理経路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・スチーブン・ドッドソン アメリカ合衆国78660 テキサス州プフ リューガーヴィル ベル・ロック・サー クル 1205 (72)発明者 ジェリー・ドン・ルイス アメリカ合衆国78681 テキサス州ラウ ンド・ロック アロウヘッド・サークル 3409 (56)参考文献 特開 平1−276348(JP,A) 特開 平4−163646(JP,A) 特開 平6−28251(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 12/16 G06F 15/16 - 15/177

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】システム・バス(122)によってシステ
    ム・メモリ(120)に接続された、論理にイン・ライ
    ンの第1キャッシュ(114,116)および第2キャ
    ッシュ(118,119)を含むデータ処理システム
    (100)内で、前記第1キャッシュ内のキャッシュ位
    置の割り当てを解除する方法であって、 前記第1キャッシュのデータ置換位置を選択するステッ
    プ(302)と、 前記システム・バス動作を使用して、前記選択されたデ
    ータ置換位置から前記システム・メモリへデータ項目を
    書き込むステップ(304)と、 前記第2キャッシュ用のスヌープ論理で前記システム・
    バス動作をスヌープするステップ(306)と、 前記第1キャッシュ内の前記選択されたデータ置換位置
    に対応する前記第2キャッシュ内のキャッシュ位置に前
    記データ項目が含まれるかどうかを前記スヌープされた
    システム・バス動作から判定するステップ(308)と
    前記第1キャッシュ内の前記選択されたデータ置換位置
    に対応する前記第2キャッシュ内の前記キャッシュ位置
    に前記データ項目が含まれないことの判定に応答して、
    パリティ・エラーに関して前記スヌープされたシステム
    ・バス動作を検査するステップ(310)と、 前記スヌープされたシステム・バス動作でのパリティ・
    エラーの検出に応答して、前記スヌープされたシステム
    ・バス動作をミスとして扱い、前記システム・メモリか
    ら前記第2キャッシュを更新するステップ(312)
    と、 を含む方法。
  2. 【請求項2】前記スヌープされたシステム・バス動作で
    のパリティ・エラーの非検出に応答して、前記スヌープ
    されたシステム・バス動作から前記データ項目を用いて
    前記第2キャッシュ内の前記キャッシュ位置を更新する
    ステップ(314)と、 をさらに含む、請求項1の方法。
  3. 【請求項3】データ処理システム(100)において、
    システム・メモリ(120)を含む記憶階層を構成する
    装置であって、 前記データ処理システムの記憶階層内の上位キャッシュ
    (114,116)と、 前記上位キャッシュと前記記憶階層の他の部分との間で
    論理的にイン・ラインの下位キャッシュ(118,11
    9)と、 前記上位キャッシュおよび前記下位キャッシュに接続さ
    れ、前記上位キャッシュおよび前記下位キャッシュを前
    記記憶階層の他の部分に接続する、バス(122)と、 データ項目を含む前記上位キャッシュ内のキャッシュ位
    置の割振り解除の際に、前記上位キャッシュから前記バ
    スへ前記データ項目を書き込むキャッシュ制御論理(3
    04)と、 前記バスから前記データ項目をスヌープする、前記下位
    キャッシュのためのスヌープ論理(306)と、 前記バスからスヌープされた前記データ項目のパリティ
    を検査するパリティ検査論理(310)と、 前記スヌープされたデータ項目の前記パリティが誤って
    いる場合に、前記システム・メモリから下位キャッシュ
    を更新する論理(312)と、 を含む、データ処理システム。
  4. 【請求項4】前記スヌープされたデータ項目の前記パリ
    ティが正しい場合に、前記上位キャッシュ内の前記割振
    り解除されるキャッシュ位置に対応する前記下位キャッ
    シュ内のキャッシュ位置を前記データ項目を用いて更新
    する論理(314)をさらに含む、請求項3の装置。
JP03146699A 1998-02-17 1999-02-09 割振り解除方法およびデータ処理システム Expired - Fee Related JP3434462B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/024,317 US6195729B1 (en) 1998-02-17 1998-02-17 Deallocation with cache update protocol (L2 evictions)
US09/024317 1998-02-17

Publications (2)

Publication Number Publication Date
JPH11328015A JPH11328015A (ja) 1999-11-30
JP3434462B2 true JP3434462B2 (ja) 2003-08-11

Family

ID=21819971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03146699A Expired - Fee Related JP3434462B2 (ja) 1998-02-17 1999-02-09 割振り解除方法およびデータ処理システム

Country Status (5)

Country Link
US (1) US6195729B1 (ja)
JP (1) JP3434462B2 (ja)
KR (1) KR100320978B1 (ja)
CZ (1) CZ46499A3 (ja)
PL (1) PL331475A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535958B1 (en) * 1999-07-15 2003-03-18 Texas Instruments Incorporated Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US6460114B1 (en) * 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
US6343344B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation System bus directory snooping mechanism for read/castout (RCO) address transaction
US6275909B1 (en) * 1999-08-04 2001-08-14 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6353875B1 (en) 1999-08-04 2002-03-05 International Business Machines Corporation Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6349367B1 (en) 1999-08-04 2002-02-19 International Business Machines Corporation Method and system for communication in which a castout operation is cancelled in response to snoop responses
US6338124B1 (en) 1999-08-04 2002-01-08 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6343347B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
US6502171B1 (en) 1999-08-04 2002-12-31 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US6321305B1 (en) 1999-08-04 2001-11-20 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly cancelling master allocation of read data
US6324617B1 (en) 1999-08-04 2001-11-27 International Business Machines Corporation Method and system for communicating tags of data access target and castout victim in a single data transfer
US6446169B1 (en) * 1999-08-31 2002-09-03 Micron Technology, Inc. SRAM with tag and data arrays for private external microprocessor bus
US6789168B2 (en) 2001-07-13 2004-09-07 Micron Technology, Inc. Embedded DRAM cache
US6901532B2 (en) * 2002-03-28 2005-05-31 Honeywell International Inc. System and method for recovering from radiation induced memory errors
US7734582B2 (en) * 2004-11-16 2010-06-08 International Business Machines Corporation Apparatus, system, and method for cache synchronization
US20060195662A1 (en) * 2005-02-28 2006-08-31 Honeywell International, Inc. Method for deterministic cache partitioning
US7277992B2 (en) * 2005-03-22 2007-10-02 Intel Corporation Cache eviction technique for reducing cache eviction traffic
US7437597B1 (en) 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
WO2007094045A1 (ja) * 2006-02-14 2007-08-23 Fujitsu Limited 読み出し処理装置および読み出し方法
JP2008046685A (ja) * 2006-08-10 2008-02-28 Fujitsu Ltd 二重化システム及び系切り換え方法
US8127192B2 (en) * 2007-07-18 2012-02-28 International Business Machines Corporation Predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification/validation in interrupt mode
US7647539B2 (en) * 2007-07-18 2010-01-12 International Business Machines Corporation System and method of testing using test pattern re-execution in varying timing scenarios for processor design verification and validation
US7689886B2 (en) * 2007-07-18 2010-03-30 International Business Machines Corporation System and method for predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification and validation
US7747908B2 (en) * 2007-07-18 2010-06-29 International Business Machines Corporation System and method for creating different start cache and bus states using multiple test patterns for processor design verification and validation
US7661023B2 (en) * 2007-07-18 2010-02-09 International Business Machines Corporation System and method for verification of cache snoop logic and coherency between instruction & data caches for processor design verification and validation
US7739570B2 (en) * 2007-07-18 2010-06-15 International Business Machines Corporation System and method for increasing error checking performance by calculating CRC calculations after multiple test patterns for processor design verification and validation
US8185694B2 (en) * 2008-07-25 2012-05-22 International Business Machines Corporation Testing real page number bits in a cache directory
JP2012103826A (ja) * 2010-11-09 2012-05-31 Fujitsu Ltd キャッシュメモリシステム
US9727475B2 (en) * 2014-09-26 2017-08-08 Intel Corporation Method and apparatus for distributed snoop filtering
KR101842764B1 (ko) 2016-03-18 2018-03-28 연세대학교 산학협력단 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법
US11940929B2 (en) * 2019-05-24 2024-03-26 Texas Instruments Incorporated Methods and apparatus to reduce read-modify-write cycles for non-aligned writes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327643T2 (de) * 1992-12-18 2000-08-31 Advanced Micro Devices, Inc. Cachespeichersysteme
US5588131A (en) * 1994-03-09 1996-12-24 Sun Microsystems, Inc. System and method for a snooping and snarfing cache in a multiprocessor computer system
US5537575A (en) * 1994-06-30 1996-07-16 Foley; Denis System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
US5651137A (en) * 1995-04-12 1997-07-22 Intel Corporation Scalable cache attributes for an input/output bus
US5832250A (en) * 1996-01-26 1998-11-03 Unisys Corporation Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bits
JPH09237223A (ja) * 1996-03-02 1997-09-09 Toshiba Corp バスブリッジを用いたコンピュータシステム
US5860117A (en) * 1996-05-31 1999-01-12 Sun Microsystems, Inc. Apparatus and method to improve primary memory latencies using an eviction buffer to store write requests
US5900011A (en) * 1996-07-01 1999-05-04 Sun Microsystems, Inc. Integrated processor/memory device with victim data cache
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control

Also Published As

Publication number Publication date
KR19990072593A (ko) 1999-09-27
CZ46499A3 (cs) 1999-09-15
PL331475A1 (en) 1999-08-30
JPH11328015A (ja) 1999-11-30
KR100320978B1 (ko) 2002-01-18
US6195729B1 (en) 2001-02-27

Similar Documents

Publication Publication Date Title
JP3434462B2 (ja) 割振り解除方法およびデータ処理システム
JP3431824B2 (ja) アクセス方法及び処理装置
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US6366984B1 (en) Write combining buffer that supports snoop request
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US7055003B2 (en) Data cache scrub mechanism for large L2/L3 data cache structures
US5829038A (en) Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure
KR20030097871A (ko) 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템
JPH10301849A (ja) キャッシュ・コヒーレンシを維持する方法及び装置
US11687457B2 (en) Hardware coherence for memory controller
US7287122B2 (en) Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing
US6574714B2 (en) Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with write-back data cache
JP3195303B2 (ja) 命令キャッシュとデータ・キャッシュ間のコヒーレンシを維持する方法および装置
US6347363B1 (en) Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US6484230B1 (en) Method and system for speculatively processing a load instruction before completion of a preceding synchronization instruction
US7055002B2 (en) Integrated purge store mechanism to flush L2/L3 cache structure for improved reliabity and serviceability
US8108624B2 (en) Data cache with modified bit array
US12135646B2 (en) Cache coherence shared state suppression
US20070124543A1 (en) Apparatus, system, and method for externally invalidating an uncertain cache line

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080530

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080530

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090530

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees