JPH07262092A - 仮想メモリ管理システム、変換索引バッファ管理方法、及び変換索引バッファパージオーバーヘッド最小化方法 - Google Patents
仮想メモリ管理システム、変換索引バッファ管理方法、及び変換索引バッファパージオーバーヘッド最小化方法Info
- Publication number
- JPH07262092A JPH07262092A JP5066620A JP6662093A JPH07262092A JP H07262092 A JPH07262092 A JP H07262092A JP 5066620 A JP5066620 A JP 5066620A JP 6662093 A JP6662093 A JP 6662093A JP H07262092 A JPH07262092 A JP H07262092A
- Authority
- JP
- Japan
- Prior art keywords
- address
- address space
- purge
- translation
- buffer
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 変換索引バッファ(TLB)を最小とし、か
つ有効アドレスを常に生じるためのアドレス分解アクセ
スを確実とするシステムを提供すること。 【目的】 本発明による新しいTLB管理手順は、図5
に示されているように、オペレーティングシステム24
0から割当てアドレス空間要求を受け取る。次いで、ア
ドレスブロック待ち行列300は、ステップ242でア
クセスされる。PTLB(パージ変換索引バッファ)が
ステップ244で検出された場合、ステップ246でP
TLB命令が出される。ステップ248でこの命令が多
重プロセッサコンプレックスである場合、PTLBメッ
セージが他の複数のCPU250へ送られる。いずれの
ケースにおいても、PTLBマーカーは、アドレス待ち
行列252の最下列に配置され、コントロールはステッ
プ242ヘ戻り、次のアドレス空間ブロックにアクセス
する。PTLBマーカーが検出されなかった場合、ステ
ップ254でアドレス空間が割り当てられる。
つ有効アドレスを常に生じるためのアドレス分解アクセ
スを確実とするシステムを提供すること。 【目的】 本発明による新しいTLB管理手順は、図5
に示されているように、オペレーティングシステム24
0から割当てアドレス空間要求を受け取る。次いで、ア
ドレスブロック待ち行列300は、ステップ242でア
クセスされる。PTLB(パージ変換索引バッファ)が
ステップ244で検出された場合、ステップ246でP
TLB命令が出される。ステップ248でこの命令が多
重プロセッサコンプレックスである場合、PTLBメッ
セージが他の複数のCPU250へ送られる。いずれの
ケースにおいても、PTLBマーカーは、アドレス待ち
行列252の最下列に配置され、コントロールはステッ
プ242ヘ戻り、次のアドレス空間ブロックにアクセス
する。PTLBマーカーが検出されなかった場合、ステ
ップ254でアドレス空間が割り当てられる。
Description
【0001】
【産業上の利用分野】本発明は、電子的ディジタル処理
システムに係り、特に、仮想メモリアドレッシングを用
いるデータ処理システムに関する。殊に、本発明は、変
換索引バッファパージングを生じるオペレーティングシ
ステムオーバーヘッドを短縮するための方法に向けられ
ている。
システムに係り、特に、仮想メモリアドレッシングを用
いるデータ処理システムに関する。殊に、本発明は、変
換索引バッファパージングを生じるオペレーティングシ
ステムオーバーヘッドを短縮するための方法に向けられ
ている。
【0002】
【従来の技術】コンピュータシステムは、コンピュータ
タスクのための実コンピュータメモリを、もっと効率的
に管理するために仮想メモリシステムを実行する。仮想
メモリは、例えば、4096バイトの固定サイズを有す
る一連のメモリページとして、一般に編成されている。
次いで、メモリページは、複数のセグメントのグループ
に分けられる。図1に示されるように仮想メモリアドレ
スは三つのフィールドを備えている。セグメントインデ
ックス100は、数ページを含むセグメントの実際の位
置を決定するように、セグメントテーブルをアクセスす
るために用いられる。ページインデックス102は、こ
のセグメント内の特定ページをアクセスするためのイン
デックスであり、オフセット104は、この特定ページ
内のデータの位置を提供する。
タスクのための実コンピュータメモリを、もっと効率的
に管理するために仮想メモリシステムを実行する。仮想
メモリは、例えば、4096バイトの固定サイズを有す
る一連のメモリページとして、一般に編成されている。
次いで、メモリページは、複数のセグメントのグループ
に分けられる。図1に示されるように仮想メモリアドレ
スは三つのフィールドを備えている。セグメントインデ
ックス100は、数ページを含むセグメントの実際の位
置を決定するように、セグメントテーブルをアクセスす
るために用いられる。ページインデックス102は、こ
のセグメント内の特定ページをアクセスするためのイン
デックスであり、オフセット104は、この特定ページ
内のデータの位置を提供する。
【0003】タスク処理が行われている間は、メモリア
クセスが生じるように、仮想アドレスは実アドレスへ変
換されなければならない。図2に示されているように、
仮想から実へのアドレス変換は、動的アドレス変換メカ
ニズム202によって実行される。動的アドレス変換
は、実アドレスが計算され、かつデータメモリがアクセ
スされることができる前に、一般に、セグメントテーブ
ルとぺージテーブルの二つのメモリアクセスを必要とす
る。動的アドレス変換の結果は、実メモリにアクセスす
るために、プロセッサによって使用されることができる
実アドレスである。
クセスが生じるように、仮想アドレスは実アドレスへ変
換されなければならない。図2に示されているように、
仮想から実へのアドレス変換は、動的アドレス変換メカ
ニズム202によって実行される。動的アドレス変換
は、実アドレスが計算され、かつデータメモリがアクセ
スされることができる前に、一般に、セグメントテーブ
ルとぺージテーブルの二つのメモリアクセスを必要とす
る。動的アドレス変換の結果は、実メモリにアクセスす
るために、プロセッサによって使用されることができる
実アドレスである。
【0004】各仮想メモリアクセスのための動的アドレ
ス変換を実行することによって、オーバーヘッド処理は
非常に増大する。アドレス変換に必要とされるメモリア
クセスの数及び命令パスの長さを減少させることは非常
に望ましい。コンピュータシステムの設計者は、変換索
引バッファ(TLB)を導入することによって、アドレ
ス分解プロセスをもっと効率的にした。変換索引バッフ
ァ(図2の参照番号208)は、例えば、256ビット
などの固定数の入力を一般に含んでいる。各TLB入力
は、仮想アドレスから実アドレスへの直接変換を提供す
る。一般的なTLB入力は図3に示されている。第1の
フィールド230は、割り当てられたセグメントテーブ
ルの起点(オリジン)を示すセグメントテーブルオリジ
ン(STO)である。図1に示されるように、仮想アド
レス232は、セグメントインデックス(sx)、ペー
ジインデックス(px)、及びオフセット(bx)を含
む。実アドレス234はデータをアクセスするために使
用される実メモリアドレスを含む。
ス変換を実行することによって、オーバーヘッド処理は
非常に増大する。アドレス変換に必要とされるメモリア
クセスの数及び命令パスの長さを減少させることは非常
に望ましい。コンピュータシステムの設計者は、変換索
引バッファ(TLB)を導入することによって、アドレ
ス分解プロセスをもっと効率的にした。変換索引バッフ
ァ(図2の参照番号208)は、例えば、256ビット
などの固定数の入力を一般に含んでいる。各TLB入力
は、仮想アドレスから実アドレスへの直接変換を提供す
る。一般的なTLB入力は図3に示されている。第1の
フィールド230は、割り当てられたセグメントテーブ
ルの起点(オリジン)を示すセグメントテーブルオリジ
ン(STO)である。図1に示されるように、仮想アド
レス232は、セグメントインデックス(sx)、ペー
ジインデックス(px)、及びオフセット(bx)を含
む。実アドレス234はデータをアクセスするために使
用される実メモリアドレスを含む。
【0005】動作において、プロセッサは、特定の仮想
アドレスのための実アドレスを決定するために、最初
に、動的アドレス変換を実行する。次いで、分解された
入力は変換索引バッファ(TLB)208に付け加えら
れる。将来のアドレス分解が要求された時には、TLB
は、TLBがその特定の仮想アドレスを分解する入力を
含むか否かを決定するために最初にチェックされる。仮
想アドレスがTLB内にまだ存在していない場合には、
次いで、動的アドレス変換が実行されなければならな
い。即ち、新しいTLB入力が生成されかつ既存のTL
Bに付け加えられることによって、次に新しい入力は恐
らく放棄される。
アドレスのための実アドレスを決定するために、最初
に、動的アドレス変換を実行する。次いで、分解された
入力は変換索引バッファ(TLB)208に付け加えら
れる。将来のアドレス分解が要求された時には、TLB
は、TLBがその特定の仮想アドレスを分解する入力を
含むか否かを決定するために最初にチェックされる。仮
想アドレスがTLB内にまだ存在していない場合には、
次いで、動的アドレス変換が実行されなければならな
い。即ち、新しいTLB入力が生成されかつ既存のTL
Bに付け加えられることによって、次に新しい入力は恐
らく放棄される。
【0006】TLB入力は特定のセグメントテーブル内
での変換のみに有効である。異なるセグメントテーブル
は、異なる仮想から実への変換を生じ得る。異なるセグ
メントテーブルのTLB入力同士を識別するメカニズム
を有さないならば、無効なアドレス変換を阻止するため
に、TLBは、各タスクディスパッチにおいて、パージ
(消去)されなければならない。一般に、セグメントテ
ーブルオリジンは、仮想から実への変換を適したセグメ
ントテーブルに対応させるようにTLB内で保持され
る。
での変換のみに有効である。異なるセグメントテーブル
は、異なる仮想から実への変換を生じ得る。異なるセグ
メントテーブルのTLB入力同士を識別するメカニズム
を有さないならば、無効なアドレス変換を阻止するため
に、TLBは、各タスクディスパッチにおいて、パージ
(消去)されなければならない。一般に、セグメントテ
ーブルオリジンは、仮想から実への変換を適したセグメ
ントテーブルに対応させるようにTLB内で保持され
る。
【0007】セグメントテーブルオリジン(STO)は
アドレス空間を定義付ける。アドレス空間は、一般に、
一つ以上のディスパッチを介して残存する。アドレス空
間がディスパッチされるごとに、TLBは、アドレス空
間の前もって行われた実行から残存するいくつかの入力
を有することもあり、従って、初期アドレス変換が必要
とされないので、性能が改良される。アドレス空間は後
から再使用されることもあるが、アドレス空間の使用は
徐々に終了する。TLBにおける仮想から実への変換は
アドレス空間の引き続いての使用には有効ではない。
アドレス空間を定義付ける。アドレス空間は、一般に、
一つ以上のディスパッチを介して残存する。アドレス空
間がディスパッチされるごとに、TLBは、アドレス空
間の前もって行われた実行から残存するいくつかの入力
を有することもあり、従って、初期アドレス変換が必要
とされないので、性能が改良される。アドレス空間は後
から再使用されることもあるが、アドレス空間の使用は
徐々に終了する。TLBにおける仮想から実への変換は
アドレス空間の引き続いての使用には有効ではない。
【0008】各アドレス空間のディスパッチにおいて、
アドレス空間が、当該アドレス空間がディスパッチされ
た最終回以降に再使用されたか否かによって、TLBの
内容が有効な場合と無効な場合がある。
アドレス空間が、当該アドレス空間がディスパッチされ
た最終回以降に再使用されたか否かによって、TLBの
内容が有効な場合と無効な場合がある。
【0009】TLBをパージするために費やされるオー
バーヘッド処理コストは、パージする時間とコンピュー
タシステムで実行されるタスクの長さを比較することに
よって決定される。タスク初期化の前にTLBをパージ
するためのオーバーヘッドは、非常に長い実行タスクに
とっては重要ではない。しかしながら、非常に短い実行
タスクにとって、パージTLBオーバーヘッドは、タス
ク動作経過時間の重要な部分を構築し得る。従って、T
LBを頻繁にパージするための要求によって、所望され
ないオーバーヘッドをシステムに加えることになり、こ
れによりプロセッサの処理能力が低下する。この欠点は
短いタスクのトランザクション処理システムにおいて特
に著しい。
バーヘッド処理コストは、パージする時間とコンピュー
タシステムで実行されるタスクの長さを比較することに
よって決定される。タスク初期化の前にTLBをパージ
するためのオーバーヘッドは、非常に長い実行タスクに
とっては重要ではない。しかしながら、非常に短い実行
タスクにとって、パージTLBオーバーヘッドは、タス
ク動作経過時間の重要な部分を構築し得る。従って、T
LBを頻繁にパージするための要求によって、所望され
ないオーバーヘッドをシステムに加えることになり、こ
れによりプロセッサの処理能力が低下する。この欠点は
短いタスクのトランザクション処理システムにおいて特
に著しい。
【0010】変換索引バッファ(TLB)をパージする
ための要求を削減するために種々の方法が提案されてい
る。米国特許番号第4,525,778 号は各TLB入力による
タグビットと処理識別子の使用を提示している。TLB
へのアドレス分解アクセスは、このTLB入力がアクセ
スプロセスに対して有効か無効かを決定するためにタグ
ビットと処理識別子を比較しなければならない。無効で
ある場合、この入力は無効化される。TLBアクセスの
時に比較されるTLBへマーキングビットを付け加える
ために、他のこの種のシステムが提案される。
ための要求を削減するために種々の方法が提案されてい
る。米国特許番号第4,525,778 号は各TLB入力による
タグビットと処理識別子の使用を提示している。TLB
へのアドレス分解アクセスは、このTLB入力がアクセ
スプロセスに対して有効か無効かを決定するためにタグ
ビットと処理識別子を比較しなければならない。無効で
ある場合、この入力は無効化される。TLBアクセスの
時に比較されるTLBへマーキングビットを付け加える
ために、他のこの種のシステムが提案される。
【0011】各TLB入力をマークするために付加的な
ビットを用いることによって、論理オーバーヘッドが処
理システムに追加されることになる。付加的なフラグを
セットし、かつテストするためにハードウェア又はソフ
トウェアを増やすことを避けることは望ましい。従っ
て、TLBアクセス回路にハードウェアを追加せずに、
変換索引バッファパージの要求を削減するTLB管理シ
ステムを開発することが望ましい。
ビットを用いることによって、論理オーバーヘッドが処
理システムに追加されることになる。付加的なフラグを
セットし、かつテストするためにハードウェア又はソフ
トウェアを増やすことを避けることは望ましい。従っ
て、TLBアクセス回路にハードウェアを追加せずに、
変換索引バッファパージの要求を削減するTLB管理シ
ステムを開発することが望ましい。
【0012】
【発明が解決しようとする課題】解決されるべき技術的
な問題は、TLBを最小限とすると共に、有効アドレス
を常に生じるためのアドレス分解アクセスを確実とする
システムを提供することにある。
な問題は、TLBを最小限とすると共に、有効アドレス
を常に生じるためのアドレス分解アクセスを確実とする
システムを提供することにある。
【0013】
【課題を解決するための手段】本発明は、パージの要求
数を削減する、改良されたTLBパージシステムを提供
することに向けられている。本発明は、パージ(purge)
TLB命令の数を削減するために、TLB管理メカニズ
ムと結合して、アドレス空間割当てメカニズムを用い
る。アドレス空間は、アドレス空間のFIFO方式管理
リストから割り当てられる。割当て解除されたアドレス
空間ブロックはフリー(空き)アドレス空間のリストの
最下列に配置される。マーカーはシステムの初期化の時
に空きアドレス空間リストの最下列に配置される。その
マーカーが待ち行列の最上列に到達した時にはTLBは
パージされ、このマーカーはリストの最下列に移動す
る。アドレス空間割当てに割り込んでいる間はTLBパ
ージは全く生じない。
数を削減する、改良されたTLBパージシステムを提供
することに向けられている。本発明は、パージ(purge)
TLB命令の数を削減するために、TLB管理メカニズ
ムと結合して、アドレス空間割当てメカニズムを用い
る。アドレス空間は、アドレス空間のFIFO方式管理
リストから割り当てられる。割当て解除されたアドレス
空間ブロックはフリー(空き)アドレス空間のリストの
最下列に配置される。マーカーはシステムの初期化の時
に空きアドレス空間リストの最下列に配置される。その
マーカーが待ち行列の最上列に到達した時にはTLBは
パージされ、このマーカーはリストの最下列に移動す
る。アドレス空間割当てに割り込んでいる間はTLBパ
ージは全く生じない。
【0014】本発明の一つの態様は、少なくとも一つの
プロセッサと、複数のアドレス空間を有するメモリとを
有するコンピュータシステムのための仮想メモリ管理シ
ステムであって、前記プロセッサが、仮想アドレス参照
を使って、各々が前記複数のアドレス空間のうちの一つ
における位置を引用する複数のタスクを実行する前記仮
想メモリ管理システムにおいて、前記複数のアドレス空
間のうちの一つを前記複数のタスクのうちの一つに割り
当てるためのアドレス空間割当て手段であって、前記ア
ドレス空間割当て手段が、各使用可能なアドレス空間の
ための入力を有する使用可のアドレス空間ブロックのF
IFO方式管理テーブルを含み、かつ前記アドレス空間
割当て手段が、タスク初期化の時に、前記複数のタスク
のうちの一つのタスクに次の使用可能なアドレス空間を
割り当てる手段と、仮想アドレス参照を実アドレス参照
へ変換するためのアドレス変換手段であって、有限数で
ある複数の仮想アドレスのために、仮想から実へのアド
レス変換を含む変換索引バッファを含む手段と、前記変
換索引バッファをパージするための変換索引バッファパ
ージ手段であって、前記索引バッファがパージされた時
はいつでも前記アドレス空間ブロックテーブル内にパー
ジマーカーを挿入する手段と、前記パージマーカーが前
記アドレス空間割当て手段によって検出された時はいつ
でも、前記変換索引バッファパージ手段を作動させるよ
うに前記アドレス空間割当て手段と結合して動作するパ
ージ要求手段と、を備える仮想メモリ管理システムであ
る。
プロセッサと、複数のアドレス空間を有するメモリとを
有するコンピュータシステムのための仮想メモリ管理シ
ステムであって、前記プロセッサが、仮想アドレス参照
を使って、各々が前記複数のアドレス空間のうちの一つ
における位置を引用する複数のタスクを実行する前記仮
想メモリ管理システムにおいて、前記複数のアドレス空
間のうちの一つを前記複数のタスクのうちの一つに割り
当てるためのアドレス空間割当て手段であって、前記ア
ドレス空間割当て手段が、各使用可能なアドレス空間の
ための入力を有する使用可のアドレス空間ブロックのF
IFO方式管理テーブルを含み、かつ前記アドレス空間
割当て手段が、タスク初期化の時に、前記複数のタスク
のうちの一つのタスクに次の使用可能なアドレス空間を
割り当てる手段と、仮想アドレス参照を実アドレス参照
へ変換するためのアドレス変換手段であって、有限数で
ある複数の仮想アドレスのために、仮想から実へのアド
レス変換を含む変換索引バッファを含む手段と、前記変
換索引バッファをパージするための変換索引バッファパ
ージ手段であって、前記索引バッファがパージされた時
はいつでも前記アドレス空間ブロックテーブル内にパー
ジマーカーを挿入する手段と、前記パージマーカーが前
記アドレス空間割当て手段によって検出された時はいつ
でも、前記変換索引バッファパージ手段を作動させるよ
うに前記アドレス空間割当て手段と結合して動作するパ
ージ要求手段と、を備える仮想メモリ管理システムであ
る。
【0015】本発明の他の態様は、少なくとも一つのプ
ロセッサ及び実メモリを有するコンピュータシステムに
おける変換索引バッファを管理するための方法であっ
て、前記実メモリを前記コンピュータシステムの初期化
の時に複数のアドレス空間の各々へ分割するステップ
と、アドレス空間リスト内の前記アドレス空間の各々へ
ポインタを記憶するステップと、前記アドレス空間リス
トの終わりに変換索引バッファパージマーカーを配置す
るステップと、前記アドレス空間リスト内に次の入力を
アクセスするステップと、前記入力をテストするステッ
プと、を備え、前記入力が変換索引バッファパージマー
カーである場合には、パージ変換索引バッファ命令を送
るステップと、変換索引バッファパージマーカーを前記
アドレス空間リスト内の終わりに配置するステップと、
前記アクセスステップへ戻るステップと、全てのケース
において、前記アドレス空間テーブル入力によって指定
された前記アドレス空間を割り当てるステップと、を実
行することを備える変換索引バッファ管理方法である。
ロセッサ及び実メモリを有するコンピュータシステムに
おける変換索引バッファを管理するための方法であっ
て、前記実メモリを前記コンピュータシステムの初期化
の時に複数のアドレス空間の各々へ分割するステップ
と、アドレス空間リスト内の前記アドレス空間の各々へ
ポインタを記憶するステップと、前記アドレス空間リス
トの終わりに変換索引バッファパージマーカーを配置す
るステップと、前記アドレス空間リスト内に次の入力を
アクセスするステップと、前記入力をテストするステッ
プと、を備え、前記入力が変換索引バッファパージマー
カーである場合には、パージ変換索引バッファ命令を送
るステップと、変換索引バッファパージマーカーを前記
アドレス空間リスト内の終わりに配置するステップと、
前記アクセスステップへ戻るステップと、全てのケース
において、前記アドレス空間テーブル入力によって指定
された前記アドレス空間を割り当てるステップと、を実
行することを備える変換索引バッファ管理方法である。
【0016】本発明のさらに他の態様は、複数のプロセ
ッサと、実メモリと、仮想アドレスを実メモリアドレス
へ変換するための変換索引バッファとを有するコンピュ
ータシステムにおいて、変換索引バッファパージオーバ
ーヘッドを最小とする方法であって、前記実メモリから
アドレス空間をタスクに割当てるステップと、前記アド
レス空間が最後の変換索引バッファパージ以降に再使用
されているか否かを決定するためにテストし、再使用さ
れている場合には前記変換索引バッファをパージし、次
いで前記パージが実行された時を示すインジケータを設
定するステップと、を備える変換索引バッファパージオ
ーバーヘッド最小化方法である。
ッサと、実メモリと、仮想アドレスを実メモリアドレス
へ変換するための変換索引バッファとを有するコンピュ
ータシステムにおいて、変換索引バッファパージオーバ
ーヘッドを最小とする方法であって、前記実メモリから
アドレス空間をタスクに割当てるステップと、前記アド
レス空間が最後の変換索引バッファパージ以降に再使用
されているか否かを決定するためにテストし、再使用さ
れている場合には前記変換索引バッファをパージし、次
いで前記パージが実行された時を示すインジケータを設
定するステップと、を備える変換索引バッファパージオ
ーバーヘッド最小化方法である。
【0017】
【実施例】図2に示され、かつ上記に詳しく説明されて
いるように、仮想アドレス分解は、仮想アドレスに対す
る、セグメントテーブル、ページテーブル、及びオフセ
ットの位置に基づく実アドレスの決定を必要とする。セ
グメントテーブルオリジン(STO)は、アドレス空間
アロケーション(割当て)プロセスの間に確立される。
図4に示されているように、アドレス空間は、空きアド
レス空間ブロックのリストからオペレーティングタスク
へ割当てられる。あるアドレス空間は、プログラム又は
タスクが使用し得るアドレスの範囲を指している。仮想
メモリシステムにおいて、特定プログラムのアドレス空
間は、異なる物理システム又は他のプログラムを指し得
る。オペレーティングシステムは、一般に、システムの
初期化の時に固定数の潜在的アドレス空間を構築する。
これらの予め構築されたアドレス空間は、必要に応じ
て、使用可能なアドレス空間のリストから動的に割当て
られる。
いるように、仮想アドレス分解は、仮想アドレスに対す
る、セグメントテーブル、ページテーブル、及びオフセ
ットの位置に基づく実アドレスの決定を必要とする。セ
グメントテーブルオリジン(STO)は、アドレス空間
アロケーション(割当て)プロセスの間に確立される。
図4に示されているように、アドレス空間は、空きアド
レス空間ブロックのリストからオペレーティングタスク
へ割当てられる。あるアドレス空間は、プログラム又は
タスクが使用し得るアドレスの範囲を指している。仮想
メモリシステムにおいて、特定プログラムのアドレス空
間は、異なる物理システム又は他のプログラムを指し得
る。オペレーティングシステムは、一般に、システムの
初期化の時に固定数の潜在的アドレス空間を構築する。
これらの予め構築されたアドレス空間は、必要に応じ
て、使用可能なアドレス空間のリストから動的に割当て
られる。
【0018】アドレス空間が用いられる時はいつでも、
そのアドレス空間ブロックが使用中である。空間オリジ
ン(起点)をアドレスするためのポインタを有する空き
アドレス空間ブロックは、アドレス空間ブロック待ち行
列300内で保持される。アドレス割当てプロセス30
2は、アドレス空間ブロックリストから第1のブロック
を取り除き、そのアドレス空間オリジンを、オペレーテ
ィングタスクのためのセグメントテーブルオリジンとし
て使用する。あるアドレス空間が割当て解除された時に
は、このアドレス空間ブロックは待ち行列の最下列に戻
される。
そのアドレス空間ブロックが使用中である。空間オリジ
ン(起点)をアドレスするためのポインタを有する空き
アドレス空間ブロックは、アドレス空間ブロック待ち行
列300内で保持される。アドレス割当てプロセス30
2は、アドレス空間ブロックリストから第1のブロック
を取り除き、そのアドレス空間オリジンを、オペレーテ
ィングタスクのためのセグメントテーブルオリジンとし
て使用する。あるアドレス空間が割当て解除された時に
は、このアドレス空間ブロックは待ち行列の最下列に戻
される。
【0019】TLB入力テーブル208は、特定のアド
レス空間内のみにおいて有効である。TLB入力は、デ
ィスパッチされようとするアドレス空間が前に使用され
ており、かつTLB内に入力を残した場合においてのみ
問題を生じさせ得る。この場合、STO及び仮想アドレ
スはTLB入力を適合させ得るが、無効な実アドレスを
指すこともある。アドレス空間が異なるタスクによって
使用された場合、仮想アドレスから絶対アドレスへの無
効変換が生じることもある。従って、システムは、アド
レス空間が再使用される前に、TLBが消去(パージ)
されることを確実としなければならない。要求に応じて
TLBがパージされる場合、システムは、TLBが有効
であることを確実とし得る。
レス空間内のみにおいて有効である。TLB入力は、デ
ィスパッチされようとするアドレス空間が前に使用され
ており、かつTLB内に入力を残した場合においてのみ
問題を生じさせ得る。この場合、STO及び仮想アドレ
スはTLB入力を適合させ得るが、無効な実アドレスを
指すこともある。アドレス空間が異なるタスクによって
使用された場合、仮想アドレスから絶対アドレスへの無
効変換が生じることもある。従って、システムは、アド
レス空間が再使用される前に、TLBが消去(パージ)
されることを確実としなければならない。要求に応じて
TLBがパージされる場合、システムは、TLBが有効
であることを確実とし得る。
【0020】本発明によれば、アドレス空間割当てメカ
ニズムは、TLBパージの数を最小限とするために用い
られる。本発明は、アドレス空間が再使用される前に、
TLBがパージされたことを確実とすることをチェック
するためのプロセスを付け加える。このプロセスは、初
期化の時とTLBがパージされた時は必ずアドレス空間
待ち行列内にマーカーを配置することによって、実行さ
れる。このマーカーは待ち行列の最下列に配置され、次
いでアドレス空間が割当てられ、そして割当て解除され
るごとに、待ち行列の最上列へと徐々に上がって行く。
待ち行列の最上列において、アドレス空間割当てメカニ
ズムがこのマーカーを検出した時には、”purge TL
B”(TLBをパージせよ)(PLTB)の命令が実行
される。
ニズムは、TLBパージの数を最小限とするために用い
られる。本発明は、アドレス空間が再使用される前に、
TLBがパージされたことを確実とすることをチェック
するためのプロセスを付け加える。このプロセスは、初
期化の時とTLBがパージされた時は必ずアドレス空間
待ち行列内にマーカーを配置することによって、実行さ
れる。このマーカーは待ち行列の最下列に配置され、次
いでアドレス空間が割当てられ、そして割当て解除され
るごとに、待ち行列の最上列へと徐々に上がって行く。
待ち行列の最上列において、アドレス空間割当てメカニ
ズムがこのマーカーを検出した時には、”purge TL
B”(TLBをパージせよ)(PLTB)の命令が実行
される。
【0021】好ましい実施例は、使用可能なアドレス空
間のリストにフルワード(全語)0をマーカーとして配
置する。使用可能なアドレス空間のリストから除去され
た各ブロックは、0か否かを決定するためにテストされ
る。0であった場合は、アドレス空間のリストを管理す
るプロセスが、PLTBロジックを実行し、リストの最
下列にマーカーを戻し、かつリストから次の項目を取り
出す。アドレスリスト処理ロジックは、マーカーのみを
含むリストが空リストであることを認識するように変更
されなければならない。
間のリストにフルワード(全語)0をマーカーとして配
置する。使用可能なアドレス空間のリストから除去され
た各ブロックは、0か否かを決定するためにテストされ
る。0であった場合は、アドレス空間のリストを管理す
るプロセスが、PLTBロジックを実行し、リストの最
下列にマーカーを戻し、かつリストから次の項目を取り
出す。アドレスリスト処理ロジックは、マーカーのみを
含むリストが空リストであることを認識するように変更
されなければならない。
【0022】他の実施例においては、マーカーは、アド
レス空間リストに任意の明確な値を配置すること、又は
マーカーを表す余分のフィールドを含むようにアドレス
空間の待ち行列のストラクチュア(構造)を変えること
によって、形成され得る。マーカーをリストへ付け加え
るための多数の公知の技術のいづれが使用されてもよ
く、かつその全てが本発明の範囲を逸脱するものではな
い。
レス空間リストに任意の明確な値を配置すること、又は
マーカーを表す余分のフィールドを含むようにアドレス
空間の待ち行列のストラクチュア(構造)を変えること
によって、形成され得る。マーカーをリストへ付け加え
るための多数の公知の技術のいづれが使用されてもよ
く、かつその全てが本発明の範囲を逸脱するものではな
い。
【0023】複数の密結合型CPU(中央処理装置)を
有する多重処理システムは、これらのCPUが、たと
え、共有記憶装置へアクセスしたとしても、各CPU内
でTLBを保持する。従って、多重処理システムにおい
て、purge TLB(TLBをパージせよ)命令は、多重
プロセッサコンプレックス(複合装置)内の他のプロセ
ッサヘ伝搬されなければならない。
有する多重処理システムは、これらのCPUが、たと
え、共有記憶装置へアクセスしたとしても、各CPU内
でTLBを保持する。従って、多重処理システムにおい
て、purge TLB(TLBをパージせよ)命令は、多重
プロセッサコンプレックス(複合装置)内の他のプロセ
ッサヘ伝搬されなければならない。
【0024】上記のプロセスは、ほとんどの状態におい
て作動するが、このプロセスの使用を使用することがで
きないいくつかの例がある。共通のセグメントが生成さ
れる所では、矛盾した仮想から実へのマッピングが発生
することもあり、これにより、TLBは、ディスパッチ
された各タスクにおいてパージされなければならない。
共通のセグメントが、いくつかのオペレーティングシス
テム内に具備され、これによって、一つの仮想から実へ
のアドレス変換を、複数の異なるアドレス空間から複数
の仮想アドレスへ提供する。このシステムは、一貫性を
確実とするためにこれらの変換を管理するか、又は矛盾
した共通の領域を有するアドレス空間のディスパッチの
合間にTLBをパージするかのいづれかを行わなければ
ならない。
て作動するが、このプロセスの使用を使用することがで
きないいくつかの例がある。共通のセグメントが生成さ
れる所では、矛盾した仮想から実へのマッピングが発生
することもあり、これにより、TLBは、ディスパッチ
された各タスクにおいてパージされなければならない。
共通のセグメントが、いくつかのオペレーティングシス
テム内に具備され、これによって、一つの仮想から実へ
のアドレス変換を、複数の異なるアドレス空間から複数
の仮想アドレスへ提供する。このシステムは、一貫性を
確実とするためにこれらの変換を管理するか、又は矛盾
した共通の領域を有するアドレス空間のディスパッチの
合間にTLBをパージするかのいづれかを行わなければ
ならない。
【0025】本発明による新しいTLB管理手順は、図
5に示されているプロセスに応じて動作する。まず、オ
ペレーティングシステム240から割当てアドレス空間
要求(allocate address space request)を受け取る。
この要求は、処理されるメッセージ、当該特定システム
サービス自体のアドレス空間を要求する特定システムサ
ービスに対する要求、明示的アドレス空間割当てのため
のアプリケーションによる要求、又は、他のタイミング
(時間割付け)された若しくはタイミングされないアド
レス空間空きリスト、の受入れによって行われ得る。ア
ドレス空間の割当ては、個々のオペレーティングシステ
ムのデザインに依存する。
5に示されているプロセスに応じて動作する。まず、オ
ペレーティングシステム240から割当てアドレス空間
要求(allocate address space request)を受け取る。
この要求は、処理されるメッセージ、当該特定システム
サービス自体のアドレス空間を要求する特定システムサ
ービスに対する要求、明示的アドレス空間割当てのため
のアプリケーションによる要求、又は、他のタイミング
(時間割付け)された若しくはタイミングされないアド
レス空間空きリスト、の受入れによって行われ得る。ア
ドレス空間の割当ては、個々のオペレーティングシステ
ムのデザインに依存する。
【0026】アドレスブロック待ち行列300は、ステ
ップ242においてアクセスされる。PTLBマーカー
がステップ244で検出された場合、ステップ246に
おいて、purge TLB(TLBをパージせよ)命令が出
される。ステップ248において、この命令がMP(多
重プロセッサ)コンプレックス(複合装置)である場
合、PTLBメッセージがその他の複数のCPU250
へ送られる。いづれのケースにおいても、PTLBマー
カーは、アドレス待ち行列252の最下列に配置され、
次いで、コントロールはステップ242へ戻り、ここ
で、次のアドレス空間ブロックがアクセスする。PTL
Bマーカーが検出されなかった場合、ステップ254で
アドレス空間が割当てられる。アドレス空間の割当て解
除は、ステップ602において、アドレス空間を空ける
のに必要な作業を実行する(図6)。この作業は、算出
データの収集と、プロセスによって使用される資源をシ
ステムに戻すこととを含む。一旦割当て解除作業が完了
すると、ステップ604において、上記のように、コン
タクトブロックマーカーが空き空間のリスト内に配置さ
れる(FIFO(先入れ先出し)方式のアドレス待ち行
列)。
ップ242においてアクセスされる。PTLBマーカー
がステップ244で検出された場合、ステップ246に
おいて、purge TLB(TLBをパージせよ)命令が出
される。ステップ248において、この命令がMP(多
重プロセッサ)コンプレックス(複合装置)である場
合、PTLBメッセージがその他の複数のCPU250
へ送られる。いづれのケースにおいても、PTLBマー
カーは、アドレス待ち行列252の最下列に配置され、
次いで、コントロールはステップ242へ戻り、ここ
で、次のアドレス空間ブロックがアクセスする。PTL
Bマーカーが検出されなかった場合、ステップ254で
アドレス空間が割当てられる。アドレス空間の割当て解
除は、ステップ602において、アドレス空間を空ける
のに必要な作業を実行する(図6)。この作業は、算出
データの収集と、プロセスによって使用される資源をシ
ステムに戻すこととを含む。一旦割当て解除作業が完了
すると、ステップ604において、上記のように、コン
タクトブロックマーカーが空き空間のリスト内に配置さ
れる(FIFO(先入れ先出し)方式のアドレス待ち行
列)。
【0027】
【発明の効果】本発明は、TLB(変換索引バッファ)
を最小限とすると共に、有効アドレスを常に生じるため
のアドレス分解アクセスを確実とするシステムを提供す
る。
を最小限とすると共に、有効アドレスを常に生じるため
のアドレス分解アクセスを確実とするシステムを提供す
る。
【図1】仮想アドレスのストラクチュアを示す図であ
る。
る。
【図2】コンピュータシステムにおける仮想アドレス解
像度ロジックを示すブロック図である。
像度ロジックを示すブロック図である。
【図3】変換索引バッファ入力の例を示す図である。
【図4】アドレス及び空間割当てロジックを示すブロッ
ク図である。
ク図である。
【図5】本発明による割当てプロセスの図である。
【図6】本発明による割当て解除プロセスの図である。
100 セグメントインデックス 102 ページインデックス 104 オフセット 202 動的アドレス変換メカニズム 204 セグメントテーブル 208 変換索引バッファ 230 STO 232 仮想アドレス 234 実アドレス 240 オペレーショナルシステム 300 アドレスブロック待ち行列
Claims (8)
- 【請求項1】 少なくとも一つのプロセッサと、複数の
アドレス空間を含むメモリとを有するコンピュータシス
テムのための仮想メモリ管理システムであって、前記プ
ロセッサが、仮想アドレス参照を使って、各々が前記複
数のアドレス空間のうちの一つにおける位置を引用する
複数のタスクを実行する前記仮想メモリ管理システムに
おいて、 前記複数のアドレス空間のうちの一つを前記複数のタス
クのうちの一つに割り当てるためのアドレス空間割当て
手段であって、前記アドレス空間割当て手段が、各使用
可能なアドレス空間のための入力を有する使用可能なア
ドレス空間ブロックのFIFO方式管理テーブルを含
み、かつタスク初期化の時に前記複数のタスクのうちの
前記一つのタスクに次の使用可能なアドレス空間を割り
当てるアドレス空間割当て手段と、 仮想アドレス参照を実アドレス参照へ変換するためのア
ドレス変換手段であって、有限数の複数の仮想アドレス
のために、仮想から実へのアドレス変換を含む変換索引
バッファを有するアドレス変換手段と、 前記変換索引バッファをパージするための変換索引バッ
ファパージ手段であって、前記索引バッファがパージさ
れた時は必ず、前記アドレス空間ブロックテーブル内に
パージマーカーを挿入する変換索引バッファパージ手段
と、 前記パージマーカーが、前記アドレス空間割当て手段に
よって検出された時は必ず、前記変換索引バッファパー
ジ手段を作動させるために、前記アドレス空間割当て手
段と結合して動作するパージ要求手段と、 を備える仮想メモリ管理システム。 - 【請求項2】 変換索引バッファパージ要求を他の接続
プロセッサへ連絡する中央プロセッサ連絡手段をさらに
備える請求項1に記載のシステム。 - 【請求項3】 アドレス空間の割当てを解除し、かつア
ドレス空間ブロックの前記テーブルの終わりに入力を付
け加えるアドレス空間割当て解除手段をさらに備える請
求項1に記載のシステム。 - 【請求項4】 少なくとも一つのプロセッサと実メモリ
とを有するコンピュータシステムにおける変換索引バッ
ファを管理するための方法であって、 前記実メモリを前記コンピュータシステムの初期化の時
に複数のアドレス空間へ分割するステップと、 アドレス空間リスト内の前記アドレス空間の各々へポイ
ンタを記憶するステップと、 前記アドレス空間リストの終わりに変換索引バッファパ
ージマーカーを配置するステップと、 前記アドレス空間リスト内に次の入力をアクセスするス
テップと、 前記入力をテストするステップと、 を備え、 前記入力が変換索引バッファパージマーカーである場合
には、 パージ変換索引バッファ命令を送るステップと、 変換索引バッファパージマーカーを前記アドレス空間リ
スト内の終わりに配置するステップと、 前記アクセスステップへ戻るステップと、 全てのケースにおいて、前記アドレス空間テーブル入力
によって指定された前記アドレス空間を割り当てるステ
ップと、 を実行することを備える変換索引バッファ管理方法。 - 【請求項5】 前記アドレス空間の割当てを解除し、か
つ前記割当てが解除されたアドレス空間に対するポイン
タを前記アドレス空間リストへ付け加えるステップをさ
らに有する請求項4に記載の方法。 - 【請求項6】 前記パージ変換索引バッファパージを前
記実メモリを共有する全ての他のプロセッサへ送るステ
ップをさらに備える請求項4に記載の方法。 - 【請求項7】 複数のプロセッサと、実メモリと、仮想
アドレスを実メモリアドレスへ変換するための変換索引
バッファとを有するコンピュータシステムにおいて、変
換索引バッファパージオーバーヘッドを最小とする方法
であって、 前記実メモリからアドレス空間をタスクに割当てるステ
ップと、 前記アドレス空間が最後の変換索引バッファパージ以
降、再使用されているか否かを決定するためにテスト
し、再使用されている場合には前記変換索引バッファを
パージし、次いで前記パージが実行された時を示すイン
ジケータを設定するステップと、 を備える変換索引バッファパージオーバーヘッド最小化
方法。 - 【請求項8】 前記コンピュータシステム内でメモリを
共有する各プロセッサへ前記プロセッサに該プロセッサ
の変換索引バッファをパージすることを命令するメッセ
ージを送るステップをさらに含む請求項7に記載の方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/875,514 US5428757A (en) | 1992-04-29 | 1992-04-29 | Method for reducing translation look aside buffer purges in a multitasking system |
US875514 | 1992-04-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07262092A true JPH07262092A (ja) | 1995-10-13 |
JP2613001B2 JP2613001B2 (ja) | 1997-05-21 |
Family
ID=25365941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5066620A Expired - Lifetime JP2613001B2 (ja) | 1992-04-29 | 1993-03-25 | 仮想メモリ管理システム、変換索引バッファ管理方法、及び変換索引バッファパージオーバーヘッド最小化方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5428757A (ja) |
EP (1) | EP0568195A1 (ja) |
JP (1) | JP2613001B2 (ja) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2806778B2 (ja) * | 1994-01-28 | 1998-09-30 | 甲府日本電気株式会社 | 変換索引バッファクリア命令処理方式 |
US6260130B1 (en) * | 1994-05-11 | 2001-07-10 | International Business Machine Corp. International Property Law | Cache or TLB using a working and auxiliary memory with valid/invalid data field, status field, settable restricted access and a data entry counter |
WO1996027832A1 (en) * | 1995-03-03 | 1996-09-12 | Hal Computer Systems, Inc. | Parallel access micro-tlb to speed up address translation |
US5809522A (en) * | 1995-12-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Microprocessor system with process identification tag entries to reduce cache flushing after a context switch |
JPH09190381A (ja) * | 1996-01-11 | 1997-07-22 | Hitachi Ltd | マルチプロセッサ構成の仮想計算機システム |
US5974509A (en) * | 1996-05-01 | 1999-10-26 | Sun Microsystems, Inc. | Method for purging unused data from a cache memory |
US6134601A (en) * | 1996-06-17 | 2000-10-17 | Networks Associates, Inc. | Computer resource management system |
US6175906B1 (en) * | 1996-12-06 | 2001-01-16 | Advanced Micro Devices, Inc. | Mechanism for fast revalidation of virtual tags |
US6157986A (en) * | 1997-12-16 | 2000-12-05 | Advanced Micro Devices, Inc. | Fast linear tag validation unit for use in microprocessor |
US6681241B1 (en) * | 1999-08-12 | 2004-01-20 | International Business Machines Corporation | Resource contention monitoring employing time-ordered entries in a blocking queue and waiting queue |
US6920519B1 (en) * | 2000-05-10 | 2005-07-19 | International Business Machines Corporation | System and method for supporting access to multiple I/O hub nodes in a host bridge |
US6510508B1 (en) * | 2000-06-15 | 2003-01-21 | Advanced Micro Devices, Inc. | Translation lookaside buffer flush filter |
US7363474B2 (en) * | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
US7127505B2 (en) | 2003-08-15 | 2006-10-24 | Internet Associates, Llc | Methods, computer systems, and computer readable media for generating displays of sets of network addresses with status indicators |
US7330907B2 (en) | 2003-10-02 | 2008-02-12 | Internet Associates, Llc | Methods, computer systems, and computer readable media for controlling the status of network address space |
US7069389B2 (en) * | 2003-11-26 | 2006-06-27 | Microsoft Corporation | Lazy flushing of translation lookaside buffers |
US8621179B2 (en) * | 2004-06-18 | 2013-12-31 | Intel Corporation | Method and system for partial evaluation of virtual address translations in a simulator |
US7281116B2 (en) * | 2004-07-30 | 2007-10-09 | Hewlett-Packard Development Company, L.P. | Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes |
US7299336B2 (en) * | 2004-08-18 | 2007-11-20 | International Business Machines Corporation | Scaling address space utilization in a multi-threaded, multi-processor computer |
US7454590B2 (en) * | 2005-09-09 | 2008-11-18 | Sun Microsystems, Inc. | Multithreaded processor having a source processor core to subsequently delay continued processing of demap operation until responses are received from each of remaining processor cores |
US7383415B2 (en) * | 2005-09-09 | 2008-06-03 | Sun Microsystems, Inc. | Hardware demapping of TLBs shared by multiple threads |
US7631147B2 (en) * | 2006-12-06 | 2009-12-08 | Microsoft Corporation | Efficient flushing of translation lookaside buffers in a multiprocessor environment |
US7788464B2 (en) * | 2006-12-22 | 2010-08-31 | Microsoft Corporation | Scalability of virtual TLBs for multi-processor virtual machines |
US8458438B2 (en) * | 2008-02-26 | 2013-06-04 | International Business Machines Corporation | System, method and computer program product for providing quiesce filtering for shared memory |
US8527715B2 (en) | 2008-02-26 | 2013-09-03 | International Business Machines Corporation | Providing a shared memory translation facility |
US8140834B2 (en) | 2008-02-26 | 2012-03-20 | International Business Machines Corporation | System, method and computer program product for providing a programmable quiesce filtering register |
US8380907B2 (en) * | 2008-02-26 | 2013-02-19 | International Business Machines Corporation | Method, system and computer program product for providing filtering of GUEST2 quiesce requests |
US8412911B2 (en) * | 2009-06-29 | 2013-04-02 | Oracle America, Inc. | System and method to invalidate obsolete address translations |
US8285968B2 (en) | 2009-09-29 | 2012-10-09 | International Business Machines Corporation | Performing memory accesses while omitting unnecessary address translations |
US8880844B1 (en) | 2010-03-12 | 2014-11-04 | Trustees Of Princeton University | Inter-core cooperative TLB prefetchers |
US8595464B2 (en) | 2011-07-14 | 2013-11-26 | Oracle International Corporation | Dynamic sizing of translation lookaside buffer for power reduction |
US10248573B2 (en) | 2016-07-18 | 2019-04-02 | International Business Machines Corporation | Managing memory used to back address translation structures |
US10169243B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation |
US10168902B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing purging of structures associated with address translation |
US10162764B2 (en) | 2016-07-18 | 2018-12-25 | International Business Machines Corporation | Marking page table/page status table entries to indicate memory used to back address translation structures |
US10223281B2 (en) | 2016-07-18 | 2019-03-05 | International Business Machines Corporation | Increasing the scope of local purges of structures associated with address translation |
US10802986B2 (en) | 2016-07-18 | 2020-10-13 | International Business Machines Corporation | Marking to indicate memory used to back address translation structures |
US10180909B2 (en) | 2016-07-18 | 2019-01-15 | International Business Machines Corporation | Host-based resetting of active use of guest page table indicators |
US10176006B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Delaying purging of structures associated with address translation |
US10241924B2 (en) | 2016-07-18 | 2019-03-26 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation using an array of tags |
US10176110B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Marking storage keys to indicate memory used to back address translation structures |
US10282305B2 (en) | 2016-07-18 | 2019-05-07 | International Business Machines Corporation | Selective purging of entries of structures associated with address translation in a virtualized environment |
US10176111B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Host page management using active guest page table indicators |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54111726A (en) * | 1978-02-22 | 1979-09-01 | Hitachi Ltd | Control unit for multiplex virtual memory |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51115737A (en) * | 1975-03-24 | 1976-10-12 | Hitachi Ltd | Adress conversion versus control system |
US4456954A (en) * | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
US4525778A (en) * | 1982-05-25 | 1985-06-25 | Massachusetts Computer Corporation | Computer memory control |
US4682281A (en) * | 1983-08-30 | 1987-07-21 | Amdahl Corporation | Data storage unit employing translation lookaside buffer pointer |
JPS6091462A (ja) * | 1983-10-26 | 1985-05-22 | Toshiba Corp | 演算制御装置 |
US4779188A (en) * | 1983-12-14 | 1988-10-18 | International Business Machines Corporation | Selective guest system purge control |
JPS60254346A (ja) * | 1984-05-31 | 1985-12-16 | Toshiba Corp | マルチプロセツサシステム |
US4757447A (en) * | 1986-07-28 | 1988-07-12 | Amdahl Corporation | Virtual memory system having identity marking for common address space |
US5008811A (en) * | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
US5317705A (en) * | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
-
1992
- 1992-04-29 US US07/875,514 patent/US5428757A/en not_active Expired - Fee Related
-
1993
- 1993-03-25 JP JP5066620A patent/JP2613001B2/ja not_active Expired - Lifetime
- 1993-03-30 EP EP93302453A patent/EP0568195A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54111726A (en) * | 1978-02-22 | 1979-09-01 | Hitachi Ltd | Control unit for multiplex virtual memory |
Also Published As
Publication number | Publication date |
---|---|
US5428757A (en) | 1995-06-27 |
EP0568195A1 (en) | 1993-11-03 |
JP2613001B2 (ja) | 1997-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2613001B2 (ja) | 仮想メモリ管理システム、変換索引バッファ管理方法、及び変換索引バッファパージオーバーヘッド最小化方法 | |
US8151085B2 (en) | Method for address translation in virtual machines | |
US5574936A (en) | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system | |
US5479627A (en) | Virtual address to physical address translation cache that supports multiple page sizes | |
US5918251A (en) | Method and apparatus for preloading different default address translation attributes | |
US5754818A (en) | Architecture and method for sharing TLB entries through process IDS | |
US4742450A (en) | Method to share copy on write segment for mapped files | |
US5852738A (en) | Method and apparatus for dynamically controlling address space allocation | |
US5119290A (en) | Alias address support | |
US6308247B1 (en) | Page table entry management method and apparatus for a microkernel data processing system | |
JP2863693B2 (ja) | 仮想記憶システムにおけるデータ転送装置及びその方法 | |
US6480845B1 (en) | Method and data processing system for emulating virtual memory working spaces | |
US5918250A (en) | Method and apparatus for preloading default address translation attributes | |
US5684993A (en) | Segregation of thread-specific information from shared task information | |
US8386750B2 (en) | Multiprocessor system having processors with different address widths and method for operating the same | |
EP0058844A2 (en) | Address generator for multiple virtual address spaces | |
US9323715B2 (en) | Method and apparatus to represent a processor context with fewer bits | |
CN106021131B (zh) | 存储器管理 | |
US5339417A (en) | Computer system with two levels of guests | |
US6298411B1 (en) | Method and apparatus to share instruction images in a virtual cache | |
US7269825B1 (en) | Method and system for relative address translation | |
EP0805398A1 (en) | Memory management system and method for processor having separate code and data contexts | |
US6961840B2 (en) | Method and apparatus for managing a dynamic alias page table | |
US7337300B2 (en) | Procedure for processing a virtual address for programming a DMA controller and associated system on a chip | |
US20050193169A1 (en) | Memory management |