JPH0981455A - クライアント装置、サーバ装置及び記憶装置制御方法 - Google Patents

クライアント装置、サーバ装置及び記憶装置制御方法

Info

Publication number
JPH0981455A
JPH0981455A JP7232516A JP23251695A JPH0981455A JP H0981455 A JPH0981455 A JP H0981455A JP 7232516 A JP7232516 A JP 7232516A JP 23251695 A JP23251695 A JP 23251695A JP H0981455 A JPH0981455 A JP H0981455A
Authority
JP
Japan
Prior art keywords
data
read
storage device
head
continuous
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
JP7232516A
Other languages
English (en)
Inventor
Setsu Suzuoka
節 鈴岡
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.)
Toshiba Corp
Original Assignee
Toshiba 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
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP7232516A priority Critical patent/JPH0981455A/ja
Publication of JPH0981455A publication Critical patent/JPH0981455A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 少ない記憶領域を備えただけで、遅延なくか
つ途切れなしに所望の連続データを得ることができるク
ライアント装置を提供する。 【解決手段】 連続して処理する一纏まりの連続データ
を記憶した記憶装置から得た連続データをデータ処理す
るクライアント装置において、前記記憶装置に記憶され
た前記連続データのうち、前記データ処理に要する時間
が前記記憶装置の読み出し遅延に相当する量またはそれ
を越える量のデータを先頭から連続して保持しておくデ
ータ先頭部保持手段と、前記データ先頭部保持手段に保
持されている前記連続データの先頭から前記データ処理
が開始されるのと同時にまたは相前後して、前記記憶装
置に記憶された前記連続データのうち前記データ先頭部
保持手段に保持されているデータの続き位置またはそれ
より所定データ量前の位置から後続するデータに対する
読み出し要求を出す手段とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する利用分野】本発明は、読み出し遅延の大
きい記憶装置からデータを遅延なくかつ途切れなしに読
み出すことを可能とするクライアント装置、サーバ装置
及び記憶装置制御方法に関する。
【0002】
【従来の技術】遅い記憶装置から高速にデータを読み出
すかのようにみせかける技術として、キャッシング(c
aching)とプリフェッチ(prefetch)と
がある。
【0003】これらの技術を説明するのに先だって、記
憶装置から処理装置にデータを読み込んで処理するとい
う最も基本的な構成・動作を図12を用いて説明する。
図12に示すように、データ処理装置101と記憶装置
102がデータ伝送路103によりつながれているもの
とする。ここで、記憶装置101は半導体メモリ、ディ
スク装置、光ディスク(CD−ROMを含む)などであ
り、データ伝送路103はバス、ケーブル、ネットワー
クなどである。このような構成において、データ処理装
置101は、必要なデータを記憶装置102に要求し、
データ転送路103を介して要求したデータを受取り、
それを処理する。
【0004】ここで、図12の各部の処理速度を以下の
ように記号で表す。データ処理装置101がデータを処
理する速度をa(bytes/sec)とし、データ転
送路103の転送速度をb(bytes/sec)と
し、記憶装置102において、データを読み出してデー
タ伝送路103に送り出す速度をc(bytes/se
c)とする。一般に、 b<a もしくは c<a で
あり、データ処理装置101がデータ待ち(starv
ation)を起こし、性能が低下する傾向がある。
【0005】この問題を軽減する方法としてキャッシン
グ技術が考案されている(ヘネシー&パターソン著、
「コンピュータ・アーキテクチャ」、日経BP、199
2年)。キャッシングとは、一度読んだことのあるデー
タを身近の高速メモリ(キャッシュ;cacheと呼
ぶ)に格納しておき、次に同じデータを読み出す必要が
生じた場合には、オリジナルのデータがある場所からで
はなく、キャッシュからデータを読み出す技術である。
これにより、2度目から高速にデータを読み出すことを
可能にする。
【0006】上記のようなキャッシュを備えたシステム
の構成を図13に示す。ここで、データ処理装置20
1、記憶装置202、データ伝送路203は図12と同
じものである。新たに加わったのは、高速メモリ(キャ
ッシュ)204、および高速メモリとデータ処理装置を
結ぶ高速データ伝送路205である。ここで、記憶装置
202から読み出されたデータは、データ伝送路203
を介して伝わり、高速メモリ204にデータのコピーを
作った上で、データ処理装置201に伝わる。二度目に
同じデータにアクセスした場合には、高速メモリ202
上のデータが高速データ伝送路205を介してデータ処
理装置201に伝わる。ここで、高速メモリのアクセス
速度をd(bytes/sec)とし、高速データ伝送
路の伝送速度をe(bytes/sec)とする。 d
>=a かつ e>=a であるように作っておくなら
ば、データ処理装置201に滞りなくデータが供給され
る。
【0007】しかしながら、キャシング技術でデータに
素速くアクセスすることができるのは、同一データにつ
いての二度目のアクセスからであり、最初のデータアク
セスは依然として遅いことになる。
【0008】そこで、最初から高速にアクセスすること
ができるように、プリフェッチという技術が考案されて
いる。この技術では、将来読み出す可能性が高いデータ
があらかじめ分かっている場合に、そのデータを事前に
読み出しておく。したがって、この方法は予測が確から
しい場合にのみ効力を発揮する。
【0009】従来、データのプリフェッチやキャッシュ
は、数値データに対して行われていた。この場合、デー
タはデータ処理装置201内の例えばベクトルプロセッ
サのような高速演算器で処理がなされる。 b<a も
しくは c<a であるが、高速メモリ204と高速デ
ータ転送路205を用いて d>=a かつ e>=a
を達成し、データ読み出しのボトルネックを解消して
いる。
【0010】ここで、注意すべき点は記憶装置202か
らのデータの読み出しは基本的に隘路になっているの
で、データ処理装置201がよどみなくデータを処理で
きるためには、データ処理装置201で使うデータが全
て高速メモリ204に入っていなければならない。しか
し、この条件を満たすためには巨大な高速メモリが必要
となり現実的ではない。実製品では、この高速メモリの
容量は小さく、記憶装置202の必要なデータを全て高
速メモリ204に格納しておくことはできない。
【0011】プリフェッチの別の用法としては、プロセ
ッサの命令のプリフェッチという手法がある(ヘネシー
&パターソン著、「コンピュータ・アーキテクチャ」、
日経BP、1992年)。
【0012】これは、これから必要になると予測される
命令を数語程度をあらかじめプロセッサ内の命令キャッ
シュに格納しておく手法であり、16−bit以上の多
くのマイクロプロセッサでは備えている技術である。こ
の場合には、 b>=a かつ c>=a であり、命
令のアクセス遅延が問題である。このプリフェッチが数
語でも効果があるのは、b,cに比べてaが充分遅いか
らである。また、予測がはずれてプリフェッチバッファ
が空になり命令が途切れなく供給できなくても、性能が
一時低下するだけでそれ以上悪いことが起こらないから
である。すなわち、この場合にはデータの連続供給性は
保証されていない。
【0013】ところで、記憶装置に記憶した連続データ
をサーバからクライアントに供給するシステム、例えば
動画を動画サーバからクライアントに供給するシステム
では、データ転送はネットワークにATMなどを用いて
充分高速に実現できるが、記憶装置の読み出し遅延のた
めに動画データを最初にアクセスする頭出し時間を必要
する。したがって、従来は、映像が出はじめた後は連続
的に再生できるが、動画を要求してから映像が出はじめ
るまでが遅いという欠点があった。
【0014】もちろん、全てのデータをキャッシングし
ておけば、要求とともに映像の再生を開始し、かつ、途
切れることなく高速アクセスすることが可能であるが、
動画データをキャッシングするためには莫大なキャッシ
ング容量が必要であり、非現実的である。また、データ
を全てプリフェッチするのは膨大な時間がかかり、やは
り現実的でない。
【0015】また、ネットワークを用いないCD−RO
Mなどの場合でも、ヘッドの位置によって回転速度が異
なるので、CD−ROMのデータをランダムにアクセス
すると、回転速度を調整するために頭出し時間が必要で
ある。
【0016】さらに、複数枚のCD−ROMをCD−R
OMイクスチェンジャを用いてロボットアームが望まし
いCD−ROMをCD−ROMドライバに運んでCD−
ROMからデータを読み出す場合には、ロボットアーム
が動作する時間(2〜3秒)の読み出し遅延がある。マ
ルチメディア時代に向い、様々なデータを切替えて見る
操作が多用される傾向にあるので、切替え時の頭だし時
間は極めて大きな問題となる。
【0017】
【発明が解決しようとする課題】従来は、サーバの管理
する連続データをクライアントに供給する場合、記憶装
置におけるデータの読み出し遅延(頭出し遅延)が律速
となり、クライアントが要求を出してからデータの先頭
を得るまでに一定の時間を要した。
【0018】もちろん、全てのデータをキャッシングし
ておけば、上記問題は解決するが、莫大なキャッシング
容量を必要とし非現実的である。また、データを全てプ
リフェッチするには膨大な時間がかかる。
【0019】また、CD−ROMなどの二次記憶装置を
備えたシステムでも、回転速度調整のための頭出し時間
や情報記憶媒体自体の交換時間等によりアクセス遅延が
生じる問題点があった。
【0020】本発明は、上記事情を考慮してなされたも
のであり、少ない記憶領域を備えただけで、遅延なくか
つ途切れなしに所望の連続データを得ることができるク
ライアント装置、サーバ装置及び記憶装置制御方法を提
供することを目的とする。
【0021】
【課題を解決するための手段】本発明(請求項1)は、
連続して処理する一纏まりの連続データを記憶した記憶
装置から得た連続データをデータ処理するクライアント
装置において、前記記憶装置に記憶された前記連続デー
タのうち、前記データ処理に要する時間が前記記憶装置
の読み出し遅延に相当する量またはそれを越える量のデ
ータを先頭から連続して保持しておくデータ先頭部保持
手段と、前記データ先頭部保持手段に保持されている前
記連続データの先頭から前記データ処理が開始されるの
と同時にまたは相前後して、前記記憶装置に記憶された
前記連続データのうち前記データ先頭部保持手段に保持
されているデータの続き位置またはそれより所定データ
量前の位置から後続するデータに対する読み出し要求を
出す手段とを備えたことを特徴とする。
【0022】本発明(請求項2)は、前記記憶装置に複
数記憶された前記連続データのうち前記データ先頭部保
持手段に先頭部を保持しておく候補と各候補の優先度か
らなる情報に基づいて、前記データ先頭部保持手段に先
頭部を保持しておく連続データを決定する手段をさらに
備えたことを特徴とする請求項1に記載のクライアント
装置。
【0023】好ましくは、前記情報における前記優先度
を、前記連続データの実際の読み出し状況に応じて更新
する手段をさらに備えたことを特徴とする。これらの発
明は1台の記憶装置に対してアクセス可能なクライアン
ト装置が1台でも複数台でも適用可能である。例えば、
記憶装置がネットワークにつながって複数のクライアン
ト装置が存在する場合でも、記憶装置がローカルに接続
されたCD−ROMであっても適用可能である。
【0024】また、次の発明は、クライアント装置が複
数台存在する場合または複数のクライアント装置が共有
のネットワークを利用する場合に適用可能な発明であ
る。本発明(請求項3)は、ネットワークにより請求項
1に記載のクライアント装置が接続され、請求項1に記
載の記憶装置を備え、該クライアント装置からの要求に
応じて該記憶装置に記憶されたデータを提供するサーバ
装置であって、前記記憶装置へのアクセスの集中度およ
び前記ネットワークの混雑度に応じて、読み出し要求の
種類ごとに許可または禁止を指示するための読み出し条
件を決定する手段と、決定された前記読み出し条件を前
記クライアント装置に指示する手段とを備え、前記読み
出し条件は、読み出しの余裕度が高い方から順に、任意
の読み出し許可、データ先頭部プリフェッチ読み出し禁
止、データ先頭部プリフェッチ読み出しおよび前記デー
タ先頭部保持手段に保持しているデータ先頭部を用いた
後続部読み出し禁止とすることを特徴とする。
【0025】本発明(請求項4)は、所定のデータ処理
を行なうクライアント装置が、連続して処理する一纏ま
りの連続データを記憶した記憶装置から処理対象データ
を得るための記憶装置制御方法において、前記記憶装置
に記憶された前記連続データのうち所定のものについ
て、前記データ処理に要する時間が前記記憶装置の読み
出し遅延に相当する量またはそれを越える量のデータを
該連続データの先頭から連続して保持しておき、先頭部
が保持されている前記連続データに対する処理要求に応
じ、保持されている前記連続データの先頭から前記デー
タ処理を開始し、前記データ処理を開始するのと同時に
または相前後して、前記記憶装置に記憶された前記連続
データのうち前記データ先頭部保持手段に保持されてい
るデータの続き位置またはそれより所定データ量前の位
置から後続するデータについての読み出し要求を出すこ
とを特徴とする。
【0026】本発明(請求項5)は、連続して処理する
一纏まりの連続データを記憶した記憶装置を有するサー
バ装置と、ネットワークを介して該サーバ装置から所望
の連続データを得るとともに、所定の連続データについ
てデータ先頭部プリフェッチ読み出しおよび後続部読み
出しを行なうクライアント装置とを備えたシステムにお
いて該サーバ装置が該クライアント装置からの読み出し
アクセスを制御するための記憶装置制御方法であって、
前記記憶装置へのアクセスの集中度および前記ネットワ
ークの混雑度に応じて、読み出し条件を、任意の読み出
し許可、データ先頭部プリフェッチ読み出し禁止、また
はデータ先頭部プリフェッチ読み出しおよび前記データ
先頭部保持手段に保持しているデータ先頭部を用いた後
続部読み出し禁止のうちから決定し、決定された前記読
み出し条件を前記クライアント装置に指示することを特
徴とする。
【0027】好ましくは、前記記憶装置へのアクセスが
集中していると判断された場合には、少なくともデータ
先頭部プリフェッチ読み出し禁止を含む読み出し条件を
決定し、クライアント装置はデータ先頭部プリフェッチ
をせず、サーバ装置はデータ先頭部プリフェッチ要求を
キャンセルすることを特徴とする。
【0028】(作用)本発明(請求項1,4)では、デ
ータの転送速度は処理速度に匹敵するだけの容量を持つ
が、読み出しの遅延(latency)の大きな記憶装
置からのデータの読み出しを行う場合に、処理に必要な
データの全てをキャッシングしたり、プリフェッチする
のではなく、データの先頭部分の読み出しの遅延時間に
相当する量だけをキャシングしたり、プリフェッチを行
なう。
【0029】データを読み出す場合には、データの先頭
部分がキャッシュに格納されているならば、例えばその
後続部分の読み出し要求を出した後にその先頭部分のデ
ータを処理する。先頭部分はデータ読み出し遅延時間に
相当する分量だけあり、そのデータが処理し終わる前に
は後続部のデータが到着するので、そのデータを用いて
切れ目なく続きの処理を行なうことができる。
【0030】このように、少ないデータのキャッシング
やプリフェッチングにより、連続データを遅延時間少な
く処理することができる。本発明(請求項2)によれ
ば、プリフェッチすべきデータの情報が優先度付きで与
えられるので、効率のよいプリフェッチが可能となる。
【0031】また、優先度を実際の読み出し状況に応じ
て更新するようにすれば、プリフェッチすべきデータの
情報が今までに一連のデータをアクセスしてきた過去の
データから学習されるので、より現実に即したプリフェ
ッチ情報となり有効である。
【0032】本発明(請求項3,5)では、複数のクラ
イアント装置が一台のサーバ装置へアクセスしようとし
て、記憶装置内の制御やサーバ装置へのネットワークが
混雑したような場合には、緊急性の低いデータアクセス
を禁止するために、プリフェッチ要求は出さないように
クライアント装置に指示する。なぜならば、プリフェッ
チで要求されたデータは必ずしも使われないので重要度
が低いからである。
【0033】また、一台の記憶装置にアクセスが集中し
て、所定の遅延時間内にデータを提供できないような場
合には、クライアント装置がキャッシュ内の先頭データ
を用いて、後続データを要求されないようにする。も
し、非常に混雑している時にそのような処理を行なう
と、先頭部分の処理が終了しても、後続のデータが要求
元のクライアント装置に到着しないことがあるからであ
る。
【0034】このように、データが途切れる可能性があ
る場合には、後続部の読み出しを禁止するようにサーバ
装置からクライアント装置に通達する。後続部の読み出
しを禁止するのは、頭出しが速くても、その後で先頭部
分の処理が終了したところでデータが途切れるよりは、
頭出しが遅くても途切れないデータ供給を行なうためで
ある。
【0035】また、例えばサーバ装置側でデータの要求
に対応しきれないと判断し、プリフェッチをしないよう
にとクライアント装置に指示を出しても、行き違いでそ
のような指示を出した後にプリフェッチ要求が来ること
がある。したがって、このような場合には、前述のよう
にそのプリフェッチ要求をキャンセルするのが好まし
く、また、クライアント装置側でも、読み出し遅延が予
期していた時間よりも長い場合には自主的にプリフェッ
チ要求を出すことを控えるのが好ましい。
【0036】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。まず、以下で用いる語句を定義
する。「プリフェッチ」とは、データを実際に使用する
状況が生じる前に、あらかじめ読み出しておくことを言
う。プリフェッチは、データアクセス時の遅延を隠蔽す
る効果を有する。
【0037】「キャッシング」とは、一度読み出したデ
ータをローカルなより高速のメモリに格納しておき、次
にそのデータが必要な場合には、元々そのデータがあっ
たところからではなく、該高速メモリから読み出すこと
を言う。
【0038】図1に、この実施の形態に係るシステム構
成図を示す。図1に示すように、動画サーバ301と複
数のクライアント305とがネットワーク304を介し
て接続されている。なお、図1では、1台のクライアン
トのみ示し、他のクライアントは省略した。
【0039】動画サーバ301は、動画データを保持す
る記憶装置302と通信制御を行う通信部303を備え
ている。一方、各クライアント305は、ネットワーク
を介した通信を行う通信部306、高速記憶装置30
8、制御部307および表示部309を備えている。
【0040】図1のシステムにおけるデータの流れは次
のようになる。図示しない入力装置からユーザにより再
生要求が入力されるなどすると、これに応じて制御部3
07で動画再生要求が発生する。この動画再生要求は、
通信部306を通り、ネットワーク304を介して動画
サーバ301の通信部303に到達する。これが記憶装
置302に伝わり、要求されたデータが通信部303、
ネットワーク304、通信部306を通って、高速記憶
装置308に格納される。このデータを制御部307で
読みとり、コード変換やタイミング処理を行って表示部
309に表示する。
【0041】次に、動画サーバ301側での処理につい
て説明する。まず、記憶装置302内の制御装置(図示
せず)は、アクセスの集中が起こっているか否かを判断
するとともに、ネットワークの混雑の度合いを調べてい
る。
【0042】もしプリフェッチ要求が多く、それがアク
セス集中を招いていると判断した場合には、そのことを
ネットワーク309を介してクライアント305に伝え
る。また、所定の頭出し待ち時間を守れないと判断した
場合にも、その旨をクライアント305に知らせる。ま
た、アクセスの集中が緩和された場合には、その制限を
取り除くことをクライアント305に通達する。さら
に、プリフェッチを禁止したのちに来たプリフェッチの
要求に対しては、要求を却下する返事を要求を出したク
ライアント305に返す。なお、プリフェッチの情報と
して、次に(もしくは近い将来に)アクセスする可能性
の高いと思われる動画データのリストを優先度付きでク
ライアント305に伝える。
【0043】次に、クライアント305側の処理につい
て説明する。図2にクライアント305側に持つデータ
構造を示す。このデータ構造は、キャシングもしくはプ
リフェッチによって格納された先頭部データを管理する
ために用いる。
【0044】動画データは、識別番号idで区別され
る。識別番号idは非負整数である。この識別番号id
をもとにハッシュ表を用いて、先頭部データを管理す
る。これには、配列hash,配列id,配列next
を用いる。これらの配列の初期値は全て−1である。配
列hashはH個の要素を持ち、配列idと配列nex
tはそれぞれN個の要素を持つ。
【0045】さらに、キャッシュのアクセス頻度cac
he、プリフェッチの優先度pref、具体的なデータ
の居場所を表すadrを用いる。これらは全てN個の要
素を持つ配列である。prefの値が大きい方を優先度
が高いものとする。
【0046】具体的なデータの存在場所は半導体メモリ
であっても、磁気ディスクであってもよい。この値は初
期状態から設定されている。すなわち、メモリ上の領域
を取った上でadrが設定されていなければならない。
【0047】また、本実施形態では、上記のものの他に
以下の変数を用いる。 「busy_status」 busy_statusは、動画サーバから与えられる
混雑の度合いに応じた状態を表す。busy_stat
usのとる値と、各値により示される状態は以下のとお
りである。 0...通常 1...プリフェッチ禁止 2...プリフェッチ禁止及びローカルに格納している
データ先頭部を用いた後続部読み出し禁止 「net_using」 net_usingは、ネットワークを介して動画サー
バにアクセス中か否かを示す状態変数である。net_
usingのとる値と、各値により示される状態は以下
のとおりである。 0...非アクセス中(初期状態) 1...アクセス中 「head」headは、データの先頭部を格納すべき
場所adr[head]を示す識別子である。head
は、格納する必要がない場合には−1となっており、−
1が初期状態である。
【0048】「reading」readingは、プ
リフェッチ要求ではなく実際に動画データを読み込もう
としているかどうかを示す状態変数である。readi
ngのとる値と、各値により示される状態は以下のとお
りである。 0...読み込もうとしていない(初期状態) 1...読み込もうとしている 「pref_n」pref_nは、動画サーバから送ら
れてくるプリフェッチ情報のアイテム数である。
【0049】「pref_id」pref_idは、動
画サーバから送られてくるプリフェッチすべきデータの
識別子の配列であり、その要素数はpref_nであ
る。
【0050】「pref_pr」pref_prは、動
画サーバから送られてくるプリフェッチすべきデータの
優先度の配列である。pref_prは、pref_i
dに対応しており、その要素数はpref_nである。
このpref_prが高い順に並べられて送られてく
る。この各要素の値の最大値はCである。
【0051】「ipr」iprは、次に処理すべきpr
ef_idを示す識別子であり、次にpref_id
[ipr]を処理すべきであるということを示す。
【0052】「C」Cは、最大の優先度を表す正定数で
ある。次に、クライアント305に係わるフローチャー
トを説明する。
【0053】ここで、以下の説明で参照するフローチャ
ートを列挙する。図3に番号iiの動画データを読み出
す手順read(ii)を示す。図4に時計割り込み時
の処理を示す。図5にネットワークからのメッセージの
到着時の処理を示す。図6に識別子iiの動画データの
先頭データが格納されている位置を調べるfind(i
i)を示す。図7に識別子iiの動画データの先頭デー
タをj番目の位置に格納するための処理add(ii,
j)を示す。図8に識別子iiの動画データの先頭デー
タを削除するための処理delete(ii)を示す。
図9に新たな動画データの先頭データを格納すべき位置
を検索する関数find_placeを示す。図10に
各データの優先度を落とすdecrement処理を示
す。図11に保持しているデータのうちで最も優先度の
低いものを探すmin_prという処理を示す。
【0054】まず、図3を参照しながら番号iiの動画
データを読み出す手順read(ii)について説明す
る。まず、変数readingを1に設定する(ステッ
プS501)。この設定はread(ii)の最後で0
に戻すまで変わらない(ステップS515)。次に、自
クライアントからデータの要求があればそれが終わるま
で待つ(ステップS502)。ネットワークからデータ
が届くと割り込み処理によって処理されるので、ステッ
プS502は無限ループになることはない。次に、fi
nd(ii)で識別子iiのデータの先頭部が既に格納
されているかどうかを調べる(ステップS503)。そ
して、ネットワークを使用中にする(ステップS50
4)。
【0055】もし、ローカルに格納しているデータ先頭
部を用いた後続部読み出しが許可されていてかつ先頭部
が格納されているならば(ステップS505)、その続
きからの読み出し要求を出し(ステップS506)、格
納されているデータの優先度を下げ(ステップS50
7)、今回アクセスがあったj番目の要素については優
先度を上げ(ステップS508)、格納されている先頭
部のデータadr[j]を処理するように指示を出す
(ステップS509)。
【0056】一方、ローカルに格納しているデータ先頭
部を用いた後続部読み出しが禁止されているかもしくは
先頭部が格納されていないならば(ステップS50
5)、最初からの読み出しを要求する(ステップS51
0)。もし先頭部のデータが格納されていないならば
(ステップS511)、その先頭部を格納する場所を探
し、その場所をheadとする(ステップS512)。
先頭部データの優先度を一律に下げた後に(ステップS
513)、今回アクセスがあるj番目の要素については
優先度を上げる(ステップS514)。
【0057】上記のフローでは簡単のため、ローカルに
格納しているデータ先頭部を用いた後続部読み出しが禁
止されていているが、先頭部が格納されている場合で
も、先頭部からデータを読み込むようになっている。し
かし、より一層の高速化のためには、そのような場合に
は、後続部分から読み出すように制御することもでき
る。
【0058】次に、図4を参照しながら時計割り込み時
の処理について説明する。時計割り込みが入ってきたと
きにプリフェッチを行うが、プリフェッチは優先度の低
い処理であるので、処理を目的として動画データを読み
とり中であったり(ステップS601)、何らかの目的
(別のプリフェッチである場合も含む)でデータを読み
とり中であったり(ステップS602)、動画サーバか
らプリフェッチが禁止されている場合(ステップS60
3)には、プリフェッチをせずに本処理を終了させる。
【0059】サーバから送られてきたプリフェッチのヒ
ントはn_pref個であるので、現在処理中のものi
prがこれを越えていれば(ステップS604)、プリ
フェッチするものがこれ以上ないので本処理を終了す
る。
【0060】ステップS604〜S607では、プリフ
ェッチすべきデータを探す。既にローカルに格納されて
いる場合はスキップする(ステップS605〜S60
7)。もしあれば、そのデータを格納すべき位置を検索
する(ステップS608)。その検索された位置である
jと優先度を比べ(ステップS609)、もしiprの
方が低ければ、iprを最大の整数MAXINTにし
(ステップS610)、これ以上プリフェッチをしない
ようにする。なぜならば、pref_idは優先度の高
い順に並んでいるからである。現在格納されているデー
タの中で一番低い優先度よりもpref_id[ip
r]の優先度は低いので、それ以上先を先を調べる必要
はない。
【0061】もし優先度が高いならば(ステップS60
9)、j番目の要素を削除しそこに今回のプリフェッチ
の先頭部データを格納するように設定する(ステップS
611)。pref_id[ipr]番のデータの先頭
部分をプリフェッチするように指示を出す(ステップS
612)。最後にiprをインクリメントする(ステッ
プS613)。
【0062】次に、図5を参照しながらネットワークか
らのメッセージの到着時の処理について説明する。サー
バからメッセージが到着すると割込みが入り、この処理
が実行される。まず、メッセージの種類を判別する(ス
テップS701)。
【0063】もし、それが要求したデータ(ここでは動
画データ)であるならば、その先頭部をキャッシングす
るかどうかを判断する(ステップS702)。もし、キ
ャッシングするならば、受信メッセージの先頭から所定
の大きさの部分をadr[head] で指定された領域
に格納し(ステップS703)、headを−1にして
無効にする(ステップS704)。なお、プリフェッチ
の要求時もステップS703,S704の処理を実行す
る。
【0064】これがプリフェッチに対する要求の結果得
られたデータでないならば(ステップS705)、その
データを処理する(ステップS706)。例えば、その
データが動画である場合には再生する。そして、net
_usingに0を代入してnet_usingを非ア
クセス中(初期状態)にする(ステップS707)。
【0065】もしメッセージの種類がシステムメッセー
ジであるならば(ステップS701)、メッセージの内
容により個々別々の処理を行う。まず、プリフェッチ失
敗のメッセージであるならば(ステップS708)、用
意しておいたプリフェッチ部の格納領域headを解放
し(ステップS709)、headに−1を代入してh
eadを無効にする(ステップS710)。そして、n
et_usingに0を代入してnet_usingを
非アクセス中(初期状態)にする(ステップS70
7)。
【0066】また、busy_statusの変更のメ
ッセージであるならば(ステップS711)、指定され
たようにbusy_satausを変更する(ステップ
S712)。何をプリフェッチすべきかに関する情報で
あるならば(ステップS713)、その情報に従って、
pref_n,pref_id,pref_prを設定
し(ステップS714)、変数iprを0に初期化する
(ステップS715)。
【0067】その他のシステムメッセージの処理はステ
ップS716で行う。次に、図6を参照しながら識別子
iiの動画データの先頭データが格納されている位置を
調べる手順find(ii)について説明する。
【0068】検索にはハッシュ法を用いている。識別番
号iiに対応する動画データの先頭部分のデータのある
場所はハッシュ表hashによって管理されている。こ
の配列hashはH個の要素を持つ。
【0069】ハッシュ関数は簡単のためHで割った剰余
を用いる(ステップS801)。ii番のデータがある
かどうかについてはhash[ii]を調べる。これが
−1ならばそのデータはないことを意味する(ステップ
S802)。この場合は、なかったという意味で−1を
返す(ステップS808)。もしあれば、hash
[i]の値を変数jに設定する(ステップS803)。
id[j]がiiであるようなものがあるかどうかをn
extをたどりながら検索する(ステップS804〜S
806)、もしあれば(ステップS804)、そのjを
返し(ステップS807)、なければ−1を返す(ステ
ップS808)。
【0070】次に、図7を参照しながら識別子iiの動
画データの先頭データをj番目の位置に格納するための
処理add(ii,j)について説明する。まず、ハッ
シュ関数を引き(ステップS901)、そのハッシュ値
iを持つ物がすでにあるかどうかを調べる(ステップS
902)。もしあれば、新たに加える要素jのnext
にいままでつながっていたものをつなげ(ステップS9
03)、なければ終りの意味でnextを−1に設定す
る(ステップS904)。そしてjに関して配列の要素
を初期化する(ステップS905)。
【0071】次に、図8を参照しながら識別子iiの動
画データの先頭データを削除するための処理delet
e(ii)について説明する。まず、ハッシュ関数を引
き(ステップS1001)、削除すべきものがあるべき
場所を探す(ステップS1002〜S1004)。id
[j]がiiに一致するまで検索を行う(ステップS1
003)。ここで変数kは変数jの一つ前の要素を指し
ている。これによりステップS1005〜S1007に
あるようにiiを削除した後にも正しく他の要素が連結
されているようにする。
【0072】次に、新たな動画データの先頭データを格
納すべき位置を検索する処理について説明する。図9に
新たな動画データの先頭データを格納すべき位置を検索
する関数find_placeを示す。
【0073】場所としては、総合優先度が負であるもの
が選ばれる。それがない場合には、総合優先度が正で最
少のものが選ばれる。各要素は優先度としてcache
とprefを持つが、総合優先度として両者の和を用い
る。
【0074】変数jは要素を一つ一つ辿るための識別子
であり、0から始まり(ステップS1101)、インク
リメントしながら(ステップS1107)、Nまで走査
する(ステップS1108)。最少の優先度minの初
期値は2Cとする(ステップS1101)。なお、優先
度はこの値を超えないようになっている。
【0075】走査中にid[j]が負であるものが見つ
かれば(ステップS1102)、その領域は未使用なの
で、使うことにし、jを返す(ステップS1111)。
各走査において、id[j]が負でなければ(ステップ
S1102)、総合優先度vを求めるが(ステップS1
103)、もしそれが負であれば(ステップS110
4)、その領域を用いる。この領域は既に使用されてい
るので、領域を解放し(ステップS1112,S110
9)、その番号を返す(ステップS1110)。
【0076】また、id[j]が負でなく(ステップS
1102)、総合優先度vが負でない場合(ステップS
1104)、総合優先度vが今まで保持しているものよ
りも小さいければ、総合優先度vで最少の優先度min
を置き換えを行ない(ステップS1105,S110
6)、総合優先度が正で最少のものを選ぶ。
【0077】次に、各データの優先度を落とすdecr
ement処理を示す。図10にdecrement処
理を示す。この処理ではキャッシングされている各要素
の優先度を下げる。ただし、優先度が既に負であるもの
に対しては作用させない(ステップS1202,S12
04)。また、cacheについては1を減じるが(ス
テップS1203)、prefについては2減じる(ス
テップS1205)。この減じ方の差は、キャッシング
により得た情報の方がプリフェッチで得た情報よりも重
要でると考えられるためである。
【0078】次に、保持しているデータのうちで最も優
先度の低いものを探すmin_pr処理について説明す
る。図11にこのmin_pr処理を示す。各要素は優
先度としてcacheとprefを持つが、総合優先度
として両者の和を用いる。
【0079】この処理ではiを0からN−1まで検索し
て(ステップS1301,S1302,S1305)、
総合優先度cache[i]+pref[i]が最少で
あるものを探す。検索中で最も小さい総合優先度は変数
vに格納され、その時の要素の番号がjに格納される
(ステップS1304)。最後に最少の総合優先度を持
つ要素番号jが返される(ステップS1306)。
【0080】以上のように本実施形態によれば、連続デ
ータの先頭部を保持(プリフェッチ/キャッシング)し
ておくので、連続データに対する高速な頭出しを実現す
ることができる。しかも、連続データのうち必要な量の
先頭部だけ保持するので、必要とする記憶域が少なくて
すむ。また、アクセス状況等に応じてプリフェッチやキ
ャッシングの要求を制限するので、連続データの処理中
にデータの途切れが生じることを回避できる。
【0081】なお、以上に示したのは一実施形態であ
り、例えば以下のように変形を施すことができる。 動画データが動画サーバ内で変更になった場合には、
古い動画データ番号を欠番にするか、もしくは変更にな
った動画データに対しては既にキャッシングされている
ものを無効にする旨のメッセージをクライアントに流
す。
【0082】データをキャッシングする場所は、半導
体メモリであっても、磁気ディスクであってもよい。ま
た、これらの両方を併用しても良い。他のいかなる記憶
装置であっても、転送速度がデータ処理装置の処理速度
よりも速く、かつ、サーバの記憶装置からデータを取っ
てくるよりもアクセス遅延が小さければ効果がある。し
かし、キャッシングに用いる記憶装置のアクセス遅延の
大きさによって、記憶しておかなければならない先頭部
のデータ量は異なる。例えば、半導体メモリを用いる方
が、磁気ディスクを用いるよりもアクセス遅延が小さい
ので、記憶しておくべき先頭部記憶量も異なる。このよ
うに、キャッシングに用いる記憶装置のアクセス待ち時
間に応じてデータの先頭部記憶容量を設定することもで
きる。
【0083】動画のアクセスの仕方の順序を学習する
方法としては、アクセスマトリックスを用いる。すなわ
ち、i番目の動画を選んだ次にj番目の動画を選択する
頻度をマトリックスの形で表現する。ユーザからアクセ
スがあるたびにこのマトリックスを更新し、ある動画を
選んだ後に次にどの動画を選ぶ可能性が高いかを、マト
リックスをみてクライアントに知らせる。ただし、定数
Cを超えないように正規化する。
【0084】このマトリックスを遷移確率行列Aとする
と、次に読み出されるであろう動画の優先度はC*Aで
与えられる。もし、二回先の遷移までを減衰させながら
与えたいとすれば、C(2/3A+1/3A*A)で与
えられる。
【0085】また、クライアント側でローカルに遷移確
率情報を管理し、サーバの情報に頼らない方法もある。 先頭部のデータが格納されている領域はadrで最初
に決められた値が用いられる。このためデータの先頭部
が格納されている記憶装置のアクセス遅延時間とその先
頭部データの優先度とは関係がない。そこで、優先度が
高いものほどアクセス遅延時間が短い記憶装置にデータ
を格納するようにデータを再配置することも可能であ
る。
【0086】また、音楽用CDのように比較的順番に
聞く可能性が高いものについては、現在までに聞いた曲
の先頭部分をキャッシュしておくと共に、CDに記録さ
れている上での次の曲の先頭部分をプリフェッチしてお
くことも考えられる。このようにすれば、気に入った曲
を繰り返し聞いたり、興味のない曲を次に飛ばして聞く
ときに、高速な頭出しが可能となる。 本発明は、上述した実施の形態に限定されるものではな
く、その技術的範囲において種々変形して実施すること
ができる。
【0087】
【発明の効果】本発明によれば、連続データの先頭部を
保持(プリフェッチ/キャッシング)しておくので、連
続データに対する高速な頭出しを実現することができ
る。しかも、本発明によれば、連続データを全てではな
く必要な量の先頭部だけ保持するので、必要とする記憶
域が少なくてすむ。
【0088】また、本発明によれば、アクセス状況等に
応じてプリフェッチやキャッシングの要求を制限するの
で、連続データの処理中にデータの途切れが生じること
を回避できる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るシステムの構成を示
す図
【図2】クライアント側で持つデータ構造を示す図
【図3】番号iiの動画データを読み出す手順read
(ii)を示すフローチャート
【図4】時計割り込み時の処理を示すフローチャート
【図5】ネットワークからのメッセージの到着時の処理
を示すフローチャート
【図6】識別子iiの動画データの先頭データが格納さ
れている位置を調べるfind(ii)を示すフローチ
ャート
【図7】識別子iiの動画データの先頭データをj番目
の位置に格納するための処理add(ii,j)を示す
フローチャート
【図8】識別子iiの動画データの先頭データを削除す
るための処理delete(ii)を示すフローチャー
【図9】新たな動画データの先頭データを格納すべき位
置を検索する関数find_placeを示すフローチ
ャート
【図10】各データの優先度を落とすdecremen
t処理を示すフローチャート
【図11】保持しているデータのうちで最も優先度の低
いものを探すmin_prという処理を示すフローチャ
ート
【図12】従来の記憶装置制御方式を説明するための図
【図13】従来の他の記憶装置制御方式を説明するため
の図
【符号の説明】
301…動画サーバ 302…記憶装置 303…通信部 305…クライアント 306…通信部 307…制御部 308…高速記憶装置 309…表示部

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】連続して処理する一纏まりの連続データを
    記憶した記憶装置から得た連続データをデータ処理する
    クライアント装置において、 前記記憶装置に記憶された前記連続データのうち、前記
    データ処理に要する時間が前記記憶装置の読み出し遅延
    に相当する量またはそれを越える量のデータを先頭から
    連続して保持しておくデータ先頭部保持手段と、 前記データ先頭部保持手段に保持されている前記連続デ
    ータの先頭から前記データ処理が開始されるのと同時に
    または相前後して、前記記憶装置に記憶された前記連続
    データのうち前記データ先頭部保持手段に保持されてい
    るデータの続き位置またはそれより所定データ量前の位
    置から後続するデータに対する読み出し要求を出す手段
    とを備えたことを特徴とするクライアント装置。
  2. 【請求項2】前記記憶装置に複数記憶された前記連続デ
    ータのうち前記データ先頭部保持手段に先頭部を保持し
    ておく候補と各候補の優先度からなる情報に基づいて、
    前記データ先頭部保持手段に先頭部を保持しておく連続
    データを決定する手段をさらに備えたことを特徴とする
    請求項1に記載のクライアント装置。
  3. 【請求項3】ネットワークにより請求項1に記載のクラ
    イアント装置が接続され、請求項1に記載の記憶装置を
    備え、該クライアント装置からの要求に応じて該記憶装
    置に記憶されたデータを提供するサーバ装置であって、 前記記憶装置へのアクセスの集中度および前記ネットワ
    ークの混雑度に応じて、読み出し要求の種類ごとに許可
    または禁止を指示するための読み出し条件を決定する手
    段と、 決定された前記読み出し条件を前記クライアント装置に
    指示する手段とを備え、 前記読み出し条件は、読み出しの余裕度が高い方から順
    に、任意の読み出し許可、データ先頭部プリフェッチ読
    み出し禁止、データ先頭部プリフェッチ読み出しおよび
    前記データ先頭部保持手段に保持しているデータ先頭部
    を用いた後続部読み出し禁止とすることを特徴とするサ
    ーバ装置。
  4. 【請求項4】所定のデータ処理を行なうクライアント装
    置が、連続して処理する一纏まりの連続データを記憶し
    た記憶装置から処理対象データを得るための記憶装置制
    御方法において、 前記記憶装置に記憶された前記連続データのうち所定の
    ものについて、前記データ処理に要する時間が前記記憶
    装置の読み出し遅延に相当する量またはそれを越える量
    のデータを該連続データの先頭から連続して保持してお
    き、 先頭部が保持されている前記連続データに対する処理要
    求に応じ、保持されている前記連続データの先頭から前
    記データ処理を開始し、 前記データ処理を開始するのと同時にまたは相前後し
    て、前記記憶装置に記憶された前記連続データのうち前
    記データ先頭部保持手段に保持されているデータの続き
    位置またはそれより所定データ量前の位置から後続する
    データについての読み出し要求を出すことを特徴とする
    記憶装置制御方法。
  5. 【請求項5】連続して処理する一纏まりの連続データを
    記憶した記憶装置を有するサーバ装置と、ネットワーク
    を介して該サーバ装置から所望の連続データを得るとと
    もに、所定の連続データについてデータ先頭部プリフェ
    ッチ読み出しおよび後続部読み出しを行なうクライアン
    ト装置とを備えたシステムにおいて該サーバ装置が該ク
    ライアント装置からの読み出しアクセスを制御するため
    の記憶装置制御方法であって、 前記記憶装置へのアクセスの集中度および前記ネットワ
    ークの混雑度に応じて、読み出し条件を、任意の読み出
    し許可、データ先頭部プリフェッチ読み出し禁止、また
    はデータ先頭部プリフェッチ読み出しおよび前記データ
    先頭部保持手段に保持しているデータ先頭部を用いた後
    続部読み出し禁止のうちから決定し、 決定された前記読み出し条件を前記クライアント装置に
    指示することを特徴とする記憶装置制御方法。
JP7232516A 1995-09-11 1995-09-11 クライアント装置、サーバ装置及び記憶装置制御方法 Pending JPH0981455A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7232516A JPH0981455A (ja) 1995-09-11 1995-09-11 クライアント装置、サーバ装置及び記憶装置制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7232516A JPH0981455A (ja) 1995-09-11 1995-09-11 クライアント装置、サーバ装置及び記憶装置制御方法

Publications (1)

Publication Number Publication Date
JPH0981455A true JPH0981455A (ja) 1997-03-28

Family

ID=16940560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7232516A Pending JPH0981455A (ja) 1995-09-11 1995-09-11 クライアント装置、サーバ装置及び記憶装置制御方法

Country Status (1)

Country Link
JP (1) JPH0981455A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10304336A (ja) * 1997-04-30 1998-11-13 Matsushita Electric Ind Co Ltd マルチメディア情報提供装置
KR100289297B1 (ko) * 1997-08-28 2001-05-02 포만 제프리 엘 클라이언트측의 비동기적 양식관리 방법 및 그 시스템
KR20010046638A (ko) * 1999-11-13 2001-06-15 김범훈 퍼스널 컴퓨터의 인터넷 그림 연속 프로그램 제어방법
KR100377715B1 (ko) * 1997-09-29 2003-03-26 인터내셔널 비지네스 머신즈 코포레이션 처리 시스템
US7203760B2 (en) 2000-11-02 2007-04-10 Sony Computer Entertainment Inc. System for distributing content data according to user-set content distribution schedules
KR100753831B1 (ko) * 2005-12-08 2007-08-31 한국전자통신연구원 객체 기반 스토리지 시스템에서 고속의 객체 입출력 처리장치 및 방법
JP2016184774A (ja) * 2015-03-20 2016-10-20 ヤフー株式会社 情報処理装置、情報処理方法、情報処理プログラム、および配信装置
JP2022534353A (ja) * 2019-04-16 2022-07-29 チームグリット インターネットを介するリアルタイム参与型ストリーミングサービス提供方法及びその装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10304336A (ja) * 1997-04-30 1998-11-13 Matsushita Electric Ind Co Ltd マルチメディア情報提供装置
KR100289297B1 (ko) * 1997-08-28 2001-05-02 포만 제프리 엘 클라이언트측의 비동기적 양식관리 방법 및 그 시스템
KR100377715B1 (ko) * 1997-09-29 2003-03-26 인터내셔널 비지네스 머신즈 코포레이션 처리 시스템
KR20010046638A (ko) * 1999-11-13 2001-06-15 김범훈 퍼스널 컴퓨터의 인터넷 그림 연속 프로그램 제어방법
US7203760B2 (en) 2000-11-02 2007-04-10 Sony Computer Entertainment Inc. System for distributing content data according to user-set content distribution schedules
KR100753831B1 (ko) * 2005-12-08 2007-08-31 한국전자통신연구원 객체 기반 스토리지 시스템에서 고속의 객체 입출력 처리장치 및 방법
JP2016184774A (ja) * 2015-03-20 2016-10-20 ヤフー株式会社 情報処理装置、情報処理方法、情報処理プログラム、および配信装置
US10104444B2 (en) 2015-03-20 2018-10-16 Yahoo Japan Corporation Information processing apparatus, information processing method, non-transitory computer readable storage medium, and distribution apparatus
JP2022534353A (ja) * 2019-04-16 2022-07-29 チームグリット インターネットを介するリアルタイム参与型ストリーミングサービス提供方法及びその装置

Similar Documents

Publication Publication Date Title
US6434680B2 (en) Multimedia data storage system and method for operating a media server as a cache device and controlling a volume of data in the media server based on user-defined parameters
Gemmell et al. Multimedia storage servers: A tutorial
US7571167B1 (en) Peer-to-peer network content object information caching
JP4818562B2 (ja) 漸進的により高品質のバージョンのオーディオおよび/またはビデオプログラムを得るための方法およびコンピュータネットワーク
US6119144A (en) Apparatus and method for information transfer between a video server and a general purpose computer or the like
US20080271130A1 (en) Minimizing client-side inconsistencies in a distributed virtual file system
JPH11119923A (ja) データアクセス制御装置及びデータアクセス制御プログラムを記録した媒体
JP2008507160A (ja) バックグラウンド・トランスコード
JPH0981455A (ja) クライアント装置、サーバ装置及び記憶装置制御方法
JPH09265429A (ja) データ配信装置、記憶装置とその制御方法およびデータ転送システム
KR20020057837A (ko) 스트리밍 서비스 방법 및 장치
JP2000259468A (ja) ファイルシステムにおけるバッファキャッシュ方法および装置
US6564231B1 (en) Method for managing optical disk library files in accordance with the frequency of playback requests selected simultanenously at a specified time intervals
WO2000058837A1 (fr) Gestion de fichiers, enregistrement/reproduction de donnees et dispositifs a cet effet
JP3060877B2 (ja) マルチメディアシナリオ再生装置
US6678469B1 (en) Recorded information reproducing apparatus
JP3441028B2 (ja) マルチメディア端末装置
JP3193851B2 (ja) ビデオサーバ装置
JP3355992B2 (ja) マルチメディア情報提供装置
JP2875977B2 (ja) 補助貯蔵器を備えたビデオサービス装置
JPH1198448A (ja) ビデオサーバ装置及びそのアクセス処理方法
JPH10133946A (ja) データ読み出し方法およびその装置
JPH1021014A (ja) ビデオサーバ装置
JPH0348321A (ja) 記憶方式、および、記憶装置
JPH1097456A (ja) クライアント/サーバシステムにおけるデータ転送方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040601