[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH0628262A - ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法 - Google Patents

ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法

Info

Publication number
JPH0628262A
JPH0628262A JP3349827A JP34982791A JPH0628262A JP H0628262 A JPH0628262 A JP H0628262A JP 3349827 A JP3349827 A JP 3349827A JP 34982791 A JP34982791 A JP 34982791A JP H0628262 A JPH0628262 A JP H0628262A
Authority
JP
Japan
Prior art keywords
address
virtual
page table
translation lookaside
lookaside 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.)
Pending
Application number
JP3349827A
Other languages
English (en)
Inventor
Robert Becker
ロバート・ベッカー
Peter Mehring
ピーター・メーリング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0628262A publication Critical patent/JPH0628262A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O

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)【要約】 【目的】 仮想メモリアドレッシングを用いるコンピュ
ータ装置のメモリ管理装置の動作速度を向上させること
である。 【構成】 仮想アドレスを記憶する装置と、各仮想アド
レスに関連する物理的アドレスを記憶する装置とを含
み、物理的アドレスのあるものは、仮想アドレスにより
求められている情報が存在するページを示し、別の物理
的アドレスは、仮想アドレスにより求められている情報
の物理的アドレスが存在するページを示すような、少な
くとも第1のレベルのルックアップテーブルと第2のレ
ベルのルックアップテーブルを有する、仮想メモリに使
用する翻訳ルックアサイドバッファ。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータメモリ管理
装置に関するものであり、更に詳しくいえば、仮想メモ
リアドレッシングを利用するコンピュータメモリ装置に
おいて、仮想アドレスを物理的アドレスへ翻訳する方法
および装置に関するものである。
【0002】
【従来の技術】仮想メモリ装置は、全てのメモリがコン
ピュータ装置の主メモリであるかのように、非常に大量
のメモリのアドレッシングを許すようなものである。そ
のような装置により、実際の主メモリがアドレス可能な
メモリよりも十分に小さい記憶空間で構成されるものと
しても、それを行うことが許される。たとえば、主メモ
リは1メガバイトのランダムアクセスメモリで構成し
て、仮想メモリアドレッシング装置を用いて64メガバ
イトのメモリをアドレスできる。
【0003】仮想メモリ装置は、仮想メモリアドレスを
物理的メモリアドレスへ翻訳するメモリ管理装置を設け
ることによりそれを行う。特定の物理的アドレスを主メ
モリまたは長期記憶装置に置くことができる。求められ
ている情報の物理的アドレスが主メモリ内にあるものと
すると、情報はコンピュータによりアクセスされ、利用
される。物理的アドレスが長期記憶装置内にあるものと
すると、情報は(通常はページと呼ばれるブロックで)
主メモリへ転送され、そこで使用される。この転送は、
新しい情報のための余地をとるために、主メモリから長
期メモリへ別の情報を交換する必要がある。もしそうで
あると、これはメモリ管理装置の制御の下に行われる。
【0004】コンピュータの仮想メモリ装置のために、
コンピュータは非常に大きいアドレス可能な空間を有す
ることができるが、これはコンピュータが迅速に動作す
ることを保証しない。迅速に動作することを保証しな
い。迅速な動作は、部品がどれだけ速く動作するか、お
よびメモリをどれだけ速くアクセスできるかによって決
定される。メモリのアクセス速度は部品の動作速度に依
存するが、仮想アドレスから物理的アドレスへアドレス
を翻訳し、それからメモリから情報を検索するために要
する過程により大きく依存する。基本的な仮想メモリ装
置がルックアップテーブルを構成する。このルックアッ
プテーブルは主メモリに記憶される。アクセスするため
の物理的アドレスを決定するために、メモリ管理装置へ
提供された仮想アドレスが、それらのテーブルに記憶さ
れている値と比較される。しばしばいくつかのレベルの
テーブルがあり、比較には非常に長いシステムクロック
時間を要する。
【0005】この遅れを克服するために、仮想メモリ装
置は、最近用いられたデータと命令を記憶するために非
常に高速の部品を用いるキャッシュメモリをしばしば含
む。プロセッサがそれらのキャッシュメモリを迅速にア
クセスできるように、それらのキャッシュメモリは通常
接続される。任意の情報が主メモリへ行く前に、それら
のキャッシュはプロセッサによってまず調べられる。そ
れらのキャッシュの理論は、最も最近に用いられた情報
が、他の情報が必要にされる前に、再び必要とされ傾向
がより多くある、ということである。この理論は有効で
あり、キャッシュメモリを用いる多くの装置のヒット率
は90パーセントをこえる。
【0006】しかし、それでもそれらのキャッシュメモ
リを、仮想アドレスを用いて直接に、または翻訳された
物理的アドレスを介して、のようにあるやり方でアドレ
スせねばならない。仮想アドレスによるアドレッシング
は、情報の多重コピーを含む大きな問題をひき起こす。
その情報のあるものは古くて使用できないことがある。
この問題を克服するためには費用がかさむ。したがっ
て、それの経済性のために物理的アドレスによるキャッ
シュアドレッシングが好ましい。このアドレッシングの
態様は、キャッシュメモリをアクセスできる前に仮想ア
ドレスを物理的アドレスへ翻訳することを要求するか
ら、それらのキャッシュメモリを用いる装置は、ページ
テーブル検索過程の全てを行う必要なしに、物理的アド
レスを迅速に提供するための装置を開発した。
【0007】この種の典型的な装置が翻訳ルックアサイ
ドバッファ(TLB)と呼ばれる。翻訳ルックアサイド
バッファは、本質的には関連する物理的アドレスととも
に最近用いられてきた仮想アドレスをキャッシングする
ためのバッファである。そのようなアドレスキャッシュ
は、データと命令を保持しているキャッシュの動作原理
と同じ原理で動作し、最近に用いられたアドレスが他の
アドレスよりも用いられる傾向が大いにある。翻訳ルッ
クアサイドバッファに保持されている仮想アドレスが提
供されると、翻訳ルックアサイドバッファはその情報の
ための物理的アドレスを提供する。その物理的アドレス
が関連するキャッシュ内にあるものとすると、主メモリ
内のページルックアップテーブルを参照するという時間
のかかる手順をふむ必要なしに、プロセッサはその情報
を直ちに利用できる。
【0008】プロセッサが仮想アドレスを翻訳ルックア
サイドバッファへ送るものとすると、そのアドレスは翻
訳ルックアサイドバッファに含まれず、そうするとメモ
リ管理装置は主メモリ内のルックアップテーブルを用い
てアドレスを検索せねばならない。これを行うために、
典型的なメモリ管理装置は、他のレベルのテーブルを指
定するアドレスを記憶する、ベーステーブルのアドレス
のためのレジスタに頼る。ベーステーブルにおいてメモ
リ管理装置はこのポインタを検索し、それを別のレジス
タに置く。次のレベルのテーブルへ進むために、メモリ
管理装置はこのポインタを用いる。求められている情報
の物理的アドレスが回復されるまでこの操作が続けられ
る。物理的アドレスが回復されると、そのアドレスを次
に必要とする時にそれをただちに利用できるように、そ
のアドレスは仮想アドレスとともに翻訳ルックアサイド
バッファに記憶される。情報が回復されると、その情報
は物理的アドレスの下にキャッシュに記憶される。これ
は情報を次に使用する時に多くの時間を節約する。とい
うのは、ページテーブルにおける典型的なルックアップ
は各レベルの探索において10〜15のクロックサイク
ルを要することがあるのに対して、翻訳ルックアサイド
バッファとキャッシュを用いて情報をアクセスするには
たった1つまたは2つのクロックサイクルを必要とする
だけであるからである。
【0009】そのような装置における困難の1つは、物
理的アドレスが翻訳ルックアサイドバッファにない時
に、ページテーブル検索操作を求められることである。
このことは、特定の検索オペレーションの前にその検索
過程(ポインタを得ること)のほとんどが何回も起きた
としてもそうである。その理由は、種々のレベルのペー
ジテーブルにポインタを格納するために用いられるレジ
スタが、翻訳ルックアサイドバッファとは別の資源内に
あり、1度にただ1つのアドレスポインタを典型的に格
納できるからである。したがって、検索がひとたび開始
されると、横断せねばならない各レベルのテーブルにつ
いての全過程を進む必要がある。すなわち、プロセッサ
は第1のポインタを探し、それを記憶し、次のポインタ
を探すためにそのポインタを用い、それから次のポイン
タを格納し、次にアドレスを探すためにそのポインタを
用いる(うまくいけば)。次の検索過程では、それらの
ポインタの全ては重ね書きされる。アドレスポインタを
記憶するための独立したキャッシュメモリのない従来の
経済的な装置においては、時間のかかるこの過程を短絡
する方法はない。
【0010】翻訳ルックアサイドバッファからページテ
ーブルへ問題を常に委託するばかりでなく、転送せねば
ならない多くのアドレスは翻訳ルックアサイドバッファ
に単に格納されるばかりではない。たとえば、データと
命令に加えて、プロセッサは入力/出力情報をしばしば
取り扱う。この情報はプロセッサにより使用できるが、
一般的には入力/出力プロセッサまたは直接メモリアク
セス装置のような、別のアドレッシング手段によって取
り扱われる。
【0011】したがって、データと命令のために別々の
キャッシュを用い、直接メモリアクセス機能を有する従
来の超高速コンピュータ装置は、キャッシュ内でアドレ
ッシングするために翻訳ルックアサイドバッファの機能
を果たし、主メモリのページテーブルにおいて検索を行
い、かつ入力/出力情報のアドレッシングを管理するた
めに個々のメモリ管理資源を典型的に必要とする。従来
の装置においては、データ、命令および入力/出力機能
を迅速にアドレッシングするために、非常に大量のシリ
コンを必要としていた。更に、従来の装置は十分な数の
状況において望まれるアドレス翻訳速度を持つことがで
きない。
【0012】
【発明が解決しようとする課題】したがって、本発明の
目的は、拡張されたキャッシング装置を用いることによ
り、キャッシュされるデータの増加に通常伴うコストの
増大なしに、仮想メモリアドレッシングを用いるコンピ
ュータ装置のメモリ管理装置の動作速度を向上させるこ
とである。
【0013】本発明の別の目的は、データキャッシュと
命令キャッシュを有する装置においてデータと、命令
と、入力/出力とのためのアドレスの翻訳を取り扱うこ
とができる翻訳ルックアサイドバッファを得ることであ
る。
【0014】
【課題を解決するための手段】本発明のそれらの目的お
よびその他の目的は、データアドレスと、命令アドレス
と、入力/出力アドレスとに対するページテーブルエン
トリイとページテーブルポインタを記憶するために構成
された翻訳ルックアサイドバッファによって実現され
る。ページテーブルエントリイとページテーブルポイン
タを記憶することにより、特定の仮想アドレスが翻訳ル
ックアサイドバッファにないとしてもページテーブルに
完全な検索がなくても翻訳ルックアサイドバッファは全
ての仮想アドレスの非常に高い割合を翻訳できる。
【0015】以下に行う詳細な説明のある部分を、コン
ピュータメモリ内のデータビットについてのオペレーシ
ョンの記号表現で行う。それらの記述と表現は、データ
処理技術における専門家が自己の本質業績を最も効果的
に他人へ伝えるために、その専門家により用いられる手
段である。オペレーションは物理量の物理的取り扱いを
必要とするものである。通常は、それらの量は蓄積、移
動、組み合わせ、比較およびその他の取り扱いができる
電気信号または磁気信号の態様をとるが、そうすること
は必ずしも必要ない。それらの信号をビット、値、素
子、記号、文字、項、数等と呼ぶことが、主として共通
に使用するという理由から、時には便利であることが判
明している。しかし、それらの用語および類似の用語は
適切な物理的なことを表し、そして単なる便利なラベル
であることを記憶すべきである。
【0016】更に、行われる取り扱いは、人のオペレー
タによって行われる精神的な作業に一般的に関連する、
加算または比較のような用語でしばしば呼ばれる。本発
明の部分を形成するここで説明するオペレーションのい
ずれにおいても、人のオペレータのそのような能力はほ
とんどの場合には不必要であり、または望ましくない。
オペレーションは機械によるオペレーションである。本
発明の動作を行うために有用なマシンは汎用デジタルコ
ンピュータその他類似の装置を含む。全ての場合に、コ
ンピュータを動作させる際の方法オペレーションと、計
算自体の方法との違いを記憶しておくべきである。本発
明は電気信号または他の(機械的、化学的、物理的)信
号を処理して他の希望の物理的信号を発生するために、
コンピュータを動作させる方法とに関するものである。
【0017】
【実施例】まず、本発明に従って製造された翻訳ルック
アサイドバッファ10のブロック図が示されている図1
を参照する。この翻訳ルックアサイドバッファ10は、
入来する仮想アドレスと比較する複数の仮想メモリアド
レスを記憶する部分を含む。本発明の好適な実施例にお
いては、部分12は全連想キャッシュに32個の仮想ア
ドレスを記憶するように構成される。この部分12は、
仮想アドレスを記憶するビットに加えて記憶装置も含
む。本発明の好適な実施例においては、それらは、ペー
ジテーブルサーチを行うレベルを指示する3ビットと、
コンテキストを指示する6ビットと、スーパーバイザ制
御を指示するビットと、ページテーブルポインタが翻訳
ルックアサイドバッファ10に記憶されていることを指
示するビットと、入力/出力ビットとを含む。
【0018】本発明により要求されるわけではないが、
本発明の好適な実施例は、おのおのに記憶されている値
との比較を、アドレスを部分12へ単に供給することに
よって行うように、仮想アドレスビットおよびコンテキ
ストタグビットに対する内容をアドレスできるメモリを
利用する。あるいは、求められている仮想アドレスと第
1の部分12に記憶されているビットを比較するため
に、外部の比較器を第1の部分12に組み合わせること
ができる。
【0019】いずれの場合にも、求められている仮想ア
ドレスは3組の入力線14、15、16の1本へ提供さ
れる。線14へ提供されるアドレスはコンピュータ装置
の入力/出力回路によって供給される。線15へ供給さ
れるアドレスは、コンピュータ装置の整数プロセッサに
より供給される命令アドレスである。線16へ提供され
るアドレスは、コンピュータ装置の整数プロセッサによ
り供給されるデータアドレスである。各場合に、求めら
れている最大で20ビットの仮想アドレスが、部分12
と比較するために、部分12へ供給される。求められて
いる特定の種類を指定する制御信号に応答して、特定の
仮想アドレスがマルチプレクサ18により仮想タグ部へ
供給される。たとえば、整数プロセッサ内の命令がデー
タまたは命令として求められている情報を指定し、入力
/出力回路は、求められている情報が入力目的と出力目
的に対するものであることを示す。
【0020】仮想アドレスの高位ビットがマルチプレク
サ18へ供給されるのと同時に、マルチプレクサ20
が、コンテキストタグビット位置内の値と比較されるコ
ンテキストタグを供給する。コンテキストタグはコンテ
キストレジスタ19から供給される。それはメモリ管理
ソフトウェアにより書かれる。データアドレスと命令ア
ドレスに対して(スーパーバイザモードにない時に)、
翻訳ルックアサイドバッファ10におけるヒットである
ように求められているビットに、仮想アドレスタグとコ
ンテキストタグは一致せねばならない。コンテキストタ
グは、種々のソフトウェアプログラムで用いられる複数
の種々のページテーブル群の間で装置が選択できるよう
にするビット群である。装置で走らされている特定の任
意のプログラムに対して、コンテキストタグはプログラ
ム全体にわたって同じままである。本発明の目的のため
に、コンテキストタグは付加アドレスビットと考えるこ
とができる。
【0021】一般に、仮想アドレスビットとコンテキス
トビットが一致すると(好適な実施例においては他のあ
るビットが一致すると仮定している)、物理的アドレス
の上位ビットが出力として供給される。各物理的アドレ
スのそれらの上位ビットは、翻訳ルックアサイドバッフ
ァ10の部分22の、翻訳される仮想アドレスと同じ行
に記憶される。仮想アドレスの下位ビットと物理的アド
レスの下位ビットは同じであって、特定の任意のページ
内のバイトアドレスを指示する。したがって、仮想アド
レスの下位ビットは、翻訳ルックアサイドバッファ10
により供給される物理的ページ数に組み合わされて、完
全な物理的アドレスを供給する。
【0022】以上説明したことは全て非常にすなおなや
り方である。しかし、経済的な装置を製造するために、
本発明の翻訳ルックアサイドバッファ10に記憶されて
いる物理的アドレスは3種類のアドレスである。記憶さ
れている値はページテーブルエントリイ、入力/出力ペ
ージテーブルエントリイ、ページテーブルポインタとす
ることができる。正常なページテーブルエントリイはあ
るエントリイの物理的アドレスおよびそのエントリイの
許可(エントリイをアクセスするために求められるも
の)を与える。ページテーブルエントリイは、従来の翻
訳ルックアサイドバッファにより供給される正常な物理
的ページアドレス情報である。このページアドレスは情
報を得るためにメモリアドレスをアクセスするのに使用
できる。このアドレスはマルチプレクサ21により下位
仮想アドレスビットに組み合わされて、物理的アドレス
レジスタ23に置かれ、翻訳ルックアサイドバッファ1
0においてヒットが起きた時に、物理的にアドレスされ
る2つのキャッシュのいずれかから(またはキャッシュ
ミスが起きた時はメモリから)情報を得る。
【0023】一方、ページテーブルポインタは別のペー
ジテーブルのベース物理的アドレスである。したがっ
て、仮想アドレスのインデックスに組み合わされた時に
指定されるページテーブルポインタは、検索を行うこと
ができる別のページテーブル内のアドレスを指す。ペー
ジテーブルポインタは主メモリ内のアドレスを指すか
ら、(ページテーブルエントリイと同様に)それは物理
的アドレスである。しかし、求められている情報を直ち
にに得るためにはそれは用いられず、別のレベルのペー
ジ翻訳の別の物理的アドレスを得るためにそれは用いら
れる。この別のアドレスは別のページテーブルポインタ
またはページテーブルエントリイ(物理的ページアドレ
ス)とすることができる。それがページテーブルエント
リイであるとすると、物理的アドレスが、最初に求めら
れている仮想アドレスに対して翻訳ルックアサイドバッ
ファに記憶され、求められている情報を得るためにただ
ちに用いられる。他方アドレスがページテーブルポイン
タであれば、次のページテーブルの物理的ベースアドレ
スに対して物理的アドレスが翻訳ルックアサイドバッフ
ァに記憶され、その物理的アドレスが翻訳ルックアサイ
ドバッファ10の第1の部分12に存在するかどうかを
判定するため、翻訳ルックアサイドバッファ10をアク
セスするためにその値が用いられる。
【0024】以上の説明からわかるように、それら2種
類の物理的アドレス情報を得たら、それらの情報を異な
るやり方で取り扱わねばならない。したがって、翻訳ル
ックアサイドバッファ10においてそれらを明確に区別
せねばならない。これを行うために、翻訳ルックアサイ
ドバッファ10の第1の部分12内のそれら2種類の物
理値を指す仮想アドレスを適切に指示し、下記のように
してコンピュータ装置において用いねばならない。たと
えば、仮想アドレスに一致させるために実際に用いられ
るビット数は、ページテーブルポインタが指すページテ
ーブルのレベルに応じて変わる。
【0025】同様のやり方で、入力/出力回路により供
給される仮想アドレスは、他の2つの態様の物理的アド
レスとは異なる取り扱いをせねばならない情報を供給す
る。他の仮想アドレスと同様に、入力/出力目的のため
に用いられる仮想アドレスを、コンピュータ装置により
用いられる時に、適切に指定し、選択せねばならない。
【0026】提供された仮想アドレスビットの種々の部
分を一致させるために、他のフィールドビットのうちの
3つのフィールドビットが用いられる。それらは特定の
仮想メモリ装置内のページのサイズを指定する。当業者
であればわかるように、メモリのページのサイズは、そ
のページを指定するために必要なアドレスのビット数
と、あるページ内のバイトを指定するために必要なビッ
トの数とを決定する。非常に大きいページが1つだけあ
るものとすると、そのページ内のアドレスを指定するた
めに全てのビットが用いられ、かつ、実際に、仮想アド
レスは物理的アドレスである。他方、ページが小さい
と、あるページ内のバイトを指定するためにより少ない
ビットを必要とするが、利用可能なより多くのページか
らページをアドレスするためには多くのビットを必要と
する。したがって、比較が仮想アドレスの特定の数の上
位ビットを含まなければならないことを示すために3つ
のフィールドビットが用いられる。
【0027】本発明の好適な実施例においては、それら
の3レベルのビットは、ページテーブルエントリイの3
つの可能なレベルを指示するために、100、110ま
たは111として符号化される。ページテーブルエント
リイ値が翻訳ルックアサイドバッファ10に記憶される
時は、それらのビットは適切なレベルに常にセットされ
る。本発明の好適な実施例においては、レベル100に
おける最大のページをアドレスするために仮想アドレス
ビット31:24が用いられ、レベル110における次
に大きいページをアドレスするために仮想アドレスビッ
ト31:18が用いられ、レベル111における最小の
ページをアドレスするために仮想アドレスビット31:
12が用いられる。
【0028】エントリイが翻訳ルックアサイドバッファ
10に対して行われた時だけ、それらの各レベル値に対
して最上位ビットが1にセットされるから、このビット
はエントリイの有効性を指示するために考慮することも
できる。これは翻訳ルックアサイドバッファ12の各行
中の付加ビットの必要をなくす。好適な実施例で用いら
れるメモリは内容をアドレスできるメモリであるから、
これは大きな節約である。
【0029】レベルビットに加えて、装置のユーザー制
御ではなくてスーパーバイザを指示するために用いられ
る。本発明のために、データまたは命令アドレスの翻訳
が行われていることを示すためにそのビットが1にさせ
られることを除き、そのビットはオペレーションをする
必要がほとんどない。これにより、アドレスタグの一部
としてコンテキスト部分を使用できるようにされる。翻
訳ルックアサイドバッファに記憶されている入力/出力
アドレスの場合には、そのビットは零のままである。
【0030】レベルビットおよびスーパーバイザビット
に加えて、ページテーブルポインタ(仮想アドレスでは
なくて物理的アドレス)が翻訳ルックアサイドバッファ
10の部分12の特定の行に記憶される。このビット
は、そのポインタが記憶される時に常にセットされ、後
で説明するようにして本発明の使用を容易にする。ペー
ジテーブルポインタ(PTP)ビットにより示されるよ
うにページテーブルポインタが翻訳ルックアサイドバッ
ファに保持されると、レベルビットはそのエントリイに
対してレベルビットが111に常にセットされる。これ
により全アドレスフィールドをページテーブルポインタ
の検索のための入力と比較できるようにされる。これが
要求される理由は、部分12内の翻訳ルックアサイドバ
ッファタグが、全仮想タグアドレスフィールドと全コン
テキストタグフィールドを用いる物理的アドレスだから
である。制御状態マシンが現在のページテーブルレベル
を示す。
【0031】入力アドレス/出力アドレスを取り扱う時
は、他のページテーブルとは別の1つの1レベルテーブ
ルが含まれる。IBARレジスタ29がベースアドレス
を含む。入力/出力制御レジスタが、入力/出力ページ
テーブルの大きさを示し、かつ入力/出力ページテーブ
ル内のアドレスをアクセスするために必要な仮想アドレ
スの下位ビットの数を示すレンジフィールドを含む。物
理的アドレスがひとたび得られると、次に特定の仮想ア
ドレスが入力/出力制御器により供給される時にアドレ
スをただちに利用できるように、入力/出力制御器によ
り発生された仮想アドレスによりその物理的アドレスは
翻訳ルックアサイドバッファ10に再び置かれる。入力
/出力ビットの種類を指示するためにそのビットはその
アドレスに用いられる。
【0032】本発明をもっと良く理解するために、仮想
アドレスに応答する装置の動作を説明する。コンピュー
タに電源が投入されたばかりであるとすると、本発明が
関係する全般的なプロセスは、オペレーティングシステ
ムが主メモリに置かれ、オペレーティングシステムのス
ーパーバイザ部分がページテーブルをセットアップし、
それからメモリ制御機能をメモリ管理装置へ委ねる。こ
の点では、キャッシュまたは翻訳ルックアサイドバッフ
ァ10には何も置かれていない。第1の仮想アドレスが
比較のために翻訳ルックアサイドバッファ10に供給さ
れると、仮想アドレスの適切なビットが、部分12内の
コンテキストタグフィールドと仮想タグフィールドに格
納されているビットと比較される。最初はそこにはどの
アドレスも格納されていないから、キャッシュミスが合
図される。
【0033】入力/出力メモリ管理装置により発生され
る仮想アドレスの場合には、ミスによりIBARレジス
タ29に記憶されている値を用いてベースアドレスが発
生させられる。指されているアドレスは、入力/出力の
アドレッシングのために固有のものである1つのページ
テーブルのベースアドレスである。入力/出力メモリ管
理装置の入力/出力制御レジスタは、入力/出力ページ
テーブルのページの大きさを知らせるフィールドを含
む。この大きさから、エントリイ位置を選択するために
要求される下位の仮想アドレスビットの数が決定され
る。それらの下位ビットとレジスタ29内のベースアド
レスはマルチプレクサ21を用いて組み合わされ、入力
/出力仮想アドレスのための物理的アドレスが入力/出
力ページテーブルにおいて見出される。この値と、それ
を発生させる仮想アドレスは翻訳ルックアサイドバッフ
ァ10に記憶されて、仮想アドレスが次に指示された時
に、物理的アドレスをただちに利用できるようにする。
【0034】一方、翻訳ルックアサイドバッファをミス
させた仮想アドレスが命令またはデータのアドレスであ
るとすると、これはCTPRレジスタ25に記憶されて
いるベースページアドレスとコンテキストレジスタ(C
XR)19に記憶されている6つ下位のビットの組み合
わせにより、ベースアドレスを発生させる。このベース
アドレスは、入力/出力以外の全てのアドレッシングの
ために用いられるページテーブルの最低レベルのテーブ
ル中の語を指す。命令とデータに対しては、このベース
レベルテーブルは、このレベルにおいて利用できるペー
ジのサイズが全仮想メモリを含むから、ページテーブル
ポインタだけを保持することを許される。このレベルが
ページテーブルエントリイ(すなわち、求められている
情報の物理的アドレス)を保持するものとすると、物理
的メモリから仮想メモリへ直接マップされ(各物理的ア
ドレスは1つの固有の仮想アドレスのみにより指示され
る)、仮想メモリを有する理由は全くない。実際に、本
発明は別にして、制御レジスタ内のソフトウェアにより
モードビットが提供される。これは翻訳を実効的にバイ
パスし、装置が等しい物理的メモリへ仮想メモリをセッ
トすることを許す。
【0035】この点において、仮想アドレスは主メモリ
からページテーブルポインタを検索させた。このポイン
タは次のレベルページテーブルのアドレスである。この
ページテーブルポインタは、部分22の物理的アドレス
フィールド内の翻訳ルックアサイドバッファ10に記憶
される。部分12内の翻訳ルックアサイドバッファ10
の同じ行に、CTPRレジスタ25とコンテキストレジ
スタ19内のビットから発生されたベースアドレス(物
理的アドレス)と、翻訳ルックアサイドバッファのタグ
部分が物理的アドレスを含んでいるというPTPビット
における指示と、部分12内のアドレスの3つのフィー
ルドの全ての完全比較を可能にするためのレベルビット
の111へのセットが格納される。更に、ページテーブ
ルポインタが翻訳ルックアサイドバッファ10の部分1
2に格納された時にスーパーバイザビットがセットされ
て、コンテキスト部分を物理的アドレスタグの部分とし
て用いることができるようにする。また、同一の入力/
出力仮想アドレスが、このエントリイと比較された時
に、入力/出力翻訳が異なるページテーブルを用いるか
ら、ヒットしないようにするためにこのエントリイに対
してI/0ビットがクリヤされる。
【0036】物理的アドレスレジスタ23にいぜんとし
て保持されているベースアドレスは翻訳ルックアサイド
バッファ10へ再び供給され、それからヒットが生ず
る。このビットは物理的アドレス部分フィールド23に
ちょうど記憶されているポインタを生ずる。それからこ
のアドレスは物理的アドレスレジスタ23にロードされ
る。物理的アドレスレジスタ23の内容は翻訳ルックア
サイドバッファ部分12と比較され、それからミスが起
こる。ミスを検出すると、制御状態マシンにより示され
ているように、元の仮想アドレスからのインデックスフ
ィールドに組み合わされている物理的アドレスレジスタ
23の内容を用いて主メモリはアクセスされる。この新
しいアドレスはレベル2のページテーブルを指す。これ
はページテーブルエントリイ(翻訳されている物理的ア
ドレスに対応する実際の物理的アドレス)、または次の
レベルのページテーブルに対する物理的アドレスポイン
タを含むページテーブルポインタのいずれかを含むこと
ができる。
【0037】検索されたエントリイがページテーブルエ
ントリイであったとすると、アドレス読み出しの内容
(保護情報を有する物理的アドレス)が翻訳ルックアサ
イドバッファ10の物理的アドレス部分22に記憶され
る。部分12内の翻訳ルックアサイドバッファ10の同
じ行に元の仮想アドレスの20ビット(ビット[26:
12])と、コンテキストレジスタの現在の値と、現在
のページテーブルエントリイが見出されたレベルを示す
レベルビットと、IUマシンの状態に従ってセットされ
るスーパーバイザビットと、PTPビットおよびIOビ
ット(それらはクリヤされる)とが格納される。それか
ら元の翻訳が再び試みられて、最近更新されたヒットと
比較された時にヒットを生ずる。
【0038】一方、主メモリから読み出されたエントリ
イがページテーブルポインタであるとすると、それは翻
訳ルックアサイドバッファ10の物理的アドレス部分2
2に格納される。部分12内の翻訳ルックアサイドバッ
ファ10の同じ行に、物理的アドレスレジスタ23から
読み出されたポインタの物理的アドレスと、翻訳ルック
アサイドバッファ10のタグ部分12が物理的アドレス
を含んでいるというPTPビット内の指示と、ページテ
ーブルポインタの以前のローディングと同一であるスー
パーバイザビットの設定とが含まれる。
【0039】それから、物理的アドレスレジスタ23の
内容が翻訳ルックアサイドバッファ10の部分12と比
較され、ヒットが起こる。このヒットによって、物理的
アドレス部分22のフィールドにちょうど格納されたポ
インタが生じさせられる。この点で、現在のページテー
ブルエントリイを読み出すために主メモリがアクセスさ
れる。このエントリイは、ページテーブルエントリイの
レベルフィールドが現在のページテーブルエントリイを
反映することを除き、以前のページエントリイ読み出し
と同様に処理される。本発明の好適な実施例において
は、3つのページテーブルレベルがサポートされる。し
たがって、第3のレベルのページテーブルだけがページ
テーブルエントリイを含む。したがって、主メモリの3
回目のアクセスの結果としてページテーブルエントリイ
が読み出されることになる。そのページテーブルエント
リイは翻訳ルックアサイドバッファ10に前記のように
して格納される。翻訳ルックアサイドバッファ10への
ページテーブルエントリイの格納に続いて、元の仮想ア
ドレスが常に再試行させられ、その結果としてそれを要
求しているキャッシュのための翻訳されたアドレスとな
る。
【0040】求められている情報の翻訳されたアドレス
がひとたび回復されると、求められている情報が、アド
レスの翻訳を求めていたキャッシュ内にあるかどうかの
判定を助けるためにそのアドレスが用いられる。
【0041】この1つのエントリイが回復された後で翻
訳ルックアサイドバッファ10には、ページテーブルエ
ントリイを有する仮想アドレスばかりでなく、物理的ポ
インタを有するベースアドレスと、対応するページテー
ブルに対する2つまでの付加物理的ポインタとが格納さ
れることに注目すべきである。実際には、ページテーブ
ルに対する第3のポインタを格納することも可能であ
る。第2の仮想アドレスが翻訳ルックアサイドバッファ
10に今供給され、ミスを生じたとすると、これはベー
スアドレスを再び発生させてコンテキストに組み合わ
せ、第2のレベルのテーブルに対するポインタを発生さ
せる。このアドレスは、翻訳ルックアサイドバッファ1
0に格納されているアドレスと比較される。このアドレ
スは、翻訳ルックアサイドバッファ10に記憶されてい
る1つのエントリイの仮想フィールドに存在するから、
次の物理的アドレスを生ずるために、ページテーブルを
初めて歩く時に要する10またはそれ以上のクロック時
間ではなくて、ただ1つのクロック時間を要するだけで
ある。それからこの新しいページテーブルポインタをリ
サイクルすると、次のポインタが別のポインタを生ずる
ことは全くありそうなことである。その別のポインタ
は、この点におけるメモリページのサイズがメモリの1
6メガバイトであるから、翻訳ルックアサイドバッファ
10に記憶される。あるプログラムがその空間より大き
い空間を占めることは全くありそうにないから、第2の
ポインタもおそらく翻訳ルックアサイドバッファ10に
おいて回復されるであろう。最終的には、特定のページ
テーブルエントリイを回復せねばならないが、一般にこ
れは主メモリ内にあるページテーブル内のただ1つの探
索レベルをとる。99パーセント以上にわたって、求め
られているポインタは翻訳ルックアサイドバッファ10
にあることがテストの結果判明している。したがって、
本発明の翻訳ルックアサイドバッファの動作速度は、そ
れが組み合わされているコンピュータ装置の動作速度を
大幅に向上させることがわかる。
【0042】本発明の翻訳ルックアサイドバッファに用
いられる命令キャッシュは、キャッシュされた命令が迅
速に発生されるように、翻訳ルックアサイドバッファと
並列に動作するようにされる。そのために、本発明の好
適な実施例におけるデータキャッシュと命令キャッシュ
はページサイズであって、仮想アドレスと物理的アドレ
スの組み合わせによりアドレスされる。好適な実施例に
おいては、仮想アドレスの最下位ビットが特定のキャッ
シュの行を実際に定め、行中のビットが有効か(正しい
ページから来た)否かを物理的ビットが判定する。これ
を行うために、キャッシュは各エントリイでタグを格納
し、そのタグは、情報を与えたページの物理的アドレス
を含む。これを、翻訳ルックアサイドバッファにより供
給された物理的アドレスと比較するものとすると、キャ
ッシュのヒットが存在する。したがって、たとえば、キ
ャッシュは、命令が存在できる特定の行を予め選択で
き、翻訳ルックアサイドバッファは物理的アドレスを決
定する。物理的アドレスの上位ビットを利用できるもの
とすると、遅れなしに情報を利用できる。
【0043】図2は本発明の使用により節約されるサイ
クルの数を示すタイミング図である。図2は従来技術の
典型的な装置で用いられるサイクル数と、本発明を利用
する装置で用いられるサイクル数を比較する。この図か
らわかるように、マシン動作時間の多くが本発明により
節約される。
【図面の簡単な説明】
【図1】本発明に従って製作された翻訳ルックアサイド
バッファを示すブロック図である。
【図2】本発明の使用により節約されるサイクルの数を
示すタイミング図である。
【符号の説明】
10 翻訳ルックアサイドバッファ 18,20,21 マルチプレクサ 19 コンテキストレジスタ 23 物理的アドレスレジスタ 25 CTPRレジスタ 29 IBARレジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーター・メーリング アメリカ合衆国 01887 マサチューセッ ツ州・ウィルミントン・ルーズヴェルト ロード・11

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 物理的アドレスのあるものは、仮想アド
    レスにより求められている情報が存在するページを示
    し、また物理的アドレスの他のものは、仮想アドレスに
    より求められている情報の物理アドレスが存在するペー
    ジを示すものであって、仮想アドレスを記憶するための
    手段と、各仮想アドレスに関連する物理的アドレスを記
    憶する手段とを備えた少なくとも第1のレベルのページ
    ルックアップテーブルと第2のレベルのページルックア
    ップテーブルとを含む仮想メモリ装置に使用するルック
    アサイドバッファ。
  2. 【請求項2】 関連するページテーブルエントリイを有
    する翻訳ルックアサイドバッファに、ページテーブルエ
    ントリイへ翻訳する仮想アドレスを記憶する過程と、関
    連するページテーブルポインタを有する同じ翻訳ルック
    アサイドバッファに、ページテーブルポインタへ翻訳す
    る仮想アドレスを記憶する過程と、情報が求められてい
    る仮想アドレスを翻訳ルックアサイドバッファに記憶さ
    れている仮想アドレスと比較する過程と、ページテーブ
    ルエントリイへ翻訳する仮想アドレスの比較に応答し
    て、ページテーブルエントリイである物理的アドレスを
    供給する過程と、ページテーブルポインタへ翻訳する仮
    想アドレスの比較に応答して、ページテーブルポインタ
    である物理的アドレスを供給する過程とを備える、コン
    ピュータ装置において仮想から物理的へアドレスを高速
    翻訳する方法。
JP3349827A 1990-12-21 1991-12-10 ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法 Pending JPH0628262A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63196690A 1990-12-21 1990-12-21
US631,966 1990-12-21

Publications (1)

Publication Number Publication Date
JPH0628262A true JPH0628262A (ja) 1994-02-04

Family

ID=24533519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3349827A Pending JPH0628262A (ja) 1990-12-21 1991-12-10 ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法

Country Status (7)

Country Link
US (1) US5426750A (ja)
EP (1) EP0492859A3 (ja)
JP (1) JPH0628262A (ja)
KR (1) KR960001946B1 (ja)
CA (1) CA2057494A1 (ja)
GB (1) GB2251102B (ja)
HK (1) HK155995A (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5696925A (en) * 1992-02-25 1997-12-09 Hyundai Electronics Industries, Co., Ltd. Memory management unit with address translation function
US5586283A (en) * 1993-10-07 1996-12-17 Sun Microsystems, Inc. Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
DE69429503T2 (de) * 1994-03-24 2002-05-16 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Übersetzungsmechanismus für Ein-/Ausgabeadressen
US5535352A (en) * 1994-03-24 1996-07-09 Hewlett-Packard Company Access hints for input/output address translation mechanisms
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system
DE813709T1 (de) * 1995-03-03 1998-10-22 Hal Computer Systems Inc Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
US5918050A (en) * 1995-05-05 1999-06-29 Nvidia Corporation Apparatus accessed at a physical I/O address for address and data translation and for context switching of I/O devices in response to commands from application programs
US5924126A (en) * 1995-05-15 1999-07-13 Nvidia Method and apparatus for providing address translations for input/output operations in a computer system
US5623692A (en) * 1995-05-15 1997-04-22 Nvidia Corporation Architecture for providing input/output operations in a computer system
US5640591A (en) * 1995-05-15 1997-06-17 Nvidia Corporation Method and apparatus for naming input/output devices in a computer system
US5721947A (en) * 1995-05-15 1998-02-24 Nvidia Corporation Apparatus adapted to be joined between the system I/O bus and I/O devices which translates addresses furnished directly by an application program
US6067068A (en) * 1996-04-16 2000-05-23 Canon Business Machines, Inc. Scrollable display window
US5928352A (en) * 1996-09-16 1999-07-27 Intel Corporation Method and apparatus for implementing a fully-associative translation look-aside buffer having a variable numbers of bits representing a virtual address entry
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6108733A (en) * 1998-01-20 2000-08-22 Micron Technology, Inc. Method for extending the available number of configuration registers
US6243775B1 (en) 1998-01-20 2001-06-05 Micron Technology, Inc. System for extending the available number of configuration registers
US6272576B1 (en) 1998-01-20 2001-08-07 Micron Technology, Inc. Method for extending the available number of configuration registers
US6469705B1 (en) * 1999-09-21 2002-10-22 Autodesk Canada Inc. Cache addressing
US6526459B1 (en) * 1999-11-10 2003-02-25 Ati International Srl Allocation of input/output bus address space to native input/output devices
US6366996B1 (en) 2000-01-24 2002-04-02 Pmc-Sierra, Inc. Page memory management in non time critical data buffering applications
US6574689B1 (en) * 2000-03-08 2003-06-03 Intel Corporation Method and apparatus for live-lock prevention
DE60041823D1 (de) * 2000-12-29 2009-04-30 St Microelectronics Srl Ein elektrisch modifizierbarer nichtflüchtiger Halbleiterspeicher der eingeschriebene Daten solange hält, bis ihre Neuprogrammierung abgeschlossen ist
US6728859B1 (en) * 2001-07-13 2004-04-27 Mips Technologies, Inc. Programmable page table access
US20040116969A1 (en) * 2002-08-26 2004-06-17 Owen James M. Pulse detection using patient physiological signals
US7451271B2 (en) * 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
US7822993B2 (en) * 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
US7653802B2 (en) * 2004-08-27 2010-01-26 Microsoft Corporation System and method for using address lines to control memory usage
US7444523B2 (en) 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7734926B2 (en) * 2004-08-27 2010-06-08 Microsoft Corporation System and method for applying security to memory reads and writes
US7444493B2 (en) * 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
EP1736887A3 (fr) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
US7986327B1 (en) 2006-10-23 2011-07-26 Nvidia Corporation Systems for efficient retrieval from tiled memory surface to linear memory display
US7805587B1 (en) * 2006-11-01 2010-09-28 Nvidia Corporation Memory addressing controlled by PTE fields
US20090070570A1 (en) * 2007-09-11 2009-03-12 Shubhodeep Roy Choudhury System and Method for Efficiently Handling Interrupts
US7797650B2 (en) * 2007-09-11 2010-09-14 International Business Machines Corporation System and method for testing SLB and TLB cells during processor design verification and validation
US8099559B2 (en) * 2007-09-11 2012-01-17 International Business Machines Corporation System and method for generating fast instruction and data interrupts for processor design verification and validation
US8006221B2 (en) 2007-09-11 2011-08-23 International Business Machines Corporation System and method for testing multiple processor modes for processor design verification and validation
US7992059B2 (en) * 2007-09-11 2011-08-02 International Business Machines Corporation System and method for testing a large memory area during processor design verification and validation
US8019566B2 (en) * 2007-09-11 2011-09-13 International Business Machines Corporation System and method for efficiently testing cache congruence classes during processor design verification and validation
US8429376B2 (en) * 2008-05-21 2013-04-23 Hewlett-Packard Development Company, L.P. Translation look-aside buffer
US8296547B2 (en) * 2008-08-27 2012-10-23 International Business Machines Corporation Loading entries into a TLB in hardware via indirect TLB entries
US8301863B2 (en) * 2008-11-17 2012-10-30 International Business Machines Corporation Recursive logical partition real memory map
JP2013073270A (ja) * 2011-09-26 2013-04-22 Fujitsu Ltd アドレス変換装置、演算処理装置及び演算処理装置の制御方法
US9256550B2 (en) * 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9864699B1 (en) * 2015-04-14 2018-01-09 Marvell International Ltd. Method and apparatus for compressing LUT
US10489304B2 (en) 2017-07-14 2019-11-26 Arm Limited Memory address translation
US10592424B2 (en) 2017-07-14 2020-03-17 Arm Limited Range-based memory system
US10353826B2 (en) 2017-07-14 2019-07-16 Arm Limited Method and apparatus for fast context cloning in a data processing system
US10613989B2 (en) 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
US10467159B2 (en) * 2017-07-14 2019-11-05 Arm Limited Memory node controller
US10534719B2 (en) * 2017-07-14 2020-01-14 Arm Limited Memory system for a data processing network
US10565126B2 (en) 2017-07-14 2020-02-18 Arm Limited Method and apparatus for two-layer copy-on-write
US10884850B2 (en) 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
GB2582362B (en) * 2019-03-21 2021-08-04 Advanced Risc Mach Ltd Page table structure

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3576543A (en) * 1967-05-03 1971-04-27 English Electric Computers Ltd Data handling arrangements
US3781808A (en) * 1972-10-17 1973-12-25 Ibm Virtual memory system
US3938100A (en) * 1974-06-07 1976-02-10 Control Data Corporation Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques
JPS6017130B2 (ja) * 1980-06-06 1985-05-01 日本電気株式会社 アドレス制御装置
JPS5924485A (ja) * 1982-07-30 1984-02-08 Toshiba Corp 入出力ペ−ジング機構
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
JPS6184754A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 拡張アドレス変換装置
JPS61148551A (ja) * 1984-12-24 1986-07-07 Hitachi Ltd アドレス変換方式
US4763250A (en) * 1985-04-01 1988-08-09 Motorola, Inc. Paged memory management unit having variable number of translation table levels
EP0229253A3 (en) * 1985-11-08 1990-03-14 Nec Corporation Data processor with virtual memory management
US4763244A (en) * 1986-01-15 1988-08-09 Motorola, Inc. Paged memory management unit capable of selectively supporting multiple address spaces
US4890223A (en) * 1986-01-15 1989-12-26 Motorola, Inc. Paged memory management unit which evaluates access permissions when creating translator
US5222222A (en) * 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory

Also Published As

Publication number Publication date
EP0492859A2 (en) 1992-07-01
GB2251102A (en) 1992-06-24
EP0492859A3 (en) 1993-01-13
GB2251102B (en) 1995-03-15
KR920013132A (ko) 1992-07-28
HK155995A (en) 1995-10-13
GB9113733D0 (en) 1991-08-14
CA2057494A1 (en) 1992-06-22
US5426750A (en) 1995-06-20
KR960001946B1 (ko) 1996-02-08

Similar Documents

Publication Publication Date Title
JPH0628262A (ja) ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法
EP0851357B1 (en) Method and apparatus for preloading different default address translation attributes
EP1096385B1 (en) A method and apparatus for forming an entry address
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
KR920005280B1 (ko) 고속 캐쉬 시스템
EP0491498B1 (en) Apparatus and method for a space saving translation lookaside buffer for content addressable memory
US6088780A (en) Page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address
US5361340A (en) Apparatus for maintaining consistency in a multiprocessor computer system using virtual caching
US6012132A (en) Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table
US6490671B1 (en) System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system
EP1941375B1 (en) Caching memory attribute indicators with cached memory data
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US6014732A (en) Cache memory with reduced access time
US6304944B1 (en) Mechanism for storing system level attributes in a translation lookaside buffer
US5060137A (en) Explicit instructions for control of translation lookaside buffers
EP0506236A1 (en) Address translation mechanism
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
JPH10177520A (ja) データプロセッサ及びデータ処理システム
CA2058259C (en) Apparatus for increasing the number of hits in a translation lookaside buffer
US5539892A (en) Address translation lookaside buffer replacement apparatus and method with user override
US5319761A (en) Directory look-aside table for a virtual storage system including means for minimizing synonym entries
EP0212129B1 (en) Method of updating information in a translation lookaside buffer
EP0173909B1 (en) Look-aside buffer least recently used marker controller
JPH0371355A (ja) キヤツシユ検索装置および検索方法
US20040111551A1 (en) Process for emulating associative memory