JPH09512122A - データ記憶用キャッシュ記憶装置 - Google Patents

データ記憶用キャッシュ記憶装置

Info

Publication number
JPH09512122A
JPH09512122A JP7527339A JP52733995A JPH09512122A JP H09512122 A JPH09512122 A JP H09512122A JP 7527339 A JP7527339 A JP 7527339A JP 52733995 A JP52733995 A JP 52733995A JP H09512122 A JPH09512122 A JP H09512122A
Authority
JP
Japan
Prior art keywords
cache
cache memory
memory device
address
group information
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
Application number
JP7527339A
Other languages
English (en)
Inventor
リードテケ,ジョヘン
Original Assignee
ゲーエムデー−フォルシュングスツェントルム インフォルマチオンシュテクニク ゲーエムベーハー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DE19504483A external-priority patent/DE19504483A1/de
Application filed by ゲーエムデー−フォルシュングスツェントルム インフォルマチオンシュテクニク ゲーエムベーハー filed Critical ゲーエムデー−フォルシュングスツェントルム インフォルマチオンシュテクニク ゲーエムベーハー
Publication of JPH09512122A publication Critical patent/JPH09512122A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page 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)【要約】 メモリ装置はキャッシュ索引及び仮想アドレスのグループ情報によって索引付けされたキャッシュメモリを備える。仮想アドレスから変換された物理アドレスは第1,第2グループ情報を含む。キャッシュメモリを索引付けすることにより標準化された、上述のようにしてアドレスされたキャッシュエントリのタグが物理アドレスに一致する場合、物理アドレスに関連した第2グループ情報を使用して(また仮想アドレスのキャッシュ索引を使用して)再度索引付けが実行される。このようにしてアドレスされたキャッシュエントリのタグがなおも物理アドレスに一致しない場合はキャッシュミスが知らされる。

Description

【発明の詳細な説明】 データ記憶用キャッシュ記憶装置 本発明は、仮想的又は物理的に索引付けされ、物理的にタグ付けされたキャッ シュメモリを備えたキャッシュメモリに関する。 近年のプロセッサは、高速なプロセッサと低速なメインメモリとのギャップを 埋めるためにキャッシュメモリを必要としている。 直接配置されたキャッシュ(図6,7参照)は、物理アドレス又は仮想アドレ スaからキャッシュ索引を計算し、キャッシュの行を選択するためにマップ関数 を使用する。そしてaは、このキャッシュの行と結合している記憶領域のアドレ ス(キャッシュエントリのタグ)と比較される。これらが一致している場合がヒ ットであり(そしてキャッシュの行がメインメモリの代わりに使用され)、そう でない場合がミスである。 ほとんどの場合、(a修正キャッシュサイズ)/行サイズがマップ関数として 使用される。この場合、完全な仮想アドレスがキャッシュに記憶される必要はな く、a/キャッシュサイズは十分である。 直接配置されたキャッシュは、n方向結合キャッシュより単純であるがミスを 招来する確率が高い。これらのキャッシュは、原則として、さらに小さいn個の 直接配置されたキャッシュブロックからなる。また多くとも1つのブロックに各 メインメモリ素子が配置されるようになしてある。マップ関数はその都度キャッ シュのn行を索引付けするので、キャッシュはマップ相当アドレスを有する素子 を最大でn個含むことができる。このようにn個を結合して組み合わせることは 、衝突の可能性を低減し、これに応じてヒット率を上昇させる。 物理索引キャッシュ及び仮想索引キャッシュは公知である。物理 索引キャッシュ(図6)においては、先ずプロセッサによって与えられた仮想ア ドレスが変換索引緩衝器(TLB)によって物理アドレスに変換される。そして キャッシュはこの物理アドレスを使用してアドレスされる。 仮想索引キャッシュ(図7)の場合は、仮想アドレスを使用してキャッシュが 直接アドレスされる。キャッシュミスの場合にのみ対応する物理アドレスへ変換 される。仮想索引キャッシュは、TLBによる変換ステップが省略されるために より高速であるという利点がある。ただし類語(別名)及び/又はマルチプロセ ッサシステムの場合には不利である。 物理索引キャッシュではこのような欠点はないが、キャッシュアクセスに先立 ちTLBによる完全なアドレス変換ステップ(仮想→物理)を要する。 近年では、仮想索引−実(物理)タグ型キャッシュが好まれている。このタイ プは仮想索引−仮想タグキャッシュと同様高速であるだけでなく、後者の最大の 欠点、特にマルチプロセッサシステム,類語,共有,コヒーレンスの問題を回避 する。 仮想索引−物理タグキャッシュは、TLB及びキャッシュのアクセスの平列実 行を可能とする(図8参照)。従ってプロセッサの命令パイプラインがより短く なるので、通常、命令の遅延が1サイクル分短縮され、これに伴ってプロセッサ の性能が向上する。 キャッシュ索引のために要求される全てのアドレスビット(i)がアドレスオ フセットの範囲内にある(1ページ内にアドレスする)場合、その簡単な機構は 維持される。このアドレス部分は仮想アドレスを物理アドレスへ変換することに より修正されないので、TLBの変換ステップの前でもキャッシュはアドレス( 索引付け)されることができる。キャッシュアクセス及び同時的なTLBの変換 ステ ップの最後においてのみ、キャッシュエントリに関連した物理アドレス(タグ) がTLBによって与えられた物理アドレスと一致するかがチェックされる。(i )で索引付けされたキャッシュエントリは索引ビット(i)を有するアドレスに のみ関連しているので、このチェックのためには索引部(i)に隣接するアドレ スの上位ビットのみが比較される必要がある。従って上位ビットのみがタグ(物 理アドレス)としてキャッシュに記憶されなければならない。 このタイプのn方向結合型キャッシュのサイズは最大でn×2Pまで可能であ る。ここで2Pはページサイズである。キャッシュが大きいほど、ページ又は結 合の増大を必要とする。 しかしながら重要な技術はページカラーリングである。これは、仮想ページア ドレス及び物理ページアドレスの下位アドレスビット同士が一致するように物理 メモリのページを作成する方法である(図9参照)。この場合、仮想ページ番号 (vpn)とキャッシュ索引(i)とが重複する。図9ではこの重複部分を黒四 角で示している。仮想アドレスの対応部分を仮想カラーcと称し、物理アドレス の対応部分を物理カラーc′と称する。カラー保持配置、即ち仮想カラーと物理 カラーとが一致している場合、上述したサイズ限界n×2Pは無くなる。 また図10に示す如く、仮想カラーと物理カラーとが比較された場合、タグ( 物理アドレス)を記憶するときにカラービットを省略することができ、物理ペー ジ番号(r′)の上位ビットのみをそのタグと比較する必要がある。 完全に良好でないカラー付けにて配置が行われている場合、キャッシュを動作 させる必要があることはいうまでもない。従って最初のキャッシュアクセスがミ スとなり、TLBによって与えられた物理カラーc′が仮想カラーcと異なる場 合、カラー補正キャッシュ アクセスが必要となる(図11参照)。従って正しくカラー付けされていないペ ージが使用されてそのページのデータがアクセスされるが、常にキャッシュアク セスの追加ステップが必要である(図12参照)。 例えば異なるカラーの2つの仮想ページを同じ物理ページに配置する場合、カ ラー付け不良配置は避けられないことを述べておく必要がある。これは、カラー 補正の繰り返しを必然的に伴い、タイムロス及びキャッシュアクセスの遅延とな る。 本発明の目的は、仮想的及び/又は物理的に索引付けされ、物理的にタグ付け されるキャッシュであって、カラー付け不良でページが配置された場合でもキャ ッシュアクセスの高速化、及び/又は衝突の危険が低減されるキャッシュを作成 することにある。 この目的を達成するために請求項1の特徴を有するメモリ装置を提供し、その 有利な具体例の特徴を各従属請求項にて述べる。 本発明のメモリ装置では、第2グループ情報(“第2カラー”)は、仮想アド レスから変換された各物理アドレスに関連しており、第1グループ情報(上述し た“物理カラー”参照)とは区別される。両情報素子は、ページテーブル、特に MMU(記憶管理部)から得られ、いずれかが使用される場合、変換索引緩衝器 (TLB)に書き込まれる。アドレスされた一又は複数のキャッシュエントリの タグが仮想アドレスから変換された物理アドレスに一致せず、仮想アドレスのグ ループ情報(“仮想カラー”)が変換された物理アドレスに関連した第2グルー プ情報(第2カラー)に一致しない場合、キャッシュ索引部及び第2グループ情 報を使用して再度キャッシュメモリを索引付けすることにより、そしてそのアド レスされた一又は複数のキャッシュエントリの一又は複数のタグを仮想アドレス から変換された物理アドレスと比較することにより、カラー補正が実 行される。 本発明のメモリ装置では仮想アドレスを使用したキャッシュアクセスは以下の ようにして試みられる。即ち、 a)先ず、いずれも仮想アドレスの一部であるか、又は仮想アドレス又はその 一部から与えられたものであるキャッシュ索引とグループ情報とを使用してキャ ッシュメモリを索引付けすることにより、多くのキャッシュエントリがキャッシ ュメモリの結合に対応してアドレスされる。 続いて、仮想アドレス、即ちより具体的には仮想ページ番号を表すそのページ 番号アドレス部が、物理アドレス、即ちより具体的には物理ページ番号を表すペ ージ番号物理アドレス部に変換される。このページ番号物理アドレス部は第1グ ループ情報をその一部として含む。変換に際しては関連する第2グループ情報も 提供される。 b)仮想アドレスの変換の結果得られる物理アドレスはアドレスされた各キャ ッシュエントリのタグと比較される。 仮想アドレスの物理アドレスへの変換は、通常、索引付けのために使用された 仮想アドレスの一部をアドレスされたTLBエントリのタグと比較するために、 −ハッシュ関数により修正することも考えられる−仮想アドレスの一部によって 索引付けされた変換索引緩衝器(TLB)を用いて実施される。これらが一致す る場合、物理アドレス及び第1,第2グループ情報がTLBエントリから読み出 される。これらが異なる場合、TLBミスであり、例えばページテーブルを使用 するMMUによって仮想アドレスが物理アドレスへ変換される(図1)。 c)変換された物理アドレスと、アドレスされたキャッシュエントリのタグ又 はアドレスされた複数のキャッシュエントリのタグのうちの1つとが一致する場 合、キャッシュヒットであり、各キャッ シュエントリのデータ領域からの読み出し又はそのデータ領域への書き込みが、 ここでは詳述しないが公知の状態情報及びアクセス制御変数に基づいて行われる 。 d)そうでない場合は、仮想アドレスのキャッシュ索引及び第2グループ情報 を用いて再度キャッシュメモリが索引付けされる。仮想グループ情報が、物理ア ドレスに関連した第2グループ情報に一致しない場合にのみキャッシュメモリの 新たな索引付けを実施することは適当である。このようにしてアドレスされた一 又は複数のキャッシュエントリに関してはステップb),c)が繰り返される( 図4)。 e)新たな索引付け処理の後、依然として物理アドレスと、アドレスされたキ ャッシュエントリのタグ又はアドレスされた複数のキャッシュエントリのタグの うちの1つとが一致しない場合、キャッシュミスが示され、アクセスは打ち切ら れる。 本発明は、大容量キャッシュメモリを備えたメインメモリのさらなる利用を、 キャッシュアクセス時間を増大させることなく実現する。これは良好なカラー付 け処理のみならず、カラー付け不良の配置である他の処理もまた(第2グループ 情報を用いて)効率良く実施されるからである。本発明のメモリ装置における第 2グループ情報は、無作為の情報であるが、キャッシュメモリの索引付けに先立 って限定される。特にこの情報は、ページテーブルからの第2グループ情報を受 け取る又は与えるTLB及び/又はMMUによって提供される。 キャッシュ索引部にてアドレスされた一又は複数のキャッシュエントリのタグ とグループ情報とが一致しない場合、上述したアクセスの変形に基づいて(請求 項4参照)、第2グループ情報と仮想アドレスのキャッシュ索引部とを使用して キャッシュメモリを索引付 けすることによるアクセスが、第2グループ情報が前記グループ情報と異なると きのみ試みられる。その他の場合はキャッシュアクセスは打ち切られ、キャッシ ュミスが信号で示される。第2グループ情報と前記グループ情報との比較が要求 された場合は、1つのグループ情報比較が提供される。 本発明の他の具体例では、キャッシュミスとなったアクセスの後、キャッシュ メモリは、第1グループ情報(及びキャッシュ索引部)を用いて新たに索引付け される。この索引付けは、仮想アドレスのグループ情報を用いた最初の索引付け の後に直接実行されても、第2情報を用いた索引付けの後に実行されてもいずれ でもよい。 好ましくは、(キャッシュヒットとならなかった)グループ情報を用いた最初 の索引付けの後、及び第1又は第2グループ情報を用いた新たな索引付けに先立 って、第2グループ情報が前記グループ情報と異なるか否か、又は前記グループ 情報と一致しているか否かがチェックされる。第2グループ情報が前記グループ 情報と異なる場合、最初の新たな索引付け(第2索引付け)が第2グループ情報 を用いて実施される。この第2索引付けが再度キャッシュヒットとならなかった 場合は、その後第1グループ情報を用いて第3索引付けが試みられる(正常な場 合)。しかしながら第2グループ情報と前記グループ情報とは一致しているが、 第1グループ情報が第2グループ情報と異なる場合は、実際に以前、最初の索引 付けで試みられ、不成功であった(グループ情報と第2グループ情報とが一致し ている)第2グループ情報を使用した索引付け処理が省略され、キャッシュメモ リの新たな索引付け処理(上述した例では第3索引付けと称される)が、第1グ ループ情報を使用して実行される(特異な場合)。上述した2つの事例では、第 1グループ情報を使用した第3索引付けは、第1グループ情報が前記グループ情 報及び第2グ ループ情報の両方と異なる場合にのみ実施されることが好ましい。 一方、キャッシュヒットとならなかった場合に第2グループ情報を用いて第3 索引付けを試みるために、第2索引付けは第1グループ情報を使用して常に試み られる。最初の新たな索引付けを行う場合、特にランダムチェックジェネレータ による制御下においては、2つの手順のうち1つを選択することも可能である。 即ち、第2グループ情報を使用した第2索引付け及び第1グループ情報を使用し た第3索引付けか、又は第1グループ情報を使用した第2索引付け及び第2グル ープ情報を使用した第3索引付けかのいずれかである。ランダムチェックジェネ レータの代わりに、又はこれに加えて、上述した2つの手順を以前のヒット(キ ャッシュヒット)又はミス(キャッシュミス)を考慮して選択してもよい。 キャッシュメモリの領域のさらなる利用を目的として、本発明の他の具体例で は、キャッシュメモリが(物理又は仮想)アドレスのキャッシュ索引部及び追加 索引の組み合わせによって索引付けされる。ここで追加索引はそのアドレスの一 部ではないがそのアドレスに関連している。相応じて追加索引を選択することで キャッシュメモリの索引付けを意図的に左右することができ、またメモリ領域の 利用の向上のための機会を提供する。追加索引は、例えば、物理アドレス又はキ ャッシュメモリのアクセスのために必要なアドレスの部分をも提供するMMU及 び/又はTLBによって与えられる。 従属請求項12〜15は、本発明に係る上述した種類の第1,第2レベルのキ ャッシュメモリ装置を有するキャッシュメモリアレイの変形に関する。 本発明の具体例を以下に詳述する。各図において、 図1は、キャッシュメモリにおいて使用されるTLBの構造を示す模式図であ り、 図2は、キャッシュメモリの索引付けの準備ステップを示し、 図3は、キャッシュメモリにおける第1アクセスステップを示し、 図4は、キャッシュメモリにおけるカラー補正ステップを示し、 図5は、複数の第2カラーキャッシュメモリを結合するための第2カラーバス を備えた第2カラーキャッシュのブロック図を示し、 図6は、物理索引キャッシュメモリの構造を示し、 図7は、仮想索引−仮想タグキャッシュメモリの構造を示し、 図8は、仮想索引−物理タグキャッシュメモリの構造を示し、 図9は、良好なカラー付け配置に基づいたキャッシュメモリの構造を示し、 図10は、図9のキャッシュメモリの良好なカラー付けをチェックするステッ プを示し、 図11は、図9のキャッシュメモリにおけるカラー補正ステップを示し、 図12は、図9のキャッシュメモリにおけるアクセスステップを示し、 図13は、アドレスに関連した追加索引を備えた物理索引キャッシュを示す。 仮想アドレスを物理アドレスへ変換するために使用される第2カラーTLBは 、従来のTLBとは異なり、エントリ毎の仮想ページ番号,物理ページ番号、並 びに恐らく状況制御情報(ここでは記載しない)及びアクセス制御情報(アクセ ス属性)を含むだけでなく、仮想ページ毎に1つの第2カラーを有する(図1も 参照)。ヒットとなった場合、TLBは物理アドレス(r′,c′)及び対応す る第2カラー(c″)を与える。 TLBが直接配置されているか、n方向結合型であるか、飽和結合型であるか 、は無関係である。n方向結合型TLBの場合、n個 のエントリが同時に選択され、これに平行してその仮想アドレスがvpnと比較 される。飽和結合型TLBの場合、ハッシュ関数及び選択関数は使用されず、全 てのTLBエントリについてvpnに対するチェックが同時に行われる。 使用されるページテーブル構造に関係なく、TLBエントリはTLBミスの場 合のページテーブルデータ構造から再ロードされる。この場合、物理アドレス及 びアクセス属性のみならず、第2カラーもまたページテーブルから取り出される (即ち少なくとも各有効な最下レベルページテーブルエントリもまた選択された 第2カラーを含む)。 第2カラーは、特に上述した不変状況が常に持続される方法においてオペレー ティングシステムによって自由に選択することができる。2つのTLBエントリ が同じ物理ページアドレスに関連する場合、それらの第2カラーが一致する(不 変状況)、という規定を適用する。 基本的なアイデアは、直接配置された、又はn方向結合型のキャッシュにおけ る配置のために常に第2カラーを使用するものであり、第1(物理)カラーは使 用しない。そうすると第2カラーに一致している仮想アドレスを介したアクセス は高速であり、他のアクセスは追加のカラー補正ステップを必要とする(c′= c″であり、そのシステムが従来のキャッシュのように動作する場合)。 注釈(図2も参照): v 仮想アドレス vpn 仮想ページ番号 c 仮想カラー(仮想アドレスのグループ情報) rpn 物理(実)ページ番号 c′ 物理カラー,第1カラー(第1グループ情報)とも称 する c″ 第2カラー(第2グループ情報) r′ rpnの上位部分(c′を除く) 各キャッシュエントリ(行)は、タグ用の領域ri,ciと、データ領域diと 、更にここでは記載しない状態領域とを含む。 れる索引iによって選択される。仮想カラー,第1カラー,第2カラー及び索引 カラーは同番号ビットを有する。 が仮想アドレスからロードされる(図2参照)。同時にTLBが入力としてのv pnを用いてアドレス変換を開始する。 リが読み出される。TLBによって与えられた物理ページアドレス(r′,c′ )が、キャッシュエントリに記憶された物理アドレス(ri,ci)と比較され、 またTLBによって与えられた第2カラーc″が、索 致している場合((r′,c′)=(ri,ci))、キャッシュヒットであり、 即ちキャッシュのデータが送出され(読み出しアクセス)、また新データがキャ ッシュに書き込まれる(書き込みアクセス)。そしてキャッシュアクセスは終了 する。キャッシュメモリがn方向結合型である場合、同時にTLBによって与え られた物理アドレスが、選択されたn個のエントリに含まれた物理アドレスと平 行して比較される。この1回の比較で一致した場合、ヒットとなる。対応するエ ントリが読み出され、又はアクセス属性及び状態情報に基づいて修正される。 ステップ3.ステップ2でキャッシュヒットが得られず((r′,c′)≠(ri ,ci)の全ての場合)、索引カラー ードされ、ステップ2が再度実行される。 ステップ4.他の場合、キャッシュアクセスは打ち切られ、ミスが示される。 以上は、全てのキャッシュエントリの読み出し及び書き込みについてのみ記述 したものであることを明らかにしておく。下位アドレスビットに関してエントリ の部分のみが通常の公知の手順で読み出されまた書き込まれることはいうまでも ない。ここで述べた制御論理への影響はない。 第1又は第2カラーによるキャッシュエントリの自由な配置(1ページ内に均 一にミックスされている)は、ステップ2,3を修正することにより可能となる 。その手順を以下に述べる。 リが読み出される。TLBによって与えられた物理ページアドレス(r′,c′ )が、キャッシュエントリに記憶された物理アドレス(ri,ci)と比較され、 比較され、またTLBによって与えられた第2カラー 一致している場合((r′,c′)=(ri,ci))、キャッシュヒットであり 、即ちキャッシュのデータが送出され(読み出しアクセス)、また新データがキ ャッシュに書き込まれる(書き込みアクセス)。そしてキャッシュアクセスは終 了する。 ステップ3.ステップ2でキャッシュヒットが得られず((r′,c′)≠(ri ,ci)の全ての場合)、このキャッシュアクセスの間に迂回ステップが行われ ていない場合、 =c″)、第1カラーと第2カラーとが異なる場合(c′≠c″)、迂回ステッ プが実行され 回ステップが記録され、他のステップ2が実行される; (b)又は索引カラーが第2カラーと異なる場合 ステップ2が実行される。 変形1:第1カラーと第2カラーとで役割を交換する。 ステップ3.ステップ2でキャッシュヒットが得られず((r′,c′)≠(ri ,ci)の全ての場合)、このキャッシュアクセスの間に迂回ステップが行われ ていない場合、 =c′)、第1カラーと第2カラーとが異なる場合(c′≠c″)、迂回ステッ プが実行され 回ステップが記録される;又は 1カラーc′でロードされ、他のステップ2が実行される。 変形2:仮想カラーが第1カラー,第2カラーのいずれにも等しくない場合、c ′,c″の順序は、さいころを投げるようにして決定する。 ステップ3.ステップ2でキャッシュヒットが得られず((r′,c′)≠(ri ,ci)の全ての場合)、このキャッシュアクセスの間に迂回ステップが行われ ていない場合、 =c′)、第1カラーと第2カラーとが異なる場合(c′≠c″)、迂回ステッ プが試みられ 回ステップが記録され、他のステップ2が実行される;又は =c′)、第1カラーと第2カラーとが異なる場合(c′≠c″)、迂回ステッ プが試みられ 回ステップが記録され、他のステップ2が実行される;又は (c)索引カラーが第1,第2カラーと異なる場合 りカラー補正が試みられ、他のステップ2が実行される。 項目3cの決定機構は、無作為に、又は以前のヒット及びミスを考慮して動作 する。さらなる変形としてTLBは、第2カラーに加え、決定機構によって分析 された策略ヒントも記憶している。 直接結合された複数のプロセッサ及びキャッシュを備えたマルチプロセッサに 関しては、ほとんど全てのキャッシュコヒーレンスプロトコールが、プロセッサ だけでなくメモリバスも物理アドレスに加えて第2カラーを与えることを要求す るようになしてある(図5)。遂行するために、外部アドレスバスは第2カラー バスと接続されている。後者が矛盾なしに使用されている場合、従来の物理的に アドレスされたキャッシュにおける各コヒーレンスプロトコール動作は外部作用 なしに遂行され得る。 各プロセッサのキャッシュは、物理アドレスだけでなく第2カラーもバスにの せる。第2カラーは、読み出しアクセス時にはTLBによって与えられ、書き込 みアクセス時にはキャッシュ索引から抽出されるので、それは常に可能である。 従ってマルチプロセッサシステムに関しては、全てのプロセッサのページテー ブルツリーが矛盾した第2カラー配置を含まない場合、即ち上述した不変状況が システム全体に適用される場合、前記問題は解決される。 整合させるために、仮想アドレスを介してアクセスしないバスマスター、例え ばDMA,スクリーンプロセッサも第2カラーバスを備える。 物理カラーを第2カラーとして取り扱うこと、整合問題の解決をオペレーショ ンシステムに委ねることは最も簡単な解決策である。 後者ではその領域を適当に配置する必要があり(第2カラー=物理カラー)、又 はキャッシュを前もってフラッシュしておく必要がある。 そのような制限は第2カラー情報を備えた対応するコントローラを備えること により避けることができる。DMAチップをプログラムするとき、アドレス及び 記憶領域毎の長さをプログラムするだけでなく第2カラーもプログラムする。 MMUがページテーブルにアクセスする場合、TLBは第2カラー情報を与え ない。しかしながらそのようなアクセスは第2カラーとしての物理カラーを使用 して実行され得る。 この目的のために特別な第2カラーを使用すること、又は処理の分岐時に第2 カラー情報を次ステップのためのテーブルアドレスと一緒にページテーブルエン トリから読み出すことも可能である。このようにしてページテーブル情報用のキ ャッシュエントリの配置を制御することも考えられる。 物理領域の第2カラーが、アクセスしている全てのプロセッサに対して一致し ているという制限が排除された場合、1セットの第2カラーは単一のカラーの代 わりに各ページテーブルエントリに記憶することができる。各プロセッサは、第 2カラーのセットのどのエントリが各プロセッサに適用可能であるかを指示する レジスタと接続されている。(従って第2カラーのセットはプロセッサの数より はるかに少なくすることができる。) 第2カラーバスは第2カラーの全てのセットに対して接続されている。しかし ながらライトバックキャッシュに関しては、第2カラーのセットはキャッシュに 記憶されている必要がある。ライトスルーキャッシュに関してはTLBが各セッ トを記憶している場合に条件を満たす。 また非常に高価であり測り知ることは困難であるが、別の方法として、物理ア ドレスから対応する第2カラーを引き出すRTB又は(TLBを備えた)第2の MMUを使用する方法がある。 キャッシュメモリの他の実施例を図13を参照しながら説明する。ここでは物 理索引キャッシュメモリについて述べる。 アドレスだけでなく物理アドレスに加えてページテーブルエントリに含まれた ビット情報を介してキャッシュ配置を制御するアイデアが物理索引キャッシュの ためにも遂行されてもよい。これはヒットの場合に各キャッシュアクセスを高速 化することはないが、衝突の減少によって利用の拡大及びヒット率の向上が図れ る。この変形は、特に第2レベルのキャッシュの周辺において重要である。 アドレスrに加え索引付けするために使用される追加索引c'''は、上述した 用語に従って第3カラーと称する。第3カラーは、上述した第2カラーよりも広 いビット領域とすることができる(広くなくてもよい)。第3カラーは第2カラ ーと一致していてもよく、またその一部が同じであってもよい(全手法は専ら第 3カラーを用いて、即ち第2カラーを用いずに行われることはいうまでもない) 。 MMU又はTLBは物理アドレスr及び第3カラーc'''を提供する(図13 参照)。マップ関数において、第3カラーc'''はキャッシュ索引のために使用 される物理アドレスrのキャッシュ索引部と論理的に結合されている。簡単な論 理結合の例を以下に示す。 1.rの一部をc'''に置き換える。 2.rの一部をc'''でOR演算のみ行う。 3.rの一部とc'''とを加える。
【手続補正書】特許法第184条の8第1項 【提出日】1996年3月1日 【補正内容】 請求の範囲 1.キャッシュメモリの複数のキャッシュエントリのうちの1つを 想アドレス(v)の所定のビットによって索引付けされる一方向又は多方向結合 型キャッシュメモリを備え、各キャッシュエントリは少なくとも1つのタグ(ri ,ci)と、少なくとも1つのデータ領域(di)と、仮想ページ番号を表すペ ージ番号アドレス部(vpn)とを有し、前記仮想ページ番号は、仮想アドレス (v)のページ番号アドレス部(vpn)によって表された仮想ページが属する 、複数のグループのうちの1つを特定するためのグループ情報(c)を含み、前 記仮想アドレス(v)は、第1,第2グループ情報(c’,c'')が関連する多 ビットアドレスへ変換可能であり、 付けされたキャッシュエントリのタグ又はそのタグの所定ビットと、前記仮想ア ドレス(v)のグループ情報又は第1若しくは第2グループ情報とを、仮想アド レスから変換された物理アドレスの所定ビット(r’,c’)と比較するための タグ比較器を少なくとも1つ備えるデータ記憶用キャッシュメモリ装置をアドレ スする方法であって、 キャッシュアドレッシングは、 (v)のグループ情報(c)とを使用して索引付けされ、1つのキャッシュエン トリがキャッシュメモリの方向毎にアドレスされるステップと、 b)接続されたタグ比較器において、このアドレスされた全てのキャッシュエ ントリのタグ(ri,ci)又はその所定ビットが仮想アドレス(v)から変換さ れた物理アドレスの所定ビット (r’,c’)と比較されるステップと、 c)物理アドレスの所定ビット(r’,c’)に一致するタグ(ri,ci)が 存在する場合、キャッシュヒットであり、キャッシュアドレス動作を終了し、こ のタグによって特定されたデータ領域(d)へのデータの書き込み及びここから のデータの読み出しが可能となるステップと、 d)ステップb)において一致しない場合、仮想アドレス(v) してキャッシュメモリが索引付けされ、ステップb),c)がアドレスされた一又 は複数のキャッシュエントリに対して実行されるステップと、 e)ステップb)において再度一致しない場合、キャッシュミスとなりキャッ シュアドレス動作を終了するステップと によって試みられる。 2.メモリ管理部(MMU)の変換索引緩衝器(TLB)部が仮想アドレスを物 理アドレスへ変換するために設けられており、これは、物理アドレス又は物理ア ドレスの部分に加えて、関連する第1,第2グループ情報(c’,c'')をも提 供することを特徴とする請求項1記載の方法。 3.キャッシュミスである場合には、TLB部に記憶された物理アドレスのため の第1,第2グループ情報(c’,c'')がページテーブルを使用して決定され ることを特徴とする請求項2記載の方法。 4.第2グループ情報が前記グループ情報と異なる場合にのみ、ステップd)が 実行されることを特徴とする請求項1〜3のうちのい ずれかに記載の方法。 5.初めて実行されたステップb)に続いて、又はステップd)に基づいて以下 のステップが実施されることを特徴とする請求項1〜4のうちのいずれかに記載 の方法。 e)ステップb)において一致しない場合、仮想アドレス(v) 物理アドレスの第1グループ情報(c’)とを使用してキャッシュメモリが索引 付けされ、ステップb),c)かアドレスされた一又は複数のキャッシュエントリ に対して実行されるステップ、及び f)ステップb)において再度一致しない場合、キャッシュミスとなりキャッ シュアドレス動作を終了するステップ。 6.第1グループ情報が前記グループ情報及び第2情報の両方と異なる場合にの みステップe)が実行されることを特徴とする請求項5記載の方法。 7.ステップc)の初回の実行の後に先ずステップe)を実行し、続いてステッ プd)を実行することを特徴とする請求項5又は6記載の方法。 8.ステップc)の初回の実行の後に、先ずステップe)を実行してその次にス テップd)を実行するか、又は先ずステップd)を実行してその次にステップe )を実行するかを決定する決定装置を備えることを特徴とする請求項5又は6記 載の方法。 9.前記決定装置はランダムチェックジェネレータを備えることを特徴とする請 求項8記載の方法。 10.前記決定装置は、現行の仮想アドレスに対して以前のキャッシュヒットを 考慮し、それに基づいて決定することを特徴とする請求項8記載の方法。 11.バス及び少なくとも1つのキャッシュメモリを備えたマルチプロセッサで は、該バスが、データ及び物理アドレスに加えて、第1グループ情報及び/又は 第2グループ情報をも伝達することを特徴とする請求項1〜10のうちのいずれ かに記載の方法。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 19504483.5 (32)優先日 1995年2月10日 (33)優先権主張国 ドイツ(DE) (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),JP,US

Claims (1)

  1. 【特許請求の範囲】 1.キャッシュメモリの複数のキャッシュエントリのうちの1つを 想アドレス(v)の所定のビットによって索引付けされる一方向又は多方向結合 型キャッシュメモリを備え、各キャッシュエントリは少なくとも1つのタグ(ri ,ci)と、少なくとも1つのデータ領域(di)と、仮想ページ番号を表すペ ージ番号アドレス部(vpn)とを有し、前記仮想ページ番号は、仮想アドレス (v)のページ番号アドレス部(vpn)によって表された仮想ページが属する 、複数のグループのうちの1つを特定するためのグループ情報(c)を含み、前 記仮想アドレス(v)は、第1,第2グループ情報(c’,c'')が関連する多 ビットアドレスへ変換可能であり、 付けされたキャッシュエントリのタグ又はそのタグの所定ビットと、前記仮想ア ドレス(v)のグループ情報又は第1若しくは第2グループ情報とを、仮想アド レスから変換された物理アドレスの所定ビット(r’,c’)と比較するための タグ比較器を少なくとも1つ備え、キャッシュアドレッシングは、 (v)のグループ情報(c)とを使用して索引付けされ、1つのキャッシュエン トリがキャッシュメモリの方向毎にアドレスされるステップと、 b)接続されたタグ比較器において、アドレスされた全てのキャッシュエント リのタグ(ri,ci)又はその所定ビットが仮想アドレス(v)から変換された 物理アドレスの所定ビット(r’,c’)と比較されるステップと、 c)物理アドレスの所定ビット(r’,c’)に一致するタグ (ri,ci)が存在する場合、キャッシュヒットであり、キャッシュアドレス動 作を終了し、このタグによって特定されたデータ領域(d)へのデータの書き込 み及びここからのデータの読み出しが可能となるステップと、 d)ステップb)において一致しない場合、仮想アドレス(v) してキャッシュメモリが索引付けされ、ステップb),c)がアドレスされた一又 は複数のキャッシュエントリに対して実行されるステップと、 e)ステップb)において再度一致しない場合、キャッシュミスとなりキャッ シュアドレス動作を終了するステップと によって試みられる データ記憶用キャッシュメモリ装置。 2.メモリ管理部(MMU)の変換索引緩衝器(TLB)部が仮想アドレスを物 理アドレスへ変換するために設けられており、これは、物理アドレス又は物理ア ドレスの一部に加えて、関連する第1,第2グループ情報(c’,c'')をも提 供することを特徴とする請求項1記載のキャッシュメモリ装置。 3.キャッシュミスである場合には、TLB部に記憶された物理アドレスのため の第1,第2グループ情報(c’,c'')がページテーブルを使用して決定され ることを特徴とする請求項2記載のキャッシュメモリ装置。 4.第2グループ情報が前記グループ情報と異なる場合にのみ、ステップd)が 実行されることを特徴とする請求項1〜3のうちのい ずれかに記載のキャッシュメモリ装置。 5.初めて実行されたステップb)に続いて、又はステップd)に基づいて以下 のステップが実施されることを特徴とする請求項1〜4のうちのいずれかに記載 のキャッシュメモリ装置。 e)ステップb)において一致しない場合、仮想アドレス(v) 物理アドレスの第1グループ情報(c’)とを使用してキャッシュメモリが索引 付けされ、ステップb),c)がアドレスされた一又は複数のキャッシュエントリ に対して実行されるステップ、及び f)ステップb)において再度一致しない場合、キャッシュミスとなりキャッ シュアドレス動作を終了するステップ。 6.第1グループ情報が前記グループ情報及び第2情報の両方と異なる場合にの みステップe)が実行されることを特徴とする請求項5記載のキャッシュメモリ 装置。 7.ステップc)の初回の実行の後に先ずステップe)を実行し、続いてステッ プd)を実行することを特徴とする請求項5又は6記載のキャッシュメモリ装置 。 8.ステップc)の初回の実行の後に、先ずステップe)を実行してその次にス テップd)を実行するか、又は先ずステップd)を実行してその次にステップe )を実行するかを決定する決定装置を備えることを特徴とする請求項5又は6記 載のキャッシュメモリ装置。 9.前記決定装置はランダムチェックジェネレータを備えることを特徴とする請 求項8記載のキャッシュメモリ装置。 10.前記決定装置は、現行の仮想アドレスに対して以前のキャッシュヒットを 考慮し、それに基づいて決定することを特徴とする請求項8記載のキャッシュメ モリ装置。 11.バス及び少なくとも1つのキャッシュメモリを備えたマルチプロセッサで は、該バスが、データ及び物理アドレスに加えて、第1グループ情報及び/又は 第2グループ情報をも伝達することを特徴とする請求項1〜10のうちのいずれ かに記載のメモリ装置。 12.多ビットアドレス(r)のキャッシュ索引部とアドレス(r)に関連した 無作為に決定可能であるがアドレス(r)の一部を形成しない追加索引(c''') との組み合わせによる索引付けが可能な一方向又は多方向結合型キャッシュメモ リを備えたデータ記憶用キャッシュメモリ装置。 13.追加索引(c'‘')もまたページテーブルを使用して決定されることを特徴 とする請求項12記載のキャッシュメモリ装置。 14.アドレス(r)の一部及び追加索引(c'‘')が変換索引緩衝器(TLB) 部によって供給されることを特徴とする請求項12又は13記載のキャッシュメ モリ装置。 15.第1レベルキャッシュメモリ装置と、 第2レベルキャッシュメモリ装置とを備え、 第1レベルキャッシュメモリ装置は、請求項1〜11のうちのいずれかに係る キャッシュメモリ装置のように設計されており、第2レベルキャッシュメモリ装 置は、請求項12〜14のうちのいずれかに係るキャッシュメモリ装置のように 設計されているデータ記憶用キャッシュメモリ装置。 16.前記追加索引は第2グループ情報を使用して形成されており、特に追加索 引は、第2グループ情報に一致しているか、又はこれを含むことを特徴とする請 求項15記載のキャッシュメモリ装置。 17.第1レベルキャッシュメモリ装置と、 第2レベルキャッシュメモリ装置とを備え、 第1レベルキャッシュメモリ装置及び第2レベルキャッシュメモリ装置は、請 求項12〜14のうちのいずれかに係るキャッシュメモリ装置のように設計され ているデータ記憶用キャッシュメモリ装置。 18.MMU又はTLB部は、共通の追加索引、又は第1レベルキャッシュメモ リ装置及び第2レベルキャッシュメモリ装置用の2つの別な索引を供給すること を特徴とする請求項15及び13又は14記載のキャッシュメモリ装置。
JP7527339A 1994-04-22 1995-04-19 データ記憶用キャッシュ記憶装置 Pending JPH09512122A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
DE4414116 1994-04-22
DE4416562 1994-05-11
DE19504483.5 1995-02-10
DE4416562.5 1995-02-10
DE4414116.5 1995-02-10
DE19504483A DE19504483A1 (de) 1994-04-22 1995-02-10 Cache-Speichervorrichtung zum Speichern von Daten
PCT/EP1995/001471 WO1995029445A1 (de) 1994-04-22 1995-04-19 Cache-speichervorrichtung zum speichern von daten

Publications (1)

Publication Number Publication Date
JPH09512122A true JPH09512122A (ja) 1997-12-02

Family

ID=27206300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7527339A Pending JPH09512122A (ja) 1994-04-22 1995-04-19 データ記憶用キャッシュ記憶装置

Country Status (4)

Country Link
US (1) US6009503A (ja)
EP (1) EP0756729A1 (ja)
JP (1) JPH09512122A (ja)
WO (1) WO1995029445A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117298B1 (en) 1996-02-26 2012-02-14 Graphon Corporation Multi-homed web server
EP1158749A3 (en) * 2000-04-07 2001-12-05 E-Color, Inc. A method and apparatus for distributing color corrected images across a network using distributed caching
US6654859B2 (en) * 2001-07-26 2003-11-25 International Business Machines Corporation NUMA page selection using coloring
US7451271B2 (en) * 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
US8417915B2 (en) * 2005-08-05 2013-04-09 Arm Limited Alias management within a virtually indexed and physically tagged cache memory
US9390031B2 (en) * 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs
JP4783229B2 (ja) * 2006-07-19 2011-09-28 パナソニック株式会社 キャッシュメモリシステム
US9158710B2 (en) * 2006-08-31 2015-10-13 Intel Corporation Page coloring with color inheritance for memory pages
US9336147B2 (en) * 2012-06-12 2016-05-10 Microsoft Technology Licensing, Llc Cache and memory allocation for virtual machines
US10162694B2 (en) 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
US10853256B2 (en) * 2019-01-04 2020-12-01 Arm Limited Cache operation in an apparatus supporting both physical and virtual address mapping
US11782816B2 (en) * 2019-03-19 2023-10-10 Jens C. Jenkins Input/output location transformations when emulating non-traced code with a recorded execution of traced code
US11422935B2 (en) * 2020-06-26 2022-08-23 Advanced Micro Devices, Inc. Direct mapping mode for associative cache

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1988009014A2 (en) * 1987-05-14 1988-11-17 Ncr Corporation Memory addressing system
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
US6116768A (en) * 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
US5752069A (en) * 1995-08-31 1998-05-12 Advanced Micro Devices, Inc. Superscalar microprocessor employing away prediction structure

Also Published As

Publication number Publication date
EP0756729A1 (de) 1997-02-05
WO1995029445A1 (de) 1995-11-02
US6009503A (en) 1999-12-28

Similar Documents

Publication Publication Date Title
US5226133A (en) Two-level translation look-aside buffer using partial addresses for enhanced speed
JP3795985B2 (ja) コンピュータメモリシステムの競合キャッシュ
EP0856798B1 (en) A cache system
US6014732A (en) Cache memory with reduced access time
EP0036110B1 (en) Cache addressing mechanism
US8239657B2 (en) Address translation method and apparatus
US5860147A (en) Method and apparatus for replacement of entries in a translation look-aside buffer
US6643733B2 (en) Prioritized content addressable memory
US6418521B1 (en) Hierarchical fully-associative-translation lookaside buffer structure
JPH09512122A (ja) データ記憶用キャッシュ記憶装置
US6473835B2 (en) Partition of on-chip memory buffer for cache
JPH08227380A (ja) データ処理システム
US7761665B2 (en) Handling of cache accesses in a data processing apparatus
US12093180B2 (en) Tags and data for caches
JPH0616272B2 (ja) メモリアクセス制御方式
US5913222A (en) Color correction method in a virtually addressed and physically indexed cache memory in the event of no cache hit
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
US7020752B2 (en) Apparatus and method for snoop access in a dual access, banked and pipelined data cache memory unit
CN111338987B (zh) 快速无效组相联tlb的方法
US20050268021A1 (en) Method and system for operating a cache memory
US6493792B1 (en) Mechanism for broadside reads of CAM structures
US6904500B2 (en) Cache controller
US6216198B1 (en) Cache memory accessible for continuous data without tag array indexing
US6581139B1 (en) Set-associative cache memory having asymmetric latency among sets
EP0304587B1 (en) Interruptible cache loading