JP3261708B2 - 仮想計算機のアドレス変換方式 - Google Patents

仮想計算機のアドレス変換方式

Info

Publication number
JP3261708B2
JP3261708B2 JP23343691A JP23343691A JP3261708B2 JP 3261708 B2 JP3261708 B2 JP 3261708B2 JP 23343691 A JP23343691 A JP 23343691A JP 23343691 A JP23343691 A JP 23343691A JP 3261708 B2 JP3261708 B2 JP 3261708B2
Authority
JP
Japan
Prior art keywords
address
virtual
page
instruction
access
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 - Fee Related
Application number
JP23343691A
Other languages
English (en)
Other versions
JPH0573425A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP23343691A priority Critical patent/JP3261708B2/ja
Publication of JPH0573425A publication Critical patent/JPH0573425A/ja
Application granted granted Critical
Publication of JP3261708B2 publication Critical patent/JP3261708B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、汎用オペレーティン
グシステム(以下、OSという)上で仮想計算機を実現
する際の、メモリアクセスを高速に実行するためのアド
レス変換方式に関する。
【0002】
【従来の技術】従来の仮想計算機におけるアクセス手法
を図4に基づいて説明する。図において、11はアクセ
スの対象となる仮想アドレス空間、12は実アドレス空
間、13は仮想アドレスから実アドレスへの変換テーブ
ルとなるマップテーブル、14は仮想計算機でアクセス
動作を行うコード部分である。まずコード14が仮想ア
ドレス空間11上のアドレスaからデータを読み出そう
(Fetch)とすると、アドレスaのページ数a1を
算出しマップテーブル13からインデックスをa1とし
たエントリを引き出してくる。エントリには実アドレス
ベースとページ数a1の状態を表現するフラグが含まれ
ている。コード14では引き出したエントリからマスク
することによってフラグ部分を取り出し、条件分岐によ
ってページフォルトなどの例外処理(14´)と通常ア
クセス処理へと分岐していた。さらに実際にアクセスす
る段階で、マップテーブル13から実アドレスベースと
ページ内オフセットから実アドレスを算出し、メモリを
アクセスしていた。
【0003】なお、ここでの仮想計算機は、広範囲のマ
シンを動作対象としているため、特定のOSに依存する
アクセス方式を採用せず、仮想計算機でアクセスに関す
る使用を定義して、仮想計算機の実行環境である仮想イ
メージはマシン独立であることを目的としている。その
ため、アクセス方式は仮想計算機独自のものとなってい
る。
【0004】
【発明が解決しようとする課題】このように、アクセス
方式を機械依存ではなく独自に用意することは汎用性を
高め、仮想計算機の実行環境を容易に種々のOSに移植
できることを意味している。しかしながら、従来のアク
セス方式では、各ページに関する情報を毎アクセスごと
に取り出さなければならないというオーバーヘッドが必
然的に存在していた(これまでは、そのオーバーヘッド
としてページ情報をアクセスし、必要なフラグをマスク
を掛けて取り出していた)。また、仮想計算機の実アド
レスを得るには、実計算機上での仮想計算機の仮想空間
の先頭アドレスを加算する必要があり、いずれもアクセ
ス速度低下の原因となっていた。
【0005】この発明は、仮想環境などの上位層をまっ
たく変更することなしに、アクセス速度の高速化を図る
ことができる仮想計算機のアドレス変換方式を提供する
ことを目的とする。
【0006】
【課題を解決するための手段】上記課題を解決するた
め、この発明に係わる仮想計算機のアドレス変換方式に
おいては、メモリアクセスの対象となる仮想メモリアド
レス空間と、実メモリアドレス空間と、メモリアクセス
動作を実行するコード部と、前記仮想メモリアドレス空
間の各ページの状態を表現するフラグの代用として用意
した命令列をエントリとする命令テーブルとを具え、前
記命令テーブル内の命令を実行させることにより、実メ
モリアドレス空間に対する通常のアクセス処理またはフ
ォルト処理などを行うようにしている。
【0007】上述した処理において、該当アドレスに対
応するページの状態が通常状態でアクセス可能であるな
らば、命令テーブル内のスロットに命令列としてRET
URNを書き込む処理を行う。また、該当アドレスに対
応するページの状態がアクセスによって変更される場合
は、アクセスを行うと共に、命令テーブルの内部コード
を書き換えて、次回のアクセスではページの状態を表現
するフラグに見合った新たな命令列を実行するようにし
ている。さらに、該当アドレスに対応する実アドレス
を、命令列をエントリとする命令テーブルに命令列とし
て、あるいは定数として書き込んで、アクセスの際のベ
ースアドレスとしている。
【0008】
【作用】コード部によって仮想メモリアドレス空間から
のデータのアクセスが行われる場合、仮想メモリアドレ
ス空間上のアドレスからページ数が算出され、その値を
インデックスした命令テーブルに制御が移される。命令
テーブルのエントリには各ページに対応した命令列が書
かれており、この命令列を実行することによって、あら
かじめ設定された処理や命令テーブルの内部コードを書
き換える処理などが実行されることになる。したがっ
て、従来のように実アドレスをマップテーブルから取り
出すためのマスクや、フラグの状態を判断するための条
件分岐などを行う必要がないので、メモリアクセス動作
に伴うオーバーヘッドを削減することができる。
【0009】
【実施例】以下、この発明に係わる仮想計算機のアドレ
ス変換方式の一実施例を図面を参照しながら説明する。
【0010】図1は、この発明に係わるアドレス変換方
式を適用した仮想計算機の構成を示している。図におい
て、1はアクセスの対象となる仮想アドレス空間、2は
実アドレス空間、3は各ページに対応した命令列をエン
トリとする命令テーブルであるコールマップテーブル、
4はメモリアクセス動作を行うコード部分である。
【0011】メモリアクセス時の動作としては、まずコ
ード4が仮想アドレス空間2上のアドレスaからデータ
を読み出そう(Fetch)とすると、アドレスaのペ
ージ数a1を算出し、そのa1をインデックスとしたコ
ールマップテーブル3にジャンプして制御を移す。コー
ルマップテーブル3には、図4に示すマップテーブル1
3のフラグに対応した処理が内部コードで書かれてお
り、この内部コードの命令を実行させることにより、実
メモリアドレス空間2に対するデータのアクセスが行な
われる。
【0012】通常アクセス可能な場合は、実アドレスを
内部コードに盛り込んで最終的にアクセスするポインタ
にセットする(実アドレス定数セット)。ページフォル
トなどが発生する場合には、内部コードとしてコールマ
ップにフォルトへのジャンプ命令として書き込む。その
結果、マップテーブルに相当するコールマップテーブル
3はコードストリームとして実行されるので、インスト
ラクションキャッシュを備えたプロセッサでは、コール
マップテーブルがインストラクションキャッシュに収ま
り高速化が望める。また、この手法を取り入れることに
より、マップテーブルの内容を命令列で置き換えること
が可能となる。すなわち、マップテーブル13(図4)
内のフラグを更新しなければならないような状態では、
コールマップテーブル3内の命令列が自分自身の内部コ
ードを書き換えることにより代用することができる。
【0013】図2は、この様子を表している。マップテ
ーブル内のフラグfは、referenced、dir
ty、protectedの3種類に分けられる。re
ferencedは少なくとも該当ページが一度はアク
セスされたことを表現している。dirtyは該当ペー
ジに対して書き込みがあったことを表現している。ま
た、protectedは該当ページが書き込み禁止を
表現しており、書き込み操作を行うとフォルトを発生す
る。仮想ページが実ページに割り当てられていない場合
(Vacant)には、便宜上dirtyとprote
ctedをセットして表現するようにする。また、コー
ルマップテーブルの2つのスロット(Fetch、St
ore)にはエントリの内容が書き込まれている。スロ
ットの下の記述は、そのページの状態(フラグ)を表現
している。
【0014】コールマップテーブルによるアドレス変換
方式では、上述したように読み出し(Fetch)と書
き込み(Store)について、それぞれスロットを用
意して処理を行う。例えば、読み出しでは読み出し側の
コールマップテーブルのエントリを実行すると共に、該
当ページに対するアクセスが最初のアクセスであれば、
自分自身の内部コードを、実アドレスをセットする命令
とRETURN命令に書き換えてしまう(状態2から状
態3)。つまり自分自身を書き換えるコードがセットさ
れていなければreferencedはセットされてお
らず、自分自身を書き換えるコードがセットされていれ
ば、referencedがセットされているという状
態を表現していることになる。書き込みでは、自分自身
を書き換えるコードがセットされていなければ、dir
tyがセットされていないことになり、自分自身を書き
換えるコードがセットされておれば、dirtyがセッ
トされていることになる(状態3から状態4、又は状態
2から状態4)。また、protectedがセットさ
れた状態に相当するコールマップテーブルは、書き込み
側のコールマップテーブルが書き込みに関するフォルト
にジャンプするような内部コードをセットする(状態2
又は3から状態5)。仮想ページが実ページに割り当て
られていない場合には、読み出し側、書き込み側ともコ
ールマップのエントリをページフォルトの処理へジャン
プするように変更する(状態2ないし5から状態5)。
【0015】フォルトを起こさないメモリアクセス操作
の場合は、実ページのベースアドレスをレジスタにセッ
トしてRETURNするようにセットする。具体的に
は、仮想計算機の実アドレスが仮想計算機が載る汎用O
S上で図3のように表現されている時、「実アドレスベ
ース値」+「汎用OS上での実アドレス空間ベースアド
レス値」−「仮想アドレスベース値」をレジスタにセッ
トしてやることで、該当ページ内の全てのアクセスにつ
いて、該当レジスタをポインタとして直接アドレッシン
グが行えることになる。この結果、従来の方式のように
実アドレスをマップテーブルから取り出すためにマスク
を行うことや、フラグをマスクで取り出しフラグの状態
を判断するために条件分岐を行う必要がなくなる。した
がって、これらのオーバーヘッドを削減することができ
る。
【0016】ちなみに、仮想計算機上では上記アドレス
変換方式を用いることにより、Dhrystoneベン
チマークテストで約40パーセントの速度向上を計るこ
とができた。
【0017】
【発明の効果】以上説明したように、この発明に係わる
仮想計算機のアドレス変換方式においては、仮想メモリ
アドレスから実メモリアドレスへの変換テーブルの代わ
りに、仮想メモリアドレス空間の各ページの状態を表現
するフラグの代用として用意した命令列をエントリとす
る命令テーブルを設け、当該命令テーブル内の命令を実
行させることにより、実メモリアドレス空間に対するデ
ータのアクセスを行うようにしたため、実アドレスをマ
ップテーブルから取り出すためにマスクを行うことや、
フラグをマスクで取り出しフラグの状態を判断するため
に条件分岐を行う必要がないうえ、ページ内オフセット
の分を加算する処理などが不要となる。したがって、仮
想環境などの上位層をまったく変更することなく、アク
セス速度の高速化を実現することができる。
【図面の簡単な説明】
【図1】この発明に係わるアドレス変換方式を適用した
仮想計算機の構成を示す図。
【図2】マップテーブルとコールマップテーブルの内容
を示す図。
【図3】仮想計算機の実アドレスが仮想計算機が載る汎
用OS上に表現されている様子を示す図。
【図4】従来のアドレス変換方式を適用した仮想計算機
の構成を示す図。
【符号の説明】
1…仮想アドレス空間、2…実アドレス空間、3…コー
ルマップテーブル、4…コード、13…マップテーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大橋 彰子 神奈川県川崎市高津区坂戸100番1号 KSP R&D ビジネスパークビル 富士ゼロックス株式会社内 (56)参考文献 特開 平4−280337(JP,A) 特開 平4−324549(JP,A) 特開 平3−102445(JP,A) 特開 平2−236652(JP,A) 特開 平2−217942(JP,A) 特開 昭61−160160(JP,A) 特開 昭60−225943(JP,A) 清水謙多郎,分散処理とMach,イ ンターフェース,日本,CQ出版社, 1991年10月1日,第17巻第10号,P. 124−129 梅野英典 他,仮想計算機システムの 高性能化方式,情報処理,日本,社団法 人情報処理学会,1990年12月15日,第31 巻第12号,P.1665−1680 (58)調査した分野(Int.Cl.7,DB名) G06F 12/10 G06F 9/46 350 G06F 9/44

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】メモリアクセスの対象となる仮想メモリア
    ドレス空間と、実メモリアドレス空間と、メモリアクセ
    ス動作を実行するコード部と、前記仮想メモリアドレス
    空間の各ページの状態を表現するフラグの代用として用
    意した命令列をエントリとする命令テーブルとを具え、
    当該命令テーブル内の命令を実行させることにより、実
    メモリアドレス空間に対するデータのアクセスを行うよ
    うにしたことを特徴とする仮想計算機のアドレス変換方
    式。
JP23343691A 1991-09-12 1991-09-12 仮想計算機のアドレス変換方式 Expired - Fee Related JP3261708B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23343691A JP3261708B2 (ja) 1991-09-12 1991-09-12 仮想計算機のアドレス変換方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23343691A JP3261708B2 (ja) 1991-09-12 1991-09-12 仮想計算機のアドレス変換方式

Publications (2)

Publication Number Publication Date
JPH0573425A JPH0573425A (ja) 1993-03-26
JP3261708B2 true JP3261708B2 (ja) 2002-03-04

Family

ID=16955012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23343691A Expired - Fee Related JP3261708B2 (ja) 1991-09-12 1991-09-12 仮想計算機のアドレス変換方式

Country Status (1)

Country Link
JP (1) JP3261708B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60225943A (ja) * 1984-04-25 1985-11-11 Hitachi Ltd 例外割込み処理方式
JPS61160160A (ja) * 1985-01-09 1986-07-19 Hitachi Ltd 仮想計算機システムにおけるアドレツシング制御装置
ATE129351T1 (de) * 1988-06-06 1995-11-15 Digital Equipment Corp Seitentabellen in einem virtuellen speicher.
JPH02217942A (ja) * 1989-02-17 1990-08-30 Hitachi Ltd 計算機システムの自動ページング方式
JP2798275B2 (ja) * 1989-09-14 1998-09-17 富士通株式会社 仮想記憶アドレス空間アクセス制御方式
JPH04280337A (ja) * 1991-03-08 1992-10-06 Fuji Xerox Co Ltd 仮想記憶計算システム
JPH04324549A (ja) * 1991-04-24 1992-11-13 Oki Electric Ind Co Ltd 伝送制御におけるアドレス変換方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
梅野英典 他,仮想計算機システムの高性能化方式,情報処理,日本,社団法人情報処理学会,1990年12月15日,第31巻第12号,P.1665−1680
清水謙多郎,分散処理とMach,インターフェース,日本,CQ出版社,1991年10月1日,第17巻第10号,P.124−129

Also Published As

Publication number Publication date
JPH0573425A (ja) 1993-03-26

Similar Documents

Publication Publication Date Title
JP4658894B2 (ja) マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法
US4777588A (en) General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
JP3041528B2 (ja) フアイル・システム・モジュール
US8307191B1 (en) Page fault handling in a virtualized computer system
US4794522A (en) Method for detecting modified object code in an emulator
US4079453A (en) Method and apparatus to test address formulation in an advanced computer system
JPH03225455A (ja) データ処理システム
US5339417A (en) Computer system with two levels of guests
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
JP4921018B2 (ja) 直接実行機能を提供するためのシステム、コンピュータシステム、方法およびプログラム
GB2426082A (en) Memory caching using separate instruction and data caches
JP3261708B2 (ja) 仮想計算機のアドレス変換方式
CA1262287A (en) Explicit instructions for control of translation lookaside buffers
JP3554320B2 (ja) オブジエクト指向メモリ保護メカニズムを採用するデータ処理システムで実行環境間の通信を実行するデータ処理システム
US5450587A (en) Expanded memory addressing scheme
JP2865291B2 (ja) モジュール結合制御方式
JPS59500241A (ja) メモリ内容を機械レジスタに自動的に写像する計算機
JPS6032220B2 (ja) 情報処理装置
JPS6156816B2 (ja)
JPS6113615B2 (ja)
JP2001256042A (ja) 個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法
JPS6161142B2 (ja)
JPH011031A (ja) データプロセッサ
EP0550290A2 (en) CPU register array
JPH0560130B2 (ja)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees