JPS623357A - Tlb制御方法 - Google Patents
Tlb制御方法Info
- Publication number
- JPS623357A JPS623357A JP61123188A JP12318886A JPS623357A JP S623357 A JPS623357 A JP S623357A JP 61123188 A JP61123188 A JP 61123188A JP 12318886 A JP12318886 A JP 12318886A JP S623357 A JPS623357 A JP S623357A
- Authority
- JP
- Japan
- Prior art keywords
- page
- tlb
- address
- information
- virtual
- 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/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は仮想アドレスから物理アドレスへの変換に用い
られるTLB(Table Lookaside Bu
ffer)のエン) IJの書換を命令によシ明示的に
制御可能なrL8制御方式に関する。
られるTLB(Table Lookaside Bu
ffer)のエン) IJの書換を命令によシ明示的に
制御可能なrL8制御方式に関する。
コンピュータ環境では、仮想アドレスはソフトウェアで
命令やデータに参照をするのに用いられ、他方、物理ア
ドレスは命令やデータが記憶されているメモリの実際の
物理的位置である。この2つの形式のアドレスを用いる
には、ソフトウェアで参照された仮想アドレスが対応す
る物理アドレスのアクセスを生じるように、仮想アドレ
スから物理アドレスへの変換がなされなければならない
。
命令やデータに参照をするのに用いられ、他方、物理ア
ドレスは命令やデータが記憶されているメモリの実際の
物理的位置である。この2つの形式のアドレスを用いる
には、ソフトウェアで参照された仮想アドレスが対応す
る物理アドレスのアクセスを生じるように、仮想アドレ
スから物理アドレスへの変換がなされなければならない
。
一般に、仮想アドレス空間は物理アドレス空間
、11りず′8太き“・仮想7′″′間″′″1”埋
、2アドレス空間は通常、ページと呼ばれる
同じ大き 。
、11りず′8太き“・仮想7′″′間″′″1”埋
、2アドレス空間は通常、ページと呼ばれる
同じ大き 。
さのメモリブロックに分割され−〔いるので、仮想
6.、アドレスから物理アドレスへの変換の過程
で、仮想ページ番号から物理ページ番号への変換が行な
われる。このため、ページ・ディレクトリを用いて仮想
アドレス、物理アドレス間の変換が行なりれる。このペ
ージ・ディレクトリには、仮想ぺ−1′【 ジ番号に対応付けられている物理ページ全てにつき、1
ページ毎に1つのエントリが含まれており、またこのペ
ージ・ディレクトリはメイン・メモリ上に置かれる。従
って変換を行なうためにその都度ページ・ディレクトリ
を直接参照したとすれば。
6.、アドレスから物理アドレスへの変換の過程
で、仮想ページ番号から物理ページ番号への変換が行な
われる。このため、ページ・ディレクトリを用いて仮想
アドレス、物理アドレス間の変換が行なりれる。このペ
ージ・ディレクトリには、仮想ぺ−1′【 ジ番号に対応付けられている物理ページ全てにつき、1
ページ毎に1つのエントリが含まれており、またこのペ
ージ・ディレクトリはメイン・メモリ上に置かれる。従
って変換を行なうためにその都度ページ・ディレクトリ
を直接参照したとすれば。
通常、変換速度は極めて遅くなる。変換速度な向上させ
るために、多くのコンピュータではT L B
戸と呼ばれる高速のバッファ・メモリを用いて仮想
゛t′アドレスから物理アドレスへの変換を
支援する。
るために、多くのコンピュータではT L B
戸と呼ばれる高速のバッファ・メモリを用いて仮想
゛t′アドレスから物理アドレスへの変換を
支援する。
高速のバッファ・メモリの利点は、それに対するメモリ
・アクセスがメイン会メモリへのアクセスよりも通常ず
つと高速であるということである。
・アクセスがメイン会メモリへのアクセスよりも通常ず
つと高速であるということである。
通常、アクセス速度を高速とするためにはバッファ・メ
モリの容量を小さくすることか必要である。
モリの容量を小さくすることか必要である。
多(の場合、’rLBは全ベージ会ディレクトリを収容
することができないので、TLBを更新する手続が必要
となる。T L 8にない仮想ベージがアクセスされる
と、ベージーデ、イレクトリがアクセスされてこの仮想
ベージ番号から物理ベージ番号への変換を行ない、この
情報がl’L8に入れられる。ページ・テーブルへのア
クセスはTLBへのアクセスより50倍程も長くなるこ
とがあるので。
することができないので、TLBを更新する手続が必要
となる。T L 8にない仮想ベージがアクセスされる
と、ベージーデ、イレクトリがアクセスされてこの仮想
ベージ番号から物理ベージ番号への変換を行ない、この
情報がl’L8に入れられる。ページ・テーブルへのア
クセスはTLBへのアクセスより50倍程も長くなるこ
とがあるので。
°プログラム実行速度を最適化、つまり速くするために
は、盛んに利用されているアドレス変換対等のアドレス
変換情報なT L 8に保持しておけばよい。
は、盛んに利用されているアドレス変換対等のアドレス
変換情報なT L 8に保持しておけばよい。
多くのシステムでは、物理メモリはバンキング0メモリ
(baeking memor7wたとえばディスク・
メモリやテープ−メモリ)、メ・イン会メモリおよびキ
ャッシュ・メモリからなる。バンキング・メモリは通常
、メイン・メモリより大きく、それによって、メイン・
メそりしか利用できない場合に較べて大きなプログラム
が実行できる。プログラムの長さおよびメイン・メモリ
に対する他のプログラムとの競合いかんによって、プロ
グラムの一部または全部が一時にメイン1メモリにロー
ドされる。メモリ・アクセス速度を向上させるため罠、
多(のコンピュータはキャッシュ・メモリと呼ばれる付
加メモリを用いる。キャッシュ・メモリは通常、メイン
・メモリよシ高速であるが、とのような高速性を実現す
るためにこれもまた通常。
(baeking memor7wたとえばディスク・
メモリやテープ−メモリ)、メ・イン会メモリおよびキ
ャッシュ・メモリからなる。バンキング・メモリは通常
、メイン・メモリより大きく、それによって、メイン・
メそりしか利用できない場合に較べて大きなプログラム
が実行できる。プログラムの長さおよびメイン・メモリ
に対する他のプログラムとの競合いかんによって、プロ
グラムの一部または全部が一時にメイン1メモリにロー
ドされる。メモリ・アクセス速度を向上させるため罠、
多(のコンピュータはキャッシュ・メモリと呼ばれる付
加メモリを用いる。キャッシュ・メモリは通常、メイン
・メモリよシ高速であるが、とのような高速性を実現す
るためにこれもまた通常。
メイン・メモリよりずっと小さい。従って、通常。
°メイン拳メモリ内のプログラム・セグメントの一部分
しか、メイン・メモリからキャッシュ・メモリヘロード
できない。プログラム実行速度は、現在活発にアクセス
されている仮想アドレスに対する変換情報がTI8にロ
ードされている状態になっているようにすることによっ
て最適化される。
しか、メイン・メモリからキャッシュ・メモリヘロード
できない。プログラム実行速度は、現在活発にアクセス
されている仮想アドレスに対する変換情報がTI8にロ
ードされている状態になっているようにすることによっ
て最適化される。
メモリ・キャッシュ方式という考え方は、あるメモリ・
ロケーションが参照されたら、その近傍の 、
メモリ・ロケーションが近い将来アクセスされる可能性
がかなり高いという事実に立脚している。
ロケーションが参照されたら、その近傍の 、
メモリ・ロケーションが近い将来アクセスされる可能性
がかなり高いという事実に立脚している。
この性質は局所性といわれる。従って、キャッシュ・メ
モリは最近参照されたデータのブロックを記憶し、また
TI8はこれらのページに対応した変換情報を記憶する
。
モリは最近参照されたデータのブロックを記憶し、また
TI8はこれらのページに対応した変換情報を記憶する
。
第5図には、プログラム実行中に仮想アドレスが与えら
れたときの応答動作が示されている。与えられた仮想ア
ドレスの変換情報が’r L B内にある場合(TLB
ヒツト)、対応する物理アドレスがTL、Bから取出さ
れて物理メモリをアクセスするのに用いられる。他方、
仮想アドレスに対する変換情報がTLB内にない場合(
TI、Bミス)。
れたときの応答動作が示されている。与えられた仮想ア
ドレスの変換情報が’r L B内にある場合(TLB
ヒツト)、対応する物理アドレスがTL、Bから取出さ
れて物理メモリをアクセスするのに用いられる。他方、
仮想アドレスに対する変換情報がTLB内にない場合(
TI、Bミス)。
その仮想アドレスに対する変換情報はページ・ブイレフ
) IJ内でサーチされる。その変換情報がページ・デ
ィレクトリ内にある場合、この情報がTLB内に挿入さ
れ、同じ仮想アドレスが再び与えられる。今度はT L
Bヒツトとなり、得られた物理アドレスを用いて物理
メモリをアクセスする。
) IJ内でサーチされる。その変換情報がページ・デ
ィレクトリ内にある場合、この情報がTLB内に挿入さ
れ、同じ仮想アドレスが再び与えられる。今度はT L
Bヒツトとなり、得られた物理アドレスを用いて物理
メモリをアクセスする。
物理アドレスが対応していない仮想アドレス変換情報を
指示する仮想アドレスが与えられた場合には、ページe
ディレクトリにはこのページに対する二ントリがない。
指示する仮想アドレスが与えられた場合には、ページe
ディレクトリにはこのページに対する二ントリがない。
これはページ−フォルトと呼ばれる。ページ・フォルト
が起ったときには、参照された仮想ページに物理ページ
を割当て、またこの情報をページ・ディレクトリに挿入
する。
が起ったときには、参照された仮想ページに物理ページ
を割当て、またこの情報をページ・ディレクトリに挿入
する。
全ての物理ベージが既に他の仮想ページに割当てられて
いる場合には、ページ−フォルト・ハンドラは物理ベー
ジのうち現在参照されている仮想アドレス・ページに割
当て直すべきものを選択する必要がある。このような選
択を行なうにはFIFO減アルゴリズムやLRUアルゴ
リズム等の多くのアルゴリズムがある。以上説明したプ
ロセス全体は1通常マイクロコードで実現されるルーチ
ンよりも複雑であるから、ページ−フォル1−−ハンド
ラは通常ソフトウェアで実現される。マイクロコードは
、マイクロコードなストアするのに用いられる比較的小
型で高速のメモリに収容できるように通常簡単にしてS
く。
いる場合には、ページ−フォルト・ハンドラは物理ベー
ジのうち現在参照されている仮想アドレス・ページに割
当て直すべきものを選択する必要がある。このような選
択を行なうにはFIFO減アルゴリズムやLRUアルゴ
リズム等の多くのアルゴリズムがある。以上説明したプ
ロセス全体は1通常マイクロコードで実現されるルーチ
ンよりも複雑であるから、ページ−フォル1−−ハンド
ラは通常ソフトウェアで実現される。マイクロコードは
、マイクロコードなストアするのに用いられる比較的小
型で高速のメモリに収容できるように通常簡単にしてS
く。
ページ・7オルトーハンドラールーチンの実行が完了し
た後、同じ仮綴アドレスが再び与えられる。TLBはま
だこの仮想アドレス用の変換情報をもっていないので、
T L B ミスがまた発生する。
た後、同じ仮綴アドレスが再び与えられる。TLBはま
だこの仮想アドレス用の変換情報をもっていないので、
T L B ミスがまた発生する。
従って、この変換情報のサーチはページ・ディレクトリ
上で行なわれる。そして、ここで発見された変換情報が
TLBに挿入される。次に同じ仮想アドレスが3回目l
C与えられると、TLBヒツト上述の手続はページ・デ
ィレクトリを2回アクセスしなければならないという欠
点をもっている。
上で行なわれる。そして、ここで発見された変換情報が
TLBに挿入される。次に同じ仮想アドレスが3回目l
C与えられると、TLBヒツト上述の手続はページ・デ
ィレクトリを2回アクセスしなければならないという欠
点をもっている。
このことは、ページ書デイーレクトリ上での変換情報の
サーチが’[’ L B上でのサーチよ950倍も長く
時間がかかる点で不都合である。
サーチが’[’ L B上でのサーチよ950倍も長く
時間がかかる点で不都合である。
本発明は上述した従来技術の欠点を解消し、仮想メモリ
の効率を向上させることを目的とする。
の効率を向上させることを目的とする。
本発明の一実施例によれば、ソフトウェアによりアドレ
ス変換対等の変換情報をTLBに直接に挿入できるよう
にする一組のソフトウェア命令が導入される。これによ
って、ページ・フォルト・ハンドラは、変換情報をペー
ジ・ディレクトIJに挿入するだけでなく、その情報を
TLBに挿入できるようになる。従って、ページ拳フォ
ルト・I〜ンドラ・ルーチンの実行が完了すると、次に
同じ仮想アドレスが与えられたとき’r L ’8ミス
とはならないで、T L Bヒツトが起ることが保証さ
れる。
ス変換対等の変換情報をTLBに直接に挿入できるよう
にする一組のソフトウェア命令が導入される。これによ
って、ページ・フォルト・ハンドラは、変換情報をペー
ジ・ディレクトIJに挿入するだけでなく、その情報を
TLBに挿入できるようになる。従って、ページ拳フォ
ルト・I〜ンドラ・ルーチンの実行が完了すると、次に
同じ仮想アドレスが与えられたとき’r L ’8ミス
とはならないで、T L Bヒツトが起ることが保証さ
れる。
TLBおよびキャッシュ・メモリを用いる多くノコンピ
ュータにおいて、命令用のキャッシュおよびデータ用の
別のキャッシュが設けられるうさらに、その命令用キャ
ッシュおよびデータ用キャッシュに対して別々の’[’
L 8が設けられる。このような構成では、変換情報
を直接データTLBおよび命令’r L Bに挿入する
別々のソフトウェア命令が設けられる。同様に、構成に
よっては、これらの機能はそれぞれ、一対の命令で実現
するのが好都合である。ある構成では、この命令対のう
ちの第1のものは仮想ページ番号とそれに対応した物理
ページ番号の変換を示す情報なTLBに挿入する。第2
の命令は、保護情報、つまりページをアクセスする正当
性を確認するために用いられるフラグあるいは他の情報
なrL8に挿入する。
ュータにおいて、命令用のキャッシュおよびデータ用の
別のキャッシュが設けられるうさらに、その命令用キャ
ッシュおよびデータ用キャッシュに対して別々の’[’
L 8が設けられる。このような構成では、変換情報
を直接データTLBおよび命令’r L Bに挿入する
別々のソフトウェア命令が設けられる。同様に、構成に
よっては、これらの機能はそれぞれ、一対の命令で実現
するのが好都合である。ある構成では、この命令対のう
ちの第1のものは仮想ページ番号とそれに対応した物理
ページ番号の変換を示す情報なTLBに挿入する。第2
の命令は、保護情報、つまりページをアクセスする正当
性を確認するために用いられるフラグあるいは他の情報
なrL8に挿入する。
第2図には、仮想アドレスが与えられたとき′rL8内
のエントリをアクセスするための概念的な構成が図示さ
れている。仮想アドレスはVラスタ21にロードされる
。仮想アドレスの下位Lビットは物理オフセットで 2
L個のロケーションを含む仮想ページ内のどのロケーシ
ョンをアクセスするかを示す。レジスタ21内の残りの
ビットは仮想ページ番号を示す。’r L B 22が
2N個のエントリを含み、仮想アドレス空間が2′8
ページを含む不冥施例では、(M+N)ピット長の仮想
ページ番号を、インデク婿ばれるNビットの数に変換す
るための何らかのアルゴリズムが必要である。第2図に
示された実施例では、仮想ページ番号の最上位ビットを
用いてこれを行なっている。
のエントリをアクセスするための概念的な構成が図示さ
れている。仮想アドレスはVラスタ21にロードされる
。仮想アドレスの下位Lビットは物理オフセットで 2
L個のロケーションを含む仮想ページ内のどのロケーシ
ョンをアクセスするかを示す。レジスタ21内の残りの
ビットは仮想ページ番号を示す。’r L B 22が
2N個のエントリを含み、仮想アドレス空間が2′8
ページを含む不冥施例では、(M+N)ピット長の仮想
ページ番号を、インデク婿ばれるNビットの数に変換す
るための何らかのアルゴリズムが必要である。第2図に
示された実施例では、仮想ページ番号の最上位ビットを
用いてこれを行なっている。
仮想ページ番号の残りのMビットは仮想タグと呼ばれる
。
。
インデクスはTLB22をアクセスするアドレスとして
用いられる。比較器23はレジスタ21からの仮想タグ
をrL822から得られるMビットと比較して一致する
か否か調べる。本実施例では、’r L B 22のM
個の最上位ビットがT L Bタグとなっている。一致
した場合には比較器23の出力は真となり、TLBヒツ
トであることを示も一致しないときには比較器23の出
力は偽で、TLBミスであることを示す。2Pページの
物理メモ ・りをもつ実施例では、各T L B
エン) IJのTLBビットのうちのPビットはそのエ
ントリが対応している物理アドレスを示す。T L B
ヒツトが起つり場合、これらのビットはレジスタ21内
の仮想アドレスに対応付けられた物理ページ番号として
用いられる。仮想アドレスの下位ビットの物理オフセッ
トをこの物理ページ番号と連結して物理アドレスを生成
する。通常、第2図に特に示されたCM+P )aの’
rL8ビニy トf)他に、各’I’ L Bエントリ
は、保護情報やフラグのような各物理ページに対する他
の情報を保持する一組のビットも含 □む。
用いられる。比較器23はレジスタ21からの仮想タグ
をrL822から得られるMビットと比較して一致する
か否か調べる。本実施例では、’r L B 22のM
個の最上位ビットがT L Bタグとなっている。一致
した場合には比較器23の出力は真となり、TLBヒツ
トであることを示も一致しないときには比較器23の出
力は偽で、TLBミスであることを示す。2Pページの
物理メモ ・りをもつ実施例では、各T L B
エン) IJのTLBビットのうちのPビットはそのエ
ントリが対応している物理アドレスを示す。T L B
ヒツトが起つり場合、これらのビットはレジスタ21内
の仮想アドレスに対応付けられた物理ページ番号として
用いられる。仮想アドレスの下位ビットの物理オフセッ
トをこの物理ページ番号と連結して物理アドレスを生成
する。通常、第2図に特に示されたCM+P )aの’
rL8ビニy トf)他に、各’I’ L Bエントリ
は、保護情報やフラグのような各物理ページに対する他
の情報を保持する一組のビットも含 □む。
第3図には、物理アドレスを用いてキャッシュ・メモリ
32をアクセスするための構成を示す。
32をアクセスするための構成を示す。
キャッシュ−メモリ32の各エントリにはMビットのキ
ャッシュ・タグおよび32ビツトのキャッシュ・データ
のセグメントが含まれている。中ヤツシュ・メモリ32
のどのエントリが選択されるかは、レジスタ31にロー
ドされた物理アドレスによって決定される。本実施例で
は、32ビツト・メモリが用いられるので、各エン)
IJは4語のデータを含む。これらの語の中で選択を行
なりために、物理アドレスの最下位2ビットがマルチグ
ンクサ341C対する入力として用いられる。次のN個
の下位ビットはキャッシュ・メモリ・インデクスと呼ば
れ、キャッシュ−メモリ内でアクセスされるアドレスを
選択するのに用いられる。比較器32は、レジスタ31
0M個の最上位ビットを、キャッシュ・メモリーインデ
クスによって指示されたアドレスのキャッシュ・メモリ
・エンドIJ中のM個の最上位ビットと比較する。物理
アドレス中のアドレス−タグがキャッシュ拳メモリ中で
アクセスされたエントリのタグと同じ場合、比較器33
の出力は真となシ、キャッシュ・メモリーヒツトである
ことを示す。同じでない場合は、比較器33の出力は偽
となり、キャッシュ・ミスが起つたことを示す。
ャッシュ・タグおよび32ビツトのキャッシュ・データ
のセグメントが含まれている。中ヤツシュ・メモリ32
のどのエントリが選択されるかは、レジスタ31にロー
ドされた物理アドレスによって決定される。本実施例で
は、32ビツト・メモリが用いられるので、各エン)
IJは4語のデータを含む。これらの語の中で選択を行
なりために、物理アドレスの最下位2ビットがマルチグ
ンクサ341C対する入力として用いられる。次のN個
の下位ビットはキャッシュ・メモリ・インデクスと呼ば
れ、キャッシュ−メモリ内でアクセスされるアドレスを
選択するのに用いられる。比較器32は、レジスタ31
0M個の最上位ビットを、キャッシュ・メモリーインデ
クスによって指示されたアドレスのキャッシュ・メモリ
・エンドIJ中のM個の最上位ビットと比較する。物理
アドレス中のアドレス−タグがキャッシュ拳メモリ中で
アクセスされたエントリのタグと同じ場合、比較器33
の出力は真となシ、キャッシュ・メモリーヒツトである
ことを示す。同じでない場合は、比較器33の出力は偽
となり、キャッシュ・ミスが起つたことを示す。
第4図には、ページ・ディレクト盲)の例が示されてい
る。ベージ−ディレクトリが所与の仮想アドレスに対応
するエントリを含むかどうかをIa認するためにページ
・ディレクトリ内の各エントリを端から順に調べなけれ
ばならない事態を避けるためには、ページ・ディレクト
リのエントリを複数の組に分割するのが有効である。・
・ツクユ・アルゴリズムを用いて仮想アドレスを変換す
ることにより、その仮想アドレスが属する組の先頭のエ
ントリを指すポインタを得ることができる。第4図にお
いて、このようなエントリの組は文字N、B1・−・・
・・Zによって示されている。各組内のエントリはり/
クト・リストを構成しているので、所与の仮想ベージ番
号がベージ参ディレクトリ内に既に挿入されたかどうか
を確認するためには、ページ・ディレクトリ全体をサー
チしなくとも、その関連した組のエンl−17だけを順
次り/りをたどってチェックするだけでよい。その関連
した組内の全てのエントリをチェックしたが、いずれも
サーチされている仮想ページ番号と一致しない場合は、
ページ・フォルトであるということを意味する。
る。ベージ−ディレクトリが所与の仮想アドレスに対応
するエントリを含むかどうかをIa認するためにページ
・ディレクトリ内の各エントリを端から順に調べなけれ
ばならない事態を避けるためには、ページ・ディレクト
リのエントリを複数の組に分割するのが有効である。・
・ツクユ・アルゴリズムを用いて仮想アドレスを変換す
ることにより、その仮想アドレスが属する組の先頭のエ
ントリを指すポインタを得ることができる。第4図にお
いて、このようなエントリの組は文字N、B1・−・・
・・Zによって示されている。各組内のエントリはり/
クト・リストを構成しているので、所与の仮想ベージ番
号がベージ参ディレクトリ内に既に挿入されたかどうか
を確認するためには、ページ・ディレクトリ全体をサー
チしなくとも、その関連した組のエンl−17だけを順
次り/りをたどってチェックするだけでよい。その関連
した組内の全てのエントリをチェックしたが、いずれも
サーチされている仮想ページ番号と一致しない場合は、
ページ・フォルトであるということを意味する。
第1図には、第2図〜第4図に示されたqJ!素を用い
て、プログラム実行中に仮想アドレスが与えられたとき
の応答手続の流れ図か示されている。
て、プログラム実行中に仮想アドレスが与えられたとき
の応答手続の流れ図か示されている。
ステップ51では、仮想アドレスがレジスタ21に与え
られる。その仮想アドレスについての変換情報が’L’
L B内に存在する場合(T L Bヒツトという)
、それに対応した物理アドレスがT L B b)ら取
出され、ステップ52で物理メモリをアクセスするのに
用いられる。その仮想アドレスについての変換情報が[
’Lt3内に存在しない場合(TLBミスという)、ス
テップ53でその仮想アドレスについての変換情報をペ
ージ・ポインタl−IJ内でサーチする。この変換情報
がページ・ディレクトリ内にあった場合には、ステップ
54で、この ゛□情報をT L B内に挿入
し、同じ仮想アドレスを再び与える。今度はT L 8
ヒツトが起るので、ここで得られる物理アドレスが物理
メモリをアクセスするのに用いられる。
られる。その仮想アドレスについての変換情報が’L’
L B内に存在する場合(T L Bヒツトという)
、それに対応した物理アドレスがT L B b)ら取
出され、ステップ52で物理メモリをアクセスするのに
用いられる。その仮想アドレスについての変換情報が[
’Lt3内に存在しない場合(TLBミスという)、ス
テップ53でその仮想アドレスについての変換情報をペ
ージ・ポインタl−IJ内でサーチする。この変換情報
がページ・ディレクトリ内にあった場合には、ステップ
54で、この ゛□情報をT L B内に挿入
し、同じ仮想アドレスを再び与える。今度はT L 8
ヒツトが起るので、ここで得られる物理アドレスが物理
メモリをアクセスするのに用いられる。
仮想アドレスが物理アドレスのどのページも対応付けら
れていない仮想アドレスのページを指示している場合、
ページ・ディレクトリにはこのページに対するエントリ
が存在しない。これはページ・7オルトと呼ばれる。ペ
ージ・フォルトが起った場合、ステップ55において、
参照されている仮想ベージに物理ページを割当【る。そ
して。
れていない仮想アドレスのページを指示している場合、
ページ・ディレクトリにはこのページに対するエントリ
が存在しない。これはページ・7オルトと呼ばれる。ペ
ージ・フォルトが起った場合、ステップ55において、
参照されている仮想ベージに物理ページを割当【る。そ
して。
この情報をページ・ポインタ) IJに挿入する。全て
の物理ベージが既に他の仮想ページに対応付けられてい
た場合(は、ページ・フォルト・ハンドラは物理ベージ
のうちから現在参照され−〔いる仮 ゛想アド
レス・ページに再割当をすべきものを選択 □
する必要がある。このような選択のためには、FIFO
アルゴリズムやLRUアルゴリズム等の多くのアルゴリ
ズムがある。このプロセス全体は通常マイクロコードで
実現されるルーチンよりも複雑であるから、ページ・フ
ォルト−ハンドラは普通はソフトウェアで実現される。
の物理ベージが既に他の仮想ページに対応付けられてい
た場合(は、ページ・フォルト・ハンドラは物理ベージ
のうちから現在参照され−〔いる仮 ゛想アド
レス・ページに再割当をすべきものを選択 □
する必要がある。このような選択のためには、FIFO
アルゴリズムやLRUアルゴリズム等の多くのアルゴリ
ズムがある。このプロセス全体は通常マイクロコードで
実現されるルーチンよりも複雑であるから、ページ・フ
ォルト−ハンドラは普通はソフトウェアで実現される。
このソフトウェアは変換情報等をTLB内に挿入するこ
とを明示的に指示する命令を含む。このような命令が実
行されるとその直接的かつ確実な結果として、所要情報
がrLBに挿入される。これに対して、第5図に関連し
て述べたようなTLBを更virするだめの従来の構成
では、情報は単にあるソフトウェア命令の実行の間接的
な結果として挿入される。たとえば、仮想アドレスが与
えられると、=r L B内の情報は、’[’ L [
3ヒツトが起ったかT L 13ミスが起ったかによっ
て変化したりしなかったりする。したがって、仮想アド
レスが与えられたことの直接的な結果としての、’r
L Bに確実に然々の結果が残る、ということはない。
とを明示的に指示する命令を含む。このような命令が実
行されるとその直接的かつ確実な結果として、所要情報
がrLBに挿入される。これに対して、第5図に関連し
て述べたようなTLBを更virするだめの従来の構成
では、情報は単にあるソフトウェア命令の実行の間接的
な結果として挿入される。たとえば、仮想アドレスが与
えられると、=r L B内の情報は、’[’ L [
3ヒツトが起ったかT L 13ミスが起ったかによっ
て変化したりしなかったりする。したがって、仮想アド
レスが与えられたことの直接的な結果としての、’r
L Bに確実に然々の結果が残る、ということはない。
TLBへの情報の挿入を明示的に制御することによって
、TLBの内容をこれまでよりも極めて柔軟かつ効果的
に制御できる。ページe7オルトeハンドラ・ルーチン
の最後の部分において、物理ベージ割当てによって得ら
れた変換情報をページ・ディレクトリに挿入することに
加えて、変換情報をT LBに入れることを明示的に指
示するソフトウェア命令を置くことによってこの変換情
報はTLBにも挿入されるよう(なる。これによって、
TLB内の情報を一層効果的に更新することができる。
、TLBの内容をこれまでよりも極めて柔軟かつ効果的
に制御できる。ページe7オルトeハンドラ・ルーチン
の最後の部分において、物理ベージ割当てによって得ら
れた変換情報をページ・ディレクトリに挿入することに
加えて、変換情報をT LBに入れることを明示的に指
示するソフトウェア命令を置くことによってこの変換情
報はTLBにも挿入されるよう(なる。これによって、
TLB内の情報を一層効果的に更新することができる。
第1図の流れ図では、ベージ0デ、イレクトリを高々1
回しかアクセスする必要がない。他方、第5図に示した
従来技術ではページ・フォルトが起った場合はページ番
ディレクトリを2回もアクセスしなければならない。こ
れに加えて、このTLBの特別の制御によって、TLB
の内容をより柔軟に変更できるようになる。たとえば、
複数のエントリをソフトウェアの制御の丁にrLBに挿
入できる。また、TLBエントリを事前にロードして。
回しかアクセスする必要がない。他方、第5図に示した
従来技術ではページ・フォルトが起った場合はページ番
ディレクトリを2回もアクセスしなければならない。こ
れに加えて、このTLBの特別の制御によって、TLB
の内容をより柔軟に変更できるようになる。たとえば、
複数のエントリをソフトウェアの制御の丁にrLBに挿
入できる。また、TLBエントリを事前にロードして。
クリティカル命コード・セクションの実行中にはTLB
フォ、ルトが起きないようにしたり、TLBミスの数を
減らすことによって動作速度を改善したりすることがで
きる。
フォ、ルトが起きないようにしたり、TLBミスの数を
減らすことによって動作速度を改善したりすることがで
きる。
構成によっては、各T L Bエンh IJ内には1つ
のソフトウェア命令で入力できるよりも多くの情報ピン
トが入っている。たとえば、好適実施例では、最大32
ピツトのデータしか単一の命令サイクルで移動できない
。更に全ての命令は単一のサイクル内で動作するように
設計されている。しかし、ここにおいては各7r i、
8エントリは32ビツトよりも長い。したがって、全
ての情報を各エントリへ入れるには複数のソフトウェア
命令が必要である。
のソフトウェア命令で入力できるよりも多くの情報ピン
トが入っている。たとえば、好適実施例では、最大32
ピツトのデータしか単一の命令サイクルで移動できない
。更に全ての命令は単一のサイクル内で動作するように
設計されている。しかし、ここにおいては各7r i、
8エントリは32ビツトよりも長い。したがって、全
ての情報を各エントリへ入れるには複数のソフトウェア
命令が必要である。
各TLBエントリにはそのエン) IJが有効であるか
どうかを示すピントが含まれている。そのビットが設定
されると、そのエントリのTLBタグが与えられた比較
器23は、いかなる仮想アドレスの仮想タグが斗えられ
ても、一致と判定することはないっこれによって、この
エントリ中のまた不完全な情報が使用されるのが防止さ
れる。このような無効の情報は、そのエントリ内に全て
の情報が入力され終ったときには(後述)有効とマーク
されるか、後にTLBの内容の更新の時に置換されるか
のいずれかになる。ある構成では、第1の明示的な’r
L Bエントリ挿入用の命令に応答して、仮想ベージ
番号および物理ページ番号がTLBに挿入される。さら
に、この命令はこのエントリを、無効と設定する。これ
を行なうことにより。
どうかを示すピントが含まれている。そのビットが設定
されると、そのエントリのTLBタグが与えられた比較
器23は、いかなる仮想アドレスの仮想タグが斗えられ
ても、一致と判定することはないっこれによって、この
エントリ中のまた不完全な情報が使用されるのが防止さ
れる。このような無効の情報は、そのエントリ内に全て
の情報が入力され終ったときには(後述)有効とマーク
されるか、後にTLBの内容の更新の時に置換されるか
のいずれかになる。ある構成では、第1の明示的な’r
L Bエントリ挿入用の命令に応答して、仮想ベージ
番号および物理ページ番号がTLBに挿入される。さら
に、この命令はこのエントリを、無効と設定する。これ
を行なうことにより。
この時点で(たとえば、機械故障、時分割環境で生じる
ような外部割込によって)割込が発生して更新1!″”
=:”’cpvrr’:sht、ニーs*vc°1・0
0“1′、j的データは用いることができず、エラーを
生じさせるよ5にする。全ての情報が入力されると、こ
のTLBエントリは有効とマークされる。第2の明示的
なTLB二ンエンIJ挿入用の命令は、許可さアドレス
と保護情報の両者を与える。これにより g
117)iff−により1oエエア1.73□ □′
、′1合をとることにより、データの挿入ミスが起らな
′いようにしている。
日〔発明の効果〕 以上説明したように、本発明によれば、TLB
“の工/トリをソフトウェアによって直接的に挿入
できるので、ページ・フォルトが起った場合のオーバー
ヘッドやコード中の特に高速性を要求される部分の実行
時の’r L 8 <スの低減等を簡単に達成できる。
ような外部割込によって)割込が発生して更新1!″”
=:”’cpvrr’:sht、ニーs*vc°1・0
0“1′、j的データは用いることができず、エラーを
生じさせるよ5にする。全ての情報が入力されると、こ
のTLBエントリは有効とマークされる。第2の明示的
なTLB二ンエンIJ挿入用の命令は、許可さアドレス
と保護情報の両者を与える。これにより g
117)iff−により1oエエア1.73□ □′
、′1合をとることにより、データの挿入ミスが起らな
′いようにしている。
日〔発明の効果〕 以上説明したように、本発明によれば、TLB
“の工/トリをソフトウェアによって直接的に挿入
できるので、ページ・フォルトが起った場合のオーバー
ヘッドやコード中の特に高速性を要求される部分の実行
時の’r L 8 <スの低減等を簡単に達成できる。
なお、本発明は第4図中に示したものとは異なるアドレ
ス変換方式、たとえば、セグメント・テーブルとページ
・テーブルを用いてアドレス変換を行なっているものに
も適用できることは当業者にとっては明らかであろう。
ス変換方式、たとえば、セグメント・テーブルとページ
・テーブルを用いてアドレス変換を行なっているものに
も適用できることは当業者にとっては明らかであろう。
第1図は本発明を用いた場合の仮想アドレスから実アド
レスへの変換処理を示す流れ図、第2図はT L 8を
用いたアドレス変換を説明するためのブロック図、第3
図は物理アドレスを用いたキャッシュ・メモリ・アクセ
ス動作を説明するためのブロック図、第4図はページ・
デ、イVクトリの構成例を示す図、第5図は従来技術に
かかる仮想アドレスから実アドレスへの変換処理を示す
流れ図である。 21:レジスタ。 22:’rLB、 23:比較器。
レスへの変換処理を示す流れ図、第2図はT L 8を
用いたアドレス変換を説明するためのブロック図、第3
図は物理アドレスを用いたキャッシュ・メモリ・アクセ
ス動作を説明するためのブロック図、第4図はページ・
デ、イVクトリの構成例を示す図、第5図は従来技術に
かかる仮想アドレスから実アドレスへの変換処理を示す
流れ図である。 21:レジスタ。 22:’rLB、 23:比較器。
Claims (1)
- TLBにアドレス変換情報を挿入する命令を設けてなる
TLB制御方式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75039085A | 1985-06-28 | 1985-06-28 | |
US750390 | 1985-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS623357A true JPS623357A (ja) | 1987-01-09 |
JPH083805B2 JPH083805B2 (ja) | 1996-01-17 |
Family
ID=25017671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61123188A Expired - Lifetime JPH083805B2 (ja) | 1985-06-28 | 1986-05-28 | Tlb制御方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0212129B1 (ja) |
JP (1) | JPH083805B2 (ja) |
CA (1) | CA1262287A (ja) |
DE (1) | DE3689276T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112011103433T5 (de) | 2010-11-26 | 2013-07-25 | International Business Machines Corporation | Verfahren, System und Programm zum Steuern von Cache-Kohärenz |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2503702B2 (ja) * | 1989-12-19 | 1996-06-05 | 日本電気株式会社 | アドレス変換装置 |
EP0488819B1 (en) * | 1990-11-30 | 1999-01-13 | Kabushiki Kaisha Toshiba | Conditional branch instructions execution apparatus |
DE4410060B4 (de) * | 1993-04-08 | 2006-02-09 | Hewlett-Packard Development Co., L.P., Houston | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse |
US5515522A (en) * | 1994-02-24 | 1996-05-07 | Hewlett-Packard Company | Coherence index generation for use by an input/output adapter located outside of the processor to detect whether the updated version of data resides within the cache |
US8332598B2 (en) | 2005-06-23 | 2012-12-11 | Intel Corporation | Memory micro-tiling request reordering |
US7765366B2 (en) | 2005-06-23 | 2010-07-27 | Intel Corporation | Memory micro-tiling |
US8253751B2 (en) | 2005-06-30 | 2012-08-28 | Intel Corporation | Memory controller interface for micro-tiled memory access |
US7558941B2 (en) | 2005-06-30 | 2009-07-07 | Intel Corporation | Automatic detection of micro-tile enabled memory |
US8878860B2 (en) | 2006-12-28 | 2014-11-04 | Intel Corporation | Accessing memory using multi-tiling |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5189357A (ja) * | 1975-02-03 | 1976-08-05 | ||
JPS5857688A (ja) * | 1981-09-30 | 1983-04-05 | Fujitsu Ltd | 動的アドレス変換制御方式 |
JPS6095658A (ja) * | 1983-10-28 | 1985-05-29 | Toshiba Corp | 仮想記憶制御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE37305E1 (en) * | 1982-12-30 | 2001-07-31 | International Business Machines Corporation | Virtual memory address translation mechanism with controlled data persistence |
-
1986
- 1986-05-28 JP JP61123188A patent/JPH083805B2/ja not_active Expired - Lifetime
- 1986-06-20 EP EP19860108415 patent/EP0212129B1/en not_active Expired - Lifetime
- 1986-06-20 DE DE19863689276 patent/DE3689276T2/de not_active Expired - Lifetime
- 1986-06-27 CA CA000512685A patent/CA1262287A/en not_active Expired
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5189357A (ja) * | 1975-02-03 | 1976-08-05 | ||
JPS5857688A (ja) * | 1981-09-30 | 1983-04-05 | Fujitsu Ltd | 動的アドレス変換制御方式 |
JPS6095658A (ja) * | 1983-10-28 | 1985-05-29 | Toshiba Corp | 仮想記憶制御方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112011103433T5 (de) | 2010-11-26 | 2013-07-25 | International Business Machines Corporation | Verfahren, System und Programm zum Steuern von Cache-Kohärenz |
DE112011103433B4 (de) * | 2010-11-26 | 2019-10-31 | International Business Machines Corporation | Verfahren, System und Programm zum Steuern von Cache-Kohärenz |
Also Published As
Publication number | Publication date |
---|---|
CA1262287A (en) | 1989-10-10 |
DE3689276T2 (de) | 1994-02-24 |
JPH083805B2 (ja) | 1996-01-17 |
EP0212129A3 (en) | 1990-05-30 |
EP0212129B1 (en) | 1993-11-10 |
EP0212129A2 (en) | 1987-03-04 |
DE3689276D1 (de) | 1993-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5060137A (en) | Explicit instructions for control of translation lookaside buffers | |
US5724538A (en) | Computer memory address control apparatus utilizing hashed address tags in page tables which are compared to a combined address tag and index which are longer than the basic data width of the associated computer | |
EP1096385B1 (en) | A method and apparatus for forming an entry address | |
US5119290A (en) | Alias address support | |
US5526504A (en) | Variable page size translation lookaside buffer | |
US5493660A (en) | Software assisted hardware TLB miss handler | |
JPH04232551A (ja) | 多重仮想アドレス変換方法及び装置 | |
US6073226A (en) | System and method for minimizing page tables in virtual memory systems | |
US11775445B2 (en) | Translation support for a virtual cache | |
US11403222B2 (en) | Cache structure using a logical directory | |
US10810134B2 (en) | Sharing virtual and real translations in a virtual cache | |
US6571316B1 (en) | Cache memory array for multiple address spaces | |
JPH08212136A (ja) | 仮想メモリ変換処理を効率的に共有する方法及び装置 | |
JP3045952B2 (ja) | フルアソシアティブ・アドレス変換器 | |
JPS623357A (ja) | Tlb制御方法 | |
EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
KR930001885B1 (ko) | 가상 메모리의 페이지 테이블 | |
JPS623354A (ja) | キヤツシユメモリ・アクセス方式 | |
JPH02101552A (ja) | アドレス変換バッファ処理方式 | |
JPS6324337A (ja) | キャッシュ・メモリ管理方式 | |
JPH10105458A (ja) | キャッシュメモリシステム | |
JPH02113355A (ja) | キャッシュメモリ | |
JP2000181799A (ja) | 動的アドレス変換方法及びプロセッサ | |
JPH0235543A (ja) | ページテーブルエントリ無効化装置 | |
JPH0679294B2 (ja) | アドレス変換方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |