JP3449487B2 - 変換索引緩衝機構 - Google Patents

変換索引緩衝機構

Info

Publication number
JP3449487B2
JP3449487B2 JP35440291A JP35440291A JP3449487B2 JP 3449487 B2 JP3449487 B2 JP 3449487B2 JP 35440291 A JP35440291 A JP 35440291A JP 35440291 A JP35440291 A JP 35440291A JP 3449487 B2 JP3449487 B2 JP 3449487B2
Authority
JP
Japan
Prior art keywords
address
virtual
translation
physical
addresses
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.)
Expired - Fee Related
Application number
JP35440291A
Other languages
English (en)
Other versions
JPH06180672A (ja
Inventor
ロバート・ベッカー
ピーター・メーリング
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 JPH06180672A publication Critical patent/JPH06180672A/ja
Application granted granted Critical
Publication of JP3449487B2 publication Critical patent/JP3449487B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F12/10Address translation
    • 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]

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータの記憶域
管理装置に関するものであり、とりわけ、記憶域管理装
置の変換索引緩衝機構において生じるヒット数を増すた
めの装置に関するものである。
【0002】
【従来の技術】仮想メモリ・システムは、実際の主メモ
リが大幅に少ない量の記憶空間から構成されているとし
ても、該メモリの全てがコンピュータ・システムの主メ
モリであるかのように、極めて大量のメモリに対するア
ドレス指定を可能にするものである。例えば、主メモリ
を1メガバイトのランダム・アクセス・メモリで構成し
ておいて、その一方で、仮想メモリ・アドレス指定シス
テムを用いることにより、64メガバイトのメモリにア
ドレス可能にすることが出来る。
【0003】仮想メモリ・システムは、仮想メモリ・ア
ドレスを物理的メモリ・アドレスに変換する記憶域管理
装置を設けることによって、この離れ技を成し遂げる。
特定の物理的アドレスが、主メモリあるいは長期記憶装
置に納められている場合がある。探索される情報の物理
的アドレスが、主メモリに納められている場合、コンピ
ュータは、情報にアクセスして、これを利用する。物理
的アドレスが、長期記憶装置に納められている場合、情
報は、それを利用することの可能な主メモリに転送され
る。
【0004】基本記憶域管理装置は、主メモリに記憶さ
れているルック・アップ・テーブルを利用する。記憶域
管理装置に提示される仮想アドレスとルック・アップ・
テーブルに記憶されている値との比較によって、アクセ
スすべき物理的アドレスが決定される。ルック・アップ
・テーブルにはいくつかのレベルが存在する場合がよく
あり、比較にはかなりのクロック時間を要することにな
る。
【0005】この遅延を克服するため、仮想メモリ・シ
ステムには、しばしば、超高速コンポーネントを利用し
て、最近用いられたデータ及び命令を記憶するキャッシ
ュ・メモリが含まれている。通常、これらのキャッシュ
・メモリは、プロセッサに対する迅速なアクセスを可能
にするように接続される。プロセッサは、先ず、これら
のキャッシュを参照してから、主メモリに移行し、任意
の情報を求める。これらのキャッシュの理論は、最近用
いられた情報は、他の情報が必要となる前に、必要とさ
れる可能性が高いということである。この理論は、妥当
なものであり、キャッシュ・メモリを利用するシステム
の多くは、ヒット率が99%を超える。
【0006】これらのキャッシュ・メモリに納められて
いる情報を得るためには、該キャッシュ・メモリにもア
ドレス指定しなければならない。物理的アドレスを利用
して、これらのキャッシュにアドレス指定する場合、そ
れらにアクセス可能になる前に、アドレス変換を行う必
要がある。ページ・ルック・アップ・テーブルを調べず
にこれを行うため、典型的な記憶域管理装置は、関連す
る物理的ページ・アドレスと共に、最近アクセスされた
仮想ページ・アドレスをキャッシングするのに、変換索
引緩衝機構(TLB)を利用している。こうしたアドレ
ス用キャッシュは、データ及び命令を保持するキャッシ
ュと同じ原理で働くので、最近利用されたアドレスは、
他のアドレスに比べて、利用される可能性が高くなる。
それが保持している仮想アドレスを提示されると、変換
索引緩衝機構は、情報に関する物理的アドレスを提供す
る。関連するキャッシュに物理的アドレスが納められて
いる場合、プロセッサは即座に情報を入手することが出
来、主メモリのページ・ルック・アップ・テーブルを参
照するという時間のかかるプロセスを実施する必要がな
くなる。
【0007】プロセッサが変換索引緩衝機構に仮想アド
レスを送っても、変換索引緩衝機構にそのアドレスが含
まれていない場合には、記憶域管理装置は、主メモリの
ルック・アップ・テーブルを利用して、物理的アドレス
を検索しなければならない。物理的アドレスが回復され
ると、仮想アドレスと共に変換索引緩衝機構に記憶され
るので、次にそれが必要になる場合には、即座に入手す
ることが可能になる。情報が回復すると、物理的アドレ
スでキャッシュに記憶される。この結果、一般的なペー
ジ・ルック・アップ・テーブルの参照には、各探索レベ
ル毎に、10〜15クロック・サイクルを要するが、変
換索引緩衝機構及びキャッシュを用いた情報のアクセス
には、1〜2クロック・サイクルしか必要としないの
で、次の情報利用時にはかなりの時間が節約されること
になる。
【0008】 に提出され、本発明の譲受人
に譲渡されたTRANSLATION LOOKASI
DE BUFFERと題する米国特許出願第 号には、デ
ータ用と命令用の独立したキャッシュを備える超高速R
ISCコンピュータ用の変換索引緩衝機構の解説があ
る。典型的な先行技術によるコンピュータ・システムの
場合、これらの異なる仮想アドレスは、独立したハード
ウェア資源によって変換される。ただし、解説の変換索
引緩衝機構は、データ、命令、及び、入力/出力操作の
ために仮想アドレスと物理的アドレスを記憶するもので
ある。こうした変換索引緩衝機構は、最小限の量のハー
ドウエアしか備えないシステムによって用いられる可能
性のある全ての仮想アドレスの超高速変換を可能にす
る。こうしたシステムは、ハードウエアのほとんどが単
一チップに納められているシステムに用いるのに十分適
合するものである。
【0009】命令及びデータ用キャッシュに対する物理
的アドレス指定を利用し、単一の変換索引緩衝機構によ
って、データ、命令、及び、入力/出力アドレスの処理
を行うシステムに生じる問題の一つは、データ、命令、
及び、入力/出力操作のためのアドレスが、全て、変換
索引緩衝機構を同時に争って確保しようとする可能性が
あると言う事実によって引き起こされるものである。こ
うなると、システムは、どうにかして全てのアドレスの
変換を可能にしなければならない。変換が直列に行われ
る場合、大した遅延は生じない。あふれを扱うために独
立した変換索引緩衝機構を設けることによって、前述の
発明が排除しようとしていたかなりのハードウエアが追
加されることになる。命令の先取り、あるいは、変換索
引緩衝機構の動作の高速化といった他の可能性によっ
て、他の望ましくないレベルの複雑化が生じることにな
る。
【0010】
【発明が解決しようとする課題】従って、本発明の目的
は、同時に情報を提供することが可能な二つの別個のソ
ースからの情報を扱うために用いられる変換回路要素の
動作を高速化するための構成を提供することにある。
【0011】本発明のもう一つのより特定の目的は、独
立したデータ及び命令用キャッシュを備えるプロセッサ
のための単一アドレス・キャッシュとして用いられる、
変換索引緩衝機構の動作速度を増すことにある。
【0012】本発明のさらにもう一つの目的は、独立し
たデータ及び命令用キャッシュを備えたプロセッサのた
めの単一アドレス・キャッシュとして用いられ、また、
ハードウエアをあまり増やさずに、入力/出力アドレス
を記憶する変換索引緩衝機構の動作速度を増すことにあ
る。
【0013】
【課題を解決するための手段】本発明の以上の及びその
他の目的は、複数のソースの全てからの複数の独立した
仮想アドレス及び関連する物理的アドレスを記憶するた
めの主キャッシュと、主キャッシュにおいて、複数のソ
ースの一つからの仮想アドレス及び関連する物理的アド
レスの参照が行われる毎に、最も頻繁に現れる複数のソ
ースの一つからの単一の仮想アドレス及びその関連する
物理的アドレスを記憶するための手段と、複数のソース
の一つ、及び、複数のソースのもう一つからの仮想アド
レスを求めて、主キャッシュに同時にアクセスしようと
する際、単一の仮想アドレス及び関連する物理的アドレ
スを記憶する手段に保持されている仮想アドレスが、探
索されている仮想アドレスであるか否かを確認するため
の手段から構成される、複数のソースから、迅速にアク
セス出来なければならない関連する物理的アドレスと共
に、ソースのうちの二つから同時に生じる可能性のあ
る、物理的アドレスへの変換を必要とする仮想アドレス
をキャッシングするための変換索引緩衝機構によって実
現する。
【0014】本発明の以上の及びその他の目的及び特徴
については、同様の構成要素がいくつかの図を通じて同
様の表示で表されている図面に加えて、記載の詳細な説
明を参照することによりいっそう理解が深まることにな
る。
【0015】
【実施例】後続の説明の一部は、コンピュータ・メモリ
内におけるデータ・ビットに対する操作のアルゴリズム
及び記号表現によって行われる。これらのアルゴリズム
的説明及び表現は、データ処理技術における他の熟練者
にその作業の内容を最も有効に伝達するために、該技術
の熟練者が用いる手段である。ここに一つのアルゴリズ
ムがあって、総じて、所望の結果につながる、理路整然
とした一連のステップであるとする。該ステップは、物
理的量に関する物理的操作を必要とするものである。通
常、必ずしもそうでなくてはならないというわけではな
いが、これらの量は、記憶し、転送し、組み合わせ、比
較し、別様に操作を加えることの可能な電気信号または
磁気信号の形をとることになる。時には、主として一般
的な慣用上の理由で、ビット、値、要素、記号、文字、
述語、数字等でこれらの信号を表すのが便利な場合のあ
ることが分かった。しかしながら、これらの及び同様の
用語は、全て、適合する物理的量に関連していなければ
ならず、これらの量に適用される便利なラベルにすぎな
いという点に留意すべきである。
【0016】さらに、実施される操作は、しばしば、一
般には人間のオペレータが行う精神的な操作に関連し
た、追加または比較といった用語で表される。本発明の
一部をなす、本書に解説の操作のいずれにおいても、こ
うした人間のオペレータの能力が必要とされたり、ある
いは、所望される場合というのはほとんど無く、操作
は、機械操作である。どの場合でも、コンピュータを操
作する操作方法と計算自体の方法との区別に留意しなけ
ればならない。本発明は、電気的信号または他の(例え
ば、機械的、化学的)物理的信号に処理を施して、他の
所望の物理的信号を発生する際に、コンピュータに操作
を加える装置に関するものである。
【0017】ここで、図1を参照すると、上述の特許出
願に従って設計された変換索引緩衝機構10が示されて
いる。変換索引緩衝機構10は、仮想アドレス及び関連
する物理的アドレスを備えた比較的大きい単一のキャッ
シュである。変換索引緩衝機構10は、データ・キャッ
シュと命令キャッシュの両方を備えていて、両方を同時
に参照する還元命令セット・コンピュータ(RISC)
・システムにおいて利用される。変換索引緩衝機構10
は、該システムにおける唯一のこうしたバッファであ
り、従って、データと命令の両方に関するアドレスを記
憶する。さらに、操作速度を増し、該システムにおける
ハードウエアの複雑さを減少させるため、この同じ変換
索引緩衝機構が、入力/出力操作に用いられるアドレス
も記憶する。単一の変換索引緩衝機構が、これらのアド
レスの全てを変換するので、アドレス変換の全体として
の速度は、大幅に増すことになり、変換に利用される領
域が、大幅に減少することになる。しかしながら、この
アーキテクチャによって、別様に変換操作を減速させる
可能性のある問題が生じることになる。
【0018】RISC機械の場合、各サイクル毎に命令
にアクセスするのが普通であるため、結果として、命令
のストリームが存在することになる。これらの命令を与
えるためには、必然的に、命令アドレスのストリームが
存在することになる。同時に、命令の約25%(一般に
は、ロード及び記憶命令)は、メモリからデータを要求
するか、あるいは、メモリへデータを記憶するというも
のである。もちろん、これらに対するアクセスは、デー
タ・アドレスを通じて行われる。さらに、変換索引緩衝
機構の設計対象となったシステムの場合、命令アドレス
の変換を10回行う毎に必要とされる入力/出力アドレ
ス変換は、約1回である。この特定の機械において、命
令アドレス変換の優先順位が、最も低く、データ・アド
レス変換の優先順位が、これに続き、入力/出力アドレ
スの優先順位が、最も高い。変換索引緩衝機構が、デー
タまたは入力/出力アドレス変換の処理に忙殺されてい
る場合、命令アドレス変換は、遅延し、次に利用可能な
サイクルにおいて、変換索引緩衝機構に再経路指定しな
ければならなくなる。RISCコンピュータの場合、命
令アドレスは、各クロック・サイクル毎に変換すること
が求められるので、このため、、他のアドレスの変換に
よる妨害が生じるのは、全体として約3分の1の時間で
あることから、システムの動作は、比較的大幅に減速さ
れることになる。
【0019】この問題を解消するため、本発明は、変換
索引緩衝機構の単一行を納める単一レジスタ(命令変換
バッファ・レジスタと呼ばれる)を提供する。該レジス
タには、変換索引緩衝機構によって行われる各アドレス
変換毎に、仮想アドレス及び関連する物理的アドレス
が、納められる。
【0020】変換索引緩衝機構が、データ・アドレスま
たは入力/出力アドレスの変換に忙殺されていて、命令
アドレスの変換を取り扱うことが出来ない場合、命令ア
ドレスは、該レジスタに提示され、該レジスタ及び関連
する論理回路による変換を受けることになる。この命令
変換バッファ・レジスタには、変換された最後の命令の
物理的ページ・アドレスが含まれている。プログラムに
おける命令の局所性のため(同じページから生じる傾向
にある)、探索されている仮想アドレスの高位ビット
が、レジスタ内の高レベルの仮想ビットと同一であり、
従って、新しい仮想アドレスが、最後の仮想アドレスと
一致するという可能性は、極めて高い。実際、命令変換
バッファ・レジスタは、90%を超える時間にわたっ
て、所望の物理的アドレスを保持することが分かった。
従って、命令アドレス及びデータ・アドレスを並列に変
換し、機械の動作速度を維持することが可能になる。
【0021】図1に示す変換索引緩衝機構10の場合、
システムによって探索を受ける仮想アドレスが、3組の
入力ライン14、15、または、16の一つによって送
られる。ライン14で送られるアドレスは、コンピュー
タ・システムの入力/出力回路要素によって与えられ
る。ライン15で送られるアドレスは、コンピュータ・
システムの整数プロセッサによって与えられる命令アド
レスである。ライン16で与えられるアドレスは、コン
ピュータ・システムの整数プロセッサによって与えられ
るデータ・アドレスである。各場合とも、探索を受ける
最高24ビットの仮想アドレスが、記憶されているアド
レスとの比較のために、部分12に与えられる。探索を
受ける特定のタイプの情報を指定する制御信号に応答
し、マルチプレクサ18によって、特定の仮想アドレス
が仮想タグ・セクションに与えられる。例えば、整数プ
ロセッサの命令は、データまたは命令として探索を受け
る情報を指定し、一方、入力/出力回路要素は、探索を
受ける情報が入力/出力を目的としたものであることを
指示する。
【0022】仮想アドレスの高次ビットが、マルチプレ
クサ18に与えられると、マルチプレクサ20が、6つ
の文脈タグ・ビット位置の値と比較される文脈タグを提
供する。この文脈タグは、文脈レジスタ19によって与
えられる、記憶域管理ソフトウエアによって書き込まれ
た値である。データ・アドレスと命令アドレスの両方に
関して、仮想アドレス・タグと文脈タグが、両方とも、
変換索引緩衝機構10においてヒットがあるか探索を受
けるビットと一致しなければならない。文脈タグは、該
システムが、異なるソフトウエア・プログラムに用いら
れる複数の異なるグループをなすページ・テーブルの中
から選択を行えるようにするビット・グループである。
本発明の目的のために、文脈タグは、追加アドレス・ビ
ットとみなすものとする。
【0023】仮想アドレス・ビット及び文脈ビットが、
部分12の仮想タグ及び文脈フィールドに記憶されてい
るビットと一致すると(望ましい実施例の場合、他のい
くつかのビットが一致するものと仮定する)、物理的ア
ドレスの高次ビットが、出力として送り出される。各物
理的アドレスのこれらの高次ビットは、変換索引緩衝機
構10の部分22における、その変換を受けることにな
る元の仮想アドレスと同じ行に既に記憶されているもの
である。これらの高次ビットは、物理的アドレスを得る
ことが可能な物理的ページ数を示すものである。仮想ア
ドレス及び物理的アドレスの低次ビットは、同じもので
あり、特定のページ内におけるバイト・アドレスを示し
ている。従って、仮想アドレスの低次ビットと物理的ペ
ージ数を組み合わせることによって、完全な物理的アド
レスが得られる。
【0024】図1において明らかなように、マルチプレ
クサ18及び20と、変換索引緩衝機構10の部分12
及び22が、ある仮想アドレスを物理的アドレスに変換
するために用いられている場合、最初の変換が完了する
までは、それらを利用して、別の仮想アドレスを変換す
ることは出来ない。変換索引緩衝機構10において変換
が行われる場合、時間の損失は、たぶん1クロック・サ
イクルである。一方、ページ・ルック・アップ・テーブ
ルによる変換が必要とされる場合、時間の損失は、かな
り大きくなる可能性がある。入力/出力及びデータ・ア
ドレスの変換は、両方とも、変換索引緩衝機構10にお
いて優先権を有しているので、データまたは入力/出力
変換と同時に行われる各命令アドレス変換は、本発明が
なければ、遅延させなければならない。
【0025】同時に行われるアドレス変換によって生じ
る遅延をなくすために、命令変換バッファ・レジスタ3
0が設けられている。このレジスタには、変換索引緩衝
機構10の1つの行から関係のある情報を記憶するのに
十分な数のビット位置が含まれている。変換索引緩衝機
構10によるどの命令アドレス変換においても、仮想命
令アドレスの変換が行われる時、該レジスタ30は、変
換索引緩衝機構10の部分12及び22からその仮想命
令アドレス及び関連する物理的ページアドレスを受信す
る。このアドレスの仮想タグ部分のビットは、一連の導
体32を介して部分12によって与えられ、該アドレス
の物理的ページ・アドレス部分のビットは、一連の導体
34を介して部分22によって与えられる。次の仮想命
令アドレスが変換のために現れると、この情報は、レジ
スタ30に納められる。
【0026】次の仮想命令アドレスが、変換のために現
れると、変換索引緩衝機構10の主キャッシュ部分12
及び22が、自由である限り、該部分において変換され
る。この通常の状況では、新しい仮想命令アドレス及び
関連する物理的ページアドレスは、レジスタ30に納め
られる。しかし、別のアドレス変換に優先権があるた
め、変換索引緩衝機構10の主キャッシュにおいて仮想
命令の変換が行えない場合、変換を競い合うライン15
における仮想命令アドレスは、コンパレータ36に転送
される。コンパレータ36は、探索を受ける命令の仮想
アドレスと、レジスタ30に記憶されている最後の仮想
命令アドレスを比較する。比較には、仮想アドレスの高
次ビット(ページ・テーブルの特定のページに変換され
る)だけしか必要とされないので、また、命令は、メモ
リ内において互いにごく接近して生じる傾向があるの
で、現在の命令は、最後の命令と同じページ・アドレス
を備えている可能性が極めて高い。こうした場合、コン
パレータ36によってヒットが知らされる。
【0027】ヒットが発生すると、3つのマルチプレク
サ38、39、または、40のうち一つ以上が、物理的
ページ・アドレスをプロセッサに転送し、用いられるよ
うにする。アドレスを転送するように選択されるマルチ
プレクサ38、39、または、40の特定の組み合わせ
は、変換されるページのサイズによって決まり、本発明
に関する限り、重要ではない。こうして、命令アドレス
とデータまたは入力/出力アドレスは、両方とも、同時
に変換することが出来るので、プロセッサのパイプライ
ンには、遅延が生じない。
【0028】仮想命令アドレスが、レジスタ32の仮想
アドレスと一致しないという異常な場合、一致しなかっ
たことが、コンパレータ36の出力における状態マシン
(不図示)に伝えられる。状態マシンは、この信号に応
答し、変換処理がすんだ後、次の利用可能時間に、変換
索引緩衝機構10において仮想命令アドレスを再試行さ
せる。ミスの生じる時間が10%未満であることが分か
っており、仮想命令アドレスの変換に対する妨害は、約
3分の1の時間しか生じないので、この遅延が生じるの
は、平均して、30の命令毎に1回ということになる。
当該技術の熟練者には明らかなように、これによって、
該システムの動作速度は大幅に増すことになる。より重
要なのは、ハードウエアの量をあまり増やさずに、こう
なるということである。この結果、該システムは、シリ
コンの可能性のある最小領域に配置することが可能にな
る。
【0029】本発明の説明は、望ましい実施例に関連し
て行ってきたが、当該技術の熟練者であれば、本発明の
精神及び範囲を逸脱することなく、さまざまな修正及び
変更を加えることが出来るのは明らかである。例えば、
並列入力が妨げになる、キャッシング用のレジスタを用
いた構成を、上述以外の環境において用いることが可能
である。3次元グラフィックス用のグラフィックス・コ
ントローラは、Zアクセス座標を利用するが、X及びY
アクセス座標を取り扱わなければならない場合もある。
処理速度を同じに保つため、単一キャッシュ項目レジス
タを利用して、同時に生じる座標間の妨害を減らすこと
も可能である。局所性の高い他の並列キャッシング構成
も、同様に本発明の恩恵に浴することが出来る。従っ
て、本発明に対する判断は、請求範囲によって行うのが
望ましい。
【図面の簡単な説明】
【図1】図1は、本発明に従って設計された変換索引緩
衝機構のブロック図である。
【符号の説明】
10 変換索引緩衝機構 14 入力ライン 15 入力ライン 16 入力ライン 18 マルチプレクサ 19 文脈レジスタ 20 マルチプレクサ 30 命令変換バッファ・レジスタ 32 導体 34 導体 36 コンパレータ 38 マルチプレクサ 39 マルチプレクサ 40 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーター・メーリング アメリカ合衆国 01887 マサチューセ ッツ州・ウィルミントン・ルーズベルト ロード・11 (56)参考文献 特開 昭60−168251(JP,A) 特開 平2−51755(JP,A) 特開 平1−226056(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/10

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 仮想命令アドレス、命令以外の仮想ア
    ドレスをこれらの仮想アドレスにそれぞれ関連する物
    理的アドレスに並列に変換するとともにキャッシングす
    るための変換索引緩衝機構において、 複数の命令および命令以外の仮想アドレスとそれぞれ
    連する物理的アドレスを記憶可能であって提示された
    仮想命令アドレスまたは提示された命令以外の仮想アド
    レスの変換を行う主キャッシュと、 前記変換索引緩衝機構において、仮想命令アドレス及び
    関連する物理的アドレスの変換が行われる毎に、その仮
    想命令アドレス及びその関連する物理的アドレスを記憶
    するレジスタ手段と、命令以外の仮想アドレスの物理的アドレスへの変換を前
    記主キャッシュで、 仮想命令アドレスの物理的アドレス
    への変換を前記レジスタ手段で、並列に実行する手段と
    を備えたことを特徴とする変換索引緩衝機構。
  2. 【請求項2】 それぞれ関連する物理的アドレスへの変
    換が必要とされるとともに同時に生じうるデータ及び命
    令に関する仮想アドレスとそれらの物理的アドレスとを
    キャッシングするとともに物理的アドレスへの変換を行
    変換索引緩衝機構において、 複数の仮想アドレス及び関連する物理的アドレスを記憶
    するための主キャッシュと、 前記変換索引緩衝機構において、仮想命令アドレス及び
    関連する物理的アドレスの変換が行われる毎に、その仮
    想命令アドレス及びその関連する物理的アドレスを記憶
    するレジスタ手段と、前記変換索引緩衝機構内での仮想アドレスの変換中、
    記レジスタ手段に記憶されている仮想命令アドレスが
    理的アドレスへの変換が必要とされる仮想命令アドレス
    と一致するか否かを比較する比較手段と、 前記比較手段の一致判定にしたがって、前記変換索引緩
    衝機構内での仮想アドレスの変換に並列に、前記レジス
    タ手段で前記仮想命令アドレスの変換を行う手段と を備
    えたことを特徴とする変換索引緩衝機構。
  3. 【請求項3】 並列に変換されうる命令及びそれ以外の
    仮想アドレスを関連した物理的アドレスと一緒にキャッ
    シングするためのバッファにおいて、 命令及びそれ以外の仮想アドレスと関連した物理的アド
    レスを含む項目を複数記憶するための主キャッシュと、 前記バッファにおいて、仮想命令アドレス及び関連する
    物理的アドレスの変換が行われる毎に、その仮想命令ア
    ドレス及びその関連する物理的アドレスを記憶するレジ
    スタ手段と、前記主キャッシュを用いた仮想アドレスの変換中、 前記
    レジスタ手段に記憶されている仮想命令アドレスが物理
    的アドレスへの変換が必要とされる仮想アドレスに一致
    するか否かを比較する比較手段、 前記比較手段の一致判定にしたがって前記主キャッシ
    ュでの仮想アドレスの変換に並列に、前記レジスタ手段
    前記仮想命令アドレスの変換を行う手段と を備えた
    とを特徴とするバッファ。
  4. 【請求項4】 メモリを備えたコンピュータに使用され
    る変換索引緩衝機構において、 仮想メモリアドレスと、この仮想メモリアドレスに対応
    する物理メモリアドレスとを含む項目を複数格納する主
    キャッシュと、 前記変換索引緩衝機構において変換の優先順位の低い仮
    想メモリアドレス及び関連する物理メモリアドレスの変
    換が行われる毎に、その低優先順位の仮想メモリアドレ
    ス及びその関連する物理メモリアドレスを記憶する単一
    の項目を有するレジスタと、前記主キャッシュを用いた仮想メモリアドレスの変換
    中、 前記レジスタ手段に記憶されている変換の優先順位
    の低い仮想メモリアドレスが物理的アドレスへの変換が
    必要とされる仮想アドレスに一致するか否かを比較する
    比較手段、 前記比較手段の一致判定にしたがって、前記主キャッシ
    ュでの変換の優先順位の高い仮想アドレスの変換に並列
    して、前記レジスタ手段で前記変換の優先順位の低い仮
    想メモリアドレスの変換を行う手段と を備えたことを特
    徴とする変換索引緩衝機構。
  5. 【請求項5】 メモリを備えたコンピュータに使用され
    る変換索引緩衝機構において、 仮想メモリアドレスと、この仮想メモリアドレスに対応
    するとともに命令アドレス、データアドレス又は入力/
    出力アドレスのいずれかである物理メモリアドレスを含
    む項目を複数格納する主キャッシュと、 前記主キャッシュの複数の項目の内、命令アドレスに対
    応する一つの項目を格納するレジスタと、 仮想メモリアドレスに対応する情報を検索するため当該
    仮想メモリアドレスをもって前記主キャッシュ内の複数
    の項目をアクセスする手段であって命令アドレスの変換
    に対しては低い優先順位を付与するアクセス手段とを備
    え、 さらに、このアクセス手段変換についてより高い優
    先順位をもつ仮想アドレスをもって前記主キャッシュを
    アクセスしている間に、より低い優先順位を付与された
    仮想命令アドレスをもって前記レジスタをアクセスする
    手段を備え、より低い優先順位を付与された仮想命令ア
    ドレスに対応する情報へのアクセスが、より高い優先順
    位をもつ仮想アドレスの主キャッシュへのアクセス完了
    に対して実質的に遅れないよう構成したことを特徴とす
    る変換索引緩衝機構。
  6. 【請求項6】 仮想メモリアドレスをキャッシングする
    主キャッシュを備えた変換索引バッファと、データを検
    索するため仮想メモリアドレスをもって前記主キャッシ
    ュをアクセスする手段とを有するコンピュータシステム
    であって、前記アクセス手段が同時に二つの仮想メモリ
    アドレスをもって前記主キャッシュをアクセスすること
    ができないコンピュータシステムにおいて、低優先順位が付与された 単一の仮想メモリアドレスを
    前記主キャッシュから格納するレジスタと、 前記変換索引バッファをアクセスする前記アクセス手段
    、高優先順位が付与された仮想メモリアドレスをもっ
    て前記主キャッシュをアクセスしていると同時に低優先
    順位が付与された仮想メモリアドレスをもって前記レジ
    スタ手段をアクセスする手段とを備え、前記レジスタを用いた低優先順位が付与された仮想メモ
    リアドレスの 変換と、前記主キャッシュを用いた高優先
    順位が付与された仮想メモリアドレスの変換の間に実
    質的な遅れが生じないよう構成したことを特徴とするコ
    ンピュータシステム。
JP35440291A 1990-12-21 1991-12-20 変換索引緩衝機構 Expired - Fee Related JP3449487B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US633460 1990-12-21
US07/633,460 US5305444A (en) 1990-12-21 1990-12-21 Apparatus for increasing the number of hits in a translation lookaside buffer including instruction address lookaside register

Publications (2)

Publication Number Publication Date
JPH06180672A JPH06180672A (ja) 1994-06-28
JP3449487B2 true JP3449487B2 (ja) 2003-09-22

Family

ID=24539712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35440291A Expired - Fee Related JP3449487B2 (ja) 1990-12-21 1991-12-20 変換索引緩衝機構

Country Status (6)

Country Link
US (1) US5305444A (ja)
EP (1) EP0492838B1 (ja)
JP (1) JP3449487B2 (ja)
KR (1) KR960001945B1 (ja)
CA (1) CA2058259C (ja)
DE (1) DE69130942T2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3190700B2 (ja) * 1991-05-31 2001-07-23 日本電気株式会社 アドレス変換装置
JPH087717B2 (ja) * 1991-09-03 1996-01-29 富士通株式会社 動的アドレス変換処理装置
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
US5463750A (en) * 1993-11-02 1995-10-31 Intergraph Corporation Method and apparatus for translating virtual addresses in a data processing system having multiple instruction pipelines and separate TLB's
EP0668565B1 (en) * 1994-02-22 2002-07-17 Advanced Micro Devices, Inc. Virtual memory system
JP3456768B2 (ja) * 1994-09-28 2003-10-14 株式会社東芝 アドレス変換装置
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system
EP0813709B1 (en) * 1995-03-03 2007-10-17 Fujitsu Limited Parallel access micro-tlb to speed up address translation
US5924125A (en) * 1995-08-01 1999-07-13 Arya; Siamak Method and apparatus for parallel access to consecutive TLB entries
EP0814406A1 (en) * 1996-06-19 1997-12-29 Motorola, Inc. Method and apparatus for transforming a virtual address
US6185203B1 (en) * 1997-02-18 2001-02-06 Vixel Corporation Fibre channel switching fabric
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
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6079005A (en) * 1997-11-20 2000-06-20 Advanced Micro Devices, Inc. Microprocessor including virtual address branch prediction and current page register to provide page portion of virtual and physical fetch address
US6079003A (en) 1997-11-20 2000-06-20 Advanced Micro Devices, Inc. Reverse TLB for providing branch target address in a microprocessor having a physically-tagged cache
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
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US9153211B1 (en) * 2007-12-03 2015-10-06 Nvidia Corporation Method and system for tracking accesses to virtual addresses in graphics contexts

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4453230A (en) * 1977-12-29 1984-06-05 Tokyo Shibaura Electric Co., Ltd. Address conversion system
US4400774A (en) * 1981-02-02 1983-08-23 Bell Telephone Laboratories, Incorporated Cache addressing arrangement in a computer system
US4577293A (en) * 1984-06-01 1986-03-18 International Business Machines Corporation Distributed, on-chip cache
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US5060137A (en) * 1985-06-28 1991-10-22 Hewlett-Packard Company Explicit instructions for control of translation lookaside buffers
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US4933837A (en) * 1986-12-01 1990-06-12 Advanced Micro Devices, Inc. Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories
IT1216086B (it) * 1988-03-15 1990-02-22 Honeywell Bull Spa Memoria tampone ad indirizzamento pseudo virtuale.
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system

Also Published As

Publication number Publication date
CA2058259A1 (en) 1992-06-22
US5305444A (en) 1994-04-19
EP0492838A2 (en) 1992-07-01
EP0492838A3 (en) 1993-01-13
DE69130942D1 (de) 1999-04-08
JPH06180672A (ja) 1994-06-28
KR920013135A (ko) 1992-07-28
CA2058259C (en) 2002-12-17
KR960001945B1 (ko) 1996-02-08
DE69130942T2 (de) 1999-09-30
EP0492838B1 (en) 1999-03-03

Similar Documents

Publication Publication Date Title
JP3449487B2 (ja) 変換索引緩衝機構
KR960001946B1 (ko) 우선 변환 참조버퍼
US5282274A (en) Translation of multiple virtual pages upon a TLB miss
KR920005280B1 (ko) 고속 캐쉬 시스템
US5813031A (en) Caching tag for a large scale cache computer memory system
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US8799621B2 (en) Translation table control
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US6161166A (en) Instruction cache for multithreaded processor
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
US7089398B2 (en) Address translation using a page size tag
JP3666689B2 (ja) 仮想アドレス変換方法
KR20010101693A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JP2001184263A (ja) 旧キャッシュラインを無効化および除去する装置
JPH02189659A (ja) 仮想記憶動的アドレス変換システム
JPH04352256A (ja) メモリ空間を節約する方法および装置
JPH08272693A (ja) 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置
JPH07104816B2 (ja) コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
US5897651A (en) Information handling system including a direct access set associative cache and method for accessing same
US5737575A (en) Interleaved key memory with multi-page key cache

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees