JPH05257803A - 仮想記憶空間管理方法及びアドレス計算装置 - Google Patents

仮想記憶空間管理方法及びアドレス計算装置

Info

Publication number
JPH05257803A
JPH05257803A JP5006226A JP622693A JPH05257803A JP H05257803 A JPH05257803 A JP H05257803A JP 5006226 A JP5006226 A JP 5006226A JP 622693 A JP622693 A JP 622693A JP H05257803 A JPH05257803 A JP H05257803A
Authority
JP
Japan
Prior art keywords
address
type
program
virtual
space
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
JP5006226A
Other languages
English (en)
Inventor
Toshio Okamoto
利夫 岡本
Hideo Segawa
英生 瀬川
Osamu Wakamori
修 若森
Mitsuo Saito
光男 斎藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of JPH05257803A publication Critical patent/JPH05257803A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed

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)【要約】 【目的】 単一の大きな仮想空間上に小さな仮想空間上
で動作するよう作成されたプログラムを複数個まとめて
効率よく配置出来るような仮想記憶空間管理方法を提供
すること。 【構成】 小さな仮想空間用プログラムの実行中に使う
実効アドレスを適当なアドレスベースによる上位ビット
と各仮想アドレスの下位ビットを結合して求める。アド
レスベースをプログラム開始アドレスの上位ビットに代
えて、これを実行中固定してもよい。小さな仮想空間で
の仮想アドレスと同じ仮想アドレスを持つ互換モード領
域を用いて小さな仮想空間用プログラムを実行してもよ
い。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想記憶機構を有する
計算機システムにおける仮想記憶空間管理方法に関する
ものである。
【0002】
【従来の技術】最近の計算機システムにおいては、シス
テムの高性能化にともなう処理の大量化によりプログラ
ムやデータの実行空間であるアドレス空間の拡大が進ん
でいる。
【0003】そして、現状では、32ビットアドレス空
間の計算機システムが主流であるが、より高性能な64
ビットのアドレス空間をもつ計算機システムも発表され
実用化されつつある。
【0004】ところで、このような新しい計算機システ
ムの実用化にともない専用のプログラムも同時に開発さ
れているが、当面は、従来のプログラムを流用すること
が多く、このためあらかじめシステムのアーキテクチャ
ーや命令コードをファミリー化することにより既存のプ
ログラム資産を活用できるように配慮してある。
【0005】ところが、このような既存のプログラムで
は、もともと利用しているアドレス空間が小さいことか
ら、大きなアドレス空間を利用しきれず効率が悪くな
る。
【0006】例えば、図19(A)に示すように32ビ
ット(332=4G(ギガ))のアドレス空間90にプロ
グラム91と空き92を有するようなシステムを、その
まま図19(B)に示すように64ビット(264=(4
G)2 )のアドレス空間93をもつシステムに移植する
と大部分の空間が空き92となり、64ビット空間の特
長をまったく生かせないどころか空間資源のムダになっ
てしまう。
【0007】そこで、空きの空間を減らして効率的にシ
ステムを利用できるように図19(C)に示すように複
数のプログラム91−1,91−2,91−3を1つの
アドレス空間93に配置することが考えられている。
【0008】このようないわゆる単一仮想記憶方式は、
図19(D)に示すように、従来システムにおいて複数
のプログラム91−1,91−2,91−3を複数の空
間90−1,90−2,90−3に分けて実行していた
いわゆる多重仮想記憶方式に較べて、1つのアドレス空
間に集約できるので、空間切り替えのオーバーヘッドが
なくなり効率的な実行が期待できる。
【0009】より詳細に述べると、多重仮想記憶方式と
は、図19(D)に示されるように各々のプログラムを
個別の仮想記憶空間を割り当てる方式であり、この方式
では、実行プログラムの終了や入出力待ち、CPU消費
時間超過によるタイマ割込みなどによって実行プログラ
ムを切り替える、いわゆるコンテクスト・スイッチング
を行う場合には、現在の実行状態をセーブした後、仮想
記憶空間ごと入れ替えて次にスケジューリングされるプ
ログラムの実行状態をリストアしスイッチングするが、
多重仮想記憶方式では特に複数の実行プログラムが互い
に通信しながら一つの処理を進める場合、コンテクスト
・スイッチング、つまり仮想記憶空間の切り替えのオー
バーヘッドが大きいという欠点が指摘されている。
【0010】コンテクスト・スイッチングのオーバーヘ
ッドの原因としては、コンテクスト・スイッチングに伴
ない、トラップ処理およびカーネル・コードが実行され
ることや、コンテクスト・スイッチングに伴ない、TL
B(Translation Look-aside Buffer)やデータキャッ
シュの無効化処理を行なうこと、などが挙げられ、特に
後者のキャッシュの一貫保持に関連した処理に要する時
間が大きいといわれている。
【0011】一方、単一仮想記憶方式は、図19(C)
に示されるように複数のプログラムを同一の仮想記憶空
間に格納し、かつ格納したプログラムのアドレスが重複
しないように各アドレスに対応するプログラムは唯一と
する方式であり、この単一仮想記憶方式では、複数の実
行プログラムが通信しながら一つの処理を進める場合、
全ての実行プログラムが一つの仮想記憶空間に格納され
ているため、仮想記憶空間を切り替えずに単純な分岐命
令で別の実行プログラムを実行できることが挙げられ
る。
【0012】このような単一仮想記憶方式によれば、多
重仮想記憶方式に比較して実行プログラムの高速実行が
可能となり、ある特定の仮想アドレスを有する実行プロ
グラムは唯一であることから、コンテクストスイッチン
グ、すなわち実行プログラムを切り替える時に、キャッ
シュ一貫性保持操作をしなくてもよい。
【0013】
【発明が解決しようとする課題】ところで、このような
単一仮想記憶方式の採用に当たっては、従来の多重仮想
記憶方式の下で開発されたプログラムの移植性(バイナ
リ互換性という)が必須である。すなわち、従来の多重
仮想記憶方式のオペレーティング・システム上には膨大
なソフトウェア資産の蓄積があり、それらの資産を利用
できることが単一仮想記憶方式の新しいオペレーティン
グ・システムの重要な機能の一つとして要求される。
【0014】多重仮想記憶方式の下で作成された実行プ
ログラムを単一仮想記憶方式に基づくオペレーティング
・システムにそのまま移植すると、各プログラムは空間
のどこに配置されるかで開始アドレスが異なってしまう
ためそのままでは実行できない。即ち、多重仮想記憶方
式の場合、各々の仮想記憶空間に割り付けられたプログ
ラム毎にそれぞれのコードを含んでいるので、単一仮想
記憶方式のオペレーティング・システムに、多重仮想記
憶方式で開発されたバイナリプログラムを移植した場
合、同一番地に異なるプログラムが割り付けられること
になり、矛盾が生ずる。この結果、あるプログラムの実
行を指示しても、他のプログラムのコードが実行されて
しまう場合がある。
【0015】又、被移植プログラムの中に、データアク
セスする絶対仮想番地や分岐先絶対仮想番地が含まれて
いると、移植先のシステムにおいてもそれらをその絶対
仮想番地に割り付けないと、バイナリプログラムの実行
が不能となる。
【0016】これを解決するため、プログラムがソース
プログラムの形で供給されていると、プログラムの開始
アドレスを再計算してコンパイルし直し、実行(バイナ
リ)モジュールを作り直すことが考えられており、これ
を用いることで64ビット空間に再配置して実行するこ
とも可能である。
【0017】ところが、ソースプログラムがなく実行モ
ジュールしかないような場合には、プログラムの開始ア
ドレス、プログラム内でのジャンプ先、コール先アドレ
ス等を変えられないため、図19(C)に示すように開
始アドレスをずらしてプログラムを複数配置して実行す
ることはできなかった。
【0018】一方、新しい機種と従来の機種との間でソ
フトウェアの互換性を保つための方法としては、主に二
通りの方法が考えられる。一つはソフトウェアによるエ
ミュレーションであり、もう一つはハードウェアによる
エミュレーションであり、いずりも一長一短がある。ソ
フトウェアによるエミュレーションは実現が容易である
が、実行速度が遅いという欠点がある。ハードウェアに
よるエミュレーションは回路構成が複雑になるが、実行
速度に関しては従来の機種と同等か、またはそれ以上の
性能を有するという特長を持つ。
【0019】従来の機種のエミュレーションをハードウ
ェアによって実現するため、通常実行モードとは別に従
来の機種との互換モードを備え、この互換モードにおい
て従来の機種のソフトウェアをバイナリレベルで実行で
きるようにすることがある。その際、新しい機種か従来
の機種より広いアドレス幅を持っている場合、互換モー
ドにおいては、アドレス指定ビット列のうち下位ビット
のみを抽出して使用することが行なわれる。
【0020】この場合、アドレス指定ビット列のうち、
従来の機種の持っていたアドレス幅のビットより上位の
ビットは使用されない。しかし、新しい機種の持つアド
レス空間の中で同じ下位ビットを持つアドレスは多数あ
るので、上位ビットを別に指定する必要がある。一つの
実現方法として、上位ビットを0でマスクする方法があ
る。これにより、アクセスされるアドレスは、アドレス
空間の中でアドレス値が最も小さい領域になる。このよ
うに上位ビットを0でマスクする方法は、実現が容易で
あるが、上位アドレスが0に固定されているために、ア
ドレス空間の一部しか使用できない。
【0021】図20に、この方式によるアドレス指定装
置のブロック図を示す。まず、アドレス指定ビット列の
上位ビット94を0でマスクすることにより、下位ビッ
ト95を拡張する。そのようにして構成されたアドレス
96により、記憶装置97にアクセスを行なう。この方
式によるアドレス指定装置を用いた例として、例えばイ
ンテル社のCPUである80486では、仮想8086
モードを実現している。の仮想8086モードでは、3
2ビットのアドレス幅を持つ新しい機種の上で、それよ
り小さいアドレス幅を持つ従来の機種である8086の
コードをそのまま実行することができる。
【0022】このように仮想8086モードにおいて
は、従来の機種である8086のコードがそのまま実行
できる。しかし、このモードでは上位アドレスを全て0
でマスクしてしまうので、新しい機種がアクセスできる
4GBの仮想アドレス空間のうち、下位1MBの固定さ
れた仮想アドレス空間しか実際に利用できないという欠
点を持つ。そこで、ページテーブルを変えることによっ
て全物理アドレス空間を利用することを可能としている
が、ページテーブルの切替のオーバーヘッドが大きく、
また保護モードの設定が複雑になってしまう。
【0023】本発明は、上記事情に鑑みてなされたもの
で、仮想記憶空間を拡大した場合にもプログラムを変更
することなく仮想空間上に効率的に配置することかでき
る仮想記憶空間管理方法を提供することを目的とする。
【0024】更に、本発明は、上記のような問題を伴な
うことなく、多重仮想記憶方式のオペレーティング・シ
ステムにおいて実行されるプログラムを単一仮想記憶方
式のオペレーティング・システムに移植できる互換モー
ドを備えた仮想記憶空間管理方法を提供することを目的
とする。
【0025】更に、本発明は、互換モードにおいても新
しい機種におけるアドレスビットの全てを利用すること
により、新しい機種の広いアドレス空間の利用を実現で
きるアドレス指定装置を提供することを目的とする。
【0026】
【課題を解決するための手段】本発明は、上記課題を解
決するため、(a) 複数の第1タイプアドレス空間に
割り当てられるよう作成され、各々は第1タイプアドレ
ス空間より大きなサスイズを持つ第2タイプアドレス空
間に割り当てられるよう作成された第2タイププログラ
ムと区別されている第1タイププログラムを、複数個ま
とめて第2タイプアドレス空間に単一仮想記憶方式で、
仮想アドレス同志で重複のないように割り当てる段階
と、(b) 実行する各第1タイププログラムについ
て、該各第1プログラムが第2タイプアドレス空間内で
割り当てられた領域の仮想アドレスに適当な上位ビット
を指定するアドレスベースを登録する段階と、(c)
該各第1タイププログラムの実行中に使う実効アドレス
を、上記(b)で登録した該第1タイププログラムのア
ドレスベースと、該各第1タイププログラムが第2イプ
アドレス空間内で割り当てられた領域の仮想アドレスの
下位ビットとを結合して計算する段階と、から成ること
を特徴とする。
【0027】又、本発明は、(a) 複数の第1タイプ
アドレス空間に割り当てられるよう作成され、各々は第
1タイプアドレス空間より大きなサスイズを持つ第2タ
イプアドレス空間に割り当てられるよう作成された第2
タイププログラムと区別されている第1タイププログラ
ムを複数個と、少くとも1つの第2タイププログラムと
を、まとめて第2タイプアドレス空間に単一仮想記憶方
式で、仮想アドレス同志で重複のないように割り当てる
段階と、(b) 現在実行中プログラムを、実行中に遭
遇した命令の命令フィールドに基づいて、第1タイププ
ログラムか第2タイププログラムのどちらかに決定する
段階と、(c) 上記(b)で現在実行中プログラムが
第1タイププログラムと決定された時、該現在実行中プ
ログラムの実行中に使う実効アドレスを、該現在実行中
プログラムの第2タイプアドレス空間における開始アド
レスの上位ビットと、該現在実行中プログラムが第2タ
イプアドレス空間内で割り当てられた領域の仮想アドレ
スの下位ビットとを結合して計算する段階と、から成る
ことを特徴とする。
【0028】又、本発明は、(a) 複数の第1タイプ
アドレス空間に割り当てられるよう作成され、各々は第
1タイプアドレス空間より大きなサスイズを持つ第2タ
イプアドレス空間に割り当てられるよう作成された第2
タイププログラムと区別されている第1タイププログラ
ムを複数個と、少くとも1つの第2タイププログラムと
を、まとめて第2タイプアドレス空間に単一仮想記憶方
式で、仮想アドレス同志で重複のないように割り当てる
段階と、(b) 現在実行中プログラムが、第1タイプ
プログラムか第2タイププログラムのどちらであるかを
示す指定を与える段階と、(c) 上記(b)で現在実
行中プログラムが第1タイププログラムと指定された
時、該現在実行中プログラムの実行中に使う実効アドレ
スを、該現在実行中プログラムの第2タイプアドレス空
間における開始アドレスの上位ビットと、該現在実行中
プログラムが第2タイプアドレス空間内で割り当てられ
た領域の仮想アドレスの下位ビットとを結合して計算す
る段階と、から成ることを特徴とする。
【0029】又、本発明は、(a) 複数の第1タイプ
アドレス空間に割り当てられるよう作成され、各々は第
1タイプアドレス空間より大きなサスイズを持つ第2タ
イプアドレス空間に割り当てられるよう作成された第2
タイププログラムと区別されている第1タイププログラ
ムを、複数個まとめて第2タイプアドレス空間に単一仮
想記憶方式で、仮想アドレス同志で重複のないように割
り当てる段階と、(b) プログラムが恒久的割り当て
られず、各第1タイプアドレス空間において各第1タイ
ププログラムが割り当てられることになっていた仮想ア
ドレスと同一の仮想アドレスを有し、該各第1タイププ
ログラムを第2タイプアドレス空間内で実行する際に使
われる互換モードアドレス領域を設ける段階と、(c)
該各第1タイププログラムを、上記(b)で設けた第
2タイプアドレス空間の互換モードアドレス領域に、該
各第1タイププログラムの実効中一時的に設定して該各
第1タイププログラム実行する段階と、から成ることを
特徴とする。
【0030】又、本発明は、アドレス空間内の仮想アド
レスに割り当てられたプログラムの実行中に使われる実
効アドレスを計算するアドレス計算装置であって、実効
アドレスの上位ビットを指定するアドレスベースを設定
するアドレスベース設定手段と、該プログラムが割り当
てられたアドレス空間内の仮想アドレスの1つについて
のアドレスビット系列の下位ビットを選択的に抽出して
実効アドレスの下位ビットを指定するオフセットを設定
するオフセット設定手段と、上記アドレスベース設定手
段により設定されたアドレスベースを上位ビットとし、
上記オフセット設定手段により設定されたオフセットを
下位ビットとして、結合することで実効アドレスを得る
結合手段と、から成ることを特徴とする。
【0031】
【作用】この結果、本発明によれば、1つの大きな仮想
空間上に複数の小さなプログラムを配置し、かつ各プロ
グラムに一切の変更を加えることなく実行することがで
きる。これにより、単に、大きな仮想空間に、そのまま
小さなプログラムを配置するのと異なり、未使用の空間
を大巾に減らすことができるとともに、1つの大きな空
間に複数のプログラムが一度に配置できることから、複
数のプログラムを動作させる際の空間切り替えオーバー
ヘッドをなくすこともできる。
【0032】又、本発明により、従来の多重仮想記憶方
式のオペレーティング・システム上で動作するプログラ
ムは、移植先においても独立した仮想記憶空間に割り当
てられことにより、従来の実行環境と同じ仮想アドレス
が割り付けられ、実行可能となる。
【0033】また、一つの仮想記憶空間に複数の実行プ
ログラムが含まれており、そのうち特定の一つのプログ
ラムが従来の多重仮想記憶方式のオペレーティング・シ
ステムで開発されたものとする。このとき、被移植プロ
グラム内には移植前の環境の絶対アドレスが含まれてお
り、そのままでは実行不能である。このような場合、本
発明では上述のような実効アドレス計算を利用すること
で、被移植プログラムの仮想アドレス領域を移植前の仮
想アドレス領域から、移植先の仮想アドレス領域に実行
時に自動的に変換することで、絶対アドレスを含むプロ
グラムについても実行可能となる。
【0034】即ち、本発明は従来機種との互換モードで
は従来のプログラムを実行する場合にアドレス空間のサ
イズを切り替えるとともに、仮想アドレスを物理アドレ
スに変換するページテーブル上の仮想アドレスは各実行
プログラムで異ならせておき、アドレス空間のサイズを
狭めた際のプロセスからの見かけの仮想アドレスを同一
にすることにより多重仮想記憶方式を実現することを特
徴とする。換言すれば、一つの仮想記憶空間(一つのペ
ージテーブルで表現される空間)内に複数の実行プログ
ラムが含まれている場合、そのうちの特定の実行プログ
ラムを実行するに当たってオペレーティング・システム
がアドレッシングモードを切り替える指示を行ない、プ
ロセッサが自動的に変換テーブルの仮想アドレスの値の
別の仮想アドレスに変換するようになる。
【0035】又、本発明によると、従来の機種との互換
モードでは、従来のプログラムやデータがアドレスベー
スから始まり、オフセットのビット数で決定される領域
のアドレスに入ることになるので、アドレスベースとオ
フセットの結合によって新しい機種がアクセスできるア
ドレス空間を有効に利用できることになる。
【0036】
【実施例】以下、本発明の実施例を図面に従い説明す
る。
【0037】以下の各実施例では、アドレス空間が32
ビットであった計算機システム上のプログラムを64ビ
ットの計算機システムで実行させる場合について述べる
が、本発明は、これに限定されるものではなく、任意の
情況に適宜適用可能である。
【0038】図1は、本発明の第1実施例における仮想
空間内のプログラムの配置を示すものである。この場
合、1は64ビット(264=(4G)2 バイト)のアド
レス空間で、このアドレス空間1には、従来の32ビッ
ト用プログラム11,12,13(プログラム−1,プ
ログラム−2,プログラム−3)と64ビット用のプロ
グラム14(プログラム−4)およびOS15を配置し
ている。
【0039】この場合、32ビット用のプログラム1
1,12,13は、最大サイズが232=4Gバイトであ
り、これらのプログラム11,12,13は、4Gバイ
トのサイズを持つブロック1−1,1−2,1−3に配
置し、また、64ビット用のプログラム14は、4Gバ
イト以上のサイズの場合もあり、この例では12Gバイ
トか目から配置している。さらに、OS15は、プログ
ラム11〜14を制御する64ビットシステム用のオペ
レーティング・システムであるこの第1実施例では、プ
ログラムを実行するプロセッサ内のレジスタ構成は、図
2に示すように汎用レジスタ31、その他のレジスタ3
2、プログラムカウンタ(PC)33、プログラムステ
ータスワード(PSW)34、アドレスベースレジスタ
35、スタックポインタ(SP)36からなっている。
【0040】ここで、アドレスベースレジスタ35は、
32ビットプログラムを実行する際にそのプログラムが
64ビット空間を4Gバイトごとに分割した領域のブロ
ック1−1,1−2,1−3のどれに存在しているかを
指示するための領域のアドレスベース領域開始アドレス
を示すものである。また、プログラムステータスワード
(PSW)34は、図3に示すようにアドレスベースレ
ジスタ35を用いてアドレス計算を行うかどうかを指定
するアドレスベース有効フラグ341とその他の従来と
同様の各種フラグ342を有している。
【0041】次にこの第1実施例において、64ビット
マシンと32ビットマシンで命令コードが同一である場
合に、上記64ビットアドレス空間1へ実際にアクセス
を行うためのアドレス(以下実効アドレスと呼ぶ)の計
算処理について説明する。
【0042】まず、プログラム11の動作の説明をす
る。この場合、11では64ビットシステムでも32ビ
ットシステムでもアドレス配置は変わらないので、プロ
グラムの変更なしに動作することができる。
【0043】次に、プログラム12と13では、32ビ
ットシステムと64ビットシステムではアドレスの配置
がズレており、そのままでは動作しない。
【0044】この場合、OS15からプログラム12へ
実行を移すと、OS15がプログラム12が32ビット
用のものであることをプログラム12を空間1に配置す
る際にプログラム12の属性情報を読んで知っている。
よってOS15はプログラムカウンタ33にプログラム
12の開始アドレスをセットする際に、プログラムステ
ータスワード(PSW)34のアドレスベース有効フラ
グ341をONにし、アドレスベース値として1を入れ
て4Gバイト分のズレがあることを指示する。
【0045】これはプログラム12の配置された空間が
64ビット空間1中の4G番地からであり、プログラム
12の開始番地が、仮に32ビットシステムで100番
地の場合、(4G+100)番地から実行しないと動作
しないからであり、このため、アドレスベース有効フラ
グ341をONし、32ビットシステムでの番地をアド
レスベースレジスタ35の指定する上位32ビットの値
に合成して4Gバイト分そっくりズラすようにしてい
る。ここで、図4に示すように実効アドレス37は、プ
ログラムカウンタ(PC)33の下位32ビットとアド
レスベースレジスタ35の値を合成したものとなるが、
これは単純なしくみでありオーバーヘッドはほとんど生
じない。
【0046】また、この時点でOS15は、プログラム
12の実行開始番地である(4G+100)番地を知っ
ているので、プログラムカウンタ(PC)33に(4G
+100)をセットしている。しかし、この場合、アド
レスベース有効フラグ341がONしているので、プロ
グラムカウンタ(PC)33の上位32ビットは無視し
てアドレスベースレジスタ35の値との合成になり、実
効開始アドレスは(4G+100)番地となり、プログ
ラムカウンタ(PC)33の値と実効開始アドレスは等
しくなる。
【0047】次に、プログラム12中に制御が移り、そ
の中でコール命令やジャンプ命令などの実行アドレスを
制御する命令やスタックポインタ等のアドレス空間中の
位置を示すレジスタを利用する命令やロード命令のよう
な仮想アドレス空間の位置を指定してそのデータを読み
書きする命令を実行するような場合を説明する。
【0048】例えば、(4G+100)番地にジャンプ
命令があり、200番地へ飛ぶ場合を考えると、この場
合、飛び先のアドレスは32ビットモードのままなので
プログラムカウンタ(PC)33にセットされる番地は
200番地となり、そのままではプログラム11の領域
に飛んでしまう。
【0049】ところが、この場合、アドレスベース有効
フラグ341がONになったままでいるので、実際に飛
んでいく先の実効アドレスは図5に示すようにプログラ
ムカウンタ(PC)33の200番地とアドレスベース
レジスタ35の値との合成になり、実効アドレス37は
(4G+200)番地となり、飛び先は正しいアドレス
となって正常に動作することができる。
【0050】次に、リターン動作を実行する場合を考え
る。まず、コール動作時に使用していた汎用レジスタ3
1の内容はスタック領域に退避させてあるが、これを復
帰させる。この場合、スタックポインタ36が指すアド
レスとアドレスベースレジスタ35の値で実効アドレス
を求め、それが指すスタックの内容を汎用レジスタ31
に復帰させるようになる。次に、スタック領域に退避さ
せてあった戻り番地を、プログラムカウンタ(PC)3
3にセットし、戻り番地に戻るようになるが、これも先
に説明したジャンプ命令同様にして、アドレスベースレ
ジスタ35のアドレスベース値を利用して実効アドレス
を求め、そのアドレスへ戻れるようになる。
【0051】次に、プログラム12の処理が終了してO
S15に戻る場合は、プログラム終了のためのシステム
コールを実行するが、マシン命令としてトラップ命令の
ような特殊な命令を用いるので、アドレスベース有効フ
ラグ341はOFFに戻りアドレス変換の問題は関係な
くなる。
【0052】なお、プログラム13についても、上述し
たと同様である。
【0053】次に、64ビット用のプログラム14の場
合には、アドレス変換の問題はもともとないので、OS
15はアドレスベース有効フラグ341をOFFのまま
で実行できる。
【0054】例えば、プログラム14の開始アドレスが
(12G+100)の番地の場合は、図6に示すよう
に、その番地をプログラムカウンタ(PC)33にセッ
トし、これをそのまま実効アドレス37として実行すれ
ばよい。またプログラム14内でのジャンプもアドレス
ベース有効フラグ341をOFFのままでできるので全
空間を自由に飛びまわることができる。
【0055】尚、この第1実施例はアドレスベース有効
フラグ34を使わなくても実効アドレス計算が達成され
るよう以下の様に変更することが可能である。ここでア
ドレス制御命令(コール命令、ジャンプ命令、リターン
命令など)やロード命令などのアドレスを指定する命令
は、32ビット用の命令と64ビット用の命令の2種類
が存在するものとする。
【0056】例えば、先の例で説明すると、32ビット
用のプログラム12の実行中にジャンプ命令等のアドレ
ス制御命令が現れたとすると、このジャンプ命令が32
ビット用の命令ということが、そのマシンコードの命令
フィールドを解釈することによってわかるので、これに
基づいて飛び先のアドレスをセットする際に、プログラ
ムカウンタ(PC)33の下位32ビットをアドレスベ
ースレジスタ35の値と合成し、これによりプログラム
カウンタ(PC)33にセットされた値は(4G+20
0)番地となり、アドレスベース有効フラグ341を使
わなくても正しく動作が行われることになる。
【0057】次に、本発明の第2実施例としてアドレス
ベース有効フラグ341とアドレスベースレジスタ35
を使わなくても実効アドレス計算が達成されるものにつ
いて説明する。
【0058】この第2実施例は、アドレス制御命令(コ
ール命令,ジャンプ命令,リターン命令などのアドレス
を指定して実行する命令)は、32ビット用の命令と6
4ビット用の命令の2種類が存在する場合に適用され、
32ビット用の命令を実行する場合の実効アドレスの計
算は、現在のプログラムカウンタ(PC)33の上位3
2ビットをフィックスして変更されないようにすること
で達成される。
【0059】例えば、先の例で説明すると、プログラム
12中で32ビット用のジャプ命令(200番地へジャ
ンプ)が現れたとする。そして、プログラムカウンタ
(PC)33が仮に(4G+100)番地を指している
ものとしてジャンプ命令を実行すると、この時のジャン
プ命令が32ビット用の命令ということが、そのマシン
コードの命令フィールドを解釈することによってわかる
ので、飛び先のアドレスをセットする際に図7に示すよ
うにプログラムカウンタ(PC)33の上位32ビット
をフィックスし、そのままの状態で下位32ビットのみ
を指定されたアドレスにセットする。これによりプログ
ラムカウンタ(PC)33にセットされた値は(4G+
200)番地となり、正しく動作が行われることにな
る。
【0060】また、リターン命令の場合も32ビット用
リターン命令であるので、スタックにセーブされていた
アドレスをプログラムカウンタ(PC)33の下位32
ビットにセットし上位32ビットはそのままの値を利用
することで対処することができる。
【0061】なお、上述の第1実施例では、アドレスベ
ースレジスタの値をかえることにより4Gバイト以上離
れた所へ制御を移すことが可能であるのに対して、この
第2実施例では、飛び先は同じ4Gバイトごとの空間内
にしか飛んでいけない。
【0062】また、この第2実施例の場合も特殊なフラ
グ領域を設けて、そのフラグがONの時だけこのような
上位ビットマスクの動作を32ビット用命令が現れた時
に行う構成も可能である。
【0063】より詳細に述べると、図2のレジスタ構成
のプログラムステータスワード(PSW)34に、アド
レスベース有効フラグ341の代わりに、上位ビットを
フィックスして実効アドレス計算を行うかどうかを指定
するアドレスフィックス有効フラグを設ける。更にOS
15には次の実行する32ビット用プログラムの開始ア
ドレスをプログラムカウンタ(PC)33にセットする
と共に、このアドレスフィックス有効フラグをONにし
て上位ビットフィックスの動作を有効とすることによ
り、32ビット互換モードに遷移するための「ジャンブ
・アンド・エミュレート」命令と呼ばれれる特別な命令
を用意し、32ビット用プログラムの実行時にこの「ジ
ャンブ・アンド・エミュレート」命令を使って32ビッ
ト互換モードに入るようにする。
【0064】そして、このアドレスフィックス有効フラ
グに基づいて、以下の様に実効アドレスの計算を行う。
【0065】例えば32ビット用のプログラム12を実
行する場合に、OS15は、プログラム12の実行開始
番地(4G+100)を知っており且つこれが32ビッ
ト用プログラムであることをプログラム管理テーブルか
ら知っているので「ジャンブ・アンド・エミュレート」
命令を使って、プログラムカウンタ(PC)33に(4
G+100)をセットする。この時点では、アドレスフ
ィックス有効フラグはまたONになっていないので、実
効アドレスは(4G+100)番地となり、プログラム
カウンタ(PC)33の値と実効開始アドレスは等しく
なる。
【0066】そして、この「ジャンブ・アンド・エミュ
レート」命令によりアドレスフィックス有効フラグがO
Nにされてプログラム12中に制御が移り、その中でコ
ール命令やジャンプ命令などの実行アドレスを制御する
命令やスックポインタ等のアドレス空間中の位置示すレ
ジスタを利用する命令やロード命令のような仮想アドレ
ス空間の位置を指定してそのデータを読み書きする命令
を実行するような場合には、以下の様な処理行う。
【0067】例えば、(4G+100)番地にジャンプ
命令があり、200番地へ飛ぶ場合を考えると、この場
合、飛び先のアドレスは32ビットモードのままなので
プログラムカウンタ(PC)33にセットされる番地は
200番地となり、そのままではプログラム11の領域
に飛んでしまう。
【0068】ところが、この場合、アドレスフィックス
有効フラグがONになったままでいるので、実際に飛ん
でいく先の実効アドレスはプログラムカウンタ(PC)
33の下位32ビットが200番地に変わるだけで上位
32ビットは4Gのままフィックスされるので(4G+
200)番地となり、飛び先は正しいアドレスとなって
正常に動作することができる。
【0069】次に、リターン命令を実行する場合を考え
ると、スタックポインタ36が指すアドレスとプログラ
ムカウンタ(PC)33の上位32ビットの値で実効ア
ドレスを求め、それが指すスタックの内容をプログラム
カウンタ(PC)33に戻り番地としてセットするが、
これも先に説明したジャンプ命令同様にして、上位32
ビットはフィックスされて変わらないので、正しいアド
レスへ復帰するようになる。コール動作時に退避した汎
用レジスタ31の値の復帰動作についても同様に行う。
【0070】次に、プログラム12の処理が終了してO
S15に戻る場合は、プログラム終了のためのシステム
コールを実行するが、マシン命令としてトラップ命令の
ような特殊な命令を用いるので、アドレスフィックス有
効フラグはOFFに戻りアドレス変換の問題は関係なく
なる。
【0071】尚、上述の第1及び第2実施例では命令が
指示するアドレスを一度そのまま、レジスタに格納し、
そのレジスタの値とアドレスベースレジスタの値を合成
して実効アドレスを決めていたが、命令が指示するアド
レスとアドレスベースレジスタの値を合成してその結果
をレジスタに格納し、そのレジスタの値を利用して実効
アドレスとするような構成も可能である。
【0072】次に、上述の第1及び第2実施例に好適な
アドレス計算装置について説明する。
【0073】図8に示したアドレス計算装置は、アドレ
スベース設定部110、オフセット設定部120および
結合部130から構成されている。
【0074】アドレスベース設定部110は、プロセッ
サ100がアドレスバスに出力するアドレス指定ビット
列とは無関係にアドレスベースを決定して保持する装置
であり、実効アドレスの上位32ビットを指定するアド
レスベース131を決定する。
【0075】オフセット設定部120は、プロセッサ1
00がアドレスバスに出力するアドレス指定ビット列の
中から上位32ビット121を無視して下位32ビット
122を抽出する装置であり、この下位32ビット12
2が実効アドレスの下位32ビットを指定するオフセッ
ト132となる。
【0076】結合部130は、アドレスベース設定部1
10から出力されるアドレスベース131と、オフセッ
ト設定部120から出力されるオフセット132を結合
し、実効アドレス37を作成する装置である。
【0077】このような構成のアドレス計算装置におい
て、記憶装置140へのアクセスに際しては、次のよう
に処理が行なわれる。まず、アドレスベース設定部11
0においてアドレスベース131決定して保持する。記
憶装置140にアクセスする実効アドレス37のビット
幅が64ビットであり、オフセット132のビット幅が
32ビットである場合、32ビット幅のアドレスベース
131が出力されることになる。このアドレスベース1
31の決定の処理は、記憶装置140へのアクセスが行
なわれる度に行なわれる必要はなく、アドレスベースが
変更される処理を行なった時点で処理を行なえばよい。
【0078】尚、記憶装置140は物理アドレス以外に
も、仮想アドレスを物理アドレスに変換する装置やその
変換データであるページテーブルを含んでもよい。
【0079】次に、オフセット設定部120により、プ
ロセッサ100がアドレスバスに出力するアドレス指定
ビット列の中から下位32ビット122を抽出する。こ
の下位32ビット122がアドレスベース131からの
オフセット132となる。この処理は記憶装置140へ
のアクセスの度に行なわれる。但し、オフセット設定部
120はプロセッサから送られてくるアドレス指定ビッ
ト列の上位32ビットをマスクするだけで容易に下位3
2ビットを抽出できるので、この処理にかかる時間は無
視できる程小さい。
【0080】オフセット設定部120によって決定され
たオフセット122が出力された後に、結合部130に
より、アドレスベース設定部110から得られたアドレ
スベース131と、オフセット設定部120から得られ
たオフセット122とを結合し、実効アドレス37を作
成する。すなわち、アドレスベース131をビット列の
上位32ビットに、オフセット132をビット列の下位
32ビットにそれぞれ配置して両者を結合する。
【0081】最後に、記憶装置140に対して実効アド
レス37によって指定されたアドレスにアクセスし、目
的とするデータ150を得ることができる。
【0082】図9(A)(B)は、アドレスベース設定
部110の詳細構成を示したものである。アドレスベー
スの決定には各種の方法がある。ここでは2通りの方法
を説明するが、これ以外の方法を用いてアドレスベース
を決定してもよい。
【0083】第1の方法は図9(A)に示すように、ア
ドレスベース直接指定レジスタ35Aの内容がアドレス
ベース131の値を直接指定するものである。すなわ
ち、アドレスベース直接指定レジスタ35Aに予めアド
レスベースの値を代入しておき、アドレスベースの決定
にその値を用いる方法である。アドレスベース直接指定
レジスタ35Aの値が出力結果であるアドレスベース1
31の値になる。
【0084】第2の方法は図9(B)に示すように、ア
ドレスベース間接指定レジスタ35Bの内容がアドレス
ベース指定レジスタバンク104の中から一つのレジス
タを指定し、そのレジスタの内容がアドレスベース13
1の値を指定するものである。アドレスベース指定レジ
スタバンク104には、予め一つのレジスタにつき一つ
のベースアドレスを入れておく。複数のレジスタをレジ
スタバンクとして構成することにより、複数のアドレス
ベースを保持しておくことができる。すなわち、アドレ
スベース間接指定レジスタ35Bの内容によってアドレ
スベース指定レジスタバンク104の中から一つのレジ
スタが選択され、そのレジスタの内容がアドレスー13
1として出力される。アドレスベース指定レジスタバン
ク104のレジスタの選択はOS等のプログラムから明
示的に指示するか、命令の種類に応じて暗黙的に行うか
どちらでも良い。
【0085】なお、切替え装置を用いることにより、第
1と第2の方法のどちらか1つを実行させ、ベースアド
レスを決定することも可能である。
【0086】更に、図8に示すように、結合部130と
記憶装置140の間に切替部160を設け、プロセッサ
100がアドレスバスに出力したアドレス指定ビット列
そのままと、これを上述のアドレス計算装置で変換した
ものとのどちらかを選択的に使って記憶装置140にア
クセスできるようにしてもよい。この場合、切替部16
0の切替操作はプロセッサ100から周辺装置制御命令
等を使って行うことができる。
【0087】次に、図10に示すフローチャートを参照
しして、このアドレス計算装置の動作を説明する。
【0088】まず、最初に、SIでアドレスベースの変
更を行なうかどうかの判断を行なう。アドレスベースの
変更を行なう場合は、アドレスベース変更ルーチンの処
理S2〜S6を行う。アドレスベースの変更を行なわな
い場合は、アドレスベース変更ルーチンを飛ばし、オフ
セット決定ルーチンの処理S7へ分岐する。
【0089】アドレスベース変更ルーチンでは、まずS
2でアドレスベース指定方式が直接指定方式か間接指定
方式かの判断を行なう。
【0090】直接指定の場合は、S3でアドレスベース
直接レジスタ35Aの内容をアドレスベース131とす
る。
【0091】間接指定方式の場合は、S4でアドレスベ
ース間接指定レジスタ35Bの内容を読み出し、次に、
S5でアドレスベース指定レジスタバンク104から、
アドレスベース間接指定レジスタ35Bの内容の値で指
定されたレジスタの内容を読み出し、その値をアドレス
ベース131とする。これら直接,間接指定方式とも
に、S6でアドレスベース131の値を出力する。
【0092】次にS7で、オフセット設定部120によ
ってプロセッサ100がアドレスバスに出力したアドレ
ス指定ビットの下位32ビットを抽出して、オフセット
132として出力する。
【0093】以上の処理を行なった後、S8で結合部1
30においてアドレスベースとオフセットを結合して、
実効アドレス37を決定する。最後に、S9で記憶装置
140に求められた実効アドレス37を使ってアクセス
し、目的とするデータ150を得ることができる。
【0094】この図8のアドレス計算装置ににおいて
は、アドレスベースを変更するにつれて、アクセス可能
なアドレスの領域も移動する。アクセス可能なアドレス
の領域は、アドレスベースのビット数によって決定され
る。アドレスベースがNビットである場合、直接または
間接に指定できるアドレスベースの数は、2のN乗通り
となる。アドレスベースのビット幅が32ビットの場合
は、アドレスベースを1つ変化させると、4Gバイトの
アドレス領域を移動できることになる。
【0095】アドレスベースを固定した時にアクセス可
能なアドレス空間の大きさは、オフセットのビット数に
よって決定される。オフセットがMビットである場合、
指定できるオフセット値の範囲は1〜(2M −1)であ
る。
【0096】従来の機種の互換モードにおいてこのアド
レス計算装置を使った場合、従来のプログラムがアドレ
スベースから始まり、オフセットのビット数によって決
定される大きさの1つの領域内に入る。
【0097】アドレスベースは、新しい機種の上位ビッ
トによって拡大された分広範囲にアドレスを指定できる
ので、これによって新しい機種でアクセスできるアドレ
ス空間を広く従来の機種のプログラムで利用できること
ができる。
【0098】次に上述の第1及び第2実施例に好適なハ
ードウェア構成について説明する。
【0099】図11は、本発明の第1及び第2実施例に
係る仮想記憶空間管理方法を実現するためのハードウェ
ア構成を示す図であり、64ビット用プロセッサ50
0、TLB102を含むメモリ管理装置112、実行プ
ログラム103を含むデータを格納する物理メモリ11
3、TLB102にキャッシュするページテーブルエン
トリを格納するベージテーブル116、プロセッサ50
0に接続されたディスククサブシステム117から構成
されている。
【0100】このハードウェア構成において、プロセッ
サ500は物理メモリ113にアクセスしながらプログ
ラムを実行する。プロセッサ500からアドレスバスに
送出されるアドレスは仮想アドレス(仮想番地)であ
り、メモリ管理装置112によって物理アドレス(物理
番地)に変換されて物理メモリ113に与えられる。メ
モリ管理装置112内には、仮想アドレスと物理アドレ
スとの対応表を示すページテーブル116をキャッシン
グするためのバッファであるTLB(Translation Look
-aside Buffer )102が設けられている。このTLB
102はプロセッサ500か出されたある仮想アドレス
へのアクセス要求を物理アドレスへ高速に変換する。
【0101】プロセッサ500内に、ページテーブル1
16中で現在実行中のプログラムに対応するページテー
ブルの開始番地を示すポインタを格納するルートレジス
タ502が設けられている。このルートレジスタ502
はメモリ管理装置112内に設けられていてもよい。ま
た、本実施例ではページテーブル116は物理メモリ1
13とは別の装置としているが、物理メモリ113の一
部にページテーブル領域を確保してそれを利用するよう
にしても良い。このルートレジスタ502に示されたペ
ージテーブルのページテーブルエントリは、TLB10
2にキャッングされる。
【0102】プロセッサ500は更に上述の第1実施例
におけるアドレスベース有効フラグ341に対応するア
ドレスモードレジスタ501を有し、これが0の時64
ビットアドレスモード、1の時32ビットアドレスモー
ドであることを示す。又、プロセッサ500は上述の第
1実施例のアドレスベースレジスタ35を有する。
【0103】図12は、このハードウェア構成における
ページテーブル116の構成を示したもので、各々の実
行プログラムA,B…の仮想アドレスは異なるようにペ
ージテーブル116A,116B…を設けている。
【0104】また、図13はOSの持つ実行プログラム
管理テーブルであり、アドレスモードはそのビットが0
のとき64ビットアドレスモード、1のとき32ビット
アドレスモードであることを表わす。
【0105】これに基づいて、上述の第1実施例同様に
アドレスモードレジスタ501内のアドレスモードのビ
ットを0に設定した場合は、プロセッサ500の出力す
る64ビットアドレスをそのまま採用する。また、アド
レスモードのビットを1に設定した場合は、プロセッサ
500の出力する64ビットアドレスの上位32ビット
の値は無視して、アドレスベースレジスタ503の値を
上位32ビットの値として採用する。
【0106】すなわち、アドレスモードのビットを1に
設定すると、実行プログラム上からはアドレス空間のサ
イズが64ビットアドレス空間から32ビットアドレス
空間に狭められる。この際、図12のようにページテー
ブル116を構成して、ページテーブル116上の各実
行プログラムの仮想アドレスを下位32ビットは共通に
した形で上位32ビットをそれぞれ異ならせておく。こ
れにより、アドレス空間のサイズを32ビットアドレス
空間に狭めた際のプロセッサ500内の見掛けの仮想ア
ドレスは各実行プログラムで同一となり、多重仮想記憶
方式を実現することができる。
【0107】このハードウェア構成によれば、移植され
た特定の実行プログラム内に絶対仮想アドレスが含まれ
ている場合でも、この実効プログラムの仮想アドレス領
域が他の実行プログラムの仮想アドレス領域と重複しな
いようにアドレスベース値を設定することができる。
【0108】このため図12にページテーブル116の
例を示したように、複数の実効プログラムを格納した同
一仮想アドレス空間内の特定の実行プログラムの仮想ア
ドレス領域が他の実行プログラムのそれと重複しないの
で、実行プログラムを切り替えたときにTLBおよびキ
ャッシュの一貫性保持操作をしなくてよい。
【0109】更に、多重仮想記憶方式のオペレーティン
グ・システムで開発され、単一仮想記憶方式のシステム
に移植された実行プログラムを手を加えずに実行可能
(バイナリ互換性の実現)となる。
【0110】次に、以上のようなハードウェアとオペレ
ーティング・システムの下で、現在実効中のプログラム
からプログラムBにコンテクスト・スイッチングが生じ
た場合の処理手順を図14のフローチャートにより説明
する。
【0111】まずS21で実行中のプログラムがディス
クサブシステム117に対する入出力命令を含むシステ
ムコールを発行し、実行待ちになったとする。この場
合、次にS22でトラップを起こしてシステム・モード
になった後、S23でディスククサブシステム117に
対して入出力命令を発行すると、ディスクサブシステム
117より応答が返るまでは長時間要するので、S24
で現在実行中のプログラムは入出力応答待ちにして実行
中プログラムのコンテクストをセーブする。
【0112】そしてS25で、次に実行するプログラム
をBとする選択を行うと共に、アドレスベースレジスタ
35にアドレスベース値を設定し、S26で図13に示
した実行プログラム管理テーブルに従ってプログラムB
のアドレスモードを64ビットアドレスモードもしくは
32ビットアドレスモードに指定する。
【0113】32ビットアドレスモードの場合は次にS
27でアドレスモードレジスタ501の値を1に設定
し、32ビットアドレスモードに入る。64ビットアド
レスモードの場合はそのまま64ビットアドレスモード
にとどまる。
【0114】最後にS28で次に実行するプログラムB
のコンテクストをリストアし、S29でプログラムBを
実行する。
【0115】次に、本発明の第3実施例について説明す
る。
【0116】図15は、本発明の第3の実施例に係る仮
想記憶空間管理方法を実現するためのハードウェア構成
を示す図であり、64ビット用プロセッサ211、TL
B202を含むメモリ管理装置212、実行プログラム
203を含むデータを格納する物理メモリ213、論理
キャッシュ214、物理キャッシュ215,TLB20
2にキャッシュするページテーブルエントリを格納する
ページテーブル216、プロセッサ211に接続された
ディスクサブシステム217から構成されている。
【0117】本発明に従って、64ビットアドレス空間
の単一仮想記憶方式によるオペレーティング・システム
上に、32ビットの従来の多重仮想記憶方式のオペレー
ティング・システムで開発された実行プログラムを移植
し、実行することを考える。ここで、64ビットアドレ
スの単一仮想記憶空間内には、複数の実行プログラムが
格納されているものとする。
【0118】図15において、プロセッサ211は物理
メモリ213にアクセスしながらプログラムを実行す
る。プロセッサ211からアドレスバスに送出されるア
ドレスは仮想アドレス(仮想番地)であり、メモリ管理
装置212によって物理アドレス(物理番地)に変換さ
れて物理メモリ213に与えられる。メモリ管理装置2
12内には、仮想アドレスと物理アドレスとの対応表を
示すページテーブル216をキャッシングするためのバ
ッファであるTLB(Translation Look-asideBuffer)
202が設けられている。このTLB202はプロセッ
サ211から出されたある仮想アドレスへのアクセス要
求を物理アドレスへ高速に変換する。論理キャッシュ2
14はプロセッサ211とメモリ管理装置212の間、
物理キャッシュ215はメモリ管理装置212と物理メ
モリ213の間のそれぞれ置かれる。
【0119】プロセッサ211内に、ページテーブル2
16中で現在実行中のプログラムに対応するページテー
ブルの開始番地を示すポインタを格納するルートレジス
タ201が設けられている。このルートレジスタ201
はメモリ管理装置212内に設けられていてもよい。こ
のルートレジスタ201に示されたページテーブルのペ
ージテーブルエントリは、TLB202にキャッシング
される。ページテーブル216は一つの仮想記憶空間に
対応しており、ページテーブルがコンテクスト・スイッ
チングの度にルートレジスタ201の値が入れ替えられ
ることによって仮想記憶空間を切り替える。。
【0120】図16に、ページテーブル216の構成例
を示す。図16(A),(B)中に310,320で示
す被移植実行プログラムA,Bは、従来の多重仮想記憶
方式のオペレーティング・システム上で作成された実行
プログラムであり、仮想アドレスは0〜232(4G)番
地とし、1ページのサイズは4Kバイトとしてある。
【0121】ページテーブル312,322は、従来の
多重仮想記憶方式に基づいて作成された実行プログラム
AおよびBのページテーブルである。簡単のため、プロ
グラムA,Bとも仮想アドレスは0番地から開始され
る。物理アドレスはそれぞれどのような物理ページが対
応していても差支えないので、a○○,b○○なる記号
で示している。ルートポインタ311,321はそれぞ
れページテーブル312,322に対するルートポイン
タであり、プログラムAを実行する場合はルートポイン
タ311が、プログラムBを実行する場合はルートポイ
ンタ321がそれぞれ図15のルートレジスタ201に
格納される。メモリ管理装置212は、自動的にルート
ポインタ211,222に対応した仮想アドレスから物
理アドレスへの変換を行なう。
【0122】図16(C)中に330で示す単一仮想記
憶空間のページテーブルには、単一仮想記憶方式による
オペレーティング・システム上の全ての実行プログラム
が格納されている。物理アドレスz○○は単なる記号
で、どのような物理ページが対応しても構わない。この
64ビットの単一仮想記憶空間の特徴は、そのページテ
ーブル332に示されるように、従来の多重仮想記憶方
式のオペレーティング・システムが利用している0〜2
32バイト(4GB)までの仮想アドレス領域(図で破線
より上の領域)はどの実行プログラムとも割り付けない
領域、つまり従来の多重仮想記憶方式のオペレーティン
グ・システム上で作成された実行プログラムの移植用の
互換モード領域として開放し、4GBより上の仮想アド
レス領域(図で破線より下の領域)を複数の実行プログ
ラムが格納され単一仮想記憶空間のアドレス領域として
利用していることである。このように複数の実行プログ
ラムが格納された仮想記憶空間の仮想アドレス領域は、
他の仮想記憶空間の仮想アドレス領域と重複しないよう
に設定されている。この互換モード領域330−1に実
行する32ビットプログラムを一時的に設定することで
32ビットプログラムがそのまま64ビットの単一仮想
記憶空間上で実行可能となる。
【0123】図17は、本実施例におけるオペレーティ
ング・システムの管理する実行プログラム管理テーブル
である。オペレーティング・システムは、プロセッサ2
11でどのプログラムが実行されているか、またページ
テーブル216中のどのページテーブルを使っているか
の区別や、セーブされたコンテクスト情報を管理してい
る。
【0124】次に、以上のようなハードウェアとオペレ
ーティング・システムの下で、現在実行中のプログラム
からプログラムBにコンテクスト・スイッチングが生じ
た場合の処理手順を図18のフローチャートにより説明
する。
【0125】まずS11で実行中のプログラムがディス
クサブシステム217に対する出力命令を含むシステム
コールを発行し、実行待ちになったとする。この場合、
次にS12でトラップを起こしてシステム・モードにな
った後、S13でディスクサブシステム217に対して
入出力命令を発行すると、ディスクサブシステム217
より応答が返るまでは長時間要するので、S14で現在
実行中のプログラムは入出力応答待ちにして実行プログ
ラムのコンテクストをセーブする。
【0126】次に、OSは実行可能なプログラムをサー
チするが、実行中のプログラムが単一仮想記憶方式の場
合と、従来の多重仮想記憶方式のオペレーティング・シ
ステムの場合とでコンテクスト・スイッチングに要する
手間は異なる。そこで、実行中のプログラムが後者のオ
ペレーティング・システムの実行プログラムかどうかを
S15で調べる。
【0127】現在実効中のプログラムが単一仮想記憶方
式のオペレーティング・システム上の64ビットプログ
ラムであったとする。このように現在実行中のプログラ
ムが単一仮想記憶方式のオペレーティング・システム上
の64ビットプログラムであり、しかも図16(C)に
示したように、格納されている仮想アドレス領域が従来
の多重仮想記憶方式のオペレーティング・システムで作
成された次に実行するプログラムBとは重複していない
とすると、この64ビットプログラムの実行に伴ないキ
ャッシングされたTLB102や論理キャッシュ214
の内容は、プログラムBと混同するおそれはないため、
主記憶にフラッシュして書き戻す必要はない。すなわ
ち、このようなキャッシュ一貫性保持操作を行うことな
く、直ちにS18に進んで次に実行するプログラムBの
コンテクストをリストアして、S19でプログラムBを
実行することができる。これにより、コンテクスト・ス
イッチングに要する時間は大幅に短縮される。
【0128】一方、現在実行中のプログラムが従来の多
重仮想記憶方式の32ビットプログラムであったとする
と、仮想アドレス領域が次に実行するプログラムBと重
複しているため、S16でTLB202の内容をフラッ
シュし、またS17で論理キャッシュ214の内容を無
効化する。しかし、このような多重仮想記憶方式のオペ
レーティング・システム上で作成された32ビットプロ
グラムは移植されたプログラムであり、またコンテクス
ト・スイッチングに要するオーバーヘッドは従来と全く
同等であり、許容できるものである。
【0129】このように第3実施例の方式を採用するこ
とで、単一仮想記憶方式に基づく高速な実行プログラム
間通信性能を実現しつつ、従来の多重仮想記憶方式のオ
ペレーティング・システムで作成された実行プログラム
の移植および実行プログラム間通信機能を実現できるこ
とになる。
【0130】尚、上述の図18のフローチャートによる
動作を以下の様に変更してもよい。
【0131】即ち、S16でのTLB202の内容のフ
ラッシュとS17での論理キャッシュ214の内容の無
効化を、現在実行中のプログラムが停止しOSがプログ
ラム管理テーブルを参照してコンテクスト・スイッチン
グを行う際に、次に実行するプログラムが32ビットプ
ログラムであり、且つ、互換モード領域にまだ実行途中
で実行待ち状態にある別の32ビットプログラムが残っ
ている場合のみ行うようにしても良い。
【0132】この場合S18での次に実行するプログラ
ムのコンテクストのリストアは、互換モード領域に残っ
ている実行待ち状態の32ビットプログラムのコンテク
ストをセーブしてから行うことになる。
【0133】これにより、上記条件に当てはまらない時
は、TLB202の内容のフラッシュと論理キャッシュ
214の内容の無効化を行うことなくコンテクスト・ス
イッチングが行えるようになる。
【0134】尚、この場合、32ビットプログラムの実
行が完了した時は、OSはTLB202の内容のフラッ
シュと論理キャッシュ214の内容の無効化と互換モー
ド領域の開放を行うものとする。
【0135】これ以外にも、本発明はその要旨を逸脱し
ない範囲で種々変形して実施することができるものであ
る。
【0136】
【発明の効果】以上、述べたように、本発明によれば1
つの大きな仮想空間上に複数の小さなプログラムを配置
し、これら各プログラムに一切の変更を加えることなく
実行可能にできる。また、各プログラムは、開始アドレ
スを一定間隔ズラした異なる位置に複数個同時配置する
ことかできることから、大きな仮想空間での空き空間を
大幅に減らすことができ、資源の効率的利用が可能にな
るとともに、複数のプログラムにまたがる実行の時に、
従来システムで存在した仮想空間を切り替えるオーバー
ヘッドをなくすこともできる。
【0137】又、本発明よれば単一仮想記憶方式の持つ
優れた高速コンテクスト・スイッチング性能を活かした
たまま、従来の多重仮想記憶方式のオペレーティング・
システムの下で開発された実行プログラムの移植が可能
となる。これによりプログラムの移植性・互換性と、高
速コンテクスト・スイッチングの両立が可能となり、性
能および機能上の著しい向上が図られる。
【0138】更に、本発明によれば従来の機種と互換性
を維持する場合、アドレス指定ビット列から下位ビット
を抽出する一方、アドレスベースを決定・保持し、アド
レス指定ビット列から抽出した下位ビットとアドレスベ
ースを結合して実効アドレスを構成することにより、新
しい機種がアクセスできるアドレス空間を広く利用する
ことができる。
【図面の簡単な説明】
【図1】本発明の第1実施例における仮想空間内のプロ
グラム配置を示す図。
【図2】本発明の第1実施例に用いられるプロセッサの
レジスタ構成を示す図。
【図3】図2に示すレジスタ構成中のプログラムステー
タスワード(PSW)を説明するための図。
【図4】第1実施例でアドレスベース有効レジスタがO
Nになった場合の実効開始アドレスの求め方を説明する
ための図。
【図5】第1実施例でアドレスベース有効レジスタがO
Nになった場合の実効アドレスの求め方を説明するため
の図。
【図6】第1実施例でオフセット有効レジスタがOFF
になった場合の実効アドレスの求め方を説明するための
図。
【図7】本発明の第2実施例における実効アドレスの求
め方を説明するための図。
【図8】本発明の第1及び第2実施例に好適なアドレス
計算装置のブロック図。
【図9】図8におけるアドレスベース設定部の詳細構成
の例を示す図。
【図10】図8のアドレス計算装置におけるアドレス計
算動作を説明するためのフローチャート。
【図11】本発明の第1及び第2の実施例に好適な仮想
記憶空間管理方法を実現するハードウェアコア構成を示
す図。
【図12】図11のハードウェア構成における仮想アド
レス−物理アドレス変換のためのページテーブルの例を
示す図。
【図13】図11のハードウェア構成における実行プロ
グラム管理テーブルの例を示す図。
【図14】図11のハードウェア構成における被移植プ
ログラムと単一仮想記憶空間のプログラムのコンテクス
トスイッチング手順を示すフローチャート。
【図15】本発明の第3の実施例に係る仮想記憶空間管
理方法を実現するハードウェアコア構成を示す図。
【図16】第3実施例における仮想アドレス−物理アド
レス変換のためのページテーブルの例を示す図。
【図17】第3実施例における実行プログラム管理テー
ブルの例を示す図。
【図18】第3実施例における被移植プログラムと単一
仮想記憶空間のプログラムのコンテクストスイッチング
の手順を示すフローチャート。
【図19】従来の仮想記憶空間管理方法を説明するため
の図。
【図20】従来のアドレス計算装置の概念図。
【符号の説明】
1 64ビットアドレス空間 11〜13 32ビット用プログラム 14 64ビット用プログラム 15 OS 31 汎用レジスタ 32 その他のレジスタ 33 プログラムカウンタ(PC) 34 プログラムステータスワード(PSW) 35 アドレスベースレジスタ 35A アドレスベース直接指定レジスタ 35B アドレスベース間接指定レジスタ 36 スタックポインタ(SP) 37 実効アドレス 100,121,500 プロセッサ 102,202 TLB 103,203 実行プログラム 104 アドレスベース指定レジスタバンク 110 アドレスベース設定部 112,212 メモリ管理装置 113,213 物理メモリ 116,216 ページテーブル 117,217 ディスクサブシステム 120 オフセット設定部 121 アドレス指定ビット列の上位ビット 122 アドレス指定ビット列の下位ビット 130 結合部 131 アドレスベース 132 オフセット 140 記憶装置 160 切替部 201,502 ルートレジスタ 214 論理キャッシュ 215 物理キャッシュ 311,321,331 ルートポインタ 341 アドレスベース有効フラグ 342 その他のフラグ 501 アドレスモードレジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 斎藤 光男 神奈川県川崎市幸区小向東芝町1 株式会 社東芝研究開発センター内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 (a) 複数の第1タイプアドレス空間
    に割り当てられるよう作成され、各々は第1タイプアド
    レス空間より大きなサスイズを持つ第2タイプアドレス
    空間に割り当てられるよう作成された第2タイププログ
    ラムと区別されている第1タイププログラムを、複数個
    まとめて第2タイプアドレス空間に単一仮想記憶方式
    で、仮想アドレス同志で重複のないように割り当てる段
    階と、(b) 実行する各第1タイププログラムについ
    て、該各第1プログラムが第2タイプアドレス空間で割
    り当てられた領域の仮想アドレスに適当な上位ビットを
    指定するアドレスベースを登録する段階と、(c) 該
    各第1タイププログラムの実行中に使う実効アドレス
    を、上記(b)で登録した該第1タイププログラムのア
    ドレスベースと、該各第1タイププログラムが第2タイ
    プアドレス空間内で割り当てられた領域の仮想アドレス
    の下位ビットとを結合して計算する段階と、から成るこ
    とを特徴とする仮想記憶空間管理方法。
  2. 【請求項2】 (a) 複数の第1タイプアドレス空間
    に割り当てられるよう作成され、各々は第1タイプアド
    レス空間より大きなサスイズを持つ第2タイプアドレス
    空間に割り当てられるよう作成された第2タイププログ
    ラムと区別されている第1タイププログラムを複数個
    と、少くとも1つの第2タイププログラムとを、まとめ
    て第2タイプアドレス空間に単一仮想記憶方式で、仮想
    アドレス同志で重複のないように割り当てる段階と、
    (b) 現在実行中プログラムを、実行中に遭遇した命
    令の命令フィールドに基づいて、第1タイププログラム
    か第2タイププログラムのどちらかに決定する段階と、
    (c) 上記(b)で現在実行中プログラムが第1タイ
    ププログラムと決定された時、該現在実行中プログラム
    の実行中に使う実効アドレスを、該現在実行中プログラ
    ムの第2タイプアドレス空間における開始アドレスの上
    位ビットと、該現在実行中プログラムが第2タイプアド
    レス空間内で割り当てられた領域の仮想アドレスの下位
    ビットとを結合して計算する段階と、から成ることを特
    徴とする仮想記憶空間管理方法。
  3. 【請求項3】 (a) 複数の第1タイプアドレス空間
    に割り当てられるよう作成され、各々は第1タイプアド
    レス空間より大きなサスイズを持つ第2タイプアドレス
    空間に割り当てられるよう作成された第2タイププログ
    ラムと区別されている第1タイププログラムを複数個
    と、少くとも1つの第2タイププログラムとを、まとめ
    て第2タイプアドレス空間に単一仮想記憶方式で、仮想
    アドレス同志で重複のないように割り当てる段階と、
    (b) 現在実行中プログラムが、第1タイププログラ
    ムか第2タイププログラムのどちらであるかを示す指定
    を与える段階と、(c) 上記(b)で現在実行中プロ
    グラムが第1タイププログラムと指定された時、該現在
    実行中プログラムの実行中に使う実効アドレスを、該現
    在実行中プログラムの第2タイプアドレス空間における
    開始アドレスの上位ビットと、該現在実行中プログラム
    が第2タイプアドレス空間内で割り当てられた領域の仮
    想アドレスの下位ビットとを結合して計算する段階と、
    から成ることを特徴とする仮想記憶空間管理方法。
  4. 【請求項4】 (a) 複数の第1タイプアドレス空間
    に割り当てられるよう作成され、各々は第1タイプアド
    レス空間より大きなサスイズを持つ第2タイプアドレス
    空間に割り当てられるよう作成された第2タイププログ
    ラムと区別されている第1タイププログラムを、複数個
    まとめて第2タイプアドレス空間に単一仮想記憶方式
    で、仮想アドレス同志で重複のないように割り当てる段
    階と、(b) プログラムが恒久的に割り当てられず、
    各第1タイプアドレス空間において各第1タイププログ
    ラムが割り当てられることになっていた仮想アドレスと
    同一の仮想アドレスを有し、該各第1タイププログラム
    を第2タイプアドレス空間内で実行する際に使われる互
    換モードアドレス領域を設ける段階と、(c) 該各第
    1タイププログラムを、上記(b)で設けた第2タイプ
    アドレス空間の互換モードアドレス領域に、該各第1タ
    イププログラムの実行中一時的に設定して該各第1タイ
    ププログラムを実行する段階と、から成ることを特徴と
    する仮想記憶空間管理方法。
  5. 【請求項5】 アドレス空間内の仮想アドレスに割り当
    てられたプログラムの実行中に使われる実効アドレスを
    計算するアドレス計算装置であって、 実効アドレスの上位ビットを指定するアドレスベースを
    設定するアドレスベース設定手段と、 該プログラムが割り当てられたアドレス空間内の仮想ア
    ドレスの1つについてのアドレスビット系列の下位ビッ
    トを選択的に抽出して実効アドレスの下位ビットを指定
    するオフセットを設定するオフセット設定手段と、 上記アドレスベース設定手段により設定されたアドレス
    ベースを上位ビットとし、上記オフセット設定手段によ
    り設定されたオフセットを下位ビットとして、結合する
    ことで実効アドレスを得る結合手段と、から成ることを
    特徴とするアドレス計算装置。
JP5006226A 1992-01-16 1993-01-18 仮想記憶空間管理方法及びアドレス計算装置 Pending JPH05257803A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP4-26039 1992-01-16
JP599392 1992-01-16
JP2603992 1992-01-16
JP4-5994 1992-01-16
JP599492 1992-01-16
JP4-5993 1992-01-16

Publications (1)

Publication Number Publication Date
JPH05257803A true JPH05257803A (ja) 1993-10-08

Family

ID=27276980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5006226A Pending JPH05257803A (ja) 1992-01-16 1993-01-18 仮想記憶空間管理方法及びアドレス計算装置

Country Status (2)

Country Link
US (1) US5826057A (ja)
JP (1) JPH05257803A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257841A (ja) * 2012-06-14 2013-12-26 Fuji Xerox Co Ltd アドレス管理装置、及びプログラム
KR20140049462A (ko) * 2012-10-17 2014-04-25 한국전자통신연구원 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272615B1 (en) * 1997-05-02 2001-08-07 Texas Instruments Incorporated Data processing device with an indexed immediate addressing mode
US6061774A (en) * 1997-05-23 2000-05-09 Compaq Computer Corporation Limited virtual address aliasing and fast context switching with multi-set virtual cache without backmaps
FR2778254B1 (fr) * 1998-04-29 2002-02-15 Texas Instruments France Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache
US6321276B1 (en) 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US6594701B1 (en) 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US7464044B2 (en) * 1998-12-08 2008-12-09 International Business Machines Corporation Method and system for using emulation objects for developing point of sale
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
US6725366B1 (en) * 2000-09-07 2004-04-20 International Business Machines, Corporation System and method for 32 bit code branching to 64 bit targets
US6854046B1 (en) * 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
US6792521B2 (en) 2001-10-16 2004-09-14 International Business Machines Corporation Behavioral memory mechanism for a data processing system
US6675279B2 (en) * 2001-10-16 2004-01-06 International Business Machines Corporation Behavioral memory enabled fetch prediction mechanism within a data processing system
US6877083B2 (en) 2001-10-16 2005-04-05 International Business Machines Corporation Address mapping mechanism for behavioral memory enablement within a data processing system
US20040199780A1 (en) * 2002-03-22 2004-10-07 Heung-Chan Seung Copy-protected optical recording medium, a method for driving therefor and a method of manufacturing thereof
US7506133B2 (en) * 2003-08-20 2009-03-17 Seiko Epson Corporation Method and apparatus for high speed addressing of a memory space from a relatively small address space
JP4850830B2 (ja) * 2005-06-01 2012-01-11 パナソニック株式会社 コンピュータシステム及びプログラム生成装置
US20080098191A1 (en) * 2006-10-20 2008-04-24 International Business Machines Corporation Determining code efficiency by monitoring memory reallocation
JP2010097557A (ja) * 2008-10-20 2010-04-30 Toshiba Corp セットアソシアティブ方式のキャッシュ装置及びキャッシュ方法
JP5300407B2 (ja) 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
US9069672B2 (en) * 2009-06-12 2015-06-30 Intel Corporation Extended fast memory access in a multiprocessor computer system
JP2011198091A (ja) * 2010-03-19 2011-10-06 Toshiba Corp 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム
US9053053B2 (en) * 2010-11-29 2015-06-09 International Business Machines Corporation Efficiently determining identical pieces of memory used by virtual machines
US9201678B2 (en) 2010-11-29 2015-12-01 International Business Machines Corporation Placing a virtual machine on a target hypervisor
US8972696B2 (en) 2011-03-07 2015-03-03 Microsoft Technology Licensing, Llc Pagefile reservations
US8832411B2 (en) 2011-12-14 2014-09-09 Microsoft Corporation Working set swapping using a sequentially ordered swap file
US9229875B2 (en) 2012-10-17 2016-01-05 Electronics And Telecommunications Research Institute Method and system for extending virtual address space of process performed in operating system
CN103853610B (zh) * 2012-12-07 2018-11-16 腾讯科技(深圳)有限公司 资源优化方法及装置
US9304771B2 (en) * 2013-02-13 2016-04-05 International Business Machines Corporation Indirect instruction predication
US10102148B2 (en) 2013-06-13 2018-10-16 Microsoft Technology Licensing, Llc Page-based compressed storage management
US9684625B2 (en) 2014-03-21 2017-06-20 Microsoft Technology Licensing, Llc Asynchronously prefetching sharable memory pages
US9684606B2 (en) * 2014-11-14 2017-06-20 Cavium, Inc. Translation lookaside buffer invalidation suppression
US9697137B2 (en) * 2014-11-14 2017-07-04 Cavium, Inc. Filtering translation lookaside buffer invalidations
US9632924B2 (en) 2015-03-02 2017-04-25 Microsoft Technology Licensing, Llc Using memory compression to reduce memory commit charge
US10037270B2 (en) 2015-04-14 2018-07-31 Microsoft Technology Licensing, Llc Reducing memory commit charge when compressing memory
CN115269455B (zh) * 2022-09-30 2022-12-23 湖南兴天电子科技股份有限公司 基于fpga的磁盘数据读写控制方法、装置和存储终端

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4096568A (en) * 1976-09-24 1978-06-20 Sperry Rand Corporation Virtual address translator
US4206503A (en) * 1978-01-10 1980-06-03 Honeywell Information Systems Inc. Multiple length address formation in a microprogrammed data processing system
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US5218684A (en) * 1987-09-04 1993-06-08 Digital Equipment Corporation Memory configuration system
JPH0290349A (ja) * 1988-09-28 1990-03-29 Hitachi Ltd 仮想記憶システムのアドレス空間制御装置
US5095420A (en) * 1988-11-21 1992-03-10 International Business Machines Method and system for performing virtual address range mapping in a virtual storage data processing system
FR2652926B1 (fr) * 1989-10-06 1994-07-08 Bull Sa Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.
DE69231451T2 (de) * 1991-03-11 2001-05-10 Mips Tech Inc Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum
US5381537A (en) * 1991-12-06 1995-01-10 International Business Machines Corporation Large logical addressing method and means

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257841A (ja) * 2012-06-14 2013-12-26 Fuji Xerox Co Ltd アドレス管理装置、及びプログラム
KR20140049462A (ko) * 2012-10-17 2014-04-25 한국전자통신연구원 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템

Also Published As

Publication number Publication date
US5826057A (en) 1998-10-20

Similar Documents

Publication Publication Date Title
JPH05257803A (ja) 仮想記憶空間管理方法及びアドレス計算装置
JP5378450B2 (ja) アーキテクチャイベントの間のプロセッサリソースの保持
EP0327196B1 (en) Processor simulation
US5301302A (en) Memory mapping and special write detection in a system and method for simulating a CPU processor
JPS61141055A (ja) 情報処理装置のアドレス変換方式
JP2006155272A (ja) 仮想計算機の制御方法及びプログラム
JPH05257808A (ja) マイクロプロセッサ及びその動作変換方法
JP3088303B2 (ja) キャッシュ・メモリ・バンク制御装置
EP0327198B1 (en) Processor simulation
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JPH02292648A (ja) 多重仮想記憶システムおよびアドレス制御装置
JPS6136264B2 (ja)
JPH0793221A (ja) 仮想計算機システム及びその制御方法
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JPS6032220B2 (ja) 情報処理装置
JP2924708B2 (ja) 情報処理装置
JPH05250263A (ja) 仮想プロセッサ方式及び不揮発化記憶方式
Groote et al. Computer Organization
JPH10301848A (ja) 多重ページサイズを有する仮想記憶装置
JPH0343651B2 (ja)
JP2581659B2 (ja) 仮想計算機システム
JPH05210592A (ja) 多重仮想空間におけるアドレス変換方法
JPH05257721A (ja) 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機
JPH04340143A (ja) ディジタル計算機
JP2602230B2 (ja) データ処理装置