JP2968509B2 - コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法 - Google Patents

コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法

Info

Publication number
JP2968509B2
JP2968509B2 JP10053904A JP5390498A JP2968509B2 JP 2968509 B2 JP2968509 B2 JP 2968509B2 JP 10053904 A JP10053904 A JP 10053904A JP 5390498 A JP5390498 A JP 5390498A JP 2968509 B2 JP2968509 B2 JP 2968509B2
Authority
JP
Japan
Prior art keywords
cache
main memory
address
data
instruction
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
JP10053904A
Other languages
English (en)
Other versions
JPH10293720A (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.)
ESU TEII MAIKUROEREKUTORONIKUSU Ltd
Original Assignee
ESU TEII MAIKUROEREKUTORONIKUSU Ltd
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 ESU TEII MAIKUROEREKUTORONIKUSU Ltd filed Critical ESU TEII MAIKUROEREKUTORONIKUSU Ltd
Publication of JPH10293720A publication Critical patent/JPH10293720A/ja
Application granted granted Critical
Publication of JP2968509B2 publication Critical patent/JP2968509B2/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テム、及びキャッシュの内容のコヒーレンシー状態を変
更する方法に関するものである。
【0002】
【従来の技術】この技術で周知のように、あるデータお
よびコードに対するアクセス待ち時間を短縮し、かつそ
のデータおよびコードのために使用するメモリの帯域幅
を狭くするために、コンピュータシステムにおいてキャ
ッシュメモリが用いられる。キャッシュメモリはメモリ
アクセスを遅らせ、まとめ、かつ集合させることができ
る。
【0003】キャッシュメモリはコンピュータのプロセ
ッサと主メモリとの間で動作する。プロセッサで実行し
ているプロセッサにより求められるデータと命令のデー
タとの少なくとも一方を、そのプロセスの実行中にキャ
ッシュに保持することができる。キャッシュのアクセス
は主メモリのアクセスより通常はるかに迅速である。プ
ロセッサがキャッシュメモリ内の求められているデータ
項目または命令項目を見つけないときは、プロセッサは
主メモリを直接にアクセスしてそれを検索し、求められ
ているデータ項目または命令項目がキャッシュにロード
される。キャッシュメモリを使用および再び充たすため
の種々の既知のシステムが存在する。
【0004】実時間システムでキャッシュに依存するた
めには、キャッシュの動作を予測できる必要がある。す
なわち、キャッシュ内で見出されることが予測される特
定のデータ項目または特定の命令が、実際にそこに見出
される合理的な確実性に富む必要がある。既存の再充填
機構のほとんどは、求められているデータ項目または命
令をキャッシュ内に置くことを通常つねに試みる。これ
を行うために、既存の機構は他のデータ項目または他の
命令をキャッシュから削除しなければならない。そうす
ると、後で使用するために存在することが予測されてい
る項目が削除される結果となることがある。これは、多
重タスキングの場合、または割り込みプロセスあるいは
その他の予測できないプロセスを取り扱わなければなら
ないプロセッサの場合に、とくにそうである。
【0005】コンピュータシステムは2つ以上のプロセ
ッサを持つことがあり、各プロセッサはそれ自身のキャ
ッシュを持つことができる。あるいは、プロセッサは複
数のCPUを持つことができる。各CPUはそれ自身の
キャッシュを有する。しかし、それらのキャッシュは単
一のメモリ資源を普通にアクセスする。
【0006】図7は、それ自身のキャッシュ1とキャッ
シュ2をおのおの持つ2つのプロセッサCPU1とCP
U2がある場合を示す。それらのキャッシュは1つのメ
モリ資源MEMを共有する。図8はそのような状況にお
いて起きることがあるものを示す。主メモリ内のアドレ
ス1010について考えることにする。これはキャッシ
ュ1と2のキャッシュ記憶場所10にマップされる。ア
ドレス1010に記憶されている値V3は初期値Xを持
っていた。値V3=Xは最初は両方のキャッシュのキャ
ッシュ記憶場所に記憶されていた。その段階では、デー
タ項目V3は「見ることが」できた、すなわち、アドレ
ス1010をアクセスしているいずれのプロセッサもそ
れのキャッシュから値V3=Xを検索する。しかし、C
PU1はプロセスを実行し、値V3=Xを変更し、これ
をCASH1の記憶場所10へ戻していた。今は主メモ
リ内の値V3=Xは「汚れている」−すなわち、それは
V3の現在の値をもはや反映しない。更に、キャッシュ
2内の値V3=Xは「古い」、すなわち、それは真の値
とは異なる。この状況は、CPU2が値V3を検索しよ
うとする前に訂正する必要がある。その理由は、もし訂
正しないとV3=Xを誤って検索するからである。
【0007】このようにして、いくつかのプロセッサお
よび装置がメモリを正しく共用できるようにするため
に、キャッシュ・コヒーレンシー制御が求められる。こ
れは下記のようにして行うことができる。 1.自動コヒーレンシー。ハードウェアを追加すること
により、どのプロセッサまたはどの装置が書き込んだか
とは無関係に、最後に書き込まれた値をロード(load
s)が検索できることが保証される。自動コヒーレンシ
ーの機能的ではあるが、性能が低い、実現はキャッシュ
を不能にすることであることに注目されたい。そのよう
な追加のハードウェアを図7に参照記号 COHERE で示
す。 2.ソフトウエア・コヒーレンシー。キャッシュとメモ
リとの間のデータの転送を制御するために特殊なコード
列を用いる。それらのコード列によりコヒーレンシーの
精密な制御と、キャッシュの効率的な使用が可能にな
る。
【0008】データの可視性はキャッシュが自動的にコ
ヒーレントであるか否かに依存する。キャッシュが自動
的にコヒーレントでないとすると、メモリの内容と、そ
のメモリの自身のキャッシュの内容だけがプロセッサに
とって見える。適切な時にデータがメモリに確実に書込
まれるようにするために、ソフトウエアは協力しなけれ
ばならない。キャッシュが自動的にコヒーレントであれ
ば、任意のプロセッサにより最後に書込まれた値を他の
全てのプロセッサが見ることができる。
【0009】<可視性の定義> 可視 データ項目のアドレスからのロードがその項目
を戻すならば、そのデータ項目をプロセッサが見ること
ができる。 古い キャッシュ内の値が最後に書込まれた値とは異
なるならば、データ項目は古い。 汚れ データ項目が主メモリに関してキャッシュ内で
修正されたならば、そのデータ項目は汚れている。
【0010】キャッシュ内の記憶場所をクリアすること
をプロセスが希望するが、そのプロセスはそのキャッシ
ュ記憶場所に記憶されているアドレスをアクセスせず、
既存のソフトウエア・コヒーレンシー技術が、カーネル
モードと呼ばれる特殊な、特権プロセッサ動作モードの
使用を求める。正常なユーザーモードでは、カーネルモ
ードへの転送によること以外のソフトウエア・コヒーレ
ンシー技術を用いて、キャッシュをコヒーレントにする
ことがそのような状況においては可能でない。
【0011】本発明の1つの面によれば、一連の命令を
実行することによりプロセスを実行するプロセッサと、
命令、および命令に対するデータを保持する主メモリ
と、プロセッサと主メモリとの間のメモリアクセス経路
中に接続され、それぞれ主メモリ内の複数のアドレスの
うちのいずれかのデータをロードすることができる複数
の記憶場所を有するキャッシュとを備え、プロセッサ
は、(i)キャッシュ内の記憶場所の内容に対して実行
すべきオペレーションと、(ii)主メモリ内のアドレ
スと、を指定するキャッシュ・コヒーレンシー命令を含
む一連の命令を実行することができ、さらにプロセッサ
は、キャッシュ・コヒーレンシー命令を実行する際に、
キャッシュ・コヒーレンシー命令が指定する主メモリ内
のアドレスのデータがキャッシュ内の記憶場所に保持さ
れているか否かとは無関係に、実行中のプロセスでキャ
ッシュ・コヒーレンシー命令が指定する主メモリ内のア
ドレスを通常アクセスすることによりそのアドレスのデ
ータを主メモリからロードすることができる記憶場所の
内容に対して、キャッシュ・コヒーレンシー命令が指定
するオペレーションを実行する実行ユニットを含んでい
る、コンピュータシステムが提供される。
【0012】キャッシュの各記憶場所の内容は、主メモ
リ内のアドレスと、主メモリ内のそのアドレスに記憶さ
れているデータとを含むことができる。
【0013】上記キャッシュ・コヒーレンシー機構は、
キャッシュに記憶されている特定のアドレスについてキ
ャッシュ・コヒーレンシーオペレーションを実行するこ
とを要求する必要がないという利点を持つ。そのキャッ
シュ記憶場所にマップする任意のアドレスを指定でき、
プロセッサは命令がそのアドレスを通常アクセスするな
らばその命令を実行することができる。したがって、実
行しているプロセスがキャッシュ・コヒーレンシー命令
の主メモリ内の指定されたアドレスをアクセスしなけれ
ばキャッシュ・コヒーレンシー・オペレーションが実行
されないから、どのような保護モードも自動的に考慮に
入れる。
【0014】1つの種類のキャッシュ・コヒーレンシー
命令は、キャッシュ内の記憶場所に保持されているデー
タを主メモリ内のアドレスにライトバックするフラッシ
ュ命令である。
【0015】他の種類のキャッシュ・コヒーレンシー命
令は、キャッシュ内の記憶場所の内容をクリアする除去
命令である。
【0016】キャッシュ・コヒーレンシー命令は主メモ
リ内の一連のアドレスを指定し、実行中のプロセスでキ
ャッシュ・コヒーレンシー命令が指定する主メモリ内の
一連のアドレスを通常アクセスすることによりその一連
のアドレスのデータをロードすることができる記憶場所
の内容に対して、キャッシュ・コヒーレンシー命令が指
定するオペレーションを実行することができる。
【0017】キャッシュは複数のキャッシュ区画に区分
することができる。その場合、アクセスされた主メモリ
内のアドレスのデータがキャッシュ区画のいずれにロー
ドすることができるかはアクセスされた主メモリ内のア
ドレスに基づいて決定される。
【0018】主メモリはページで編成することができ
る。各ページは一連のアドレスを含む。その場合には、
キャッシュ・コヒーレンシー命令はオペレーションを実
行すべき主メモリ内のページを指定することができる。
オペレーションは指定されたページ内の一連のアドレス
のおのおのについて実行される。
【0019】その場合には、各ページのサイズが常に個
々のキャッシュ区画のサイズ以上であるならば、ページ
を指定することによりキャッシュ区画を常に完全にクリ
アできることを決定することができる。
【0020】キャッシュ、またはキャッシュ区画は直接
マップすることができる。しかし、他の結合(associat
ivities)が可能である。
【0021】本発明は、主メモリ内の複数のアドレスの
データをキャッシュの各記憶場所にロードすることがで
きるコンピュータシステムにおいて、主メモリに保持さ
れているデータに関してキャッシュの内容のコヒーレン
シー状態を変更する方法であって、 (i)キャッシュ内の記憶場所の内容に対して実行すべ
きオペレーションと、 (ii)主メモリ内のアドレスとを指定するキャッシュ
・コヒーレンシー命令を実行する過程と、キャッシュ・
コヒーレンシー命令に応じて、キャッシュ・コヒーレン
シー命令が指定する主メモリ内のアドレスのデータがキ
ャッシュ内の記憶場所に保持されているか否かとは無関
係に、実行中のプロセスでキャッシュ・コヒーレンシー
命令が指定する主メモリ内のアドレスを通常アクセスす
ることによりそのアドレスのデータを主メモリからロー
ドすることができる記憶場所の内容に対して、キャッシ
ュ・コヒーレンシー命令が指定するオペレーションを実
行する過程とを備える、主メモリに保持されているデー
タに関してキャッシュの内容のコヒーレンシー状態を変
更する方法も提供する。
【0022】
【0023】
【0024】好適な実施の形態では、プロセッサはユー
ザー動作モードと、特権(カーネル)動作モードとを有
する。キャッシュ・コヒーレンシー命令はユーザーモー
ドで実行することができる。
【0025】
【発明の実施の形態】以下、図面を参照して本発明を実
施の形態について説明する。
【0026】図1はキャッシュ装置を組み込んだコンピ
ュータのブロック図である。このコンピュータはCPU
2を有する。そのCPU2は、主メモリ6から項目をア
クセスするためにアドレスバス4に接続され、かつ項目
をCPU2に戻すためにデータバス8に接続される。デ
ータバス8をここではデータバスと呼んでいるが、それ
は、主メモリ6からの項目が実際のデータ、またはCP
Uが実行する命令を構成しようが、構成しまいが、それ
らの項目を戻すためのものであることがわかるであろ
う。ここで説明する装置は命令キャッシュおよびデータ
キャッシュに使用するために適当なものである。よく知
られているように、データキャッシュと命令キャッシュ
を別々に設けることもできれば、データキャッシュと命
令キャッシュを組み合わせることもできる。ここで説明
しているコンピュータでは、アドレッシングのやり方は
いわゆる垂直アドレッシング法である。アドレスはライ
ンインページ・アドレス4aと、垂直ページアドレス4
bとに分割される。垂直ページアドレス4bは翻訳ルッ
クアサイド・バッファ(TLB)10に供給される。ラ
インインページ・アドレス4aはルックアップ回路12
に供給される。翻訳ルックアサイド・バッファ10は、
垂直アドレス4bから変換された実ページアドレス14
をルックアップ回路12に供給する。ルックアップ回路
12はアドレスバス16およびデータバス18を介して
キャッシュアクセス回路20に接続される。また、デー
タバス18は主メモリ6からのデータ項目または命令の
ためのものにすることができる。キャッシュアクセス回
路20はアドレスバス24と、データバス26と、制御
バス28とを介してキャッシュメモリ22に接続され
る。制御バス28はキャッシュメモリのための交換情報
を転送する。補充装置(refill engine)30が補充バ
ス(refill bus)32を介してキャッシュアクセス回路
20に接続される。補充バス32は交換情報と、データ
項目(または命令)と、アドレスとを補充装置とキャッ
シュアクセス回路との間で転送する。補充装置32自体
は主メモリ6に接続される。
【0027】補充装置30はフル実アドレス34を翻訳
ルックアサイド・バッファ10から受ける。フル実アド
レス34は主メモリ6内の項目の実ページアドレスと、
ラインインページ・アドレスとを含む。また、補充装置
30は翻訳ルックアサイド・バッファ10からの区画標
識を4ビットバス36を介して受ける。区画標識の機能
については後で説明する。
【0028】最後に、補充装置30はミス信号を線38
を介して受ける。ミス信号は、後で詳しく説明するやり
方でルックアップ回路12で発生される。
【0029】ここで説明しているキャッシュメモリ22
は直接マップされるキャッシュである。すなわち、それ
は複数のアドレス可能な記憶場所を有する。各記憶場所
はキャッシュの1つの行を構成する。各行は主メモリか
らの項目と、その項目の主メモリ内のアドレスの部分と
を含む。各行に記憶されているデータ項目の主メモリ内
のアドレスの最下位ビットを表すビットの数により構成
された行アドレスにより、各行はアドレスすることがで
きる。たとえば、8つの行があるキャッシュ・メモリで
は、それらの行を一意に特定するために各行アドレスは
3ビット長である。たとえば、キャッシュの第2の行の
行アドレスは001であるから、ビット001で終わる
アドレスを持つ主メモリからの任意のデータを保持する
ことができる。明らかに、主メモリでは、そのようなア
ドレスが多数存在するために、キャッシュメモリ内のそ
の行に保持されるデータ項目が潜在的に多数存在する。
もちろん、キャッシュメモリはその行には1度にただ1
つのデータ項目を保持することができる。
【0030】ここで図1に示すコンピュータシステムの
動作を説明するが、説明に際しては区画標識が存在しな
いものとする。CPU2は主メモリ6内のアドレスを用
いて主メモリから項目を要求し、そのアドレスをアドレ
スバス4を介して送る。仮想ページ数が翻訳ルックアサ
イド・バッファ10に供給される。そのバッファはその
ページ数を、所定の仮想−実ページ翻訳アルゴリズムに
従って実ページ数14に翻訳する。実ページ数14は、
CPU2により送られた元のアドレスのラインインペー
ジ数4aとともにルックアップ回路12に供給される。
キャッシュアドレス回路20はキャッシュメモリ22を
アドレスするためにラインインページ・アドレスを用い
る。ラインインページ・アドレスは、キャッシュメモリ
22内の行アドレスに等しいメモリ内の主メモリの1組
の最下位ビット(終りのビットを必ずしも含まない)を
含む。ラインインページ・アドレスにより特定された行
アドレスにおけるキャッシュメモリ22の内容(データ
項目(または命令)とデータ項目(または命令)の主メ
モリ内のアドレスである)がルックアップ回路12に供
給される。そこで、キャッシュメモリから検索されたア
ドレスの実ページ数を、翻訳ルックアサイド・バッファ
10から供給された実ページ数と比較する。それらのア
ドレスが一致したならば、キャッシュメモリのその行に
保持されていたデータ項目をデータバス8に沿ってCP
Uへ戻させるヒットをルックアップ回路は指示する。し
かし、キャッシュメモリ22内のアドレスされた行に保
持されていたアドレスの実ページ数が、翻訳ルックアサ
イド・バッファ10から供給された実ページ数に一致し
ないとすると、補充装置30への線38にミス信号が発
生される。翻訳ルックアサイド・バッファ10からバス
34を通じて供給される実アドレスを用いて、主メモリ
6から正しい項目を検索することが補充装置30のタス
クである。主メモリ6からひとたびフェッチされたデー
タ項目は、補充バス32を介してキャッシュアクセス回
路20に供給され、主メモリ内のアドレスと共にキャッ
シュメモリ22にロードされる。CPUが実行を継続で
きるように、データ項目自体もデータバス8に沿ってC
PUへ戻される。上で簡単に述べた直接マップ・キャッ
シュメモリでは、主メモリ6から再び呼び出されたデー
タ項目およびそれのアドレスが、データ項目が検査のた
めに最初にアクセスされた記憶場所にロードされること
が明らかであろう。すなわち、そのデータ項目は、それ
を受けることができて、主メモリ内のラインインページ
・アドレス中の最下位ビットセットに一致する行アドレ
スを持つ記憶場所にのみ重ね書きされる。もちろん、キ
ャッシュメモリにもともと記憶されているデータ項目の
ページ数と、それにいまロードすべきデータ項目とは異
なる。この「1対1マッピング」はキャッシュの有用性
を制限する。
【0031】キャッシュシステムに一層高い柔軟性を持
たせるために、nウエイセット連想キャッシュメモリが
開発されている。4ウエイセット連想キャッシュメモリ
の例を図2に示す。このキャッシュメモリは4つのバン
クB1、B2、B3、B4に分割される。それらのバン
クは、図2に1つの行について概略的に示しているよう
に、共通行アドレスにより行ごとに共通にアドレスする
ことができる。しかし、その行は、各バンクに1つず
つ、合計4つのキャッシュエントリを含む。バンクB1
のキャッシュエントリはバス26aに出力され、バンク
B2のキャッシュエントリはバス26bに出力され、以
下バンクB3、B4についても同様である。そうする
と、1つの行アドレス(またはラインインページ・アド
レス)に対して4つのキャッシュエントリが認められ
る。行がアドレスされるたびに、4つのキャッシュエン
トリが出力され、それらのエントリのアドレスの実ペー
ジ数が、翻訳ルックアサイド・バッファ10からの実ペ
ージ数と比較されて、どのエントリが正しいエントリで
あるかを判定する。このキャッシュに対してアクセスを
試みたときにキャッシュミスがあったとすると、補充装
置30が求められた項目を主メモリ6から検索し、たと
えば、特定の項目がキャッシュに保持されている長さを
基にする補充アルゴリズム、またはシステムの他のプロ
グラム・パラメータに従って、その項目を1つのバンク
の正しい行にロードする。そのような交換アルゴリズム
は知られているのでここではこれ以上は説明しない。
【0032】しかし、nウエイセット連想キャッシュ
(ここにnはバンクの数で、図2では4に等しい)は、
シングル直接マップシステムの改良ではあるが、いぜん
として柔軟性に欠け、更に重要なことに、キャッシュの
動作を正しく予測することができない。
【0033】ここで説明しているシステムは、より柔軟
なキャッシュ補充システムによりコンピュータがキャッ
シュメモリを最適に使用できるようにするキャッシュ区
画機構を提供するものである。
【0034】ここで説明しているシステムにおける翻訳
ルックアサイド・バッファ10では、各TLBエントリ
に仮想ページ数と、実ページ数と、情報シーケンスとが
関連づけられる。エントリの例を図3に示す。ここに、
VPは仮想ページ数を表し、RPは実ページ数を表し、
INFOは情報シーケンスを表す。情報シーケンスはメ
モリ内のアドレスについての種々の情報を知られている
やり方で含む。そのやり方についてはここでは説明しな
い。しかし、ここで説明しているシステムによれば、情
報シーケンスは区画標識PIを更に含む。その標識はこ
こで説明している実施の形態では4ビット長である。し
たがって、情報シーケンスINFOのビット0ないし3
は特定の標識を構成する。区画標識は、データ項目がキ
ャッシュメモリ22に最初にロードされる時にそのデー
タ項目を置くことができる区画についての情報を与え
る。図2に示すキャッシュ構造では、各区画はキャッシ
ュの1つのバンクを構成することができる。特定の標識
では、各ビットはバンクの1つを指す。区画標識のビッ
トjにおける1の値は、そのページにおけるデータを区
画jに置けないことを意味する。ビットjにおける0の
値は、そのページにおけるデータを区画jに置けること
を意味する。区画標識の2つ以上のビットを0とするこ
とにより、2つ以上の区画にデータを置くことができ
る。全部が0の区画標識では、データをキャッシュの任
意の区画に置くことができる。全部が1の区画標識で
は、どのデータ項目もキャッシュメモリにロードするこ
とができない。これは、たとえば、診断目的のために、
キャッシュの内容をたとえば「凍結する」ために使用す
ることができる。
【0035】図3に示す例では、区画標識は、主メモリ
内にその実ページ数を持つデータ項目の交換にバンクB
1またはB3を使用できず、バンクB2またはB4を使
用できることを示す。
【0036】2つ以上のバンクをページに割り当てるこ
とは全く可能である。その場合には、ラインインページ
・アドレスがそのキャッシュのための行アドレスより多
くのビットを有するものとすると、区画はkウエイセッ
ト連想キャッシュとして振る舞う。この場合にはk個の
区画がページに割り当てられる。そうすると、ここで説
明している例では、図3の実ページ数はバンクB2とB
4を使用することができる。しかし、それはバンクB1
とB3を使用することができない。
【0037】区画情報はキャッシュルックアップには使
用されず、キャッシュの交換または補充の場合のみに使
用される。したがって、キャッシュアクセスがキャッシ
ュメモリのどの場所に保持されているデータ項目も探す
ことができ、交換ではそのページアドレスに対して許さ
れている区画内に交換するだけである。
【0038】図4は補充装置30の内容を一層詳しく示
すものである。図4には補充バス32を、データバス3
2aと、アドレスバス32bと、交換情報を伝えるバス
32cとの3つの別々のバスとして示す。データバス3
2aとアドレスバス32bはメモリアクセス回路50に
接続される。メモリアクセス回路50はメモリバス54
を介して主メモリ6をアクセスする。交換情報は決定回
路52に供給される。決定回路52は実アドレス34
と、バス36における区画標識PIと、ミス信号38と
をも受ける。決定回路52は、主メモリ6からアクセス
されたデータを置くべきキャッシュ内の正しい区画を決
定する。
【0039】区画標識PIは他の任意のTLBエントリ
のようにTLBでセットすることができる。ここで説明
している例では、CPU2で実行しているカーネルモー
ド・ソフトウエアによって区画標識はセットされ、特定
のキャッシュ区画に置くべきでないページが、その区画
のためにセットされたその特定のキャッシュ区画の区画
標識ビットを持たないようにすることが、カーネルモー
ド・ソフトウエアの責任である。しかし、ユーザーは、
キャッシュ区画を変更することを求めることにより、区
画を変更することができる。その場合にはCPU2はカ
ーネルモードへ変更して要求を実現し、それに従ってT
LBエントリを変更し、その後でユーザーモードへ戻っ
てユーザーが継続できるようにする。このようにしてユ
ーザーはキャッシュの区画の動作を変更して、従来可能
であったものより高い柔軟性を持たせることができる。
【0040】ここで説明しているキャッシュ区画機構は
マルチタスクCPUにとってはとくに有用である。マル
チタスクプロセッサは2つ以上のプロセスを「同時に」
実行することができる。実際には、プロセッサはプロセ
スの一部を実行し、何らかの理由、おそらくデータを必
要とするとか、続行するための刺激を必要とするとか、
でそのプロセスが中断された場合に、プロセッサは他の
プロセスを直ちに開始するものである。したがって、こ
このプロセスを停止して続行するためのデータまたは他
の刺激を待つことができる場合でも、プロセッサは常に
動作する。図5はそのような状況を線図的に示す。図5
の左側に、種々のプロセスP1、P2、P3、P4を実
行することをプロセッサが企てることができるシーケン
スを示す。図5の右側に、それらのプロセスのデータが
メモリに保持されていることをプロセスが予測できる場
所を示す。そうすると、プロセスP1のためのデータが
ページ0に保持される。プロセスP2のためのデータが
ページ1と2に保持される。プロセスP3とP4のため
のデータがページ3を共用する。この例では、プロセッ
サはプロセスP1の第1のシーケンスと、プロセスP2
の第1のシーケンスと、プロセスP1の第2のシーケン
スと、プロセスP2の第2のシーケンスとを実行し、そ
の後でプロセスP3の第1のシーケンスを実行する。プ
ロセッサはプロセスP1の第2のシーケンスが実行され
ると、プロセスP1が完全に実行されたことになる。従
来のキャッシュシステムでは、プロセッサがプロセスP
2の第1のシーケンスの実行を開始して、ページ2から
のアクセスを求めると、それらのラインにおけるデータ
項目と命令はキャッシュ内で、ページ0からの以前に記
憶されたデータ項目および命令と交換することが容易に
わかるであろう。しかし、プロセスP1の第2のシーケ
ンスが実行されると、それらをまもなく再び求めること
ができる。
【0041】ここで説明しているキャッシュ区画機構
は、タイミングの遅れと、それに起因する不確実性とを
避ける。図6はプロセッサがプロセスP1を実行中のキ
ャッシュの区画と、プロセッサがプロセスP3を実行す
るために切り替えた時の区画の変更、等を示す。図6は
各キャッシュのためのTLBキャッシュ区画標識も示
す。したがって、図6の左側はプロセッサがプロセスP
1とP2を実行している間に区画されたキャッシュを示
す。プロセスP1はキャッシュのバンクB1とB2を使
用できるが、バンクB3とB4は使用できない。逆に、
プロセスP2はキャッシュのバンクB3とB4を使用で
きるが、バンクB1とB2は使用できない。これを下の
TLBエントリに見ることができる。すなわち、ページ
0が、バンクB3とB4ではなくて、バンクB1とB2
をアクセスできるようにするキャッシュ区画標識を有す
る。ページ1と2が、バンクB1とB2ではなくて、バ
ンクB3とB4をアクセスできるようにするキャッシュ
区画標識を有する。ページ3がキャッシュをアクセスす
ることを阻止するキャッシュ区画標識を有する。したが
って、データ項目をプロセスP3からキャッシュにロー
ドするというプロセッサによるどのような試みも禁止さ
れる。しかし、ここで説明しているプロセス・シーケン
スでは、これは欠点ではない。その理由は、わかるであ
ろうが、プロセッサはプロセスP1の実行を終了するま
ではプロセスP3のどの部分も実行しようとはしないか
らである。プロセスP3を実行しなければならないとい
う何らかの理由で、プロセッサがそれを行ったとする
と、ダウンサイドだけになって、直接メモリからそれの
アクセスを行わなければならず、かつキャッシュの使用
を許されない。
【0042】プロセスP1の実行が終了すると、プロセ
ッサがTLB内のキャッシュ区画標識を変更できるよう
にするために、プロセッサはカーネルモードを要求する
ことができる。ここで説明している実施の形態では、カ
ーネルプロセスはキャッシュをアクセスしない。その代
わりに、カーネルプロセスは、区画標識がキャッシュの
挙動を変更するためにTLBエントリを変更する。この
変更を図6の右側に示す。したがって、今はキャッシュ
区画標識はプロセスP1がキャッシュを使用することを
全く阻止するが、キャッシュのバンクB1とB2をアク
セスできるようにキャッシュ区画標識を変更することに
より、それらのバンクをプロセスP3とP4に割り当て
る。そうすると、プロセスP3を実行することをプロセ
ッサが予測すると、そのプロセッサは今はキャッシュ機
能を有する。
【0043】上記実施の形態のいくつかの可能な変更を
以下に説明する。
【0044】上記実施の形態では、CPUによりアドレ
スバス4に出されたアドレスが仮想ページ数4bと、ラ
インインページ4aとに分割される。しかし、全体の仮
想アドレスはCPUからキャッシュのためのルックアッ
プ回路に送られる。逆に、CPUは実アドレスをルック
アップ回路へ直接送ることができる。重要なことは、キ
ャッシュ区画標識が主メモリ内のアドレスと共同して提
供されることである。上記実施の形態では、ルックアッ
プおよび補充におけるキャッシュをアクセスするため
に、1つのキャッシュアクセス回路20を示している。
しかし、補充のために追加のアクセスポートをキャッシ
ュに設けることも可能であるから、ルックアップと補充
はキャッシュメモリ22のための種々のアクセスポート
を介して起きる。
【0045】上記実施の形態では、補充装置30とキャ
ッシュアクセス回路20を個々のブロックで示してい
る。しかし、補充装置の機能とキャッシュアクセス回路
の機能とを、ルックアップと補充を行う単一のキャッシ
ュアクセス回路に組み合わせることが全く可能である。
【0046】図2および図8からわかるように、キャッ
シュ内の各記憶場所は主メモリ内のアドレスと項目(デ
ータまたは命令)を保持する。メモリアドレスの全てを
キャッシュ記憶場所に保持することが必要ではない。た
とえば、アドレスの最上位ビットが全体として保持され
て、そのキャッシュエントリのためのタイミングを構成
する。これはこの技術で知られているためにここでは説
明しない。
【0047】次にキャッシュ・コヒーレンシー機構につ
いて説明する。データおよびメモリキャッシュの状態を
変更するオペレーションのタイプを表1に示す。
【0048】
【表1】 データコヒーレンシー・オペレーションは、オペレーシ
ョンの範囲内で主メモリ内のアドレスでメモリ内の項目
をアクセスするロードおよびストアに関して命令され
る。たとえば、アドレス空間の重なり合う部分への「フ
ラッシュ」ご続く「ストア」により、新たに書込まれた
データについてフラッシュが確実に動作するようにす
る。動作はユーザーモードで実行される。ユーザーモー
ド・スレッドが、オペレーションを実行すべきであるペ
ージについての読出し許可または書込み許可をとらなけ
ればならない。
【0049】ラインおよび区画について動作するために
各コヒーレンシー・オペレーションが提供される。ライ
ンオペレーションはここでは完全にするために説明する
が、本発明の構成部分ではない。
【0050】<ラインオペレーション>ラインオペレー
ションにより個々のラインのキャッシュ制御を行えるよ
うにされる。ラインはラインに含まれている任意のバイ
トアドレスにより指定される。それらの命令は、所与の
アドレス範囲において動作する命令の最適化できるルー
プの構成を容易にすることを意図している。たとえば、
キャッシュから所与のバッファを除去するために、除去
ライン命令がループにおいて実行され、第1のアドレス
オペランドがバッファのスタートであり、次のアドレス
が次のキャッシュラインのスタートアドレスである。ア
ドレスがバッファの終りを超過するとループは終わる。
キャッシュラインのサイズはインプリメンテーションに
より決定される。ここで説明している実施の形態ではそ
のサイズは32バイトである。
【0051】<区画オペレーション>区画を基にした命
令は、1組の区画のうちのどの1つに対して働きかける
かを、関連するTLBエントリを介して、決定するため
にアドレスを用いる。その後で命令は、アドレスを交換
できるそれらの区画のキャッシュの内部のラインについ
て働きかける。
【0052】区画を基にした命令は一連の命令において
使用することを意図するものである。下記の諸条件は、
アドレスを含んでいるページを交換できる全区画に対し
てオペレーションを実行する。 ・ アドレスはページ内の最初のバイトのアドレスに対
して初期化される。 ・ データを常駐できる各区画について、区画オペレー
ションは同じアドレスで1回反復される。 ・ ページ内のオフセットが区画サイズに達するまでア
ドレスは増加される。区画オペレーションを各増加ごと
に反復する。
【0053】ここで説明している実施の形態では、最小
のページサイズは区画サイズと少なくとも同じである。
したがって、単一のページについてのオペレーションを
用いることは全区画について働きかけることである。
【0054】ソフトウエアがページ内の区画サイズより
大きいバイトのアドレスを用いるものとすると、これ
は、既に働きかけられた、キャッシュ内のラインにマッ
プする。したがって、コードは正しく実行するが、そう
すると不必要な命令の実行において性能が低下するとい
う不利益をこうむる。
【0055】区画を基にした命令は、キャッシュ内の1
組のラインを識別するためにアドレス(および、したが
って、区画識別子)を用いる。その後で、指定されたア
ドレスがキャッシュに保持されている主メモリ内のアド
レスに一致しようがしまいが、その1組のラインの1つ
に対して働きかけられる。PIビットがクリヤされてい
る区画のみがそれらの命令により変更される。すなわ
ち、実行中のプロセスがアクセスする区画のみに対して
コヒーレンシー命令が働きかける。
【0056】このキャッシュ・コヒーレンシー機構は下
記の命令を提供する。それらの命令では、dmemとい
う記号がコンピュータシステムの主メモリを指す。
【0057】<Flush>それらの命令は、汚れたデ
ータを他のユーザーが確実に見ることができるようにす
るために提供される。すなわち、関連する記憶場所に保
持されている項目が、項目を有するそのキャッシュ記憶
場所に保持されている主メモリ内のアドレスにライトバ
ックされる。
【0058】
【表2】
【0059】
【表3】 <Purge[データ項目に対して]>キャッシュから
データを除去するためにそれらの命令が提供される−そ
れらの命令はキャッシュ内のデータ項目を、それらの項
目で指定された主メモリ内のアドレスにライトバックす
る。
【0060】
【表4】
【0061】
【表5】 <ICohere[命令に対する]>後の命令フェッチ
が古いデータを命令キャッシュから読出す内容にするた
めにそれらの命令が提供される。
【0062】
【表6】
【0063】
【表7】 他の実施の形態では、区画をベースとするフラッシュ命
令は下記のフォームを持つことである。下記の命令で
は、var<a:b>は可変varのビットaないしb
である。
【0064】
【表8】 単一の命令がキャッシュ内の複数のライン働きかける場
合に、除去命令およびコヒーレンスでない(incoh
ere)命令が類似の形態をとることができる。
【0065】明らかに、以上の説明は、キャッシュが区
画されない場合、すなわち、全体のキャッシュが単一の
区画であるとみなされる場合、にあてはまる。
【図面の簡単な説明】
【図1】キャッシュシステムを組み込んだコンピュータ
のブロック図である。
【図2】4ウエイセット連想キャッシュを示す略図であ
る。
【図3】翻訳ルックアサイド・バッファにおけるエント
リの例である。
【図4】補充装置のブロック図である。
【図5】マルチタスクプロセッサの動作を示す線図であ
る。
【図6】図5に示すシステムのキャッシュ動作の変更を
示す線図である。
【図7】自動コヒーレンシー制御のブロック図である。
【図8】「古い」データ項目と「汚れた」データ項目を
示す。
【符号の説明】
2 CPU 4,24 アドレスバス 6 主メモリ 8 データバス 10 翻訳ルックアサイド・バッファ 12 ルックアップ回路 20 キャッシュアクセス回路 22 キャッシュメモリ 26 データバス 28 制御バス 30 補充装置 32 補充バス 36 4ビットバス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ブリュノ、フェル フランス国サスナージュ、リュ、デュ、 ムーシュロット、14 (56)参考文献 特開 平8−320829(JP,A) 特開 平3−235144(JP,A) 特開 平2−287848(JP,A) 特開 平5−233444(JP,A) 特開 平3−216745(JP,A) 特開 平4−100158(JP,A) 特開 昭63−193246(JP,A) 特開 平3−235143(JP,A) 特開 昭62−177645(JP,A) 特開 平4−137053(JP,A) 特開 昭63−46556(JP,A) 特開 平1−175650(JP,A) 特開 平4−137054(JP,A) International Bus iness Machines Cor poration,「PowerPCア ーキテクチャ」,初版,インターナショ ナル・トムソン・パブリッシング・ジャ パン,1995年12月20日,p.297−304 Motorola Inc.,「MC 68020ユーザーズ・マニュアル」,CQ 出版株式会社,昭和63年5月30日,p. 89−91 (58)調査した分野(Int.Cl.6,DB名) G06F 12/08 - 12/12

Claims (19)

    (57)【特許請求の範囲】
  1. 【請求項1】一連の命令を実行することによりプロセス
    を実行するプロセッサと、 前記命令、および前記命令に対するデータを保持する主
    メモリと、 プロセッサと主メモリとの間のメモリアクセス経路中に
    接続され、それぞれ主メモリ内の複数のアドレスのうち
    のいずれかのデータをロードすることができる複数の記
    憶場所を有するキャッシュとを備え、前記プロセッサ
    は、(i)キャッシュ内の記憶場所の内容に対して実行
    すべきオペレーションと、(ii)主メモリ内のアドレ
    スと、を指定するキャッシュ・コヒーレンシー命令を含
    む一連の命令を実行することができ、 さらに前記プロセッサは、前記キャッシュ・コヒーレン
    シー命令を実行する際に、前記キャッシュ・コヒーレン
    シー命令が指定する主メモリ内のアドレスのデータがキ
    ャッシュ内の前記記憶場所に保持されているか否かとは
    無関係に、実行中のプロセスで前記キャッシュ・コヒー
    レンシー命令が指定する主メモリ内のアドレスを通常ア
    クセスすることによりそのアドレスのデータを主メモリ
    からロードすることができる前記記憶場所の内容に対し
    て、前記キャッシュ・コヒーレンシー命令が指定するオ
    ペレーションを実行する実行ユニットを含んでいる、コ
    ンピュータシステム。
  2. 【請求項2】請求項1記載のコンピュータシステムであ
    って、キャッシュの各記憶場所の内容は、主メモリ内の
    アドレスと、主メモリ内のそのアドレスに記憶されてい
    るデータとを含んでいるコンピュータシステム。
  3. 【請求項3】請求項1または2記載のコンピュータシス
    テムであって、主メモリはページで編成され、各ページ
    は一連のアドレスを含み、キャッシュ・コヒーレンシー
    命令は主メモリ内のページのうち、オペレーションを実
    行すべきページを指定し、オペレーションは指定された
    ページ内の一連の各アドレスに対して実行されるコンピ
    ュータシステム。
  4. 【請求項4】請求項1ないし3のいずれかに記載のコン
    ピュータシステムであって、キャッシュは直接マップさ
    れるコンピュータシステム。
  5. 【請求項5】請求項1ないし3のいずれかに記載のコン
    ピュータシステムであって、キャッシュは複数のキャッ
    シュ区画に区分され、アクセスされた主メモリ内のアド
    レスのデータが前記キャッシュ区画のいずれにロードす
    ることができるかはアクセスされた主メモリ内のアドレ
    スに基づいて決定されるコンピュータシステム。
  6. 【請求項6】請求項5記載のコンピュータシステムであ
    って、各キャッシュ区画は直接マップされるコンピュー
    タシステム。
  7. 【請求項7】請求項5または6記載のコンピュータシス
    テムであって、主メモリはページで編成され、各ページ
    のサイズは、常に個々のキャッシュ区画のサイズ以上で
    あるコンピュータシステム。
  8. 【請求項8】請求項1ないし7のいずれかに記載のコン
    ピュータシステムであって、プロセッサはユーザー動作
    モードと特権動作モードとを有し、キャッシュ・コヒー
    レンシー命令はユーザー動作モードで実行されるコンピ
    ュータシステム。
  9. 【請求項9】主メモリ内の複数のアドレスのデータをキ
    ャッシュの各記憶場所にロードすることができるコンピ
    ュータシステムにおいて、主メモリに保持されているデ
    ータに関してキャッシュの内容のコヒーレンシー状態を
    変更する方法であって、 (i)キャッシュ内の記憶場所の内容に対して実行すべ
    きオペレーションと、 (ii)主メモリ内のアドレスとを指定するキャッシュ
    ・コヒーレンシー命令を実行する過程と、 前記キャッシュ・コヒーレンシー命令に応じて、前記キ
    ャッシュ・コヒーレンシー命令が指定する主メモリ内の
    アドレスのデータがキャッシュ内の前記記憶場所に保持
    されているか否かとは無関係に、実行中のプロセスで前
    記キャッシュ・コヒーレンシー命令が指定する主メモリ
    内のアドレスを通常アクセスすることによりそのアドレ
    スのデータを主メモリからロードすることができる前記
    記憶場所の内容に対して、前記キャッシュ・コヒーレン
    シー命令が指定するオペレーションを実行する過程とを
    備える、主メモリに保持されているデータに関してキャ
    ッシュの内容のコヒーレンシー状態を変更する方法。
  10. 【請求項10】請求項9記載の方法であって、各キャッ
    シュ記憶場所の内容は主メモリ内のアドレスと、主メモ
    リ内のそのアドレスに記憶されているデータとを含む方
    法。
  11. 【請求項11】請求項10記載の方法であって、キャッ
    シュ・コヒーレンシー命令が、前記キャッシュ内の前記
    記憶場所に保持されているデータを前記主メモリ内のア
    ドレスにライトバックするフラッシュ命令である方法。
  12. 【請求項12】請求項9または10記載の方法であっ
    て、キャッシュ・コヒーレンシー命令が、キャッシュ内
    の前記記憶場所の内容をクリアする除去命令である方
    法。
  13. 【請求項13】請求項9ないし12のいずれかに記載の
    方法であって、キャッシュ・コヒーレンシー命令が主メ
    モリ内の一連のアドレスを指定し、実行中のプロセスで
    前記キャッシュ・コヒーレンシー命令が指定する主メモ
    リ内の一連のアドレスを通常アクセスすることによりそ
    の一連のアドレスのデータをロードすることができる前
    記記憶場所の内容に対して、前記キャッシュ・コヒーレ
    ンシー命令が指定するオペレーションを実行する方法。
  14. 【請求項14】請求項9ないし13のいずれかに記載の
    方法であって、主メモリはページで編成され、各ページ
    は一連のアドレスを含み、キャッシュ・コヒーレンシー
    命令は主メモリ内のページのうち、オペレーションを実
    行すべきページを指定し、オペレーションは指定された
    ページ内の一連の各アドレスに対して実行される方法。
  15. 【請求項15】請求項9ないし14のいずれかに記載の
    方法であって、キャッシュは直接マップされる方法。
  16. 【請求項16】請求項9ないし14のいずれかに記載の
    方法であって、前記キャッシュは複数のキャッシュ区画
    に区分され、アクセスされた主メモリ内のアドレスのデ
    ータが前記キャッシュ区画のいずれにロードすることが
    できるかはアクセスされた主メモリ内のアドレスに基づ
    いて決定される方法。
  17. 【請求項17】請求項16記載の方法であって、各キャ
    ッシュ区画は直接マップされる方法。
  18. 【請求項18】請求項16または17記載の方法であっ
    て、主メモリはページで編成され、各ページのサイズ
    は、常に個々のキャッシュ区画のサイズ以上である方
    法。
  19. 【請求項19】請求項9ないし18のいずれかに記載の
    方法であって、プロセッサはユーザー動作モードと特権
    動作モードとを有し、キャッシュ・コヒーレンシー命令
    はユーザー動作モードで実行される方法。
JP10053904A 1997-03-05 1998-03-05 コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法 Expired - Lifetime JP2968509B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9704542.1A GB9704542D0 (en) 1997-03-05 1997-03-05 A cache coherency mechanism
GB9704542.1 1997-03-05

Publications (2)

Publication Number Publication Date
JPH10293720A JPH10293720A (ja) 1998-11-04
JP2968509B2 true JP2968509B2 (ja) 1999-10-25

Family

ID=10808731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10053904A Expired - Lifetime JP2968509B2 (ja) 1997-03-05 1998-03-05 コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法

Country Status (4)

Country Link
US (1) US6546467B2 (ja)
EP (1) EP0863464A1 (ja)
JP (1) JP2968509B2 (ja)
GB (1) GB9704542D0 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7000078B1 (en) * 1999-10-01 2006-02-14 Stmicroelectronics Ltd. System and method for maintaining cache coherency in a shared memory system
US6848026B2 (en) * 2001-11-09 2005-01-25 International Business Machines Corporation Caching memory contents into cache partitions based on memory locations
JP3900025B2 (ja) 2002-06-24 2007-04-04 日本電気株式会社 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
JP4664586B2 (ja) * 2002-11-11 2011-04-06 パナソニック株式会社 キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム
US20040225944A1 (en) * 2003-05-09 2004-11-11 Brueggen Christopher M. Systems and methods for processing an error correction code word for storage in memory components
US7047366B1 (en) * 2003-06-17 2006-05-16 Emc Corporation QOS feature knobs
KR100826757B1 (ko) 2003-11-18 2008-04-30 마쯔시다덴기산교 가부시키가이샤 캐시 메모리 및 그 제어 방법
ATE407398T1 (de) * 2004-10-25 2008-09-15 Bosch Gmbh Robert Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
DE102005037248A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigsterns zwei Ausführungseinheiten
DE102005037250A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037227A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037247A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
JP2008026944A (ja) * 2006-07-18 2008-02-07 Renesas Technology Corp バス結合型マルチプロセッサ
US20090019232A1 (en) * 2007-07-11 2009-01-15 Freescale Semiconductor, Inc. Specification of coherence domain during address translation
WO2009153703A1 (en) * 2008-06-17 2009-12-23 Nxp B.V. Multiprocessor system with mixed software hardware controlled cache management
US9098417B2 (en) * 2012-12-13 2015-08-04 Advanced Micro Devices, Inc. Partitioning caches for sub-entities in computing devices
US20150331608A1 (en) * 2014-05-16 2015-11-19 Samsung Electronics Co., Ltd. Electronic system with transactions and method of operation thereof
KR102533241B1 (ko) 2018-01-25 2023-05-16 삼성전자주식회사 적응적으로 캐시 일관성을 제어하도록 구성된 이종 컴퓨팅 시스템
US11841796B2 (en) * 2021-01-21 2023-12-12 Micron Technology, Inc. Scratchpad memory in a cache

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4713755A (en) * 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
EP0220451B1 (en) 1985-10-30 1994-08-10 International Business Machines Corporation A cache coherence mechanism based on locking
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5579503A (en) * 1993-11-16 1996-11-26 Mitsubishi Electric Information Technology Direct cache coupled network interface for low latency
US5515522A (en) * 1994-02-24 1996-05-07 Hewlett-Packard Company Coherence index generation for use by an input/output adapter located outside of the processor to detect whether the updated version of data resides within the cache
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
US6122711A (en) * 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US5907853A (en) * 1997-01-17 1999-05-25 Hewlett-Packard Company Method and apparatus for maintaining duplicate cache tags with selectable width
EP0856798B1 (en) * 1997-01-30 2004-09-29 STMicroelectronics Limited A cache system
US6128706A (en) * 1998-02-03 2000-10-03 Institute For The Development Of Emerging Architectures, L.L.C. Apparatus and method for a load bias--load with intent to semaphore
GB9806184D0 (en) * 1998-03-23 1998-05-20 Sgs Thomson Microelectronics A cache coherency mechanism
US6412043B1 (en) * 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
International Business Machines Corporation,「PowerPCアーキテクチャ」,初版,インターナショナル・トムソン・パブリッシング・ジャパン,1995年12月20日,p.297−304
Motorola Inc.,「MC68020ユーザーズ・マニュアル」,CQ出版株式会社,昭和63年5月30日,p.89−91

Also Published As

Publication number Publication date
US6546467B2 (en) 2003-04-08
GB9704542D0 (en) 1997-04-23
US20020007442A1 (en) 2002-01-17
JPH10293720A (ja) 1998-11-04
EP0863464A1 (en) 1998-09-09

Similar Documents

Publication Publication Date Title
JP2968509B2 (ja) コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法
EP0856798B1 (en) A cache system
JP3370683B2 (ja) キャッシュシステム
US6351790B1 (en) Cache coherency mechanism
US4298929A (en) Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US8806177B2 (en) Prefetch engine based translation prefetching
US5715427A (en) Semi-associative cache with MRU/LRU replacement
US5802574A (en) Method and apparatus for quickly modifying cache state
US6711653B1 (en) Flexible mechanism for enforcing coherency among caching structures
JPH0561770A (ja) データ処理システムのコヒーレンス手段
US6065099A (en) System and method for updating the data stored in a cache memory attached to an input/output system
US7039768B2 (en) Cache predictor for simultaneous multi-threaded processor system supporting multiple transactions
US20070113042A1 (en) Sparse matrix
KR20070040340A (ko) 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템
JP2930071B2 (ja) 情報処理装置およびプロセッサ
JPH0519176B2 (ja)
JPH08314802A (ja) キャッシュシステム、キャッシュメモリアドレスユニット、およびキャッシュメモリを動作させる方法
EP0271187A2 (en) Split instruction and operand cache management
JP2002116956A (ja) キャッシュ制御方法及びキャッシュ制御システム
KR19980028842A (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: 20080820

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090820

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100820

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100820

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110820

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120820

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20130820

Year of fee payment: 14

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

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term