JP2856620B2 - コンピュータ・システムにおけるメモリ管理方法及び装置 - Google Patents

コンピュータ・システムにおけるメモリ管理方法及び装置

Info

Publication number
JP2856620B2
JP2856620B2 JP5025638A JP2563893A JP2856620B2 JP 2856620 B2 JP2856620 B2 JP 2856620B2 JP 5025638 A JP5025638 A JP 5025638A JP 2563893 A JP2563893 A JP 2563893A JP 2856620 B2 JP2856620 B2 JP 2856620B2
Authority
JP
Japan
Prior art keywords
page
access
list
management mechanism
vector
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 - Lifetime
Application number
JP5025638A
Other languages
English (en)
Other versions
JPH0689221A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0689221A publication Critical patent/JPH0689221A/ja
Application granted granted Critical
Publication of JP2856620B2 publication Critical patent/JP2856620B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/1009Address translation using page tables, e.g. page table structures

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)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリ管理に関するも
のであり、より詳しくは、物理メモリの中のスペースが
更に多く必要になったときに、その物理メモリからどの
ページをスワップ・アウトすべきかを、予め判定してお
くための方法及び装置に関するものである。
【0002】
【従来の技術】最近のマイクロプロセッサには、物理メ
モリに関連した仮想メモリの概念が採用されている。仮
想メモリを利用することによって、大きな記憶容量を必
要とするアプリケーションや、多数のアプリケーション
を、より小さな容量の物理メモリを用いて(このこと
は、コストという点で重要である)実行できるようにな
る。これが可能であるのは、物理メモリ中には、ある1
つの時点においては、個々のアプリケーションのうち
の、比較的小さな部分がだけが存在していれば良いとい
う事実があるからである。従って、複数のアプリケーシ
ョンを並行して走らせているコンピュータ・システムで
は、その時々に実際に実行している1つのアプリケーシ
ョンに必要なデータ及びコードだけを物理メモリ中に入
れておき、そのとき使用されていないデータ及びコード
は、仮想メモリのに入れたままにしておくか、或いは、
ハードディスク装置に格納しておくようにすることがで
きる。
【0003】ページングに基づくメモリ管理、即ちペー
ジング式メモリ管理とは、ページの概念を用いたメモリ
管理方式であり、一般的には、1つのページを4キロバ
イトのメモリ・アドレスを含んだ大きさにしている。仮
想メモリを利用しているため、アプリケーションを作成
する上では、使用可能なメモリが4ギガバイトあるもの
と考えて良いが(32ビットでアドレスするアドレス方
式の場合)、ただし実際に存在している物理メモリ(R
AM)の容量は、一般的に、1メガバイト以下から数メ
ガバイトまでの程度でしかない。従ってここでは、物理
メモリからその他のロケーション(即ち、ディスク装置
等の二次記憶装置)へ、ページを「スワップ・アウト」
する機能が必要とされている。
【0004】ページング式メモリ管理機構(例えばイン
テル社の386形マイクロプロセッサや486形マイク
ロプロセッサに備えられている機構等であり、尚、これ
らマイクロプロセッサを、以下、「i386/i48
6」と略記する)において、スワップを可能にするため
には、個々のページのマッピングとロケーション識別と
を行なう機能を有するページング・システムを備えるよ
うにするのが一般的である。マッピングを行なうために
は、各ページのロケーションをページ・テーブル・エン
トリの形で示すようにしたページ・テーブルを、生成し
且つ維持するようにしている。このようにしておけば、
アプリケーションがある特定のページを必要としたとき
には、このページ・テーブルをスキャンすることによっ
て、その特定のページのロケーション識別を行なうこと
ができる。尚、ページ・テーブル・エントリは、そのペ
ージ・テーブル・エントリに対応したページのアドレス
と、そのページの最近の使用の有無を表示するアクセス
有無(アクセス/非アクセス)表示フラグとを含んでい
る。
【0005】物理メモリからページをスワップ・アウト
する処理、並びに物理メモリの中へページをスワップ・
インする処理の、その処理効率を可及的に向上させるた
めに、オペレーティング・システムには、経時管理機構
(エージャ:ager)が備えられている。この経時管理機
構は、物理メモリの中のスペースが必要になったとき
に、最も以前に使用されたページ(最後に使用されてか
ら最も長く時間がたっているページ)を、物理メモリか
らスワップ・アウトすることを目的とした機構である。
即ち、先ず、最近使用されていないページがあれば、そ
れをアイドル・リストの中に入れ、そして、実際にいず
れかのページをスワップ・アウトする必要が生じたとき
に、そのアイドル・リストの中のページをスワップ・ア
ウトするようにしている。このようにしているのは、使
用されていないページがあれば、そのようなページは、
いずれは必要とされるかも知れない物理メモリの中のス
ペースを占拠させておかずに、外部記憶装置(例えばデ
ィスク装置等)へ移してしまう方が効率的であるからで
ある。従って、経時管理機構とページング・システムと
は、互いに協働して、ページのロケーションの追跡を行
なっており、また、実際に必要とされているページだけ
が、物理メモリ中に存在するようにしている。
【0006】ページング式メモリ管理機構の性能は、オ
ペレーティング・システムの基本性能を左右する主要因
のうちの1つを成しており、それは、ページング式メモ
リ管理機構の性能が、実効ページ・セット、応答時間、
それに容量等に関する、オペレーティング・システムの
その他の性能に対して直接的に影響を及ぼすものだから
である。従って、メモリ管理の基本方式を設計する際に
は、慎重に設計することが重要である。最近のマイクロ
プロセッサには、ページング式メモリ管理の機能がサポ
ートされてはいるものの、その性能は限られている。
【0007】ページング式メモリ管理機構の性能に対し
て直接的に影響を及ぼす要因には、以下のものがある。
(1)経時管理の効率及び実効性。(2)ワーキング・
セット、即ち実効ページ・セットには、もはや所属して
いないページをどの程度まで正確に識別できるか。
(3)経時管理サイクル(エージング・サイクル)の時
間の長さ。一般的に、経時管理サイクルの時間を短縮す
れば、実効ページ・セットの大きさを、その短縮に応じ
て小さなものとすることができる。また、使用状態が過
密気味のシステムでは、経時管理機構が充分な効率を発
揮し得るものであることが重要であり、それは、経時管
理機構の効率が低いと、本来は物理メモリの中に置いて
おくべきでないページによって、物理メモリの一部が占
拠されてしまうことにもなりかねないからである。
【0008】例えば「i386/i486」等をはじめ
とする最近の幾つかのマイクロプロセッサにおけるペー
ジング式メモリ管理機構のアーキテクチャでは、既述の
如くページ・テーブル・エントリ(PTE)が使用され
ており、ページ・テーブル・エントリは、その各々がメ
モリの中の各々のページに対応している。またページ・
テーブル・エントリは、ページ・テーブルの中に存在し
ている。複数のプロセスが実行されている場合でも、そ
れら複数のプロセスの各々が、そのプロセスに固有の、
独立した、ページ・テーブル及びページ・テーブル・エ
ントリの集合を備えている。そして、あるページの内容
に対するアクセスが行なわれるたびに、基本ハードウェ
アが、そのページに対応したページ・テーブル・エント
リの中の「アクセス有無表示」フラグをセットするよう
にしている。経時管理機構は、このフラグによって、そ
のページ・テーブルを対象とした最後の経時管理サービ
ス、即ち経時管理サイクルを経時管理機構が実行してか
ら現在までの間にそのページがアクセスされたことを
(或いはアクセスされなかったことを)、知ることがで
きる。経時管理機構は、ページ・テーブル・エントリを
スキャンした後には、このフラグをクリアする。一般的
には、経時管理機構は、1回の経時管理サイクルの全体
を完了するためには、システム内の全てのプロセスの全
てのページ・テーブルをスキャンしなければならない。
また、経時管理機構は、周期的に、全てのページ・テー
ブル・エントリをスキャンして、その中のビットのステ
ータスをチェックし、そして、それらビットのステータ
スに応じた動作(例えば、最近アクセスされていないペ
ージをページ・アウトする等の動作)を実行している。
「i386/i486」マイクロプロセッサでは、実際
のアクセスの順序をも含めた、ページに対するアクセス
の実際のアクセス・パターンを識別するという機能のサ
ポートの程度は、ページ・テーブル・エントリ中のアク
セス有無表示ビットにより限定されてしまう。ページに
タイム・スタンプを押印するようにすれば、ページに対
するアクセスの実際の順序をメモリ管理サブシステムが
知ることができるようになるが、しかしながら基本ハー
ドウェアは、タイム・スタンプを利用できるようになっ
てはいない。
【0009】経時管理機構に割当てられる時間を無駄な
く利用できるようにすることが非常に重要であり、それ
は以下の理由による。先ず、(1)経時管理機構は、次
回にページ・アウトすべきページ集合を識別するという
タスクを、効率的に実行できるものでなければならず、
しかもそれと共に、(2)経時管理機構は、ページ・ア
ウトすべきページを識別する際に、その識別を正確に行
なえるものでなければならない。特に後者に関しては、
もしその識別が不正確であったなら、それによって、誤
ったページ・アウトが行なわれる回数が著しく増加する
おそれがあり、物理メモリの必要容量が増大するおそれ
があり、そして最終的には、システムの競争力を低下さ
せるおそれがある。更に、中央処理装置が使用する時間
(CPUタイム)のうち、経時管理機構によって消費さ
れる時間は、システムのその他のプロセスのための時間
を犠牲にして捻出されるものであり、しかも1回の経時
管理サイクルのために、CPUタイムのタイム・スライ
スのうちの数スライス分が消費されることもある。ま
た、経時管理機構が消費する資源(例えばCPUタイム
等)が効率的に使用されるようにするためには、経時管
理機構が、それら使用可能な資源を幾つかのプロセスの
間に適切に割り振れるようにしておくことが重要であ
る。
【0010】
【発明が解決しようとする課題】経時管理機構の機能効
率に加えて、次回にページ・アウトすべきページであ
る、「アイドル・リスト」に入れておくページを、良好
に選択できるようにしておくことも重要である。在来の
システムは、物理メモリからページをスワップ・アウト
するための方法として、LRU法(least recently use
d method:最も以前に使用されたページから順にスワッ
プ・アウトして行く方法であって、最古使用スワップ方
法)の近似方法というべき方法を採用している。この近
似方法では、しばしば不適切な判定が行なわれることが
あり、特に、高度に動的なしかも使用状態が過密気味の
システムにおいては、不適切な判定が行なわれ易い。既
述の如く、物理メモリの中の2つのページの夫々に対応
した2つのアクセス有無表示フラグがセットされた場合
には、それら2つのフラグがセットされてしまった後か
ら、オペレーティング・システムが、それら2つのペー
ジのいずれが先にアクセスされたのかを判断するすべは
ない。従って、経時管理機構が、スワップ・アウトすべ
きページとして、不適切なページ(即ち、最新に使用さ
れた方のページ)を選択してしまうことは、大いにあり
得るのである。
【0011】例えば、経時管理機構が、ページ・テーブ
ル・エントリをスキャンしている間に、2つのページ・
テーブル・エントリにおいてアクセス有無表示フラグが
リセットされているのを検出するということも、あり得
ることである。経時管理機構は、このことによって、そ
れらフラグが最後にリセットされてから現在までの間、
それらフラグに対応した2つのページがアクセスされず
にいたものと判断する。それゆえ経時管理機構は、それ
ら2つのページの両方をアイドル・リスト(即ち、ペー
ジ・アウトすべきページの候補であるページを示したリ
スト)に入れることになり、これによってそれら2つの
ページは、もし短時間のうちに再びアクセスされること
が無ければ、いずれは両方ともページ・アウトされるこ
とになる。即ち、経時管理機構は、それら2つのページ
を同等に扱うのである。しかしながら、例えば、それら
2つのページのうちの一方が、本来は非常に使用度の高
いページであって(例えば、使用度の高いソフトウェア
のコードを包含しているページである場合等)、そのス
キャンの直前の短時間の間だけ、たまたまアクセスされ
ずにいただけであり、一方、他方のページは、実際に使
用度の低いページであるということもあり得る。このよ
うな場合には、前者のページは後者のページと比べて、
将来アクセスされる確率が高いといえる。しかしなが
ら、上述の経時管理機構の限界ゆえに、いずれかのペー
ジをページ・アウトする必要が生じたときには、前者の
ページ(即ち、使用度が高い方のページ)が選択されて
しまう可能性もある。それは、経時管理機構がそれらペ
ージを見る目が限られたものであるため、経時管理機構
からはそれら両方のページが同等に見えてしまうからで
ある。従って、前者のページをスワップ・アウトしてし
まったならば、再びそのページを参照する必要が生じた
ときに、ページ・フォールトが発生することになる。一
般的に、ページ・フォールトが発生すると、それによっ
て処理時間に遅延が生じ、なぜならば、そのページのロ
ケーション識別の処理と、そのページをスワップ・イン
して物理メモリの中へ戻す処理とを完了するまでの間、
実行中のプロセスを一時停止させておかなくてはならな
いからである。
【0012】あるページがアクセスされたときには、そ
のページに対応したページ・テーブル・エントリの中の
アクセス有無表示用のビット・フラグがセットされる。
一方、経時管理のプロセスにおいては、複数のページ・
テーブル・エントリがシーケンシャルにスキャンされて
行き、アクセスされたページとアクセスされずにいたペ
ージとが識別され、アクセスされずにいたページは最終
的にアイドル・リストへ入れられ、そして多くの場合、
ページ・アウトされることになる。ページ・テーブル・
エントリをスキャンするプロセスは、本質的に時間のか
かるプロセスである。ただし、ページ・テーブルの中の
全てのページ・テーブル・エントリをスキャンする必要
は無く、その理由は、物理メモリの中には、ページ・テ
ーブル・エントリに対応しているページのうちの一部の
ページしか存在していないからである。しかしながら、
一般的には、物理メモリの中に存在しているページに対
応したページ・テーブル・エントリを捜し出すだけで
も、多数のページ・テーブル・エントリをスキャンしな
ければならないことがある。また基本的に、物理メモリ
の中に存在しているページに対応したページ・テーブル
・エントリのロケーション識別を行なうためには、非常
に多くのページ・テーブル・エントリをスキャンしなけ
ればならないことがあり得る。
【0013】以上のように、マイクロプロセッサにおけ
るメモリ管理を、より効率的に行なうことが求められ、
特に、物理メモリからスワップ・アウトすべきページを
予め判定しておくための方法及び装置が求められてい
る。したがって、本発明の目的は、メモリ管理をより効
率的に行うために物理メモリからスワップ・アウトすべ
きページをあらかじめ判定しておいて、物理メモリのス
ペースが必要になった時は即座に、該判定しておいたペ
ージをスワップ・アウトできるようにすることである。
【0014】
【課題を解決するための手段】以上の目的を達成するた
めに本発明は、マルチ・ビット・ベクトルの履歴情報を
用いて、物理メモリからスワップ・アウトすべきページ
の順序を予め判定しておくようにし、それによって標準
的な経時管理方式並びにページング方式を使用した場合
に生じる問題を解消ないし大幅に軽減するようにした、
方法及び装置を含むものである。ここに説明する方法及
び装置によれば、いずれかのページをスワップ・アウト
する必要が生じる以前に、どのページからスワップ・ア
ウトして行くかという順序を予め判定しておくことがで
きるため、物理メモリの中のスペースが必要になったと
きには、経時管理機構が、即座に、適切なページを物理
メモリから除去することができるようになっている。
【0015】本発明の1つの局面によれば、コンピュー
タ・システムにおけるメモリ管理方法が提供され、その
コンピュータ・システムは、経時管理機構を含んでいる
ページ管理機構を採用しているシステムである。また、
そのページ管理機構は、プロセスの各ページのマッピン
グとロケーション識別とを行なうための、ページ・テー
ブルとそのページ・テーブルの中の複数のページ・テー
ブル・エントリとを備えた形式のページ管理機構であ
る。この方法では、複数の経時管理サイクルに亙る、各
ページ・テーブルの中の各ページ・テーブル・エントリ
へのアクセスの回数の履歴情報を記録するための、複数
のビットを有するビット・ベクトルを作成するようにし
ている。そして、所定個数のそれらベクトルを表示する
表示データを、SPリストの中に配置する。このように
して、経時管理機構がSPリストをアクセスすることに
よって、SPリストの中のエントリのうちでアクセス検
出回数が最も少ないエントリに対応したページを、経時
管理機構がページ・アウトできるようにしている。ま
た、前記所定個数のベクトルは、アイドル・リストの中
の最も以前に使用された側の端部から取り出すようにし
ている。
【0016】SPリストは、SPベクトルの多様性に対
応した本数の複数本の縦列を有するように構成する。ま
たその際に、それら複数本の縦列を、最少アクセス回数
から最多アクセス回数までに対応させて配列するように
する。SPリストからエントリを除去する(またそれと
共に、その除去したエントリに対応したページを物理メ
モリから除去する)ようにしており、その際には、最少
アクセス回数に対応した縦列の中の最も以前から存在し
ているエントリを先にし、最多アクセス回数に対応した
縦列の中の最も新しいエントリを後にするという順序で
除去して行くようにしている。
【0017】本発明の技術上の利点の1つは、物理メモ
リのスペースが必要になる以前に、SPベクトルの履歴
情報の中のアクセス回数が最少のページを、物理メモリ
からスワップ・アウトして除去すべき候補ページとして
識別しておくことができるということにある。これによ
って、経時管理機構が、スワップ・アウトすべきページ
を選択する際に、従来可能であった水準よりも更に適切
に、そのページを選択できるようになっている。
【0018】
【実施例】本発明を並びにその利点を更に完全に理解で
きるように、以下に添付図面を参照しつつ、本発明の実
施例について詳細に説明して行く。先ず図1について説
明すると、同図は記憶システムの一例を模式図で表わし
たものであり、同図では、この記憶システムの全体に対
して引用符号10を付してある。コンピュータのプログ
ラムを書く際には、物理的に存在している(従って実在
している)メモリよりも更に大きなメモリが、アドレス
指定可能であり、従って使用可能であるものとして、そ
のプログラムを書き込むようにしている。一般的な例を
挙げるならば、例えば4ギガバイトの仮想メモリ(即
ち、実在しているのではないメモリ)12が、アドレス
指定可能なメモリとして用意されている。一方、物理メ
モリ(RAM)14の大きさ、即ちメモリ容量は、コン
ピュータ・システムによって様々であるが、仮想メモリ
12の使用可能な大きさより、物理メモリ14の使用可
能な大きさの方が小さい。図1に示すように、例えば物
理メモリ14はnメガバイトの記憶容量を持ち、ここで
nは変数であって、典型的な場合では1から64までの
間の数である。このように物理メモリの方が、仮想メモ
リよりも小さいため、コンピュータのハードウェアに
は、通常、物理メモリ14と関連させて使用するため
の、例えばハードディスク装置等の外部記憶装置16が
備えられている。
【0019】あるコンピュータ・システム(図7参照)
上で、あるプロセス(ここでプロセスとは、コンピュー
タ・プログラムのことである)が実行されているときに
は、ページ(1つのページは例えば4キロバイトのデー
タから成るものであり、図1ではページを引用符号18
で示してある)を、仮想メモリ12から物理メモリ14
の中へ転送するということが行なわれている。仮想メモ
リ12から物理メモリ14の中へ複数のページを転送す
る際には、それら複数のページの間に特定の転送の順序
が定められているわけではないため、仮想メモリ12の
中では連続していた複数のページであっても、物理メモ
リ14へ転送された後には、必ずしも連続したページに
なるとは限らない。
【0020】コンピュータ・システム上で実行されてい
るある1つのプロセスが、物理メモリ14の中のある1
つのページを使用完了した後に、それとは別のプロセス
が物理メモリ14の中の物理スペースを必要とすること
がある。もしこのとき、使用可能な物理スペースが存在
していなかったならば、物理メモリ14の中のその使用
完了したページを、物理メモリ14から記憶装置16へ
「スワップ・アウト」する必要がある。更に、記憶装置
16の中へ既に格納したページを、あるプロセスが必要
とした場合には、そのページを記憶装置16から物理メ
モリ14の中へ「スワップ・イン」する必要がある。
【0021】ページング式メモリ管理機構は、仮想メモ
リ12と物理メモリ14と外部の記憶装置16との間で
ページをマッピングし、各ページのロケーション識別を
行なう。この点について図2を参照して説明すると、
「i386/i486」形のマイクロプロセッサでは、
一般的に、ページング式メモリ管理機構は、複数のペー
ジ・テーブル・エントリ32を含んでいるページ・テー
ブル30を使用するように構成されている。各々のペー
ジ・テーブル・エントリ32は、アドレス・セクション
34と、一連の複数の情報ビット(即ち情報フラグ)3
6とを備えている。それら複数の情報フラグ36は、数
々の用途に使用されており、それら用途の具体例を挙げ
るならば、例えば、そのページ・テーブル・エントリに
対応するページが、物理メモリの中に存在しているか否
かを表示したり、そのページが読取り用のページか或い
は書込み用のページであるかを表示したりする用途であ
り、また更に、それら情報フラグ36の中には、図2に
引用符号38で示したアクセス有無表示フラグが含まれ
ている。このアクセス有無表示フラグ38は、ページン
グ式メモリ管理機構が、あるページが最近使用されたか
否かを追跡できるようにするために備えられているフラ
グである。このアクセス有無表示フラグ38は、対応す
るページがアクセスされたならば、その都度、基本ハー
ドウェア(即ち、「i386/i486」チップ)によ
ってセットされるようにしてある。
【0022】このページング式メモリ管理機構に関して
は、経時管理機構(ager)を使用して物理メモリ14と
記憶装置16との間のページのスワップを補助するとい
うことが行なわれている。経時管理機構は、一連のペー
ジ・テーブル・エントリのアクセス有無表示フラグ38
をスキャンするようにした機構であり、それによって、
物理メモリ14の中のスペースが必要とされたときに、
最も以前に使用されたページ(即ち、物理メモリ14の
中に存在しているページのうちで、最後に使用されてか
ら経過した時間が最も長いページであり、これを「LR
Uページ(least recently used page)」と略記する)
が、物理メモリ14から記憶装置16へスワップ・アウ
トされるようにすることを目的とした機構である。とこ
ろが、経時管理機構が、単一ビットのアクセス有無(ア
クセス/非アクセス)表示フラグ38から入手し得る情
報の量は僅かなものでしかないため、これまでは、経時
管理機構が、物理メモリ14からスワップ・アウトすべ
きページを不適切に選択してしまうということがあっ
た。これが起こり得たのは、2つ以上のページ・テーブ
ル・エントリにおいてアクセス有無表示フラグ38がセ
ットされた場合には、それらページ・テーブル・エント
リのアクセス有無表示フラグ38のうち、どのアクセス
有無表示フラグ38が最も新しくセットされたのかを、
セットされた後からでは、経時管理機構が知るすべがな
いことに原因があった。更に、経時管理機構が全てのペ
ージ・テーブル・エントリをスキャンし終わったときに
は、それらページ・テーブル・エントリのアクセス有無
表示フラグ38がリセットされているため、このことに
よっても、どのページが最後にアクセスされたのかを判
定するすべが失われてしまっていた。
【0023】次に図3について説明すると、同図はスワ
ップ・アウトすべきページのスワップ(SP)ベクトル
のレポジトリを示したものであり、同図では、このレポ
ジトリの全体に対して引用符号50を付してある。この
レポジトリ50は、複数のSPベクトル(1つのSPベ
クトルは1つの物理ページに対応している)を含んでお
り、それらSPベクトルには、図中では引用符号52や
54を付してある。それらSPベクトル52、54の各
々は、複数のビット(ここでは一例として、8個のビッ
トとしてある)を含んでおり、それらビットには、引用
符号56、57、58、59、60、61、62、及び
63を付してある。この図3に示した具体例では、ビッ
トの個数(即ちフラグの個数)を、ビット56からビッ
ト63までの合計8個としてあるが、しかしながらこの
個数は、必要に応じて任意の個数とすることができる。
例えば2組の8ビットのベクトルを連結することによっ
て16ビットのSPベクトルとした上で、それら8ビッ
トのベクトルの各々に対し、以下に更に詳細に説明する
ようにして操作を施すようにしても良い。また更に、い
うまでもなく、24ビットや32ビットのSPベクトル
とすることも可能である。
【0024】SPベクトル52、54は8個のビットか
ら成り、それらビットの中に「1」または「0」を入れ
ることができるようにしてある。一例として、SPベク
トル52に対応するページがアクセスされた場合には、
このSPベクトル52の右端のビット56に「1」を入
れるようにする。そして、経時管理機構が、次回のペー
ジ・テーブル・エントリのチェック(即ちスキャン)を
行なって、そのページがそれまでの間にアクセスされた
か、それともアクセスされずにいたかを調べるときに、
このビット56の中の「1」を左方へ1ビット分シフト
して、ビット57へ移動させる。そして、そのページ
が、経時管理機構が前回のスキャンを行なってからそれ
までの間に、アクセスされていたのであれば、ビット5
6に再び「1」を入れるようにする。一方、そのページ
がアクセスされずにいたのであれば、ビット56に
「0」を入れるようにし、以後のスキャンの際にも同様
のことを行なう。即ち、右方から左方へシフトを行な
い、左端のビットを廃棄するようにする。こうすること
によって、経時管理機構が実行した最新の8回のページ
・テーブル・エントリのスキャンの間の、各SPベクト
ルに対応した各ページの履歴情報が生成される。この履
歴情報は、在来の方式において現在利用可能な履歴情報
と比べて、はるかに有用な情報を経時管理機構に提供し
得るものである。
【0025】次に図4について説明すると、同図はデー
タ・インター・テーブル(Data Inter Table)を示した
ものであり、同図では、このデータ・インター・テーブ
ルの全体に対して引用符号80を付してある。このデー
タ・インター・テーブル80を作成する目的は、SPベ
クトルの中に記録されている、ページの履歴情報(図
3)の解釈を助けるための手段を提供すること、それ
に、レポジトリ50の中のSPベクトルの更新を手早く
行なえるようにするための手段を提供することにある。
このデータ・インター・テーブル80に包含してある情
報は、4本の縦欄の中に配列してある。それら4本の縦
欄は、「現在のアクセス・パターン」82、「ページが
アクセス済みの場合の新アクセス・パターン」84、
「ページが非アクセスの場合の新アクセス・パターン」
86、それに、「アクセス検出合計回数」88である。
「現在のアクセス・パターン」82は、SPベクトルの
内容として生じ得る「0」と「1」とのあらゆる組合せ
を網羅したリストであり、経時管理機構による最新の8
回のスキャンの間に1度もそのページがアクセスされず
にいた場合に対応した、全てが「0」のアクセス・パタ
ーンから、その8回のスキャンの全てにおいてそのペー
ジがアクセスされていたことが検出された場合に対応し
た、8個の「1」から成るアクセス・パターンまでが並
んでいる。その次の、「ページがアクセス済みの場合の
新アクセス・パターン」84は、SPベクトルの内容が
「現在のアクセス・パターン」82で表わされているパ
ターンであるときに、そのSPベクトルに対応したペー
ジが、経時管理機構による最後のスキャンからそれまで
の間にアクセスされた場合に、そのSPベクトルの内容
がどのようなアクセス・パターンに変化するかを表わし
たものである。
【0026】その次の、「ページが非アクセスの場合の
新たなアクセス・パターン」86もこれと同様である
が、ただし、そのSPベクトルに対応したページが、経
時管理機構による最後のスキャンからそれまでの間、ア
クセスされずにいた場合に、そのSPベクトルの内容が
どのようなアクセス・パターンに変化するかを表わした
ものである。「アクセス検出合計回数」88は、SPベ
クトルの内容が「現在のアクセス・パターン」82で表
わされているパターンであるとき、経時管理機構による
最新の8回のスキャンの間にそのページがアクセスされ
ていたことが検出された合計回数を、数値で表わしたも
のである。これらによって、データ・インター・テーブ
ル80は、あり得る全てのアクセス・パターン(「現在
のアクセス・パターン」82)に応じて高速で更新を行
なうことのできる能力を提供しており、なぜならば、
「ページがアクセス済みの場合の新アクセス・パター
ン」84と、「ページが非アクセスの場合の新アクセス
・パターン」86とによって、該当する夫々のSPベク
トルの実際のアクセス・パターンを、起こり得るあらゆ
る場合に応じて更新し得るだけの情報が、提供されてい
るからである。また更に、「アクセス検出合計回数」8
8を備えているために、「現在のアクセス・パターン」
82の中の「1」の個数やSPベクトルの中の「1」の
個数を一々数えることなく、そのSPベクトルに対応し
たページがアクセスされていたことが検出された回数を
表わす、アクセス検出合計回数の現在値が得られるよう
になっている。
【0027】次に図5について説明すると、同図はペー
ジ管理機構並びに経時管理機構と関連させて使用するア
イドル・リストの一例を示したものであり、同図では、
このアイドル・リストの全体に対して引用符号200を
付してある。このアイドル・リスト200は、複数の
「ページを特定して表わすための表示データ」(即ち、
データ構造体)202を含んでおり、このアイドル・リ
スト200の中に含まれているそれらデータ構造体20
2は、物理メモリ中に存在しているページのうち、その
ページ・テーブル・エントリのビット38(図2参照)
の中のアクセス有無表示フラグが「アクセス無し」を表
わしていることが経時管理機構によって検出されたペー
ジに対応した、データ構造体である。夫々のデータ構造
体202は、みずからに対応しているページに関する情
報と、そのページのロケーションとを提供している。ア
イドル・リスト200中では、データ構造体202は、
引用符号204で示した、最新に使用された側の端部
(most recently used end:MRU端)から、引用符号
206で示した、最も以前に使用された側の端部(leas
t recently used end :LRU端)まで、一列に並べて
配列される。従って、この図5に例示したアイドル・リ
スト200では、(アクセスされずにいたことが)最も
新しく検出されたページに対応したデータ構造体は、こ
のリストの配列の左端に加えられ、一方、最も長くこの
アイドル・リスト200中に入れられていたデータ構造
体は、このリストの配列の右端に位置するようになる。
尚、このアイドル・リスト200は、「i386/i4
86」の経時管理機構に本来的に付随する不正確さのた
めに、LRUページをLRU順に順序付けるという点に
関しては、その近似方法でしかない。しかしながら、大
まかにいえば、LRUページは、このアイドル・リスト
200の右端に位置することになるといって良い。
【0028】次に図6について説明すると、同図は、本
発明に従って構成したSPリストの一例を示したもので
あり、同図では、このSPリストの全体に対して、引用
符号210を付してある。このSPリスト210は複数
本の縦列212を含んでおり、それら縦列212の本数
は、SPベクトル(図3参照)に発生し得る「アクセス
検出合計回数」の数値の種類数に対応させてある。例え
ば、SPベクトルのビット数を8ビットにしてある場合
には、このSPリストを、9本の縦列欄を有するものと
すれば良い(この「9本」という本数は、SPベクトル
の中の履歴情報のうちの「アクセス検出合計回数」が取
り得る全ての数値(即ち、0、1、2、3、4、5、
6、7、及び8)の種類数に対応させたものである)。
【0029】SPリスト210の複数本の縦列212に
は、アイドル・リスト200(図5参照)を構成してい
るデータ構造体202と同じデータ構造体202を入れ
るようにする。ただし、このSPリスト210には、ア
イドル・リスト200の中の全てのデータ構造体を入れ
るのではなく、そのうちの一部だけを入れるようにす
る。より詳しくは、このSPリスト210には、アイド
ル・リスト200の中のデータ構造体202のうち、ア
イドル・リスト200のLRU端206から数えて所定
個数までのデータ構造体だけを入れるようにする。その
具体例を挙げるならば、例えば、LRU端206から数
えて100個目までのデータ構造体202だけをこのS
Pリスト210の中に入れるものと予め定めておくよう
にすれば良い。あるデータ構造体202をこのSPリス
ト210に入れる際には、それに先立って、先ず、その
データ構造体202に対応したSPベクトルの中に存在
している「アクセス有り」のビット(即ち「1」にセッ
トされているビット)の合計数を、既に説明したよう
に、例えばデータ・インター・テーブル80(図4参
照)の中の「アクセス検出合計回数」88を参照するこ
とによって調べるようにする。そして、そのSPベクト
ルの履歴情報の中に、アクセスが検出されたことが1回
もないことが記録されていたならば、そのデータ構造体
202を、引用符号214で示したように「0」の縦列
の中の最上段に入れる。また、そのSPベクトルの履歴
情報の中に、そのページに対するアクセスが検出された
回数が、1回であることが記録されていたならば、その
データ構造体を、引用符号216で示したように「1」
の縦列欄の最上段に入れるようにし、その他の場合もこ
れらと同様にする。
【0030】SPリスト210の中に入れたデータ構造
体202の個数が、上述の所定個数に達したならば、い
ずれかのページを物理メモリからスワップ・アウトすべ
きであるとの決定がなされるまでは、それ以上のアクセ
スは行なわれなくなる。このようになったならば、経時
管理機構が自動的に、SPリスト210の最左端の縦列
欄から先に、しかも同じ縦列の中では最下段のデータ構
造体から先にして1つのデータ構造体202を選択し、
その選択したデータ構造体202に対応するページを物
理メモリからスワップ・アウトする。このページの選択
の仕方によれば、例えば図6に示した具体例では、引用
符号218で示した位置にあるデータ構造体202が最
初に選択される。更に多くのページをスワップ・アウト
する必要がある場合には、経時管理機構は、続いて、最
左端の縦列の中の下から2番目のデータ構造体を選択
し、以下同様にして、充分な数のページをスワップ・ア
ウトしてしまうまで、この選択及びスワップ・アウトの
処理を続行する。
【0031】あるページが物理メモリからスワップ・ア
ウトされたために、SPリスト210の定数枠に空き枠
が生じたときには、このSPリスト210へ入れられず
にアイドル・リスト200(図5参照)の中に残されて
いたデータ構造体202のうちの、最右端のデータ構造
体を、その空き枠に充当するようにする。また、こうし
てSPリスト210に新たにデータ構造体を追加する際
には、そのデータ構造体を、そのデータ構造体のアクセ
ス検出回数に対応した縦列の、最上段に位置付けるよう
にする。こうしてデータ構造体を追加するようにしてい
るため、このSPリスト210の中のデータ構造体20
2の個数は、経時管理機構が必要に応じてそれらデータ
構造体を利用するのに適した個数に常に維持されてい
る。
【0032】本発明は、物理メモリ内のスペースが必要
になったために、経時管理機構がスワップ・アウトすべ
きページを選択する際に、より使用度が低いことが予期
されるページが選択されるようにし得るものである。即
ち、本発明では、SPベクトルを作成するようにしてい
るため、ページの使用度に関する履歴情報として、従来
利用可能であった履歴情報と比べて、より詳細な履歴情
報が利用可能になっている。また、SPベクトルと関連
させて使用するSPリストを作成するようにしているた
め、SPベクトルの中の「アクセス有り」ビットの個数
を数えるために時間を費消することもなく、また、単
に、アイドル・リストの中に最も以前から存在している
エントリを選択するという単純な方法を採ることもな
く、経時管理機構が、スワップ・アウトすべき適切なペ
ージを容易に判定し得るようになっている。従って、必
要とされているページを外部記憶装置の中から見つけ出
して物理メモリへ戻さねばならない場合に発生するフォ
ールトの、発生確率が低減されており、それによって、
システムの全体効率が改善されている。
【0033】次に図7について説明すると、同図は、本
発明に係るデータ処理システムの一例をブロック図で示
したものであり、同図では、このデータ処理システムの
全体に対して引用符号100を付してある。このデータ
処理システム100は処理装置102を含んでおり、処
理装置102は、中央処理装置(CPU)104とメモ
リ106とを含んでいる。処理装置102には、補助記
憶装置として、ハードディスク装置108とフロッピー
ディスク装置であるデイスケット装置110とが接続さ
れている。装置110には、本発明をこのシステム10
0にインプリメントするためのコンピュータ・プログラ
ムのコードを記録した、フロッピー・ディスク112が
装填される。また、このデータ処理システム100は、
ユーザ・インターフェース用のハードウェアを備えてお
り、このユーザ・インターフェース用のハードウェアに
は、ユーザが処理装置102へ入力を行なうためのマウ
ス114及びキーボード116と、ユーザに視覚データ
を提供するためのディスプレイ118とが含まれてい
る。このデータ処理システム100は、更に、プリンタ
120を含んでいるシステムとすることもできる。
【0034】次に図8について説明すると、同図は、経
時管理機構がページ・テーブル・エントリをスキャンす
るときの、本発明の一実施例の処理動作を図示したフロ
ーチャートである。経時管理機構はブロック140で動
作を開始し、続いてブロック142において、各々のペ
ージ・テーブル・エントリの中のアクセス有無(アクセ
ス/非アクセス)表示ビットを読み取る。経時管理機構
は続いて、ブロック144において、チェック対象とし
ているページに対応したSPベクトルの現在値を読み取
る。経時管理機構は続いて、ブロック146において、
データ・インター・テーブルを参照し、ブロック142
で判定したアクセス有無表示フラグの状態に応じたSP
ベクトルの適切な更新後の表示データを、このデータ・
インター・テーブルから得る。ブロック148では、ブ
ロック142で判定したフラグの状態に基づいて、そし
て、ブロック146でデータ・インター・テーブルから
得た適切な更新後の表示データによって、SPベクトル
を更新する。続いて経時管理機構は、判断ブロック15
0において、全てのフラグをスキャンし終えたか否かを
判断する。この判断ブロック150の判断結果が「N
O」であったならば、経時管理機構は、ブロック142
へリターンして、更に次のアクセス有無表示フラグの読
み取りを行なう。一方、判断ブロック150の判断結果
が「YES」であったならば、経時管理機構は、この経
時管理サイクルを終了する。
【0035】次に図9について説明すると、同図は、経
時管理機構が、ページ・アウトすべきページを判定する
ときの、本発明の一実施例の処理動作を示したフローチ
ャートである。この処理動作はブロック160で開始
し、続いて判断ブロック162において、SPリストの
複数本の縦列のうち、アクセス検出回数「0」回の縦列
中に、いずれかの表示データ(この表示データとはペー
ジを表示するデータであり、上述のデータ構造体202
である)が入れられているか否かを判断する。この判断
ブロック162の判断結果が「YES」であったなら
ば、ブロック164において、その表示データに対応し
たページを、スワップ・アウトすべきページとして選択
する。一方、判断ブロック162の判断結果が「NO」
であったならば、判断ブロック166において、SPリ
ストの複数本の縦列のうち、アクセス検出回数「1」回
の縦列欄の中に、いずれかの表示データが入れられてい
るか否かを判断する。この判断ブロック166の判断結
果が「YES」であったならば、ブロック164におい
て、その表示データに対応したページを、スワップ・ア
ウトすべきページとして選択する。一方、判断ブロック
166の判断結果が「NO」であったならば、判断ブロ
ック168において、SPリストの複数本の縦列のう
ち、アクセス検出回数「2」回の縦列の中に、いずれか
の表示データが入れられているか否かを判断する。尚、
この図9に示した判断ブロック168は、SPリストに
含まれている縦列の本数に対応した複数の「IF」判断
ブロックから成る、一連の判断ブロックの列を表わして
いる。即ち、図9には図示していないが、それら一連の
判断ブロックの夫々において、上で判断ブロック162
及び166に関して説明したのと同様にして「YES」
または「NO」の判断を行ない、しかも、それらのうち
いずれかの判断ブロックにおいて「YES」の判断結果
が得られるまで、その判断を次々と行なうようにする。
【0036】判断ブロック162、166、または16
8のいずれかで「YES」の判断結果が得られたなら
ば、従って、あるページが、スワップ・アウトすべきペ
ージとして選択されたならば、ブロック170におい
て、アイドル・リストの中の表示データのうち、既にS
Pリストへ移動されている表示データの直前の表示デー
タを、SPリストの中へ移動させる。続いて、判断ブロ
ック172において、物理メモリ内のスペースが更に多
く必要とされているか否かを、従って、更に多くのペー
ジをスワップ・アウトする必要があるか否かを判断す
る。この判断ブロック172の判断結果が「NO」であ
ったならば、ブロック174において、この処理動作を
停止する。一方、ブロック172の判断結果が「YE
S」であったならば、再び判断ブロック162に戻り、
上で説明したようにして、アクセス検出回数「0」回の
縦列を調べるようにする。
【0037】
【発明の効果】以上から分かるように、本発明を採用す
ることによって、より効率的なメモリ管理を行なうこと
ができる。先ず、各ページ・テーブル・エントリ中の単
一ビットのアクセス有無表示フラグに基づいて処理を行
なうのではなく、マルチ・ビットのベクトルを生成し
て、このベクトルの中に各ページの使用状況の履歴情報
を維持するようにしている。そして、このベクトルの中
の履歴情報のうちのアクセス検出合計回数に基づいて、
夫々のページを表示する表示データを、SPリストの中
に配置するようにしている。従って、いずれかのページ
を物理メモリから外部記憶装置へスワップ・アウトする
必要が生じる以前に、どのページを除去すれば良いかに
ついての、より信頼性の高い選択結果が得られており、
換言すれば、物理メモリー内にスペースを確保する必要
が生じたときには、既に、ページ・アウトすべきページ
が判定されているのである。このことによって、経時管
理機構がスワップ・アウトするページが、他のページよ
りも使用頻度の低いページであることの確率が高くなっ
ており、ひいてはフォールトの発生率が、従来可能であ
った水準よりも更に低く抑えられているのである。
【図面の簡単な説明】
【図1】仮想メモリー、物理メモリー、及び外部記憶装
置の相互関係を表わした模式図である。
【図2】従来例に係る、ページ・テーブル及びページ・
テーブル・エントリを示した模式図である。
【図3】本発明に係る、SPベクトルのレポジトリを示
した模式図である。
【図4】本発明に係る、SPベクトルのページ履歴情報
の解釈を助けるために作成するテーブルを示した説明図
である。
【図5】アイドル・リストの一例を示した模式図であ
る。
【図6】本発明に係る、SPリストの一例を示した模式
図である。
【図7】本発明に係る、データ処理システムの一例を示
した模式図である。
【図8】本発明に係る、ページ・テーブル・エントリを
スキャンするときの経時管理機構の動作の一例を示した
フローチャートである。
【図9】本発明に係る、ページ・アウトすべきページを
判定するときの処理動作の一例を示したフローチャート
である。
【符号の説明】
18 ページ 32 ページ・テーブル・エントリ 38 アクセス有無(アクセス/非アクセス)表示フラ
グ 52、54 SPベクトル 56〜63 SPベクトルのビット 200 アイドル・リスト 202 データ構造体(表示データ) 210 SPリスト
フロントページの続き (56)参考文献 特開 昭63−129441(JP,A) 特開 昭63−233451(JP,A) 特開 平4−195566(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 12/00 - 12/06 G06F 12/12

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムにおけるメモリ
    管理方法であって、該コンピュータ・システムは、経時
    管理機構を含んでいるページ管理機構を採用しており、
    該ページ管理機構は、プロセスの各ページのマッピング
    とロケーション識別とを行なうための、ページ・テーブ
    ルと該ページ・テーブル中の複数のページ・テーブル・
    エントリとを備えた形式のページ管理機構である、メモ
    リ管理方法において、 複数の経時管理サイクルに亙る各ページ・テーブル中の
    各ページ・テーブル・エントリへのアクセスの履歴情報
    を、複数のビットを包含しているビット・ベクトルに記
    録する、履歴情報記録ステップと、複数の列を有し、該列が最小アクセス検出回数から最多
    アクセス検出回数までを表すスワップ(SP)リストの
    中に、所定個数の前記ベクトルを表示する表示データ
    を、該ベクトルから求められるアクセス検出回数に基づ
    いて配置し、 前記経時管理機構が該SPリストをアクセ
    スすることによって、前記アクセスの検出が最も少ない
    ページを該経時管理機構がページ・アウトできるように
    する、SPリスト内ベクトル配置ステップとを含んでい
    ることを特徴とするメモリ管理方法。
  2. 【請求項2】 前記所定個数の前記ベクトルを、アイド
    ル・リスト中の最も以前に使用された側の端部から取り
    出すステップを更に含んでいることを特徴とする請求項
    1記載の方法。
  3. 【請求項3】 前記SPリストからエントリを除去し、
    且つ、その除去したエントリに対応したページを物理メ
    モリから除去し、その際に、前記最少アクセス検出回数
    に対応した縦列中の最も以前から存在しているエントリ
    を先にし、前記最多アクセス検出回数に対応した縦列中
    の最も新しいエントリを後にするという順序で除去して
    行くようにするステップを更に含んでいることを特徴と
    する請求項1記載の方法。
  4. 【請求項4】 前記ベクトルの解釈を補助するための解
    釈補助テーブルを作成し、その際に、該解釈補助テーブ
    ルが、 あり得る全てのアクセス・パターンを示した欄と、 それらアクセス・パターンが、アクセス有りの記録を1
    つ追加した後にどのような形に変化するかを示した欄
    と、 それらアクセス・パターンが、アクセス無しの記録を1
    つ追加した後にどのような形に変化するかを示した欄
    と、 それらアクセス・パターンの各々に対応した、前記アク
    セス有りの記録の合計回数を示した欄とを備えているよ
    うにするステップを更に含んでいることを特徴とする請
    求項3記載の方法。
  5. 【請求項5】 コンピュータ・システムにおけるメモリ
    管理を補助するための装置であって、該コンピュータ・
    システムは、経時管理機構を含んでいるページ管理機構
    を採用しており、該ページ管理機構は、プロセスの各ペ
    ージのマッピングとロケーション識別とを行なうため
    の、ページ・テーブルと該ページ・テーブル中の複数の
    ページ・テーブル・エントリとを備えた形式のページ管
    理機構である、メモリ管理装置において、 複数の経時管理サイクルに亙る各ページ・テーブルの中
    の各ページ・テーブル・エントリへのアクセスの履歴情
    報を記録するための、複数のビットを包含しているビッ
    ト・ベクトルと、 複数の列を有し、該列が最小アクセス検出回数から最多
    アクセス検出回数までを表すスワップ(SP)リストで
    あって、所定個数の前記ベクトルを表示する表示データ
    が、該ベクトルから求められるアクセス検出回数に基づ
    いて配置され、前記経時管理機構が該SPリストをアク
    セスすることによって、前記アクセスの検出回数が最も
    少ないページを該経時管理機構がページ・アウトできる
    ようにしたSPリストとを備えたことを特徴とする装
    置。
  6. 【請求項6】 メモリ管理システムを備えたコンピュー
    タ・システムであって、該メモリ管理システムは、経時
    管理機構を含んでいるページ管理機構を採用しており、
    該ページ管理機構は、プロセスの各ページのマッピング
    とロケーション識別とを行なうための、ページ・テーブ
    ルと該ページ・テーブル中の複数のページ・テーブル・
    エントリとを備えた形式のページ管理機構である、コン
    ピュー タ・システムにおいて、 複数の経時管理サイクルに亙る各ページ・テーブル中の
    各ページ・テーブル・エントリへのアクセスの履歴情報
    を記録するための、複数のビットを包含しているビット
    ・ベクトルと、 複数の列を有し、該列が最小アクセス検出回数から最多
    アクセス検出回数までを表すスワップ(SP)リストの
    中に、所定個数の前記ベクトルを表示する表示データ
    を、該ベクトルから求められるアクセス検出回数に基づ
    いて配置し、前記経時管理機構が該SPリストをアクセ
    スすることによって、前記アクセスの検出が最も少ない
    ページを該経時管理機構がページ・アウトできるように
    する 、SPリスト内ベクトル配置手段とを備えたことを
    特徴とするコンピュータ・システム。
  7. 【請求項7】 前記所定個数の前記ベクトルを、アイド
    ル・リストの中の最も以前に使用された側の端部から取
    り出す手段を更に備えたことを特徴とする請求項6記載
    のコンピュータ・システム。
  8. 【請求項8】 前記SPリストからエントリを除去し、
    且つ、その除去したエントリに対応したページを物理メ
    モリから除去し、その際に、前記最少アクセス検出回数
    に対応した縦列の中の最も以前から存在しているエント
    リを先にし、前記最多アクセス検出回数に対応した縦列
    の中の最も新しいエントリを後にするという順序で除去
    して行くようにする手段を更に備えたことを特徴とする
    請求項6記載のコンピュータ・システム。
  9. 【請求項9】 前記ベクトルの解釈を補助するための解
    釈補助テーブルを作成し、その際に、該解釈補助テーブ
    ルが、 あり得る全てのアクセス・パターンを示した欄と、 それらアクセス・パターンが、アクセス有りの記録を1
    つ追加した後にどのような形に変化するかを示した欄
    と、 それらアクセス・パターンが、アクセス無しの記録を1
    つ追加した後にどのような形に変化するかを示した欄
    と、 それらアクセス・パターンの各々に対応した、前記アク
    セス有りの記録の合計回数を示した欄と を備えているよ
    うにする手段を更に備えたことを特徴とする請求項6記
    載のコンピュータ・システム。
JP5025638A 1992-04-22 1993-02-15 コンピュータ・システムにおけるメモリ管理方法及び装置 Expired - Lifetime JP2856620B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/872,733 US5493663A (en) 1992-04-22 1992-04-22 Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses
US872733 1992-04-22

Publications (2)

Publication Number Publication Date
JPH0689221A JPH0689221A (ja) 1994-03-29
JP2856620B2 true JP2856620B2 (ja) 1999-02-10

Family

ID=25360205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5025638A Expired - Lifetime JP2856620B2 (ja) 1992-04-22 1993-02-15 コンピュータ・システムにおけるメモリ管理方法及び装置

Country Status (2)

Country Link
US (1) US5493663A (ja)
JP (1) JP2856620B2 (ja)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619675A (en) * 1994-06-14 1997-04-08 Storage Technology Corporation Method and apparatus for cache memory management using a two level scheme including a bit mapped cache buffer history table and circular cache buffer list
US5555399A (en) * 1994-07-07 1996-09-10 International Business Machines Corporation Dynamic idle list size processing in a virtual memory management operating system
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
US5860116A (en) * 1996-12-11 1999-01-12 Ncr Corporation Memory page location control for multiple memory-multiple processor system
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6052134A (en) * 1997-12-22 2000-04-18 Compaq Computer Corp. Memory controller and method for dynamic page management
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
JP3444346B2 (ja) * 1999-01-04 2003-09-08 日本電気株式会社 仮想メモリ管理方式
US6496912B1 (en) * 1999-03-25 2002-12-17 Microsoft Corporation System, method, and software for memory management with intelligent trimming of pages of working sets
JP2003505753A (ja) * 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
US6609177B1 (en) 1999-11-12 2003-08-19 Maxtor Corporation Method and apparatus for extending cache history
US6832295B1 (en) 2000-04-26 2004-12-14 Ncr Corporation Methods and systems for extending an application's address space
US6738865B1 (en) 2000-06-09 2004-05-18 International Business Machines Corporation Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data
ATE476700T1 (de) 2000-06-13 2010-08-15 Richter Thomas Pipeline ct-protokolle und -kommunikation
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US7844796B2 (en) * 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) * 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
AU2002347560A1 (en) * 2001-06-20 2003-01-02 Pact Xpp Technologies Ag Data processing method
US7434191B2 (en) * 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
WO2003071418A2 (en) * 2002-01-18 2003-08-28 Pact Xpp Technologies Ag Method and device for partitioning large computer programs
WO2003060747A2 (de) * 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
ATE538439T1 (de) * 2002-02-18 2012-01-15 Richter Thomas Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US20060075211A1 (en) * 2002-03-21 2006-04-06 Martin Vorbach Method and device for data processing
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
WO2004088502A2 (de) * 2003-04-04 2004-10-14 Pact Xpp Technologies Ag Verfahren und vorrichtung für die datenverarbeitung
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) * 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US6938120B2 (en) * 2002-08-29 2005-08-30 International Business Machines Corporation Apparatus and method to form one or more premigration aggregates comprising a plurality of least recently accessed virtual volumes
US6895466B2 (en) * 2002-08-29 2005-05-17 International Business Machines Corporation Apparatus and method to assign pseudotime attributes to one or more logical volumes
JP4388895B2 (ja) * 2002-09-06 2009-12-24 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト リコンフィギュアラブルなシーケンサ構造
CN1329815C (zh) * 2002-10-31 2007-08-01 中兴通讯股份有限公司 一种存储表更新方法
JP3808837B2 (ja) 2003-03-11 2006-08-16 株式会社東芝 キャッシュメモリーシステム
EP1676208A2 (en) * 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
WO2007082730A1 (de) * 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US7702843B1 (en) * 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
US8949295B2 (en) 2006-09-21 2015-02-03 Vmware, Inc. Cooperative memory resource management via application-level balloon
US8225053B1 (en) * 2007-09-29 2012-07-17 Symantec Corporation Method and apparatus for mitigating performance impact of background processing on interactive application
US20090132769A1 (en) * 2007-11-19 2009-05-21 Microsoft Corporation Statistical counting for memory hierarchy optimization
US20110173596A1 (en) * 2007-11-28 2011-07-14 Martin Vorbach Method for facilitating compilation of high-level code for varying architectures
WO2009071329A1 (en) * 2007-12-07 2009-06-11 Pact Xpp Technologies Ag Using function calls as compiler directives
US8769221B2 (en) * 2008-01-04 2014-07-01 International Business Machines Corporation Preemptive page eviction
US8239609B2 (en) * 2009-10-23 2012-08-07 Sap Ag Leveraging memory similarity during live migrations
JP2011118469A (ja) * 2009-11-30 2011-06-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US8583875B1 (en) 2010-07-13 2013-11-12 Vmware, Inc. Efficient readable ballooning of guest memory by backing balloon pages with a shared page
US8656397B2 (en) 2010-03-30 2014-02-18 Red Hat Israel, Ltd. Migrating groups of threads across NUMA nodes based on remote page access frequency
JP5915235B2 (ja) * 2012-02-15 2016-05-11 日本電気株式会社 情報処理装置、及び、情報処理方法
KR101924022B1 (ko) 2012-04-03 2019-02-22 삼성전자주식회사 메모리 시스템 및 그것의 페이지 교체 방법
US10152409B2 (en) 2012-04-30 2018-12-11 Vmware, Inc. Hybrid in-heap out-of-heap ballooning for java virtual machines
US9852054B2 (en) 2012-04-30 2017-12-26 Vmware, Inc. Elastic caching for Java virtual machines
US9015203B2 (en) 2012-05-31 2015-04-21 Vmware, Inc. Balloon object feedback for Java Virtual Machines
US9940228B2 (en) 2012-06-14 2018-04-10 Vmware, Inc. Proactive memory reclamation for java virtual machines
US10114662B2 (en) 2013-02-26 2018-10-30 Red Hat Israel, Ltd. Updating processor topology information for virtual machines
US10061622B2 (en) 2013-02-26 2018-08-28 Red Hat Israel, Ltd. Updating memory topology information for virtual machines
US9811549B2 (en) * 2014-11-25 2017-11-07 Sap Se Applying a database transaction log record directly to a database table container
US10884950B2 (en) 2016-05-16 2021-01-05 International Business Machines Corporation Importance based page replacement
US10037173B2 (en) * 2016-08-12 2018-07-31 Google Llc Hybrid memory management
US10152427B2 (en) 2016-08-12 2018-12-11 Google Llc Hybrid memory management
US10303612B2 (en) * 2016-12-30 2019-05-28 Intel Corporation Power and performance-efficient cache design for a memory encryption engine
US20240104023A1 (en) * 2022-09-26 2024-03-28 Advanced Micro Devices, Inc. A/D Bit Storage, Processing, and Modes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4035778A (en) * 1975-11-17 1977-07-12 International Business Machines Corporation Apparatus for assigning space in a working memory as a function of the history of usage
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4084230A (en) * 1976-11-29 1978-04-11 International Business Machines Corporation Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
JPS56169281A (en) * 1980-06-02 1981-12-25 Hitachi Ltd Data processor
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4597041A (en) * 1982-11-15 1986-06-24 Data General Corp. Method and apparatus for enhancing the operation of a data processing system
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
JPS63129441A (ja) * 1986-11-19 1988-06-01 Nec Corp 仮想記憶管理装置
US4967353A (en) * 1987-02-25 1990-10-30 International Business Machines Corporation System for periodically reallocating page frames in memory based upon non-usage within a time period or after being allocated
JPH0652512B2 (ja) * 1987-03-20 1994-07-06 日本電気株式会社 主記憶ペ−ジリプレ−ス方式
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5063499A (en) * 1989-01-09 1991-11-05 Connectix, Inc. Method for a correlating virtual memory systems by redirecting access for used stock instead of supervisor stock during normal supervisor mode processing
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US5237673A (en) * 1991-03-20 1993-08-17 Digital Equipment Corporation Memory management method for coupled memory multiprocessor systems

Also Published As

Publication number Publication date
US5493663A (en) 1996-02-20
JPH0689221A (ja) 1994-03-29

Similar Documents

Publication Publication Date Title
JP2856620B2 (ja) コンピュータ・システムにおけるメモリ管理方法及び装置
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
US5317705A (en) Apparatus and method for TLB purge reduction in a multi-level machine system
US4410941A (en) Computer having an indexed local ram to store previously translated virtual addresses
US7065617B2 (en) Efficient write-watch mechanism useful for garbage collection in a computer system
US6067608A (en) High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
EP1010080B1 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
JP2635058B2 (ja) アドレス変換方式
EP0690385A1 (en) Method and apparatus for managing memory in a computer system
CN110196757B (zh) 虚拟机的tlb填写方法、装置及存储介质
TWI273431B (en) Apparatus for the plurality of hosts to share a collection of memory sectors, and method and program storage device for managing memory sectors used by a host
JP3439167B2 (ja) コンピュータ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置
JP2528604B2 (ja) マルチビット・ベクトル履歴のリスト表示を利用するメモリ管理方法および装置
US5924127A (en) Address translation buffer system and method for invalidating address translation buffer, the address translation buffer partitioned into zones according to a computer attribute
EP0411788A2 (en) External sorting using virtual storage
US5388244A (en) Controls for initial diversion of page-frame logical content as part of dynamic virtual-to-real translation of a virtual page address
US20090006505A1 (en) System and Method for Managing Memory
JPS6298441A (ja) 情報処理装置による記憶管理機構
JPH0689222A (ja) コンピュータ・システムにおけるメモリ管理方法及び装置
JPH0769867B2 (ja) 仮想記憶システムのためのディレクトリ索引テーブル論理装置
US5423017A (en) Method of and apparatus for increasing efficiency of ager
CA1284390C (en) Apparatus and method for a page frame replacement in a data processing system having virtual memory addressing
US5765210A (en) Allocation of real storage for hardware descriptors within virtual memory that are associated with on-line storage increments
JPH0695970A (ja) ページ・テーブル項目の効率的処理方法及び装置
US8614799B2 (en) Memory paging