JPH0256653A - 階層化メモリ管理方式 - Google Patents

階層化メモリ管理方式

Info

Publication number
JPH0256653A
JPH0256653A JP63207417A JP20741788A JPH0256653A JP H0256653 A JPH0256653 A JP H0256653A JP 63207417 A JP63207417 A JP 63207417A JP 20741788 A JP20741788 A JP 20741788A JP H0256653 A JPH0256653 A JP H0256653A
Authority
JP
Japan
Prior art keywords
page
program
pages
data
storage device
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
JP63207417A
Other languages
English (en)
Inventor
Mitsuru Kakimoto
満 柿元
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
Priority to JP63207417A priority Critical patent/JPH0256653A/ja
Publication of JPH0256653A publication Critical patent/JPH0256653A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔発明の目的〕 (産業上の利用分野) 本発明は、高速小容量な記憶装置と低速大容量な記憶装
置をもち大量のデータのうち必要な部分を小容量高速記
憶領域に置いておくような記憶装置管理を行う階層化メ
モリ管理方式に関する。
(従来の技術) 今日の計算機システムの多くは、高速の主記憶装置と低
速ながら大容量の2次記憶装置というように、階層化さ
れた記憶装置の構成を持っている。
通常、主記憶装置は半導体メモリによって構成されてお
り、また2次記憶装置の例としては磁気ディスク、磁気
テープなどがある。
近年の計算機の処理能力の増大とともに、一つの仕事に
おいて処理すべきデータ及び処理するためのプログラム
は増々大きなものになってきている。一方、主記憶装置
の記憶の単位ビットあたシのコストは近年体々に低化し
てきてはいるものの依然として高価である。このため高
速のアクセスを必要とするデータ又はプログラムを全て
主記憶装置に格納することができない場合、なんらかの
形でデータ及びプログラムを主記憶装置と2次記憶装置
に分割して格納する必要がある。
しかしながら、計算機をプログラムする立場に立って考
えると、このような記憶装置の階層性を意識しなければ
ならないということは多きな負担である。今日では、プ
ログラミングを容易にし、プログラムの生産性を向上さ
せることは計算機システム設計上の大きな訴題である。
このため現存する計算機システムの多くでは仮想記憶と
呼ばれる概念と、それをサポートするベージングという
記憶装置管理機構を用いている。以下では、この仮想記
憶とベージングの骨子を簡単に説明する。
仮想記憶とは、データ及びプログラムを格納するのに充
分なだけの容量の主記憶メモリ空間を計算機システムが
備えていると考えてプログラミングができるとする概念
である。この概念はほとんどの場合、ベージングと呼ば
れる機構によって実現される。ベージングにおいては仮
想的なメモリ空間はページと呼ばれるある大きさの単位
に分割される。また現実の主記憶装置もまったく同じ大
きさのページフレームと呼ばれる単位に分割する。
プログラム及びデータは仮想的なメモリ上にあることを
想定しているため、それらもページに分割されている。
現実には、プログラム及びデータのページの一部は主記
憶装置上のページフレームにおかれ、残シのページは2
次記憶装置に格納される。処理上必要なページが主記憶
のページフレーム上にある場合、なんら問題はない。と
ころが必要とするページが主記憶のページフレームにな
かった場合(これをページフォルトと呼ぶ)、主記憶上
にちるページのいずれかを2次記憶装置に退避させ空に
なったページフレームに必要なページを読み込むように
する。これをページアウトと呼ぶ。このようにして処理
装置は主記憶のみを対象にして処理を実行できる。
ページフォルトが起こった場合、システムは処理を一時
中断し、ページアウト、必要なページの読み込みを行わ
なくてはならない。しかしながら2次記憶装置は主記憶
装置に比べてかなシ低速である。し喪がってページの交
換の間、処理はかなシの長い時間中断されることになる
。このためベージング機構を実現する際に最も重要なこ
とはページ7オルトが生じる回数をできるかぎり少くす
ることである。言い換えると、主記憶上にあるページの
中で今後最も使われにくいものを選んでページアウトし
なければならない。
ページ7オルトを最も少くする方゛法は、ページフォル
トが起こった時点でページフレーム中にあるページのう
ち今後最も長い間使用されないものを選択してページア
ウトすることである。しかしながら何らかの特別な情報
がなければ、将来のプログラムの振舞いを予言すること
はできないので、通常上記のような最適な選択はおこな
えない。したがって今日、現存するようなシステムで採
用されている方法は、過去のプログラムの実行の履歴の
情報から、なんらかの形で将来も使われにくいと思われ
るページを推定することである。このような推定法につ
いて拡いくつか提案されているがζこではそれらの代表
としてNFUとLRU法を取シ上げて説明する。
NFU(Not Frequently Used )
法とは、ページフォルトが生じた時点で、最も参照頻度
が小さいページをページアウトするという方法である。
NFU法は通常、〜次に述べるような機構により実現さ
れる。ページフレーム中にある各ページノソれぞれに対
応したカウンターを設けておく。システムの立上げ時、
あるいはページフォルトが生じてページの取シ換えが終
了した時点で、これらのカウンターをすべてOにクリア
ーしておく。各ページが参照されるとと罠そのページに
対応し九カランタが1だけインクリメントされる。次に
ページ7オルトが生じた時、このカウンターの値が最も
小さいページが最も参照頻度が小さいページである。よ
ってこのページをページアウトすればよい。
この方法の問題点は、ページフォルトが起こった時点で
、それ以前の参照頻度が最も小さいページが、それ以後
最も使われないページであるとは限らないということで
ある。処理の内容によっては、まったく逆になることも
ありうる。
LRU(Least Recently Used )
法とは、ページ7オルトが生じた時点でそれ以前に逆上
シ、最後に参照された時刻が最も古いようなページをペ
ージアウトするという方法である。LRU法を実現する
には、各ページが最後に参照された時刻を記録する表を
設けておけばよい。ページフレーム中のページが参照さ
れる毎に表の中のそのページに対応する項目をその時点
の時刻で書き換える。ページフォルトが生じた時点で、
表中の各ページが最後に参照された時刻を比較し、最も
古いものに対応するページをページアウトする。
LRU法を実現するための機構としては、他にも様々な
ものが考案されている。しかしながら、LRU法を基本
思想とした機構に共通の問題点として、最後に参照され
た時刻が最も古いものが、今後最も参照されないものと
はかぎらないという点がある。
まとめるとNFU法、LRO法あるいはその他の現在考
案されている方法は、ページフォールトが生じた時点よ
シ以前のページの使用状況にょシページアウトすべきペ
ージを決定しているという点でいずれも問題がある。っ
まシ、これらのページに含まれる情報の性質、例えばそ
れが制御プログラムの一部なのか、あるいはデーターの
一部なのか、ということはまったく考慮されない。この
ため、えてして効率の悪いページングを行ってしまうこ
とになる。例として第5図のような状況を考えてみる。
ここで5a、5b、5cはプログラムのコードが入った
ページで、これらは主記憶装置のページフレーム上にあ
るものとする。
今、5aのコードを終了し5bのコードを実行している
途中で、あるデータに対しアクセスする必要が生じ、そ
のデータの含まれるページがページフレームになかった
、っまシベージ7オルトが生じたとする。このとき、シ
ステムは5 a 、 5 b。
5Cのいずれかをページアウトしなければならないとす
る。この時点でページ5a 、5bはそこに含まれてい
るコードを実行している時に命令等のフェッチのために
何回となく参照されている。それに対しページ5Cは未
参照である。したがって従来のページングMWではペー
ジ5cが退避される。
しかしながら、ページ5cにあるのはこれから実行され
るプログラムコードの部分であるから、このページはじ
きに参照されることになる。逆にページ5aはすでに実
行が終了してしまった部分であり2度と参照されない。
したがってページ5bのプログラムコードを実行中にペ
ージフォルトが起こったならば、5aをページアウトす
るのが最も効率のよいページングである。
(発明が解決しようとする課題) この様に従来の方式では、ページフレーム上にあるペー
ジの過去における参照の履歴だけに基いて、ページフォ
ルト時にページアウトすべきページを決定していたため
、以後の処理で不都合が生じていた。
本発明はこのような事情を考慮してなされたものであり
、その目的はページに含まれる情報の意味とプログラム
実行の制御の流れの中でいっそのページが実行されるの
かという大局的知識を用いて、よシ最適化されたページ
ング機構を実現することにある。
〔発明の構成〕
(課題を解決するための手段・) 本発明は、プログラムのロードモジー−ル’WE成する
際に、実行の制御を行うコード部分(コードセグメント
と呼ぶ)とデータが入るデータ部分(データセグメント
と呼ぶ)に分離し、それぞれをページに分割し、コード
セグメントのページ間の実行のシーケンスの遷移と、コ
ードセグメント上のページからデータセグメント上のペ
ージへの参照関係を抽出するページ間関係抽出装置とそ
れらをグラフ構造の形に記述して記録するページ間関係
保持部と、そのグラフに基づいてプログラムのある部分
を実行中に最も使用されにくいと思われるページを決定
するページ選択装置を有することによシ上記のような問
題を回避することを可能にするものである。
(作用) 本発明では、ベージングを次のようにして行う。
まずプログラムをコードセグメントとデータセグメント
に分割する。各セグメントはシステム固有のページ単位
の大きさに応・じて複数のページに分割される。各セグ
メントにあるページをそれぞれコードセグメントページ
、データセグメントページと呼ぶことにする。
今、コードセグメントページAを実行中にページフォー
ルトが起こったとする。このとき効率の良いページング
を行うには、各コードセグメントの中でAから実行シー
ケンスが最も移置にくいもの、あるいはデータセグメン
トページの中でも最も参照されにくいものを退避するこ
とである。このために、コードセグメントページ間の実
行の制御の移置やすさ、及びコードセグメントページ、
データセグメントページ間の参照(読み込み及び書き込
み)のおこシやすさを数値化する。そして各ページをグ
ラフ上の1つのノードであられし、コードセグメントペ
ージ間の実行シーケンスの遷移のしやすさ及びコードセ
グメントページ、データセグメントページ間の参照の起
こ9やすさをノード間の結ぶエツジの重みで表現する。
コードセグメント間の実行シーケンスの制御の遷移のし
やすさは主に次のような2つの要因によって決まる。
(1)  コードセグメントベージBがプログラムのコ
ード上で、コードセグメン)Aのすぐ次に移置するもの
とする。このときAでの実行がジャンプ命令等を行わず
終了したとき、実行のシーフェンスは自動的にページB
に移る。したがってこのような場合ページA、ページB
間の実行シーケンスの移動の確率は高いと考えられるの
で、ページA、Bを表すノードを小さな重みをもつエッ
ヂで結ぶ。(ここでは重みが小さいほど実行シーケンス
の移動が起こりやすいというような表現法を選んでいる
。) (2)  コードセグメントベージAの中に、コードセ
グメントベージB内のエントリポイントへのジャンプ命
令があったとする、このような場合ページAからページ
Bへ実行のシーケンスが移る可能性があるページ人から
ページBへのジャンプ命令の数に応じてページA、Bを
表すノードを適当な重みのノードで結ぶ。
2つのページの間に実行シーケンスの移動の可能性がな
ければ、2つのページを表現するノードは結ばれない。
コードセグメントベージA内に、データセグメントペー
ジC内のデータを参照するような命令があれば、ページ
人を表現するノードとページCを表現するノードをエツ
ジで結ぶ。
この他にもコール命令、リターン命令等、実行シーケン
スの移動に関して考慮すべき要因はあるが、基本的には
以上のような考え方により、各ページ間の実行シーケン
スの移動のしやすさ、データ参照の起こシやすさを表現
した重みつき有向グラフが得られることになる。
この重みを各ページ間の距離と考える。ページフォルト
が生じた時点で、この有向グラフ上の探索を行い、ペー
ジフレーム上にあるページの中で実行中のページからの
距離が最も大きいものを探し出し、それをページアウト
する。
(実施例) 以下、図面を参照して本発明の一実施例を説明する。
第1図に本発明を構成する要素を示す。1は退避ページ
を指定する装置でページ間−関係抽出装置2とページ間
関係保持部3とページ選択装置4からなる。1は実行す
べきプログラムを調べ、ページ間の実行シーケンスの遷
移及びデータ参照関係を抽出し、その結果を重みつき有
向グラフに表現してページ間関係保持部に畜る。ページ
フォルトが生じると、ページ選択装置が働き、その時点
で最も使用されにくいと思われるページを選び出す。
第2図は例としてとシ上げるプログラムを示したもので
、lOはプログラムのコードセグメントを、20はプロ
グラムのデータセグメントである。
コードセグメントは4つのページ3a 、 3b 。
3c 、3dに分割されたとする。またデータセグメン
トは3e、3fの2つのページに分割されたものとする
第3図は、第2図に示したプログラムを重みつき有向グ
ラフの形に表現したものである。図中の4a、4b、4
c、4d、4e、4fは、それぞれページ3a、3b、
3c、3d、3e、3fに対応するノードである。以下
にこのグラフの構成法を示す。
プログラムのコードは、3a、3b、3C。
3dの順に並んでいる。従って、分岐がなければ実行の
/−ケンスは3a→3b→3C→3dの順に移ってゆく
。これに対応してノード4aと4 b。
4bと4c、4cと4dを有向エツジで結合する。
3aKu、3cの中のラベル300への分岐命令がある
。そこでノード4aと40を有向グラフで結ぶ。同様に
3dには3aの中のラベル100へ分岐する命令がある
ので、3dと3aを有向エツジで結ぶ。
3bの中には、3e中のデータXを参照する命令がある
。そこで4bと4eを有向エツジで結萬同様な理由によ
シ、4Cと4f、4dと4fも結び付ける。
次に各エツジの重みの付は方を説明するが、これには様
々な任意性がある。コードセグメントページ間の実行シ
ーケンスの遷移の確率は、分岐命令において実際に実行
時に分岐の起きる確率によってきまる。また、データー
を参照する命令が実際に実行される確率も分岐の確率に
支配される。
したがって分岐の起きる確率を前もって予想してエツジ
の重みを決定するという方法がまず考えられる。あるい
は、そのような予想をあらかじめ行うのは困難なので、
実行時の分岐確率をモニターしながら、エツジの重みを
ダイナミックに設定するという方法も考えられる。しか
しながら、これらの方式の実行にはかなりの負担を伴う
ので、どこまで厳密な重み付けを行うかは計算機システ
ムデザイン上の問題である。ここでは、一つの例として
きわめて単純化した方式について説明する。
3aと3bのように、分岐命令が実行されなければ自動
的に実行シーケンスが移るような関係にあるページ間の
エツジの重みは、比較的小さな値に設定する。ここでは
、その値を1とする。4bと4C,4Cと4dの間のエ
ツジについても同様である。
3aと30のような分岐命令を介して結ばれたページ間
の実行シーケンスの遷移の確率は、上記のようなコード
上で連続したページ間の遷移の確率よシ小さいと仮定し
、分岐命令によるエツジの重みは大きめに設定する。た
とえば、ここでは4aと40を結ぶエツジの重みを4と
する。3dと33の場合、2つの分岐命令で結ばれてい
るので、4dと4aを結ぶエツジの重みは、2とする。
3bと3eのように、あるコードセグメントページがあ
るデータセグメントページを参照している場合、ぞれら
を結ぶエツジの重みは2とする。
同様に30と3f、3dと3f間を結ぶエツジの重みも
2とする。3Cと3fのように、参照命令が複数個ある
場合、その数に応じて重みを小さくする方式も考えられ
るが、ここでは簡単に重みは一律に2とした。
以上のようにして、第3図のような重みつき有向グラフ
が構成される。次にこのグラフを用いて行うベージング
に関して説明する。
今、ページ3bを実行中に、ページ3eを参照する命令
で、3eがページフレームになくページフォルトが起こ
ったとする。ページ3a、3b。
3c、3d、3fはいずれもページフレーム上にあり、
これらのいずれかをページアウトしなければならない。
そのページは次のようにして決定する。エツジの重みを
各ノード間の距離と考え、ノード4bから出発してグラ
フ上で探索を行い、ページフレーム上にあるページの中
で最も距離の遠いノードに対応するものを探し出す。こ
の探索は公知の手法、グイクストラのアルゴリズムでお
こなえる。このようにして選び出したページをページア
ウトする。この例では、4bから48 、4 b。
4C,4d、4fへの距離はそれぞれ4 、 Q 、 
1゜2.3となるので、ページ3aが退避される。
なお、本例のように、対象となるページの数が少い場合
は、ダイクストラのアルゴリズムによる探索を行なわず
に各ページ間の距離を第4図のように表の形で保持して
おけばページアウトすべきページの決定はよシ高遠にお
こなえる。
〔発明の効果〕
本発明によれば、プログラムの持っている実行シーケン
スの遷移及びデータの参照の発生の情報を利用して、プ
ログラム中の任意の部分を実行中に今後最も使われにく
いと思われるページアウトすることができる。このため
、プログラムの構造とは無関係にページアウトすべきペ
ージを決定していた従来のページング方式に比べてペー
ジフォルトが生じる可能性を減らすことができ、計算機
システムの性能を向上することができる。。
【図面の簡単な説明】
第1図は本発明の一実施例の計算機システムの構成図、
第2図は実施例での説明に用いたプログラムの例であり
コードセグメント及びデータセグメントのページ分割の
様子と各ページ間の関係を示した図、第3図は第1図の
プログラムよシ構成される重み付き有向グラフの例を示
す図、第4図は第2図のグラフの各ノード間の距離を表
すテーブルの図、第5図はプログラムのページ分割の例
を示す図である。 l・・・退避ページ指定装置、2・・・ページ間関係抽
出装置、3・・・ページ間関係保持部、4・・・ページ
選択装置。 代理人 弁理士  則 近 憲 方 向  松山光速 第1図 第2図 第 図 第 図 第 図

Claims (1)

    【特許請求の範囲】
  1. 高速小容量の記憶装置及びこれに比べて低速大容量の記
    憶装置を有し、実行すべきプログラムの一部を高速小容
    量の記憶装置に、残りを低速大容量の記憶装置に保存し
    ておき、低速大容量の記憶装置内の一部プログラムが必
    要になった場合、該プログラムを高速小容量の記憶装置
    内の一部プログラムと交換する計算機システムにおいて
    、実行すべきプログラムを解析して実行シーケンスの遷
    移及びデータの参照関係を抽出する手段と、抽出した結
    果をグラフの形で保持する手段と、プログラム実行中の
    ある時点で高速小容量の記憶装置内のどの一部プログラ
    ムを低速大容量の記憶装置内の一部プログラムと交換す
    るのが最適かを前記グラフに基いて判定する手段とを具
    備したことを特徴とする階層化メモリ管理方式。
JP63207417A 1988-08-23 1988-08-23 階層化メモリ管理方式 Pending JPH0256653A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63207417A JPH0256653A (ja) 1988-08-23 1988-08-23 階層化メモリ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63207417A JPH0256653A (ja) 1988-08-23 1988-08-23 階層化メモリ管理方式

Publications (1)

Publication Number Publication Date
JPH0256653A true JPH0256653A (ja) 1990-02-26

Family

ID=16539408

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63207417A Pending JPH0256653A (ja) 1988-08-23 1988-08-23 階層化メモリ管理方式

Country Status (1)

Country Link
JP (1) JPH0256653A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61205933A (ja) * 1985-03-08 1986-09-12 Konishiroku Photo Ind Co Ltd 感光性平版印刷版
JP2004334870A (ja) * 2003-05-02 2004-11-25 Microsoft Corp 最適化を用いたメモリアクセス制御の実装
JP2015075978A (ja) * 2013-10-10 2015-04-20 富士通株式会社 キャッシュ方法、キャッシュ装置、およびコンピュータプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61205933A (ja) * 1985-03-08 1986-09-12 Konishiroku Photo Ind Co Ltd 感光性平版印刷版
JPH0315176B2 (ja) * 1985-03-08 1991-02-28 Konishiroku Photo Ind
JP2004334870A (ja) * 2003-05-02 2004-11-25 Microsoft Corp 最適化を用いたメモリアクセス制御の実装
JP4672281B2 (ja) * 2003-05-02 2011-04-20 マイクロソフト コーポレーション 最適化を用いたメモリアクセス制御の実装
JP2015075978A (ja) * 2013-10-10 2015-04-20 富士通株式会社 キャッシュ方法、キャッシュ装置、およびコンピュータプログラム

Similar Documents

Publication Publication Date Title
US6871341B1 (en) Adaptive scheduling of function cells in dynamic reconfigurable logic
US8245239B2 (en) Deterministic runtime execution environment and method
US5349656A (en) Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information
US5537635A (en) Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
EP0491585A2 (en) Dynamic link libraries system and method
CN100447744C (zh) 堆栈管理系统及方法
US20060294330A1 (en) Managing memory pages
CN103902251A (zh) 指令转译中的故障检测
US9201806B2 (en) Anticipatorily loading a page of memory
GB2348306A (en) Batch processing of tasks in data processing systems
CN105359108A (zh) 带有自适应纠删码生成的存储系统
CN101847096B (zh) 包含栈变量函数的优化方法
JP3428618B2 (ja) プログラムのキャッシュ局所性改善方法
CN103946820A (zh) 从盘的内径和外径周期性降级以改善读响应时间
CN114265670B (zh) 一种内存块整理方法、介质及计算设备
US5414842A (en) External sorting using virtual storage as a work device
Liu et al. Programming in VS Fortran on the IBM 3090 for maximum vector performance
KR101590764B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법
JPH0256653A (ja) 階層化メモリ管理方式
US5745749A (en) Method and system of file version clustering of object blocks using a compiler and database and having a predetermined value
CN114661557A (zh) 记录内存冷热状态的方法和装置
US20090157957A1 (en) Apparatus with disc drive that uses cache management policy to reduce power consumption
CN1021604C (zh) 在向量数据处理运算中从缺页故障中恢复的设备和方法
CN115809121A (zh) 用于上下文切换的方法和装置
JP7131005B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム