(57)【特許請求の範囲】
【請求項１】
プログラムコンポーネントの時分割多重化パケットを有する信号を処理するオーディオ／ビデオ信号トランスポート・プロセッサにおける装置であって、各パケットがコンポーネントデータのペイロードおよびコンポーネント識別子であるＳＣＩＤを持つヘッダを有し、所定のコンポーネントの各ペイロードが各パケットから抽出されバッファメモリにストアされ、前記装置は、検出された前記識別子に応答して、相互に排他的なダイレクト・メモリ・アクセス・アドレス・シーケンスを生成し、前記バッファメモリの相互に排他的なブロックにコンポーネントデータのペイロードを書き込むダイレクト・メモリ・アクセス回路を有することを特徴とする装置。
【請求項２】
請求項１に記載の装置において、前記ダイレクト・メモリ・アクセス回路に適用するための複数のＮビット（Ｎは整数）のスタートおよびエンド・ポインタを生成し前記バッファメモリの相互に排他的なブロックを決定するようにプログラムされた制御装置をさらに有することを特徴とする装置。
【請求項３】
請求項２に記載の装置において、前記ダイレクト・メモリ・アクセス回路は、前記複数のＮビットのスタート・ポインタおよびＮビットのエンド・ポインタを各々ストアする第１および第２のような複数のレジスタと、１つのユニットによって連続するライトアドレスをインクリメントするアキュムレータを有する前記Ｎビットスタート・ポインタからライトアドレスを形成する手段とを有することを特徴とする装置。
【請求項４】
請求項１に記載の装置において、前記ダイレクト・メモリ・アクセス回路の各１つが、相互に排他的なメモリブロックに関連する外側のアドレスを生成することを防止するコンパレータを含む回路をさらに有することを特徴とする装置。
【請求項５】
請求項１に記載の装置において、前記ダイレクト・メモリ・アクセス回路から前記バッファメモリのアドレスポートへのアドレスを多重化するマルチプレクサをさらに有することを特徴とする装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、パケット・ビデオ信号からのプログラム・コンポーネント・データのパケットを処理し、異なるプログラム信号コンポーネントの対応するペイロードを抽出する装置に関する。本発明は、トランスポート・バッファ・メモリをアドレシングする装置を含むと共に、共通トランスポート・バッファ・メモリを利用するという考え方を取り入れている。
【０００２】
なお、本明細書の記述は本件出願の優先権の基礎たる米国特許出願第０８／２３２，７８７号（１９９４年４月２２日出願）および第０８／２３２，７８９号（１９９４年４月２２日出願）の明細書の記載に基づくものであって、当該米国特許出願の番号を参照することによって当該米国特許出願の明細書の記載内容が本明細書の一部分を構成するものとする。
【０００３】
【背景技術】
圧縮ビデオ信号をパケットで送信し、それぞれのパケットにエラー保護／訂正の機能をもたせるとよいことは、例えば、米国特許第５，１６８，３５６号および米国特許第５，２８９，２７６号から公知である。これらの特許におけるシステムでは、複数のプログラム・コンポーネントからなるとしても、単一のテレビジョン・プログラム（番組）がそれぞれの伝送チャネルから送信され、処理されている。これらのシステムでは、逆トランスポート・プロセッサ(inverse transport processor) を利用して、それぞれのプログラムのビデオ信号コンポーネントを抽出し、別の処理を受けてからビデオ・コンポーネントが再生されるようになっている。第５，２８９，２７６号特許では、ビデオ信号コンポーネントを処理することだけが開示されている。また、第５，１６８，３５６号特許では、他のプログラム・コンポーネントを分離する逆トランスポート・プロセッサが説明されており、単純なデマルチプレクサ(demultiplexer) がパケット・ヘッダ・データに応じてそれぞれの信号コンポーネントを区別するようになっている。分離されたビデオ・コンポーネントはバッファ・メモリと結合され、残りの信号コンポーネントはそれぞれの処理回路と直接に結合されていることが示されている。
【０００４】
コードをテレビション信号と一緒に送信すると、対話式プログラミング(interactive programming) を実現できることは、米国特許第５，２３３，６５４号から公知である。このコードは、テレビジョン受信機(television receiver) に関連するコンピュータによって操作されるか、あるいは実行されているのが代表的である。
【０００５】
プログラム・コンポーネントの大部分が圧縮されているようなアプリケーションでは、伝送チャネルとそれぞれのコンポーネント処理（圧縮解除-decompression) 装置の大部分との間に、ある種のバッファリング(buffering) が必要である。従って、すべてのコンポーネントではないとしても、その大部分をバッファ・メモリと結合しておくことが望ましい。異なるプログラム・コンポーネントのデータ・レート(data rate) は、それぞれのコンポーネント間でも、それぞれのコンポーネント内でも大幅に変化する場合がある。従って、各コンポーネントを別々にバッファリングすると有利である。圧縮されたプログラム・コンポーネント・データをバッファリングしたり、対話式プログラム一般を処理したりするためのバッファ・メモリは重要である。実際、バッファ・メモリは受信システムのコストに顕著に貢献している。
【０００６】
逆トランスポート・プロセッサが、例えば、セット・トップ・ボックス(set top box：テレビの上に置くすえ置き型の受信装置）に内蔵されている場合は、メモリ・サイズとメモリ管理回路は、利用者のコストをできる限り低く抑えるために最小限にしておく必要がある。従って、経済的に望ましいことは、プログラム・コンポーネントのバッファリング、プロセッサのハウスキーピング(house keeping) 、および対話式機能用に同一のメモリとメモリ管理回路を使用することである。
【０００７】
【発明の概要】
本発明は、ＴＤＭパケット信号受信装置用の逆トランスポート・プロセッサ・システムである。このシステムは、プログラム・コンポーネント・データの必要とするペイロードを選択的に抽出し、そのデータを共通バッファ・メモリのデータ入力ポートと結合するための装置を備えている。マイクロプロセッサはデータを生成し、このデータも共通バッファ・メモリのデータ入力ポートに入力される。それぞれのコンポーネント・ペイロードとマイクロプロセッサによって生成されたデータは、アドレス・マルチプレクサによってメモリ・アドレス入力ポートに入力される関連のメモリ・アドレスに応じて共通バッファ・メモリのそれぞれのブロックにストアされる。
【０００８】
特定の実施例では、それぞれのプログラム・コンポーネントのプログラム・コンポーネント・パケット・ペイロードは多重化されてメモリ・データ入力ポートに入力され、複数の開始ポインタ(start pointer) と終了ポインタ (end pointer)に従って、ランダム・アクセス・メモリ(RAM) の選択エリア(select area) へ送られる。開始ポインタと終了ポインタは、各プログラム・コンポーネント用に１つあて設けられており、第１の複数のレジスタにストアされる。アドレスはその一部が、加算器(adder) と多重化された複数の読取りポインタ・レジスタ(read pointer register) によって生成され、それぞれのプログラム・コンポーネントのポインタを連続的にインクリメントしていくようになっている。開始ポインタはメモリ・アドレスの読取りポインタと関連づけられ、読取りポインタは、それぞれのプログラム・コンポーネントに選択的に割り当てられた指定のメモリ・ブロック全体をスクロール(scroll)していく。
【０００９】
別の実施例では、暗号解読(decryption)デバイスを含んでいて、パケット固有(packet specific) の暗号解読キーに従ってペイロード・データを暗号解読するようにしている。
【００１０】
さらに別の実施例では、検出器(detector)を含んでいて、資格データ(entitlement data)を含むペイロードを検出するようにしている。資格データを含んでいるペイロードは共通バッファ・メモリを経由してスマート・カード(smart card)に送られ、スマート・カードはパケット固有の暗号解読キーを生成する。
【００１１】
メモリからのデータ出力は、それぞれのプログラム・コンポーネント・プロセッサと相互接続されたバスと結合されている。それぞれのプログラム・コンポーネント・プロセッサからのデータ要求と、コンポーネント・ペイロード・ソース(component payload source)からのデータ書込み要求を受けると、読取り機能と書込み機能のメモリ・アクセスが仲裁(arbitrate) されて、到来するプログラム・データの紛失を防止し、すべてのコンポーネント・プロセッサがサービスを受けるようにしている。
【００１２】
【実施例】
以下、添付図面を参照して本発明について説明する。
【００１３】
図１は、複数の異なるテレビジョンまたは対話式テレビジョン・プログラム(interactive television programs) のコンポーネントである信号パケットを表している、一連のボックスからなる信号ストリームを示す図である。以下の説明では、これらのプログラム・コンポーネントは圧縮データから形成されているものと想定しているので、それぞれのイメージ（画像、映像など）のビデオ・データ量は可変になっている。パケットは固定長になっている。類似の添字付きの英字が付いたパケットは、単一プログラムのコンポーネントを表している。例えば、Ｖｉ ，Ａｉ ，Ｄｉ はビデオ、オーディオおよびデータ・パケットを表し、Ｖ１ ，Ａ１ ，Ｄ１ と名づけたパケットは、プログラム１のビデオ、オーディオおよびデータ・コンポーネントを表し、Ｖ３ ，Ａ３１，Ａ３２，Ｄ３ は、プログラム３のビデオ、オーディオ１、オーディオ２およびデータ・コンポーネント３を表している。データ・パケットＤｉ には、例えば、受信装置内のある種のアクションを開始させるコントロール・データ(control data)を収めておくことが可能であり、また、例えば、受信装置内に置かれた、あるいは受信装置と関連づけられたマイクロプロセッサに実行させる実行可能コード（アプリケーションを構成している）を含めておくことも可能である。
【００１４】
一連のパケットの上段に示すように、特定のプログラムのそれぞれのコンポーネントは１つにグループ化されている。しかし、同一プログラムからのパケットは、一連のパケット全体に示すように、グループ化する必要はない。また、それぞれのコンポーネントが現れるシーケンスにも、特定の順序はない。
【００１５】
それぞれのパケットは、図２に示すようにプレフィックス(prefix)とペイロードを含むように配列されている。この例のプレフィックスは、５つのフィールドを構成する２個の８ビット・バイトからなり、そのうちの４フィールド（Ｐ，ＢＢ，ＣＦ，ＣＦ）は１ビット・フィールドであり、１フィールド（ＳＣＩＤ）は１２ビット・フィールドになっている。フィールドＣＦは、パケットのペイロードがスクランブル(scramble)されているかどうかを示すフラグを収めており、フィールドＣＳは、２つの代替アンスクランブル(unscrambling)キーのどちらを使用して、スクランブルされたパケットをアンスクランブルするかを示すフラグを収めている。すべてのパケットのプレフィックスは、パケット単位で境界合わせ(packet aligned)されているので、それぞれのフィールドのロケーションは容易に識別可能になっている。
【００１６】
すべてのペイロード内にはヘッダがあり、ヘッダはモジュロ１６の連続性カウント(continuity count)ＣＣと、プログラム・コンポーネント固有(program component specific)になっているＴＯＧＧＬＥフラグ・ビットを収めている。連続性カウントは、同一プログラム・コンポーネントの連続するパケットに連続番号を付けたものにすぎない。ＴＯＧＧＬＥフラグ・ビットは１ビット信号であり、これは、ビデオ・コンポーネントでは、ロジック・レベル(logic level) を変更するか、あるいはパケット内でトグルし、新しいピクチャ（フレーム）の始まりつまり、ピクチャ層ヘッダを収めているパケットを定義している。
【００１７】
図３は、テレビジョン信号受信装置のうち、逆トランスポート・プロセッサのエレメント（構成要素）を含んでいる部分を、ブロック形式で示す図である。信号はアンテナ１０によって検出され、チューナ検出器１１に入力され、そこで受信信号の特定周波数帯域(frequency band)が抽出され、ベースバンド圧縮信号が２進形式で得られる。周波数帯域はマイクロプロセッサ１９を通して利用者によって選択されるが、その方法は従来と同じである。通常、ブロードキャスト・ディジタル信号は、例えば、Reed-Solomon・フォワード・エラー訂正(forward error correcting - FEC)符号化を用いてすでにエラー符号化(error encoded) されている。従って、ベースバンド信号はＦＥＣデコーダ１２に入力される。ＦＥＣデコーダ１２は受信ビデオを同期化し、図１に示すタイプの信号パケット・ストリームを出力する。ＦＥＣ１２はパケットを定期的間隔で出力することも、例えば、メモリ・コントローラ１７からの要求を受けて出力することもできる。どちらの場合も、パケット・フレーミング(framing) または同期化信号がＦＥＣ回路から出力され、その信号はパケット情報がＦＥＣ１２から転送されるタイミングを示している。
【００１８】
検出された周波数帯域は、複数の時分割多重化(time division multiplexed) プログラムをパケット形式で収めていることがある。有用なものにするために、単一プログラムからのパケットだけを別の回路エレメントへ受け渡すようにすると好都合である。この実施例では、どのパケットが選択されるかが利用者に分かっていないものと想定している。この情報はプログラム・ガイド(program guide) に収められており、このガイド自身も、ＳＣＩＤを通してプログラム信号コンポーネント間を関係づけるデータからなるプログラムであり、例えば、加入者の資格に関する情報を含んでいることもある。このプログラム・ガイドは、それぞれのプログラムのオーディオ、ビデオ、およびデータ・コンポーネントのＳＣＩＤを、各プログラム別にリストしたものである。プログラム・ガイド（図１のパケットＤ４）には一定のＳＣＩＤが割り当てられている。電力が受信装置に供給されたとき、マイクロプロセッサ１９は、プログラム・ガイドに関連するＳＣＩＤを、同種のプログラマブルＳＣＩＤレジスタ・バンク１３のうちの１つにロードするようにプログラムされている。ＦＥＣ１２からの信号のそれぞれの検出パケットのプレフィックス部分のＳＣＩＤフィールドは、別のＳＣＩＤレジスタ１４に連続的にロードされる。プログラマブル・レジスタと受信ＳＣＩＤレジスタは比較(comparator)回路１５のそれぞれの入力ポートに結合されており、受信したＳＣＩＤはプログラム・ガイドＳＣＩＤと比較される。あるパケットのＳＣＩＤがプログラム・ガイドＳＣＩＤと一致していると、コンパレータ１５は、メモリ・コントローラ１７がそのパケットをメモリ１８内のあらかじめ決めたロケーションへ送って、マイクロプロセッサが使用できるようにする。受信したＳＣＩＤがプログラム・ガイドＳＣＩＤと一致していなければ、対応するパケットが破棄(dump)されるだけである。
【００１９】
マイクロプロセッサは、インタフェース２０を経由してユーザからプログラミング・コマンドが送られてくるのを待っている。なお、インタフェースとしてコンピュータのキーボードが示されているが、従来のリモート・コントロールにすることも、受信装置のフロントパネル・スイッチにすることも可能である。ユーザはチャネル４（アナログＴＶシステムの用語を用いるとすれば）で提供されるプログラムを見ることを要求することができる。マイクロプロセッサ１９は、メモリ１８にロードされているプログラム・ガイド・リストを走査して、チャネル４のプログラム・コンポーネントのそれぞれのＳＣＩＤを探し出し、これらのＳＣＩＤを、対応するコンポーネント信号処理経路(path)に関連づけられたレジスタ・バンク１３のプログラマブル・レジスタの他のそれぞれにロードすようにプログラムされている。
【００２０】
オーディオ、ビデオまたはデータ・プログラム・コンポーネントの受信パケットが、望みのプログラムのものであるときは、最終的に、それぞれのオーディオ２３、ビデオ２２、または補助データ２１（２４）信号プロセッサへ送らなければならない。データは相対的に一定レートで受信されるが、信号プロセッサは、通常、バースト(burst) 形式（例えば、それぞれの圧縮解除タイプに応じた）の入力データを要求している。図３のシステム例では、まず、それぞれのパケットはメモリ１８内のあらかじめ決めたメモリ・ロケーションへ送られる。そのあと、それぞれのプロセッサ２１〜２４はコンポーネント・パケットをメモリ１８に要求する。コンポーネントをメモリ経由で送ることにより、望ましい信号データ・レート・バッファリングまたはスロットリング(throttling)の方法が得られる。
【００２１】
オーディオ、ビデオおよびデータ・コンポーネントはあらかじめ決めたそれぞれのメモリ・ロケーションにロードされるので、信号プロセッサは、コンポーネント・データを都合よくバッファ・アクセス(buffered access) することができる。それぞれのコンポーネント・パケットのペイロードが該当のメモリ・エリアにロードされるようにするために、それぞれのＳＣＩＤコンパレータはこれらのメモリ・エリアに関連づけられている。この関連づけはメモリ・コントローラ１７に布線論理で行う(hardwired) ことができるが、関連づけをプログラマブルにすることも可能である。前者の場合は、特定の１つのプログラマブル・レジスタ１３は、それぞれオーディオ、ビデオおよびデータＳＣＩＤに常に割り当てられることになる。後者の場合は、オーディオ、ビデオおよびデータＳＣＩＤは、プログラマブル・レジスタ１３のどれにでもロードできるので、該当する関連づけは、それぞれのＳＣＩＤがプログラマブル・レジスタにロードされるときメモリ・コントローラ１７によりプログラムされることになる。
【００２２】
定常状態では、プログラムＳＣＩＤがプログラマブル・レジスタ１３にストアされると、受信信号パケットのＳＣＩＤは、プログラマブルＳＣＩＤレジスタに入っているＳＣＩＤのすべてと比較される。ストアされたオーディオ、ビデオまたはデータＳＣＩＤと一致するものが見つかると、対応するパケット・ペイロードは、それぞれオーディオ、ビデオまたはデータ・メモリ・エリアまたはブロックにストアされる。
【００２３】
それぞれの信号パケットはＦＥＣ１２から信号暗号解読器(signal decryptor)１６を経由してメモリ・コントローラ１７へ渡される。信号ペイロードだけがスクランブルされ、パケット・ヘッダは、未変更のまま暗号解読器から渡される。パケットをデスクランブル (descramble- 暗号解読）するかどうかは、パケット・プレフィックスに入っているＣＦフラグから判断され、パケットをどのようにデスクランブルするかはＣＦフラグから判断される。それぞれのパケットでＳＣＩＤが一致していないと、暗号解読器はデータを受け渡すことを禁止されるだけである。別の方法として、パケットでＳＣＩＤが一致していないとき、暗号解除器がその最後の設定状態(setting) に応じて暗号解読するのを許可し、メモリ書込みコントロールがそれぞれのパケットをダンプするのを禁止することも可能である。
【００２４】
暗号解読デバイスは、スマート・カード装置(smart card apparatus)３１から与えられる暗号解読キーでプログラムされている。スマート・カードは、プログラム・ガイドの特定パケットに入っている資格情報(entitlement information) に応じて該当の暗号解読キーを生成する。この例のシステムでは、２レベルの暗号化またはプログラム・アクセス、資格コントロール・メッセージＥＣＭ、および資格管理メッセージＥＭＭが採用されている。プログラム資格コントロールおよび管理情報は、プログラム・ガイドを構成するパケット・ストリームに含まれる特定ＳＣＩＤで識別可能なパケットに入っており定期的に送信される。これらのパケットに入っているＥＣＭ情報は、暗号解読器で使用される暗号解読キーを生成するためにスマート・カードによって使用される。また、これらのパケットに入っているＥＭＭ情報は、加入者が資格のあるプログラム内容を判断するために加入者固有(subscriber specific) のスマート・カードによって使用される。これらのパケット内のＥＭＭ視覚情報は地域固有(geographically specific) にすることも、グループ固有(group specific)にすることも、加入者固有(subscriber specific) にすることも可能である。例えば、この例のシステムは、料金請求(billing) 情報をスマート・カードからプログラム提供者、例えば、衛星放送会社へ伝達するためのモデム（図示せず）を含んでいる。スマート・カードは、例えば、受信側ロケーションのエリア・コードと電話交換局(telephone exchange)をもつようにプログラムすることが可能である。ＥＭＭには、スマート・カードによって処理されたとき、特定のプログラムを特定のエリア・コードで受信する資格を与えるか、あるいは拒否するデータを含めることができる。
【００２５】
プログラム提供者は、特定のエリアまたはグループを非常に短時間のリードタイム(lead time) でブラックアウト(black out−放送停止）する能力を望んでいる場合がある。例えば、放送会社は、フットボール・ゲームのチケットが売り切れていないとき、スタジアムにあるローカルのエリアでフットボール・ゲームをブラックアウトする必要が起こる場合がある。この情報は、ゲーム時間の直前までは得られない。このような短時間のリードタイムでは、ローカル・エリアをブラックアウトするようにＥＭＭをプログラムすることは不可能である場合がある。瞬時のブラックアウトを可能にするために、資格情報をさらに符号化したものが資格データのペイロード内に含まれている。
【００２６】
資格データを収めているパケットは、特別に符号化された４つの３２ビット群に配置された１２８ビットのペイロード・ヘッダを含んでいる。整合フィルタ(matched filter)またはＥコード・デコーダ３０は、１２８ビット・ヘッダ内のビット・パターンのある種の組合せを検出するように構成されている。一致したものが見つかると、デコーダはメモリ・コントローラ１７およびスマート・カード３１と連絡をとって、資格ペイロードの残余部分をスマート・カードが利用できるようにする（メモリ１８を経由して）。一致するものが見つからなければ、ペイロードは特定の受信装置によって受け取られない。特殊コードは、整合フィルタ３０がプログラマブルになっていれば、定期的に変更することが可能である。これらのコードはスマート・カードから定期的に与えられるようにすることができる。視聴者の資格に係わりをもつ、スマート・カードのオペレーションに関する詳細説明については、THE SATELLITE BOOK, A COMPLETE GUIDE TO SATELLITE TV THEORY AND PRACTICEのセクション２５ (Swift Television Publications, 17 Pittsfield, Cricklade, Wilts, England)を参照されたい。
【００２７】
整合フィルタまたはＥコード・デコーダは第２の機能を実行するように構成されている。第２の機能とは、特定のMPEGビデオ・ヘッダを検出することである。これらのヘッダまたはスタート・コードは３２ビット長である（この長さにしたのは、資格ペイロードのヘッダが３２ビット群に符号化されるためである）。ビデオ・データが紛失したとき、ＭＰＥＧビデオ検出器はビデオ・データの復元（圧縮解除）を、特定のデータ・エントリ・ポイント(entry point) だけからリスタートすることができる。これらのエントリ・ポイントはＭＰＥＧスタート・コードと一致している。デコーダは、ビデオ・パケットが紛失したあと、メモリ・コントローラ１７と連絡をとってビデオ・データがメモリへ流れるのを禁止し、次のＭＰＥＧスタート・コードがデコーダ３０によって検出された後にのみ、ビデオ・ペイロードをメモリへ書くことを再開するように構成することもできる。
【００２８】
図４は、図３に示すメモリ・コントローラ１７の装置例を示す図である。各プログラム・コンポーネントは、メモリ１８の異なる連続ブロックにストアされる。さらに、マイクロプロセッサ１９やスマート・カードによって生成されたデータなどの、他のデータもメモリ１８にストアしておくことが可能である。
【００２９】
アドレスはマルチプレクサ１０５によってメモリ１８に入力され、入力データはマルチプレクサ９９によってメモリ１８に入力される。メモリ管理回路からの出力データは、別のマルチプレクサ１０４によって信号プロセッサに渡される。マルチプレクサ１０４から得られる出力データは、マイクロプロセッサ１９からのものと、メモリ１８からのものと、直接的にはマルチプレクサ９９からのものとがある。プログラム・データは標準的ピクチャ解像度と品質になっていて、特定のデータ・レートで現れるものと想定している。他方、高精細テレビジョン(high definition television)信号ＨＤＴＶは、この受信装置から得ることができるものであるが、はるかに高いデータ・レートで現れる。ＦＥＣから得られる、ほとんどすべてのデータはマルチプレクサ９９とメモリ入出力回路１０２を経由してメモリ１８を通って送られるが、高レートのＨＤＴＶ信号は例外で、マルチプレクサ９９からマルチプレクサ１０４へ直接に送ることが可能である。データは、暗号解読デバイス１６、スマート・カード回路、マイクロプロセッサ１９、およびメディア・エラー・コード(media error code)のソース（発生源）１００からマルチプレクサ９９へ送られる。ここで「メディア・エラー・コード」という用語が用いられているが、これは、それぞれの信号プロセッサ（デコンプレッサ）がスタート・コードなどの、あらかじめ決めたコードワード(codeword)を検出するまで処理を一時中止(suspend) し、そのあとで、例えばスタート・コードに従って処理を再開するように条件づけるために、データ・ストリームに挿入される特殊なコードワードのことである。
【００３０】
メモリ・アドレスは、プログラム・アドレシング回路(program addressing circuitry)７９〜９７からと、マイクロプロセッサ１９からと、スマート・カード装置３１からと、そして、補助パケット・アドレス・カウンタ(auxiliary packet address counter)７８から、マルチプレクサ１０５へ渡される。任意の特定時期で特定のアドレスを選択することは、ダイレクト・メモリ・アクセス(direct memory access - DMA)回路９８によって制御される。コンパレータ１５からのＳＣＩＤコントロール信号とそれぞれの信号プロセッサからの「データ必要(data needed) 」信号はＤＭＡ９８に入力され、これらの信号に応じてメモリ・アクセス競合(memory access contention)が仲裁(arbitrate) される。ＤＭＡ９８はサービス・ポインタ・コントローラ(Service Pointer Controller)９３と協力し合って、それぞれのプログラム信号コンポーネントの該当する読取りまたは書込みアドレスを出力する。
【００３１】
種々の信号コンポーネントのメモリ・ブロックのそれぞれのアドレスは、プログラム・コンポーネントまたはサービス・ポインタ・レジスタ８３，８７，８８，９２の４つのグループによって生成される。それぞれの信号コンポーネントがストアされる、それぞれのメモリ・ブロックの開始ポインタ(starting pointer)は、それぞれの信号コンポーネントのレジスタ８７に収められている。開始ポインタは固定値にすることも、従来のメモリ管理手法によってマイクロプロセッサ１９で計算することも可能である。
【００３２】
それぞれのブロックの最終アドレス・ポインタは、起こり得る各プログラム・コンポーネントごとに１つあて設けられている、サービス・レジスタのバンク(bank of service register)８８にストアされる。開始アドレスと同様に、終了アドレスは固定値にすることも、マイクロプロセッサ１９から得られる計算値にすることも可能である。開始ポインタと終了ポインタに計算値を使用すると、より汎用的なシステムが得られ、メモリが低減化されるので、計算値を使用した方が好ましい。
【００３３】
メモリ書込みポインタまたはヘッド・ポインタは、加算器(adder) ８０とサービス・ヘッド・レジスタ(service head register) ８３によって生成される。サービス・ヘッド・レジスタは起こり得る各プログラム・コンポーネントごとに設けられている。書込みまたはヘッド・ポインタ値はレジスタ８３にストアされ、メモリ書込みサイクル期間にアドレス・マルチプレクサ１０５へ渡される。ヘッド・ポインタも加算器８０に結合されており、そこで１単位ずつインクリメントされ、インクリメントされたポインタは次の書込みサイクル期間に該当のレジスタ８３にストアされる。レジスタ８３は、現在サービスを受けている該当のプログラム・コンポーネントのためのものが、サービス・ポインタ・コントローラ93によって選択される。
【００３４】
この例では、開始ポインタと終了ポインタが１６ビット・ポインタであるものと想定している。レジスタ８３は１６ビット書込みまたはヘッド・ポインタを収めている。１６ビット・ポインタを選択したのは、開始ポインタと終了ポインタをレジスタ８７と８８にロードするとき、１６ビットまたは８ビット・バスが使用できるためである。他方、メモリ１８は１８ビット・アドレスになっている。１８ビット書込みアドレスは、開始ポインタの最上位の２ビットを１６ビット・ヘッド・ポインタと連結することにより作られ、開始ポインタ・ビットは連結された１８ビット書込みアドレスの最上位ビット位置に置かれている。開始ポインタはそれぞれのレジスタ８７からサービス・ポインタ・コントローラ93へ渡される。サービス・ポインタ・コントローラは、レジスタ８７に入っている開始ポインタからの上位開始ポインタ・ビットを解析(parse) し、これらのビットを１６ビット・ヘッド・ポインタ・バスと関連づける。これを具体的に示すと、バス９６はマルチプレクサ８５から出たヘッド・ポインタ・バスと結合され、図５には、太線の矢印で示されている。
【００３５】
図５に示すように、上段、中段および下段のボックスは、それぞれ開始ポインタ、アドレスおよびヘッドまたはテイル(tail)ポインタのビットを表している。大きい番号のボックスは上位ビット位置を表している。矢印は、開始またはヘッド／テイル・ポインタのどのビット位置からアドレスが求められたかを示している。このアドレス計算では、太字の矢印は定常状態のオペレーションを表している。
【００３６】
同様に、メモリ読取りポインタまたはテイル・ポインタは加算器７９とサービス・テイル・レジスタ(service tail register) ９２によって生成される。サービス・テイル・ポインタは起こり得る各プログラム・コンポーネントごとに設けられている。読取りまたはテイル・ポインタ値はレジスタ９２にストアされ、メモリ読取りサイクル期間にアドレス・マルチプレクサ１０５へ渡される。テイル・ポインタも加算器７９に結合されており、そこで１単位ずつインクリメントされ、インクリメントされたポインタは次の読取りサイクル期間に該当のレジスタ９２にストアされる。レジスタ９２は、現在サービスを受けているプログラム・コンポーネントのためのものが、サービス・ポインタ・コントローラ９３によって選択される。
【００３７】
レジスタ９２は１６ビット・テイル・ポインタを収めている。１８ビット読取りアドレスは、開始ポインタの最上位の２ビットを１６ビット・テイル・ポインタに連結することにより作られ、開始ポインタ・ビットは連結された１８ビット読取りアドレスの最上位ビット位置に置かれている。サービス・ポインタ・コントローラはレジスタ８７に入っている開始ポインタからの上位開始ポインタ・ビットを解析(parse) し、これらのビットを１６ビット・テイル・ポインタ・バスと関連づける。これを具体的に示すと、バス９４はマルチプレクサ９０から出たテイル・ポインタ・バスと結合される。
【００３８】
データは、計算で求めたアドレスからメモリ１８にストアされる。データ・バイトをストアすると、ヘッド・ポインタは１だけインクリメントされ、そのプログラム・コンポーネントの終了ポインタと比較される。これらが一致していれば、ヘッド・ポインタの上位ビットは開始ポインタの下位１４ビットで置き換えられ、アドレスのヘッダ・ポインタ部分の下位２ビット位置にゼロが入れられる。これは、図５に開始ポインタとアドレス間の線影矢印で示されている。このオペレーションはサービス・ポインタ・コントローラ９３から出て、マルチプレクサ８５からのヘッド・ポインタ・バスに向かう矢印９７で示されている。ここでは、下位１４開始ポインタ・ビットが入力されると、ヘッド・ポインタ・ビットがオーバライドされることを想定している。この１書込みサイクル期間にヘッド・ポインタ・ビットをアドレスの下位開始ポインタ・ビットで置き換えると、メモリは上位２開始ポインタ・ビットで指定されたメモリ・ブロックをスクロールしていくので、各パケットの先頭にある書込みアドレスを、ブロック内の固有のメモリ・ロケーションにプログラミングし直す必要がなくなる。
【００３９】
ヘッド・ポインタがテイル・ポインタ（メモリ１８のどこからデータを読み取るかを示すために使用される）と一致しているようなことがあると、ヘッドとテイルのクラッシュが起こったことを知らせるために、信号がマイクロプロセッサの割込みセクションに送られる。このプログラム・チャネルからメモリ１８への書込みを続けることは、マイクロプロセッサがチャネルを再び使用可能にするまで禁止される。このケースは非常にまれであり、通常のオペレーションでは起こることがないはずである。
【００４０】
データは、それぞれの信号プロセッサの要求を受けてメモリ１８から取り出されるが、その取出しは加算器７９とレジスタ９２によって計算されたアドレスから行われる。ストアされたデータのバイトが読み取られると、テイル・ポインタは１単位だけインクリメントされ、サービス・ポインタ・コントローラ９３でこの論理チャネルの終了ポインタと比較される。テール・ポインタと終了ポインタが一致していれば、テイル・ポインタの上位ビットは開始ポインタの下位１４ビットで置き換えられ、アドレスのテイル・ポインタ部分の下位２ビット位置にゼロが入れられる。これは、コントローラ９３から出て、マルチプレクサ９０からのテイル・ポインタ・バスに向かう矢印９５で示されている。そのとき、テイル・ポインタがヘッド・ポインタと一致していれば、それぞれのメモリ・ブロックは空であると定義されるので、このプログラム・チャネルのＦＥＣから追加データが送られてくるまでは、これ以上バイトは関連の信号プロセッサへ送られない。それぞれの書込みまたは読取りアドレスのヘッドまたはテイル・ポインタ部分を、開始ポインタの下位１４ビットで実際に置き換えることは、適当な多重化(multiplexing)によって、あるいは３ステート・インターコネクト(three state interconnects) の使用によって行われる。
【００４１】
補助パケットに入れて送信されるデータは、ディレクトリ(directory) 、ヘッダまたはコントロール情報であるのが通常であるので、その処理の仕方はプログラム・コンポーネント・データと若干異なっている。補助パケットに入るデータは、それぞれのプログラム・コンポーネントと、含まれているアプリケーションのために必須のメモリ・ストーレッジ・エリアを設定するの必要な情報を含んでいる。従って、補助パケットには所定の優先権(preference)が与えられている。２つのサービス・ブロックが各コンポーネントのために用意されている。各ブロックは８ビット連続アドレスまたは２５６バイトのデータ用の記憶ロケーションをもっている。各ブロックは、図６に示すように、総計で１８ビットのアドレスをもっている。アドレスの最下位（ＬＳＢ）８ビットは順次カウンタ(sequential counter)から与えられる。９番目のビットは、トランスポート・プレフィックス(transport prefix)からのＣＳまたはスクランブル・キー・ビットによって与えられる。１０番目から１２番目までのビットは、プログラム検出のために割り当てられた特定のＳＣＩＤに応じて生成される。この実施例では、システムは５つのプログラム・コンポーネント（プログラム・ガイドを含む）またはサービスを処理し、検出する機能を備えているものと想定している。それぞれのプログラマブルＳＣＩＤレジスタ１３にプログラムされたＳＣＩＤが５つあり、ＳＣＩＤコンパレータが５つある（１５）のはそのためである。５つのコンパレータの各々は出力端子をもち、その端子にプログラム・コンポーネントが割り当てられている。５つのコンパレータ出力端子に関連づけられる、５つまで可能なプログラムには３ビット・コードが割り当てられるが、これは、３ビットが５つのステートを表すことができる最小数のビットであるためである。３ビット・コードは、補助パケット・アドレスの１０番目から１２番目までのビットとして挿入される。そこで、５つのそれぞれのプログラム・コンポーネントのＳＣＩＤが１−５の任意の番号を付けたプログラマブル・レジスタに割り当てられていると想定する。プログラマブル・レジスタ１〜５に割り当てられたコンポーネントに割り当てられた３ビット・コードは、それぞれ０００，００１，０１０，０１１，１００である。どのプログラム・コンポーネントが現在検出されているかに応じて、現在のプログラム・コンポーネントＳＣＩＤを収めているプログラマブル・レジスタに関連する３ビット・コードは、メモリ書込みアドレスの１０番目から１２番目までのビット位置に挿入される。
【００４２】
１８ビット補助アドレスの最上位６ビットは、従来のメモリ管理手法に従ってマイクロプロセッサから与えられる。
【００４３】
図７は、補助メモリ・アドレス生成回路の例を示す図である。図７には、マイクロプロセッサ１９に渡すプレフィックス・ビットＣＳを取り込むために使用されるプレフィックス・レジスタ１２５が含まれている。ＳＣＩＤ検出器１５からの５つのコントロール・ライン(control line)は、５コントロール・ラインから３ビットに変換するコンバータ１２６に入力されるが、このコンバータは単純なブール論理演算器(Boolean logic operator)である。コンバータ１２６から生成された３ビットはマイクロプロセッサ１９に入力され、そこで補助アドレスのそれぞれの最上位１０ビット（ＭＳＢ）部分が構成される。補助パケットが検出されると、１０−ＭＳＢアドレス部分は、レジスタ・バンク１２８のうちの１つのＭＳＢ部分に入力される。それぞれのレジスタ１２８の８−ＬＳＢ部分は、各補助パケットの始まりであらかじめ決めた値（ゼロが代表的である）にセットされる。８−ＬＳＢ部分は１０−ＭＳＢ部分に付加されて、１０：１マルチプレクサ１２９の入力ポートに入力される。マルチプレクサ１２９から得られた、それぞれのアドレスの８−ＬＳＢ部分は加算器１３０に渡され、そこで８−ＬＳＢアドレス値は１単位だけインクリメントされ、別のマルチプレクサ１２７を経由して戻されて、レジスタ１２８の８−ＬＳＢ部分に入れられる。インクリメントされたＬＳＢ部分（そのＭＳＢ部分と共に）は、それぞれの補助パケットの次の連続アドレスとして使用される。マルチプレクサ１２７と１２９はＤＭＡコントローラ９８によって制御され、アドレスされる現メモリ・ブロックが選択される。なお、別の構成として、μＰＣ（マイクロプロセッサ）１９は、補助アドレスの少なくとも一部を設定するように構成することも可能である。
【００４４】
補助パケットは典型的には独立に処理され、補助パケット・ペイロード全体がメモリにロードされてから利用可能になるのが典型的である。そのために、現補助パケットをそこに書き込むためにアドレスされるメモリ・ブロックは読取り目的と書込み目的のために同時にアドレスされないのが通常である。そのため、読取りと書込みのアドレシングのために同一レジスタが使用可能である。補助パケットがそれぞれのメモリ・ブロックにストアされると、８−ＬＳＢ部分はデータ読出しに備えて、あらかじめ決めた開始アドレスにリセットされる。別の構成として、エレメント１２７〜１３０に類似するレジスタ、マルチプレクサおよび加算器からなる並列バンクで構成して、読取りアドレスを生成することも可能である。これらの読取りアドレスは、マルチプレクサ１２９とカスケード接続された別のマルチプレクサを使用して、時分割多重化することができる。
【００４５】
メモリの読取り／書込み制御は、サービス・ポインタ・コントローラと直接メモリ・アクセスＤＭＡエレメント９３，９４によって行われる。ＤＭＡは、読取りと書込みサイクルをスケジュールするようにプログラムされている。スケジューリングは、ＦＥＣ１２がメモリに書き込むべきデータを渡そうとしているのかどうかによって決まる。ＦＥＣデータ書込みオペレーションは、到来する信号コンポーネント・データが紛失しないように優先して行われる。図４に示す装置の例では、４種類の装置がメモリをアクセスできるようになっている。それはスマート・カード、ＦＥＣ１２（正確には、暗号解読デバイス１６）、マイクロプロセッサ１９およびオーディオ・プロセッサやビデオ・プロセッサなどのアプリケーション・デバイス(application device)である。メモリの競合は次のように処理される。ＤＭＡは、上に列挙した種々処理エレメントからデータ要求を受けると、それぞれのプログラム・コンポーネント用にメモリ・ブロックを割り振る。メモリへのアクセスは９５ｎＳタイムスロット(time slot) で行われ、その期間にデータ・バイトがメモリ１８から読み取られ、あるいはメモリ１８へ書き込まれる。主要なアクセス割振りモードは２つあり、これらは「ＦＥＣはデータを提供する」(FEC Providing Data)および「ＦＥＣはデータを提供しない」(FEC Not Providing Data)と定義されている。この２モードのどちらの場合も、タイムスロットは、最大ＦＥＣデータ・レートが５ＭＢ／秒であるとして、つまり、各２００ｎＳごとに１バイトであるとして、次のように割り振られ、優先順位付けされる。これらのモードは次のとおりである。
ＦＥＣはデータを提供する
１）ＦＥＣデータ書込み
２）アプリケーション・デバイス読取り／マクロプロセッサ読取り／書込み
３）ＦＥＣデータ書込み
４）マイクロプロセッサ読取り／書込み
ＦＥＣはデータを提供しない
１）スマート・カード読取り／書込み
２）アプリケーション・デバイス読取り／マイクロプロセッサ読取り／書込み
３）スマート・カード読取り／書込み
４）マイクロプロセッサ読取り／書込み
ＦＥＣデータ書込みは先延ばしできないので、ＦＥＣ（正確には、暗号解読デバイス）は、データを提供するとき、各２００ｎＳインターバル期間の間、メモリ・アクセスが保証されていなければならない。交互のタイムスロットはアプリケーション・デバイスとマイクロプロセッサによって共有される。要求側デバイスに送るべきデータがないときは、マイクロプロセッサにアプリケーション・タイムスロットの使用権が与えられる。
【００４６】
コントローラ９３はＳＣＩＤ検出器と連絡をとって、メモリ書込みオペレーションのとき、それぞれの開始、ヘッドおよび終了ポインタ・レジスタのどれをアクセスすべきかを判断する。コントローラ９３はＤＭＡと連絡をとって、メモリ読取りオペレーションのとき、開始、終了およびテイル・レジスタのどれをアクセスすべきかを判断する。ＤＭＡ９８は、マルチプレクサ９９，１０４および１０５による対応するアドレスおよびデータの選択を制御する。
【００４７】
メモリ・アドレスをインクリメントするときの、好ましい代替回路を示したのが図８であり、この回路は図４または図７の装置全体の中で利用することが可能である。図８は、図４に示すテイル・ポインタがインクリメントするのと同じように実現された回路を示している。パケットの始まりで、関連レジスタ９２Ａに入っているポインタは加算器７９Ａに渡され、そこで１だけインクリメントされる。インクリメントされた中間テイル・ポインタを図８のレジスタ９２Ａ（図４の９２）にストアするのではなく、インクリメントされた中間ポインタ値は連続的に作業レジスタ１０７にストアされる。最後のポインタ値が信号パケットに対して生成されると、レジスタ１０７内の更新されたポインタは、パケットＳＣＩＤに関連するレジスタ９２Ａへ転送される。
【００４８】
メモリ・バッファ内のデータを省く必要が起こっても、これは異常なことではない。例えば、システム・エラーやデータ割込みが起こったとき、不完全なパケット(partial packet)がストアされていることがある。メモリ・スペースを節減するために、データを省くことは不完全なデータ・パケットをオーバライト(overwrite) することだけで行われる。このデータのオーバライトは該当するポインタを、パケットの始まりで示されていた値にリセットすることで行われる。このリセットは、レジスタ１０７内の値をポインタ・レジスタへ転送することなく行われる。つまり、なにも行われない。
【００４９】
パケットが紛失したとき、メディア・エラー・コードをビデオ・コンポーネント信号ストリームに挿入しておくと、特定の信号エントリ・ポイントがデータ・ストリーム中に現れるまで、ビデオ信号デコンプレッサ(video signal decompressor) が圧縮解除（復元）を一時中止するという利点が得られる。次のエントリ・ポイントがどこに現れ、どのビデオ・パケットに現れるかを予測することは実用的でない。次のエントリ・ポイントをできる限り早く見つけるためには、パケット紛失を検出したあとの最初のビデオ・パケットの始まりにメディア・エラー・コードを挿入しておく必要がある。図４に示す回路では、すべてのビデオ・パケットの始まりにメディア・エラー・コードを挿入しておき、先行するパケットが紛失していなければ、それぞれのパケットに入っているメディア・エラー・コードを抜き出すようになっている。メディア・エラー・コードは、現ビデオ・パケット・ペイロード用に予約されていた最初のＭメモリ・アドレス・ロケーションに挿入されるが、これは、ビデオ・ペイロードが暗号解読デバイスから送られてくる前のＭ個の書込みサイクル期間にメモリ１８に書き込むことによって行われる。これと同時に、マルチプレクサ９９は、ソース１００からのメディア・エラー・コードをメモリ１８  Ｉ／Ｏに入力するようにＤＭＡ９８によって条件づけられる。Ｍは、メディア・エラー・コードをストアするために必要な整数個のメモリ・ロケーションである。メモリに８ビット・バイトをストアし、メディア・エラー・コードが３２ビットであるとすると、Ｍは４になる。
【００５０】
メディア・エラー・コードをメモリにロードするためのアドレスは、マルチプレクサ82とマルチプレクサ８５を通してそれぞれのビデオ・コンポーネント・サービス・レジスタ８３から与えられる。このことから理解されるように、他の場合には、ビデオ・コンポーネント・データと一緒にロードされるメディア・エラー・コードを、メモリ・ロケーションにロードするためにポインタ・レジスタ８３から与えられる最初のＭ個のアドレスは、単純に次のＭ個の連続アドレスであり、これは、通常は、ビデオ・ヘッド・ポインタから与えられるものである。これらの同じアドレスはＭステージ・ディレイ・エレメント(delay element) 84に入力されるので、メディア・エラー・コードの最後のバイトがメモリ１８にストアされた直後に、Ｍ個のアドレスの最初のアドレスがディレイ・エレメント84の出力から得られるようになる。
【００５１】
メディア・エラー・コードをメモリにロードするときのタイミングは、パケット紛失の判断と符合している。パケット紛失の判断と同時にメディア・エラー・コードをロードすると、付加的な時間的制約を受けることなく信号フロー処理を行うことができる。
【００５２】
パケット紛失が検出されると、現パケットのビデオ・コンポーネントは、そのコンポーネント用に設定されたメモリ・ブロックの次の、つまり、（Ｍ＋１）番目のアドレス・ロケーションからメモリ１８にストアされていく。これは、該当のレジスタ８３からの非遅延(undelayed) ヘッド・ポインタを渡し続けるようにマルチプレクサ８５を条件づけることにより行われる。これとは逆に、パケット紛失が検出されていなければ、現パケットに入っているビデオ・コンポーネントの最初のＭバイトは、メディア・エラー・コードが直前にストアされていたメモリ・ロケーションにストアされる。これは、サービス・ポインタ・コントローラが、ディレイ・エレメント８４からの遅延ヘッド・ポインタを、Ｍ書込みサイクル期間に渡し続けるようにマルチプレクサ８５を条件づけることにより行われる。Ｍ書込みサイクルの終了時に、サービス・ポインタ・コントローラ９３は、非遅延ヘッド・ポインタを渡すように再度マルチプレクサを条件づけることになる。マルチプレクサがスイッチして非遅延(non delayed) ポインタに戻ると、次の非遅延ポインタはＭ＋１番目のアドレスに一致することになる。
【００５３】
パケット・エラーまたは紛失の検出は、現パケットのＣＣおよびＤＤデータを受けてエラー検出器１０１によって行われる。検出器１０１は現パケット内の連続性カウント(continuity count)ＣＣを調べて、それが前のパケットのＣＣと１単位だけ異なっているかどうかを判断する。さらに、現パケット内のＴＯＧＧＬＥビットが調べられ、それが前のパケットから変更を受けていたかどうかが判断される。ＣＣ値が正しくなければ、ＴＯＧＧＬＥビットのステートが検査される。ＣＣビットにエラーがあるか、ＴＯＧＧＬＥビットが変更されているか、あるいはＣＣビットにエラーがあり、かつＴＯＧＧＬＥビットが変更されているかに応じて、エラー回復(error remediation) の第１モードまたは第２モードが開始される。ＣＣにエラーがあり、かつＴＯＧＧＬＥビットが変更されていると開始される第２モードでは、システムは、ピクチャ層ヘッダを収めているパケットにリセットするように条件づけられる。ＣＣだけにエラーがある場合の第１モードでは、システムは、スライス・スタート・コードを収めているパケットにリセットするように条件づけられる（スライス層(slice layer) とは、フレーム内の圧縮データのサブセットである）。第１モードと第２モードの両方では、メモリに書かれたメディア・エラー・コードは、回復アクションを開始するようにデコンプレッサに警告するために、それぞれのペイロードに残されている。
【００５４】
ある受信装置がどのように設計されているかに応じて、それぞれのコンポーネント・トランスポート・パケットが紛失したとき、信号コンポーネントのいくつか異なるコンポーネントにメディア・エラー・コードを挿入しておくと、好都合な場合と好都合でない場合とがある。さらに、信号コンポーネント形式や圧縮プロセスが異なるごとに異なるメディア・エラー・コードを利用すると、好都合な場合がある。従って、必要になるメディア・エラー・コード・ソースは１つの場合と複数の場合とがある。
【００５５】
図９は、ＤＭＡ９８のメモリ・アクセス・プロセスのフローチャート例である。ＤＭＡは、受信パケットが検出されたか、検出されなかったかをＳＣＩＤの検出を通して判断する｛２００｝。ＳＣＩＤが検出され、メモリに書くべき暗号解読デバイス１６からのデータが存在することを示していれば、暗号解読デバイスからのプログラム・データの１バイトがバッファ・メモリ１８に書かれる｛２０１｝。そのバイトがどのメモリ・ブロックに書かれるかは、現在のＳＣＩＤに応じてプロセッサ９３により判断される。次に、ＤＭＡは、スマート・カードとμＰＣを含めて、プログラム・コンポーネント・プロセッサのいずれかがデータを要求しているか、あるいはメモリ１８へのデータ読み書き（Ｒ／Ｗ）アクセスを要求しているかを判断する。ＤＭＡに対しデータ要求を行っていなければ、プロセスはステップ｛２００｝へ戻る。データＲ／Ｗ要求が行われていれば、ＤＭＡはその要求のプライオリティ（優先度）を判断する｛２０３｝。これは、データを要求しているプログラム・プロセッサの任意の順序で、従来の割込みルーチンにより、あるいは別の方法として、連続１バイト・サービス(sequential one byte service) により行われる。例えば、アクセス・プライオリティの任意の順序は、ビデオ、オーディオＩ、オーディオII、スマート・カード、およびμＰＣになっているとする。また、ビデオ、オーディオIIおよびμＰＣだけがメモリ・アクセスを要求しているとする。ステップ｛２０３｝の現オペレーションでは、ビデオのバイトがメモリから読み取られる。ステップ｛２０３｝の次のオペレーションでは、オーディオIIのバイトがメモリから読み取られ、ステップ｛２０３｝のそのあとに続く次のオペレーションでは、μＰＣデータのバイトがメモリ１８へ書かれるか、メモリから読み取られる。以下、同様である。なお、スマート・カードとμＰＣがアクセスするときのアドレスは、それぞれスマート・カードとμＰＣから得られるが、ビデオ、オーディオおよびプログラム・ガイドの場合のアドレスは、アドレス・ポインタ構成（８０〜９３）から得られる。
【００５６】
プライオリティ・アクセスが判断されると｛２０３｝、要求側プログラム・プロセッサがサービスを受け｛２０４｝、データの１バイトがメモリ１８に書かれるか、メモリから読み取られる。次に、暗号解読デバイス１６からのデータの１バイトがメモリに書かれる｛２０５｝。μＰＣがアクセスを要求しているかを判断する検査が行われる｛２０６｝。μＰＣがアクセスを要求していれば、μＰＣがサービスを受け｛２０７｝、データの１バイトが読み書きされる。μＰＣがアクセスを要求していなければ、プロセスはステップ｛２０２｝へジャンプし、プログラム・プロセッサのいずれかがアクセスを要求しているかどうかが判断される。このようにして、到来するデータは、１つ置きのメモリ・アクセス期間へのアクセスが常に保証され、その間のメモリ・アクセス期間はプログラム・プロセッサ間に分散されている。
【００５７】
暗号解読デバイス１６から送られてきたデータが現在なければ、つまり、ＳＣＩＤが現在検出されていなければ、プロセス｛２０８〜２１６｝が実行される。まず｛２０８｝で、スマート・カードが検査され、メモリ・アクセスを要求しているかどうかが判断される。要求していれば、１バイトのメモリ・アクセスが許可され｛２０９｝、そうでなければ、プログラム・プロセッサのいずれかがメモリ・アクセスを要求しているかどうかを判断する検査が行われる｛２１０｝。データＲ／Ｗ要求が行われていれば、ＤＭＡはその要求のプライオリティを判断する｛２１１｝。該当するプロセッサがサービスを受け｛２１２｝、１バイトのメモリ読取りまたは書込みアクセスが行われる。プログラム・プロセッサがデータＲ／Ｗ要求を行っていなければ、プロセスはステップ｛２１３｝へジャンプし、そこでスマート・カードがメモリ・アクセスを要求しているかどうかを判断するテストが行われる。そうであれば、サービスを受け｛２１６｝、１バイトのメモリ・アクセスが行われれ、そうでなければ、プロセスはステップ｛２００｝へジャンプする。
【００５８】
以上から理解されるように、現在説明している実施例では、「ＦＥＣはデータを提供していない」モードにあるときは、スマート・カードには他のすべてのプログラム・プロセッサに対して２対１のアクセス優先権(two-to-one access precedence)が与えられている。このプライオリティはＤＭＡ装置内のプログラマブル・ステート・マシン(programmable state machine)にプログラムされており、μＰＣによる変更の対象になっている。前述したように、システムの目的は対話式サービスを提供することであるので、μＰＣは対話式データを受けると、それに応じて対話式オペレーションを少なくとも部分的に実行するようになっている。この役割では、μＰＣ１９はアプリケーション・ストアと作業メモリの両目的のためにメモリ１８を使用する。このような場合には、システム・オペレータは、より頻度の大きいメモリ・アクセス権をμＰＣ１９に与えるためにメモリ・アクセス・プライオリティを変更することが可能である。メモリ・アクセス・プライオリティの再プログラミングは、対話式アプリケーション命令のサブセットとして組み入れておくことが可能である。
【００５９】
ある受信装置がどのように設計されているかに応じて、それぞれのコンポーネント・トランスポート・パケットが紛失したとき、信号コンポーネントのいくつか異なるコンポーネントにメディア・エラー・コードを挿入しておくと、好都合な場合と好都合でない場合とがある。さらに、信号コンポーネント形式や圧縮プロセスが異なるごとに異なるメディア・エラー・コードを利用すると、好都合な場合がある。従って、必要になるメディア・エラー・コード・ソースは１つの場合と複数の場合とがある。
【００６０】
図１０は、条件付きアクセス情報またはＭＰＥＧスタート・コードを含んでいるパケットを検出する装置の例を示す図である（図３のデコーダ３０）。デコーダ３０が資格ペイロードまたはＭＰＥＧスタート・コードを検出するように条件づけられるかどうかは、現在受信されているＳＣＩＤによって決まる。図１０では、暗号解読デバイス１６から得られるデータは８ビット・バイトであり、パケット境界合わせされているものと想定されている。すなわち、資格ペイロードの第１バイトまたはＭＰＥＧスタート・コードの第１バイトはパケット・ペイロードの先頭と正確に境界合わせされているので、特定のヘッダまたはスタート・コードワードを検出するときは、ビット／バイト・ストリーム内のその位置は正確に分かっている。暗号解読デバイス１６からのデータは８ビット・レジスタ２５０に入力される。このレジスタは８ビット並列出力ポートがコンパレータ２５４のそれぞれの第１入力接続端に結合されており、コンパレータは、例えば、それぞれの出力接続端がＡＮＤゲートおよびラッチに結合されている８個の排他的ＮＯＲ（ＸＮＯＲ）回路からなるバンクで構成することが可能である。ラッチは、各バイト・インターバルでＡＮＤゲートの結果をラッチするように構成されたデータ・ラッチにすることができる。
【００６１】
３２ビットＭＰＥＧスタート・コードは４バイトとして８ビット・レジスタ・バンク２６５にストアされる。資格ヘッダ・コードは８ビット・バイトとして１６個のレジスタからなるバンク２５７にストアされる。レジスタ・バンク２５１と２６５のローディングはマイクロプロセッサ１９および／またはスマート・カードによって制御される。スタート・コード・レジスタ２６５は４：１マルチプレクサ２６６に結合され、資格ヘッダ・レジスタは１６：１マルチプレクサ２５７に結合されている。マルチプレクサ２５７と２６６の出力ポートは２：１マルチプレクサ２４９に結合されている。マルチプレクサ２４９のそれぞれの出力接続端は、コンパレータ２５４の対応する、それぞれの第２入力端子に結合されている。なお、マルチプレクサ２４９，２５７および２６６の入力接続端と出力接続端は８ビット・バスになっている。レジスタ２５０のそれぞれの出力接続端に現れたそれぞれの値が、マルチプレクサ２４９のそれぞれの出力接続端に現れたそれぞれの出力値と同じであれば、真(true)信号が対応するデータ・バイトに対してコンパレータ２５４回路によって生成される。
【００６２】
スタート・コードが検出されたときは、マルチプレクサ２６６はカウンタ２５８によってスキャンされ、暗号解読デバイス１６からの最初の４データ・バイトの出現と同期して４つの異なるレジスタを順次にＸＮＯＲと結合していく。また、資格ペイロード・ヘッダが検出されたときは、マルチプレクサ２５７はカウンタ２５８によってスキャンされ、レジスタ２６５の１つひとつを連続的にコンパレータ回路に結合していく。
【００６３】
コンパレータ回路の出力は累算およびテスト回路(accumulate and test circuit)255に入力される。この回路はあらかじめ決めた数のバイト一致条件(byte matching conditions)が現れたかどうかを判断し、もし現れていれば、検査している特定ペイロードの一部に入っている資格データに対して書込み許可信号(write enabel signal) を生成する。本システムでは、資格ペイロード・ヘッダは、４個の３２ビット・セグメントに配列された１２８ビットからなっている。異なる加入者は１２８ビットの異なるバイト組合せを探すように構成されている。例えば、ある加入者装置は、資格ペイロード・ヘッダの最初の４バイトに一致するように構成することが可能である。また、別の加入者装置は、資格ペイロード・ヘッダの２番目の４バイトに一致するように構成することが可能である。以下、同様である。これらの例のどちらの場合も、回路２５５は、該当する４連続バイトで一致するものが見つかったかどうかを判断する。
【００６４】
図１０の装置も、すべてゼロの資格ペイロード・ヘッダ条件を検出する回路（エレメント２６１〜２６３）を含んでいる。それぞれの到着したデータ・バイトのビットは、８ビットＯＲゲート２６３のそれぞれの端子に結合されている。これらのビットのいずれかが論理１であると、ＯＲゲート２６３は論理１の出力を生成する。ＯＲゲート２６３の出力は２入力ＯＲゲート２６２の一方の入力端に結合され、ゲートの出力端と第２入力端はそれぞれＤタイプ・ラッチ２６１のデータ入力端とＱ出力端に結合されている。Ｄタイプ・ラッチは、到来データ・バイトの到着と同期してタイミング回路２５９によってクロックがとられる。ラッチがリセットされたあとに現れたデータ・バイトのいずれかに論理１であるビットがあると、ラッチ２６１は、次のリセット・パルスが現れるまでそのＱ出力端から論理１を出力する。ラッチ２６１のＱ出力端はインバータに結合され、インバータはラッチが１の出力レベルを出力すると、ゼロの出力レベルを出力する。従って、ヘッダの１２８ビット（１６バイト）がレジスタ２５０を通過していれば、インバータの出力はハイ（高）になり、１２８ビットはゼロの値であると評価される。資格ペイロード・ヘッダが通過したあと、インバータからのハイ（高）出力レベルが検出されると、回路２５５はデータ書込み許可信号を生成する。
【００６５】
システムを分割して、ＳＣＩＤ検出器、暗号解読デバイス、アドレシング回路、条件付きアクセス・フィルタ、およびスマート・カード・インタフェースをすべて単一の集積回路上に実装すると、特に効率的であることが判明している。このようにすると、タイミングに重大な制約がある外部経路の数が制限される。
【図面の簡単な説明】
【図１】時分割多重化パケット・テレビジョン信号を示す図である。
【図２】それぞれの信号パケットを示す図である。
【図３】本発明を実現する多重化コンポーネント信号のパケットを選択し、処理する受信装置を示すブロック図である。
【図４】図３のエレメント１７用として実現することができるメモリ管理回路の例を示すブロック図である。
【図５】サービス・チャネル・データのメモリ・アドレスがどのように作られるかを示す図である。
【図６】補助パケット・データのメモリ・アドレスがどのように作られるかを示す図である。
【図７】補助パケットのメモリ・アドレスを生成する回路例を示すブロック図である。
【図８】メモリ・アドレスをインクリメントする代替レジスタ回路を示すブロック図である。
【図９】メモリ・アドレス制御のオペレーションを示すフローチャートである。
【図１０】条件付きアクセス・フィルタ／スタート・コード検出器を示すブロック図である。
【符号の説明】
１１  時分割多重化パケット化信号のソース
１２  時分割多重化パケットのソース
１３  ＳＣＩＤ検出器
１４  ＳＣＩＤ検出器
１５  ＳＣＩＤ検出器
１７  メモリ・コントローラ（メモリ制御）
１８  共通バッファ・メモリ
１９  マイクロプロセッサ（制御装置）
２１  プログラム・コンポーネント処理装置
２２  プログラム・コンポーネント処理装置
２３  プログラム・コンポーネント処理装置
２４  プログラム・コンポーネント処理装置
７８  アドレス生成回路
８２  書込みアドレス入力手段
８３  レジスタ
８６  書込みアドレス入力手段
８７  レジスタ
８８  レジスタ
８９  書込みアドレス入力手段
９０  書込みアドレス入力手段
９３  連結回路
９６  連結回路
９９  第１マルチプレクサ
１０４  第３マルチプレクサ
１０５  第２マルチプレクサ
【図１】
0003690737.tif 000002
【図２】
0003690737.tif 000003
【図３】
0003690737.tif 000004
【図４】
0003690737.tif 000005
【図５】
0003690737.tif 000006
【図６】
0003690737.tif 000007
【図７】
0003690737.tif 000008
【図８】
0003690737.tif 000009
【図９】
0003690737.tif 000010
【図１０】
0003690737.tif 000011