JP2008234629A - データ配信およびバッファリング - Google Patents

データ配信およびバッファリング Download PDF

Info

Publication number
JP2008234629A
JP2008234629A JP2008005304A JP2008005304A JP2008234629A JP 2008234629 A JP2008234629 A JP 2008234629A JP 2008005304 A JP2008005304 A JP 2008005304A JP 2008005304 A JP2008005304 A JP 2008005304A JP 2008234629 A JP2008234629 A JP 2008234629A
Authority
JP
Japan
Prior art keywords
array
memory devices
data
data block
read buffer
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
JP2008005304A
Other languages
English (en)
Other versions
JP4754585B2 (ja
Inventor
Michael A Kahn
エイ.カーン マイケル
Matthew G Sargeant
ジー.サージェント マシュー
Francis J Stifter Jr
ジェイ.スティフター ジュニア フランシス
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.)
Arris Technology Inc
Original Assignee
Broadbus Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadbus Technologies Inc filed Critical Broadbus Technologies Inc
Publication of JP2008234629A publication Critical patent/JP2008234629A/ja
Application granted granted Critical
Publication of JP4754585B2 publication Critical patent/JP4754585B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B21/00Exercising apparatus for developing or strengthening the muscles or joints of the body by working against a counterforce, with or without measuring devices
    • A63B21/40Interfaces with the user related to strength training; Details thereof
    • A63B21/4027Specific exercise interfaces
    • A63B21/4033Handles, pedals, bars or platforms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2801Broadband local area networks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2209/00Characteristics of used materials
    • A63B2209/08Characteristics of used materials magnetic
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2213/00Exercising combined with therapy
    • A63B2213/007Exercising combined with therapy combined with magnetotherapy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast

Landscapes

  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】多数の異なるタイプの映画を多数の異なる加入者に供給する能力を有する記憶装置を提供する。
【解決手段】オンデマンド・サーバ・システムは、1つ以上のフラッシュ・ベースのメモリ・デバイスへのアクセスを調整するメモリ・コントローラを含む。フラッシュ・デバイスは、それぞれのネットワーク上で複数の宛先の各々がオンデマンドで選択的に視聴することができる大量の映像コンテンツを格納する。読み出しバッファと書き込みバッファとを使用することにより、メモリ・コントローラは、書き込みバッファ内に格納されたデータのメモリ・デバイスのアレイへの転送と、メモリ・デバイスのアレイ内のデータの読み出しバッファへの転送と、を切り替えることができる。書き込みバッファは、オンデマンドの映像コンテンツを格納する。読み出しバッファは、ユーザに現在ストリーミングされているオンデマンドの映像コンテンツのセグメントを格納する。
【選択図】図1

Description

オンデマンド・ケーブル・ネットワークの加入者に情報をより迅速かつ効率的に伝達する。
例えば、ケーブル・ネットワークのディジタル・ケーブルでは、現在、加入者がそれぞれのテレビジョンに、オンデマンド再生するさまざまなタイプのストリーミング・データ・コンテンツを受信するための多数のチャネルを有している。
従来のケーブル技術によれば、それぞれの加入者は、対応するケーブル会社が管理するサーバから送信される符号化ディジタル情報を受信するいわゆるセット・トップ・ボックス装置を家に所有していることがある。符号化ディジタル情報を受信すると、それぞれのセット・トップ・ボックスは、再生のための復号化機能を実行する。復号化が完了すると、視聴者の家のそれぞれのセット・トップ・ボックスは、選択したチャネルから取り出した復号化データの適当な「ラスタ化」信号で対応するテレビジョン・システムを駆動する。したがって、テレビジョンの視聴者は、ケーブル会社から送信されて、対応するセット・トップ・ボックスが受信した対応するテレビジョン番組を視聴することができる。
通常、対応するケーブル会社は、対応する目標セット・トップ・ボックスに配信可能な情報のライブラリを維持しているか、またはアクセスすることができる。したがって、加入者は、家庭で視聴するアイテムをライブラリから選択することができる。
ケーブル会社が管理するそれぞれのサーバからコンテンツを供給するための1つの解決策は、1つ以上のRAM(例えば、ランダム・アクセス・メモリ)タイプの記憶装置内にコンテンツを一時的に格納する処理を含む。このように用いると、映画全体のようなコンテンツをRAMに格納してその映画のオンデマンド視聴を開始する1人以上の加入者に配信することができる。
上記それぞれの加入者に配信するコンテンツ全体(例えば、数本の映画を始めから終わりまで)を一時的に格納するメモリ(例えば、RAM)の従来の使用法に関する1つの欠陥は、RAMベースの記憶装置関連のコストである。例えば、大量のコンテンツ(例えば、多数の異なる映画)を配信するように構成されたサーバが、多数の異なるタイプの映画を多数の異なる加入者に供給する能力を有するRAMベースの記憶装置を必要とする場合を考える。
RAMベースの記憶装置を使用する可能な別の方法は、コンテンツをディスクベースの記憶装置に格納することである。ディスクベースの記憶装置からコンテンツを供給する(例えば、ストリーミングする)には時間がかかり、したがって多数のユーザがそれぞれリモート・サーバからのコンテンツの受信を制御できる真のオンデマンド体験を提供できないため、この解決策は許容できない。
以下の開示は、コンテンツを処理し配信するいくつかの有用な実施形態を含む。例えば、本明細書の一実施形態は、データ処理システムの別の部分がデータの短いバーストを管理する一方で、比較的高帯域幅のインタフェースによって、データの長いバーストを実施する、それぞれのデータ処理システムの部分を介して1つ以上のフラッシュ・デバイスからデータを迅速に(ディスクと比較して)検索することを可能にする処理を含む。
例えば、以下に詳細に述べる一般的な実施形態によれば、本明細書のシステムは、1つ以上のフラッシュ・ベースのメモリ・デバイスへのアクセスを調整するメモリ・コントローラを含む。上記実施形態では、メモリ・コントローラは、フラッシュ・メモリ・デバイスのアレイに加えて対応する読み出しバッファおよび書き込みバッファを有する。読み出しバッファと書き込みバッファの使用によって、メモリ・コントローラは、書き込みバッファに格納されたデータをメモリ・デバイスのアレイに転送する処理と、メモリ・デバイスのアレイ内のデータを読み出しバッファに転送する処理とを切り替えることができる。
特定の実施形態では、書き込みバッファに格納されたデータは、加入者へのオンデマンド配信のためにメモリ・デバイスのアレイに格納された映画などの映像コンテンツである。読み出しバッファは、メモリ・デバイスのアレイから検索したデータ・セグメント(例えば、映像コンテンツの一部)を格納する1つ以上のRAMベースのメモリ・デバイスを含むように構成することができる。それ故、メモリ・デバイスのアレイからデータを直接配信する代わりに、メモリ・コントローラは、映像コンテンツをストリーミング・データとして読み出しバッファ(例えば、キャッシュ)から配信する。現在読み出しバッファ内にない映像コンテンツの一部分を提供するコマンドを受信すると、メモリ・コントローラは、後続のセグメントを求めてフラッシュ・メモリ・デバイスのアレイへのアクセスを開始する。メモリ・コントローラは、読み出しバッファからコンテンツをストリーミングし、それぞれのサーバが要求されたコンテンツをすべて配信するか、またはそれぞれの加入者が対応するコンテンツのストリーミングを中止するコマンドを発行するまで、読み出しバッファのコンテンツを更新する上記処理を繰り返す。
一実施形態では、コンテンツは、ナビゲーションのための埋め込みポインタを含む。例えば、書き込みバッファ、フラッシュ・メモリ・デバイスのアレイ、および読み出しバッファ内に格納されたコンテンツ内のポインタは、コンテンツ内の異なる場所を前方および後方にポイントする。ストリーミングされた映像コンテンツを視聴するユーザは、それぞれのセット・トップ・ボックスから、再生、早送り、一時停止、巻き戻しなどのコマンドを発行できる。それぞれのサーバの映像コンテンツのストリーミングを管理するプロセッサは、ストリーミングされたコンテンツに関連するナビゲーション・ポインタの使用に基づいて発行されたコマンドに従ってコンテンツの異なる部分をナビゲートし配信する。言い換えれば、サーバのある処理では、さまざまなナビゲーション・ポインタを用いてユーザ・コマンドの受信に基づいてコンテンツのさまざまな部分をストリーミングする。
本明細書の技術は、ライブまたは事前記録されたデータ・ストリームなどのナビゲーション可能なデータ・ストリームを生成し、多数の加入者にオンデマンドで配信する用途などで使用するのに十分適している。しかし、本明細書に記載する構成は、上記用途での使用に限定されず、それ故、本明細書に記載する構成およびその変形は他の用途にも十分適していることに留意されたい。
ロジック、バッファ、レジスタなどの離散的なハードウェア構成要素を介して実施できると共に、本明細書に記載する他の実施形態は、記憶装置の管理およびコンテンツの配信の上記技術をサポートするように構成されたコンピュータ・デバイス(例えば、コンピュータ・プロセッサ・システム、ホスト・コンピュータ、パーソナル・コンピュータ、ワークステーションなど)などのハードウェア・プラットフォームを含むことができる。上記実施形態では、コンピュータ・デバイスは、メモリ・システム、プロセッサ(例えば、処理デバイス)、およびそれぞれのインターコネクトを含む。インターコネクトは、プロセッサをメモリ・システムに結合する。メモリ・システムは、プロセッサ上で実行されるとコンテンツの管理と配信が可能になるアプリケーション(例えば、ソフトウェア・コード)で符号化される。
本明細書に開示する本出願のさらに別の実施形態は、上記概説し、以下に詳細に開示する方法実施形態および動作を実行するソフトウェア・プログラムを含む。より詳細には、本明細書に記載する実施形態は、コンピュータ・デバイス上で実行でき、本明細書で説明するコンテンツの格納および配信を管理できる符号化されたコンピュータ・プログラム・ロジックを含むコンピュータ・プログラム・プロダクト(例えば、コンピュータ可読媒体)を含む。コンピュータ・システムによって少なくとも1つのプロセッサでコンピュータ・プログラム・ロジックが実行されると、プロセッサは、本発明の実施形態として本明細書に記載する作用(例えば、方法)を実行する。本明細書でさらに開示する配置構成は、通常、光学媒体(例えば、CD−ROM)、フロッピー(登録商標)またはハード・ディスクあるいは1つ以上のROMまたはRAMまたはPROMチップ内のファームウェアまたはマイクロコードなどの他の媒体などのコンピュータ可読媒体に配置または符号化されたソフトウェア、コードおよび/または他のデータ構造として、あるいは特定用途向け集積回路(ASIC)またはフィールド・プログラマブル・ゲート・アレイ(FPGA)として、あるいは1つ以上のモジュール、共用ライブラリなどの内部のダウンロード可能なソフトウェア画像として提供される。ソフトウェアまたはファームウェアまたは他のこのような構成は、コンピュータ・デバイスにインストールしてコンピュータ・デバイス内の1つ以上のプロセッサに本明細書に記載する技術を実行させることができる。
本発明のさらに別の特定の実施形態は、本明細書に記載する実施形態によるコンテンツ管理および配信をサポートする命令を格納したコンピュータ可読媒体を含むコンピュータ・プログラム・プロダクトに関する。これらの命令は、それぞれのコンピュータ・デバイスのプロセッサによって実行されると、プロセッサに、i)コンテンツ・ストリームの特定部分を求める要求を受信するステップと、ii)要求の受信に応答して、フラッシュ・メモリ・デバイスのアレイからコンテンツ・ストリームの特定部分およびコンテンツ・ストリームの対応する隣接部分を含むデータ・ブロックへのアクセスを開始するステップと、iii)それぞれの宛先へのオンデマンド・ストリーミングのために(RAMベースの)読み出しバッファ内に上記アクセスしたデータ・ブロックの少なくとも一部を格納するステップと、iv)それぞれの宛先へのコンテンツ・ストリームの特定部分の送信を開始するステップとを実行させる。本明細書の別の実施形態は、上記概説し、以下に詳細に開示する任意の方法実施形態ステップおよび動作を実行するソフトウェア・プログラムおよび/またはハードウェアを含む。
なお、この概要では、本明細書または特許請求の範囲のすべての実施形態および/または漸進的に新規の態様を明記しているわけではないことに留意されたい。逆に、この概要では、さまざまな実施形態および従来の技術に対する新規性のある機能について予備的な説明を行うにとどめる。本発明の追加の詳細および/または可能な展望(置き換え)については、読者は詳細な説明と本明細書の対応する図とを参照されたい。
本出願の上記および他の目的、特徴および利点は、さまざまな図面を通して一貫して同様の参照符号が同じ部分を指す添付の図面に示す好ましい実施形態の下記のより具体的な説明から明らかになろう。図面は必ずしも正確に縮尺したものではなく、例示的実施形態、原理および概念を示すことに力点が置かれている。
以下の開示は、フラッシュ・メモリおよびRAMベースの記憶装置の効率的な使用をサポートするいくつかの有用な実施形態を含む。例えば、本明細書に記載するオンデマンド・サーバ・システムは、1つ以上のフラッシュ・ベースのメモリ・デバイスへのアクセスを調整するメモリ・コントローラを含む。フラッシュ・デバイスは、それぞれのネットワーク上で複数の宛先の各々がオンデマンドで選択的に視聴することができる大量のコンテンツ(例えば、ポインタ情報の埋め込みセットを含む映像コンテンツ)を格納する。
フラッシュ・メモリ・デバイスのアレイにアクセスできる以外に、メモリ・コントローラは、それに対応する読み出しバッファおよび書き込みバッファにアクセスできる。読み出しバッファは、対応するユーザからフラッシュ・デバイス内の少量のデータしか要求されない時にフラッシュ・デバイスから読み出した大量のデータを格納することができる。本明細書に記載する実施形態による高いフラッシュ読み取り性能を高効率に獲得する方法は、大量のバースト読み出しを開始することである。データをストリーミングする時に、対応する処理エンジンがフラッシュ・デバイスにアクセスし、所与の時間に少量のデータを利用する。特定のストリーム内で、読み出しアクセスは直線的にアドレス指定できる。それ故、最初の大量のバーストの残りが高帯域幅読み出しバッファ内に格納されている場合、最大限のフラッシュ処理能力を実現できる。システムは、同様の理由で書き込みバッファを含むことができるが、本明細書にさらに説明するように、読み出し/書き込みインタリーブを容易にすることもできる。
本明細書に記載する実施形態によるキャッシュは、要求元ユーザに送信されるストリーミング・データなどのデータをキャッシュする。一実施形態では、書き込みバッファは、さまざまなユーザが視聴するために選択することができるオンデマンド映像コンテンツを格納する。読み出しバッファは、ユーザに現在ストリーミングされるオンデマンド映像コンテンツのセグメントを格納する。
図1は、本明細書に記載する実施形態による通信システム100の一例を示す図である。この例では、通信システム100(例えば、コンテンツ・レポジトリおよびデータ・ストリーミング・システム)は、コンテンツ・マネージャ105、ネットワーク150(例えば、公衆または私設ネットワーク)、レポジトリ180、データ・ストリーム・モディファイア109、および映像情報を視聴し、音声情報を聴取する複数のユーザ・ドメイン190(例えば、ユーザ・ドメイン190−1,...,ユーザ・ドメイン190−Mなどのホーム環境)を含む。
図示の実施形態では、コンテンツ・マネージャ105は、ホスト・システム115と、メモリ・コントローラ120と、書き込みバッファ122と、読み出しバッファ124と、メモリ・デバイス145とを含む。ユーザ・ドメイン190の各々(例えば、個人の家などの加入者環境)は、それぞれのメディア・プレーヤ192(例えば、テレビジョン、コンピュータ・システム、オーディオ・システムなどのメディア・プレーヤ192−1,...,メディア・プレーヤ192−M)およびセット・トップ・ボックス194(例えば、セット・トップ・ボックス194−1,...,セット・トップ・ボックス194−M)を含む。コンテンツ・マネージャ105は、ユーザ・ドメイン190に対してリモート・サーバの場所に常駐する。
一実施態様によれば、ユーザ・ドメイン190−1に関連するそれぞれのユーザ(例えば、加入者)は、それぞれのメディア・プレーヤ192−1(例えば、テレビジョン、ビデオ再生装置、音楽再生装置など)で再生されるコンテンツ(例えば、映像および/または音声情報)のストリーミングを制御するために、1つ以上の入力信号196−1(例えば、加入者が操作するハンドヘルド無線リモート制御デバイスなどのデバイスで生成されたナビゲーション制御信号)をそれぞれのセット・トップ・ボックス194−1に提供する。上記実施態様では、それぞれのセット・トップ・ボックス194−1は、ネットワーク150上でそれぞれの加入者から受信した入力制御信号196−1を、ユーザ・ドメイン190に適当なデータを供給する処理を少なくとも部分的に管理するホスト・システム115に送信する。
所与のコンテンツ・ストリームに関してネットワーク150上でそれぞれのユーザ・ドメイン190から受信したコマンド(例えば、再生、停止、早送り、巻き戻しなど)に基づいて、コンテンツ・マネージャ105のホスト・システム115は、メモリ・コントローラ120と通信する。例えば、ホスト・システム115は、ストリーミングするコンテンツのタイトル(または他の一意の識別子)および/または対応するストリーミング対象のコンテンツの位置を、それぞれのセット・トップ・ボックス194に送信できる。
上記のように、メモリ・コントローラ120は、読み出しバッファ124にストリームを一時的に格納するために、メモリ・デバイス145からデータを抽出する動作を管理する。メモリ・コントローラ120は、ホスト・システム115に送信するか、またはホスト・システム115が適当なコンテンツをネットワーク150上でコンテンツ・ストリームを視聴または録画しているそれぞれの加入者にストリーミングできるようにする。ホスト・システム115が読み出しバッファ124内に見つからない(例えば、アクセスの結果、キャッシュ・ミスになって)データのセグメントを検索しようとする場合、メモリ・コントローラ120は、メモリ・デバイス145へのアクセスを開始して、それぞれのコンテンツ・ストリームの要求されたセグメントと他のセグメントとを読み出しバッファ124に転送する。一実施形態では、メモリ・コントローラ120は、コンテンツ・ストリームの新しいセグメントを読み出しバッファ124に格納する必要性を予測でき(データをストリーミングするホスト・システム115が、読み出しバッファ124内に格納されたコンテンツの範囲の最後からデータを送信することの検出に基づいて)、したがって、ホスト・システム115は、それぞれの加入者に途切れない視聴体験を提供することができる。
したがって、各ホーム環境は、それぞれのユーザがネットワーク150上でコンテンツ・マネージャ105との間で受信する(例えば、データをストリーミング)し、送信する(例えば、コマンドを入力する)ことを可能にする比較的簡単なセット・トップ・ボックス194を含むことができる。図示のように、コンテンツ・マネージャ105は、ユーザ要求に応じて多数の非同期データ・ストリームを処理してさまざまな宛先に配信する中央ロケーションのサーバであってもよい。
ネットワーク150上で加入者へのコンテンツのストリーミングを開始する前に、中央マネージャ105は、メモリ・デバイス145へのコンテンツの格納を開始する。例えば、リポジトリ180は、MPEG(Moving Picture Experts Group)フォーマットに従って符号化されたいくつかの映画などのコンテンツのライブラリを含むことができる。リポジトリ180内のコンテンツは、ナビゲーション・ポインタのセットを含んでいてもよいし、含まなくてもよい。含まない場合、コンテンツ・マネージャ105に送信された複数のコンテンツ・ストリーム(例えば、映画)の各々について、図2に示すように、データ・ストリーム・モディファイア109は、対応するコンテンツ・セグメント内にナビゲーション・ポインタのセットを埋め込む。
具体的には、図2は、本明細書に記載する実施形態によるそれぞれのコンテンツ・ストリーム201に挿入されるポインタのセットを示す図である。コンテンツ・ストリーム内のセグメントは、1つ以上の異なるタイプのMPEGフレーム情報(例えば、Iフレーム、Bフレーム、Pフレームなど)を含むことができる。セグメントは、1つ以上の画像グループ(例えば、GOP)であってもよい。
ナビゲーション・ポインタ(例えば、PS1、PS2など)の挿入されたセットなどのメタデータは、前方ポインタ(例えば、FPT1、FPT2、FPT3)および後方ポインタ(例えば、BPT1,BPT2、BPT3など)を含むことができる。例として、リポジトリ180から受信したコンテンツ・ストリーム201は、最初、SEG2、SEG3、SEG4、SEG5などを含むことができる。データ・ストリーム・モディファイア109は、コンテンツ・ストリームの他の場所への前方および後方ポインタを含むコンテンツ・ストリーム202を生成する。したがって、ネットワーク150上でコンテンツ・ストリーム(201または202)を視聴している加入者からさまざまなコマンドを受信すると、ホスト・システム115は、コンテンツの同じセグメントの反復送信(例えば、一時停止コマンドの受信に応答した)、通常の視聴速度でのコンテンツ・ストリームのセグメントのストリーミング(例えば、再生コマンドに基づく)、コンテンツ・ストリームの現在より後のセグメントの送信(例えば、早送りコマンドの受信に基づく)、コンテンツ・ストリームの現在より前のセグメントの送信(例えば、巻き戻しコマンドの受信に基づく)などの動作を実行することができる。
それ故、コンテンツ・ストリーム202内の前方および後方ポインタの1つの目的は、それぞれのユーザがリポジトリ180内に格納されたそれぞれのデータ・ストリームのどの部分をそれぞれのメディア・プレーヤで再生するか制御できるようにすることである。例えば、挿入された前方ポインタ(例えば、FPT1、FPT2、FPT3)および後方ポインタ(例えば、BPT1,BPT2、BPT3)を用いて、それぞれのユーザは、異なる速度で早送りおよび巻き戻し機能などのナビゲーションを実行できる。言い換えれば、加入者が低速の早送りを開始した場合、各セグメント間のFPT1は、それぞれのコンテンツ・ストリーム内の次の隣接フレームに飛ぶ方法を提供する。FPT2は、2セグメント飛び越して後続のセグメントへ移行することを可能にし、高速の早送り速度を提供する。FPT3は、10セグメント飛び越して後続のセグメントへ移行することを可能にし、加入者にとってさらに高速の早送り速度を提供する。後者のFPT2、FPT3のケースでは、加入者は、それぞれコンテンツ・ストリーム202の3番目および10番目ごとのフレーム(例えば、セグメント)を視聴することができる。なお、それぞれのコンテンツ・ストリーム内の後方ポインタ(例えば、BPTは後方へのナビゲーションに使用できる)も同様である。
図1を再度参照すると、データ・ストリーム・モディファイア109は、挿入されたナビゲーション・ポインタ・セットを含むコンテンツ・ストリーム202をホスト・システム115に提供する。ホスト・システム115は、次に、書き込みバッファ122へのコンテンツ・ストリーム202の格納を開始する。書き込みバッファ122内に格納されたコンテンツ・ストリーム202のある部分(例えば、1つ以上のセグメントおよびそれに対応するポインタ)がしきい値を超えたことを検出すると、メモリ・コントローラ120は、書き込みバッファ内のコンテンツ・ストリーム202の上記部分のメモリ・デバイス145への格納を開始する。
転送開始のしきい値は、メモリ・デバイス145への書き込みのブロック・サイズに少なくとも部分的に基づくことができる。例えば、一実施形態では、コンテンツ・マネージャ105は、コンテンツ・ストリーム202と他の同様のコンテンツ・ストリームを格納するフラッシュ・メモリ・デバイスのアレイを含むことができる。メモリ・デバイスのアレイ145は、メモリへの指定した数のデータ・バイトの書き込みを要求できる。書き込みバッファ122が特定のコンテンツ・ストリームの指定した数のバイトを超えるバイト数を含む時には、書き込みバッファ122からメモリ・デバイス145へ特定のコンテンツを転送することができる。
メモリ・デバイス145内に格納されたコンテンツ・ストリーム202は、1人または複数の加入者に配信できる。この例に関しては、環境190−1のそれぞれのユーザが入力196−1(例えば、リモート制御デバイスを介したコマンド)を生成して、読み出しバッファ124からストリーミングされたコンテンツに関連する現在の視聴ポイントを早送りする。データ・ストリーム・マネージャ105、より具体的には、ホスト・システム115は、ネットワーク150上でこのコマンドを受信し、その後、それぞれのコンテンツ・ストリーム(読み出しバッファ124から受信した)内の前方ポインタを用いて前方にジャンプし、ネットワーク150上で、データ・ストリーム140内の異なる場所から上記ユーザへデータをストリーミングする。前述したように、前方ポインタFPT1は、早送りの第1の速度を使用可能にし、前方ポインタFPT2は、早送りの第2の速度を使用可能にし、前方ポインタFPT3は、早送りの第3の速度を使用可能にし、以下同様である。一実施形態では、ネットワーク150は、インターネット、ワイド・エリア・ネットワーク、ローカル・エリア・ネットワークなどのネットワークを表す。したがって、データ・ストリーム・マネージャ105−1は、環境190などの複数の異なる場所へのデータのストリーミングを管理する中央の場所として動作する。
ホスト・システム115は、読み出しバッファ124からコンテンツ・ストリーム202を受信できるが、ホスト・システム115は、コンテンツ・ストリーム202からナビゲーション・ポインタを取り除き、元のMPEGデータのみをユーザに送信できる。上記実施形態では、ホスト・システム115は、加入者から受信したそれぞれのコマンドに基づいて上記のナビゲーション・ポインタを用いて適当なコンテンツをストリーミングする。
図3は、本明細書に記載する実施形態のコンテンツ格納および配信システムの一例を示す図である。この例示的実施形態では、図1に従って、メモリ・コントローラ120は、書き込みバッファ122からフラッシュ・メモリ・デバイスのアレイ345へのコンテンツの転送とフラッシュ・メモリ・デバイスのアレイ345内のコンテンツの読み出しバッファ124(例えば、キャッシュ)への転送との間で調整を行う。図3に示すように、読み出しバッファ124は、ネットワーク150上でホスト・システム115を通ってそれぞれの加入者にストリーミングされるコンテンツの複数の部分(例えば、映画全体ではなく上記の複数のセグメント)を格納する複数の格納領域324(例えば、領域324−1,...,324−M)に分割することができる。例えば、読み出しバッファ124の領域324−1は、ユーザ・ドメイン190−1にストリーミングされるコンテンツを格納でき、読み出しバッファ124の領域324−Mは、ユーザ・ドメイン190−Mにストリーミングされるコンテンツを格納でき、以下同様である。
メモリ・コントローラ120は、それぞれの加入者にあらかじめセグメントを送信した後で、フラッシュ・メモリ・デバイスのアレイ345内に格納されたセグメントの次のセットを領域324に転送する(順方向または逆方向に)。一実施形態では、ホスト・システム115は、必要に応じて領域324を新しいデータで更新する要求を生成し、加入者へのデータの連続的なストリーミングをサポートする。別の方法としては、メモリ・コントローラ120は、所与の領域についてストリーム・データの現在のセグメントの位置を監視し、必要に応じて、フラッシュ・メモリ・デバイスのアレイ345内に格納されたコンテンツの後続セグメントを読み出しバッファ124の対応する領域に転送することで、読み出しバッファ124内の全領域を更新する。
それ故、本明細書に記載する実施形態は、フラッシュ・メモリ・デバイスのアレイ345を維持してそれぞれの加入者による再生を連続的な方法で再生可能な映像データの1つ以上の論理グループを格納する動作と、読み出しバッファ124(例えば、RAMベースの記憶装置)の部分を割り当てて、ネットワーク150上でさまざまなそれぞれの宛先にストリーミングする映像データの1つ以上の論理グループのさまざまな対応するセグメントを格納する動作と、読み出しバッファ内の現在のセグメントがそれぞれの宛先にホスト・システム115によってストリーミングされる間、映像データの1つ以上の論理グループのそれぞれの新しいセグメントに領域324(例えば、RAMベースの記憶装置の部分)を更新する動作とをサポートする。
一実施形態では、配信システム300は、フラッシュ・メモリ・デバイス380−1、フラッシュ・メモリ・デバイス380−2,...,フラッシュ・メモリ・デバイス380−Jを含むフラッシュ・メモリ・デバイス(例えば、NAND技術に基づく)のアレイ345を含む。フラッシュ・メモリ・デバイスのアレイ345は、64個のDIMM(デュアル・インライン・メモリ・モジュール)を含むことができる。各DIMMは、8個の(32ギガバイトの)フラッシュ・メモリ・デバイスを搭載することができる。メモリ・コントローラ120は、コンテンツをストライピングされたデータとしてフラッシュ・メモリ・デバイスのアレイ345内に格納する。
一般に、メモリ・コントローラ120は、単一のバイトにアクセスする代わりにフラッシュ・メモリ・デバイスのアレイ345のデータ・ブロック(例えば、複数のバイト)にアクセスする。ブロック・サイズは、各フラッシュ・メモリ・デバイスからのデータの2キロバイト(すなわち、ページ)と指定できる。フラッシュ・メモリ・デバイスのアレイ345内に512のフラッシュ・メモリ・デバイス(例えば、複数のDIMMの各々について64×8のフラッシュ・デバイス)があると仮定すると、フラッシュ・メモリ・デバイスのアレイ345への1回のアクセスは、1メガバイト以上のデータを含むことができる。
フラッシュ・メモリ・デバイスのアレイ345から読み出しバッファ124内の領域324への上記大量のデータの転送には、長い時間がかかり、また、特に読み出しバッファ124が多数の異なる加入者にストリーミングするコンテンツを格納している場合、読み出しバッファ124のサイズが超特大であることが必要である。これらの問題の一方または両方を緩和するため、メモリ・コントローラ120は、それぞれのアクセスをブロック全体より少ない回数で打ち切ることができる。言い換えれば、フラッシュ・メモリ・デバイスのアレイ345の指定アドレスからの読み出し動作を実行し、途中で打ち切ることができる。これによって、フラッシュ・メモリ・デバイス345のメモリ・サブシステム・アレイは、読み出しデータの粒度を改善すると同時にフラッシュ・メモリ・デバイスのアレイ345のアクセス対象データのページ全体を終了しないことで読み出し動作を実行する時間を削減することができる。NANDベースのフラッシュ・メモリ・デバイスは、読み出しの打ち切りをサポートし、本明細書に記載する一実施形態で使用できる。
メモリ・コントローラ120は、それぞれのブロック・アクセスを開始し、フラッシュ・メモリ・デバイスのアレイ345からのデータ読み出しのバースト・サイズを25%に設定することができる。ブロック・アクセスのブロック読み出し段階では、フラッシュ・メモリ・デバイスのアレイ345内のデータが利用可能になると(例えば、メモリ・デバイスの対応するセンス増幅器から読み出せるようになると)、メモリ・コントローラ120は、利用可能なデータ・ブロックの一部(例えば、この例では、25%)にだけアクセスする。それ故、この例に関しては、メモリ・コントローラ120は、フラッシュ・メモリ・デバイスのアレイ345の各フラッシュ・メモリ・デバイスから利用可能な2キロバイトのデータにアクセスすることはない。代わりに、メモリ・コントローラ120は、読み出しバッファ124の適当な領域に転送するフラッシュ・デバイスあたり2キロバイトの4分の1(例えば、512バイト)だけにアクセスして転送する。バースト・サイズを25%に設定したことに基づいて、メモリ・コントローラ120は、フラッシュ・メモリ・デバイスのアレイ345から利用可能な1メガバイトの4分の1(例えば、512のフラッシュ・メモリ・デバイスにわたってストライピングされた)を転送する。したがって、本明細書に記載する実施形態は、フラッシュ・メモリ・デバイスのアレイ345のデータ・ブロックの読み出しを開始するステップと、メモリ・デバイスのアレイからデータ・ブロックが検索可能になった後に、データ・ブロックをすべて検索する代わりに読み出しを打ち切ってデータ・ブロックの一部だけを検索するステップと、データ・ブロックの検索した部分を、それぞれの加入者宛先にデータ・ブロックの上記部分をオンデマンドでストリーミングするために割り当てられた読み出しバッファ124の領域324内に格納するステップとを含むことができる。本明細書に記載する手順は、メモリ・サブシステム全体の処理能力を制限するが設計は実際的になる。バッファ・サイズと処理能力全体とが引き換えになる。
コンテンツをフラッシュ・メモリ・デバイスのアレイ345に書き込みをする際、旧データを消去してからフラッシュ・メモリ・デバイスのアレイ345に新データを書き込むことが必要になる場合がある。メモリ・デバイスのアレイ345から読み出しバッファ124へのデータの転送と、書き込みバッファ122からフラッシュ・メモリ・デバイスのアレイ345へのデータの転送とを使用可能にする間に、メモリ・コントローラ120は、フラッシュ・メモリ・デバイスのアレイ345内に格納されたデータを修正できる修正モードを使用可能にすることができる。例えば、メモリ・コントローラ120は、メモリ・デバイスのアレイ345内の指定位置に格納するデータの新しいページを受信できる。新しいページの受信に応答して、メモリ・コントローラ120は、新しいページで上書きするメモリ・デバイスのアレイ内の上記位置に格納された現在のページを含むある範囲の連続するページを検索する。ローカル・バッファでは、メモリ・コントローラ120は、検索した範囲の複数のページ内の現在のページを新しいページで置き換える。メモリ・コントローラ120は、以前に検索した範囲の連続するページの範囲の消去を開始する。消去後に、修正モードで、メモリ・コントローラ120は、指定位置に書き込まれたページを例外として検索された複数のページの格納を開始する。この例では、新しいページは、旧ページではなく指定位置に書き込まれる。
それ故、本明細書に記載する実施形態は、他のデータ・ページを損失することなく、64ページのブロック内にいくつかのデータ・ページを書き込むことでフラッシュ・メモリ内のデータの効率的な修正をサポートする。例えば、上記の実施形態では、メモリ・コントローラ120は、バッファ内に64ページを読み込むことができ、アクセスした64ページのブロックを消去し、フラッシュ・メモリ・デバイスのアレイ345にブロックを書き戻すために任意の新しいページを旧ページと組み合わせることができる。
図4は、本明細書に記載する実施形態による1つ以上の処理機能(例えば、メモリ・コントローラ処理機能)を実施するアーキテクチャの例を示す図である。例えば、図示のように、コンテンツ・マネージャ105は、本明細書に記載する実施形態を実行するプロセッサ313およびそれに対応するソフトウェア・コード(例えば、メモリ・コントローラ・アプリケーション120−2)を含むそれぞれのコンピュータ・システム内に実施できる。前述したように、図4に示す実施形態の代替形態として、メモリ・コントローラ120およびコンテンツ・マネージャ105は、論理ゲート、バッファなどのハードウェア構成要素、または両方のタイプの適したハードウェアおよびソフトウェア・リソースの組み合わせによって実施できる。
図4に示すように、この例のコンテンツ・マネージャ105(例えば、コンピュータ・システム)は、メモリ・システム312と、プロセッサ313と、入出力インタフェース314とを結合するインターコネクト311を含む。入出力インタフェース314によって、コンテンツ・マネージャ105は、書き込みバッファ122、メモリ・デバイス145、読み出しバッファ124、およびホスト・システム115にアクセスし、および/またはそれらと通信することができる。
メモリ・システム312は、書き込みバッファ122とメモリ・デバイス145との間のデータ転送、メモリ・デバイス145と読み出しバッファ124との間のデータ転送を調整し、ホスト・システム115と通信する機能をサポートするメモリ・コントローラ・アプリケーション120−1によって符号化される。メモリ・コントローラ・アプリケーション120−1は、本明細書に記載するさまざまな実施形態の処理機能をサポートするデータおよび/または論理命令などのソフトウェア・コード(例えば、メモリ内、またはディスクなどの別のコンピュータ可読媒体上に格納されたコード)として実施することができる。動作時に、プロセッサ313は、インターコネクト311を介してメモリ・システム312にアクセスして、メモリ・コントローラ・アプリケーション120−1の論理命令を起動し、ランさせ、実行し、解釈し、または他の処理を実行する。メモリ・コントローラ・アプリケーション120−1の実行によってメモリ・コントローラ・プロセス120−2内に処理機能が生成される。言い換えれば、メモリ・コントローラ・プロセス120−2は、図1に関して説明したメモリ・コントローラの1つ以上の部分を表す。
図4に示すコンピュータ・システム内で実行されるメモリ・コントローラ・アプリケーション120−1は、メモリ・コントローラ・アプリケーション120−1および/またはメモリ・コントローラ・プロセス120−2のいずれか一方または両方によって表すことができることに留意されたい。この説明のために、一般に、メモリ・コントローラ120は、本明細書に記載する技術を実行するさまざまなステップおよび機能動作を実行またはサポートする存在として参照される。
また、本明細書内の構成例は、メモリ・コントローラ・アプリケーション120−1自体(すなわち、未実行または非実行中の論理命令および/またはデータ)を含むことに留意されたい。メモリ・コントローラ・アプリケーション120−1は、コンピュータ可読媒体、ハード・ディスク、または光媒体上に格納できる。また、メモリ・コントローラ・アプリケーション120−1は、ファームウェア、読み出し専用メモリ(ROM)などのメモリ・システム312内に格納でき、または、この例のように、ランダム・アクセス・メモリ(RAM)などの実行可能なコードとして格納できる。なお、これらの実施形態に加えて、本明細書内の他の実施形態は、メモリ・コントローラ・プロセス120−2としてプロセッサ313内でのメモリ・コントローラ・アプリケーション120−1の実行を含むことに留意されたい。それ故、当業者には明らかなように、データ通信デバイスは、本明細書に記載する機能を実行する他のプロセスおよび/またはソフトウェアおよびハードウェア構成要素を含むことができる。
図5は、本明細書に記載する実施形態によるフラッシュまたは他のタイプのメモリ・デバイス145を用いたコンテンツの配信を容易にする技術を示す流れ図500である。図5を図1〜4に関する上記実施形態に関連して説明する。なお、上記のように、メモリ・コントローラ120および関連する機能は、ハードウェアおよび/またはソフトウェアで実施することができることに留意されたい。
ステップ510で、メモリ・コントローラ120は、コンテンツ・ストリーム202などのコンテンツ・ストリームの特定の部分を求める要求を受信する。
ステップ520で、要求に応答して、メモリ・コントローラ120は、メモリ・デバイス145(例えば、フラッシュ・メモリ・デバイスのアレイ)のデータ・ブロック(例えば、複数のデータ・バイト)へのアクセスを開始する。メモリ・コントローラ120がアクセスするデータ・ブロックは、ホスト・システム115が要求するコンテンツ・ストリーム202の特定の部分と、コンテンツ・ストリームのそれに対応する隣接部分とを含むことができる。言い換えれば、ホスト・システム115は、メモリ・デバイス145内のコンテンツ・ストリーム202のセグメントSEG100を要求することができる。要求に応答して、ホスト・システム115は、読み出しバッファ122内に格納するSEG100のみの検索とネットワーク150を介して対応する加入者への将来の送信を要求しているが、メモリ・コントローラ120は、メモリ・デバイス145のSEG100〜SEG150を含むデータ・ブロックへのアクセスを開始できる。
ステップ530で、メモリ・コントローラ120は、ユーザ・ドメイン190−1の加入者などのそれぞれの宛先へのオンデマンド・ストリーミングのために、アクセスしたデータ・ブロック(例えば、SEG100〜SEG112)の全部(例えば、SEG100〜SEG150)または一部(例えば、アクセスを打ち切る場合には、25%)を読み出しバッファ124に格納する。ステップ540で、メモリ・コントローラ120は、ホスト・システム115を通したそれぞれの加入者宛先への要求によって指定されるコンテンツ・ストリームの特定部分の送信を開始する。
図6および図7は、組み合わせて、本明細書に記載する実施形態のデータ転送およびデータ配信を調整する技術を示す流れ図600(例えば、流れ図600−1および流れ図600−2)を形成する。
図6の流れ図600−1のステップ610で、メモリ・コントローラ120は、メモリ・デバイス145内に格納されたコンテンツ・ストリーム202などのコンテンツ・ストリームの特定部分を求める要求をホスト・システム115から受信する。ホスト・システム115からの要求は、加入者がコンテンツ・ストリームを視聴するコマンドをホスト・システム115に送信したことに応答して生じる。一実施形態では、加入者は、メモリ・デバイス145内に格納されたコンテンツのリストからコンテンツ・ストリーム(例えば、映画)を選択する。
ステップ615で、第1の要求の受信に応答して、メモリ・コントローラ120は、(フラッシュ・ベースのアレイ)メモリ・デバイス145からのデータ・ブロック(例えば、複数のデータ・バイト)へのアクセスを開始する。アクセスするデータ・ブロックは、メモリ・コントローラ120が要求したコンテンツ・ストリームの特定部分と、加入者が視聴するためにホスト・システム115から送信されるコンテンツ・ストリームの対応する隣接部分とを含む。
ステップ615に関連するサブステップ620で、メモリ・コントローラ120は、フラッシュ・メモリ・デバイスのアレイ145からのデータ・ブロックの読み出しを開始する。
ステップ615に関連するサブステップ625で、データ・ブロックをメモリ・デバイス145から検索できるようになった後で、メモリ・コントローラは、メモリ・デバイス145からのデータのそれぞれの読み出しを打ち切り、メモリ・デバイス145から全データ・ブロックを検索する代わりにデータ・ブロックの一部(例えば、データ・ブロックの25%)を検索する。言い換えれば、前述したように、メモリ・コントローラ120は、メモリ・コントローラ120が実際に読み出しバッファ124に送信するよりも大きいデータ・ブロックをメモリ・デバイスに要求できる。これは、メモリ・デバイス145内のデータを読み出しバッファ124に転送するための追加のアクセス回数を必要とすることがある。しかし、読み出しバッファ124に転送し格納するデータ部分を少なくすることで読み出しバッファ124を実施するために使用する必要のあるRAMベースの記憶装置の容量は低減される。
ステップ630で、メモリ・コントローラ120は、ユーザ・ドメイン190などのそれぞれの宛先にオンデマンドでストリーミングするために、メモリ・デバイス145からのアクセスしたデータ・ブロックの少なくとも一部を読み出しバッファ124に格納する。
ステップ635で、メモリ・コントローラ120は、ホスト・システム115を通したそれぞれの加入者宛先への要求によって指定されるコンテンツ・ストリームの特定部分の送信を開始する。
ステップ640で、メモリ・コントローラ120は、コンテンツ・ストリーム202の異なるまたは別の部分を求める別の要求(例えば、第2の要求)を受信する。
ステップ645で、メモリ・コントローラ120は、読み出しバッファからホスト・システム115へのコンテンツの新たに要求された部分の送信を開始する。この場合、読み出しバッファ124は、ホスト・システム115が要求したコンテンツ・セグメントをたまたま現在格納しているので、キャッシュ・ヒット(例えば、読み出しバッファ124がキャッシュである)が発生する。
ステップ650で、メモリ・デバイス145から読み出しバッファ124へデータを移動する上記の転送動作を使用可能にする一方で、メモリ・コントローラ120は、メモリ・デバイスのアレイ145に最終的に格納される受信データを一時的に格納するために書き込みバッファ122を維持する。
ステップ655で、書き込みバッファ122内の受信データがしきい値を超えたことの検出に応答して、メモリ・コントローラ120が、i)メモリ・デバイスのアレイ145から読み出しバッファ124へのデータ・アクセス(転送)を使用不可にし、ii)書き込みバッファ124内に格納された受信データ(ナビゲーション・ポインタのセットを含む、または含まない)のメモリ・デバイスのアレイ145への転送を開始し、iii)転送時に、加入者が中断しないで映画を視聴できるように、読み出しバッファ124からそれぞれの宛先への1つ以上のコンテンツ・ストリームのストリーミングを使用可能にし、iv)転送後に、メモリ・デバイスのアレイ145内に格納されたデータの読み出しバッファ124への転送を再度使用可能にする。
上記のように、本明細書に記載する技術は、フラッシュ・ベースのメモリ・デバイス内に格納されたコンテンツの配信などの用途で使用するのに適している。しかし、本明細書に記載する構成は、上記用途での使用に限定されず、それ故、本明細書に記載する構成およびその変形は他の用途にも十分適していることに留意されたい。
以上、好ましい実施形態に関して本発明を具体的に示し、説明してきたが、当業者であれば、添付の特許請求の範囲に記載する本発明の精神および範囲を逸脱することなしに本発明の形式および詳細をさまざまに変更することができることは明らかであろう。上記変更は本発明の範囲内に入るものとする。したがって、本発明の上記説明は、限定的なものではない。逆に、本発明の実施形態の任意の限定は、特許請求の範囲に記載されている。
本明細書に記載する実施形態の例示的なコンテンツ・マネージャを示す図。 本明細書に記載する実施形態の未来および過去のセグメントをポイントするポインタの複数のセットを含む例示的なデータ・ストリームを示す図。 本明細書に記載する実施形態のバッファリング・ストリーム・コンテンツの一例を示す図。 本明細書に記載する実施形態のメモリ・コントローラの例示的なアーキテクチャを示す図。 本明細書に記載する実施形態のコンテンツをバッファリングおよび配信する技術を示す流れ図。 組み合わせて、本明細書に記載する一実施形態のコンテンツをバッファリングおよび配信する技術のより具体的な技術を示す流れ図。 組み合わせて、本明細書に記載する一実施形態のコンテンツをバッファリングおよび配信する技術のより具体的な技術を示す流れ図。

Claims (23)

  1. コンテンツ・ストリームの特定部分を求める第1の要求を受信するステップと、
    同第1の要求の受信に応答して、メモリ・デバイスのアレイからデータ・ブロックへのアクセスを開始するステップであって、同データ・ブロックは前記コンテンツ・ストリームの前記特定部分および前記コンテンツ・ストリームの対応する隣接部分を含むステップと、
    それぞれの宛先へのオンデマンド・ストリーミングのために、読み出しバッファ内に前記アクセスしたデータ・ブロックの少なくとも一部を格納するステップと、
    前記それぞれの宛先へ、前記コンテンツ・ストリームの特定部分の送信を開始するステップと、
    を含む方法。
  2. 前記メモリ・デバイスのアレイから前記データ・ブロックへのアクセスを開始するステップが、前記第1の要求によって指定されたデータよりも多いデータを前記メモリ・デバイスのアレイから検索するステップを含み、
    前記データ・ブロックの少なくとも一部を格納するステップが、前記第1の要求によって指定されたデータよりも多い、前記読み出しバッファ内のメモリ・デバイスのアレイから検索されたデータ、を格納するステップを含む請求項1に記載の方法。
  3. 前記コンテンツ・ストリームの異なる部分を求める第2の要求を受信するステップと、
    前記読み出しバッファのコンテンツの前記異なる部分の送信を開始するステップであって、前記コンテンツ・ストリームの前記異なる部分が、前記読み出しバッファ内に格納された前記データ・ブロックの部分に含まれるステップと、をさらに含む請求項2に記載の方法。
  4. 前記メモリ・デバイスのアレイから前記データ・ブロックへの前記アクセスを開始するステップが、
    前記メモリ・デバイスのアレイの前記データ・ブロックの読み出しを開始するステップと、
    前記メモリ・デバイスのアレイから前記データ・ブロックが検索可能になった後に、前記データ・ブロックをすべて検索する代わりにそれぞれの読み出しを打ち切って前記データ・ブロックの一部を検索するステップと、
    前記データ・ブロックの前記部分を前記読み出しバッファに格納するステップと、
    を含む請求項3に記載の方法。
  5. 前記メモリ・デバイスのアレイから前記データ・ブロックへのアクセスを開始するステップが、
    前記メモリ・デバイスのアレイから前記データ・ブロックの読み出しを開始するステップと、
    前記メモリ・デバイスのアレイから前記データ・ブロックが検索可能になった後に、前記データ・ブロックをすべて検索する代わりに、前記読み出しを打ち切って前記データ・ブロックの一部を検索するステップと、
    前記データ・ブロックの前記部分を、それぞれの宛先への前記データ・ブロックの前記部分のオンデマンドのストリーミングのために割り当てられた読み出しバッファの領域内に格納するステップと、
    を含む請求項1に記載の方法。
  6. 前記メモリ・デバイスのアレイから前記読み出しバッファへのデータ転送を使用可能にする一方で、前記メモリ・デバイスのアレイに最終的に格納される受信データを一時的に格納するために書き込みバッファを維持するステップと、
    前記受信データがしきい値を超えたことの検出に応答して、
    i)前記メモリ・デバイスのアレイから前記読み出しバッファへのデータ・アクセスを使用不可にするステップと、
    ii)前記書き込みバッファ内に格納された前記受信データの前記メモリ・デバイスのアレイへの転送を開始するステップと、
    iii)前記転送時に、前記読み出しバッファ内の前記コンテンツ・ストリームの特定部分をそれぞれの宛先にストリーミングするステップと、
    iv)前記転送後に、前記メモリ・デバイスのアレイ内に格納されたデータの読み出しバッファへの転送を再度使用可能にするステップと、
    をさらに含む請求項1に記載の方法。
  7. 前記メモリ・デバイスのアレイからデータの前記読み出しバッファへの転送を使用可能にするステップの間に、前記メモリ・デバイスのアレイ内に格納された前記データを修正できる修正モードを使用可能にするステップと、
    前記メモリ・デバイスのアレイ内のそれぞれの位置に格納する新しいページを受信するステップと、
    前記メモリ・デバイスのアレイ内の前記位置に格納された現在のページを含むある範囲の複数のページを検索するステップと、
    前記検索した範囲の複数のページ内の現在のページを前記新しいページで置き換えるステップと、
    前記修正モードで、前記新しいページが前記メモリ・デバイスのアレイ内の前記それぞれの位置に格納されるように、前記メモリ・デバイスのアレイへの前記新しいページを含む複数のページの格納を開始するステップと、
    をさらに含む請求項1に記載の方法。
  8. 前記メモリ・デバイスのアレイへの前記新しいページを含む複数のページの格納を開始するステップが、前記メモリ・デバイスのアレイから前記現在のページを含む複数のページを消去するステップを含む請求項7に記載の方法。
  9. 前記データ・ブロックへの前記アクセスを開始するステップが、格納したデータの複数のバイトへのブロック・アクセスをサポートするフラッシュ・メモリ・デバイスのアレイにアクセスするステップを含む請求項1に記載の方法。
  10. 前記アクセスしたデータ・ブロックの少なくとも一部を格納するステップが、前記アクセスしたデータ・ブロックの一部をRAMベースの(ランダム・アクセス・メモリ・ベースの)記憶装置に格納するステップを含む請求項9に記載の方法。
  11. 前記フラッシュ・メモリ・デバイスのアレイを維持して連続的な方法で再生が可能な映像データの少なくとも1つの論理グループを格納するステップと、
    ネットワークを介したさまざまなそれぞれの宛先へのストリームのために映像データの前記少なくとも1つの論理グループのさまざまな対応するセグメントを格納するRAMベースの記憶装置の部分を割り当てるステップと、
    前記さまざまな対応するセグメントが前記それぞれの宛先にストリーミングされている間に、前記RAMベースの記憶装置の前記部分を映像データの少なくとも1つの論理グループのそれぞれの新しいセグメントに更新するステップと、
    をさらに含む請求項10に記載の方法。
  12. 選択および貼り付け動作をサポートするコンピュータ・システムであって、
    プロセッサと、
    前記プロセッサによって実行されるアプリケーションに関連する命令を格納するメモリ・ユニットと、
    前記プロセッサと前記メモリ・ユニットを結合するインターコネクトであって、前記コンピュータ・システムが前記アプリケーションを実行し、
    コンテンツ・ストリームの特定部分を求める第1の要求を受信する動作と、
    前記第1の要求の受信に応答して、メモリ・デバイスのアレイからデータ・ブロックへのアクセスを開始する動作であって、前記コンテンツ・ストリームの前記特定部分および前記コンテンツ・ストリームの対応する隣接部分を含む動作と、
    それぞれの宛先へのオンデマンド・ストリーミングのために読み出しバッファ内に前記アクセスしたデータ・ブロックの少なくとも一部を格納する動作と、
    前記それぞれの宛先への前記コンテンツ・ストリームの前記特定部分の送信を開始する動作と、
    を実行できるようにするインターコネクトと、
    を備えるコンピュータ・システム。
  13. 前記メモリ・デバイスのアレイから前記データ・ブロックへのアクセスを開始する動作が、前記第1の要求によって指定されたデータよりも多くのデータを前記メモリ・デバイスのアレイから検索する動作を含み、
    前記データ・ブロックの少なくとも一部を格納する動作が、前記第1の要求によって指定されたデータよりも多くの、記読み出しバッファ内の前記メモリ・デバイスのアレイから検索したデータ、を格納する動作を含む請求項12に記載のコンピュータ・システム。
  14. 前記コンテンツ・ストリームの異なる部分を求める第2の要求を受信する動作と、
    前記読み出しバッファのコンテンツの前記異なる部分の送信を開始する動作であって、前記コンテンツ・ストリームの前記異なる部分が、前記読み出しバッファ内に格納された前記データ・ブロックの前記部分に含まれる動作と、
    をさらにサポートする請求項13に記載のコンピュータ・システム。
  15. 前記メモリ・デバイスのアレイから前記データ・ブロックへの前記アクセスを開始する動作が、
    前記メモリ・デバイスのアレイから前記データ・ブロックの読み出しを開始する動作と、
    前記メモリ・デバイスのアレイから前記データ・ブロックが検索可能になった後に、前記データ・ブロックをすべて検索する代わりに、前記それぞれの読み出しを打ち切って前記データ・ブロックの一部を検索する動作と、
    前記データ・ブロックの前記部分を前記読み出しバッファに格納する動作と、
    を含む請求項14に記載のコンピュータ・システム。
  16. 前記メモリ・デバイスのアレイから前記データ・ブロックへの前記アクセスを開始する動作が、
    前記メモリ・デバイスのアレイから前記データ・ブロックの読み出しを開始する動作と、
    前記メモリ・デバイスのアレイから前記データ・ブロックが検索可能になった後に、前記データ・ブロックをすべて検索する代わりに、前記読み出しを打ち切って前記データ・ブロックの一部を検索する動作と、
    前記データ・ブロックの前記部分を前記それぞれの宛先への前記データ・ブロックの前記部分の前記オンデマンドのストリーミングのために割り当てられた前記読み出しバッファの領域内に格納する動作と、
    を含む請求項13に記載のコンピュータ・システム。
  17. 前記メモリ・デバイスのアレイから前記読み出しバッファへのデータ転送を使用可能にする一方で、前記メモリ・デバイスのアレイに最終的に格納される受信データを一時的に格納するために書き込みバッファを維持する動作と、
    前記受信データがしきい値を超えたことの検出に応答して、
    i)前記メモリ・デバイスのアレイから前記読み出しバッファへのデータ・アクセスを使用不可にする動作と、
    ii)前記書き込みバッファ内に格納された前記受信データの前記メモリ・デバイスのアレイへの転送を開始する動作と、
    iii)前記転送時に、前記読み出しバッファ内の前記コンテンツ・ストリームの前記特定部分を前記それぞれの宛先にストリーミングする動作と、
    iv)前記転送後に、前記メモリ・デバイスのアレイ内に格納されたデータの前記読み出しバッファへの転送を再度使用可能にする動作と、
    をさらにサポートする請求項13に記載のコンピュータ・システム。
  18. 前記メモリ・デバイスのアレイからデータの前記読み出しバッファへの転送を使用可能にする動作の間に、前記メモリ・デバイスのアレイ内に格納された前記データを修正できる修正モードを使用可能にする動作と、
    前記メモリ・デバイスのアレイ内のそれぞれの位置に格納する新しいページを受信する動作と、
    前記メモリ・デバイスのアレイ内の前記位置に格納された現在のページを含むある範囲の複数のページを検索する動作と、
    前記検索した範囲の複数のページ内の前記現在のページを前記新しいページで置き換える動作と、
    前記修正モードで、前記新しいページが前記メモリ・デバイスのアレイ内の前記それぞれの位置に格納されるように、前記メモリ・デバイスのアレイへの前記新しいページを含む前記複数のページの格納を開始する動作と、
    をさらにサポートする請求項13に記載のコンピュータ・システム。
  19. 前記メモリ・デバイスのアレイへの前記新しいページを含む前記複数のページの格納を開始する動作が、前記メモリ・デバイスのアレイから前記現在のページを含む前記複数のページを消去する動作を含む請求項18に記載のコンピュータ・システム。
  20. 前記データ・ブロックへの前記アクセスを開始する動作が、格納したデータの複数のバイトへのブロック・アクセスをサポートするフラッシュ・メモリ・デバイスのアレイにアクセスする動作を含む請求項13に記載のコンピュータ・システム。
  21. 前記アクセスしたデータ・ブロックの少なくとも一部を格納する動作が、前記アクセスしたデータ・ブロックの前記一部をRAMベースの(ランダム・アクセス・メモリ・ベースの)記憶装置に格納する動作を含む請求項20に記載のコンピュータ・システム。
  22. 前記フラッシュ・メモリ・デバイスのアレイを維持して連続的な方法で再生が可能な映像データの少なくとも1つの論理グループを格納する動作と、
    ネットワークを介したさまざまなそれぞれの宛先へのストリームのために映像データの前記少なくとも1つの論理グループのさまざまな対応するセグメントを格納するRAMベースの記憶装置の部分を割り当てる動作と、
    前記さまざまな対応するセグメントが前記それぞれの宛先にストリーミングされている間に、前記RAMベースの記憶装置の前記部分を映像データの少なくとも1つの論理グループのそれぞれの新しいセグメントに更新する動作と、
    をさらにサポートする請求項21に記載のコンピュータ・システム。
  23. コンテンツ・ストリームの特定部分を求める要求を受信する手段と、
    前記要求の受信に応答して、メモリ・デバイスのアレイからデータ・ブロックへのアクセスを開始する手段であって、前記データ・ブロックが、前記コンテンツ・ストリームの前記特定部分および前記コンテンツ・ストリームの対応する隣接部分を含む手段と、
    それぞれの宛先へのオンデマンド・ストリーミングのために読み出しバッファ内に前記アクセスしたデータ・ブロックの少なくとも一部を格納する手段と、
    前記それぞれの宛先への前記コンテンツ・ストリームの前記特定部分の送信を開始する手段と、
    を備えるシステム。
JP2008005304A 2007-01-12 2008-01-15 データ配信およびバッファリング Active JP4754585B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/652,924 US7924456B1 (en) 2007-01-12 2007-01-12 Data distribution and buffering
US11/652,924 2007-01-12

Publications (2)

Publication Number Publication Date
JP2008234629A true JP2008234629A (ja) 2008-10-02
JP4754585B2 JP4754585B2 (ja) 2011-08-24

Family

ID=39531035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008005304A Active JP4754585B2 (ja) 2007-01-12 2008-01-15 データ配信およびバッファリング

Country Status (5)

Country Link
US (1) US7924456B1 (ja)
JP (1) JP4754585B2 (ja)
KR (1) KR101121479B1 (ja)
CN (1) CN101242520B (ja)
DE (1) DE102008003894B4 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014501075A (ja) * 2011-03-23 2014-01-16 ▲ホア▼▲ウェイ▼技術有限公司 メディアストリーミング方法およびメディアコントローラ

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8964013B2 (en) 2009-12-31 2015-02-24 Broadcom Corporation Display with elastic light manipulator
US9247286B2 (en) 2009-12-31 2016-01-26 Broadcom Corporation Frame formatting supporting mixed two and three dimensional video data communication
CN102136289B (zh) * 2010-12-30 2013-03-13 华为技术有限公司 一种媒体内容的存储方法、读取方法、装置和系统
US8762452B2 (en) * 2011-12-19 2014-06-24 Ericsson Television Inc. Virtualization in adaptive stream creation and delivery
CN102547385A (zh) * 2011-12-29 2012-07-04 深圳市同洲视讯传媒有限公司 一种分布式推流的方法、装置及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172450A (ja) * 1998-09-30 2000-06-23 Toshiba Corp 階層記憶装置及び階層記憶制御方法、並びにデ―タ再生装置及びデ―タ再生制御方法
JP2001521340A (ja) * 1997-10-22 2001-11-06 オラクル・コーポレーション 連続的媒体フィードの継ぎ目のない再生を実現するための方法および装置
EP1283639A1 (en) * 2001-08-10 2003-02-12 Broadbus Technologies, Inc. Methods and apparatus for reproducing prerecorded and live works stored on a server
JP2004040749A (ja) * 2001-11-21 2004-02-05 Broadbus Technologies Inc 大規模メモリバッファから複数のネットワークストリームを生成する方法及び装置
JP2006285809A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストリーミング向け性能保証を行うストレージ装置
WO2006123747A1 (ja) * 2005-05-18 2006-11-23 Nippon Telegraph And Telephone Corporation 分散型マルチメディアサーバシステムおよびマルチメディア情報配信方法ならびにそのプログラムおよび記録媒体

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2146472C (en) * 1994-04-22 2007-10-09 Kevin Elliott Bridgewater Packet video signal inverse transport processor with memory address circuitry
US6067108A (en) * 1996-12-12 2000-05-23 Trw Inc. Solid-state mass storage data stream generator
JP3173418B2 (ja) 1997-04-18 2001-06-04 日本電気株式会社 ストリーム再生制御方式及びプログラムを記録した機械読み取り可能な記録媒体
JP2002540545A (ja) * 1999-03-23 2002-11-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マルチメディアサーバー
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US7096481B1 (en) 2000-01-04 2006-08-22 Emc Corporation Preparation of metadata for splicing of encoded MPEG video and audio
CN1159913C (zh) * 2001-02-13 2004-07-28 中广大正信息科技有限公司 在有线电视单向网上实现视频随选点播的芯片
WO2002087235A1 (en) 2001-04-19 2002-10-31 Vividon, Inc. System for applying metric to multimedia files over network
JP2003060638A (ja) * 2001-08-15 2003-02-28 Sony Corp コンテンツ提供装置及びコンテンツ提供方法
CN1142660C (zh) * 2001-11-06 2004-03-17 四川大学 流式播放视频服务器系统
JP3676330B2 (ja) 2002-08-09 2005-07-27 エヌ・ティ・ティ・コムウェア株式会社 コンテンツ配信サーバ及びコンテンツ配信方法ならびにプログラム
WO2004095201A2 (en) 2003-04-09 2004-11-04 Intervideo Inc. Systems and methods for caching multimedia data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001521340A (ja) * 1997-10-22 2001-11-06 オラクル・コーポレーション 連続的媒体フィードの継ぎ目のない再生を実現するための方法および装置
JP2000172450A (ja) * 1998-09-30 2000-06-23 Toshiba Corp 階層記憶装置及び階層記憶制御方法、並びにデ―タ再生装置及びデ―タ再生制御方法
EP1283639A1 (en) * 2001-08-10 2003-02-12 Broadbus Technologies, Inc. Methods and apparatus for reproducing prerecorded and live works stored on a server
JP2004040749A (ja) * 2001-11-21 2004-02-05 Broadbus Technologies Inc 大規模メモリバッファから複数のネットワークストリームを生成する方法及び装置
JP2006285809A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストリーミング向け性能保証を行うストレージ装置
WO2006123747A1 (ja) * 2005-05-18 2006-11-23 Nippon Telegraph And Telephone Corporation 分散型マルチメディアサーバシステムおよびマルチメディア情報配信方法ならびにそのプログラムおよび記録媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014501075A (ja) * 2011-03-23 2014-01-16 ▲ホア▼▲ウェイ▼技術有限公司 メディアストリーミング方法およびメディアコントローラ
US9491212B2 (en) 2011-03-23 2016-11-08 Huawei Technologies Co., Ltd. Method for streaming media and media controller

Also Published As

Publication number Publication date
KR101121479B1 (ko) 2012-02-28
DE102008003894A1 (de) 2008-07-24
DE102008003894B4 (de) 2021-07-29
JP4754585B2 (ja) 2011-08-24
CN101242520B (zh) 2012-04-04
CN101242520A (zh) 2008-08-13
KR20080066625A (ko) 2008-07-16
US7924456B1 (en) 2011-04-12

Similar Documents

Publication Publication Date Title
US10405048B2 (en) Methods and apparatus for supporting VOD requests in a system with hierarchical content stores
US7640274B2 (en) Distributed storage architecture based on block map caching and VFS stackable file system modules
KR102047495B1 (ko) 클라이언트에서 캐시를 이용하여 서버의 멀티 미디어 컨텐트를 스트리밍 재생하는 방법 및 이를 위한 장치
US5852705A (en) Method and apparatus for guaranteeing average case disk transfer bandwidth and seek time for a video server
JP4754585B2 (ja) データ配信およびバッファリング
US8578431B2 (en) Adaptive timeshift service
KR102274466B1 (ko) 실시간 캐싱 기법을 이용한 동영상 스트리밍 방법 및 그 시스템
JP2008262686A (ja) 同報通信データを記録するための方法、および、装置
US20070294500A1 (en) Methods and system to provide references associated with data streams
JP4827376B2 (ja) 記憶装置キャッシュメモリマネージメント
JP2005513645A6 (ja) 記憶装置キャッシュメモリマネージメント
JP6529577B2 (ja) 情報指向ネットワーキング(icn)ルータ
JP2005513646A (ja) 記憶装置
KR100673093B1 (ko) 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한리얼타임 멀티미디어 파일 재생 방법
KR101295455B1 (ko) 동영상 파일의 분할저장 재생기법을 이용한 VoD 버퍼링방법 및 그 시스템
US20240340467A1 (en) Techniques for caching media content when streaming live events
KR20060122250A (ko) 스트리밍 서비스 방법
KR20040074805A (ko) 스트리밍 서비스 방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101214

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110114

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110119

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110214

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110525

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

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4754585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250