JP3816088B2 - データ一致検出装置、データ一致検出方法、データ選別装置 - Google Patents

データ一致検出装置、データ一致検出方法、データ選別装置 Download PDF

Info

Publication number
JP3816088B2
JP3816088B2 JP2004189576A JP2004189576A JP3816088B2 JP 3816088 B2 JP3816088 B2 JP 3816088B2 JP 2004189576 A JP2004189576 A JP 2004189576A JP 2004189576 A JP2004189576 A JP 2004189576A JP 3816088 B2 JP3816088 B2 JP 3816088B2
Authority
JP
Japan
Prior art keywords
data
memory
circuit
match
partial data
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.)
Expired - Fee Related
Application number
JP2004189576A
Other languages
English (en)
Other versions
JP2005045775A (ja
Inventor
教彦 溝端
浩一 堤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004189576A priority Critical patent/JP3816088B2/ja
Priority to US10/880,665 priority patent/US20050004901A1/en
Priority to CNB2004100621588A priority patent/CN1322753C/zh
Publication of JP2005045775A publication Critical patent/JP2005045775A/ja
Application granted granted Critical
Publication of JP3816088B2 publication Critical patent/JP3816088B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Television Systems (AREA)
  • Time-Division Multiplex Systems (AREA)

Description

この発明はデータ一致検出装置、データ一致検出方法、データ選別装置に関し、特に、放送より受信されたデータや記録デバイスから出力されたディジタルデータの中から受け取るべきデータが所定の検出条件と一致するか否かを検出する装置および方法、ならびに上記所定の検出条件と一致したデータを選別する装置に関するものである。
近年、映像や音声その他のデータをディジタルデータにより伝送・蓄積することが多く行われるようになってきている。このような場合、データは分割され、いくつかのフィールドより構成されるデータ構造をもつパケットなどのデータに構成され、伝送・蓄積されることが一般的である。さらに複数のデータパケットに構成された後、一つの伝送・蓄積メディアに多重され、伝送・蓄積される場合がある。このような場合のデータ構造、多重化の標準規格としてMPEGシステム規格があり、多くの場合、この規格のパケットデータ構造に準拠した方法でデータの伝送・蓄積が行われている。
このようなパケットデータが多重化されたシステムでは、データを受信する機器において、多重化されたパケットデータから受信すべきデータを選別する必要がある。特にPSI(番組特定情報)やSI(サービス情報)など番組に付随する様々な情報は、セクションというデータ形式により繰り返し伝送されているが、受信機の状態、すなわちどの番組を選択し受信しているかなどの状況により必要な情報が異なり、このため多くの情報の中から必要なものを的確に選び出さなければならない。
従来技術の例として、MPEGシステム規格に準拠したデータ多重化方式を用いているディジタル放送などの受信機に用いられ、セクションデータの選別を行うデマルチプレクサについて説明する。
従来のデマルチプレクサでは、1つのセクションデータが入力される度に、このセクションデータを構成する各フィールドとこのフィールドに対応する全ての候補データとを比較する。入力された比較対象のフィールド全てに対して候補データとの一致を順次検査し、全てのフィールドが候補データと一致することを検出した場合に、このセクションデータを受信すべきものであると判断し、選別出力する。また、候補データと入力フィールドの比較をマスクし、一致検出を行わないようにする回路や、候補データと不一致であることを検出する回路を備えることで柔軟なデータ選別を実現している(例えば、特開平11−164271号公報参照)。
特開平11−164271号公報 特開平9−275381号公報
しかし、従来のデマルチプレクサのセクションデータの一致検出装置、選別装置には、次のような問題がある。
一般のディジタル放送受信機のデマルチプレクサでは、次のようなセクションデータ選別性能が要求される。
・比較対象フィールド...セクションデータ先頭16バイト
・候補データ種類...32種類(比較マスク付)
・選別対象のセクションデータの入力速度...12.5Mバイト/秒
・セクションデータ選別装置の動作クロック周波数...100MHz
上記のような性能のセクションデータ一致検出装置を構成した場合、12.5Mバイト/秒×32種類=400M回/秒の入力フィールドと候補データの比較を行わなければならない。この際、候補データと比較マスクデータを格納している候補データメモリからの読み出し速度は400M回/秒×2バイト=800Mバイト/秒となる。また、400M回の比較を100MHzの動作クロックの回路で実現するためには、1クロックあたり4回の比較を行う必要がある。4回の比較のためには、4バイトの候補データと4バイトの比較マスクデータの計8バイトを1クロックで読み出す必要があり、すなわち候補データメモリからの読み出しデータ幅は8バイト必要となる。以上より、従来のセクションデータ一致検出装置では、8バイト幅の候補データメモリから毎秒100M回(800Mバイト/秒)の読み出しを実行しながら、1秒間に400Mバイトのデータ比較を実行しなければならない。
以上のような高いバンド幅の候補データメモリを実現するには、LSI内蔵メモリでなければ現実的でなく、また上記のような高速なデータ一致検出を実行するためには、専用のデータ比較回路を設ける必要がある。このため、高性能なセクションデータ一致検出装置はハードウェアで実現されていた。さらに高性能なセクションデータ一致検出装置を実現するには、メモリバンド幅の向上のため1クロックで読み出せるデータ幅を拡張するとともに、データ比較回路が1クロックで比較する候補データ数を増やすことが必要となる。
本発明によるデータ一致検出装置は、複数の部分データを含む入力データが所定の検出条件に一致するか否かを判定する装置であって、前記複数の部分データの各々がとりうる値の各々に対応づけられたアドレスに、当該とりうる値が前記検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が前記検出条件に一致しないこと(「不一致」)を示す参照データが前記検出条件に基づいてあらかじめ記憶されている第1のメモリと、前記入力データから部分データを順次切り出し、切り出した部分データの値に対応するアドレスを前記第1のメモリに与えるデータ切り出し部とを備え、前記第1のメモリは、前記データ切り出し部から与えられるアドレスに記憶されている参照データを出力し、前記装置はさらに、前記入力データが前記検出条件に一致するか否かを前記第1のメモリからの参照データに基づいて判定する判定部を備え、前記第1のメモリには、前記複数の部分データの各々の前記入力データ内における位置と当該部分データがとりうる値の各々とに基づいて生成されたアドレスに前記参照データがあらかじめ記憶されており、前記データ切り出し部は、前記切り出した部分データの前記入力データ内における位置と前記切り出した部分データの値とに基づいて生成したアドレスを前記第1のメモリに与える、ことを特徴とする。
上記データ一致検出装置において、前記複数の部分データの各々は1つのバイトデータを構成する、ことが好ましい。
上記データ一致検出装置において、前記複数の部分データの各々は1つのフィールドデータを構成する、ことが好ましい。
本発明による別のデータ一致検出装置は、複数の部分データを含む入力データが所定の検出条件に一致するか否かを判定する装置であって、前記複数の部分データの各々がとりうる値の各々に対応づけられたアドレスに、当該とりうる値が前記検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が前記検出条件に一致しないこと(「不一致」)を示す参照データが前記検出条件に基づいてあらかじめ記憶されている第1のメモリと、前記入力データから部分データを順次切り出し、切り出した部分データの値に対応するアドレスを前記第1のメモリに与えるデータ切り出し部とを備え、前記第1のメモリは、前記データ切り出し部から与えられるアドレスに記憶されている参照データを出力し、前記装置はさらに、前記入力データが前記検出条件に一致するか否かを前記第1のメモリからの参照データに基づいて判定する判定部を備え、前記複数の部分データの各々には所定の演算が対応づけられており、前記判定部は、論理演算部と、前記論理演算部の出力データを記憶する第2のメモリとを含み、前記論理演算部は、前記第1のメモリから出力される参照データに対応する部分データに対応づけられている演算を、当該参照データと前記第2のメモリに記憶されている出力データとのうち少なくとも一方に対して実行し、その演算結果を出力し、前記第2のメモリは、前記「一致」を示すデータが初期値として記憶されており、前記入力データに含まれる複数の部分データのうち前記データ切り出し部によって最後に切り出された部分データに対する前記論理演算部の出力データを一致判断情報として出力する、ことを特徴とする。
上記データ一致検出装置において、前記第2のメモリは、前記論理演算部の出力データを複数記憶することができ、前記論理演算部は、前記第1のメモリから出力される参照データに対応する部分データに対応づけられている演算を、当該参照データと前記第2のメモリに記憶されている複数の出力データとのうち少なくとも1つに対して実行し、その演算結果を出力する、ことが好ましい。
本発明によるデータ一致検出方法は、複数の部分データを含む入力データが所定の検出条件に一致するか否かを判定する方法であって、前記複数の部分データの各々がとりうる値の各々に対応づけられたアドレスに、当該とりうる値が前記検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が前記検出条件に一致しないこと(「不一致」)を示す参照データを前記検出条件に基づいて第1のメモリにあらかじめ記憶するステップ(a)と、前記入力データから部分データを順次切り出し、切り出した部分データの値に対応するアドレスを生成するステップ(b)と、前記ステップ(b)によって生成されたアドレスに記憶されている参照データを前記第1のメモリから読み出すステップ(c)と、前記入力データが前記検出条件に一致するか否かを前記ステップ(c)によって前記第1のメモリから読み出された参照データに基づいて判定するステップ(d)とを備え、前記ステップ(a)では、前記複数の部分データの各々の前記入力データ内における位置と当該部分データがとりうる値の各々とに基づいて生成されたアドレスに前記参照データをあらかじめ記憶し、前記ステップ(b)では、前記切り出した部分データの前記入力データ内における位置と前記切り出した部分データの値とに基づいてアドレスを生成する、ことを特徴とする。
本発明による別のデータ一致検出方法は、複数の部分データを含む入力データが所定の検出条件に一致するか否かを判定する方法であって、前記複数の部分データの各々がとりうる値の各々に対応づけられたアドレスに、当該とりうる値が前記検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が前記検出条件に一致しないこと(「不一致」)を示す参照データを前記検出条件に基づいて第1のメモリにあらかじめ記憶するステップ(a)と、前記入力データから部分データを順次切り出し、切り出した部分データの値に対応するアドレスを生成するステップ(b)と、前記ステップ(b)によって生成されたアドレスに記憶されている参照データを前記第1のメモリから読み出すステップ(c)と、前記入力データが前記検出条件に一致するか否かを前記ステップ(c)によって前記第1のメモリから読み出された参照データに基づいて判定するステップ(d)と、前記複数の部分データの各々に所定の演算を対応づけるステップ(e)とを備え、前記ステップ(d)は、前記「一致」を示すデータを初期値として第2のメモリに記憶するステップ(f)と、前記ステップ(c)によって前記第1のメモリから読み出される参照データに対応する部分データに対応づけられている演算を、当該参照データと前記第2のメモリに記憶されている出力データとのうち少なくとも一方に対して実行し、その演算結果を前記第2のメモリに記憶するステップ(g)と、前記入力データに含まれる複数の部分データのうち前記ステップ(b)によって最後に切り出された部分データに対して前記ステップ(g)によって前記第2のメモリに記憶されたデータを一致判断情報として出力するステップ(h)とを含む、ことを特徴とする。
上記データ一致検出方法において、前記第2のメモリは、前記演算結果を複数記憶することが可能であり、前記ステップ(g)では、前記ステップ(c)によって前記第1のメモリから読み出される参照データに対応する部分データに対応づけられている演算を、当該参照データと前記第2のメモリに記憶されている複数の演算結果とのうち少なくとも1つに対して実行し、その演算結果を前記第2のメモリに記憶する、ことが好ましい。
本発明によるデータ一致検出装置および方法では、部分データ1つあたり1度だけ第1のメモリを読み出すことにより入力データと検出条件との一致検出を実現できるため、従来のように一つの部分データに対して一致検出候補データ全てを読み出して当該部分データと比較することは不要となり、メモリアクセス回数や比較演算回数を大幅に削減できる。
本発明の実施の形態として、MPEGシステム規格に準拠したディジタル放送において、セクションデータ形式のデータを用いて送られる様々な情報を必要に応じて取捨選択するためのセクションデータ選別回路(データ選別装置)と、これを構成するヘッダ一致検出回路(データ一致検出装置)について説明する。
ディジタル放送では、映像や音声、その他各種の情報はトランスポートストリームにて伝送される。トランスポートストリームでは固定長のトランスポートストリームパケットが順次伝送される。図1はトランスポートストリームパケット、及びトランスポートストリームパケット内に各種データのテーブルを格納するためのセクションデータのフォーマットを示している。
トランスポートストリームパケット100は、パケット識別番号などからなるトランスポートパケットヘッダ110と、パケットで伝送されるデータ本体であるトランスポートパケットペイロード120とからなる。映像や音声の情報は、PESパケットという形式でトランスポートパケットペイロード120部分に格納される。一方、放送や番組に付随する各種情報(番組表や暗号化の鍵情報など)は、セクションという形式でトランスポートパケットペイロード120部分に格納される。図1では、セクション形式で各種情報を格納しているトランスポートストリームパケット100を示している。1つのトランスポートストリームパケット100には複数のセクション#1,#2,...が格納されうる。図1には、さらにセクションのデータ形式を示している。セクションは、テーブル識別子、テーブル長、テーブル識別子拡張、バージョン番号、セクション番号、最終セクション番号というようなデータの種別を表す情報と、データ本体とからなる。テーブル識別子などより、そのセクションのデータが受信すべきものであるかどうかを判断することが可能である。
図2は、ディジタル放送の受信機の構成要素であるトランスポートパケット処理装置21の概略構成を示している。入力されたトランスポートストリームは、まずパケット処理回路22で処理される。トランスポートストリームパケット100は、まずパケット選択回路23にて、トランスポートストリームパケット単位の選別が行われ、次にデータ取り出し回路24でトランスポートパケットペイロード120からデータが取り出される。ここで映像や音声の情報はPESパケットとして取り出され、メモリアクセス回路26にてメモリ27に書き込まれる。この情報はAVデコーダ28にてメモリ27から取り出され、映像や音声が再現され、表示・出力される。一方、番組や放送の各種情報は、トランスポートパケットペイロード120からセクションとして取り出される。セクションは、セクションデータ選別回路25に入力され、ここで必要なものかどうかが選別される。選別されたセクションは、メモリアクセス回路26にてメモリ27に書き込まれる。この後CPU29がメモリ27からセクションを読み出しセクションに格納されている各種情報を取り出し受信機の動作の制御などに使用する。
セクションで伝送される各種情報は受信機にとって重要な情報であり、必ず受信できるように同じ情報が繰り返し放送される。しかし、一度受信してしまえば同じ情報を何度も受け取る必要はない。このようにセクションは受信機の状態でその要否が決まり、不要な情報を捨て去ることができればCPUの処理量も減少することになり、受信機の処理能力向上に役立つことになる。
(実施の形態1)
本実施の形態1によるセクションデータ選別回路において、セクションのテーブル識別子、テーブル識別子拡張、バージョン番号、セクション番号の4つのフィールドでセクションデータの選別をする場合について説明する。ここでは、図3に示すセクションを選別することを考える。
図4には、セクションデータ選別回路25(データ選別装置)の構成図を示す。入力されたセクションデータは、データ遅延回路32およびヘッダ一致検出回路31、動作制御回路34に入力される。ヘッダ一致検出回路31では、入力されたセクションのヘッダと図3に示す一致検出候補データとの条件一致を調べ、図3の2種類の一致検出条件のうち少なくとも1つと一致する場合には、「一致」を示す一致判断信号を出力制御回路33に出力する。データ遅延回路32は、セクションヘッダが条件に一致するか否かがヘッダ一致検出回路31により判断されるまで、入力されたセクションデータを遅延させる回路である。データ遅延回路32から出力されたセクションデータは、出力制御回路33に入力される。出力制御回路33は、データ遅延回路32から与えられるセクションデータのうちヘッダ一致検出回路31からの一致判断信号が「一致」を示しているセクションデータだけを出力する。このようにセクションデータ選別回路25は、複数の一致検出候補データ(一致検出条件)のうち少なくとも1つに一致するセクションデータを選別し、出力することができる。動作制御回路34は、順次入力されるセクションデータに応じて、セクションデータ選別回路25の各部の動作タイミングを上記のように制御する回路である。
上述したヘッダ一致検出回路(データ一致検出装置)31の構成を図5に示す。ヘッダ一致検出回路31は、セクションヘッダ切り出し回路41、加算回路42、パターンメモリ43、論理積回路44、一致検出状態記憶回路45、一致判断記憶回路46を備えている。
セクションヘッダ切り出し回路41は、入力されたセクションからセクションヘッダを構成する各フィールドデータを切り出し、順次出力する。セクションヘッダ切り出し回路41は、切り出したフィールドデータを出力すると同時に、このフィールドデータのセクションヘッダ内での位置を示すフィールド位置信号も出力する。
加算回路42は、セクションヘッダ切り出し回路41から出力されたフィールドデータとフィールド位置信号とを加算し、加算結果をパターンメモリ43へ出力する。
パターンメモリ43には、セクションヘッダの各フィールドがとりうる値の各々に対応づけられたアドレスに、当該とりうる値が一致検出条件(図3)に一致すること(「一致」)を示す参照データまたは当該とりうる値が一致検出条件(図3)に一致しないこと(「不一致」)を示す参照データが一致検出条件(図3)に基づいてあらかじめCPU29により記憶されている。なお、パターンメモリ43への参照データの格納例については後に説明する。パターンメモリ43の各アドレスに記憶される複数ビット(この実施の形態では32ビット)の参照データの各ビットには、それぞれ独立の一致検出条件に基づいて値が設定されている。加算回路42から入力されたフィールドデータとフィールド位置信号の加算結果をアドレスとしてパターンメモリ43を読み出すと、このフィールドデータが一致検出条件(図3)に一致するか否かを示す参照データが出力される。
一致検出状態記憶回路45は32ビットの記憶回路であり、各ビットに一致検出処理中の状態を記憶している。一致検出状態記憶回路45は、セクションの開始ごとに全ビットの記憶内容を「一致」を表す「1」に初期化し、その後、各フィールドデータの比較が実行されるたびに論理積回路44からの出力を記憶し、記憶内容を出力する。
論理積回路44は、パターンメモリ43からの出力と一致検出状態記憶回路45からの出力信号がともに「一致」を示しているビットに関しては「一致」を出力し、それ以外のビットは「不一致」を出力し、これを一致検出状態記憶回路45に記憶する。
あるセクションのセクションヘッダの全フィールドに関してパターンメモリ43の参照が終わると、一致判断記憶回路46は一致検出状態記憶回路45の出力の少なくとも1ビットが「一致」を示している場合は「一致」を、そうでない場合は「不一致」を記憶しこれを出力する。このようにしてセクションヘッダと一致検出条件との一致判断結果が一致判断記憶回路46により記憶され出力される。
さらに具体的に機能・動作を説明する。
セクションヘッダ切り出し回路41は、セクションヘッダを構成する各フィールド(テーブル識別子,テーブル識別子拡張,バージョン番号,カレントネクスト指示,セクション番号、最終セクション番号)を切り出し出力する。ただし本実施の形態では、テーブル識別子拡張は上位8ビットと下位8ビットに分けて出力するものとする。図6には、各フィールドが出力される際のフィールド位置信号を示す。
図7に、パターンメモリ43のアドレスマップを示す。パターンメモリ43は1314ワードのメモリであり、図7に示すように、000〜0FFh番地はテーブル識別子のとりうる値00〜FFhに対応し、100〜1FFh番地はテーブル識別子拡張の上位8ビットのとりうる値00〜FFhに対応し、200〜2FFh番地はテーブル識別子拡張の下位8ビットのとりうる値00〜FFhに対応し、300〜31Fh番地はバージョン番号のとりうる値00〜1Fhに対応し、320〜321h番地はカレントネクスト指示のとりうる値0〜1hに対応し、322〜421h番地はセクション番号のとりうる値00〜FFhに対応し、422〜521h番地は最終セクション番号のとりうる値00〜FFhに対応している。各番地には32ビットの参照データを記憶でき、参照データの各ビットはそれぞれ独立の一致検出条件に対応する。すなわち本実施の形態では32種の一致検出条件との一致検出が可能である。本実施の形態では図3に示すように2種の一致検出条件(第1の一致検出条件、第2の一致検出条件)が設定されている場合について説明する。
図3に示した第1および第2の一致検出条件に基づいて参照データがパターンメモリ43に以下のように格納される。
まずパターンメモリ43のアドレス000h〜521hの参照データは、「不一致」を表す0にすべて初期化されているとする。第1の一致検出条件はパターンメモリ43の32ビットの参照データのビット位置0に対応させられている。
テーブル識別子に関しては01hとの一致を検出する必要があるため、図8に示すように、01hとテーブル識別子に対応するフィールド位置信号000hとを加算して得られる001h番地のビット位置0に、「一致」を示す「1」を記憶させておく。
テーブル識別子拡張の上位8ビットに関しては23hとの一致を検出する必要があるため、図8に示すように、23hと100h(テーブル識別子拡張上位8ビットを表すフィールド位置信号値)とを加算して得られる123h番地のビット位置0に「1」を記憶させておく。
同様にテーブル識別子拡張下位8ビットに関しては、図8に示すように、200h+45h=245h番地のビット位置0に「1」を記憶させておく。
次にバージョン番号に関しては、06hとの不一致を検出する必要があるので、図8に示すように、300h(バージョン番号に対応するフィールド位置信号値)+06h(=306h)のビット位置0は「0」のままとし、バージョン番号のとりうる値のうちの06h以外の値に対応するアドレス300h〜305h,307h〜31Fh番地のビット位置0に「1」を記憶させておく。06hとの不一致を検出することは06h以外のデータとの一致を検出することと等価だからである。
セクション番号に関しては、図8に示すように、322h+07h=329h番地のビット位置0に「1」を記憶させる。
今回の例(第1の一致検出条件)では比較対象にならないカレントネクスト指示、最終セクション番号に関しては、図8に示すように、パターンメモリ43の320〜321h番地、422〜521h番地のビット位置0を「1」に設定することで、どのようなフィールドデータが入力されても「一致」との結果を出力できる。
次に、第2の一致検出条件はパターンメモリ43の参照データのビット位置1に対応させるとする。
テーブル識別子に関しては01hとの一致を検出する必要があるため、図9に示すように、01h+000h=001h番地のビット位置1を「1」にする。
テーブル識別子拡張の上位8ビットに関しては8Xh(Xは任意の値)との一致を検出する必要があるため、図9に示すように、8Xh+100h=18Xh番地(Xは任意の値)すなわち180h〜18Fh番地のビット位置1に「1」を設定する。
同様にテーブル識別子拡張下位8ビットに関しては、図9に示すように、200h+X5h=2X5h番地(Xは任意の値)すなわち205h,215h,225h,・・・,2F5hのビット位置1に「1」を記憶させておく。
バージョン番号に関しては、16hとの一致を検出する必要があるので、図9に示すように、300h+16h=316h番地のビット位置1に「1」を設定する。
セクション番号に関しては、17h以上の値と一致する必要があるため、図9に示すように、322h〜421h番地のうち、322h+17h=339h番地以上のビット位置1に「1」を記憶させる。
今回の例(第2の一致検出条件)では比較対象にならないカレントネクスト指示、最終セクション番号に関しては、図9に示すように、パターンメモリ43の320〜321h番地、422〜521h番地のビット位置0を「1」に設定することで、どのようなフィールドデータが入力されても「一致」との結果を出力できる。
以上のようにして、図3に示した第1および第2の一致検出条件に基づいて参照データがパターンメモリ43に格納される。
ここで図10に示すヘッダを持つセクションが入力されたとする。このセクションは、図3に示す第1の一致検出条件に一致するセクションである。
セクションヘッダ切り出し回路41で入力セクションからまず1つ目のフィールドであるテーブル識別子=01hが切り出される。同時にセクションヘッダ切り出し回路41からはフィールド位置信号として000hが出力される。これら2つの出力が加算回路42で加算され、001hがパターンメモリ43へアドレスとして入力される。パターンメモリ43からは、001h番地に記録されている32ビットの参照データ「00000003h」(ビット位置0およびビット位置1の値のみ「1」(「1」は「一致」を表す))が読み出され、論理積回路44へ入力される。一方、一致検出状態記憶回路45には、セクション開始直後であるので全てのビットが「1」(「1」は「一致」を表す)に初期化、すなわちFFFFFFFFhが記憶されており、この値が論理積回路44に入力されている。論理積回路44では上記の2つの入力データをビット毎に論理積演算を行い、演算結果00000003hを出力する。演算結果00000003hは一致検出状態記憶回路45に記憶されるとともに一致検出状態記憶回路45から出力される。一致検出状態記憶回路45に記憶された00000003hは、入力セクションデータのうち1つ目のフィールドであるテーブル識別子はパターンメモリ43のビット位置0とビット位置1に設定された2つの一致検出条件(第1および第2の一致検出条件)と一致していることを表している。
つぎに、セクションヘッダ切り出し回路41から2つ目のフィールドであるテーブル識別子拡張の上位8ビット=23hが切り出される。同時にセクションヘッダ切り出し回路41からはフィールド位置信号として100hが出力され、加算結果123hがパターンメモリ43へアドレスとして入力される。パターンメモリ43からは、123h番地に記録されている32ビットの参照データ「00000001h」(ビット位置0のみ「1」)が読み出され、論理積回路44へ入力される。論理積回路44は、パターンメモリ43からの出力00000001hと一致検出状態記憶回路45の出力00000003hとの論理積演算を実行し、その演算結果00000001hを出力し、一致検出状態記憶回路45はこの値を記憶する。この値は、入力セクションデータのうち2つ目のフィールド(テーブル識別子拡張上位8ビット)までの部分は、パターンメモリ43のビット位置0に設定された第1の一致検出条件とだけ一致していることを表している。
つぎに、セクションヘッダ切り出し回路41から3つ目のフィールドであるテーブル識別子拡張の下位8ビット=45hが切り出される。同時にセクションヘッダ切り出し回路41からはフィールド位置信号として200hが出力され、加算結果245hがパターンメモリ43へアドレスとして入力される。パターンメモリ43からは、245h番地に記録されている32ビットの参照データ「00000003h」(ビット位置0、ビット位置1が「1」)が読み出され、論理積回路44へ入力される。パターンメモリ43の2X5h番地(Xは任意の値)のビット位置1には、X5h(Xは任意の値)との一致判断結果が「一致」となるよう「1」が設定されている。すなわち245h番地も「1」が記憶されている。論理積回路44は、パターンメモリ43からの出力00000003hと一致検出状態記憶回路45の出力00000001hとの論理積演算を実行し、その演算結果00000001hを出力し、一致検出状態記憶回路45はこの値を記憶する。この値は、入力セクションデータのうち3つ目のフィールド(テーブル識別子拡張下位8ビット)までの部分は、パターンメモリ43のビット位置0に設定された第1の一致検出条件とだけ一致していることを表している。パターンメモリ43の出力は00000003hであり、ビット位置0、ビット位置1の2つの条件(第1および第2の一致検出条件)との一致を表していたが、一致検出状態記憶回路45には、2つ目のフィールドまでの一致検出状態としてすでにビット位置0の条件(第1の一致検出条件)以外では一致していないことが記憶されていたために、3つ目のフィールドでは一致したビット位置1の条件(第2の一致検出条件)も、一致検出状態記憶回路45には「不一致」と記憶される。
つぎに、セクションヘッダ切り出し回路41から4つ目のフィールドであるバージョン番号1Fhが切り出される。バージョン番号は5ビットの値である。同時にセクションヘッダ切り出し回路41からはフィールド位置信号として300hが出力され、加算結果31Fhがパターンメモリ43へアドレスとして入力される。パターンメモリ43の300hから31Fh番地(306h番地以外)のビット位置0には、06hとの不一致を検出、言い換えれば06h以外の全ての値との一致を検出できるように、「1」が設定されている。このため、31Fh番地からは00000001h(ビット位置0が「1」)が読み出され、論理積回路44へ入力される。論理積回路44は、パターンメモリ43からの出力00000001hと一致検出状態記憶回路45の出力00000001hとの論理積演算を実行し、その演算結果00000001hを出力し、一致検出状態記憶回路45はこの値を記憶する。この値は、入力セクションデータのうち4つ目のフィールド(バージョン番号)までの部分は、パターンメモリ43のビット位置0に設定された第1の一致検出条件とだけ一致していることを表している。
つぎに、セクションヘッダ切り出し回路41から5つ目のフィールドであるカレントネクスト指示が切り出される。カレントネクスト指示は1ビットの数値である。同時にセクションヘッダ切り出し回路41からはフィールド位置信号として320hが出力される。パターンメモリ43の320h、321h番地のビット位置0には「1」が記憶されており、このため、入力されたカレントネクスト指示の値に関わらず、00000001hが出力され、論理積回路44へ入力される。論理積回路44は、パターンメモリ43からの出力00000001hと一致検出状態記憶回路45の出力00000001hとの論理積演算を実行し、その演算結果00000001hを出力し、一致検出状態記憶回路45はこの値を記憶する。この値は、入力セクションデータのうち5つ目のフィールド(カレントネクスト指示)までの部分は、パターンメモリ43のビット位置0に設定された第1の一致検出条件とだけ一致していることを表している。
つぎに、セクションヘッダ切り出し回路41から6つ目のフィールドであるセクション番号=07hが切り出される。同時にセクションヘッダ切り出し回路41からはフィールド位置信号として322hが出力される。これらの加算結果329hがアドレスとしてパターンメモリ43に入力される。329h番地のビット位置0には「1」が記憶されているため、00000001hがパターンメモリ43から出力され、論理積回路44へ入力される。論理積回路44は、パターンメモリ43からの出力00000001hと一致検出状態記憶回路45の出力00000001hとの論理積演算を実行し、その演算結果00000001hを出力し、一致検出状態記憶回路45はこの値を記憶する。この値は、入力セクションデータのうち6つ目のフィールド(セクション番号)までの部分は、パターンメモリ43のビット位置0に設定された第1の一致検出条件とだけ一致していることを表している。
つぎに、セクションヘッダ切り出し回路41から7つ目のフィールドである最終セクション番号=80hが切り出される。同時にセクションヘッダ切り出し回路41からはフィールド位置信号として422hが出力される。パターンメモリ43の422h〜521h番地のビット位置0には「1」が記憶されており、このため、入力された最終セクション番号の値に関わらず、00000001hが出力され、論理積回路44へ入力される。論理積回路44は、パターンメモリ43からの出力00000001hと一致検出状態記憶回路45の出力00000001hとの論理積演算を実行し、その演算結果00000001hを出力し、一致検出状態記憶回路45はこの値を記憶する。この値は、入力セクションデータのうち7つ目のフィールド(最終セクション番号)までの部分すなわち入力セクションデータの一致検出対象の全フィールドの一致検出が完了した時点で、入力セクションデータはパターンメモリ43のビット位置0に設定された第1の一致検出条件と一致していることを表している。
入力セクションデータと一致検出条件との一致検出が完了したため、一致検出記憶回路45に記憶されている00000001hが一致判断記憶回路46に入力される。一致判断記憶回路46では入力が0でないため、入力セクションデータが第1の一致検出条件と一致したと判断し、一致判断結果として「一致」を出力する。
このように、入力されたセクションは一致検出条件に一致したものと判断され、一致判断記憶回路46から「一致」が出力され、ヘッダ一致検出回路31から「一致」が出力される。
一方、入力セクションデータの各フィールドが一致検出条件と一致しない場合、パターンメモリ43の出力は「不一致」を示す「0」が出力され、論理積回路44の出力が「0」となり、これが一致検出状態記憶回路45に記憶されるため、これ以降の条件が一致しても論理積回路44の出力が「0」となり、一致検出条件と一致しないことが判断できる。このように、一致検出途中のフィールドで「不一致」が検出されると、これ以降の一致検出状態記憶回路45の状態は「不一致」となり、一致判断記憶回路46には「不一致」が記憶され出力される。
次に図11に示すヘッダを持つセクションが入力されたとする。
上述の図10の例と同様に処理されることにより、図11で示す入力セクションヘッダをもつ入力セクションデータは、テーブル識別子、テーブル識別子拡張、バージョン番号、カレントネクスト指示、最終セクション番号に関して、パターンメモリ43のビット位置1に設定された第2の一致検出条件(図3参照)と一致する。ここでは、図11のセクション番号に関して詳しく説明する。
セクションヘッダ切り出し回路41からセクション番号20hが切り出され、加算回路42に入力される。同時にセクションヘッダ切り出し回路41からはフィールド位置信号として322hが出力され、加算結果342hがパターンメモリ43へアドレスとして入力される。パターンメモリ43のアドレス322h〜421h番地のうち339h番地以上のアドレスのビット位置1には、入力データ17h以上との一致を検出できるように「1」が記憶されている。このため、342h番地からは00000002h(ビット位置1が「1」)が読み出され、論理積回路44へ入力される。一方、入力セクションヘッダのセクション番号以前の各フィールドはビット位置1の条件(第2の一致検出条件)と一致しているため、一致検出状態記憶回路45は00000002hを記憶、出力している。論理積回路44は、パターンメモリ43からの出力00000002hと一致検出状態記憶回路45の出力00000002hとの論理積演算を実行し、その演算結果00000002hを出力し、一致検出状態記憶回路45はこの値を記憶する。
次に入力される最終セクション番号に関しても、一致していることが検出される。
このように、入力されたセクションは第2の一致検出条件に一致したものと判断され、一致判断記憶回路46から一致判断結果として「一致」が出力され、ヘッダ一致検出回路31から「一致」が出力される。
ヘッダ一致検出回路31から「一致」が検出されると、セクションデータ選別回路25の出力制御回路33は、入力されデータ遅延回路32で遅延された入力セクションデータを出力する。
以上のように、実施の形態1のセクションデータ選別回路25によれば、セクションヘッダとの一致検出条件を32種まで設定でき、そのうちのある条件に一致するセクションヘッダを持つセクションを選別出力することができる。
セクションヘッダを構成するそれぞれのフィールドに対して1回のパターンメモリ43への読み出しだけで一致検出条件との比較を完了させることができるため、ヘッダ一致検出回路31に必要とされるメモリのアクセスバンド幅を小さく抑えることが可能となる。
例えば、12.5Mバイト/秒で入力されるセクションの選別を32種の条件に対して実行する場合にも、12.5M回×32ビット=50Mバイト/秒のメモリアクセスバンド幅が要求されるだけであり、従来技術を用いた場合に必要となる800Mバイト/秒と比較して大幅に要求性能を抑えることが可能となる。
また、全てのデータ値について一致検出条件との一致/不一致を示す参照データをあらかじめパターンメモリ43に格納するため、条件データとの一致の検出だけでなく、不一致の検出、大小比較、フィールドデータの一部分の比較抑止などを実現でき、非常に柔軟な検出条件を設定することが可能となる。
なお、実施の形態1では、パターンメモリ43に32種の一致検出条件を設定できるものとしたがこれに限るものでなく、パターンメモリ43、論理積回路44、一致検出状態記憶回路45、一致判断記憶回路46で扱うビット数を一致検出条件数に応じて変更することにより、任意の条件数を扱うことができる。
また、実施の形態1のヘッダ一致検出回路31は、セクションヘッダの全フィールド、すなわちセクションデータの先頭の8バイト目までのフィールドについて、一致検出するものとして説明したが、一致検出対象のフィールドはこれに限られるものでなく、任意のサイズのデータについて一致検出することができる。
また、実施の形態1の一致判断記憶回路46からは、一致したか否かの結果だけを一致判断結果として出力するものとしたが、これに加えて、一致を検出した条件を示している一致検出状態記憶回路45からの入力そのものも記憶し、この情報を出力することもできる。これによりセクションデータ選別回路25では、一致検出条件との一致を判断しセクションデータの出力可否を判断するだけでなく、一致を検出した条件を示す情報も出力することが可能となる。
さらに、実施の形態1では、パターンメモリ43をヘッダ一致検出回路31に内蔵されるメモリとして説明したが、これに限定されるものでなく、CPU29の主記憶メモリと共用するなど、ヘッダ一致検出回路31の外部に置くこともできる。上述のように、12.5Mバイト/秒で入力されるセクションの選別を32種の条件に対して実行する場合に50Mバイト/秒のメモリアクセスバンド幅を使用するに留まる。CPU29の主記憶メモリは数百Mバイト/秒のアクセスバンド幅を持つことが一般的であり、このアクセスバンド幅の内50Mバイト/秒をヘッダ一致検出回路が使用することは現実的な実現形態である。パターンメモリ43の実現方法として外付けの大容量メモリを利用することにより、一致検出対象のフィールド数や一致検出条件数を増加させる場合に必要となるパターンメモリ43の容量増加に容易に対応することができる。
さらには、実施の形態1ではセクションヘッダ切り出しやフィールドデータとフィールド位置信号とを加算してパターンメモリ43へのアドレスを作ることを回路として実現する方法を説明したが、これに限られるものでなく、セクションデータからのセクションヘッダの切り出しやフィールド位置のカウント、フィールド位置信号として表されるフィールド位置情報とフィールドデータの加算を、処理の全てまたは一部をソフトウェアで実現することも可能である。フィールドデータの切り出しは、実現の形態1では12.5Mバイト/秒のデータの処理であり、ソフトウェアでも実現できる処理量である。
また、実施の形態1では、論理積回路44、一致検出状態記憶回路45、一致判断記憶回路46を回路として実現する例を示したが、これに限られるものでなく、これらをソフトウェア処理で実現することもできる。
上述のようにパターンメモリ43をCPU29の主記憶メモリとして実現し、その他のヘッダ一致検出回路31の処理をソフトウェアで実現することもできる。すなわち、実施の形態1で説明したヘッダ一致検出回路31の一部または全てをソフトウェアで実現することも可能である。
(実施の形態2)
図12に、本発明の実施の形態2におけるヘッダ一致検出回路の構成図を示す。ヘッダ一致検出回路31は、セクションヘッダ切り出し回路61、加算回路42、パターンメモリ63、演算回路64、一致検出状態記憶回路65、一致判断記憶回路46、演算順序記憶回路67を備えている。
セクションヘッダ切り出し回路61は、入力されたセクションからセクションヘッダを構成するデータを先頭から4ビット毎の部分データとして切り出し、順次出力する。セクションヘッダ切り出し回路61は、部分データを出力すると同時にこの部分データのセクションヘッダ内での位置を示す部分データ位置信号も出力する。
加算回路42は、セクションヘッダ切り出し回路61から出力された部分データと部分データ位置信号を加算し、加算結果をパターンメモリ63へ出力する。
パターンメモリ63には、セクションヘッダの各部分データがとりうる値の各々に対応づけられたアドレスに、当該とりうる値が一致検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が一致検出条件に一致しないこと(「不一致」)を示す参照データが実施の形態1と同様にあらかじめCPU29により記憶されている。加算回路42から入力された部分データと部分データ位置信号との加算結果をアドレスとしてパターンメモリ63を読み出すと、この部分データが一致検出条件に一致するか否かを示す参照データが出力される。
一致検出状態記憶回路65は、32ビットの情報を複数ワード記憶できる記憶回路であり、各ワードの各ビットに一致検出処理中の状態を記憶している。セクションの開始ごとに一致検出状態記憶回路65は、何も記憶されていない状態に初期化される。その後、各フィールドデータの比較が実行される度に演算回路64の演算結果を記憶する。
演算回路64は、パターンメモリ63からの参照データを入力するとともに、一致検出状態記憶回路65の記憶内容を読み出し、これらのデータに対して演算順序記憶回路67からの指示に従い演算を行い、結果を一致検出状態記憶回路65に出力する。
演算順序記憶回路67には、セクションヘッダ切り出し回路61で切り出された部分データに対応して、演算回路64で演算すべき演算種類(プログラム)が記憶されている。各部分データに対して1つ以上の演算種類と演算順序を指示することができる。
あるセクションのセクションヘッダの全フィールドに関してパターンメモリ63の参照が終わると、一致判断記憶回路46は一致検出状態記憶回路65の記憶データを読み出し、少なくとも1ビットが「一致」を示している場合は「一致」を、そうでない場合は「不一致」を記憶し出力する。
このようにして一致判断記憶回路46からセクションヘッダと一致検出条件との一致判断結果が記憶され出力される。
さらに具体的に機能・動作を説明する。
セクションヘッダ切り出し回路61は、セクションヘッダを構成するデータ列の先頭から4ビット毎を部分データとして切り出す。例えば、セクションの先頭からの4ビット部分データ2つはテーブル識別子に対応する。図13には、各部分データが出力される際の部分データ位置信号を示す。
図14に、パターンメモリ63のアドレスマップを示す。パターンメモリ63は448ワードのメモリであり、図14に示すように、000〜00Fh番地はセクション先頭0〜3ビット目の部分データのとりうる値0〜Fhに対応し、010〜01F番地はセクション先頭4〜7ビット目の部分データのとりうる値0〜Fhに対応している。以下同様に、セクションのテーブル長のフィールドを除く各部分データのとりうる値が1BF番地まで対応している。各番地には32ビットの参照データを記憶でき、参照データの各ビットはそれぞれ独立の一致検出条件に対応する。すなわち実施の形態2では32種の一致検出条件との一致検出が可能である。
実施の形態2では、下記の条件に一致するセクションを選別する場合について考える。
・テーブル識別子が27hと一致
・バージョン番号が15hと不一致
・セクション番号がA5h以上
このためには、図15に示すように2種の一致検出条件を設定する。
バージョン番号は5ビットのフィールドで、40〜43ビット目の部分データの下位2ビットと44〜47ビット目の部分データの上位3ビットに対応する。このため、バージョン番号=15hとの不一致は、「(40〜43ビット目がXX10b(bは2進数を、Xは任意の値を表す)と一致しない)または(44〜47ビット目が101Xbと一致しない)」と表される。さらに、「セクション番号がA5h以上」という条件を、「セクション番号がB0h以上、または、A5h〜AFh」という2つの条件に分割している。
図15に示した第1および第2の一致検出条件に基づいて参照データがパターンメモリ63に以下のように格納される。
まずパターンメモリ63のアドレス000h〜1BFhの参照データは、「不一致」を表す0にすべて初期化されているとする。第1の一致検出条件はパターンメモリ63の32ビットの参照データのビット位置0に対応させられており、第2の一致検出条件はパターンメモリ63の32ビットの参照データのビット位置1に対応させられているものとする。
部分データ0〜3ビット目に関しては第1、第2の一致検出条件とも2hとの一致を検出する必要があるため、2hと部分データ0〜3ビット目に対応する部分データ位置信号000hとを加算して得られる002h番地のビット位置0とビット位置1に、「一致」を示す「1」を記憶させておく。
部分データ4〜7ビット目に関しては7hとの一致を検出する必要があるため、7hと部分データ4〜7ビット目に対応する部分データ位置信号010hとを加算して得られる017h番地のビット位置0とビット位置1に、「一致」を示す「1」を記憶させておく。
部分データ40〜43ビット目に関しては、第1、第2の一致検出条件とも、XX10bとの不一致を検出するため、この値と部分データ40〜43ビット目に対応する部分データ位置信号060hとを加算して得られる00000110XX10b番地のビット位置0とビット位置1に、「一致」を示す「1」を記憶させる。
同様に、部分データ44〜47ビット目に関しては、部分データ位置信号が070hなので、00000111101Xb番地のビット位置0およびビット位置1に、「一致」を示す「1」を記憶させる。
部分データ48〜51ビット目に関しては、第1の一致検出条件では、Bh以上を検出する必要がある。Bh以上との一致とは、Bh〜Fhの全てのデータと一致することである。そこで、これらの値と48〜51ビット目に対応する部分データ位置信号の値080hを加算して得られる08Bh〜08Fh番地のビット位置0に、「一致」を示す「1」を記憶させる。第2の一致検出条件に関しては、Ahとの一致を検出するために、080h+Ah=08Ah番地のビット位置1に「1」を記憶させる。
部分データ52〜55ビット目に関しては、第1の一致検出条件では任意の値で一致となればよいため、(部分データ位置信号090h)+(任意の4ビットの数値)=09Xh番地のビット位置0に「1」を記憶させる。第2の一致検出条件については、5h以上、すなわち、5h〜Fhとの一致を検出するため、(部分データ位置信号090h)+(5h〜Fh)=095h〜09Fhのビット位置1に「1」を記憶させておく。
一方、演算順序記憶回路67には、図16に示す演算種類と演算順序を、各部分データに対して設定する。
ここで図17に示すヘッダを持つセクションが入力されたとする。このセクションは、図15に示す第1の一致検出条件に一致するセクションである。
セクションヘッダ切り出し回路61で入力セクションから0〜3ビット目の部分データ=2hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として000hが出力される。これら2つの出力が加算回路42で加算され、002hがパターンメモリ63へアドレスとして入力される。
パターンメモリ63からは002h番地に記録されている00000003h(ビット位置0およびビット位置1の値のみ一致を表す「1」)が読み出され、演算回路64へ入力される。
一方、演算順序記憶回路67には部分データ位置信号000hが入力されているため、演算回路64に対して「パターンメモリ63の出力を一致検出状態記憶回路65の記憶位置0に書き込む」という演算指示が入力されている。演算回路64はパターンメモリ63からの出力である00000003hを一致検出状態記憶回路65の記憶位置0に書き込む。
次に、セクションヘッダ切り出し回路61で入力セクションから4〜7ビット目の部分データ=7hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として010hが出力される。これら2つの出力が加算回路42で加算され、017hがパターンメモリ63へアドレスとして入力される。
パターンメモリ63からは017h番地に記録されている00000003h(ビット位置0およびビット位置1の値のみ一致を表す「1」)が読み出され、演算回路64へ入力される。
一方、演算順序記憶回路67には部分データ位置信号010hが入力されているため、演算回路64に対して「パターンメモリ63の出力と、一致検出状態記憶回路65の記憶位置0の内容をビット毎に論理積演算を行い、一致検出状態記憶回路65の記憶位置0に書き込む」という演算指示が入力されている。演算回路64はパターンメモリ63からの出力である00000003hと、一致検出状態記憶回路65の記憶位置0に記憶されている00000003hのビット毎の論理積演算を行い、演算結果00000003hを一致検出状態記憶回路65の記憶位置0に書き込む。
このように、セクション先頭0から7ビット目であるテーブル識別子が入力された時点で、一致検出状態記憶回路65には、第1と第2の一致検出条件との一致を示す00000003hが記憶されている。
次に、セクションヘッダ切り出し回路61で入力セクションから24〜27ビット目の部分データ=2hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として020hが出力される。これら2つの出力が加算回路42で加算され、022hがパターンメモリ63へアドレスとして入力される。
一方、演算順序記憶回路67には部分データ位置信号020hが入力されているため、演算回路64に対して「演算なし」という演算指示が入力されている。このため、パターンメモリ63からの出力データに関わらず、一致検出状態記憶回路65の記憶データは変化せず、一致検出状態記憶回路65には、第1および第2の一致検出条件との一致を示す00000003hが記憶されている。これはテーブル識別子拡張の先頭4ビットである部分データ位置24〜27ビット目の部分データに対しては一致検出条件が設定されていない、すなわちどのような入力データに対しても「一致」と判断するためである。
入力セクションの28〜31ビット目、32〜35ビット目、36〜39ビット目の部分データに対しても、演算回路64では演算が行われない。
次に、セクションヘッダ切り出し回路61で入力セクションから40〜43ビット目の部分データ=3hが切り出される。バージョン番号のうち上位2ビット(11b)が40〜43ビット目の下位2ビットに対応するためである。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として060hが出力される。これら2つの出力が加算回路42で加算され、063h=000001100011bがパターンメモリ63へアドレスとして入力される。
パターンメモリ63からは063h番地に記録されている00000000hが読み出され、演算回路64へ入力される。
一方、演算順序記憶回路67には部分データ位置信号060hが入力されているため、演算回路64に対して「パターンメモリ63の出力をビット毎に論理反転演算を行い、一致検出状態記憶回路65の記憶位置1に書き込む」という演算指示が入力されている。演算回路64はパターンメモリ63からの出力である00000000hをビット毎に論理反転演算を行い、その演算結果であるFFFFFFFFhを一致検出状態記憶回路65の記憶位置1に書き込む。
次に、セクションヘッダ切り出し回路61で入力セクションから44〜47ビット目の部分データ=111Xbが切り出される。バージョン番号のうち下位3ビット(111b)が44〜47ビット目の上位3ビットに対応するためである。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として070hが出力される。これら2つの出力が加算回路42で加算され、00000111111Xbがパターンメモリ63へアドレスとして入力される。
パターンメモリ63からは00000111111Xb番地に記録されている00000000hが読み出され、演算回路64へ入力される。
一方、演算順序記憶回路67には部分データ位置信号070hが入力されているため、演算回路64に対する1番目の演算指示として「パターンメモリ63の出力をビット毎に論理反転演算を行い、一致検出状態記憶回路65の記憶位置2に書き込む」が入力されている。演算回路64はパターンメモリ63からの出力である00000000hをビット毎に論理反転演算を行い、その演算結果であるFFFFFFFFhを一致検出状態記憶回路65の記憶位置2に書き込む。
演算回路64に対する2番目の演算指示は「一致検出状態記憶回路65の記憶位置1の値と記憶位置2の値とをビット毎に論理和演算を行い、一致検出記憶回路65の記憶位置1に書き込む」であり、一致検出状態記憶回路65の記憶位置1の値FFFFFFFFhと記憶位置2の値FFFFFFFFhとをビット毎に論理和演算を行い、その演算結果であるFFFFFFFFhを記憶位置1に書き込む。
さらに、3番目の演算指示は「一致検出状態記憶回路65の記憶位置0の値と記憶位置1の値とをビット毎に論理積演算を行い、一致検出状態記憶回路65の記憶位置0に書き込む」であり、一致検出状態記憶回路65の記憶位置0の値00000003hと記憶位置1の値FFFFFFFFhとをビット毎に論理積演算を行い、その演算結果である00000003hを記憶位置0に書き込む。
このように演算することにより、一致検出状態記憶回路65の記憶位置0には、第1の一致検出条件と第2の一致検出条件との双方に一致しているという状態を表す00000003hが記憶されている。
上記の演算手順を採ることにより、4ビット単位の一致検出と検出結果の論理演算により「バージョン番号は15hと不一致」という5ビット単位の検出条件に対して「バージョン番号入力が1Fh」の場合に一致を検出することができる。
次に、セクションヘッダ切り出し回路61で入力セクションから48〜51ビット目(セクション番号の上位4ビット)の部分データ=Dhが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として080hが出力される。これら2つの出力が加算回路42で加算され、08Dhがパターンメモリ63へアドレスとして入力される。
パターンメモリ63からは08Dh番地に記録されている00000001h(ビット位置0の値のみ一致を表す「1」)が読み出され、演算回路64へ入力される。
一方、演算順序記憶回路67には部分データ位置信号080hが入力されているため、演算回路64に対して「パターンメモリ63の出力と、一致検出状態記憶回路65の記憶位置0の内容とをビット毎に論理積演算を行い、一致検出状態記憶回路65の記憶位置0に書き込む」という演算指示が入力されている。演算回路64はパターンメモリ63からの出力である00000001hと、一致検出状態記憶回路65の記憶位置0に記憶されている00000003hとのビット毎の論理積演算を行い、その演算結果00000001hを一致検出状態記憶回路65の記憶位置0に書き込む。
一致検出状態記憶回路65には、第1の一致検出条件との一致を示す00000001hが記憶されている。
次に、セクションヘッダ切り出し回路61で入力セクションから52〜55ビット目(セクション番号の下位4ビット)の部分データ=0hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として090hが出力される。これら2つの出力が加算回路42で加算され、090hがパターンメモリ63へアドレスとして入力される。
パターンメモリ63からは090h番地に記録されている00000001h(ビット位置0の値のみ一致を表す「1」)が読み出され、演算回路64へ入力される。
一方、演算順序記憶回路67には部分データ位置信号090hが入力されているため、演算回路64に対して「パターンメモリ63の出力と、一致検出状態記憶回路65の記憶位置0の内容とをビット毎に論理積演算を行い、一致検出状態記憶回路65の記憶位置0に書き込む」という演算指示が入力されている。演算回路64はパターンメモリ63からの出力である00000001hと、一致検出状態記憶回路65の記憶位置0に記憶されている00000001hとのビット毎の論理積演算を行い、その演算結果00000001hを一致検出状態記憶回路65の記憶位置0に書き込む。
一致検出状態記憶回路65には、第1の一致検出条件との一致を示す00000001hが記憶されている。
この後、セクションヘッダ切り出し回路61で入力セクションから56〜59ビット目の部分データ(最終セクション番号の上位4ビット)=8h、60〜63ビット目の部分データ(最終セクション番号の下位4ビット)=0hが順次切り出される。これらの部分データに対する部分データ位置信号として0A0h、0B0hが演算順序記憶回路67に入力されるが、演算順序記憶回路67には0A0h以降の演算指示は全て「演算なし」であり、このためこの時点の一致検出記憶回路65の状態はセクションヘッダの最後のデータが入力されるまで変化しない。
セクションヘッダ切り出し回路61から入力セクションの124〜127ビット目が切り出され、部分データ位置信号として1B0hが一致判断記憶回路46に入力されると、この入力セクションと一致検出条件の一致検出が完了し、一致検出記憶回路65の記憶位置0に記憶されている00000001hが一致判断記憶回路46に入力される。
一致判断記憶回路46では入力が0でないため、入力セクションデータが第1の一致検出条件と一致したと判断し、一致判断結果として「一致」を出力する。
このように、入力されたセクションは一致検出条件に一致したものと判断され、一致判断記憶回路46から「一致」が出力され、ヘッダ一致検出回路31から「一致」が出力される。
次に図18に示すヘッダを持つセクションが入力されたとする。このセクションは、図15に示す第2の一致検出条件に一致するセクションである。
テーブル識別子、テーブル識別子拡張、バージョン番号、最終セクション番号は、図17の入力セクションと同一であり、説明を省略する。
セクションヘッダ切り出し回路61で入力セクションから48〜51ビット目(セクション番号の上位4ビット)の部分データ=Ahが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として080hが出力される。これら2つの出力が加算回路42で加算され、08Ahがパターンメモリ63へアドレスとして入力される。
パターンメモリ63からは08Ah番地に記録されている00000002h(ビット位置1の値のみ一致を表す「1」)が読み出され、演算回路64へ入力される。
一方、演算順序記憶回路67には部分データ位置信号080hが入力されているため、演算回路64に対して「パターンメモリ63の出力と、一致検出状態記憶回路65の記憶位置0の内容とをビット毎に論理積演算を行い、一致検出状態記憶回路65の記憶位置0に書き込む」という演算指示が入力されている。演算回路64はパターンメモリ63からの出力である00000002hと、一致検出状態記憶回路65の記憶位置0に記憶されている00000003hとのビット毎の論理積演算を行い、その演算結果00000002hを一致検出状態記憶回路65の記憶位置0に書き込む。
一致検出状態記憶回路65には、第2の一致検出条件との一致を示す00000002hが記憶されている。
次に、セクションヘッダ切り出し回路61で入力セクションから52〜55ビット目(セクション番号の下位4ビット)の部分データ=6hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として090hが出力される。これら2つの出力が加算回路42で加算され、096hがパターンメモリ63へアドレスとして入力される。
パターンメモリ63からは096h番地に記録されている00000002h(ビット位置1の値のみ一致を表す「1」)が読み出され、演算回路64へ入力される。
一方、演算順序記憶回路67には部分データ位置信号090hが入力されているため、演算回路64に対して「パターンメモリ63の出力と、一致検出状態記憶回路65の記憶位置0の内容とをビット毎に論理積演算を行い、一致検出状態記憶回路65の記憶位置0に書き込む」という演算指示が入力されている。演算回路64はパターンメモリ63からの出力である00000002hと、一致検出状態記憶回路65の記憶位置0に記憶されている00000002hとのビット毎の論理積演算を行い、その演算結果00000002hを一致検出状態記憶回路65の記憶位置0に書き込む。
一致検出状態記憶回路65には、第2の一致検出条件との一致を示す00000002hが記憶される。
52〜55ビット目(セクション番号の下位4ビット)の部分データが5h以上であれば、パターンメモリ63からは00000002hが読み出されるため、セクション番号の上位4ビットがAでかつセクション番号の下位4ビットが5h以上、すなわちセクション番号がA5h以上、AFh以下で条件と一致することが検出できる。
このようにして、図18に示す入力セクションは第2の一致検出条件と一致することが検出できる。
第2の一致検出条件では、セクション番号がA5h〜AFhで条件と一致し、第1の一致検出条件では、セクション番号がB0h以上で条件と一致することが検出できるため、入力セクションのセクション番号がA5h以上であれば第1または第2の一致検出条件のどちらかと一致することを検出できる。
以上のように、実施の形態2のセクションデータ選別回路25によれば、セクションヘッダとの一致検出条件を32種まで設定でき、そのうちのある条件に一致するセクションヘッダを持つセクションを選別出力することができる。
セクションヘッダを4ビット単位の部分データに分割し、それぞれの部分データに対して1回のパターンメモリ63への読み出しだけで一致検出条件との比較を完了させることができるため、ヘッダ一致検出回路31に必要とされるメモリのアクセスバンド幅を小さく抑えることが可能となる。
例えば、12.5Mバイト/秒で入力されるセクションの選別を32種の条件に対して実行する場合にも、最大で12.5M回×2×32ビット=100Mバイト/秒のメモリアクセスバンド幅が要求されるだけであり、従来技術を用いた場合に必要となる800Mバイト/秒と比較して大幅に要求性能を抑えることが可能となる。
また、全てのデータ値について一致検出条件との一致/不一致を示す参照データをあらかじめパターンメモリ63に格納するとともに、参照データと一致検出状態との演算指示を各部分データ位置毎に指定できるため、条件データとの一致の検出だけでなく、不一致の検出、大小比較、フィールドデータの一部分の比較抑止などを実現でき、非常に柔軟な検出条件を設定することが可能となる。
さらに、比較対象となる入力セクションを4ビット単位に部分データに分割することにより、実施の形態1と比較して検出条件をセクション先頭16バイト目までの2倍に拡張したにも関わらずパターンメモリの容量は1314ワードから448ワードに削減できる。
なお、実施の形態2では、パターンメモリ63に32種の一致検出条件を設定できるものとしたがこれに限るものでなく、一致検出条件数に応じてパターンメモリ63、演算回路64、一致検出状態記憶回路65、一致判断記憶回路46で扱うビット数を変更することにより、任意の条件数を扱うことができる。
また、実施の形態2のヘッダ一致検出回路31は、セクションデータの先頭の16バイト目までのフィールドについて、一致検出するものとして説明したが、一致検出対象のフィールドはこれに限られるものでなく、任意のサイズのデータについて一致検出することができる。
また、実施の形態2の一致判断記憶回路46からは、一致したか否かの結果だけを一致判断結果と出力するとしたが、これに加えて、一致を検出した条件を示している一致検出状態記憶回路65からの入力そのものも記憶し、この情報を出力することもできる。これによりセクションデータ選別回路25では、一致検出条件との一致を判断しセクションデータの出力可否を判断するだけでなく、一致を検出した条件を示す情報も出力することが可能となる。
また、実施の形態2の演算順序記憶回路67の説明に記載した演算内容はこれに限られるものでない。
さらに、実施の形態2では、パターンメモリ63をヘッダ一致検出回路31に内蔵されるメモリとして説明したが、これに限定されるものでなく、CPU29の主記憶メモリと共用するなど、ヘッダ一致検出回路31の外部に置くこともできる。上述のように、12.5Mバイト/秒で入力されるセクションの選別を32種の条件に対して実行する場合に100Mバイト/秒のメモリアクセスバンド幅を使用するに留まる。CPU29の主記憶メモリは数百Mバイト/秒のアクセスバンド幅を持つことが一般的であり、このアクセスバンド幅のうち100Mバイト/秒をヘッダ一致検出回路31が使用することは現実的な実現形態である。パターンメモリ63の実現方法として外付けの大容量メモリを利用することにより、一致検出対象のフィールド数や一致検出条件数を増加させる場合に必要となるパターンメモリ63の容量増加に容易に対応することができる。
さらには、実施の形態2ではセクションヘッダ切り出しや部分データと部分データ位置信号とを加算しパターンメモリへのアドレスを作ることを回路として実現する方法を説明したが、これに限られるものでなく、セクションデータからの部分データの切り出しや部分データ位置のカウント、部分データ位置信号として表される部分データ位置情報と部分データとの加算を、処理の全てまたは一部をソフトウェアで実現することも可能である。セクションヘッダからの部分データの切り出しは、実現の形態2では12.5Mバイト/秒のデータの処理であり、ソフトウェアでも実現できる処理量である。
また、実施の形態2では、演算順序記憶回路67、演算回路64、一致検出状態記憶回路65、一致判断記憶回路46を回路として実現することを説明したが、これに限られるものでなく、ソフトウェア処理で実現することもできる。
上述のようにパターンメモリ63をCPU29の主記憶メモリとして実現し、その他のヘッダ一致検出回路31の処理をソフトウェアで実現することもできる。すなわち、実施の形態2で説明したヘッダ一致検出回路31の一部または全てをソフトウェアで実現することも可能である。
(実施の形態3)
図19に、本発明の実施の形態3におけるヘッダ一致検出回路の構成図を示す。ヘッダ一致検出回路31は、セクションヘッダ切り出し回路61、加算回路42、パターンメモリ63、演算回路64、一致検出状態記憶回路65、一致判断記憶回路46、マスク条件メモリ68、反転条件メモリ69を備えている。
セクションヘッダ切り出し回路61は、セクションヘッダを構成するテーブル識別子,テーブル識別子拡張,バージョン番号,カレントネクスト指示,セクション番号,最終セクション番号などの各フィールドを切り出し出力する。この際、各フィールドのデータ長が特定のデータサイズ(本実施例では4ビット)を上回る場合は、各フィールドを更に4ビット毎の部分データとして分割し、順次出力する。セクションヘッダ切り出し回路61は、部分データを出力すると同時にこの部分データのセクションヘッダ内での位置を示す部分データ位置信号も出力する。なお、本実施例では各フィールドを4ビット毎の部分データに分割するとしたが、分割するデータサイズは4ビットに限るものではない。
加算回路42は、セクションヘッダ切り出し回路61から出力された部分データと部分データ位置信号とを加算し、加算結果をパターンメモリ63へ出力する。
パターンメモリ63には、セクションヘッダの各部分データがとりうる値の各々に対応づけられたアドレスに、当該とりうる値が一致検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が一致検出条件に一致しないこと(「不一致」)を示す参照データが実施の形態1と同様にあらかじめCPU29により記憶されている。加算回路42から入力された部分データと部分データ位置信号の加算結果をアドレスとしてパターンメモリ63を読み出すと、この部分データが一致検出条件に一致するか否かを示す参照データが出力される。
一致検出状態記憶回路65は、32ビットの情報を複数ワード記憶できる記憶回路であり、各ワードの各ビットに一致検出処理中の状態を記憶している。セクションの開始ごとに一致検出状態記憶回路65は、何も記憶されていない状態に初期化される。その後、各フィールドデータの比較が実行される度に演算回路64の演算結果を記憶する。
演算回路64は、パターンメモリ63からの参照データを入力するとともに、一致検出状態記憶回路65の記憶内容を読み出し、これらのデータに対してマスク条件メモリ68及び反転条件メモリ69からの出力データとのビット演算を行い、その演算結果を一致検出状態記憶回路65に出力する。
マスク条件メモリ68には、セクションヘッダ切り出し回路61で切り出された部分データに対応づけて、一致検出をマスクする条件を記憶することができ、各ビットはそれぞれ独立の一致検出条件に対応する。
反転条件メモリ69には、セクションヘッダ切り出し回路61で切り出された部分データに対応づけて、一致検出結果を反転する条件を記憶することができ、各ビットはそれぞれ独立の一致検出条件に対応する。
あるセクションのセクションヘッダの全フィールドに関してパターンメモリ63の参照が終わると、一致判断記憶回路46は一致検出状態記憶回路65の記憶データを読み出し、少なくとも1ビットが「一致」を示している場合は「一致」を、そうでない場合は「不一致」を記憶し出力する。このようにして一致判断記憶回路46からセクションヘッダと一致検出候補データとの一致判断結果が記憶され出力される。
さらに具体的に機能・動作を説明する。
セクションヘッダ切り出し回路61は、セクションヘッダを構成するデータ列の先頭からテーブル識別子などの各フィールドを部分データとして切り出し、更に各フィールドデータ長が4ビットを上回る場合は、各フィールドを更に4ビット毎の部分データとして分割し、順次出力する。例えば、セクションの先頭からの4ビット部分データ2つはテーブル識別子に対応する。
図20に、パターンメモリ63のアドレスマップを示す。パターンメモリ63は448ワードのメモリであり、図20に示すように、000〜00Fh番地はセクション先頭0〜3ビット目の部分データのとりうる値0〜Fhに対応し、010〜01F番地はセクション先頭4〜7ビット目の部分データのとりうる値0〜Fhに対応している。以下同様に、セクションのテーブル長のフィールドを除く各部分データのとりうる値が1BF番地まで対応している。各番地には32ビットの参照データを記憶でき、参照データの各ビットはそれぞれ独立の一致検出条件に対応する。すなわち実施の形態3では32種の一致検出条件との一致検出が可能である。
図21は、マスク条件メモリ68のアドレスマップを示す。図21に示すように、00h番地にはセクション先頭0〜3ビット目の部分データに対応するマスク条件が、01h番地にはセクション先頭4〜7ビット目の部分データに対応するマスク条件が格納されている。以下同様に、セクションのテーブル長のフィールドを除く各部分データのマスク条件が1Dh番地までに格納されている。各番地には32ビットのマスク条件を記憶でき、各ビットはそれぞれ独立の一致検出条件に対応する。すなわち実施の形態3では32種の一致検出条件の各々に対して独立にマスク条件を設定可能である。
図22には、反転条件メモリ69のアドレスマップを示す。図22に示すように、00h番地にはセクション先頭0〜3ビット目の部分データに対応する反転条件が、01h番地にはセクション先頭4〜7ビット目の部分データに対応する反転条件が格納されている。以下同様に、セクションのテーブル長のフィールドを除く各部分データの反転条件が1Dh番地までに格納されている。各番地には32ビットの反転条件を記憶でき、各ビットはそれぞれ独立の一致検出条件に対応する。すなわち実施の形態3では32種の一致検出条件の各々に対して独立にマスク条件を設定可能である。
実施の形態3では、下記の条件に一致するセクションを第1の一致検出条件に設定し、選別する場合について考える。
・テーブル識別子が27hと一致
・バージョン番号上位4ビットが2hと不一致(一致の結果反転)
・セクション番号上位4ビットはマスク(一致検出しない)
上記各条件に基づいて参照データがパターンメモリ63に次のように格納される。
まずパターンメモリ63はすべて「不一致」を表す0に初期化されているとする。また、マスク条件メモリ68はすべて「マスクしない」を表す0に初期化されているとする。さらに反転条件メモリ69はすべて「結果反転しない」をあらわす0に初期化されているとする。
第1の一致検出条件はパターンメモリ63の参照データのビット位置0に対応させられているとする。テーブル識別子は0〜3ビット目の部分データに対応する。これに関して第1の一致検出条件では2hとの一致を検出する必要があるため、2hと部分データ0〜3ビット目に対応する部分データ位置信号000hとを加算して得られる002h番地のビット位置0に、「一致」を示す「1」を記憶させておく。
部分データ4〜7ビット目に関しては7hとの一致を検出する必要があるため、7hと部分データ4〜7ビット目に対応する部分データ位置信号010hとを加算して得られる017h番地のビット位置0に、「一致」を示す「1」を記憶させておく。
バージョン番号上位4ビットは、40〜43ビット目の部分データに対応する。このため、バージョン番号上位4ビット=2hとの不一致は、パターンメモリ63の41h番地における第1の一致検出条件に対応するビット位置0に、「一致」を示す「1」を記憶させておき、反転条件メモリ69の06h番地における第1の一致検出条件に対応するビット位置0に、「反転」を示す「1」を記憶させておく。
セクション番号上位4ビットは、48〜51ビット目の部分データに対応する。このため、セクション番号上位4ビットをマスクする場合は、マスク条件メモリ68の09h番地における第1の一致検出条件に対応するビット位置0に、「反転」を示す「1」を記憶させておく。この場合、パターンメモリ63の48〜51ビット目の部分データに対応するアドレス番地における第1の一致検出条件に対応するビット位置0のデータは一致検出に無関係となる。
次に下記のフィールドデータを有するセクションデータが入力されたとする。
・テーブル識別子が27h
・バージョン番号上位4ビットが3h
・セクション番号上位4ビットが1h
セクションヘッダ切り出し回路61で入力セクションから0〜3ビット目の部分データ=2hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として00hが出力される。これら2つの出力が加算回路42で加算され、002hがパターンメモリ63へアドレスとして入力される。パターンメモリ63からは002h番地に記録されている00000001h(ビット位置0の一致を表す「1」)が読み出され、演算回路64へ入力される。
一方、マスク条件メモリ68には部分データ位置信号00hが入力されているため、演算回路64に対して「パターンメモリ63の出力をマスクしない」という演算指示が入力されている。また、反転条件メモリ69には部分データ位置信号00hが入力されているため、演算回路64に対して「パターンメモリ63の出力を反転しない」という演算指示が入力されている。
演算回路64はパターンメモリ63からの出力である00000001hとマスク条件メモリ68からの出力である00000000hと反転条件メモリ69からの出力である00000000hとをビット演算し、その演算結果00000001hを一致検出状態記憶回路65は記憶する。
次に、セクションヘッダ切り出し回路61で入力セクションから4〜7ビット目の部分データ=7hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として01hが出力される。これら2つの出力が加算回路42で加算され、017hがパターンメモリ63へアドレスとして入力される。パターンメモリ63からは017h番地に記録されている00000001h(ビット位置0の値のみ一致を表す「1」)が読み出され、演算回路64へ入力される。
一方、マスク条件メモリ68には部分データ位置信号01hが入力されているため、演算回路64に対して「パターンメモリ63の出力をマスクしない」という演算指示が入力されている。また、反転条件メモリ69には部分データ位置信号01hが入力されているため、演算回路64に対して「パターンメモリ63の出力を反転しない」という演算指示が入力されている。
演算回路64はパターンメモリ63からの出力である00000001hとマスク条件メモリ68からの出力である00000000hと反転条件メモリ69からの出力である00000000hとをビット演算し、その演算結果00000001hと一致検出状態記憶回路65の出力とをビット積演算した結果を一致検出状態記憶回路65は新たに記憶する。
このように、セクション先頭0から7ビット目であるテーブル識別子が入力された時点で、一致検出状態記憶回路65には、第1の一致検出条件との一致を示す00000001hが記憶されている。
次に、セクションヘッダ切り出し回路61で入力セクションから40〜43ビット目の分データ=3hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として06hが出力される。これら2つの出力が加算回路42で加算され、063hがパターンメモリ63へアドレスとして入力される。
一方、マスク条件メモリ68には部分データ位置信号06hが入力されているため、演算回路64に対して「パターンメモリ63の出力をマスクしない」という演算指示が入力されている。また、反転条件メモリ69には部分データ位置信号06hが入力されているため、演算回路64に対して「パターンメモリ63の出力を反転する」という演算指示が入力されている。
演算回路64はパターンメモリ63からの出力である00000000hとマスク条件メモリ68からの出力である00000000hと反転条件メモリ69からの出力である00000001hとをビット演算し、その演算結果00000001hと一致検出状態記憶回路65の出力とをビット積演算した結果を一致検出状態記憶回路65は新たに記憶する。
次に、セクションヘッダ切り出し回路61で入力セクションから48〜51ビット目の部分データ=1hが切り出される。同時にセクションヘッダ切り出し回路61からは部分データ位置信号として08hが出力される。これら2つの出力が加算回路42で加算され、081hがパターンメモリ63へアドレスとして入力される。
一方、マスク条件メモリ68には部分データ位置信号08hが入力されているため、演算回路64に対して「パターンメモリ63の出力をマスクする」という演算指示が入力されている。また、反転条件メモリ69には部分データ位置信号08hが入力されているため、演算回路64に対して「パターンメモリ63の出力を反転しない」という演算指示が入力されている。
演算回路64はパターンメモリ63からの出力である00000000hとマスク条件メモリ68からの出力である00000001hと反転条件メモリ69からの出力である00000000hとをビット演算し、その演算結果00000001hと一致検出状態記憶回路65の出力とをビット積演算した結果を一致検出状態記憶回路65は新たに記憶する。
このように、入力セクションデータと一致検出条件との一致検出を順次行ない、入力された部分データ全ての一致検出が完了した時点で、一致検出記憶回路65に記憶されている00000001hが一致判断記憶回路46に入力される。一致判断記憶回路46では入力が0でないため、入力セクションデータが第1の一致検出条件と一致したと判断し、一致判断結果として「一致」を出力する。
以上のように、実施の形態3のセクションデータ選別回路25によれば、セクションヘッダとの一致検出条件を32種まで設定でき、そのうちのある条件に一致するセクションヘッダを持つセクションを選別出力することができる。
セクションヘッダをテーブル識別子、テーブル識別子拡張、バージョン番号、カレントネクスト指示、セクション番号、最終セクション番号などの各フィールドに分割して切り出し、更に各フィールドのデータ長が4ビットを上回る場合は、各フィールドを更に4ビット毎の部分データとして分割し、それぞれの部分データに対する反転条件およびマスク条件を設定することで、実施形態2と比較して、より小さな面積でセクションデータ選別に必要な柔軟な比較条件を実現することが可能となる。
更に、それぞれの部分データに対して1回のパターンメモリ63への読み出しだけで一致検出条件との比較を完了させることができるため、ヘッダ一致検出回路31に必要とされるメモリのアクセスバンド幅を従来技術に比べて大幅に抑えることが可能となる。
なお、実施の形態3では、パターンメモリに32種の一致検出条件を設定できるものとしたがこれに限るものでなく、一致検出条件数に応じてパターンメモリ63、演算回路64、マスク条件メモリ68、反転条件メモリ68、一致検出状態記憶回路65、一致判断記憶回路46で扱うビット数を変更することにより、任意の条件数を扱うことができる。
また、実施の形態3のヘッダ一致検出回路31は、セクションデータの先頭の16バイト目までのフィールドについて、一致検出するものとして説明したが、一致検出対象のフィールドはこれに限られるものでなく、任意のサイズのデータについて一致検出することができる。
また、実施の形態3では、パターンメモリ63、マスク条件メモリ68、反転条件メモリ69を別々のメモリ構成としたが、これらは同一メモリの別領域を用いることもでき、いずれもヘッダ一致検出回路31に内蔵されるメモリとして説明したが、これに限定されるものでなく、CPU29の主記憶メモリと共用するなど、ヘッダ一致検出回路31の外部に置くこともできる。
また、実施の形態3では、演算回路64、一致検出状態記憶回路65、一致判断記憶回路46を回路として実現することを説明したが、これに限られるものでなく、ソフトウェア処理で実現することもできる。
上述のようにパターンメモリ63、マスク条件メモリ68、反転条件メモリ69をCPU29の主記憶メモリとして実現し、その他のヘッダ一致検出回路31の処理をソフトウェアで実現することもできる。すなわち、実施の形態3で説明したヘッダ一致検出回路31の一部または全てをソフトウェアで実現することも可能である。
MPEGシステム規格によるトランスポートストリームパケットとセクションのデータ構造を示す図である。 ディジタル放送受信機におけるトランスポートパケット処理回路の構成を示すブロック図である。 セクションデータを選別するための一致検出条件の一例を示す表である。 セクションデータ選別回路の構成を示すブロック図である。 実施の形態1におけるヘッダ一致検出回路の構成を示すブロック図である。 各フィールドが出力される際のフィールド位置信号を示す表である。 パターンメモリのアドレスマップを示す図である。 図3に示した第1および第2の一致検出条件に基づいて参照データがパターンメモリに格納される例を示す図である。 図3に示した第1および第2の一致検出条件に基づいて参照データがパターンメモリに格納される例を示す図である。 入力セクションデータの一例を示す図である。 入力セクションデータの一例を示す図である。 実施の形態2におけるヘッダ一致検出回路の構成を示すブロック図である。 各部分データが出力される際の部分データ位置信号を示す表である。 パターンメモリのアドレスマップを示す図である。 一致検出条件の一例を示す表である。 各部分データに対して設定された演算種類および演算順序の一例を示す表である。 入力セクションの一例を示す図である。 入力セクションの一例を示す図である。 実施の形態3におけるヘッダ一致検出回路の構成を示すブロック図である。 パターンメモリのアドレスマップを示す図である。 マスク条件メモリのアドレスマップを示す図である。 反転条件メモリのアドレスマップを示す図である。
符号の説明
21 トランスポートパケット処理装置
25 セクションデータ選別回路
31 ヘッダ一致検出回路
41,61 セクションヘッダ切り出し回路
42,62 加算回路
43,63 パターンメモリ
44 論理積回路
45,65 一致検出状態記憶回路
46 一致判断記憶回路
64 演算回路
67 演算順序記憶回路
68 マスク条件メモリ
69 反転条件メモリ

Claims (8)

  1. 複数の部分データを含む入力データが所定の検出条件に一致するか否かを判定する装置であって、
    前記複数の部分データの各々がとりうる値の各々に対応づけられたアドレスに、当該とりうる値が前記検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が前記検出条件に一致しないこと(「不一致」)を示す参照データが前記検出条件に基づいてあらかじめ記憶されている第1のメモリと、
    前記入力データから部分データを順次切り出し、切り出した部分データの値に対応するアドレスを前記第1のメモリに与えるデータ切り出し部とを備え、
    前記第1のメモリは、
    前記データ切り出し部から与えられるアドレスに記憶されている参照データを出力し、
    前記装置はさらに、
    前記入力データが前記検出条件に一致するか否かを前記第1のメモリからの参照データに基づいて判定する判定部を備え、
    前記第1のメモリには、
    前記複数の部分データの各々の前記入力データ内における位置と当該部分データがとりうる値の各々とに基づいて生成されたアドレスに前記参照データがあらかじめ記憶されており、
    前記データ切り出し部は、
    前記切り出した部分データの前記入力データ内における位置と前記切り出した部分データの値とに基づいて生成したアドレスを前記第1のメモリに与える、
    ことを特徴とするデータ一致検出装置。
  2. 請求項において、
    前記複数の部分データの各々は1つのバイトデータを構成する、
    ことを特徴とするデータ一致検出装置。
  3. 請求項において、
    前記複数の部分データの各々は1つのフィールドデータを構成する、
    ことを特徴とするデータ一致検出装置。
  4. 複数の部分データを含む入力データが所定の検出条件に一致するか否かを判定する装置であって、
    前記複数の部分データの各々がとりうる値の各々に対応づけられたアドレスに、当該とりうる値が前記検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が前記検出条件に一致しないこと(「不一致」)を示す参照データが前記検出条件に基づいてあらかじめ記憶されている第1のメモリと、
    前記入力データから部分データを順次切り出し、切り出した部分データの値に対応するアドレスを前記第1のメモリに与えるデータ切り出し部とを備え、
    前記第1のメモリは、
    前記データ切り出し部から与えられるアドレスに記憶されている参照データを出力し、
    前記装置はさらに、
    前記入力データが前記検出条件に一致するか否かを前記第1のメモリからの参照データに基づいて判定する判定部を備え、
    前記複数の部分データの各々には所定の演算が対応づけられており、
    前記判定部は、
    論理演算部と、
    前記論理演算部の出力データを記憶する第2のメモリとを含み、
    前記論理演算部は、
    前記第1のメモリから出力される参照データに対応する部分データに対応づけられている演算を、当該参照データと前記第2のメモリに記憶されている出力データとのうち少なくとも一方に対して実行し、その演算結果を出力し、
    前記第2のメモリは、
    前記「一致」を示すデータが初期値として記憶されており、
    前記入力データに含まれる複数の部分データのうち前記データ切り出し部によって最後に切り出された部分データに対する前記論理演算部の出力データを一致判断情報として出力する、
    ことを特徴とするデータ一致検出装置。
  5. 請求項において、
    前記第2のメモリは、
    前記論理演算部の出力データを複数記憶することができ、
    前記論理演算部は、
    前記第1のメモリから出力される参照データに対応する部分データに対応づけられている演算を、当該参照データと前記第2のメモリに記憶されている複数の出力データとのうち少なくとも1つに対して実行し、その演算結果を出力する、
    ことを特徴とするデータ一致検出装置。
  6. 複数の部分データを含む入力データが所定の検出条件に一致するか否かを判定する方法であって、
    前記複数の部分データの各々がとりうる値の各々に対応づけられたアドレスに、当該とりうる値が前記検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が前記検出条件に一致しないこと(「不一致」)を示す参照データを前記検出条件に基づいて第1のメモリにあらかじめ記憶するステップ(a)と、
    前記入力データから部分データを順次切り出し、切り出した部分データの値に対応するアドレスを生成するステップ(b)と、
    前記ステップ(b)によって生成されたアドレスに記憶されている参照データを前記第1のメモリから読み出すステップ(c)と、
    前記入力データが前記検出条件に一致するか否かを前記ステップ(c)によって前記第1のメモリから読み出された参照データに基づいて判定するステップ(d)とを備え、
    前記ステップ(a)では、
    前記複数の部分データの各々の前記入力データ内における位置と当該部分データがとりうる値の各々とに基づいて生成されたアドレスに前記参照データをあらかじめ記憶し、
    前記ステップ(b)では、
    前記切り出した部分データの前記入力データ内における位置と前記切り出した部分データの値とに基づいてアドレスを生成する、
    ことを特徴とするデータ一致検出方法。
  7. 複数の部分データを含む入力データが所定の検出条件に一致するか否かを判定する方法であって、
    前記複数の部分データの各々がとりうる値の各々に対応づけられたアドレスに、当該とりうる値が前記検出条件に一致すること(「一致」)を示す参照データまたは当該とりうる値が前記検出条件に一致しないこと(「不一致」)を示す参照データを前記検出条件に基づいて第1のメモリにあらかじめ記憶するステップ(a)と、
    前記入力データから部分データを順次切り出し、切り出した部分データの値に対応するアドレスを生成するステップ(b)と、
    前記ステップ(b)によって生成されたアドレスに記憶されている参照データを前記第1のメモリから読み出すステップ(c)と、
    前記入力データが前記検出条件に一致するか否かを前記ステップ(c)によって前記第1のメモリから読み出された参照データに基づいて判定するステップ(d)と、
    前記複数の部分データの各々に所定の演算を対応づけるステップ(e)とを備え
    前記ステップ(d)は、
    前記「一致」を示すデータを初期値として第2のメモリに記憶するステップ(f)と、
    前記ステップ(c)によって前記第1のメモリから読み出される参照データに対応する部分データに対応づけられている演算を、当該参照データと前記第2のメモリに記憶されている出力データとのうち少なくとも一方に対して実行し、その演算結果を前記第2のメモリに記憶するステップ(g)と、
    前記入力データに含まれる複数の部分データのうち前記ステップ(b)によって最後に切り出された部分データに対して前記ステップ(g)によって前記第2のメモリに記憶されたデータを一致判断情報として出力するステップ(h)とを含む
    ことを特徴とするデータ一致検出方法。
  8. 請求項において、
    前記第2のメモリは、
    前記演算結果を複数記憶することが可能であり、
    前記ステップ(g)では、
    前記ステップ(c)によって前記第1のメモリから読み出される参照データに対応する部分データに対応づけられている演算を、当該参照データと前記第2のメモリに記憶されている複数の演算結果とのうち少なくとも1つに対して実行し、その演算結果を前記第2のメモリに記憶する、
    ことを特徴とするデータ一致検出方法。
JP2004189576A 2003-07-04 2004-06-28 データ一致検出装置、データ一致検出方法、データ選別装置 Expired - Fee Related JP3816088B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004189576A JP3816088B2 (ja) 2003-07-04 2004-06-28 データ一致検出装置、データ一致検出方法、データ選別装置
US10/880,665 US20050004901A1 (en) 2003-07-04 2004-07-01 Data consistency detection device, data consistency detection method and data selection device
CNB2004100621588A CN1322753C (zh) 2003-07-04 2004-07-05 数据一致性检测装置及其检测方法以及数据选择装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003192043 2003-07-04
JP2004189576A JP3816088B2 (ja) 2003-07-04 2004-06-28 データ一致検出装置、データ一致検出方法、データ選別装置

Publications (2)

Publication Number Publication Date
JP2005045775A JP2005045775A (ja) 2005-02-17
JP3816088B2 true JP3816088B2 (ja) 2006-08-30

Family

ID=33554509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004189576A Expired - Fee Related JP3816088B2 (ja) 2003-07-04 2004-06-28 データ一致検出装置、データ一致検出方法、データ選別装置

Country Status (3)

Country Link
US (1) US20050004901A1 (ja)
JP (1) JP3816088B2 (ja)
CN (1) CN1322753C (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4825460B2 (ja) 2005-06-29 2011-11-30 株式会社東芝 受信装置及び受信方法
US8660617B1 (en) 2006-02-09 2014-02-25 Marvell World Trade Ltd. WiMAX enhanced sleep mode
US7697529B2 (en) * 2006-02-28 2010-04-13 Cisco Technology, Inc. Fabric channel control apparatus and method
US8281338B2 (en) 2007-02-27 2012-10-02 Microsoft Corporation Extensible encoding for interactive user experience elements
CN112631657B (zh) * 2019-09-24 2024-06-11 阿里巴巴集团控股有限公司 用于字符串处理的字节比较方法以及指令处理装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4990989A (en) * 1982-03-19 1991-02-05 At&T Bell Laboratories Restricted contact planar photodiode
EP0386765B1 (en) * 1989-03-10 1994-08-24 Nippon Telegraph And Telephone Corporation Method of detecting acoustic signal
US5381434A (en) * 1993-03-30 1995-01-10 Bell Communications Research, Inc. High-temperature, uncooled diode laser
US5436759A (en) * 1994-06-14 1995-07-25 The Regents Of The University Of California Cross-talk free, low-noise optical amplifier
US5636245A (en) * 1994-08-10 1997-06-03 The Mitre Corporation Location based selective distribution of generally broadcast information
US5608662A (en) * 1995-01-12 1997-03-04 Television Computer, Inc. Packet filter engine
US5541949A (en) * 1995-01-30 1996-07-30 Bell Communications Research, Inc. Strained algainas quantum-well diode lasers
US5805799A (en) * 1995-12-01 1998-09-08 Quantum Corporation Data integrity and cross-check code with logical block address
US6411452B1 (en) * 1997-03-11 2002-06-25 Western Digital Technologies, Inc. Disk drive employing read error tolerant sync mark detection
JP3356203B2 (ja) * 1997-06-09 2002-12-16 日本電気株式会社 Mpeg2トランスポートストリーム分離方法と回路
US6154801A (en) * 1997-07-31 2000-11-28 Advanced Micro Devices, Inc. Verification strategy using external behavior modeling
US6173243B1 (en) * 1997-07-31 2001-01-09 Advanced Micro Devices, Inc. Memory incoherent verification methodology
US6073194A (en) * 1997-07-31 2000-06-06 Advanced Micro Devices, Inc. Transaction based windowing methodology for pre-silicon verification
JP3578913B2 (ja) * 1997-09-29 2004-10-20 松下電器産業株式会社 データ一致検出装置,及びデータ選別装置
JP3604548B2 (ja) * 1997-11-28 2004-12-22 株式会社ルネサステクノロジ アドレス一致検出装置、通信制御システム及びアドレス一致検出方法
JPH11161471A (ja) * 1997-11-28 1999-06-18 Matsushita Electric Ind Co Ltd データ一致検出装置
GB2338156B (en) * 1998-06-05 2003-01-15 3Com Technologies Ltd Data packet transmission
US6792597B1 (en) * 1999-03-04 2004-09-14 Wysdom Wireless, Inc. Automatic consistency checking of computer programs
US6898709B1 (en) * 1999-07-02 2005-05-24 Time Certain Llc Personal computer system and methods for proving dates in digital data files
JP2001053700A (ja) * 1999-08-05 2001-02-23 Matsushita Electric Ind Co Ltd データ選別装置,及びデータ処理装置
JP2001053709A (ja) * 1999-08-06 2001-02-23 Matsushita Electric Ind Co Ltd データ一致検出装置
JP4206586B2 (ja) * 1999-11-12 2009-01-14 株式会社日立製作所 データベース管理方法および装置並びにデータベース管理プログラムを記録した記憶媒体
US7061930B2 (en) * 2000-10-10 2006-06-13 Matsushita Electric Industrial Co., Ltd. Data selection/storage apparatus and data processing apparatus using data selection/storage apparatus
US20020141411A1 (en) * 2001-04-03 2002-10-03 Jong-Hwan Oh Apparatus for line-concentrating and distributing PPP frame data
US6928578B2 (en) * 2001-05-10 2005-08-09 International Business Machines Corporation System, method, and computer program for selectable or programmable data consistency checking methodology

Also Published As

Publication number Publication date
US20050004901A1 (en) 2005-01-06
JP2005045775A (ja) 2005-02-17
CN1578451A (zh) 2005-02-09
CN1322753C (zh) 2007-06-20

Similar Documents

Publication Publication Date Title
US7796653B2 (en) Apparatus and method for demultiplexing of transport stream
US6016172A (en) Method for reducing a channel hopping time in an MPEG-2 system decoder
US5835591A (en) Demultiplexing device
EP0905983B1 (en) Data match detecting apparatus, and data selecting apparatus
US6278838B1 (en) Peak-ahead FIFO for DVD system stream parsing
JP3816088B2 (ja) データ一致検出装置、データ一致検出方法、データ選別装置
US20070022249A1 (en) Information processing apparatus and its data processing method capable of forming descriptor queue
US7817721B2 (en) Posting status data in digital transport stream processing
US6961338B2 (en) Demultiplexer for handling different multiplexed data formats
EP1802117A1 (en) Data processor
US7088732B2 (en) Apparatus and methods for storing and comparing PIDs
US6201815B1 (en) Transport packet stream separating circuit in which packet can be discarded on error
US8391483B2 (en) Storage of digital data
EP1274088A2 (en) Recording system for digital broadcasting
US7295576B2 (en) Transport packet parser
US9578139B2 (en) Method and system for architecture of a fast programmable transport demultiplexer using a double buffered approach
US8855130B2 (en) Method and apparatus for demultiplexing, merging, and duplicating packetized elementary stream/program stream/elementary stream data
US20060056407A1 (en) Demultiplexer
US7028095B1 (en) Block-based negative filtering of MPEG-2 compliant table sections
US20120155488A1 (en) System and Method for Demultiplexing Different Stream Types in a Programmable Transport Demultiplexer
US20050008039A1 (en) Digital-broadcast receiving apparatus and method
KR100830446B1 (ko) 엠펙 트랜스포트 디코더
EP1148724A2 (en) Reproducing device, medium, information aggregate, transmitting medium, and recording medium
JP2001157156A (ja) デジタル放送受信装置
JP3857077B2 (ja) パケット処理装置およびパケット処理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060428

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060606

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees