JPH03266153A - 速度向上のために部分アドレスを使用する2レベル変換ルックアサイドバッファ - Google Patents
速度向上のために部分アドレスを使用する2レベル変換ルックアサイドバッファInfo
- Publication number
- JPH03266153A JPH03266153A JP2330971A JP33097190A JPH03266153A JP H03266153 A JPH03266153 A JP H03266153A JP 2330971 A JP2330971 A JP 2330971A JP 33097190 A JP33097190 A JP 33097190A JP H03266153 A JPH03266153 A JP H03266153A
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- tlb
- memory
- cache
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 8
- 238000006243 chemical reaction Methods 0.000 title description 7
- 230000015654 memory Effects 0.000 claims abstract description 78
- 238000013519 translation Methods 0.000 claims description 16
- 230000009466 transformation Effects 0.000 abstract description 4
- 230000014616 translation Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000004040 coloring Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 1
- 101150046378 RAM1 gene Proteins 0.000 description 1
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000001824 photoionisation detection Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/653—Page colouring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
技術分野
本発明は、仮想アドレスを物理的アドレスへ変換する変
換ルックアサイドバッファ(TLB)に関するものであ
る。
換ルックアサイドバッファ(TLB)に関するものであ
る。
従来技術
マルチユーザのコンビニータシステムにおいては、幾つ
かの異なったプログラムが、同一の仮想アドレスを使用
することを所望する場合がある。
かの異なったプログラムが、同一の仮想アドレスを使用
することを所望する場合がある。
これを達成するために、変換ルックアサイドバッフy(
transl)ation 1Jook−aside
buffer、即ちTLB)は、幾つかのプログラ
ムによって使用することが可能な「仮想」アドレスを、
各プログラムに対しての別個の「物理的」アドレスへ再
指向させるテーブルを有している。各プログラムはアド
レス0においてスタートすることを好むので、このこと
はしばしば発生する。二つの異なった仮想アドレスが同
一の物理的アドレスを共用する場合にTLBを使用する
ことも可能であり、システムは、その物理的アドレスに
対して最後に書込みを行なったのは誰かということを記
憶しておかねばならない。従って、TLBは、メモリア
クセスを制御し且つトラック、即ち追従する能力を与え
ている。メモリのある部分は、例えば、ある種のプログ
ラムによっては書込み不可能であるか又は読取り不可能
であるものとして指定することが可能である。1態様に
おいては、各プログラムに関連する処理識別コード(P
I D)を使用して、TLBは、異なったプログラム
に対する同一の仮想アドレスを区別する。
transl)ation 1Jook−aside
buffer、即ちTLB)は、幾つかのプログラ
ムによって使用することが可能な「仮想」アドレスを、
各プログラムに対しての別個の「物理的」アドレスへ再
指向させるテーブルを有している。各プログラムはアド
レス0においてスタートすることを好むので、このこと
はしばしば発生する。二つの異なった仮想アドレスが同
一の物理的アドレスを共用する場合にTLBを使用する
ことも可能であり、システムは、その物理的アドレスに
対して最後に書込みを行なったのは誰かということを記
憶しておかねばならない。従って、TLBは、メモリア
クセスを制御し且つトラック、即ち追従する能力を与え
ている。メモリのある部分は、例えば、ある種のプログ
ラムによっては書込み不可能であるか又は読取り不可能
であるものとして指定することが可能である。1態様に
おいては、各プログラムに関連する処理識別コード(P
I D)を使用して、TLBは、異なったプログラム
に対する同一の仮想アドレスを区別する。
TLBは、完全に連合したもの、直接的にマツプしたも
の、又はそれらの間のものとすることが可能である。完
全連合TLBにおいては、特定の変換(翻訳)は、TL
Bにおける何れかの箇所とすることが可能である。各メ
モリアクセスにおいて、仮想アドレスは、TLBの内容
の全てと比較されねばならない。このことは、シーケン
シャルに行なわれる場合には、極めて時間がかかり、従
って、大量のハードウェア及び比較器を使用して同時的
に行なわれる。直接マツプ型TLBの場合には、各仮想
ページアドレスの変換乃至は翻訳に対してTLB内に単
一の位置が存在している。従って、仮想ページアドレス
は、その変換乃至は翻訳に対するTLB内の適切な位置
に対してのインデックスとして使用される。エントリか
TLB内のものではない場合には、ソフトウェアに対す
るトラップが行なわれる。該ソフトウェアは、全ての変
換乃至は翻訳に対する完全なリストを収容している。
の、又はそれらの間のものとすることが可能である。完
全連合TLBにおいては、特定の変換(翻訳)は、TL
Bにおける何れかの箇所とすることが可能である。各メ
モリアクセスにおいて、仮想アドレスは、TLBの内容
の全てと比較されねばならない。このことは、シーケン
シャルに行なわれる場合には、極めて時間がかかり、従
って、大量のハードウェア及び比較器を使用して同時的
に行なわれる。直接マツプ型TLBの場合には、各仮想
ページアドレスの変換乃至は翻訳に対してTLB内に単
一の位置が存在している。従って、仮想ページアドレス
は、その変換乃至は翻訳に対するTLB内の適切な位置
に対してのインデックスとして使用される。エントリか
TLB内のものではない場合には、ソフトウェアに対す
るトラップが行なわれる。該ソフトウェアは、全ての変
換乃至は翻訳に対する完全なリストを収容している。
プロセサがTLB及びメインメモリのみを有する場合で
あっても、しばしば、「キャッシュ」メモリはTLBと
関連して使用される。キャッシュメモリは再度使用され
ることを予想して最も最近にアクセスされたデータ(又
は命令)を格納する小型で迅速にアクセスされるメモリ
であり、従って、メインメモリへのより長いアクセス時
間を除去している。キャッシュメモリは、データ部分と
タグ(tag)部分とを有している。このタグ部分は、
データ部分内に格納されるデータのアドレスを収納して
いる。プログラムによって要求される各アドレスは、タ
グアドレスと比較されて、そのデータが存在するか否か
を判別する。存在する場合には、そのデータはデータキ
ャッシュからアクセスされる。そうでない場合には、シ
ステムは、そのデータのためにメインメモリへ行かねば
ならない。その場合には、該データが使用され且つキャ
ッシュ内にも格納され、従ってそれは、次のアクセスに
対して使用することが可能である。典型的に、データは
メインメモリからキャッシュへ転送され、次いでキャッ
シュからアクセスされる。
あっても、しばしば、「キャッシュ」メモリはTLBと
関連して使用される。キャッシュメモリは再度使用され
ることを予想して最も最近にアクセスされたデータ(又
は命令)を格納する小型で迅速にアクセスされるメモリ
であり、従って、メインメモリへのより長いアクセス時
間を除去している。キャッシュメモリは、データ部分と
タグ(tag)部分とを有している。このタグ部分は、
データ部分内に格納されるデータのアドレスを収納して
いる。プログラムによって要求される各アドレスは、タ
グアドレスと比較されて、そのデータが存在するか否か
を判別する。存在する場合には、そのデータはデータキ
ャッシュからアクセスされる。そうでない場合には、シ
ステムは、そのデータのためにメインメモリへ行かねば
ならない。その場合には、該データが使用され且つキャ
ッシュ内にも格納され、従ってそれは、次のアクセスに
対して使用することが可能である。典型的に、データは
メインメモリからキャッシュへ転送され、次いでキャッ
シュからアクセスされる。
この様にして、キャッシュをバイパスしてメインメモリ
への直接的な別個のアクセスは必要ないので、単一のア
クセス経路が必要とされるに過ぎない。
への直接的な別個のアクセスは必要ないので、単一のア
クセス経路が必要とされるに過ぎない。
データは、典型的に、ブロックの形態でキャッシュ内に
書込まれる。該ブロックは、所望のデータ及びメモリの
同一エリア内のデータのその他のバイトを包含している
。このことは、爾後のメモリアクセスが同一のブロック
に対するものである蓋然性があるので、行なわれる。
書込まれる。該ブロックは、所望のデータ及びメモリの
同一エリア内のデータのその他のバイトを包含している
。このことは、爾後のメモリアクセスが同一のブロック
に対するものである蓋然性があるので、行なわれる。
「完全連合」キャッシュは、メインメモリ内のどこにブ
ロックが位置されていたかということとは独立的に、キ
ャッシュ内に入る数だけのブロックを保持することが可
能である。しかしながら、各メモリアクセスにおいて、
タグの全てがアドレスと比較されねばならず、従ってメ
モリアクセス処理を著しく遅滞化するか又はより多くの
ハードウェアを必要とする。より廉価で且つ高速のキャ
ッシュシステムは、「直列マツプ型」キャッシュであり
、その場合、各ブロックはキャッシュ内の指定された位
置を有している。その位置は、多数のブロックによって
使用される。メモリアクセスにおいて、所望のブロック
に対するタグが存在するか否かを決定するためにはその
位置のみをアクセスすることが必要であるに過ぎない。
ロックが位置されていたかということとは独立的に、キ
ャッシュ内に入る数だけのブロックを保持することが可
能である。しかしながら、各メモリアクセスにおいて、
タグの全てがアドレスと比較されねばならず、従ってメ
モリアクセス処理を著しく遅滞化するか又はより多くの
ハードウェアを必要とする。より廉価で且つ高速のキャ
ッシュシステムは、「直列マツプ型」キャッシュであり
、その場合、各ブロックはキャッシュ内の指定された位
置を有している。その位置は、多数のブロックによって
使用される。メモリアクセスにおいて、所望のブロック
に対するタグが存在するか否かを決定するためにはその
位置のみをアクセスすることが必要であるに過ぎない。
このことは、低コスト及び高速度の利点を有しているが
、単一のキャッシュ位置に対して割当てられたグル−ブ
からただ一つのブロックのみが任意の時間においてキャ
ッシュ内に存在することが可能であるに過ぎないという
欠点を有している。直接マツプ型構成の主要な速度上の
利点は、それが正しいデータ(キャツシュヒツト)であ
ることを決定することと並列的に、プロセサがそのデー
タの使用をスタートすることが可能であるということで
ある。
、単一のキャッシュ位置に対して割当てられたグル−ブ
からただ一つのブロックのみが任意の時間においてキャ
ッシュ内に存在することが可能であるに過ぎないという
欠点を有している。直接マツプ型構成の主要な速度上の
利点は、それが正しいデータ(キャツシュヒツト)であ
ることを決定することと並列的に、プロセサがそのデー
タの使用をスタートすることが可能であるということで
ある。
キャッシュミスが存在する場合には、そのデータの使用
はアボート、即ち中止される。
はアボート、即ち中止される。
スタンダードなキャッシュメモリは、物理的なインデッ
クスをとり且つ物理的タグを有する物理的キャッシュで
ある(IBM3090、TECVAX 11/780
.MIPS RC3260)。物理的キャッシュは、
TLBが仮想アドレスを物理的アドレスへ変換した後に
位置決めされる(第5図参照)。このタイプのキャッシ
ュは、TLBによって物理的アドレスへ変換された後に
、そのアドレスを使用し、従って、物理的キャッシュタ
グに対する比較のための物理的アドレスを有している。
クスをとり且つ物理的タグを有する物理的キャッシュで
ある(IBM3090、TECVAX 11/780
.MIPS RC3260)。物理的キャッシュは、
TLBが仮想アドレスを物理的アドレスへ変換した後に
位置決めされる(第5図参照)。このタイプのキャッシ
ュは、TLBによって物理的アドレスへ変換された後に
、そのアドレスを使用し、従って、物理的キャッシュタ
グに対する比較のための物理的アドレスを有している。
別のタイプのキャッシュは、仮想キャッシュてあり、そ
れは仮想アドレスでインデックスされている。仮想キャ
ッシュは、キャツシュヒツトの場合にTLBに対する必
要性を除去しており、従ってキャッシュへ行く前にTL
B変換を行なう必要がないので、メモリアクセス動作を
スピードアップさせている。あるタイプ(Sun 3
/200)は、仮想アドレスインデックスにおいて仮想
アドレスタグを格納する(第6図参照)。
れは仮想アドレスでインデックスされている。仮想キャ
ッシュは、キャツシュヒツトの場合にTLBに対する必
要性を除去しており、従ってキャッシュへ行く前にTL
B変換を行なう必要がないので、メモリアクセス動作を
スピードアップさせている。あるタイプ(Sun 3
/200)は、仮想アドレスインデックスにおいて仮想
アドレスタグを格納する(第6図参照)。
このタイプの仮想キャッシュシステムは、単一の物理的
アドレスヘマップする仮想アドレスが適切に処理される
ことを確保するためにシステム管理を必要とする。別の
タイプの仮想キャッシュは、物理的タグを除いた仮想イ
ンデックスを使用する(ELXS I 6400)。
アドレスヘマップする仮想アドレスが適切に処理される
ことを確保するためにシステム管理を必要とする。別の
タイプの仮想キャッシュは、物理的タグを除いた仮想イ
ンデックスを使用する(ELXS I 6400)。
このタイプにおいては、ヒツト(bit)が存在するか
否かを決定するためにキャッシュタグと比較するための
物理的アドレスを発生することと並列的にTLBが動作
する(第7図参照)。
否かを決定するためにキャッシュタグと比較するための
物理的アドレスを発生することと並列的にTLBが動作
する(第7図参照)。
目 的
本発明は、以上の点に鑑みなされたものであって、上述
した如き従来技術の欠点を解消し、仮想ページ番号の一
部をTLBスライス形態で物理的ページ番号の一部へ変
換することが可能なメモリアドレス装置を提供すること
を目的とする。
した如き従来技術の欠点を解消し、仮想ページ番号の一
部をTLBスライス形態で物理的ページ番号の一部へ変
換することが可能なメモリアドレス装置を提供すること
を目的とする。
構成
本発明によれば、仮想ページ番号の一部を、rTLBス
ライス」の形態で物理的ページ番号の一部へ変換乃至は
翻訳する装置が提供される。このスライス変換は、物理
的タグに加えて仮想タグを有しており且つそのアドレス
が物理的である物理的キャッシュメモリ内へインデック
スするために使用される。この仮想タグを入力仮想アド
レスページ番号と比較することにより、TLBスライス
とキャッシュメモリとの組合わせにおいてヒラ)(bi
t)又はミス(miss)があったか否かを決定するこ
とが可能である。
ライス」の形態で物理的ページ番号の一部へ変換乃至は
翻訳する装置が提供される。このスライス変換は、物理
的タグに加えて仮想タグを有しており且つそのアドレス
が物理的である物理的キャッシュメモリ内へインデック
スするために使用される。この仮想タグを入力仮想アド
レスページ番号と比較することにより、TLBスライス
とキャッシュメモリとの組合わせにおいてヒラ)(bi
t)又はミス(miss)があったか否かを決定するこ
とが可能である。
仮想アドレスの数ビットのみを物理的アドレスの数ビッ
トへ変換することにより、装置の動作速度を著しく向上
させることが可能である。この増加された速度は、TL
Bスライスを直接マツプ型とさせ、且つそれを特別のハ
ードウェア(高速RAM(ランダムアクセスメモリ)又
はラッチ及びマルチプレクサの何れか)で構築するため
にその小さな寸法を利用することにより達成される。
トへ変換することにより、装置の動作速度を著しく向上
させることが可能である。この増加された速度は、TL
Bスライスを直接マツプ型とさせ、且つそれを特別のハ
ードウェア(高速RAM(ランダムアクセスメモリ)又
はラッチ及びマルチプレクサの何れか)で構築するため
にその小さな寸法を利用することにより達成される。
TLBスライスヒツトを決定するためにTLBスライス
出力端において別の比較は存在しない。
出力端において別の比較は存在しない。
爾後のキャッシュタグ比較は、変換が正確であったか否
か及びキャツシュヒツトかあったか否かの両方を表わす
ために使用される。しかしながら、この二重目的比較を
達成するために、仮想タグは、ヒツトが存在するか否か
を決定するために物理的キャッシュと結合されねばなら
ない。なぜならば、仮想アドレスの全体は変換されてお
らず、従って物理的タグと比較するための変換された物
理的アドレスは存在しないからである。
か及びキャツシュヒツトかあったか否かの両方を表わす
ために使用される。しかしながら、この二重目的比較を
達成するために、仮想タグは、ヒツトが存在するか否か
を決定するために物理的キャッシュと結合されねばなら
ない。なぜならば、仮想アドレスの全体は変換されてお
らず、従って物理的タグと比較するための変換された物
理的アドレスは存在しないからである。
ミスの場合には完全TLBを使用せねばならないが、完
全TLBはそれ程高速のものである必要はなく、従って
RAMの専用バンクを必要とすることはない。本発明の
小型ハードウェアメカニズムは、制限された密度での技
術においても、プロセサと同一のチップ上にアドレス変
換を設けることを可能とし、従って、物理的キャッシュ
に対するアドレスアクセス速度を著しく向上させている
。
全TLBはそれ程高速のものである必要はなく、従って
RAMの専用バンクを必要とすることはない。本発明の
小型ハードウェアメカニズムは、制限された密度での技
術においても、プロセサと同一のチップ上にアドレス変
換を設けることを可能とし、従って、物理的キャッシュ
に対するアドレスアクセス速度を著しく向上させている
。
本発明のTLBスライスは、通常のTLBよりも、著し
く小型であり、従って著しく高速である。
く小型であり、従って著しく高速である。
それは、100倍の程度−層小型である。TLBスライ
スが小型のものであることを可能とする幾つかのファク
タが存在している。ミスを決定するための比較は行なわ
ないので、仮想ページ番号を格納する必要がない。又、
大きなページ寸法及び2レベルキヤツシユを使用するこ
とにより、単に数個の物理的ページ番号ビット及び数個
のエントリが必要とされるに過ぎない。
スが小型のものであることを可能とする幾つかのファク
タが存在している。ミスを決定するための比較は行なわ
ないので、仮想ページ番号を格納する必要がない。又、
大きなページ寸法及び2レベルキヤツシユを使用するこ
とにより、単に数個の物理的ページ番号ビット及び数個
のエントリが必要とされるに過ぎない。
好適には、命令及びデータに対して別々のTLBスライ
スが使用される。このことは、二つのTLBスライスの
各々を一層小さく且つ高速とさせる。このことは、特定
のブロックにおける変換に対して二つの可能な場所が存
在する2態様セット連合メモリの利点と同等の利点を与
えており、従ってヒツトの確率を向上させている。TL
Bスライスは比較−を行なわないので、2態様セット連
合構成を直接的に使用することはできない。
スが使用される。このことは、二つのTLBスライスの
各々を一層小さく且つ高速とさせる。このことは、特定
のブロックにおける変換に対して二つの可能な場所が存
在する2態様セット連合メモリの利点と同等の利点を与
えており、従ってヒツトの確率を向上させている。TL
Bスライスは比較−を行なわないので、2態様セット連
合構成を直接的に使用することはできない。
実施例
以下、添付の図面を参考に、本発明の具体的実施の態様
について詳細に説明する。
について詳細に説明する。
第1図は、従来技術に基づく完全連合変換ルックアサイ
ド(p ook−as 1de)バッファ(TLB)を
示している。仮想アドレスレジスタ10において、仮想
アドレスかコンピュータシステム(不図示)によって発
生される。アドレスの高位ビットは仮想ページ番号(V
PN)12を形成する。下位ビットは、オフセット14
を形成し、ページ内の所望のバイトの正確な位置を与え
る。
ド(p ook−as 1de)バッファ(TLB)を
示している。仮想アドレスレジスタ10において、仮想
アドレスかコンピュータシステム(不図示)によって発
生される。アドレスの高位ビットは仮想ページ番号(V
PN)12を形成する。下位ビットは、オフセット14
を形成し、ページ内の所望のバイトの正確な位置を与え
る。
システム内に格納されるプロセスID(PID)16は
、稼動中の特定のプロセス(処理)を識別する。典型的
には、RA M内においてTLB18が与えられる。T
LB18は、例えば、エントリ20のような64個のエ
ントリを有する場合がある。エントリ20は、仮想ペー
ジ番号(V P N)22、プロセスID (PID)
24、対応する物理的ページ番号(PPN)26を有し
ている。
、稼動中の特定のプロセス(処理)を識別する。典型的
には、RA M内においてTLB18が与えられる。T
LB18は、例えば、エントリ20のような64個のエ
ントリを有する場合がある。エントリ20は、仮想ペー
ジ番号(V P N)22、プロセスID (PID)
24、対応する物理的ページ番号(PPN)26を有し
ている。
多数の比較器28が設けられている。TLB内に64個
のエントリが存在する場合には、64個の比較器28が
設けられる。各比較器は、PID16及びVPN12を
、TLB20内のVPN22及びPID24の各々に対
して比較する。マツチするものが、セレクト論理30に
よって決定され、セレクト論理30は、ライン32上を
TLBに対してアドレス入力を与え、適切なPFN26
を物理的ページ番号としてライン34上に出力させる。
のエントリが存在する場合には、64個の比較器28が
設けられる。各比較器は、PID16及びVPN12を
、TLB20内のVPN22及びPID24の各々に対
して比較する。マツチするものが、セレクト論理30に
よって決定され、セレクト論理30は、ライン32上を
TLBに対してアドレス入力を与え、適切なPFN26
を物理的ページ番号としてライン34上に出力させる。
このPFNは、ライン36上のオフセットと結合されて
、全体的な物理的アドレスを与える。
、全体的な物理的アドレスを与える。
理解される如<、TLB20における全てのエントリの
同時的な比較を行なうためには大量のハードウェアが必
要とされる。一方、直接マツプ型TLBの場合、各エン
トリが仮想アドレスの一部がインデックスする単一の割
当てられた位置を有し、単一の比較器を使用することが
可能である。TLBエントリ20は、任意の時間におい
てシステムを使用する特定のプログラムを受付けるため
に書込まれ且つ修正することか可能である。理解される
如く、幾つかの異なったプログラムは同一のVPNを有
することが可能であるが、異なったPIDを有しており
、異なった物理的アドレスに対してのデコーディングを
可能としている。
同時的な比較を行なうためには大量のハードウェアが必
要とされる。一方、直接マツプ型TLBの場合、各エン
トリが仮想アドレスの一部がインデックスする単一の割
当てられた位置を有し、単一の比較器を使用することが
可能である。TLBエントリ20は、任意の時間におい
てシステムを使用する特定のプログラムを受付けるため
に書込まれ且つ修正することか可能である。理解される
如く、幾つかの異なったプログラムは同一のVPNを有
することが可能であるが、異なったPIDを有しており
、異なった物理的アドレスに対してのデコーディングを
可能としている。
第1図に示したTLBは完全連合型であり、任意のエン
トリは任意の位置において可能である。
トリは任意の位置において可能である。
一方、このTLBは直接マツプ型とすることが可能であ
り、その場合、各TLBエントリは単一の割当てられた
位置を有し、仮想アドレスの一部がその位置に対してイ
ンデックスする。従って、TLBを通過する多数の比較
器の代わりに、TLBの前にインデックス用論理及び単
一の比較器を使用することが可能である。
り、その場合、各TLBエントリは単一の割当てられた
位置を有し、仮想アドレスの一部がその位置に対してイ
ンデックスする。従って、TLBを通過する多数の比較
器の代わりに、TLBの前にインデックス用論理及び単
一の比較器を使用することが可能である。
第2図は、典型的な従来技術のTLBエントリを示して
おり、それは、第1図に示したVPNPID、PFNよ
りも一層多くのビットを有することか多い。これらの数
に加えて、TLBエントリは、そのページが「キャッシ
ュ不能(noncacheabllP、)Jであること
を表わすビット(N)を有している。このビットがセッ
トされると、そのページは、キャッシュ不能であると印
が付けられ、且つシステムは、最初にキャッシュをアク
セスする代わりにメインメモリを直接的にアクセスする
。ビットrDJは、そのページが「ダーティ−(dir
ty)Jであることを表わす。このビットがセットされ
ると、そのページは書込み可能であり、且つそのビット
は、ソフトウェアがデータの変更を防止するために使用
することが可能である「書込み保護(write−pr
otect)Jビットとして機能する。rVJビットは
有効ビットであり、それがセットされると、TLBエン
トリが有効であることを表わす。そうでない場合には、
ミスが発生する。rGJビットはグローバルビットであ
る。このビットがセットされると、PIDマツチ条件は
、有効な変換に対して無視される。このグローバルビッ
トは、複数個のプログラムが同一の空間を共用すること
を可能とする(即ち、同一の仮想ページ番号を同一の物
理的ページ番号ヘマップする)。「0」のマークが付け
られたビットは予約ビットである。
おり、それは、第1図に示したVPNPID、PFNよ
りも一層多くのビットを有することか多い。これらの数
に加えて、TLBエントリは、そのページが「キャッシ
ュ不能(noncacheabllP、)Jであること
を表わすビット(N)を有している。このビットがセッ
トされると、そのページは、キャッシュ不能であると印
が付けられ、且つシステムは、最初にキャッシュをアク
セスする代わりにメインメモリを直接的にアクセスする
。ビットrDJは、そのページが「ダーティ−(dir
ty)Jであることを表わす。このビットがセットされ
ると、そのページは書込み可能であり、且つそのビット
は、ソフトウェアがデータの変更を防止するために使用
することが可能である「書込み保護(write−pr
otect)Jビットとして機能する。rVJビットは
有効ビットであり、それがセットされると、TLBエン
トリが有効であることを表わす。そうでない場合には、
ミスが発生する。rGJビットはグローバルビットであ
る。このビットがセットされると、PIDマツチ条件は
、有効な変換に対して無視される。このグローバルビッ
トは、複数個のプログラムが同一の空間を共用すること
を可能とする(即ち、同一の仮想ページ番号を同一の物
理的ページ番号ヘマップする)。「0」のマークが付け
られたビットは予約ビットである。
第3図は、典型的な従来技術の直接マツプ型キャッシュ
システムを示したブロック図である。このキャッシュシ
ステムは、しばしばコールされるアドレスを、迅速にア
クセスされるキャツシュRAM40内に格納することを
可能とする。アドレス42の一部は、タグRAM48か
ら特定のタグ46を選択し且つキャツシュRAM40内
のブロック52におけるデータ50の特定のバイトを選
択するインデックスとして与えられる。シーケンシャル
なメモリ位置がしばしばアクセスされるので、キャッシ
ュへ引かれるデータの各バイトは、典型的に、キャッシ
ュRAMのキャッシュフレーム52内へ置かれる周りの
バイトのブロックと共に引かれる。
システムを示したブロック図である。このキャッシュシ
ステムは、しばしばコールされるアドレスを、迅速にア
クセスされるキャツシュRAM40内に格納することを
可能とする。アドレス42の一部は、タグRAM48か
ら特定のタグ46を選択し且つキャツシュRAM40内
のブロック52におけるデータ50の特定のバイトを選
択するインデックスとして与えられる。シーケンシャル
なメモリ位置がしばしばアクセスされるので、キャッシ
ュへ引かれるデータの各バイトは、典型的に、キャッシ
ュRAMのキャッシュフレーム52内へ置かれる周りの
バイトのブロックと共に引かれる。
第3図に示したシステムは、「直接マツプ型」キャッシ
ュであり、その場合、各アドレスは、それが格納せねば
ならない特定のキャッシュフレーム52が割当てられて
いる。−群のメモリの異なったブロックは同一のキャッ
シュフレームに対して割当てられている。アドレス42
の一部は、アドレスに基づいて特定のキャッシュフレー
ムを選択するためのインデックスとして機能する。正確
な所望のアドレスが選択したフレーム内に存在するか否
かを決定するために、タグ46が比較器54によってア
ドレス42の高位部分と比較される。
ュであり、その場合、各アドレスは、それが格納せねば
ならない特定のキャッシュフレーム52が割当てられて
いる。−群のメモリの異なったブロックは同一のキャッ
シュフレームに対して割当てられている。アドレス42
の一部は、アドレスに基づいて特定のキャッシュフレー
ムを選択するためのインデックスとして機能する。正確
な所望のアドレスが選択したフレーム内に存在するか否
かを決定するために、タグ46が比較器54によってア
ドレス42の高位部分と比較される。
この種類のキャッシュの限界は、各グループから単一の
ブロックのみが一度に格納することが可能であるに過ぎ
ないということである。
ブロックのみが一度に格納することが可能であるに過ぎ
ないということである。
別のタイプのキャッシュは、完全連合型キャッシュであ
り、その場合、各アドレスはキャツシュRAM内の任意
の位置に格納することが可能である。しかしながら、こ
のタイプのキャッシュは、タグRAM48内のタグの全
てがアドレスに対して比較されることを必要とする。こ
のことは、例えば第1図の複数個の比較器なとのような
多大なハードウェアを有するシステムを必要とするか、
又はRAM48内の全てのタグに対して多数の逐次的な
比較を行なうことの必要性のためにかなり遅いシステム
を必要とする。
り、その場合、各アドレスはキャツシュRAM内の任意
の位置に格納することが可能である。しかしながら、こ
のタイプのキャッシュは、タグRAM48内のタグの全
てがアドレスに対して比較されることを必要とする。こ
のことは、例えば第1図の複数個の比較器なとのような
多大なハードウェアを有するシステムを必要とするか、
又はRAM48内の全てのタグに対して多数の逐次的な
比較を行なうことの必要性のためにかなり遅いシステム
を必要とする。
第4図は、「直接マツプ型」キャッシュに対してヒツト
率を改善する従来技術のシステムを示している。二つの
キャッシュが並列的に供給され、二つのタグRAMが並
列的に設けられている。ブロックXがアクセスされると
、両方のタグがそのアドレスに対して比較される。従っ
て、同一のグループからの二つの異なったブロックが同
時的に存在することが可能である。このタイプのシステ
ムは、複数個の並列キャッシュに対して拡張することが
可能であるが、2が最も効率的な数字である。
率を改善する従来技術のシステムを示している。二つの
キャッシュが並列的に供給され、二つのタグRAMが並
列的に設けられている。ブロックXがアクセスされると
、両方のタグがそのアドレスに対して比較される。従っ
て、同一のグループからの二つの異なったブロックが同
時的に存在することが可能である。このタイプのシステ
ムは、複数個の並列キャッシュに対して拡張することが
可能であるが、2が最も効率的な数字である。
キャッシュとTLBとの組合わせ乃至は結合は二つの方
法で行なうことが可能である。キャッシュがコンピュー
タシステムによって発生されたアドレスに基づいて動作
し、且つ第1図から明らかな如く、二つのアドレス、即
ち仮想アドレスと物理的アドレスとが存在する。
法で行なうことが可能である。キャッシュがコンピュー
タシステムによって発生されたアドレスに基づいて動作
し、且つ第1図から明らかな如く、二つのアドレス、即
ち仮想アドレスと物理的アドレスとが存在する。
物理的タグを有する従来技術の物理的キャッジニジステ
ムを第75図に示しである。TLB66は、仮想アドレ
スで動作し物理的アドレスを発生する。
ムを第75図に示しである。TLB66は、仮想アドレ
スで動作し物理的アドレスを発生する。
この物理的アドレスは物理的キャッシュ68へ供給され
る。ミスが存在する場合には、該アドレスはその後メイ
ンメモリ70へ供給される。
る。ミスが存在する場合には、該アドレスはその後メイ
ンメモリ70へ供給される。
第6図は、TLB変換が行なわれる前に仮想タグを有す
る仮想キャッシュを使用して仮想アドレス上で動作する
システムを示している。仮想キャッシュ60は、仮想ア
ドレスを受取り、ミスが存在する場合には、該アドレス
はTLB62へ供給される。次いで、TLB62からの
物理的アドレス出力はメインメモリ64へ供給すること
が可能である。
る仮想キャッシュを使用して仮想アドレス上で動作する
システムを示している。仮想キャッシュ60は、仮想ア
ドレスを受取り、ミスが存在する場合には、該アドレス
はTLB62へ供給される。次いで、TLB62からの
物理的アドレス出力はメインメモリ64へ供給すること
が可能である。
第7図は、物理的タグを有する仮想キャッシュを示して
いる。この仮想アドレスは、並列的にキャッシュ71及
びTLB7Bへ供給される。この仮想アドレスで直接的
にキャッシュ内へインデックスすることにより、変換を
待つことなしに、データ(又は命令)を検索することが
可能である。
いる。この仮想アドレスは、並列的にキャッシュ71及
びTLB7Bへ供給される。この仮想アドレスで直接的
にキャッシュ内へインデックスすることにより、変換を
待つことなしに、データ(又は命令)を検索することが
可能である。
変換は並列的に行なわれ、且つ比較器75において物理
的タグと比較される。ミスが存在する場合には、そのキ
ャッシュデータは使用されず、且つTLB変換を使用し
てメインメモリ77から正確なデータをフェッチする。
的タグと比較される。ミスが存在する場合には、そのキ
ャッシュデータは使用されず、且つTLB変換を使用し
てメインメモリ77から正確なデータをフェッチする。
第8図は、本発明に基づ<TLBスライスシステムの高
レベル概略図である。仮想アドレス72は、仮想ページ
番号(VPN)74及びオフセット76を有した状態で
与えられる。VPN74の最小桁の三つのビットは、4
ビツトからなる8エントリを有する(4以外の数字を使
用することか可能である)メモリ(TLBスライス)8
2のアドレスとしてライン78上に与えられる。TLB
スライス82の出力は、オフセット76と結合されて物
理的インデックスとして使用され、物理的キャッシュ8
8及び仮想タグメモリ90をアドレスする。オフセット
76は、ライン92上をキャッシュ88へ供給され、T
LBスライス82からの高位ビット及びオフセットビッ
トの幾つかによって表わされるブロック96内の特定の
バイト94を選択する。ブロック96と連合する仮想タ
グ98は、完全VPN74と比較するために、比較器1
00へ供給される。好ましい比較である場合にはヒツト
が示される。注意すべきことであるが、任意の数のイン
デックス方法を使用することが可能であり、且つキャッ
シュ88内のブロックはページに対応することは必要で
はない。
レベル概略図である。仮想アドレス72は、仮想ページ
番号(VPN)74及びオフセット76を有した状態で
与えられる。VPN74の最小桁の三つのビットは、4
ビツトからなる8エントリを有する(4以外の数字を使
用することか可能である)メモリ(TLBスライス)8
2のアドレスとしてライン78上に与えられる。TLB
スライス82の出力は、オフセット76と結合されて物
理的インデックスとして使用され、物理的キャッシュ8
8及び仮想タグメモリ90をアドレスする。オフセット
76は、ライン92上をキャッシュ88へ供給され、T
LBスライス82からの高位ビット及びオフセットビッ
トの幾つかによって表わされるブロック96内の特定の
バイト94を選択する。ブロック96と連合する仮想タ
グ98は、完全VPN74と比較するために、比較器1
00へ供給される。好ましい比較である場合にはヒツト
が示される。注意すべきことであるが、任意の数のイン
デックス方法を使用することが可能であり、且つキャッ
シュ88内のブロックはページに対応することは必要で
はない。
TLBスライス82内の8個のエントリの各々は、最小
桁の3個のページビットがTLBスラ、イス82内のそ
のエントリのアドレスに対応する最後に使用された仮想
アドレスに対してのキャッシュ88に対する物理的イン
デックスを格納する。
桁の3個のページビットがTLBスラ、イス82内のそ
のエントリのアドレスに対応する最後に使用された仮想
アドレスに対してのキャッシュ88に対する物理的イン
デックスを格納する。
従って、爾後の参照が同一の仮想アドレスに対してのも
のである場合には、キャツシュヒツトとなる。TLBス
ライス又はキャッシュミスの場合には、完全なTLB変
換が行なわれねばならない。
のである場合には、キャツシュヒツトとなる。TLBス
ライス又はキャッシュミスの場合には、完全なTLB変
換が行なわれねばならない。
注意すべきことであるが、TLBスライスに対しての別
個のヒツト/ミス決定は存在しないので、ミスは、TL
Bスライスか又はキャッシュの何れかに起因するもので
ある。完全なTLB変換は、それがTLBスライスミス
であるか又はキャッシュミスであるかの決定を行なうこ
とを可能とする。
個のヒツト/ミス決定は存在しないので、ミスは、TL
Bスライスか又はキャッシュの何れかに起因するもので
ある。完全なTLB変換は、それがTLBスライスミス
であるか又はキャッシュミスであるかの決定を行なうこ
とを可能とする。
キャッシュミスの場合には、正確なデータがフェッチさ
れ且つキャッシュ88内に格納される。TLBスライス
ミスの場合には、TLBスライス82がアップデートさ
れる。アドレスはしばしば順番にフェッチされるので、
VPNの下位3ビツトを使用することは、8個のアドレ
スのシーケンシャルなシリーズをTLBスライス82内
に格納することを可能とすることを確保する。TLBス
ライスは、VPNの3個の下位ビット以外で実施するこ
とが可能である。
れ且つキャッシュ88内に格納される。TLBスライス
ミスの場合には、TLBスライス82がアップデートさ
れる。アドレスはしばしば順番にフェッチされるので、
VPNの下位3ビツトを使用することは、8個のアドレ
スのシーケンシャルなシリーズをTLBスライス82内
に格納することを可能とすることを確保する。TLBス
ライスは、VPNの3個の下位ビット以外で実施するこ
とが可能である。
第9図は、本発明に基づ<TLBスライスの好適実施例
をより具体的に示している。このTLBスライスメカニ
ズムは、プロセサチップ102内に収納されている。2
個のTLBスライスが設けられており、即ちTLBデー
タスライス104及びTLB命令スライス106が設け
られている(104及び106は、実際には、単一の論
理回路であり、制御信号がその一部又は別の部分を選択
するものである)。使用されるのに適したものは、セレ
クトライン110の制御下てマルチプレクサ108によ
って決定され、それは、プロセサ(不図示)のデコード
回路によって決定される如く、動作がデータに対しての
ものか又は命令に対してのものかに依存して一方又は他
方を選択する。
をより具体的に示している。このTLBスライスメカニ
ズムは、プロセサチップ102内に収納されている。2
個のTLBスライスが設けられており、即ちTLBデー
タスライス104及びTLB命令スライス106が設け
られている(104及び106は、実際には、単一の論
理回路であり、制御信号がその一部又は別の部分を選択
するものである)。使用されるのに適したものは、セレ
クトライン110の制御下てマルチプレクサ108によ
って決定され、それは、プロセサ(不図示)のデコード
回路によって決定される如く、動作がデータに対しての
ものか又は命令に対してのものかに依存して一方又は他
方を選択する。
仮想アドレス112の3ビツト!ヨ、ライン114上を
TLBデータスライス104及びTLB命令命令スライ
ス10岡0 適宜のスライスからの物理的インデックスはキャッシュ
RAM1.20へ与えられる。キャッシュRAM120
は、選択したブロックに対するタグ及びデータの両方を
有している。図示した好適実施例においては、二つの並
列キャッシュが2態様セット連合キャッシュに対して第
4図に示した態様で設けられている。しかしながら、こ
の場合、これらのタグは仮想タグである。両方のタグが
選択され且つそれぞれ比較器122及び124へ供給さ
れる。これらの比較器は、該タグと仮想ページ番号とを
比較して、何れがヒツトであるか且つどれが正確なタグ
であるかを決定する。論理回路126は、何れが正確な
タグであるかを決定し、且つマルチプレクサ130への
セレクト入力端128を介して対応するデータを選択す
る。次いで、その適切なデータは、データライン132
上をプロセサ102へ供給される。論理回路126は、
又、ライン134上にヒツト/ミス表示をプロセサ10
2内の状態マシン論理136へ供給する。
TLBデータスライス104及びTLB命令命令スライ
ス10岡0 適宜のスライスからの物理的インデックスはキャッシュ
RAM1.20へ与えられる。キャッシュRAM120
は、選択したブロックに対するタグ及びデータの両方を
有している。図示した好適実施例においては、二つの並
列キャッシュが2態様セット連合キャッシュに対して第
4図に示した態様で設けられている。しかしながら、こ
の場合、これらのタグは仮想タグである。両方のタグが
選択され且つそれぞれ比較器122及び124へ供給さ
れる。これらの比較器は、該タグと仮想ページ番号とを
比較して、何れがヒツトであるか且つどれが正確なタグ
であるかを決定する。論理回路126は、何れが正確な
タグであるかを決定し、且つマルチプレクサ130への
セレクト入力端128を介して対応するデータを選択す
る。次いで、その適切なデータは、データライン132
上をプロセサ102へ供給される。論理回路126は、
又、ライン134上にヒツト/ミス表示をプロセサ10
2内の状態マシン論理136へ供給する。
従来技術においては、キャッシュに対して一つ及びTL
Bに対して一つずつの2本のヒツト/ミスラインを設け
ることが必要である。
Bに対して一つずつの2本のヒツト/ミスラインを設け
ることが必要である。
1実施例における完全なTLBはキャッシュRAM1.
20のエリア140内に格納される。
20のエリア140内に格納される。
本発明は、好適には、TLBスライスをアクセスする前
に仮想タグを有する仮想キャッシュを使用するシステム
の形態で実現される。この−次キャッシュにおけるヒツ
トは、TLBスライスへの参照を除去し、且つそのメカ
ニズムを正当化するのに十分な全体的なヒツト率を与え
る。TLBスライスは、この−次仮想キャッシュにおけ
るミスの後においてのみアクセスされる。第9図の実施
例においては、仮想キャッシュはRAM150内に格納
され、且つ比較のために比較器152が使用される。ヒ
ツト/ミス信号は、ライン154上に与えられる。状態
マシン136は、キャッシュミスの場合に、TLBスラ
イス104,106をアクセスするための論理を有して
いる。TLBスライス変換は、実際には、並列的に行な
われて速度を向上させているが、仮想キャツシュヒツト
が存在する場合には、ヒツトライン154が、マルチプ
レクサ156ヘセレクト信号を供給することにより、キ
ャッシュ150からのデータを選択する。
に仮想タグを有する仮想キャッシュを使用するシステム
の形態で実現される。この−次キャッシュにおけるヒツ
トは、TLBスライスへの参照を除去し、且つそのメカ
ニズムを正当化するのに十分な全体的なヒツト率を与え
る。TLBスライスは、この−次仮想キャッシュにおけ
るミスの後においてのみアクセスされる。第9図の実施
例においては、仮想キャッシュはRAM150内に格納
され、且つ比較のために比較器152が使用される。ヒ
ツト/ミス信号は、ライン154上に与えられる。状態
マシン136は、キャッシュミスの場合に、TLBスラ
イス104,106をアクセスするための論理を有して
いる。TLBスライス変換は、実際には、並列的に行な
われて速度を向上させているが、仮想キャツシュヒツト
が存在する場合には、ヒツトライン154が、マルチプ
レクサ156ヘセレクト信号を供給することにより、キ
ャッシュ150からのデータを選択する。
状態マシン136の動作を示すフローチャートを第10
図に示しである。仮想タグキャッシュミスが発生したこ
とが決定されると(ステップA)、完全TLB140が
読取られ(ステップB)、且つその内容が状態マシン内
のレジスタA内に格納される。完全TLBもミスする場
合には(ステップC)、フラッグがセットされ、且つソ
フトウェアが乗り出してメモリからの完全の読取りを行
ない且つ完全TLB内にその適宜の結果を格納する。
図に示しである。仮想タグキャッシュミスが発生したこ
とが決定されると(ステップA)、完全TLB140が
読取られ(ステップB)、且つその内容が状態マシン内
のレジスタA内に格納される。完全TLBもミスする場
合には(ステップC)、フラッグがセットされ、且つソ
フトウェアが乗り出してメモリからの完全の読取りを行
ない且つ完全TLB内にその適宜の結果を格納する。
完全TLB内にヒツトが存在する場合には、完全TLB
がTLBスライスと比較される(ステップD)。マツチ
即ち整合が存在する場合には、このことはキャッシュミ
スを表わす。マツチが存在しない場合には、このことは
TLBスライスミスを表わす。TLBスライスミスの場
合、完全TLBによって決定される如く、正確な物理的
インデックスが適宜のTLBスライス位置内に書込まれ
る(ステップE)。
がTLBスライスと比較される(ステップD)。マツチ
即ち整合が存在する場合には、このことはキャッシュミ
スを表わす。マツチが存在しない場合には、このことは
TLBスライスミスを表わす。TLBスライスミスの場
合、完全TLBによって決定される如く、正確な物理的
インデックスが適宜のTLBスライス位置内に書込まれ
る(ステップE)。
キャッシュミスが発生した場合には、二つの物理的タグ
が読取られ且つ状態マシン内のレジスタB及びC内に格
納される(ステップF)。1実施例においては、物理的
タグはキャッシュの予約部分内に格納されるが、物理的
タグに対して別個のRAMを設けることも可能である。
が読取られ且つ状態マシン内のレジスタB及びC内に格
納される(ステップF)。1実施例においては、物理的
タグはキャッシュの予約部分内に格納されるが、物理的
タグに対して別個のRAMを設けることも可能である。
レジスタA(完全TLB)及びレジスタB及びC(タグ
1及び2)の内容が比較される(ステップG)。これら
の比較の内の一つにおいてマツチが存在すると、このこ
とは、実際にはキャツシュヒツトが存在したが、二つの
仮想アドレスが同一の単一の物理的アドレスに対してマ
ツプされたことを表わす。この同一のキャッシュライン
に対する次の参照で仮想タグヒツトを発生させるために
、その仮想タグは、正確なPIDをキャッシュタグ内に
コピーすることによって補正しくステップH)及びその
キャッシュデータが使用される(ステップI)。
1及び2)の内容が比較される(ステップG)。これら
の比較の内の一つにおいてマツチが存在すると、このこ
とは、実際にはキャツシュヒツトが存在したが、二つの
仮想アドレスが同一の単一の物理的アドレスに対してマ
ツプされたことを表わす。この同一のキャッシュライン
に対する次の参照で仮想タグヒツトを発生させるために
、その仮想タグは、正確なPIDをキャッシュタグ内に
コピーすることによって補正しくステップH)及びその
キャッシュデータが使用される(ステップI)。
ステップDがマツチの不存在を表わす場合、物理的タグ
キャッシュミスが存在する。次いて、ダーティ−ビット
がチエツクされる(ステップJ)。
キャッシュミスが存在する。次いて、ダーティ−ビット
がチエツクされる(ステップJ)。
このダーティ−ビットがセットされていると、とにかく
そこに存在するアドレスに対してキャッシュが書込まれ
、且つメインメモリは書込まれていない。従って、その
キャッシュの内容はメインメモリへ書込まれ(ステップ
K)、且つ新たなブロックがメインメモリから読取られ
且つキャッシュ内に格納される(ステップL)。同時に
、そのキャッシュブロックに対する仮想タグ及び物理的
タグが書込まれ、且つダーティ−ビットは、それがクリ
ーンであることを表わすべく変化される。そのデータが
該ダーティ−ビットによってダーティ−ではないものと
して示されると、メモリへの書込みのステップ(ステッ
プK)はスキップされる。
そこに存在するアドレスに対してキャッシュが書込まれ
、且つメインメモリは書込まれていない。従って、その
キャッシュの内容はメインメモリへ書込まれ(ステップ
K)、且つ新たなブロックがメインメモリから読取られ
且つキャッシュ内に格納される(ステップL)。同時に
、そのキャッシュブロックに対する仮想タグ及び物理的
タグが書込まれ、且つダーティ−ビットは、それがクリ
ーンであることを表わすべく変化される。そのデータが
該ダーティ−ビットによってダーティ−ではないものと
して示されると、メモリへの書込みのステップ(ステッ
プK)はスキップされる。
MIPSアーキテクチャにおいては、ある仮想アドレス
は非マツプ型とすることが可能であり、且つ物理的メモ
リ位置へ直接的に参照することが可能である。好適には
、非マツプ型参照を表わすアドレスビット31−29に
おける特定したパターンと共に32ビツトアドレスが使
用される。非マツプ型参照は、TLBスライス又は完全
TLBの何れも必要としない。
は非マツプ型とすることが可能であり、且つ物理的メモ
リ位置へ直接的に参照することが可能である。好適には
、非マツプ型参照を表わすアドレスビット31−29に
おける特定したパターンと共に32ビツトアドレスが使
用される。非マツプ型参照は、TLBスライス又は完全
TLBの何れも必要としない。
キャッシュ不能参照も、アドレスビット31−29内の
特別のコード化した値によって又は完全TLBエントリ
内のビットによって参照される。
特別のコード化した値によって又は完全TLBエントリ
内のビットによって参照される。
後者の場合には、参照すべきキャッシュタグが存在しな
いので、TLBスライスはミスする。完全TLBにおけ
るキャッシュ不能ビットは、キャッシュミスの後に発見
される。アドレス変換は、完全TLBと共に実行される
。
いので、TLBスライスはミスする。完全TLBにおけ
るキャッシュ不能ビットは、キャッシュミスの後に発見
される。アドレス変換は、完全TLBと共に実行される
。
好適実施例においては、アドレスの32ビツトは、仮想
アドレスに対しての同一のアドレスビット13−0を有
している。仮想アドレスのビット16−14は、適宜の
TLBスライス内へインデックスするために使用される
。選択されたTLBスライスエントリは、物理的アドレ
スビット1714を有している。VPNはビット31−
14から構成されている。物理的アドレスビット170
は、キャッシュメモリを読取るために使用される。完全
TLBが読取られると、完全TLBからの物理的アドレ
スビット35−14は物理的タグビット35−14と比
較される。
アドレスに対しての同一のアドレスビット13−0を有
している。仮想アドレスのビット16−14は、適宜の
TLBスライス内へインデックスするために使用される
。選択されたTLBスライスエントリは、物理的アドレ
スビット1714を有している。VPNはビット31−
14から構成されている。物理的アドレスビット170
は、キャッシュメモリを読取るために使用される。完全
TLBが読取られると、完全TLBからの物理的アドレ
スビット35−14は物理的タグビット35−14と比
較される。
TLBスライスは、少数のワード(好適実施例において
は8)から構成することが可能であり、且つページ寸法
が十分に大きいか(好適実施例においては16にバイト
)又はそれが仮想インデックスキャッシュの後に使用さ
れる場合には、高いヒツト率を達成する。TLBスライ
ス幅は、ページ寸法に対する1バンクのキャッシュの寸
法の比の2をベースとする対数に等しい。この比は好適
実施例においては16であり、従ってTLBスライスは
4ビット幅である。
は8)から構成することが可能であり、且つページ寸法
が十分に大きいか(好適実施例においては16にバイト
)又はそれが仮想インデックスキャッシュの後に使用さ
れる場合には、高いヒツト率を達成する。TLBスライ
ス幅は、ページ寸法に対する1バンクのキャッシュの寸
法の比の2をベースとする対数に等しい。この比は好適
実施例においては16であり、従ってTLBスライスは
4ビット幅である。
第11図は、ラッチ及びマルチプレクサを使用するTL
Bスライスの好適実施例を示している。
Bスライスの好適実施例を示している。
第11図は、各々が4個のラッチからなる16個の行を
示しており、ラッチIA、IB、IC,LDは最初の行
を形成しており、且つラッチ16A。
示しており、ラッチIA、IB、IC,LDは最初の行
を形成しており、且つラッチ16A。
168 16C,16Dは最後の行を形成している。ラ
ッチ内に格納されるべきデータはデータ入カラインD1
1−D14上に与えられる。該ラッチの各行の出力は、
16−1マルチプレクサへ供給され、マルチプレクサ1
70,172,174゜176の出力は、それぞれ、4
ビットデータ出力DOI、DO2,DO3,DO4であ
る。最初の行においては、ラッチIA 2A・・・1
6Aは、それらの出力を16−1マルチプレクサ170
の入力へ供給する。マルチプレクサ170の出力は第一
データ出力ビットを形成する。読取られるべき四つのラ
ッチへの16個の入力の特定の一つの選択は、4本の読
取リアドレスライン178上の全てのマルチプレクサへ
供給される4ビツトセレクト入力によって達成される。
ッチ内に格納されるべきデータはデータ入カラインD1
1−D14上に与えられる。該ラッチの各行の出力は、
16−1マルチプレクサへ供給され、マルチプレクサ1
70,172,174゜176の出力は、それぞれ、4
ビットデータ出力DOI、DO2,DO3,DO4であ
る。最初の行においては、ラッチIA 2A・・・1
6Aは、それらの出力を16−1マルチプレクサ170
の入力へ供給する。マルチプレクサ170の出力は第一
データ出力ビットを形成する。読取られるべき四つのラ
ッチへの16個の入力の特定の一つの選択は、4本の読
取リアドレスライン178上の全てのマルチプレクサへ
供給される4ビツトセレクト入力によって達成される。
第11図は、非常に高速のメモリを示している。
なぜならば、全てのラッチの出力はマルチプレクサの入
力端に存在しており、且つメモリアクセス時間は、単に
、出力として使用するために適宜のマルチプレクサ人力
を選択するために読取リアドレスに対して必要とされる
時間に過ぎないからである。
力端に存在しており、且つメモリアクセス時間は、単に
、出力として使用するために適宜のマルチプレクサ人力
を選択するために読取リアドレスに対して必要とされる
時間に過ぎないからである。
第11図のラッチ内へデータを書込むために、書込みイ
ネーブルラインWE 1−WE 16の一つがイネーブ
ルされる。例えば、WE2がイネーブルされると、ラッ
チ2A、2B、2C,2Dは、それらのイネーブル入力
端をイネーブル状態とさせ、従ってデータラインDll
−DIJ上のデータは、その他のラッチの何れかではな
くこれらのラッチ内に書込まれる。書込みイネーブル信
号は、デコーダ180へ供給される4個の書込みアドレ
スビットをデコードすることによって発生される。
ネーブルラインWE 1−WE 16の一つがイネーブ
ルされる。例えば、WE2がイネーブルされると、ラッ
チ2A、2B、2C,2Dは、それらのイネーブル入力
端をイネーブル状態とさせ、従ってデータラインDll
−DIJ上のデータは、その他のラッチの何れかではな
くこれらのラッチ内に書込まれる。書込みイネーブル信
号は、デコーダ180へ供給される4個の書込みアドレ
スビットをデコードすることによって発生される。
該デコーダの16個の出力の一つのみがイネーブルされ
、適宜の行のラッチがイネーブルされる。
、適宜の行のラッチがイネーブルされる。
その出力は、多数のANDゲートAND 1−AND1
6内のライン182上の書込みイネーブル信号とAND
処理される。このことは、デコーダ出力が安定化するま
で書込みイネーブル出力が供給されないようにするため
に行なわれる。勿論、書込みアドレス及び読取りアドレ
スは、同一のアドレスバスからのものとすることが可能
であり、書込みイネーブルの反転したもの又は読取り信
号がマルチプレクサへのイネーブル入力として供給され
る。
6内のライン182上の書込みイネーブル信号とAND
処理される。このことは、デコーダ出力が安定化するま
で書込みイネーブル出力が供給されないようにするため
に行なわれる。勿論、書込みアドレス及び読取りアドレ
スは、同一のアドレスバスからのものとすることが可能
であり、書込みイネーブルの反転したもの又は読取り信
号がマルチプレクサへのイネーブル入力として供給され
る。
TLBスライス内の多数のエントリが十分に大きなもの
である場合には、「ページ色付け(page coj
loring)Jを使用することか可能であり、従って
TLBスライスミス率は0へ降下する。対照的に、ペー
ジ色付けは、従来のTLBにおいてはミス率を減少させ
ることはできない。
である場合には、「ページ色付け(page coj
loring)Jを使用することか可能であり、従って
TLBスライスミス率は0へ降下する。対照的に、ペー
ジ色付けは、従来のTLBにおいてはミス率を減少させ
ることはできない。
ページ色付けは、仮想ページの物理的メモリ位置への割
当てを制限する1方法であり、従って仮想ページ番号の
N個の低位ビットが物理的ページ番号のN個の低位ビッ
トとマツチする。TLBスライスの幅がNであり且つT
LBにおけるエントリの数が2Nである場合には、TL
Bスライスは同一となり且つそのミス率はOへ降下する
。
当てを制限する1方法であり、従って仮想ページ番号の
N個の低位ビットが物理的ページ番号のN個の低位ビッ
トとマツチする。TLBスライスの幅がNであり且つT
LBにおけるエントリの数が2Nである場合には、TL
Bスライスは同一となり且つそのミス率はOへ降下する
。
以上、本発明の具体的実施の態様について詳細に説明し
たが、本発明は、これら具体例にのみ限定されるべきも
のではなく、本発明の技術的範囲を逸脱することなしに
、種々の変形が可能であることは勿論である。例えば、
ラッチ及びマルチプレクサを使用する代わりに、TLB
スライスはRAM内のものとすることが可能である。
たが、本発明は、これら具体例にのみ限定されるべきも
のではなく、本発明の技術的範囲を逸脱することなしに
、種々の変形が可能であることは勿論である。例えば、
ラッチ及びマルチプレクサを使用する代わりに、TLB
スライスはRAM内のものとすることが可能である。
第1図は従来の完全連合変換ルックアサイドバッファ
(TLB)を示した概略図、第2図は従来のTLBエン
トリのフォーマットを示した概略図、第3図は従来の直
接マツプ型キャッジニジステムを示した概略図、第4図
は従来の2態様セット連合キャッシュシステムを示した
概略図、第5図は従来の物理的タグを有する物理的キャ
ッシュシステムを示した概略図、第6図は従来の仮想タ
グを有する仮想キャッシュシステムを示した概略図、第
7図は従来の物理的タグを有する仮想キャッジニジステ
ムを示した概略図、第8図は本発明の一実施例に基づい
て構成されたTLBスライスシステムを示した概略図、
第9図は第8図の構成のより詳細な構成を示した概略図
、第10図は第9図の状態マシンのフローチャートを示
した概略図、第11図はTLBスライスの回路図、であ
る。 (符号の説明) 10:仮想アドレスレジスタ 12:仮想ページ番号(V P N) 14:オフセット 16:プロセスID(PID) 18 : TLB 20:エントリ 22:仮想ページ番号(V P N) 24:プロセスID(PID) 26:物理的ページ番号(PPN) 28:比較器 30:セレクト論理 i”3 [!I?l17)B書 1勿J!的アドレス イルミ乍と、アト′°レス 仮想アドレス タグタグ 1仄キ忌アトパレス 林桔マンシ DATA IN 手続補正書 (方力 平成3年6月11日
(TLB)を示した概略図、第2図は従来のTLBエン
トリのフォーマットを示した概略図、第3図は従来の直
接マツプ型キャッジニジステムを示した概略図、第4図
は従来の2態様セット連合キャッシュシステムを示した
概略図、第5図は従来の物理的タグを有する物理的キャ
ッシュシステムを示した概略図、第6図は従来の仮想タ
グを有する仮想キャッシュシステムを示した概略図、第
7図は従来の物理的タグを有する仮想キャッジニジステ
ムを示した概略図、第8図は本発明の一実施例に基づい
て構成されたTLBスライスシステムを示した概略図、
第9図は第8図の構成のより詳細な構成を示した概略図
、第10図は第9図の状態マシンのフローチャートを示
した概略図、第11図はTLBスライスの回路図、であ
る。 (符号の説明) 10:仮想アドレスレジスタ 12:仮想ページ番号(V P N) 14:オフセット 16:プロセスID(PID) 18 : TLB 20:エントリ 22:仮想ページ番号(V P N) 24:プロセスID(PID) 26:物理的ページ番号(PPN) 28:比較器 30:セレクト論理 i”3 [!I?l17)B書 1勿J!的アドレス イルミ乍と、アト′°レス 仮想アドレス タグタグ 1仄キ忌アトパレス 林桔マンシ DATA IN 手続補正書 (方力 平成3年6月11日
Claims (1)
- 【特許請求の範囲】 1、与えられた仮想ページ番号及びオフセットを持った
与えられた仮想アドレスを使用するメモリアドレス装置
において、前記仮想ページ番号のビットのサブセットを
受取るべく結合されているアドレス入力端を有するTL
Bスライスメモリが設けられており、前記TLBスライ
スメモリは、仮想アドレスに対応する前にアクセスした
物理的アドレスの一部を各位置に格納し、前記仮想アド
レスのサブセットは前記位置のアドレスに等しいビット
の組合わせを有していることを特徴とする装置。 2、特許請求の範囲第1項において、物理的インデック
スを有するデータを格納するキャッシュメモリが設けら
れており、対応する物理的インデックスにおいて前記デ
ータに対する仮想ページ番号タグを格納するための仮想
タグメモリが設けられており、前記仮想タグメモリから
選択した仮想ページ番号タグを前記与えられた仮想ペー
ジ番号と比較する手段が設けられていることを特徴とす
る装置。 3、特許請求の範囲第1項において、第二ビットスライ
スメモリが設けられており、前記第一及び第二ビットス
ライスメモリのうちの一つのデータ出力を選択するマル
チプレクス手段が設けられていることを特徴とする装置
。 4、特許請求の範囲第3項において、データフェッチの
ために前記マルチプレクス手段に対して第一セレクト信
号を及び命令フェッチのために第二セレクト信号を供給
する手段が設けられていることを特徴とする装置。 5、特許請求の範囲第2項において、前記第一キャッシ
ュメモリを具備する2態様セット連合キャッシュメモリ
を使用し、且つ物理的インデックスを持った第二データ
を格納する第二キャッシュメモリが設けられており、対
応する物理的インデックスにおいて前記第二データに対
する仮想ページ番号タグを格納する第二仮想タグメモリ
が設けられており、前記第二仮想タグメモリからの選択
した仮想ページ番号タグを前記仮想ページ番号と比較す
る手段が設けられていることを特徴とする装置。 6、特許請求の範囲第5項において、前記第一及び第二
キャッシュメモリからのデータを受取るべく結合されて
いる第一及び第二入力端を持ったマルチプレクサが設け
られていることを特徴とする装置。 7、特許請求の範囲第6項において、マッチするタグに
対応するデータを選択し且つ前記比較器のうちの一つが
マッチを表わすか否かを示すヒット/ミス出力を供給す
るために前記マルチプレクサへセレクト入力を供給する
ために前記第一及び第二比較器の出力端へ結合されてい
る論理手段が設けられていることを特徴とする装置。 8、特許請求の範囲第7項において、完全変換ルックア
サイドバッファ(TLB)が設けられており、前記TL
Bの出力を前記TLBスライスメモリの出力と比較する
手段が設けられており、且つミス信号が前記ヒット/ミ
ス出力端上で受取られ且つ前記TLBスライス出力及び
前記完全TLB出力がマッチしない場合には前記TLB
スライスメモリ内へのデータ及びアドレスの書込みを制
御し且つ前記ミス信号が受取られ且つ前記TLBスライ
ス出力と前記完全TLB出力とがマッチする場合には前
記キャッシュメモリ及び仮想タグメモリ内への書込みを
行なう状態マシン論理が前記ヒット/ミス出力端へ結合
して設けられていることを特徴とする装置。 9、仮想ページ番号及びオフセットを持った仮想アドレ
スを使用するメモリアドレス装置において、物理的イン
デックスを持ったデータを格納するキャッシュメモリが
設けられており、対応する物理的インデックスにおいて
前記データに対する仮想ページ番号タグを格納する仮想
タグメモリが設けられており、前記仮想ページ番号のビ
ットの所定の部分を受取るために結合されたアドレス入
力端を有しており前記仮想ページ番号の前記部分のビッ
トの各組合わせに対応する前記物理的インデックスの最
後にアクセスした一つを格納するTLBスライスメモリ
が設けられており、前記TLBスライスメモリは、前記
仮想タグメモリからの前記物理的インデックスにおける
仮想ページ番号タグを選択し且つ前記物理的インデック
ス+前記オフセットにおける前記キャッシュメモリから
データを選択するために物理的アドレスインデックスを
与えるために前記キャッシュメモリ及び仮想タグメモリ
へ結合したデータ出力端を有しており、正しいデータが
選択されたか否かを決定するために前記選択した仮想ペ
ージ番号タグを前記仮想ページ番号と比較する手段が設
けられていることを特徴とする装置。 10、特許請求の範囲第1項において、更に、仮想キャ
ッシュメモリが設けられており、前記仮想アドレスの一
つで前記仮想キャッシュメモリをアクセスする手段が設
けられており、前記仮想キャッシュメモリにおけるミス
を表わし且つ前記仮想アドレスでの前記TLBスライス
メモリのアクセスをイネーブルさせる手段が設けられて
いることを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US444,594 | 1989-12-01 | ||
US07/444,594 US5226133A (en) | 1989-12-01 | 1989-12-01 | Two-level translation look-aside buffer using partial addresses for enhanced speed |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03266153A true JPH03266153A (ja) | 1991-11-27 |
Family
ID=23765553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2330971A Pending JPH03266153A (ja) | 1989-12-01 | 1990-11-30 | 速度向上のために部分アドレスを使用する2レベル変換ルックアサイドバッファ |
Country Status (4)
Country | Link |
---|---|
US (1) | US5226133A (ja) |
EP (1) | EP0431463B1 (ja) |
JP (1) | JPH03266153A (ja) |
DE (1) | DE69030945T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007504552A (ja) * | 2003-09-03 | 2007-03-01 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
JPH03216744A (ja) * | 1990-01-22 | 1991-09-24 | Fujitsu Ltd | 内蔵キャッシュ・メモリ制御方式 |
US5584003A (en) * | 1990-03-29 | 1996-12-10 | Matsushita Electric Industrial Co., Ltd. | Control systems having an address conversion device for controlling a cache memory and a cache tag memory |
US5479630A (en) * | 1991-04-03 | 1995-12-26 | Silicon Graphics Inc. | Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same |
JP3190700B2 (ja) * | 1991-05-31 | 2001-07-23 | 日本電気株式会社 | アドレス変換装置 |
GB2256296B (en) * | 1991-05-31 | 1995-01-18 | Integrated Device Tech | Multiplexed status and diagnostic pins in a microprocessor with on-chip caches |
JP3259969B2 (ja) * | 1991-07-09 | 2002-02-25 | 株式会社東芝 | キャッシュメモリ制御装置 |
JPH0546475A (ja) * | 1991-08-15 | 1993-02-26 | Fujitsu Ltd | バツフア記憶制御方式 |
WO1993004431A1 (fr) * | 1991-08-15 | 1993-03-04 | Fujitsu Limited | Systeme de commande de memoire tampon |
US5392410A (en) * | 1992-04-30 | 1995-02-21 | International Business Machines Corporation | History table for prediction of virtual address translation for cache access |
US5450558A (en) * | 1992-05-27 | 1995-09-12 | Hewlett-Packard Company | System for translating virtual address to real address by duplicating mask information in real page number corresponds to block entry of virtual page number |
US5574877A (en) * | 1992-09-25 | 1996-11-12 | Silicon Graphics, Inc. | TLB with two physical pages per virtual tag |
US5603008A (en) * | 1992-09-30 | 1997-02-11 | Amdahl Corporation | Computer system having cache memories with independently validated keys in the TLB |
GB2273179A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache indexing in interative processes. |
US5712998A (en) * | 1993-07-13 | 1998-01-27 | Intel Corporation | Fast fully associative translation lookaside buffer with the ability to store and manage information pertaining to at least two different page sizes |
US5848432A (en) * | 1993-08-05 | 1998-12-08 | Hitachi, Ltd. | Data processor with variable types of cache memories |
GB2282471B (en) * | 1993-09-29 | 1997-11-05 | Advanced Risc Mach Ltd | Cache storage |
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 |
US5996062A (en) * | 1993-11-24 | 1999-11-30 | Intergraph Corporation | Method and apparatus for controlling an instruction pipeline in a data processing system |
EP0668565B1 (en) * | 1994-02-22 | 2002-07-17 | Advanced Micro Devices, Inc. | Virtual memory system |
US6129458A (en) * | 1994-03-23 | 2000-10-10 | At&T Global Information Solutions Company | Cache optimization method |
US5913222A (en) * | 1994-04-15 | 1999-06-15 | Gmd-Forschungszentrum Informationstechnik Gmbh | Color correction method in a virtually addressed and physically indexed cache memory in the event of no cache hit |
US6009503A (en) * | 1994-04-22 | 1999-12-28 | International Business Machines Corporation | Cache memory indexing using virtual, primary and secondary color indexes |
US5751990A (en) * | 1994-04-26 | 1998-05-12 | International Business Machines Corporation | Abridged virtual address cache directory |
WO1996012231A1 (en) | 1994-10-14 | 1996-04-25 | Silicon Graphics, Inc. | A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein |
US5659697A (en) * | 1994-12-14 | 1997-08-19 | International Business Machines Corporation | Translation lookaside buffer for faster processing in response to availability of a first virtual address portion before a second virtual address portion |
US6006312A (en) * | 1995-02-27 | 1999-12-21 | Sun Microsystems, Inc. | Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses |
US6029224A (en) * | 1995-06-07 | 2000-02-22 | Lucent Technologies Inc. | Self-contained memory apparatus having diverse types of memory and distributed control |
US5924125A (en) * | 1995-08-01 | 1999-07-13 | Arya; Siamak | Method and apparatus for parallel access to consecutive TLB entries |
US6101590A (en) * | 1995-10-10 | 2000-08-08 | Micro Unity Systems Engineering, Inc. | Virtual memory system with local and global virtual address translation |
US6026476A (en) * | 1996-03-19 | 2000-02-15 | Intel Corporation | Fast fully associative translation lookaside buffer |
US5809562A (en) * | 1996-05-20 | 1998-09-15 | Integrated Device Technology, Inc. | Cache array select logic allowing cache array size to differ from physical page size |
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 |
US6065091A (en) * | 1997-05-30 | 2000-05-16 | Via-Cyrix, Inc. | Translation look-aside buffer slice circuit and method of operation |
US5946718A (en) * | 1997-05-30 | 1999-08-31 | National Semiconductor Corporation | Shadow translation look-aside buffer and method of operation |
US6049855A (en) * | 1997-07-02 | 2000-04-11 | Micron Electronics, Inc. | Segmented memory system employing different interleaving scheme for each different memory segment |
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 |
US6356996B1 (en) * | 1998-03-24 | 2002-03-12 | Novell, Inc. | Cache fencing for interpretive environments |
US6564311B2 (en) * | 1999-01-19 | 2003-05-13 | Matsushita Electric Industrial Co., Ltd. | Apparatus for translation between virtual and physical addresses using a virtual page number, a physical page number, a process identifier and a global bit |
US6469705B1 (en) * | 1999-09-21 | 2002-10-22 | Autodesk Canada Inc. | Cache addressing |
US6604187B1 (en) * | 2000-06-19 | 2003-08-05 | Advanced Micro Devices, Inc. | Providing global translations with address space numbers |
EP1213650A3 (en) * | 2000-08-21 | 2006-08-30 | Texas Instruments France | Priority arbitration based on current task and MMU |
GB2373889A (en) * | 2001-03-30 | 2002-10-02 | Siroyan Ltd | Address translation with partial physical addresses |
US20020144078A1 (en) * | 2001-03-30 | 2002-10-03 | Siroyan Limited | Address translation |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US20030163643A1 (en) * | 2002-02-22 | 2003-08-28 | Riedlinger Reid James | Bank conflict determination |
US6920693B2 (en) * | 2002-07-24 | 2005-07-26 | L&L Products, Inc. | Dynamic self-adjusting assembly for sealing, baffling or structural reinforcement |
JP2004164395A (ja) * | 2002-11-14 | 2004-06-10 | Renesas Technology Corp | アドレス変換装置 |
US20050182903A1 (en) * | 2004-02-12 | 2005-08-18 | Mips Technologies, Inc. | Apparatus and method for preventing duplicate matching entries in a translation lookaside buffer |
US7558939B2 (en) | 2005-03-08 | 2009-07-07 | Mips Technologies, Inc. | Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor |
EP1717708B1 (en) | 2005-04-29 | 2010-09-01 | STMicroelectronics Srl | An improved cache memory system |
US9075733B1 (en) * | 2010-05-20 | 2015-07-07 | Seagate Technology Llc | Selective storage of address mapping metadata in a system having multiple memories |
US10372618B2 (en) * | 2016-10-14 | 2019-08-06 | Arm Limited | Apparatus and method for maintaining address translation data within an address translation cache |
CN112631962A (zh) * | 2019-09-24 | 2021-04-09 | 阿里巴巴集团控股有限公司 | 存储管理装置、存储管理方法、处理器和计算机系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4170039A (en) * | 1978-07-17 | 1979-10-02 | International Business Machines Corporation | Virtual address translation speed up technique |
US4218743A (en) * | 1978-07-17 | 1980-08-19 | International Business Machines Corporation | Address translation apparatus |
DE3068498D1 (en) * | 1979-05-09 | 1984-08-16 | Int Computers Ltd | Hierarchical data storage system |
US4400774A (en) * | 1981-02-02 | 1983-08-23 | Bell Telephone Laboratories, Incorporated | Cache addressing arrangement in a computer system |
US4493026A (en) * | 1982-05-26 | 1985-01-08 | International Business Machines Corporation | Set associative sector cache |
US4602368A (en) * | 1983-04-15 | 1986-07-22 | Honeywell Information Systems Inc. | Dual validity bit arrays |
US4682281A (en) * | 1983-08-30 | 1987-07-21 | Amdahl Corporation | Data storage unit employing translation lookaside buffer pointer |
US4991081A (en) * | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
US4737909A (en) * | 1985-04-01 | 1988-04-12 | National Semiconductor Corp. | Cache memory address apparatus |
US4763244A (en) * | 1986-01-15 | 1988-08-09 | Motorola, Inc. | Paged memory management unit capable of selectively supporting multiple address spaces |
US4914582A (en) * | 1986-06-27 | 1990-04-03 | Hewlett-Packard Company | Cache tag lookaside |
US4833599A (en) * | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US4969122A (en) * | 1989-08-21 | 1990-11-06 | Sun Microsystems, Inc. | Apparatus for page tagging in a computer system |
-
1989
- 1989-12-01 US US07/444,594 patent/US5226133A/en not_active Expired - Lifetime
-
1990
- 1990-11-29 EP EP90122808A patent/EP0431463B1/en not_active Expired - Lifetime
- 1990-11-29 DE DE69030945T patent/DE69030945T2/de not_active Expired - Lifetime
- 1990-11-30 JP JP2330971A patent/JPH03266153A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007504552A (ja) * | 2003-09-03 | 2007-03-01 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ |
Also Published As
Publication number | Publication date |
---|---|
DE69030945T2 (de) | 1998-01-29 |
EP0431463A2 (en) | 1991-06-12 |
EP0431463A3 (en) | 1992-03-18 |
DE69030945D1 (de) | 1997-07-24 |
US5226133A (en) | 1993-07-06 |
EP0431463B1 (en) | 1997-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH03266153A (ja) | 速度向上のために部分アドレスを使用する2レベル変換ルックアサイドバッファ | |
US6014732A (en) | Cache memory with reduced access time | |
CA2022656C (en) | Translation look-aside buffer for a computer memory system | |
KR920005280B1 (ko) | 고속 캐쉬 시스템 | |
KR960001946B1 (ko) | 우선 변환 참조버퍼 | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
EP2118753B1 (en) | Address translation method and apparatus | |
JPH07200399A (ja) | マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法 | |
CN101589374A (zh) | 用于在处理器中设置高速缓存策略的方法和设备 | |
US6571316B1 (en) | Cache memory array for multiple address spaces | |
US5179675A (en) | Data processing system with cache memory addressable by virtual and physical address | |
KR930010733A (ko) | 라이트 드루 가상 캐시메모리, 에일리어스 어드레싱 및 캐시플러시 | |
US6446187B1 (en) | Virtual address bypassing using local page mask | |
US5737575A (en) | Interleaved key memory with multi-page key cache | |
US6385696B1 (en) | Embedded cache with way size bigger than page size | |
US6574698B1 (en) | Method and system for accessing a cache memory within a data processing system | |
US7181590B2 (en) | Method for page sharing in a processor with multiple threads and pre-validated caches | |
CN116830092A (zh) | 用于跟踪存储器区域的内容的修改的技术 | |
JPH04335431A (ja) | 情報処理装置 | |
JPH0695967A (ja) | データプロセッサ | |
JPS623354A (ja) | キヤツシユメモリ・アクセス方式 | |
JPH03232034A (ja) | キャッシュ制御装置 | |
US6226731B1 (en) | Method and system for accessing a cache memory within a data-processing system utilizing a pre-calculated comparison array | |
US6493792B1 (en) | Mechanism for broadside reads of CAM structures | |
KR0184475B1 (ko) | 캐쉬메모리 액세스회로 |