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