JPH05233453A - 大規模仮想アドレス空間の提供装置及びアドレス変換方法 - Google Patents

大規模仮想アドレス空間の提供装置及びアドレス変換方法

Info

Publication number
JPH05233453A
JPH05233453A JP4288025A JP28802592A JPH05233453A JP H05233453 A JPH05233453 A JP H05233453A JP 4288025 A JP4288025 A JP 4288025A JP 28802592 A JP28802592 A JP 28802592A JP H05233453 A JPH05233453 A JP H05233453A
Authority
JP
Japan
Prior art keywords
address
virtual address
access
entry
bit
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.)
Granted
Application number
JP4288025A
Other languages
English (en)
Other versions
JPH07104818B2 (ja
Inventor
Richard I Baum
リチャード・アーウィン・バウム
Kenneth E Plambeck
ケニス・アーニスト・プラムベック
Casper A Scalzi
キャスパ・アンソニ・スキャルジ
Richard J Schmalz
リチャード・ジョン・シュモールツ
Bhaskar Sinha
バスカー・シンハ
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 JPH05233453A publication Critical patent/JPH05233453A/ja
Publication of JPH07104818B2 publication Critical patent/JPH07104818B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

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)
  • Logic Circuits (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

(57)【要約】 【目的】 動的アドレス変換(DAT)がオンのときに
大規模論理アドレスを大規模仮想アドレス(LVA)と
して変換し、DATがオフのときに大規模論理アドレス
を大規模実アドレス(LRA)として使用する方法及び
システムを提供する。 【構成】 それぞれのLVAは三つの連結された部分に
分離される。第1の部分は一つのアクセス・リスト(A
L)を指定するためのエントリ(ADE)を指定するた
めにアクセス・ディレクトリ(AD)に索引を付けるた
めの最高位部分(ADEN)であり、第2の部分は従来
型サイズの仮想アドレス空間を表す関連する従来型アド
レス変換テーブルの指定を可能とするエントリにアクセ
スするための選択されたALに索引を付けるための中間
部分(ALEN)であり、第3の部分は従来型仮想アド
レスと同一のサイズを有する低位DAT VA部分であ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、特に、下位互換性の
問題を含む、論理アドレスのサイズとコンピュータ・シ
ステムにより使用される仮想及び実アドレス空間のサイ
ズとを増大させることによって生じる問題を解決するも
のである。
【0002】
【従来の技術及び発明が解決しようとする課題】コンピ
ュータ・システムにおいては、実記憶における仮想アド
レス(VA)の指定は、動的アドレス変換(DAT)処
理の使用によって自動的に行われる。そして、システム
の実メモリ空間は、仮想アドレス空間(VAS)がどの
ように使用されるかに無関係に割り当てることができ
る。従って、任意の数の連続する最高2GBの大規模な
VASユニットの自由な使用が可能な仮想記憶の使用
は、どこで実記憶が指定されるかにかかわらず実メモリ
を割り当てることを可能とする。実記憶を同一のアクセ
ス時間(実記憶においてどこにそれらが位置しているか
にかかわらず)を有する固定サイズのユニット(例え
ば、4KBページ)に分割することは、任意のVAS
が、任意のVASの使用におけるシステム性能に影響を
与えることなく、実記憶のどこにも分散される一組の不
連続ページとして実空間にマップされることを可能とす
る。ダイナミックRAM(DRAM)またはスタティッ
クRAM(SRAM)記憶のこのランダム・アクセス特
性は、そのアクセス時間を、機械的スピン時間及びアー
ム移動時間の介入によりアクセス時間が劣化するDAS
D記憶と区別する。
【0003】システムにより使用される仮想アドレスの
サイズはそのシステムにより使用可能な仮想アドレス空
間(VAS)のサイズを制御すること及び最大VASサ
イズは2の、アドレス・サイズにおけるビット位置の数
に等しい巾乗に等しいことは知られている。例えば、3
1ビットのアドレスは231バイトのVASを可能とす
る。
【0004】VASは、コンピュータのハードウェアが
実際にどのようにして実メモリにおける命令またはデー
タを指定するかに関係なく、プログラムが命令及び/又
はデータを指定することを適宜可能とする一列の仮想ア
ドレス(好ましくは0から始まって上限まで)である。
ソフトウェアは仮想アドレスを使用するが、ハードウェ
アは実メモリにおけるこれらの仮想アドレスの内容を記
憶または再生し、メモリ断片化及び非連続実記憶管理の
ような問題を回避し、アプリケーション・プログラムか
らシステム制御プログラムに記憶管理を渡す。
【0005】仮想アドレス・サイズを増大させることは
VASサイズを増大させ、これは使用可能なバイト・ア
ドレスの数が多いために、より多数のバイトの情報を含
むことも知られている。
【0006】計算機の動作においては、システムが設計
される仮想アドレス(VA)の最大サイズを越えること
は許されない。アドレス・サイズを現在の最大サイズ以
上に増大させることは、従来のプログラムとの互換性や
コンピュータ・システムの将来のプログラム及びデータ
・ベースの設計に対して困難な問題を生じさせる。同時
にアドレス可能なデータ量がVASの最大サイズを越え
るときは、プログラムは複数のVASを操作するステッ
プを含まなければならない。
【0007】いくつかのコンピュータ・システムは命令
内にオペランドのアドレスを入れており、もしアドレス
・サイズを増大するならば、全ての命令をより大きなア
ドレス・サイズに対して再設計しなければならないであ
ろう。IBM S/370のような他のコンピュータ・
アーキテクチャは、その命令に命令アドレスを直接含ま
せていないため、あるアドレス・サイズ限界までこの非
互換性の問題はない。その代わり、命令内の記憶オペラ
ンドが、基底(B)、索引(X)及びアドレス構成要素
(D)を含む汎用レジスタ(GPR)を指定する。B、
X、Dオペランド仕様に対する周知のアドレス算術演算
によりオペランド・アドレスが得られる。S/370オ
ペランド・アーキテクチャはIBM ESA/390シ
ステムで実施される。
【0008】B、X、Dオペランド仕様は、GPRサイ
ズが最大アドレス・サイズに対応する限り、任意のVA
Sサイズを提供する任意のアドレス・サイズをサポート
することができる。従って、特定のハードウェア・モデ
ルにおいて32ビットのハードウェアGPRサイズを有
することにより、現在の31ビットの最大アドレス・サ
イズを生じる。32番目のビット(すなわち、それぞれ
のアドレスのビット0)は、システムによりサポートさ
れる二三の命令によって必要とされるアドレス符号ビッ
トとして保存される。従って、オペランド・データに対
するB、X、Dアドレス演算に関与するGPRの32ビ
ットのサイズは、31ビットの最大有効論理アドレス・
サイズを生じる。そして、この31ビットのアドレス・
サイズは、2ギガバイト(GB)の仮想アドレス空間
(すなわち、231)を生じる。
【0009】従って、GPRのサイズを増大させること
は、オペランド・データにアクセスするために使用され
る仮想アドレスのサイズを増大させることは明らかであ
った。例えば、GPRサイズをそれらの現在の32ビッ
トのサイズから64ビットに増大させることによって、
VASサイズは263または264バイトに増大する。この
とき、対応する増加は、計算機のPSW(プログラム状
況ワード)における命令アドレス(例えば、31ビット
から63または64ビットまで)のサイズであることが
望まれる。
【0010】しかし、仮想アドレスのサイズの増大をど
のように処理するかを制御することは自明ではなく、こ
の出願におけるこの発明の目的である。
【0011】以前の31ビットの仮想アドレスのサイズ
はIBM S/370システムにおけるそれぞれのVA
Sの最大サイズに対する実用限界であったが、単一のプ
ログラムによって使用可能なVASの数は、システムの
ユーザ一人当たり一つから、ESA/370アクセス・
レジスタ(AR)・アーキテクチャによるユーザ一人当
たり数千まで著しく増加する。ARは、単一のプログラ
ムによって複数のVASにおけるデータに容易にアクセ
スすることを可能とする。このプログラムでは、データ
を制御する命令を含むVASと異なる複数のVASにお
いて容易にアクセスされることができる。ARは、多重
仮想アドレス空間にアクセスするための米国特許第43
55355号(バットウエル(Butwell)他)に開示さ
れ、特許請求されている。ARは、そのセグメント・テ
ーブル指定(STD)を指定することによってVASを
指定する。上記米国特許第4355355号のARの教
示を使用する任意のESA/370プログラムに対し
て、2GBのアドレス空間のファミリーが提供された。
【0012】米国特許第4979098号(バウム(Ba
um)他)は、AST(アドレス空間番号第2テーブル)
を使用することによってシステムにおけるSTDの中央
保管の使用を可能とし、ARの内容とその指定されたS
TD(VASを定義する)との間を無関係とすることに
よってARにより指定されたVASの安全保護を向上さ
せた。ASTにおける有効なエントリ(ASTE)は、
システムによって現在認識されている全ての仮想アドレ
ス空間を定義するSTDを含む。システム内の全ての仮
想空間を規定する単一のテーブルを持つことにより、そ
れらの生成、削除及びアクセス権限の中央制御が可能と
なる。
【0013】安全保護は、それぞれのARと、必要とさ
れるSTDを含むASTEの部分集合に対するポインタ
を有するアクセス・リスト(AL)を使用することによ
って得られるそのSTDとの間が無関係であることによ
って得られる。ALは制御レジスタ・フィールドによっ
て指定された。ARには、必要とされるSTDをロード
する代わりに、必要とされるVASにアクセスするため
のアクセス・リスト・エントリ・トークン(ALET)
がロードされた(これは制御プログラムがセグメント・
テーブルの指定を変化させることを防止するであろ
う)。それにもかかわらず、ARの内容(ALET)は
なおSTDを表した。そして、システムの非監督者のユ
ーザは、ARにおけるALETを、あたかもそれらがシ
ステムにおけるVASの使用を制御するためのSTDで
あるかのようにロード及び操作することを許される。
【0014】それぞれのAL(与えられたユーザが入手
可能な)は、そのエントリ(ALE)を、与えられたユ
ーザが入手可能なALETに対応するSTDを含むAS
TEに対するポインタを含むように初期化しなければな
らない。
【0015】ARにおけるALETは、アクセス・リス
ト・エントリ番号(ALEN)、アクセス・リスト・エ
ントリ順序番号(ALESN)及び基本リスト・ビット
(P)を含む。ALENは、必要とされるALE(アク
セス・リスト・エントリ)を選択するためのALに索引
を付ける。ALEの内容は、ARによって表されるST
Dを含む特別なASTE(ASN第2テーブル・エント
リ)を指す。
【0016】ARからそのSTDまでのALETの無関
係の経路に従う処理はAR変換(ART)処理と呼ば
れ、これは妥当性及び権限の検査を含む。妥当性の検査
は、異なるSTD(異なるALESN値を有する同一の
ALET)再指定された後に不注意にALEの使用を試
みてしまうことからプログラムを保護するために、AL
ETにおけるALESNを使用する。それは、アクセス
を得るためには、等価比較が必要とされるからである。
そして、もしALESNフィールドが等価比較をするな
らば、ART処理の間にALE及びASTEにおけるA
STESNフィールドが比較され、それらはまたAST
EにおけるSTDに対するアクセスを可能とするために
等しくなければならない。ASTESNは、例えば一つ
のSTDから他のSTDにASTEの再割り当てが生じ
た場合にシステムを保護する。
【0017】ART処理は、ARにおけるALETに対
応するSTDにそれがアクセスするときに完了する。S
TDは、セグメント・テーブル(ST)及びSTL(セ
グメント・テーブル長)を指定するためのSTO(セグ
メント・テーブル起点)から成る。それぞれのページ・
テーブルはそれぞれのSTエントリ(STE)により指
定される。
【0018】ART処理は、ART動作の結果、すなわ
ちALET及びその結果生じるSTDを記憶するための
ALB(ARTルックアサイド・バッファ)を使用する
ことによってスピードアップされる。このALBエント
リは、そのSTDをより迅速に得るために、ARにおけ
るALETがアクセスされる次の時刻にART処理によ
ってアクセスされる。
【0019】ART処理が必要とされるSTDを得た
後、従来型DAT(動的アドレス変換)処理がVAに対
して開始され、それに対してVAはページ・テーブル
(PT)を見つけるためにアドレスされたSTに索引を
付け、VAは次にVAの変換を表すページ・フレーム・
実アドレス(PFRA)を含む必要とされるページ・テ
ーブル・エントリ(PTE)を得るためにPTに索引を
付ける(これは実記憶における必要とされるページを指
定する)。
【0020】従って、ALETは(そのSTDによっ
て)、ESA/390アーキテクチャにおける実アドレ
スに31ビットの仮想アドレスを変換するためにアクセ
スされる2ギガバイト(GB)の仮想アドレス空間を表
すセグメント・テーブルを指定する。
【0021】それにもかかわらず、ARアーキテクチャ
の使用は、データ・アドレスの現在のB、X、Dオペラ
ンド・フィールドにおいて指定されるB−GPRに関連
するARにおいて32ビットの仮想拡張を行うことによ
って、31ビットの仮想アドレス限界(32ビットのG
PRを使用して)を実効的に越える。48ビット(31
ビットのVA+16ビットのALEN+1Pビット)ま
での仮想アドレスを表すために、31ビットのアドレス
+32ビットのAR拡張が使用される。
【0022】従って、32ビットのGPRサイズは、そ
れが31ビットのVAサイズが最高216=65536ま
での仮想アドレス空間のファミリーをサポートすること
を可能とするときには、ARアーキテクチャによって変
化しない。この仮想アドレス空間ファミリーにおいて
は、それぞれの仮想アドレス空間のサイズは231=2G
Bである。この結果、アクセス・リスト当たり216のそ
の最大数のアドレス空間に248バイトのデータの総仮想
空間容量を有するそれぞれのアプリケーション・プログ
ラムが得られる。
【0023】ARにおけるALETは2GBの仮想アド
レス空間を規定する。ALETは三つのフィールドを有
する。すなわち、ALENと呼ばれる16ビットの索引
値、ALESNと呼ばれる8ビットの順序番号及び二つ
のアクセス・リスト間を選択する基本リスト・ビットP
である。ALENは、ASTと呼ばれる他のテーブルに
おけるエントリを指すエントリ(ALE)を選択するた
めのアクセス・リスト(AL)の索引である。ALES
Nは、ARがALEにアクセスすることを許可されてい
るか否かを検査するために使用される順序番号であり、
その動作がALEの再割り当てを引き起こしたプログラ
ムを間違ったALETの使用から保護する。ART処理
の間には、ARが指定されたALEによってASTEに
アクセスすることを許可されているか否かを検査するた
めに、ALEにおけるASTESNが使用される。アク
セスは、ALEのASTESNフィールドの内容がAS
TEにおけるASTESNフィールドと一致したときだ
け許可される。ALEにおける31ビットのアドレス
は、必要とされるSTDを含むASTEを指定する。A
STEのASTESNフィールドは、一致を防止し、そ
れによって現在アドレスしており、それらの次のアクセ
スがそのASTEに許可される前にそれらが権限を得る
ことを必要としているALEから権限を取り戻すため
に、変更することができる。
【0024】IBMの米国特許第4355355号(バ
ットウエル(Butwell)他)は、アプリケーション・プロ
グラムによる複数のアドレス空間の使用の容易化を可能
とするためのアクセス・レジスタ(AR)を開示してい
る。
【0025】米国特許第4979098号(バウム(Ba
um)他)は、アクセス・リスト(AL)による間接的行
動を使用するアクセス・レジスタ変換(ART)を開示
し、特許請求している。セグメント・テーブル指定(S
TD)を表すために、ARにトークン(ALET)が提
供される。ARにおける索引(ALEN)フィールド
は、STDを含むASTEに対するポインタを得るため
に、ALにおけるエントリにアクセスする。ALET、
ALE及びASTEに様々に設けられた一対の順序番号
(ALESN及びASTESN)は、STDのアクセス
に対する権限制御を提供する。STDアクセッシング
は、ARにおけるALETにおいてもPビットを設ける
ことによって選択される複数のALのうちの一つを使用
する。この特許によって、ARを使用するプログラム
は、プログラムが使用可能なアドレス空間を表すために
プログラムに提供されるALETによって仮想アドレス
空間のファミリーに対するアクセスを有する。
【0026】米国特許第4679140号(ゴトウ(Go
tou)他)は、48及び64ビットのアドレスを生成する
ためにGPRサイズを32ビットから64ビットまで増
大させることを開示している。それぞれのGPRには、
32ビットのアドレスとの下位互換性を維持するため
に、それがBまたはXレジスタとして使用されていると
きに32、48または64ビットのアドレスを含むか否
かを示すためにモード・レジスタが関連している。64
ビットのアドレス演算回路が64ビットのGPRととも
に使用され、32、48または64ビットの演算が使用
されるか否かを決定するモード・ビットによって制御さ
れる。このゴトウ特許は、本願で教示される大規模仮想
アドレス概念を開示していない。
【0027】米国特許第4868740(カギマサ(Ka
gimasa)他、1987年の優先権主張)は、31ビット
のアドレスの代わりとして、48ビットのアドレスのた
めのプログラム状況ワード(PSW)拡張アドレス・モ
ードを開示し、特許請求している。このカギマサ特許
は、本願で教示される大規模仮想アドレス概念を開示し
ていない。
【0028】昭和62年6月8日出願の特開昭63−3
05443号は、必要とされるSTOを見つけるために
STOのテーブルの索引として使用される高位ファミリ
ー(F)フィールドを有する仮想アドレスを開示してい
る。この日本出願は、本願で教示される大規模仮想アド
レス概念を開示していない。
【0029】米国において本願と同時に出願された本願
と同一の出願人による米国特許出願番号07/7548
10は、本願の発明を開示しておらず、小規模実メモリ
(2GB以下)をアドレスするための小規模実アドレス
(例えば、31ビット)を、旧S/370プログラムに
対する上位互換性を維持しつつ、どのようにして、大規
模メモリ(2GB以上)をアドレスするための大規模実
アドレス(例えば、64ビット)に変換することができ
るかについて開示し、特許請求している。それはまた、
小規模VAに対するDAT及び/又はART処理を、小
規模VAの変換として提供される大規模実アドレス(L
RA)の生成においてどのように使用することができる
かについて開示し、特許請求している。
【0030】米国特許出願番号07/754810は、
実メモリの2GB部分を規定する所定のエクステンダを
連結することによってLRAを生成する。2GBのメモ
リ境界は交差する(31ビットのB及びX汎用レジスタ
値及び12ビットの変位値を使用する従来の32ビット
のアドレス生成加算器がその最高位ビット位置0にオー
バーフローし、それがエクステンダを1だけ増加させた
ときに)。これは、現在のプログラムを中断し、この増
加を実行するために制御プログラムを呼び出すためのオ
ーバーフロー・ビット内容を使用することによってなさ
れる。
【0031】
【課題を解決するための手段】この発明は、固有モード
で稼働している計算機における仮想及び実アドレス空間
のサイズに限界を生じさせる問題を扱う。固有モードの
仮想アドレッシングは、二水準のDATを使用するゲス
ト/ホスト動作に匹敵する一水準のDATを使用する。
例えば、仮想アドレスは、現在の31ビットの仮想アド
レッシング(ESA/390及びS/370において最
大2GBの仮想アドレス空間を提供するセグメント・テ
ーブル(ST)を使用する)との互換性を維持しつつ、
IBMのメイン・フレームに見い出される現在の31ビ
ットのアドレスに匹敵する63ビットに拡張することが
できる。現在のアクセス・レジスタ(AR)のアーキテ
クチャとの互換性は、この発明で得ることができる。
【0032】仮想アドレッシングに対する現在の31ビ
ットの制限は、32ビットの演算回路(31個のアドレ
ス・ビット及び符号ビット)とともに、B及びXオペラ
ンド値に対して32ビットのGPRを使用することによ
って生じる。しかし、仮想アドレス(VA)自身が31
ビット以上に拡張された後には、大規模仮想アドレス
(VA)がどのようにして大規模メモリにマップされる
べきかの問題が存在する。この発明によって解決される
のはこの後者の問題である。
【0033】この発明は、現在のアクセス・レジスタ
(AR)のアーキテクチャを変更するものである。この
発明は、アクセス・レジスタ(AR)においてALET
におけるALENに対する必要性を置換するアクセス・
リスト(AL)におけるエントリ(ALE)を選択する
ための索引(ALEN)を生成する異なる方法を見い出
した。AR ALENは、31ビットのGPRよりも大
きいB、X、Dオペランドに対するアドレス演算によっ
て生成されたLVAにおける高位フィールドによって置
換される。この高位フィールドは、この発明のLVA
ALENを含む。以前は、AR ALENは、ARにお
ける使用のために、オペレーティング・システムによっ
て、ALETの一部として生成された。このプログラム
は、ALETにより表される2GBに対するアドレス可
能度を有するために、ARにALETを特別にロードし
なければならなかった。この発明によれば、LVA A
LENはアドレス値の関数である(AR ALENと異
なって)。
【0034】この発明においては、それぞれの大規模仮
想アドレス空間(LVAS)は、アクセス・リスト(A
L)における一組の連続なALEによって表される。そ
れぞれのALEはLVASにおける2GBのアドレス空
間ユニットを表し、そのため、それぞれのLVASは、
そのセグメント・テーブル及びページ・テーブルにおけ
るセグメント及びページを無効とすることによって2G
Bよりも小さい有効アドレス空間を表すことができるそ
の最後のALEを除いて、2GBの整数倍である。ユー
ザはALにおける任意の数の連続するALEから成るL
VASを使用する。ALにおける非使用のALEは無効
のマークが付けられ、あるいは、LVASに対するAL
Eの数は他のテーブルにおける記述子によって定義され
る。プログラム(ユーザ)が使用可能な最大仮想アドレ
ス空間は2N である。ここで、NはLVAにおけるビッ
トの数である。
【0035】この発明のいくつかの実施例においては、
LVAは、そのALENフィールドよりもさらに高位の
フィールドを含む。このさらに高位のフィールドは、こ
こでは、ユーザがアクセス可能なALを指定するADE
N(アクセス・ディレクトリ・エントリ番号)フィール
ドと呼ばれる。このADENフィールドは、システム・
メモリのどこでも指定される潜在的に多数のALのうち
の一つを選択するために使用される。このADENは、
アクセス・ディレクトリ(AD)におけるアクセス・デ
ィレクトリ・エントリ(ADE)に索引を付ける。それ
ぞれのADEの内容は、LVAS(大規模仮想アドレス
空間)の一部を表す連続する一組のALEを有するメモ
リにおけるそれぞれのALを指定する。ADEは、LV
ASのこの部分がそれぞれのALにおける第1番目のA
LEで始まる必要がないように、連続するALE(AL
におけるLVASの一部分から成る)の、指定されたA
Lにおける第1番目のALEに対するオフセット・フィ
ールドを含んでもよい。効率の考察は、LVA ALE
N及びADENフィールドに対する特別なビット長の選
択を支配する。ALENフィールドのサイズは、単一の
ALにおいて許容されるALEの最大数を制御する。そ
して、ADENフィールドのサイズは、単一のADにお
いて許容されるADEの最大数を制御する。一列のAD
Eが単一の固有のLVASを形成することを示すために
使用されるADエントリにおいて定義されたフィールド
を有することが可能である(一つ以上のLVASを規定
するALにおいて異なるLVASを区別するためのAL
ESNフィールドの使用と同様に)。従って、ADの定
義は、単一のADにおいて一つ以上のLVASを含むよ
うに拡張することができる。
【0036】従って、ALENフィールドが小さければ
小さいほど、AL、従ってこのALに含まれるLVAS
の一部分において許容される2GBのアドレス空間ユニ
ットの数は小さくなる。ALENフィールドのサイズの
減少は、ADENフィールドにおける対応する増加が単
一のLVASを形成するALの数を増加させることを可
能とする。
【0037】この発明は任意の長さのLVA ALEN
フィールドを使用することができるが、LVAにおける
16ビットのLVA ALENフィールドの使用は、1
6ビットのLVA ALENがESA/390 ARア
ーキテクチャにおける現在のアクセス・レジスタ変換
(ART)処理を使用することを可能とすることによっ
て、現在のESA/390アクセス・レジスタ(AR)
アーキテクチャとの互換性を得ることを可能とする。A
R変換(ART)処理は、アドレス(2GBのアドレス
空間を表す)の低位31ビットのDAT変換動作におけ
る使用のためのLVA ALEN値によって表されるセ
グメント・テーブル(ST)にアクセスする。この特別
な場合においては、LVA長は16+31=47ビット
である。47ビットのLVAは、247バイトまでのLV
ASにおける任意のバイトを指定することができ、この
LVASは現在の2GBのアドレス空間の65535倍
までのサイズを有する。63ビットのLVAは、263
イトまでのLVASにおける任意のバイトを指定するこ
とができ、このLVASは現在の2GBのアドレス空間
の4294967296倍までのサイズを有する。
【0038】従って、この発明は、231バイトを越え、
63ビットの仮想アドレスを使用するときには例えば最
大263バイトを有する非常に大規模な単一のアドレス空
間のどの場所のデータにもアクセスすることを可能とす
るための大規模実アドレス(LRA)及び大規模仮想ア
ドレス(LVA)を含む非常に大規模なサイズの論理ア
ドレスを実行するプログラムがサポートするように、コ
ンピュータを構築し、プログラムすることを可能とす
る。また、この発明は、任意のコンピュータ・プログラ
ムが、そのプログラムに許容された最大263バイトの空
間よりも小さい、多数の別のより小さい仮想アドレス空
間LVASを使用することを可能とするが、この発明
は、LVASのそれぞれが以前の最大値2GBよりもず
っと大きいサイズを有することを可能とする。そして、
それぞれのLVASは、現在のIBMESA/390及
びS/370アーキテクチャで構築されたコンピュータ
によって使用される従来のDAT(動的アドレス変換)
処理の動的ページングを使用することによってコンピュ
ータの実メモリにおいて動的に割り当てられたその4キ
ロバイトのページを有する。従って、この発明の一つの
目的は、プログラムが使用可能なアドレス空間を大幅に
拡張しつつ、従来の小規模仮想アドレス(例えば、大型
IBMメイン・フレームにおいて現在使用されている3
1ビットの仮想アドレス)によって使用されるDATと
の互換性をLVAが維持することを可能とすることにあ
る。
【0039】この発明においては、「小規模アドレス」
は、231バイトまたはそれ以下(例えば、224バイト)
のアドレス空間をサポートするIBMメイン・フレーム
において現在使用されている31ビットのアドレス長で
ある。この発明では、大規模アドレスを、31ビット以
上、従って231バイト以上のアドレス空間をサポートす
ることが可能なものと定義する。
【0040】現在の31ビットの小規模アドレスの特徴
は、その231−1の限界を越えて増加したときにアドレ
ス0に戻されることである。例えば、もしそれが1だけ
増加されるならば、それはアドレス位置0に戻される。
しかし、大規模アドレスが(231−1)の値を有し、1
だけ増加されるときには、それは単にその次の値231
進むだけであり、その場合、大規模アドレスは0に戻さ
れず、さらなる増加とともに増加し続ける。
【0041】この発明は、大規模仮想アドレス(LV
A)における高位フィールドをアクセス・レジスタ(A
R)ALEN(ARのALETにおける)のように取り
扱うことができることを見いだした。この高位フィール
ドが16ビットを含むように定義される特別な場合にお
いては、LVA ALENは、たとえこのLVA AL
ENがAR ALENとは異なる方法で導出されたとし
ても、現在のESA/390アクセス・レジスタ変換
(ART)処理によって取り扱うことができる。
【0042】この発明は、プログラムが使用可能なアド
レス空間をユーザが取り扱う方法を変更する。以前は、
ユーザは、必要とされる2GBのアドレス空間ポインタ
を表示する特定のALETをARに明示的にロードして
いた。この発明によって、ユーザはもはやアドレス空間
の存在に注意する必要がなくなり、従ってもはやALE
Tを明示的に取り扱う必要もなくなる。その代わり、ユ
ーザは、単一の2GBのアドレス空間のアクセッシング
におけるように、ユーザが以前にAR ALET操作に
無関心にプログラム・オペランドをアドレスしたと同一
の方法でプログラムにおけるオペランドを単にアドレス
するだけである。なぜならば、これらの大規模仮想アド
レスは、ユーザの関心と無関係に、さらにはユーザが意
識することなく、この発明によって自動的に取り扱うこ
とができるからである。
【0043】従って、LVA ALENフィールド(L
VA ADENフィールドを有する場合がある)は、コ
ンピュータのハードウェア及びソフトウェアが、ユーザ
の関心とは無関係に、取り扱う通常のオペランド仕様の
一部としてアドレス空間アクセッシングを自動的に取り
扱うことを可能とする。システム制御プログラム・ソフ
トウェア(OS)は、ユーザ・プログラムによる大規模
LVA使用の用意に、ALにおける(及び任意のADに
おける)エントリをセットアップする必要があり、これ
もまたユーザが意識することなく自動的になされる。
【0044】オペランド仕様がコンピュータで計算され
ているとき、LVAはユーザが意識することなく自動的
に生成され、ALにおける必要とされるALEを選択す
るためのLVAからLVA ALEN値が自動的に得ら
れる。OSは以前には、LVA ALEN値にそれぞれ
対応するSTDを含む対応するASTEに対するポイン
タで対応するALEを満たしていた。すなわち、このO
Sの用意は、LVAの使用が開始する前になされる。L
VA ALENがARTタイプの処理を直接受け取るの
は、このOSの用意のためである。OSの用意の処理
は、ESA/390のAR指定された2GBのアドレス
空間アドレッシングを可能とするために使用された。L
VASの場合には、異なるASTEを指す一つ以上のA
LEが初期化され、複数の2GBの空間から成るLVA
Sを提供する。これは、231バイト以上の論理対象に対
するプログラムのアドレス可能度を提供する。
【0045】より詳細には、この発明は、大規模仮想ア
ドレス(LVA)を少なくとも二つのフィールドに分割
する。すなわち、低位フィールド(従来のDATによっ
て処理される)と、この低位フィールドの後のビットか
ら左に算術的に始まる高位フィールドである。LVAは
31ビットよりも大きな任意のサイズでよいため、その
低位フィールドはLVAの低位31ビットであり、その
高位フィールドは低位フィールドの直ぐ左のビット位置
で終わる。以下においては、この低位フィールドをLV
AにおけるDATフィールドと呼ぶ。
【0046】高位フィールドはさらに少なくとも二つの
フィールドに分割される。すなわち、低位LVA AL
ENフィールドと、高位ADENフィールドである。L
VAALENフィールドは常にLVAのために使用され
るが、LVA ADEN(アクセス・ディレクトリ・エ
ントリ番号)フィールドはこの発明の種々の実施例にお
いて使用されることもあり、使用されないこともある。
ADEは、対応するALを指定するためのALOアドレ
ス・フィールドや、LVASを表す第1番目の(最小の
索引)ALEに対するオフセット・フィールドや、その
LVASから成る連続なALEの数を指定するLVAS
長フィールドのような、一つ以上のフィールドを含む。
【0047】それぞれのALE(LVASを表すALE
の組における)は、2GBの仮想メモリの境界上のLV
ASの2GB部分を表す。LVA ALEN値は、LV
A値によって必要とされるALEにアクセスする。アク
セスされたALEの内容は、それぞれのLVAを変換す
るために必要なSTを指定するために必要とされるST
Dを含むASTEエントリを指す。次に、LVAを実ア
ドレス(LVA値によってアドレスされているメモリに
おけるバイト位置をアクセスするために使用される)に
変換するためにLVAの低位31ビット部分でDATが
実行される(STDを介してアクセスされるST及び適
当なSTEを介してアクセスされるPT)を使用し
て)。
【0048】どのLVASも、LVASのために使用さ
れていない全てのADE、ALE、STE及びPTEが
無効であることを示すシステムのOSによって、その2
63バイトの最大値よりも小さくすることができる。
【0049】それぞれのLVASには、不適切なアクセ
スからそれを保護するために、順序番号(SN)が伴わ
れる。これを行うために、LVAオペランドのB−GP
Rにおける基底アドレスを伴うARにSNを含むことに
よって、及び、そのLVASを表すそれぞれのALEに
おけるALESNフィールドに同一の値を記憶すること
によって、それぞれのLVASを形成する全てのALE
にただ一つのSNが伴われ、その結果、LVASにおけ
るLVAに対してアクセスが許可される前にSNの一致
が必要とされる。これは、LVAに対するアクセス処理
を終了させる不等比較を生じさせることによって、もし
ユーザ・プログラムがLVASの外側の位置を指定する
LVAを指定するならば起こるかも知れない、LVAS
を表さないALEを使用することができることから、プ
ログラムを防止するであろう。
【0050】この発明は、単一のLVASの全てのAL
Eに対するアクセスを許可するために、同一のLVAS
の全てのALEにおいて同一のSNを提供する。もしS
Nが一致しなければ、アドレスされたASTEにおける
STDに対するアクセスは禁止される。ALESNに加
えて、それぞれのALEは、異なる2GBの仮想領域に
対するASTE再割り当ての場合にシステムを保護する
ASTE順序番号(ASTESN)も含む。2GBの仮
想領域のSTDを得るためのALEによるASTEに対
するアクセスは、ALEにおけるASTESNフィール
ドがASTEのASTESNと一致することを必要とす
る。
【0051】ASTEの中央システム・テーブルは、そ
れぞれのASTEがそれぞれのSTDを含むシステムに
よって認識される全てのSTDを含むように提供され
る。他の順序番号(ASTESN)はそれぞれのALE
及びその対応するASTEにも入れられ、それらはLV
Aに対してアクセスが許可される前に一致しなければな
らない。これは、再割り当てされたASTEにおけるS
TDをLVAが使用することできることを防止する。こ
のようにして、そのアドレスされたASTEが異なるS
TDに再割り当てされたとき(または無効とされたと
き)にALEにアクセスすることを許可されたLVAに
対してアクセス権限が取り戻される。
【0052】他の実施例は、64ビットの汎用レジスタ
の高位部分を、別々のモードとしてLVAモード及びア
クセス・レジスタ・モードの両方を提供する処理装置に
おけるアクセス・レジスタとして取り扱うことができ
る。
【0053】同時に出願されたバウム(Baum)らの米国
特許出願番号07/754810は、31ビットよりも
大きい(例えば、最高63ビット)拡張された実アドレ
ッシングを開示し、特許請求している。この発明による
LVAのアドレス変換により生じる実アドレス(すなわ
ち、変換アドレス)は、米国特許出願番号07/754
810の発明を使用することによって、大規模実アドレ
ス(LRA)として提供される。
【0054】この発明は、米国特許出願番号07/75
4810に見い出されるものとは別の実(絶対)アドレ
ス生成を提供し、これは、DATがオフのときに、もし
DATがオンならばLVAであるB、X、D加算器出力
を使用する。この論理アドレスの高位部分は、大規模実
アドレスを形成するために31ビットの低位部分の左に
連結される。これによって、この発明は、DATがオフ
のときに、米国特許出願番号07/754810におい
て使用されるものと異なる処理によって大規模実アドレ
スをも形成するためにアドレス生成回路(DATがオン
のときにLVAを形成する)を使用する手段を提供す
る。
【0055】
【実施例】
論理アドレス生成
【0056】図1の実施例の動作は、システムの主記憶
装置(主メモリ)のデータに対する論理アドレスを生成
するためにIBM S/370、XA/370、ESA
/370及びESA/390コンピュータ・アーキテク
チャにおいて広く使用されているB、X、D形式で表さ
れる命令オペランドで開始する。これらのアドレッシン
グ構成要素は、16個の使用可能な汎用レジスタから選
択された指定された基底レジスタ22を表すB、16個
の使用可能な汎用レジスタの指定された索引レジスタ2
3を表すX、及び、4KBのページにおける変位を表す
Dを含む。これらのアドレス構成要素は、(B)及び
(X)がそれぞれレジスタB及びXの内容である関数
(B)+(X)+Dを実行する加算器26に供給される
ことによって論理アドレスを生成するために使用され
る。
【0057】ここで使用される「仮想アドレス」という
用語は、DATのオン状態がCPUのPSW(プログラ
ム状況ワード)36に存在するときに任意のCPUの
「論理アドレス」を含む。そして、任意の「論理アドレ
ス」は、DATのオフ状態がCPUに存在するときには
実アドレスである。PSW(またはシステム制御レジス
タ)は、生成された論理アドレスのサイズを示すモード
・フィールドを有する。
【0058】PSW DATビットのオフ状態は、AN
Dゲート37が、加算器26における大規模アドレスを
大規模実アドレス・レジスタ34に直接ゲートすること
を可能とする(そしてANDゲート38を使用不能とす
る)。この実アドレスは次に、システムの主メモリにお
いてアクセスされる。
【0059】もしPSW DATビットに対してオン状
態が存在するならば、ANDゲート38は加算器26の
出力(64ビットの大規模論理アドレス)を64ビット
の仮想アドレス生成レジスタ27に転送する。
【0060】 大規模仮想アドレス(LVA)の生成−図1
【0061】レジスタ27における大規模仮想アドレス
(LVA)は、ADENとALENと31ビットのDA
T VAとの少なくとも三つのフィールドに分割され
る。DAT VAフィールドは、63ビットの仮想アド
レスのビット位置33〜63を占める最低位部分にあ
る。最高位ビット位置0は、63ビットのアドレスが正
か負かを示すための符号ビット位置であり、従来の31
ビットのIBM S/370アーキテクチャにおけるビ
ット0と同一の目的を有する。符号ビットは限られた数
の命令において使用される。高位ビット位置0〜33
は、この発明によって提供される二つのフィールドAD
EN及びALENを含む。ADENとALENとの間の
境界は任意であり、後述の理由により制御される。フィ
ールドADEN、ALEN及びDAT VAは63ビッ
トのアドレスにおいて互いに連続している。DAT V
Aフィールドは、現在使用されている31ビットのVA
と互換性を持たせて、31ビットの仮想アドレッシング
での使用に対して設計された現在のハードウェア及びマ
イクロコードがこの発明のLVAで使用されることを可
能とするために、最低位の31ビットに選ばれる。
【0062】上述のB、X、Dアドレス生成はデータに
アクセスするために使用されるが、実行命令にアクセス
するためには使用されない。命令は、CPUのPSW3
6に含まれる命令アドレスを使用してアクセスされる。
命令アドレスは、それぞれの次の命令をアドレスするた
めに増加される。この発明は、命令のPSWが従来の3
1ビットの命令アドレスまたは新規な63ビットの命令
アドレスのいずれかを含むときにオペランド・データに
アクセスするための新規な63ビットの仮想アドレスの
使用を可能とする。63ビットの命令アドレスは、ここ
で開示される新規な変換手段を使用して63ビットのオ
ペランド・アドレスと同一の方法で変換される。
【0063】図1において、B、X、Dオペランドから
生成された63ビットの仮想アドレスと、PSWから供
給される31ビットまたは63ビットの命令アドレスと
の両方がアドレス変換のためにレジスタ27に入力され
る(右アラインメントで)。
【0064】大規模仮想アドレス変換手段−図1
【0065】LVAのアドレス変換は、LVA変換機構
(LVAT)30及び動的アドレス変換機構(DAT)
33を使用して行われる。DAT手段33は、現在のI
BMESA/390システムにおいて使用されている従
来型ハードウェア/マイクロコードDAT手段である。
【0066】DAT手段33は、従来のVA(例えば、
24または31ビット)及びLVA(例えば、63ビッ
ト)の両変換と互換性がある。相違点は、従来のVAで
はDAT33が全変換を行うが、LVAではDAT33
はその最低位部分(例えば、最低位の31ビット)に対
して変換を行うだけであることである。この発明は、そ
れぞれのLVAの高位部分を変換するためのLVAT3
0を提供する。この発明は、LVAT30だけでなく、
LVAT30及びDAT33の組み合わせを包含する。
【0067】従って、LVAT及びDAT処理は、LV
Aを、システム・メモリ内の任意のページ・フレームに
おけるバイト位置を表す実アドレス(RA)に変換す
る。理論的には、31ビットのRAのような任意のサイ
ズのRAがこの発明に使用される。すなわち、63ビッ
トのLVAは、この発明によって、31ビットのRA、
24ビットのRAまたはシステム・メモリにおけるバイ
ト位置を指定することが可能な任意の他のサイズのRA
に変換することができる。しかし、実用的には、63ビ
ットのLVAは非常に大きく、実メモリにおける非常に
多数のページ・フレームのタイムリーな使用を含むの
で、31ビットのRAは、システムの性能に影響を与え
ることなく63ビットのLVAの効率的な使用をサポー
トするためにメモリにおいて十分な実ページ・フレーム
を提供することはできない。このため、好ましい実施例
は、ここでは、63ビットのLVAに対する変換された
アドレスとして、63ビットの実アドレスの使用を仮定
する。しかし、任意のサイズの実アドレスをこの発明に
使用することができ、選ばれたサイズは、異なった変化
するサイズのLVAの使用を制限しない経済的な選択の
問題であることが理解されるべきである。
【0068】この実施例において、63ビットの実アド
レスは、システム・メモリが、従来のメモリに対する最
大231バイトのサイズよりも非常に大きい最高263バイ
トのサイズを有することを可能とする。
【0069】この好ましい実施例は、実記憶が2GBの
サイズを越える場合の統合オプションとして、より大き
なサイズ、例えば63ビットへの拡張によってそのLV
Aを31ビットの実アドレス(RA)に変換するように
構成されている。31ビットのRAへの変換は、31ビ
ットのRAを提供し、多数の市販のS/370システム
に現在プログラムされている従来の31ビットのアドレ
ス変換テーブル(セグメント・テーブル及びページ・テ
ーブル)との互換性を許容する。これらの31ビットの
テーブルはDAT33の一部分である。それらにより生
じる31ビットのRAは、この発明と同一の出願人によ
る米国特許出願番号07/754810に記載され、特
許請求されている発明の使用によって、より大きな、例
えば63ビットのRAに変換される。63ビットのRA
34への変換は、32ビットのエクステンダをそれぞれ
の31ビットのRAの高位端に連結することによって達
成される。
【0070】もちろん、セグメント及びページ・テーブ
ルは任意のサイズの実アドレスを使用することができる
ように構成することができ、31ビットの選択は、以前
のハードウェア及びソフトウェア・システムとの互換性
を考慮した経済的評価の問題である。
【0071】LVAT/DAT処理で得られる結果とし
て生じる63ビットのRAは、従来のシステムにおいて
使用された31ビットのRAの表示の代わりに大規模6
3ビットのRAの表示に適合するためにより多くのビッ
ト位置が必要であることを除いて、現在の市販のIBM
ESA/390に基づくシステムにおいて使用されて
いる従来のタイプの変換ルックアサイド・バッファ(T
LB)に好適に記憶される。
【0072】 図2における大規模仮想アドレス空間(LVAS)制御
【0073】図2は、64ビットのアドレス生成レジス
タ27に63ビットのLVAを入れて開始するLVAT
処理を表す。アドレス生成レジスタ27におけるLVA
は、フィールド0、ADEN、ALEN及びDAT/V
Aに分割される。ADEN、ALEN及びDAT/VA
フィールドの内容は、それぞれの大規模アドレス変換を
実行するためにLVAT30及びDAT33に入力され
るアドレス構成要素を提供する。0フィールドはアドレ
ス変換処理においては使用されない。
【0074】LVAT処理は、それぞれのLVASを規
定するためにアクセス・ディレクトリ(AD)43を使
用する。AD43は、システム・メモリにおいて、制御
レジスタ(CR)41に記憶された実アドレス(AD起
点、ADO)によって指定される。異なるLVASがア
クセスされるときには、異なるADOがCRにロードさ
れる。従って、複数のLVASを規定するためには複数
のADが使用されるが、図2における時刻においてはた
だ一つのADがアクセスされる。
【0075】それぞれのADは、一つまたはそれ以上の
ADエントリ(ADE)ADE−1〜ADE−kから成
り、そのそれぞれはAL−1〜AL−kのうちの任意の
一つのメモリにおいて指定するためのALO実アドレス
を含む。従って、それぞれの有効なADEはそれぞれの
ALを規定し、それによってアクセス・リスト(組AL
−1〜AL−kからの)がアクセスされる。レジスタ2
7に現在あるLVAにおけるADEN値は、特別なAD
E−j及びそれに関連するAL−jを選択するためのA
Dの索引として使用される。
【0076】ADEの内容は、図2における拡大図に、
以下のフィールドを含むものとして示されている。これ
らのフィールドは、有効(V)フィールド、ALO(ア
クセス・リスト起点)フィールド、LVAS−CO(L
VAS累積オフセット)フィールド、LAST−AL
(最後のAL)フィールド及びNUM−ALE(ALE
の番号)フィールドである。
【0077】有効(V)フィールドは、ADにおけるど
のエントリがLVASの部分ではないかを示すためにA
DEの内容が有効か否かを示すビットを含む。ALO
(アクセス・リスト起点)は、ADEによって表される
ALの先頭の実アドレスである。累積オフセット・フィ
ールド(LVAS−CO)は、このADE及び全ての先
行するADEに対するLVASの一部分として累積的に
使用されないALEの全数である。
【0078】このALの組は、LVASにおける全ての
ALEを含む、ある所定の数のALEを有する。しか
し、オフセットが使用されるときには、LVASにはこ
の組における全てのALEよりも少ない数のALEが含
まれる。それは、それぞれのALにおけるオフセットA
LEはLVASには含まれないからである(オフセット
内のALはLVASと無関係の使用に対して保存され
る)。
【0079】この組のそれぞれのALにおいてLVAS
によって使用されるALEの数は、ALENフィールド
の最大値(ALENフィールドのビット数によって決定
される)及びその特別なALの個々のオフセットによっ
て決定される。LVASにおけるALEの全数は、連結
されたADEN及びALENフィールドの値(図2にお
けるELG44に32ビットの値を供給する)によって
決定される。
【0080】従って、LVASは、ALにおけるオフセ
ットで始まるNUM−ALEフィールドにおけるALE
の数だけを使用するLVASの最後のALを除いて、オ
フセットとALの端との間のそのALに位置するそれら
のALEだけを使用する。
【0081】オフセットの使用は、LVASを表すため
に必要とされるALEの全数に影響を与えない。LVA
SのそれぞれのALEは、LVASにおけるALEの列
においてLVASにおける他の2GBのアドレス空間を
表す。しかし、関連するADEにおける非ゼロのALオ
フセット・フィールドは、LVASによる使用のための
そのALにおいて使用可能なALEの数を減少させる。
LVASにおける仮想アドレスの正確な順序を維持する
ために使用されるALEの列は、AL(組の最後のAL
以外のもの)の最後のALEの後に続くALEが組の次
のALにおけるオフセット位置に位置するALE(これ
は組の次のALにおけるLVASの第1番目のALEで
ある)であることを必要とする。この「次のAL」は、
次の連続するADE(LVASを規定するADにおける
現在のものの後に続くもの)において指定される。
【0082】ADにおけるADEの数も、この組におい
て必要とされるALの数と適合するように増加させても
よい。それぞれの有効ADEにおけるLVAS−CO
(LVAS累積オフセット)フィールドは、関連するA
L及びLVASを規定する全ての先行するALにおける
全てのオフセットの合計である値に初期化される。LV
AS−COは、関連するALのオフセットにおけるAL
Eの数を、直前のADEにおけるLVAS−COフィー
ルドにおける値に加えることによって計算される。
【0083】LVASに対するALによる有効なALE
の減少に適合するためのこのALによるALEの減少及
びADE(及びAL)の数の可能な増加は、正しいAD
E(正しいALを指定するための)を指定する際及び正
しいALにおける正しいALEを指定する際に、複雑さ
を生じる。
【0084】正しいALEの指定を得るために、LVA
におけるADEN及びALENフィールドの値に対する
調整が必要とされる。この調整は、正しいALEを指定
するために現在のLVA27のADEN及びALENフ
ィールドを修正するために「有効LVA」が生成される
図2において行われる。ADEN及びALENフィール
ドに対するこの調整を行うために、図2において「有効
LVAジェネレータ」(ELG44)が提供される。
【0085】正しいALEを見つける動作はまず、その
LVAS−COフィールドをELG44に出力する試行
ADEを指定するためにLVA27におけるADENを
使用することである。ELG44は、このLVAS−C
Oの値を元のLVA27の高位32ビット(これはLV
A27におけるADEN及びALENの連結である)に
加える。LVA27におけるADENと有効LVA47
におけるADENとの間の比較が行われる。もしそれら
が等しければ、これは正しいADEである。もし不等条
件が生じれば、次に続くADEがアドレスされ、そのL
VAS−CO値がアクセスされ、ELG44に供給され
る。それはLVA27の元の高位32ビットに加えられ
る。もしその有効LVA47において結果として生じる
ADENが最後の有効LVA47におけるADENと等
しければ、正しいADEが現在アドレスされている。も
し不等条件が再び生じたならば、等価条件を生じるLV
AS−COを有するADEがアクセスされるまでこの処
理が繰り返される。次に、最後のADE(現在、有効L
VA47にある)は正しいALを選択するための正しい
ADEである。そして、最後のALEN(現在、有効L
VA47にある)は、アドレスされたALにおける正し
いALEを選択するための正しいALENである。
【0086】 LVAS−COフィールドにより保存されるALE
【0087】それぞれのADEにおけるLVAS−CO
フィールドの使用は、この発明のLVA変換の目的と異
なる目的のための使用のために、それぞれのAL(低い
番号が付けられたALEを含む)の最上部に一組のAL
Eを保存することができる。例えば、現在のESA/3
90アクセス・レジスタ・アーキテクチャは、特殊動作
のために、それぞれのALにおける最初の二つのALE
を使用する。LVAS−COフィールドは、それぞれの
ALにおける最初のX個のALEが任意のLVASの定
義において使用されるのを防止することによって従来の
使用に対する予約境界以下のALEの使用を可能としつ
つ、それを予約境界以上のALEに制限することによっ
てこの発明の使用における互換性を維持することができ
る。
【0088】図2におけるLVA変換処理
【0089】実行するプログラムにLVAを含むLVA
Sを定義するADを指定するため、任意のLVAの変換
を必要とする任意のプログラムの実行開始前に、CR4
1においてADOが初期化される。
【0090】プログラムの実行中にそれぞれのB、X、
DまたはB、Dオペランドの大規模仮想アドレス(また
は命令の大規模仮想アドレス)が提供されるとき、その
LVAはレジスタ27に入れられる。
【0091】レジスタ27におけるADENフィールド
は、レジスタ27におけるLVAの変換において必要と
されるADEのアドレスを得るために、CR41におけ
るADOの値に加えられる。このADEはメモリにおい
てアクセスされる。
【0092】ADEにおけるVビットが検査される。も
しそれがADEが有効であることを示すならば、このA
DE及びその後のADEにおけるLVAS−COは、正
しいADEを得るために、上述の方法によって使用され
る。このADEにおけるADOは、レジスタ27におけ
るLVAの変換のために必要とされるAL−jにおける
正しいALEをアクセスするために使用される。
【0093】正しいALEのASTEOの内容は、LV
A変換のために必要とされるSTDを含むASTEにア
クセスするために使用される。
【0094】次に、LVAの最低位の31ビット部分
(そのDAT VA部分を提供する)を使用する従来の
DAT変換処理33においてSTDが使用される。この
従来のDAT変換処理33においては、DAT VAか
ら従来のセグメント・テーブル索引(SX)及びページ
・テーブル索引(PX)が得られ、変換のために必要と
されるSTE及びPTEにアクセスするために使用され
る。アクセスされたPTEは、ページ・フレーム実アド
レス(PFRA)を含み、これは変換処理により必要と
される実メモリにおけるページ・フレームを指定する。
【0095】次に、DAT VAの31ビット部分にお
ける最低位の12ビットは、31ビットの実アドレッシ
ングを使用するレジスタ27におけるLVAの変換を表
す実メモリにおけるバイトをアドレスするために、その
ページ・フレームにおける索引として使用される。
【0096】もしメモリが31ビットよりも大きい実ア
ドレスを使用するならば、31ビットのPFRAは、米
国特許出願番号07/754810において開示され、
特許請求されている手段によって拡張される。
【0097】ALEN及びADENフィールドのオーバ
ーフロー特性(図2)
【0098】LVAS(大規模仮想アドレス空間)での
仮想アドレスの増加または減少は、DAT VAフィー
ルドが全て1の値(その最高の値)に達し、さらに増加
されるとき、あるいは、全て0の値(その最低の値)に
達し、さらに減少されるときに、そのDAT VAフィ
ールドを最終的に2GBの境界と交差させる。DATV
Aフィールドによる2GBの境界の交差は、ALENフ
ィールドに対するそのオーバーフロー(+1)またはア
ンダーフロー(−1)によって示される。それぞれの変
化は、ALENに、ALにおける他のALEを選択させ
る。
【0099】大規模仮想アドレスの31ビット部分より
も大きなビット部分の自動生成が得られるのは、このオ
ーバーフロー/アンダーフロー特性である。これは、制
御プログラムによって生成され、そのDAT VAの3
1ビットのアドレスが2GBの境界に達したときに変化
することができないアクセス・レジスタ(AR)のため
に使用されるALETのALENフィールドの特性では
ない。すなわち、この発明は、大規模アドレッシングの
アプリケーション・プログラムの使用の結果として、A
DEN及びALENの値を、アプリケーション・プログ
ラムの部分で何ら意識的な努力をすることなく、また、
システム制御プログラムの部分で何らALEN及びAD
EN生成を行うことなく、自動的に調節する。その代わ
りに、ALEN及びADENは、LVAの整数部分であ
り、仮想アドレス計算に関与する。
【0100】従って、ADEN及びALEN構成要素
は、アプリケーション(問題状態)・プログラム内で指
定されたLVAの部分として自動的に生成される。それ
らは、システム制御プログラムによって生成または管理
されない。制御プログラムは、ADEN及びALENに
よる使用のためにAD及びALテーブルを設定するだけ
であり、これはADEN及び/又はALENが自動的に
生成されるか制御プログラムによって生成されるかにか
かわらず必要とされる。
【0101】従来の技術におけるアクセス・レジスタ
(AR)が使用されるとき、ALETにおけるALEN
値は、仮想アドレスのDAT VA部分から何らオーバ
ーフローまたはアンダーフローを受け取ることができな
い。ARによって、オーバーフローは、0を通ってそれ
自身をリセット・バックする31ビットの仮想アドレス
を生じ、アンダーフローは、その最高値(全て1)を通
ってそれ自身をセットする31ビットの仮想アドレスを
生じる。従って、たとえARを使用するVAが47ビッ
トのVA(それは31ビットのDAT VA及び16ビ
ットのALENを有するため)と考えられても、このよ
うないわゆる大規模仮想アドレスは、単一の命令に対す
るアドレス計算の結果として、大規模仮想アドレス空間
(すなわち、231バイトよりも大きい)における2GB
の境界と交差することはできない。アドレスのDAT
VA部分は、ARアドレッシングにおける計算されたモ
ジュロ231である。
【0102】従って、この発明は、システム制御プログ
ラムからALENを生成する負担を取り除くため、オー
バーフロー特性を使用する。さらに、この発明は、必要
なADEN生成及び制御プログラムによる管理を回避す
るためにLVAの全てのビットにわたって使用されると
きに、アドレス演算によって本来的に提供されるオーバ
ーフロー及びアンダーフローも使用する、さらに高位の
ADENアドレス構成要素を提供する。(ADENは以
前はARとともにまたはARなしで使用された。)この
オーバーフロー特性は、人工的な2GBの境界と無関係
に、サイズが2GBよりも大きい仮想対象、例えば非常
に大規模なデータ値のテーブルをプログラムが一様にア
ドレスすることを可能とする。
【0103】従って、この発明は、以前はARにおける
ALENによる感知性のなかったDAT VAオーバー
フロー/アンダーフローに対してALENを感知可能と
する。ALEN(及びADEN)に対してアドレス演算
を使用する結果は、図3における実施例がここで議論さ
れるときにより明確になるであろう。
【0104】 感知可能なALEN及び感知不可能なADEN(図3)
【0105】この発明は、アドレスがADENを使用す
るか否かにかかわらず、アドレス演算によって生成され
るALENに適用される。そして、この発明は、ADE
Nがアクセス・レジスタ型の処理によって制御されると
きのように、ALENがアドレス演算によって生成さ
れ、ADENは生成されないときに適用される。これは
図3に示されている。
【0106】図3において、アドレス生成処理は、CP
Uにおいて48ビットのGPRが使用されることを仮定
している。これは、好ましい実施例におけるCPUはそ
のGPRをB及びXレジスタとして使用するから、それ
ぞれの基底レジスタ51及び索引レジスタ52を48ビ
ットのレジスタとする。(この発明は、基底及び索引レ
ジスタを使用するCPUにも適用することができること
が理解される。)
【0107】47ビットのアドレス演算加算器53は、
実行されている命令の現在のオペランドにおける12ビ
ットのDフィールド57と同様に、B及びXレジスタ5
1及び52のアドレスを受け取る。加算器53は、それ
が47ビットのアドレス生成レジスタ54に出力する4
7ビットのLVAを生成するために、そのB及びXレジ
スタ入力とそのオペランドが導出されたD入力との三方
加算を実行する。
【0108】LVAは、31ビットの低位DAT VA
フィールドと16ビットのALENフィールドとの二つ
のフィールドとしてアウトゲートされる。31ビットの
低位DAT VAフィールドは従来のDAT(動的アド
レス変換)手段33に供給され、16ビットのALEN
フィールドは、図2に示されるLVAT30と同一であ
ってよいLVAT30のALEN入力に供給される。
【0109】オーバーフロー/アンダーフローは、加算
器53内での加算処理においてDAT VAフィールド
からALENフィールドに起こることができ、その結
果、アドレス生成処理によってALENが自動的に生成
される。
【0110】レジスタ54における47ビットのLVA
サイズは、Bレジスタに関連するアクセス・レジスタ
(AR)56に含まれるADENフィールドをレジスタ
54における47ビットのLVAの最高位端に実効的に
連結することによって、63ビットのサイズを有するL
VAに増大させることができる。ADENフィールドの
実効的な連結は、ARにおけるADENの内容をLVA
T30のADEN入力に供給することによって行われる
(これは図2において説明されているのと同一であ
る。)。
【0111】しかし、AR56におけるADENフィー
ルドは、加算器53におけるアドレス演算動作の一部分
ではなく、そのため、LVAのADEN及びALENフ
ィールドの間にオーバーフローまたはアンダーフローが
起こることはできない。すなわち、ARは加算器53の
アドレス演算処理には関与しない。ALENから(加算
器53におけるLVAの47ビットを越えて)オーバー
フローまたはアンダーフローが起こるときにはいつで
も、それはレジスタ54における47ビットのLVAを
0またはその最高値にそれぞれセットし直す。この実施
例においては、アドレス演算はモジュロ247で行われ
る。
【0112】図3においてARにあるADENによって
生じる非オーバーフロー及び非アンダーフローの制約
は、LVAT30が、ADにおける一つのADEだけ及
び一つのALだけにアクセスすることを可能とする。こ
れは、ADEN値がそのARにおいて固定され、その結
果、ADENはアドレス演算の結果として変化すること
ができないためである。このARの制約は、ADEN変
換アクセスを単一のALだけに制限する(加算器53に
おけるLVAの変化にかかわらず)。これは、そのLV
Aの変化がそのADENを変化させ、非常に大きな数ま
での任意の数(例えば、16ビットのADENに対して
最高216個のAL)のADE及びALにアクセスするこ
とが可能な、図2における実施例の動作と非常に異なっ
ている。
【0113】 感知可能なALENの順序番号制御(図4)
【0114】図4において、新規に導出されたALEN
(図3における導出処理によって得られる)は、従来の
ART処理と組み合わせられる。図4はまた、アクセス
・レジスタ(AR)61における順序番号(SN)及び
Pビットを供給し、これらは、アドレス生成レジスタ5
4からこの発明によって提供される、オーバーフロー/
アンダーフローを感知可能なタイプのALENと組み合
わせられる。
【0115】Pビット、SN及びALENは、ESA/
390の動作原理(資料番号SA22−7201−0
0)に説明されている従来のAR変換(ART)処理6
2に入力され、使用される。
【0116】AR61からのPビット値は、メモリにお
ける特定のALを指定する二つのALO(AL起点)の
うちの一つを選択する。レジスタ54からのALENは
ALにおけるALEを選択する。ALEの内容は図4に
示されている。
【0117】AR61からのSNは、ステップ63によ
って、アクセスされたALEにおけるALESNと比較
される。ART処理62における等価比較ステップ63
は、ART処理の残りをイネーブルとする。ステップ6
3に対する不等比較条件は、ART処理を終了させ、A
RT処理が行われている現在のオペランドを有する命令
の条件符号の例外を生成する。
【0118】Pビット及びSN値は、問題状態プログラ
ムによるART処理による後の使用の用意に、システム
制御プログラムによってあらかじめ生成される。
【0119】感知不可能なADEN及びALENを使用
するLVAT(図5)
【0120】図5において、図2において説明された新
規なLVAT処理30は、オペランドにより選択された
Bレジスタ72に関連するアクセス・レジスタ(AR)
71における感知不可能なADEN及びALENと組み
合わせて使用される。Bレジスタ72は、図5における
従来の31ビットのGPRである。使用されるレジスタ
73も従来の31ビットのGPRである。
【0121】図5におけるADEN及びALEN値は、
問題状態プログラムによるLVAT処理30による後の
使用の用意に、システム制御プログラムによってあらか
じめ生成される。
【0122】ADEN値もALEN値もAR71にある
間は変化することができず、それによりLVAT処理3
0に単一のALEを選択させる。図5におけるこの単一
のALE選択を、単一のALにおける216個のALEか
らの選択を可能とする図4における単一のAL選択と比
較されたい。さらにまた、図5における単一のALE選
択を、複数のADEにより選択可能な複数のALにおけ
る232個のALEからの選択を可能とする図3における
複数のAL選択と比較されたい。
【0123】図5における制約の結果は、その仮想アド
レッシングを、単一の2GBのアドレス空間内に制限す
ることである。従来のAR ALET動作を越える利点
は、従来のAR ALETを用いた場合の最高217個の
中からではなく、最高232個の異なる2GBのアドレス
空間の中からの選択を可能とすることである。図5にお
けるシステムの利点は、従来の31ビットの加算器74
を従来の31ビットのアドレス生成レジスタ76ととも
に使用することができることである。
【0124】図2における大規模仮想アドレス空間(L
VAS)の定義
【0125】従って図2においては、大規模仮想アドレ
ス空間(LVAS)は、単一のアクセス・ディレクトリ
(AD)43によって定義される。このADは、一つの
LVASを定義する一つまたはそれ以上の連続のADE
を含む。このADEにおいては、LVASの最初のAD
EはADにおける最初のADEであり、LVASはそれ
ぞれの次の有効なADEを含み、LVASは有効なAD
Eに到達したときにその「終了」の標識をそのLAST
−ALフィールドにおける一つの状態にセットして(そ
のADEにLVASの最後の有効なADEとマークを付
けて)終了する。
【0126】LVASにおけるALの順序は、ADにお
けるLVASから成る連続なADEの順序によって決定
される。LVASにおけるALは、それぞれのALがL
VASのそれぞれのADEにおけるALOフィールドに
よって独立にアドレスされるので、任意の順序を有する
ことができる。従って、それぞれのLVASは、そのA
DEによって定義されるALにおけるALEの組から成
る。LVASのALEは、任意の単一のAL内で連続で
あるだけである。それぞれのALEはLVASの2GB
の部分を表す。しかし、LVASの最後の2GBの部分
はそのセグメント・テーブル及びページ・テーブルの最
後の部分に無効とマークが付けられた任意の数のセグメ
ント及びページを有することができるので、LVASの
サイズは2GBの整数倍である必要はない。
【0127】AR及びLVA互換性制御(図6)
【0128】図6の実施例は、命令オペランドの仮想ア
ドレスが、新規なLVAモードまたは従来のアクセス・
レジスタ(AR)モードにおいて処理されることを可能
とする。
【0129】両モードは、CPUにおける現在のプログ
ラム状況ワード(PSW)におけるモード・ビットのセ
ッティングによって制御される。図6におけるPSW1
10は、IBM ESA/390アーキテクチャにおけ
るPSWの内容を含むが、CPUが31ビットよりも大
きなアドレッシングで動作していることを指定する大規
模アドレス制御ビット(L)が付加されている。このL
ビットは、PSW110におけるDATモード・ビット
との組み合わせで動作する。このLビットがオンであ
り、DATビットがオフであるとき、それらはCPUを
大規模実アドレス(LRA)で動作可能とする。Lビッ
トとDATビットとの両方がオンであるとき、それらは
CPUを大規模仮想アドレス(LVA)で動作可能とす
る。
【0130】アクセス・レジスタ・モード(AR)制御
ビットは、IBM ESA/390アーキテクチャによ
るPSWにおいて提供される。ARビットがオンである
とき、CPUは、そのレジスタが命令オペランドに対す
る基底レジスタとして使用されるときには任意の汎用レ
ジスタと関連するARの内容を使用することができる。
ARビットがオフのときには、CPUはAR機能なしで
動作する。
【0131】三つのPSW制御ビットDAT、AR及び
L並びに関連する新しいハードウェアは、CPU動作
を、従来のAR動作及び新しいLVA動作の両方と互換
性のあるものとする。これは、従来のAR動作を使用す
る旧プログラムがCPU上で実行されることを可能とす
る。そして、大規模仮想アドレッシングを使用する新た
なプログラムはCPU上で実行することができる。
【0132】図6におけるこの互換性にとって重要なこ
とは、二つのタイプのアウトゲートが提供される基底レ
ジスタ151のアウトゲート構造である。一つのタイプ
は、基底レジスタ151からの47ビットの大規模基底
アドレスをゲート・アウトする。他方のタイプは、基底
レジスタ151の内容を二つの部分にゲート・アウトす
る。これらの二つの部分は、従来の小規模基底アドレス
(従来の32ビットの汎用レジスタから得ることができ
るような)に対応する低位31ビットと、ALEN(A
Rからあらかじめ得ることができるような)を表す高位
16ビットである。基底レジスタ151は、64ビット
の汎用レジスタであってよい。
【0133】従って、従来のタイプのARの内容は、A
R161におけるPビット・フィールド及びSNフィー
ルドと基底レジスタ151における高位16ビットとの
組み合わせから得られる。(SNフィールドは従来のA
RにおけるALESNに対応する。)この従来のタイプ
のARの内容は、図6に示される新規なハードウェアに
よって提供可能である。
【0134】この好ましい実施例は、オン状態のDAT
ビット、オン状態のARビット及びオフ状態のLビット
の組み合わせによってPSWにおけるARモードを示
す。ARモードにおいては、レジスタ151における1
6個の高位ビットはANDゲート84によって使用禁止
とされ、基底レジスタ151における31個の低位ビッ
トはADゲート86によって加算器153にアウトゲー
トされる。ARモードにおいては、索引レジスタ152
は、その31個の低位ビットだけをANDゲート88を
通して加算器153にアウトゲートし、それは次にLビ
ットのオフ状態によって使用可能とされる。
【0135】ARモードにおいては、47ビットの加算
器153は、それは31ビットの値を受け取るだけであ
るため、31ビットの加算器として動作する。そして、
アドレス生成レジスタ154は、31ビットのアドレス
だけを生成する。なぜならば、それは加算器153から
の31ビットの値を受け取るだけであるからである。ア
ドレス生成レジスタ154の高位の16ビットのLVA
ALEN部分は、ART162にアウトゲートされな
い。なぜならば、それはARモードにおけるLビットの
オフ状態によって使用禁止とされるからである。
【0136】ARモード及びLVAモードの両動作にお
いて、ANDゲート83は、P及びSNフィールドをA
RT(アクセス・レジスタ変換)手段162にアウトゲ
ートする。それは、両モードにおいて、アウトゲート8
3は、PSW内にあるDATビットによって使用可能と
されるからである。
【0137】図6のLVAモードは、図4について前に
説明した仕方で動作する。LVAモードにおいては、D
ATビットはオン、ARビットはオフ、Lビットはオン
である。次に、ANDゲート85は、Lビットのオン状
態とARビットのオフ状態とによって使用可能とされ、
図4におけるように、レジスタ151における47ビッ
トの基底アドレスを加算器153に供給する。次に、L
ビット(インバータ82を通る)のオン状態は、従来の
AR動作を使用不可能とするために、出力ゲート84、
86及び88を使用不可能とする。ANDゲート87
は、Lビットのオン状態によって使用可能とされ、索引
レジスタ152にその47ビットの内容を加算器153
に出力させる。
【0138】上記以外は、LVAモードは、図4におい
て説明したように動作する。
【0139】もしDAT回路133から小規模の変換さ
れた実アドレスが出力されるならば、それは米国特許出
願番号07/754810に開示された方法を使用する
ことによって大規模な実アドレスに変換される。
【図面の簡単な説明】
【図1】命令で指定されたオペランド・アドレス構成要
素からのアドレス演算による大規模仮想アドレス並びに
そのADEN、ALEN及びDAT VAアドレス構成
要素の生成と、大規模実アドレスへのADEN、ALE
N及びDAT VAアドレス構成要素の変換と、DAT
がオフのときに大規模実アドレスとして直接使用される
アドレス計算加算器の64ビットの出力とを示し、この
発明が単なる大規模仮想アドレッシングの代わりに大規
模論理アドレッシングを提供するためにどのように使用
されるかを示す略線図である。
【図2】大規模仮想アドレス変換(LVAT)及びDA
T処理の表示を提供する略線図である。
【図3】アドレス演算処理によるALEN及びDAT
VAの生成及びアクセス・レジスタ(AR)におけるA
DENの提供を説明する略線図である。
【図4】アドレス演算処理によるALEN及びDAT
VAの生成及びアクセス・レジスタ(AR)における順
序番号(SN)によるALEN動作の検査を説明する略
線図である。
【図5】この発明のLVAT処理とともにアクセス・レ
ジスタ(AR)におけるADEN及びALENフィール
ドを使用する小規模31ビットの仮想アドレスの生成を
示す略線図である。
【図6】CPUの現在のプログラム状況ワード(PS
W)における特別の制御ビットの制御下で新たなLVA
モードまたは従来のARモードのいずれか一つでCPU
を動作させることを可能とするCPUに対するAR/L
VA互換性の提供を説明する略線図である。
【符号の説明】
22 基底レジスタ 23 索引レジスタ 26 加算器 30 大規模仮想アドレス変換機構 33 動的アドレス変換機構 34 大規模実アドレス・レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケニス・アーニスト・プラムベック アメリカ合衆国、ニューヨーク州ポキプシ ー、デイジイレイン 7 (72)発明者 キャスパ・アンソニ・スキャルジ アメリカ合衆国、ニューヨーク州ポキプシ ー、アカデミーストリート 160 (72)発明者 リチャード・ジョン・シュモールツ アメリカ合衆国、ニューヨーク州ワッピン ジャーズフォールズ、エッジヒルドライブ 7 (72)発明者 バスカー・シンハ アメリカ合衆国、ニューヨーク州ワッピン ジャーズフォールズ、ケンデルドライブ 19

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムにおいて実行し
    ているプログラムによる使用のために大規模仮想アドレ
    ス空間を提供するための装置であって、 命令オペランドのアドレス構成要素を31個のビット位
    置よりも大きなサイズを有する有効大規模アドレスに算
    術的に結合するための手段と、 大規模仮想アドレス空間テーブルにおける一列のエント
    リであってそれぞれのエントリは31個のビット位置の
    サイズを有するアドレスを変換するためのアドレス変換
    テーブルを表すものにより大規模仮想アドレス空間を提
    供するための手段と、 上記大規模仮想アドレスを実アドレスに変換するために
    必要とされるアドレス変換テーブルを表すエントリを得
    るために上記大規模仮想アドレス空間テーブルに索引を
    付けるために上記有効大規模アドレスの高位部分を使用
    するための手段であって、上記高位部分は上記大規模仮
    想アドレスにおける最低位の31個のビット位置の外部
    の上記大規模仮想アドレスにおけるビット位置から成る
    ものと、 上記実アドレスを使用する上記コンピュータ・システム
    のメモリにおける記憶場所にアクセスするための手段と
    を有する上記装置。
  2. 【請求項2】 変換された実アドレスを、上記コンピュ
    ータ・システムにおける上記大規模システム・メモリに
    おける記憶場所にアクセスするための大規模実アドレス
    に拡張するための手段をさらに有する請求項1記載の、
    コンピュータ・システムにおいて実行しているプログラ
    ムによる使用のために大規模仮想アドレス空間を提供す
    るための装置。
  3. 【請求項3】 コンピュータ・システムにおいて実行し
    ているプログラムにより使用される大規模仮想アドレス
    をアドレス変換する方法であって、 32ビットよりも大きなサイズを有する大規模基底レジ
    スタと変位とにより命令オペランドを指定し、少なくと
    も上記大規模基底レジスタの内容と上記変位とを加える
    ことによって大規模論理アドレスを生成するステップ
    と、 上記コンピュータ・システムにおける処理装置のプログ
    ラム状況ワードにおける動的アドレス変換フィールドを
    試験するステップと、 もし上記動的アドレス変換フィールドに対してオフ状態
    が存在するならば、上記大規模論理アドレスを実アドレ
    スとして出力するステップと、 もし上記動的アドレス変換フィールドに対してオン状態
    が存在するならば、上記生成された大規模論理アドレス
    を、少なくとも、従来型仮想アドレスに対応するサイズ
    の低位動的アドレス変換仮想アドレス部分と上記低位部
    分に連結されたアクセス・リスト索引番号を表すための
    高位部分とに分離するステップであって、上記大規模論
    理アドレスは上記動的アドレス変換の状態がオンのとき
    に大規模仮想アドレスであるものと、 一組のアクセス・リスト・エントリであってそれぞれの
    アクセス・リスト・エントリは従来型サイズの仮想アド
    レス空間を表すものを含むシステム・メモリにおけるア
    クセス・リストを指定するステップであって、上記アク
    セス・リストは大規模仮想アドレス空間を形成するもの
    と、 上記アクセス・リストにおけるアクセス・リスト・エン
    トリを選択するために上記アクセス・リスト索引番号を
    使用するステップであって、上記選択されたアクセス・
    リスト・エントリは、コンピュータ・システムにおける
    上記大規模仮想アドレスを表す変換された実アドレスを
    得るために上記大規模仮想アドレスの上記動的アドレス
    変換仮想アドレス部分を変換するための従来型変換テー
    ブルのための位置表示を含むものとを有する上記方法。
  4. 【請求項4】 単一の大規模仮想アドレス空間を表すた
    めの複数のアクセス・リストを提供するステップをさら
    に有する請求項3記載の、大規模仮想アドレスをアドレ
    ス変換する方法。
  5. 【請求項5】 コンピュータ・システムにおいて実行し
    ているプログラムにより使用される大規模仮想アドレス
    をアドレス変換する方法であって、 32ビットよりも大きなサイズを有する大規模基底レジ
    スタとそれが設けられる場合には変位とにより命令オペ
    ランドを指定し、それが設けられる場合には上記変位の
    加算により変更された上記大規模基底レジスタの内容を
    使用することによって大規模仮想アドレスを生成するス
    テップと、 上記生成された大規模仮想アドレスを、少なくとも、従
    来型仮想アドレスに対応するサイズの低位動的アドレス
    変換仮想アドレス部分と上記低位部分に連結されたアク
    セス・リスト索引番号を表すための高位部分とに分離す
    るステップと、 それぞれ異なる従来型サイズの仮想アドレス空間を表す
    ための一組のアクセス・リスト・エントリを含むシステ
    ム・メモリにおけるアクセス・リストを指定するステッ
    プであって、上記組における上記アクセス・リスト・エ
    ントリは大規模仮想アドレス空間の部分を表すものと、 上記アクセス・リストに上記アクセス・リスト索引番号
    で索引を付けることによってアクセス・リスト・エント
    リを選択し、上記メモリにおける上記大規模仮想アドレ
    スの変換を表す実アドレスを得るために上記大規模仮想
    アドレスの上記動的アドレス変換仮想アドレス部分を変
    換するための上記選択されたアクセス・リスト・エント
    リにおいて表示される従来型変換テーブルにアクセスす
    るステップとを有する上記方法。
  6. 【請求項6】 アクセス・ディレクトリ・エントリ番号
    部分は上記アクセス・リスト索引番号部分よりも高位を
    有し、かつ上記アクセス・ディレクトリ・エントリ番号
    部分は上記アクセス・リスト索引番号部分と連結されて
    いる上記生成された大規模仮想アドレスの上記アクセス
    ・ディレクトリ・エントリ番号部分を分離するステップ
    と、 大規模仮想アドレス空間のそれぞれの部分を表すための
    一組のアクセス・ディレクトリ・エントリであってそれ
    ぞれのアクセス・ディレクトリ・エントリは複数の従来
    型サイズの仮想アドレス空間を表すことができるものを
    含むシステム・メモリにおけるアクセス・ディレクトリ
    を指定するステップと、 上記アクセス・ディレクトリにおけるアクセス・ディレ
    クトリ・エントリにアクセスするために上記アクセス・
    ディレクトリ・エントリ番号部分を使用し、上記大規模
    仮想アドレスを上記システム・メモリにおける上記実ア
    ドレスに変換するために必要とされるアクセス・リスト
    を指定するために上記アクセスされたアクセス・ディレ
    クトリ・エントリの内容を使用するステップとをさらに
    有する請求項5記載の、大規模仮想アドレスをアドレス
    変換する方法。
  7. 【請求項7】 上記システムにおけるCPUにおいて実
    行されている命令オペランドの大規模基底レジスタ、索
    引レジスタ及び変位の仕様に対して上記大規模基底レジ
    スタの内容と上記変位とに索引レジスタの内容も加える
    ことによって大規模仮想アドレスを生成するステップを
    さらに有する請求項5記載の、大規模仮想アドレスをア
    ドレス変換する方法。
  8. 【請求項8】 上記生成された大規模仮想アドレスの上
    記基底レジスタと関連するアクセス・レジスタにおける
    アクセス・ディレクトリ・エントリ番号を提供するステ
    ップであって、上記アクセス・レジスタにおける上記ア
    クセス・ディレクトリ・エントリ番号は上記大規模仮想
    アドレスの上記生成されたアクセス・リスト索引番号部
    分よりも高位の上記大規模仮想アドレスの部分であるも
    のと、 それぞれ大規模仮想アドレス空間の部分を表すための一
    組のアクセス・ディレクトリ・エントリを含むシステム
    ・メモリにおけるアクセス・ディレクトリを指定するス
    テップと、 上記アクセス・ディレクトリにおける単一のアクセス・
    ディレクトリ・エントリであって単一のアクセス・リス
    トを指定するものを指定するために上記アクセス・ディ
    レクトリ・エントリ番号を使用し、上記単一のアクセス
    ・リスト内で必要とされるアクセス・リスト・エントリ
    であって上記生成された大規模仮想アドレスを上記シス
    テム・メモリにおける実アドレスに変換するための変換
    テーブルを表すものにアクセスするために上記生成され
    た大規模仮想アドレスにおける上記生成されたアクセス
    ・リスト索引番号を使用するステップとをさらに有する
    請求項5記載の、大規模仮想アドレスをアドレス変換す
    る方法。
  9. 【請求項9】 必要とされる変換テーブルがそれにより
    アクセスされるアクセス・リストにおけるアクセス・リ
    スト・エントリを指定するために上記生成されたアクセ
    ス・リスト索引番号が使用される従来型アクセス・レジ
    スタ変換処理における使用のために従来型アクセス・レ
    ジスタにおけるアクセス・リスト索引番号を置換するた
    めに上記生成されたアクセス・リスト索引番号フィール
    ドを使用するステップをさらに有する請求項5記載の、
    大規模仮想アドレスをアドレス変換する方法。
  10. 【請求項10】 生成されたアクセス・リスト索引番号
    を提供する上記生成された大規模仮想アドレスの上記基
    底レジスタの内容と関連するアクセス・レジスタにおけ
    る順序番号を提供するステップと、 等価比較条件が得られるときだけ上記アクセス・レジス
    タ変換処理が進行することを可能とするための、上記従
    来型アクセス・レジスタ変換処理における上記生成され
    たアクセス・リスト索引番号によってアクセスされた上
    記アクセス・リスト・エントリにおける順序番号との比
    較のために上記順序番号を使用するステップとをさらに
    有する請求項5記載の、大規模仮想アドレスをアドレス
    変換する方法。
  11. 【請求項11】 コンピュータ・システムにおける大規
    模仮想アドレスを提供し、アドレス変換する方法であっ
    て、 従来型命令オペランドによって指定された32ビットの
    サイズの基底レジスタと関連するアクセス・レジスタに
    おけるアクセス・ディレクトリ・エントリ番号及びアク
    セス・リスト・エントリ番号を提供するステップであっ
    て、上記命令オペランドによって指定されたアドレス構
    成要素から生成された従来型仮想アドレス仕様を拡張す
    る上記アクセス・ディレクトリ・エントリ番号及び上記
    アクセス・リスト・エントリ番号によって大規模仮想ア
    ドレスが提供され、上記アドレス・ディレクトリ・エン
    トリ番号は上記拡張されたアドレスにおける上記アドレ
    ス・リスト・エントリ番号よりも高位を有するものと、 それぞれ大規模仮想アドレス空間の部分を表す一組のア
    クセス・ディレクトリ・エントリを含むシステム・メモ
    リにおけるアクセス・ディレクトリを指定するステップ
    と、 アクセス・リストにアクセスするための上記アクセス・
    ディレクトリにおけるアクセス・ディレクトリ・エント
    リを指定するために上記アクセス・レジスタにおける上
    記アクセス・ディレクトリ・エントリ番号フィールドを
    使用し、上記大規模仮想アドレスを上記システム・メモ
    リにおける実アドレスに変換するための変換テーブルを
    指定するために上記アクセスされたアクセス・リストに
    おけるアクセス・リスト・エントリを指定するために上
    記アクセス・レジスタにおける上記アクセス・リスト・
    エントリ番号フィールドを使用するステップであって、
    上記生成された従来型仮想アドレス仕様は上記アクセス
    ・ディレクトリ・エントリ番号及び上記アクセス・リス
    ト・エントリ番号によって指定された上記単一の従来型
    変換テーブルを使用するだけであるものとを有する上記
    方法。
  12. 【請求項12】 コンピュータ・メモリにおけるデータ
    及び命令を指定するために大規模仮想アドレスをアドレ
    ス変換する方法であって、 大規模仮想アドレスを、少なくとも、従来型仮想アドレ
    ス変換テーブルを使用するための従来型サイズの仮想ア
    ドレス空間を表すための従来型仮想アドレス・サイズを
    有する低位従来型仮想アドレス仕様部分と、上記大規模
    仮想アドレスにおける上記低位部分と連結された少なく
    とも一つの高位部分とに分離するステップと、 システム・メモリにおける一つまたはそれ以上のアクセ
    ス・リストであってそれぞれのアクセス・リストは一組
    のエントリを含むものを指定するステップであって、そ
    れぞれのエントリは関連する従来型仮想アクセス変換テ
    ーブルのアドレッシングを可能とすることによって従来
    型サイズの仮想アドレス空間を表すことが可能であるも
    のと、 上記大規模仮想アドレスが仮想アドレッシングを実行し
    ている大規模仮想アドレス空間から成る一列の従来型仮
    想アドレス空間を表すために一つまたはそれ以上のアク
    セス・リストにおける一列のエントリに上記大規模仮想
    アドレスの高位部分を関連させるステップと、 上記大規模仮想アドレス空間を表す上記一列のエントリ
    における選択されたエントリと関連する上記従来型変換
    テーブルを使用する上記大規模仮想アドレスの上記低位
    部分を変換することによって上記大規模仮想アドレスを
    変換するステップとを有する上記方法。
  13. 【請求項13】 上記低位従来型仮想アドレス仕様部分
    を上記大規模仮想アドレスにおける最低位の31個のビ
    ット位置としてサイズ変更し、上記高位部分を上記低位
    部分に隣接する上記大規模仮想アドレスにおける一組の
    連続するビット位置としてサイズ変更するステップをさ
    らに有する請求項12記載の、大規模仮想アドレスをア
    ドレス変換する方法。
  14. 【請求項14】 上記高位部分を互いに連結されたより
    高位の部分とより低位の部分とに分離するステップと、 大規模仮想アドレス空間を表すためにシステム・メモリ
    におけるアクセス・ディレクトリを指定するステップ
    と、 上記より高位の部分を、システム・メモリにおける関連
    するアクセス・リストを指定するために使用されるエン
    トリを指定するための上記アクセス・ディレクトリの索
    引として使用し、上記より低位の部分を、上記大規模仮
    想アドレスの上記低位従来型仮想アドレス仕様部分を変
    換することによって上記大規模仮想アドレスをアドレス
    変換するためのシステム・メモリにおける関連する従来
    型変換テーブルを指定するために使用されるエントリを
    指定するための上記指定されたアクセス・リストの索引
    として使用するステップとをさらに有する請求項12記
    載の、大規模仮想アドレスをアドレス変換する方法。
JP4288025A 1991-12-06 1992-10-27 大規模仮想アドレス空間の提供装置及びアドレス変換方法 Expired - Lifetime JPH07104818B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/803,320 US5381537A (en) 1991-12-06 1991-12-06 Large logical addressing method and means
US803320 2007-05-14

Publications (2)

Publication Number Publication Date
JPH05233453A true JPH05233453A (ja) 1993-09-10
JPH07104818B2 JPH07104818B2 (ja) 1995-11-13

Family

ID=25186222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4288025A Expired - Lifetime JPH07104818B2 (ja) 1991-12-06 1992-10-27 大規模仮想アドレス空間の提供装置及びアドレス変換方法

Country Status (5)

Country Link
US (1) US5381537A (ja)
EP (1) EP0545076B1 (ja)
JP (1) JPH07104818B2 (ja)
AT (1) ATE198381T1 (ja)
DE (1) DE69231611T2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826057A (en) * 1992-01-16 1998-10-20 Kabushiki Kaisha Toshiba Method for managing virtual address space at improved space utilization efficiency
US5479631A (en) * 1992-11-19 1995-12-26 International Business Machines Corporation System for designating real main storage addresses in instructions while dynamic address translation is on
US5548746A (en) * 1993-11-12 1996-08-20 International Business Machines Corporation Non-contiguous mapping of I/O addresses to use page protection of a process
US5606683A (en) * 1994-01-28 1997-02-25 Quantum Effect Design, Inc. Structure and method for virtual-to-physical address translation in a translation lookaside buffer
US5655139A (en) * 1995-05-26 1997-08-05 National Semiconductor Corporation Execution unit architecture to support X86 instruction set and X86 segmented addressing
JPH0934748A (ja) * 1995-07-17 1997-02-07 Mitsubishi Electric Corp エミュレーション用マイクロコンピュータ
US5732404A (en) * 1996-03-29 1998-03-24 Unisys Corporation Flexible expansion of virtual memory addressing
US5956754A (en) * 1997-03-03 1999-09-21 Data General Corporation Dynamic shared user-mode mapping of shared memory
US5940868A (en) * 1997-07-18 1999-08-17 Digital Equipment Corporation Large memory allocation method and apparatus
US6192463B1 (en) * 1997-10-07 2001-02-20 Microchip Technology, Inc. Processor architecture scheme which uses virtual address registers to implement different addressing modes and method therefor
US6349380B1 (en) * 1999-03-12 2002-02-19 Intel Corporation Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor
US6502181B1 (en) 1999-09-17 2002-12-31 Zilog, Inc. Method and apparatus for an enhanced processor
US6560694B1 (en) 2000-01-14 2003-05-06 Advanced Micro Devices, Inc. Double prefix overrides to provide 16-bit operand size in a 32/64 operating mode
US6973562B1 (en) * 2000-01-14 2005-12-06 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US6571330B1 (en) 2000-01-14 2003-05-27 Advanced Micro Devices, Inc. Address size and operand size prefix overrides for default sizes defined by an operating mode of a processor
US6715063B1 (en) 2000-01-14 2004-03-30 Advanced Micro Devices, Inc. Call gate expansion for 64 bit addressing
US7124286B2 (en) 2000-01-14 2006-10-17 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US6877158B1 (en) * 2000-06-08 2005-04-05 International Business Machines Corporation Logical partitioning via hypervisor mediated address translation
US7058791B1 (en) 2000-08-09 2006-06-06 Advanced Micro Devices, Inc. Establishing a mode indication responsive to two or more indications
US6807622B1 (en) 2000-08-09 2004-10-19 Advanced Micro Devices, Inc. Processor which overrides default operand size for implicit stack pointer references and near branches
US7100028B2 (en) * 2000-08-09 2006-08-29 Advanced Micro Devices, Inc. Multiple entry points for system call instructions
US6779049B2 (en) 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
US6807617B2 (en) 2001-04-02 2004-10-19 Advanced Micro Devices, Inc. Processor, method and apparatus with descriptor table storing segment descriptors of varying size
US6711663B2 (en) * 2001-11-15 2004-03-23 Key Technology Corporation Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
US6704852B2 (en) * 2001-11-16 2004-03-09 Key Technology Corporation Control device applicable to flash memory card and method for building partial lookup table
US6981125B2 (en) * 2003-04-22 2005-12-27 International Business Machines Corporation Method and apparatus for managing shared virtual storage in an information handling system
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0193847A (ja) * 1987-10-05 1989-04-12 Hitachi Ltd アドレス拡張方式

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2400729A1 (fr) * 1977-08-17 1979-03-16 Cii Honeywell Bull Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees
US4285040A (en) * 1977-11-04 1981-08-18 Sperry Corporation Dual mode virtual-to-real address translation mechanism
NL7807314A (nl) * 1978-07-06 1980-01-08 Philips Nv Inrichting voor het vergroten van de lengte van een logisch computeradres.
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
DE3479356D1 (en) * 1983-12-23 1989-09-14 Hitachi Ltd A data processor with control of the significant bit lenghts of general purpose registers
JPS6184754A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 拡張アドレス変換装置
US4868740A (en) * 1986-06-04 1989-09-19 Hitachi, Ltd. System for processing data with multiple virtual address and data word lengths
JPH0195347A (ja) * 1987-10-08 1989-04-13 Nec Corp アドレス変換方式
US4979098A (en) * 1988-02-10 1990-12-18 International Business Machines Corporation Multiple address space token designation, protection controls, designation translation and lookaside
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
CA1308202C (en) * 1988-02-10 1992-09-29 Richard I. Baum Access register translation means for address generating mechanism for multiple virtual spaces

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0193847A (ja) * 1987-10-05 1989-04-12 Hitachi Ltd アドレス拡張方式

Also Published As

Publication number Publication date
ATE198381T1 (de) 2001-01-15
US5381537A (en) 1995-01-10
EP0545076A1 (en) 1993-06-09
DE69231611T2 (de) 2001-07-05
DE69231611D1 (de) 2001-02-01
JPH07104818B2 (ja) 1995-11-13
EP0545076B1 (en) 2000-12-27

Similar Documents

Publication Publication Date Title
JPH07104818B2 (ja) 大規模仮想アドレス空間の提供装置及びアドレス変換方法
JP4268332B2 (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
CN102792285B (zh) 用于处理数据的装置和方法
US5721858A (en) Virtual memory mapping method and system for memory management of pools of logical partitions for bat and TLB entries in a data processing system
US7124275B2 (en) Apparatus and method for determining a physical address from a virtual address by using a hierarchical mapping regulation with compressed nodes
JP5079104B2 (ja) 変換例外修飾子を用いる動的アドレス変換
Houdek et al. IBM System/38 support for capability-based addressing
JP3666689B2 (ja) 仮想アドレス変換方法
US5426748A (en) Guest/host extended addressing method and means with contiguous access list entries
JPH0485642A (ja) 仮想計算機システム
US5287475A (en) Data processing apparatus operable in extended or unextended virtual address spaces without software modification
US5900019A (en) Apparatus for protecting memory storage blocks from I/O accesses
US5708790A (en) Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system
JPS629930B2 (ja)
US5423013A (en) System for addressing a very large memory with real or virtual addresses using address mode registers
JPH0821003B2 (ja) コンピュータ・キャッシュ・システム用の加算器/ハッシュ回路
US5802397A (en) System for storage protection from unintended I/O access using I/O protection key by providing no control by I/O key entries over access by CP entity
JPH0327940B2 (ja)
JP2933628B2 (ja) 主記憶装置管理方法および計算機システム
EP4134828B1 (en) Address translation circuitry and method for performing address translations
JP2000029687A (ja) 中央処理装置上でデ―タをパック及びアンパックする方法及び装置
JPH0343651B2 (ja)
JPS629931B2 (ja)
JPH0588981A (ja) データ処理装置
JPH0210447A (ja) キャッシュメモリの制御回路