JPH08161230A - オンデマンドページングにおける先読み方法 - Google Patents

オンデマンドページングにおける先読み方法

Info

Publication number
JPH08161230A
JPH08161230A JP6300501A JP30050194A JPH08161230A JP H08161230 A JPH08161230 A JP H08161230A JP 6300501 A JP6300501 A JP 6300501A JP 30050194 A JP30050194 A JP 30050194A JP H08161230 A JPH08161230 A JP H08161230A
Authority
JP
Japan
Prior art keywords
page
fault
storage device
history information
pages
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
JP6300501A
Other languages
English (en)
Inventor
Takurou Kitayama
卓郎 喜多山
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP6300501A priority Critical patent/JPH08161230A/ja
Publication of JPH08161230A publication Critical patent/JPH08161230A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 非連続的にページを参照するプログラム実行
の際のページフォールト発生率を低下させ、処理速度の
向上を図る。 【構成】 実行中プログラム1が主記憶装置2をアクセ
スし、ページフォールトが発生するとそのページを含む
数ページが読み出される。この場合に、過去にそのペー
ジの次に参照されたページをフォールト履歴情報8の中
に格納しておく。従って、ページフォールトが発生した
ときに、フォールト履歴情報8が存在する場合にはその
順にページを先読みし、その他の場合には2次記憶装置
に格納された順にページを先読みする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、いわゆるオンデマンド
ページング方式を用いたオペレーティングシステムにお
いて、ページフォールトを生じた際のページの先読みを
効率的に行うオンデマンドページングにおける先読み方
法に関する。
【0002】
【従来の技術】情報処理装置において、アプリケーショ
ンプログラムが各種の処理を実行する場合、プログラム
やデータは主記憶装置に格納される。しかしながら、主
記憶装置はハードウェアの構成により限定されたアドレ
ス空間しか持たない。これに比し、アプリケーションプ
ログラムを大きなものにすると、主記憶装置内にアプリ
ケーションプログラム全てを格納することができなくな
る。そこで、従来、仮想記憶方式によって、ハードウェ
ア量に制限されない自由な仮想アドレス空間を設定する
ようにしている。このような方式では、実行中のプログ
ラムは主記憶装置の物理アドレス空間に関わらず、より
広い仮想アドレス空間をアクセスし、必要とするページ
が存在しない場合には、2次記憶装置から該当するペー
ジを主記憶装置に転送する。このような方式をオンデマ
ンドページング方式と呼び、情報処理装置のオペレーテ
ィングシステムに広く普及している。
【0003】
【発明が解決しようとする課題】ところで、ページフォ
ールトが発生した場合、該当するページを2次記憶装置
から主記憶装置に転送するだけでなく、そのページに続
く数ページを一括して主記憶装置に転送し、ページフォ
ールトが頻繁に発生するのを防止する方法がある。これ
をページの先読みと呼んでいるが、実際のプログラムで
は同一の処理の繰り返しや分岐等が数多く存在し、必ず
しも2次記憶装置に格納されたページ順(仮想アドレス
順)に従って処理が進められるとは限らない。また、デ
ータ領域等は格納順を無視してアクセスされることが多
く、非連続的なページ参照が多く発生する。従って、従
来のように連続的なページの参照を考慮したページ先読
み処理は必ずしもプログラムの高速処理に有効に作用す
るとは限らないといった問題があった。
【0004】
【課題を解決するための手段】本発明は上記の点を解決
するため次の構成を採用する。この方法は、主記憶装置
をアクセスし、主記憶装置に格納されていないページへ
のアクセスがあったときページフォールトを発生させ
て、該当するページを含む一群のページを2次記憶装置
から主記憶装置へ転送する先読みを行う場合において、
予め設定されたフォールト履歴情報が存在する場合に
は、フォールト履歴情報に表された転送ページ順に従っ
て一群のページを先読みして2次記憶装置から主記憶装
置へ転送し、その他の場合には、ページフォールトを発
生したページと、そのページに連続して2次記憶装置に
格納されたページ順に先読みして、主記憶装置に転送す
る。
【0005】なお、発生したページフォールトに対し
て、2次記憶装置に格納された該当するページととも
に、他の任意のページを先読みして転送したにも関わら
ず、先読みしたページが参照されないままページフォー
ルトが発生したとき、該当するページと、その直後に参
照されたページとを、順に連続して先読みされるべきペ
ージとして対応付けて、フォールト履歴情報を生成する
とよい。
【0006】また、実行されるプログラムを予め解析
し、仮想アドレス順と異なる不連続なページ参照が行わ
れる場合をリストアップしてテーブル化し、該当するペ
ージ毎に次に読み出すべきページを対応付けたフォール
ト履歴情報を生成してもよい。
【0007】
【作用】実行中プログラムが主記憶装置をアクセスし、
ページフォールトが発生するとそのページを含む数ペー
ジが読み出される。この場合に、過去にそのページの次
に参照されたページをフォールト履歴情報の中に格納し
ておく。従って、ページフォールトが発生したときに、
フォールト履歴情報が存在する場合にはその順にページ
を先読みし、その他の場合には2次記憶装置に格納され
た順にページを先読みする。これにより、非連続的にペ
ージを参照するプログラム等のページフォールト発生率
を低下させ、処理速度の向上を図る。
【0008】
【実施例】以下、本発明を図の実施例を用いて詳細に説
明する。図1は、本発明のオンデマンドページングにお
ける先読み方法実施のための装置の機能ブロック図であ
る。図において、実行中プログラム1は主記憶装置2に
格納されたプログラムやデータを参照しながら一定の処
理を実行する。この主記憶装置2には2次記憶装置3に
格納されたプログラムやデータの一部が写像される。実
行中プログラム1によるアクセスでページフォールトが
発生したとき、所定のページングを制御するためにオン
デマンドページング制御部4が設けられる。このオンデ
マンドページング制御部4には、ページフォールト管理
部5、ページフォールト履歴保持部6、先読み管理部7
が設けられている。
【0009】ページフォールト管理部5は実行中プログ
ラム1がページフォールトを発生した場合に、後で説明
するページングや先読み処理を実行させるための制御部
分である。ページフォールト履歴保持部6は、本発明に
おいて新たに設けられたもので、過去に発生したページ
フォールトの内容に従って、あるページが参照された場
合に、その次に参照されたページを検出し、一定のフォ
ーマットで格納しておく部分である。先読み管理部7は
ページフォールトが発生した場合、2次記憶装置3から
ページフォールトが発生したページのみならずその次に
参照されると予測されるページを数ページ一括して主記
憶装置2に転送する制御を行う部分である。
【0010】図2に、仮想記憶方式とページングの説明
図を示す。この図に示すように、主記憶装置2によって
設定される物理アドレス空間2Aに対し、実行中プログ
ラム1の参照するプログラムやデータが大きいとき、実
行中プログラム1は仮想アドレス空間3Aを想定してア
クセスし、主記憶装置2に参照すべきページが存在しな
い場合、ページフォールトを発生させる。即ち、仮想ア
ドレス空間3Aの主記憶装置2に写像されていない部分
がアクセスされた場合、ページフォールトが発生する。
そして、その部分のプログラムやデータは、図1に示す
2次記憶装置3に格納されており、これが主記憶装置2
に転送される。この場合に、オンデマンドページング方
式ではページ単位でプログラムやデータが主記憶装置2
に転送され、更に本発明の場合、先読み方式を採用する
ことにより所定の数ページが一括して転送される。
【0011】図3に、フォールト履歴情報の参照動作を
示す。この図の右側には仮想アドレス空間の各ページに
それぞれ一連番号を1から11まで付したものを表示し
た。また、左側にはフォールト履歴情報の内容を示し
た。このフォールト履歴情報の左側の番号は右側の番号
のページを参照する直前に参照されていたページ番号で
ある。即ち、例えばこの例では、1ページの次に2ペー
ジが参照され、2ページの次には4ページが参照されて
いる。このようなフォールト履歴情報は、実際にプログ
ラムを実行させ、その参照順を検出して記録することに
より生成される。また、あるいは、予め実行されるプロ
グラムを解析し、仮想アドレス順と異なる不連続なペー
ジ参照が行われる場合をリストアップしてマニュアルで
作成する。
【0012】例えば、この例では、仮想アドレス空間の
第4ページを参照した場合にページフォールトが発生し
たものとする。通常の場合には、例えばこの第4ページ
と共に第5ページと第6ページが先読みされて主記憶装
置に転送される。一方、本発明においては、ここでフォ
ールト履歴情報を参照する。フォールト履歴情報によれ
ば第4ページの次は第10ページが参照されている。ま
た、第10ページの次は第8ページが参照されている。
従って、本発明においては、第4ページ、第10ペー
ジ、第8ページの順に先読みを行う。このようにすれ
ば、過去の履歴等から考慮した最適な順にページが参照
され、ページフォールトの発生率が十分に低く抑えられ
る。
【0013】図4には、このようなフォールト履歴情報
の更新方法説明図を示す。例えば、過去のプログラムの
実行履歴によって、このフォールト履歴情報を生成する
場合においては、最初は従来通り仮想アドレス順に4、
5、6ページというようにページを先読みし、主記憶装
置に転送する。しかしながら、その後再びページフォー
ルトが発生した場合、その経過を認識して先に説明した
ようなフォールト履歴情報を得る。
【0014】例えば、この図に示すように、第4ページ
がアクセスされてページフォールトF1が発生したと
き、第4ページと第5ページと第6ページを先読みし、
主記憶装置に転送する。このとき、第4ページの次にフ
ェッチされた第5ページ、第6ページについてはページ
テーブルエントリーの更新を行わない。即ち、第4ペー
ジの参照中は、その状態を保持しておく。そして、その
次に第5ページあるいは第6ページが参照された場合は
よいが、第10ページが参照された場合には、ページフ
ォールトF2が発生する。ここで、第10ページと第1
1、第12ページが再び通常の手順で先読みされる。こ
のとき、直前まで保持していたページテーブルエントリ
ーを取り出し、第4ページの次に第10ページが参照さ
れたことを検出する。その結果がフォールト履歴情報と
して図1に示すページフォールト履歴保持部6に格納さ
れる。
【0015】同様にして、第10ページ、第11ページ
及び第12ページが転送された後、再び第8ページにつ
いてページフォールトが発生すると、第10ページの後
に第8ページが参照されたことが検出され、同様にして
ページフォールト履歴保持部に格納される。こうして、
フォールト履歴情報が次々に更新され、効率のよいペー
ジの先読み処理が実行される。
【0016】一方、予めプログラムを解析してフォール
ト情報を生成して準備しておくこともできる。この場
合、これは図1に示したファイル管理部9によって処理
される。即ち、ファイル管理部9に予め用意されたフォ
ールト履歴情報がプログラム実行直前に初期値としてペ
ージフォールト履歴保持部6に読み込まれる。これによ
って、プログラム実行開始直後から、本発明による効率
的なページの先読み処理が可能となる。なお、プログラ
ムの実行に従って、図4を用いて説明したようにフォー
ルト履歴情報が更新され、その結果がプログラム終了後
再びファイル管理部9に格納される。これによって、フ
ァイル管理部9に格納されたフォールト履歴情報がプロ
グラムの実行を繰り返す度に最適化されより効率的な処
理が可能となる。なお、このようなフォールト履歴情報
はプログラムのコンパイルの際にコンパイラによって作
成することが可能である。
【0017】本発明は以上の実施例に限定されない。本
発明は仮想記憶方式を使用したページングを採用する各
種の構成の情報処理装置に適用が可能であって、オンデ
マンドページング制御部の構成や機能ブロックはその情
報処理装置の構成に従って自由に選定して差し支えな
い。また、フォールト履歴情報等の形式も、例えば直前
に参照したページと、その次に参照したページとを関連
付けるようにしたが、数ページ一括して先読みし転送を
行う場合、数ページ分を連結した内容の情報とし、先読
み処理を効率的に行うといった実施態様も可能である。
【0018】
【発明の効果】以上説明した本発明のオンデマンドペー
ジングにおける先読み方法は、プログラムが仮想アドレ
ス順でなく、不連続的にページを参照するような場合
に、その参照履歴をフォールト履歴情報として格納し、
これが存在する場合には、そのフォールト履歴情報に表
された転送ページ順に従って一群のページを先読みし2
次記憶装置から主記憶装置に転送する構成にしたので、
無条件に仮想アドレス順にページを先読みする場合に比
べてページフォールト発生率を減少させる。また、プロ
グラム実行速度を速めその効率化を図ることができる。
【図面の簡単な説明】
【図1】本発明の方法実施のための装置ブロック図であ
る。
【図2】仮想記憶方式とページングの説明図である。
【図3】フォールト履歴情報の参照動作説明図である。
【図4】フォールト履歴情報更新方法説明図である。
【符号の説明】
1 実行中プログラム 2 主記憶装置 3 2次記憶装置 4 オンデマンドページング制御部 5 ページフォールト管理部 6 ページフォールト履歴保持部 7 先読み管理部 8 フォールト履歴情報 9 ファイル管理部

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置をアクセスし、主記憶装置に
    格納されていないページへのアクセスがあったときペー
    ジフォールトを発生させて、該当するページを含む一群
    のページを2次記憶装置から主記憶装置へ転送する先読
    みを行う場合において、 予め設定されたフォールト履歴情報が存在する場合に
    は、前記フォールト履歴情報に表された転送ページ順に
    従って前記一群のページを先読みして2次記憶装置から
    主記憶装置へ転送し、 その他の場合には、ページフォールトを発生したページ
    と、そのページに連続して2次記憶装置に格納されたペ
    ージ順に先読みして、前記主記憶装置に転送することを
    特徴とするオンデマンドページングにおける先読み方
    法。
  2. 【請求項2】 発生したページフォールトに対して、2
    次記憶装置に格納された該当するページとともに、他の
    任意のページを先読みして転送したにも関わらず、先読
    みしたページが参照されないままページフォールトが発
    生したとき、前記該当するページと、その直後に参照さ
    れたページとを、順に連続して先読みされるべきページ
    として対応付けて、フォールト履歴情報を生成すること
    を特徴とする請求項1記載のオンデマンドページングに
    おける先読み方法。
  3. 【請求項3】 実行されるプログラムを予め解析し、仮
    想アドレス順と異なる不連続なページ参照が行われる場
    合をリストアップしてテーブル化し、該当するページ毎
    に次に読み出すべきページを対応付けたフォールト履歴
    情報を生成することを特徴とする請求項1記載のオンデ
    マンドページングにおける先読み方法。
JP6300501A 1994-12-05 1994-12-05 オンデマンドページングにおける先読み方法 Pending JPH08161230A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6300501A JPH08161230A (ja) 1994-12-05 1994-12-05 オンデマンドページングにおける先読み方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6300501A JPH08161230A (ja) 1994-12-05 1994-12-05 オンデマンドページングにおける先読み方法

Publications (1)

Publication Number Publication Date
JPH08161230A true JPH08161230A (ja) 1996-06-21

Family

ID=17885581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6300501A Pending JPH08161230A (ja) 1994-12-05 1994-12-05 オンデマンドページングにおける先読み方法

Country Status (1)

Country Link
JP (1) JPH08161230A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337278B2 (en) 2004-04-15 2008-02-26 International Business Machines Corporation System, method and storage medium for prefetching via memory block tags
US7386679B2 (en) 2004-04-15 2008-06-10 International Business Machines Corporation System, method and storage medium for memory management
JP2010257173A (ja) * 2009-04-24 2010-11-11 Nec Corp メモリ管理システム、メモリ管理方法及びプログラム
JP2012533135A (ja) * 2009-07-13 2012-12-20 アップル インコーポレイテッド Tlbプリフェッチング
JP2017091512A (ja) * 2015-11-06 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation サービスの再活性化時間を短縮するための方法、システム、およびプログラム
KR20170065276A (ko) * 2015-12-03 2017-06-13 삼성전자주식회사 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337278B2 (en) 2004-04-15 2008-02-26 International Business Machines Corporation System, method and storage medium for prefetching via memory block tags
US7386679B2 (en) 2004-04-15 2008-06-10 International Business Machines Corporation System, method and storage medium for memory management
US7493453B2 (en) 2004-04-15 2009-02-17 International Business Machines Corporation System, method and storage medium for prefetching via memory block tags
US7617364B2 (en) 2004-04-15 2009-11-10 International Business Machines Corporation System, method and storage medium for prefetching via memory block tags
US7783837B2 (en) 2004-04-15 2010-08-24 International Business Machines Corporation System and storage medium for memory management
JP2010257173A (ja) * 2009-04-24 2010-11-11 Nec Corp メモリ管理システム、メモリ管理方法及びプログラム
JP2012533135A (ja) * 2009-07-13 2012-12-20 アップル インコーポレイテッド Tlbプリフェッチング
JP2017091512A (ja) * 2015-11-06 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation サービスの再活性化時間を短縮するための方法、システム、およびプログラム
US10834228B2 (en) 2015-11-06 2020-11-10 International Business Machines Corporation Method to reduce reactivation time of cloud based services
KR20170065276A (ko) * 2015-12-03 2017-06-13 삼성전자주식회사 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법

Similar Documents

Publication Publication Date Title
EP0810517B1 (en) Hardware mechanism for optimizing instruction and data prefetching
JP3717212B2 (ja) 情報処理装置及び情報処理ユニット
US5875318A (en) Apparatus and method of minimizing performance degradation of an instruction set translator due to self-modifying code
JPS6393041A (ja) 計算機
US6317818B1 (en) Pre-fetching of pages prior to a hard page fault sequence
US6684319B1 (en) System for efficient operation of a very long instruction word digital signal processor
US20080184010A1 (en) Method and apparatus for controlling instruction cache prefetch
US6507895B1 (en) Method and apparatus for access demarcation
JPH08161230A (ja) オンデマンドページングにおける先読み方法
EP1040412B1 (en) Processor executing a computer instruction which generates multiple data-type results
US5226138A (en) Method for selectively transferring data instructions to a cache memory
US6308242B1 (en) Apparatus for adaptively controlling a prefetch queue based on various flush conditions
KR100871185B1 (ko) 전용 캐시 메모리
KR19990087830A (ko) 컴퓨터 장치, 컴파일러 방법 및 다중 캐시 라인 사전적재방법
KR20010102285A (ko) 직접 메모리 접근 촉진 방법 및 장치
JP3718667B2 (ja) 情報処理装置及び情報処理ユニット
JPH04365133A (ja) プレロード命令実行装置及びプログラム修正装置
JP3576992B2 (ja) 画像処理装置、画像処理方法、プログラム
JP2727023B2 (ja) 情報処理装置
JP2902847B2 (ja) 自己変更コード実行方式
JPH11249959A (ja) キャッシュメモリ制御方法および装置
JPS63141130A (ja) 命令先取り装置
JPH0444139A (ja) プリフェッチ制御装置
JPH03119424A (ja) 情報処理方式及び装置
JPH1145180A (ja) キャッシュ制御方式