(57)【特許請求の範囲】
【請求項１】
データベースを構成する２以上のレコードのフィールドデータの検索演算を行い、その検索演算結果を出力するためのデータ処理装置であって、
前記データベースを構成する各レコードの特定のフィールドデータは２ビット以上のデータ長を有するものであり、
このデータ処理装置は、メモリと、このメモリに接続された１ビット論理演算回路と、この１ビット論理演算回路による論理演算結果の出力回路とを有し、
前記メモリは、各レコードの特定のフィールドデータはそのフィールドデータのデータ長に応じたビット幅を有するビットデータ（０又は１）で割り付けされ、メモリの上記ビット幅に対応する個数のワードアドレスにそれぞれ格納するものであり、
前記１ビット論理演算回路は、各レコードの特定のフィールドデータに対して行う演算として、上記フィールドデータが特定の演算条件値と一致するレコードの検出、又は上記フィールドデータが特定の演算条件値範囲に入るレコードの検出を含む条件を指定する演算条件の演算を行う場合、この演算条件に従い、同じワードアドレスに格納された全レコードのビット値を並列に読み出し、前記１ビット演算回路により全レコードで並列に１ビット論理演算し、当該１ビット論理演算を行った結果を全レコードのビット値として前記演算結果出力回路に出力するものであり、
前記演算結果出力回路は、前記演算結果のビット値が１であるレコードを特定し、それを演算処理結果として出力する手段と
を有するデータ処理装置。
【請求項２】
請求項１記載のデータ処理装置であって、
前記メモリは、レコード数がｎで、ワードアドレスがＮの、Ｎ＊ｎ  ｂｉｔの記憶セル構造である
データ処理装置。
【請求項３】
請求項１記載のデータ処理装置であって、
前記１ビット演算回路は、
前記演算条件は、１ビット毎の論理記憶、論理積、論理和、論理否定、排他論理、又は、その何れの組み合わせ論理条件で表現でき、その論理条件は、上記値が特定値と一致するレコード、若しくは、上記値が指定範囲に入るレコードを、ビット値１で特定するものである
データ処理装置。
【請求項４】
請求項３記載のデータ処理装置において、
前記１ビット演算回路は、シフトレジスタ機能を具備する
データ処理装置。
【請求項５】
請求項１記載のデータ処理装置において、
前記メモリを直列、並列、階層的接続のいずれかの接続で使用する
データ処理装置。
【請求項６】
データベースを構成する２以上のレコードの特定のフィールドデータに含まれる値の検索演算を行い、その検索演算結果を出力するためのデータ処理方法であって、
前記データベースを構成する各レコードの特定のフィールドデータは２ビット以上のデータ長を有するものであり、
このデータ処理方法は、メモリと、このメモリに接続された１ビット論理演算回路と、この１ビット論理演算回路による論理演算結果の出力回路とを有するデータ処理装置を使用し、
前記メモリに、各レコードの特定のフィールドデータはそのフィールドデータのデータ長に応じた所定のビット幅を有するビットデータ（０又は１）で割り付けされ、メモリの上記ビット幅に対応する個数のワードアドレスにそれぞれ格納する工程と、
前記１ビット論理演算回路に、各レコードの特定のフィールドデータに対して行う演算として、上記フィールドデータが特定の演算条件値と一致するレコードの検出、又は上記フィールドデータが特定の演算条件値範囲に入るレコードの検出を含む条件の演算を行う場合、前記１ビット論理演算回路が、その演算条件に従い、同じワードアドレスに格納された全レコードのビット値を並列に読み出し、前記１ビット演算回路により全レコードで並列に１ビット論理演算し、当該１ビット論理演算を行った結果を全レコードのビット値として前記演算結果出力回路に出力する工程と、
前記演算結果出力回路が、前記演算結果のビット値が１であるレコードを特定し、それを演算処理結果として出力する工程と
を有するデータ処理方法。
【請求項７】
請求項６記載のデータ処理方法であって、
前記メモリは、レコード数がｎで、ワードアドレスがＮの、Ｎ＊ｎ  ｂｉｔの記憶セル構造である
データ処理方法。
【請求項８】
請求項６記載のデータ処理方法であって、
前記１ビット演算回路は、
前記演算条件は、１ビット毎の論理記憶、論理積、論理和、論理否定、排他論理、又は、その何れの組み合わせ論理条件で表現でき、その論理条件は、上記値が特定値と一致するレコード、若しくは、上記値が指定範囲に入るレコードを、ビット値１で特定するものである
データ処理方法。
【請求項９】
請求項８記載のデータ処理方法において、
前記１ビット演算回路は、シフトレジスタ機能を具備する
データ処理方法。
【請求項１０】
請求項６記載のデータ処理方法において、
前記メモリを直列、並列、階層的接続のいずれかの接続で使用する
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報検索機能を備えたメモリ、その利用方法、装置、情報処理方法に関する。
【背景技術】
【０００２】
低価格で大容量の半導体メモリが利用できる時代になり、インメモリデータベース技術はビックデータを高速に処理する技術として注目されている。その一つはデータマイニングなど、大量のデータを半導体メモリに常駐（インメモリデータベース）させて、データのアクセスを速め目的の情報を高速に探し出そうとするものである。しかしながら、ハードデスク装置から半導体メモリに情報データを常駐させるだけでは１桁から２桁程度のスピードアップが期待出来る程度である。【０００３】
ビックデータの活用を本質的に考える場合にはあらためて、現在のノイマン型コンピュータの課題は何かを明らかにしておく必要がある。【０００４】
現在のコンピュータはＣＰＵが情報処理の全てをこなすものであるので、ＣＰＵはＣＰＵが得意な処理も苦手な処理も一手に引き受けざるを得ない。例えば、ＣＰＵにとってメモリ上のデータは裏返しになったトランプのような存在であり、一枚一枚（１アドレス、１アドレス）ごとにめくって（アクセス）して情報を探す以外にない。ＣＰＵがメモリ上の情報を逐次検索し特定の情報を見つけ出すような情報処理を行った場合、極めて多くの情報処理量となり待ち時間が多くなる。これがノイマン型コンピュータの宿命、バスボトルネックである。【０００５】
これらの課題をハードウエアで解決するのがＣＰＵの並列処理（分散処理）であるものの、周辺回路が複雑なものになりシステムが肥大化するという課題がある。【０００６】
このような背景をもとに、従来、バスボトルネックをもつ現在のコンピュータのＣＰＵの負担、情報処理の回数を軽減するために様々な利用技術（ソフトウエアアルゴリズム）が考案されて利用されてきた。【０００７】
例えば、情報を探し出すために利用される代表的なアルゴリズムとして、ハッシュテーブル、インデックス、木構造、バイナリサーチ、クラスタリングがあり、また、これらの組合せなどを考えるとアルゴリズムは無数に存在する。これらの利用技術（ソフトウエアアルゴリズム）は、ＣＰＵの負担、情報処理の回数を軽減する手段、宿命を持って生まれたＣＰＵを活かすための利用技術に他ならない。つまり、以上のようなアルゴリズムは、いずれもメモリ上のどこにどのような情報があるのかを事前に整理し、ＣＰＵが情報を探しやすいよう見出しやそのルートを作成、小さい順から順序よくデータを並べるなどの方法である。【０００８】
この様なアルゴリズムによれば、検索時のＣＰＵの負担は解消されるものの、前処理や後処理で複雑な情報処理を余儀なくされている、例えばデータの挿入や削除に代表されるように情報データが追加または削除される度に配列の並べ替えや、順番の変更など、これらのアルゴリズムのための前処理や後処理の情報処理が必要になっている。【０００９】
また以上の様なソフトウエアアルゴリズムは、データベースの種類や規模によって適切なものを幾つか選択し最適化システムを構築する必要があり、知識と経験を持った専門家以外は手が出せない。【００１０】
現在のコンピュータはＣＰＵが情報処理の全てをこなすものであるので以上のような宿命があるものの見方を変えて、もしメモリが自分自身で特定の情報を探し出すことが出来れば、以上のような情報処理は一変する。【００１１】
従来から連想メモリ（ＣＡＭ）は以上の様な課題を解消する技術として存在する。しかし、連想メモリ（ＣＡＭ）は完全並列の比較回路が必要になり回路サイズは大型化するのと、比較回路を構成する並列回路は大電流を消費するという課題がある。従って現在連想メモリ（ＣＡＭ）は通信ルータのように超高速検索が不可欠な特殊な分野に限定されて利用されているにすぎなかった。【００１２】
本発明は、上記のような事情に鑑み、一般のメモリに極めて少量の回路を組み込むだけで連想メモリ（ＣＡＭ）に匹敵する速度でビッグデータの検索を実現させる新しい考え方のメモリを実現することが目的とするものである。【００１３】
同じ目的を達成するため、本願発明者は様々な発明を行ってきた。例えば、本願発明者による発明の特許第４５８８１１４号  情報絞り込み検出機能を備えたメモリはパターンマッチなど論理積演算が得意なメモリである。またPCT/ＪＰ２０１３／０５９２６０号  集合演算機能を備えたメモリは以上の情報絞り込み検出機能を備えたメモリの概念を拡大発展させて、論理積演算、論理和演算、論理否定演算などを自由に行うことができるメモリである。この２つの出願の開示内容は、この参照により、全体として本願明細書の開示に含めることとする。【００１４】
本願発明のメモリ１０１は、以上二つの先願発明に応用することができるものである。【００１５】
また、特願平１０−２３２５３１号、演算機能付きメモリは図に示されているようにブロック単位に演算回路を設けチップ効率の向上を目指すものである。全てのメモリに個別に演算回路をもつよりは演算回路のサイズが小さくなるものの演算効率が悪くなり、しかもチップの効率が悪くコスト的な問題を抱えている。【００１６】
また、他の特許文献の演算機能をつけたメモリもこれと同様であり、本願発明のように、最小構成１組の演算機能のみでメモリ内のデータを並列に情報処理を行なう先願は見受けられない。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
この発明はＣＰＵによる情報処理の一番大きな課題である情報検索、つまり情報処理が複雑で、専門家以外手が出せない、しかもＣＰＵの負担が大きく、周辺回路も複雑化して消費電力が大きい事を抜本的に解消し、ビッグデータにも利用できる全く新しい情報処理の考え方に基づく情報検索機能をもったメモリを実現することである。【００１８】
具体的には並列情報検索が可能な連想メモリ（ＣＡＭ）の考え方を活かし、連想メモリ（ＣＡＭ）の課題である回路サイズや消費電力の増大を抑え、ビックデータにも対応可能な従来の情報処理の概念に捕らわれない新しい概念のメモリ素子を提供することである。
【課題を解決するための手段】
【００１９】
上記課題を解決するため、本発明の主要な観点によれば、以下が提供される。【００２０】
請求項１では
情報の読み出し書き込みが可能なメモリであって
（１）このメモリは１ワード ｂｉｔ幅がｎでＮワードアドレス、つまりＮ＊ｎ ｂｉｔの記憶セル構造とし
（２）このメモリ全体に１組ｎ ｂｉｔの論理演算器
（３）前記Ｎワードアドレスの中から繰り返し選択指定される前記１ワード ｂｉｔ幅がｎの記憶セル情報を前記1組ｎ ｂｉｔの前記論理演算器に並列に入力（代入）し論理演算する機能
（４）前記論理演算器の内容を出力する機能
以上を具備することを特徴とする情報検索機能を備えたメモリとする。【００２１】
請求項２では
前記論理演算器は前記入力（代入）される前記１ワードｂｉｔ幅がｎのメモリ記憶セル情報同士のｂｉｔ毎の、論理記憶、論理積、論理和、論理否定、排他論理その何れの組合せ演算が出来る構成である事を特徴とする請求項１記載の情報検索機能を備えたメモリとする。【００２２】
請求項３では
前記論理演算器に、シフトレジスタ機能を具備することを特徴とする請求項１記載の情報検索機能を備えたメモリとする。【００２３】
請求項４では
前記、論理記憶、論理積、論理和、論理否定、排他論理その何れの組合せ演算により、データ値の完全一致並びにデータ値の範囲検索を行うことを特徴とする請求項１記載の情報検索機能を備えたメモリとする。【００２４】
請求項５では
前記、論理記憶、論理積、論理和、論理否定、排他論理その何れの組合せ演算により、データ値の加減演算を行うことを特徴とする請求項１記載の情報検索機能を備えたメモリとする。【００２５】
請求項６では
ＣＰＵなど他の種類の半導体デバイスと一体化されたことを特徴とする請求項１記載の情報検索機能を備えたメモリとする。【００２６】
請求項７では
ＦＰＧＡに実装された事を特徴とする請求項１記載の情報検索機能を備えたメモリとする。【００２７】
請求項８では
データベースのレコードを前記１ワードｂｉｔ幅ｎのいずれか１列に割り付けし、１レコードのフィールド総ｂｉｔ数を前記ワードアドレス数のＮとするデータベースとすることを特徴とする請求項１記載の情報検索機能を備えたメモリの使用方法とする。【００２８】
請求項９では
前記情報検索機能を備えたメモリを
（１）直列、並列、もしくは直並列に接続
（２）階層的接続
（１）または（２）の接続で使用することを特徴とする請求項１記載の情報検索機能を備えたメモリの使用方法とする。【００２９】
請求項１０では
請求項１記載のメモリを含んだ装置とする。【００３０】
請求項１１では
メモリ内部でメモリ記憶セル情報の１ｂｉｔ同士の情報の論理積、論理和、論理否定、排他論理、その組み合わせの論理演算を繰り返し所定の演算結果を得ることを特徴とする情報処理方法とする。【００３１】
請求項１２では
前記１ｂｉｔ同士の情報を並列に前記論理演算することを特徴とする請求項１１記載の情報処理方法とする。
【図面の簡単な説明】
【００３２】
【図１】図１は、一般メモリの構成図である。
【図２】図２は、情報検索機能を備えたメモリの構成図である。
【図３】図３は、情報検索機能を備えたメモリによる文献検索の例である（実施例１）。
【図４】図４は、情報検索機能を備えたメモリによる完全一致データの検索の例である（実施例２）。
【図５】図５は、情報検索機能を備えたメモリによる範囲データの検索の例である（実施例３）。
【図６】図６は、情報検索機能を備えたメモリの直並列接続の例である（実施例４）。
【図７】図７は、情報検索機能を備えたメモリの階層化接続の例である（実施例５）。
【発明を実施するための形態】
【００３３】
以下、本発明の一実施形態を図面を参照して説明する。
【００３４】
図１は、一実施形態に係る一般メモリを示す構成図である。
【００３５】
図１のメモリ１００はアドレスデコーダやデータバスなどの機能回路は省略されており、このメモリに自由に情報データが書き込み読み出し可能な構成で、１ワードがｎ ｂｉｔの幅１０３で、Ｎのワードアドレス１０４を持つ、Ｎ×ｎ ｂｉｔセルからなる記憶セル１０２からなり立っており、一般的にはアドレスデコーダなどの手段で外部から１からＮまでのワードアドレスを選択指定可能になっている。
【００３６】
現在のＣＰＵによる情報処理は、メモリ１００のデータ幅１０３が８ｂｉｔ、１６ｂｉｔ、３２ｂｉｔなど一定のデータ幅で、情報データの検索の場合アドレス数が１Ｍアドレスや１Ｇアドレスなど与えられたメモリのアドレス空間をＣＰＵが順次アドレスをアクセスしデータを読み込み逐次処理を行って行くものである。
【００３７】
この発明のメモリによる情報処理は以上の一般のメモリ構造やデータベーステーブル構造のデータの幅とアドレスの概念の常識を逆転させる考えでなり立っており、また１ｂｉｔ単位の並列論理演算を基本とするものである。
【００３８】
図２は、本実施形態の情報検索機能を備えたメモリの構成を一例を示すものである。
【００３９】
図１同様図２においてもアドレスデコーダやデータバスなどの機能回路は省略されており、このメモリ１０１に自由に情報データが書き込み読み出し可能構成で、１ワードがｎ ｂｉｔの幅１０３で、Ｎのワードアドレス１０４を持つ、Ｎ×ｎ ｂｉｔセルからなる記憶セル１０２からなり立っており、外部から１からＮまでのワードアドレスを選択指定１１０可能になっている。１ワードｎ ｂｉｔの幅１０３はデータベースのレコード数（ｎ）に相当し、１レコードが縦列に配列され、ワードアドレス１０４のＮは１レコードのフィールドに相当する構造と考えると理解しやすい。
【００４０】
つまり、このメモリは、１レコードがＮｂｉｔでｎレコードのデータテーブルとなっている。このメモリの行方向（本図では横方向）にワードアドレス１０４で選択指定１１０される、ｎｂｉｔの記憶セル１０２と並列に設けられた論理演算器１０５は、選択指定１１０されるワードアドレス１０４の記憶セル１０２ｂｉｔ毎に論理記憶１１６が可能な回路と、論理積１１２、論理和１１３、論理否定（ＮＯＴ）１１４、排他論理１１６ならびにその組合せが自由に指定できる構成となっている。
【００４１】
またこの論理演算器１０５の演算結果を出力するためプライオリティアドレスエンコーダ出力回路などの演算結果出力１０６機能が備えられている。このメモリの大半はメモリセルそのものであり、そのごく一部のみが論理演算器１０５ならびに演算結果出力１０６機能であるので、一般メモリの微小エリアにこれらの機能を組み込みすることによりデータベースに利用可能な大容量のメモリとすることが出来る。
【００４２】
もちろん高速化するために、ワードアドレスを同時に複数選択指定１１０可能にして複数組の論理演算器１０５を用意してもかまわない。
【００４３】
次に、本発明をＤＲＡＭで実現する場合の例を考えてみる。現時点での半導体ダイ（チップ）当りのメモリ容量は８Ｇｂｉｔ程度である。
【００４４】
仮に論理演算器１０５や演算結果出力１０６などの機能は無視される程度の回路規模と考えると、ワードアドレスが１Ｍの場合８Ｋｂｉｔのワード幅の本メモリ１０１、ワードアドレスが８Ｋの場合１Ｍｂｉｔのワード幅の本メモリ１０１など縦横任意の組合せのメモリ１０１が実現される。このメモリ１０１はあらゆる情報探し特にビッグデータの検索やデータマイニング、ゲノム解析などに有効である、いくつかの例で本メモリの活用例を説明する。
【００４５】
我々が日常情報検索をする例はインターネット検索である、その概念はキーワードによる情報の絞り込みで実現されている。例えば「情報処理」、「情報検索」、「ＣＰＵ」などのキーワードを与えることにより、絞り込みが行われ、適切なインターネットサイトが見付出される仕組みである。
【００４６】
このメモリを文献検索に利用する場合の実施例で説明する。
【実施例１】
【００４７】
図３は情報検索機能を備えたメモリによる文献検索の例である。【００４８】
本例の場合、１からＮまでのワードアドレスは、「情報処理」、「情報検索」、「特許」、「ＣＰＵ」などの語彙とし、ワード幅ｎのいずれかの縦１列を１レコードとして１文献に対応させる。また、１レコードを構成するワードアドレス１からＮはフィールドに相当する。つまり１つの文献中に、「情報処理」、「情報検索」、「特許」、「ＣＰＵ」などの文字が1つでもあれば、対応するメモリセル（フィールド）に「１」を書き込んでおく（「０」は省略されている、以降同様）。従って本例の場合、Ｎ個の語彙と、ｎ冊の文献（ｎレコード）がデータベースとして登録されていることになる。【００４９】
これら記憶されたデータベースの中から、特定の文献を探し出す例を紹介する。【００５０】
データベースのキーワードの登録ワードアドレス１８が「情報処理」、ワードアドレス５が「情報検索」、ワードアドレス２４が「特許」、ワードアドレス１０が「ＣＰＵ」として、演算式は（「情報処理」または「情報検索」いずれかの語彙を含む文献）×（特許の語彙を含まない文献）×（ＣＰＵの語彙を含む文献）とする場合で説明する。【００５１】
図３の下方に以上のキーワード検索の演算プロセスが示されている。【００５２】
ワードアドレス１８の「情報処理」とワードアドレス５の「情報検索」いずれかの（論理和（ＯＲ））の語彙が含まれる文献のレコードは３、４、５、１３、１４、１６、１９、２１、２５である。次に、ワードアドレス２４は「特許」で、「特許」の語彙が含まれない文献は４、８．１１、１６、２２、２５であり、先ほどの演算結果、文献レコード３、４、５、１３、１４、１６、１９、２１、２５とこの論理否定演算１１４の論理積演算を行った結果の論理積（ＡＮＤ）演算の勝ち残り文献は４、１６、２５となる。最後にワードアドレス１０の「ＣＰＵ」を含む文献レコード３、７、９、１２、１５、１６、２２と直前の勝ち残り文献との論理積（ＡＮＤ）演算を行うことにより最終勝ち残り文献１０７はレコード１６になっている。【００５３】
以上の説明で分かる通り、選択指定１１０しないワードアドレスは演算が無視（Ｄｏｎ‘t care）される結果となり、連想メモリ（ＣＡＭ）の３値メモリ同様な効果を持つ。つまり、文献１６は（「情報処理」または「情報検索」いずれかの語彙を含む文献）×（特許の語彙を含まない文献）×（ＣＰＵの語彙を含む文献）である。【００５４】
以上の結果を、プライオリティアドレスエンコーダ出力回路などの演算結果出力１０６から順次読み出せばよい。【００５５】
ＣＰＵは、このメモリ１０１にワードアドレス選択指定１１０と、演算指定１１１を行うだけで、全メモリ空間の情報を全く探しまわることなしに、目的の情報をこのメモリから検出することが可能になる。【００５６】
以上の説明は全文検索の例であったが、レコードをＵＲＬにすればネット検索用のデータベースに利用可能である。【００５７】
以上の全文検索は、全てが１ｂｉｔからなるデータであったが、次の実施例ではデータを値で記憶する場合の情報検索について説明する。
【実施例２】
【００５８】
図４は情報検索機能を備えたメモリによる完全一致データの検索の例である。【００５９】
例えば、ワードアドレス１０を最上位ｂｉｔ（MＳＢ）としてワードアドレス１７を最下位ｂｉｔ（LＳＢ）とする８ｂｉｔのデータをフィールドに割りつけた場合を考える。８ｂｉｔのデータであるので、２５６通りのデータを記憶することが可能であり、ワードアドレス１０からワードアドレス１７の８つのワードアドレスを適切に選択することにより、２５６通りのデータの完全一致から大小判別まで任意の検索が可能になる。例えば、データ値「１０」、２進数「００００１０１０」を完全一致で探す場合、ワードアドレス１０を最上位ｂｉｔ（MＳＢ）としてワードアドレス１７を最下位ｂｉｔ（LＳＢ）まで８回演算し「００００１０１０」であるデータを検出すればよい。【００６０】
図４の下方に示す通り、本例では、MSBのワードアドレス１０から順に演算を行っている、この時、「００００１０１０」の「０」の桁の場合は論理否定、「１」の桁の場合は正論理で、８回の論理積演算（勝ち抜き演算）を繰り返し勝ち残った１３および２５の２つのレコードがデータ値「１０」になっている。論理演算器１０５に加算機能や減算機能を組み込み並列演算させるとレコードデータの四則演算も可能になる。
【実施例３】
【００６１】
図５は情報検索機能を備えたメモリによる範囲データの検索の例である。【００６２】
以上の説明は、データ値「１０」の完全一致を求めるものであったが、データ値「１０」以上を探す場合、図に示す通りＭＳＢのワードアドレス１０からワードアアドレス１３まで４回ワードドアドレスの論理和を取ることによりデータ値が「１６」以上のレコードを検出することが出来る。更に下位４ｂｉｔのワードアドレスの１５と１６の論理和と、ワードアドレス１４を論理積演算することによりデータ値「１０」以上「１６」未満を求め、先ほどのデータ値が「１６」以上のレコードと論理和をとることにより、「１０」以上のデータ値のレコードを探すことが出来る。更に「１０」以上のデータ値のレコードを否定すれば「１０」未満つまり「９」以下のレコードが検出される。その他のデータ値や範囲検索も以上と同様な１ｂｉｔ演算を繰り返し行えばよい。【００６３】
以上の演算は１０回程度で全レコードを並列に処理した結果になっている、データ値が１６ｂｉｔであれば以上の２倍、３２ｂｉｔになれば４倍になるだけで完全一致から範囲検索を実現することが出来る。また、データ幅を８ｂｉｔから９ｂｉｔや１０ｂｉｔに増やす場合でも、極めて単純であり、必ずしもワードアドレスが連続されている必要もなくデータ幅を１７ｂｉｔや３３ｂｉｔにするなども違和感なく実現出来る。【００６４】
つまりこのメモリは、ある／なしの１ｂｉｔデータから、任意データ幅の範囲検索でまでフィールド内の割付は自由自在である。【００６５】
例えば個人情報などの場合、「住まいが千葉県で、勤め先が東京都で、身長が１７０ｃｍから１７５ｃｍで、５０歳から６０歳までの、男性」などのような検索をすることにより情報が絞り込みされ、必要なレコードをのみを検出出来ることが大きな特徴である。沢山のレコードが検索される事を勘案して、プライオリティアドレスエンコーダ出力回路などの演算結果出力１０６をいくつかのブロックに分割して、ブロック単位で読み出し出来るように構成することもできる。【００６６】
データの書き込みは、一定幅のデータバスを利用して書き込み、読み出しを行うほか、縦横方向に先入れ先出し（ＦＩＦO）インターフェースでシリアルに書き込み、読み出しする構成とすることが出来る、この際幾つかを並列処理をすることも出来る。
【実施例４】
【００６７】
図６は、本メモリを直並列に接続した場合の例である。【００６８】
完全に独立したメモリとして、縦方向（ワードアドレス方向）にも横方向（データ幅方向）に拡張することが出来るので、システムの拡張が極めて単純でありシステムに永続性を持たせることが出来る。データの種類によって、縦方向（ワードアドレス方向）にも横方向（データ幅方向）の必要な容量が定まる。先ほどの全文検索であれば、ワードアドレスは数十万にも上る、しかしながら個人情報であれば一人当たり数Ｋから数拾Ｋのワードアドレスがあれば十分である。【００６９】
通常、全く配列の定義やインデックスのないメモリの中から１つのＣＰＵが、特定の情報を見つけ出す場合には、例えば１０ｎ秒平均でメモリをアクセスし照合するだけでも、１Mワードアドレスの場合１０ｍ秒程度、１Ｇの場合１０秒、１Ｔの場合１０，０００秒（３時間程度）の時間が必要になる。ＣＰＵを並列に使用し分散処理理すれば、原則的にＣＰＵの数に比例して処理時間を削減することが出来る。しかしながら大容量のデータベースをリアルタイム（例えば１秒以内）で検索するのは困難である。【００７０】
本メモリの場合、どのように直並列されていて例えば１０ＴＢのデータであっても全メモリの並列処理が可能で、ワードアドレス指定１１０と演算指定１１１を数回から数十回、数百回繰り返すだけで良い。【００７１】
記憶素子によりアクセススピードは様々であるが例えば一回の論理演算のスピードを１０ｎ秒とすると、情報を探す時間が数百ｎ秒からマイクロ秒、1ｍ秒あれば、１００、０００回の演算を実現することが出来る、完全並列処理が出来るのでどのようなビッグデータであっても数百ｎ秒からマイクロ秒、1ｍ秒程度の固定時間で目的の情報を探し当てることが出来ることがこの技術の最大の特徴である。【００７２】
この発明のメモリ構造とデータの縦横関係を逆転する考え方は、情報処理の回数を大幅に削減し、処理時間を大幅に削減する事を如実に示している。このことは様々な仮定に基づき検索を繰り返す必要があるビッグデータのデータマイニングに極めて効果的である。
【実施例５】
【００７３】
図７は情報検索機能を備えたメモリの階層化接続の例である。【００７４】
図７の例では図の最上段に示す情報検索機能を備えたメモリ１０１をマスタとしてそのそれぞれの、レコードに対応させて、レコード毎に更に詳細なデータを格納したサブの情報検索機能を備えたメモリ１０１を検索できるように構成してものである、特にビッグデータであればこのような階層化データベースを利用することによりどのような規模のデータベースであっても対応可能になる。【００７５】
このメモリ１０１を利用してデータベースを構築するには、レコード、とフィールドの割り付けのみで、後は論理演算器１０５をどの様に演算指定１１１するかで利用することが出来る、従ってこのメモリ１０１を利用することにより、従来一般的である検索アルゴリズム、例えばＳＱＬ等のデータベース概念そのものを不要にする。ＣＰＵを用いた情報探しは、ＣＰＵの負担を軽減するために様々な利用上のテクニックが存在する、バイナリサーチはその典型的な例である。【００７６】
このアルゴリズムは情報データの検索回数を極めて少なくすることが出来る技術として情報処理の定番技術であるが、メモリ上のデータテーブルにデータ値を書き込む際、例えば小さいデータから大きいデータ順に並べておくような事前準備が必要でありデータが増えたり、減ったりするたびに、メモリ上のデータを並べ変えする（データメンテナンス）必要がある。つまり、このアルゴリズムにより、ＣＰＵが特定のデータ値を探す時の負担は短縮されるが、その前の事前処理、データメンテナンスに掛る負担はけして少なくない。【００７７】
以上はバイナリサーチの例であるが、ハッシュテーブルなどその他のアルゴリズムも全く同様である。【００７８】
本発明を利用すると、以上のようなアルゴリズムを使用する必要がなくなるので、事前準備やメンテナンスなどの情報処理は全く不要である、レコードのどこか、フールドのどこかを指定して、データを登録するか抹消するだけであり煩わしい配列の変更、データの並べ替えなどのデータメンテナンスは一切不要である。従って、本メモリ１０１をコントロールし情報処理の全体をコントロールするＣＰＵは高速である必要がなくなるので情報処理、特に情報検索に関わる電力を大幅に削減することが可能になる。このことにより、CPUの負担の解消と周辺回路、情報検索の利用技術を簡素化する結果となる。【００７９】
本願発明者はこれまで様々なメモリデバイスの研究行ってきた、特許第４５８８１１４号  情報絞り込み検出機能を備えたメモリはパターンマッチなど論理積演算が得意なメモリである。
またPCT/ＪＰ２０１３／０５９２６０号  集合演算機能を備えたメモリは以上の情報絞り込み検出機能を備えたメモリの概念を拡大発展させて、論理積演算、論理和演算、論理否定演算などを自由に行うことができるメモリである。【００８０】
以上の発明はいずれも連想メモリ（ＣＡＭ）の応用技術であるので、本発明を利用することが出来る。【００８１】
一例であるが、論理演算器１０５にシフトレジスタ機能を組合せすることにより、情報絞り込み検出機能を備えたメモリや、集合演算機能を備えたメモリが実現できる。【００８２】
本方式は、通常の連想メモリ（ＣＡＭ）に比較すると並列演算そのもののスピードはやや低減されるものの大型の等価連想メモリ（ＣＡＭ）が実現できるので情報検索全体としての処理時間を圧倒的に短縮することが出来る。【００８３】
この様なメモリ１０１は、ゲノム解析に極めて有効である。人間のＤＮＡなどは数Ｇの塩基情報をもつビッグデータである、この様なビッグデータの解析は極めて多大な時間を必要としている。もし数Ｇの塩基情報を一括してこのメモリ１０１に記憶しておけば、ＤＮＡ解析はスパコン以上に高速で精確なものになる。現在の情報処理は、メモリ１００のデータ幅が３２ｂｉｔ、６４ｂｉｔ、１２８ｂｉｔなど一定のデータ幅でＣＰＵが順次アドレスをアクセスしデータを読み込み逐次情報処理を行って行くものである。データ幅（バス幅）が広い程、情報処理の効率は高いが、デバイスの入出力ピン数が増えること、デバイスを実装するプリント基板の配線負担が多いことなどデータのバス幅の拡大には限界がある。【００８４】
この発明のメモリ１０１の特徴は、これまでのメモリ構造やデータベースの情報処理の考え方を縦横逆転し、メモリ内で１ｂｉｔ毎の並列演算にしたことにある、たとえ１ｂｉｔ毎の演算でも大量の記憶セル１０２情報を並列に情報処理することが出来れば情報処理の演算回数は極めて少なく効率的になること、さらにメモリデバイスの特徴つまり、外部に情報を出すことなくメモリチップ内部で大量のメモリセルを並列に駆動し並列論理演算器に入力（代入）し並列演算することが出来ることを活用したものである。【００８５】
通常のＤＲＡＭ、ＳＲＡＭ、ＦＬＡＳＨ、また最近は不揮発、省電力が期待される磁気記憶型のメモリセルも盛んに研究されておりこの様なメモリにも共通に利用可能である、本メモリはチップのごく一部に論理演算機能を加えるのみであるので極めて大容量で超高速で簡便な情報処理が出来ることである。【００８６】
ＦＰＧＡにもこのメモリ１０１のアルゴリズムを容易に実装することが出来る。【００８７】
このメモリはインメモリデータベースでしかもＣＰＵに頼らない自己検索機能を持たせたメモリである、このメモリとＣＰＵを一体化したデバイス構成も有効である。
【産業上の利用性】
【００８８】
過去から連想メモリ（CAM）は高速な演算機能をもつデバイスとして知られており様々な知識処理を含む様々な応用例が研究されているものの大型の記憶容量を持つことが出来ない、消費電力が大きい、などの理由により通信ルータなどごく一部の目的にしか利用されていない。
【００８９】
この発明は、大容量でしかも連想メモリ（CAM）に匹敵する情報検索スピードを持つ新しいタイプの情報処理メモリであるので各種データベースやビッグデータのデータマイニング、データ解析さらには知識処理に幅広く利用することが可能である。
【００９０】
またこの技術は情報処理の電力を大幅に抑制することが出来るのでＩＣＴ機器の環境問題の解消に大きな意義をもち、この技術は新しい情報処理手法の一つになる。
【符号の説明】
【００９１】
１００  メモリ
１０１  情報検索機能を備えたメモリ
１０２  記憶セル
１０３  ワード幅
１０４  ワードアドレス
１０５  論理演算器
１０６  演算結果出力
１０７  演算結果
１１０  （ワードアドレス）選択指定
１１１  演算指定
１１２  論理積
１１３  論理和
１１４  論理否定
１１５  排他論理
１１６  論理記憶  
【図１】
0005981666.tif 000002
【図２】
0005981666.tif 000003
【図３】
0005981666.tif 000004
【図４】
0005981666.tif 000005
【図５】
0005981666.tif 000006
【図６】
0005981666.tif 000007
【図７】
0005981666.tif 000008