JPH04352256A - メモリ空間を節約する方法および装置 - Google Patents
メモリ空間を節約する方法および装置Info
- Publication number
- JPH04352256A JPH04352256A JP3305669A JP30566991A JPH04352256A JP H04352256 A JPH04352256 A JP H04352256A JP 3305669 A JP3305669 A JP 3305669A JP 30566991 A JP30566991 A JP 30566991A JP H04352256 A JPH04352256 A JP H04352256A
- Authority
- JP
- Japan
- Prior art keywords
- address
- virtual
- virtual address
- buffer
- entry
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 18
- 239000000872 buffer Substances 0.000 claims abstract description 22
- 238000006243 chemical reaction Methods 0.000 abstract 2
- 230000014616 translation Effects 0.000 description 15
- 238000013519 translation Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000717 retained effect Effects 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/652—Page size control
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
【0001】
【産業上の利用分野】本発明は、変換索引バッファの空
間を節約する方法および装置に関し、更に詳しくは、中
央処理装置(CPU)における変換索引バッファの性能
を損なうことなくメモリ空間を節約する方法および装置
に関する。
間を節約する方法および装置に関し、更に詳しくは、中
央処理装置(CPU)における変換索引バッファの性能
を損なうことなくメモリ空間を節約する方法および装置
に関する。
【0002】
【従来の技術】高速中央処理装置が、主コンピュータ・
メモリの他にキャッシュ・メモリを有していることは極
めて一般的である。キャッシュ・メモリは、主コンピュ
ータ・メモリに較べて小さいが、それよりもはるかに高
速で、プロセッサと主メモリとの間に設けられている。 ソフトウェア・プログラムの実行中、キャッシュ・メモ
リは、最も頻繁に使用される命令とデータを記憶する。 プロセッサが、メモリから情報をアクセスする必要があ
る度に、プロセッサは、主コンピュータ・メモリをアク
セスする前に、まずキャッシュを調べる。プロセッサが
、キャッシュ中に命令またはデータを見い出すことがで
きず、それより遅い主メモリをアクセスすることが要求
される場合には、キャッシュ・ミスが起きる。このよう
に、キャッシュ・メモリはプロセッサの平均メモリ・ア
クセス時間を低減する。キャッシュ・メモリに関する他
の情報については、1982年9月のコンピューティン
グ・サーベイ,Vol.14,No 3 におけるアラ
ン ジェイ.スミスによるキャッシュ・メモリに関す
る論文を参照されたい。
メモリの他にキャッシュ・メモリを有していることは極
めて一般的である。キャッシュ・メモリは、主コンピュ
ータ・メモリに較べて小さいが、それよりもはるかに高
速で、プロセッサと主メモリとの間に設けられている。 ソフトウェア・プログラムの実行中、キャッシュ・メモ
リは、最も頻繁に使用される命令とデータを記憶する。 プロセッサが、メモリから情報をアクセスする必要があ
る度に、プロセッサは、主コンピュータ・メモリをアク
セスする前に、まずキャッシュを調べる。プロセッサが
、キャッシュ中に命令またはデータを見い出すことがで
きず、それより遅い主メモリをアクセスすることが要求
される場合には、キャッシュ・ミスが起きる。このよう
に、キャッシュ・メモリはプロセッサの平均メモリ・ア
クセス時間を低減する。キャッシュ・メモリに関する他
の情報については、1982年9月のコンピューティン
グ・サーベイ,Vol.14,No 3 におけるアラ
ン ジェイ.スミスによるキャッシュ・メモリに関す
る論文を参照されたい。
【0003】仮想アドレス方式により、システムのフレ
キシビリティとキャパビリティが向上する。たとえば、
仮想アドレス方式によれば、ソフトウェアが作動する仮
想アドレス空間を供給することにより、ソフトウェアを
物理的アドレス方式から切離す他、より大きいアドレス
空間を得ることができる。仮想アドレス方式を実現する
には、仮想アドレスを物理アドレスに翻訳するメカニズ
ムが必要である。多くのCPUは、仮想アドレスを物理
的メモリ・アドレスに翻訳する翻訳プログラムと、最新
の仮想−物理アドレス対をキャッシュする変換索引バッ
ファ(TLB)とを含んでいる。TLBはなくてはなら
ないものである。なぜならば、これは、翻訳対が既に存
在している場合マッピング・プロセスをスキップするこ
とによって主メモリにより速くアクセスさせることがで
きるからである。
キシビリティとキャパビリティが向上する。たとえば、
仮想アドレス方式によれば、ソフトウェアが作動する仮
想アドレス空間を供給することにより、ソフトウェアを
物理的アドレス方式から切離す他、より大きいアドレス
空間を得ることができる。仮想アドレス方式を実現する
には、仮想アドレスを物理アドレスに翻訳するメカニズ
ムが必要である。多くのCPUは、仮想アドレスを物理
的メモリ・アドレスに翻訳する翻訳プログラムと、最新
の仮想−物理アドレス対をキャッシュする変換索引バッ
ファ(TLB)とを含んでいる。TLBはなくてはなら
ないものである。なぜならば、これは、翻訳対が既に存
在している場合マッピング・プロセスをスキップするこ
とによって主メモリにより速くアクセスさせることがで
きるからである。
【0004】キャッシュの動作は、通常CPUからの仮
想アドレスと適当な制御信号の到着とともに開始する。 仮想アドレスは、TLBとキャッシュ・メモリの両方に
送られる。TLBは、仮想ページ・ナンバを受けとり、
それを用いて1組のエレメントを選択し、その後、それ
は仮想アドレスに照合するため関連的に探索される。一
致している場合、対応する物理アドレスは比較器に送ら
れ、キャッシュにデータがあるかどうかを決定する。
想アドレスと適当な制御信号の到着とともに開始する。 仮想アドレスは、TLBとキャッシュ・メモリの両方に
送られる。TLBは、仮想ページ・ナンバを受けとり、
それを用いて1組のエレメントを選択し、その後、それ
は仮想アドレスに照合するため関連的に探索される。一
致している場合、対応する物理アドレスは比較器に送ら
れ、キャッシュにデータがあるかどうかを決定する。
【0005】TLBが、翻訳に必要とされる仮想−物理
アドレス対を含んでいない場合、アドレス翻訳プログラ
ムが要求される。翻訳プログラムは、そのプロセスに関
するセグメントおよびページ・テーブルへの入口として
、仮想アドレスの高次ビットを使用し、その後アドレス
対をTLBに戻し、現在のTLB入口に取って代わる。 上記テーブルはキャッシュまたは主メモリのいずれかに
ある。
アドレス対を含んでいない場合、アドレス翻訳プログラ
ムが要求される。翻訳プログラムは、そのプロセスに関
するセグメントおよびページ・テーブルへの入口として
、仮想アドレスの高次ビットを使用し、その後アドレス
対をTLBに戻し、現在のTLB入口に取って代わる。 上記テーブルはキャッシュまたは主メモリのいずれかに
ある。
【0006】TLB入口は多くのフィールドを含んでい
る。翻訳のため提供された仮想アドレスは、TLBの仮
想アドレス・タグ・フィールドと照合され、適切な入口
が見つかったことを確かめる。仮想アドレス・タグ・フ
ィールドは、アドレス空間識別子(ASID)を含んで
いるので、1つ以上のプロセスに関する入口が同時にT
LBに存在することができる。IBM370のようなマ
シンでは、保護フィールドが設けられ、アクセスが許可
されることを保証するようチェックされる。
る。翻訳のため提供された仮想アドレスは、TLBの仮
想アドレス・タグ・フィールドと照合され、適切な入口
が見つかったことを確かめる。仮想アドレス・タグ・フ
ィールドは、アドレス空間識別子(ASID)を含んで
いるので、1つ以上のプロセスに関する入口が同時にT
LBに存在することができる。IBM370のようなマ
シンでは、保護フィールドが設けられ、アクセスが許可
されることを保証するようチェックされる。
【0007】また、TLBには、TLBにおける所定の
入口がバリドであるかどうかを示すビットがある。この
ビットはバリド・ビットと呼ばれている。各入口がTL
Bに入ると、入口の対応するバリド・ビットがセットさ
れる。TLB比較機能において、バリド・ビットの状態
がリセットされると、その入口に関して比較は行なわれ
ない。バリド・ビットがセットされると、比較機能を進
めることができる。いくつかのTLB設計では、比較さ
れるべき仮想アドレス・タグにおける仮想アドレスの長
さを示すよう割当てられたビットがあるので、それぞれ
の長さは異なった機能を表すことができる。
入口がバリドであるかどうかを示すビットがある。この
ビットはバリド・ビットと呼ばれている。各入口がTL
Bに入ると、入口の対応するバリド・ビットがセットさ
れる。TLB比較機能において、バリド・ビットの状態
がリセットされると、その入口に関して比較は行なわれ
ない。バリド・ビットがセットされると、比較機能を進
めることができる。いくつかのTLB設計では、比較さ
れるべき仮想アドレス・タグにおける仮想アドレスの長
さを示すよう割当てられたビットがあるので、それぞれ
の長さは異なった機能を表すことができる。
【0008】
【発明が解決しようとする課題】いくつかのTLBは内
容アドレス記憶装置(CAM)であるので、それらの大
きさは、一般に、それらのランダム・アクセス・メモリ
(RAM)の4倍である。これは、“保持”機能の代り
に“比較”機能を動作するトランジスタにおけるビルト
イン連想数理論理学によるものである。したがって、そ
の性能に何のインパクトも与えることなく、TLB
CAMの空間を節約することが強く望まれている。本発
明の目的は、その性能を損なうことなく、TLB C
AMの空間を節約する方法および装置を提供することで
ある。
容アドレス記憶装置(CAM)であるので、それらの大
きさは、一般に、それらのランダム・アクセス・メモリ
(RAM)の4倍である。これは、“保持”機能の代り
に“比較”機能を動作するトランジスタにおけるビルト
イン連想数理論理学によるものである。したがって、そ
の性能に何のインパクトも与えることなく、TLB
CAMの空間を節約することが強く望まれている。本発
明の目的は、その性能を損なうことなく、TLB C
AMの空間を節約する方法および装置を提供することで
ある。
【0009】
【課題を解決するための手段】本発明は、キャッシュ・
メモリ装置、特に変換索引バッファ(TLB)のために
バッファにおける空間を節約する方法および装置を提供
する。本発明の方法および装置では、メモリ空間は、レ
ベル・ビットの1つにバリド・ビットを入れることによ
りTLBに保存される。ここに開示された発明は、非常
に有効であり、またCAMビットの大きさは、CAM回
路の連想数理論理構造によりランダム・アクセス・メモ
リ(RAM)ビットの約4倍であるので、メモリ保存は
一層重要となる。
メモリ装置、特に変換索引バッファ(TLB)のために
バッファにおける空間を節約する方法および装置を提供
する。本発明の方法および装置では、メモリ空間は、レ
ベル・ビットの1つにバリド・ビットを入れることによ
りTLBに保存される。ここに開示された発明は、非常
に有効であり、またCAMビットの大きさは、CAM回
路の連想数理論理構造によりランダム・アクセス・メモ
リ(RAM)ビットの約4倍であるので、メモリ保存は
一層重要となる。
【0010】
【実施例】以下、添付の図面に基いて、本発明の実施例
に関し説明する。キャッシュ・メモリのTLBにおける
空間を節約する方法および装置について開示する。以下
の説明で、本発明の理解を助けるため様々な詳細な記載
が示されているが、本発明はこれら記載に限定されない
ことは当業者には明白であろう。また、周知の回路や構
造については、本発明を不明瞭にしないよう詳細な記載
は省略する。
に関し説明する。キャッシュ・メモリのTLBにおける
空間を節約する方法および装置について開示する。以下
の説明で、本発明の理解を助けるため様々な詳細な記載
が示されているが、本発明はこれら記載に限定されない
ことは当業者には明白であろう。また、周知の回路や構
造については、本発明を不明瞭にしないよう詳細な記載
は省略する。
【0011】図1は、プロセッサにおけるメモリ管理装
置(MMU)1のブロック図である。MMUは、命令キ
ャッシュ2、データ・キャッシュ3、整数装置4および
他の制御論理装置(図示せず)に接続している。プロセ
ッサ構造に関する他の情報については、ヘネシー,ジェ
イ.エル.,パターソン,ディ.エイ.によるコンピュ
ータ・アーキテクチャ;量的アプローチ(モーガン
カフマン,サン マテオ,CA,1990)を参照さ
れたい。
置(MMU)1のブロック図である。MMUは、命令キ
ャッシュ2、データ・キャッシュ3、整数装置4および
他の制御論理装置(図示せず)に接続している。プロセ
ッサ構造に関する他の情報については、ヘネシー,ジェ
イ.エル.,パターソン,ディ.エイ.によるコンピュ
ータ・アーキテクチャ;量的アプローチ(モーガン
カフマン,サン マテオ,CA,1990)を参照さ
れたい。
【0012】MMU1は、4つの主な機能を有している
。第1の機能は、実行している各プロセスの仮想メモリ
をメモリの物理アドレスに翻訳することである。本実施
例では、MMUは、図2に示すように変換索引バッファ
(TLB)5を用いることにより32−ビットの仮想ア
ドレス12,13を31−ビットの物理アドレスに翻訳
する。物理アドレスの3つの高次ビットは、8つの異な
るアドレス空間へのメモリ・マッピングを支援するよう
保持される。MMUは64個の文脈の利用を支援する。 第2の機能は、プロセスが他のプロセスのアドレス空間
に書込んだりまたここから読出したりできないように、
MMUがメモリを保護することである。ページ保護と利
用情報は十分に支援される。第3の機能は、MMUが仮
想メモリを実現することである。ページ・テーブルは、
主メモリ18に保持されている。TLB5にミスが生じ
ると、テーブル・ウォーク(table walk)は
ハードウェアで操作され、新しい仮想−物理アドレス変
換が翻訳プログラム6によりTLB5にロードされる。 最後に、MMUは、I/O、データ・キャッシュ3、命
令キャッシュ2間でのアービタレーション機能を行ない
、TLBはメモリ18を参照する。
。第1の機能は、実行している各プロセスの仮想メモリ
をメモリの物理アドレスに翻訳することである。本実施
例では、MMUは、図2に示すように変換索引バッファ
(TLB)5を用いることにより32−ビットの仮想ア
ドレス12,13を31−ビットの物理アドレスに翻訳
する。物理アドレスの3つの高次ビットは、8つの異な
るアドレス空間へのメモリ・マッピングを支援するよう
保持される。MMUは64個の文脈の利用を支援する。 第2の機能は、プロセスが他のプロセスのアドレス空間
に書込んだりまたここから読出したりできないように、
MMUがメモリを保護することである。ページ保護と利
用情報は十分に支援される。第3の機能は、MMUが仮
想メモリを実現することである。ページ・テーブルは、
主メモリ18に保持されている。TLB5にミスが生じ
ると、テーブル・ウォーク(table walk)は
ハードウェアで操作され、新しい仮想−物理アドレス変
換が翻訳プログラム6によりTLB5にロードされる。 最後に、MMUは、I/O、データ・キャッシュ3、命
令キャッシュ2間でのアービタレーション機能を行ない
、TLBはメモリ18を参照する。
【0013】以下の説明では、仮想アドレスと物理アド
レスを示すのに語句VAおよびPAを用いている。TL
B5は、ページ・ディスクリプタの32入口完全連想キ
ャッシュである。これは、仮想対物理アドレス変換およ
び関連ページ保護と利用情報をキャッシュする。擬似乱
数置換アルゴリズムは、必要な場合、32入口のいずれ
を置換すべきかを決定する。
レスを示すのに語句VAおよびPAを用いている。TL
B5は、ページ・ディスクリプタの32入口完全連想キ
ャッシュである。これは、仮想対物理アドレス変換およ
び関連ページ保護と利用情報をキャッシュする。擬似乱
数置換アルゴリズムは、必要な場合、32入口のいずれ
を置換すべきかを決定する。
【0014】擬似乱数置換方式は、代表的には次のよう
に動作する。TLB置換制御レジスタ(TRCR)7に
は5ビット・モジュロ32カウンタがある。TRCR7
は、TLB5の入口の1つをアドレスするため、中央処
理装置(CPU)の各クロック・サイクルにおいて、1
つずつインクリメントされる。TLBのミスが起きた場
合、カウンタの値を用いて、置換されるべきTLB入口
をアドレスする。リセットと同時に、カウンタはゼロに
初期化される。更に、TRCR7には、計数機能をディ
スエーブルするのに使用される1ビットがある。
に動作する。TLB置換制御レジスタ(TRCR)7に
は5ビット・モジュロ32カウンタがある。TRCR7
は、TLB5の入口の1つをアドレスするため、中央処
理装置(CPU)の各クロック・サイクルにおいて、1
つずつインクリメントされる。TLBのミスが起きた場
合、カウンタの値を用いて、置換されるべきTLB入口
をアドレスする。リセットと同時に、カウンタはゼロに
初期化される。更に、TRCR7には、計数機能をディ
スエーブルするのに使用される1ビットがある。
【0015】図3は、TLBの1つの入口におけるフィ
ールドを示している。フィールドは仮想アドレス・タグ
8、文脈タグ9、ページ・テーブル入口(PTE)レベ
ル・フィールド10、ページ・テーブル・フィールド1
1を含んでいる。図3に示すように、20−ビットの仮
想アドレス・タグ8は、ページ・テーブル入口(PTE
)とI/Oページ・テーブル入口(I/OPTE)(後
述する)を参照する際に使用される仮想アドレス(VA
[31:12])の最上位20ビットを表わしている。 TLB入口には、キャッシュ・メモリ19の1ページに
おけるバイトを選択する仮想アドレスVA[11:0]
は含まれていない。VAタグ・フィールドのアドレスは
、20ビットPA[27:08]でページ・テーブル・
ポインタ(PTP)を参照する場合には物理アドレスで
ある。
ールドを示している。フィールドは仮想アドレス・タグ
8、文脈タグ9、ページ・テーブル入口(PTE)レベ
ル・フィールド10、ページ・テーブル・フィールド1
1を含んでいる。図3に示すように、20−ビットの仮
想アドレス・タグ8は、ページ・テーブル入口(PTE
)とI/Oページ・テーブル入口(I/OPTE)(後
述する)を参照する際に使用される仮想アドレス(VA
[31:12])の最上位20ビットを表わしている。 TLB入口には、キャッシュ・メモリ19の1ページに
おけるバイトを選択する仮想アドレスVA[11:0]
は含まれていない。VAタグ・フィールドのアドレスは
、20ビットPA[27:08]でページ・テーブル・
ポインタ(PTP)を参照する場合には物理アドレスで
ある。
【0016】3−ビットのレベル・フィールド10は、
領域およびセグメントPTEの適切な仮想タグ照合をエ
ネーブルするのに使用される。I/OPTEおよびPT
Pは、以下の表に示すように索引1,2,3を使用する
ため、このフィールド集合を有している。最上位ビット
15も、TLBバリド・ビットとして作用する。なぜな
らば、それはいずれかのバリドPTE、I/OPTEま
たはPTPに関してエネーブルされるからである。次の
表は、レベル・フィールドを定義する。 レベル・フィールド
仮想タグ照合基準 000
無 100
索引1(
VA[31:24]) 110
索引1,2(VA[
31:18]) 111
索引1,2,3(VA[3
1:12])
領域およびセグメントPTEの適切な仮想タグ照合をエ
ネーブルするのに使用される。I/OPTEおよびPT
Pは、以下の表に示すように索引1,2,3を使用する
ため、このフィールド集合を有している。最上位ビット
15も、TLBバリド・ビットとして作用する。なぜな
らば、それはいずれかのバリドPTE、I/OPTEま
たはPTPに関してエネーブルされるからである。次の
表は、レベル・フィールドを定義する。 レベル・フィールド
仮想タグ照合基準 000
無 100
索引1(
VA[31:24]) 110
索引1,2(VA[
31:18]) 111
索引1,2,3(VA[3
1:12])
【0017】図3において、スーパーバイ
ザ(S)ビット16は、ページがスーパーバイザ・レベ
ルであることを示している文脈フィールドの照合をディ
スエーブルするのに使用される。ページ・テーブル・ポ
インタ(PTP)ビット17は、PTPがTLBのこの
入口にあることを示している。
ザ(S)ビット16は、ページがスーパーバイザ・レベ
ルであることを示している文脈フィールドの照合をディ
スエーブルするのに使用される。ページ・テーブル・ポ
インタ(PTP)ビット17は、PTPがTLBのこの
入口にあることを示している。
【0018】ページ・テーブル・フィールドは、a)ペ
ージ・テーブル入口(PTE)、b)ページ・テーブル
・ポインタ(PTP)、またはc)I/Oページ・テー
ブル入口(I/OPTE)のいずれかである。PTEは
、ページの物理アドレスおよびそのアクセス許可の両方
を定義する。PTPは、ページ・テーブルの物理アドレ
スを含み、かつ文脈テーブル、レベル1ページ・テーブ
ル、またはレベル2ページ・テーブルにおいて見い出さ
れる。 ページ・テーブル・ポインタは、テーブル・ウォーク中
にTLBに配置され、ナチュラル置換によって(テーブ
ル・ウォーク中に)、または全TLBをフラッシュする
ことにより、TLBから取り除かれる。I/OPTEは
、ページの物理アドレスおよびそのアクセス許可の両方
を定義する。
ージ・テーブル入口(PTE)、b)ページ・テーブル
・ポインタ(PTP)、またはc)I/Oページ・テー
ブル入口(I/OPTE)のいずれかである。PTEは
、ページの物理アドレスおよびそのアクセス許可の両方
を定義する。PTPは、ページ・テーブルの物理アドレ
スを含み、かつ文脈テーブル、レベル1ページ・テーブ
ル、またはレベル2ページ・テーブルにおいて見い出さ
れる。 ページ・テーブル・ポインタは、テーブル・ウォーク中
にTLBに配置され、ナチュラル置換によって(テーブ
ル・ウォーク中に)、または全TLBをフラッシュする
ことにより、TLBから取り除かれる。I/OPTEは
、ページの物理アドレスおよびそのアクセス許可の両方
を定義する。
【0019】図2において、6−ビットの文脈タグ9は
、PTEを参照する場合、メモリ管理ソフトウェアによ
り文脈レジスタ(CXR)14の値から書込まれる。 文脈タグ9と仮想アドレス・タグ8は、TLBヒットを
得るためCXR14と仮想アドレスVA[31:12]
を照合しなければならない。文脈フィールドは、PTP
を参照する場合、物理アドレスPA[07:02]を含
んでいる。このフィールドは、I/OPTEを参照する
場合には使用されない。MMU1により翻訳されるべき
仮想アドレス12は、TLB5の各入口と比較される。 TLBの検索中、レベル・フィールド10の値は、上記
照合基準の表にしたがってTLB仮想タグを照合するの
に、どの索引フィールドが必要とされるかを指定する。 レベル・ビットは、仮想ページの大きさを示すだけでな
く、仮想タグのどの部分が、比較に関係しているかを示
す。
、PTEを参照する場合、メモリ管理ソフトウェアによ
り文脈レジスタ(CXR)14の値から書込まれる。 文脈タグ9と仮想アドレス・タグ8は、TLBヒットを
得るためCXR14と仮想アドレスVA[31:12]
を照合しなければならない。文脈フィールドは、PTP
を参照する場合、物理アドレスPA[07:02]を含
んでいる。このフィールドは、I/OPTEを参照する
場合には使用されない。MMU1により翻訳されるべき
仮想アドレス12は、TLB5の各入口と比較される。 TLBの検索中、レベル・フィールド10の値は、上記
照合基準の表にしたがってTLB仮想タグを照合するの
に、どの索引フィールドが必要とされるかを指定する。 レベル・ビットは、仮想ページの大きさを示すだけでな
く、仮想タグのどの部分が、比較に関係しているかを示
す。
【0020】本発明の原理によれば、レベル・ビット1
0の1つは、TLBの入口がバリドであるかどうかを示
すバリド・ビットとして機能する。本実施例では、最上
位ビットL1 15は、各バリド・入口に関してエネ
ーブルされる。L1ビットの状態がエネーブルされない
場合、その入口はバリドではないので比較は行なわれな
い。それがエネーブルされる場合、照合されるべき長さ
は、仮想タグ照合基準により決定されなければならない
。エネーブルされたL1ビットに関し、索引1が呼び出
され、VA[31:24]が比較される。エネーブルさ
れたL1,L2ビットに関し、VA[31:18]が比
較される。エネーブルされたL1,L2,L3ビットに
関し、VA[31:12]が比較される。したがって、
TLBのバリド入口に関し、L1ビットがエネーブルさ
れる。残りのレベル・ビットは、仮想タグ照合基準にし
たがってエネーブルされる。VA[31:24]の仮想
タグに関してはどれもエネーブルされず、レベル・フィ
ールドは“100”にセットされる。L2ビットは、V
A[31:18]の仮想タグに関してエネーブルされ、
レベル・フィールドは“110”にセットされる。最後
に、L2,L3ビットは、VA[31:12]の仮想タ
グに関してエネーブルされ、レベル・フィールドは“1
11”にセットされる。プロセッサから仮想アドレスが
到着すると、L1ビットは、まずバリディティに関して
チェックされる。L1ビットがセットされると、残りの
レベル・ビットの状態にしたがって、比較されるべきタ
グの長さが決定される。
0の1つは、TLBの入口がバリドであるかどうかを示
すバリド・ビットとして機能する。本実施例では、最上
位ビットL1 15は、各バリド・入口に関してエネ
ーブルされる。L1ビットの状態がエネーブルされない
場合、その入口はバリドではないので比較は行なわれな
い。それがエネーブルされる場合、照合されるべき長さ
は、仮想タグ照合基準により決定されなければならない
。エネーブルされたL1ビットに関し、索引1が呼び出
され、VA[31:24]が比較される。エネーブルさ
れたL1,L2ビットに関し、VA[31:18]が比
較される。エネーブルされたL1,L2,L3ビットに
関し、VA[31:12]が比較される。したがって、
TLBのバリド入口に関し、L1ビットがエネーブルさ
れる。残りのレベル・ビットは、仮想タグ照合基準にし
たがってエネーブルされる。VA[31:24]の仮想
タグに関してはどれもエネーブルされず、レベル・フィ
ールドは“100”にセットされる。L2ビットは、V
A[31:18]の仮想タグに関してエネーブルされ、
レベル・フィールドは“110”にセットされる。最後
に、L2,L3ビットは、VA[31:12]の仮想タ
グに関してエネーブルされ、レベル・フィールドは“1
11”にセットされる。プロセッサから仮想アドレスが
到着すると、L1ビットは、まずバリディティに関して
チェックされる。L1ビットがセットされると、残りの
レベル・ビットの状態にしたがって、比較されるべきタ
グの長さが決定される。
【0021】
【発明の効果】本発明を適用すると、バリド・ビットを
L1レベル・ビットに入れることにより、CAM T
LBにおけるバリド・ビットの必要はなくなり、しかも
TLBの性能を損なうことはない。
L1レベル・ビットに入れることにより、CAM T
LBにおけるバリド・ビットの必要はなくなり、しかも
TLBの性能を損なうことはない。
【図1】 プロセッサのメモリ管理装置のブロック図
を示している。
を示している。
【図2】 本発明のTLBおよびキャッシュ・メモリ
のブロック図を示している。
のブロック図を示している。
【図3】 本発明のTLBにおける入口のフィールド
を示している。
を示している。
1 メモリ管理装置(MMU)
2 命令キャッシュ
3 データ・キャッシュ
4 整数装置
5 変換索引バッファ(TLB)
6 翻訳装置
7 TLB置換制御レジスタ(TRCR)8 仮想
アドレス・タグ(CAM) 9 文脈タグ(CAM) 10 ページ・テーブル・入口(PTE)レベル・フ
ィールド 11 ページ・テーブル・フィールド12 仮想ア
ドレス 13 〃 14 文脈レジスタ(CXR) 15 最上位ビット 16 スーパーバイザ(S)・ビット17 ページ
・テーブル・ポインタ(PTP)18 主メモリ
アドレス・タグ(CAM) 9 文脈タグ(CAM) 10 ページ・テーブル・入口(PTE)レベル・フ
ィールド 11 ページ・テーブル・フィールド12 仮想ア
ドレス 13 〃 14 文脈レジスタ(CXR) 15 最上位ビット 16 スーパーバイザ(S)・ビット17 ページ
・テーブル・ポインタ(PTP)18 主メモリ
Claims (2)
- 【請求項1】 ランダム・アクセス・メモリと、ラン
ダム・アクセス・メモリから頻繁に参照されるデータを
含んでいる高速キャッシュ・メモリとから成り、データ
を検索するためキャッシュ・メモリをまず参照しかつデ
ータがキャッシュ・メモリにない場合だけランダム・ア
クセス・メモリを参照するコンピュータ・システムのも
のであって、仮想アドレスを識別する仮想アドレス・タ
グ・フィールドと上記仮想アドレスの長さを識別するレ
ベル・ビット・フィールドとを有する、キャッシュ・メ
モリのためバッファのアドレス入口の空間を節約する方
法において、キャッシュに記憶されたデータに上記バッ
ファのアドレス入口を供給する過程と、バリド入口に対
し第1レベル・ビットを設定する過程と、上記アドレス
・タグ・フィールドにおける上記仮想アドレスの長さに
基いている所定の仮想タグ照合基準にしたがって、上記
レベル・ビット・フィールドに残りのレベル・ビットを
設定する過程と、から成るキャッシュ・メモリにデータ
を記憶する過程と;プロセッサから仮想アドレスを受け
取る過程と、バッファのアドレス入口における上記第1
レベル・ビットの状態を読出す過程と、第1レベル・ビ
ットがリセットされると、上記バッファの次の入口を読
出す過程と、第1レベル・ビットがセットされると、長
さが上記所定の仮想タグ照合基準にしたがって全てのレ
ベル・ビットの状態により決定される上記プロセッサか
らの上記仮想アドレスを上記バリド入口と比較する過程
と、から成るキャッシュ・メモリのデータをアクセスす
る過程と;から成り、仮想アドレスがバッファの入口に
一致する場合、対応する物理アドレスが出力されて、デ
ータがキャッシュから検索されることを特徴とするバッ
ファのアドレス入口の空間を節約する方法。 - 【請求項2】 ランダム・アクセス・メモリと、ラン
ダム・アクセス・メモリから頻繁に参照されるデータを
含んでいる高速キャッシュ・メモリとから成り、データ
を検索するためキャッシュ・メモリをまず参照しかつデ
ータがキャッシュ・メモリにない場合だけランダム・ア
クセス・メモリを参照するコンピュータ・システムのも
のであって、仮想アドレスを識別する仮想アドレス・タ
グ・フィールドと上記仮想アドレスの長さを識別するレ
ベル・ビット・フィールドとを有する、キャッシュ・メ
モリのためバッファの入口の空間を節約する装置におい
て、キャッシュに記憶されたデータに上記バッファのア
ドレス入口を供給する手段と、バリド入口に対し第1レ
ベル・ビットを設定する手段と、上記アドレス・タグ・
フィールドにおける上記仮想アドレスの長さに基いてい
る所定の仮想タグ照合基準にしたがって、上記レベル・
ビット・フィールドに残りのレベル・ビットを設定する
手段と、から成るキャッシュ・メモリにデータを記憶す
る装置と;プロセッサから仮想アドレスを受け取る手段
と、バッファのアドレス入口における上記第1レベル・
ビットの状態を読出す手段と、第1レベル・ビットがリ
セットされると、上記バッファの次の入口を読出す手段
と、第1レベル・ビットがセットされると、長さが上記
所定の仮想タグ照合基準にしたがって全てのレベル・ビ
ットの状態により決定される上記プロセッサからの上記
仮想アドレスを上記バリド入口と比較する手段と、から
成るキャッシュ・メモリのデータをアクセスする装置と
;から成り、仮想アドレスがバッファの入口に一致する
場合、対応する物理アドレスが出力されて、データがキ
ャッシュから検索されることを特徴とするバッファのア
ドレス入口の空間を節約する装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/629,258 US5222222A (en) | 1990-12-18 | 1990-12-18 | Apparatus and method for a space saving translation lookaside buffer for content addressable memory |
US629,258 | 1990-12-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04352256A true JPH04352256A (ja) | 1992-12-07 |
JP3278748B2 JP3278748B2 (ja) | 2002-04-30 |
Family
ID=24522242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30566991A Expired - Fee Related JP3278748B2 (ja) | 1990-12-18 | 1991-10-25 | メモリ空間を節約する方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5222222A (ja) |
EP (1) | EP0491498B1 (ja) |
JP (1) | JP3278748B2 (ja) |
KR (1) | KR960001944B1 (ja) |
CA (1) | CA2057403C (ja) |
DE (1) | DE69132005T2 (ja) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2251102B (en) * | 1990-12-21 | 1995-03-15 | Sun Microsystems Inc | Translation lookaside buffer |
US5420993A (en) * | 1991-06-13 | 1995-05-30 | Unisys Corporation | Extended address translation system for pointer updating in paged memory systems |
KR940005781B1 (ko) * | 1992-02-25 | 1994-06-23 | 현대전자산업 주식회사 | 메모리 매너지먼트 유니트(mmu) |
US5440707A (en) * | 1992-04-29 | 1995-08-08 | Sun Microsystems, Inc. | Instruction and data cache with a shared TLB for split accesses and snooping in the same clock cycle |
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 |
EP0580109B1 (en) * | 1992-07-23 | 1997-12-10 | Rockwell International Corporation | Data acces in a RISC digital signal processor |
US5450562A (en) * | 1992-10-19 | 1995-09-12 | Hewlett-Packard Company | Cache-based data compression/decompression |
US5568415A (en) * | 1993-02-19 | 1996-10-22 | Digital Equipment Corporation | Content addressable memory having a pair of memory cells storing don't care states for address translation |
US6000008A (en) * | 1993-03-11 | 1999-12-07 | Cabletron Systems, Inc. | Method and apparatus for matching data items of variable length in a content addressable memory |
US5483644A (en) * | 1993-04-15 | 1996-01-09 | Vlsi Technology, Inc. | Method for increasing cacheable address space in a second level cache |
WO1995031783A1 (de) * | 1994-05-11 | 1995-11-23 | Gmd - Forschungszentrum Informationstechnik Gmbh | Speichervorrichtung zum speichern von daten |
JP3740195B2 (ja) * | 1994-09-09 | 2006-02-01 | 株式会社ルネサステクノロジ | データ処理装置 |
US5963984A (en) * | 1994-11-08 | 1999-10-05 | National Semiconductor Corporation | Address translation unit employing programmable page size |
US5584013A (en) * | 1994-12-09 | 1996-12-10 | International Business Machines Corporation | Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache |
US5682495A (en) * | 1994-12-09 | 1997-10-28 | International Business Machines Corporation | Fully associative address translation buffer having separate segment and page invalidation |
US5715420A (en) * | 1995-02-10 | 1998-02-03 | International Business Machines Corporation | Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer |
US5680566A (en) * | 1995-03-03 | 1997-10-21 | Hal Computer Systems, Inc. | Lookaside buffer for inputting multiple address translations in a computer system |
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 |
US6069638A (en) * | 1997-06-25 | 2000-05-30 | Micron Electronics, Inc. | System for accelerated graphics port address remapping interface to main memory |
US6078987A (en) * | 1997-09-30 | 2000-06-20 | Sun Microsystems, Inc. | Translation look aside buffer having separate RAM arrays which are accessable with separate enable signals |
US5936873A (en) * | 1997-09-30 | 1999-08-10 | Sun Microsystems, Inc. | Single ended match sense amplifier |
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 |
US6243775B1 (en) | 1998-01-20 | 2001-06-05 | Micron Technology, Inc. | System 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 |
US6272576B1 (en) | 1998-01-20 | 2001-08-07 | Micron Technology, Inc. | Method for extending the available number of configuration registers |
KR100590751B1 (ko) * | 1999-02-23 | 2006-06-15 | 삼성전자주식회사 | 데이터라인크기변경시엔트리갯수가동일한캐시메모리시스템 |
US6327646B1 (en) * | 1999-03-12 | 2001-12-04 | Intel Corporation | Translation look-aside buffer utilizing high-order bits for fast access |
US6362990B1 (en) | 1999-09-10 | 2002-03-26 | Sibercore Technologies | Three port content addressable memory device and methods for implementing the same |
US6553453B1 (en) | 1999-09-10 | 2003-04-22 | Sibercore Technologies, Inc. | Variable width content addressable memory device for searching variable width data |
US6392910B1 (en) | 1999-09-10 | 2002-05-21 | Sibercore Technologies, Inc. | Priority encoder with multiple match function for content addressable memories and methods for implementing the same |
KR100587148B1 (ko) * | 2000-12-30 | 2006-06-07 | 매그나칩 반도체 유한회사 | 캠 셀 구조 |
US6901476B2 (en) * | 2002-05-06 | 2005-05-31 | Hywire Ltd. | Variable key type search engine and method therefor |
US20050182903A1 (en) * | 2004-02-12 | 2005-08-18 | Mips Technologies, Inc. | Apparatus and method for preventing duplicate matching entries in a translation lookaside buffer |
US20050182912A1 (en) * | 2004-02-12 | 2005-08-18 | International Business Machines Corporation | Method of effective to real address translation for a multi-threaded microprocessor |
US7167970B2 (en) * | 2004-05-24 | 2007-01-23 | Sun Microsystems, Inc. | Translating loads for accelerating virtualized partition |
KR100703164B1 (ko) * | 2005-07-12 | 2007-04-06 | 삼성전자주식회사 | 데이터 처리장치 및 그 제어방법 |
US8468297B2 (en) | 2010-06-23 | 2013-06-18 | International Business Machines Corporation | Content addressable memory system |
US9092359B2 (en) | 2012-06-14 | 2015-07-28 | International Business Machines Corporation | Identification and consolidation of page table entries |
US9811472B2 (en) * | 2012-06-14 | 2017-11-07 | International Business Machines Corporation | Radix table translation of memory |
US9753860B2 (en) | 2012-06-14 | 2017-09-05 | International Business Machines Corporation | Page table entry consolidation |
US11216385B2 (en) | 2019-05-15 | 2022-01-04 | Samsung Electronics Co., Ltd. | Application processor, system-on chip and method of operating memory management unit |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR10582E (fr) * | 1970-06-29 | 1909-07-30 | Paul Alexis Victor Lerolle | Jeu de serrures avec passe-partout |
US4285040A (en) * | 1977-11-04 | 1981-08-18 | Sperry Corporation | Dual mode virtual-to-real address translation mechanism |
US4680700A (en) * | 1983-12-07 | 1987-07-14 | International Business Machines Corporation | Virtual memory address translation mechanism with combined hash address table and inverted page table |
JPH0685156B2 (ja) * | 1985-05-24 | 1994-10-26 | 株式会社日立製作所 | アドレス変換装置 |
JPS62237547A (ja) * | 1986-04-09 | 1987-10-17 | Hitachi Ltd | アドレス変換方式 |
US4914577A (en) * | 1987-07-16 | 1990-04-03 | Icon International, Inc. | Dynamic memory management system and method |
US5058003A (en) * | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
US5133058A (en) * | 1989-09-18 | 1992-07-21 | Sun Microsystems, Inc. | Page-tagging translation look-aside buffer for a computer memory system |
-
1990
- 1990-12-18 US US07/629,258 patent/US5222222A/en not_active Expired - Lifetime
-
1991
- 1991-10-25 JP JP30566991A patent/JP3278748B2/ja not_active Expired - Fee Related
- 1991-12-03 DE DE69132005T patent/DE69132005T2/de not_active Expired - Fee Related
- 1991-12-03 EP EP91311241A patent/EP0491498B1/en not_active Expired - Lifetime
- 1991-12-11 CA CA002057403A patent/CA2057403C/en not_active Expired - Fee Related
- 1991-12-16 KR KR1019910023087A patent/KR960001944B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0491498A3 (en) | 1993-01-13 |
EP0491498B1 (en) | 2000-03-01 |
CA2057403A1 (en) | 1992-06-19 |
JP3278748B2 (ja) | 2002-04-30 |
DE69132005T2 (de) | 2000-10-19 |
KR960001944B1 (ko) | 1996-02-08 |
CA2057403C (en) | 2001-02-27 |
US5222222A (en) | 1993-06-22 |
KR920013131A (ko) | 1992-07-28 |
DE69132005D1 (de) | 2000-04-06 |
EP0491498A2 (en) | 1992-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3278748B2 (ja) | メモリ空間を節約する方法および装置 | |
EP1941375B1 (en) | Caching memory attribute indicators with cached memory data | |
US5493660A (en) | Software assisted hardware TLB miss handler | |
US6014732A (en) | Cache memory with reduced access time | |
US6304944B1 (en) | Mechanism for storing system level attributes in a translation lookaside buffer | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
KR960001946B1 (ko) | 우선 변환 참조버퍼 | |
US6145064A (en) | Method of efficiently updating hashed page tables | |
US7089398B2 (en) | Address translation using a page size tag | |
US5893931A (en) | Lookaside buffer for address translation in a computer system | |
JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
JP4065660B2 (ja) | 機能が並列に分散された変換索引バッファ | |
EP0506236A1 (en) | Address translation mechanism | |
US20160140042A1 (en) | Instruction cache translation management | |
JPH04232551A (ja) | 多重仮想アドレス変換方法及び装置 | |
WO1995016963A1 (en) | Variable page size translation lookaside buffer | |
KR20080063512A (ko) | 변환 색인 버퍼들(tlbs) 필드의 다중 레벨 갱신 | |
US8015361B2 (en) | Memory-centric page table walker | |
US10929306B2 (en) | Arithmetic processor, information processing apparatus, and control method of arithmetic processor | |
US6327646B1 (en) | Translation look-aside buffer utilizing high-order bits for fast access | |
US20040059887A1 (en) | Cache memory | |
AU708232B2 (en) | A method of efficiently updating hashed page tables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |