(57)【要約】  【課題】  単純なデータの照合を行う回路で構成でき、その回路での照合回数が少なくでき、次の処理を決定するためのテーブル情報を用いることなく単純に構成できるハードウェアによってデータの照合を実現可能とする。  【解決手段】  縦続接続されたＫｈ個のキーヘッド検出回路Ａ１〜ＡＫｈと該キーヘッド検出回路の最終段の次段に縦続接続されたＮ個の一致判定回路Ｂ１〜ＢＮで構成する。キーヘッド検出回路は、長さＫのキーデータ内の長さＫｈのキーデータヘッダと一致するデータ列が被照合データ列内に存在するとき、マークデータ“ＭＲＫ”をキーデータヘッダと一致する前記データ列の直後に挿入する。一致判定回路は、キーヘッド検出回路から入力されたパケット内のデータ列にマークデータ“ＭＲＫ”が存在するとき、キーデータからキーデータヘッダを除いたデータ列とマークデータ“ＭＲＫ”以降のデータ列とが一致するか否かを判定する。【選択図】  図１
2005295387.tif 000002
【特許請求の範囲】
【請求項１】
パケットが分析対象となる被照合データ列を含み、与えられた特定のデータ列であるキーデータが前記被照合データ列内に存在するか否かを判定するデータ分析装置において、
１個以上縦続接続されたキーヘッド検出回路と該キーヘッド検出回路の最終段の次段に１個以上縦続接続された一致判定回路で構成され、
前記キーヘッド検出回路は、入力されたパケットデータに含まれる前記被照合データ列に対して、前記キーデータの先頭からキーデータ長より短い長さのデータ列であるキーデータヘッダと一致するデータ列が前記被照合データ列内に存在するかを判定し、存在する場合には前記被照合データ列に含まれるデータとは区別可能なマークデータを前記キーデータヘッダと一致する前記データ列の直後に挿入する手段を有し、
前記一致判定回路は、入力されたパケット内のデータ列に前記マークデータが存在するか否かを判定し、前記マークデータが存在する場合には前記キーデータから前記キーデータヘッダを除いたデータ列と前記マークデータ以降のデータ列とが一致するか否かを判定する手段を有することを特徴とするデータ分析装置。
【請求項２】
パケットが分析対象となる被照合データ列を含み、与えられた特定のデータ列であるキーデータが前記被照合データ列内に存在するか否かを判定するデータ分析装置において、
１個以上縦続接続されたキーヘッド検出回路と該キーヘッド検出回路の最終段の次段に１個以上縦続接続された一致判定回路で構成され、
前記キーヘッド検出回路は、入力されたパケットデータに含まれる前記被照合データ列に対して、前記キーデータの先頭からキーデータ長より短い長さのデータ列であるキーデータヘッダと一致するデータ列が前記被照合データ列内に存在するかを判定し、存在する場合には前記一致するデータ列の最後のデータをマークデータで置き換える手段を有し、
前記一致判定回路は、入力されたパケット内のデータ列に前記マークデータが存在するか否かを判定し、前記マークデータが存在する場合には前記キーデータから前記キーデータヘッダを除いたデータ列とマークデータ以降のデータ列とが一致するか否かを判定する手段を有することを特徴とするデータ分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データサーバに格納されているストリームデータやネットワーク上でやり取りされるパケットデータの中に特定のデータ列が含まれるか否かを判定するデータ分析装置に関するものである。
【背景技術】
【０００２】
データサーバの外部記憶装置に格納されているデータを逐次読み出して特定のデータ列を含むものが存在するか否かの判定を行う処理は、データベースシステムのキーワード検索等で用いられる最も基本的な処理である。また、インターネット等のネットワーク上でやり取りされるパケットデータには、ネットワークに接続されたサーバに対して悪意のある負荷をかける攻撃パケットや、端末内の個人情報を利用してネズミ算的に増殖するウイルスパケット等があり、これらのパケットに含まれる特定のデータ列が存在するか否かを判定して排除する処理は、ネットワークシステムを安定して運用する上で重要な処理である。
【０００３】
ここでは、特定のデータ列を含んでいるデータ列であるか否かの判定対象となる単位をパケットと呼び、パケットの全部または一部は判定対象となる被照合データ列であり、これは判定対象とならないパケット内のデータ列と区別可能であるとする。具体的には、パケットはファイルシステムのファイルや通信システムのパケットデータに相当し、被照合データ列はファイル内のファイルの属性情報（ファイル名、ファイルサイズ、アクセス権限）を除く内容やパケット内の特定の通信階層で用いられるヘッダ情報を取り除いたペイロードに相当する。
【０００４】
パケットに含まれる被照合データ列に特定のデータ列であるキーデータが含まれているか否かを判定するデータ照合方法として最も単純な方法は、図８に示すように、キーデータの照合判定開始位置を最小比較単位ずつずらして繰り返し比較する方法である。図８に示す例では、（ａ）では最初の比較で不一致となり、（ｂ）では２番目の比較で不一致となり、（ｃ）では一致したデータ列を含むと判定される。単純な方法では、長さｎの被照合データ列に対して長さｍのキーデータを含むか否かの判定のためには最悪でＯ（ｍｎ）回の照合を行う必要があり、被照合データ列の長さであるデータベースサイズやパケット数が増加すると照合のために処理量が莫大な量になる。
【０００５】
上記で述べた最悪の照合回数をＯ（ｍ＋ｎ）に削減する方法としては、Knuth-Morris-Pratt法（例えば、非特許文献１参照）やBoyer-Moore法（例えば、非特許文献２参照）等が提案されている。
【非特許文献１】島内他４名編、「アルゴリズム辞典」、ｐ１９４、共立出版、１９９４
【非特許文献２】島内他４名編、「アルゴリズム辞典」、ｐ７６０−７６２、共立出版、１９９４
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、何れの方法も照合の回数を削減することは可能であるが、不一致となった場合に次の照合を行うための処理が上記の単純な方法にくらべて複雑であるという欠点に加えて、不一致となったキーデータの位置に応じて幾つずらしたデータ位置から次の照合を開始するかを格納したテーブル情報を前処理によって作成して記憶しておく必要があるという欠点もある。
【０００７】
本発明の目的は、単純なデータの照合を行う回路で構成でき、その回路での照合回数は高々Ｏ（ｎ）回で済み、次の処理を決定するためのテーブル情報を用いることなく単純に構成できるハードウェアによってデータの照合を実現可能とすることである。
【課題を解決するための手段】
【０００８】
請求項１にかかる発明は、パケットが分析対象となる被照合データ列を含み、与えられた特定のデータ列であるキーデータが前記被照合データ列内に存在するか否かを判定するデータ分析装置において、１個以上縦続接続されたキーヘッド検出回路と該キーヘッド検出回路の最終段の次段に１個以上縦続接続された一致判定回路で構成され、前記キーヘッド検出回路は、入力されたパケットデータに含まれる前記被照合データ列に対して、前記キーデータの先頭からキーデータ長より短い長さのデータ列であるキーデータヘッダと一致するデータ列が前記被照合データ列内に存在するかを判定し、存在する場合には前記被照合データ列に含まれるデータとは区別可能なマークデータを前記キーデータヘッダと一致する前記データ列の直後に挿入する手段を有し、前記一致判定回路は、入力されたパケット内のデータ列に前記マークデータが存在するか否かを判定し、前記マークデータが存在する場合には前記キーデータから前記キーデータヘッダを除いたデータ列と前記マークデータ以降のデータ列とが一致するか否かを判定する手段を有することを特徴とする。
【０００９】
請求項２にかかる発明は、パケットが分析対象となる被照合データ列を含み、与えられた特定のデータ列であるキーデータが前記被照合データ列内に存在するか否かを判定するデータ分析装置において、１個以上縦続接続されたキーヘッド検出回路と該キーヘッド検出回路の最終段の次段に１個以上縦続接続された一致判定回路で構成され、前記キーヘッド検出回路は、入力されたパケットデータに含まれる前記被照合データ列に対して、前記キーデータの先頭からキーデータ長より短い長さのデータ列であるキーデータヘッダと一致するデータ列が前記被照合データ列内に存在するかを判定し、存在する場合には前記一致するデータ列の最後のデータをマークデータで置き換える手段を有し、前記一致判定回路は、入力されたパケット内のデータ列に前記マークデータが存在するか否かを判定し、前記マークデータが存在する場合には前記キーデータから前記キーデータヘッダを除いたデータ列とマークデータ以降のデータ列とが一致するか否かを判定する手段を有することを特徴とする。
【発明の効果】
【００１０】
本発明を用いることによって、単純なデータの照合のみを行う独立に動作可能なキーヘッド検出回路および一致判定回路等のハードウェア回路を基本要素とし、キーデータの特徴を考慮してハードウェア回路の構成を選択することによりデータの照合を実現するデータ分析装置が実現可態となる。また、キーデータの内容やパケットに含まれるデータ列の特徴に応じて基本要素の組み合わせや数を大幅に削減することも可能である。
【発明を実施するための最良の形態】
【００１１】
本発明では、キーデータ（長さＫ）をキーデータヘッダ（長さＫｈ）とそれを取り除いたデータ列（長さＫｔ＝Ｋ−Ｋｈ）とに分割し、被照合データ列に対して照合開始位置をずらしてキーデータヘッダとの照合を行うことによってキーデータと一致するデータ列の照合開始位置を特定する高々Ｋｈ個のキーヘッド検出回路と、キーデータからキーデータヘッダを取り除いたデータ列とキーデータヘッダとの照合結果で一致したデータ列以降のデータ列との照合を行う１個以上の一致判定回路とを用いることによって、各回路が単純なデータの照合のみで構成でき、各回路での照合回数は高々Ｏ（ｎ）回とし、次の処理を決定するためのテーブル情報を用いることなく単純に構成できるハードウェアによってデータの照合を実現可能とするものである。
【実施例】
【００１２】
図１は本発明の実施例を説明するためのキーヘッド検出回路および一致判定回路の接続構成例である。キーヘッド検出回路はＡ１〜ＡＫｈのようにＫｈ（キーデータヘッダの長さＫｈと同じ数）個が縦続接続され、一致判定回路はＢ１〜ＢＮのようにＮ個が縦続接続されている。キーヘッド検出回路Ａ１に入力されたパケットは順次キーヘッド検出回路Ａ２、キーヘッド検出回路Ａ３、・・・、キーヘッド検出回路ＡＫｈ、一致判定回路Ｂ１、・・・、一致判定回路ＢＮに入力される。
【００１３】
また、以下の説明では照合するキーデータの長さはＫであり、キーデータヘッダの長さはＫｈ、キーデータからキーデータヘッダを取り除いたデータ列の長さをＫｔ（＝Ｋ−Ｋｈ）とし、キーデータヘッダおよびキーデータからヒーデータヘッダを除いたデータ列はそれぞれ配列（レジスタ）ＫＥＹｈ（ｉ）、ＫＥＹｔ（ｊ）に格納され、ｉ（１≦ｉ≦Ｋｈ）およびｊ（１≦ｊ≦Ｋｔ）によって最小照合単位毎に順次参照可能とする。
【００１４】
また、以下の説明で使用される“ＳＯＦ”、“ＥＯＦ”、“ＤＭＹ”、“ＭＲＫ”、および“ＨＩＴ”はパケット内の最小照合単位で区切られる任意の位置に挿入可能な特別なデータ（スタートデータ、エンドデータ、ダミーデータ、マークデータ、ヒットデータ）であり、パケット内のデータ列に含まれるデータとは区別可能であるとする。
【００１５】
図２にパケットの構成例を示す。被照合データ列は“ＳＯＦ”と“ＥＯＦ”によってパケットに含まれる他のデータ列と区別可能であるとする。
【００１６】
図３はキーヘッド検出回路Ａ１〜ＡＫｈの動作を説明するための状態遷移図である。ここで、○は状態を表し、矢印に付加されたラベルには状態を遷移のトリガとなる条件および動作（[ ]内の記述）が記されている。キーヘッド検出回路は図２に示すように外部または前段のキーヘッド検出回路から順次入力されるパケットを構成するデータ列の最小照合単位をｉｎｐｕｔ（レジスタ）に順次設定し、ｉｎｐｕｔに“ＭＲＫ”以外の値が設定される毎に図３に示す状態遷移図に従って状態の遷移および動作を行う。また、キーヘッド検出回路は図３に示す状態遷移に従った動作に加えてｉｎｐｕｔに設定された“ＭＲＫ”を含む値を後続のキーヘッド検出回路または一致判定回路に出力する。
【００１７】
以下では、図３に示す状態遷移図に従ってキーヘッド検出回路Ａ１〜ＡＫｈの動作を説明する。キーヘッド検出回路は初期状態が“Ｓ０”であり、Ｉｎｐｕｔが“ＳＯＦ”である場合に“ＳＯＦ”を後続の回路に出力するとともに“ＳＯＦ”，の次に“ＤＭＹ”を出力し、キーデータヘッダとの照合を開始するためにｉｎｄｅｘを値１に初期化した後に状態“Ｓ１”に遷移する。
【００１８】
状態“Ｓ１”および“Ｓ２”では以下に説明するように“ＳＯＦ”および“ＥＯＦ”で挟まれたデータ列に対してＫＥＹｈ（）に格納されているキーデータヘッダとの照合を繰り返し行うが、Ｉｎｐｕｔに“ＥＯＦ”が設定されると状態“Ｓ０”に遷移する。
【００１９】
状態“Ｓ１”はＫＥＹｈ（）に格納されているキーデータヘッダとＩｎｐｕｔに順次入力される長さＩｎｄｅｘのデータ列とが一致している場合の状態であり、Ｉｎｄｅｘの値がＩｎｐｕｔへの値の設定とともに＋１されＫＥＹｈ（Ｉｎｄｅｘ）との照合が繰り返される、Ｉｎｄｅｘの値がＫｈでかつＩｎｐｕｔに設定されている値とＫＥＹ（Ｋｈ）とが一致した場合（すなわちキーデータヘッダと完全に一致した時）には、請求項１ではＩｎｐｕｔに設定されている値を出力した後に“ＭＲＫ”を出力するとともにＩｎｄｅｘ＝１として新たな照合を開始し、請求項２ではＩｎｐｕｔに設定されている値を破棄して“ＭＲＫ”を出力するとともにＩｎｄｅｘ＝１として新たな照合が開始する。状態“Ｓ１”でＩｎｐｕｔに設定されている値とＫＥＹ（Ｉｎｄｅｘ）とが不一致となった場合には、状態“Ｓ２”に遷移する。
【００２０】
状態“Ｓ２”では、Ｉｎｄｅｘ＜Ｋｈの場合に照合したキーデータヘッダの残りの長さ（Ｋｈ−Ｉｎｄｅｘ＋１）分の照合をスキップする処理が行われ、スキップが完了すると新たな照合を開始するためにＩｎｄｅｘ＝１として状態“Ｓ１”に遷移する。
【００２１】
以上の動作の具体的な例として、キーデータを“ａａｂｃａａｂ”、キーデータヘッダを“ａａｂ”とし、それぞれの長さを７、３とした場合のキーヘッド検出回路Ａ１〜Ａ３のそれぞれの出力例を図４に示す。
【００２２】
以上の説明から明らかなように、図１に示すキーヘッド検出回路Ａ１は図３に示す状態遷移図に従って動作することにより、入力されたパケットＳＯＦとＥＯＦにはさまれた長さＬのデータ列をＤ（１），Ｄ（２），・・・，Ｄ（Ｌ）とすると、Ｄ（１）の直前に“ＤＭＹ”を挿入し、Ｄ（１）を開始位置とする長さＫｈのデータ列Ｄ（１），Ｄ（２），・・・，Ｄ（Ｋｈ）、  Ｄ（Ｋｈ＋１）を開始位置とする長さＫｈのデータ列Ｄ（Ｋｈ＋１），Ｄ（Ｋｈ＋２），・・・，Ｄ（２＊Ｋｈ）、  Ｄ（２＊Ｋｈ＋１）を開始位置とする長さＫｈのデータ列Ｄ（２＊Ｋｈ＋１）、Ｄ（２＊Ｋｈ＋２）、・・・、Ｄ（３＊Ｋｈ）、・・・のそれぞれのデータ列とキーデータヘッダとの照合を行い、照合結果が一致したデータ列の後ろに“ＭＲＫ”を挿入する（請求項１）か、または照合結果が一致したデータ列の最後を“ＭＲＫ”で置き換える（請求項２）ことになる。
【００２３】
また、キーヘッド検出回路Ａ２はキーヘッド検出回路Ａ１で“ＳＯＦ”の直後に挿入された“ＤＭＹ”を開始位置とするため、データ列“ＤＭＹ”，Ｄ（１），Ｄ（２），・・・、Ｄ（Ｋｈ−１）、  データ列Ｄ（Ｋｈ），Ｄ（Ｋｈ＋１），・・・，Ｄ（２＊Ｋｈ−１）、データ列Ｄ（２＊Ｋｈ），Ｄ（２＊Ｋｈ＋２），・・・，Ｄ（３＊Ｋｈ−１）、・・・のそれぞれのデータ列とキーデータヘッダとを照合し、照合結果に応じて“ＭＲＫ”の挿入または置き換えを行う。以下同様に各キーヘッド検出回路では照合開始位置を最小照合単位分ずらした照合が行われる。
【００２４】
図５は一致判定回路Ｂ１〜ＢＮの動作を説明するための状態遷移である。ここで、○は状態を表し、矢印に付加されたラベルには状態を遷移のトリガとなる条件および動作（[ ]内の記述）が記されている。一致判定回路は図１に示すように最終段のキーヘッド検出回路ＡＫｈから順次入力されるパケットのデータ列を最小照合単位毎にｉｎｐｕｔに設定し、ｉｎｐｕｔに値が設定される毎に図５に示す状態遷移図に従って状態の遷移および動作を行う。また、一致判定回路は図５に示す状態遷移に従った動作に加えてｉｎｐｕｔに設定された値を後続の一致判定回路または外部に出力する。ただし、状態“Ｓ０”および“Ｓ２”の場合にはｉｎｐｕｔに設定された“ＭＲＫ”を出力せずに破棄する。
【００２５】
以下では、図５に示す状態遷移図に従って一致判定回路の動作を説明する。一致判定回路は初期状態が“Ｓ０”であり、Ｉｎｐｕｔが“ＤＭＹ”である場合には“ＤＭＹ”を出力せずに破棄し、Ｉｎｐｕｔが“ＭＲＫ”である場合に“ＭＲＫ”を破棄し、キーデータからキーデータヘッダを除いたデータ列ＫＥＹｔ（）との照合を開始するためにｉｎｄｅｘを値１に初期化した後に状態“Ｓ１”に遷移する。
【００２６】
状態“Ｓ１”では“ＭＲＫ”の後続にあるデータ列に対してＫＥＹｔ（）に格納されているキーデータからキーデータヘッダを除いたデータ列との照合を行う。ただし、Ｉｎｐｕｔに“ＭＲＫ”が設定されている時には状態遷移に基づいた動作を行わずに“ＭＲＫ”を出力して次の値がＩｎｐｕｔに設定されるのを待つ。状態“Ｓ１”はキーデータからキーデータヘッダを除いたデータ列とＩｎｐｕｔに順次入力される“ＭＲＫ”を除いたデータ列とが一致している途中の状態であり、Ｉｎｐｕｔに“ＭＲＫ”を除いた値が設定される毎にＩｎｄｅｘの値が＋１されＫＥＹｔ（Ｉｎｄｅｘ）との照合が繰り返される。Ｉｎｐｕｔに設定された値とＫＥＹｔ（Ｉｎｄｅｘ）との照合結果が不一致である場合には状態“Ｓ０”に遷移し、Ｉｎｄｅｘの値がＫｔでかつＩｎｐｕｔに設定されている値とＫＥＹ（Ｋｔ）とが一致した場合（すなわち完全に一致した場合）には、状態“Ｓ２”に遷移する。
【００２７】
状態“Ｓ２”はパケット内にキーデータと一致したデータ列が含まれることが決定した状態であり、パケット内の“ＭＲＫ”を削除し、Ｉｎｐｕｔが“ＥＯＦ”である場合には“ＥＯＦ”を出力した後にキーデータと一致したデータ列が含まれることを示す“ＨＩＴ”を出力して状態“Ｓ０”に遷移して次のパケットの到着を待っ。
【００２８】
キーデータを“ａａｂｃａａｂ”、キーデータヘッダを“ａａｂ”とし、それぞれの長さを７、３とした場合の一致判定回路Ｂ１のそれぞれの出力例を図６に示す。図６に示すようにキーヘッド検出回路でパケットに挿入された“ＤＭＹ”は状態“Ｓ０”で破棄され、最初の“ＭＲＫ”は状態“Ｓ０”から状態“Ｓ１”に遷移する際に破棄される。最初の“ＭＲＫ”以降のデータ列がキーデータからキーデータヘッダを除いたデータ列と一致することから、状態“Ｓ２”へ遷移し、“ＥＯＦ”までにある“ＭＲＫ”が破棄され、“ＥＯＦ”の直後に“ＨＩＴ”が挿入される。
【００２９】
上記の例では一致判定回路が１個あれば正しくキーデータを含むパケットの“ＥＯＦ”の直後に“ＨＩＴ”を挿入するが、図７に示す例では一致判定回路が１個の場合正しく動作しない（図７（ｄ））。図７に示す例で正しくキーデータの照合が行われない理由は、一致判定回路の状態遷移において、状態“Ｓ１”でキーデータからキーデータヘッダを除いたデータ列との照合を行っている途中に新たな照合の開始を要求する“ＭＲＫ”がＩｎｐｕｔに設定されることに原因がある。言い換えると、キーデータの最後のデータを除くデータ列の開始位置をずらしてキーデータヘッダを照合した結果、一致するデータ列がＮ通り存在する場合、一致判定回路をＮ個直列に接続することでもれなくデータ列の照合を行い、一致した場合には“ＥＯＦ”の直後に“ＨＩＴ”が挿入される。図７の例ではＮ＝２であるため、一致判定回路を２個直列に接続した場合の出力（図７（ｅ））では正しくキーデータの照合が行われる。
【００３０】
以上の実施例では、“ＳＯＦ”と“ＥＯＦ”の間の任意の位置にあるデータ列を照合の対象としたが、照合対象となるデータ列の存在する位置が予め限定されている場合にはキーヘッド検出回路の個数をＫｈより少なくすることが可態であり、その場合には各キーヘッド検出回路が“ＳＯＦ”の直後に挿入する“ＤＭＹ”の数を適宜調整するように変更すれば、上述した実施例によりデータ列の照合を実現することができる。
【００３１】
また、一致判定回路の必要個数はキーデータヘッダの長さＫｈとのトレードオフで決定されると考えられる。すなわち、キーデータヘッダの長さＫｈが大きくなるに従って、キーデータの最後のデータを除くデータ列に対して開始位置をずらして照合した場合にキーデータヘッダと一致する数が減少して１に近づくことから、Ｋｈが大きくなればキーヘッド検出回路の数が増加するとともに一致判定回路の必要数が減少し、Ｋｈが小さくなればキーヘッド検出回路の数が減少するとともに一致判定回路の必要数が増加する。このことから、キーデータヘッダはキーデータの内容および回路実装に必要な資源量を考慮して適宜選択することが可能となる。
【００３２】
以上説明した方法を用いることによって、検索するキーデータの長さに依存しない、高々３つの状態間を遷移する回路を接続することによって、パケット内に含まれるデータ列が特定のキーデータとして与えられるデータ列を含んでいるか否かの判定を行うことが可能となる。本実施例では１つのキーデータと一致するデータ列を含むか否かの判定を行っているが、複数の判定結果を識別可能な情報としてパケットに付加することによって、複数の判定条件を組み合わせた判定を行うことも可能である。
【図面の簡単な説明】
【００３３】
【図１】実施例のデータ分析装置の構成を示すブロック図である。
【図２】実施例のデータ分析装置であつかうパケットの構成の説明図である。
【図３】請求項１に対応したキーヘッド検出回路の状態遷移図である。
【図４】請求項１に対応したキーヘッド検出回路の出力例の説明図である。
【図５】請求項１に対応した一致判定回路の状態遷移図である。
【図６】請求項１に対応した一致判定回路の出力例の説明図である。
【図７】請求項１に対応したキーヘッド検出回路および一致判定回路の出力例の説明図である。
【図８】従来のデータ列の照合方法の説明図である。
【符号の説明】
【００３４】
Ａ１〜ＡＫｈ：キーヘッド検出回路
Ｂ１〜ＢＮ：一致判定回路
Ｋ：キーデータの長さ
Ｋｈ：キーデータヘッダの長さ
Ｋｔ：キーデータからキーデータヘッダを取り除いたデータ列の長さ
ＳＯＦ：スタートデータ
ＥＯＦ：エンドデータ
ＤＭＹ：ダミーデータ
ＭＲＫ：マークデータ
ＨＩＴ：ヒットデータ
ｉｎｐｕｔ：レジスタ
ＫＥＹｈ（ｉ）：レジスタ
ＫＥＹｔ（ｊ）：レジスタ
【図１】
2005295387.tif 000003
【図２】
2005295387.tif 000004
【図３】
2005295387.tif 000005
【図４】
2005295387.tif 000006
【図５】
2005295387.tif 000007
【図６】
2005295387.tif 000008
【図７】
2005295387.tif 000009
【図８】
2005295387.tif 000010