JP2675961B2 - 実記憶のページをロックするための方法 - Google Patents

実記憶のページをロックするための方法

Info

Publication number
JP2675961B2
JP2675961B2 JP5098274A JP9827493A JP2675961B2 JP 2675961 B2 JP2675961 B2 JP 2675961B2 JP 5098274 A JP5098274 A JP 5098274A JP 9827493 A JP9827493 A JP 9827493A JP 2675961 B2 JP2675961 B2 JP 2675961B2
Authority
JP
Japan
Prior art keywords
page
lock
real
instruction
lkpg
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5098274A
Other languages
English (en)
Other versions
JPH0652050A (ja
Inventor
ジェフリ・アラン・フレイ
デイビッド・クリー・マナーズ
ジェフリ・マーク・ニック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0652050A publication Critical patent/JPH0652050A/ja
Application granted granted Critical
Publication of JP2675961B2 publication Critical patent/JP2675961B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、全般的には、仮想ア
ドレッシングを使用するデータ処理システムにおけるデ
ータの保護に関し、特に、実記憶のページをロックする
ために高性能の中央演算処理装置の命令を使用する方法
およびシステムに関する。
【0002】
【従来の技術】多重仮想アドレス空間における仮想アド
レッシングを使用するデータ処理システムは周知であ
り、例えばMVS(多重仮想記憶)制御プログラミング
を使用するIBM システム/390のようなシステム
が含まれる。IBM システム/390の構成およびハ
ードウェア/アーキテクチャの特徴は「IBM システ
ム/390の動作原理」、資料番号SA22−7201
−00に記載されている。MVSシステムは、多くの他
のデータ処理システムと同様に、例えば、中央演算処理
装置(CPU)および主記憶装置を有する。CPUは、
命令の実行、割り込み動作、タイミング機能、初期プロ
グラム・ローディングおよび他の計算機に関連する機能
を順序付けし、処理する機能を有する。主記憶装置は、
直接アドレス可能であり、CPUによって高速のデータ
処理を行う。主記憶装置は、CPUに物理的に集積され
るか、あるいは、独立型の装置で構成される。
【0003】オペレーティング・システムによる適切な
支援によって、記憶装置がその構成において使用可能な
主記憶装置よりも大規模に見えるシステムをユーザに提
供するために、動的アドレス変換機能を使用することが
できる。この見かけの主記憶装置は仮想記憶と呼ばれ、
この仮想記憶における場所を指定するために使用される
アドレスは仮想アドレスと呼ばれる。ユーザの仮想記憶
は、その構成において使用可能な主記憶装置のサイズを
超えるかも知れず、従って通常は補助記憶装置内に保持
される。この仮想記憶は、ページと呼ばれる、アドレス
のブロックから成ると考えられる。最も最近に仮想記憶
のページと呼ばれるものだけが、物理的な主記憶装置の
ブロックを占有するように割り当てられる。ユーザが主
記憶装置に存在しないページを呼ぶ時、それらは、必要
とされない可能性が強い主記憶装置内のページと置換さ
れる。記憶装置のページのスワッピングは、ユーザ・プ
ログラムによる援助なしに、オペレーティング・システ
ムによって実行することができる。
【0004】仮想記憶に関連する仮想アドレスの順序は
アドレス空間と呼ばれる。オペレーティング・システム
による適切な支援によって、多数のアドレス空間を提供
するために動的アドレス変換機能を使用することができ
る。これらのアドレス空間は、ユーザ間の分離の自由度
を提供するために使用することができる。そのような支
援は、それぞれのユーザのための完全に異なるアドレス
空間により構成することができ、これによって完全な分
離をもたらす。あるいは、それぞれのアドレス空間の一
部分を単一の共通の記憶領域にマップすることによっ
て、共有領域を提供することができる。また、半特権プ
ログラムが一つよりも多くのそのようなアドレス空間に
アクセスするのを可能とする命令が提供される。動的ア
ドレス変換は、制御レジスタにおける変換パラメータを
変更する必要なく、複数の異なるアドレス空間からの仮
想アドレスの変換を行う。これらのアドレス空間は、一
次アドレス空間、二次アドレス空間およびAR指定アド
レス空間と呼ばれる。特権プログラムは、ホーム・アド
レス空間制御モードの使用によってホーム・アドレス空
間にアクセスすることもできる。
【0005】一次アドレス、二次アドレス、AR指定ア
ドレスまたはホーム・アドレスは、異なる時刻におい
て、異なる制御レジスタから得られるか、アクセス・レ
ジスタによって指定されるセグメント・テーブル指定に
よって変換される。この選択は、現在のプログラム状況
ワード(PSW)において指定される変換モードによっ
て決定される。四つの変換モード、すなわち一次空間モ
ード、二次空間モード、アクセス・レジスタ・モード
(ARモード)およびホーム空間モードを使用すること
ができる。変換モードに応じて、異なるアドレス空間を
アドレス可能である。
【0006】CPUが一次空間モードまたは二次空間モ
ードにある時にはいつでも、CPUは、二つのアドレス
空間、すなわち一次アドレス空間および二次アドレス空
間に属している仮想アドレスを変換することができる。
CPUがアドレス・レジスタ・モードにある時にはいつ
でも、それは、最大16個のアドレス空間、すなわち一
次アドレス空間、二次アドレス空間および最大14個の
AR指定アドレス空間の仮想アドレスを変換することが
できる。CPUがホーム空間モードにある時にはいつで
も、それは、ホーム・アドレス空間の仮想アドレスを変
換することができる。
【0007】一次アドレス空間は、それが一次セグメン
ト・テーブル指定によって変換される一次仮想アドレス
から成ることをもって識別される。同様に、二次アドレ
ス空間は二次セグメント・テーブル指定によって変換さ
れる二次仮想アドレスから成り、AR指定アドレス空間
はAR指定セグメント・テーブル指定によって変換され
るAR指定仮想アドレスから成り、ホーム・アドレス空
間はホーム・セグメント・テーブル指定によって変換さ
れるホーム仮想アドレスから成る。一次および二次セグ
メント・テーブル指定は、それぞれ制御レジスタ1およ
び7内にある。AR指定セグメント・テーブル指定は、
制御レジスタ1および7並びにアドレス空間番号(AS
N)二次テーブル・エントリと呼ばれるテーブル・エン
トリ内にある。ホーム・セグメント・テーブル指定は制
御レジスタ13内にある。
【0008】選択されたセグメント・テーブル指定は、
ページ・テーブルの位置指定に使用されるセグメント・
テーブルを位置指定するために、動的アドレス変換中に
使用される。実記憶の現在の割り当てを反映するこれら
のテーブルは、仮想アドレスを実アドレスに変換するた
めに使用される。実記憶の割り当てはページ単位で起こ
り、実位置はページ内に連続的に割り当てられる。これ
らのページは、一組の順序付けされた仮想アドレスに割
り当てられても、実記憶内で隣接している必要はない。
【0009】例えば、記憶装置に対しておよび記憶装置
からデータが転送される時には、データにアクセスする
ために、仮想アドレスではなく、主記憶装置の実アドレ
スが使用される。このデータは転送期間中、実記憶内に
固定される必要がある。データを固定すなわちロックす
るために、例えばMVSの実記憶管理プログラム(RS
M)(物理的な実記憶のすべてを管理する責任がある)
によって提供されるオペレーティング・システム・サー
ビスを、一例として、データ転送期間中に主記憶装置内
のデータを固定するために使用することができる。実記
憶管理プログラムは、他の中央演算処理装置上で実行さ
れている実記憶管理プログラムによって提供されるサー
ビスを含む他のサービスがアドレス空間内のデータのペ
ージの配置を変更することが不可能となるように、転送
すべきデータのページを含むアドレス空間がロックされ
ることを必要とする。
【0010】実記憶管理プログラムによって提供される
ようなサービスを使用する実記憶のページを固定するコ
ストは非常に高い。例えば、実記憶管理プログラムを使
用する実記憶のページを固定するためには、少なくとも
800CPUサイクルかかる。この長い経路長は性能低
下を引き起こす。また、ページの後処理を変更すること
が可能な他のサービスは実行不可能であるので、全アド
レス空間がロックされた時には性能が低下する。この性
能低下は、マルチタスキングが生じるか、または多量の
記憶が必要とされるシステムにおいては著しくなる。
【0011】
【発明が解決しようとする課題】システムの性能を低下
させないロック機構の必要性が存在する。さらに、実記
憶のページが固定されるたびにアドレス空間のロックま
たはアドレス空間のシリアル化を必要としないロック方
法およびシステムの必要性も存在する。さらにまた、実
記憶のページを固定するための経路長を減少させるロッ
ク機構の必要性も存在する。従って、本発明の目的は、
新規なロック制御命令(LOCK PAGE命令)をユ
ーザ・プログラムに組み込んで実行することにより、仮
想アドレスを使用して対応する実記憶のページをロック
したり、またはアンロックしたりすると同時に、そのロ
ックされたページの実アドレスを生成できるロック/ア
ンロックの方法を提供することである。
【0012】
【課題を解決するための手段】仮想アドレスを使用する
ことによって実記憶のページをロックするための方法お
よびシステムの提供によるこの発明の原理によれば、従
来技術の欠点が克服され、付加的な利点が提供される。
【0013】この発明の原理によれば、データ処理シス
テムにおいて実記憶のページをロックするための方法が
提供される。この方法は、システム・テーブルの1つで
あるページ・テーブル・エントリ(PTE)内に存在す
るロック標識が、例えばロック状態、にセットされてい
るか否かを決定するステップと、ロックすべきページが
実記憶内に存在するか否かを決定するステップと、ロッ
ク標識がセットされておらず、かつ、ページが実記憶内
に存在する時にロック標識をアトム的に(すなわちイン
ターロック更新動作により)セットするステップとを有
する。
【0014】一実施例において、ページをロックするた
めの方法は、ページ・テーブル・エントリの第1のコピ
ーおよび第2のコピーを生成するステップをさらに有す
る。さらに、ロック標識をアトム的にセットするステッ
プとは、第1のコピーの内容をページ・テーブル・エン
トリの内容と比較するステップと、第1のコピーの内容
がページ・テーブル・エントリの内容と等しい時にペー
ジ・テーブル・エントリを第2のコピーの内容と置換す
るステップとを有するものをいう。
【0015】この発明のさらに他の形態においては、実
記憶のページをロックするためにNビットを有する命令
を実行するように構成された中央演算処理装置が提供さ
れる。この命令は、Nビットのうちの第1の部分を有す
る命令コード、第2の部分を有する第1のオペランドお
よび第3の部分を有する第2のオペランドを含む。命令
コードは、中央演算処理装置によって実行すべき命令を
示す。第1のオペランドはロックすべきページの実アド
レスを指定し、第2のオペランドはロックすべきページ
の仮想アドレスを指定する。
【0016】一実施例において、命令の実行は、ロック
動作またはアンロック動作の一方を実行させる。実行す
べき動作はロック制御ビットに基づいて選択され、ロッ
ク制御ビットが第1の状態に等しい時にはロック動作が
実行され、ロック制御ビットが第2の状態に等しい時に
はアンロック動作が実行される。
【0017】この発明のさらに他の形態においては、デ
ータ処理システム内の実記憶をシリアル化するためのシ
ステムが提供される。このシステムは、システム・テー
ブル内に存在するロック標識と、実記憶を管理するため
のオペレーティング・システム・サービスを実行するた
めの手段とを有する。このオペレーティング・システム
・サービスは、実記憶のページが再利用可能である時を
決定するための手段と、ロック標識がセットされておら
ず、かつ、実記憶のページが再利用可能である時にロッ
ク標識をアトム的にセットするための手段とを有する。
【0018】
【実施例】この発明の原理による、仮想アドレスを使用
する実記憶のページをロックするための方法およびシス
テムに関連するハードウェア構成要素の一例を図1に示
す。図1に示すように、システム100は、例えば、一
つ以上の中央演算処理装置(CPU)102、主記憶装
置104および一つ以上の記憶装置106を有する。
【0019】一般に、中央演算処理装置102は、命令
の実行、割り込み動作、タイミング機能、初期プログラ
ム・ローディングおよび他の計算機に関連する機能のた
めの順序付けおよび処理機能を有する。中央演算処理装
置102は、直接アドレス可能であり、CPUによる高
速のデータ処理を行う主記憶装置104に接続されてい
る。主記憶装置104は、CPUに物理的に集積される
か、または、独立型の装置で構成される。
【0020】主記憶装置104はまた、記憶装置106
に接続されている。データは主記憶装置104から記憶
装置106に転送され、記憶装置から主記憶装置に逆に
転送される。一実施例においては、記憶装置106に関
連するデータ転送動作は、CPU上での命令の実行と同
期しており、従ってこの動作はできるだけ速く実行する
のが有利である。
【0021】典型的には、転送すべきデータは、転送動
作の期間中実記憶に固定されなければならないデータの
ページから成る。この発明の原理による、実記憶のペー
ジを固定すなわちロックするための方法およびシステム
の一例を以下に詳細に説明する。また、もはやページを
ロックする必要がない時に実記憶のページをアンロック
するための方法およびシステムの一例も詳細に説明す
る。
【0022】図2を参照して、LOCK PAGE(L
KPG)と呼ばれる中央演算処理装置の命令について説
明する。この発明の原理によれば、LOCK PAGE
命令200は、命令コード(opコード)202、第1
のオペランド204および第2のオペランド206から
成る。opコード202は、一つ以上の中央演算処理装
置102によってどの動作を実行すべきかを指定し、任
意の固有の16進値が割り当てられる。第1のオペラン
ド204は、R1 フィールドによって指定されるレジス
タ(汎用レジスタR1 とも呼ばれる)の内容を示し、第
2のオペランド206はR2 フィールドによって指定さ
れるレジスタ(汎用レジスタR2 )の内容を示す。R1
およびR2 はここでは、汎用レジスタを示すために使用
され、任意の一つの特定の汎用レジスタと関連するもの
ではない。
【0023】この発明の原理によれば、汎用レジスタR
1 は、実記憶内の指定されたページの仮想アドレスに対
応する実アドレスの値を記憶するために使用され(以下
に説明する)、汎用レジスタR2 は指定されたページの
仮想アドレスを含む。
【0024】LOCK PAGE命令200は、例え
ば、ユーザ・プログラムによって出される。LOCK
PAGE命令200の実行に関連する論理フローの一例
を図3に示し、以下に詳細に説明する。
【0025】図3を参照すると、一実施例においては、
まず、照会302の「GR0内のビット16〜21、2
3=0?」で、汎用レジスタ0のビット16〜21およ
び23が0に等しいか否かについて決定が行われる。も
しこれらのビットが0に等しくなければ、ステップ30
4の「例外」で指定例外が認識され、ステップ306の
「LKPGの終了」でLOCK PAGE命令が終了す
る。一方、もしすべてのビットが0に等しければ、照会
308の「DATはオン?」で、動的アドレス変換(D
AT)機能(以下に説明する)が使用可能か否かについ
て決定が行われる。もしDATがオフであるならば、再
びステップ304の「例外」で指定例外が認識され、ス
テップ306の「LKPGの終了」でLOCK PAG
E命令が終了する。
【0026】しかしながら、DATが使用可能であると
すると、照会310の「ARモードはオン?」で、アク
セス・レジスタ・モード(ARモード)がオンか否かを
決定するために照会が行われる。もしアクセス・レジス
タ・モードがオフであれば、ステップ311の「STD
にアクセス」で、いくつかの制御レジスタのうちの一つ
からセグメント・テーブル指定が選択される。特に、も
し一次空間モードが指定されれば、制御レジスタ1(図
4中のCR1に対応)内に含まれる一次セグメント・テ
ーブル指定が選択される。同様に、もし二次空間モード
またはホーム空間モードが指定されれば、制御レジスタ
7(図4中のCR7に対応)内に存在する二次セグメン
ト・テーブル指定または制御レジスタ13(図示せず)
内に含まれるホーム・セグメント・テーブル指定がそれ
ぞれ選択される。選択されたセグメント・テーブル指定
は、以下に説明するように、動的アドレス変換中に使用
される。
【0027】ステップ310に戻り、アクセス・レジス
タ・モードがオンであるとすると、ステップ312の
「ARTを実行」で、アクセス・レジスタ変換が、図4
を参照して以下に説明するように実行される。
【0028】以下により完全に説明されるように、動的
アドレス変換によって使用されるセグメント・テーブル
指定(STD)を得るために、アクセス・レジスタ・モ
ードがオンの時に、アクセス・レジスタ変換が使用され
る。好ましい一実施例においては、アクセス・レジスタ
変換は、LOCK PAGE命令200の汎用レジスタ
2 に関連するアクセス・レジスタ上で実行される。特
に、もし汎用レジスタR2 が汎用レジスタ4に対応する
ならば(前述のように、R1 およびR2 はコンピュータ
・システムの汎用レジスタのいずれか一つに対する一般
的な用語である)、アクセス・レジスタ変換はアクセス
・レジスタ4上で実行される。指定されたアクセス・レ
ジスタの内容は、アクセス・リスト・エントリ・トーク
ン(ALET)404と呼ばれ、これはSTD402を
得るためにアクセス・レジスタ変換中に使用される。
【0029】アクセス・レジスタ変換中に、もしALE
T404が16進値の00000000の値を有するな
らば、制御レジスタ1内に存在する一次セグメント・テ
ーブル指定406が得られ、同様に、もしALET40
4が16進値の00000001の値を有するならば、
制御レジスタ7内に存在する二次セグメント・テーブル
指定408が得られる。得られたSTD402は次に、
以下にさらに説明するように、動的アドレス変換中に使
用される。ALET404が16進値の0000000
1よりも大きい時には、以下に詳細に説明するように、
指定されたセグメント・テーブル指定がアドレス空間番
号(ASN)二次テーブル・エントリ410から得られ
る。(以下に説明する、ASN二次テーブル・エントリ
410からSTDを得る処理は、ALET404が16
進値の00000000または00000001の値を
有する時には適用することができない。)
【0030】ALETの値が16進値の0000000
0または00000001と異なるならば、ビットがす
べて0に等しいことを確認するために、412でALE
T404の左端の7ビットが検査される。もしそれらが
0に等しくなければ、条件コード3(例外条件が存在す
る)が認識され、LOCK PAGE命令は終了する。
そうでなければ、処理が続く。条件コード機構は周知で
あり、プログラム状況ワード内に存在する。このプログ
ラム状況ワードも周知であり、IBM システム/39
0の計算機アーキテクチャ内に存在する。条件コードの
最も典型的な従来技術による使用は、二つの数の算術的
比較の結果を報告することであり、うまくいかなかった
アドレス変換を報告することではない。しかしながら、
この発明のLOCK PAGE命令は条件コードによっ
て例外条件を報告するので、プログラムの割り込み(典
型的にはそのような条件を報告するために使用される)
の必要性がなくなり、従ってユーザ・プログラムの異常
な終了を生じるオペレーティング・システムの割り込み
処理の悪影響を回避することができる。
【0031】ALET404は、一次リスト・ビット
(P)414、アクセス・リスト・エントリ順序番号
(ALESN)416およびアクセス・リスト・エント
リ番号(ALEN)418を含む。一次リスト・ビット
414は、有効アクセス・リスト420がディスパッチ
可能な装置のアクセス・リストまたは一次空間アクセス
・リストであるか否かを指定する。ビット414が0に
等しければ、有効アクセス・リスト420はディスパッ
チ可能な装置のアクセス・リストである。同様に、もし
ビット414が1に等しければ、有効アクセス・リスト
420は一次空間アクセス・リストである。
【0032】有効アクセス・リスト420は、有効アク
セス・リスト指定422によって指定される。有効アク
セス・リスト指定422は、有効アクセス・リスト起点
(ALO)424および有効アクセス・リスト長(AL
L)426を含む。アクセス・レジスタ変換中には、4
28で、右端に4個の0が付属したALEN418が有
効アクセス・リスト起点424によって指定される31
ビットの実アドレスに付加される。(一例においては、
31ビットの実アドレスを形成するためにALO424
の右端に7個の0が付属される。)428でのこの付加
の結果は、有効アクセス・リスト420内に存在する指
定されたアクセス・リスト・エントリ430の実アドレ
スである。その後、ALEN418は、ALEN418
がリスト420内のエントリ430を指定するか否かを
決定するために、左端に4個の0が付属した有効アクセ
ス・リスト長426と比較される。もし指定されたエン
トリがリストの境界の外側にあるならば、条件コード3
が認識され、LOCK PAGE命令の実行は終了す
る。
【0033】上記に加えて、432で、ALET404
内に存在するアクセス・リスト・エントリ順序番号41
6がアクセス・リスト・エントリ430内に存在するア
クセス・リスト・エントリ順序番号(ALESN)43
4と比較される。これらの値が等しくなければ、条件コ
ード3が認識され、LOCK PAGE命令の実行は終
了する。そうでなければ、処理が続く。
【0034】アクセス・リスト・エントリ430は、ア
クセス・リスト・エントリ番号無効ビット(I)43
6、私用ビット(P)438、ALESN434、アク
セス・リスト・エントリ権限インデックス(ALEA
X)440、アドレス空間番号二次テーブル・エントリ
(ASTE)アドレス442およびアドレス空間番号二
次テーブル・エントリ順序番号(ASTESN)444
を含む。これらのフィールドのそれぞれについて以下に
説明する。
【0035】ALEN無効ビット436は、アクセス・
リスト・エントリ430の内容が有効であるか否かを示
す。ビット436の値は、446で、それが0に等しい
か否かを決定するために検査される。もしそれが0に等
しければ、アクセス・リスト・エントリ430の内容は
有効である。しかしながら、もしビット436が1に等
しければ、その内容は信用することができず、条件コー
ド3が認識され、LOCK PAGE命令の実行は終了
する。
【0036】アクセス・リスト・エントリ430の内容
が有効であることを決定した後、アドレス空間番号二次
テーブル・エントリ・アドレス442の右端に6個の0
を付属させることによって得られるアドレス空間番号二
次テーブル・エントリ410が有効であるか否かについ
ての決定が行われる。特に、アドレス空間番号二次テー
ブル・エントリ410内に存在するアドレス空間番号二
次テーブル・インデックス(ASX)無効ビット(I)
443が、445で、エントリ410が有効であるか否
かを決定するために検査される。無効ビット443が0
に等しければ、ASTEの内容は有効であり、処理が続
く。そうでなければ、もしビット443が1に等しけれ
ば、その内容は信用することができず、条件コード3が
認識され、LOCK PAGEは終了する。
【0037】ASTE410内には、アドレス空間番号
二次テーブル・エントリ順序番号(ASTESN)46
2も存在し、これは464でASTESN444と比較
される。ASTESN444の値がASTESN462
の値と等しくなければ、条件コード3が認識され、LO
CK PAGEの実行は終了する。そうでなければ、L
OCK PAGEの実行が続く。
【0038】アクセス・リスト・エントリおよびアドレ
ス空間番号二次テーブル・エントリの内容が有効である
か否かの決定に加えて、アクセス・レジスタ変換におい
てアクセス・リスト・エントリを使用することをプログ
ラムが許可されているか否かを決定するために検査が行
われる。私用ビット438がこの決定に使用される。4
48で、それが0に等しいか否かが検査される。それが
0に等しいとすると、任意のプログラムがアクセス・リ
スト・エントリ430を使用することを許可されてい
る。しかしながら、もしビット438が1に等しけれ
ば、以下に説明するように、ALEAX440によって
許可が決定される。
【0039】特別なプログラムがアクセス・レジスタ変
換中にアクセス・リスト・エントリ430を使用するこ
とを許可されているか否かを決定するために、ビット4
38に加えてALEAX440が使用される。ALEA
X440は、450で、制御レジスタ8内に存在する拡
張権限インデックス(EAX)452と比較される。そ
の結果が等しければ、許可が認められる。しかしなが
ら、もしALEAX440がEAX452に等しくなけ
れば、EAX452は、権限テーブル458(authoriza
tion table) から二次ビット456を選択するために、
権限テーブル起点(ATO)454と関連して使用され
る。特に、権限テーブル458において1バイトの31
ビット実アドレスを得るために、右端に2個の0が付属
したATO454が、460において、左端に17個の
0が付属したEAX452に付加される。選択されたバ
イトは、それぞれ2ビットの四つの権限テーブル・エン
トリを含む。権限インデックスの右端の2ビット、すな
わち制御レジスタ8のビット14および15は、四つの
エントリのうちの一つを選択するために使用される。次
に、権限試験は二次アドレス空間番号に対するものであ
るから、右のビット(二次ビット456)が試験され
る。二次ビット456が1に等しいとすると、許可が認
められる。しかしながら、もし二次ビット456が0に
等しければ、条件コード3が認識され、LOCK PA
GEの実行が終了する。
【0040】アクセス・リスト・エントリ430および
アドレス空間番号二次テーブル・エントリ410の内容
が有効であり、プログラム権限が適切であるとすると、
ASTE410内に存在するセグメント・テーブル指定
460がアクセス・レジスタ変換中にアクセスされ、得
られたSTD402として使用される。
【0041】性能を向上させるため、アクセス・レジス
タ変換機構は、アクセス・リスト、ASN二次テーブル
および権限テーブルにおいて指定されたアクセス・リス
ト指定および情報が、ARTルックアサイド・バッファ
(ALB)466と呼ばれるバッファ内に保持されるよ
うに実行される。そして、ALB466内に記憶された
情報を使用して次のアクセス・レジスタ変換が実行され
る。ARTルックアサイド・バッファは知られており、
従って詳細は説明しない。(ARTルックアサイド・バ
ッファに関するより詳細な情報に関しては「IBM シ
ステム/390の動作原理」、資料番号SA22−72
01−00を参照されたい。)
【0042】図3を参照すると、適切なセグメント・テ
ーブル指定を得た後、ステップ314の「IPTE信号
をロック・アウト」で、無効ページ・テーブル・エント
リ(IPTE)命令によって出される任意の信号が、L
OCK PAGE命令が実行されている中央演算処理装
置上で同報通信されることが防止される。これは、ステ
ップ316の「DATを実行」(以下に説明する)での
動的アドレス変換から得られる実アドレスが、IPTE
命令によって変化せず、有効のままであることを保証す
る。
【0043】図5を参照して動的アドレス変換を詳細に
説明する。動的アドレス変換は、仮想アドレスを対応す
る実アドレスに変換する処理である。仮想アドレスは、
一次仮想アドレス、二次仮想アドレス、AR指定仮想ア
ドレスまたはホーム仮想アドレスである。これらのアド
レスは、一次、二次、AR指定またはホーム・セグメン
ト・テーブル指定によってそれぞれ変換される。適切な
セグメント・ テーブル指定の選択については前に説明
した。
【0044】前述のようにアクセス・レジスタ変換によ
って得られたか、制御レジスタ1、7または13から得
られた選択されたセグメント・テーブル指定502は、
有効セグメント・テーブル指定504と呼ばれる。有効
セグメント・テーブル指定504は、セグメント・テー
ブル起点(STO)506およびセグメント・テーブル
510の長さ(STL)508を含む。セグメント・テ
ーブル510からエントリ516を選択するために、右
端に12個の0が付属したSTO506(有効セグメン
ト・テーブル指定504のビット1〜19)が、右端に
2個の0、左端に18個の0が付属した仮想アドレス5
14のセグメント・インデックス(SX)512に付加
される。
【0045】セグメント・テーブル・エントリ516
は、ページ・テーブル520内のエントリ518を指定
するために使用される。エントリ516は、ページ・テ
ーブル起点(PTO)522、セグメント無効ビット
(I)523およびページ・テーブル長(PTL)52
4を含む。セグメント・テーブル・エントリ516のビ
ット26に対応するセグメント無効ビット(I)523
は、セグメント・テーブル・エントリ516に関連する
セグメントが使用可能であるか否かを制御する。無効ビ
ット523が1である時、セグメント・テーブル・エン
トリ516は変換のために使用することができず、従っ
て条件コード3が出され、LOCK PAGE命令の実
行は終了する。しかしながら、無効ビット523が0の
時には、DAT処理が続く。
【0046】ページ・テーブル・エントリ518を選択
するために、右端に6個の0が付属したセグメント・テ
ーブル・エントリ516のビット1〜25から成るペー
ジ・テーブル起点522が、右端に2個の0、左端に2
1個の0が付属した仮想アドレス514のページ・イン
デックス(PX)部分526に付加される。
【0047】この発明の原理によれば、ページ・テーブ
ル・エントリ518は、ページ・フレーム実アドレス
(PFRA)528、ページ無効ビット(I)529お
よびロック標識ビット(L)530を含む。これらのフ
ィールドのそれぞれは以下に説明される。
【0048】PFRA528のビット1〜19は、汎用
レジスタR2 から得られる仮想アドレス514の変換を
表す実アドレス531の左端のビットを提供する。左端
のビットが右端の仮想アドレス514の12ビットのバ
イト・インデックス(BX)フィールド532と連結さ
れた時、31ビットの実アドレス531が得られる。
【0049】ページ無効ビット529(ページ・テーブ
ル・エントリ518のビット21)は、ページ・テーブ
ル・エントリ518に関連するページが主(実)記憶装
置内で使用可能であるか否かを制御する。セグメント無
効ビットの場合と同様に、もしページ無効ビット529
が1であるならば、ページ・テーブル・エントリは変換
のために使用することができず、従って条件コード3が
認識され、LOCKPAGEは終了する。一方、もしペ
ージ無効ビット529が0に等しければ、処理が続く。
【0050】この発明の原理によれば、仮想アドレス5
14によって指定されたページがロックされているか否
かを決定するために、ロック・ビット530(ページ・
テーブル・エントリ518のビット31)が使用され
る。以下にさらに説明するように、もしロック・ビット
530が0に等しければ、ページはロックされておら
ず、使用可能である。しかしながら、もしロック・ビッ
ト530が1に等しければ、ページはロックされてお
り、従ってデータは例えば記憶装置に転送される。
【0051】実または絶対記憶における変換テーブルの
参照に関連する遅延を解消するために、テーブルからフ
ェッチされた情報は、変換ルックアサイド・バッファ
(TLB)534にも入れられ、同一のテーブル・エン
トリを含む次の変換(前に説明した)がTLB534に
記録された情報を使用することによって実行される。T
LB534に関連する動作は知られており、従ってここ
では詳細に説明しない(「IBM システム/390の
動作原理」、資料番号SA22−7201−00を参照
されたい)。しかしながら、この発明の原理によれば、
動的アドレス変換中の例外(例えば、アドレッシング例
外、セグメント変換例外、変換指定例外、ページ変換例
外など)またはTLB動作を通常引き起こす任意の条件
が代わりに条件コード3を出し、IPTEからの任意の
保留同報通信が発生するのを可能とし、その後LOCK
PAGEの実行を終了する。
【0052】再び図3を参照すると、動的アドレス変換
の実行後に、ステップ318の「PTEの内容をコピー
1にフェッチ」で、選択されたページ・テーブル・エン
トリの内容のコピーが「COPY1」と呼ばれる変数に
記憶される。次に、ロック動作またはアンロック動作を
実行すべきか否かの決定が行われる。すなわち、この発
明の原理によれば、照会320の「ロック制御ビット=
1?」でロック制御ビット(汎用レジスタ0内のビット
22)の値が検査され、もしロック制御ビットの値が1
に等しければ、ロック動作が実行されている。同様に、
もしロック制御ビットの値が0に等しければ、アンロッ
ク動作が実行されている。
【0053】ロック動作が実行されている時に、照会3
22の「COPY1内のロック・ビット=0?」で、C
OPY1内に存在するロック・ビットが0に等しいか否
かについて決定が行われる。COPY1のロック・ビッ
トが0でないとすると、ステップ324の「CC=1」
で条件コード1(ロック・ビットはすでに1である)が
認識され、ステップ326の「IPTE信号を許可」で
IPTE信号が許可され、ステップ306の「LKPG
の終了」でLOCK PAGEの実行が終了する。
【0054】照会322に戻り、もしロック・ビットが
0に等しいと、ステップ328の「ロック・ビット=1
でCOPY2を生成」で、COPY2と呼ばれる変数が
生成される。COPY2は、ロック・ビットが1に等し
くセットされていることを除いて、COPY1と同一で
ある。
【0055】COPY2の生成後、不可分のインターロ
ック更新参照(interlocked-updatereference=アトム
的動作とも呼ばれる)が実行される。この参照において
は、COPY1の内容がページ・テーブル・エントリの
内容と比較され、もしそれらが等しければ、ステップ3
30の「比較および置換」で、ページ・テーブル・エン
トリの内容がCOPY2の内容と置換される。もしそれ
らが等しくなければ、ページ・テーブル・エントリは置
換されない。比較および置換動作はアトム的であるの
で、一旦動作が開始して特定の記憶場所のフェッチが行
われると、他の中央演算処理装置によるインターロック
更新参照に関連するすべての記憶アクセスとフェッチお
よび記憶アクセスとが、フェッチと比較および置換動作
の記憶アクセスとの間に同一の記憶場所に発生するのが
防止される。
【0056】比較および置換動作が終了した後、照会3
32の「PTEは置換されたか?」で、ページ・テーブ
ル・エントリの内容が置換されたか否かの決定が行われ
る。もしページ・テーブル・エントリの内容が置換され
なかったならば、フローはステップ318に戻り、ペー
ジ・テーブル・エントリの内容は再びCOPY1にフェ
ッチされる。しかしながら、もしページ・テーブル・エ
ントリの内容が置換されたら、それが1に等しいか否か
を見るために、照会334の「ロック制御ビット=1
?」で、汎用レジスタ0内のロック制御ビットが検査さ
れる。
【0057】ロック制御ビットが1であり、従ってロッ
ク動作が実行されているとすると、LOCK PAGE
命令の第1のオペランド(R1 )がロックされたページ
の実アドレスによって置換される。特に、第1のオペラ
ンドは、ステップ338の「第1のオペランドを置換」
で、左端に1個の0が付属したページ・テーブル・エン
トリのビット1〜19および右端に付属した第2のオペ
ランド(R2 )のビット20〜31によって置換され
る。次に、条件コード0(ロック・ビットはロック動作
中1にセットされる)がセットされ、フローはステップ
326の「IPTE信号を許可」に戻る。その後、LO
CK PAGE命令のロック動作の実行が終了する。
【0058】しかしながら、もし照会334の結果がロ
ック制御ビットが0に等しいことを示すならば、以下に
説明するアンロック動作が実行されている。
【0059】照会320に戻り、アンロック動作につい
て説明する。汎用レジスタ0内のロック制御ビットが0
であり、従ってアンロック動作が実行されている時、照
会340の「COPY1内のロック・ビット=1?」
で、COPY1(COPY1はページ・テーブル・エン
トリのコピーであり、従ってCOPY1内のロック・ビ
ットはページ・テーブル・エントリ内のロック・ビット
530と等価である)内のロック・ビットが1に等しい
か否かについて照会が行われる。COPY1のロック・
ビットが1に等しくない時には、ステップ324の「C
C=1」で条件コード1(ロック・ビットはすでに0で
ある)がセットされ、ステップ326の「IPTE信号
を許可」でIPTE信号が許可され、ステップ306の
「LKPGの終了」でLOCK PAGEが終了する。
【0060】しかしながら、もしロック・ビットが1に
等しければ、ステップ342の「ロック・ビット=0で
COPY2を生成」で、COPY1のコピーを取り、C
OPY2内のロック・ビットを0にセットすることによ
って、COPY2が生成される。これによって、以下に
さらに説明するように、ページはアンロックされる。ロ
ック・ビットを0にセットした後、フローはステップ3
30に行き、LOCKPAGEの実行が続く。
【0061】特に、ステップ330の「比較および置
換」で、上述のように不可分のインターロック更新参照
が実行される。COPY1の内容は、ページ・テーブル
・エントリの内容と比較され、もしそれらが等しけれ
ば、ページ・テーブル・エントリの内容はCOPY2の
内容と置換される。もしそれらが等しくなければ、ペー
ジ・テーブル・エントリは置換されない。
【0062】比較および置換動作が終了した後、照会3
32の「PTEは置換されたか?」で、ページ・テーブ
ル・エントリの内容が置換されたか否かについて決定が
行われる。もしページ・テーブル・エントリの内容が置
換されなかったならば、フローはステップ318に戻
り、ページ・テーブル・エントリの内容が再びCOPY
1にフェッチされる。しかしながら、もしページ・テー
ブル・エントリの内容が置換されたならば、それが1に
等しいか否かを見るために、照会334の「ロック制御
ビット=1?」で、汎用レジスタ0内のロック制御ビッ
トが検査される。
【0063】ロック制御ビットが0であり、従ってアン
ロック動作が実行されているとすると、ステップ336
の「CC=0」で条件コード0(ロック・ビットはアン
ロック動作中0にセットされる)が認識され、フローは
ステップ326の「IPTE信号を許可」に戻る。その
後、LOCK PAGEの実行は終了する。しかしなが
ら、もしロック制御ビットが1に等しければ、上述のロ
ック動作が実行されている。
【0064】前述のように、この発明のLOCK PA
GE命令は、仮想アドレスを使用する実記憶のページを
ロックまたはアンロックするため、および、ロックされ
たページの実アドレスを得るために使用される。LOC
K PAGE中に得られる実アドレスは次に、データの
実フレームを位置指定するために使用される。データの
実ページがロックされたとすると、このページは、例え
ば、記憶装置に転送される。
【0065】実記憶は、MVSシステムで使用可能な実
記憶管理プログラム(RSM)のようなオペレーティン
グ・システム・サービスによって管理される。RSM
は、ページおよびセグメント故障の処理と、実記憶のペ
ージが使用されておらず、従って再利用可能である時の
決定とを含む、物理的実記憶のすべてを管理する責任が
ある。
【0066】実記憶の適切な管理を保証するために、こ
の発明の原理によれば、この発明のLOCK PAGE
機能との交差を提供するため、実記憶管理プログラムは
変更されている。特に、RSMは、それがそのページを
スチールまたは再利用する前にLOCK PAGEによ
ってページが固定されているか否かを決定する必要があ
る。この検査を実行するための技術を、図6を参照して
以下に説明する。
【0067】図6を参照すると、RSMが実記憶のペー
ジを再利用したい時、ステップ602の「RSMレベル
・シリアル化を得る」において、RSMは、アドレス空
間レベルのロックを取得する。ロック取得のアドレス空
間内では任意のページの処理がシリアル化され、すなわ
ち逐次化され、例えば他のCPU上で実行されている他
のどのようなRSM機能もこのロック取得のアドレス空
間内に存在するページの処理を変更することができな
い。アドレス空間レベルのロックを取得した後、ステッ
プ604の「仮想記憶ページを位置指定」において、R
SMは、再利用のための候補である仮想記憶ページを見
付ける。例えば、RSMは、インターバル・カウントを
利用して、所定数のマシン・サイクルの間、参照されて
いなかったページを捜し、その未参照ページを再利用の
ための候補として見付ける(すなわち位置指定する)。
候補の仮想記憶ページが位置指定された後、照会606
の「ページは使用可能か?」で、主記憶装置内でページ
が有効であり(上述のように、これは無効ビット529
(図5)を検査することによって達成される)、ロック
のために使用可能である(他のサービス、例えば、MV
Sエンタープライズ・システム・アーキテクチャ・ペー
ジ・フィックス・サービスによってページが固定されて
いないことを保証する)か否かについて決定が行われ
る。もしロックのためにページが使用不可能であれば、
フローはステップ604の「仮想記憶ページを位置指
定」に戻る。一方、もしページが使用可能であれば、ス
テップ608の「比較およびスワップ」で、MVSで使
用可能な比較およびスワップ動作が実行される。
【0068】比較およびスワップ動作中、ページ・テー
ブル・エントリ518内に存在するロック・ビット53
0は0から1に変更され、従ってページがロックされて
いることを示す。特に、ロック・ビット530の内容は
特定の記憶場所からフェッチされ、従って同一の場所に
1が記憶される。ここで使用される比較およびスワップ
動作は、アトム的動作またはインターロック更新参照と
も呼ばれる。言い換えると、一旦比較およびスワップ動
作が開始すると、他の中央演算処理装置によるインター
ロック更新参照に関連するすべての記憶アクセスとフェ
ッチおよび記憶アクセスとが、フェッチと比較およびス
ワップ(インターロック更新参照)の記憶アクセスとの
間に同一の記憶場所に発生するのが防止される。当業者
には、動作がアトム的である限り、ロック・ビットをセ
ットするために他の動作または方法を使用してもよいこ
とが明らかである。この発明の原理によりロック・ビッ
トがセットされるように実記憶管理プログラムのシリア
ル化機構(制御機構)を変更することによって、LOC
K PAGEと実記憶の管理者との間に交差が提供され
る。
【0069】比較およびスワップ動作の終了後、照会6
10の「比較およびスワップはうまく行われたか?」
で、動作がうまく終了したか否かについて決定が行われ
る。もし動作がうまく行われなかったら(例えば、ペー
ジがLOCK PAGEによってすでに固定されてい
る)、記憶の他の仮想ページが位置指定されるようにフ
ローは再びステップ604に戻る。しかしながら、比較
およびスワップ動作がうまく行われたとすると、ページ
はロックされていると考えられ、もしLOCK PAG
E命令が出されればそれは失敗する。その後、ステップ
612の「IPTE」で無効ページ・テーブル・エント
リ(IPTE)命令が出される。上述のように、IPT
Eは、ページ無効ビット529(図5)を1にセットす
ることによってページを無効にする。
【0070】上記に加えて、ステップ614の「ロック
・ビットをリセット」でロック・ビットを0にセットす
ることによってロック・ビット530がリセットされ、
ステップ616の「ページ再利用を終了」でページ再利
用技術は終了する。その後、ステップ618の「RSM
レベル・シリアル化を解除」で、他のサービスがアドレ
ス空間内に存在するページの後処理を変更するように、
実記憶管理プログラムによって保持されたアドレス空間
レベル・ロックが解除される。
【0071】上述のように、仮想アドレスを使用する実
記憶のページをロックおよびアンロックするための方法
およびシステムについて説明した。この方法およびシス
テムは、所望のページだけをロックすることができ、そ
の処理をシリアル化するためにアドレス空間レベル・ロ
ックを必要としない。また、RSMのようなオペレーテ
ィング・システム・サービスとLOCK PAGEとの
間の交差についても説明した。RSMは、ページ再利用
中にIPTEを実行する前に、もしそれがすでにセット
されていなければロック・ビットを1にセットする比較
およびスワップ動作を実行するように変更された。この
ため、交差が得られた。
【0072】以上好ましい実施例について詳細に説明し
たが、当業者には、この発明の思想から逸脱しない限
り、種々の変形、付加、置換などを行うことができ、従
ってこれらは添付の請求項に記載されているようにこの
発明の範囲内であると考えられることが明らかである。
【図面の簡単な説明】
【図1】この発明の原理による、ページをロックするた
めのシステムのハードウェア構成要素の一例によるブロ
ック図である。
【図2】この発明のLOCK PAGE命令のブロック
図である。
【図3】この発明の原理による、図2のLOCK PA
GE命令の一例による論理フロー図である。
【図4】この発明の原理により使用されるアクセス・レ
ジスタ変換の一例による論理フロー図である。
【図5】この発明の原理により使用される動的アドレス
変換処理の一例による論理フロー図である。
【図6】この発明の原理による、実記憶のページを再利
用するためのオペレーティング・システム・サービスの
一例による論理フロー図である。
【符号の説明】
102 中央演算処理装置 104 主記憶装置 106 記憶装置
フロントページの続き (72)発明者 デイビッド・クリー・マナーズ アメリカ合衆国、ニューヨーク州ワッピ ンジャーズフォールズ、オーチャードド ライブ 17 (72)発明者 ジェフリ・マーク・ニック アメリカ合衆国、ニューヨーク州フィッ シュキル、プリマスロード 43 (56)参考文献 特開 平3−3057(JP,A)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくとも1つの中央処理装置(以下、
    CPUと呼ぶ)を含むデータ処理システムの実記憶にお
    ける少なくとも1ページ・フレームのロックおよびアン
    ロックを選択的に制御するための方法であって、 (A)指定した仮想記憶ページをロックまたはアンロッ
    ク制御するために所定のレジスタ内のロック制御フィー
    ルドをユーザの指示の下にロックまたはアンロックの制
    御状態へ予めセットしておくステップと、 (B)ロックまたはアンロックすべき少なくとも1つの
    仮想記憶ページを指定するための仮想アドレス・オペラ
    ンドを有する少なくとも1つのロック制御命令(以下、
    LKPG命令と呼ぶ)を前記CPU上を走行するユーザ
    ・プログラム内に組み入れることにより、ロックまたは
    アンロックすべき各仮想記憶ページを選択するためのス
    テップと、 (C)前記選択済みの仮想記憶ページを前記レジスタ内
    の前記ロック制御フィールドの制御状態に依存してロッ
    クまたはアンロックするために前記LKPG命令を組み
    込んでいる前記プログラムを実行するためのステップで
    あって、各LKPG命令の実行は、 a)対応実記憶ページ・フレームのロックおよびアンロ
    ック状態を制御するためのロック標識および対応実記憶
    ページ・フレームの実記憶内の駐在/不在を表わすペー
    ジ有効/無効の表示を含んでいるシステム・テーブルの
    ページ・テーブル・エントリ(以下、PTEと呼ぶ)に
    アクセスして前記各LKPG命令内の前記各仮想アドレ
    ス・オペランドを対応する実記憶ぺージ・フレームの実
    アドレスへ変換するためのステップ、ならびに b)前記ページ有効/無効表示に基づいて、対応実記憶
    ページ・フレームが実記憶内に駐在しているか不在であ
    るかを判定し、そして、不在の場合に対応実記憶ページ
    ・フレームを実記憶内にコピーさせるためのステップを
    含み、 (D)各LKPG命令の実行中に前記所定のレジスタ内
    の前記ロック制御フィールドの前記制御状態をテストす
    ると共に、該LKPG命令実行中に、各対応PTE内の
    前記ロック標識を前記ロック制御フィールドの前記制御
    状態にセットして該対応PTE内において対応実記憶ペ
    ージ・フレームに対するロックまたはアンロック状態を
    指示させ、それにより前記プログラムの実行中に、前記
    実記憶内の少なくとも1つの対応実ページ・フレームを
    ロックしたりアンロックしたりするためのステップと、 から成る方法。
  2. 【請求項2】 前記各LKPG命令の実行ステップは、
    所定の汎用レジスタ内の前記ロック制御フィールドにア
    クセスするためのステップを含み、該ロック制御フィー
    ルドに対して各ユーザ・プログラムが該プログラムに関
    連した1組のページのうちの所定数のページのロックお
    よびアンロック状態を選択的に制御する請求項1に記載
    の方法。
  3. 【請求項3】 前記各LKPG命令の実行ステップは、
    前記汎用レジスタの1つにストアされている仮想アドレ
    ス・オペランドにアクセスするステップを含む請求項2
    に記載の方法。
  4. 【請求項4】 前記PTEのコピーである第1および第
    2のPTEコピーを実記憶内に作成し、その際、第2P
    TEコピー内のロック標識を前記ロック制御フィールド
    の前記制御状態にセットさせる請求項3に記載の方法。
  5. 【請求項5】 前記判定ステップは、前記PTE内のペ
    ージ無効ビットを、当該ぺージが実記憶内に駐在してい
    ることを示す有効状態に関して、テストするステップを
    含み、 データ処理システムの仮想記憶内の所定の1組のページ
    のロックおよびアンロック状態を選択的に制御するため
    の請求項1に記載の方法。
  6. 【請求項6】 請求項1に記載の方法を使用するデータ
    処理システムの実記憶の予め選択した仮想記憶ページを
    アンロックするための、各LKPG命令を実行する方法
    であって、 ユーザ・プログラムの実行に先立って、前記ロック制御
    フィールドをアンロック制御状態にセットするためのス
    テップと、 ユーザ・プログラム中の各LKPG命令のためのインタ
    ーロック更新動作を使用して実記憶内に駐在する選択し
    た各ページ・フレームに対応する各PTE内のロック標
    識を前記ロック制御フィールドの前記アンロック制御状
    態にセットすることにより、前記ユーザ・プログラムに
    より制御される所定数のページに対応する実記憶内の各
    ページ・フレームがアンロックされるように各LKPG
    命令を実行するステップと、 を含む請求項1に記載の方法。
  7. 【請求項7】 請求項1に記載の方法を使用するデータ
    処理システムにおけるユーザ・プログラムの実行の間仮
    想記憶ページを実記憶に固定するための方法であって、 ユーザ・プログラムの実行に先立って、前記ロック制御
    フィールドをロック制御状態にセットするためのステッ
    プと、 インターロック更新動作を使用して各選択した仮想記憶
    ページに対応する各PTE内のロック標識を前記ロック
    制御フィールドの前記ロック制御状態にセットすること
    により、ユーザ・プログラム内の1組のLKPG命令を
    実行するステップと、 を含む請求項1に記載の方法。
JP5098274A 1992-05-20 1993-04-26 実記憶のページをロックするための方法 Expired - Lifetime JP2675961B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88627392A 1992-05-20 1992-05-20
US886273 1992-05-20

Publications (2)

Publication Number Publication Date
JPH0652050A JPH0652050A (ja) 1994-02-25
JP2675961B2 true JP2675961B2 (ja) 1997-11-12

Family

ID=25388752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5098274A Expired - Lifetime JP2675961B2 (ja) 1992-05-20 1993-04-26 実記憶のページをロックするための方法

Country Status (2)

Country Link
US (1) US5613086A (ja)
JP (1) JP2675961B2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946711A (en) * 1997-05-30 1999-08-31 Oracle Corporation System for locking data in a shared cache
US6574720B1 (en) 1997-05-30 2003-06-03 Oracle International Corporation System for maintaining a buffer pool
US6078994A (en) * 1997-05-30 2000-06-20 Oracle Corporation System for maintaining a shared cache in a multi-threaded computer environment
US6324623B1 (en) 1997-05-30 2001-11-27 Oracle Corporation Computing system for implementing a shared cache
US6347364B1 (en) * 1998-11-20 2002-02-12 International Business Machines Corp. Schedulable dynamic memory pinning
US7197585B2 (en) * 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
US7624237B2 (en) * 2006-05-03 2009-11-24 International Business Machines Corporation Compare, swap and store facility with no external serialization
US8176279B2 (en) * 2008-02-25 2012-05-08 International Business Machines Corporation Managing use of storage by multiple pageable guests of a computing environment
US7941616B2 (en) * 2008-10-21 2011-05-10 Microsoft Corporation System to reduce interference in concurrent programs
US8914586B2 (en) 2012-07-31 2014-12-16 Advanced Micro Devices, Inc. TLB-walk controlled abort policy for hardware transactional memory
US8943278B2 (en) * 2012-07-31 2015-01-27 Advanced Micro Devices, Inc. Protecting large regions without operating-system support
US9378572B2 (en) 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US9971397B2 (en) 2014-10-08 2018-05-15 Apple Inc. Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US9697143B2 (en) 2015-09-30 2017-07-04 International Business Machines Corporation Concurrent virtual storage management
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10572390B2 (en) 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US10198364B2 (en) 2016-03-31 2019-02-05 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10591976B2 (en) 2016-11-10 2020-03-17 Apple Inc. Methods and apparatus for providing peripheral sub-system stability
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between processors
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11610004B2 (en) 2021-04-14 2023-03-21 Bank Of America Corporation System for implementing enhanced file encryption technique
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4373179A (en) * 1978-06-26 1983-02-08 Fujitsu Limited Dynamic address translation system
US4445176A (en) * 1979-12-28 1984-04-24 International Business Machines Corporation Block transfers of information in data processing networks
US4891749A (en) * 1983-03-28 1990-01-02 International Business Machines Corporation Multiprocessor storage serialization apparatus
JPS6079460A (ja) * 1983-10-07 1985-05-07 Nec Corp 密結合多重演算装置における制御方式
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
JPH0658649B2 (ja) * 1985-10-28 1994-08-03 株式会社日立製作所 仮想記憶装置における領域管理方法
US4718008A (en) * 1986-01-16 1988-01-05 International Business Machines Corporation Method to control paging subsystem processing in a virtual memory data processing system during execution of critical code sections
US5127094A (en) * 1987-11-09 1992-06-30 Hitachi, Ltd. Virtual storage type computer system
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
US5239635A (en) * 1988-06-06 1993-08-24 Digital Equipment Corporation Virtual address to physical address translation using page tables in virtual memory
JPH033057A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd 入出力制御方法および入出力割込み方法
US5237668A (en) * 1989-10-20 1993-08-17 International Business Machines Corporation Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
US5276847A (en) * 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US5249286A (en) * 1990-05-29 1993-09-28 National Semiconductor Corporation Selectively locking memory locations within a microprocessor's on-chip cache
EP0570516A4 (en) * 1991-02-06 1998-03-11 Storage Technology Corp Disk drive array memory system using nonuniform disk drives

Also Published As

Publication number Publication date
JPH0652050A (ja) 1994-02-25
US5613086A (en) 1997-03-18

Similar Documents

Publication Publication Date Title
JP2675961B2 (ja) 実記憶のページをロックするための方法
US10977190B2 (en) Dynamic address translation with access control in an emulator environment
EP0331900B1 (en) Method and apparatus for capability control
CA2050834C (en) Multiple controlled data-space facility
US5220669A (en) Linkage mechanism for program isolation
US4979098A (en) Multiple address space token designation, protection controls, designation translation and lookaside
US5574936A (en) Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US9244856B2 (en) Dynamic address translation with translation table entry format control for identifying format of the translation table entry
KR940011668B1 (ko) 페이지 메모리 관리 장치
JP4608484B2 (ja) ストレージの無効化、バッファ・エントリの消去
US8041923B2 (en) Load page table entry address instruction execution based on an address translation format control field
JP6202543B2 (ja) 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム
US6216214B1 (en) Apparatus and method for a virtual hashed page table
US5023773A (en) Authorization for selective program access to data in multiple address spaces
CA2701086C (en) Dynamic address translation with frame management
US6430667B1 (en) Single-level store computer incorporating process-local address translation data structures
US8082405B2 (en) Dynamic address translation with fetch protection
WO2009087131A1 (en) Dynamic address translation with load real address
US5745676A (en) Authority reduction and restoration method providing system integrity for subspace groups and single address spaces during program linkage
US5390312A (en) Access look-aside facility
JPH0769867B2 (ja) 仮想記憶システムのためのディレクトリ索引テーブル論理装置
EP0327839B1 (en) Information handling system
US5493661A (en) Method and system for providing a program call to a dispatchable unit's base space
JPH08287022A (ja) マルチプロセッサ・システム及びその排他的制御方法
CA1312142C (en) Linkage mechanism for program isolation