JPH10301848A - 多重ページサイズを有する仮想記憶装置 - Google Patents

多重ページサイズを有する仮想記憶装置

Info

Publication number
JPH10301848A
JPH10301848A JP9110637A JP11063797A JPH10301848A JP H10301848 A JPH10301848 A JP H10301848A JP 9110637 A JP9110637 A JP 9110637A JP 11063797 A JP11063797 A JP 11063797A JP H10301848 A JPH10301848 A JP H10301848A
Authority
JP
Japan
Prior art keywords
address
page
virtual
virtual storage
extended
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.)
Pending
Application number
JP9110637A
Other languages
English (en)
Inventor
Toyohiko Kagimasa
豊彦 鍵政
Shunji Takubo
俊二 田窪
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP9110637A priority Critical patent/JPH10301848A/ja
Publication of JPH10301848A publication Critical patent/JPH10301848A/ja
Pending 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

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)

Abstract

(57)【要約】 【課題】 単一の仮想ページサイズでは、応用の要求に
応じることができず性能が低下する。単純な仮想ページ
サイズ種類の増加はハードウェアの実装量増大と性能低
下を招く。 【解決手段】 階層構成のアドレス変換テーブル(2
3、24、25、26)で下位のテーブル段数、すなわ
ち仮想記憶領域に対する仮想ページサイズを指定する手
段を提供することと、拡張仮想ページ設定命令を提供す
ることによって、多重仮想ページサイズを可能にし、上
記課題を解決する。 【効果】 多重の仮想ページサイズを少ないOSオーバ
ヘッドで提供できるので、コンピュータシステムの性能
が向上するとともにメモリ資源やハードウェア量を削減
できる。また、さらに種類の多い拡張仮想ページサイズ
を提供でき、応用プログラムの実行が高速化される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータシステ
ムの仮想記憶に関し、特にアプリケーションプログラム
が複数の仮想記憶ページサイズを効率良く利用可能にす
るための仮想記憶装置に関する。
【0002】
【従来の技術】多くのコンピュータシステムにおいて、
仮想記憶は単一サイズのページ(仮想ページと呼ぶ)に
分割され、仮想ページサイズは4キロバイト(以降KB
と略す)であることが多い。例えば、文献「IBM C
orporation, “Enterprise S
ystem Architecture/390 Pr
inciples of Operation”, I
BM Corporation , pp.3−1−3
−51, 1994」に記載のメインフレームの仮想記
憶アーキテクチャ(公知例1と呼ぶ)では、仮想記憶は
31ビットアドレスが表わす2ギガバイト(以降GBと
略す)の大きさを持ち、仮想記憶は4KBの仮想ページ
に分割される。仮想ページは仮想記憶に実記憶を割り当
てる固定長の単位である。実記憶装置も4KBの単位
(実ページと呼ぶ)に分割され、実ページごとにアクセ
ス保護のためのキーを含む情報を保持するキー記憶のエ
ントリを有する。仮想アドレスから実アドレスに変換す
るアドレス変換機構は、アドレス変換テーブルを用い
て、仮想ページを実記憶装置の任意の位置に置くことが
できるように仮想ページアドレスを実ページアドレスに
変換する。アドレス変換テーブルは仮想アドレスの部分
ビット列をインデクスとして用いるセグメントテーブル
とページテーブルの2段の階層構成になっている。31
ビットのアドレスの上位11ビットをセグメントテーブ
ルのインデクス、次の8ビットをページテーブルのイン
デクスとして用いる。従って、2GBの一つのアドレス
空間はそれぞれ1メガバイト(以降MBと略す)の大き
さを持つ2048個のセグメントに分割され、セグメン
トは256個のページに分割される。一つのセグメント
テーブルは2GBのアドレス空間全体に対応し、204
8個のエントリを有する。セグメントテーブルの各エン
トリは、ページテーブルのアドレスを保持する。一つの
ページテーブルは一つのセグメントに対応し、256個
のエントリを有する。変換結果の実ページアドレスは、
ページテーブルエントリにのみ格納されるので、仮想ペ
ージサイズは4KBの一種類のみである。ページテーブ
ルエントリの無効化命令は、アドレス変換テーブルのエ
ントリとともにアドレス変換バッファの対応するエント
リも無効化するという仕様になっている。
【0003】特公平7−104818号公報(公知例2
と呼ぶ)は、公知例1の仮想記憶装置に対して、仮想ア
ドレスを47ビットまたは63ビットに拡張する装置と
方法を開示している。公知例1の31ビットアドレスを
変換するアドレス変換テーブルの上位階層として、2段
または3段のアドレス変換テーブルを新たに設けてい
る。しかし、仮想ページサイズは公知例1と同様に4K
Bの一種類のみである。
【0004】特開平4−319747号公報(公知例3
と呼ぶ)は、複数の仮想ページサイズを効率良く提供す
るためのアドレス変換機構を開示している。公知例3の
アドレス変換機構は、複数の仮想ページサイズのエント
リを索引できる単一の組のアドレス変換バッファを含
む。アドレス変換バッファは、本来主記憶上のアドレス
変換テーブルを参照して得られるアドレス変換情報を主
記憶より高速にアクセスできるメモリと回路にキャッシ
ュして、アドレス変換を高速化する機構である。しか
し、複数の仮想ページサイズを実現するためのアドレス
変換テーブルについては開示されていない。
【0005】文献「SPARC Internatio
nal, Inc., “TheSPARC Arch
itecture Manual Version
8”,Prentice−Hall, Inc., p
p.241−259, 1992」に記載のSPARC
のメモリマップドユニットのアーキテクチャ(公知例4
と呼ぶ)は、最大3段の階層構成のアドレス変換テーブ
ルを用いて仮想アドレスを実アドレスに変換する。しか
し、ルートポインタまたは1段目または2段目のテーブ
ルエントリから実ページアドレスを得て完了するアドレ
ス変換も可能になっている。ルートポインタ、1段目、
2段目、3段目のいずれかでアドレス変換が完了する
と、仮想ページサイズはそれぞれ4GB、16MB、2
56KB、4KBとなる。各テーブルエントリは、当該
エントリに実ページアドレスが保持されているかどうか
を示す情報を持つ。従って、領域ごとにきめ細かく仮想
ページサイズを設定することができる。アドレス変換バ
ッファの無効化命令は、無効化する仮想アドレスと前記
3種類の仮想ページサイズのいずれかを指定する。無効
化命令はアドレス変換バッファ中の指定仮想アドレスと
仮想ペーサイズから定まる仮想記憶領域に対応するエン
トリを全て無効化する。しかし、指定できる仮想ページ
サイズはアドレス変換機構がサポートする4種類のサイ
ズである。
【0006】
【発明が解決しようとする課題】公知例1のコンピュー
タシステムの仮想記憶アーキテクチャは、4KBの単一
の仮想ページサイズのみをサポートしている。また、公
知例2もページサイズの拡張は特に開示されておらず、
ページサイズは4KBである。これらの公知例には以下
の問題点がある。
【0007】第1の問題点は、4KBのような比較的小
さい単一ページサイズでは、アドレス変換テーブルに要
する実記憶量、仮想ページの管理に要するCPUオーバ
ヘッド、ページングのI/Oオーバヘッドが増大するこ
とである。小ページサイズでは大ページサイズに比べて
ページ数が多くなるので、ページ数に比例して必要な資
源やオーバヘッドが増大する。特に公知例2の64ビッ
トアーキテクチャのような大容量仮想記憶では、この問
題がより顕著となる。
【0008】第2の問題点は、応用プログラムが扱うデ
ータのブロックサイズは単一ではなく多様であり、一つ
のページサイズではコンピュータシステム上で実行され
る各種の応用プログラムを効率的にまたは高速に処理で
きないことである。例えば、オンライントランザクショ
ン処理では、データベースのデータを仮想記憶に持って
くるブロックサイズは一般に8KB程度であり、しかも
仮想記憶のアクセスパターンはブロックとしてはほとん
どランダムアクセスとなる。この場合は、小ページサイ
ズが望ましい。小ページサイズであれば、アクセス中の
データブロックに必要な実記憶量は小さくでき、2次記
憶装置から実記憶装置へのデータ転送量も削減できるた
め処理性能が向上する。一方、科学技術計算では、仮想
記憶に置いた大きな配列をほぼシーケンシャルにアクセ
スすることが多い。この場合は、1MB以上の大ページ
サイズが望ましい。大ページサイズであれば、仮想記憶
のページフォールト割り込みにともなう2次記憶装置か
ら実記憶装置へのデータ転送の回数を削減でき、データ
転送の回数に比例して生じるオーバヘッドとデータ転送
待ち時間を削減できるため、処理性能が向上する。ま
た、最近のデータウェアハウスのようなデータベース処
理では、上記二例の中間的なサイズである数10KB程
度から数100KBのブロックサイズを用いる。
【0009】公知例3と公知例4は、複数の仮想ページ
サイズを一つの仮想記憶空間で実現して、応用プログラ
ムの仮想記憶利用の多様性に対応しようというものであ
る。公知例3は、複数の仮想ページサイズのためのアド
レス変換バッファを開示しているが、アドレス変換テー
ブルなどの仮想記憶装置に必要なその他の手段について
は開示していない。公知例4は、複数の仮想ページサイ
ズのためのアドレス変換テーブルを開示している。これ
らの公知例を組み合わせたとしても以下の問題点があ
る。
【0010】第3の問題点は、公知例4の仮想ページサ
イズ指定の領域単位が細かすぎることからくるオペレー
ティングシステム(以降OSと略す)の管理オーバヘッ
ド増大である。アドレス変換テーブル全ての有効エント
リに、当該エントリに実ページアドレスが保持されてい
るかどうかを示すフラグを設定しなければならず、OS
の管理オーバヘッドが増大する。ほとんどの応用では、
2GBような大きな領域単位での一括した仮想ページサ
イズ指定ができれば十分なことが多い。例えば、単一の
仮想ページサイズがほとんどである既存の32ビットア
ーキテクチャのコンピュータシステムを64ビットに拡
張しようとした場合も、従来の32ビットアーキテクチ
ャの仮想記憶容量である2GBまたは4GB未満のアド
レスは従来仮想ページサイズの4KBとし、その上の仮
想記憶領域のページサイズを拡張すると互換性と性能向
上の両立が図れる。
【0011】第4の問題点は、公知例3と公知例4も仮
想ページサイズの種類が少なく、応用プログラムの多様
な要求に応えられないことである。公知例4でも、4G
B、16MB、256KB、4KBとページサイズの間
隔が離れすぎている。仮想ページサイズの種類を単純に
増やすと、性能にクリティカルなアドレス変換バッファ
での処理遅延や実装量の増大につながってしまう。
【0012】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、階層構成の最下位の少なくとも2段以上
のm段の変換テーブルによって表わされる仮想記憶領域
の単位(リージョンと呼ぶ)ごとに、最上位のテーブル
から数えて(n−m+1)段目からn段目のアドレス変換
テーブルのうち何段目のテーブルエントリから変換結果
の実記憶ページアドレスを読み出すか、すなわち変換テ
ーブルの段数によって定まる複数の仮想記憶ページサイ
ズのうちのいずれかを指定するページサイズ指定手段
と、前記ページサイズ指定手段に従って仮想アドレスを
実アドレスに変換するアドレス変換手段を提供すること
によって、多重ページサイズの仮想記憶装置がページサ
イズ指定のオーバヘッドが少なくでき、前記第1の問題
点と第3の問題点が解決される。
【0013】また、本発明は、仮想アドレスを実アドレ
スに変換するためのアドレス変換テーブル手段と、前記
アドレス変換テーブル手段が提供する仮想記憶ページサ
イズの倍数であるサイズを持つ拡張仮想記憶ページのア
ドレス変換情報設定命令に応答して、前記命令が指定す
る一つの拡張仮想記憶ページのアドレスに対応する一つ
または複数のアドレス変換テーブルエントリに、前記命
令が指定するアドレス変換情報を設定する拡張仮想記憶
ページ設定手段を提供することによって、アドレス変換
機構の仮想ページサイズの種類を少なくしたまま、さら
に種類の多い拡張仮想ページサイズをプログラムに提供
でき、前記第2の問題点と第4の問題点が解決される。
【0014】
【発明の実施の形態】以下、本発明の実施の一形態を、
図面を参照しながら説明する。なお、本明細書中では
「発明の実施の形態」を「実施例」と呼ぶことにする。
【0015】図1から図5を用いて、本発明の一実施例
を説明する。本実施例は、従来の技術でも述べた文献
「IBM Corporation, “Enterp
rise System Architecture/
390 Principlesof Operatio
n”, IBM Corporation , pp.
3−1−3−51, 1994」に記載のメインフレー
ムの仮想記憶アーキテクチャをベースに、仮想アドレス
を63ビットに、汎用レジスタを64ビットに拡張し、
多重の仮想ページサイズをプログラムに提供するコンピ
ュータシステムの仮想記憶装置である。
【0016】図2は、本実施例の仮想記憶と実記憶の構
成図である。まず、図2を用いて、本実施例がプログラ
ムに提供する多重仮想ページサイズの機能を説明する。
【0017】仮想記憶空間100は2の63乗バイトの
容量を有し、2GBの大きさの仮想記憶領域であるリー
ジョンごとにアドレス変換機構103がサポートする仮
想ページサイズを選択できる。アドレス変換機構103
がプログラムに提供する仮想ページサイズは、4KBと
1MBの2種類である。さらに、拡張ページ命令と呼ぶ
仮想記憶管理のための一連の制御命令がプログラムに提
供する拡張仮想ページサイズがある。拡張仮想ページサ
イズは拡張ページ命令のオペランドとして指定し、4K
Bの倍数の大きさが指定できる。拡張仮想ページは、4
KBまたは1MBの仮想ページを複数個まとめたもので
あり、拡張ページ命令によってアドレス変換テーブルの
拡張仮想ページに対応する複数個エントリを一命令で設
定することで実現される。図2の例では、リージョン1
10とリージョン111の仮想ページサイズは4KB、
リージョン112の仮想ページサイズは1MBである。
さらに、リージョン111は拡張ページ命令により32
KBの拡張仮想ページとして設定している。この例では
リージョン111全体を32KBとしているが、拡張ペ
ージ命令を用いれば、リージョン111内に32KBと
異なるサイズの拡張仮想ページを設定することもでき
る。実記憶装置101は、キー記憶装置102のエント
リを持つ単位、すなわち実ページサイズにより、4KB
ページ領域113と1MBページ領域114の二つの領
域に分けられている。4KBページ領域113は、実記
憶の4KBごとに対応するエントリを持つキー記憶11
5を備えており、1MBページ領域113は、実記憶の
1MBごとに対応するエントリを持つキー記憶116を
備えている。4KBページ領域113と1MBページ領
域113の実記憶量は、システムごとに可変とする。ア
ドレス変換機構103により、4KBの仮想ページは4
KBページ領域113の実ページに、1MBの仮想ペー
ジは1MBページ領域114の実ページにマッピングさ
れる。また、32KBサイズの拡張仮想ページは、ペー
ジテーブル26の8個のエントリにより、4KBページ
領域113の8個の実ページにマッピングされる。ペー
ジテーブル26の8個のエントリは、一命令の拡張ペー
ジ命令により設定できる。
【0018】次に、図1と図3を用いて本実施例のアド
レス変換機構103の構成と動作を説明する。図1の構
成を説明する。アドレス変換機構103の主な構成要素
は、命令の実行時に生成された仮想アドレスを保持する
仮想アドレスレジスタ10、4KBページ用と1MBペ
ージ用の二つのアドレス変換バッファ(TLB)21,
22、4段の階層構成のアドレス変換テーブルである第
1リージョンテーブル(FRT)23、第2リージョン
テーブル(SRT)24、セグメントテーブル(ST)
25、ページテーブル(PT)26、そして、実アドレ
スレジスタ30である。TLBは、実記憶装置に格納さ
れるアドレス変換テーブルを参照して得られるアドレス
変換情報を実記憶装置より高速にアクセスできるメモリ
と回路にキャッシュして、アドレス変換を高速化する機
構である。図3は、第1リージョンテーブル・オリジン
・レジスタ(FRTOR)20、FRTエントリ(FR
TE)151、SRTエントリ(SRTE)152、S
Tエントリ(STE)153、PTエントリ(PTE)
154のフォーマットを示す。 PTE以外は下位のテ
ーブル・オリジン、すなわちテーブルの先頭アドレス1
55,157,159,162とテーブル長156,1
58,161,163を有する。 FRTOR150以
外はエントリの無効ビット(I)を有し、STE153
はセグメントが空間間の共通領域であることを示す共通
ビット(C)を有する。さらに、SRTE152は、対
応するリージョンのページサイズが1MBであることを
示す大ページビット(L)160を有する。 PTE1
54は実ページアドレス(PFRA)164を有する。
Lビット160がオンの場合は、STE153のフィー
ルド162がPFRAとなり、下位のPT26は存在し
ない。これらのアドレス変換テーブルは仮想アドレスの
部分ビット列をインデクスとして用いる。
【0019】図1で動作を説明する。仮想アドレスレジ
スタ10の上位51ビットが表わす仮想ページアドレス
は、二つのアドレス変換バッファ(TLB)21,22
に入力される。いずれかのTLBにヒットすれば、仮想
ページアドレスの仮想ページに割り当てられている実ペ
ージの実ページアドレス(PFRA)がANDゲート4
0,41のいずれかから出力され、ORゲート44を介
して実アドレスレジスタ30の上位51ビットに設定さ
れる。仮想アドレスレジスタ10の変位(D)12ビッ
トは、実アドレスレジスタ30の下位12ビットにその
まま設定される。このように TLBにヒットする場合
は、実記憶装置のアドレス変換テーブル23,24,2
5,26へのアクセスはなく、高速にアドレス変換が完
了する。いずれのTLBにもヒットしない場合は、実記
憶装置にあるアドレス変換テーブルを参照してアドレス
変換を行う。 FRTOR20と仮想アドレスレジスタ
10のFRXからアドレスを求めてFRTE151が読
み出され、SRTO157とSRXからアドレスを求め
てSRTE152が読み出される。 STO159とS
Xからアドレスを求めてSTE153が読み出される。
Lビット160がオンの場合は1MBページリージョン
であるので、STE153のフィールド162のPFR
Aが実アドレスレジスタ30の上位51ビットに設定さ
れる。 Iビットがオンならば、その時点でページ例外
を発生させる。Lビット160がオフの場合は4KBペ
ージリージョンであるので、 PTO162とPXから
アドレスを求めてPTE15がを読み出され、 PTE
15のフィールド164のPFRAが実アドレスレジス
タ30の上位51ビットに設定される。 Iビットがオ
ンならば、その時点でページ例外を発生させる。仮想ア
ドレスレジスタ10の変位(D)12ビットは、実アド
レスレジスタ30の下位12ビットにそのまま設定され
る。アクセスしたエントリ151,152のいずれかの
Iビットがオンであれば、その時点でアドレス変換例外
を発生させる。
【0020】次に、図4と図5を用いて本実施例の拡張
ページ命令の構成と動作を説明する。図4は、拡張ペー
ジ設定命令および無効化命令の処理機構の構成図であ
る。
【0021】拡張ページ設定命令(SXPTE)は、拡
張仮想ページのアドレス変換情報を拡張仮想ページのア
ドレスに対応する一つまたは複数のSTE153または
PTE154に設定する命令である。二つの汎用レジス
タ番号をオペランドとして指定する命令形式であるが、
R1レジスタとR2レジスタ、さらにR2の次の番号の
レジスタであるR2+1レジスタと三つのオペランドを
指定する。R1レジスタ200には拡張仮想ページのP
TE154データ、R2レジスタ201には設定対象の
ST25、PT26を指すSRTE152データ、R2
+1レジスタ202には拡張仮想ページアドレスを表わ
すSX204とPX205と拡張仮想ページサイズ(P
S)206を設定しておく。PS206は、4KBの約
数で指定する。
【0022】SXPTEの処理機構は、処理が開始され
ると、 R2レジスタ201のLビット203がオンな
らば、1MB仮想ページ用の処理を行うSXPTE1M
マイクロプログラム210が起動される。マイクロプロ
グラム210は、 R2レジスタ201のSTOとR2
+1レジスタ202のSX204から拡張仮想ページに
対応する先頭STE153のアドレスを求める。先頭S
TE153からPS206が指定する範囲のSTEま
で、R1レジスタ200のPTE154データを書き込
んでいく。ただし、2番目以降のSTEからは、PFR
Aを1MBずつ増加させて書き込んでいく。こうするこ
とによって、拡張仮想ページのための一つのPTEと同
じように、設定された複数のSTE153は拡張仮想ペ
ージ中の仮想アドレスを正しい実アドレスに変換でき
る。 R2レジスタ201のLビット203がオフなら
ば、4KB仮想ページ用の処理を行うSXPTE4Kマ
イクロプログラム211が起動される。マイクロプログ
ラム211は、 R2レジスタ201のSTOとR2+
1レジスタ202のSX204とPX205から拡張仮
想ページに対応する先頭PTE154のアドレスを求め
る。先頭PTE154からPS206が指定する範囲の
PTEまで、R1レジスタ200のPTE154データ
を書き込んでいく。ただし、2番目以降のPTEから
は、PFRAを4KBずつ増加させて書き込んでいく。
【0023】拡張ページ無効化命令(IXPTE)は、
拡張仮想ページのアドレスに対応する一つまたは複数の
STE153またはPTE154とTLB21,22エ
ントリを無効化する命令である。二つの汎用レジスタ番
号をオペランドとして指定する命令形式であるが、 S
XPTEとの対応をとるため、R2レジスタ、さらにR
2の次の番号のレジスタであるR2+1レジスタという
二つのオペランドを指定する。 R2レジスタ201に
は無効化対象のST25、PT26を指すSRTE15
2データ、R2+1レジスタ202には拡張仮想ページ
アドレスを表わすSX204とPX205と拡張仮想ペ
ージサイズ(PS)206を設定しておく。PS206
は、4KBの約数で指定する。
【0024】IXPTEの処理機構は、処理が開始され
ると、 R2レジスタ201のLビット203がオンな
らば、1MB仮想ページ用の処理を行うIXPTE1M
マイクロプログラム212が起動される。マイクロプロ
グラム212は、 R2レジスタ201のSTOとR2
+1レジスタ202のSX204から拡張仮想ページに
対応する先頭STE153のアドレスを求める。先頭S
TE153からPS206が指定する範囲のSTEまで
STE153のIビットをオンにし、かつ該当STEの
仮想アドレスに対応する1MB用および4KB用TLB
22,21のエントリを無効化していく。R2レジスタ
201のLビット203がオフならば、4KB仮想ペー
ジ用の処理を行うIXPTE4Kマイクロプログラム2
13が起動される。マイクロプログラム213は、 R
2レジスタ201のSTOとR2+1レジスタ202の
SX204とPX205から拡張仮想ページに対応する
先頭PTE154のアドレスを求める。先頭PTE15
4からPS206が指定する範囲のPTEまでIビット
をオンにして、かつ該当PTEの仮想アドレスに対応す
る1MB用および4KB用TLB22,21のエントリ
を無効化しいく。
【0025】図5は、拡張ページキー操作命令の構成図
である。
【0026】拡張ページキー設定命令(SXSKE)
は、拡張実ページのアクセス保護情報を拡張実ページの
アドレスに対応する一つまたは複数のキー記憶115,
116のエントリに設定する命令である。二つの汎用レ
ジスタ番号をオペランドとして指定する命令形式であ
り、R1レジスタとR2レジスタの二つのオペランドを
指定する。R1レジスタ220には拡張仮想ページのア
クセス保護情報(ACCFRC)223、R2レジスタ
221には設定対象のキー記憶エントリを指す拡張実ペ
ージアドレスを表わすPFRA224と拡張実ページサ
イズ(PFS)225を設定しておく。PFS225
は、4KBの約数で指定する。
【0027】SXSKEの処理機構は、処理が開始され
ると、SXSKEマイクロプログラム232が起動され
る。マイクロプログラム232は、 R2レジスタ22
1のPFRA224が指す先頭キー記憶エントリからP
FS225が指定する範囲のキー記憶エントリまで、R
1レジスタ220のアクセス保護情報223を書き込ん
でいく。設定対象のキー記憶エントリが、4KB領域キ
ー記憶115ならば設定するエントリ数はPFS225
と等しく、1MB領域キー記憶116ならば設定するエ
ントリ数はPFS225を256で割った数である。
【0028】拡張ページキーリセット命令(RXRB
E)は、拡張実ページのアドレスに対応する一つまたは
複数のキー記憶115,116のエントリの参照ビット
(R)をリセットする命令である。二つの汎用レジスタ
番号をオペランドとして指定する命令形式であるが、R
2レジスタのオペランドのみを指定する。 R2レジス
タ221には設定対象のキー記憶エントリを指す拡張実
ページアドレスを表わすPFRA224と拡張実ページ
サイズ(PFS)225を設定しておく。PFS225
は、4KBの約数で指定する。
【0029】RXRBEの処理機構は、処理が開始され
ると、RXRBEマイクロプログラム233が起動され
る。マイクロプログラム233は、 R2レジスタ22
1のPFRA224が指す先頭キー記憶エントリからP
FS225が指定する範囲のキー記憶エントリまで、ア
クセス保護情報223のRビットをリセットしていく。
設定対象のキー記憶エントリが、4KB領域キー記憶1
15ならば設定するエントリ数はPFS225と等し
く、1MB領域キー記憶116ならば設定するエントリ
数はPFS225を256で割った数である。
【0030】拡張ページキー挿入命令(IXSKE)
は、拡張実ページのアドレスに対応する一つまたは複数
のキー記憶115,116のエントリのアクセス保護情
報をレジスタに挿入する命令である。二つの汎用レジス
タ番号をオペランドとして指定する命令形式であり、R
1レジスタとR2レジスタの二つのオペランドを指定す
る。R1レジスタ220には1MB実ページ領域かどう
かを示すLビット222と拡張仮想ページのアクセス保
護情報(ACCFRC)223が挿入される。R2レジ
スタ221には設定対象のキー記憶エントリを指す拡張
実ページアドレスを表わすPFRA224と拡張実ペー
ジサイズ(PFS)225を設定しておく。PFS22
5は、4KBの約数で指定する。
【0031】IXSKEの処理機構は、処理が開始され
ると、IXSKEマイクロプログラム230が起動され
る。マイクロプログラム230は、 R2レジスタ22
1のPFRA224が指す先頭キー記憶エントリのアク
セス保護情報からアクセスキー(ACC)とフェッチビ
ット(F)が読み出されR1レジスタ220に挿入され
る。参照ビット(R)と変更ビット(C)については、
先頭キー記憶エントリからPFS225が指定する範囲
のキー記憶エントリまでのすべてのRビットの論理和と
すべてのCビットの論理和がR1レジスタ220に挿入
される。対象のキー記憶エントリが、4KB領域キー記
憶115ならば読み出すエントリ数はPFS225と等
しく、1MB領域キー記憶116ならば読み出すエント
リ数はPFS225を256で割った数である。
【0032】
【発明の効果】本発明の仮想記憶装置によれば、大ペー
ジサイズと小ページサイズが混在する多重ページサイズ
の仮想記憶装置が少ないOSオーバヘッドでプログラム
に提供できるので、大容量仮想記憶においてコンピュー
タシステムの性能が向上するとともに仮想記憶管理に要
するメモリ資源も削減できる。さらに、アドレス変換テ
ーブルの段数を減らすことで拡張ページサイズを実現す
るので、新たな変換テーブルを設けることがないので、
ハードウェア量を削減することができる。
【0033】また、本発明の仮想記憶装置によれば、ア
ドレス変換機構の仮想ページサイズの種類を少なくした
まま、さらに種類の多い拡張仮想ページサイズをプログ
ラムに提供でき、応用の多様なページサイズの要求に対
応できるので、応用プログラムの実行が高速化される。
【図面の簡単な説明】
【図1】本発明の一実施例のアドレス変換機構の構成
図。
【図2】本発明の一実施例の仮想記憶と実記憶の構成を
示す図。
【図3】本発明の一実施例のアドレス変換テーブルのフ
ォーマットを示す図。
【図4】本発明の一実施例の拡張ページ設定命令および
無効化命令の処理機構の構成図。
【図5】本発明の一実施例の拡張ページキー操作命令の
処理機構の構成図。
【符号の説明】
10 仮想アドレスレジスタ 21,22 アドレス変換バッファ 23,24,25,26 アドレス変換テーブル 30 実アドレスレジスタ 100 仮想記憶空間 101 実記憶装置 102 キー記憶装置。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】コンピュータプログラムに対して仮想記憶
    を提供し、仮想アドレスを実アドレスに変換するために
    仮想アドレスの部分ビット列をインデクスとして用いる
    少なくとも2段以上のn段の階層構成のアドレス変換テ
    ーブル手段を有する仮想記憶装置であって、 階層構成の最下位の少なくとも2段以上のm段の変換テ
    ーブルによって表わされる仮想記憶領域の単位であるリ
    ージョンごとに、最上位のテーブルから数えて(n−m
    +1)段目からn段目のアドレス変換テーブルのうち何
    段目のテーブルエントリから変換結果の実記憶ページア
    ドレスを読み出すかを指定する機能により変換テーブル
    の段数によって定まる複数の仮想記憶ページサイズのう
    ちのいずれかを指定するページサイズ指定手段と、 前記ページサイズ指定手段に従って仮想アドレスを実ア
    ドレスに変換するアドレス変換手段とを有することを特
    徴とする仮想記憶装置。
  2. 【請求項2】前記リージョンは、32ビットまたは31
    ビットで表わされるサイズである請求項1記載の仮想記
    憶装置。
  3. 【請求項3】実記憶装置の領域ごとに、前記複数の仮想
    記憶ページサイズのいずれかを選択し、選択したページ
    サイズと等しいサイズを持つ実記憶ページごとにアクセ
    ス保護情報を保持するエントリを有するキー記憶手段を
    さらに有する請求項1記載の仮想記憶装置。
  4. 【請求項4】コンピュータプログラムに対して仮想記憶
    を提供する仮想記憶装置であって、 仮想アドレスを実アドレスに変換するためのアドレス変
    換テーブル手段と、 前記アドレス変換テーブル手段が提供する仮想記憶ペー
    ジサイズの倍数であるサイズを持つ拡張仮想記憶ページ
    のアドレス変換情報設定命令に応答して、前記命令が指
    定する一つの拡張仮想記憶ページのアドレスに対応する
    一つまたは複数のアドレス変換テーブルエントリに、前
    記命令が指定するアドレス変換情報を設定する拡張仮想
    記憶ページ設定手段とを有することを特徴とする仮想記
    憶装置。
  5. 【請求項5】前記アドレス変換テーブル手段は、アドレ
    ス変換情報のキャッシュを保持し主記憶より高速にアク
    セスできるメモリ回路で構成されるアドレス変換バッフ
    ァと、 前記アドレス変換テーブル手段が提供する仮想記憶ペー
    ジサイズの倍数であるサイズを持つ拡張仮想記憶ページ
    のアドレス変換情報無効化命令に応答して、前記命令が
    指定する一つの拡張仮想記憶ページのアドレスに対応す
    る一つまたは複数のアドレス変換バッファエントリのア
    ドレス変換情報を無効化する拡張仮想記憶ページ無効化
    手段とをさらに有する請求項4記載の仮想記憶装置。
  6. 【請求項6】前記アドレス変換テーブル手段が提供する
    仮想記憶ページと等しいサイズを持つ実記憶ページごと
    にアクセス保護情報を保持するエントリを有するキー記
    憶手段と、 前記実記憶ページサイズの倍数であるサイズを持つ拡張
    実記憶ページのアクセス保護情報設定命令に応答して、
    前記命令が指定する一つの拡張実記憶ページのアドレス
    に対応する一つまたは複数のキー記憶エントリに、前記
    命令が指定するアクセス保護情報を設定する拡張実記憶
    ページ設定手段とをさらに有する請求項4記載の仮想記
    憶装置。
  7. 【請求項7】前記アドレス変換テーブル手段は複数の仮
    想記憶ページサイズを提供する手段をさらに有する請求
    項4記載の仮想記憶装置。
  8. 【請求項8】前記アドレス変換テーブル手段のアドレス
    変換バッファは、複数の仮想記憶ページサイズを提供す
    る手段を有し、 前記拡張仮想記憶ページ無効化手段は、前記アドレス変
    換バッファエントリがどの仮想記憶ページサイズのため
    のものかには係らず、前記仮想記憶ページサイズの前記
    アドレス変換情報無効化命令が指定する一つの拡張記憶
    ページのアドレスに対応する全てのアドレス変換バッフ
    ァエントリのアドレス変換情報を無効化する手段をさら
    に有する請求項5記載の仮想記憶装置。
JP9110637A 1997-04-28 1997-04-28 多重ページサイズを有する仮想記憶装置 Pending JPH10301848A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9110637A JPH10301848A (ja) 1997-04-28 1997-04-28 多重ページサイズを有する仮想記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9110637A JPH10301848A (ja) 1997-04-28 1997-04-28 多重ページサイズを有する仮想記憶装置

Publications (1)

Publication Number Publication Date
JPH10301848A true JPH10301848A (ja) 1998-11-13

Family

ID=14540784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9110637A Pending JPH10301848A (ja) 1997-04-28 1997-04-28 多重ページサイズを有する仮想記憶装置

Country Status (1)

Country Link
JP (1) JPH10301848A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011509469A (ja) * 2008-01-11 2011-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション フォーマット制御を有する動的アドレス変換
JP2012507071A (ja) * 2008-10-23 2012-03-22 マイクロソフト コーポレーション オポチュニスティック・ページ・ラージフィケーション
CN104508640A (zh) * 2012-08-22 2015-04-08 三菱电机株式会社 高速缓冲存储器控制器和高速缓冲存储器控制方法
WO2019159472A1 (ja) * 2018-02-15 2019-08-22 ソニー株式会社 メモリ管理装置及びメモリ管理方法、並びに情報処理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011509469A (ja) * 2008-01-11 2011-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション フォーマット制御を有する動的アドレス変換
JP2012507071A (ja) * 2008-10-23 2012-03-22 マイクロソフト コーポレーション オポチュニスティック・ページ・ラージフィケーション
CN104508640A (zh) * 2012-08-22 2015-04-08 三菱电机株式会社 高速缓冲存储器控制器和高速缓冲存储器控制方法
WO2019159472A1 (ja) * 2018-02-15 2019-08-22 ソニー株式会社 メモリ管理装置及びメモリ管理方法、並びに情報処理装置
JPWO2019159472A1 (ja) * 2018-02-15 2021-01-28 ソニー株式会社 メモリ管理装置及びメモリ管理方法、並びに情報処理装置

Similar Documents

Publication Publication Date Title
US8799621B2 (en) Translation table control
US5835962A (en) Parallel access micro-TLB to speed up address translation
US5930830A (en) System and method for concatenating discontiguous memory pages
CN101292228B (zh) 转换后备缓冲器的锁定指示符
US6256715B1 (en) System and method of performing gateway access
US10282122B2 (en) Methods and systems of a memory controller for hierarchical immutable content-addressable memory processor
US5918251A (en) Method and apparatus for preloading different default address translation attributes
US5991757A (en) Method and system for searching an array for an array value
KR960001946B1 (ko) 우선 변환 참조버퍼
JP3640978B2 (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
US6457104B1 (en) System and method for recycling stale memory content in compressed memory systems
US5282274A (en) Translation of multiple virtual pages upon a TLB miss
US6581142B1 (en) Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer
US6622211B2 (en) Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty
EP0215544B1 (en) Virtual memory address fetching
JPS62165249A (ja) ペ−ジ・セグメント化仮想記憶デ−タ処理システムにおけるセグメント・サイズを自動的に大きくする方法
JP2010518519A (ja) アドレス変換方法及び装置
US7093100B2 (en) Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
CN101243398B (zh) 共享转换后备缓冲器方法
JP2768503B2 (ja) 仮想記憶アドレス空間アクセス制御方式
CA1262287A (en) Explicit instructions for control of translation lookaside buffers
JPH10301848A (ja) 多重ページサイズを有する仮想記憶装置
JPS6167160A (ja) 仮想アドレス変換装置
McWilliams et al. Lawrence LiV rmore Laboratory
JPS6367662A (ja) 仮想空間管理方式