JPH04195442A - アドレス変換機構を利用したメモリ管理方式 - Google Patents

アドレス変換機構を利用したメモリ管理方式

Info

Publication number
JPH04195442A
JPH04195442A JP2323098A JP32309890A JPH04195442A JP H04195442 A JPH04195442 A JP H04195442A JP 2323098 A JP2323098 A JP 2323098A JP 32309890 A JP32309890 A JP 32309890A JP H04195442 A JPH04195442 A JP H04195442A
Authority
JP
Japan
Prior art keywords
memory
page fault
processing
page
address translation
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
JP2323098A
Other languages
English (en)
Inventor
Masanobu Yuhara
雅信 湯原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2323098A priority Critical patent/JPH04195442A/ja
Publication of JPH04195442A publication Critical patent/JPH04195442A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概 要] アドレス変換機構の管理がアプリケーションに開放され
ている各種システムのメモリ管理方式に関し、 アプリケーションにおけるページフォルトの処理及びア
ドレス変換機構の管理を容易にすることを目的とし、 アドレス変換機構の管理をアプリケーションに開放し、
デマンドドリブン処理方式により処理を行うシステムに
おけるアドレス変換機構を利用したメモリ管理方式であ
って、リード又はライト時のページフォルトが検出され
たことを契機に、オペレーティングシステムがページフ
ォルトを起こしたアドレスとアクセス種類をアプリケー
ションに通知し、アプリケーションは、オペレーティン
グシステムから通知された内容に従ってページフォルト
を起こしたデータを用意する処理を行い、その処理結果
を少なくともページフォルトを起こしたアドレスを含む
アドレス変換単位領域にライトするように構成する。
〔産業上の利用分野〕
本発明は、アドレス変換機構の管理をアプリケーション
に開放し、デマンドドリブン処理方式等により処理を行
う各種システムにおけるアドレス変換機構を利用したメ
モリ管理方式に関する。
(従来の技術〕 従来は、ページングの拡張でプロセッサがその論理アド
レスにあるデータをアクセスする場合、データが物理ア
ドレスになかったとき、すなわちページフォルトが生じ
たときは、ネットワークを介すなどして、プロセッサの
物理メモリに転送するようにしていた。
ページフォルト処理をアプリケーションに開放したオペ
レーティングシステムにはカーネギ−メロン大学のMA
CHO3などがある。このページフォルト処理は、ディ
スクなど他の場所にあらかじめ存在するデータをメモリ
に転送するというものである。
アドレス変換機構の管理がアプリケーションに開放され
たシステムでは、開放されたアドレス変換機構を利用し
て、ユーザのアプリケーションがページフォルトを起こ
したデータを求める処理要求をオンデマンドで指示する
ことが可能である。
従来、同様なことを行うためには、どのデータがいつ必
要になるのかを判断するための詳細なコードを、アプリ
ケーションのプログラムに明に書き込んでおく必要があ
った。
次ぎに第6図を参照して、従来のマルチプロセッサシス
テムのメモリ管理方式について説明する。
第6図において、51a〜51nはプロセッサであり、
内部にそれぞれローカルメモリ511a〜511nを備
えている。
52は共有メモリであり、各プロセッサ51a〜51n
によって共有され、共通バス53を介してアクセスされ
る。
−Cにメモリのアクセス速度は、共有メモリよりもロー
カルメモリの方が速い。
従来は、複数のプロセッサで共有される可能性のあるデ
ータは共有メモリに置き、そうでないものだけローカル
メモリに置くように、プログラマが指定していた。
[発明が解決しようとする課題] 従来のアドレス変換機構の管理をアプリケーションに開
放したメモリ管理方式では、ページフォルトが起こった
時に、ディスク等の二次記憶に格納されていたデータを
、単にメモリに転送するだけであった。
本発明では、あらかじめ用意されたデータを転送するの
ではなく、ページフォルトを各種処理の要求とみなし、
その処理を行うことによりデータを用意する、新しいデ
マンド・ドリブン処理方式を提供することを目的とする
また、第6図のようにローカルメモリと共有メモリを保
有するシステムにおいて、複数のプロセッサで共有され
る可能性のあるデータは、1つのプロセッサで実行して
いる時でも従来はアクセス速度の遅い共有メモリに置い
ておく必要があった。
本発明では、1プロセツサで実行しているときには、ア
クセス速度の速いローカルメモリに置き、複数のプロセ
ンサで実行されるようになってはしめて共有メモリに移
動させることにより、高速な処理を行うことを目的とす
る。
〔課題を解決するための手段〕
前述の課題を解決するために本発明が採用した手段を、
第1図を参照して説明する。第1図は、本発明の原理図
であり、同図(八)は本発明の実施システムの構成を示
し、同図(B)は同システムのソフトウェア構成を示し
たものである。
第1図(A)において、lla〜llnはプロセッサで
あり、−Mプロセスとしてのアプリケーション、及びオ
ペレーティングシステムを実行するとともに、ページフ
ォルト発生時はページフォルト処理を行って、ページフ
ォルトデータをローカルメモリまたは共有メモリの物理
メモリ111a〜1lln、12にライトする処理を行
う。
12は共有メモリであり、共通ハス13を介して各プロ
セッサ1la−11nによって共通にアクセスされる。
 次に第1図(B)のソフトウェア構造において、AP
a−APnはプロセッサ11a〜Ilnのアプリケーシ
ョンであり、O8はオペレーティングシステムであり、
ATはハードウェアのアドレス変換機構である。
オペレーティングシステムO8は、内部にページフォル
ト処理を行うページフォルトハンドラPHを備え、リー
ド又はライト時のページフォルトが検出されたことを契
機に、ページフォルトハンドラP Hがページフォルト
を起こしたアドレスとアクセス種類をアプリケーション
APa〜APnに通知する処理を行う。
アプリケーションAPa−APnは、ページフォルトハ
ンドラPHから通知されたアドレスとアクセス種類から
対応する処理内容を判断して、処理内容に従って、ペー
ジフォルトを起こしたデータを用意する処理を行い、そ
の処理結果を物理メモリ111上の少なくともページフ
ォルトを起こしたアドレスを含むアドレス変換単位領域
(例えばページ領域)にライトする処理を行う。
〔作 用〕
アプリケーション(APaとする)は、論理アアドレス
よりメモリをアクセスする。
アドレス変換機構ATが論理アドレスから物理アドレス
への変換を行う。
もしアドレス変換機構ATがページフォルトを検出する
と、オペレーティングシステムO8に通知する。
オペレーティングシステムO3は、リード又はライト時
のページフォルトが検出されたことを契機に、そのペー
ジフォルトハンドラP Hがページフォルトを起こした
アドレスとそのアクセス種類に関する情報をアプリケー
ションAPbに通知する処理を行う。
アプリケーションAPbは、アプリケーションAPa、
またはAPaとは別のアプリケーションであり、どのア
プリケーションに通知するかはページフォルトを起こし
たアプリケーションとページフォルトを起こしたアドレ
ス等から判断する。
アプリケーションAPbはこのアドレスとアクセス種類
から対応する処理内容を判断する。
このページフォルトを起こしたアドレスから対応する処
理内容を判断することは、例えば、予め各処理内容をそ
のページアドレスと対応付けて定義しておくことにより
、ページフォルトを起こしたアドレスからそのアドレス
に対応する処理内容を判断することができる。
アプリケーションAPbは、行うべき処理内容に従って
、計算やデータの転送を行い、その処理結果をプロセッ
サllaのの物理メモリ11】又は12上の少な(とも
ページフォルトを起こしたアドレスを含むアドレス変換
単位領域、例えばベージ′領域にライトする処理を行う
これにより、ページフォルトを起こしたデータ又はこの
ページフォルトデータを含む近傍のデータがプロセッサ
の物理メモリにライトされる。
ページフォルトを起こしたデータのライト処理がが終了
すると、中断していた元の処理が再開される。
以上のように、ページフォルトを検知し、そのページフ
ォルトを処理するアプリケーションを判断する処理と検
知された内容に従ってページフォルトデータを用意して
物理メモリに書き込む処理と分離し、前者をオペレーテ
ィングシステムO8で行わせ、後者をアプリケーション
に行わせるようにしたので、アプリケーションはページ
フォルトが発生したときにはじめて対応する処理を行う
ことができるようになり、いつどこでデータが必要にな
るかをプログラムに明に記述する必要がなくなり、アプ
リケーションプログラムの作成及び管理が容易になると
ともに、ページフォルト処理の変化に柔軟に対処するこ
とができる。
(第1の実施例] 本発明の第1の各実施例を、第2図及び第3図を参照し
て説明する。第2図はアドレス変換機構の管理をアプリ
ケーションに開放した各システムの基本構成の説明図で
あり、同図(a)は共有メモリシステムの構成を示し、
同図(b)は分散メモリシステムの構成を示し、同図(
C)は階層型システムの構成を示したものである。第3
図は、第2図(C)のシステムのソフトウェア構造の説
明図である。
(A)各システムの構成 第2図(a)の共有メモリシステムにおいて、118〜
11. nはプロセッサであり、アプリケーション及び
、オペレーティングシステム及びアドレス変換機構によ
り一般のプロセッサ処理を実行するとともに、ページフ
ォルト処理を行って、ページフォルトデータをローカル
メモリ等の物理メモリにライトする処理を行う。
12、は共有メモリであり、共通バス13を介して各プ
ロセッサlla〜llnによって共通にアクセスされる
次に、第2図(b)において、21a〜21mはノード
であり、それぞれ内部にプロセッサ211a〜211m
及びメモリ212a〜212mを備えている。
各プロセッサ211a〜211mは、ネットワーク22
を介して接続され、その機能は同図(a)のプロセッサ
lla〜llnと同様である。
次に第2図(C)の階層型システムにおいて、31a〜
31. kはクラスタであり、各クラスタ31. a〜
31にはネットワーク32を介して接続されている。
各クラスタ318〜31には、同11D (a)に示す
共有メモリシステムと同様な構成になっており、それぞ
れ内部に共通ハス313a〜313kに接続されたプロ
セッサ311aa〜311an、・・・。
311ka〜311 kn及び共通メモリ312a〜3
12kを備えている。
第3図は第2図(C)の階層型システムのソフトウェア
構成を示したものであり、各クラスタ31a〜31. 
kのソフトウェア構成は共通である。
すなわち、一般プロセスAPaa−APan。
−、APka−APknは、プロセッサ311aa 〜
31 Jan、−,311ka 〜311knの−iプ
ロセス用のアプリケーションプログラムである。
03a−O3kは各クラスタ31a〜31にのオペレー
ティングシステムであり、リード又はライト時のページ
フォルトが検出されたことを契機に、オペレーティング
システム05a−O3kのページフォルトハンドラP 
HS a −P HS kがページフォルトを起こした
アプリケーションとアドレスからページフォルトを処理
するアプリケーションを判断して、そのページフォルト
の内容を対応するアプリケーションに通知する処理を行
う。
PHa−PHk(図示せず)は各クラスタ31a〜31
にのアプリケーションのページフォルトハンドラであり
、オペレーティングシステムO3a〜O3kのページフ
ォルトハンドラPH3a〜PH3nから通知されたペー
ジフォルトの内容にしたがって処理し、その処理結果を
少なくともページフォルトを起こしたアドレスを含むア
ドレス変換単位領域(ページ領域)にライトする処理を
行う。
前記第2図の(b)及び(C)で説明した各システムで
は、ネ・ノドワークを介して互いのプロセッサのメモリ
を共有して仮想的な共有メモリを形成することが可能で
あり、ネットワーク共有メモリと呼ばれる。
(B)第1の実施例の動作 第1の実施例の動作を、第2図(C)の階層型システム
の場合を例にとり、第3図のソフトウェア構造図を参照
して説明する。
いま、プロセッサ1.1 aが論理アドレスによりメモ
リをアクセスした時、プロセッサllaのアドレス変換
機構がページフォルトを検出すると、オペレーティング
システムO3aのページフォルトハンドラPH3aに通
知される。
オペレーティングシステムO3aのページフォルトハン
ドラPH3aは、ページフォルトが発生すると、ページ
フォルトを起こしたアプリケーションとアドレスからペ
ージフォルトを処理するアプリケーションを判断する。
この判断は、例えば、アプリケーションからのシステム
コールにより、O3内に予めページフォルト処理アプリ
ケーションとアドレスを対応付けて登録しておくことで
、行うことができる。
ページフォルトを起こしたアドレスに対応する処理アプ
リケーションが分かると、ページフォルトハンドラPH
3aは、そのページフォルトの内容を、ページフォルト
処理アプリケーションのページフォルトハンドラPHa
に通知する。
ページフォルトハンドラPHaは、オペレーティングシ
ステムO3aのページフォルトハンドラPH3aから通
知されることが予測される各ページフォルト内容に対応
する処理ルーチンを予め用意しておき、ページフォルト
ハンドラPH3aよりページフォルトの内容の通知を受
けると、その内容に対応したルーチンを起動して、ペー
ジフォルトを起こしたデータを演算及びデータの転送を
行って求め、プロセンサ内部のローカルメモリ(図示せ
ず)または共有メモリに、少なくともページフォルトを
起こしたアドレスを含むアドレス変換単位領域(ページ
領域)にライトする処理を行う。すなわち、ライトされ
るページ領域は、ページフォルトを起こしたページ領域
又はこの領域を含む近傍のページ領域である。
ページフォルトを起こしたページデータのメモリへの転
送が終了すると、再び元の処理が再開される。
以上のように、ページフォルトに対応したページフォル
トアプリケーションを検知する処理とページフォルトの
内容に従ってページフォルトデータを用意して物理メモ
リに書き込む処理と分離し、前者をオペレーティングシ
ステムで行わせ、後者をアプリケーションに行わせるよ
うにしたので、データの準備をあらかしめ行う必要がな
くなり、あるいは、プログラム上のいつどこでデータを
必要とするかをプログラムに詳細に記述する必要がなく
なり、アプリケーションプログラムの作成及び管理を容
易にすることができる。
また、プロセッサ等に変更があってページフォルト処理
が変化しても、アプリケーションのページフォルトハン
ドラを変更するだけでよいので、ページフォルト処理の
変化に柔軟に対処することができる。
〔第2の実施例] システムで行われる処理の中には、画像表示処理のよう
に、大量の第1の処理の結果の一部のみを次の第2の処
理で必要とする場合がある。第2の実施例はこのような
場合にページフォルト処理を効率よく行えるように第1
の実施例を改良したものである。
すなわち、第2の実施例では、第1の実施例におけるペ
ージフォルト処理アプリケーションのページフォルトハ
ンドラPHaの行うページフォルトを起こしたアドレス
からそのアドレスに対応する処理内容を判断する処理と
して、第2の実施例のページフォルトハンドラPHaは
、ページフォルトを起こした処理内容が大量の第1の処
理の結果の一部のみを次の第2の処理で必要とする場合
、何処を必要としているかをページフォルトを起こした
アドレスから判断するようにする。
例えば、ベクタフォントからビットマツプデータへ展開
する場合は、実際にビットマツプデータへ展開されるフ
ォントの数全体のフォントの一部であっても、全ベクタ
フォントのデータに対象として処理が行われるので、そ
の処理量は極めて大きくなる6そこで、表示のために実
際にアクセスされる領域の近傍のみの処理をアプリケー
ションのページフォルトハンドラPHaで行うようにす
る。
このようにすることにより、ページフォルト処理のため
のデータ処理量が大幅に低減されるので、ページフォル
ト処理を効率良く実行することができる。また、ページ
フォルトハンドラPHaは、ページフォルトが起きた場
合、どのベクタフォントについての処理をしなければな
らないかを明にプログラミングする必要がなくなるので
、アプリケーションプログラムの作成及び管理を容易に
することができる。
〔第3の実施例〕 第3の実施例は、前述の第1及び第2の実施例において
、ページフォルトの処理内容が処理結果をメモリにライ
トするための準備処理であり、かつ、その準備処理がラ
イト時にページフォルトが検出されたことを契機に行わ
れるようにしたものである。
すなわち、第1及び第2の実施例と同様に、ページフォ
ルトが検出されると、オペレーティングシステムO3a
のページフォルトハンドラPH3aを介して、ページフ
ォルト処理アプリケーションのページフォルトハンドラ
PHaにページフォルトが通知され、PHaが、そのペ
ージフォルトを起こしたアドレスからそのアドレスに対
応する処理内容を判断する。
ページフォルト処理アプリケーションは、そのアプリケ
ーションが処理の対象としているアプリケーションのメ
モリの使用及び空き状態を管理しているので、ページフ
ォルトが検出されたことを契機に、管理している空きメ
モリの中から、ページフォルトデータを格納する空きメ
モリ領域を選定して、アプリケーションのページフォル
トハンドラP Haは、メモリ上にページフォルトデー
タを格納する領域を確保する。必要ならばその領域の初
期化も行う。
従来の方式では、プログラム上で初めてその領域にライ
トする可能性がある場所を、プログラマが判断し、初め
てライトするかどうかを判断し初めての場合には、その
領域にメモリを割り付けるというコートを予め詳細にプ
ログラムに記述する必要があった。
これに対し、本発明では、その割付は処理がライト時に
ページフォルトが検出されたことを契機に行うようにし
たので、割付は処理が簡単で、アドレス変換機構の管理
を更に容易にすることができる。
[第4の実施例] ローカルメモリと共有メモリとを有するマルチプロセッ
サシステムでは、−Cに、ローカルメモリへのアクセス
の方が、共有メモリに対するアクセスよりも速い。ハー
ドウェア側から見れば成るべくローカルメモリで処理を
済ませた方が処理効率の面から有利である。
一方、ソフトウェア側から見ると、ローカルメモリと共
有メモリとを区別してプログラミングすることは、非常
に難しい。
そこで、ローカルメモリの高速性を生かしつつ、アプリ
ケーションプログラムを単純な共有メモリのときと同じ
ように作成できる方式が望まれる。
第4の実施例によれば、更にこのような課題をも解決す
ることができる。
以下本発明の第4の実施例を、第4図を参照して説明す
る。第4図は第4の実施例の実施システムであって、同
図(a)はローカルメモリと共有メモリの両方を保有し
、アドレス変換機構を具備するマルチプロセッサシステ
ムの説明図であり、同図[有])は同システムのソフト
ウェア構造の説明図である。
(A)実施システムの構成 第4図(a)の共有メモリシステムにおいて、11a〜
Ilnはプロセッサであり、アプリケーション及び、オ
ペレーションシステム及びアドレス変換機構により一般
のプロセンサ処理を実行するとともに、ページフォルト
処理を行って、ページフォルトデータをローカルメモリ
I 1.1 a〜111nまたは共有メモリ]2上にラ
イトする処理を行う。
12は共有メモリであり、共通バス13を介して各プロ
セッサlla〜llnによって共通にアクセスされる。
次に、第4図0))のソフトウェア構造において、AP
a−APmは一般プロセスであり、プロセッサlla〜
11. nの一般プロセス用のプログラムである。
リード又はライト時のページフォルトが検出されたこと
を契機に、オペレータシステムosのページフォルトハ
ンドラPH3がページフォルトを起こしたアプリケーシ
ョンとアドレスから対応するページフォルト処理アプリ
ケーションを選択して、ページフォルトの内容をページ
フォルト処理アプリケーションのページフォルトハンド
ラに通知する処理を行う。
PHはアプリケーションのページフォルトハンドうであ
り、オペレーションシステムO8のページフォルトハン
ドラPH3から通知されたページフォルトの内容にした
がって処理し、その処理結果を少なくともページフォル
トを起こしたアドレスを含むアドレス変換単位領域(ペ
ージ領域)にライトする処理を行う。
ページフォルト処理アプリケーションは、−mプロセス
の1つであり、自分を含めたアプリケーション群のアク
セス対象ページが複数のプロセッサで共有されているか
どうかを管理している。
(B)第4の実施例の動作 第4の実施例の動作を、プロセッサllaのアプリケー
ションが、あるデータをライトするために論理アドレス
によりアクセスした場合を例に取って説明する。
ページフォルト処理アプリケーションは、あるアドレス
空間の論理アドレスのページが複数のプロセッサにより
共有されているかを管理しており、もし複数のプロセッ
サ間で共有されていないときは、その論理ページをプロ
セッサllaのローカルメモリ111. aにマツピン
グする。その後プロセッサIlaのローカルメモリ11
1aにマツピングされているページを、他のプロセッサ
ではそのアドレス変換機構を利用して一時的にアクセス
不可とする。このようにしても、このページが他のプロ
セッサによって共有されていないので、なんら問題は生
しない。
これにより、通常の共有メモリと同じようなアプリケー
ションプログラムでアクセスすることにより、アクセス
する論理アドレスよりローカルメモリ】11aをアクセ
スすることができ、高速なアクセスを実現することがで
きる。
この状態で、もし他のプロセッサ(例えば、プロセッサ
1.11 nとする)から同じ論理アドレスに対するア
クセスが行われたとすると、ページフォルトが発生する
ページフォルトを起こしたページが他のプロセンサによ
って共有されているかを管理しているページフォルト処
理アプリケーションは、ページフォルトを起こしたペー
ジがプロセッサ111aのローカルメモリ111aに存
在することを検出すると、プロセッサllaのローカル
メモリ111aにあるページフォルトデータを共有メモ
リ12にコピーした後、ページフォルトを起こした論理
アドレスをその共有メモリにコピーされたページにマツ
ピングしなおすようにする。
このようにすることにより、プロセッサllnのアプリ
ケーションは、ローカルメモリと共有メモリとを区別す
ることなく、ローカルメモリの高速性を生かしつつ、単
純な共有メモリのときと同じようにしてアクセスを行う
ことができる。他のプロセッサがページフォルトを起こ
した場合も同様であり、これにより、各アプリケーショ
ンから透明な形で、ローカルメモリと共有メモリを使い
分けすることができる。
なお、以上の説明は、アドレス変換機構の管理がアプリ
ケーションに開放されている場合の動作であるが、アド
レス変換機構の管理がアプリケーションに開放されてお
らず、オペレーティングシステムO5がページフォルト
処理を行う場合にも適用されるものである。
〔第5の実施例〕 第4の実施例において、移動元プロセッサ11aのロー
カルメモリ111aから共有メモリ12に再マツピング
する際、移動元プロセッサllaのプロセスが終了した
等の理由により、そのローカルメモリ111aへの参照
がなくなる場合がある。第5の実施例は、このような場
合の実施例である。
すなわち、第4の実施例において、移動元プロセッサI
laのローカルメモリ111aから共有メモリ12に再
マツピングする際、移動元プロセッサlla上のプロセ
スからそのローカルメモリ111aへの参照がなくなっ
ていたときは、移動対象プロセスのページは移動先のプ
ロセッサ11nのみが使用することになり、他のプロセ
ッサによって共有されないことになる。
そこで、第5の実施例では、メモリを管理しているペー
ジフォルト処理アプリケーションまたはオペレーティン
グシステムO8が、移動対象プロセスのページは移動先
のプロセッサIlnのみが使用することになり、他のプ
ロセッサによって共有されないことを検出すると、移動
元プロセッサ11aのローカルメモリ111aから共有
メモリ12へ再マツピングすることなく、移動先プロセ
ッサ1.1 nのローカルメモリ111nへそのページ
を直接移動するようにする。
これにより、移動先のプロセッサllnは、共有メモリ
12ではなく、そのローカルメモリ111nをアクセス
することができるので、高速なアクセスが可能となり、
アクセス処理の最適化を実現することができる。
〔第6の実施例] 通常のリード等でプローブしたページにフォルトが発生
すると、そのフォルトに対応した処理が終了するまで、
そのフォルトから復帰できない。
そこで、近い将来必要になるデータを予め用意する先行
処理を要求できるようにして、実際にデータをアクセス
するときまでに必要なデータを用意することによりター
ンアラウンドタイムを短縮する方式が、同一出願人によ
って提案されている。
すなわち、各プロセッサにおいて、その内部にある複数
の汎用レジスタのうち、レジスタROは−mに特殊用途
に使用されるものであり、使用するときは特別のり一ト
/ライト処理が行われる。
例えば、ROからリードすると必ず0がリートされ、一
方、ROにライトするときは何もライトされず、その内
容(RO)に変化がない。
このレジスタROにメモリからデータをロードすること
は、意味がないので、通常行われない。
前記同一出願人の発明は、レジスタROのこの性質を利
用したハックグラウンドのベージング処理により、又は
他のプロセッサを使用したページング処理により、近い
将来必要になるデータを予め用意する先行処理を行うよ
うにしたものである。
第6の実施例は、この先願の先行処理方式を本発明に通
用したものである。以下、第6の実施例の動作を、第5
図のフローチャートを参照し、その処理ステップに従っ
て説明する。第5図はは第6の実施例の処理フローチャ
ートを示したものである。
■ ステップSl、ステップS2.ステップS3アプリ
ケーションがメモリをアクセスした時ページフォルトが
発生すると(ステップS1)、ハードウェアが処理中の
プロセスを中断して(ステップS2)、1trll?卸
をオペレーティングシステムO3に渡す。オペレーティ
ングシステムO5は、例外処理を開始する準備をする(
ステップS3)。
■ ステップS4 オペレーティングシステムはページフォルトを起こした
プロセスとアドレスから、そのページフォルトを処理す
るアプリケーションを選択し、それにページフォルトの
内容を通知する。この通知によりページフォルト処理ア
プリケーションのページフォルトハンドラの処理が開始
される(正確には処理可能な状態に遷移する〕。
■ ステップS5 オペレーティングシステムO5はページフォルトを起こ
した命令が、メモリからレジスタROへのロードであっ
たか否かを判断する。
■ ステップ56 ROへのロードでなかった場合は通常のページフォルト
なので、ページフォルト処理アプリケーションの処理が
終了するのを待つ。この処理とは、計算あるいはデータ
の転送により、ページフォルトしたページを含むページ
のデータを用意し新たに獲得した実メモリ領域に書き込
むことであり、システムの構成に応じて前述の第1の実
施例〜第5の実施例いずれかの方式で行われる。(正確
には、時分割処理を行っているため、処理を待っている
間に、ページフォルト処理アプリケーションの実行や、
他のアプリケーションの実行が行われる)。
ROへのロードであった場合には、先行処理要求であっ
たのでページフォルトの終了を待たないこの場合、ステ
ップS4での通知は、処理要求(デマンド)を先行して
通知したことになる。
■ ステップS7 オペレーティングシステムO8は、O3の例外処理を終
え、プロセスを再開する$備をする。
■ ステップS8 ページフォルトを起こしたプロセスの実行が再開される
以上のようにして、プロセッサの通常使用されない特殊
な命令である、メモリから汎用レジスタROへのロード
命令を利用することにより、先行処理でページフォルト
が発生しても、先行処理を依頼するだけで中断していた
元の処理を直ちに再開できるので、ターンアラウンドタ
イムを短縮させることができる。
[第7の実施例] 並列処理を行うマルチプロセッサシステムにおいては、
プローブによってページフォルトを起こしたことより起
動される処理を複数個同時に受は付け、プローブした物
理ページをプローブしたプロセッサからアクセス可能な
状態に固定するようにしたシステムがある。第7の実施
例は、このような並列処理を行うマルチプロセッサシス
テムに第6の実施例を通用したものである。
すなわち、このようなシステムでは、実行可能な複数の
プロセッサを起動して、前記第6の実施例の方法で各ペ
ージフォルトを起こしたデータのリード処理を実行させ
るようにする。
このようムこすると、ターンアラウンドタイムを更に短
縮させることができる。
〔第8の実施例〕 第8の実施例は、第6及び第7の実施例を更に改良した
ものである。
すなわち、第9の実施例では、第6及び第7の各実施例
に示すように、プローブした物理ページをプローブした
プロセッサからアクセス可能な状態に固定するシステム
において、更に各プロセッサは、ページフォルトを起こ
した処理を再開する前に、それまでプローブしたページ
が(メモリ)すべて固定されたことを確認するようにす
る。
例えば、ベクトルプロセッサのように、処理対象のデー
タがすべて物理メモリにあることを保証しなければなら
ないシステムでは、ヘクトル処理の前にスカラプロセッ
サでそのデータをプローブし、それにより、物理メモリ
への固定を先行要求する。
その場合、ヘクトル処理を開始する直前で、先行要求し
たデータがメモリに固定、すなわちメモリの所定領域に
格納されたかを確認する。
この確認は、例えば、スカラプロセッサで必要な全ペー
ジを1度づつアクセスすることにより行うことができる
このようにすることにより、先行処理対象データが正し
く物理メモリ上に固定されたことが保証されるので、デ
ータ処理及び処理結果の信φn性を向上させることがで
きる。
[第9の実施例〕 第3図(b)及び(C)で示したようなネットワーク共
有メモリシステムにおいては、ネットワーク上で共有メ
モリを実現することが本質的であり、二次記1.9を用
意することが目的ではない。
ネットワーク共有メモリシステムは、図示のように、共
有メモリは実際にはハードウェアとしては存在しないが
、一つのプロセッサのメモリを他のプロセ・フサ間で仮
想記憶上で共有することにより、仮想的にプログラムか
らみて共有メモリが存在するように見えるようにしてい
る。
このネットワーク共有メモリシステムにおいては、共有
メモリをリードするときは自由にリードできるが、ライ
ト時は共有している他のプロセッサの仮想ページをイン
バリデーションする必要ががある。
このようにネットワーク共有メモリシステムにおいては
、アクセスした論理アドレスが一次メモリにない場合も
二次メモリにない場合もともにページフォルトを発生す
る。
しかし、−Cのアプリケーションにとっては、ページフ
ォルトデータが一次記憶に関係するか二次記憶に関係す
るかは関係ないので、−次記憶と二次記憶を区別しない
ですむようにすることが望ましい。第9の実施例は、こ
のようなネットワーク共有メモリシステムに関するもの
で、外部ページャPCの処理が容易になるように改良し
たものである。
第9の実施例では、仮想化を共有メモリを実現している
O3層と通常の仮想記憶を実現するアプリケーション層
の2段階に行い、前者O3層の管理をオペレーティング
システムO3に実行させ、後者のアプリケーション層の
管理をアプリケーションに行わせる。
すなわち、オペレーティングシステムO8は、物理メモ
リと二次記憶との管理を行い、ページフォルトを起こし
たデータが二次記憶にあるときは、二次記憶から一次記
憶にページフォルトデータをリートする処理を行うよう
にする。
これにより、アプリケーション層には物理メモリの大き
さに制限がないように見せ掛けながら、それでもなお記
↑a保護を利用したメモリ管理といった高いレヘルの制
御のみをアプリケーションに開放することができる。
以上本発明の各実施例について説明したが、本発明はこ
れらの実施例に限定されるものではなく、その発明の主
旨に従った各種の変形が可能である。
[発明の効果] 以上説明したように、本発明によれば次の諸効果が得ら
れる。
(])  ページフォルトを検知する処理と検知された
ページフォルトの内容に従ってページフォルトデータを
用意して物理メモリに書き込む処理と分離し、前者をオ
ペレーティングシステムで行わせ、後者をアプリケーシ
ョンに行わせるようにし、前記アプリケーションでの処
理を二次記憶からの転送のみでなく、一般の処理が行え
るように拡張したので、アプリケーションはデータがい
つどこで必要になるかを明に記述する必要がなくなり、
アプリケーションプログラムの、 作成及び管理を容易
にすることができる。
(2)プロセンサ等に変更があってページフォルト処理
が変化しても、アプリケーションのページフォルトハン
ドラを変更するだけでよいので、ページフォルト処理の
変化に柔軟に対処することができる。
【図面の簡単な説明】
第1図は本発明の原理図、 第2図は本発明の第1〜第3の実施例の実施システムの
構成の説明図、 第3図は第2図(C)の階層型システムのソフトウェア
構造の説明図、 第4図は本発明の第4及び第5の実施例の実施システム
の構成及びソフトウェア構造の説明図、 第5図は本発明の第6の実施例の動作フローヂャートの
説明図、 第6図は従来のアドレス変換機構を利用したメモリ管理
方式の説明図である。 第1図、第2図、第4図において、 11a〜1.1 n 、 211 a〜211m、31
1aa〜311kk・・・プロセッサ、12,12.・
・・共有メモリ、13・・・共通ハス、21a〜21m
・・・ノード、22・・・ネットワーク、31a〜31
’k・・・クラスタ、32・・・ネタ1マノーク。

Claims (9)

    【特許請求の範囲】
  1. (1)アドレス変換機構の管理をアプリケーションに開
    放し、デマンドドリブン処理方式により処理を行うシス
    テムにおけるアドレス変換機構を利用したメモリ管理方
    式であって、 第1のアプリケーションのリード又はライト時のページ
    フォルトが検出されたことを契機に、オペレーティング
    システムがページフォルトを起こしたアドレスとアクセ
    ス種類を第1または第2のアプリケーションに通知し、 前記第1または第2のアプリケーションは、オペレーテ
    ィングシステムから通知されたアドレスとアクセス種類
    から対応する処理内容を判断して、その処理内容に従っ
    てページフォルトを起こしたデータを用意する処理を行
    い、その処理結果を少なくともページフォルトを起こし
    たアドレスを含むアドレス変換単位領域にライトするこ
    と、 を特徴とするアドレス変換機構を利用したメモリ管理方
    式。
  2. (2)前記処理内容が、ページフォルトを起こしたペー
    ジのデータのみでなく、将来必要となる可能性が高いと
    アプリケーションが判断したページのデータも用意する
    処理であること、 を特徴とする請求項(1)記載のアドレス変換機構を利
    用したメモリ管理方式。
  3. (3)前記処理内容が、処理結果をメモリに格納するた
    めの準備処理であり、かつ、その準備処理がライト時に
    ページフォルトが検出されたことを契機に行われること
    、 を特徴とする請求項(1)又は請求項(2)記載のアド
    レス変換機構を利用したメモリ管理方式。
  4. (4)各プロセッサ毎のローカルメモリと各プロセッサ
    に共有される共有メモリを保有し、アドレス変換機構の
    管理がアプリケーションに開放又は開放されてないマル
    チプロセッサシステムのアドレス変換機構を利用したメ
    モリ管理方式において、 アクセス対象ページが複数のプロセッサで共有されてい
    るかどうかをオペレーティングシステムが管理し、 アクセス対象ページがプロセッサ間で共有されていない
    初期状態では、その論理ページをローカルメモリ中の物
    理ページにマッピングし、複数のプロセッサ間で共有す
    るようになったときに初めてそのページを共有メモリに
    コピーし、その共有メモリのページに前記複数のプロセ
    ッサの論理ページをマッピングしなおすこと、を特徴と
    するアドレス変換機構を利用したメモリ管理方式。
  5. (5)移動元ローカルメモリから共有メモリに再マッピ
    ングする際、移動元プロセッサ上のプロセスから前記元
    のローカルメモリへの参照がなくなっていたときは、共
    有メモリではなく、移動先のローカルメモリへそのペー
    ジを移動することを特徴とする請求項(5)記載のアド
    レス変換機構を利用したメモリ管理方式。
  6. (6)特殊のアクセスでページをプローブしてデマンド
    だけ先行通知し、 そのプローブによりページフォルトを起こした場合でも
    、ページフォルトから元のプロセスに復帰させ、 前記請求項(1)項乃至請求項(5)のいずれかのペー
    ジフォルト処理を同一のプロセッサのハックグラウンド
    又は別のプロセッサで実行すること、を特徴とするアド
    レス変換機構を利用したメモリ管理方式。
  7. (7)プローブによって起動された先行処理を同時に複
    数受け付けることが可能な場合、 複数の先行処理を別々のプロセッサで並列処理させるこ
    と、 を特徴とする請求項(6)記載のアドレス変換機構を利
    用したメモリ管理方式。
  8. (8)プローブしたアドレスの物理ページをプローブし
    たプロセッサからアクセス可能の状態に固定するシステ
    ムであり、 各プロセッサは、ページフォルトを起こした処理を再開
    する前に、それまでプローブしたページが(メモリ)す
    べて固定されたことを確認すること、 を特徴とする請求項(6)又は請求項(7)記載のアド
    レス変換機構を利用したメモリ管理方式。
  9. (9)アドレス変換機構の管理をアプリケーションに開
    放し、デマンドドリブン処理方式により処理を行うシス
    テムにおけるアドレス変換機構を利用したメモリ管理方
    式であって、 論理空間をアプリケーション層とオペレーティングシス
    テム層に分割し、 オペレーティングシステム層では物理メモリと二次記憶
    との管理を行い、 アプリケーション層にはメモリの大きさに制限がないよ
    うに見せ掛けて、記憶保護を利用したメモリ管理をアプ
    リケーションに開放すること、 を特徴とするアドレス変換機構を利用したメモリ管理方
    式。
JP2323098A 1990-11-28 1990-11-28 アドレス変換機構を利用したメモリ管理方式 Pending JPH04195442A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2323098A JPH04195442A (ja) 1990-11-28 1990-11-28 アドレス変換機構を利用したメモリ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2323098A JPH04195442A (ja) 1990-11-28 1990-11-28 アドレス変換機構を利用したメモリ管理方式

Publications (1)

Publication Number Publication Date
JPH04195442A true JPH04195442A (ja) 1992-07-15

Family

ID=18151055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2323098A Pending JPH04195442A (ja) 1990-11-28 1990-11-28 アドレス変換機構を利用したメモリ管理方式

Country Status (1)

Country Link
JP (1) JPH04195442A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309763A (ja) * 2005-04-26 2006-11-09 Hewlett-Packard Development Co Lp メモリマップドページプライオリティ
JP2016523411A (ja) * 2013-06-27 2016-08-08 インテル・コーポレーション ハイブリッドメモリデバイス

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309763A (ja) * 2005-04-26 2006-11-09 Hewlett-Packard Development Co Lp メモリマップドページプライオリティ
JP2016523411A (ja) * 2013-06-27 2016-08-08 インテル・コーポレーション ハイブリッドメモリデバイス

Similar Documents

Publication Publication Date Title
JP5911985B2 (ja) ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
US4742450A (en) Method to share copy on write segment for mapped files
EP1960878B1 (en) Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions
TWI525437B (zh) 在複數執行緒處理單元中的效率式記憶體虛擬化
US7908470B1 (en) Multi-processor computer with plural boot memories
US6003112A (en) Memory controller and method for clearing or copying memory utilizing register files to store address information
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
EP0431467A1 (en) Multiprocessor system having distributed shared resources and dynamic global data replication
US6904490B2 (en) Method and system of managing virtualized physical memory in a multi-processor system
US20070124729A1 (en) Method, apparatus and program storage device for providing an anchor pointer in an operating system context structure for improving the efficiency of accessing thread specific data
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
JPH0997230A (ja) データ転送方法及びシステム
US5293622A (en) Computer system with input/output cache
JPS5820066B2 (ja) ハ−ドウエア バ−チヤライザ
JP2829115B2 (ja) ファイル共用方法
JP3814521B2 (ja) データ処理方法および装置
KR102658600B1 (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
JPH04195442A (ja) アドレス変換機構を利用したメモリ管理方式
JPS6319058A (ja) メモリ装置
JPH0192856A (ja) アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法
US5117491A (en) Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding
JPS61184643A (ja) 仮想計算機の起動制御方式
JPS6113261B2 (ja)
JP6439887B1 (ja) 情報処理装置
JPH1139214A (ja) マルチプロセッサシステムの共有メモリ制御方式