JPH0769867B2 - 仮想記憶システムのためのディレクトリ索引テーブル論理装置 - Google Patents

仮想記憶システムのためのディレクトリ索引テーブル論理装置

Info

Publication number
JPH0769867B2
JPH0769867B2 JP4188473A JP18847392A JPH0769867B2 JP H0769867 B2 JPH0769867 B2 JP H0769867B2 JP 4188473 A JP4188473 A JP 4188473A JP 18847392 A JP18847392 A JP 18847392A JP H0769867 B2 JPH0769867 B2 JP H0769867B2
Authority
JP
Japan
Prior art keywords
address
bits
space
dlat
virtual
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
JP4188473A
Other languages
English (en)
Other versions
JPH05197626A (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 JPH05197626A publication Critical patent/JPH05197626A/ja
Publication of JPH0769867B2 publication Critical patent/JPH0769867B2/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

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】
【産業上の利用分野】本発明は、一般的に、データ処理
システムのための仮想記憶機構に関し、特に、複数のデ
ータ空間での処理に際し、周期的な仮想ページアドレス
の改良された処理を可能にする改良されたディレクトリ
索引テーブル(directory look-asidetable:DLAT)構造に
関する。本発明は、特に、複数のデータ空間において並
行して仮想アドレスを実主記憶アドレスに変換できるDL
ATエントリを有するシステムのための、DLAT内のシノニ
ムエントリの最小化を目指している。
【0002】
【従来の技術】データ処理システムのための仮想記憶編
成およびその管理は、例えば、HarveyM. Deitel著“An
Introduction to Operating Systems",Addison-Wesley
(1984)や、Harold LorinおよびHarvey M. Deitel著“Op
erating Systems",Addison-Wesley(1981)や、Harold S.
Stone著“High-Performance Computer Architecture",
Addison-Wesley(1987)に説明されている。仮想記憶シス
テムでは、ページングは再配置及びアドレス対物理位置
結合機構であり、これはシステムのユーザに、実際に使
用可能な空間よりも相当大きく見えるメモリ空間を提供
する。仮想記憶概念のキーとなる特徴は、実行プロセス
で参照されるアドレスと主記憶で使用可能なアドレスと
が互いに独立であることである。実行プロセスによって
参照されるアドレスを、仮想アドレスと呼び、主記憶で
使用可能なアドレスを実アドレスと呼ぶ。仮想アドレス
は、プロセスが実行する実アドレスに写像されねばなら
ず、それは動的アドレス変換(dynamic address transla
tion:DAT)機構によって実行される。そのような機構の1
つは、ディレクトリ索引テーブル(DLAT)を採用してお
り、新しい仮想アドレス翻訳を格納する変換索引緩衝機
構(translation look-aside buffer:TLB)と呼ばれるこ
もある。DATプロセスは、DLATに格納された仮想アドレ
スについては1〜2のマシンサイクルを要求する。しか
し、DLATに格納されていないアドレスに対しては、DAT
プロセスは15〜60マシンサイクルを要することがある。
【0003】仮想アドレスから実アドレスへの変換は、
アドレス指定された命令またはデータが主記憶のどこに
存在するのかを見出すために行われる。これは典型的
に、ページを基にして行われる。DLATに格納されている
のは、実際にはページのみである。アドレスの後半ビッ
ト群はそのページにおける位置であるので、ページアド
レスのみの変換で十分である。
【0004】従来の仮想記憶システムでは、過度のペー
ジングの結果、システムが有効作業をほとんど行えない
スラッシングと呼ばれる状態が発生する。この状態は、
例えば、AFIPS Conf. Proc., vol.33,1968 FJCC, pp.91
5-922,“Thrashing:Its Causes and Prevention",にお
いてP. J. Denningにより認識され、説明されている。D
enningの主張によれば、プログラムを効率的に実行する
には、作業ページ・セットを1次記憶に保持しなければ
ならない。そうでなければ、プログラムが2次記憶から
のページを繰り返し要求する毎に、スラッシングが発生
する。この状態は上記のDeitelによって、前記文献のVe
rtual Storage Managementのセクション9.5“Working S
ets"で言及されている。
【0005】米国特許第4,136,385号明細書は、この問
題を、多重仮想記憶システムに対するシノニム制御とし
て扱っている。この明細書ではDLATシノニム制御を、DL
ATエントリが全ユーザ・アドレス空間によって共有され
るのか、あるいはDLATにおいて識別される単一アドレス
空間に制限されるのかを示すインディケータの、各DLAT
エントリへのセッティングを制御する。これは、任意の
私用アドレス空間において、セグメントまたはページ
が、そのアドレス空間専用のプログラムおよびデータを
含むのか、あるいは全アドレス空間によって共有される
プログラムおよびデータを含むのかを示す、任意のセグ
メント・テーブル・エントリ(STE)内の、あるいはま
た、任意のページ・テーブル・エントリ(PTE)内の共通
空間ビットによって達成される。このように、各DLATエ
ントリは、共通/私用記憶インディケータを含み、その
インディケータは、アドレス変換に使用されるSTEまた
はPTE内の共通空間ビットの状態に対してセットされ、D
LATエントリ内にロードされる。エントリが読み出され
るとき、共通/私用記憶インディケータは、DLATが単に
DLATにおいて識別されるアドレス空間によって使用され
るだけか、あるいは、全アドレス空間によって使用され
るかを区別する。
【0006】従来の2ウェイDLAT設計は、周期的な仮想
ページ・アドレスを、複数のデータ空間で処理すると
き、不十分な処理しかできなかった。典型的な2ウェイD
LAT設計は、全データ空間の同一の仮想アドレスを、同
一のDLAT列に写像してしまう。例えば、次の擬似コード DO i=1 to 1,000 A(i)+B(i)=C(i) において、もしA,B,およびCが同一の開始値(例えば0)を
3つのデータ空間それぞれに有するならば、データ空間
のシノニムによって発生したDLATスラッシングのため
に、このコードによるパフォーマンスは低下する。米国
特許第4,136,385号明細書のシノニム制御は、共通空間
ビットによってシノニムのクラス・エントリを防止して
はいるものの、同一のオリジンを有する3つのデータ空
間によって生成された、2ウェイDLATにおけるシノニム
の問題を解決できない。
【0007】
【発明が解決しようとする課題】本発明の一般的な目的
は、アドレス空間とデータ空間とを識別する、改良され
たDLAT論理装置を提供することにあり、この論理装置
は、複数のデータ空間での処理のとき、仮想ページアド
レスの周期性を効率的に処理する。
【0008】本発明の他のより具体的な目的は、データ
空間を、DLAT列への仮想ページアドレスの割当を制御す
る1以上の空間IDによってクラス分けする、改良されたD
LAT論理装置を提供することにある。
【0009】
【課題を解決するための手段】本発明によると、米国特
許第4,136,385号明細書のシノニム制御の共通空間ビッ
トに対応する“私用空間ビット"を用いて、異なるDLAT
アドレス指定アルゴリズムを選択する、改良されたDLAT
論理装置が提供される。空間IDビットを用いてさらに、
データ空間をサブクラスに分け、各サブクラスに対し、
ページ・アドレスビットに基づいて、固有のアルゴリズ
ムを選択する。DLAT選択ビットを生成するために、排他
的OR関数を用いる。
【0010】この手法は私用空間のシノニムの発生を最
小にし、共通空間のシノニムの発生を最大にする。その
結果、前者がスラッシングを最小化し、後者がDLAT共通
ビットの値を最大化するので、改良されたパフォーマン
スが得られる。
【0011】以下の説明において、ディレクトリ索引テ
ーブルに対し“DLAT"の用語を用いるが、この用語は変
換索引緩衝機構“TLB"(translation look-aside buffe
r)と互換的に用いられることを、当業者は理解するだろ
う。以下の説明のために、ページングおよびセグメンテ
ーション仮想アドレス・システムを仮定する。このシス
テムにおける仮想アドレスのフォーマットを図1に示
し、このフォーマットは、セグメント・インデックス(S
X)としてsビット、ページ・インデックス(PX)としてpビ
ット、変位インデックス(displacement index:DX)とし
てdビットを含んでいる。仮想アドレスは、例えば、31
ビットとし、そのうちの、ビットA1〜A11はセグメント
ビットを含み、ビットA12〜A19はページビットを含み、
ビットA20〜A31は変位ビットを含むことになる。
【0012】図2に示すように、仮想アドレスはアドレ
ス・ジェネレータ20によって生成される。アドレス・ジ
ェネレータ20はCPU(central processing unit:中央処理
装置,図示せず)の一部である。最も最近参照されたペー
ジは、DLAT21内にエントリを有する。256個の合同クラ
スを有するDLATにおいては、仮想アドレスのビットA12
〜A19が、DLATをアドレス指定するのに用いられる。DLA
T21から読み出されたアドレス・エントリからの仮想ペ
ージIDビットは、比較器22において、仮想アドレスのビ
ットA1〜A11と比較される。一致がない場合をDLATミス
という。DLATミスが発生すると、例えば、セグメントま
たはページ・テーブル・サーチを通じてアドレス翻訳が
得られ、DLAT内に置かれる。このサーチを実施する構造
は、バッファ制御機構(buffer control element:BCE)と
呼ばれる。
【0013】セグメントまたはページ・テーブル・サー
チは、セグメント・テーブル・オリジンレジスタ23の値
と、仮想アドレスのビットA1〜A11を、加算器24におい
て加算し、セグメント・マップ・テーブル25に対するイ
ンデックス値を得ることにより開始する。次に、セグメ
ント・マップ・テーブル25からのエントリ出力を、ペー
ジ・マップ・テーブル26のエントリに対するインデック
スとして用いる。各セグメントには個別のページ・マッ
プ・テーブルが存在している。ページ・マップ・テーブ
ル26からのエントリ出力は、実記憶内で仮想ページが存
在するページ・フレームを与え、ORゲート27に引き渡さ
れ、仮想アドレス・ジェネレータ20の変位ビットA20〜
A31と連結されて、実アドレスレジスタ28に実アドレス
を形成する。
【0014】一方、DLAT21に一致がある場合、比較器22
はANDゲート29をイネーブルし、ANDゲート29はエントリ
出力をDLAT21からORゲート27に引き渡す。この場合、DL
AT 21からのエントリ出力は、実アドレスのフィールド
に対応付けられ、このフィールドは変位ビットA20〜A31
に連結されて、レジスタ28に実記憶アドレスを形成す
る。明らかに、このアドレス変換プロセスは、DLATミス
で発生したセグメントまたはページ・テーブル・サーチ
のプロセスよりも、相当速い。セグメントまたはページ
・テーブル・サーチは、完了するのに15〜80マシンサイ
クルを要するのに対し、DLATアクセスは1マシンサイク
ルで完了する。
【0015】通常、多くのアドレス変換要求はDLATのサ
ーチによって生成される。一方、セグメントまたはペー
ジ・テーブル・サーチは、DLATによって変換を行うより
多くの数のプロセッサ・サイクルを要するだけでなく、
セグメントまたはページ・テーブル・サーチはそれ自身
で、変換失敗の可能性がないわけではない。例えば、セ
グメント・マップ・テーブル・サーチは、セグメントが
1次記憶すなわち主記憶に存在しないことを示す場合が
あり得る。そのときは、オペレーティングシステムに命
じてセグメントを2次記憶、すなわち直接アクセス記憶
装置(direct access storage device:DASD)に配置さ
せ、そのセグメントに対しページ・テーブルを生成さ
せ、適切なページを1次記憶にロードするが、それによ
ってプロセス内の既存ページを排除することとなる。
【0016】たとえセグメントが1次記憶に存在してい
ても、所望のページが1次記憶に存在していない場合も
ある。そのときも、オペレーティングシステムに命じて
ページを2次記憶に配置させ、ページを1次記憶にロード
するが、プロセス内の既存ページを排除することとな
る。2次記憶アクセスのプロセスは、数百プロセッサ・
サイクルにもなり得る。
【0017】これまでの説明は従来のDLAT構造に対する
ものである。この従来のDLAT構造に関する問題は、複数
のアドレス空間に対する仮想アドレスを同時に、実主記
憶アドレスに変換することのできるデータ処理システム
における、DLATシノニムエントリの問題を解消しない。
ここで、「シノニムエントリ」とは、異なるアドレス空
間が、共有されたプログラムおよびデータの同一セット
にアクセスせねばならない場合をいう。その問題は、上
述の Gannon他による米国特許第4,136,385号明細書にお
いて示され、Gannon他は共通空間ビットを用いた特別の
制御を与えている。しかし、これは、複数のデータ空間
での処理の際、仮想ページアドレスの周期性によって引
き起こされる問題を示していない。すなわち、A,B,およ
び Cが同一の仮想ページアドレス(例えば0)および異な
るデータ空間を有し、従来の2ウェイ(XおよびYサイド)D
LAT構造を有する周期的処理の例 A(i)+B(i)=C(i) では、A(i)およびB(i)に対する関連実アドレスは、アド
レス変換が完了した後に、それぞれがDLATのXおよびYサ
イドの0番地にロードされる。C(i)の関連実アドレス
は、アドレス変換の後、DLATのXサイドの同じアドレス
にロードされ、A(i)のDLATエントリを上書きする。次の
ループで、A(i)についてはDLAT誤りを発生するため、再
変換に多くのマシンサイクルを要する。さらに、再変換
されたA(i)の関連実アドレスはDLATのYサイドにロード
され、B(i)のDLATエントリを上書きするので、同様の問
題を引き起こす。この種のDLATスラッシングは著しいシ
ステム・パフォーマンスの劣化を招く。
【0018】
【実施例】本発明はアドレス空間とデータ空間を識別す
る。この種の識別機構は既知であり、上述のGannon他の
米国特許第4,136,385号明細書が教示している。セグメ
ント・テーブル指定(STD)ビット“23"は私用空間(デー
タ空間)ビットとして定義されている。図3は、文字
“p"というラベルを付けたSTDビット“23"を示す。この
STDビットは、論理値“1"であると、DLAT内でデータ空
間を分離するのに用いられる。STDビット“23"が論理値
“0"のときは、アドレス空間に対する、共通セグメント
ビットのDLATパフォーマンス値を保持するのに用いられ
る。
【0019】本発明は、この機構の上に、1以上の空間I
D (SPACE-ID)でデータ空間をサブクラスに分け、(例え
ばノンコスタント(non-constant)またはランダムな)下
位ビットを識別することによって、成り立っている。図
4は、セグメント・テーブル・オリジン(STO)ビット
“1"〜“19"をSPACE-IDビットとして示している。IBM社
のMVSシステムにおいては、これらのビットは STOレジ
スタに格納され、アンハッシュト(unhashed)ノンコンス
タント下位ビット、または多くの STOノンコンスタント
ビットのハッシュの下位出力ビットとなることができ
る。データ空間の各サブクラスに対し、仮想ページ・ア
ドレス (PAGE-ADDR)ビットを用いて、固有のアルゴリズ
ムを選択して、DLAT列に仮想ページ・アドレスの割当を
行う。これらのビットは、アンハッシュトPAGE-ADDRビ
ット、または多くのPAGE-ADDRビットのハッシュの出力
ビットとなることができる。MVS環境はIBM社の多重仮想
記憶(Multiple Virtual Storage:MVS)オペレーティング
システムを参照し、このオペレーティングシステムは19
74年中頃にメインフレーム・コンピュータの分野に導入
された。このオペレーティングシステムの一般的な説明
については、例えば上述のDeitelの著書の第21章を参照
されたい。
【0020】一実施例では、2(偶数または奇数)データ
空間サブクラス設計が、MVS環境におけるビット“17"の
ようなデータ空間アンハッシュト STOビットと、仮想ペ
ージ・アンハッシュト PAGE-ADDR上位ビットとの排他的
ORによって実現される。この設計の結果は、次の通りで
ある。偶数サブクラス・データ空間 (STOビット“17"=
0)に対して、0値PAGE-ADDR上位ビットを有するデータ空
間ページアドレスを、DLATの偶数列に割当て、1値PAGE-
ADDR上位ビットを有するデータ空間ページアドレスを、
DLATの奇数列に割当てる。奇数サブクラス・データ空間
(STOビット“17"=1)に対して、0値PAGE-ADDR上位ビッ
トを有するデータ空間ページアドレスを、DLATの奇数列
に割当て、1値PAGE-ADDR上位ビットを有するデータ空間
ページアドレスを、DLATの偶数列に割当てる。
【0021】256×2個のDLATがあるとする。もし空間A
および Cのサブクラスが0であり、空間Bのサブクラスが
1であるならば、Aの各対応偶数ページをDLAT偶数列に割
当て、Bの各対応偶数ページをDLAT奇数列に割当て、Cの
各対応偶数ページをDLAT偶数列に割当てる。同様にし
て、Aの各対応奇数ページをDLAT奇数列に割当て、Bの各
対応奇数ページをDLAT偶数列に割当て、Cの各対応奇数
ページをDLAT奇数列に割当てる。
【0022】図5は排他的 OR演算を表で表現したもの
で、前述の関係を示している。図5において注目すべき
は、0サブクラス・データ空間割当ルールが、アドレス
空間に対する割当ルールと同一であることである。周期
的プロセッシングの例、A(i)+B(i)=C(i)に対し、もし3
つのデータ空間の少なくとも1つが、STO下位ビットによ
って判別された他の2つのデータ空間と異なるサブクラ
スであるならば、2ウェイDLATのスラッシングはほとん
どないか、または全くない。データ空間のこの分離は、
データ空間に対するSTOビットのMVS割当が、通常はラン
ダムであるという事実のためである。実際、参照された
3つの空間すべてが同一のサブクラスである確率は0.25
である。さらに、STOビットがMVSによって順番に割当て
られるとき、3つの連続的に生成されたデータ空間すべ
てが同一のサブクラスである確率は 0である。
【0023】本発明の好適な実施例によるDLAT処理の論
理装置を図6に示す。この論理装置は、入力として、仮
想アドレス60からのビットと、STDビット“23"(参照番
号61)と、セグメント・テーブル・オリジン(STO)ビット
62からのSPACE-IDビットとを受け取る。排他的ORゲート
63は、仮想アドレス60のPAGE-ADDRのnビットと、SPACE-
ID62からのnビットとを受け取る。PAGE-ADDRのnビット
は、セレクタ64に入力aとして供給され、排他的ORゲー
ト63の出力は、セレクタ64に入力bとして供給される。
セレクタ64の動作は、“p"ビット(STDヒ゛ット“23")61によ
って制御される。
【0024】nデータ空間サブクラスの一般的なケース
は、n個の識別用下位SPACE-IDビットと、n個の上位仮想
ページ・アドレス (PAGE-ADDR)ビットとの各組合せに対
する、nビットの固有セットを生成することにより得ら
れる。DLAT65に対するn個の上位有効列選択ビットの生
成プロセスは、セレクタ64および排他的 ORゲ゛ート63か
ら得られる。DLAT65の構造は従来のものであり、好適な
構造は IBM3090-Sマシンに使用されている構造である。
各DLATエントリは、19個のSTOビットと、1個の共通空間
ビットと、1個の私用空間ビットと、11個の上位仮想ア
ドレスビットと、19個の上位実アドレスビットとを含む
フィールドを有している。
【0025】“p"ビット61が0のとき、セレクタ64は、
a入力のn個の上位PAGE-ADDRビット60を選択する。“p"
ビット61が1のとき、セレクタ64は、n個の識別用下位SP
ACE-ID(STO)ビット62と、n個の上位PAGE-ADDRビット60
との排他的ORによって生成されたb入力のnビットを選
択する。DLAT65に対する8-n個の下位有効DLAT列選択ビ
ットは、仮想アドレス60のページ・アドレスフィールド
PXからの、8-n個のアンハッシュト下位ページ・アドレ
スビットである。留意すべきは、もし排他的OR関数が実
行されず、その代わりに下位SPACE-IDビット62が無変更
に置換されるならば、全DLATの再割振りではなく、DLAT
の分割が生じる。
【0026】DLATヒットは、比較器66によって実行され
る3ウェイ比較関数によって判別される。CMPR1関数は、
SPACE-IDビット62と、DLAT65から読み出されたSTOビッ
トとが等しいとき、2進数“1"を出力する。CMPR2関数
は、“p"ビット61と、DLAT65から読み出された対応
“p"ビットとが等しいとき、2進数“1"を出力する。CM
PR3関数は、仮想アドレス60のセグメント・アドレスビ
ットと、DLAT65から読み出された仮想アドレス(VA)とが
等しいとき、2進数“1"を出力する。3つの比較関数全て
が2進数“1"出力を生成するとき、DLATヒットが示され
る。DLATヒットは、選択されたDLATエントリの共通空間
“c"ビットが2進数“1"であり、かつCMPR3関数が2進数
“1"のときにも、形成される。アーキテクチャは、“p"
ビットと“c"ビットの両方が、同一のアドレス変換で"
1"になるケースを防止している。その結果、どんなDLAT
エントリも、“p"および“c"ビットの両方を“1"にする
ことはない。
【0027】n=2の場合の実施に対し、2つのSPACE-IDビ
ットと2つの上位PAGE-ADDRビットとの組合せに対するこ
の排他的OR演算の結果値を、図7の表に示す。留意すべ
きは、0サブクラス・データ空間割当ルールは、アドレ
ス空間に対する割当ルールと同じであることである。
【0028】n=2の実施に対し、DLATは仮想ページ・ア
ドレス(PAGE-ADDR)に対して4つのサブクラスに論理的に
分割される。n=2に対し256×2個のDLATを与える。も
し、空間A,B,およびCがそれぞれサブクラス“00",“0
1",および“10"であるならば、周期的処理の例、A(i)+B
(i)=C(i)に対し、2ウェイDLATのスラッシングは発生し
ない。MVSは、データ空間に、STDビットをランダムに割
当てるので、参照される3つのデータ空間全てが同じサ
ブクラスになる確率は、小である(すなわち0.0625)。M
VSにおいて、STDビットが順番に割当てられるとき、3つ
の連続的に生成されたデータ空間全てが同じサブクラス
になる確率は0となることも考えられる。
【0029】n=3の実施に対し、3つのSPACE-IDビットと
3つの上位PAGE-ADDRビットとの全ての組合せに対する排
他的 OR演算の結果値を、図8の表に示す。留意すべき
は、0サブクラス・データ空間割当ルールは、アドレス
空間に対する割当ルールと同じであることである。n=3
の実施に対する実際の効果は、DLATが、同じ仮想ページ
・アドレス(PAGE-ADDR)に対して、論理的に8個のサブク
ラスに分割されることである。このため、周期的処理の
例、A(i)+B(i)=C(i)に対し、2ウェイDLATのスラッシン
グはほとんどない。この最小スラッシングは、データ空
間へのSTDビットのランダムなMVS割当から生じる。参照
される3つの空間すべてが同じサブクラスである確率
は、非常に小さい(すなわち、0.0156)。
【0030】n=8の場合の実施に対し、データ空間の同
様のPAGE-ADDRに対するデータ空間DLATサブクラス全て
に亘る割当の最大分散が存在する。この分散は、データ
空間シノニムによるDLATスラッシングを最小化する。一
方、アドレス空間の同様のPAGE-ADDRに対し、0データ空
間DLATサブクラスへの割当の最大集中が有効に存在す
る。この集中は、アドレス空間に対する共通セグメント
のパフォーマンス・アドバーンテージを許可する。
【0031】本発明は好適な実施例に関して説明した
が、当業者であれば、本発明の精神および範囲から逸脱
することなく、変形、変更が可能なことは明らかであ
る。
【図面の簡単な説明】
【図1】仮想アドレスのフォーマットを示すブロック図
である。
【図2】従来の動的アドレス変換機構のブロック図であ
る。
【図3】私用空間ビットを示すセグメント・テーブル指
定(STD)のフォーマットを示すブロック図である。
【図4】図3のSTDの一部で、SPACE-IDビットとして用い
られるセグメント・テーブル・オリジン(STO)を示す部
分図である。
【図5】STDビットを用いた排他的OR演算を示す表であ
り、2つのサブクラスが定義されている。
【図6】図5の排他的OR演算を実施するハードウェアを
示すブロック図である。
【図7】2つの空間IDビットを用いた排他的OR演算を示
す表であり、4つのサブクラスが定義されている。
【図8】3つの空間IDビットを用いた排他的OR演算を示
す表であり、8つのサブクラスが定義されている。
【符号の説明】
20 アドレス・ジェネレータ 22 比較器 23 セグメント・テーブル・オリジンレジスタ 24 加算器 25 セグメント・マップ・テーブル 26 ページ・マップ・テーブル 27 ORゲート 28 実アドレスレジスタ 60 仮想アドレス(PAGE-ADDR) 61 STDビット“23"(“p") 62 STOビット(SPACE-IDビット) 63 排他的ORゲート 64 セレクタ 65 DLAT
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・ジョン・シュマルツ アメリカ合衆国 ニューヨーク州 ワッピ ンガー フォールズ エッジ ヒル ドラ イブ 7 (72)発明者 セオドア・ジェローム・シュミット アメリカ合衆国 ニューヨーク州 キング ストン クリフトン アベニュー 98 (72)発明者 アーノルド・スチーブン・トラン アメリカ合衆国 ニューヨーク州 ショー カン メアリー ルー レーン 6 (72)発明者 シー−シュン・ステファン・タング アメリカ合衆国 ニューヨーク州 キング ストン レイニー レーン 18 (56)参考文献 特開 平3−110648(JP,A) 特開 平3−25644(JP,A)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】同一仮想アドレスを有する異なるアドレス
    空間内にページを有し、前記アドレス空間は個々のセグ
    メント・テーブルによって識別される仮想記憶システム
    のためのディレクトリ索引テーブル論理装置において、 前記ページのアドレスを表すアドレス空間と全てのアド
    レス空間によっては共通にアクセスされないデータに関
    連づけられたデータ空間とを識別するため、セットされ
    るとデータ空間を指定する私用空間ビットよりなる第1
    の手段と、 n個のセグメント・テーブル・オリジン・ビット空間ID
    識別用下位ビットによって前記データ空間をn個のサブ
    クラスに分ける第2の手段と、 前記第1および第2の手段に応答して仮想ページ・アドレ
    ス・ビットを用いてディレクトリ索引テーブルの列に仮
    想ページ・アドレスを割当てるために、前記データ空間
    の各サブクラスに固有のアルゴリズムを供給する第3の
    手段と、 を備え、 前記第3の手段が、前記仮想ページ・アドレスのnビット
    及び前記セグメント・テーブル・オリジン・ビットのn
    ビットを排他的OR論理によって結合して第1の出力を形
    成する排他的OR手段と、前記私用空間ビットがセットさ
    れたとき、前記第1の出力を選択してディレクトリ索引
    テーブル列選択信号とし、前記私用空間ビットがセット
    されないとき、前記仮想ページ・アドレスの前記nビッ
    トを選択して前記ディレクトリ索引テーブル列選択信号
    とする手段とを有することを特徴とする、 ディレクトリ索引テーブル論理装置。
  2. 【請求項2】前記第1の手段、前記第2の手段、前記仮想
    ページ・アドレスのセグメント部及び前記ディレクトリ
    索引テーブルからの出力に応答して前記ディレクトリ索
    引テーブルから読み出された実アドレスに対するヒット
    を判別する3ウェイ比較手段をさらに備えることを特徴
    とする、請求項1記載のディレクトリ索引テーブル論理
    装置。
  3. 【請求項3】前記3ウェイ比較手段が、前記セグメント
    ・テーブル・ビット及び前記ディレクトリ索引テーブル
    から読み出された対応セグメント・テーブル・ビットを
    比較する第1の比較手段と、前記私用空間ビット及び前
    記ディレクトリ索引テーブルから読み出された対応私用
    空間ビットを比較する第2の比較手段と、前記仮想アド
    レスの前記セグメント部及び前記ディレクトリ索引テー
    ブルから読み出された仮想アドレスの対応部を比較する
    第3の比較手段とを有し、前記第1,第2,および第3の比較
    手段全てによる比較によりヒットを示すことを特徴とす
    る、請求項2記載のディレクトリ索引テーブル論理装
    置。
JP4188473A 1991-08-12 1992-07-16 仮想記憶システムのためのディレクトリ索引テーブル論理装置 Expired - Lifetime JPH0769867B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US744203 1991-08-12
US07/744,203 US5319761A (en) 1991-08-12 1991-08-12 Directory look-aside table for a virtual storage system including means for minimizing synonym entries

Publications (2)

Publication Number Publication Date
JPH05197626A JPH05197626A (ja) 1993-08-06
JPH0769867B2 true JPH0769867B2 (ja) 1995-07-31

Family

ID=24991864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4188473A Expired - Lifetime JPH0769867B2 (ja) 1991-08-12 1992-07-16 仮想記憶システムのためのディレクトリ索引テーブル論理装置

Country Status (3)

Country Link
US (1) US5319761A (ja)
EP (1) EP0528584A1 (ja)
JP (1) JPH0769867B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3098344B2 (ja) * 1992-12-18 2000-10-16 富士通株式会社 データ転送処理方法及びデータ転送処理装置
US5446854A (en) * 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
US6079004A (en) * 1995-01-27 2000-06-20 International Business Machines Corp. Method of indexing a TLB using a routing code in a virtual address
US5630088A (en) * 1995-03-09 1997-05-13 Hewlett-Packard Company Virtual to physical address translation
US5754818A (en) * 1996-03-22 1998-05-19 Sun Microsystems, Inc. Architecture and method for sharing TLB entries through process IDS
US6560690B2 (en) * 2000-12-29 2003-05-06 Intel Corporation System and method for employing a global bit for page sharing in a linear-addressed cache
US20020087824A1 (en) * 2000-12-29 2002-07-04 Hum Herbert H.J. System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
JP4241911B2 (ja) * 2002-03-28 2009-03-18 株式会社日立製作所 情報処理システム
JP4085328B2 (ja) * 2003-04-11 2008-05-14 ソニー株式会社 情報処理装置および方法、記録媒体、プログラム、並びに撮像装置
US7181590B2 (en) * 2003-08-28 2007-02-20 Intel Corporation Method for page sharing in a processor with multiple threads and pre-validated caches
US20070011429A1 (en) * 2005-07-07 2007-01-11 Vasudevan Sangili Virtual memory key generation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4096573A (en) * 1977-04-25 1978-06-20 International Business Machines Corporation DLAT Synonym control means for common portions of all address spaces
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4736287A (en) * 1983-06-20 1988-04-05 Rational Set association memory system
US4727482A (en) * 1983-08-30 1988-02-23 Amdahl Corporation Apparatus for enhancing searches of data tables
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
DE3633227A1 (de) * 1986-09-30 1988-04-21 Siemens Ag Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage
US5008811A (en) * 1988-02-10 1991-04-16 International Business Machines Corp. Control mechanism for zero-origin data spaces
US5134696A (en) * 1988-07-28 1992-07-28 International Business Machines Corp. Virtual lookaside facility
DE4019961C2 (de) * 1989-06-23 1994-11-24 Hitachi Ltd Steuerung für den Zugriff auf einen Adreßumsetzungsspeicher in einem Prozessorsystem
JPH0648470B2 (ja) * 1989-06-23 1994-06-22 株式会社日立製作所 多重仮想アドレス空間制御装置
JPH07117918B2 (ja) * 1989-09-25 1995-12-18 株式会社日立製作所 データ処理システム
US5157777A (en) * 1989-12-22 1992-10-20 Intel Corporation Synchronous communication between execution environments in a data processing system employing an object-oriented memory protection mechanism

Also Published As

Publication number Publication date
EP0528584A1 (en) 1993-02-24
JPH05197626A (ja) 1993-08-06
US5319761A (en) 1994-06-07

Similar Documents

Publication Publication Date Title
US5475827A (en) Dynamic look-aside table for multiple size pages
US5574936A (en) Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US4905141A (en) Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
US4797814A (en) Variable address mode cache
JP2839060B2 (ja) データ処理システムおよびデータ処理方法
JP4608484B2 (ja) ストレージの無効化、バッファ・エントリの消去
EP0175091B1 (en) Fast two-level dynamic address translation method and means
KR101174583B1 (ko) 변환 예외 한정자를 갖는 동적 어드레스 변환
US5375214A (en) Single translation mechanism for virtual storage dynamic address translation with non-uniform page sizes
US5526504A (en) Variable page size translation lookaside buffer
US6266755B1 (en) Translation lookaside buffer with virtual address conflict prevention
US5493660A (en) Software assisted hardware TLB miss handler
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
Jacob et al. Virtual memory: Issues of implementation
EP0507063A1 (en) Cross-invalidate directory method and means
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JPH077363B2 (ja) アクセス装置及び方法
US5893930A (en) Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
JPH0652050A (ja) 実記憶のページをロックするためのシステム
US7493464B2 (en) Sparse matrix
US6298411B1 (en) Method and apparatus to share instruction images in a virtual cache
US6571316B1 (en) Cache memory array for multiple address spaces
JP7062696B2 (ja) 仮想キャッシュにおける仮想および実変換の共有
JP2020523676A (ja) 仮想キャッシュのための変換支援