[go: up one dir, main page]

JPH0628262A - Look-aside buffer and method for high-speed translation of virtual address for physical address - Google Patents

Look-aside buffer and method for high-speed translation of virtual address for physical address

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
Japanese (ja)
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/en
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

PURPOSE: To increase the operation speed of the memory management device of a computer device adopting a virtual memory addressing. CONSTITUTION: The translation look-aside buffer 10 used for a virtual memory includes a device for storage of virtual addresses and a device for storage of physinal addresses related to respective virtual addresses and is provided with at least a look-up table of a first level and a look-up table of a second level where some physical addresses indicate pages where information requested by virtual addresses exist and other physical addresses indicate pages where physical addresses of information requested by virtual addresses exist.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明はコンピュータメモリ管理
装置に関するものであり、更に詳しくいえば、仮想メモ
リアドレッシングを利用するコンピュータメモリ装置に
おいて、仮想アドレスを物理的アドレスへ翻訳する方法
および装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer memory management device, and more particularly to a method and device for translating virtual addresses into physical addresses in a computer memory device utilizing virtual memory addressing. is there.

【0002】[0002]

【従来の技術】仮想メモリ装置は、全てのメモリがコン
ピュータ装置の主メモリであるかのように、非常に大量
のメモリのアドレッシングを許すようなものである。そ
のような装置により、実際の主メモリがアドレス可能な
メモリよりも十分に小さい記憶空間で構成されるものと
しても、それを行うことが許される。たとえば、主メモ
リは1メガバイトのランダムアクセスメモリで構成し
て、仮想メモリアドレッシング装置を用いて64メガバ
イトのメモリをアドレスできる。
BACKGROUND OF THE INVENTION Virtual memory devices are those that allow addressing of very large amounts of memory, as if all memory were the main memory of a computer device. Such devices allow it to do so, even if the actual main memory consists of a memory space that is much smaller than the addressable memory. For example, the main memory may consist of 1 megabyte of random access memory and a virtual memory addressing device may be used to address 64 megabytes of memory.

【0003】仮想メモリ装置は、仮想メモリアドレスを
物理的メモリアドレスへ翻訳するメモリ管理装置を設け
ることによりそれを行う。特定の物理的アドレスを主メ
モリまたは長期記憶装置に置くことができる。求められ
ている情報の物理的アドレスが主メモリ内にあるものと
すると、情報はコンピュータによりアクセスされ、利用
される。物理的アドレスが長期記憶装置内にあるものと
すると、情報は(通常はページと呼ばれるブロックで)
主メモリへ転送され、そこで使用される。この転送は、
新しい情報のための余地をとるために、主メモリから長
期メモリへ別の情報を交換する必要がある。もしそうで
あると、これはメモリ管理装置の制御の下に行われる。
Virtual memory devices do this by providing a memory management device that translates virtual memory addresses into physical memory addresses. A particular physical address can be located in main memory or long-term storage. Given that the physical address of the information sought is in main memory, the information is accessed and utilized by the computer. Given that the physical address is in long-term storage, the information is (usually in blocks called pages)
Transferred to main memory and used there. This transfer is
Another information needs to be exchanged from main memory to long-term memory to make room for new information. If so, this is done under the control of the memory manager.

【0004】コンピュータの仮想メモリ装置のために、
コンピュータは非常に大きいアドレス可能な空間を有す
ることができるが、これはコンピュータが迅速に動作す
ることを保証しない。迅速に動作することを保証しな
い。迅速な動作は、部品がどれだけ速く動作するか、お
よびメモリをどれだけ速くアクセスできるかによって決
定される。メモリのアクセス速度は部品の動作速度に依
存するが、仮想アドレスから物理的アドレスへアドレス
を翻訳し、それからメモリから情報を検索するために要
する過程により大きく依存する。基本的な仮想メモリ装
置がルックアップテーブルを構成する。このルックアッ
プテーブルは主メモリに記憶される。アクセスするため
の物理的アドレスを決定するために、メモリ管理装置へ
提供された仮想アドレスが、それらのテーブルに記憶さ
れている値と比較される。しばしばいくつかのレベルの
テーブルがあり、比較には非常に長いシステムクロック
時間を要する。
For the virtual memory device of a computer,
Computers can have very large addressable space, but this does not guarantee that the computer will operate quickly. It is not guaranteed to work quickly. Rapid operation is determined by how fast the part operates and how fast memory can be accessed. The speed of memory access depends on the speed of operation of the components, but to a greater extent on the process required to translate an address from a virtual address to a physical address and then retrieve information from memory. The basic virtual memory device constitutes the look-up table. This look-up table is stored in main memory. The virtual address provided to the memory management unit is compared to the values stored in those tables to determine the physical address to access. Often there are several levels of tables and the comparison takes a very long system clock time.

【0005】この遅れを克服するために、仮想メモリ装
置は、最近用いられたデータと命令を記憶するために非
常に高速の部品を用いるキャッシュメモリをしばしば含
む。プロセッサがそれらのキャッシュメモリを迅速にア
クセスできるように、それらのキャッシュメモリは通常
接続される。任意の情報が主メモリへ行く前に、それら
のキャッシュはプロセッサによってまず調べられる。そ
れらのキャッシュの理論は、最も最近に用いられた情報
が、他の情報が必要にされる前に、再び必要とされ傾向
がより多くある、ということである。この理論は有効で
あり、キャッシュメモリを用いる多くの装置のヒット率
は90パーセントをこえる。
To overcome this delay, virtual memory devices often include cache memory that uses very fast components to store recently used data and instructions. The cache memories are usually connected so that the processors can quickly access them. Before any information goes to main memory, those caches are first examined by the processor. The theory of those caches is that the most recently used information is more likely to be needed again before other information is needed. This theory is valid and the hit rate of many devices using cache memory is over 90 percent.

【0006】しかし、それでもそれらのキャッシュメモ
リを、仮想アドレスを用いて直接に、または翻訳された
物理的アドレスを介して、のようにあるやり方でアドレ
スせねばならない。仮想アドレスによるアドレッシング
は、情報の多重コピーを含む大きな問題をひき起こす。
その情報のあるものは古くて使用できないことがある。
この問題を克服するためには費用がかさむ。したがっ
て、それの経済性のために物理的アドレスによるキャッ
シュアドレッシングが好ましい。このアドレッシングの
態様は、キャッシュメモリをアクセスできる前に仮想ア
ドレスを物理的アドレスへ翻訳することを要求するか
ら、それらのキャッシュメモリを用いる装置は、ページ
テーブル検索過程の全てを行う必要なしに、物理的アド
レスを迅速に提供するための装置を開発した。
However, their cache memories still have to be addressed in some way, such as directly with virtual addresses or via translated physical addresses. Addressing by virtual address poses a major problem including multiple copies of information.
Some of that information may be outdated and unusable.
Overcoming this problem is expensive. Therefore, cache addressing by physical address is preferred because of its economics. This aspect of addressing requires translating virtual addresses into physical addresses before the cache memory can be accessed, so devices that use those cache memories do not have to go through the entire page table lookup process, and We have developed a device for quickly providing a dynamic address.

【0007】この種の典型的な装置が翻訳ルックアサイ
ドバッファ(TLB)と呼ばれる。翻訳ルックアサイド
バッファは、本質的には関連する物理的アドレスととも
に最近用いられてきた仮想アドレスをキャッシングする
ためのバッファである。そのようなアドレスキャッシュ
は、データと命令を保持しているキャッシュの動作原理
と同じ原理で動作し、最近に用いられたアドレスが他の
アドレスよりも用いられる傾向が大いにある。翻訳ルッ
クアサイドバッファに保持されている仮想アドレスが提
供されると、翻訳ルックアサイドバッファはその情報の
ための物理的アドレスを提供する。その物理的アドレス
が関連するキャッシュ内にあるものとすると、主メモリ
内のページルックアップテーブルを参照するという時間
のかかる手順をふむ必要なしに、プロセッサはその情報
を直ちに利用できる。
A typical device of this kind is called a translation lookaside buffer (TLB). A translation lookaside buffer is essentially a buffer for caching recently used virtual addresses along with their associated physical addresses. Such address caches operate on the same principles as caches that hold data and instructions, and more recently used addresses tend to be used more than others. Given the virtual address held in the translation lookaside buffer, the translation lookaside buffer provides the physical address for that information. Given that physical address is in the associated cache, the information is immediately available to the processor without having to go through the time-consuming procedure of looking up the page lookup table in main memory.

【0008】プロセッサが仮想アドレスを翻訳ルックア
サイドバッファへ送るものとすると、そのアドレスは翻
訳ルックアサイドバッファに含まれず、そうするとメモ
リ管理装置は主メモリ内のルックアップテーブルを用い
てアドレスを検索せねばならない。これを行うために、
典型的なメモリ管理装置は、他のレベルのテーブルを指
定するアドレスを記憶する、ベーステーブルのアドレス
のためのレジスタに頼る。ベーステーブルにおいてメモ
リ管理装置はこのポインタを検索し、それを別のレジス
タに置く。次のレベルのテーブルへ進むために、メモリ
管理装置はこのポインタを用いる。求められている情報
の物理的アドレスが回復されるまでこの操作が続けられ
る。物理的アドレスが回復されると、そのアドレスを次
に必要とする時にそれをただちに利用できるように、そ
のアドレスは仮想アドレスとともに翻訳ルックアサイド
バッファに記憶される。情報が回復されると、その情報
は物理的アドレスの下にキャッシュに記憶される。これ
は情報を次に使用する時に多くの時間を節約する。とい
うのは、ページテーブルにおける典型的なルックアップ
は各レベルの探索において10〜15のクロックサイク
ルを要することがあるのに対して、翻訳ルックアサイド
バッファとキャッシュを用いて情報をアクセスするには
たった1つまたは2つのクロックサイクルを必要とする
だけであるからである。
If the processor sends a virtual address to the translation lookaside buffer, the address is not included in the translation lookaside buffer, and the memory manager must then look up the address using a look-up table in main memory. . To do this,
A typical memory management device relies on a register for the address of the base table, which stores the addresses that specify other levels of the table. The memory management unit retrieves this pointer in the base table and places it in another register. The memory manager uses this pointer to advance to the next level table. This operation continues until the physical address of the desired information is recovered. When the physical address is recovered, it is stored in the translation lookaside buffer along with the virtual address so that it is available immediately the next time it is needed. When the information is recovered, it is cached under the physical address. This saves a lot of time the next time the information is used. This is because a typical lookup in a page table can take 10-15 clock cycles for each level of search, while accessing information using translation lookaside buffers and caches was tedious. This is because it only requires one or two clock cycles.

【0009】そのような装置における困難の1つは、物
理的アドレスが翻訳ルックアサイドバッファにない時
に、ページテーブル検索操作を求められることである。
このことは、特定の検索オペレーションの前にその検索
過程(ポインタを得ること)のほとんどが何回も起きた
としてもそうである。その理由は、種々のレベルのペー
ジテーブルにポインタを格納するために用いられるレジ
スタが、翻訳ルックアサイドバッファとは別の資源内に
あり、1度にただ1つのアドレスポインタを典型的に格
納できるからである。したがって、検索がひとたび開始
されると、横断せねばならない各レベルのテーブルにつ
いての全過程を進む必要がある。すなわち、プロセッサ
は第1のポインタを探し、それを記憶し、次のポインタ
を探すためにそのポインタを用い、それから次のポイン
タを格納し、次にアドレスを探すためにそのポインタを
用いる(うまくいけば)。次の検索過程では、それらの
ポインタの全ては重ね書きされる。アドレスポインタを
記憶するための独立したキャッシュメモリのない従来の
経済的な装置においては、時間のかかるこの過程を短絡
する方法はない。
One of the difficulties in such devices is that a page table lookup operation is required when the physical address is not in the translation lookaside buffer.
This is so even if most of the search process (getting a pointer) occurs many times before a particular search operation. The reason is that the registers used to store pointers to different levels of page tables are in a separate resource from the translation lookaside buffer and can typically store only one address pointer at a time. Is. Therefore, once the search is initiated, it is necessary to go through the whole process for each level of table that must be traversed. That is, the processor looks for the first pointer, stores it, uses that pointer to find the next pointer, then stores the next pointer, and then uses that pointer to find the address. If). In the next search process, all of these pointers will be overwritten. In conventional economical devices without a separate cache memory for storing address pointers, there is no way to short-circuit this time-consuming process.

【0010】翻訳ルックアサイドバッファからページテ
ーブルへ問題を常に委託するばかりでなく、転送せねば
ならない多くのアドレスは翻訳ルックアサイドバッファ
に単に格納されるばかりではない。たとえば、データと
命令に加えて、プロセッサは入力/出力情報をしばしば
取り扱う。この情報はプロセッサにより使用できるが、
一般的には入力/出力プロセッサまたは直接メモリアク
セス装置のような、別のアドレッシング手段によって取
り扱われる。
In addition to always delegating problems from the translation lookaside buffer to the page table, many addresses that must be forwarded are not simply stored in the translation lookaside buffer. For example, in addition to data and instructions, processors often handle input / output information. This information is available to the processor,
It is typically handled by another addressing means, such as an input / output processor or direct memory access device.

【0011】したがって、データと命令のために別々の
キャッシュを用い、直接メモリアクセス機能を有する従
来の超高速コンピュータ装置は、キャッシュ内でアドレ
ッシングするために翻訳ルックアサイドバッファの機能
を果たし、主メモリのページテーブルにおいて検索を行
い、かつ入力/出力情報のアドレッシングを管理するた
めに個々のメモリ管理資源を典型的に必要とする。従来
の装置においては、データ、命令および入力/出力機能
を迅速にアドレッシングするために、非常に大量のシリ
コンを必要としていた。更に、従来の装置は十分な数の
状況において望まれるアドレス翻訳速度を持つことがで
きない。
Therefore, conventional ultra-high speed computer systems that use separate caches for data and instructions and have a direct memory access function act as a translation lookaside buffer for addressing in the cache, and in the main memory. Individual memory management resources are typically required to perform lookups in page tables and manage addressing of input / output information. In conventional devices, very large amounts of silicon were needed to quickly address data, instructions and input / output functions. Moreover, conventional devices cannot have the desired address translation speed in a sufficient number of situations.

【0012】[0012]

【発明が解決しようとする課題】したがって、本発明の
目的は、拡張されたキャッシング装置を用いることによ
り、キャッシュされるデータの増加に通常伴うコストの
増大なしに、仮想メモリアドレッシングを用いるコンピ
ュータ装置のメモリ管理装置の動作速度を向上させるこ
とである。
SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a computer system using virtual memory addressing by using an extended caching system, without the added cost typically associated with increasing cached data. It is to improve the operation speed of the memory management device.

【0013】本発明の別の目的は、データキャッシュと
命令キャッシュを有する装置においてデータと、命令
と、入力/出力とのためのアドレスの翻訳を取り扱うこ
とができる翻訳ルックアサイドバッファを得ることであ
る。
Another object of the present invention is to provide a translation lookaside buffer which can handle translation of addresses for data, instructions and inputs / outputs in a device having a data cache and an instruction cache. .

【0014】[0014]

【課題を解決するための手段】本発明のそれらの目的お
よびその他の目的は、データアドレスと、命令アドレス
と、入力/出力アドレスとに対するページテーブルエン
トリイとページテーブルポインタを記憶するために構成
された翻訳ルックアサイドバッファによって実現され
る。ページテーブルエントリイとページテーブルポイン
タを記憶することにより、特定の仮想アドレスが翻訳ル
ックアサイドバッファにないとしてもページテーブルに
完全な検索がなくても翻訳ルックアサイドバッファは全
ての仮想アドレスの非常に高い割合を翻訳できる。
These and other objects of the invention are configured to store page table entries and page table pointers for data addresses, instruction addresses, and input / output addresses. This is realized by the translation lookaside buffer. By storing the page table entry and the page table pointer, the translation lookaside buffer is a very high percentage of all virtual addresses, even if the particular virtual address is not in the translation lookaside buffer and there is no complete lookup in the page table. Can be translated.

【0015】以下に行う詳細な説明のある部分を、コン
ピュータメモリ内のデータビットについてのオペレーシ
ョンの記号表現で行う。それらの記述と表現は、データ
処理技術における専門家が自己の本質業績を最も効果的
に他人へ伝えるために、その専門家により用いられる手
段である。オペレーションは物理量の物理的取り扱いを
必要とするものである。通常は、それらの量は蓄積、移
動、組み合わせ、比較およびその他の取り扱いができる
電気信号または磁気信号の態様をとるが、そうすること
は必ずしも必要ない。それらの信号をビット、値、素
子、記号、文字、項、数等と呼ぶことが、主として共通
に使用するという理由から、時には便利であることが判
明している。しかし、それらの用語および類似の用語は
適切な物理的なことを表し、そして単なる便利なラベル
であることを記憶すべきである。
Certain portions of the detailed description that follows is presented in a symbolic representation of operations on data bits within a computer memory. These descriptions and representations are the means used by those in the data processing arts to most effectively convey the substance of their work to others. Operations are those requiring physical manipulations of physical quantities. Usually, those quantities take the form of electrical or magnetic signals that can be stored, moved, combined, compared and otherwise handled, but this is not necessary. It has been found that sometimes convenient to call these signals bits, values, elements, symbols, characters, terms, numbers, etc., primarily because of their common use. However, it should be remembered that those terms and similar terms represent appropriate physical things and are merely convenient labels.

【0016】更に、行われる取り扱いは、人のオペレー
タによって行われる精神的な作業に一般的に関連する、
加算または比較のような用語でしばしば呼ばれる。本発
明の部分を形成するここで説明するオペレーションのい
ずれにおいても、人のオペレータのそのような能力はほ
とんどの場合には不必要であり、または望ましくない。
オペレーションは機械によるオペレーションである。本
発明の動作を行うために有用なマシンは汎用デジタルコ
ンピュータその他類似の装置を含む。全ての場合に、コ
ンピュータを動作させる際の方法オペレーションと、計
算自体の方法との違いを記憶しておくべきである。本発
明は電気信号または他の(機械的、化学的、物理的)信
号を処理して他の希望の物理的信号を発生するために、
コンピュータを動作させる方法とに関するものである。
Moreover, the handling performed is generally associated with the mental work performed by a human operator,
Often referred to by terms such as addition or comparison. In any of the operations described herein that form part of the present invention, such capabilities of a human operator are in most cases unnecessary or undesirable.
The operation is a machine operation. Machines useful for performing the operations of the present invention include general purpose digital computers and similar devices. In all cases, the differences between the method operations in operating a computer and the method of calculation itself should be remembered. The present invention processes electrical signals or other (mechanical, chemical, physical) signals to generate other desired physical signals,
And a method of operating a computer.

【0017】[0017]

【実施例】まず、本発明に従って製造された翻訳ルック
アサイドバッファ10のブロック図が示されている図1
を参照する。この翻訳ルックアサイドバッファ10は、
入来する仮想アドレスと比較する複数の仮想メモリアド
レスを記憶する部分を含む。本発明の好適な実施例にお
いては、部分12は全連想キャッシュに32個の仮想ア
ドレスを記憶するように構成される。この部分12は、
仮想アドレスを記憶するビットに加えて記憶装置も含
む。本発明の好適な実施例においては、それらは、ペー
ジテーブルサーチを行うレベルを指示する3ビットと、
コンテキストを指示する6ビットと、スーパーバイザ制
御を指示するビットと、ページテーブルポインタが翻訳
ルックアサイドバッファ10に記憶されていることを指
示するビットと、入力/出力ビットとを含む。
1 is a block diagram of a translation lookaside buffer 10 made in accordance with the present invention.
Refer to. This translation lookaside buffer 10
It includes a portion for storing a plurality of virtual memory addresses to compare with the incoming virtual address. In the preferred embodiment of the present invention, portion 12 is configured to store 32 virtual addresses in an all-associative cache. This part 12 is
A storage device is also included in addition to the bit for storing the virtual address. In the preferred embodiment of the invention, they are 3 bits indicating the level at which the page table search is to be performed,
It includes 6 bits indicating context, bits indicating supervisor control, bits indicating that the page table pointer is stored in the translation lookaside buffer 10, and input / output bits.

【0018】本発明により要求されるわけではないが、
本発明の好適な実施例は、おのおのに記憶されている値
との比較を、アドレスを部分12へ単に供給することに
よって行うように、仮想アドレスビットおよびコンテキ
ストタグビットに対する内容をアドレスできるメモリを
利用する。あるいは、求められている仮想アドレスと第
1の部分12に記憶されているビットを比較するため
に、外部の比較器を第1の部分12に組み合わせること
ができる。
Although not required by the present invention,
The preferred embodiment of the present invention utilizes a memory that is capable of addressing the content for virtual address bits and context tag bits, such that each comparison with a stored value is accomplished by simply supplying the address to portion 12. To do. Alternatively, an external comparator can be combined with the first portion 12 to compare the virtual address being sought with the bits stored in the first portion 12.

【0019】いずれの場合にも、求められている仮想ア
ドレスは3組の入力線14、15、16の1本へ提供さ
れる。線14へ提供されるアドレスはコンピュータ装置
の入力/出力回路によって供給される。線15へ供給さ
れるアドレスは、コンピュータ装置の整数プロセッサに
より供給される命令アドレスである。線16へ提供され
るアドレスは、コンピュータ装置の整数プロセッサによ
り供給されるデータアドレスである。各場合に、求めら
れている最大で20ビットの仮想アドレスが、部分12
と比較するために、部分12へ供給される。求められて
いる特定の種類を指定する制御信号に応答して、特定の
仮想アドレスがマルチプレクサ18により仮想タグ部へ
供給される。たとえば、整数プロセッサ内の命令がデー
タまたは命令として求められている情報を指定し、入力
/出力回路は、求められている情報が入力目的と出力目
的に対するものであることを示す。
In any case, the required virtual address is provided on one of the three sets of input lines 14, 15, 16. The address provided on line 14 is provided by the input / output circuitry of the computer system. The address provided on line 15 is the instruction address provided by the integer processor of the computing device. The address provided on line 16 is the data address provided by the integer processor of the computing device. In each case, the maximum required 20-bit virtual address is
Is fed to section 12 for comparison with. A specific virtual address is supplied to the virtual tag section by the multiplexer 18 in response to the control signal designating the specific type being sought. For example, an instruction in an integer processor specifies the data or information sought as the instruction, and the input / output circuitry indicates that the sought information is for input and output purposes.

【0020】仮想アドレスの高位ビットがマルチプレク
サ18へ供給されるのと同時に、マルチプレクサ20
が、コンテキストタグビット位置内の値と比較されるコ
ンテキストタグを供給する。コンテキストタグはコンテ
キストレジスタ19から供給される。それはメモリ管理
ソフトウェアにより書かれる。データアドレスと命令ア
ドレスに対して(スーパーバイザモードにない時に)、
翻訳ルックアサイドバッファ10におけるヒットである
ように求められているビットに、仮想アドレスタグとコ
ンテキストタグは一致せねばならない。コンテキストタ
グは、種々のソフトウェアプログラムで用いられる複数
の種々のページテーブル群の間で装置が選択できるよう
にするビット群である。装置で走らされている特定の任
意のプログラムに対して、コンテキストタグはプログラ
ム全体にわたって同じままである。本発明の目的のため
に、コンテキストタグは付加アドレスビットと考えるこ
とができる。
At the same time that the high order bits of the virtual address are provided to multiplexer 18, multiplexer 20
Provides the context tag that is compared with the value in the context tag bit position. The context tag is supplied from the context register 19. It is written by memory management software. For data address and instruction address (when not in supervisor mode),
The virtual address tag and the context tag must match the bits that are expected to be a hit in the translation lookaside buffer 10. A context tag is a group of bits that allows a device to choose between different page table groups used by different software programs. For any particular program running on the device, the context tag remains the same throughout the program. For the purposes of the present invention, context tags can be considered as additional address bits.

【0021】一般に、仮想アドレスビットとコンテキス
トビットが一致すると(好適な実施例においては他のあ
るビットが一致すると仮定している)、物理的アドレス
の上位ビットが出力として供給される。各物理的アドレ
スのそれらの上位ビットは、翻訳ルックアサイドバッフ
ァ10の部分22の、翻訳される仮想アドレスと同じ行
に記憶される。仮想アドレスの下位ビットと物理的アド
レスの下位ビットは同じであって、特定の任意のページ
内のバイトアドレスを指示する。したがって、仮想アド
レスの下位ビットは、翻訳ルックアサイドバッファ10
により供給される物理的ページ数に組み合わされて、完
全な物理的アドレスを供給する。
In general, if the virtual address bit matches the context bit (assuming some other bit matches in the preferred embodiment), the high order bits of the physical address are provided as output. Those upper bits of each physical address are stored in the portion 22 of the translation lookaside buffer 10 in the same row as the virtual address to be translated. The low order bits of the virtual address and the low order bits of the physical address are the same and indicate a byte address within any particular page. Therefore, the lower bits of the virtual address are stored in the translation lookaside buffer 10.
To provide the complete physical address, combined with the number of physical pages supplied by

【0022】以上説明したことは全て非常にすなおなや
り方である。しかし、経済的な装置を製造するために、
本発明の翻訳ルックアサイドバッファ10に記憶されて
いる物理的アドレスは3種類のアドレスである。記憶さ
れている値はページテーブルエントリイ、入力/出力ペ
ージテーブルエントリイ、ページテーブルポインタとす
ることができる。正常なページテーブルエントリイはあ
るエントリイの物理的アドレスおよびそのエントリイの
許可(エントリイをアクセスするために求められるも
の)を与える。ページテーブルエントリイは、従来の翻
訳ルックアサイドバッファにより供給される正常な物理
的ページアドレス情報である。このページアドレスは情
報を得るためにメモリアドレスをアクセスするのに使用
できる。このアドレスはマルチプレクサ21により下位
仮想アドレスビットに組み合わされて、物理的アドレス
レジスタ23に置かれ、翻訳ルックアサイドバッファ1
0においてヒットが起きた時に、物理的にアドレスされ
る2つのキャッシュのいずれかから(またはキャッシュ
ミスが起きた時はメモリから)情報を得る。
All the above is a very refreshing approach. But in order to manufacture economical equipment,
The physical addresses stored in the translation lookaside buffer 10 of the present invention are three types of addresses. The stored values can be page table entries, input / output page table entries, page table pointers. A normal page table entry provides the physical address of an entry and the permissions for that entry (what is required to access the entry). The page table entry is the normal physical page address information provided by the conventional translation lookaside buffer. This page address can be used to access the memory address for information. This address is combined by the multiplexer 21 with the lower virtual address bits and placed in the physical address register 23, where the translation lookaside buffer 1
When a hit occurs at 0, the information is obtained from either of the two physically addressed caches (or from memory when a cache miss occurs).

【0023】一方、ページテーブルポインタは別のペー
ジテーブルのベース物理的アドレスである。したがっ
て、仮想アドレスのインデックスに組み合わされた時に
指定されるページテーブルポインタは、検索を行うこと
ができる別のページテーブル内のアドレスを指す。ペー
ジテーブルポインタは主メモリ内のアドレスを指すか
ら、(ページテーブルエントリイと同様に)それは物理
的アドレスである。しかし、求められている情報を直ち
にに得るためにはそれは用いられず、別のレベルのペー
ジ翻訳の別の物理的アドレスを得るためにそれは用いら
れる。この別のアドレスは別のページテーブルポインタ
またはページテーブルエントリイ(物理的ページアドレ
ス)とすることができる。それがページテーブルエント
リイであるとすると、物理的アドレスが、最初に求めら
れている仮想アドレスに対して翻訳ルックアサイドバッ
ファに記憶され、求められている情報を得るためにただ
ちに用いられる。他方アドレスがページテーブルポイン
タであれば、次のページテーブルの物理的ベースアドレ
スに対して物理的アドレスが翻訳ルックアサイドバッフ
ァに記憶され、その物理的アドレスが翻訳ルックアサイ
ドバッファ10の第1の部分12に存在するかどうかを
判定するため、翻訳ルックアサイドバッファ10をアク
セスするためにその値が用いられる。
On the other hand, the page table pointer is the base physical address of another page table. Thus, the page table pointer specified when combined with the virtual address index points to an address in another page table that can be searched. Since the page table pointer points to an address in main memory, it is a physical address (similar to a page table entry). However, it is not used to get the required information immediately, but it is used to get another physical address for another level of page translation. This other address may be another page table pointer or page table entry (physical page address). Given that it is a page table entry, the physical address is stored in the translation lookaside buffer for the initially sought virtual address and used immediately to obtain the sought information. On the other hand, if the address is a page table pointer, the physical address is stored in the translation lookaside buffer for the physical base address of the next page table, and the physical address is stored in the first portion 12 of the translation lookaside buffer 10. The value is used to access the translation lookaside buffer 10 to determine if it exists in the.

【0024】以上の説明からわかるように、それら2種
類の物理的アドレス情報を得たら、それらの情報を異な
るやり方で取り扱わねばならない。したがって、翻訳ル
ックアサイドバッファ10においてそれらを明確に区別
せねばならない。これを行うために、翻訳ルックアサイ
ドバッファ10の第1の部分12内のそれら2種類の物
理値を指す仮想アドレスを適切に指示し、下記のように
してコンピュータ装置において用いねばならない。たと
えば、仮想アドレスに一致させるために実際に用いられ
るビット数は、ページテーブルポインタが指すページテ
ーブルのレベルに応じて変わる。
As can be seen from the above description, once these two types of physical address information have been obtained, those information must be handled in different ways. Therefore, they must be clearly distinguished in the translation lookaside buffer 10. To do this, the virtual addresses pointing to those two types of physical values in the first portion 12 of the translation lookaside buffer 10 must be properly pointed to and used in the computer system as follows. For example, the number of bits actually used to match the virtual address varies depending on the level of the page table pointed to by the page table pointer.

【0025】同様のやり方で、入力/出力回路により供
給される仮想アドレスは、他の2つの態様の物理的アド
レスとは異なる取り扱いをせねばならない情報を供給す
る。他の仮想アドレスと同様に、入力/出力目的のため
に用いられる仮想アドレスを、コンピュータ装置により
用いられる時に、適切に指定し、選択せねばならない。
In a similar manner, the virtual address provided by the input / output circuitry provides information that must be treated differently than the other two aspects of the physical address. Like other virtual addresses, the virtual address used for input / output purposes must be properly designated and selected when used by a computing device.

【0026】提供された仮想アドレスビットの種々の部
分を一致させるために、他のフィールドビットのうちの
3つのフィールドビットが用いられる。それらは特定の
仮想メモリ装置内のページのサイズを指定する。当業者
であればわかるように、メモリのページのサイズは、そ
のページを指定するために必要なアドレスのビット数
と、あるページ内のバイトを指定するために必要なビッ
トの数とを決定する。非常に大きいページが1つだけあ
るものとすると、そのページ内のアドレスを指定するた
めに全てのビットが用いられ、かつ、実際に、仮想アド
レスは物理的アドレスである。他方、ページが小さい
と、あるページ内のバイトを指定するためにより少ない
ビットを必要とするが、利用可能なより多くのページか
らページをアドレスするためには多くのビットを必要と
する。したがって、比較が仮想アドレスの特定の数の上
位ビットを含まなければならないことを示すために3つ
のフィールドビットが用いられる。
Three field bits of the other field bits are used to match different parts of the provided virtual address bits. They specify the size of pages within a particular virtual memory device. As one of ordinary skill in the art will appreciate, the size of a page of memory determines the number of bits of the address needed to specify that page and the number of bits needed to specify a byte within a page. . Assuming there is only one very large page, all bits are used to specify the address within that page, and, in fact, the virtual address is the physical address. On the other hand, a smaller page requires fewer bits to specify the bytes within a page, but more bits to address the page from more available pages. Therefore, three field bits are used to indicate that the comparison must include a certain number of high order bits of the virtual address.

【0027】本発明の好適な実施例においては、それら
の3レベルのビットは、ページテーブルエントリイの3
つの可能なレベルを指示するために、100、110ま
たは111として符号化される。ページテーブルエント
リイ値が翻訳ルックアサイドバッファ10に記憶される
時は、それらのビットは適切なレベルに常にセットされ
る。本発明の好適な実施例においては、レベル100に
おける最大のページをアドレスするために仮想アドレス
ビット31:24が用いられ、レベル110における次
に大きいページをアドレスするために仮想アドレスビッ
ト31:18が用いられ、レベル111における最小の
ページをアドレスするために仮想アドレスビット31:
12が用いられる。
In the preferred embodiment of the present invention, those three level bits are the three of the page table entries.
Coded as 100, 110 or 111 to indicate one of the possible levels. When the page table entry value is stored in the translation lookaside buffer 10, those bits are always set to the appropriate level. In the preferred embodiment of the invention, virtual address bits 31:24 are used to address the largest page at level 100 and virtual address bits 31:18 are used to address the next larger page at level 110. Used to address the smallest page at level 111, virtual address bits 31:
12 is used.

【0028】エントリイが翻訳ルックアサイドバッファ
10に対して行われた時だけ、それらの各レベル値に対
して最上位ビットが1にセットされるから、このビット
はエントリイの有効性を指示するために考慮することも
できる。これは翻訳ルックアサイドバッファ12の各行
中の付加ビットの必要をなくす。好適な実施例で用いら
れるメモリは内容をアドレスできるメモリであるから、
これは大きな節約である。
This bit is used to indicate the validity of an entry, since the most significant bit is set to 1 for each of those level values only when the entry is made to the translation lookaside buffer 10. You can also consider. This eliminates the need for additional bits in each row of the translation lookaside buffer 12. Since the memory used in the preferred embodiment is a content addressable memory,
This is a big savings.

【0029】レベルビットに加えて、装置のユーザー制
御ではなくてスーパーバイザを指示するために用いられ
る。本発明のために、データまたは命令アドレスの翻訳
が行われていることを示すためにそのビットが1にさせ
られることを除き、そのビットはオペレーションをする
必要がほとんどない。これにより、アドレスタグの一部
としてコンテキスト部分を使用できるようにされる。翻
訳ルックアサイドバッファに記憶されている入力/出力
アドレスの場合には、そのビットは零のままである。
In addition to the level bits, it is used to indicate the supervisor rather than user control of the device. For the purposes of the present invention, the bit needs very little operation, except that the bit is forced to 1 to indicate that a translation of the data or instruction address is taking place. This allows the context part to be used as part of the address tag. For input / output addresses stored in the translation lookaside buffer, that bit remains zero.

【0030】レベルビットおよびスーパーバイザビット
に加えて、ページテーブルポインタ(仮想アドレスでは
なくて物理的アドレス)が翻訳ルックアサイドバッファ
10の部分12の特定の行に記憶される。このビット
は、そのポインタが記憶される時に常にセットされ、後
で説明するようにして本発明の使用を容易にする。ペー
ジテーブルポインタ(PTP)ビットにより示されるよ
うにページテーブルポインタが翻訳ルックアサイドバッ
ファに保持されると、レベルビットはそのエントリイに
対してレベルビットが111に常にセットされる。これ
により全アドレスフィールドをページテーブルポインタ
の検索のための入力と比較できるようにされる。これが
要求される理由は、部分12内の翻訳ルックアサイドバ
ッファタグが、全仮想タグアドレスフィールドと全コン
テキストタグフィールドを用いる物理的アドレスだから
である。制御状態マシンが現在のページテーブルレベル
を示す。
In addition to the level and supervisor bits, the page table pointer (physical address rather than virtual address) is stored in a particular row of portion 12 of the translation lookaside buffer 10. This bit is set whenever the pointer is stored, facilitating use of the invention as described below. When the page table pointer is held in the translation lookaside buffer as indicated by the page table pointer (PTP) bit, the level bit will always be set to 111 for that entry. This allows the entire address field to be compared with the input for searching the page table pointer. This is required because the translation lookaside buffer tag in portion 12 is a physical address that uses all virtual tag address fields and all context tag fields. The control state machine indicates the current page table level.

【0031】入力アドレス/出力アドレスを取り扱う時
は、他のページテーブルとは別の1つの1レベルテーブ
ルが含まれる。IBARレジスタ29がベースアドレス
を含む。入力/出力制御レジスタが、入力/出力ページ
テーブルの大きさを示し、かつ入力/出力ページテーブ
ル内のアドレスをアクセスするために必要な仮想アドレ
スの下位ビットの数を示すレンジフィールドを含む。物
理的アドレスがひとたび得られると、次に特定の仮想ア
ドレスが入力/出力制御器により供給される時にアドレ
スをただちに利用できるように、入力/出力制御器によ
り発生された仮想アドレスによりその物理的アドレスは
翻訳ルックアサイドバッファ10に再び置かれる。入力
/出力ビットの種類を指示するためにそのビットはその
アドレスに用いられる。
When handling input / output addresses, one one-level table separate from the other page tables is included. The IBAR register 29 contains the base address. An input / output control register includes a range field that indicates the size of the input / output page table and indicates the number of low order bits of the virtual address needed to access the address in the input / output page table. Once the physical address is obtained, the physical address is generated by the input / output controller so that the address is immediately available when the particular virtual address is provided by the input / output controller. Are again placed in the translation lookaside buffer 10. That bit is used at that address to indicate the type of input / output bit.

【0032】本発明をもっと良く理解するために、仮想
アドレスに応答する装置の動作を説明する。コンピュー
タに電源が投入されたばかりであるとすると、本発明が
関係する全般的なプロセスは、オペレーティングシステ
ムが主メモリに置かれ、オペレーティングシステムのス
ーパーバイザ部分がページテーブルをセットアップし、
それからメモリ制御機能をメモリ管理装置へ委ねる。こ
の点では、キャッシュまたは翻訳ルックアサイドバッフ
ァ10には何も置かれていない。第1の仮想アドレスが
比較のために翻訳ルックアサイドバッファ10に供給さ
れると、仮想アドレスの適切なビットが、部分12内の
コンテキストタグフィールドと仮想タグフィールドに格
納されているビットと比較される。最初はそこにはどの
アドレスも格納されていないから、キャッシュミスが合
図される。
To better understand the invention, the operation of the device in response to a virtual address will be described. Assuming that the computer has just been powered on, the general process to which the invention pertains is that the operating system resides in main memory, the supervisor part of the operating system sets up the page table,
Then, the memory control function is delegated to the memory management device. At this point, nothing is placed in the cache or translation lookaside buffer 10. When the first virtual address is provided to the translation lookaside buffer 10 for comparison, the appropriate bits of the virtual address are compared with the bits stored in the context tag field and virtual tag field in portion 12. . Initially, no address is stored there, so a cache miss is signaled.

【0033】入力/出力メモリ管理装置により発生され
る仮想アドレスの場合には、ミスによりIBARレジス
タ29に記憶されている値を用いてベースアドレスが発
生させられる。指されているアドレスは、入力/出力の
アドレッシングのために固有のものである1つのページ
テーブルのベースアドレスである。入力/出力メモリ管
理装置の入力/出力制御レジスタは、入力/出力ページ
テーブルのページの大きさを知らせるフィールドを含
む。この大きさから、エントリイ位置を選択するために
要求される下位の仮想アドレスビットの数が決定され
る。それらの下位ビットとレジスタ29内のベースアド
レスはマルチプレクサ21を用いて組み合わされ、入力
/出力仮想アドレスのための物理的アドレスが入力/出
力ページテーブルにおいて見出される。この値と、それ
を発生させる仮想アドレスは翻訳ルックアサイドバッフ
ァ10に記憶されて、仮想アドレスが次に指示された時
に、物理的アドレスをただちに利用できるようにする。
In the case of a virtual address generated by the input / output memory manager, the miss causes the base address to be generated using the value stored in IBAR register 29. The address pointed to is the base address of one page table that is unique for input / output addressing. The input / output control register of the input / output memory management device includes a field indicating the page size of the input / output page table. From this size, the number of lower virtual address bits required to select the entry location is determined. The low order bits and the base address in register 29 are combined using multiplexer 21 and the physical address for the input / output virtual address is found in the input / output page table. This value and the virtual address that causes it are stored in the translation lookaside buffer 10 so that the physical address is immediately available when the virtual address is next instructed.

【0034】一方、翻訳ルックアサイドバッファをミス
させた仮想アドレスが命令またはデータのアドレスであ
るとすると、これはCTPRレジスタ25に記憶されて
いるベースページアドレスとコンテキストレジスタ(C
XR)19に記憶されている6つ下位のビットの組み合
わせにより、ベースアドレスを発生させる。このベース
アドレスは、入力/出力以外の全てのアドレッシングの
ために用いられるページテーブルの最低レベルのテーブ
ル中の語を指す。命令とデータに対しては、このベース
レベルテーブルは、このレベルにおいて利用できるペー
ジのサイズが全仮想メモリを含むから、ページテーブル
ポインタだけを保持することを許される。このレベルが
ページテーブルエントリイ(すなわち、求められている
情報の物理的アドレス)を保持するものとすると、物理
的メモリから仮想メモリへ直接マップされ(各物理的ア
ドレスは1つの固有の仮想アドレスのみにより指示され
る)、仮想メモリを有する理由は全くない。実際に、本
発明は別にして、制御レジスタ内のソフトウェアにより
モードビットが提供される。これは翻訳を実効的にバイ
パスし、装置が等しい物理的メモリへ仮想メモリをセッ
トすることを許す。
On the other hand, if the virtual address that caused the translation lookaside buffer to miss is the address of the instruction or data, this is the base page address stored in the CTPR register 25 and the context register (C
The base address is generated by the combination of the 6 lower bits stored in (XR) 19. This base address refers to the word in the lowest level table of the page table used for all addressing except input / output. For instructions and data, this base level table is allowed to hold only page table pointers, since the size of the page available at this level includes all virtual memory. Given that this level holds page table entries (ie, the physical addresses of the information sought), it maps directly from physical memory to virtual memory (each physical address is unique to only one unique virtual address). There is no reason to have virtual memory). In fact, apart from the invention, the mode bits are provided by software in the control register. This effectively bypasses the translation and allows the device to set virtual memory to equal physical memory.

【0035】この点において、仮想アドレスは主メモリ
からページテーブルポインタを検索させた。このポイン
タは次のレベルページテーブルのアドレスである。この
ページテーブルポインタは、部分22の物理的アドレス
フィールド内の翻訳ルックアサイドバッファ10に記憶
される。部分12内の翻訳ルックアサイドバッファ10
の同じ行に、CTPRレジスタ25とコンテキストレジ
スタ19内のビットから発生されたベースアドレス(物
理的アドレス)と、翻訳ルックアサイドバッファのタグ
部分が物理的アドレスを含んでいるというPTPビット
における指示と、部分12内のアドレスの3つのフィー
ルドの全ての完全比較を可能にするためのレベルビット
の111へのセットが格納される。更に、ページテーブ
ルポインタが翻訳ルックアサイドバッファ10の部分1
2に格納された時にスーパーバイザビットがセットされ
て、コンテキスト部分を物理的アドレスタグの部分とし
て用いることができるようにする。また、同一の入力/
出力仮想アドレスが、このエントリイと比較された時
に、入力/出力翻訳が異なるページテーブルを用いるか
ら、ヒットしないようにするためにこのエントリイに対
してI/0ビットがクリヤされる。
At this point, the virtual address caused the main memory to retrieve the page table pointer. This pointer is the address of the next level page table. This page table pointer is stored in the translation lookaside buffer 10 in the physical address field of portion 22. Translation lookaside buffer 10 in part 12
In the same row of the base address (physical address) generated from the bits in CTPR register 25 and context register 19, and an indication in the PTP bit that the tag portion of the translation lookaside buffer contains the physical address, The set of level bits to 111 is stored to allow a full comparison of all three fields of the address in the part 12. In addition, the page table pointer is part 1 of the translation lookaside buffer 10.
When stored in 2, the supervisor bit is set, allowing the context part to be used as part of the physical address tag. Also, the same input /
When the output virtual address is compared to this entry, it uses a different page table with different input / output translations, so the I / 0 bit is cleared for this entry to avoid hits.

【0036】物理的アドレスレジスタ23にいぜんとし
て保持されているベースアドレスは翻訳ルックアサイド
バッファ10へ再び供給され、それからヒットが生ず
る。このビットは物理的アドレス部分フィールド23に
ちょうど記憶されているポインタを生ずる。それからこ
のアドレスは物理的アドレスレジスタ23にロードされ
る。物理的アドレスレジスタ23の内容は翻訳ルックア
サイドバッファ部分12と比較され、それからミスが起
こる。ミスを検出すると、制御状態マシンにより示され
ているように、元の仮想アドレスからのインデックスフ
ィールドに組み合わされている物理的アドレスレジスタ
23の内容を用いて主メモリはアクセスされる。この新
しいアドレスはレベル2のページテーブルを指す。これ
はページテーブルエントリイ(翻訳されている物理的ア
ドレスに対応する実際の物理的アドレス)、または次の
レベルのページテーブルに対する物理的アドレスポイン
タを含むページテーブルポインタのいずれかを含むこと
ができる。
The base address, which is still held in the physical address register 23, is reapplied to the translation lookaside buffer 10 from which a hit occurs. This bit results in the pointer just stored in the physical address subfield 23. This address is then loaded into the physical address register 23. The contents of the physical address register 23 are compared with the translation lookaside buffer portion 12 and then a miss occurs. Upon detection of a miss, main memory is accessed with the contents of the physical address register 23 combined with the index field from the original virtual address, as indicated by the control state machine. This new address points to the level 2 page table. This can include either a page table entry (the actual physical address corresponding to the physical address being translated), or a page table pointer that contains the physical address pointer to the next level page table.

【0037】検索されたエントリイがページテーブルエ
ントリイであったとすると、アドレス読み出しの内容
(保護情報を有する物理的アドレス)が翻訳ルックアサ
イドバッファ10の物理的アドレス部分22に記憶され
る。部分12内の翻訳ルックアサイドバッファ10の同
じ行に元の仮想アドレスの20ビット(ビット[26:
12])と、コンテキストレジスタの現在の値と、現在
のページテーブルエントリイが見出されたレベルを示す
レベルビットと、IUマシンの状態に従ってセットされ
るスーパーバイザビットと、PTPビットおよびIOビ
ット(それらはクリヤされる)とが格納される。それか
ら元の翻訳が再び試みられて、最近更新されたヒットと
比較された時にヒットを生ずる。
Assuming that the retrieved entry is a page table entry, the contents of address reading (physical address having protection information) are stored in the physical address portion 22 of the translation lookaside buffer 10. In the same row of the translation lookaside buffer 10 in the portion 12, 20 bits (bits [26:
12]), the current value of the context register, a level bit indicating the level at which the current page table entry is found, a supervisor bit set according to the state of the IU machine, and PTP and IO bits (they are Will be stored). The original translation is then retried, producing a hit when compared to the recently updated hit.

【0038】一方、主メモリから読み出されたエントリ
イがページテーブルポインタであるとすると、それは翻
訳ルックアサイドバッファ10の物理的アドレス部分2
2に格納される。部分12内の翻訳ルックアサイドバッ
ファ10の同じ行に、物理的アドレスレジスタ23から
読み出されたポインタの物理的アドレスと、翻訳ルック
アサイドバッファ10のタグ部分12が物理的アドレス
を含んでいるというPTPビット内の指示と、ページテ
ーブルポインタの以前のローディングと同一であるスー
パーバイザビットの設定とが含まれる。
On the other hand, if the entry read from the main memory is the page table pointer, it is the physical address portion 2 of the translation lookaside buffer 10.
Stored in 2. In the same row of the translation lookaside buffer 10 in the portion 12, the PTP that the physical address of the pointer read from the physical address register 23 and the tag portion 12 of the translation lookaside buffer 10 contain the physical address. Includes an indication in the bit and the setting of the supervisor bit, which is the same as the previous loading of the page table pointer.

【0039】それから、物理的アドレスレジスタ23の
内容が翻訳ルックアサイドバッファ10の部分12と比
較され、ヒットが起こる。このヒットによって、物理的
アドレス部分22のフィールドにちょうど格納されたポ
インタが生じさせられる。この点で、現在のページテー
ブルエントリイを読み出すために主メモリがアクセスさ
れる。このエントリイは、ページテーブルエントリイの
レベルフィールドが現在のページテーブルエントリイを
反映することを除き、以前のページエントリイ読み出し
と同様に処理される。本発明の好適な実施例において
は、3つのページテーブルレベルがサポートされる。し
たがって、第3のレベルのページテーブルだけがページ
テーブルエントリイを含む。したがって、主メモリの3
回目のアクセスの結果としてページテーブルエントリイ
が読み出されることになる。そのページテーブルエント
リイは翻訳ルックアサイドバッファ10に前記のように
して格納される。翻訳ルックアサイドバッファ10への
ページテーブルエントリイの格納に続いて、元の仮想ア
ドレスが常に再試行させられ、その結果としてそれを要
求しているキャッシュのための翻訳されたアドレスとな
る。
The contents of physical address register 23 are then compared with portion 12 of translation lookaside buffer 10 and a hit occurs. This hit causes a pointer just stored in the field of the physical address portion 22. At this point, main memory is accessed to read the current page table entry. This entry is processed like a previous page entry read, except that the level field of the page table entry reflects the current page table entry. In the preferred embodiment of the present invention, three page table levels are supported. Therefore, only the third level page table contains page table entries. Therefore, 3 of the main memory
As a result of the second access, the page table entry is read. The page table entry is stored in the translation lookaside buffer 10 as described above. Following storage of the page table entry in the translation lookaside buffer 10, the original virtual address is always retried, resulting in a translated address for the cache requesting it.

【0040】求められている情報の翻訳されたアドレス
がひとたび回復されると、求められている情報が、アド
レスの翻訳を求めていたキャッシュ内にあるかどうかの
判定を助けるためにそのアドレスが用いられる。
Once the translated address of the sought information is recovered, it is used to help determine if the sought information is in the cache that was sought to translate the address. To be

【0041】この1つのエントリイが回復された後で翻
訳ルックアサイドバッファ10には、ページテーブルエ
ントリイを有する仮想アドレスばかりでなく、物理的ポ
インタを有するベースアドレスと、対応するページテー
ブルに対する2つまでの付加物理的ポインタとが格納さ
れることに注目すべきである。実際には、ページテーブ
ルに対する第3のポインタを格納することも可能であ
る。第2の仮想アドレスが翻訳ルックアサイドバッファ
10に今供給され、ミスを生じたとすると、これはベー
スアドレスを再び発生させてコンテキストに組み合わ
せ、第2のレベルのテーブルに対するポインタを発生さ
せる。このアドレスは、翻訳ルックアサイドバッファ1
0に格納されているアドレスと比較される。このアドレ
スは、翻訳ルックアサイドバッファ10に記憶されてい
る1つのエントリイの仮想フィールドに存在するから、
次の物理的アドレスを生ずるために、ページテーブルを
初めて歩く時に要する10またはそれ以上のクロック時
間ではなくて、ただ1つのクロック時間を要するだけで
ある。それからこの新しいページテーブルポインタをリ
サイクルすると、次のポインタが別のポインタを生ずる
ことは全くありそうなことである。その別のポインタ
は、この点におけるメモリページのサイズがメモリの1
6メガバイトであるから、翻訳ルックアサイドバッファ
10に記憶される。あるプログラムがその空間より大き
い空間を占めることは全くありそうにないから、第2の
ポインタもおそらく翻訳ルックアサイドバッファ10に
おいて回復されるであろう。最終的には、特定のページ
テーブルエントリイを回復せねばならないが、一般にこ
れは主メモリ内にあるページテーブル内のただ1つの探
索レベルをとる。99パーセント以上にわたって、求め
られているポインタは翻訳ルックアサイドバッファ10
にあることがテストの結果判明している。したがって、
本発明の翻訳ルックアサイドバッファの動作速度は、そ
れが組み合わされているコンピュータ装置の動作速度を
大幅に向上させることがわかる。
After this one entry is restored, the translation lookaside buffer 10 stores not only the virtual address having the page table entry but also the base address having the physical pointer and up to two for the corresponding page table. It should be noted that additional physical pointers and are stored. In fact, it is also possible to store a third pointer to the page table. If a second virtual address is now provided to the translation lookaside buffer 10 and a miss occurs, it regenerates the base address into the context and generates a pointer to the second level table. This address is the translation lookaside buffer 1
It is compared with the address stored in 0. Since this address exists in the virtual field of one entry stored in the translation lookaside buffer 10,
Only one clock time is required, rather than the 10 or more clock times required to walk the page table for the first time to generate the next physical address. Then it is quite likely that recycling this new page table pointer will cause the next pointer to yield another pointer. Another pointer is that the size of the memory page at this point is 1 of memory.
Since it is 6 megabytes, it is stored in the translation lookaside buffer 10. The second pointer will probably also be recovered in the translation lookaside buffer 10, since it is unlikely that a program will take up more space than that space. Ultimately, a particular page table entry must be recovered, but generally this takes only one search level in the page table in main memory. Over 99% of the required pointers are translation lookaside buffers 10
Test results show that Therefore,
It can be seen that the operating speed of the translation lookaside buffer of the present invention greatly improves the operating speed of the computer device with which it is combined.

【0042】本発明の翻訳ルックアサイドバッファに用
いられる命令キャッシュは、キャッシュされた命令が迅
速に発生されるように、翻訳ルックアサイドバッファと
並列に動作するようにされる。そのために、本発明の好
適な実施例におけるデータキャッシュと命令キャッシュ
はページサイズであって、仮想アドレスと物理的アドレ
スの組み合わせによりアドレスされる。好適な実施例に
おいては、仮想アドレスの最下位ビットが特定のキャッ
シュの行を実際に定め、行中のビットが有効か(正しい
ページから来た)否かを物理的ビットが判定する。これ
を行うために、キャッシュは各エントリイでタグを格納
し、そのタグは、情報を与えたページの物理的アドレス
を含む。これを、翻訳ルックアサイドバッファにより供
給された物理的アドレスと比較するものとすると、キャ
ッシュのヒットが存在する。したがって、たとえば、キ
ャッシュは、命令が存在できる特定の行を予め選択で
き、翻訳ルックアサイドバッファは物理的アドレスを決
定する。物理的アドレスの上位ビットを利用できるもの
とすると、遅れなしに情報を利用できる。
The instruction cache used in the translation lookaside buffer of the present invention is arranged to operate in parallel with the translation lookaside buffer so that cached instructions can be generated quickly. To that end, the data and instruction caches in the preferred embodiment of the present invention are page-sized and addressed by a combination of virtual and physical addresses. In the preferred embodiment, the least significant bit of the virtual address actually defines the particular cache line, and the physical bit determines whether the bit in the line is valid (from the correct page). To do this, the cache stores a tag at each entry, which tag contains the physical address of the informed page. If we compare this to the physical address provided by the translation lookaside buffer, then there is a cache hit. Thus, for example, the cache can preselect the particular line in which the instruction can reside, and the translation lookaside buffer determines the physical address. Given that the upper bits of the physical address are available, the information is available without delay.

【0043】図2は本発明の使用により節約されるサイ
クルの数を示すタイミング図である。図2は従来技術の
典型的な装置で用いられるサイクル数と、本発明を利用
する装置で用いられるサイクル数を比較する。この図か
らわかるように、マシン動作時間の多くが本発明により
節約される。
FIG. 2 is a timing diagram showing the number of cycles saved by the use of the present invention. FIG. 2 compares the number of cycles used in a typical prior art device with the number of cycles used in a device utilizing the present invention. As can be seen from this figure, much of the machine operating time is saved by the present invention.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明に従って製作された翻訳ルックアサイド
バッファを示すブロック図である。
FIG. 1 is a block diagram illustrating a translation lookaside buffer made in accordance with the present invention.

【図2】本発明の使用により節約されるサイクルの数を
示すタイミング図である。
FIG. 2 is a timing diagram showing the number of cycles saved by use of the present invention.

【符号の説明】[Explanation of symbols]

10 翻訳ルックアサイドバッファ 18,20,21 マルチプレクサ 19 コンテキストレジスタ 23 物理的アドレスレジスタ 25 CTPRレジスタ 29 IBARレジスタ 10 Translation Lookaside Buffer 18, 20, 21 Multiplexer 19 Context Register 23 Physical Address Register 25 CTPR Register 29 IBAR Register

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーター・メーリング アメリカ合衆国 01887 マサチューセッ ツ州・ウィルミントン・ルーズヴェルト ロード・11 ─────────────────────────────────────────────────── ─── Continued Front Page (72) Inventor Peter Mailing United States 01887 Wilmington Roosevelt Road, Massachusetts 11

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 物理的アドレスのあるものは、仮想アド
レスにより求められている情報が存在するページを示
し、また物理的アドレスの他のものは、仮想アドレスに
より求められている情報の物理アドレスが存在するペー
ジを示すものであって、仮想アドレスを記憶するための
手段と、各仮想アドレスに関連する物理的アドレスを記
憶する手段とを備えた少なくとも第1のレベルのページ
ルックアップテーブルと第2のレベルのページルックア
ップテーブルとを含む仮想メモリ装置に使用するルック
アサイドバッファ。
1. A physical address indicates a page in which information sought by a virtual address exists, and another physical address indicates a physical address of information sought by a virtual address. A page lookup table for at least a first level comprising means for storing virtual addresses and means for storing a physical address associated with each virtual address; A look-aside buffer for use in a virtual memory device, including a page-look-up table at each level.
【請求項2】 関連するページテーブルエントリイを有
する翻訳ルックアサイドバッファに、ページテーブルエ
ントリイへ翻訳する仮想アドレスを記憶する過程と、関
連するページテーブルポインタを有する同じ翻訳ルック
アサイドバッファに、ページテーブルポインタへ翻訳す
る仮想アドレスを記憶する過程と、情報が求められてい
る仮想アドレスを翻訳ルックアサイドバッファに記憶さ
れている仮想アドレスと比較する過程と、ページテーブ
ルエントリイへ翻訳する仮想アドレスの比較に応答し
て、ページテーブルエントリイである物理的アドレスを
供給する過程と、ページテーブルポインタへ翻訳する仮
想アドレスの比較に応答して、ページテーブルポインタ
である物理的アドレスを供給する過程とを備える、コン
ピュータ装置において仮想から物理的へアドレスを高速
翻訳する方法。
2. A process of storing a virtual address to be translated into a page table entry in a translation lookaside buffer having an associated page table entry, and a page translation to a page table pointer in the same translation lookaside buffer having an associated page table pointer. In response to storing the virtual address to be translated, comparing the virtual address for which information is sought with the virtual address stored in the translation lookaside buffer, and comparing the virtual address to be translated to the page table entry. And a step of supplying a physical address that is a page table entry, and a step of supplying a physical address that is a page table pointer in response to a comparison of virtual addresses to be translated into a page table pointer. A fast way to translate addresses from virtual to physical.
JP3349827A 1990-12-21 1991-12-10 Look-aside buffer and method for high-speed translation of virtual address for physical address Pending JPH0628262A (en)

Applications Claiming Priority (2)

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

Publications (1)

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

Family

ID=24533519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3349827A Pending JPH0628262A (en) 1990-12-21 1991-12-10 Look-aside buffer and method for high-speed translation of virtual address for physical address

Country Status (7)

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

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 (en) * 1994-03-24 2002-05-16 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Translation mechanism for input / output addresses
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 (en) * 1995-03-03 1998-10-22 Hal Computer Systems Inc MICRO-TLB WITH PARALLEL ACCESS TO SPEED UP ADDRESS TRANSLATION
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
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
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
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
US6249853B1 (en) 1997-06-25 2001-06-19 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
US6282625B1 (en) 1997-06-25 2001-08-28 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
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a 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
US6272576B1 (en) 1998-01-20 2001-08-07 Micron Technology, Inc. Method for extending the available number of configuration registers
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
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
EP1220229B1 (en) * 2000-12-29 2009-03-18 STMicroelectronics S.r.l. An electrically modifiable, non-volatile, semiconductor memory which can keep a datum stored until an operation to modify the datum is completed
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
US7653802B2 (en) * 2004-08-27 2010-01-26 Microsoft Corporation System and method for using address lines to control memory usage
US7734926B2 (en) * 2004-08-27 2010-06-08 Microsoft Corporation System and method for applying security to memory reads and writes
US7822993B2 (en) * 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
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
US7444493B2 (en) * 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
EP1736887A3 (en) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Memory page directory
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
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
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
US20090070570A1 (en) * 2007-09-11 2009-03-12 Shubhodeep Roy Choudhury System and Method for Efficiently Handling Interrupts
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
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
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 (en) * 2011-09-26 2013-04-22 Fujitsu Ltd Address translation device, arithmetic processing device and control method of arithmetic processing device
US9256550B2 (en) * 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
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
US10613989B2 (en) 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
US10592424B2 (en) 2017-07-14 2020-03-17 Arm Limited Range-based memory system
US10565126B2 (en) 2017-07-14 2020-02-18 Arm Limited Method and apparatus for two-layer copy-on-write
US10534719B2 (en) * 2017-07-14 2020-01-14 Arm Limited Memory system for a data processing network
US10353826B2 (en) 2017-07-14 2019-07-16 Arm Limited Method and apparatus for fast context cloning in a data processing system
US10467159B2 (en) * 2017-07-14 2019-11-05 Arm Limited Memory node controller
US10489304B2 (en) 2017-07-14 2019-11-26 Arm Limited Memory address translation
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 (en) * 1980-06-06 1985-05-01 日本電気株式会社 address control device
JPS5924485A (en) * 1982-07-30 1984-02-08 Toshiba Corp Input/output paging mechanism
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 (en) * 1984-10-03 1986-04-30 Hitachi Ltd Extended address translation device
JPS61148551A (en) * 1984-12-24 1986-07-07 Hitachi Ltd Address translation method
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
US5426750A (en) 1995-06-20
EP0492859A2 (en) 1992-07-01
KR960001946B1 (en) 1996-02-08
GB9113733D0 (en) 1991-08-14
HK155995A (en) 1995-10-13
CA2057494A1 (en) 1992-06-22
GB2251102A (en) 1992-06-24
EP0492859A3 (en) 1993-01-13
GB2251102B (en) 1995-03-15
KR920013132A (en) 1992-07-28

Similar Documents

Publication Publication Date Title
JPH0628262A (en) Look-aside buffer and method for high-speed translation of virtual address for physical address
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 (en) High speed cache system
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
EP1941375B1 (en) Caching memory attribute indicators with cached memory data
US6490671B1 (en) System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system
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 (en) Method and apparatus for converting multiple virtaul addresses
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 (en) Apparatus and method for retrieving cache
US20040111551A1 (en) Process for emulating associative memory
JPS626350A (en) Tlb controller