(57)【特許請求の範囲】
【請求項１】
パターン認識プロセッサを含むデバイスであって、
前記パターン認識プロセッサは、複数のブロックと複数の電力制御回路とを含み、
前記複数のブロックの１つ以上のブロックは、複数のステートマシンのうち１つ以上を含み、各々の前記複数のブロックは、複数のフィーチャセルを含み、各々のフィーチャセルは、検索タームセルを含み、
前記検索タームセルは、複数の入力と、一つの出力と、前記複数の入力と前記出力のそれぞれに各々結合された複数のメモリセルと、を含み、
前記複数の電力制御回路は、前記複数のブロックにそれぞれに結合され、前記複数のブロックの内の、検索対象のデータストリームの識別に基づき前記データストリームの検索を行うブロックの各々に対しては、そのアクティブ化から非アクティブ化および非アクティブ化からアクティブ化が、前記検索対象のデータストリームに対するパターン検索の進行に基づいて、対応する前記電力制御回路により制御され、
前記複数のブロックの内の、前記検索対象のデータストリームの識別に基づき前記データストリームの検索を行わないブロックに対しては、その非アクティブ化が、前記検索対象のデータストリームに対するパターン検索の間維持される、
デバイス。
【請求項２】
各前記電力制御回路は、前記複数のブロックのそれぞれをアクティブ化するための信号を提供する、請求項１に記載のデバイス。
【請求項３】
各前記電力制御回路は、ブロックがプログラムされた状態要素を含まない場合、それぞれのブロックを無効にするように構成されている、請求項１に記載のデバイス。
【請求項４】
各前記電力制御回路は、それぞれのブロックのメモリリフレッシュを無効にするように構成されている、請求項１に記載のデバイス。
【請求項５】
各前記電力制御回路は、それぞれのブロックのステータスの判定に基づいて、それぞれのブロックの非アクティブ化を遅延させるように構成されたタイマーコンポーネントを含む、請求項１に記載のデバイス。
【請求項６】
前記タイマーコンポーネントは、前記それぞれのブロックのステータスの判定に基づいて、リセットを行うように構成されている、請求項５に記載のデバイス。
【請求項７】
前記検索対象のデータストリームに対するパターン検索の進行に基づいて、前記データストリームの検索を行うブロックの各々に対するアクティブ化から非アクティブ化および非アクティブ化からアクティブ化が対応する前記電力制御回路により制御されることは、前記データストリームに対するパターン検索が順次進行している間に、当該パターン検索が前記複数のブロックの中の第一のブロックから前記複数のブロックの中の第二のブロックへと進行することを示すクロスオーバー情報が出力されることにより、前記第一のブロックが対応する電力制御回路により別のパターン検索が前記第一のブロックに進行するまで非アクティブ化されると共に、前記パターン検索が前記第二のブロックに進行する前に前記第二のブロックが対応する電力制御回路によりアクティブ化されることを含む、請求項１に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概して、パターン認識プロセッサに関し、より詳細には、特定の実施形態において、このようなパターン認識プロセッサの消費電力を低減させることに関する。
【背景技術】
【０００２】
コンピューティングの分野では、パターン認識タスクは、益々難しくなってきている。従来と比べてより大量のデータがコンピュータ間で送信され、ユーザが識別することを望むパターンの数は増加している。例えば、特定のフレーズまたはコードの一部等のデータストリーム内のパターンを検索することによって、例えば、スパムまたはマルウェアが頻繁に検出される。新しいパターンが新しい変種を検索するために実装され得るが、パターンの数はスパム及びマルウェアの多様性によって増加する。データストリームでこれらの各パターンを検索することは、コンピューティング・ボトルネックを形成し得る。データストリームが受信されると、大抵は、各パターンが１度に１つずつ検索される。システムがデータストリームの次の部分を検索できるようになる前の遅延は、パターンの数によって増大する。従って、パターン認識は、データの受信を遅くする場合がある。
【０００３】
このようなパターン認識デバイスは、パターン認識処理に利用可能な全てまたはほぼ全てのメモリコアを用いてもよい。すなわち、各データストリームから１つ以上のパターンを検索する性質のために、全てまたはほぼ全てのメモリコアが各処理周期中にアクセスされてもよい。これは、パターン認識プロセッサにより高消費電力になる場合がある。更に、従来のＤＲＡＭデバイスまたは他のメモリに用いられるアドレスデコード技術は、パターン認識デバイスによる使用には適さない場合がある。
【図面の簡単な説明】
【０００４】
【図１】データストリームを検索するシステムの実施例を示す。
【図２】図１のシステム内のパターン認識プロセッサの実施例を示す。
【図３】図２のパターン認識プロセッサ内の検索タームセルの実施例を示す。
【図４】データストリームから一文字を検索する図３の検索タームセルを示す。
【図５】データストリームから一文字を検索する図３の検索タームセルを示す。
【図６】データストリームから単語を検索するいくつかの検索タームセルを含む認識モジュールを示す。
【図７】データストリームから単語を検索するいくつかの検索タームセルを含む認識モジュールを示す。
【図８】データストリームから単語を検索するいくつかの検索タームセルを含む認識モジュールを示す。
【図９】データストリームから２つの単語を並行して検索するように構成された認識モジュールを示す。
【図１０】同一の接頭辞を持つ複数の単語を特定する検索条件に従って検索する認識モジュールを示す。
【図１１】同一の接頭辞を持つ複数の単語を特定する検索条件に従って検索する認識モジュールを示す。
【図１２】同一の接頭辞を持つ複数の単語を特定する検索条件に従って検索する認識モジュールを示す。
【図１３】本発明の実施形態に係る行及びブロックへのフィーチャセルの配列を示す。
【図１４Ａ】本発明の実施形態に係るフィーチャセルのブロックの動作を示す。
【図１４Ｂ】本発明の実施形態に係るフィーチャセルのブロックの動作を示す。
【図１５】本発明の実施形態に係る電源制御回路の論理回路図を示す。
【図１６】本発明の実施形態に係るパターン認識プロセッサのブロックの予測アクティブスキームを示す。
【図１７】本発明の実施形態に係るブロックで信号を処理するための論理図を示す。
【発明を実施するための形態】
【０００５】
図１は、データストリーム１２を検索するシステム１０の一実施例を示す。システム１０は、検索基準（ｓｅａｒｃｈ ｃｒｉｔｅｒｉａ）１６に従ってデータストリーム１２を検索するパターン認識プロセッサ１４を含んでもよい。
【０００６】
各検索基準は、１つ以上の対象表現、すなわちパターンを特定してもよい。“対象表現”という用語は、パターン認識プロセッサ１４が検索するデータ配列（シーケンス）のことを称する。対象表現の例は、ある単語を綴る文字配列、遺伝子を特定する遺伝子塩基対配列、画像の一部を形成する画像ファイルもしくはビデオファイルにおけるビット配列、プログラムの一部を形成する実行可能ファイルにおけるビット配列、または、歌もしくは話された言葉の一部を形成するオーディオファイルにおけるビット配列を含む。
【０００７】
検索基準は、１つを超える対象表現を特定してもよい。例えば、検索基準は、文字列“ｃｌ”で始まる全５文字の単語、文字列“ｃｌ”で始まるあらゆる単語、３回を超えて“ｃｌｏｕｄ”という単語を含む段落などを特定してもよい。対象表現のうちで考えられる組の数は、任意に大きく、例えば、データストリームが存在することが可能であるデータの順列が存在するのと同一数の対象表現が存在する可能性がある。検索基準は、種々のフォーマットで表現されてもよく、そのフォーマットは、正規表現として、各対象表現を必ずしも記載することなく、対象表現の組を簡潔に特定するプログラミング言語を含む。
【０００８】
各検索基準は、１つ以上の検索タームから構成されてもよい。したがって、検索基準の各対象表現は１つ以上の検索タームを含み、幾つかの対象表現は、共通の検索タームを使用してもよい。本明細書で使用されるように、“検索ターム”という用語は、単一の検索周期の間に検索されるデータの配列のことを称する。データの配列は、バイナリフォーマットもしくは、例えば、１０進法、ＡＳＣＩＩなどの他のフォーマットの複数ビットのデータを含んでもよい。配列は、単一のディジットもしくは複数のディジット（例えば幾つかのバイナリディジット）でデータをエンコードしてもよい。例えば、パターン認識プロセッサ１４は、一度に一文字をテキストデータストリーム１２から検索し、検索タームは、例えば、文字“ａ”、文字“ａ”か“ｅ”のいずれか、または、全ての単一文字の組を特定するワイルドカード検索タームなど、単一文字の組を特定してもよい。
【０００９】
検索タームは、文字（もしくは、データストリームによって表現される情報の他の書記素、すなわち基本単位、例えば、音符、遺伝子塩基対、１０進法のディジット、サブピクセル）を特定するビット数よりも小さいか、または大きくてもよい。例えば、検索タームは８ビットであり、単一文字は１６ビットであり、この場合には、２つの連続した検索タームは単一文字を特定してもよい。
【００１０】
検索基準１６は、コンパイラ１８によってパターン認識プロセッサ１４のためにフォーマットされてもよい。フォーマットするステップは、検索基準から検索タームを分解するステップを含んでもよい。例えば、データストリーム１２によって表現される書記素が検索タームよりも大きい場合、コンパイラは、単一の書記素を検索するために、複数の検索タームへと検索基準を分解してもよい。同様に、データストリーム１２によって表現される書記素が検索タームよりも小さい場合、コンパイラ１８は、各個別の書記素に対して、使用されていないビットを伴う単一の検索タームを提供してもよい。コンパイラ１８は、パターン認識プロセッサ１４によって本来サポートされていない種々の正規表現演算子をサポートするために、検索基準１６をフォーマットしてもよい。
【００１１】
パターン認識プロセッサ１４は、データストリーム１２から各新規タームを評価することによって、データストリーム１２を検索してもよい。本明細書における“ターム”という用語は、検索タームに一致しうるデータ量のことを称する。検索周期の間、パターン認識プロセッサ１４は、現在提示されているタームが検索基準における現在の検索タームに一致するかどうかを決定してもよい。タームが検索タームと一致する場合には、評価は“進行”し、すなわち、次のタームが検索基準における次の検索タームと比較される。そのタームが一致しない場合には、次のタームは、検索基準における第一のタームと比較され、それによって検索をリセットする。
【００１２】
各検索基準は、パターン認識プロセッサ１４内の異なる有限ステートマシン（有限状態機械）へとコンパイルされてもよい。有限ステートマシンは、パラレルに（並行して）動作して検索基準１６に従ってデータストリーム１２を検索してもよい。有限ステートマシンは、先行する検索タームがデータストリーム１２によって一致する場合に検索基準における次に続く各検索タームへと進んでもよい。または、検索タームが一致しない場合には、有限ステートマシンは、検索基準の第一の検索タームの検索を開始してもよい。
【００１３】
パターン認識プロセッサ１４は、幾つかの検索基準に従って各新規タームを評価し、ほぼ同時に、例えば、単一のデバイス周期の間に、其々の検索タームを評価してもよい。並列有限ステートマシンは、ほぼ同時にデータストリーム１２からタームを各々受信し、並列有限ステートマシンの各々は、そのタームが、並列有限ステートマシンを検索基準における次の検索タームへと進めるかどうかを決定してもよい。並列有限ステートマシンは、比較的多数の検索基準（例えば、１００以上、１０００以上、もしくは１００００以上）に従って、タームを評価してもよい。それらはパラレルに動作するため、データストリームを遅延させることなく、比較的高いバンド幅を有するデータストリーム１２（例えば、６４ＭＢ毎秒（Ｍｂｐｓ）もしくは１２８ＭＢ毎秒（Ｍｂｐｓ）より大きいかほぼ同一のデータストリーム１２）に対して検索基準を適用してもよい。幾つかの実施形態においては、検索周期の継続期間は、検索基準の数によっては変化しないため、検索基準の数は、パターン認識プロセッサ１４の性能に殆ど影響を与えることはない。
【００１４】
検索基準が満足されるとき（すなわち、最後の検索タームに進行してそれが一致した後）、パターン認識プロセッサ１４は、中央処理装置（ＣＰＵ）２０などの処理装置に対して基準を満足したことを報告してもよい。中央処理装置２０は、パターン認識プロセッサ１４およびシステム１０の他の部分を制御してもよい。
【００１５】
システム１０は、データのストリームを検索する種々のシステムもしくはデバイスのうちのいずれであってもよい。例えば、システム１０は、データストリーム１２を検索するデスクトップ、ラップトップ、ハンドヘルドもしくは他のタイプのコンピュータであってもよい。システム１０は、ルータ、サーバ、もしくはクライアント（例えば、前述されたタイプのコンピュータのうちの１つ）などのネットワークノードであってもよい。システム１０は、コピー機、スキャナ、プリンタ、ゲーム機、テレビ、セットトップビデオ分配録画システム、ケーブルテレビ用チューナ、パーソナルデジタルメディアプレイヤー、工場自動化システム、自動車用コンピュータシステムもしくは医療デバイスなどの他の種類の何らかの電子装置であってもよい。（これらの種々のシステムの実施例を記述するために使用される用語は、本明細書で使用される他の多くの用語と同様に、幾つかの指示対象を共有し、それ自体は、列挙された他の項目によって、狭く解釈されるべきではない。）
【００１６】
データストリーム１２は、ユーザもしくは他の存在が検索を望む可能性のある種々のタイプのデータストリームのうちの、１つ以上のデータストリームであってもよい。例えば、データストリーム１２は、インターネットを介して受信されたパケット、または、携帯電話ネットワークを介して受信された音声もしくはデータなどの、ネットワークを介して受信されたデータのストリームであってもよい。データストリーム１２は、画像センサ、温度センサ、加速度計などもしくはその組み合わせなどの、システム１０と連通するセンサから受信されたデータであってもよい。データストリーム１２は、シリアルデータストリームとしてシステム１０によって受信され、データは、時間的、語彙的、もしくは意味論的に重要視される順序などの、意味のある順序で受信される。代わりに、データストリーム１２は、パラレルにもしくはバラバラの順序で受信され、その後、例えば、インターネットを介して受信されたパケットを順序づけることによって、シリアルデータストリームへと変換されてもよい。幾つかの実施形態においては、データストリーム１２は、タームをシリアルに提示してもよいが、各タームを表すビットはパラレルに受信されてもよい。データストリーム１２については、システム１０に対して外部ソースから受信してもよいし、または、メモリデバイスに問い合わせ（インテロゲート）をし、格納されているデータからデータストリーム１２を形成することによって形成してもよい。
【００１７】
データストリーム１２におけるデータのタイプにより、異なるタイプの検索基準が設計者によって選択されてもよい。例えば、検索基準１６は、ウイルス定義ファイルであってもよい。ウイルスもしくは他のマルウェアは特徴づけられ、マルウェアの態様は、データストリーム１２がマルウェアを配信しそうか否かを示す検索基準を形成するために使用されてもよい。結果として生じる検索基準はサーバに格納され、クライアントシステムのオペレータは、システム１０へと検索基準をダウンロードするサービスに登録してもよい。検索基準１６は、異なるタイプのマルウェアが出現した場合に、サーバから定期的にアップデートされてもよい。検索基準は、ネットワークを介して受信される可能性のある望ましくないコンテンツ（例えば、（スパムとしてよく知られている）迷惑電子メールもしくはユーザが望まない他のコンテンツ）を特定するために使用されてもよい。
【００１８】
データストリーム１２は、システム１０で受信したデータに対して関心を持つ第三者によって検索されてもよい。例えば、データストリーム１２は、著作物に現れる文字列、音声系列、ビデオ系列に関して検索されてもよい。データストリーム１２は、刑事事件もしくは民事手続きに関係する発話、もしくは雇用主にとって関心のある発話に対して検索されてもよい。他の実施形態においては、特定のデータに対してデータストリームを監視することが、検索の一実施例となりうる。
【００１９】
検索基準１６は、例えば、ＣＰＵ２０もしくはパターン認識プロセッサ１４によってアドレス可能なメモリにおいて翻訳が可能であるデータストリーム１２中のパターンについても含むことができる。例えば、検索基準１６は、対応するスペイン語がメモリに格納されている英単語を各々特定してもよい。別の実施例においては、検索基準１６は、例えば、デコードされたバージョンのデータストリーム１２が使用可能であるＭＰ３、ＭＰＥＧ４、ＦＬＡＣ、Ｏｇｇ Ｖｏｒｂｉｓなどの、エンコードされたバージョンのデータストリーム１２を特定してもよいし、その逆を特定してもよい。
【００２０】
パターン認識プロセッサ１４は、ＣＰＵ２０と共に（単一のデバイスなどの）単一の構成部分に統合されたハードウェア装置であってもよいし、別個の構成部分として形成されてもよい。例えば、パターン認識プロセッサ１４は、別個の集積回路であってもよい。パターン認識プロセッサ１４は、“コプロセッサ”もしくは“パターン認識コプロセッサ”と称されてもよい。
【００２１】
図２は、パターン認識プロセッサ１４の一実施例を示す。パターン認識プロセッサ１４は、認識モジュール２２および集約モジュール２４を含んでもよい。認識モジュール２２は、受信したタームを検索タームと比較するように構成され、認識モジュール２２および集約モジュール２４の双方が、検索タームとタームが一致することが検索基準を満足するか否かを決定するように協働してもよい。
【００２２】
認識モジュール２２は、行デコーダ２８および複数のフィーチャセル３０を含んでもよい。各フィーチャセル３０は、検索タームを特定し、フィーチャセル３０のグループは、検索基準を形成する並列有限ステートマシンを形成してもよい。フィーチャセル３０のコンポーネントは、検索タームアレイ３２、検出アレイ３４およびアクティブ化ルーティングマトリクス３６を形成してもよい。検索タームアレイ３２は、複数の入力導体３７を含み、入力導体３７の各々は、行デコーダ２８と連通するフィーチャセル３０の各々を配列してもよい。
【００２３】
行デコーダ２８は、データストリーム１２のコンテンツに基づいて、複数の入力導体３７中から特定の導体を選択してもよい。例えば、行デコーダ２８は、１タームを表現する可能性がある受信したバイトの値に基づいて２５６行のうちの１つをアクティブ化する、１バイトから２５６への行デコーダであってもよい。００００００００の１バイトタームは、複数の入力導体３７のうち最も上の行に対応し、１１１１１１１１の１バイトタームは、複数の入力導体３７のうちの最も下の行に対応してもよい。したがって、異なる入力導体３７は、どのタームがデータストリーム１２から受信されるかにより選択されてもよい。異なるタームが受信されると、行デコーダ２８は、前のタームに対応する行を非アクティブ化し、新規タームに対応する行をアクティブ化してもよい。
【００２４】
検出アレイ３４は、検索基準を完全にもしくは部分的に満足することを示す信号を集約モジュール２４に対して出力する検出バス３８に結合してもよい。アクティブ化ルーティングマトリクス３６は、一致した検索基準における検索ターム数に基づいて、フィーチャセル３０を選択的にアクティブ化し、非アクティブ化してもよい。
【００２５】
集約モジュール２４は、ラッチマトリクス４０、集約ルーティングマトリクス４２、閾値論理マトリクス４４、論理積マトリクス４６、論理和マトリクス４８および初期化ルーティングマトリクス５０を含んでもよい。
【００２６】
ラッチマトリクス４０は、ある検索基準の一部を実装してもよい。例えば、幾つかの正規表現などの幾つかの検索基準は、最初の一つの一致もしくは一群の一致の発生のみを計数する。ラッチマトリクス４０は、一致が生じたかどうかを記録する複数のラッチを含んでもよい。ラッチは初期化の間にクリアされてもよく、動作中に定期的に再初期化されてもよく、その間に、検索基準が満足されたと判定され、もしくはそれ以上満足されない、すなわち、その検索基準が満足されるより前に前の検索タームを再度マッチングさせる必要があると判定される。
【００２７】
集約ルーティングマトリクス４２は、アクティブ化ルーティングマトリクス３６と類似した機能を果たしてもよい。集約ルーティングマトリクス４２は、検出バス３８上で一致を示す信号を受信し、閾値論理マトリクス４４に接続する異なるグループ論理ライン５３へと信号をルーティングしてもよい。集約ルーティングマトリクス４２は、検索基準が満足された、もしくはこれ以上満足されないと判定されたときに、検出アレイ３４の一部をリセットするため、検出アレイ３４へと初期化ルーティングマトリクス５０の出力をルーティングしてもよい。
【００２８】
閾値論理マトリクス４４は、数を数える（カウントアップする）、または数を逆に数える（カウントダウンする）ように構成された、例えば３２ビットカウンタなどの、複数のカウンタを含んでもよい。閾値論理マトリクス４４は、初期カウントでロードされ、認識モジュールによって信号通知された一致時のカウント値から、カウントアップもしくはカウントダウンしてもよい。例えば、閾値論理マトリクス４４は、ある長さの文字列の単語が現れた数を数えてもよい。
【００２９】
閾値論理マトリクス４４の出力は、論理積マトリクス４６に対する入力であってもよい。論理積マトリクス４６は、“積”の結果（例えば、ブール論理における“ＡＮＤ”関数）を選択的に生成してもよい。論理積マトリクス４６は、正方行列として実施され、出力される積の数は、閾値論理マトリクス４４からの入力ラインの数と同一であるか、または、論理積マトリクス４６は、出力とは異なる個数の入力を有してもよい。結果として生じる積の値は、論理和マトリクス４８に対する出力であってもよい。
【００３０】
論理和マトリクス４８は、和（例えば、ブール論理における“ＯＲ”関数）を選択的に生成してもよい。論理和マトリクス４８もまた、正方行列として実施されるか、出力とは異なる個数の入力を有してもよい。入力は論理積であるため、論理和マトリクス４８の出力は、論理的な積和（例えば、ブール論理での積和（ＳＯＰ）形）であってもよい。論理和マトリクス４８の出力は、初期化ルーティングマトリクス５０によって受信されてもよい。
【００３１】
初期化ルーティングマトリクス５０は、集約ルーティングマトリクス４２を介して、検出アレイ３４および集約モジュール２４の一部をリセットしてもよい。初期化ルーティングマトリクス５０もまた、正方行列として実施されるか、出力とは異なる個数の入力を有してもよい。初期化ルーティングマトリクス５０は、論理和マトリクス４８からの信号に応じて、例えば、検索基準が満足されたとき、または、検索基準がこれ以上満足されないと判定されたとき、パターン認識プロセッサ１４の他の部分を再初期化してもよい。
【００３２】
集約モジュール２４は、閾値論理マトリクス４４、集約ルーティングマトリクス４２、および論理和マトリクス４８の出力を受信する出力バッファ５１を含んでもよい。集約モジュール２４の出力は、出力バッファ５１から出力バス２６上のＣＰＵ２０（図１）へと伝送されてもよい。幾つかの実施形態においては、出力マルチプレクサは、これらのコンポーネント４２、４４および４８からの信号を多重化し、基準を満足したことを示す信号、もしくは検索タームの一致を示す信号をＣＰＵ２０（図１）へと出力してもよい。他の実施形態においては、パターン認識プロセッサ１４からのリザルトは、出力マルチプレクサを介して信号を伝送することなく報告されてもよいが、このことは、本明細書で記述されたあらゆる他の特性が省略される可能性がないことを示唆するものではない。例えば、閾値論理マトリクス４４、論理積マトリクス４６、論理和マトリクス４８もしくは初期化ルーティングマトリクス５０からの信号は、出力バス２６上をパラレルにＣＰＵへと伝送されてもよい。
【００３３】
図３は、検索タームセル５４として本明細書で称されるコンポーネントである、検索タームアレイ３２（図２）における単一のフィーチャセル３０の一部を示す。検索タームセル５４は、出力導体５６および複数のメモリセル５８を含んでもよい。各メモリセル５８は、出力導体５６および複数の入力導体３７の中の導体の１つの両方へと結合されてもよい。入力導体３７が選択されるのに応じて、各メモリセル５８は、格納された値を示す値を出力し、出力導体５６を介してデータを出力する。幾つかの実施形態においては、複数の入力導体３７は“ワード線”と称され、出力導体５６は“データ線”と称されてもよい。
【００３４】
メモリセル５８は、種々のタイプのメモリセルのうちのいずれを含んでもよい。例えば、メモリセル５８は、トランジスタとキャパシタを有するダイナミックランダムアクセスメモリ（ＤＲＡＭ）セルなどの揮発性メモリであってもよい。トランジスタのソースおよびドレインは、其々、キャパシタの極板および出力導体５６へと接続され、トランジスタのゲートは、入力導体３７のうちの１つへと接続されてもよい。揮発性メモリの別の実施例においては、各メモリセル５８は、スタティックランダムアクセスメモリ（ＳＲＡＭ）セルを含んでもよい。ＳＲＡＭセルは、入力導体３７の１つによって制御されるアクセストランジスタによって、出力導体５６へと選択的に結合された出力を有してもよい。メモリセル５８は、相変化メモリ（例えば、オボニックデバイス）、フラッシュメモリ、シリコン・酸化物・窒化物・酸化物・シリコン（ＳＯＮＯＳ）メモリ、磁気抵抗メモリもしくは他のタイプの不揮発性メモリなどの不揮発性メモリをも含んでもよい。メモリセル５８は、フリップフロップ、例えば、論理ゲートによって形成されたメモリセルをも含んでもよい。
【００３５】
図４および図５は、検索タームセル５４の動作の一実施例を示す。図４は、セルの検索タームに一致しないタームを受信する検索タームセル５４を示し、図５は、セルの検索タームに一致するタームを受信する検索タームセル５４を示す。
【００３６】
図４によって示されるように、検索タームセル５４は、メモリセル５８にデータを格納することによって、１つ以上のタームを検索するように構成されてもよい。メモリセル５８は、データストリーム１２が提示する可能性のあるタームを各々表し、例えば図３においては、各メモリセル５８は、単一の文字もしくは数字を表し、タームは、文字“ａ”で開始し、数字“９”で終了している。検索タームを満足するタームを表すメモリセル５８は、第一の値を格納するようにプログラムされ、検索タームを満足するタームを表していないメモリセル５８は、異なる値を格納するようにプログラムされてもよい。図示された実施例においては、検索タームセル５４は、文字“ｂ”を検索するように構成されている。“ｂ”を表すメモリセル５８は、１もしくは論理レベル・ハイを格納し、“ｂ”を表していないメモリセル５８は、０、もしくは論理レベル・ローを格納するようにプログラムされてもよい。
【００３７】
データストリーム１２からのタームを検索タームと比較するために、行デコーダ２８は、受信したタームを表すメモリセル５８に結合された入力導体３７を選択してもよい。図４においては、データストリーム１２は、小文字の“ｅ”を示す。このタームは、８ビットＡＳＣＩＩコード形式でデータストリーム１２によって示され、行デコーダ２８は、行アドレスとしてこのバイトを解釈し、導体６０に電圧を印加することによって、導体６０上に信号を出力する。
【００３８】
これに応じて、導体６０によって制御されるメモリセル５８は、メモリセル５８が格納するデータを示す信号を出力し、その信号は、出力導体５６によって伝送されてもよい。この場合には、文字“ｅ”は、検索タームセル５４によって特定されたタームのうちの１つではないため、検索タームとは一致せず、検索タームセル５４は０値を出力し、それは一致が見つからなかったことを示している。
【００３９】
図５においては、データストリーム１２は、文字“ｂ”を示す。この場合も同様に、行デコーダ２８は、このタームをアドレスとして解釈し、行デコーダ２８が、導体６２を選択することとしてもよい。これに応じて、文字“ｂ”を表すメモリセル５８は、格納された値を出力し、この場合には、それは１であり、一致を示している。
【００４０】
検索タームセル５４は、一度に１つを超えるタームを検索するように構成されてもよい。複数のメモリセル５８は、１を格納するようにプログラムされ、１つを超えるタームと一致する検索タームを特定する。例えば、小文字“ａ”および大文字“Ａ”を表すメモリセル５８は、１を格納するようにプログラムされ、検索タームセル５４は、いずれかのタームを検索してもよい。別の実施例においては、検索タームセル５４は、いかなる文字が受信された場合にも一致を出力するように構成されてもよい。全メモリセル５８は、１を格納するようにプログラムされてもよく、検索タームセル５４は、検索基準におけるワイルドカードタームとして機能してもよい。
【００４１】
図６〜図８は、例えば一単語など複数ターム検索基準に従って検索する認識モジュール２２を示す。具体的には、図６は、１単語の最初の文字を検出する認識モジュール２２を示し、図７は、第二の文字の検出を示し、図８は、最後の文字の検出を示す。
【００４２】
図６によって示されるように、認識モジュール２２は、単語“ｂｉｇ”を検索するように構成されてもよい。３個の隣接するフィーチャセル６３、６４および６６が図示されている。フィーチャセル６３は、文字“ｂ”を検出するように構成される。フィーチャセル６４は、文字“ｉ”を検出するように構成される。フィーチャセル６６は、文字“ｇ”を検出し、検索基準が満足されていることを示すように構成される。
【００４３】
図６は、検出アレイ３４のさらに詳細な構成をも示している。検出アレイ３４は、各フィーチャセル６３、６４および６６における検出セル６８を含んでもよい。各検出セル６８は、上述された各種メモリセル（例えば、フリップフロップ）のうちの１つ等のメモリセル７０を含んでいてもよく、メモリセル７０は、フィーチャセル６３、６４もしくは６６がアクティブか非アクティブかを示す。検出セル６８は、両方の検出セルがアクティブであり、関連する検索タームセル５４から一致を示す信号を受信したかどうかを示す信号を、アクティブ化ルーティングマトリクス３６へと出力するように構成されてもよい。非アクティブなフィーチャセル６３、６４および６６は、一致を無視してもよい。各検出セル６８は、メモリセル７０および出力導体５６からの入力を有する、ＡＮＤゲートを含んでもよい。ＡＮＤゲートの出力は、検出バス３８およびアクティブ化ルーティングマトリクス３６の両方へ、またはそのどちらか一方へとルーティングされてもよい。
【００４４】
そして、アクティブ化ルーティングマトリクス３６は、検出アレイ３４におけるメモリセル７０へと書き込むことによって、フィーチャセル６３、６４および６６を選択的にアクティブ化してもよい。アクティブ化ルーティングマトリクス３６は、検索基準ならびに次にどの検索タームがデータストリーム１２において検索されるかに従って、フィーチャセル６３、６４もしくは６６をアクティブ化してもよい。
【００４５】
図６においては、データストリーム１２は文字“ｂ”を示している。これに応じて、各フィーチャセル６３、６４および６６は、その出力導体５６上に信号を出力し、出力される信号は、文字“ｂ”を表す導体６２に接続されたメモリセル５８に格納された値を示していてもよい。検出セル５６は、その後、一致を示す信号を受信したかどうか、ならびに検出セル５６がアクティブかどうかを各々決定してもよい。フィーチャセル６３は文字“ｂ”を検出するように構成され、そのメモリセル７０によって示されるようにアクティブであるため、フィーチャセル６３における検出セル６８は、アクティブ化ルーティングマトリクス３６へと、検索基準のうちの第一の検索タームが一致したことを示す信号を出力してもよい。
【００４６】
図７によって示されるように、第一の検索タームが一致した後、アクティブ化ルーティングマトリクス３６は、検出セル６８におけるメモリセル７０へと１を書き込むことによって、次のフィーチャセル６４をアクティブ化してもよい。次のタームが第一の検索タームを満足する場合（例えば、タームの配列“ｂｂｉｇ”を受信した場合）アクティブ化ルーティングマトリクス３６は、フィーチャセル６３のアクティブ状態を維持してもよい。検索基準のうちの第一の検索タームは、データストリーム１２が検索される時間のうちの一部もしくは実質的に全期間の間、アクティブ状態に維持されてもよい。
【００４７】
図７においては、データストリーム１２は、認識モジュール２２に対して文字“ｉ”を与える。これに応じて、各フィーチャセル６３、６４および６６は、その出力導体５６上に信号を出力してもよく、出力される信号は、文字“ｉ”を表す導体７２へと接続されたメモリセル５８に格納された値を示す。検出セル５６は、その後、一致を示す信号を受信したかどうか、ならびに検出セル５６がアクティブかどうかを各々決定してもよい。フィーチャセル６４は文字“ｉ”を検出するように構成され、メモリセル７０によって示されるようにアクティブであるため、フィーチャセル６４における検出セル６８は、アクティブ化ルーティングマトリクス３６へと、検索基準の次の検索タームが一致したことを示す信号を出力してもよい。
【００４８】
続いて、図８に示されるように、アクティブ化ルーティングマトリクス３６は、フィーチャセル６６をアクティブ化してもよい。次のタームを評価する前に、フィーチャセル６４は非アクティブ化されてもよい。例えば、検出周期の間そのメモリセル７０をリセットすることでその検出セル６８がフィーチャセル６４を非アクティブ化してもよいし、または、アクティブ化ルーティングマトリクス３６がフィーチャセル６４を非アクティブ化してもよい。
【００４９】
図８においては、データストリーム１２は、行デコーダ２８に対してターム“ｇ”を与え、行デコーダ２８は、ターム“ｇ”を表す導体７４を選択する。これに応じて、各フィーチャセル６３、６４および６６は、その出力導体５６上に信号を出力してもよく、出力される信号は、文字“ｇ”を表す導体７４へと接続されたメモリセル５８に格納された値を示す。検出セル５６は、その後、一致を示す信号を受信したかどうか、ならびに検出セル５６がアクティブかどうかを各々決定してもよい。フィーチャセル６６は文字“ｇ”を検出するように構成され、そのメモリセル７０によって示されるようにアクティブであるため、フィーチャセル６６における検出セル６８は、アクティブ化ルーティングマトリクス３６へと、検索基準の最後の検索タームが一致したことを示す信号を出力してもよい。
【００５０】
検索基準の終わりもしくは検索基準の一部は、アクティブ化ルーティングマトリクス３６もしくは検出セル６８によって識別されてもよい。これらのコンポーネント３６もしくは６８は、そのフィーチャセル６３、６４もしくは６６が検索基準の最終検索タームか検索基準のコンポーネントかを規定しているか否かを示すメモリを含んでもよい。例えば、検索基準は、“ｃａｔｔｌｅ”という単語が二度現れる全ての文を特定してもよいし、認識モジュールは、１文内に出現する“ｃａｔｔｌｅ”の各々を示す信号を集約モジュールへと出力してもよい。集約モジュールは、“ｃａｔｔｌｅ”の出現を数えて、検索基準が満足されたかどうかを判定する。
【００５１】
フィーチャセル６３、６４もしくは６６は幾つかの条件下でアクティブ化されてもよい。フィーチャセル６３、６４もしくは６６は、“常にアクティブ”であってもよく、それは、全検索の間、もしくは実質的に全ての検索の間アクティブ状態のままであることを意味する。常にアクティブなフィーチャセル６３、６４もしくは６６の一実施例は、検索基準の第一のフィーチャセル、例えば、フィーチャセル６３である。
【００５２】
フィーチャセル６３、６４もしくは６６は、“要求されたときアクティブ”であってもよく、それは、幾つかの先行する条件が一致したとき、例えば、検索基準における先行する検索タームが一致したときに、フィーチャセル６３、６４もしくは６６がアクティブであることを意味する。一実施例は、図６−図８においては、フィーチャセル６３によって要求されたときにアクティブであるフィーチャセル６４と、フィーチャセル６４によって要求されたときにアクティブであるフィーチャセル６６とである。
【００５３】
フィーチャセル６３、６４もしくは６６は、“自己アクティブ化”されてもよく、それは、一度アクティブ化されればその検索タームが一致している限り、フィーチャセルが自身をアクティブ化することを意味する。例えば、いかなる数のディジットにでも一致した検索タームを有する自己アクティブ化されたフィーチャセルは、文字“ｘ”に到達するまで、シーケンス“１２３４５６ｘｙ”を通じてアクティブ化したままであってもよい。自己アクティブ化されたフィーチャセルの検索タームが一致するたび、自己アクティブ化されたフィーチャセルが、検索基準における次のフィーチャセルをアクティブ化してもよい。したがって、常にアクティブなフィーチャセルは、自己アクティブ化するフィーチャセルおよび要求されたときにアクティブなフィーチャセルから形成されてもよい。自己アクティブ化フィーチャセルは、１を格納するメモリセル５８の全てにプログラムされてもよく、各ターム後に要求されたときにアクティブなフィーチャセルを繰り返しアクティブ化してもよい。幾つかの実施形態においては、各フィーチャセル６３、６４および６６は、フィーチャセルが常にアクティブかどうかを識別する検出セル６８もしくはアクティブ化ルーティングマトリクス３６内にメモリセルを含んでもよく、これによって、単一のフィーチャセルから常にアクティブなフィーチャセルを形成する。
【００５４】
図９は、第一の検索基準７５および第二の検索基準７６に従ってパラレルに検索するように構成された認識モジュール２２の一実施例を示す。本実施例においては、第一の検索基準７５は、単語“ｂｉｇ”を特定し、第二の検索基準７６は、単語“ｃａｂ”を特定する。データストリーム１２からの現在のタームを示す信号は、ほぼ同時に各検索基準７５および７６内のフィーチャセルへと伝えられてもよい。各入力導体３７は、検索基準７５および７６の双方へと及んでいる。その結果、幾つかの実施形態においては、検索基準７５および７６の双方が、ほぼ同時に現在のタームを評価してもよい。このことによって、検索基準の評価が加速すると考えられる。他の実施形態は、より多くの検索基準をパラレルに評価するように構成されたより多くのフィーチャセルを含んでもよい。例えば、幾つかの実施形態は、パラレルに動作する１００、５００、１０００、５０００もしくは１００００以上のフィーチャセルを含んでもよい。これらのフィーチャセルは、ほぼ同時に何百もしくは何千もの検索基準を評価してもよい。
【００５５】
異なる個数の検索タームを有する検索基準は、より多くのもしくはより少ないフィーチャセルを検索基準へと割り当てることによって形成されてもよい。単純な検索基準がフィーチャセルの形式で消費するリソースは、複雑な検索基準よりも少ない可能性がある。このことによって、ほぼ同一の多数のコアを有し、複雑な検索基準を評価するように全て構成されたプロセッサと比較して、パターン認識プロセッサ１４（図２）のコストを低減すると考えられる。
【００５６】
図１０〜図１２は、より複雑な検索基準の一実施例とアクティブ化ルーティングマトリクス３６の特徴の双方を示す。アクティブ化ルーティングマトリクス３６は、複数のアクティブ化ルーティングセル７８を含んでもよく、アクティブ化ルーティングセル７８のグループは、各フィーチャセル６３、６４、６６、８０、８２、８４および８６に関連付けられてもよい。例えば、各フィーチャセルは、５、１０、２０、５０個のもしくはそれ以上のアクティブ化ルーティングセル７８を含んでもよい。アクティブ化ルーティングセル７８は、先行する検索タームが一致するとき、検索基準における次の検索タームへとアクティブ化信号を送信するように構成されてもよい。アクティブ化ルーティングセル７８は、隣接するフィーチャセルもしくは同一のフィーチャセル内の他のアクティブ化ルーティングセル７８へとアクティブ化信号をルーティングするように構成されてもよい。アクティブ化ルーティングセル７８は、どのフィーチャセルが検索基準における次の検索タームに対応するかを示すメモリを含んでもよい。
【００５７】
図１０〜図１２に示されるように、認識モジュール２２は、単一の単語を特定する基準よりも複雑な検索基準に従って検索するように構成されてもよい。例えば、認識モジュール２２は、接頭辞８８で開始し、２つの接尾辞９０もしくは９２のうちの１つで終了する単語を検索するように構成されてもよい。図示されている検索基準は、文字“ｃ”および“ｌ”の配列で開始し、文字配列“ａｐ”もしくは文字配列“ｏｕｄ”のいずれかで終了する単語を特定する。これは、複数の対象表現、例えば、単語“ｃｌａｐ”もしくは単語“ｃｌｏｕｄ”を特定する検索基準の一実施例である。
【００５８】
図１０においては、データストリーム１２は、認識モジュール２２に対して文字“ｃ”を与え、フィーチャセル６３は両方アクティブであり、一致を検出する。これに応じて、アクティブ化ルーティングマトリクス３６は、次のフィーチャセル６４をアクティブ化してもよい。アクティブ化ルーティングマトリクス３６は、フィーチャセル６３が検索基準における第一の検索タームであるとき、フィーチャセル６３のアクティブ状態を維持してもよい。
【００５９】
図１１においては、データストリーム１２は、文字“ｌ”を与える。フィーチャセル６４は、一致を検出し、アクティブである。これに応じて、アクティブ化ルーティングマトリクス３６は、第一の接尾辞９０の第一のフィーチャセル６６および第二の接尾辞９２の第一のフィーチャセル８２の双方へとアクティブ化信号を伝送してもよい。他の実施例においては、より多くの接尾辞がアクティブ化されてもよく、または、複数の接頭辞が１つ以上の接尾辞をアクティブ化してもよい。
【００６０】
続いて、図１２に示されるように、データストリーム１２は、認識モジュール２２に対して文字“ｏ”を与える。第二の接尾辞９２のフィーチャセル８２は、一致を検出し、アクティブである。これに応じて、アクティブ化ルーティングマトリクス３６は、第二の接尾辞９２の次のフィーチャセル８４をアクティブ化してもよい。フィーチャセル６６が非アクティブになることが許可されると、第一の接尾辞９０の検索は終了してもよい。図１０〜図１２に示されたステップは、文字“ｕ”および“ｄ”を通じて継続してもよいし、または、接頭辞８８が一致する次の機会まで、検索は終了してもよい。
【００６１】
パターン認識プロセッサ１４の実施形態は、フィーチャセル３０の（ステートマシンの要素（ＳＭＥ’ｓ）とも呼ばれる）任意の配列を含んでもよい。一実施形態では、図１３に示すように、フィーチャセル３０は行９４に配列されてもよく、各行９４は１つ以上のフィーチャセル３０を含んでもよい。行９４はブロック９６にグループ化されてもよく、各ブロック９６は１つ以上の行９４を含む。パターン認識プロセッサ１４は、上記のパターン検索を実装するための任意の数のブロック９６を含んでもよい。
【００６２】
上記のように、フィーチャセル３０のグループは、１つの検索基準または複数の検索基準を特定する並列有限ステートマシンを形成してもよい。従って、各行９４及びブロック９６は、１つ以上の検索基準に従ってデータストリームを検索するために、プログラムされ、かつ用いられてもよい。データストリーム１２が検索基準に対して検索されるように、上記のパターン検索は、１つ以上のブロック９６を介して連続的に進行してもよい。各アクティブなブロック９６におけるデータストリームのタームの評価は、検索周期中に実行されてもよい。検索周期は、パターン検索周期と呼ばれる（文字周期とも呼ばれる）パターン認識プロセッサ１４のより広い周期の一部であってもよい。各パターン検索周期は、パターン認識プロセッサ１４の複数の内部クロック周期を含んでもよい。パターン検索周期は、例えば、以下のイベントを１つ以上含んでもよい：すなわち、データストリーム１２から１バイトを入力すること、そのバイトを復号化して対応する入力導体３７を駆動すること、プロセッサ１４のメモリ（例えば、メモリセル５８）を読み出すこと、フィーチャセル３０がアクティブかどうか及びデータ読み出しがそれぞれのフィーチャセルに対して一致を示すかどうかを判断すること、一致するフィーチャセルのアクティブ化ルーティングマトリクス３６への出力を駆動すること、及び／または、アクティブ化ルーティングマトリクス３６から各フィーチャセル３０に信号を伝播すること、を含んでもよい。パターン検索周期は、パターン認識プロセッサ１４の動作中に実行される他のイベントを更に含んでもよい。
【００６３】
パターン検索周期中においては、ブロック９６は、パターン検索周期のいくつかのイベントを含むメモリアクセス周期中にアクセスされてもよい。例えば、メモリアクセス周期は、（フィーチャセル３０に“一致”を示すことを提供するため）プロセッサ１４のメモリを読み出すこと、プログラミングをテストする目的あるいはプロセッサ１４のメモリを検査する目的のためのメモリ読み出しまたは書き込み、及び／または、メモリリフレッシュ周期を含んでもよい。メモリリフレッシュ周期は、ブロックのフィーチャセル３０をリフレッシュしてもよい。一実施形態では、パターン認識プロセッサ１４のメモリアクセス周期は、パターン検索周期の他のイベントをインターリーブしてもよい。
【００６４】
このような実施形態では、パターン認識プロセッサ１４は、パターン検索を実行しているとき、所定のパターン検索周期中にフィーチャセルの“アクティブ”ブロックにアクセスしてもよい。“アクティブ”ブロックとは、所定のパターン検索周期中にそのブロックにプログラムされた検索タームに応じて、データストリームを現在検索しているか、またはこれから検索するブロックを指す。そして、“非アクティブ”ブロックとは、所定のパターン検索周期中にデータストリームを現在検索していないか、またはこれから検索することのないブロックを指す。
【００６５】
動作中に、パターン認識プロセッサ１４は、各メモリアクセス周期中にアクティブブロックのフィーチャセル３０またはフィーチャセル３０のグループにアクセスする。一実施形態では、各メモリアクセス周期中に“非アクティブ”ブロックにアクセスすることによって生じる消費電力を低減するために、各ブロック９６は、電源制御回路９８に結合されてもよい。電源制御回路９８は、各ブロック９６のロジック（または各ブロック９６とは別のロジック）の一部であってもよい。電源制御回路９８は、パターン検索の前、後、または途中において、各ブロック９６のアクティブ化（ブロックを“アクティブ”にセットすること）または非アクティブ化（ブロックを“非アクティブ”にセットすること）を制御してもよい。電源制御回路９８は、ブロック９６のそれぞれの“恒久的な”非アクティブ化を更に制御してもよく、恒久的な非アクティブ化とは、ブロックは非アクティブであるとともにリフレッシュ周期中にリフレッシュされないように、ブロック９６を完全に無効（使用不可）にすることを指す。
【００６６】
いくつかの実施形態では、電源制御回路９８は、以下の機能を含んでもよい：すなわち、検索対象のデータストリームのアイデンティティ（ＩＤ）に基づいてブロックをアクティブ化または（恒久的にまたは一時的に）非アクティブ化する機能；パターン検索がそのブロックに進行する前（例えば、パターン検索が後続のパターン検索周期上でそのブロックにアクセスするとき）にブロックを自動的にアクティブ化する機能；パターン検索がそのブロック内でもはやアクティブでないとき（例えば、ブロックがいずれの後続のパターン検索周期上でも用いられないとき）にブロックを自動的に非アクティブ化する機能；及び、そのブロックがパターン認識プロセッサ１４にプログラムされたいずれの有限ステートマシンにおいても用いられない場合にブロックを完全に無効にする機能を含んでもよい。
【００６７】
図１４Ａ及び図１４Ｂは、本発明の実施形態に係る、電源制御回路９８Ａ〜９８Ｄの電源制御機能を用いるパターン認識プロセッサ１４のブロック９６Ａ〜９６Ｄの動作を示す。再度図１４Ａ及び図１４Ｂに図示しているように、各ブロック９６Ａ〜９６Ｄは、ブロックを選択的にアクティブ化または非アクティブ化（一時的にまたは恒久的に）し得るそれぞれの電源制御回路９８Ａ〜９８Ｄに結合されている。図１４Ａに図示するように、パターン検索中に、各ブロック９６は、異なる状態を有していてもよい。第一のブロック９６Ａは、このブロックがパターン認識プロセッサ１４の動作中に用いられないかまたはリフレッシュさえされないように、無効にされてもよい。例えば、製造歩留まりの“節約”から、または、現在の検索基準によって使用されないブロックからのうち、いずれか一方から“余分な”ブロックはいずれも、プロセッサ１４のステートマシンとしてプログラムされなくてもよい。その結果、例えばブロック９６Ａ等のようなブロックは、対応する電源制御回路９８Ａによって無効にされてもよい。無効にされた後、ブロック９６Ａは、無効であるとともに、メモリアクセス周期のリフレッシュ中にリフレッシュされない。
【００６８】
前述のように、電源制御回路９８は、検索対象のデータストリーム（例えば、ＨＴＴＰ、ＦＴＰ、ＳＭＴＰ、ＤＮＳ等）のアイデンティティに基づいてブロックをアクティブ化または非アクティブ化する機能を更に含んでもよい。図１４Ａに図示するパターン検索中に、第二のブロック９６Ｂは、検索対象のデータストリームのアイデンティティに基づいて非アクティブ化されてもよい。この実施例では、各ブロックのプログラムされたステートマシンは、特定の種類のプロトコル、言語、または他のデータ識別子のパターン検索のためにプログラムされてもよい。このようにして識別されるデータは、これらに限定されるものではないが、データ転送プロトコル（例えば、ＨＴＴＰ、ＦＴＰ、ＳＭＴＰ、ＤＮＳ等）自然言語、遺伝的識別子等を含んでもよい。例えば、インターネットセキュリティを対象とする一実施形態では、ブロック９６Ｂのステートマシンは、ＦＴＰデータのパターンを検索するためにプログラムされてもよい。ステートマシン９６Ｃ及び９６Ｄは、ＨＴＴＰデータのパターンを検索するためにプログラムされてもよい。一旦着信パケットプロトコルが（例えばパケットヘッダに基づいて）識別されると、ＨＴＴＰデータを検索するためにプログラムされたそれらのステートマシンのみが用いられてもよい。こうして、ブロック９６Ｂは、ＨＴＴＰパケットが電源制御回路９８Ｂによって処理されている時間中は、非アクティブ化されてもよい。ブロック９６Ｂは、パターン検索周期に用いられないように、非アクティブ化されてもよい。しかしながら、ブロック９６Ｂは、恒久的に無効化されるものではなく、データストリームがＦＴＰデータとして識別されるとき等にはなお、リフレッシュして他のパターン検索の使用に利用可能である。データストリームの種類が変化する場合には、ブロック９６Ｂは、対応する電源制御回路９８Ｂによってアクティブ化されてもよい。更に以下に記載するように、ブロックは、データストリーム１２のアイデンティティに基づいて異なる“パーティション”にグループ化されてもよい。パーティションとは、特定の種類のデータを検索するためにプログラムされたブロックのグループを指す。例えば、ブロック９６Ｂは、他のブロックとともに、ＦＴＰデータを検索するためのパーティションにグループ化されてもよい。同様に、ブロック９６Ｃ及び９６Ｄは、他のブロックとともに、ＨＴＴＰデータを検索するパーティションにグループ化されてもよい。パーティショングループ化は、ブロックのグループをデータストリーム１２に基づいてアクティブ化または非アクティブ化することを可能にする。
【００６９】
更に、上記の電源制御回路は、パターン検索がそのブロックに進行する前にブロックを非アクティブ化したり、パターン検索がもはやそのブロックにおいてはアクティブでないときにブロックを非アクティブ化したりしてもよい。図１４Ａ及び図１４Ｂのブロック９６Ｃ及び９６Ｄは、ブロック９６Ｃからブロック９６Ｄへと進むパターン検索に基づくアクティブ化及び非アクティブ化を示す。図１４Ａは、第一のパターン検索周期中等のブロック９６Ｃにおいて進行中のパターン検索を示す。パターン検索では、ブロック９６Ｃのステートマシン（フィーチャセル３０のグループ）にプログラムされた検索基準に従ってデータストリームのタームが評価されてもよい。ブロック９６Ｃは、パターン検索の間は目下使用中であるため、“アクティブ”である。図１４Ａに図示するように、ブロック９６Ｄは、メモリアクセス周期中にはアクセスされないよう非アクティブ化して、プロセッサ１４の消費電力を低減させてもよい。“始動”ターム（例えば、パターンの開始等）がブロック９６Ｄにプログラムされない場合、パターン検索シーケンスがブロック９６Ｄに進行するまで、ブロック９６Ｄは非アクティブ化されてもよい。
【００７０】
図１４Ｂは、パターン検索がブロック９６Ｃからブロック９６Ｄへと進むときの、パターン認識プロセッサ１４の後続のパターン検索周期を示す。パターン検索は、データストリームがパターンに対して検索されるように、ブロック９６Ｃからブロック９６Ｄへと“クロスオーバー”してもよい。“クロスオーバー”とは、パターン検索が順次進行している間に、第一のブロックから第二のブロックへと進行することを指す。パターン検索は、もはやブロック９６Ｃではアクティブではなく、現在は、ブロック９６Ｄでアクティブである。ブロック９６Ｃが非アクティブとして検出されると、別のパターン検索がブロック９６Ｃに進行するまで、電力制御回路９６Ｃは、ブロック９６Ｃを非アクティブ化してもよい。電力制御回路９６Ｄは、パターン検索がブロック９６Ｄに進行する前にブロック９６Ｄをアクティブ化してもよい。このように、ブロック９６Ｄは、予測的な“必要に応じた”基準に基づいてアクティブ化される。以下に更に記載されるように、電源制御回路９８Ｄ及び／またはブロック９６Ｄは、パターン検索がブロック９６Ｄに到達して次のパターン検索周期前にブロック９６Ｄをアクティブ化しそうなときを検出してもよい。このように、パターン検索シーケンスは、フィーチャセルの各ブロックを介して継続するにつれて、それらが必要とされるよう、非アクティブなブロックを非アクティブ化し、これから予定されるブロックをアクティブ化してもよい。
【００７１】
更に、他の実施形態は、パターン検索がそのブロックを介して進行する前、途中、または後に、ブロックのアクティブ化または非アクティブ化に影響を与える特別な検索基準を含んでもよい。このような特別な検索基準は、アスタリスク（＊）、疑問符（？）、及び／または、プラス記号（＋）等の正規表現（ＲｅｇＥｘ）演算子を含んでもよい。例えば、データストリームのタームの終わりまで全てのどんなものとでも一致することを指定するアスタリスク（“＊”）演算子は、一度アクティブ化されたブロックがデータストリームのタームの終わりまで常にアクティブであることを指定するアクティブ化コマンドによって実装されてもよい。任意の特別な検索基準は、それらの特別な検索基準に好適なアクティブ化または非アクティブ化スキームを指定することによって上述の電源制御技術に実装されてもよい。
【００７２】
パターン認識プロセッサ１４の各ブロックは、上記の電源制御技術を提供するために、信号及び／またはコンフィギュレーション・ビットを含んでもよい。例えば、電源制御回路に加えて、各ブロックは、行が“アクティブ”なフィーチャセルを含むことを示す信号、及び／または、ブロックがパターン検索シーケンスにおいて次のフィーチャセルを含むことを示す信号を生成するロジックを含んでもよい。更に、ブロックは、様々な制御及びコンフィギュレーション信号を送信または受信するように構成されたロジックを含んでもよい。これらの制御及びコンフィギュレーション信号は、以下を含んでもよい：すなわち、ブロックが現在のデータストリームに使用されていることを示すこと（ブロックのアクティブ／非アクティブ）；始動タームを示すこと；上述の特別な検索基準用等の一時アクティブ化／常時アクティブ化信号；リフレッシュ信号；及び、ブロック・フロー・イネーブル信号を含んでもよい。
【００７３】
上記の選択的アクティブ化及び非アクティブ化スキームは、特定のブロックが無効かどうかを示してもよく（例えば、ブロックがいつか使用される場合）、ブロックが現在使用されるべきグループの一部かどうかを示してもよく、ブロックがパターンの“開始”のフィーチャセルを含むかどうかを示してもよく、パターン検索シーケンス中に必要なブロックをアクティブ化してもよい。いくつかの実施形態では、ブロックのウェイクアップスキームを実装するために、ブロック９６は、ブロックのステータスを示すためのコンフィギュレーション・ビットまたは他のデータ・インディケータを含んでもよい。これらのビットは、ここで説明した様々な制御信号によって変更されてもよい。例えば、ブロック９６は、そのブロックが無効であるか否かを示す１以上のコンフィギュレーション・ビットを含んでもよい。前述したように、いくつかの実施形態では、各パーティションが特定の種類のデータストリームのために使用されるべきブロックを含むように、ブロック９６をパーティションにグループ化してもよい。このような実施形態では、各ブロックは、それぞれのブロックが属するパーティションを示すための１以上のコンフィギュレーション・ビットを含んでもよい。更に、各ブロック９６は、パターンの“開始”（例えば、始まり）を含むフィーチャセル３０をブロックが含むか否かを示す１以上のコンフィギュレーション・ビットを含んでもよい。このようなブロックは、そのパーティションを用いる所定のパターン検索シーケンス中、常にアクティブであってもよい。更に、このような実施形態では、パーティション内の全ての他のブロックは、上記のように選択的にアクティブ化及び非アクティブ化されてもよい。
【００７４】
図１５は、本発明の実施形態に係る、電源制御回路９８の論理回路図を示す。電源制御回路９８は、ブロックがアクティブであるべきとき、一度アクティブ化されたブロックが一時的に非アクティブ化されるべきとき、及び、ブロックが恒久的に非アクティブ化（すなわち、リフレッシュ周期要求に応答しないように無効に）されるべきときを決定してもよい。
【００７５】
電源制御回路９８は、“ブロック・スティル・アクティブ・センス（Ｂｌｏｃｋ  Ｓｔｉｌｌ  Ａｃｔｉｖｅ  Ｓｅｎｓｅ）”コンポーネント１００、ＡＮＤゲート１０２、ＯＲゲート１０４、再トリガ可能非アクティブ化タイマー１０６、及び、“ブロック＿アクティブ（Ｂｌｏｃｋ＿Ａｃｔｉｖｅ）”信号を出力するＯＲゲート１０８を含んでもよい。電源制御回路９８は、ブロック・ウェイクアップ・スキーム１１０から“ブロック＿アクティブ化（Ｂｌｏｃｋ＿Ａｃｔｉｖａｔｅ）”信号を受信してもよい。ブロック・ウェイクアップ・スキームは、例えば、特定のブロックが無効かどうかを示してもよく（例えば、ブロックが使用される都度）、ブロックが現在使用されるべきグループの一部かどうかを示してもよく、ブロックがパターンの“開始”のフィーチャセルを含むかどうかを示してもよく、パターン検索シーケンス中に必要に応じてブロックをアクティブ化してもよい。ブロック・スティル・アクティブ・センス・コンポーネント１００は、ブロックが依然アクティブかどうかを示すブロックからの信号を、（このような検出によって提供される分析に応じて）受信及びまたは検出してもよい。例えば、ブロック・スティル・アクティブ・センス・コンポーネントは、アクティブなフィーチャセル３０、行９４、またはブロック９６の他のアクティビティを受信または検出し、例えば、ブロックの行が依然アクティブであることを示す行＿アクティブ（Ｒｏｗ＿Ａｃｔｉｖｅ）信号等を出力してもよい。
【００７６】
一実施形態では、電力制御回路は、電源制御回路は、以下の表１に記載されるように、５つの信号によって制御され、構成されてもよい。
【表１】
0005923449.tif 000002
【００７７】
ブロック＿オン／オフ（Ｂｌｏｃｋ＿Ｏｎ／Ｏｆｆ）信号、開始＿ＳＭＥ（Ｓｔａｒｔ＿ＳＭＥ）信号、及び不定＿ＳＭＥ（Ｉｎｄｅｆｉｎｉｔｅ_ＳＭＥ）信号の状態は、パターン認識プロセッサ１４を動作するソフトウェアコンパイラを介して決定されてもよく、パターン認識プロセッサ１４の他のロジックコンポーネントを介して生成されてもよい。例えば、ブロック＿オン／オフ信号、開始＿ＳＭＥ信号、及び不定＿ＳＭＥ信号は、プログラミング及び制御ロジック１１２から生成されてもよい。ソフトウェアコンパイラは、パターン認識プロセッサにプログラムされた異なる有限ステートマシンの配置及びルーティングに基づいて電源設定を指定してもよい。これらの信号は、プロセッサ１４にプログラムされた検索基準の一部として設定されてもよく、動作中に変更されなくてもよい。
【００７８】
ブロック＿オン／オフは、上記のように、パターン検索の進行中にブロックをアクティブ化または非アクティブ化するために用いられてもよい。フロー＿イネーブル（Ｆｌｏｗ＿Ｅｎａｂｌｅ）信号もまた、コンパイラによって決定されてもよく、データを処理する有限ステートマシンに応じて、プロセッサ１４の動作中に変更されてもよい。ソフトウェアコンパイラは、どの有限ステートマシンが必要とされるか（そして、従って、どのブロックが必要とされるか）を決定してもよく、かつ、フロー＿イネーブル信号がデータストリームのためのブロックをアクティブ化または非アクティブ化するように設定してもよい。フロー＿イネーブル信号は、データストリームの識別子を解釈でき、適切なフロー＿イネーブル信号を提供することができるフロー管理ロジック１１４から生成されてもよい。例えば、上述のように、有限ステートマシンのいくつかのブロックは、その目的のためにプログラムされていない他のブロックが非アクティブ化され得るように、特定のプロトコルまたは言語で使用するためにプログラムされてもよい。
【００７９】
リフレッシュ＿周期（Ｒｅｆｒｅｓｈ_Ｃｙｃｌｅ）信号は、パターン認識プロセッサ１４の動作中にフィーチャセル３０をリフレッシュするリフレッシュ管理ロジック１１６によって生成されてもよい。リフレッシュ＿周期信号のアサーションは、パターン検索またはパターン認識プロセッサ１４の他の動作とは独立して設定されてもよい。上述の図１４Ａ及び図１４Ｂで説明したブロック９６Ａ等のように、ブロックがパターン認識プロセッサ１４の動作中に決して使用されることがない場合、リフレッシュ＿周期信号はそのブロックに対して無効にされてもよく、このようにして、メモリアクセス周期中にそのブロックの任意のリフレッシュ周期を無効にするとともに、そのリフレッシュ動作のための消費電力を排除することができる。
【００８０】
リフレッシュ＿周期、ブロック＿オン／オフ信号、開始＿ＳＭＥ信号、及び、フロー＿イネーブル信号は、ＡＮＤゲート１０２または他のロジックコンポーネントを通過されてもよい。例えば、リフレッシュ＿周期信号及びブロック＿オン／オフ信号は、リフレッシュ＿アクセス（Ｒｅｆｒｅｓｈ＿Ａｃｃｅｓｓ）信号をＯＲゲート１０８に出力する第一のＡＮＤゲート１０２Ａに提供されてもよく、リフレッシュ＿アクセス信号は、ブロックがリフレッシュされることを示す。ブロック＿オン／オフ信号及び開始＿ＳＭＥ信号は、 “強制＿ブロック＿イネーブル（Ｆｏｒｃｅ_Ｂｌｏｃｋ_Ｅｎａｂｌｅ）”信号をＯＲゲート１０８に出力する第二のＡＮＤゲート１０２Ｂに提供されてもよく、強制＿ブロック＿イネーブル信号は、ブロックが、始動検索タームを含み、アクティブであるべきことを示す。ブロック＿アクティブ化信号及びフロー＿イネーブル信号は、条件付＿ブロック＿イネーブル＿開始（Ｃｏｎｄｉｔｉｏｎａｌ_Ｂｌｏｃｋ Ｅｎａｂｌｅ_Ｓｔａｒｔ）信号を再トリガ可能非アクティブ化タイマー１０６に出力する第三のＡＮＤゲート１０２Ｂに提供されてもよい。
【００８１】
更に、ウェイクアップスキーム１１０からのブロック＿アクティブ化信号、プログラミング及び制御ロジック１１４からの不定＿ＳＭＥ信号、及び、ブロック・スティル・アクティブ・センス・コンポーネント１１２からの行＿アクティブ信号は、アクティビティ＿再トリガ（Ａｃｔｉｖｉｔｙ_Ｒｅ−Ｔｒｉｇｇｅｒ）信号を再トリガ可能非アクティブ化タイマー１０６に出力する第二のＯＲゲート１０４に提供されてもよい。
【００８２】
再トリガ可能非アクティブ化タイマー１０６は、電源制御回路９８が、ブロックを非アクティブ化する前にパターン認識プロセッサ１４のアーキテクチャで遅延時間を考慮することができるようにする。再トリガ可能非アクティブ化タイマー１０６は、条件付＿ブロック＿イネーブル＿開始信号及びアクティビティ＿再トリガ信号を受信してもよく、かつ、それらの信号に基づいて遅延を提供してもよい。再トリガ可能非アクティブ化タイマー１０６は、時間＿ブロック＿イネーブル（Ｔｉｍｅ_Ｂｌｏｃｋ_Ｅｎａｂｌｅ）信号をＯＲゲート１０８に出力してもよい。
【００８３】
再トリガ可能非アクティブ化タイマー１０６は、指定した持続時間中、ブロックが非アクティブ化しないようにしてもよい。持続時間は、時間または周期の単位で決定されてもよい。パターン認識プロセッサ１４の任意の所定のアーキテクチャに対し、ブロックのフィーチャセルのアクティブ／非アクティブ状態の検出は、そのアーキテクチャによって提供される周期分解に制限されてもよい。例えば、４つのパターン検索周期の分解でブロックのアクティブなフィーチャセルを検出する機能を有する実施形態では、最後の“アクティブ”状態が検出されてから、４つのパターン検索周期が生じた後にのみ、再トリガ可能非アクティブ化タイマー１０６がそのブロックの非アクティブ化を許可してもよい。
【００８４】
ブロックがパターン検索中にアクセスされるたびに、再トリガ可能非アクティブ化タイマー１０６は、ブロックのパターン検索の完了を許可するようにリセットされてもよい。上述の実施例では、ブロックが再びアクティブになった後、ブロックが非アクティブ化され得る前に４つのパターン検索周期の別な遅延が提供されるように、再トリガ可能非アクティブ化タイマー１０６がリセットされてもよい。いくつかの実施形態では、再トリガ可能非アクティブ化タイマー１０６はまた、ブロックがアクティブのままであるべきかどうか決定するために用いられる信号の生成を引き起こす遅延を考慮するように構成されてもよい。例えば、再トリガ可能非アクティブ化タイマー１０６が補償するために遅延を追加するように構成され得るように、行＿アクティブ信号は、生成及び伝播することが比較的遅くなってもよい。この方法では、ブロックのステータスの検出の任意の分解は、所期の時間遅延及びリセットを再トリガ可能非アクティブ化タイマー１０６に導入することによって考慮されてもよい。
【００８５】
更に、再トリガ可能非アクティブ化タイマー１０６は、パターン認識プロセッサ１４の動作を害する虞があるブロックの早まった非アクティブ化を可能にすることとは反対に、パターン検索中に必要とされるときにブロックがアクティブであることを保証するように構成されてもよいことが理解されるべきである。対照的に、ブロックのアクティブ化時間は、ブロックが次のパターン検索周期の時間にアクティブであることを保証するのに十分であってもよい。一実施形態では、パターン認識プロセッサ１４は、上記の図１４Ｂで説明したように、パターン検索を第一のブロックからフィーチャセルの別なブロックにクロスオーバーさせることができる信号を含んでもよい。
【００８６】
受信した信号に基づいて、再トリガ可能非アクティブ化タイマー１０６は、タイマー＿ブロック＿イネーブル（Ｔｉｍｅｒ_Ｂｌｏｃｋ_Ｅｎａｂｌｅ）信号をＯＲゲート１０８に出力する。このように、図１５に示すように、再トリガ可能非アクティブ化タイマー１０６は、フロー管理ロジック、ウェイクアップロジック、プログラミング及びコンフィギュレーション・ロジック、及びブロック・スティル・アクティブ・センス・コンポーネントから受信した信号に基づいてトリガまたは“再トリガ”してもよい。
【００８７】
電源制御回路の出力は、リフレッシュ＿アクセス信号、強制＿ブロック＿イネーブル＿ＢＸ（Ｆｏｒｃｅ_Ｂｌｏｃｋ_Ｅｎａｂｌｅ＿ＢＸ）信号、またはタイマー＿ブロック＿イネーブル信号に基づいて信号をアクティブ化または非アクティブ化するブロック＿アクティブ信号である。このように、様々な制御信号に基づいて、ブロック＿アクティブ信号は、ブロックがリフレッシュされるべきか、データストリームに有効であるか、データストリームにアクティブかまたは非アクティブか、“一度アクティブ化され、常にアクティブ”な検索基準の一部であるか等に基づいて、ブロックをアクティブ化または非アクティブ化してもよい。
【００８８】
上述のように、電源制御回路９８によって制御されるブロックは、パターン検索シーケンスがフィーチャセルの（クロスオーバーしている）そのブロックに進行するにしたがって、次のパターン検索の時間にアクティブ化されるべきである。“非パイプライン化アーキテクチャ”を有するいくつかの実施形態では、ブロックのアクティブ化は、パターン検索が次のブロックにクロスオーバーするときを示す同じクロスオーバー信号に依存してもよい。しかしながら、パターン認識プロセッサ１４の“パイプライン化”アーキテクチャ等の他の実施形態では、パターン検索周囲のイベントは、メモリアクセス周期によりインターリーブされる。このような実施形態では、ブロックの現在のパターン検索の完了前に、次のメモリアクセス周期が開始する。これらの実施形態では、パターン検索シーケンスの次のブロックが次のパターン検索及びそのブロックのクロスオーバーの時間に確実にアクティブ化されているように、予測アクティブ化スキームを用いてもよい。
【００８９】
図１６は、本発明の実施形態に係る、パターン認識プロセッサ１４の予測アクティブ化スキームを示す図である。予測アクティブ化スキームは、現在のブロックのパターン検索が特定の状態に進行するときはいつでもパターン検索シーケンスの次のブロックに送信される“早期アクティブ”信号を生成してもよい。
【００９０】
図１６は、第一のブロック１１８Ａ及び第二のブロック１１８Ｂ間のパターン検索を示す。図１６に示すように、第一のブロック１１８Ａは、検索基準に応じてデータストリームを検索するように構成されるブロック１１８Ａのプログラムされたステートマシン（フィーチャセルのグループ）を含んでもよい。第一のパターン検索周期中、例えば、ブロック１１８Ａはアクティブであってもよく、ブロック１１８Ｂは非アクティブでもよい。パターン検索がブロック１１８Ａを通じて進行するにつれ、ブロックの状態は、異なる検索タームまたは基準（例えば、文字）がブロック１１８Ａで一致するように、状態Ａから、状態Ｂに、及び状態Ｃに変化してもよい。（状態Ｃによって示されるように）ブロック１１８Ａの処理が完了すると、パターン検索が次のパターン検索周期のためにブロック１１８Ｂまでクロスオーバーすることを示すために、“クロスオーバー”信号が信号生成ロジック１２０によって生成されるとともに、ブロック１１８Ａからブロック１１８Ｂに提供されてもよい。
【００９１】
ブロック１１８Ａの処理中に、“アクティブ化＿ネクスト＿ブロック（ａｃｔｉｖａｔｅ_ｎｅｘｔ_ｂｌｏｃｋ）”信号が、第二の信号生成ロジック１２２によって生成されて、ブロック１１８Ａの別な状態に基づいてブロック１１８Ａからブロック１１８Ｂに提供されてもよい。例えば、図１６に示すように、アクティブ化＿ネクスト＿ブロック信号は、ブロック１１８Ｂがパターン検索中に状態Ｂに進行するときに生成されてもよい。このように、アクティブ化＿ネクスト＿ブロック信号は、クロスオーバー信号よりも早期の状態にあるときに生成されてもよい。ブロック１１８Ａからのアクティブ化＿ネクスト＿ブロック信号は、ブロック１１８Ｂのブロック・アクティブ化ロジック１２４によって受信されてもよい。ブロック・アクティブ化ロジック１２２は、受信したアクティブ化＿ネクスト＿ブロック信号に応答してブロック１１８Ｂをアクティブ化してもよい。ブロック１１８Ｂは、その後、パターン検索がブロック１１８Ｂまでクロスオーバーするときに（例えば、ブロック１１８Ｂがブロック１１８Ａから提供されたクロスオーバー信号を受信するときに）、応答する準備がなされてもよい。信号生成ロジック１２０及び信号生成ロジック１２２は、両方の信号を生成するために、ブロック１１８Ａの異なる状態で応答するようにプログラムされた同一のロジックであってもよい。
【００９２】
アクティブ化＿ネクスト＿ブロック信号は、ブロック１１８Ｂがパターン検索のクロスオーバーのための時間にアクティブ化されることを保証するために、ブロック１１８Ａの任意の状態において生成されてもよい。例えば、アクティブ化＿ネクスト＿ブロック信号は、パターン認識プロセッサ１４のアーキテクチャに応じて、状態Ａで、またはブロック１１８Ａの任意のより早期の状態で生成されてもよい。必要とされるより早期にブロック１１８Ｂをアクティブ化することは、消費電力を僅かに増加させる場合があるが、パターン検索シーケンスに影響を与えないことが理解されるべきである。アクティブ化＿ネクスト＿ブロック信号を受信した後、受信ブロック１１８Ｂは、全てのメモリ周期への応答を開始してもよい。しかし、メモリアクセスが各メモリ周期上で実行されても、ブロック１１８Ｂを用いるパターン検索は、クロスオーバー信号が受信されるまで、次のパターン検索周期上で実行されなくてもよい。
【００９３】
図１７は、本発明の実施形態に係る、ブロックにおいてアクティブ化＿ネクスト＿ブロック信号を処理するための論理図を示す。ブロックは、ブロックインデックスライン（ＢＸ）及びブロック結合インデックスライン（ＢＣＸ）を介して信号を送信及び受信するバス１２４に結合されてもよい。一実施形態では、１つの入力がブロックをアクティブ化するために指定され、別の入力がパターンシーケンス（例えば、パターン検索シーケンスの進行中に１つのブロックから別のブロックへのクロスオーバー）を示すために用意されてもよい。ＢＸ信号は、複数のＡＮＤゲート１２６に提供されてもよい。ブロックイネーブルアクティブ化信号もまた、対応するＢＸ信号の提供を受ける各ＡＮＤゲート１２６に提供されてもよい。ＡＮＤゲート１２６の出力は、ブロックをアクティブ化するための“ブロック・アクティブ化”信号を出力するＯＲゲート１２８に提供されてもよい。
【００９４】
この方法では、ＡＮＤゲート１２６は、ブロックをアクティブ化するためには用いられず、適切なアクティブ化信号が、ＯＲゲート１２８から出力されるブロック＿アクティブ化信号を受信するブロックをアクティブ化させることを可能とするのみの入力信号を“マスク”してもよい。図１７に図示したように、ブロックをアクティブ化することができる複数のパス（例えば、複数の信号）があってもよい。
【００９５】
上記のロジックは、ブロック内のフィーチャセルの数、行内のフィーチャセルの数、アクティブなブロックを検出する能力の粒度等のパターン認識プロセッサ１４の特性に基づいて、幾分異なる設定を有する場合があることが理解されるべきである。
【図１】
0005923449.tif 000003
【図２】
0005923449.tif 000004
【図３】
0005923449.tif 000005
【図４】
0005923449.tif 000006
【図５】
0005923449.tif 000007
【図６】
0005923449.tif 000008
【図７】
0005923449.tif 000009
【図８】
0005923449.tif 000010
【図９】
0005923449.tif 000011
【図１０】
0005923449.tif 000012
【図１１】
0005923449.tif 000013
【図１２】
0005923449.tif 000014
【図１３】
0005923449.tif 000015
【図１４Ａ】
0005923449.tif 000016
【図１４Ｂ】
0005923449.tif 000017
【図１５】
0005923449.tif 000018
【図１６】
0005923449.tif 000019
【図１７】
0005923449.tif 000020