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

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

Info

Publication number
JP2700147B2
JP2700147B2 JP1504732A JP50473289A JP2700147B2 JP 2700147 B2 JP2700147 B2 JP 2700147B2 JP 1504732 A JP1504732 A JP 1504732A JP 50473289 A JP50473289 A JP 50473289A JP 2700147 B2 JP2700147 B2 JP 2700147B2
Authority
JP
Japan
Prior art keywords
cache
command
data
address
addresses
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 - Lifetime
Application number
JP1504732A
Other languages
English (en)
Other versions
JPH02500311A (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)

Description

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

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】変換バッファ、複数の情報ブロックを記憶
    するための指令キャッシュ、データ・キャッシュ、タグ
    ・ストア、および例外あるいは割り込み指令からの戻り
    を有するコンピュータにおいて、データと指令を同期化
    する方法であって、 前記指令キャッシュに含まれる各情報ブロックに対応す
    る第1のアドレスを前記タグ・ストアに記憶する段階、 比較器を利用して、前記記憶された第1のアドレスとコ
    ンピュータによって前記データ・キャッシュに書き込ま
    れるデータの第2のアドレスを比較する段階、 前記第1のアドレスの何れかと前記第2のアドレスの何
    れかとの間の照合が前記比較する段階において検出され
    る時標識ビットを設定する段階、および 前記標識ビットが設定される時であり且つ前記例外ある
    いは割り込み指令からの戻りの実行の際に前記指令キャ
    ッシュを消去する段階、 とから成ることを特徴とする方法。
  2. 【請求項2】前記標識ビットが前記指令キャッシュに含
    まれる前記各ブロック毎のフラッグから成り、前記フラ
    ッグの設定によって指令キャッシュ内の対応するブロッ
    クの前記第1のアドレスと第2のアドレスとの間の照合
    が示され、前記指令キャッシュを消去する段階が、前記
    設定されたフラッグを有する選定されたブロックを消去
    することを特徴とする請求の範囲第1項記載の方法。
  3. 【請求項3】コンピュータの指令キャッシュおよびデー
    タ・キャッシュを同期させる装置であって、 前記指令キャッシュの第1のアドレスを記憶する手段、 前記第1のアドレスとコンピュータによって前記データ
    ・キャッシュに書き込まれているデータの第2のアドレ
    スとを比較するアドレスを比較する手段、 前記第1のアドレスの何れかと前記第2のアドレスの何
    れかとの間に照合が生じた時フラッグビットを設定して
    記憶する、前記アドレスを比較する手段に結合された設
    定記憶手段、及び フラッグビッドが設定される時に例外あるいは割り込み
    からの戻りに応答して前記指令キャッシュを消去し、前
    記指令キャッシュ及び前記設定記憶手段に結合された、
    例外あるいは割り込み指令からの戻りに応答する手段と
    から成ることを特徴とする装置。
  4. 【請求項4】前記アドレスを比較する手段において前記
    第1のアドレスの少なくとも一つが前記第2のアドレス
    の少なくとも一つと照合が生じたことを示すフラッグ
    を、前記設定記憶手段が、設定して記憶し、且つ 前記例外あるいは割り込み指令からの戻りに応答して、
    照合が生じた前記第1のアドレスの少なくとも一つに対
    応するデータを含む前記指令キャッシュの部分を消去す
    ることにより前記指令キャッシュを消去することを特徴
    とする請求の範囲第3項記載の装置。
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 JPH02500311A (ja) 1990-02-01
JP2700147B2 true 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
JPH02500311A (ja) 1990-02-01
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
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
US6047357A (en) High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy
KR100278328B1 (ko) 캐시 미스 버퍼
JP2822588B2 (ja) キャッシュメモリ装置
US6038647A (en) Cache memory device and method for providing concurrent independent multiple accesses to different subsets within the device
US5555392A (en) Method and apparatus for a line based non-blocking data cache
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
JP3718302B2 (ja) 命令取り出し方法および装置
EP0019358B1 (en) Hierarchical data storage system
JPS624745B2 (ja)
JP2005202986A (ja) 階層化された記憶項目とキャッシュタグを単一キャッシュアレイ構造に格納するキャッシュメモリ装置及び方法
KR19990077432A (ko) 연관성을이용한가변캐시크기에대한고성능캐시디렉토리어드레싱스킴
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
JP3236287B2 (ja) マルチプロセッサシステム
JPH07104816B2 (ja) コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置
US5218687A (en) Method and apparatus for fast memory access in a computer system
KR100326989B1 (ko) 스누핑 포트를 사용하는 프리페치 캐시 질의 방법 및 시스템
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US4648033A (en) Look-aside buffer LRU marker controller
JP2700147B2 (ja) 命令キャッシュ・フラッシュ・オン・rei制御
KR100218616B1 (ko) 현재의 트랜잭션동안 다음 어드레스를 제공하기 위한 전송방법 및 시스템
EP0474356A1 (en) Cache memory and operating method
JPH0756808A (ja) データキャッシュバッファ及び記憶方法
JPS63278158A (ja) 連想キャッシュ・メモリー
JP2700148B2 (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