JPH08235072A - セットアソシアティブ方式メモリの動的分画化方法及び装置 - Google Patents

セットアソシアティブ方式メモリの動的分画化方法及び装置

Info

Publication number
JPH08235072A
JPH08235072A JP7348426A JP34842695A JPH08235072A JP H08235072 A JPH08235072 A JP H08235072A JP 7348426 A JP7348426 A JP 7348426A JP 34842695 A JP34842695 A JP 34842695A JP H08235072 A JPH08235072 A JP H08235072A
Authority
JP
Japan
Prior art keywords
block
blocks
replaceable
data blocks
memory
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
JP7348426A
Other languages
English (en)
Inventor
Basem A Nayfeh
バセム・エイ・ネイフェ
Yousef A Khalidi
ユーゼフ・エイ・カリディ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH08235072A publication Critical patent/JPH08235072A/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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

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】
【発明の属する技術分野】本発明は、コンピュータメモ
リに於ける情報の記憶に関する。本発明は、特に、格納
されたデータの中の選択されたデータに対する重ね書き
を防止するべく動的に分画化される、キャッシュメモリ
または変換索引バッファのようなセットアソシアティブ
方式メモリデバイスに関する。
【0002】
【従来の技術】コンピュータはプログラムの実行によっ
て作動する。プログラムは、あるデータの組を処理する
論理演算の集合体である。データは物理的アドレスで特
定される。物理的アドレスはコンピュータによってアク
セスされ、その物理的アドレスに格納されたデータは、
プログラム上の指定された論理演算で処理される。
【0003】物理的アドレスの処理については異なる複
数の技術が用いられている。セットアソシアティブ方式
メモリ構造では、物理的アドレスの一部分を利用して、
データブロックのセットにアクセスする。次に、物理的
アドレスの別のセグメントを、データブロックのセット
の各ブロックにおけるタグフィールドと比較する。デー
タブロックのセットにおける1つのブロックのタグフィ
ールドが、物理的アドレスのセグメントと一致した場合
は、そのブロックから得られるデータが、次に続く処理
に用いられる。
【0004】セットアソシアティブ方式メモリ構造は、
フルアソシアティブ方式メモリ構造とは対照的な構造で
ある。フルアソシアティブ方式メモリ構造においては、
メモリ構造が数多くのブロックを含むブロックセットを
1つ有する。データは、1つのブロックセットをなす各
ブロックの何れかに書き込まれ、またはそこから読み取
られる。ダイレクトマッピング方式メモリ構造において
は、数多くのセットが定義されるが、各セットにおける
ブロックは1つである。データはダイレクトマッピング
メモリのセットに何れかから読み取られ、またはそこに
書き込まれる。
【0005】キャッシュメモリは頻繁にアクセスされる
データを格納するのに用いられるメモリ構造である。キ
ャッシュメモリの利点は、非常に高速であることであ
る。従って、頻繁にアクセスされるデータをキャッシュ
メモリの中に保存しておくことが非常に望ましい。
【0006】一般に、キャッシュメモリは、セットアソ
シアティブ方式メモリ構造においても、フルアソシアテ
ィブ方式メモリ構造においても、またはダイレクトマッ
ピング方式メモリ構造においても用いられる。本発明
は、セットアソシアティブ方式キャッシュメモリを対象
としたものである。本発明の技術は、変換索引バッファ
のような他のセットアソシアティブ方式メモリ構造に対
しても同様に適用可能である。
【0007】キャッシュメモリは、1又は2以上のプロ
グラムの実行に伴って用いられる。コンピュータは一般
に複数のプログラムを走らせる。コンピュータが複数の
プログラムを実行している場合、各プログラムは、それ
ぞれの頻繁に用いるデータをキャッシュメモリにロード
しようとする。第1プログラムから第2プログラムへ切
り替えられた場合、第2プログラムはその頻繁に使用す
るデータをキャッシュメモリにロードし、第1プログラ
ムの頻繁に使用するデータを上書きすることになる。即
ち、第2プログラムからのデータがキャッシュメモリに
おいて必要とされるとき、第1プログラムからの情報を
有する各ブロックは第2プログラムからの情報によって
上書きされてしまうのである。処理が第1プログラムに
戻ったとき、第1プログラムの頻繁に使用されるデータ
は既にキャッシュメモリには存在しない。従って、第1
プログラムの頻繁に使用されるデータはキャッシュメモ
リに再びロードされなければならない。当然、これによ
って第2プログラムの頻繁に使用されるデータが上書き
されて、後に第2プログラムが呼び出されたときにこの
データを再びロードすることが必要になることになる。
【0008】キャッシュメモリ情報の置換のために処理
の遅れが生ずる。従って、複数のプログラムを実行する
コンピュータのキャッシュメモリにおける、頻繁に使用
されるデータの重ね書きに関連して生ずる処理の遅れを
低減する技術の必要性が非常に高まることになる。変換
索引バッファのような他のセットアソシアティブ方式メ
モリ構造に対しても、このような技術の適用が同様に必
要とされる。
【0009】
【発明が解決しようとする課題】従って、本発明の目的
は、複数のプログラムを実行するコンピュータのセット
アソシアティブ方式キャッシュメモリにおいて、除去さ
れた情報が、除去された後すぐに再びロードされなけれ
ばならないことによって生ずる処理の遅れを低減するた
めの、メモリを動的に分画化する方法及びそれを利用し
た装置を提供することである。
【0010】
【課題を解決するための手段】本発明の装置は、セット
アソシアティブ方式メモリ構造を動的に分画化する装置
である。この装置はキャッシュメモリまたは変換索引バ
ッファにおけるセットアソシアティブデータブロックの
グループであるセットを特定するセット識別デバイスを
含む。ブロック置き換えロジック回路は、セットアソシ
アティブデータブロックの中の、新しい情報を格納でき
る置き換え可能ブロックと、新しい情報を格納できない
置き換え不可能ブロックとを識別するために用いられ
る。ブロック置き換えロジック回路は、セットアソシア
ティブデータブロックの中の、置き換え可能ブロックと
置き換え不可能ブロックとを識別するブロック置き換え
マスクを用いて実現されるのが好ましい。ブロック置き
換えロジック回路は、セットアソシアティブデータブロ
ックの置き換え可能ブロックにのみ新しい情報の書き込
みを行う。
【0011】本発明の方法は、キャッシュメモリまたは
変換索引バッファのようなメモリ構造に、データブロッ
クのセットに対するインデックスを作成する過程を含
む。その後、ブロック置き換えロジックが、データブロ
ックのセットの中の新しい情報を格納できる置き換え可
能ブロックと、新しい情報を格納できない置き換え不可
能ブロックとを識別するために用いられる。新しい情報
は、データブロックのセットの中の置き換え可能ブロッ
クにのみ書き込まれる。
【0012】メモリ構造へのデータの書き込み機能を制
限することによって、メモリ構造は動的に分画化され
て、コンピュータ上で実行される処理の切り替えを行う
際に頻繁に使用されるデータが重ね書きされないように
することができる。従って、コンピュータ上で実行され
る主な処理において頻繁に使用されるデータは、使用頻
度の高くない処理においてメモリ構造に情報が書き込ま
れる際に重ね書きされないで済むことになる。
【0013】
【発明の実施の形態】本発明は、セットアソシアティブ
方式メモリデバイスの動的な分画化を行う方法及び装置
に関するものである。ここでは、本発明の内容を説明す
るために、キャッシュメモリ及び変換索引バッファに関
連した本発明の実施例を取り上げている。初めにコンピ
ュータにおけるキャッシュメモリ及び変換索引バッファ
の一般的な動作に焦点を合わせて説明してある。その
後、本発明のセットアソシアティブ方式メモリデバイス
の動的分画化機能を組み込んだコンピュータについて説
明する。
【0014】図1に示すのは、システムバス18を介し
て主メモリ(一般にランダムアクセスメモリ)14及び
第2メモリ(一般にディスク記憶装置)16に接続され
た中央処理装置(CPU)12を有する汎用コンピュー
タ10である。キーボード、モニタ、プリンタ、若しく
はデータ収集カードのような入出力デバイス20も、シ
ステムバス18に接続されている。CPU12は1また
は2以上のコンピュータプログラムを実行するが、この
プログラムは以下に述べるように主メモリ14に格納さ
れる。
【0015】コンピュータプログラムにおける殆どの命
令及びデータは、対応する仮想アドレスを有する。各仮
想アドレスは物理的アドレスに変換される。以下述べる
ように、変換索引バッファ22は仮想アドレスと物理的
アドレスとの間の速やかな変換を行うために用いられ
る。物理的アドレスは、キャッシュメモリ24内の物理
的アドレスと対比される。キャッシュメモリ24は、直
近に使用された、若しくは頻繁に使用される物理的アド
レスと、その物理的アドレスに対応するデータとを格納
する。指定された物理的アドレスがキャッシュメモリ2
4に存在しない場合は、物理的アドレスが主メモリ14
に位置付けられる。必要な情報が主メモリ14にもない
場合は、ページフォールトが発生し、CPU12は必要
な情報を第2メモリ16から主メモリ14にロードす
る。
【0016】コンピュータにおける仮想アドレスの使用
は、「仮想メモリ」と称する技術である。実際、全ての
コンピュータは仮想メモリ技術に依存している。仮想メ
モリによって、コンピュータはその実メモリの容量を超
えるアドレスの範囲を有するプログラムを実行できるこ
とになる。従って、プログラマーはメモリサイズのこと
を考慮しなくても済み、プログラムは異なるメモリ容量
のハードウェア環境においても使用することができるよ
うになるのである。
【0017】上述のように、仮想アドレスと物理的アド
レス間の変換が必要である。仮想アドレスはプログラム
の実行時に局所的に利用されるアドレスである。物理的
アドレスは、主メモリ14内の情報の実際の物理的位置
を特定するものである。
【0018】図2に示すのは、仮想アドレスと物理的ア
ドレスとの間の変換処理である。主メモリ14に格納さ
れたコンピュータプログラム32は命令セットを有し、
このような命令の1つが図2において要素34として示
されている。命令34は、仮想アドレス“000473
4”(36)に対応するメモリの内容をレジスタ
(“R”)に移動させる(“MOV”)コマンドであ
る。アドレスの数値は16進法で示されている。仮想ア
ドレス36は、仮想メモリページアドレスとも呼ばれる
仮想ページ番号“0004”(38)を有しており、こ
れはページテーブル40にマッピングされる。ページテ
ーブル40は、ページテーブル変換エントリ42のセッ
トを有する。各ページテーブル変換エントリ42は仮想
ページ番号44、データ有無ビット46、及び物理的ペ
ージ番号48(同様に物理的メモリページアドレスとも
呼ばれる)を有する。有無ビットがセットされている
(1になっている)場合は、仮想ページ番号38に対応
して、物理的ページ番号48が主メモリ14内に存在し
ていることを表している。有無ビットがセットされてい
ない場合は、ページフォールトが発生し、CPU12
は、物理的ページ番号48を第2メモリ16において捜
さなければならない。物理的ページ番号48は主メモリ
14におけるメモリのページを特定する。ここでは主メ
モリ14という言葉と物理的メモリという言葉は同様の
意味で用いられている。
【0019】図2には、仮想ページ番号が、仮想アドレ
スとして用いられていることが示されている。仮想ペー
ジ番号は、仮想アドレスを導出できるエントリで置き換
えられるということは当業者には理解されよう。この明
細書において言及されている仮想ページ番号若しくは仮
想アドレスは、仮想アドレスを導出するのに用いられる
関連するスキームまたは仮想ページ番号システムについ
て説明するために言及されているものと了解されたい。
【0020】完全な物理的アドレス50は、物理的ペー
ジ番号48及びページオフセット52を有する。ページ
オフセット52は、目的のアドレスが存在するメモリの
ページにおける列を特定するものである。ページオフセ
ット52は、仮想アドレス36の仮想オフセット部分5
4から(変換処理なしで)直接得られる。
【0021】要するに、仮想アドレス36から物理的ア
ドレス50を得るために、仮想アドレスの仮想ページ番
号38(この例では“0004”)はページテーブル4
0に存在するページテーブル変換エントリ42にマッピ
ングされるのでる。ページテーブル変換エントリ42が
1にセットされた有無ビットを有する場合、仮想ページ
番号に対応する物理的ページ番号が存在する。物理的ペ
ージ番号(この例では16進法の“01FD”)は、物
理的アドレス50の一部分を形成する。物理的アドレス
50の他の部分は、仮想アドレス36の仮想オフセット
部分54から得られるページオフセット値52(この例
では“734”)である。
【0022】現在のコンピュータでは、ページテーブル
40の性能を改善するために、直近に行われた変換処理
を追跡する特別なキャッシュメモリが設けられる。直近
に行われた変換処理は格納されるが、これは1つの仮想
ページ番号に対する変換処理が一度行われると、同じ変
換が近い将来に再び行われる可能性が高いからである。
この特別なアドレス変換キャッシュメモリは変換索引バ
ッファ、若しくはTLBと称せられる。図1にはTLB
22が示されている。TLB22はTLB変換エントリ
のセットを有する。典型的には、TLB変換エントリは
仮想ページ番号、有無ビット、及び物理的ページ番号を
有する。
【0023】コンピュータプログラムを実行するCPU
12は、コンピュータプログラムからの各仮想ページ番
号とTLB22におけるエントリとを比較する。一致が
見られる(「ヒット」と呼ぶ)場合は、TLB22から
の物理的ページ番号が用いて、上述のように物理的アド
レス50が形成される。
【0024】TLB22はハードウェアの中に実現さ
れ、従って、エントリの数はページテーブル40よりも
少なくなるのが一般的である。TLB22のサイズが小
さいために、TLBに目的の情報がないケース、即ち
「TLBミス」が頻繁に発生する。TLBミスが発生す
ると、物理的アドレスを定めるべくページテーブル40
に問い合わせが行われる。ページテーブル40が目的の
情報を有している場合は、その情報がページテーブル4
0からTLB22にロードされうる。
【0025】TLB22若しくはページテーブル40か
ら物理的アドレスが得られた後、この物理的アドレスの
データがアクセスされる。キャッシュメモリ24は直近
にアクセスされた若しくは頻繁にアクセスされる物理的
アドレスのセットを格納する。物理的アドレスがキャッ
シュ24に存在しない場合は、主メモリ14が探索され
る。それでもまだ所望のアドレスが見つからない場合
は、第2メモリ16が探索される。キャッシュメモリ2
4、主メモリ14、及び第2メモリ16はこのような階
層構造を形成するが、キャッシュメモリは処理が比較的
高速であるが情報量が小さく、第2メモリ16は処理が
比較的遅いが情報量が大きいことに特徴がある。従っ
て、キャッシュメモリはその高速性いう利点を生かすべ
く用いられるのが望ましい。しかし、キャッシュメモリ
は情報量が少ないので、データヒット率を改善するべ
く、情報の内容の選択を制御して行うことが望ましい。
【0026】図3に示すのは、セットアソシアティブ方
式キャッシュメモリ24における物理的アドレス50の
突き合わせである。セットアソシアティブ方式キャッシ
ュメモリは、それぞれn個のブロックからなる複数のメ
モリセットからなる。図3の例においては、0から25
5の間のインデックス値が、セットが256個あること
を示している。各セットは4つのブロック60A、60
B、60C、及び60Dを有する。従って、図3におい
ては、4ウェイセットアソシアティブ方式キャッシュメ
モリが示されていることになる。
【0027】ひとたび1つのセットが識別されると、そ
のセットの全てのブロック(この例では4つのブロッ
ク)について、特定の物理的アドレス50と一致するも
のが探索される。図3に示すように、物理的アドレス5
0の一部分は、複数のブロック60からなるセットを選
択するためのインデックス値として用いられる。物理的
アドレス50の他の部分は、そのインデックスを付され
たセットの全てのブロック60のタグとの比較に用いら
れる。一致が確認された場合は、一致したタグに関連す
るデータが出力として使用される。図3の4ウェイセッ
トアソシアティブ方式キャッシュにおいては、4つの比
較用ANDゲート62A、62B、62C、及び62D
が使用され、それと共に4対1の(4 to 1)マルチプレ
クサ64が使用されて、選択されたセットにおける4つ
の抽出可能な番号の中から1つが抽出される。ANDゲ
ート62A、62B、62C、及び62Dは、有無ビッ
トがセットされているか否か、及びタグデータが存在す
るか否かを確認するのに用いられる。比較回路66A、
66B、66C、及び66Dは物理的アドレスセグメン
トと特定のセットの異なるタグとを比較するのに用いら
れる。ORゲート68からのハイレベルの信号は、キャ
ッシュヒットを示すものである。
【0028】物理的アドレスがキャッシュメモリに存在
しないときは、「キャッシュミス(cashe miss)」が発
生する。キャッシュミスが発生すると、キャッシュ内の
情報のいくつかは、その時点でキャッシュ内に存在する
ことが必要な情報に置換される。即ち、選択されたセッ
トの中のあるブロックが置換されるのである。セットア
ソシアティブ方式方式メモリ構造において、置換される
べきブロックを選択するのに用いられるストラテジーに
は2つの主なものがある。その1つにおいては、ハード
ウェア的な補助によってランダムにブロックを選択す
る。もう1つのストラテジーはLRU方式(the least
recently used approach)である。この名前が示すよう
に、LRU方式では、長時間使用されていなかったブロ
ックが選択される。ランダム選択にはハードウェアにお
いて実現が容易であるという利点がある。LRU方式は
使用されないデータを除去するが、ブロックを追跡する
ために計算のためのオーバヘッドが大きくなる。
【0029】従来の技術の項で示したように、従来のセ
ットアソシアティブ方式キャッシュメモリにおける情報
のブロックの置換方法では、キャッシュメモリから除去
された情報が、除去された後すぐにキャッシュ方式メモ
リに再びロードされなければならない場合があった。本
発明はこの問題の解決を目的としている。
【0030】図4に示すのは、本発明の一実施例に基づ
く、動的分画化をなされたセットアソシアティブ方式キ
ャッシュメモリ24である。キャッシュ24はCPU1
2と対話する形となっている。CPU12はブロック置
き換えロジック70とも対話する。ブロック置き換えロ
ジック70はランダム方式、LRU方式、若しくは他の
ブロック置き換えスキームを含む。ブロック置き換えロ
ジック70は、ブロックの置換に前もって、ブロック置
き換えマスク(BRM)72を用いる。BRM72はk
ビットのビット数を有し、ここでkは1セット当たりの
ブロック数、即ちセットアソシアティビティである。図
3の例では、BRM72は4つのビットを含むことにな
る。
【0031】従って、BRM72における各ビットセッ
トは、キャッシュメモリの1/kを置換から保護するよ
うに作用する。ブロック置き換えロジック70が、BR
M72に基づいてキャッシュメモリを選択的にロック及
びアンロックすることによって動的分画化がなされるの
である。即ち、置き換えビットがセットされていない
(ローレベルにある)場合、ブロックエントリは従来と
同様に処理される。従って、各ブロックは変更されてい
ないブロック置き換えロジックに従って置換される。一
方、置き換えビットがセットされている(ハイレベルに
ある)場合は、ブロックは置換され得ない。従って、キ
ャッシュにおける頻繁に利用されるデータをロックする
ことができることになる。再び図3の例を参照すると、
BRMビットパターンの0010は、ブロック60A、
60B、及び60Dは置換可能であるが、ブロック60
Cは置換不可能であることを意味している。従来は全て
のブロックが置換可能であり、個々のブロックを重ね書
きから保護する実際的な方法は存在しなかった。
【0032】本発明のブロック置換スキームは、複数の
処理が実行され、その処理の1つがCPU時間の多くを
占めているときに特に有利である。このタイプの支配的
な処理に対しては、キャッシュメモリ24に選択された
ブロックをロックしておくことが望ましい。この結果、
たとえ他の処理が呼び出されている場合であっても、支
配的な処理に対するキャッシュ内のデータの少なくとも
一部がキャッシュ内に残ることになる。このようにし
て、他の処理に関連する動作が終了して支配的な処理に
戻るときに、この支配的な処理に関連するデータは既に
キャッシュ24の中に残っており、従ってキャッシュ内
に情報をロードする時間は不要となることになる。
【0033】ブロック置き換えマスク72を使用する代
わりに、追加的な置き換えビットが各データブロックに
おいて使用されても良い。これを実現したものが図4及
び図3に示されている。図のキャッシュメモリ24にお
ける各ブロックはデータの存在を表す有無タグ(V)、
物理的アドレスのセグメントと比較するためのタグ、及
びヒットが生じたとき読み取られるべきデータを有す
る。更に、置き換えビット(R)が存在し、これは置き
換えブロックを識別するために使用される。このインプ
リメンテーションでは、各データブロックは追加的なビ
ットを必要とすることで更に高いオーバヘッドを有する
ことになる。また、このインプリメンテーションではセ
ットアソシアティブ構造のモジュール性を活用し損なっ
てもいる。
【0034】本発明がどのような形で実現された場合で
も、本発明のキャッシュメモリ24は、読み取り、及び
書き込みのためにアクセスされる分画化されていないキ
ャッシュメモリと同様に機能し、かつ、キャッシュミス
による置換からのデータの保護機能を備えるものであ
る。分画化が所与のアプリケーションにおいて有益なも
のでない場合は、単にブロック置き換えマスク72にお
ける全ての置き換えビットをオフにすることによって、
該機能をなくすことができる。
【0035】図1には、主メモリ14に格納されたオペ
レーティングシステム80が示されている。オペレーテ
ィングシステム80はセット識別プロシジャ82を実行
し、セット識別デバイスを呼び出して、所与のアドレス
に対応するデータブロックのセットを識別すべく、所与
のアドレスを処理する。キャッシュメモリの場合は、図
3に示すように、各データブロックが、有無ビット
“V”、タグフィールド、及びデータフィールドを有す
る。図3の識別されたセットは、4つのデータブロック
60A、60B、60C、及び60Dを有する。TLB
の場合は、図2に示すように、各データブロックは、ペ
ージ番号、有無ビット、及び物理的ページ番号を有す
る。TLBの識別されたセットは複数のテーブルエント
リ42を含むものである。
【0036】ブロック置き換えロジック70及びブロッ
ク置き換えマスク72は主メモリ14に格納されたソフ
トウェア命令として実現されうる。ブロック置き換えロ
ジック70は、ブロック置き換えロジック回路とも称さ
れ、ブロック置き換えマスクの各ビットと、特定された
セットのそれに対応するブロックとを比較して、その特
定されたセット内の置き換え可能なブロックと置き換え
不可能なブロックとを識別する。本発明が、ブロック置
き換えマスク72なしに各データブロックの置き換えビ
ットが設けられる形で実現される場合は、ブロック置き
換えロジック70は、単に、データブロックにおける置
き換えビットがどのようにセットされているかをチェッ
クする。
【0037】ブロック置き換え回路70は、比較器の組
を用いることによってハードウェア上にも実現されう
る。ブロック置き換えマスク72は好ましくは、オペレ
ーティングシステム80によって設定されたビットを有
する物理的レジスタとして実現される。
【0038】キャッシュ24が共有される場合は、共有
されるワーキングセット効果、先取り、及びキャッシュ
メモリにおける無効部分の低減、若しくはシステム内で
実行されるものへの更新によって、アプリケーションが
平行して用いられる場合における性能が実質的に上昇が
もたらされ得ることは当業者には理解されよう。
【0039】本発明は複数のプロセッサによって用いら
れる1つのキャッシュメモリをサポートするのに用いら
れても良い。このような実施例においては、各プロセッ
サ12〜12Nは、図4に示すように個々の置き換え領
域を有するのが好ましい。別の実施例に於いては、各プ
ロセッサ12〜12Nは個々の領域を有するが、一部分
は重複している。本発明の方法によれば、複数のプロセ
ッサシステムに共有されたキャッシュでのキャッシュミ
ス発生率に関連する破壊的な干渉が低減する。
【0040】複数のプロセッサをサポートするために、
各プロセッサ12〜12Nはキャッシュメモリにおいて
分離して設けられたBRM72〜72Nを有する。特定
のプロセッサがキャッシュ内における置換を行う必要が
生ずると、ブロック置き換えロジック70は、特定のプ
ロセッサの対応するBRM72を用いて、置き換えをど
のように行うべきかを決定する。
【0041】本発明を変換索引バッファ(TLB)とし
て実現するためには、図4の装置の簡単な変更を行った
ものが用いられる。各ブロックの置き換えビット“R”
及び有無ビット“V”は同様に用いられる。しかし、タ
グフィールドの代わりにページ番号フィールドが用いら
れ、データフィールドの代わりに物理的ページ番号フィ
ールドが用いられる。このタイプの構造は図2において
示されている。ブロック置き換えマスク72がTLBの
実施例において用いられている場合は、置き換えビット
“R”は使用されない。
【0042】上述の本発明の特定の実施例は、本発明を
説明するために提示されたものである。従って、本発明
はここに開示されたものに限定されず、上述の技術に基
づいてさまざまな改変が可能であることは明らかであ
る。
【0043】
【発明の効果】以上より、本発明に基づき、複数のプロ
グラムを実行するコンピュータのセットアソシアティブ
方式キャッシュメモリにおいて、除去された情報が、除
去された後すぐに再びロードされなければならないこと
によって生ずる処理の遅れを低減するための、メモリを
動的に分画化する方法及びそれを利用した装置が提供さ
れる。
【図面の簡単な説明】
【図1】本発明の実施例の1つに基づく構成の汎用コン
ピュータを示したものである。
【図2】仮想アドレスと物理的アドレスとの間のアドレ
ス変換処理を示したものである。
【図3】本発明の実施例の1つに基づくキャッシュメモ
リアーキテクチャを示したものである。
【図4】本発明の実施例の1つに基づくキャッシュメモ
リアーキテクチャ、及びそれに関係する制御ロジックを
を示したものである。
【符号の説明】
10 汎用コンピュータ 12〜12N 中央処理装置(CPU) 14 主メモリ 16 第2メモリ 18 システムバス 20 入出力デバイス 22 変換索引バッファ(TLB) 24 キャッシュメモリ 32 コンピュータプログラム 34 (プログラムの中の)命令 36 仮想アドレス 38 ページ番号 40 ページテーブル 42 ページテーブル変換エントリ 44 仮想ページ番号 46 データ有無ビット 48 物理的ページ番号 50 物理的アドレス 52 ページオフセット 54 仮想オフセット部分 60A、60B、60C、60D データブロック 62A、62B、62C、62D 比較用ANDゲート 64 マルチプレクサ 66A、66B、66C、66D 比較回路 68 ORゲート 70 ブロック置き換えロジック 72〜72N ブロック置き換えマスク(BRM) 80 オペレーティングシステム 82 セット識別プロシジャ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ユーゼフ・エイ・カリディ アメリカ合衆国カリフォルニア州94086・ サニーベイル・ウエストガーランドテラス 633

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 データブロックのセットに対するイン
    デックスを作成する過程と、 前記データブロックのセットの中の新しい情報を格納で
    きる置き換え可能ブロックと、前記データブロックのセ
    ットの中の新しい情報を格納できない置き換え不可能ブ
    ロックとを識別するべくブロック置き換えロジックを使
    用する過程と、 前記データブロックのセットの中の置き換え可能ブロッ
    クにのみ新しい情報を書き込む過程とを有するコンピュ
    ータメモリへ情報を格納する方法。
  2. 【請求項2】 前記ブロック置き換えロジックを使用
    する過程が、 前記置き換え可能ブロックと前記置き換え不可能ブロッ
    クとを識別するべく、ブロック置き換えマスクを使用す
    る過程を含むことを特徴とする請求項1に記載の方法。
  3. 【請求項3】 前記ブロック置き換えロジックを使用
    する過程が、 前記置き換え可能ブロックと前記置き換え不可能ブロッ
    クとを識別するべく、前記データブロックのセットの中
    の各データブロックに於いて、ブロック置き換えビット
    を使用する過程を含むことを特徴とする請求項1に記載
    の方法。
  4. 【請求項4】 前記インデックスを作成する過程が、 キャッシュメモリ内にデータブロックのセットに対する
    インデックスを作成する過程を含むことを特徴とする請
    求項1に記載の方法。
  5. 【請求項5】 前記インデックスを作成する過程が、 変換索引バッファ内にデータブロックのセットに対する
    インデックスを作成する過程を含むことを特徴とする請
    求項1に記載の方法。
  6. 【請求項6】 データブロックのセットを特定するセ
    ット識別デバイスと、 前記データブロックのセットの中の新しい情報を格納で
    きる置き換え可能ブロックと、前記データブロックのセ
    ットの中の新しい情報を格納できない置き換え不可能ブ
    ロックとを識別し、前記データブロックのセットの中の
    置き換え可能ブロックにのみ新しい情報を書き込むブロ
    ック置き換えロジック回路とを有することを特徴とする
    コンピュータメモリへ情報を格納する装置。
  7. 【請求項7】 前記ブロック置き換えロジック回路
    が、 前記置き換え可能ブロックと前記置き換え不可能ブロッ
    クとを識別するブロック置き換えマスクを含むことを特
    徴とする請求項6に記載の装置。
  8. 【請求項8】 前記ブロック置き換えロジック回路
    が、前記置き換え可能ブロックと前記置き換え不可能ブ
    ロックとを識別するべく、前記データブロックのセット
    の中の各データブロックに於けるブロック置き換えビッ
    トをチェックすることを特徴とする請求項6に記載の装
    置。
  9. 【請求項9】 前記セット識別デバイスが、 キャッシュメモリ内のデータブロックのセットを特定す
    ることを特徴とする請求項6に記載の装置。
  10. 【請求項10】 前記セット識別デバイスが、 変換索引バッファ内のデータブロックのセットを特定す
    ることを特徴とする請求項6に記載の装置。
  11. 【請求項11】 データブロックのセットを特定する
    セット識別デバイスを設ける過程と、 前記データブロックのセットの中の新しい情報を格納で
    きる置き換え可能ブロックと、前記データブロックのセ
    ットの中の新しい情報を格納できない置き換え不可能ブ
    ロックとを識別し、前記データブロックのセットの中の
    置き換え可能ブロックにのみ新しい情報を書き込むブロ
    ック置き換えロジック回路を設ける過程とを有すること
    を特徴とする、コンピュータメモリへ情報を格納する装
    置の製造方法。
  12. 【請求項12】 前記置き換え可能ブロックと前記置
    き換え不可能ブロックとを識別するブロック置き換えマ
    スクを設ける過程を更に有することを特徴とする請求項
    11に記載の方法。
  13. 【請求項13】 前記置き換え可能ブロックと前記置
    き換え不可能ブロックとを識別する、前記データブロッ
    クのセットの中の各データブロックに於けるブロック置
    き換えビットを設ける過程を更に有することを特徴とす
    る請求項11に記載の方法。
  14. 【請求項14】 キャッシュメモリ内のデータブロッ
    クのセットを特定する過程を更に有することを特徴とす
    る請求項11に記載の方法。
  15. 【請求項15】 変換索引バッファ内のデータブロッ
    クのセットを特定する過程を更に有することを特徴とす
    る請求項11に記載の方法。
JP7348426A 1994-12-20 1995-12-18 セットアソシアティブ方式メモリの動的分画化方法及び装置 Pending JPH08235072A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/359,403 US5584014A (en) 1994-12-20 1994-12-20 Apparatus and method to preserve data in a set associative memory device
US08/359,403 1994-12-20

Publications (1)

Publication Number Publication Date
JPH08235072A true JPH08235072A (ja) 1996-09-13

Family

ID=23413659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7348426A Pending JPH08235072A (ja) 1994-12-20 1995-12-18 セットアソシアティブ方式メモリの動的分画化方法及び装置

Country Status (3)

Country Link
US (1) US5584014A (ja)
JP (1) JPH08235072A (ja)
KR (1) KR100382395B1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729712A (en) * 1996-01-26 1998-03-17 Unisys Corporation Smart fill system for multiple cache network
US6070233A (en) * 1996-01-26 2000-05-30 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in higher level cache
KR0175499B1 (ko) * 1996-09-11 1999-04-01 양승택 다중태그 구조의 계층 상호연결망에서의 브로드캐스트 전송방법
US5897655A (en) * 1996-12-10 1999-04-27 International Business Machines Corporation System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
GB9701960D0 (en) 1997-01-30 1997-03-19 Sgs Thomson Microelectronics A cache system
DE69826539D1 (de) * 1997-01-30 2004-11-04 Sgs Thomson Microelectronics Cachespeichersystem
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
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
US6000015A (en) * 1997-09-16 1999-12-07 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache
US6047358A (en) * 1997-10-31 2000-04-04 Philips Electronics North America Corporation Computer system, cache memory and process for cache entry replacement with selective locking of elements in different ways and groups
US6070229A (en) * 1997-12-02 2000-05-30 Sandcraft, Inc. Cache memory cell with a pre-programmed state
GB9727485D0 (en) 1997-12-30 1998-02-25 Sgs Thomson Microelectronics Processing a data stream
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for 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
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
JP2000200221A (ja) * 1998-10-30 2000-07-18 Nec Corp キャッシュメモリ装置及びその制御方法
US6370622B1 (en) 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
US6571323B2 (en) * 1999-03-05 2003-05-27 Via Technologies, Inc. Memory-access management method and system for synchronous dynamic Random-Access memory or the like
US6560677B1 (en) 1999-05-04 2003-05-06 International Business Machines Corporation Methods, cache memories, systems and computer program products for storing transient, normal, and locked entries in an associative cache memory
US6732234B1 (en) 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US20030041213A1 (en) * 2001-08-24 2003-02-27 Yakov Tokar Method and apparatus for using a cache memory
US7363474B2 (en) * 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US7558920B2 (en) * 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
WO2006082554A2 (en) * 2005-02-02 2006-08-10 Koninklijke Philips Electronics N.V. Data processing system comprising a cache unit
KR100654462B1 (ko) * 2005-08-24 2006-12-06 삼성전자주식회사 캐쉬 메모리를 메모리 블록으로 나누어 파일의 데이터를저장하는 캐쉬 방법 및 캐쉬 시스템
JP2007088522A (ja) * 2005-09-16 2007-04-05 Ricoh Co Ltd 画像処理装置
US7996620B2 (en) * 2007-09-05 2011-08-09 International Business Machines Corporation High performance pseudo dynamic 36 bit compare
US7917803B2 (en) * 2008-06-17 2011-03-29 Seagate Technology Llc Data conflict resolution for solid-state memory devices
US8108650B2 (en) 2009-05-29 2012-01-31 Apple Inc. Translation lookaside buffer (TLB) with reserved areas for specific sources
KR102263326B1 (ko) * 2014-09-18 2021-06-09 삼성전자주식회사 그래픽 프로세싱 유닛 및 이를 이용한 그래픽 데이터 처리 방법
US9811468B2 (en) * 2014-12-14 2017-11-07 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
US9898411B2 (en) 2014-12-14 2018-02-20 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
WO2016097805A1 (en) 2014-12-14 2016-06-23 Via Alliance Semicoductor Co., Ltd. Cache memory budgeted by ways on memory access type
US9852084B1 (en) 2016-02-05 2017-12-26 Apple Inc. Access permissions modification
US20230161740A1 (en) * 2020-04-08 2023-05-25 Ncipher Security Limited A device, a method of performing a file transaction, and a method of performing an access operation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0799508B2 (ja) * 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature

Also Published As

Publication number Publication date
KR100382395B1 (ko) 2003-07-18
US5584014A (en) 1996-12-10
KR960024989A (ko) 1996-07-20

Similar Documents

Publication Publication Date Title
JPH08235072A (ja) セットアソシアティブ方式メモリの動的分画化方法及び装置
US6920531B2 (en) Method and apparatus for updating and invalidating store data
US9430402B2 (en) System and method for providing stealth memory
EP1934753B1 (en) Tlb lock indicator
CA2022656C (en) Translation look-aside buffer for a computer memory system
US6014732A (en) Cache memory with reduced access time
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US5909696A (en) Method and apparatus for caching system management mode information with other information
EP0377970B1 (en) I/O caching
US6625714B1 (en) Parallel distributed function translation lookaside buffer
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US5214770A (en) System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command
CA1212483A (en) Data select match
JPH1196074A (ja) 交換アルゴリズム動的選択コンピュータシステム
JPH07295886A (ja) 階層メモリ、階層メモリを有するコンピュータ・システムおよび階層メモリ管理方法
US6553477B1 (en) Microprocessor and address translation method for microprocessor
EP0284751B1 (en) Cache memory
US6519684B1 (en) Low overhead method for selecting and updating an entry in a cache memory
US6598050B1 (en) Apparatus and method for limited data sharing in a multi-tasking system
US5619673A (en) Virtual access cache protection bits handling method and apparatus
EP2159707A1 (en) Arithmetic processing unit, entry control program, and entry control method
US6766435B1 (en) Processor with a general register set that includes address translation registers
WO2006024323A1 (en) A virtual address cache and method for sharing data using a unique task identifier
EP0377971A2 (en) I/O bus caching
JPH04205154A (ja) マイクロプロセッサシステム