JPH04233643A - バッファメモリ用制御装置 - Google Patents

バッファメモリ用制御装置

Info

Publication number
JPH04233643A
JPH04233643A JP3193733A JP19373391A JPH04233643A JP H04233643 A JPH04233643 A JP H04233643A JP 3193733 A JP3193733 A JP 3193733A JP 19373391 A JP19373391 A JP 19373391A JP H04233643 A JPH04233643 A JP H04233643A
Authority
JP
Japan
Prior art keywords
information
control device
replacement
limited
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
JP3193733A
Other languages
English (en)
Inventor
Yannick Deville
イァニック ドゥヴィーユ
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Koninklijke Philips Electronics NV
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 Philips Gloeilampenfabrieken NV, Koninklijke Philips Electronics NV filed Critical Philips Gloeilampenfabrieken NV
Publication of JPH04233643A publication Critical patent/JPH04233643A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

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】
【産業上の利用分野】本発明は「命令」タイプの情報及
び「データ」タイプの情報を区別する再構成可能パーテ
ィショニング手段と、記憶されている情報を少なくとも
1つの置換えアルゴリズムに従って現情報と置き換える
置換え手段とを具えるバッファメモリ用制御装置に関す
るものである。
【0002】
【従来の技術】置換え法は現在の殆どのコンピュータに
使われている階層構造メモリ及び/又は仮想メモリを具
えるデータ処理システムに通用されている。これらの置
換え法はこのようなコンピュータのページメモリ(中央
メモリ)、キャッシュメモリ及びアドレス変換器 (t
ranslation Look−aside Buf
fers TLB) の制御に用いられている。
【0003】階層構造メモリシステムはプロセッサと大
容量バックグラウンドメモリとを具えている。後者のメ
モリの本質的な低速度のために、プロセッサとバックグ
ラウンドメモリとの間に1以上の中間メモリレベルを介
挿する必要がある。一般に、メモリレベルがプロセッサ
に近づけば近づくほどその動作速度が速くなるが、その
記憶容量が小さくなる。この理由のために、各メモリレ
ベルはマスメモリ側の直前のレベルが含む情報の一部し
か含まない。これがため、プロセッサが特定のメモリレ
ベルに存在しないアドレスを供給する場合、メモリ管理
システムが下流レベルの情報をサーチし、その情報を原
アドレスレベルにロードする必要がある。しかし原アド
レスレベルが満杯の場合、メモリ管理システムが予め決
められた置換えアルゴリズムに従って当該レベルのメモ
リエレメントのうちの1つに存在する情報を除去しその
スペースに新しい情報を割り当てる必要がある。一般に
、プロセッサに最も有用な情報をプロセッサに最も近い
レベルに記憶する必要がある。これは遠く離れたレベル
の情報の取り出しは時間がかかるためである。
【0004】同様の置換え問題が仮想メモリシステムに
おいて生ずる。各アクセス毎に仮想ページナンバを物理
ページナンバに変換するのを避けるために、使用された
数個の「仮想ページ、物理ページ」対をアドレス変換器
 (Tramslation Look−aside 
Buffers TLB) と称されている小さなバッ
ファレジスタに保持しておく。新しいページがアドレス
されると、アドレス変換器から除去すべき1つのベージ
対を選択する必要がある。
【0005】種々の置換えアルゴリズムが提案されてい
る(「”Computing Surveys”, V
ol.14, No.3, 1982; ”Cach 
memories” A.J. Smith 著」参照
) 。最も代表的なアルゴリズムは次の3つである。L
RU (Least Recently Used) 
:このアルゴリズムは最も長い時間使用されてないメモ
リエレメントの内容を置換える。FIFO (Firs
t In First Out) :このアルゴリズム
は最も長い時間存在しているメモリエレメントの内容を
置換える。ランダム:このアルゴリズムはランダムにメ
モリエレメントの内容を置換える。
【0006】これらのアルゴリズムを、ミス率、即ちプ
ロセッサがアクセスしたアドレスが該当するメモリレベ
ルに存在しない割合を測定して比較すると、殆どの場合
LRUアルゴリズムが最良の結果を示すことが証明され
た。
【0007】一般に、バッファメモリは命令も数値デー
タも格納する。ここでは「情報」なる語を、2つのタイ
プの情報、即ち「命令」又は「データ」を区別しないで
示すために用いる。バッファメモリの内容(その内容が
データと命令に割当てられる割合)は、入力端子に供給
されるアドレスを考慮するが使用情報のタイプは一般に
考慮しない置換えアルゴリズムに従って時間の経過につ
れて変化する。この理由のために最適な性能が得られず
、ミスを生ずるメモリアクセスの割合がかなり高くなる
。この結果は次のように説明することができる。多くの
プログラムの実行中、プロセッサによるメモリのアクセ
スは殆どが命令に関係し、データに関係するアクセスは
数個である。このような場合には、メモリ内に含まれる
データが命令により頻繁に置換えられ、これらデータを
再び使用する必要があるときこれらデータはメモリから
除去されているのでミスを生ずることになる。逆に、他
の所定のプログラムに対しては、メモリが多量のデータ
と極く僅かの命令を含むためにミス率が高くなり得る。
【0008】命令とデータを区別してバッファメモリ内
の情報を管理する方法が「 ”IBMTechnica
l Disclosure Bulletin”;Vo
l.21, No.2, 1978; ”Fast m
emory organization”, P. F
avre 及び R. Kuhne 」に提案されてい
る。この方法は複数のモジュールから成るバッファメモ
リを用い、2つの情報バスによりこれらモジュールのい
くつかを命令に割当て、他のモジュールをデータに割当
てるものである。モジュール制御ユニットがこの割当て
を決定する。
【0009】
【発明が解決しようとする課題】しかし、このような管
理方法には欠点がある。実際上所定の構成例では命令及
びデータにそれぞれ割当てられたバッファメモリの各セ
クションが固定容量であり、各モジュールは割当てられ
たタイプの情報しか受信できない。ところで、命令及び
データに対するアクセスの割合は実行するプログラムに
従って大きく変化し得る。この理由のために、殆どのプ
ログラムに対し、2つのセクションに割当てられる容量
が良好に適応せず、その結果ミス率が単一バッファメモ
リの場合より高くなることさえある。
【0010】従って、このようなバッファメモリメモリ
の割当てを変える必要があるときは、各変更モジュール
の全情報を保存する必要がある。このような処理に必要
な時間はこのタイプの構造の無視し得ない欠点を構成す
る。更にルーティングゲートを再構成する必要がある。 ルーティングゲートが多数の場合、この処理はバッファ
メモリの動作を遅くする。この従来技術によるバッファ
メモリはデータから命令を分離して動作するが、メモリ
エレメントをいくつかのクラスにしたがって編成し(各
クラスはタグで参照する)記憶情報を参照するのに必要
な比較器の数を減少させるようにしていない。従って、
この従来のバッファメモリはアソシアティブモードで動
作するようにしたものであってクラスモードで動作する
ものでない。
【0011】更に、バッファメモリを所定の割当ての2
つのブロックに分割する手段は2つのブロックの内容の
間のコヒーレンスに問題を生ずる。実際上、バッファメ
モリの各メモリエレメントは連続アドレスを有する一群
のワードを含む。しかし、実際にはこのようなワード群
はしばしば命令とワードの両方を含んでいる。このこと
は、特定のワード群が2回ロードされ得ること、即ち最
初に命令の要求時に“命令”メモリエレメントにロード
され次いで最初のローティングが除去される前に、デー
タの要求時に“データ”メモリエレメントにロードされ
ることがあることを意味する。従って、進行中のオペレ
ーションに含まれるタイプと反対のタイプの情報アイテ
ムがこれに割当てられてないセクションにロードされ得
る。今、このような2重ローディングの場合において情
報ブロックの値を変更する必要がある場合、更新を両セ
クションにおいて同時に実施する必要がある。これがた
め、バッファメモリを2つのセクションに分割しない場
合よりシステムが一層複雑になる。更に、同一の情報が
バッファメモリの両セクションに存在することはその総
容量を潜在的に減少する。従って、発明が解決しようと
する問題は情報のタイプを考慮に入れてミス率を減少さ
せると共に上述した置換えモードに関する欠点を除去す
ることにある。
【0012】
【課題を解決するための手段】この問題を解決するため
に、本発明のバッファメモリ用制御装置においては、前
記パーティショニング手段が前記情報タイプの少なくと
も一つのタイプ(以後限定タイプという)の情報をバッ
ファメモリ内に散在するたかだか予め決めた限定記憶容
量のメモリ領域に満たし得るようにし、前記限定記憶容
量が限定タイプの記憶情報により超過されている状態に
おいて現情報アイテムをロードする必要があるとき、前
記置換え手段がこの情報アイテムを置換え可能な限定タ
イプの記憶情報アイテムと優先的に置換えることにより
ロードするようにしたことを特徴とする。
【0013】このように情報のタイプを考慮に入れるこ
とによりミス率が低下し、また情報を複写する必要がな
く実施が容易になると共にコヒーレンスが得られる。前
記置換手段は−前記限定記憶容量が超過され且つ少なく
とも1つの限定タイプ情報がアドレスされた現クラスに
対し存在するとき限定タイプ情報の置換えを制御するブ
ロックRLと、−その他の場合に任意の情報の置換えを
制御するブロックRTとを具えるものとするのが有利で
ある。このようなディストリビュート編成は実現に便利
である。バッファメモリは数クラスのメモリエレメント
で構成するのが有利である。
【0014】情報のパーティショニングを再構成するの
が望ましいときは、前記限定記憶容量の新しい値をロー
ドするだけで充分であり、既に記憶されている情報を保
存する必要なしにバッファメモリは置換えにより新しい
パーティショニングに進化していく。従って、バッファ
メモリの再構成は限定記憶容量の新しい値のローディン
グ以外に何も外部的介在を必要としないため極めて高速
に行われる。
【0015】前記限定記憶容量は更新し得る値をロード
することにより決定する。このようにすると、このよう
なバッファメモリと関連する言葉で表わされたプログラ
ムの実行において命令及び/又はデータに割当てられる
それぞれのセクションの寸法を指定することができる。 この値はプログラムの実行前に固定し、この割当てを実
行するパーティショニング手段にロードすることができ
る。パーティショニング手段は一連の予め決めた値に従
って予めプログラムすることができ、或いはプログラム
の実行中にプログラムのシーケンスに最適な値を決定す
るようにすることもできる。
【0016】限定記憶容量が超過された際の限定タイプ
の記憶情報の置換えアルゴリズムはバッファメモリ内に
記憶されている任意の他の情報を置換えるのに使用され
ている汎用置換えアルゴリズム(限定タイプのメモリエ
レメントに限定)とすることができる。これは既知のア
ルゴリズムの1つ、LRU,FIFO、ランダム又は他
の任意のアルゴリズムとすることができる。限定モード
では、特別のアルゴリズムを用いることができる。例え
ばチャネルを順に増大するインデックスの順序シーケン
スに従って分類することにによって、限定モードにおい
て置換えを実施する必要のあるチャネル(及び従ってメ
モリエレメント)の選択を例えば最低のチャネルインデ
ックスを決定することにより急速に実施することができ
る。
【0017】本発明によれば命令又はデータを制限する
ことができる。また、両タイプの情報に割当てるそれぞ
れの限定記憶容量の値を同時に定めることができる。例
えば両限定記憶容量の割合をそれらの和が 100%以
下となるように定めることができる。この場合にはバッ
ファメモリの容量の利用率が低い。両限定記憶容量の割
合はそれらの和が 100%以上になるように定めるの
が好適である。このようにすると、一方のタイプの情報
が一時的に少なく存在するときにこのタイプの情報に使
用し得るメモリスペースを他方のタイプの情報に移すこ
とができる。これがためバッファメモリは両タイプの情
報を同時に一層良好に考慮するものとなる。
【0018】
【実施例】以下、図面を参照して本発明を実施例につき
詳細に説明する。図1はバッファメモリの必須の素子を
示す簡略図を示すものであるが、これに限定されるもの
でない。このバッファメモリは各々4つのクラスK0,
 K1, K2, K3のメモリエレメントを含む2つ
のチャネルV0, V1を具える。各クラスは各チャネ
ルごとに1つのメモリエレメントを含み、図示の例では
2つのメモリエレメントを含む。チャネルV0はメモリ
エレメント500, 510, 520, 530を含
む。チャネルV1はメモリエレメント501, 511
, 521, 531を含む。クラスK0はメモリエレ
メント500, 501を含み、以下同様である。
【0019】各メモリエレメント、例えば500 は数
個の記憶位置: −プレゼンスビットP用の記憶位置、 −記憶タグ用の記憶位置、 −連続アドレスを有する均等な複数のワードのような情
報を含むデータブロックBL用の記憶位置、を具える。 各クラスK0, K1, K2,K3にそれぞれ関連フ
ィールドERT0,ERT1,ERT2,ERT3は使
用する置換えエルゴリズムに従って各クラスのメモリエ
レメントの占有状態を決定するものである。これらフィ
ールドERTはバッファメモリのメモリエレメントの各
々に固有のものとすることもできる。
【0020】データはデータフィールドBLを供給する
データバス5Dにより伝送される。アドレスは3つのフ
ィールド:入力アドレスタグフィールドCE、入力アド
レスクラスインデックスフィールドK、データフィール
ドBL内のワードを識別するワードインデックスフィー
ルドIM、を供給するアドレスバス5Aにより供給され
る。フィールドIM及びプレゼンスビットPはなくても
よい。プレゼンスビットPがないときは各クラスと関連
するフラグを用いる別の解決法がある。
【0021】ペロセッサ(図示せず)はバッファメモリ
と協働しアドレスをバス5Aに供給する。プロセッサは
データワードをバス5Dに供給し、或いは又バス5D上
のデータワードを受信することができる。デコーダ55
が入力アドレスからクラスインデックスを抽出し、対応
するクラスを選択する。この場合、このクラスのメモリ
エレメントが駆動される。例えば、クラスK0が選択さ
れると、メモリエレメント500 及び501 が駆動
される。このときこれらメモリエレメントはそれらのプ
レゼンスビットP(もしあれば)及びそれらの記憶タグ
CSを制御装置10に伝送する。この制御装置は入力ア
ドレスの入力タグCEも受信する。図1では単一の制御
装置10をバッファメモリ全体に対し設けている。これ
はハードウエアの複雑化が最低になる利点を有する。1
つもしくはそれ以上のクラスに対し別々の制御装置を用
いることもでき、これは実行速度が向上する利点を有す
る。
【0022】アドレスのサーチがサクセス(成功)の場
合、サクセスを生じたメモリエレメント内のデータBL
の読出し又は該メモリエレメントへのデータBLの書込
みが実行されると共に関連するERTフィールドが更新
される。アドレスのサーチがミス(失敗)の場合には、
置換えがERTフィールドを考慮してそのタグCS及び
そのプレゼンスビットP(もしあれば)を有するデータ
フィールドBLを書込むことにより実行される。制御装
置10が有効な置換えアルゴリズムに従って置換えるべ
きメモリエレメントを選択する。
【0023】本発明においては、各メモリエレメント(
例えばメモリエレメント500)に関連する種々のフィ
ールドのビットを図2に示すように変更する。フィール
ドP,CS,BL及びERTに加えてフィールドERL
及びTを用いる。フィールドTはBLに記憶されている
情報が命令タイプかデータタイプかを示すビットである
。 このフィールドはバッファメモリに情報を供給するプロ
セッサから到来する。フィールドERLは置換えの実行
中における対応するメモリエレメントの占有状態を示す
ものであるが、本発明に特有の限定モードに関連するオ
ペレーションのみを考慮したものである。
【0024】図3は、バス5Aによりアドレスされるメ
モリエレメント500, 501, 502, 503
に関連する単一のクラスK0に割当てられた制御装置1
0を示す。各メモリエレメントはその記憶タグを比較器
120, 121, 122, 123にそれぞれ伝送
し、これら比較器はこれらタグを入力アドレスタグとそ
れぞれのペレゼンスビットP0〜P3の制御の下で比較
する。
【0025】ミスの場合には全ての比較器の出力(SV
0〜SV3)が非活動状態になる。サクセスの場合には
これら比較器の1つの出力が活動状態になる。信号 S
V0〜SV3 を受信するNORゲート16は現在与え
られたアドレスがミスの場合にこれを信号する信号S/
Eを出力する。
【0026】制御はパーティショニング手段30及び置
換え手段40により実行される。パーティショニング手
段30はプロセッサ(図2)から到来するバス5Aから
現アドレスに属するタイプビットTcを受信するカウン
タ301 を具える。このカウンタ301 は予め決め
た限定タイプの情報に割当てる。
【0027】カウンタの値により表わされる、バッファ
メモリに実際に格納されている限定タイプの情報の量を
比較器303 において、レジスタ305 に格納され
ているこの限定タイプのために用意された限定記憶容量
の値と比較する。この最大値が超過されるときこの比較
器は低出力信号を発生する。この最大値が超過されない
ときこの比較器は高出力信号を発生する。比較器303
 の出力をORゲート309 に供給する。このORゲ
ートは、現アドレスにより活動化されたクラスKのタイ
プビットTkの全てを受信するNORゲート307 の
出力も受信する。NORゲート307 は活動化された
クラスのメモリエレメントのどれも限定タイプの情報を
記憶してない場合にのみ高出力信号を発生し、他の全て
の状態では低出力信号を発生する。
【0028】ORゲート309 は、置換えを活動クラ
スのメモリエレメントの全体(W)に亘って実施する必
要があるのか、該クラスの限定セクション(L)に亘っ
て実施する必要があるのかを決定する信号W/Lを出力
する。この信号W/Lを全体に対する置換えを行うユニ
ット401 と、限定セクションに対する置換えを行う
ユニット403 とを具える置換え手段40に供給する
。信号W/Lが低の場合、この信号はインバータ405
 を介してユニット403 のみを活動化する。これが
ため、限定タイプの情報の量がその最大値をまだ越えな
い場合、又は活動クラスのメモリエレメントのどれも限
定情報を含んでいない場合には活動クラスの全体がサー
チされる。
【0029】ユニット401 は慣例の置換アルゴリズ
ム、例えばLRU,FIFO又はランダムアルゴリズム
を選択されたクラスの全メモリエレメントに対し実行す
る。 この目的のために、このユニットはERTフィールドを
受信する。例えばこのERTフィールドによりLRUア
ルゴリズムの場合には、そのメモリエレメントが最も長
時間使用されてないものか否かを決めることができる。 ユニット401 はミスの場合にのみ活動状態になる信
号S/Eにより活動化される。ユニット401 はバス
320 に置換え用に選択したメモリエレメントのアド
レスを供給する。この置換えステップは前記限定記憶容
量にまだ到達してないとき又は選択されたクラス内のメ
モリエレメントのどれも限定タイプの情報を含んでいな
いときに実行される。
【0030】ユニット403 は、バッファメモリ内の
限定タイプの情報量が限定タイプ情報に使用し得る限定
記憶容量を越え且つ選択されたクラスが少なくとも1つ
の限定タイプのメモリエレメントを含むときに動作する
。ユニット403 はミスの場合に活動状態のS/E信
号を受信すると共に、活動化されたクラスの全メモリエ
レメントからERLフィールド及びそれらのタイプビッ
トTkを受信する。ERLフィールドは置換えを使用す
るアルゴリズムに従って実行する必要がある順序を示し
、ビットTkにより正しいタイプTを有するメモリエレ
メントを決定する。選択したメモリエレメントのアドレ
スをバス320 によりメモリエレメントに伝送する。 このアドレスはカウンタ301 にも到達し、このカウ
ンタはバスTkから、選択したメモリ素子のタイプも受
信する。この置換えを考慮に入れるために、この選択し
たメモリエレメントの現タイプが限定タイプであり、且
つ新しい情報が限定タイプでない場合にはこのカウンタ
は1だけデクメントされる。他方、現アドレスのビット
Tcが限定タイプでないことを示し、且つ新しい情報が
限定タイプである場合にはこのカウンタは1だけインク
リメントされる。旧及び新情報が同一タイプの場合には
カウンタの位置は変化しない。
【0031】図3においても図1と同様に図を簡単且つ
明瞭にするために種々の素子の同期回路は図示してない
。このようにしてバッファメモリを限定タイプに割当て
られた情報量まで限定タイプの情報アイテムで満たすこ
とができる。実際にはこの情報量を一時的に僅かに越え
てもよい。実際上、種々のプログラムにおいてデータブ
ロックBLは両タイプの情報を含み得る。メモリ素子に
割当てられるタイプは置換えを生じた情報のタイプにな
る。これがため、限定タイプの最大量に僅かな追加の残
留レベルを付加することができる。
【0032】限定タイプの情報が十分多量に存在しない
場合には他方のタイプの情報がバッファメモリ内に、こ
のメモリが 100%満たされるまで自動的にロードさ
れる。2つのタイプの情報の各々に関し2つの限定記憶
容量値を定めることができる。(別のタイプの情報が与
えられない場合には)バッファメモリ内に未使用スペー
スが残らないようにするために、2つの限定記憶容量の
和を 100%より大きくするのが好ましい。このよう
にすると、バッファメモリの一層良好なダイナミック管
理が得られる。限定記憶容量の値はレジスタ305 (
図3) 内の値を変えることにより容易に更新させるこ
とができる。 2つの値を発生させる必要があるときは、パーティショ
ニング手段及び置換え手段の一部分を二重化すればよい
。こさらの値は時間の経過につれて変更することもでき
る。
【0033】図4はプログラムの実行中における命令I
とデータDの割合の変化の一例を示すものである。プロ
セッサによるプログラムの実行の開始時には命令Iの割
合が高く、データの割合が低い。この相対的割合は時間
とともに変化し、次いで逆になる。このとき限定記憶容
量の値の更新を実行し得る。これは予め決めた値の外部
シーケンスから又はプロセッサにより実行されるプログ
ラムと関連してダイナミックにプログラムされた値の中
から新しい限定記憶容量をバッファメモリ内に導入する
ことにより実行するとができる。
【0034】図5は限定タイプの情報を特定の処理アル
ゴリズムに従って処理するユニット403 の簡単な実
施例を示し、本例では1クラス当り4メモリエレメント
である。本例では置換え順序はこのユニットの構造に固
有であり、ERLフィールドは存在しない。1クラス4
メモリエレメントを具える本例ではユニット403 は
活動化されたクラスKに対しタイプビットT1K , 
T2K , T3K 及び T4Kを受信する。第1N
ORゲート61がT1K 及び T2Kの反転を受信す
る。第2NORゲート62が T1K ,T2K 及び
T3K の反転を受信する。第3NORゲート65がT
1K , T2K , T3K 及びT4K の反転を
受信する。
【0035】各々3つの状態を有する4つの出力段60
, 62, 64, 66はそれぞれ −T1K  −NORゲート61の出力 −NORゲート63の出力 −NORゲート65の出力 を受信する。
【0036】W/L信号が活動状態(限定モード)であ
り、信号S/Eが活動状態である場合(ミス)は、これ
ら4つの出力段はそれぞれの入力端子に存在する信号を
通過させる。逆の場合にはこれら出力段は高インピーダ
ンス状態になる。この回路構成によればこの回路は順序
付けられた一連のメモリ素子のうちの最初の選択可能メ
モリエレメントを選択する(最低チャネルインデックス
の決定)。このように、メモリエレメントを置換えが所
望の順序で実行されるように順序づけることができる。
【0037】上述のバッファメモリに使用する情報管理
方法を図5にフローチャートで示してある。 ステップ1:初期化:カウンタ301 の値CLを零に
リセットし;限定記憶容量の値を記憶し;各メモリエレ
メントに対しそのプレゼンスビットPを非占有状態(例
えば0)にセットすると共にそのタイプビットTを非限
定状態(例えば0)にセットする。
【0038】ステップ2:入力アドレスのエントリ;ス
テップ3:クラスの選択及び出力アドレスタグの決定: ステップ4:このアドレスに対するサクセスのサーチ:
クラスのメモリエレメントに対しそれらの記憶タグと現
アドレスのタグCEの比較及びプレゼンスビットPの検
査が行われる。
【0039】サクセスである場合(ブランチ10)、サ
クセス条件を満足するメモリエレメントの選択(ステッ
プ11)、データの読出し又は書込み(ステップ12)
、次いで置換え装置内のバッファメモリの状態の更新が
行われる。クラスの全メモリエレメントに対しミスであ
る場合、置換えプロシージャを実施する必要がある(ブ
ランチ20)。
【0040】ステップ21:カウンタに含まれる値と限
定記憶容量の値との比較及び現アドレスで選択されたク
ラスのメモリエレメントのタイプの検査;カウンタの値
が限定記憶容量より低いとき、又はどのメモリエレメン
トも限定タイプでないとき、置換えモードを基本置換ア
ルゴリズムRTにより決定する(ブランチ25)(ステ
ップ211)。カウンタの値が限定記憶容量の値より高
く且つ選択し得る少なくとも1つの限定タイプのメモリ
エレメントが存在するとき、置換えモードを限定モード
RLにより決定する(ブランチ26)(ステップ212
)。一方又は他方の置換えアルゴリズムの実行後、種々
の更新処理が必要である(カウンタ、タイプビット−−
−−)(ステップ22) 。ステップ5は(必要に応じ
)限定記憶容量の値を変更するステップを示す。これら
の値は個々に、又は順次に入力することができ、またプ
ログラムすることができる。
【0041】パーティショニング手段及び/又は置換え
手段はプログラムすることができる。最も一般的な場合
には中央処理装置がソフトウエアを用いて現在の限定タ
イプの情報量を決定し、次いでこれをこの限定タイプに
対し用意された限定記憶容量と比較するようにする。現
在の限定タイプの情報量を(バッファメモリ又は他のメ
モリ)の記憶位置に書込む。ソフトウエアは選択された
クラス内の限定タイプのメモリエレメントの存在の検出
も実行する。
【0042】本発明により得られるミス率に対する性能
を各メモリ素子が各4バイトの4ワードを具える総容量
が 256バイトのバッファメモリについて測定した。 基本置換えアルゴリズムとしてLRU置換えアルゴリズ
ムを用いて全体モードの置換えを実行した。最小チャネ
ルインデックスの決定を実施する置換えアルゴリズムを
用いて限定モードの置換えを実行した。結果を表Iに示
す。 この表において限定記憶容量の値QLはバッファメモリ
の総容量の分数値で表わしてある。結果も1クラス当り
のメモリ素子の数Eの関数で示してある。
【0043】表  I
【0044】
【0045】本発明を適用してないLRU基本アルゴリ
ズムの結果は16/16に等しい限定記憶容量の値QL
に対応する列に示す結果に等価である。他の列は 0/
16〜15/16のQLに対する結果を示す。所定の値
の限定記憶容量に対し結果が最適になる。これらの最適
結果を表IIに、LRUにより得られるミス率と対比し
て示す。1クラス当りのメモリエレメントの数Eを多く
すると、本発明による改善が大きくなり、例えばE=1
6のときミス率が半分以下になることが観測された。
【図面の簡単な説明】
【図1】バッファメモリの全体的構成を示す簡略図であ
る。
【図2】本発明によるメモリエレメントに関連する情報
フィールドの全体図である。
【図3】本発明バッファメモリの制御装置の構成図であ
る。
【図4】プログラムの実行における命令とデータの相対
的割合の変化を時間の関数として示す図である。
【図5】簡単化した実施例において限定タイプの情報の
置換えに用い得るチャネル選択回路の回路図である。
【図6】本発明バッファメモリの管理方法の種々のステ
ップを示すフローチャートである。
【符号の説明】
5A  アドレスバス 5D  データバス 10  制御装置 500, 501,−−−530, 531  メモリ
エレメント55  アドレスデコーダ 30  パーティショニング手段 301   カウンタ 303   比較器 305   レジスタ 307   NORゲート 309   ORゲート 40  置換え手段 401, 403  置換えユニット

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】  「命令」タイプの情報及び「データ」
    タイプの情報を区別する再構成可能パーティショニング
    手段(30)と、記憶されている情報を少なくとも1つ
    の置換えアルゴリズムに従って現情報と置き換える置換
    え手段(40)とを具えるバッファメモリ用制御装置お
    いて、この問題を解決するために、本発明のバッファメ
    モリ用制御装置においては、前記パーティショニング手
    段(30)が前記情報タイプの少なくとも一つのタイプ
    (以後限定タイプという)の情報をバッファメモリ内に
    散在するたかだか予め決めた限定記憶容量のメモリ領域
    に満たし得るようにし、前記限定記憶容量が限定タイプ
    の記憶情報により超過されている状態において現情報ア
    イテムをロードする必要があるとき、前記置換え手段(
    40)がこの情報アイテムを置換え可能な限定タイプの
    記憶情報アイテムと優先的に置換えることによりロード
    するようにしたことを特徴とするバッファメモリ用制御
    装置。
  2. 【請求項2】  前記置換え手段は−前記限定記憶容量
    が超過され且つ少なくとも1つの限定タイプ情報がアド
    レスされた現クラスに対し存在するとき限定タイプ情報
    の置換えを制御するブロックRLと、−その他の場合に
    任意の情報の置換えを制御するブロックRTとを具える
    ことを特徴とする請求項1記載の制御装置。
  3. 【請求項3】  限定タイプの記憶情報の置換えを特定
    の置換えアルゴリズムに従って実施することを特徴とす
    る請求項1又は2記載の制御装置。
  4. 【請求項4】  前記限定記憶容量の値を更新可能にし
    たことを特徴とする請求項1,2又は3記載の制御装置
  5. 【請求項5】  前記限定記憶容量の少なくとも1つの
    値をパーティショニング手段にロードするようにしたこ
    とを特徴とする請求項1〜4の何れかに記載の制御装置
  6. 【請求項6】  前記パーティショニング手段(30)
    が限定記憶容量の値を決定するようプログラムしたこと
    を特徴とする請求項1〜4の何れかに記載の制御装置。
  7. 【請求項7】  両タイプの情報に割当てた限定記憶容
    量の割合の和を 100%より大きくしたことを特徴と
    する請求項1〜6の何れかに記載の制御装置。
  8. 【請求項8】  前記対応する限定記憶容量が超過され
    た場合に、限定タイプの情報アイテムの置換えを、順序
    づけた一連のチャネルインデックスの第1チャネルイン
    デックスを有する選択可能メモリエレメントを選択する
    ことにより実施するようにしたことを特徴とする請求項
    1〜7の何れかに記載の制御装置。
  9. 【請求項9】  前記パーティショニング手段(30)
    及び/又は置換え手段(40)はプログラムド装置であ
    ることを特徴とする請求項1〜8の何れかに記載の制御
    装置。
  10. 【請求項10】  プロセッサ手段と、二次記憶手段と
    、前記プロセッサ手段と前記二次記憶手段との間に介挿
    されたバッファメモリとを具えると共に請求項1〜9の
    何れかに記載の制御装置を具えることを特徴とするデー
    タ処理システム。
JP3193733A 1990-07-10 1991-07-09 バッファメモリ用制御装置 Pending JPH04233643A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9008746A FR2664719A1 (fr) 1990-07-10 1990-07-10 Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
FR9008746 1990-07-10

Publications (1)

Publication Number Publication Date
JPH04233643A true JPH04233643A (ja) 1992-08-21

Family

ID=9398541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3193733A Pending JPH04233643A (ja) 1990-07-10 1991-07-09 バッファメモリ用制御装置

Country Status (4)

Country Link
US (1) US5537571A (ja)
EP (1) EP0466265A1 (ja)
JP (1) JPH04233643A (ja)
FR (1) FR2664719A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649154A (en) * 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
JPH07319766A (ja) * 1994-05-19 1995-12-08 Internatl Business Mach Corp <Ibm> L2キャッシュ内容モード変更システムおよび方法
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory
US5793941A (en) * 1995-12-04 1998-08-11 Advanced Micro Devices, Inc. On-chip primary cache testing circuit and test method
GB2311880A (en) * 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
US5737749A (en) * 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US6058456A (en) * 1997-04-14 2000-05-02 International Business Machines Corporation Software-managed programmable unified/split caching mechanism for instructions and data
DE69815482T2 (de) 1997-12-24 2004-04-29 Texas Instruments Inc., Dallas Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
US6070202A (en) * 1998-05-11 2000-05-30 Motorola, Inc. Reallocation of pools of fixed size buffers based on metrics collected for maximum number of concurrent requests for each distinct memory size
US6308147B1 (en) * 1998-05-21 2001-10-23 Hewlett-Packard Company Data structure synthesis in hardware using memory transaction translation techniques
US6378044B1 (en) * 1999-09-22 2002-04-23 Vlsi Technology, Inc. Method and system for cache replacement among configurable cache sets
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6799248B2 (en) 2000-09-11 2004-09-28 Emc Corporation Cache management system for a network data node having a cache memory manager for selectively using different cache management methods
US6751707B2 (en) * 2002-05-06 2004-06-15 Sony Computer Entertainment Inc. Methods and apparatus for controlling a cache memory
US7353334B2 (en) * 2002-08-19 2008-04-01 Aristos Logic Corporation Method of increasing performance and manageability of network storage systems using optimized cache setting and handling policies
US6907453B2 (en) * 2002-09-18 2005-06-14 Broadcom Corporation Per CoS memory partitioning
US8060915B2 (en) 2003-12-30 2011-11-15 Entrust, Inc. Method and apparatus for providing electronic message authentication
US9281945B2 (en) * 2003-12-30 2016-03-08 Entrust, Inc. Offline methods for authentication in a client/server authentication system
US8966579B2 (en) 2003-12-30 2015-02-24 Entrust, Inc. Method and apparatus for providing authentication between a sending unit and a recipient based on challenge usage data
US8612757B2 (en) * 2003-12-30 2013-12-17 Entrust, Inc. Method and apparatus for securely providing identification information using translucent identification member
US9191215B2 (en) * 2003-12-30 2015-11-17 Entrust, Inc. Method and apparatus for providing authentication using policy-controlled authentication articles and techniques
US8230486B2 (en) * 2003-12-30 2012-07-24 Entrust, Inc. Method and apparatus for providing mutual authentication between a sending unit and a recipient
EP1870813B1 (en) * 2006-06-19 2013-01-30 Texas Instruments France Page processing circuits, devices, methods and systems for secure demand paging and other operations
US9740409B2 (en) * 2013-12-13 2017-08-22 Ineda Systems, Inc. Virtualized storage systems

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb
WO1984002799A1 (en) * 1982-12-30 1984-07-19 Ibm A hierarchical memory system including separate cache memories for storing data and instructions
US4607331A (en) * 1983-05-13 1986-08-19 Motorola, Inc. Method and apparatus for implementing an algorithm associated with stored information
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
US4648033A (en) * 1984-09-07 1987-03-03 International Business Machines Corporation Look-aside buffer LRU marker controller
US5062055A (en) * 1986-09-02 1991-10-29 Digital Equipment Corporation Data processor performance advisor
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5109496A (en) * 1989-09-27 1992-04-28 International Business Machines Corporation Most recently used address translation system with least recently used (LRU) replacement
US5257360A (en) * 1990-03-23 1993-10-26 Advanced Micro Devices,Inc. Re-configurable block length cache
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
US5247653A (en) * 1990-08-17 1993-09-21 Seagate Technology, Inc. Adaptive segment control and method for simulating a multi-segment cache

Also Published As

Publication number Publication date
US5537571A (en) 1996-07-16
FR2664719A1 (fr) 1992-01-17
EP0466265A1 (fr) 1992-01-15

Similar Documents

Publication Publication Date Title
JPH04233643A (ja) バッファメモリ用制御装置
KR102456085B1 (ko) 로우 버퍼 충돌을 감소시키기 위한 동적 메모리 재매핑
US20250045202A1 (en) Memory system and method for controlling nonvolatile memory
US3588839A (en) Hierarchical memory updating system
US4779189A (en) Peripheral subsystem initialization method and apparatus
US3820078A (en) Multi-level storage system having a buffer store with variable mapping modes
US5274790A (en) Cache memory apparatus having a plurality of accessibility ports
US4736293A (en) Interleaved set-associative memory
US5317738A (en) Process affinity scheduling method and apparatus
US9811465B2 (en) Computer system and cache control method
US6401181B1 (en) Dynamic allocation of physical memory space
US6430666B1 (en) Linked list memory and method therefor
US11734015B2 (en) Cache systems and circuits for syncing caches or cache sets
US20220276870A1 (en) Extended tags for speculative and normal executions
US11048636B2 (en) Cache with set associativity having data defined cache sets
US10817186B2 (en) Memory system
US11010288B2 (en) Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution
US11200166B2 (en) Data defined caches for speculative and normal executions
US11194582B2 (en) Cache systems for main and speculative threads of processors
US6862663B1 (en) Cache having a prioritized replacement technique and method therefor
US5241639A (en) Method for updating data from a cache address location to main memory and maintaining the cache address in registration memory
WO2024022205A1 (en) Processor-dependent address translation for host memory buffer
JPS5928287A (ja) キヤツシユバツフア制御装置
EP4120087A1 (en) Systems, methods, and devices for utilization aware memory allocation
JPH1091527A (ja) 記憶装置および記録媒体