JPH0455960A - 階層メモリ管理方式および装置 - Google Patents

階層メモリ管理方式および装置

Info

Publication number
JPH0455960A
JPH0455960A JP2166416A JP16641690A JPH0455960A JP H0455960 A JPH0455960 A JP H0455960A JP 2166416 A JP2166416 A JP 2166416A JP 16641690 A JP16641690 A JP 16641690A JP H0455960 A JPH0455960 A JP H0455960A
Authority
JP
Japan
Prior art keywords
page
space
virtual
track
data
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
JP2166416A
Other languages
English (en)
Inventor
Masamichi Kato
加藤 正道
Hiroyuki Okuda
奥田 弘幸
Tokuyuki Iwai
岩井 徳幸
Kenji Sato
健二 佐藤
Hitoshi Suzuki
仁 鈴木
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 JP2166416A priority Critical patent/JPH0455960A/ja
Publication of JPH0455960A publication Critical patent/JPH0455960A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は、階層メモリ管理方式および装置に関し、さら
に詳しくは、ページサイズの異なる複数の仮想記憶空間
を管理する階層メモリ管理方式および装置に関する。
[従来の技術] 第25図は、従来の階層メモリ管理方式の概念図である
仮想メモリ空間25は、ページと呼ばれる4にバイトの
単位に分割されており、ディスク装置8の記憶空間も同
サイズのページに分割され、仮想メモリ空間25とディ
スク装置8の記憶空間とがマ・ノピングされている。
また、主メモリ6も4にバイトのページに分割されてお
り、ディスク装置8のページの一部が読み込まれている
応用プログラム21が仮想メモリ空間25にアクセスす
ると、オペレーティングシステム23のメモリ管理プロ
グラム24は、そのアクセスしたページが主メモリ6上
にあるか否かをチエツクする。もし主メモリ6上にあれ
ば、応用プログラム21を主メモリ6上の該当ページに
アクセスさせる。もし主メモリ6上になければ、ディス
ク装置8から主メモリ6に該当ページを読み込んでから
、その主メモリ6上の該当ページに応用プログラム21
をアクセスさせる。
他方、特開平1−239654号公報には、データ専用
のディスク装置を付加した場合に、そのデータ専用のデ
ィスク装置と仮想メモリ空間との間でデータの入出力を
行うデータ入出力方式か開示されている。
これは、データ専用のディスク装置に対する専用の仮想
メモリ空間を別個に設けて、その仮想メモリ空間を介し
てデータ専用のディスク装置と主メモリの間でデータの
入出力を行えば、主メモリと元の仮想メモリ空間とは対
応付けがなされているから、結局、主メモリを介してデ
ータ専用のディスク装置と元の仮想メモリ空間の間でデ
ータの入出力を行うことが出来る、というものである。
[発明が解決しようとする課題] 上記従来の階層メモリ管理方式では、仮想メモリ空間で
管理する対象がプログラムである場合には所期の効果を
得ることか出来るが、仮想メモリ空間で管理する対象が
ファイルである場合には所期の効果を得ることが出来な
い問題点がある。
すなわち、上記従来の階層メモリ管理方式では、ページ
サイズを4にバイトとしており、これはプログラムのよ
うに一般的にサイズが小さく、アクセスが局所的で頻度
が高いものに対しては適合するため所期の効果を得るこ
とか出来るが、ファイルのように一般的にサイズが大き
く、アクセスが大局的で頻度が低いものに対しては適合
しないため所期の効果を得ることが出来ない問題点があ
る。
他方、特開平1−239654号公報に開示のデータ入
出力方式では、仮想メモリ空間を2種類設けているが、
ページサイズに対する配慮がなされておらず、上記従来
の階層メモリ管理方式の問題点を解決するものではない
そこで、本発明の目的は、プログラムとファイルとでペ
ージサイズを変えることを可能とし、より高速処理を実
現することが出来る階層メモリ管理方式および装置を提
供することにある。
[課題を解決するための手段] 本発明は、仮想メモリ空間を実現する階層メモリ管理方
式において、論理ページは基本ページサイズおよび基本
ページサイズの整数倍のページサイズとし、物理ページ
は基本ページサイズとし、基本ページサイズの論理ペー
ジを1個の物理ページに対応付けると共に基本ページサ
イズの整数倍の論理ページを整数個の物理ページに対応
付けることを特徴とする階層メモリ管理方式を提供する
上記構成において、基本ページサイズの整数倍の論理ペ
ージは、ディスク装置のトラックまたはシリンダサイズ
に近いページサイズとすることが好ましい。
また、基本ページサイズの論理ページを仮想プログラム
空間として割り当て、基本ページサイズの整数倍の論理
ページを仮想ファイル空間として割り当てることが好ま
しい。
また、本発明は、アクセス命令が仮想プログラム空間に
アクセスするのが仮想ファイル空間にアクセスするのか
を判定するアクセス先判定手段と、仮想プログラム空間
にアクセスすると判定した場合は論理ページを1mの物
理ページに対応付けると共に仮想ファイル空間にアクセ
スすると判定した場合は論理ページを整数個の物理ペー
ジに対応付ける管理手段を具備したことを特徴とする階
層メモリ管理装置を提供する。
[作用J 本発明の階層メモリ管理方式および装置では、仮想メモ
リ空間の論理ページには、基本ページサイズのものと、
基本ページサイズの整数倍のものとがあるため、前者を
仮想プログラム空間とし、後者を仮想ファイル空間とす
ることにより、対象の性質に適合した効率の良い管理を
行うことが出来る。
一方、物理ページは基本ページサイズで管理するため、
管理処理を単純化でき、実行効率を向上できる。
すなわち、アクセス性能やシステムのスルーブツトを向
上することが出来る。
[実施例] 以下、図に示す実施例により本発明をさらに説明する。
なお、これにより本発明が限定されるものではない。
第9図は、本発明の階層メモリ管理方式を実施する計算
機システム1を示すブロック図である。
この計算機システム1は、計算や制御を行う処理装置2
と、ネットワークを通じて他のシステムとデータの送受
信を行う通信制御装置3と、コマンドの入力やデータの
入力を行なうためのキーボード4と、処理結果の表示や
入力データの表示を行なうためのデイスプレィ5と、主
メモリ6と。
ディスク制御装置7と、データやプログラムを格納して
おくためのディスク装置8とが、システムバス9に接続
されて構成されている。
第1図は、上記計算機システム1における階層メモリ管
理方式の概要を示すものである。
仮想メモリ空間25は、4にバイトのページに分割され
ており、ディスク装置8の記憶空間も同サイズのページ
に分割され、仮想メモリ空間25とディスク装置8の記
憶空間とかマツピングされている。
また、主メモリ6も4にバイトのページに分割されてお
り、ディスク装置8のページの一部が読み込まれている
応用プログラム21は、4にバイトサイズのページに分
割された仮想メモリ空間(以下、仮想プログラム空間と
称する)26と、16にバイトサイズのページに分割さ
れた仮想メモリ空間(以下、仮想ファイル空間と称する
)27とを有しており、入出力命令以外では仮想プログ
ラム空間26にアクセスし、入出力命令では仮想ファイ
ル空間27にアクセスする。
仮想ファイル空間270ページサイズは、仮想プログラ
ム空間26のページサイズの整数倍で且つ、ディスク8
装置のトラックサイズに近い値として決めたものである
応用プログラム21が仮想プログラム空間26または仮
想フッイル空間27にアクセスすると、オペレーティン
グシステム23の論理/論理ページ変換プログラム28
が、アクセスした仮想プログラム空間26または仮想フ
ァイル空間27の論理ページQを、仮想メモリ空間25
の論理ページPに変換する。
オペレーティングシステム23のメモリ管理プログラム
24は、その変換された仮想メモリ空間25の論理ペー
ジPが主メモリ6上にあるか否かをチエツクする。そし
て、主メモリ6上にあれば、その主メモリ6上のページ
に応用プログラム21をアクセスさせる。ディスク装置
8上にあれば、そのページを主メモリ6上の空いている
ページに読み込み(主メモリ6上に空いているページか
ないときは、主メモリ6上にある不必要と思われるペー
ジをディスク装置8上に書き出して、空きページを作り
出す)、読み込んだ主メモリ6上のページに応用プログ
ラム21をアクセスさせる。
前記論理/論理ページ変換プログラム28の作動および
上記メモリ管理プログラム24の作動については、後で
具体的に詳述する。
第2図は、仮想メモリ空間25の論理ページと主メモリ
6およびディスク装置8の物理ページの対応を管理する
管理テーブル31を示している。
管理テーブル81のカラム30は、仮想メモリ空間25
上のページ番号(仮想メモリページ番号)Pである。
カラム32は、仮想メモリ空間25上の仮想メモリアド
レスである。
カラム33は、その仮想メモリページか格納されている
主メモリ6の物理アドレスか又はディスク装置8の物理
アドレスである。
カラム34は、前記カラム33の物理アドレスが主メモ
リ6のものか又はディスク装置8のものか(仮想メモリ
ベージが、主メモリ6上にあるか。
ディスク装置8上にあるか)を示すフラグであり、「1
」なら主メモリ6であり、「0」ならディスク装置8で
ある。
第2図の例では、仮想メモリページ番号#0の仮想メモ
リベージは、カラム34が「1」であるから主メモリ6
上にあり、主メモリ6上の物理アドレスはカラム33の
値の「i」である。また、仮想メモリページ番号#1の
仮想メモリベージは、カラム34が「0」であるから、
ディスク装置8上にあり、ディスク装置8上の物理アド
レスはカラム33の値のraJである。
第3図は、主メモリ6上の物理ページを管理するための
データ構造を示している。
未使用ページチエイン4000は、つながれた複数のデ
ータ要素402と、それらのデータ要素402の先頭を
指す先頭ポインタ401とからなる。各データ要素40
2のフィールド403は、次につながるデータ要素40
2を指す。次につながるデータ要素402がないときは
、値「0」が入っている。フィールド404は、直前の
データ要素402を指す。直前のデータ要素402がな
いときは、値「0」か入っている。フィールド405は
、主メモリ6の未使用ページのアドレスが入っている。
使用ページチエイン4001は、つながれた複数のデー
タ要素412と、それらのデータ要素412の先頭を指
す先頭ポインタ411とからなる。
各データ要素412のフィールド413は、次につなが
るデータ要素412を指す。次につながるデータ要素4
12がないときは、値「0」が入っている。フィールド
414は、直前のデータ要素412を指す。直前のデー
タ要素412がないときは、値「0」が入っている。フ
ィールド415は、主メモリ6の使用ページのアドレス
が入っている。
次に、第4図〜第6図を参照して、前記論理/論理ペー
ジ変換プログラム28の作動および上記メモリ管理プロ
グラム24の作動について具体的に説明する。
第4図に示すように、オペレーティングシステム23は
、応用プログラム21が仮想プログラム空間26または
仮想ファイル空間27にアクセスすると、アクセス先の
論理ページQか主メモリ6上にあるように保証した後(
ステップ5IO)、その主メモリ6上の該当ページに応
用プログラム21をアクセスさせる(ステップ520)
第5図は、前記アクセス先の論理ベージQが主メモリ6
上にあるように保証する処理である。
ステップS11では、仮想プログラム空間26または仮
想ファイル空間27にアクセスした命令が入出力命令か
否かを判定する。入出力命令でないなら仮想プログラム
空間26をアクセスしたのであり、ステップS12へ進
む。入出力命令であれば仮想ファイル空間27をアクセ
スしたのであり、ステップS14へ進む。
ステップS12では、命令のオペランドから論理ページ
番号Qを取り出す。
ステップS13では、論理ページ番号Qをそのまま論理
ページ番号Pとする。
ステップS30では、論理ページ番号Pのページを主メ
モリ6にロードする。この処理については第6図を参照
して後述する。
一方、ステップS14では、命令のオペランドから論理
ページ番号Qを取り出す。
ステップS15では、論理ページ番号Qから次式により
論理ページ番号Pを算出する。
P=QX4             ・・・■ステッ
プS40では、論理ページ番号Pのページから論理ペー
ジ番号P+3までを一括して主メモリ6にロードする。
この処理については第6図を参照して後述する。
上記ステップS13およびS30は、仮想プログラム空
間26の1ページ(4にバイト)が仮想メモリ空間25
の1ページ(4にバイト)に相当することを意味してい
る。例えば、第1図の仮想プログラム空間26の論理ペ
ージ番号Q0は仮想メモリ空間25の論理ページ番号P
0に相当することになる。
また、上記ステップS15およびS40は、仮想ファイ
ル空間27の1ページ(16にバイト)が仮想メモリ空
間25の4ページ(4にバイト)に相当することを意味
している。例えば、第1図の仮想ファイル空間26の論
理ページ番号Q2は仮想メモリ空間25の論理ページ番
号Pg、PaP1゜、Pl、に相当することになる。
第6図は、与えられた論理ページ番号Pのページまたは
論理ページ番号Pから論理ページ番号P+3までのペー
ジを主メモリ6上にロードする処理のフローチャートで
ある。
ステップ501では、管理テーブル31のカラム34を
調べて、与えられた論理ページ番号Pのページまたは論
理ページ番号Pから論理ページ番号P+3までのページ
が主メモリ6上にあるか否かをチエツクする。
主メモリ6上にあるなら処理を終了し、主メモリ6上に
ないならステップ503へ進む(ステップ502)。
ステップ503では、未使用ページチエイン4000を
たぐり、主メモリ6上の未使用ページを見つける。
未使用ページか見つかればステップ508へ進み、未使
用ページが見つからないときはステップ505へ進む(
ステップ504)。
ステップ505では、使用ページチエイン40o1をた
ぐり、使用ページの最後のページまたは最後のページを
含めて最後のページから4ペ一ジ分を見つける。これら
は最も過去に使用されたページである。見つけたページ
の主メモリ6上のデータをディスク装置8に格納する。
ステップ506では、管理テーブル31を更新する。す
なわち、格納したページに対応するエントリのカラム3
4に値「0」をセットする。また、カラム33にディス
ク装置8上のアドレスをセットする。
ステップ507では、未使用ページチエイン4000と
使用ページチエイン4001を更新する。
ステップ508では、与えられた論理ページ番号Pのペ
ージまたは論理ページ番号Pから論理ページ番号P+3
までのページのディスク装置8上のデータを、主メモリ
6上の未使用ページに読み込む。
ステップ509では、管理テーブル31を更新する。す
なわち、読み込んだページに対応するエントリのカラム
34に値「1」をセットする。また、カラム33に主メ
モリ6上のアドレスをセットする。
ステップ510では、未使用ページチエイン4000と
使用ページチエイン4001を更新する。
次に、第7図は、本発明の第2の実施例の第1図相当図
である。主メモリ6は、4にバイトページ領域Aと16
にバイトページ領域Bの2つに分けて管理する。
第8図は、第7図に示す主メモリ6を管理するためのペ
ージチエインである。第3図を参照して説明した4にバ
イトページの未使用ページチエイン4000と使用ペー
ジチエイン4001に加えて、16にバイトページの未
使用ページチエイン16000と使用ページチエイン1
6001を備える。この未使用ページチエイン1600
0と使用ページチエイン16001の構造は、未使用ペ
ージチエイン4000と使用ページチエイン4001の
構造と同様である。
この第2の実施例における論理/論理ページ変換プログ
ラム28の作動および上記メモリ管理プログラム24の
作動は、4にバイトページについての第6図に示す如き
処理と、16バイトページについての第6図に示す如き
処理とを別個に備えて、これら2つの処理を、応用プロ
グラム21の命令が仮想プログラム空間26をアクセス
するのか仮想ファイル空間27をアクセスするのかに応
じて選択するものとなる。
以上の説明から理解されるように、データの性質に応じ
てページサイズの異なる仮想メモリ空間(仮想プログラ
ム空間26および仮想ファイル空間27)を扱うことが
出来るので、より一層の高速処理が可能となる。
ところで、ディスク装置8に対するアクセスの単位は4
にバイトあるいは(4にバイト×4)となるが、ディス
ク装置8の物理的性質を考慮すると、トラック単位ある
いはシリンダ単位とすることが好ましい。このため、デ
ィスク制御装置7は、ディスク装置8に対する実際の入
出力を、トラック単位あるいはシリンダ単位に変換して
行う。
以下、ディスク制御装置7について説明する。
第10図に示すように、ディスク制御装置7は、システ
ムバス9を介して処理装置2との間でデータやコマンド
を転送するホストインタフェース回路608と、CPU
601と、制御プログラムや管理情報やデータを保持す
るメモリ602と、ディスク装置8のセクタ位置を検出
するセクタ検出回路603と、ディスク装置8のトラッ
ク単位のデータを保持する多数のエントリを有するトラ
ックバッファ606と、ディスク装置8とトラックバッ
フ7606の間のデータの転送を行うDMA回路604
と、データのフォーマットを識別してトラックの管理用
情報とデータとを分離するフォーマット識別回路605
と、ディスクインタフェース回路607とを具備して構
成されている。
トラックサイズが16にバイトとすると、前記トラック
バッファ606の各エントリは16に/<イトとなる。
また、ページサイズが4にバイトとすると、4ページで
1トラック分となる。
第11図は、前記CPU601で実行されるディスク制
御のためのソフトウェア構成を示すもので、処理装置2
との間でデータやコマンドを転送するためのホストイン
タフェースブロック701と、処理装置2から与えられ
たコマンドを解析するコマンド解析ブロック702と、
解析したコマンドを実行するコマンド実行ブロック70
3と前記トラックバッファ606を管理するトラックバ
ッファ管理ブロック704と、前記ディスクインタフェ
ース回路607とトチツクバッフ7606の間のデータ
転送を制御するデータ転送制御ブロック705と、ディ
スク装置8との間でデータやコマンドを転送するための
ディスクインタフェースブロック706と1回転待ち防
止制御を行う回転待ち防止制御ブロック707とを有し
て構成されている。
第12図は、処理装置2とディスク制御装置7の間でや
りとりされるコマンドの形式を示したものである。
このコマンド55は、ディスク装置8のユニットアドレ
ス56と、READコマンドかWRI TEコマンドか
の区別を示すコマンドコード57と。
READデータを格納するか又はWRITEデータを取
り出す主メモリ6上のアドレス58と、ディスク装置8
上のアクセスすべき領域の開始アドレスを示すシリンダ
番号59とヘッドアドレス60とセクタ番号61と、ア
クセスすべき領域のサイズを示す処理セクタ数62とか
ら構成されている。
処理装置2は、1ページあるいは複数ページをまとめて
READ/WRITEコマンドを発行する。
第13図は、トラックバッフ7606のエントリとディ
スク装置8のトラックの対応を管理するトラックバッフ
ァ管理テーブルを示している。
このトラックバッファ管理テーブル65は、トラックバ
ッファ管理部704にあり、トラックバッファ606の
エントリと同数のレコードを有している。
カラム66は、トラックアドレスであり、シリンダ番号
59とヘッドアドレス60とで決められる。
カラム67は、書き込みフラグであり、「1」のときは
、ディスク装置8へ書き込むべきデータを対応するトラ
ックバッファ606のエントリに保持していることを示
している。「0」のときは、ディスク装置8へ書き込む
べきデータを対応するトラックバッファ606のエント
リに保持していないことを示している。
カラム68は、有効フラグであり、このレコードが有効
であるとき「1」、無効であるとき「0」である。
カラム69は、トラックバッファ606上のエントリの
アドレスである。
第14図は、処理装置2からディスク制御装置7へRE
ADコマンドが発行されたときのディスク制御装置7の
作動のフローチャートである。
ステップ72では、READコマンドに含まれるシリン
ダ番号59.ヘッドアドレス60からトラックアドレス
を求める。
ステップ73では、トラックバッファ管理テーブル65
のカラム68(有効フラグ)がrlJで且つ上記トラッ
クアドレスがカラム66(トラックアドレス)と一致す
るレコードがあるか調べる。
なければ、ステップ75に移行し、あれば、ステップ7
8に移行する(ステップ74)。
ステップ75では、トラックバッファ606の空きエン
トリのアドレスを求めるサブルーチンをコールする。こ
のサブルーチンについては、第16図を参照して後述す
る。
ステップ76では、前記サブルーチンで求めた空きエン
トリに、ディスク装置8のトラックからデータを読み込
む。トラックのアドレスは、前記ステップ72で求めた
トラックアドレスである。
ステップ77では、トラックバッファ管理テーブル65
を更新する。すなわち、一つのレコードのカラム66に
トラックアドレスを格納し、カラム67(書き込みフラ
グ)に「0」をセットし、カラム68に「1」をセット
し、カラム69(エントリアドレス)にエントリのアド
レスをセットする。
ステップ78では、当該レコードのカラム69からトラ
ックバッファ606のエントリのアドレスを求めて、そ
のアドレスのエントリからデータを主メモリ6へ転送し
、READ処理を終了する。
上記説明のように、トラックバッフ7606に格納され
ているデータに対してREADコマンドが発行されれば
、ディスク装置8を読むことはしないで、トラックバッ
ファ606から主メモリ6ヘデータを転送する。このた
め、ディスク装置8に対する入出力を省略できる。
次に、第15図は、処理装置2からディスク制御装置7
へWRITEコマンドが発行されたときのディスク制御
装置7の作動のフローチャートである。
ステップ81では、WRITEコマンドに含まれるシリ
ンダ番号59.ヘッドアドレス60からトラックアドレ
スを求める。
ステップ82では、トラックバッファ管理テーブル65
のカラム68が「1」で且つ上記トラックアドレスがカ
ラム66と一致するレコードがあるか調べる。
なければ、ステップ84に移行し、あれば、ステップ8
7に移行する(ステップ83)。
ステップ84では、トラックバッファ606の空きエン
トリのアドレスを求めるサブルーチンをコールする。こ
のサブルーチンについては、第16図を参照して後述す
る。
ステップ85では、前記サブルーチンで求めた空きエン
トリに、ディスク装置8からデータを読み込む。このデ
ータのトラックアドレスは、前記ステップ72で求めた
トラックアドレスである。
ステップ86では、トラックバッファ管理テーブル65
を更新する。すなわち、一つのレコードのカラム66に
該当トラックアドレスを格納し、カラム67に「0」を
セットし、カラム68にrlJをセットし、カラム69
に該当トラックバッファ606のエントリのアドレスを
セットする。
ステップ87では、処理装置2からのデータを、当該ト
ラックバッフ7606のエントリに書き込む。そして、
トラックバッファ管理テーブル65のカラム67に「1
」をセットし、WRITE処理を終了する。
上記説明のように、WRITEコマンドに対しては、ト
ラックバッファ606上に処理装置2からのデータを書
き込むが、ディスク装置8には直ちにデータを書き込ま
ない。そして、ディスク装置8のトラックへの強制書き
込み要求が発行されたときや、トラックバッファ606
上に空きエントリが見つけ出せないときや、一つのジョ
ブが終了したときや、ディスク制御装置7がready
状態のときを契機として、カラム67が「1」のしコー
ドが指すエントリを探し、それらのエントリのデータを
ディスク装置8に書き込む。すなわち、後書きを行なう
第16図は、トラックバッファ606の空きエントリを
求めるサブルーチンのフローチャートである。
ステップ91では、トラックバッファ管理テーブル65
を調べて、カラム68が「0」のレコードを探す。
もし、カラム68が「0」のレコードかあれば、ステッ
プ93に移行する。なければ、ステップ94に移行する
ステップ93では、カラム68が「0」のレコードのカ
ラム69にあるエントリアドレスをリターン値として、
リターンする。
ステップ94では、トラックバッファ管理テーブル65
を調べて、カラム67が「1」のレコードを探す。
もし、カラム67が「1」のレコードがなければステッ
プ96に移行し、あればステップ97に移行する(ステ
ップ95)。
ステップ96では、カラム67か「0」のレコードのカ
ラム69にあるエントリアドレスをリターン値として、
リターンする。
ステップ97では、カラム67がrlJのレコードのカ
ラム69にあるエントリアドレスが指すエントリのデー
タを、カラム66が指すディスク装置8のトラックアド
レスに、書き込む。
ステップ98では、該当レコードのカラム67゜68を
それぞれ「0」にセットする。
ステップ99では、当該レコードのカラム69にあるエ
ントリアドレスをリターン値として、リターンする。
第17図は、第16図に示した空きエントリを求めるサ
ブルーチンにおいて、空きエントリがないとき(カラム
68がrOJのレコードがないとき)、使用中のどのエ
ントリを空けるかを決定する方法を示す概念図である。
すなわち、トラックバッファ管理テーブル65にカラム
100を追加して、最も新しくアクセスしたレコードが
最後になるようにチエインでつなぐ。また、そのチエイ
ンの最初のレコードへのポインタをポインタ101を設
けて格納しておく。
そして、ポインタ101からチエインをたどって、第1
6図のステップ91またはステップ94の条件を順にテ
ストし、最初に条件を満たしたものを選んで、以後の処
理を行なえばよい。この決定方法は、L RU (Le
ast Recentry Used)方式と呼ばれる
ものである。
次に、第18図は、トラックバッファの2以上のエント
リについて続けてディスク装置8にアクセスするときの
スケジュールおよびアクセスのフローチャートである。
この動作は、トラックバッファ管理ブロック704によ
り実行される。
ステップ211では、トラックバッファ管理テーブル6
5のカラム68が「1」で且つカラム、67が「1」の
レコードを求める。
ステップ212では、前記ステップ211で求めたレコ
ードについて、第19図に示す如きアクセス順チエイン
を作成する。このアクセス順チエイン200は、各レコ
ードに対応したポインタ203をトラックアドレスの順
にチエインでつないだものである。ポインタ203のカ
ラム204は、トラックアドレスの小さいものから大き
いものを指す。大きいものがないときは値を「0」とす
る。
カラム205は、トラックアドレスの大きいものから小
さいものを指す。小さいものがないときは値を「0」と
する。カラム206は、対応するトラックバッファ60
6のエントリを指す。さらに、ポインタ201は、最小
のトラックアドレスのポインタ203を指す。また、ポ
インタ202は、最大のトラックアドレスのポインタ2
03を指す。
ステップ213では、ディスク装置8に対してコマンド
を発行して、ヘッドの現在位置のトラックアドレスTi
を求める。
ステップ214では、前記アクセス順チエイン200の
ポインタ201,202の指すポインタ203のカラム
206が指すエントリより最小トラックアドレスTMI
NI  最大トラックアドレスTMAXを求める。
ステップ215では、 TMA、−Ti l< l TMIN−Tiなら、ステ
ップ216へ進み、 TMAX  Ti  ≧ TMIN  Tiなら、ステ
ップ218へ進む。
ステップ216では、ヘッドを最大トラックアドレスT
 wAxのトラックへ移動する。
ステップ217では、アクセス順チエイン200のポイ
ンタ202から各ポインタ203をカラム205の順に
たどり、各ポインタ203が指すエントリのトラックア
ドレスのトラックに順にアクセスする。アクセスした後
、トラックバッファ管理テーブル65の該当するレコー
ドのカラム67を「0」にする。
一方、ステップ218では、ヘッドを最小トラックアド
レスT工、Nのトラックへ移動する。
ステップ217では、アクセス順チエイン200のポイ
ンタ201から各ポインタ203をカラム204の順に
たどり、各ポインタ203が指すエントリのトラックア
ドレスのトラックに順にアクセスする。アクセスした後
、トラックバッファ管理テーブル65の該当するレコー
ドのカラム67をrOJにする。
上記スケジュールおよびアクセスの作動によれば、例え
ば、第20図に示すように、トラックアドレスT4.T
3.T7.T6.TIのトラックに。
この順(括弧付き番号順)でアクセス要求が発生し、ヘ
ッドの現在位置がトラックアドレスT5のトラックであ
るときに、ヘットはまず最大トラ・ツクアドレスT7の
トラックへ移動し、次いでトラックアドレスT?、T6
.T4.T3.TIの順(丸付き番号順)で各トラック
にアクセスすることとなる。これは最小のヘッドの移動
距離であり、無駄時間がなく、アクセスが高速になる。
次に、第21図は、前記回転待ち防止制御ブロック70
7の作動のフローチャートである。
ステップ301では、セクタ検出回路603により、ヘ
ッドの現在位置のセクタを検出する。
ステップ302では、検出したセクタがアクセス要求さ
れた連続領域中のセクタであるか否か判定する。アクセ
ス要求された連続領域中のセクタであるならステップ3
03へ移行し、そうでないならステップ306へ移行す
る。
ステップ303では、そのセクタからアクセスを開始し
、前記連続領域の最終セクタまでアクセスする。このと
き、CPU601は、そのセクタに対応するトラックバ
ッフ7606のエントリ上のアドレスを転送先頭アドレ
スとしてDMA回路604に設定する。また、そのセク
タから前記連続領域の最終セクタまでのデータ数を計算
して、そのデータ数を転送データ数としてDMA回路6
04に設定する。DMA回路604は、データ転送に伴
い前記転送データ数をデクリメントし、この値が「0」
になったとき、CPU601に転送終了を通知する。
ステップ304では、セクタ検出回路603により前記
連続領域の先頭セクタが検出されるのを待つ。
ステップ305では、前記連続領域の先頭セクタからア
クセスを開始し、前記ステップ303でアクセスを開始
したセクタの前のセクタまでアクセスする。このとき、
上記ステップ303と同様にしてトラックバッファ60
6のエントリとディスク装置8の間でDMAによりデー
タ転送を行なう。
一方、ステップ306では、セクタ検出回路6o3によ
り前記連続領域の先頭セクタが検出されるのを待つ。
ステップ307では、前記連続領域の先頭セクタから最
終セクタまでをアクセスする。このとき、上記ステップ
303と同様にしてトラックバッフ7606のエントリ
とディスク装置8の間でDMAによりデータ転送を行な
う。
例えば、第22図に示すように、トラックTのアクセス
すべき連続領域の先頭Sから最終Eまでの途中H0にヘ
ッドが位置しているとき、上記回転待ち防止制御がなけ
れば第23図の上段に示すように時間toから時間t2
まで回転待ち時間を生じるが、上記回転待ち防止制御が
あれば第23図の下段に示すように回転待ち時間を生じ
ない。従って、時間t3にはアクセスを終了できる。
すなわち、上記回転待ち防止制御を用いた場合、前記ス
テップ301で検出されたセクタがアクセスすべき連続
領域内のセクタであれば直ちにアクセスが開始されるか
ら、従来のように連続領域の先頭セクタか検出されるま
で待機する無駄時間がなくなり、アクセスが高速になる
なお、上記回転待ち防止制御がある場合のディスクアク
セス時間DT、は以下のように導かれる(ただし、シー
ク時間は含まない)。
DT+ = (0,5+x  O,5x’)L(但し、
Lはディスクの1回転時間) このうち(xL)はデータアクセス時間であるから、回
転待ち時間WT、は、 WT□= (0,5−0,5x’)L となる。
これに対して、回転待ち防止制御のない場合のディスク
アクセス時間DT、および回転待ち時間WToは以下の
ようになる。
DTO= (0,5+x)L WT、= (0,5)L 第24図は、上記WT、とWT、のXに対する関係を示
すグラフである。この図からも明らかなように、上記回
転待ち防止制御がある場合、アクセスするデータのサイ
ズが1トラツクのデータサイズに近づくほど回転待ち時
間WT、か小さくなり、1トラツクにアクセスする場合
には「0」になる。すなわち、前記ディスク制御装置7
はトラック単位でディスク装置8にアクセスするから、
回転待ち時間WT、は「0」となり、アクセスを高速化
できる。
なお、上記トラックバッフ7606を主メモリ6上に構
成し、上記ホストインタフェースブロック701とトラ
ックバッファ管理ブロックとをオペレーティングシステ
ム23上に構成してもよい。
以上の説明から理解されるように、上記ディスク制御方
式には以下の利点がある。
(1)仮想メモリ管理方式におけるページ単位の処理を
損わないで、トラック単位またはシリンダ単位を基準と
してディスク装置に対する入出力を行うことが出来る。
これは、ディスク装置の物理的性質に適合しているので
、より高速化できる。
(2)ディスク制御装置のバッファ手段にデータが存在
するときはそのアクセスにディスク入出力を伴わない。
このため、アクセス時間を短縮できる。
(3)2以上のトラック単位またはシリンダ単位につい
て続けてディスク装置にアクセスするとき、予めスケジ
ュールして、トラック間またはシリンダ間のヘッドの移
動距離を最小にする順でアクセスするため、高速化が実
現できる。
(4)アクセスすべき領域の途中にヘッドが位置してい
るときは直ちにアクセスを開始し、前記領域の最初まで
回転待ちしないため、アクセスの遅れをなくすことが出
来る。
(5)上記各効果を得られるため、オペレーティングシ
ステムの仮想メモリ管理プログラムでページの先読み、
後書き、クラスタリングなどの処理をする負担がなくな
る。従って、仮想メモリ管理のオーバヘッドを削減でき
る。
[発明の効果コ 本発明の階層メモリ管理方式によれば、データの性質に
応じたサイズのページをもつ複数種類の仮想メモリ空間
を扱うことが出来るようになるので、より一層の高速処
理が可能となる。
【図面の簡単な説明】
第1図は本発明の階層メモリ管理方式の一実施例の概要
図、第2図は管理テーブルの概念図、第3図はページチ
エインの概念図、第4図〜第6図はアクセス発生時のオ
ペレーティングシステムの作動のフローチャート、第7
図は本発明の階層メモリ管理方式の他の実施例の概要図
、第8図はページチエインの他側の概念図、第9図は本
発明の階層メモリ管理方式を実施する計算機システムの
構成図、第10図は本発明のディスク制御装置の一実施
例のハードウェア構成図、第11図は第10図のディス
ク制御装置のソフトウェア構成図、第12図はディスク
入出力コマンドの形式図、第13図はトラックバッファ
管理テーブルの構成図、第14図は第10図のディスク
制御装置のREAD処理の作動のフローチャート、第1
5図は第10図のディスク制御装置のWRITE処理の
作動のフローチャート、第16図は第10図のディスク
制御装置の空きエントリを求める処理の作動のフローチ
ャート、第17図は第16図に示した空きエントリを求
める処理において空きエントリがないとき使用中のどの
エントリを空けるかを決定する方法を示す概念図、第1
8図はスケジュールおよびアクセス処理の作動のフロー
チャート、第19図はアクセス順チエインの概念図、第
20図はアクセス順のスケジュールの例示図、第21図
は回転待ち防止制御の作動のフローチャート、第22図
はディスクとヘッドの位置の概念図、第23図は回転待
ち防止制御のタイミング図、第24図はアクセスするデ
ータサイズと回転待ち時間の特性図、第25図は従来の
階層メモリ管理方式の概要図である。 (符号の説明) 1・・・計算機システム 2・・・処理装置 6・・・主メモリ 7・・・ディスク制御装置 8・・・ディスク装置 21・・・応用プログラム 23・・・オペレーティングシステム 24・・・メモリ管理プログラム 25・・・仮想メモリ空間 26・・・仮想プログラム空間 27・・・仮想ファイル空間 28・・・論理/論理ページ変換プログラム31・・・
管理テーブル 601・・・CPU 602・・・メモリ 603・・・セクタ検出回路 606・・・トラックバッファ 607・・・ディスクインタフェース回路608・・・
ホストインタフェース回路701・・・ホストインタフ
ェースブロック704・・・トラックバッファ管理ブロ
ック705・・・データ転送制御ブロック 706・・・ディスクインタフェースブロック707・
・・回転待ち防止制御ブロック。 第2図

Claims (1)

  1. 【特許請求の範囲】 1、仮想メモリ空間を実現する階層メモリ管理方式にお
    いて、 論理ページは基本ページサイズおよび基本ページサイズ
    の整数倍のページサイズとし、物理ページは基本ページ
    サイズとし、基本ページサイズの論理ページを1個の物
    理ページに対応付けると共に基本ページサイズの整数倍
    の論理ページを整数個の物理ページに対応付けることを
    特徴とする階層メモリ管理方式。 2、基本ページサイズの整数倍の論理ページは、ディス
    ク装置のトラックまたはシリンダサイズに近いページサ
    イズとすることを特徴とする請求項1の階層メモリ管理
    方式。 3、基本ページサイズの論理ページを仮想プログラム空
    間として割り当て、基本ページサイズの整数倍の論理ペ
    ージを仮想ファイル空間として割り当てることを特徴と
    する請求項1または請求項2の階層メモリ管理方式。 4、アクセス命令が仮想プログラム空間にアクセスする
    のか仮想ファイル空間にアクセスするのかを判定するア
    クセス先判定手段と、仮想プログラム空間にアクセスす
    ると判定した場合は論理ページを1個の物理ページに対
    応付けると共に仮想ファイル空間にアクセスすると判定
    した場合は論理ページを整数個の物理ページに対応付け
    る管理手段を具備したことを特徴とする階層メモリ管理
    装置。
JP2166416A 1990-06-25 1990-06-25 階層メモリ管理方式および装置 Pending JPH0455960A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2166416A JPH0455960A (ja) 1990-06-25 1990-06-25 階層メモリ管理方式および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2166416A JPH0455960A (ja) 1990-06-25 1990-06-25 階層メモリ管理方式および装置

Publications (1)

Publication Number Publication Date
JPH0455960A true JPH0455960A (ja) 1992-02-24

Family

ID=15831021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2166416A Pending JPH0455960A (ja) 1990-06-25 1990-06-25 階層メモリ管理方式および装置

Country Status (1)

Country Link
JP (1) JPH0455960A (ja)

Similar Documents

Publication Publication Date Title
US6041391A (en) Storage device and method for data sharing
JP3371044B2 (ja) ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
JP3183993B2 (ja) ディスク制御システム
US6772283B2 (en) Disk control device and method processing variable-block and fixed-block accesses from host devices
US5652887A (en) Dynamic Meta commands for peripheral devices
US20070005904A1 (en) Read ahead method for data retrieval and computer system
JPH0364890B2 (ja)
JP2001243100A (ja) 大容量記憶装置における区分テーブル、ファイル装置ディレクトリ構造、および個々のファイルクラスタチエンのバッファリング
US5293618A (en) Method for controlling access to a shared file and apparatus therefor
JPH11184639A (ja) 計算機システム
JP4480479B2 (ja) ストレージシステム
JPH1063551A (ja) 情報処理装置
JP3469383B2 (ja) データ先読み制御方法及び情報処理装置
JPH0455960A (ja) 階層メモリ管理方式および装置
JP3555523B2 (ja) メモリ管理装置及び管理方法並びに管理プログラムを記録した記録媒体
JPS61206042A (ja) 仮想計算機の入出力方式
JPS61245253A (ja) 仮想計算機の入出力制御方式
JP3925461B2 (ja) 計算機システム
JP3118348B2 (ja) プログラムキャッシュ方法
JP2612173B2 (ja) 仮想計算機
JPH0451313A (ja) ディスク制御方式および装置
JP3925246B2 (ja) 計算機システム
JPS6367213B2 (ja)
JPS62271029A (ja) デイスクキヤツシユ制御方式
JPH03208142A (ja) ファイル共有方法