JPH10124396A - バッファ交換方法 - Google Patents

バッファ交換方法

Info

Publication number
JPH10124396A
JPH10124396A JP9089065A JP8906597A JPH10124396A JP H10124396 A JPH10124396 A JP H10124396A JP 9089065 A JP9089065 A JP 9089065A JP 8906597 A JP8906597 A JP 8906597A JP H10124396 A JPH10124396 A JP H10124396A
Authority
JP
Japan
Prior art keywords
client
data
buffer
determining
offset
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
JP9089065A
Other languages
English (en)
Inventor
Banu Ozden
オズデン バヌ
Rajeev Rastogi
ラストギ ラジーヴ
Abraham Silberschatz
シルヴァーシャッツ アブラハム
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies 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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of JPH10124396A publication Critical patent/JPH10124396A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 本発明は、マルチメディア記憶装置およびバ
ッファを交換する方法に関する。 【解決手段】 システムが必要とするディスクのI/O
操作の量と、システムに生じるキャッシュ・ミスを低減
するマルチメディア・データを記憶する二つの方法を開
示する。第一の方法ではキャッシュ・メモリに於ける各
データ・バッファへのアクセスについての将来性が確定
される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチメディア記
憶装置およびバッファを交換する方法に関する。
【0002】
【従来の技術、及び、発明が解決しようとする課題】最
新のコンピュータと通信システムには大量のデータが使
われる。その結果、最新のコンピュータと通信システム
を使用するときデータの管理とデータの記憶が重要な技
術的課題になった。マルチメディアの適用(例えば、ビ
デオ、オ−ディオ、テキスト、グラフィック、映像を用
いる用途)にはしばしば大量データを記憶することが含
まれる大量データの条件が課せられる。最新のマルチメ
ディア記憶システムはビデオとオーディオのような連続
したメディア・データと、テキスト、グラフィックおよ
び映像のような従来のデータの両方をハンドリングでき
るようでなければならない。
【0003】現在のマルチメディア記憶システムでは、
データはデータ・ブロック(1ブロックは一続きの連続
ビットから成る)としてしばしば二次記憶媒体(例え
ば、磁気ディスク)に収容される。次いで、データは二
次記憶媒体から一時記憶装置(例えば、ランダム・アク
セス・メモリ(RAM)で構成するキャッシュ)に読み
込まれ、その後、これを利用するためにクライアントに
よるアクセスが行われる。図1にマルチメディア・デー
タをハンドリングする例示としてのアーキテクチャを示
す。図1ではディスク10のような二次記憶媒体がマル
チメディア・データの記憶に一般に使用される。二次記
憶媒体は、ハードディスク、光ディスクまたは大容量記
憶システムである場合があることを理解されたい。
【0004】データは通常、ディスク10に収容する。
正規の動作時、ディスク10はこれの上部に立ち上げた
ディスク・ヘッド(ディスクからデータ読み取りに使用
する装置)と共に連続回転する。ディスク10からデー
タを読み取るため、ディスク・ヘッドは13で示す方向
に沿って内側に移動し、次いで、ディスク・ヘッドはデ
ィスク10からデータを読み取るべくディスク10の近
くまで下降する。ディスクの一回転に要する時間は通
常、回転時間と呼び、ディスク・ヘッドが13で示す方
向に沿い必要なデータ上まで移動するときに要する時間
を通常、シーク・タイムと呼び、ディスク・ヘッドがデ
ィスク10上に下降する際に要する時間は通常、整定
(settle)時間と呼ぶ。
【0005】データ・ブロックの位置検出がディスク1
0上で行われた後、データ・ブロックは普通、ディスク
から、通常キャッシュ・メモリ30として周知の一時メ
モリ・エリアに読み込まれる。ディスク10からキャッ
シュ・メモリ30にデータを伝送するには、先ずディス
ク上のデータの位置を検出し、ディスクから読み取り、
次いで、キャッシュに転送せねばならない。データ・ブ
ロックの検索、ディスク10からデータ・ブロックの読
み取りおよび次いで行われるデータ・ブロックのキャッ
シュへの転送から成る全プロセスはディクス入/出力
(ディスクI/O)操作と呼ぶ。
【0006】ディスクI/O操作はしばしばディスクの
帯域幅20の制約を受ける。ディスクの帯域幅20はデ
ータが内部を流れるパイプと考えることができる。普
通、パイプには限定された容量(例えば、44Mbp
s)があり、ある量だけのデータが単位時間にパイプを
流れることができる。従って、膨大な量のデータがディ
スクから必要になることがあるが、その間、ディスクの
帯域幅20からデータが転送できる速度に制約が加わ
る。
【0007】クライアントのキャッシュ・メモリ30へ
のアクセスはアクセス許可コントローラ35によって管
理される。クランアント(50,60,70で表す)か
らキャッシュ・メモリ30へのアクセスが要求される
と、アクセス許可コントローラはクライアントの要求を
受け入れるに十分なバッファ・スペースとディスクの帯
域幅があるかどうかを確認する。クライアントにアクセ
ス許可コントローラ35からキャッシュ30へのアクセ
スが一度び許可されると、バッファ・マネージャ40に
よるキャッシュ・メモリ30の管理が行われる。バッフ
ァ・マネージャ40はサービス・サイクル(システム管
理装置が指定する、あるいはシステム・リソースに準拠
して計算された時間的な間隔)毎にキャッシュ・メモリ
を操作する。
【0008】キャッシュ・メモリ30にはバッファ・プ
ール80が含まれる。バッファ・プール80は90で示
す一連のバッファから成る。バッファ90には使用中
(ディスク10からのデータ・ブロックで満杯)または
フリー(使用できる)とのタグが付される。フリーであ
るとのタグが付されたバッファはフリー状態のバッファ
・プール(使用できる若干数のバッファ)から成る。
【0009】図1では、クライアント50,60または
70の少なくとも一人が初めにディスク10からのデー
タを要求すると、アクセス許可コントローラ35はキャ
ッシュ・メモリ30をチェックし、要求を受け入れるに
十分なバッファ90と帯域幅20があるか、どうかを確
定する。フリー状態のバッファ・プールに十分なバッフ
ァ90が存在し、十分な帯域幅20があれば、アクセス
許可コントローラ35はクライアントが必要とする望ま
しいデータ・ブロックがバッファ・マネージャ40によ
って各サービス・サイクル内でバッファに記憶されるよ
うバッファ90の割り当てを行う。
【0010】図1に記載する例示としての実施例では、
連続データ・ファイル(図1に16で示す)は一連の連
続ブロック・データ(図1にA,B,C,D,E,F,
G,HおよびIで示す)から成る。説明の便宜上、連続
データ・ファイル16はビデオ・データであり、通常の
クライアントはビデオを表示し、休止、再スタート、早
送り、ジャンプ、巻き戻しのようなビデオ・カセット・
レコーダの諸機能を実行できるものと仮定する。システ
ムのクライアント総てが連続ファイル16からデータの
読み取りをしていれば、クライアントがデータを読み取
っている連続データ・ファイル16に於ける位置は50
a,60a,70a(50a,60a,70aは連続デ
ータ・ファイル16に対するクライアントの設定位置を
表す)で表すことができる。
【0011】図2に記載する例示としての実施例では、
クライアント50aは後続のブロックCから、クライア
ント60aは次のブロックFから、クライアント70a
は後続のブロックJから読み取りができる。従って、各
サービス・サイクル毎に、クライアントがデータを17
で示す方向に移動する。クライアントがデータを17で
示す方向に読み取り移動するとき、そのクライアントは
ブロックに対し前方に進行するクライアントと呼ぶ。ク
ライアントが他のクライアントの後にデータ・ブロック
の読み取りをする予定にあるとき、データを二番目に読
み取るクライアントはデータ・ブロックに対し後続して
前方に進行するクライアントと呼ぶ。例えば、60aは
ブロックFを最初に読み取り、次いで50aがブロック
Fを読み取ることになる。従って、ブロックFに関し,
50aは後続して前方に進行するクライアントとなる。
同様に、クライアントが18で示す方向に読み取り移動
しているとき、クライアントは後方に進行するのクライ
アントと考えられる。例えば、クライアント60aがデ
ータ・ブロックEを、次いでデータ・ブロックD、更に
データ・ブロックCを読み取るとき、クライアント60
aは後方に進行するクライアントと考えられる。最後
に、クライアントは連続データ・ファイル16で高速早
送り、ジャンプ、休止、再スタートおよび巻き戻しがで
きる。例えば、50aはブロックCから読み取り、次い
でブロックGにジャンプすることができ(これはVCR
では高速早送りに匹敵する)、60aはブロックFから
読み取り、次いで、逆戻りし、ブロックBを読み取るこ
とができ(これは、VCRでは巻き戻しに匹敵する)、
最後に50aは若干数のサービス・サイクルにわたり休
止し、いずれのデータ・ブロックも読み取り行わないこ
とができる(これはVCRでは休止命令に匹敵する)。
【0012】キャッシュ・メモリ30は記憶システムで
重要な機能を果たしている。例えば、クライアント50
aはディスク10に記憶したビデオを表示するようとす
ることがある。キャッシュ・メモリ30がなければ、ク
ライアントは連続データ・ファイル16の各データ・ブ
ロックを読み取るためにディスク全体にわたるI/O操
作を実行せねばならなくなる。ディスク全体にわたるI
/O操作を実行する作業はデータが連続データであると
き特に問題になる(例えば、連続ビデオまたはオーディ
オを再生する特定の速度に達するためのデータがクライ
アントに必要になる)。従って、キャッシュ・メモリ3
0は重要な機能を果たすことになる。各クライアントが
各データ・ブロックの検索のためにディスクのI/O操
作を実行する代わりに、クライアントにとりアクセスが
より早く行われると思われるデータの予備的な取り出し
と、キャッシュ・メモリでの保持ができる(これはキャ
ッシュ・メモリは通常、超高速ランダム・アクセス・メ
モリ(RAM)で構成されるためである)。更に、第二
クライアント60が第一クライアント50のアクセスし
ているものと同一データにアクセスする必要があると
き、第二クライアントはディスク10に戻る必要なくデ
ータの同時読み取りができよう。
【0013】しかし、クライアントがデータ・ブロック
を予備的に取り出す必要があり、しかもそのデータ・ブ
ロックがバッファに存在しないという場合があるが、こ
れはクライアントがデータ・ブロックを必要とする以前
にディスクから予備的取り出しが行われなかったか、リ
クエストをしたクライアントがデータ・ブロックを使用
する前にデータ・ブロックの予備的取り出しが行われ、
バッファからデータ・ブロックが取り出されたためであ
る。クライアントがデータ・ブロックの予備的な取り出
しが必要になったときにデータ・バッファにデータ・ブ
ロックが存在しないとき、こうしたケースをキャッシュ
・ミスと呼ぶ。バッファ交換を実行する方法はシステム
に発生するキャッシュ・ミスの回数を以て特徴付けがで
きる。キャッシュ・ミスの回数はデータ・ブロックへア
クセスする回数の合計に対するバッファ・キャッシュ・
ミスの合計回数の比であるキャッシュ・ミス比によって
しばしば定義される。キャッシュ・ミスの回数が低けれ
ば低いほど、システムの性能は高くなる。例えば、キャ
ッシュ・ミス比が88%のシステムはキャッシュ・ミス
比が90%のシステムより優れているが、88%のキャ
ッシュ・ミス比では該時間の88%にキャッシュ・ミス
が発生するに過ぎないためである。
【0014】同一のデータに数人のクライアントからア
クセスが行われるマルチメディア記憶システムでは、若
干数のバッファが各クライアントの使用に備え予約がで
きるようキャッシュが設計されるが、これはビデオの表
示には特定の速度(r)でクライアントに対しデータの
転送が必要になると思われるためである。既に述べたよ
うに、データを要求する新規クライアントはアクセス許
可コントローラ35が十分なバッファ・スペースとディ
スク帯域幅の使用性を確認しない限りシステムへのアク
セスの許可は得られない。十分なバッファ・スペースと
ディスク帯域幅の使用性を確保することによって、アク
セス許可コントローラ35は後続するサービス・サイク
ルで必要とされる速度(r)に従い行われるクライアン
トへのデータ転送をバッファ・マネージャが容易にさせ
得ることを確実にする。dが一つのバッファ90のサイ
ズであり、80で表すnB がキャッシュ内部のバッファ
の全数であれば、d*nB はバッファ・スペースの合計
値になる。従って、速度(r)でデータにアクセスする
必要のある実時間のクライアント(50,60または7
0)はそのバッファ条件がアクセスが許可された既存の
クライアントのバッファ条件値の総和と共にd*nB
内、あるいはこれに等しくない限りアクセス許可コント
ローラ35によってシステムへのアクセスは許可されな
いことになる。
【0015】サービス・サイクルの初めに既に述べたよ
うに、クライアントが使用していたのはバッファ90に
書き込まれたいずれのデータ・ブロックであるか、クラ
イアントのこれからの使用に備え、いずれのデータ・ブ
ロックをディスク10から予備的に取り出す必要がある
かを確定するため各クライアントをチェックする。この
作業は以下のステップに従い実行される:
【0016】1.最終のサービス・サイクルで使用され
たデータ・ブロックを収容するバッファは最終のサービ
ス・サイクルで他のクライアントによってバッファが使
用されなかったとき、自由バッファのプールに加える。 2.現在のサービス・サイクルでディスクから予備的に
取り出す必要のあるデータ・ブロックを確定する。 3.ディスクから予備的に取り出す必要のあるデータ・
ブロックが既にキャッシュ・メモリに(自由バッファの
プール内に)あるか、どうかを確定する。存在が確定さ
れると、バッファを自由バッファのプールから取り出
す。 4.予備的に取り出す必要があり、自由バッファのプー
ルに存在しない各データ・ブロックに対し、一組の自由
なバッファから一つのバッファを割り当てる。 5.ディスクのI/O操作がスタートし、ディスクから
割り当てられたバッファに書き込む必要なデータ・ブロ
ックを検索する。
【0017】前記ステップ(4)はバッファ交換方法と
呼ぶ。現在、若干数のバッファ交換方法が採用されてい
る。例えば、LRU(Least Recently
Used − 最も早い段階で使用した)バッファ交換
方法では、最も初期段階で用いられたデータ・ブロック
を収容するバッファは新規データ・ブロックを受信する
ために割り当てるバッファとして選択される。他のMR
U(Most Recently Used − 最も
最近使用した)バッファ交換方法では、最も最近使用し
た(最後に使用した)データ・ブロックを収容したバッ
ファは新規データ・ブロックを受信するために割り当て
られるバッファである。しかし、これらのバッファ交換
方法では連続メディア・データ記憶システムに使用した
ときに100%に近いキャッシュ・ミス比が発生する。
従って、連続したメディア・データに対しMRUおよび
LRUよりも低いキャッシュ・ミス比を示すバッファ交
換方法を採用することは有利であろう。
【0018】最適方法として周知な一つの最終バッファ
交換方法がある。この最適方法はシミュレーションでベ
ースラインとして使用する理論的な方法である。最適方
法では最大期間にわたりクライアントから照会されよう
としないデータ・ブロックを収容したバッファが割り当
てられる。最適方法ではデータ・ブロックへのアクセス
が行われる次回のタイミングが正確に予測され、最大期
間にわたりアクセスが行われようとしないバッファが交
換される。
【0019】しかし、最適方法は、バッファ・マネージ
ャがクライアントの行動様式を正確に予測しなければな
らないため、現実の記憶システムでは実現が不可能であ
る。クライアントはデータを連続して読み取り、特定の
データ・ブロックで休止し、データ・ブロックでの休止
後再スタートし、連続したデータ・ファイル内を前後に
ジャンプすることがあるため、最適方法は不可能であ
る。その上、新規クライアントがいつ到着するのかわか
らない。そのため、上述のごとく最適方法はベンチマー
ク的な交換方法のシミュレーションをする上でのみ有効
である。しかし、最適方法の性能(キャッシュ・ミス
比)に近いバッファ交換方法を採用することは有利であ
ろう。
【0020】
【課題を解決するための手段】本発明は連続したメディ
ア・データに使用することができる二つのバッファ交換
方法を開示する。この二つの方法は「ベーシック」法と
「距離」法と呼ばれる。これら方法の両方とも発生する
キャッシュ・ミスの比はLRU(LeastRecen
tly Used − 最も早い段階で使用した)バッ
ファ交換方法とMRU(Most Recently
Used − 最も最近使用した)バッファ交換方法の
ような従来的なバッファ交換方法よりも低い。更に、開
示した方法では、LRUとMRUよりも最適な方法の性
能に一層近似する。
【0021】「ベーシック」法では、バッファ・キャッ
シュの各データ・ブロックに対する将来性が決められ
る。将来性の確定はデータ・ブロックにアクセスしよう
とする総ての前方に進行するクライアントに対する数値
を評価し、次いでデータ・ブロックにアクセスしようと
する後方に進行するクライアントに対する数値の評価に
よって行われる。前方に進行する総てのクライアント
と、後方に進行する総てのクライアントに対するそれぞ
れの数値が一度び決定されると、最も小さな値がそのデ
ータ・ブロックの将来性として選択される。バッファ・
キャッシュの各データ・ブロックに対し同じような分析
が行われた後、将来性の最も低いデータ・ブロックは新
規データと交換するよう指定される。
【0022】「距離」法では、各データ・ブロックの将
来性の予測はデータ・ブロックに対するクライアントの
関係を分析することによって行われる。第一クライアン
トがアクセスした最後のデータ・ブロックが確定され
る。第一クライアントがアクセスした最後のデータ・ブ
ロックにアクセスしようとする後続のクライアントを決
定するための分析が行われる。この分析によって各クラ
イアントに対する「距離」値が生成される。この手続き
を繰り返し、連続するメディア・ファイルにアクセスす
る各クライアントに対する距離が確定される。次いで、
クライアントの「距離」値に従い上向きの順序で一列に
クライアントの編成が行われる。従って、距離値が最小
のクライアントは列の最初に位置し、距離値が最大のク
ライアントは列の最後に配される。列の最後のクライア
ント(距離値が最大のクライアント)に組み合わせたバ
ッファはそこで最初に解放され、最後から二番目のクラ
イアントに組み合わせたバッファは次いで、等々の順序
で解放される。自由バッファのプールは先入れ先出し
(FIFO)列として与えられる。バッファの交換が必
要なとき、自由バッファのプール先頭にあるバッファが
最初に選択される。更に、クライアントのバッファが解
放されるとき、自由バッファのプールの最終部に配され
る。
【0023】
【発明の実施の形態】本発明はバッファを割り当てる二
つの別な方法を開示する。両方法ともデータ・ブロック
を収容したバッファがディスクのI/O操作を軽減する
方法に従い割り当てられるよう、将来、データ・ブロッ
クがどのように使用されるかを確定する技法が用いられ
る。
【0024】開示した方法には若干のパラメータが使用
される・図2に連続したデータ・ファイル16を示す。
連続したデータ・ファイル16はデータ・ブロックA,
B,C,D,E,F,G,H,IおよびJから成るた
め、Aはファイルの第一ブロックになる。図2では、ク
ライアント50a、60a、70aは総て異なるデータ
・ブロックをアクセスしている。50aが前方に進行す
るクライアントであれば、50aは次にデータ・ブロッ
クCをアクセスすることになり、これとは別様に、50
aが後方に進行するクライアントであれば、50aは次
のサービス・サイクルでデータ・ブロックBをアクセス
することになる。クライアント60a,70aが前方に
進行するクライアントであれば、これらクライアントは
後続のブロックFとJをそれぞれ読み取ることになる
が、これとは別様にクライアント60a,70aが後方
に進行するクライアントであれば、彼等は次のブロック
EとIをそれぞれアクセスすることになる。
【0025】クライアントの状態を前方または後方に進
行するものとして特徴付けをする他に、クライアントは
オフセット(定常偏差)によって特徴付けすることもで
きる。クライアントのオフセットはファイルの初めから
のクライアントが使用すると期待される後続ビットのオ
フセットとして定義される。各ブロックには(d)バイ
トのデータがあると仮定すると、50aが前方に進行す
るクライアントであれば、50aには2d(ブロックA
とB)のクライアント・オフセットが存在することにな
る。同様に、クライアント60aと70aが前方に進行
するクライアントであれば、60aには5d(ブロック
A,B,C,DおよびE)のクライアント・オフセット
があり、70aには9d(ブロックA,B,C,D,
E,F,G、HおよびI)のクライアント・オフセット
があることになる。
【0026】データ・ブロックもオフセットによって特
徴付けをすることができる。データ・ブロックのオフセ
ットはファイルの初めからデータ・ブロックの第一ビッ
トのオフセットである。従って、例えば、データ・ブロ
ックBにはデータ・ブロックAに於けるビットの数であ
るdなるオフセットがある。データ・ブロックC、Dお
よびEにはそれぞれ2d、3dおよび4dなるデータ・
ブロック・オフセットがある。
【0027】データ・ブロックにクライアントがアクセ
スする速度は「ベーシック」法と「距離」法の各々に使
用した最終パラメータである。各クライアントは同じま
たは異なる速度で移動することがあるし、あるいはサー
ビス・サイクル毎に速度を変更することがある。従っ
て、クライアント60aと79aが数回のサービス・サ
イクルにわたり共に後方に進行するクライアントである
と仮定すると、クライアント70aは各クライアントが
移動する速度(r)によってはクライアント70aがク
ライアント60aよりも先にブロックCに達する可能性
がある。
【0028】<「ベーシック」法>本発明に於いて「ベ
ーシック」法と定義される方法では、各データ・ブロッ
クの将来性についての評価が行われる。評価に基づき最
長の期間にわたり使用されないと予測されるデータ・ブ
ロックは交換が行われるデータ・ブロックである。「ベ
ーシック」法を解説するために図2を用い、50a,7
0aが前方に進行するクライアントであり、60aが後
方に進行するクライアントであると仮定する。従って、
50aは後続のデータ・ブロックCを使用するであろう
し、クライアント70aは次のデータ・ブロックJを利
用し、60aは次のデータ・ブロックEを使用すること
になる。総てのクライアントが同じ速度(r)で移動す
ると仮定する。本発明に開示した「ベーシック」法を利
用するには、各データ・ブロックの将来性を予測し、次
いで、バッファの交換が必要のなとき将来性が最も大き
なデータ・ブロックを選択する必要がある。将来性の最
も大きなデータ・ブロックは新規データ・ブロックの記
憶ができるようデータ・バッファから解放されるデータ
・ブロックである。データ・ブロックにアクセスしよう
とする各クライアントに対し前方進行のクライアント値
と後方進行のクライアント値を検出することで各データ
・ブロックの将来性の予測が行われる。前方進行のクラ
イアント値と後方進行のクライアント値のうち、小さい
方の値がそのデータ・ブロックの将来性として選択され
る。前方進行のクライアント値は以下に規定する比
(1)で与えられ、後方進行のクライアント値は比
(2)で与えられる。
【0029】
【外1】 データ・ブロックDは前方に進行するクライアント50
aと後方に進行するクライアント60aによってアクセ
スされることが考えられる。50aに対する前方進行の
クライアント値は3d(データ・ブロックDのオフセッ
ト)−2d(クライアント50aのオフセット)÷クラ
イアント50aの速度(r50a) になる。従って、前方
進行のクライアント値は1d/r50a となる。60aに
対する後方進行のクライアント値は(5d−1)(クラ
イアントのオフセット−1データ・ビット)−3d(デ
ータ・ブロックDのオフセット)÷クライアントの速度
になる。従って、60aに対する後方進行のクライアン
ト値は(2d−1)/r60aとなる。データ・ブロック
Dにアクセスしようとするクライアント総てに対する計
算が一度び行われると、最小値のクライアントがデータ
・ブロックの将来性として選択される。従って、データ
・ブロックDに対し、r50a が実質上r60a と同一であ
ると仮定すると、データ・ブロックDの将来性は1d/
50a になる(1d/r50a の方が小さな値であるた
め)。
【0030】オフセットがデータ・ブロックのオフセッ
ト以下である前方に進行するクライアントがいなけれ
ば、将来性は式(2)に従い確定される。オフセットが
データ・ブロックのオフセットより大きな後方に進行す
るクライアントがいれば、データ・ブロックの将来性は
クライアントのオフセットに対応することになる。例え
ば、データ・ブロックBでは、このデータ・ブロックを
使用しようとする唯一のクライアントは60aである。
クライアント70aと50aは前方に進行するクライア
ントであるため、データ・ブロックBは既にこれらクラ
イアントによるアクセスが行われている。クライアント
60aは後方に進行するクライアントであるため、デー
タ・ブロックBの読み取りがまだできる唯一のクライア
ントは60aである。60aのクライアント・オフセッ
トは(5d−1)であり、データ・ブロックBのデータ
・ブロック・オフセットは1dであり、速度は60aの
速度(r60a) になる。従って、データ・ブロックBの
将来性は(5d−1d)/r60a になるう。
【0031】同様に、データ・ブロックbjに対し、オ
フセットがデータ・ブロックのオフセットより大きな後
方に進行するクライアントがいなければ、オフセットが
このデータ・ブロックのオフセット以下の前方に進行す
るクライアントがいるとき、このデータ・ブロックの将
来性は式(1)に従い確定される。データ・ブロックb
iにアクセスが期待されるクライアントがいないとき、
このデータ・ブロックに対する将来性はクライアントの
アクセスが期待されるいずれかのデータ・ブロックの将
来性よりも大きいと仮定される。この場合、データ・ブ
ロックbjの将来性は以下のように計算する: max
はクライアントのアクセスが期待されるデータ・ブロッ
ク相互間の将来性の最大値であるとすれば、 同一のデータ・ファイルに次に到着する新規クライアン
トに対する中間的なアクセスの資格について予測せねば
ならぬとき、bi,bjおよびbkのようなデータ・ブ
ロックの将来性の計算値は変更することができる。この
ような外延はベーシック法に加えることが簡単である。
【0032】一度びデータ・ブロック総ての将来性が確
定されると、データ・ブロックの編成は下降順に従い行
われる(将来性の最も大きなデータ・ブロックから将来
性の最も小さなデータ・ブロックへの順)。バッファの
交換が必要になるとき、最大の将来性をもつデータ・ブ
ロックを収容するバッファが最初に交換される(新規デ
ータ収容のために解放される)。
【0033】<「距離」法>本発明に開示される他のバ
ッファ交換方法は「距離」法と呼ばれる。「距離」法で
はクライアントの相対的な設定位置を分析することによ
ってデータ・ブロックにアクセスが行われる次の回が予
測される。先行のクライアントに対するクライアントc
hiの距離値(x)以下の比によって定義される:
【外2】
【0034】|x|がxの絶対値であるとき、例として
図2に記載するクライアントをとりあげ、再度50a,
70aは前方に進行するクライアントであり、60aは
後方に進行するクライアントであると仮定する; ここ
でクライアント70aがアクセスした最後のデータ・ブ
ロックはデータ・ブロックIである。図2に示すシナリ
オでデータ・ブロックIにアクセスしようとする唯一他
のクライアントはクライアント50aである。クライア
ント70aの遠近的比較からクライアント70aは第一
クライアントであり、クライアント50aは後続クライ
アントである。クライアント70aのオフセットは9d
である(データ・ブロックA,B,C,D,E,F,
G,HおよびIのカウントから)。クライアント50a
のオフセットは2dである。従って、先行クライアント
に対するクライアント70aの距離値は|9d−2d|
/r50a である。
【0035】クライアント60aに対し同様の分析をす
ることができる。クライアント60aがアクセスした最
後のデータ・ブロックはデータ・ブロックFである。ク
ライアント60aに次いでデータ・ブロックFにアクセ
スしようとする後続のクライアントは50aである。ク
ライアント60aの遠近的比較からクライアント60a
は第一クライアントであり、クライアント50aは後続
のクライアントである。クライアント60aのオフセッ
トは5d−1である。クライアント50aのオフセット
は2dである。
【0036】従って、クライアント60aの将来性は|
5d−1−2d|/r50a である。最後に、クライアン
ト50aが最終的にアクセスしたデータ・ブロックはB
である。データ・ブロックBにアクセスする後続のクラ
イアントはクライアント60aである。クライアント6
0aのオフセットは5d−1である。クライアント50
aのオフセットは2dである。従って、比(3)は|5
d−1−2d|/r60 a によって定義されよう。r60a
がr50a より大きいもとの仮定し、増加する順序に従い
距離値をクライアント列に配列すると、将来性が最小値
のクライアント50aは一番目になり、中間値のクライ
アント60aは次に位置し、最大値のクライアント70
aは最後に位置することになる。そこで、「距離」法で
は最後のクライアントが先行のサービス・サイクルで最
初に使用したバッファを解放し、次いで、最後から二番
目のクライアントが先行のサービス・サイクルで二番目
に使用するバッファを解放する等々(このプロセスはバ
ッファ総てが解放されるまで継続することができる)と
なるよう先入れ先出し(FIFO)列として維持される
自由バッファのプールにクライアント(50a,60
a,および70a)に組み合わせたデータ・ブロックが
解放されなければならない。従って、クライアント列に
あってクライアント70aは最後のクライアントである
ため、70aが前回アクセスしたデータ・ブロック(デ
ータ・ブロック)は最初に解放されよう。60aはクラ
イアント列にあって次に配されているため、60aが前
回アクセスしたデータ・ブロック(データ・ブロック
F)は次に解放されよう、更に、50aが使用したデー
タ・ブロックは列の最後にセットされているため、50
aが前回アクセスしたデータ・ブロック(データ・ブロ
ックB)が最後に解放されることになる。クライアント
i が前回アクセスしたデータ・ブロックにアクセスし
よとするクライアントがいないとき、先行のクライアン
トに対するクライアントci の距離は無限大であると仮
定されることを理解する必要がある。かくして、このよ
うなクライアントはクライアント列中に維持されなくな
る。
【0037】先行のクライアントに対する距離ci を計
算する他の方法、例えば、新規クライアントが到着する
時間を予測する方法を提案することができる。例えば、
新規クライアントの移動時間が予測できれば、先行クラ
イアントに対するクライアントci の距離は以下のよう
になる:
【0038】本発明の付加的な実施例は各クライアント
に対し個別のMRU(Most Recently U
sed − 極く最近使用した)リスト維持することに
よって実行することができる。犠牲バッファを選択する
必要のあるとき、そのバッファは先行のクライアントま
での距離が最大であるクライアントのMRUリストから
選択する。
【0039】本発明の幾つかの実施例を開示し、説明を
してきたが、本発明の精神から、あるいは付属する請求
項の範囲から逸脱することなく様々な修正、変更ができ
ることを理解されたい。
【図面の簡単な説明】
【図1】本発明のアーキテクチャ・フレームを示す図で
ある。
【図2】連続したメディア・データ・ファイルにアクセ
スするクライアントの概念を示す図である。
フロントページの続き (72)発明者 ラジーヴ ラストギ アメリカ合衆国 07974 ニュージャーシ ィ,ニュープロヴィデンス,リヴィングス トン アヴェニュー 229 (72)発明者 アブラハム シルヴァーシャッツ アメリカ合衆国 07901 ニュージャーシ ィ,サミット,ニューイングランド アヴ ェニュー 67エー

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 データ・バッファを利用するデータを管
    理する方法であって、 複数の前記データ・バッファの各々の将来性を確定する
    ステップと、 前記将来性に準拠し前記データ・バッファの各々を配列
    するステップと、 前記配列に基づいて前記複数のデータ・バッファを解放
    するステップとを含むことを特徴とするデータを管理す
    る方法。
  2. 【請求項2】 前記複数のデータ・バッファの各々に対
    し前方進行のクライアント値を決定するステップと、 前記複数のデータ・バッファの各々に対し後方進行のク
    ライアント値を決定するステップと、 前方進行のクライアント値と後方進行のクライアント値
    のうち、小さい方を選択することによって前記複数のデ
    ータ・バッファの各々の将来性を確定するステップとに
    よって前記将来性が確定されることを特徴とする請求項
    1に記載の方法。
  3. 【請求項3】 前記複数のデータ・バッファの各々にい
    ずれのクライアントがアクセスするかを決定するステッ
    プと、 前記複数のデータ・バッファの各々にアクセスしようと
    する前記クライアントの各々のクライアント・オフセッ
    トを確定するステップと、 前記クライアントの各々の速度を確定するステップと、 前記複数のデータ・バッファの各々のデータ・バッファ
    ・オフセットを確定するステップと、 前記データ・バッファ・オフセットと前記クライアント
    ・オフセットを比較するステップと、 前記クライアントの各々の速度に対し、前記比較の各々
    の比を実行するステップとによって前記複数のデータ・
    バッファの前記将来性が確定され、 前記比がデータ・バッファの将来性であることを特徴と
    する請求項1に記載の方法。
  4. 【請求項4】 サービス・サイクルの期間に複数の前方
    に進行するクライアントと後方に進行するクライアント
    がアクセスするデータ・バッファを割り当てる方法であ
    って、 前記データ・バッファの各々を選択するステップと、 前記データ・バッファの各々にアクセスしようとする前
    記複数の前方に進行するクライアントの各々を分析し、
    それによって各前記データ・バッファの各々に関し前方
    進行のクライアント値を生成するステップと、 前記データ・バッファの各々にアクセスしようとする前
    記複数の後方に進行するクライアントの各々を分析し、
    それによって各前記データ・バッファの各々に関し後方
    進行のクライアント値を生成するステップと、 前記前方進行のクライアント値と前記後方進行のクライ
    アント値のうちから最小値を選択することによって前記
    データ・バッファの各々の将来性を確定するステップ
    と、 前記将来性に準拠し前記データ・バッファを配列するス
    テップと、 前記配列に従って前記データ・バッファを割り当てるス
    テップとを含むことを特徴とする割り当て方法。
  5. 【請求項5】 データ・バッファを選択するステップ
    と、 前記サービス・サイクル時に前記データ・バッファにア
    クセスしょうとする各前方に進行するクライアントを確
    定するステップと、 前記サービス・サイクル時に前記データ・バッファにア
    クセスしょうとする各前方に進行するクライアントに対
    しクライアント・オフセットを確定するステップと前記
    前方に進行するクライアントの各々がアクセスしようと
    する前記データ・バッファに対しデータ・ブロック・オ
    フセットを確定するステップと、 前記データ・ブロック・オフセットを前記クライアント
    ・オフセットと比較するステップと、 前記前方に進行するクライアントの速度に対する前記比
    較の比を考慮することによって前記前方に進行するクラ
    イアントの各々に対する前方進行のクライアント値を生
    成するステップとによって前記前方進行のクライアント
    値が生成されることを特徴とする請求項4に記載の方
    法。
  6. 【請求項6】 データ・バッファにハウジング・データ
    ・ブロックを割り当てる方法であって、 データ・バッファを選択するステップと、 前記サービス・サイクル時に前記データ・バッファにア
    クセスしょうとする各後方に進行するクライアントを確
    定するステップと、 前記サービス・サイクル時に前記データ・バッファにア
    クセスしょうとする各後方に進行するクライアントに対
    しクライアント・オフセットを確定するステップと前記
    後方に進行するクライアントの各々がアクセスしようと
    する前記データ・バッファに対しデータ・ブロック・オ
    フセットを確定するステップと、 前記クライアイント・オフセットを前記データ・ブロッ
    ク・オフセットと比較するステップと、 前記後方に進行するクライアントの速度に対する前記比
    較の比を考慮することによって前記後方に進行するクラ
    イアントの各々に対する後方進行のクライアント値を発
    生するステップとによって前記後方進行のクライアント
    値が生成されることを特徴とする請求項3に記載の方
    法。
  7. 【請求項7】 バッファを割り当てる方法であって、 前記データ・バッファにアクセスした各クライアントに
    対し距離値を確定するステップと、 距離値に準拠し前記クライアントがアクセスした前記デ
    ータ・バッファを配列するステップと、 前記距離値に準拠し、前記クライアントがアクセスした
    前記データ・バッファを割り当てるステップとを含むこ
    とを特徴とする方法。
  8. 【請求項8】 データ・ブロックにアクセスした第一ク
    ライアントのクライアント・オフセットを確定するステ
    ップと、 前記データ・ブロックにアクセスしようとする後続クラ
    イアントのクライアント・オフセットを確定するステッ
    プと、 前記第一クライアントのクライアント・オフセットを前
    記第二クライアントと比較し、それによって比較値を生
    成するステップと、 前記比較値と前記後続のクライアントの速度との比を考
    慮し、それによって前記距離値を生成するステップとに
    よって前記距離値が確定されることを特徴とする請求項
    7に記載の方法。
  9. 【請求項9】 バッファを割り当てる方法であって、 (a)第一クライアントを選択するステップと、 (b)第一クライアントが最後にアクセスしたバッファ
    を確定するステップと、 (c)前記バッファにアクセスしようとする後続のクラ
    イアントを確定するステップと、 (d)前記第一クライアントのクライアント・オフセッ
    トを確定するステップと、 (f)前記後続のクライアントのクライアント・オフセ
    ットを確定するステップと、 (g)前記第一クライアントの前記クライアント・オフ
    セットと前記後続のクライアントの前記クライアント・
    オフセットを比較するステップと、 (h)前記後続のクライアントの速度に対する前記比較
    の比を公式化することによって前記バッファの距離を確
    定するステップと、 (i)各クライアントに対しステップ(a)〜(h)を
    実行し、それによって各クライアントに対する距離を確
    定するステップと、 (j)前記距離に準拠しクライアントを順位別に配列す
    るステップと、 (k)前記距離に準拠し前記クライアントを解放するス
    テップとを含むことを特徴とする方法。
JP9089065A 1996-04-08 1997-04-08 バッファ交換方法 Pending JPH10124396A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/629118 1996-04-08
US08/629,118 US5870551A (en) 1996-04-08 1996-04-08 Lookahead buffer replacement method using ratio of clients access order offsets and buffer data block offsets

Publications (1)

Publication Number Publication Date
JPH10124396A true JPH10124396A (ja) 1998-05-15

Family

ID=24521649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9089065A Pending JPH10124396A (ja) 1996-04-08 1997-04-08 バッファ交換方法

Country Status (4)

Country Link
US (1) US5870551A (ja)
EP (1) EP0801350A1 (ja)
JP (1) JPH10124396A (ja)
KR (1) KR970071284A (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026452A (en) 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
JPH10303840A (ja) * 1997-04-25 1998-11-13 Sony Corp マルチチャンネル放送システム
JP3810530B2 (ja) * 1997-09-18 2006-08-16 富士通株式会社 ビデオサーバシステム、コンテンツ動的配置装置及びコンテンツ動的配置方法
US6154813A (en) * 1997-12-23 2000-11-28 Lucent Technologies Inc. Cache management system for continuous media system
US6438593B1 (en) * 1998-05-21 2002-08-20 Lucent Technologies Inc. Method for information retrieval in broadcast disk systems
US6157949A (en) * 1998-05-28 2000-12-05 Industrial Technology Research Institute Data placement on direct access devices for media servers with cyclic re-broadcast capability
SG87008A1 (en) * 1998-09-30 2002-03-19 Panasonic Singapore Lab Pte Lt A method for reliable and high speed data transfer
US6438368B1 (en) * 2000-03-30 2002-08-20 Ikadega, Inc. Information distribution system and method
US20020095509A1 (en) * 2001-01-17 2002-07-18 World Channel Inc. Streaming booster and the method thereof
FR2820846B1 (fr) * 2001-02-12 2003-05-30 Thomson Multimedia Sa Dispositif et procede de gestion d'acces a un support d'enregistrement
AU2002365752A1 (en) * 2001-11-30 2003-06-17 Prediwave Corp. Fast memory access to digital data
US7266622B2 (en) * 2002-03-25 2007-09-04 International Business Machines Corporation Method, computer program product, and system for automatic application buffering
CA2408481C (en) 2002-10-17 2009-10-06 Ibm Canada Limited-Ibm Canada Limitee Autonomic reallocation of memory among buffer pools
US7028131B1 (en) * 2002-10-24 2006-04-11 Emulex Design & Manufacturing Corporation Reverse message writes and reads
KR100505695B1 (ko) * 2003-07-12 2005-08-03 삼성전자주식회사 동적으로 할당 또는 해제되는 버퍼를 가지는 캐쉬 메모리장치, 이를 구비한 디지털 데이터 처리 시스템 및 그 방법
JP2007511855A (ja) * 2003-09-30 2007-05-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ トリック再生の性能を向上するためのキャッシュ管理
US20060074872A1 (en) * 2004-09-30 2006-04-06 International Business Machines Corporation Adaptive database buffer memory management using dynamic SQL statement cache statistics
US9594583B2 (en) * 2013-11-12 2017-03-14 Red Hat, Inc. Lightweight snapshots for virtual disks

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3379081D1 (en) * 1982-06-21 1989-03-02 Ibm Method and apparatus for managing a buffer pool referenced by batch and interactive process
US5150472A (en) * 1989-10-20 1992-09-22 International Business Machines Corp. Cache management method and apparatus for shared, sequentially-accessed, data
US5572645A (en) * 1994-03-01 1996-11-05 International Business Machines Corporation Buffer management policy for an on-demand video server
US5453779A (en) * 1994-03-15 1995-09-26 International Business Machines Corporation Scheduling policies with grouping for providing VCR control functions in a video server
US5461415A (en) * 1994-03-15 1995-10-24 International Business Machines Corporation Look-ahead scheduling to support video-on-demand applications
US5586264A (en) * 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
JPH08147234A (ja) * 1994-11-17 1996-06-07 Fujitsu Ltd ストリーム処理装置及び方法
US5592612A (en) * 1995-04-28 1997-01-07 Birk; Yitzhak Method and apparatus for supplying data streams

Also Published As

Publication number Publication date
US5870551A (en) 1999-02-09
KR970071284A (ko) 1997-11-07
EP0801350A1 (en) 1997-10-15

Similar Documents

Publication Publication Date Title
JPH10124396A (ja) バッファ交換方法
JP3175371B2 (ja) データ記憶フォーマット変換方式及びその変換方法及びアクセス制御装置及びデータアクセス方法
US5649153A (en) Aggressive adaption algorithm for selective record caching
JPH0950667A (ja) ディスク・ドライブを制御する方法
EP1098250A1 (en) Cache using multiple logical ring units
US6385624B1 (en) File system control method, parallel file system and program storage medium
EP0415352A2 (en) Method and system for optimizing data caching in a disk-based computer system
US5765213A (en) Method providing for the flexible prefetching of data from a data storage system
US6842824B2 (en) Cache control program and computer for performing cache processes utilizing cache blocks ranked according to their order of reuse
JPH11143778A (ja) キャッシュ管理方法及び情報回収方法
US6842826B1 (en) Method and apparatus for providing efficient management of least recently used (LRU) algorithm insertion points corresponding to defined times-in-cache
JPH0675897A (ja) 分割を許容するバッファ・メモリ管理方法及びその装置
US6442648B1 (en) Method of and system for the dynamic scheduling of requests to access a storage system
US20170123975A1 (en) Centralized distributed systems and methods for managing operations
CN110297787A (zh) I/o设备访问内存的方法、装置及设备
US6378052B1 (en) Data processing system and method for efficiently servicing pending requests to access a storage system
US10956322B2 (en) Storage drive dependent track removal in a cache for storage
US7000077B2 (en) Device/host coordinated prefetching storage system
US20020078061A1 (en) Set address correlation address predictors for long memory latencies
JP5192506B2 (ja) ファイルキャッシュの管理方法、装置、及び、プログラム
CN111459402A (zh) 磁盘可控缓冲写方法、控制器、混合io调度方法及调度器
US20170160981A1 (en) Management of paging in compressed storage
US6678469B1 (en) Recorded information reproducing apparatus
CN116069752A (zh) 一种面向分布式文件系统的混合预取方法
JP4104283B2 (ja) 記憶サブシステム及び情報処理システム