JPH0822418A - 仮想アドレス空間管理装置 - Google Patents
仮想アドレス空間管理装置Info
- Publication number
- JPH0822418A JPH0822418A JP6155629A JP15562994A JPH0822418A JP H0822418 A JPH0822418 A JP H0822418A JP 6155629 A JP6155629 A JP 6155629A JP 15562994 A JP15562994 A JP 15562994A JP H0822418 A JPH0822418 A JP H0822418A
- Authority
- JP
- Japan
- Prior art keywords
- virtual address
- processor
- address space
- global
- node
- 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
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 プロセッサの負荷を低減する。
【構成】 スイッチングネットワーク、トークンリング
ネットワーク、FDDIあるいはイーサネット等、ネッ
トワーク1を用いて接続されたマルチプロセッサシステ
ムにおいて、各プロセッサ2を含むノード間に信号線群
19を接続し、その信号線群19に仮想アドレスと物理
アドレスの変換ルールを定めるアドレス変換テーブルを
接続する。このアドレス変換テーブルを全プロセッサ2
a〜2cによって共有し、単一仮想アドレス空間を維持
管理するために必要なプロセッサ間通信の削減等を図
る。
ネットワーク、FDDIあるいはイーサネット等、ネッ
トワーク1を用いて接続されたマルチプロセッサシステ
ムにおいて、各プロセッサ2を含むノード間に信号線群
19を接続し、その信号線群19に仮想アドレスと物理
アドレスの変換ルールを定めるアドレス変換テーブルを
接続する。このアドレス変換テーブルを全プロセッサ2
a〜2cによって共有し、単一仮想アドレス空間を維持
管理するために必要なプロセッサ間通信の削減等を図
る。
Description
【0001】
【産業上の利用分野】本発明は仮想アドレス空間管理装
置、特に仮想アドレス空間の管理を効率化するアドレス
変換テーブルを有する仮想アドレス空間管理装置に関す
る。
置、特に仮想アドレス空間の管理を効率化するアドレス
変換テーブルを有する仮想アドレス空間管理装置に関す
る。
【0002】
【従来の技術】CAD、データベース、シミュレーショ
ン等各種の分野においては、取り扱う情報量が大規模化
し、近い将来既存のコンピュータシステムでは検索速度
や情報容量の面で必要とされる要求を満たすことができ
なくなるといわれている。このため、以前にも増して計
算機の処理能力の飛躍的向上が要求されている。大規模
データを効率良く扱うためには、データを共有して分散
並列処理するシステムが有効である。データを共有する
方式は、 1.共有メモリ型マルチプロセッサ方式 2.非共有メモリ型マルチプロセッサ方式 に大別される。前者は文字どおり物理メモリを共有する
ものだが、バスや記憶装置の共有から来るボトルネック
のため、使用できるプロセッサの数が限られる。一方後
者は、システムに唯一存在する仮想アドレス空間(sing
le virtual address space)を採用することによってバ
スや記憶装置を共有することから来るボトルネックを回
避し、比較的多数のプロセッサを接続することを可能に
する。さらに後者は、前者同様プロセッサ間でアドレス
のみによるデータの共有が可能なため、大規模データを
扱う計算システムに適している。
ン等各種の分野においては、取り扱う情報量が大規模化
し、近い将来既存のコンピュータシステムでは検索速度
や情報容量の面で必要とされる要求を満たすことができ
なくなるといわれている。このため、以前にも増して計
算機の処理能力の飛躍的向上が要求されている。大規模
データを効率良く扱うためには、データを共有して分散
並列処理するシステムが有効である。データを共有する
方式は、 1.共有メモリ型マルチプロセッサ方式 2.非共有メモリ型マルチプロセッサ方式 に大別される。前者は文字どおり物理メモリを共有する
ものだが、バスや記憶装置の共有から来るボトルネック
のため、使用できるプロセッサの数が限られる。一方後
者は、システムに唯一存在する仮想アドレス空間(sing
le virtual address space)を採用することによってバ
スや記憶装置を共有することから来るボトルネックを回
避し、比較的多数のプロセッサを接続することを可能に
する。さらに後者は、前者同様プロセッサ間でアドレス
のみによるデータの共有が可能なため、大規模データを
扱う計算システムに適している。
【0003】後者の一般的な構成は、それぞれ主記憶
(ローカルメモリ)を有する多数のプロセッサがネット
ワークで接続され、プロセッサ間の相互通信を可能にし
たマルチプロセッサシステムである。ここで各プロセッ
サは、単一の仮想アドレス空間のデータを自己のローカ
ルメモリに確保した物理ページにコピーし、その物理ペ
ージのアドレスをアドレス変換テーブルに従って仮想ア
ドレスに変換して仮想アドレス空間をアクセスする。
(ローカルメモリ)を有する多数のプロセッサがネット
ワークで接続され、プロセッサ間の相互通信を可能にし
たマルチプロセッサシステムである。ここで各プロセッ
サは、単一の仮想アドレス空間のデータを自己のローカ
ルメモリに確保した物理ページにコピーし、その物理ペ
ージのアドレスをアドレス変換テーブルに従って仮想ア
ドレスに変換して仮想アドレス空間をアクセスする。
【0004】[従来例1]図7は文献1(J.S.Chase e
t.al,“How to Use a 64-Bit Virtual Address Spase
”,University of Washington,Technical Report 92-0
3-02 )に開示される仮想アドレス空間管理装置を表す
概念図である。この従来例において、複数のプロセッサ
2はネットワーク1で接続され、各プロセッサ2はそれ
ぞれアドレス変換テーブルであるページテーブル30を
持つ。ページテーブル30は仮想アドレス空間と物理ペ
ージの対応を管理し、仮想アドレス空間を物理ページの
大きさに区分したとき、その区分毎にエントリ9を持
つ。各エントリ9は、仮想アドレス空間の特定ページに
割り付けた物理ページの番号を格納する物理ページ番号
フィールド5と、その物理ページに対するあらゆるアク
セスを禁止するFoA(Fault on Access )フラグ31
と、その物理ページに対する書込みのみを禁止するFo
W(Fault on Write)フラグ32と、エントリ9の有効
性を示す有効フラグ33とを持つ。有効でないアドレス
へのアクセス、または禁じられた種類のアクセスはフォ
ールトを発生させる結果、アクセスが禁止される。なお
初期状態においては、すべての有効フラグ33がリセッ
ト状態に、すべてのFoAフラグ31およびFoWフラ
グ32がセット状態にある。また、プロセッサ間のデー
タ転送は、ある特定の仮想アドレスを含むページ単位で
行われる。
t.al,“How to Use a 64-Bit Virtual Address Spase
”,University of Washington,Technical Report 92-0
3-02 )に開示される仮想アドレス空間管理装置を表す
概念図である。この従来例において、複数のプロセッサ
2はネットワーク1で接続され、各プロセッサ2はそれ
ぞれアドレス変換テーブルであるページテーブル30を
持つ。ページテーブル30は仮想アドレス空間と物理ペ
ージの対応を管理し、仮想アドレス空間を物理ページの
大きさに区分したとき、その区分毎にエントリ9を持
つ。各エントリ9は、仮想アドレス空間の特定ページに
割り付けた物理ページの番号を格納する物理ページ番号
フィールド5と、その物理ページに対するあらゆるアク
セスを禁止するFoA(Fault on Access )フラグ31
と、その物理ページに対する書込みのみを禁止するFo
W(Fault on Write)フラグ32と、エントリ9の有効
性を示す有効フラグ33とを持つ。有効でないアドレス
へのアクセス、または禁じられた種類のアクセスはフォ
ールトを発生させる結果、アクセスが禁止される。なお
初期状態においては、すべての有効フラグ33がリセッ
ト状態に、すべてのFoAフラグ31およびFoWフラ
グ32がセット状態にある。また、プロセッサ間のデー
タ転送は、ある特定の仮想アドレスを含むページ単位で
行われる。
【0005】以上の構成によって、仮想アドレス空間が
共有される様子を、図7に基づいて説明する。
共有される様子を、図7に基づいて説明する。
【0006】《ステップ1》まずはじめに、あるプロセ
ッサ2aから特定の仮想アドレスに対してアクセスが許
可される手順は以下の通りである。
ッサ2aから特定の仮想アドレスに対してアクセスが許
可される手順は以下の通りである。
【0007】・まず、プロセッサ2aがローカルメモリ
3a内に物理ページを確保する。
3a内に物理ページを確保する。
【0008】・特定の仮想アドレスに対応するエントリ
9aの物理ページ番号フィールド5aに確保した物理ペ
ージの番号を登録する。
9aの物理ページ番号フィールド5aに確保した物理ペ
ージの番号を登録する。
【0009】・同エントリ9aのFoAフラグ31aと
FoWフラグ32aをリセットする。
FoWフラグ32aをリセットする。
【0010】・同エントリ9aの有効フラグ33aをセ
ットする。
ットする。
【0011】これら一連の操作により、プロセッサ2a
は自己のローカルメモリ3a内の物理ページにアクセス
することによって、仮想アドレスに対するアクセスが可
能になる。
は自己のローカルメモリ3a内の物理ページにアクセス
することによって、仮想アドレスに対するアクセスが可
能になる。
【0012】《ステップ2》次に、上記した仮想アドレ
スを他のプロセッサ2bが共有する手順を以下に示す。
ここでAはプロセッサ2aの動作、Bはプロセッサ2b
の動作を表すものとする。
スを他のプロセッサ2bが共有する手順を以下に示す。
ここでAはプロセッサ2aの動作、Bはプロセッサ2b
の動作を表すものとする。
【0013】B.まず自己のローカルメモリ3bに物理
ページを確保する。
ページを確保する。
【0014】B.上記仮想アドレスの有効なデータを持
つプロセッサを知るために、ネットワーク1を使って全
ノードにメッセージを発信する。
つプロセッサを知るために、ネットワーク1を使って全
ノードにメッセージを発信する。
【0015】A.メッセージに応答する。
【0016】B.プロセッサ2aにデータの送信を要求
する。
する。
【0017】A.上記仮想アドレスに対応するエントリ
9aのFoWフラグ32aをセットし、その仮想アドレ
スに対する自己の更新を凍結する。
9aのFoWフラグ32aをセットし、その仮想アドレ
スに対する自己の更新を凍結する。
【0018】A.上記仮想アドレスを含む物理ページの
内容をプロセッサ2bに送信する。
内容をプロセッサ2bに送信する。
【0019】B.受けとった物理ページの内容を自己の
ローカルメモリ3b内の物理ページに書き込む。
ローカルメモリ3b内の物理ページに書き込む。
【0020】B.対応するエントリ9bの物理ページ番
号フィールド5bに、受け取った物理ページ番号を登録
する。
号フィールド5bに、受け取った物理ページ番号を登録
する。
【0021】B.対応するエントリ9bのFoWフラグ
32bをセットし、FoAフラグ31bをリセットす
る。
32bをセットし、FoAフラグ31bをリセットす
る。
【0022】B.対応するエントリ9bの有効フラグ3
3bをセットする。
3bをセットする。
【0023】これら一連の手順により、プロセッサ2b
はプロセッサ2aが更新したメモリを参照することが可
能になる。以上が従来例1に係る仮想アドレス空間管理
装置の概要である。
はプロセッサ2aが更新したメモリを参照することが可
能になる。以上が従来例1に係る仮想アドレス空間管理
装置の概要である。
【0024】《ステップ3》続いて、複数のプロセッサ
に共有される仮想アドレスに対し、プロセッサ2aがデ
ータを更新する手順を説明する。ここでAはプロセッサ
2aの動作、Nはプロセッサ2a以外の全プロセッサの
動作を表すものとする。
に共有される仮想アドレスに対し、プロセッサ2aがデ
ータを更新する手順を説明する。ここでAはプロセッサ
2aの動作、Nはプロセッサ2a以外の全プロセッサの
動作を表すものとする。
【0025】A.プロセッサ2a以外の全プロセッサに
対してメッセージを送信する。
対してメッセージを送信する。
【0026】N.対応するエントリ9aのFoAフラグ
31をセットし、上記仮想アドレスに対する自己のアク
セスを凍結する。
31をセットし、上記仮想アドレスに対する自己のアク
セスを凍結する。
【0027】A.対応するエントリ9aのFoWフラグ
32aをリセットし、仮想アドレスへの書込みを行う。
32aをリセットし、仮想アドレスへの書込みを行う。
【0028】こうして仮想アドレスのデータは更新され
る。更新の結果、他の全プロセッサ2は、対応するエン
トリ9aの有効ビットが1であるにも拘らずFoAビッ
トが1となっているため、いずれか他のプロセッサ2が
当該アドレスを更新したことを認識する。更新後の仮想
アドレスを再度共有したければ、そのプロセッサ2は改
めてステップ2を行えばよい。
る。更新の結果、他の全プロセッサ2は、対応するエン
トリ9aの有効ビットが1であるにも拘らずFoAビッ
トが1となっているため、いずれか他のプロセッサ2が
当該アドレスを更新したことを認識する。更新後の仮想
アドレスを再度共有したければ、そのプロセッサ2は改
めてステップ2を行えばよい。
【0029】[従来例2]図8は文献2(David B.Gust
avson,“マルチプロセッサ・システム用データ転送イン
ターフェースSCI,拡張性を重視,”日経エレクトロニク
ス,no.565,Oct.12,1992.pp.301-322.)に開示される仮
想アドレス空間管理装置の概念図である。この例におい
ては、処理能力を向上させるために各ノードがキャッシ
ュメモリ40を持っている。これらキャッシュメモリ4
0のコヒーレンシを維持するために、この例ではディレ
クトリ管理という方式を導入している。これは、多数の
プロセッサが複数の処理を並列して行うシステムでは、
スヌーピングが非常に困難なために採用される方式であ
る。ただし、キャッシュメモリは仮想アドレス空間の管
理上必須の要素ではなく、従来例2と従来例1の本質的
な違いは次の点にある。
avson,“マルチプロセッサ・システム用データ転送イン
ターフェースSCI,拡張性を重視,”日経エレクトロニク
ス,no.565,Oct.12,1992.pp.301-322.)に開示される仮
想アドレス空間管理装置の概念図である。この例におい
ては、処理能力を向上させるために各ノードがキャッシ
ュメモリ40を持っている。これらキャッシュメモリ4
0のコヒーレンシを維持するために、この例ではディレ
クトリ管理という方式を導入している。これは、多数の
プロセッサが複数の処理を並列して行うシステムでは、
スヌーピングが非常に困難なために採用される方式であ
る。ただし、キャッシュメモリは仮想アドレス空間の管
理上必須の要素ではなく、従来例2と従来例1の本質的
な違いは次の点にある。
【0030】1.従来例2では、各ノードのローカルメ
モリの物理アドレスが重複しないように設定されてい
る。
モリの物理アドレスが重複しないように設定されてい
る。
【0031】2.従来例2では、各ノードがディレクト
リ管理システム41(後述)を持ち、ノード毎に自他ノ
ード間で共有される仮想アドレスを認識している。
リ管理システム41(後述)を持ち、ノード毎に自他ノ
ード間で共有される仮想アドレスを認識している。
【0032】以下、従来例2の概要を説明する。
【0033】図8において各プロセッサ2は、各ノード
のメモリであるローカルメモリ3と、キャッシュメモリ
40と、各ノードのキャッシャメモリ40を管理するデ
ィレクトリ管理システム41を持ち、ディレクトリ管理
システム41は互いに回線42を通じて接続されてい
る。また、各ノードのローカルメモリ3は異なる物理ア
ドレスに割り振られている。その他の点は従来例1と同
等であり、図示していない。
のメモリであるローカルメモリ3と、キャッシュメモリ
40と、各ノードのキャッシャメモリ40を管理するデ
ィレクトリ管理システム41を持ち、ディレクトリ管理
システム41は互いに回線42を通じて接続されてい
る。また、各ノードのローカルメモリ3は異なる物理ア
ドレスに割り振られている。その他の点は従来例1と同
等であり、図示していない。
【0034】この構成によって仮想アドレス空間が共有
される様子を説明する。
される様子を説明する。
【0035】ディレクトリ管理システム41aは、まず
自ノードのローカルメモリ3aをキャッシュメモリ40
aのラインサイズ毎の領域に分割し、その領域の内容が
他のいずれのキャッシュメモリ40b、40cに存在す
るかを、領域毎に管理ビット列として記録する。またデ
ィレクトリ管理システム41aは、自己のキャッシュメ
モリ40aのライン毎に、キャッシュデータの有効無効
を示すステイルビット(ステイル=「すでに内容が古
い」の意)を持つ。このステイルビットは、他のプロセ
ッサ2がデータを更新したとき、そのプロセッサ2から
通知を受け、対応するアドレスのキャッシュラインを無
効にするために、プロセッサ2が自らセットするビット
である。なお、プロセッサ間のデータ転送はキャッシュ
ラインサイズ単位で行われる。
自ノードのローカルメモリ3aをキャッシュメモリ40
aのラインサイズ毎の領域に分割し、その領域の内容が
他のいずれのキャッシュメモリ40b、40cに存在す
るかを、領域毎に管理ビット列として記録する。またデ
ィレクトリ管理システム41aは、自己のキャッシュメ
モリ40aのライン毎に、キャッシュデータの有効無効
を示すステイルビット(ステイル=「すでに内容が古
い」の意)を持つ。このステイルビットは、他のプロセ
ッサ2がデータを更新したとき、そのプロセッサ2から
通知を受け、対応するアドレスのキャッシュラインを無
効にするために、プロセッサ2が自らセットするビット
である。なお、プロセッサ間のデータ転送はキャッシュ
ラインサイズ単位で行われる。
【0036】《ステップ1》プロセッサ2aがある仮想
アドレスを有効にする手順は従来例1と同等である。
アドレスを有効にする手順は従来例1と同等である。
【0037】《ステップ2》つぎにプロセッサ2aが他
ノードのローカルメモリ3bのデータを共有する手順を
説明する。Aはディレクトリ管理システム41aの動
作、Bはディレクトリ管理システム41bの動作を示
す。
ノードのローカルメモリ3bのデータを共有する手順を
説明する。Aはディレクトリ管理システム41aの動
作、Bはディレクトリ管理システム41bの動作を示
す。
【0038】A.まず物理アドレスから、そのデータが
ローカルメモリ3bにあると判断する。この判断は、各
ノードのローカルメモリの物理アドレスが重複しないよ
うに設定されているために可能となる。
ローカルメモリ3bにあると判断する。この判断は、各
ノードのローカルメモリの物理アドレスが重複しないよ
うに設定されているために可能となる。
【0039】A.ディレクトリ管理システム41bに対
し、データを転送するように通信する。
し、データを転送するように通信する。
【0040】B.データを回線42を通して転送する。
【0041】A.データをキャッシュメモリ40aに書
き込む。
き込む。
【0042】B.データがキャッシュメモリ40aに存
在することを自己の管理ビット列に記録する。
在することを自己の管理ビット列に記録する。
【0043】《ステップ3》つづいて、プロセッサ2a
がキャッシュメモリ40aにキャッシングされたローカ
ルメモリ3bのデータを更新する手順を説明する。Aは
ディレクトリ管理システム41a、Bはディレクトリ管
理システム41b、Nは更新されるべき仮想アドレスの
データをキャッシュメモリ40に持っている全プロセッ
サ2のディレクトリ管理システム41の動作を示す。
がキャッシュメモリ40aにキャッシングされたローカ
ルメモリ3bのデータを更新する手順を説明する。Aは
ディレクトリ管理システム41a、Bはディレクトリ管
理システム41b、Nは更新されるべき仮想アドレスの
データをキャッシュメモリ40に持っている全プロセッ
サ2のディレクトリ管理システム41の動作を示す。
【0044】A.ディレクトリ管理システム41bに対
し、データが更新されたことを通知する。
し、データが更新されたことを通知する。
【0045】B.そのデータに対応する管理ビット列を
参照し、そのデータをキャッシュメモリ40に持つ全て
のプロセッサ2を判断する。
参照し、そのデータをキャッシュメモリ40に持つ全て
のプロセッサ2を判断する。
【0046】B.上記全プロセッサ2のディレクトリ管
理システム41に、キャッシュメモリ40のデータを無
効にするよう、通信を行う。
理システム41に、キャッシュメモリ40のデータを無
効にするよう、通信を行う。
【0047】N.ステイルフラグ6をセットし、キャッ
シュメモリ40の対応キャッシュラインを無効化する。
シュメモリ40の対応キャッシュラインを無効化する。
【0048】以上がディレクトリ管理方式による仮想ア
ドレス空間管理装置の概要である。
ドレス空間管理装置の概要である。
【0049】
【発明が解決しようとする課題】上記の従来例1によれ
ば、複数のプロセッサから単一の仮想アドレス空間をア
クセスすることが可能となる。しかしこの際、複数のプ
ロセッサがそれぞれ独立したアドレス変換テーブルを持
つために、各プロセッサの作業が増加する点が問題とな
る。つまり、あるプロセッサが特定の仮想アドレスを共
有または更新するとき、上記した各ステップを経る必要
があり、プロセッサ間の通信が増える。特に、プロセッ
サの数が多い時には無視できないオーバヘッドが生じ
る。これらの課題の本質原因は、テーブルがノード毎に
存在することにある。つまり、例えば有効フラグがノー
ド別にあるため、いずれのノードが有効なメモリ内容を
保持していているか他ノードから不明となり、共有・更
新の際、必ずプロセッサ間の通信が必要となるためであ
る。
ば、複数のプロセッサから単一の仮想アドレス空間をア
クセスすることが可能となる。しかしこの際、複数のプ
ロセッサがそれぞれ独立したアドレス変換テーブルを持
つために、各プロセッサの作業が増加する点が問題とな
る。つまり、あるプロセッサが特定の仮想アドレスを共
有または更新するとき、上記した各ステップを経る必要
があり、プロセッサ間の通信が増える。特に、プロセッ
サの数が多い時には無視できないオーバヘッドが生じ
る。これらの課題の本質原因は、テーブルがノード毎に
存在することにある。つまり、例えば有効フラグがノー
ド別にあるため、いずれのノードが有効なメモリ内容を
保持していているか他ノードから不明となり、共有・更
新の際、必ずプロセッサ間の通信が必要となるためであ
る。
【0050】従来例2においても同様に、データ更新の
際、他ノードで更新されたラインを無効化するために通
信が必要である。従来例2では、各ノードのローカルメ
モリを異なる物理アドレスに割り当てるため、参照した
いデータを保持するノードを見つけるための通信は不要
になる。この点で従来例1より改善されているが、各ノ
ードの物理アドレス自体を変更するため、システムとし
ての汎用性、恒常性に欠ける。また従来例2では、ロー
カルメモリをキャッシュラインサイズに分割した各領域
についてノード数に等しいビット列を必要とするため、
管理に必要な情報が大きくなる。このためシステムが使
用できるメモリの容量と接続されるプロセッサの数が限
定される。従って、大量の情報を多数のプロセッサが共
有し、大規模なCAD、データベース、シミュレーショ
ン等のアプリケーションを効率良く動かすという目的に
は適さない。
際、他ノードで更新されたラインを無効化するために通
信が必要である。従来例2では、各ノードのローカルメ
モリを異なる物理アドレスに割り当てるため、参照した
いデータを保持するノードを見つけるための通信は不要
になる。この点で従来例1より改善されているが、各ノ
ードの物理アドレス自体を変更するため、システムとし
ての汎用性、恒常性に欠ける。また従来例2では、ロー
カルメモリをキャッシュラインサイズに分割した各領域
についてノード数に等しいビット列を必要とするため、
管理に必要な情報が大きくなる。このためシステムが使
用できるメモリの容量と接続されるプロセッサの数が限
定される。従って、大量の情報を多数のプロセッサが共
有し、大規模なCAD、データベース、シミュレーショ
ン等のアプリケーションを効率良く動かすという目的に
は適さない。
【0051】本発明は上記課題を解決するためになされ
たもので、仮想アドレス空間の管理に必要な情報につい
ては、全プロセッサに共通かつ唯一のアドレス変換テー
ブルを設け、簡単かつ安価な構成にして、プロセッサ間
の通信を低減する仮想アドレス空間管理装置を提供する
ことを目的とする。
たもので、仮想アドレス空間の管理に必要な情報につい
ては、全プロセッサに共通かつ唯一のアドレス変換テー
ブルを設け、簡単かつ安価な構成にして、プロセッサ間
の通信を低減する仮想アドレス空間管理装置を提供する
ことを目的とする。
【0052】
【課題を解決するための手段】上記課題を解決するため
に本発明の仮想アドレス空間管理装置は、それぞれがプ
ロセッサとローカルメモリを有する複数のノードによっ
て共有される仮想アドレス空間を管理する装置であっ
て、複数のノード間に接続されて仮想アドレス空間の管
理に必要な情報を伝達する信号線群と、信号線群に接続
され、各ノードのプロセッサが仮想アドレス空間をアク
セスするために必要な情報のうち、全ノードのプロセッ
サから共通して参照されるべき情報を一括して管理する
グローバルアドレス変換部と、各ノードに内蔵され、各
ノードのプロセッサが仮想アドレス空間をアクセスする
ために、個別に参照すべき情報を管理するローカルアド
レス変換部とを有し、前記グローバルアドレス変換部を
全ノードのプロセッサで共用するものである。
に本発明の仮想アドレス空間管理装置は、それぞれがプ
ロセッサとローカルメモリを有する複数のノードによっ
て共有される仮想アドレス空間を管理する装置であっ
て、複数のノード間に接続されて仮想アドレス空間の管
理に必要な情報を伝達する信号線群と、信号線群に接続
され、各ノードのプロセッサが仮想アドレス空間をアク
セスするために必要な情報のうち、全ノードのプロセッ
サから共通して参照されるべき情報を一括して管理する
グローバルアドレス変換部と、各ノードに内蔵され、各
ノードのプロセッサが仮想アドレス空間をアクセスする
ために、個別に参照すべき情報を管理するローカルアド
レス変換部とを有し、前記グローバルアドレス変換部を
全ノードのプロセッサで共用するものである。
【0053】また本発明の仮想アドレス空間管理装置
は、前記グローバルアドレス変換部が、アドレス変換に
関する実情報を格納するグローバルページテーブルと、
前記各ノードのプロセッサによってグローバルページテ
ーブルの実情報が更新または参照される際、プロセッサ
の要求に従ってグローバルページテーブルを操作するグ
ローバルページテーブル制御部とを有するものである。
は、前記グローバルアドレス変換部が、アドレス変換に
関する実情報を格納するグローバルページテーブルと、
前記各ノードのプロセッサによってグローバルページテ
ーブルの実情報が更新または参照される際、プロセッサ
の要求に従ってグローバルページテーブルを操作するグ
ローバルページテーブル制御部とを有するものである。
【0054】また本発明の仮想アドレス空間管理装置
は、前記グローバルページテーブルが仮想アドレス空間
のページと一対一に対応するエントリを有し、各エント
リはそのエントリが指示する物理ページの最新データを
持つプロセッサの番号を記憶するフィールドを有するも
のである。
は、前記グローバルページテーブルが仮想アドレス空間
のページと一対一に対応するエントリを有し、各エント
リはそのエントリが指示する物理ページの最新データを
持つプロセッサの番号を記憶するフィールドを有するも
のである。
【0055】また本発明の仮想アドレス空間管理装置
は、前記信号線群が、前記グローバルアドレス変換部を
アクセスするプロセッサを識別するための識別信号を含
むものである。
は、前記信号線群が、前記グローバルアドレス変換部を
アクセスするプロセッサを識別するための識別信号を含
むものである。
【0056】また本発明の仮想アドレス空間管理装置
は、前記グローバルページテーブルが仮想アドレス空間
のページと一対一に対応するエントリを有し、各エント
リがそのエントリの指示する物理ページのデータを退避
すべき二次記憶装置を持つノードのプロセッサ番号を記
憶するフィールドを有するものである。
は、前記グローバルページテーブルが仮想アドレス空間
のページと一対一に対応するエントリを有し、各エント
リがそのエントリの指示する物理ページのデータを退避
すべき二次記憶装置を持つノードのプロセッサ番号を記
憶するフィールドを有するものである。
【0057】また本発明の仮想アドレス空間管理装置
は、それぞれがプロセッサと、ローカルメモリと、ロー
カルキャッシュメモリと、そのローカルキャッシュメモ
リを制御するキャッシュメモリ制御部とを有する複数の
ノードによって共有される仮想アドレス空間を管理する
装置であって、複数のノード間に接続されて仮想アドレ
ス空間の管理に必要な情報を伝達する信号線群と、信号
線群に接続され、各ノードのプロセッサが仮想アドレス
空間をアクセスするために必要な情報のうち、全ノード
のプロセッサから共通して参照されるべき情報を一括し
て管理するグローバルアドレス変換部と、各ノードに内
蔵され、各ノードのプロセッサが仮想アドレス空間をア
クセスするために、個別に参照すべき情報を管理するロ
ーカルアドレス変換部とを有し、さらに前記グローバル
アドレス変換部はあるノードのプロセッサが仮想アドレ
ス空間の任意のアドレスに対して行うデータの更新を検
出する検出手段を、前記信号線群は、検出手段の検出情
報に従ってデータの更新の発生を全ノードに通知するた
めの更新通知信号線をそれぞれ含むものである。
は、それぞれがプロセッサと、ローカルメモリと、ロー
カルキャッシュメモリと、そのローカルキャッシュメモ
リを制御するキャッシュメモリ制御部とを有する複数の
ノードによって共有される仮想アドレス空間を管理する
装置であって、複数のノード間に接続されて仮想アドレ
ス空間の管理に必要な情報を伝達する信号線群と、信号
線群に接続され、各ノードのプロセッサが仮想アドレス
空間をアクセスするために必要な情報のうち、全ノード
のプロセッサから共通して参照されるべき情報を一括し
て管理するグローバルアドレス変換部と、各ノードに内
蔵され、各ノードのプロセッサが仮想アドレス空間をア
クセスするために、個別に参照すべき情報を管理するロ
ーカルアドレス変換部とを有し、さらに前記グローバル
アドレス変換部はあるノードのプロセッサが仮想アドレ
ス空間の任意のアドレスに対して行うデータの更新を検
出する検出手段を、前記信号線群は、検出手段の検出情
報に従ってデータの更新の発生を全ノードに通知するた
めの更新通知信号線をそれぞれ含むものである。
【0058】また本発明の仮想アドレス空間管理装置
は、システム起動時に仮想アドレス空間を共有すべきプ
ロセッサの数を計数する計数手段と、計数手段によって
計数されたプロセッサの数に応じてグローバルページテ
ーブルの各エントリの配列構造を決定する決定手段と、
決定手段によって決定された配列構造に従って領域を確
保し、グローバルページテーブルを生成する生成手段と
を有するものである。
は、システム起動時に仮想アドレス空間を共有すべきプ
ロセッサの数を計数する計数手段と、計数手段によって
計数されたプロセッサの数に応じてグローバルページテ
ーブルの各エントリの配列構造を決定する決定手段と、
決定手段によって決定された配列構造に従って領域を確
保し、グローバルページテーブルを生成する生成手段と
を有するものである。
【0059】
【作用】上記構成による本発明によれば、前記信号線群
が仮想アドレス空間の管理に必要な情報を全ノードに伝
達する。このとき、グローバルアドレス変換部はこの信
号線群に接続されているため、各ノードのプロセッサが
仮想アドレス空間をアクセスするために必要な情報のう
ち、全ノードのプロセッサから共通して参照されるべき
情報を一括して管理することができる。またグローバル
アドレス変換部は全ノードが接続される信号線群に接続
されるため、全ノードから共用することができる。一
方、ローカルアドレス変換部は各ノードに内蔵され、各
ノードのプロセッサが仮想アドレス空間をアクセスする
際、個別に参照すべき情報を管理するため、例えば自ノ
ードのローカルメモリの使用状況等、ノード個別の状況
に従って仮想アドレスと物理ページアドレスの変換を行
うことができる。
が仮想アドレス空間の管理に必要な情報を全ノードに伝
達する。このとき、グローバルアドレス変換部はこの信
号線群に接続されているため、各ノードのプロセッサが
仮想アドレス空間をアクセスするために必要な情報のう
ち、全ノードのプロセッサから共通して参照されるべき
情報を一括して管理することができる。またグローバル
アドレス変換部は全ノードが接続される信号線群に接続
されるため、全ノードから共用することができる。一
方、ローカルアドレス変換部は各ノードに内蔵され、各
ノードのプロセッサが仮想アドレス空間をアクセスする
際、個別に参照すべき情報を管理するため、例えば自ノ
ードのローカルメモリの使用状況等、ノード個別の状況
に従って仮想アドレスと物理ページアドレスの変換を行
うことができる。
【0060】また本発明によれば、グローバルアドレス
変換部はグローバルページテーブルとグローバルページ
テーブル制御部とを有するため、アドレス変換に関する
実情報はグローバルページテーブルに格納され、グロー
バルページテーブル制御部が各ノードのプロセッサの要
求に従ってグローバルページテーブルの実情報を操作す
る。
変換部はグローバルページテーブルとグローバルページ
テーブル制御部とを有するため、アドレス変換に関する
実情報はグローバルページテーブルに格納され、グロー
バルページテーブル制御部が各ノードのプロセッサの要
求に従ってグローバルページテーブルの実情報を操作す
る。
【0061】また本発明によれば、グローバルページテ
ーブルの各エントリのプロセッサ番号フィールドが、そ
のエントリの指示する物理ページの最新データを持つプ
ロセッサの番号を記憶するため、各ノードのプロセッサ
は最新データを持つノードを容易に知ることができる。
ーブルの各エントリのプロセッサ番号フィールドが、そ
のエントリの指示する物理ページの最新データを持つプ
ロセッサの番号を記憶するため、各ノードのプロセッサ
は最新データを持つノードを容易に知ることができる。
【0062】また本発明によれば、前記信号線群が前記
グローバルアドレス変換部をアクセスするプロセッサを
識別するための識別信号を含むため、グローバルページ
テーブル制御部はグローバルページテーブルに対して操
作を要求するプロセッサを自動的に識別することができ
る。
グローバルアドレス変換部をアクセスするプロセッサを
識別するための識別信号を含むため、グローバルページ
テーブル制御部はグローバルページテーブルに対して操
作を要求するプロセッサを自動的に識別することができ
る。
【0063】また本発明によれば、グローバルページテ
ーブルの各エントリが、二次記憶装置を持つプロセッサ
番号を記憶するフィールドを持つため、各ノードのプロ
セッサは物理ページのデータを退避すべき二次記憶装置
を持つノードを容易に知ることができる。
ーブルの各エントリが、二次記憶装置を持つプロセッサ
番号を記憶するフィールドを持つため、各ノードのプロ
セッサは物理ページのデータを退避すべき二次記憶装置
を持つノードを容易に知ることができる。
【0064】また本発明によれば、前記グローバルアド
レス変換部の検出手段があるノードのプロセッサによっ
て仮想アドレス空間の任意のアドレスに対して行われる
データの更新を検出し、更新通知信号線として全ノード
に通知する。この通知に従い、キャッシュメモリ制御部
が、前記ローカルアドレス変換部によって該仮想アドレ
スから変換された物理アドレスに対応するキャッシュメ
モリ領域を無効化する。
レス変換部の検出手段があるノードのプロセッサによっ
て仮想アドレス空間の任意のアドレスに対して行われる
データの更新を検出し、更新通知信号線として全ノード
に通知する。この通知に従い、キャッシュメモリ制御部
が、前記ローカルアドレス変換部によって該仮想アドレ
スから変換された物理アドレスに対応するキャッシュメ
モリ領域を無効化する。
【0065】また本発明によれば、プロセッサ計数手段
がシステム起動時に仮想アドレス空間を共有すべきプロ
セッサの数を計数し、配列構造を決定する決定手段が計
数されたプロセッサの数に応じてグローバルページテー
ブルの各エントリの配列構造を決定し、グローバルペー
ジテーブル生成手段が決定手段によって決定された配列
構造に従って領域を確保し、グローバルページテーブル
を生成する。
がシステム起動時に仮想アドレス空間を共有すべきプロ
セッサの数を計数し、配列構造を決定する決定手段が計
数されたプロセッサの数に応じてグローバルページテー
ブルの各エントリの配列構造を決定し、グローバルペー
ジテーブル生成手段が決定手段によって決定された配列
構造に従って領域を確保し、グローバルページテーブル
を生成する。
【0066】
【実施例】以下、本発明の実施例について説明する。本
発明における仮想アドレス空間管理装置は、仮想アドレ
ス空間を管理するために必要な情報を、プロセッサ単位
で更新・参照すべきものと全プロセッサが共通して更新
・参照すべきものに分類し、後者に関する情報を共用の
アドレス変換部において統合管理する点に特徴がある。
このアドレス変換部をグローバルアドレス変換部と呼
ぶ。グローバルアドレス変換部は、特定の仮想アドレス
の有効無効、ある仮想アドレスの最新のデータをもつノ
ードのプロセッサ番号、任意のノードの物理ページのデ
ータを二次記憶装置にページアウト、または二次記憶装
置からページインする責任のあるノードのプロセッサ番
号等の情報を統合して管理する。この情報は全てのプロ
セッサから共用されるため、仮想アドレス空間に対する
アクセスおよびその他の管理に必要なプロセッサの負荷
が低減され、システム性能の向上を可能にするものであ
る。
発明における仮想アドレス空間管理装置は、仮想アドレ
ス空間を管理するために必要な情報を、プロセッサ単位
で更新・参照すべきものと全プロセッサが共通して更新
・参照すべきものに分類し、後者に関する情報を共用の
アドレス変換部において統合管理する点に特徴がある。
このアドレス変換部をグローバルアドレス変換部と呼
ぶ。グローバルアドレス変換部は、特定の仮想アドレス
の有効無効、ある仮想アドレスの最新のデータをもつノ
ードのプロセッサ番号、任意のノードの物理ページのデ
ータを二次記憶装置にページアウト、または二次記憶装
置からページインする責任のあるノードのプロセッサ番
号等の情報を統合して管理する。この情報は全てのプロ
セッサから共用されるため、仮想アドレス空間に対する
アクセスおよびその他の管理に必要なプロセッサの負荷
が低減され、システム性能の向上を可能にするものであ
る。
【0067】図1は、この発明に基づく仮想アドレス空
間管理装置におけるクラスタの構成を示す図である。以
降いくつかの実施例を記載するが、図1に示す構成はす
べての実施例に共通するため、まずこの構成を説明す
る。
間管理装置におけるクラスタの構成を示す図である。以
降いくつかの実施例を記載するが、図1に示す構成はす
べての実施例に共通するため、まずこの構成を説明す
る。
【0068】本発明においても、従来例同様複数のプロ
セッサ2がネットワーク1で接続され、各プロセッサが
ローカルメモリ3を持つ。しかし、仮想アドレス空間に
関連してプロセッサ単位で必要な情報を管理するローカ
ルアドレス変換部12と、全プロセッサに共通する情報
を管理するグローバルアドレス変換部15を分別して設
けた点で従来例と異なる。ローカルアドレス変換部12
は、ローカルページテーブル制御部13と、その制御部
によって制御されるローカルページテーブル14から構
成される。ローカルアドレス変換部12は、仮想アドレ
スの特定領域に対応する物理ページを自ノードのローカ
ルメモリ3の中に確保する際、両者のアドレス変換を行
い、かつその対応関係をローカルページテーブル14に
記憶するものである。ローカルアドレス変換部12にお
ける変換の規則は、各ノードにおけるローカルメモリの
使用状況等、ノード個別の状況に依存する。この意味で
ローカルアドレス変換部と呼ばれるものである。一方、
グローバルアドレス変換部15は、グローバルページテ
ーブル制御部16と、仮想アドレス空間に関する実情報
を保持するグローバルページテーブル17から構成され
る。グローバルページテーブル17には、仮想アドレス
に対応する有効データがいずれのノードに保持されてい
るか等、全ノードに共通する情報がデータ配列として記
憶されている。従って、あるプロセッサ2が特定の仮想
アドレスに対する有効データの所在を知る場合、このプ
ロセッサ2はグローバルページテーブル制御部16を経
由してグローバルページテーブル17の参照を行う。従
ってこのとき、他ノードのプロセッサ2に対してメッセ
ージを発信し、他ノードのプロセッサ2が応答する必要
はない。
セッサ2がネットワーク1で接続され、各プロセッサが
ローカルメモリ3を持つ。しかし、仮想アドレス空間に
関連してプロセッサ単位で必要な情報を管理するローカ
ルアドレス変換部12と、全プロセッサに共通する情報
を管理するグローバルアドレス変換部15を分別して設
けた点で従来例と異なる。ローカルアドレス変換部12
は、ローカルページテーブル制御部13と、その制御部
によって制御されるローカルページテーブル14から構
成される。ローカルアドレス変換部12は、仮想アドレ
スの特定領域に対応する物理ページを自ノードのローカ
ルメモリ3の中に確保する際、両者のアドレス変換を行
い、かつその対応関係をローカルページテーブル14に
記憶するものである。ローカルアドレス変換部12にお
ける変換の規則は、各ノードにおけるローカルメモリの
使用状況等、ノード個別の状況に依存する。この意味で
ローカルアドレス変換部と呼ばれるものである。一方、
グローバルアドレス変換部15は、グローバルページテ
ーブル制御部16と、仮想アドレス空間に関する実情報
を保持するグローバルページテーブル17から構成され
る。グローバルページテーブル17には、仮想アドレス
に対応する有効データがいずれのノードに保持されてい
るか等、全ノードに共通する情報がデータ配列として記
憶されている。従って、あるプロセッサ2が特定の仮想
アドレスに対する有効データの所在を知る場合、このプ
ロセッサ2はグローバルページテーブル制御部16を経
由してグローバルページテーブル17の参照を行う。従
ってこのとき、他ノードのプロセッサ2に対してメッセ
ージを発信し、他ノードのプロセッサ2が応答する必要
はない。
【0069】ローカルアドレス変換部12とグローバル
アドレス変換部15は、仮想アドレス空間の管理に必要
な複数信号線からなる信号線群19によって接続されて
いる。この信号線群19は、あるノードのローカルアド
レス変換部12によって関係付けられた、仮想アドレス
および当該ノードの物理ページの対応関係をグローバル
アドレス変換部16に伝達するために、アドレス信号を
含んでいる。また、グローバルページテーブル17の情
報を各ノードのプロセッサに伝達するためのデータ信
号、グローバルアドレス変換部15に更新・参照等の要
求をなすプロセッサを識別するための識別信号等の信号
線を含んでいる。プロセッサ識別信号を設けた結果、グ
ローバルページテーブル制御部16は、グローバルペー
ジテーブル17に対して操作を要求するプロセッサの番
号を自動的に識別することができる。
アドレス変換部15は、仮想アドレス空間の管理に必要
な複数信号線からなる信号線群19によって接続されて
いる。この信号線群19は、あるノードのローカルアド
レス変換部12によって関係付けられた、仮想アドレス
および当該ノードの物理ページの対応関係をグローバル
アドレス変換部16に伝達するために、アドレス信号を
含んでいる。また、グローバルページテーブル17の情
報を各ノードのプロセッサに伝達するためのデータ信
号、グローバルアドレス変換部15に更新・参照等の要
求をなすプロセッサを識別するための識別信号等の信号
線を含んでいる。プロセッサ識別信号を設けた結果、グ
ローバルページテーブル制御部16は、グローバルペー
ジテーブル17に対して操作を要求するプロセッサの番
号を自動的に識別することができる。
【0070】実施例1 本発明の仮想アドレス空間管理装置の第一の実施例を説
明する。図2は本発明の構成中、グローバルアドレス変
換部15の構成を示す図である。図において、グローバ
ルページテーブル17の各エントリ9は、仮想アドレス
空間の管理情報を、物理ページの大きさ毎に管理する。
各エントリ9は、その仮想アドレスが複数のプロセッサ
2で共有されていることを示す共有フラグ7と、仮想ア
ドレスのデータがいずれかのノードで有効に保持されて
いることを示す有効フラグ8を持つ。これらはエントリ
9ごとに一個ずつ存在する。各エントリ9はさらに、ネ
ットワーク上の全ノードと一対一に対応して設けられた
物理ページ番号フィールド5を持つ。このフィールドに
は、各エントリ9に対応する仮想アドレス領域が各ノー
ドにおいて置かれる物理ページの番号が記憶されてい
る。さらに各エントリ9には、前記の物理ページが他の
プロセッサ2によって更新された場合に、その物理ペー
ジの内容がすでに古い状態であって参照してはならない
ことを示すステイルフラグ6を持つ。
明する。図2は本発明の構成中、グローバルアドレス変
換部15の構成を示す図である。図において、グローバ
ルページテーブル17の各エントリ9は、仮想アドレス
空間の管理情報を、物理ページの大きさ毎に管理する。
各エントリ9は、その仮想アドレスが複数のプロセッサ
2で共有されていることを示す共有フラグ7と、仮想ア
ドレスのデータがいずれかのノードで有効に保持されて
いることを示す有効フラグ8を持つ。これらはエントリ
9ごとに一個ずつ存在する。各エントリ9はさらに、ネ
ットワーク上の全ノードと一対一に対応して設けられた
物理ページ番号フィールド5を持つ。このフィールドに
は、各エントリ9に対応する仮想アドレス領域が各ノー
ドにおいて置かれる物理ページの番号が記憶されてい
る。さらに各エントリ9には、前記の物理ページが他の
プロセッサ2によって更新された場合に、その物理ペー
ジの内容がすでに古い状態であって参照してはならない
ことを示すステイルフラグ6を持つ。
【0071】プロセッサ2は、ステイルフラグ6がセッ
トされた物理ページ、または有効フラグ8がセットされ
ない物理ページに対応する仮想アドレス領域にアクセス
することができない。また、共有フラグ7がセットされ
た物理ページに対応する仮想アドレス領域のデータを更
新することも禁止される。有効フラグ8がセットされな
いエントリ9によって示される仮想アドレス空間上の領
域はいずれのノードにも有効なデータが存在せず、その
ままの状態ではいずれのプロセッサからもアクセスする
ことができない。
トされた物理ページ、または有効フラグ8がセットされ
ない物理ページに対応する仮想アドレス領域にアクセス
することができない。また、共有フラグ7がセットされ
た物理ページに対応する仮想アドレス領域のデータを更
新することも禁止される。有効フラグ8がセットされな
いエントリ9によって示される仮想アドレス空間上の領
域はいずれのノードにも有効なデータが存在せず、その
ままの状態ではいずれのプロセッサからもアクセスする
ことができない。
【0072】グローバルページテーブル制御部16は、
識別信号によってプロセッサ番号を識別することができ
るため、各エントリ9のうち操作が必要なフィールドを
自動的に選択することができる。またグローバルページ
テーブル制御部16は、グローバルページテーブル17
の各フラグの状態をハードウエア的に認識する構成と
し、例えばあるノードのフラグを変更する際、同時に変
更すべき他ノードのフラグを変更する等、一定の自動処
理をするものとする。この自動処理については、下記の
ステップ1等で例示する。
識別信号によってプロセッサ番号を識別することができ
るため、各エントリ9のうち操作が必要なフィールドを
自動的に選択することができる。またグローバルページ
テーブル制御部16は、グローバルページテーブル17
の各フラグの状態をハードウエア的に認識する構成と
し、例えばあるノードのフラグを変更する際、同時に変
更すべき他ノードのフラグを変更する等、一定の自動処
理をするものとする。この自動処理については、下記の
ステップ1等で例示する。
【0073】以上の構成によって、仮想アドレス空間が
共有される様子を説明する。
共有される様子を説明する。
【0074】《ステップ1》まずはじめに、あるプロセ
ッサ2bが特定の領域を有効にする手順は以下の通りで
ある。
ッサ2bが特定の領域を有効にする手順は以下の通りで
ある。
【0075】・任意のプロセッサ2bがローカルメモリ
3b内に物理ページを確保する。
3b内に物理ページを確保する。
【0076】・確保した物理ページの番号をエントリ9
のプロセッサ2bの物理ページ番号フィールド5bに登
録する。このとき、グローバルページテーブル制御部1
6により、プロセッサ2bに対応するフィールドが自動
的に選択される。
のプロセッサ2bの物理ページ番号フィールド5bに登
録する。このとき、グローバルページテーブル制御部1
6により、プロセッサ2bに対応するフィールドが自動
的に選択される。
【0077】・そのエントリ9の自己のステイルフラグ
6bをリセットする。このとき、グローバルページテー
ブル制御部16が他のプロセッサのステイルフラグ6a
等を自動的にセットする。
6bをリセットする。このとき、グローバルページテー
ブル制御部16が他のプロセッサのステイルフラグ6a
等を自動的にセットする。
【0078】・そのエントリ9の共有フラグ7をリセッ
トし、有効フラグ8をセットする。
トし、有効フラグ8をセットする。
【0079】この結果その仮想アドレスはプロセッサ2
bが有効なデータを保持することになる。つまり、有効
フラグ8がセットされたエントリ9により示される仮想
アドレス空間上の領域は、システムのいずれかのローカ
ルメモリ3bに実データが存在することになる。
bが有効なデータを保持することになる。つまり、有効
フラグ8がセットされたエントリ9により示される仮想
アドレス空間上の領域は、システムのいずれかのローカ
ルメモリ3bに実データが存在することになる。
【0080】《ステップ2》次に、プロセッサ2bが有
効にした仮想アドレス空間上の領域を、プロセッサ2a
が共有する手順を以下に示す。プロセッサ2aはステイ
ルフラグが6bがリセットされているため、プロセッサ
2bの属するノードが必要なデータを保持していること
を認識する。ここでAはプロセッサ2aの動作、Bはプ
ロセッサ2bの動作を示すものとする。
効にした仮想アドレス空間上の領域を、プロセッサ2a
が共有する手順を以下に示す。プロセッサ2aはステイ
ルフラグが6bがリセットされているため、プロセッサ
2bの属するノードが必要なデータを保持していること
を認識する。ここでAはプロセッサ2aの動作、Bはプ
ロセッサ2bの動作を示すものとする。
【0081】A.まず自己のローカルメモリ3aに物理
ページを確保する。
ページを確保する。
【0082】A.プロセッサ2bに対して、物理ページ
番号5bで示された物理ページのデータの送信を要求す
る。
番号5bで示された物理ページのデータの送信を要求す
る。
【0083】B.要求されたデータを送信する。
【0084】A.受け取った物理ページの内容をローカ
ルメモリ3a内に確保した物理ページに書き込む。
ルメモリ3a内に確保した物理ページに書き込む。
【0085】A.その物理ページの番号を対応するエン
トリ9のプロセッサ2aの物理ページ番号フィールド5
aに登録する。フィールド5aの選択はグローバルペー
ジテーブル制御部16によって行われる。
トリ9のプロセッサ2aの物理ページ番号フィールド5
aに登録する。フィールド5aの選択はグローバルペー
ジテーブル制御部16によって行われる。
【0086】A.そのエントリ9の共有フラグ7をセッ
トする。つづいてグローバルページテーブル制御部16
が対応するステイルフラグ6aをリセットする。共有フ
ラグ7がセットされた領域は必ず有効なデータが存在す
ると判断できるからである。
トする。つづいてグローバルページテーブル制御部16
が対応するステイルフラグ6aをリセットする。共有フ
ラグ7がセットされた領域は必ず有効なデータが存在す
ると判断できるからである。
【0087】この結果、ローカルメモリ3aとローカル
メモリ3bの物理ページが同一のデータのコピーを持
ち、それらがプロセッサ2aおよびプロセッサ2bから
見た単一の仮想アドレス空間において同じ仮想アドレス
に割り付けられる。
メモリ3bの物理ページが同一のデータのコピーを持
ち、それらがプロセッサ2aおよびプロセッサ2bから
見た単一の仮想アドレス空間において同じ仮想アドレス
に割り付けられる。
【0088】《ステップ3》つづいて、ステップ2で共
有された仮想アドレスをプロセッサ2aが更新する手順
は以下の通りである。
有された仮想アドレスをプロセッサ2aが更新する手順
は以下の通りである。
【0089】A.自己の処理動作を中断する。
【0090】A.グローバルページテーブル制御部16
を経由して、更新すべきアドレスを共有する他のプロセ
ッサのステイルフラグ6をセットする。グローバルペー
ジテーブル制御部16は共有フラグ7の状態をハードウ
エア的に認識しているため、ステイルフラグ6bをセッ
トし、さらに共有フラグ7をリセットする。
を経由して、更新すべきアドレスを共有する他のプロセ
ッサのステイルフラグ6をセットする。グローバルペー
ジテーブル制御部16は共有フラグ7の状態をハードウ
エア的に認識しているため、ステイルフラグ6bをセッ
トし、さらに共有フラグ7をリセットする。
【0091】A.データを更新する。
【0092】この結果、ある仮想アドレスのデータを更
新することができる。ここで更新された仮想アドレスを
プロセッサ2bから参照するためには、改めてステップ
2の手順を踏み、共有を設定すればよい。
新することができる。ここで更新された仮想アドレスを
プロセッサ2bから参照するためには、改めてステップ
2の手順を踏み、共有を設定すればよい。
【0093】このように本実施例によれば、以下の効果
がある。
がある。
【0094】1.ステップ2において、共有すべき仮想
アドレスのデータを保持するプロセッサ2を探すために
メッセージを発信する必要がなく、他のプロセッサ2も
メッセージに応答する必要がない。このため従来例1に
比べてプロセッサ2間の通信回数を削減することができ
る。また従来例2のように、予め各ノードのローカルメ
モリの物理アドレスを重複なく設定する必要もなく、シ
ステムの汎用的な取扱いが可能となる。
アドレスのデータを保持するプロセッサ2を探すために
メッセージを発信する必要がなく、他のプロセッサ2も
メッセージに応答する必要がない。このため従来例1に
比べてプロセッサ2間の通信回数を削減することができ
る。また従来例2のように、予め各ノードのローカルメ
モリの物理アドレスを重複なく設定する必要もなく、シ
ステムの汎用的な取扱いが可能となる。
【0095】2.ステップ3において、他のプロセッサ
2に対する通信を行うことなく、データの更新が可能と
なる。このため従来例1に比べてプロセッサ2間の通信
回数を削減することができる。また従来例2のように、
更新されたアドレスに対し、他ノードのデータを無効化
するための通信も不要になる。
2に対する通信を行うことなく、データの更新が可能と
なる。このため従来例1に比べてプロセッサ2間の通信
回数を削減することができる。また従来例2のように、
更新されたアドレスに対し、他ノードのデータを無効化
するための通信も不要になる。
【0096】3.いずれの場合においても、あるフラグ
の変更に伴い、グローバルページテーブル制御部16が
同時に変更すべきフラグを自動的に変更するため、各プ
ロセッサ2の負担が大幅に軽減される。
の変更に伴い、グローバルページテーブル制御部16が
同時に変更すべきフラグを自動的に変更するため、各プ
ロセッサ2の負担が大幅に軽減される。
【0097】以上が実施例1の概要である。なお本実施
例において、例えばグローバルページテーブ17を階層
化すれば、さらに多くの情報を効率的に管理することが
できる。階層化は、グローバルページテーブル17の上
位階層として、グローバルページのディレクトリを設け
る方法で実現することができる。
例において、例えばグローバルページテーブ17を階層
化すれば、さらに多くの情報を効率的に管理することが
できる。階層化は、グローバルページテーブル17の上
位階層として、グローバルページのディレクトリを設け
る方法で実現することができる。
【0098】実施例2 本発明の仮想アドレス空間管理装置について、グローバ
ルページテーブル17の構造を変更した実施例2を説明
する。図3は実施例2に係るグローバルアドレス変換部
15の構成図である。実施例2のグローバルアドレス変
換部15は実施例1とほぼ同様の構成からなるが、グロ
ーバルページテーブル17のエントリ9毎に、仮想アド
レス空間の対応領域を最後に更新したプロセッサ番号を
記録するプロセッサ番号フィールド22を持つ点でのみ
異なる。
ルページテーブル17の構造を変更した実施例2を説明
する。図3は実施例2に係るグローバルアドレス変換部
15の構成図である。実施例2のグローバルアドレス変
換部15は実施例1とほぼ同様の構成からなるが、グロ
ーバルページテーブル17のエントリ9毎に、仮想アド
レス空間の対応領域を最後に更新したプロセッサ番号を
記録するプロセッサ番号フィールド22を持つ点でのみ
異なる。
【0099】この構成における動作を説明する。
【0100】まず、有効フラグ8がセットされないエン
トリ9により示される仮想アドレス空間上の領域は無効
である。ここであるプロセッサ2aがその領域内の仮想
アドレスを有効にするとする。この手順は実施例1のス
テップ1に示す通りである。この際、同ステップにおい
て、ステイルフラグ6aがリセットされたとき、グロー
バルページテーブル制御部16がプロセッサ番号フィー
ルド22aにプロセッサ2aのプロセッサ番号を記録す
る。
トリ9により示される仮想アドレス空間上の領域は無効
である。ここであるプロセッサ2aがその領域内の仮想
アドレスを有効にするとする。この手順は実施例1のス
テップ1に示す通りである。この際、同ステップにおい
て、ステイルフラグ6aがリセットされたとき、グロー
バルページテーブル制御部16がプロセッサ番号フィー
ルド22aにプロセッサ2aのプロセッサ番号を記録す
る。
【0101】この状態でその仮想アドレスを他のプロセ
ッサ2から共有する手順を考える。実施例1のステップ
2においては、プロセッサ2が、リセット状態にあるス
テイルフラグ6を探すことによって所望のノードを認識
したが、実施例2における手順はさらに容易である。つ
まり、必要なデータを保持するノードのプロセッサ番号
がプロセッサ番号フィールド22に登録されているた
め、その番号で示されるプロセッサ2に対してデータ転
送の要求をすればよい。
ッサ2から共有する手順を考える。実施例1のステップ
2においては、プロセッサ2が、リセット状態にあるス
テイルフラグ6を探すことによって所望のノードを認識
したが、実施例2における手順はさらに容易である。つ
まり、必要なデータを保持するノードのプロセッサ番号
がプロセッサ番号フィールド22に登録されているた
め、その番号で示されるプロセッサ2に対してデータ転
送の要求をすればよい。
【0102】つぎに、こうして共有された仮想アドレス
のデータを、プロセッサ2aが更新する場合を考える。
この場合も実施例1のステップ3と同じ手順を行い、ス
テップ1同様、グローバルページテーブル制御部16が
プロセッサ2aのプロセッサ番号をプロセッサ番号フィ
ールド22に記録する。以降共有、更新のために同じ動
作を繰り返せばよい。
のデータを、プロセッサ2aが更新する場合を考える。
この場合も実施例1のステップ3と同じ手順を行い、ス
テップ1同様、グローバルページテーブル制御部16が
プロセッサ2aのプロセッサ番号をプロセッサ番号フィ
ールド22に記録する。以降共有、更新のために同じ動
作を繰り返せばよい。
【0103】以上、本実施例によれば、実施例1よりも
さらに各プロセッサ2の負担を軽減することができる。
さらに各プロセッサ2の負担を軽減することができる。
【0104】実施例3 本発明の仮想アドレス空間管理装置について、グローバ
ルページテーブル17の構造をさらに変更した実施例3
を説明する。本実施例は、実施例2に近い構成である
が、実施例1および実施例2とは異なり、主としてシス
テムに存在する二次記憶装置の効率的な活用を目的とす
るものである。
ルページテーブル17の構造をさらに変更した実施例3
を説明する。本実施例は、実施例2に近い構成である
が、実施例1および実施例2とは異なり、主としてシス
テムに存在する二次記憶装置の効率的な活用を目的とす
るものである。
【0105】図4は実施例3に係るグローバルアドレス
変換部15の構成図である。実施例3のグローバルアド
レス変換部15は、グローバルページテーブル17のエ
ントリ9毎に、ページャプロセッサ番号フィールド23
を持つ点でのみ実施例2と異なる。ページャプロセッサ
番号には、システムの中で二次記憶装置を持つプロセッ
サの番号が記録される。これは二次記憶装置を持つノー
ドがその記憶容量を活かして、後述するように他のノー
ドで退避(ページアウト)するデータを保持するためで
ある。従って、システムに二次記憶装置が1つしか存在
しない場合、ページャプロセッサ番号フィールド23に
記憶されるプロセッサ番号はすべて等しくなる。二次記
憶装置が2つ以上存在する場合は、たとえばそれらの装
置をローテーションで選択する等、適当な方法によって
ページャとして振る舞うプロセッサを割り振るものとす
る。
変換部15の構成図である。実施例3のグローバルアド
レス変換部15は、グローバルページテーブル17のエ
ントリ9毎に、ページャプロセッサ番号フィールド23
を持つ点でのみ実施例2と異なる。ページャプロセッサ
番号には、システムの中で二次記憶装置を持つプロセッ
サの番号が記録される。これは二次記憶装置を持つノー
ドがその記憶容量を活かして、後述するように他のノー
ドで退避(ページアウト)するデータを保持するためで
ある。従って、システムに二次記憶装置が1つしか存在
しない場合、ページャプロセッサ番号フィールド23に
記憶されるプロセッサ番号はすべて等しくなる。二次記
憶装置が2つ以上存在する場合は、たとえばそれらの装
置をローテーションで選択する等、適当な方法によって
ページャとして振る舞うプロセッサを割り振るものとす
る。
【0106】この構成における動作を説明する。
【0107】プロセッサ2のローカルメモリ3が一定の
割合を越えて使用されると、オペレーティングシステム
は物理ページの内容を二次記憶装置に退避し、新たなデ
ータ記録領域を確保しなければならない。仮想アドレス
空間のある領域の退避が決定されると、退避主であるプ
ロセッサ2は、グローバルページテーブル制御部16を
通して、退避すべき領域に対応するエントリ9のプロセ
ッサ番号フィールド22とページャプロセッサ番号フィ
ールド23を参照する。このとき、このプロセッサ2は
以下の場合分けに応じた動作を行う。
割合を越えて使用されると、オペレーティングシステム
は物理ページの内容を二次記憶装置に退避し、新たなデ
ータ記録領域を確保しなければならない。仮想アドレス
空間のある領域の退避が決定されると、退避主であるプ
ロセッサ2は、グローバルページテーブル制御部16を
通して、退避すべき領域に対応するエントリ9のプロセ
ッサ番号フィールド22とページャプロセッサ番号フィ
ールド23を参照する。このとき、このプロセッサ2は
以下の場合分けに応じた動作を行う。
【0108】1.自プロセッサ番号とプロセッサ番号フ
ィールド22のプロセッサ番号が異なるとき。
ィールド22のプロセッサ番号が異なるとき。
【0109】他ノードのプロセッサ2が最新のデータを
持つため、そのエントリ9の物理ページ番号フィールド
5で示される領域の退避は不要と判断する。従ってその
領域を単純に解放し、ステイルフラグ6をセットする。
以降その領域を任意の用途に当てる。
持つため、そのエントリ9の物理ページ番号フィールド
5で示される領域の退避は不要と判断する。従ってその
領域を単純に解放し、ステイルフラグ6をセットする。
以降その領域を任意の用途に当てる。
【0110】2.自プロセッサ番号とプロセッサ番号フ
ィールド22のプロセッサ番号が同じとき。
ィールド22のプロセッサ番号が同じとき。
【0111】その領域のデータは退避しなければならな
いため、ページャプロセッサ番号フィールド23で示さ
れる番号のプロセッサ、すなわちページャプロセッサに
退避すべき領域のデータを転送し、ページャプロセッサ
が二次記憶装置にデータを退避する。これ以降その領域
の有効なデータはページャプロセッサを含むノードが保
持することになるため、プロセッサ番号フィールド22
にページャプロセッサの番号を登録する。その後、退避
元のプロセッサ2は自ノードのローカルアドレス変換部
12の対応するエントリ9の物理ページ番号フィールド
5で示される物理ページを解放し、ステイルフラグ6を
セットする。
いため、ページャプロセッサ番号フィールド23で示さ
れる番号のプロセッサ、すなわちページャプロセッサに
退避すべき領域のデータを転送し、ページャプロセッサ
が二次記憶装置にデータを退避する。これ以降その領域
の有効なデータはページャプロセッサを含むノードが保
持することになるため、プロセッサ番号フィールド22
にページャプロセッサの番号を登録する。その後、退避
元のプロセッサ2は自ノードのローカルアドレス変換部
12の対応するエントリ9の物理ページ番号フィールド
5で示される物理ページを解放し、ステイルフラグ6を
セットする。
【0112】3.自プロセッサ番号とページャプロセッ
サ番号フィールド23のプロセッサ番号が同じで、かつ
退避する領域が共有されていないとき。
サ番号フィールド23のプロセッサ番号が同じで、かつ
退避する領域が共有されていないとき。
【0113】退避元のプロセッサ2自身が二次記憶装置
をもつため、データを直接二次記憶装置に退避する。そ
の後、自ノードのローカルアドレス変換部12の対応す
るエントリ9の物理ページ番号フィールド5で示される
物理ページを解放し、ステイルフラグ6をセットする。
をもつため、データを直接二次記憶装置に退避する。そ
の後、自ノードのローカルアドレス変換部12の対応す
るエントリ9の物理ページ番号フィールド5で示される
物理ページを解放し、ステイルフラグ6をセットする。
【0114】4.自プロセッサ番号とページャプロセッ
サ番号フィールド23のプロセッサ番号、およびプロセ
ッサ番号フィールド22で示されるプロセッサ番号が全
て同じで、さらにその領域が共有されているとき。
サ番号フィールド23のプロセッサ番号、およびプロセ
ッサ番号フィールド22で示されるプロセッサ番号が全
て同じで、さらにその領域が共有されているとき。
【0115】その領域の共有を解除し、自プロセッサの
みがアクセスできるようにしてから物理ページを解放
し、ステイルフラグ6をセットする。ページャプロセッ
サ番号フィールド23およびプロセッサ番号フィールド
22の内容は変更しない。
みがアクセスできるようにしてから物理ページを解放
し、ステイルフラグ6をセットする。ページャプロセッ
サ番号フィールド23およびプロセッサ番号フィールド
22の内容は変更しない。
【0116】以上のように実施例3では、有効なページ
を二次記憶装置に保持するプロセッサの番号を容易に知
ることができるため、プロセッサ間の通信回数を減らす
ことができ、二次記憶装置を共有するシステム全体の性
能が向上する。
を二次記憶装置に保持するプロセッサの番号を容易に知
ることができるため、プロセッサ間の通信回数を減らす
ことができ、二次記憶装置を共有するシステム全体の性
能が向上する。
【0117】実施例4 図5は本発明の実施例4に係る仮想アドレス空間管理装
置におけるクラスタ構成図である。以下その構成と動作
を説明する。
置におけるクラスタ構成図である。以下その構成と動作
を説明する。
【0118】本実施例はプロセッサ2がそれぞれローカ
ルなキャッシュメモリ25を有するシステムを想定す
る。キャッシュメモリ25はキャッシュメモリ制御部3
6によって制御される。グローバルアドレス変換部15
とローカルアドレス変換部12を接続する信号線群には
キャッシュ無効化信号40が新設されている。キャッシ
ュメモリ制御部36は、通常の制御機能の他に、キャッ
シュ無効化信号40がアクティブにされたとき、グロー
バルアドレス変換部15の指示に従ってキャッシュメモ
リ25の特定箇所をフラッシュする機能を有している。
図示しない周知の回路により、本実施例におけるグロー
バルアドレス変換部15は、必要なタイミングでキャッ
シュメモリ無効化信号40をアクティブにするだけでな
く、無効化すべきアドレスを信号線群に送出する機能を
有するものである。
ルなキャッシュメモリ25を有するシステムを想定す
る。キャッシュメモリ25はキャッシュメモリ制御部3
6によって制御される。グローバルアドレス変換部15
とローカルアドレス変換部12を接続する信号線群には
キャッシュ無効化信号40が新設されている。キャッシ
ュメモリ制御部36は、通常の制御機能の他に、キャッ
シュ無効化信号40がアクティブにされたとき、グロー
バルアドレス変換部15の指示に従ってキャッシュメモ
リ25の特定箇所をフラッシュする機能を有している。
図示しない周知の回路により、本実施例におけるグロー
バルアドレス変換部15は、必要なタイミングでキャッ
シュメモリ無効化信号40をアクティブにするだけでな
く、無効化すべきアドレスを信号線群に送出する機能を
有するものである。
【0119】この構成における動作を説明する。本実施
例では、各ノードのプロセッサ2がそれぞれキャッシュ
メモリ25を有するため、いずれかのプロセッサ2が仮
想アドレス空間の特定アドレスを更新したとき、対応す
る領域のキャッシュメモリを無効化(フラッシュ)する
必要が生じる。そこでまず、ある仮想アドレスのデータ
が更新されたとき、グローバルページテーブル制御部1
6が、ステイルフラグの変化に同期してキャッシュ無効
化信号40をアクティブにする。つづいてグローバルペ
ージテーブル制御部16は、無効にすべき仮想アドレス
を信号線群のアドレス信号線に送出し、キャッシュ無効
化信号40をインアクティブに戻す。
例では、各ノードのプロセッサ2がそれぞれキャッシュ
メモリ25を有するため、いずれかのプロセッサ2が仮
想アドレス空間の特定アドレスを更新したとき、対応す
る領域のキャッシュメモリを無効化(フラッシュ)する
必要が生じる。そこでまず、ある仮想アドレスのデータ
が更新されたとき、グローバルページテーブル制御部1
6が、ステイルフラグの変化に同期してキャッシュ無効
化信号40をアクティブにする。つづいてグローバルペ
ージテーブル制御部16は、無効にすべき仮想アドレス
を信号線群のアドレス信号線に送出し、キャッシュ無効
化信号40をインアクティブに戻す。
【0120】一方、各ローカルページテーブル制御部1
3は、キャッシュ無効化信号40がインアクティブにさ
れる瞬間、信号線群19に表示されていたアドレスをラ
ッチする。ローカルページテーブル制御部13はラッチ
した仮想アドレスを物理アドレスに変換し、この結果得
られた物理アドレスをキャッシュメモリ制御部36に通
知する。そこで通知を受けたキャッシュメモリ制御部3
6が対応するキャッシュメモリ25の領域(キャッシュ
ライン)を無効化する。この結果、プロセッサ2間の通
信等を不要としつつ、キャッシュメモリ25間の一貫性
を保持することが可能となる。
3は、キャッシュ無効化信号40がインアクティブにさ
れる瞬間、信号線群19に表示されていたアドレスをラ
ッチする。ローカルページテーブル制御部13はラッチ
した仮想アドレスを物理アドレスに変換し、この結果得
られた物理アドレスをキャッシュメモリ制御部36に通
知する。そこで通知を受けたキャッシュメモリ制御部3
6が対応するキャッシュメモリ25の領域(キャッシュ
ライン)を無効化する。この結果、プロセッサ2間の通
信等を不要としつつ、キャッシュメモリ25間の一貫性
を保持することが可能となる。
【0121】実施例5 図6は本発明の実施例5に係る仮想アドレス空間管理装
置のグローバルアドレス変換部15の構造図である。本
実施例は、実施例1において次の点を改善するためのも
のである。すなわち実施例1では、グローバルページテ
ーブルにプロセッサ数に比例する領域を確保する必要が
ある。システムのもつプロセッサの数が固定ならこの領
域の確保は容易だが、仮想アドレス空間管理装置を任意
のシステムに応用する場合、当然プロセッサ数は一定の
範囲で任意としなければならない。
置のグローバルアドレス変換部15の構造図である。本
実施例は、実施例1において次の点を改善するためのも
のである。すなわち実施例1では、グローバルページテ
ーブルにプロセッサ数に比例する領域を確保する必要が
ある。システムのもつプロセッサの数が固定ならこの領
域の確保は容易だが、仮想アドレス空間管理装置を任意
のシステムに応用する場合、当然プロセッサ数は一定の
範囲で任意としなければならない。
【0122】本実施例のグローバルアドレス変換部15
は、プロセッサ数計数装置20とグローバルページテー
ブル操作装置21を持つことを特徴とする。プロセッサ
数計数装置20はシステム初期化時にプロセッサ数を計
数し、記憶する。これは例えば以下の方法によって実現
することができる。まず、システム起動時のリセットが
終了した後、各ローカルページテーブル制御部が自ノー
ドのプロセッサ識別信号線を一定期間アクティブにす
る。つづいてプロセッサ数計数装置20はアクティブに
された信号数を合計し、この数値を記憶する。
は、プロセッサ数計数装置20とグローバルページテー
ブル操作装置21を持つことを特徴とする。プロセッサ
数計数装置20はシステム初期化時にプロセッサ数を計
数し、記憶する。これは例えば以下の方法によって実現
することができる。まず、システム起動時のリセットが
終了した後、各ローカルページテーブル制御部が自ノー
ドのプロセッサ識別信号線を一定期間アクティブにす
る。つづいてプロセッサ数計数装置20はアクティブに
された信号数を合計し、この数値を記憶する。
【0123】一方、グローバルページテーブル操作装置
21は、プロセッサ数計数装置20に記憶されたプロセ
ッサ数に応じて各エントリ9の配列構造を決定し、必要
な大きさのグローバルページテーブル17を生成する。
21は、プロセッサ数計数装置20に記憶されたプロセ
ッサ数に応じて各エントリ9の配列構造を決定し、必要
な大きさのグローバルページテーブル17を生成する。
【0124】この構成により、システムが起動するまで
プロセッサ数が不明なシステムでも、プロセッサ数に応
じて必要な領域を確保することが可能になる。
プロセッサ数が不明なシステムでも、プロセッサ数に応
じて必要な領域を確保することが可能になる。
【0125】
【発明の効果】上記詳細に説明したように、本発明によ
れば、グローバルアドレス変換部が信号線群に接続され
ているため、各ノードのプロセッサが仮想アドレス空間
をアクセスするために必要な情報のうち、全ノードのプ
ロセッサから共通して参照されるべき情報を一括して管
理することができ、グローバルアドレス変換部を全ノー
ドから共用することができる。一方、ローカルアドレス
変換部は各ノードに内蔵されるため、ノード個別の状況
に従って仮想アドレスと物理ページアドレスの変換を行
うことができる。これら2つのアドレス変換部の共働に
より、プロセッサ間の通信回数が削減され、プロセッサ
の負担およびシステム全体のオーバーヘッドを軽減する
ことができる。また、グローバルアドレス変換部に相当
する部分を各ノードから切り離すことができるため、各
ノードが自由に使用しうるメモリ容量が増加する。さら
に、複数のプロセッサが単一の仮想アドレス空間を共有
するため構成が簡単であり、システムを安価に抑えるこ
とが可能である。これらに加え、本発明によれば、各ノ
ードのローカルメモリの物理アドレスを異なる領域に配
置する必要もなく、システムとしての汎用性を維持する
ことが可能となる。
れば、グローバルアドレス変換部が信号線群に接続され
ているため、各ノードのプロセッサが仮想アドレス空間
をアクセスするために必要な情報のうち、全ノードのプ
ロセッサから共通して参照されるべき情報を一括して管
理することができ、グローバルアドレス変換部を全ノー
ドから共用することができる。一方、ローカルアドレス
変換部は各ノードに内蔵されるため、ノード個別の状況
に従って仮想アドレスと物理ページアドレスの変換を行
うことができる。これら2つのアドレス変換部の共働に
より、プロセッサ間の通信回数が削減され、プロセッサ
の負担およびシステム全体のオーバーヘッドを軽減する
ことができる。また、グローバルアドレス変換部に相当
する部分を各ノードから切り離すことができるため、各
ノードが自由に使用しうるメモリ容量が増加する。さら
に、複数のプロセッサが単一の仮想アドレス空間を共有
するため構成が簡単であり、システムを安価に抑えるこ
とが可能である。これらに加え、本発明によれば、各ノ
ードのローカルメモリの物理アドレスを異なる領域に配
置する必要もなく、システムとしての汎用性を維持する
ことが可能となる。
【0126】また本発明によれば、グローバルアドレス
変換部がグローバルページテーブルとグローバルページ
テーブル制御部から構成されているため、アドレス変換
に関する実情報と、各ノードのプロセッサの要求に従っ
て行うべき操作を分割して管理、実施することができ
る。
変換部がグローバルページテーブルとグローバルページ
テーブル制御部から構成されているため、アドレス変換
に関する実情報と、各ノードのプロセッサの要求に従っ
て行うべき操作を分割して管理、実施することができ
る。
【0127】また本発明によれば、グローバルアドレス
変換部のエントリがプロセッサ番号フィールドを持つた
め、他のプロセッサに通信することなく最新データを保
持するノードを特定することができ、プロセッサの負担
がさらに軽減される。
変換部のエントリがプロセッサ番号フィールドを持つた
め、他のプロセッサに通信することなく最新データを保
持するノードを特定することができ、プロセッサの負担
がさらに軽減される。
【0128】また本発明によれば、前記信号線群が前記
グローバルアドレス変換部をアクセスするプロセッサを
識別するための識別信号を含むため、グローバルページ
テーブル制御部はグローバルページテーブルに対して操
作を要求するプロセッサを自動的に識別することがで
き、プロセッサ間の通信回数をさらに削減することがで
きる。
グローバルアドレス変換部をアクセスするプロセッサを
識別するための識別信号を含むため、グローバルページ
テーブル制御部はグローバルページテーブルに対して操
作を要求するプロセッサを自動的に識別することがで
き、プロセッサ間の通信回数をさらに削減することがで
きる。
【0129】また本発明によれば、グローバルまたはロ
ーカルアドレス変換部のエントリがページャプロセッサ
番号フィールドを持つため、プロセッサ間で通信するこ
となく、物理ページのデータを退避すべき二次記憶装置
を持つノードを知ることができ、プロセッサの負担がさ
らに軽減される。
ーカルアドレス変換部のエントリがページャプロセッサ
番号フィールドを持つため、プロセッサ間で通信するこ
となく、物理ページのデータを退避すべき二次記憶装置
を持つノードを知ることができ、プロセッサの負担がさ
らに軽減される。
【0130】また本発明によれば、前記グローバルアド
レス変換部の検出手段があるノードのプロセッサによっ
て仮想アドレス空間の任意のアドレスに対して行われる
データの更新を検出したとき、キャッシュメモリ制御部
が前記ローカルアドレス変換部によって該仮想アドレス
から変換された物理アドレスに対応するキャッシュメモ
リ領域を無効化するため、プロセッサ間の通信を行うこ
となく、キャッシュメモリ間のコヒーレンシを容易に維
持することができる。
レス変換部の検出手段があるノードのプロセッサによっ
て仮想アドレス空間の任意のアドレスに対して行われる
データの更新を検出したとき、キャッシュメモリ制御部
が前記ローカルアドレス変換部によって該仮想アドレス
から変換された物理アドレスに対応するキャッシュメモ
リ領域を無効化するため、プロセッサ間の通信を行うこ
となく、キャッシュメモリ間のコヒーレンシを容易に維
持することができる。
【0131】また本発明によれば、仮想アドレス空間を
共有すべきプロセッサの数に応じてグローバルページテ
ーブルの各エントリの配列構造が決定され、グローバル
ページテーブルが生成されるため、プロセッサの数に応
じて必要かつ十分な大きさを持つグローバルページテー
ブルが生成される。このため、システムが起動するまで
プロセッサ数が不明な一般のシステムに本発明の仮想ア
ドレス空間管理装置を適用することが容易となる。さら
に、グローバルページテーブルの大きさを最適化するこ
とにより、より多くのプロセッサをシステムに接続する
ことが可能となる。従って、大規模なCAD等、大量の
情報を効率よく処理すべきアプリケーションにとって最
適なシステムを提供することができる。
共有すべきプロセッサの数に応じてグローバルページテ
ーブルの各エントリの配列構造が決定され、グローバル
ページテーブルが生成されるため、プロセッサの数に応
じて必要かつ十分な大きさを持つグローバルページテー
ブルが生成される。このため、システムが起動するまで
プロセッサ数が不明な一般のシステムに本発明の仮想ア
ドレス空間管理装置を適用することが容易となる。さら
に、グローバルページテーブルの大きさを最適化するこ
とにより、より多くのプロセッサをシステムに接続する
ことが可能となる。従って、大規模なCAD等、大量の
情報を効率よく処理すべきアプリケーションにとって最
適なシステムを提供することができる。
【図1】 本発明に係る仮想アドレス空間管理装置の実
施例に共通するクラスタ構成図。
施例に共通するクラスタ構成図。
【図2】 本発明の実施例1に係る仮想アドレス空間管
理装置のグローバルアドレス変換部15の構成図。
理装置のグローバルアドレス変換部15の構成図。
【図3】 本発明の実施例2に係る仮想アドレス空間管
理装置のグローバルアドレス変換部15の構成図。
理装置のグローバルアドレス変換部15の構成図。
【図4】 本発明の実施例3に係る仮想アドレス空間管
理装置のグローバルアドレス変換部15の構成図。
理装置のグローバルアドレス変換部15の構成図。
【図5】 本発明の実施例4に係る仮想アドレス空間管
理装置のクラスタ構成図。
理装置のクラスタ構成図。
【図6】 本発明の実施例5に係る仮想アドレス空間管
理装置のグローバルアドレス変換部15の構成図。
理装置のグローバルアドレス変換部15の構成図。
【図7】 従来例1に係る仮想アドレス空間管理装置の
概念図。
概念図。
【図8】 従来例2に係る仮想アドレス空間管理装置の
概念図。
概念図。
2 プロセッサ、3 ローカルメモリ、5 物理ページ
番号フィールド、6ステイルフラグ、7 共有フラグ、
8 有効フラグ、9 エントリ、12 ローカルアドレ
ス変換部、13 ローカルページテーブル制御部、14
ローカルページテーブル、15 グローバルアドレス
変換部、16 グローバルページテーブル制御部、17
グローバルページテーブル、19 信号線群、20
プロセッサ数計数装置、21 グローバルページテーブ
ル操作装置、22 プロセッサ番号フィールド、23
ページャプロセッサ番号フィールド、25 キャッシュ
メモリ、36 キャッシュメモリ制御部、400 キャ
ッシュ無効化信号。
番号フィールド、6ステイルフラグ、7 共有フラグ、
8 有効フラグ、9 エントリ、12 ローカルアドレ
ス変換部、13 ローカルページテーブル制御部、14
ローカルページテーブル、15 グローバルアドレス
変換部、16 グローバルページテーブル制御部、17
グローバルページテーブル、19 信号線群、20
プロセッサ数計数装置、21 グローバルページテーブ
ル操作装置、22 プロセッサ番号フィールド、23
ページャプロセッサ番号フィールド、25 キャッシュ
メモリ、36 キャッシュメモリ制御部、400 キャ
ッシュ無効化信号。
Claims (7)
- 【請求項1】 それぞれがプロセッサとローカルメモリ
を有する複数のノードによって共有される仮想アドレス
空間を管理する装置であって、 複数のノード間に接続されて仮想アドレス空間の管理に
必要な情報を伝達する信号線群と、 信号線群に接続され、各ノードのプロセッサが仮想アド
レス空間をアクセスするために必要な情報のうち、全ノ
ードのプロセッサから共通して参照されるべき情報を一
括して管理するグローバルアドレス変換部と、 各ノードに内蔵され、各ノードのプロセッサが仮想アド
レス空間をアクセスするために、個別に参照すべき情報
を管理するローカルアドレス変換部と、 を有し、 前記グローバルアドレス変換部を全ノードのプロセッサ
によって共用することを特徴とする仮想アドレス空間管
理装置。 - 【請求項2】 請求項1に記載の仮想アドレス空間管理
装置において、 前記グローバルアドレス変換部は、 アドレス変換に関する実情報を格納するグローバルペー
ジテーブルと、 前記各ノードのプロセッサによってグローバルページテ
ーブルの実情報が更新または参照される際、プロセッサ
の要求に従ってグローバルページテーブルを操作するグ
ローバルページテーブル制御部と、 を有することを特徴とする仮想アドレス空間管理装置。 - 【請求項3】 請求項2に記載の仮想アドレス空間管理
装置において、 前記グローバルページテーブルは仮想アドレス空間のペ
ージと一対一に対応するエントリを有し、 各エントリはそのエントリが指示する物理ページの最新
データを持つノードのプロセッサ番号を記憶するフィー
ルドを有することを特徴とする仮想アドレス空間管理装
置。 - 【請求項4】 請求項1に記載の仮想アドレス空間管理
装置において、 前記信号線群は、前記グローバルアドレス変換部をアク
セスするプロセッサ番号を識別するための識別信号を含
むことを特徴とする仮想アドレス空間管理装置。 - 【請求項5】 請求項2に記載の仮想アドレス空間管理
装置において、 前記グローバルページテーブルは仮想アドレス空間のペ
ージと一対一に対応するエントリを有し、 各エントリはそのエントリが指示する物理ページのデー
タを退避すべき二次記憶装置を持つノードのプロセッサ
番号を記憶するフィールドを有することを特徴とする仮
想アドレス空間管理装置。 - 【請求項6】 それぞれがプロセッサと、ローカルメモ
リと、ローカルキャッシュメモリと、そのローカルキャ
ッシュメモリを制御するキャッシュメモリ制御部とを有
する複数のノードによって共有される仮想アドレス空間
を管理する装置であって、 複数のノード間に接続されて仮想アドレス空間の管理に
必要な情報を伝達する信号線群と、 信号線群に接続され、各ノードのプロセッサが仮想アド
レス空間をアクセスするために必要な情報のうち、全ノ
ードのプロセッサから共通して参照されるべき情報を一
括して管理するグローバルアドレス変換部と、 各ノードに内蔵され、各ノードのプロセッサが仮想アド
レス空間をアクセスするために、個別に参照すべき情報
を管理するローカルアドレス変換部と、 を有し、さらに、 前記グローバルアドレス変換部は、あるノードのプロセ
ッサが仮想アドレス空間の任意のアドレスに対して行う
データの更新を検出する検出手段を、 前記信号線群は、検出手段の検出情報に従ってデータの
更新の発生を全ノードに通知するための更新通知信号線
を、 それぞれ含み、 更新通知信号線によってデータの更新の発生が通知され
たとき、前記キャッシュメモリ制御部が、前記ローカル
アドレス変換部によって該仮想アドレスから変換された
物理アドレスに対応するキャッシュメモリ領域を無効化
することを特徴とする仮想アドレス空間管理装置。 - 【請求項7】 請求項3に記載の仮想アドレス空間管理
装置において、 前記グローバルアドレス変換部は、 システム起動時に、仮想アドレス空間を共有すべきプロ
セッサの数を計数する計数手段と、 計数手段によって計数されたプロセッサの数に応じてグ
ローバルページテーブルの各エントリの配列構造を決定
する決定手段と、 決定手段によって決定された配列構造に従って領域を確
保し、グローバルページテーブルを生成する生成手段
と、 を有することを特徴とする仮想アドレス空間管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6155629A JPH0822418A (ja) | 1994-07-07 | 1994-07-07 | 仮想アドレス空間管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6155629A JPH0822418A (ja) | 1994-07-07 | 1994-07-07 | 仮想アドレス空間管理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0822418A true JPH0822418A (ja) | 1996-01-23 |
Family
ID=15610177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6155629A Pending JPH0822418A (ja) | 1994-07-07 | 1994-07-07 | 仮想アドレス空間管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0822418A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330970A (ja) * | 1999-05-18 | 2000-11-30 | Mitsubishi Electric Corp | シミュレーション装置及びシミュレーション方法 |
JP2008525894A (ja) * | 2004-12-22 | 2008-07-17 | インテル・コーポレーション | メディアメモリシステム |
JP2010503115A (ja) * | 2006-09-22 | 2010-01-28 | インテル コーポレイション | 仮想マシン環境におけるゲスト間での情報の共有 |
-
1994
- 1994-07-07 JP JP6155629A patent/JPH0822418A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330970A (ja) * | 1999-05-18 | 2000-11-30 | Mitsubishi Electric Corp | シミュレーション装置及びシミュレーション方法 |
JP2008525894A (ja) * | 2004-12-22 | 2008-07-17 | インテル・コーポレーション | メディアメモリシステム |
JP2010503115A (ja) * | 2006-09-22 | 2010-01-28 | インテル コーポレイション | 仮想マシン環境におけるゲスト間での情報の共有 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
US5394555A (en) | Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory | |
US6088769A (en) | Multiprocessor cache coherence directed by combined local and global tables | |
US6457100B1 (en) | Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls | |
KR100491435B1 (ko) | 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법 | |
JP5679969B2 (ja) | スヌープフィルタリングメカニズム | |
KR101014394B1 (ko) | 통합 디렉토리 및 프로세서 캐시를 구비한 컴퓨터 시스템 | |
US7814286B2 (en) | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer | |
US6826653B2 (en) | Block data mover adapted to contain faults in a partitioned multiprocessor system | |
US20010013089A1 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
EP0062165A2 (en) | Multiprocessors including private and shared caches | |
JPH04227552A (ja) | ストアスルーキャッシュ管理システム | |
JPH11272559A (ja) | マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル | |
JP2007257637A (ja) | アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム | |
KR20050070013A (ko) | 원격 캐쉬 존재 정보를 저장하는 프로세서 캐쉬를 구비한컴퓨터 시스템 | |
JP2002163149A (ja) | マルチプロセッサシステムのキャッシュコヒーレンスプロトコル | |
JP2000298659A (ja) | コンプリート・アンド・コンサイス・リモート(ccr)ディレクトリ | |
US6560681B1 (en) | Split sparse directory for a distributed shared memory multiprocessor system | |
US20140229678A1 (en) | Method and apparatus for accelerated shared data migration | |
EP1611513B1 (en) | Multi-node system in which global address generated by processing subsystem includes global to local translation information | |
US20050102477A1 (en) | Multiprocessor system | |
EP1224553B1 (en) | Multi-processor system and method of accessing data therein | |
JP2746530B2 (ja) | 共有メモリマルチプロセッサ | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
JPH0822418A (ja) | 仮想アドレス空間管理装置 |