JPH10500235A - データ記憶装置 - Google Patents
データ記憶装置Info
- Publication number
- JPH10500235A JPH10500235A JP7529345A JP52934595A JPH10500235A JP H10500235 A JPH10500235 A JP H10500235A JP 7529345 A JP7529345 A JP 7529345A JP 52934595 A JP52934595 A JP 52934595A JP H10500235 A JPH10500235 A JP H10500235A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- area
- state
- entry
- useful
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
本メモリ装置は有用メモリの他に補助メモリを備える。両メモリは複数のメモリエントリを有する。補助メモリは、有用メモリをアドレスし得る複数のアドレスを含むアドレス空間領域をその中に記憶するためのものである。有用メモリエントリに関連した状態領域が限定状態を信号出力し、有用メモリエントリをアドレスするためのアドレスが、補助メモリに記憶されている少なくとも1つのアドレス空間領域内にある場合は、有用メモリエントリへの書き込み/読み出しアクセスは不可能となる。活性記憶のための効率良い領域選択的フラッシュはこの手順により可能である。
Description
【発明の詳細な説明】
データ記憶装置
本発明は、データ用メモリ装置に関する。特に本発明は、キャッシュ又は変換
索引バッファ(TLB)に関し、その新式はフラッシュバッファ、特にTLB又
はキャッシュ全体をフラッシュすることなく拡大領域及び縮小領域をフラッシュ
することが可能な平行動作するフラッシュバッファである。
近年のプロセッサにおいては仮想アドレスから物理アドレスへの変換を高速化
するためにTLBを使用している。一般にTLB及びキャッシュはプロセッサチ
ップ上に設けられている。物理索引キャッシュにおいてはこれらは直列に配置さ
れており(図4)、仮想索引一物理タグキャッシュにおいては平行に配置されて
いる(図5)。
ここでTLBはアドレス変換のための特別なキャッシュである。しかしながら
概してフルアソシアティブTLBも使用されており、TLBはnウェイセットア
ソシアティブである。図6はダイレクトマップTLBを示しており、即ち1ウェ
イセットアソシアティブTLBである。仮想アドレスvの上位部分v’はTLB
のライン(メモリエントリ)を索引付けするために使用されている。数ある中で
1つでも有効なエントリがあるかを示す、図6に示されていない状態ビットと共
に、このエントリに関連した仮想ページアドレスv’i及び物理ページアドレス
r'iが配置されている。これが有効でありv'iが現ページアドレスv’と一致し
ている場合、TLBヒットとなり、仮想アドレスの下位部分v”及びTLBから
与えられた物理ページアドレスr'iから物理アドレスが構成される。
nウェイセットアソシアティブTLBはダイレクトマップTLBとは異なり、
同時に索引付けされv’を平行してチェックされた複
数のエントリを1つのラインが保持する。これらのエントリの1つが正しい場合
がヒットであり、そのとき物理アドレスrを形成しアクセスの有効性を確認する
ためにr'i及びその状態ビットが使用される。
TLBはアドレス変換プロセスを短縮する。限定しているアドレスマッピング
プロセス、即ち1又は複数のページテーブルエントリが修正されると、整合のた
めに、無効化(“フラッシング”)、又は修正によって影響されたTLBエントリ
の対応する変更が必要となる。
アドレスマップの修正が単一ページのみを参照する場合、TLB内にある限り
、フラッシュする又は各エントリを変更することで十分である。これは多くとも
1つのTLBエントリに関するので、その動作はTLBの通常の変換ステップと
比較され得る。即ちTLBは仮想ページアドレスを使用してアドレスされ、ヒッ
トである場合エントリは無効とされるか又は修正される。
大領域に関する修正に関しては、この方法はすぐに複雑になる。
mページ分の仮想領域に対してはm個のステップが必要である。フルアソシアテ
ィブTLBでは、その問題は、全てのTLBエントリの平行に限定されたフラッ
シングによって効率良く解決される。あいにく、これに要求されるハードウェア
は一般的に過剰となる。
nウェイセットアソシアティブTLBに関しては、TLB全体を調べることは
測り知れないほど高価であり、例えばk個のエントリに対して1つのTLB当た
りk/n個のステップが必要である。従ってこのような場合、1つのステップで
行えるようにTLB全体をフラッシュしておく。TLBのサイズ拡大に関しては
、これにより索引付けされたTLBミスのためにこれの重要性が減少する。
本発明の目的は、メモリ装置、特により大きいアドレス空間領域(仮想領域)
のフラッシングを有効に行えるnウェイセットアソシ
アティブキャッシュ又はTLBを提供することにある。
この目的を達成するために、本発明は、請求項1記載の特徴を有するメモリ装
置を提案する。本発明の実施例の特徴は各従属項に記載する。
本発明に係るメモリ装置は、アドレス手段によりアドレス可能な複数のメモリ
エントリを有する有用メモリを備える。この有用メモリは、例えばアドレス変換
のための特定のキャッシュメモリとして見なされ得るキャッシュメモリ又は変換
索引緩衝器とすることができる。特に本発明に係る有用メモリは、有用メモリを
アドレスするためにアドレス空間が有するアドレスよりも事実上少ないメモリエ
ントリを有する。各メモリエントリには、1又は複数のデータワードが記憶され
得るデータ領域が設けられている。またこのデータ領域に加えて、各メモリエン
トリが、データ領域への書き込み/読み出しアクセスを限定するための少なくと
も1つの限定状態、又はデータ領域への書き込み/読み出しアクセスを限定しな
い非限定状態に変換され得る状態領域を有する。さらに各メモリエントリは他の
領域、特にタグ領域及び有効/無効領域を有する。有用メモリをアドレスすると
き、アドレス又はその一部が、有用メモリのアドレスされた全エントリのタグ領
域の内容と比較される。これがタグ領域と一致しており、一方で、有効/非有効
領域に有効とマークされ、状態領域が非限定状態にあるか又は状態領域が限定状
態にあるかのいずれかであり、有用メモリの索引付けに使用されたアドレスが、
補助メモリに記憶された少なくとも1つのアドレス空間領域の一部でない場合は
、そのデータ領域への書き込み/読み出しアクセスが実行されてもよい。
また本メモリ装置は、アドレス空間の領域を限定するデータが記憶されている
1又は複数のメモリエントリを含む補助メモリを備え
る。この補助メモリ(フラッシュルックアサイドバッファ、略してFLBとも称
される)を使用して、有用メモリが、領域選択方法により、即ち単一の動作ステ
ップで効率良くフラッシュされてもよい。
有用メモリを領域選択的にフラッシュするための方法は以下のように行う。即
ち、補助メモリにアドレス空間領域を記憶する際に、全ての有用メモリエントリ
の状態領域が限定状態に変換される。有用メモリエントリを続いてアドレスする
とき、補助メモリに記憶されている少なくとも1つのアドレス空間領域内にアド
レスがあり、状態領域が限定状態にある場合は、この有用メモリエントリのデー
タ領域への書き込み/読み出しアクセスは実行されない。これを決定するために
有用メモリエントリをアドレスするために使用されたアドレスが、補助メモリに
記憶された少なくとも1つのアドレス空間領域に含まれているかをチェックされ
る。この結果、該当する場合は、補助メモリはこの状況を示す信号(以後Fhi
tとも称する)を出力する。即ち有用メモリのフラッシュの後も、補助メモリに
記憶された少なくとも1つのアドレス空間領域に含まれないアドレスを使用して
アドレスすることが可能な全ての有用メモリエントリのデータ領域に対しアクセ
スしてもよい。有用メモリをTLB又はキャッシュとして実行する場合、有用メ
モリの横に備えられるべき全てのものが補助メモリであり、有用メモリにおける
メモリエントリが状態領域に加えられるべきであるので、時間消費テーブルウォ
ーク、又は選択的フラッシュに関連しない有用メモリエントリのための主メモリ
アクセスが回避され、ハードウェア及びソフトウェアの負担が比較的軽くなる。
前記状態領域は、必要な場合、それらが中央コマンド上で同時に限定状態へ変換
され選択的に非限定状態へ変換されるようになしてある。
好適には、それが初期化された(一般にデータが有用メモリエン
トリに書き込まれ、有効としてタグ付けされた)有用メモリエントリを記憶する
場合、有用メモリエントリをアドレスするためのアドレスが補助メモリに記憶さ
れている少なくとも1つのアドレス空間領域の一部ではないときに、各有用メモ
リエントリの状態領域は正確に限定状態に変換される。しかしながらアドレスが
補助メモリに記憶されている少なくとも1つのアドレス空間領域の一部である場
合、アドレスされた有用メモリエントリの状態領域は非限定状態へ変換される。
また代案として、アドレッシングのために使用されたアドレスが補助メモリに
記憶されている少なくとも1つのアドレス空間領域の一部であるか否かに関わら
ず、記憶アクセス時に、アドレスされた有用メモリエントリの状態領域が常に非
限定状態へ変換されてもよい。アドレッシング(特に有用メモリの初期化時又は
各フラッシュの後である)に先立ってアドレスされた有用メモリエントリの状態
領域が限定状態にあり、且つアドレッシングのためのアドレスが補助メモリに記
憶されている少なくとも1つのアドレス空間領域の一部でない場合、状態領域は
、アドレスする際に非限定状態に変換されるので、この瞬間から状態領域が限定
状態へ変換されるまでは、補助メモリに関するチェックが、有用メモリエントリ
をアドレスする際にはもはや不要となる。
好適には、アドレス空間領域を限定するデータを補助メモリエントリへ書き込
む際に、全ての有用メモリエントリの状態領域が限定状態に変換される。また補
助メモリは複数のメモリエントリを有することが望ましい。補助メモリがオーバ
ーフローすると、全ての有用メモリエントリ及び全ての補助メモリエントリが無
効として都合良くタグ付けされる。技術回路の実現においては、各補助メモリエ
ントリが、補助メモリエントリに記憶されているデータが有効か否
かを示す有効ビットを有することに注意する。その有効ビットは各有用メモリエ
ントリ(先の有効/無効領域に相当する)にも設けられている。
有益には、補助メモリエントリのアドレス空間領域の各記憶に先立ち、記憶さ
れるべきアドレス空間領域が、補助メモリに既に記憶されているアドレス空間領
域と重複するかをチェックされる。補助メモリに記憶されている全てのアドレス
空間領域と、記憶されるべき新たなアドレス空間領域との組み合わせの論理積が
後者に等しい場合、新たなアドレス空間領域は補助メモリに再度記憶される必要
はなく、むしろ全ての有用メモリエントリの状態領域を限定状態に切り換えるこ
とで足りる。そのとき補助メモリは何の変更もなく使用され得る。一方、アドレ
ス空間領域が補助メモリに記憶されている場合、例えば追加的に記憶されるべき
アドレス空間領域内全体にある場合、そして後者が既に記憶されているアドレス
空間領域より大きいか、又は前者が記憶されるべきアドレス空間領域と重複又は
これと隣接する(それらの間に距離があってもなくてもよい)場合、既に記憶さ
れているアドレス空間領域を含む補助メモリエントリは、記憶されるべき新たな
アドレス空間領域を特定するデータで上書きされるてもよい。有用メモリは、全
ての有用メモリエントリの状態領域を限定状態に変換することにより、通常の方
法で選択的に再度フラッシュされる。上記考察は、相応じて、記憶されるべき新
たなアドレス空間領域と、補助メモリに既に記憶されている全てのアドレス空間
領域の結合との比較に適応する。
上述した補助メモリにおける動作は、補助メモリが早期オーバーフローを抑制
するための、補助メモリの最適使用を想定している。即ち本発明のこの具体例で
は、1又は複数の現行の補助メモリエントリ及び/又は新たな補助メモリエント
リが、以前のデータ及び新
たなデータによって特定された全てのアドレス空間領域が、せめて補助メモリに
記憶されるように、常に更新されるか又は選択される。
好適には全ての有用メモリエントリの状態領域が、補助メモリにおける動作に
関係なく、また補助メモリの状態に関係なく、同時に限定状態に切り換えられ得
る。
状態領域の実行の最も簡単な形態では、これは1ビット領域で構成され、限定
状態又は非限定状態を特定するためにセット及びリセットされてもよい。
上述したものとは異なる状態領域の実施例では、複数のビットを含み“生成番
号”が状態領域に記憶される。この場合、本発明のメモリ装置は、アドレス空間
領域が補助メモリエントリに記憶される都度インクリメントされる生成番号カウ
ンタを備える。各補助メモリエントリは1つの生成番号領域で構成されている。
アドレス空間領域が補助メモリエントリに記憶される場合、この補助メモリエン
トリの生成番号領域は、インクリメントの前に保持されている生成番号カウンタ
の値にセットされる。記憶アクセスの実行対象である有用メモリエントリの状態
領域は、生成番号カウンタの現行の値にセットされる。アドレスされた有用メモ
リエントリの状態領域が限定状態にあるか非限定状態にあるかは、その状態領域
の値と、アドレス空間領域が記憶されており、有用メモリエントリをアドレスす
るために使用されたアドレスを含む補助メモリエントリの生成番号領域の値とを
比較することにより、そのとき決定される。その非限定状態は、状態領域の値が
各補助メモリエントリの生成番号領域の値より大きい場合に正確に与えられる。
このように有用メモリエントリの状態領域値と生成番号領域エントリとが、常に
2つのエントリのうちいずれがより新しいか(補助メモリエントリ、又は補助メ
モリエントリにより特定されたアドレス空間領域内にあるアドレス
を有する有用メモリエントリ)を示す。その機能として、状態領域は非限定状態
又は限定状態にある。
本発明にあっては、有用メモリエントリをアドレスするためのアドレスが補助
メモリに記憶された複数のアドレス空間領域内に存在することは基本的に可能で
ある。アドレスされた有用メモリエントリのアドレスが、複数の補助メモリエン
トリのデータによって限定されたアドレス空間領域内にある場合、有用メモリ及
び補助メモリの生成番号を比較することにより、状態領域の非限定状態又は限定
状態を実現するとき、しかも状態領域の値が、有用メモリエントリをアドレスす
るために使用されたアドレスを含むアドレス空間領域を記憶している補助メモリ
エントリの生成番号領域に記憶された生成番号の最大値より大きい場合、アドレ
スされた有用メモリエントリの状態領域は非限定状態にある。そうでない場合、
アドレスされた有用メモリエントリの状態領域は限定状態にある。
好適には、生成番号カウンタは、補助メモリエントリのアドレス空間領域が補
助メモリに既に記憶されている1又は複数のアドレス空間領域と重複する場合に
、補助メモリエントリのアドレス空間領域を記憶するときにのみインクリメント
される。従って一致し得る総生成番号が減少し、対応する補助メモリの生成番号
領域と有用メモリの状態領域とが縮小されるという効果が得られる。
補助メモリがオーバーフローする、即ちアドレス空間領域が補助メモリにこれ
以上記憶されないような場合、全ての有用メモリ及び補助メモリエントリは無効
としてタグ付けされ、さらに世代番号カウンタはリセットされる。世代番号カウ
ンタが所定の最大値を超過すると、世代番号カウンタがリセットされ、また全て
の有用メモリ及び補助メモリエントリが無効としてタグ付けされる。
本発明の具体例を、図面を用いて以下に詳述する。各図は以下の
通りである。
図1は、所定のTLB/キャッシュシステムに追加される“フラッシュルック
アサイドバッファ”の構成の模式図である。
図2は、感衝突ビットの形態における状態領域を備えたTLBの構成を示す。
図3は、論理的に結合されたFLB及びTLBのブロック図である。
図4は、限定状態及び非限定状態をマークするための世代番号を備えたFLB
の構成の模式図である。
図5は、世代番号を備え有効ビット及びFhit信号を備えないFLBの構成
を示す。
図6は、世代番号を備えたTLBを示す。
図7は、世代番号を備え、その出力が論理的に結合されたFLB及びTLBの
ブロック図である。
図8は、有効ビット及びThit信号を備えないTLBの構成を示す。
図9は、有効ビット及びThit信号を備えないFLB及びTLBの構成を(
ブロック図として)示す。
図10は、マスクFLBを備えたTLBを(ブロック図として)示す。
図11は、アクティヴィティノートを備えた単純なFLBの基本的な構成を示
す。
図12は、シャドウTLBの構成を示す。
図13は、“書き込み保護”を備えたTLB及びFLBを含むシステムのブロ
ック図である。
図14は、TLB及びキャッシュを含む直列キャッシュメモリシステムの基本
構成を示す。
図15は、TLB及びキャッシュを含む平行キャッシュメモリシステムの構成
を示す。
図16は、ダイレクトマップTLB(基本構成)を示す。
1.フラッシュルックアサイドバッファ
1.1 単純なFLB
図1〜3を参照して、TLBメモリシステムを用いた本発明に係るメモリ装置
の第1実施例について以下に詳述する。以下の(全ての実施例に対する)考察は
全て同様にキャッシュメモリシステムに転じることができる。ここでTLBは物
理的にキャッシュメモリであることに注目する。
TLBシステムを備えた本発明を実行するために、小型でフルアソシアティブ
フラッシュルックアサイドバッファ(以下FLBと称する)がTLBシステムに
追加されている。FLBの各エントリは有効ビットを有し、領域ρjの特定に適
用することができる(図1)。
ここで領域は、例えば開始及び終了アドレス又は長さによって特定されてもよ
く、アドレス、及びアドレスビットをヒットチェックのために使用すべきである
か無視すべきであるかを示すマスクによって特定してもよい。
有効(validj)であり、その仮想アドレスvを含む領域ρjである少なく
とも1つのエントリjがある場合、FLBはヒットFhitの信号を出力する。
TLBは、FLBヒットを伴う衝突を照合すべきか(cs)即ち限定状態であ
るか、又はFLBヒットを伴う衝突を無視すべきか
csiを備える。ヒットである場合、TLBはThitを信号出力
し、物理アドレスr’及びそのヒットエントリからの感衝突ビットcsを与える
。
変換時に、TLBヒット及びFLBヒットとなった(Thit∧Fhit)場
合、これを衝突と称する。衝突はcsがセットされている場合に真であり、cs
がセットされていない場合は偽である。真の衝突時にはシステム全体はTLBヒ
ットを無視する、即ち丁度FLBヒットが報告されたときにも感衝突ビットがセ
ットされる。
即ち、
Hit=Thit∧¬(Fhit∧cs)
このヒット状態の理解を深めるために図3を参照されたい。
新たなTLBエントリが記憶される都度、対応する仮想アドレスがFLBヒッ
トをトリガしないときに、感衝突ビットcsiはセットされる。そうでない場合
、csiはこの工程においてリセットされる。通常、TLBミス(記憶アクセス
)のためにTLBエントリが記憶され、この場合対応する仮想アドレスv’はF
LBによってTLBステップと平行に処理されるので、新たなTLBエントリの
ておく。
真の衝突を伴うTLBヒットでは、
1.対応するTLBエントリはフラッシュされる(validi:=偽)
2.TLBミスが信号出力され、MMUテーブルウォークが実行される。
3.FhitがTLBミス時にセットされるので、使用エントリの感衝突ビット
csiが新たな記憶動作時にリセットされる。
同じ仮想アドレスを再度アドレスすると偽衝突となる。
ヒット信号の相互作用を示す次の図式では、右側の動作のための前提条件を夫
々矢符→の左側に示す。いずれかを選択するために、ここで挙げた前提条件を全
て満足すべきである(AND動作)。コンマで分けた全ての動作は平行に実行さ
れる。オーバーストライク
ットを示し、“−!”は信号又はビットのリセットを示す。
FLBの方法は次のものを使用する。
・領域ρがFLBに既に記憶された領域ρjと重複せず、少なくとも1つの自由
なFLBエントリが存在するとき、自由なエントリにρを記憶し、それを有効と
して設定することによりフラッシュしてもよい。
・FLBがオーバーフロー又は重複する場合、
(a)FLB及びTLBは、一般に全ての有効ビットを同時にリセットすることに
より完全にフラッシュされる。
(b)又はTLBは、全ての感衝突ビットcsiを同時にセットすることにより再度
感衝突状態とされるのみであり、又はTLBはそのままにしておく。FLBは、
そのままにしておくか、又は変更の後に全ての有効FLBエントリの領域の結合
が変更前の対応する量を含むように変更してもよい。
1.2 世代番号を備えたFLB
次に図1〜6を参照しながら本発明の第2実施例について述べる。ここではア
ドレスされたTLBメモリエントリのデータ領域にアクセスされたかを示す状態
情報又は状態領域の内容が、FLBに記憶されているアドレス空間領域の一部で
あるアドレス手段によりアドレスされる。
簡単なFLBではエントリ毎に1つの世代番号領域Gjを備える。FLBにお
ける領域の重複が許可されない場合、Gにおける正確なエントリの世代番号Gj
はFLBヒット時に準備される。領域が重複すると、Gにおける全ての正確な(
v’∈ρj)有効エントリの最大の世代番号GjがFLBヒット時に準備される。
図5に示す代案は有効ビット及びFhit信号がない場合である。ここで無効
は予備の最小世代番号−∞によって示されている。FLBエントリはGj=−∞
で無効とマークされる。さらにFLBはヒットでない場合G=−∞を与える。図
面及び説明の簡素化のために以下の記述は常にこの第2実施例に基づくものとす
る。有効ビット及びFhit信号を使用し、回路の形態において簡素化及び高速
化が可能である実施例は、これらの記述から容易に導かれる。
感衝突ビットの代わりに、TLBはエントリ毎に1つの世代番号giを備える
(図6)。TLBヒットの場合、対応する世代番号がgに与えられる。現行の各
世代を示すレジスタγが存在する。最初に又は各FLBフラッシュの後にそれは
例えば値1を保持する。FLBの内容が変更される度に世代は1ずつインクリメ
ントされる。TLBエントリの各ローディングに際しその世代番号が現行の世代
gi:=γにセットされる。
衝突はThit∧G>−∞として与えられる。G≧gであるときは図7に示す
ように真である。γ及びFLB領域Gjを適当に使用する場合は、同じ仮想アド
レスの他のアドレッシングが偽衝突へ導
かれるのみであり、以下のようになる。
−∞の代用として0が使用され、TLBにおける各世代番号領域giのkビッ
トを0で代用すると、1〜2k-1が有効世代値として使用されてもよい。
FLB管理方法
具体的なフラッシュの語義は、FLBの管理で略定義される。2つの方法例に
ついて概略を述べる。
(a)世代番号領域が十分に広い場合、Gjにおけるγの値は、新たな各FLBエン
トリで引き継がれ、レジスタγは1ずつインクリメントされる。そのとき他のF
LBエントリとの重複はもはや重要ではない。FLBがオーバーフローした場合
、FLB及びTLBはフラッシュされてγがリセットされる。
(b)しかしながら多くの場合、1.1章で述べた方法を応用することにより、よ
り狭幅の世代番号領域を使用することができる。ここで新たなFLBエントリの
Gjが常にγにセットされているが、その後、少なくとも1つの有効ρjと共に記
憶されるべき新たな領域ρが重複する場合、レジスタγが1ずつインクリメント
されるのみである。そうでない場合γは変更されずにもとのままである。FLB
がオーバーフローするか又は現行の世代番号γが大きくなりすぎた場合、FLB
及びTLBはフラッシュされ、γがリセットされる。
TLBを完全にフラッシュする代わりに、方法(b)においては、全ての世代番
号giを同時に例えば1にリセットすることにより、
TLBを感衝突性にすることが可能である。そのときFLBはもとのままである
か、又は変更後の全ての有効FLBエントリの総数が、変更前の対応する領域を
少なくとも有効に包含するように変更されてもよい。
有効ビット及びThit信号を有さない場合
ヒットでないときに、予備の最小世代番号−∞を使用すると、無効TLBエン
トリに対してgi=−∞をセットし、マルチウェイセットアフシアティブTLB
に対しgi>−∞であるエントリについてのみ考慮し、常時gに−∞を与えるこ
とにより、TLBにおいても有効ビット及びThit信号を要求しない。このモ
デルを図8,9に示す。
以下が適用される。
エントリ毎の1ビットがTLBに保持されているこのモデルは特に重要である
。例えば2つのビットcsi,validiが2ビット領域giと入れ換えられ、
値0が−∞として使用されている場合、同じメモリ動作が既に3つの真の世代の
ために許容されている。
しかしながら全ての有効な(gi>0)世代番号をリセットすることにより、
感衝突性とすることは書き込みのためにはもはや実行されない。
1.3 世代マスクを備えたFLB及びTLB
世代番号の代わりにビットマスクを使用してもよい。即ち数学的
な比較<の代わりに“ビット式AND演算”が必要である。
1.4 マスクFLBを備えたTLB
世代番号又はマスクが十分に広い場合、FLBにおける世代情報Gjが省略さ
れ、FLBエントリのアドレスとしてgiを理解する。図10に示す如く、FL
Bは各エントリjに対して信号Fhitjを与える。これら全ての信号はk個の
FLBエントリでOR演算をマスクされる。
Xhit=(Fhit0∧m0)∨(Fhit1∧m1)∨…∨(Fhitk-1∧mk-1)
ここでマスク(m0,m1,…,mk-1)は、TLBエントリに直接記憶されg
として与えられるか、与えられたgから例えば−2gとして生成される。¬Xh
it∧Thitの場合がヒットであり、Xhit∧Thitの場合が真の衝突で
ある。以下が適用される。
1.5 アクティヴィティノートを備えたFLB
FLBに記憶されるべき新たな領域が既に記憶されている現行の領域と重複す
る場合、幾つかのFLBモードがTLBをフラッシュするか、又は再度完全に感
衝突性にする。このような処理を減少させるためにFLBの活性エントリと非活
性エントリとを差別化してもよい。即ち各エントリが最初に真の衝突が生じたと
きのみ活性となる。そのとき非活性エントリは、拡張されるか、又は真のFLB
又はTLBフラッシュを必要としない他のフラッシュのために使用される。
各FLBエントリは1つのアクティヴィティビットactvjによって拡張さ
れる。これは有効ビットを備え世代番号を備えない単純なFLBとして図11に
示される。他のタイプのFLBはアクティヴィティビットを付加することにより
同様にして拡張される。新たにFLBエントリをローディングする場合、アクテ
ィヴィティノートは常にリセットされる。真の衝突が生じた場合にのみ、一致し
ている(∀v’∈ρj:actvj!)全てのFLBエントリのアクティヴィティ
ビットがセットされるが、このとき無効エントリは無視される。FLBにおいて
領域の重複が生じた場合、複数のアクティヴィティビットをセットするだけでよ
いことを明記する。そうでない場合は真の衝突である1つの一致FLBエントリ
が正確に存在する。
感衝突性及び有効ビットを備えた簡単なFLB及びTLBのために以下が適用
される。
有効ビットと共に、世代番号Gjを備えたFLB及び世代番号giを備えたTL
Bに対して以下が適用される。
世代番号Gjを備えたFLB及び世代番号giを備え有効ビットを備えないTL
Bに対しては以下が適用される。
マスクFLBを備えたTLBに対しては以下が適用される。
領域ρがFLBに既に記憶されている領域ρjと重複せず、活性であり(ac
tvj)、少なくとも1つのFLBエントリを自由にする場合、その領域は、自
由なエントリにρをローディングし、これを有効とセットすることによりフラッ
シュされる。
また非活性(actvj)のFLBエントリは修正されるか又はイネーブルと
される。フラッシュ語義のための要求事項は、変更後の有効な全てのFLBエン
トリの総数が変更前の対応する有効な領域を少なくとも包含することのみである
。
2.FLBのその他の形態
2.1 選択的TLBフラッシュ
TLBは、全ての有効なTLBエントリの領域v'iをFLBに対して順番にテ
ストすることにより選択的にフラッシュされてもよい。
FLBがviでヒットを報告した場合、このTLBエントリは無効とされる。T
LB全体がこのようにしてスキャンされているとき、スキャンの開始以来変更さ
れていない全てのFLBはイネーブルとされる。特にスキャン中にFLBにおい
て変更かない場合、FLB全体がフラッシュされてもよい。
各nウェイセットアソシアティブTLBエントリを平行にテストすることによ
り、n方向TLBの要素nにてTLBスキャンは高速化されてもよい。FLBの
速度に依存してTLBスキャンはその最後まで増加すべきである。
スキャンと平行にTLBによる通常のアドレス変換を行うためにシステムは、
図12に示す如く、“シャドウ”TLBにより拡張されてもよい。TLBと比較
した場合、シャドウTLBは、アソシアティブではないが、ダイレクトアドレス
メモリである。TLBの変更による更新時にTLBアドレスは引き継がれる。シ
ャドウTLBは、各TLBエントリの仮想アドレスと有効性と衝突情報とを複写
する。感衝突ビットを備えたTLBに対しては以下のようにシャドウTLBのエ
ントリに対して真である(図12参照)、即ち
wi=vi,xi=validi∧csi,
世代番号及び有効ビットを備えたTLBについては以下が適用され、
wi=vi,xi=(validi,gi),
そして世代番号を備え有効ビットを備えないTLBに対しては以下が真である。
wi=vi,xi=validi=gi
対応するTLB領域における変更は直ちにシャドウTLBへ伝えられる。シャ
ドウTLBをスキャンすることにより選択的フラッシュが実行される。この工程
においてフラッシュされるべきエントリが見つかった場合、そのフラッシュ動作
はシャドウTLB及び実TLBに対して実行される。
2.2 仮のTLBとしてのFLB
FLBエントリは、TLBにおいてもラッチされている領域、例えばアクセス
属性によって拡張されてもよい。これらが領域のため
に変更される(制限される)とき、Fhitに際しては、FLBからの対応する
情報を引き継ぐことで十分である。テーブルウォークは不要となる。
図13は、例えばFwpにおけるFLBヒット時に与えられる、領域毎の書き
込み保護信号をも含むFLBを示す。最後の書き込み保護信号wpはTwpv(
Fhit∧Fwp)として形成され、ここでTwpはTLBによって与えられた
書き込み保護信号である。このようにして領域は、追加TLBミス及びテーブル
をウォークを必要とすることなく一時的に書き込み保護される。
この方法は、仮想別名及び呼出参照のために使用することも可能である。先の
2.1章で述べた方法は、可能であれば、TLBエントリがフラッシュされない
ように展開されてもよいが、FLBからの情報に基づいて変更されてもよい。
2.3 FLBにおける重複
より大きいFLBにおいては、新たな領域ρ=[ρ,ρ]が既に有効に記憶さ
れた領域ρj=[ρj,ρj]と重複するかを決定することが複雑になり得る。フ
ルアソシアティブエレメントのように、FLBは、そのサイズに関係なく2つの
ステップでこの決定を行うことができるが、FLBの複雑さとコストとはこれに
より増大する。
各FLBエントリはビットlowjによって拡張される。重複チェックの初期
において全てのlowjビット及びFhit信号はリセットされる。FLBは新
領域の下限ρを受け、各素子は以下の規則に従うステップ1を実行する。
次にFLBは上限ρを受け各素子は以下の規則に従うステップ2を実行する。
ステップ2の後、信号Fhitがセットされている場合は重複がある。
2.4 キャッシュ
記載した全ての方法はTLBに代わりにキャッシュを用いて実施してもよい。
そのときTLBエントリの新たなローディングによるテーブルウォークは主メモ
リアクセスと入れ換えられる。
Claims (1)
- 【特許請求の範囲】 1.アドレス空間領域のアドレス手段によりアドレスすることが可能な複数のメ モリエントリを有する有用メモリと、 −ここで各エントリは、有効又は無効とマークされたデータ領域、及び有効 なデータ領域への書き込み/読み出しアクセスを限定する少なくとも1つの限定 状態と、有効なデータ領域への書き込み/読み出しアクセスを限定しない少なく とも1つの非限定状態とへ変換することが可能な可変状態領域を含む、 アドレス空間領域を特定するデータを記憶する少なくとも1つのメモリエント リを備えた補助メモリと を備え、 補助メモリに記憶された少なくとも1つのアドレス空間領域及び有用メモリエ ントリの状態領域内にアドレスがある場合は、アドレスされた有用メモリエント リのデータ領域への書き込み/読み出しアクセスが許可されないようになしてあ る 特にキャッシュメモリ装置又は変換索引バッファにおけるデータ記憶用メモリ装 置。 2.有用メモリエントリを初期化するロードアクセス時に、アドレスされた有用 メモリエントリの状態領域は、 アドレスが、補助メモリに記憶された少なくとも1つのアドレス空間領域でな いときには限定状態へ変換され、 また、アドレスが、補助メモリに記憶された少なくとも1つのアドレス空間領 域であるときには非限定状態へ変換されることを特徴とする請求項1記載のメモ リ装置。 3.有用メモリエントリを初期化するためのロードアクセス時に、アドレスされ た有用メモリエントリの状態領域が非限定状態へ変換されることを特徴とする請 求項1記載のメモリ装置。 4.限定状態となっており、アドレッシングのために使用されたアドレスが補助 メモリに記憶された少なくとも1つのアドレス空間領域の一部でない場合は、ア ドレス時に、アドレスされた有用メモリエントリの状態領域が非限定状態へ変換 されることを特徴とする請求項3記載のメモリ装置。 5.アドレス空間領域を特定するためのデータを補助メモリエントリへ書き込む ときには、全ての有用メモリエントリの状態領域が非限定状態へ変換されること を特徴とする請求項2〜4のうちのいずれかに記載のメモリ装置。 6.補助メモリは複数のメモリエントリを有することを特徴とする請求項1〜5 のうちのいずれかに記載のメモリ装置。 7.全ての補助メモリエントリが各アドレス空間領域を特定するデータと、補助 メモリに記憶されるべきアドレス空間領域を特定するデータとを保持する場合は 、全ての有用メモリエントリ及び補助メモリエントリは無効とマークされること を特徴とする請求項1〜6のうちのいずれかに記載のメモリ装置。 8.アドレス空間領域を特定するデータを補助メモリエントリへ記憶することに 先立ち、このアドレス空間領域が、補助メモリに既に記憶されているアドレス空 間領域と重複するか、そして存在してい る補助メモリエントリ及び/又は新たな補助メモリが、先に特定された全てのア ドレス空間領域と新たなデータとが補助メモリに記憶され、全ての有用メモリエ ントリの状態領域が限定状態へ変換されるように更新又は選択され得るかをチェ ックすることを特徴とする請求項1〜7のうちのいずれかに記載のメモリ装置。 9.全ての有用メモリエントリの状態領域が、補助メモリの動作又はその状態に 関係なく、同時に限定状態へ変換されることを特徴とする請求項1〜8のうちの いずれかに記載のメモリ装置。 10.有用メモリエントリの状態領域は、限定状態及び非限定状態を特定するた めにセット及びリセットされる単一ビットを含むことを特徴とする請求項1〜9 のうちのいずれかに記載のメモリ装置。 11.各補助メモリエントリは世代番号領域を有しており、 アドレス空間領域を特定するデータを補助メモリエントリに記憶する各動作時 に、インクリメントされる世代番号カウンタが設けられており、 −補助メモリエントリの世代番号領域は、この補助メモリエントリがアドレ ス空間領域を特定するデータを記憶している場合に、インクリメント前に世代番 号カウンタが保持していた値にセットすることが可能であり、またここでは、こ れを初期化する有用メモリエントリに対してロードアクセスされる場合に、有用 メモリエントリの状態領域が世代番号カウンタの現行の値にセット可能であり、 アドレスされた有用メモリエントリの状態領域は、 −状態領域の値が、アドレスされた有用メモリエントリのアド レスを含む補助メモリエントリの世代番号領域の値より大きいとき非限定状態と なり、 −そうでないときには限定状態となる ことを特徴とする請求項1〜9のうちのいずれかに記載のメモリ装置。 12.アドレスされた有用メモリエントリのアドレスが複数の補助メモリエント リのデータによって特定されたアドレス空間領域内にあるとき、アドレスされた 有用メモリエントリの状態領域は、 −状態領域の値が、対応する補助メモリエントリの世代番号領域に記憶され た世代番号の最大値より大きいときに非限定状態となり、 −そうでないときには限定状態となる ことを特徴とする請求項11記載のメモリ装置。 13.アドレス空間領域を特定するデータを補助メモリエントリに記憶するとき 、これらのデータによって特定されたアドレス空間領域が、補助メモリに既に記 憶された1又は複数のアドレス空間領域と重複する場合にのみ、世代番号カウン タがインクリメントされることを特徴とする請求項11又は12に記載のメモリ 装置。 14.アドレス空間領域を特定するデータが補助メモリにこれ以上記憶され得な い場合は、有用メモリエントリ及び補助メモリエントリの全てが無効とマークさ れ、世代番号カウンタがリセットされることを特徴とする請求項11〜13のう ちのいずれかに記載のメモリ装置。 15.世代番号カウンタが所定の最大値を超過した場合は、有用メモリエントリ 及び補助メモリエントリの全てが無効とマークされ、世代番号カウンタがリセッ トされることを特徴とする請求項11〜14のうちのいずれかに記載のメモリ装 置。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE4416658 | 1994-05-11 | ||
| DE4416658.3 | 1994-05-11 | ||
| PCT/EP1995/001780 WO1995031783A1 (de) | 1994-05-11 | 1995-05-11 | Speichervorrichtung zum speichern von daten |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10500235A true JPH10500235A (ja) | 1998-01-06 |
Family
ID=6517893
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7529345A Pending JPH10500235A (ja) | 1994-05-11 | 1995-05-11 | データ記憶装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US6260130B1 (ja) |
| EP (1) | EP0760134A1 (ja) |
| JP (1) | JPH10500235A (ja) |
| DE (1) | DE19516949A1 (ja) |
| WO (1) | WO1995031783A1 (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6978357B1 (en) | 1998-07-24 | 2005-12-20 | Intel Corporation | Method and apparatus for performing cache segment flush and cache segment invalidation operations |
| GB2350910A (en) * | 1999-06-08 | 2000-12-13 | Advanced Risc Mach Ltd | Status bits for cache memory |
| US6510508B1 (en) * | 2000-06-15 | 2003-01-21 | Advanced Micro Devices, Inc. | Translation lookaside buffer flush filter |
| US7284100B2 (en) * | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
| US9454490B2 (en) | 2003-05-12 | 2016-09-27 | International Business Machines Corporation | Invalidating a range of two or more translation table entries and instruction therefore |
| US7530067B2 (en) * | 2003-05-12 | 2009-05-05 | International Business Machines Corporation | Filtering processor requests based on identifiers |
| US20050182903A1 (en) * | 2004-02-12 | 2005-08-18 | Mips Technologies, Inc. | Apparatus and method for preventing duplicate matching entries in a translation lookaside buffer |
| JP5459006B2 (ja) * | 2010-03-24 | 2014-04-02 | 富士通株式会社 | メモリ管理装置、メモリ管理方法及びメモリ管理プログラム |
| US9182984B2 (en) | 2012-06-15 | 2015-11-10 | International Business Machines Corporation | Local clearing control |
| US20140006747A1 (en) * | 2012-06-29 | 2014-01-02 | Broadcom Corporation | Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure |
| US9892060B2 (en) * | 2015-12-02 | 2018-02-13 | International Business Machines Corporation | Identifying stale entries in address translation cache |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS51115737A (en) * | 1975-03-24 | 1976-10-12 | Hitachi Ltd | Adress conversion versus control system |
| US4053948A (en) * | 1976-06-21 | 1977-10-11 | Ibm Corporation | Look aside array invalidation mechanism |
| JPS6091462A (ja) * | 1983-10-26 | 1985-05-22 | Toshiba Corp | 演算制御装置 |
| US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
| EP0348628A3 (en) * | 1988-06-28 | 1991-01-02 | International Business Machines Corporation | Cache storage system |
| US5265227A (en) * | 1989-11-14 | 1993-11-23 | Intel Corporation | Parallel protection checking in an address translation look-aside buffer |
| US5282274A (en) * | 1990-05-24 | 1994-01-25 | International Business Machines Corporation | Translation of multiple virtual pages upon a TLB miss |
| US5491806A (en) * | 1990-06-26 | 1996-02-13 | Lsi Logic Corporation | Optimized translation lookaside buffer slice having stored mask bits |
| US5222222A (en) * | 1990-12-18 | 1993-06-22 | Sun Microsystems, Inc. | Apparatus and method for a space saving translation lookaside buffer for content addressable memory |
| US5627987A (en) * | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
| US5428757A (en) * | 1992-04-29 | 1995-06-27 | International Business Machines Corporation | Method for reducing translation look aside buffer purges in a multitasking system |
| WO1996027832A1 (en) * | 1995-03-03 | 1996-09-12 | Hal Computer Systems, Inc. | Parallel access micro-tlb to speed up address translation |
| US5764944A (en) * | 1995-09-08 | 1998-06-09 | United Microelectronics Corp. | Method and apparatus for TLB invalidation mechanism for protective page fault |
| US5802568A (en) * | 1996-06-06 | 1998-09-01 | Sun Microsystems, Inc. | Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers |
-
1995
- 1995-05-11 US US08/737,140 patent/US6260130B1/en not_active Expired - Fee Related
- 1995-05-11 WO PCT/EP1995/001780 patent/WO1995031783A1/de not_active Ceased
- 1995-05-11 DE DE19516949A patent/DE19516949A1/de not_active Withdrawn
- 1995-05-11 JP JP7529345A patent/JPH10500235A/ja active Pending
- 1995-05-11 EP EP95919439A patent/EP0760134A1/de not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| DE19516949A1 (de) | 1996-02-15 |
| US6260130B1 (en) | 2001-07-10 |
| WO1995031783A1 (de) | 1995-11-23 |
| EP0760134A1 (de) | 1997-03-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102710341B1 (ko) | 캐시 라인 상태 | |
| US5003459A (en) | Cache memory system | |
| US5802568A (en) | Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers | |
| US5226133A (en) | Two-level translation look-aside buffer using partial addresses for enhanced speed | |
| US6532528B1 (en) | Data processor and data processor system having multiple modes of address indexing and operation | |
| US7426626B2 (en) | TLB lock indicator | |
| US6453385B1 (en) | Cache system | |
| JP2833062B2 (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
| US4825412A (en) | Lockout registers | |
| US5146603A (en) | Copy-back cache system having a plurality of context tags and setting all the context tags to a predetermined value for flushing operation thereof | |
| US6145064A (en) | Method of efficiently updating hashed page tables | |
| CN107066396A (zh) | 用于操作虚拟索引的物理标记的缓存的装置及方法 | |
| TW201903612A (zh) | 記憶體模組及操作記憶體模組的方法 | |
| JPH07295886A (ja) | 階層メモリ、階層メモリを有するコンピュータ・システムおよび階層メモリ管理方法 | |
| JP2968509B2 (ja) | コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法 | |
| US7822924B2 (en) | Processing of self-modifying code in multi-address-space and multi-processor systems | |
| US5675763A (en) | Cache memory system and method for selectively removing stale aliased entries | |
| KR20160130707A (ko) | 캐시의 콘텐츠 트랙킹 | |
| GB2255211A (en) | Lru pointer in a two-way set associative cache. | |
| JPH10500235A (ja) | データ記憶装置 | |
| US5471602A (en) | System and method of scoreboarding individual cache line segments | |
| JP4812876B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
| US5999721A (en) | Method and system for the determination of performance characteristics of a cache design by simulating cache operations utilizing a cache output trace | |
| JPH05216766A (ja) | データ・キャッシュとセグメント記述子の間のキャッシュの可干渉性を維持する方法およびコンピュータのメモリ装置 | |
| JPH06187239A (ja) | 多階層キャッシュメモリにおけるデータ一致制御方式 |