JP2684196B2 - ワークステーシヨン - Google Patents

ワークステーシヨン

Info

Publication number
JP2684196B2
JP2684196B2 JP63247552A JP24755288A JP2684196B2 JP 2684196 B2 JP2684196 B2 JP 2684196B2 JP 63247552 A JP63247552 A JP 63247552A JP 24755288 A JP24755288 A JP 24755288A JP 2684196 B2 JP2684196 B2 JP 2684196B2
Authority
JP
Japan
Prior art keywords
cache
virtual
flush
bits
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP63247552A
Other languages
English (en)
Other versions
JPH01108650A (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 JPH01108650A publication Critical patent/JPH01108650A/ja
Application granted granted Critical
Publication of JP2684196B2 publication Critical patent/JP2684196B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、各ユーザーがマルチ稼働プロセスを持つこ
とができるようにするオペレーテイングシステムを含
む、書戻しキヤツシユを有するマルチユーザーオペレー
テイングシステムにおいて仮想アドレツシングを用いる
ワークステーシヨンにおけるハードウエアおよびソフト
ウエアのある改良に関するものである。これに関連し
て、説明の便宜上、特定のマルチユーザー、マルチ稼動
プロセスオペレーテイングシステム、すなわち、Unix
(商標)(ユニツクス)オペレーテイングシステムに関
連して本発明を説明することにする。しかし、本発明は
ユニツクスオペレーテイングシステムに関連して使用す
ることに限定されるものではなく、特許請求の範囲を、
ユニツクスオペレーテイングシステムのみに使用できる
本発明をカバーするものと解すべきではない。
〔従来の技術〕
ユニツクスをベースとするワークステーシヨンにおい
ては、システム素子の1つとして仮想アドレス書戻しキ
ヤツシユを含むことによりシステムの性能を大幅に向上
できる。本発明は、そのようなシステムにおけるデータ
保護のサポートと仮想アドレスの再割当てのための効率
的な技術を記述するものである。本発明は、仮想アドレ
ス空間をおのおの有するマルチ稼動プロセスと、ユーザ
ープログラムには見えないやり方でそれらのプロセスに
より共用されるオペレーテイングシステムをサポートす
ることを特徴とするものである。
仮想アドレスを再割当てすべき時に、選択されたブロ
ツクを仮想キヤツシユから除去するためにキヤツシユ
「フラツシユ」ロジツクが用いられる。ある範囲のアド
レス(たとえば仮想ページアドレス)を再割当てするも
のとすると、この範囲内からのアドレスの全ての例を、
新しいアドレス再割当てを行うことができるようになる
前にキヤツシユから除去せねばならず、または「フラツ
シユ」しなければならない。タグ中の有効ビツトを無効
にし、ブロツクが修正されていれば、ブロツクをメモリ
に書戻すことによりキヤツシユブロツクが「フラツシ
ユ」される。「フラツシユ」ロジツクは「制御空間」内
の「フラツシユ」指令を識別するロジツクと、フラツシ
ユ指令内の特定の仮想アドレスフイールドを、キヤツシ
ユのブロツクアドレス空間内、またはそれのタグ仮想ア
ドレスフイールド内対応する仮想アドレスフイールドに
一致させるロジツクと、CPU(または許されるならばDVM
A装置)により発行された1つの「フラツシユ」指令の
結果としてマルチキヤツシユブロツクアドレスをフラツ
シユする(選択)ロジツクとを含む。「フラツシユ」ロ
ジツクは、一致するキヤツシユブロツクのキヤツシユ有
効タグを無効にするロジツクと、修正された一致ブロツ
クをメモリへ書戻すことを可能にするロジツクとを更に
含む。
本発明はハードウエアと、オペレーテイングシステム
の核内に挿入された特定の「フラツシユ」指令とを含
む。
〔実施例〕
以下、図面を参照して本発明を詳しく説明する。
第1図は、本発明が実現される仮想アドレスを用いる
典型的なワークステーシヨンの機能ブロツク図である。
とくに、そのワークステーシヨンはマイクロプロセツ
サすなわち中央処理装置(CPU)11と、キヤツシユデー
タアレイ19と、キヤツシユタグアレイ23と、キヤツシユ
ヒツト比較器25と、メモリ管理ユニツト(MMU)27と、
主メモリ31と、書戻しバツフア39と、ワークステーシヨ
ン制御ロジツク40とを含む。そのワークステーシヨン
は、希望により、コンテキストIDレジスタ32と、キヤツ
シユフラツシユロジツク33と、直接仮想メモリアクセス
(DVMA)ロジツク35と、マルチプレクサ37とを含むこと
もできる。
本発明においては、キヤツシユフラツシユロジツク33
と、キヤツシユヒツト比較器25と、ワークステーシヨン
制御ロジツク40とを変更することができる。それらの変
更により仮想アドレス書戻しキヤツシユの性能を向上さ
せることができる。
ワークシテーシヨンの必要な要素についての説明 CPU11はメモリおよびおそらくは他のシステム装置内
の命令とデータを(アドレスの翻訳に続いて)アドレス
するためにバスサイクルを発する。CPUアドレス自体
は、大きさが(A)ビツトの仮想アドレスである。その
仮想アドレスは仮想コンテキスト内の命令またはデータ
のバイトを独特に識別する。バスサイクルは、バスサイ
クルを独特に識別するために1つまたは複数の制御フイ
ールドにより特徴づけることができる。とくに、「形
式」フイールドはもちろん、読出し/書込み標識が求め
られる。このフイールドはメモリ命令と、データアドレ
ス空間、およびバスサイクルのためのアクセス優先権
(すなわち、「スーパーパイザ」または「ユーザー」ア
クセス優先権)を識別する。仮想アドレツシングを有
し、マルチユーザーオペレーテイングシステムをサポー
トできるCPUはMC68020である。
第3図に示されている書戻しキヤツシユを有する仮想
アドレスワークステーシヨン中の別の素子は仮想アドレ
スキヤツシユデータアレイ19である。その仮想アドレス
キヤツシユデータアレイは2N個のデータブロツクとして
構成される。各データブロツクは2Mバイトを含む。各ブ
ロツク内の2Mバイトは低次のMアドレスバイトにより独
特に識別される。2N個の各ブロツクは次の最低のNアド
レスビツトによりアレイ素子として独特にアドレスされ
る。仮想アドレスキヤツシユとして、キヤツシユ内の
(M+N)ビツトのアドツシングバイトは(A+C)ビ
ツトの仮想アドレス空間からのものである。(Cビツト
は、後述する選択的コンテキストIDレジスタ32からのコ
ンテキストビツトである。)(N+M)ビツトは、翻訳
されていないPページビツトに、仮想ページアドレスを
定める(A+C−P)ビツトからの付加された仮想ビツ
トを加えたものである。
ここで説明する仮想アドレスキヤツシユデータアレイ
19は「直接マツプされる」キヤツシユ、または「ワンウ
エイセツト連想」キヤツシユである。このキヤツユ構成
を本発明の説明のために用いるが、それは本発明の範囲
を限定することを意味するものではなく、マルチウエイ
セツト連想キヤツシユに関連して本発明を用いることも
できる。
第1図に示す別の用空される素子は仮想アドレスタグ
アレイ23である。そのタグアレイは、キヤツシユデータ
アレイ19中の各データブロツクごとに1つのタグアレイ
素子を有する。したがつて、タグアレイは2N個の素子を
含む。各素子は有効ビツト(V)と、修正されたビツト
(M)と、2個の保護ビツト(P)と、仮想アドレスフ
イールド(VA及びオプションとしてCX)とを有する(第
3図)。保護ビツトはスーパーバイザ保護ビツト(Supv
sr Prot)と書込み許可ビツトで構成される。仮想アド
レスフイールドの内容と、キヤツシユタグとデータアレ
イをアドレスするために用いられる下位アドレスビツト
とが、(A+C)ビツトの全仮想アドレス空間内のキヤ
ツシユブロツクを独特に識別する。すなわち、タグ仮想
アドレスフイールドは((A+C)−(M+N))仮想
アドレスビツトを含まなければならない。
キヤツシユ「ヒツト」ロジツク25は仮想アクセスアド
レスを仮想アドレスキヤツシユタグアドレスフイールド
の内容と比較する。アクセスアドレス内では、キヤツシ
ユ内の最下位のMビツトがブロツク内のバイトをアドレ
スし、最下位の次のNビツトがキヤツシユ内のブロツク
をアドレスし、残りの((A+C)−(M+N))ビツ
トは、キヤツシユ「ヒツト」ロジツクの部分として、タ
グ仮想アドレスフイールドと比較する。
キヤツシユ「ヒツト」ロジツクは、オペテーテイング
システムを共用するシステムに対して、ユーザー命令と
データのアクセスと、スーパーバイザ命令とデータのア
クセスとを識別せねばならない。それらの要求を満す
「ヒツト」の定義が第2a図に示されている。第2a図は比
較器20と、アンドゲート22と、オアゲート24と、アンド
ゲート26とを示す。
仮想アドレス空間内のアドレスを物理アドレスへ翻訳
するMMU27は別の要求される素子である。MMU27は寸法
(2P)バイトのページを基にして構成される。それらの
ページは寸法が(2S)ページのセグメントとしてまとめ
られる。あるページ内でのアドレツシングは(P)ビツ
トを要する。それらの(P)ビツトは翻訳を要しない物
理アドレスビツトである。MMU27の役割は仮想ページア
ドレスビツト((A+C−P)または(A−P))を
(MM)ビツトの物理ページアドレスに翻訳することであ
る。そうすると、複合物理アドレスは、ページ当り
(P)ビツトを有する(MM)ページのアドレスビツトで
ある。
MMU27は保護チエツク、すなわち、アクセスバスサイ
クル優先権をページに割当てられた保護と比較するため
の場所(locus)でもある。この点を説明するために、
ページに割当てることができる2種類の保護がある。そ
れらはスーパーバイザ/ユーザーアクセスデジグネータ
および書込み保護/書込み許可デジグネータである。本
発明はそのような種類の保護に限定されないが、このペ
ージ保護が与えられると、「ユーザー」優先権バスサイ
クルが「スーパーパイザ」保護を有するページをアクセ
スするか、「書込み」バスサイクルが「書込み保護」デ
ジグネーシヨンを有するページをアクセスするならば、
「保護が侵害される」結果となることがある。
MMUを介するMMU保護チエツクの応用が第2c図に示され
ている。これはインバータ28と、アンドゲート30a,30b
と、オアゲート34と、アンドゲート36とを有する。ま
た、仮想アドレス書戻しキヤツシユでは、保護チエツク
の概念を、MMUをアクセスしないキヤツシユのみCPUサイ
クルまで拡張できる。そのキヤツシのみ保護ロジツクが
第2b図に示されている。第2b図にはインバータ42と、ア
ンドゲート44a,44bと、オアゲート46と、アンドゲート4
8とが示されている。
第1図には主メモリ31が示されている。その主メモリ
は物理アドレス空間内でアドレスできる。主メモリアク
セスの制御はワークステーシヨン制御ロジツク40を介し
て行われる。
書戻しバツフア39は、キヤツシユデータアレイ19から
ロードされたキヤツシユデータの1ブロツクを含む。既
存のキヤツシユブロツクを移動させる時は書戻しバツフ
ア39が常にロードされる。その理由は、キヤツシユブロ
ツクを新しい内容で更新する必要があるからであり、ま
たはブロツクをフラツシユせねばならないからである。
いずれの場合にも、書戻しキヤツシユにおいては、既存
のキヤツシユブロツクのためのキヤツシユタグの状態
が、このブロツクをメモリへ書戻すべきかどうかを決定
する。ブロツクが有効で、下記のように、修正すること
をタグが示したとすると、キヤツシユブロツクが移動さ
せられた時に、ブロツクの内容をメモリ31に書戻さなけ
ればならない。書戻しバツフア39は、そのデータがメモ
リへ書込まれる前にそのデータを一時的に保持する。
ワークステーシヨン制御ロジツク40は、第1図に示さ
れているワークステーシヨン素子の全体の動作を制御す
る。好適な実施例においては、制御ロジツク40は、第4
図,第6図,第7図および第13図に示され、キヤツシユ
フラツシユロジツク33の説明とともに以下に詳しく説明
するいくつかの状態マシンとして実現される。キヤツシ
ユフラツシユロジツク33の部分も、この好適な実施例に
おいては、ワークステーシヨン制御ロジツクにまとめら
れる。
ワークステーシヨンの選択的な素子についての説明 コンテキストIDレジスタ32は、仮想コンテキストすな
わちプロセスを識別する別の仮想アドレスビツトを含
む、選択的な外部アドレスレジスタである。Cビツトを
含むこのレジスタは(2**C)使用中ユーザープロセ
スの全てを識別する。全ての仮想アドレス空間の大きさ
は2**(A+C)である。
2**(A+C)のこの仮想アドレス空間における重
要な成分はオペレーテイングシステムにより占められる
アドレス空間である。オペレーテイングシステムは全て
のユーザープロセスに共通であるから、全ての使用中ユ
ーザープロセスにわたつて共通のアドレス空間である。
すなわち、(C)コンテキストビツトはオペレーテイン
グシステム内のページのアドレスを修飾するのに何の意
味も持たない。むしろ、オペレーテイングシステムは、
各アクテイブコンテキストに対する仮想アドレス空間の
(2**A)バイトのトツプにおける共通の独占領域内
に含まれると仮定される。この領域内にはどのユーザー
ページも含まれない。したがつて、2種類のユーザープ
ロセスに対するオペレーテイングシステムページアドレ
スは同一であり、2つのプロセスに対するユーザーペー
ジは異なる。オペレーテイングシステム内の全てのペー
ジは「スーパーバイザ」保護を有するものとしてマーク
される。
キヤツシユフラツシユロジツク33もこのワークステー
シヨンにおける選択的な素子である。しかし、キヤツシ
ユフラツシユロジツク33は含まれ、仮想アドレス、書戻
しキヤツシユシステムの性能を向上させるために、以下
に述べるように変更される。簡単にいえば、キヤツシユ
フラツシユロジツク33は次のように動作する。ある範囲
のアドレス(たとえば仮想ページアドレス)を再割当す
るものとすると、この範囲内からのアドレスの全ての例
を、新しいアドレス割当てを行うことができる前にキヤ
ツシユから除去せねばならない、または「フラツシユ」
せねばならない。それのタグ中の有効ビツトを無効に
し、キヤツシユブロツクが修正されておれば、そのブロ
ツクをメモリに書戻すことによりキヤツシユブロツクが
「フラツシユされる」。
バスサイクルのソースとしてのCPU11に加えて、ワー
クシテーシヨンはDVMAロジツク35のような1つまたは複
数の外部入力/出力(I/O)装置を含むことができる。
それらの外部I/O装置はバスサイクルを発生できる。そ
れらのバイサイクルは仮想アドレス空間の1つまたは複
数の「種類」のアクセスでCPUを並列にする。CPU11また
はDVMAロジツク35からの仮想アドレスは、コンテキスト
IDレジスタ32内のアドレスとともにアクセスアドレスと
呼ばれる。
別の選択的な素子はデータバスバツフア37である。こ
の実施例においては、データバスバツフア37は、32ビツ
トバスと64ビツトバスの間のデータの流れを制御する2
つのバツフアとして実現される。CPUデータバスが32ビ
ツトで、キヤツシユデータアレイデータバスが64ビツト
の時にそれらのバツフアは必要とされる。
本発明のワークステーシヨンに独特な素子についての説
明 本発明においては、マルチアクテイブユーザーコンテ
キストにまたがる共用オペレーテイングシステムと、ア
クセス優先権およびページ保護の使用を考慮に入れるた
めに、キヤツシユ「ヒツト」の定義が修正される。その
ようにすることにより、書戻し仮想アドレスキヤツシユ
内の保護の侵害の効率的な支持を達成できる。とくに、
上記保護の定義を実現するために、下記のキヤツシユ
「ヒツト」定義が用いられる。
キヤツシユ「ヒツト」は3つの要求を有する。
1)キヤツシユブロツクは有効な内容を有するものとし
てマークせねばならない。
2)(C)コンテキストビツトを無視して、アクセス仮
想アドレスビツト(A−(N+M))は、(N)バスア
クセスビツトによりアドレスされるキヤツシユブロツク
において、対応するタグ仮想アドレスフイールドビツト
(A−(N+M))に一致せねばならない。
3)アクセスコンテキストIDの(C)ビツトはキヤツシ
ユタグ仮想アドレスフイールド内の対応する(C)コン
テキストビツトに一致しなければならないか、キヤツシ
ユタグスーパーバイザ保護ビツトをアクテイブにセツト
せねばならない。
キヤツシユ「ヒツト」のこの定義により、キヤツシユ
保護チエツクを、キヤツシユ誤り取扱い中にMMUチエツ
クにより定義するのではなく、仮想アドレスキヤツシユ
に直接加えることが可能にされる。
1)アクセスバスサイクルが「ユーザー」優先権を持
ち、キヤツシユブロツクが「スーパーバイザ」保護を有
するか、 2)アクセスが書込みバスサイクルで、キヤツシユブロ
ツクが書込み保護を有する、 ものとすると、キヤツシユ「ヒツト」についての「保護
の侵害」が行われる結果となる。
本発明のキヤツシユヒトツト検出器25の実現が前記第
2a図に示されている。
本発明は、仮想アドレス書戻しキヤツシユにおいて仮
想アドレス再割当てを効率的に実現するために、制御空
間内の1組の「フラツシユ」指令を利用する。
一般に、フラツシユ指令は制御空間内のバスサイクル
である。それらのバスサイクルは、独特な種類の各フラ
ツシユ指令に対して、仮想アドレスキヤツシユタグ内の
対応する仮想アドレスフイールドと比較すべき1つまた
は複数の仮想アドレスフイールドを指定する。「一致」
アドレスフイールドはハードウエアにキヤツシユブロツ
クを「フラツシユ」させる。
1)「有効」および「修正された」とマークされている
一致キヤツシユブロツクはメモリへ書戻される。これは
主メモリに対するキヤツシユブロツク「書戻し」バスサ
イクルを必要とする。「書戻し」バスサイクルは全キヤ
ツシユブロツクを主メモリの適切な物理アドレスに書込
む。このサイクルの一部として、キヤツシユブロツクを
識別する仮想アドレスがMMUを介して物理メモリアドレ
スへ翻訳される。この翻訳中は、キヤツシユブロツクに
対する保護チエツクが禁止される。MMUを介するアドレ
ス翻訳は、フラツシユ指令が終つた時に制御をプロセツ
サ戻す前に終了させられる。
2)修正されているか否かを問わず、「有効である」ど
の一致キヤツシユブロツクも無効であるとマークされ
る。
先に述べたように、「書戻し」バスサイクルはキヤツ
シユブロツク仮想アドレスを物理アドレスへ翻訳するこ
とを要求する。フラツシユ指令と「書戻し」バスサイク
ルの概念は、仮想アドレスタグフイールドと物理アドレ
スタグフイールドを含む仮想アドレスキヤツシユまで拡
張することもできる。物理アドレスタグフイールドが存
在するものとすると、主メモリへの「書戻し」バスサイ
クルが行われる時には翻訳は求められない。しかし、本
発明は、仮想アドレス書戻しキヤツシユをサポートする
ために仮想アドレスタグを使用することに向けられる。
前記フラツシユ指令は1つのキヤツシユブロツクに適
用される。マルチキヤツシユブロツクをチエツクして、
フラツシユ指令のアドレスフイールドに一致するブロツ
クをフラツシユするハードウエアを1つのフラツシユ指
令が動作させるように、フラツシユ指令の適用を拡張す
ることもできる。最後にフラツシユされたキヤツシユブ
ロツクのアドレス翻訳は、指令が終つた時に制御をプロ
セツサへ戻す前に、終ることを求められるだけである。
3つの特定のフラツシユ指令を下記に示す。他の類似
の指令を定めることができるが、「フラツシユ」指令の
範囲を最小のアドレス範囲に効果的に限定するのにそれ
ら3つのフラツシユ指令はとくに有用である。それらの
「フラツシユ」指令はマルチコンテキスト、共用オペレ
ーテイングシステムアドレス空間の実現するのにも効果
的である。
1.コンテキスト一致フラツシユ指令 コンテキスト一致フラツシユ指令は、キヤツシユか
ら、ユーザー保護されたページからの指定されたコンテ
キスト内の全てのキヤツシユブロツクをフラツシユす
る。その指令は(C)ビツトのコンテキスト識別子を指
定する。一致基準は、第1に、キヤツシユタグがユーザ
ー保護を有するものとしてブロツクを識別することを求
め、第2に、フラツシユ指令の(C)ビツトフイールド
がタグの対応する(C)ビツトコンテキスト識別フイー
ルドに一致することを求める。
コンテキスト一致フラツシユ指令は、新しいアクテイ
ブコンテキストがMMU内の古いコンテキストに置き換つ
た時には、常にキヤツシユアドレツシングの一貫性を確
保するために用いられる。MMUはキヤツシユブロツクの
仮想アドレスを翻訳することを要求されるから、古いコ
ンテキスト基準がMMUから除去される前にコンテキスト
一致フラツシユを行わなければならない。
2.ページ一致フラツシユ指令 ページ一致フラツシユ指令は、ページ保護とは無関係
に、指定されたページ内の全てのキヤツシユブロツクを
キヤツシユからフラツシユする。それは(A+C−P)
ビツトのページアドレスを指定する。一致基準は、第1
に、コンテキスト内の仮想ページアドレスを識別するフ
ラツシユ指令の(A−P)ビツトを対応する(A−P)
ビツトに一致させて、与えられたキヤツシユブロツクの
仮想ページアドレスを識別することである。それらの
(A−P)ビツトは、ページの大きさとキヤツシユの大
きさに応じて、キヤツシユタグ仮想アドレスフイールド
内、またはキヤツシユアドレスとキヤツシユタグ仮想ア
ドレスフイールドの組合わせ内とすることができる。
第2の一致基準は、i)キヤツシユブロツクのスーパ
ーバイザアクセス保護タグがアクテイブであること、ま
たは、ii)(C)ビツトのコンテキストIDレジスタがキ
ヤツシユブロツクの(C)ビツトの対応するコンテキス
トIDタグフイールドに一致すること、という2つの条件
のうちの1つを満すことである。
ページ一致フラツシユ指令は、ページ管理中に、全て
の基準をキヤツシユから仮想ページ−スーパーバイザ保
護またはユーザー保護を有する−へパージするために用
いられる。MMUはキヤツシユブロツクの仮想アドレスを
翻訳することを求められるから、ページを除去するため
にMMUが更新される前にそれを行わなければならない。
3.セグメント一致フラツシユ指令 セグメント一致フラツシユ指令は、ページ保護とは無
関係に、指定されたセグメント内の全てのキヤツシユブ
ロツクをキヤツシユからフラツシユする。それは、セグ
メントの寸法が(2**S)ページであるから、((A
+C)−(P+S))のセグメントアドレスを指定す
る。一致基準は、第1に、コンテキスト内のセグメント
を指定する、フラツシユ指令の(A−(P+S))ビツ
トフイールドが、与えられたキヤツシユブロツクに対す
るセグメントを識別する対応する(A−(P+S))ビ
ツトに一致することを求めることである。それらの(A
−(P+S))ビツトは、セグメントの寸法と、ページ
の寸法と、キヤツシユの寸法とに応じて、キヤツシユタ
グ仮想アドレスフイールド内、またはキヤツシユアクセ
スアドレスとキヤツシユタグ仮想アドレスフイールドの
組合わせ内に含まれることがある。
第2の一致基準は、i)キヤツシユブロツクのスーパ
ーバイザアクセス保護タグがアクテイブであること、ま
たは、ii)(C)ビツトのコンテキストIDレジスタがキ
ヤツシユブロツクの(C)ビツトの対応するコンテキス
トIDタグフイールドに一致すること、の2つの条件の1
つを満すことを求める。
ページ管理中に、全ての基準をキヤツシユから仮想セ
グメント−スーパーバイザ保護またはユーザー保護を有
する−までパージするためにセグメント一致フラツシユ
指令が用いられる。全仮想セグメントのページを新しい
仮想セグメントへ再び割当てなければならない時は、MM
Uの構造に応じて、それを要求できる。MMUはキヤツシユ
ブロツクの仮想アドレスを翻訳することを求められる
か、セグメントマツピングを除去するために、MMUが更
新される前にそれを行わなければならない。
フラツシユ指令の使用 上記3つの「フラツシユ」指令は、それぞれの「一
致」基準とともに、ユニツクス核内のオペレーテイング
システムによつてのみ実行される。フラツシユ指令を核
内に置くことが付録Aに記述されている。核内に「フラ
ツシユ」指令を適切に置くことにより、仮想アドレス書
戻しキヤツシユをサポートするためにユニツクスシステ
ムのための仮想アドレン再割当てを実現できる。
上記1組のフラツシユ指令は、付録Aに示すようにユ
ニツクス核で用いられる場合には、マルチアクテイブコ
ンテキストと、書込みキヤツシユまたは書戻しキヤツシ
ユを有するワークステーシヨンのためのそれらのコンテ
キストに共用されるオペレーテイングシステムとを有す
るユニツクスシステムに対して、仮想アドレスキヤツシ
ユにより求められるように、仮想アドレス再割当てをサ
ポートするメカニズムを実現する。
フラツシユ指令は、付録Aに示すようにユニツクス核
において使用される時は、そのようなキヤツシユの使用
がユーザーアプリケーシヨンプログラムにとつて明らか
であるように、ユニツクスシステム内の仮想アドレス書
戻しキヤツシユをサポートする。仮想アドレス書戻しキ
ヤツシユに固有のメモリ速度向上を利用するのに、ユー
ザープログラムの変更は求められない。
また、フラツシユ指令は、付録Aに示すようにユニツ
クス核に用いられる時は、ブロツク識別のために、物理
アドレスタグフイールドではなくて仮想アドレスタグフ
イールドのみを含む仮想アドレス書戻しキヤツシユ実現
をサポートする。物理アドレスタグフイールドを付加す
ることを避けると、仮想アドレス書戻しキヤツシユのた
めに必要なキヤツシユタグの数が最少となる。書戻しキ
ヤツシユは、ある点において、修正された任意のキヤツ
シユブロツクを主メモリへ書戻さなければならない。こ
の「書戻し」動作は、キヤツシユブロツクが新しいブロ
ツク内容で置き換えられた時(キヤツシユ「ミス」での
正常なブロツク置き換え)、またはこのキヤツシユブロ
ツクを含んでいるある範囲の仮想アドレスを再び割当て
る前にキヤツシユブロツクがフラツシユされた時に、行
うことができる。
キヤツシユタグが物理アドレスフイールドを含んでい
ないとすると、キヤツシユブロツクをメモリへ書込むこ
とができる前に、仮想アドレスタグを物理アドレスへ翻
訳せねばならない。キヤツシユフラツシユの場合には、
これは、フラツシユ一致の結果としてのキヤツシユブロ
ツク仮想アドレスフイールドの全てのアドレス翻訳を、
MMU内の仮想アドレス範囲のオペレーテイングシステム
の再割当ての前に終らなければならないことを意味す
る。本発明の2つの特徴は、一部は、この要求が下記の
2つで満されるようにするために責任を負う。
1)第1に、制御がプロセツサへ戻される前に、キヤツ
シユブロツク仮想アドレスの翻訳を終ることをフラツシ
ユ指令は求める。
2)第2に、仮想アドレス範囲の再割当ての前に、修正
された全てのキヤツシユブロツクのフラツシングを保障
する戦略的な場所に、付録Aに示すように、フラツシユ
指令が核内に構成される。
上記した1組の3つのフラツシユ指令は、それぞれの
「一致」基準とともに、付録Aに示すようにユニツクス
の核内に置かれた時に、効率的な仮想アドレス再割当て
メカニズムを構成する。そのメカニズムは、オペレーテ
イングシステムにより要求される仮想アドレス再割当て
の3つの場合に対して、 1)既存のアクテイブコンテキストが新しいコンテキス
トで置き換えられた時、 2)MMUの制限が、現在マツプされているセグメントの
新しいセグメントへの再割当てを要求する時、 3)メモリ内の物理ページを新しい仮想アドレスへ再割
当てすべき時、 は常に、仮想アドレス書戻しキヤツシユのためのフラツ
シユ性能を最適にするので効率的である。
これらの各場合をとくにカバーするために、フラツシ
ユ一致基準とともに3つのフラツシユ指令が定められ
る。ベースブロツクアドレスにおいてスタートし、それ
から固定されているアドレス範囲内にあらゆるブロツク
をチエツクするようにブロツクアドレスを増加すること
によりフラツシユ指令が発せられる。下記の2つの主な
理由で、上記フラツシユ指令はアドレス再割当てが効率
的である。
1)フラツシユ一致基準は、フラツシユアドレス範囲内
のフラツシングを要求するブロツクのみに、フラツシユ
されるブロツクの数を制限する。フラツシユ範囲の外側
の他の余分のアドレスはチエツクされるが、フラツシユ
はされない。
2)アドレスのフラツシングを求める3つの各ケースに
対して、定められているフラツシユ指令は、適切なキヤ
ツシユブロツクアドレス範囲にわたる1つのパスでキヤ
ツシユをチエツクすることを許す。たとえば、セグメン
トをフラツシユするために、セグメント内のあらゆるペ
ージをフラツシユせねばならない。セグメントフラツシ
ユが実現されないとすると、ページアドレスが変化する
ページフラツシユ指令のマルチパスをセグメントンフラ
ツシユの終了のために要求されることがある。
アドレス路のための仮想アドレスキヤツシユの好適な
実施例が第3図に示され、データ路に対する仮想アドレ
スキヤツシユが第5図に示されている。好適な実施例に
おけるフラツシユ制御ロジツクが第11図と第12図と、第
13図の状態マシンと、第14図のタイミング図に示すよう
に実現される。書込みのための最良のケースのタイミン
グ図が第8図に示され、読出しのための最良のケースの
タイミング図が第9図に示されている。
第1図を参照して先に述べた部品に加えて、第3図
は、現在の仮想アドレスを格納する仮想アドレスレジス
タ(VAR)51を含む。第3図に示されている本発明の素
子はキヤツシユフラツシユロジツク33と、キヤツシユタ
グアレイ23内の保護ビツト(P)と、キヤツシユヒツト
検出ロジツク25の一部であるフラツシユ一致ロジツク24
とである。
第5図には、メモリ31へ書込むデータまたはメモリ31
から読出されたデータ、あるいはキヤツシユデータアレ
イを格納するデータレジスタ61も示されている。
第2図,第3図,第5図,第11図,第12図において、
図示を不必要に混乱させることを避けるために、必ずし
も全ての制御線が示されているわけではない。しかし、
本発明を正しく動作させるために必要な制御線を、第4
図,第6図,第7図,第13図に示されている状態マシン
の流れ図、第8〜10図と第14図に示されているタイミン
グ図とから確かめることができる。
それらの流れ図においては下記の略語を用いる。
MUX−マルチプレクサ45 Sel−選択 VA−仮想アドレス RA−実アドレス OE−出力イネイブル Ack−確認応答 Cache Hit?−キヤツシユ「ヒツト」ロジツク25がキヤツ
シユヒツトを検出したか(第2a図) Cache Protect Violation?−制御ロジツク40がキヤツシ
ユ保護侵害を検出したか(第2b図) Memory Busy?−メモリビジーがアサートされたか MMU Protect Viol?−制御ロジツク40がMUU保護侵害を検
出したか(第2c図) RAR−実アドレスレジスタ51 CLK−クロツク Adr−アドレス Mem Adr Strobe−メモリ31アドレスストローブ VAR−仮想アドレスレジスタ54 Mem Adr Ack?−メモリアドレス確認応答がメモリ31によ
りアサートされたか Mem Data Strobe0?−メモリデータストローブ0がアソ
ートされたか Nem Data Ack0?−メモリデータ確認応答0がアサートさ
れたか Mem Data Strobe1?−メモリデータストローブ1がアサ
ートされたか Mem Data Ack1?−メモリデータ確認応答1がアサートさ
れたか Clk Write Back Buffer−クロツク書戻しバツフア39 CPU Read Cycle?−CPU11は読出しサイクルにあるか Clk Data Reg−クロツクデータレジスタ61 Valid and Modifed Write−制御ロジツク40がバツクデ
ータを検出したか、有効ビツト(V)および修正された
ビツト(M) Start Write Back Cycle?−制御ロジツク40が書戻しサ
イクルのスタートをアサートしたか 第8図乃至第10図と第14図のタイミングに類似の略語
が用いられる。
第4a図と第4b図に示されているアドレス状態マシン
が、キヤツシユ19のアドレス取り部に関連するある制御
を定めるメモリ31からの全てのブロツクデータの転送が
成功したら、それに続いてキヤツシユタグ23が状態
(w)中に有効として書込まれる。状態(c)に続くCa
che Protection Violationを含むことにより本発明は統
合される。保護の侵害がキヤツシユヒトツで見出された
とすると、CPUバスサイクルが直ちに終らされ、バス誤
りがCPUに応答する。翻訳されたアドレスについてのMMU
保護の侵害が後で状態(g)に続いて行われる。
第6a〜6b図に示すデータ状態マシンは、キヤツシユの
データ転送部に関連するある制御を定める。また、状態
(c)に続くCache Protection Violationに対するテス
トを含むことにより本発明はサポートされる。翻訳され
たアドレスについてのMMU Protection Violationテスト
が状態(g)において同様に行われる。
第7図に示す書戻し状態マシンはメモリへの書戻しバ
スサイクルの制御を定める。書戻し制御とデータが路が
キヤツシユアクセス制御およびデータ路とは独立してい
るから、そのサイクルはCPUキヤツシユアクセスと並列
に行うことができる。下記のように、「メモリビジー」
信号は、前の書戻しサイクルが終了するまでアドレス状
態マシンとデータ状態マシンを待たせる。
第8図に示す書込みキヤツシユ誤りタイミング図は、
キヤツシユをミスしたメモリへのCPU書込みバスサイク
ルの全体のタイミングを定める。キヤツシユヒツトおよ
び保護チエツクはこの図のサイクル(c)で起る。
誤り取扱いシーケンスの一部が、サイクル(i)と
(m)で書戻しバツフア39へ置換されている現在のキヤ
ツシユブロツクのローデイングを含む。現在のキヤツシ
ユブロツクのための翻訳されたアドレスもサイクル
(o)において実アドレスレジスタ51にロードされる。
現在のキヤツシユブロツクが有効で、前のCPU(またはD
VMA)書込みサイクルから修正されたとすると、そのキ
ヤツシユブロツクが、第10図のメモリデータバスタイミ
ングと第7図の書戻し状態マシンに記載されている書戻
しバスサイクル中にメモリ31に書戻される。
ブロツク読出しメモリバスサイクルの最初のデータ転
送時に、CPU書込みデータがメモリから戻されたブロツ
クデータと一緒にされる。サイクル(q)〜(u)の間
はバツフア37を制御するCPU書込み出力イネブルは、CPU
により書込まれるべきバイトのみに対してアクテイブで
あり、データレジスタ61を制御するデータレジスタ出力
イネイブルは他の全てのバイトに対してアクテイブであ
る。第2のデータ転送中、サイクル(w)は、全てのバ
イトに対するデータレジスタ出力イネイブルがアクテイ
ブである。
第9図に示されている読出しキヤツシユミスタイミン
グ図は、キヤツシユをミスするメモリ内のキヤツシユで
きるページに対するCPU読出しバスサイクルの全体のタ
イミングを定める。この図では、キヤツシユヒトツと保
護チエツクがサイクル(c)で起る。
ミス取扱いシーケンスの一部が、サイクル(i)と
(m)において、置換されている現在のキヤツシユブロ
ツクの書戻しバツフア39へのローデイングを含む。サイ
クル(o)において、現在のキヤツシユブロツクに対す
る翻訳されたアドレスも実アドレスレジスタ51にロード
される。現在のキヤツシユブロツクが有効で、前のCPU
(またはDVMA)書込みサイクルから修正されたとする
と、このキヤツシユブロツクは、第10a図と第10b図に示
されているメモリデータバスタイミングと第7図に示さ
れている書戻し状態マシンに記載されている、書戻しバ
スサイクル中にメモリ31へ書戻される。
状態(q)〜(u)においてはアクテイブである、制
御信号CPU読出し出力イネイブルによりイネイブルされ
るバツフア37を介してデータをCPUへバイパスすると同
時に、状態(s)においてキヤツシユを更新することに
より、データはCPUへ読込まれる。ブロツク読出しメモ
リバスサイクルの初めの64ビツト転送において「失つた
データ」と、次の転送における別の64ビツトの「失つた
データ」とを常に戻すようにメモリは構成される。CPU
読出しバスサイクルデータが戻された後で、メモリから
の第2のデータ転送でキヤツシユが更新されている間に
CPUは内部サイクルを実行できる。
第10a図と第10b図に示されているメモリデータバスタ
イミングはブロツク読出しバスサイクルとブロツク書戻
しバスサイクルのタイミングを示す。キヤツシユブロツ
クの寸法は128ビツトであるから、各キヤツシユブロツ
ク更新は2回のデータ転送を要求する。上記のように、
CPU11によりアドレスされるデータを含んでいる64ビツ
トは、ブロツク読出しバスサイクルに対する1回目の転
送で常に戻される。書戻しサイクル中はアクテイブであ
る「メモリビジー」制御信号は、前の書戻しサイクルが
終了できるまで、次のキヤツシユミスサイクルの開始を
禁止するために用いられる。
第11図に示されているキヤツシユフラツシユロジツク
33はフラツシユ制御器の制御とデータ路の概略を示すも
のである。そのフラツシユ制御器は、マルチアクテイブ
ユーザーコンテキストと共用オペレーテイングシステム
を有するシステムに対して、本発明のキヤツシユフラツ
シユ動作を実現する。キヤツシユフラツシユロジツクは
アンドゲート48と、フリツプフロツプ49と、フラツシユ
アドレスレジスタ52と、インクリメンタ50と、アンドゲ
ート55と、オアゲート58とを有する。
アドレスされたキヤツシユブロツクをフラツシユすべ
きかどうかを判定するために、3つのフラツシユ一致信
号がキヤツシユフラツシユロジツク33により用いられ
る。3つのフラツシユ一致信号には、CPUにより発生さ
れる3つのフラツシユ指令が対応する。
(コンテキストフラツシユ指令)AND(コンテキス
トフラツシユ一致信号) OR (セグメントフラツシユ指令)AND(セグメントフ
ラツシユ一致信号) OR (ページフラツシユ指令)AND(ページページフラ
ツシユ一致信号) であるとすると、フラツシユ一致が起るといわれる。
そのようなフラツシユ一致ロジツクが第12図に示され
ている。このロジツクは比較器60と、アンドゲート62
と、インバータ64と、オアゲート66と、アンドゲート68
とを有する。
フラツシユ制御ロジツク33は2つの異なるフエーズを
含む。それらのフエーズは第13図のフラツシユ状態マシ
ンにおける別々のシーケンスとして示されている。第1
のフエーズはCPUからのフラツシユ指令を復号するこ
と、フラツシユ制御状態マシンのためのバス支配権を得
ることを含む。フラツシユ指令は制御空間(機能コード
ビツトFC(2:0)=0×3により識別される)においてC
PUにより発せられる。制御空間内では、4つ高位のアド
レスビツトA(31:28)=0×Aがフラツシユ指令を指
示する。指令に対するアドレスフイールドA:(27:0)
は、データアクセスのための28ビツト仮想アドレスフイ
ールドに対応する。フラツシユ指令データビツトDD(1:
0)はフラツシユの種類を符号化する。フラツシユ指令
が復号された後で、アドレスフイールドA(27:9)がフ
ラツシユの種類と一緒にラツチされる。バス支配権を得
るためにバス要求信号がCPUに対してアサートされる。
第2のフエーズは、DVMA装置としてキヤツシユンフラ
ツシユロジツク33を用いて32個のキヤツシユブロツクを
テストし、必要があればフラツシユするため、DVMAサイ
クルを実行することを含む。このDVMA装置は、フラツシ
ユ指令から捕えられた仮想アドレスA(27:9)に、内部
5ビツトフラツシユアドレスカウンタ50からのアドレス
ビツトA(8:4)を加えたものでキヤツシユブロツクを
アドレスする。各キヤツシユブロツクは3つのサイクル
でチエツクでき、「フラツシユ一致」条件を決定するた
めに3つのフラツシユ一致信号がフラツシユ指令ラツチ
55によりゲートされる。「フラツシユ一致」により、無
効にされているキヤツシユブロツクと、書戻し状態マシ
ンを介してメモリへ書込まれる修正されたブロツクとな
る。32のブロツクチエツクが終つてから、バス支配権を
CPUへ返すことができる。
DVMA装置として、キヤツシユフラツシユロジツク33は
バス所有権のための他のDVMA装置と競合することに注目
されたい。可能な3つのDVMA装置のうち、イーサネツト
(図示せず)は最高の優先権を持ち、キヤツシユフラツ
シユロジツク33が2番目の優先権を持ち、VMEバセ装置
が3番目の優先権を持つ。フラツシユ制御状態マシンは
全てのDVMA装置に対する完全な仲裁記述を含まず、むし
ろ、フラツシユに関連するロジツクのみを含む。
第13図に示されているキヤツシユフラツシユ状態マシ
ンは、フラツシユ動作を制御する4つの相互作用マシン
を有する。それら4つのマシンはCPUフラツシユ指令の
復号と、32のキヤツシユブロツクへのそれの応用とを制
御する。それら4つのマシンを以下に記す。
1)指令復号マシンはCPUにより実行されるフラツシユ
指令を復号する。フラツシユ指令を復号すると、フラツ
シユ仮想アドレスA(27:9)とフラツシユ指令の種類と
がラツチされる。フラツシユ状態マシンに対するバス支
配権を得るためにCPUに対するバス要求をアサートす
る。それは、下記のDVMAマシンを起動させるためにフラ
ツシユ要求信号のアサートも行う。
2)DVMAマシンは、CPUのバス許可アサートにより示さ
れるように、CPUからのバス支配権を得、バス許可確認
応答をアサートすることによりその支配権を保持する。
それはフラツシユと、高位の優先権のイーサネツト要求
とを仲裁する。
3)フラツシユ比較マシンはそれのアドレスカウンタA
(8:4)をフラツシユ要求信号で初期化する。そのマシ
ンは、フラツシユG0がDVMAマシンでアサートされる限り
は、キヤツシユブロツクのチエツクを続ける。フラツシ
ユG0がデアサートされると、現在のブロツクフラツシユ
が終つた時にフラツシユ実行信号がセツトされる。それ
は、支配権をイーサネツトのハンドラに許可したことを
DVMAマシンに合図する。フラツシユ一致が検出される
と、フラツシユ一致マシンを起動するためにフラツシユ
ブロツク要求信号がアサートされる。フラツシユ一致マ
シンが終ると、このマシンは書戻し要求信号を戻して現
在のキヤツシユブロツクのマシンの取扱いを終了する。
4)フラツシユ一致マシンはキヤツシユデータを書戻し
バツフア39にロードし、翻訳されたキヤツシユアドレス
を実アドレスレジスタ51においてクロツクし、キヤツシ
ユタグ33を無効にする。保護チエツクが実行されないこ
とに注意されたい。終ると、書戻し要求信号がアサート
される。キヤツシユブロツクが修正されるとしてマーク
されるとすると、書戻し状態マシン(第7図)を起動す
るためにスタート書戻しサイクル信号もアサートされ
る。
第14図はキヤツシユフラツシユタイミングを示し、
「フラツシユ一致」の場合にはブロツクフラツシユのタ
イミングを記述するものである。この条件が状態(c)
でテストされる。ブロツクは状態(k)で無効にされ
る。ブロツクが「フラツシユ一致」を満し、かつ修正さ
れたとすると、それをメモリに書戻さなければならな
い。書戻し状態マシンを開始させるために「スタート書
戻しサイクル」信号が状態(g)でアサートされる。
ユニツクスオペレーテイングシステムのために本発明
の仮想アドレス書戻しキヤツシユをサポートするために
必要な核の変更を付録Aに示す。
付録A 仮想アドレスキヤツシユのための核設計文書 I.不変条件 仮想アドレスキヤツシユ(以下、単にキヤツシユとい
う)の正確を保証するために、下記の不変条件を常に真
とする。
エントリがキヤツシユ内であるとすると、仮想アドレ
スから物理アドレスへのマツピングは正しくなければな
らない。
これは、下記の理由から、システムの正確さのための
十分条件である。
マツピングが正しい間は、キヤツシユからバイト/語
を読取ることは、キヤツシユがターンオフされていて、
そのバイト/語をMMUを介して物理メモリから読出すこ
とと同じである。したがつて、読取りは正しい。キヤツ
シユへ書込まれるバイト/語がフラツシユされた時に、
そのバイト/語は対応するメモリへ書込まれる。したが
つて、キヤツシユ内のバイト/語がフラツシユされた時
にマツピングを正しく保つ限り、キヤツシユへの書込み
は、キヤツシユがターンオフされていて、MMUを介して
の物理メモリへの書込みと同じである。したがつて、書
込みは正しい。
仮想から物理へのマツピングが不正確になる前に、影
響を及ぼされるキヤツシユ線をフラツシユしたとする
と、下記の不変条件を保てることが明らかである。
II.キヤツシユフラツシング戦略 1)キヤツシユのフラツシングには時間がかかるから、
できればキヤツシユフラツシングを避ける。SUN−3/200
マシンでは、ページフラツシユは50マイクロ秒より短い
時間はかからず、セグメントすなわちコンテキストのフ
ラツシユは、ソフトウエア命令のオーバヘツドを除き、
400マイクロ秒より短い時間はかからない。
2)二重にマツプされる仮想アドレスに対しては、両方
の仮想アドレスを同時にアクセスできるとすると、Sun
−3アーキテクチヤマニユアルに記載されているよう
に、それらのアドレスの下位17ビツト、すなわち、モジ
ユロ128k、で一致するようにそれらのレジスタを構成す
べきである。他の場合、すなわち、それらのアドレスが
1度に1つアクセスされると、この時には現在用いられ
ているマツピングが正しいものと考え、他のマツピング
は不正確であると考える。すなわち、現在用いられてい
ない他のマツピングの仮想アドレスはキヤツシユ内にな
い。
3)a)仮想アドレスキヤツシユのないシステムでも1d
ev/memのアクセスは一貫することを保障されず、b)そ
のように付加された不一致が最小であり(そのような使
用のほとんどが非実行プロセスのu領域に対するもので
あり、それらのuページはコンテキストスイツチ中に既
にフラツシユされているからである)、c)システムを
キヤツシユのないシステムとして挙動させることは、1d
ev/memが開かれている間に、核が全システムのキヤツシ
ユをターンオフすることを要するから、1dev/memを読取
るという問題を無視する。このことは、どのユーザープ
ロセスも、1dev/memを開くことにより全体のシステムを
かなり低速にできる。
III.新しいルーチン 下記のルーチンが核に加えられる。
1)vac_ctxflush()がコンテキスト一致によりキヤツ
シユをフラツシユする。それは全てのキヤツシユ線をフ
ラツシユする。それらのキヤツシユ線の、キヤツシユタ
グ内の、スーパーバイザビツトはオフであり、かつ、そ
れらのキヤツシユ線の、キヤツシユタグ内の、コンテキ
ストidがMMUコンテキストレジスタのコンテキストidに
一致する。すなわち、それは全ユーザーコンテキストを
フラツシユする。vac_ctxflush()はmap.s.で定められ
る。
2)vac_segflush(segment_number)がセグメント一致
によりキヤツシユをフラツシユする。それは、核アドレ
ス空間、または現在のユーザーアドレス空間からの「se
gment_number」に一致する、キヤツシユタグのセグメン
トアドレス部(SUN−3のA<16−27>)を有する全て
のキヤツシユ線をフラツシユする。すなわち、それは核
セグメント、または現在のユーザーコンテキストのユー
ザーセグメントをフラツシユする。vac_segflush()は
map.s.で定められる。
3)vac_pageflush(virtual_address)はページ一致に
よりキヤツシユをフラツシユする。それは、核アドレス
空間から、または現在のユーザーのアドレス空間からの
「virtual_address」のページ数部に一致する、キヤツ
シユタグの、ページアドレス部(SUN−3のA<13−27
>)を有する全てのキヤツシユ線をフラツシユする。す
なわち、それは、核ページ、または現在のユーザーのコ
ンテキストのユーザーページをフラツシユする。vac_pa
geflush()はmap.s.で定められる。
4)vac_flush(virtual_address,number_of_bytes)
が、〔「virtual_address」,「virtual_address」+
「number_of_bytes」−1〕の範囲内にある、キヤツシ
ユタグのページアドレス部(SUN−3のA<13−27>)
を有するキヤツシユ線をフラツシユする。それは、核ア
ドレス空間からの、または現在のユーザーのアドレス空
間からのそれらの線をフラツシユする。vac_flush()
は、resume()からのような、ページより小さいものを
フラツシユし、または、pageout()からのような、あ
る数の隣接するページをフラツシユするために用いられ
る。vac_flush()はmap.s.で定められる。
5)vac_flushall()は全キヤツシユをフラツシユす
る。それは、dumpsys()から物理メモリをダンプする
前に、物理メモリへの全キヤツシユをフラツシユする。
それはデバツギング用のツールとしても使用できる。va
c_flushall()はvm_machdep.c.で定められる。
6)vac_disable_kpage(virtual_address)は、「virt
ual_address」でスタートする核ページのキヤツシング
をターンオフする。ユーザーページとの核ページの共用
の一貫性を強めるために、それは装置ドライバmmap()
ルーチンにより用いられる。vac_disalle_kpage()はv
m_machdep.c.で定められる。
7)vac_enable_kpage(virtual_address)は、「virtu
al_address」でスタートする核ページのキヤツシングを
ターンオンする。それ以上のユーザーページが核ページ
と共用されないことを装置ドライバmmapルーチンが知つ
たとすると、この核ページのキヤツシングを許すために
それはvac_enable_kpage()を呼出す。vac_enable_kpa
g()はvm_machdep.cで定められる。
IV.キヤツシユをどこで、どのようにしてフラツシユす
るか 1)vac_ctxflush()をctxfree()からvm_machdep.c
で呼出す。(コンテキストがMMUから自由にされた時、
したがつて、全コンテキストのマツピングが有効でない
時に、ctxfree()は呼出される。ctxfree()は、最も
古いコンテキストがMMUからどかされた時にctxallo
c()から呼出され、プロセスが交換された時にswapout
()から呼出され、プロセスが終らされた時にexit()
から呼出され、それのpteが拡張される前にこのコンテ
キストが見放された時にptexpand()から呼出され
る。) 2)vac_ctxfluss()をvm_proc.cでvrelvm()から呼
出す。(Vrelvm()はこのプロセスに関連するvmリソー
スを解放する。そうすると、プロセスの仮想ページと物
理ページの全てが解放させ、したがつて、現在のコンテ
キストの仮想から物理へのマツピングの全てを無効にす
る。) 3)vac_ctxflush()をvm_proc.cでexpand()から呼
出す。(これは、プロセスが縮み、ある仮想メモリへそ
れが与えかえす時に起る。) 4)vac_ctxflush()をvm_proc.cで呼出す。(vadvise
()に対するパラメータがVA_FLUSHの時は、現在のプロ
セスの全てのページ表エントリを無効にする。コンテキ
ストフラツシユはいくつかのページフラツシユより効率
的である。) 5)vac_segflush()をvm_machdep.cから呼出す。(Pm
egrelease()は、pmegが取えられた時に呼出される。p
megalloc()またはpmegallcres()によりpmegrelease
()は呼出すことができる。
6)vac_segflush()をvm_page.cでpmegload()から
呼出す。(穴の中のセグメントを自由にし、セグメント
マツプでSEGINVにセツトする。) 7)vac_pageflush()をvm_page.cでpageout()から
呼出す。(これは、ページ切れデモン(demon)により
無効であるとマークされた時である。) 8)vac_pageflush()をkern_mman.cでovadvise()か
ら呼出す。(これは、ovadvise()がページの無効をマ
ークした時である。) 9)vac_pageflush()をvm_machdep.cでmapout()か
ら呼出す。(Mapout()は、核仮想アドレスから物理ア
ドレスへマツピングを解放するために呼出される。Mapo
ut()は、 a)核仮想アドレスからユーザーバツフアアドレスへマ
ツピングが解放された時にphysstrat()から、 b)vmemfree()から、 c)cleanup()から、 d)古いページ表を解放するためptexpand()から、 解放される。) 10)vac_pageflus()vm_machdep.cでpagemove()から
呼出す。(pagemove()において、それの物理ページへ
の「へ」のマツピングがsetpgmap()呼出しの後では有
効でないから、vac_pageflush(へ)を呼出す。物理ペ
ージへの「から」のマツピングは第2のsetpgmap()呼
出しの後では有効ではないからvac_pageflush(から)
を呼出す。) 11)vac_pageflush()をsundev/mb.cでmbrelse()か
ら呼出す。(これは、DVMA仮想アドレスから物理アドレ
スへのマツピングを無効にするためにsetpgmap(addr,
0)が呼出される時である。) 12)vac_flush()をvax.sでresume()から呼出す。
(コンテキストスイツチ時間が経過すると、出プロセス
のuのマツピングが無効になる。出プロセスのuのマツ
ピングが無効になる前にそのuをフラツシユせねばなら
ない。コンテキストスイツチは非常にひんぱんに起るか
ら、全uページをフラツシユする代りにユーザーストラ
クト(struct)と核スタツクをフラツシユするだけであ
る。(uの更新を強いるためにResume()もprocdu
p()から呼出される。)) 13)vac_flush()をkern_nman.cでsmmap()、munmap
()、munmapfd()から呼出す。(いくつかのページの
仮想から物理へのマツピングは変えられる。) 14)vac_flushall()をmachdep.cのdumpsys()から呼
出して、全vacの内容を物理メモリへ一掃し、物理メモ
リをダンプアウトする。
15)仮想−物理マツピングが絶対に無効にされる場所が
いくつかある。たとえば、pme/pteマツピングは依然と
して有効であるが、このマツピングが再び用いられるこ
とは決してない。キヤツシユの関連する部分をフラツシ
ユせねばならない。さもないと、この仮想アドレスから
新しいマツピングがセツトされると、キヤツシユは以前
のマツピングの線を何本か含むことがある。
a)vac_pageflush()をsundev/mb.cのmbsetup()か
ら呼出す。
{mbsetup()においては、pteから物理ページへのマツ
ピングは、DVMA仮想アドレスからマツピングで一時的に
(mbreleaseまで)置き換えられる。} b)vac_pageflush()をmachdep.cのdumpsys()から
呼出す。
{DVMA領域内の最後のページは、1度に物理ページを1
ページずつマツプして、物理メモリを空にするために用
いられる(*dumper)()が呼出されるたびにそのマツ
ピングは無効である。} c)vac_pageflush()をmachdep.cのphysstrat()か
ら呼出す。
{physstrat()においては、「ユーザー」ページ核空
間へ二重にマツプされる。関連する核ページをととのえ
た時にそれらのユーザーページをフラツシユする。後
で、核仮想ページから物理ページへのそれらのマツピン
グはmapout()により無効にされる。そこでそれらの核
仮想アドレスはフラツシユされる。} d)vac_pageflush()をmachdep.cのcopyseq()から
呼出す。
{copyseq()においては、仮想アドレスCADDR1から物
理アドレス「pgno」へのマツピングはcopyin()の後で
無効になる。} e)vac_pageflush()をsun3/mem.cのmmrw()から呼
出する。(mmrw()においては、「vmmp」から物理アド
レスへのマツピングは、物理データをユーザー空間へコ
ピーするためにセツトされる。uiomove()の後はこの
マツピングは無効になる。) f)vac_pageflush()をvm_page.cのpagein()から呼
出す。
{CADDR1から物理ページpf+1へのマツピングはbzero
()の後で無効になる。} g)vac_pageflush()をvm_proc.cのprocdup()から
呼出して核スタツクとforkut1のu_*部分をフラツシユ
する。
{procdup()においては、forkut1を介して子プロセス
の物理ページへマツプする。forkut1から子プロセスの
物理ページへのマツピングは、親がprocdup()が戻る
前にフラツシユされる。} h)vac_flush()をkern fork.cのnewproc()から呼
出して、vfut1のu_*部分をフラツシユする。
{newproc()においては、vforkの場合には、vfut1はu
accessを介して子の物理ページへマツプする。このマツ
ピングは、vpassvmが呼出された後はもう用いられな
い。} i)vac_flush()をvm_swap.cのswapout()から呼出
して、ut1のu*部分をフラツシユする。
{swapout()においては、xswapout1またはxswapout2
のいずれかであるut1からproc pの物理uページへのマ
ツピングは、proc pが交換された後では無効である。} j)vac_flush()を、vm_swap.cのswapin()から呼出
してut1のu*部分をフラツシユする。
{swapin()においては、swaput1からproc pの物理u
ページへのマツピングはswapin()から戻る前に無効に
なる。} k)vac_pageflush()をvm_swp.cのswap()から呼出
す。
{プロセス2のi番目の仮想ページから物理ページへの
マツピングはそれ以上有効でない。} l)vac_flush()をvm_page.cのpageout()から呼出
す。
{pageout()においては、pushut1からrpの物理upペー
ジへのマツピングはvtod()呼出しの後は無効にな
る。} m)vac_flush()をvm_page.cのpageout()から呼出
して、ページアウトすべきページの集りをフラツシユす
る。
{それがphysstrat()を呼出す前に、swap()はそれ
らのページの物理ページをproc〔2〕の仮想アドレスへ
マツプする。したがつて、出てゆく仮想ページから物理
ページへのマツピングは、proc〔2〕の仮想ページへの
マツピングに置き換えるべきである。したがつて、swap
()が呼出される前にそれらのページをpageout()で
フラツシユする。} n)vac_pageflush()をvm_pt.cのkmcopy()から呼出
す。
{kmcopy()はptexpand()から呼出されて古いpte′
sから新しいpte′sへpte′sを「コピー」する。それ
は、新しいpte′sを古いpte′sの物理ページへmapin
()することにより「コピーする」。新しいpte′sが
マツプインされる前に古いpte′sをフラツシユす
る。} o)vac_pageflush()をvm_pt.cのdistpte()から呼
出す。
{dispte()は、共用テキストpteのpteエントリイが変
えられた時に、呼出される。たとえば、pageout()は
それらの有効ビツトを無効に変える。このテキストペー
ジを共用する他のプロセスはこのテキストページをキヤ
ツシユ中に持つことがあるから、全ての共用プロセスに
対してこのページをフラツシユする。} p)vac_flush()をvm_pt.cのvrelpt()から呼出して
出るプロセスのpte′sをフラツシユする。
{vrelpt()においては、pte′sを含むページは解放
されるが、mapout()は呼出されない。} q)vac_pageflush()をsunwindowdev/windlock.cのwl
ok.unlockから呼出す。
{wlok_unlock()においては、wlock−>lok_userから
現在のプロセスの物理uページへのマツピングは、wloc
k−>lok_userが非零であれば、無効になる。} r)vac_pageflush()をsunwindow/winlock.cのwlok_d
oneから呼出す。
{wlok_doneにおいては、wlock−>lok_userから物理u
ページへのマツピングは無効になる。} 16)保護ビツトが変えられると、キヤツシユの影響を受
ける部分をフッラツシユせねばならない。それらの位置
は: a)vm_machdep.cのchgprot()においては、テキスト
ページの保護を変える。異なる保護を有するキヤツシユ
内にMMUによるエントリを避けるためにそこでvac_pagef
lush()を呼出す。
b)vm_machdep.cのsettproc()においては、テキスト
ページの保護ビツトを変える。プロセスのテキスト部分
をフラツシユするためにvac_flushを呼出す。(settpro
t()がvm_text.cから呼出される。) c)vm_machdep.cのvac_disable_kpage()において
は、ページをキヤツシユされないようにする前に、この
ページの全てのキヤツシユ線をフラツシユするためにva
c_pageflush()を呼出す。
V.ここではなぜキヤツシユをフラツシユしないのか 下記は、仮想アドレスから物理アドレスへのマツピン
グが変えられるが、キヤツシユがフラツシユされない場
所のリストである。キヤツシユのフラツシングが必要で
ない理由について述べる。
1)vm_machdep.cのctxpassにおいては、proc pの仮想
から物理へのマツピングはproc qのそれへ変えられる。
しかし、qは以前pに属していたキヤツシユ内の何でも
とるから、pのためのキヤツシユをフラツシユする必要
はない。
(ctxpass()は、pのコンテキストをqへパスするた
めに、vpasspt()により呼出される。vpassvm()はvm
資源とpのMMUコンテキストをqへパスする。vpassv
m()が戻ると、コンテキストのための仮想から物理へ
のマツピングは変えられない。コンテキストはパスもさ
れるから、キヤツシユ内で影響されるマツピングは、い
まはそれらがproc pではなくてproc qに属していること
を除き、いぜんとして正しい。したがつて、ctxpas
s()またはvtassum()におけるキヤツシユをフラツシ
ユする必要はない。} 2)vpasspt()においては、vpasspt()が戻つた時
は、プロセス「up」と「uq」の仮想−物理マツピングは
変えられない。
(あるいは、もつと正確にいえば、vpasspt()に入つ
た時のマツピングと同じマツピングへマツピングは戻さ
れる)。
3)vm_swp.cのswapにおいては、「flag」が汚れたペー
ジブツシユを示したとすると、物理アドレスへのaddrの
マツピングは、proc〔2〕のiページのマツピングで置
き換えられる。汚れたページはpageout()においてフ
ラツシユされているから、swap()において「addr」を
再びフラツシユする必要はない。
4)vm_machdep.cのpmegload()においては、pmxp
(ctx_pmeg〔sep〕)がゼロで!needの時には、pmeg〔se
q〕を無効にする。ctx_pmeg〔seq〕をゼロにセツトする
と、コンテキストフラツシユ(ctxfree()において)
またはセグメントフラツシユ(pmegrelease()におい
て)を行つたから、ここではセグメントフラツシユを行
う必要はない。
{(strvct context)−>ctx_pmeg〔seq〕をゼロに
セツトするただ2つの場所がある。1つは、vac_segflu
sh(sep)とsetsegmap(sep,SEGINV)を零にするpmegre
lease()にある。他の場所は、vac_ctxflush()を呼
出すが、setsegmap(seg,SEGINV)は呼出さないctxfree
()にある。
したがつて(struct context)−〕>ctx_pmeg〔se
g〕はゼロであるが、この場合にはMMU segmapはSEGINV
ではない。pmxp=0およびpmegload()内の!needがs
etsegmap(seg,SEGNIV)を必要とする理由はMMU segmap
をSEGNIVにすることである。ctxfree()におけるvac_c
txflush()を行つたから、このセグメントはキヤツシ
ユ内にどのような物も残すべきでない。} 5)vm_machdep.cのctxalloc()においては、セグメン
トマツプからの全てのマツピングを無効にするために、
setsegmap()が呼出される。全コンテキストをフラツ
シユするためにctxfree()が呼出されるから、それら
のセグメントに関連する線はキヤツシユにはない。した
がつて、セグメントフラツシユは不要である。
6)vm_machdep.cのptesync()においては、ptesyn
c()はpmegunload()を呼出す。それはmodビツトをpt
e′sにorし、pmegのmodビツトをリセツトする。このpm
egの別のページが汚れているかどうかを調べたとする
と、modビツトがオンであつたことを憶えているそれのp
teを調べる。pmegunloadがこのpmegのmodビツトをター
ンオフするからセグメントをフラツシユする必要はな
い。
7)map.sのunloadpgmap()はMMUpmeからの参照され、
修正されたビツトを保存して、pteをソフトにし、pme中
のそれらのビツトをクリヤする。pageoutまたはswapout
を行う時には、ページが汚れているかどうかを判定する
ためにチエツクするのはソフトpteであるから、pmeの参
照され、修正されたビツトが変えられた時はキヤツシユ
をフラツシユする必要はない。
8)vm_machdep.cのpmegunload()においては、setseg
map(CSEG,pmp−pmeg)、unloadpgmap(v.ptc,num)、
およびsetsegmap(CSEG,SEGINV)を呼出す。unloadpgma
p()においては、CSEGのセグメントマツプがこのセグ
メント中のpme′sをアクセスするために用いられる。
セグメントCSEGの仮想アドレスはアクセスされないか
ら、セグメントCSEGはキヤツシユ内に何も有しない。し
たがつて、このセグメントを無効にする前には、vac_se
gflush(CSEG)を呼出す必要はない。
9)vm_machdep.cのmapout()においては、setsegmap
((u_int)ptos(btop(vaddr))、(u_chr)SEGIN
V)を呼出すことによりセグメントを無効にすると、こ
のセグメントの以前に用いられた全てのページについて
ページフラツシユを行つた。したがつて、セグメントフ
ラツシユを行う必要はない。
【図面の簡単な説明】
第1図は書戻しキヤツシユを有する仮想アドレスを利用
するワークステーシヨンの主な部品を示すブロツク図、
第2a図はキヤツシユ「ヒツト」ロジツクの略図、第2b図
はキヤツシユ保護の侵害を検出する回路の概略ブロツク
図、第2c図はMMU保護の侵害を検出する回路の概略ブロ
ツク図、第3図は本発明の仮想アドレスキヤツシユで利
用されるアドレス路を示す詳細なブロツク図、第4a図お
よび4b図は仮想アドレス書戻しキヤツシユのアドレツシ
ングに関連するある制御の状態マシン実現の流れ図、第
5図は本発明の仮想アドレス路により用いられるデータ
路を示す詳細なブロツク図、第6a図,6b図,6c図および6d
図は仮想アドレス書戻しキヤツシユとの間のデータ転送
に関連するある制御の状態マシン実現の流れ図、第7図
はメモリへの書戻しバスサイクルを制御する実現のため
の状態マシンの流れ図、第8図はキヤツシユ書込み誤り
のための最良のケースに対するタイミング図、第9図は
キヤツシユ読出し誤りのための最良のケースに対するタ
イミング図、第10a図はブロツク読出しサイクルを実行
するためのバスサイクルのタイミング図、第10b図は書
戻しサイクルを実行するためのメモリバスサイクルのタ
イミング図、第11図は本発明のキヤツシユフラツシユ実
現を示す概略ブロツク図、第12図はコンテキストフラツ
シユ一致、セグメントフラツシユ一致およびページフラ
ツシユ一致を検出するためのロジツクの概略ブロツク
図、第13a図〜13e図はフラツシユ指令の発生により開始
されるキヤツシユフラツシユの状態マシン実現の流れ
図、第14図はキヤツシユフラツシユのタイミング図であ
る。 11……中央処理装置、19……キヤツシユデータアドレ
ス、23……キヤツシユタグアレイ、25……キヤツシユヒ
ツト比較器、27……メモリ管理ユニツト(MMU)、31…
…主メモリ、32……コンテキスト識別レジスタ、33……
キヤツシユフラツシユロジツク、35……直接仮想メモリ
アクセス(DVMA)ロジツク、37……マルチプレクサ、39
……バツフア、40……ワークステーシヨン制御ロジツ
ク、54……仮想アドレスレジスタ、60……比較器、61…
…クロツクデータレジスタ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・ガーナー アメリカ合衆国95120カリフオルニア 州・サン ホゼ・カミーリア ドライ ブ・6471 (72)発明者 ウイリアム・ジヨイ アメリカ合衆国94301カリフオルニア 州・パロ アルト・ノース カリフオル ニア アヴエニユウ・185 (72)発明者 ジヨセフ・モラン アメリカ合衆国95054カリフオルニア 州・サンタ クララ・ワイルドウツド ウエイ・544 (72)発明者 ウイリアム・シヤノン アメリカ合衆国94022カリフオルニア 州・ロス・アルトス・トリアノン ウエ イ・261 (72)発明者 レイ・チエン アメリカ合衆国95014カリフオルニア 州・クーパーチノ・サマーセツト コー ト・10402 (56)参考文献 特開 昭62−202247(JP,A)

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】同時に稼働する複数のコンテキストを有す
    るとともに、複数のユーザのそれぞれに対して仮想アド
    レスが割り当てられる核を有する共用型マルチユーザオ
    ペレーティングシステムの下で動作するコンピュータワ
    ークステーションであって、中央処理装置と、アドレス
    バスに結合されたキャッシュデータアレイとを有し、こ
    のキャッシュデータアレイには、キャッシュブロックア
    ドレス及びそれに付随したキャッシュブロックタグをそ
    れぞれ有する複数のキャッシュブロックが含まれてい
    る、コンピュータワークステーションにおいて、 上記アドレスバスに結合され、上記中央処理装置からフ
    ラッシュ指令を受信した後に上記キャッシュブロックの
    フラッシュ動作を制御するフラッシュ制御ロジック手段
    であって、上記フラッシュ指令を受信した後、信号を発
    生して上記アドレスバスの制御をアサートし、上記アド
    レスバスの制御を上記キャッシュブロックのフラッシュ
    動作が完了するまで保持するフラッシュ制御ロジック手
    段と、 上記フラッシュ制御ロジック手段に結合され、上記キャ
    シュブロックタグの要素をセット及びリセットするリセ
    ット手段と、 上記共用型マルチユーザオペレーティングシステムの核
    内に配置され、上記フラッシュ制御ロジック手段によっ
    て発生された上記信号に応答する複数のキャッシュフラ
    ッシュ制御手段であって、それぞれ上記複数のキャッシ
    ュブロックに関する上記キャッシュブロックアドレス及
    び上記キャッシュブロックタグの選択された部分を異な
    った所定の基準と比較し、この比較結果が所定の関係に
    あるとき上記キャッシュブロックをメインメモリにフラ
    ッシュする、複数のキャッシュフラッシュ制御手段と、 上記キャッシュデータアレイに結合され、上記複数のキ
    ャッシュブロックに対して、そのフラッシュ動作が完了
    した後、仮想アドレスを再割り当てするメモリ管理手段
    と を備えたキャッシュブロックのフラッシュ動作を実行す
    るシステム。
  2. 【請求項2】上記フラッシュ制御ロジック手段は、論理
    ANDゲートと、この論理ANDゲートに結合された複数のフ
    リップフロップと、これらの複数のフリップフロップに
    結合された複数の論理ANDゲートと、これらの複数の論
    理ANDゲートに結合された論理ORゲートを備え、上記中
    央処理装置からのフラッシュ指令が、上記複数のフリッ
    プフロップに結合された上記複数の論理ANDゲートに結
    合されている、特許請求の範囲第1項に記載のシステ
    ム。
  3. 【請求項3】同時に稼働する複数のコンテキスト及び核
    を有する共用型マルチユーザ・オペレーティングシステ
    ムの下で動作する中央処理装置を備え、 メインメモリを備え、 上記中央処理装置及び上記メインメモリに結合され、仮
    想空間内のアドレスを物理空間内の対応するアドレスに
    翻訳するメモリ管理ユニットを備え、 上記中央処理装置に結合され、第1の複数データブロッ
    クを格納する仮想キャッシュデータアレイを備え、 上記仮想キャッシュデータアレイ及び上記中央処理装置
    に結合され、複数のタグアレイ要素を格納する仮想キャ
    ッシュタグアレイを備え、そのタグアレイ要素それぞれ
    は、上記仮想キャッシュデータアレイに格納された特定
    のデータブロックに対応し、有効ビット、修正ビット、
    保護ビット、書き込み許可ビット、複数の仮想アドレス
    フィールドビット及び複数のコンテキストビットを有し
    ており、 上記中央処理装置及び上記仮想キャッシュタグアレイに
    結合され、上記中央処理装置からのアクセスがキャッシ
    ュヒットであるかキャッシュミスであるかを判定するキ
    ャッシュヒットロジック手段を備え、 上記中央処理装置及び上記キャッシュヒットロジック手
    段に結合され、上記仮想キャッシュデータアレイのフラ
    ッシュを指示するキャッシュフラッシュロジック手段を
    備え、 上記中央処理装置には、共用型マルチユーザ・オペレー
    ティングシステムの核内に、複数のコンテキスト識別ビ
    ットを含むコンテキスト一致フラッシュ指令を上記キャ
    ッシュフラッシュロジック手段及び上記仮想キャッシュ
    タグアレイに結合する手段が設けられていて、上記コン
    テキスト一致フラッシュ指令に応答して、 第1データブロックに対応するタグアレイ要素の保護ビ
    ットが第1の所定の状態にあり、且つ、 上記第1データブロックに対応するタグアレイ要素の複
    数のコンテキストビットが上記複数のコンテキスト識別
    ビットと一致したとき、 上記キャッシュフラッシュロジック手段が、上記第1デ
    ータブロックを上記仮想キャッシュデータアレイからフ
    ラッシュすること、 を特徴とするキャッシュフラッシュを行うコンピュータ
    システム。
  4. 【請求項4】上記中央処理装置には、共用型マルチユー
    ザオペレーティングシステムの核内に、上記キャッシュ
    フラッシュロジック手段及び上記仮想キャッシュタグア
    レイに対して、複数の仮想ページアドレスビットを含む
    ページ一致フラッシュ指令を結合する手段が設けられて
    いて、上記ページ一致フラッシュ指令に応答して、 第2データブロックに対応するタグアレイ要素の保護ビ
    ットが第2の所定の状態にあり、且つ、 上記第2データブロックに対応するタグアレイ要素の複
    数の仮想アドレスフィールドビットが上記複数の仮想ペ
    ージアドレスビットと一致したとき、 上記キャッシュフラッシュロジック手段が、上記第2デ
    ータブロックを上記仮想キャッシュデータアレイからフ
    ラッシュし、 上記ページ一致フラッシュ指令は複数の基準を上記仮想
    キャッシュデータアレイから所定の仮想ページへフラッ
    シュし、 共用型マルチユーザ・オペレーティングシステムの核内
    に上記ページ一致フラッシュ指令を結合する手段が配置
    されていることによって、上記仮想キャッシュデータア
    レイの使用がマルチユーザアプリケーションプログラム
    に対して透明な書き戻しキャッシュとしてサポートされ
    ること を特徴とする、特許請求の範囲第3項に記載のコンピュ
    ータシステム。
  5. 【請求項5】上記中央処理装置には、共用型マルチユー
    ザオペレーティングシステムの核内に、複数のセグメン
    トアドレスビットを含むセグメント一致フラッシュ指令
    を上記キャッシュフラッシュロジック手段及び上記仮想
    キャッシュタグアレイに結合する手段が設けられてい
    て、上記セグメント一致フラッシュ指令に応答して、 第3データブロックに対応するタグアレイ要素の保護ビ
    ットが第3の所定の状態にあり、且つ、 上記第3データブロックに対応するタグアレイ要素の複
    数の仮想アドレスフィールドビットが上記複数のセグメ
    ントアドレスビットと一致したとき、 上記キャッシュフラッシュロジック手段が、上記第3デ
    ータブロックを上記仮想キャッシュデータアレイからフ
    ラッシュし、 上記セグメント一致フラッシュ指令は複数の基準を上記
    仮想キャッシュデータアレイから所定のセグメントへフ
    ラッシュし、 共用型マルチユーザ・オペレーティングシステムの核内
    に上記ページ一致フラッシュ指令を結合する手段が配置
    されていることによって、上記仮想キャッシュデータア
    レイの使用がマルチユーザアプリケーションプログラム
    に対して透明な書き戻しキャッシュとしてサポートされ
    ること を特徴とする、特許請求の範囲第3項に記載のコンピュ
    ータシステム。
  6. 【請求項6】上記中央処理装置には、共用型マルチユー
    ザオペレーティングシステムの核内に、特定のデータブ
    ロックに対する複数のアクセス仮想アドレスビットを含
    むアクセスを生成する手段が設けられ、 更に上記キャッシュヒットロジック手段は、 特定のデータブロックに対応するタグアレイ要素の有効
    ビットが所定の状態にあり、 特定のデータブロックに対応するタグアレイ要素の複数
    の仮想アドレスフィールドビットが複数のアクセス仮想
    ページアドレスビットと一致し、 上記特定のデータブロックに対応するタグアレイ要素の
    保護ビットが第2の所定の状態であるとき、 キャッシュヒットが起こったと判定し、 保護チェックが、上記仮想キャッシュデータアレイに対
    して直接適用されること を特徴とする特許請求の範囲第3項に記載のコンピュー
    タシステム。
  7. 【請求項7】上記中央処理装置及び上記キャッシュヒッ
    トロジック手段に結合され、複数のコンテキスト識別ビ
    ットを格納するコンテキストIDレジスタを更に備え、 上記中央処理装置には、共用型マルチユーザオペレーテ
    ィングシステムの核内に、複数の仮想ページアドレスビ
    ットを含むページ一致フラッシュ指令を上記キャッシュ
    フラッシュロジック手段及び上記仮想キャッシュタグア
    レイに結合する手段が設けられていて、上記ページ一致
    フラッシュ指令に応答して、 第2データブロックに対応するタグアレイ要素の複数の
    コンテキストビットが上記複数のコンテキスト識別ビッ
    トと一致し、 上記第2データブロックに対応するタグアレイ要素の複
    数の仮想アドレスフィールドビットが上記複数の仮想ペ
    ージアドレスビットと一致したとき、 上記キャッシュフラッシュロジック手段が、上記第2デ
    ータブロックを上記仮想キャッシュデータアレイからフ
    ラッシュすること、 を特徴とする特許請求の範囲第3項に記載のコンピュー
    タシステム。
  8. 【請求項8】上記中央処理装置及び上記キャッシュヒッ
    トロジック手段に結合され、複数のコンテキスト識別ビ
    ットを格納するコンテキストIDレジスタを更に備え、 上記中央処理装置には、共用型マルチユーザオペレーテ
    ィングシステムの核内に、複数のセグメントアドレスビ
    ットを含むセグメント一致フラッシュ指令を上記キャッ
    シュフラッシュロジック手段及び上記仮想キャッシュタ
    グアレイに結合する手段が設けられていて、上記セグメ
    ント一致フラッシュ指令に応答して、 第3データブロックに対応するタグアレイ要素の複数の
    コンテキストビットが上記複数のコンテキスト識別ビッ
    トと一致し、 上記第3データブロックに対応するタグアレイ要素の複
    数の仮想アドレスフィールドビットが上記複数のセグメ
    ントアドレスビットと一致したとき、 上記キャッシュフラッシュロジック手段が、上記第3デ
    ータブロックを上記仮想キャッシュデータアレイからフ
    ラッシュすること、 を特徴とする特許請求の範囲第3項に記載のコンピュー
    タシステム。
  9. 【請求項9】同時に稼働する複数のコンテキスト及び核
    を有する共用型マルチユーザオペレーティングシステム
    の下で動作する中央処理装置と、 メインメモリと、 上記中央処理装置及び上記メインメモリに結合され、仮
    想空間内のアドレスを物理空間内の対応するアドレスに
    翻訳するメモリ管理ユニットと、 上記中央処理装置に結合され、第1の複数データブロッ
    クを格納する仮想キャッシュデータアレイと、 上記仮想キャッシュデータアレイ及び上記中央処理装置
    に結合され、複数のタグアレイ要素を格納する仮想キャ
    ッシュタグアレイであって、各タグアレイ要素は上記仮
    想キャッシュデータアレイに格納された特定のデータブ
    ロックに対応し、有効ビット、修正ビット、保護ビッ
    ト、書き込み許可ビット、複数の仮想アドレスフィール
    ドビット及び複数のコンテキストビットを有する仮想キ
    ャッシュタグアレイと、 上記中央処理装置及び上記仮想キャッシュタグアレイに
    結合され、上記中央処理装置からのアクセスがキャッシ
    ュビットであるかキャッシュミスであるかを判定するキ
    ャッシュビットロジック手段と、 上記中央処理装置及び上記キャッシュビットロジック手
    段に結合され、上記仮想キャッシュデータアレイのフラ
    ッシュを指示するキャッシュフラッシュロジック手段と を備えたキャッシュフラッシュお行うコンピュータシス
    テムにおいて、 上記中央処理装置が、上記共用型マルチユーザオペレー
    ティングシステムの核によって定義され、複数のコンテ
    キスト識別ビットを含むコンテキスト一致フラッシュ指
    令を上記キャッシュフラッシュロジック手段及び上記仮
    想キャッシュタグアレイに結合するステップと、 上記コンテキスト一致フラッシュ指令に応答して、上記
    キャッシュフラッシュロジック手段が、 第1データブロックに対応するタグアレイ要素の保護ビ
    ットが第1の所定の状態にあり、 上記第1データブロックに対応するタグアレイ要素の複
    数のコンテキストビットが上記複数のコンテキスト識別
    ビットと一致したとき、 上記第1データブロックを上記仮想キャッシュデータア
    レイからフラッシュするステップと からなる仮想キャッシュデータアレイからデータブロッ
    クを選択してフラッシュする方法。
  10. 【請求項10】上記中央処理装置が、上記共用型マルチ
    ユーザオペレーティングシステムの核によって定義さ
    れ、複数の仮想ページアドレスビットを含むページ一致
    フラッシュ指令を上記キャッシュフラッシュロジック手
    段及び上記仮想キャッシュタグアレイに結合するステッ
    プと、 上記ページ一致フラッシュ指令に応答して、上記キャッ
    シュフラッシュロジック手段が、 第2データブロックに対応するタグアレイ要素の保護ビ
    ットが第2の所定の状態にあり、 上記第2データブロックに対応するタグアレイ要素の複
    数の仮想アドレスフィールドビットが上記複数の仮想ペ
    ージアドレスビットと一致したとき、 上記第2データブロックを上記仮想キャッシュデータア
    レイからフラッシュするステップと を更に備え、 上記ページ一致フラッシュ指令は複数の基準を上記仮想
    キャッシュデータアレイから所定の仮想ページへフラッ
    シュし、 更に上記共用型マルチユーザオペレーティングシステム
    の核内において上記ページ一致フラッシュ指令を定義す
    ることによって、上記仮想キャッシュデータアレイの使
    用がマルチユーザアプリケーションプログラムに対して
    透明な書き戻しキャッシュとしてサポートされる特許請
    求の範囲第9項に記載の仮想キャッシュデータアレイか
    らデータブロックを選択してフラッシュする方法。
  11. 【請求項11】上記中央処理装置が、上記共用型マルチ
    ユーザオペレーティングシステムの核によって定義さ
    れ、複数のセグメントアドレスビットを含むセグメント
    一致フラッシュ指令を上記キャッシュフラッシュロジッ
    ク手段及び上記仮想キャッシュタグアレイに結合するス
    テップと、 上記セグメント一致フラッシュ指令に応答して、上記キ
    ャッシュフラッシュロジック手段が、 第3データブロックに対応するタグアレイ要素の保護ビ
    ットが第2の所定の状態にあり、 上記第3データブロックに対応するタグアレイ要素の仮
    想アドレスフィールドビットが上記複数のセグメントア
    ドレスビットと一致したとき、 上記第3データブロックを上記仮想キャッシュデータア
    レイからフラッシュするステップと を更に備え、 上記セグメント一致フラッシュ指令は複数の基準を上記
    仮想キャッシュデータアレイから所定のセグメントへフ
    ラッシュし、 更に上記共用型マルチユーザオペレーティングシステム
    の核内において上記セグメント一致フラッシュ指令を定
    義することによって、上記仮想キャッシュデータアレイ
    の使用がマルチユーザアプリケーションプログラムに対
    して透明な書き戻しキャッシュとしてサポートされる特
    許請求の範囲第9項に記載の仮想キャッシュデータアレ
    イからデータブロックを選択してフラッシュする方法。
  12. 【請求項12】上記コンピュータシステムには、上記中
    央処理装置及び上記キャッシュヒットロジック手段に結
    合され、複数のコンテキスト識別ビットを格納するコン
    テキストIDレジスタが更に備えられており、 上記中央処理装置が、上記共用型マルチユーザオペレー
    ティングシステムの核によって定義され、複数の仮想ペ
    ージアドレスビットを含むページ一致フラッシュ指令を
    上記キャッシュフラッシュロジック手段及び上記仮想キ
    ャッシュタグアレイに結合するステップと、 上記ページ一致フラッシュ指令に応答して、上記キャッ
    シュフラッシュロジック手段が、 第2データブロックに対応するタグアレイ要素の複数の
    コンテキストビットが上記複数のコンテキスト識別ビッ
    トと一致し、 上記第2データブロックに対応するタグアレイ要素の複
    数の仮想アドレスフィールドビットが上記複数のページ
    アドレスビットと一致したとき、 上記第2データブロックを上記仮想キャッシュデータア
    レイからフラッシュするステップと を更に備え、 上記ページ一致フラッシュ指令は複数の基準を上記仮想
    キャッシュデータアレイから所定のセグメントへフラッ
    シュし、 更に上記共用型マルチユーザオペレーティングシステム
    の核内において上記ページ一致フラッシュ指令を定義す
    ることによって、上記仮想キャッシュデータアレイの使
    用がマルチユーザアプリケーションプログラムに対して
    透明な書き戻しキャッシュとしてサポートされる特許請
    求の範囲第9項に記載の仮想キャッシュデータアレイか
    らデータブロックを選択してフラッシュする方法。
  13. 【請求項13】上記コンピュータシステムには、上記中
    央処理装置及び上記キャッシュヒットロジック手段に結
    合され、複数のコンテキスト識別ビットを格納するコン
    テキストIDレジスタが更に備えられており、 上記中央処理装置が、上記共用型マルチユーザオペレー
    ティングシステムの核によって定義され、複数のセグメ
    ントアドレスビットを含むセグメント一致フラッシュ指
    令を上記キャッシュフラッシュロジック手段及び上記仮
    想キャッシュタグアレイに結合するステップと、 上記セグメント一致フラッシュ指令に応答して、上記キ
    ャッシュフラッシュロジック手段が、 第3データブロックに対応するタグアレイ要素の複数の
    コンテキストビットが上記複数のコンテキスト識別ビッ
    トと一致し、 上記第3データブロックに対応するタグアレイ要素の複
    数の仮想アドレスフィールドビットが上記複数のセグメ
    ントアドレスビットと一致したとき、 上記第3データブロックを上記仮想キャッシュデータア
    レイからフラッシュするステップと を更に備え、 上記セグメント一致フラッシュ指令は複数の基準を上記
    仮想キャッシュデータアレイから所定のセグメントへフ
    ラッシュし、 更に上記共用型マルチユーザオペレーティングシステム
    の核内において上記セグメント一致フラッシュ指令を定
    義することによって、上記仮想キャッシュデータアレイ
    の使用がマルチユーザアプリケーションプログラムに対
    して透明な書き戻しキャッシュとしてサポートされる特
    許請求の範囲第9項に記載の仮想キャッシュデータアレ
    イからデータブロックを選択してフラッシュする方法。
JP63247552A 1987-10-02 1988-10-03 ワークステーシヨン Expired - Fee Related JP2684196B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10428087A 1987-10-02 1987-10-02
US104.280 1987-10-02

Publications (2)

Publication Number Publication Date
JPH01108650A JPH01108650A (ja) 1989-04-25
JP2684196B2 true JP2684196B2 (ja) 1997-12-03

Family

ID=22299604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63247552A Expired - Fee Related JP2684196B2 (ja) 1987-10-02 1988-10-03 ワークステーシヨン

Country Status (9)

Country Link
US (1) US5845325A (ja)
JP (1) JP2684196B2 (ja)
AU (1) AU608894B2 (ja)
CA (1) CA1305800C (ja)
DE (1) DE3832912C2 (ja)
FR (1) FR2621407B1 (ja)
GB (1) GB2210480B (ja)
HK (1) HK12393A (ja)
SG (1) SG41792G (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032981A (en) * 1989-04-10 1991-07-16 Cirrus Logic, Inc. Method for increasing effective addressable data processing system memory space
JPH0661068B2 (ja) * 1989-07-18 1994-08-10 株式会社日立製作所 記憶再配置方法および階層化記憶システム
JPH0748190B2 (ja) * 1990-01-22 1995-05-24 株式会社東芝 キャッシュメモリ内蔵マイクロプロセッサ
DE69126898T2 (de) * 1990-02-13 1998-03-05 Sanyo Electric Co Vorrichtung und Verfahren zum Steuern eines Cache-Speichers
JP2641819B2 (ja) * 1990-11-05 1997-08-20 三菱電機株式会社 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式
US5829030A (en) * 1990-11-05 1998-10-27 Mitsubishi Denki Kabushiki Kaisha System for performing cache flush transactions from interconnected processor modules to paired memory modules
DE4136729C2 (de) * 1990-11-05 1995-07-20 Mitsubishi Electric Corp Cache-Steuereinrichtung
JPH05189238A (ja) * 1992-01-14 1993-07-30 Nec Corp 動的プログラムロード方式
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
US5452440A (en) * 1993-07-16 1995-09-19 Zitel Corporation Method and structure for evaluating and enhancing the performance of cache memory systems
JPH0844626A (ja) * 1994-07-28 1996-02-16 Nec Niigata Ltd キャッシュシステムのフラッシュサイクル制御方法
US5983332A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture
JP3180682B2 (ja) * 1996-09-19 2001-06-25 日本電気株式会社 受信機
US6378047B1 (en) * 1997-07-07 2002-04-23 Micron Technology, Inc. System and method for invalidating set-associative cache memory with simultaneous set validity determination
US6205521B1 (en) * 1997-11-03 2001-03-20 Compaq Computer Corporation Inclusion map for accelerated cache flush
FR2778254B1 (fr) * 1998-04-29 2002-02-15 Texas Instruments France Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache
JPH11259362A (ja) * 1998-03-13 1999-09-24 Nec Corp キャッシュメモリ制御方法及び装置
US6314492B1 (en) * 1998-05-27 2001-11-06 International Business Machines Corporation System and method for server control of client cache
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
US6279080B1 (en) * 1999-06-09 2001-08-21 Ati International Srl Method and apparatus for association of memory locations with a cache location having a flush buffer
JP4354583B2 (ja) * 1999-09-09 2009-10-28 独立行政法人科学技術振興機構 アクセス方法及びアクセス処理プログラムを記録した記録媒体
WO2001044947A1 (en) * 1999-12-17 2001-06-21 Sun Microsystems, Inc. Method and apparatus for monitoring a cache for garbage collection
EP1215583A1 (en) 2000-12-15 2002-06-19 Texas Instruments Incorporated Cache with tag entries having additional qualifier fields
ATE548695T1 (de) 2000-08-21 2012-03-15 Texas Instruments France Softwaregesteuerte cache-speicherkonfiguration
US6658533B1 (en) * 2000-09-21 2003-12-02 Intel Corporation Method and apparatus for write cache flush and fill mechanisms
US20020087824A1 (en) * 2000-12-29 2002-07-04 Hum Herbert H.J. System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US6691210B2 (en) * 2000-12-29 2004-02-10 Stmicroelectronics, Inc. Circuit and method for hardware-assisted software flushing of data and instruction caches
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
US7000081B2 (en) * 2002-02-12 2006-02-14 Ip-First, Llc Write back and invalidate mechanism for multiple cache lines
US6976117B2 (en) * 2002-08-13 2005-12-13 Intel Corporation Snoopy virtual level 1 cache tag
US6934810B1 (en) * 2002-09-26 2005-08-23 Unisys Corporation Delayed leaky write system and method for a cache memory
US6976128B1 (en) * 2002-09-26 2005-12-13 Unisys Corporation Cache flush system and method
US7057918B2 (en) * 2004-03-01 2006-06-06 Faraday Technology Corp. Memory unit and memory module using the same
JP2005250830A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プロセッサおよび主記憶共有マルチプロセッサ
EP1789883B1 (en) * 2004-08-31 2011-12-07 Freescale Semiconductor Inc. A virtual address cache and method for sharing data using a unique task identifier
US7640397B2 (en) * 2006-10-11 2009-12-29 Arm Limited Adaptive comparison control in a memory
US7991960B2 (en) * 2006-10-11 2011-08-02 Arm Limited Adaptive comparison control in a data store
US9495301B2 (en) 2012-08-07 2016-11-15 Dell Products L.P. System and method for utilizing non-volatile memory in a cache
US9311240B2 (en) 2012-08-07 2016-04-12 Dell Products L.P. Location and relocation of data within a cache
US9367480B2 (en) 2012-08-07 2016-06-14 Dell Products L.P. System and method for updating data in a cache
US9852073B2 (en) 2012-08-07 2017-12-26 Dell Products L.P. System and method for data redundancy within a cache
US9549037B2 (en) 2012-08-07 2017-01-17 Dell Products L.P. System and method for maintaining solvency within a cache
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10698732B2 (en) 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US11977484B2 (en) 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10452539B2 (en) * 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10318436B2 (en) * 2017-07-25 2019-06-11 Qualcomm Incorporated Precise invalidation of virtually tagged caches
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
US11119945B1 (en) * 2020-04-23 2021-09-14 International Business Machines Corporation Context tracking for multiple virtualization layers in a virtually tagged cache

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS532296B2 (ja) * 1973-03-19 1978-01-26
US4426682A (en) * 1981-05-22 1984-01-17 Harris Corporation Fast cache flush mechanism
US4550368A (en) * 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
DE3382152D1 (de) * 1982-12-09 1991-03-07 Sequoia Systems Inc Sicherstellungsspeichersystem.
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
US4713755A (en) * 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4700330A (en) * 1985-10-30 1987-10-13 Digital Equipment Corporation Memory for a digital data processing system including circuit for controlling refresh operations during power-up and power-down conditions
FR2590699B1 (fr) * 1985-11-25 1994-07-01 Nec Corp Systeme assurant la coherence pour les contenus d'une antememoire

Also Published As

Publication number Publication date
HK12393A (en) 1993-02-26
FR2621407B1 (fr) 1994-04-01
FR2621407A1 (fr) 1989-04-07
GB8819018D0 (en) 1988-09-14
AU608894B2 (en) 1991-04-18
CA1305800C (en) 1992-07-28
SG41792G (en) 1992-06-12
JPH01108650A (ja) 1989-04-25
DE3832912C2 (de) 1998-12-03
GB2210480B (en) 1992-01-29
DE3832912A1 (de) 1989-05-03
GB2210480A (en) 1989-06-07
US5845325A (en) 1998-12-01
AU2242488A (en) 1989-04-06

Similar Documents

Publication Publication Date Title
JP2684196B2 (ja) ワークステーシヨン
JP6995731B2 (ja) プロセッサ
CA1323701C (en) Processing of memory access exceptions with pre-fetched instructions within the instruction pipeline of a virtual memory system-based digital computer
US7073044B2 (en) Method and apparatus for sharing TLB entries
EP0734553B1 (en) Split level cache
CA1199420A (en) Hierarchical memory system including separate cache memories for storing data and instructions
US5699551A (en) Software invalidation in a multiple level, multiple cache system
JP3533294B2 (ja) プロセッサ・システム
US5793941A (en) On-chip primary cache testing circuit and test method
US6456891B1 (en) System and method for transparent handling of extended register states
US5897655A (en) System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
EP0243724A2 (en) Multilevel storage hierarchy with a variable address mode
US5715427A (en) Semi-associative cache with MRU/LRU replacement
WO1987004544A1 (en) Paged memory management unit capable of selectively supporting multiple address spaces
JP2004503870A (ja) 変換索引バッファのフラッシュフィルタ
US6351797B1 (en) Translation look-aside buffer for storing region configuration bits and method of operation
US7552255B1 (en) Dynamically partitioning pipeline resources
US5946718A (en) Shadow translation look-aside buffer and method of operation
US6434670B1 (en) Method and apparatus for efficiently managing caches with non-power-of-two congruence classes
US6301647B1 (en) Real mode translation look-aside buffer and method of operation
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JPH071489B2 (ja) コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法
EP0726524A2 (en) Protocol and system for performing line-fill addressing during copy-back operation
EP1262876B1 (en) Multiprocessing system with shared translation lookaside buffer
JP2564377B2 (ja) キャッシュメモリを備えた情報処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees