JPH05250191A - 改善されたチェックポイント動作および分岐動作を有するディジタルデータプロセッサ - Google Patents

改善されたチェックポイント動作および分岐動作を有するディジタルデータプロセッサ

Info

Publication number
JPH05250191A
JPH05250191A JP4273477A JP27347792A JPH05250191A JP H05250191 A JPH05250191 A JP H05250191A JP 4273477 A JP4273477 A JP 4273477A JP 27347792 A JP27347792 A JP 27347792A JP H05250191 A JPH05250191 A JP H05250191A
Authority
JP
Japan
Prior art keywords
data
access
period
request
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.)
Withdrawn
Application number
JP4273477A
Other languages
English (en)
Inventor
Mark A Kaufman
マーク・エイ・カウフマン
Fernando Oliveira
フェルナンドー・オリベイラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kendall Square Research Corp
Original Assignee
Kendall Square Research Corp
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 Kendall Square Research Corp filed Critical Kendall Square Research Corp
Publication of JPH05250191A publication Critical patent/JPH05250191A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Abstract

(57)【要約】 (修正有) 【目的】 チェックポイント操作と分岐操作に関連した
コストが低減されまたシステム資源が有効に使用される
デジタルデータプロセシング装置を提供する。 【構成】 プロセッサに使用されるデータ構造の相互関
係。ファィル80のマップイン部分80aが、それぞれ
のプロセスの2つの異る文脈アドレス空間60,62と
関連づけられる。システム仮想アドレス空間への文脈ア
ドレス空間の関連付けはSTTと呼ばれる変換テーブル
84,86で反映される。各テーブルはSTTE84
A,84B〜86Bエントリを具備する。これらVm−
sttsとも呼ばれ、プロセスとvm−windowに
より2方向にリンクされる。関連のvnodeを有し図
のファィル80などの正規ファィルもたとえば対象物7
8などの関連のvm−objectを有する。さらにこ
れらの対象物は対象物テーブルを形成。プロセスが分岐
される時親のデータ領域は子のプロセスにより受継がれ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタルデータプロセ
ッシングに関し、詳述すると、プロセスのチェックポイ
ントおよび分岐を取り扱うための改善方法および装置に
関する。
【0002】プログラムをコンピュータで実行するとき
に、プログラムのスナップショットあるいは「チェック
ポイント」を取ること、すなわち、プログラムがあたか
もチェックポイントの時間から実行しているかのように
後で再始動せられることができるようプログラムパラメ
ータ、カウンタおよびシステムパラメータの値を記録す
ること、が所望されることが多い。この種のスナップシ
ョットはたとえば異常に終了したプロセスを再始動する
際に役に立つ。
【0003】
【従来の技術】従来の多くのコンピュータシステムにお
いて、チェックポイントを取る際に、全プロセス、すな
わち全てのレジスタ値および実行プログラムに関連づけ
られたデータがディスクあるいはそのほかの補助記憶装
置へ記憶される。これは時間に関してさらには2次デー
タ記憶空間に関してもコストがかかることが判明した。
【0004】従来、チェックポイント操作に関係づけら
れないが、たとえばUNIXまたはUNIXに類似した
オペレーティングシステムの下でランするコンピュータ
システムの多くのものがプロセスの複製または分岐操作
が可能である。分岐操作は一つのプロセスを模写し、新
規なプロセスを産出する。親と呼ばれる第1のプロセス
は分岐後通常の態様で継続する。産出されるプロセス、
すなわち子、は最初親と同一であるけれども、異なる態
様で実行できる。
【0005】子プロセスの生成において、従来のコンピ
ュータシステムは親の全メモリ空間を子のそれにコピー
する。親のプロセス空間が大きい場合、これはメモリア
ロケーションあるいは割付けの観点からコストがかかる
ことが判明した。
【0006】
【発明が解決しようとする課題】したがって、本発明の
目的は改善されたディジタルデータプロセッシング装置
および方法を提供することである。
【0007】詳述すると、本発明の目的は、チェックポ
イント操作および分岐操作に関連したコストをできるだ
け最小限にするディジタルデータプロセッシング機構を
提供することである。
【0008】本発明の別の目的は、システム資源を最も
良好に使用する分岐およびチェックポイントを発生する
方法および装置を提供することである。
【0009】本発明のさらに別の目的は、UNIXまた
はUNIX類似のオペレーティングシステムでランする
コンピュータシステムで有用な分岐操作およびチェック
ポイント操作を行うための改善された機構を提供するこ
とである。
【0010】
【発明の構成】上述の目的は、(たとえばRAMなど
の)メモリと、プロセスを実行しかつメモリ中のマップ
(対応づけ)されたデータへのアクセス要求を発生する
(たとえばCPUなどの)プロセッシング要素を具備し
たディジタルデータプロセッシング装置を提供する本発
明の一様相において達成される。分岐/チェックポイン
トを合図する要素が、それぞれが新規な時間間隔を記述
する「新規プロセス信号」を発生する。
【0011】ディジタルデータプロセッシング装置は、
メモリの第1のセットに記憶された要求データへのアク
セスによって第1の新規プロセス信号前にプロセス発生
データ要求に応答する。アドレス空間管理部が引き続く
時間間隔においてたとえば書込みアクセスなどの所定の
要求に応答し、(要求データが記憶されている)最も最
近のセットからデータをコピーしその後当該コピーにア
クセスする。アドレス管理部は、(要求データが記憶さ
れている)最も最近のセット中の当該データへのアクセ
スによってたとえば読出し型アクセス要求などの他の要
求に応答する。
【0012】一様相において、第1の書込み型アクセス
要求後、アドレス空間管理部はそれぞれの要求されたデ
ータを、それが読出しアクセスか書込みアクセスのため
であるかに拘らず、現在のセットへコピーする。別の様
相において、プロセスは、各アクセス要求と共に、要求
データの文脈アドレスを発生する。アドレス空間管理部
は、当該文脈アドレスに対応する記憶記述子を発生する
ためにセグメント変換テーブルすなわちSTTを具備す
る。記憶記述子は、たとえば、メモリ中の要求データの
実アドレスあるいはページ分けデータについてはディス
クファイルを記述できる。
【0013】セグメント変換テーブルは一つまたはそれ
以上のエントリすなわちSTTEを具備でき、それぞれ
が、少なくとも一つの文脈アドレスと少なくとも一つの
記憶記述子との間の結合関係あるいは対応関係を表す信
号を記憶する。
【0014】別の様相において、アドレス空間管理部
は、対象物テーブルと呼ばれるデータ構造体を具備し各
プロセスのステータス情報を対応する時間間隔中に記憶
する。この情報はたとえば各新規プロセス信号後にセグ
メント変換テーブルから対象物へ転送せられる変換情報
を含む。アドレス空間管理部は新規プロセス信号に引き
続き書込み型アクセスを待ち受け、この種の転送を遂行
することが好ましい。
【0015】アドレス空間管理部は対象物テーブル内の
複数の対象物を使用し、プロセスのステータスをそれぞ
れの先行時間間隔中に追跡する。これらの対象物はそれ
ら自身の時間間隔の並びに基づく順序でリンクできる。
【0016】新規なプロセス信号の発行に続き、アドレ
ス空間管理部は、各エントリが現在のセット中の空き領
域を指すようセグメント変換テーブルを修正する。こう
していずれのエントリの範囲内のデータアクセスの試み
も「ミッシング」データ誤りを招く。アドレス空間管理
部は、先行対象物にアクセスし、要求データが最後にア
クセスされた間隔に関連づけられたものを見出すことに
よりこの種の誤りに応答する。ひとたび見出されれば、
アドレス空間管理部はデータにアクセスしそしてこれを
現在のセットにコピーしそして対応するセグメント変換
テーブルエントリを更新する。
【0017】本発明の別の様相によれば、選択される対
象物からの変換信号をセグメント変換テーブルへ転送す
ることによりプロセスを先行間隔に関連づけられた状態
へ復元する要素を提供する。
【0018】メモリの他の情報と同様に本発明による装
置は対象物をディスクへページ分けできる。ところが、
ディスクに一時的にのみ記録される他のプロセス関連情
報とは少くとも相異なってページ分けされた対象物は長
時間保持できる。
【0019】上述のタイプのディジタルデータプロセッ
サが、たとえば選択された時間にあるいはプログラミン
グ動作に応答して新規プロセス信号を自動的に発生でき
る。さらにこれらの信号はユーザ要求に応答して発生で
きる。
【0020】本発明によるディジタルデータプロセッサ
が最初第1のプロセスを複製する第2のプロセスを発生
するため分岐要素を具備できる。この様相によれば分岐
要素は第2のプロセス発生との関係で新規プロセス信号
の発生を開始する。
【0021】上述のように、アドレス空間管理部が前記
プロセスのため分岐に引き続く間隔中そのプロセスによ
る所定の要求に応答し、要求されるデータをそれが記憶
されている最も最近のセットから第2プロセスの動作の
間隔と関連づけられるセットへコピーする。アドレス空
間管理部は、要求データが記憶されている最も最近のセ
ット中の当該データへのアクセスによりたとえば読出し
型アクセス要求などの他の要求に応答できる。
【0022】さらに上述と同様、一様相において、第1
の書込み型アクセス要求後アドレス空間管理部は各要求
データをそれが読出しアクセスまたは書込みアクセスの
ためであるかに拘らず現在のセットへコピーできる。
【0023】さらに他の様相において本発明は上述のタ
イプのディジタルデータプロセッサを動作する方法を提
供する。
【0024】本発明のこれら目的およびそのほかの目的
は添付の図面および以下の叙述内容から明らかとなろ
う。
【0025】
【実施例】図1は本発明を実施するのに使用される好ま
しい多重処理装置を図示する。図示の装置10は、レベ
ル0、レベル1およびレベル3という3つの情報転送レ
ベルを具備する。それぞれの情報転送レベルは、バス要
素と複数の接続要素とによって特長づけられる一つまた
はそれ以上のレベルセグメントを具備する。詳述する
と、図示の装置10のレベル0は12A,12B,12
C,12D,12E,12Fによって指示される6つの
セグメントを具備する。同様に、レベル1はセグメント
14A,14Bを具備し、レベル2はセグメント16を
具備する。
【0026】レベル0の各セグメント、すなわちセグメ
ント12A,12B,12C,12D,12E,12F
はそれぞれ複数のプロセッシングセルを具備する。たと
えば、セグメント12Aはセル18A,18Bおよび1
8Cを具備し、セグメント12Bはセル18D,18E
および18Fを具備する(以下同様)。これらのセルは
それぞれ胞内プロセッサバス(図示せず)を介して相互
に接続される中央処理装置およびメモリ要素とを具備す
る。本発明の好ましい実施例に従えば、各セルに包含さ
れるメモリ要素は、その関連の中央処理装置によって使
用されるすべての制御信号およびデータ信号を記憶す
る。
【0027】プロセッシング装置10の所定のセルは補
助記憶装置へ接続される。たとえば図示の装置におい
て、セル18Cはディスク駆動装置19Aと結合され、
セル18Dはディスク駆動装置19Bと結合され、そし
てセル18Oはディスク駆動装置19Cと結合される。
ディスク駆動装置19A〜19Cは従来設計のものであ
りそしていくつかの商業的に入手可能な装置のうちの任
意のものから選択できる。ディスク駆動装置以外の補助
記憶装置、たとえばテープ駆動装置、もまた情報を記憶
するのに使用できることに注意されたい。
【0028】別途図示されるように、レベル0のセグメ
ントはそれぞれセグメントのセル間で情報パケットを転
送するための通信路を提供するバス要素を具備するもの
として特長づけられる。こうして図示のセグメント12
Aはバス20Aによって、セグメント12Bはバス20
Bによって、セグメント12Cはバス20Cによって
(以下同様)特長づけられる。以下で詳述するように、
ディジタル情報パケットは、例示のセグメント12Aの
セル18A,18Bおよび18C間をこれらのセルのそ
れぞれに関連づけられたメモリ要素を介して送られる。
これらメモリ要素とバス20Aとの間の所定の接続がセ
ル接続部22A,22Bおよび22Cによって提供され
る(図1参照)。これと類似した直接通信路がセグメン
ト12B,12Cおよび12Dでそれぞれのセル18
D,18E…18R間にセル接続部22D,22E…2
2Rによって設定される(図1参照)。
【0029】図面および上述の説明から明らかなよう
に、残余の情報転送レベル、すなわちレベル1およびレ
ベル2、はそれぞれ一つまたはそれ以上の対応したレベ
ルセグメントを具備する。それぞれの連続セグメント中
のセグメント数は先行するもののセグメント数よりも少
ない。こうしてレベル1の2個のセグメント14および
14Bはレベル0の6個のセグメント12A,12B…
12Fよりも数が少なくそしてセグメント16のみ有す
るレベル2はすべてのもののうちで最も数が少ない。レ
ベル1およびレベル2のセグメント、すなわち「高次」
のレベル、はそれぞれ、それぞれのセグメント内でパケ
ットを転送するためバス要素を具備する。レベル1のセ
グメント14Aおよび14Bはそれぞれバス要素24A
および24Bを含み、レベル2のセグメント16はバス
要素26を具備する(図1参照)。
【0030】ルート指定セル自体が連続レベルの関連セ
グメント間で情報を転送するための機構を提供する。た
とえば、ルート指定セル28A、28Bおよび28Cが
それぞれ、レベル1セグメント14Aからレベル0セグ
メント12A、12Bおよび12Cへそしてこれとは逆
方向に情報を転送する手段を提供する。これと同様に、
ルート指定セル28D、28Eおよび28Fがそれぞれ
レベル1セグメント14Bからそれぞれのレベル0セグ
メント12D、12Eおよび12Fへのそしてこれとは
逆方向に情報を転送するための手段を提供する。なお、
ルート指定セル30Aおよび30Bがそれぞれレベル2
セグメント16とレベル1セグメント14Aおよび14
B間の情報転送路を提供する(図1参照)。
【0031】ルート指定セルはそれらのそれぞれのセグ
メントをバス要素の相互接続部を介して接続する。こう
してルート指定セル28Aは、リングの相互接続部32
A、34Aでバス要素20A、24Aを接続し、ルート
指定セル要素28Bはリングの相互接続部32Bおよび
34Bでバス要素20B、24Bを接続する(以下同
様)。これと同様に、ルート指定セル30Aおよび30
Bはそのそれぞれのバス、すなわち24A、24Bおよ
び26をリングの相互接続部36A、36B、38Aお
よび38Bで接続する(図1参照)。
【0032】データの移動とコヒーレンシ 図2はデータコヒーレンスを保証するためのプロセッシ
ング装置(図1)内のデータ移動機構を図示する。図
中、複数の中央処理装置40(A)、40(B)および
40(C)がそれぞれ関連のメモリ要素42(A)、4
2(B)および42(C)へ結合されている。各ペアの
中央処理装置およびメモリ装置間の通信はバス44A、
44Bおよび44Cを介して搬送される。上述のレベル
セグメントおよびルート指定セルを表すネットワーク
(網)46が図示のプロセッシングセル42A〜42C
間で(バス48(A)、48(B)および48(C)を
介してネットワーク46へ送られる)情報パケットを転
送する。
【0033】図示の実施例で、中央処理装置40A、4
0Bおよび40Cはそれぞれ50A、50Bおよび50
Cとラベル付けされたアクセス要求要素を具備する。こ
れらアクセス要求要素はメモリ要素42A、42B、4
2Cに記憶されたデータへのアクセス要求を発生する。
要素50A、50Bおよび50Cにより発生されるアク
セス要求信号の中には、メモリ要素に記憶された一デー
タ(datum) への排他的な修正アクセス要求を表す所有権
要求がある。好ましい実施例において、アクセス要求要
素50A、50Bおよび50CはCPU40A、40B
および40Cで実行される命令セットの部分集合を具備
する。この命令部分集合については後述する。
【0034】中央処理装置40A、40B、40Cはオ
ペレーティングシステム51(その部分51A、51
B、51Cがそれぞれの中央処理装置にある)の制御下
で動作する。オペレーティングシステム51は中央処理
装置で実行する応用プログラムおよび装置10の設備間
の接続を提供しかつデータアクセスおよびデータアロケ
ーションを管理する。
【0035】中央処理装置40A、40Bおよび40C
を制御する好ましいオペレーティングシステムがUNI
X類似のオペレーティングシステムでありそしてさらに
好ましくは本明細書に教示されるところに従って修正さ
れたOSF/1である。
【0036】メモリ要素40A、40Bおよび40Cは
それぞれキャッシュ制御装置52A、52Bおよび52
Cを具備する。これらキャッシュ制御装置は、対応する
ディレクトリ要素56A、56Bおよび56Cを介して
それぞれデータ記憶領域54A、54Bおよび54Cを
接続する(図2参照)。データ記憶領域54AはCPU
40Aにより使用されるデータおよび制御情報を維持
し、データ記憶領域54Bおよび54Cは中央処理装置
40Bおよび40Cにより使用される情報をそれぞれ維
持する。それぞれのデータ記憶領域に維持されるデータ
はシステムアドレスに対応する単一記述子により識別さ
れる。これらの記述子は対応するディレクトリのアドレ
ス記憶場所に記憶される。記述子は単一と考えられる
が、いくつかの記述子の複数のコピーが、これらコピー
自体が類似したデータ要素のコピーを識別する場合に
は、メモリ要素42A、42Bおよび42Cにわたって
存在してもよい。
【0037】中央処理装置40B、40Bおよび40C
により発生されるアクセス要求が、他の制御情報と共に
要求データのそれと一致するシステム仮想アドレス(S
VA)要求部分または記述子を含む。キャッシュ制御装
置52A、52B、52Cは、要求データが対応記憶要
素54A、54B、54Cに記憶されているかどうかの
決定によってそれぞれの中央処理装置40A、40B、
40Cが発生するアクセス要求に応答する。もし記憶さ
れていれば、情報のその項目が要求プロセッサによる使
用のため転送される。もし記憶されていなければ、キャ
ッシュ制御装置52A、52B、52Cはライン48
A、48B、48Cを通じてネットワーク46への要求
を含むパケットを送信する。
【0038】このパケットがネットワーク内、詳述する
とリング0のセグメント、を通じて移動するに応じて、
プロセッシングセル内のキャッシュ制御装置がそれら自
身のディレクトリを検査し、(もし発見されれば)要求
されるデータを応答パケットにて送る。同様に、局所的
なルート指定要素がそのディレクトリを検査する。もし
このディレクトリが要求データが適宜のアクセス状態に
て局所リング中にあることを示せば、ルート指定セルは
要求パケットが局所的なリングバスを通じて継続可能に
する。もしそうでなければ、ルート指定セルはパケット
を抽出しそして関連のレベル1セグメントへ送る。
【0039】未解決の要求パケットは同様の仕方でレベ
ル1セグメントを移動する。すなわち、それは関連のレ
ベル1のルート指定セルのディレクトリと比較される。
もしこれらディレクトリのうちの一つが、下位のレベル
0セグメントに適宜のアクセス状態にて要求データを列
挙すれば、要求はそのセグメントへ送られる。そうでな
ければ、要求は階層構造中の高位レベル(もしあれば)
へ送られてもよいしまたは要求発生体に未解決のまま戻
されてもよい。
【0040】要求データを包含するパケットが異なる機
構によって要求しているセルの方へ戻るようルート指定
される。第1の機構が要求セルのアドレスまたは識別子
に頼るものである。ここで、それぞれの要求セルはその
要求パケット内に当該セルを一意に識別する識別子を含
む。ひとたび当該パケットが応答するセルに到達すれ
ば、そのセルはデータと対応する記述子とともに要求体
識別子を応答パケットへコピーする。応答パケットがセ
グメントのリングを移動するに応じて、ルート指定セル
は要求体識別子を検査し、要求セルが下位すなわち親セ
グメントにあるかどうかを決定しそれに従ってパケット
をルート指定する。
【0041】第2の機構が、プロセッシングセルにより
要求されるがこれら要求に応答して明確には発生されな
いデータを含む応答パケットと結合して使用される。一
例として、かかる機構は2つまたはそれ以上の要求セル
が読取り専用型コピー要求を遠方セルに保持される特定
の一データへ発する場合に適用する。本発明の好ましい
実施例に従い、ネットワークはこれら要求のうちの少く
ともいくつか(しかしすべてではない)がこの一データ
のコピーを有するプロセッシングセルに到達するのを回
避すると仮定すれば、応答セルは、ここに到達した要求
パケットの要求体識別子だけを有する応答パケットを発
生する。
【0042】データコヒーレンシがデータ要求および転
送に応答するプロセッシングセルの協働作用により維持
される。詳述すると、第1のプロセッシングセルによる
所有権アクセス型要求パケットの発生に随伴して、関連
メモリはその記憶物理空間を割り付け、要求データを保
持する。これと同様に、要求データが以前に記憶された
プロセッシングセルからのこの一データの転送に随伴し
て、関連メモリは、この一要求データの記憶のため以前
に割り付けられていた物理記憶空間の割り付け解除を行
う。
【0043】これら協働作用は図2および図3に図示さ
れている。これら図面では第1に、データサブページを
表すDATUM(0)、DATUM(1)およびDAT
UM(2)は、CPU40Aと結合したメモリ要素42
Aの記憶部に保持される。記述子foo、barおよび
basはディレクトリ56Aに記憶されるこれらデータ
にそれぞれ対応する。かかる記述子はそれぞれ記憶部4
2Aにおけるその関連情報信号の場所を指示するポイン
タを具備する。
【0044】CPU40Bと結合したメモリ要素42B
は、これらもまたデータサブページを表すDATUM
(2)およびDATUM(3)を記憶する。これらのデ
ータ要素のそれぞれに対応するものがディレクトリ56
Bに保持される記述子carおよびbasである。DA
TUM(2)およびその記述子basは記憶部42Aか
らコピーされそれゆえ同一ラベルを保持する。
【0045】図2の装置はCPU40Cと結合したメモ
リ要素54Cにはいずれのデータをも記憶しない。
【0046】図3は、ある一データが、当該一データへ
のアクセスをまだ有していないプロセッシングセルによ
り当該一データについての所有権と結合してどのように
移動するかを図示している。詳述すると、図3は、CP
U40Cおよびメモリ42Cから構成されるプロセッシ
ングセルによるDATUM(0)についての未解決の所
有権要求の発行に続く当該DATUM(0)の移動を図
示する。まず、要求に随伴して、キャッシュ制御装置5
2Cはメモリ要素42Cの記憶部54Cの物理記憶空間
を割り付ける。
【0047】メモリ42Aにより発生される応答パケッ
トが要求データDATUM(0)を当該要求データDA
TUM(0)が以前に記憶されていたところの記憶部5
4Aから要求体の記憶部54Cへ転送する。これに随伴
してキャッシュ制御装置52Aは一要求データを以前に
保持していた記憶部54Aのその空間の割り付け解除を
行う。同時に、キャッシュ制御装置52Aは(記憶部5
4AのDATUM(0)を識別するのに以前使用されて
いた)記述子fooの無効化をディレクトリ56Aにお
いて遂行し、そしてキャッシュ制御装置52Cは、記憶
部54Cで信号を識別するのに引き続き使用される当の
同じ記述子をディレクトリ56Cに再度割り付ける。
【0048】記述子に加えて、メモリ要素42A〜42
Cはアクセス状態情報をデータへ割り当てそしてそれぞ
れの記憶部で信号を制御する。無効状態、読取り専用状
態、所有権状態およびアトミック状態を含むこれらアク
セス状態はデータが所定のプロセッサによりアクセスさ
れる態様を支配する。あるメモリ要素の関連CPUがそ
のメモリ要素に記憶される一データに対する修正アクセ
スを維持している場合の当該一データには所有権状態が
割り当てられる。一方、あるメモリ要素の関連CPUが
そのメモリ要素に記憶される一データに対する優先アク
セスを維持している場合の当該一データには読取り専用
状態が割り当てられる。なお、「bad(不良)」デー
タと関連する一つの意図されるデータには無効状態が割
り当てられる。
【0049】本発明により構成されるディジタルデータ
プロセッシング装置におけるデータ移動およびメモリコ
ヒーレンスのための好ましい構造体の説明が別途米国特
許出願第136,930号、米国特許出願第370,2
87号、米国特許出願第521,798号および米国特
許出願第531,506号を参照することにより得られ
る。
【0050】セグメントバス 図4は図1の例示のレベル0セグメント12Aのための
好ましい構成を図示する。セグメント12Aはバスセグ
メント20Aを通じてセル相互接続部22A、22Bお
よび22Cにより相互接続されたプロセッシングセル1
8A、18Bおよび18Cを具備する。ルート指定装置
28Aが、図1のレベル0のセグメント12Aと、もし
親であればレベル1のセグメント14aとの間の相互接
続を提供する。このルート指定装置28Aはセル相互接
続部32Aを介しバス20Aを通じて結合される(図参
照)。例示のバスセグメント20Aの構造およびセル相
互接続部22A、22B、22Cおよび32Aとの相互
関係は米国特許出願第696,291号などを参照する
ことによって理解されよう。
【0051】プロセッシングセル 図5は図示の実施例の例示のプロセッシングセル18A
のための好ましい構造を図示する。図示のプロセッシン
グセル18Aは、外部装置接続部60と結合された中央
処理装置58とそれぞれプロセッサバス66および命令
バス68を介するデータサブキャッシュ部62および命
令サブキャッシュ部64とを具備する。
【0052】接続部60が従来の態様で外部装置バス7
0を介してたとえばディスクドライブ19Aなどの外部
装置との通信を提供する。この図に示された回路のより
完全な理解がたとえば、米国特許出願第136,930
号、米国特許出願第370,325号および米国特許出
願第499,182号などを参照することによって得ら
れる。
【0053】メモリシステム 上述したように、本発明の好ましい実施例に従って構成
された多重処理装置10が、それぞれの一データに関連
づけられるシステム仮想アドレス(SVA)に基づく単
一記述子の参照によりプロセッシングセル18A、18
B、…18Rへ割り付けられる個別のデータ要素へのア
クセスが可能である。例示の装置10においては、この
能力の実行はネットワーク46を介する応答パケットお
よび要求の転送と関係するプロセッシングセルメモリシ
ステムの組合せ作用により行われる。以下の説明ではこ
れは総括的に「メモリシステム」と呼ばれる。
【0054】例示のシステムのプロセッサ、たとえばプ
ロセッサ40A、40B、40Cは2つの1次論理接続
部を介してメモリシステムと通信を行う。第1の接続部
は、ロード命令および記憶命令により実行されるデータ
アクセス接続部である。データアクセスモードでは、プ
ロセッサはメモリシステムにシステム仮想アドレスおよ
びアクセスモード情報を提供し、そしてメモリシステム
は、データを包摂するサブページを見出しそして当該デ
ータを戻すことによりこのアクセスを満足させるよう試
みる。
【0055】第2の論理接続モードはメモリシステム制
御命令により実行される制御アクセスである。制御アク
セスにおいては、プロセッサはメモリシステムに対して
ある副作用(side access)を遂行し任意のページから実
データ以外の所定の情報を戻すよう命令する。1次接続
部に加えて、オペレーティングシステム51(たとえば
先のオペレーティングシステム)は、構成、保守、障害
回復および診断のためにSPA空間での制御場所を使用
する。
【0056】メモリシステムは記憶の階層化を実施す
る。例示の好ましい実施例においては、各プロセッシン
グセルは0.5メガバイトのデータを記憶するサブキャ
ッシュ部を有する中央処理装置(またはCEU)を備え
る。これらのプロセッシングセルは32メガバイトのデ
ータを記憶するキャッシュ部をも具備する。さらに、た
とえば、15個のプロセッシングセルを有する所望のレ
ベル0が全部で480メガバイトを記憶する。たとえ
ば、レベル0の32倍のバイトを有する所望のレベル1
が全部で15360メガバイトを有する。
【0057】メモリシステムは、ページ単位およびサブ
ページ単位でデータを記憶する。たとえば、各個別のキ
ャッシュ部が2048ページに細分される32メガバイ
トのシステム仮想アドレス空間を記述する。ページは2
7 (128)バイトの128個ののサブページへ分割さ
れる214(16384)バイトを包摂する。メモリシス
テムはキャッシュ部の記憶をページをベースにして割り
付け、そしてシステム仮想アドレス空間の各ページはシ
ステムで完全に表示されるかまたはまったく表示されな
い。メモリシステムはデータをサブページの単位でキャ
ッシュ部に分配する。
【0058】システム仮想アドレスのページがシステム
に存在するとき以下が成り立つ。 (1)一つまたはそれ以上のキャッシュ部が記憶の或る
ページをページへ割り付け、ページの各サブページが、
空間が割り付けられた一つまたはそれ以上のキャッシュ
部に記憶されるが、 (2)空間がページについて割り付けられた各キャッシ
ュ部がページのサブページのすべて(またはいずれ)の
コピーを包摂してもよいし包摂しなくともよい。
【0059】本発明に従って構成されるディジタルデー
タプロセッシングシステムで使用するのに好適なメモリ
システムの別途の評価が上述の米国特許出願、たとえば
米国特許出願第136,930号、米国特許出願第37
0,287号、米国特許出願第521,798号、米国
特許出願第531,506号を参照することにより得ら
れる。
【0060】サブページの状態 サブページ状態は、無効状態、読取り専用状態および所
有状態という3つの種別のサブページ状態について定義
される。これら3つの種別は、それらの種別が可能にす
るアクセスに応じて強さ順に並べられる。無効状態はな
んらのアクセスも許容しない。読取り専用状態はロード
および命令取出しアクセスを許容する。いくつかの所有
状態があり、すべてロードアクセスを許容しそしてキャ
ッシュ部がネットワーク46からのデータ要求に応答す
るのを許容し、あるものは記憶アクセスを許容する。一
つのキャッシュ部だけが所定の時間に所有状態の所定の
サブページを保持可能である。所有状態のサブページを
保持するキャッシュ部はサブページ所有者と呼ばれる。
各サブページの所有権は、所有権を要求する(たとえば
サブぺージ獲得またはサブページ開放命令などの)アト
ミック状態命令、特別のロード命令およびストアあるい
は格納命令を通じてプロセッサが所有権を要求するのに
応じてキャッシュ部からキャッシュ部へと移動する。
【0061】無効状態 サブページがキャッシュ部に存在しないときは、そのキ
ャッシュ部について無効状態にあるといわれる。もしプ
ロセッサがその局所あるいは局部のキャッシュ部にて無
効状態にあるサブページへのロードまたは格納を要求す
れば、引き続きそのキャッシュ部はデータアクセスを満
足するためにある他の状態のサブページのコピーを要求
しなければならない。無効記述子状態および無効状態と
いう2つの無効状態がある。
【0062】所定のキャッシュ部が所定ページについて
何らの記述子も有さないとき、そのページのすべてのサ
ブページはそのキャッシュ部で無効記述子状態にあると
いわれる。こうして無効記述子状態にあるサブページは
キャッシュ部で明示的に表示されない。
【0063】CEUが無効記述子状態にあるサブページ
を参照するとき、局所キャッシュ部は(現在のセット
の)複数の記述子の一つをシステム仮想アドレスへ割り
付けねばならない。記述子割付けが完了した後、ページ
中のすべてのサブページは無効状態を有する。
【0064】局所キャッシュ部が所定のページについて
記述子を有するが、所定のサブページがそのキャッシュ
部に存在しないとき、そのサブページは無効状態にあ
る。局所キャッシュ部は他のキャッシュ部と通信を行う
ことによりサブページデータを得ようとする。
【0065】読取り専用状態 read−onlyというただ一つの読取り専用状態がある。い
ずれの数のキャッシュ部も所定のサブページを、当該サ
ブページの所有者がそのサブページを非排他的状態に保
持していれば、読取り専用状態に保持可能である。サブ
ページの所有者がいずれか他の状態(すなわち、排他的
状態、アトミック状態または一時的アトミック状態のう
ちの一つである排他的所有権状態)を有すれば、いずれ
のセルに何らの読取り専用コピーも存在できない。CE
Uは読取り専用状態にあるサブページを修正できない。
【0066】所有者状態 非排他的状態および排他的所有権状態という2つの基本
的な所有者状態の種別がある。所定のキャッシュ部が所
定のサブページを非排他的状態に保持するとき、他のい
くつかのキャッシュ部はそのサブページを読取り専用状
態に保持していることが可能である。プログラム的には
非排他的状態は読取り専用状態と同様である。CEUは
非排他的状態にあるサブページを修正できない。非排他
的状態は基本的にはメモリシステムにより使用されるブ
ックキーピング状態であり、それはサブページの所有権
を定義する。
【0067】排他的所有権状態は排他的状態、アトミッ
ク状態および一時アトミック状態である。所定のキャッ
シュ部が所定のサブページを排他的所有権状態に保持す
るとき、何らの他のキャッシュ部もそのサブページの読
取り専用または非排他的コピーを保持し得ない。もし局
所キャッシュ部が排他的所有権状態でサブページを有す
れば、CEUは、セグメント変換テーブルがセグメント
への書込みアクセスを承認しそして記述子無書込フラグ
が明瞭であれば、サブページデータを修正できる。
【0068】アトミック状態 アトミック状態は排他的状態よりも強力な形式の所有権
状態である。サブページはプログラムによる明示の要求
の結果としてアトミック状態へ入ったり出たりするだけ
である。
【0069】基本的には、アトミック状態はシステム仮
想アドレス空間でいずれのサブページにも単一スレッド
型のアクセスを行うのに使用できる。プロセッサが、サ
ブぺージ獲得待ちなし命令を実行しサブページがアトミ
ック状態に入ることを要求するとき、もしサブページが
まだアトミック状態でなければこの命令は普通に完了す
るだけである。こうして、サブページでのアトミック状
態は簡単なロック機構あるいは鍵として使用できる。か
かるロック機構は、排他的状態のサブページを最初獲得
し順次状態を排他状態からアトミック状態へ変化するこ
とによりサブぺージ獲得待ちなし命令が普通に完了する
とき、ロックされる。ロック機構は、サブページ開放命
令を実行することによりロック解除が行われる。サブペ
ージ開放命令はアトミックまたは一時的アトミック状態
でサブページがキャッシュ部に存在することを要求す
る。局所キャッシュ部はサブページを得、順次このサブ
ページをアトミックまたは一時的アトミック状態から排
他的状態へ変化する。(もしサブページが一時的アトミ
ック状態を有すれば、動作はより複雑であるが、効果は
プログラム的には同様である)。
【0070】アトミック状態がサブページにのみ関連づ
けられることに注意されたい。所定のオペレーティング
システムプロセス(標準的にはユーザプログラム)また
は所定のセルとの関連性はない。プロセスがサブぺージ
獲得命令を実行しアトミック状態のサブページを獲得し
引き続きオペレーティングシステム51により切り替え
られそれが別のセルで実行を継続することが可能であ
る。そのプロセスは2番目のセルで実行を継続しそして
最終的にはサブページ開放命令を実行し、サブページを
解放する。これら2つの命令間で、サブページの単一の
コピーだけが全メモリシステムにありそれゆえそれはア
トミックまたは一時的アトミック状態にある。種々のプ
ロセッサがサブページを参照する命令を実行するに応じ
てその単一有効コピーはセルからセルへと移動する。所
定のプロセスがアトミック状態を獲得しそして別のプロ
セスがアトミック状態を解放することが可能である。
【0071】アトミック状態は簡単にいえばサブページ
に関連づけられた追加フラグである。サブページのデー
タ状態に加えてアトミック状態を使用するプロトコルを
実行できる。データだけを使用して実行されるプロトコ
ルがエラーを有し得るのと同様にアトミック状態プロト
コルにも欠陥があり得る。ハードウエアは、セグメント
変換テーブルそして記述子無アトミックにより課される
アクセス制御を越えるアトミック状態の使用に何らの検
査動作も課さない。
【0072】一時的アトミック状態 サブぺージ獲得待ちなし命令は常にその定められた実行
時間内に完了するが、それは(メモリシステムのサブペ
ージの現在の状態に依存して)成功するかまたは失敗し
得る。第2の命令形式がサブぺージ獲得待ちであり、こ
れはサブページが排他的状態で得られそしてアトミック
状態へ変化されるまでは完了しない。サブぺージ獲得待
ち命令はプログラマからサブぺージ獲得命令が成功した
か否かを決定するという重荷を取り除く。もしプロセッ
サがサブぺージ獲得待ちを実行するときにサブページが
すでにアトミックまたは一時的アトミック状態であれ
ば、プロセッサは、サブページが解放され、局所キャッ
シュ部によって獲得せられそして排他的状態からアトミ
ックまたは一次的アトミック状態へと変化されるまで時
間を稼ぐ。サブぺージ獲得待ち命令の使用は、セルが
「ロック機構をロック」する機会を待つ際にキャッシュ
部間で送られるメッセージの数を減じ得る。
【0073】一時的アトミック状態命令がサブぺージ獲
得待ちが効率よく機能できるようメモリシステムによっ
て自動的に使用される。その使用はプログラマに完全に
見えない。もしサブページがアトミック状態にありそし
て別のキャッシュ部がそのサブページでサブぺージ獲得
待ち命令を実行すれば、そのサブページは保持キャッシ
ュ部にて一時的アトミック状態に入る。サブページが後
にサブページ開放命令で解放されるとき、一時的アトミ
ック状態はサブページをしてネットワーク46上に特別
の解放状態にて追い出されるよう強制する。解放キャッ
シュ部はサブページについてのそれ自身の状態を無効状
態へ変える。サブぺージ獲得を実行しつつあるいずれの
キャッシュ部もサブページを見つけそしてそれを受け取
る。受け取ったキャッシュ部は引き続きそのサブぺージ
獲得命令を完了し得、そしてサブページはそのキャッシ
ュ部で一時的アトミック状態に入る。この動作は、追い
出されるサブページがいずれの他のキャッシュ部によっ
ても受け取られない時間まで、連続するサブぺージ獲得
およびサブページ開放命令ごとに生ずる。この時間に、
解放を遂行するキャッシュ部はそのサブページを(サブ
ページが解放されたときにセットされた)無効状態から
排他的状態へ変化させる。
【0074】本発明により構成されたディジタルデータ
プロセッシング装置で使用される好ましいサブページ状
態の別途の評価が上述の米国特許出願の参照により得ら
れる。
【0075】キャッシュ部ディレクトリ キャッシュ部ページおよびシステム仮想アドレス(SV
A)ページ間の関連性は各キャッシュ部によってそのキ
ャッシュ部ディレクトリに記録される。各キャッシュ部
ディレクトリは記述子から構成される。一つのキャッシ
ュ部にはメモリの各ページごとに一つの記述子がある。
所定の時間に各記述子は有効であるとあるいは無効であ
るといわれる。もし記述子が有効であれば、対応するキ
ャッシュ部メモリページはシステム仮想アドレス空間の
ページと関連づけられ、そして記述子は関連のシステム
仮想アドレスページアドレスおよび状態情報を記録す
る。もし記述子が無効であれば対応するキャッシュ部メ
モリページは論理的に使用状態にない。記述子に関連づ
けられる何らの明示の有効性フラグがなく、もし固定(a
nchor)フィールドおよび保持フィールドが両方ともクリ
アで何ら有効なサブページもシステム仮想アドレスペー
ジについて存在しなければ、記述子は無効であると考え
られる。
【0076】各キャッシュ部ディレクトリは連想記憶装
置として作用する。これは、キャッシュ部が、その記述
子のすべてを通じての反復的なサーチなしにシステム仮
想アドレス空間の所定ページについて記述子を配置する
のを可能にする。各キャッシュ部ディレクトリは128
個のセットを持つ16ウエイセット連想方式メモリとし
て実施される。システム仮想アドレス空間のページのす
べてが、それぞれがキャッシュ部ディレクトリセットと
関連づけられる128個の等価クラスに分割される。あ
るページについての記述子だけがページの等価クラスに
対応したキャッシュ部ディレクトリのセットに記憶でき
る。等価クラスはSVA[20:14]により選択され
る。各セットに16個の要素があるから、いずれの所与
の時間にも、キャッシュ部はSVA[20:14]につ
いて同様値をもつ16ページしか記述できない。
【0077】キャッシュ部ディレクトリの好ましい構成
が図6に示されている。システム仮想アドレスへの参照
が行われるとき、キャッシュ部は、それが要求された情
報を有するか否かを決定しなければならない。これは、
キャッシュ部内の一セットを選択し順次当該セットの記
述子すべて検査することにより達成される。SVA[2
0:14]はセットを選択する。通常のアーキテクチャ
において、選択されたセットの記述子のそれぞれはSV
A[63:21]に対して同時に比較される。240M
byteのシステム仮想アドレス空間を有する好ましい
実施例において、これはSVA[39:21]との比較
を意味する。セットの要素のうちの一つが所望されるペ
ージについての記述子であれば、対応する比較器は一致
を指示する。セット数と連結される一致記述子の組のイ
ンデックスはキャッシュ部のページを識別する。
【0078】もし一つまたはそれ以上の記述子が一致す
ればキャッシュ部は多重記述子一致の例外を合図する。
もし何らの記述子も一致しなければ、キャッシュ部は記
述子を割り付けかつネットワークからデータを要求す
る。割り付けまたはデータ要求のいずれかが失敗するこ
とがあり得、そのためキャッシュ部は誤動作をCEUに
指示する。
【0079】一セットを選択するSVA[20:14]
の使用は機能的にはSVAのアドレスにわたるハッシュ
関数である。オペレーティングシステム51はSVAの
アドレスを割り当て、このハッシュ関数が通常のケース
で良好な性能を与える。単一のセグメントの多数ページ
の参照および多数セグメントの第1ページの参照という
2つの重要な分配ケースがある。このセットセレクタは
ページの隣接群に対して良好なキャッシュ部の挙動ある
いは振舞いを発生する。なぜなら、128個の隣接ペー
ジが128個の明確なセットに存在するからである。し
かし、このセレクタはSVA[20:14]において同
様の値を有する多数ページに対して不満足なハッシュ挙
動を発生する。オペレーティングシステム51は後者の
状況を、セグメント内のデータの論理的起点(origin)を
変化させることにより回避できる。たとえば、それぞれ
のプログラム事象記録プロセス(per-process)形式ユー
ザースタックは異なるセグメントオフセット(相対位
置)で開始できる。
【0080】記述子の内容 セルがサブページに対する要求に応答するとき、それは
局部キャッシュにおいて一定記述子フィールドの値およ
びサブページデータを供給する。応答がリクエスタ(要
求者)へ戻るとき、それは、(もしそれが何らの他の有
効なサブページも有しなければ)これらフィールドを記
述子フィールドへコピーするか、またはこれらフィール
ドの論理和(OR)をとりリクエスタへ入れる。ある記
述子フィールドはレスポンダ(応答者)により決して供
給されないしまたリクエスタにより更新されもしない。
【0081】好ましい実施例において、記述子フィール
ドは以下のように定義される。 descriptor.tag(19ビット) システム仮想アドレスのビット[39:21]。このフ
ィールドは、対応する記述子により指定されるシステム
仮想アドレス空間の特定のページを識別する。所与のセ
ルの所与のセットについて、このフィールドは全16個
の記述子の間で単一でなければならない。オペレーティ
ングシステム51は、それがシステム仮想アドレスペー
ジを生成するときこのフィールドを「セット」する。
(それは、キャッシュ初期化中にオペレーティングシス
テム51によってもまたセットされる)。
【0082】descriptor.atomic
odified(1ビット) このページのいずれのサブページもアトミック状態への
またはこれからの遷移を経験するときにキャッシュがこ
のビットフラグを1へセットする。なぜならサブぺージ
獲得またはサブページ開放命令が首尾よく実行されたか
らである。それはサブページがアトミック状態から一時
アトミック状態へ変化するときにもまたセットされる。
もしサブぺージ獲得に失敗すればサブページはすでにア
トミック状態にあるから、またもしサブページ開放に失
敗すればサブページはアトミック状態にないので、この
フラグはセットされない。このフラグはもしサブぺージ
獲得またはサブページ開放が失敗すればセットされな
い。なぜならdescriptor.noatomic
がセットされるからである。オペレーティングシステム
51はこのフラグを0にセットしてそれがアトミック状
態変化を表していることを指示する。このフィールドは
キャッシュからキャッシュへ伝搬せられる。
【0083】descriptor.modified
(1ビット) いずれのデータもページにおいて修正されるときにキャ
ッシュがこのビットフラグを1へセットする。オペレー
ティングシステム51は、descriptor.mo
difiedを0にセットしてそれがページの修正を表
していることを指示する。このフラグは、もしデータ修
正の試みが失敗すれば、セットされない。なぜならde
scriptor.no writeがセットされるか
らである。このフィールドはキャッシュからキャッシュ
へ伝搬せられる。
【0084】descriptor.referenc
ed(1ビット) キャッシュはこの参照フィールドをページへセットしそ
してフィールドを周期的にクリアする。フィールドはペ
ージが最近参照されたことを表わすのに使用される。
【0085】descriptor.anchor(1
ビット) ソフトウエアがこのフィールドを設定し、他のキャッシ
ュからのデータ要求が充足されないし記述子もドロップ
されないことを指示する。別のキャッシュからのいずれ
の読出しまたは獲得要求も応答されないままリクエスタ
へ戻り、そしてあたかもページがなかったかのように取
り扱われる。このフィールドは、システム仮想アドレス
ページの生成または破壊の一部としてそしてページ記述
子修正の一部としてオペレーティングシステム51によ
りセットされる。
【0086】descriptor.held(1ビッ
ト) ソフトウエアがこのフィールドを設定し、たとえ何らの
サブページもキャッシュに存在しなくとも記述子はキャ
ッシュからドロップされないことを指示する。
【0087】descriptor.no atomi
c(1ビット) ソフトウエアがこのフィールドを設定し、いずれのキャ
ッシュもこのページのいずれのサブページのアトミック
状態をも変化しないようにする。サブぺージ獲得または
サブページ開放を実行する試みが失敗しそしてもとのプ
ロセッサへ合図される。プロセッサはpage no
atomicの例外を合図する。descripto
r.no atomicは、たとえいくつかのサブペー
ジがアトミック状態を有するときでも変更できる。この
フラグは、descriptor.no writeが
データ状態を変化する試みを簡単に阻止するのを同様の
仕方で、アトミック状態を変化する試みを簡単に阻止す
る。このフィールドはキャッシュからキャッシュへ伝搬
せられる。
【0088】descriptor.no write
(1ビット) ソフトウエアがこのフィールドを設定し、局部キャッシ
ュによるページ修正を阻止する。ページ修正の試みが失
敗しそしてもとのプロセッサへ合図される。プロセッサ
はpage no writeの例外を合図する。この
フラグは、排他的またはアトミック/一時アトミック状
態でサブページを取得するためのいずれのキャッシュの
能力にも影響を与えない。このフィールドはキャッシュ
からキャッシュへ伝搬せられる。
【0089】descriptor.summary
(3ビット) サブページセットのサブページ状態フィールドを要約す
る。各サブページセットごとに一つの3ビット形式要約
フィールドがある。要約は、要約セット内のサブページ
について個別のsabpage stateフィールド
の内容をときとどき無効にする。
【0090】descriptor.subpage
state(4ビット) サブページ状態は、3ビット形式状態フィールドと単一
ビットサブキャッシュ記憶ステータスフィールドからな
る。それはキャッシュによってセットされ、各サブペー
ジの状態を記録しそしてサブページのどの部分もCEU
サブキャッシュに存在するか否かを指示する。
【0091】本発明にしたがって構成されるディジタル
データプロセッシングシステムにおけるキャッシュディ
レクトリおよび記述子の好ましい構成の別途の評価が上
述の関連出願、例えば米国出願第136,930号、米
国出願第370,287号、米国出願第521,798
号および米国出願第531,506号明細書を参照する
ことにより得られる。
【0092】サブページアトミック状態命令 サブページアトミック状態命令は上述の獲得および解放
動作へ向うプログラムインターフェース部である。これ
らの命令はいくつかの形式で存在し並列プログラムの正
確な同調を可能にする。
【0093】サブぺージ獲得[gsp.nwt] サブぺージ獲得&待ち[gsp.wt] サブぺージ獲得はサブページがアトミック状態へセット
されることを要求する。サブページ獲得命令の両方の形
式について、もしサブページがいずれのキャッシュでも
アトミック状態になければ、局部キャッシュはそれをア
トミック状態で取得する。
【0094】gsp.nwtについて、@MEM状態コ
ードは、もしトラップオプションが命令中に存在しそし
てサブページがすでにアトミックであれば、当該命令が
@MEMの変化に代わりトラップするという試みの成功
または失敗を指示する。
【0095】gsp.wt命令形式は、サブページがア
トミック状態で取得されるまでキャッシュをしてCEU
を停止させる。これは、もしプログラムがそれが進行で
きる前にアトミック状態を取得しなければならないので
あれば相互接続トラヒック(呼量)を減ずる。もしサブ
ページが(局部キャッシュを含む)いずれのキャッシュ
でもすでにアトミックであれば、命令はサブページが解
放されるまで待つ。局部キャッシュは順次アトミック状
態でサブページを取得する。@MEM状態は常に変化さ
れ成功を指示する。
【0096】サブページ開放[rsp] サブページ開放は、サブページをアトミック状態から取
り除くのに使用される。もしサブページが局部キャッシ
ュに存在しなければ、それは最初相互接続部を通じて要
求される。ひとたび局部キャッシュが排他的的所有権を
有すれば、rspが進行する。もしサブページがアトミ
ック状態でなければ、サブページ開放はサブページ状態
を変化しない。この状況において、CEUはもしトラッ
プ変更子が命令について存在すればトラップする。もし
サブページがアトミック状態であれば、それは排他的状
態へ変化せられる。もしサブページが一時アトミック状
態であれば、それは排他的状態へ変化せられそして相互
接続部へ追いやられ、いずれの待機セルもアトミック状
態を取得し得る。
【0097】ページ操作 システム10は後述する態様でページおよび記述子を取
り扱う。この議論は固定(anchored)記述子が局部キャッ
シュに存在すると仮定している。
【0098】システム仮想アドレスページの生成 mpsaの後に記述子が存在するが、すべてのサブペー
ジは無効状態にある。オペレーティングシステム51は
mpdwを実行し、すべてのサブページ状態が排他的状
態へセットされるべきことを指定する。これはメッセー
ジをしてネットワーク46上に送られるようにしいずれ
の関心のあるリング要素もページの生成に注意できるよ
うにする。
【0099】システム仮想アドレスページが、そのデー
タ値は定義されないけれども、ここに存在することにな
る。ソフトウエアは、ユーザがページを参照するのを許
容する前に、記憶命令またはl/0を使用しページを初
期化しなければならない。これが理由で、オペレーティ
ングシステム51は標準的にはユーザプログラムへのア
クセスの不可能なシステム仮想アドレス場所にページを
生成し、ページデータを初期化し、そして順次、システ
ム仮想アドレスページのアドレスを変化させる(後
述)。ページは、固定(anchor)をクリアするmpdw命
令を実行することにより包括的使用に向けて解放され
る。
【0100】システム仮想アドレスページの破壊 mpsaの後、オペレーティングシステム51は排他的
的状態ですべてのサブページを取得しなければならな
い。これはmfsva命令を使用して行われる。オペレ
ーティングシステム51はすべてのサブページが無効状
態へ変更されるべきことを指定するmpdwを順次実行
する。この命令は、いずれの関心のあるリング要素もペ
ージの破壊に注意できるようにメッセージがネットワー
ク46を送られるようにする。システム仮想アドレスペ
ージはこの動作によりは会される。ソフトウエアは固定
をクリアする別のmpdwを実行することにより再使用
に向けて記述子を解放する。
【0101】記述子フィールドの変化 mpdw命令は局部記述子の種々のフィールドを変化す
るのに使用される。それは、修正、atomic mo
dified、no write、無アトミックおよび
保持フィールドをセットまたはクリアできかつ固定フィ
ールドをクリアできる。mpdwはタグを、かくして記
述子と関連づけられたシステム仮想アドレス空間アドレ
スをも変化できる。(記述子のインデックスはシステム
仮想アドレスの一部を形成するので、新規なタグは定義
によって同様のキャッシュセットにある。)
【0102】メモリシステムの首尾一貫性を保証するた
めに、オペレーティングシステム51は、記述子のタグ
またはフィールドを変更するときに一定の規則に従わな
ければならない。mpdwは、descriptor.
anchorがセットされることを必要とする(命令自
体はdescriptor.anchorのクリア動作
を招くけれども)。全サブページが排他的所有権状態で
局部キャッシュに存在することを種々のシーケンスが要
求する。これは、各サブページごとに、descrip
tor.anchorを設定しそしてmfsva.ex
を実行することにより達成される。全サブページが局部
キャッシュで非サブキャッシュ記憶されることを種々の
シーケンスが要求する。これは局部CEUでサブキャッ
シュ記憶されるであろう各サブページごとにmflsp
を実行することに達成される。(mfsva.exを実
行することは、サブページが他のいずれのセルのCEU
によってもサブキャッシュ記憶されないことを保証す
る。)
【0103】メモリシステム制御命令 メモリシステム制御命令はプロセッサがメモリシステム
を直接操作するのを可能にする。データ移動およびペー
ジ状態制御という2つの種別の制御命令がある。データ
移動制御命令は、データのページおよびサブページを、
階層構造でキャッシュからキャッシュへと移動する。ペ
ージ状態制御命令はページ記述子を操作する。
【0104】これはCEU命令はコマンドに依存して同
期的にまたは非同期的に実行するキャッシュコマンドを
生ずる。CEUキャッシュ命令が、それが進行中である
間、キャッシュプログラム参照表(PRT、ハードウエ
アテーブル)のエントリを占有し得る。PRTは4つの
エントリを有し、最大4つのキャッシュ命令が並列に実
行し得る。これらCEU命令のほとんどのものが要求が
満足せられまで使用状態に留まるPRTエントリの割当
てを生じ同期的な挙動を提供する。たとえば、ロード/
ストア命令が同期的に実行し、(ミッシングページまた
は書込み不能ページなどの)一定のソフトウエアにより
制御される例外が予測可能な仕方で解決される。pcs
p(先取りキャッシュサブページ)命令およびpsts
p(事後格納サブページ)命令は以下で説明するように
非同期的に動作する。
【0105】同期誤りが標準的にはトラップシーケンス
を実行するCEUで生ずる。非同期誤りが、実際のハー
ドウエア誤りから生ずるかまたはいくつかの他のキャッ
シュからの要求により引き起こされる。かかる誤りはメ
モリシステムの割込みあるいは中断によって報告され
る。
【0106】フェッチサブページ命令 mfsva命令はオペレーティングシステム51が、読
み出し専用または排他的的所有権状態のサブページを取
り出すのを可能にし、サブページのシステム仮想アドレ
ス場所を指定する。これは、pcspにより必要とされ
るようなDSTT変換の確立という労力をオペレーティ
ングシステム51から減ずる。
【0107】フラッシュサブキャッシュ記憶サブページ命令 mflsp命令は指定サブページが局部CEUでサブキ
ャッシュ記憶されないことをキャッシュが保証するよう
にする。もしサブページが無効記述子状態または無効状
態にあれば、何らの記述子も割り付けされずそしてサブ
ページはネットワーク46を介して要求されない。
【0108】再結合サブページ命令 mrcsp命令は、オペレーティングシステム51が、
所有権を別のキャッシュへ移動させることにより一ペー
ジについてアクティブな記述子の数を減ずるのを可能に
する。キャッシュのバックグラウンド再結合アクティビ
ティとは異なり、この命令はキャッシュ構成パラメータ
によって制御されない。ページ状態制御命令はシステム
仮想アドレス空間の個別のページに対して動作する。
【0109】固定記述子命令 mpsa命令は局部キャッシュの固定記述子をシステム
仮想アドレスページに提供する。もし記述子がmpsa
の前にすでに存在していたならば、その固定フラグがセ
ットされる。そうでなければ、キャッシュはある記述子
を割り付けそして順次固定フラグをセットする。ページ
状態制御が、システム仮想アドレスページについて固定
記述子が局部キャッシュに存在することを要求する。
【0110】書込み記述子命令 mpdw命令はシステム仮想アドレスページを生成およ
び破壊しそして既存のシステム仮想アドレスページの記
述子フラグを変化するのに使用される。mpdwは、m
psa命令を使用して、オペレーティングシステム51
がページのための固定記述子を最初取得することを要求
する。
【0111】本発明により構成されるディジタルデータ
プロセッシングシステムにおけるメモリシステム制御命
令の別途の評価が上述の関連出願、例えば米国出願第1
36,930号、米国出願第370,287号、米国出
願第521,798号および米国出願第531,506
号を参照することにより得られる。
【0112】仮想記憶システム 上述したように、オペレーティングシステム51はデー
タをアクセスおよび割り付けを管理するための機構を具
備する。この機構は、「仮想記憶」または「VM」シス
テムと呼ばれる。オペレーティングシステム51の一部
として、VMシステムの少くとも一部は、たとえば中央
処理装置40A、40B、40Cとの協働動作のため、
どのセルにも存在する。
【0113】VMシステムは3つの主要な責任を担う。
第1に、それは各プロセスの文脈アドレス(CA)空間
を管理する。これは、セグメント変換テーブルエントリ
(STTE)を使用する、システム仮想アドレス空間の
ある帯域へのCA空間のマッピングを含む。これはプロ
セス管理をも含む。これら機能の態様を以下で別途詳述
する。
【0114】第2に、VMシステムはほとんどのトラッ
プ条件およびページフォールトの解決に対して責任を負
う。このタスクの一部が、「ラインフル(line full)」
などのより過酷な種別のフォールトおよびデバイスへの
またはこれからのページングを招くフォールトの頻度を
減ずることである。これは、システムで利用できる物理
メモリのできるだけ効率のよい使用を行うことを試みる
ことにより処理される。この第2の機能の態様が、本出
願と同時に出願せられた「分散型メモリシステムを有す
る改善されたディジタルデータプロセッサ」という表題
の本出願人による出願に詳細に述べられている。
【0115】第3に、それはシステム仮想アドレス空間
を管理する。これは、対象物(ファイル、デバイスな
ど)のシステム仮想アドレス帯域へのマッピングおよび
これら帯域のためのアトミック状態情報の維持を含む。
本発明のこの様相の態様が、本出願と同時に出願せられ
た「改善されたページングを有するディジタルデータプ
ロセッサ」という表題の本出願人による出願明細書に詳
細に述べられている。
【0116】アドレス指定 システム10のメモリアーキテクチャは、文脈アドレス
(CA)空間およびシステム仮想アドレス(SVA)空
間という2つのレベルの関係アドレス空間からなる。文
脈アドレス空間はメモリへのプログラマインターフェー
ス部である。システムには多くの文脈アドレス空間があ
る。システム仮想アドレス空間は、すべての文脈アドレ
ス空間からのデータを記憶する。ただ一つだけのシステ
ム仮想アドレス空間がある。別のアドレス空間のシステ
ム物理アドレス空間(SPA)はハードウエア制御レジ
スタを画定する。
【0117】たとえば40A〜40Cなどのプロセッサ
は命令およびデータ参照を区別する。命令参照はシーケ
ンシャル命令の取出しの結果として、すなわち、プロセ
ッサは制御流れ類別の命令を実行したから生ずる。文脈
アドレス空間への他のすべての参照はロード/ストア類
別の命令により行われそしてデータ参照として分類され
る。
【0118】命令サブキャッシュがイネーブルとされる
とき、プロセッサは命令の文脈アドレス参照をアクセス
命令の一部としてシステム仮想アドレスへ変換する。デ
ータサブキャッシュは常にイネーブルとされ、そしてデ
ータの文脈アドレス参照は常にアクセスデータの一部と
してシステム仮想アドレスへ変換される。
【0119】文脈アドレス空間が2次元形式のセグメン
ト化されたアドレス空間である。各セグメントはセグメ
ント数により識別される。文脈空間のアドレスがセグメ
ント数とセグメント内でのオフセットとから構成され
る。各文脈アドレス空間は、文脈セグメント数からシス
テム仮想アドレス空間場所への一組のマッピングにより
定義される。文脈アドレス空間からシステム仮想アドレ
ス空間へのマッピングはシステムのソフトウエアにより
制御される。各セグメントの定義は下記から構成され
る。
【0120】システム仮想空間の起点:セグメントの始
めの線形システム仮想アドレス空間における場所 サイズ:各データセグメントは222ないし240バイトの
範囲の長さを有する。各命令セグメントは222ないし2
40バイトの範囲の長さを有する。 アクセス制御:各データセグメントは、それが読み出さ
れ得るか、書き込まれ得るか、または実行され得るかど
うかを決定する一組のアクセス制御許可を有する。命令
セグメントは、もし変換がプロセッサへ知られれば参照
されることができる。
【0121】異なる文脈空間からのセグメントがシステ
ム仮想アドレス空間の同様の場所に変換される。これは
データおよびプログラムの共用を促進する。しかし、シ
ステム仮想アドレス空間の所与の部分が命令とデータと
の両方としての同時使用はできない。各文脈はそれ自身
のアクセス制御情報を有するので、共用は文脈空間の基
礎により文脈空間で制御できる。
【0122】図7は文脈アドレス空間のこのマッピング
を図示する。60および62という2つの文脈がある。
文脈60が4つのセグメント60A〜60Dからなり、
文脈62は5つのセグメント62A〜62Eからなる。
各セグメントはセグメント数により識別される。たとえ
ば、セグメント60Aはセグメント数10により識別さ
れ、セグメント60Bはセグメント数103により識別
される(以下同様)。
【0123】図7の矢印は、セグメント60A〜60D
および62A〜62Eのシステム仮想アドレス空間への
マッピングを図示する。図に示されるように、2つの文
脈60,62からのいくつかのセグメントはシステム仮
想アドレス空間の共通空間へ写像する。
【0124】VMシステムを有するシステム10はシス
テム仮想アドレス空間の一部が一つのセグメントまたは
数個のセグメントとして観察される(文脈空間60のセ
グメント60Bおよび60Dそして文脈空間62のセグ
メント62Dのように)のを可能にする。システムアー
キテクチャはまた同様の文脈アドレス空間の同じまたは
異なるサイズの複数のセグメントが同様のシステム仮想
アドレス空間を参照する(文脈空間62のセグメント6
2Dおよび62Eのように)のを可能にする。
【0125】システム仮想アドレス空間はキャッシュ4
2A〜42Cによるメモリ管理部への通常のアクセス路
である。上述したように、システム仮想アドレス空間へ
の参照が、参照される項目を含むシステム仮想アドレス
空間ページについてキャッシュを探索することに満足さ
れる。もし必要な部分がキャッシュのいずれにも存在し
なければ、例外が合図される。ソフトウエアはハードウ
エアと協働したとえばディスク記憶装置などのI/O装
置へのおよびこれからのデータの移動を含むキャッシュ
で入手可能な必要なデータを有する。この点について、
上述の「改善されたページングを有するディジタルデー
タプロセッサ」という表題の本出願人による出願明細書
を参照されたい。
【0126】システム10のメモリアーキテクチャのプ
ログラマの視野範囲は2次元形式の文脈アドレス空間で
ある。VMシステムはシステム仮想アドレス空間への文
脈(context address)セグメントのマッピング(写像)
を制御しこのことはアプリケーションプログラムに対し
て透過性である。文脈空間のアドレスが文脈アドレスと
呼ばれる。文脈アドレスが、オフセット(CA.off
set)に連結されたセグメント数(CA.segme
nt)からなる。CA.segmentのサイズはセグ
メントサイズに従って変化する。このことが図8に示さ
れている。
【0127】セグメント数とオフセットとの間の境界が
アドレス自身の検査によっては決定できないことが評価
されるであろう。特定の文脈アドレスを包含するセグメ
ントを決定するためには、プログラムはセグメントを定
義するデータ構造へのアクセスを持たねばならない。
【0128】アドレス変換 VMシステムは例えば40A〜40Cなどの中央処理装
置の設備を使用し、文脈セグメント数からシステム仮想
アドレス空間への変換として文脈アドレス空間を画定す
る。たとえば40AなどそれぞれのCPUは文脈セグメ
ントの限定数を、セグメント変換テーブル(STT)と
呼ばれる内部テーブルを会してシステム仮想アドレス空
間へ自動的に変換できる。命令の取出しのために一つが
そしてデータ参照のために一つのSTTがある。STT
は完全連想型テーブルであり、命令側テーブルは8つの
エントリを有し、データ側テーブルは16個のエントリ
を有する。STTの個別のエントリはセグメント変換テ
ーブルエントリ(STTE)である。VMシステムはこ
れらテーブルを多重化し、任意に大きな文脈アドレス空
間を画定する。
【0129】アドレス変換が文脈アドレスをシステム仮
想アドレス空間アドレスへ変換するプロセスである。ア
ドレス変換が文脈アドレスのセグメント数を対応する
「システム仮想アドレス空間セグメント数」と置換す
る。システム仮想アドレス空間はセグメント化されず、
それゆえシステム仮想アドレスセグメント数は単にシス
テム仮想アドレス空間アドレスの最上位ビットについて
の従来の名称である。
【0130】多重文脈アドレスは同様のシステム仮想ア
ドレス空間アドレスへ写像できる。すべてがシステム仮
想アドレス空間の同様の場所を参照する一つまたはそれ
以上の文脈において同様のまたは別個の文脈アドレスを
有することが可能である。共通のそれらのシステム仮想
アドレス空間アドレスの部分とともに異なるサイズの文
脈セグメントを有することも可能である。上記の変換の
逆を議論するときに、同様のシステム仮想アドレス空間
のアドレスは文脈セグメント数およびオフセットに区分
して分割される。
【0131】アドレス変換が図9に示されている。それ
は、命令(図示せず)が汎用レジスタ66、変移部6
8、および変移動作(加算または減算)部70を介して
文脈アドレスを指定する。変移の大きさは命令に応じて
変化しそして(変移操作に応じて)汎用レジスタ値へ加
えられるかまたはこれから差し引かれ、SVA.off
set72を形成し、これはセグメントのサイズが要求
するのと同程度のビットを包含する。
【0132】ひとたびSVA.offsetが決定され
れば、たとえば40AなどのCPUが、汎用レジスタの
高位ビットと一致するセグメント変換テーブルエントリ
について適当なセグメント変換テーブルを探索する。結
果は、データまたは命令アドレスの最高位の24ビット
がゼロでなければ画定されない。すなわち、ランダムセ
グメント変換テーブルエントリが変換のために使用可能
である。各セグメント変換テーブルエントリは一致キー
および変換結果を包含する。一致キーは文脈セグメント
数およびサイズ情報からなる。変換結果74はシステム
仮想アドレス「セグメント数」(SVA.segmen
t)を提供し、データ参照のために、アクセス許可情報
76もまた決定される。
【0133】各セグメント変換テーブルエントリは、セ
グメント変換テーブルエントリが変換の試み中考慮され
るかまたは否かを指示する有効ビットを有する。適当な
セグメント変換テーブルのそれぞれの有効なセグメント
変換テーブルエントリが検査される。もし、STTEの
セグメントサイズによって指定されるのと同程度の数の
有効アドレスの最上位ビットが対応するSTTEの文脈
セグメント数と一致すればそのSTTEは一致する。も
し何らのSTTEも一致しなければ、CPUはミッシン
グセグメント例外を合図する。もし2以上のSTTEが
一致すれば、CPUは、multiple stt
atch例外を合図する。
【0134】もし、一致STTEが見出されれば、対応
するシステム仮想アドレスセグメント数はシステム仮想
アドレス空間アドレスのセグメント数となる。サイズn
のセグメントについて、SVA[39:log2
(n)](SVA.segment)がシステム仮想ア
ドレスセグメント数から導かれる。
【0135】データSTTEのアクセス許可フィールド
は読み出し、トランザクションおよび書込みアクセスを
制御する。命令の実行は、文脈アドレスは命令STTに
より変換されることだけを要求する。不十分なアクセス
許可はaccess violation例外を招く。
【0136】上述の議論は、セグメントサイズがアプリ
オリ(先験的)に知られそしてセグメント数とオフセッ
トとの間の境界を選択するのに使用されることを仮定し
ている。実際にはセグメントサイズはSTTEで符号化
される。より複雑である実際のセグメント変換テーブル
ルックアップは後述する。
【0137】セグメント変換テーブル変換 図10は、本発明により構成されたディジタルデータプ
ロセッサ10のセグメント変換テーブルフィールドを図
示する。文脈アドレスのセグメント数は、有効アドレス
を計算するのに使用される汎用レジスタ(GR)の高位
ビットのある部分を占有する。ビットGR[63:4
0]は0として取り扱われる。ビットGR[39:2
2]はセグメントのサイズに依存するオフセット計算で
使用されるかまたはセグメント数の一部である。
【0138】VMシステムはSTTE.ca segm
ent[39:22]をセットし、GRと同様の仕方で
調整されるセグメント数を包含する。もしセグメントサ
イズが222よりも大きければ、オフセットに対応するS
TTE.ca segmentの低位ビットは重要でな
くそれゆえゼロと指定されねばならない。1にセットさ
れるSTTE.maskの高位ビットは複数のビットS
TTE.ca segment[39:22]のうちの
いずれのビットが文脈アドレスからシステム仮想アドレ
ス空間アドレスへ変換されるかどうかを指示する。たと
えば、サイズ226バイトのセグメントが、1にセットさ
れるSTTE.maskの最上位の14ビットを有し、
そして他の4ビットはゼロである。
【0139】222の例において、GR[39:22]の
すべてがセグメント数を包含し、そしてこれらのいずれ
もオフセットを包含しない。STTE.maskはすべ
て1であり、STTE.ca segmentのすべて
が意味がある。232の例において、GR[39:22]
はセグメント数を包含しそしてGR[31:22]がオ
フセットを包含する。これはSTTE.maskの対応
する位置のゼロによって宣言される。セグメント変換テ
ーブルエントリのマスクが、18個のビットにわたる高
次数のゼロが、どのようなゼロも混合されることなくす
べて1であるときにだけ有効であり、無効のSTTEマ
スクの使用結果は画定されない。
【0140】データ参照のために、DSTTはGR[3
9:22]を有効DSTTEのすべてに対して同時に突
き合わせる。各DSTTEごとに、それは、DSTT
E.maskによりマスクされるGR[39:22]と
DSTTE.ca segmentとを比較する。一致
DSTTE(もしあれば)がアドレス変換で使用され
る。もし何らのDSTTEも一致しなければ、CPUは
ミッシングセグメント例外を合図する。DSTTE.v
alidフラグが、変換試行への参加のためDSTTE
についてセットされねばならない。
【0141】命令参照のために、ISTTはGR[3
9:22]を有効ISTTEのすべてに対して同時に突
き合わせる。各ISTTEごとに、それは、ISTT
E.maskによりマスクされるGR[39:22]と
ISTTE.ca segmentとを比較する。一致
ISTTE(もしあれば)がアドレス変換で使用され
る。もし何らのISTTEも一致しなければ、CPUは
ミッシングセグメント例外を合図する。ISTTE.v
alidフラグが、変換試行への参加のためISTTE
についてセットされねばならない。
【0142】一時にセグメント変換テーブル側(命令ま
たはデータ)の同じ文脈アドレスと一致する2つの有効
なSTTEが存在するのは誤りである。この誤りは検出
されそしてmultiple−stt−match例外
を発生する。もしSTTの複数一致が生ずれば、一致S
TTEのsystem address部分が破壊され
る。
【0143】STT突合せが進行中である間、たとえば
40AなどのCPUはGR[39:0]を符号拡張形変
位へ加算する。この和のビット[21:0]はSVA
[21:0]となる。システム仮想アドレス空間アドレ
スの残り、SVA[39:22]、は、STTE.ca
segment[39:22]と和のビット[39:
22]とを、STTE.maskの制御の下で組み合わ
せることにより形成される。STTE.maskのゼロ
ビットに値押する和のビット[39:22]の一部はシ
ステム仮想アドレスの対応するビットとなる。STT
E.maskの1のビットに対応するSTTE.ca
segment[39:22]の部分はシステム仮想ア
ドレスの対応するビットとなる。図11はどのようにこ
のプロセスがシステム仮想アドレスの発生を招くかを図
示する。
【0144】もし変位付加がアドレスオフセット部分の
アドレスセグメント数部分へのけた上げを生ずれば(す
なわち、図11に示されるように、S−1ビットからS
ビットへ)、結果は画定されないことに注意されたい。
システム仮想アドレス空間使用の際に、システムトラッ
プハンドラは文脈アドレス0で開始し、それにより、文
脈ごとに(たとえどのような大きさであろうとも)最初
の命令側セグメントを占有する。
【0145】各データSTTEはDSTTE.acce
ssにアクセス許可情報を包含する。DSTTE.ac
cessは、!context.PLにより指示される
2つの異なる特権レベルについて異なるアクセス権をコ
ード化する。アクセス権は、読取り、トランザクション
および書込みという3つの種別のデータアクセスを許可
または否認する。読取りおよびトランザクションアクセ
スが常に特権レベル0に許可される。特権レベル1につ
いての読取りアクセスがDSTTE.access
[0]により制御される。トランザクションおよび書込
みアクセスがDSTTE.access[2:1]で独
立に符号化される。読取りアクセスはプログラムがデー
タを読み取るのを可能にするが、アトミック状態を変化
させない。トランザクションアクセスは、gsp(サブ
ぺージ獲得)などの命令を使用してプログラムがアトミ
ック状態を変化するのを可能にする。書込みアクセス
は、プログラムが、アトミック状態を変化しそして書き
込むのを可能にする。読取りアクセスは、トランザクシ
ョンの適宜の動作のためトランザクションアクセスに加
えて必要とされるものである。
【0146】命令セグメントへのアクセスが、文脈アド
レスを変換する有効ISTTEの存在が原因でいずれか
の特権レベルへ許可される。レベル0が、セグメント変
換テーブルのデータ側のすべての画定セグメントのアト
ミック状態を読み出しそして変化させるアクセスを有す
る。VMシステムは、セグメントについてSTTEのロ
ードの方へ傾倒することによってのみレベル0へのこの
アクセスを否認できる。
【0147】下記の表1において、各DSTTE.ac
cessの値は、2つの特権レベルのそれぞれについて
書込み、トランザクション、読取りまたは空きアクセス
かを指定する。書込みはトランザクションアクセスを意
味する。
【表1】
【0148】プロセスおよび文脈アドレス空間管理 図12は、アドレス空間管理のため、詳述すると改善さ
れたチェックポイントおよび分岐動作を提供するためデ
ィジタルデータプロセッサ10により使用される好まし
いデータ構造の相互関係を図示している。vm obj
ectと呼ばれる図師のデータ構造78が、VMシステ
ムがマップド(写像)アクセスをそれに対して有すると
ころのファイル80について包括的マッピング情報を記
憶する。そのファイルはシステム仮想アドレス64へ写
像される部分80Aを具備する。マップイン領域80A
に関する情報がvm windowと呼ばれるデータ構
造82に記憶される。
【0149】ファイル80のマップイン部分はディジタ
ルデータプロセッシングシステム10でのプロセスの種
々の文脈アドレス空間と関連づけられる。たとえば、図
12に示されるように、ファイル80のマップイン部分
80Aが、それぞれのプロセス(図示せず)のそれぞれ
の2つの異なる文脈アドレス空間60,62と関連づけ
られる。システム仮想アドレス空間への文脈アドレス空
間のこの関連付けはそれぞれSTTと呼ばれるセグメン
ト変換テーブル84および86において反映される。各
テーブルは、STTEと呼ばれる(図12でSTTE8
4A、84B、84Cおよび86Aと86B)エントリ
を具備する。これらSTTEは、「vm sttes」と
も呼ばれ、プロセスおよびvm windowにより2
方向にリンクされる。
【0150】vm object(s),vm win
dowおよびvm stte(s)についての好ましい
構成を以下に与える。
【0151】データ構造 Cプログラム言語で提供されるvm object 7
8の好ましい構造が以下の表2の通りである。
【表2】 vm window82の好ましい構造が以下の表3の
通りである。
【表3】
【0152】STT84および86、詳述するとSTT
E70A〜70Cと72Aおよび72Bの好ましい構造
が以下の表4の通りである。
【表4】
【0153】対象物管理 関連のvnodeを有する、たとえばファイル80など
のどの正規ファイルもたとえば対象物78などの関連の
vm objectを有する。さらに、これらの対象物
は、各対象物がそのテーブルのエントリを構成した状態
でVMシステムの対象物テーブルを形成する。上述の
「データ構造」の欄から明らかなように、各対象物78
が、単一ファイルについてSVA対ファイル範囲(rang
e)形式の写像のすべてについての情報をも包含する一つ
またはそれ以上のvm window(s)82を具備
する。VMシステムは対象物管理部およびその対象物管
理ルーチン(詳細は後述)を使用し、対象物テーブルを
初期化し、対象物を発生および削除し、対象物へのvm
windowの関連付けを管理し、オーバレイ対象物
の使用を介して参照時コピーおよびチェックポイント/
再スタート要求を支援する。
【0154】オーバレイ対象物が1次対象物の背後の
「影」のように振舞う。1次対象物は、マップファイル
のデータアクセスのときに最初にVMシステムが参照す
るvm object78のような対象物である。たとえ
ば、もしプロセスが1次対象物に存在しないページを読
み取ろうとするのであれば、VMシステムは関連のオー
バレイ対象物を検査し、それらのうちの一つがページを
有するかどうかを見極める。オーバレイ対象物は読み出
されることができるが、それは決して書き込まれない。
【0155】一例として、プロセスが分岐されるとき、
親のデータ領域は子のプロセスにより受け継がれる。親
および子の双方が初め同じデータを参照すべきである。
ところで、一方のプロセスにより行われるどのような変
化も他方には見えない。親から子へ全データ領域をコピ
ーするのではなく、それぞれのページがそれが参照され
るときにコピーされるだけである。
【0156】オーバレイ対象物がこれを実現する方法
は、元の1次対象物を一方が親のためそして一方が子の
ための2つの新規な1次対象物に供するオーバレイ対象
物へ形成することによる。両方の新規な1次対象物は初
め空いている。親または子のいずれかがデータ部からペ
ージを最初に参照するとき、このページを関連の1次対
象物から読み取る試行が行われる。この試行は失敗す
る。なぜなら1次ファイルは空だからである。VNシス
テムは順次、最も最近のオーバレイから始めてその1次
対象物へのオーバレイ対象物を探索し、要求されるペー
ジを見つけ出すことが好ましい。
【0157】本発明の一実施例において、もし要求ペー
ジがオーバレイ対象物で見出されれば、そのページのコ
ピーが要求プロセスのために1次対象物へ転送される。
これは「参照時コピー」と呼ばれる。
【0158】好ましい実施例において、もし要求ページ
がオーバレイ対象物で見出されれば、要求は、要求が読
取り型アクセスについてのものであるかぎり、オーバレ
イ対象物への参照によって満足せられる。もし要求が書
込み型アクセスのためのものであれば、見出されたペー
ジは書込み前のプロセス修正と関連づけられる1次対象
物へコピーされる。これは「書込時コピー」と呼ばれ
る。
【0159】別の好ましい実施例においては、1次対象
物にないデータへの読取り型アクセス要求が、プロセス
が任意の単一データを修正するまでオーバレイ対象物へ
の参照によって満足せられる。その時点に、VMシステ
ムは、読取り型または書込み型アクセスについての別途
の全ての要求が要求データの1次対象物へのコピーによ
り満足された状態で1次対象物を形成し始める。これは
「第1の書込み後参照時方式コピー」と呼ばれる。
【0160】図13A〜Cは上述の分岐プロセスでどの
ようにしてページがコピーされそして更新されるかを図
示する。詳述するとき、図13Aにおいて、プロセス
(図示せず)がページXへのアクセスを要求する。Xは
最初プロセスの文脈アドレス空間90に存在しないの
で、フォールトが合図される。結果的に、VMシステム
はオーバレイ対象物のシステム仮想アドレス92からの
要求ページを1次対象物システム仮想アドレス94へコ
ピーする。ひとたびコピーされれば、ページXはプロセ
スに利用可能でありそしてメモリ、すなわちその関連の
キャッシュ、にコピーできる。
【0161】図13BはプロセスによるページXの修正
結果を図示する。これは、CA空間90で表示されてい
るようにそのページのクロスハッチ部により図示されて
いる。図面に表わされているように、Xに対する変化
は、1次対象物へ(そしてその関連のディスクファイル
へも)書き込まれていない。
【0162】図13Cを参照すると、プロセスは修正ペ
ージxを書き込む。これは、ページのコピーがメモリか
ら1次対象物へ転送されるときに生ずる。ページが1次
対象物94へコピーされるとき、それはオーバレイ対象
物92へコピーされないことに注意されたい。
【0163】ぺージングを減ずるためにファイルが閉じ
られるときに対象物はただちに破壊されない。対象物お
よびそのvm windowがキャッシュ記憶とマーク
が付される代わりに、そのvnodeおよびシステム仮
想アドレス結合(連想)が維持される。ファイルが次に
オープンされるとき対象物が依然として存在していれ
ば、対象物およびその残余のvm windowのいず
れもが再使用される。これはメモリに依然としてあった
対象物のいずれのページの直接的な使用をも許容する。
上述のデータ構造および機構はチェックポイント操作な
らびに分岐操作の両方に使用され、ディジタルデータプ
ロセッサ10が改善されたチェックポイント操作および
分岐操作を提供する。これは図14A〜Eに図示されて
いる。図14Aを参照すると、VMシステムは、プロセ
スの文脈アドレス空間96とその1次対象物98との間
の対応付けを提供する。図で、CA空間のページ96A
は対象物のページ98Aへ写像される、別のCAページ
96Bが対象物ページ98Bへ写像される。
【0164】図14Bは、新規な1次対象物100が元
の対象物98と置換し、そして後者がオーバレイ対象物
となるチェックポイントプロセスを図示する。現在、C
A空間96と対象物の間の対応付けは、少くとも一時的
に「見失われ」ている。すなわち、ページ96A、96
Bに関係するテーブルエントリ(STTE)は保持され
ているけれども、前の1次対象物98へのそれらのポイ
ンタがリセットされ、新規な1次対象物100の「ミッ
シング」ページを指し示す。
【0165】図14Cは、プロセスにより要求されるア
クセスに応答してオーバレイ対象物98から1次対象物
100へのデータのコピー操作を図示する。詳述する
と、プロセスがチェックポイントの前にCAページ96
Aを最初参照するとき、ミッシングページ障害が合図さ
れる。VMシステムは、例えば対象物98などの前のオ
ーバレイ対象物を通じての探索によりこの障害に応答
し、参照ページを配置する。たとえばページ98Aなど
のこのページを見出す際にVMシステムはそれを現在の
1次対象物100へコピーする。その後、VMシステム
はCAページ96Aとコピーされたページ100Aとの
間の対応付けを完了する。
【0166】図14Dは、対象物が分岐プロセスの発生
でどのように利用されるかを図示する。図で、親プロセ
スのためCA空間96が複製され子のためにCA空間1
02を形成する。2つの別途の1次対象物104、10
6が親および子のためにそれぞれ発生される。同時に、
対象物98および100が両方のプロセスのためにオー
バレイ対象物の連鎖を形成する。上記したように、プロ
セスのSTTEは修正され、それぞれの1次対象物10
4、106内のミッシングページを指し示す。
【0167】図14Eは親および子プロセスによる参照
時の1次対象物104,106へのページのコピー操作
を図示する。詳述すると、CAページ96Aの参照の際
に、親プロセスが誤動作し、VMシステムがオーバレイ
対象物連鎖98,100の要求ページを探索するように
し、最も最近の(対象物100)から最も古い(対象物
98)へ進行するのが好ましい。ページ100Aを見出
す際に、それを、オーバレイ対象物100へまたはこれ
から1次対象物104へコピーする。これと同様に、C
Aページ102Bの参照時に、子プロセスが誤動作し、
VMシステムがオーバレイ対象物連鎖を探索するように
強制する。オーバレイ対象物98で要求ページを見出す
際に、VMシステムは対応ページ98Bを1次対象物1
06へコピーする。
【0168】本発明の好ましい実施例において、VMシ
ステムは、たとえばオペレータの命令時、スケジュール
化された事象の発生時、実行プロセスによる命令時など
にチェックポイントまたは分岐を遂行する。
【0169】ウインドウ管理 上述したように、各vm window(仮想記憶ウイ
ンドウ)は、ファイルの所定範囲とシステム仮想アドレ
スの所定範囲との結合(連想)を表わす。VMシステム
はウインドウ管理およびvm window管理手続
(後述)に依存し、vm windowを発生し、シス
テム仮想アドレスとvm windowとの間の結合を
維持し(重複およびvm windowの崩壊および当
接などを回避する)、vm window参照カウント
を維持し、vm windowを拡張しそしてvm
indowの多重化を行う。
【0170】ウインドウ拡張について、ウインドウが拡
張されるとき、それは通常はそのシステム仮想アドレス
を拡張することができない。システム仮想アドレスの新
規な結合の代わりに、拡張ウインドウを収容するのに十
分な大きさが割り付けに必要とされる。これは、マップ
ファイルの1ページをシステム仮想アドレスの多重ペー
ジに対応づけることなく行われねばならない。ウインド
ウに対応するシステム仮想アドレス範囲をちょうど変化
させることも不可能である。なぜなら古い範囲がプロセ
スマップ(vm stte)内に包摂され得るからであ
る。それゆえ、新規かつ大きなシステム仮想アドレス範
囲を持つ新規なウインドウが発生される。古いウインド
ウのすべての存在ページが新規なウインドウへ移動せら
れる(ページ記述子のアドレスが変化せられる)。古い
ウインドウが間接ウインドウとしてマーク付けされそし
て新規なウインドウへのポインタがその中にセットされ
る。プロセスが古いシステム仮想アドレス範囲のアドレ
スを参照しようとするとき、それは誤機能する。障害用
ハンドラはウインドウが間接的であることを見出すとき
にそれをマップアウトそして大きなシステム仮想アドレ
ス範囲を持つ新規なウインドウへ対応づける。
【0171】vm window管理は、特別のノート
(注釈)とページとを結合することにより、特別の状況
でページについての情報をも維持する。たとえば、懸案
のI/O(入出力)について「ロック」されたページ
が、読取りのため保持されているかまたは書込みのため
保持されているかを指示するページノートを有する。こ
れは、もしプロセスがそのページに関して誤機能すれば
VMシステムが正しく感応するのを可能にする。この場
合、プロセスは、入出力装置の完了までブロック(阻
止)されるべきである。特別状態のページだけがそれに
関連づけられないページを有する。
【0172】ページノートは少数の隣接システム仮想ア
ドレスページを表わすブロックへグループ分けされる。
これらのブロックはシステム仮想アドレス昇順順序にて
一緒に並べられる。ページ障害が生ずるときはいつで
も、検査が行われ、ページが特別状態にあることを指示
するページノートを有するかどうかを見る。もし有しな
ければ、ページノートが発生され、そして障害が処理さ
れる。I/Oが完了せられるときそのページノートはク
リアされる。
【0173】プロセスおよび文脈管理手続 VMシステムは各プロセスのCA空間およびSTTE
(セグメント変換テーブルエントリ)を管理する。これ
は複数の標準OSF/l手続を後述の仕方で修正するこ
とにより達成される。
【0174】CAアドレス空間をそのように管理する場
合に、VMシステムは、ユーザが(たとえば継承/非継
承や共用/専用などの)セグメントの継承属性の変化を
検査しそしてファイルのセクションを「マップイン」ま
たは「マップアウト」するのを許容するため提供される
追加のインターフェースを提供することが好ましい。
【0175】VM FORK(仮想記憶分岐)の性能を
改善しそしてぺージングを減ずるために、VMシステム
は、非共用型セグメントのページをそれらが参照される
ときにコピーする(標準的には「参照時コピー」と呼ば
れる手続)だけである。代替実施例において、VMシス
テムは、ファイルへ書き込む試行がなされる後までには
かかるページをコピーするだけである(すなわち最初の
書込み後参照時コピー)。
【0176】ディジタルデータプロセッシング10およ
び中央処理装置40A〜40Cは、プロセスおよび文脈
データ構造を管理するために、VMシステムの一部を形
成する以下の手続に包含されるステップを実行する。応
用できる場合、これらのステップは好ましいオペレーテ
ィングシステムOSF/1の既存の手続への変化として
表わされる。
【0177】VM STTE INVALIDATE
(仮想記憶−セグメント変換テーブルエントリ−無効
化) 仮想記憶(VM)システムは手続VM STTE IN
VALIDATEのステップを実行し、たとえば84A
などのセグメント変換テーブルエントリ(STTE)を
無効にする。これはウインドウの交換プロセスの一部と
して行われる。VM STTE INVALIDATE
のステップの好ましい順序が以下のとおりである。
【0178】動 作 stteからウインドウポインタを取得せよ。vm
tteを無効としてマークを付けよ。VM STTE
CLEAR(クリア)を使用しSTTEをもしそれがS
TTにあれば無効化せよ。ウインドウをロックせよ。s
tte invalidatedカウントをインクリメ
ントとせよ。もしstte invalidatedが
参照カウントと等しければ、これはそのSTTEを無効
化する最後のプロセスであり、それゆえウインドウを交
換リストへ置け。ウインドウを解放せよ。
【0179】VM STTE REVALIDATE
(仮想記憶セグメント−変換テーブル−再有効化) 仮想記憶(VM)システムはVM STTE REVA
LIDATEのステップを実行し、プロセスのためにた
とえば84Aなどのセグメント変換テーブルエントリ
(STTE)を更新する。この手続は、STTEに関連
付けられるウインドウが取り替えに出された後に呼び出
され、順次、もとに取り替えられる。手続は入力として
更新を要求するSTTEを受け入れる。VM STTE
REVALIDATEのステップの好ましいシーケン
スが以下のとおりである。
【0180】動 作 STTEを参照し、交換に入れられていたウインドウを
獲得せよ。ウインドウをロックせよ。ウインドウについ
て新規なベースSVAアドレスを獲得せよ。STTEの
ハードウエア部分を更新せよ。ウインドウを解放せよ。
【0181】EXIT(退出) VMシステムは手続EXITのステップを実行しプロセ
ッサの資源を解放する。本発明の好ましい実施例におい
て、この手続は従来のOSF/1の手続EXITを修正
しそのテキストならびにファイルがファイルを閉じるル
ープで閉じられるのを保証する。修正は新規な入力パラ
メータまたは出力パラメータを手続呼出しに付加しな
い。
【0182】VM FORK(仮想記憶−分岐) VMシステムは手続VM FORKのステップを実行
し、親プロセスの仮想メモリ情報を子プロセスのために
複写する。本発明の好ましい実施例に置いて、手手続
は、後述の仕方で従来のOSF/1の手続VM FOR
Kを修正することにより実施される。修正は新規な入力
パラメータまたは出力パラメータを手続呼出しに付加し
ない。
【0183】好ましい修正は以下のとおりである。シス
テム仮想アドレスの明示割当てを除去する。これは親の
セグメントが子のために複写またはマップされるときに
自動的に行われる。子構造を保持するコードを除去せ
よ。プログラム事象記録(per)プロセス式カーネル
領域をマップしないコードを除去せよ。XLINKに対
する呼出しを除去せよ。これは他のセグメントと同様に
取扱われる。複写セグメントを抹消するコードを除去せ
よ。親の各vm stteごとに以下を行うためにプロ
グラム事象記録プロセス式セグメントループを修正せ
よ。 A)もしセグメントが共有継承可能属性であれば、VM
MAPINを子のプロセスi.d.(pid)ととも
に呼出し、それを子プロセスのためにマップせよ。 B)セグメントが個人継承可能属性であれば、 i)(UNIX)ファイルシステムを呼出し、セグメン
トのために名無しファイルを発生せよ。 ii)ファイルシステムを呼出しファイルをオープンに
せよ。 iii)VM OBJ CREATE OVERLAY
(仮想記憶−対象物−発生−オーバレイ)を呼出し、新
規なファイルを元のオーバレイと関連付けよ。 iv)VM MAPIN(仮想記憶−マップイン)をこ
のプロセスのpidと一緒に読み出しオーバレイ対象物
をマップインせよ。 C)もしセグメントが継承可能属性でなければ、循環せ
よ。
【0184】SYSCALL FINISH FORK
(システム呼出し−完了−分岐) VMシステムはSYSCALL FINISH FOR
Kのステップを実行し、子プロセスでの分岐を完了す
る。本発明の好ましい実施例において、手続は後述の仕
方で従来のOSF/1手続SYSCALL FINIS
FORKを修正することにより実施される。修正は
新規な入力パラメータまたは出力パラメータを手続呼出
しに付加しない。
【0185】好ましい修正は以下のとおりである。共有
されない各継承ファイルについては、 A)(UNIX)ファイルシステムを呼出し、セグメン
トのために名無しファイルを発生せよ。 B)ファイルシステムを呼出しファイルをオープンにせ
よ。 C)VM OBJ CREATE OVERLAYを呼
出し、新規なファイルを元のオーバレイと関連付けよ。 D)VM MAPINをこのプロセスのpidと一緒に
呼出しオーバレイ対象物をマップインせよ。
【0186】GETXFILE(Xファイル獲得) VMシステムは手続GETXFILEのステップを実行
し、子プロセスで分岐を完了させる。本発明の好ましい
実施では、手続は後述の仕方で従来のOSF/1手続G
ETXFILEを修正することにより実施される。修正
は新規な入力パラメータまたは出力パラメータを手続呼
出しに付加しない。
【0187】好ましい修正は以下のとおりである。適所
に個別の資源限界のための調査を残し、十分なスワップ
(交換)空間のため試験を除去せよ。初期化データを交
換ファイルへコピーするコードを除去せよ。UNIXの
手続XALLOC(X割付け)に対する呼出しを以下と
置換せよ。 A)FILEシステムを呼出し実行可能ファイルをオー
プンにせよ。 B)マップインを呼出し実行可能ファイルのためのマッ
プを発生せよ。
【0188】EXEC DATA STACK(実行−
データ−積み重ね) VMシステムは手続EXEC DATA STACKの
ステップを実行し、プロセスのスタックおよび局部デー
タに関連付けられる名無しファイルを発生、オープンお
よびマップインする。この手続は従来のOSF/1の手
続EXEC DATA STACKを修正し、テキスト
およびファイルが、ファイルをクローズするループでク
ローズされることを保証することにより実施される。修
正は新規な入力パラメータまたは出力パラメータを手続
呼出しに付加しない。
【0189】好ましい修正は以下のとおりである。仮想
記憶の一時的なロックを除去せよ。VM MAKE
NOWNへの呼出しを(UNIX)ファイルシステムへ
の呼出しと置換し名無しファイルを発生せよ。ファイル
システムへの呼出しを付加し新規ファイルをオープンせ
よ。これはvm objectが発生されるようにする
(もし必要であれば)。手続VM MAPへの呼出しを
手続VM MAP OBJへの呼出しと置換し、セグメ
ントが分岐時に継承されるべきであり共有されないこと
を指定せよ。こうして、スタックおよびデータを参照時
コピー方式セグメントとして定義する。拡張への呼出し
を除去せよ。エラー状態一掃をやり直せ。VM UNM
APに対する呼出しをVM OBJ MAPと置換せ
よ。VM MAKE KNOWNに対する呼出しをファ
イルシステム呼出しと置換しファイルをクローズせよ。
VM EXPAND(仮想記憶−拡張)に対する呼出し
を除去せよ。
【0190】VM RELEASE ALL USER
(仮想記憶−開放−全ユーザ) VMシステムは手続VM RELEASE ALL
SERのステップを実行し、プロセスのユーザコードお
よびテキスト空間のすべてをマップしない。好ましい実
施例において、この手続は従来のOSF/1手続VM
RELEASE ALL USERを修正し、テキストお
よびファイルが、ファイルをクローズするループでクロ
ーズされることを保証することにより実施される。修正
は新規な入力パラメータまたは出力パラメータを手続呼
出しに付加しない。
【0191】好ましい修正は以下のとおりである。(バ
ックフレームポインタの除去後)カーネルセグメントの
マップ探索を除去せよ。XFREEに対する呼出しを除
去せよ。XFREEに対する呼出しおよびデータのマッ
プ解除(unmap)ループを以下と置換せよ。 A)各データおよびテキストvm stteごとに、 i)vm stteからvm window識別子を獲
得せよ。 ii)vm stteおよびvm window識別子
と一緒にVMMAPOUTを呼び出せ。
【0192】MAPIN(マップイン) VMシステムはMAPINのステップを実行し、ファイ
ルをプロセスのCA空間の領域へマップする。手続は入
力として、ファイルの記述子、オフセット、長さ、関連
のSTTE(セグメント変換テーブルエントリ)の継承
属性、対象物のマップ型式、および対象物についてアト
ミックトランザクションがイネーブルとされるかどうか
を指示するブール値を受け入れる。任意ではあるが、手
続は入力として文脈アドレスへのポインタをも受容す
る。手続は出力としてマップ識別子ハンドルならびにマ
ップ操作のステータスを戻す。
【0193】MAPINのステップの好ましいシーケン
スが以下のとおりである。動 作 もしmap typeがVM TEXT OBJECT
であり、アトミックトランザクションがイネーブルとさ
れれば、無効引数例外を戻せ(EINVAL)。もし文
脈アドレスがNULL(空白)でなければ、以下を行
え。 A)アドレスMOD長さが確実にゼロであるようにせ
よ。そうでなければ、例外VM ADDRESS NO
ALIGNED(仮想記憶−アドレス−非整列)を
戻せ。VM MAPINを呼出し、ファイルをこのプロ
セスへマップせよ。
【0194】VM MAPIN(仮想記憶−マップイ
ン) VMシステムはVM MAPINの別途ステップを実行
し、ファイルをプロセスのCA空間の領域へマップす
る。上述したように、手続は入力として、ファイルの記
述子、オフセット、長さ、関連のSTTEの継承属性、
対象物のマップ型式、および対象物についてアトミック
トランザクションがイネーブルとされるかどうかを指示
するブール値を受容する。任意ではあるが、手続は入力
として文脈アドレスへのポインタをも受容する。手続は
出力としてマップ識別子ハンドルならびにマップ操作の
ステータスを戻す。
【0195】VM MAPINのステップの好ましいシ
ーケンスが以下のとおりである。動 作 もし文脈アドレスがNULLでなければ、以下を行え。 A)すべてのvm stteを検査しアドレスが取られ
ないようにせよ。もしそうであれば、例外VM ADD
RESS IN USE(仮想記憶−アドレス−使用
中)を戻せ。それ以外であれば、以下を行え。 A)マップ所有者のデータvm stteを探索し正し
いサイズおよび並びのCA空間の自由ブロックを見出
せ。 B)もし見出されなければ、例外VM NOT ENO
UGH MEMORY(仮想記憶不十分メモリ)を戻
せ。ステータスをVM NORMAL(仮想記憶標準)
へセットせよ。ファイルシステムを呼出し、対象物識別
子をファイル記述子のために獲得せよ。UNIX手続K
ERNMALLOCを呼出し自由vm stteを獲得
せよ。vm stteの継承フィールド、拡張可能フィ
ールドおよび長さフィールドを初期化せよ。対象物識別
子をvm stteに入れよ。VM OBJ MAP
(仮想記憶−対象物−マップ)を対象物エントリ、オフ
セット、長さ、vm stteアドレス、およびアトミ
ックイネーブルフラグと一緒に呼出し、対象物をマップ
せよ。もし、VM OBJ MAPがVM OBJ
YPE INVALID(仮想記憶−対象物−型式−無
効)を戻せば、以下を行え。 A)UNIX手続KERNFREEを呼出しvm st
teを解放し、B)テキストファイルビジー例外(ET
XTBSY)を戻せ。対象物管理部により戻されるベー
スシステム仮想アドレスをvm stteに記憶せよ。
VM STTE LINK(仮想記憶−セグメント変換
テーブル−リンク)を使用し、新規なvm stteを
適当なプロセスvm stte listへリンクせ
よ。もしmap owner(マップ−所有者)がこの
プロセスであれば、vm stteでhardware
stteを初期化せよ。
【0196】MAPOUT(マップアウト) VMシステムはユーザエントリとしてMAPOUTのス
テップを実行し、プロセスの文脈アドレス空間からある
ファイル範囲をマップアウトする。手続は入力として、
マップのハンドルを受容し、マッピング手続のステータ
スを戻す。
【0197】手続VM MAPOUTのための好ましい
ステップは以下のとおりである。動 作 VM NORMALへステータスをセットせよ。マップ
ハンドルとの一致に関してプロセスのデータvm st
teのそれぞれを検査せよ。もし何らの一致も見出され
なければ、例外VM INVALID MAP HAN
DLE(仮想記憶−無効−マップ−ハンドル)を戻せ。
vm stteからvm window識別子を獲得せ
よ。VM MAP OUTをvm stteおよびvm
window識別子と一緒に呼出せ。
【0198】VM MAPOUT (仮想記憶−マップアウト) VMシステムは、ユーザのマップアウト要求を処理する
ときそしてプロセスを終了するときにMAPOUTの別
途ステップを実行する。手続は入力として、vm st
teの識別子を受容しそしてマッピング手続のステータ
スを戻す。
【0199】手続VM MAPOUTのためのステップ
の好ましいシーケンスは以下のとおりである。動 作 VM NORMALへステータスをセットせよ。vm
obj unmap(仮想記憶−対象物−非マップ化)
をvm windowおよびvm stteと一緒に呼
出し、ウインドウをマップアウトせよ。vm stte
free(仮想記憶−セグメント変換テーブルエント
リ−フリー)を呼出し、vm stteを無効化しそし
てvm stteを解放せよ。
【0200】VM STTE FREE(仮想記憶−セ
グメント変換テーブルエントリ−フリー) VMシステムはVM STTE FREEのステップを
実行し、プロセスの領域をマップアウトするときにvm
stteを解放する。手続は入力として、解放のため
vm stteの識別子を受容する。
【0201】手続VM STTE FREEのための好
ましいステップは以下のとおりである。VM STTE
CLEARを使用し、STTEを、もしそれがSTT
にあれば、除去せよ。もしこれがデータvm stte
であれば、proc listがプロセスのデータvm
stteリストであり、そうでなければそれはプロセ
スのテキストvm stteリストである。もし、vm
stte.prev proc stteがNULL
であれば、proc list.first stte
をvm stte.next proc stteへセ
ットせよ。そうでなければ、前のvm stte.ne
xt proc stteをvm stte.next
proc stteへセットせよ。もし、vm stt
e.next roc stteがNULLであれば、
proc list.last stteをvm st
te.prev proc stteへセットせよ。そう
でなければ、次のvm stteのprev proc
stteフィールドをvm stte.prev
roc stteへセットせよ。UNIX手続kern
freeを呼出し、vm stteと関連付けられる
メモリを解放せよ。
【0202】VM STTE LINK(仮想記憶−セ
グメント変換テーブルエントリ−リンク) VMシステムは、VM STTE LINKのステップ
を実行し、vm stteをvm stteのプロセス
のリストの適当な点にリンクする。手続は入力として、
vm stteおよびvm stteのプロセスリスト
へのポインタを受け入れる。
【0203】VM STTE LINKのステップの好
ましいシーケンスは以下のとおりである。動 作 高い文脈アドレス(next stte)を有するエン
トリが見出されるまでリストを探索せよ。新規なエント
リがその直前に挿入される。vm stte.next
proc stteをnext stteへセットせ
よ。vm stte.prev proc stteを
next stte.prev proc stteへ
セットせよ。next stte.prev proc
stteを新規なvm stteへセットせよ。前の
vm stteのnext proc stteフィー
ルドを新規なvm stteへセットせよ。
【0204】VM STTE FIND(仮想記憶−セ
グメント変換テーブルエントリ−発見) VMシステムはマクロ手続VM STTE FINDの
ステップを実行し、指定されたアドレスの包含するvm
stteを配置する。手続は入力として、関心のある
アドレスを受容する。それはvm stteへのポイン
タと配置動作の成功を指示するステータスコードを戻
す。
【0205】ステップ110で始まるVM STTE
FINDのステップの好ましいシーケンスは以下のとお
りであり、また図15に図示されている。動 作 VM NORMALへステータスをセットせよ(ステッ
プ112)。アドレスがデータ空間またはテキスト空間
にあるかどうかを決定する。一致について探索するとき
にvm stteの適当なリストを使用せよ(ステップ
114)。test vm stteをlist.fi
rst stte(ステップ116)へセットせよ。も
し、test vm stteがNULLであれば、例
外VM STTE NOT FOUNDを戻せ(ステップ
118)。もしtext vm stteのベースアド
レスが指定されるアドレスよりも大きければ、例外VM
STTE NOT FOUNDを戻せ(ステップ11
2)。もしbase addressが探索アドレスよ
りも小さいかまたは等しく、そしてベースアドレスとt
est vm stte.lengthの和が探索アド
レスよりも大きいかまたは等しければ、以下を行え。 A)vm stteをtest vm stteへセッ
トし、 B)戻れ(ステップ122)。test vm stt
eをtest vm stte.next proc
tteへセットせよ(ステップ124)。第4番目のス
テップ(すなわちステップ118)へ戻れ。
【0206】VM STTE LOAD(仮想記憶−セ
グメント変換テーブルエントリ−ロード) VMシステムは手続VM STTE LOADのステッ
プを実行し、vm stteのハードウエア部分を適当
なSTTへロードする。それは入力として、ロードのた
めvm stteへのポインタを受容する。
【0207】ステップ130で始まるVM STTE
LOADのステップの好ましいシーケンスは以下のとお
りであり、また図16に図示されている。
【0208】動 作 vm stteを、それがデータvm stteかまた
はテキストvm stteかどうか見極めるために検査
せよ(ステップ132)、もしこれがデータvm st
teであれば、以下を行え。 A) プロセスの手続構造からロードされる最後のデー
タセグメント変換テーブルエントリの番号を獲得せよ
(ステップ136)。 B) その番号をインクリメントせよ(ステップ13
8)。 C) セグメント変換テーブル番号をvm stteに
記憶せよ(ステップ140)。 D) vm stteおよび新規なセグメント変換テー
ブルエントリ番号と一緒にvmia load dst
teを呼出せ(ステップ142)。 E) ロードされる最後のデータセグメント変換テーブ
ルエントリの新規な値を手続構造に記憶せよ(ステップ
144)。それ以外(すなわち、テキストvm stt
e)であれば、以下を行え。 A) プロセスの手続構造からロードされる最後のテキ
ストセグメント変換テーブルエントリの番号を獲得せよ
(ステップ148)。 B) その番号をインクリメントせよ(ステップ15
0)。 C) セグメント変換テーブル番号をvm stteに
記憶せよ(ステップ152)。 D) vm stteおよび新規なセグメント変換テー
ブルエントリ番号と一緒にvmia load ist
teを呼出せ(ステップ154)。 E) ロードされる最後のテキストセグメント変換テー
ブルエントリの新規な値を手続構造に記憶せよ(ステッ
プ156)。
【0209】VM STTE CLEAR(仮想記憶−
セグメント変換テーブルエントリ−クリア) VMシステムは手続VM STTE CLEARのステ
ップを実行し、vm stte(セグメント変換テーブル
エントリ)のハードウエア部分を適当なSTT(セグメ
ント変換テーブル)へロードする。それはロードのため
入力としてvm stteへのポインタを受け入れる。
ステップ160で始まるVM STTE CLEARの
ステップの好ましいシーケンスを以下で述べる(図17
参照)。動 作 vm stteからSTTE番号を獲得せよ(ステップ
162)。もしvm stteがデータ仮想記憶stt
eであれば、STTE番号と一緒にvmia unlo
ad dstteを呼び出せ(ステップ164)。もし
仮想記憶stteがテキスト仮想記憶stteであれ
ば、STTE番号と一緒にvmia unload
stteを呼び出せ(ステップ166)。vm stt
e.stte loaded(仮想記憶−セグメント変
換テーブルエントリ.セグメント変換テーブルエントリ
−ロード)をゼロへセットせよ(ステップ168)。
【0210】対象物管理手続 ディジタルデータプロセッシング装置10および特に中
央処理装置40A〜40Cは、対象物管理のため、VM
システムの部分を形成する以下の手続に包含されるステ
ップを実行する。
【0211】VM OBJ INIT(仮想記憶−対象
物−初期化) VMシステムは手続VM OBJ INITのステップ
を実行し、対象物テーブルを初期化する。それはいずれ
の対象物の発生にも先立ってシステム初期化中呼び出さ
れる。VM OBJ INITのステップの好ましいシ
ーケンスが以下のとおりである。動 作 cashed list lock(キャッシュ記憶−
リスト−ロック)のためにspin init(スピン
−初期化)を呼び出せ。もしspin initが失敗
すれば、非常事態(panic)を呼び出せ。num cac
hed object(番号−キャッシュ記憶−対象
物)をゼロにセットせよ。first cached
object(最初−キャッシュ記憶−対象物)をNU
LL(空白)にセットせよ。last cached
object(最後−キャッシュ記憶−対象物)をNU
LL(空白)にセットせよ。
【0212】VM OBJ CREATE(仮想記憶−
対象物−発生) VMシステムは手続VM OBJ CREATEのステ
ップを実行し、vnodeと関連付けられる新規な対象
物を発生する。それは、vnodeをマップファイルと
関連付けるときにファイルシステムにより呼び出され
る。VM OBJ CREATEは入力として、vnod
eおよび対象物型式の識別を受け入れる。それは対象物
へのポインタおよびステータスを戻す。VM OBJ
CREATEのステップの好ましいシーケンスが以下の
とおりである。動 作 ステータスをVM NORMALにセットせよ。vm
obj entry get(仮想記憶−対象物−エン
トリ−獲得)を呼び出し、フリー対象物エントリを獲得
せよ。入力パラメータに応じて対象物にobject
type(対象物−型式)をセットせよ。セルのために
all timer(全−タイマ)を読み出せ。時間の
低位7ビット以外の全てをマスク(mask out)せよ。先の
ステップの結果にページサイズを掛け合わせよ。これは
ファイルのオフセットを対象物に与える。もしobje
ct typeがテキストであれば、VM TEXT
FILE OFFSETをファイルオフセットから差し引
け。計算に従ってobject offset in
file(対象物オフセット−イン−ファイル)をオフ
セットへセットせよ。mapped file(マップ
−ファイル)をファイルのvnodeへセットせよ。o
bject typeの状態をアクティブにセットせ
よ。
【0213】VM OBJ ENTRY GET(仮想
記憶−対象物−エントリ−獲得) VMシステムは手続VM OBJ ENTRY GET
のステップを実行し、対象物エントリを割り付けかつ初
期化する。それは、新規な対象物を発生するときに呼び
出される。VM OBJ ENTRY GETは所定の
ステータスへのポインタを受け入れそして出力としてこ
れを戻す。VM OBJ ENTRY GETのステッ
プの好ましいシーケンスが以下のとおりである。動 作 ステータスをVM NORMALにセットせよ。ker
malloc(核−割付け)を待つことなく呼び出
し、メモリを対象物について割り付けよ。もし対象物エ
ントリが依然として必要であれば(核割付けが失敗し
た)、以下を行え。 A)vm object cached(仮想記憶−対
象物−キャッシュ記憶)をセットせよ。 B)もしvm object cached.num
object(仮想記憶−対象物−キャッシュ記憶.番
号−対象物)が0であれば、以下を行え。 i)vm obj cachedをロックせよ。 ii)指定される待ち選択肢でkern malloc
を呼び出せ。それ以外であれば、以下を行え。 i)vm obj cached[firstobje
ct](仮想記憶−対象物−キャッシュ記憶[最初の対
象物])が選択される対象物である。 ii)vm obj cachedをロック解除せよ。 iii)vm obj delete(仮想記憶−対象
物−削除)を呼び出し、選択対象物を自由にせよ。 C)第2のステップへと戻れ(すなわち、kern
allocを呼び出せ)。 spin init(スピン−初期化)を呼び出し、対
象物のロックを初期化せよ。next obj(次−対
象物)およびprev obj(前−対象物)をNUL
Lにセットせよ。low addr mapped(低
位−アドレス−マップ化)およびhigh addr
mapped(高位−アドレス−マップ化)を0にセッ
トせよ。num window(番号−ウインドウ)お
よびoffset in fileを0にセットせよ。
mapped file(マップ化−ファイル)および
atomic state file(アトミック−状
態−ファイル)ポインタをNULLにセットせよ。対象
物およびウインドウのポインタをNULLへセットせ
よ。
【0214】VM OBJ ACTIVATE(仮想記
憶−対象物−活動化) VMシステムは手続VM OBJ ACTIVATEの
ステップを実行し、対象物をキャッシュ記憶リストから
アクティブエントリリストへ移動する。この手続はファ
イルシステムにより呼び出され、対象物がアクティブリ
スト上にあるべきであることをVMシステムに知らせ
る。VM OBJ ACTIVATEは入力として対象
物へのポインタを受け入れる。それはステータスを戻
す。VM OBJ ACTIVATEのステップの好ま
しいシーケンスは以下のとおりである。動 作 ステータスをVM NORMALにセットせよ。対象物
エントリをロックせよ。もし対象物の状態がキャッシュ
記憶されていなければ、以下を行え。 A)spin unlockを呼び出し対象物エントリ
をロック解除せよ。 B)例外VM OBJ NOT CACHED(仮想記
憶−対象物−非−キャッシュ記憶)を戻せ。no wa
itセットと一緒にspin lockを呼び出し、v
obj cachedをロックせよ。もし呼び出しが
成功しなければ、以下を行え。 A)spin unlockを呼び出し対象物エントリ
をロック解除せよ。 B)第2のステップへ戻れ。 VM OBJECT UNLINK(仮想記憶−対象物
−リンク解除)を使用し、対象物をvm obj ca
chedからリンク解除せよ。対象物の状態をアクティ
ブにセットせよ。spin unlockを呼び出しv
obj cachedをロック解除せよ。対象物で
各ウインドウごとにvm window activa
teを呼び出せ。spin unlockを呼び出し、
対象物エントリをロック解除せよ。
【0215】VM OBJ CREATE OVERL
AY(仮想記憶−対象物−発生−オーバレイ) VMシステムは手続VM OBJ CREATE OV
ERLAYのステップを実行し、どこかで実行されつつ
あるファイルへの書込み動作と再始動動作およびチェッ
クポイント動作で使用するために、オーバレイ対象物を
発生する。この手続はファイルシステムにより呼び出さ
れる。VM OBJ CREATE OVERLAYは
入力として、対象物へのポインタ、オーバレイファイル
のvnodeおよび対象物型式を受容する。それは新規
対象物へのポインタおよびステータス標識を戻す。VM
OBJ CREATE OVERLAYのステップの
好ましいシーケンスは以下のとおりであり、ステップ1
8で始まる(図18に図示)。上述のアトミックファイ
ルステップについては、本願と同日に出願された本出願
人による「改善されたぺージングを有するディジタルデ
ータプロセッサという表題の付された同時係属出願を参
照されたい。動 作 ステータスをVM NORMALへセットせよ(ステッ
プ182)。spin lockを呼び出し、対象物エ
ントリをロックせよ(ステップ184)。対象物の各ウ
インドウごとに、フラッシュページフラグセットと一緒
にvm window clean pageを呼び出
せ。これは、すべての修正ページがそれらのデバイスへ
コピーされることを保証する(ステップ186)。vm
obj entry get(仮想記憶−対象物−エ
ントリ−獲得)を呼び出し、対象物エントリを獲得せよ
(ステップ188)。元の対象物エントリから新規な対
象物エントリへ例外状態、フィールドのすべてをコピー
せよ(ステップ190)。元の対象物エントリでvno
deを変化し、オーバレイファイルに対応付けよ(ステ
ップ192)。もし元の対象物エントリがアトミック状
態のファイルを有していたならば、以下を行え。 A)vm atomic state file cr
eateを呼び出し、新規なアトミック状態ファイルを
発生せよ。 B)新規なアトミック状態ファイルのvnodeをもと
のアトミック状態ファイルに記憶せよ(ステップ19
4)。新規な対象物エントリアドレスを元の対象物エン
トリのoverlay objectフィールドへ入れ
よ(ステップ196)。新規な対象物エントリの状態を
アクティブにセットせよ(ステップ198)。spin
unlockを呼び出し、元の対象物エントリをロッ
ク解除せよ(ステップ200)。
【0216】VM OBJ CACHE(仮想記憶−対
象物−キャッシュ) VMシステムは手続VM OBJ CACHEのステッ
プを実行し、アクティブリストからキャッシュリストへ
対象物を移動する。対象物に関連付けられるいずれのウ
インドウもまたキャッシュ記憶される。手続はファイル
システムから呼び出され、VMシステムに、対象物がキ
ャッシュ記憶されたリスト上にあるべきことを知らせ
る。それは、vnodeがキャッシュ記憶状態にとどま
るファイルの最後のクローズ時に呼び出されるべきであ
る。VM OBJ CACHEは入力として、対象物へ
のポインタを受容しそしてステータス標識を戻す。VM
OBJ CACHEのステップの好ましいシーケンス
は以下のとおりである。動 作 ステータスをVM NORMALへセットせよ。spi
lockを呼び出し、対象物エントリをロックせ
よ。対象物の各ウインドウの参照カウントを検査せよ。
もしいずれもがゼロよりも大きければ、以下を行え。 A)spin unlockを呼び出し、対象物エント
リをロック解除せよ。 B)例外VM WINDOW IN USEを戻せ。 各ウインドウごとに、vm window cache
を呼び出せ。vm atomic stat file
destroy(仮想記憶−アトミック−状態−ファ
イル−破壊)を呼び出し、spin lockを呼び出
し、vm obj cachedをロックせよ。VM
OBJECT LINKを使用し、対象物をvm ob
cachedへリンクせよ。spin unloc
kを呼び出し、vm obj cachedをロック解
除せよ。spin unlockを呼び出し、対象物エ
ントリをロック解除せよ。
【0217】VM OBJ DELETE VMシステムは手続VM OBJ DELETEのステ
ップを実行し、対象物を削除し、任意に、その修正ペー
ジのいずれをもフラッシュする。手続はまたシステム上
に依然としてある対象物のページのいずれをも無効にす
る。それは一時ファイルの最後のクローズ時にそしてv
nodeを自由にすることを必要とするときに呼び出さ
れる。それはVMシステムによってもまた呼び出され、
キャッシュ記憶される対象物を削除する。これは、たと
えば、利用できるそして正規のバックグラウンドクリー
ンアッププロセスの一部として何らのシステム仮想アド
レス空間もないときに生ずる。VM OBJ DELE
TEが入力として、対象物へのポインタおよびページを
フラッシュするかどうかを指示する値を受容する。それ
はステータス指示を戻す。VM OBJ DELETE
のステップの好ましいシーケンスは以下のとおりであ
る。動 作 ステータスをVM NORMALへセットせよ。spi
lockを呼び出し、指定された対象物エントリを
ロックせよ。対象物の各ウインドウの参照カウントを検
査せよ。もしいずれもがゼロよりも大きければ、以下を
行え。 A)spin unlockを呼び出し、対象物エント
リをロック解除せよ。 B)例外VM WINDOW IN USEに戻せ。 もし対象物の状態がキャッシュ記憶されれば、VM
BJECT UNLINK(仮想記憶−対象物−リンク
解除)を使用し、対象物エントリをキャッシュ記憶され
る対象物リストから対象物エントリを除去せよ。対象物
の状態フィールドを削除へ変化させよ。各ウインドウご
とに、以下を行え。 A)vm window deleteを呼び出し、f
lush pages選択肢上を通し、ウインドウエン
トリを解放せよ。 B)ウインドウのシステム仮想アドレスを割り付け解除
せよ。 vm atomic stat file destr
oyを呼び出せ。spin unlockを呼び出し、
対象物エントリをロック解除せよ。vm closeを
呼び出し、vnode参照カウントをデクリメントせ
よ。kern freeを呼び出し、対象物エントリを
解放せよ。もし対象物がオーバレイ対象物を有していた
ならば、以下を行え。 A)spin lockを呼び出し、オーバレイ対象物
をロックせよ。 B)overlay object(オーバレイ−対象
物)のoverlay count(オーバレイ−カウン
ト)をデクリメントせよ。 C)spin unlockを呼び出し、オーバレイ対
象物をロック解除せよ。 D)もしoverlay countがゼロとなってい
たならば、オーバレイ対象物と一緒にvm obj
eleteを呼び出せ。
【0218】VM OBJ LINK (仮想記憶−対象物−リンク) VMシステムは手続VM OBJ LINKのステップ
を実行し、対象物エントリを対象物リストにリンクす
る。それは、対象物を発生、活動化またはキャッシュ記
憶するときにVMシステムにより呼び出される。VM
OBJ LINKは入力として対象物および当該対象物
がそれへリンクされるところのリストへのポインタを受
け入れる。VM OBJ LINKのステップの好まし
いシーケンスが以下のとおりである。動 作 object.prev obj(対象物.前−対象
物)を1st.lastobject(最初.最後対象
物)へセットせよ。object.next obj
(対象物.次−対象物)をNULLへセットせよ。li
st.last object(リスト.最後−対象
物)をこの対象物アドレスへセットせよ。objec
t.prev objがNULLであれば、list.
first objectをこの対象物のアドレスへセッ
トせよ。そうでなければ、最初の対象物があったものの
nextobjフィールドを、この対象物を指し示すよ
うセットせよ。list.num object(リス
ト.番号−対象物)をインクリメントせよ。
【0219】VM OBJ UNLINK(仮想記憶−
対象物−リンク解除) VMシステムは手続VM OBJ UNLINKのステ
ップを実行し、対象物エントリを対象物リストからリン
ク解除する。それは、対象物を活動化し、キャッシュ記
憶しまたは破壊するときに、VMシステムにより呼び出
される。VM OBJ LINKと同様に、対象物エント
リおよびリストは呼び出しルーチンによりロックされね
ばならない。VM OBJ UNLINKは入力とし
て、対象物エントリおよび対象物リストへのポインタを
受け入れる。VM OBJ UNLINKののステップ
の好ましいシーケンスが以下のとおりである。動 作 もし、object.prev obj(対象物.前−
対象物)がNULLであれば、list.firsto
bject(リスト.最初対象物)をobject.n
extobj(対象物.次対象物)へセットせよ。そう
でなければ、先の対象物のnext obj(次−対象
物)フィールドをobject.next obj(対
象物.次−対象物)へセットせよ。もし、objec
t.next obj(対象物.次−対象物)がNUL
Lであれば、list.lastobject(リス
ト.最後対象物)をobject.prevobj(対
象物.前対象物)へセットせよ。そうでなければ、次の
対象物のprev obj(前−対象物)フィールドを
object.prev obj(対象物.前−対象
物)へセットせよ。object.next obj
(対象物.次−対象物)をNULLへセットせよ。ob
ject.prev obj(対象物.先−対象物)を
NULLへセットせよ。list.num objec
t(リスト.番号−対象物)をデクリメントせよ。
【0220】ウインドウ管理手続 ディジタルデータプロセッシング装置10および特に中
央処理装置40A〜40Cは、ウインドウを管理するた
めにVMシステムの部分を形成する以下の手続に包摂さ
れるステップを実行する。
【0221】VM WINDOW INIT(仮想記憶
−ウインドウ−初期化) VMシステムは手続VM WINDOW INITのス
テップを実行し、vm window table(仮想
記憶−ウインドウ−テーブル)、アクティブウインドウ
リスト、キャッシュ記憶ウインドウリストおよびスワッ
プリストを初期化する。それはいずれの対象物の発生ま
たはいずれのマップドSTTE(セグメント変換テーブ
ルエントリ)の初期化よりも前にシステム初期化中呼び
出されるのが好ましい。VM WINDOW INIT
のステップの好ましいシーケンスが以下のとおりであ
る。動 作 各アクティブリストごとに、以下を行え。 A)active listロックのためにspin
initを呼び出せ。 B)もしspin initが失敗すれば、非常事態
(panic)を呼び出せ。 C)リストのnum windowsをゼロにセットせ
よ。 D)リストのfirst windowおよびlast
windowをNULLにセットせよ。もしspin
initが失敗すれば、非常事態(panic)を呼び出
せ。キャッシュ記憶リストのnum windowsを
ゼロにセットせよ。キャッシュ記憶リストのfirst
windowおよびlast windowをNUL
Lへセットせよ。swapped listのため、s
pin initを呼び出せ。もしspin init
failedであれば、非常事態(panic)を呼び出
せ。スワップウインドウのnum windowsをゼ
ロにセットせよ。スワップリストのfirst win
dowおよびlast windowをNULLにセッ
トせよ。
【0222】VM WINDOW CREATE(仮想
記憶−ウインドウ−発生) VMシステムは手続VM WINDOW CREATE
のステップを実行し、新規なウインドウを発生し、SV
Aのある範囲とファイルオフセットの範囲とを関連付け
る。手続は、ファイルでマッピングする(または対象物
のウインドウを再構成する)ときに、VMシステムによ
り呼び出される。手続は、入力として、対象物へのポイ
ンタ、そのオフセット、ページ長さ、アクセスモード、
およびウインドウが拡張可能かどうかを指示するブール
数を受け入れる。手続は新規なウインドウへのポインタ
およびステータス指示を戻す。VM WINDOW
REATEのステップの好ましいシーケンスが以下のと
おりである。ステータスをVM NORMALへセット
せよ。対象物の各ウインドウごとに、以下を行え。 A)もし、ウインドウが(base file off
setおよびlengthによる)この呼出しで指定さ
れるファイルの全部分にまたがるのであれば、ウインド
ウアドレスと一緒に例外VM WINDOW ALRE
ADY MAPPEDを戻せ。もし、このウインドウが
対象物の最高位マップアドレスを包摂しそしてatom
ic enabledがセットされれば、ファイルシス
テムを呼出し、(物理的ブロックを割り付ける)アトミ
ック状態ファイルを新規アドレスを被覆する大きさへ拡
張せよ。vm win get free entry
を呼出し、自由な(そして初期化された)ウインドウエ
ントリを獲得せよ。spin lockを呼出し、新規
なウインドウをロックせよ。vm sva alloc
ateを呼出し、ウインドウのためにSVAのブロック
を割り付けよ。SVAベースアドレスおよび長さをそれ
ぞれウインドウエントリのベースシステム仮想アドレス
フィールドおよびwindow lengthフィール
ドに記憶せよ。対象物のアドレスをウインドウエントリ
に入れよ。指定に応じてウインドウエントリのoffs
et in fileフィールドをセットせよ。VM
WINDOW OBJ LINKを使用し、vmウイン
ドウを対象物のウインドウリストへ加えよ。VM AD
DR TO WIN LISTを使用し、新規なウイン
ドウがどのアクティブリストに行くかを決定せよ。sp
in lockを呼出し、適当なアクティブウインドウ
リストをロックせよ。VM INK WINDOWを使
用し、新規なウインドウをアクティブリストへ加えよ。
spin unlockを呼出し、アクティブリストを
ロック解除せよ。間接的でないいずれの既存のウインド
ウも新規なウインドウにより包囲されるかどうかを検査
せよ。もしそうであれば、古いウインドウのそれぞれに
ついて、以下を行え。 A) spin−lockを呼出し、古いウインドウを
ロックせよ。 B) もし古いウインドウがアトミック可能性を有して
いたならば、それを新規なウインドウにセットせよ。 C) low addr refおよびhigh ad
dr refの範囲内のそれぞれのページについて、以
下を行え。 i)VM PAGE NOTE GETを使用し、ペー
ジがページノートを有するかどうかを見極めよ。もしそ
うであれば、そしてページが読出しまたは書込みのため
保持されることをそれが指示すれば、循環せよ。 ii)vm page descr modを呼出し、
ページの新規なSVAに対応するようページ記述子のア
ドレスを変化させよ。 D) 新規なウインドウのアドレスを古いアドレスの間
接フィールドへ入れよ。 E) spin−unlockを呼出し、古いウインド
ウをロック解除せよ。spin−unlockを呼出
し、新規なウインドウをロック解除せよ。
【0223】VM WINDOW SWAP OUT
(仮想記憶−ウインドウ−スワップ−アウト) VMシステムは手続VM WINDOW SWAP
UTのステップを実行し、システム仮想アドレス空間の
多重化動作の一部としてウインドウをスワップアウトす
る(掃き出す)。それは、VMシステムにより呼び出さ
れ、そして入力としてウインドウへのポインタを受け入
れる。VM WINDOW SWAP OUTのステッ
プの好ましいシーケンスが以下のとおりである。動 作 ステータスをVM NORMALへセットせよ。spi
lockを呼出し、選択されるウインドウをロック
せよ。ウインドウの状態をチェックせよ。もしそれがア
クティブでなければ、以下を行え。 A)spin unlockを呼び出しウインドウをロ
ック解除せよ。 B)例外VM WINDOW NOT ACTIVAT
Eを戻せ。 ウインドウの状態をpending swappedへ
セットせよ。sttes invalidatedカウ
ントをゼロへセットせよ。ウインドウへリンクされた各
vm stteごとに以下を行え。 A)vm stteのブロックからpidを読み出せ。 B)もしvm stteブロックがこのプロセスにより
所有されれば、そのアドレスのノート(注釈)を作れ。 C)もしvm stteブロックがこのプロセスにより
所有されなければ、psignalを呼び出し、VM
INVALIDATE STTE信号をプロセスへ送
り、それがstte(セグメント変換テーブルエント
リ)を無効化すべきことを指示せよ。 spin unlockを呼び出し、ウインドウをロッ
ク解除せよ。もしこのプロセスがマップウインドウを有
すれば、vm stte invalidateを呼び
出せ。もし参照カウントがゼロであれば(リンクされた
STTEがない)、vm window swap
ut finishを呼び出せ。
【0224】VM WINDOW SWAP IN(仮
想記憶−ウインドウ−スワップ−イン) VMシステムは手続VM WINDOW SWAP
Nのステップを実行し、システム仮想アドレス空間の多
重化動作の一部としてウインドウをスワップインする。
それは、スケジューラにより呼び出される。VM WI
NDOW SWAP INは入力としてウインドウへの
ポインタを受け入れ、そしてステータス指示を戻す。V
WINDOW SWAP INのステップの好まし
いシーケンスが以下のとおりである。動 作 ステータスをVM NORMALへセットせよ。spi
lockを呼び出し、選択されるウインドウをロッ
クせよ。ウインドウの状態をチェックせよ。もしそれが
スワップされなければ、以下を行え。 A)spin unlockを呼び出しウインドウをロ
ック解除せよ。 B)例外VM WINDOW NOT SWAPPED
を戻せ。 ウインドウの状態をアクティブへセットせよ。ウインド
ウのためにシステム仮想アドレスのある範囲を割り付け
よ。spin lockを呼び出し、スワップされるv
windowsをロックせよ。VM UNLINK
WINDOWを使用し、ウインドウをvm wind
ows swappedから除去せよ。spin un
lockを呼び出し、vm windows swap
pedをロック解除せよ。新規なシステム仮想アドレス
をウインドウエントリに記憶せよ。ウインドウについて
アクティブリストを決定せよ。spin lockを呼
び出し、アクティブリストをロックせよ。VM LIN
WINDOWを使用しウインドウをアクティブリス
トに加えよ。spin unlockを呼び出し、ac
tive listをロック解除せよ。もし待機するプ
ロセスがあれば、window.procs wait
ingに対するwakeupを呼び出せ。ウインドウへ
リンクされる各vm stteごとに、以下を行え。 A)vm stteからpidを呼び出せ。 B)psignalを呼び出し、VM REVALID
ATE STTE信号を、vm stteを所有するプ
ロセスへ送れ。
【0225】VM WINDOW SWAP OUT
FINISH(仮想記憶−ウインドウ−スワップ−アウ
ト−終了) VMシステムは手続VM WINDOW SWAP
UT FINISHのステップを実行し、ウインドウの
スワップアウトプロセスを完了する。それはVMシステ
ムにより呼び出される。それは、入力として、ウインド
ウへのポインタを受け入れ、そしてステータス指示を戻
す。VM WINDOW SWAP OUT FINI
SHのステップの好ましいシーケンスが以下のとおりで
ある。動 作 ステータスをVM NORMALへセットせよ。vm
window clean pagesを呼び出し、全
ての居留ページからそれらの装置へのウインドウを取り
去り(flush)かつこれらページ(およびページノート)
を廃棄しそしてアトミック状態情報を保持せよ。spi
lockを呼び出し、ウインドウのためにアクティ
ブリストをロックせよ。ウインドウの状態をスワップ状
態へセットせよ。VM UNLINK WINDOWを
使用し、ウインドウをactive listから除去
せよ。spin unlockを呼び出し、acitv
listをロック解除せよ。spin lockを
呼び出し、vm windows swappedをロ
ックせよ。VM LINK WINDOWを呼び出し、
ウインドウをvm windows swappedへ
付加せよ。spin unlockを呼び出し、vm
windows swappedをロック解除せよ。
【0226】VM OBJ MAP (仮想記憶−対象物−マップ) VMシステムは手続VM OBJ MAPのステップを
実行し、対象物のある範囲をプロセスへマップする。も
し範囲が既存のウインドウの一部であれば、ウインドウ
のカウントがインクリメントされる。もし範囲の全体ま
たは一部がまだマップされていなければ、新規なウイン
ドウが発生される。もし、既存のウインドウにまたがる
新規なウインドウが発生されれば、新規なウインドウへ
転送されるすべての参照と一緒に既存のウインドウは間
接的なものとしてマークが施される。VM OBJ
APは入力として対象物へのポインタ、対象物オフセッ
ト、、長さ、vm stte、map type、アト
ミックトランザクションが許容されるかどうかを指示す
るブール数およびウインドウアクセスモードを受け入れ
る。それはウインドウへのポインタ、ウインドウの基本
システム仮想アドレスと同じではないかもしれないst
te sva、およびステータス標識を戻す。動 作 ステータスをVM NORMALへセットせよ。spi
lockを呼び出し、排他的アクセスのために対象
物をロックせよ。もし対象物の状態がアクティブ状態以
外の何かであれば、以下を行え。 A)spin unlockを呼び出し、対象物をロッ
ク解除せよ。 B)状態に応じて、VM OBJECT DELETE
D(仮想記憶−対象物−削除)またはVM OBJEC
CACHED(仮想記憶−対象物−キャッシュ記
憶)を戻せ。 もし対象物型が要求される型と一致しなければ、以下を
行え。 A)spin unlockを呼び出し、対象物をロッ
ク解除せよ。 B)VM OBJ TYPE INVALID(仮想記
憶−対象物−型−無効)例外を戻せ。 マップインされる範囲がどの既存のウインドウにも存在
するかどうかをチェックせよ。もしそうであれば、以下
を行え。 A)spin unlockを呼び出し、対象物をロッ
ク解除せよ。 B)spin lockを呼び出し、ウインドウをロッ
クせよ。 C)参照カウントをインクリメントせよ。 D)VM WINDOW STTE LINKを使用
し、新規なvm stteをlast stteへリン
クせよ。 E)もしatomic enabledが指定されれ
ば、ウインドウのatomic enabledフラグ
をセットせよ。 F)spin lockを呼び出し、対象物をロックせ
よ。 G)spin unlockを呼び出し、ウインドウを
ロック解除せよ。 もしatomic enabledが指定されていたな
らばそしてアトミック状態ファイルが対象物について存
在しなければ、vm atomic state fi
le createを呼び出し、そしてvnodeを対
象物エントリに記憶する。spin unlockを呼
び出し、対象物をロック解除せよ。指定される対象物オ
フセットに対応するシステム仮想アドレスを計算せよそ
して値をもどせ。
【0227】VM OBJ UNMAP(仮想記憶−対
象物−マップ解除) VMシステムは手続VM OBJ UNMAPのステッ
プを実行し、ウインドウの参照カウントをデクリメント
することにより対象物をマップアウトする。それはファ
イルがマップアウトされるときにVMシステムにより呼
び出される。VM OBJ UNMAPは入力としてv
windowへのポインタおよびvm stteへ
のポインタを受け入れる。それはステータス標識を戻
す。VM OBJ UNMAPのステップの好ましいシー
ケンスが以下のとおりである。動 作 ステータスをVM NORMALへセットせよ。spi
lockを呼び出し、排他的アクセスのためにウイ
ンドウをロックせよ。VM WINDOW STTE
UNLINKを使用し、指定されるvm stteを参
照しているvm sttesのリストからリンク解除せ
よ。ウインドウについて参照の数をデクリメントせよ。
spin unlockを呼び出し、ウインドウをロッ
ク解除せよ。
【0228】VM WIN GET ENTRY(仮想
記憶−成功−獲得−エントリ) VMシステムは手続VM WIN GET ENTRY
のステップを実行し、新規なvm windowエント
リを割り付けかつ初期化する。それは、新規なvm
indowを発生するときにVMシステムにより呼び出
される。それはステータス標識と共に、vm wind
owへのポインタを戻す。VM WIN GET EN
TRYのステップの好ましいシーケンスが以下のとおり
である。動 作 ステータスをVM NORMALへセットせよ。指定さ
れるされるno waitと一緒にkern mall
ocを呼び出せ。もしvm windowエントリが依
然として必要とされれば、以下を行え。 A)spin lockを呼び出し、キャッシュ記憶さ
れるウインドウリストをロックせよ。 B)もしcached list num windo
ws(キャッシュ記憶−リスト・数−ウインドウ)が0
よりも大きければ、以下を行え。 i)vm window cached.first
windowが選択されるウインドウである。 ii)spin unlockを呼び出し、キャッシュ
記憶ウインドウリストをロック解除せよ。 iii)vm window deleteを呼び出
し、キャッシュ記憶ウインドウを削除せよ。 iv)第2のステップへ戻れ。そうでなければ(vm
windowエントリが依然として必要とされてい
る)、以下を行え。 i)指定される待ちと一緒にkern mallocを
呼び出せ。spin initを呼び出し、ウインドウ
のロックを初期化せよ。window.atomic
enabledを誤りへセットせよ。procs wa
iting、reference count、stt
es invalidatedおよびextension
countをゼロにセットせよ。indirectを
NULLへセットせよ。last fault add
rおよびrun lengthをゼロにセットせよ。l
ow addr ref、high addr re
f、low addr mod、high addr
od、lowaddr atomicおよびhigh
addr atomicをゼロにセットせよ。num
pnbをゼロにセットせよ。first pnbおよび
last pnbをNULLへセットせよ。
【0229】VM WINDOW STTE LINK
(仮想記憶−ウインドウ−セグメント変換テーブルエン
トリ−リンク) VMシステムはマクロVM WINDOW STTE
LINKのステップを実行し、vm stteをvm
windowにリンクする。それは、ファイルのある範
囲をプロセスのCA空間にマップするときにVMシステ
ムにより呼び出される。VM WINDOW STTE
LINKのステップの好ましいシーケンスが以下のと
おりである。動 作 vm stte.prev stteをwindow.
last stteへセットせよ。vm stte.n
ext stteをNULLへセットせよ。windo
w.last stteをこのvm stteへセット
せよ。もしvm stte.prev stteがNU
LLであれば、window.first−stteを
このvm stteへセットせよ。そうでなければ、最
後の仮想記憶セグメント変換テーブルエントリとされる
ものの次セグメント変換テーブルエントリフィールド
を、この仮想記憶セグメント変換テーブルエントリを指
し示すようセットせよ。window.referen
ce countをインクリメントせよ。
【0230】ぺージングルーチン ディジタルデータプロセッシング装置10および特に中
央処理装置40A〜40Cは、VMシステムの部分を形
成する以下の手続に包含されるステップを実行し、ミッ
シングデータを識別しかつこれらをページングする。
【0231】VM FAULT STTE MISS
(仮想記憶−誤機能−セグメント変換テーブルエントリ
−ミス) VMシステムは手続VM FAULT STTE MI
SSのステップを実行し、適当なvm stteを賦活
し、vm stteを更新および賦活するか、または未
解決アドレスについて誤機能が生じたことを誤機能処理
体に合図することにより、stte mls誤機能を解
決する。トラップハンドラから唯一呼び出されるこの手
続は入力としてfault addressを受け入れ
る。VM FAULT STTE MISSのステップ
の好ましいシーケンスは以下のとおりであり、そして図
19に図示されており、ステップ210とともに開始す
る。動 作 VM STTE FINDを使用し、プロセスのvm
sttesをチェックし、誤機能アドレスについてセグ
メント変換テーブルエントリが存在するかどうかを見よ
(ステップ212)。もし何らのvm sttesも一
致しなければ、以下を行え。 A)もしページがいずれの既存のSTTEのCA範囲内
にもなければ(NOT)、以下を行え。 i)未解決アドレスについて誤機能が発生していること
をプロセスに合図せよ。 ii)戻れ(ステップ216) B)そうでなく、もしマップが拡張可能であれば、以下
を行え。 i)vm stteに対応するvm windowをロ
ックせよ。 ii)もしvm windowが誤りアドレスをカバー
していたならば、以下を行え。 a)もし大きなマップの整合性がokであれば(現在の
CAベースは新規なサイズについての自然境界であ
る)、仮想記憶セグメント変換テーブルエントリを更新
せよ。更新されたvm stteはここに誤りアドレス
について整合性を示す。 iii)vm windowをロック解除せよ(ステッ
プ218) C)そうでなければ、未解決アドレスについての誤りが
発生したことをプロセスに合図せよ(ステップ22
0)。もしvm stteが整合すれば、VMSTE
LOADを使用し、vm stteからのハードウエア
STTEをセグメント変換テーブルの無作為ユーザロケ
ーション(ユーザエントリを介してループせよ)にコピ
ーせよ(ISTTでVM ISTT FIRST US
ERないしVM ISTT NUM ENTRIES−
1、DSTTでVM DSTT FIRST USER
ないしVM DSTT NUM ENTRIES
1)(ステップ222)。
【0232】VM PAGE IN (仮想記憶−ページ−イン) VMシステムは手続VM PAGE INのステップを
実行し、ページ誤りに応じてページをシステムに引き入
れる。それは読み出しまたは書込み誤り時にトラップハ
ンドラから呼び出される。手続は入力として誤りアドレ
スおよびvm windowへのポインタを受け入れる。
VM PAGE INは、入出力が完全となるまで、何
らのプロセスも呼び出されつつあるページへアクセスし
ないことを保証しなければならない。これを行うため
に、それは読出し要求を、実ページと同様のラインの特
別ページへ発行する。入出力が完了する時、それはペー
ジアドレスを読出しアドレスへ変化させる。もしページ
がオーバレイ対象物により戻されれば、データは戻りペ
ージから現在ページへコピーされる。後述するように、
データのコピー動作を許容するために、テキストページ
が戻り手段を有するのが許容されない。VM PAGE
INのステップの好ましいシーケンスが以下の通りで
ある。このシーケンスの部分が図20に示され、ステッ
プ230とともに開始する。動 作 仮想記憶ウインドウをロックせよ。もしvm wind
owの間接アドレスがNULLでなければ、 A)vm windowへロック解除せよ。 B)vm obj mapを呼び出し、新規なvm
indowをマップインせよ。 C)vm obj unmapを呼び出し、古いvm
windowをマップアウトせよ。 D)戻れ。 もしvm window状態がスワップされるかまたは
未決スワップ状態であれば(多重化)、以下を行え。 A)window.procs waitingをイン
クリメントせよ。 B)sleep hard rspを呼び出し、vm
windowでロック解除および待機せよ。 C)戻れ。 もしfault addressがwindow.lo
addr refよりも小さければ、windo
w.low addr refを誤りアドレスへセット
せよ。もしfault addressがwindo
w.high addr refよりも大きければ、w
indow.high addr refをfault
addressへセットせよ。VM PAGE NOT
GETを使用し、fault addressにつ
いてpage note(もし一つ存在すれば)を獲得
せよ。もしNULLポインタが戻されたならば、何らの
ページノートも存在せず、それゆえ以下を行え。 A)VM PAGE NOTE CREATEを使用
し、誤りページについてページノートを発生せよ。 もし、page note.read heldまたは
page note.write heldがセットさ
れれば、以下を行え。 A)page note.procs waiting
をセットせよ。 B)sleep hard rspを呼び出し、vm
windowをロック解除しそしてページノートで待機
せよ。 C)戻れ。 page note.read heldをセットせ
よ。VM PAGE TO LINEを使用し、いずれ
のラインに誤りページが存在するかを決定せよ。spi
lockを呼び出し、vm windowを包含す
る対象物をロックせよ。mapped fileのvn
odeを対象物テーブルから取得せよ。VM ADDR
TO FILE OFFを使用し、誤りアドレスおよ
び対象物データを使用してファイルオフセットを決定せ
よ。spin unlockを呼び出し、対象物エント
リをロック解除せよ。spin unlockを呼び出
し、仮想記憶ウインドウをロック解除せよ。vm te
mp page createを呼び出し、データを収
容するために一時的なページを取得せよ。ファイルシス
テムを呼び出し、ページを読み取れ。ファイルシステム
は、成功状態、ゼロページ(ディスク上になし)状態ま
たは非成功状態という入出力のステータスを戻さなけれ
ばならない(ステップ232)。もし結果がゼロページ
であったか成功状態でなかったならば、対象物はオーバ
レイを有し、以下を行え。 A)もし結果がゼロページであったならば、ページが見
出されたことを記録せよ(ステップ236) B)vm page hold for writeを
呼び出し、オーバレイ対象物のページを保持せよ(ステ
ップ238)。 C)もしページが見出されたならば、以下を行え。 i)オーバレイ対象物のページを新規ページへコピーせ
よ(ステップ242)。 ii)VM PAGE DESCR READを使用
し、新規ページの記述子を取得せよ(ステップ24
4)。 iii)記述子のアドレスを「実」アドレスへ変化せよ
(ステップ246)。 iv)VM PAGE DESCR MODを使用し、
ページの記述子を更新せよ。これは、ページのアドレス
を変える(ステップ248)。 v)一時ページをフリーとしてマーク付けせよ(ステッ
プ250)。 vi)vm page releaseを呼び出し、ペ
ージを解放せよ(ステップ252)。 vii)戻れ(ステップ254)。 そうでなく、もしページが見出されなければ、以下を行
え。 i)オーバレイ対象物のvnodeを使用し、第7ステ
ップへ戻れ(ファイルシステムを呼び出しページを呼び
出せ)(ステップ256)。
【0233】要 約 前述の対象物に適う改善されたディジタルデータプロセ
ッシング装置を開示した。詳述すると、チェックポイン
ト間または分岐後の時間間隔内でプロセスによりアクセ
スされるデータをセット内に記憶するディジタルデータ
プロセッシング装置を開示した。ある期間中アクセスさ
れるかまたは更新されるデータだけが関連セットに記憶
される。前の期間中だけアクセスされるものはこれら期
間と関連付けられるセットにとどまる。当業者であれ
ば、上述の実施例は単なる例示であり、修正・付加・削
除を含む他の装置および方法が本発明の技術思想内に包
含されるべきことを理解するであろう。たとえば、異な
るデータ構造が、CA空間およびシステム仮想アドレス
空間を管理および変換するのに使用可能である。等価で
あるが変化された手続が対象物間で情報を転送するのに
使用されてもよい。一例として、対象物、ウインドウお
よびセグメント変換テーブル管理ルーチンのうちの少く
とも一定ルーチンのシーケンスが本発明の技術思想を変
更することなく変化可能である。
【図面の簡単な説明】
【図1】本発明の好ましい実施において使用するための
多重処理装置の構造を図示する。
【図2】図1の多重処理装置のための好ましいメモリ構
成およびデータ管理機能を図示する。
【図3】図1の多重処理装置のための好ましいメモリ構
成およびデータ管理機能を図示する。
【図4】図1の多重処理装置のたとえばレベル0のセグ
メントについての好ましい構成を図示する。
【図5】図1の多重処理装置のプロセッシングセルのた
めの好ましい構成を図示する。
【図6】図1の多重処理装置のキャッシュディレクトリ
の好ましい構成を図示する。
【図7】図1のディジタルデータプロセッサのシステム
仮想アドレス空間と文脈アドレス空間との間の対応付け
(マッピング)を図示する。
【図8】図1のディジタルデータプロセッサの文脈アド
レスの構成要素を図示する。
【図9】図1のディジタルデータプロセッサのプロセス
またはアドレス変換を図示する。
【図10】図1のディジタルデータプロセッサのセグメ
ント変換テーブルフィールドを図示する。
【図11】図1のディジタルデータプロセッサがどのよ
うにしてシステム仮想アドレスを発生するかを図示す
る。
【図12】アドレス空間管理のために図1のディジタル
データプロセッサにより使用される好ましいデータ構造
の相互関係を図示する。
【図13】図1のディジタルデータプロセッサによって
どのようにしてページが分岐動作中コピーされそして更
新されるかを図示する。
【図14】図1のディジタルデータプロセッサによって
遂行される機構のチェックポイント動作および分岐動作
を図示する。CEどのようにしてページが分岐動作中コ
ピーされそして更新されるかを図示する。
【図15】VM STTE FINDのステップの好ま
しいシーケンスを図示する。
【図16】VM STTE LOADのステップの好ま
しいシーケンスを図示する。
【図17】VM STTE CLEARのステップの好
ましいシーケンスを図示する。
【図18】VM OBJ CREATE OVERLA
Yのステップの好ましいシーケンスを図示する。
【図19】VM FAULT STTE MISSのス
テップの好ましいシーケンスを図示する。
【図20】VM PAGE INのステップの好ましい
シーケンスを図示する。
【符号の説明】 10 プロセッシング装置 12 セグメント 18 セル 19 ディスク駆動装置 20 バス 22 セル接続部 28 ルート指定セル要素 32 相互接続部

Claims (44)

    【特許請求の範囲】
  1. 【請求項1】A.データを記憶するための記憶手段と、 B.第1プロセスを実行しかつこれに関係して前記デー
    タへの少くとも一つのマップアクセス要求を発生する第
    1プロセス手段と、 C.それぞれが連続プロセス期間を画定する一つまたは
    それ以上の新規プロセス型信号を発生するための分岐/
    チェックポイント合図手段にして、第1の新規プロセス
    型信号前の期間は第1期間と呼ばれる当該分岐/チェッ
    クポイント合図手段と、 D.当該第1期間中、前記第1プロセスにより発生され
    る一データへのアクセス要求に応答し、前記記憶手段に
    記憶されたデータの第1のセットに記憶された一要求デ
    ータへのアクセスを提供する手段にして、当該第1セッ
    トは第1プロセスの前記第1期間と関連付けられるとし
    て参照されつつあるところの前記アクセス提供手段と、 E.前記第1プロセス手段に結合され、一データへの書
    込み型アクセスのため前記第1期間に引き続く現在期間
    中、前記プロセスによる初要求に少くとも応答し、 i)第1プロセスの前期間と関連付けられるセットに記
    憶される一要求データにアクセスし、かつ、 ii)前記の一アクセスデータと初め同一である別途の
    一データを発生するための第1アドレス空間管理手段と
    を具備しており、 F.前記第1アドレス空間管理手段は、前記第1プロセ
    スの現在期間と関連付けられる前記記憶手段のセットに
    初め同一である前記一データを格納するための手段を具
    備し、 G.前記第1アドレス空間管理手段は、一データへの少
    なくとも書込み型アクセスについて、前記現在期間中、
    第1プロセスによる前記初要求に応答し、並びに、先と
    同様の期間中先と同様のプロセスによる先と同様の一デ
    ータへの書込み型および読取り型アクセスのいずれにつ
    いての引き続く要求に対しても応答し、第1プロセスの
    現在期間と関連付けられるセットに格納される初同一の
    前記一データにアクセスするか、そうでなければ第1プ
    ロセスの前期間と関連付けられるセットに格納される一
    要求データにアクセスするための手段を別途に具備する
    ディジタルデータプロセッシング装置。
  2. 【請求項2】A.少くとも前記第1のアドレス空間管理
    手段は、一データへの書込み型アクセスについて前記現
    在期間中前記第1プロセスによる初要求に少くとも応答
    し、並びに、いずれの一データへの書込み型アクセスお
    よび読取り型アクセスのいずれに対する先と同様の期間
    中のいずれの引き続く要求に対しても応答して、前記別
    途の初同一の一データを発生するために第1書込み後参
    照時コピー方式手段を具備し、 B.前記第1アドレス空間管理手段は、一データへの書
    込み型アクセスについて、前記現在期間中、前記第1プ
    ロセスによる前記初要求に応答し、並びに、先と同様の
    期間中、いずれの一データへの書込み型および読取り型
    アクセスのいずれについての引き続く要求に対しても応
    答し、第1プロセスの現在期間と関連付けられるセット
    に格納される初同一の前記一データにアクセスするか、
    そうでなければ第1プロセスの前期間と関連付けられる
    セットに格納される一要求データにアクセスするための
    手段を具備した請求項1の装置。
  3. 【請求項3】A.前記記憶手段のそれぞれの前記一デー
    タは記憶記述子と関連付けられ、 B.それぞれの前記プロセス手段は、前記アクセス要求
    と共に、前記一要求データと関連付けられる文脈アドレ
    ス信号を発生する手段を具備し、 C.少くとも前記第1アドレス空間管理手段は、文脈ア
    ドレス信号に応答し、関連プロセスの現在期間と関連付
    けられるセットに格納される先と同様の一データと関連
    付けられる記憶記述子を発生するアドレス変換手段と、 D.前記記憶手段はかかる記憶記述子に応答して、関連
    データへのアクセスを提供するための手段を具備する請
    求項1の装置。
  4. 【請求項4】前記アドレス変換手段は、それぞれが、少
    くとも一つの文脈アドレス信号と少くとも一つの記憶記
    述子との間の関連性を表わすところの一つまたはそれ以
    上の変換表示型信号を含む請求項3の装置。
  5. 【請求項5】少くとも前記第1のアドレス空間管理手段
    は、 A.あるプロセス期間中、関連プロセスの状態を表わす
    信号を選択的に格納するための対象物手段にして、当該
    状態表示型信号は前記変換表示型信号を含む前記対象物
    手段と、 B.前記対象物手段と前記アドレス変換手段との間でか
    かる変換表示信号を選択的に転送するための手段とを具
    備する請求項4の装置。
  6. 【請求項6】少くとも前記第1のアドレス空間管理手段
    は、 少くとも前記新規プロセス型信号に応答して、前記アド
    レス変換手段から前記対象物手段へ向う前記変換表示信
    号の記憶を少くとも可能化するための手段を具備する請
    求項5の装置。
  7. 【請求項7】前記第1のアドレス空間管理手段は、 前記新規プロセス型信号に引き続く一データへの書込み
    型アクセスついて第1プロセスによる初要求に応答し
    て、前記アドレス変換手段から前記対象物手段へ向う前
    記変換表示信号を記憶するための手段を具備する請求項
    6の装置。
  8. 【請求項8】少くとも前記第1のアドレス空間管理手段
    は、 それぞれが各前期間のアドレス変換手段からの変換表示
    型信号を記憶する複数の対象物手段を発生するための手
    段を具備する請求項6の装置。
  9. 【請求項9】少くとも前記第1のアドレス空間管理手段
    は、 関連プロセス期間の新しさに基づく順序にて前記対象物
    手段をリンクする手段を具備する請求項8の装置。
  10. 【請求項10】少くとも前記第1のアドレス空間管理手
    段は、 前記新規プロセス型信号に応答して、前記アドレス変換
    手段に記憶される前記の一つまたはそれ以上の変換表示
    型信号の修正を少くとも可能化し、少くとも一つの文脈
    アドレス信号と少くとも一つの別途の記憶記述子との間
    の関連性を反映するための再割当て手段にして、前記別
    途の記憶記述子は関連プロセスの現在期間と関連付けら
    れるセットの一ミッシングデータと初め関連付けられる
    前記再割当て手段を具備する請求項5〜9のいずれかに
    記載の装置。
  11. 【請求項11】前記再割当て手段は、 前記新規プロセス型信号に引き続く一データへの書込み
    型アクセスについて第1プロセスによる初要求に応答し
    て、前記アドレス変換手段に記憶される前記の一つまた
    はそれ以上の変換表示型信号を修正するための手段を具
    備する請求項5〜9のいずれかに記載の装置。
  12. 【請求項12】前記記憶手段は一ミッシングデータへの
    アクセス要求に応答してそれを指示する一ミッシングデ
    ータ型信号を発生する手段を具備する請求項5〜9のい
    ずれかに記載の装置。
  13. 【請求項13】少くとも前記第1のアドレス空間管理手
    段は、 一ミッシングデータ型信号に応答し、関連プロセスの前
    期間と関連付けられるセットに記憶される一ミッシング
    データにアクセスするための前セット型手段を含む請求
    項12の装置。
  14. 【請求項14】前記前セット型手段は、前記一データが
    記憶される関連プロセスの最も最近の前期間と関連付け
    られるセットに記憶される一ミッシングデータにアクセ
    スするための手段を含む請求項13の装置。
  15. 【請求項15】前記前セット型手段は、一つまたはそれ
    以上の前記対象物手段を探索し、前記一ミッシングデー
    タと関連付けられる記憶記述子を識別するための手段を
    含む請求項14の装置。
  16. 【請求項16】少くとも前記第1のアドレス空間管理手
    段は、 関連プロセスを前プロセス期間と関連付けられる状態へ
    復元する再記録手段を含む請求項15の装置。
  17. 【請求項17】前記再記録手段は、前記対象物手段の選
    択された一つから前記アドレス変換手段へ変換表示型信
    号を転送するための手段を含む請求項16の装置。
  18. 【請求項18】A.前記アドレス空間管理手段へ結合さ
    れデータの不揮発性記憶のためのディスク手段を具備
    し、 B.当該第1アドレス空間管理手段は当該ディスク手段
    に前記対象物手段を記憶しそしてこれにアクセスするた
    めの手段を具備する請求項5の装置。
  19. 【請求項19】A.選択された他のプロセス関連型情報
    を少くとも一時的に前記ディスク手段に記憶させるため
    の手段と、 B.選択された対象物手段を少くとも前記他のプロセス
    関連型情報よりも長い時間保持させるための手段を備え
    た請求項18の装置。
  20. 【請求項20】A.前記第1のプロセスを最初模写した
    第2のプロセスを発生する分岐手段にして、前記分岐/
    チェックポイント合図手段に結合されており前記第2の
    プロセスの発生との関係で新規プロセス型信号の発生を
    開始するための前記分岐手段と、 B.当該第2のプロセスを実行しかつこれとの関係で少
    くとも一つの前記一データへのマップアクセス要求を発
    生する第2のプロセス手段と、 C.前記第2プロセス手段に結合され、一データへの書
    込み型アクセスのため前記第2プロセスの発生に引き続
    く現在期間中、前記プロセスによる初要求に少くとも応
    答し、 i)第2のプロセスに優先的に関連付けられる、少くと
    も前期間と関連付けられるセットに記憶される一要求デ
    ータにアクセスし、かつ、 ii)前記の一アクセスデータと初め同一である別途の
    一データを発生するための第2アドレス空間管理手段と
    を具備しており、 D.前記第2アドレス空間管理手段は、前記第2プロセ
    スの現在期間と関連付けられる前記記憶手段のセットに
    初め同一である前記一データを格納するための手段を具
    備し、 E.前記第2アドレス空間管理手段は、一データへの少
    なくとも書込み型アクセスについて、前記現在期間中、
    第2プロセスによる前記初要求に応答し、並びに、現在
    期間中先と同様のプロセスによる先と同様の一データへ
    の書込み型および読取り型アクセスのいずれについての
    引き続く要求に対しても応答し、第2プロセスの現在期
    間と関連付けられるセットに格納される初同一の前記一
    データにアクセスするか、そうでなければ前記第2のプ
    ロセスに優先的に関連付けられる、前期間と関連付けら
    れるセットに格納される先の一データにアクセスするた
    めの手段を別途に具備する請求項1の装置。
  21. 【請求項21】A.指定された事象に応答して新規プロ
    セス型信号を発生する自動チェックポイント手段、 B.オペレータ入力に応答して新規プロセス型信号を発
    生する手動チェックポイント手段、および C.少くとも選択されたプログラム命令の実行に応答し
    て新規プロセス型信号を発生するプログラムチェックポ
    イント手段のうちの少くとも一つを具備する請求項1の
    装置。
  22. 【請求項22】前記自動チェックポイント手段は時間の
    関数として前記一つまたはそれ以上の新規プロセス姿信
    号を発生するための手段を具備する請求項21の装置。
  23. 【請求項23】A.データを記憶するための記憶手段を
    提供する段階と、 B.第1プロセスを実行しかつこれに関係して前記デー
    タへの少くとも一つのマップアクセス要求を発生する段
    階と、 C.それぞれが連続プロセス期間を画定する一つまたは
    それ以上の新規プロセス型信号を発生する段階にして、
    第1の新規プロセス型信号前の期間は第1期間と呼ばれ
    る当該段階と、 D.当該第1期間中、前記第1プロセスにより発生され
    る一データへのアクセス要求に応答し、前記記憶手段に
    記憶されたデータの第1のセットに記憶された一要求デ
    ータへのアクセスを提供する段階にして、当該第1セッ
    トは第1プロセスの前記第1機関と関連付けられるもの
    として参照されつつある当該段階と、 E.一データへの書込み型アクセスのため前記第1期間
    に引き続く現在期間中、前記第1プロセスによる初要求
    に少くとも応答し、 i)第1プロセスの前期間と関連付けられるセットに記
    憶される一要求データにアクセスし、かつ、 ii)前記の一アクセスデータと初め同一である別途の
    一データを発生する段階と、 F.前記第1プロセスの現在期間と関連付けられる前記
    記憶手段のセットに初め同一である前記一データを格納
    する段階と、 G.一データへの少なくとも書込み型アクセスについ
    て、前記現在期間中、第1プロセスによる前記初要求に
    応答し、並びに、先と同様の期間中先と同様のプロセス
    による先と同様の一データへの書込み型および読取り型
    アクセスのいずれについての引き続く要求に対しても応
    答し、第1プロセスの現在期間と関連付けられるセット
    に格納される初同一の前記一データにアクセスするか、
    そうでなければ第1プロセスの前期間と関連付けられる
    セットに格納される一要求データにアクセスする段階と
    から構成されるディジタルデータプロセッシング装置の
    動作方法。
  24. 【請求項24】A.一データへの書込み型アクセスにつ
    いて前記現在期間中前記第1プロセスによる初要求に少
    くとも応答し、並びに、いずれの一データへの書込み型
    アクセスおよび読取り型アクセスのいずれに対する先と
    同様の期間中のいずれの引き続く要求に対しても応答し
    て、前記別途の初同一の一データを発生する段階と、 B.一データへの書込み型アクセスについて、前記現在
    期間中、前記第1プロセスによる前記初要求に応答し、
    並びに、先と同様の期間中、いずれの一データへの書込
    み型および読取り型アクセスのいずれについての引き続
    く前記要求に対しても応答し、第1プロセスの現在期間
    と関連付けられるセットに格納される初同一の前記一デ
    ータにアクセスするか、そうでなければ第1プロセスの
    前期間と関連付けられるセットに格納される一要求デー
    タにアクセスする段階とを具備した請求項23の方法。
  25. 【請求項25】A.前記記憶手段のそれぞれの前記一デ
    ータは記憶記述子と関連付けられ、 B.それぞれの前記プロセスは、前記アクセス要求と共
    に、前記一要求データと関連付けられる文脈アドレス信
    号を発生し、 C.文脈アドレス信号に応答し、関連プロセスの現在期
    間と関連付けられるセットに格納される先と同様の一デ
    ータと関連付けられる記憶記述子を発生し、 D.かかる記憶記述子に応答して、関連データへのアク
    セスを提供する諸段階を具備する請求項23の方法。
  26. 【請求項26】それぞれが、少くとも一つの文脈アドレ
    ス信号と少くとも一つの記憶記述子との間の関連性を表
    わすところの一つまたはそれ以上の変換表示型信号を提
    供する段階を具備する請求項25の方法。
  27. 【請求項27】A.あるプロセス期間中、関連プロセス
    の状態を表わす信号を選択的に格納する段階にして、当
    該状態表示型信号は前記変換表示型信号を含む前記段階
    と、 B.前記対象物手段と前記アドレス変換手段との間でか
    かる変換表示信号を選択的に転送する段階を具備する請
    求項26の方法。
  28. 【請求項28】少くとも前記新規プロセス型信号に応答
    して、前記アドレス変換手段から前記対象物手段へ向う
    前記変換表示信号の記憶を少くとも可能化する段階を具
    備する請求項27の方法。
  29. 【請求項29】前記新規プロセス型信号に引き続く一デ
    ータへの書込み型アクセスついて第1プロセスによる初
    要求に応答して、前記アドレス変換手段から前記対象物
    手段へ向う前記変換表示信号を記憶するための段階を具
    備する請求項28の方法。
  30. 【請求項30】それぞれが各前期間のアドレス変換手段
    からの変換表示型信号を記憶する複数の対象物手段を発
    生する段階を具備する請求項28の方法。
  31. 【請求項31】関連プロセス期間の新しさに基づく順序
    にて前記対象物手段をリンクする段階を具備する請求項
    30の方法。
  32. 【請求項32】前記新規プロセス型信号に応答して、前
    記アドレス変換手段に記憶される前記の一つまたはそれ
    以上の変換表示型信号の修正を少くとも可能化し、少く
    とも一つの文脈アドレス信号と少くとも一つの別途の記
    憶記述子との間の関連性を反映するための段階にして、
    前記別途の記憶記述子は関連プロセスの現在期間と関連
    付けられるセットの一ミッシングデータと初め関連付け
    られる当該段階を具備する請求項27〜31のいずれか
    に記載の方法。
  33. 【請求項33】前記新規プロセス型信号に引き続く一デ
    ータへの書込み型アクセスについて第1プロセスによる
    初要求に応答して、前記アドレス変換手段に記憶される
    前記の一つまたはそれ以上の変換表示型信号を修正する
    段階を具備する請求項27〜31のいずれかに記載の方
    法。
  34. 【請求項34】一ミッシングデータへのアクセス要求に
    応答してそれを指示する一ミッシングデータ型信号を発
    生する段階を具備する請求項32の方法。
  35. 【請求項35】一ミッシングデータ型信号に応答し、関
    連プロセスの前期間と関連付けられるセットに記憶され
    る一ミッシングデータにアクセスするための段階を具備
    する請求項34の方法。
  36. 【請求項36】前記一データが記憶される関連プロセス
    の最も最近の前期間と関連付けられるセットに記憶され
    る一ミッシングデータにアクセスするための段階を具備
    する請求項35の方法。
  37. 【請求項37】一つまたはそれ以上の前記対象物手段を
    探索し、前記一ミッシングデータと関連付けられる記憶
    記述子を識別するための段階を具備する請求項36の方
    法。
  38. 【請求項38】関連プロセスを前プロセス期間と関連付
    けられる状態へ復元する段階を具備する請求項37の方
    法。
  39. 【請求項39】前記対象物手段の選択された一つから前
    記アドレス変換手段へ変換表示型信号を転送するための
    段階を具備する請求項38の方法。
  40. 【請求項40】A.データの不揮発性記憶のためディス
    ク手段を提供する段階と、 B.当該ディスク手段に前記対象物手段を記憶しそして
    これにアクセスする段階とを具備する請求項27の方
    法。
  41. 【請求項41】A.少くとも選択された他のプロセス関
    連型情報を一時的に前記ディスク手段に記憶させる段階
    と、 B.少くとも選択された対象物手段を前記他のプロセス
    関連型情報よりも長い時間保持させるための段階を具備
    する請求項40の方法。
  42. 【請求項42】A.前記第1のプロセスを最初模写した
    第2のプロセスを発生し、当該第2のプロセスの発生と
    の関係で新規プロセス型信号の発生を開始する段階と、 B.当該第2のプロセスを実行しかつこれとの関係で少
    くとも一つの前記一データへのマップアクセス要求を発
    生する段階と、 C.一データへの書込み型アクセスのため前記第2プロ
    セスの発生に引き続く現在期間中、前記第2のプロセス
    による初要求に少くとも応答し、 i)第2のプロセスに優先的に関連付けられる、少くと
    も前期間と関連付けられるセットに記憶される一要求デ
    ータにアクセスし、かつ、 ii)前記の一アクセスデータと初め同一である別途の
    一データを発生する段階と、 D.前記第2プロセスの現在期間と関連付けられる前記
    記憶手段のセットに初め同一である前記一データを格納
    する段階と、 E.一データへの少なくとも書込み型アクセスについ
    て、前記現在期間中、第2プロセスによる前記初要求に
    応答し、並びに、現在期間中先と同様のプロセスによる
    先と同様の一データへの書込み型および読取り型アクセ
    スのいずれについての引き続く要求に対しても応答し、
    第2プロセスの現在期間と関連付けられるセットに格納
    される初同一の前記一データにアクセスするか、そうで
    なければ、前記第2のプロセスに優先的に関連付けられ
    る、前期間と関連付けられるセットに格納される先の一
    データにアクセスするための段階を具備する請求項40
    の方法。
  43. 【請求項43】A.指定された事象に応答して新規プロ
    セス型信号を発生する動作、 B.オペレータ入力に応答して新規プロセス型信号を発
    生する動作、および C.少くとも選択されたプログラム動作命令の実行に応
    答して新規プロセス型信号を発生する動作のうちの少く
    とも一つを実行する段階を具備する請求項23の方法。
  44. 【請求項44】前記一つまたはそれ以上の新規プロセス
    型信号を時間の関数として発生する段階を具備する請求
    項23の方法。
JP4273477A 1991-09-20 1992-09-18 改善されたチェックポイント動作および分岐動作を有するディジタルデータプロセッサ Withdrawn JPH05250191A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US763505 1991-09-20
US07/763,505 US5313647A (en) 1991-09-20 1991-09-20 Digital data processor with improved checkpointing and forking

Publications (1)

Publication Number Publication Date
JPH05250191A true JPH05250191A (ja) 1993-09-28

Family

ID=25068013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4273477A Withdrawn JPH05250191A (ja) 1991-09-20 1992-09-18 改善されたチェックポイント動作および分岐動作を有するディジタルデータプロセッサ

Country Status (6)

Country Link
US (1) US5313647A (ja)
EP (2) EP0864982B1 (ja)
JP (1) JPH05250191A (ja)
AT (2) ATE180069T1 (ja)
CA (1) CA2078313C (ja)
DE (2) DE69231743T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170073659A (ko) * 2014-10-20 2017-06-28 아브 이니티오 테크놀로지 엘엘시 계산적인 불확정 하에서의 결함 허용 및 복구

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
GB2272549B (en) * 1992-11-03 1997-01-29 Tolsys Ltd Memory checkpointing
US5664195A (en) * 1993-04-07 1997-09-02 Sequoia Systems, Inc. Method and apparatus for dynamic installation of a driver on a computer system
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US5517656A (en) * 1993-06-11 1996-05-14 Temple University Of The Commonwealth System Of Higher Education Multicomputer system and method
US5892944A (en) * 1993-07-20 1999-04-06 Kabushiki Kaisha Toshiba Program execution and operation right management system suitable for single virtual memory scheme
US5495589A (en) * 1993-12-23 1996-02-27 Unisys Corporation Architecture for smart control of bi-directional transfer of data
AU2663095A (en) * 1994-06-10 1996-01-05 Sequoia Systems, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5551043A (en) * 1994-09-07 1996-08-27 International Business Machines Corporation Standby checkpoint to prevent data loss
JPH10508714A (ja) * 1994-11-07 1998-08-25 テンプル ユニヴァーシティ − オブ ザ カモン ウェルス システム オブ ハイヤー エデュケイション マルチコンピュータ・システムおよび方法
US5644742A (en) * 1995-02-14 1997-07-01 Hal Computer Systems, Inc. Processor structure and method for a time-out checkpoint
US5717926A (en) * 1995-02-28 1998-02-10 International Business Machines Corporation Efficient forking of a process
DE69629331T2 (de) * 1995-06-02 2004-02-12 Sun Microsystems, Inc., Mountain View System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5745672A (en) * 1995-11-29 1998-04-28 Texas Micro, Inc. Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
US5751939A (en) * 1995-11-29 1998-05-12 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
EP0882266A1 (en) 1996-02-20 1998-12-09 Intergraph Corporation High-availability super server
US5832513A (en) * 1996-06-04 1998-11-03 Symantec Corporation Detecting significant file system alterations during execution of a storage media software utility
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
US6647393B1 (en) 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US20060129627A1 (en) * 1996-11-22 2006-06-15 Mangosoft Corp. Internet-based shared file service with native PC client access and semantics and distributed version control
US7136903B1 (en) 1996-11-22 2006-11-14 Mangosoft Intellectual Property, Inc. Internet-based shared file service with native PC client access and semantics and distributed access control
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US5961639A (en) * 1996-12-16 1999-10-05 International Business Machines Corporation Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
US6360279B1 (en) * 1997-10-14 2002-03-19 Bea Systems, Inc. True parallel client server system and method
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
US6785278B1 (en) * 1998-12-10 2004-08-31 International Business Machines Corporation Methods, systems and computer program products for hashing address values
JP3831154B2 (ja) * 1999-08-13 2006-10-11 株式会社東芝 プログラム多重化拡大方法
US7552449B1 (en) * 2000-01-21 2009-06-23 Sun Microsystems, Inc. Method for enabling multiple concurrent subprocess handling on a system using a global process
US7117354B1 (en) * 2000-07-20 2006-10-03 International Business Machines Corporation Method and apparatus for allowing restarted programs to use old process identification
US6964046B1 (en) * 2001-03-06 2005-11-08 Microsoft Corporation System and method for scheduling a future event
US7065549B2 (en) * 2002-03-29 2006-06-20 Illinois Institute Of Technology Communication and process migration protocols for distributed heterogeneous computing
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
AU2003300948A1 (en) * 2002-12-16 2004-07-22 Globespanvirata Incorporated System and method for scheduling thread execution
US7653912B2 (en) 2003-05-30 2010-01-26 Steven Frank Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations
US7873941B2 (en) * 2004-06-14 2011-01-18 Alcatel-Lucent Usa Inc. Manager component that causes first software component to obtain information from second software component
US7216216B1 (en) 2004-06-30 2007-05-08 Sun Microsystems, Inc. Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window
US7426630B1 (en) * 2004-06-30 2008-09-16 Sun Microsystems, Inc. Arbitration of window swap operations
US7469331B2 (en) * 2004-07-22 2008-12-23 International Business Machines Corporation Method and apparatus for supporting shared library text replication across a fork system call
US7840963B2 (en) * 2004-10-15 2010-11-23 Microsoft Corporation Marking and utilizing portions of memory state information during a switch between virtual machines to minimize software service interruption
US7904906B2 (en) * 2004-11-23 2011-03-08 Stratus Technologies Bermuda Ltd. Tracking modified pages on a computer system
US9378099B2 (en) 2005-06-24 2016-06-28 Catalogic Software, Inc. Instant data center recovery
WO2008132761A2 (en) 2007-04-26 2008-11-06 Hewlett-Packard Development Company L.P. Method and system for managing heap across process replication
US7836018B2 (en) * 2007-10-24 2010-11-16 Emc Corporation Simultaneously accessing file objects through web services and file services
US8677355B2 (en) * 2010-12-17 2014-03-18 Microsoft Corporation Virtual machine branching and parallel execution
EP3079064B1 (en) * 2015-04-07 2017-11-29 Huawei Technologies Co., Ltd. Method and apparatus for tracking objects in a first memory
EP3451197B1 (en) * 2015-05-13 2021-08-25 Huawei Technologies Co., Ltd. System and method for creating selective snapshots of a database
US11157309B2 (en) * 2019-04-10 2021-10-26 International Business Machines Corporation Operating cluster computer system with coupling facility
US10942857B1 (en) * 2019-09-11 2021-03-09 International Business Machines Corporation Dynamically adjusting a number of memory copy and memory mapping windows to optimize I/O performance

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US4358823A (en) * 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
GB2077468B (en) * 1980-06-04 1984-10-24 Hitachi Ltd Multi-computer system with plural serial bus loops
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4714990A (en) * 1982-09-18 1987-12-22 International Computers Limited Data storage apparatus
US4497023A (en) * 1982-11-04 1985-01-29 Lucasfilm Ltd. Linked list of timed and untimed commands
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
US4758951A (en) * 1985-04-09 1988-07-19 Tektronix, Inc. Method for translating virtual addresses into real addresses
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
GB2176918B (en) * 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
IT1184013B (it) * 1985-12-13 1987-10-22 Elsag Memoria ad elevata capacita accessibile a diverse agenti
US4758946A (en) * 1986-04-09 1988-07-19 Elxsi Page mapping system
US4780873A (en) * 1986-05-19 1988-10-25 General Electric Company Circuit switching network with routing nodes
JPS6336348A (ja) * 1986-07-30 1988-02-17 Toshiba Corp バツフアメモリ管理方法
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
US4888726A (en) * 1987-04-22 1989-12-19 Allen-Bradley Company. Inc. Distributed processing in a cluster of industrial controls linked by a communications network
US4984235A (en) * 1987-04-27 1991-01-08 Thinking Machines Corporation Method and apparatus for routing message packets and recording the roofing sequence
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
US5119481A (en) * 1987-12-22 1992-06-02 Kendall Square Research Corporation Register bus multiprocessor system with shift
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
US5101402A (en) * 1988-05-24 1992-03-31 Digital Equipment Corporation Apparatus and method for realtime monitoring of network sessions in a local area network
CA2019300C (en) * 1989-06-22 2001-06-12 Kendall Square Research Corporation Multiprocessor system with shared memory
CA2019299C (en) * 1989-06-22 2002-01-15 Steven Frank Multiprocessor system with multiple instruction sources

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170073659A (ko) * 2014-10-20 2017-06-28 아브 이니티오 테크놀로지 엘엘시 계산적인 불확정 하에서의 결함 허용 및 복구

Also Published As

Publication number Publication date
EP0533446A2 (en) 1993-03-24
EP0864982B1 (en) 2001-03-14
CA2078313A1 (en) 1993-03-21
EP0533446B1 (en) 1999-05-12
ATE199791T1 (de) 2001-03-15
CA2078313C (en) 2001-05-08
DE69231743T2 (de) 2001-10-11
ATE180069T1 (de) 1999-05-15
DE69229156D1 (de) 1999-06-17
US5313647A (en) 1994-05-17
DE69229156T2 (de) 2000-05-04
EP0864982A1 (en) 1998-09-16
DE69231743D1 (de) 2001-04-19
EP0533446A3 (en) 1994-06-01

Similar Documents

Publication Publication Date Title
JPH05250191A (ja) 改善されたチェックポイント動作および分岐動作を有するディジタルデータプロセッサ
US5251308A (en) Shared memory multiprocessor with data hiding and post-store
US6886162B1 (en) High speed methods for maintaining a summary of thread activity for multiprocessor computer systems
US7234076B2 (en) Multi-level undo of main-memory and volatile resources
EP0881576B1 (en) Method and apparatus for generational garbage collection in a shared heap memory by means of multiple processor units
US9183156B2 (en) Read-copy update implementation for non-cache-coherent systems
US5608893A (en) Method for maintaining data coherency using thread activity summaries in a multicomputer system
CN104598397B (zh) 使用缓冲存储加速事务的机构
US4775932A (en) Computer memory system with parallel garbage collection independent from an associated user processor
US6618737B2 (en) Speculative caching of individual fields in a distributed object system
EP0539012B1 (en) Improved digital processor with distributed memory system
Merrifield et al. Conversion: Multi-version concurrency control for main memory segments
US6622231B2 (en) Method and apparatus for paging data and attributes including an atomic attribute
EP0404560B1 (en) multiprocessor system and method
Kongmunvattana et al. Coherence-based coordinated checkpointing for software distributed shared memory systems
Khan et al. An object-aware hardware transactional memory system
Bohannon et al. Recovering scalable spin locks
Saito et al. A transactional memory service in an extensible operating system
Kaiser et al. MUTABOR-A coprocessor supporting object-oriented memory management and error recovery
Henskens et al. Hardware support for stability in a persistent architecture
Ramachandran et al. A measurement‐based study of hardware support for object invocation
Isely et al. Design notes for the next generation persistent object manager for CAP
Memo Issues in Building a Cache-Coherent Distributed Shared Memory Machine using Commercial SMPs
Kumar Visible synchronization based cache coherence
Stets et al. Software Shared Memory Support on Clusters of Symmetric MultiProcessors Using Remote-Write Networks

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991130