JPH0793220A - 仮想記憶管理方式 - Google Patents
仮想記憶管理方式Info
- Publication number
- JPH0793220A JPH0793220A JP5255305A JP25530593A JPH0793220A JP H0793220 A JPH0793220 A JP H0793220A JP 5255305 A JP5255305 A JP 5255305A JP 25530593 A JP25530593 A JP 25530593A JP H0793220 A JPH0793220 A JP H0793220A
- Authority
- JP
- Japan
- Prior art keywords
- data
- shared
- block
- processor
- memory
- 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
- 238000012546 transfer Methods 0.000 claims abstract description 43
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000007726 management method Methods 0.000 claims 2
- 238000013519 translation Methods 0.000 abstract description 28
- 238000012545 processing Methods 0.000 abstract description 7
- 230000004044 response Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 共有バス結合の並列計算機システムにおける
アドレス変換処理の高速化をはかる。 【構成】 共有メモリ制御回路12内で、各PEに共通
なアドレス変換回路がマイコン121と制御記憶122
により実現する。キャッシュ41は処理装置40が発行
するメモリアクセス要求で指定する論理アドレスでアク
セスされ、要求されたデータがそこに保持されていない
ときには、共有バス2にそのアクセス要求で指定された
論理アドレスを含む、データ転送要求コマンドを送付す
る。他のPEではそのデ−タを含むブロックを保持して
いるときには、そのブロックを要求元PEに転送する。
ブロックがいずれのPEにも保持されていないときに、
共有メモリ制御回路12はこの論理アドレスを物理アド
レスに変換してそのブロックを共有メモリ1から読みだ
し、要求元PEに共有バス2を介して転送する。
アドレス変換処理の高速化をはかる。 【構成】 共有メモリ制御回路12内で、各PEに共通
なアドレス変換回路がマイコン121と制御記憶122
により実現する。キャッシュ41は処理装置40が発行
するメモリアクセス要求で指定する論理アドレスでアク
セスされ、要求されたデータがそこに保持されていない
ときには、共有バス2にそのアクセス要求で指定された
論理アドレスを含む、データ転送要求コマンドを送付す
る。他のPEではそのデ−タを含むブロックを保持して
いるときには、そのブロックを要求元PEに転送する。
ブロックがいずれのPEにも保持されていないときに、
共有メモリ制御回路12はこの論理アドレスを物理アド
レスに変換してそのブロックを共有メモリ1から読みだ
し、要求元PEに共有バス2を介して転送する。
Description
【0001】
【産業上の利用分野】本発明は共有バス結合の並列計算
機システムにおける仮想記憶管理方式に関する。
機システムにおける仮想記憶管理方式に関する。
【0002】
【従来の技術】従来、共有バス結合の並列計算機システ
ムにおける仮想記憶管理方式については”Symmetry Tec
hnical Summary”(米国Sequent社、マニュアル1003―4
7396―00、pp2.2〜2.5、1987年)において論じられてい
る。
ムにおける仮想記憶管理方式については”Symmetry Tec
hnical Summary”(米国Sequent社、マニュアル1003―4
7396―00、pp2.2〜2.5、1987年)において論じられてい
る。
【0003】上記従来技術では、共有メモリに共有バス
で結合された複数のプロセッサの各々にキャッシュメモ
リを設け、かつ、各プロセッサには、アドレス変換装置
を設け、プログラムから指定されたメモリオペランドに
対する論理アドレスをこのアドレス変換装置で対応する
物理アドレスに変換し、この物理アドレスでもってその
プロセッサ内のキャッシュをアクセスするようになって
いる。このメモリオペランドがキャッシュ内にないと、
共有バスにその物理アドレスを指定するデータ転送コマ
ンドを送出し、そのデータをキャッシュ内に保持する他
のプロセッサがあるときには、そのプロセッサがそのデ
ータを共有バスを介して要求元プロセッサに転送するよ
うになっている。
で結合された複数のプロセッサの各々にキャッシュメモ
リを設け、かつ、各プロセッサには、アドレス変換装置
を設け、プログラムから指定されたメモリオペランドに
対する論理アドレスをこのアドレス変換装置で対応する
物理アドレスに変換し、この物理アドレスでもってその
プロセッサ内のキャッシュをアクセスするようになって
いる。このメモリオペランドがキャッシュ内にないと、
共有バスにその物理アドレスを指定するデータ転送コマ
ンドを送出し、そのデータをキャッシュ内に保持する他
のプロセッサがあるときには、そのプロセッサがそのデ
ータを共有バスを介して要求元プロセッサに転送するよ
うになっている。
【0004】このアドレス変換のために、各プロセッサ
は共有メモリに保持されているアドレス変換テーブルを
読み出し、自プロセッサ内で論理アドレスを物理アドレ
スに変換するとともに、この論理アドレスと変換後の物
理アドレスとの対をアドレス変換バッファに保持するよ
うになっている。後に同じ論理アドレスを物理アドレス
に変換するときには、この変換バッファを使用する。
は共有メモリに保持されているアドレス変換テーブルを
読み出し、自プロセッサ内で論理アドレスを物理アドレ
スに変換するとともに、この論理アドレスと変換後の物
理アドレスとの対をアドレス変換バッファに保持するよ
うになっている。後に同じ論理アドレスを物理アドレス
に変換するときには、この変換バッファを使用する。
【0005】このアドレス変換バッファに登録されてい
ない論理アドレスを物理アドレスに変換するために、そ
のプロセッサから共有メモリ1内のページテーブルをア
クセスした場合において、その論理アドレスに対応する
データが共有メモリに登録されていないことがあり得
る。このとき、そのプロセッサは、ページフォールト例
外を発生する。この信号を受けて共有メモリは、その論
理アドレスへの物理メモリの割り当てを行なうが、この
とき、いずれかの論理アドレスに既に割り当てられてい
た実メモリアドレスが割り当てを解放され、そのアドレ
スのデータが補助記憶にページアウトされる。したがっ
て、この論理アドレスと物理アドレスの対を無効にする
ために、そのプロセッサは、自己に含まれているアドレ
ス変換バッファを無効とするとともに、他の全てのプロ
セッサに、アドレス変換バッファの内容を無効化するこ
とを要求するコマンドを共有バスを介して転送するよう
になっている。
ない論理アドレスを物理アドレスに変換するために、そ
のプロセッサから共有メモリ1内のページテーブルをア
クセスした場合において、その論理アドレスに対応する
データが共有メモリに登録されていないことがあり得
る。このとき、そのプロセッサは、ページフォールト例
外を発生する。この信号を受けて共有メモリは、その論
理アドレスへの物理メモリの割り当てを行なうが、この
とき、いずれかの論理アドレスに既に割り当てられてい
た実メモリアドレスが割り当てを解放され、そのアドレ
スのデータが補助記憶にページアウトされる。したがっ
て、この論理アドレスと物理アドレスの対を無効にする
ために、そのプロセッサは、自己に含まれているアドレ
ス変換バッファを無効とするとともに、他の全てのプロ
セッサに、アドレス変換バッファの内容を無効化するこ
とを要求するコマンドを共有バスを介して転送するよう
になっている。
【0006】
【発明が解決しようとする課題】上記従来技術では、ペ
ージフォールとが発生した場合、全てのプロセッサのア
ドレス変換バッファ全体が無効にされるために、各プロ
セッサは、その後のアドレス変換に当たっては、その都
度、共有メモリをアクセスする必要が生じる。
ージフォールとが発生した場合、全てのプロセッサのア
ドレス変換バッファ全体が無効にされるために、各プロ
セッサは、その後のアドレス変換に当たっては、その都
度、共有メモリをアクセスする必要が生じる。
【0007】このアクセスは、共有バスを介して行なわ
れるために、この共有バスの使用権に関して競合がより
多く発生し、アドレス変換が遅くなる。
れるために、この共有バスの使用権に関して競合がより
多く発生し、アドレス変換が遅くなる。
【0008】本発明は、上記の問題点を解決し、共有バ
ス結合の並列計算機システムにおいて、ページフォール
ト発生時にも高速な仮想記憶管理を実現することを目的
とする。
ス結合の並列計算機システムにおいて、ページフォール
ト発生時にも高速な仮想記憶管理を実現することを目的
とする。
【0009】
【問題を解決するための手段】上記目的を達成するため
に、本発明では、各プロセッサは、処理装置が発行する
メモリアクセス要求が指定される論理アドレスでアクセ
ス可能なキャッシュメモリを有し、該キャッシュメモリ
は、該アクセス要求で要求されたデータが該キャッシュ
メモリに保持されていないときには、共有バスにそのア
クセス要求で指定された論理アドレスを含む、データ転
送要求コマンドを送付する手段と、他のプロセッサから
その共有バスに送付されたデータ転送要求が指定する論
理アドレスのデータを含むデータブロックを当該プロセ
ッサのキャッシュメモリ内に保持されているか否かを検
出し、そのデータブロックが保持されている場合には、
そのデータブロックを該共有バスを介して要求元のプロ
セッサに転送する手段とを有し、共有メモリ制御回路
は、該共有バスを介して該複数のプロセッサのいずれか
から送付された論理アドレスを、共有メモリ内のアドレ
ス変換テーブルをアクセスして、対応する物理アドレス
に変換する手段と、該データ転送要求で指定された論理
アドレスのデータを含むデータブロックがいずれのプロ
セッサからも該バスに転送されないときに、その論理ア
ドレスに対して該変換手段で得られた物理アドレスに基
づいて、そのデータブロックを該共有メモリから読み出
し、そのデータブロックを要求元のプロセッサに該共有
バスを介して転送する手段とを有する。
に、本発明では、各プロセッサは、処理装置が発行する
メモリアクセス要求が指定される論理アドレスでアクセ
ス可能なキャッシュメモリを有し、該キャッシュメモリ
は、該アクセス要求で要求されたデータが該キャッシュ
メモリに保持されていないときには、共有バスにそのア
クセス要求で指定された論理アドレスを含む、データ転
送要求コマンドを送付する手段と、他のプロセッサから
その共有バスに送付されたデータ転送要求が指定する論
理アドレスのデータを含むデータブロックを当該プロセ
ッサのキャッシュメモリ内に保持されているか否かを検
出し、そのデータブロックが保持されている場合には、
そのデータブロックを該共有バスを介して要求元のプロ
セッサに転送する手段とを有し、共有メモリ制御回路
は、該共有バスを介して該複数のプロセッサのいずれか
から送付された論理アドレスを、共有メモリ内のアドレ
ス変換テーブルをアクセスして、対応する物理アドレス
に変換する手段と、該データ転送要求で指定された論理
アドレスのデータを含むデータブロックがいずれのプロ
セッサからも該バスに転送されないときに、その論理ア
ドレスに対して該変換手段で得られた物理アドレスに基
づいて、そのデータブロックを該共有メモリから読み出
し、そのデータブロックを要求元のプロセッサに該共有
バスを介して転送する手段とを有する。
【0010】
【作用】各プロセッサにはアドレス変換手段を設けない
で、共有メモリ制御回路に複数のプロセッサに共通のア
ドレス変換手段を設けたので、共有バスには、アドレス
変換のための情報を各プロセッサから共有メモリ制御回
路へあるいはその反対方向に転送する必要がなく、共有
バスでのこれらの情報の転送時における競合が軽減さ
れ、アドレス変換自体が高速化される。
で、共有メモリ制御回路に複数のプロセッサに共通のア
ドレス変換手段を設けたので、共有バスには、アドレス
変換のための情報を各プロセッサから共有メモリ制御回
路へあるいはその反対方向に転送する必要がなく、共有
バスでのこれらの情報の転送時における競合が軽減さ
れ、アドレス変換自体が高速化される。
【0011】
【実施例】図1は、本発明による並列計算機システムの
構成図である。このシステムは、プロセッサPE0〜P
E2および共有メモリ1を共有バス2により接続されて
いるメモリ共有型マルチプロセッサである。共有メモリ
1は、共有メモリ制御回路12を介して共有バス2に接
続され、I/Oインタフェース回路13を介してディス
ク装置3に接続している。
構成図である。このシステムは、プロセッサPE0〜P
E2および共有メモリ1を共有バス2により接続されて
いるメモリ共有型マルチプロセッサである。共有メモリ
1は、共有メモリ制御回路12を介して共有バス2に接
続され、I/Oインタフェース回路13を介してディス
ク装置3に接続している。
【0012】共有メモリ1には、各ページのデータ1
4、各ページデータに対するキー情報15のほか、ペー
ジテーブル11を有する。本実施例では4ワードで1ペ
ージが構成されるとする。各キー情報のうち、図にはペ
ージの置換に使用するチェインジビットCと参照ビット
Rとを示している。このうち、Cビットは、対応するペ
ージの内容が更新されたか否かを示し、Rビットは、対
応するページが参照されたか否かを示すそれ自体公知の
情報である。
4、各ページデータに対するキー情報15のほか、ペー
ジテーブル11を有する。本実施例では4ワードで1ペ
ージが構成されるとする。各キー情報のうち、図にはペ
ージの置換に使用するチェインジビットCと参照ビット
Rとを示している。このうち、Cビットは、対応するペ
ージの内容が更新されたか否かを示し、Rビットは、対
応するページが参照されたか否かを示すそれ自体公知の
情報である。
【0013】ページテーブル11には、各ページデータ
について、有効フラグ、論理アドレスと物理アドレス、
UIC(Unused Interval Counterー不参照間隔カウンタ
値)からなるページ情報を登録する。ここでUICは、対
応するページが最近に参照されてから現在までの系か時
間を示す、それ自体は公知の情報である。
について、有効フラグ、論理アドレスと物理アドレス、
UIC(Unused Interval Counterー不参照間隔カウンタ
値)からなるページ情報を登録する。ここでUICは、対
応するページが最近に参照されてから現在までの系か時
間を示す、それ自体は公知の情報である。
【0014】共有メモリ制御回路12は、マイコン12
1とこのマイコンを制御するマイクロプログラムを保持
する制御記憶122とを有する。このマイコン121
は、共有メモリ1のデータ14あるいはキー情報15を
アクセスするとともに、ページテーブル11をアクセス
する。とくに、このマイコンはアドレス変換回路を実現
する。すなわち、このページテーブルを参照して論理ア
ドレスを対応する物理アドレスに変換するとともに、こ
のような変換で得られた論理アドレスと物理アドレスの
変換対を保持するアドレス変換バッファ(図示せず)を
内蔵している。その詳細は後に説明する。
1とこのマイコンを制御するマイクロプログラムを保持
する制御記憶122とを有する。このマイコン121
は、共有メモリ1のデータ14あるいはキー情報15を
アクセスするとともに、ページテーブル11をアクセス
する。とくに、このマイコンはアドレス変換回路を実現
する。すなわち、このページテーブルを参照して論理ア
ドレスを対応する物理アドレスに変換するとともに、こ
のような変換で得られた論理アドレスと物理アドレスの
変換対を保持するアドレス変換バッファ(図示せず)を
内蔵している。その詳細は後に説明する。
【0015】なお、共有メモリ制御回路12は、例えば
100万サイクル毎にページテーブルの有効ビットが1
の全エントリを調べ、Rビットが”0”のページについ
てUICに1だけ加算し、Rビットが”1”のページにつ
いてUICおよびRビットを0にリセットする。
100万サイクル毎にページテーブルの有効ビットが1
の全エントリを調べ、Rビットが”0”のページについ
てUICに1だけ加算し、Rビットが”1”のページにつ
いてUICおよびRビットを0にリセットする。
【0016】各プロセッサにはCPU40と、キャッシ
ュ41、42または43を備える。各プロセッサにはア
ドレス変換回路を有しない。このため、CPU40から
のメモリアクセス用のアドレスとして、論理アドレスが
指定される。各キャッシュは、2ワードの大きさのキャ
ッシュブロックデータと、そのブロックデータに関する
有効フラグ、キャッシュ状態、論理アドレスからなるキ
ャッシュブロック情報を保持する。キャッシュ状態は、
そのブロックデータの有効フラグがオンの場合に、その
データがそのキャッシュに登録されてから更新されたか
否かを示す情報とそのデータが他のプロセッサのキャッ
シュにも保持されているか否か(すなわち、そのデータ
が他のプロセッサと共有されているか否か)を示す情報
とを保持する。
ュ41、42または43を備える。各プロセッサにはア
ドレス変換回路を有しない。このため、CPU40から
のメモリアクセス用のアドレスとして、論理アドレスが
指定される。各キャッシュは、2ワードの大きさのキャ
ッシュブロックデータと、そのブロックデータに関する
有効フラグ、キャッシュ状態、論理アドレスからなるキ
ャッシュブロック情報を保持する。キャッシュ状態は、
そのブロックデータの有効フラグがオンの場合に、その
データがそのキャッシュに登録されてから更新されたか
否かを示す情報とそのデータが他のプロセッサのキャッ
シュにも保持されているか否か(すなわち、そのデータ
が他のプロセッサと共有されているか否か)を示す情報
とを保持する。
【0017】以下、本実施例によるシステムの動作を説
明する。
明する。
【0018】(1)データの読み出し (1a)いずれかのプロセッサ、例えば、PE1内のC
PU40がメモリデータの読み出し要求を発生し、その
要求で指定される論理アドレスのデータを含むブロック
がそのプロセッサのキャッシュ例えば41に存在すると
きには、そのブロックに対して要求されたデータを読み
出し、CPU40に転送して、その要求の処理を終了す
る。
PU40がメモリデータの読み出し要求を発生し、その
要求で指定される論理アドレスのデータを含むブロック
がそのプロセッサのキャッシュ例えば41に存在すると
きには、そのブロックに対して要求されたデータを読み
出し、CPU40に転送して、その要求の処理を終了す
る。
【0019】(1b)しかし、その要求されたデータを
含むブロックがそのキャッシュに存在しないときには、
そのプロセッサは、共有バス2に、その要求で指定され
た論理アドレスを含む、データ転送要求コマンドを送付
する。
含むブロックがそのキャッシュに存在しないときには、
そのプロセッサは、共有バス2に、その要求で指定され
た論理アドレスを含む、データ転送要求コマンドを送付
する。
【0020】このコマンドに応答して他のプロセッサ
は、各々、自己のキャッシュ内にこの論理アドレスのデ
ータを含むブロックが存在するか否かを判別し、あれ
ば、共有バス2を介してそのブロックを要求元のプロセ
ッサに転送する。この時、転送元のプロセッサは、その
キャッシュ内のそのデータブロックの状態を未変更、か
つ、共有状態に変更する。
は、各々、自己のキャッシュ内にこの論理アドレスのデ
ータを含むブロックが存在するか否かを判別し、あれ
ば、共有バス2を介してそのブロックを要求元のプロセ
ッサに転送する。この時、転送元のプロセッサは、その
キャッシュ内のそのデータブロックの状態を未変更、か
つ、共有状態に変更する。
【0021】一方、要求元のプロセッサは、共有バス2
を介して転送されたブロックを自己のキャッシュに登録
する。このとき、このブロックのキャッシュ内の状態を
共有状態にする。さらに、そのブロック内の、要求され
た論理アドレスのデータをCPUに転送する。
を介して転送されたブロックを自己のキャッシュに登録
する。このとき、このブロックのキャッシュ内の状態を
共有状態にする。さらに、そのブロック内の、要求され
た論理アドレスのデータをCPUに転送する。
【0022】(1c)一方、いずれの他のプロセッサか
らもこのブロックがキャッシュ内になく、いずれのプロ
セッサからこのブロックの転送が行なえないときには、
共有メモリ制御回路12は、この転送要求コマンドが要
求するブロックを共有メモリ1から要求元プロセッサに
転送する。
らもこのブロックがキャッシュ内になく、いずれのプロ
セッサからこのブロックの転送が行なえないときには、
共有メモリ制御回路12は、この転送要求コマンドが要
求するブロックを共有メモリ1から要求元プロセッサに
転送する。
【0023】この転送に先立ち、この転送要求コマンド
が指定する論理アドレスを対応する論理アドレスに変換
する。その方法は以下のとおりである。
が指定する論理アドレスを対応する論理アドレスに変換
する。その方法は以下のとおりである。
【0024】すなわち、この論理アドレスを物理アドレ
スに変換するに当たり、共有メモリ制御回路12内に設
けたアドレス変換バッファ(図示せず)を参照し、この
論理アドレスと対応する物理アドレスの対がそこに登録
されていれば、その論理アドレスに対応する物理アドレ
スを読み出し、変換後のアドレスとして利用する。もし
その対がこのアドレス変換バッファに登録されていない
ときには、共有メモリのページテーブル11をアクセス
して、その論理アドレスと対応する物理アドレスの対を
読み出し、その読み出した物理アドレスを変換後のアド
レスとして利用する。さらに、この読み出した対をアド
レス変換バッファに登録する。
スに変換するに当たり、共有メモリ制御回路12内に設
けたアドレス変換バッファ(図示せず)を参照し、この
論理アドレスと対応する物理アドレスの対がそこに登録
されていれば、その論理アドレスに対応する物理アドレ
スを読み出し、変換後のアドレスとして利用する。もし
その対がこのアドレス変換バッファに登録されていない
ときには、共有メモリのページテーブル11をアクセス
して、その論理アドレスと対応する物理アドレスの対を
読み出し、その読み出した物理アドレスを変換後のアド
レスとして利用する。さらに、この読み出した対をアド
レス変換バッファに登録する。
【0025】共有メモリ制御回路12は、このようにし
て論理アドレスを物理アドレスに変換し、変換後の物理
アドレスでもって、その物理アドレスのデータを含むブ
ロックデータを共有メモリ1から読み出し、要求元のプ
ロセッサに転送する。さらに、共有メモリ1内の、この
ページに対する参照ビットRを1(参照状態)にする。
て論理アドレスを物理アドレスに変換し、変換後の物理
アドレスでもって、その物理アドレスのデータを含むブ
ロックデータを共有メモリ1から読み出し、要求元のプ
ロセッサに転送する。さらに、共有メモリ1内の、この
ページに対する参照ビットRを1(参照状態)にする。
【0026】なお、この物理アドレスのデータを含むペ
ージが共有メモリに存在しないこと(ページフォール
ト)が生じうるが、その場合の処理は後に説明する。
ージが共有メモリに存在しないこと(ページフォール
ト)が生じうるが、その場合の処理は後に説明する。
【0027】(2)データの書き込み (2a)いずれかのプロセッサ、例えば、PE1内のC
PU40がメモリデータの書き込み要求を発生したと
き、その要求で指定される論理アドレスのデータを含む
ブロックがそのプロセッサのキャッシュ例えば41に存
在する場合には、そのブロックに対してCPUから転送
されたデータを書き込む。
PU40がメモリデータの書き込み要求を発生したと
き、その要求で指定される論理アドレスのデータを含む
ブロックがそのプロセッサのキャッシュ例えば41に存
在する場合には、そのブロックに対してCPUから転送
されたデータを書き込む。
【0028】さらに、そのブロックの状態が共有状態で
あるときには、この論理アドレスを指定する無効化コマ
ンドを共有バス2に転送する。この時、他のプロセッサ
は、このコマンドに応答して、自己のキャッシュにこの
ブロックを保持しているか否かを判別し、このブロック
を保持していると判断した他のプロセッサは、そのキャ
ッシュのそのブロックを無効とする。
あるときには、この論理アドレスを指定する無効化コマ
ンドを共有バス2に転送する。この時、他のプロセッサ
は、このコマンドに応答して、自己のキャッシュにこの
ブロックを保持しているか否かを判別し、このブロック
を保持していると判断した他のプロセッサは、そのキャ
ッシュのそのブロックを無効とする。
【0029】一方、共有メモリ制御回路12は、このコ
マンドに応答して、このブロックを含むページのCビッ
トを1(書き換え済み)状態に変更する。
マンドに応答して、このブロックを含むページのCビッ
トを1(書き換え済み)状態に変更する。
【0030】書き込み要求を実行したプロセッサでは、
そのプロセッサ内のそのブロックを未変更、かつ、非共
有状態に変更する。
そのプロセッサ内のそのブロックを未変更、かつ、非共
有状態に変更する。
【0031】(2b)しかし、その書き込み要求された
データを含むブロックがその要求が発生したプロセッサ
内のキャッシュに存在しないときには、そのプロセッサ
は、共有バス2に、その要求で指定された論理アドレス
を含み、そのアドレスのデータの転送と、その転送後の
そのデータの無効化を要求するデータ転送要求コマンド
を送付する。
データを含むブロックがその要求が発生したプロセッサ
内のキャッシュに存在しないときには、そのプロセッサ
は、共有バス2に、その要求で指定された論理アドレス
を含み、そのアドレスのデータの転送と、その転送後の
そのデータの無効化を要求するデータ転送要求コマンド
を送付する。
【0032】すなわち、このコマンドに応答して他のプ
ロセッサは、上記(1b)で説明したのと同じ動作をし
て、いずれかの他のプロセッサのキャッシュにそのデー
タを含むブロックが保持されているときには、そのプロ
セッサからそのブロックを要求元のプロセッサに転送す
るとともに、そのデータの転送後にそのデータを上記
(2a)で説明したののと同じように無効化する。
ロセッサは、上記(1b)で説明したのと同じ動作をし
て、いずれかの他のプロセッサのキャッシュにそのデー
タを含むブロックが保持されているときには、そのプロ
セッサからそのブロックを要求元のプロセッサに転送す
るとともに、そのデータの転送後にそのデータを上記
(2a)で説明したののと同じように無効化する。
【0033】一方、要求元のプロセッサは、この転送さ
れたブロックを自己のキャッシュに登録する。このと
き、このブロックのキャッシュ内の状態を、変更済、か
つ、非共有状態にする。
れたブロックを自己のキャッシュに登録する。このと
き、このブロックのキャッシュ内の状態を、変更済、か
つ、非共有状態にする。
【0034】(2c)一方、いずれの他のプロセッサの
キャッシュ内にもこのデータ転送要求コマンドで要求さ
れたデータを含むブロックがない場合、共有メモリ制御
回路12は、この転送要求コマンドが要求するブロック
を共有メモリ1から要求元プロセッサに転送する。その
方法は、上記(1c)で述べた方法と同じである。
キャッシュ内にもこのデータ転送要求コマンドで要求さ
れたデータを含むブロックがない場合、共有メモリ制御
回路12は、この転送要求コマンドが要求するブロック
を共有メモリ1から要求元プロセッサに転送する。その
方法は、上記(1c)で述べた方法と同じである。
【0035】しかる後に、要求元プロセッサは、書き込
み要求で指定されたデータをその転送されたブロックに
対して書き込みを行なう。ただし、上記(2a)の場合
と異なり、無効化コマンドの送出は行わない。
み要求で指定されたデータをその転送されたブロックに
対して書き込みを行なう。ただし、上記(2a)の場合
と異なり、無効化コマンドの送出は行わない。
【0036】なお、この(2c)の場合にも、この物理
アドレスのデータを含むページが共有メモリに存在しな
いこと(ページフォールト)が生じうるが、その場合の
処理は後に説明する。
アドレスのデータを含むページが共有メモリに存在しな
いこと(ページフォールト)が生じうるが、その場合の
処理は後に説明する。
【0037】(3)ページフォールト時の処理 図2は本発明による共有メモリ制御回路12によるブロ
ック転送動作の詳細フローである。
ック転送動作の詳細フローである。
【0038】(3a)上記(1c)あるいは(2c)に
おいて、データ転送要求コマンドが共有バスに転送さ
れ、そのブロックがいずれの他のプロセッサ内のキャッ
シュにもない場合に、共有メモリ制御回路12は、デー
タ転送要求が要求するブロックを転送するに当たり、ま
ず、その要求が指定する論理アドレスのブロックが、共
有メモリ1内の物理アドレスを割り当てられているかを
判断する(ステップc1)。
おいて、データ転送要求コマンドが共有バスに転送さ
れ、そのブロックがいずれの他のプロセッサ内のキャッ
シュにもない場合に、共有メモリ制御回路12は、デー
タ転送要求が要求するブロックを転送するに当たり、ま
ず、その要求が指定する論理アドレスのブロックが、共
有メモリ1内の物理アドレスを割り当てられているかを
判断する(ステップc1)。
【0039】このページフォールト判定c1では、当該
論理アドレスに対応するデータが共有メモリに存在する
か否かをページテーブル11の論理アドレスに対応する
有効フラグが、”1”(有効)であるかどうかにより判
定する。
論理アドレスに対応するデータが共有メモリに存在する
か否かをページテーブル11の論理アドレスに対応する
有効フラグが、”1”(有効)であるかどうかにより判
定する。
【0040】(3b)そのブロックが物理アドレスを割
り当てられている、すなわち、ページフォールトでない
と判断したとき、既に述べたようにしてそのブロックを
転送する(ステップc5)。
り当てられている、すなわち、ページフォールトでない
と判断したとき、既に述べたようにしてそのブロックを
転送する(ステップc5)。
【0041】(3c)しかし、その論理アドレスに物理
アドレスが割り当てられていないとき、すなわち、ペー
ジフォールトが発生したときには、共有メモリ制御回路
12は、置き換えページ選択処理c2において、置き換
えるページを一つ選択する。例えば、有効フラグが1の
ページでUICの値が最大のページを選択する。
アドレスが割り当てられていないとき、すなわち、ペー
ジフォールトが発生したときには、共有メモリ制御回路
12は、置き換えページ選択処理c2において、置き換
えるページを一つ選択する。例えば、有効フラグが1の
ページでUICの値が最大のページを選択する。
【0042】共有メモリ制御回路12は、さらに、選択
したページに含まれる複数のブロックの各々の書き戻し
を要求するスワップアウト要求コマンドを共有バス2を
介して各プロセッサに転送する。各プロセッサは、この
コマンドに応答して、そのコマンドが指定するブロック
を自己のプロセッサ内のキャッシュに保持しているか否
かを判断し、保持している場合には、そのブロックが書
き換え済みであるか否かをそのブロックのキャッシュ状
態を表す情報により判断し、書き換え済みであれば、そ
のブロックを共有バス2を介して共有メモリ1に書き戻
す。
したページに含まれる複数のブロックの各々の書き戻し
を要求するスワップアウト要求コマンドを共有バス2を
介して各プロセッサに転送する。各プロセッサは、この
コマンドに応答して、そのコマンドが指定するブロック
を自己のプロセッサ内のキャッシュに保持しているか否
かを判断し、保持している場合には、そのブロックが書
き換え済みであるか否かをそのブロックのキャッシュ状
態を表す情報により判断し、書き換え済みであれば、そ
のブロックを共有バス2を介して共有メモリ1に書き戻
す。
【0043】共有メモリ制御回路12は、このようにし
て書き戻されたブロックが一つでもあれば、その選択さ
れたページのCビットを1に変更する。
て書き戻されたブロックが一つでもあれば、その選択さ
れたページのCビットを1に変更する。
【0044】(3d)共有メモリ制御回路12は、処理
c3を実行する。すなわち、この選択されたページのC
ビットが1となった場合には、このページをディスク装
置3にI/Oインタフェース回路13を介してページア
ウトする。このCビットの値が”0”の場合は、このペ
ージアウトは行なわない。
c3を実行する。すなわち、この選択されたページのC
ビットが1となった場合には、このページをディスク装
置3にI/Oインタフェース回路13を介してページア
ウトする。このCビットの値が”0”の場合は、このペ
ージアウトは行なわない。
【0045】その後、共有メモリ制御回路12は、デー
タ転送要求で指定されたブロックに物理アドレスを割り
当て、ディスク装置3から共有メモリ1のその物理アド
レスの位置にそのブロックを転送する。
タ転送要求で指定されたブロックに物理アドレスを割り
当て、ディスク装置3から共有メモリ1のその物理アド
レスの位置にそのブロックを転送する。
【0046】(3e)共有メモリ制御回路12は、処理
c4で、ページテーブルを更新する。すなわち、データ
転送要求コマンドが指定した論理アドレス、それに割り
当てた物理アドレスと、有効フラグを”1”(有効)に
セットする。置換されたページに関するエントリの有効
フラグは”0”(無効)にリセットする。
c4で、ページテーブルを更新する。すなわち、データ
転送要求コマンドが指定した論理アドレス、それに割り
当てた物理アドレスと、有効フラグを”1”(有効)に
セットする。置換されたページに関するエントリの有効
フラグは”0”(無効)にリセットする。
【0047】併せて、共有メモリ制御回路12は、その
内部に含まれたアドレス変換バッファ内の、置換された
ページに関するエントリを無効化し、かつ、データ転送
要求された論理アドレスとそのアドレスに割り当てられ
た物理アドレスとの対を登録する。
内部に含まれたアドレス変換バッファ内の、置換された
ページに関するエントリを無効化し、かつ、データ転送
要求された論理アドレスとそのアドレスに割り当てられ
た物理アドレスとの対を登録する。
【0048】(3f)共有メモリ制御回路12は、こう
してページインされたページのうち、データ転送要求コ
マンドが指定した論理アドレスのデータを含むブロック
を、すでに(1c)あるいは(2c)で説明したように
して、要求元プロセッサに転送する。
してページインされたページのうち、データ転送要求コ
マンドが指定した論理アドレスのデータを含むブロック
を、すでに(1c)あるいは(2c)で説明したように
して、要求元プロセッサに転送する。
【0049】以上のごとく、本実施例では、各プロセッ
サにより転送要求されたブロックが複数のプロセッサで
保持されていないために、そのブロックを共有メモリ1
から読み出すときに限って共有メモリ1内のRビットの
書き換えを行なうことにより、このRビットの書き換え
の頻度を少なくしている。
サにより転送要求されたブロックが複数のプロセッサで
保持されていないために、そのブロックを共有メモリ1
から読み出すときに限って共有メモリ1内のRビットの
書き換えを行なうことにより、このRビットの書き換え
の頻度を少なくしている。
【0050】同様に、本実施例では、各プロセッサによ
り発行されたデータ無効化コマンドでいずれかのプロセ
ッサ内のブロックの無効を要求されたとき、および、共
有メモリに書き換え済みのブロックを共有メモリに書き
戻し時に限って、それらのブロックを含むページに対す
る共有メモリ1内のCビットの書き換えを行なうことに
より、このCビットの書き換えの頻度を少なくしてい
る。
り発行されたデータ無効化コマンドでいずれかのプロセ
ッサ内のブロックの無効を要求されたとき、および、共
有メモリに書き換え済みのブロックを共有メモリに書き
戻し時に限って、それらのブロックを含むページに対す
る共有メモリ1内のCビットの書き換えを行なうことに
より、このCビットの書き換えの頻度を少なくしてい
る。
【0051】以上から明らかなごとく、本実施例では、
論理アドレスから物理アドレスへの変換は、各プロセッ
サで行なわず、共有メモリ制御回路12で行ない、アド
レス変換変換バッファも各プロセッサに個別に設けず、
共有メモリ制御回路12に各プロセッサに共通に設け
る。
論理アドレスから物理アドレスへの変換は、各プロセッ
サで行なわず、共有メモリ制御回路12で行ない、アド
レス変換変換バッファも各プロセッサに個別に設けず、
共有メモリ制御回路12に各プロセッサに共通に設け
る。
【0052】この結果、各プロセッサと共有メモリ制御
回路との間では、共有メモリ内のページテーブルの内容
を転送する必要がなくなり、共有バスの競合によるアド
レス変換の遅延を防止できる。
回路との間では、共有メモリ内のページテーブルの内容
を転送する必要がなくなり、共有バスの競合によるアド
レス変換の遅延を防止できる。
【0053】さらに、従来各プロセッサに設けていた場
合に生じる、ページフォールト発生時の、各プロセッサ
内のアドレス変換バッファのパージを行なう必要がな
く、従来生じていた、そのパージのための共有バスの使
用の競合に起因する遅延が減少する。
合に生じる、ページフォールト発生時の、各プロセッサ
内のアドレス変換バッファのパージを行なう必要がな
く、従来生じていた、そのパージのための共有バスの使
用の競合に起因する遅延が減少する。
【0054】結局、本実施例では、アドレス変換あるい
はそれに関連して共有バスを使用する必要がなくなる。
はそれに関連して共有バスを使用する必要がなくなる。
【0055】なお、上記(1b)あるいは(2b)の場
合のように、いずれかのプロセッサからデータ転送要求
コマンドが発行され、要求されたデータを含むブロック
がいずれかのプロセッサから要求元に転送された場合に
おいても、共有メモリ制御回路12に共有メモリ1の当
該ブロックを含むページが無効か否かを判断させること
により、仮想記憶制御の誤りを検出するように本実施例
を変形することも可能である。
合のように、いずれかのプロセッサからデータ転送要求
コマンドが発行され、要求されたデータを含むブロック
がいずれかのプロセッサから要求元に転送された場合に
おいても、共有メモリ制御回路12に共有メモリ1の当
該ブロックを含むページが無効か否かを判断させること
により、仮想記憶制御の誤りを検出するように本実施例
を変形することも可能である。
【0056】
【発明の効果】本発明によれば、各プロセッサにはアド
レス変換手段を設けないで、共有メモリ制御回路に複数
のプロセッサに共通のアドレス変換回路を設けたので、
共有バスには、アドレス変換のための情報を各プロセッ
サから共有メモリ制御回路へあるいはその反対方向に転
送する必要がなく、共有バスでのこれらの情報の転送時
おける競合が軽減され、アドレス変換自体が高速化され
る。
レス変換手段を設けないで、共有メモリ制御回路に複数
のプロセッサに共通のアドレス変換回路を設けたので、
共有バスには、アドレス変換のための情報を各プロセッ
サから共有メモリ制御回路へあるいはその反対方向に転
送する必要がなく、共有バスでのこれらの情報の転送時
おける競合が軽減され、アドレス変換自体が高速化され
る。
【図1】本発明による並列計算機システムの一実施例の
構成図である。
構成図である。
【図2】図1の装置の共有メモリ制御回路により実行さ
れる、ページフォールト発生時の制御のフローチャート
である。
れる、ページフォールト発生時の制御のフローチャート
である。
1...共有メモリ、 2..共有バス。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井門 徳安 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内
Claims (2)
- 【請求項1】共有バスに結合された複数のプロセッサ
と、該複数のプロセッサに共有される共有メモリと、該
共有バスに接続され、該共有メモリへのアクセスを制御
する共有メモリ制御回路とを有し、 各プロセッサは、 処理装置と、その処理装置が発行するメモリアクセス要
求が指定される論理アドレスでアクセス可能なキャッシ
ュメモリとを有し、 該キャッシュメモリは、 該アクセス要求で要求されたデータが該キャッシュメモ
リに保持されていないときには、該共有バスにそのアク
セス要求で指定された論理アドレスを含む、データ転送
要求コマンドを送付する手段と、 他のプロセッサからその共有バスに送付されたデータ転
送要求が指定する論理アドレスのデータを含むデータブ
ロックを当該プロセッサのキャッシュメモリ内に保持さ
れているか否かを検出し、そのデータブロックが保持さ
れている場合には、そのデータブロックを該共有バスを
介して要求元のプロセッサに転送する手段とを有し、 該共有メモリ制御回路は、 該共有バスを介して該複数のプロセッサのいずれかから
送付された論理アドレスを、該共有メモリ内のアドレス
変換テーブルをアクセスして、対応する物理アドレスに
変換する手段と、 該データ転送要求で指定された論理アドレスのデータを
含むデータブロックがいずれのプロセッサからも該バス
に転送されないときに、その論理アドレスに対して該変
換手段で得られた物理アドレスに基づいて、そのデータ
ブロックを該共有メモリから読み出し、そのデータブロ
ックを要求元のプロセッサに該共有バスを介して転送す
る手段とを有する仮想記憶管理方式。 - 【請求項2】該共有メモリ制御回路は、 該データ転送要求で指定された論理アドレスのデータを
含むページデータが該共有メモリに記憶されていないと
きに、該共有メモリに保持されたいずれかのページデー
タを、ページアウトのために選択する手段と、 選択されたページデータに属する複数のブロックを該共
有メモリに書き戻すことを該複数のプロセッサに要求す
る手段とを有し、 各プロセッサのキャッシュメモリは、該書き戻し要求さ
れたデータブロックをそのキャッシュメモリに保持し、
かつ、そのデータブロックが書き換え済みであるかを判
別し、該キャッシュメモリに保持された書き換え済みの
ブロックを該共有バスを介して該共有メモリに書き戻す
手段を有し、 該共有メモリ制御回路は、 該複数のプロセッサから書き換え済みのブロックが少な
くとも一つ該共有メモリに書き戻されたときに、該選択
されたページデータを該共有メモリ制御回路に接続され
た補助記憶装置にページアウトする手段と、 該データ転送要求で指定された論理アドレスのデータを
含むページデータを該補助記憶装置から該共有メモリに
ページインする手段と、 ページインされたページデータのうち、その論理アドレ
スで指定されたデータを含むブロックを、該要求元のプ
ロセッサに該共有バスを介して転送する手段とを有する
請求項1記載の仮想記憶管理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5255305A JPH0793220A (ja) | 1993-09-20 | 1993-09-20 | 仮想記憶管理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5255305A JPH0793220A (ja) | 1993-09-20 | 1993-09-20 | 仮想記憶管理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0793220A true JPH0793220A (ja) | 1995-04-07 |
Family
ID=17276934
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5255305A Pending JPH0793220A (ja) | 1993-09-20 | 1993-09-20 | 仮想記憶管理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0793220A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016517992A (ja) * | 2013-05-06 | 2016-06-20 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 属性フィールドのマルチコアページテーブルセット |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5864689A (ja) * | 1981-10-14 | 1983-04-18 | Hitachi Ltd | デ−タ処理装置 |
| JPS58205973A (ja) * | 1982-05-25 | 1983-12-01 | Toshiba Corp | アドレス変換方式 |
| JPH04347750A (ja) * | 1991-05-24 | 1992-12-02 | Fujitsu Ltd | 並列キャッシュメモリの制御方式 |
-
1993
- 1993-09-20 JP JP5255305A patent/JPH0793220A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5864689A (ja) * | 1981-10-14 | 1983-04-18 | Hitachi Ltd | デ−タ処理装置 |
| JPS58205973A (ja) * | 1982-05-25 | 1983-12-01 | Toshiba Corp | アドレス変換方式 |
| JPH04347750A (ja) * | 1991-05-24 | 1992-12-02 | Fujitsu Ltd | 並列キャッシュメモリの制御方式 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016517992A (ja) * | 2013-05-06 | 2016-06-20 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 属性フィールドのマルチコアページテーブルセット |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6295582B1 (en) | System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available | |
| JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
| US8417913B2 (en) | Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages | |
| US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
| US6795897B2 (en) | Selective memory controller access path for directory caching | |
| US5897664A (en) | Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies | |
| JP3102495B2 (ja) | 仮想記憶管理方法 | |
| US6633967B1 (en) | Coherent translation look-aside buffer | |
| JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
| JP3264319B2 (ja) | バスブリッジ | |
| JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
| US7197605B2 (en) | Allocating cache lines | |
| KR20010101694A (ko) | 가상 메모리 시스템에서의 메모리 접근 개선 기술 | |
| US20070288721A1 (en) | Miss-under-miss processing and cache flushing | |
| JPH11232173A (ja) | ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム | |
| CN119127732A (zh) | 相干性管理器 | |
| US20060123197A1 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
| US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
| US7380068B2 (en) | System and method for contention-based cache performance optimization | |
| US5293622A (en) | Computer system with input/output cache | |
| US20060236070A1 (en) | System and method for reducing the number of translation buffer invalidates an operating system needs to issue | |
| KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
| JP2000512050A (ja) | マイクロプロセッサキャッシュの一貫性 | |
| US6785759B1 (en) | System and method for sharing I/O address translation caching across multiple host bridges | |
| US20050091459A1 (en) | Flexible mechanism for enforcing coherency among caching structures |