(57)【要約】      （修正有）【課題】高速で効率よく高精度で曖昧さを含んだ情報を検出するための半導体及びこの半導体を組み込んだ装置を提供する。【解決手段】外部から入力条件として与えられる情報１とその情報のアドレス上の位置２との２つの入力条件と、記憶された情報と、の双方を比較しその条件に適合するアドレスを出力する機能を持ったメモリに、所定数与えられる情報の情報が一致する数をスコア化する手段と、所定数与えられる情報の配列上の位置と記憶された情報のアドレス上の位置のずれを許容するために、アドレスの範囲を設定し許容範囲内のアドレスを検出する手段と、結果２２を出力する手段とを具備する。【選択図】図１６
2013061905.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力条件として与えられる情報と、その情報のアドレス上の位置と、の２つの入力条件と、記憶された情報と、の双方を比較しその条件に適合するアドレスを出力する機能を持ったメモリに
（１）所定数与えられる情報の情報が一致する数をスコア化する手段と
（２）所定数与えられる情報の配列上の位置と、記憶された情報のアドレス上の位置のずれを許容するために、アドレスの範囲を設定し許容範囲内のアドレスを検出する手段と
（３）以上（１）及び（２）の結果を出力する手段と
以上（１）から（３）を具備することを特徴とする曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項２】
前記所定数与えられる情報、並びに所定数与えられる情報のアドレス上の位置の検出は並列処理であることを特徴とする請求項１記載の曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項３】
記憶すべき情報をアドレス毎に記憶し読み出し可能な装置もしくは半導体において
（１）アドレス毎に配列された複数の配列情報をアドレス毎に並列に記憶する手段と
（２）上記複数並列記憶された配列情報を選択するする手段と
（３）上記選択された配列情報をアドレス毎に論理積（ＡＮＤ）演算する手段と
（４）所定数の、情報とその情報の位置と、を入力する手段と
（５）上記入力条件にもとづき上記配列情報を選択する手段と
（６）上記論理演算結果を出力する手段と
以上（１）から（６）を具備することを特徴とする曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項４】
前記アドレス毎に論理積演算する手段は並列論理積（ＡＮＤ）演算処理であることを特徴とする請求項３記載の曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項５】
前記配列情報は連想配列情報であることを特徴とする請求項３記載の曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項６】
前記複数記憶する配列情報はアドレスシフトした連想配列情報であることを特徴とする請求項３記載の曖昧さを含む情報の検出機能を備えたことを特徴とする半導体。
【請求項７】
請求項１から６のうちいずれか１項に記載の半導体を組み込んだことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は曖昧さを含む情報の検出機能を備えた半導体及びこの半導体を組み込んだ装置に関する。
【背景技術】
【０００２】
本発明の意図を理解するに必要な事を説明する。
現在の一般的なコンピュータの体系はＣＰＵ（中央処理装置）を中心とする情報処理体系（プロセサベースアーキテクチャ）となっている。ＣＰＵは万能の情報処理能力を有しているが、大量の情報の中から特定の情報を見つけ出す処理をするには適しておらず情報処理上の様々な弊害が発生する。
【０００３】
具体的には現在のコンピュータはＣＰＵと他のデバイスが分離され、バスを通じてＣＰＵと他のデバイスとの情報のやり取りするために、ＣＰＵがメモリ上のデータをアドレスごとに逐次探し出す処理、つまり情報検索が避けられない宿命（ノイマンバスボトルネック）がある。
【０００４】
このような課題を解決するに当たり、バス接続が不要となるようメモリを内部で情報処理を完結できる情報処理（メモリベースアーキテクチャ）が人工知能など分野の研究で進められてきたが、これまで効果的な解決策は見当たらなかった。
【０００５】
この難題を克服する技術として、情報絞り込み検出機能を備えたメモリが提案されている（特許文献１）。この提案はメモリベースアーキテクチャによりＣＰＵに代わり大量のデータの中から特定の情報を見つけ出す新しい情報処理体系を実現するものである。この発明の概要を以下に文献１の特許請求の範囲を引用して説明する。
【０００６】
メモリアドレスごとに情報を記憶しその情報を読み出し可能なメモリであって
このメモリは、
（１）外部から与えられる、このメモリに記憶されたデータを並列に比較するための第１の比較データと、このメモリのアドレスのアドレス同士を並列に比較するための第２の比較データと、の各比較データを入力するための入力手段
（２）第１の比較データでこのメモリに記憶されたデータを並列に比較し合否判定する手段
（３）第２の比較データでこのメモリのアドレス同士を並列に比較し合否判定する手段
（４）以上（２）、（３）双方の合否判定結果をアドレスごとに並列に論理演算するデータとアドレスの各合否結果の論理演算手段
以上（１）から（４）を具備することを特徴とする。
【０００７】
この発明の特徴は上記（３）のアドレス同士を並列に比較し合否判定する手段であり、一般的な情報はメモリ上にアドレス同士が相関をもって配列情報として記憶されるので、アドレス同士が相対的に比較できる。
【０００８】
具体的には、連想メモリＣＡＭ２７の情報１の高速な検出性とアドレスを並列に比較する二つの条件は、情報１と、その情報の位置２のパターンマッチそのものであり、このパターンマッチを情報の検出に利用したものである。
【０００９】
これにより、情報の検出がメモリを主体とする半導体や装置内部で完結されるため、ＣＰＵによる情報の逐次処理が不要になり、極めて高速な情報の検出が可能なる。
【００１０】
特許文献１の発明にはこの情報絞込み検出機能を備えたメモリ（以下、情報検出メモリ７と称す）による情報の検出例が紹介されおり、この内容を以下の通り引用する。
【００１１】
時間軸をアドレスに対応させて、１アドレス、１日ごとに、ある土地の、１年、３６５日の最高気温、１００年分を記憶した気象データを例にパターン情報の検出を考える。
例えば当日の最高気温が５℃で、前日が１０℃、翌日が１５℃だったその当日を１００年間全て探し出す場合（前日や翌日に限らず任意の日とその温度の組合せ、比較の日数も任意であることを意図する）の情報の検索と検出を考える。
【００１２】
以上のような温度パターンデータのアドレス数は３６５日×１００年≒３６Ｋアドレスであり、もしこの土地の最高気温が０℃から３６℃までとすると１℃当たり年１０日程度、つまり５℃、１０℃、１５℃、の日がそれぞれ概ね１００年間に、１Ｋ日（１０００日）程度含まれている。
【００１３】
ソフトウエア、や配列のアルゴリズムを使用せずに確実な方法で、当日の最高気温が５℃で、前日が１０℃、翌日が１５℃の日を探す方法として
（１）通常のメモリに気象データを記憶し、ＣＰＵでメモリを逐次検索して５℃の日を探しその前後の日の温度を比較する・・・・・情報処理回数は３６Ｋアドレス数＋α回の処理
（２）連想メモリに気象データを記憶し、連想メモリに５℃を比較データとして与え、連想メモリより５℃の日を逐次出力させ、ＣＰＵでその前後の日を比較する・・・・・情報処理回数は１Ｋアドレス数＋β回の処理
（３）情報検出メモリ７に気象データを記憶し、このメモリに温度と、相対日（アドレス）と、を３回比較データとして与えることにより、このメモリが目的とする当日を出力する・・・・情報処理回数は３回の比較処理＋θ回の出力処理
【００１４】
以上の（３）が情報検索を全く不要にした情報検出メモリ７を利用しメモリベースの情報処理の概念であり、通常のメモリとＣＰＵの組合せにおける情報処理回数を１万分の１程度まで削減することが可能であり、これに伴い情報処理のスピードは飛躍的に向上させることが可能となる。  
【００１５】
これまでに試作品としてＦＰＧＡに実装した情報検出メモリ７を紹介する。
【００１６】
ＦＰＧＡのリソースの関係から情報処理容量は１ＫＢｙｔｅと大変に小容量であるが、７つの情報とその情報の位置を完全並列にマッチング演算する機能を有し、ＦＰＧＡクロック周波数２００ＭＨｚ、５ｎ秒の時、このＦＰＧＡ情報検出メモリ７デバイスに例えば文字情報を記憶させ、７つの文字列の情報を検出する時間は、３４ｎ秒であった。従って１条件当り約５ｎ秒で１Ｋアドレス空間全体のマッチング処理行ったことになる。
【００１７】
通常のメモリに記憶された情報をＣＰＵが探しに行く場合、通常のＤＲＡMの１アクセスタイムだけでも６０n秒から７０ｎ秒が必要になり、１Ｋアドレス空間全体となれば６０マイクロ秒から７０マイクロ秒が必要になる。
【００１８】
以上の５ｎ秒のマッチング処理時間と、この６０マイクロ秒から７０マイクロ秒の処理時間との単純比較によっても、従来のメモリ上の情報をＣＰＵが逐次処理をして必要な情報を見つけ出す処理が単位違いであることが実証された。
【００１９】
しかしながらこの試作品は、情報とその情報の位置の完全一致を高速で行うタイプのもので、たとえば文字情報、DNA情報、音声情報など、曖昧さを含んだ情報処理に適用する場合にはその応用方法を確立する必要がある。
【００２０】
本発明は、情報検出メモリ７の高速な情報検出アルゴリズムを効果的に適応し主に一次元情報となる文字情報、ＤＮＡ情報、音声情報の曖昧さを含んだ情報を高速に効率よく精度よく検出することを目的としている。
【００２１】
以下の説明にあたっては、特にデータが大量であり、膨大な情報処理が必要になるＤＮＡ解析を例にして説明をする。
【００２２】
生命体の遺伝情報の解析で知られるＤＮＡは、アデニン（Ａ）、チミン（Ｔ）、グアニン（Ｇ）、シトニン（Ｃ）、の４種類の塩基情報配列が連続して配列されたもので、文字列の情報同様に読み取りその結果をもとに、生命起源の探求や、医療、犯罪捜査など様々な目的で解析が行われる。
【００２３】
人間のＤＮＡの配列は３０億塩基配列が正逆ペアー配列されており、この１塩基情報を１Ｂｙｔｅ毎にメモリに記憶させ、この中から情報を見つけ出す場合は正逆配列合計６ＧＢｙｔｅの超大量のアドレス空間から目的の情報を見つけ出す必要がある。
【００２４】
ＤＮＡ解析を行う上で最も重要なことは、進化の過程で起こる一部の配列の変化や異常、さらには検体から抽出されたＤＮＡ塩基情報は抽出上の課題により、曖昧さを含んでいることである。
【００２５】
ここでいう曖昧さの第１のケースは塩基配列が欠失する、もしくは挿入される場合、第２のケースは変化した塩基情報もしくは間違った塩基情報となる場合の２つのケースである。
【００２６】
以降第１のケースの曖昧さは塩基配列のギャップまたは単にギャップと表現する。また第２のケースの曖昧さは変化塩基情報または単に変化情報と表現する。
【００２７】
ＤＮＡは一般的に数億以上の文字情報の配列であり、これらの膨大な情報に対し以上の２つの曖昧さを許容して、正確にしかも高速に解析するための様々なアルゴリズムが研究されている。これらの研究の多くは従来からのハッシュテーブルやインデックス化手法、ダイナミックプログラム（ＤＰ）手法や、探索木問題として研究されていたアルゴリズムにＤＮＡ情報の特徴を活かした手法が組み合わされたものである。
【００２８】
そのもっとも一般的な例が、ＤＮＡ同士がどれだけ似ているかを解析するための相同性解析（ホモロジ解析）であるＦＡＳＴＡ、ＢＬＡＳＴ（Ｂａｓｉｃ  Ｌｏｃａｌ  Ａｌｉｇｎｍｅｎｔ  Ｓｅａｒｃｈ  Ｔｏｏｌ）であり、ネット上で公開されており様々な分野で利用されている。
【００２９】
これらのＦＡＳＴＡ、ＢＬＡＳＴを利用したネット上の情報検出は、通常調査したい情報（クエリー）が１つまたは少数で、登録されている大量の情報（サブジェクト）のどれに最も似ているか（相同性があるか）を検出することが主な目的である。
【００３０】
しかしながら、統計的な傾向を判断したり、解析したりする目的で、調査対象としたい情報（クエリー）が大量にある場合（網羅的な解析）には、組合せ解析による多大な情報処理が必要となり、ＦＡＳＴＡ、ＢＬＡＳＴアルゴリズムを利用して高速なサーバーを使っても数週間程度の処理時間が必要になる場合や、スーパーコンピュータを用いて解析して多くの時間が必要になる場合も少なくない。
【００３１】
これまで一般的な情報処理はＣＰＵが主体になり行われるものであり曖昧さを含む情報の検出もその例外ではない。本発明はメモリベースアーキテクチャ（メモリが主体になった情報処理体系）による装置や半導体デバイスで曖昧さを含む情報の検出をするものである。
参考までにプロセッサベースアーキテクチャによるＤＮＡの変異体配列を検出するための手法が開示された先行文献を示す（特許文献２）。
【先行技術文献】
【特許文献】
【００３２】
【特許文献１】特許４５８８１１４号
【特許文献２】特開２００３−３３０９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【００３３】
本発明が解決しようとする課題は、曖昧さを含んだ情報の検出を、従来のＣＰＵを主体にした情報検出では実現不可能な、メモリベースアーキテクチャの並列処理の特徴を活かし高速で効率よく高精度で曖昧さを含んだ情報を検出する機能を備えた半導体及びその半導体を組み込んだ装置を提供することである。
【課題を解決するための手段】
【００３４】
請求項１に記載の発明は、外部から入力条件として与えられる情報と、その情報のアドレス上の位置と、の２つの入力条件と、記憶された情報と、の双方を比較しその条件に適合するアドレスを出力する機能を持ったメモリに
（１）所定数与えられる情報の情報が一致する数をスコア化する手段と
（２）所定数与えられる情報の配列上の位置と、記憶された情報のアドレス上の位置と、の双方のずれを許容するために、アドレスの範囲を設定し許容範囲内のアドレスを検出する手段と
（３）以上（１）及び（２）の結果を出力する手段と
以上（１）から（３）を具備することを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【００３５】
請求項２に記載の発明は、前記所定数与えられる情報、並びに所定数与えられる情報のアドレス上の位置の検出は並列処理であることを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【００３６】
請求項３に記載の発明は、記憶すべき情報をアドレス毎に記憶し読み出し可能な装置もしくは半導体において
（１）アドレス毎に配列された複数の配列情報をアドレス毎に並列に記憶する手段と
（２）上記複数並列記憶された配列情報を選択するする手段と
（３）上記選択された配列情報をアドレス毎に論理積（ＡＮＤ）演算する手段と
（４）所定数の、情報とその情報の位置と、を入力する手段と
（５）上記入力条件にもとづき上記配列情報を選択する手段と
（６）上記論理演算結果を出力する手段と
以上（１）から（６）を具備することを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【００３７】
請求項４に記載の発明は、前記アドレス毎に論理積演算する手段は並列論理積（ＡＮＤ）演算処理であることを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【００３８】
請求項５に記載の発明は、前記配列情報は連想配列情報であることを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【００３９】
請求項６に記載の発明は、前記複数記憶する配列情報はアドレスシフトした連想配列情報であることを特徴とする曖昧さを含む情報の検出機能を備えた半導体である。
【００４０】
請求項７に記載の発明は、請求項１から６記載のいずれかの半導体を組み込んだことを特徴とする装置である。
【発明の効果】
【００４１】
医療の現場などでは、朝採取した患者の血液からのＤＮＡ情報を当日の診察に活かしたいなどのリアルタイムで高速なＤＮＡ検出を求める要求も多く、高速なＤＮＡ解析の需要は計り知れない。本発明の情報検出方法は、ＤＮＡなどの曖昧情報を高速で解析するシステムを、ＣＰＵを中心としたこれまでの情報検索と比較し、システム構成を簡素化し、廉価、必要とする現場に提供することができる。また、高価で発熱が多く、広いスペース必要なスーパーコンピュータに比較し、回路構成も、発熱も、スペースも抑えられるので、ＤＮＡの標準検出デバイスや装置として利用することが出来るとともに、多くの１次元情報に応用ができる。
【図面の簡単な説明】
【００４２】
【図１】図１は情報検出メモリによる一般情報検出例である（実施例１）。
【図２】図２は情報検出メモリによる塩基配列の検出例Ａ（完全マッチ）である（実施例２）。
【図３】図３は情報検出メモリによる塩基配列の検出例Ｂ（ギャップ許容）である          （実施例３）
【図４】図４は情報検出メモリによる塩基配列の検出例Ｃ（１組の変化情報許容）である（実施例４）。
【図５】図５は情報検出メモリによる塩基配列の検出例Ｄ（２組の変化情報許容）である（実施例５）。
【図６】図６は情報検出メモリによる曖昧さを含む情報の検出例である（実施例６）。
【図７】図７はギャップ許容の情報検出例である（実施例７）。
【図８】図８は情報検出メモリの半導体構成例である（実施例８）
【図９】図９は情報検出メモリによるシステム構成例である（実施例９）。
【図１０】図１０は情報検出データ転送の例である（実施例１０）。
【図１１】図１１はギャップ許容配列データの検出例Ａでギャップ０の場合である（実施例１１）。
【図１２】図１２はギャップ許容配列データの検出例Ｂでギャップ１の場合である（実施例１２）。
【図１３】図１３はギャップ許容配列データの検出例Ｃでギャップ２の場合である（実施例１３）。
【図１４】図１４はギャップ許容配列データの検出例Ｄでギャップ−１の場合である（実施例１４）。
【図１５】図１５はギャップ許容配列データのメモリ上の情報配列例である（実施例１５）。
【図１６】図１６は曖昧さを含む情報の検出機能を備えた半導体並びにその半導体を組み込んだ装置の実施例である（実施例１６）。
【発明を実施するための最良の形態】
【００４３】
最初に情報検出メモリ７の特徴を活かし曖昧さを含む情報の検出を効果的に実施するための考え方を説明する。
【実施例１】
【００４４】
図１は、情報検出メモリ７による一般的な情報の検出例である。情報検出メモリ７は、目的の情報を探し出すための、情報１、並びにアドレス相対距離６の２種類の条件、条件設定データ８として与えることにより、情報検出メモリ７の絶対アドレス４にアドレス３毎に記憶された情報１の中から情報検出メモリ７内部の情報検出アルゴリズムによりこの条件にマッチ１３する情報を探し出し、情報検出メモリ７自身がその結果を出力するものである。
【００４５】
本実施例の場合情報検出メモリ７には文字情報が記憶されており、図に示すように本例の場合、条件１から５まで５条件の情報１、Ｃ、Ｇ、Ｔ、Ａ、Ｔとアドレスの相対距離６、それぞれ１００番地、が完全にマッチ１３、する情報が見つかるとその結果出力２２が出力される。
【００４６】
条件１から条件５までの条件は１条件毎にマッチ１３処理することも５条件並列にマッチ１３処理させることも可能である。通常情報検索並びにその検出結果処理はメモリ上の情報をＣＰＵが処理するものであり逐次処理が不可欠である。情報検出メモリ７はこのようなメモリ上の情報を探し回るＣＰＵの逐次処理が全く不要になるので、極めて高速な情報の検出が可能になる。
【実施例２】
【００４７】
図２は情報検出メモリによる塩基配列の検出例Ａ（完全マッチ）である。ＤＮＡの塩基配列は膨大な配列数であるが、その一つ一つはわずか４種類のアデニン（Ａ）、チミン（Ｔ）、グアニン（Ｇ）、シトニン（Ｃ）、の塩基情報である。従って１つの情報の統計的な確率は１／４程度となり情報を見つけ出す際には連続した３、５、７塩基情報などまとまったひとかたまりの配列として捉えると設定が容易である。
【００４８】
３つの塩基配列を１つのサンプルデータ１１とする場合その統計的な確率は１／（４×４×４＝６４）、５つの塩基配列を１つのサンプルデータとする場合は、１／（４×４×４×４×４＝１０２４）の確率となる。本実施例では３つの塩基配列を１つのサンプルデータ１１とした。選択したアドレス並びにその前後のアドレスの情報を１組として３つの塩基配列を得ている。  
【００４９】
本実施例はアドレス相対距離６を一律１００にしているが、３、５、１０、２００でも自由であり、条件毎にアドレスの幅を変化させることも自由であるが、確率的にアドレス相対距離が短い程ギャップの影響も少ない。
本実施例ではアドレスＸを基準として、Ｘ＋１００、Ｘ＋２００、Ｘ＋３００、Ｘ＋４００のアドレスの各情報１を検出し、その情報の位置２が完全マッチ１３した場合を示している。
【実施例３】
【００５０】
図３は情報検出メモリによる塩基配列の検出例Ｂ（ギャップ許容）である。  先に述べたとおり、ＤＮＡの塩基解析は曖昧さ１５を克服することが必要である。
【００５１】
曖昧さ１５の１つは、データベースの塩基配列、クエリデータのいずれか、もしくは双方の塩基配列の一部に塩基情報の欠失・挿入（ギャップ）１６が存在する場合である。本実施例では、このギャップ１６を許容するために、許容ギャップ２３を設定し、この範囲の塩基情報のギャップ１６を許容して結果出力２２を出力する構成としたものである。
先行文献１のアドレススワップ回路は、アドレスの相対距離を検出するために設けられたもので、一般的にはシフトレジスタや、マルチプレクサーによりアドレスを相対的にシフトすることにより実現可能であるが、この回路に範囲を設定する機能、許容ギャップ２３を設けることにより容易に実現可能である。
【００５２】
以上の内容は所定数与えられる情報の配列上の位置と、記憶された情報のアドレス上の位置と、の双方のずれを許容するために、アドレスの範囲を設定し許容範囲内のアドレスを検出する手段となる。
【００５３】
本実施例ではアドレス相対距離１００に対し±１０アドレスまでを許容する場合を示した。
【実施例４】
【００５４】
図４は情報検出メモリによる塩基配列の検出例Ｃ（１組の変化情報許容）である。曖昧さ１５のもう一つは、データベースの塩基配列、クエリデータのいずれか、もしくは双方の塩基配列の一部に塩基情報に変化情報１７が存在する場合である。いずれか、もしくは双方に変化情報１７が存在する場足には、条件１から５まで５条件の情報の内、いくつかがマッチ１３しない場合でもこれを許容することにより、双方が類似性を持つ情報であると判断することが出来る。
【００５５】
図４に条件１から条件５までの５条件の内、１つの条件を無視（マスク）１８してこれ以外の４つの条件がマッチ１３すれば類似性があると判断する場合の構成例を示した。  図４では条件４を無視する場合を示しているが、言うまでもなく、条件１から条件５まで同様に１組の塩基配列を無視（マスク）１７する必要がある。
【実施例５】
【００５６】
図５は情報検出メモリによる塩基配列の検出例Ｄ（２組の変化情報許容）である。先に１組の塩基配列を無視（マスク）１７する場合の実施例を示したが、本実施例では５条件中２組の塩基配列を無視（マスク）１７する場合を示した。
図５では条件２並びに４を無視する場合を示しているが、条件１から条件５までの組み合わせでいずれかの２組の塩基配列を無視（マスク）１７する必要がある。
【実施例６】
【００５７】
図６は、情報検出メモリによる曖昧さを含む情報の検出例である。
これまで曖昧さ１５を含む塩基情報の欠失（ギャップ）１６並びに変化情報１７の許容の方法をそれぞれ独立して説明してきたが、図６はこの二つを総合したものである。
条件設定データ８の条件１から５の、アドレスの相対位置のギャップを、許容ギャップ２３として指定し、情報の変化情報１７を許容するために、本例では、５条件中、５マッチ、４マッチ、３マッチ、２マッチ、１マッチ、０マッチまで６段階で互いの情報の類似性１９を類似度スコア２０として判定できるようにしたものである。
【実施例７】
【００５８】
図７は、ギャップ許容設定における検出例である。図７に示す通り条件設定データ８に許容できるギャップのアドレス範囲、許容ギャップ２３を設け、中心アドレス、この場合は相対アドレス５が１００、２００、３００から±５アドレスの範囲にあれば合格とするものである。回路構成は中心アドレスから許容するアドレス範囲を論理和（ＯＲ）演算させることで容易に実現可能である。条件範囲を広く取り過ぎると、同一情報１が沢山検出されるので適切な範囲を指定することが重要である。
【実施例８】
【００５９】
図８は、情報検出メモリの半導体構成例である。曖昧さ１５を含む情報の検出は、一定のキャップと変化情報の２つを許容することが必要であり、回路構成が複雑になる。このような場合に、１つの半導体チップに、複数の情報検出メモリ７を集積させることによりシステムの全体構成を単純でシンプルな構成にすることが出来る。
図８の例では、５つの情報検出メモリ７並びに周辺論理素子２５を１つの半導体チップに集積させた構成例であり、以下に本実施例の概要を示す。
【００６０】
転送データ入力より転送されるデータ２６は、５つの情報検出メモリ７に並列にデータが転送できる構成とする。外部から与える、条件設定データ８は、情報１〜５、相対アドレス１〜５、ギャップ１〜５が、それぞれの情報検出メモリ７の入力に並列に入力される。この設定条件データ８による、縦５つの情報検出メモリ７の個別のマッチ１３の検出結果２２を論理演算して類似度スコアとして外部出力の結果出力２２としている。
本実施例では５つの条件の完全マッチ出力は類似度スコア２０を５としている。
縦５つの情報検出メモリ７の内、１つを無視（マスク）１８することにより、外部出力の結果出力２２は４つの条件のマッチ出力となり、類似度スコア２０を４としている。本実施例では、同様に類似度スコア２０を３から１までを出力させる構成としている。
【００６１】
以上５から１までの類似度スコア２０は、条件設定データ８とどれだけ類似した情報であるかを判定するための重要な出力である。
【００６２】
以上のように、この５つの情報検出メモリ７の内のいずれかを無視（マスク）１８するように論理回路を構成することにより、任意の組合せの曖昧検出が可能になる。情報検出メモリ７からカスケード接続されるギャップ補正２４信号は、それぞれのギャップ値を補正し、それぞれのアドレス範囲が独立してアドレス演算出来るようにするための信号である。これらの構成により完全並列による曖昧さを含む情報の検出が可能になるので極めて高速で効果的な情報検出が可能になる。
【００６３】
情報検出メモリ７の１つ当りの記憶容量が１ＫＢｙｔｅであれば５ＫＢｙｔｅサイズのＣＡＭ、１０ＫＢｙｔｅであれば、５０ＫＢｙｔｅサイズのＣＡＭ、１００Ｋサイズであれば５００ＫＢｙｔｅのＣＡＭ、１Ｍサイズであれば５ＭＢｙｔｅのＣＡＭ、を用意出来るチップサイズを選択することにより、曖昧さを含む情報検出を極めて高速で効果的に実現できるシステム、オンチップ（ＳｏＣ）の半導体を作成することが出来る。小容量の場合においてはＦＰＧAを用いて回路構成が実現できることは言うまでもない。
【実施例９】
【００６４】
図９は、情報検出メモリによるシステム構成例である。データベース９中の１〜Ｎまでの情報と、クエリデータ１０中の１〜ｎの情報と、双方の曖昧さ１５を含んだ情報を組合せ網羅的に情報検出する場合のシステム例を示している。クエリデータは一般的に１００から１Ｋの塩基配列で、データベースの情報は１つ当たり数メガの塩基配列となっており、双方のデータ数が多い場合、これらのデータ同志の類似性を網羅的に見つけることは情報処理上極めて負担の多い処理である。
【００６５】
情報記憶容量がＬの情報検出メモリ７にデータベースから１つのデータを選択して、そのデータのデータ容量がＭ（Ｍ＞Ｌ）のデータを使う場合、最初に先頭番地からＬまでを、情報検出メモリ７に並列に転送して、Ｌ分の情報を記憶させておく。
【００６６】
この記憶された、情報記憶容量Ｍの情報と、１からｎのクエリデータの類似性を見る場合、先に説明の、条件設定データ８として、相対アドレスが１０から１００の情報を５サンプル抜き出して、情報検出メモリ７に入力することにより、その５サンプルのマッチの類似性１９が、類似度スコア２０として出力され、類似度スコア２０の高い情報同志を記録しておく。以上１〜ｎまだでのクエリデータを繰り返す。
【００６７】
１〜ｎまでのクエリデータが完了した際、先に選択したデータのＬ以降の残りのデータを繰り返し転送して、上記説明の通り、クエリデータ１〜ｎまでを繰り返せばよい。
【実施例１０】
【００６８】
図１０は情報検出データ転送例である。以上の手法で曖昧情報を検出する上で注意すべきすべきことは、図１０に示すようにクエリデータの情報１から採取するサンプルのアドレスの最大の範囲がＫである場合、Ｋのアドレスの全範囲が漏れることなく検出されるようオーバラップして情報検出メモリ７に記憶されるようデータ転送２６を行う必要がある。
【００６９】
データベース９中の１つのデータが完了すれば、次のデータに切り替え１〜Ｎまでの全データとクエリデータの網羅的な類似性を検出し記録した互いの情報の類似度スコアの高い部分が解析結果である。
【００７０】
以上の実施例は情報検出メモリ７の様々な効果を活かしたＤＮＡ等の曖昧さ１５を含んだ情報の検出例であり、言うまでもなく図８の半導体、図８のシステムを並列処理、分散処理することにより更に情報検出速度を向上させることが出来る。以上の手法はＤＮＡ以外様々な情報に応用することが出来る。
【００７１】
以下にＤＮＡ情報の配列を効果的に利用し安価で高速な情報の検出をする方法を説明する。
【００７２】
仮に人間のＤＮＡの配列は３０億塩基配列がペアー配列されており、この情報の中から類似する情報を見つけ出す場合は６ＧＢｙｔｅのアドレス空間を何回に分割してこれらの中から類似情報を見つけ出すかが鍵になる。
【００７３】
どれだけ広い範囲のアドレス空間を１組の条件設定とそれに基づく演算で検出できるかが鍵である。つまり大量のデータの中から、如何に速く類似性のある部分にたどり着くかが最重要でありたどり着けばその結果に基づき様々な解析を行うことが出来る。
【００７４】
以下の手法はＤＮＡの塩基情報がＡ、Ｔ、Ｇ、Ｃの４つの情報に限定されていることに着目しクエリデータ１０から一定数以上の連続した文字列を条件設定データ８として与え高速な検出を目指すものである。
【実施例１１】
【００７５】
図１１は、ギャップ許容配列データの検出例Ａでギャップ０の場合でありギャップを含んだ曖昧情報を検出するものである。
【００７６】
アドレス３ごとに記憶された情報１（この場合はＤＮＡ情報）はＣＡＭ２７（連想メモリ）のデータ検出機能により、Ａ，Ｔ、Ｇ、Ｃの４通りの情報が得られアドレス毎に配列されている。
【００７７】
比較する情報同士にギャップがある場合このＣＡＭ２７の出力をシフトした情報配列を考えるとよい。図１１の例では、アドレス３の７番地〜１７番地までの文字列、ＴＧＡＡＣＴＡＧＡＣＧを検出する際、２文字までの欠失があっても、検出できるよう構成したものであり、情報１のＡ、Ｔ、Ｇ、Ｃのそれぞれのシフト０（符号２９）、シフト１（符号３０）、シフト２（符号３１）した情報配列を合計した合計データ３２をギャップ許容データ２８として得たものである。
【００７８】
条件設定データ８として、情報の位置２、本例では０〜１０までの文字情報が与えられる場合、この情報の位置２を考慮して、ギャップ許容データ２８を情報の位置に相当する分シフト（この場合上方にシフト）し配列させる。本実施例の場合、順番にＴはシフト０、Ｇは上方にシフト１、Ａは上方にシフト２、Ａは上方にシフト３、Ｃは上方にシフト４・・・・・最後のＧは上方に１０シフトし情報を配列する。
【００７９】
以上により完成された情報１の配列を確認するとアドレス７では全ての情報１とその情報の位置２がマッチ１３していることを示している。従って与えた条件設定データ８の基準アドレスとなる相対アドレス５の０番目のアドレスは、絶対アドレス４の７番地であることが検出される。
【００８０】
この配列情報を利用するアルゴリズムは、同一情報の距離が識別条件となる、たとえば同一情報の距離が長ければ長いほど識別に貢献することになる。
【００８１】
以上の配列のみ組合せによる検出方法は、情報の変化情報も許容する処に大きな特徴がある。例えば、情報の位置２が０のＴの情報１は、ＡまたはＧに置き換えても結果は同様であり、他の情報の位置２でも同様である。従って曖昧さを含んだ情報を検出する上では好都合である。
【実施例１２】
【００８２】
図１２はギャップ許容配列データの検出例Ｂでギャップ１の場合でありギャップを含んだ曖昧情報を検出するものである。図１２で与えられる、条件設定データは、１つのギャップがある場合の曖昧情報検出例である。図１１での説明と同様に、アドレス３の７番地がマッチ１３している。
【実施例１３】
【００８３】
図１３はギャップ許容配列データの検出例Ｃでギャップ２の場合でありギャップを含んだ曖昧情報を検出するものである。図１３で与えられる、条件設定データは、２つのギャップがある場合の曖昧情報検出例である。図１１での説明と同様に、アドレス３の７番地がマッチ１３している。
【実施例１４】
【００８４】
図１４はギャップ許容配列データの検出例Ｄでギャップ−１の場合でありギャップを含んだ曖昧情報を検出するものである。
【００８５】
本実施例では条件設定側の情報の位置２の６の位置にＧが挿入された場合である。本来であれば、−１シフトした配列データを合計データ３２として持つことが一般的であるが、挿入の場合も検出できることを示しており、曖昧さを含む情報の検出が極めて簡単に実現できることを証明する結果でもある。
【００８６】
以上のギャップを許容する配列同士の情報検出は組合せ確率が低下するのでギャップ許容の幅と、条件として指定する配列の長さを考慮すればよい。極めて簡単な演算で実現可能なのでシミレーションプログラムを作成し諸条件を決定するとよい。
【実施例１５】
【００８７】
図１５はギャップ許容配列データのメモリ上の情報配列例である。図１１、１２、１３、１４で説明の情報配列を一般的なメモリ上に配列したものであり、この場合、Ａ、Ｇ、Ｔ、Ｃ、の４つの情報毎に、任意の位置のギャップを２つまで許容し、情報の位置２を０から１４までの１５配列した例であり、４種類の情報×１５配列＝合計６０の配列情報になる。以上の配列データは、特にＣＡＭを利用して作成する必要もなく、通常のＣＰＵでこの配列データを作成することが可能である。この配列データを事前に用意しておくことにより、極めて高速な曖昧情報の検出が実現できる。
【実施例１６】
【００８８】
図１６は曖昧さを含む情報の検出機能を備えた半導体並びにその半導体を組み込んだ装置の実施例である。図１６の回路機能のすべて一体とした半導体とすることも、各機能を個別に半導体化して装置とすることも任意である。先に説明の図１５の情報配列を利用して、データ転送２６を行い、この半導体並びにこの半導体を組み込んだ装置で曖昧さを含む情報を検出する例である。
【００８９】
先ほどの合計６０の情報配列を、この半導体または装置のメモリに情報１と情報の位置２によるマトリックス状にアドレス毎に配列を並列に記憶しておき、外部から与えられる条件設定データによりこのマトリックス状に配列されたメモリの内から指定されたマトリックスのメモリを選択しメモリに記憶された０、１いずれかの情報を論理素子２５でその論理積（ＡＮＤ）を取ればよい。これまでの説明のアドレス３の７番地は本例では２１番地になりマッチ１３する出力はこれらの出力はプライオリティエンコーダなどで順次外部に読み出せるよう結果出力２２とし出力される。
【００９０】
つまり複数並列に記憶された１アドレス当り１bitのメモリとその選択回路並びにＡＮＤ演算回路構成のみで完全並列による曖昧さを含んだ情報検出が可能になる。以上の処理はメモリのアドレス空間の全範囲を並列に情報処理するアルゴリズム、つまりメモリベースアーキテクチャによるものであるので、通常のＣＰＵとメモリ並びに情報処理の様々なテクニックやアルゴリズムを利用した情報の検出よりも高速で効果的である。
【００９１】
本実施例ではギャップを許容するために連想配列データを１アドレスずつシフトした配列データで説明しているが、様々な配列データが利用することが可能であり、情報を検出するための論理回路の構成は任意である。
【００９２】
先に述べた情報検出メモリ７は内部の構成としてＣＡＭの機能並びに、ＣＡＭ機能で検出されたアドレスの、アドレスの位置を移動するためのシフトレジスタなどの機能回路が必要になる。
【００９３】
本実施例の回路方式では、このような機能が一切不要となるので極めてメモリアドレスサイズが大型で安価な半導体やその装置を作成することが可能になる、半導体化する場合の利点は１回の条件で検出するデータベース９の情報１のアドレス３の範囲を広くすることにより情報検出の効率を大幅に上げることが出来ることである。
【００９４】
現在のメモリ技術は極めて大容量のメモリを低コストで高品質に実現する能力を持っている。仮に１Ｍアドレスサイズのこの半導体であれば、６Ｇアドレスサイズの人間のＤＮＡを、概ね６千回、１０Ｍアドレスサイズの半導体であれば、概ね６００回の情報処理で全てのアドレス空間を検出することが出来るようになる。
【００９５】
さらに網羅的なデータ解析では、１つのデータベースデータ対し数億のクエリデータをサンプルとして比較検出する場合がある。このような場合１回当りの条件設定から演算結果出力までの総合検出時間（マッチ演算時間）が極めて重要な時間になるが、本例によれば極めて単純でシンプルな構成の完全並列処理による半導体回路や装置となるので１回当りのマッチ演算時間が極限の最短時間となる。
【００９６】
ＣＰＵはバスボトルネックが存在するので大量の情報の中から特定の情報の見つけ出すのは極めて苦手で過酷な処理になるが、見つけ出した情報の詳細を解析する処理は得意であり高速である。従ってこの方法は大量の情報の中から可能性のあるアドレスを見つけ出す処理、つまり大雑把な情報検出を行い、後はＣＰＵに任せる方法が効果的である。
【００９７】
以上の結果は、ＣＰＵのみが中心となり、あらゆるアルゴリズムを駆使し情報検索し情報を検出する従来の手法に比較して格段に高速な検出結果をもたらすものである。記憶する配列情報並びに入力条件を複数用意し図１６の半導体及び装置を、並列処理、分散処理することにより更に情報検出速度を向上させることも可能になる。検出が高速で出来ることは情報検出の精度向上や解析内容の向上に直接効果を結びつける結果となる。
【００９８】
以上の装置または半導体で、大量なデータベース中の中から曖昧さを含んだ情報を超高速で検出し、細部を一般的なＣＰＵ等による情報処理することにより極めて高精度で、高速な曖昧さを含む情報検出が実現できることは先に述べたとおりである。
【００９９】
処理時間は大幅に低下するが以上のアルゴリズムの最終結果は極めて簡単なＡＮＤ論理演算のみで実行することが出来るため、この処理部分についてはＣＰＵを用いて論理演算することも可能である。
【産業上の利用可能性】
【０１００】
本発明は、ＤＮＡ解析、ウエブ文字情報のセマンテック情報検索、及び音素の配列の曖昧検索による音声認識などに幅広く利用できる。
【符号の説明】
【０１０１】
１  情報
２  情報の位置
３  アドレス
４  絶対アドレス（物理アドレス）
５  相対アドレス
６  アドレス相対距離
７  情報検出メモリ
８  条件設定データ
９  データベース
１０  クエリデータ
１１  サンプルデータ
１２  サンプル情報連
１３  マッチ
１４  アンマッチ
１５  曖昧さ
１６  欠失・挿入（ギャップ）
１７  変化情報
１８  無視（マスク）
１９  類似性
２０  類似度スコア
２１  一次元情報
２２  結果出力
２３  許容ギャップ
２４  ギャップ補正
２５  論理素子
２６  データ転送
２７  ＣＡＭ出力
２８  ギャップ許容配列データ
２９  シフト０
３０  シフト１
３１  シフト２
３２  合計データ（ＯＲデータ）
３３  曖昧情報検出装置もしくは半導体
【図１】
2013061905.tif 000003
【図２】
2013061905.tif 000004
【図３】
2013061905.tif 000005
【図４】
2013061905.tif 000006
【図５】
2013061905.tif 000007
【図６】
2013061905.tif 000008
【図７】
2013061905.tif 000009
【図８】
2013061905.tif 000010
【図９】
2013061905.tif 000011
【図１０】
2013061905.tif 000012
【図１１】
2013061905.tif 000013
【図１２】
2013061905.tif 000014
【図１３】
2013061905.tif 000015
【図１４】
2013061905.tif 000016
【図１５】
2013061905.tif 000017
【図１６】
2013061905.tif 000018