説明

パターンマッチングアーキテクチャ

【課題】 本発明の課題は、上記問題点に鑑み、基準テンプレートまたはパターンとデータとの迅速であり、複数のアルゴリズムを選択可能な低消費電力を実現するパターンマッチングアーキテクチャを提供することである。
【解決手段】
本発明による装置は、入力データをビット数がプログラム可能な入力ビットフィールドに分割し、1以上の基準テンプレートをビット数がプログラム可能な対応する基準ビットフィールドに分割する選択ユニットと、前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の1以上の距離を決定し、前記基準ビットフィールドに係る1以上の距離を前記基準テンプレートに対応する1以上のネットの距離に合成する距離ユニットとから構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にパターン認識に関し、より詳細には、基準テンプレートまたはパターンとデータとの迅速なマッチング処理に関する。
【背景技術】
【0002】
一般的なパターンマッチングプロセスでは、基準テンプレートが入力データと比較され、どの基準テンプレートが入力データと最も良く一致するか判断される。
【0003】
1つのパターンマッチングアーキテクチャは、パターン認識ソフトウェアを実行する汎用コンピュータである。このアーキテクチャは以下の利点を有する。a)このアーキテクチャは、ソフトウェアにより実現により各種パターン比較アルゴリズムを搭載することができる。b)典型的には、基準テンプレートの個数が通常はコンピュータシステムメモリの容量のみの制約しか受けないため、多数の基準テンプレートを利用することが可能である。しかしながら、このアーキテクチャは、低速なパフォーマンス、大きな電力消費、多数のアプリケーション、高価で複雑なソフトウェアなどの短所を有する。このようなアーキテクチャは、迅速なパターンマッチングを必要としたり、あるいは埋め込みアプリケーションの低電力かつ携帯性の要求を満足する必要があるアプリケーションには適していない。
【0004】
他のパターンマッチングアーキテクチャでは、各メモリセルの埋め込みハードウェア比較器を備えるCMA(Content Addressable Memory)を用いて、それのメモリ位置のコンテンツと入力データの対応するビットを埋め込み比較器の比較機能により比較する。このアーキテクチャは、高速かつ比較的コンパクトであるという利点を有する(ハードウェアによる実現のため)。しかしながら、1)利用可能な比較アルゴリズムのタイプ及び複雑さに関する制約、2)比較的大きな電力消費、3)メモリセルレベルにおけるかなり複雑な構成、及び4)多数の基準テンプレートに対しスケーラブルでない、などのいくつかの短所を有する。各メモリセルに対してハードウェア比較器を実現することは、高コスト化を招くと共に、より複雑な比較基準を不可能にし、複数の比較基準を実現するフレキシビリティを制限する。例えば、そのようなパターン認識アーキテクチャは、典型的には、保持されている基準テンプレートの何れが入力データのすべてのビットに一致しているか判断するための正確なビット一致比較を有するだけであろう。より複雑な比較基準は複雑かつ/または高価なものであるため、このアーキテクチャには利用することはできない。
【0005】
上述したようなアーキテクチャは一部のパターン認識アプリケーションには適しているが、他のアプリケーションでは高速な、複数の比較アルゴリズム(より複雑なアルゴリズムを含む)からの選択を与え、比較的電力消費の小さいパターンマッチングアーキテクチャが必要とされる。
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明の課題は、上記問題点に鑑み、基準テンプレートまたはパターンとデータとの迅速であり、複数のアルゴリズムを選択可能な低消費電力を実現するパターンマッチングアーキテクチャを提供することである。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明は、入力データをビット数がプログラム可能な入力ビットフィールドに分割し、1以上の基準テンプレートをビット数がプログラム可能な対応する基準ビットフィールドに分割する選択ユニットと、前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の1以上の距離を決定し、前記基準ビットフィールドに係る1以上の距離を前記基準テンプレートに対応する1以上のネットの距離に合成する距離ユニットとから構成されることを特徴とする装置を提供する。
【0008】
また本発明は、プログラム可能なビットフィールド幅に従って、入力データを入力ビットフィールドに分割するステップと、前記ビットフィールド幅に従って、1以上の基準テンプレートを前記入力ビットフィールドに対応する基準ビットフィールドに分割するステップと、前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の距離を決定するステップと、前記基準ビットフィールドに係る距離を前記1以上の基準テンプレートに対応する1以上のネットの距離に合成するステップとから構成されることを特徴とする方法を提供する。
【0009】
また本発明は、プロセッサによる実行のための命令を格納するよう接続されるダイナミックランダムアクセスシステムメモリと、プロセッサリクエストに応答して、入力データと基準テンプレート群との間の距離群を決定し、1以上の分類基準に従って、前記入力データにベストマッチする基準テンプレートを特定するパターンマッチングユニットと、
から構成されるシステムであって、前記パターンマッチングユニットは、選択ユニットと距離ユニットを有し、前記選択ユニットは、入力データをビット数がプログラム可能な入力ビットフィールドに分割し、1以上の基準テンプレートをビット数がプログラム可能な対応する基準ビットフィールドに分割し、前記距離ユニットは、前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の1以上の距離を決定し、前記基準ビットフィールドに係る1以上の距離を前記1以上の基準テンプレートに対応する1以上のネットの距離に合成するよう構成されることを特徴とするシステムを提供する。
【0010】
さらに本発明は、実行される場合にシステムが、プログラム可能なビットフィールド幅に従って、入力データを入力ビットフィールドに分割するステップと、前記ビットフィールド幅に従って、1以上の基準テンプレートを前記入力ビットフィールドに対応する基準ビットフィールドに分割するステップと、前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の距離を決定するステップと、前記基準ビットフィールドに係る距離を前記1以上の基準テンプレートに対応する1以上のネットの距離に合成するステップとを実行することを可能にする命令を含むマシーンアクセス可能な媒体から構成される物品を提供する。
【発明の効果】
【0011】
本発明によると、基準テンプレートまたはパターンとデータとの迅速であり、複数のアルゴリズムを選択可能な低消費電力を実現するパターンマッチングアーキテクチャを提供することが可能となる。
【発明を実施するための最良の形態】
【0012】
パターンマッチングアーキテクチャのための方法、装置及びシステムが説明される。以下の説明では、本発明の様々な実施例を完全に理解するため、多数の具体的詳細が与えられる。しかしながら、本発明の実施例はこれらの具体的詳細なしに実現可能であるということは当業者には明らかであろう。また、本発明の実施例を不明瞭にすることを回避するため、一部の構成及び装置はブロック図により図示される。
【0013】
明細書における「一実施例」あるいは「実施例」との表現は、当該実施例に関連して説明された特徴または構成が本発明の少なくとも1つの実施例に含まれるということを意味する。明細書のいくつかの場所に見受けられる「一実施例では」との表現は、必ずしもすべてが同一の実施例を参照するものでない。
【0014】
パターンマッチングアプリケーションの例として、認証(顔、声、指紋、署名及び虹彩によるマッチングなど)、在庫管理(バーコードや無線周波数による識別など)、通信(発話、音声、画像認識及び比較、ヘッダ構文解析など)、及び工業用制御(部品検査や予知保全など)があげられる。
【0015】
このようなアプリケーションからの入力データは、1以上の比較アルゴリズムに従って基準パターンまたはテンプレート群と比較され、リアルタイムデータと基準テンプレートとの各種距離測度が生成されるかもしれない。距離測度は、距離の公式やアルゴリズムに従って2つのデータ間の相違を定量化したものである。例えば、距離測度は、ビットイグザクトマッチ(bit exact match)、ハミング距離、ユークリッド距離、ミーンアグニチュード(mean magnitude)距離及び相関距離などがある。いくつかの距離測度は、一部のアプリケーションには利用可能であるが、他のアプリケーションには利用可能でない。アプリケーションには、複数タイプの距離測度が利用可能なものもある。従って、1以上の距離測度の選択能力が、実現されるようにしてもよい。
【0016】
一部のアプリケーションでは、距離測度が生成された後、当該距離測度にはさらなる処理または分類が行われ、選択された集合の中のどの基準テンプレートが入力データと最も良く比較するか、1以上の分類基準に従って判断される。例えば、どの基準テンプレートが与えられた入力データに対するベストマッチ、ワーストマッチ、ミーン(mean)マッチ、及び/またはメディアン(median)マッチであるか判断されてもよい。これらの「マッチ」に基づき行われる判定タイプはアプリケーションに応じて可変とされ、選択可能な距離測度の分類を提供するパターンマッチングアーキテクチャが実現されてもよい。
【0017】
図1を参照するに、本発明の一実施例によるパターンマッチングユニット100のブロック図が示される。パターンマッチングユニット100は、生成される1以上の距離測度(例えば、ビットイグザクトマッチ、ハミング距離、ユークリッド距離、ミーンマグニチュード距離及び/または相関距離など)を選択する機能を備えてもよいし、また選択された1以上の分類基準(例えば、ベストマッチ、ワーストマッチ、ミーンマッチ及び/またはメディアンマッチ)に従って距離測度を分類する機能を備えてもよいし、入力データと基準テンプレート群とをマッチングさせ、ユーザの選択に基づきマッチしたテンプレートのインデックスを提供する論理及び算術比較機構を有する検索テーブル機構を有するようにしてもよい。
【0018】
一実施例では、パターンマッチングユニット100は、オンチップメモリを用いてホストバスを占有することなく高速アクセス可能な大量の基準テンプレート群を格納するように、記憶装置の内部に一体化されてもよい。一実施例では、パターンマッチングユニット100は、パターンマッチングアクセラレータとしてプロセッサに埋め込まれてもよい。一実施例では、埋め込みパターンマッチングユニット100は、高速、フレキシブルかつ複雑なデータ比較及び分類を提供するため、プロセッサが他のタスクを実行するのを可能にしながら、プロセッサの比較命令に変換されてもよい。このようなプロセッサは、パターン認識、分岐予測、知的キャッシュ処理、適応的マッチフィルタリング及び命令レベル暗号化などの各種アプリケーションに対して、埋め込みパターンマッチングユニット100を効果的に利用するようにしてもよい。
【0019】
さらに図1を参照するに、入力バッファ106は、入力102を介し入力データを受信し、フレキシブル比較分類ユニット108による以降の処理のため、この入力データを格納するようにしてもよい。一実施例では、入力バッファ106は、フレキシブル比較分類ユニット108による処理のため以前の入力データが抽出されるに従って、新たな入力データの非同期ロード処理を可能にするようデュアルポートまたはダブルバッファ処理される。
【0020】
テンプレートメモリ104は、入力102から基準パターンやテンプレートを受信し、フレキシブル比較分類ユニット108による以降の処理のため、これらの基準テンプレートを格納するのに利用されてもよい。一実施例では、テンプレートメモリ104は、基準テンプレートが同時にロード及びアクセスされるのを可能にするようデュアルポートまたはダブルバッファ処理されてもよい。様々な実施例では、テンプレートメモリ104は、対象となるアプリケーションのメモリサイズ、パワー、スピード、不揮発性などの各要求に一致するよう各種メモリ技術に基づくものであってもよい。例えば、テンプレートメモリ104は、ROM(Read−Only Memory)、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)、EPROM(Erasable Programmable Read−Only Memory)、フラッシュメモリあるいはEEPROM(Electrically Erasable Programmable Read−Only Memory)などの半導体装置により実現されてもよい。
【0021】
さらに図1を参照するに、入力バッファ106とテンプレートメモリ104からのデータまたはベクトルが、フレキシブル比較分類ユニット108の入力に与えられる。図2に関してより詳細に後述するように、フレキシブル比較分類ユニット108は、各データ幅を比較及び分類し、入力データと基準テンプレートを比較及び分類用のサブフィールドまたは次元に分割またはスライスし、各種比較を行うことにより入力データと基準テンプレートとの間の各種距離測度(例えば、ビットイグザクトマッチ、ハミング距離、ユークリッド距離、ミーンマグニチュード距離及び/または相関距離など)を生成し、入力データの各次元に対する距離測度を総計または合成することによりネットの距離測度を生成し、選択された1以上の基準(例えば、ベストマッチ、ワーストマッチ、ミーンマッチ及び/またはメディアンマッチ)に従ってネットの距離測度を分類する。フレキシブル比較分類ユニット108はまた、特定されたマッチと境界状態に基づき1以上の決定を行う機構を有するようにし、1以上の決定フラグ124を介しこれらの決定を示すようにしてもよい。フレキシブル比較分類ユニット108はまた、比較のための多数の基準テンプレートまたはベクトル次元を収容するため、複数のパターンマッチングユニット108のカスケード処理を可能にするカスケードPMU入力112を有するようにしてもよい。フレキシブル比較分類ユニット108の一実施例のさらなる詳細は、図2に関連して後述される。
【0022】
さらに図1を参照するに、出力バッファ116が、フレキシブル比較分類ユニット108からの出力126を格納し、バッファされた結果118をマルチプレクサ120に与えるようにしてもよい。フレキシブル比較分類ユニット108からの出力126には、特定された基準テンプレートマッチのインデックス値、マッチした基準テンプレート、関連するネットの距離測度及び/または他の関連するマッチデータが含まれてもよい。一実施例では、出力バッファ116は、FIFO(First−In−First−Out)スタックである。一実施例では、マルチプレクサ120は、出力バッファ116からバッファされた結果118を受信すると共に、フレキシブル比較分類ユニット108から直接的に出力126を受信する。1つのモード(例えば、スタンドアローンPMUモード)では、マルチプレクサ120は、バッファされた結果118を最終的なPMU出力122に提供してもよい。他のモード(例えば、カスケードPMUモード)では、マルチプレクサ120は、フレキシブル比較分類ユニット108の出力を最終的なPMU出力122に直接的に与えるようにしてもよい。この最終的なPMU出力122は、フレキシブル比較分類ユニット108の最終的な比較/分類出力としてホストシステムまたは他の装置に与えられるようにしてもよい。
【0023】
一実施例では、出力バッファ116は、ホストシステムに状態情報を提供するため、適切なフラグ(例えば、アンダーフロー、オーバーフロー、ハーフフルなど)を生成するよう制御ユニット110と共に動作するようにしてもよい。このようなフラグは、ホストシステムがフラグを定期的に集計し、選択された個数の入力ベクトルが比較及び分類された後に応答するのを可能にするかもしれない。このようにして、ホストシステムは、パターンマッチングユニット100が入力ベクトル群を比較及び分類しながら、他のタスクを実行するようにしてもよい。
【0024】
さらに図1を参照するに、制御ユニット110は、パターンマッチングユニット100の各種設定オプションを提供するようにしてもよい。例えば、制御ユニット110は、データサイズ/幅、入力データ及び基準テンプレートが分割されるベクトル次元数及び幅、各比較において生成される1以上の距離測度の選択、利用される1以上の分類基準の選択、及びカスケードモードなどの各種パターンマッチングモードの選択を制御するかもしれない。制御ユニット110はまた、パターンマッチングユニット100の各種ユニット間のデータ処理及び転送のシーケンス処理を制御するようにしてもよい。制御ユニット110はまた、パターンマッチングユニット100とやりとりするため、ホストシステムや他の装置のための外部インタフェースを提供するようにしてもよい。一実施例では、外部インタフェースは、メモリ変換インタフェースである。一実施例では、外部インタフェースは、入出力(I/O)変換インタフェースである。制御ユニット110の一実施例のさらなる詳細は、図3に関連して後述される。
【0025】
図2を参照するに、本発明の一実施例による図1のフレキシブル比較分類ユニットのより詳細なブロック図が示される。ビットフィールド選択ユニット206は、入力バッファ106とテンプレートメモリ104からそれぞれ入力データ204と基準テンプレート202の各サイズまたはビット幅を処理するよう構成されてもよい。入力データ204と基準テンプレート202は、様々な次元またはサブフィールドを有するデータあるいはベクトルを表すものであってもよい。ビットフィールド選択ユニット206は、入力データ204と基準テンプレート202を様々な次元のベクトルを表す設定可能なサイズの1以上のビットフィールドにスライスまたは分割するよう構成されてもよい。例えば、入力データ204と基準テンプレート202は、赤、緑、青とカラー表示画素データの強度の4つの次元から構成される32ビットベクトルとすることも可能である。この場合、ビットフィールド選択ユニット206は、32ビットデータ幅を扱い、32ビット入力データ204と32ビット基準テンプレート202を、以下のベクトル次元を表す4つの8ビットシャンクまたはビットフィールド、すなわち、8ビットの赤(R)、8ビットの緑(G)、8ビットの青(B)及び8ビットの強度(I)に分割またはスライスするよう構成することが可能である。
【0026】
さらに図2を参照するに、比較ユニット208は、入力データ204の各ビットフィールドまたは次元と基準テンプレート202の対応するビットフィールドまたは次元を1以上の比較アルゴリズムに従って比較し、設定に応じて1以上の距離測度を生成するようにしてもよい。一実施例では、比較ユニット208は、各次元の距離測度と内部レジスタから抽出されるかもしれない対応する加重係数と乗算してもよい。例えば、あるカラーベクトルマッチングアプリケーションは、赤と輝度が青と緑より重要な比較次元であると判断するかもしれない。この場合、0.90、0.30、0.40及び0.95の加重係数が、赤、緑、青と輝度次元にそれぞれ利用することができる。一実施例では、比較ユニット208は、ビットフィールドまたは次元のすべてからの距離測度を合計または合成し(設定に応じて加重係数を適用することにより)、入力データ204と基準テンプレート204との間のネットの距離測度を生成する。
【0027】
対象とするアプリケーションに応じて、本発明の一実施例は、1以上の比較アルゴリズムを利用して1以上の距離測度を生成するよう構成されてもよい。いくつかの有用な距離測度として、ビットイグザクトマッチ、ハミング距離、ユークリッド距離、ミーンマグニチュード距離及び/または相関距離などがある。これらの距離測度が簡単に説明される。ビットイグザクト比較では、2つのデータの対応する各ビットを比較することにより、比較対象の2つのデータ間の正確なビット単位による一致があるか判断される。例えば、入力ベクトル「01011101」は、基準テンプレート「01011101」のビットイグザクトマッチであるが、基準テンプレート「01011100」のビットイグザクトマッチではない。ハミング距離測度は、一致する対応するビットの総数をトータルのビット幅により除することにより決定される(一致ビット数/トータルビット幅)。例えば、入力ベクトル「101101101010」と基準テンプレート「010111010111」との間のハミング距離は、3/12、すなわち、0.25である(右から2番目、7番目及び9番目がビットマッチに対応し、データビット幅が12ビットであるため)。ユークリッド距離は、1次元ベクトルには(X−Y)を用いて、n次元ベクトルまたはサブフィールドX...XとY...Yには
【0028】
【数1】

を用いて計算することができる。ミーンマグニチュード距離は、1次元ベクトルには|X−Y|を用いて、n次元ベクトルまたはサブフィールドX...XとY...Yには
【0029】
【数2】

を用いて計算することができる。相関距離は、1次元ベクトルにはX・Yを用いて、n次元ベクトルまたはサブフィールドX...XとY...Yには
【0030】
【数3】

を用いて計算することができる。
【0031】
さらに図2を参照するに、比較ユニット208は、各入力データ204と複数の基準テンプレート202を比較し、各入力データに関するネットの距離測度を分類ユニット210に提供する。分類ユニット210は、選択された1以上の分類基準に従って入力データ204にマッチする基準テンプレート202を特定するよう構成されてもよい。例えば、分類ユニット210は、基準テンプレートの何れが、各入力データに対するベストマッチ、ワーストマッチ、ミーンマッチ及び/またはメディアンマッチであるか判断するよう構成されてもよい。ベストマッチは、与えられた分類基準に従って入力データ204と比較して最も好ましいネット距離測度を有する基準テンプレートである。ワーストマッチは、与えられた分類基準に従って入力データ204に最もふさわしくないネット距離測度を有する基準テンプレートである。ミーンマッチは、ネット距離測度の平均に最も近いネット距離測度を有する基準テンプレートである。メディアンマッチは、ネット距離測度の中央値に最も近いネット距離測度を有する基準テンプレートである。一実施例では、フレキシブル比較分類ユニット108は、基準テンプレートのインデックス値と、特定されたマッチに対応するネット距離測度を記録するようにしてもよい。
【0032】
さらに図2を参照するに、一実施例では、フレキシブル比較分類ユニット108は、カスケード構成されたパターンマッチングユニットから選択されたマッチを分類する深さ拡張ユニット212を有するようにしてもよい。例えば、(図1の)複数のパターンマッチングユニット100が、スピードを向上させるため(例えば、与えられた入力データをパラレルに処理する複数のユニットなど)、あるいは比較に利用可能な基準テンプレートの個数を増やすためカスケード構成されてもよい。深さ拡張モードが選択されると、深さ拡張ユニット212は、それの分類されたマッチとカスケードPMU入力214上に与えられる他のパターンマッチングユニットの何れかと比較し、複数のパターンマッチングユニット100の選択されたマッチから最良の全体的なマッチを決定する。深さ拡張モードが選択されていないときには、深さ拡張ユニット212は、それの入力をそれの出力218に単にコピーするようにしてもよい。カスケード化されたパターンマッチングアーキテクチャの一実施例のさらなる詳細が、図4に関連して後述される。
【0033】
さらに図2を参照するに、一実施例では、フレキシブル比較分類ユニット108はまた、判定ユニット220を有するようにしてもよい。判定ユニット220は、深さ拡張ユニット212から出力218(特定されたマッチと関連する距離測度を含む)を受け取り、判定基準または閾値を示す1以上の境界基準222を受信するようにしてもよい。判定ユニット220は、出力218と境界基準222を比較し、この比較に基づきパターンマッチングユニット100による様々な判定を示す1以上の判定フラグを生成するようにしてもよい。例えば、指紋マッチングアプリケーションでは、判定ユニット200は、最も近いネットのユークリッド距離測度の値が所定値未満である場合、「指紋マッチ」フラグをアサートするよう構成されるかもしれない。一実施例では、判定ユニット220は、埋め込みアプリケーションにおけるスタンドアローンによる利用のためのパターンマッチングユニット100において利用されてもよい。各種制御入力216がまた、フレキシブル比較分類ユニット108のタイミング、シーケンス処理及び全体機能を制御するのに提供されてもよい。
【0034】
図3を参照するに、本発明の一実施例による図1の制御ユニット110のブロック図が示される。外部インタフェース308は、ホストシステムまたは他の装置がアドレス信号302、データ信号304及びリード/ライト信号306を介しパターンマッチングユニット100とやりとりするのを可能にする。外部インタフェース308を利用して、ホスト装置またはシステムは、テンプレートをテンプレートメモリ104に格納し、データを入力バッファ106にロードし、出力バッファ116から結果を読取ることが可能である。アドレス入力302とデータ入力304を介しホストにより与えられるアドレス及びデータ情報のパターンマッチングユニット100の内部の通信は、内部アドレスバス310と内部データバス312を介し実行されるかもしれない。
【0035】
一実施例では、制御ユニット110は、ホストシステムのメモリスペースの4つの場所を利用するパターンマッチングユニット100に対するメモリ変換インタフェースを提供するかもしれない。テーブル1に変換例が示される。
【0036】
【表1】

【0037】
一実施例では、制御レジスタ314は、a)テンプレートメモリ104のテンプレートの開始アドレス、b)比較されるテンプレートの個数、c)次元ごとのビットフィールド幅、d)ベクトルごとのベクトル次元数、e)深さ拡張オン/オフ、及びf)距離測度の選択を含むようにしてもよい。一実施例では、制御ユニット110は、各種フラグ(例えば、実行済み/未実行、カスケードモード、メモリチェックなど)を含む状態レジスタ316を有するようにしてもよい。一実施例では、制御ユニット110は、各種デバッグ動作を提供するデバッグレジスタ318を有するようにしてもよい。
【0038】
さらに図3を参照するに、設定タイミングデコーダ320は、設定情報326をパターンマッチングユニット100に提供する。シーケンサ322は、パターンマッチングユニット100の各種機能ブロックのタイミング及び動作を制御する制御信号324を与える。
【0039】
図4を参照するに、本発明の一実施例によるカスケード構成されたパターンマッチングアーキテクチャ400のブロック図が示される。図4は、(図1の)複数のパターンマッチングユニット100が、スピードを向上させ(例えば、パラレルに1以上の入力データを処理する複数のユニットなど)、及び/または比較のため利用可能な基準テンプレートの個数を増やすためどのようにカスケード構成することが可能であるか示す。入力データは、入力102(a)、102(b)及び102(c)を介しパターンマッチングユニット100(a)、100(b)及び100(c)にそれぞれ与えられる。パターンマッチングユニット100(a)、100(b)及び100(c)は、パターンマッチングユニット100(a)の最終的なPMU出力122(a)をパターンマッチングユニット100(b)のカスケードPMU入力122(b)に接続すると共に、パターンマッチングユニット100(b)の最終的なPMU出力122(b)をパターンマッチングユニット100(c)のカスケードPMU入力112(c)に接続することにより、カスケードモードで接続されてもよい。本実施例では、パターンマッチングユニット100(a)、100(b)及び100(c)の各々の深さ拡張ユニット212は、複数のパターンマッチングユニット100により比較及び分類された最良の全体的マッチを決定するよう動作し、最終的なPMU出力122(c)に最良の全体的マッチデータを提供する。一実施例では、カスケードアーキテクチャは、多数の基準テンプレートの比較を可能にするよう利用されてもよい。例えば、同じ入力データが、複数のカスケード接続されたパターンパッチングユニットに保持されている異なる基準テンプレートセットとパラレルに比較することが可能である。一実施例では、同一の基準テンプレートセットが、入力データ群を比較及び分類するスピードを向上させるため、カスケード接続されたパターンマッチングユニットに格納することが可能である。
【0040】
実施例は、論理回路、状態マシーン、マイクロコードあるいはこれらの組み合わせにより実現されてもよい。実施例はコードにより実現されてもよく、命令を実行するようコンピュータシステムをプログラムするのに用いることが可能な命令を格納した記憶媒体に格納されてもよい。この記憶媒体は、以下に限定するものではないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROM(Compact Disk Read−Only Memory)、CD−RW(Compact Disk Rewritable)、光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、DRAM、EPROM、フラッシュメモリ、EEPROMなどの半導体装置、磁気または光カード、ネットワーク記憶装置、あるいは電子命令を格納するのに適した任意のタイプの媒体を含むものであってもよい。
【0041】
実施例は、ハードウェア装置の適切な組み合わせにより構成された適切なコンピュータシステムによる実行のためのソフトウェアにより実現されてもよい。
【0042】
図5を参照するに、本発明の実施例が利用可能なコンピュータシステム500のブロック図が示される。一実施例では、コンピュータシステム500は、マイクロプロセッサ、マイクロコントローラ、プログラマブルゲートアレイ(PGA)などの汎用または特定用途向けプロセッサを有するプロセッサ510を備える。ここで用いられる「コンピュータシステム」という用語は、デスクトップコンピュータ、サーバコンピュータ、ラップトップコンピュータなどの任意のタイプのプロセッサベースシステム、あるいは他のタイプのホストシステムを表すかもしれない。
【0043】
プロセッサ510は、一実施例では、メモリバス525を介しシステムメモリ520(DRAMなど)に接続されるメモリハブ530にホストバス515を介し接続されてもよい。メモリハブ530はまた、ディスプレイ537に接続されるビデオコントローラ535にAGP(Advanced Graphics Port)を介し接続されてもよい。AGPバス533は、カリフォルニア州サンタクララのインテルコーポレイションにより1998年5月4日に刊行されたAccelerated Graphics Port Interface 仕様書に準拠していてもよい。
【0044】
(図1の)パターンマッチングユニット100は、メモリバス525を介しメモリハブ530に接続されてもよい。本実施例では、パターンマッチングユニット100は、メモリ変換装置であってもよい。他の実施例では、パターンマッチングユニット100は、入出力(I/O)変換装置であってもよい。一実施例では、パターンマッチングユニット100は、パターンマッチングアクセラレータとしてプロセッサ510に埋め込まれてもよい。一実施例では、埋め込みパターンマッチングユニット100は、プロセッサ510が他のタスクを実行するのを可能としながら、高速、フレキシブルかつ複雑なデータ比較及び分類を提供するためプロセッサ510の比較命令に変換されるようにしてもよい。プロセッサ510は、パターン認識、分岐予測、知的キャッシュ処理、適応的マッチフィルタリング、命令レベル暗号化などの各種アプリケーションに対して、パターンマッチングユニット100を効果的に利用するかもしれない。
【0045】
メモリハブ530は、1995年6月のPCIローカルバス仕様書、プロダクツバージョン改訂2.1により規定されるようなPCI(Peripheral Component Interconnect)バス544と入出力(I/O)拡張バス542に接続される入出力(I/O)ハブ540に接続されてもよい(ハブリンク538を介し)。このI/O拡張バス542は、1以上のI/O装置へのアクセスを制御するI/Oコントローラ546に接続されてもよい。図5に示されるように、一実施例では、これらの装置には、フロッピー(登録商標)ディスクドライブ550などの記憶装置と、キーボード552やマウス554などの入力装置が含まれてもよい。I/Oハブ540はまた、図5に示されるように、ハードディスクドライブ556とCDドライブ558に接続されてもよい。他の記憶装置が本システムに設けられてもよいということは理解されるべきである。
【0046】
PCIバス544はまた、例えば、ネットワークポート(図示せず)に接続されるネットワークコントローラ560を含む各種コンポーネントに接続されてもよい。パラレルポート、シリアルポート、不揮発性メモリなどのさらなる装置が、I/O拡張バス542とPCIバス544に接続されてもよい。
【0047】
上記説明はシステム500の具体的コンポーネントを参照したが、説明及び図示された実施例の多数の改良及び変形が可能であるということが考えられる。また、図5はパーソナルコンピュータなどのシステムのブロック図を示しているが、本発明の実施例は特殊なパターン認識装置、携帯情報端末(PDA)などにより実現されてもよいということは理解されるべきである。
【0048】
図6を参照するに、本発明の一実施例によるパターンマッチング方法を示すフロー図が示される。設定オプションは、入力データと基準テンプレートまたはパターンの比較に利用される比較アルゴリズムや1以上の距離測度の選択を可能にするものであってもよく、選択された1以上の基準に従い与えられた入力データにベストマッチする1以上の基準テンプレートを特定するのに利用可能な1以上の分類基準の選択を可能にするものであってもよい(ブロック602)。設定オプションは、入力データと基準テンプレートの次元のサイズやビット幅の選択を可能にするものであってもよく、各入力データと基準テンプレートの次元数及び/またはサイズの選択を可能にするものであってもよい(ブロック604)。一実施例では、設定オプションは、入力データと基準テンプレートの全体的なビット幅と各入力データと基準テンプレートの次元数の選択を提供するものであってもよい。
【0049】
設定オプションが設定された後、パターンマッチングプロセスは、比較及び分類対象の入力データをフェッチすることにより進められる(ブロック606)。入力データが比較される基準テンプレートもまたフェッチされる(ブロック608)。複数の次元を有するデータの比較においてフレキシビリティを提供するため、入力データと基準テンプレートの各々は、設定オプションに従って複数の時限またはビットフィールドに分割され(ブロック610)、入力データと基準テンプレートの対応する各次元に対し距離測度が決定されるのを可能にするようにしてもよい(ブロック612)。各次元の距離測度が決定されると、1以上の加重係数が1以上の次元に関連する距離測度に適用されてもよい(ブロック614)。その後、これらの距離測度は、当該入力データと基準テンプレートのネット距離測度に合計または合成されてもよい(ブロック616)。ブロック608〜616は、与えられた基準データが選択された基準テンプレートのすべてと比較されるまで繰り返されるようにしてもよい(ブロック618)。この入力データがすべての基準テンプレートと比較されると、どの距離測度(及び対応する基準テンプレート)が入力データにベストマッチするか判断するため、選択された分類基準に従って分類されるようにしてもよい(ブロック620)。一実施例では、ブロック620において特定されたマッチは、1以上の境界基準と比較され、この比較に基づき1以上の判定がなされるようにしてもよい(ブロック622)。
【0050】
以上のように、パターンマッチングアーキテクチャのための方法、装置及びシステムが説明された。本発明は限られた実施例に関して説明されたが、本開示により、当業者は多数の改良及び変形を理解するであろう。添付された請求項は、このようなあらゆる改良及び変形を本発明の真の趣旨及び範囲に属するものとしてカバーしようとするものである。
【図面の簡単な説明】
【0051】
【図1】図1は、本発明の一実施例によるパターンマッチングユニットのブロック図である。
【図2】図2は、本発明の一実施例による図1のフレキシブル比較分類ユニットのブロック図である。
【図3】図3は、本発明の一実施例による図1の制御ユニットのブロック図である。
【図4】図4は、本発明の一実施例によるカスケード構成されたパターンマッチングアーキテクチャのブロック図である。
【図5】図5は、本発明の実施例が利用可能なコンピュータシステムのブロック図である。
【図6】図6は、本発明の一実施例によるパターンマッチング方法を示すフロー図である。
【符号の説明】
【0052】
100 パターンマッチングユニット
104 テンプレートメモリ
106 入力バッファ
108 フレキシブル比較分類ユニット
110 制御ユニット
116 出力バッファ
120 マルチプレクサ
206 ビットフィールド選択ユニット
208 比較ユニット
210 分類ユニット
212 深さ拡張ユニット
220 判定ユニット
308 外部インタフェース
314 制御レジスタ
316 状態レジスタ
318 デバッグレジスタ
320 設定タイミングデコーダ
322 シーケンサ

【特許請求の範囲】
【請求項1】
入力データをビット数がプログラム可能な入力ビットフィールドに分割し、1以上の基準テンプレートをビット数がプログラム可能な対応する基準ビットフィールドに分割する選択ユニットと、
前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の1以上の距離を決定し、前記基準ビットフィールドに係る1以上の距離を前記基準テンプレートに対応する1以上のネットの距離に合成する距離ユニットと、
から構成されることを特徴とする装置。
【請求項2】
請求項1記載の装置であって、
前記入力データと前記基準テンプレートのビット数は、プログラム可能であることを特徴とする装置。
【請求項3】
請求項1記載の装置であって、
前記距離ユニットは、各基準テンプレートに係る距離が前記1以上のネットの距離に合成される前に、1以上の加重係数を前記距離に適用するよう構成されることを特徴とする装置。
【請求項4】
請求項1記載の装置であって、
前記距離ユニットは、イグザクトビットマッチ、ハミング距離、ユークリッド距離、ミーンマグニチュード距離及び相関距離の少なくとも1つを含む1以上のタイプの距離及びネットの距離を決定するよう設定可能となるよう構成されることを特徴とする装置。
【請求項5】
請求項1記載の装置であって、さらに、
前記入力データと前記基準テンプレートを格納するメモリを有し、
当該装置は、単一の集積回路上で実現されることを特徴とする装置。
【請求項6】
請求項1記載の装置であって、さらに、
前記入力データ、前記基準テンプレート、制御データ及び状態データを当該装置と交換するホストインタフェースを有することを特徴とする装置。
【請求項7】
請求項6記載の装置であって、
前記ホストインタフェースは、メモリ変換または入出力(I/O)変換されることを特徴とする装置。
【請求項8】
請求項1記載の装置であって、さらに、
1以上の選択可能な分類基準に従って、前記1以上のネットの距離を分類する分類ユニットを有することを特徴とする装置。
【請求項9】
請求項8記載の装置であって、
前記選択可能な分類基準は、ベストマッチ、ワーストマッチ、ミーンマッチ及びメディアンマッチの1以上を含むことを特徴とする装置。
【請求項10】
請求項8記載の装置であって、さらに、
他のネットの距離を受け取り、前記1以上の選択可能な分類基準に従って、前記他のネットの距離と前記1以上の分類されたネットの距離を比較するカスケードユニットを有することを特徴とする装置。
【請求項11】
請求項8記載の装置であって、さらに、
前記1以上の分類されたネットの距離と1以上の境界基準との比較に基づき、1以上の判定フラグを生成する判定ユニットを有することを特徴とする装置。
【請求項12】
プログラム可能なビットフィールド幅に従って、入力データを入力ビットフィールドに分割するステップと、
前記ビットフィールド幅に従って、1以上の基準テンプレートを前記入力ビットフィールドに対応する基準ビットフィールドに分割するステップと、
前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の距離を決定するステップと、
前記基準ビットフィールドに係る距離を前記1以上の基準テンプレートに対応する1以上のネットの距離に合成するステップと、
から構成されることを特徴とする方法。
【請求項13】
請求項12記載の方法であって、さらに、
前記入力データと前記基準テンプレートのビット数を設定するステップを有することを特徴とする方法。
【請求項14】
請求項12記載の方法であって、さらに、
各基準テンプレートに係る距離を前記1以上のネットの距離に合成する前に、1以上の加重係数を前記距離に適用するステップを有することを特徴とする方法。
【請求項15】
請求項12記載の方法であって、
イグザクトビットマッチ、ハミング距離、ユークリッド距離、ミーンマグニチュード距離及び相関距離の少なくとも1つを含む1以上のタイプの距離及びネットの距離が決定されることを特徴とする方法。
【請求項16】
請求項12記載の方法であって、さらに、
1以上の選択可能な分類基準に従って、前記1以上のネットの距離を分類するステップを有することを特徴とする方法。
【請求項17】
請求項16記載の方法であって、
前記選択可能な分類基準は、ベストマッチ、ワーストマッチ、ミーンマッチ及びメディアンマッチの1以上を含むことを特徴とする方法。
【請求項18】
請求項16記載の方法であって、さらに、
他のネットの距離と前記分類されたネットの距離を比較し、前記他のネットの距離に関連して前記分類されたネットの距離をさらに分類するステップを有することを特徴とする方法。
【請求項19】
請求項16記載の方法であって、さらに、
前記1以上の分類されたネットの距離と1以上の境界基準との比較に基づき、1以上の判定フラグを生成するステップを有することを特徴とする方法。
【請求項20】
プロセッサによる実行のための命令を格納するよう接続されるダイナミックランダムアクセスシステムメモリと、
プロセッサリクエストに応答して、入力データと基準テンプレート群との間の距離群を決定し、1以上の分類基準に従って、前記入力データにベストマッチする基準テンプレートを特定するパターンマッチングユニットと、
から構成されるシステムであって、
前記パターンマッチングユニットは、選択ユニットと距離ユニットを有し、
前記選択ユニットは、入力データをビット数がプログラム可能な入力ビットフィールドに分割し、1以上の基準テンプレートをビット数がプログラム可能な対応する基準ビットフィールドに分割し、
前記距離ユニットは、前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の1以上の距離を決定し、前記基準ビットフィールドに係る1以上の距離を前記1以上の基準テンプレートに対応する1以上のネットの距離に合成するよう構成される、
ことを特徴とするシステム。
【請求項21】
請求項20記載のシステムであって、
前記入力データと前記基準テンプレートのビット数は、プログラム可能であることを特徴とするシステム。
【請求項22】
請求項20記載のシステムであって、
前記距離ユニットは、各基準テンプレートに係る距離が前記1以上のネットの距離に合成される前に、1以上の加重係数を前記距離に適用するよう構成されることを特徴とするシステム。
【請求項23】
請求項20記載のシステムであって、
前記パターンマッチングユニットはさらに、前記入力データ、前記基準テンプレート、制御データ及び状態データを前記プロセッサと交換するメモリ変換または入出力(I/O)変換されたホストインタフェースを有することを特徴とするシステム。
【請求項24】
請求項20記載のシステムであって、
前記パターンマッチングユニットはさらに、1以上の選択可能な分類基準に従って、前記1以上のネットの距離を分類する分類ユニットを有することを特徴とするシステム。
【請求項25】
実行される場合にシステムが、
プログラム可能なビットフィールド幅に従って、入力データを入力ビットフィールドに分割するステップと、
前記ビットフィールド幅に従って、1以上の基準テンプレートを前記入力ビットフィールドに対応する基準ビットフィールドに分割するステップと、
前記入力ビットフィールドと前記対応する基準ビットフィールドとの間の距離を決定するステップと、
前記基準ビットフィールドに係る距離を前記1以上の基準テンプレートに対応する1以上のネットの距離に合成するステップと、
を実行することを可能にする命令を含むマシーンアクセス可能な媒体から構成される物品。
【請求項26】
請求項25記載の物品であって、さらに、
実行される場合に前記システムが、前記入力データと前記基準テンプレートのビット数を設定するステップを実行することを可能にする命令を有することを特徴とする物品。
【請求項27】
請求項25記載の物品であって、さらに、
実行される場合に前記システムが、イグザクトビットマッチ、ハミング距離、ユークリッド距離、ミーンマグニチュード距離及び相関距離の1以上を含む1以上のタイプの距離及びネットの距離を決定することを可能にする命令を有することを特徴とする物品。
【請求項28】
請求項25記載の物品であって、さらに、
実行される場合に前記システムが、ベストマッチ、ワーストマッチ、ミーンマッチ及びメディアンマッチの1以上を含む1以上の選択可能な分類基準に従って、前記1以上のネットの距離を分類することを可能にする命令を有することを特徴とする物品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−59339(P2006−59339A)
【公開日】平成18年3月2日(2006.3.2)
【国際特許分類】
【出願番号】特願2005−212974(P2005−212974)
【出願日】平成17年7月22日(2005.7.22)
【出願人】(593096712)インテル コーポレイション (931)
【Fターム(参考)】