JPH0348952A - Memory control system and matrix, table, file and information processing systems using memory control system - Google Patents

Memory control system and matrix, table, file and information processing systems using memory control system

Info

Publication number
JPH0348952A
JPH0348952A JP1185292A JP18529289A JPH0348952A JP H0348952 A JPH0348952 A JP H0348952A JP 1185292 A JP1185292 A JP 1185292A JP 18529289 A JP18529289 A JP 18529289A JP H0348952 A JPH0348952 A JP H0348952A
Authority
JP
Japan
Prior art keywords
page
user program
access
memory management
update information
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
JP1185292A
Other languages
Japanese (ja)
Inventor
Takashi Nishikado
隆 西門
Megumi Kondo
惠 近藤
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1185292A priority Critical patent/JPH0348952A/en
Publication of JPH0348952A publication Critical patent/JPH0348952A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To shorten the processing time and to simplify a program by processing only the necessary areas when the large scale data is processed omitting the processing time required for the unnecessary areas. CONSTITUTION:An access detection request table 51 is added to a page table 14. Then the table 51 is set opposite to the address space of each user program 2 and each entry of the table 51 is opposite to each page of the program 2 respectively. In each entry of the table 51 and a valid/invalid field 17, the requests are received from the programs 2 and a flag is set by a memory control program 1. When an interruption is applied to the program 1 from an address converter 13 due to the entry invalidation, the program starts an access detection interruption process 3 to the program 2. As a result, the page corresponding to the relevant entry is initialized and therefore the initialization processing time, etc., required to the unnecessary areas is omitted. Thus, the processing time is shortened and the program is simplified.

Description

【発明の詳細な説明】 【産業上の利用分野〕 本発明は、大規模データの処理において、アクセスする
領域だけ初期化したり、更新処理した領域だけ格納した
りする場合等に便利であり、かつ不要な領域の処理や、
特別な判定処理を削減して、処理時間を削減することが
可能なメモリ管理方式およびそれを用いた行列処理、テ
ーブル処理5フアイル処理ならびに情報処理方式に関す
るものである。 【従来の技術〕 従来のメモリ管理方式については、例えば、日本コンピ
ュータ協会発行「オペレーティングシステムA(197
6年)pp、149〜+91に記載されている。上記文
献からも明らかなように、従来のメモリ管理方式では、
論理アドレスから物理アドレスに変換するアドレス変換
装置を用いて、オペレーティングシステム内のメモリ管
理プログラムが、ユーザ毎の使用アドレスを管理してい
る。これによ番ハニーザブログラムは実メモリの大きさ
に側限されることなく、極めて大きな仮想的なメモリ空
間を供与することができた。 第15図は、従来のメモリ管理方式の機能ブロック図で
ある。 lがメモリ管理プログラム、2がユーザプログラム、1
2は磁気ディスク等の二次記憶装置、13は論理アドレ
スを物理アドレスに変換するアドレス変換装gi、14
はページテーブルである。 メモリ管理プログラムlは、ユーザプロゲラ、ム2のア
ドレス空間に対応して、そのアドレス空間上の論理アド
レスと実メモリ上の物理アドレスとの対応関係をページ
単位に示したページテーブル14を設定し、このページ
テーブル14を参照・更新することにより、ユーザプロ
グラムアドレス空間を管理し、実際のメモリサイズより
大きなアドレス空間をユーザプログラム2に提供してい
る。 このページテーブル14は、第15図に示すように、有
効無効フィールド17と更新情報フィールド18と物理
アドレスフィールド19とを備えている。有効無効フィ
ールド17は、各ページに対応したエントリ毎に、その
エントリが有効か否かを示し、また更新情報フィールド
18は、そのページが更新されたか否かを示す情報が設
定され、また物理アドレスフィールド19は、対応する
ページに割当てられた実メモリ上の物理アドレスを示し
ている。なお、ここでは、OX 12000.OX 1
5000等の表現により16進数でアドレスを表わして
いる。 アドレス変換装N13は、ユーザプログラム2からアク
セスがあると、アクセス毎にそのアドレスに対応したペ
ージテーブルのエントリを参照して、そのエントリの有
効無効フィールド17が有効であれば、物理アドレスフ
ィール19の値で物理アドレスに変換し、そのアドレス
でアクセスを行う、また、更新アクセスの場合には、更
新情報フィールド18に更新アクセスがあったことを示
す更新フラグを立てて記憶する。もし、対応するページ
テーブルエントリの有効無効フィールド17が無効であ
れば、アドレス変換装fR13はメモリ管理プログラム
lに対してページフォルト(ページ欠落)の割り込みを
起こす、これにより、メモリ管理プログラム1は、メモ
リ11内からどこにも割当てられていない自由なメモリ
領域を探し出し、その物理アドレスをテーブル14の割
込みの要因となったエントリの物理アドレスフィールド
19に格納し、有効無効フィールド17を有効にするこ
とで、対応するページにその実メモリを割当てた後、ユ
ーザプログラム2の処理を再開させる。この場合に、ど
こにも割当てられていない自由なメモリ領域がないとき
には、テーブル14中の実メモリが割当てられている別
のページを必要に応じて二次記憶装置2にスワップアウ
トし、そのメモリをページフォルトしたページに割当て
る。 (発明が解決しようとする課厘〕 このように、従来のメモリ管理方式では、ユーザプログ
ラムはメモリの大きさに制限されず、大きなアドレス空
間を得ることができる。しかし、大規模なデータ処理を
行う場合に、全てのアドレス領域に対して初期化を行っ
たり、データ処理後金てのアドレス領域のデータを2次
記憶装置上に格納したりして、不要な処理を行うことが
あった。 また、不要な領域の処理を行わないようにするためには
、アクセスするアドレスをその度毎にチエツクする必要
があった。 第16図、第17図は、従来のメモリ管理方式における
初期化処理と更新処理のフローチャートである。 第16図(a)では全領域を初期化する方法であり、第
16図(b)では処理する領域毎に初期化が済んでいる
か否かをチエツクする方法であり、第17図(a)では
更新処理した全領域を記憶する方法であり、第17図(
b)では更新した領域毎に記憶していく方法である。す
なわち、従来の方法では、全領域について処理を行うか
、処理する度毎にチエツクを行うので、いずれの場合で
も極めて時間がかかっていた。 先ず、第16図(a)では、予め全領域を初期化した後
(ステップ103Q)、任意の領域に対して順次データ
処理を行う(ステップ102a)、次に、第16図(b
)では、複数回のデータ処理を行う(ステップ102b
、102c、−−・)前に、毎回これから処理する領域
は初期化済みか否かを判定シ(ステップ104b、10
4c、  ・・−−)、初期化が済んでいない場合には
、先ず初期化処理を済ましてから(ステップ103b、
103c。 ・・・)、データ処理を行う、また、更新した結果を記
憶する等の処理を行う場合、第17図(a)では、更新
処理を行った後(ステップ1lla)、その更新した部
分は勿論、更新しない部分も含めて全領域を記憶する(
ステップ113a)、また、ff117図(b)では、
更新処理を行う毎に(ステップl1lb、l1lc、・
・−・−・)、どこを更新したかを記憶して(ステップ
115b、115c。 ・・・・・)、最後にその記憶した情報を基にして更新
した領域のみを処理する(ステップ113b)。 このように、従来のメモリ管理方式では、不要な領域ま
で処理するか、あるいは不要な領域の処理を省略するた
めに、データ処理の度毎にアクセスするアドレスをチエ
ツクする必要があった。その結果、データ処理回数に比
例した判定処理の時間がかかるのみならず、プログラム
の途中で多数の判定処理が挿入されるため、プログラム
の作成が困難になり、処理の流れが判別し難いという問
題もあった。 本発明の目的は、これら従来の課題を解決し、大規模デ
ータを処理する際に、必要な領域のみの処理で済み、不
要な領域を処理する時間や判定の処理時間を削減して、
処理時間の短縮とプログラム作成の簡略化を図ることが
可能なメモリ管理方式および行列、テーブル、ファイル
処理ならびに情報処理方式を提供することにある。 〔課題を解決するための手段) 上記目的を達成するため1本発明のメモリ管理方式は、
(イ)ユーザプログラムが該ユーザプログラムのアドレ
ス空間上のアクセス予定の任意の領域に対して、アクセ
スの検出要求を予めメモリ管理プログラムに対して出す
と、該メモリ管理プログラムはアクセス検出要求のあっ
た領域を記憶しておき、上記要求時以降にユーザプログ
ラムが上記領域内の各ページをアクセスした時、該ユー
ザプログラムに割り込みを起こすことに特徴がある。 また、(ロ)ユーザプログラムのアドレス空間上の任意
のページを指定して、該ユーザプログラムから要求があ
ると、上記メモリ管理プログラムは要求があった時点以
降の上記ページへの更新アクセスの有無を記憶しておき
、該ユーザプログラムから送出要求があった時に、ペー
ジ毎の更新アクセスの有無に関する情報を上記ユーザプ
ログラムに送出することにも特徴がある。また1本発明
の情報処理方式は、(ハ)ユーザプログラムによりアク
セスされるアドレス空間を管理するオペレーティングシ
ステムを備えた情報処理システムにおいて。 ユーザプログラムは上記オペレーティングシステムに対
して予め該ユーザプログラムのアドレス空間上のある領
域にアクセス検出要求を出した後。 該領域内の一部分がアクセスされた時、どこがアクセス
されたかを上記オペレーティングシステムから割り込み
を受けることにより、該領域内のアクセスされた部分の
みを処理することに特徴がある。また、本発明のファイ
ル方式は、(ニ)前記ユーザプログラムは、ファイル処
理を行う場合に、該ファイル全体ないし一部分に対応し
て確保した領域をオペレーティングシステムに対してア
クセス検出要求を行い、かつ該領域へのアクセス検出時
の割り込み処理として、ファイルデータを必要に応じて
変換しながら対応するページにロードする関数を登録し
、アクセスされた一部分だけをメモリ上に変換ロードし
ながらトランザクション処理を行い、さらに該トランザ
クション処理を行う前に、該領域に更新アクセス有無の
検出要求を出しておき、該トランザクション結果を更新
された部分とされていない部分とに別けて処理し、元の
ファイルないし別のファイルに格納するメモリ管理方式
を用いたことに特徴がある。また、本発明のテーブル処
理方式は、(ホ)前記ユーザプログラムは、テーブル処
理を行う場合に、最初に該テーブルの全領域を初期化す
ることなく、データを登録する際に割り込みを受け、該
割り込みの処理に必要なテーブルの一部分だけを初期化
するメモリ管理方式を用いたことに特徴がある。さらに
、本発明の行列処理方式は、(へ)前記ユーザプログラ
ムは、一部分だけが他の要素と異なる疎な大型行列計算
処理を行う場合に、対象の行列をページ単位の部分行列
の集合の形で表現し、最初全領域を初期化することなく
、異なる要素だけを書き込むことにより、必要な部分行
列だけを初期化し、さらに行列間の演算を行う際に、更
新された部分行列のみを検出して、必要な部分行列だけ
を選択的に行列演算するメモリ管理方式を用いたことに
特徴がある。 【作  用】 本発明においては、ユーザプログラムのアドレス空間上
の任意のページに対して、゛そのページへのアクセスが
発生したときに、ユーザプログラムに対して割り込みを
起こすか否かを、ユーザプログラムから予め要求する(
初期化に対するアクセス検出機能)、要求されたページ
に対してアクセスがあれば、ユーザプログラムに対し割
り込みを起こし、初期化を行った後、プログラムを再開
させる。 また、ユーザプログラムのアドレス空間上の任意のペー
ジに対して、ある時点以降の更新アクセスの有無の情報
を保持しておき、その情報を任意の時点でユーザプログ
ラムからクリアできるようにして、要求に応じてその情
報をユーザプログラムに返すか、あるいは更新の有無に
応じてユーザプログラムが指定した処理を起動できるよ
うにした(更新アクセス検出機能)。 〔実施例] 以下、本発明の実施例を、図面により詳細に説明する。 第3図は、本発明の一実施例を示すメモリ管理システム
の全体構成図である。 本発明のメモリ管理システムは、中央処理装置lOと、
メモリ11と、二次記憶装置12と、アドレス変換装置
13とを備えている。 メモリll上には、最初からメモリチップ上に記憶され
ているか、あるいは二次記憶装置m!12のファイルエ
リア15からロードされた後、中央処理装置10で実行
されることにより全体のシステムを管理するオペレーテ
ィングシステムプログラム5と、このオペレーティング
システムプログラム5の一部を構成するメモリ管理プロ
グラムlと、メモリ管理に必要なページテーブル14と
、本発明に関係するアクセス検出要求テーブル51と、
更新情報テーブル52と、疑似更新情報テーブル53と
、一時更新情報テーブル54と、各ユーザプログラム2
とが格納される。メモリ管理プログラム1は、メモリ管
理に必要なページテーブル14%アクセス検出要求テー
ブル51、更新情報テーブル52等の管理情報を用いて
、各ユーザプログラム2に対するメモリの割当てやメモ
リのアクセス管理を行う、また、アドレス変換装f!!
13は、ユーザプログラムのアドレス空間上の論理アド
レスをメモリ上の物理アドレスに変換する装置であり、
その論理アドレスと物理アドレスの対応関係をページ単
位に示したページテーブル14を参照することにより、
ユーザプログラム2がらのメモリアクセス毎にアドレス
変換を行う、また、メモリ管理プログラム1は、このア
ドレス変換装R13の機能を用いて、従来と同じように
、二次記憶装置12上のスワップエリア16をメモリ1
1内に自由なメモリ領域がなくなった時のメモリ11内
のページ追い出し先として使用することにより、大規模
な仮想記憶を実現している。 第6図および第7図は、本発明のアクセス検出機能を用
いたデータ処理の初期化処理と、本発明の更新アクセス
検出機能を用いたデータ処理の更新処理の各フローチャ
ートである。 本発明においては、任意のページに対するアクセス検出
をユーザプログラムから制御できる。従って、第6図に
示すように、作業領域に対して予め初期化処理をするこ
となく、単にその領域へのアクセスを検出する要求だけ
を出しておき(ステップ101)、初期化されていると
仮定して、そのままデータ処理を行えば(ステップ10
2)、上記割り込み要求によりアクセスされた作業領域
内のページだけを最初のアクセス時に割り込みの形で初
期化することが可能である(ステップ103)。 次に、本発明においては、データ処理後の格納処理等に
対して、第7図に示すように、データの更新処理(ステ
ップ111)を行う前に1作業領域に対応したページの
更新情報をクリアする要求を。 メモリ管理プログラムlに出しておく(ステップ110
)、そして、データの更新処理(ステップ111)では
、作業領域中のどこを更新するか否かは全く留意せずに
処理を行い、処理が終了した後に作業領域の各ページの
更新情報をメモリ管理から取り出して(ステップ112
)、更新されたページだけに対して格納等の処理を行う
(ステップ+13)、これにより、ユーザプログラムは
、データ処理中に作業領域中のどこをアクセスしたか等
の判定処理をする必要はなく、また不要な部分の初期化
や格納処理等を省略することができるので、処理時間を
短縮できる。 第1図および第2図は、本発明の動作説明図である。こ
のうちの第1図は、初期化処理等に対するアクセス検出
機能の一実施例を示す図であり、第2図は、更新処理に
対する更新アクセス検出機能の一実施例を示す図である
。 ff!1図において、従来に比べて新しい内容を持つ点
は、ページテーブルI4の他にアクセス検出要求テーブ
ル51を設けることと、メモリ管理プログラムlにより
アクセス検出割り込み関数を起動させることである。 アドレス変換装置13の動作と、アドレス変換装[13
とページテーブル14との関係については、従来と全く
同じであるため説明を省略する。 本発明のアクセス検出機能を実現するために、アクセス
検出要求テーブル51をページテーブル!4に追加する
。アクセス検出要求テーブル51は、各ユーザプログラ
ム2のアドレス空間に対応して存在し、かつテーブル5
]の各エントリは、各ユーザプログラム2のアドレス空
間上の各ページに対応している。テーブル51の各エン
トリは、先ずユーザプログラム2からの要求を受けて、
メモリ管理プログラム1が゛有′ ゛無′のフラグを設
定する。また、メモリ管理プログラムlは、アクセス検
出要求テーブル51上の゛有′に対応するページテーブ
ル14上の有効無効フィールドの有効フラグを無効フラ
グに書き換える。これにより、アドレス変換装置13が
ページテーブル14を参照してアドレス変換を実行する
際に、該当するエントリが無効であった場合には、メモ
リ管理プログラムlに対して割り込みが起こることを利
用している。そして、メモリ管理プログラムlは、アド
レス変換装W113からエントリ無効(ページフォール
ト)による割り込みがかかると1次にユーザプログラム
2に対してアクセス検出割り込み処理3を起動させるこ
とにより、そのエントリに対応するページの初期化を実
行させる。すなわち、アクセス検出要求テーブル51上
で゛有′と設定されたエントリについては、ユーザプロ
グラム2中のデータ処理関数群4が対応するユーザプロ
グラムアドレス空間上のページ20をアクセスした時に
、ユーザプログラム2に対してアクセス検出割り込みを
起こして、対応するページ20の初期化等を行うユーザ
プログラム2中のアクセス検出割り込み処理関数3を起
動し、その処理が終了してから中断されたデータ処理間
数群4の処理な再開させるという処理を、メモリ管理プ
ログラムlが実行する0次に、メモリ管理プログラム1
が実際にアクセス検出要求テーブル51をどのように管
理して、どのように上記処理を実行するかについて詳述
する。 第8図は、本発明のユーザプログラムからのアクセス検
出の登録・解除要求時の処理フローチャートであり、第
9図は1本発明のアクセス検出機能によるページフォー
ルト時の処理フローチャートである。 第8図(a)のアクセス検出要求登録処理では、メモリ
管理プログラムlがユーザプログラム2からのアクセス
検出の登録要求を受けると、要求のページに対応するア
クセス検出要求テーブル51のエントリをアクセス検出
することを示すように゛有゛に設定する(ステップ+2
0)、次に、要求のページに対応するページテーブルエ
ントリの有効無効フィールド17を無効に設定し、該当
ページがアクセスされた際に、アドレス変換装Fa+3
がページフォールト割り込みをメモリ管理プログラム1
に対して起こすようにして、アクセス検出要求登録処理
を終了する(ステップ121)、上記処理を行うことに
より、ユーザプログラム2のデータ処理関数群4がアド
レス空間上の対応するページ20をアクセスした際にペ
ージフォールトが発生する0本発明のメモリ管理方式で
は、従来のページフォールト処理を一部変更して、第9
図に示すような処理を行う。 すなわち、第9図のページフォールト処理では、先ず従
来と同じように、フォールトしたページがユーザプログ
ラム2からアクセスを許されたページであるか否かをチ
エツクしくステップ130)、許されないページであれ
ば、エラー処理を行う(ステップ136)、また、許さ
れた場合には、実メモリが未だ割り当てられていなけれ
ば、メモリの割り当てを行って(ステップ+31)%対
応するページテーブルエントリの有効無効フィールド1
7を“有効′に設定する(ステップ132)、従来は、
ここまでで処理を終了していたが、本発明のメモリ管理
方式では、さらに次の処理も実行する、すなわち、フォ
ールトしたページに対応するアクセス検出要求テーブル
51のエントリをチエツクして(ステップ133)、も
し′有゛の場合には、そのアクセス検出要求テーブルエ
ントリの情報をクリアしくステップ134)、ユーザプ
ログラム2に対してアクセス検出割り込みを起こして、
ユーザプログラムの割り込み処理関数3を起動する(ス
テップ135)、そして、その関数から返ってきてから
ページフォールト割り込み処理を終了し、割り込んだデ
ータ処理関数群4の処理を再開する。 また、第8図(b)は、ユーザプログラム2から既にア
クセス検出要求の出されたページのアクセス検出要求を
解除する要求に対する処理である。 解除要求が出されると、解除要求のあったページに対応
するアクセス検出要求テーブル51のエントリをクリア
し、゛無゛ の状態にする(ステップ122)、これで
、処理は終了する。 第5図(a)(b)は、本発明のアクセス検出要求テー
ブルの形式図である。 第1図に示す実施例では、ユーザプログラム2からのア
クセス検出要求の有無をページ単位に保持したアクセス
検出要求テーブル51を用いているが、このテーブル5
1の形式を第5図(a)(b)に示すようにしてもよい
、すなわち、第5図(a)に示すように、開始アドレス
とサイズを示す領域にして、ページより広い範囲で定義
することもできる。また、第5図(b)に示すように、
開始アドレスと終了アドレスのように領域を定めてもよ
い。 なお、ここでは、アドレスを0x2000・・・で■6
進数を表わしている。 次に、本発明の更新アクセス検出機能について詳述する
。 第2図は1本発明の更新アクセス検出機能の動作を示す
図である。この図で、従来のメモリ管理方式と異なる点
は、更新情報テーブル52が設けられていることと、ア
ドレス変換装!213がページテーブル14だけでなく
、更新情報テーブル52に対してもセット・リセット動
作を行うことである。すなわち、アドレス変換装fR1
3は、ユーザプログラム2からのアドレス空間上への更
新アクセスに対して、ページテーブル14の対応するエ
ントリの更新情報フィールド18だけでなく、更新情報
テーブル52の対応するエントリに対しても、更新アク
セスがあったことを示す情報をセットする。この更新情
報テーブル52の各エントリは、各ユーザプログラム2
のアドレス空間の各ページに対応してりる。メモリ管理
プログラムlは、ユーザプログラム2からの要求に応じ
て、任意のエントリをクリアして゛未更新′状態にした
り、またその情報を読み出してユーザプログラム2に渡
す役目も果す。 アドレス変換装fi!13は、ユーザプログラム2がア
ドレス空間へアクセスした全ての動作をチエツクして、
更新アクセスの揚台には、更新情報テーブル52のアク
セスしたページに対応するエントリを゛更新′状態にセ
ットする。従って、ユーザプログラム2は、必要な時点
で更新情報テーブル52の必要なエントリをクリアする
要求をメモリ管理プログラムlに出しておく、そして、
あるデータ処理を実行した後に、先にクリアした更新情
報テーブル52のエントリを読み出すことにより、任意
の時点以降の各ページの更新状況が得られることになる
。 ところで、上述の実施例では、ページテーブル14の更
新情報フィールド18のみならず、更新情報テーブル5
2にも更新アクセス情報をセットするアドレス変換装置
】3を用いることにより、更新アクセス検出機能を実現
している。このように、別々に更新アクセス情報をセッ
トする必要がある理由としては、ページテーブル14の
更新情報フィールド18は従来方式においても、ページ
の追い出し解放のための情報に使用する必要があり、そ
の他に更新情報テーブル14を本発明における更新アク
セス検出機能に使用しなければならないからである。 m2図の実施例では、ページテーブル14と更新情報テ
ーブル52の両方を制御するアドレス変換装置13を用
いている。しかし、他の実施例として、特別なアドレス
変換装置13を使用せずに。 従来のままの動作をするアドレス変換装5213を使用
して本発明を実現する方式もあることを以下に説明する
。すなわち、ページテーブル14の更新フィールド18
の1箇所のみに更新アクセス情報をセットする従来のア
ドレス変換装v113を用いて、本発明の更新アクセス
検出機能を実現する方式である。 第4図は、本発明の他の実施例を示す更新アクセス検出
機能のアクセス検出要求テーブルの構成図であり、第1
0図は、第4図における更新アクセス検出機能の処理フ
ローチャートである。 第4図から明らかなように、アドレス変換装置13は、
ページテーブル14の更新情報フィールドのみしか更新
アクセス情報を設定しないため、本実施例では、更新情
報テーブル52の代りに。 疑似更新情報テーブル53と一時更新情報テーブル54
とを新たに設ける。これらの各テーブル53.54の各
エントリは、更新情報テーブル52と同じように、各ユ
ーザプログラムのアドレス空間の各ページに対応してい
る。そして、これらのテーブル53.54の各機能を説
明すると、疑似更新4i7報テーブル53とページテー
ブル14内の各更新情報フィールド18をORしたちの
が、第2図の更新情報テーブル52の情報に対応する。 また、一時更新情報テーブル54とページテーブル14
内の各更新情報フィールド18をORL、たちのが、第
2図のページテーブル14内の更新情報フィールドの情
報に対応する。 第18図は、第4図のテーブルの動作タイムチャートを
第2図のテーブルの動作チャートと比較しながら示した
図である0本図中の上の2つのチャート901,902
は第2図のテーブルの動作チャートを示し、下の3つの
チャート903,904.905が第4図の動作チャー
トを示す0図中のM(X、Y)は1図に対応するテーブ
ルに、時刻Xから時刻Yまでの間の対応するページに対
する更新アクセスの有無の情報を保持していることを示
す、また、時刻T、は、対応するページへメモリを割当
てた時刻を、T、はユーザプログラム2から該ページに
対する更新情報のクリア要求を受けた時刻を、T、は該
ページをメモリ上から追出しメモリを解放した時刻を、
そして時刻T、は該ページに対してメモリの再割当てを
した時刻であり、英小文字のしは、これらの時刻間の任
意の時刻を表わすものとする。 従来の仮想記憶を実現するためには、チャート901に
示すように、メモリからの追い出し時に、前回のメモリ
割当て以降の該ページに対する更新情報を必要とする。 また1本発明のある時点以降の更新情報をユーザプログ
ラムに返すしくみを実現するためには、チャート902
に示すように、いつユーザプログラムから要求されても
返せるように、ユーザプログラムが指定した時刻T、夏
以降該ページに対する更新情報を保持している必要があ
る。第21!lの実施例では、ページテーブル14の更
新情報フィールド18と更新情報テーブル52の両方に
対して各ページの更新アクセスを記録するアドレス変換
装ra13を用いてこれを実現した。しかし、本実施例
では、ページテーブル14の更新情報フィールド18し
か更新アクセスの情報を記憶しない従来のアドレス変換
装置を用いるので、第41!Iのテーブルをチャート9
03,904.905に示すように管理することで実現
する0本図から判るように、任意の時点で、第2図の従
来のページテーブルの更新情報フィールド−ページテー
ブルの更新情報フィールドOR疑似更新情報テーブルで
あり、ff!2図の更新情報テーブル=ページテーブル
の更新情報フィールドOR一時更話情報テーブルの関係
が成立している。 ページテーブル14の更新情報フィールド18、疑似更
新情報テーブル53、一時更新情報テーブル54の管理
方法を、m10図により説明する。 第1O図(a)(b)はユーザプログラム2からの要求
による処理であり、第1O図(c)(d)は従来の仮想
記憶方式からの要求による処理である。 先ず、第10図(a)では、ユーザプログラム2からあ
るページに対する更新アクセス情報のクリア要求をメモ
リ管理プログラムlが受けた時の処理を示している。こ
れは、第18図における時刻T、における処理に対応す
る。第2図の実施例では、対応する更新情報テーブル5
2のエントリをクリアするだけでよかったが、第4図の
実施例では、対応する疑似更新情報テーブル53のエン
トリをクリアするとともに(ステップ140)、要求の
ページに対応するページテーブルエントリの更新情報フ
ィールド18を、対応する一時更新情報テーブル54の
エントリにORして格納する(ステップ141)、そし
て、そのページテーブルエントリの更新情報フィールド
18をクリアする(ステップ142)、これにより、ペ
ージテーブルエントリの更新情報を写した一時更新情報
テーブルの内容のみが残り、それ以外のテーブルの内容
は全てクリアされる。 次に、第1O図(b)では、ユーザプログラム2からメ
モリ管理プログラム1に対して、あるページの更新情報
の読み出し要求を出した場合の処理が示されている。前
述したように、fJs2図の更新情報テーブル52は、
疑似更新情報テーブル53とページテーブル14の更新
情報フィールド18をOR1,た関係にあるので更新情
報の読出し要求に対しては、要求のページに対応した疑
似更新情報テーブル53のエントリと、対応するページ
テーブルエントリの更新情報フィールドの情報とをOR
L、た値を返送する(ステップ150)、これによって
、第18図に示す時刻T、以降から現在時点までの該ペ
ージに対する更新情報が、ユーザプログラム2に返され
る。 次に、51510図(C)では、各ページの実メモリの
解放処理が示されている。これは、第18図における時
刻T、における処理に対応する。メモリ解放時には1次
回にメモリの再割り当てを行って再びメモリの解放を行
う際に、今回のメモリ解放から次回のメモリ解放までの
間に対応するページに対して更新がなされたかを判定で
きるようにするため対応するページテーブル14の更新
情報フィールド18をクリアする必要がある。その丸め
に、先ず、実メモリを解放するページに対応するページ
テーブルエントリの更新情報フィールド18の情報を、
対応する疑似更新情報テーブル53のエントリにORし
て格納する(ステップ160)。 これによって、ページテーブル14がクリアされても、
そこに登録されていた更新情報は疑似更新情報テーブル
53に写されて保存される0次に、そのページがまだ一
度もスワップアウトされていないか否か、あるいは対応
する更新情報フィールド18及び対応する一時更新情報
テーブル54のエントリの情報の両方を調べて、どちら
か−力でも対応するページに更新アクセスがあったこと
を示しているか、をそれぞれチエツクする(ステップ+
61)、すなわち、従来の仮想記憶方式では、ページテ
ーブルエントリの更新情報フィールド18のみをチエツ
クすれば、前回のメモリ解放から今回のメモリ解放まで
の間に該ページに対して更新がなされているかが判るの
に対して、本実施例では、ページテーブルエントリと一
時更新情報テーブル54の対応するエントリの両方を調
べる。 これによって、ユーザプログラム2から更新アクセス情
報クリア要求があった前からの更新情報と、その後に生
じた更新情報とを合わせて調べることができる。ステッ
プ161の判定処理が真の場合、つまり一度もスワップ
アウトされていない場合又は前回のメモリ解放以降に該
ページが更新された場合には、そのページを二次記憶装
置12のスワップエリア!6に追い出しくステップ16
2)、対応するページテーブルエントリの更新情報フィ
ールド!8および一時更新情報テーブル54のエントリ
をクリアする(ステップ163)、そして、そのページ
に割当てられていたメモリを解放する(ステップ164
)、一方、判定処理(ステップ161)が偽の場合、つ
まり以前のメモリ解放でスワップアウトされており、そ
れ以降該ページが更新されていない場合には単にメモリ
解放のみを実行する(ステップ164)。 次に、第10図(d)では、あるページに実メモリを割
当てる場合の処理が示されている。これは、第18図に
おける時刻T、又はT、における処理に対応する。この
場合には、従来の方法と全く同じく、対応するページテ
ーブルエントリの更新情報フィールド!8をクリアする
だけでよいくステップ+70)。 第10図に示す処理を行うことにより、ページテーブル
エントリの更新情報フィールド18だけにページに対す
る更新情報アクセス情報を設定する従来のアドレス変換
装置を用いて、従来の仮想記憶方式と本発明による更新
アクセス検出機能の両方を実現することができる。 次に、本発明の更新情報読み取り方法の他の実施例を説
明する。 第2図の実施例では、メモリ管理プログラムlが更新情
報テーブル52に記憶された各ページの更新情報をユー
ザプログラム2からの要求に応じて読み取り、それをユ
ーザプログラム2に返している。各ページの更新情報を
返す代りに、ユーザプログラム2から要求を受けたメモ
リ管理プログラムlは、更新情報テーブル52を参照し
て、各ページの更新・未更新に対応してユーザプログラ
ム2が指定した更新・未更新の場合に応じたそれぞれの
処Fl!関数を起動する方法をとることもできる0例え
ば、ユーザプログラム2からの要求により、メモリ’1
7F11プログラムlはそのページに更新アクセスがあ
ったときにはプログラム八関数を起動し、更新アクセス
がなかったときにはプログラムB関数を起動させるよう
にできる。 次に、本発明の実施例の変形例を説明する。 第1図、第2図および第4図の実施例では、アクセス検
出要求テーブル51、更新情報テーブル52、疑似更新
情報テーブル53、および一時更新情報テーブル54は
、それぞれ独立したテーブルとして設けているが、この
ようにする代りに、各エントリがページテーブル14の
1フイールドであってもよい、すなわち、ページテーブ
ル14に、有効無効フィールド17と更新情報フィール
ド18と物理アドレス19の他に、アクセス検出要求フ
ィールドと、更新情報フィールド(または疑似更新情報
フィールドと一時更新情報フイールド)を追加すればよ
い。 fjitt図から第14図は、本発明の応月例を示すも
ので、第11図は1本51!明によるファイル処理の概
念図である。 いま、第11図に示すように、二次記憶装置12内のフ
ァイルエリア15に格納されたファイル15aを更新処
理する場合を考える。先ず、ファイル15aのサイズに
対応してユーザプログラムの7ドレス空間上に作業領域
mを定義しく斜線の部分)、この領域に対してアクセス
検出要求をメモリ管理プログラム1に対して出しておく
、そして、そのアクセス割り込み処理としては、アクセ
スされたページに対応した部分をファイル15aから読
み出し、必要ならば変換を加えた後、対応するページに
ロードする処理(+03d)を登録しておく、すなわち
、斜線の部分の領域mにアクセスされたときには、ファ
イル15aのデータを必要な変換をした後、その領域に
ロードする処理の予約をしておくのである。それからデ
ータ処理(102d)を実行すれば、まだファイル15
aのデータがロードされていないページにアクセスされ
た時、割り込みが発生して、アクセスされたページだけ
をファイル15aかも変換して該当領域にロードするこ
とができる。 また、データ処理前に、その作業領域内の全ページの更
新アクセス情報pをクリアし、アクセス割り込み処理の
終了後に、そのアクセスMり込みを起こしたページの更
新アクセス情報pをクリアすることにより、データ処理
後にこの作業領域内の各ページの更新の有無に応じた別
ファイル15bへの格納等を含む処理(180)を行う
ことができる。すなわち、データ処理後に更新アクセス
情報を読み出して、更新が行われた部分pだけを選択的
に処理したり、更新の有無に対応して別の処理を行った
り、また例えば、更新された部分だけをファイル15a
に逆変換しながら格納したり、あるいは別のファイル1
5bに格納したりすることが可能である。 第12図は1本発明を用いた名前管理テーブルの管理方
法の処理概念図である。 第11図とは別の利用方法として、コンパイラ等に使泪
される名眞117理テーブルの初期化処理にも利用する
ことができる。すなわち、第12図に示すように、名前
管理テーブルの参照・登録処理(+02e)を行うOη
に、そのテーブル領域に対してアクセス検出要求を出し
ておき、アクセスした時点でアクセス検出割り込みを発
生させ、この割り込みにより必要な部分だけを初期化す
る(103e)、なお、nは未初期化領域、qはテーブ
ル月領域である。 第13図は、本発明を用いて行列演算を行う場合のアド
レス空間の一割当て方法の説明図、第14図は第13図
の行列演算処理方法のフローチャートである。 別の利用例として、疎な大規模行列演算に対する利用方
法がある。 行列の掛は算処理の例として、先ず演算対象の2つの行
列A、Bおよび演算後の格納場所Cを、第13図に示す
ように、ページ単位の正方部分行列に分割してアドレス
空間上に配置する。なお、第13図では、行列Aのみに
ついて示しであるが、B、Cについても同じである0次
に、これらの領域に対してアクセス検出要求を出してお
き、そのアクセス割り込み処理関数としては、対応する
ページを0クリアする関数を!IQしておく (ステッ
プl90)、また、これらの領域のページの更新アクセ
ス情報も全てクリアしておく (ステップ19り、つま
り、更新情報が何もない状態からスタートさせる6次に
2行列A、Bに非0エレメントを古き込む(ステップ1
92)、非Oエレメントとは、0以外の有効数字である
。その後、メモリ管理プログラムから行列A、Bに対応
するページの更新アクセス情報を得る(ステップ193
)、その更新アクセス情報をそれぞれaiJ+ b i
Jとしたとき、次式からal)lbkJがOでない場合
にのみ、部分行列演算A111BkJを行い、C1Jを
計算する。 そして、計算したC1Jが0でない場合にのみ、実際に
C1Jの領域に書き込む(ステップ194)。 これによって、CIJを読み出すことにより、演算結果
を得ることができる。さらに、このC1Jを非Oエレメ
ントの書き込み処理(ステップ194)が終了したA、
Bと考えて、ステップ193以下の演算を繰り返すこと
も可能である。 このように1本実施例、においては、ユーザプログラム
はアドレス空間上の任意のページに対して、そのページ
に対するアクセスを割り込みの形で検出することができ
るとともに、ある時点以降、各ページが更新されたか否
かを知ることができる。 従って、各種の処理にこれを利用することにより。 ユーザプログラムが特別な判定処理をすることなく、必
要な領域だけを処理するだけでよく、処理時間を短縮し
、プログラムの作成を容易にすることができる。 [発明の効果] 以上説明したように、本発明によれば、大規模なデータ
処理を行う場合、全作業領域を初期化せずに、必要な領
域だけを初期化することができ、またデータ処理中に更
新した場所を全て記憶しておかなくても、処理後に作業
領域の各ページの更新情報をメモリ管理プログラムから
得ることができるので、更新されたページのみをファイ
ルに格納する等の処理を行うことが可能である。
[Detailed Description of the Invention] [Industrial Application Field] The present invention is useful when processing large-scale data, such as initializing only the area to be accessed or storing only the updated area. Processing unnecessary areas,
The present invention relates to a memory management method capable of reducing processing time by eliminating special determination processing, and matrix processing, table processing, five-file processing, and information processing method using the memory management method. [Prior art] Regarding conventional memory management methods, for example, see "Operating System A (1977)" published by the Japan Computer Association.
6) pp. 149-+91. As is clear from the above literature, in the conventional memory management method,
A memory management program within the operating system manages addresses used by each user using an address conversion device that converts logical addresses into physical addresses. As a result, the Honeycomb program was able to provide an extremely large virtual memory space without being limited by the size of real memory. FIG. 15 is a functional block diagram of a conventional memory management system. l is the memory management program, 2 is the user program, 1
2 is a secondary storage device such as a magnetic disk; 13 is an address conversion device gi that converts a logical address into a physical address; 14
is a page table. The memory management program 1 sets a page table 14 corresponding to the address space of the user programmer 2, which shows the correspondence between logical addresses in the address space and physical addresses in the real memory in units of pages. By referring to and updating this page table 14, the user program address space is managed, and an address space larger than the actual memory size is provided to the user program 2. As shown in FIG. 15, this page table 14 includes a valid/invalid field 17, an update information field 18, and a physical address field 19. The valid/invalid field 17 indicates whether or not the entry is valid for each entry corresponding to each page, and the update information field 18 is set with information indicating whether the page has been updated, and the physical address is set in the update information field 18. Field 19 indicates the physical address on real memory allocated to the corresponding page. Note that here, OX 12000. OX1
The address is expressed in hexadecimal notation such as 5000. When there is an access from the user program 2, the address translation device N13 refers to the page table entry corresponding to the address for each access, and if the valid/invalid field 17 of the entry is valid, the physical address field 19 is The value is converted into a physical address, and the address is accessed. In the case of an update access, an update flag indicating that there has been an update access is set in the update information field 18 and stored. If the valid/invalid field 17 of the corresponding page table entry is invalid, the address translation device fR13 causes a page fault (missing page) interrupt to the memory management program 1. As a result, the memory management program 1 By searching for a free memory area that is not allocated anywhere in the memory 11, storing its physical address in the physical address field 19 of the entry that caused the interrupt in the table 14, and enabling the valid/invalid field 17. , and after allocating the real memory to the corresponding page, the processing of the user program 2 is restarted. In this case, if there is no free memory area that is not allocated anywhere, another page to which real memory in the table 14 is allocated is swapped out to the secondary storage device 2 as needed, and that memory is Assign to page faulted page. (Problem to be solved by the invention) In this way, with conventional memory management methods, user programs are not limited by the memory size and can obtain a large address space. In this case, unnecessary processing may be performed such as initializing all address areas or storing data in all address areas on a secondary storage device after data processing. In addition, in order to avoid processing unnecessary areas, it was necessary to check the address to be accessed each time. Figures 16 and 17 show the initialization process in the conventional memory management method. FIG. 16(a) shows a method of initializing all areas, and FIG. 16(b) shows a method of checking whether initialization has been completed for each area to be processed. In Fig. 17(a), the entire area that has been updated is stored.
In b), the information is stored in each updated area. That is, in the conventional method, the entire area is processed or a check is performed each time the area is processed, which takes an extremely long time in either case. First, in FIG. 16(a), after initializing all areas in advance (step 103Q), data processing is sequentially performed on arbitrary areas (step 102a), and then in FIG.
), data processing is performed multiple times (step 102b).
, 102c, --.), each time a system determines whether the area to be processed from now on has been initialized (steps 104b, 104b, 102c, --.).
4c, ... --), if the initialization has not been completed, first complete the initialization processing (step 103b,
103c. ), when performing data processing or storing updated results, etc., in FIG. 17(a), after performing the updating process (step 1lla), the updated part is of course , memorize all areas including parts that are not updated (
In step 113a), and in ff117 diagram (b),
Each time update processing is performed (steps l1lb, l1lc, .
. . . ), stores the updated area (steps 115b, 115c, . . . ), and finally processes only the updated area based on the stored information (step 113b). . As described above, in the conventional memory management system, it is necessary to check the address to be accessed every time data is processed in order to process unnecessary areas or omit processing in unnecessary areas. As a result, not only does the judgment process take time proportional to the number of times the data is processed, but many judgment processes are inserted in the middle of the program, making it difficult to create a program and making it difficult to determine the flow of processing. There was also. The purpose of the present invention is to solve these conventional problems, and when processing large-scale data, only necessary areas need to be processed, reducing the time for processing unnecessary areas and the processing time for judgment.
An object of the present invention is to provide a memory management method, matrix, table, file processing, and information processing method that can shorten processing time and simplify program creation. [Means for Solving the Problems] In order to achieve the above object, one memory management method of the present invention is as follows:
(b) When a user program issues an access detection request in advance to a memory management program for any area to be accessed in the user program's address space, the memory management program receives the access detection request. The feature is that an area is stored, and when a user program accesses each page in the area after the above request, an interrupt is caused to the user program. (b) When an arbitrary page in the address space of a user program is specified and a request is made from the user program, the memory management program checks whether there is any update access to the page after the request is made. Another feature is that information regarding the presence or absence of update access for each page is stored and sent to the user program when a send request is received from the user program. Further, the information processing method of the present invention is provided in (c) an information processing system including an operating system that manages an address space accessed by a user program. After the user program issues an access detection request to the operating system in advance to a certain area in the address space of the user program. A feature of the present invention is that when a part of the area is accessed, only the accessed part of the area is processed by receiving an interrupt from the operating system as to which part of the area has been accessed. Furthermore, in the file method of the present invention, (d) when performing file processing, the user program requests the operating system to detect access to an area reserved for the whole or a part of the file, and As interrupt processing when an access to an area is detected, a function is registered that converts the file data as necessary and loads it to the corresponding page, and performs transaction processing while converting and loading only the accessed part into memory. Furthermore, before processing the transaction, a request is issued to detect the presence or absence of update access to the area, the transaction results are processed separately into the updated part and the unupdated part, and the original file or another file is processed. It is characterized by the use of a memory management method that stores data in . Further, in the table processing method of the present invention, (e) when performing table processing, the user program receives an interrupt when registering data without initializing the entire area of the table, and The feature is that it uses a memory management method that initializes only a portion of the table required for interrupt processing. Furthermore, in the matrix processing method of the present invention, when the user program performs calculation processing of a large sparse matrix in which only a portion differs from other elements, the user program converts the target matrix into a set of submatrices in page units. By expressing it as A feature of this method is that it uses a memory management method that selectively performs matrix operations on only necessary submatrices. [Operation] In the present invention, for any page in the user program's address space, the user program determines whether or not to cause an interrupt to the user program when an access to that page occurs. Request in advance from (
(Access detection function for initialization) If the requested page is accessed, an interrupt is generated to the user program, and after initialization, the program is restarted. In addition, information on whether any page in the user program's address space has been accessed for update after a certain point is retained, and this information can be cleared from the user program at any time to respond to requests. Accordingly, the information is returned to the user program, or the user program can start a specified process depending on whether there is an update (update access detection function). [Example] Hereinafter, an example of the present invention will be described in detail with reference to the drawings. FIG. 3 is an overall configuration diagram of a memory management system showing an embodiment of the present invention. The memory management system of the present invention includes a central processing unit IO;
It includes a memory 11, a secondary storage device 12, and an address translation device 13. The memory 1 is either stored on the memory chip from the beginning or is stored on the secondary storage device m! an operating system program 5 that manages the entire system by being loaded from the file area 15 of 12 and executed by the central processing unit 10; and a memory management program l that constitutes a part of the operating system program 5. A page table 14 necessary for memory management, an access detection request table 51 related to the present invention,
Update information table 52, pseudo update information table 53, temporary update information table 54, and each user program 2
is stored. The memory management program 1 uses management information such as a page table 14% access detection request table 51 and an update information table 52 necessary for memory management to allocate memory to each user program 2 and manage memory access. , address translation device f! !
13 is a device that converts a logical address in the address space of a user program into a physical address in memory;
By referring to the page table 14 that shows the correspondence between the logical address and the physical address on a page-by-page basis,
The memory management program 1 performs address translation every time the user program 2 accesses memory, and the memory management program 1 uses the function of the address translation device R13 to convert the swap area 16 on the secondary storage device 12 in the same way as before. memory 1
A large-scale virtual memory is realized by using the memory 11 as a destination for expelling pages in the memory 11 when there is no more free memory area in the memory 11. FIGS. 6 and 7 are flowcharts of data processing initialization processing using the access detection function of the present invention and data processing update processing using the update access detection function of the present invention. In the present invention, detection of access to any page can be controlled from a user program. Therefore, as shown in FIG. 6, without initializing the work area in advance, a request is simply issued to detect access to the area (step 101), and if the work area is initialized, If we assume that the data is processed as is (step 10)
2) It is possible to initialize only the pages in the work area accessed by the interrupt request in the form of an interrupt at the time of the first access (step 103). Next, in the present invention, for storage processing after data processing, etc., as shown in FIG. Request to clear. Submit it to the memory management program (step 110).
), and in the data update process (step 111), the process is performed without paying any attention to where in the work area to update or not, and after the process is completed, the updated information of each page in the work area is stored in the memory. Retrieve from management (step 112
), processing such as storage is performed only on the updated page (step +13).Thereby, the user program does not need to perform processing to determine which part of the work area has been accessed during data processing. Furthermore, since initialization and storage processing of unnecessary parts can be omitted, processing time can be shortened. 1 and 2 are explanatory diagrams of the operation of the present invention. Of these, FIG. 1 is a diagram showing an example of an access detection function for initialization processing, etc., and FIG. 2 is a diagram showing an example of an update access detection function for update processing. ff! 1, the contents are new compared to the conventional one in that an access detection request table 51 is provided in addition to the page table I4, and an access detection interrupt function is activated by the memory management program l. The operation of the address translation device 13 and the address translation device [13
The relationship between the page table 14 and the page table 14 is exactly the same as the conventional one, so a description thereof will be omitted. In order to realize the access detection function of the present invention, the access detection request table 51 is converted into a page table! Add to 4. The access detection request table 51 exists corresponding to the address space of each user program 2, and the table 5
] corresponds to each page in the address space of each user program 2. Each entry in the table 51 first receives a request from the user program 2, and
The memory management program 1 sets the 'present' and 'absent' flags. Furthermore, the memory management program 1 rewrites the valid flag in the valid/invalid field on the page table 14 corresponding to 'Yes' on the access detection request table 51 to an invalid flag. As a result, when the address translation device 13 refers to the page table 14 and executes address translation, if the corresponding entry is invalid, an interrupt occurs to the memory management program l. There is. Then, when the address translation device W113 generates an interrupt due to an invalid entry (page fault), the memory management program 1 first activates the access detection interrupt processing 3 for the user program 2, thereby detecting the page corresponding to the entry. Executes initialization. In other words, for an entry set as 'Yes' on the access detection request table 51, when the data processing function group 4 in the user program 2 accesses the page 20 in the corresponding user program address space, the entry is The access detection interrupt processing function 3 in the user program 2 that generates an access detection interrupt and initializes the corresponding page 20 is started, and after the processing is completed, the data processing interval number group 4 is interrupted. Next, the memory management program 1 executes the process of restarting the process.
A detailed explanation will be given of how the access detection request table 51 is actually managed and how the above processing is executed. FIG. 8 is a flowchart of processing when a user program of the present invention requests registration/cancellation of access detection, and FIG. 9 is a flowchart of processing when a page fault occurs by the access detection function of the present invention. In the access detection request registration process of FIG. 8(a), when the memory management program l receives an access detection registration request from the user program 2, it detects access to an entry in the access detection request table 51 corresponding to the requested page. Set to “Yes” to indicate that
0), then set the valid/invalid field 17 of the page table entry corresponding to the requested page to invalid, and when the corresponding page is accessed, the address translation device Fa+3
The page fault interrupt is sent to memory management program 1.
When the data processing function group 4 of the user program 2 accesses the corresponding page 20 in the address space, the access detection request registration process is completed (step 121). In the memory management method of the present invention, the conventional page fault processing is partially modified to
Perform the processing shown in the figure. That is, in the page fault processing shown in FIG. 9, first, as in the conventional case, it is checked whether the faulted page is a page that the user program 2 is allowed to access (step 130), and if the page is not allowed, then , performs error handling (step 136), and if allowed, allocates memory if real memory has not yet been allocated (step +31) and sets the valid/invalid field 1 of the corresponding page table entry.
7 is set to "enabled" (step 132), conventionally,
Although the processing has been completed up to this point, the memory management method of the present invention further executes the following processing, namely, checking the entry in the access detection request table 51 corresponding to the faulted page (step 133). , if ' is present, clear the information of the access detection request table entry (step 134), cause an access detection interrupt to the user program 2,
The interrupt processing function 3 of the user program is started (step 135), and after the function returns, the page fault interrupt processing is ended, and the processing of the interrupted data processing function group 4 is restarted. Further, FIG. 8(b) shows processing in response to a request from the user program 2 to cancel an access detection request for a page for which an access detection request has already been issued. When a release request is issued, the entry in the access detection request table 51 corresponding to the page for which the release request has been made is cleared and set to "no" state (step 122), and the process ends. FIGS. 5(a) and 5(b) are format diagrams of the access detection request table of the present invention. In the embodiment shown in FIG. 1, an access detection request table 51 is used that stores the presence or absence of an access detection request from the user program 2 for each page.
1 may be formatted as shown in FIGS. 5(a) and 5(b). That is, as shown in FIG. 5(a), the area indicates the start address and size, and is defined in a wider area than the page. You can also. Moreover, as shown in FIG. 5(b),
The area may be defined as a start address and an end address. In addition, here, the address is 0x2000...■6
It represents a base number. Next, the update access detection function of the present invention will be explained in detail. FIG. 2 is a diagram showing the operation of the update access detection function of the present invention. In this figure, the difference from the conventional memory management method is that an update information table 52 is provided, and an address conversion device! 213 performs set/reset operations not only on the page table 14 but also on the update information table 52. That is, the address translation device fR1
3, in response to an update access to the address space from the user program 2, update access is performed not only to the update information field 18 of the corresponding entry in the page table 14 but also to the corresponding entry in the update information table 52. Set information indicating that there was. Each entry in this update information table 52 corresponds to each user program 2.
corresponds to each page of the address space. In response to a request from the user program 2, the memory management program 1 clears an arbitrary entry to an ``unupdated'' state, and also serves to read the information and pass it to the user program 2. Address conversion device fi! Step 13 checks all operations in which the user program 2 accesses the address space, and
Upon update access, the entry corresponding to the accessed page in the update information table 52 is set to the ``update'' state. Therefore, the user program 2 issues a request to the memory management program l to clear the necessary entries in the update information table 52 at the necessary time, and
By reading the previously cleared entry in the update information table 52 after executing a certain data process, the update status of each page after an arbitrary point in time can be obtained. By the way, in the above embodiment, not only the update information field 18 of the page table 14 but also the update information field 5
The update access detection function is realized by using address translation device [3] which also sets update access information in [2]. The reason why it is necessary to set update access information separately in this way is that even in the conventional method, the update information field 18 of the page table 14 needs to be used for information for evicting and releasing pages; This is because the update information table 14 must be used for the update access detection function in the present invention. In the embodiment shown in FIG. m2, an address translation device 13 that controls both the page table 14 and the update information table 52 is used. However, in other embodiments, without using a special address translation device 13. It will be explained below that there is also a method of implementing the present invention using the address translation device 5213 which operates in a conventional manner. That is, update field 18 of page table 14
This method implements the update access detection function of the present invention using a conventional address translation device v113 that sets update access information only in one location. FIG. 4 is a configuration diagram of an access detection request table of an update access detection function showing another embodiment of the present invention;
FIG. 0 is a processing flowchart of the update access detection function in FIG. As is clear from FIG. 4, the address translation device 13 is
Since the update access information is set only in the update information field of the page table 14, in this embodiment, instead of the update information table 52. Pseudo update information table 53 and temporary update information table 54
and will be newly established. Like the update information table 52, each entry in each of these tables 53 and 54 corresponds to each page of the address space of each user program. To explain each function of these tables 53 and 54, the information in the update information table 52 in FIG. handle. In addition, the temporary update information table 54 and the page table 14
Each update information field 18 in the ORL corresponds to the information in the update information field in the page table 14 in FIG. FIG. 18 is a diagram showing the operation time chart of the table in FIG. 4 in comparison with the operation chart of the table in FIG. 2. The upper two charts 901 and 902 in this figure
indicates the operation chart of the table in FIG. 2, and the bottom three charts 903, 904, and 905 indicate the operation chart of FIG. 4. M(X, Y) in FIG. 0 is the table corresponding to FIG. Indicates that information on whether there has been update access to the corresponding page between time X and time Y is held. Also, time T indicates the time when memory was allocated to the corresponding page, and T is the time when a request to clear update information for the page was received from program 2, and T is the time when the page was removed from the memory and the memory was released.
Time T is the time when the memory was reallocated to the page, and the lowercase letters represent any time between these times. In order to implement conventional virtual storage, as shown in chart 901, update information for the page after the previous memory allocation is required when evicting the page from memory. In addition, in order to realize a mechanism for returning update information after a certain point in the present invention to the user program, the chart 902
As shown in FIG. 2, it is necessary to hold update information for the page since summer at the time T specified by the user program so that it can be returned whenever requested by the user program. 21st! In the embodiment 1, this is achieved using an address translation device RA13 that records update accesses for each page in both the update information field 18 of the page table 14 and the update information table 52. However, in this embodiment, since a conventional address translation device is used that stores update access information only in the update information field 18 of the page table 14, the 41st! Chart I table 9
03,904.905, the update information field of the conventional page table in FIG. 2 - the update information field of the page table OR pseudo-update It is an information table, and ff! The relationship of update information table in FIG. 2 = update information field of page table OR temporary update information table is established. A method of managing the update information field 18, pseudo update information table 53, and temporary update information table 54 of the page table 14 will be explained with reference to diagram m10. 1O (a) and (b) are processes based on requests from the user program 2, and FIGS. 1O (c) and (d) are processes based on requests from the conventional virtual storage system. First, FIG. 10(a) shows processing when the memory management program l receives a request from the user program 2 to clear update access information for a certain page. This corresponds to the processing at time T in FIG. In the embodiment of FIG. 2, the corresponding update information table 5
However, in the embodiment shown in FIG. 4, the corresponding entry in the pseudo update information table 53 is cleared (step 140), and the update information field of the page table entry corresponding to the requested page is cleared. 18 is ORed with the corresponding temporary update information table 54 entry and stored (step 141), and the update information field 18 of the page table entry is cleared (step 142), thereby updating the page table entry. Only the contents of the temporary update information table that copied the information remain, and all other table contents are cleared. Next, FIG. 1O(b) shows processing when the user program 2 issues a read request for update information of a certain page to the memory management program 1. As mentioned above, the update information table 52 of the fJs2 diagram is
Since the pseudo update information table 53 and the update information field 18 of the page table 14 are in an OR1 relationship, in response to a request to read update information, the entry of the pseudo update information table 53 corresponding to the requested page and the corresponding page OR with the information in the update information field of the table entry
The updated information for the page from time T shown in FIG. 18 to the present time is returned to the user program 2 (step 150). Next, FIG. 51510 (C) shows the real memory release process for each page. This corresponds to the processing at time T in FIG. When memory is released, when memory is reallocated the first time and then released again, it can now be determined whether the corresponding page has been updated between the current memory release and the next memory release. Therefore, it is necessary to clear the update information field 18 of the corresponding page table 14. To round it off, first, the information in the update information field 18 of the page table entry corresponding to the page whose real memory is to be released is
It is ORed with the corresponding entry in the pseudo update information table 53 and stored (step 160). As a result, even if the page table 14 is cleared,
The update information registered there is copied and saved in the pseudo update information table 53.Next, check whether the page has never been swapped out or the corresponding update information field 18 and the corresponding update information. Check both of the entry information in the temporary update information table 54 and check whether either of them indicates that the corresponding page has been updated (step +
61), that is, in the conventional virtual memory system, by checking only the update information field 18 of the page table entry, it is possible to check whether the page has been updated between the previous memory release and the current memory release. In contrast, in this embodiment, both the page table entry and the corresponding entry in the temporary update information table 54 are checked. Thereby, it is possible to check both the update information from before the update access information clear request was made from the user program 2 and the update information that occurred after that. If the determination process in step 161 is true, that is, if the page has never been swapped out, or if the page has been updated since the previous memory release, the page is moved to the swap area of the secondary storage device 12. Step 16
2), Update information field of the corresponding page table entry! 8 and the entries in the temporary update information table 54 are cleared (step 163), and the memory allocated to that page is released (step 164).
), On the other hand, if the determination process (step 161) is false, that is, if the page was swapped out in the previous memory release and the page has not been updated since then, only the memory release is executed (step 164). . Next, FIG. 10(d) shows processing when real memory is allocated to a certain page. This corresponds to the processing at time T or T in FIG. In this case, the update information field of the corresponding page table entry is exactly the same as the conventional method! All you need to do is clear step 8 (step +70). By performing the processing shown in FIG. 10, update access according to the present invention can be achieved using a conventional address translation device that sets update information access information for a page only in the update information field 18 of a page table entry. Both detection functions can be realized. Next, another embodiment of the update information reading method of the present invention will be described. In the embodiment shown in FIG. 2, the memory management program 1 reads the update information of each page stored in the update information table 52 in response to a request from the user program 2, and returns it to the user program 2. Instead of returning update information for each page, the memory management program l that has received a request from the user program 2 refers to the update information table 52 and determines whether each page has been updated or not. Each location Fl depending on whether it is updated or not updated! For example, upon request from user program 2, memory '1' may be activated.
The 7F11 program 1 can start the program 8 function when there is an update access to the page, and start the program B function when there is no update access. Next, a modification of the embodiment of the present invention will be described. In the embodiments shown in FIGS. 1, 2, and 4, the access detection request table 51, update information table 52, pseudo update information table 53, and temporary update information table 54 are provided as independent tables. , instead of doing so, each entry may be one field of the page table 14, that is, the page table 14 includes, in addition to the valid/invalid field 17, the update information field 18, and the physical address 19, the access detection request. field and an update information field (or a pseudo update information field and a temporary update information field). Figures fjitt to Figure 14 show examples of how the present invention works, and Figure 11 shows one 51! FIG. 2 is a conceptual diagram of file processing according to Akira. Now, as shown in FIG. 11, consider the case where a file 15a stored in the file area 15 in the secondary storage device 12 is to be updated. First, a work area m is defined on the address space of the user program corresponding to the size of the file 15a (shaded area), an access detection request is issued to the memory management program 1 for this area, and As the access interrupt processing, a process (+03d) is registered that reads the part corresponding to the accessed page from the file 15a, performs conversion if necessary, and then loads it into the corresponding page. When the area m of the part is accessed, a reservation is made to perform necessary conversion on the data of the file 15a and then load it into that area. Then, if you execute data processing (102d), there will still be file 15.
When a page in which the data of a is not loaded is accessed, an interrupt occurs, and only the accessed page can be converted and loaded into the corresponding area. Furthermore, before data processing, the update access information p of all pages in the work area is cleared, and after the access interrupt processing is completed, by clearing the update access information p of the page that caused the access M interrupt, After data processing, processing (180) including storage in a separate file 15b depending on whether or not each page in this work area has been updated can be performed. That is, after data processing, the update access information is read out and only the updated part p is selectively processed, or another process is performed depending on whether there is an update, or, for example, only the updated part is processed. File 15a
You can store it while converting it back to , or save it in another file 1
5b. FIG. 12 is a conceptual diagram of a name management table management method using the present invention. As a method of use other than that shown in FIG. 11, it can also be used for initialization processing of a name management table used by a compiler or the like. That is, as shown in FIG. 12, Oη performs the name management table reference/registration process (+02e).
Then, an access detection request is issued to the table area, an access detection interrupt is generated when the table area is accessed, and only the necessary part is initialized by this interrupt (103e). Note that n is an uninitialized area. , q is the table month area. FIG. 13 is an explanatory diagram of a method of allocating address space when performing matrix operations using the present invention, and FIG. 14 is a flowchart of the matrix operation processing method of FIG. 13. Another example of use is for sparse large-scale matrix operations. As an example of matrix multiplication, first divide the two matrices A and B to be operated on, and the storage location C after the operation, into square submatrices in page units and store them in the address space, as shown in Figure 13. Place it in Although FIG. 13 shows only matrix A, the same is true for matrix B and C. Access detection requests are issued to these areas in the 0th order, and the access interrupt processing function is as follows. A function that clears the corresponding page to 0! IQ (step 190), and also clear all update access information for pages in these areas (step 19, that is, create a 6th order 2 matrix A starting from a state with no update information, Insert non-zero elements into B (step 1
92), non-O elements are significant digits other than zero. After that, update access information of pages corresponding to matrices A and B is obtained from the memory management program (step 193
), and their updated access information aiJ+ b i
When J, from the following equation, only when al) lbkJ is not O, submatrix operation A111BkJ is performed to calculate C1J. Then, only when the calculated C1J is not 0, it is actually written into the C1J area (step 194). Thereby, the calculation result can be obtained by reading the CIJ. Furthermore, this C1J is transferred to A, where the non-O element writing process (step 194) has been completed
It is also possible to consider it as B and repeat the calculations from step 193 onwards. As described above, in this embodiment, the user program can detect access to any page in the address space in the form of an interrupt, and can also detect that each page is updated after a certain point. You can know whether it is true or not. Therefore, by using this for various processing. The user program does not need to perform any special determination processing, and only needs to process the necessary areas, reducing processing time and facilitating program creation. [Effects of the Invention] As explained above, according to the present invention, when performing large-scale data processing, only the necessary area can be initialized without initializing the entire work area, and the data Even if you do not have to remember all the updated locations during processing, you can obtain update information for each page in the work area from the memory management program after processing, so you can perform processes such as storing only updated pages in a file. It is possible to do this.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例を示すページアクセス検出部
の機能ブロック図、第2図は本発明の一実施例を示すペ
ージ更新アクセス検出部の機能ブロック園、第3図は本
発明が適用される情報処理システムの全体構成図、第4
図は本発明の他の実施例を示すページ更新アクセス検出
部の要部機能ブロック図、第5図は第1図のアクセス検
出要求テーブルの別の構成図、f56図は本発明のアク
セス検出機能を用いた初期化処理のフローチャート。 第7図は本発明の更新アクセス検出機能を用いた更新処
理のフローチャート、第8図は本発明におけるユーザプ
ログラムからのアクセス検出の登録・解除要求時のフロ
ーチャート、第9図は本発明のアクセス検出機能のペー
ジフォールト時のフローチャート、第10図は第4図の
更新アクセス検出機能の処理フローチャート、第11図
は本発明の応用例を示すファイル処理の概念図、第12
図は本発明の応用例を示す名前管理テーブルの管理方法
の処理概念図、第13図は本発明の応m例を示す行列演
算のアドレス空間の一割当て方法の説明図・第+41i
lはm13rI4における行列演算の処理フローチャー
ト、第15図は従来の仮想記憶方式のメモリ管理方法を
示す機能ブロック図、第16図およびtjS17図は従
来のメモリ管理方法を用いた初期化処理と更新処理のフ
ローチャート、第18図は第2図及び第4図における各
テーブル起動のタイムチャートである。 1:メモリ管理プログラムS2ニユーザブログラム、3
:アクセス検出割り込み処理関数、4:データ処理関数
群、5:オペレーティングシステムプログラム、lO:
中央処理装置、ll:メモリ、12:二次記憶装置、1
3ニアドレス変換装置、14:ページテーブル、I5:
ファイルエリア、16:スワップエリア、17二ページ
テーブルの有効無効フィールド、18二ページテーブル
の更新情報フィールド、19:ページテーブルの物理ア
ドレスフィールド、20:アクセス検出対象ページ、5
1:アクセス検出要求テーブル、52:更新情報テーブ
ル、53:疑似更新情報テーブル、54ニ一時更新情報
テーブル。 メモリ 第 5 図 (a) 第 図 第 8 図 (a) 第 図 第 図(その2) 第 1 図(その3) (d) 実メモリ割当て時 第 1 図 第 図 (aJ 従来方式1 ( 従来方式2
FIG. 1 is a functional block diagram of a page access detection section showing an embodiment of the present invention, FIG. 2 is a functional block diagram of a page update access detection section showing an embodiment of the present invention, and FIG. 3 is a functional block diagram of a page access detection section showing an embodiment of the present invention. Overall configuration diagram of the applied information processing system, Part 4
The figure is a functional block diagram of the main part of the page update access detection unit showing another embodiment of the present invention, Figure 5 is another configuration diagram of the access detection request table of Figure 1, and Figure f56 is the access detection function of the present invention. Flowchart of initialization processing using . FIG. 7 is a flowchart of the update process using the update access detection function of the present invention, FIG. 8 is a flowchart when requesting registration/cancellation of access detection from a user program in the present invention, and FIG. 9 is a flowchart of the access detection of the present invention. 10 is a flowchart of the function when a page fault occurs. FIG. 10 is a processing flowchart of the update access detection function of FIG. 4. FIG. 11 is a conceptual diagram of file processing showing an application example of the present invention.
The figure is a processing conceptual diagram of a name management table management method showing an applied example of the present invention, and Fig. 13 is an explanatory diagram of an address space allocation method for matrix operations showing an applied example of the present invention.
l is a processing flowchart of matrix operations in m13rI4, Fig. 15 is a functional block diagram showing a conventional virtual memory management method, and Figs. 16 and tjS17 are initialization processing and update processing using the conventional memory management method. FIG. 18 is a time chart for starting each table in FIGS. 2 and 4. 1: Memory management program S2 user program, 3
: access detection interrupt processing function, 4: data processing function group, 5: operating system program, lO:
central processing unit, ll: memory, 12: secondary storage device, 1
3 Near address translation device, 14: Page table, I5:
File area, 16: Swap area, 17 2-page table valid/invalid field, 18 2-page table update information field, 19: Physical address field of page table, 20: Access detection target page, 5
1: Access detection request table, 52: Update information table, 53: Pseudo update information table, 54 Temporary update information table. Memory Fig. 5 (a) Fig. 8 (a) Fig. 8 (Part 2) Fig. 1 (Part 3) (d) When real memory is allocated Fig. 1 (aJ Conventional method 1 (Conventional method) 2

Claims (1)

【特許請求の範囲】 1、ユーザプログラムによりアクセスされるアドレス空
間を、ページ単位に分割して管理するメモリ管理プログ
ラムを備えた情報処理システムにおいて、ユーザプログ
ラムが該ユーザプログラムのアドレス空間上の任意の領
域に対してアクセスの検出要求を予めメモリ管理プログ
ラムに対して出すと、該メモリ管理プログラムはアクセ
ス検出要求のあった領域を記憶しておき、上記要求時以
降にユーザプログラムが上記領域内の各ページをアクセ
スした時、該ユーザプログラムに割り込みを起こすこと
を特徴とするメモリ管理方式。 2、ユーザプログラムによりアクセスされるアドレス空
間を管理するオペレーティングシステムを備えた情報処
理システムにおいて、ユーザプログラムは上記オペレー
ティングシステムに対して予め該ユーザプログラムのア
ドレス空間上のある領域にアクセス検出要求を出した後
、該領域内の一部分がアクセスされた時、どこがアクセ
スされたかを上記オペレーティングシステムから割り込
みを受けることにより、該領域内のアクセスされた部分
のみを処理することを特徴とする情報処理方式。 3、ユーザプログラムによりアクセスされるアドレス空
間を、ページ単位に分割して管理するメモリ管理プログ
ラムを備えた情報処理システムにおいて、ユーザプログ
ラムのアドレス空間上の任意のページを指定して、該ユ
ーザプログラムから要求があると、上記メモリ管理プロ
グラムは要求があった時点以降の上記ページへの更新ア
クセスの有無を記憶しておき、該ユーザプログラムから
送出要求があった時に、ページ毎の更新アクセスの有無
に関する情報を上記ユーザプログラムに送出することを
特徴とするメモリ管理方式。 4、上記ページ毎の更新アクセスの有無に関する情報を
ユーザプログラムに送出する代りに、該ユーザプログラ
ムから該ページ毎の更新アクセスの有無に関する情報の
送出要求があった時、メモリ管理プログラムは上記ユー
ザプログラムが指定した更新の有無に対応して、上記ユ
ーザプログラムが指定した処理を起動することを特徴と
する請求項3記載のメモリ管理方式。 5、請求項1に記載されたメモリ管理方式において、上
記メモリ管理プログラムは各ユーザプログラムのアドレ
ス空間の各ページに対応したアクセス検出要求テーブル
を設け、各ユーザプログラムから指定されたページに対
するアクセス検出要求を受けると、上記アクセス検出要
求テーブルの対応するエントリに検出要求の有無を登録
するとともに、アドレス変換装置が参照するページテー
ブル上の対応するページテーブルエントリを変更して、
該ページに対してアクセスされるとページフォールトの
割り込みが発生するようにし、その後、該ページにアク
セスがあり、ページフォールトした時に実メモリが未割
当て状態であれば実メモリを割当てた後に、上記アクセ
ス検出要求テーブルの対応エントリを参照して、該ペー
ジに対してアクセス検出要求有が登録されている時には
、検出要求を出したユーザプログラムに対してプログラ
ム割り込みを起こすことを特徴とするメモリ管理方式。 6、請求項3に記載されたメモリ管理方式において、上
記メモリ管理プログラムは、各ユーザプログラムのアド
レス空間上の各ページに対応して、更新アクセスがあっ
たことを記録する更新情報テーブルを設け、各ユーザプ
ログラムからの要求により任意の時点で上記更新情報テ
ーブルの任意のエントリをクリアすることを特徴とする
メモリ管理方式。 7、ページ内の一部分でも更新された時、該ページが更
新されたことを該ページに対応した領域に設定登録する
アドレス変換装置を備えた情報処理システムにおいて、
該アドレス変換装置はページテーブルおよび請求項3に
記載されたユーザプログラムのアドレス空間上のページ
への更新アクセスの有無を記憶する更新情報テーブルの
2つテーブルに対して、同時に更新登録することを特徴
とするメモリ管理方式。 8、請求項3に記載のメモリ管理方式において、各ペー
ジへの更新アクセスに対して、対応するページテーブル
エントリに1つの更新情報のみを登録するアドレス変換
装置を用いる場合、該ページテーブルの他に各ユーザプ
ログラムのアドレス空間に対応して疑似更新情報テーブ
ルと一時更新情報テーブルとを設け、対応するページに
対して実メモリを割当てた時と該ページをスワップアウ
トした時に上記ページテーブル上の更新情報をクリアし
、上記疑似更新情報テーブルと一時更新情報テーブルも
最初にクリアして、ユーザプログラムからあるページに
対する更新アクセス検出要求を受けると、上記更新情報
テーブルの対応するエントリをクリアすると同時に、一
時更新情報テーブルの対応するエントリにページテーブ
ルの対応する更新情報をORした後、該ページテーブル
の更新情報をクリアし、またあるページに割当てられた
実メモリを別のプログラムに割当てる場合には、先ず該
ページに対応するページテーブルエントリの更新情報を
上記疑似更新情報テーブルの対応するエントリにORし
、さらに該ページテーブルエントリの更新情報と一時更
新情報テーブルの対応するエントリを調べて、どちらか
一方がセットされている場合、ないし該ページが一度も
スワップアウトされていない場合には、該ページをスワ
ップアウトした後に、該ページテーブルと一時更新情報
テーブルの対応する更新情報をクリアする処理を行って
、メモリを管理し、ユーザプログラムから更新情報取り
出し要求があったときには、該ユーザプログラムに対応
するページテーブルと疑似更新情報テーブルのユーザプ
ログラムから要求されたページに対応する部分の更新情
報を参照して、両情報をORして該ユーザプログラムに
送出することを特徴とするメモリ管理方式。 9、請求項5に記載されたメモリ管理方式において、上
記アクセス検出要求テーブルを、ページ単位にアクセス
検出要求の有無を記憶する代わりに、アクセス検出要求
のあった領域情報の形で保持することを特徴とするメモ
リ管理方式。 10、前記ユーザプログラムは、ファイル処理を行う場
合に、該ファイル全体ないし一部分に対応して確保した
領域をオペレーティングシステムに対してアクセス検出
要求を行い、かつ該領域へのアクセス検出時の割り込み
処理として、ファイルデータを必要に応じて変換しなが
ら対応するページにロードする関数を登録し、アクセス
された一部分だけをメモリ上に変換ロードしながらトラ
ンザクション処理を行い、さらに該トランザクション処
理を行う前に、該領域に更新アクセス有無の検出要求を
出しておき、該トランザクション結果を更新された部分
とされていない部分とに別けて処理し、元のファイルな
いし別のファイルに格納する請求項1または3記載のメ
モリ管理方式を用いたことを特徴とするファイル処理方
式。 11、前記ユーザプログラムは、テーブル処理を行う場
合に、最初に該テーブルの全領域を初期化することなく
、データを登録する際に割り込みを受け、該割り込みの
処理に必要なテーブルの一部分だけを初期化する請求項
2記載のメモリ管理方式を用いたことを特徴とするテー
ブル処理方式。 12、前記ユーザプログラムは、一部分だけが他の要素
と異なる疎な大型行列計算処理を行う場合に、対象の行
列をページ単位の部分行列の集合の形で表現し、最初全
領域を初期化することなく、異なる要素だけを書き込む
ことにより、必要な部分行列だけを初期化し、さらに行
列間の演算を行う際に、更新された部分行列のみを検出
して、必要な部分行列だけを選択的に行列演算する請求
項2または3に記載のメモリ管理方式を用いたことを特
徴とする行列処理方式。
[Scope of Claims] 1. In an information processing system equipped with a memory management program that divides and manages an address space accessed by a user program in page units, a user program can access any part of the address space of the user program. When a request to detect access to an area is sent to a memory management program in advance, the memory management program stores the area for which the access detection request was made, and after the request, the user program A memory management method characterized by causing an interrupt to the user program when a page is accessed. 2. In an information processing system equipped with an operating system that manages an address space accessed by a user program, the user program issues a request to the operating system to detect access to a certain area in the address space of the user program in advance. After that, when a part of the area is accessed, only the accessed part of the area is processed by receiving an interrupt from the operating system as to which part has been accessed. 3. In an information processing system equipped with a memory management program that manages the address space accessed by a user program by dividing it into page units, specify any page in the address space of the user program and access the address space from the user program. When a request is made, the memory management program memorizes whether there has been an update access to the page since the time of the request, and when there is a send request from the user program, it stores information regarding whether there is an update access for each page. A memory management method characterized by sending information to the user program. 4. Instead of sending the information regarding the presence or absence of update access for each page to the user program, when there is a request from the user program to send information regarding the presence or absence of update access for each page, the memory management program transmits the information to the user program. 4. The memory management system according to claim 3, wherein the process specified by the user program is activated in response to whether or not there is an update specified by the user program. 5. In the memory management system according to claim 1, the memory management program provides an access detection request table corresponding to each page of the address space of each user program, and receives access detection requests for pages specified by each user program. When the address translation device receives the request, it registers the presence or absence of the detection request in the corresponding entry of the access detection request table, and changes the corresponding page table entry on the page table referenced by the address translation device.
A page fault interrupt is generated when the page is accessed, and if the page is accessed and the real memory is unallocated when the page fault occurs, real memory is allocated and then the above access is performed. A memory management method characterized in that, by referring to a corresponding entry in a detection request table, when an access detection request presence is registered for the page, a program interrupt is caused to a user program that has issued a detection request. 6. In the memory management method according to claim 3, the memory management program provides an update information table for recording update access for each page in the address space of each user program, A memory management method characterized in that any entry in the update information table is cleared at any time upon request from each user program. 7. In an information processing system equipped with an address translation device that sets and registers the fact that the page has been updated in an area corresponding to the page when even a part of the page is updated,
The address translation device is characterized in that it simultaneously updates and registers two tables: a page table and an update information table that stores the presence or absence of update access to a page in the address space of a user program. A memory management method that uses 8. In the memory management system according to claim 3, when using an address translation device that registers only one piece of update information in the corresponding page table entry for update access to each page, in addition to the page table, A pseudo update information table and a temporary update information table are provided corresponding to the address space of each user program, and update information on the page table is provided when real memory is allocated to the corresponding page and when the page is swapped out. , and also clears the above pseudo update information table and temporary update information table first. When receiving an update access detection request for a certain page from the user program, clears the corresponding entry in the above update information table and at the same time clears the temporary update information table. After ORing the corresponding update information in the page table with the corresponding entry in the information table, clear the update information in the page table, and if you want to allocate the real memory allocated to a certain page to another program, first The update information of the page table entry corresponding to the page is ORed with the corresponding entry of the above pseudo update information table, and the update information of the page table entry and the corresponding entry of the temporary update information table are checked, and one of them is set. If the page has been swapped out, or if the page has never been swapped out, after swapping out the page, clear the corresponding update information in the page table and temporary update information table to free up memory. When there is an update information retrieval request from a user program, it refers to the update information in the page table corresponding to the user program and the part of the pseudo update information table corresponding to the page requested by the user program, and retrieves both. A memory management method characterized by ORing information and sending it to the user program. 9. In the memory management method according to claim 5, the access detection request table is held in the form of area information for which an access detection request has been made, instead of storing the presence or absence of an access detection request for each page. Characteristic memory management method. 10. When performing file processing, the user program requests the operating system to detect access to an area reserved for the whole or part of the file, and performs interrupt processing when detecting access to the area. , register a function that converts the file data as necessary and loads it to the corresponding page, performs transaction processing while converting and loading only the accessed part into memory, and before performing the transaction processing, 4. A method according to claim 1 or 3, wherein a request is issued to detect the presence or absence of an update access to an area, and the transaction result is processed separately into an updated part and a non-updated part and stored in the original file or another file. A file processing method characterized by using a memory management method. 11. When performing table processing, the user program receives an interrupt when registering data without first initializing the entire area of the table, and processes only the part of the table necessary for processing the interrupt. A table processing method characterized in that the memory management method according to claim 2 is used for initialization. 12. When performing a large sparse matrix calculation process in which only one part is different from other elements, the user program expresses the target matrix in the form of a set of submatrices in page units, and first initializes the entire area. By writing only the different elements, you can initialize only the necessary submatrices, and when performing operations between matrices, only the updated submatrices can be detected and only the necessary submatrices can be selectively selected. A matrix processing method characterized by using the memory management method according to claim 2 or 3, which performs matrix operations.
JP1185292A 1989-07-17 1989-07-17 Memory control system and matrix, table, file and information processing systems using memory control system Pending JPH0348952A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1185292A JPH0348952A (en) 1989-07-17 1989-07-17 Memory control system and matrix, table, file and information processing systems using memory control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1185292A JPH0348952A (en) 1989-07-17 1989-07-17 Memory control system and matrix, table, file and information processing systems using memory control system

Publications (1)

Publication Number Publication Date
JPH0348952A true JPH0348952A (en) 1991-03-01

Family

ID=16168308

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1185292A Pending JPH0348952A (en) 1989-07-17 1989-07-17 Memory control system and matrix, table, file and information processing systems using memory control system

Country Status (1)

Country Link
JP (1) JPH0348952A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5441561A (en) * 1993-02-23 1995-08-15 Fuji Xerox Co., Ltd. Ink-jet recording ink and ink-jet recording methods thereof
US6029210A (en) * 1997-05-02 2000-02-22 Fujitsu Limited Memory initialization system selectively outputting a data between a normal data stored in the memory and a fixed value according to a registered access state

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5441561A (en) * 1993-02-23 1995-08-15 Fuji Xerox Co., Ltd. Ink-jet recording ink and ink-jet recording methods thereof
US6029210A (en) * 1997-05-02 2000-02-22 Fujitsu Limited Memory initialization system selectively outputting a data between a normal data stored in the memory and a fixed value according to a registered access state

Similar Documents

Publication Publication Date Title
US6681239B1 (en) Computer system having shared address space among multiple virtual address spaces
US5274789A (en) Multiprocessor system having distributed shared resources and dynamic and selective global data replication
US6061773A (en) Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US6125430A (en) Virtual memory allocation in a virtual address space having an inaccessible gap
EP1960878B1 (en) Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions
US5873127A (en) Universal PTE backlinks for page table accesses
EP0431467B1 (en) Multiprocessor system having distributed shared resources and dynamic global data replication
US5835961A (en) System for non-current page table structure access
JPS62165250A (en) Virtual memory
JPH10254756A (en) Use of three-state reference for managing referred object
JP2002268933A (en) Cluster system
US3778776A (en) Electronic computer comprising a plurality of general purpose registers and having a dynamic relocation capability
JPS62174849A (en) Memory managing system
JPH0279141A (en) Virtual index mechanism
US5873120A (en) Variable split virtual address space allocation with multi-system compatibility
CN111309310A (en) JavaScript object persistence framework facing nonvolatile memory
US5159677A (en) Method and system for storing data in and retrieving data from a non-main storage virtual data space
CN115617542A (en) Memory exchange method and device, computer equipment and storage medium
JP2017228267A (en) System and method for merging partially-writhing result in retirement phase
US5388244A (en) Controls for initial diversion of page-frame logical content as part of dynamic virtual-to-real translation of a virtual page address
KR102130813B1 (en) Re-configurable processor and method for operating re-configurable processor
JP2829115B2 (en) File sharing method
JPH0348952A (en) Memory control system and matrix, table, file and information processing systems using memory control system
JPS5897770A (en) Access controlling system for vector instruction
JPS62251851A (en) Overlay control system for electronic computer system