(57)【特許請求の範囲】
【請求項１】
適応トランスポートプロトコル復号器において、
第１のトランスポートプロトコルを有し、それぞれがペイロードを含むパケットのストリームの第１のソースと、
第２のトランスポートプロトコルを有し、それぞれがペイロードを含むパケットのストリームの第２のソースと、
前記第１および第２のソースのそれぞれに結合された入力端子と、選択信号に応答して、前記第１および第２のソースのうち選択された１つのパケットのストリームを出力する出力端子とを有するセレクタと、
前記セレクタの出力端子に結合され、前記第１および第２のソースのうち選択された１つの前記パケットからそれぞれの前記ペイロードを抽出するためのプロトコル復号器であって、
プロセッサと、第１、第２および第３の制御プログラムを格納するためのメモリを含み、
前記第１の制御プログラムに応答して、前記第１のソースからの前記パケットを処理して前記それぞれのペイロードを抽出し、前記第２の制御プログラムに応答して、前記第２のソースからの前記パケットを処理して前記それぞれのペイロードを抽出し、前記第３の制御プログラムに応答して、前記第１の制御プログラムと前記第２の制御プログラムとの間を切り替え、
前記第１および第２の制御プログラムの双方は、
前記メモリ内の位置に格納された割込みハンドラであり、受信された各パケットに応答して実行されるパケットハンドラと、
前記メモリ内のそれぞれの位置に格納され、ソフトウェア割込みによって呼び出される複数の割込みドライバと、
前記メモリ内の固定の所定位置に格納され、前記パケットハンドラの位置を指示するポインタを含む第１のエントリと、前記割込みドライバの位置を指示するポインタを含む複数のエントリとを含む割込みベクトルとを含み、
前記第１および第２のソースは、パケットが使用可能であるときに割込み要求信号を生成し、前記割込みベクトルの第１のエントリは、前記選択された１つのソースからの前記割込み信号に応答する、プロトコル復号器と
を備えたことを特徴とする適応トランスポートプロトコル復号器。
【請求項２】
前記第３の制御プログラムは、前記第１および第２の制御プログラムの一方の前記割込みベクトルを、前記メモリ内の前記固定の所定位置へ移動させ、および同時に前記第１および第２の制御プログラムの他方の前記割込みベクトルを、前記メモリ内の別の位置へ移動させることによって、前記第１および第２の制御プログラムの間で切り替えることを特徴とする請求項１に記載の適応トランスポートプロトコル復号器。
【請求項３】
前記第１および第２の制御プログラムの双方が、前記メモリ内の位置に前記それぞれの抽出されたペイロードを格納するためのバッファをさらに含むことを特徴とする請求項１に記載の適応トランスポートプロトコル復号器。
【請求項４】
前記第３の制御プログラムは、
前記第１および第２の制御プログラムの一方の前記割込みベクトルを、前記メモリ内の前記固定の所定位置へ移動させ、および同時に前記第１および第２の制御プログラムの他方の前記割込みベクトルを、前記メモリ内の別の位置へ移動させること、および
前記メモリ内の位置に前記バッファを再配置することによって、前記第１および第２の制御プログラムの間で切り替えることを特徴とする請求項３に記載の適応トランスポートプロトコル復号器。
【請求項５】
前記第３の制御プログラムが前記選択信号に応答して、前記第１のパケットストリームソースが前記プロトコル復号器に結合されているときに前記第１の制御プログラムに切り替え、前記第２のパケットストリームソースが前記プロトコル復号器に結合されているときに前記第２の制御プログラムに切り替えることを特徴とする請求項１に記載の適応トランスポートプロトコル復号器。
【請求項６】
前記プロトコル復号器に結合され、前記受信したパケットから抽出された前記それぞれのペイロードを処理するためのペイロードプロセッサをさらに備えたことを特徴とする請求項１に記載の適応トランスポートプロトコル復号器。
【請求項７】
前記第１および第２のパケットストリーム内の各パケットは、前記ペイロードに関係する情報を含むヘッダをさらに備え、
前記プロトコル復号器は、受信したパケットのヘッダからの情報を格納するためのレジスタを備え、および
前記プロトコル復号器は、前記レジスタにアクセスして前記情報を得ることを特徴とする請求項１に記載の適応トランスポートプロトコル復号器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、異なるトランスポートプロトコルを有するパケットを適応的に復号する、トランスポートパケット復号器に関する。
【０００２】
【従来の技術】
現在、ビデオ／オーディオ／データプログラミングなどのプログラミングを搬送するデジタル信号が、異なるプロバイダから、プロトコルというそれぞれ異なるフォーマットで、消費者へ供給されている。たとえば、デジタル衛星システム（ＤＳＳ）信号は、ＤｉｒｅｃＴＶが有する独自の形式でフォーマットされており、ＤＳＳ衛星を介して供給されるプログラミングを搬送する信号はすべて、このプロトコルを使用してフォーマットされる。同様に、ローカルの地上波高品位テレビ（ＨＤＴＶ）信号は、はじめにAdvanced Television Standards Committee（ＡＴＳＣ）が提案し、米国連邦通信委員会（ＦＣＣ）が承認した規格に従ってフォーマットされ、ＨＤＴＶプログラミングを搬送する信号はすべてこの標準プロトコルを使用してフォーマットされる。
【０００３】
【発明が解決しようとする課題】
消費者は、これらのプロトコルおよびプログラミングを搬送するデジタル信号が搬送される他のいずれかのプロトコルでデジタル信号を受信することを望んでいる。現在、これには別々の復号器が必要であり、それぞれが所望の各プロトコルに合わせて、セットトップボックスなど別々のエンクロージャで組立てられている。これは消費者にとって高価であり、様々なセットトップボックスのために大量のスペースが必要であり、使用することに不都合がある。たとえば、各セットトップボックスは、それ自体のリモート制御を有することがあり、そのリモート制御が他のセットトップボックスのリモート制御と互換性がないことがある。したがって、異なるプロトコルを復号することができるトランスポートプロトコル復号器が望ましい。
【０００４】
【課題を解決するための手段】
本発明者は、上述のようなプロトコルが、それぞれ異なるフォーマット、たとえば異なるサイズ、異なるフレーミング、異なるビット配列などの、トランスポートパケットのストリームを指定することを示した。さらに、各トランスポートパケットは、符号化されたビデオまたはオーディオまたはデータなどの、異なるタイプの信号を表すデジタルデータを含むペイロードを搬送する。しかし、発明者は、各信号タイプのそれぞれのペイロードのデータによって表された信号は、これらのプロトコルのすべてについて同じであることを示した。すなわち、ＤＳＳおよびＡＴＳＣプロトコルでは共に、符号化されたビデオおよびオーディオ信号がＭＰＥＧ符号化信号である。したがって、ペイロードが、受信されたトランスポートパケットから抽出された後、そのような信号の信号処理の残りは、受信したパケットのプロトコルに関わらず同じものである。
【０００５】
本発明の原理によれば、適応トランスポートプロトコル復号器は、パケットのストリームのソースを含み、それぞれはペイロードを含み、第１のトランスポートプロトコルを有し、およびパケットのストリームのソースを含み、それぞれはペイロードを含み、第２のトランスポートプロトコルを有する。プロトコル復号器は、第１および第２のパケットストリームソースに結合され、第１および第２のパケットストリームソースのうち選択された１つのパケットからそれぞれのペイロードを抽出する。
【０００６】
【発明の実施の形態】
図１は、本発明にかかる適応トランスポート復号器を含むシステムのブロック図である。図１では、複数のパケットのストリームのソース１０のそれぞれの出力端子が、セレクタ２０の対応する入力端子に結合される。セレクタ２０の出力端子が、適応トランスポートプロトコル復号器３０の入力端子に結合される。適応トランスポートプロトコル復号器３０の出力端子が、ペイロードプロセッサ４０の入力端子に結合される。ペイロードプロセッサ４０の出力端子が、ユーザインタフェース５０の入力端子に結合される。
【０００７】
動作する際には、パケットソース１２がパケットのストリームを生成し、それぞれがペイロード（以下でより詳細に説明する）を含み、第１のトランスポートプロトコルを有し、さらにパケットソース１４がパケットを生成し、それぞれがペイロードを含み、第２のトランスポートプロトコルを有する。複数のパケットストリームソース１０は、たとえばパケットストリームソース１Ｎなど、追加のパケットストリームソースを含むことができ、それぞれのパケットのストリームを生成し、それぞれがペイロードを含み、それぞれに異なるトランスポートプロトコルを有する。
【０００８】
たとえば、パケットソース１２をＤＳＳ衛星信号受信器のフロントエンドにすることができ、これは受信アンテナ、ＲＦおよびＩＦ受信回路、チューナ、順方向誤り訂正（ＦＥＣ）回路、パケット誤り検出および／または訂正回路（ビタビまたはリード−ソロモン復号など）、暗号暗号解読部などを含み、そのいずれも本発明とは密接な関係がなく、したがっていずれも図示せず、詳細に説明もしない。パケットストリームソース１２からの出力は、ＤＳＳ信号を表すパケットのストリームであり、それぞれがＤＳＳトランスポートパケットプロトコル（フォーマット）を有する。同様に、パケットソース１４を地上波ＨＤＴＶ信号受信器のフロントエンドにすることができ、これはアンテナまたはケーブル接続、ＲＦおよびＩＦ受信回路、誤り検出および／または訂正回路など（図示せず）を含む。パケットストリームソース１４からの出力は、ＨＤＴＶ信号を表すパケットのストリームであり、それぞれがＡＴＳＣトランスポートパケットプロトコルを有する。
【０００９】
セレクタ２０が、既知の方法で、複数のパケットストリームソース１０の１つを、コントローラ（図示せず）からの制御信号に応答して選択し、選択されたパケットストリームソースからパケットストリームを適応トランスポートプロトコル復号器３０へ供給する。適応トランスポートプロトコル復号器３０は、各パケットを受信したときに解析し、そのパケットの適切な処理を、そのパケットのトランスポートプロトコルに応じて実行して、以下でより詳細に説明する方法で、そのパケットからペイロードデータを抽出する。抽出されたペイロードデータは、ペイロードプロセッサ４０へ供給される。
【００１０】
ペイロードプロセッサ４０は、ペイロードデータを処理して、そのデータに対応する信号を生成し、その信号をユーザインタフェース５０へ供給する。たとえば、適応トランスポートプロトコルアダプタ３０から抽出されたペイロードデータがＭＰＥＧ２で符号化されたデジタルビデオデータである場合、ペイロードプロセッサ４０は、既知のＭＰＥＧ復号器を含み、これがＭＰＥＧ規格に従ってＭＰＥＧ２ビデオデータを復号して、標準ビデオ信号（たとえば米国ではＮＴＳＣビデオ信号）を生成する。次いで、ビデオ信号がユーザインタフェース５０へ供給され、この場合はこれがビデオモニタであり、ビデオ信号によって表された画像を表示する。
【００１１】
図２は、異なるプロトコルを有する２つのパケットのフォーマットを示す図である。図２に示すパケットは例示的なものにすぎず、いかなる既知のプロトコルのパケットを表すものでもない。図２では、第１のプロトコルを有するパケットを、符号Ａ）を付した長方形として示し、第２のプロトコルを有するパケットを、符号Ｂ）を付した長方形として示す。長方形の長さは、パケットの相対的サイズ（ビット数）を示すものであり、同様に、パケット内のサブセクションの長さは、そのサブセクションの相対的サイズ（ビット数）を示すものである。図２に示すように、各パケットＡ）およびＢ）は、固定の所定数のビットを含み、パケットＡ）のビット数はパケットＢ）のビット数とは異なる（たとえば、それよりも少ない）。パケットＡ）およびＢ）は共に、制御情報（以下でより詳細に説明する）を含むヘッダ、およびパケットによって搬送されたデータを含むペイロードからなる。また図２に示すように、パケットＡ）およびＢ）のペイロードは、固定の所定数のビットを含み、パケットＡ）のペイロードのビット数は、パケットＢ）のペイロードのビット数とは異なる（たとえば、それよりも少ない）。
【００１２】
ヘッダ内の制御情報を（他のものの間で）使用して、パケットペイロードに含まれたデータの内容を識別し、これを経路指定する。図２では、ヘッダ情報のフォーマットを、パケットＡ）およびＢ）について拡張形式で表示する。たとえば、各ペイロードは、たとえばビデオ、オーディオ、データなど特定タイプの信号を表すデータを搬送し、このデータを他のタイプとは異なるように処理しなければならない。パケットペイロード内のデータのタイプを示す制御情報（ＴＹＰＥ）が、パケットＡ）およびＢ）のパケットヘッダに含まれる。また、パケットストリームには、単一の信号を表すデータを搬送するデータストリームもあり、そのデータストリームを搬送するこれらのパケットのペイロードを連結することによって形成される。たとえば、テレビ番組を搬送するＤＳＳチャネルには、異なる言語を表すいくつかのオーディオ信号、または異なる言語によるクローズドキャプション（closed captioning）を表すいくつかのデータチャネル、または異なるカメラ角度またはペアレンタル・アプローバル・レベル（parental approval level）からの画像を表すいくつかのビデオチャネルがある可能性がある。このような各データストリームは、一意のパケット識別子（ＰＩＤ）によって識別され、これはパケットＡ）およびＢ）のパケットヘッダに含まれている。さらに、ペイパービューチャネルを容易にするために、パケット内のペイロードデータを暗号化してもよく、また暗号化しなくてもよい。パケットＡ）およびＢ）の各ヘッダは、制御情報（Ｅ）を含み、そのパケット内のペイロードデータを解読する必要があるかどうかを示す。
【００１３】
図３は、図１に示すシステムに使用することができる適応トランスポートプロトコル復号器３０の、より詳細なブロック図である。図３の適応トランスポートプロトコル復号器３０は、セレクタ２０（図１）の出力端子に結合された入力端子を含む。適応トランスポートプロトコル復号器３０の入力端子は、サービス検出部３１、暗号解読部３３、トランスポート復号部３５、バッファメモリ３７およびアプリケーション制御回路３９の直列接続に結合される。コントローラ３２は、マイクロプロセッサ（図示せず）を含むことができ、サービス検出部３１、暗号解読部３３、トランスポート復号部３５、バッファメモリ３７およびアプリケーション制御回路３９のそれぞれの制御入力端子に結合された制御信号出力端子を有する。メモリバスは、コントローラ３２および内部メモリ３４（読取り／書込みメモリ（ＲＡＭ）および読取り専用メモリ（ＲＯＭ）を共に含むことができる）および外部メモリ３４′の間に結合されている。サービス検出部３１、暗号解読部３３、トランスポート復号部３５、バッファメモリ３７、アプリケーション制御回路３９、コントローラ３２および内部メモリ３４は、集積回路（ＩＣ）チップ内に組立てることができ、外部メモリ３４′は、ＩＣチップの外部に存在する。
【００１４】
動作する際には、サービス検出部３１が、セレクタ２０から選択したパケットストリームを受信する（上述のように）。サービス検出部３１は、各パケットの開始および終了を、既知の方法で検出する。たとえば、ＡＴＳＣで符号化されたＭＰＥＧ２パケットストリームでは、パケットが、たとえば４７Ｈなどの所定の値を有する同期バイトによって、パケットストリーム内の所定の位置で区切られる。図２を参照して、このような同期バイト（ＳＢ）をパケットＡ）内に破線で示す。これは、同期バイトＳＢがパケット自体の一部ではないからである。サービス検出部３１は、同期バイトを使用してパケットの開始と終了を検出することができる。しかし、ＤＳＳパケットストリームには、同期バイトが存在しない。ＤＳＳパケットストリームでは、パケットの開始および終了が、選択されたパケットストリームソース１０内の同期検出手段によって検出され、選択されたパケットストリームソース１０は、すべて既知の方法で各パケットの開始を示す信号を生成する。このようなパケットストリームでは、サービス検出部３１がこの信号を使用して、パケットの開始および終了を検出することができる。図示の実施形態では、同期バイト（４７Ｈ）がサービス検出部３１によってＤＳＳパケットの間に挿入される。すべてのパケットが同期バイトによって分離されるので、ダウンストリーム処理が、異なるプロトコルについてより均一となる。
【００１５】
各パケットが分離されたとき、次いでサービス検出部３１は、受信されたパケットが現在受信中のデータストリームに属するかどうかを判定する。たとえば、いくつかのオーディオデータストリームが選択パケットストリーム内にある可能性があるが、通常はただ１つまたは２つのみが受信され、さらに処理される。具体的には、図示の実施形態では、最大８データストリームを受信することができる。しかし、当業者には、同時に受信することができるデータストリーム数に固有の制限がないことが理解されよう。上述のように、各パケットのヘッダ内のＰＩＤが、そのパケットが属するデータストリームを識別する。受信システムは１組のレジスタを維持し、これらが現在受信および処理中のデータストリームのＰＩＤを含む。各受信パケットについて、サービス検出部３はＰＩＤを抽出する。上述のように、ＰＩＤは異なる場所に配置することができ、異なる長さを有し、異なる方法で異なるプロトコルにより符号化することができる。以下でより詳細に説明する方法で、サービス検出部３１は、コントローラ３２からの制御信号に応答して、パケットのプロトコルに適切なヘッダ位置からＰＩＤを抽出する。抽出されたＰＩＤは、適応トランスポートプロトコル復号器３０内のレジスタに格納される。これを、図２において、パケットＡ）およびＢ）のＰＩＤの位置からＰＩＤレジスタへの曲線で示す。このパケットによって搬送されたデータストリームをさらに処理するかどうかを判定するための残りの処理は、ＰＩＤレジスタ内のデータ上で動作する。たとえば、ＰＩＤレジスタ内のＰＩＤを、受信システムの１組のレジスタ内のＰＩＤと比較することができる。一致する場合、このパケットはさらに処理されるものであり、次いで暗号解読部３３によって処理される。そうでない場合、このパケットは無視され、次に受信したパケットが上述のように処理される。
【００１６】
暗号解読部３３は、このパケットのペイロードが暗号化されているかどうかを示すヘッダ情報を抽出する。上述のように、暗号化情報Ｅは異なる場所に配置することができ、異なる長さを有し、異なる方法で異なるプロトコルにより符号化することができる。以下でより詳細に説明する方法で、暗号解読部３３は、コントローラ３２からの制御信号に応答して、パケットのプロトコルに適切なヘッダ位置から暗号化情報Ｅを抽出する。サービス検出部３１に類似の方法で、抽出された暗号化情報Ｅは、適応トランスポートプロトコル復号器３０内のレジスタに格納される。これを、パケットＡ）およびＢ）の暗号化情報Ｅの位置からＥレジスタへの曲線で示す。このパケットを解読する必要があるかどうかを判定するための残りの処理は、Ｅレジスタ内のデータ上で実行される。暗号化情報Ｅが、このパケットは暗号解読する必要があることを示す場合、暗号解読部３３は、このパケットを暗号解読して、さらに処理することができるプレーンテキストのパケットを生成する。そうでない場合、暗号解読部３３は、このパケットを変更せずにトランスポート復号部３５へ渡す。
【００１７】
トランスポート復号部３５は、受信されたパケットからのペイロードを、受信されたパケット内のその位置から抽出する。上述のように、ペイロードは異なる場所に配置することができ、異なるプロトコルで異なる長さを有することができる。トランスポート復号部３５は、抽出したペイロードをバッファメモリ３７に配置する。次いで、アプリケーション制御回路３９が、バッファされたペイロードをバッファメモリから検索し、これらを適切なペイロード処理回路へ経路指定する。以下でより詳細に説明する方法で、アプリケーション制御回路３９は、コントローラ３２からの制御信号に応答して、パケットのプロトコルに適切なヘッダ位置からデータストリームタイプ情報ＴＹＰＥを抽出する。抽出されたデータストリームタイプ情報ＴＹＰＥは、適応トランスポートプロトコル復号器３０内のレジスタに格納される。これを、パケットＡ）およびＢ）のデータストリームタイプ情報ＴＹＰＥの位置からＴＹＰＥレジスタへの曲線で示す。このパケットのペイロードを経路指定すべき場所を決定するための残りの処理は、ＴＹＰＥレジスタ内のデータ上で実行される。具体的には、ＴＹＰＥレジスタ内のデータが読み込まれ、評価され、アプリケーション制御回路３９がペイロードを、ペイロードプロセッサ４０（図３）の適切なプロセッサへ経路指定する。たとえば、ペイロードが、ＭＰＥＧで符号化されたビデオデータを搬送する場合、このペイロードがＭＰＥＧ復号器へ供給される。ペイロードがクローズドキャプション情報を搬送する場合、このペイロードがオンスクリーン表示生成器などへ供給される。
【００１８】
図３は、例示的なものにすぎず、受信したトランスポートパケットを処理するための最小セットの回路である。しかし、当業者には、他の処理がトランスポートパケットを正確に復号するために要求されることが理解されよう。たとえば、パケットストリームは、補助データを搬送するトランスポートパケットを含むことができる。補助データは、データストリームのペイロードデータ部分ではないが、その代わりに、受信システム自体が使用するための状態および制御情報を搬送する。加えて、いくつかのプロトコルは、ペイロードおよび補助データの組合せを単一のトランスポートパケット内に許容することができる。さらに、異なるプロトコルが、ヘッダ内に他の情報を含め、データをそれぞれ異なる方法で搬送し、対応する異なる処理を必要とすることがある。これらのプロトコルでトランスポートパケットを復号する分野の当業者には、これらのプロトコルでは他に何の処理が必要であるか、何の処理要素がその処理を提供するために必要であるか、およびこれらの処理要素を設計し、実施する方法が理解されよう。
【００１９】
図４は、図３に示す適応トランスポートプロトコル復号器３０のメモリ３４／３４′のレイアウト図であり、様々なソフトウェア構成要素（格納およびコード）を示す。図４の構成は、概略的なものにすぎず、図示の構成要素の相対的または絶対的な位置またはサイズを示すものではなく、メモリ３４または３４′のいずれかにおけるそれらの配置を示すものでもない。図４では、適応トランスポートプロトコルアダプタ３０の動作が、パケットが使用可能なときに、選択されたパケットストリームソース１０によって生成された、外部のハードウェア生成の割込み要求（ＩＮＴ  ＲＥＱ）信号によって呼び出される。割込み要求信号（ＩＮＴ  ＲＥＱ）は、適応トランスポートプロトコル復号器３０へ、セレクタ２０を介して供給される。この割込み要求信号（ＩＮＴ  ＲＥＱ）は、コントローラ３２に組込まれたマイクロプロセッサ（図示せず）の割込み機構によって処理される。割込み要求（ＩＮＴ  ＲＥＱ）信号は、マイクロプロセッサにその処理を中断させて、即時にパケットハンドラ１０４の処理を開始させる。これは、メモリ内の所定の固定位置に格納された割込みベクトル１０２の外部ハードウェア割込み要求信号（ＩＮＴ  ＲＥＱ）に関連付けられた割込みポインタＰＮＴＲ（０）によって指示された記憶場所で、すべて既知の方法で行われる。割込みポインタＰＮＴＲ（０）は、パケット（割込み）ハンドラ１０４の記憶場所を含み、これがこの割込みを処理するために指定される。割込みハンドラ１０４は、使用可能パケットがさらに処理されるか否かを判定し、必要であればパケットを解読し、ペイロードを抽出し、抽出したペイロードをさらにそれが処理されるまでバッファに格納するために必要な処理（および他の任意の必要な処理）を、上述のように実行する。新規に使用可能なパケットの処理を、マイクロプロセッサによる状態ポーリングによって、または他の任意の既知の方法によって、開始させることも可能である。
【００２０】
マイクロプロセッサ（図示せず）がこの方法で割り込まれたとき、マイクロプロセッサプログラム実行の現行状態（プログラムカウンタ、レジスタ、フラグなど）がスタック１１０上へ押し出され、割込みベクトル１０２内の割込みポインタＰＮＴＲ（０）によって指示された割込みルーチン１０４が、ポインタＰＮＴＲ（０）内のアドレスで開始して実行される。これはプログラム環境を切り替える迅速な方法なので、上述の割込みプロセスは、時間にクリティカルなアプリケーションでは、ソフトウェア割込みというソフトウェア命令を介して呼び出すこともできる。たとえば、ルーチンＤＶＲ（１）は、割込みポインタＰＮＴＲ（１）によって指示されたルーチンを呼び出すソフトウェア割込みによって呼び出すことができ、ルーチンＤＶＲ（２）は、割込みポインタＰＮＴＲ（２）によって指示されたルーチンを呼び出すソフトウェア割込みによって呼び出すことができ、以下同様である。図４では、割込みハンドラ１０４は、様々なドライバルーチン１０６を、割込みベクトル１０２内の適切な割込みポインタＰＮＴＲ（ｘ）を対象としたソフトウェア割込みを介して呼び出す。これを、図４で、割込みハンドラ１０４から割込みベクトル１０２への太線の矢印によって示す。さらに（図を簡素化するために図４には図示しないが）、ドライバルーチンＤＶＲ（ｘ）が他のドライバルーチンＤＶＲ（ｘ）を、所望のドライバルーチンＤＶＲ（ｘ）の割込みベクトル１０２内の割込みポインタＰＮＴＲ（ｘ）を指定するソフトウェア割込みを通じて、呼び出すことが可能である。
【００２１】
図４では、バッファメモリ３７が、抽出された４つのペイロードに十分なメモリ（ＢＵＦＦＥＲ（１）からＢＵＦＦＥＲ（４））を含む。ペイロードがパケットから抽出されたとき、これは次に使用可能なバッファ内に格納され、このペイロードに適切なペイロードプロセッサ４０は、バッファメモリ３７内のこのペイロードの位置を通知される。これに応答して、ペイロードプロセッサ４０は、そのバッファからペイロードを検索し、適切な方法で処理する。
【００２２】
図示の実施形態では、適応トランスポートプロトコル復号器３０およびそのメモリ３４／３４′を、ＤＳＳトランスポートプロトコルパケットまたはＡＴＳＣトランスポートプロトコルパケットのいずれかを処理するように構成することができる。ＤＳＳプロトコルパケットを処理するために必要な割込みハンドラ１０４およびドライバルーチン１０６の設計および実装、割込みハンドラ１０４およびドライバルーチン１０６を構成する命令、および、割込みベクトル１０２に対する割込みハンドラ１０４およびドライバルーチン１０６のアドレスは、すべて既知であり、詳細には説明しない。加えて、バッファメモリ３７内のバッファのサイズも既知であり、ＤＳＳトランスポートパケットのペイロードは１２７バイトの長さである。同様に、ＡＴＳＣプロトコルパケットを処理するために必要な特定のルーチン、割込みハンドラ１０４およびドライバルーチン１０６を構成する命令、割込みベクトル１０２に対する割込みハンドラ１０４およびドライバルーチン１０６のアドレスは、すべて既知であり、詳細には説明しない。また、バッファメモリ３７内のサイズも既知であり、すなわちＡＴＳＣトランスポートパケットのペイロードは１８４バイトの長さである。
【００２３】
図５は、ＤＳＳトランスポートプロトコルパケットを処理するために構成された、図４に示す様々なソフトウェア構成要素を示すメモリレイアウト図である。図５では、図４に示したものと同じ要素を同じ参照番号で示し、詳細には説明しない。図４のように、図５の構成は概略的なものにすぎず、図示の構成要素の相対的または絶対的な位置またはサイズを示すものではない。
【００２４】
適応トランスポートプロトコル復号器３０ＩＣチップの内部のメモリ３４の量には制限がある。したがって、ソフトウェア構成要素のいくつかの部分が外部メモリ３４′内に位置しなければならない。図５では、ＤＳＳドライバルーチンＤＶＲ（１）からＤＶＲ（Ｎ）が、内部メモリ３４の制御読取り専用メモリ（ＲＯＭ）３４２内に位置する。ＤＳＳベクトルテーブル１０２、スタック１１０およびペイロードバッファ３７は、完全に内部メモリ３４の内部ＲＡＭ３４４内に位置する。しかし、メモリサイズの制約のため、ＤＳＳ割込みハンドラ１０４（１）の一部のみが内部ＲＡＭ３４４内に位置する。ＤＳＳ割込みハンドラ１０４（２）の残りは、外部ダイナミックＲＡＭ（ＤＲＡＭ）３４′内に位置する。上述のように、ＤＳＳプロトコルトランスポートパケットを復号するためのＤＳＳソフトウェア構成要素の設計、実装および動作は既知であり、本明細書では説明しない。
【００２５】
図５では、復号ＡＴＳＣトランスポートパケットが外部ＤＲＡＭ３４′に格納されているときに、適応トランスポートプロトコル復号器３０の動作を制御するための、ＡＴＳＣ割込みベクトル１０２′、ソフトウェア割込みドライバ１０６′および割込みハンドラ１０４′も見ることができるが、これらは利用しない。
【００２６】
動作する際には、ＤＳＳ割込みハンドラ１０４が外部割込み信号（図示せず）によって呼び出されたとき、ＤＳＳ割込みハンドラ１０４は、適切なＤＳＳドライバルーチン１０６を呼び出して、受信したトランスポートパケットを処理し、ヘッダからデータを抽出し、必要ならばペイロードを暗号解読し、ペイロードをバッファ３７の１つに格納し、コントローラ３２の制御下にある適切なペイロードプロセッサ４０に通知する。これは上述のように、すべて既知の方法で行われる。
【００２７】
図６は、ＡＴＳＣトランスポートプロトコルパケットを処理するために構成された、図４に示す様々なソフトウェア構成要素を示すメモリレイアウト図である。図６では、図４および図５に示したものと同じ要素を同じ参照番号で示し、詳細には説明しない。図４および図５のように、図６の構成は概略的なものにすぎず、図示の構成要素の相対的または絶対的な位置またはサイズを示すものではない。
【００２８】
図５のように、ソフトウェア構成要素のいくつかの部分が外部メモリ３４′内に位置しなければならない。図６では、割込みベクトル１０２′およびペイロードバッファ３７が、完全に内部メモリ３４の内部ＲＡＭ３４４内に位置する。しかし、メモリサイズの制約のため、スタック１１０（１）の一部のみが内部ＲＡＭ３４４内に位置する。スタック１１０（２）の残りは、外部ＤＲＡＭ３４′内に位置する。ＡＴＳＣ割込みハンドラ１０４′およびＡＴＳＣドライバルーチン１０６′は、完全に外部ＤＲＡＭ３４′内に位置する。上述のように、ＡＴＳＣプロトコルトランスポートパケットを復号するためのＡＴＳＣソフトウェア構成要素の設計、実装および動作は既知であり、本明細書では説明しない。
【００２９】
図６では、ＤＳＳ割込みドライバ１０６が、依然として内部メモリ３４の制御ＲＯＭ３４２内に位置することも見ることができる。ＤＳＳ割込みベクトル１０２および割込みハンドラ１０４は、外部ＤＲＡＭ３４′に格納される。これらのいずれも利用しない。
【００３０】
動作する際には、ＡＴＳＣ割込みハンドラ１０４が外部割込み信号（図示せず）によって呼び出されたとき、ＡＴＳＣ割込みハンドラ１０４が適切な割込みドライバを呼び出して、受信したトランスポートパケットを処理し、データをヘッダから抽出し、必要ならばペイロードを暗号解読し、ペイロードをバッファ３７の１つに格納し、コントローラ３２の制御下にある適切なペイロードプロセッサ４０を通知する。これは上述のように、すべて既知の方法で行われる。
【００３１】
また、内部メモリ３４の制御ＲＯＭ３４２のＤＳＳ割込みドライバ１０６の割込みドライバが、ＡＴＳＣトランスポートパケットを復号するときに必要となる機能を実行することもできる。図６では、ＡＴＳＣ割込みポインタＰＮＴＲ（２）は、ＤＳＳ割込みドライバセット１０６の割込みドライバＤＶＲ（２）を指示する。したがって、このドライバの機能を、ＡＴＳＣ割込みドライバセット１０６′で再生成する必要はない。たとえば、上述のように、情報がパケットのヘッダから抽出され、さらに処理するためにレジスタに入れられる。割込みドライバＤＶＲ（ｎ）は、情報がヘッダ内のどこから出たかに関わらず、このレジスタにアクセスすることによってペイロードタイプを処理することができる。次いで、このような割込みドライバＤＶＲ（ｎ）を、適応トランスポートプロトコル復号器３０が処理するように設計されているすべてのプロトコルの間で、共有することができる。具体的には、上述のように、ＰＩＤがパケットのヘッダから抽出され、ＰＩＤレジスタに入れられる。次いでこのレジスタの内容が、現在受信中のデータストリームを識別するＰＩＤのテーブルと比較される。ＰＩＤがパケットのヘッダから抽出され、レジスタに入れられた後、レジスタ内のＰＩＤをＰＩＤのテーブルと比較する割込みドライバを、すべてのトランスポートパケットプロトコル制御プログラムの間で共有することができる。
【００３２】
図７は、ＤＳＳトランスポートパケットの復号化とＡＴＳＣトランスポートパケットの復号化の間でモードを切り替えるプロセスを示すフローチャートである。ＤＳＳトランスポートパケットおよびＡＴＳＣトランスポートパケットの復号化の切替えは、様々な既知の方法のいずれによっても開始することができる。たとえば、図１を参照すると、ユーザの制御下において、ユーザが、そのプログラミングを見ることが所望されるパケットストリームを選択する。パケットストリームソース１２がＤＳＳプロトコルでパケットを生成した場合、パケットストリームソース１２がセレクタ２０によって適応トランスポートプロトコル復号器３０へ結合されるとき、適応トランスポートパケット復号器は、同時にＤＳＳトランスポートパケットを復号するように構成される。パケットストリームソース１４がＡＴＳＣプロトコルでパケットを生成した場合、パケットストリームソース１４がセレクタ２０によって適応トランスポートプロトコル復号器３０へ結合されるとき、適応トランスポートプロトコル復号器３０は、同時にＡＴＳＣトランスポートパケットを復号するように構成される。代わりに、いくつかのオンラインプログラムディレクトリが存在し、これらが、リストされたプログラムのプロトコルを搬送することができる。プログラムが選択されたとき、ディレクトリが調べられ、適応トランスポートプロトコル復号器３０がそれに従って構成される。適応トランスポートプロトコル復号器３０を構成するための他の方法も使用可能である。
【００３３】
図７では、プロトコルの切替えがステップ２０２で開始される。ステップ２０４で、メモリがペイロードバッファ３７に再配置される。たとえば、ＤＳＳペイロードバッファは１２７バイトを含み、ＡＴＳＣペイロードバッファは１８４バイトを含む。ステップ２０６で、ソフトウェア（Ｓ／Ｗ）ポインタが調節される。図示の実施形態では、適応トランスポートプロトコル復号器３０がＤＳＳパケットを復号するように構成されるとき、ＤＳＳ割込みベクトル１０２（これらは外部ＤＲＡＭ３４′に格納されており、適応トランスポートプロトコル復号器３０は、ＡＴＳＣトランスポートパケットを処理するように構成される）が内部メモリ３４の内部ＲＡＭ３４４へ移動され、ＡＴＳＣ割込みベクトル１０２′は、同時に内部メモリ３４の内部ＲＡＭ３４４から外部ＤＲＡＭ３４′へ移動される。次いで、メモリは、スタック１１０に割り振られる。最後に、ＤＳＳ割込みハンドラ１０４（１）の一部で、内部メモリ３４の内部ＲＡＭ３４４内に位置することになる部分が、その配置された位置へ移動される。
【００３４】
逆に、適応トランスポートプロトコル復号器３０がＡＴＳＣパケットを復号するように構成されるとき、ＡＴＳＣ割込みベクトル１０２′（これらは外部ＤＲＡＭ３４′に格納されており、適応トランスポートプロトコル復号器３０は、ＤＳＳトランスポートパケットを処理するように構成される）が内部メモリ３４の内部ＲＡＭ３４４へ移動され、ＤＳＳ割込みベクトル１０２は、同時に内部メモリ３４の内部ＲＡＭ３４４から外部ＤＲＡＭ３４′へ移動される。次いで、メモリは、スタックの一部１１０（１）に割り振られ、この部分が内部メモリ３４の内部ＲＡＭ３４４に位置することになる。
【００３５】
ステップ２０８で、受信パケットのヘッダから抽出された様々な情報を保持するレジスタ（図１）がクリアされる。ステップ２１０で、切替えプロセスが完了し、適応トランスポートプロトコル復号器３０は、新たに選択したプロトコルでパケットを復号する準備ができる。
【００３６】
適応トランスポートプロトコル復号器３０を、ＤＳＳおよびＡＴＳＣの２つのトランスポートプロトコルに関して説明した。当業者には、追加のプロトコルが、割込みハンドラ１０４および割込みドライバ１０６の適切な設計およびコーディングによって実装されて、ヘッダを処理してこれらのプロトコルのパケットからペイロードを抽出し、次いで適応トランスポートプロトコル復号器３０を再構成して、そのプロトコル用の割込みベクトル１０２のコーディングを介して適切な割込みハンドラ１０４および割込みドライバ１０６を使用することができることが理解されよう。ソフトウェア割込みを、必要とされる処理を実行するために使用することによって、高速な文脈切替え、および高速で容易な適応トランスポートプロトコルアダプタ３０の再構成を提供することができる。
【図面の簡単な説明】
【図１】本発明にかかる適応トランスポート復号器を含むシステムのブロック図である。
【図２】図１の適応トランスポート復号器の動作を理解するために有用な、異なるプロトコルを有する２つのパケットのフォーマットを示す図である。
【図３】図１に示すシステムに使用することができる適応トランスポートプロトコル復号器のより詳細なブロック図である。
【図４】図３に示す適応トランスポートプロトコル復号器の一実施形態で使用することができる、様々なソフトウェア構成要素を示すメモリレイアウト図である。
【図５】ＤＳＳトランスポートプロトコルパケットを処理するために構成された、図４に示す様々なソフトウェア構成要素を示すメモリレイアウト図である。
【図６】ＡＴＳＣトランスポートプロトコルパケットを処理するために構成された、図４に示す様々なソフトウェア構成要素を示すメモリレイアウト図である。
【図７】ＤＳＳトランスポートパケットの復号化とＡＴＳＣトランスポートパケットの復号化の間でモードを切り替えるプロセスを示すフローチャートである。
【符号の説明】
１０，１２，１４，１Ｎ    パケットストリームソース
２０    セレクタ
３０    適応トランスポートプロトコル復号器
３１    サービス検出部
３２    コントローラ
３３    暗号解読部
３４    内部メモリ
３４′    外部メモリ
３５    トランスポート復号部
３７    バッファメモリ
３９    アプリケーション制御回路
４０    ペイロードプロセッサ
５０    ユーザインタフェース
１０２，１０２′    割込みベクトル
１０４，１０４′    割込みハンドラ
１０６，１０６′    ドライバルーチン
１１０    スタック
３４２    制御ＲＯＭ
３４４    内部ＲＡＭ
【図１】
0004842423.tif 000002
【図２】
0004842423.tif 000003
【図３】
0004842423.tif 000004
【図４】
0004842423.tif 000005
【図５】
0004842423.tif 000006
【図６】
0004842423.tif 000007
【図７】
0004842423.tif 000008