(57)【特許請求の範囲】
【請求項１】
入力されるデータストリームを受信し、パケット先頭の検出およびパケットを蓄積するバッファへのデータ転送を行う１つまたは複数のストリーム入力部と、前記パケットを蓄積するバッファに対するデータ転送要求の調停を行う調停部と、前記パケットの先頭の入力に対してバッファの一つであるバッファセルの割り当てを指示するバッファセル割り当て指示器と、前記バッファセルの割り当て指示に対してバッファセル割り当て情報を元に未使用のバッファセルを割り当てるバッファセル割り当て器と、前記バッファセル割り当て情報を保存するバッファセル割り当て情報格納部と、前記パケットデータを蓄積するパケットバッファと、前記パケットバッファを制御するパケットバッファ制御器と、処理対象のバッファセルおよびその処理順を保存する処理待ちバッファセル情報格納部と、パケット識別子に基づいて処理対象であるか否かを判別するパケットフィルタと、前記パケットデータに対して当該所定の処理を行う１つまたは複数のパケットデータ処理部と、前記パケットデータをストリームとして再構成し出力する１つまたは複数のストリーム出力部とを備え、
１つまたは複数のデータストリームに加工や編集を行うストリームデータ処理装置。
【請求項２】
前記パケットバッファが１つの記憶装置からなり、前記ストリーム入力部や各処理部がそれぞれ調停を行ってパケットバッファとの間のデータ転送を行ってパケットデータの処理を行うことを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項３】
前記パケットフィルタが前記調停部に接続され、前記調停部に対してデータ転送要求を行うことによって前記パケットバッファに蓄積されたパケットのパケット識別子を取得し、処理対象であるか否かを判別することを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項４】
前記パケットフィルタが制御器に接続され、その制御器がパケットバッファに蓄積されたパケットから読み出したパケット識別子をパケットフィルタに供給し、これを元に処理対象であるか否かを判別することを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項５】
特定の種類のストリームに含まれるパケットデータのパケット識別子から処理対象であるか否かを判別するパケットフィルタを複数配置することによって、異なる複数の種類のストリームデータに含まれるパケットのパケット識別子による識別を可能とすることを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項６】
パケット識別子の参照テーブルと、パケット識別子のすべてまたは特定の部分を識別の対象外とするパケット識別子マスクテーブルと、論理積演算器と、比較器とを備え、パケットデータ中のパケット識別子とパケット識別子マスクテーブルの論理積およびパケット識別子の参照テーブルとパケット識別子マスクテーブルの論理積を比較して当該パケットが処理対象であるか否かを判定するパケットフィルタを有し、パケット識別子のビット長が異なるストリームデータに含まれるパケットの識別を可能とすることを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項７】
パケット識別子の参照テーブルと一対一に対応する処理内容テーブルをさらに有し、特定のパケット識別子を有するパケットをパケットフィルタで検出し、当該パケットに対する処理を、処理内容テーブルを参照して実行することを特徴とする請求項６に記載のストリームデータ処理装置。
【請求項８】
パケット識別子の参照テーブルと、ストリーム識別子の参照テーブルと、論理積演算器と、比較器とを備え、パケットデータ中のパケット識別子とパケット識別子の参照テーブルを比較するとともに、パケットデータ中のストリーム識別子とストリーム識別子の参照テーブルを比較して当該パケットが処理対象であるか否かを判定するパケットフィルタを有し、複数のストリームの間でパケット識別子の重複がある場合にでもパケットの選別が可能であることを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項９】
ストリーム識別子の参照テーブルと一対一に対応する処理内容テーブルをさらに有し、特定のデータストリーム中に含まれる特定のパケット識別子を有するパケットに対する処理を、前記処理内容テーブルを参照して実行することを特徴とする請求項８に記載のストリームデータ処理装置。
【請求項１０】
パケット識別子の参照テーブルと、パケット識別子のすべてまたは特定の部分を識別の対象外とするパケット識別子マスクテーブルと、ストリーム識別子の参照テーブルと、論理積演算器と、比較器とから構成され、パケットデータ中のパケット識別子とパケット識別子マスクテーブルの論理積およびパケット識別子の参照テーブルとパケット識別子マスクテーブルの論理積を比較するとともに、パケットデータ中のストリーム識別子とストリーム識別子マスクテーブルを比較して当該パケットが処理対象であるか否かを判定するパケットフィルタを有し、パケット識別子のビット長が異なる複数のストリームデータに含まれるパケットの識別を可能とすることを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項１１】
パケット識別子の参照テーブルと一対一に対応する処理内容テーブルをさらに有し、特定のデータストリーム中に含まれる特定のパケット識別子を有するパケットに対する処理を、前記処理内容テーブルを参照して実行することを特徴とする請求項１０に記載のストリームデータ処理装置。
【請求項１２】
処理対象のバッファセルの番号を格納する処理待ちバッファセル情報格納部が、パケットデータ処理部で処理されるバッファの番号をその処理順に保存する一つの記憶素子で構成されることを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項１３】
処理対象のバッファセルの番号を格納する処理待ちバッファセル情報格納部が、パケットデータ処理部で処理されるバッファの番号をその処理順に保存する一つの記憶素子で構成され、パケットデータ処理部で行われる当該所定の処理内容をさらに保存することを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項１４】
処理対象のバッファセルの番号を格納する処理待ちバッファセル情報格納部が、パケットデータ処理部で処理されるバッファの番号をその処理順に保存する一つの記憶素子で構成され、さらにその処理内容を参照するテーブルの番号を保存することを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項１５】
バッファセル割り当て情報を保存するバッファセル割り当て情報格納部において、割り当てるバッファがない、つまりバッファがすべて使用中である場合、バッファセル割り当て器においてこれを検出し、バッファセル割り当て要求に対してバッファを割り当てない機能を有することを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項１６】
１つまたは複数の入力部によって、入力されるデータストリームを受信し、パケット先頭の検出およびパケットを蓄積するバッファへのデータ転送を行い、
調停部によって、前記パケットを蓄積するバッファに対するデータ転送要求の調停を行い、
指示器によって、前記パケットの先頭の入力に対してバッファの一つであるバッファセルの割り当てを指示し、
バッファセル割り当て器によって、前記バッファセルの割り当て指示に対してバッファセル割り当て情報を元に未使用のバッファセルを割り当て、
バッファセル割り当て情報格納部によって、前記バッファセル割り当て情報を保存し、
パケットバッファによって、前記パケットデータを蓄積し、
パケットバッファ制御器によって、前記パケットバッファを制御し、
処理待ちバッファセル情報格納部によって、処理対象のバッファセルおよびその処理順を保存し、
パケットフィルタによって、パケット識別子に基づいて処理対象であるか否かを判別し、
１つまたは複数のパケットデータ処理部によって、前記パケットデータに対して当該所定の処理を行い、
１つまたは複数のストリーム出力部によって、前記パケットデータをストリームとして再構成し出力し、
上記の工程を経ることによって、１つまたは複数のデータストリームに加工や編集を行うストリームデータ処理方法。
【請求項１７】
請求項１記載のストリームデータ処理装置の、入力されるデータストリームを受信し、パケット先頭の検出およびパケットを蓄積するバッファへのデータ転送を行う１つまたは複数のストリーム入力部と、前記パケットを蓄積するバッファに対するデータ転送要求の調停を行う調停部と、前記パケットの先頭の入力に対してバッファの一つであるバッファセルの割り当てを指示するバッファセル割り当て指示器と、前記バッファセルの割り当て指示に対してバッファセル割り当て情報を元に未使用のバッファセルを割り当てるバッファセル割り当て器と、前記バッファセル割り当て情報を保存するバッファセル割り当て情報格納部と、前記パケットデータを蓄積するパケットバッファと、前記パケットバッファを制御するパケットバッファ制御器と、処理対象のバッファセルおよびその処理順を保存する処理待ちバッファセル情報格納部と、パケット識別子に基づいて処理対象であるか否かを判別するパケットフィルタと、前記パケットデータに対して当該所定の処理を行う１つまたは複数のパケットデータ処理部と、前記パケットデータをストリームとして再構成し出力する１つまたは複数のストリーム出力部の、
全部又は一部としてコンピュータを機能させるためのプログラム。
【請求項１８】
請求項１７記載のプログラムを担持した媒体であって、コンピュータにより処理可能なことを特徴とする媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は入力データストリームを構成するパケットの個々を所定の処理対象であるか識別し、対象である場合には当該所定の処理を行った後、所定のフォーマットで出力するストリームデータ処理装置等に関し、特にフォーマットが異なる複数のデータストリームを処理可能なストリームデータ処理装置等に関する。
【０００２】
【従来の技術】
従来のストリームデータ処理装置は特定のフォーマットで単一のデータストリームに対して所定の処理を行った後出力している。例えば、データストリームのフォーマットとしてＩＳＯ／ＩＥＣ  １３８１８−１（ＭＰＥＧ２  システム）におけるトランスポートストリームが広く知られている。トランスポートストリームでは複数の番組データやその他の副次的情報をパケット化し、それぞれを識別するパケットＩＤを付与し、一本のストリームとして構成している。トランスポートストリームパケット中でパケットＩＤが存するビット位置、ビット長は固定である。また、単一のトランスポートストリーム中でパケットＩＤはユニークに定められているが、複数のトランスポートストリームに含まれるパケットにおいてはパケットＩＤの重複が起こりうる。
【０００３】
図１０に従来のストリームデータ処理装置を示す。
【０００４】
従来のストリームデータ処理装置は、ストリーム入力部１００１、パケットフィルタ１００２、パケットデータ処理部１００３、ストリーム出力部１００４から構成される。
【０００５】
ストリーム入力部１００１は、入力されるストリームの連続するビット列からパケット先頭を検出し、パケットデータを出力する。
【０００６】
パケットフィルタ１００２は、入力されるパケットデータ中の特定の位置にあるビット列をパケットＩＤとし、指定されたビット列と比較する。一致した場合には、このパケットを出力する。
【０００７】
パケットデータ処理部１００３は、パケットデータに対して所定の処理を行う。
【０００８】
ストリーム出力部１００４は、処理されたパケットデータを所定のフォーマットで出力する。
【０００９】
従来のストリームデータ処理装置は、パケットの識別について特定のフォーマットにのみ対応しており、該当フォーマットに対する特定の処理を行っている。また、複数のストリームの同時処理に対応していない。
【００１０】
次に従来のストリームデータ処理装置に対して、２種類のストリームを処理できるようにその機能を拡張したストリームデータ処理装置を図１１に示す。
【００１１】
図１１では、パケット解析部１００５で入力されたストリームのフォーマットを解析し、そのフォーマットに応じて、異なる２種類のフォーマットに対応できるように２つ配置されたパケットフィルタ１００２のどちらの処理結果を選択するかをパケット選択器１００６で選択する。同様に、異なる２種類のフォーマットに対応できるように２つ配置されたパケットデータ処理部１００３のどちらの処理結果を選択するかをパケット選択器１００６で選択する。
【００１２】
図１２は、図１１のストリームデータ処理装置を２つ並列に配置することによって、２種類の異なるフォーマットのデータストリームを２本同時に処理できるように拡張したストリームデータ処理装置である。
【００１３】
【発明が解決しようとする課題】
しかしながら、図１１や図１２のように、従来のパケットフィルタや従来のストリームデータ処理装置を複数並列に配置して、複数のデータストリームの処理装置を構成した場合、処理するデータストリーム数に比例して装置の規模が増大し、コスト増を招く。
【００１４】
このように、従来の技術を用いて、さらに異なるフォーマットのデータストリームを処理したり、同時に処理できるデータストリームの数を増やしたりする場合には、装置の規模がさらに増大することになる。
【００１５】
なぜなら、複数の異なるフォーマットのストリームのパケット識別を行うためにフォーマット毎のパケットフィルタが必要になる。また、複数のデータストリームを同時に処理するために、従来のストリームデータ処理装置を複数並列に配置すると、同時に処理できるデータストリームの数に比例して装置の規模が増大する。
【００１６】
また、ストリームのフォーマット毎にパケットフィルタを設けた場合、入力ストリームに対応したパケットフィルタ以外のパケットフィルタは動作不要である。データ処理部についても同様に当該パケットデータに対して必要な処理を行うデータ処理部以外のデータ処理部は動作する必要がない。このように、装置内に同時には動作する必要がない部分が多く存在し、無駄が多い装置の構成となっている。
【００１７】
本発明は、このような従来のストリームデータ処理装置の課題を考慮し、装置の小型化、低価格化を実現することができるストリームデータ処理装置を提供することを目的とする。
【００１８】
【課題を解決するための手段】
第１の本発明（請求項１に対応）は、入力されるデータストリームを受信し、パケット先頭の検出およびパケットを蓄積するバッファへのデータ転送を行う１つまたは複数のストリーム入力部と、前記パケットを蓄積するバッファに対するデータ転送要求の調停を行う調停部と、前記パケットの先頭の入力に対してバッファの一つであるバッファセルの割り当てを指示するバッファセル割り当て指示器と、前記バッファセルの割り当て指示に対してバッファセル割り当て情報を元に未使用のバッファセルを割り当てるバッファセル割り当て器と、前記バッファセル割り当て情報を保存するバッファセル割り当て情報格納部と、前記パケットデータを蓄積するパケットバッファと、前記パケットバッファを制御するパケットバッファ制御器と、処理対象のバッファセルおよびその処理順を保存する処理待ちバッファセル情報格納部と、パケット識別子に基づいて処理対象であるか否かを判別するパケットフィルタと、前記パケットデータに対して当該所定の処理を行う１つまたは複数のパケットデータ処理部と、前記パケットデータをストリームとして再構成し出力する１つまたは複数のストリーム出力部とを備え、
１つまたは複数のデータストリームに加工や編集を行うストリームデータ処理装置である。
【００１９】
第２の本発明（請求項２に対応）は、前記パケットバッファが１つの記憶装置からなり、前記ストリーム入力部や各処理部がそれぞれ調停を行ってパケットバッファとの間のデータ転送を行ってパケットデータの処理を行うことを特徴とする請求項１に記載のストリームデータ処理装置である。
【００２０】
第３の本発明（請求項３に対応）は、前記パケットフィルタが前記調停部に接続され、前記調停部に対してデータ転送要求を行うことによって前記パケットバッファに蓄積されたパケットのパケット識別子を取得し、処理対象であるか否かを判別することを特徴とする請求項１に記載のストリームデータ処理装置である。
【００２１】
第４の本発明（請求項４に対応）は、前記パケットフィルタが制御器に接続され、その制御器がパケットバッファに蓄積されたパケットから読み出したパケット識別子をパケットフィルタに供給し、これを元に処理対象であるか否かを判別することを特徴とする請求項１に記載のストリームデータ処理装置である。
【００２２】
第５の本発明（請求項５に対応）は、特定の種類のストリームに含まれるパケットデータのパケット識別子から処理対象であるか否かを判別するパケットフィルタを複数配置することによって、異なる複数の種類のストリームデータに含まれるパケットのパケット識別子による識別を可能とすることを特徴とする請求項１に記載のストリームデータ処理装置である。
【００２３】
第６の本発明（請求項６に対応）は、パケット識別子の参照テーブルと、パケット識別子のすべてまたは特定の部分を識別の対象外とするパケット識別子マスクテーブルと、論理積演算器と、比較器とを備え、パケットデータ中のパケット識別子とパケット識別子マスクテーブルの論理積およびパケット識別子の参照テーブルとパケット識別子マスクテーブルの論理積を比較して当該パケットが処理対象であるか否かを判定するパケットフィルタを有し、パケット識別子のビット長が異なるストリームデータに含まれるパケットの識別を可能とすることを特徴とする請求項１に記載のストリームデータ処理装置である。
【００２４】
第７の本発明（請求項７に対応）は、パケット識別子の参照テーブルと一対一に対応する処理内容テーブルをさらに有し、特定のパケット識別子を有するパケットをパケットフィルタで検出し、当該パケットに対する処理を、処理内容テーブルを参照して実行することを特徴とする請求項６に記載のストリームデータ処理装置である。
【００２５】
第８の本発明（請求項８に対応）は、パケット識別子の参照テーブルと、ストリーム識別子の参照テーブルと、論理積演算器と、比較器とを備え、パケットデータ中のパケット識別子とパケット識別子の参照テーブルを比較するとともに、パケットデータ中のストリーム識別子とストリーム識別子の参照テーブルを比較して当該パケットが処理対象であるか否かを判定するパケットフィルタを有し、複数のストリームの間でパケット識別子の重複がある場合にでもパケットの選別が可能であることを特徴とする請求項１に記載のストリームデータ処理装置である。
【００２６】
第９の本発明（請求項９に対応）は、ストリーム識別子の参照テーブルと一対一に対応する処理内容テーブルをさらに有し、特定のデータストリーム中に含まれる特定のパケット識別子を有するパケットに対する処理を、前記処理内容テーブルを参照して実行することを特徴とする請求項８に記載のストリームデータ処理装置である。
【００２７】
第１０の本発明（請求項１０に対応）は、パケット識別子の参照テーブルと、パケット識別子のすべてまたは特定の部分を識別の対象外とするパケット識別子マスクテーブルと、ストリーム識別子の参照テーブルと、論理積演算器と、比較器とから構成され、パケットデータ中のパケット識別子とパケット識別子マスクテーブルの論理積およびパケット識別子の参照テーブルとパケット識別子マスクテーブルの論理積を比較するとともに、パケットデータ中のストリーム識別子とストリーム識別子マスクテーブルを比較して当該パケットが処理対象であるか否かを判定するパケットフィルタを有し、パケット識別子のビット長が異なる複数のストリームデータに含まれるパケットの識別を可能とすることを特徴とする請求項１に記載のストリームデータ処理装置である。
【００２８】
第１１の本発明（請求項１１に対応）は、パケット識別子の参照テーブルと一対一に対応する処理内容テーブルをさらに有し、特定のデータストリーム中に含まれる特定のパケット識別子を有するパケットに対する処理を、前記処理内容テーブルを参照して実行することを特徴とする請求項１０に記載のストリームデータ処理装置である。
【００２９】
第１２の本発明（請求項１２に対応）は、処理対象のバッファセルの番号を格納する処理待ちバッファセル情報格納部が、パケットデータ処理部で処理されるバッファの番号をその処理順に保存する一つの記憶素子で構成されることを特徴とする請求項１に記載のストリームデータ処理装置である。
【００３０】
第１３の本発明（請求項１３に対応）は、処理対象のバッファセルの番号を格納する処理待ちバッファセル情報格納部が、パケットデータ処理部で処理されるバッファの番号をその処理順に保存する一つの記憶素子で構成され、パケットデータ処理部で行われる当該所定の処理内容をさらに保存することを特徴とする請求項１に記載のストリームデータ処理装置である。
【００３１】
第１４の本発明（請求項１４に対応）は、処理対象のバッファセルの番号を格納する処理待ちバッファセル情報格納部が、パケットデータ処理部で処理されるバッファの番号をその処理順に保存する一つの記憶素子で構成され、さらにその処理内容を参照するテーブルの番号を保存することを特徴とする請求項１に記載のストリームデータ処理装置である。
【００３２】
第１５の本発明（請求項１５に対応）は、バッファセル割り当て情報を保存するバッファセル割り当て情報格納部において、割り当てるバッファがない、つまりバッファがすべて使用中である場合、バッファセル割り当て器においてこれを検出し、バッファセル割り当て要求に対してバッファを割り当てない機能を有することを特徴とする請求項１に記載のストリームデータ処理装置である。
【００３３】
第１６の本発明（請求項１６に対応）は、１つまたは複数の入力部によって、入力されるデータストリームを受信し、パケット先頭の検出およびパケットを蓄積するバッファへのデータ転送を行い、
調停部によって、前記パケットを蓄積するバッファに対するデータ転送要求の調停を行い、
指示器によって、前記パケットの先頭の入力に対してバッファの一つであるバッファセルの割り当てを指示し、
バッファセル割り当て器によって、前記バッファセルの割り当て指示に対してバッファセル割り当て情報を元に未使用のバッファセルを割り当て、
バッファセル割り当て情報格納部によって、前記バッファセル割り当て情報を保存し、
パケットバッファによって、前記パケットデータを蓄積し、
パケットバッファ制御器によって、前記パケットバッファを制御し、
処理待ちバッファセル情報格納部によって、処理対象のバッファセルおよびその処理順を保存し、
パケットフィルタによって、パケット識別子に基づいて処理対象であるか否かを判別し、
１つまたは複数のパケットデータ処理部によって、前記パケットデータに対して当該所定の処理を行い、
１つまたは複数のストリーム出力部によって、前記パケットデータをストリームとして再構成し出力し、
上記の工程を経ることによって、１つまたは複数のデータストリームに加工や編集を行うストリームデータ処理方法である。
【００３４】
第１７の本発明（請求項１７に対応）は、請求項１記載のストリームデータ処理装置の、入力されるデータストリームを受信し、パケット先頭の検出およびパケットを蓄積するバッファへのデータ転送を行う１つまたは複数のストリーム入力部と、前記パケットを蓄積するバッファに対するデータ転送要求の調停を行う調停部と、前記パケットの先頭の入力に対してバッファの一つであるバッファセルの割り当てを指示するバッファセル割り当て指示器と、前記バッファセルの割り当て指示に対してバッファセル割り当て情報を元に未使用のバッファセルを割り当てるバッファセル割り当て器と、前記バッファセル割り当て情報を保存するバッファセル割り当て情報格納部と、前記パケットデータを蓄積するパケットバッファと、前記パケットバッファを制御するパケットバッファ制御器と、処理対象のバッファセルおよびその処理順を保存する処理待ちバッファセル情報格納部と、パケット識別子に基づいて処理対象であるか否かを判別するパケットフィルタと、前記パケットデータに対して当該所定の処理を行う１つまたは複数のパケットデータ処理部と、前記パケットデータをストリームとして再構成し出力する１つまたは複数のストリーム出力部の、
全部又は一部としてコンピュータを機能させるためのプログラムである。
【００３５】
第１８の本発明（請求項１８に対応）は、請求項１７記載のプログラムを担持した媒体であって、コンピュータにより処理可能なことを特徴とする媒体である。
【００３６】
【発明の実施の形態】
（第１の実施の形態）
本発明の第１の実施の形態について図１を用いて説明する。
【００３７】
本発明の図１におけるストリーム入力部１０１と、ストリーム入力部１０２とは機能的に同等であるので、以下ストリーム入力部１０１についてのみ説明する。
【００３８】
ストリーム入力部１０１は図示しないストリーム源からのストリーム入力ＳＩ１を受け、パケットの先頭を検出し、パケット単位で調停部２００にデータ転送する。
【００３９】
このデータ転送について、図２を用いて説明する。
【００４０】
ストリーム入力部１０１はストリーム源から入力されるデータを調べ、パケットの先頭を検出すると、パケット先頭を転送することを信号ＳＹＮＣで調停部２００に通知する。
【００４１】
パケット先頭を転送することを示す信号ＳＹＮＣは、転送するデータ中にパケット先頭が含まれる場合に発せられ、転送するデータ中にパケット先頭が含まれない場合には発せられない。ストリーム入力部１０１はストリーム源から入力されるデータに、付加情報ＩＭを付与してデータ転送を行う。付加情報ＩＭは、少なくともストリーム識別子ＴＳＩＤおよびストリーム種別を表す符号ＴＳＳＴを含み、パケットバッファ４０２に格納された後にも、どのストリーム源から入力された、どのようなストリームのパケットであるか識別を可能とする。なお、ストリーム識別子ＴＳＩＤ以外に、データ処理やデータ出力のタイミング制御のために、パケット先頭がストリーム入力部１０１に入力された時刻を示すタイムスタンプなどを付与してもよい。
【００４２】
また、ストリーム入力部１０１はストリーム源から入力されるデータを内蔵するバッファに一時的に格納する。所定のバイト数のデータを格納するとパケットバッファ４０２に書き込むためのデータ転送を要求する信号ＲＥＱを調停部２００に出力する。
【００４３】
ストリーム入力部１０１の処理アルゴリズムについて、図６を用いて説明する。ストリーム入力部１０１はＴＤ制御部７０１の指示によって、その動作を開始し、ステップＳ７０１に進む。
【００４４】
ステップＳ７０１において、ストリーム入力部１０１は、入力されるストリームに含まれるパケットの先頭を探す。パケット先頭を検出するまでこれを続ける。これは、完全なパケットをパケットバッファに格納するためであり、パケットの途中からデータを格納することを防ぐためである。パケット先頭を検出すると、処理は次のステップＳ７０３に進む。
【００４５】
ステップＳ７０３において、ストリーム入力部１０１は、入力されるストリームのデータを内蔵するバッファに格納する。そして、処理は次のステップＳ７０５に進む。
【００４６】
ステップＳ７０５において、ストリーム入力部１０１が内蔵するバッファに所定のバイト数のデータを格納したか否かが判断される。所定のバイト数に達していない場合はＮｏと判断され、ステップＳ７０３に戻る。所定バイト数に達した場合はＹｅｓと判断される。そして処理は次のステップＳ７０７に進む。
【００４７】
ステップＳ７０７において、ストリーム入力部１０１は、内蔵するバッファに格納したデータをパケットバッファ４０２に転送するため、調停部２００に対してデータ転送要求信号Ｒｅｑを出力する。そして処理は次のステップ７０９に進む。
【００４８】
ステップＳ７０９において、ストリーム入力部１０１のデータ転送要求が受理されたか否かが判断される。すなわち、調停部２００からデータ転送要求を受理したことを示すデータ有効信号ＥＮＢが有効であるか否かが判断される。データ有効信号ＥＮＢが有効でない場合はＮｏと判断され、ステップＳ７０９に戻り、データ有効信号ＥＮＢが有効になるまでこれを続ける。データ有効信号ＥＮＢが有効である場合はＹｅｓと判断される。そして処理は次のステップＳ７１１に進む。
【００４９】
ステップＳ７１１において、ストリーム入力部１０１は、内蔵するバッファに格納したデータをパケットバッファ４０２に転送するため、調停部２００に出力する。そして処理は次のステップＳ７１３に進む。
【００５０】
ステップＳ７１３において、ストリーム入力部１０１からパケットバッファ４０２に対して１パケット分のデータ転送を行ったか否かが判断される。１パケット分のデータ転送が完了していない場合はＮｏと判断され、ステップＳ７０３に戻る。１パケット分のデータ転送が完了している場合はＹｅｓと判断され、ステップＳ７０１に戻り、次のパケットデータの入力に備える。
【００５１】
調停部２００は、上述のようなパケットバッファ４０２に書き込むためのデータ転送要求や後述するパケットバッファ４０２から読み出すためのデータ転送要求など複数のデータ転送要求を受け、調停を行って、どのデータ転送を行うかを決定する。受け付けたデータ転送要求がパケットバッファ４０２への書き込みの場合は、データ転送要求を受け付けたデータ転送要求元に対してデータ有効信号ＥＮＢを発し、データ転送要求を受け付けたことを通知するとともに転送データＴＳＤを受け取り、当該データおよびパケット先頭が当該データに含まれることを示すＳＹＮＣをパケット先頭検出器３０１に出力する。また、調停によって選択されたデータ転送要求元を示す信号ＡＲＢをパケット先頭検出器３０１およびパケットバッファ制御器４０１に出力する。
【００５２】
受け付けたデータ転送要求がパケットバッファ４０２からの読み出しの場合は、パケットバッファ制御器４０１に対してデータ転送要求を受け付けたデータ転送要求元を示す信号ＡＲＢを出力する。パケットバッファ制御器４０１はパケットバッファ４０２から当該データを読み出し、調停部２００に出力する。出力データがパケット先頭を含む場合は、調停部１０２に対してパケット先頭を転送することを示す信号ＳＹＮＣを出力する。
【００５３】
パケット先頭検出器３０１は、転送データＷＤにパケット先頭が含まれることを検出すると、バッファセル割当要求信号ＢＳＷを出力して、パケットバッファ４０２の新たなパケット格納領域を割り当てるようにバッファセル割当器３０２に対して指示する。
【００５４】
以後、パケットバッファ４０２の１パケット分のデータを格納する領域のそれぞれをバッファセルと呼ぶことにする。
【００５５】
バッファセル割り当て器３０２は、バッファセル割当要求信号ＢＳＷを受けると、後述するバッファセル使用情報Ｉｂａを参照して未使用のバッファセルを新たにデータ格納する領域として決定し、割り当てたバッファセルの番号をバッファセル割り当て情報Ｉａｂとして、バッファセル割り当て情報格納器３０３およびパケットバッファ制御器４０１に出力する。
【００５６】
バッファセル割り当て情報格納器３０３は、バッファセル割り当て器３０２から出力されるバッファセル割り当て情報Ｉａｂを受けて、バッファセルがどのように割り当てられているかの情報を格納するとともに、バッファセル使用状況Ｉｂａをバッファセル割り当て器３０２に対して通知する。
【００５７】
パケットバッファ制御部４０１は、パケットバッファ４０２に対するデータの読み出しおよび書き込みを制御する。詳述すると、パケットバッファ制御部４０１は、調停部２００が出力するデータ転送要求を受け付けたデータ転送要求元を示す信号ＡＲＢおよびバッファセル割り当て器３０２により、パケットバッファ４０２の中のどのバッファセルに対する転送であるかを算出する。また、パケット先頭を転送することを示す信号ＳＹＮＣによって、当該バッファセルに対するはじめての転送であることがわかる。以降の当該バッファセルに対する転送においては、転送要求元毎の転送先を記憶しておくことによって、当該バッファセル内の転送先が算出される。
【００５８】
データの書き込みの場合は、書き込みデータＷＤをパケット先頭検出器３０１から受け取り、制御信号Ｃｔｒｌによってパケットバッファ４０２に書き込みを指示し、前記転送先に書き込む。
【００５９】
当該バッファセルへの書き込みが終了、つまり次の処理を行うべきデータがバッファセルに蓄積された場合、そのバッファ番号を表す信号Ｎｂｕｆを処理待ちバッファセル情報制御器５０１に出力する。
【００６０】
データの読み出しの場合は、制御信号Ｃｔｒｌによってパケットバッファ４０２に読み出しを指示し、前記転送先から読み出しデータＲＤを読み出し、調停部２００に対して出力する。また、読み出したデータＲＤにパケット先頭が含まれる場合は、調停部２００に対してパケット先頭を転送することを示す信号ＳＹＮＣｒｄ１を出力する。
【００６１】
パケットバッファ４０２は、パケットバッファ制御部４０１の指示にしたがって、データの書き込みおよび読み出しを行う。パケットバッファ４０２はメモリで構成されることがのぞましく、公知の技術であるので詳細な説明は省略する。
【００６２】
処理待ちバッファセル情報制御器５０１は、パケットバッファ制御器４０１から、次の処理を行うべきデータが存するバッファ番号を表す信号Ｎｂｕｆを受け取り、これを処理待ちバッファセル情報格納器５０２における格納先を指示する信号Ｂｗｐとともに、処理待ちバッファセル情報格納器５０２に出力する。
【００６３】
処理待ちバッファセル情報格納器５０２は、処理待ちバッファセル情報制御器５０１の指示に従って、次の処理を行うべきデータが存するバッファ番号を表す信号Ｎｂｕｆを信号Ｂｗｐによって指示された格納先に格納する。処理待ちバッファセル情報格納器５０２は、ＦＩＦＯ（Ｆａｓｔ  Ｉｎ  Ｆａｓｔ  Ｏｕｔ）タイプのメモリで構成されることがのぞましく、公知の技術であるので詳細な説明は省略する。
【００６４】
次に図３を参照して、上述のバッファセル割り当て情報格納器３０３、パケットバッファ４０２、および処理待ちバッファセル情報格納器５０２の関係について簡単に説明する。パケットバッファ４０２は、ストリーム入力部１０１、１０２やパケットデータ処理部１１１、１１２から入力されるパケットデータを一時的に蓄積するためのＮ個のバッファセルｂｃ１〜ｂｃＮ（Ｎは２以上の自然数）を含む。
【００６５】
バッファセル割り当て情報格納器３０３は、パケットバッファ４０２のバッファセルｂｃ１〜ｂｃＮのそれぞれに対応するバッファセル割り当て情報領域Ａｃ１〜ＡｃＮを有する。バッファセル割り当て情報格納器３０３は、バッファセル割り当て器３０２から供給されるバッファセル割り当て情報Ｉａｂに基づいて、割り当てられたバッファセルｂｃｎ（ｎは１以上、Ｎ以下の自然数）に対応するバッファセル割り当て情報領域Ａｃｎに割り当ての有無を示す割り当て識別データを書き込む。つまり、バッファセル割り当て情報格納器３０３は、パケットバッファ４０２のバッファセルｂｃ１〜ｂｃＮと同数のバッファセル割り当て情報領域Ａｃ１〜ＡｃＮが用意される。
【００６６】
例えば、割り当て識別データは１と０の二値データであり、初期値は０である。そして、バッファセルｂｃ１が割り当てられる場合には、バッファセルｂｃ１に対応するバッファセル割り当て情報領域Ａｃ１には、例えば１が書き込まれる。一方、バッファセルｂｃ１に書き込まれたデータが読み出された後に、ＴＤ制御器７０１から出力される制御信号Ｓｃ１に基づいてバッファセル割り当て情報領域Ａｃ１に０が書き込まれて、バッファセルｂｃ１は解放される。
【００６７】
このようにして、パケットバッファ４０２に含まれる各バッファセルｂｃ１〜ｂｃＮのそれぞれの割り当て状況がバッファセル割り当て情報領域Ａｃ１〜ＡｃＮにおける値の集合で表現されて、割り当てバッファセル情報Ｉｂａとしてバッファセル割り当て器３０２に供給される。
【００６８】
処理待ちバッファセル情報格納器５０２は、パケットバッファ４０２に含まれるバッファセルｂｃ１〜ｂｃＮの特定の１つを示すバッファセル番号Ｎｂｕｆを格納するバッファセル指定領域Ｒｃ（Ｒｃ１〜ＲｃＮ）を有する。処理待ちバッファセル情報格納器５０２は好ましくは、リングメモリで構成されてバッファセル指定領域Ｒｃ１〜ＲｃＮが連続的かつ循環的に記録される。
【００６９】
バッファセル番号Ｎｂｕｆを記入すべきバッファセル指定領域Ｒｃｎ（ｎは１以上Ｎ以下の自然数）はライトポインタＷＰによって指示される。そして、記入されているバッファセル番号Ｎｂｕｆを読み出すべきバッファセル指定領域ＲｃｎはリードポインタＲＰによって指示される。ライトポインタＷＰは、上述のように処理待ちバッファセル情報制御器５０１から出力されるライトポインタ更新信号Ｂｗｐに基づいて進められるが、リードポインタＲＰはＴＤ制御器７０１から出力される制御信号Ｓｃ２に基づいて進められる。
【００７０】
ライトポインタＷＰがリードポインタＲＰの位置と異なる場合は、リードポインタＲＰが示すバッファセル指定領域Ｒｃｎに示されているバッファセルｂｃｎは、データを格納し終わって読み出し可能な状態であることを意味している。ライトポインタＷＰとリードポインタＲＰが同位置を示している場合は、データが読み出し可能な状態にあるバッファセルｂｃｎは無いことを意味している。
【００７１】
パケットフィルタ６０１は、バッファセルに格納されたパケットデータの特定のビット位置に配置されているパケット識別子と、ＴＤ制御器７０１が指示したビット列とを比較し、その一致もしくは不一致をＴＤ制御器７０１に通知する。パケット識別子は、ＴＤ制御器７０１がパケットバッファ制御部４０１を制御してパケットバッファ４０２から読み出してパケットフィルタ６０１に供給するものである。
【００７２】
ＴＤ制御器７０１は、状態信号Ｓｒに基づいて、パケットデータ処理装置８００の各構成要素の動作を制御する制御信号Ｓｃを生成して、パケットデータ処理装置８００に出力する。なお、状態信号Ｓｒおよび制御信号Ｓｃの生成するパケットデータ処理装置８００の制御は公知の技術であるので説明を省く。
【００７３】
ＴＤ制御器７０１の処理アルゴリズムの一例について、図７を用いて説明する。
【００７４】
ＴＤ制御部７０１は電源ＯＮもしくは初期化処理の後、その動作を開始し、ステップＳ８０１に進む。
【００７５】
ステップＳ８０１において、処理待ちバッファセルがあるか否かが判断される。処理待ちバッファセルがない、つまり処理待ちバッファセル情報格納器５０２のライトポインタＷＰとリードポインタＲＰを比較し、その値が等しい場合は処理待ちバッファセルがないと判断され、処理はステップＳ８０１に戻り、処理待ちバッファセルがあるまで待ち続ける。処理待ちバッファセルがある、つまり処理待ちバッファセル情報格納器５０２のライトポインタＷＰとリードポインタＲＰを比較し、その値が等しくない場合は処理待ちバッファセルがあると判断され、処理は次のステップＳ８０３に進む。
【００７６】
ステップＳ８０３において、ＴＤ制御器７０１は、処理待ちバッファセル情報格納器５０２のリードポインタＲＰが示すアドレスのデータを読み出し、パケットバッファ４０２の処理対象バッファセルを決定する。そして、処理は次のステップＳ８０５に進む。
【００７７】
ステップＳ８０５において、ＴＤ制御器７０１は前記ステップＳ８０３で決定した処理対象バッファセルに格納されているストリーム種別を表す符号ＴＳＳＴを読み出し、処理対象バッファセルに格納されているストリームの種別を決定する。そして処理は次のステップＳ８０７に進む。
【００７８】
ステップＳ８０７において、ＴＤ制御器７０１は前記ステップＳ８０５で決定したストリーム種別に基づいて、処理対象バッファセル中のパケットデータのパケット識別子ＰＩＤが格納されているアドレスを算出し、パケットバッファ制御部４０１を制御して、当該パケット識別子ＰＩＤを読み出し、パケットフィルタ６０１に転送する。これに対して、パケットフィルタ６０１はパケットフィルタ処理を行う。すなわち、当該パケット識別子ＰＩＤとＴＤ制御器７０１が指示したビット列との比較を行い、その一致、不一致をＴＤ制御器７０１に通知する。そして処理は次のステップＳ８０９に進む。
【００７９】
ステップＳ８０９において、パケットフィルタ処理の結果が一致か不一致か判断される。不一致の場合は、Ｎｏと判断され、処理はステップＳ８１７に進む。一致の場合は、Ｙｅｓと判断され、処理はステップＳ８１１に進む。
【００８０】
ステップＳ８１１において、当該パケットデータにどのような処理を施すかが決定される。そして処理は次のステップＳ８１３に進む。
【００８１】
ステップＳ８１３において、ＴＤ制御器７０１は、パケットデータ処理部に対して前記ステップＳ８１１で決定されたデータ処理を施すように命令する。そして処理は次のステップＳ８１５に進む。
【００８２】
ステップＳ８１５において、ＴＤ制御器７０１は、ストリーム出力部に対してデータ処理済みのパケットデータをストリームとして出力するように命令する。そして処理は次のステップＳ８１７に進む。
【００８３】
ステップＳ８１７において、ＴＤ制御器７０１は、新たに入力されるパケットデータを格納するためやデータ処理後のパケットデータを格納するために、すべての処理が終わって不要となったパケットデータが格納されているバッファセルを解放する。そして、処理はステップＳ８０１に戻り、上記処理ルーチンを繰り返し行う。
【００８４】
パケットデータ処理部１１１は、パケットデータ処理部１１２と機能的に同等であり、パケットデータ処理部１１１についてのみ説明する。
【００８５】
パケットデータ処理部１１１は、ＴＤ制御器７０１の指示にしたがってバッファセルに格納されたパケットデータに当該所定の処理を行う。
【００８６】
パケットデータ処理部１１１の動作を、図８を用いて説明する。
【００８７】
パケットデータ処理部１１１はＴＤ制御部７０１の指示によって、その動作を開始し、ステップＳ９０１に進む。
【００８８】
ステップＳ９０１において、ＴＤ制御器７０１からパケットデータ処理部１１１に対するデータ処理命令が発せられているか否かが判断される。データ処理命令が発せられていない場合はＮｏと判断され、データ処理命令が発せられるのを待ちつづける。データ処理命令が発せられている場合はＹｅｓと判断され、ステップＳ９０３に進む。
【００８９】
ステップＳ９０３において、パケットデータ処理部１１１は処理対象のデータを当該所定のバイト数ずつパケットバッファ４０２から読み出すため、調停部２００に対してデータ転送要求信号Ｒｅｑを出力する。そして処理は次のステップＳ９０５に進む。
【００９０】
ステップＳ９０５において、パケットデータ処理部１１１のデータ転送要求が受理されたか否かが判断される。すなわち、調停部２００からデータ転送要求を受理したことを示すデータ有効信号ＥＮＢが有効であるか否かが判断される。データ有効信号ＥＮＢが有効でない場合はＮｏと判断され、ステップＳ９０５に戻り、データ有効信号ＥＮＢが有効になるまでこれを続ける。データ有効信号ＥＮＢが有効である場合はＹｅｓと判断される。そして処理は次のステップＳ９０７に進む。
【００９１】
ステップＳ９０７において、データ処理部１１１はパケットバッファ４０２から読み出されたデータＴＳＤを読み出し、内蔵するバッファに格納する。そして処理は次のステップＳ９０９に進む。
【００９２】
ステップＳ９０９において、データ処理部１１１は内蔵するバッファに格納したデータに対して当該所定の処理を施す。そして処理は次のステップＳ９１１に進む。
【００９３】
ステップＳ９１１において、データ処理部１１１は処理を施した後のデータを当該所定のバイト数ずつパケットバッファ４０２に書き戻すため、調停部２００に対してデータ転送要求信号Ｒｅｑを出力する。そして処理は次のステップＳ９１３に進む。
【００９４】
ステップＳ９１３において、パケットデータ処理部１１１のデータ転送要求が受理されたか否かが判断される。すなわち、調停部２００からデータ転送要求を受理したことを示すデータ有効信号ＥＮＢが有効であるか否かが判断される。データ有効信号ＥＮＢが有効でない場合はＮｏと判断され、ステップＳ９１３に戻り、データ有効信号ＥＮＢが有効になるまでこれを続ける。データ有効信号ＥＮＢが有効である場合はＹｅｓと判断される。そして処理は次のステップＳ９１５に進む。
【００９５】
ステップＳ９１５において、データ処理部１１１は処理を施した後のデータＴＳＤを出力し、パケットバッファ４０２に格納させる。そして処理は次のステップＳ９１７に進む。
【００９６】
ステップＳ９１７において、データ処理部１１１で１パケット分のデータに処理を施した後、パケットバッファ４０２に書き戻したか否かが判断される。１パケット分のデータ処理が完了していない場合はＮｏと判断され、ステップＳ９０３に戻り、データ処理を続ける。１パケット分のデータ処理が完了している場合はＹｅｓと判断され、ステップＳ９０１に戻り、ＴＤ制御器７０１から次のデータ処理命令が来るのを待つ。
【００９７】
ストリーム出力部１２１はストリーム出力部１２２と機能的に同等であり、ストリーム出力部１２１についてのみ説明する。
【００９８】
ストリーム出力部１２１は、ＴＤ制御器７０１の指示にしたがってバッファセルに格納されたパケットデータをストリームＳＯ１として出力する。
【００９９】
ストリーム出力部１２１の動作を、図９を用いて説明する。
【０１００】
ストリーム出力部１２１はＴＤ制御部７０１の指示によって、その動作を開始し、ステップＳ１００１に進む。
【０１０１】
ステップＳ１００１において、ＴＤ制御器７０１からストリーム出力部１２１に対するストリーム出力命令が発せられているか否かが判断される。ストリーム出力命令が発せられていない場合はＮｏと判断され、ステップＳ１００１に戻り、ストリーム出力命令を待ち続ける。ストリーム出力命令が発せられている場合はＹｅｓと判断され、処置は次のステップＳ１００３に進む。
【０１０２】
ステップＳ１００３において、ストリーム出力部１２１はストリーム出力対象のデータを当該所定のバイト数ずつパケットバッファ４０２から読み出すため、調停部２００に対してデータ転送要求信号Ｒｅｑを出力する。そして処理は次のステップＳ１００５に進む。
【０１０３】
ステップＳ１００５において、ストリーム出力部１２１のデータ転送要求が受理されたか否かが判断される。すなわち、調停部２００からデータ転送要求を受理したことを示すデータ有効信号ＥＮＢが有効であるか否かが判断される。データ有効信号ＥＮＢが有効でない場合はＮｏと判断され、ステップＳ１００５に戻り、データ有効信号ＥＮＢが有効になるまでこれを続ける。データ有効信号ＥＮＢが有効である場合はＹｅｓと判断される。そして処理は次のステップＳ１００７に進む。
【０１０４】
ステップＳ１００７において、ストリーム出力部１２１はパケットバッファ４０２から読み出されたデータＴＳＤを読み出し、内蔵するバッファに格納する。そして処理は次のステップＳ１００９に進む。
【０１０５】
ステップＳ１００９において、ストリーム出力部１２１は内蔵するバッファに格納されたデータをストリームとして出力する。そして処理は次のステップＳ１０１１に進む。
【０１０６】
ステップＳ１０１１において、ストリーム出力部１２１で１パケット分のデータをストリーム出力したか否かが判断される。１パケット分のストリーム出力が完了していない場合はＮｏと判断され、ステップＳ１００３に戻り、ストリーム出力を続ける。１パケット分のストリーム出力が完了している場合はＹｅｓと判断され、ステップＳ１００１に戻り、ＴＤ制御器７０１から次のストリーム出力命令が来るのを待つ。
【０１０７】
（第２の実施の形態）
本発明の第２の実施の形態について図５を用いて説明する。
【０１０８】
第１の実施の形態における図１と、本第２の実施の形態における図６は、パケットフィルタ６０１に対してパケット識別子ＰＩＤをどのように転送するかが異なる。この差異点についてのみ説明する。
【０１０９】
第２の実施の形態では、ＴＤ制御器７０１がパケットバッファ４０２の処理対象バッファセル内に存する特定のビット列を読み出し、これをパケット識別子ＰＩＤとして、パケットフィルタ６０１に転送する。
【０１１０】
異なる種類のストリームでは、パケット識別子の存するパケット中のビット位置が異なるのが普通である。この第２の実施の形態の場合、ＴＤ制御器７０１をＣＰＵで構成し、その動作をプログラマブルとすれば、処理対象バッファセル内のさまざまな位置に配置されたビット列を読み出すことが可能となるので、さまざまな種類のストリームのパケットフィルタ処理を実現できる。
【０１１１】
（第３の実施の形態）
本発明の第３の実施の形態について図４を用いて説明する。
【０１１２】
図４はストリーム識別子ＴＳＩＤやマスク情報ＭＳＫを用いて、複数のさまざまな種類のストリームのパケットフィルタ処理を可能にしたパケットフィルタ６０１の概略を示した図である。
【０１１３】
マスク情報参照テーブルＭＴＡＢはａ個の要素ＭＳＫ［１］、ＭＳＫ［２］、…、ＭＳＫ［ａ］から構成され、各構成要素のビット長はＬである。ストリーム識別子参照テーブルＳＴＡＢはａ個の要素ＴＳＴ［１］、ＴＳＴ［２］、…、ＴＳＴ［ａ］から構成され、各構成要素のビット長はＭである。パケット識別子参照テーブルＰＴＡＢはａ個の要素ＬＵＴ［１］、ＬＵＴ［２］、…、ＬＵＴ［ａ］から構成され、各構成要素のビット長はＮである（ａ、Ｌ、Ｍ、Ｎは自然数）。処理内容テーブルＤＴＡＢはａ個の要素ＤＴ［１］、ＤＴ［２］、…、ＤＴ［ａ］から構成され、パケットフィルタの比較結果に基づいて処理対象パケットに対して行われるべき処理内容が格納されている。
【０１１４】
Ｌ、Ｍ、Ｎの間には、Ｌ＝Ｍ＋Ｎ  の関係が成り立っている。ストリーム識別子ＴＳＩＤのビット長は、本発明のストリームデータ処理装置が有するストリーム入力部の数に依存して定められる。上記の各構成要素には、あらかじめＴＤ制御器７０１によってその値が設定されている。
【０１１５】
また、当該処理対象パケットにストリーム入力部が付与するストリーム識別子ＴＳＩＤがストリーム識別子レジスタＴＳＩＤＲＥＧにセットされ、パケット識別子レジスタＰＩＤＲＥＧには当該処理対象パケットのパケット識別子ＰＩＤがビット長Ｌとなるように上位ビットを０で拡張してセットされる。
【０１１６】
ＴＤ制御器７０１のパケットフィルタ処理命令によって、パケットフィルタ処理を開始する。
【０１１７】
はじめに、マスク情報参照テーブルＭＴＡＢの番号１の構成要素ＭＳＫ［１］がマスク情報レジスタＭＲＥＧに読み出されるとともに、ストリーム識別子参照テーブルＳＴＡＢの番号１の構成要素ＴＳＴ［１］およびパケット識別子参照テーブルＰＴＡＢの番号１の構成要素ＬＵＴ［１］がＰＬＵＴレジスタＰＲＥＧに読み出される。
【０１１８】
続いて、ストリーム識別子レジスタＴＳＩＤＲＥＧとパケット識別子レジスタＰＩＤＲＥＧの連接とマスク情報レジスタＭＲＥＧがビット毎の論理積演算器ＢＡＮＤで処理される。同様に、パケット識別子参照レジスタＰＲＥＧとマスク情報レジスタＭＲＥＧがビット毎の論理積演算器ＢＡＮＤで処理される。そして、上記の２つの論理積演算の結果が比較器ＣＭＰで比較され、一致した場合はテーブルの番号１がパケットフィルタ処理結果として出力される。
【０１１９】
以下、テーブルの全番号つまり１からａまで同様の比較演算が繰り返され、比較結果が一致した番号がパケットフィルタ処理結果として出力される。
【０１２０】
このパケットフィルタによると、Ｎビット以下の任意のビット長のパケット識別子の比較照合を実行することができる。
【０１２１】
このように、本実施の形態で述べたパケットフィルタを、第１および第２の実施の形態のパケットフィルタに適用すれば、複数のさまざまな種類のストリームのパケットフィルタ処理を容易に効率良く実現することができる。
【０１２２】
なお、本発明は、上述した本発明のストリームデータ処理装置の全部または一部の手段（または、装置、素子、回路、部等）の機能をコンピュータにより実行させるためのプログラムであって、コンピュータと協働して動作するプログラムである。
【０１２３】
また、本発明は、上述した本発明のプログラムを担持した媒体であり、コンピュータにより読み取り可能且つ、読み取られた前記プログラムが前記コンピュータと協動して前記動作を実行する媒体である。
【０１２４】
さらにまた、本発明の一部の手段（または、装置、素子、回路、部等）、本発明の一部のステップ（または、工程、動作、作用等）とは、それらの複数の手段またはステップの内の、幾つかの手段またはステップを意味し、あるいは、一つの手段またはステップの内の、一部の機能または一部の動作を意味するものである。
【０１２５】
また、本発明のプログラムの一利用形態は、伝送媒体中を伝送し、コンピュータにより読みとられ、コンピュータと協働して動作する態様であっても良い。
【０１２６】
また、本発明のデータ構造としては、データベース、データフォーマット、データテーブル、データリスト、データの種類などを含む。
【０１２７】
また、記録媒体としては、ＲＯＭ等が含まれ、伝送媒体としては、インターネット等の伝送媒体、光・電波・音波等が含まれる。
【０１２８】
また、上述した本発明のコンピュータは、ＣＰＵ等の純然たるハードウェアに限らず、ファームウェアや、ＯＳ、更に周辺機器を含むものであっても良い。
【０１２９】
なお、以上説明した様に、本発明の構成は、ソフトウェア的に実現しても良いし、ハードウェア的に実現しても良い。
【０１３０】
【発明の効果】
以上のように、本発明によれば、複数のさまざまな種類のストリームに含まれるパケットのデータ処理に好適なシステムを実現することができるので、セットトップボックス、デジタルテレビ、ゲーム機、ホームゲートウェイなど各種デジタル情報機器のストリーム処理のプラットフォームとして使用することができる。
【０１３１】
また、本発明では、複数のストリーム中のデータをパケット単位で格納した後、パケットごとにパケットフィルタ処理および選別されたパケットに対するデータ処理を施すので、同じ機能をもつデータ処理部を複数配置する必要がなく、装置の小型化、低価格化を実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１における、複数のさまざまな種類のストリームを処理可能なストリームデータ処理装置のシステム図
【図２】図１に示したストリーム入力部に関わる信号のタイミングチャート図
【図３】図１に示したバッファセル割り当て情報格納器３０３、パケットバッファ４０２および処理待ちバッファセル情報格納器５０２の関係を示す説明図
【図４】本発明の実施の形態３における、図１に示したパケットフィルタ６０１の詳細な構成を示すブロック図
【図５】本発明の実施の形態２における、複数のさまざまな種類のストリームを処理可能なストリームデータ処理装置のシステム図
【図６】図１における、ストリーム入力をパケット単位でパケットバッファ４０２に格納する動作を示すフローチャート
【図７】図１における、ＴＤ制御器７０１の詳細な動作を示すフローチャート
【図８】図１における、パケットデータ処理部の詳細な動作を示すフローチャート
【図９】図１における、ストリーム出力部の詳細な動作を示すフローチャート
【図１０】従来のストリームデータ処理装置の構成の一例を示すブロック図
【図１１】従来のストリームデータ処理装置を、さまざまな種類のストリームを処理可能とするために拡張した装置の構成の一例を示すブロック図
【図１２】図１１に示したデータストリーム装置を複数配置して、複数のさまざまな種類のストリームを処理可能とした装置の構成の一例を示すブロック図
【符号の説明】
１０１         ストリーム入力部１
１０２         ストリーム入力部２
１１１         パケットデータ処理部１
１１２         パケットデータ処理部２
１２１         ストリーム出力部１
１２２         ストリーム出力部２
２００         調停部
３０１         パケット先頭検出器
３０２         バッファセル割り当て器
３０３         バッファセル割り当て情報格納器
４０１         パケットバッファ制御部
４０２         パケットバッファ
５０１         処理待ちバッファセル情報制御器
５０２         処理待ちバッファセル情報格納器
６０１         パケットフィルタ
７０１         ＴＤ制御器
８００         パケットデータ処理装置
ＳＩ１、ＳＩ２ ストリーム源（図示せず）から入力されるストリーム
ＲＥＱ         データ転送要求信号
ＥＮＢ         データ有効信号
ＳＹＮＣ       パケットスタート信号
ＴＳＤ         転送データ
ＡＲＢ         データ転送要求受付元
ＢＳＷ         バッファセル割り当て指示
Ｉａｂ         バッファセル割り当て情報
Ｉｂａ         バッファセル使用情報
ＷＤ           パケットバッファ  ライトデータ
ＲＤ           パケットバッファ  リードデータ
Ｃｔｒｌ       パケットバッファ制御信号
Ｎｂｕｆ       処理待ちバッファセル番号
Ｂｗｐ         処理待ちバッファセル情報格納器に対する格納先指示信号
ＰＩＤ         処理対象バッファセルに格納されたパケットのパケット識別子Ｓｃ           パケットデータ処理装置８００の各構成要素の動作を制御する制御信号
Ｓｒ           パケットデータ処理装置８００の各構成要素の状態を通知する状態信号
Ａｃ１、Ａｃ２、Ａｃ３、…  ＡｃＮ     バッファセル割り当て情報領域
ｂｃ１、ｂｃ２、ｂｃ３、…  ｂｃＮ     バッファセル
Ｒｃ１、Ｒｃ２、Ｒｃ３、…  ＲｃＮ     バッファセル指定領域
ＲＰ           処理待ちバッファセル情報格納器リードポインタ
ＷＰ           処理待ちバッファセル情報格納器ライトポインタ
ＴＳＩＤＲＥＧ ストリーム識別子レジスタ
ＰＩＤＲＥＧ   パケット識別子レジスタ
ＭＲＥＧ       マスク情報レジスタ
ＰＲＥＧ       パケット識別子参照レジスタ
ＳＴＡＢ       ストリーム識別子参照テーブル
ＴＳＴ［１］、ＴＳＴ［２］、…  ＴＳＴ［ａ］
ストリーム識別子参照テーブル構成要素
ＰＴＡＢ       パケット識別子参照テーブル
ＬＵＴ［１］、ＬＵＴ［２］、…  ＬＵＴ［ａ］
パケット識別子参照テーブル構成要素
ＭＴＡＢ       マスク情報参照テーブル
ＭＳＫ［１］、ＭＳＫ［２］、…  ＭＳＫ［ａ］
マスク情報参照テーブル構成要素
ＤＴＡＢ       処理内容テーブル
ＤＴ［１］、ＤＴ［２］、…  ＤＴ［ａ］
処理内容テーブル構成要素
ＢＡＮＤ       ビット毎の論理積演算器
ＣＭＰ         比較器
１００１       ストリーム入力部
１００２       パケットフィルタ
１００３       パケットデータ処理部
１００４       ストリーム出力部
１００５       パケット解析部
１００６       パケット選択部
【図１】
0003808394.tif 000002
【図２】
0003808394.tif 000003
【図３】
0003808394.tif 000004
【図４】
0003808394.tif 000005
【図５】
0003808394.tif 000006
【図６】
0003808394.tif 000007
【図７】
0003808394.tif 000008
【図８】
0003808394.tif 000009
【図９】
0003808394.tif 000010
【図１０】
0003808394.tif 000011
【図１１】
0003808394.tif 000012
【図１２】
0003808394.tif 000013