JPH077360B2 - キヤツシユメモリを具えた情報処理装置 - Google Patents
キヤツシユメモリを具えた情報処理装置Info
- Publication number
- JPH077360B2 JPH077360B2 JP61151296A JP15129686A JPH077360B2 JP H077360 B2 JPH077360 B2 JP H077360B2 JP 61151296 A JP61151296 A JP 61151296A JP 15129686 A JP15129686 A JP 15129686A JP H077360 B2 JPH077360 B2 JP H077360B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- cache memory
- data
- cache
- memory
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
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
【発明の詳細な説明】 〔発明の技術分野〕 本発明はキャッシュメモリを具えた情報処理装置に係
り、特にキャッシュメモリ中の情報とメモリ中にまたは
そこから転送される情報との統一性を保証する装置に関
する。
り、特にキャッシュメモリ中の情報とメモリ中にまたは
そこから転送される情報との統一性を保証する装置に関
する。
現代の大抵のコンピュータシステムは、中央処理装置
(CPU)と主記憶装置とを包んでいる。データを処理す
るための命令を解読し実行することができるCPUの速度
は、命令およびオペランドが主記憶装置からCPUに転送
され得る速度を越えていた。この不適合性により引き起
こされる問題を少くするための1つの試みとして、多く
のコンピュータはCPUと主記憶装置との間にキャッシュ
メモリまたはバッファを使用している。
(CPU)と主記憶装置とを包んでいる。データを処理す
るための命令を解読し実行することができるCPUの速度
は、命令およびオペランドが主記憶装置からCPUに転送
され得る速度を越えていた。この不適合性により引き起
こされる問題を少くするための1つの試みとして、多く
のコンピュータはCPUと主記憶装置との間にキャッシュ
メモリまたはバッファを使用している。
キャッシュメモリは、小さな、高速のバッファメモリで
あり、CPUによって現在使用中と考えられる主記憶装置
の内容の一部分を一時的に保持するために使用される。
キャッシュメモリの主要な目的は、データまたは命令取
り込みのためのメモリアクセスに必要な実行時間を短縮
することである。キャッシュメモリ内に位置された情報
は、主記憶装置内に位置する情報よりもずっと少ない時
間でアクセスされうる。従って、キャッシュメモリを備
えたCPUにおいては、命令およびオペランドの取り込み
および/またはストアに要する時間を小さくする必要が
ある。そのような装置に対して、キャッシュメモリは、
正に実質的な実行速度の増加をもたらす。
あり、CPUによって現在使用中と考えられる主記憶装置
の内容の一部分を一時的に保持するために使用される。
キャッシュメモリの主要な目的は、データまたは命令取
り込みのためのメモリアクセスに必要な実行時間を短縮
することである。キャッシュメモリ内に位置された情報
は、主記憶装置内に位置する情報よりもずっと少ない時
間でアクセスされうる。従って、キャッシュメモリを備
えたCPUにおいては、命令およびオペランドの取り込み
および/またはストアに要する時間を小さくする必要が
ある。そのような装置に対して、キャッシュメモリは、
正に実質的な実行速度の増加をもたらす。
キャッシュメモリはデータの1つまたはそれ以上のワー
ドをもつ多くのブロックから作られており、各データ
は、そのデータが主記憶装置のどのブロックのコピーで
あるかを独特に特定するアドレスタグと関連する。プロ
セッサがメモリ参照を行うたびに、キャッシュメモリは
要求されたデータのコピーを有するかどうかをチェック
する。もしそれを有するならば、キャッシュメモリはそ
のデータを供給し、もし無ければ主記憶装置から該当ブ
ロックを受け取り、キャッシュメモリ中にストアされて
いるブロックのうちの1つと置換え、そしてそのデータ
をプロセッサに供給する。
ドをもつ多くのブロックから作られており、各データ
は、そのデータが主記憶装置のどのブロックのコピーで
あるかを独特に特定するアドレスタグと関連する。プロ
セッサがメモリ参照を行うたびに、キャッシュメモリは
要求されたデータのコピーを有するかどうかをチェック
する。もしそれを有するならば、キャッシュメモリはそ
のデータを供給し、もし無ければ主記憶装置から該当ブ
ロックを受け取り、キャッシュメモリ中にストアされて
いるブロックのうちの1つと置換え、そしてそのデータ
をプロセッサに供給する。
キャッシュメモリを最適に設計するには次の事を考慮す
る必要がある。
る必要がある。
(1) キャッシュメモリ中のメモリ参照対象を見つけ
出す可能性(ヒット率)を最大にすること、 (2) キャッシュメモリ内に実際にある情報をアクセ
スするための時間(アクセスタイム)を最小にするこ
と、 (3) ミスによる遅れを最小にすること、 (4) 主記憶装置を更新するオーバーヘッドを最小に
し、そして、多重キャッシュメモリの無矛盾性を維持す
ること、 の4つである。これらの目的の全ては、費用とパラメー
タ間の相互関係とを考慮して成し遂げられねばならな
い。
出す可能性(ヒット率)を最大にすること、 (2) キャッシュメモリ内に実際にある情報をアクセ
スするための時間(アクセスタイム)を最小にするこ
と、 (3) ミスによる遅れを最小にすること、 (4) 主記憶装置を更新するオーバーヘッドを最小に
し、そして、多重キャッシュメモリの無矛盾性を維持す
ること、 の4つである。これらの目的の全ては、費用とパラメー
タ間の相互関係とを考慮して成し遂げられねばならな
い。
CPUが現在のアドレス空間の内容を変更する命令を実行
するとき、それらの変更は最終的に主記憶装置内に反映
されなければならず、キャッシュメモリは単に一時的な
バッファーであるべきである。主記憶装置を更新するた
めには2つの一般的なアプローチがある。即ち、第1の
方法においては、貯蔵物は主記憶装置に直接伝達されう
る(ライト・スルー(write-through)またはストア・
スルー(store-through)と呼ばれる)。第2の方法に
おいては、貯蔵物はキャッシュメモリ内に貯蔵されてい
るデータを初めに変更し、その後主記憶装置内に反映さ
れうる(コピー・バック(copy-back)またはライト・
トゥー(write-to)と呼ばれる)。ライト・スルーとコ
ピー・バックとの間の選択は、密結合された多重プロセ
ッサシステムにおける多重キャッシュメモリ間の無矛盾
性(統一性)を維持するための方法の選択と密接な関係
を有する。
するとき、それらの変更は最終的に主記憶装置内に反映
されなければならず、キャッシュメモリは単に一時的な
バッファーであるべきである。主記憶装置を更新するた
めには2つの一般的なアプローチがある。即ち、第1の
方法においては、貯蔵物は主記憶装置に直接伝達されう
る(ライト・スルー(write-through)またはストア・
スルー(store-through)と呼ばれる)。第2の方法に
おいては、貯蔵物はキャッシュメモリ内に貯蔵されてい
るデータを初めに変更し、その後主記憶装置内に反映さ
れうる(コピー・バック(copy-back)またはライト・
トゥー(write-to)と呼ばれる)。ライト・スルーとコ
ピー・バックとの間の選択は、密結合された多重プロセ
ッサシステムにおける多重キャッシュメモリ間の無矛盾
性(統一性)を維持するための方法の選択と密接な関係
を有する。
ライト・スルー法の主な欠点は、ライト・スルーが各ス
トア動作に対して主記憶装置へのアクセスを要求すると
いうことである。これは、プロセッサの実行速度を遅く
する比較的遅い主記憶装置のトラフィック負荷に重大な
影響を与える。しかしながら、ライト・スルーが使用さ
れていないときには、主記憶装置がシステムにおける全
ての情報の最新のコピーを常時含んではいないためキャ
ッシュメモリとの無矛盾性の問題が発生する。
トア動作に対して主記憶装置へのアクセスを要求すると
いうことである。これは、プロセッサの実行速度を遅く
する比較的遅い主記憶装置のトラフィック負荷に重大な
影響を与える。しかしながら、ライト・スルーが使用さ
れていないときには、主記憶装置がシステムにおける全
ての情報の最新のコピーを常時含んではいないためキャ
ッシュメモリとの無矛盾性の問題が発生する。
主記憶装置と周辺装置との間の入力および出力動作は主
記憶装置中の情報を参照する追加的な参照源であり、こ
の参照源はキャッシュメモリの動作と調和しなければな
らない。転送される情報に対して、最新の値を、出力が
参照の流れに要求することは重要である。同様に、入力
データが記憶装置中のラインの全てのコピーにおいて直
ちに反映されることがまた重要である。
記憶装置中の情報を参照する追加的な参照源であり、こ
の参照源はキャッシュメモリの動作と調和しなければな
らない。転送される情報に対して、最新の値を、出力が
参照の流れに要求することは重要である。同様に、入力
データが記憶装置中のラインの全てのコピーにおいて直
ちに反映されることがまた重要である。
この問題を解決するために、いくつかの方法がなされて
きた。1つはI/Oの流れをキャッシュメモリそれ自身を
通して導くことである。しかし、この方法は、単一のプ
ロセッサシステムに限定される。さらに、この方法は、
プロセッサがキャッシュメモリを必要とするときキャッ
シュメモリを動作中に維持することと、プロセッサによ
って現在使用されている情報ブロックをI/Oストリーム
のブロックと置き換えることとの両方によって、プロセ
ッサによりキャッシュメモリの使用に重大に干渉する。
したがって、この方法は、キャッシュメモリアクセスタ
イムとヒット率との両方を低下させる。他の方法は、ラ
イト・スルー方法を使用し、そして全ての書き込みを一
斉に行ない、よってどこであっても見出された目的ライ
ンを更新するかまたは無効にすることである。この方法
はキャッシュメモリの代りに主記憶装置にアクセスする
けれども、それは上述したライト・スルー方法の欠点を
考える。加えて、このハードウェア集約的な解決は、実
行するためには費用がかかりまた、キャッシュメモリに
無効化チェックを要求するので、キャッシュメモリアク
セスサイクル時間を増加させる。これは多重プロセッサ
システムにおいて特に不利である。なぜならば、システ
ム中のプロセッサがストア動作を実行するとき常に、シ
ステムにおける全てのキャッシュメモリは、サイクルを
無効ルックアップに引き渡すように強制されるからであ
る。
きた。1つはI/Oの流れをキャッシュメモリそれ自身を
通して導くことである。しかし、この方法は、単一のプ
ロセッサシステムに限定される。さらに、この方法は、
プロセッサがキャッシュメモリを必要とするときキャッ
シュメモリを動作中に維持することと、プロセッサによ
って現在使用されている情報ブロックをI/Oストリーム
のブロックと置き換えることとの両方によって、プロセ
ッサによりキャッシュメモリの使用に重大に干渉する。
したがって、この方法は、キャッシュメモリアクセスタ
イムとヒット率との両方を低下させる。他の方法は、ラ
イト・スルー方法を使用し、そして全ての書き込みを一
斉に行ない、よってどこであっても見出された目的ライ
ンを更新するかまたは無効にすることである。この方法
はキャッシュメモリの代りに主記憶装置にアクセスする
けれども、それは上述したライト・スルー方法の欠点を
考える。加えて、このハードウェア集約的な解決は、実
行するためには費用がかかりまた、キャッシュメモリに
無効化チェックを要求するので、キャッシュメモリアク
セスサイクル時間を増加させる。これは多重プロセッサ
システムにおいて特に不利である。なぜならば、システ
ム中のプロセッサがストア動作を実行するとき常に、シ
ステムにおける全てのキャッシュメモリは、サイクルを
無効ルックアップに引き渡すように強制されるからであ
る。
他の方法は、登録簿(索引)を使用し、各データブロッ
クの全てのコピーの状態と位置との軌跡を維持すること
でる。登録簿は、主記憶装置内に中心化されるかまたは
キャッシュメモリ、I/Oチャネルおよび主記憶装置間に
分配される。このシステムは、ある時点において、ただ
1つのプロセッサまたはI/Oチャネルのみがあるデータ
のプロセッサを変更できることを保証する。このこと
は、AFPIS Proc.,N.C.C.,Vol.45,ページ749-53(1976)
に述べられている。登録制御システムの主な欠点は、そ
れが要求する追加的ハードウェアの経費と複雑さであ
る。
クの全てのコピーの状態と位置との軌跡を維持すること
でる。登録簿は、主記憶装置内に中心化されるかまたは
キャッシュメモリ、I/Oチャネルおよび主記憶装置間に
分配される。このシステムは、ある時点において、ただ
1つのプロセッサまたはI/Oチャネルのみがあるデータ
のプロセッサを変更できることを保証する。このこと
は、AFPIS Proc.,N.C.C.,Vol.45,ページ749-53(1976)
に述べられている。登録制御システムの主な欠点は、そ
れが要求する追加的ハードウェアの経費と複雑さであ
る。
最後に、もし例えば停電のためにプロセッサが役に立た
なくなったとき、メモリシステムは、復帰が容易になさ
れるように、情報の最新のコピーが主記憶装置に貯蔵さ
れていることを保証しなければならない。
なくなったとき、メモリシステムは、復帰が容易になさ
れるように、情報の最新のコピーが主記憶装置に貯蔵さ
れていることを保証しなければならない。
本発明の目的は、キャッシュメモリを有するコンピュー
タシステムにおけるメモリの保全性と無矛盾性(統一
性)を維持するためのシステムを提供し、保全性を維持
する負担をソフトウェアに置き、そのハードウェアを比
較的に簡単、且つ安価、迅速であるようにすることであ
る。
タシステムにおけるメモリの保全性と無矛盾性(統一
性)を維持するためのシステムを提供し、保全性を維持
する負担をソフトウェアに置き、そのハードウェアを比
較的に簡単、且つ安価、迅速であるようにすることであ
る。
本発明の他の目的は、キャッシュメモリの動作上の保全
性と無矛盾性とを維持するためのオーバーヘッドを最小
限にし、もってキャッシュアクセスタイムおよびミス比
率を最小限にすることである。
性と無矛盾性とを維持するためのオーバーヘッドを最小
限にし、もってキャッシュアクセスタイムおよびミス比
率を最小限にすることである。
本発明のこれらの目的は、キャッシュメモリ中における
データブロックの除去または無効化を制御する明示的命
令を含む命令セットを有するコンピュータにおいて成し
遂げられる。キャッシュメモリ中の貯蔵(記憶)された
各データブロックは、2個の1ビットステータスフラ
グ、即ちそのブロックが最新の情報を包含しているかど
うかを示すための有効ビットと、ブロック中のデータが
キャッシュメモリに入つた後、プロセッサによつて記憶
されたかどうかを示すターティビット(dirty bit)と
を有する。前記命令セットは、特定のアドレスを持つブ
ロックをキャッシュメモリから除去するそしてもし必要
ならばそれを主記憶装置に書き戻すための命令と、主記
憶装置に書き戻すことなしにブロックを除去するための
命令と、動作中のキャッシュメモリ動作が成し遂げられ
るまで命令の実行を停止するための命令とプロセッサの
動作不良の場合に、キャッシュメモリ中の全ての「ダー
ティー」ブロックを効率的に除去しそして主記憶装置に
書き戻すための命令とを含む。オペレーティングシステ
ムソフトウェアは、これらの命令を、キャッシュメモリ
中に矛盾や古いデータが生じる事になるかもしれない状
態になったときに呼び出す。
データブロックの除去または無効化を制御する明示的命
令を含む命令セットを有するコンピュータにおいて成し
遂げられる。キャッシュメモリ中の貯蔵(記憶)された
各データブロックは、2個の1ビットステータスフラ
グ、即ちそのブロックが最新の情報を包含しているかど
うかを示すための有効ビットと、ブロック中のデータが
キャッシュメモリに入つた後、プロセッサによつて記憶
されたかどうかを示すターティビット(dirty bit)と
を有する。前記命令セットは、特定のアドレスを持つブ
ロックをキャッシュメモリから除去するそしてもし必要
ならばそれを主記憶装置に書き戻すための命令と、主記
憶装置に書き戻すことなしにブロックを除去するための
命令と、動作中のキャッシュメモリ動作が成し遂げられ
るまで命令の実行を停止するための命令とプロセッサの
動作不良の場合に、キャッシュメモリ中の全ての「ダー
ティー」ブロックを効率的に除去しそして主記憶装置に
書き戻すための命令とを含む。オペレーティングシステ
ムソフトウェアは、これらの命令を、キャッシュメモリ
中に矛盾や古いデータが生じる事になるかもしれない状
態になったときに呼び出す。
第1図は本発明を使用できるコンピュータシステムのブ
ロック図である。プロセッサ11は、しばしばCPUと呼ば
れ、メモリバス17を経由して主記憶装置13および入力/
出力チャネル15に連絡する。プロセッサ11は、プロセッ
サ19を含み、これはデータを処理するために命令を取り
込み、解読しそして実行する。データおよび命令は主記
憶装置13に貯蔵され、プログラムまたはルーチンの実行
中にこれらデータおよび命令が要求されたときプロセッ
サ19に転送され、そして前記プログラムまたはルーチン
が完了した後に主記憶装置13に戻される。
ロック図である。プロセッサ11は、しばしばCPUと呼ば
れ、メモリバス17を経由して主記憶装置13および入力/
出力チャネル15に連絡する。プロセッサ11は、プロセッ
サ19を含み、これはデータを処理するために命令を取り
込み、解読しそして実行する。データおよび命令は主記
憶装置13に貯蔵され、プログラムまたはルーチンの実行
中にこれらデータおよび命令が要求されたときプロセッ
サ19に転送され、そして前記プログラムまたはルーチン
が完了した後に主記憶装置13に戻される。
主記憶装置13へのアクセスは、プロセッサ19の動作と較
べて比較的遅い。もし、命令またはデータが必要とされ
る都度、主記憶装置のアクセスが完了するまでプロセッ
サ19が待機しなければならないならばプロセッサ19の実
行速度は非常に低下する。プロセッサが必要とするもの
にもっと良くマッチするアクセスタイムを提供するた
め、バッファメモリとも呼ばれるキャッシュメモリ21
は、限定された個数の命令およびデータを貯蔵する。キ
ャッシュメモリ21は主記憶装置13よりもずっと小さいた
め、それはより高いアクセス速度を有するように経済的
に作られ得る。
べて比較的遅い。もし、命令またはデータが必要とされ
る都度、主記憶装置のアクセスが完了するまでプロセッ
サ19が待機しなければならないならばプロセッサ19の実
行速度は非常に低下する。プロセッサが必要とするもの
にもっと良くマッチするアクセスタイムを提供するた
め、バッファメモリとも呼ばれるキャッシュメモリ21
は、限定された個数の命令およびデータを貯蔵する。キ
ャッシュメモリ21は主記憶装置13よりもずっと小さいた
め、それはより高いアクセス速度を有するように経済的
に作られ得る。
構成要素ユニットのハードウエアではなくコンピュータ
のオペレーティングシステムソフトウエアがメモリの保
全性及び無矛盾性に対する責任を負っている。これを成
し遂るために、オペレーティッグシステムは、コンピュ
ータの命令セット中に包含された明示的な制御命令を呼
出す。
のオペレーティングシステムソフトウエアがメモリの保
全性及び無矛盾性に対する責任を負っている。これを成
し遂るために、オペレーティッグシステムは、コンピュ
ータの命令セット中に包含された明示的な制御命令を呼
出す。
本発明のシステムをより完全に説明するためには、キャ
ッシュメモリ21の構造の理解が必要である。キャッシュ
メモリ21におけるエントリ配列が第2図に示されてい
る。キャッシュメモリ21にはインデクス31でラベル付け
されたエントリの配列が設けられている。各エントリは
データ33とこのデータのコピーの主記憶中でのロケーシ
ョンの物理ページ番号に対応する物理ページダグ35をス
トアする。
ッシュメモリ21の構造の理解が必要である。キャッシュ
メモリ21におけるエントリ配列が第2図に示されてい
る。キャッシュメモリ21にはインデクス31でラベル付け
されたエントリの配列が設けられている。各エントリは
データ33とこのデータのコピーの主記憶中でのロケーシ
ョンの物理ページ番号に対応する物理ページダグ35をス
トアする。
キャッシュメモリ中に貯蔵されたデータ33および35に加
えて、それぞれのブロックはそれと関連して「有効」お
よび「ダーティー」の2個の1ビットステータスフラグ
を有する。もしそのブロックが有効データすなわち最新
のデータを有するときまたそのときに限って、有効ビッ
ト37がセットされる。
えて、それぞれのブロックはそれと関連して「有効」お
よび「ダーティー」の2個の1ビットステータスフラグ
を有する。もしそのブロックが有効データすなわち最新
のデータを有するときまたそのときに限って、有効ビッ
ト37がセットされる。
もしデータがキャッシュメモリ中に持ち込まれた後、プ
ロセッサがそのアドレスへの記憶を行うならば、ダーテ
ィー・ビット39がセットされる。プロセッサ19がストア
する都度主記憶装置13を更新する(つまりライトスルー
方式)のでないのならば、ブロックに対し、キャッシュ
メモリは主記憶装置が有するよりも最新のデータを有す
る。ダーティー・ビット39は、ブロックがキャッシュメ
モリからスワップアウトされるとき、キャッシュメモリ
21におけるそのブロックのデータを主記憶装置13に戻し
て書き込むことによって主記憶装置13が更新されなけれ
ばならないことを示す働きをする。
ロセッサがそのアドレスへの記憶を行うならば、ダーテ
ィー・ビット39がセットされる。プロセッサ19がストア
する都度主記憶装置13を更新する(つまりライトスルー
方式)のでないのならば、ブロックに対し、キャッシュ
メモリは主記憶装置が有するよりも最新のデータを有す
る。ダーティー・ビット39は、ブロックがキャッシュメ
モリからスワップアウトされるとき、キャッシュメモリ
21におけるそのブロックのデータを主記憶装置13に戻し
て書き込むことによって主記憶装置13が更新されなけれ
ばならないことを示す働きをする。
キャッシュメモリ21はまた、第3図に示すように、一方
がデータ用で他方が命令用の2つの領域に分割すること
もできる。多くのコンピュータアーキテクチャではこの
分割キャッシュメモリは性能上有利である。命令キャッ
シュメモリ41とデータキャッシュメモリ51との両方は、
上に述べられた一体のキャッシュメモリの構造と同様な
構造を有する。命令キャッシュメモリ41はインデクス43
でラベル付けされたロケーションの配列を有する。各ロ
ケーションは物理ページタグ45と命令46と有効ビット47
が入っているエントリをストアする。データキャッシュ
51はインデクス53でラベル付けされたロケーションの配
列を有する。各ロケーションは物理タグ55とデータのブ
ロック56と有効ビット57とダーティビット58が入ってい
るエントリをストアする。このキャッシュ構成はある種
の利点を考えるが、一方では制御命令を追加する必要も
ある。具体的に言えば、命令は書換えられる事もあるし
また同じ命令の写がキャッシュの2つの区域の両方に現
れる事もある。従って、オペレーティングシステムは無
矛盾性を保証するために命令キャッシュ41とデータキャ
ッシュ51からブロックを主記憶装置13へフラッシュ(fl
ush)つまり掃き出さなければならない。
がデータ用で他方が命令用の2つの領域に分割すること
もできる。多くのコンピュータアーキテクチャではこの
分割キャッシュメモリは性能上有利である。命令キャッ
シュメモリ41とデータキャッシュメモリ51との両方は、
上に述べられた一体のキャッシュメモリの構造と同様な
構造を有する。命令キャッシュメモリ41はインデクス43
でラベル付けされたロケーションの配列を有する。各ロ
ケーションは物理ページタグ45と命令46と有効ビット47
が入っているエントリをストアする。データキャッシュ
51はインデクス53でラベル付けされたロケーションの配
列を有する。各ロケーションは物理タグ55とデータのブ
ロック56と有効ビット57とダーティビット58が入ってい
るエントリをストアする。このキャッシュ構成はある種
の利点を考えるが、一方では制御命令を追加する必要も
ある。具体的に言えば、命令は書換えられる事もあるし
また同じ命令の写がキャッシュの2つの区域の両方に現
れる事もある。従って、オペレーティングシステムは無
矛盾性を保証するために命令キャッシュ41とデータキャ
ッシュ51からブロックを主記憶装置13へフラッシュ(fl
ush)つまり掃き出さなければならない。
オペレーティングシステムは以下の6つの命令を使用し
て必要なメモリメンテナンス機能を実行する。これらの
命令は、データキャッシュ・フラッシュ、キャッシュ・
パージ(purge)、命令キャッシュ・フラッシュ、デー
タキャッシュエントリ・フラッシュ、命令キャッシュエ
ントリ・フラッシュ、およびキャッシュメモリ同期の6
つである。
て必要なメモリメンテナンス機能を実行する。これらの
命令は、データキャッシュ・フラッシュ、キャッシュ・
パージ(purge)、命令キャッシュ・フラッシュ、デー
タキャッシュエントリ・フラッシュ、命令キャッシュエ
ントリ・フラッシュ、およびキャッシュメモリ同期の6
つである。
データキャッシュ・フラッシュ(FDC)命令は、そのデ
ータアドレスによってデータキャッシュ中でヒットが起
こった場合、そのアドレスされたデータキャッシュの有
効ビットを「無効」にセットする。与えられたアドレス
のデータブロックは除去され、またダーティビットがセ
ットされているならば主記憶装置に書き戻される。
ータアドレスによってデータキャッシュ中でヒットが起
こった場合、そのアドレスされたデータキャッシュの有
効ビットを「無効」にセットする。与えられたアドレス
のデータブロックは除去され、またダーティビットがセ
ットされているならば主記憶装置に書き戻される。
データキャッキュ・パージは(PDC)命令は、そのデー
タアドレスによってデータキャッシュ中でビットが起こ
った場合、アドレスされたデータキャッシュの有効ビッ
トを「無効」にセットする。与えられたアドレスのデー
タのブロックはキャッシュから除去され、書き戻しは実
行されない。
タアドレスによってデータキャッシュ中でビットが起こ
った場合、アドレスされたデータキャッシュの有効ビッ
トを「無効」にセットする。与えられたアドレスのデー
タのブロックはキャッシュから除去され、書き戻しは実
行されない。
命令キャッシュ・フラッシュ(FIC)命令は、そのアド
レスによって命令キャッシュでヒットが起こった場合、
アドレスされた命令キャッシュの有効ビットを「無効」
にセットする。与えられたアドレスの命令はキャッシュ
から除去される。
レスによって命令キャッシュでヒットが起こった場合、
アドレスされた命令キャッシュの有効ビットを「無効」
にセットする。与えられたアドレスの命令はキャッシュ
から除去される。
データキャッシュエントリ・フラッシュ(FDCE)命令は
特殊なフラッシュ命令であり、たとえば、プロセッサの
動作不良の場合などにキャッシュメモリ全体をフラッシ
ュさせるためにルーチン中において使用され得る。この
ルーチンはプロセッサの具体的な実現の態様によって変
わる。多数セットキャッシュメモリに対して、該ルーチ
ンは、各セットにつき1度ずつキャッシュメモリのイン
デクス範囲を走査して処理を進める。FDCE命令は、キャ
ッシュインデクスでヒットが起ころうと起こるまいと、
データブロックをフラッシュし、そして指定されたデー
タキャッシュメモリの有効ビットを「無効」にセットす
る。すなわち、当該ブロックが有効かつダーティである
場合またその場合に限ってキャッシュタグを要求された
アドレスに比較することなく、該ブロックは主記憶装置
に書き戻される。
特殊なフラッシュ命令であり、たとえば、プロセッサの
動作不良の場合などにキャッシュメモリ全体をフラッシ
ュさせるためにルーチン中において使用され得る。この
ルーチンはプロセッサの具体的な実現の態様によって変
わる。多数セットキャッシュメモリに対して、該ルーチ
ンは、各セットにつき1度ずつキャッシュメモリのイン
デクス範囲を走査して処理を進める。FDCE命令は、キャ
ッシュインデクスでヒットが起ころうと起こるまいと、
データブロックをフラッシュし、そして指定されたデー
タキャッシュメモリの有効ビットを「無効」にセットす
る。すなわち、当該ブロックが有効かつダーティである
場合またその場合に限ってキャッシュタグを要求された
アドレスに比較することなく、該ブロックは主記憶装置
に書き戻される。
命令キャッシュエントリ・フラッシュ(FICE)命令は、
FDCE命令がデータキャッシュメモリにおいて成したと同
じ機能を命令キャッシュメモリにおいて行う。
FDCE命令がデータキャッシュメモリにおいて成したと同
じ機能を命令キャッシュメモリにおいて行う。
キャッシュメモリ同期(SYNC)命令は、命令キャッシュ
メモリおよびデータキャッシュメモリの全ての動作が完
了するまでプロセッサによる命令の実行を停止する。こ
れにより、データの保全性を保証するために要求される
キャッシュメモリ動作の完了まで、データのあらゆる参
照動作が待機されることを保証する。
メモリおよびデータキャッシュメモリの全ての動作が完
了するまでプロセッサによる命令の実行を停止する。こ
れにより、データの保全性を保証するために要求される
キャッシュメモリ動作の完了まで、データのあらゆる参
照動作が待機されることを保証する。
本システムの動作は、次の具体的によって説明される。
オペーレーティイングシステムは、プロセッサおよびI/
Oチャネル15に取り付けられた周辺装置による主記憶装
置へのアクセスを制御する。
オペーレーティイングシステムは、プロセッサおよびI/
Oチャネル15に取り付けられた周辺装置による主記憶装
置へのアクセスを制御する。
データが外部装置からI/Oチャネル15を介して主記憶装
置13に読み込まれるべきとき、オペレーティングシステ
ムは、そこへまたはそこからデータが転送されるアドレ
スがデータキャッシュメモリまたは命令キャッシュメモ
リ中に写像された区域に重ならないことを保証しなけれ
ばならない。I/Oが実行される前に、キャッシュメモリ
からあらゆる新鮮でないデータをクリアするために、オ
ペレーティングシステムは、それぞれのキャッシュメモ
リに対して、入力データが写像されないようとしている
アドレス範囲にわたってFDC命令およびFIC命令を一斉に
与える。
置13に読み込まれるべきとき、オペレーティングシステ
ムは、そこへまたはそこからデータが転送されるアドレ
スがデータキャッシュメモリまたは命令キャッシュメモ
リ中に写像された区域に重ならないことを保証しなけれ
ばならない。I/Oが実行される前に、キャッシュメモリ
からあらゆる新鮮でないデータをクリアするために、オ
ペレーティングシステムは、それぞれのキャッシュメモ
リに対して、入力データが写像されないようとしている
アドレス範囲にわたってFDC命令およびFIC命令を一斉に
与える。
データが主記憶装置からI/Oチャネル15を介して外部装
置に読み込まれるべきとき、オペレーティングシステム
は最も最新のデータが転送されるように、そこからデー
タが転送されるアドレスがデータキャッシュメモリ中に
写像されている区域に重らないことを保証しなければな
らない。プロセッサにより変更されたキャッシュメモリ
中におけるデータによって主記憶装置を更新するため
に、オペーレーティングシステムは、それぞれのキャッ
シュメモリに対して、そこから出力データが読出される
べきアドレス範囲にわたって、FDC命令を一斉に与え
る。FDC命令は、キャッシュメモリに対し、どのような
ダーティブロックも主記憶装置に書き戻すようにさせ
る。
置に読み込まれるべきとき、オペレーティングシステム
は最も最新のデータが転送されるように、そこからデー
タが転送されるアドレスがデータキャッシュメモリ中に
写像されている区域に重らないことを保証しなければな
らない。プロセッサにより変更されたキャッシュメモリ
中におけるデータによって主記憶装置を更新するため
に、オペーレーティングシステムは、それぞれのキャッ
シュメモリに対して、そこから出力データが読出される
べきアドレス範囲にわたって、FDC命令を一斉に与え
る。FDC命令は、キャッシュメモリに対し、どのような
ダーティブロックも主記憶装置に書き戻すようにさせ
る。
仮想メモリシステムにおいて、あるページまたはセグメ
ントが主記憶装置13からI/Oチャネル15に連結された周
辺メモリ(たとえばディスクメモリー)に移動されると
きは必ず、そのページまたはセグメントからのデータは
全てのキャッシュメモリからのフラッシュされなければ
ならない。オペレーティングシステムは、キャッシュメ
モリに対して、これらページまたはセグメントに包含さ
れたアドレスの範囲にわたって、FDC命令およびFIC命令
を一斉に与える。たとえばプログラム終了などのために
ページまたはセグメントが破壊されるとき、そのデータ
は貯蔵される必要はなく、キャッシュメモリから除去さ
れなければならない。この場合、オペレーティングシス
テムはPDC命令およびFIC命令を使用するページまたはセ
グメントが作り出されるかまたは周辺メモリから持ち込
まれるときには、一切のフラッシュまたはパージ動作は
必要ではない。なぜならば、そのページまたはセグメン
トがマッピングされるアドレスは、新たなページまたは
セグメントのための場所を確保するために以前のページ
またはセグメントを除去する過程ですでにフラッシュま
たはパージされているからである。
ントが主記憶装置13からI/Oチャネル15に連結された周
辺メモリ(たとえばディスクメモリー)に移動されると
きは必ず、そのページまたはセグメントからのデータは
全てのキャッシュメモリからのフラッシュされなければ
ならない。オペレーティングシステムは、キャッシュメ
モリに対して、これらページまたはセグメントに包含さ
れたアドレスの範囲にわたって、FDC命令およびFIC命令
を一斉に与える。たとえばプログラム終了などのために
ページまたはセグメントが破壊されるとき、そのデータ
は貯蔵される必要はなく、キャッシュメモリから除去さ
れなければならない。この場合、オペレーティングシス
テムはPDC命令およびFIC命令を使用するページまたはセ
グメントが作り出されるかまたは周辺メモリから持ち込
まれるときには、一切のフラッシュまたはパージ動作は
必要ではない。なぜならば、そのページまたはセグメン
トがマッピングされるアドレスは、新たなページまたは
セグメントのための場所を確保するために以前のページ
またはセグメントを除去する過程ですでにフラッシュま
たはパージされているからである。
自己修飾コードを持つプログラムに対処するためには、
オペレーティングシステムは変更された命令の変更前の
もののコピーを全てキャッシュメモリから除去し、変更
後の新しい命令だけが実行されることを保証しなければ
ならない。命令の置換えがデータキャッシュ51上で行わ
れた後、オペレーティングシステムは、FDC命令を使用
して書換えられたコピーを主記憶装置に送り込み、FIC
命令を使用して、命令キャッシュ41にこの命令の書換前
のコピーがあればそれを皆除去し、次にSYNC命令を使用
して、FDC命令及びFIC命令が完了するまでは書換えられ
た命令が実行されない事を保証する。
オペレーティングシステムは変更された命令の変更前の
もののコピーを全てキャッシュメモリから除去し、変更
後の新しい命令だけが実行されることを保証しなければ
ならない。命令の置換えがデータキャッシュ51上で行わ
れた後、オペレーティングシステムは、FDC命令を使用
して書換えられたコピーを主記憶装置に送り込み、FIC
命令を使用して、命令キャッシュ41にこの命令の書換前
のコピーがあればそれを皆除去し、次にSYNC命令を使用
して、FDC命令及びFIC命令が完了するまでは書換えられ
た命令が実行されない事を保証する。
たとえば停電によって、プロセッサが動作不良となった
場合には、キャッシュメモリ中に残留する変更されたデ
ータブロックは、主記憶装置に書き戻されなければなら
ない。オペレーティングシステムは、FDCE命令およびFI
CE命令を使用し、最小の時間で上記の事を成し遂げるこ
とができる。FDCE命令およびFICE命令を使用するルーチ
ンはキャッシュメモリを迅速にフラッシュする。なぜな
らば、ずっと大きなアドレス空間を使用するのではな
く、キャッシュのインデクス範囲内を走査して処理を進
めるからである。このルーチンがキャッシュ内を走査し
ていくとき、有効かつダーティなブロックだけが主記憶
装置13へ書き戻される。
場合には、キャッシュメモリ中に残留する変更されたデ
ータブロックは、主記憶装置に書き戻されなければなら
ない。オペレーティングシステムは、FDCE命令およびFI
CE命令を使用し、最小の時間で上記の事を成し遂げるこ
とができる。FDCE命令およびFICE命令を使用するルーチ
ンはキャッシュメモリを迅速にフラッシュする。なぜな
らば、ずっと大きなアドレス空間を使用するのではな
く、キャッシュのインデクス範囲内を走査して処理を進
めるからである。このルーチンがキャッシュ内を走査し
ていくとき、有効かつダーティなブロックだけが主記憶
装置13へ書き戻される。
以上の説明より明らかなように、本発明によれば、複雑
なハードウェアを使用することなく、キャッシュメモリ
と主記憶装置間の無矛盾性(統一性)を保つことができ
る。
なハードウェアを使用することなく、キャッシュメモリ
と主記憶装置間の無矛盾性(統一性)を保つことができ
る。
第1図は本発明を使用できるコンピュータシステムのブ
ロック図、第2図は本発明によるキャッシュメモリを具
えた情報処理装置のキャッシュメモリの説明図、第3図
は本発明の他の実施例によるキャッシュメモリを具えた
情報処理装置のキャッシュメモリの説明図である。
ロック図、第2図は本発明によるキャッシュメモリを具
えた情報処理装置のキャッシュメモリの説明図、第3図
は本発明の他の実施例によるキャッシュメモリを具えた
情報処理装置のキャッシュメモリの説明図である。
Claims (4)
- 【請求項1】以下の(a)ないし(c)を設けたことを
特徴とするキャッシュメモリを具えた情報処理装置: (a) 複数の階層を有し、前記階層はキャッシュメモ
リと主記憶装置とを含み、前記主記憶装置には入出力装
置からのデータ書き込み/データ読出しが行われるメモ
リシステム; (b) 前記複数の階層間でのブロック転送を制御する
命令セットを実行することのできるプロセッサ; (c) 入出力装置からのデータ書き込みに先立って、
当該データの書き込みが行われるアドレス範囲の前記主
記憶装置のコピーを前記キャッシュメモリから除去する
命令を実行するオペレーティングシステム。 - 【請求項2】前記キャッシュメモリはコピー・バック方
式で動作し、 前記オペレーティングシステムは、前記入出力装置によ
るデータの読出しに先立って、当該データの読出しが行
われるアドレス範囲を前記キャッシュメモリから前記主
記憶装置に書き戻させる命令を実行する ことを特徴とする特許請求の範囲第1項記載の情報処理
装置。 - 【請求項3】前記キャッシュメモリは命令キャッシュと
データキャッシュに分けられ、 前記データキャッシュ中に取込まれた命令が書換えられ
た場合には、前記オペレーティングシステムは前記書換
えられた命令が含まれているブロックを前記主記憶装置
へ書戻す命令と、前記命令キャッシュに当該命令を含む
ブロックが記憶されていればそれを除去する命令を実行
する ことを特徴とする特許請求の範囲第2項記載の情報処理
装置。 - 【請求項4】前記キャッシュメモリはコピー・バック方
式で動作し、 前記プロセッサの異常時には、前記オペレーティングシ
ステムは前記キャッシュメモリの前記主記憶装置への書
戻しを行なう命令を実行する ことを特徴とする特許請求の範囲第1項記載の情報処理
装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/750,381 US4713755A (en) | 1985-06-28 | 1985-06-28 | Cache memory consistency control with explicit software instructions |
| US750381 | 1985-06-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6263350A JPS6263350A (ja) | 1987-03-20 |
| JPH077360B2 true JPH077360B2 (ja) | 1995-01-30 |
Family
ID=25017637
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61151296A Expired - Lifetime JPH077360B2 (ja) | 1985-06-28 | 1986-06-27 | キヤツシユメモリを具えた情報処理装置 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4713755A (ja) |
| EP (1) | EP0210384B1 (ja) |
| JP (1) | JPH077360B2 (ja) |
| CA (1) | CA1270579A (ja) |
| DE (1) | DE3681985D1 (ja) |
| HK (1) | HK66392A (ja) |
| SG (1) | SG72392G (ja) |
Families Citing this family (122)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2539357B2 (ja) | 1985-03-15 | 1996-10-02 | 株式会社日立製作所 | デ−タ処理装置 |
| US5349672A (en) * | 1986-03-17 | 1994-09-20 | Hitachi, Ltd. | Data processor having logical address memories and purge capabilities |
| US4814981A (en) * | 1986-09-18 | 1989-03-21 | Digital Equipment Corporation | Cache invalidate protocol for digital data processing system |
| US5045996A (en) * | 1986-11-12 | 1991-09-03 | Xerox Corporation | Multiprocessor cache memory housekeeping |
| US4897781A (en) * | 1987-02-13 | 1990-01-30 | International Business Machines Corporation | System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment |
| US4851991A (en) * | 1987-02-24 | 1989-07-25 | Digital Equipment Corporation | Central processor unit for digital data processing system including write buffer management mechanism |
| EP0309994A3 (en) * | 1987-09-28 | 1990-08-22 | Compaq Computer Corporation | Method and apparatus for implementing memory coherency |
| JPS6488844A (en) * | 1987-09-30 | 1989-04-03 | Takeshi Sakamura | Data processor |
| GB2210480B (en) * | 1987-10-02 | 1992-01-29 | Sun Microsystems Inc | Flush support |
| DE68917326T2 (de) * | 1988-01-20 | 1995-03-02 | Advanced Micro Devices Inc | Organisation eines integrierten Cachespeichers zur flexiblen Anwendung zur Unterstützung von Multiprozessor-Operationen. |
| NL8800158A (nl) * | 1988-01-25 | 1989-08-16 | Philips Nv | Computersysteem voorzien van een hierarchisch georganiseerd geheugen. |
| US5214770A (en) * | 1988-04-01 | 1993-05-25 | Digital Equipment Corporation | 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 |
| GB8814077D0 (en) * | 1988-06-14 | 1988-07-20 | Int Computers Ltd | Data memory system |
| EP0348628A3 (en) * | 1988-06-28 | 1991-01-02 | International Business Machines Corporation | Cache storage system |
| US5097409A (en) * | 1988-06-30 | 1992-03-17 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
| US5204952A (en) * | 1988-07-18 | 1993-04-20 | Northern Telecom Limited | Duplex processor arrangement for a switching system |
| US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | Coherent cache structures and methods |
| US6092153A (en) * | 1988-11-14 | 2000-07-18 | Lass; Stanley Edwin | Subsettable top level cache |
| US5187793A (en) * | 1989-01-09 | 1993-02-16 | Intel Corporation | Processor with hierarchal memory and using meta-instructions for software control of loading, unloading and execution of machine instructions stored in the cache |
| US5097532A (en) * | 1989-03-03 | 1992-03-17 | Compaq Computer Corporation | Circuit for enabling a cache using a flush input to circumvent a late noncachable address input |
| US5155824A (en) * | 1989-05-15 | 1992-10-13 | Motorola, Inc. | System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address |
| US5197146A (en) * | 1989-06-21 | 1993-03-23 | Hewlett-Packard Company | Method for maintaining cache coherence in a multiprocessor computer system |
| US5155832A (en) * | 1989-07-05 | 1992-10-13 | Hewlett-Packard Company | Method to increase performance in a multi-level cache system by the use of forced cache misses |
| US5283886A (en) * | 1989-08-11 | 1994-02-01 | Hitachi, Ltd. | Multiprocessor cache system having three states for generating invalidating signals upon write accesses |
| WO1991004536A1 (en) * | 1989-09-20 | 1991-04-04 | Dolphin Server Technology A/S | Instruction cache architecture for parallel issuing of multiple instructions |
| JP2695017B2 (ja) * | 1989-11-08 | 1997-12-24 | 富士通株式会社 | データ転送方式 |
| US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
| JPH0748190B2 (ja) * | 1990-01-22 | 1995-05-24 | 株式会社東芝 | キャッシュメモリ内蔵マイクロプロセッサ |
| US5467460A (en) * | 1990-02-14 | 1995-11-14 | Intel Corporation | M&A for minimizing data transfer to main memory from a writeback cache during a cache miss |
| US5247648A (en) * | 1990-04-12 | 1993-09-21 | Sun Microsystems, Inc. | Maintaining data coherency between a central cache, an I/O cache and a memory |
| US5446849A (en) * | 1990-11-30 | 1995-08-29 | Kabushiki Kaisha Toshiba | Electronic computer which executes squash branching |
| US5339322A (en) * | 1991-03-29 | 1994-08-16 | Sgs-Thomson Microelectronics, Inc. | Cache tag parity detect circuit |
| US5319768A (en) * | 1991-05-01 | 1994-06-07 | Sgs-Thomson Microelectronics, Inc. | Control circuit for resetting a snoop valid bit in a dual port cache tag memory |
| US5414827A (en) * | 1991-12-19 | 1995-05-09 | Opti, Inc. | Automatic cache flush |
| US5469555A (en) * | 1991-12-19 | 1995-11-21 | Opti, Inc. | Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system |
| US5375216A (en) * | 1992-02-28 | 1994-12-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
| US5675763A (en) * | 1992-07-15 | 1997-10-07 | Digital Equipment Corporation | Cache memory system and method for selectively removing stale aliased entries |
| JP3409866B2 (ja) * | 1992-09-18 | 2003-05-26 | 株式会社日立製作所 | 並列計算機 |
| US5664149A (en) * | 1992-11-13 | 1997-09-02 | Cyrix Corporation | Coherency for write-back cache in a system designed for write-through cache using an export/invalidate protocol |
| US5524225A (en) * | 1992-12-18 | 1996-06-04 | Advanced Micro Devices Inc. | Cache system and method for providing software controlled writeback |
| US5689680A (en) * | 1993-07-15 | 1997-11-18 | Unisys Corp. | Cache memory system and method for accessing a coincident cache with a bit-sliced architecture |
| GB2282471B (en) * | 1993-09-29 | 1997-11-05 | Advanced Risc Mach Ltd | Cache storage |
| 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 |
| CN1049750C (zh) * | 1994-07-28 | 2000-02-23 | 联华电子股份有限公司 | 共用超高速缓冲存贮器子系统的计算机索引存贮器装置 |
| US5566318A (en) * | 1994-08-02 | 1996-10-15 | Ramtron International Corporation | Circuit with a single address register that augments a memory controller by enabling cache reads and page-mode writes |
| JP3266470B2 (ja) * | 1994-10-03 | 2002-03-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム |
| US5835949A (en) * | 1994-12-27 | 1998-11-10 | National Semiconductor Corporation | Method of identifying and self-modifying code |
| US5713017A (en) * | 1995-06-07 | 1998-01-27 | International Business Machines Corporation | Dual counter consistency control for fault tolerant network file servers |
| US5594863A (en) * | 1995-06-26 | 1997-01-14 | Novell, Inc. | Method and apparatus for network file recovery |
| US5787472A (en) * | 1995-07-31 | 1998-07-28 | Ibm Corporation | Disk caching system for selectively providing interval caching or segment caching of vided data |
| US5778431A (en) * | 1995-12-19 | 1998-07-07 | Advanced Micro Devices, Inc. | System and apparatus for partially flushing cache memory |
| US5848254A (en) * | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Multiprocessing system using an access to a second memory space to initiate software controlled data prefetch into a first address space |
| US5956754A (en) * | 1997-03-03 | 1999-09-21 | Data General Corporation | Dynamic shared user-mode mapping of shared memory |
| GB9704542D0 (en) * | 1997-03-05 | 1997-04-23 | Sgs Thomson Microelectronics | A cache coherency mechanism |
| US6058456A (en) * | 1997-04-14 | 2000-05-02 | International Business Machines Corporation | Software-managed programmable unified/split caching mechanism for instructions and data |
| US5974507A (en) * | 1997-04-14 | 1999-10-26 | International Business Machines Corporation | Optimizing a cache eviction mechanism by selectively introducing different levels of randomness into a replacement algorithm |
| US5978888A (en) * | 1997-04-14 | 1999-11-02 | International Business Machines Corporation | Hardware-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels |
| US6026470A (en) * | 1997-04-14 | 2000-02-15 | International Business Machines Corporation | Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels |
| GB2357873B (en) * | 1998-07-24 | 2002-01-09 | Intel Corp | A method and apparatus for performing cache segment flush operations |
| US6978357B1 (en) * | 1998-07-24 | 2005-12-20 | Intel Corporation | Method and apparatus for performing cache segment flush and cache segment invalidation operations |
| US7013284B2 (en) * | 1999-05-04 | 2006-03-14 | Accenture Llp | Component based interface to handle tasks during claim processing |
| US7979382B2 (en) | 1999-05-04 | 2011-07-12 | Accenture Global Services Limited | Component based information linking during claim processing |
| US7617240B2 (en) | 1999-05-04 | 2009-11-10 | Accenture Llp | Component based task handling during claim processing |
| US6546462B1 (en) * | 1999-12-30 | 2003-04-08 | Intel Corporation | CLFLUSH micro-architectural implementation method and system |
| GB2401227B (en) * | 1999-12-30 | 2005-03-16 | Intel Corp | Cache line flush micro-architectural implementation method and system |
| JP2001282764A (ja) | 2000-03-30 | 2001-10-12 | Hitachi Ltd | マルチプロセッサシステム |
| US7099998B1 (en) * | 2000-03-31 | 2006-08-29 | Intel Corporation | Method for reducing an importance level of a cache line |
| US7360028B1 (en) * | 2000-05-05 | 2008-04-15 | Sun Microsystems, Inc. | Explicit store-to-instruction-space instruction for self-modifying code and ensuring memory coherence between instruction cache and shared memory using a no-snoop protocol |
| US20020083150A1 (en) * | 2000-12-27 | 2002-06-27 | Linden Minnick | Accessing information from memory |
| US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
| US7489779B2 (en) | 2001-03-22 | 2009-02-10 | Qstholdings, Llc | Hardware implementation of the secure hash standard |
| US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
| US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
| US7400668B2 (en) | 2001-03-22 | 2008-07-15 | Qst Holdings, Llc | Method and system for implementing a system acquisition function for use with a communication device |
| US20040133745A1 (en) * | 2002-10-28 | 2004-07-08 | Quicksilver Technology, Inc. | Adaptable datapath for a digital processing system |
| US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
| US6577678B2 (en) | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
| US6920533B2 (en) | 2001-06-27 | 2005-07-19 | Intel Corporation | System boot time reduction method |
| US7275135B2 (en) | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
| US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
| US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
| US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
| US7602740B2 (en) | 2001-12-10 | 2009-10-13 | Qst Holdings, Inc. | System for adapting device standards after manufacture |
| US7215701B2 (en) | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
| US6839812B2 (en) | 2001-12-21 | 2005-01-04 | Intel Corporation | Method and system to cache metadata |
| US7403981B2 (en) * | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
| US7493375B2 (en) | 2002-04-29 | 2009-02-17 | Qst Holding, Llc | Storage and delivery of device features |
| US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
| US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
| US6854038B2 (en) * | 2002-06-06 | 2005-02-08 | International Business Machines Corporation | Global status journaling in NVS |
| US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
| US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
| US7478031B2 (en) | 2002-11-07 | 2009-01-13 | Qst Holdings, Llc | Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information |
| US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
| US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
| US8126742B2 (en) | 2003-05-09 | 2012-02-28 | Accenture Global Services Limited | Automated assignment of insurable events |
| US7609297B2 (en) | 2003-06-25 | 2009-10-27 | Qst Holdings, Inc. | Configurable hardware based digital imaging apparatus |
| ATE458222T1 (de) * | 2004-06-08 | 2010-03-15 | Freescale Semiconductor Inc | Aufrechterhaltung der cachespeicherkoherenz zum direkten zugriff (dma), abschluss einer aufgabe, zur synchronisierung |
| US7933786B2 (en) | 2005-11-01 | 2011-04-26 | Accenture Global Services Limited | Collaborative intelligent task processor for insurance claims |
| US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
| US8239351B2 (en) * | 2007-06-07 | 2012-08-07 | Apple Inc. | Methods and systems for managing permissions data |
| US8515786B2 (en) | 2008-02-22 | 2013-08-20 | Accenture Global Services Gmbh | Rule generation system adapted for an insurance claim processing system |
| US8478769B2 (en) | 2008-02-22 | 2013-07-02 | Accenture Global Services Limited | Conversational question generation system adapted for an insurance claim processing system |
| US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
| WO2010036754A1 (en) | 2008-09-26 | 2010-04-01 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
| US8412677B2 (en) | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
| US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
| US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
| US20100306234A1 (en) * | 2009-05-28 | 2010-12-02 | Microsoft Corporation | Cache synchronization |
| JP5990466B2 (ja) | 2010-01-21 | 2016-09-14 | スビラル・インコーポレーテッド | ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置 |
| US8935492B2 (en) | 2010-09-30 | 2015-01-13 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
| CN103946811B (zh) | 2011-09-30 | 2017-08-11 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
| US9342453B2 (en) | 2011-09-30 | 2016-05-17 | Intel Corporation | Memory channel that supports near memory and far memory access |
| CN103946812B (zh) | 2011-09-30 | 2017-06-09 | 英特尔公司 | 用于实现多级别存储器分级体系的设备和方法 |
| EP2761480A4 (en) | 2011-09-30 | 2015-06-24 | Intel Corp | APPARATUS AND METHOD FOR IMPLEMENTING MULTINIVE MEMORY HIERARCHY ON COMMON MEMORY CHANNELS |
| WO2013084315A1 (ja) * | 2011-12-07 | 2013-06-13 | 富士通株式会社 | 演算処理装置、及び、演算処理装置の制御方法 |
| WO2013084314A1 (ja) * | 2011-12-07 | 2013-06-13 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
| US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
| US9063864B2 (en) * | 2012-07-16 | 2015-06-23 | Hewlett-Packard Development Company, L.P. | Storing data in presistent hybrid memory |
| US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
| US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
| US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3771137A (en) * | 1971-09-10 | 1973-11-06 | Ibm | Memory control in a multipurpose system utilizing a broadcast |
| US3845474A (en) * | 1973-11-05 | 1974-10-29 | Honeywell Inf Systems | Cache store clearing operation for multiprocessor mode |
| US4156906A (en) * | 1977-11-22 | 1979-05-29 | Honeywell Information Systems Inc. | Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands |
| US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
| JPS57162168A (en) * | 1981-03-30 | 1982-10-05 | Fujitsu Ltd | Memory access control system |
| JPS60124754A (ja) * | 1983-12-09 | 1985-07-03 | Fujitsu Ltd | バッファ記憶制御装置 |
-
1985
- 1985-06-28 US US06/750,381 patent/US4713755A/en not_active Expired - Lifetime
-
1986
- 1986-06-06 EP EP86107713A patent/EP0210384B1/en not_active Expired
- 1986-06-06 DE DE8686107713T patent/DE3681985D1/de not_active Expired - Lifetime
- 1986-06-19 CA CA000511962A patent/CA1270579A/en not_active Expired
- 1986-06-27 JP JP61151296A patent/JPH077360B2/ja not_active Expired - Lifetime
-
1992
- 1992-07-15 SG SG723/92A patent/SG72392G/en unknown
- 1992-09-03 HK HK663/92A patent/HK66392A/en not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| DE3681985D1 (de) | 1991-11-21 |
| EP0210384A1 (en) | 1987-02-04 |
| EP0210384B1 (en) | 1991-10-16 |
| HK66392A (en) | 1992-09-11 |
| US4713755A (en) | 1987-12-15 |
| JPS6263350A (ja) | 1987-03-20 |
| SG72392G (en) | 1992-10-02 |
| CA1270579A (en) | 1990-06-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH077360B2 (ja) | キヤツシユメモリを具えた情報処理装置 | |
| US5029070A (en) | Coherent cache structures and methods | |
| US5155824A (en) | System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address | |
| US5119485A (en) | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation | |
| US6631447B1 (en) | Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed | |
| US5802572A (en) | Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache | |
| JP3067112B2 (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
| CN1617113B (zh) | 分配虚拟内存的方法、存储控制器和计算机系统 | |
| US5450563A (en) | Storage protection keys in two level cache system | |
| US6418515B1 (en) | Cache flush unit | |
| JPH03217963A (ja) | マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 | |
| KR19980079433A (ko) | 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템 | |
| JPH05210585A (ja) | キャッシュ管理システム | |
| JPH0364893B2 (ja) | ||
| JPH0997214A (ja) | 補助プロセッサのためのアドレス変換を含む情報処理システム | |
| JPH09114665A (ja) | 記憶装置と補助プロセッサ間のコマンド及びデータ転送方法及び情報処理システム | |
| US5909697A (en) | Reducing cache misses by snarfing writebacks in non-inclusive memory systems | |
| JPH0340046A (ja) | キャッシュメモリ制御方式および情報処理装置 | |
| US5761724A (en) | Write-invalidate cache system for a split transaction bus based shared memory multiprocessor | |
| JP3295436B2 (ja) | マイクロプロセッサキャッシュの一貫性 | |
| US5926841A (en) | Segment descriptor cache for a processor | |
| JPH0467242A (ja) | プロセッサおよびそのキャッシュメモリ制御方法 | |
| US6256710B1 (en) | Cache management during cache inhibited transactions for increasing cache efficiency | |
| US5895486A (en) | Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence | |
| JP2001249846A (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 |
|
| EXPY | Cancellation because of completion of term |