(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5981666
(24)【登録日】2016年8月5日
(45)【発行日】2016年8月31日
(54)【発明の名称】情報検索機能を備えたメモリ、その利用方法、装置、情報処理方法。
(51)【国際特許分類】
G06F 17/30 20060101AFI20160818BHJP
G11C 15/04 20060101ALI20160818BHJP
【FI】
G06F17/30 350D
G06F17/30 340C
G11C15/04 631F
【請求項の数】10
【全頁数】15
(21)【出願番号】特願2015-554805(P2015-554805)
(86)(22)【出願日】2014年12月18日
(86)【国際出願番号】JP2014083607
(87)【国際公開番号】WO2015098707
(87)【国際公開日】20150702
【審査請求日】2016年4月12日
(31)【優先権主張番号】特願2013-264763(P2013-264763)
(32)【優先日】2013年12月23日
(33)【優先権主張国】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】508220504
【氏名又は名称】井上 克己
(74)【代理人】
【識別番号】100104411
【弁理士】
【氏名又は名称】矢口 太郎
(72)【発明者】
【氏名】井上 克己
【審査官】
早川 学
(56)【参考文献】
【文献】
特開平1−297724(JP,A)
【文献】
国際公開第2011/102432(WO,A1)
【文献】
国際公開第2013/147022(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G11C 15/04
(57)【特許請求の範囲】
【請求項1】
データベースを構成する2以上のレコードのフィールドデータの検索演算を行い、その検索演算結果を出力するためのデータ処理装置であって、
前記データベースを構成する各レコードの特定のフィールドデータは2ビット以上のデータ長を有するものであり、
このデータ処理装置は、メモリと、このメモリに接続された1ビット論理演算回路と、この1ビット論理演算回路による論理演算結果の出力回路とを有し、
前記メモリは、各レコードの特定のフィールドデータはそのフィールドデータのデータ長に応じたビット幅を有するビットデータ(0又は1)で割り付けされ、メモリの上記ビット幅に対応する個数のワードアドレスにそれぞれ格納するものであり、
前記1ビット論理演算回路は、各レコードの特定のフィールドデータに対して行う演算として、上記フィールドデータが特定の演算条件値と一致するレコードの検出、又は上記フィールドデータが特定の演算条件値範囲に入るレコードの検出を含む条件を指定する演算条件の演算を行う場合、この演算条件に従い、同じワードアドレスに格納された全レコードのビット値を並列に読み出し、前記1ビット演算回路により全レコードで並列に1ビット論理演算し、当該1ビット論理演算を行った結果を全レコードのビット値として前記演算結果出力回路に出力するものであり、
前記演算結果出力回路は、前記演算結果のビット値が1であるレコードを特定し、それを演算処理結果として出力する手段と
を有するデータ処理装置。
【請求項2】
請求項1記載のデータ処理装置であって、
前記メモリは、レコード数がnで、ワードアドレスがNの、N*n bitの記憶セル構造である
データ処理装置。
【請求項3】
請求項1記載のデータ処理装置であって、
前記1ビット演算回路は、
前記演算条件は、1ビット毎の論理記憶、論理積、論理和、論理否定、排他論理、又は、その何れの組み合わせ論理条件で表現でき、その論理条件は、上記値が特定値と一致するレコード、若しくは、上記値が指定範囲に入るレコードを、ビット値1で特定するものである
データ処理装置。
【請求項4】
請求項3記載のデータ処理装置において、
前記1ビット演算回路は、シフトレジスタ機能を具備する
データ処理装置。
【請求項5】
請求項1記載のデータ処理装置において、
前記メモリを直列、並列、階層的接続のいずれかの接続で使用する
データ処理装置。
【請求項6】
データベースを構成する2以上のレコードの特定のフィールドデータに含まれる値の検索演算を行い、その検索演算結果を出力するためのデータ処理方法であって、
前記データベースを構成する各レコードの特定のフィールドデータは2ビット以上のデータ長を有するものであり、
このデータ処理方法は、メモリと、このメモリに接続された1ビット論理演算回路と、この1ビット論理演算回路による論理演算結果の出力回路とを有するデータ処理装置を使用し、
前記メモリに、各レコードの特定のフィールドデータはそのフィールドデータのデータ長に応じた所定のビット幅を有するビットデータ(0又は1)で割り付けされ、メモリの上記ビット幅に対応する個数のワードアドレスにそれぞれ格納する工程と、
前記1ビット論理演算回路に、各レコードの特定のフィールドデータに対して行う演算として、上記フィールドデータが特定の演算条件値と一致するレコードの検出、又は上記フィールドデータが特定の演算条件値範囲に入るレコードの検出を含む条件の演算を行う場合、前記1ビット論理演算回路が、その演算条件に従い、同じワードアドレスに格納された全レコードのビット値を並列に読み出し、前記1ビット演算回路により全レコードで並列に1ビット論理演算し、当該1ビット論理演算を行った結果を全レコードのビット値として前記演算結果出力回路に出力する工程と、
前記演算結果出力回路が、前記演算結果のビット値が1であるレコードを特定し、それを演算処理結果として出力する工程と
を有するデータ処理方法。
【請求項7】
請求項6記載のデータ処理方法であって、
前記メモリは、レコード数がnで、ワードアドレスがNの、N*n bitの記憶セル構造である
データ処理方法。
【請求項8】
請求項6記載のデータ処理方法であって、
前記1ビット演算回路は、
前記演算条件は、1ビット毎の論理記憶、論理積、論理和、論理否定、排他論理、又は、その何れの組み合わせ論理条件で表現でき、その論理条件は、上記値が特定値と一致するレコード、若しくは、上記値が指定範囲に入るレコードを、ビット値1で特定するものである
データ処理方法。
【請求項9】
請求項8記載のデータ処理方法において、
前記1ビット演算回路は、シフトレジスタ機能を具備する
データ処理方法。
【請求項10】
請求項6記載のデータ処理方法において、
前記メモリを直列、並列、階層的接続のいずれかの接続で使用する
データ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報検索機能を備えたメモリ、その利用方法、装置、情報処理方法に関する。
【背景技術】
【0002】
低価格で大容量の半導体メモリが利用できる時代になり、インメモリデータベース技術はビックデータを高速に処理する技術として注目されている。その一つはデータマイニングなど、大量のデータを半導体メモリに常駐(インメモリデータベース)させて、データのアクセスを速め目的の情報を高速に探し出そうとするものである。しかしながら、ハードデスク装置から半導体メモリに情報データを常駐させるだけでは1桁から2桁程度のスピードアップが期待出来る程度である。
【0003】
ビックデータの活用を本質的に考える場合にはあらためて、現在のノイマン型コンピュータの課題は何かを明らかにしておく必要がある。
【0004】
現在のコンピュータはCPUが情報処理の全てをこなすものであるので、CPUはCPUが得意な処理も苦手な処理も一手に引き受けざるを得ない。例えば、CPUにとってメモリ上のデータは裏返しになったトランプのような存在であり、一枚一枚(1アドレス、1アドレス)ごとにめくって(アクセス)して情報を探す以外にない。CPUがメモリ上の情報を逐次検索し特定の情報を見つけ出すような情報処理を行った場合、極めて多くの情報処理量となり待ち時間が多くなる。これがノイマン型コンピュータの宿命、バスボトルネックである。
【0005】
これらの課題をハードウエアで解決するのがCPUの並列処理(分散処理)であるものの、周辺回路が複雑なものになりシステムが肥大化するという課題がある。
【0006】
このような背景をもとに、従来、バスボトルネックをもつ現在のコンピュータのCPUの負担、情報処理の回数を軽減するために様々な利用技術(ソフトウエアアルゴリズム)が考案されて利用されてきた。
【0007】
例えば、情報を探し出すために利用される代表的なアルゴリズムとして、ハッシュテーブル、インデックス、木構造、バイナリサーチ、クラスタリングがあり、また、これらの組合せなどを考えるとアルゴリズムは無数に存在する。これらの利用技術(ソフトウエアアルゴリズム)は、CPUの負担、情報処理の回数を軽減する手段、宿命を持って生まれたCPUを活かすための利用技術に他ならない。つまり、以上のようなアルゴリズムは、いずれもメモリ上のどこにどのような情報があるのかを事前に整理し、CPUが情報を探しやすいよう見出しやそのルートを作成、小さい順から順序よくデータを並べるなどの方法である。
【0008】
この様なアルゴリズムによれば、検索時のCPUの負担は解消されるものの、前処理や後処理で複雑な情報処理を余儀なくされている、例えばデータの挿入や削除に代表されるように情報データが追加または削除される度に配列の並べ替えや、順番の変更など、これらのアルゴリズムのための前処理や後処理の情報処理が必要になっている。
【0009】
また以上の様なソフトウエアアルゴリズムは、データベースの種類や規模によって適切なものを幾つか選択し最適化システムを構築する必要があり、知識と経験を持った専門家以外は手が出せない。
【0010】
現在のコンピュータはCPUが情報処理の全てをこなすものであるので以上のような宿命があるものの見方を変えて、もしメモリが自分自身で特定の情報を探し出すことが出来れば、以上のような情報処理は一変する。
【0011】
従来から連想メモリ(CAM)は以上の様な課題を解消する技術として存在する。しかし、連想メモリ(CAM)は完全並列の比較回路が必要になり回路サイズは大型化するのと、比較回路を構成する並列回路は大電流を消費するという課題がある。従って現在連想メモリ(CAM)は通信ルータのように超高速検索が不可欠な特殊な分野に限定されて利用されているにすぎなかった。
【0012】
本発明は、上記のような事情に鑑み、一般のメモリに極めて少量の回路を組み込むだけで連想メモリ(CAM)に匹敵する速度でビッグデータの検索を実現させる新しい考え方のメモリを実現することが目的とするものである。
【0013】
同じ目的を達成するため、本願発明者は様々な発明を行ってきた。例えば、本願発明者による発明の特許第4588114号 情報絞り込み検出機能を備えたメモリはパターンマッチなど論理積演算が得意なメモリである。またPCT/JP2013/059260号 集合演算機能を備えたメモリは以上の情報絞り込み検出機能を備えたメモリの概念を拡大発展させて、論理積演算、論理和演算、論理否定演算などを自由に行うことができるメモリである。この2つの出願の開示内容は、この参照により、全体として本願明細書の開示に含めることとする。
【0014】
本願発明のメモリ101は、以上二つの先願発明に応用することができるものである。
【0015】
また、特願平10−232531号、演算機能付きメモリは図に示されているようにブロック単位に演算回路を設けチップ効率の向上を目指すものである。全てのメモリに個別に演算回路をもつよりは演算回路のサイズが小さくなるものの演算効率が悪くなり、しかもチップの効率が悪くコスト的な問題を抱えている。
【0016】
また、他の特許文献の演算機能をつけたメモリもこれと同様であり、本願発明のように、最小構成1組の演算機能のみでメモリ内のデータを並列に情報処理を行なう先願は見受けられない。
【発明の概要】
【発明が解決しようとする課題】
【0017】
この発明はCPUによる情報処理の一番大きな課題である情報検索、つまり情報処理が複雑で、専門家以外手が出せない、しかもCPUの負担が大きく、周辺回路も複雑化して消費電力が大きい事を抜本的に解消し、ビッグデータにも利用できる全く新しい情報処理の考え方に基づく情報検索機能をもったメモリを実現することである。
【0018】
具体的には並列情報検索が可能な連想メモリ(CAM)の考え方を活かし、連想メモリ(CAM)の課題である回路サイズや消費電力の増大を抑え、ビックデータにも対応可能な従来の情報処理の概念に捕らわれない新しい概念のメモリ素子を提供することである。
【課題を解決するための手段】
【0019】
上記課題を解決するため、本発明の主要な観点によれば、以下が提供される。
【0020】
請求項1では
情報の読み出し書き込みが可能なメモリであって
(1)このメモリは1ワード bit幅がnでNワードアドレス、つまりN*n bitの記憶セル構造とし
(2)このメモリ全体に1組n bitの論理演算器
(3)前記Nワードアドレスの中から繰り返し選択指定される前記1ワード bit幅がnの記憶セル情報を前記1組n bitの前記論理演算器に並列に入力(代入)し論理演算する機能
(4)前記論理演算器の内容を出力する機能
以上を具備することを特徴とする情報検索機能を備えたメモリとする。
【0021】
請求項2では
前記論理演算器は前記入力(代入)される前記1ワードbit幅がnのメモリ記憶セル情報同士のbit毎の、論理記憶、論理積、論理和、論理否定、排他論理その何れの組合せ演算が出来る構成である事を特徴とする請求項1記載の情報検索機能を備えたメモリとする。
【0022】
請求項3では
前記論理演算器に、シフトレジスタ機能を具備することを特徴とする請求項1記載の情報検索機能を備えたメモリとする。
【0023】
請求項4では
前記、論理記憶、論理積、論理和、論理否定、排他論理その何れの組合せ演算により、データ値の完全一致並びにデータ値の範囲検索を行うことを特徴とする請求項1記載の情報検索機能を備えたメモリとする。
【0024】
請求項5では
前記、論理記憶、論理積、論理和、論理否定、排他論理その何れの組合せ演算により、データ値の加減演算を行うことを特徴とする請求項1記載の情報検索機能を備えたメモリとする。
【0025】
請求項6では
CPUなど他の種類の半導体デバイスと一体化されたことを特徴とする請求項1記載の情報検索機能を備えたメモリとする。
【0026】
請求項7では
FPGAに実装された事を特徴とする請求項1記載の情報検索機能を備えたメモリとする。
【0027】
請求項8では
データベースのレコードを前記1ワードbit幅nのいずれか1列に割り付けし、1レコードのフィールド総bit数を前記ワードアドレス数のNとするデータベースとすることを特徴とする請求項1記載の情報検索機能を備えたメモリの使用方法とする。
【0028】
請求項9では
前記情報検索機能を備えたメモリを
(1)直列、並列、もしくは直並列に接続
(2)階層的接続
(1)または(2)の接続で使用することを特徴とする請求項1記載の情報検索機能を備えたメモリの使用方法とする。
【0029】
請求項10では
請求項1記載のメモリを含んだ装置とする。
【0030】
請求項11では
メモリ内部でメモリ記憶セル情報の1bit同士の情報の論理積、論理和、論理否定、排他論理、その組み合わせの論理演算を繰り返し所定の演算結果を得ることを特徴とする情報処理方法とする。
【0031】
請求項12では
前記1bit同士の情報を並列に前記論理演算することを特徴とする請求項11記載の情報処理方法とする。
【図面の簡単な説明】
【0032】
【
図2】
図2は、情報検索機能を備えたメモリの構成図である。
【
図3】
図3は、情報検索機能を備えたメモリによる文献検索の例である(実施例1)。
【
図4】
図4は、情報検索機能を備えたメモリによる完全一致データの検索の例である(実施例2)。
【
図5】
図5は、情報検索機能を備えたメモリによる範囲データの検索の例である(実施例3)。
【
図6】
図6は、情報検索機能を備えたメモリの直並列接続の例である(実施例4)。
【
図7】
図7は、情報検索機能を備えたメモリの階層化接続の例である(実施例5)。
【発明を実施するための形態】
【0033】
以下、本発明の一実施形態を図面を参照して説明する。
【0034】
図1は、一実施形態に係る一般メモリを示す構成図である。
【0035】
図1のメモリ100はアドレスデコーダやデータバスなどの機能回路は省略されており、このメモリに自由に情報データが書き込み読み出し可能な構成で、1ワードがn bitの幅103で、Nのワードアドレス104を持つ、N×n bitセルからなる記憶セル102からなり立っており、一般的にはアドレスデコーダなどの手段で外部から1からNまでのワードアドレスを選択指定可能になっている。
【0036】
現在のCPUによる情報処理は、メモリ100のデータ幅103が8bit、16bit、32bitなど一定のデータ幅で、情報データの検索の場合アドレス数が1Mアドレスや1Gアドレスなど与えられたメモリのアドレス空間をCPUが順次アドレスをアクセスしデータを読み込み逐次処理を行って行くものである。
【0037】
この発明のメモリによる情報処理は以上の一般のメモリ構造やデータベーステーブル構造のデータの幅とアドレスの概念の常識を逆転させる考えでなり立っており、また1bit単位の並列論理演算を基本とするものである。
【0038】
図2は、本実施形態の情報検索機能を備えたメモリの構成を一例を示すものである。
【0039】
図1同様
図2においてもアドレスデコーダやデータバスなどの機能回路は省略されており、このメモリ101に自由に情報データが書き込み読み出し可能構成で、1ワードがn bitの幅103で、Nのワードアドレス104を持つ、N×n bitセルからなる記憶セル102からなり立っており、外部から1からNまでのワードアドレスを選択指定110可能になっている。1ワードn bitの幅103はデータベースのレコード数(n)に相当し、1レコードが縦列に配列され、ワードアドレス104のNは1レコードのフィールドに相当する構造と考えると理解しやすい。
【0040】
つまり、このメモリは、1レコードがNbitでnレコードのデータテーブルとなっている。このメモリの行方向(本図では横方向)にワードアドレス104で選択指定110される、nbitの記憶セル102と並列に設けられた論理演算器105は、選択指定110されるワードアドレス104の記憶セル102bit毎に論理記憶116が可能な回路と、論理積112、論理和113、論理否定(NOT)114、排他論理116ならびにその組合せが自由に指定できる構成となっている。
【0041】
またこの論理演算器105の演算結果を出力するためプライオリティアドレスエンコーダ出力回路などの演算結果出力106機能が備えられている。このメモリの大半はメモリセルそのものであり、そのごく一部のみが論理演算器105ならびに演算結果出力106機能であるので、一般メモリの微小エリアにこれらの機能を組み込みすることによりデータベースに利用可能な大容量のメモリとすることが出来る。
【0042】
もちろん高速化するために、ワードアドレスを同時に複数選択指定110可能にして複数組の論理演算器105を用意してもかまわない。
【0043】
次に、本発明をDRAMで実現する場合の例を考えてみる。現時点での半導体ダイ(チップ)当りのメモリ容量は8Gbit程度である。
【0044】
仮に論理演算器105や演算結果出力106などの機能は無視される程度の回路規模と考えると、ワードアドレスが1Mの場合8Kbitのワード幅の本メモリ101、ワードアドレスが8Kの場合1Mbitのワード幅の本メモリ101など縦横任意の組合せのメモリ101が実現される。このメモリ101はあらゆる情報探し特にビッグデータの検索やデータマイニング、ゲノム解析などに有効である、いくつかの例で本メモリの活用例を説明する。
【0045】
我々が日常情報検索をする例はインターネット検索である、その概念はキーワードによる情報の絞り込みで実現されている。例えば「情報処理」、「情報検索」、「CPU」などのキーワードを与えることにより、絞り込みが行われ、適切なインターネットサイトが見付出される仕組みである。
【0046】
このメモリを文献検索に利用する場合の実施例で説明する。
【実施例1】
【0047】
図3は情報検索機能を備えたメモリによる文献検索の例である。
【0048】
本例の場合、1からNまでのワードアドレスは、「情報処理」、「情報検索」、「特許」、「CPU」などの語彙とし、ワード幅nのいずれかの縦1列を1レコードとして1文献に対応させる。また、1レコードを構成するワードアドレス1からNはフィールドに相当する。つまり1つの文献中に、「情報処理」、「情報検索」、「特許」、「CPU」などの文字が1つでもあれば、対応するメモリセル(フィールド)に「1」を書き込んでおく(「0」は省略されている、以降同様)。従って本例の場合、N個の語彙と、n冊の文献(nレコード)がデータベースとして登録されていることになる。
【0049】
これら記憶されたデータベースの中から、特定の文献を探し出す例を紹介する。
【0050】
データベースのキーワードの登録ワードアドレス18が「情報処理」、ワードアドレス5が「情報検索」、ワードアドレス24が「特許」、ワードアドレス10が「CPU」として、演算式は(「情報処理」または「情報検索」いずれかの語彙を含む文献)×(特許の語彙を含まない文献)×(CPUの語彙を含む文献)とする場合で説明する。
【0051】
図3の下方に以上のキーワード検索の演算プロセスが示されている。
【0052】
ワードアドレス18の「情報処理」とワードアドレス5の「情報検索」いずれかの(論理和(OR))の語彙が含まれる文献のレコードは3、4、5、13、14、16、19、21、25である。次に、ワードアドレス24は「特許」で、「特許」の語彙が含まれない文献は4、8.11、16、22、25であり、先ほどの演算結果、文献レコード3、4、5、13、14、16、19、21、25とこの論理否定演算114の論理積演算を行った結果の論理積(AND)演算の勝ち残り文献は4、16、25となる。最後にワードアドレス10の「CPU」を含む文献レコード3、7、9、12、15、16、22と直前の勝ち残り文献との論理積(AND)演算を行うことにより最終勝ち残り文献107はレコード16になっている。
【0053】
以上の説明で分かる通り、選択指定110しないワードアドレスは演算が無視(Don‘t care)される結果となり、連想メモリ(CAM)の3値メモリ同様な効果を持つ。つまり、文献16は(「情報処理」または「情報検索」いずれかの語彙を含む文献)×(特許の語彙を含まない文献)×(CPUの語彙を含む文献)である。
【0054】
以上の結果を、プライオリティアドレスエンコーダ出力回路などの演算結果出力106から順次読み出せばよい。
【0055】
CPUは、このメモリ101にワードアドレス選択指定110と、演算指定111を行うだけで、全メモリ空間の情報を全く探しまわることなしに、目的の情報をこのメモリから検出することが可能になる。
【0056】
以上の説明は全文検索の例であったが、レコードをURLにすればネット検索用のデータベースに利用可能である。
【0057】
以上の全文検索は、全てが1bitからなるデータであったが、次の実施例ではデータを値で記憶する場合の情報検索について説明する。
【実施例2】
【0058】
図4は情報検索機能を備えたメモリによる完全一致データの検索の例である。
【0059】
例えば、ワードアドレス10を最上位bit(MSB)としてワードアドレス17を最下位bit(LSB)とする8bitのデータをフィールドに割りつけた場合を考える。8bitのデータであるので、256通りのデータを記憶することが可能であり、ワードアドレス10からワードアドレス17の8つのワードアドレスを適切に選択することにより、256通りのデータの完全一致から大小判別まで任意の検索が可能になる。例えば、データ値「10」、2進数「00001010」を完全一致で探す場合、ワードアドレス10を最上位bit(MSB)としてワードアドレス17を最下位bit(LSB)まで8回演算し「00001010」であるデータを検出すればよい。
【0060】
図4の下方に示す通り、本例では、MSBのワードアドレス10から順に演算を行っている、この時、「00001010」の「0」の桁の場合は論理否定、「1」の桁の場合は正論理で、8回の論理積演算(勝ち抜き演算)を繰り返し勝ち残った13および25の2つのレコードがデータ値「10」になっている。論理演算器105に加算機能や減算機能を組み込み並列演算させるとレコードデータの四則演算も可能になる。
【実施例3】
【0061】
図5は情報検索機能を備えたメモリによる範囲データの検索の例である。
【0062】
以上の説明は、データ値「10」の完全一致を求めるものであったが、データ値「10」以上を探す場合、図に示す通りMSBのワードアドレス10からワードアアドレス13まで4回ワードドアドレスの論理和を取ることによりデータ値が「16」以上のレコードを検出することが出来る。更に下位4bitのワードアドレスの15と16の論理和と、ワードアドレス14を論理積演算することによりデータ値「10」以上「16」未満を求め、先ほどのデータ値が「16」以上のレコードと論理和をとることにより、「10」以上のデータ値のレコードを探すことが出来る。更に「10」以上のデータ値のレコードを否定すれば「10」未満つまり「9」以下のレコードが検出される。その他のデータ値や範囲検索も以上と同様な1bit演算を繰り返し行えばよい。
【0063】
以上の演算は10回程度で全レコードを並列に処理した結果になっている、データ値が16bitであれば以上の2倍、32bitになれば4倍になるだけで完全一致から範囲検索を実現することが出来る。また、データ幅を8bitから9bitや10bitに増やす場合でも、極めて単純であり、必ずしもワードアドレスが連続されている必要もなくデータ幅を17bitや33bitにするなども違和感なく実現出来る。
【0064】
つまりこのメモリは、ある/なしの1bitデータから、任意データ幅の範囲検索でまでフィールド内の割付は自由自在である。
【0065】
例えば個人情報などの場合、「住まいが千葉県で、勤め先が東京都で、身長が170cmから175cmで、50歳から60歳までの、男性」などのような検索をすることにより情報が絞り込みされ、必要なレコードをのみを検出出来ることが大きな特徴である。沢山のレコードが検索される事を勘案して、プライオリティアドレスエンコーダ出力回路などの演算結果出力106をいくつかのブロックに分割して、ブロック単位で読み出し出来るように構成することもできる。
【0066】
データの書き込みは、一定幅のデータバスを利用して書き込み、読み出しを行うほか、縦横方向に先入れ先出し(FIFO)インターフェースでシリアルに書き込み、読み出しする構成とすることが出来る、この際幾つかを並列処理をすることも出来る。
【実施例4】
【0067】
図6は、本メモリを直並列に接続した場合の例である。
【0068】
完全に独立したメモリとして、縦方向(ワードアドレス方向)にも横方向(データ幅方向)に拡張することが出来るので、システムの拡張が極めて単純でありシステムに永続性を持たせることが出来る。データの種類によって、縦方向(ワードアドレス方向)にも横方向(データ幅方向)の必要な容量が定まる。先ほどの全文検索であれば、ワードアドレスは数十万にも上る、しかしながら個人情報であれば一人当たり数Kから数拾Kのワードアドレスがあれば十分である。
【0069】
通常、全く配列の定義やインデックスのないメモリの中から1つのCPUが、特定の情報を見つけ出す場合には、例えば10n秒平均でメモリをアクセスし照合するだけでも、1Mワードアドレスの場合10m秒程度、1Gの場合10秒、1Tの場合10,000秒(3時間程度)の時間が必要になる。CPUを並列に使用し分散処理理すれば、原則的にCPUの数に比例して処理時間を削減することが出来る。しかしながら大容量のデータベースをリアルタイム(例えば1秒以内)で検索するのは困難である。
【0070】
本メモリの場合、どのように直並列されていて例えば10TBのデータであっても全メモリの並列処理が可能で、ワードアドレス指定110と演算指定111を数回から数十回、数百回繰り返すだけで良い。
【0071】
記憶素子によりアクセススピードは様々であるが例えば一回の論理演算のスピードを10n秒とすると、情報を探す時間が数百n秒からマイクロ秒、1m秒あれば、100、000回の演算を実現することが出来る、完全並列処理が出来るのでどのようなビッグデータであっても数百n秒からマイクロ秒、1m秒程度の固定時間で目的の情報を探し当てることが出来ることがこの技術の最大の特徴である。
【0072】
この発明のメモリ構造とデータの縦横関係を逆転する考え方は、情報処理の回数を大幅に削減し、処理時間を大幅に削減する事を如実に示している。このことは様々な仮定に基づき検索を繰り返す必要があるビッグデータのデータマイニングに極めて効果的である。
【実施例5】
【0073】
図7は情報検索機能を備えたメモリの階層化接続の例である。
【0074】
図7の例では図の最上段に示す情報検索機能を備えたメモリ101をマスタとしてそのそれぞれの、レコードに対応させて、レコード毎に更に詳細なデータを格納したサブの情報検索機能を備えたメモリ101を検索できるように構成してものである、特にビッグデータであればこのような階層化データベースを利用することによりどのような規模のデータベースであっても対応可能になる。
【0075】
このメモリ101を利用してデータベースを構築するには、レコード、とフィールドの割り付けのみで、後は論理演算器105をどの様に演算指定111するかで利用することが出来る、従ってこのメモリ101を利用することにより、従来一般的である検索アルゴリズム、例えばSQL等のデータベース概念そのものを不要にする。CPUを用いた情報探しは、CPUの負担を軽減するために様々な利用上のテクニックが存在する、バイナリサーチはその典型的な例である。
【0076】
このアルゴリズムは情報データの検索回数を極めて少なくすることが出来る技術として情報処理の定番技術であるが、メモリ上のデータテーブルにデータ値を書き込む際、例えば小さいデータから大きいデータ順に並べておくような事前準備が必要でありデータが増えたり、減ったりするたびに、メモリ上のデータを並べ変えする(データメンテナンス)必要がある。つまり、このアルゴリズムにより、CPUが特定のデータ値を探す時の負担は短縮されるが、その前の事前処理、データメンテナンスに掛る負担はけして少なくない。
【0077】
以上はバイナリサーチの例であるが、ハッシュテーブルなどその他のアルゴリズムも全く同様である。
【0078】
本発明を利用すると、以上のようなアルゴリズムを使用する必要がなくなるので、事前準備やメンテナンスなどの情報処理は全く不要である、レコードのどこか、フールドのどこかを指定して、データを登録するか抹消するだけであり煩わしい配列の変更、データの並べ替えなどのデータメンテナンスは一切不要である。従って、本メモリ101をコントロールし情報処理の全体をコントロールするCPUは高速である必要がなくなるので情報処理、特に情報検索に関わる電力を大幅に削減することが可能になる。このことにより、CPUの負担の解消と周辺回路、情報検索の利用技術を簡素化する結果となる。
【0079】
本願発明者はこれまで様々なメモリデバイスの研究行ってきた、特許第4588114号 情報絞り込み検出機能を備えたメモリはパターンマッチなど論理積演算が得意なメモリである。
またPCT/JP2013/059260号 集合演算機能を備えたメモリは以上の情報絞り込み検出機能を備えたメモリの概念を拡大発展させて、論理積演算、論理和演算、論理否定演算などを自由に行うことができるメモリである。
【0080】
以上の発明はいずれも連想メモリ(CAM)の応用技術であるので、本発明を利用することが出来る。
【0081】
一例であるが、論理演算器105にシフトレジスタ機能を組合せすることにより、情報絞り込み検出機能を備えたメモリや、集合演算機能を備えたメモリが実現できる。
【0082】
本方式は、通常の連想メモリ(CAM)に比較すると並列演算そのもののスピードはやや低減されるものの大型の等価連想メモリ(CAM)が実現できるので情報検索全体としての処理時間を圧倒的に短縮することが出来る。
【0083】
この様なメモリ101は、ゲノム解析に極めて有効である。人間のDNAなどは数Gの塩基情報をもつビッグデータである、この様なビッグデータの解析は極めて多大な時間を必要としている。もし数Gの塩基情報を一括してこのメモリ101に記憶しておけば、DNA解析はスパコン以上に高速で精確なものになる。現在の情報処理は、メモリ100のデータ幅が32bit、64bit、128bitなど一定のデータ幅でCPUが順次アドレスをアクセスしデータを読み込み逐次情報処理を行って行くものである。データ幅(バス幅)が広い程、情報処理の効率は高いが、デバイスの入出力ピン数が増えること、デバイスを実装するプリント基板の配線負担が多いことなどデータのバス幅の拡大には限界がある。
【0084】
この発明のメモリ101の特徴は、これまでのメモリ構造やデータベースの情報処理の考え方を縦横逆転し、メモリ内で1bit毎の並列演算にしたことにある、たとえ1bit毎の演算でも大量の記憶セル102情報を並列に情報処理することが出来れば情報処理の演算回数は極めて少なく効率的になること、さらにメモリデバイスの特徴つまり、外部に情報を出すことなくメモリチップ内部で大量のメモリセルを並列に駆動し並列論理演算器に入力(代入)し並列演算することが出来ることを活用したものである。
【0085】
通常のDRAM、SRAM、FLASH、また最近は不揮発、省電力が期待される磁気記憶型のメモリセルも盛んに研究されておりこの様なメモリにも共通に利用可能である、本メモリはチップのごく一部に論理演算機能を加えるのみであるので極めて大容量で超高速で簡便な情報処理が出来ることである。
【0086】
FPGAにもこのメモリ101のアルゴリズムを容易に実装することが出来る。
【0087】
このメモリはインメモリデータベースでしかもCPUに頼らない自己検索機能を持たせたメモリである、このメモリとCPUを一体化したデバイス構成も有効である。
【0088】
過去から連想メモリ(CAM)は高速な演算機能をもつデバイスとして知られており様々な知識処理を含む様々な応用例が研究されているものの大型の記憶容量を持つことが出来ない、消費電力が大きい、などの理由により通信ルータなどごく一部の目的にしか利用されていない。
【0089】
この発明は、大容量でしかも連想メモリ(CAM)に匹敵する情報検索スピードを持つ新しいタイプの情報処理メモリであるので各種データベースやビッグデータのデータマイニング、データ解析さらには知識処理に幅広く利用することが可能である。
【0090】
またこの技術は情報処理の電力を大幅に抑制することが出来るのでICT機器の環境問題の解消に大きな意義をもち、この技術は新しい情報処理手法の一つになる。
【符号の説明】
【0091】
100 メモリ
101 情報検索機能を備えたメモリ
102 記憶セル
103 ワード幅
104 ワードアドレス
105 論理演算器
106 演算結果出力
107 演算結果
110 (ワードアドレス)選択指定
111 演算指定
112 論理積
113 論理和
114 論理否定
115 排他論理
116 論理記憶