JPH0799508B2 - キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム - Google Patents

キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム

Info

Publication number
JPH0799508B2
JPH0799508B2 JP3180296A JP18029691A JPH0799508B2 JP H0799508 B2 JPH0799508 B2 JP H0799508B2 JP 3180296 A JP3180296 A JP 3180296A JP 18029691 A JP18029691 A JP 18029691A JP H0799508 B2 JPH0799508 B2 JP H0799508B2
Authority
JP
Japan
Prior art keywords
cache
pool
size
pools
subset
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.)
Expired - Lifetime
Application number
JP3180296A
Other languages
English (en)
Other versions
JPH06318176A (ja
Inventor
イーガル、メゴリー‐コーヘン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 IL95993A external-priority patent/IL95993A0/xx
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06318176A publication Critical patent/JPH06318176A/ja
Publication of JPH0799508B2 publication Critical patent/JPH0799508B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュ記憶機構と
そのキャッシュ記憶機構の動的区分機能をもつキャッシ
ュ・マネージャを有しているデータ処理システムに関す
る。
【0002】
【従来の技術および発明が解決しようとする課題】キャ
ッシュ記憶機構が複数の処理間で共有され、任意の時点
で各処理がその計画されたキャッシュ動作に応じてn個
のクラスの中の1つに分類されるデータ処理システムで
は、キャッシュ記憶機構をプールに区分するのが有利で
ある。その場合、前記の処理がキャッシュ全体を共有す
るよりも、それらのプールが処理の各クラスに割り当て
られる。キャッシュが複数のプールに分割される場合、
準備された複数のプールから十分な利益を得るためにそ
れらのプールのサイズを決定する方法に関する問題が発
生する。
【0003】キャッシュ記憶機構は多くのアプリケーシ
ョンで使用されている。たとえば、データ・キャッシ
ュ、制御機構キャッシュ、変換ルックアサイド・キャッ
シュなどである。本発明は、複数のタイプの処理が競合
する任意の種類のキャッシュに関する。用語「処理」の
意味は考慮されたキャッシュのタイプによる。たとえ
ば、制御機構キャッシュでは、「処理」はアプリケーシ
ョンがディスクにアクセスすることを意味することもあ
る。
【0004】キャッシュCは競合する処理により使用さ
れ、任意の時点で各処理がn個のクラスClないしC
の中の1つに分類されると仮定する。ただし、同じ
クラスに属する処理は同じキャッシュ動作を示しやす
い。たとえば、データ・キャッシュの場合は、あるファ
イルにアクセスするすべてのタスクは連続して同じクラ
スに属するものとして自然に分類できる。
【0005】キャッシュ入力はしたがって任意の時点で
n個の部分集合CないしCに区分できる。部分集合
はクラスClの処理により最後に参照されたすべ
ての入力を表す。各部分集合Cが個別に管理されてい
るときには、各部分集合が個別のキャッシュであるよう
に、「キャッシュ・プール」として参照される。上述の
ように、キャッシュ全体を共有するよりもキャッシュを
n個のプールに区分する方が通常、有利である。
【0006】キャッシュ区分について2つの方法が、論
文「競合する処理間でのキャッシュ・メモリの割当て
(Allocation of Cache Memory among Competing Proce
sses)」IBMテクニカル・ディスクロージャー・ブル
テン、31巻、1989年2月第9号、204ないし2
09頁に記載されている。どちらの方法とも、2つ以上
の処理の間でキャッシュの最適固定割当て、すなわち、
処理が安定した状態に達すると競合する処理間でキャッ
シュを分割する方法、を取り扱う。どちらの方法も、す
べて可能なキャッシュのサイズに対して各プロセスのミ
ス比関数の知識が要求される。言い換えれば、こうした
方法には、動的な場合に不適応になるキャッシュのサイ
ズすべてに関して各キャッシュ・プール動作の知識が必
要になる。
【0007】しかし、実際、キャッシュ記憶機構の用途
は常に静的であるわけではない。必要なことは、常に変
化している処理の数とキャッシュの用途または動作を考
慮したキャッシュの動的な区分に関する解法である。米
国特許第4463424号は、LRU/MRU(最低使
用頻度/最高使用頻度)が管理されたメモリを入出力参
照を追跡することにより並行連続処理の中で動的に割り
当てする方法に関する。この方法は、同じクラス中のす
べての項目が同じスタック距離をもつように比較的少数
(p+1)の等価クラスに区分されたLRUスタック
に、ページ可能データのグループ中の項目をマッピング
することを含む。キャッシュ・サイズは、実現可能なキ
ャッシュ・サイズの小さな集合(p)からしか選択され
ない。本発明の目的は、柔軟で適応性のあるキャッシュ
の区分を提供することにある。
【0008】
【課題を解決するための手段】本発明の第1実施例で
は、キャッシュ記憶機構とキャッシュ・マネージャを含
むデータ処理システムにおいて、最急勾配降下方法(ste
epest descent method)によりキャッシュの区分を動的
に調整するステップを含む処理の各クラスに関してキャ
ッシュ記憶機構を複数のキャッシュ・プールに動的に区
分する方法が実施される。
【0009】最急勾配降下方法とは、文献等で一般に広
く記載されているような特定の反復最小化技術のことで
ある。この技術は, 1975年ニューヨーク、John Wil
ey and Sons 社刊、C. Nelson Dorny 著、「モデルおよ
び最適化に関するベクトル空間研究(A Vector Space A
pproach to Models and Optimization)」(487ない
し501頁参照)および1984年、カリファオルニ
ア、Addion-Weseley社刊、David G. Luenberger 著、
「線形および非線形プログラミング(Linear and Nonli
near Programming)」(214頁ないし220頁参照)
に記載されている。最急勾配降下方法の使用は広く文献
に記載されているが、その技術はこれまでキャッシュ記
憶機構の区分には示唆されなかった。最急勾配降下方法
を使用すれば、キャッシュ記憶機構の区分に従来の方法
より大きな利点が提供できる。特に、最急勾配降下方法
は、多数のキャッシュ・プールが多数ある場合でさえ、
効率的なキャッシュの動的区分を実現可能である。
【0010】米国特許第4463424号で採用された
方式は、キャッシュ・プールの数が少ない場合にのみ実
用的である。この理由は、この従来の方式は、参照項目
当たり2p+1項目を移動し、変更し、または走査する
ことを必要とするうえに、キャッシュ区分が複雑で、
(p+1)q となるためである。ここで、pは実現可能
なキャッシュ・サイズの数であり、qは(本明細書で
は)キャッシュ・プールの数である。各キャッシュ・フ
レームが4K(代表的な例)である64Mデータ・キャ
ッシュと3つのプールは、複雑であり(16K)3 =4
0960憶回演算を行なう。この従来方式では、キャッ
シュ参照当たりp個の入力の更新は、pの値が小さくな
いと行なえない。この従来の方式の制御構造に必要な記
憶機構は大きく、p・qである。
【0011】これに対して、最急勾配降下方法を使用す
ると、キャッシュ区分はそれほど複雑にはならず、わず
かq・q(上記の例では9)である。わずか2フィール
ドしか参照された項目毎に更新されない(なお、上記フ
ィールドはキャッシュ・プールへの参照の数fとキャ
ッシュ・ミスmとなった参照の数用のである)。本発
明の方法は、可能なキャッシュ・サイズの数を制限しな
い。本発明に必要な制御構造の記憶機構のサイズは、q
に比例している。
【0012】最急勾配降下方法によりキャッシュ区分を
動的に調整するステップには次の反復ステップを含める
ことが好ましい。すなわち、 a)各キャッシュ・プールに関して、キャッシュ・プー
ルへの参照の数とキャッシュ・ミスとなった参照の数を
追跡するステップ、および、 b)重み付けられたミス比関数に関して、個々のキャッ
シュ・サイズの和は総キャッシュ・サイズに等しくなる
という条件下で、前記条件を表す関数的ハイパー面上に
投影された最急勾配降下の方向にベクトルを定めること
によりキャッシュ区分を調整するステップ、である。
【0013】ステップ(a)では、第1データ・フィー
ルドと第2データ・フィールドをもつ各キャッシュ・プ
ール用の制御ブロックを維持するステップを有している
のが好ましい。この第1データ・フィールドの内容はそ
のキャッシュ・プールへの各アクセスの直後に増分さ
れ、第2データ・フィールドの内容はこうしたアクセス
がキャッシュ・ミスとなる毎に増分される。
【0014】少なくとも複数の繰返し回において、ステ
ップ(b)は次の部分ステップを有しているほうが好ま
しい。すなわち、(b)(i)どのキャッシュ・プール
が、対応する所定のサイズ以上のサイズをもつかを決定
する部分ステップ、(b)(ii)部分ステップ(b)
(i)においてのみ決定されたキャッシュ・プールの部
分集合にたいして、重み付けられたミス比関数に関し
て、個々のキャッシュ・サイズの和が部分集合のキャッ
シュ・プールのサイズの和に等しいという条件下で、前
記条件を表す関数的ハイパー面上に投影された最急勾配
降下の方向にベクトルを定めることによりキャッシュ区
分を調整する部分ステップ、および(b)(iii)キ
ャッシュ・プールの部分集合のキャッシュ・プール・サ
イズがすべて対応する所定のサイズ以上である場合、ス
テップ(b)を終了し、そうでない場合、キャッシュ・
プールの新しい部分集合にたいして再帰的に部分ステッ
プ(b)(i)から(b)(iii )を繰り返す部分ステ
ップ、である。
【0015】本発明の第2の実施例では、キャッシュ記
憶機構と、複数の処理のそれぞれのクラスにたいして、
キャッシュ記憶機構を複数のキャッシュ・プールに動的
に区分するキャッシュ・マネージャとを含むキャッシュ
記憶システムが実施される。ただし、このキャッシュ・
マネージャは、最急勾配降下方法により動的にキャッシ
ュ区分を調整する最急勾配降下論理を含む。本発明はさ
らに、上記のように定義されたキャッシュ記憶システム
を含むデータ処理システムを提供する。データ処理シス
テムは、大型コンピュータ・システム、コンピュータ・
ワークステーション、または複数の処理がキャッシュ記
憶機構の使用をもとめて競合する他のデータ処理システ
ムである。
【0016】
【実施例】第1図では、本発明が、複数の競合処理14
間で共有する複数のキャッシュ・プール1、2、3に区
分されるキャッシュ12用に構成されたキャッシュ・マ
ネージャをもつキャッシュ記憶システムに適応されてい
る。キャッシュ・マネージャと競合する処理の間には、
通常、ファイル管理システムまたはデータベース管理シ
ステム(DBMS)(図示せず)の形を取った他のレベ
ルの論理が存在する。しかし、本明細書の読者は、一般
的な記憶機構16(すなわち、主記憶機構または補助記
憶機構)に通常記憶されたデータへのアクセスを増速す
るキャッシュ・メモリの使用方法と従来の管理を熟知し
ていると考えて、この全体的な背景の記憶機構の記載は
本明細書では省略してある。
【0017】キャッシュ記憶システムは、データ処理シ
ステムの一部に相当する。データ処理システムは、大型
コンピュータ・システム、コンピュータ・ワークステー
ション、または複数の処理がキャッシュ記憶機構の使用
をもとめて競合する他のデータ処理システムである。
【0018】以下の記載は、本発明に応じてキャッシュ
記憶機構の区分への最急勾配降下方法の適用に向けられ
る。以下の記載において、「c」はキャッシュ12のサ
イズを示し、同様に「c」はキャッシュ・プールiの
サイズを示す。
【0019】従来のキャッシュ・マネージャのタスク間
では、キャッシュの用途が監視されていた。本発明の場
合では、あるキャッシュ区分c=c+...+c
たいして、キャッシュ・マネージャは各キャッシュ・プ
ールの制御ブロックを維持する。図2はこうした制御ブ
ロックを示す。そのブロックは以下のフィールドを含
む。 最終_プール_サイズ Lc 最終_ミス_比 LM 現_プール_サイズ c 現_プール_参照 f 現_プール_ミス m
【0020】制御ブロックは、キャッシュ記憶機構シス
テムが動作するデータ処理システムの汎用記憶機構に保
持される。替わりに、特殊記憶機構の形で備えることも
できる。図3は、最急勾配降下方法に応じてキャッシュ
区分を動的に管理するキャッシュ・マネージャに統合さ
れた制御論理の動作を示すフローチャートである。本実
施例では、この論理は、データ処理システムの記憶機構
に保持され、システムの複数または単数のプロセッサの
動作を制御するソフトウェアの形で備えてある。しか
し、この論理は、少なくとも部分的には、ハードワイヤ
ード論理の形で与えることもできる。
【0021】キャッシュの初期設定の間に、制御論理ス
テップ20で、それぞれのキャッシュ・プールの制御ブ
ロックの上記のフィールドをゼロにする。ただし、現_
プール_サイズのフィールドは除く。現_プール_サイ
ズのフィールドは、c/nに設定される(cは全体のキ
ャッシュ・サイズでnはキャッシュ・プールの数であ
る)。後に明らかになるが、各制御ブロック内では最終
_プール_サイズの内容が現_プール_サイズとは異な
っていなければならないことに注意すべきである。
【0022】キャッシュの動作中に、ステップ22で、
キャッシュへの各アクセスがモニタされる。ステップ2
4で、アクセスされたキャッシュ・プールの現_プール
_参照データの内容が増分される。さらに、ステップ2
6では、そのキャッシュ・プールへのアクセスがキャッ
シュ・ミスに終わった場合(すなわち、アクセスされた
項目はキャッシュ・プールには保持されてない場合)、
ステップ28では、キャッシュ・マネージャが現_プー
ル_ミス・データ・フィールドの内容を増分する。
【0023】ステップ30でキャッシュ再区分が実行さ
れるまで、ブロック24ないし28の機能が繰り返され
る。再区分は、アプリケーションに対して適切であるよ
うに選択された間隔で実行される。たとえば、再区分
は、キャッシュ・アクセスまたはキャッシュ・ミスが1
から所定の数に達っした後で、所定の時間間隔または外
部の割込みに応えて実行可能になる。
【0024】ステップ30でキャッシュ区分が実行され
ると、ステップ32で、各キャッシュ・プール毎に以下
の演算が実行される。 (i)参照された各キャッシュ・プールの現_ミス_比
(M)は、現_プール_参照フィールド(f)の内
容により分割された現_プール_ミス・フィールド(m
)の内容になるよう計算される。ただし、関連するプ
ールはアクセスされなかった(すなわち、f=0)場
合を除く。その場合にはそのプールは零に設定される。 (ii)キャッシュ・プールのサイズに関して各キャッ
シュ・プールの現_ミス_比の導関数M’(c
は、最終_ミス_比(LM)フィールドの内容と現_
ミス_比(M)の計算値の差を現_プール_サイズ
(c)フィールドの内容と最終_プール_サイズ(L
)フィールドの内容の差により除算するように計算
される。
【0025】上記の制御論理には、最急勾配降下論理3
4が含まれている。この最急勾配降下論理34は、上記
のデータに基づいて新しいキャッシュ区分を計算し、そ
の結果が各キャッシュ・プールの新_プール_サイズ
(Nc)となる。キャッシュの区分への最急勾配降下
方法の適用法を以下に詳細に説明する。
【0026】キャッシュの最良の使用法は、Σc i =c・
F i 、すなわちキャッシュ・プールiへの参照頻度がキ
ャッシュ(Σf i )への参照の総数により分割された現
_プール_参照の現内容となるよう決定されるという拘
束条件下で、重み付けミス比関数w=ΣF i M i (c i)
の最小値により表すことができる。図4は、2つのキャ
ッシュ・プールがサイズcとcをそれぞれ共有する
という状況を示す。重み付けられたミス比関数wは面4
0により表され、その拘束条件は拘束平面42により表
され、この拘束平面は44で面40と交差する。図4で
は、図を解かりやすくするためにn=2の場合の状態を
表す。しかし、本発明は、より多くのキャッシュ・プー
ル(2よりおおきいn)に適用可能である。実際には、
本発明はそうした多くのキャッシュ・プール用に意図さ
れている。
【0027】キャッシュを最適に使用するためにキャッ
シュの区分を調整するために、最急勾配降下方法は、拘
束ハイパー面Σ ci =c上で最急勾配降下を投影する方向
に移動する。拘束ハイパー面への垂線をベクトルrで示
す場合には、次のようになる。 r=(1/n)1/2 ・(1,・・・,1) 最急勾配降下の方向は以下のように表される。 s=(−F’(c),・・・,−F
(c)) 拘束ハイパー面への最急勾配降下の投影は以下のように
表される。 (δC,・・・,δC)=s−(s・r)・r 上記のベクトルのi番目の構成要素を計算すると、次の
ようになる。 δC=1/n・ΣF’(C)−F
(C) δc値は、それぞれのキャッシュ・プールのサイズc
の変更を定義する。したがって、キャッシュ・プール
iのそれぞれに対する新_プール_サイズ(Nc)は
以下のように計算される。 NCi=C+δC デルタ変更ベクトルは、ΣδC=0を満たす。そのこ
とは再調整されたプールはΣC=Cを満たすことを意
味する。
【0028】図2のステップ36で、各キャッシュ・プ
ールのキャッシュ・プール制御ブロックは以下のように
更新される。最終_プール_サイズ(Lc)は、それ
が新_プール_サイズと異なる場合に現_プール_サイ
ズ(c)に設定される。そうでない場合、それは一定
である。現_プール_サイズ(c)が新_プール_サ
イズと異なる場合には、最終_ミス_比(LM)は現
_ミス_比(M)に設定される。そうでない場合、最
終_ミス_比(LM)は一定であり、現_プール_サ
イズ(c)は新_プール_サイズ(Nc)に設定さ
れ、現_プール_参照(f)はゼロに設定され、現_
プール_ミス(m)はゼロに設定される。必要なら、
最終_プール_サイズの更新は、その最終_プール_サ
イズと現_プール_サイズの内容が異なるようにするた
めに、最終_プール_サイズが現_プール_サイズの古
い値を使用して実行されなければならないことに注意す
べきである。
【0029】上記のような最急勾配降下方法の適応方法
の結果、キャッシュ・プールの集合にたいするキャッシ
ュ・プール・サイズが調整される。上記の最急勾配降下
論理のステップ36をさらに改良すると、キャッシュを
再区分する前に予測不可能なキャッシュ・プール動作を
考慮することが可能になる。以下のように修正された最
急勾配降下方法は、メモリ容量を占めすぎるようになる
再調整を回避可能である。再調整のためにメモリが占有
されすぎると、キャッシュ・プールが極端に利用されて
ない場合にプール・サイズは受け入れられないほど小さ
くなるか、またはさらに悪い場合、負になってしまう。
負になってしまう場合には、ほとんど利用できない。
【0030】I={1、...、n}がキャッシュ・プ
ールの初期集合である場合、cはキャッシュ12の総サ
イズであり、i番目のプール・サイズcが任意の正の
しきい値t以上になるように任意のキャッシュ区分に
たいして c=c+・・・+c が成立し、以下に記載されたように、処理手順Aは、
{c}iεI’により定義されたキャッシュに適用さ
れた最急勾配降下方法が、以下の条件を満たすデルタ変
更ベクトル(dI’(i))iεI’を作りだすように
部分集合I’(≦I)を構成する。
【0031】
【数1】 2.c+dI’()がすべてのiεI’に関してt
以上である。部分集合I’が構成されると、再調整
は、以下の指定に応じてプール{CiεI’に適応
されるだけである。cがc+dI’(i)となる。
I’を構成する表記を単純化するために、以下の表記が
使用される。g(i)は以下のようにIに関して定義さ
れた関数として表す。 g=(i)=F’(C) それぞれの部分集合J≦I(空集合を除く)にたいし
て、dは以下のようにJに関して定義された関数にな
る。
【0032】
【数2】 以下の処理手順Aは、部分集合I’を構成するために使
用される。
【0033】
【0034】処理手順Aの適応前に、すべてのiεI’
に関してcがt以上であり、ΣdI'(i) =0である
ので、KはI’の固有の部分集合であり、したがって、
I’はアルゴリズムの終了時には決して空にはならな
い。すなわち、処理手順Aは、最急勾配降下方法が適用
されるすべてのキャッシュ・プールの集合の部分集合を
構成し、キャッシュ・プールのサイズをこれ以上調整さ
れないほどすでに小さくする。この結果、キャッシュ・
プールのサイズは所与のしきい値以上となるように条件
付けられる。正のサイズのキャッシュ・プールしか生成
されてないことも確認される。最急勾配降下方法は処理
手順Aにより構成されたキャッシュ・プールの部分集合
に適応される。アルゴリズムが効率的なので、その方法
は動的システムに理想的なものである。
【0035】上述のように、本発明は、複数の形式の処
理が競合するすべてのキャッシュに適応可能である。以
下の例は、本発明の動的再調整の特色を使用できるキャ
ッシュである。本発明の動的特性は、以下に示す例にお
いてキャッシュ区分の実現を可能にするものである。
【0036】データ・キャッシュ このキャッシュは、実メモリまたは拡張記憶機構に記憶
され、ファイル管理サブシステムまたはデータベース管
理システム(DBMS)により通常は管理されている。
この例では、処理は、タスクがファイルにアクセスする
ことを表す。複数の処理は、それらのキャッシュ動作
(たとえば、連続対ランダム・アクセス・パターン)に
より識別可能であり、したがって、データ・キャッシュ
はキャッシュ・プールに区分できる。キャッシュ・プー
ルを動的に再調整すると、キャッシュはシステムの活動
変化(たとえば、長いファイルにランダムにアクセスす
る入出力拡張バッチ・ジョブ)にうまく応答できる。
【0037】テーブル・ルックアサイド・キャッシュ 仮想記憶システムでは、ルックアサイド・テーブルは仮
想対実変換を含む。このルックアサイド・テーブルは、
すべての可能な仮想対実変換を含むキャッシュとして構
成可能である。したがって、こうしたテーブル・ルック
アサイド・キャッシュの各入力は、大部分の隣接する仮
想回部記憶機構を実外部記憶機構アドレスに分解するこ
とを可能にする。テーブル・ルックアサイド・キャッシ
ュへのミスの結果、1つまたは複数の入出力が現われ
る。その入出力の唯一の目的は、ディレクトリからの仮
想対実分解を得ることであり、したがって、テーブル管
理を重視することにつながる。こうしたシステムでは、
ユーザ定義ディスクの回収は、仮想外部記憶機構の連続
記憶補助媒体として考慮可能である。
【0038】制御機構キャッシュ キャッシュされた制御機構は、370/ESAの399
0制御機構かまたは小型コンピュータ用のディスク制御
機構である。制御機構は、それに接続されたディスク上
にあるイメージ・データを記憶するキャッシュを持つ。
今日、すべてのディスクは共通のプールを共有する。こ
の発明を適応すると、キャッシュは、そのサイズが動的
に変換可能な複数のプールに区分される。キャッシュ・
プールは1つまたは複数のディスクを動作するよう設計
することもできる。
【0039】最急勾配降下方法のキャッシュの動的区分
への適応がこれまで説明されてきた。キャッシュ動作が
比較的安定している場合、この方法は、繰り返して適応
されると急速に最上のキャッシュ区分に収束する。最急
勾配降下方法を修正すると、特に、最新のキャッシュの
履歴に基づいてキャッシュ区分を改良するようになり、
その結果、最大の利益に近づく。
【0040】最急勾配降下方法を適用すれば、動的キャ
ッシュ区分を効率的に実施できる。実行される計算は単
純で短く、動的入力として、その方法は、各キャッシュ
・プールに関して参照とミスの追跡しか必要としない。
この方法は、利用されたキャッシュ管理アルゴリズム
(たとえば、LRU/MRU)からは独立している。複
数のキャッシュ・プールを様々なキャッシュ管理アルゴ
リズムにより管理することさえ可能である。
【0041】本発明によるキャッシュ・プール・サイズ
の調整は動的処理手順である。キャッシュ・プールを動
的に調整すれば、キャッシュを使用しない処理を犠牲に
してもっとうまくキャッシュを使用する処理により多く
のキャッシュ資源を与えることにより、キャッシュは、
キャッシュ活動の変更にうまく反応する。キャッシュ・
プールは、全体的なヒット率が近い将来増加するように
再調整される。処理手順Aを使用すると、キャッシュ・
プール・サイズは、すべての時点で任意のしきい値以上
に保持されることが可能である。この方法は、いくつか
のキャッシュ活動が常に期待される場合に有利である。
たとえば、設計者は、任意のしきい値以上にシステム・
データ・キャッシュ・プールのサイズを常に保持するよ
う設計できる。当然のことながら、特許請求の範囲内で
上記の発明の例の修正と追加が可能である。
【図面の簡単な説明】
【図1】区分キャッシュ記憶システムを示す概略構成
図。
【図2】キャッシュ・プール制御ブロックの概略図。
【図3】本発明によるキャッシュの動的区分を示すフロ
ーチャート。
【図4】最急勾配降下方法を説明するために使用された
概略図。
【符号の説明】
10 キャッシュ・マネージャ 12 キャッシュ 14 処理 20 制御論理

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】キャッシュ記憶機構と、キャッシュ・マネ
    ージャとを有するデータ処理システムにおいて、 a)各キャッシュ・プール(i)に関して、キャッシュ
    ・プールへの参照(f)の数とキャッシュ・ミス(m
    )になった参照の数を追跡するステップと、 b)F=f/Σf、M(C)=M/f
    したとき重み付けられたミス比関数(ΣF
    (c))に関して、個々のキャッシュ・サイズ(c
    )の和は総キャッシュ・サイズ(c)に等しくなると
    いう条件下で、前記条件を表す関数的ハイパー面上で投
    影された最急勾配降下の方向にベクトルを定めることに
    よりキャッシュ区分を調整するステップと、 を備え、最急勾配降下方法によりキャッシュ区分を動的
    に調整することを特徴とする、キャッシュ記憶機構を処
    理の各クラスに対応する複数のキャッシュ・プールに動
    的に区分する方法。
  2. 【請求項2】前記追跡するステップが、第1データ・フ
    ィールド(f)と第2データ・フィールド(m)を
    もつ各キャッシュ・プール(i)の制御ブロックを維持
    するステップを有し、前記第1データ・フィールドの内
    容はそのキャッシュ・プールへの各アクセスで増分さ
    れ、前記第2データ・フィールドの内容はそうしたアク
    セスがキャッシュ・ミスに終わる毎に増分されることを
    特徴とする請求項1記載の方法。
  3. 【請求項3】少なくとも複数の繰返し回において、前記
    調整するステップが、 どのキャッシュ・プールが、対応する所定のサイズ(t
    )以上のサイズをもつかを決定する第1の部分ステッ
    プと、 第1の部分ステップにおいてのみ決定されたキャッシュ
    ・プールの前記部分集合にたいして、重み付けられたミ
    ス比関数(ΣF(c))に関して、個々のキャ
    ッシュ・サイズ(c)の和が前記部分集合のキャッシ
    ュ・プールのサイズ(c)の和に等しいという条件下
    で、前記条件を表す関数的ハイパー面上に投影された最
    急勾配降下の方向にベクトルを定めることによりキャッ
    シュ区分を調整する第2の部分ステップと、 キャッシュ・プールの前記部分集合のキャッシュ・プー
    ル・サイズがすべて対応する所定のサイズ(t)以上
    である場合、前記調整するステップを終了し、そうでな
    い場合、キャッシュ・プールの新しい部分集合にたいし
    て、この部分集合のキャッシュ・プール・サイズがすべ
    て、対応する所定のサイズ以上となるまで再帰的に第1
    の部分ステップおよび第2の部分ステップを繰り返す第
    3の部分ステップと、 を有している請求項1または2記載の方法。
  4. 【請求項4】キャッシュ記憶機構と、処理の各クラスに
    対する複数のキャッシュ・プールにキャッシュ記憶機構
    を動的に区分するキャッシュ・マネージャとを備え、 前記キャッシュ・マネージャは、各キャッシュ・プール
    (i)に関して、キャッシュ・プールへの参照(f
    の数とキャッシュ・ミス(m)の結果となる参照の数
    を追跡する手段を有し、F=f/Σf、M(C
    )=m/Σfとしたとき重み付けられたミス比関
    数(ΣF(c))に関して、個々のキャッシュ
    ・サイズ(c)の和が総キャッシュ・サイズ(c)に
    等しくなるという条件下で、前記条件を表す関数的ハイ
    パー面上に投影された最急勾配降下の方向にベクトルを
    定めることによりキャッシュ区分を調整するよう、前記
    最急勾配降下論理が繰返し実行されることを特徴とする
    キャッシュ記憶機構システム。
  5. 【請求項5】前記追跡手段は、第1データ・フィールド
    (f)および第2データ・フィールド(m)をもつ
    各キャッシュ・プール(i)の制御ブロックの維持と、
    前記キャッシュ・プールへの各アクセス毎に前記第1デ
    ータ・フィールドの内容を増分し、こうしたアクセスが
    キャッシュ・ミスに終わる度に第2データ・フィールド
    の内容を増分する制御論理と、を備えている請求項4記
    載のキャッシュ記憶機構システム。
  6. 【請求項6】各キャッシュ・プール(i)の前記制御ブ
    ロックは、現キャッシュ・プール・サイズ、直前のキャ
    ッシュ・プール・サイズ、および直前のミス比に対する
    第3、第4、および第5データ・フィールドを更に有し
    ている請求項5記載のキャッシュ記憶機構システム。
  7. 【請求項7】前記最急勾配降下論理が繰り返して動作し
    て、各所定のサイズ(t)以上のサイズをもつキャッ
    シュ・プールの部分集合を構成し、このキャッシュ・プ
    ールの部分集合にたいして、繰り返して動作して、重み
    付けられたミス比関数(ΣF(c))に関し
    て、個々のキャッシュ・サイズ(c)の和が部分集合
    のキャッシュ・プールのサイズ(c)の和に等しいと
    いう条件下で、前記条件を表す関数的ハイパー面上に投
    影された最急勾配降下の方向にベクトルを定めることに
    よりキャッシュ区分を調整し、前記最急勾配降下論理
    は、1つの部分集合の各キャッシュ・プールのサイズ
    が、キャッシュ・プール・サイズの再帰的な調整の後
    で、各所定のサイズ以上になるまでキャッシュ・プール
    の部分集合を再帰的に構成する請求項4乃至6のいずれ
    かに記載のキャッシュ記憶機構システム。
  8. 【請求項8】請求項4乃至7のいずれかに記載されたキ
    ャッシュ記憶機構システムを備えているデータ処理シス
    テム。
JP3180296A 1990-10-15 1991-06-25 キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム Expired - Lifetime JPH0799508B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL95993A IL95993A0 (en) 1990-10-15 1990-10-15 Dynamic cache partitioning
IL95993 1990-10-15
US07/786,490 US5357623A (en) 1990-10-15 1991-11-01 Dynamic cache partitioning by modified steepest descent

Publications (2)

Publication Number Publication Date
JPH06318176A JPH06318176A (ja) 1994-11-15
JPH0799508B2 true JPH0799508B2 (ja) 1995-10-25

Family

ID=26322143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3180296A Expired - Lifetime JPH0799508B2 (ja) 1990-10-15 1991-06-25 キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム

Country Status (3)

Country Link
US (1) US5357623A (ja)
EP (1) EP0481616A3 (ja)
JP (1) JPH0799508B2 (ja)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
GB2271202B (en) * 1992-10-01 1995-12-13 Digital Equipment Int Dynamic non-coherent cache memory resizing mechanism
GB2273179A (en) * 1992-12-02 1994-06-08 Ibm Cache indexing in interative processes.
CA2121852A1 (en) * 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
US5542066A (en) * 1993-12-23 1996-07-30 International Business Machines Corporation Destaging modified data blocks from cache memory
US6047356A (en) * 1994-04-18 2000-04-04 Sonic Solutions Method of dynamically allocating network node memory's partitions for caching distributed files
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory
US5584014A (en) * 1994-12-20 1996-12-10 Sun Microsystems, Inc. Apparatus and method to preserve data in a set associative memory device
JP3865775B2 (ja) 1995-04-11 2007-01-10 キネテック インコーポレイテッド データ処理システムにおけるデータの識別
US5678024A (en) * 1995-05-08 1997-10-14 International Business Machines Corporation Method and system for dynamic performance resource management within a computer based system
US5696932A (en) * 1995-05-16 1997-12-09 International Business Machines Corporation Method and system for estimating minumun requirements on a cache in a computer based storage system
US5894564A (en) * 1995-06-07 1999-04-13 International Business Machines Corporation System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed
US5671405A (en) * 1995-07-19 1997-09-23 International Business Machines Corporation Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
US6081623A (en) * 1995-10-11 2000-06-27 Citrix Systems, Inc. Method for lossless bandwidth compression of a series of glyphs
GB9521955D0 (en) * 1995-10-26 1996-01-03 Sgs Thomson Microelectronics Cache memory
US6745292B1 (en) * 1995-12-08 2004-06-01 Ncr Corporation Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors
GB2311880A (en) * 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
US6057857A (en) 1996-06-12 2000-05-02 Citrix Systems, Inc. Method for the lossless compression of lines in a distributed computer system
US5901333A (en) * 1996-07-26 1999-05-04 Advanced Micro Devices, Inc. Vertical wavetable cache architecture in which the number of queues is substantially smaller than the total number of voices stored in the system memory
US6065100A (en) * 1996-11-12 2000-05-16 Micro-Design International Caching apparatus and method for enhancing retrieval of data from an optical storage device
US5822759A (en) * 1996-11-22 1998-10-13 Versant Object Technology Cache system
US6122711A (en) 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
GB9701960D0 (en) * 1997-01-30 1997-03-19 Sgs Thomson Microelectronics A cache system
US6026470A (en) * 1997-04-14 2000-02-15 International Business Machines Corporation Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US6058456A (en) * 1997-04-14 2000-05-02 International Business Machines Corporation Software-managed programmable unified/split caching mechanism for instructions and data
US5983322A (en) * 1997-04-14 1999-11-09 International Business Machines Corporation Hardware-managed programmable congruence class caching mechanism
KR100230454B1 (ko) 1997-05-28 1999-11-15 윤종용 다중처리 시스템의 캐시메모리 검사방법
EP0926600B1 (en) * 1997-12-24 2003-06-11 Texas Instruments Inc. Computer system with processor and memory hierarchy and its operating method
US6493800B1 (en) * 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
US6449693B1 (en) 1999-04-05 2002-09-10 International Business Machines Corporation Method and apparatus for improving caching within a processor system
US6457102B1 (en) * 1999-11-05 2002-09-24 Emc Corporation Cache using multiple LRU's
US20020029285A1 (en) 2000-05-26 2002-03-07 Henry Collins Adapting graphical data, processing activity to changing network conditions
US6542977B1 (en) 2000-06-30 2003-04-01 Intel Corporation Method and apparatus for segmenting memory based upon bandwidth of a data communication platform
US6604174B1 (en) 2000-11-10 2003-08-05 International Business Machines Corporation Performance based system and method for dynamic allocation of a unified multiport cache
JP4688312B2 (ja) * 2001-02-23 2011-05-25 株式会社日立製作所 通信プロキシ装置
DE10108820A1 (de) * 2001-02-23 2002-09-12 Infineon Technologies Ag Verfahren zum Betrieb eines integrierten Speichers
US6748491B2 (en) * 2001-04-19 2004-06-08 International Business Machines Corporation Designing a cache using an LRU-LFU array
US6745295B2 (en) * 2001-04-19 2004-06-01 International Business Machines Corporation Designing a cache with adaptive reconfiguration
US6725336B2 (en) * 2001-04-20 2004-04-20 Sun Microsystems, Inc. Dynamically allocated cache memory for a multi-processor unit
US7062761B2 (en) * 2001-07-10 2006-06-13 Micron Technology, Inc. Dynamic arrays and overlays with bounds policies
US7329786B2 (en) 2001-09-28 2008-02-12 Great Lakes Chemical Corporation Processes for producing CF3CFHCF3
WO2004075066A2 (en) * 2003-02-24 2004-09-02 Koninklijke Philips Electronics N.V. Reducing cache trashing of certain pieces
US7085888B2 (en) * 2003-10-09 2006-08-01 International Business Machines Corporation Increasing memory locality of filesystem synchronization operations
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US9111368B1 (en) * 2004-11-15 2015-08-18 Nvidia Corporation Pipelined L2 cache for memory transfers for a video processor
US20060195662A1 (en) * 2005-02-28 2006-08-31 Honeywell International, Inc. Method for deterministic cache partitioning
US8423673B2 (en) 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8171169B2 (en) 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
JP2009528610A (ja) * 2006-03-02 2009-08-06 エヌエックスピー ビー ヴィ タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US7818722B2 (en) * 2006-06-09 2010-10-19 International Business Machines Corporation Computer implemented method and system for accurate, efficient and adaptive calling context profiling
US8683126B2 (en) * 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) * 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8769201B2 (en) * 2008-12-02 2014-07-01 Intel Corporation Technique for controlling computing resources
US8489851B2 (en) * 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US9514055B2 (en) * 2009-12-31 2016-12-06 Seagate Technology Llc Distributed media cache for data storage systems
US8825982B2 (en) 2010-06-10 2014-09-02 Global Supercomputing Corporation Storage unsharing
US9292454B2 (en) 2013-09-27 2016-03-22 Microsoft Technology Licensing, Llc Data caching policy in multiple tenant enterprise resource planning system
US20170351452A1 (en) * 2016-06-01 2017-12-07 Intel Corporation Dynamic host memory buffer allocation
KR20180016679A (ko) * 2016-08-04 2018-02-19 삼성전자주식회사 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법
US11093403B2 (en) 2018-12-04 2021-08-17 Vmware, Inc. System and methods of a self-tuning cache sizing system in a cache partitioning system
CN111984197B (zh) * 2020-08-24 2023-12-15 许昌学院 计算机缓存分配方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
JP2734515B2 (ja) * 1988-02-19 1998-03-30 日本電気株式会社 入出力バッファの管理装置
US4947319A (en) * 1988-09-15 1990-08-07 International Business Machines Corporation Arbitral dynamic cache using processor storage
US5043885A (en) * 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US5075868A (en) * 1989-09-18 1991-12-24 The United States Of America As Represented By The Secretary Of The Navy Memory modification of artificial neural networks

Also Published As

Publication number Publication date
JPH06318176A (ja) 1994-11-15
EP0481616A2 (en) 1992-04-22
EP0481616A3 (en) 1992-06-03
US5357623A (en) 1994-10-18

Similar Documents

Publication Publication Date Title
JPH0799508B2 (ja) キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US6948033B2 (en) Control method of the cache hierarchy
US6745295B2 (en) Designing a cache with adaptive reconfiguration
US6792509B2 (en) Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
JP2675967B2 (ja) キヤツシユの動的分割方法及びその手段
US5675797A (en) Goal-oriented resource allocation manager and performance index technique for servers
US6112285A (en) Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US7757063B2 (en) Systems for dynamically resizing memory pools
US5956731A (en) Sharing snapshots for consistent reads
US6094706A (en) Caching in a data processing system using the pigeon hole principle
US5555399A (en) Dynamic idle list size processing in a virtual memory management operating system
US20040078541A1 (en) System and method for autonomically reallocating memory among buffer pools
US20130097387A1 (en) Memory-based apparatus and method
US8909867B2 (en) Method and apparatus for allocating instruction and data for a unified cache
US20020194210A1 (en) Method for using non-temporal stores to improve garbage collection algorithm
Mattson Evaluation of multilevel memories
Chu et al. Program behavior and the page-fault-frequency replacement algorithm
Shou et al. Walking Through a Very Large Virtual Environment in Real-time.
US6799253B1 (en) Stochastic scratchpad storage management technique
US6948009B2 (en) Method, system, and article of manufacture for increasing processor utilization
Bischof Adaptive blocking in the QR factorization
EP0391871A2 (en) Method for managing a prioritized cache
US6910107B1 (en) Method and apparatus for invalidation of data in computer systems
CA1169572A (en) Method for dynamically allocating lru/mru managed memory among concurrent sequential processes