JP2004040749A - 大規模メモリバッファから複数のネットワークストリームを生成する方法及び装置 - Google Patents
大規模メモリバッファから複数のネットワークストリームを生成する方法及び装置 Download PDFInfo
- Publication number
- JP2004040749A JP2004040749A JP2002338393A JP2002338393A JP2004040749A JP 2004040749 A JP2004040749 A JP 2004040749A JP 2002338393 A JP2002338393 A JP 2002338393A JP 2002338393 A JP2002338393 A JP 2002338393A JP 2004040749 A JP2004040749 A JP 2004040749A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory device
- stream
- streams
- scale memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims description 19
- 239000000872 buffer Substances 0.000 title abstract description 29
- 230000009977 dual effect Effects 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 230000006854 communication Effects 0.000 abstract description 17
- 238000004891 communication Methods 0.000 abstract description 16
- 238000012546 transfer Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002459 sustained effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000036632 reaction speed Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Images
Classifications
-
- 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/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21815—Source of audio or video content, e.g. local disk arrays comprising local storage units
-
- 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/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
-
- 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/2389—Multiplex stream processing, e.g. multiplex stream encrypting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Communication Control (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
【解決手段】このネットワークでは、データ通信のために1つ以上のプロトコルが使用されており、それぞれのネットワークにあわせて、トランスポートプロトコルスタックが生成される。このスタックは、ハードウェアで生成されているため、大幅なスループット改善と、生成できるストリーム数の増加が可能になる。プロトコルスタックをハードウェアで生成するので、広域データバスと広域アドレスバスを使用することができ、その結果、大規模メモリアレイからのスループットをより高速で行えるようにすることができる。複数のプロトコルスタックジェネレータが同じメモリブロックにアクセスすることで、多くのストリームを大規模メモリバッファアレイにあるコンテンツからのシングルコピーで生成することができるようになる。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、マルチプルネットワークプロセッサ又はアウトプットストリーム用プロセッサを、大規模な単一メモリアレイに接続するための方法と装置に関する。特に、大規模な単一メモリアレイから、ハードウェアであるネットワークプロセッサやストリームのための通信プロトコルを生成するストリームプロセッサを使用して、複数のネットワークに接続する方法と装置に関する発明である。上述の装置は、ストリームプロセッサのメモリアレイへのアクセスを制御する。
【0002】
【発明の背景】
複数のネットワークプロセッサ間で、大容量のメモリアレイを共用することで、複数の出力情報が媒体からのシングルコピーで生成できるようになり、データ(対象となるコンテンツ)の複写をしなくても、異なる間隔で複数の出力ポートを通して同時に転送できるようになる。メモリバッファが大きくなるほど、より多くのデータや単一のプログラム、ソースマテリアルを格納できる。単一メモリアレーを活用することで、プログラムのシングルコピーで多くの出力を生成することが可能となる。本発明は、特にオーディオやビデオで使用するプログラムサイズが大きく同時にたくさんのデータを再生する必要があるような負荷の高いアプリケーションに有効である。
【0003】
オーディオやビデオ、インターネットサーバ(サーバ群)を開発する場合には、構造上の重要な用件がある。いくつかの設計要素について、考慮すべき要因がある。その一つの要因は、同時に出力するストリームの数や、要求されるペイバックセッションの数である。もう一つの要因は、ストリーミングされる情報のトータルサイズである。3番目の要因は、それぞれのストリーミング出力のデータ転送レート、又は転送ビットレートである。これらの要因を知ることで、対象となる設計構造が具体化する。現在ある高速ネットワークのインターフェースにはたくさんのタイプが存在する。一般的には、これらのインターフェースは、ネットワークコントローラチップとして存在する。これらのネットワークコントローラは、PCやワークステーションなどのコンピュータの中央演算装置(CPU)に適合するようにしてある。PCやワークステーションには、一般的にPCIバス、又は類似の拡張されたインターフェースを持ち、ネットワークコントロールカードやI/Oコントロールカードを接続できるようになっている。上述の拡張バスは、シグナルプロセッサ用に設計されているので、デスクトップコンピュータのシステムで見かける。加えて、コンピュータにはシングルネットワークコントローラのみが含まれている。具体的には、例えばファイルサーバは、複数のネットワークインターフェースを持つが、大抵の場合はインターフェースは2つのみである。ストリーミングサーバを使用する目的は、可能な限り多くのコンテンツを、可能な限り多くのユーザに、可能な限り小さなスペースからスリーミングすることである。しかし、上述の目的のためにコンピュータに追加できるネットワークインターフェースの数には限界がある。
【0004】
CPUはネットワークのトラフィックを発生するソフトウェアの動作を担っている。これは一般的に通信プロトコルスタックと呼ばれる。しかし、CPUのスピードが制限、或いは性能のボトルネックとなる。この制限を克服するために、マルチCPUが使用される。しかし、本発明で対象となるアプリケーションに対して上述の解決策を実施するためには、複数のネットワークインターフェースカードが必要になり、また複数のCPU全てが相互に連結するための、或いはデータ通信するためのバス構造がサーバに必要となる。このボトルネックに対する解決策がいくつか発明されている。
【0005】
図9に、先行技術の実施例を示す。この配置では、CPU902が全てのデータ通信を制御、実行する。データブロックは、信号線911上のCPU902によってストレージデバイス901から取り出され、取り出されたデータブロックは、次に信号線912上のメモリ903に書き込まれる。メモリ903に書き込みが完了すると、CPU902は、ソフトウェアの指示に従って、該当するネットワークのプロトコルパケットを生成し、メモリ903に格納する。プロトコルパケットがメモリ903に格納されると、CPU902は、上記パケットを信号線914上の出力用インターフェース904に移動させる。このデータブロックは、ライン915を通してクライアントデバイスに送信される。
【0006】
最後の要因は、記憶装置に関連する。ストリーミングするペイロードデータは全てサーバが元となっていなければならない。現行のアーキテクチャでは、データはハードディスク装置に格納される。全てのハードディスク装置には、2つの主な制限要因がある。データの継続した転送レートと、シーク時間又はランダムアクセス時間である。継続した通信レートは、継続した状態でデータを装置からどれだけ早く読み取ることができるかを決める。シーク時間は、指定されたデータブロックにアクセスするために、装置のある部分から他の部分に移動するための反応速度を示す。ディスク上の指定された場所をシークする時間は、データを転送する時間に含まれない。上述の様に、シーク時間によってディスク装置の性能は著しく低下する。ストリーミングサーバのアプリケーションでは、非常に多くのストリーミング出力があり、それぞれのストリーミングが異なったプログラムであったり、同じプログラムでも異なる場所にある。これが原因となり、ストレージシステムのボトルネックとなる。ディスクドライブは、かなりの時間を適合するデータブロックをシークするために費やしてしまう。上述の問題を克服するために、さらにハードディスクドライブの追加が必要となる。
【0007】
ストリーム出力が増加するにしたがって、システムに必要なハードディスクドライブも増加する。ハードディスクドライブはアレイ、又はドライブのグループに接続して、RAID(Redundant Array of Inexpensive Disk)やJBOD(Just a Bunch Of Disk)構成のようにすることができるが、結局、全ての回転式メディアは、転送レートとシーク時間に限界がある。
【0008】
ストレージ装置901から読み出されたデータブロックは、最終的なプロトコルのブロックサイズとは異なるサイズとなる。このバッファの転送サイズは、CPU902によってプログラム制御されている。このシステムは、ハードウェアが少なく、全ての機能はCPU902上のソフトウェアによって実行されるため、経済的である。上述のアプローチの主な制限事項は、CPUの処理時間によって性能が制約されてしまうことである。
【0009】
図10は、改良を加えたバージョンのダイレクトメモリアクセス、又はDMAの実行について記述している。このバージョンでは、ストレージデバイス1001と出力用インターフェース1004が直接メモリ1003にアクセスできるように、共有バス1011を追加している。CPU1002は、信号線1013とバス1011、信号線1012を使用して、ストレージ装置1001にデータ転送を指示する。ストレージデバイス1001は、信号線1012とバス1011、信号線1014を使用してメモリ1003にデータ転送を開始する。この時のデータ転送は、データパス上にあるCPU1002なしで実行されるため、性能を向上することができる。
【0010】
1ブロックのデータがメモリ1003に格納されると、CPU1002は、ソフトウェアの制御に基づいて、適当なネットワークプロトコルパケットを生成し、メモリ1003に格納する。プロトコルパケットがメモリ1003に格納されると、CPU1002は出力用インターフェース1004にデータを出力するように指示する。出力用インターフェース1004は、メモリ1003からのデータ転送を開始し、信号線1014、バス1011、信号線1015上を通って出力用インターフェース1004から出力ポート1016に出力される。上述のシステムの場合、CPUは実質的にデータの移動に関わっていないので、図9のシステムに比較して性能が向上している。しかし、プロトコルパケットは、依然CPU1002で生成されているため、メモリ1003は、相対的にサイズが小さい。そして、バス1011を全ての装置と共有しなければならない。最も高速なバスと最も高速なCPUを使用しても、上述のアーキテクチャでは、本発明のシステムに比較して性能的に限界がある。
【0011】
上述のように、本発明の目的の1つは、単一メモリからのストリームの出力数をできるだけ増加させることである。本発明のもう一つの目的は、データバスとアドレスバスのサイズを増加させ、大規模なメモリアレイから、より高速なデータ転送をすることである。本発明のもう一つの目的は、メモリバス上の仲裁的な処理やプロトコルスタックを生成する処理からCPUを開放することである。
【0012】
【発明の概要】
大規模なメモリには、多くのビデオやオーディオ、オーディオビジュアル、その他のコンテンツを記憶している。ハードディスク装置に要求されるアクセス時間を除くと、メモリはランダムアクセスである。メモリの内容は、異なるネットワークプロトコルを使用している、ネットワークを経由して複数の顧客サイトに読み出される。コンテンツは、メモリに格納され、中継用ハードウェアで制御されて、メモリから様々な顧客サイトに読み出される。
【0013】
メモリの内容は、パケットデータに束ねられる。それぞれのバケットデータは、通信プロトコルスタックからプロトコルに従ってコード化されている。通信プロトコルスタックは、ハードウェアで構成されたアーキテクチャで生成される。従って、スループットが大幅に改善され、生成可能なストリームの数も増えている。広域データバスと広域アドレスバスを活用することができる。これは、プロトコルスタックをハードウェアで生成するので、大規模なメモリからでもより高速なスループットが得られるからである。多数のプロトコルスタック生成機は、同じメモリブロックにアクセスをするので、たくさんのストリーム出力が、大規模メモリの内容をシングルコピーで生成することができる。
【0014】
【詳細説明】
本発明における上記構成及びその他の構成、並びにそれらを実現するための方法は、以下の記述で、より明らかになる。そして、本発明は、添付図面と関連付けながら記述された本発明の実施例を参照することで、最良の理解が得られる。
【0015】
図1に示すように、サーバシステム100は、メモリアレイ101と相互接続装置102、ストリームサーバモジュール103aから103n(103)で構成されている。サーバシステム100は、通信システムの一部で、トランスポートネットワーク122aから122n(122)とクライアントデバイス124aから124n(124)を含む。代表的なシステムでは、それぞれのクライアントデバイスが、一つのトランスポートネットワークを通してのみ操作できるが、それぞれのトランスポートネットワークは、どのストリームサーバモジュールからでもサーバシステム100と通信することができる。
【0016】
それぞれのトランスポートネットワークは、異なるプロトコルを使用して操作可能である。例えばIP(Internet Protocol)、ATM(Asynchronous Transfer Mode)、イーサネット、その他適宜レイヤ−2やレイヤ−3のプロトコルを使用することができる。加えて、特定のトランスポートネットワークは、クイックタイム、リアルネットワーク、RTP(Real Time Protocol)、RTSP(Real Time Streaming Protocol)、UDP(User Datagram Protocol)、TCP(Transport ControlProtocol)など多数の下位レベルのプロトコルで操作が可能である。代表的な実施例は、イーサネットトランスポートネットワークで、UDPパケットを含むIPプロトコルパケットを使用する。このUDPパケットには、RTPペイロードパケットも含まれる。
【0017】
通信プロセスは、接続されているトランスポートネットワーク122を通してクライアント装置124から送られるストリーム要求で開始される。要求に対するコマンドは、信号線114a−114n(114)を通ってストリームサーバ103に届く。この間のプロトコル情報はデコードされている。例えば、要求がストリームサーバモジュール103aに届くと、この要求はバス117を通してマスターCPU107に送られる。マスターCPUには、モトローラ社製のパワーPC 750のような、市販のCPUを何個も使用することができる。部分的に配置や状態を更新するために、CPU107は、ローカルコントロールインターフェース106に信号線106によって接続されている。このローカルコントロールインターフェース106は、ライン121を通してシステムオペレータと通信することができる。一般的には、ライン121には、シリアル接続かネットワーク接続された端末、又はローカルコンピュータが接続される。制御機能、或はノンストリーミングペイロードは、マスターCPU107で処理される。マスターCPU107のプログラム命令が、メモリアレイ101に格納されている要求のあったコンテンツやプログラムの位置を判断する。メモリアレイ101は、ビデオやオーディオ、その他の情報を格納することができる大規模なメモリバッファである。上述のようにして、サーバシステム100は、同時に様々なコンテンツを各顧客装置に提供することができる。カスタマーセッションには、動画、音楽、スポーツのイベント、書面情報などを収録することができ、これらはプログラムである。また一方、各顧客装置が、同じコンテンツや異なるコンテンツを受け取ることが出来る。各顧客は、非同期に特定のストリームを受け取ることができ、そのデータは、他の顧客装置に送る非同期で特定のストリームの送信と同時である場合でも、そうでない場合でも受け取ることができる。
【0018】
要求されたコンテンツが、既にメモリアレイ101に常駐していない場合、そのプログラムをロードする要求が、信号線118、バックプレーンインターフェース105、信号線119を通して発行される。外部のプロセッサやCPU(未図示)は、その要求に応答して、要求のあったプログラムコンテンツをバックプレーンインターフェース104の制御でバックプレーンライン116を通してローディングされる。バックプレーンインターフェース104は、相互接続装置102を通してメモリアレイ101に接続されている。このため、メモリアレイ101は、ストリームサーバモジュール103だけでなく、バックプレーンインターフェース104とも共用することができる。プログラムコンテンツは、バックプレーンインターフェース104から信号線115、相互接続装置102、信号線112を通ってメモリアレイ101に書き込まれる。
【0019】
バックプレーンがより機能的に動作するのは、一般的に大量なデータ又はデータブロックを動かす場合である。バックプレーンインターフェース104、相互接続装置102、メモリアレイ101は、それぞれ容量の小さいバッファを持っており、急激に大きなデータが送られてきても許容できるようになっている。より高速にするためのもう一つの方法は、より広域なバスパスを使用することである。例えば、128ビット、256ビットやさらに広域のバスを使用することである。より広域なバスインターフェースを使用することで、各メモリアクセスサイクルで転送されるデータのバイト数を大きくすることが出来る。
【0020】
プログラムの最初のブロックがメモリアレイ101にロードされると、出力ストリームの開始可能となる。ストリーミング出力は、全てのプログラムがメモリアレイ101にロードされるか、或はメモリアレイ101にロード中のいずれかの時点まで遅らせることができる。ペイバックデータは、選択された一つ、又はそれ以上のストリームサーバモジュール103によって制御される。例えば、ストリームサーバモジュール103aが選択されると、ストリームサーバモジュール103aは、信号線113a、相互接続装置102、信号線111を通してメモリアレイ101にリードリクエストを送る。データブロックは、メモリアレイ101から読み出され、信号線112、相互接続装置102、信号線113aを通してストリームサーバモジュール103aに送られる。読み出されたデータブロックがストリームサーバモジュール103aに送られると、このブロックに対するトランスプロトコルスタックが生成され、その結果が信号線114aを通してトランスポートネットワーク112aに送られる。トランスポートネットワークは、信号線123aを通してクライアント装置124aにストリーミングデータブロックを伝える。上述のプロセスが、プログラムソースを含むそれぞれのデータブロックに対して繰り返される。
【0021】
要求されたプログラムコンテンツが既にメモリアレイ101に常駐されている場合、CPU107は、ストリームサーバコントローラ103aにメモリアレイ上の現在位置を通知する。この情報とともに、ストリームサーバモジュールは、直ちにメモリアレイ101からのプログラムストリーム送信要求を開始する。
【0022】
システムは、2つのパスに分離されている。第一のパスは、大きいコンテンツ又はペイロード用のパスで、第二のパスは、制御とその他のノンペイロードパケットのためのパスである。ノンペイロードパケットは、VCRタイプの制御か、“トリックモード”パケットで、例えば中断、早送り、巻き戻しなどである。また、プログラムリスト一覧や利用可能なコンテンツ情報もノンペイロードパケットである。これらの信号は、通常ほとんどCPUに影響を与えないので、ソフトウェアを動かしているCPUで簡単に処理することができる。実際のパイロードパケットは、ペイロードに必要な小さな処理でも、非常にCPUに負荷がかかる。上述の場合には、ストリーミングサーバモジュール103a、又は他のストリーミングサーバモジュールが、ペイロードデータの転送や移動を処理し、マスターCPU107は関与しない。上述のようにパスを分離することで、より高密度のシステムを実現し、従来のCPUに比較してより大容量のストリームを提供することが可能となる。
【0023】
メモリアレイ101は、多くのソースプログラムを保持するに十分な大きさの容量であることが望ましい。そして、ギガバイト或はテラバイト単位の容量があることが望ましい。最低でも、65ギガバイトの容量が推奨される。上述のソースプログラムは、ビデオやオーディオ、又はそれらが組み合わされたデータである。メモリアレイは、コンベンショナルメモリで構成されており、dynamic random access memory(DRAM)や、synchronous DRAM(SDRAM)、Rambus DRAM(RDRAM)、dual datarate DRAM(DDRDRAM)、static RAM(SRAM)、magnetic RAM(MRAM)、フラッシュメモリ、その他の自然状態では個体の状態の全てのメモリが使用できる。Dual inline memory module(DIMMs)を使用することもできる。上述のような大容量のメモリにアクセスするには、広域アドレスバスを使用する。従来の32ビットアドレスバスでは、4ギガバイトのRAMのアドレスへのアクセスしかできず、本発明に適用しない方がよい。36ビット幅以上のアドレスバスを使用し、48ビット幅のアドレスバスが本発明での使用には適している。これは、256ペタバイトのメモリに直接アクセスが可能となるからである。
【0024】
図2に相互接続装置102をより詳細に示に示す。相互接続装置102は、メモリアレイ101とストリームサーバモジュール103間のデータ転送を制御している。相互接続装置102は、ストリームサーバモジュール103間の優先順位を確立し、メモリ101からデータを受け付けるストリームサーバモジュールの順番を決定している。
【0025】
相互接続装置102内には、アビトレータ202がある。アビトレータ202は、なるべくハードウェアでの構成が望ましいが、FPGA(a field programmable gate array)やその他の適当なデバイスでも可能である。アビトレータ202は、ハードウェアで構成された機器である。リクエストの優先順位を決定する時に、アビトレータ202はバックプレーンインターフェース104を最優先順位にプログラムすることが可能になっている。いくつかのストリームサーバモジュール103は、適切な方法で優先順位を与えられる。連続的に決定する優先順位や、オーディオ、ビデオなどのコンテンツによって決定する優先順位、などがある。
【0026】
各ストリームサーバモジュールは、アドレスバス111に信号線208a...208n(208)を通して接続されている。データは、メモリアレイ101からストリームサーバモジュール103に、データバス112と信号線210a−210n(210)を通して送られる。ストリームサーバモジュール103は、アビトレータ202を通してデータを要求する。例えば、ストリームサーバモジュール103aは、データ要求をアビトレータ202に対して信号線204aを通して実施する。アビトレータは、ストリームサーバモジュール103aが受けるべきデータを決定し、権限がライン210aから送られる。この様にして、アビトレータは、ストリームサーバモジュールに関する優先順位を設定する。
【0027】
バックプレーンインターフェース104は、特にメモリアレイ101に新しい情報をロードするために使用される。新しい情報は、信号線116、バックプレーンインターフェース104を通してロードされる。バックプレーンインターフェース104がデータを受け取る場合、アドレスバス111とデータバス112へのアクセス要求を信号線212を通してアビトレータ202に出す。アビトレータ202は、信号線214からの信号によりデータ転送の権限を通知される。バックプレーンインターフェース104は、信号線216を介してバス111にメモリアレイ101にアドレスデータを送信する。データは、信号線218を介してバス218に転送される。
【0028】
アビトレータ202の動作を、図3のフローチャートでさらに詳細に示す。ステップS302で、アビトレータ202は、ストリームサーバモジュール103やバックプレーンインターフェース104からのリクエスト信号がきているかを判断する。リクエストがない場合、アビトレータは、ステップS302とS304を繰り返し実行してリクエストを待つ。ステップS304で、1つ又は1つ以上のリクエストを受けた場合、アビトレータはリクエストのあった全ての装置を記憶し、選択されている“ウイニング”装置を初期化し、ステップS306で最初にリクエストのあった装置に対してポインタをセットする。全ての装置が一斉にリクエストを出す場合には、最も優先度の高い装置を“勝ち残り”装置として選択しなければならない。S308は、現在選択されているリクエストのあった装置が、リクエストのあった装置の中で最も優先度の高い装置かをチェックする。リクエストのあった装置の中で最も優先度が高い装置であれば、S310で、その装置を新しく“ウイナー”装置として選択する。上述のプロセスを、リクエストのあった全ての装置に対して実施する。S312では、リクエストのあった最後の装置であるかをチェックする。リクエストのあった最後の装置でない場合には、S314で、次の装置を選択するためにポインタをインクリメントする。上述のプロセスは、全てのリクエストの優先順位を評価し終えるまで繰り返され、最も優先度の高い装置が“ウイナー”装置となる。上述の評価が完了すると、S316で“勝ち残り”装置に対して制御権が与えられる。そして、“ウイナー”は、アビトレータを通してコマンド発行が出来るようになる。この“ウイナー”がサービスを要求している間は、サービスを受けられることになる。S318は、上述の“ウイナー”装置からのリクエスト信号を監視し、リクエストがS318とS316を繰り返している間は、制御権を維持する。S318で、装置がサービスの要求をやめると、S320で制御権が開放され、S302の処理にもどって最初から始まる。
【0029】
図4は、図1に示したストリームサーバモジュール103の動作を示すブロックダイアグラムである。ストリームサーバプロセッサ(SSP)401は、オートペイロードリクエスタと、プロトコルのエンコーダ、デコーダとしてサービスを提供する。SSP401は、信号線113を通してペイロードデータを要求し、受け取る。受け取ったペイロードデータは、エンコードして、TCP/IPやUDP/IPなどのネットワークパケットに変換される。エンコードされたパケットは、信号線411a−411n(411)を通して、一つ又はそれ以上のメディアアクセスコントローラ(MAC)402a−402n(402)に送信される。メディアアクセスコントローラ402は、シリアルなデータとシリアルでないデータを処理し、物理ネットワーク層で使用される規格のフォーマットを使用する。イーサネットの場合には、メディアアクセスコントロール402も、コリージョンの検出やリンク層のネットワークエラーのオートリカバリ機能を持つ。
【0030】
メディアアクセスコントロール402は、信号線412a−412n(412)を使用してメディアインターフェースモジュール403a−403n(403)に接続され、ネットワークに接続する物理媒体に対する処理を実施する。対象となる物理媒体には、イーサネット用ツイストペアトランシーバやイーサネット用光ファイバーインターフェース、SONET、その他多くの物理インターフェースがあり、これらの中には現在存在するものや今後作られるものがあり、希望するネットワークの物理的な低レベルインターフェースに適合したインターフェースを使用し、信号線114a−114n(114)を通じて送信される。
【0031】
制御パケットが要求された場合、例えばVCRのような制御では、ハードウェアの変わりにCPUで処理を実行しても十分である。装置構成によって、プロトコルを頻繁に変えることができるので、様々なシステムに対して変えることができる。あるケースでは、制御プロトコルスタックは、装置環境によってカスタマイズすることができる。上述の理由で、制御機能はCPU404で処理される。これに対して、ペイロードプロトコルスタックは比較的安定しているので、ハードウェアで処理することができる。さらに、ハードウェアで処理することにより、広域データパスや、標準的なCPUで使用する32ビット又は64ビットのデータパス以上に広域なデータパスを使用することが可能となる。256ビットデータバスのように、より広域なデータパスを使用することで、アクセスサイクル毎に、より多くのデータをメモリから転送することができる。
【0032】
SSPデータバスのデータ幅は、CPUのデータ幅より広域であることが望ましい。なるべく、SSP401は、フィールド プログラマブル ゲート アレイ(FPGA)のように再プログラム可能なハードウェアロジックを使用する。FPGA等を使用することにより、ペイロードプロトコルを必要に応じてアップデートすることができ、さらにソフトウェアと比較して優れた性能を出すことが可能となる。上述のように柔軟性を持たせることで、同じサーバ内の異なるSSPを必要に応じて異なるプロトコルで動作させることが可能となる。アーキテクチャにFPGAを利用することで、ハードウェア全体の機能を、簡単なコードファイルを更新によって、わずか100msほどで変更することができる。
【0033】
実際には、ストリームサーバプロセッサ401は、入力と出力のパケットを分離している。出力しようとするペイロードパケットが上述のパケットである場合、ストリームサーバプロセッサ(SSP)401で直接生成することが可能となる。例えば、SSP401が、信号線411aを通してMAC402aにパケットを送る。この時、MAC402aはメディアインターフェースモジュール403aと信号線412aを使用して、信号線114aを通してネットワークにパケットを送信する。
【0034】
クライアントの制御リクエストは、メディアインターフェースモジュール403a、信号線412a、MAC402aを介して、ネットワーク線114aから受信される。MAC402aは、SSP401に上記リクエストを送信する。SSP401は、制御パケットを分離し、信号線413を通してCPU404に転送する。CPU404は、ROM/Flash ROM406などに格納されているプログラムを使用して、コントロールパケットを加工する。プログラムの実行や、実行時のローカル変数を格納するために、RAM407が使用される。ROM406とRAM407は、内部バス415でCPUと接続され、内部バス415は常に直接CPU404と接続されている。
【0035】
CPU404は、信号線414、コントロールバスインタフェース405、信号線117を使用してプログラムコンテンツやシステム制御に関する命令を図1のマスターCPU107に送信する。それぞれのストリームサーバモジュールにCPU404を置くことにより、セッションマネジメントやセッションコントロールのタスクを、ネットワークライン114a−114n付近で処理することができる。このため、CPUへの負荷に軽減し、ネットワークインターフェース毎に、より多くのストリームコンテンツを同時に処理することが可能となる。
【0036】
ストリームサーバモジュールとシステムのCPUを接続する方法は、いろいろある。ここでは、その1例を示す。
図5は、図4のストリームサーバプロセッサ(SSP)401の実施例を示している。SSP401は、1つ又は1つ以上のストリームコントローラ501a−501n(501)を持ち、アドレスバス518、ペイロードデータバス519、コントロールデータバス520と相互に接続されている。この例で、プロトコルストリームエンコーダ/デコーダ505aに、データ要求がきた場合、アドレスがアドレスジェネレータ502aによって生成される。大規模なメモリアレイにアクセスするために、アドレスジェネレータ502aは48ビットのビット幅を持つアドレスを生成できるようにしている。生成されたアドレスは、ストリームコントローラ501aから、信号線515a、アドレスバス518を通って、アドレスバスインターフェース506に送り出される。アドレスバス506は、ライン511を通って、SSPの外に要求されたアドレスデータを送信する。データは、外部RAMバッファから、信号線513、ペイロードデータバスインターフェース509、バス519、信号線516aを通ってペイロードデータバッファ503aに返される。データは、ペイロードデータバッファ503aから、信号線521a、プロトコルシステムエンコーダ/デコーダ505aを通って、ライン411aに出力される。
【0037】
システムの処理能力を最大限に引き出すために、128ビットや256ビットのような広域データバスを利用する。ペイロードデータバッファ503aにデータをバッファリングすることにより、ペイロードデータバスインターフェース509と結合されたバスが、プロトコルストリームエンコーダ/デコーダ505aから異なる転送スピードで操作可能となる。TCP/IP、UDP/IP,RTP,RTSP、その他の上位層の通信プロトコルは、プロトコルストリームエンコーダ/デコーダで生成される。これらのプロトコルパケット生成に、ハードウェアデバイスを使用することで、より大量のデータのスループット率を得られる。プロトコルパケットが生成されると、データは、パケットやブロック単位でライン411aを通って外部へ送られる。上述の処理は、ほとんど或は全くオーバーヘッドなく継続することができる。停止、再生、一時停止等のコントロールパケットや、コンテンツ一覧、ショウタイム、スケジュールは、使用頻度が少なく、データ量も小さく、特別な処理が必要なため、一般的にはハードウェアで直接処理することはせず、CPUで処理をさせる。上述の処理とは逆に、送られてくる制御パケットは、ライン411aを通してプロトコルストリームエンコーダ/デコーダ505aが受信し、適当な通信プロトコルでデコードされる。そして、制御データはライン522aを通ってコントロールデータバッファ504aに転送される。コントロールパケットは、コントロールデータバッファ504aから、ライン517a、バス520、コントロールデータバスインターフェース510を通ってライン514に出力される。
【0038】
セッションマネージメントやプログラムリストなど外部に送信されるコントロールパケットには、逆向きの処理ルートを使用する。コントロールパケットは、ライン514を通して、コントロールデータバスインタフェース510送られる。そこから、コントロールパケットは、バス520、ライン517a、コントロールデータバッファ504a、ライン522aを通ってプロトコルストリームエンコーダ/デコーダ505aに送られる。ここで、データはエンコードされ、ライン411aを通って外部へ送信される。コントロールデータバッファ504aにコントロールデータをバッファリングすることで、コントロールデータバスインターフェース510と関連するバスを、プロトコルストリームエンコーダ/デコーダ505aから異なる転送スピードで操作することが可能となる。
【0039】
図6は、1つのストリームコントローラ501の一部を詳細に示したブロックダイアグラムである。出力しようとするペイロードデータは、ライン516を通して受け取り、ペイロードデータバッファ503に記録される。そのデータは、ライン611を通してプロトコルセレクトロジックアレイ601に送られ、さらにライン612を通って適当なプロトコルエンコードロジックアレイ602a−602nに送られる。データブロックは、的確にプロトコルにしたがってエンコードされた後、ライン613a−613n(613)を通ってペイロード/コントロールトランスミットコンバイナロジック403に送られ、ライン411を通してネットワークインターフェースに出力される。
【0040】
特定の通信用コントロールデータを出力する場合には、ライン517を通ってコントロールデータバッファ504に送信する。コントロールデータバッファ504の出力データは、ライン614を通って、プロトコルセレクトロジック回路605に送られ、ここで必要なプロトコルを識別し、ライン615を通して、適切なプロトコルエンコードロジック回路604a−604n(604)に送られる。エンコードされたデータは、ライン616a−616n(616)を通って、ペイロード/コントロールトランスミットコンバイナロジックロジック603に送られる。そして、制御情報はライン411を通って伝送される。
【0041】
入力データは、上述と同様な方法でデコードされる。ライン411を通って入力されたデータは、ペイロード/コントロールレシーブセパレータロジック606で分解される。ペイロードデータはライン617を通ってプロトコルセレクトロジック607に送られる。プロトコルセレクトロジックは、特定のペイロードで使用するプロトコルを認識し、そのデータを適切なライン618を通してプロトコルデコードロジック回路608a−608n(608)に送信する。デコードされたデータの出力は、ライン619を通して、ペイロードデータバッファ503に記憶され、ライン516を通して出力される。
【0042】
制御データも、上述と同様な方法でデコードされる。ライン411を通してシステムに入力されるデータは、ペイロード/コントロールレシーブセパレータロジック606で分解される。分解されたデータは、ライン620を通して、プロトコルセレクトロジック609に送られ、ここで、コントロールデータが使用しているプロトコルを識別し、適切なライン621を通して、プロトコルデコードロジック610a−610n(610)に送信される。デコードされたデータは、ライン622を通して、セレクトコントロールデータバッファ504に記録され、ライン517を通してストリームコントローラに送信される。
【0043】
図7は、図5に示したストリームコントローラ501の状態ダイアグラムである。ストリームコントローラは、コンテンツデータが要求されるまで、アイドル状態S701となっている。上述の時は、S702で適切なアドレスが生成される。そして、コンテンツデータは、状態S703で即座にメモリ101から読み込まれる。メモリ101は、バッファがフルの状態になるまで読み込まれる。そして、必要があれば、バッファ内の全てのデータがプロトコルにしたがってエンコードされるまで、タイムスタンプが調整され、S704の状態でプロトコルラッパーが付加される。S704のオペレーショナルな状態の詳細は、図8に記述する。バッファのデータは、S705の状態でアウトプットインターフェースに書き込まれ、S701でストリームコントローラはアイドル状態になる。
【0044】
図8では、図5で示したプロトコルエンコーダロジック505の動作を詳しく記述している。これは、図7のS704の状態を詳細に記述したものである。ステップS801で、バッファポインタはクリアされる。ステップS802でロジックアレイは、バッファからのデータブロックがタイムスタンプを持っているか判断する。データブロックがタイムスタンプを持っていない場合、データはS803で変更されずに次のステップに進み、タイムスタンプを持っている場合は、S804で存在するタイムスタンプにオフセットを追加する。S805で、ロジックアレイは、参照クロックが必要か判断する。参照クロックが不要の場合、データは変更されずにS806を通り過ぎ、参照クロックが必要な場合には、S807で参照クロックデータが挿入される。S808で、アレイは、ヘッダデータが必要か判断する。ヘッダが不要な場合は、S809でデータを変更せずに次のステップに移り、ヘッダが必要な場合には、S810でエンコードされたプロトコルにしたがって、プロトコルヘッダが書き込まれる。S811で、バッファがフルでなければ、バッファポインタをS813でインクリメントしてS802の処理に戻る。バッファの最後まで到達したらエンコードは終了し、S812で処理から抜ける。
【0045】
本発明での多くの効果を明確にした。大容量のコンテンツを、単一の大規模なメモリバッファから多くのユーザに配信することができる。高速データ転送だけでなく、高い処理性能も実現された。多くのストリーム出力が、大規模メモリバッファにあるコンテンツをシングルコピーで生成することができる。
【0046】
本発明の原理を、具体的な機器とアプリケーションとに関連して記述してきたが、この記述はほんの一例であって、本発明の範囲がこれに限定されるものではない。
【図面の簡単な説明】
【図1】本発明で使用する通信システムの具体的なブロック図である。
【図2】図1に示すシステムの一部のブロック図である。
【図3】図2のアビトレータの動作を示したフローチャートである。
【図4】図1のシステムのストリームサーバモジュールのブロック図である。
【図5】図4のストリームサーバモジュール内部にあるストリームサーバプロセッサのブロック図である。
【図6】図5のストリームサーバプロセッサ内にあるストリームコントローラの入出力パスを示すブロック図である。
【図7】図6のストリームコントローラの処理を示した状態図である。
【図8】図7の状態S704で示された、図5のプロトコルエンコーダロジックの動作を示したフローチャートである。
【図9】従来の通信システムのブロック図である。
【図10】図9とは別の従来の通信システムのブロック図である。
Claims (22)
- ビデオデータやオーディオデータの複数のストリームを生成するための装置であって、
大規模メモリデバイスと、
該大規模メモリデバイスに前記データを格納する手段と、
前記大規模メモリデバイスから前記データの少なくとも一部を取り出し、複数の非同期のデータストリームを生成する手段とを有し、
前記データ取り出し手段は、
(a)前記大規模メモリデバイスに動作的に接続された少なくとも2つのストリームサーバプロセッサと、
(b)前記大規模メモリデバイスに格納された前記データに前記少なくとも2つのストリームサーバプロセッサがほぼ同時にアクセスすることを可能にする相互接続手段と、
(c)前記相互接続手段に含まれ、前記少なくとも2つのストリームサーバプロセッサに動作的に接続され、前記複数のデータストリームが前記少なくとも2つのストリームサーバプロセッサのうちの1つ以上によって前記大規模メモリデバイスから生成されるように前記大規模メモリデバイスへのアクセスを制御する、ハードウェアベースのアビトレータと、
(d)少なくとも1つのネットワークを介して各ストリームを転送し、かつ前記データストリームをデコードするために必要なプロトコルを生成する手段と、
を有する装置。 - 前記大規模メモリデバイスから取り出されて格納された前記データが、前記ビデオに対して所定の関係を有するオーディオを含む請求項1記載の装置。
- 前記大規模メモリデバイスがランダムアクセスメモリで構成される請求項1記載の装置。
- 前記大規模メモリデバイスが少なくとも65ギガバイトの記憶容量をもつ請求項3記載の装置。
- 前記大規模メモリデバイスが36ビットよりも大きなアドレスバスをもつ請求項3記載の装置。
- 前記オーディオデータやビデオデータが複数のプログラムを含む請求項3記載の装置。
- 非同期のデータストリームからなる前記複数のストリームが前記複数のプログラムから同時に生成される請求項6記載の装置。
- 前記プログラムの全体が前記大規模メモリに書き込まれるのを待つ必要なしに、前記大規模メモリに格納されつつあるオーディオ/ビデオプログラムの最初のブロックから前記ストリームが生成されることを可能にする手段を含むクレーム7記載の装置。
- 前記少なくとも2つのストリームサーバプロセッサのそれぞれのためのCPUモジュールを含み、該CPUモジュールのそれぞれが、前記データストリームの取り出される第2のバスから分離した第1のバスを使用する請求項3記載の装置。
- 前記大規模メモリデバイスが二重インラインメモリモジュールで構成される請求項1記載の装置。
- 前記大規模メモリデバイスがDRAMで構成される請求項1記載の装置。
- 前記大規模メモリデバイスがマグネティックRAMで構成される請求項1記載の装置。
- 前記大規模メモリデバイスがデュアルデータレートRAMで構成される請求項1記載の装置。
- 前記大規模メモリデバイスがスタティックRAMで構成される請求項1記載の装置。
- 前記大規模メモリデバイスがシンクロナスDRAMで構成される請求項1記載の装置。
- 前記データストリームに関連付けられた前記プロトコルがハードウェアで生成される請求項1記載の装置。
- 前記ストリームサーバプロセッサ間が相互接続され、バックプレーンを介して共有されている請求項1記載の装置。
- 前記取り出して生成する手段がVCRタイプ制御に応答する手段を含み、該制御はソフトウェアを実行しているそれぞれのCPUで操作される請求項1記載の装置。
- ビデオデータやオーディオデータのストリームを非同期で複数生成する方法であって、
(a)1つ又はそれ以上のビデオやオーディオのプログラムストリームを生成するステップと、
(b)大規模メモリデバイスに前記プログラムストリームを転送するステップと、
(c)前記プログラムストリームの少なくとも一部を前記大規模メモリデバイスに格納するステップと、
(d)1つ又はそれ以上の顧客端末からのリクエストに応じてセッションを確立して1つ又はそれ以上のプログラムストリームを生成するステップであって、前記リクエストが、プログラムストリームが前記顧客端末に転送される際に通過する第2バスとは分離された第1バスを使用するCPUによって操作されるステップと、
(e)前記大規模メモリに格納された1つ又はそれ以上のプログラムストリームから前記顧客端末用の1つ又はそれ以上のプログラムストリームを取り出して生成するためのそれぞれのハードウェアベースのプロセッサを使用するステップと、
を有する方法。 - 前記大規模メモリデバイスがランダムアクセスメモリで構成される請求項19記載の方法。
- 前記大規模メモリデバイスに同時にアクセスする複数のハードウェアベースのプロセッサを使用して複数のプログラムストリームを生成するステップを更に備える請求項19記載の方法。
- 前記ハードウェアベースのプロセッサで、前記データストリームそれぞれに関連付けられたプロトコルスタックを生成するステップを更に備える請求項19記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/990,093 US20030095783A1 (en) | 2001-11-21 | 2001-11-21 | Methods and apparatus for generating multiple network streams from a large scale memory buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004040749A true JP2004040749A (ja) | 2004-02-05 |
JP2004040749A5 JP2004040749A5 (ja) | 2006-01-05 |
Family
ID=25535753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002338393A Pending JP2004040749A (ja) | 2001-11-21 | 2002-11-21 | 大規模メモリバッファから複数のネットワークストリームを生成する方法及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20030095783A1 (ja) |
EP (1) | EP1315368A3 (ja) |
JP (1) | JP2004040749A (ja) |
CA (1) | CA2412274A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008516306A (ja) * | 2004-09-15 | 2008-05-15 | ストリームシールド ネットワークス リミテッド | ネットワークベースのセキュリティプラットフォーム |
JP2008234629A (ja) * | 2007-01-12 | 2008-10-02 | Broadbus Technologies Inc | データ配信およびバッファリング |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7899924B2 (en) | 2002-04-19 | 2011-03-01 | Oesterreicher Richard T | Flexible streaming hardware |
US6876727B2 (en) | 2002-07-24 | 2005-04-05 | Sbc Properties, Lp | Voice over IP method for developing interactive voice response system |
JP2004145392A (ja) * | 2002-10-21 | 2004-05-20 | Kddi Corp | 動画像ファイル配信装置 |
US7200718B2 (en) | 2004-04-26 | 2007-04-03 | Broadband Royalty Corporation | Cache memory for a scalable information distribution system |
US20060146780A1 (en) * | 2004-07-23 | 2006-07-06 | Jaques Paves | Trickmodes and speed transitions |
US8032650B2 (en) | 2006-03-15 | 2011-10-04 | Arris Group, Inc. | Media stream distribution system |
US8826345B2 (en) * | 2006-09-08 | 2014-09-02 | Edgeware Ab | Method and an apparatus for data streaming |
US20080068993A1 (en) * | 2006-09-08 | 2008-03-20 | Edgeware Ab | Method and an apparatus for data streaming |
GB2441577A (en) * | 2006-09-08 | 2008-03-12 | Edgeware Ab | Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers |
GB2441575A (en) * | 2006-09-08 | 2008-03-12 | Edgeware Ab | Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers |
GB2441576A (en) * | 2006-09-08 | 2008-03-12 | Edgeware Ab | Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers |
US20080062869A1 (en) * | 2006-09-08 | 2008-03-13 | Edgeware Ab | Method and an apparatus for data streaming |
GB2449068A (en) * | 2007-05-08 | 2008-11-12 | Edgeware Ab | Data streaming using stored control data |
US20090157891A1 (en) * | 2007-12-13 | 2009-06-18 | General Instrument Corporation | Method and Apparatus for Inserting Time-Variant Data into a Media Stream |
WO2009090163A1 (en) * | 2008-01-17 | 2009-07-23 | Edgeware Ab | A method for data storage means and a system with data storage means |
US7965712B2 (en) * | 2008-04-04 | 2011-06-21 | Doron Handelman | Methods and apparatus for enabling communication between network elements that operate at different bit rates |
US8098661B2 (en) * | 2008-04-04 | 2012-01-17 | Doron Handelman | Methods and apparatus for enabling communication between network elements that operate at different bit rates |
US7881330B2 (en) * | 2008-10-28 | 2011-02-01 | Plx Technology, Inc. | Controlling activation of electronic circuitry of data ports of a communication system |
US20100161716A1 (en) * | 2008-12-22 | 2010-06-24 | General Instrument Corporation | Method and apparatus for streaming multiple scalable coded video content to client devices at different encoding rates |
US8898324B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
US8954490B2 (en) * | 2010-06-24 | 2015-02-10 | International Business Machines Corporation | Speculative and coordinated data access in a hybrid memory server |
US8793391B2 (en) | 2010-11-30 | 2014-07-29 | Deutsche Telekom Ag | Distortion-aware multihomed scalable video streaming to multiple clients |
US8873963B2 (en) | 2012-07-25 | 2014-10-28 | Doron Handelman | Apparatus and methods for generating and receiving optical signals at substantially 100Gb/s and beyond |
CN112506821B (zh) * | 2020-09-27 | 2023-02-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种系统总线接口请求仲裁方法及相关组件 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5619528A (en) * | 1993-04-16 | 1997-04-08 | Trans Video Electronics | High speed teleconference system |
US5414455A (en) * | 1993-07-07 | 1995-05-09 | Digital Equipment Corporation | Segmented video on demand system |
EP0637890B1 (en) * | 1993-08-02 | 1999-03-10 | Trw Inc. | Modular high-capacity solid-state mass data storage device for video servers |
CA2135681C (en) * | 1993-12-30 | 2000-01-18 | Srinivas V. Makam | System and method for directly accessing long-term memory devices |
US5678020A (en) * | 1994-01-04 | 1997-10-14 | Intel Corporation | Memory subsystem wherein a single processor chip controls multiple cache memory chips |
US5606359A (en) * | 1994-06-30 | 1997-02-25 | Hewlett-Packard Company | Video on demand system with multiple data sources configured to provide vcr-like services |
US5555441A (en) * | 1994-08-02 | 1996-09-10 | Interim Design Inc. | Interactive audiovisual distribution system |
US5761417A (en) * | 1994-09-08 | 1998-06-02 | International Business Machines Corporation | Video data streamer having scheduler for scheduling read request for individual data buffers associated with output ports of communication node to one storage node |
JPH08214286A (ja) * | 1995-02-08 | 1996-08-20 | Fujitsu Ltd | ビデオ情報提供システム及びそのビデオ情報提供センターならびにリクエスト端末 |
US5668810A (en) * | 1995-04-26 | 1997-09-16 | Scientific-Atlanta, Inc. | Data transmission protocol method and apparatus |
DE69631755T2 (de) * | 1995-12-01 | 2004-07-29 | Matsushita Electric Industrial Co., Ltd., Kadoma | Informationsverarbeitungsgerät, -system und verfahren für ein datenübertragungsnetzwerk |
US20020057349A1 (en) * | 1996-03-06 | 2002-05-16 | Masanori Yamaguchi | Image pickup apparatus and solid state image pickup device |
US6128467A (en) * | 1996-03-21 | 2000-10-03 | Compaq Computer Corporation | Crosspoint switched multimedia system |
US5881245A (en) * | 1996-09-10 | 1999-03-09 | Digital Video Systems, Inc. | Method and apparatus for transmitting MPEG data at an adaptive data rate |
US6067108A (en) * | 1996-12-12 | 2000-05-23 | Trw Inc. | Solid-state mass storage data stream generator |
US7127736B2 (en) * | 2000-11-17 | 2006-10-24 | Sony Corporation | Content processing apparatus and content processing method for digest information based on input of a content user |
-
2001
- 2001-11-21 US US09/990,093 patent/US20030095783A1/en not_active Abandoned
-
2002
- 2002-11-20 CA CA002412274A patent/CA2412274A1/en not_active Abandoned
- 2002-11-21 EP EP02258014A patent/EP1315368A3/en not_active Withdrawn
- 2002-11-21 JP JP2002338393A patent/JP2004040749A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008516306A (ja) * | 2004-09-15 | 2008-05-15 | ストリームシールド ネットワークス リミテッド | ネットワークベースのセキュリティプラットフォーム |
JP2008234629A (ja) * | 2007-01-12 | 2008-10-02 | Broadbus Technologies Inc | データ配信およびバッファリング |
Also Published As
Publication number | Publication date |
---|---|
CA2412274A1 (en) | 2003-05-21 |
EP1315368A3 (en) | 2006-01-11 |
US20030095783A1 (en) | 2003-05-22 |
EP1315368A2 (en) | 2003-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004040749A (ja) | 大規模メモリバッファから複数のネットワークストリームを生成する方法及び装置 | |
EP0993680B1 (en) | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory | |
US7110400B2 (en) | Random access memory architecture and serial interface with continuous packet handling capability | |
US6119196A (en) | System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates | |
KR100437146B1 (ko) | 지능망 인터페이스 장치 및 통신 가속 시스템 | |
US8423675B2 (en) | Data transfer, synchronising applications, and low latency networks | |
EP1883240B1 (en) | Distributed multi-media server system, multi-media information distribution method, program thereof, and recording medium | |
US20070067497A1 (en) | Network interface device that fast-path processes solicited session layer read commands | |
US20080010647A1 (en) | Network storage device | |
JPH1078934A (ja) | パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム | |
US20070081538A1 (en) | Off-load engine to re-sequence data packets within host memory | |
EP1471699B1 (en) | Frame processing | |
US6901496B1 (en) | Line rate buffer using single ported memories for variable length packets | |
JP2008310832A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
JP2005323359A (ja) | 相互接続ネットワーク機能を提供する方法及び装置 | |
EP1190317A2 (en) | Data transfer, synchronising applications, and low latency networks | |
US9137167B2 (en) | Host ethernet adapter frame forwarding | |
JP2007528078A (ja) | コヒーレンス・メッセージを合体する方法及びシステム | |
US8054857B2 (en) | Task queuing methods and systems for transmitting frame information over an I/O interface | |
JP2002199015A (ja) | ネットワークデータサーバ | |
JP2000148711A (ja) | 動画像サーバシステム | |
CN117880197A (zh) | 汇聚以实现拥塞管理 | |
JP2004054419A (ja) | ノード間トランザクション処理装置 | |
Schwaderer | Breaking the transport layer bottleneck | |
JPH1115605A (ja) | ディスクアレイ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051104 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070515 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070815 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070820 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071113 |