JPH08297602A - 広域ネットワークを介して要求に応じてマルチメディアおよびビデオ情報を配布するためのディスク・アクセス方法 - Google Patents

広域ネットワークを介して要求に応じてマルチメディアおよびビデオ情報を配布するためのディスク・アクセス方法

Info

Publication number
JPH08297602A
JPH08297602A JP7315240A JP31524095A JPH08297602A JP H08297602 A JPH08297602 A JP H08297602A JP 7315240 A JP7315240 A JP 7315240A JP 31524095 A JP31524095 A JP 31524095A JP H08297602 A JPH08297602 A JP H08297602A
Authority
JP
Japan
Prior art keywords
disk
data
stream
disks
network
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.)
Granted
Application number
JP7315240A
Other languages
English (en)
Other versions
JP3369821B2 (ja
Inventor
Jack L Kouloheris
ジャック・ローレンス・コウロヘリス
Manoj Kumar
マノジュ・クマル
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08297602A publication Critical patent/JPH08297602A/ja
Application granted granted Critical
Publication of JP3369821B2 publication Critical patent/JP3369821B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • H04N21/2326Scheduling disk or memory reading operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 サーバから、通信ネットワークに接続された
複数のクライアントにマルチメディア・ビデオ・データ
を配布すること。 【解決手段】 ストライプが可変長になる場合でも、事
前処理したビデオおよびマルチメディア・データ・パケ
ットが固定再生時間単位で複数のディスクにわたってス
トライプ化される。複数のビデオ・ストリームまたは連
続メディア・ストリームを配布するため、所与の瞬間に
各種のディスクが各種のストリーム用のビデオまたはマ
ルチメディア・データにアクセスするように、アレイ内
のディスクが同時にアクセスされる。連続メディア・フ
ァイルを読み取るためのディスクへのアクセスは定期的
にスケジューリングされ、その周期はストライプの再生
時間に等しい。ディスク空間をシリンダ単位に割り振
り、可変サイズのビデオ・ストライプをパック形式で格
納することにより、ディスク記憶装置が効率よく使用さ
れる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、サーバから多数の
要求側クライアントに対して通信ネットワークを介して
データ、本質的にマルチメディア/ビデオ・データを配
布する方法および装置に関する。
【0002】
【従来の技術】技術の進歩により、家庭用および商用の
対話式マルチメディア・サービスが可能になると広く考
えられている。計画されている住宅向けサービスとして
は、映画、ニュース、スポーツ、TV番組などのビデオ
・オン・デマンド、ホーム・ショッピング、対話式ゲー
ム、代理旅行、広範囲の教育・情報サービスなどが挙げ
られる。商用サービスとしては、ビデオ・メール、会議
録、マルチメディア・マニュアル、トレーニング、不動
産業界が使用する販売用住宅紹介ビデオや旅行業界の行
楽地紹介ビデオなどの業界固有の用途がある。
【0003】VLSI技術の集積レベルの上昇は、圧縮
/圧縮解除ハードウェアの縮小に役立ち、ADSL(非
対称ディジタル加入者回線)などの技術を可能にした。
この2点により、ユーザの自宅から動画を送受信し、そ
れを地元の電話局で切り替え、その結果、それぞれのユ
ーザに専用のビデオ・チャネルを提供することが実用的
になる。同様に、光ファイバ伝送技術の進歩とそのコス
ト低下により、ケーブルTVの幹線とフィーダ・システ
ムのアップグレードが可能になり、その結果、圧縮ディ
ジタル・ビデオを受信するためのヘッドエンドまでの専
用チャネルをそれぞれの活動加入者に提供できるほど十
分にネットワークの帯域幅を拡張する。直接放送衛星や
その他の無線通信技術の出現も、多数のエンド・ユーザ
とサーバとの間の専用ビデオ・チャネルを可能にしてい
る。また、パーソナル・コンピュータやセット・トップ
・ボックスも出現し、低コストのビデオ圧縮/圧縮解除
ハードウェアや強力だが低価格の新しいマイクロプロセ
ッサを利用して、ネットワーク化マルチメディア・アプ
リケーションを可能にしている。
【0004】エンド・ユーザ(クライアント)システム
とネットワーク・インフラストラクチャは、対話式マル
チメディア・サービスの要件を満たすために急速に進化
しているが、現在提案されているサーバは、対話式マル
チメディア・サービスの配布、特に広帯域ネットワーク
により適時使用のために直接クライアントにビデオを配
布するには実用的ではない。対話式マルチメディア・サ
ービス用のサーバとして現在可能な選択肢は、既製のメ
インフレームまたはワークステーション技術をベースと
した並列/クラスター化計算システムであった。これら
のシステム・アーキテクチャ、ハードウェア構成、オペ
レーティング・システム、入出力サブシステムは、以下
に説明するようにマルチメディア・データの配布には不
向きである。
【0005】メインフレームおよびワークステーション
・ベースの並列またはクラスター化システムのハードウ
ェアは、ビデオ・サーバの主な要件であるネットワーク
・インタフェースと入出力装置との間のデータ移動の強
調は極力限定して、集中アプリケーションを処理するた
めに最適化されている。たとえば、RS/6000ワー
クステーションのメモリからキャッシュへの帯域幅は4
00MB/秒であるのに対し、入出力装置またはネット
ワーク装置からシステムへの帯域幅はわずか80MB/
秒である。浮動小数点ユニットは、ビデオ/マルチメデ
ィア・データの配布に何も恩恵をもたらさず、システム
のコストを増加する。上記のキャッシュは、マルチメデ
ィア・データへのアクセス時に場所を細くするには小さ
すぎる。
【0006】メインフレームまたは並列コンピュータ・
ベースのサーバのオペレーティング・システムは、CP
Uの使用効率を最大限にし、タイム・シェアリング環境
でシステム・スループットを最大限にするように最適化
されている。すべてのジョブ(タスク/プロセス/スレ
ッド)は、CPUの制約を受けることが暗に想定されて
いる。したがって、入出力サブシステムも、最大帯域幅
かつ最小待ち時間で入出力要求によって要求されたデー
タを転送するよう最適化される。リアルタイム・タスク
が存在する場合にその締切り期限を満たすようシステム
資源の可用性を保証するのに必要なサポートは、このよ
うなリアルタイム・タスクにより高い優先順位を割り当
てることに限定されている。
【0007】これに対して、大規模ビデオ・サーバで
は、パフォーマンスが入出力帯域幅の制約を受けるはず
であり、CPU、メモリ、入出力装置などのシステム資
源の管理はそれに応じて行わなければならない。タスク
(プロセスまたはスレッド)の数はタイム・シェアリン
グ・システムの場合よりかなり多い。1つのビデオ・ス
トリームに対応するそれぞれのタスクは、ビデオの中断
なし再生をサポートするために十分なデータをクライア
ントに配布するというリアルタイムの制約を満足しなけ
ればならない。さらに、以下に詳述するように、それぞ
れのタスクでは、数百KB/秒〜数MB/秒の速度でデ
ィスクからデータを取り出し、ネットワークに配布する
必要がある。また、サーバ内に大型バッファを備える必
要性を回避するため、各マルチメディア・ストリームご
とに一定の間隔で数十〜数百KB単位でデータを取り出
さなければならない。ビデオ・データは、それよりかな
り小さい単位で一定の間隔でネットワークに配布しなけ
ればならない。
【0008】さらに、上記のサーバでは、磁気ディスク
のアレイ上に標準のオペレーティング・システム・ファ
イルとしてマルチメディア・データが格納される。その
データはそこから一部のプロセッサのデータ・メモリに
読み込まれ、そこでネットワーク・インタフェースを介
して伝送される前にネットワーク・プロトコルによって
処理される。これにより、2つの理由のためにサーバか
らクライアントへのマルチメディア・データの伝送速度
が低下する。まず第1に、データ・メモリをディスク・
アレイおよびネットワーク・インタフェースに接続する
入出力バス(またはデータ経路)を2回使用しなければ
ならず、そのため、ディスク・アレイからネットワーク
・インタフェースにデータを直接転送する場合に達成で
きる転送速度の半分になる。第2に、ネットワーク・プ
ロトコルを実行するCPUの速度によって、ディスク・
アレイからネットワークへデータを送信できる速度が制
限される。
【0009】最後に、ディスク・アレイ・サブシステム
自体は、通常、最小の待ち時間と最高の帯域幅で単一入
出力要求によって要求されたデータを取り出すように最
適化されている。この高帯域幅は、ディスク・アレイか
ら大きいブロック単位でデータを読み取ることによって
達成され、そのため、多数のマルチメディア・ストリー
ムを同時にサポートしなければならない場合に大型の半
導体記憶バッファを設ける必要性が生まれる。これは、
サーバの全コストを大幅に上昇させる。参考文献[8]
は、ディスクのアレイに基づく記憶システムの最新技術
を検討したものとしては優れたものである。したがっ
て、要約すると、現行のマルチメディア・サーバやディ
スク・アレイ・サブシステムのアーキテクチャおよびハ
ードウェア構成は、対話式マルチメディア・サーバとは
まったく異なる環境用に最適化されており、そのため、
現行サーバはマルチメディア情報を配布するには費用効
果が高くない。
【0010】マルチメディア/ビデオ・データを多数の
クライアントに同時に配布するという上記の問題に対す
る費用効果の高い解決策は、広帯域ネットワークを介し
てサーバからクライアントに大規模ファイルを転送する
場合にも適用可能である。このような状況では、クライ
アントが典型的なマルチメディア/ビデオ・クライアン
トよりかなり高い速度でネットワークからデータを受け
入れることができるとしても、ネットワークの使用法に
ついて予想されるコスト構造では、事前折衝集合帯域幅
で一定間隔の小さいサイズの塊でデータを送信する必要
が生じ、この集合帯域幅はサーバ内の入出力サブシステ
ムの帯域幅よりかなり低くなる。
【0011】汎用コンピュータをビデオ・サーバとして
使用する際の上記の制限により、このようなサーバの価
格性能比は、ビデオの配布に最適なように設計されたシ
ステムよりかなり高くならざるを得ない。汎用コンピュ
ータをビデオ・サーバとして使用する際の制限に対処す
るために一般に認知されている活動は、これまでは最小
限であり、ビデオ・サーバ・アプリケーションのディス
ク・スループットを最大限にするためにディスクのアレ
イ上のデータの配置を最適化すること[3、4]と、ビ
デオ・サーバ環境でのその再使用を最大限にするために
ディスクから取り出したデータをバッファするための方
策を最適化すること[5、6]またはファイル・システ
ムをビデオ・データ向けに最適化すること[7]に限定
されていた。このような改良策により、現行ビデオ・サ
ーバ・システムの価格性能比を2または4倍程度、改善
することができるが、対話式マルチメディア・サービス
を経済的に実行可能なものにするには、数百倍程度の改
善が必要である。
【0012】ストリーミングRAID(低価格ディスク
の冗長アレイ)システム[9]では、アレイ内のすべて
のディスクから同時にデータにアクセスすることによっ
て単一入出力要求が満足される、ディスク・アレイ・サ
ブシステムを使用している。各ディスクから取り出した
データが十分な大きさで、ディスク帯域幅の妥当な使用
効率が得られる場合は、要求全体ではデータが非常に大
きくなり、大型半導体バッファが必要になる。各ディス
クから取り出したデータが十分小さく、返される全デー
タに相応しいサイズを維持できる場合は、アレイ内のデ
ィスクの帯域幅の使用効率が非常に低くなる。
【0013】ジェフリース(Jeffries)他による米国特
許第5313585号には、システムCPUから受け取
った各入出力要求を複数のアトム命令(ディスク・コマ
ンド)に断片化するディスク・アレイ制御装置が記載さ
れている。アレイ内の各ディスクは専用のディスク待ち
行列を有し、アレイ制御装置によって生成されたアトム
・ディスク・コマンドが複数のディスクのディスク待ち
行列に待ち行列化される。しかし、単一入出力要求を完
了するのに必要なすべてのアトム・ディスク命令がディ
スク待ち行列に待ち行列化されてから、次の入出力要求
のアトム・ディスク・コマンドが待ち行列化される。こ
のため、1つの入出力要求が必要とするすべてのデータ
は直ちにフェッチされ、1つの入出力要求が要求したデ
ータを所与の時点で非常に高い帯域幅でCPUに返すよ
うに複数のディスクが同時に機能することになる。した
がって、入出力要求は互いに連続して処理される。個々
のディスクに関連するディスク制御装置は、アレイ制御
装置がディスク待ち行列にコマンドを待ち行列化した順
序とは異なる順序でコマンドをディスク待ち行列に待ち
行列化することができる。このような順序変更は、ディ
スク・スループットが最大限になるようにディスク制御
装置によって行われ、その結果、数個のディスク・コマ
ンドを実行する間に何らかのオーバラップが発生する。
上記の方式は、入出力要求に指定したすべてのデータを
できるだけ迅速にシステムCPUに返すことが有利な計
算環境では十分機能する。しかし、マルチメディア・サ
ーバ環境では、ビデオを再生するためにデータを使い切
る速度でビデオ・ファイルを送信する方が望ましく、そ
のため、上記の方式には、実際にビデオの再生に必要に
なるまでビデオ・データを保管するためにCPU内に大
型バッファが必要になるという欠点がある。
【0014】イスマン(Isman)他による米国特許第5
301310号では、ディスク・アレイ内に格納されて
いる最小論理単位のデータ(好ましい実施例では64ビ
ット・ワードであるが、多くの従来のディスク・アレイ
では1バイトである)がシステム内のすべてのディスク
にわたってストライプ化される、ディスク・アレイ・シ
ステムが教示されている。さらに、1つのワードから得
られるビットを各ディスクの異なる位置に格納すること
ができる。しかし、この方式も、十分機能するのは高帯
域幅で1つまたは複数の入出力要求のためにデータを取
り出す場合に限られ、ビデオ・サーバで必要になるよう
に複数の低帯域幅入出力要求を同時に処理する場合には
適していない。したがって、同特許も本発明とは無関係
である。
【0015】ハルフォード(Halford)による米国特許
第5128810号では、すべてのディスクがスピンド
ルで同期化され、各ワードのサブパートがすべてのディ
スクに同時に読み書きされる、ディスク・アレイが教示
されている。したがって、このアレイは、所与の時点で
は1つの入出力要求しか処理できない。本発明のディス
クはスピンドルで同期化されておらず、所与の時点で各
種のディスクが各種の要求のためにデータにアクセスす
るので、同特許は本発明とは無関係である。
【0016】ホトル(Hotle)による米国特許第521
8689号では、コマンドがホスト・コンピュータから
個々のディスク・ドライブ制御装置に直接送信される、
ディスク・アレイが教示されている。このようなシステ
ムの主な利点は、専用のアレイ制御装置を必要とせず
に、ホスト・システム内のソフトウェアでRAID制御
装置を実現できる点である。さらに、アプリケーション
の要求に応じてホスト・プロセッサが冗長方策とストラ
イプ化方策を選択することができ、これらの方策はアレ
イ制御装置の設計によって事前に決定されていない。し
かし、同特許では、異なる連続メディア・ストリームご
とに1つずつの複数の入出力要求を複数のディスク・コ
マンドにそれぞれ分割し、各種の入出力要求のために所
与の時点で各種のディスクにディスク・コマンドを送信
するスケジュールに応じて個々のディスクにディスク・
コマンドを出すことを教示していない。
【0017】シュメンク(Schmenk)他による米国特許
第5249279号では、ホストCPUがアレイ制御装
置にコマンド・リストを送信し、そのコマンド・リスト
が個々のディスク・アクセス・コマンドから構成され
る、ディスク・アレイが教示されている。同特許も、異
なる連続メディア・ストリームごとに1つずつの複数の
入出力要求を複数のディスク・コマンドにそれぞれ分割
し、各種の入出力要求のために所与の時点で各種のディ
スクにディスク・コマンドを送信するスケジュールに応
じて個々のディスクにディスク・コマンドを出すことを
教示していない。
【0018】キャリソン(Callison)他による米国特許
第5206943号には、複数のチャネルを介して転送
制御装置に接続された複数のディスクから構成されるデ
ィスク・アレイ・システムが記載されている。この転送
制御装置は、バッファ・メモリ、ホスト・システムの入
出力バス、ローカル・プロセッサにも接続されている。
ローカル・プロセッサは、ディスクとバッファとの間な
らびにバッファとホスト・システムとの間のデータ移動
のためにDMAチャネルをプログラミングするというタ
スクを実行する。同特許も、異なる連続メディア・スト
リームごとに1つずつの複数の入出力要求を複数のディ
スク・コマンドにそれぞれ分割し、各種の入出力要求の
ために所与の時点で各種のディスクにディスク・コマン
ドを送信するスケジュールに応じて個々のディスクにデ
ィスク・コマンドを出すことを教示していない。
【0019】ゴードン(Gordon)他による米国特許第5
148432号には、アレイ制御装置内のマイクロプロ
セッサがディスクのアレイからバッファ・メモリへなら
びにバッファ・メモリからホスト・コンピュータへのデ
ータ移動のためにDMAチャネルを確立する、ディスク
・アレイ・サブシステムが記載されている。このマイク
ロプロセッサもRAID機能をソフトウェアで実現す
る。同特許もやはり、システム内の他のディスクが各種
の要求のためにデータにアクセスする間に特定のアクセ
ス用のデータを一度に1つのディスクからフェッチする
ように複数の入出力要求を同時に処理する方法は記載し
ていない。
【0020】ロウ(Row)他による米国特許第5163
131号では、ホスト・プロセッサからIPおよびNF
Sプロトコル処理、ファイル・システム・サービス、記
憶装置ドライバ機能をオフロードする、ネットワーク・
コントローラ・ユニットと、ファイル・コントローラ・
ユニットと、記憶プロセッサユニットとを含むネットワ
ーク・ファイル・サーバが教示されている。同特許で
は、クライアントからの入出力要求は受信側ネットワー
ク・コントローラ・ユニットからファイル・コントロー
ラ・ユニットへ、そしてそれから記憶プロセッサ・ユニ
ットへ直接送信される。さらに、入出力要求が要求した
すべてのデータが直ちにクライアントに送信される。し
かし、同特許もやはり、本発明が解決する問題に対処し
ておらず、本発明の教示も提案していない。
【0021】
【発明が解決しようとする課題】上記の問題は、汎用コ
ンピュータであるホストをオフロードまたは支援するた
めに従来のサーバに追加されたストリーム制御サブシス
テムに、従来のサーバのホスト・プロセッサから連続メ
ディア・データの配布をオフロードすることにより解決
される。ストリーム制御サブシステム(以下、ストリー
ム制御装置と略称)は、基本的にPLAY、PAUSE、FAST FO
RWARD、REWINDなどのVCRコマンドと同様のビデオ・
ストリーム制御コマンドをホストから受け入れ、それに
応答して、指定のビデオ・データを指定のクライアント
に適切な速度で伝送する。
【0022】
【課題を解決するための手段】ストリーム制御装置は、
連続メディア・ストリーム用の入出力要求を、定期的に
ディスクに出される読取りコマンドに分割するためにリ
アルタイム・カーネルを実行するマイクロプロセッサ・
ベースのサブシステムを含む。このマイクロプロセッサ
は、ディスクから取り出したデータについてネットワー
ク・プロトコルも実行し、ネットワークによるビデオ・
パケットの伝送をスケジューリングする。ストリーム制
御装置サブシステム内に維持されているデータ構造であ
るストリーム制御テーブルとスケジュール・テーブル
が、すべてのリアルタイム操作(締切り期限を満たさな
ければならない操作)を調整する。
【0023】人気の映画を含む数個のディスクが障害に
なるのを回避するため、ビデオ・データ(データ単位)
はアレイ内の全ディスクにわたってインタリーブ(スト
ライプ化)されるストライプに分割される。同時に、ス
トライプのサイズは、個々のディスクから妥当なスルー
プットを維持するために1つまたは複数のトラックの範
囲内のほぼどこにでも収まるように選択される。その結
果、1つのストリームからディスク・アレイへの読取り
コマンドは1つのディスク(または1組のディスク)に
よって満足することができる。アレイ全体から高スルー
プットを得るため、複数のストリームのための読取りコ
マンドが同時に出される。各ストリーム(単一入出力要
求によって要求されるもの)のデータが所与の瞬間に単
一ディスク(または1組のディスク)から読み取られる
間に、各種ストリーム(各種の入出力要求に対応する)
のデータが同一瞬間に各種のディスクの組から読み取ら
れて、高いデータ転送速度を維持する。すべての活動ス
トリームによって各ディスクを読み取るためのアクセス
をスケジューリングするため、ストリーム制御テーブル
が使用される。
【0024】ストリーム制御装置は、連続メディア・デ
ータの格納専用のディスクのアレイを制御し、ディスク
から読み取ったデータを保管するためのストリーム・バ
ッファを有する。さらにホストをオフロードするため、
ディスクから読み取ったデータに関するネットワーク・
プロトコル処理がストリーム・バッファ内で行われ、そ
の結果生成されたネットワーク・パケットがストリーム
・バッファからネットワーク・インタフェースに直接転
送される。したがって、連続メディア・データはホスト
・メモリ内外で移動せず、その結果、ホスト・システム
の入出力帯域幅の使用効率が改善され、ホストCPUか
らネットワーク・プロトコル処理のオーバヘッドが除去
されるので必要なホストCPUサイクルが減少し、その
2点によって、ストリーム制御サブシステムを使用しな
い場合に可能なものより多くのストリームを配布できる
ようになる。
【0025】追加の改良策として、上記のようにストリ
ーム制御装置内で完全ネットワーク・プロトコル処理を
実行する代わりに、追加のプロトコル処理を最小限にし
てディスクから取り出したデータをネットワークにより
伝送できるように、連続メディア・データをネットワー
ク・パケットの形式でディスク・アレイに格納する。パ
ケットのヘッダ/トレーラ内の事前計算可能フィールド
はすべて事前計算され、残りのフィールドはパケットの
伝送前にストリーム制御装置内のマイクロプロセッサに
よって計算される。このため、マイクロプロセッサは、
プロトコル処理のオーバヘッドによる障害にならずに済
む。
【0026】本発明の他の改良策では、データ単位が可
変サイズ・ストライプとしてアレイ内のすべてのディス
クにわたってストライプ化(インタリーブ)され、各ス
トライプは一定の再生期間の連続メディア・データを含
む。ディスク記憶域はシリンダ単位に割り振られ、可変
サイズ・ストライプはパック形式で各シリンダに格納さ
れる。ホスト・プロセッサを改良せずにストリーム制御
装置がビデオ・ストリームの連続セクションを検出でき
るように、連続読取りコマンドによってアクセスされる
データの各部(ストライプ)とともに追加のリンク・フ
ィールドも格納される。基本的には、ディスク上に連続
メディア・データを格納するために、ビデオ・データの
取出しとそのネットワークによる配布に最適な記憶形式
が使用される。
【0027】
【発明の実施の形態】図1は本発明が動作する環境全体
を示している。これは、B−ISDN(広帯域−統合サ
ービス・ディジタル網)5に接続された複数のクライア
ント2を示している。クライアントは、同じくB−IS
DNネットワークに接続されたサーバ9上で対話式マル
チメディアを実行する。このネットワークは、クライア
ントとサーバとの間の接続6と、同一エンタープライズ
に属すサーバ間の接続7の両方をサポートする。
【0028】図2は連続メディア配布システムまたはサ
ーバ9の高レベル図である。これは、ホスト入出力チャ
ネル15により連続メディア・ストリーム制御装置20
に接続された、RS/6000ワークステーションなど
の汎用コンピュータであるホスト10を含む。ストリー
ム制御装置は、複数のSCSI[10](小型計算機シ
ステム・インタフェース)バス65を介してディスクの
アレイ60に接続し、それぞれのSCSIバスは複数の
ディスクに接続している。250個のMPEG−1(動
画像エキスパート・グループ)ディジタル圧縮ビデオ・
ストリーム[11]に対応できるストリーム制御装置で
は、4つの高速かつ幅広のSCSIバス65を必要と
し、それぞれが9個以上のディスクに接続する。参考文
献[10]は参照により本明細書の一部となる。
【0029】以下の各項では、まず、ストリーム制御装
置について詳述する。次に、ストリーム制御装置から自
律的に連続メディア・ストリームを配布するためのプロ
グラムについて説明する。次の項では、連続メディア・
データを可変サイズ・ストライプにストライプ化するこ
とと、シリンダ単位にディスク記憶域を割り振ることを
扱う。最後の項では、すべてのディスクが同時に各種連
続メディア・ストリームごとにアクセスされる、アレイ
60内のディスクにアクセスする方法と、ディスクがオ
ーバロードにならないように保証するディスクへのアク
セスのスケジューリングについて説明する。
【0030】ストリーム制御装置は、接続50によりB
−ISDNネットワーク5に接続する。250個のMP
EG−1ビデオ・ストリームに対応するため、この接続
は、1つのOC−12(光学キャリア・レベル12
[1])または4つのOC−3接続になる。図1に点線
6および7としてそれぞれ示す、ホスト10とネットワ
ーク上のクライアント2との間の通信またはネットワー
ク上の他のホストとの通信は、ストリーム制御装置20
によって仲介される。
【0031】ストリーム制御装置サブシステム ストリーム制御装置は、多数の連続メディア・ストリー
ムをディスクのアレイからネットワーク・インタフェー
ス・カードに同時に配布するための設計になっている。
この設計は、バッチ処理/タイム・シェアリング環境向
けに最適化された従来のRAIDシステムで1つまたは
複数の高帯域幅ストリームがサポートされるのとは対照
的に、多数の低帯域幅入出力転送(ビデオ・サーバの動
作条件)を処理するように最適化されている。
【0032】図3を参照すると、ストリーム制御装置の
中心には、半導体記憶装置から構築され、2つのバス2
41および246に接続されたストリーム・バッファ・
メモリ250が存在する。このストリーム・バッファ・
メモリは複数のストリーム・バッファに区分される。そ
れぞれの活動ビデオ・ストリームに対して2つのストリ
ーム・バッファが割り当てられる。バス241は複数の
SCSI制御装置チップ230[13]にも接続し、そ
れぞれのSCSI制御装置チップは、複数のディスクが
接続されるSCSIバス65用の制御信号を生成する。
参考文献[13]は参照により本明細書の一部となる。
バス246は、B−ISDN接続50を処理するネット
ワーク・インタフェース論理回路220に接続する。一
般に既製のマイクロプロセッサであるリアルタイム制御
プロセッサ270は、ローカル・プロセッサ・バス26
0を介してそのローカル・メモリ271に接続される。
ストリーム制御装置内のホスト・インタフェース282
もローカル・プロセッサ・バスに接続し、ホスト10と
ローカル・メモリ271との間ならびにホストとストリ
ーム・バッファとの間のデータ転送を可能にする。タイ
マ280とレジスタ281の使用法については後述す
る。論理回路240は、制御プロセッサがストリーム・
バッファまたはSCSI制御装置内の制御レジスタにア
クセスする必要がある場合、またはSCSI制御装置が
ローカル・メモリ271にアクセスする必要がある場合
に、バス260と241とを接続するためのアービトレ
ーション論理とトランシーバとを含む。同様に、論理回
路245により、制御プロセッサはネットワーク・イン
タフェース論理回路220内の記憶および制御レジスタ
にアクセスでき、ネットワーク・インタフェース論理回
路はローカル・メモリ271にアクセスできるようにな
る。
【0033】ビデオ・データ(データ単位)は、ATM
(非同期転送モード)、AAL5(ATM適応層5)パ
ケット、またはSDU(サービス・データ単位)[1]
の形式でディスク・アレイ60のディスクに格納され
る。これらのデータ単位は、そのデータ単位用の入出力
要求がサーバによって処理される前に事前パケット化さ
れる。ATM/AAL5 CSL(収束副層)全体は、
事前計算可能であり、ビデオ・データがディスク・アレ
イ60にロードされるときに事前計算される。中央制御
装置内の中央プロセッサ270は、それに接続されたデ
ィスクからストリーム・バッファにビデオ・データを転
送するよう、スクリプトによってSCSI制御装置に指
示する。SCSI制御装置へのこのスクリプトは、それ
に接続された複数のディスクのそれぞれに関する複数の
読取りコマンドから構成され、ディスクへの各読取りコ
マンドは、連続メディア・ストリームのビデオ・データ
の複数のATM/AAL5パケットの転送を指定する。
このSCSIスクリプトは、スクリプト用に予約された
ストリーム・バッファ・メモリ250の特殊域に制御プ
ロセッサ270によって書き込まれる。この場合、制御
プロセッサは、他の制御情報とともにストリーム・バッ
ファ内のスクリプトのアドレスをSCSI制御装置の制
御レジスタに書き込むことによって、このアドレスをS
CSI制御装置230に与える。あるいは、ローカル・
メモリ271にスクリプトを格納することも可能であ
る。それぞれのSCSI制御装置は、そのSCSI制御
装置用に指定されたレジスタ281内の対応フリップフ
ロップを設定することにより制御プロセッサ用の割込み
を生成することによって、読取りコマンドの完了を示
す。あるいは、制御プロセッサがSCSI制御装置23
0の制御レジスタを定期的にポーリングして、それに出
された読取りコマンドの完了を検出することも可能であ
る。
【0034】ATM/AAL5パケットは、ストリーム
・バッファからネットワーク・インタフェース論理回路
220によって読み取られ、ネットワーク・インタフェ
ース論理回路によって53バイトのATMセルにセグメ
ント化され、いずれかのセルの最初の5バイトはネット
ワーク・インタフェース論理回路によって付加されるA
TMヘッダになる。また、ネットワーク・インタフェー
ス論理回路220は、制御プロセッサ270からコマン
ド・リストも受け取る。コマンド・リストの各コマンド
は、B−ISDNネットワークに伝送すべきATM/A
AL5パケットのストリーム・バッファ内でのアドレス
と、パケットのサイズと、このパケットから作成された
ATMセルに付加すべき5バイトのATMヘッダとを指
定する。制御プロセッサからSCSI制御装置へのSC
SIスクリプトの転送と同様、コマンド・リストも、制
御プロセッサによってストリーム・バッファまたはネッ
トワーク・インタフェース220内の記憶域のいずれか
に書き込まれ、コマンド・リストの開始アドレスとサイ
ズはネットワーク・インタフェース論理回路220の制
御メモリに書き込まれる。
【0035】クライアントは最小限のバッファしか備え
ていないので、実際にクライアント側で再生される時期
より多くても数フレーム前にビデオ・データをクライア
ントに配布しなければならないものと想定する。この要
件を満たすと同時に、ストリーム制御装置サブシステム
で必要な半導体バッファ記憶装置を最小限にするため
に、ストリーム制御装置は、ディスク・アクセスするた
びに少量のビデオ・データ、通常はビデオ・ストリーム
のうちの数フレームだけを取り出す。1回のアクセスで
ディスクから取り出すデータの単位は、より小さい単位
にさらに分割され、バースト転送によってネットワーク
に悪影響を及ぼすのを回避するために一定の間隔でネッ
トワーク上で伝送される。
【0036】ストリーム制御装置サブシステムの動作 ストリーム制御装置20内の制御プロセッサ270で実
行されるソフトウェアの高レベル編成を図4に示す。こ
れは、活動連続メディア・ストリーム用のデータの配布
を実行する2つのリアルタイム・プロセスである、ディ
スク読取りプロセス460とネットワーク伝送プロセス
420から構成される。これらのプロセスについては以
下に詳述する。データはディスクから読み取られ、少量
単位でネットワークに配布されるので、ディスクからの
データにアクセスする際またはそれをネットワークに転
送する際の遅延を制御することが重要である。したがっ
て、連続メディア・データの配布を管理するためにリア
ルタイムOSカーネルを実行する専用マイクロプロセッ
サ・ベースのサブシステムが選択される。
【0037】ディスク読取りプロセス460は定期プロ
セスであり、それぞれの期間はディスク・サイクルと呼
ばれる。各ディスク・サイクルでディスク読取りプロセ
スは、各入出力要求がその入出力要求によって要求され
たデータ単位の一部を取り出せるようにするための読取
りコマンドを出し、その結果、各入出力要求を一連の読
取りコマンドに分割する。連続メディア・データのスト
リームの場合、読取りコマンドによって取り出されたデ
ータは、1ディスク・サイクル分の再生時間を必要とす
る。各入出力要求によって要求されたデータは、複数の
ストライプに分割され、次の項で詳述するように、読取
りコマンドによって要求されたデータの一部が1ストラ
イプ分のデータになるように全ディスクにわたって格納
される。読取りコマンドは、以下に説明するように、特
定のディスクがオーバロードにならないように、ディス
ク・サイクル当たり1つの入出力要求について1つず
つ、ディスク読取りプロセス460によって同時に出さ
れる。当然のことながら、入出力要求によって要求され
たデータ単位が完全に取り出されると、ストリーム制御
装置でその要求が削除され、その入出力要求については
それ以上読取りコマンドが出されなくなる。
【0038】非リアルタイム・プロセス480は、ホス
ト10に対してVCRタイプのインタフェースを提供
し、ホスト要求に応答して、作成する連続メディア・ス
トリームにストリーム制御装置資源を割り振るか、また
は終了するストリームの資源を解放する。ホストからス
トリーム制御装置によって管理されたディスク60へデ
ータをロードするためのサービス・プロセスと、ホスト
がストリーム制御装置内の様々なデータ構造を検査し、
ディスク60の内容を検査できるようにするプロセス
は、図4に示されていない。これらのサービス・プロセ
スは、当業者が周知の様々な方法で実現することができ
る。
【0039】図5に示すストリーム制御テーブル500
は、ストリーム制御装置内の中央データ構造である。こ
れは、各活動連続メディア・ストリームの状態を維持
し、ディスクを読み取ってネットワークにデータを伝送
するためにリアルタイム・プロセスを駆動する。
【0040】ストリーム制御テーブル500は、各連続
メディア・ストリームごとに項目510(以下、ストリ
ーム制御ブロックという)を1つずつ有する。ストリー
ム制御ブロック510は、ストリーム・バッファ・メモ
リ250内の2つのストリーム・バッファを指すポイン
タ511と512とを有し、511は所与の時点でディ
スクからそのストリーム用のデータを受け取る読取りバ
ッファを指すポインタであり、512はB−ISDNネ
ットワークに伝送されるデータを保管する伝送バッファ
を指すポインタである。図5に示すように、それぞれの
バッファ・ポインタは、ストリーム・バッファ・メモリ
250内のバッファの開始位置と、バッファのサイズ
と、現在読み書きされている位置と、ディスクからの転
送の完了を読取りバッファに示すマーカ・ビットとを示
す。
【0041】ストリーム制御ブロック内のもう1組のポ
インタ513と514は、ストライプ・ポインタと呼ば
れ、次にディスク60(実際は以下に詳述するディスク
・キャッシュ)から読取りバッファ511に読み取る必
要があるディスク・ブロックの組(またはストライプ)
と、後続の読取りコマンドによって読み取る必要がある
ブロックの組とを指す。ポインタ513と514は、こ
のストリーム用の次の読取りコマンドのためのディスク
番号と、開始ブロック番号と、ブロック・カウントとで
構成される。再生モード・フィールド515は、ストリ
ームが通常の再生モードか、休止中か、または早送り/
巻戻しモードかを示す。クライアント情報フィールド5
16は、ディスクから取り出したデータに関するネット
ワーク・プロトコル処理を完了するために必要な情報の
ブロックを指す。現行実施例では、これはビデオ・スト
リームのセル用の5バイトATMヘッダを含む。フィー
ルド517または518は、ディスクに格納されたデー
タがネットワーク・プロトコル・ヘッダおよびトレーラ
とともに格納されていないときに、制御メモリ271に
格納されているヘッダおよびトレーラ・テンプレートの
アレイを指すポインタを格納するのに使用する任意選択
フィールドである。その使い方については以下に詳述す
る。同様に、最後のフィールド519も任意選択であ
り、再生すべき最後のディスク・ブロックを指すポイン
タまたは再生完了までに残っている時間として、ストリ
ームの再生を終了するための停止条件を指定するもので
ある。
【0042】ストリーム制御装置20内のタイマ280
からの割込みは、固定間隔のネットワーク・サイクルと
ディスク・サイクルを定義するために使用する。いずれ
のタイマ割込みでもネットワーク・サイクルが開始さ
れ、さらにN番目ごとの割込みによってディスク・サイ
クルが開始される。したがって、1つのディスク・サイ
クルは連続するネットワーク・サイクルN個分になる。
2つのリアルタイム・プロセスであるディスク読取りプ
ロセス460とネットワーク伝送プロセス420は、そ
れぞれのサイクルを開始するタイマ割込みによって開始
される。
【0043】ディスク読取りプロセスとネットワーク伝
送プロセスは、それぞれのサイクル中に完了しなければ
ならない。これは、スケジューリング・プログラムとと
もにホスト上で実現される承認制御方針によって確保さ
れる。スケジューリング・プログラムについては、以下
の項で詳述する。このプログラムは基本的に、ディスク
・アレイ60の単一ディスクが1つのディスク・サイク
ル中に処理できる数を上回る読取り要求を受け取らない
ように、また特定のSCSIバスも単一ディスク・サイ
クル中にオーバロードにならないように、複数の並行ビ
デオ・ストリームが開始されるようにするものである。
承認制御プログラムは、ストリーム制御装置データ経路
の制約と制御プロセッサの制約とに基づいて、同時に活
動状態になるビデオ・ストリームの数を制限する。
【0044】図6はストリーム制御装置ソフトウェアの
中心部を示している。流れ図のステップ600に示すよ
うに、ディスク・サイクルの開始をマークするタイマ割
込みによって、ディスク読取りプロセス460とネット
ワーク伝送プロセス420が開始される。このステップ
600は、タイマ割込みがディスク・サイクルとネット
ワーク・サイクルの両方を開始することを示すために割
込み−Dと表示されている。割込み−Dを受け取った後
の最初のステップは、図5のステップ610に示すよう
に、読取りバッファ511と伝送バッファ512の役割
を変更することである。というのは、読取りバッファ
は、前のディスク・サイクル中にディスクからのデータ
の受取りを終了し、この時点ではネットワークに伝送す
べきデータを保管しているからである。同様に、伝送バ
ッファからのデータは前の伝送サイクルの終了前にすべ
て伝送されるので、このバッファは現行サイクルでディ
スクからデータを受け取るための読取りバッファにな
る。次に、以下に詳述するディスク読取りプロセス46
0とネットワーク伝送プロセス420が同時に開始され
る。ディスク・サイクルを開始しないタイマ割込みは、
ネットワーク・プロセス420だけを開始し、流れ図の
ステップ700として示されている。このステップは、
タイマ割込みがネットワーク・プロセスだけを開始する
ことを示すために割込み−Nと表示されている。
【0045】ディスク読取りプロセス460は、5つの
ステップから構成される。ステップ621のディスク・
サイクルの開始時に、前のディスク・サイクルでディス
ク・メディアからディスク・キャッシュに読み込まれた
データをディスク・キャッシュからストリーム・バッフ
ァ・メモリ250に転送するためのコマンドをディスク
に対して出す。ステップ622では、次のディスク・サ
イクルのステップ621で必要になるビデオ・データを
ディスク(磁気媒体)からディスク・キャッシュに転送
するための追加のディスク・コマンドを出す。ステップ
621と622の両方のステップでは、それぞれの活動
ビデオ・ストリームごとにディスク・コマンドが1つず
つ出される。ステップ623では、ステップ621の完
了を検査する。次にステップ624では、次のディスク
・サイクルの最初のネットワーク・サイクルでのネット
ワーク伝送のためのDMA(直接メモリ・アクセス)リ
ストを計算する。最後に、ディスク読取りプロセスのス
テップ625では、次のディスク・サイクルのステップ
621および622のためのSCSIスクリプト・ファ
イルを作成する。SCSIスクリプト・ファイルの作成
方法については、参考文献[13]に記載されている。
【0046】ネットワーク伝送プロセス420は、3つ
のステップから構成される。ステップ711では、伝送
バッファ512からの各活動ビデオ・ストリームのデー
タの一部をネットワークに伝送するために、ストリーム
制御装置内のネットワーク・インタフェース論理回路2
20に対してDMAコマンドを出す。ディスク読取りプ
ロセスのステップ625またはネットワーク伝送プロセ
スのステップ713で計算したDMAリストがこのため
に使用される。前者のステップでは、いずれかのディス
ク・サイクルの最初のネットワーク・サイクルであるネ
ットワーク・サイクル用のDMAリストを提供する。後
者のステップでは、ディスク・サイクルの最初のネット
ワーク・サイクルではないネットワーク・サイクル用の
DMAリストを提供する。ステップ712では、現行ネ
ットワーク・サイクルがディスク・サイクルの最後のネ
ットワーク・サイクルであるかどうかを検査する。最後
のネットワーク・サイクルではない場合は、次のネット
ワーク・サイクルでのネットワーク伝送のためにステッ
プ713でDMAリストを作成する。現行ネットワーク
・サイクルがディスク・サイクルの最後のネットワーク
・サイクルである場合は、次のネットワーク・サイクル
用のDMAリストが現行ディスク・サイクルのディスク
・プロセスによって生成されるので、ディスク伝送プロ
セスでこれ以上行うべきことは何もない。
【0047】1つのディスク・サイクルでは各入出力要
求ごとに読取りコマンドが正確に1つずつ出されるの
で、読取りコマンドによってディスクから読み取られた
データは、ディスク・サイクル1つ分の再生時間を必要
としなければならない。同様に、1つのネットワーク・
サイクルで各活動ストリームごとにネットワーク上で伝
送されるデータは、ネットワーク・サイクル1つ分の再
生時間を必要としなければならない。1つのネットワー
ク・サイクルで1つのストリームについて伝送されるデ
ータは、1つまたは複数のATM/AAL5パケットか
ら構成することができる。
【0048】ディスク・アレイ この項では、データを可変サイズ・ストライプに分割す
ることと、ディスク・アレイ60内の全ディスクにわた
ってこれらのストライプを格納することについて説明す
る。磁気ディスク(ハード・ディスク)の概要について
は付録Aに示し、「シリンダ」および「トラック」とい
う用語についてはそこで説明する。話題の映画のために
数個のディスクがオーバロードにならないようにするた
めに、全ディスクにわたるストライプ化が選択されてい
る。各ストライプの再生時間を所定の定数にすることに
より、ストライプが可変サイズになる可能性があるが、
後述するようにディスクの一時的オーバロードを回避す
ることができる。また、可変サイズのストライプを格納
する場合にディスク記憶域を効率よく使用する方法とし
て、ディスク記憶域をシリンダ単位に割り振ることと、
各シリンダにパック形式でストライプを格納することに
ついても説明する。
【0049】ディスク・アレイでの連続メディア・デー
タのストライプ化 固定速度のビデオの場合、ディスク間でデータをストラ
イプ化するためのストライプ・サイズ(インタリーブ
量)は、そのビデオを再生する際にクライアント側でビ
デオ・データが消費される速度によって決まる。ディス
ク上の1つのストライプ分のデータは1つのディスク・
サイクル分の再生時間を必要とし、このため、読取りコ
マンドは1つの完全なストライプ分のデータを取り出
す。したがって、各種の再生速度を有する連続メディア
・ファイルでは、各種のストライプ・サイズでディスク
60にわたってデータがインタリーブされる。図8は、
XおよびYという名前の2つの圧縮ビデオ・ファイル9
10を示している。それぞれのファイルはストライプ
(ストライプ化単位)911に分割され、そのストライ
プは1つのディスク・サイクルの間にクライアント側で
再生される圧縮ビデオを含む。それぞれのビデオ・ファ
イルは、圧縮ストリームで固定ビット転送速度が得られ
るように個別に圧縮されており、このため、ファイルX
のすべてのストライプが同じサイズを有し、ファイルY
のすべてのストライプが同じサイズを有する。しかし、
おそらくファイルYのピクチャ・サイズ(各未圧縮フレ
ーム内のピクセル数)がファイルXのピクチャ・サイズ
より大きいか、または圧縮解除したときにより優れた画
質が得られるようにファイルYがより低い圧縮比で圧縮
されているか、あるいはその両方の理由で、ファイルY
の方がファイルXよりストライプ当たりのビット数が多
い。図8の下の方には、4つのディスク61から構成さ
れたディスク・アレイ60にわたってストライプ化され
たビデオ・ファイルが示されている。実線の弧はファイ
ルXのデータを示し、点線の弧はファイルYのデータを
示し、ファイルYのストライプの方がファイルXのスト
ライプより大きくなっている。
【0050】可変ビット転送速度のビデオの場合、やは
り各ストライプは1つのディスク・サイクルに相当する
固定再生時間を必要とし、このため、同一可変ビット転
送速度のビデオ・ファイルの各種ストライプは様々なサ
イズのものになる。ここで同一入出力要求用の連続読取
りコマンドは様々な数のデータ・ブロックを読み取る
が、依然として完全なストライプとしてデータを読み取
る。図9は圧縮ビデオ・ストリームで可変ビット転送速
度を生むように圧縮されたビデオ・ファイル910を示
し、このファイルのストライプ911は様々な量のデー
タを有する。可変サイズのこれらのストライプをディス
ク・アレイ60の全ディスク61にわたって格納する場
合、ディスク上の可変数のブロックを使用して図9に示
すような各種ストライプを格納するか、または図10に
示すような各ストライプを格納するためにディスク上の
固定数のブロックを必要とするようにストライプを埋め
込むはずである。
【0051】上記のように固定再生時間を必要とするス
トライプにビデオ・データをストライプ化する操作は、
ビデオ・データを解析して各フレームの境界を特定する
ことができるソフトウェア・プログラムによって実行さ
れる。このようなソフトウェアの主要ルーチンは、既存
のソフトウェア・ベースのビデオ・デコーダで入手可能
である。また、これらのルーチンは、MPEG圧縮解除
用の公開ソフトウェアで入手可能である。
【0052】制御プロセッサ270が各活動ビデオ・ス
トリームによってアクセスされる次のストライプの位置
を検出するのを支援し、ストライプが再生されるディス
ク・サイクルの様々なネットワーク・サイクルで伝送す
る必要があるストライプ内にパケットを配置するため、
各ストライプの前には[12]に提案されているように
ストライプ・ヘッダが付加されている。ストライプ・ヘ
ッダの3つのフィールドは、まとめてストライプ・ポイ
ンタと呼ばれるが、読み取るべき次のストライプを識別
するものである。第1のフィールドはストライプが配置
されているアレイ60内のディスク61のディスク番号
であり、第2のフィールドは第1のフィールドで識別さ
れたディスク内のストライプの開始ブロック番号であ
り、第3のフィールドはストライプ内のブロック(SC
SIディスク・ブロック)の数またはストライプ内の最
後のブロックの番号である。データは整数個のブロック
単位でディスクに格納されてディスクから取り出され、
固定再生時間分のデータを含むストライプのサイズは整
数個のブロックである必要はないので、ストライプ・ヘ
ッダには、そのストライプの最後のブロックでストライ
プの終わりを識別するための長さフィールドが含まれ
る。
【0053】したがって、連続メディア・ストリームを
再生するためにストリーム制御装置内の制御プロセッサ
270がホスト10からPLAYコマンドを受け取る場合、
開始ストライプ・ポインタと、再生すべき最後のストラ
イプ・ポインタまたは再生すべきストライプの数のいず
れか、ならびにそのストリームを配布すべきクライアン
トのアドレスだけが必要になる。再生すべき第2および
それ以降のストライプを指すポインタは、再生のために
先行ストライプが取り出されたときに先行ストライプの
ストライプ・ヘッダから制御プロセッサ270によって
取り出される。したがって、ビデオ・ストリームの再生
のためにホストとストリーム制御装置との間で必要な対
話は最小限になる。ディスク・アレイに格納されている
すべてのストライプは同じ再生時間を必要とするので、
指定の時間間隔でストリームを再生するための要件は、
再生間隔を1つのストライプの再生時間で割ることによ
り、指定の数のストライプの再生という要件に容易に変
換することができる。
【0054】ディスク記憶管理 ディスクの帯域幅を効率よく使用するために、単一読取
りコマンドによってディスクからアクセスされるストラ
イプのデータは、およそトラック1つまたは数個分のサ
イズでなければならず、このデータは同一シリンダの連
続ブロックに入っていなければならない。各種ビデオ・
ファイルからのストライプおよび同一ビデオ・ファイル
の各種ストライプは、サイズが異なる場合がある。この
ため、従来のディスク記憶管理方法[2]に規定される
ように、各ストライプごとに個別にディスク・アレイ6
0の記憶域を割り振ったり再利用することは実用的では
ない。各ストライプごとに個別に記憶域を割り振る場
合、ビデオ・ファイルの大きいストライプを収容するの
に十分な大きさの固定サイズ・ストライプにディスクを
区分しなければならず、その結果、ビデオ・ファイルの
小さいストライプをディスク上の大きい固定サイズ・ス
トライプに割り振るときに記憶域の使用効率が悪くなる
はずである。あるいは、ディスクが様々なサイズのスト
ライプに区分される可能性があるが、この場合は複雑な
記憶管理アルゴリズムが必要になり、その結果、記憶空
間が断片化される恐れがある。
【0055】ビデオ/連続メディア・サーバでは、上記
の制限を克服するために、連続メディア・ファイルが非
常に大きいことと、ディスク・アレイ60上の記憶域を
ファイル全体に同時に割り振って再利用できることを利
用することができる。ディスクのシリンダは約750K
Bである。24個のディスクからなるストライプ・グル
ープの24個のシリンダは、それぞれのディスクから1
つずつであり、16MBの記憶域を有し、16Mビット
/秒の再生速度で32秒の再生時間を要するビデオ・デ
ータを格納する。典型的なビデオ・ファイルは30秒よ
りかなり長くなり、ストライプ・グループの各ディスク
上の複数のシリンダを要することになる。このため、以
下に説明するようにディスク記憶域をシリンダ単位で割
り振ることにより、ディスク記憶域をもっと効率よく使
用することができる。
【0056】すべてのディスク上の同一位置にある1組
のシリンダを1つのビデオ・ファイルに割り振り、ビデ
オ・ファイルのストライプをパック形式でこれらのシリ
ンダに格納することにより、ディスク記憶域が管理され
る。図11は、4つのディスク61から構成されるディ
スク・アレイ60を示している。ディスク上の記憶域は
シリンダ62に分割されている。1つのシリンダは、読
取り/書込みヘッドまたは同じようにディスク・アーム
の固定位置からディスク上でアクセス可能な記憶域に対
応し、約500KB〜1MBの記憶域を有する。3つの
映画X、Y、Zは4つのディスクすべてにわたってスト
ライプ化されているものとして示されている。表63
は、各ディスクごとに1つずつ用意され、ストライプ化
を行う方法を示している。項目Xnは映画Xのn番目の
ストライプを示す。表63の各列はシリンダを表し、シ
リンダに格納されたストライプを示す。最初の2つのシ
リンダは映画Xのストライプを格納し、次の2つは映画
Yのストライプを格納し、映画Zのストライプは次のシ
リンダから格納され始める。
【0057】映画Yのストライプの方がXのストライプ
より大きい、すなわち、データ量が多いものとして示さ
れていても、映画Xのストライプは映画Yのストライプ
と同じ再生時間を要する。このため、ディスクの1つの
シリンダが格納するストライプの数は、映画Yより映画
Xの方が多くなる。前述のように、映画Yの方が低い圧
縮比で圧縮されているかまたはより大きいピクチャ・サ
イズを有するため、ともに再生時間が同じであっても、
映画Yのストライプの方がXのストライプより多くのデ
ータを含むことができる。図11の映画(たとえば、映
画X)のすべてのストライプは、同一サイズを有するも
のとして示されており、このため、その映画の同数のス
トライプが最後のシリンダを除くその映画を格納した各
シリンダ内に現れる。しかし、映画が可変ビット転送速
度で圧縮されている場合、映画の各種ストライプが異な
るサイズを有するはずであり、ディスクの各種シリンダ
には異なる数のストライプが収容されるはずである。
【0058】表63は、実際には個別のディスク用に維
持されているわけではなく、アレイ60のディスク上の
ストライプの配置を説明するためにだけ図11に示した
ものである。むしろ、ホスト10には、各映画ごとに映
画配置テーブル(MPT)と呼ばれる表が維持されてい
る。この表は、ディスク番号と、一定の間隔で反復する
各ストライプまたは1組のストライプのディスク上での
位置とを格納する。さらに、映画の各ストライプは、そ
のストライプ・ヘッダでのその映画の次のストライプの
位置を格納する。
【0059】好ましい実施例では、ストリーム制御装置
に接続されたすべてのディスク60にわたってビデオ・
データがストライプ化される。好ましいストライプ・グ
ループ(その上にファイルがストライプ化されるディス
クのグループ)は、すべてのSCSIバス65にわたっ
て均等に分散されたディスクから構成され、ストリーム
制御装置を介してSCSIバスからネットワークにデー
タを移動可能な最大持続帯域幅に等しい集合持続帯域幅
を有する。この結果、ストライプ・グループ・サイズ
は、1つのストライプ・グループに5〜9個のディスク
を有する典型的なRAIDシステムの場合より大幅に大
きくなる。大きいストライプ・グループを有すると、非
常に負荷の大きいシステムで新しいストリームを開始す
る際の遅延が増大するが、同時に、新しい要求によって
アクセスされるストライプ・グループ上に現れるホット
・スポットのために、新しいストリームを開始するため
の要求が拒否される確率が低くなる。ホット・スポット
とは、小さいストライプ・グループに人気の映画が格納
されていて、その小さいストライプ・グループ内のすべ
てのディスクから得られる持続帯域幅によってサポート
可能な最大数のストリームより多くのストリームによっ
てその映画が要求される場合を意味する。前に定義され
た好ましいストライプ・グループ・サイズまたはそれ以
上になるようにストライプ・グループ・サイズを選択す
ることにより、ホット・スポット現象によって人気の映
画に対する新しい要求が拒否されるのを回避する。
【0060】上記に提案されているように、平均すると
連続メディア・ファイルが大きいサイズのストライプ・
グループのすべてのディスク上の複数のシリンダを占有
するほど十分な大きさではない場合、ストライプ・グル
ープのサイズを縮小することができる。あるいは、1つ
のシリンダのサイズより小さいが、依然としてブロック
単位またはトラック単位よりかなり大きい単位でディス
ク記憶域を割り振ることができる。ストライプ・グルー
プのサイズを縮小する場合の欠点は、小さいストライプ
・グループがもっと容易にオーバロード状態になり、そ
のため、そのストライプ・グループへの新しい要求がブ
ロックされる可能性があることである。ディスク記憶域
割振り単位を縮小する場合の欠点は、ディスク記憶域の
使用効率が悪くなることである。連続メディア・ファイ
ルのサイズが本当に大きい場合は、記憶域割振り単位を
複数個のシリンダ分になるように選択することができ
る。また、ディスク上のすべてのメディア・ファイルに
ついて同時に記憶域が割り振られ、これらのファイルの
人気(アクセス頻度)が先験的に分かっている場合は、
それぞれのファイルに連続シリンダを割り当て、中心ト
ラック(最も内側のトラックと最も外側のトラックの中
間にある)からその人気の順にファイルへのシリンダ割
振りを開始し、中心トラックに最も近いシリンダを先に
割り振ることができる。これにより、平均シーク時間が
短縮されるはずである。
【0061】ディスク・アレイへの読取りアクセスのス
ケジューリング上記の3つの項では、ストリーム制御装
置のハードウェアとその動作について説明してきた。ま
た、ストリーム用のビデオ・データをディスク・アレイ
60に格納し、そこからホスト10を通過せずに接続5
0を介してB−ISDNネットワークに伝送する方法を
説明してきた。この項では、図5の流れ図のステップ6
25でディスク読取りコマンドを生成し、その結果、オ
ーバヘッドを低くし、アレイ60内のいずれかのディス
クが1つのディスク・サイクル中に完了できる数を上回
る読取り要求を受け取らないようにするためのスケジュ
ール・テーブルの使い方を説明する。
【0062】ビデオ・ファイルはすべてのディスクにわ
たってストライプ化され、各ストライプが固定再生時間
分のデータを含み、すべてのストリームが同じ順序です
べてのディスクにアクセスするので、活動連続メディア
・ストリームはあるディスクから次のディスクへ同じ速
度で移動する。したがって、すべての活動連続メディア
・ストリームは相互に相対的な位置を維持している。た
とえば、所与の瞬間にストリームiがディスクXにアク
セスし、ストリームjがディスクYにアクセスする場
合、次のディスク・サイクルではストリームiがディス
ク(X+1)modNにアクセスし、ストリームjがデ
ィスク(Y+1)modNにアクセスし、Kディスク・
サイクル後にはストリームiがディスク(X+K)mo
dNにアクセスし、ストリームjがディスク(Y+K)
modNにアクセスすることになる。この場合、Nはビ
デオ・データがストライプ化されるディスクの数であ
る。要するに、ストリームiとjは必ずX−Y個のディ
スク分だけ離れることになる。
【0063】図6の流れ図のステップ625を実行する
ため、また、いずれかのディスク・サイクル中にディス
クがオーバロード状態にならないようにするために、図
7に示すスケジュール・テーブル820を使用する。こ
れはN行×M列の表であるが、Nはストライプ・グルー
プのサイズ(ファイルがストライプ化されるディスクの
数)であり、本発明ではディスク・アレイのサイズであ
る。Mは、1つのディスク・サイクル中にディスクが完
了できる要求の最大数である。スケジュール・テーブル
の各行は、どのディスク・サイクルでも同じディスクに
アクセスするストリームの組を表している。ディスク・
アレイに複数のストライプ・グループがある場合、それ
ぞれのストライプ・グループごとにスケジュール・テー
ブルが1つずつ存在する。テーブル820の各セル82
1は、ストリームIDまたはヌル値を持つことができ
る。
【0064】ディスク・サイクルには、モジュロNのカ
ウント・システムを使用して番号が付けられている。こ
れらの番号は、以下、ラベルと呼ぶ。スケジュール・テ
ーブルの行iは、ラベル0のディスク・サイクル中にデ
ィスクiと、一般に(k−i)modNというラベルが
付いたディスク・サイクル中にディスクkにアクセスす
るストリームを識別する。このスケジュール・テーブル
に加え、ディスク制御装置は、ストリーム制御装置に接
続された各SCSIバスごとに1つずつの項目841を
含むSCSIバス・ロード・テーブル840と、全ロー
ド・カウンタ860も管理する。SCSIバス・ロード
・テーブル内の項目の数は、ストリーム制御装置に接続
されたSCSIバスの数に等しい。SCSIバス・ロー
ド・テーブルの項目jは、ラベル0のディスク・サイク
ル中のSCSIバスj上の負荷を示す。ディスク・アレ
イ60内のディスクの数であるNがSCSIバスの数で
あるKで割り切れる場合、ロード・テーブル840の項
目jは、ラベルkのディスク・サイクル中のSCSIバ
ス(j+k)modK上の負荷も示す。全ロード・カウ
ンタ860は、活動連続メディア・ストリームの数にす
ぎない。スケジュール・テーブル内のセルの数は、スト
リーム制御装置によって許容されるストリームの最大数
またはストリーム・テーブル500のサイズをはるかに
上回ることができる。というのは、前者は、許容される
ビデオ・ストリームの最大数やストリーム・テーブル・
サイズを決定するSCSIバスやストリーム制御装置の
データ経路の帯域幅制限またはストリーム制御装置の処
理制限を考慮せずに、すべてのディスクでサポートでき
るストリームの最大数(本発明ではN×M)を示してい
るにすぎないからである。
【0065】図12は、ストリーム制御装置20から再
生される4つのビデオ・ストリーム920を示してい
る。ビデオ・ストリームS2とS4は別々の時点で開始
された同一映画Yのものであり、ストリームS1とS3
はそれぞれ映画XとZのものである。同図の一番上に
は、時間の進行をディスク・サイクルに分割したものが
示されている。前述のように、N個の連続ネットワーク
・サイクル(上記を参照)が1つのディスク・サイクル
を含む場合、図12に示すようにタイマ280からのN
番目の割込み285ごとに1つのディスク・サイクルが
開始される。この場合、ディスク・アレイは0〜3の番
号が付いた4つのディスクを有し、そのため、ディスク
・サイクルにも0〜3の番号のラベルが付き、4つのサ
イクルずつ繰り返すものと想定する。映画の各種ストラ
イプにも1から始まる番号が付けられ、図12には各デ
ィスク・サイクルで再生している各ストリームのストラ
イプの番号も示されている。それぞれの映画のストライ
プiは、ディスク(i−1)mod4に格納される。
【0066】図12の4つのストリームのスケジュール
・テーブルを図13に示す。ストリームがラベルsのデ
ィスク・サイクルで再生を開始する場合、すなわち、映
画のストライプ1がラベルsのサイクル中にディスク0
から取り出される場合、このストリームは、必ずラベル
sのサイクル中にディスク0にアクセスし、ラベル0の
サイクル中にディスク(4−s)mod4にアクセスす
ることになる。このため、(ビデオ・ストリーム用の)
入出力要求は、スケジュール・テーブルの空のセルが行
(4−s)mod4にあれば、サイクルsから開始する
ことができ、以下に記載するように、この空のセルへの
ストリームIDの書込みによってビデオ・ストリームの
再生が開始される。スケジュール・テーブルの行(4−
s)の空のセルを検出することにより、ディスク0には
ラベルsのサイクル中に読取りコマンドを完了するため
の追加の帯域幅が備わっていると判断する。これによ
り、ディスク1にはラベル(s+1)mod4のすべて
のサイクル中に読取りコマンドを完了するための追加の
帯域幅が用意され、一般にディスクi(0≦i<4)に
はラベル(s+1)mod4のすべてのサイクル中に読
取りコマンドを完了するための追加の帯域幅が用意され
ると判断される。さらに、入出力要求(ストリーム)の
ストリームIDをこの空のセルに書き込むことにより、
ストリームIDの書込み後に検出されたラベル(4−
s)の第1のサイクル中にディスク0に対してその入出
力要求(ストリーム)の第1の読取りコマンドを出す。
第1の読取りコマンドがディスク0に対して出されるの
は、次のディスク・ブロック・ポインタ514の初期設
定がストライプ1用であり、そのため、ディスク0を指
しているからである。
【0067】ストリームが映画のストライプ1から始ま
らずに、サイクルsの任意のストライプbから始まる場
合は、ラベルsのサイクル中にディスク(b−1)mo
d4がアクセスされ、このため、ラベル0のサイクル中
にはディスク((4−s)+(b−1))mod4がア
クセスされるので、スケジュール・テーブルのその行に
項目を1つ作成する必要がある。図12の点線の枠81
0は、4つのストリームのストライプがラベル0のディ
スク・サイクル中に同時にアクセスされたことを示して
いる。図13でストリームが記入されているスケジュー
ル・テーブルの該当行は、枠810内のそのストリーム
のストライプによってアクセスされるディスクと同じで
あることが容易に理解できる。
【0068】図13のスケジュール・テーブルは、ラベ
ル0のサイクル中に各ディスクにアクセスするストリー
ムのリストをストリーム制御装置に提供するものであ
る。ラベルlのサイクル中にディスクdにアクセスする
ストリームは、ラベル0のサイクル中にディスクd−l
mod4にアクセスしたものと同じである。図14の表
821、822、823は、ラベル1、2、3のサイク
ル中にそれぞれのディスクにアクセスするストリームを
示している。しかし、表821、822、823は、表
820を行単位でサイクル・シフトしたものなので、ス
トリーム制御装置に保管する必要はない。
【0069】対話式マルチメディア・サーバの動作 クライアント2は、ビデオ・ストリーム(たとえば、映
画)の受信を希望する場合、その映画を求めるクライア
ント要求をサーバ9のホスト10に送信する。要求され
た映画が事前パケット化形式でサーバのストリーム制御
装置20のディスク60に格納されている場合は、ホス
ト10がストリーム制御装置20に入出力要求(PLAYコ
マンドともいう)を送信する。
【0070】ストリーム制御装置は、ストリーム制御テ
ーブルにストリームIDを入力することにより、PLAYコ
マンドに応答してストリームの再生を開始する。ホスト
は、PLAYコマンドを出す前に、ストリーム制御装置に対
してCREATE_STREAMコマンドを出して、ストリーム・バ
ッファ・メモリ250内の読取りバッファと伝送バッフ
ァを割り振り、新しいストリーム用にストリーム制御ブ
ロック510をセットアップしなければならない。CREA
TE_STREAMコマンドの処理の完了後、ストリーム制御装
置はストリームIDをホストに返し、ホストは、このス
トリームのためにストリーム制御装置に送られる後続の
すべてのコマンドでこのIDを使用する。ストリームI
Dは、ストリーム制御テーブル500のこのストリーム
用の項目にもインデックスを付ける。
【0071】これ以外にストリーム制御装置によってサ
ポートされるコマンドはPAUSEとDELETE_STREAMである
が、前者はそのコマンドで識別されたストリームに割り
振られているストリーム制御装置の各種資源を解放しな
いのに対し、後者は解放する。すでに述べてきた4つの
VCRインタフェース・コマンドに加え、READコマンド
とWRITEコマンドでも、ホストはディスク・アレイ60
にデータをロードしたり、データを読み戻してその整合
性を検査することができる。
【0072】PLAYコマンドの3つの主要パラメータは、
ストリームIDと、ストリーム制御テーブルの項目51
3および514を初期設定するためのディスク・ブロッ
ク・ポインタの初期値と、再生すべき最後のディスク・
ブロックを指すポインタまたは再生の完了時に残ってい
るディスク・サイクルの数のいずれかとして指定された
停止条件である。したがって、これらのパラメータによ
ってストリーム制御ブロック510内の項目が完成する
が、そのストリーム用のCREATE_STREAMコマンドでは完
成されていない。あるストリームの再生中にその停止条
件に達すると、ストリーム制御装置はこの完了をホスト
に通知し、次にホストは、DELETE_STREAMコマンドを使
用してストリームを削除するか、そのストリームの追加
セクションを再生するために新しい停止条件を指定して
新たな再生コマンドを出すことができる。
【0073】ストリームの再生を開始するためにホスト
がストリーム制御装置に再生コマンドを出すと、ストリ
ーム制御装置は、その中に空のセルを有する行821を
求めてスケジュール・テーブル820を探索する。この
探索は、各行で占有されているセルの数を等しくする
か、ストリームの再生を開始するときの遅延を最小限に
するように調整することができる。ただし、ストリーム
によって読み取られた第1のディスク・ブロックがディ
スクd上にあり、このストリームを求める要求がラベル
cのサイクル中にスケジュール・テーブル820の行r
に割り振られている場合、ストリームの再生を開始する
ときの待ち時間は(d−r−c)modNになることに
留意されたい。この場合、Nはディスクの数である。ス
トリームはラベル0のサイクル中にディスクrにアクセ
スし、その結果、ラベル(d−r)modNのサイクル
中にディスクdにアクセスする。したがって、ラベルc
のサイクルからの遅延は(d−r−c)modNにな
る。
【0074】再生コマンドの処理は単一ディスク・サイ
クルで完了するものと想定する。しかし、PLAYコマンド
を含むすべてのホスト・コマンドを実施するためのルー
チンは、新しいディスク・サイクルを開始するタイマ割
込みによって中断された場合に次のディスク・サイクル
またはその後のディスク・サイクルで正しく完了するよ
うに作成することができることを当業者は容易に理解で
きるだろう。
【0075】代替実施例 上記の項では、本発明の好ましい実施例について説明し
た。しかし、好ましい実施例のいくつかの変形態様によ
って本発明を実施できることは、当業者であれば容易に
分かるであろう。たとえば、制御プロセッサ270と、
ローカル・メモリ271と、ホスト・インタフェース2
82は、共用バス方式以外の方法でも接続することがで
きる。この項では、各種のアプリケーション環境に適し
た、好ましい実施例の代替実施例をいくつか説明する。
【0076】読取りコマンドによる複数ディスクへのア
クセス 好ましい実施例では、読取りコマンドによって、単一デ
ィスクに格納された1つのストライプのデータにアクセ
スし、ディスク・サイクル1つ分の再生時間を要してい
た。非常に帯域幅の低いディスクを使用するか、または
非常に高い速度で連続メディア・ストリームによってデ
ータを取り出した場合、1つのディスクが1つのディス
ク・サイクル内に1つのストライプ分のデータ全体を取
り出すのに十分な帯域幅を備えていない可能性がある。
この問題は、好ましい実施例の各ディスクを、帯域幅要
件を満たすのに必要な複数ディスクを有するRAIDシ
ステム[8]で置き換えることによって解決することが
できる。読取りコマンドによってアクセスされる1つの
ストライプのデータは、RAIDシステム制御装置によ
って内部でさらに分割され、RAIDシステム内のディ
スクの組全体にわたってストライプ化される。また、R
AID制御装置の機能を制御プロセッサ270に統合す
ることによって、このシステムをさらに最適化すること
も可能である。
【0077】あるいは、好ましい実施例のディスクを論
理ディスクと見なし、各論理ディスクが1組の物理ディ
スクであるとすることも可能である。読取りコマンド
は、ディスク・サイクル1つ分の再生時間を要する1つ
のストライプのデータに論理ディスクからアクセスす
る。論理ディスクに関連するストライプのデータは、よ
り小さいストライプにさらに分割され、その論理ディス
クの物理ディスクにわたって格納される。制御プロセッ
サは、物理ディスクから取り出されたデータが集合する
と読取りコマンドによって論理ディスクから要求された
ストライプになるように、論理ディスクに対して出され
た読取りコマンドをその論理ディスクの物理ディスク用
のディスク・コマンドに区分する。
【0078】データ・アクセス機能とネットワーク伝送
機能の分割 好ましい実施例のストリーム制御装置20は、ホスト・
プロセッサの入出力バス15を介してストリーム・バッ
ファ・メモリからネットワーク・インタフェース論理回
路にデータを転送するように変更することができる。ス
トリーム制御装置21のこの実施態様は、ホスト・バス
15へのインタフェース221と変更したネットワーク
・インタフェース222とともに、図15に示す。この
構成の利点は、ストリーム制御装置21を交換せずにサ
ーバを各種ネットワークに接続するようにネットワーク
・インタフェース・カード222を変更できる点であ
る。
【0079】1つのホストに接続された複数のストリー
ム制御装置カード 好ましい実施例では、1つのストリーム制御装置20だ
けをホスト10に接続していた。前述のように、特にク
ライアントが長いストリームを要求した場合は、ビデオ
・ストリームの配布に関するホストの関与は最小限にな
る。このため、妥当なパフォーマンスを備えたホストが
十分に活用されなくなる。当業者であれば、図16に示
すようにホストの入出力バス15を介してホスト10を
複数のストリーム制御装置20に接続できることが容易
に分かるだろう。この場合、それぞれのストリーム制御
装置が専用の独立ディスク・アレイ60に接続され、連
続メディア・ファイルのストライプ化が同一制御装置に
接続されたディスクに制限される。クライアントがビデ
オ・ストリームを要求すると、1つのストリーム制御装
置だけがそのストリームのクライアントへの配布に関わ
ることになる。ファイルは同一ストリーム制御装置のデ
ィスクに格納されるが、同一ファイルの複数のコピーを
複数の異なるストリーム制御装置のディスク・アレイに
格納することができ、それぞれのコピーは1つのディス
ク・アレイに全体が格納される。
【0080】状態計算機によるローカル・プロセッサ計
算のオフロード ストリーム制御装置20によって同時にサポート可能な
ストリームの数は、2つの制限による制約を受ける。第
1の制限は、バス241、246、50、ストリーム・
バッファ・メモリ250、ネットワーク・インタフェー
ス220によるディスクからネットワークへの帯域幅で
ある。第2の制限は、ディスク読取り要求とネットワー
ク伝送要求を計算し、すべてのストリーム用の事前パケ
ット化データとしてプロトコル情報を完成するための制
御プロセッサ270の容量である。多数の並行ストリー
ムをサポートできるストリーム制御装置を設計する場
合、ディスクからネットワークへの高帯域幅データ経路
の設計も可能であるが、ディスク読取り要求とネットワ
ーク伝送要求およびすべてのストリーム用のプロトコル
情報を割り当てられた時間内に計算できるような適当な
制御プロセッサ270(安価なマイクロプロセッサ)を
見つけるのが困難な場合もある。しかし、当業者であれ
ば、このような計算が本来は非常に単純なものであり、
制御プロセッサから専用の状態計算機にオフロード可能
なものであることに容易に気付くであろう。事前パケッ
ト化データ内のプロトコル情報を計算するための状態計
算機は、ネットワーク・インタフェース220の一部に
することができる。
【0081】ディスク障害の処理 ディスクの障害発生率は、この10年間に大幅に低下し
た。さらに、好ましい実施例のディスク・アレイ60
は、本来は保存記憶装置であることが期待されていない
が、事前パケット化データの一時記憶装置として使用さ
れている。したがって、好ましい実施例では、ディスク
障害からの回復を考慮していない。しかし、RAIDシ
ステムのうちの1つまたは2つのディスクの障害から回
復するための周知の技法が好ましい実施例のストリーム
制御装置20でも使用できることは、当業者であれば容
易に分かるだろう。複数のデータ・ディスクからなる各
グループにパリティ・ディスクを追加し、パリティ・グ
ループ内のすべてのディスクについてブロックごとにパ
リティを計算することができる。
【0082】各種ネットワーク・プロトコルのサポート 好ましい実施例では、ATMネットワークを使用してお
り、その結果、ディスクにATM/AAL5パケットと
してデータを格納することにしている。ATM/AAL
5パケットは、1つのペイロードと8バイトのトレーラ
とを含むが、パケット・ヘッダは含まない。代わりに各
種ネットワークおよびネットワーキング・プロトコルを
使用することができ、使用するネットワーク・プロトコ
ルに適合するヘッダとトレーラを含むパケットとしてデ
ータがディスクに格納されることは、当業者であれば容
易に分かるだろう。たとえば、ネットワーク5がインタ
ーネットであれば、ATM/AAL5パケットの代わり
に、UDP(ユーザ・データグラム・プロトコル)[1
4]パケットを格納することができる。
【0083】ATM/AAL5パケットにはヘッダがな
く、トレーラのすべてのフィールドは、ファイルからの
データをATM/AAL5パケット・ペイロードにセグ
メント化するときに計算可能である。したがって、完全
事前計算パケットをディスクに格納した。しかし、他の
プロトコルの場合、パケットをディスクに格納するとき
にパケット・ヘッダのすべてのヘッダが計算可能ではな
い場合もある。たとえば、UDPパケットをディスクに
格納する場合、宛先ポート・フィールドは不明になる
(1つのクライアントからの複数のアプリケーションが
異なるUDPポート上で同時にストリームにアクセスで
きるか、または同一アプリケーションが複数のストリー
ムにアクセスできると想定する)。これに対して、長さ
フィールドは計算可能である。また、UDPではデータ
・ペイロード、UDPヘッダ、IP(インターネット・
プロトコル)擬似ヘッダでチェックサムが計算されるの
で、チェックサム・フィールドは計算不能である。UD
Pヘッダのソース・ポート・フィールドは、それより上
の各層の実施態様に応じて、既知の場合もあれば、不明
の場合もある。
【0084】UDPヘッダのチェックサムを計算するに
は、擬似ヘッダ内の宛先アドレスが分かっている必要が
あるが、これはデータをディスクに格納する時点では不
明である。しかし、チェックサム・フィールドは、デー
タ・ペイロードと、UDPヘッダおよびIP擬似ヘッダ
の既知のフィールドとによって部分的に計算することが
でき、その部分結果をパケットともにディスクに格納す
ることができ、パケットをクライアントに配布する時点
で、ディスクに格納されたUDPヘッダと擬似ヘッダの
欠落フィールドが分かることによってチェックサム計算
を完了することができる。チェックサムを一部計算する
ことの利点は、クライアントにデータを配布する時点
で、ヘッダ計算のオーバヘッドが大幅に低減され、同じ
データを複数のクライアントに配布するときにこのオー
バヘッドが繰り返し発生しないことである。
【0085】したがって、一般にネットワーク・プロト
コル・ヘッダまたはトレーラには、ディスクにパケット
を格納する時点で事前計算可能なフィールドがいくつか
備わり、部分的に計算可能なものもあれば、計算不能な
ものもある。事前計算可能フィールドを設定したこれら
のヘッダ/トレーラと、対応するフィールドに格納され
ているかまたはパケットに負荷された部分結果と、未指
定の計算不能フィールドとを格納する。これらのパケッ
トは部分事前計算パケットと呼ぶ。完全事前計算パケッ
トまたは部分事前計算パケットとして格納されるデータ
は、事前パケット化データと呼ぶ。ディスクに格納され
たデータが部分計算パケットから構成される場合、制御
プロセッサ270は、ストリーム・バッファへのデータ
の読込みからネットワークでのその伝送までの間に、欠
落フィールドを計算し、部分計算フィールドの計算を完
了して完全なパケット(ネットワーク・パケット)を形
成することができる。あるいは、ネットワーク・インタ
フェース220が組込み制御装置などの十分な知能を備
えている場合、制御プロセッサ270から出されるコマ
ンド・リストの各コマンドは、そのコマンドによってネ
ットワークに伝送されるパケットのヘッダ/トレーラを
完成するためにネットワーク・インタフェース論理回路
が使用できる情報を含むことができる。
【0086】ネットワーク・プロトコルは複数の層を有
する。好ましい実施例のストリーム制御装置は、ATM
層とATM適応層(ATM/AAL5)のヘッダおよび
トレーラの供給を担当している。ATM層のヘッダはネ
ットワーク・インタフェース220内のフライ上に構築
され、ATM/AAL5用のトレーラはパケット・ペイ
ロードとともにディスクに格納されている。事実、一部
のプロトコルはもっと多くの層を有する場合があり、デ
ィスク・アレイ60に連続メディア・データを格納する
前に一部の層のヘッダとトレーラを事前計算することが
望ましい場合が多いようである。ユーザ・データの各ペ
イロードは、ネットワーク・プロトコルの各種の層に対
応し、その前に接頭辞が付いた複数のヘッダと、同様に
末尾に連結された複数のトレーラとを有することができ
る。たとえば、インターネット・プロトコルの組を使用
した場合[14]、UDPヘッダとIPヘッダの一部の
フィールドが事前計算可能なので、ペイロードと、UD
Pヘッダと、IPヘッダとを含むパケットを格納するこ
とができる。UDPヘッダの長さフィールドは事前計算
可能であり、チェックサムは部分的に事前計算可能であ
るのに対し、IPヘッダではソース・アドレス、プロト
コル、持続時間、順序番号などが事前計算可能である。
IPとUDPにはトレーラがない。
【0087】パケット(プロトコル・データ単位)のサ
イズは、各層のパフォーマンスを個別に最適化するため
にネットワーク・プロトコルの様々な層で大幅に異なる
可能性がある。このような場合、プロトコルの上位の層
の部分または完全事前計算ヘッダとトレーラを連結する
ことによって、その層のパケットを先に形成するはずで
ある。次に、すぐ下の層が小さいペイロードを必要とす
るときはこの上位の層のパケットを下位の層用のより小
さい複数のペイロードに断片化し、この層の部分または
完全事前計算ヘッダとトレーラを上位の層から受け取っ
たペイロードに連結する。このステップは、いくつかの
プロトコル層について繰り返すことができる。プロトコ
ルの下位の層が上位の層より大きいペイロードを受け入
れる場合は、下位の層に渡す前に上位の層によって生成
された事前パケット化PDUを断片化する代わりに、こ
のようなPDUを複数個組み合わせて、下位の層用のよ
り大きいペイロード(SDU)を形成するはずである。
【0088】本質的にネットワーク・パケットのヘッダ
/トレーラ・フィールドが同一入出力要求のすべてのパ
ケットについて同一である場合、またはこれらのフィー
ルドが非常にわずかな命令を使用して制御プロセッサに
よって計算可能である場合、パケット・ペイロードとと
もにヘッダおよびトレーラ・フィールドを格納すること
は不可欠ではない。ヘッダ/トレーラ・テンプレートの
アレイは、各入出力要求ごとにストリーム制御装置のロ
ーカル・メモリ271に保管することができ、アレイ内
のテンプレートの数は各ネットワーク・サイクル中にネ
ットワークを介して伝送されるパケットの数と等しくな
る。次に制御プロセッサは、そのアレイに対応する入出
力要求のパケット間で異なるアレイのテンプレートの各
種フィールドを計算する。ネットワーク・インタフェー
ス220は、ストリーム・バッファ・メモリ250から
パケットのペイロードを読み取り、連鎖DMA転送を使
用してローカル・メモリ271からパケットのヘッダ/
トレーラを読み取るよう指示される。
【0089】複数のネットワーク・プロトコルのサポー
異なるクライアント2が異なるネットワーク・プロトコ
ルを使用して同一サーバ9からデータを受け取ることは
可能である。たとえば、ATM/AAL5パケットとし
てデータを要求するクライアントもあれば、別のATM
適応層を介して同一データを要求するクライアントもあ
り、さらにUDPデータグラムとして同一データを要求
するクライアントもある。この要件を処理する方法の1
つは、図17に示すように各パケット・ペイロードによ
って複数のヘッダ/トレーラを付加する方法であり、事
前パケット化データの各パケット1010はペイロード
1011と、ATM/AAL5トレーラ1014と、U
DPヘッダ1013と、IDP(インターネット・デー
タグラム・プロトコル)ヘッダ1012とを有する[1
4]。(IDPはXNS(ゼロックス・ネットワーキン
グ・システム)アーキテクチャのネットワーク層であ
る。)パケットは、ともに格納されているすべてのヘッ
ダ/トレーラとともにディスクからストリーム・バッフ
ァに読み込まれる。別のパケット・ペイロードとともに
格納されている同一プロトコルのすべてのヘッダ/トレ
ーラが同じサイズであり、同じ順序でペイロードに付加
されている場合、制御プロセッサは、単純な算術計算を
使用して要求されたプロトコルのヘッダとトレーラを容
易に特定することができる。選択されたプロトコルのヘ
ッダ/トレーラが部分的に事前計算されている場合は、
計算されていないフィールドまたは部分的に計算されて
いるフィールドを制御プロセッサが(または前述のよう
にネットワーク・インタフェースが)ストリーム・バッ
ファに記入することができる。次にプロセッサは、クラ
イアントが要求したプロトコルのヘッダ/トレーラをパ
ケットの先頭および末尾にリンクして、連鎖DMA転送
要求を生成し、ネットワークを介してパケットを伝送す
るためのネットワーク・インタフェース220へのコマ
ンドにこのリストを含める。
【0090】上記の手法では、ネットワークを介してデ
ータを伝送するために選択したネットワーク・プロトコ
ルとは無関係に、データを同じようにペイロードにセグ
メント化することができると想定している。ときには、
これが不可能な場合もある。たとえば、2つのプロトコ
ルがともに異なるサイズの固定サイズ・ペイロードを必
要とする場合もあれば、パフォーマンス上の理由から異
なるプロトコルには異なるペイロード・サイズが好まし
い場合もある。異なるプロトコルが異なる方法でデータ
をペイロードにセグメント化する場合、そのデータとヘ
ッダを含むストライプは図18に示すように編成され
る。ストライプ1000は、前述のストライプ・ヘッダ
1020を有する。このストライプ内のすべてのパケッ
トのペイロードはフィールド1030にまとめて格納さ
れる。このストライプのすべてのATM/AAL5ペイ
ロード用のATM/AAL5プロトコルのトレーラはフ
ィールド1004にまとめて格納され、UDPおよびI
DPプロトコルのヘッダはフィールド1003と100
2に同じように格納される。この場合、各ストライプの
データはそれぞれのプロトコルによって完全なペイロー
ドにセグメント化される、すなわち、どのプロトコルの
ペイロードも複数のストライプにまたがらないものと想
定する。ポインタ1040はそれぞれのヘッダと、ヘッ
ダを持たないプロトコルのトレーラに付加され、ストラ
イプのフィールド1030内のパケットのペイロードを
指す。図18は、フィールド1002、1003、10
04が3つのIDPヘッダ1012、4つのUDPヘッ
ダ1013、2つのATM/AAL5トレーラ1014
に分割され、それぞれのヘッダ/トレーラの末尾のポイ
ンタ1040がそれぞれのプロトコル用のペイロード1
011を指している。ヘッダとトレーラからなるアレイ
は、サーバによってサポートされるそれぞれのプロトコ
ル用のデータとストライプ・ヘッダとの間に格納され
る。ただし、ヘッダ/トレーラ・テンプレートのアレイ
が異なるとテンプレートの数が異なり、アレイ内のテン
プレートは同じサイズになるが、異なるアレイのテンプ
レートはサイズが異なることに留意されたい。それぞれ
のヘッダは2つの追加フィールドを有し、第1のフィー
ルドはストライプに格納されたデータ内のそのペイロー
ドの開始位置を指し、第2のフィールドはペイロードの
長さを含む。ストライプ全体がストリーム・バッファに
読み込まれると、制御プロセッサ270は、伝送すべき
ペイロードと要求されたプロトコルのヘッダ/トレーラ
とをリンクして連鎖DMAリストを構築することがで
き、ペイロードの位置はヘッダから得られる。要求され
たプロトコルの部分計算フィールドまたは未計算フィー
ルドは制御プロセッサ270によって更新され、ネット
ワークを介してパケットを伝送するためにヘッダ、ペイ
ロード、トレーラをリンクする連鎖DMAリストがネッ
トワーク・インタフェース220に送られる。
【0091】参考文献 [1] Craig Partridge, "Gigabit Networking," Addison
Wesley Publishing Co., Reading, Mass. 01867, ISBN
0-201-56333-9, Oct. 1993. [2] M. J. Bach, "The design of the Unix operating
system," Prentice HallInc., Englewoods Cliffs, NJ,
07632, ISBN 0-13-201799-7 025, 1986. [3] H. M. Vin and P. V. Rangan, "Designing a multi
user HDTV storage server," IEEE Jour. on Selected
Areas in Communications, 11(1), Jan. 1993, pp. 153
-164. [4] D. Kandlur, M. S. Chen, and Z. Y. Shae, "Desig
n of a multimedia storage server," In IS&T/SPIE sy
mposium on Electronic Imaging Science and Technolo
gy, (San Jose, CA 1994). [5] A. Dan and D. Sitaram, "Buffer management poli
cy for an on-demand video server," IBM Research Re
port RC 19347. [6] A. Dan and D. Sitaram, "Scheduling policy for
an on-demand video server with batching," IBM Rese
arch Report RC 19381. [7] R. Haskin, "The Shark continuous media file se
rver," Proc. IEEE COMPCON 1993 (San Francisco CA,
1993). [8] P. M. Chen, E. K. Lee, G. A. Gibson, R. H. Kat
z, and D. A. Patterson, "High-Performance Reliable
Secondary Storage," ACM Computing Surveys 26(2),
June 1994, pp. 145-185. [9] F. A. Tobagi, J. Pang, R. Baird, and M. Gang,
"Streaming RAID - A disk array management system
for video files," Proc. ACM Multimedia 1993,pp. 39
3-400. [10] Jeffrey D. Stai, "SCSI Encyclopedia Vols. 1 a
nd 2," ENDL Publications, Saratoga, CA, 1991, ISBN
1879936100. [11] Didier Le Gall, "MPEG: A Video Compression St
andard for MultimediaApplications," CACM 34(4), Ap
ril 1991, pp. 46-63. [12] J. K. Dey C. S. Shih & M. Kumar, "Storage sub
system in a large multimedia server for high-speed
network environments," Proc. SPIE 2188, Feb. 8-10
1994, pp. 200-211. [13] "NCR 53C720 SCSI I/O Processor Data Manual,"
NCR Corporation, Dayton OHIO. [14] W. R. Stevens, "UNIX Network Programming," Pr
entice-Hall Inc., Englewood Cliffs, NJ 07632.
【0092】付録A: 磁気ディスク記憶装置(ハード
・ディスク) 図19は、最新の磁気ディスク記憶装置の構造を示して
いる。1つのディスクは複数の光ディスクから構成さ
れ、光ディスクの両面は記録面を形成するために磁気コ
ーティングが施されている。各記録面ごとに1つの読取
り/書込みヘッドがあり、すべての読取り/書込みヘッ
ドが同じアクチュエータ(ディスク・アーム)に接続さ
れている。したがって、すべての読取り/書込みヘッド
が一緒に動き、いつも光ディスクの中心から同じ半径方
向距離の位置にある。読取り/書込みヘッドは記録面上
の固定位置からトラックという数ミクロン幅の環状リン
グを走査する。図19に示すように、すべての記録面上
の同じ位置にあるトラックが1つのシリンダを形成す
る。したがって、ディスク・アームの任意の位置からシ
リンダ全体の内容にアクセスすることができる。
【0093】トラック上に格納されたデータはブロック
単位にさらに分割され、ブロックはSCSIディスク・
ドライブでのアクセスの基本単位になる。1つのブロッ
クのデータを読み取るのに要する時間は3つの部分から
なる。1)データが格納されているシリンダまでディス
ク・アームを移動させるのに要する時間(シーク時間と
いう)と、2)ディスク・アームが所望のシリンダに移
動したときから、所望のブロックの第1のビットが読取
り/書込みヘッドの下で回転するための追加の時間(回
転待ち時間という)と、3)ブロックがディスク・ヘッ
ドの下で回転するのに要する時間(読取り時間)であ
る。同一トラック上の連続ブロックを読み取る場合は、
読み取っている最初のブロックについてのみシーク待ち
時間と回転待ち時間が発生する。2つまたはそれ以上の
トラックにまたがる同一シリンダ上の連続ブロックを読
み取る場合は、任意のトラックの最後のブロックの読取
りと次のトラックの最初のブロックの読取りとの間にご
くわずかな回転待ち時間が発生し、シーク待ち時間は一
切発生しない。1つのトラックは通常、10〜50個の
ブロックを有する。
【0094】最新のSCSIディスク・ドライブでは、
ディスク上の物理ブロックを論理ブロックにマッピング
する。このマッピングは、ディスク上の不良ブロックを
隠すために行われる。その結果、1つのトラック上の論
理ブロックの数は変化する可能性がある。ディスクに対
する読取りコマンドは、読み書きするデータを論理ブロ
ック単位で指定する。物理ブロックから論理ブロックへ
のマッピングなので、トラック上の最初と最後の論理ブ
ロックを決定することができない。しかし、シリンダの
最初と最後の論理ブロックは決定することができる。シ
リンダ上の正常物理ブロックは順序正しく論理ブロック
にマッピングされる。したがって、隣接する2つの論理
ブロックが隣接する物理ブロックではなくても、隣接す
る2つの論理ブロック間の回転待ち時間は最小限にな
る。
【0095】平均回転待ち時間がディスクの回転周期の
半分に等しいことは容易に分かるであろう。平均シーク
時間も平均回転待ち時間とほぼ同じである。したがっ
て、ディスクのデータ・スループットを最適化するに
は、ディスクへの読取りコマンドがトラック1つまたは
数個分のサイズのデータを要求しなければならない。
【0096】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0097】(1)複数組のディスクを有し、複数のデ
ータ単位がそこに格納されており、前記データ単位のそ
れぞれが前記複数組のディスクに格納されたストライプ
に分割され、それぞれのストライプが前記ディスクの1
組にだけ格納されている記憶システムにおいて、前記デ
ータ単位のうちの要求されたデータ単位を取り出す方法
であって、それぞれの要求されたデータ単位が前記デー
タ単位のうちの前記要求されたデータ単位用の入出力要
求のうちの対応するものによって要求され、 a.前記要求のそれぞれを複数の読取りコマンドに分割
するステップであって、前記読取りコマンドのそれぞれ
を使用して前記データ単位のうちの1つのストライプ分
のデータ単位を取り出すステップと、 b.データ単位が完全に取り出されていない前記入出力
要求のそれぞれから少なくとも1つの読取りコマンドを
同時に出すステップと、 c.前記入出力要求の前記データ単位のすべてが取り出
されるまで、ステップbを連続的に繰り返すステップと
を含むことを特徴とする方法。 (2)各組のディスクが1つのディスクだけを有するこ
とを特徴とする、上記(1)に記載の方法。 (3)前記データ単位が事前パケット化データを含むこ
とを特徴とする、上記(1)に記載の方法。 (4)前記ストライプが可変長であっても、前記ストラ
イプのそれぞれが同じ再生時間を要することを特徴とす
る、上記(1)に記載の方法。 (5)それぞれの入出力要求ごとに、前記読取りコマン
ドが前記再生時間の期間の一定の間隔で再生順に定期的
に出され、前記要求のそれぞれの前記再生順で最初の読
取りコマンドを受け取る前記ディスクのうちの1組のデ
ィスクが、前記再生時間内に前記読取りコマンドのうち
の任意の読取りコマンドを完了するために使用可能な追
加の帯域幅を有するものと判断されたときに、前記最初
の読取りコマンドが出されることを特徴とする、上記
(4)に記載の方法。 (6)複数組のディスクを有し、複数のデータ単位がそ
こに格納されており、前記データ単位のそれぞれが前記
複数組のディスクに格納されたストライプに分割され、
それぞれのストライプが前記ディスクの1組にだけ格納
されている記憶取出しシステムにおいて、前記データ単
位のうちの要求されたデータ単位を取り出す装置であっ
て、それぞれの要求されたデータ単位が前記データ単位
のうちの前記要求されたデータ単位用の入出力要求のう
ちの対応するものによって要求され、 a.前記要求のそれぞれを複数の読取りコマンドに分割
する手段であって、前記読取りコマンドのそれぞれを使
用して前記データ単位のうちの1つのストライプ分のデ
ータ単位を取り出す手段と、 b.データ単位が完全に取り出されていない前記入出力
要求のそれぞれから少なくとも1つの読取りコマンドを
同時に出す手段と、 c.前記入出力要求の前記データ単位のすべてが取り出
されるまで、ステップbを連続的に繰り返す手段とを含
むことを特徴とする装置。 (7)ディスク記憶空間の使用効率を最大限にし、取出
し時間を最小限にするように複数のディスク上にデータ
単位を格納する方法において、 a.前記データ単位のそれぞれを複数のストライプに分
割するステップと、 b.前記ディスクのうちの1つの任意のシリンダが前記
データ単位のうちの同一データ単位からのストライプだ
けを格納するように、前記ディスク上に前記ストライプ
を格納するステップと、 c.前記シリンダのうちの1つだけに前記ストライプの
それぞれを格納するステップとを含むことを特徴とする
方法。 (8)前記ディスクのすべての同一位置にあるシリンダ
を使用して、同一データ単位のストライプを格納するこ
とを特徴とする、上記(7)に記載の方法。 (9)1つのサーバと、前記サーバに接続された複数の
クライアント端末とを有するネットワークにおいて、デ
ータを求める要求に応答して前記クライアントに前記デ
ータを配布する方法であって、 a.それを求める要求の前に前記データを事前パケット
化し、それをサーバに格納するステップと、 b.前記事前パケット化データを求める要求を受け取っ
たときに、事前パケット化データを取り出し、ヘッダま
たはトレーラあるいはその両方を完成することによっ
て、伝送すべき完全なパケットを形成するステップと、 c.前記パケットを前記要求側クライアントに伝送する
ステップとを含むことを特徴とする方法。 (10)通信ネットワークを介して複数のクライアント
端末にデータの各部を配布するシステムにおいて、 a.複数のディスクと、 b.前記データを事前パケット化するためのホスト・プ
ロセッサと、 c.前記ホスト・プロセッサから前記事前パケット化デ
ータを受け取り、それを前記ディスクに格納するための
ストリーム制御装置とを含み、前記ホスト・プロセッサ
が、前記ディスクに格納された前記パケット化データの
前記各部を取り出すために前記クライアントからクライ
アント要求を受け取り、前記クライアント要求に応答し
て、前記ストリーム制御装置に入出力要求を送信し、前
記ストリーム制御装置が前記入出力要求に応答して前記
ディスクから前記ネットワークに前記要求されたデータ
を転送し、前記各部が前記ホスト・プロセッサに送信さ
れずに転送されることを特徴とするシステム。 (11)前記ストリーム制御装置が、 a.複数のディスク制御装置と、 b.ストリーム・バッファ・メモリと、 c.リアルタイム制御プロセッサと、 d.ネットワーク・インタフェース・ユニットとを含
み、 e.前記制御プロセッサが前記ホスト・プロセッサから
前記入出力要求を受け取ってそれぞれの要求を複数の読
取りコマンドに分割し、前記制御プロセッサが前記読取
りコマンドをスケジューリングして前記スケジューリン
グした読取りコマンドを前記ディスク制御装置に転送
し、前記ディスク制御装置が、前記読取りコマンドに応
答して前記ディスクから前記ストリーム・バッファ・メ
モリにデータを転送し、前記制御プロセッサが前記事前
パケット化データのヘッダとトレーラを完成して完全な
パケットを形成し、前記制御プロセッサが前記クライア
ントへの前記完全なパケットの伝送をスケジューリング
し、前記スケジュールを前記ネットワーク・インタフェ
ース・ユニットに転送し、前記ネットワーク・インタフ
ェースが前記スケジュールに応じて前記ストリーム・バ
ッファ・メモリから前記ネットワークに前記完全なパケ
ットを伝送し、前記完全なパケットが前記ネットワーク
によって前記クライアントに配布されることを特徴とす
る、上記(10)に記載の装置。 (12)前記ストリーム制御装置が、 a.複数のディスク制御装置と、 b.ストリーム・バッファ・メモリと、 c.リアルタイム制御プロセッサと、 d.ネットワーク・インタフェース・ユニットとを含
み、 e.前記制御プロセッサが前記ホスト・プロセッサから
前記入出力要求を受け取ってそれぞれの要求を複数の読
取りコマンドに分割し、前記制御プロセッサが前記読取
りコマンドをスケジューリングして前記スケジューリン
グした読取りコマンドを前記ディスク制御装置に転送
し、前記ディスク制御装置が、前記読取りコマンドに応
答して前記ディスクから前記ストリーム・バッファ・メ
モリに前記事前パケット化データを転送し、前記制御プ
ロセッサが前記クライアントへの前記事前パケット化デ
ータの伝送をスケジューリングし、前記スケジュールを
前記ネットワーク・インタフェース・ユニットに転送
し、前記ネットワーク・インタフェース・ユニットが前
記ストリーム・バッファ・メモリから前記事前パケット
化データを読み取り、前記パケットのヘッダとトレーラ
を完成して完全なパケットを形成し、前記ネットワーク
・インタフェースが前記スケジュールに応じて前記ネッ
トワークに前記完全なパケットも伝送し、前記完全なパ
ケットが前記ネットワークから前記クライアントに配布
されることを特徴とする、上記(10)に記載の装置。
【図面の簡単な説明】
【図1】複数のクライアントが広帯域ネットワークを介
して1つまたは複数のサーバにアクセスする、対話式マ
ルチメディア・サービス環境を示す図である。
【図2】対話式マルチメディア・サーバの高レベル構成
を示し、ホストと、ストリーム制御装置と、ディスクと
の間の接続を示す図である。
【図3】ストリーム・バッファと、小型計算機システム
・インタフェース(SCSI)制御装置と、ネットワー
ク・インタフェースと、制御プロセッサとを含む、スト
リーム制御装置のハードウェアを示す図である。
【図4】ストリーム制御装置のソフトウェア、すなわ
ち、主要データ構造とプロセスの高レベル図である。
【図5】ストリーム制御テーブルの各種項目を詳細に示
す図である。
【図6】ストリーム制御プログラムのリアルタイム部分
であるデータ移動構成要素の流れ図である。
【図7】スケジュール・テーブル、SCSIバス・ロー
ド・テーブル、全ロード・テーブルの概略を示す図であ
る。
【図8】圧縮率が所与のファイルについては一定である
がファイル間では変化する場合に、一定の再生時間に連
続メディア・ファイルをディスク間にストライプ単位で
ストライプ化する場合を示す図である。
【図9】可変ビット転送速度圧縮を有し、そのために同
一ファイルの各種ストライプが各種サイズを有する場合
の、連続メディア・ファイルのストライプ化を示す図で
ある。
【図10】可変ビット転送速度圧縮を有し、そのために
同一ファイルの各種ストライプが各種サイズを有する場
合の、連続メディア・ファイルのストライプ化を示す図
である。
【図11】XとZが同一の固定速度で圧縮され、Yがそ
れより低い固定速度で圧縮される場合に、3つの連続メ
ディア・ファイルX、Y、Zを4つのディスクからなる
アレイに格納する例を示す図である。
【図12】4つの連続メディア・ストリームと、ディス
ク・サイクルとの関係とを示す図である。
【図13】図12に示すストリーム用のスケジュール・
テーブルを示す図である。
【図14】1、2、3というディスク・サイクル中にデ
ィスクにアクセスするためのスケジュールを示す図であ
る。
【図15】ネットワーク・インタフェース論理回路が個
別にホスト・バスに接続し、ホスト・バスを介してスト
リーム・バッファから事前パケット化したデータを受け
取るような、ネットワーク・インタフェースを持たない
ストリーム制御装置の変形態様を示す図である。
【図16】単一ホストが複数のストリーム制御装置カー
ドを制御するマルチメディア・サーバを示す図である。
【図17】ユーザ・データグラム・プロトコル/インタ
ーネット・プロトコル(UDP/IP)とゼロックス・
ネットワーキング・システム・アーキテクチャのインタ
ーネット・データグラム・プロトコル(IDP/XN
S)というヘッダと、ATM/AAL5というトレーラ
がパケット・ペイロードに連結された事前パケット化デ
ータを示す図である。
【図18】複数プロトコル用の事前パケット化をサポー
トし、各プロトコルがストライプ内のデータ・ペイロー
ドを別々にパケット・ペイロードに分割する、ディスク
上に格納されたデータのストライプの形式を示す図であ
る。
【図19】磁気ディスクを論じる場合に使用する用語を
示す、最新の磁気ディスク(ハード・ディスク・ドライ
ブ)の概略図である。
【符号の説明】
9 サーバ 10 ホスト 20 ストリーム制御装置 50 B−ISDN接続 60 ディスク・アレイ 61 ディスク 65 SCSIバス 220 ネットワーク・インタフェース 230 SCSI制御装置チップ 240 論理回路 241 バス 245 論理回路 246 バス 250 ストリーム・バッファ・メモリ 260 ローカル・プロセッサ・バス 270 CPU 271 ローカル・メモリ 280 タイマ 281 レジスタ 282 ホスト・インタフェース
フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04N 7/173 H04N 5/93 E (72)発明者 マノジュ・クマル アメリカ合衆国10598 ニューヨーク州ヨ ークタウン・ハイツ オーバールック・コ モンズ 2エイチ

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】複数組のディスクを有し、複数のデータ単
    位がそこに格納されており、前記データ単位のそれぞれ
    が前記複数組のディスクに格納されたストライプに分割
    され、それぞれのストライプが前記ディスクの1組にだ
    け格納されている記憶システムにおいて、前記データ単
    位のうちの要求されたデータ単位を取り出す方法であっ
    て、それぞれの要求されたデータ単位が前記データ単位
    のうちの前記要求されたデータ単位用の入出力要求のう
    ちの対応するものによって要求され、 a.前記要求のそれぞれを複数の読取りコマンドに分割
    するステップであって、前記読取りコマンドのそれぞれ
    を使用して前記データ単位のうちの1つのストライプ分
    のデータ単位を取り出すステップと、 b.データ単位が完全に取り出されていない前記入出力
    要求のそれぞれから少なくとも1つの読取りコマンドを
    同時に出すステップと、 c.前記入出力要求の前記データ単位のすべてが取り出
    されるまで、ステップbを連続的に繰り返すステップと
    を含むことを特徴とする方法。
  2. 【請求項2】各組のディスクが1つのディスクだけを有
    することを特徴とする、請求項1に記載の方法。
  3. 【請求項3】前記データ単位が事前パケット化データを
    含むことを特徴とする、請求項1に記載の方法。
  4. 【請求項4】前記ストライプが可変長であっても、前記
    ストライプのそれぞれが同じ再生時間を要することを特
    徴とする、請求項1に記載の方法。
  5. 【請求項5】それぞれの入出力要求ごとに、前記読取り
    コマンドが前記再生時間の期間の一定の間隔で再生順に
    定期的に出され、前記要求のそれぞれの前記再生順で最
    初の読取りコマンドを受け取る前記ディスクのうちの1
    組のディスクが、前記再生時間内に前記読取りコマンド
    のうちの任意の読取りコマンドを完了するために使用可
    能な追加の帯域幅を有するものと判断されたときに、前
    記最初の読取りコマンドが出されることを特徴とする、
    請求項4に記載の方法。
  6. 【請求項6】複数組のディスクを有し、複数のデータ単
    位がそこに格納されており、前記データ単位のそれぞれ
    が前記複数組のディスクに格納されたストライプに分割
    され、それぞれのストライプが前記ディスクの1組にだ
    け格納されている記憶取出しシステムにおいて、前記デ
    ータ単位のうちの要求されたデータ単位を取り出す装置
    であって、それぞれの要求されたデータ単位が前記デー
    タ単位のうちの前記要求されたデータ単位用の入出力要
    求のうちの対応するものによって要求され、 a.前記要求のそれぞれを複数の読取りコマンドに分割
    する手段であって、前記読取りコマンドのそれぞれを使
    用して前記データ単位のうちの1つのストライプ分のデ
    ータ単位を取り出す手段と、 b.データ単位が完全に取り出されていない前記入出力
    要求のそれぞれから少なくとも1つの読取りコマンドを
    同時に出す手段と、 c.前記入出力要求の前記データ単位のすべてが取り出
    されるまで、ステップbを連続的に繰り返す手段とを含
    むことを特徴とする装置。
  7. 【請求項7】ディスク記憶空間の使用効率を最大限に
    し、取出し時間を最小限にするように複数のディスク上
    にデータ単位を格納する方法において、 a.前記データ単位のそれぞれを複数のストライプに分
    割するステップと、 b.前記ディスクのうちの1つの任意のシリンダが前記
    データ単位のうちの同一データ単位からのストライプだ
    けを格納するように、前記ディスク上に前記ストライプ
    を格納するステップと、 c.前記シリンダのうちの1つだけに前記ストライプの
    それぞれを格納するステップとを含むことを特徴とする
    方法。
  8. 【請求項8】前記ディスクのすべての同一位置にあるシ
    リンダを使用して、同一データ単位のストライプを格納
    することを特徴とする、請求項7に記載の方法。
  9. 【請求項9】1つのサーバと、前記サーバに接続された
    複数のクライアント端末とを有するネットワークにおい
    て、データを求める要求に応答して前記クライアントに
    前記データを配布する方法であって、 a.それを求める要求の前に前記データを事前パケット
    化し、それをサーバに格納するステップと、 b.前記事前パケット化データを求める要求を受け取っ
    たときに、事前パケット化データを取り出し、ヘッダま
    たはトレーラあるいはその両方を完成することによっ
    て、伝送すべき完全なパケットを形成するステップと、 c.前記パケットを前記要求側クライアントに伝送する
    ステップとを含むことを特徴とする方法。
  10. 【請求項10】通信ネットワークを介して複数のクライ
    アント端末にデータの各部を配布するシステムにおい
    て、 a.複数のディスクと、 b.前記データを事前パケット化するためのホスト・プ
    ロセッサと、 c.前記ホスト・プロセッサから前記事前パケット化デ
    ータを受け取り、それを前記ディスクに格納するための
    ストリーム制御装置とを含み、 前記ホスト・プロセッサが、前記ディスクに格納された
    前記パケット化データの前記各部を取り出すために前記
    クライアントからクライアント要求を受け取り、前記ク
    ライアント要求に応答して、前記ストリーム制御装置に
    入出力要求を送信し、 前記ストリーム制御装置が前記入出力要求に応答して前
    記ディスクから前記ネットワークに前記要求されたデー
    タを転送し、前記各部が前記ホスト・プロセッサに送信
    されずに転送されることを特徴とするシステム。
  11. 【請求項11】前記ストリーム制御装置が、 a.複数のディスク制御装置と、 b.ストリーム・バッファ・メモリと、 c.リアルタイム制御プロセッサと、 d.ネットワーク・インタフェース・ユニットとを含
    み、 e.前記制御プロセッサが前記ホスト・プロセッサから
    前記入出力要求を受け取ってそれぞれの要求を複数の読
    取りコマンドに分割し、前記制御プロセッサが前記読取
    りコマンドをスケジューリングして前記スケジューリン
    グした読取りコマンドを前記ディスク制御装置に転送
    し、 前記ディスク制御装置が、前記読取りコマンドに応答し
    て前記ディスクから前記ストリーム・バッファ・メモリ
    にデータを転送し、 前記制御プロセッサが前記事前パケット化データのヘッ
    ダとトレーラを完成して完全なパケットを形成し、前記
    制御プロセッサが前記クライアントへの前記完全なパケ
    ットの伝送をスケジューリングし、前記スケジュールを
    前記ネットワーク・インタフェース・ユニットに転送
    し、 前記ネットワーク・インタフェースが前記スケジュール
    に応じて前記ストリーム・バッファ・メモリから前記ネ
    ットワークに前記完全なパケットを伝送し、前記完全な
    パケットが前記ネットワークによって前記クライアント
    に配布されることを特徴とする、請求項10に記載の装
    置。
  12. 【請求項12】前記ストリーム制御装置が、 a.複数のディスク制御装置と、 b.ストリーム・バッファ・メモリと、 c.リアルタイム制御プロセッサと、 d.ネットワーク・インタフェース・ユニットとを含
    み、 e.前記制御プロセッサが前記ホスト・プロセッサから
    前記入出力要求を受け取ってそれぞれの要求を複数の読
    取りコマンドに分割し、前記制御プロセッサが前記読取
    りコマンドをスケジューリングして前記スケジューリン
    グした読取りコマンドを前記ディスク制御装置に転送
    し、 前記ディスク制御装置が、前記読取りコマンドに応答し
    て前記ディスクから前記ストリーム・バッファ・メモリ
    に前記事前パケット化データを転送し、 前記制御プロセッサが前記クライアントへの前記事前パ
    ケット化データの伝送をスケジューリングし、前記スケ
    ジュールを前記ネットワーク・インタフェース・ユニッ
    トに転送し、 前記ネットワーク・インタフェース・ユニットが前記ス
    トリーム・バッファ・メモリから前記事前パケット化デ
    ータを読み取り、前記パケットのヘッダとトレーラを完
    成して完全なパケットを形成し、前記ネットワーク・イ
    ンタフェースが前記スケジュールに応じて前記ネットワ
    ークに前記完全なパケットも伝送し、前記完全なパケッ
    トが前記ネットワークから前記クライアントに配布され
    ることを特徴とする、請求項10に記載の装置。
JP31524095A 1994-12-06 1995-12-04 複数のクライアントにデータを配布するシステム Expired - Fee Related JP3369821B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35036494A 1994-12-06 1994-12-06
US350364 1994-12-06

Publications (2)

Publication Number Publication Date
JPH08297602A true JPH08297602A (ja) 1996-11-12
JP3369821B2 JP3369821B2 (ja) 2003-01-20

Family

ID=23376393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31524095A Expired - Fee Related JP3369821B2 (ja) 1994-12-06 1995-12-04 複数のクライアントにデータを配布するシステム

Country Status (4)

Country Link
US (1) US5915094A (ja)
EP (1) EP0716370A3 (ja)
JP (1) JP3369821B2 (ja)
KR (1) KR100231220B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005094140A (ja) * 2003-09-12 2005-04-07 Sanyo Electric Co Ltd 映像表示装置
US7146424B2 (en) * 1999-03-10 2006-12-05 Microsoft Corporation File server system and method for scheduling data streams according to a distributed scheduling policy
KR100938470B1 (ko) * 2007-12-17 2010-01-25 한국전자통신연구원 스트리밍 데이터 공유를 위한 fc 기반의 네트워크스토리지 스트리밍 가속 장치 및 방법

Families Citing this family (240)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661477B2 (en) 1994-10-12 2014-02-25 Touchtunes Music Corporation System for distributing and selecting audio and video information and method implemented by said system
US7188352B2 (en) 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
CA2201909C (fr) 1994-10-12 2006-05-02 Technical Maintenance Corporation Systeme de reproduction audiovisuelle numerique intelligent
US7424731B1 (en) 1994-10-12 2008-09-09 Touchtunes Music Corporation Home digital audiovisual information recording and playback system
US7349976B1 (en) 1994-11-30 2008-03-25 Realnetworks, Inc. Audio-on-demand communication system
US5793980A (en) 1994-11-30 1998-08-11 Realnetworks, Inc. Audio-on-demand communication system
US6769128B1 (en) 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
US6469753B1 (en) 1996-05-03 2002-10-22 Starsight Telecast, Inc. Information system
US5931922A (en) * 1996-07-01 1999-08-03 Sun Microsystems, Inc. Media server system for preventing FIFO buffer underflow during multiple channel startup by waiting until buffer receives plurality of data blocks before enabling buffer to transmit received data
FR2753868A1 (fr) 1996-09-25 1998-03-27 Technical Maintenance Corp Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede
US6078989A (en) * 1996-10-04 2000-06-20 Sony Corporation Disc array control method and disc array control apparatus
JP3217002B2 (ja) * 1996-11-19 2001-10-09 株式会社日立製作所 デジタルスタジオ装置およびその制御方法
US6292878B1 (en) 1996-12-12 2001-09-18 Matsushita Electric Industrial Co., Ltd. Data recorder and method of access to data recorder
DE69804523T2 (de) * 1997-02-03 2002-07-18 Matsushita Electric Industrial Co., Ltd. Datenrecorder und Verfahren zum Zugriff auf einen Datenrecorder
US9113122B2 (en) 1997-04-21 2015-08-18 Rovi Guides, Inc. Method and apparatus for time-shifting video and text in a text-enhanced television program
JPH10320130A (ja) * 1997-05-02 1998-12-04 Internatl Business Mach Corp <Ibm> ディスク処理装置および記録媒体
DE19720989A1 (de) * 1997-05-20 1998-11-26 Alsthom Cge Alcatel Server zum Anbieten eines Dienstes
US6427184B1 (en) * 1997-06-03 2002-07-30 Nec Corporation Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams
KR100363119B1 (ko) 1997-07-21 2002-12-05 이 가이드, 인코포레이티드 디스플레이및녹화제어인터페이스용시스템및방법
US6161169A (en) * 1997-08-22 2000-12-12 Ncr Corporation Method and apparatus for asynchronously reading and writing data streams into a storage device using shared memory buffers and semaphores to synchronize interprocess communications
US6310886B1 (en) * 1997-08-28 2001-10-30 Tivo, Inc. Method and apparatus implementing a multimedia digital network
JPH1185710A (ja) * 1997-09-16 1999-03-30 Toshiba Corp サーバ装置およびファイル管理方法
FR2769165B1 (fr) 1997-09-26 2002-11-29 Technical Maintenance Corp Systeme sans fil a transmission numerique pour haut-parleurs
US6757746B2 (en) 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6134630A (en) 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
US6415373B1 (en) 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6374336B1 (en) 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6453355B1 (en) 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6744763B1 (en) 1998-01-15 2004-06-01 Apple Computer, Inc. Method and apparatus for media data transmission
US6134243A (en) * 1998-01-15 2000-10-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6380950B1 (en) * 1998-01-20 2002-04-30 Globalstreams, Inc. Low bandwidth television
US6094663A (en) * 1998-03-31 2000-07-25 Apple Computer, Inc. Method and apparatus for implementing atomic queues
US6101547A (en) * 1998-07-14 2000-08-08 Panasonic Technologies, Inc. Inexpensive, scalable and open-architecture media server
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
FR2781582B1 (fr) 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
US8028318B2 (en) 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
FR2781591B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Systeme de reproduction audiovisuelle
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
US6567981B1 (en) 1998-08-03 2003-05-20 Elysium Broadband Inc. Audio/video signal redistribution system
US6898762B2 (en) 1998-08-21 2005-05-24 United Video Properties, Inc. Client-server electronic program guide
US6061720A (en) * 1998-10-27 2000-05-09 Panasonic Technologies, Inc. Seamless scalable distributed media server
US6859799B1 (en) 1998-11-30 2005-02-22 Gemstar Development Corporation Search engine for video and graphics
US7382736B2 (en) 1999-01-12 2008-06-03 Mcdata Corporation Method for scoring queued frames for selective transmission through a switch
US8726330B2 (en) 1999-02-22 2014-05-13 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US6604224B1 (en) * 1999-03-31 2003-08-05 Diva Systems Corporation Method of performing content integrity analysis of a data stream
US6721794B2 (en) * 1999-04-01 2004-04-13 Diva Systems Corp. Method of data management for efficiently storing and retrieving data to respond to user access requests
US6209024B1 (en) * 1999-04-05 2001-03-27 Diva Systems Corporation Method and apparatus for accessing an array of data storage devices by selectively assigning users to groups of users
US6820144B2 (en) 1999-04-06 2004-11-16 Microsoft Corporation Data format for a streaming information appliance
US6748481B1 (en) * 1999-04-06 2004-06-08 Microsoft Corporation Streaming information appliance with circular buffer for receiving and selectively reading blocks of streaming information
US6463486B1 (en) 1999-04-06 2002-10-08 Microsoft Corporation System for handling streaming information using a plurality of reader modules by enumerating output pins and associated streams of information
US6535920B1 (en) 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
US6526580B2 (en) * 1999-04-16 2003-02-25 Digeo, Inc. Broadband data broadcasting service
US6505382B1 (en) 1999-05-14 2003-01-14 Apple Computer, Inc. Hinge apparatus with cam mechanism
US7263546B1 (en) * 1999-05-27 2007-08-28 Invensys Systems, Inc. Fieldbus upgradable apparatus and method
US6745368B1 (en) 1999-06-11 2004-06-01 Liberate Technologies Methods, apparatus, and systems for storing, retrieving and playing multimedia data
US6671722B1 (en) * 1999-07-08 2003-12-30 Intel Corporation Stack-less, CPU-less creation of valid SNMP-trap packets
FR2796482B1 (fr) 1999-07-16 2002-09-06 Touchtunes Music Corp Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles
US6859839B1 (en) * 1999-08-06 2005-02-22 Wisconsin Alumni Research Foundation Bandwidth reduction of on-demand streaming data using flexible merger hierarchies
CA2384674C (en) * 1999-09-07 2012-08-21 Liberate Technologies, L.L.C. Methods, apparatus, and systems for storing, retrieving and playing multimedia data
US6385673B1 (en) 1999-10-06 2002-05-07 Sun Microsystems, Inc. System and method for adjusting performance of a media storage by decreasing a maximum throughput by a primary derate parameter to specify available & guaranteed rate parameters and determining ring buffer sizes for streams
US6721789B1 (en) 1999-10-06 2004-04-13 Sun Microsystems, Inc. Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
US6438630B1 (en) 1999-10-06 2002-08-20 Sun Microsystems, Inc. Scheduling storage accesses for multiple continuous media streams
US6674994B1 (en) 1999-12-01 2004-01-06 Panamsat Corporation Pickup and delivery of data files
US6564064B1 (en) * 1999-12-01 2003-05-13 Trimble Navigation Limited Cellular telephone using pseudolites for determining location
US6721741B1 (en) 2000-01-24 2004-04-13 Friskit, Inc. Streaming media search system
US7228305B1 (en) 2000-01-24 2007-06-05 Friskit, Inc. Rating system for streaming media playback system
US6519648B1 (en) * 2000-01-24 2003-02-11 Friskit, Inc. Streaming media search and continuous playback of multiple media resources located on a network
US6389467B1 (en) * 2000-01-24 2002-05-14 Friskit, Inc. Streaming media search and continuous playback system of media resources located by multiple network addresses
US7281034B1 (en) 2000-01-24 2007-10-09 Friskit, Inc. System and method for media playback over a network using links that contain control signals and commands
FR2805377B1 (fr) 2000-02-23 2003-09-12 Touchtunes Music Corp Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede
FR2805072B1 (fr) * 2000-02-16 2002-04-05 Touchtunes Music Corp Procede d'ajustement du volume sonore d'un enregistrement sonore numerique
FR2805060B1 (fr) 2000-02-16 2005-04-08 Touchtunes Music Corp Procede de reception de fichiers lors d'un telechargement
US6496899B1 (en) * 2000-02-28 2002-12-17 Sun Microsystems, Inc. Disk scheduling system with bounded request reordering
CA2404095A1 (en) * 2000-03-22 2001-09-27 Yottayotta, Inc. Method and system for providing multimedia information on demand over wide area networks
ES2264978T3 (es) 2000-03-31 2007-02-01 United Video Properties, Inc. Sistemas y metodos para reducir cortes en la grabacion de programas.
US20020019843A1 (en) * 2000-04-26 2002-02-14 Killian Robert T. Multiprocessor object control
US7010537B2 (en) * 2000-04-27 2006-03-07 Friskit, Inc. Method and system for visual network searching
FR2808906B1 (fr) 2000-05-10 2005-02-11 Touchtunes Music Corp Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles
US20020059635A1 (en) * 2000-05-31 2002-05-16 Hoang Khoi N. Digital data-on-demand broadcast cable modem termination system
US20020175998A1 (en) * 2000-05-31 2002-11-28 Hoang Khoi Nhu Data-on-demand digital broadcast system utilizing prefetch data transmission
US20020026501A1 (en) * 2000-05-31 2002-02-28 Khoi Hoang Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices
US20020023267A1 (en) * 2000-05-31 2002-02-21 Hoang Khoi Nhu Universal digital broadcast system and methods
US20020066100A1 (en) * 2000-05-31 2002-05-30 Khoi Hoang Method for providing data services for a large number of small-sized data files
US20020059620A1 (en) * 2000-05-31 2002-05-16 Hoang Khoi Nhu Selective inactivation and copy-protection
US6557030B1 (en) * 2000-05-31 2003-04-29 Prediwave Corp. Systems and methods for providing video-on-demand services for broadcasting systems
BR0111651A (pt) * 2000-05-31 2003-05-20 Prediware Corp Sistemas e métodos para fornecer serviços de vìdeo sob demanda para sistemas de transmissão
US20020138845A1 (en) * 2000-05-31 2002-09-26 Khoi Hoang Methods and systems for transmitting delayed access client generic data-on demand services
US20020049980A1 (en) * 2000-05-31 2002-04-25 Hoang Khoi Nhu Controlling data-on-demand client access
FR2811175B1 (fr) * 2000-06-29 2002-12-27 Touchtunes Music Corp Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles
FR2811114B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement
US7068596B1 (en) * 2000-07-07 2006-06-27 Nevco Technology, Inc. Interactive data transmission system having staged servers
US6498937B1 (en) 2000-07-14 2002-12-24 Trw Inc. Asymmetric bandwidth wireless communication techniques
EP1175057B1 (fr) * 2000-07-19 2006-06-28 Bull S.A. Procédé de déport d'éxécution de certaines opérations d'un système central sur un système satellite et le système de communication correspondant
DE10044161B4 (de) * 2000-09-06 2006-12-07 T-Mobile Deutschland Gmbh Verfahren und System zur Kommunikation mit dem Internet
US7840691B1 (en) 2000-09-07 2010-11-23 Zamora Radio, Llc Personal broadcast server system for providing a customized broadcast
ES2191605T3 (es) * 2000-09-11 2003-09-16 Mediabricks Ab Metodo para proporcionar un contenido de medios sobre una red digital.
FR2814085B1 (fr) 2000-09-15 2005-02-11 Touchtunes Music Corp Procede de divertissement base sur les jeux concours a choix multiples
US7103906B1 (en) 2000-09-29 2006-09-05 International Business Machines Corporation User controlled multi-device media-on-demand system
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
WO2002032140A2 (en) 2000-10-11 2002-04-18 United Video Properties, Inc. Systems and methods for caching data in media-on-demand systems
EP2262262A1 (en) * 2000-10-11 2010-12-15 United Video Properties, Inc. System and methods for providing storage of data on servers in an on-demand media delivery system
US6735218B2 (en) * 2000-11-17 2004-05-11 Foundry Networks, Inc. Method and system for encoding wide striped cells
US7356030B2 (en) * 2000-11-17 2008-04-08 Foundry Networks, Inc. Network switch cross point
US6697368B2 (en) * 2000-11-17 2004-02-24 Foundry Networks, Inc. High-performance network switch
US20020091884A1 (en) * 2000-11-17 2002-07-11 Andrew Chang Method and system for translating data formats
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7002980B1 (en) 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
WO2002065314A1 (en) * 2001-01-12 2002-08-22 Eactive, Inc. Transaction multimedia platform
US6973666B1 (en) * 2001-02-28 2005-12-06 Unisys Corporation Method of moving video data thru a video-on-demand system which avoids paging by an operating system
US20030023975A1 (en) * 2001-03-02 2003-01-30 Microsoft Corporation Enhanced music services for television
US20020166123A1 (en) * 2001-03-02 2002-11-07 Microsoft Corporation Enhanced television services for digital video recording and playback
US20020122656A1 (en) * 2001-03-05 2002-09-05 Gates Matthijs A. Method and apparatus for recording broadcast data
US7260312B2 (en) 2001-03-05 2007-08-21 Microsoft Corporation Method and apparatus for storing content
US20030084461A1 (en) * 2001-10-25 2003-05-01 Khoi Hoang Method and apparatus for transmitting non-VOD services
WO2002088965A1 (en) * 2001-04-26 2002-11-07 The Boeing Company System and method for preloading a bus controller with command schedule
US7206283B2 (en) * 2001-05-15 2007-04-17 Foundry Networks, Inc. High-performance network switch
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US7139873B1 (en) * 2001-06-08 2006-11-21 Maxtor Corporation System and method for caching data streams on a storage media
US6658528B2 (en) 2001-07-30 2003-12-02 International Business Machines Corporation System and method for improving file system transfer through the use of an intelligent geometry engine
US20030051249A1 (en) * 2001-08-20 2003-03-13 Khoi Hoang System and method for data insertion (commercials) in client generic data-on-demand broadcast transmissions
US20030055915A1 (en) * 2001-09-14 2003-03-20 Ngo Kin Cuc Method and apparatus for transmitting data over a network
US7444393B2 (en) 2001-10-30 2008-10-28 Keicy K. Chung Read-only storage device having network interface, a system including the device, and a method of distributing files over a network
US7788396B2 (en) * 2001-11-28 2010-08-31 Interactive Content Engines, Llc Synchronized data transfer system
FI116167B (fi) * 2001-12-18 2005-09-30 Valtion Teknillinen Arkistoiva tiedostopalvelin
US6775518B2 (en) * 2002-01-25 2004-08-10 Svi Systems, Inc. Interactive education system
US20040072584A1 (en) * 2002-03-01 2004-04-15 Kern Ronald J. Wireless distribution of multimedia content
KR20020057837A (ko) * 2002-03-29 2002-07-12 문의선 스트리밍 서비스 방법 및 장치
BR0201115A (pt) * 2002-04-02 2005-02-22 Coppe Ufrj Memória cooperativa distribuìda colapsada para sistemas de mìdia-sob-demanda interativa e escalável
US20040006636A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Optimized digital media delivery engine
US20040006635A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Hybrid streaming platform
US7899924B2 (en) * 2002-04-19 2011-03-01 Oesterreicher Richard T Flexible streaming hardware
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
CN1217543C (zh) * 2002-06-28 2005-08-31 国际商业机器公司 对等视频点播系统中的设备和方法
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US9646339B2 (en) 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US12100258B2 (en) 2002-09-16 2024-09-24 Touchtunes Music Company, Llc Digital downloading jukebox with enhanced communication features
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8151304B2 (en) 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8489742B2 (en) * 2002-10-10 2013-07-16 Convergys Information Management Group, Inc. System and method for work management
US20040128444A1 (en) * 2002-12-24 2004-07-01 Sung-Hoon Baek Method for storing data in disk array based on block division and method for controlling input/output of disk array by using the same
US7493646B2 (en) 2003-01-30 2009-02-17 United Video Properties, Inc. Interactive television systems with digital video recording and adjustable reminders
US20060051059A1 (en) 2004-09-08 2006-03-09 Krakirian Haig H Video recorder having user extended and automatically extended time slots
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7739715B2 (en) * 2003-06-24 2010-06-15 Microsoft Corporation Variable play speed control for media streams
US20040267868A1 (en) * 2003-06-26 2004-12-30 International Business Machines Corporation Method for monitoring print jobs in a data processing network
US7639713B2 (en) * 2004-01-21 2009-12-29 Emc Corporation Database block network attached storage packet joining
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
KR100868820B1 (ko) * 2004-07-23 2008-11-14 비치 언리미티드 엘엘씨 데이터 스트림을 전달하는 방법 및 시스템과 데이터 저장 레벨을 제어하는 방법
US8086575B2 (en) 2004-09-23 2011-12-27 Rovi Solutions Corporation Methods and apparatus for integrating disparate media formats in a networked media system
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US7673309B2 (en) 2005-01-20 2010-03-02 Hie Electronics, Inc. Scalable integrated high density optical data/media storage delivery system
DE102005005480B3 (de) * 2005-02-04 2006-04-27 Schunk Ultraschalltechnik Gmbh Ultraschallschweißvorrichtung
US9973817B1 (en) 2005-04-08 2018-05-15 Rovi Guides, Inc. System and method for providing a list of video-on-demand programs
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
US20070079342A1 (en) * 2005-09-30 2007-04-05 Guideworks, Llc Systems and methods for managing local storage of on-demand content
US7653829B2 (en) 2005-12-08 2010-01-26 Electronics And Telecommunications Research Institute Method of data placement and control in block-divided distributed parity disk array
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US9681105B2 (en) 2005-12-29 2017-06-13 Rovi Guides, Inc. Interactive media guidance system having multiple devices
US8607287B2 (en) 2005-12-29 2013-12-10 United Video Properties, Inc. Interactive media guidance system having multiple devices
US9182228B2 (en) * 2006-02-13 2015-11-10 Sony Corporation Multi-lens array system and method
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US7773546B2 (en) * 2006-11-21 2010-08-10 Broadcom Corporation System and method for a software-based TCP/IP offload engine for digital media renderers
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US8155011B2 (en) 2007-01-11 2012-04-10 Foundry Networks, Llc Techniques for using dual memory structures for processing failure detection protocol packets
US9330529B2 (en) 2007-01-17 2016-05-03 Touchtunes Music Corporation Game terminal configured for interaction with jukebox device systems including same, and/or associated methods
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
KR100794969B1 (ko) * 2007-02-12 2008-01-15 인하대학교 산학협력단 클러스터링된 비디오 서버에서의 부하 공유를 위한 적응형데이터 검색 방법
US8170023B2 (en) * 2007-02-20 2012-05-01 Broadcom Corporation System and method for a software-based TCP/IP offload engine for implementing efficient digital media streaming over internet protocol networks
US7801888B2 (en) 2007-03-09 2010-09-21 Microsoft Corporation Media content search results ranked by popularity
US9953481B2 (en) 2007-03-26 2018-04-24 Touchtunes Music Corporation Jukebox with associated video server
US20080263171A1 (en) * 2007-04-19 2008-10-23 Alacritech, Inc. Peripheral device that DMAS the same data to different locations in a computer
JP4890613B2 (ja) * 2007-06-04 2012-03-07 富士通株式会社 パケットスイッチ装置
US7908624B2 (en) * 2007-06-18 2011-03-15 Broadcom Corporation System and method for just in time streaming of digital programs for network recording and relaying over internet protocol network
US7925773B2 (en) 2007-06-22 2011-04-12 Microsoft Corporation Virtual format for the storage of streaming data
US20090019492A1 (en) 2007-07-11 2009-01-15 United Video Properties, Inc. Systems and methods for mirroring and transcoding media content
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
JP4445535B2 (ja) * 2007-09-19 2010-04-07 富士通株式会社 データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US10290006B2 (en) 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8509236B2 (en) 2007-09-26 2013-08-13 Foundry Networks, Llc Techniques for selecting paths and/or trunk ports for forwarding traffic flows
US8190881B2 (en) 2007-10-15 2012-05-29 Foundry Networks Llc Scalable distributed web-based authentication
US8769185B2 (en) 2007-10-23 2014-07-01 Keicy Chung Computer storage device having separate read-only space and read-write space, removable media component, system management interface, and network interface
US8483223B2 (en) * 2008-02-01 2013-07-09 Qualcomm Incorporated Packet transmission via multiple links in a wireless communication system
US8510370B2 (en) * 2008-02-26 2013-08-13 Avid Technology, Inc. Array-based distributed storage system with parity
US8874469B2 (en) * 2008-02-28 2014-10-28 Microsoft Corporation Glitch free dynamic video ad insertion
EP2133783A1 (en) * 2008-06-09 2009-12-16 Deutsche Thomson OHG Data storage server, stored set of instructions, and method of controlling data access
US8849435B2 (en) 2008-07-09 2014-09-30 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US20100182970A1 (en) * 2009-01-21 2010-07-22 Qualcomm Incorporated Multiple Subscriptions Using a Single Air-Interface Resource
US12112093B2 (en) 2009-03-18 2024-10-08 Touchtunes Music Company, Llc Entertainment server and associated social networking services
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
KR101748448B1 (ko) 2009-03-18 2017-06-16 터치튠즈 뮤직 코포레이션 엔터테인먼트 서버 및 관련 소셜 네트워킹 서비스
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US8788782B2 (en) 2009-08-13 2014-07-22 Qualcomm Incorporated Apparatus and method for memory management and efficient data processing
KR101074010B1 (ko) 2009-09-04 2011-10-17 (주)이스트소프트 블록 단위 데이터 압축 및 복원 방법 및 그 장치
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
KR101016776B1 (ko) * 2009-09-21 2011-02-25 (주)이스트소프트 상위 호환성 보장형 압축 및 복원 방법 및 장치
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
US9014546B2 (en) 2009-09-23 2015-04-21 Rovi Guides, Inc. Systems and methods for automatically detecting users within detection regions of media devices
US8549223B1 (en) * 2009-10-29 2013-10-01 Symantec Corporation Systems and methods for reclaiming storage space on striped volumes
JP5508824B2 (ja) * 2009-12-03 2014-06-04 アズビル株式会社 フィールドバスシステム
WO2011094330A1 (en) 2010-01-26 2011-08-04 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US8527705B2 (en) * 2010-03-16 2013-09-03 Cleversafe, Inc. Temporarily caching an encoded data slice
GB2511003B (en) 2011-09-18 2015-03-04 Touchtunes Music Corp Digital jukebox device with karaoke and/or photo booth features, and associated methods
US8805418B2 (en) 2011-12-23 2014-08-12 United Video Properties, Inc. Methods and systems for performing actions based on location-based rules
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
US10194284B2 (en) * 2012-09-12 2019-01-29 Digit International Inc. Embedded communication in message based transports
JP2014235531A (ja) * 2013-05-31 2014-12-15 株式会社東芝 データ転送装置、データ転送システム、およびプログラム
US9674563B2 (en) 2013-11-04 2017-06-06 Rovi Guides, Inc. Systems and methods for recommending content
US9921717B2 (en) 2013-11-07 2018-03-20 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
JP6777545B2 (ja) 2014-03-25 2020-10-28 タッチチューンズ ミュージック コーポレイションTouchtunes Music Corporation 改善されたユーザインターフェースを備えたデジタルジュークボックス装置および関連する方法
US10831398B2 (en) 2016-09-19 2020-11-10 International Business Machines Corporation Storage device efficiency during data replication
KR102482035B1 (ko) * 2017-11-30 2022-12-28 에스케이하이닉스 주식회사 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
US11347520B2 (en) * 2020-02-13 2022-05-31 Dell Products L.P. Unavailable memory device initialization system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4577240A (en) * 1982-11-15 1986-03-18 Digital Engineering, Ltd. Multiple zone multiple disk video recording system
US5128810A (en) * 1988-08-02 1992-07-07 Cray Research, Inc. Single disk emulation interface for an array of synchronous spindle disk drives
US5218689A (en) * 1988-08-16 1993-06-08 Cray Research, Inc. Single disk emulation interface for an array of asynchronously operating disk drives
US5148432A (en) 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5206943A (en) * 1989-11-03 1993-04-27 Compaq Computer Corporation Disk array controller with parity capabilities
US5249279A (en) * 1989-11-03 1993-09-28 Compaq Computer Corporation Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands
US5166939A (en) * 1990-03-02 1992-11-24 Micro Technology, Inc. Data storage apparatus and method
US5301310A (en) * 1991-02-07 1994-04-05 Thinking Machines Corporation Parallel disk storage array system with independent drive operation mode
US5313585A (en) * 1991-12-17 1994-05-17 Jeffries Kenneth L Disk drive array with request fragmentation
US5408644A (en) * 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
WO1994009436A1 (en) * 1992-10-13 1994-04-28 Compaq Computer Corporation Disk array controller having advanced internal bus protocol
US5581784A (en) * 1992-11-17 1996-12-03 Starlight Networks Method for performing I/O's in a storage system to maintain the continuity of a plurality of video streams
US5508732A (en) * 1993-03-22 1996-04-16 International Business Machines Corporation Data server, control server and gateway architecture system and method for broadcasting digital video on demand
WO1994029796A1 (en) * 1993-06-03 1994-12-22 Network Appliance Corporation A method for allocating files in a file system integrated with a raid disk sub-system
US5414455A (en) * 1993-07-07 1995-05-09 Digital Equipment Corporation Segmented video on demand system
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions
US5510905A (en) * 1993-09-28 1996-04-23 Birk; Yitzhak Video storage server using track-pairing
US5448568A (en) * 1994-04-28 1995-09-05 Thomson Consumer Electronics, Inc. System of transmitting an interactive TV signal

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146424B2 (en) * 1999-03-10 2006-12-05 Microsoft Corporation File server system and method for scheduling data streams according to a distributed scheduling policy
JP2005094140A (ja) * 2003-09-12 2005-04-07 Sanyo Electric Co Ltd 映像表示装置
KR100938470B1 (ko) * 2007-12-17 2010-01-25 한국전자통신연구원 스트리밍 데이터 공유를 위한 fc 기반의 네트워크스토리지 스트리밍 가속 장치 및 방법

Also Published As

Publication number Publication date
KR960025209A (ko) 1996-07-20
EP0716370A2 (en) 1996-06-12
EP0716370A3 (en) 2005-02-16
US5915094A (en) 1999-06-22
JP3369821B2 (ja) 2003-01-20
KR100231220B1 (ko) 1999-11-15

Similar Documents

Publication Publication Date Title
JP3369821B2 (ja) 複数のクライアントにデータを配布するシステム
JP3730686B2 (ja) データを伝送する方法、データ通信システム、データ通信ネットワーク
US6223211B1 (en) Apparatus and computer-implemented process for providing real-time multimedia data transport in a distributed computing system
US20020157113A1 (en) System and method for retrieving and storing multimedia data
US6529994B1 (en) Method of striping data onto a storage array
KR100192723B1 (ko) 매체 스트리머
JP3617089B2 (ja) 映像蓄積配送装置及び映像蓄積配送システム
JP3096600B2 (ja) データを供給する装置及びビデオ・オン・デマンドを提供する装置
US5928327A (en) System and process for delivering digital data on demand
JP3251815B2 (ja) 対等サブシステム間のデータストリーミング機能を効率的に処理するコンピュータシステム
JP4426589B2 (ja) 同期データ転送システム
US20030154246A1 (en) Server for storing files
Jadav et al. Designing and implementing high-performance media-on-demand servers
US6070201A (en) Alternate selection of virtual data buffer pathways
Kumar Video-server designs for supporting very large numbers of concurrent users
Kumar et al. A High Performance Multimedia Server For Broadband Network Enviromment
Korst et al. Disk scheduling for variable-rate data streams
JP4675290B2 (ja) マルチメディア蓄積配信サーバ、および、マルチメディアデータ多重読出し書込み方法
JPH0696169A (ja) 拡張された像蓄積および分散構造体
KR20100020679A (ko) 스토리지 접근 스케줄링 기술을 이용한 고성능 주문형비디오 장치

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071115

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091115

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091115

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101115

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101115

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111115

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111115

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121115

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121115

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131115

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees