説明

曖昧さを含む情報の検出機能を備えた半導体及びこの半導体を組み込んだ装置

【課題】高速で効率よく高精度で曖昧さを含んだ情報を検出するための半導体及びこの半導体を組み込んだ装置を提供する。
【解決手段】外部から入力条件として与えられる情報1とその情報のアドレス上の位置2との2つの入力条件と、記憶された情報と、の双方を比較しその条件に適合するアドレスを出力する機能を持ったメモリに、所定数与えられる情報の情報が一致する数をスコア化する手段と、所定数与えられる情報の配列上の位置と記憶された情報のアドレス上の位置のずれを許容するために、アドレスの範囲を設定し許容範囲内のアドレスを検出する手段と、結果22を出力する手段とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は曖昧さを含む情報の検出機能を備えた半導体及びこの半導体を組み込んだ装置に関する。
【背景技術】
【0002】
本発明の意図を理解するに必要な事を説明する。
現在の一般的なコンピュータの体系はCPU(中央処理装置)を中心とする情報処理体系(プロセサベースアーキテクチャ)となっている。CPUは万能の情報処理能力を有しているが、大量の情報の中から特定の情報を見つけ出す処理をするには適しておらず情報処理上の様々な弊害が発生する。
【0003】
具体的には現在のコンピュータはCPUと他のデバイスが分離され、バスを通じてCPUと他のデバイスとの情報のやり取りするために、CPUがメモリ上のデータをアドレスごとに逐次探し出す処理、つまり情報検索が避けられない宿命(ノイマンバスボトルネック)がある。
【0004】
このような課題を解決するに当たり、バス接続が不要となるようメモリを内部で情報処理を完結できる情報処理(メモリベースアーキテクチャ)が人工知能など分野の研究で進められてきたが、これまで効果的な解決策は見当たらなかった。
【0005】
この難題を克服する技術として、情報絞り込み検出機能を備えたメモリが提案されている(特許文献1)。この提案はメモリベースアーキテクチャによりCPUに代わり大量のデータの中から特定の情報を見つけ出す新しい情報処理体系を実現するものである。この発明の概要を以下に文献1の特許請求の範囲を引用して説明する。
【0006】
メモリアドレスごとに情報を記憶しその情報を読み出し可能なメモリであって
このメモリは、
(1)外部から与えられる、このメモリに記憶されたデータを並列に比較するための第1の比較データと、このメモリのアドレスのアドレス同士を並列に比較するための第2の比較データと、の各比較データを入力するための入力手段
(2)第1の比較データでこのメモリに記憶されたデータを並列に比較し合否判定する手段
(3)第2の比較データでこのメモリのアドレス同士を並列に比較し合否判定する手段
(4)以上(2)、(3)双方の合否判定結果をアドレスごとに並列に論理演算するデータとアドレスの各合否結果の論理演算手段
以上(1)から(4)を具備することを特徴とする。
【0007】
この発明の特徴は上記(3)のアドレス同士を並列に比較し合否判定する手段であり、一般的な情報はメモリ上にアドレス同士が相関をもって配列情報として記憶されるので、アドレス同士が相対的に比較できる。
【0008】
具体的には、連想メモリCAM27の情報1の高速な検出性とアドレスを並列に比較する二つの条件は、情報1と、その情報の位置2のパターンマッチそのものであり、このパターンマッチを情報の検出に利用したものである。
【0009】
これにより、情報の検出がメモリを主体とする半導体や装置内部で完結されるため、CPUによる情報の逐次処理が不要になり、極めて高速な情報の検出が可能なる。
【0010】
特許文献1の発明にはこの情報絞込み検出機能を備えたメモリ(以下、情報検出メモリ7と称す)による情報の検出例が紹介されおり、この内容を以下の通り引用する。
【0011】
時間軸をアドレスに対応させて、1アドレス、1日ごとに、ある土地の、1年、365日の最高気温、100年分を記憶した気象データを例にパターン情報の検出を考える。
例えば当日の最高気温が5℃で、前日が10℃、翌日が15℃だったその当日を100年間全て探し出す場合(前日や翌日に限らず任意の日とその温度の組合せ、比較の日数も任意であることを意図する)の情報の検索と検出を考える。
【0012】
以上のような温度パターンデータのアドレス数は365日×100年≒36Kアドレスであり、もしこの土地の最高気温が0℃から36℃までとすると1℃当たり年10日程度、つまり5℃、10℃、15℃、の日がそれぞれ概ね100年間に、1K日(1000日)程度含まれている。
【0013】
ソフトウエア、や配列のアルゴリズムを使用せずに確実な方法で、当日の最高気温が5℃で、前日が10℃、翌日が15℃の日を探す方法として
(1)通常のメモリに気象データを記憶し、CPUでメモリを逐次検索して5℃の日を探しその前後の日の温度を比較する・・・・・情報処理回数は36Kアドレス数+α回の処理
(2)連想メモリに気象データを記憶し、連想メモリに5℃を比較データとして与え、連想メモリより5℃の日を逐次出力させ、CPUでその前後の日を比較する・・・・・情報処理回数は1Kアドレス数+β回の処理
(3)情報検出メモリ7に気象データを記憶し、このメモリに温度と、相対日(アドレス)と、を3回比較データとして与えることにより、このメモリが目的とする当日を出力する・・・・情報処理回数は3回の比較処理+θ回の出力処理
【0014】
以上の(3)が情報検索を全く不要にした情報検出メモリ7を利用しメモリベースの情報処理の概念であり、通常のメモリとCPUの組合せにおける情報処理回数を1万分の1程度まで削減することが可能であり、これに伴い情報処理のスピードは飛躍的に向上させることが可能となる。
【0015】
これまでに試作品としてFPGAに実装した情報検出メモリ7を紹介する。
【0016】
FPGAのリソースの関係から情報処理容量は1KByteと大変に小容量であるが、7つの情報とその情報の位置を完全並列にマッチング演算する機能を有し、FPGAクロック周波数200MHz、5n秒の時、このFPGA情報検出メモリ7デバイスに例えば文字情報を記憶させ、7つの文字列の情報を検出する時間は、34n秒であった。従って1条件当り約5n秒で1Kアドレス空間全体のマッチング処理行ったことになる。
【0017】
通常のメモリに記憶された情報をCPUが探しに行く場合、通常のDRAMの1アクセスタイムだけでも60n秒から70n秒が必要になり、1Kアドレス空間全体となれば60マイクロ秒から70マイクロ秒が必要になる。
【0018】
以上の5n秒のマッチング処理時間と、この60マイクロ秒から70マイクロ秒の処理時間との単純比較によっても、従来のメモリ上の情報をCPUが逐次処理をして必要な情報を見つけ出す処理が単位違いであることが実証された。
【0019】
しかしながらこの試作品は、情報とその情報の位置の完全一致を高速で行うタイプのもので、たとえば文字情報、DNA情報、音声情報など、曖昧さを含んだ情報処理に適用する場合にはその応用方法を確立する必要がある。
【0020】
本発明は、情報検出メモリ7の高速な情報検出アルゴリズムを効果的に適応し主に一次元情報となる文字情報、DNA情報、音声情報の曖昧さを含んだ情報を高速に効率よく精度よく検出することを目的としている。
【0021】
以下の説明にあたっては、特にデータが大量であり、膨大な情報処理が必要になるDNA解析を例にして説明をする。
【0022】
生命体の遺伝情報の解析で知られるDNAは、アデニン(A)、チミン(T)、グアニン(G)、シトニン(C)、の4種類の塩基情報配列が連続して配列されたもので、文字列の情報同様に読み取りその結果をもとに、生命起源の探求や、医療、犯罪捜査など様々な目的で解析が行われる。
【0023】
人間のDNAの配列は30億塩基配列が正逆ペアー配列されており、この1塩基情報を1Byte毎にメモリに記憶させ、この中から情報を見つけ出す場合は正逆配列合計6GByteの超大量のアドレス空間から目的の情報を見つけ出す必要がある。
【0024】
DNA解析を行う上で最も重要なことは、進化の過程で起こる一部の配列の変化や異常、さらには検体から抽出されたDNA塩基情報は抽出上の課題により、曖昧さを含んでいることである。
【0025】
ここでいう曖昧さの第1のケースは塩基配列が欠失する、もしくは挿入される場合、第2のケースは変化した塩基情報もしくは間違った塩基情報となる場合の2つのケースである。
【0026】
以降第1のケースの曖昧さは塩基配列のギャップまたは単にギャップと表現する。また第2のケースの曖昧さは変化塩基情報または単に変化情報と表現する。
【0027】
DNAは一般的に数億以上の文字情報の配列であり、これらの膨大な情報に対し以上の2つの曖昧さを許容して、正確にしかも高速に解析するための様々なアルゴリズムが研究されている。これらの研究の多くは従来からのハッシュテーブルやインデックス化手法、ダイナミックプログラム(DP)手法や、探索木問題として研究されていたアルゴリズムにDNA情報の特徴を活かした手法が組み合わされたものである。
【0028】
そのもっとも一般的な例が、DNA同士がどれだけ似ているかを解析するための相同性解析(ホモロジ解析)であるFASTA、BLAST(Basic Local Alignment Search Tool)であり、ネット上で公開されており様々な分野で利用されている。
【0029】
これらのFASTA、BLASTを利用したネット上の情報検出は、通常調査したい情報(クエリー)が1つまたは少数で、登録されている大量の情報(サブジェクト)のどれに最も似ているか(相同性があるか)を検出することが主な目的である。
【0030】
しかしながら、統計的な傾向を判断したり、解析したりする目的で、調査対象としたい情報(クエリー)が大量にある場合(網羅的な解析)には、組合せ解析による多大な情報処理が必要となり、FASTA、BLASTアルゴリズムを利用して高速なサーバーを使っても数週間程度の処理時間が必要になる場合や、スーパーコンピュータを用いて解析して多くの時間が必要になる場合も少なくない。
【0031】
これまで一般的な情報処理はCPUが主体になり行われるものであり曖昧さを含む情報の検出もその例外ではない。本発明はメモリベースアーキテクチャ(メモリが主体になった情報処理体系)による装置や半導体デバイスで曖昧さを含む情報の検出をするものである。
参考までにプロセッサベースアーキテクチャによるDNAの変異体配列を検出するための手法が開示された先行文献を示す(特許文献2)。
【先行技術文献】
【特許文献】
【0032】
【特許文献1】特許4588114号
【特許文献2】特開2003−330934号公報
【発明の概要】
【発明が解決しようとする課題】
【0033】
本発明が解決しようとする課題は、曖昧さを含んだ情報の検出を、従来のCPUを主体にした情報検出では実現不可能な、メモリベースアーキテクチャの並列処理の特徴を活かし高速で効率よく高精度で曖昧さを含んだ情報を検出する機能を備えた半導体及びその半導体を組み込んだ装置を提供することである。
【課題を解決するための手段】
【0034】
請求項1に記載の発明は、外部から入力条件として与えられる情報と、その情報のアドレス上の位置と、の2つの入力条件と、記憶された情報と、の双方を比較しその条件に適合するアドレスを出力する機能を持ったメモリに
(1)所定数与えられる情報の情報が一致する数をスコア化する手段と
(2)所定数与えられる情報の配列上の位置と、記憶された情報のアドレス上の位置と、の双方のずれを許容するために、アドレスの範囲を設定し許容範囲内のアドレスを検出する手段と
(3)以上(1)及び(2)の結果を出力する手段と
以上(1)から(3)を具備することを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【0035】
請求項2に記載の発明は、前記所定数与えられる情報、並びに所定数与えられる情報のアドレス上の位置の検出は並列処理であることを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【0036】
請求項3に記載の発明は、記憶すべき情報をアドレス毎に記憶し読み出し可能な装置もしくは半導体において
(1)アドレス毎に配列された複数の配列情報をアドレス毎に並列に記憶する手段と
(2)上記複数並列記憶された配列情報を選択するする手段と
(3)上記選択された配列情報をアドレス毎に論理積(AND)演算する手段と
(4)所定数の、情報とその情報の位置と、を入力する手段と
(5)上記入力条件にもとづき上記配列情報を選択する手段と
(6)上記論理演算結果を出力する手段と
以上(1)から(6)を具備することを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【0037】
請求項4に記載の発明は、前記アドレス毎に論理積演算する手段は並列論理積(AND)演算処理であることを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【0038】
請求項5に記載の発明は、前記配列情報は連想配列情報であることを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【0039】
請求項6に記載の発明は、前記複数記憶する配列情報はアドレスシフトした連想配列情報であることを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【0040】
請求項7に記載の発明は、請求項1から6記載のいずれかの半導体を組み込んだことを特徴とする装置である。
【発明の効果】
【0041】
医療の現場などでは、朝採取した患者の血液からのDNA情報を当日の診察に活かしたいなどのリアルタイムで高速なDNA検出を求める要求も多く、高速なDNA解析の需要は計り知れない。本発明の情報検出方法は、DNAなどの曖昧情報を高速で解析するシステムを、CPUを中心としたこれまでの情報検索と比較し、システム構成を簡素化し、廉価、必要とする現場に提供することができる。また、高価で発熱が多く、広いスペース必要なスーパーコンピュータに比較し、回路構成も、発熱も、スペースも抑えられるので、DNAの標準検出デバイスや装置として利用することが出来るとともに、多くの1次元情報に応用ができる。
【図面の簡単な説明】
【0042】
【図1】図1は情報検出メモリによる一般情報検出例である(実施例1)。
【図2】図2は情報検出メモリによる塩基配列の検出例A(完全マッチ)である(実施例2)。
【図3】図3は情報検出メモリによる塩基配列の検出例B(ギャップ許容)である (実施例3)
【図4】図4は情報検出メモリによる塩基配列の検出例C(1組の変化情報許容)である(実施例4)。
【図5】図5は情報検出メモリによる塩基配列の検出例D(2組の変化情報許容)である(実施例5)。
【図6】図6は情報検出メモリによる曖昧さを含む情報の検出例である(実施例6)。
【図7】図7はギャップ許容の情報検出例である(実施例7)。
【図8】図8は情報検出メモリの半導体構成例である(実施例8)
【図9】図9は情報検出メモリによるシステム構成例である(実施例9)。
【図10】図10は情報検出データ転送の例である(実施例10)。
【図11】図11はギャップ許容配列データの検出例Aでギャップ0の場合である(実施例11)。
【図12】図12はギャップ許容配列データの検出例Bでギャップ1の場合である(実施例12)。
【図13】図13はギャップ許容配列データの検出例Cでギャップ2の場合である(実施例13)。
【図14】図14はギャップ許容配列データの検出例Dでギャップ−1の場合である(実施例14)。
【図15】図15はギャップ許容配列データのメモリ上の情報配列例である(実施例15)。
【図16】図16は曖昧さを含む情報の検出機能を備えた半導体並びにその半導体を組み込んだ装置の実施例である(実施例16)。
【発明を実施するための最良の形態】
【0043】
最初に情報検出メモリ7の特徴を活かし曖昧さを含む情報の検出を効果的に実施するための考え方を説明する。
【実施例1】
【0044】
図1は、情報検出メモリ7による一般的な情報の検出例である。情報検出メモリ7は、目的の情報を探し出すための、情報1、並びにアドレス相対距離6の2種類の条件、条件設定データ8として与えることにより、情報検出メモリ7の絶対アドレス4にアドレス3毎に記憶された情報1の中から情報検出メモリ7内部の情報検出アルゴリズムによりこの条件にマッチ13する情報を探し出し、情報検出メモリ7自身がその結果を出力するものである。
【0045】
本実施例の場合情報検出メモリ7には文字情報が記憶されており、図に示すように本例の場合、条件1から5まで5条件の情報1、C、G、T、A、Tとアドレスの相対距離6、それぞれ100番地、が完全にマッチ13、する情報が見つかるとその結果出力22が出力される。
【0046】
条件1から条件5までの条件は1条件毎にマッチ13処理することも5条件並列にマッチ13処理させることも可能である。通常情報検索並びにその検出結果処理はメモリ上の情報をCPUが処理するものであり逐次処理が不可欠である。情報検出メモリ7はこのようなメモリ上の情報を探し回るCPUの逐次処理が全く不要になるので、極めて高速な情報の検出が可能になる。
【実施例2】
【0047】
図2は情報検出メモリによる塩基配列の検出例A(完全マッチ)である。DNAの塩基配列は膨大な配列数であるが、その一つ一つはわずか4種類のアデニン(A)、チミン(T)、グアニン(G)、シトニン(C)、の塩基情報である。従って1つの情報の統計的な確率は1/4程度となり情報を見つけ出す際には連続した3、5、7塩基情報などまとまったひとかたまりの配列として捉えると設定が容易である。
【0048】
3つの塩基配列を1つのサンプルデータ11とする場合その統計的な確率は1/(4×4×4=64)、5つの塩基配列を1つのサンプルデータとする場合は、1/(4×4×4×4×4=1024)の確率となる。本実施例では3つの塩基配列を1つのサンプルデータ11とした。選択したアドレス並びにその前後のアドレスの情報を1組として3つの塩基配列を得ている。
【0049】
本実施例はアドレス相対距離6を一律100にしているが、3、5、10、200でも自由であり、条件毎にアドレスの幅を変化させることも自由であるが、確率的にアドレス相対距離が短い程ギャップの影響も少ない。
本実施例ではアドレスXを基準として、X+100、X+200、X+300、X+400のアドレスの各情報1を検出し、その情報の位置2が完全マッチ13した場合を示している。
【実施例3】
【0050】
図3は情報検出メモリによる塩基配列の検出例B(ギャップ許容)である。 先に述べたとおり、DNAの塩基解析は曖昧さ15を克服することが必要である。
【0051】
曖昧さ15の1つは、データベースの塩基配列、クエリデータのいずれか、もしくは双方の塩基配列の一部に塩基情報の欠失・挿入(ギャップ)16が存在する場合である。本実施例では、このギャップ16を許容するために、許容ギャップ23を設定し、この範囲の塩基情報のギャップ16を許容して結果出力22を出力する構成としたものである。
先行文献1のアドレススワップ回路は、アドレスの相対距離を検出するために設けられたもので、一般的にはシフトレジスタや、マルチプレクサーによりアドレスを相対的にシフトすることにより実現可能であるが、この回路に範囲を設定する機能、許容ギャップ23を設けることにより容易に実現可能である。
【0052】
以上の内容は所定数与えられる情報の配列上の位置と、記憶された情報のアドレス上の位置と、の双方のずれを許容するために、アドレスの範囲を設定し許容範囲内のアドレスを検出する手段となる。
【0053】
本実施例ではアドレス相対距離100に対し±10アドレスまでを許容する場合を示した。
【実施例4】
【0054】
図4は情報検出メモリによる塩基配列の検出例C(1組の変化情報許容)である。曖昧さ15のもう一つは、データベースの塩基配列、クエリデータのいずれか、もしくは双方の塩基配列の一部に塩基情報に変化情報17が存在する場合である。いずれか、もしくは双方に変化情報17が存在する場足には、条件1から5まで5条件の情報の内、いくつかがマッチ13しない場合でもこれを許容することにより、双方が類似性を持つ情報であると判断することが出来る。
【0055】
図4に条件1から条件5までの5条件の内、1つの条件を無視(マスク)18してこれ以外の4つの条件がマッチ13すれば類似性があると判断する場合の構成例を示した。 図4では条件4を無視する場合を示しているが、言うまでもなく、条件1から条件5まで同様に1組の塩基配列を無視(マスク)17する必要がある。
【実施例5】
【0056】
図5は情報検出メモリによる塩基配列の検出例D(2組の変化情報許容)である。先に1組の塩基配列を無視(マスク)17する場合の実施例を示したが、本実施例では5条件中2組の塩基配列を無視(マスク)17する場合を示した。
図5では条件2並びに4を無視する場合を示しているが、条件1から条件5までの組み合わせでいずれかの2組の塩基配列を無視(マスク)17する必要がある。
【実施例6】
【0057】
図6は、情報検出メモリによる曖昧さを含む情報の検出例である。
これまで曖昧さ15を含む塩基情報の欠失(ギャップ)16並びに変化情報17の許容の方法をそれぞれ独立して説明してきたが、図6はこの二つを総合したものである。
条件設定データ8の条件1から5の、アドレスの相対位置のギャップを、許容ギャップ23として指定し、情報の変化情報17を許容するために、本例では、5条件中、5マッチ、4マッチ、3マッチ、2マッチ、1マッチ、0マッチまで6段階で互いの情報の類似性19を類似度スコア20として判定できるようにしたものである。
【実施例7】
【0058】
図7は、ギャップ許容設定における検出例である。図7に示す通り条件設定データ8に許容できるギャップのアドレス範囲、許容ギャップ23を設け、中心アドレス、この場合は相対アドレス5が100、200、300から±5アドレスの範囲にあれば合格とするものである。回路構成は中心アドレスから許容するアドレス範囲を論理和(OR)演算させることで容易に実現可能である。条件範囲を広く取り過ぎると、同一情報1が沢山検出されるので適切な範囲を指定することが重要である。
【実施例8】
【0059】
図8は、情報検出メモリの半導体構成例である。曖昧さ15を含む情報の検出は、一定のキャップと変化情報の2つを許容することが必要であり、回路構成が複雑になる。このような場合に、1つの半導体チップに、複数の情報検出メモリ7を集積させることによりシステムの全体構成を単純でシンプルな構成にすることが出来る。
図8の例では、5つの情報検出メモリ7並びに周辺論理素子25を1つの半導体チップに集積させた構成例であり、以下に本実施例の概要を示す。
【0060】
転送データ入力より転送されるデータ26は、5つの情報検出メモリ7に並列にデータが転送できる構成とする。外部から与える、条件設定データ8は、情報1〜5、相対アドレス1〜5、ギャップ1〜5が、それぞれの情報検出メモリ7の入力に並列に入力される。この設定条件データ8による、縦5つの情報検出メモリ7の個別のマッチ13の検出結果22を論理演算して類似度スコアとして外部出力の結果出力22としている。
本実施例では5つの条件の完全マッチ出力は類似度スコア20を5としている。
縦5つの情報検出メモリ7の内、1つを無視(マスク)18することにより、外部出力の結果出力22は4つの条件のマッチ出力となり、類似度スコア20を4としている。本実施例では、同様に類似度スコア20を3から1までを出力させる構成としている。
【0061】
以上5から1までの類似度スコア20は、条件設定データ8とどれだけ類似した情報であるかを判定するための重要な出力である。
【0062】
以上のように、この5つの情報検出メモリ7の内のいずれかを無視(マスク)18するように論理回路を構成することにより、任意の組合せの曖昧検出が可能になる。情報検出メモリ7からカスケード接続されるギャップ補正24信号は、それぞれのギャップ値を補正し、それぞれのアドレス範囲が独立してアドレス演算出来るようにするための信号である。これらの構成により完全並列による曖昧さを含む情報の検出が可能になるので極めて高速で効果的な情報検出が可能になる。
【0063】
情報検出メモリ7の1つ当りの記憶容量が1KByteであれば5KByteサイズのCAM、10KByteであれば、50KByteサイズのCAM、100Kサイズであれば500KByteのCAM、1Mサイズであれば5MByteのCAM、を用意出来るチップサイズを選択することにより、曖昧さを含む情報検出を極めて高速で効果的に実現できるシステム、オンチップ(SoC)の半導体を作成することが出来る。小容量の場合においてはFPGAを用いて回路構成が実現できることは言うまでもない。
【実施例9】
【0064】
図9は、情報検出メモリによるシステム構成例である。データベース9中の1〜Nまでの情報と、クエリデータ10中の1〜nの情報と、双方の曖昧さ15を含んだ情報を組合せ網羅的に情報検出する場合のシステム例を示している。クエリデータは一般的に100から1Kの塩基配列で、データベースの情報は1つ当たり数メガの塩基配列となっており、双方のデータ数が多い場合、これらのデータ同志の類似性を網羅的に見つけることは情報処理上極めて負担の多い処理である。
【0065】
情報記憶容量がLの情報検出メモリ7にデータベースから1つのデータを選択して、そのデータのデータ容量がM(M>L)のデータを使う場合、最初に先頭番地からLまでを、情報検出メモリ7に並列に転送して、L分の情報を記憶させておく。
【0066】
この記憶された、情報記憶容量Mの情報と、1からnのクエリデータの類似性を見る場合、先に説明の、条件設定データ8として、相対アドレスが10から100の情報を5サンプル抜き出して、情報検出メモリ7に入力することにより、その5サンプルのマッチの類似性19が、類似度スコア20として出力され、類似度スコア20の高い情報同志を記録しておく。以上1〜nまだでのクエリデータを繰り返す。
【0067】
1〜nまでのクエリデータが完了した際、先に選択したデータのL以降の残りのデータを繰り返し転送して、上記説明の通り、クエリデータ1〜nまでを繰り返せばよい。
【実施例10】
【0068】
図10は情報検出データ転送例である。以上の手法で曖昧情報を検出する上で注意すべきすべきことは、図10に示すようにクエリデータの情報1から採取するサンプルのアドレスの最大の範囲がKである場合、Kのアドレスの全範囲が漏れることなく検出されるようオーバラップして情報検出メモリ7に記憶されるようデータ転送26を行う必要がある。
【0069】
データベース9中の1つのデータが完了すれば、次のデータに切り替え1〜Nまでの全データとクエリデータの網羅的な類似性を検出し記録した互いの情報の類似度スコアの高い部分が解析結果である。
【0070】
以上の実施例は情報検出メモリ7の様々な効果を活かしたDNA等の曖昧さ15を含んだ情報の検出例であり、言うまでもなく図8の半導体、図8のシステムを並列処理、分散処理することにより更に情報検出速度を向上させることが出来る。以上の手法はDNA以外様々な情報に応用することが出来る。
【0071】
以下にDNA情報の配列を効果的に利用し安価で高速な情報の検出をする方法を説明する。
【0072】
仮に人間のDNAの配列は30億塩基配列がペアー配列されており、この情報の中から類似する情報を見つけ出す場合は6GByteのアドレス空間を何回に分割してこれらの中から類似情報を見つけ出すかが鍵になる。
【0073】
どれだけ広い範囲のアドレス空間を1組の条件設定とそれに基づく演算で検出できるかが鍵である。つまり大量のデータの中から、如何に速く類似性のある部分にたどり着くかが最重要でありたどり着けばその結果に基づき様々な解析を行うことが出来る。
【0074】
以下の手法はDNAの塩基情報がA、T、G、Cの4つの情報に限定されていることに着目しクエリデータ10から一定数以上の連続した文字列を条件設定データ8として与え高速な検出を目指すものである。
【実施例11】
【0075】
図11は、ギャップ許容配列データの検出例Aでギャップ0の場合でありギャップを含んだ曖昧情報を検出するものである。
【0076】
アドレス3ごとに記憶された情報1(この場合はDNA情報)はCAM27(連想メモリ)のデータ検出機能により、A,T、G、Cの4通りの情報が得られアドレス毎に配列されている。
【0077】
比較する情報同士にギャップがある場合このCAM27の出力をシフトした情報配列を考えるとよい。図11の例では、アドレス3の7番地〜17番地までの文字列、TGAACTAGACGを検出する際、2文字までの欠失があっても、検出できるよう構成したものであり、情報1のA、T、G、Cのそれぞれのシフト0(符号29)、シフト1(符号30)、シフト2(符号31)した情報配列を合計した合計データ32をギャップ許容データ28として得たものである。
【0078】
条件設定データ8として、情報の位置2、本例では0〜10までの文字情報が与えられる場合、この情報の位置2を考慮して、ギャップ許容データ28を情報の位置に相当する分シフト(この場合上方にシフト)し配列させる。本実施例の場合、順番にTはシフト0、Gは上方にシフト1、Aは上方にシフト2、Aは上方にシフト3、Cは上方にシフト4・・・・・最後のGは上方に10シフトし情報を配列する。
【0079】
以上により完成された情報1の配列を確認するとアドレス7では全ての情報1とその情報の位置2がマッチ13していることを示している。従って与えた条件設定データ8の基準アドレスとなる相対アドレス5の0番目のアドレスは、絶対アドレス4の7番地であることが検出される。
【0080】
この配列情報を利用するアルゴリズムは、同一情報の距離が識別条件となる、たとえば同一情報の距離が長ければ長いほど識別に貢献することになる。
【0081】
以上の配列のみ組合せによる検出方法は、情報の変化情報も許容する処に大きな特徴がある。例えば、情報の位置2が0のTの情報1は、AまたはGに置き換えても結果は同様であり、他の情報の位置2でも同様である。従って曖昧さを含んだ情報を検出する上では好都合である。
【実施例12】
【0082】
図12はギャップ許容配列データの検出例Bでギャップ1の場合でありギャップを含んだ曖昧情報を検出するものである。図12で与えられる、条件設定データは、1つのギャップがある場合の曖昧情報検出例である。図11での説明と同様に、アドレス3の7番地がマッチ13している。
【実施例13】
【0083】
図13はギャップ許容配列データの検出例Cでギャップ2の場合でありギャップを含んだ曖昧情報を検出するものである。図13で与えられる、条件設定データは、2つのギャップがある場合の曖昧情報検出例である。図11での説明と同様に、アドレス3の7番地がマッチ13している。
【実施例14】
【0084】
図14はギャップ許容配列データの検出例Dでギャップ−1の場合でありギャップを含んだ曖昧情報を検出するものである。
【0085】
本実施例では条件設定側の情報の位置2の6の位置にGが挿入された場合である。本来であれば、−1シフトした配列データを合計データ32として持つことが一般的であるが、挿入の場合も検出できることを示しており、曖昧さを含む情報の検出が極めて簡単に実現できることを証明する結果でもある。
【0086】
以上のギャップを許容する配列同士の情報検出は組合せ確率が低下するのでギャップ許容の幅と、条件として指定する配列の長さを考慮すればよい。極めて簡単な演算で実現可能なのでシミレーションプログラムを作成し諸条件を決定するとよい。
【実施例15】
【0087】
図15はギャップ許容配列データのメモリ上の情報配列例である。図11、12、13、14で説明の情報配列を一般的なメモリ上に配列したものであり、この場合、A、G、T、C、の4つの情報毎に、任意の位置のギャップを2つまで許容し、情報の位置2を0から14までの15配列した例であり、4種類の情報×15配列=合計60の配列情報になる。以上の配列データは、特にCAMを利用して作成する必要もなく、通常のCPUでこの配列データを作成することが可能である。この配列データを事前に用意しておくことにより、極めて高速な曖昧情報の検出が実現できる。
【実施例16】
【0088】
図16は曖昧さを含む情報の検出機能を備えた半導体並びにその半導体を組み込んだ装置の実施例である。図16の回路機能のすべて一体とした半導体とすることも、各機能を個別に半導体化して装置とすることも任意である。先に説明の図15の情報配列を利用して、データ転送26を行い、この半導体並びにこの半導体を組み込んだ装置で曖昧さを含む情報を検出する例である。
【0089】
先ほどの合計60の情報配列を、この半導体または装置のメモリに情報1と情報の位置2によるマトリックス状にアドレス毎に配列を並列に記憶しておき、外部から与えられる条件設定データによりこのマトリックス状に配列されたメモリの内から指定されたマトリックスのメモリを選択しメモリに記憶された0、1いずれかの情報を論理素子25でその論理積(AND)を取ればよい。これまでの説明のアドレス3の7番地は本例では21番地になりマッチ13する出力はこれらの出力はプライオリティエンコーダなどで順次外部に読み出せるよう結果出力22とし出力される。
【0090】
つまり複数並列に記憶された1アドレス当り1bitのメモリとその選択回路並びにAND演算回路構成のみで完全並列による曖昧さを含んだ情報検出が可能になる。以上の処理はメモリのアドレス空間の全範囲を並列に情報処理するアルゴリズム、つまりメモリベースアーキテクチャによるものであるので、通常のCPUとメモリ並びに情報処理の様々なテクニックやアルゴリズムを利用した情報の検出よりも高速で効果的である。
【0091】
本実施例ではギャップを許容するために連想配列データを1アドレスずつシフトした配列データで説明しているが、様々な配列データが利用することが可能であり、情報を検出するための論理回路の構成は任意である。
【0092】
先に述べた情報検出メモリ7は内部の構成としてCAMの機能並びに、CAM機能で検出されたアドレスの、アドレスの位置を移動するためのシフトレジスタなどの機能回路が必要になる。
【0093】
本実施例の回路方式では、このような機能が一切不要となるので極めてメモリアドレスサイズが大型で安価な半導体やその装置を作成することが可能になる、半導体化する場合の利点は1回の条件で検出するデータベース9の情報1のアドレス3の範囲を広くすることにより情報検出の効率を大幅に上げることが出来ることである。
【0094】
現在のメモリ技術は極めて大容量のメモリを低コストで高品質に実現する能力を持っている。仮に1Mアドレスサイズのこの半導体であれば、6Gアドレスサイズの人間のDNAを、概ね6千回、10Mアドレスサイズの半導体であれば、概ね600回の情報処理で全てのアドレス空間を検出することが出来るようになる。
【0095】
さらに網羅的なデータ解析では、1つのデータベースデータ対し数億のクエリデータをサンプルとして比較検出する場合がある。このような場合1回当りの条件設定から演算結果出力までの総合検出時間(マッチ演算時間)が極めて重要な時間になるが、本例によれば極めて単純でシンプルな構成の完全並列処理による半導体回路や装置となるので1回当りのマッチ演算時間が極限の最短時間となる。
【0096】
CPUはバスボトルネックが存在するので大量の情報の中から特定の情報の見つけ出すのは極めて苦手で過酷な処理になるが、見つけ出した情報の詳細を解析する処理は得意であり高速である。従ってこの方法は大量の情報の中から可能性のあるアドレスを見つけ出す処理、つまり大雑把な情報検出を行い、後はCPUに任せる方法が効果的である。
【0097】
以上の結果は、CPUのみが中心となり、あらゆるアルゴリズムを駆使し情報検索し情報を検出する従来の手法に比較して格段に高速な検出結果をもたらすものである。記憶する配列情報並びに入力条件を複数用意し図16の半導体及び装置を、並列処理、分散処理することにより更に情報検出速度を向上させることも可能になる。検出が高速で出来ることは情報検出の精度向上や解析内容の向上に直接効果を結びつける結果となる。
【0098】
以上の装置または半導体で、大量なデータベース中の中から曖昧さを含んだ情報を超高速で検出し、細部を一般的なCPU等による情報処理することにより極めて高精度で、高速な曖昧さを含む情報検出が実現できることは先に述べたとおりである。
【0099】
処理時間は大幅に低下するが以上のアルゴリズムの最終結果は極めて簡単なAND論理演算のみで実行することが出来るため、この処理部分についてはCPUを用いて論理演算することも可能である。
【産業上の利用可能性】
【0100】
本発明は、DNA解析、ウエブ文字情報のセマンテック情報検索、及び音素の配列の曖昧検索による音声認識などに幅広く利用できる。
【符号の説明】
【0101】
1 情報
2 情報の位置
3 アドレス
4 絶対アドレス(物理アドレス)
5 相対アドレス
6 アドレス相対距離
7 情報検出メモリ
8 条件設定データ
9 データベース
10 クエリデータ
11 サンプルデータ
12 サンプル情報連
13 マッチ
14 アンマッチ
15 曖昧さ
16 欠失・挿入(ギャップ)
17 変化情報
18 無視(マスク)
19 類似性
20 類似度スコア
21 一次元情報
22 結果出力
23 許容ギャップ
24 ギャップ補正
25 論理素子
26 データ転送
27 CAM出力
28 ギャップ許容配列データ
29 シフト0
30 シフト1
31 シフト2
32 合計データ(ORデータ)
33 曖昧情報検出装置もしくは半導体

【特許請求の範囲】
【請求項1】
外部から入力条件として与えられる情報と、その情報のアドレス上の位置と、の2つの入力条件と、記憶された情報と、の双方を比較しその条件に適合するアドレスを出力する機能を持ったメモリに
(1)所定数与えられる情報の情報が一致する数をスコア化する手段と
(2)所定数与えられる情報の配列上の位置と、記憶された情報のアドレス上の位置のずれを許容するために、アドレスの範囲を設定し許容範囲内のアドレスを検出する手段と
(3)以上(1)及び(2)の結果を出力する手段と
以上(1)から(3)を具備することを特徴とする曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項2】
前記所定数与えられる情報、並びに所定数与えられる情報のアドレス上の位置の検出は並列処理であることを特徴とする請求項1記載の曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項3】
記憶すべき情報をアドレス毎に記憶し読み出し可能な装置もしくは半導体において
(1)アドレス毎に配列された複数の配列情報をアドレス毎に並列に記憶する手段と
(2)上記複数並列記憶された配列情報を選択するする手段と
(3)上記選択された配列情報をアドレス毎に論理積(AND)演算する手段と
(4)所定数の、情報とその情報の位置と、を入力する手段と
(5)上記入力条件にもとづき上記配列情報を選択する手段と
(6)上記論理演算結果を出力する手段と
以上(1)から(6)を具備することを特徴とする曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項4】
前記アドレス毎に論理積演算する手段は並列論理積(AND)演算処理であることを特徴とする請求項3記載の曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項5】
前記配列情報は連想配列情報であることを特徴とする請求項3記載の曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項6】
前記複数記憶する配列情報はアドレスシフトした連想配列情報であることを特徴とする請求項3記載の曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項7】
請求項1から6のうちいずれか1項に記載の半導体を組み込んだことを特徴とする装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2013−61905(P2013−61905A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−201425(P2011−201425)
【出願日】平成23年9月15日(2011.9.15)
【出願人】(310024240)株式会社エイ・オー・テクノロジーズ (1)
【出願人】(504133110)国立大学法人電気通信大学 (383)
【Fターム(参考)】