JP4195725B2 - マルチユーザデータ記憶、検索及び配布システム - Google Patents
マルチユーザデータ記憶、検索及び配布システム Download PDFInfo
- Publication number
- JP4195725B2 JP4195725B2 JP50509296A JP50509296A JP4195725B2 JP 4195725 B2 JP4195725 B2 JP 4195725B2 JP 50509296 A JP50509296 A JP 50509296A JP 50509296 A JP50509296 A JP 50509296A JP 4195725 B2 JP4195725 B2 JP 4195725B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- user
- information storage
- users
- storage devices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000013500 data storage Methods 0.000 title abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 73
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000012937 correction Methods 0.000 claims abstract description 7
- 230000015654 memory Effects 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 7
- 238000012913 prioritisation Methods 0.000 claims 4
- 238000001514 detection method Methods 0.000 abstract description 4
- 230000000694 effects Effects 0.000 abstract description 3
- 238000002059 diagnostic imaging Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 18
- 239000000872 buffer Substances 0.000 description 14
- 239000004065 semiconductor Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000008570 general process Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/226—Characteristics of the server or Internal components of the server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/2312—Data placement on disk arrays
- H04N21/2318—Data placement on disk arrays using striping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
- H04N21/2396—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/40—Combinations of multiple record carriers
- G11B2220/41—Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
- G11B2220/412—Distributed storage methods, i.e. the system may autonomously determine for a storage device that provides enough storage capacity for recording
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Processing Or Creating Images (AREA)
Description
従来の電子データ記憶及び検索システムでは、中央演算処理装置(CPU)により制御された複数の記憶素子からなるバンク又はアレイにデータが記憶されるのが普通である。このようなデータ記憶システムは、最近のコンピュータシステムの基礎を形成している。通常、これらの記憶素子は、ダイナミック・ランダム・アクセス・メモリ(DRAM)やスタティック・ランダム・アクセス・メモリ(SRAM)等の半導体メモリと“ウインチェスター”ハードディスクドライブ等の回転ディスク磁気メモリ(ディスクドライブメモリ)との組合せである。半導体メモリは、CPUによる直接のアクセスを必要とするデータを記憶するために使用され、一方、ディスクドライブメモリは、通常、CPUによるアクセスの頻度が比較的少ないデータを記憶するために使用される。
通常、半導体メモリを使用して所定量のデータを記憶するのにかかる費用は、ディスクドライブメモリを使用して同じ量のデータを記憶する場合に比べて、一桁から二桁も大きい。しかし、半導体メモリが与えるデータ待ち時間、即ちCPUによってメモリからデータが要求された時点からこの要求データをCPUが実際に利用可能となる時点までの遅延時間は、ディスクドライブメモリについてのデータ待ち時間よりも三桁から四桁小さい。このため、データ待ち時間が重要となる用途では、半導体メモリに費用をかける方が価値がある。
更に、ディスクドライブメモリは、通常、データが“ブロック−シリアル”形式でアクセスされることを要求する。このため、ドライブに記憶された任意のデータビットへのランダムアクセスは、通常、不可能である。また、機械装置であることから、ディスクドライブメモリは機械的な欠陥によって被害を被り、このため、半導体メモリよりも信頼性が低い。
複数の利用者がシステム内に記憶されたデータに同時にアクセスする計算機システムやデータ検索システムでは、各利用者のデータ要求を順次処理するために様々な手段が用いられている。上記のシステムは、一般に、これらの利用者の各々が独立してデータにアクセスした場合をシミュレートする。通常、このようなシミュレーションは、プリエンプティブな、或いはラウンド・ロビン・マルチタスキング(round robin multitasking)のアルゴリズムによって実現される。システムCPUは、計算機システムやデータ検索システムのオペレーティング・システムに通常組み込まれているこれらのアルゴリズムを実行する。このため、このCPUは、このシステムのデータ記憶メモリの制御を各利用者に“ラウンドロビン(round-robin)”法で順次転送する。
ディスク記憶システムの見かけ上のスループットを高めるため、多くの計算機システムは、単一のディスクとして動作するように相互接続された複数のディスクドライブを用いている。1ブロックのデータが、N個のディスクに分配され、各ディスクがこのブロックの1/Nを同様のロケーションに記憶するようになっている。これらのディスクは、並列にアドレスされており、最初の待ち時間(latency)の後、各ディスクからのデータが同時に読み出され、ブロックを読み出すのに要する時間が削減されるようになっている。このスループットの増加によって、この記憶システムは、マルチタスキング・アルゴリズムが使用されているときに、更に多数の利用者にサービスを提供できるようになる。しかしながら、マルチユーザ処理は、実効の待ち時間を増加させる。M人の利用者にサービスを提供する場合、異なるデータストリームからのデータに対する一人の利用者の要求は、M−1人の利用者の処理が終わるまで待機させなければならない。平均すると、待ち時間は(M/2)倍に増加することになる。
所定の実効待ち時間での利用者の数を増やすために、記憶システムが、並列処理アーキテクチャで配置された複数のCPUを使用する場合がある。このようなデータ記憶システムでは、単一の命令が各プロセッサによって使用されて、各プロセッサごとに異なるデータストリームが処理されるので、通常、マルチデータ・コンピュータ・アーキテクチャ(multiple data computer architecture)が使用される。マルチデータ・アーキテクチャでは、各CPUが、ディスクドライブメモリに取り付けられる。このため、各CPUは、ホストコンピュータから命令を受けると、それぞれに付随するディスクドライブメモリにアクセスする。結果として、これらのプロセッサは、全てのディスクドライブに並列して同時にアクセスすることができ、スループットの向上が達成される。このため、各利用者は、所定のCPUを介してディスクドライブから1ブロックのデータを受け取る。
システムから利用者へデータが確実に連続して転送されるように、比較的大きな容量の半導体メモリを利用して、複数のCPUからの並列出力データストリームをバッファしている。このようなデータバッファリングは、データが、鑑賞のため利用者へ転送する間に割込みがなされることのないビデオデータやオーディオデータであるときに特に必要である。このようなシステムでは、ビデオデータ及びオーディオデータは、ディスクドライブからバッファメモリへ別個の複数のデータブロックとして転送される。これらのブロックは、バッファメモリが読み出されるにつれてこれらのブロックが各利用者に対する連続データストリームを形成するように、バッファメモリ中に順次に配置される。
しかし、このような情報記憶システムでは、バッファメモリが極めて大きくならざるを得ず、このため、大変な費用がかかってしまう。例えば、M人の利用者を有するラウンドロビンタイプのアクセスシステムでは、他のM−1人の利用者が並列処理コンピュータによってサービスを受ける間、バッファメモリは、与えられた利用者データを一時的に記憶しなければならない。1000人の利用者について10〜100kbyteのデータブロックが100〜1000個のディスクドライブから読み出される通常のビデオ記憶システムでは、バッファメモリは、1〜100Gbyteでなければならない。このような大容量の半導体メモリアレイは、極めて費用がかかる。
ディスクドライブを記憶媒体として用いることに関連した別の短所は、ディスクドライブが、連続的な割込みのない読出し又は書込み処理を行うことができないという事実である。ドライブが内部ハウスキーピング処理又は内部保守処理を実行しているときは、通常、データへのアクセスを要求する外部コマンドは無視されるか、或いは遅延される。最も長い遅延は、ドライブのヘッド位置のリキャリブレーション(recalibration)によって引き起こされる。このようなリキャリブレーションは、ドライブ内のディスクの熱膨張差に起因して生じるミストラッキングエラーを訂正するため定期的に行われる。一般に、安価なディスクドライブは、リキャリブレーション処理を完了するのに0.1〜1.0秒を要する。再リキャリブレーション処理は、通常、動作の10〜100分ごとに実行される。
出力データストリームの割込みを防ぐため、データ配布システム(data distribution system(DDS))は、各ディスクドライブのリキャリブレーション・サイクルの間、追加のバッファメモリを供給し、出力として用いられるデータを記憶する。各利用者について1〜10Mbits/secでデータが利用者に転送される通常のシステムでは、バッファメモリは、0.1〜10Mbitsの容量を有していなければならない。1000人の利用者を有するシステムでは、10Gbits、即ち1.25Gbytesの半導体メモリが必要である。
従って、マルチユーザDDSに関する技術では、バッファメモリの必要容量を大幅に低減し、かつ、データアクセス待ち時間を各利用者が気にならない程度に抑える必要がある。
本発明は、進歩的なマルチユーザDDSを利用する。このマルチユーザDDSは、磁気ディスクドライブ、光学ディスクドライブ、ランダム・アクセス・メモリ等の情報記憶装置にそれぞれが接続された複数の並列プロセッサを有する並列処理コンピュータであるディジタル情報サーバを含んでいる。このシステムは、複数のディスクドライブに情報を記憶するという、これまで知られていなかったデータストライピング法を用いる。このデータストライピング法は、複数のディスクドライブを、ディスクドライブの複数のサブセットに等分割する。例えば、サーバが500個のディスクドライブを含み、サブセットが5個のドライブである場合、ドライブのサブセットが100個あることになる。第1のサブセットが選択され、データの連続ブロックが繰り返しストライプされてディスクドライブの当該サブセットに記憶される。この後、第1のサブセットに隣接する第2のサブセットが選択され、データの別の連続ブロックが繰り返しストライプされてその上に記憶される。このプロセスが各サブセットについて繰り返される。全てのサブセットを使用してデータを記憶すると、この方法は、第1サブセットに戻り、データの次の連続ブロックをその上に記憶する。この方法を用いることで、複数の利用者による後続のアクセスに対して、多数のデータソースをディスクドライブに記憶することができる。全てのプロセッサを有効に利用するため、入力データは、複数の連続データブロックの各々をディスクドライブのサブセットに同時に記憶できるような特定の順序で事前に配列されている。
本発明の他の特徴は、上述の手法で記憶されたデータを利用して従来技術のDDSに関する待ち時間を改善し、データバッファの必要サイズを低減するデータ検索方法である。この方法は、利用者が割り当てられる複数のスロットを含んだサービス期間を定めている。所定のスロット内では、割当て利用者がディスクドライブのサブセットの一つにアクセスすることで、利用者にデータが供給される。本発明のデータアクセス方法を用いることで、利用者はサービス期間内のスロットに動的割当てされ、各利用者がサービスを受ける特定の時間及び利用者にサービスを提供するサブセットがサービス期間ごとに変化するようになっている。しかし、全利用者はそれぞれ、各サービス期間中、常にサービスを受ける。サービス期間内の利用者の割当ては、利用者の現在の操作モード及び次の操作モード(このモードは、次のサービス期間中に使用される)によって定められる。更に、この方法によれば、ディスクドライブから検索されたデータに関するエラーの検出及び訂正が行われる。更にまた、この方法によれば、各サービス期間中に新たなデータをディスクドライブに加えることが可能になり、また、システムの処理に影響を与えることなく選択番号のディスクドライブをリキャリブレートすることが可能になる。
利用者の動的割当てに起因して、データは、各サービス期間中に利用者に割り当てられる順序でサーバによって正常に生成される。このため、データ出力の順序は、サービス期間ごとに変動することになる。この結果、このDDSに接続される任意のデータ送達システム(data delivery system)は、このDDSが生成したデータの現在の順序を判別し、このデータを正しい利用者へ適切にルーティングしなければならない。データ送達システムからこの負担を取り除くため、このDDSは、利用者がサービス期間内にどのように割り当て直されようとも、サーバからのデータの順序を各サービス期間ごとに繰り返される順序に設定し直す出力タイミングシーケンサを備えている。
図面において、
図1は、マルチユーザデータ配布及び送達システムの高レベルブロック図を表している。
図2は、マルチユーザDDSの高レベルブロック図を示している。
図3は、図2に示されるDDSの一部分の詳細なブロック図を表している。
図4は、図2のDDSのディスクドライブアレイにデータを記憶する好適な手順を示すデータアクセスマップである。
図5は、図4に示される記憶域マップを用いてディスクドライブアレイに記憶されたデータを検索する好適な手順を示すデータアクセスマップである。
図6は、図2に示されるDDSにより実行されるデータ検索ルーチン(DATA RETRIEVAL routine)のフローチャートを表している。
図7は、図2に示されるDDSにより実行される利用者サービスルーチン(USER SERVICE routine)のフローチャートを表している。
図8は、図2に示されるDDSにより実行される利用者再割当てルーチン(USER REALLOCATION routine)のフローチャートを表している。
図9は、図2に示されるDDSにより実行される優先順位1再割当てルーチン(PRIORITY 1 REALLOCATION routine)のフローチャートを表している。
図10は、図2に示されるDDSにより実行される優先順位2、3及び4再割当てルーチン(PRIORITY 2, 3 AND 4 REALLOCATION routine)のフローチャートを表している。
図11は、出力タイミングシーケンサのブロック図を表している。
理解の容易のため、図に共通する同一の要素を表すのに、可能な限り同一の参照番号を使用した。
図1は、マルチユーザデータ配布及び送達システム100の高レベルブロック図を表している。このシステム全体には、別個のシステム要素が2個含まれている。データ記憶、検索及び配布システム106を有する配布センター102と、“ハブ・アンド・スポーク(hub and spoke)”ネットワーク構成を有するデータ送達システム104である。一般に、送達システム104は複数の利用者108を含んでおり、これらの利用者108は、一般的なデータ分配ハブを形成するネットワーク・インターフェイス・ユニット110に連結されている。送達システム・インターフェイス・ユニット(図示せず)を使用して、この配布システムからのデータをこの送達システムと互換性のある形式でフォーマットすることもできる。DDS(或いは、送達システム・インターフェイス・ユニット)からネットワーク・インターフェイス・ユニットへのデータリンクは、通常、標準T1リンク等の高速のデータ多重化リンク(data multiplexed link)である。これらのリンクからのデータをハブが分離化(demultiplex)すると、DDS106から事前に要求されていたシリアルデータストリームが利用者に送られる。更に、利用者108は、コマンドリンクを介して、データの流れや各々が受け取るデータのタイプを制御する。配布センター内のDDSは、複数の利用者から受け取ったコマンド(指令)を処理する。このDDSは、コマンドを解釈し、実行する。データ送達システムは、地域電話システムや市内ケーブル会社や他のサービスプロバイダ組織が構築し、操作することができる。この他に、このデータ送達システムは、イーサネット型のローカル・エリア・ネットワークやケーブルテレビジョン分配フィーダにおけるようなバス構成を形成することもできる。利用者が配布センターに近い場合は、データ送達システムを設置する代わりに、データ記憶、検索及び配布システムへの直接接続を行うこともできる。このデータ送達システムは本発明の一部をなすわけではないので、本発明の使用法を読者に説明することだけを目的として一般的に説明するに止めておく。
本発明のDDS106は、互換性のあるデータ形式でデータを送達システム104に送り、適切な利用者へのデータの配布を容易にすることだけをここでは述べておく。本発明のDDS106の使用の一例は、有料テレビ放送システム(video-on-demand(VOD)system)内での使用である。本発明のDDSは、最も広義には、任意のタイプのディジタルデータ、例えば、オーディオ情報、ビデオ情報、テキスト情報、グラフィクスといったものを分配することができるが、本発明の説明を簡単にするため、以下の説明では、多数の利用者を有するVODシステム内での本発明の使用に焦点を絞る。
VODシステムでは、利用者がインターフェイス・ユニットを有している。このインターフェイス・ユニットは、各利用者が映画や他のマルチメディアプログラムのようなビデオプログラムを選択できるようにし、ビデオテーププレーヤーのようなコントロール機能を用いてこれらのプログラムの再生を制御する。具体的に述べると、利用者は、いつでもプログラムを再生(play)、一時停止(pause)、停止(stop)、早送り(fast-forward)、高速早送り(fast-fast-forward)、巻戻し(reverse)、及び高速巻戻し(fast-reverse)することができる。DDSは、各利用者のコマンドを高速で処理し、実行する。重要なことであるが、このシステムの全ての利用者は、任意の数のプログラムについて同じ制御特徴を同時に利用することができる。このため、各利用者は、自身の受像器上装置(set top unit)を、ビデオプログラムの巨大なデータベースにアクセスすることが可能なビデオテーププレーヤーとして見ることになる。
DDS106には、ある装置と、利用者のコマンドを目立たない程度の遅延で実行する付随的な方法と、が含まれている。通常、ひとたびコマンドが実行されると、要求されたデータは、配布センターによって複数の利用者ネットワークの一つに多重化された形式で転送される。データ送達システム内のネットワーク・インターフェイス・ユニットは、このデータストリームを分離化し、データを適切な利用者へ送る。このデータは、ディジタル形式で送ることもできるし、一部のケースでは、利用者による使用のためにアナログ信号に変換することもできる。このスポーク・アンド・ハブ・データ送達システムは、ネットワーク構成の1タイプを例示したものに過ぎない。利用可能な多数のデータ送達システムの中のどのシステムでも、データ多重化されたデータをDDSから利用者へ転送する機能を果たすことは、当業者であれば理解できるであろう。
図2では、図1に示されるマルチユーザDDS106のブロック図が、大容量記憶装置202、ホストコンピュータ204、コマンド・インターフェイス206、ディジタル情報サーバ208、及びデータ多重化回路210を含んでいる。一般に、ライン212を介して、多重化されたシリアル情報が複数の利用者(図示せず)に送られる。各ラインは、利用者ネットワークを介して複数の利用者に接続された多重化チャネルを表している。
利用者は、コマンドリンクを介してDDS106の操作を制御する。このコマンドリンクは、ライン212内に組み込まれていると想定されている。コマンドリンクの具体的な実装(implementation)は、通常、データ送達システムによって定められる。コマンドリンクからの各コマンドは、インターフェイス206によって解釈される。インターフェイス206は、データ送達システムからの命令を、ホストコンピュータが理解することのできるコマンド形式にフォーマットし直す。コマンドリンクを用いることで、利用者は、ビデオプログラム、例えばマルチメディアプログラム、を選択し、その後、そのビデオプログラムを再生、停止、一時停止、巻戻し及び早送りすることができるようになる。言い換えると、このVODシステムは、一般的なビデオカセットプレーヤーについて利用可能な機能と同様の機能を各利用者に提供する。
操作中、利用者が情報、例えば選択したマルチメディアプログラム、を要求したときは、ホストコンピュータは、記憶装置202(例えば、ビデオテープライブラリ)からその情報を検索し、検索した情報をサーバ208へ配布する。このサーバは、その情報を記憶するローカルメモリ(ディスクドライブアレイ)を備えている。利用者が要求した情報がサーバ内に現在記憶されている場合は、大容量記憶装置202にアクセスする必要はない。
更に詳しく述べると、サーバ208は、複数データストリーム(SIMD)方式を有する並列処理コンピュータである。具体的には、サーバ208は、複数のコントローラ216nを備えており、各コントローラには、複数のプロセッサ・サブシステム218n、220n、及び222nが付随している。各プロセッサ・サブシステムは、対応する大容量記憶装置、例えばウインチェスター型のディスクドライブ224n、226n及び228nに接続されている。但し、磁気ディスクドライブの代わりに他の形態の大容量記憶装置、例えば、光学ディスクドライブやランダム・アクセス・メモリも使用することができる。
記憶装置202は、複数の磁気又は光学ディスクドライブ、又は半導体メモリ、或いはこれらの組合せから構成されていても良い。しかしながら、通常、この装置は、1個以上の磁気ディスクドライブである。装置202からのデータは、データフォーマッティング回路203及び入出力(I/O)回路214を介して、サーバ208内のディスクドライブに配布される。回路203は、二つの機能を実行する。第1の機能は、装置202から入ってくるデータをバッファして、この入りデータの種々のセグメントを順序付けし直し、ディスクドライブに同時に記憶することができるようにしている。この第1の機能は、図4を参照しながら詳細に説明する。回路203が果たす第2の機能は、ディジタル化された入力データ、例えば“オフ・エア(off the air)”や生放送、をフォーマットし直してからバッファして、これらの放送をサーバ208内に記憶できるようにすることである。このため、一度記憶されれば、このデータは、将来、いつでも利用者が見ることができるようになる。
I/O回路は、プロセッサ・サブシステムからの並列出力データをまとめて、64ビット幅のシリアルビットストリーム(以下で詳細に説明する)にする。本開示内容では、このシステムは例示として64ビット幅シリアルビットストリームを処理するが、他の任意の幅のビットストリーム、例えば128ビット幅シリアルビットストリーム、も本発明の範囲に含まれる。また、このI/O回路は、プロセッサへの利用者の動的割当てやデータエラー検出・訂正を容易にするプロセッサ間連絡回路を含んでいる。このI/O回路の詳細は、図3及び図11を参照しながら後述する。
最後に、I/O回路214からの64ビット幅シリアル出力データストリームは、回路210に転送される。回路210は、この後、このシリアルデータを多重化法で再フォーマットし、多数の利用者、例えば3000人の利用者を多重化回路(multiplexing circuit)の種々のポート212に接続できるようにしている。言い換えると、多重化回路は、シリアル出力データストリームを再構成して、複数の多重チャネル(各チャネルは1個のポートによって表される)にする。所定のチャネルに対応付けられた各利用者には、特定のスロットが割り当てられ、その利用者のデータは、データ送達システムを通じてこのスロット内で転送される。
例を挙げると、本発明のDDSを実際に実装する際には、128個のプロセッサ・サブシステム、例えばプロセッサ・サブシステム1181〜118128が存在することになり、これらは各コントローラ、例えばコントローラ1161に接続されている。物理的には、コントローラ及びその128個のプロセッサ・サブシステムは、単一の回路カード上に載っている。各カードは、32個のプロセッサ・サブシステム集積回路を含んでおり、これらのプロセッサ・サブシステム集積回路は、それぞれ4個のプロセッサを含んでいる。サーバは、総計4個の回路カードを含んでおり、従って、総計512個のプロセッサがサーバ内に含まれている。4個のプロセッサの各々は、種々のプロセッサ補助回路、例えばメモリ、命令ロジック、I/O回路などを伴っており、各集積回路上に4個のプロセッサ・サブシステムを作り出している。この回路カードは、コンピュータ204を介して相互に接続されている。コンピュータ204は、一般に、プロセッサ・サブシステム及び利用者間のインターフェイスとして働く。更に述べると、ホストコンピュータは、サーバ208内の種々のコントローラ及びプロセッサ・サブシステムの操作を監視及び制御するメインコントローラとして機能する。使用されるプロセッサの数が用途によって異なること、及び並列処理コンピュータ内のプロセッサの数をそのコンピュータについての特定用途を満たすように容易に増減できることは、当業者であれば理解できるであろう。従って、ここで開示する発明は、任意の方法で配置された任意の数のプロセッサを有するサーバ内で使用できることが分かる。
更に具体的に述べると、図3は、図2に示されるサーバ208の一部分の詳細なブロック図である。図3は、プロセッサ・サブシステム2182及びI/O回路214の一部分、並びにディスクドライブ2242及びコントローラ2161の詳細を表している。上述のように、各プロセッサ・サブシステムは、プロセッサ300、並びにローカルメモリ302及び種々の周知のプロセッサ補助回路304を含んでいる。また、各プロセッサ・サブシステムには、I/O回路214が付随している。命令バス308で搬送された命令に従って、プロセッサは、内部レジスタ306又は他のランダムアクセス半導体メモリ302に記憶されたデータに対する演算論理処理を実行する。
更に具体的に述べると、プロセッサ300には、入力バス310を介して入力データが供給される。このデータは、プロセッサによって使用されるまで、入力レジスタ312に一時的に記憶される。この入力レジスタは、一般的なシフトレジスタとして動作し、これにより、各クロック周期においてシステムが1個のプロセッサ・サブシステムから次のプロセッサ・サブシステムに1ワードのデータ(16ビット)を順次転送するようになっている。各プロセッサ・サブシステムについて適切な入力データがひとたび入力レジスタにクロック同期して送られると、このデータは、全プロセッサの内部レジスタ306に同時にロードされる。このプロセッサ・ローディング機能は、コントローラ2161からバス308に沿って送られる特定のプロセッサ命令によって発揮される。
I/O回路は、1個以上の出力レジスタ314、入力レジスタ312、プロセッサ間連絡(IPC)バス318の一部、、及びディスクドライブ・インターフェイス301も含んでいる。レジスタ314は、プロセッサの出力ポートに接続された16ビット幅レジスタであり、例えば、各レジスタは、16ビットのパラレルデータを受け取り、16ビットのパラレルデータを出力する。この出力レジスタは、図11を参照しながら完全に説明される出力タイミング・シーケンサ(OTS)の一部を形成している。このOTSは、各プロセッサの16ビット出力データを他の4個のプロセッサの出力データと合成して64ビット幅のデータ要素を生成する、とだけここでは述べておく。OTSを使用する理由は、このシステムの残りの部分が説明されるにつれて明らかになる。
各プロセッサは、プロセッサ間連絡(IPC)バス318を介して近接のプロセッサと連絡を取ることができる。このIPCバス318は、データ及び他の情報を一方のプロセッサから他方のプロセッサに転送できるようにする回路装置である。このIPCは双方向であり、情報がこのバスに沿って双方の方向に通過できるようになっている。IPCバスを特定することは本発明にとって重要ではなく、プロセッサが情報を共有することを可能にするバスであれば、いかなるバスであっても適切である。このようなIPCバスの一つは、“Advanced Massively-Parallel Computer Apparatus”という名称の米国特許出願(出願番号08/091,935、出願日1993年7月12日)に開示されている。これは、出願番号07/926,735、出願日1992年8月5日の出願の一部継続出願である。
ディスクドライブ・インターフェイス301は、ディスクドライブ・サブシステム2242をI/O回路214に接続する。このため、ディスクドライブ・インターフェイス301は、ディスクからプロセッサへ、或いはプロセッサからディスクへ向かう情報のシリアル−パラレル変換を行う。
各プロセッサ・サブシステム2182は、ディスクコントローラ320及びディスクドライブ装置322を含むディスクドライブ・サブシステム2242に(I/Oチップ及びディスクドライブ・インターフェイスを介して)間接的に接続されている。ディスクコントローラ320は、プロセッサ300からの指令を実行して、ディスクドライブ装置322からデータをプロセッサに転送する。プロセッサ及びディスクドライブは物理的に相互に隔てることができるので、ディスクコントローラの各々とこれらに対応したプロセッサとの間の電気接続は、通常、ビットシリアルの双方向データバスによって実現される。
各プロセッサは、コントローラ2161内の命令シーケンサ324から同一の命令を受け取る。この命令シーケンサは、プロセッサの各々によって実行されるべきプログラムを形成する一連の命令を記憶する。この一連の命令は、ホストコンピュータによってシーケンサにプリロードされている。プログラムがロードされ、実行される特定のプロセスは、この技術では周知であり、これ以上の説明を要しない。
処理中は、情報が大容量記憶装置からシリアル・ワード・ストリームとして検索されると、ホストコンピュータは、コントローラに命令を出し、この技術では“データ・ストライピング”として一般に知られる方法でその情報をディスクドライブ・サブシステムに記憶する。具体的には、この情報は、複数のディスクドライブに、一度に16ビットワードずつ、ストライプパターン(縞模様)をなすように記憶される。例えば、図4の記憶域マップ402に示されるように、ワードストリーム400は、アクセス待ち時間が少なくなるように、505個のディスクドライブにわたってデータストライプされる。以下で行う好適なデータストライピング技術の説明に関しては、128個の並列プロセッサが4セット(総計512個のうちの505個は、ビデオデータの記憶のために使用される)あり、これらは512個のディスクドライブに付随しているものと仮定されている。これらのディスクドライブは、1から512まで連続して番号が付けられている。データを記憶するため、この505個のディスクドライブは、ディスクドライブのサブセット、例えば1サブセットあたり5個のディスクドライブに等分割される。ビデオプログラムの一部は、各サブセット内に、ストライプパターンをなすように記憶される。このため、ディスクドライブ1は、入力データ400の最初のワード(ワード1)を記憶し、ドライブ2はワード2を記憶し、ドライブ3はワード3を記憶し、ドライブ4はワード4を記憶し、ドライブ5はワード5を記憶する。この後、ワード6はドライブ1に記憶され、ワード7はドライブ2に記憶されるというようになり、ドライブ5がこの情報のワード80,000を記憶するまでこれが繰り返される。即ち、ドライブ1からドライブ5までのデータストライピングが16,000回繰り返される。この後、ドライブ6が次のワード(ワード80,001)を記憶するというようになり、全情報がこれらのディスクドライブに記憶されるまでこれが繰り返される。ディスクドライブ501〜505が対応する80,000ワードのデータを記憶すると、システムは、ディスクドライブ1〜5に戻って(ライン402で示されるように転回して)、次の80,000ワードを記憶する。このプロセスは、ドライブの各サブセットにデータをストライピングし、これを全サブセットにわたって行いながら、全ビデオプログラムが記憶されるまで繰り返される。
前述のデータストライピングの説明は、簡単のため、一度につきディスクドライブの1個のサブセットにデータが記憶されたものと仮定した。しかしながら、並列処理コンピュータを効果的に利用するためには、入力データは、全プロセッサ及び全ディスクドライブ、例えば505個のプロセッサ及びディスクドライブ、を用いて同時に記憶される。この同時記憶を容易にするため、データフォーマッティング回路(図2の203)は、大容量記憶装置からの入力データをバッファし、16ビットデータワードのシリアルストリームを入力レジスタへ向けて適切な順序で出力する。この特定の順序により、全ての入力レジスタに全てのワードを同時に記憶することが容易になる。例えば、データの順序は、ワード1〜5、ワード80001〜80005、ワード160001〜160005、…が、全てのディスクドライブ・サブセットに同時に記憶されるように設定し直される。言い換えると、このデータの順序は、図4に示されるデータマップの全ての行のデータワードが同時に記憶されるように再設定される。
同様に、別のビデオプログラムは、この第2のプログラムをディスクドライブ6〜10に記憶し始めることにより、このデータストライピング法を用いて記憶することができる。その後、各プログラムの冒頭は、ディスクドライブの1個のサブセットによって以前に記憶されたプログラムの冒頭からオフセット(offset)される。このため、複数のビデオプログラムをこれらのディスクドライブに記憶することができる。ここまでディスクドライブのデータストライピングについて一つの好適な方法を説明してきたが、他のデータストライピング法を本発明に使用できることは当業者であれば理解できるであろう。従って、データストライピングの好適な上記方法は、本発明を限定するものとして解釈すべきでなく、データストライピングの例示的方法であると考えるべきである。
また、以下の説明では、エラー訂正を容易にするため、入力データストリームがパリティワードを含んでいるものと仮定する。例を挙げると、このパリティワードは、4個の先行するデータワードから導出される。例えば、パリティワードは、4個の先行するデータワード内におけるビットのビット単位排他的論理和(bit-by-bit exclusive-OR)である。従って、各5番目のワードはパリティワードであり、このため、各5番目のディスクドライブは、先行する4個のデータワードについてのパリティワードを含んでいる。この他に、パリティワードが入力データに含まれていない場合は、ディジタル情報サーバにデータが記憶されるに伴ってパリティワードを生成し、データストリームに挿入することができる。
要求された情報(ビデオプログラム)がディスクドライブ上に存在していれば、利用者は、その情報をディスクから利用者のネットワークに送るように要求することができる。例えば、コマンド装置(図示せず)を操作することにより、利用者からコマンド・インターフェイスにコマンドが送られる。このコマンド装置を用いることにより、利用者は、情報を選択し、情報の再生を行ったり、情報の再生を巻戻し、高速巻戻し、早送り、高速早送り、一時停止又は停止することができる。例えば、情報が選択マルチメディア・ストリームである場合、利用者は、テレビ画面上のメニューから特定のマルチメディア・ストリームを選択することができる。マルチメディア・ストリームを選択してしまえば、利用者は、そのマルチメディア・ストリームの再生を、一般的なビデオカセットプレーヤーを用いているかのようにコントロールする。最も単純な機能では、利用者が再生を選択すると、並列プロセッサによってマルチメディア・ストリームがディスクドライブから呼び出される。このデータは、I/O回路を介して多重化回路に転送される。図2を参照して既に説明したように、多重化回路は多重化法でデータをフォーマットし、多数の利用者がシステムに接続できるようにする。
DDSを利用することにより、複数の利用者が同一の情報又は異なる情報に同時にアクセスすることができる。更に、これらの利用者は、いつでも情報にアクセスし、その情報を様々な速度で、例えば希望に応じて一時停止、早送り、巻戻しをしながら閲覧することができる。従って、このDDSは、わずかな遅延で各利用者が自宅に全データベースを所有しているかのようにアクセスできる中央データベース、例えばビデオデータベース、を形成する。
図5は、要求されたデータストリームをディスクドライブからプロセッサを介して最終的に利用者へ転送するために使用されるデータマップを表している。具体的には、機能、例えば再生、が要求されると、利用者にはサービス期間(service period)内の1個のスロットが割り当てられる。有限数、例えば3200個のスロットが存在している。利用者が割り当てられる実際のスロットは、後述するように、動的割当てされ、最初は、利用可能な3200個のスロットのうちのどの1個であっても良い。利用者が使用する機能に応じて、利用者は、後続のサービス期間中に異なるスロットに再度割り当てられる。しかしながら、後述するように、可能な3200個のスロットのうちの幾つかは、特別な機能を果たすために予約されている。
一般に、各スロットは、データの検索ブロック内にある情報の連続“要素(element)”への反復アクセスを表す。これらの要素は、1バイト(8ビット)の情報を含んでいても良く、また、単一ビットの情報しか含んでいなくても良い。実際の要素サイズは、用途に依存する。ここでは、図4で例示したデータ記憶域マップと一致させて、各要素が16ビットワードのビデオ情報を4個とパリティ情報の16ビットワードを1個含んでいるものと仮定する。更に、可能な3000人の利用者のうちの100人に関する100要素のビデオ情報に同時にアクセスする505個のディスクドライブ及びこれに付随するプロセッサ(あとの7個のプロセッサは、他のプロセッサ及びディスクドライブのいずれかが不良の場合に使用することのできるスペアである)が存在している。このため、100個のスロットを定める各行のデータ及びパリティワードは、同時にサービスを受ける。各スロット内では、そこに割り当てられた利用者が繰り返し16,000回サービスを受け、これらのアクセスに付随する80,000ワードのデータがローカルメモリ(RAM)に記憶される。従って、所定のサービス期間中、各プロセッサは、所定のスロットについて16,000ワードをそのローカルメモリ内に記憶する。即ち、30人の利用者にサービスを提供する一つのサービス期間の後、480,000ワードが各プロセッサのローカルメモリに記憶される。
一つのサービス期間内には、3000人の利用者が500個のプロセッサによってサービスの提供を受ける。5個のプロセッサ、即ち1サブセットのプロセッサは、各サービス期間中にサービス利用者によって使用されることはない。これらのプロセッサ(図5のサービス期間1におけるプロセッサ16〜20)は、対応するディスクドライブがリキャリブレートされている間は、利用者にデータを供給するために使用されることはない。リキャリブレーション(recalibration)は、最も安価なディスクドライブが定期的に、例えば動作の約10分から100分ごとに行う一般的な処理である。リキャリブレーションがランダムに生じてデータアクセスに有害な影響を与えないように、このシステムは、各ディスクドライブにキャリブレーションを、所定の時間、例えば所定のリキャリブレーション・スロット(RECAL slot)中に実行させる。ディスクドライブのサブセットのリキャリブレーションは、一つのサービス期間内に完了する。
サービス期間の終端における2行のスロットは、二つの特別な機能のために予約されている。第1の機能は、パリティワードを用いて訂正することのできないエラー、例えば単一のデータ要素内に生じた2個のエラー、を含む第2の時間要素にアクセスする。このため、エラーの生じた要素が最初にアクセスされるディスクドライブは、データを検索する試みの中で2度目にアクセスされる。データがエラーなく検索されると、そのデータは、ローカルメモリ内においてエラーの生じたデータのロケーションに記憶される。更に述べると、プロセッサに不良が生じた場合は、サーバが自身を再構成し、不良のプロセッサをスペアのプロセッサに交換する。ディスクドライブに不良が生じた場合、は、パリティワードを用いて訂正することにより、ドライブのデータを回復することができる。この後、ドライブを交換し、パリティ再構成データを用いて、もとのデータを新しいドライブに復元しても良い。
第2の機能は、第2の特別な行のスロットの間に作動し、より多くのデータをディスクドライブに置く。例えば、利用者がディスクドライブに現在記憶されていないマルチメディア・ストリームを選択する場合、選択されたマルチメディア・ストリームのデータを図4を参照しながら説明したものと同じ方法で記憶するためにこの行は用いられる。例えば、5個のディスクドライブにわたる80,000ワードのビデオプログラミングを記憶し、次いで、次の5個のディスクドライブにわたる次の80,000ワードを記憶する、というような処理をプログラム全体が記憶されるまで繰り返す。連続した番号のサービス期間内でこの記憶プロセスを繰り返すことにより、ビデオプログラムの全体が、利用者のデータ検索プロセスに影響を与えることなく、ディスクドライブに分配されて記憶される。
次に続くディスクドライブ・サブセット、例えばドライブ21〜25、をリキャリブレートするため、リキャリブレーション機能(RECAL)は、各サービス期間につき1スロット進む。従って、図5に示されるように、全ての利用者が再生モードにあるものと仮定すると、全ての利用者が、連続する各サービス期間で1スロット進むことになる。このため、利用者1の次の80,000ワードのデータがプロセッサ6〜10及びディスクドライブ6〜10によって提供され、利用者2の次の80,000ワードのデータがプロセッサ11〜15及びディスク11〜15によって提供される、などというようになる。エラー訂正及びデータ充填は、上述のようにして行われる。この結果、再生機能を用いると、所定の利用者が1個のプロセッサから次のプロセッサに順次に進められ、配布済みのデータをそのデータが記憶されたオーダ、即ち80,000ワード単位で検索する。
早送り等の他の機能に関しては、利用者は、データを順次検索せずに、所定数のスロットだけ前方へ飛ばされる。例えば、利用者2がサービス期間1内のデータをスロット2の間に検索し、それから早送りを要求すると、利用者2に関する次のデータ要素が、例えばスロット22の間にサービス期間2内で検索される。この後、早送り機能が止まるまで、利用者2に関するデータが検索されているスロットは、20カウントだけ進められる。この結果が、データ、例えばビデオプログラムの早送りである。同一の一般的プロセスを用いて、情報の高速早送りや、巻戻しや、高速巻戻しが行われる。早送り機能や高速巻戻し機能の速度は、スキップするスロットの数によって決まる。このため、各サービス期間の前に、利用者は、利用者が要求した機能に応じた新しいスロットに再度割り当てられなければならない。この再割当て処理の詳細については、後述する。
一時停止機能に関しては、一時停止命令が他の命令に変わるまで、1個のスロットを使用して同じディスクドライブからの情報に繰り返しアクセスする。停止命令は、もちろん、現在のロケーションにおける利用者に対する情報の配布を停止する。アクセスされている現在のディスクドライブは、利用者IDを用いてテーブル(表)に記憶され、利用者が再生を再開したときに、システムが、最後にアクセスされたディスクドライブからデータを送り始めることができるようになっている。
各サービス期間の間に行われるデータ検索処理の結果として、各サブセットのローカルメモリは、30人の利用者の各々について16,000ワードを含むことになる。一つのサービス期間が完了すると、システムは、連続した次のサービス期間内に、引き続き新しいデータにアクセスする。先行するサービス期間からローカルメモリに記憶されたデータは、ディスクドライブに伴う比較的長いアクセス時間の間に出力される。このため、出力タイミング・シーケンサ(OTS、図11を参照して説明する)を用いることで、先行するサービス期間からのデータが多重化回路に出力され、同時に、新たなデータが現在のサービス期間に対するローカルメモリに記憶される。
更に具体的に述べると、図6は、各サービス期間間に利用されるデータ検索ルーチン(DATA RETRIEVAL routine)600のフローチャートを表している。このルーチンは、全プロセッサの各々によって同時に実行される。簡単のため、以下では、このルーチンが単一のプロセッサ上で実行されるものとして説明を行う。しかし、読者は、このルーチンが他の504個のプロセッサ上で同時に実行されていることを理解しなければならない。
このルーチンは、“スタート”とラベルされたステップ602から開始する。ステップ604において、このルーチンは、現在アクティブな利用者が適切なスロットに割り当てられるように、複数のテーブルを初期化する。これらのテーブルには、広域割当てテーブル(global allocation table(GAT))及び一対の局所割当てテーブル(local allocation table(LAT))が含まれている。この一対のLATには、現在のLAT(CLAT)と次のLAT(NLAT)とが含まれている。一般に、これらのテーブルは、利用可能な各利用者スロットの現在の機能に関する情報、例えばそこに割り当てられた利用者の利用者識別名(ID)や、その利用者の現在及び次の操作モードや、その利用者へのサービスの提供のためにアクセスすることになっている次のデータのディスクアドレス等を含んでいる。
具体的に述べると、GATは、複数の利用者、例えば3000人の利用者の各々に関する情報を含んでいる。GATのコピーは、各プロセッサのローカルメモリに記憶される。GATに対する変更、例えば利用者の操作モードの変化は、ホストコンピュータによって更新される。テーブル中の各項目は、1から3000まで(利用者IDに対応して)番号が付けられており、各利用者の次の操作モードと、そのモードに対してデータ検索を実行するディスク上のメモリアドレスと、を含んでいる。通常、そのディスクアドレスは、アクセスされる16,000ワード中の最初のワードのアドレスである。
一方、LATは、個々のプロセッサの各々に対応付けられており、例えば、各プロセッサについて異なるLAT対が対応付けられている。CLATは、対応付けられたプロセッサによって行われるデータ検索操作を現在のサービス期間に関して定める。このCLATは、現在のサービス期間の間にプロセッサによってサービスの提供を受ける利用者についての利用者IDのリスト、各利用者の現在の操作モード、及びアクセスされるべきデータのアドレスを含んでいる。名前が示されると、NLATは次のサービス期間の間に対応プロセッサによって行われるべきデータ検索操作を定める。このNLATは、次のサービス期間にサービスの提供を受ける利用者についての利用者IDのリスト、利用者の操作モード、及びアクセスされるべきデータのアドレスを含んでいる。
こうして図6のステップ604では、現在アクティブな利用者についてテーブルの項目が初期化される。この後、ステップ606において、利用者はサービスの提供を受ける。例えば、利用者サービスルーチン(USER SERVICE routine)700を実行することによりディスクドライブからデータがアクセスされる。この後、ステップ608では、利用者に次のサービス期間中に使用する新たなスロットを再割当てするために割当てテーブルが更新される。利用者再割当ては、利用者再割当てルーチン(USER REALLOCATION routine)800を実行することによって行われる。繰り返しデータを検索し、それから利用者を再割当てするステップを含んだ連続した一連のサービス期間を作成するため、利用者サービス期間生成ループ610が繰り返し実行される。
図7に示されるように、利用者が既にスロットに割り当てられているものとすると、利用者サービスルーチン700は、全機能を実行して利用者のデータ要求に応える。この利用者サービスルーチンはステップ702から開始し、ステップ704に進む。このステップ704において、このルーチンは、このルーチンを実行するプロセッサが、サーマル・リキャリブレーション・ストリップ(thermal recalibration strip)、例えばディスクドライブ・リキャリブレーション、を行うために用いられる一連の縦のスロット(図5参照)内にあるかどうかを照会する。GAT、CLAT及びNLATは、各テーブルのモードフィールド内に、ディスクドライブがリキャリブレートされることになっているかどうかを示す指標を含んでいる。この照会の回答が肯定的である場合、このルーチンは、ステップ706において、そのプロセッサに対応したディスクドライブに、そのディスクドライブのサーマル・リキャリブレーションを実行させる。逆に、ステップ704の照会の回答が否定的である場合、このルーチンは、NO経路に沿ってステップ708へ進む。
ステップ708では、このルーチンを実行するプロセッサが扱う30人の利用者の各々に関するデータにアクセスし、これをローカルメモリに記憶する。このようなデータアクセスは、プロセッサが30人の利用者の各々について16,000ワードを検索することを要求する。16000ワードの開始アドレスは、利用者の各々についてのCLATに含まれている。プロセッサは、そのアドレスのデータワードを検索し、その後、ディスクドライブ中の次の15,999ワードを検索する。各コンピュータに対応付けられた各利用者は、この方法で順次にサービスの提供を受ける。
更に述べると、このデータがディスクドライブから呼び出され、ローカルメモリに記憶されているとき、プロセッサは、エラー検出を行う。このデータがディスクドライブから検索されると、プロセッサ及びディスク・コントローラの双方は、畳み込み多項式(convolution polynomial)を用いて検索データ上のチェックワードを算出する。検索の最後に、ディスク・コントローラは、プロセッサの内部算出値との比較のため、そのチェックワードをプロセッサに送る。この比較により、プロセッサへのデータ転送中のエラーを検出することが可能になる。
所定の利用者に関するデータがローカルメモリに送られた後、次の利用者のデータが検索される。次の利用者のデータの検索中に、前の利用者のデータ中に検出されたエラーが訂正される。エラー訂正プロセスを容易にするため、近接のプロセッサは、IPCバスを介して、最近検索されたデータワード及びパリティワードを共有し、パリティチェックを行う。要素中の他の4個のワードと組み合わされたこのパリティワードは、CRCエラー検出アルゴリズムによって検出された任意の単一データワードエラーを訂正するために使用することができる。1ワードを超えてエラーが生じている場合は、エラーを訂正することができない。このため、ルーチン700は、ステップ710で、全ての利用者データが検索されると利用される特別なエラー訂正スロットを定める。このスロットでは、エラーのあるデータは、正確にデータを検索する試行のなかで2回目にアクセスされる。このスロットは、他のスロットと同様に、所定のプロセッサが16000ワードを検索することを可能にする。
ステップ712及び714では、新たなデータが、プロセッサに対応付けられたディスクドライブにロードされる。具体的には、ステップ712を使用して、適切に符号化された“ライブ”又は“オフ・エア”のデータをディスクドライブ上に記憶する。ステップ714では、16,000ワードのビデオ情報のブロックをディスクドライブに記憶することができる。最後に、ステップ716で、ルーチン700は、図6のサービス期間生成ループ610に戻る。
データ検索ルーチンが実行されている間、プロセッサは、先行するサービス期間中にローカルメモリに記憶されたデータにアクセスし、そのデータをOTSに出力する。OTSは、データを再編成して、再割当て処理によって変更されない標準化データストリームを作成する。言い換えると、OTSは、どのようなスロットに利用者が割り当てられようとも、多重化回路による使用に適切なように利用者データが再編成されるようにする。
図8は、利用者再割当てルーチン800を表している。このルーチンは、1サービス期間につき1回の頻度で、利用者の各々を、利用者の現在の操作(機能)モードを実行する適切なスロットに割り当て直す。このルーチンは、ステップ802から開始し、ステップ804に進む。このステップ804では、利用者が現在要求している機能及び利用者が次のサービス期間内に実行するように要求した機能に応じて、利用者に優先順位が付けられる。
一般に、このルーチンは、プロセッサによって扱われる30人の利用者をサービス期間内に利用可能な30個の可能スロットに割り当て直す。この再割当ては、種々の割当てテーブル内で情報を比較することにより行われる。この情報は、特定利用者の優先順位(priority)をプロセッサに通知する。例えば、特定の利用者は特定のプロセッサからデータにアクセスしなければならないとか、特定の利用者は、見るデータに影響を与えることなく近接のプロセッサから情報にアクセスすることができるといったことを通知する。例を挙げると、最も高い優先順位、すなわち優先順位1は、現在再生モードにある利用者に常に割り当てられ、その利用者は、次のサービス期間の間、依然として再生モードにおかれる。これらの利用者には、適切なディスク(ディスク重要度(disk critical))から正しい時間(時間重要度(time critical))に次の一連のデータワードが与えられなければならない。さもないと、利用者は、ビデオのジャンプ又はスキップを体験することになる。更に、サーマル・リキャリブレーション処理にも、優先順位1が割り当てられる。
一方、現在、例えば早送りを使用しており、次のサービス期間に再生モードを使用する予定の利用者には、正確に次のセットのデータワード(ディスクは重要でない)を与える必要はないが、適切な時間(時間重要度)にデータワードを与えなければならない。再生モードでビデオが再開したときに、与えられたビデオデータが80,000ワードだけオフセットされれば、利用者は全く気づかない。このため、早送りから再生モードへ変わった利用者は、下位の優先順位である優先順位2に割り当てられる。次の表は、種々のモードとその優先順位の指定をまとめたものである。
ここで、
時間重要度
1=当該サービス期間にサービスを受けなければならない、
特別出力
2=当該サービス期間にサービスを受けなければならない、
一般出力
3=可能な限り早くサービスを受けなければならない、
先行出力なし
ディスク重要度
1=当該ディスク・サブセットによってサービスを受けなければならない
2=±1のディスク・サブセット内でサービスを受けなければならない
3=±数個のディスク・サブセット内でサービスを受けなければならない
4=±多数個のディスク・サブセット内でサービスを受けなければならない
特別出力は、正確なデータの発見を容易にするために利用者に供給しなければならない出力である。一般に、ビデオデータは圧縮されており、適切な時間に利用者の受像器上装置へ送られなければならない特定の復元制御ワード(decompression control words)がそのデータ内にあり、正確なデータ復元と適切なスクリーン表示を容易にしている。このため、これらの特別出力(即ち、復元制御ワード及びこれに伴うデータ)には、一般出力よりも大きな時間重要度優先順位が割り当てられる。この一般出力は、圧縮ビデオデータは含んでいないが、受像器上装置の機能に必要な制御データは含んでいても良い。先行出力がない場合、要求される出力は、それほど高い時間重要度を有しない。また、データは、次のサービス期間ではなく後のサービス期間に、視聴者に影響を与えることなく作成することができる。例えば、停止モードから再生モードに進むとき、プログラムを再開する際の1個のサービス期間の遅延は、視聴者のビデオプログラムの鑑賞にほとんど影響を与えない。
所定のプロセッサに対応付けられたCLATは、そのプロセッサによって現在サービスを受けている各利用者によって実行される操作(機能)のモードを定める。サービス期間中に利用者の一人がその機能を変更した場合、ホストコンピュータは、その利用者の新たな機能及びその機能を実行するためその利用者に送る必要のあるデータのアドレスを用いてGATを更新する。ホストコンピュータは、このモード変更を全プロセッサに同報する。
現在のサービス期間の間、プロセッサは、現在サービスを提供している利用者についてのGAT情報を検索する。このGAT情報は、NLAT内に置かれている。NLAT機能をCLAT機能と比較することにより、プロセッサは、表1に従って、現在の利用者の各々についての優先順位を判別する。更に、ステップ804では、NLAT及びCLATが交換される。即ち、CLAT情報がNLAT情報となり、NLAT情報がCLAT情報になるように、各テーブルに対するポインタが交換される。
ステップ806では、優先順位1再割当てルーチン(PRIORITY 1 REALLOCATION routine)900を実行することにより、優先順位1の利用者が適切なスロットに割り当てられる。優先順位1の利用者が再割当てされると、ルーチン800は、ステップ808、810及び812で、優先順位2、3及び4再割当てルーチン(PRIORITY 2, 3 and 4 REALLOCATION routine)1000、1100及び1200をそれぞれ実行することにより、優先順位2、3及び4の利用者を再割当てする。一般に、これらのルーチンを用いて、各プロセッサは、低優先順位の利用者を一つの割当てスロットに割り当てようと試みる。しかしながら、余りに多数の利用者が単一のプロセッサによってサービスを受けることになっている場合、超過利用者は、別のスロットの別のプロセッサに渡される。これらのルーチンの各々は、以下で詳細に説明する。利用者再割当てルーチン800は、ステップ814で利用者サービスルーチン700に戻る。
図9は、優先順位1再割当てルーチン900を表している。このルーチンは、ステップ902から開始して、ステップ904へ進む。ステップ904において、このルーチンは、IPCバスを用いて、そのCLAT内の優先順位1の利用者の利用者IDを、次のスロットの利用者を扱う近接セットのプロセッサに渡す。例えば、このIDは、右側の5個のプロセッサに渡される。同時に、このプロセッサは、優先順位1の利用者のIDを、左側のスロットを定めるプロセッサの一つから受け取る。これらのプロセッサIDは、CLAT内に置かれる。
ステップ906では、GAT内に記憶された利用者データアドレスを、ある行の最後のスロット、例えばプロセッサ501〜505、から、次の行の最初のスロット、例えばプロセッサ1〜5、へ渡された利用者について更新しなければならない。一般に、利用者が一つのスロットから次のスロットに渡されるとき、利用者が要求したデータの開始アドレスは変化しない。しかしながら、利用者が最後のスロットから新たな行の最初のスロットに再割当てされるとき、要求されたデータのアドレスは、16,000アドレスだけ増加する。これは、ディスクドライブにデータを配布する方法に起因して生じる(図4及びこれに付随する説明を参照)。この結果、この利用者についてのGATアドレスを更新しなければならなくなる。
ステップ908で、優先順位1再割当てルーチン900は、利用者再割当てルーチン800に戻る。
図10は、優先順位2、3及び4再割当てルーチン1000のフローチャートを表している。このルーチンは、優先順位2の利用者を再割当てするために使用されるものとして説明する。しかしながら、このルーチンは、優先順位3又は優先順位4の利用者を再割当てするために、単純に再実行され、これらの利用者を処理する。
このルーチン1000は、ステップ1002から開始して、ステップ1004に進む。ステップ1004において、このルーチンは、IPCバスを用いて、優先順位2の利用者の利用者IDを宛先プロセッサに送る。この宛先プロセッサは、通常、複数のプロセッサ分だけ離れている。スキップされるプロセッサ(或いは複数のサブセットのプロセッサ)の具体的な数は、利用者の優先順位に依存する。例えば、早送りモード中の利用者(優先順位2の利用者)は、システム構成に応じて、10個のプロセッサをスキップすることができ、或いは100個のプロセッサをスキップすることすら可能である。このため、このルーチンは、モードに応じて、利用者IDを、適切であるが離れたプロセッサにアドレスする。同時に、このプロセッサは、このプロセッサに再割当てされることになっている利用者の利用者IDを受け取っている。特定のプロセッサがその30個の利用可能なスロットを優先順位1の利用者で満たしていない場合、そのプロセッサは、優先順位2の利用者を受け入れてCLATに置く。優先順位1再割当てルーチンと同じように、優先順位2再割当てルーチンは、ステップ1006で、行を変更した利用者に関するGAT内のアドレスを増加する。
ステップ1008では、このルーチンは、現在割り当てられている優先順位2の利用者の数が最大許容利用者の数、例えば30人よりも大きいかどうかを照会する。大きい場合は、超過利用者を再割当てしなければならない。このため、照会の回答が肯定的である場合は、このルーチンは、YES経路に沿ってステップ1010及び1012に進む。これら二つのステップは、優先順位2の利用者の再割当ての必要がなくなるまで、利用者IDを繰り返し送受し、必要ならばGATを更新する。こうして、ステップ1008での照会の回答は肯定的となり、優先順位2再割当てルーチンは、ステップ1014で利用者再割当てルーチン800に戻る。
優先順位3及び4の利用者を再割当てするため、図10に表されるルーチンは、これらの利用者のために再実行される。このため、全利用者が最終的に適切なスロット(プロセッサ)に再割当てされる。
各サービス期間ごとに上述のルーチンを実行した後、30人の利用者の各々に関する16,000のデータワードは、各プロセッサに付随するローカルメモリに記憶される。このため、4個の連続したプロセッサからなるグループは、特定の利用者に関して4データワード(64ビット)を含むデータ要素を定めている。ここでは、パリティワードは無視している。利用者が動的に割り当てられるため、特定利用者のデータの具体的なロケーションは任意である。一般的な多重化回路の使用を容易にするためには、データがアクセスされサーバから出力されるとき、そのデータは反復可能な順序になければならない。従って、利用者データを、多重化回路によって容易に利用可能な所定の順序に順序付けし直してそのデータを利用者に配布するため、出力タイミング・シーケンサ(OTS)を用いてデータの再順序付けがなされる。
図11は、OTS1100のブロック図を表している。一般に、この回路は、データの各要素を検査し、そのデータを所定の順序に再順序付けする。簡単のため、この所定順序は、利用者IDの順序を、例えば1から3000まで上昇していく。OTSを用いると、任意の順序の利用者出力データは、上昇する利用者ID順序の64ビット幅シーケンスの出力データとなる。この64ビット幅シーケンスは、64本の並列ライン上にある一連の64ビットデータ要素出力として定められる。これらの並列ラインでは、データ要素中の全64ビットに関して、各利用者データ要素の第1ビットはライン1上に位置し、各利用者データ要素の第2ビットはライン2上に位置する、などというようになっている。このように、64本の並列ラインは、3000人の利用者に対応した各利用者データ要素についての1ビットを有している。これらの要素が1から3000まで順序付けられた後、次のセットのデータ要素について同様の処理が繰り返される、などというようになっている。この結果、任意に順序付けされた入力データに対して、利用者がどのプロセッサに再割当てされようとも繰り返すことの可能な標準的番号順序付けが行われることになる。結果として、OTS回路は、本質的に、第1の多重化データストリームをその入力として有し、第2の多重化データストリームを出力として有する。この第2多重化データストリームは、第1データストリームが再編成されたものである。
具体的には、このOTSは、マスターカウンタ1108、複数のデータ要素選択回路1102、複数のマルチプレクサ(MUX)1104、及び出力レジスタ1106を含んでいる。マスターカウンタは、0から2999まで計数を行った後、0に戻る。即ち、このカウンタは、利用者の数と等しいカウントを有している。利用者データ要素は出力用に使用できるため、各データ要素は、記憶されたデータ要素に対応した利用者IDに沿って各データ要素選択回路内に記憶される。こうして、データ要素選択回路は、全利用者の各々、例えば利用者1〜3000についてデータ要素(4データワード又は64ビット)を累積的に記憶する。
カウンタ1108が1から3000まで順次計数を行うと、このカウントはデータ要素選択回路をアドレスし、マスターカウンタの各カウントごとにこれらの回路の一つからデータ要素を作成する。順次に接続された複数のMUX1104は、再クロッキングのために、データ要素の各々を64ビットレジスタ1106に送る。再クロッキングの後、多重化された一連のデータ要素が出力となる。これらのデータ要素は、利用者IDの上昇順序に編成される。
更に詳しく述べると、データ要素選択回路は、レジスタアレイ1110を含んでいる。このレジスタアレイは、一つのサービス期間内の全利用者、例えば30人のデータ要素、及び4ワード要素の各々に対する利用者IDを記憶及び二重バッファリングすることが可能である。二重バッファリングを用いることで、このアレイは、要素を同時に検索しつつ、要素を記憶することが可能となる。このため、16個のプロセッサ(一つのプロセッサ・グループ)の出力レジスタは、データ要素選択回路1102に接続されている。アレイ内の各64ビットレジスタ1114は、セレクタ1112に接続されている。マスターカウンタが計数を行っていて、そのカウントがアレイ1110内の利用者IDと等しくなると、この利用者IDに対応したデータ要素がセレクタを介して遅延回路1115に送られる。通常の二重バッファリング法でマスターカウンタが0に達すると、以前にデータを記憶していたレジスタにアクセスが行われ、データが検索される。
更に、データ要素がセレクタを通過すると、こり特定カウントでこの特定データ要素選択回路1102が出力を有していることを示すマッチ信号(MATCH signal)が生成される。このデータ要素及びマッチ信号は、所定数のクロック周期の間、遅延回路1115内に保持される。具体的には、この所定数のクロック周期はこのデータ要素選択回路が表す左からの16個のプロセッサからなる各グループについての1クロック周期に等しい。例えば、左端のプロセッサ・グループからのデータを含むデータ要素選択回路は遅延を有しておらず、隣接する次のプロセッサ・グループからのデータを含む回路は1クロック周期の遅延を有しており、隣接する次のプロセッサ・グループからのデータを含む回路は2クロック周期の遅延を有している、などというようになっている。
適切な遅延が加えられた後、このデータ要素は、MUX1104の入力の一つに与えられる。入力の選択は、マッチ信号によって制御される。この方法では、マッチ信号がアサートのとき、MUXは、マッチ信号を生成するデータ要素選択回路に接続された入力を選択する。これ以外の場合は、MUXは、デフォルトで他の入力を選択する。このような処理を用いることで、マスターカウンタの各カウントにつき1個のデータ要素が生成される。各MUXを現在通過しているデータ要素は、64ビット幅レジスタ1116にクロック同期されている。このため、各クロック周期において、これらのデータ要素は、複数のMUX1104及びこれに対応付けられたレジスタ1116を介して出力レジスタ1106に送られる。この結果、レジスタ1106の出力は、利用者ID、例えば1〜3000、の順位内で順次に順序付けされた一連の64ビット幅データ要素となる。
上記の説明において、OTS回路は、単一のマスタークロック及び複数の遅延回路を含んでいた。しかしながら、このような遅延回路は、OTS集積回路上に付加的な回路を必要とする。従って、他の実施形態では、データ要素選択回路にそれぞれ個々に接続された複数のマスタークロックが使用される。各マスタークロックの初始動カウントは、固有のカウント遅延を与えるようにプリセットされている。例えば、左端のマスターカウンタがカウント0に初期化されると、隣接する次のカウンタはカウント2999に初期化され、次の隣接カウンタはカウント2998に初期化される、などというようになっている。このため、これらのカウンタは、レジスタアレイからデータ要素を検索する際に、適切な遅延(各データ要素選択回路につき1クロック周期)を与える。
再順序付けされたこのデータ要素ストリームは、多重化回路によって容易に扱われ、このデータ要素は適切な利用者ネットワークに配布される。説明を簡単にするため、OTSは、プロセッサ・サブシステムから分離した回路として説明してきた。しかしながら、OTSは、レジスタアレイがサブシステム中に分散するようにしてプロセッサ・サブシステムに容易に組み込めることは、当業者であれば分かるだろう。
ここまで、本発明の開示内容を組み込んだ種々の実施形態を示して詳細に説明してきたが、当業者であれば、この開示内容を組み込んだ他の多数の変形例を容易に考案することができる。ここで開示した装置及び方法は、ビデオサーバ、医療イメージング、特殊効果及びアニメーション並びにロケーション・ベースの娯楽システム、その他の用途に適用することができる。
Claims (25)
- 情報記憶装置にそれぞれ接続された複数の並列プロセッサを有する並列処理コンピュータを含み、利用者のコマンドに応答して複数の利用者にデータを供給するマルチユーザデータ配布システムにおいて、前記複数の利用者をこのマルチユーザデータ配布システムに動的に割当てする方法であって、
前記複数の利用者のうちの各利用者を、前記複数の並列プロセッサのうちの少なくとも1個のプロセッサに割り当てて、この割当てプロセッサが、複数のスロットからなるサービス期間中のスロットを代表するようにするステップと、
利用者の各々について、利用者のコマンドに応答して、前記割当てプロセッサを用いることにより、この割当てプロセッサに対応付けられた情報記憶装置内のデータの指定された離散セグメントにアクセスするアクセスステップと、
前記利用者の各々に、対応する指定離散データセグメントを供給する供給ステップと、
前記利用者の各々を、利用者の各々によって選択された現在の操作モードに応じて、後続のサービス期間内の異なるスロットを代表する異なるプロセッサに前記利用者の各々を再割当てする再割当てステップと、
前記アクセスステップ、供給ステップ及び再割当てステップを繰り返し、前記利用者についてのデータのアクセス済み離散セグメントからなる連続ストリームを生成するステップと、
を備えている方法。 - 前記アクセスステップ、供給ステップ及び再割当てステップは、各利用者にデータが供給される複数の連続サービス期間(sequential service period)を定めている請求項1記載の方法。
- 前記再割当てステップは、後続のサービス期間における実装(implementation)のために、前記利用者の各々について選択された操作モードに基づいて、前記利用者の各々を再割当てするステップを含む請求項2記載の方法。
- アクセスされるべきデータセグメントに関する情報記憶装置アドレスロケーション及び利用者操作モードを含む広域割当てテーブルを、任意の前記利用者によって選択された操作モードの任意の変化に応じて更新するステップと、
現在のサービス期間中に使用される操作モードを、前記広域割当てテーブル中の操作モードと比較するステップと、
前記比較ステップの結果に基づいて前記利用者の各々に優先順位付けを行うステップと、
前記利用者の前記優先順位付けに基づいて前記利用者をプロセッサに再割当てするステップと、
を更に備えている請求項2記載の方法。 - 前記優先順位付けは、各利用者によって選択された前記操作モードに応じて、各利用者に提供されるべきデータの前記離散セグメントに関する時間及びディスク重要度(time and disk criticality)を求めることにより実行される請求項4記載の方法。
- 前記利用者の各々は、複数のプロセッサ及び複数の情報記憶装置からなるサブセットに割当て及び再割当てされて、前記複数の情報記憶装置からなる前記サブセットからデータがアクセスされるようになっており、複数の情報記憶装置からなる前記サブセット内の各情報記憶装置からアクセスされたデータが、データ要素を形成するように連結される請求項2記載の方法。
- 情報記憶装置にそれぞれ接続された複数の並列プロセッサを有する並列処理コンピュータを含み、利用者のコマンドに応答して複数の利用者にデータを供給するマルチユーザデータ配布システムにおいて前記マルチユーザデータ配布システム内にデータをストライプする方法であって、
複数の離散セグメントに細分されたデータの連続ストリームを提供するステップと、
前記複数の情報記憶装置を、複数の情報記憶装置からなる複数のサブセットに分割するステップと、
情報記憶装置からなる前記サブセットの各々について前記データストリームの離散セグメントの連続番号(sequential number)を選択する離散セグメント選択ステップと、
前記選択番号の離散データセグメントを、情報記憶装置からなる前記サブセットの各々に記憶する記憶ステップと、
前記離散セグメントが、情報記憶装置からなる各サブセット内において所定のサイズを有する連続データの複数のブロックを形成するまで、前記データブロックの各々を含む前記離散セグメントがストライプパターンを有するように、前記離散セグメント選択ステップ及び前記記憶ステップを繰り返すステップと、
を備える方法。 - 前記記憶ステップは、前記選択番号の離散データセグメントを情報記憶装置からなる前記サブセットの各々に同時に記憶するステップを更に備えている請求項7記載の方法。
- 前記データの連続ストリームがデジタル化されたビデオプログラムである請求項7記載の方法。
- 複数の情報記憶装置からなる各サブセット内に記憶された前記連続データの複数のブロックは、前記データブロックが情報記憶装置からなる前記複数のサブセット内に連続データの連続ブロックからなるストライプパターンを形成するように順次に記憶される請求項7記載の方法。
- 前記情報記憶装置の各サブセットが5つの情報記憶装置を含み、各情報記憶装置がデータの16,000連続ワードを記憶し、データの80,000連続ワードを含む連続データの所定サイズのブロックを生成する請求項7記載の方法。
- 複数の利用者の中の各利用者を前記複数の並列プロセッサ中の少なくとも1個のプロセッサに割り当てて、この割当てプロセッサが、複数のスロットからなるサービス期間中の1個のスロットを代表するようにするステップと、
利用者の各々について、利用者のコマンドに応答して、前記割当てプロセッサを用いることにより、この割当てプロセッサに付随する情報記憶装置内のデータの指定された離散セグメントにアクセスするアクセスステップと、
前記利用者の各々に、対応する指定離散データセグメントを供給する供給ステップと、
利用者の各々によって選択された現在の操作モードに応じて、後続のサービス期間内の異なるスロットを代表する異なるプロセッサに前記利用者の各々を再割当てする再割当てステップと、
前記アクセスステップ、供給ステップ及び再割当てステップを繰り返し、前記利用者についてのデータのアクセス済み離散セグメントからなる連続ストリームを生成するステップと、
を更に備えている請求項7の方法。 - 前記アクセスステップ、供給ステップ及び再割当てステップは、各利用者にデータが供給される複数の連続サービス期間(sequential service period)を定めている請求項12記載の方法。
- 前記再割当てステップは、後続のサービス期間における実装(implementation)のために、前記利用者の各々について選択された操作モードに基づいて、前記利用者の各々を再割当てするステップを含む請求項12記載の方法。
- アクセスされるべきデータセグメントに関する情報記憶装置アドレスロケーション及び利用者操作モードを含む広域割当てテーブルを、任意の前記利用者によって選択された操作モードの任意の変化に応じて更新するステップと、
現在のサービス期間中に使用される操作モードを、前記広域割当てテーブル中の操作モードと比較するステップと、
前記比較ステップの結果に基づいて前記利用者の各々に優先順位付けを行うステップと、
前記利用者の前記優先順位付けに基づいて前記利用者をプロセッサに再割当てするステップと、
を更に備えている請求項14記載の方法。 - 前記優先順位付けは、各利用者によって選択された前記操作モードに応じて、各利用者に提供されるべきデータの前記離散セグメントに関する時間及びディスク重要度(time and disk criticality)を求めることにより実行される請求項15記載の方法。
- 前記利用者の各々は、複数のプロセッサ及び複数の情報記憶装置からなるサブセットに割当て及び再割当てされて、前記複数の情報記憶装置からなる前記サブセットからデータがアクセスされるようになっており、複数の情報記憶装置からなる前記サブセット内の各情報記憶装置からアクセスされたデータが、データ要素を形成するように連結される請求項12記載の方法。
- 各々のサブセット内の前記情報記憶装置に繰り返してアクセスし、利用者の各々のために前記データブロックセグメントを表示している一連のデータ要素を生じ、
利用者の各々に一連のデータ要素を供給するステップを更に含む請求項6又は17いずれか1項記載の方法。 - 前記供給ステップが、
メモリ内に各々の利用者のために前記一連のデータ要素を記憶し、
メモリから前記一連のデータ要素をリコールし、
データ要素がリコールされるように、所定の順序に一連のデータ要素を再順序付けするステップを更に含む請求項18記載の方法。 - 所定の順序を有している一連のデータ要素を多重送信し、
利用者に多重化されたデータを伝えるステップを更に含んでいる請求項19記載の方法。 - 前記アクセスステップが、
情報記憶装置のサブセットの各々からアクセスされるデータ要素内の誤差を検出するステップと、
検出された誤りを修正する修正ステップと、
を更に含む請求項2又は13いずれか1項記載の方法。 - 前記データ要素の各々がパリティー情報を含み、前記修正ステップは、検出された誤りを修正するためにパリティー情報を使うステップを更に含む請求項21記載の方法。
- パリティー情報が情報記憶装置のサブセットの各々を形成する情報記憶装置のうちの1つに記憶され、前記パリティー情報は、情報記憶装置のサブセットの各々内の、他の情報記憶装置に含まれるデータ情報から派生する請求項22記載の方法。
- 再校正のための情報記憶装置の1つのサブセットを選択し、
残っているプロセッサーがそれらの関連情報記憶装置内のデータ要素にアクセスする間情報記憶装置の前記選択されたサブセットを再調整するステップを更に含んでいる請求項6又は17いずれか1項記載の方法。 - データの連続的離散的なセグメントの新しいストリームを提供し、
サービス期間中、前記情報記憶装置内のデータの連続的離散的なセグメントの前記新しい流れを記憶し、サービス期間中、前記プロセッサは利用者にデータセグメントを供給するステップを更に含んでいる請求項6又は17いずれか1項記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/275,742 | 1994-07-19 | ||
US08/275,742 US5671377A (en) | 1994-07-19 | 1994-07-19 | System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream |
PCT/US1995/008640 WO1996002931A1 (en) | 1994-07-19 | 1995-07-17 | Multiple user data storage, retrieval and distribution system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10503066A JPH10503066A (ja) | 1998-03-17 |
JP4195725B2 true JP4195725B2 (ja) | 2008-12-10 |
Family
ID=23053618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50509296A Expired - Fee Related JP4195725B2 (ja) | 1994-07-19 | 1995-07-17 | マルチユーザデータ記憶、検索及び配布システム |
Country Status (8)
Country | Link |
---|---|
US (4) | US5671377A (ja) |
EP (2) | EP1548606A3 (ja) |
JP (1) | JP4195725B2 (ja) |
KR (2) | KR100374070B1 (ja) |
CA (2) | CA2195431C (ja) |
DE (1) | DE69534248T2 (ja) |
ES (1) | ES2240976T3 (ja) |
WO (1) | WO1996002931A1 (ja) |
Families Citing this family (188)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2143556T3 (es) | 1994-10-12 | 2000-05-16 | Touchtunes Music Corp | Sistema de reproduccion audiovisual digital inteligente. |
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 |
US7424731B1 (en) | 1994-10-12 | 2008-09-09 | Touchtunes Music Corporation | Home digital audiovisual information recording and playback 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 |
US5991811A (en) * | 1995-09-04 | 1999-11-23 | Kabushiki Kaisha Toshiba | Information transmission system utilizing both real-time data transmitted in a normal-in-time direction and in a retrospective-in-time direction |
US6449730B2 (en) | 1995-10-24 | 2002-09-10 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5862312A (en) * | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
JP3277787B2 (ja) * | 1995-12-21 | 2002-04-22 | ソニー株式会社 | 音声・映像データ記録・再生装置 |
JP3288213B2 (ja) * | 1996-01-11 | 2002-06-04 | 日本電気株式会社 | サーバ |
US5812741A (en) * | 1996-02-14 | 1998-09-22 | Jack Kennedy Metal Products And Buildings, Inc. | Serial sequencers connected in parallel |
US6469753B1 (en) | 1996-05-03 | 2002-10-22 | Starsight Telecast, Inc. | Information system |
US6175854B1 (en) * | 1996-06-11 | 2001-01-16 | Ameritech Services, Inc. | Computer system architecture and method for multi-user, real-time applications |
GB2315889A (en) * | 1996-07-31 | 1998-02-11 | Ibm | Locating and sampling of data in parallel processing systems |
JPH1091360A (ja) * | 1996-09-12 | 1998-04-10 | Fujitsu Ltd | ディスク制御方式 |
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 |
US6748446B2 (en) * | 1996-11-29 | 2004-06-08 | Canon Kabushiki Kaisha | Communication method and apparatus with modification of routing path by intermediate relay apparatus |
EP0951775A1 (en) * | 1997-01-13 | 1999-10-27 | John Overton | Automated system for image archiving |
US6185621B1 (en) * | 1997-03-25 | 2001-02-06 | Philips Electronics N.A. Corp. | Direct copying between disk blocks in memory onto a network as sequential access files |
US6782427B1 (en) * | 1997-04-02 | 2004-08-24 | Allegro Software Development Corporation | Serving data from a resource limited system |
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 |
MX340336B (es) | 1997-07-21 | 2016-07-06 | Gemstar Dev Corp | Metodo para navegar a traves de una guia de programas de television. |
FR2769165B1 (fr) | 1997-09-26 | 2002-11-29 | Technical Maintenance Corp | Systeme sans fil a transmission numerique pour haut-parleurs |
US6434687B1 (en) * | 1997-12-17 | 2002-08-13 | Src Computers, Inc. | System and method for accelerating web site access and processing utilizing a computer system incorporating reconfigurable processors operating under a single operating system image |
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 |
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 |
US7810123B1 (en) * | 1998-02-18 | 2010-10-05 | Verizon Corporate Services Group Inc. | Method and system for interactive multimedia |
US6961801B1 (en) * | 1998-04-03 | 2005-11-01 | Avid Technology, Inc. | Method and apparatus for accessing video data in memory across flow-controlled interconnects |
JP4234233B2 (ja) * | 1998-05-27 | 2009-03-04 | 富士通株式会社 | 情報記憶装置及びプログラムが記憶された記録媒体 |
US7394816B1 (en) * | 1998-06-26 | 2008-07-01 | Aol Llc, A Delaware Limited Liability Company | Distributing personalized content |
US7103640B1 (en) | 1999-09-14 | 2006-09-05 | Econnectix, Llc | Network distributed tracking wire transfer protocol |
US7233978B2 (en) * | 1998-07-08 | 2007-06-19 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
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 |
FR2781591B1 (fr) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | Systeme de reproduction audiovisuelle |
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 |
FR2781580B1 (fr) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent |
US6898762B2 (en) | 1998-08-21 | 2005-05-24 | United Video Properties, Inc. | Client-server electronic program guide |
US6298071B1 (en) * | 1998-09-03 | 2001-10-02 | Diva Systems Corporation | Method and apparatus for processing variable bit rate information in an information distribution system |
US6859799B1 (en) | 1998-11-30 | 2005-02-22 | Gemstar Development Corporation | Search engine for video and graphics |
US6389218B2 (en) * | 1998-11-30 | 2002-05-14 | Diva Systems Corporation | Method and apparatus for simultaneously producing compressed play and trick play bitstreams from a video frame sequence |
US7000243B1 (en) | 1998-12-31 | 2006-02-14 | Oncommand Corporation | Allocating computer resources within a video distribution system |
US7444663B2 (en) | 1998-12-31 | 2008-10-28 | Lodgenet Interactive Corporation | Menuing system for controlling content delivery within a video distribution system |
US7536705B1 (en) * | 1999-02-22 | 2009-05-19 | Tvworks, Llc | System and method for interactive distribution of selectable presentations |
US8726330B2 (en) | 1999-02-22 | 2014-05-13 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US6691208B2 (en) * | 1999-03-12 | 2004-02-10 | Diva Systems Corp. | Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content |
US7243133B2 (en) * | 1999-03-30 | 2007-07-10 | Sedna Patent Services, Llc | Method and apparatus for reducing latency in an interactive information distribution system |
US6282207B1 (en) * | 1999-03-30 | 2001-08-28 | Diva Systems Corporation | Method and apparatus for storing and accessing multiple constant bit rate data |
US6604224B1 (en) * | 1999-03-31 | 2003-08-05 | Diva Systems Corporation | Method of performing content integrity analysis of a data stream |
US6289376B1 (en) * | 1999-03-31 | 2001-09-11 | Diva Systems Corp. | Tightly-coupled disk-to-CPU storage server |
US7086077B2 (en) * | 1999-04-01 | 2006-08-01 | Sedna Patent Services, Llc | Service rate change method and apparatus |
US8763053B1 (en) * | 1999-04-01 | 2014-06-24 | Cox Communications, Inc. | File system for a file server of a video-on-demand system |
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 |
US6233607B1 (en) * | 1999-04-01 | 2001-05-15 | Diva Systems Corp. | Modular storage server architecture with dynamic data management |
US7142567B1 (en) | 1999-04-01 | 2006-11-28 | Sedna Patent Services, Llc | Rate generator in a video on demand system having multiple constant bit rate data |
US6526580B2 (en) * | 1999-04-16 | 2003-02-25 | Digeo, Inc. | Broadband data broadcasting service |
US6473858B1 (en) | 1999-04-16 | 2002-10-29 | Digeo, Inc. | Method and apparatus for broadcasting data with access control |
US6463465B1 (en) * | 1999-05-07 | 2002-10-08 | Sun Microsystems, Inc. | System for facilitating remote access to parallel file system in a network using priviliged kernel mode and unpriviliged user mode to avoid processing failure |
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 |
US8341662B1 (en) | 1999-09-30 | 2012-12-25 | International Business Machine Corporation | User-controlled selective overlay in a streaming media |
US7010492B1 (en) | 1999-09-30 | 2006-03-07 | International Business Machines Corporation | Method and apparatus for dynamic distribution of controlled and additional selective overlays in a streaming media |
EP1258142A4 (en) | 1999-12-10 | 2005-08-10 | Sedna Patent Services Llc | METHOD AND DEVICE FOR CARRYING OUT A USER LIFE IN A POLLING VIDEO SERVICE ENVIRONMENT |
DE19960741A1 (de) * | 1999-12-20 | 2001-06-21 | Thomson Brandt Gmbh | System zum Austausch von Daten |
US6681397B1 (en) * | 2000-01-21 | 2004-01-20 | Diva Systems Corp. | Visual improvement of video stream transitions |
AU2001236577A1 (en) * | 2000-01-28 | 2001-08-07 | Williams Communications, Llc | A system and method for mirroring and caching compressed data in a content distribution system |
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 |
FR2805060B1 (fr) | 2000-02-16 | 2005-04-08 | Touchtunes Music Corp | Procede de reception de fichiers lors d'un telechargement |
FR2805072B1 (fr) | 2000-02-16 | 2002-04-05 | Touchtunes Music Corp | Procede d'ajustement du volume sonore d'un enregistrement sonore numerique |
EP2285104A1 (en) | 2000-03-31 | 2011-02-16 | United Video Properties, Inc. | System and method for reducing cut-offs in program recording |
US20020010928A1 (en) * | 2000-04-24 | 2002-01-24 | Ranjit Sahota | Method and system for integrating internet advertising with television commercials |
US9788058B2 (en) | 2000-04-24 | 2017-10-10 | Comcast Cable Communications Management, Llc | Method and system for automatic insertion of interactive TV triggers into a broadcast data stream |
US8936101B2 (en) | 2008-07-17 | 2015-01-20 | Halliburton Energy Services, Inc. | Interventionless set packer and setting method for same |
US7702995B2 (en) * | 2000-04-24 | 2010-04-20 | TVWorks, LLC. | Method and system for transforming content for execution on multiple platforms |
US8296792B2 (en) | 2000-04-24 | 2012-10-23 | Tvworks, Llc | Method and system to provide interactivity using an interactive channel bug |
US7051111B1 (en) | 2000-04-25 | 2006-05-23 | Digeo, Inc. | Multiple source proxy management system |
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 |
US6356803B1 (en) | 2000-05-19 | 2002-03-12 | International Business Machines Corporation | Automated data storage library distributed control system |
AU2001265180A1 (en) * | 2000-05-31 | 2001-12-11 | Minerva Networks, Inc. | Method and system for pausing and replaying scheduled rich media broadcasts |
US20080005275A1 (en) * | 2000-06-02 | 2008-01-03 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
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 |
WO2002015018A1 (en) * | 2000-08-11 | 2002-02-21 | 3Ware, Inc. | Architecture for providing block-level storage access over a computer network |
US8250357B2 (en) | 2000-09-13 | 2012-08-21 | Fortinet, Inc. | Tunnel interface for securing traffic over a network |
FR2814085B1 (fr) | 2000-09-15 | 2005-02-11 | Touchtunes Music Corp | Procede de divertissement base sur les jeux concours a choix multiples |
US7050376B2 (en) | 2000-09-19 | 2006-05-23 | Lg Electronics Inc. | Optical disc player and method for reproducing thereof |
US7103906B1 (en) | 2000-09-29 | 2006-09-05 | International Business Machines Corporation | User controlled multi-device media-on-demand system |
CA2938250C (en) | 2000-10-11 | 2020-01-14 | Rovi Guides, Inc. | Systems and methods for caching data in media-on-demand systems |
KR100971696B1 (ko) | 2000-10-11 | 2010-07-22 | 유나이티드 비디오 프로퍼티즈, 인크. | 데이터의 기억 장치를 주문형 매체 배달 시스템의 서버에 제공하기 위한 시스템 및 방법 |
US6996742B2 (en) * | 2000-11-28 | 2006-02-07 | Sedna Patent Services, Llc | Method for regenerating and streaming content from a video server using RAID 5 data striping |
CA2437035C (en) * | 2001-02-24 | 2009-01-06 | International Business Machines Corporation | Global interrupt and barrier networks |
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 |
US20020157113A1 (en) * | 2001-04-20 | 2002-10-24 | Fred Allegrezza | System and method for retrieving and storing multimedia data |
US6883110B1 (en) | 2001-06-18 | 2005-04-19 | Gateway, Inc. | System and method for providing a data backup of a server on client systems in a network |
US7181547B1 (en) | 2001-06-28 | 2007-02-20 | Fortinet, Inc. | Identifying nodes in a ring network |
US20040022202A1 (en) | 2002-08-05 | 2004-02-05 | Chih-Lung Yang | Method and apparatus for continuously receiving images from a plurality of video channels and for alternately continuously transmitting to each of a plurality of participants in a video conference individual images containing information concerning each of said video channels |
US6535240B2 (en) | 2001-07-16 | 2003-03-18 | Chih-Lung Yang | Method and apparatus for continuously receiving frames from a plurality of video channels and for alternately continuously transmitting to each of a plurality of participants in a video conference individual frames containing information concerning each of said video channels |
US6871263B2 (en) | 2001-08-28 | 2005-03-22 | Sedna Patent Services, Llc | Method and apparatus for striping data onto a plurality of disk drives |
US8966527B1 (en) * | 2001-10-16 | 2015-02-24 | The Directv Group, Inc. | System and method for media inserts in a media distribution system |
US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
US7788396B2 (en) * | 2001-11-28 | 2010-08-31 | Interactive Content Engines, Llc | Synchronized data transfer system |
US7437472B2 (en) * | 2001-11-28 | 2008-10-14 | Interactive Content Engines, Llc. | Interactive broadband server system |
US7644136B2 (en) * | 2001-11-28 | 2010-01-05 | Interactive Content Engines, Llc. | Virtual file system |
US7810121B2 (en) * | 2002-05-03 | 2010-10-05 | Time Warner Interactive Video Group, Inc. | Technique for delivering network personal video recorder service and broadcast programming service over a communications network |
US7376950B2 (en) * | 2002-05-08 | 2008-05-20 | Intel Corporation | Signal aggregation |
US20040006667A1 (en) * | 2002-06-21 | 2004-01-08 | Bik Aart J.C. | Apparatus and method for implementing adjacent, non-unit stride memory access patterns utilizing SIMD instructions |
US7492387B2 (en) | 2002-08-05 | 2009-02-17 | Chih-Lung Yang | Implementation of MPCP MCU technology for the H.264 video standard |
US9646339B2 (en) | 2002-09-16 | 2017-05-09 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US8151304B2 (en) | 2002-09-16 | 2012-04-03 | 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 |
US10373420B2 (en) | 2002-09-16 | 2019-08-06 | Touchtunes Music Corporation | Digital downloading jukebox with enhanced communication features |
US8584175B2 (en) | 2002-09-16 | 2013-11-12 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
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 |
US11029823B2 (en) | 2002-09-16 | 2021-06-08 | Touchtunes Music Corporation | Jukebox with customizable avatar |
KR100895146B1 (ko) * | 2002-10-19 | 2009-05-04 | 엘지전자 주식회사 | 홈네트워크 제어 방법 |
US7266120B2 (en) | 2002-11-18 | 2007-09-04 | Fortinet, Inc. | System and method for hardware accelerated packet multicast in a virtual routing system |
US7552192B2 (en) * | 2002-12-18 | 2009-06-23 | Ronnie Gerome Carmichael | Massively parallel computer network-utilizing MPACT and multipoint parallel server (MPAS) technologies |
JP4274523B2 (ja) * | 2003-01-24 | 2009-06-10 | 株式会社日立製作所 | 記憶装置システム、及び記憶装置システムの起動方法 |
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 |
US7568034B1 (en) | 2003-07-03 | 2009-07-28 | Google Inc. | System and method for data distribution |
US8136025B1 (en) | 2003-07-03 | 2012-03-13 | Google Inc. | Assigning document identification tags |
JP2005157521A (ja) * | 2003-11-21 | 2005-06-16 | Hitachi Ltd | 遠隔記憶装置の状態情報監視方法および記憶サブシステム |
US7334090B2 (en) * | 2003-12-17 | 2008-02-19 | At&T Delaware Intellectual Property, Inc. | Methods, systems, and storage mediums for providing information storage services |
US7739418B2 (en) * | 2004-04-12 | 2010-06-15 | Hewlett-Packard Development Company, L.P. | Resource management system |
JP4421385B2 (ja) | 2004-06-09 | 2010-02-24 | 株式会社日立製作所 | 計算機システム |
US8086575B2 (en) | 2004-09-23 | 2011-12-27 | Rovi Solutions Corporation | Methods and apparatus for integrating disparate media formats in a networked media system |
US8131969B2 (en) * | 2004-10-20 | 2012-03-06 | Seagate Technology Llc | Updating system configuration information |
US7594075B2 (en) | 2004-10-20 | 2009-09-22 | Seagate Technology Llc | Metadata for a grid based data storage system |
US8131926B2 (en) * | 2004-10-20 | 2012-03-06 | Seagate Technology, Llc | Generic storage container for allocating multiple data formats |
US8346843B2 (en) * | 2004-12-10 | 2013-01-01 | Google Inc. | System and method for scalable data distribution |
US20100071070A1 (en) * | 2005-01-07 | 2010-03-18 | Amandeep Jawa | Managing Sharing of Media Content From a Server Computer to One or More of a Plurality of Client Computers Across the Computer Network |
US20060167982A1 (en) * | 2005-01-07 | 2006-07-27 | Apple Computer, Inc. | Restricted media sharing over networks |
EP1688841A1 (en) * | 2005-02-04 | 2006-08-09 | Sap Ag | Dynamic parallel processing |
US9973817B1 (en) | 2005-04-08 | 2018-05-15 | Rovi Guides, Inc. | System and method for providing a list of video-on-demand programs |
WO2007073420A1 (en) * | 2005-08-24 | 2007-06-28 | Peter Renzi | Streaming video network system |
US20070079342A1 (en) | 2005-09-30 | 2007-04-05 | Guideworks, Llc | Systems and methods for managing local storage of on-demand content |
US7716100B2 (en) * | 2005-12-02 | 2010-05-11 | Kuberre Systems, Inc. | Methods and systems for computing platform |
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 |
US7734853B2 (en) * | 2006-02-28 | 2010-06-08 | Arm Limited | Latency dependent data bus transmission |
US8793580B2 (en) * | 2006-06-06 | 2014-07-29 | Channel D Corporation | System and method for displaying and editing digitally sampled audio data |
US8229109B2 (en) * | 2006-06-27 | 2012-07-24 | Intel Corporation | Modular reduction using folding |
US9171419B2 (en) | 2007-01-17 | 2015-10-27 | Touchtunes Music Corporation | Coin operated entertainment system |
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 |
US7934027B2 (en) * | 2007-01-19 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Critical resource management |
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 |
US20090019492A1 (en) | 2007-07-11 | 2009-01-15 | United Video Properties, Inc. | Systems and methods for mirroring and transcoding media content |
US8689078B2 (en) | 2007-07-13 | 2014-04-01 | Intel Corporation | Determining a message residue |
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 |
US8042025B2 (en) * | 2007-12-18 | 2011-10-18 | Intel Corporation | Determining a message residue |
US7886214B2 (en) * | 2007-12-18 | 2011-02-08 | Intel Corporation | Determining a message residue |
US20090171839A1 (en) * | 2007-12-28 | 2009-07-02 | Rosano Sharon A | Systems and methods for processing recurring payment transactions |
TWI367422B (en) * | 2008-05-13 | 2012-07-01 | Jmicron Technology Corp | Raid5 controller and accessing method with data stream distribution and aggregation operations based on the primitive data access block of storage devices |
US8601526B2 (en) | 2008-06-13 | 2013-12-03 | United Video Properties, Inc. | Systems and methods for displaying media content and media guidance information |
WO2010005569A1 (en) | 2008-07-09 | 2010-01-14 | Touchtunes Music Corporation | Digital downloading jukebox with revenue-enhancing features |
US10063934B2 (en) | 2008-11-25 | 2018-08-28 | Rovi Technologies Corporation | Reducing unicast session duration with restart TV |
US10564804B2 (en) | 2009-03-18 | 2020-02-18 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US12112093B2 (en) | 2009-03-18 | 2024-10-08 | Touchtunes Music Company, Llc | Entertainment server and associated social networking services |
US9292166B2 (en) | 2009-03-18 | 2016-03-22 | Touchtunes Music Corporation | Digital jukebox device with improved karaoke-related user interfaces, and associated methods |
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 | 터치튠즈 뮤직 코포레이션 | 엔터테인먼트 서버 및 관련 소셜 네트워킹 서비스 |
US9166714B2 (en) | 2009-09-11 | 2015-10-20 | Veveo, Inc. | Method of and system for presenting enriched video viewing analytics |
US9014546B2 (en) | 2009-09-23 | 2015-04-21 | Rovi Guides, Inc. | Systems and methods for automatically detecting users within detection regions of media devices |
CN105354940A (zh) | 2010-01-26 | 2016-02-24 | 踏途音乐公司 | 具有改进的用户界面的数字点播设备和相关方法 |
US8935719B2 (en) | 2011-08-25 | 2015-01-13 | Comcast Cable Communications, Llc | Application triggering |
EP2759126B8 (en) | 2011-09-18 | 2021-03-31 | Touchtunes Music Corporation | 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 |
US20130191569A1 (en) * | 2012-01-25 | 2013-07-25 | Qualcomm Incorporated | Multi-lane high-speed interfaces for high speed synchronous serial interface (hsi), and related systems and methods |
US8862564B2 (en) | 2012-03-16 | 2014-10-14 | Google Inc. | Sponsoring resource downloads |
JP5855234B2 (ja) * | 2012-03-27 | 2016-02-09 | 三菱電機株式会社 | デジタル放送受信装置及びデジタル放送受信方法 |
US9414114B2 (en) | 2013-03-13 | 2016-08-09 | Comcast Cable Holdings, Llc | Selective interactivity |
KR101507810B1 (ko) * | 2013-06-25 | 2015-04-07 | 삼성전자주식회사 | 의료 영상 장치를 이용하여 피검사자를 촬영하기 위한 사용자 인터페이스를 제공하는 방법 및 장치 |
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 |
US11076205B2 (en) | 2014-03-07 | 2021-07-27 | Comcast Cable Communications, Llc | Retrieving supplemental content |
WO2015148644A1 (en) | 2014-03-25 | 2015-10-01 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
RU2550555C1 (ru) * | 2014-07-21 | 2015-05-10 | ООО Научно-исследовательский центр супер-ЭВМ и нейрокомпьютеров | Мультиконтроллер распределяемой памяти |
US9948962B2 (en) | 2014-11-13 | 2018-04-17 | Time Warner Cable Enterprises Llc | Apparatus and methods for efficient delivery of electronic program guide data |
US11829333B2 (en) * | 2015-05-08 | 2023-11-28 | Chicago Mercantile Exchange Inc. | Thread safe lock-free concurrent write operations for use with multi-threaded in-line logging |
US9836528B1 (en) | 2015-07-20 | 2017-12-05 | Google Inc. | Data constrained resource access |
KR101734160B1 (ko) * | 2016-04-28 | 2017-05-11 | 주식회사 디에이아이오 | 작업부하 편중을 완화하는 저장 장치 |
US9941866B2 (en) | 2016-07-12 | 2018-04-10 | Qualcomm Incorporated | Apparatus for design for testability of multiport register arrays |
WO2018089993A1 (en) * | 2016-11-14 | 2018-05-17 | Google Llc | Sorting for data-parallel computing devices |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4057829B1 (en) * | 1973-12-18 | 1995-07-25 | Spectradyne Inc | Communication TV monitoring and control system |
US4344134A (en) * | 1980-06-30 | 1982-08-10 | Burroughs Corporation | Partitionable parallel processor |
US4546451A (en) * | 1982-02-12 | 1985-10-08 | Metheus Corporation | Raster graphics display refresh memory architecture offering rapid access speed |
CA1293819C (en) * | 1986-08-29 | 1991-12-31 | Thinking Machines Corporation | Very large scale computer |
US5175865A (en) * | 1986-10-28 | 1992-12-29 | Thinking Machines Corporation | Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers |
CA1289671C (en) * | 1986-10-28 | 1991-09-24 | Thinking Machines Corporation | Massively parallel processor |
US5276866A (en) * | 1988-07-19 | 1994-01-04 | Michael Paolini | System with two different communication mediums, transmitting retrieved video and compressed audio information to plural receivers responsively to users' requests |
US5148432A (en) * | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
US4947244A (en) * | 1989-05-03 | 1990-08-07 | On Command Video Corporation | Video selection and distribution system |
WO1991003112A1 (en) * | 1989-08-23 | 1991-03-07 | Delta Beta Pty. Ltd. | Program transmission optimisation |
JPH04219859A (ja) * | 1990-03-12 | 1992-08-10 | Hewlett Packard Co <Hp> | 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ |
US5034741A (en) * | 1990-03-22 | 1991-07-23 | United Technologies Corporation | Variable length bit patterns for data representation |
US5341474A (en) * | 1992-05-15 | 1994-08-23 | Bell Communications Research, Inc. | Communications architecture and buffer for distributing information services |
US5276681A (en) * | 1992-06-25 | 1994-01-04 | Starlight Networks | Process for fair and prioritized access to limited output buffers in a multi-port switch |
US5857112A (en) * | 1992-09-09 | 1999-01-05 | Hashemi; Ebrahim | System for achieving enhanced performance and data availability in a unified redundant array of disk drives by using user defined partitioning and level of redundancy |
JPH06290158A (ja) * | 1993-03-31 | 1994-10-18 | Fujitsu Ltd | 再構成可能なトーラス・ネットワーク方式 |
JPH08511368A (ja) * | 1993-06-04 | 1996-11-26 | ネットワーク・アプリアンス・コーポレーション | 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法 |
US5414455A (en) * | 1993-07-07 | 1995-05-09 | Digital Equipment Corporation | Segmented video on demand system |
US5473362A (en) * | 1993-11-30 | 1995-12-05 | Microsoft Corporation | Video on demand system comprising stripped data across plural storable devices with time multiplex scheduling |
US5463732A (en) * | 1994-05-13 | 1995-10-31 | David Sarnoff Research Center, Inc. | Method and apparatus for accessing a distributed data buffer |
US5592470A (en) * | 1994-12-21 | 1997-01-07 | At&T | Broadband wireless system and network architecture providing broadband/narrowband service with optimal static and dynamic bandwidth/channel allocation |
US5706048A (en) * | 1995-04-24 | 1998-01-06 | Motorola, Inc. | Wireless digital data access system and method |
US5862312A (en) * | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
JP3133004B2 (ja) * | 1996-11-21 | 2001-02-05 | 株式会社日立製作所 | ディスクアレイ装置およびその制御方法 |
US6058455A (en) * | 1997-07-02 | 2000-05-02 | International Business Corporation | RAID system having a selectable unattended mode of operation with conditional and hierarchical automatic re-configuration |
US6101615A (en) * | 1998-04-08 | 2000-08-08 | International Business Machines Corporation | Method and apparatus for improving sequential writes to RAID-6 devices |
US6334168B1 (en) * | 1999-02-19 | 2001-12-25 | International Business Machines Corporation | Method and system for updating data in a data storage system |
US6195727B1 (en) * | 1999-03-31 | 2001-02-27 | International Business Machines Corporation | Coalescing raid commands accessing contiguous data in write-through mode |
US6289376B1 (en) * | 1999-03-31 | 2001-09-11 | Diva Systems Corp. | Tightly-coupled disk-to-CPU storage server |
US6233607B1 (en) * | 1999-04-01 | 2001-05-15 | Diva Systems Corp. | Modular storage server architecture with dynamic data management |
-
1994
- 1994-07-19 US US08/275,742 patent/US5671377A/en not_active Expired - Lifetime
-
1995
- 1995-07-17 KR KR1019970700429A patent/KR100374070B1/ko not_active IP Right Cessation
- 1995-07-17 DE DE69534248T patent/DE69534248T2/de not_active Expired - Lifetime
- 1995-07-17 ES ES95926230T patent/ES2240976T3/es not_active Expired - Lifetime
- 1995-07-17 KR KR10-2002-7009857A patent/KR100377092B1/ko not_active IP Right Cessation
- 1995-07-17 EP EP05075507A patent/EP1548606A3/en not_active Withdrawn
- 1995-07-17 WO PCT/US1995/008640 patent/WO1996002931A1/en active IP Right Grant
- 1995-07-17 CA CA002195431A patent/CA2195431C/en not_active Expired - Fee Related
- 1995-07-17 CA CA002499802A patent/CA2499802C/en not_active Expired - Fee Related
- 1995-07-17 JP JP50509296A patent/JP4195725B2/ja not_active Expired - Fee Related
- 1995-07-17 EP EP95926230A patent/EP0771468B1/en not_active Expired - Lifetime
-
1997
- 1997-04-24 US US08/847,590 patent/US5920702A/en not_active Expired - Lifetime
- 1997-04-24 US US08/847,591 patent/US5913026A/en not_active Expired - Lifetime
-
1999
- 1999-05-18 US US09/313,408 patent/US6529994B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1996002931A1 (en) | 1996-02-01 |
US6529994B1 (en) | 2003-03-04 |
US5671377A (en) | 1997-09-23 |
EP0771468B1 (en) | 2005-06-01 |
CA2195431A1 (en) | 1996-02-01 |
US5920702A (en) | 1999-07-06 |
KR100374070B1 (ko) | 2003-05-12 |
KR970705256A (ko) | 1997-09-06 |
DE69534248D1 (de) | 2005-07-07 |
CA2499802C (en) | 2009-09-29 |
ES2240976T3 (es) | 2005-10-16 |
KR100377092B1 (ko) | 2003-03-19 |
EP0771468A1 (en) | 1997-05-07 |
DE69534248T2 (de) | 2006-05-04 |
EP0771468A4 (en) | 2000-08-23 |
EP1548606A2 (en) | 2005-06-29 |
EP1548606A3 (en) | 2012-02-15 |
CA2195431C (en) | 2005-06-14 |
JPH10503066A (ja) | 1998-03-17 |
US5913026A (en) | 1999-06-15 |
CA2499802A1 (en) | 1996-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4195725B2 (ja) | マルチユーザデータ記憶、検索及び配布システム | |
US6209024B1 (en) | Method and apparatus for accessing an array of data storage devices by selectively assigning users to groups of users | |
KR100231220B1 (ko) | 다수의 디스크상에 저장된 스트라이프들로 분할되어 있는 데이타 유닛들중 요청된 데이타 유닛을 검색하는 방법 및 장치(A disk access method for delivering multimedia and video information on ctemand over wide area networks) | |
EP0727750B1 (en) | Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses | |
US6233607B1 (en) | Modular storage server architecture with dynamic data management | |
US6996742B2 (en) | Method for regenerating and streaming content from a video server using RAID 5 data striping | |
EP0916118B1 (en) | System for retrieving data in a stream server | |
US5878280A (en) | Data buffering system for plural data memory arrays | |
JP4381480B2 (ja) | 複数のパリティ・グループを持つ多重ディスク・ドライブ配列 | |
CA2444438A1 (en) | System and method for retrieving and storing multimedia data | |
EP1287425A2 (en) | System for and method of accessing blocks on a storage medium | |
US6457153B2 (en) | Storage device and storage subsystem for efficiently writing error correcting code | |
US5940865A (en) | Apparatus and method for accessing plural storage devices in predetermined order by slot allocation | |
JP3869008B2 (ja) | 論理的に連続するクラスタ間でデータを反復する方法およびシステム | |
EP0795254B1 (en) | Method and system for reading data blocks for a number of user groups | |
JP2002149349A (ja) | 少なくとも1つのデータストリームのデータをストアするためのサーバ、方法、およびコンピュータサーバシステム | |
JPH10283295A (ja) | データ転送システム、及びそのデータ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041109 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20041028 |
|
A72 | Notification of change in name of applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A721 Effective date: 20041111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050207 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050830 |
|
A72 | Notification of change in name of applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A721 Effective date: 20050805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060210 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080929 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |