JPH0378052A - 仮想記憶管理方式 - Google Patents
仮想記憶管理方式Info
- Publication number
- JPH0378052A JPH0378052A JP1215581A JP21558189A JPH0378052A JP H0378052 A JPH0378052 A JP H0378052A JP 1215581 A JP1215581 A JP 1215581A JP 21558189 A JP21558189 A JP 21558189A JP H0378052 A JPH0378052 A JP H0378052A
- Authority
- JP
- Japan
- Prior art keywords
- segment
- virtual space
- area
- segment descriptor
- descriptor
- 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
Links
- 238000007726 management method Methods 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012508 change request Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
本発明は、セグメンテーション方式とベージング方式を
併用した仮想記憶管理機構を有した計算機システムにお
いて用いられる仮想記憶管理方式に関する。
併用した仮想記憶管理機構を有した計算機システムにお
いて用いられる仮想記憶管理方式に関する。
(従来の技術)
一般に、セグメンテーション方式とベージング方式を併
用した仮想記憶管理機構では、プログラムやプログラム
の扱うデータ構造などの論理的なまとまりをセグメント
として仮想空間上の連続した領域に割り当てている。仮
想空間は、ページと呼ばれる固定長の領域に分割されて
二次記憶装置に保存され、必要に応じてべ一゛ジ単位で
主記憶装置に読み出される。
用した仮想記憶管理機構では、プログラムやプログラム
の扱うデータ構造などの論理的なまとまりをセグメント
として仮想空間上の連続した領域に割り当てている。仮
想空間は、ページと呼ばれる固定長の領域に分割されて
二次記憶装置に保存され、必要に応じてべ一゛ジ単位で
主記憶装置に読み出される。
それぞれのセグメントには、仮想空間領域でのセグメン
ト開始位置であるセグメント開始アドレスと、セグメン
トの大きさを表わすセグメントサイズとを示すセグメン
トディスクリプタというデータブロックが付加される。
ト開始位置であるセグメント開始アドレスと、セグメン
トの大きさを表わすセグメントサイズとを示すセグメン
トディスクリプタというデータブロックが付加される。
プログラム中でのセグメント内のデータのアクセスは、
データを含むセグメントと、セグメントの開始位置に対
するデータの相対位置を表わすセグメント内相対アドレ
スを指定することによって行われる。プログラムの実行
やデータの読出し・書き込みのようなアクセスに対する
保護制御は、一般的にセグメントに対するアクセスが行
われる段階において実行される。このような保護制御に
必要となる情報も、セグメントディスクリプタに保存さ
れている。
データを含むセグメントと、セグメントの開始位置に対
するデータの相対位置を表わすセグメント内相対アドレ
スを指定することによって行われる。プログラムの実行
やデータの読出し・書き込みのようなアクセスに対する
保護制御は、一般的にセグメントに対するアクセスが行
われる段階において実行される。このような保護制御に
必要となる情報も、セグメントディスクリプタに保存さ
れている。
まず、セグメント内のデータに対するアクセスが発生し
た場合には、セグメントディスクリプタよりセグメント
開始アドレスとセグメントの大きさを示すセグメントサ
イズとを取り出す。そして、プログラムによって指定さ
れたセグメント内相対アドレスとセグメント開始アドレ
スから、アクセスするデータの存在する仮想アドレスを
生成する。
た場合には、セグメントディスクリプタよりセグメント
開始アドレスとセグメントの大きさを示すセグメントサ
イズとを取り出す。そして、プログラムによって指定さ
れたセグメント内相対アドレスとセグメント開始アドレ
スから、アクセスするデータの存在する仮想アドレスを
生成する。
一方、セグメントサイズとセグメント内相対アドレスを
比較することによって、アクセスの行なわれる仮想アド
レスが、セグメントの内部であるか否かという、アクセ
ス位置の正当性の判定が行われる。この判定の結果、ア
クセスの行なわれる仮想アドレスがセグメントの内部で
あると判定された場合にはアクセスが認められるが、セ
グメントの外であると判定された場合にはアクセスが拒
絶される。
比較することによって、アクセスの行なわれる仮想アド
レスが、セグメントの内部であるか否かという、アクセ
ス位置の正当性の判定が行われる。この判定の結果、ア
クセスの行なわれる仮想アドレスがセグメントの内部で
あると判定された場合にはアクセスが認められるが、セ
グメントの外であると判定された場合にはアクセスが拒
絶される。
このようなアクセス位置の正当性について判定は、計算
機システムのCPUにおいて仮想アドレスを生成して仮
想空間領域に対するアクセスが発生する毎に行われるた
め、高速化を行なうために、CPU内部にセグメントデ
ィスクリプタを保持するレジスタ(セグメントディスク
リプタレジスタ)を設けて、ハードウェアにより行なう
のが一般的である。
機システムのCPUにおいて仮想アドレスを生成して仮
想空間領域に対するアクセスが発生する毎に行われるた
め、高速化を行なうために、CPU内部にセグメントデ
ィスクリプタを保持するレジスタ(セグメントディスク
リプタレジスタ)を設けて、ハードウェアにより行なう
のが一般的である。
(発明が解決しようとする課題)
仮想空間内に設定されるセグメントのサイズは、予め設
定された最大値以下に制限されるものである。このため
、セグメントサイズの最大値よりも大きな仮想空間領域
に対してアクセスを行ないたい場合には、仮想空間領域
を複数のセグメントに分割して割り当てを行っている。
定された最大値以下に制限されるものである。このため
、セグメントサイズの最大値よりも大きな仮想空間領域
に対してアクセスを行ないたい場合には、仮想空間領域
を複数のセグメントに分割して割り当てを行っている。
このように、一つの連続した仮想空間領域を複数のセグ
メントに分割した場合に、CPUは、アクセス位置の正
当性についての判定等を行なうために、アクセス対象と
するセグメントに対応してセグメントディスクリプタを
セグメントディスクリプタレジスタに保持しなければな
らない。このため、セグメントの境界付近のデータを頻
繁にアクセスするような場合には、これに応じてセグメ
ントの切り換えが行われ、セグメントディスクリプタの
読み込みも頻繁に行なう必要があった。従って、CPU
の処理効率が低下してしまうという問題があった。
メントに分割した場合に、CPUは、アクセス位置の正
当性についての判定等を行なうために、アクセス対象と
するセグメントに対応してセグメントディスクリプタを
セグメントディスクリプタレジスタに保持しなければな
らない。このため、セグメントの境界付近のデータを頻
繁にアクセスするような場合には、これに応じてセグメ
ントの切り換えが行われ、セグメントディスクリプタの
読み込みも頻繁に行なう必要があった。従って、CPU
の処理効率が低下してしまうという問題があった。
また、本来単一のデータ領域として管理されるものであ
るのに、複数のセグメントディスクリプタが対応するこ
とからデータ領域の管理が複雑となり、各ディスクリプ
タに含まれる保護制御に必要な情報の内容についても矛
盾が生じ易くなるという問題もあった。
るのに、複数のセグメントディスクリプタが対応するこ
とからデータ領域の管理が複雑となり、各ディスクリプ
タに含まれる保護制御に必要な情報の内容についても矛
盾が生じ易くなるという問題もあった。
また、複数のセグメントに分割するのではなく、単一の
セグメントディスクリプタを用いて、任意の仮想アドレ
スにアクセスする方式がある。この方式は、単一のセグ
メントディスクリプタを書き換えながらアクセスを行な
うもので、複数のセグメントディスクリプタを用意する
必要がなくなりデータ領域の管理を単純にすることがで
きる。しかしながら、この方式では、アクセス管理に必
要な仮想空間領域の大きさや仮想空間領域の開始アドレ
スに関する情報を、セグメントディスクリプタとは別に
ソフトウェアによって管理しなければならなかった。従
って、セグメントに対するアクセス管理がセグメントデ
ィスクリプタ以外の情報によって行なわれることになる
ため、誤ったアクセスが許される可能性が大きくなって
しまう。このように、本来ならばアクセスの許されない
領域にアクセスが可能となることは、データ保護の観点
から大きな問題であり、またシステムに重大な障害を招
く恐れがある。また、ソフトウェアによる管理のために
、効率良く取り扱うことが出来なかった。
セグメントディスクリプタを用いて、任意の仮想アドレ
スにアクセスする方式がある。この方式は、単一のセグ
メントディスクリプタを書き換えながらアクセスを行な
うもので、複数のセグメントディスクリプタを用意する
必要がなくなりデータ領域の管理を単純にすることがで
きる。しかしながら、この方式では、アクセス管理に必
要な仮想空間領域の大きさや仮想空間領域の開始アドレ
スに関する情報を、セグメントディスクリプタとは別に
ソフトウェアによって管理しなければならなかった。従
って、セグメントに対するアクセス管理がセグメントデ
ィスクリプタ以外の情報によって行なわれることになる
ため、誤ったアクセスが許される可能性が大きくなって
しまう。このように、本来ならばアクセスの許されない
領域にアクセスが可能となることは、データ保護の観点
から大きな問題であり、またシステムに重大な障害を招
く恐れがある。また、ソフトウェアによる管理のために
、効率良く取り扱うことが出来なかった。
また、セグメントディスクリプタの形式を変更すること
によって、扱うことができるセグメントサイズを拡張し
、前記の問題に対処することができるが、セグメントデ
ィスクリプタの変更によって、もとの形式のセグメント
ディスクリプタに基づいて作成されたプログラムを実行
することができなくなるという問題が発生する。さらに
、システムの基本的な部分の変更になるため、変更のた
めのコストが大きくなるという問題もあった。
によって、扱うことができるセグメントサイズを拡張し
、前記の問題に対処することができるが、セグメントデ
ィスクリプタの変更によって、もとの形式のセグメント
ディスクリプタに基づいて作成されたプログラムを実行
することができなくなるという問題が発生する。さらに
、システムの基本的な部分の変更になるため、変更のた
めのコストが大きくなるという問題もあった。
本発明は前記のような点に鑑みてなされたもので、セグ
メントディスクリプタの形式を大きく変更することなく
、効率良く仮想空間領域のデータをアクセスすることが
可能な仮想記憶管理方式を提供することを目的とする。
メントディスクリプタの形式を大きく変更することなく
、効率良く仮想空間領域のデータをアクセスすることが
可能な仮想記憶管理方式を提供することを目的とする。
[発明の構成]
(課題を解決するための手段)
本発明は、仮想空間領域中のセグメントの位置と大きさ
を示す情報、及び最大セグメントサイズよりも大きな仮
想空間領域をアクセス対象とする拡張モードまたは前記
セグメントをアクセス対象とする非拡張モードを示す拡
張モード情報を含む単一のセグメントディスクリプタで
前記仮想空間領域を管理し、前記セグメントディスクリ
プタの拡張モード情報によって前記拡張モードが示され
る場合に仮想空間中の仮想空間領域の位置と大きさを示
す拡張領域情報を前記セグメントディスクリプタに付随
させる形で設定するもので、前記セグメントディスクリ
プタを第1の保持手段にし、このセグメントディスクリ
プタ中の拡張モード情報によって拡張モードが示されて
いるときに第2の保持手段に拡張領域情報を保持する。
を示す情報、及び最大セグメントサイズよりも大きな仮
想空間領域をアクセス対象とする拡張モードまたは前記
セグメントをアクセス対象とする非拡張モードを示す拡
張モード情報を含む単一のセグメントディスクリプタで
前記仮想空間領域を管理し、前記セグメントディスクリ
プタの拡張モード情報によって前記拡張モードが示され
る場合に仮想空間中の仮想空間領域の位置と大きさを示
す拡張領域情報を前記セグメントディスクリプタに付随
させる形で設定するもので、前記セグメントディスクリ
プタを第1の保持手段にし、このセグメントディスクリ
プタ中の拡張モード情報によって拡張モードが示されて
いるときに第2の保持手段に拡張領域情報を保持する。
そして、第1の保持手段に保持されたセグメントディス
クリプタ、または同セグメントディスクリプタと拡張領
域情報に基づいてアクセス対象とする仮想アドレスを生
成し、前記第1の保持手段に保持された前記セグメント
ディスクリプタに基づいて、前記仮想アドレスがセグメ
ントの内部を示すものであるか否かを判定し、拡張モー
ドの場合には前記仮想アドレスが仮想空間領域の内部を
示すものであるか否かを判定する。この判定結果と前記
セグメントディスクリプタ中の拡張モード情報によって
、仮想アドレスが仮想空間領域の内部であってセグメン
トの内部でないときにセグメントディスクリプタの書き
換えの要求を行なう。そして、この要求に応じて前記セ
グメントディスクリプタの書き換えを行ない、書き換え
られたセグメントディスクリプタに基づいて仮想空間領
域にアクセスを行なうようにするものである。
クリプタ、または同セグメントディスクリプタと拡張領
域情報に基づいてアクセス対象とする仮想アドレスを生
成し、前記第1の保持手段に保持された前記セグメント
ディスクリプタに基づいて、前記仮想アドレスがセグメ
ントの内部を示すものであるか否かを判定し、拡張モー
ドの場合には前記仮想アドレスが仮想空間領域の内部を
示すものであるか否かを判定する。この判定結果と前記
セグメントディスクリプタ中の拡張モード情報によって
、仮想アドレスが仮想空間領域の内部であってセグメン
トの内部でないときにセグメントディスクリプタの書き
換えの要求を行なう。そして、この要求に応じて前記セ
グメントディスクリプタの書き換えを行ない、書き換え
られたセグメントディスクリプタに基づいて仮想空間領
域にアクセスを行なうようにするものである。
(作 用)
このようにして構成される仮想記憶管理方式では、セグ
メントディスクリプタが仮想空間領域内でありセグメン
ト外の領域にアクセスするためのものである場合、仮想
空間中の仮想空間領域の位置と大きさを示す情報(拡張
領域情報)がセグメントディスクリプタに付随させる形
で設定される。そして、セグメントディスクリプタがセ
グメント外の仮想空間領域をアクセスするためのものと
判別されると、設定された拡張領域情報を用いてセグメ
ント境界判定とは別に領域境界判定が行われる。さらに
、画境界′判定の判定結果に応じてシステムの動作が制
御され、(領域境界違反ではなく)セグメント境界違反
のみの場合にセグメントディスクリプタの書き換えが要
求されセグメント境界違反が解消される。こうして、書
き換えられたセグメントディスクリプタによって、仮想
空間領域に正しくアクセスを行なうことができる。
メントディスクリプタが仮想空間領域内でありセグメン
ト外の領域にアクセスするためのものである場合、仮想
空間中の仮想空間領域の位置と大きさを示す情報(拡張
領域情報)がセグメントディスクリプタに付随させる形
で設定される。そして、セグメントディスクリプタがセ
グメント外の仮想空間領域をアクセスするためのものと
判別されると、設定された拡張領域情報を用いてセグメ
ント境界判定とは別に領域境界判定が行われる。さらに
、画境界′判定の判定結果に応じてシステムの動作が制
御され、(領域境界違反ではなく)セグメント境界違反
のみの場合にセグメントディスクリプタの書き換えが要
求されセグメント境界違反が解消される。こうして、書
き換えられたセグメントディスクリプタによって、仮想
空間領域に正しくアクセスを行なうことができる。
(実施例)
以下、図面を参照して本発明の一実施例を説明する。第
1図は同実施例に係わる仮想記憶管理装置の構成を示す
ブロック図である。同図において、lOは仮想空間領域
である。仮想空間領域lOには、セグメントディスクリ
プタテーブル11が設けられている。セグメントディス
クリプタテーブルllには、後述するセグメントディス
クリプタ12、及び拡張領域情報13が設定される。
1図は同実施例に係わる仮想記憶管理装置の構成を示す
ブロック図である。同図において、lOは仮想空間領域
である。仮想空間領域lOには、セグメントディスクリ
プタテーブル11が設けられている。セグメントディス
クリプタテーブルllには、後述するセグメントディス
クリプタ12、及び拡張領域情報13が設定される。
14はセグメントディスクリプタレジスタであり、セグ
メントディスクリプタテーブル11から読み出したセグ
メントディスクリプタ12を保持するものである。15
は拡張領域情報レジスタであり、セグメントディスクリ
プタレジスタ14に対応して設けられ、セグメントディ
スクリプタレジスタI4に読み込まれたセグメントディ
スクリプタ12の内容に応じて(後述する拡張モードビ
ット“12のとき)、拡張領域情報を読出して保持する
ものである。1Bはセグメント内アドレスであり、CP
Uによって実行されるプログラムによって与えられる。
メントディスクリプタテーブル11から読み出したセグ
メントディスクリプタ12を保持するものである。15
は拡張領域情報レジスタであり、セグメントディスクリ
プタレジスタ14に対応して設けられ、セグメントディ
スクリプタレジスタI4に読み込まれたセグメントディ
スクリプタ12の内容に応じて(後述する拡張モードビ
ット“12のとき)、拡張領域情報を読出して保持する
ものである。1Bはセグメント内アドレスであり、CP
Uによって実行されるプログラムによって与えられる。
17は仮想アドレス計算回路であり、セグメントディス
クリプタレジスタ14、拡張領域情報レジスタ15、及
びセグメント内アドレス16に接続されている。仮想ア
ドレス計算回路17は、仮想空間にアクセスするために
仮想アドレス18を生成するものである。19は領域境
界判定回路であり、仮想アドレス18が拡張領域レジス
タ15に保持された拡張領域情報(後述する)によって
示される仮想空間領域10の内部であるかどうかを判定
し、その結果を領域境界判定結果20として出力する。
クリプタレジスタ14、拡張領域情報レジスタ15、及
びセグメント内アドレス16に接続されている。仮想ア
ドレス計算回路17は、仮想空間にアクセスするために
仮想アドレス18を生成するものである。19は領域境
界判定回路であり、仮想アドレス18が拡張領域レジス
タ15に保持された拡張領域情報(後述する)によって
示される仮想空間領域10の内部であるかどうかを判定
し、その結果を領域境界判定結果20として出力する。
21はセグメント境界判定回路であり、仮想アドレス1
8がセグメントディスクリプタレジスタ14に保持され
たセグメントディスクリプタによって示されるセグメン
トの内部かどうかを判定し、その結果をセグメント境界
判定結果22として出力する。23は制御信号生成回路
であり、境界判定結果20とセグメント境界判定結果2
2、及びセグメントディスクリプタレジスタ14に保持
されているセグメントディスクリプタ中の拡張モードビ
ット24との組み合わせによって、システム要求信号2
5を出力するものである。
8がセグメントディスクリプタレジスタ14に保持され
たセグメントディスクリプタによって示されるセグメン
トの内部かどうかを判定し、その結果をセグメント境界
判定結果22として出力する。23は制御信号生成回路
であり、境界判定結果20とセグメント境界判定結果2
2、及びセグメントディスクリプタレジスタ14に保持
されているセグメントディスクリプタ中の拡張モードビ
ット24との組み合わせによって、システム要求信号2
5を出力するものである。
システム要求信号25は、セグメント境界違反、セグメ
ントディスクリプタ変更要求、セグメントディスクリプ
タ異常などを示す信号であり、CPUに対する要求の発
生と要求の種類とを表わすものである。
ントディスクリプタ変更要求、セグメントディスクリプ
タ異常などを示す信号であり、CPUに対する要求の発
生と要求の種類とを表わすものである。
第2図はセグメントディスクリプタテーブル11に格納
されるセグメントディスクリプタの形式の一例を示す図
である。同図において、31はセグメントの大きさを表
わすセグメントサイズであり、32は仮想空間上でのセ
グメントが始まる仮想アドレスを示すセグメント開始ア
ドレスである。33は拡張モードビットであり、セグメ
ントがセグメントの最大サイズよりも大きい仮想空間領
域10に対するアクセスを行なうためのものであるとき
(拡張モード)にのみ“1“であり、それ以外の場合(
非拡張モード)では“0”に設定されるものである。3
4は識別ビットであり、後述する拡張領域情報との区別
を行なうためのものである。
されるセグメントディスクリプタの形式の一例を示す図
である。同図において、31はセグメントの大きさを表
わすセグメントサイズであり、32は仮想空間上でのセ
グメントが始まる仮想アドレスを示すセグメント開始ア
ドレスである。33は拡張モードビットであり、セグメ
ントがセグメントの最大サイズよりも大きい仮想空間領
域10に対するアクセスを行なうためのものであるとき
(拡張モード)にのみ“1“であり、それ以外の場合(
非拡張モード)では“0”に設定されるものである。3
4は識別ビットであり、後述する拡張領域情報との区別
を行なうためのものである。
第3図は拡張領域情報の形式の一例を示す図である。3
5は仮想空間領域10の大きさを示す仮想空開領域サイ
ズであり、3Bは仮想空間領域開始アドレスである。識
別ピット34は、セグメントディスクリプタテーブル1
1中におけるセグメントディスクリプタ12と拡張領域
情報13を区別するために、セグメントディスクリプタ
の場合は“0°に、拡張領域情報の場合は“1”に設定
されるものである。セグメントディスクリプタ12と拡
張領域情報13は、同じ大きさのデータブロックである
。
5は仮想空間領域10の大きさを示す仮想空開領域サイ
ズであり、3Bは仮想空間領域開始アドレスである。識
別ピット34は、セグメントディスクリプタテーブル1
1中におけるセグメントディスクリプタ12と拡張領域
情報13を区別するために、セグメントディスクリプタ
の場合は“0°に、拡張領域情報の場合は“1”に設定
されるものである。セグメントディスクリプタ12と拡
張領域情報13は、同じ大きさのデータブロックである
。
次に、同実施例の動作を説明する。
まず、仮想空間上にアクセス対象になる仮想空間領域l
Oが生成されると、その仮想空間領域IOに対応してセ
グメントディスクリプタ12が作成されてセグメントデ
ータテーブル11に格納される。このとき、仮想空間領
域10の大きさがセグメントサイズの最大値よりも大き
いときには、セグメントディスクリプタ12中の拡張モ
ードピットが“1”に設定され、仮想空間領域10の位
置(仮想空間領域開始アドレス3B)と大きさ(仮想空
間領域サイズ35)の情報を含んだ拡張領域情報13が
、セグメントディスクリプタテーブル11の対応するセ
グメントディスクリプタ12の直後に置かれる。
Oが生成されると、その仮想空間領域IOに対応してセ
グメントディスクリプタ12が作成されてセグメントデ
ータテーブル11に格納される。このとき、仮想空間領
域10の大きさがセグメントサイズの最大値よりも大き
いときには、セグメントディスクリプタ12中の拡張モ
ードピットが“1”に設定され、仮想空間領域10の位
置(仮想空間領域開始アドレス3B)と大きさ(仮想空
間領域サイズ35)の情報を含んだ拡張領域情報13が
、セグメントディスクリプタテーブル11の対応するセ
グメントディスクリプタ12の直後に置かれる。
仮想空間領域lOに対してアクセスが行なわれる場合、
仮想空間領域1Gに対応したセグメントディスクリプタ
がセグメントディスクリプタレジスタ14に読み出され
ていなければ、セグメントディスクリプタテーブルll
よりセグメントディスクリプタ12が読み出され、セグ
メントディスクリプタ14に保持される。
仮想空間領域1Gに対応したセグメントディスクリプタ
がセグメントディスクリプタレジスタ14に読み出され
ていなければ、セグメントディスクリプタテーブルll
よりセグメントディスクリプタ12が読み出され、セグ
メントディスクリプタ14に保持される。
セグメントディスクリプタ12の拡張ビットがmO”で
あるならば、仮想アドレス計算回路17は、セグメント
ディスクリプタレジスタ14に保持されたセグメントデ
ィスクリプタ12のセグメント開始アドレス32に、プ
ログラムによって与えられるセグメント内相対アドレス
1Bを加えることによって仮想アドレスを生成し、この
仮想アドレス18を出力する。
あるならば、仮想アドレス計算回路17は、セグメント
ディスクリプタレジスタ14に保持されたセグメントデ
ィスクリプタ12のセグメント開始アドレス32に、プ
ログラムによって与えられるセグメント内相対アドレス
1Bを加えることによって仮想アドレスを生成し、この
仮想アドレス18を出力する。
一方、セグメントディスクリプタ12の拡張ビットが“
1“であるならば、セグメントディスクリプタテーブル
11においてセグメントディスクリプタ12の直後に設
定されている拡張領域情報13が読み出されて拡張領域
情報レジスタ15に保持される。
1“であるならば、セグメントディスクリプタテーブル
11においてセグメントディスクリプタ12の直後に設
定されている拡張領域情報13が読み出されて拡張領域
情報レジスタ15に保持される。
仮想アドレス計算回路17は、拡張領域情報レジスタ1
5に保持された拡張領域情報13の仮想空間領域開始ア
ドレス3Bに、セグメント内相対アドレス1Bを加える
ことによって、仮想アドレスを生成し、この仮想アドレ
ス18を出力する。
5に保持された拡張領域情報13の仮想空間領域開始ア
ドレス3Bに、セグメント内相対アドレス1Bを加える
ことによって、仮想アドレスを生成し、この仮想アドレ
ス18を出力する。
仮想アドレス計算回路17から出力される仮想空間にア
クセスするための仮想アドレス18は、領域境界判定回
路19と、セグメント境界判定回路21に入力される。
クセスするための仮想アドレス18は、領域境界判定回
路19と、セグメント境界判定回路21に入力される。
領域境界判定回路19は、拡張領域情報レジスタ15に
保持されている拡張領域情報13の仮想空間領域サイズ
35と仮想空間領域開始アドレス36を用いて、仮想ア
ドレス18が、アクセス対象としている仮想空間領域1
0の内部であるか否かを判定し、領域境界判定結果20
を出力する。
保持されている拡張領域情報13の仮想空間領域サイズ
35と仮想空間領域開始アドレス36を用いて、仮想ア
ドレス18が、アクセス対象としている仮想空間領域1
0の内部であるか否かを判定し、領域境界判定結果20
を出力する。
また、セグメント境界判定回路21は、セグメントディ
スクリプタレジスタ14に保持されているセグメントデ
ィスクリプタ12の仮想空間領域サイズ35と仮想空間
領域開始アドレス36を用いて、仮想アドレス18が、
アクセス対象であるセグメントの内部であるか否かを判
定し、セグメント境界判定結果22を出力する。
スクリプタレジスタ14に保持されているセグメントデ
ィスクリプタ12の仮想空間領域サイズ35と仮想空間
領域開始アドレス36を用いて、仮想アドレス18が、
アクセス対象であるセグメントの内部であるか否かを判
定し、セグメント境界判定結果22を出力する。
制御信号生成回路23は、領域境界判定結果20、セグ
メント境界判定結果22、及びセグメントディスクリプ
タレジスタ14に保持されているセグメントディスクリ
プタ12より取り出した拡張モードピット24との組み
合わせで、システム要求信号を決定する。
メント境界判定結果22、及びセグメントディスクリプ
タレジスタ14に保持されているセグメントディスクリ
プタ12より取り出した拡張モードピット24との組み
合わせで、システム要求信号を決定する。
すなわち、以下(1)〜(5)に示すようにシステム要
求信号が決定される。
求信号が決定される。
(1)領域境界判定結果20とセグメント境界判定結果
22がともに境界違反が無いことを示す場合、制御信号
生成回路23は何も出力しない。
22がともに境界違反が無いことを示す場合、制御信号
生成回路23は何も出力しない。
(2)拡張モードピット24が0”であり、セグメント
境界判定結果22が境界違反が発生したことを示す場合
、制御信号生成回路23は、セグメント境界違反が発生
したことを示す信号を出力し、CPUに対してセグメン
ト境界違反を通知し、実行中のプログラムの停止を要求
する。
境界判定結果22が境界違反が発生したことを示す場合
、制御信号生成回路23は、セグメント境界違反が発生
したことを示す信号を出力し、CPUに対してセグメン
ト境界違反を通知し、実行中のプログラムの停止を要求
する。
(3)拡張モードビット24が“1°であり、領域境界
判定結果20のみが境界違反を示す場合、制御信号生成
回路23は、セグメントディスクリプタ12に異常があ
ると判断し、CPUに対してセグメントディスクリプタ
異常を通知し、実行中のプログラムの停止を要求する。
判定結果20のみが境界違反を示す場合、制御信号生成
回路23は、セグメントディスクリプタ12に異常があ
ると判断し、CPUに対してセグメントディスクリプタ
異常を通知し、実行中のプログラムの停止を要求する。
(4)拡張モードピット24が“11であり、セグメン
ト境界判定結果22のみが境界違反を示す場合、セグメ
ントディスクリプタ12の書き換えによって境界違反を
解消することが可能であるので、制御信号生成回路23
は、CPUに対してセグメントディスクリプタ12の書
き換え要求を通知し、実行中のプログラムの中断を要求
する。
ト境界判定結果22のみが境界違反を示す場合、セグメ
ントディスクリプタ12の書き換えによって境界違反を
解消することが可能であるので、制御信号生成回路23
は、CPUに対してセグメントディスクリプタ12の書
き換え要求を通知し、実行中のプログラムの中断を要求
する。
(5)拡張モードピット24が“1”であり、領域境界
判定結果20とセグメント境界判定結果22がともに境
界違反を示す場合、制御信号生成回路23は、CPUに
対してセグメント境界違反を通知し、実行中のプログラ
ムの停止を要求する。
判定結果20とセグメント境界判定結果22がともに境
界違反を示す場合、制御信号生成回路23は、CPUに
対してセグメント境界違反を通知し、実行中のプログラ
ムの停止を要求する。
セグメントディスクリプタ書き換え要求が発生すると、
CPUは、実行中のプログラムを中断させ、必要なアク
セスが実行できるようにセグメントディスクリプタ12
に含まれるセグメント開始アドレス32またはセグメン
トサイズ31を書き換えた後、中断したプログラムの実
行を再開させる。
CPUは、実行中のプログラムを中断させ、必要なアク
セスが実行できるようにセグメントディスクリプタ12
に含まれるセグメント開始アドレス32またはセグメン
トサイズ31を書き換えた後、中断したプログラムの実
行を再開させる。
このようにして、仮想アドレスのセグメント境界違反を
判定するためのセグメント境界判定回路21とは別に、
仮想空間領域10内部であるかどうかを判定するための
領域判定回路19を設けることにより、拡張モードピッ
トが“1′の場合に、拡張領域情報13に基づいて領域
境界違反の判定が行なわれる。そして、セグメントディ
スクリプタを書き換えることによって、境界違反の解消
が可能であることが容易に判定される。従って、領域境
界違反の判別結果に応じてセグメントディスクリプタ1
2を書き換えて、最大セグメントサイズを越える仮想空
間上の領域に対して、効率良くアクセスすることが可能
となる。
判定するためのセグメント境界判定回路21とは別に、
仮想空間領域10内部であるかどうかを判定するための
領域判定回路19を設けることにより、拡張モードピッ
トが“1′の場合に、拡張領域情報13に基づいて領域
境界違反の判定が行なわれる。そして、セグメントディ
スクリプタを書き換えることによって、境界違反の解消
が可能であることが容易に判定される。従って、領域境
界違反の判別結果に応じてセグメントディスクリプタ1
2を書き換えて、最大セグメントサイズを越える仮想空
間上の領域に対して、効率良くアクセスすることが可能
となる。
また、セグメントディスクリプタ12が何度も書き換え
られる間に、なんらかの原因で誤りが発生し、アクセス
の許された仮想空間領域IO以外へのアクセスが発生し
たにもかかわらずセグメント境界判定で誤りが検出され
なかった場合でも、仮想空間領域IOに関する情報が正
しければアクセスの誤りの検出が可能であるので、シス
テムの安全性が向上する。
られる間に、なんらかの原因で誤りが発生し、アクセス
の許された仮想空間領域IO以外へのアクセスが発生し
たにもかかわらずセグメント境界判定で誤りが検出され
なかった場合でも、仮想空間領域IOに関する情報が正
しければアクセスの誤りの検出が可能であるので、シス
テムの安全性が向上する。
さらに、単一のセグメントディスクリプタ12によって
最大セグメントサイズよりも大きな仮想空間領域IOを
管理するために、従来の複数のセグメントに分割した場
合におけるセグメントディスクリプタの頻繁な読み込み
が発生しないために、CPUの処理効率を低下させるこ
とを防ぐことができると共に、仮想空間領域lOにおけ
るデータ領域の管理を簡単にすることができる。
最大セグメントサイズよりも大きな仮想空間領域IOを
管理するために、従来の複数のセグメントに分割した場
合におけるセグメントディスクリプタの頻繁な読み込み
が発生しないために、CPUの処理効率を低下させるこ
とを防ぐことができると共に、仮想空間領域lOにおけ
るデータ領域の管理を簡単にすることができる。
また、セグメントディスクリプタが最大セグメントサイ
ズよりも大きな仮想空間領域10にアクセスするための
ものである場合に、アクセス管理に必要な仮想空間領域
lOのサイズ、開始アドレスに関する拡張領域情報をセ
グメントディスクリプタに付随させる方式であり、この
拡張領域情報についての処理を行なうための機能が設け
られているので、ソフトウェアによる管理に比較して、
効率良くかつ確実な管理が可能となる。また、セグメン
トディスクリプタの形式を大きく変えるものでなく (
識別ビット、拡張モードピットの付加のみ)、従来の方
式に基づくプログラムが実行できなくなるようなことが
ない。
ズよりも大きな仮想空間領域10にアクセスするための
ものである場合に、アクセス管理に必要な仮想空間領域
lOのサイズ、開始アドレスに関する拡張領域情報をセ
グメントディスクリプタに付随させる方式であり、この
拡張領域情報についての処理を行なうための機能が設け
られているので、ソフトウェアによる管理に比較して、
効率良くかつ確実な管理が可能となる。また、セグメン
トディスクリプタの形式を大きく変えるものでなく (
識別ビット、拡張モードピットの付加のみ)、従来の方
式に基づくプログラムが実行できなくなるようなことが
ない。
[発明の効果]
以上のように本発明によれば、セグメントディスクリプ
タの形式を大きく変更することなく、効率良く仮想空間
領域のデータをアクセスすることが可能な仮想記憶管理
方式を提供することが可能となるものである。
タの形式を大きく変更することなく、効率良く仮想空間
領域のデータをアクセスすることが可能な仮想記憶管理
方式を提供することが可能となるものである。
第1図は本発明の一実施例に係わる仮想記憶管理方式の
構成を示すブロック図、第2図は同実施例において用い
られるセグメントディスクリプタの構成の一例を示す図
、第3図は同実施例において用いられる拡張領域情報の
構成の一例を示す図である。 11・・・セグメントディスクリプタテーブル、12・
・・セグメントディスクリプタ、13・・・拡張領域情
報、14・・・セグメントディスクリプタレジスタ、1
5・・・拡張領域情報レジスタ、16・・・セグメント
内相対アドレス、17・・・仮想アドレス計算回路、1
9・・・拡張領域判定回路、21・・・セグメント境界
判定回路、23・・・制御信号生成回路(書き換え要求
手段)。
構成を示すブロック図、第2図は同実施例において用い
られるセグメントディスクリプタの構成の一例を示す図
、第3図は同実施例において用いられる拡張領域情報の
構成の一例を示す図である。 11・・・セグメントディスクリプタテーブル、12・
・・セグメントディスクリプタ、13・・・拡張領域情
報、14・・・セグメントディスクリプタレジスタ、1
5・・・拡張領域情報レジスタ、16・・・セグメント
内相対アドレス、17・・・仮想アドレス計算回路、1
9・・・拡張領域判定回路、21・・・セグメント境界
判定回路、23・・・制御信号生成回路(書き換え要求
手段)。
Claims (1)
- 【特許請求の範囲】 セグメンテーション方式とページング方式を併用した仮
想記憶管理機構を有した計算機システムにおいて、 仮想空間領域中のセグメントの位置と大きさを示す情報
、及び最大セグメントサイズよりも大きな仮想空間領域
をアクセス対象とする拡張モードまたは前記セグメント
をアクセス対象とする非拡張モードを示す拡張モード情
報を含む単一のセグメントディスクリプタで前記仮想空
間領域を管理し、前記セグメントディスクリプタの拡張
モード情報によって前記拡張モードが示される場合に仮
想空間中の仮想空間領域の位置と大きさを示す拡張領域
情報を前記セグメントディスクリプタに付随させる方式
であって、 前記セグメントディスクリプタを保持するための第1の
保持手段と、 前記第1の保持手段に保持された前記セグメントディス
クリプタ中の前記拡張モード情報によって前記拡張モー
ドが示されているときに前記拡張領域情報を保持するた
めの第2の保持手段と、前記第1の保持手段に保持され
たセグメントディスクリプタ、または同ディスクリプタ
並びに前記第2の保持手段に保持された前記拡張領域情
報に基づいて、アクセス対象とする仮想アドレスを生成
する仮想アドレス生成手段と、 前記仮想アドレス生成手段によって生成された仮想アド
レスが前記セグメントの内部を示すものであるか否かを
、前記第1の保持手段に保持された前記セグメントディ
スクリプタに基づいて判定する第1の判定手段と、 前記仮想アドレス生成手段によって生成された仮想アド
レスが前記仮想空間領域の内部を示すものであるか否か
を、前記第2の保持手段に保持された前記拡張領域情報
に基づいて判定する第2の判定手段と、 前記第1の判定手段の判定結果、前記第2の判定手段の
判定結果、及び前記第1の保持手段に保持された前記セ
グメントディスクリプタ中の拡張モード情報によって、
前記仮想アドレス生成手段によって生成された仮想アド
レスが仮想空間領域の内部であってセグメントの内部で
ないときに前記セグメントディスクリプタの書き換えを
要求する書き換え要求手段と、 を具備し、 前記制御信号生成手段による要求に応じて前記セグメン
トディスクリプタの書き換えを行ない、この書き換えら
れたセグメントディスクリプタに基づいて仮想空間領域
にアクセスを行なうことを特徴とする仮想記憶管理方式
。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1215581A JPH0378052A (ja) | 1989-08-22 | 1989-08-22 | 仮想記憶管理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1215581A JPH0378052A (ja) | 1989-08-22 | 1989-08-22 | 仮想記憶管理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0378052A true JPH0378052A (ja) | 1991-04-03 |
Family
ID=16674808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1215581A Pending JPH0378052A (ja) | 1989-08-22 | 1989-08-22 | 仮想記憶管理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0378052A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7424562B2 (en) * | 2004-03-01 | 2008-09-09 | Cisco Technology, Inc. | Intelligent PCI bridging consisting of prefetching data based upon descriptor data |
-
1989
- 1989-08-22 JP JP1215581A patent/JPH0378052A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7424562B2 (en) * | 2004-03-01 | 2008-09-09 | Cisco Technology, Inc. | Intelligent PCI bridging consisting of prefetching data based upon descriptor data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7069389B2 (en) | Lazy flushing of translation lookaside buffers | |
US5619671A (en) | Method and apparatus for providing token controlled access to protected pages of memory | |
EP0213843B1 (en) | Digital processor control | |
US5481688A (en) | Information processing system having an address translation table loaded with main/expanded memory presence bits | |
US5182805A (en) | Method and system for determining copy-on-write condition | |
KR100995146B1 (ko) | 개선된 메모리 엑세스 보안을 제공하는 메모리에 디바이스엑세스를 제어하기 위한 시스템 및 방법 | |
JP3485940B2 (ja) | 仮想記憶制御装置及び方法 | |
US20050138263A1 (en) | Method and apparatus to retain system control when a buffer overflow attack occurs | |
JPH0378052A (ja) | 仮想記憶管理方式 | |
KR930009092B1 (ko) | 가상 메모리 어드레싱을 채택한 데이타 처리 시스템에서의 페이지 프레임 교체 장치 및 방법 | |
EP0864983A2 (en) | Computer system including memory adress management circuit for protecting memory from illegal writing | |
JPS644214B2 (ja) | ||
JP2828252B2 (ja) | ファイルアクセス制御方式 | |
JP3517884B2 (ja) | データ処理装置 | |
JP2796162B2 (ja) | 命令処理方法 | |
JPS62131352A (ja) | アドレス変換制御方式 | |
JPS63752A (ja) | メモリ保護方式 | |
JPS59139199A (ja) | 記憶保護方式 | |
JPH02165354A (ja) | 補助記憶装置 | |
JPH0412861B2 (ja) | ||
JP2000099396A (ja) | 情報処理装置 | |
JPH06208514A (ja) | 記憶保護機能を有する情報処理装置および記憶保護方法 | |
JPH0822416A (ja) | キャッシュメモリの制御方法 | |
JPS62219046A (ja) | 記憶保護方式 | |
JPS58171781A (ja) | 電子計算機 |