JPH02500311A - 命令キャッシュ・フラッシュ・オン・rei制御 - Google Patents

命令キャッシュ・フラッシュ・オン・rei制御

Info

Publication number
JPH02500311A
JPH02500311A JP50473289A JP50473289A JPH02500311A JP H02500311 A JPH02500311 A JP H02500311A JP 50473289 A JP50473289 A JP 50473289A JP 50473289 A JP50473289 A JP 50473289A JP H02500311 A JPH02500311 A JP H02500311A
Authority
JP
Japan
Prior art keywords
cache
data
address
instruction cache
command
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
JP50473289A
Other languages
English (en)
Other versions
JP2700147B2 (ja
Inventor
ラマヌジャン ラジ カナン
バノン ピーター ジョセフ
スティリー シモン カール ジュニア
Original Assignee
ディジタル イクイプメント コーポレーション
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 ディジタル イクイプメント コーポレーション filed Critical ディジタル イクイプメント コーポレーション
Publication of JPH02500311A publication Critical patent/JPH02500311A/ja
Application granted granted Critical
Publication of JP2700147B2 publication Critical patent/JP2700147B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (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)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 命令キャッシュ・フラッシュ・オン・REI制御技 術 分 野 本発明はディジタル・コンピュータおよびそのアーキテクチャに関し、特にコン ピュータ・システムにおいて使用されるキャッシュ・メモリに関する。
背 景 技 術 高稼動速度の中央処理装置(CPUs)は極めて早いアクセスおよび検索特性を 必要とする。そして、これらの要求を満たすメモリは小さな記憶容量で、極めて 早いアクセスおよび検索特性を有する、一般にキャッシュ・メモリとして知られ ている乱アクセス・メモリ(RAMs)から成る。キャッシュはCPUが直ちに 必要とするデータおよび指令を記憶するのに用いられる。大きな主メモリは現実 行プログラムの剰余部を記憶し、小さなキャッシュ・メモリには記憶できないデ ータおよび指令をCPUおよびキャッシュ・メモリに供給する。このCPUに密 接に連結された高速なメモリを有するメモリINのシステムは、コンピュータ・ システムの高稼動速度化を可能にする。
公知のキャッシュの一例は2つの個別キャッシュ、データ・キャッシュおよび指 令キャッシュを用いて、CPUのデータ稼動および指令稼動をそれぞれのキャッ シュで支援する。この構成によって、コンピュータの稼動速度は増加するが、デ ータがデータ・キャッシュまた指令キャッシュにおいて変化あるいは更新される 可能性がある。この結果、不適正指令が実行される可能性がある。
r不適正jの語は更新されなかった指令を示すのに用いられる。
本発明の目的は別個のデータ・キャッシュおよび指令キャッシュの内容をいずれ かのキャッシュの消去量を最小に押えて同期させることである。
発 明 の 開 示 上記および他の目的は本発明によって実現され、本発明においては、指令キャン シュに含まれるアドレスのメモリが保持される。
データがデータ・キャッシュに書き込まれると、記憶されたアドレスの内容と新 しいデータ間で比較がなされる。そして、照合され、次には例外あるいは割り込 みからの戻り(REI)と呼ばれる指令が実行され、指令キャッシュは消去され る。この方法において、指令キャッシュは古い指令が実行される機会がある時の み消去される。本発明の長所は、システムにすでに存在する指令を用L)ること かできる点である。
上記および他の目的そして長所は添付図面に基づく以下の記述から更に明確にさ れる。
図面の簡単な説明 第1図は本発明に用いられるコンビエータ・システムのブロック図である。
第2図は第1図に示されるコンピュータ・システムのキャッシュ・メモリ装置の ブロック図である。
発明を実施するための最良の形態 本発明の全稼動環境は第1図に示され、マルチプロセッサ・コンピュータ・シス テム1が図解されている。複数の処理装置、本実施例では10.12.14.1 6の4つが、キャッシュ・メモリ装置i20.22.24.26にそれぞれ接続 されている。キャッシュ・メモリ装置20.22.24.26はデータを受信し 、本メモリ30に送信する。最終的に、本メモリ3oはデータを受信し、入出力 バス40を経て種々の入出力袋W(図示せず)に送信する。
単一キ島ノシュ・メモリ装置の機能的構成要素は第2図二二示される。キャッシ ュ・メモリ装置2oは、指令キヤツシユ5o、データ・キャッシュ60、変換バ ッファ7o、ハックマツプ8o、メモリ・パス・インターフェイス90、バッフ ァ・キャッシュ100およびアイ・キャッシュPAタグ・ストア110がら成る 。
これらの構成要素は単一のモノリシック装置に内蔵されている必要はない。むし ろ、構成要素は複数のモジュールおよび回路基板に設置することができる。しか し、それらの機能は密接な相互関係にあるので、ここでは1つのユニットとして 扱われる。
データ・キャッシュ60は4にバイトであり、直接マツプ・仮想アドレス・キャ ンシュである。そしてそのアクセス時間は1サイクルのオーダである。
指令キャッシュ50はまた4にバイトであり、仮想アドレス・タグを有する直接 マツプ・仮想アドレス・キャッシュである。指令の流れにある指令を取り出すの に使用され、1サイクルのアクセス時間である。
指令キャッシュ50とデータ・キャッシュ60は変換バッファ′ 70に接続さ れている。変換バッファ70は直接マツプであり、プロセス・スペースとシステ ム・スペースに均等に分割された4にエントリを含んでいる。仮想アドレスを全 データ・キャッシュ標準および指令キャッシュ・ミス用の物理的アドレスに変換 するのに使用される。また全指令キャッシュ・エントリ用の物理的タグを存して いる。
変換バッファ70はバッファ・キャッシュ100に連結されている。バッファ・ キャッシュ100は1Mバイトの大きさであり、直接マツプで物理的にアドレス され、4サイクルのアクセス時間である。バッファ・キャッシュ100は指令キ ャッシュ50あるいはデータ・キャッシュ60のいずれよりも大きく、そのシス テムは2つの小さなキャッシュの内容が常に大きなキャッシュの適当なサブセン トであるように設定されている。こうして、無効のあるいは他の要求がメモリ・ バス・インターフェイス90から受信される時、もしそのデータあるいは指令が バッファ・キャッシュ100において発見できないと、それを指令・キャッシュ 50あるいはデータ・キャッシュ60のいずれかでチェックする必要がない。
バックマツプ80はまた変換バッファ70に連結され、データ・キャッシュ中の 同義語を防ぐのに使用される。文脈中の同義語は同一の物理的アドレスを有する 2つの仮想アドレスで決定される。
指令は連続的に使用される傾向がある。換言すると、長いプログラムにおいて最 初の指令が使用されると、次の指令がまた必要とされやすい、従って、指令は一 般的に先取りされてCPUでの使用に備えてパイプライン中に投入される。
2つのキャッシュにおいて、同一のデータが両方のキャッシュに現われ、書き込 みがデータ・キャッシュ60になされてそのデータが変更される可能性がある。
この状況において、不適正なデータ処理が意図せずに行なわれる。新しいデータ をデータ・キャッシュ60に送信し、同時にそのデータで、指令キャッシュ50 を更゛新するのは、システムの稼動速度が遅くまたハードウェアに費用がかかる ので、実用的ではない、書き込みがデータ・キャッシュ60になされ同じデータ が指令キャッシュ50に存在するたびごとに指令キャッシュ50をフラッシュす ることが考慮されてきた。すでに実用されている公知のマイクロコード指令は例 外あるいは割り込みからの戻り(RET)と呼ばれ、指令流れおよび指令流れ量 を、指令キャッシュからすでに取り出された指令のパイプラインを除去すること で同期化する特性を有している。この指令は、1986年発行のjヴアッシス・ アーキテクチャ・ハンドブックJの9〜56ページに記述され、ここでも引用さ れている。
データ・キヤツシユに書き込みがなされ修正指令流れが実行される前に、REI の実行を要求することによって、古い指令は実行されない。REIコマンドに基 づき指令キャッシュ50をパイプラインに沿ってフラッシュすることによって不 適正な指令を実行する可能性は完全に除去される。しかし、この方法は、必要が ない時でも、指令キャッシュ50を余りにも頻繁にフラッシュし、その結果シス テムの速度を遅らせる。
指令キャッシュ50がフラッシュされる回数を最小にしかつ適正なデータを保持 するために、本発明は指令キャッシュ50に含まれるデータの各ブロックに対し て物理的アドレスのタグ・ストア110を設けている。タグ・ストア100は変 換バッファ7゜と連携している。そのタグは指令キャッシュ50にあるデータの 全ての物理的アドレスを示す。
データがデータ流れに置かれると、その物理的アドレス・タグは変換バッファ7 0のタグ・ストアと比較される。そして照合され、指令キャッシュ50によるア ドレスの1つに含まれるデータが新しいデータによって変更あるいは書き込みさ れていることが示される。照合によってアイ・キャッシュ・フラッシュ・オン・ RET・フラッグ120と呼ばれるハードウェア・ビットが設定される。このフ ラッグが設定されると、次にREI指令が実行され指令キャッシュ50がフラッ シュされることを示す。REIが実行される時、そのフラッグが設定されないと 指令キャッシュ50はフラッシュされない。この方法において、キャッシュは指 令キャッシュ50の内容が実際に変更される時のみフラッシュされる。指令流れ の先取り・パイプライン通信量はまたREI指令によって消去され、これによっ て指令とデータ・キャッシュ間の共時性が得られる。最終的に、指令キャッシュ 5oがフラッシュされる時、アイ・キャッシュ・フラッシュ・オン・REIビッ トもまた消去され、次に同し状況が発生しても対応できる。
他の実施例において、指令キャッシュ5oの各プロ、りは別個のアイ・キャッシ ュ・フラッシュ・オン・REI・フラッグ120を有している。この実施例にお いて、書き込みがなされると、書き込みのアドレスは指令キャッシュ5oにある データ・ブロックの全てのアドレスと比較される。そして照合され、この特定ア ドレス・ブロックに対するフラッグが設定される。しかし、指令キャッシュ・ブ ロックが取り替えられるが修正される時はいつでも、対応フラングは、もしそれ が設定されると、指令キャッシュが変更されるブロックを含んでいないとして消 去される。
この時、特定ブロックに対するフラッグが設定され、その「フラッグが設定され たLブロックは変位あるいは変更され、こうして指令キャッシュが変更されたブ ロックを含んでいないとしてフラッグを消去し、続いてREI指令が生じると、 フラッグは設定されず指令キャッシュはフラッシュされない。この方法は指令キ ャッシュに記憶される各個別データ・ブロックに対して付加的なフラッグを必要 とするので、システムの付加を増加させる。しかし、この方法の長所は指令キャ ッシュのフラッシュ回数を減らすことで補われる。
この方法を可能にする更に2つ実施例がある。1つは、REI指令が実行され任 意のフラッグが設定されると、全指令キャッシュがフラッシュされる。もう1つ は、フラッグが設定されたブロックのみがフラッシュされ、残りのブロックはそ のままにされる。
本発明は前述した他の方法と比較して非常に大きな割合で指令キャッシュのフラ ッシュ回数を減らし、これによってシステ去の稼動速度を顕著に増加させる。試 験の結果、指令キャッシュのフラッシュ発生は本発明を用いることによって99 %減少している。
以上の記述において、本発明は具体的な実施例に関して述べられている。しかじ 、添付される特許請求の範囲に記述される精神と範囲から逸脱しない限り、種々 の変形例および変更例が実施されることは明らかである。従って、前記の記述と 図面は拘束するものではなく、むしろ例証とみなされるべきである。
国際調査報告

Claims (3)

    【特許請求の範囲】
  1. 1.変換バッファ、指令キャッシュとデータ・キャッシュおよび例外あるいは割 り込み指令からの戻りを有するコンピュータにおいて、データと指令を同期化す る方法であって、指令キャッシュに含まれる各ブロックのアドレスを記憶する段 階、 前記記憶されたアドレスと前記データ・キャッシュに書き込まれるデータのアド レスを比較する段階、前記アドレスの照合が前記比較段階において検出される時 標識を設定する段階、 前記標識が設定される時および前記例外あるいは割り込みからの戻りの実行中に 前記指令キャッシュを消去する段階、とから成ることを特徴とする方法。
  2. 2.標識が指令キャッシュに含まれる前記各ブロックに対するフラッグから成り 、前記指令キャッシュを消去する段階が各ブロックに対するフラッグに従って各 ブロックを消去することを特徴とする請求の範囲第1項記載の方法。
  3. 3.コンピュータの少なくとも2つのキャッシュを同期させる装置であって、 前記キャッシュのアドレスを記憶する手段、記憶手段にあるアドレスと情報が少 なくとも前記キャッシュの1つに書き込まれたアドレスと比較する手段、前記ア ドレスの照合が生じた時フラッグを設定する手段、例外あるいは割り込みから復 帰する手段、前記フラッグが設定され前記復帰手段が例外あるいは割り込みから 復帰する時、前記キャッシュを消去する手段、とから成ることを特徴とする装置 。
JP1504732A 1988-04-01 1989-03-30 命令キャッシュ・フラッシュ・オン・rei制御 Expired - Lifetime JP2700147B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17672888A 1988-04-01 1988-04-01
US176,728 1988-04-01

Publications (2)

Publication Number Publication Date
JPH02500311A true JPH02500311A (ja) 1990-02-01
JP2700147B2 JP2700147B2 (ja) 1998-01-19

Family

ID=22645592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1504732A Expired - Lifetime JP2700147B2 (ja) 1988-04-01 1989-03-30 命令キャッシュ・フラッシュ・オン・rei制御

Country Status (5)

Country Link
EP (1) EP0362366B1 (ja)
JP (1) JP2700147B2 (ja)
CA (1) CA1315004C (ja)
DE (1) DE68924230T2 (ja)
WO (1) WO1989009442A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640526A (en) * 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US7523260B2 (en) 2005-12-22 2009-04-21 International Business Machines Corporation Propagating data using mirrored lock caches

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
US4208716A (en) * 1978-12-11 1980-06-17 Honeywell Information Systems Inc. Cache arrangement for performing simultaneous read/write operations
US4426682A (en) * 1981-05-22 1984-01-17 Harris Corporation Fast cache flush mechanism
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
EP0156307A3 (en) * 1984-03-30 1988-04-20 Four-Phase Systems Inc. Pipelined processor having dual cache memories

Also Published As

Publication number Publication date
CA1315004C (en) 1993-03-23
EP0362366A1 (en) 1990-04-11
WO1989009442A1 (en) 1989-10-05
DE68924230T2 (de) 1996-05-15
DE68924230D1 (de) 1995-10-19
EP0362366A4 (en) 1991-09-25
JP2700147B2 (ja) 1998-01-19
EP0362366B1 (en) 1995-09-13

Similar Documents

Publication Publication Date Title
US5214770A (en) System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command
JP3587591B2 (ja) キャッシュ・ミスを制御する方法およびその計算機システム
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
JP4008826B2 (ja) オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置
JP3239218B2 (ja) キャッシュ管理システム
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
JP3323212B2 (ja) データプレフェッチの方法およびその装置
US5708792A (en) Method and apparatus for a coherent copy-back buffer in a multipressor computer system
JP3718302B2 (ja) 命令取り出し方法および装置
JPH07506921A (ja) コンピュータ・システムにおける主記憶装置のアクセス時間とキャッシュ・メモリのサイズを最小限にするためのキャッシュへの先取り
KR930022222A (ko) 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법
JPH07253926A (ja) キャッシュ・ミスによる時間ペナルティ減少方法
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
JPH08272693A (ja) 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US20040123069A1 (en) Very high speed page operations in indirect accessed memory systems
US5920889A (en) Apparatus and method for write miss processing in a copy-back data cache with an allocating load buffer and a non-allocating store buffer
US4648033A (en) Look-aside buffer LRU marker controller
JPH0743671B2 (ja) キャッシュ・メモリ制御方式
US5619673A (en) Virtual access cache protection bits handling method and apparatus
JPH02500311A (ja) 命令キャッシュ・フラッシュ・オン・rei制御
JP2002041358A (ja) プロセッサシステム
JP3006204B2 (ja) 情報処理装置
JPH0553912A (ja) キヤツシユメモリの制御方法
JPH05158793A (ja) 並列キャッシュメモリ

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

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091003

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

Year of fee payment: 12