JPS6324337A - Cache memory managing system - Google Patents
Cache memory managing systemInfo
- Publication number
- JPS6324337A JPS6324337A JP62163828A JP16382887A JPS6324337A JP S6324337 A JPS6324337 A JP S6324337A JP 62163828 A JP62163828 A JP 62163828A JP 16382887 A JP16382887 A JP 16382887A JP S6324337 A JPS6324337 A JP S6324337A
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- tlb
- cache
- memory
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 claims description 15
- 238000013519 translation Methods 0.000 claims description 14
- 238000007726 management method Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims 1
- 238000010926 purge Methods 0.000 abstract description 7
- 101001072191 Homo sapiens Protein disulfide-isomerase A2 Proteins 0.000 abstract description 5
- 101001098828 Homo sapiens Protein disulfide-isomerase A5 Proteins 0.000 abstract description 5
- 102100036351 Protein disulfide-isomerase A2 Human genes 0.000 abstract description 5
- 238000006243 chemical reaction Methods 0.000 abstract description 5
- 238000013507 mapping Methods 0.000 description 12
- 230000014616 translation Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は仮想アドレスを用いるコンピュータ・システム
釦おいて、キャッシュ−メモリへのアクセス時間を改良
するキャッシュ・メモリ管理方式〔従来技術およびその
問題点〕
たいていの現代のコンピュータ・システムは中央処理装
置(CPU)と主メモリを含む。CPUが命令をデコー
ドし実行してデータを処理できるスピードは、このとこ
ろ長いこと、命令およびオペランドを主メモリからCP
Uへ転送できるスピードを越えていた。この不一致によ
って生じる問題を解決させようとして、多くのコンピュ
ータはCPUと主メモリの間にキャッシュ・メモリつま
りバッファを投げている。DETAILED DESCRIPTION OF THE INVENTION [Technical Field of the Invention] The present invention provides a cache memory management method for improving access time to cache memory in computer system buttons using virtual addresses [Prior art and problems thereof] Most modern computer systems include a central processing unit (CPU) and main memory. The speed at which a CPU can decode and execute instructions and process data has long been such that instructions and operands can be transferred from main memory to the CPU.
It was faster than it could be transferred to U. In an attempt to solve the problems caused by this mismatch, many computers throw a cache memory, or buffer, between the CPU and main memory.
キャッシュ・メモリは小型の高速バッファメモリで、C
PUによって近い将来用いられると思われる、主メモリ
の内容の部分を一時的に保持することに用いるものであ
る。キャッシュ・メモリの主目的は、データや命令のフ
ェッチのためのメモリ・アクセスを実行するのに必要な
時間を短縮することである。キャッシュ・メモリに置か
れた情報は主メモリに置かれたものよりずっと少ない時
間でアクセスできる。したがって、キャッシュ・メモリ
をもったCPUば、命令およびオペランドがフェッチさ
れたり、記憶されたりするのを待つのにかなり短かい時
間しか消費する必安がない。Cache memory is a small, high-speed buffer memory that uses C
It is used to temporarily hold a portion of the main memory contents that are expected to be used by the PU in the near future. The primary purpose of cache memory is to reduce the time required to perform memory accesses for fetching data or instructions. Information placed in cache memory can be accessed in much less time than information placed in main memory. Therefore, a CPU with cache memory need not spend much less time waiting for instructions and operands to be fetched or stored.
たとえば、典型的な大規模なコンビエータでは、主メモ
リは300〜600ナノ秒でアクセスできるが、他方、
キャッシュ・メモリからは情報は50〜100ナノ秒で
得ることができる。このよっな機絨では、キャッシュ・
メモリは実行速度をかなり向上させる。For example, in a typical large combinator, main memory can be accessed in 300-600 nanoseconds;
Information can be obtained from cache memory in 50-100 nanoseconds. In this yokka kimono, cash and
Memory significantly increases execution speed.
キャッシュ・メモリは1つまたはそれ以上のデータ語か
らなる多くのブロックから構成され、各ブロックにはそ
のブロックが主メモリのどのブロックのコピーであるか
を一義的に決定するアドレス・タグが関連付けられてい
る。プロセッサがメモリ参照をなす毎に、キャッシュ・
メモリは自分が要求されているデータのコピーを有する
かどうかを調べる。コピーが有る場合はキャッシュ・メ
モリがデータを供給し、有しない場合は主メモリからデ
ータを検索してキャッシュ・メモリ内に格納されたデー
タ・ブロックの1つを置換え、そのデータをプロセッサ
に供給する。Cache memory consists of a number of blocks of one or more data words, each block having an associated address tag that uniquely determines which block of main memory it is a copy of. ing. Each time the processor makes a memory reference, the cache
Memory checks to see if it has a copy of the requested data. If a copy is available, the cache memory supplies the data; otherwise, it retrieves the data from main memory, replaces one of the blocks of data stored in the cache memory, and supplies the data to the processor. .
キャッシュ・メモリの性能を向上させることができるひ
とつのやυ方は、主メモリの更新や多キャ7シュ整合性
(multicache consistency )
を維持するだめのオーバーヘッドを最小にすることであ
る。One way that cache memory performance can be improved is through main memory updates and multicache consistency.
The goal is to minimize the overhead of maintaining the
情報は通常、キャッシュから検索して、キ≠≠#“ヒツ
ト”かどうかを連想的に判別する。しかし、大容量の連
想メモリは非常に高価でかつやや低速である。初期のキ
ャッシュ・メモリでは、CPtJからの要求がある毎に
全ての要素が連想的に探索された。CPUに遅れないで
ついていくために必要なアクセス時間を与えるために、
キャッシュ・メモリの大きさは限定され、これによって
ヒツト率もやや低かりた。Information is typically retrieved from a cache and associatively determined whether key≠≠#“hit”. However, large-capacity associative memories are very expensive and rather slow. In early cache memories, all elements were searched associatively on each request from the CPtJ. To give it the access time it needs to keep up with the CPU,
The cache memory size was limited, which resulted in a somewhat low hit rate.
キャッシュ・メモリはまた、各々がセット・サイズと呼
ばれるある個数のロケーションを含むセットと呼ぶ小さ
な連想メモリの複数のグループに編成することかできる
。L個のセットに分割されたサイズmのキャッシュ・メ
モリでは、各セットに、s=m/L 個のロケーショ
ンが存在する。主メモリ内のアドレスがキャックユ・メ
モIJ 内にマツプされると、そのアドレスばL(固の
セットのいずれにも現われることが可能である。所与の
サイズのキャッシュ・メモリに対して、各セットを並列
に探索するとL倍だけアクセス時間を向上させることが
できる。しかし、要求された連想サーチを完了させる時
間はそれでもなお好ましくない程長い。Cache memory can also be organized into groups of small associative memories, called sets, each containing a certain number of locations, called a set size. In a cache memory of size m divided into L sets, there are s=m/L locations in each set. When an address in main memory is mapped into a cache memory IJ, it is possible for that address to appear in any of a fixed set.For a given size of cache memory, each set Searching in parallel can improve access time by a factor of L. However, the time to complete a requested associative search is still undesirably long.
上述のように、キャッシュ・メモリが複数のセットを有
する場合、キャッシュ・ミスが起ったとキハ、キャッシ
ュ・メモリは、情報ブロックのうちのどれをスワップ・
アウトして主メモリから検索されている新ブロックのだ
めの領域を空けるべきかを決定しなげればならない。ど
のブロックがみ
丈ワップ・アウトされるのかを決定するために、それぞ
れのキャッシュ・メモリは各種の方式を用Recent
ly Used)法である。LRU置換方式によれば、
ある特定のインデックスにある各ブロック・グループに
対して、キャッシュは、これらのブロックが最後にアク
セスされた順序をたどるいくつかのビットの状態を維持
する。ブロックの1つがアクセスされる毎に、それは最
も最近に用いられたとマークされ、それに応じて他のブ
ロックが調整される。キャッシュ・ミスが起った場合は
、主メモリから検索されているブロックのための領域を
つくるためにスワップ・アウトされるブロックは最後に
用いられた時点が最も以前であるブロックである。As mentioned above, when a cache memory has multiple sets, when a cache miss occurs, the cache memory determines which of the information blocks to swap.
A decision must be made whether to clear space for the new block being retrieved from main memory. Each cache memory uses various schemes to determine which blocks are swapped out.
ly Used) method. According to the LRU replacement method,
For each group of blocks at a particular index, the cache maintains the state of a number of bits that track the order in which these blocks were last accessed. Each time one of the blocks is accessed, it is marked as most recently used and the other blocks are adjusted accordingly. If a cache miss occurs, the block that is swapped out to make room for the block being retrieved from main memory is the block that was least recently used.
利用される他の置換法は先入れ先出しくFIFO)方式
およびランダム置換方式等である。Other permutation methods that may be used include first-in, first-out (FIFO) methods and random permutation methods.
キャッジ−争メモリ・アーキテクチャは、仮想アドレス
を用いるシステム用のキャッシュ聯メモリをアクセスす
る際に複雑化するが、しかしその際キャッシュ−アクセ
スは2段階プロセスとなる。Cache-contention memory architectures are complicated when accessing cache-combined memory for systems using virtual addresses, but then cache-access is a two-step process.
すなわち、まず要求された仮想アドレスは物理アドレス
に変換され、キャッシュ・メモリがその物理アドレスに
対してサーチなされなければならない。この変換ステッ
プは通常、変換索引バッファ(TLI:! )によって
なされる。TLBはそれ自身、最近用いられた仮想アド
レス/物理アドレス変換を記憶する特別の型式のキャノ
ン−である。このキャッシュ・メモリ・アクセス参プロ
セスは2つの直列なステップを含む。その結果、キャッ
シュ・メモリ・アクセス時間がTLBのアクセス時間だ
け長くなってしまう(もっともやり方によってはアクセ
スの多くを並列に行なうことができるのではあるが)。That is, the requested virtual address must first be translated to a physical address and the cache memory must be searched for the physical address. This translation step is typically done by a translation lookaside buffer (TLI:!). The TLB is itself a special type of canon that stores recently used virtual address/physical address translations. This cache memory access process includes two serial steps. As a result, the cache memory access time becomes longer by the TLB access time (though depending on the method, many of the accesses can be performed in parallel).
この問題を解決する1つの方法は、CPUによって与え
られた仮想アドレスの物理オフセット部だけを用いてキ
ャッシュ・メモリをアクセスすることである。物理オフ
セットは仮想メモリ変換によっては変化しないから、変
換遅延が除去されることになる。しかし、このやり方に
は、キャッシュ・メモリのサイズを物理ページのナイズ
×キャッシュ・メモリのセット数に限定する欠点を有し
ている。One way to solve this problem is to access the cache memory using only the physical offset portion of the virtual address given by the CPU. Since the physical offset does not change due to virtual memory translation, translation delays are eliminated. However, this approach has the drawback of limiting the size of the cache memory to the size of the physical page multiplied by the set number of cache memories.
別の方法は仮想アドレスでアドレシングされたキャッシ
ュ・メモリを用いることである。直接仮想アドレス拳キ
ヤノンュeメモリ・アクセスは、変換が必要ないから高
速ではあるが、いくつかの問題が生じる。すなわち、キ
ャッシュ・ミスが起った場合に主メモリへのアクセスを
行なうために、物理アドレスへの変換を扱うのにTLB
がなお必要である。また、キャッシュ・メモリ内に記憶
されたデータに関連付けられたタグとして、物理タグに
加えて仮想タグも必要となるが故に長くなる。Another method is to use a virtual addressed cache memory. Although direct virtual address memory access is faster because no translation is required, it does introduce some problems. That is, the TLB is used to handle the translation to physical addresses in order to access main memory in the event of a cache miss.
is still necessary. Furthermore, the length is increased because virtual tags are required in addition to physical tags as tags associated with data stored in the cache memory.
したがって、より多くのメモリ−ハードウェアが必要と
なシ、キャッシュ・メモリはより高価になる。Therefore, more memory hardware is required and cache memory is more expensive.
仮に、物理タグが仮想アドレスでアクセスされるキャッ
シュ・メモリ内に記憶されていないとすれば、たとえば
、2つまたはそれ以上の仮想アドレスが同じ物理アドレ
スにマクピングされ、そのためコードまたはデータを共
有するとき、しばしば反転マツピング(つまり物理アド
レスから仮想アドレスへの変換)が必要になる。もしあ
る仮想アドレスでキャッシュ・ミスが起った場合は、そ
のアドレスを物理アドレスに変換して主メモリをアクセ
スしなければならない。その際、この物理アドレスは反
転マツピングされ、キャッシュ・メモリ内にこの物理ア
ドレスに関連した他の仮想アドレスがあるか指摘するの
に用いられる。このようなアドレスがキャッシュ・メモ
リ内に存在する場合は、その名前を変更して、新しい仮
想アドレス・ロケーションに移動しなければならない。For example, if two or more virtual addresses are mapped to the same physical address and therefore share code or data, if the physical tag is not stored in cache memory that is accessed by virtual address, , often requires inverse mapping (i.e., converting physical addresses to virtual addresses). If a cache miss occurs at a virtual address, that address must be translated into a physical address to access main memory. This physical address is then reverse mapped and used to indicate whether there are other virtual addresses associated with this physical address in the cache memory. If such an address exists in cache memory, it must be renamed and moved to a new virtual address location.
こうして、仮想アドレスでアドレシングされるキャッシ
ュ・メモリは通常、付加的なハードウェアと費用が必要
となる。Thus, virtual addressed cache memory typically requires additional hardware and expense.
同様の問題は、プロセスが終了したとき、そのプロセス
に関連していた物理アドレスを再使用する必要から生じ
る。仮想アドレスから物理アドレスへのマツピングが変
更される毎に、従来技術によれば、旧マツピングに対応
した全てのキャッシュ・セットからいらなくなったデー
タをパージするためのステップがとられる。A similar problem arises from the need to reuse the physical addresses that were associated with a process when the process terminates. Each time a virtual address to physical address mapping is changed, according to the prior art steps are taken to purge obsolete data from all cache sets corresponding to the old mapping.
本発明は、TLBにおける物理アドレス−仮想アドレス
・マツピングの変化に際して、キャッシュ・アクセス時
間の増加を伴なうことになる、キャッシュ・メモリから
の失効データのパージ動作を避けることができるキャッ
シュ・メモリ管理方式を提供することを目的とする。The present invention provides cache memory management that can avoid purging of stale data from the cache memory, which would be accompanied by an increase in cache access time, upon changes in the physical address-virtual address mapping in the TLB. The purpose is to provide a method.
本発明の一実施例によれば、仮想/物理アドレス・マツ
ピング情報の一部として、ページ世代番号が与えられる
。命令あるいけデータのいずれに関しても、キャッシュ
・ラインがキャッシュ・メモリにロードされる毎に、イ
ンクリメントされたページ世代番号がそのキャッシュ・
ラインに対するタグ内に入れられる。キャッシュ・メモ
リ内のデータに対する全てのアクセスに対して、TLB
内のページ世代番号が選択されたキャッシュ・ラインに
対応したページ世代番号と一致するか否か確認される。According to one embodiment of the invention, a page generation number is provided as part of the virtual/physical address mapping information. Each time a cache line is loaded into cache memory, whether for instructions or data, an incremented page generation number is added to that cache line.
Placed within the tag for the line. For all accesses to data in cache memory, the TLB
It is checked whether the page generation number within matches the page generation number corresponding to the selected cache line.
両者が一致しない場合は、失効データを含むキャッシュ
−ラインはキャッシュ−メモリからパージされ、正しい
データブロフク(これはインクリメントされたページ世
代番号を含む)が主メモリから取出され、キャッシュ・
メモリ内に置かれる。If they do not match, the cache line containing the stale data is purged from cache memory, and the correct data block (which contains an incremented page generation number) is retrieved from main memory and stored in the cache.
placed in memory.
第1図に見られるように、コンピュータ・システムは、
バス17を介して主メモリ13および入力/出力チャン
ネル(Ilo)15と連絡するCPUIIを含む。CP
UIIは命令をフェッチし、デコードし、実行してデー
タを処理するプロセッサ19を含む。コンピュータ・シ
ステムによって用いられる命令およびデータを全てCP
UII内に記憶することは実際的でないから、それらの
データ、および命令は主メモリ13に記憶し、それらが
プログラムまたはルーチンの実行中に要求されるときプ
ロセッサ19に転送し、そのプログラムまたはルーチン
が完了した後に、主メモリ13に戻される。As seen in Figure 1, the computer system:
It includes a CPU II that communicates with main memory 13 and input/output channel (Ilo) 15 via bus 17 . C.P.
The UII includes a processor 19 that fetches, decodes, and executes instructions to process data. All instructions and data used by a computer system are stored in a CP
Since it is impractical to store them in the UII, those data and instructions are stored in main memory 13 and transferred to processor 19 when they are required during the execution of a program or routine. After completion, it is returned to main memory 13.
主メモリ13へのアクセスはプロセッサ19の動作に比
べると比較的低速である。命令またはデータが必要とさ
れた毎にプロセy”j 19が主メモリ・アクセスの完
了を待たなければならないとすれば、その実行速度は大
きく減少してしまうことになるだろう。プロセッサ19
の必要とするものに、より密接に適合するアクセス時間
を得るために、バッファ・メモリつまりキャッンユ・メ
モリ21は限定された数の命令およびデー〉を記憶する
。Access to main memory 13 is relatively slow compared to the operation of processor 19. If processor y"j 19 had to wait for main memory access to complete each time an instruction or data was needed, its execution speed would be greatly reduced. Processor 19
In order to obtain access times that more closely match the needs of the computer, the buffer memory 21 stores a limited number of instructions and data.
キ’rノシュ・メモリ21は主メモリ13よりずっと小
さいから、より速いアクセス速度をもつように、経済的
に作り上げることができる。それにもかかわらず、キャ
ッシュ・メモリに対するアクセス時間とキャッシュ・メ
モリのサイズの間にはなおトレードオフが存在する。上
述したように、キャッシュ・メモリが大きくなれにつれ
て、キャッシュ・メモリはより高価になシまたこれへの
アクセス時間は増大する。したがって、キャッシュ・メ
モリ21がヒツト率を上げるために非常に大きくされた
場合、主メモリ13への参照が非常に少なくなるのだけ
れども、プロセッサのスピードは、キャッシュ・メモリ
によくヒツトするようになってもメモリ・アクセス時間
が増加することにより低下することがある。したがって
、キャッシュ・メモリへのアクセス時間をできるだけ減
少させるのが望ましい。Because key memory 21 is much smaller than main memory 13, it can be economically constructed to have faster access speeds. Nevertheless, there is still a trade-off between access time to cache memory and cache memory size. As mentioned above, as cache memory becomes larger, it becomes more expensive and the time to access it increases. Therefore, if the cache memory 21 is made very large to increase the hit rate, there will be very few references to the main memory 13, but the speed of the processor will increase as the cache memory gets hit more often. However, memory access time may decrease due to increased memory access time. Therefore, it is desirable to reduce access time to cache memory as much as possible.
第1図に示されたコンピュータ・システムは仮想アドレ
スを用いて主メモリ13にアクセスする変換器(図示せ
ず)はその仮想アドレスを、要求された命令またはデー
タを検索するに必要な物理アドレスに変換する。変換を
実現するために変換器に必要な情報は、主メモリ13に
配置されたページ・ディレクトリPDIRに記憶される
。高速小型メモリであるTLB23は、PDIRによっ
て与えられた、限定された数の最近用いられた仮想アド
レス、/物理アドレス変換情報を記憶する。The computer system shown in FIG. 1 uses virtual addresses to access main memory 13. A translator (not shown) converts the virtual addresses into the physical addresses needed to retrieve the requested instruction or data. Convert. The information required by the converter to implement the conversion is stored in a page directory PDIR located in the main memory 13. The TLB 23, a high speed small memory, stores a limited number of recently used virtual address/physical address translation information given by the PDIR.
TLB23は、それが記憶しているアドレス・マツピン
グに対応する変換ステップについてはメモリ・アクセス
の都度−々実行する必要をなくすことによって、主メモ
リ13に対するアクセス時間を減少できる。TLB23
には要求された仮想アドレスが含まれていない場合、変
換器が呼出さベアドレス対をTLBに戻す。TLBは将
来の使用のため現存するあるTLBエントリをこれに置
換する。TLB 23 can reduce access times to main memory 13 by eliminating the need to perform translation steps corresponding to the address mappings it stores on every memory access. TLB23
does not contain the requested virtual address, the translator returns the called bare address pair to the TLB. The TLB replaces an existing TLB entry for future use.
本発明の方式をよシ完全に理解するためには、キャッシ
ュ・メモリ21およびTLB23の構造および編成の理
解が必要である。TLB23の構造は第2図に示される
。キャッシュ・メモリ21の構造は第3図に示される。An understanding of the structure and organization of cache memory 21 and TLB 23 is necessary to fully understand the scheme of the present invention. The structure of TLB 23 is shown in FIG. The structure of cache memory 21 is shown in FIG.
第2図にみられるように、TLB23は仮想アドレス/
物理アドレス対を保持するロケーションのアレイを含む
。各ロケーションはインデクス30でラベル付けされて
いる。このインデクス3oは仮想アドレスから導き出す
ことができる。仮想アドレス・エントリ32は、プロセ
ラ+j19によって用いられる仮想アドレスの仮想ペー
ジ番号である。物理アドレス・エントリ34は、主メモ
リ(3内のアドレスの物理ページ・ロケーションすなわ
ち、仮想ページ番号を変換したものを表わす。完全な物
理アドレスは、物理ページ番号および物理オフセントか
ら成る。物理オフセントは仮想アドレスの下位部分から
直接数られる。As shown in FIG. 2, TLB23 has virtual address/
Contains an array of locations holding physical address pairs. Each location is labeled with an index 30. This index 3o can be derived from the virtual address. Virtual address entry 32 is the virtual page number of the virtual address used by processor+j19. A physical address entry 34 represents the physical page location of an address in main memory (34, translated from a virtual page number. A complete physical address consists of a physical page number and a physical offset. The physical offset is a virtual Counted directly from the lower part of the address.
第3図に示されるように、キャッシュ・メモリ21は主
メモリ13からのデータを保持できるロケーションのア
レイを含む。各ロケーションは、TLB23のインデク
ス30と同様のインデクス31でラベル付けされ、物理
アドレス33およびデータ35を含む。物理アドレス3
3は、データ35が主メモリ13に記憶されている物理
ページ番号に対応する。As shown in FIG. 3, cache memory 21 includes an array of locations that can hold data from main memory 13. Each location is labeled with an index 31 similar to index 30 of TLB 23 and includes a physical address 33 and data 35. physical address 3
3 corresponds to the physical page number in which the data 35 is stored in the main memory 13.
本発明によれば、変換器によって発生され、TLB23
に与えられた各仮想アドレス/物理アドレス・マツピン
グ情報は更にTLBページ世代番号(Page gen
eration number、 PGN)を入れる
フィールド36を含む。各キャッジ!’エントリもTL
B PGNフィールド36を含む。各キャッシュ・エ
ントリはキャッシュPGNフィールド37を含む。仮想
アドレス/物理アドレス・マツピングを変更する、すな
わち、現存する仮想アドレス、/物理アドレス変換対の
仮想アドレスを変更する必要がある毎に、そのマツピン
グはPIOR内で変更され、新しい変換対のPGNはP
DIR内で増加され、TLBから旧変換がパージされる
。According to the invention, the TLB23
Each virtual address/physical address mapping information given to the TLB page generation number (Page gen
generation number, PGN). Each catch! 'Entry is also TL
B PGN field 36 is included. Each cache entry includes a cache PGN field 37. Every time it is necessary to change the virtual address/physical address mapping, i.e. to change the virtual address of an existing virtual address/physical address translation pair, the mapping is changed in the PIOR and the PGN of the new translation pair is P
incremented in the DIR and purges old translations from the TLB.
「パージ」という用語は、主メモリの更新なしにこの時
点で、旧い変換時に対応している失効(stale)デ
ータはなおキャッシュ・メモリ内に存在していいかもし
れない。しかし、従来行なわれていたように(これはオ
ーバヘッド時間を必要とする)キャッシュ・メモリをパ
ージするのではなく、失効データがキャッシュ・メモリ
内に留まることを許しておく。The term "purge" means that at this point, stale data corresponding to the old conversion may still exist in the cache memory without updating the main memory. However, rather than purging the cache memory as is conventionally done (which requires overhead time), the stale data is allowed to remain in the cache memory.
プロセッサが次に新しい仮想アドレス/物理アドレス・
マツピングに対して仮想アドレスを与えたとき、TLB
23、キャッシュ210両者はこの仮想アドレスとそれ
ぞれ対応付けられたTLBおよびキャッシュ・メモリ・
データ・ブロック内の仮想アドレス/物理アドレス・マ
ツピングを識別するためにアクセスされる。しかし、旧
変換対ViTLB23からパージされているから、TL
Bミスが起る。そこで新変換対が、そのインクリメント
されたPGNとともに、変換器によってPDIRから検
索され、4LLB23に与えられる。The processor then uses the new virtual address/physical address.
When a virtual address is given for mapping, TLB
23 and the cache 210 both store the TLB and cache memory associated with this virtual address.
Accessed to identify virtual address/physical address mapping within a data block. However, since it has been purged from the old conversion pair ViTLB23, TL
B Mistakes occur. The new transform pair, along with its incremented PGN, is then retrieved from the PDIR by the transformer and provided to the 4LLB23.
第4図に示すように、本発明によれば、キャッジ−・ヒ
ツトかどうか調べるため、通常の物理アドレス比較に加
えて、新たに検索されたTLBエントリとキャッジ−・
ライン中のPGNも比較される。この仮想アドレスに関
連したキャッシュ・ラインはインクリメントされていた
いPGNを含むから、キャッシュ・ミスが生じる。これ
によって、失効キャッジ−・ラインのパージおよび主メ
モリからの新データ・ブロックの検索が生じる。As shown in FIG. 4, according to the present invention, in order to check whether there is a cache hit, in addition to the normal physical address comparison, the newly searched TLB entry and the cache hit are compared.
The PGNs in the lines are also compared. A cache miss occurs because the cache line associated with this virtual address contains a PGN that should have been incremented. This results in the purging of stale cache lines and the retrieval of new data blocks from main memory.
インクリメントされたPGNおよび新キャッシュ・ブロ
ックに対する物理アドレス・フィールドがTLBによっ
てキャッシュ・メモリに与えられ、この仮想アドレスに
関連したTLBエントリおよびキャンシー・ラインの両
者を対応させる。The incremented PGN and the physical address field for the new cache block are provided to the cache memory by the TLB, making both the TLB entry and the cache line associated with this virtual address correspond.
ページ世代番号の一義性を維持するために、仮想アドレ
スと関連したキャッシュおよびTLBエントリは、1つ
のエントリに対するページ世代番号の値がラップした(
循環する)ときはいつでもフラッジ−させなければなら
ない。「フラッジ−」という用語はキャッシュ・メモリ
内のエントリの無効化を意味する。エン) IJが汚れ
て℃・れば(つまり書込みが行なわれていれば)、それ
は主メモリに書き戻される。これが起るのはマツピング
の変化よりずっと少なく、システム・オーバヘッドが低
くなる。To maintain unambiguousness of page generation numbers, cache and TLB entries associated with virtual addresses are wrapped around page generation number values for one entry (
must be flooded whenever it is cycled). The term "flagging" refers to the invalidation of an entry in cache memory. If the IJ becomes dirty (that is, if a write has been performed), it is written back to the main memory. This occurs much less often than mapping changes, resulting in lower system overhead.
以上説明したように、本発明によればページ世代番号を
導入することにより、キャッシュ・メモリ管理上のオー
バーヘッドを低減することができる。As described above, according to the present invention, overhead in cache memory management can be reduced by introducing page generation numbers.
第1図は本発明が適用されるコンピュータ・システムの
ブロック図、第2図は本発明の一実施例で用いられるキ
ャッシュ・メモリの構成を説明する図、第3図は本発明
の一実施例で用いられるTLBの構成を説明する図、第
4図は本発明の一実施例におけるページ世代番号のチェ
ククを説明する図である。
エエ:CPU。
13:主メモリ、
19:プロセンサ、
21:キャソシュ拳メモリ
23:TLB
30.31:インデクス、
32:仮想アドレス・エントリ、
33:物理アドレス、
34:物理アドレス・エントリ、
35:データ、
36 : TLB PGNフィールド、37:キヤツ
シユPGNフィールド。Fig. 1 is a block diagram of a computer system to which the present invention is applied, Fig. 2 is a diagram illustrating the configuration of a cache memory used in an embodiment of the present invention, and Fig. 3 is an embodiment of the present invention. FIG. 4 is a diagram illustrating the configuration of a TLB used in this embodiment, and FIG. 4 is a diagram illustrating checking of page generation numbers in an embodiment of the present invention. E: CPU. 13: Main memory, 19: Prosensor, 21: Cassosh fist memory 23: TLB 30. 31: Index, 32: Virtual address entry, 33: Physical address, 34: Physical address entry, 35: Data, 36: TLB PGN Field, 37: Cash PGN field.
Claims (1)
リ管理方式において、 仮想アドレス/物理アドレス変換対情報に当該変換対情
報の更新に応答して更新される世代番号を付加し、 前記世代番号はTLBおよびキャッシュ・メモリに与え
られ、 前記キャッシュ・メモリへのアクセス時にはキャッシュ
・メモリから読出された世代番号と前記TLBから読出
された世代番号の一致を確認することを特徴とするキャ
ッシュ・メモリ管理方式。[Claims] In a cache memory management method of a system using a virtual address method, a generation number that is updated in response to an update of the translation pair information is added to the virtual address/physical address translation pair information, A generation number is given to a TLB and a cache memory, and when accessing the cache memory, a match between a generation number read from the cache memory and a generation number read from the TLB is confirmed. Memory management method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US88085286A | 1986-07-01 | 1986-07-01 | |
US880852 | 1997-06-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6324337A true JPS6324337A (en) | 1988-02-01 |
Family
ID=25377263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62163828A Pending JPS6324337A (en) | 1986-07-01 | 1987-06-30 | Cache memory managing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6324337A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287124B2 (en) | 2003-11-26 | 2007-10-23 | Microsoft Corporation | Lazy flushing of translation lookaside buffers |
US7788464B2 (en) | 2006-12-22 | 2010-08-31 | Microsoft Corporation | Scalability of virtual TLBs for multi-processor virtual machines |
-
1987
- 1987-06-30 JP JP62163828A patent/JPS6324337A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287124B2 (en) | 2003-11-26 | 2007-10-23 | Microsoft Corporation | Lazy flushing of translation lookaside buffers |
US7788464B2 (en) | 2006-12-22 | 2010-08-31 | Microsoft Corporation | Scalability of virtual TLBs for multi-processor virtual machines |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960001946B1 (en) | Translation lookaside buffer | |
US5787494A (en) | Software assisted hardware TLB miss handler | |
US5724538A (en) | Computer memory address control apparatus utilizing hashed address tags in page tables which are compared to a combined address tag and index which are longer than the basic data width of the associated computer | |
US5123101A (en) | Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss | |
US6145064A (en) | Method of efficiently updating hashed page tables | |
EP0674267B1 (en) | Sub-line cache coherent write transactions | |
US5230045A (en) | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus | |
EP0215544B1 (en) | Virtual memory address fetching | |
JP3666689B2 (en) | Virtual address translation method | |
US5060137A (en) | Explicit instructions for control of translation lookaside buffers | |
JP2603476B2 (en) | Data retrieval method | |
JPH04232551A (en) | Method and apparatus for converting multiple virtaul addresses | |
JPH03194632A (en) | Cache access on the basis of translation look ahead | |
JP2013065325A (en) | Address translation method and apparatus | |
KR960001945B1 (en) | Apparatus for increasing the number of hits in a translation | |
US5539892A (en) | Address translation lookaside buffer replacement apparatus and method with user override | |
US5737575A (en) | Interleaved key memory with multi-page key cache | |
US5479629A (en) | Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address | |
US6990551B2 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
US4757447A (en) | Virtual memory system having identity marking for common address space | |
EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
EP0212129B1 (en) | Method of updating information in a translation lookaside buffer | |
US6574698B1 (en) | Method and system for accessing a cache memory within a data processing system | |
EP0486154B1 (en) | Method of operating a virtual memory system | |
US5649155A (en) | Cache memory accessed by continuation requests |