(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-18
(45)【発行日】2024-04-26
(54)【発明の名称】曖昧検索回路
(51)【国際特許分類】
G11C 15/04 20060101AFI20240419BHJP
G11C 11/54 20060101ALI20240419BHJP
G06N 3/063 20230101ALI20240419BHJP
【FI】
G11C15/04 631F
G11C11/54
G06N3/063
(21)【出願番号】P 2022511446
(86)(22)【出願日】2020-04-01
(86)【国際出願番号】 JP2020015100
(87)【国際公開番号】W WO2021199386
(87)【国際公開日】2021-10-07
【審査請求日】2023-02-14
(73)【特許権者】
【識別番号】718005629
【氏名又は名称】岡島 義憲
(74)【代理人】
【識別番号】100167184
【氏名又は名称】井上 真一郎
(72)【発明者】
【氏名】岡島 義憲
(72)【発明者】
【氏名】岡島 真理子
【審査官】後藤 彰
(56)【参考文献】
【文献】国際公開第2014/030383(WO,A1)
【文献】特表2002-500790(JP,A)
【文献】特開平04-000549(JP,A)
【文献】特開平04-336657(JP,A)
【文献】特開平05-081229(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 15/04
G11C 11/54
G06N 3/063
(57)【特許請求の範囲】
【請求項1】
少なくともm列×k行(mは2以上の整数、kは2以上の整数)の大きさのマトリックス状に複数のメモリセル(10)を配置した第1の記憶回路(40)と、
外部から入力される信号を前記メモリセルに伝えるm本、もしくは、m対の活性化信号の入力線(90)と、
前記メモリセルの活性化時の電流を導通させるk本の検出線(70)と、
前記検出線のそれぞれから伝わる信号個数に関する情報に、予め検出線毎に設定された重み付け係数を乗算して総和して出力する機能を有する計数回路(207)と、
前記信号個数情報の判定時の閾値情報を記憶する第2の記憶回路(200)と、
判定回路(290)を備え、
所定の時間内に、前記活性化信号の入力線の信号が前記第1の記憶回路の前記メモリセルに伝える信号によって前記検出線の各々に導通するパルス信号の個数に、予め検出線毎に設定した重み付け係数を乗算し、そして総和した情報を前記計数回路にて生成し、その少なくとも一部を随時判定回路に伝えることにより、
前記外部から入力される活性化信号の時系列が意味する入力データと前記第1の記憶回路の記憶データの間の類似度が、前記第2の記憶回路に記憶された閾値情報以上に高いか低いかを逐次判定し、閾値情報以上に高い時に、その結果を意味する発火信号を前記判定回路から出力することを特徴とする一致度判定回路。
【請求項2】
更に、出力データ記憶回路(46)を備え、
前記判定回路(290)が発火信号を出力した時に、前記出力データ記憶回路の記憶データを出力することを特徴とする請求項1に記載の一致度判定回路。
【請求項3】
請求項1に記載の一致度判定回路を複数(nセット)備え、
それぞれの前記一致度判定回路の前記活性化信号の入力線に、共通のシリアルなパルス信号情報を入力することで出力する、それぞれの一致度判定回路からの出力の群によって、どの一致度判定回路が前記第2の記憶回路に設定された閾値を越えたか、もしくは、どの一致度判定回路の第一の記憶回路の記憶情報が入力信号群(90[0:m-1])の意味する数値群の情報と最も類似するかを意味する情報を逐次出力することを特徴とする曖昧検索回路。
【請求項4】
更に、少なくとも、垂直方向出力検出回路(534))と、制御回路(119)を備え、
前記垂直方向出力検出回路(534)によって、前記一致度判定回路のいずれかから類似度が高いことを意味する信号を発したことを検知した時に、
前記計数回路(207)の計数値を初期値にリセットする、もしくは、前記計数回路の計数値を一定量減ずる請求項3に記載の曖昧検索回路。
【請求項5】
更に、少なくとも、タイマー回路(116)と制御回路(119)を備え、
タイマー回路が、前記曖昧検索回路の動作が所定の時間を経過したとの信号を発した時に、
前記計数回路(207)の計数値を初期値にリセットする、もしくは、前記計数回路の計数値を一定量減ずる請求項3に記載の曖昧検索回路。
【請求項6】
前記計数回路(207)の初期値を、第2の記憶回路(200)のデータから生成された値とする請求項3に記載の曖昧検索回路。
【請求項7】
更に、前記一致度判定回路毎にパルス発生回路(535)を備え、
前記一致度判定回路の前記判定回路が発火出力した時に、パルス信号を生成して、前記判定回路の発火信号に代えて、前記パルス発生回路の出力を、前記一致度判定回路の出力とする請求項3に記載の曖昧検索回路。
【請求項8】
前記一致度判定回路毎に備える前記パルス発生回路(535)は、更に、前記第2の記憶回路(200)の記憶値を入力として受け、
前記一致度判定回路の前記判定回路(290)が発火信号を出力した時に、前記第2の記憶回路(200)の記憶値を元にした個数のパルス信号を生成して、前記判定回路の発火信号に代えて、前記パルス発生回路の出力を、前記曖昧検索回路の出力として出力する請求項
7に記載の曖昧検索回路。
【請求項9】
更に、前記第2の記憶回路(200)の記憶値を入力信号として受けるパルス発生回路(535)と、垂直方向出力検出回路(534))と、制御回路(118)を備え、
前記垂直方向出力検出回路によって、前記一致度判定回路の前記判定回路のいずれかが発火信号を発したことを検知した時に、
前記計数回路の計数値を一定量減じ、更に、
前記一致度判定回路の前記パルス発生回路より、前記第2の記憶回路の記憶値に応じた回数のパルス信号を前記一致度判定回路の出力として出力する請求項3に記載の曖昧検索回路。
【請求項10】
更に、複数の外部からの入力信号(85[0]から85[z-1])の情報に従って、出力するパルス信号の時系列を順次互いのパルスが重ならないように発生させる活性化線信号生成回路(156)を備え、
前記活性化線信号生成回路の出力を、前記活性化信号(90)とする請求項3に記載の曖昧検索回路。
【請求項11】
更に、外部からの制御信号入力(153)を元に、前記一致度判定回路の各々の動作モードを、設定モード(第1の動作モード)、もしくは、計数モード(第2の動作モード)、もしくは、読出し書込みモードと切り替える機能を有する制御回路(118、または、119、または、120)を備え、
前記設定モード時に、前記活性化信号の入力線、もしくはワード線を通じて伝えるパルス信号を第1の記憶回路(40)に順次印加し、検出線(70)を通じて伝わるパルス信号の個数を元に、前記第1の記憶回路内の値1、もしくは、値0のメモリセルの個数を前記計数回路(207)で数え、その数値を基に生成する値を前記第2の
記憶回路(200)に書き込み、
前記計数モード時には、前記活性化信号の入力線、もしくはワード線を通じて伝えるパルス信号を第1の記憶回路(40)に順次印加し、検出線(70)を通じて伝わるパルス信号の個数を前記計数回路(207)で数え、その数値を元に生成する値と前記第2の
記憶回路に記憶された値を前記判定回路(290)で比較することで、前記第1の記憶回路の記憶データとの間の類似度が高いことを意味する発火信号を出力し、
前記読出し書込みモードでは、第1の記憶回路(40)、第2の記憶回路(200)、発火セル(530)の少なくとも一部の記憶するデータの読出し、または、書込みの動作を行う請求項3に記載の曖昧検索回路。
【請求項12】
前記計数回路は、内部にシフトレジスタ回路、もしくは、カウンタ回路を備え、
前記制御回路の制御信号に従って、
前記設定モードでは、先ず、前記シフトレジスタ回路、もしくは、前記カウンタ回路を所定のリセット値にリセットして動作を開始し、前記計数回路を昇順(もしくは降順)に計数動作させることで前記検出線(70)から伝わるパルス信号の個数を数えた計数値を元に生成した値を前記第2の
記憶回路(200)に書き込み、
前記計数モードでは、先ず、前記シフトレジスタ回路、もしくは、前記カウンタ回路に、前記第2の
記憶回路に記憶された値を元に生成される値を書き込んで、前記設定モードとは逆に、降順(または、昇順)に計数動作を行う計数回路である請求項11に記載の曖昧検索回路。
【請求項13】
前記一致度判定回路は、更に、
複数の第2の活性化信号線(91)と、複数の第2の検出線(71)と、複数の単位の記憶回路(55)からなる、第3の記憶回路(45)と、複数の検出線電流の読出し回路(101)と、前記第2の活性化信号線の駆動回路(155[1])を備え、
前記活性化信号の入力線(90)によって、前記第1の記憶回路(40)の前記メモリセル(10)が前記検出線(70)に導通する信号のパルス個数を計数する際に、
前記計数回路(207)が、
前記第2の活性化信号線(91)によって、前記第2の記憶回路(55)の前記メモリセル(10)が前記第2の検出線(71)に引き起こす導通電流を参照電流として用いた検出線電流の読出し回路(101)の出力によって生成された信号を用いる請求項3に記載の曖昧検索回路。
【請求項14】
更に、物理アドレス・エンコード回路(591)を備え、
前記一致度判定回路のいずれかが、前記類似度が高いことを意味する信号を出力した時に、その出力を発した一致度判定回路の物理アドレスを出力する請求項3に記載の曖昧検索回路。
【請求項15】
請求項3に記載の前記曖昧検索回路を複数備え、互いに直列となるように、出力を入力に接続し、
後段の前記曖昧検索回路の出力の全て、もしくは一部を、前段の前記曖昧検索回路の入力信号の全て、もしくは一部とすることを特徴とする曖昧検索回路。
【請求項16】
前記リセット値が、2進数での全てのケタの値がゼロ、もしくは、1である数である請求項12に記載の曖昧検索回路。
【請求項17】
所定の頻度で、設定モードの動作を行う請求項11に記載の曖昧検索回路。
【請求項18】
前記一致度判定回路は、更に、空白設定のための記憶回路(813)を少なくとも1ビット備え、
前記一致度判定回路を不使用である場合、前記空白設定のための記憶回路への設定によって、前記一致度判定回路の動作を停止し、前記判定回路(290)から発火を意味する信号を強制的に出力させない請求項3に記載の曖昧検索回路。
【請求項19】
請求項3に記載の前記曖昧検索回路によって、プログラムの動作を制御することを特徴とするデータ処理回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部情報から、内部に搭載するメモリ回路に記憶する内部情報のいずれが最適なコンテンツがどれであるかを判別し、メモリ回路全体を曖昧検索し、その判別に従って自律応答する回路のアーキテクチャについてである。
【背景技術】
【0002】
従来の連想メモリ技術の概要を、
図1から
図3を用いて説明する。従来の連想メモリ技術は、セル・マトリックス内のセルへの読み出し(Read)動作や書き込み(Write)動作のように一般のメモリが行う動作の他に、検索(Search)動作を行うことに特徴がある。連想メモリセルとしては、
図1に示すように多彩な方式が知られている。
【0003】
連想メモリセルの記憶回路(又は、記憶素子)には、検索の対象となる記憶データが記憶されている。検索時に検索キーとなる入力データがサーチ線(または、サーチ線兼ビット線)によって、連想メモリセルに伝えられる。
【0004】
SRAMを使った連想メモリセル((A)から(D))は、記憶回路であるFF(Flip―Flop)に記憶データを記憶し、DRAMを使った連想メモリセル(E)は、フローティングとなるノードの寄生容量に記憶データを記憶し、抵抗変化型素子を使った連想メモリセル(F)は、抵抗変化素子に記憶データを記憶する。
【0005】
いずれの場合も、記憶データとサーチ線から入力される電位に応じて、マッチ線から電流を導通する素子をもっている。
SRAMを使った連想メモリセル((A)から(D))は、記憶回路であるFF(Flip―Flop)に記憶する記憶データとサーチ線から入力される電位に応じて、2個直列となっているトランジスタ列のON、もしくはOFFが制御され、ONの場合には、マッチ線から電流を導通する。
DRAMを使った連想メモリセル(E)は、フローティングとなるノードの寄生容量に記憶する記憶データとサーチ線から入力される電位に応じて、マッチ線から電流を導通する。
抵抗変化型素子を使った連想メモリセル(F)は、抵抗変化素子に記憶する記憶データとサーチ線から入力される電位に応じて、マッチ線から電流を導通する。
【0006】
SRAMを使ったTernary型の連想メモリセルの場合は、(C)と(D)のように、書き込みや読み出し、検索の動作を行うためのビット線とサーチ線が兼用される場合が多い。
【0007】
一般に、Binary(2値)タイプの連想メモリセルは、記憶回路(又は、記憶素子)を1個有し、Ternary(3値)タイプの連想メモリセルは、記憶回路(又は、記憶素子)を2個持つ。Ternaryタイプの記憶回路(又は、記憶素子)が多いのは、データとして、値1、もしくは、値0を記憶するだけでなく、無視(Don‘t Care)と呼ばれるマスク状態を記憶するためである。
【0008】
以下、SRAMを使ったTernary型の連想メモリセル((C)もしくは(D))を使った場合を元に、従来例を説明する。
【0009】
図2は、SRAMベースのTernary(3値)タイプの連想メモリ(CAM:Content Addressable Memory)のセルが、M行×N列のマトリックス状に配置された連想メモリのブロック図である。
図2には、M行×N列のマトリックスの四隅のみ表示されている。
【0010】
検索動作時には、サーチ線経由で、外部から入力された検索キー(入力データ)が、セルマトリクス内の各行の連想メモリセルに伝えられる。各連想メモリセル内では、連想メモリセルのFFの記憶データとサーチ線より伝わる入力信号とが逆相となる時に、両データが「一致(もしくは、マッチ)」であると解釈される。記憶データと入力データが、HighとLow、または、LowとHighのように、逆相の時が「一致(もしくは、マッチ)」である。
【0011】
連想メモリセル内には、2個直列のトランジスタがあり、両トランジスタのゲート電極にはFFの記憶データと入力データが電位として供給されており、「一致(もしくは、マッチ)」を意味する時には、2個直列のトランジスタのいずれかはOFF状態となり、マッチ線には電流を導通しない。
【0012】
記憶データと入力データが「不一致」な場合には、連想メモリセル内の2個直列のトランジスタの2個あるゲート電極には、HighとHigh、または、LowとLowのように、同相の入力が加えられるが、連想メモリセル内には、2個直列のトランジスタが、2セットあるため、いずれかのセットはON状態となるため、いずれかのセットを通じてマッチ線に電流を導通することとなる。
【0013】
2セットある2個直列のトランジスタは、各セル内で、排他的論理和(EXCLUSIVE-NOR)の論理を取っていると言われることがあるが、「一致」の場合には電流を導通することなく、「不一致」の場合には電流を導通する。
【0014】
連想メモリセル1ビットには、記憶回路であるFFが2個含まれるので、読み出し動作にも、書き込み動作の時にも、サーチ線兼ビット線の対を少なくとも2サイクル動作させる必要ある。読み出しデータも書き込みデータも、2Nビットである。
【0015】
以降、連想メモリセルNビットからなる行に、対応するマッチ判定回路を加えた部分を、ワード回路と呼ぶ。ワード回路には、1本のマッチ線と、2本のワード線を含む。
【0016】
図3は、
図1(C)のSRAMベースのTernary(3値)タイプの連想メモリのセルがN個からなるワード回路の構成と動作を示している。セル[3]から、セル[N-2]までの表記は省いている。また、この図においては、検索動作のみを説明するため、セル中の記憶回路(FF)に対する読み出し動作や書き込み動作に使われるアクセストランジスタ(ビット線と記憶回路の間に電流を導通するトランジスタ)の表示も省いている。
【0017】
各セル内で、左右に1対ある2個直列のトランジスタは、記憶データと入力データが「一致」の場合には電流を導通することなく、「不一致」の場合には電流を導通する。
マッチ線は、各セルが導通する電流をワード回路内で集計して、マッチ判定回路に送る。
【0018】
マッチ判定回路には、マッチ判定前には、マッチ線をRESET電位に電圧に設定するためのトランジスタと、そのための制御信号(RESET_bar)が備えられているのが通常であった。
【0019】
ワード内に不一致ビットが1ビットも無い場合には、マッチ線には、連想メモリのセルが導通する電流が全く無く、電位変動が無いので、入力データが伝えられる前の電位レベル(RESET電位)を維持する。
【0020】
ワード内に不一致ビットが1ビットでも有る場合には、マッチ線には連想メモリのセルが導通する電流が生じ、マッチ線は電位変動する。
【0021】
この不一致を意味する電位変動を検出するために、マッチ線に電位変動が生じない場合と、最小の電流が導通した場合の電位との中間の電位が、閾値電位発生回路により生成され、閾値電位としてマッチ判定回路に供給されていた。(例えば、特許文献1参照)
【0022】
図3(B)に示すように、従来技術では、入力データと記憶データとの間が、逆相であれば一致とし、全てのセルが一致の場合には電流を導通せず、マッチ線に電位変動が生じない。逆に、入力データと記憶データとの間が、同相であれば不一致とし、1ビットでも不一致の場合には電流を導通し、マッチ線に電位変動を生じた。
【0023】
マッチ判定回路の出力は、
図1に示すように、アドレスエンコーダ回路に送られ、マッチを検出したマッチ判定回路の物理アドレスを生成し、「マッチアドレス出力」として出力した。
【0024】
このような連想メモリは、ネットワークルータ内のパケットデータ処理や並列計算機のメモリ管理等に用いられている。
【0025】
従来の連想メモリ技術は、数学的には、入力データの逆相と記憶データとの間のハミング距離がゼロとなる場合を一致としていると解釈することができる。
【先行技術文献】
【特許文献】
【0026】
【文献】特許第5480986号
【文献】特許第5893465号
【文献】特許第5800422号
【文献】特表2019-517138
【文献】特表2014-504401
【文献】特開2020-017281
【文献】特開2019-185784
【非特許文献】
【0027】
【文献】K.Pagiamtzis and A.Sheikholeslami,“Content-addressable memory (CAM) circuits and architectures: A tutorial and survey,”IEEE J.Solid-State Circuits, vol.41, no.3, Mar.2006, pp.712727.
【文献】望月彰子、大森隆司、「PATON: 文脈依存性を表現する動的神経回路網モデル」、日本神経回路学会論文誌,Vol.3,No.3(1996),81-89
【発明の概要】
【発明が解決しようとする課題】
【0028】
手書き文字認識のような認識アプリケーションにては、ハミング距離がゼロでは一致を見出せない場合が多く、そのような場合には、幾分かの不一致を許容し、「ある程度以上一致している」と見なせるワードを判定し照合するワードを検出することが求められる。
「無視(Don‘t Care)」の設定を変えた複数の行(ワード)を用いることで、従来の3値連想メモリ(Ternary CAM)にても、「部分一致」を検出することは可能であるが、複数の行(ワード)を費やすことはコスト上のディメリットが大きかった。
【0029】
「ある程度一致している」と見なして判定・検出するニーズは、ニューロンの演算を模倣するニューラルネットワーク回路を構成する時にも存在する。
ニューラルネットワーク回路では、一般的に、入力データと照合データを、共に、多次元のベクトルとみなし、両ベクトル間の内積により一致度を計量するが、内積の最大値は一定値ではなく、照合データ毎に異なりうるので、従来型の3値連想メモリ(Ternary CAM)では対応できないのが問題であった。
【0030】
従来技術では、連想セル毎に、入力データと記憶データとの間を「不一致」と見做す場合に、マッチ線に電流を導通していたが、連想メモリ登録するデータが大きくなると、少なくとも、ワード単位では、「不一致」となるケースが、「一致」となるケースよりも圧倒的に多くなるので、消費電力の面では問題であった。
【0031】
また、前述のニューラルネットワーク回路を使った手書き文字認識のようなアプリケーションにては、個別のビットとしても、ワード長が長くなると、値が0であるビット数に比べ、値が1であるビット数が減るという傾向がある。
【0032】
従って、連想メモリセルとマッチ線の間の電流の導通は、「不一致」の時ではなく「一致」の時とし、複数の行(ワード)を費やさずに、「ある程度の一致」を検出するアーキテクチャが求められていた。
【0033】
集積回路上やストレジ装置内に記憶させた多くの記憶データの中から、「入力データと一致する記憶データ」を探し出す処理」は「検索」と呼ばれるのに対比させて、「入力データとある程度の一致する記憶データを探し出す処理」を、「曖昧検索」と呼ぶことがある。
【0034】
本発明は、そのような「曖昧検索を実現する回路アーキテクチャ」であり、その回路アーキテクチャを用いて、外部情報から、内部に記憶する情報のいずれが最適なコンテンツ、もしくは、最適な応答プログラムがどれであるかを判別し、その判別に従って応答し動作するデータ処理回路についてである。
【課題を解決するための手段】
【0035】
「外部情報から、内部に記憶する情報のいずれが最適なコンテンツ、データ、もしくは、最適な応答プログラムがどれであるかを判別する」には、正確には一致することが無い「外部情報」と「内部に記憶する情報」との間の類似度を計測する機能を実現する回路手段の具体化が必要である。
【0036】
本発明にては、
図6に示すように、データを記憶するメモリセル(10)を持つマトリックス回路の各活性化線(90[0]~[m-1])に、単位時間内のパルス信号数によって重み付けした入力信号の群として入力し、メモリセル(10)のデータに応じて各活性化線に導通するパルス信号の個数を検出線(70[0]から[k-1])にて集計し、検出線につながるセンス回路(101)と計数回路(207)によって数える。
【0037】
単位時間内に、計数回路(207)によって計数されたパルス信号の個数は、入力情報(90)とメモリセル(10)の記憶データとの間の内積値を近似するので「類似度」を計測すると想定し、そのような動作を行う回路を「一致度判定回路」を基本の主要構成要素とする。
【0038】
「類似度」の判定は、「第2の記憶回路(200)」に記憶する期待するパルス個数と、計数回路(207)によって計数されたパルス個数とを、判定回路(290)にて比較し、計測したパルス個数が「第2の記憶回路」の値を上まった場合には、「類似度が高いことを意味する信号」を出力端子(260)から出力する。
【0039】
そして、「一致度判定回路」を元に、
図6に示すように、「内部に記憶する情報」の各々と「外部からの入力信号」の間の類似度を評価し検索する「曖昧検索回路」を構成する。 その「類似度が高いことを意味する信号」は、一般的には、より類似度が高いと、より早期に出力端子(260)から「類似度が高いことを意味する信号」が出力されると考えられるので、最も早期に「類似度が高いことを意味する信号」を出力した「一致度判定回路」を「最も一致した」とみなす。
【0040】
更に、「曖昧検索」の機能を元に、「曖昧検索回路」を基本回路として構成する回路によって、「外部情報から、内部に記憶する情報のいずれが最適なコンテンツ、もしくは、最適な応答プログラムがどれであるかを判別し、その結果によって、サブ・プログラムを始動し応答する自律応答回路を構成する。
【0041】
本発明の「自律応答回路(801)」の基本構成を、
図25に示す。
「自律応答回路」は、通常の「データ処理回路(725)」に、「曖昧検索回路(701)」と「メモリ回路(735)」と、「データ圧縮回路(745と755)」を加えることによって、「外部情報からの入力情報に対して、内部に記憶する情報のいずれが最適なコンテンツ、もしくは、最適な応答プログラムがどれであるかを判別し、その結果によって、プログラムを始動し応答する。
【発明の効果】
【0042】
本発明は、発展途上の「曖昧検索に最適な電子回路」についての一つのブレイクスルーである。「類似度の定義を定量化し、登録した情報の中から外部からの入力情報と最も類似度なコンテンツを割り出す」という技術は、類似度を頼りに曖昧ながらも確からしい情報を検索し、確率的に正しい判断を下すという処理には必須な技術であり、今後のデータ処理ハードウエアに対するインパクトは非常に大きい。
【0043】
本発明の実施形態図に現れる「第1の記憶回路」には、現状認識の様々なケースが分類されており、そのメモリ・セル・アレイに、外部からの入力信号としての「活性化信号」を送ることにより、登録データの中の最も類似のデータの中から、類似度の高い順に「発火」が行われる。 その「発火」のパターンに基づいて、応答プログラムを始動する。
この技術により、人間の脳に近い自律的に状況を認識し応答動作を行う装置への応用が期待可能である。
【図面の簡単な説明】
【0044】
【
図16】シフトレジスタ回路を用いた計数回路の構成例
【
図21】カウンタ回路を用いた時の判定閾値記憶回路の構成例
【
図22】時系列の情報出力を行う曖昧検索回路の概念図
【
図23】曖昧検索回路による時系列信号発生の説明
図1
【
図24】曖昧検索回路による時系列信号発生の説明
図2
【
図29】曖昧検索回路とメインテナンス・バスの接続
【発明を実施するための形態】
【0045】
以下、本発明の実施形態について図面を参照して説明する。
説明文中においては、構成回路要素に関しては、スペースの許す限り、構成回路要素の名称の語尾に付ける括弧記号( )の中、もしくは、コロン「:」を挟んだ箇所に、数字による符号を付す。その符号の数字は、説明文中と説明図面では対応させる。
複数が存在することを強調する構成回路要素がある場合、基本的には、構成回路要素の名称、もしくは、構成回路要素を意味する符号の数字に、括弧記号〔 〕で括った英数字による数、もしくは数式を付し、それらによって構成回路要素の個数、または、本数を意味するサヒックスとする。
また、構成回路要素の名称と、説明文章との境目が不明となる問題が生ずるのを避けるために、説明文中の構成回路要素の名称は、極力、括弧記号「 」にて括って用いる。
【0046】
但し、構成要素の個数を一般化して表現すると図面が余りに煩雑になる場合、存在する構成要素の個数を限定して、例えば、3個と想定して図面中に図示し、明細書中でもその旨説明する。
構成回路要素の個数や本数が複数であることが明らかである場合、括弧記号〔 〕で括った英数字による数、数式、等によって構成回路要素の個数や本数を付すのを省略する。
【0047】
記憶回路に関する説明においては、本発明とは独立して従来から知られている読み出し回路や書き込み回路や電源回路等に関する回路ブロックやそれに伴う信号線については、記載と表現と説明を省く。従って、多くの説明において、連想メモリセルやメモリセルが接続するビット線やワード線についても表記しない。それら、回路や配線の構成や機能については、本発明を適用した場合でも、通常良く知られている連想メモリやメモリの従来技術の典型や変形が適用されることを前提とする。
逆に言えば、従来知られているメモリ回路に、本発明の実施形態であるメモリ・マトリックス以外の回路を付加することにより、従来のメモリ回路に、「一致度判定」や「曖昧検索」の機能を付加させることとなる。
【0048】
説明文中や説明図中に、適切な用語が確立していない「曖昧検索」との表現を多用するが、これは、入力データを入力信号として入力し、記憶されているデータの中から、「何らかの定義の元での距離が小さい記憶データを探す」との意味であり、日常語でいう「一致度が高い」、もしくは、「類似度が高い」に相当する対象を探すことを表現している。
連想メモリ回路に関する技術においては、「検索」、「サーチ」、「Search」が多く使われるが、それらは、「厳格な一致」を意味する用語であり、本発明に於ける「曖昧一致」とは意味が異なる。
【0049】
ディジタルな信号を扱う場合、記憶回路の記憶値や、信号線のレベルについて、値1、値0,High Level、Low Levelの表現を用いることがあるが、これらの間には、信号の極性とディジタル信号の電位レベルの違いがあり、必ずしも、値1は、High Levelを意味しない。
明記しない場合にも、極性が異なる変形例は常に実施例に含まれる技術である。
連想メモリセルや、メモリセル、センスアンプ、記憶回路、書き込み回路、読み出し回路、制御回路などの構成回内部の形態や配置形態が異なる変形例についても同じ実施例として表現する。
また、説明文中や説明図中では、「信号」と「データ」とは、時には、物理層での情報と、論理層での情報という意味で違いを持ちうるが、基本的には同じ意味で用いる。
【0050】
本発明のいずれの実施形態においても、使われる「メモリセル(10)」は、「内部に記憶するデータによって、検出線、もしくはビット線に電流を導通するか、もしくは電流を導通しないかの制御を行う機能を有するようなメモリセル」であるが、そのような機能は公知のメモリセル一般に共通であり、本発明はメモリセルの形式や方式を選ばない。
本発明のいずれの実施形態において、記憶回路が2進数を表現する上での回路の単位を「単位の記憶回路(55)」という。「単位の記憶回路(55)」は、メモリセル(10)が1個、もしくは複数個からなる。「単位の記憶回路(55)」の中の各々のメモリセル(10)は、1本の「活性化信号の入力線(90)」を共有し、その「活性化信号の入力線(90)」からの信号に対して発生させる導通電流をそれぞれ異なる検出線(70)に伝える。
本発明のいずれの実施形態の説明図では、いずれかのメモリセル技術を用いた実施例を用いることによりその他の異形を代表させる。
【0051】
本発明の実施形態を説明する時、一致度判定回路や、曖昧検索回路、自律応答回路への入力信号は、たびたび、「印加されるパルス信号の時系列が、それぞれデータとして一定の意味を持つ信号列」となっている。
例えば、m本の「活性化信号の入力線」の群である「90[0:m-1]」を伝わるデータは、基本的に時系列であることに意味があり、ある時間(t=t0)の瞬間の信号値はデータだけだは、データとしての意味を持たない。
【0052】
データとして意味を持つのは、所定の時間の経過の中でのパルス信号の以下のようなパラメータである。
・「所定の時間」当たりのパルス信号の密度
・パルス信号の密度が「疎から密」に切り替わるタイミング
・パルス信号の密度が「密から疎」に切り替わるタイミング
これら3種類の情報により、あるタイミングでの数値を表現する。
【0053】
観察する期間である「所定の時間」が過度に短いと、パルス信号の密度が計測できないので、パルス信号の密度が変化するタイミングも理解できない。一方、観察する期間である「所定の時間」が過剰に長いと、パルス信号の密度が平均化される恐れが生ずる。
「所定の時間」は、「パルス信号の幅」に依存しうるが、「所定の時間」も「パルス信号の幅」も、用途に依存するパラメータでもある。
以降、適切な「所定の時間」を「単位時間」と呼ぶ。
「パルス信号の幅」については、他の信号線からの「パルス信号」と重なりづらい「幅」であることが求められるが、回路を実装する上での製造技術にも大いに依存するので特に定義しない。
【実施例】
【0054】
[発明を実施するための第1の形態である一致度判定回路#1]
以下、第
図5と第
図6を参照して、本発明の「第1の実施形態」である「一致度判定回路#1」と、本発明の「第2の実施形態」である「一致度判定回路#2」について説明する。
図5Aは、一致度判定回路#1の構成を概念的に示すブロック図である。
図5Bには、それら、一致度判定回路の入出力のみを図示した。
図6は、一致度判定回路#2の構成を概念的に示すブロック図である。
【0055】
本発明の第1の実施形態である「一致度判定回路#1」は、第2の実施形態である「一致度判定回路#2」のメモリ・セル・マトリックスの行数(m)が1行であり、「予め設定された重み付け係数」の値が“1“の特殊な場合でもあるので、まず、
図6の「第2の実施形態による一致度判定回路#2」を以下に説明する。
一致度判定回路#2は、メモリ・セル・マトリックスからなる第1の記憶回路(40)と、計数回路(207)と、第2の記憶回路(200)と、判定回路(290)からなる。
第1の記憶回路(40)や第2の記憶回路(200)に対する読出しや書込みの制御を行う回路や、その際に使われるビット線、ワード線は、通常知られている構成であるため、本図では図面が煩雑となるのを避け記載していない。逆に言えば、従来知られているメモリ回路に、本発明の実施形態であるメモリ・マトリックス以外の回路を付加することにより、メモリ回路に「一致度判定」や「曖昧検索」の機能を付加させることとなる。
【0056】
一致度判定回路#2の「活性化信号の入力線(90)」に印加される入力信号は、それぞれの「活性化信号の入力線(90)」に印加されるパルス信号の時系列が、それぞれデータとして一定の意味を持つ信号列である。 即ち、m本の「活性化信号の入力線」の群である「90[0:m-1]」を伝わるデータは、基本的に時系列であることに意味があり、ある時間(t=t0)の瞬間の信号値は、データとしての意味を持たず、単位時間経過の中で、パルス信号の時系列が持つ;
・「単位時間」当たりのパルス信号の密度と、
・パルス信号の密度が「疎から密」に切り替わるタイミングと、
・パルス信号の密度が「密から疎」に切り替わるタイミング
の3種類の情報により、あるタイミングでの数値を表現する信号の列である。
【0057】
一致度判定回路#2は、活性化信号の入力線(90[0:m-1])の列から入力するシリアルなパルス信号情報を第1の記憶回路(40)にて変換して、シリアルなパルス信号の群として伝わるk行の前記検出線(70[0:k-1])のパルス信号の個数を、計数回路(207)にて累計し、生成する数値が前記第2の記憶回路(200)に設定された閾値を越えるか否かを判定回路(290)にて逐次判定し、閾値を超えた時に、超えた事を意味する信号を出力する。
【0058】
「記憶回路(40)にて行われる変換」は、入力される活性化信号(90[0:m-1])と「記憶回路(40)のメモリセルの記憶値」との積算値に相当する導通電流パルスが生じ、検出線(70)は、「単位時間」の中で、各活性化信号の入力線(90[0:m-1])が発生させたパルス信号数は和算するといえる。
正確には、各活性化信号の入力線(90[0:m-1])が発生させたパルス信号が重なる可能性があり、パルス信号数は少なくなるかのうせいがあるが、少なくとも、パルス信号数の和算値を近似する。
このような、積算と和算(積和)による行列演算に似た変換が、「記憶回路(40)にて行われる変換」である。
【0059】
その積和値が「第2の記憶回路(200)の記憶値」を上まったと「判定回路(290)」が判定した場合には、「類似度が高いことを意味する信号」を出力端子(260)から出力する。
この動作が、「一致度判定回路」の一致度判定に関する最も基本的な動作である。
【0060】
[一致度判定回路#1の動作]
次に、
図5Aを用いて、一致度判定回路#1の動作をより詳細に説明する。
検出線(70)を共有するm個のメモリ・セル(10)は、検出単位回路(50)をなし、m本の「活性化信号の入力線(90)」から入力される活性化信号を受け取る。
活性化信号は、パルス信号であり、基本的には互いにパルスの立ち上がり・立下りのタイミングを同期させていない。
また、「活性化信号の入力線(90)」を伝わるパルス信号は、比較的短い時間間隔である「単位時間」の間に伝わるパルス個数に意味ある情報を伝達するとする。
例えば、「単位時間」に伝わるパルス個数が3個であれば、数値の「3」を意味し、「単位時間」に伝わるパルス個数が7個であれば、数値の「7」する、等である。
【0061】
「m個のメモリセル(10)」は、それぞれ、メモリセル内の記憶値と「活性化信号の入力線(90)」を伝わるパルス信号に応じて、「検出線(70)」に電流パルスを導通しようとする。
例えば、メモリセル内の記憶値が「値1」の時、「活性化信号の入力線(90)」からパルス信号が伝わると、「検出線(70)」に電流パルスを導通するが、メモリセル内の記憶値が「値0」の時には、「活性化信号の入力線(90)」からパルス信号が伝わっても、「検出線(70)」には電流パルスを導通しない。
【0062】
従って、一致度判定回路#1では、「検出単位回路(50)」は、最大で、それぞれのm本の「活性化信号の入力線(90)」から伝えられる導通電流パルス個数を合計した個数のパルス電流を「検出線(70)」に導通し、「検出線電流の読出し回路(101)」経由で、「計数回路(207)」に伝える。
【0063】
検出線(70)に生ずる電流パルスの個数を、それぞれの入力線(90)から伝えられるパルス個数と等しくするには、それぞれの「活性化信号の入力線(90)」が伝えるパルスが、重ならないようにすることが有効である。
【0064】
検出線(70)に生ずるパルス状の導通電流の個数を数えるために、一般には、センス回路(101)にて、閾値(112)が定義する電流以上の電流値となった場合に値1、閾値(112)が定義する電流以下の電流値では値0となるように、パルス状の導通電流変化を「時系列をなすディジタル・パルス信号」に変換して、次段の計数回路にて、そのディジタル・パルス信号の個数を計数する。
但し、センス回路(101)や、閾値(112)の供給は、回路規模や、メモリセルの方式選択に依存して必要性が生ずる事象であり、本発明においては、必ずしも本質的ではない。
【0065】
ディジタル・パルス信号の個数の計数は、「単位時間」とするので、計数される個数は有限値である。
【0066】
一般のメモリセルは、読出し時には、ワード線によって活性化され、ビット線に電流を導通するため、この想定は、非常に一般的であり、SRAM、DRAMなどの揮発性メモリや、EPROM、EEPROM、MASK-ROMなどの不揮発メモリ、そして、新材料メモリと呼ばれることがあるFeRAM、ReRAM、PCM、MRAM等の多くのメモリにても想定することが可能である。
【0067】
これらのメモリセルの場合、
図5Aの「活性化信号の入力線(90)」は、一般にワード線と呼ばれる。また、
図5Aの検出線(70)は、一般にビット線と呼ばれる。
【0068】
通常、多くのメモリの回路図では、ワード線を水平方向に伸びる線として示し、ビット線を垂直方向に伸びる線として示すので、本発明の実施形態を示す各図での回路表現は、通常のメモリの回路図とか90度左回転していることに注意していただきたい。
【0069】
本発明の実施形態としては、
図5Aで示したようなBinary連想メモリ用のメモリセルや、Ternary連想メモリのHalfセルを用いることが可能である。 連想メモリ用のメモリセルを用いる場合には、
図5Aの「活性化信号の入力線(90)」は、検索時に検索キーの一部をなす信号を伝えるSearch Lineに相当し、「検出線(70)」は、Match Lineに相当する。
本発明の実施形態を示す各図での回路表現は、通常連想メモリ用のメモリセルの回路図と同様の縦横の配置となっており、90度左回転している訳ではない。
【0070】
[類似度の計数]
以下、本発明における「類似度の計数」の概念をより詳しく説明する。
i番目のメモリセル(10[i])に供給される「活性化信号の入力線(90[i])」に、単位時間の間に、S(i)個のパルス信号が印加される場合、メモリセル(10[i])は、内部に記憶するデータによって、検出線(70)に電流を導通するか、もしくは、電流を導通しないかの制御を行う。
【0071】
一般性を失うことなく、検出線(70)に電流を導通するメモリセル(10[i])の記憶値を「値1」と呼び、電流を導通しない記憶値を「値0」と呼ぶこととする。 記憶値の呼び名を逆とすると、説明文章は少し煩雑となるため、このような設定にて説明を進める。
従って、メモリセル(10[i])の記憶値が「値1」の場合、「活性化信号の入力線(90[i])」に、単位時間の間に、S(i)個のパルス信号が印加される場合、メモリセル(10[i])は、検出線(70)に、最大で、S(i)個の電流をパルス状に導通する可能性がある。
【0072】
メモリセル(10[i])が導通する電流パルスの個数が最大となるのは、メモリセル(10[i])が導通するタイミングで、他のメモリセル(10)が電流を導通しない場合である。 「活性化信号の入力線(90)」の各々が伝えるパルス信号が重ならない場合には、メモリセル(10[i])は、入力されるパルスの個数と同数の個数の電流パルスを検出線(70)に導通する。
【0073】
一方、メモリセル(10[i])の記憶値が「値0」の場合、メモリセル(10[i])が、検出線(70)に導通する電流パルス信号の個数はゼロ個である。
従って、単位時間に、i番目のメモリセル(10[i])が検出線(70)に導通する電流パルス信号の個数を「D」とすると、
D ≦ S(i) × (メモリセルの記憶値)
となる。
【0074】
この計算は、検出線(70)に繋がる全てのメモリセルに対して成り立つ。
つまり、検出線(70)に導通する電流パルス信号の総個数を「D[0]」とすると、「D[0]」は、「活性化信号の入力線(90[i])が単位時間の間に伝えるパルス信号の個数{S[i]}を用いて、
D[0]≦ Σ{S[i]×{検出線(70)に繋がるメモリセルのデータ値}}
と表現可能である。(注;Σは、i=0から(m-1)までの和算)
【0075】
等号が成立するのは、「活性化信号の入力線(90[i],i=0から(m-1))」が伝達する信号パルスが互いに重ならない場合である。
【0076】
ここでも、「活性化信号の入力線(90[i],i=0から(m-1))」が伝達する信号パルスは、上凸、つまり、活性化時には「値1」、非活性化時に「値0」とすると、表記は容易になるので、今後、「活性化信号の入力線(90[i],i=0から(m-1))」が伝達する信号パルスは、一般性を失うことなく、上凸とする。
【0077】
つまり、本発明のアーキテクチャを用いた回路では、計数回路は、単位時間内の「活性化信号の入力線(90[i],i=0から(m-1))」の時系列が単位時間に持つパルス個数値からなる数値を成分とするベクトル「S」と、検出線(70)に繋がるメモリセルのデータ値を成分とするベクトル(このベクトルを「M」とする)との間の内積値を取る計算を近似する。
【0078】
計数回路(207)の出力値である、「活性化信号線(90)に印加されたパルス信号の時系列」により表現された入力データと「第1の記憶回路(40)」に記憶されたデータの間で取られた内積値は、「第2の記憶回路の記憶値」を上まった時、「判定回路」は、「類似度が高いことを意味する信号」を出力端子(260)から出力する。
【0079】
今後、一致度判定回路が、「類似度が高いことを意味する信号」を出力端子(260)から出力する時、「発火した」と呼ぶこととする。
【0080】
[一致度判定回路#2の動作]
以下に、第6図を参照して、本発明の「第2の実施形態」である、一致度判定回路#2について説明する。
【0081】
一致度判定回路#1では、ベクトル「S」の各成分は整数値であるが、ベクトル「M」の各成分は、2進数としても1桁の数であり、「値0」または「値1」の2値しかとることができなかった。
本発明の一致度判定回路#2では、k値は、k≧2の整数値であり、ベクトル「M」の各成分を、複数のメモリセルからなる「単位の記憶回路(55)」によって表現し、記憶回路が2進数を表現する上での回路の単位である。 「単位の記憶回路(55)」の中の各々のメモリセル(10)は、1本の「活性化信号の入力線(90)」を共有し、その「活性化信号の入力線(90)」からの信号に応答して発生させる導通電流をそれぞれ異なる検出線(70)に伝える。
即ち、第1の記憶回路は「複数の検出線[j];j=0から(k-1)」が存在し、計数回路には、それら複数の検出線からの信号が伝えられる。[請求項1]
【0082】
それら複数の検出線から、単位時間の間に、検出されるパルス個数を「D[j]」とすると、
D[j]≦ Σ{S[i]×{検出線[j]に繋がるメモリセルのデータ値}}
である。(注;Σは、i=0から(m-1)までの和算)
【0083】
計数回路にて、D[j]に「2のj乗;2j」を乗じて積和計算を行うと、計数回路回路の出力「P」は、
P ≦{Σ{S[i]×{(検出線[j]に繋がるメモリセルのデータ値}×(2j)}}}
となる。(注;Σは、i=0から(m-1]と、j=0から(k-1)までの2重の和算)
【0084】
「2のj乗;2
j」が、請求項2の「予め設定された重み付け係数」に相当するが、本発明は、「2のj乗;2
j」以外の計数を選択することを否定するものではない。
但し、「2のj乗;2
j」の係数を、ベクトル「M」の各成分に乗ずることにより、「単位の記憶回路(55)」は2進数を表現するので、通常のディジタル計算の枠組みを利用することに便利である。
以上のように、
図6に示した本発明の「一致度判定回路#2」の計数回路は、「パルス形の入力信号群の時系列」が意味しうるベクトル・データと、そのメモリ・セル・アレイの記憶するベクトル・データとの間の内積値を意味する信号を計数し出力する機能と能力を持つ。
【0085】
[判定回路の動作]
「一致度判定回路#1」でも、「一致度判定回路#2」でも、計数回路(207)の出力は、第2の記憶回路(200)に記憶された数値と、判定回路(290)によって比較される。
第2の記憶回路に、予め、単位時間の間に期待される内積値を記憶しておくことにより、判定回路からの出力は、計数回路の出力値である内積値が、期待された以上であるか否かを意味する信号となる。
【0086】
本発明の説明文中においては、「計数回路の出力値である内積値が、第2の記憶回路に記憶された期待された以上の値」である場合に、一般性を失うことなく、「値1」を出力するとして説明を進める。
また、「一致度判定回路#1、または、#2」が、「値1」を出力する状態を「発火する」と呼ぶこととする。
【0087】
即ち、本発明の「一致度判定回路#1」、及び、「一致度判定回路#2」の「計数回路」は、内積計算を距離として、「パルス形の入力信号群の時系列」が意味しうるベクトル・データと、そのメモリ・セル・アレイの記憶するベクトル・データとの間の距離を算出し、「判定回路」は、算出された距離が、「第2の記憶回路」に記憶された数値以上であるか否かを判定し、「以上」である場合には、「発火」を意味する信号を出力する。
距離を意味する内積値は、「類似度」であると見做せる。従って、「一致度判定回路」は、「第2の記憶回路」に記憶された数値以上に「類似度」が高い入力データを受けた時に、発火する。
【0088】
[発明を実施するための第3の形態である一致度判定回路#3]
第7図は、本発明の第3の実施形態による「曖昧検索回路#3」を概略的に示すブロック図である。
本実施形態では、第1の記憶回路のメモリセルとして、Flash EEPROMを用いているが、本実施形態のメモリセルとしては、DRAMやSRAM含めた「ワード線の選択によってビット線から電流を導通する機能を持つメモリセル」であれば、他のメモリセルでも良い。
【0089】
本実施形態では、「活性化信号の入力線(90)」は、Flash EEPROMメモリセルの「ワード線」に相当し、「検出線[70]」は「ビット線」である。
「ワード線」は、メモリセル(本実施例の場合には、Flash EEPROM)のゲート端子に接続し、「ビット線」はメモリセルのドレイン端子に接続している。[請求項3]
Flash EEPROMのメモリセルに対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、通常知られている技術であるため、本図では煩雑となるのを避け記載していない。
【0090】
[発明を実施するための第4の形態である一致度判定回路#4]
第8図は、本発明の第4の実施形態による「一致度判定回路#4」を概略的に示すブロック図である。
「一致度判定回路#4」、前記判定回路が出力する前記超えた事を意味する信号(260)を前記出力データ記憶回路が受けて、前記出力データ記憶回路の記憶データを逐次出力する。[請求項4]
【0091】
[発明を実施するための第5の形態である曖昧検索回路#1]
第9図は、本発明の第5の実施形態による「曖昧検索回路#1」を概略的に示すブロック図である。
曖昧検索回路#1(11)は、一致度判定回路#1、又は、一致度判定回路#2、又は、一致度判定回路#3のいずれかの一致度判定回路をnセット有し、更に、共通回路である「活性化線駆動回路(155)」、「第1の閾値発生回路(111)」、「第1の制御回路(120)」と、「第2の記憶回路の読出し書込み回路(570)」を備える。[請求項4]
第9図中の一致度判定回路(9)は、一致度判定回路#1、又は、一致度判定回路#2、又は、一致度判定回路#3の意味である。
【0092】
外部から入力される「活性化線駆動回路(155)」は、「入力信号(80)」を元に「活性化信号の入力線(90)」の信号を発生させ、各一致度判定回路に入力信号として送っている。
「第1の閾値発生回路(111)」は、各一致度判定回路の「検出線電流の読出し回路(101)」の閾値(112)を設定する。
「第2の記憶回路の読出し書込み回路(570)」は「第1の制御回路(120)」の信号を受けて、各一致度判定回路の「第2の記憶回路(200)」のデータの読み出しや書込みを行う。
「第1の制御回路(120)」は、「計数回路(207)」の計数動作の制御も行う。また、「計数回路(207)」、「第2の記憶回路(200)」、「第2の記憶回路の読出し書込み回路(570)」を制御して、曖昧検索回路#1(11)全体の動作モードを設定し制御する。
【0093】
尚、
図9にて示す一致度判定回路の内部のブロック図は、一致度判定回路#2のものである。
また、
図9にては、「第1の記憶回路(40)」に対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、図が煩雑となるのを避け示していない。「第1の記憶回路(40)」に対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、通常知られている構成であり、本発明の本質でもない。
【0094】
各一致度判定回路は、共通の「活性化信号の入力線(90[i],i=0から(m-1))」の信号を受けることにより、それぞれの「第2の記憶回路」に記憶された数値以上に「類似度」が高い入力データを受けたと計数した時に発火し、「判定結果出力(260)」に、「類似度が高いことを意味する信号」を出力する。
【0095】
「活性化信号の入力線(90[i],i=0から(m-1))」から入力される信号は、その信号の「単位時間内のパルス個数値」をデータとして送っているので、「一致度判定回路」毎に、その「第1の記憶回路」のデータと、「第2の記憶回路」のデータの違いによって、「類似度」を意味する「内積値」が異なり、より早く増えて発火する回路と、遅く増えて発火する回路の違いが現れる。
この発火タイミングの違いによって、「判定結果出力(260[0]から260[n-1])」は、これら信号群全体にて、「曖昧検索回路」の中の最も類似度の高い「一致度判定回路」がいずれの回路であるかを示している。[請求項5]
【0096】
[設定モード(第2の記憶回路への値の設定)]
一致度判定回路も曖昧検索回路は、少なくとも、外部からの制御信号入力(153)を元に動作する第1の制御回路(120)によって制御される「設定モード」と「計測モード」と「メインテナンス・モード」を持る。「メインテナンス・モード」では、第1の記憶回路(40)、第2の記憶回路(200)、発火セル(530)の記憶するデータの読出し、または、書込みの動作を行う。
「設定モード」と「計測モード」の動作モードでは、「計数回路(207)」と「第2の記憶回路(200)」の動作は異なりる。 [請求項13]
【0097】
「設定モード」は、「第2の記憶回路(200)」の記憶回路にデータを設定する動作であり、設定方法には、少なくとも2種類の方法がある。
第1の方法においては、「第2の記憶回路(200)」に、「第1の制御回路(120)」の制御にて、外部から与えられる「第2の読出し書込み信号(210)」のデータを書き込む。 書き込み時には、書込みデータは、「第2の記憶回路の読出し書込み回路(570)」を経由する。
【0098】
つまり、制御回路(120)は、いずれかの一致度判定回路の計数回路(207)と第2の記憶回路(200)を選択し、その中の第2の記憶回路(200)と計数回路(207)と、また、第2の記憶回路の読出し書込み回路(570)に制御信号を送ることによって、「第2の読出し書込み信号(210)」からの入力データを「第2の記憶回路(200)」に書き込み、また、他の制御信号を送ることによって、「第2の記憶回路(200)」の記憶データを「第2の読出し書込み信号(210)」の端子に出力させる。
【0099】
第2の方法の設定モードでは、以下の動作の流れを想定する。
第一段階では、第1の記憶回路(40)の入力線に、外部から、パルス信号を順次重ならないタイミングで印加してもらう。
第二段階では、第一段階の結果として検出線に発生する電流パルス、もしくは、電圧パルスを計数回路(207)で計数する。
第三段階では、計数結果を第2の記憶回路(200)に書き込む。
上記の第一段階から第三段階は、決して、パイプライン動作のように切り分けたステイトをいうのではなく、「段階」との表現は、動作の流れを表現しているだけである。
【0100】
上記の動作の流れによって、第1の記憶回路(40)のメモリセル(10)の中の「値1」のセル数を基に計数される計数結果を「第2の記憶回路(200)」に記憶する。 この計数結果は、m本の活性化信号線(90)が、各々1回だけ活性化された時に計数される計数値であり、「値1」を記憶する検出線(70)につながるメモリセル(10)の個数である。
【0101】
[計測モード]
計測モードでは、「活性化信号の入力線(90)」に印加されるパルス信号を「計測回路(207)」で数え、その数値を基に生成する値と「第2のメモリ回路(200)」に記憶された値を「判定回路(290)」にて随時比較し、判定結果を出力する、
「判定回路(290)」は、「第2の記憶回路(200)」の値そのもの、もしくは、この値を基に生成される数値を閾値として使って判定するのでも良い。
【0102】
[計数回路の構成]
図16は、本発明の一致判定回路の主要構成回路である「計数回路(207)」の内部の構成と、計数回路とつながる他の回路との接続関係を示すブロック図である。
図16では、第1の記憶回路(40)を構成する検出単位回路(50)、検出線(70)、検出線電流の読出し回路(101)の個数を表す「k値」が“3“であることを想定している。
また、請求項2の「予め検出線毎に設定された重み付け係数」に相当する値は、検出線(70[0])に対しては“1”、検出線(70[1])に対しては“2”、検出線(70[2])に対しては“4”とする。
【0103】
計数回路(207)は、計数回路前段回路(208)と、それ以外の計数回路後段回路とからなり、計数回路前段回路(208)は、
[1] 検出線に伝わるパルス信号を読み出す「検出線電流の読出し回路(101)の出力(70[0]、70[1]、70[2])を受け、
[2] それら信号から伝わるパルス数をカウンタ回路(508、509、511)で数え、それぞれ、3ケタ、2ケタ、1ケタの2進数に変換し、
[3] 70[0]から生成される2進数の上位2ケタ、70[1]から生成される2進数の2ケタ、70[2]から生成される2進数1ケタの数値を、5個のFlip-Flop(512、513、514、515、516)からなるレジスタに格納する。
[4] 更に、レジスタに格納された数値を、Adder回路(517、518、519)にて和算して、次のレジスタ(527、528、529)に格納し、「繰り上がりとなる最上位のケタの値」を1ビットの信号としてシフトレジスタ回路(202)に印加する。
[5] シフトレジスタ回路(202)は、入力される「繰り上がりとなる最上位のケタの値」が切り替わり、計数される値が増える度に、内部のレジスタ値を上位の方にシフトさせる。
という機能を持つ。
【0104】
前述の[3]から[4]の段階では、カウンタ回路(508、509、511)で数えた3ケタ、2ケタ、1ケタの2進数について、70[2]から伝わるパルス数には70[1]から伝わるパルス数の2ケタ目を、70[1]から伝わるパルス数には70[0]から伝わるパルス数の2ケタ目と3ケタ目の値を和算していた。
このことによって、前述の計数回路前段回路(208)では、70[2]からの信号を元に数えるパルス数には係数4を、70[1]からの信号を元に数えるパルス数には係数2を、70[0]からの信号を元に数えるパルス数には係数1を乗算してそれらの総和を取っていることになる。[請求項2]
【0105】
また、前述の[4]の最終段階で、「繰り上がりとなる最上位のケタの値」を1ビットの信号としてシフトレジスタ回路(202)に印加しているが、このことによって、計数回路前段回路(208)の最上位以外のケタの数値を切り捨てている。
このことによって、計測回路後段回路(209)の回路規模を減らせる効果がある。
【0106】
[シフトレジスタ回路と判定回路の構成]
図17と
図18は、本発明の一致判定回路の主要構成回路である「計数回路(207)」を構成する主要回路である「シフトレジスタ回路(202)」と、「判定回路(290)」と、「第2の記憶回路(200)」との内部構成を示すブロック図である。
図17の左端から入力される「Counting Input(201)」は、「計数回路前段回路(208)」の出力であり、
・Shift Forward(598)が「値1」で、Shift Reversely(599)が「値0」の時には、SRU[0]からSRU[x-1]からなるSRU内のFlip-Flop(FF)のデータを、図の左側から右側にシフトさせ、左端のSRUのFFには、新規に「値1」が現れる。
SRUのFFの「値1」は、例えばG213とG214からなるFぃp-Flop(SRU[0]内のFF)の場合には、右側ノ-ド(212)がHighレベルとなり、左側ノード(211)がLowレベルとなる状態のこととしている。
【0107】
また、
・Shift Forward(598)が「値0」で、Shift Reversely(599)が「値0」の時には、SRU[0]からSRU[x-1]からなるSRU内のFFのデータを、図の右側から左側にシフトさせ、右端のSRUであるSRU[X-1]のFFには、「値0」を設定する。
【0108】
但し、「シフトレジスタ回路(202)」の中のFlip-Flop(FF)の値は、「第2の記憶回路(200)」の値を書き込まれることがある。
例えば、「第2の記憶回路(200)」をリセットした時のデータ値が「Allゼロ」であるとすると、全てのFlip-Flopの右側ノードがLowレベルとなるので、その値がシフトレジスタ(202)に書き込まれると、シフトレジスタ回路内のFFも、全て「値0」と設定される。
【0109】
「第2の記憶回路(200)」のリセット時のデータ値を「Allゼロ」として、そのデータを「シフトレジスタ(202)」に書き込むと、シフトレジスタ内のFFも、全て「値0」となり、その状態から、Shift Forward(598)を「値1」、Shift Reversely(599)を「値0」として、「Counting Input(201)」のトグルを開始すると、SRU[0]からSRU[x-1]のFFに、左詰めで、カウントされた個数だけ「値1」が並び、その右側には「値0」が並ぶこととなる。
つまり、「シフトレジスタ(202)」は、インクリメントされ、計数値が記憶されていることとなる。
【0110】
判定回路(290)は、2入力NANDとインバータからなる遅延回路を持つが、シフトレジスタの「値1」に対応する部分は、2入力NANDはインバータとして機能するが、「値1」と「値0」の境目の部分では、シフトレジスタ(202)からの2入力NANDからLowレベルの信号を受け入れ、その他の領域ではHighレベルの信号を受けるので、「判定結果出力(260)」には、Lowレベルが現れる。
【0111】
従って、
図18の「第2の記憶回路(200)」に、設定モードで計数されたパルス個数を記憶しておいて、そのデータをシフトレジスタのFF列に書き込んだ後に、Shift Forward(598)を「値0」、Shift Reversely(599)を「値1」として、「Counting Input(201)」のトグルを開始すると、第2の記憶回路(200)に書き込まれた回数だけ、トグルを繰り返した時に、シフトレジスタ(202)のFFは、全て「値0」と戻り、「判定結果出力(260)」には、Highレベルが現れる。[請求項14]
この状態は、「発火」と見做せ、「類似度が、第2の記憶回路に設定した値」となった情報を外部に報告する信号である。
【0112】
[カウンタ回路による計測回路の構成]
図19は、本発明の一致判定回路の主要構成回路である「計数回路(207)」の計数回路後段回路を、カウンタ回路を用いて構成した実施例である。
図16の「シフトレジスタ回路を用いた計数回路の構成例」とは、「計数回路前段回路(208)」は同じであるが、「計数回路後段回路(209)」の構成要素が異なり、
図16に示した「カウンタ回路」と、
図17に示した「カウンタ回路を用いた時の第2の記憶回路」を用いる構成に代わっている。
【0113】
図20は、カウンタ回路の構成例である。
以下に、
図20と
図21を参照して、設定モードと動作モードのカウンタ回路の動作を説明する。
図16と同様に、ここでも、第1の記憶回路(40)を構成する検出単位回路(50)、検出線(70)、検出線電流の読出し回路(101)の個数を表す「k値」が“3“であるとして説明する。
カウンタ回路では、Y個のカウンタ・ユニット(CU[0]からCU[Y-1])で、Yケタの2進数である「2の(Y)乗」までの大きな数値を表現可能だが、カウント・アップとカウント・ダウンの両方を行なえる構成とするには、素子数が増えてしまうので一長一短である。
【0114】
設定モードでは、先ず、「制御回路(120)」より、「リセット制御信号(307)」を送り、「第2の記憶回路(610)」にリセット値を書き込む。
リセット値は、All-0(2進数で、0000・・・0)、もしくは、All-1(2進数で、1111・・・・1)である場合に動作がシンプルとなるが、基本的には任意の数値で良い。 説明を簡易とするため、以下の説明では、リセット値を、All-0(2進数で、0000・・・0)とする。
【0115】
次に、「制御回路(120)」より、「カウンタ回路用の第2の記憶回路(610)」に「書き込み信号(308)」を送り、各カウンタ回路(CU[0]からCU[Y-1])内のFlip-Flop(FF)に、第2の記憶回路(610)の各ユニット(TIMBU[0]からTIMBU[Y-1])の値を書き込む。
従って、カウンタ回路(CU[0]からCU[Y-1])内のFFも、All-0(2進数で、0000・・・0)となる。
【0116】
次に、順次、「活性化信号の入力線(90)」の1本、1本に、パルス信号をパルスが重ならないように印加し、同時に、「制御回路(120)」より、「カウンタ回路(560)」へ「Shift Foward」信号を送る。
「計数回路前段回路(208)」の処理により、70[2]からの信号を元に数えるパルス数には係数4を、70[1]からの信号を元に数えるパルス数には係数2を、70[0]からの信号を元に数えるパルス数には係数1を乗算してそれらの総和を取るが、「計数回路前段回路(208)」の処理の最終段階で、「繰り上がりとなる最上位のケタの値」を1ビットの信号(524)のみを、カウンタ回路(560)への入力信号であるCounting-Input(201)とする。従って、「計数回路前段回路(208)」で生成される4ケタの2進数の最上位以外のケタの数値を切り捨てる。
【0117】
「カウンタ回路(560)」には、「制御回路(120)」より、「Shift Foward(598)」信号が送られているので、Counting-Input(201)にパルス信号が印加される度に、カウントアップが行われる。
【0118】
「活性化信号の入力線(90)」の全てへの順次選択が終了し、その最後の「活性化信号の入力線(90)」につながるメモリセルからの電流パルスが数えられ、「カウンタ回路(560)」による計数が終了すると、次に、「制御回路(120)」より、全ての「カウンタ回路(560)」の値を「第2の記憶回路(610)」に書き込む制御信号(309)が送られ、「カウンタ回路(560)」の中の全てのカウンタの値を「第2の記憶回路(610)」に書き込む。
これで、設定モードが終了する。
【0119】
[計測モード]
次に、
図19と
図20を用いて、計測モードの動作を説明する。
計測モードでは、ます、「制御回路(120)」より、「第2の記憶回路(610)」の中のFlop-Flop(FF)の値を、対応する「カウンタ回路(560)」の中のFlop-Flop(FF)に書き込む制御信号(309)が送られ、「第2の記憶回路(610)」の値を、対応する「カウンタ回路(560)」に書きこむ。
但し、この時、「制御回路(120)」からは、設定モードとは異なり、カウントダウンの指示となる「Shift Reversely(599)」信号が送られるので、カウンタは逆回転する状態に入る。
【0120】
次いで、「入力線(80)」に外部からの入力信号が印加され、「活性化信号の入力線(90)」と「検出線(70)」を通じて、パルス信号が、「計数回路前段回路(208)」に送られる。 カウンタ回路には、Counting-Input(201)にパルス信号が伝えられるが、設定モードと異なり、カウンタは逆回転するので、第2の記憶回路(610)から書き込まれた値から数値を減じてゆく。
【0121】
「第2の記憶回路(610)」から書き込まれた値の個数だけのパルス信号が、「計数回路前段回路(208)」から「カウンタ回路560」に伝えられると、カウンタ回路の値は、初期値のAll-0(2進数で、0000・・・0)に戻る。
つまり、設定モードで検出した「値1」の個数だけ、動作モードでも「値1」を検出したこととなる。
【0122】
カウンタ回路の値が初期値のAll-0(2進数で、0000・・・0)に戻ると、判定回路(543)は、出力をLowレベルからHighレベルに切り替え、「外部から入力される活性化信号の時系列が意味する入力データと、第1の記憶回路の記憶データの間の類似度が高いことを意味する信号」を、「判定結果出力端子(260)」から出力する。
【0123】
以上の説明で、「計数回路前段回路(208)」の中で、係数を乗算した上で和算された数字の3ケタ目までの数値を無視していたので、設定モードと計数モードの計数値には、最大で「値7」までの差異が生じうるが、この差異は許容可能な誤差であると見做す。
【0124】
[発明を実施するための第6の形態である曖昧検索回路#2]
第10図は、本発明の第6の実施形態による「曖昧検索回路#2」を概略的に示すブロック図である。
「曖昧検索回路#2」は、「曖昧検索回路#1」に、更に、「垂直方向出力検出回路(534)」と、「タイマー回路(116)」を備え、搭載される制御回路は「制御回路(120)」から「制御回路(119)」に変更している。
第1の記憶回路(40)に対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、通常知られている構成であるため、本図では図面が煩雑となるのを避け記載していない。
搭載する一致度判定回路は、実施例として、一致度判定回路#2の例を示すが、一致度判定回路#1や一致度判定回路#3であってもかまわない。
【0125】
[垂直方向出力検出回路の信号に基づく制御回路の動作]
「垂直方向出力検出回路(524)」は、一致度判定回路#2の出力である「判定結果出力(260)」の各々の「発火セル(530)」を介して接続され、いずれかの「発火セル(530)」が発火した場合には、「垂直方向検出線(531)」と「垂直方向検出線読出し回路(532)」を通じて、「統合化発火信号(533)」にHighレベルを出力する。
出力された「統合化発火信号(533)」がHighレベルとなることは、曖昧検出回路#2を構成する一致度判定回路のいずれかが「類似度が高いと意味する信号」を出力したことを意味する。
いずれの「発火セル(530)」も発火しない場合には、「統合化発火信号(533)」はLowレベルである。
【0126】
「統合化発火信号(533)」が「発火」を意味するHighレベルとなった場合の「制御回路(119)」の制御による計数動作の制御に関しては、「外部からの制御信号入力(153)」の設定によって、以下のように複数の「設定上の選択肢」を持つ。
【0127】
[1] 「制御回路(119)」は、「統合化発火信号(533)」が「発火」を意味するHighレベルとなった信号を受けるか、「タイマー回路(116)」からタイムアウトを意味する信号を受けた時に、全ての一致度判定回路の「シフトレジスタ回路(202)」の中のFFの記憶値を、「第2の記憶回路」の記憶値に書き換えることで計数回路の計数値をリセットし、「所定の期間」を再スタートする。[請求項6]
[2] 「制御回路(119)」は、「統合化発火信号(533)」が「発火」を意味するHighレベルとなった信号を受けるか、「タイマー回路(116)」からタイムアウトを意味する信号を受けた時に、全ての一致度判定回路の計数値を強制的に1ステップだけ減ずることを指示する。[請求項6]
[3] 「制御回路(119)」には、[垂直方向出力検出回路]も「タイマー回路」も必要とせず、「外部からの制御信号入力(153)」の信号によって、「単位時間」を制御する。
【0128】
「外部からの制御信号入力(153)」の信号は、複数ビットの信号であってよく、他の曖昧検索回路の発火信号を受けるのでもよい。[請求項15]
これは、「垂直方向出力検出回路(534)」が、一致度判定回路の構成を取るからである。
【0129】
「発火セル(530)」は、「メモリセル(10)」と同型の構造を有する回路であるが、「発火セル(530)」に記憶されているデータに応じて、強制的に「非発火」の状態を継続させることを利用して、特定の一致度判定回路の不使用をプログラムすることが可能である。
本発明の実施の形態図のいずれにおいても、「発火セル(530)」の読出し書込みに関する回路や接続は表記していない。
【0130】
「垂直方向検出線読出し回路(532)」は、検出線読出し回路と同様に、
図4に例示されたような一般的なセンスアンプ回路である。 その閾値(114)を設定する回路が、「第3の閾値回路(113)」である。
【0131】
[発明を実施するための第7の形態である曖昧検索回路#3]
第11図は、本発明の第7の実施形態による「曖昧検索回路#3」を概略的に示すブロック図である。
本実施例の形態である「曖昧検索回路#3」においては、「曖昧検索回路#2(
図9)」の「活性化線駆動回路(155)」が「活性化線信号生成回路(156)」と替わり、「一致度判定回路(2)」の出力と、「発火セル(530)」の間に、「パルス発生回路(535)」が追加される。
また、外部からの入力信号は、「入力信号(80[0]から80[m-1])」から、「活性化制御信号(85[0]から85[Z-1])」と替わり、「制御回路(118)」には、「活性化線信号生成回路(156)」を制御する機能が追加されている。[請求項12]
第1の記憶回路(40)に対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、通常知られている構成であるため、本図では煩雑となるのを避け記載していない。
【0132】
これらの変更を伴う実施形態である曖昧検索回路#3は、外部からの入力信号としてはパルス信号を想定しておらず、「活性化線(90[0]から90[m-1])」に与えるパルス信号を「活性化線信号生成回路(156)」によって生成する。
【0133】
「パルス発生回路(535)」は、遅延回路と論理回路を組み合わせて構成される。
これは、遅延前の信号と、遅延後の信号の間で、NAND論理、もしくは、NOR論理を取ることで、遅延回路分のパルス幅を持つパルス発生回路を構成する公知の技術である。
「活性化線信号生成回路(156)」が、「活性化線信号(80)」を生成する上でも同様のパルス発生回路を用いる。
【0134】
「活性化信号の入力線(90)」の信号の各々は、定性的には、
・「単位時間」当たりのパルス密度という情報と、
・パルス信号の密度が「疎から密」に切り替わるタイミングと、
・パルス信号の密度が「密から疎」に切り替わるのタイミング
の3種類の情報を持つ。また、これらの情報が、「外部から入力される活性化信号の時系列が意味する入力データ」と等価となる。
【0135】
従って、「活性化線信号生成回路(156)」に入力される信号である「活性化制御信号(85[0]から85[Z-1])」には、「活性化信号の入力線(90[0]から90[m-1])」が必要とする情報量の全てを持たなくてはならず、一般的には、「活性化制御信号(85)」の本数は、「活性化信号の入力線(90」の本数よりも多くなる。
しかしながら、多くの情報がシリアル信号よってではなく、パラレルに入力される信号によって伝わるので、「曖昧検索回路#3」の動作は、他の実施形態よりも高速動作が可能である点が利点である。
【0136】
[発明を実施するための第8の形態である曖昧検索回路#4]
第12図は、本発明の第8の実施形態による「曖昧検索回路#4」を概略的に示すブロック図である。
第12図では、第16図、第17図、第18図に示した「第2の制御回路(119)」と「一致判定回路(2)」の「計測回路(207)」との間の制御信号線や、「第2の記憶回路の読出し書込み回路」と「一致判定回路」の間でデータの転送時に用いる信号線(TIM-GBL)や、「一致判定回路」の中の「第2の記憶回路」と「判定回路」の間でデータの転送時に用いられる信号線(TIM-LBL)の接続関係を模式的に示している。
【0137】
また、本実施形態では、「第1の記憶回路(40)」のメモリセルとして、クロスポイント型のメモリセルを用いている。
第12図のように、双方向動作が可能なクロス・ポイント・セルであれば、「活性化信号の入力線(90)」をセルの読出時のビット線として用い、「検出線(70)」を読み出し時のワード線として機能させることができるという利点がある。
【0138】
「第2の制御回路(119)」と「一致判定回路(2)」の「計測回路(207)」との間の制御信号線は以下である。
・305は、第2の記憶回路(200、もしくは、610)のアクセスを制御する。
・306は、シフトレジスタ回路(202)、または、カウンタ回路(560)のアクセスを制御する。
・307は、第2の記憶回路の記憶データをリセットする。
・308は、第2の記憶回路の記憶データをシフトレジスタ回路(または、カウンタ回路)に書き込むことを指示する。
・309は、シフトレジスタ回路(または、カウンタ回路)のデータを第2の記憶回路に書き込むことを指示する。
・288は、第2の記憶回路(200、もしくは、610)の記憶データを「第2の記憶回路の読出し書込み回路(570)」に読み出すことを指示する。
・289は、第2の記憶回路(200、もしくは、610)に、「第2の記憶回路の読出し書込み回路(570)」の記憶データを書き込むことを指示する。
・598は、シフトレジスタ回路(または、カウンタ回路)のデータを「昇順に移動させる、または、カウントアップする」ことを指示する。
・599は、シフトレジスタ回路(または、カウンタ回路)のデータを「降順に移動させる、または、カウントダウンする」ことを指示する。
【0139】
[発明を実施するための第9の形態である曖昧検索回路#5]
第13図は、本発明の第9の実施形態による「曖昧検索回路#5」を概略的に示すブロック図である。
本実施形態は、第11図で示した「曖昧検索回路#3」と比較すると、「第1の記憶回路(40)」、「第2の記憶回路(200)」の他に、「第3の記憶回路(45)」と、「第3の記憶回路への活性化信号線(91)」と、「活性化線駆動回路2(155[1])」と「検出線(71)」を追加で持ち、「検出線電流の読出し回路(101)」への「第1の閾値発生回路(111)」に替わっている。
【0140】
尚、この「曖昧検出回路#5」を構成する一致度検出回路には、第3の記憶回路(45)のメモリ・マトリックスと検出線(71)が追加となっているので、名称は「一致度検出回路#5(5)」となっている。「第1の記憶回路(40)」と「第3の記憶回路(45)」のメモリセルの読出し書込みに関する回路は、公知であるため、記載を省いている。
【0141】
「第3の記憶回路(45)」の活性化信号線(90[0]から90[m2-1])のいくつかに活性化パルスが印加されると、第3の記憶回路(45)のメモリセルの記憶データに従って、第3の記憶回路の検出線(71)に電流パルスが導通されうるが、この電流パルスは、「検出線電流の読出し回路(101)」の「第1の記憶回路からの電流パルスの検出」に対しては抑制的に機能するため、その「一致度検出回路#3(3)」の類似度検出を強制的に抑制する働きを持つ。
この機能は、ニューロン回路の動作を模倣する時に有用である。[請求項15]
【0142】
「一致度検出回路#3(3))の「検出線電流の読出し回路(101)」は、「検出線(70)」と「検出線(71)」の電流差を検出する回路構成を取る必要があり、例えば、
図4Bに例を示したような「差動型の電流センスアンプ」を「検出線電流の読出し回路(101)」に用いる。
「第2の検出線(71)」の電流による「第1の記憶回路からの電流パルスの検出」の抑制効果は、
図4Bの読出し回路のQ41、Q42のトランジスタ・サイズ比で大きく変わる。 ニューロン回路の動作を模倣する場合、Q42のトランジスタのゲート幅は、Q41のゲート幅よりも小さくなる。
【0143】
[発明を実施するための第10の形態である曖昧検索回路#6]
第14図は、本発明の第10の実施形態による「曖昧検索回路#6」を概略的に示すブロック図である。
本実施形態を、第13図で示した「曖昧検索回路#5」と比較すると、
・「第3の記憶回路(45)」のメモリ・マトリックスの「検出線(71)」からのパルス電流を検出するための「第2の検出線電流の読出し回路(102)」
・「第2の検出線電流の読出し回路(102)」の出力のパルス信号の個数を計数するための「計数回路(207)」
・「出力端子(260)」から、「類似度が高いことを意味する信号」を出力する「一致度検出回路」の物理アドレスをエンコードして出力する回路である「アドレス・エンコーダ回路(591)」
と、その出力回路(593)。
・「第2の記憶回路のデータのIO回路(211)」
を追加で持つ。
【0144】
尚、この曖昧検出回路#6を構成する一致度検出回路には、「第3の記憶回路(45)」のメモリ・マトリックスの「検出線(71)」からのパルス電流を検出するための「第2の検出線電流の読出し回路(102)」が追加となっているので、名称は「一致度検出回路#6(6)」となっている。 第1の記憶回路(40)と第3の記憶回路(45)のメモリセルの読出し書込みに関する回路は、公知であるため、記載を省いている。
【0145】
曖昧検索回路#6では、「第3の記憶回路(45)」のメモリ・マトリックスの「検出線(71)」からのパルス電流を検出するための「第2の検出線電流の読出し回路(102)」が追加されており、計数動作は、両者の差分をシフトレジスタ回路に入力することで行う。
「検出線電流の読出し回路(101)」からのパルス個数は、カウント・アップ、または、「Shift Forward」に寄与し、
「第2の検出線電流の読出し回路(102)」からのパルス個数は、カウント・ダウン、または、「Shift Reversely」に寄与する。
【0146】
また、曖昧検索回路#6では、「類似度が高いと意味する信号」を発する「一致度検出回路#4」の物理アドレスをエンコードして出力するので、アドレス出力回路(593)から出力されたアドレスを使って、「第2の記憶回路のIO回路(211)」から、「第2の記憶回路(200、もしくは、610)」をアクセスすると、その第2の記憶回路(200、もしくは、610)に記憶されていたデータを読み出す。[請求項17]
【0147】
[発明を実施するための第11の形態である曖昧検索回路#7]
第15図は、本発明の第11の実施形態による「曖昧検索回路#7」を概略的に示すブロック図である。
本実施形態を、第13図で示した「曖昧検索回路#5」と比較すると、
・第1の記憶回路が、第18図では1セットであったのに対し、第15図では3セット(40[0]、40[1]、40[2])となっており、それに伴い、活性化線駆動回路も3回路(155[0]、155[1]、155[2])持つ。
また、各一致度判定回路の単位で、空白設定ビット(813)を有する。
空白設定のための記憶回路(813)は、一致検出回路の動作を停止し、判定回路(290)から発火を意味する信号を強制的に出力させない記憶ビットである。(請求項23)
それらの変更に伴い、第3の記憶回路の活性化線駆動回路に対する名称を、活性化線駆動回路D(155[3])と変更している。
【0148】
第14図の「曖昧検索回路#6」で有していた「垂直方向出力検出回路(534)」が無く、代わりに、「判定回路A(290)」の発火を「曖昧検索回路#4(14)」にて検知し、「制御回路(120)」にフィードバックしている。
「曖昧検索回路#4(14)」は、「活性化線駆動回路E」、「第1の記憶回路E(40[4])」、「検出線電流読出し回路E」、「計数回路E(207)」、「第2の記憶回路E(200)」、「判定回路E(155)」、「垂直方向検出E(534)」からなる。
「曖昧検索回路#4(14)」によって検出した「判定回路A(290)」の発火の情報は、「活性化線駆動回路C(156[2])」と「活性化線駆動回路D(156[3])」経由で、「第1の記憶回路C(40[2])」と「第1の記憶回路D(40[3])」を操作することによって「計数回路A(207)」の計数動作のサイクルを終了するが、「曖昧検索回路#4(14)」の出力が、再度「曖昧検索回路#8」に入力されるので、その時点での「入力信号[系統A]」と「入力信号[系統B]」の情報を含めた新たな入力条件にて次の曖昧検索動作を開始することになる。
【0149】
「曖昧検索回路#4(14)」の曖昧検索にて、最も類似度の高い「判定回路E(290)」の出力を元に、「第4の記憶回路(47)」のメモリ・マトリックスのワード線が選択され、選択されたメモリセルのデータが、「読出し回路(49)」経由で、最終的な「曖昧検索回路#8の出力(580)」として出力される。[請求項19]
尚、「曖昧検索回路#4(14)」の制御回路や、「曖昧検索回路#4(14)」や「曖昧検索回路#8(18)」の「第2の記憶回路の読出し書込み回路」や、各々の「第1の記憶回路(40)」についての読出し書込み回路、等の共通回路は、図が煩雑となるのを避け、記載していない。
【0150】
「垂直方向出力検出回路(534)」によらずに、追加され混載された「曖昧検索回路#4(14)」によって、「判定回路A(290)」からの「類似度が高いことを意味する信号」を検出し、応答信号を出力することによって、本実施形態の「曖昧検索回路#7」は、「入力信号[系統A]」と「入力信号[系統B]」からの時系列の入力情報と、前サイクルの曖昧検索結果のフィードバック情報(92[0]~92[m3-1])を元に曖昧検索を行うという動作を反復し、時系列の情報を出力する。
【0151】
[時系列の情報出力を行う曖昧検索回路の概念図]
曖昧検索回路による時系列信号の発生を、
図22、
図23、
図24にて説明する。
第22図は、時系列の情報出力を行う曖昧検索回路の概念図である。
説明を簡単にするために、第22図の曖昧検索回路には、抑制動作のための「第3の記憶回路」は無く、「第1の記憶回路(40)」の3面からだけを表示する。また、3面の「第1の記憶回路(40)」は、16行×6列が2面と、16行×16列が1面であり、16行×16列に対してはフィードバック入力が行われている。
ここで、各面を構成するマトリックスの最小単位となるセルは、メモリセルではなく、「計数単位回路(55)」を表現している。
DL[0]~DL[15]は、検出線を意味しているのではなく、「計数単位回路(55)」が有する「検出線群(検出線[0]~検出線[k-1])」による「単位の記憶回路(55)」と「検出線電流の読出し回路[0]~検出線電流の読出し回路[k-1]」の接続を模式的に示している。
【0152】
従って、第22図が表現する検出線の総本数は(16×k)本であり、検出線群は16群である。 出力信号線(99[0]~[15])の総本数は16本である。
尚、第22図は概念図であるので、計数回路、第2の記憶回路、判定回路や、閾値発生回路等の周辺回路は記載していない。但し、3面の「第1の記憶回路」と、第2の記憶回路への読出し書込み回路と、読出し書込み時にメモリセルを特定するためのワード選択回路(812)を記載している。
第22図の概念図上の各回路の配置には、様々な異形が存在するが、第22図はそれらのレイアウト依存異形を代表して表現している。
第22図の概念図のようなフィードバック入力の構造を持つ複合メモリ回路は、一般的に、各「第1の記憶回路」が記憶するデータを適切に設定することにより、時系列の信号を出力させたり、出力をホールドさせたり、繰り返したりする機能と能力を持つ。
【0153】
図23は、フィードバック入力の構造に起因する時系列データの再生を示す例である、
図23と同様に、第1の記憶回路[系統A]、第1の記憶回路[系統B]、第1の記憶回路[系統FB]のマトリックス・サイズは、各々、16行×6列、16行×6列、16行×16列である。
マトリックスの最小単位となるセルは、メモリセルではなく、「単位の記憶回路(55)」を表現している。
3面のメモリ・マトリックの中の記憶データのうちの「ある程度大きな数字」を持つ「単位の記憶回路」に対しては、「M」、「N」、「A」、「B」・・・・、「H」の記号を付しているが、それ以外の「単位の記憶回路」は比較的に小さな値を持つと想定しており、「・」の記号を付している。
【0154】
各第1の記憶回路を示すマトリックスの上部には、活性化信号の入力線を通じて入力されるパルスの時系列が意味する情報である「単位時間当たりのパルス数」が示されている。
「P」や「Q」は、ある程度大きな数字であり、「・」は小さな数字であることを意味する。
「入力信号(90[2])」と「入力信号(91[4])」は、検出線群(DL[2])との間で他検出線群に比べて大きな内積値を持つので、時間を経過すると、「類似度が高い」との信号を出力する。その出力信号は、図の右半分のStep=1の列のDL[2]の行に、「値1」と示されている。
この状況を、「検出線群(DL[2])」が発火したと呼ぶこととする。
出力信号は、パルス発生回路(535)が搭載された場合には、ある一定期間継続する。
【0155】
検出線群(DL[2])の発火は、信号入力線(99[2])にてフィードバック入力され、「第1の記憶回路[系統FB]」に活性化信号を送る。 信号入力線(99[2])と検出線群(DL[9])が交わる箇所である「単位の記憶回路(55)」の記憶データにはある程度大きな数字である「A」が存在するので、検出線群(DL[12])も発火する可能性が生ずる。 この時点で、当初、大きな値の入力信号であった入力信号線(90[2])と入力信号線(91[4])のパルス信号の量が減るとすると、検出線群(DL[9])のみが発火することとなる。
【0156】
検出線群(DL[9])の発火は、再びフィードバック入力され、次に、マトリックス内の「B」の値によって、検出線群(DL[14])が発火し、引き続き、
マトリックス内の「C」の値によって、検出線群(DL[3])が発火し、
マトリックス内の「D」の値によって、検出線群(DL[5])が発火し、
マトリックス内の「E」の値によって、検出線群(DL[12])が発火し、
マトリックス内の「F」の値によって、検出線群(DL[7])が発火し、
マトリックス内の「G」の値によって、検出線群(DL[15])が発火し、
そして、
マトリックス内の「H」の値によって、検出線群(DL[2])が再度発火し、AからHの発火を繰り返すこととなる。
【0157】
上記のケースは、マトリックス内の「H」の値によって、発火動作がループするように設定されていたが、「H」の箇所の値が十分に小さいか、ゼロであるとすると、それ以降の発火の展開は進まない可能性が大きい。実際に発火するかどうかは、「単位時間の設定」や「・」と記された「単位の記憶回路(55)」の実際の記憶値の大きさに依存する。
【0158】
以上のように、曖昧検出回路によって、外部からの信号入力を元に、発火する出力端子を時間と共に変えてゆく動作が可能である。
99[0]から99[15]の信号が、各々、別々のサブルーチン動作への指示信号であるとすると、この信号シークエンスをプログラムの制御に適用した本発明の実施形態は、「本発明の第12の実施形態」に示す。
【0159】
図24は、
図22に示した「時系列の情報出力を行う曖昧検索回路の概念図」の別表現である。
外周に並ぶDL[0]からDL[15]は、16個の「検出線群」である。各々の「検出線群」には、外部から2系統の信号入力(90[0]から90[5])と(91[0]から91[5])を受け、外部に対して1本の出力99[j](j=0から15のいずれかの数値)を出力する。
どの「検出線群」にも共通の「90[0]から90[5])と(91[0]から91[5]」が入力されるが、どの「検出線群」に送られる「90[0]から90[5])と(91[0]から91[5])も同じであるように表現すると図が非常に煩雑になるので、それらを結ぶ線は表現されていない。
【0160】
円の内側で、各々の「検出線群」の間を結ぶ破線や実線は、「第1の記憶回路[系統FB]」の16行×16列の「単位の記憶回路(55)」を意味する。各破線や各実線は、方向を持つので、実際には互いに逆向きの2本で示すべきであるが、図が煩雑になるのを避け、1本しか記載されていない。
「ある程度大きな数字」を持つとした「単位の記憶回路」である「A」、「B」・・・・、「H」を意味する線は太い実線で示してあり、「A」、「B」・・・・、「H」の符号が〇印の中に記されている。
【0161】
この図は、DL[2]の「検出線群」が発火した場合、「単位の記憶回路」である「A」、「B」・・・・、「H」に従って、順に、検出線群(DL[9])の発火は、再びフィードバック入力され、次に、マトリックス内の「B」の値によって、DL[14]、DL[3])、DL[5]、DL[12]、DL[7])、DL[15]、ついで、DL[2]の発火が連続しうることが分かる。
つまり、
図22の「時系列の情報出力を行う曖昧検索回路の概念図」の接続は、全結合のニューラル・ネットワークに類似するネットワークである。
【0162】
[本発明の第12の実施形態]
第25図は、本発明の第12の実施形態による「自律応答回路#1」を概略的に示すブロック図である。 第25図のブロック図中の曖昧検索回路の引用は、
図22Bで定義した「シンボル図」を用いる。
「自律応答回路#1(801)」は、曖昧検出回路A(701)と、メモリ回路A(735)と、データ処理回路(725)と、第1の圧縮回路(745)と、第2の圧縮回路(755)から構成される。
曖昧検出回路A(701)は、本発明の実施形態である「曖昧検索回路#1」から「曖昧検索回路#7」や、本発明の実施形態である「一致度判定回路#1」から「一致度判定回路#6」を元に構成する曖昧検索回路、もしくは、検索回路をいう。どのような実施形態を採用するかは、「自律応答回路#1(801)」が扱うデータの規模や種類、求める応答の精度による。
【0163】
メモリ回路A(735)は、アドレス信号を入力として、データを出力する公知の概念であり公知の技術となっているSRAMや、DRAM、Flash-Memory等のメモリ回路である。
データ処理回路(725)は、CPU、MPU、PLA、FPGA、ASICをふくめたデータ処理用の公知の技術に基づく論理回路であり、内部に搭載するメモリ回路Aに書き込まれたプログラムを元に入力データを処理して出力データを出力する。
【0164】
第1の圧縮回路(745)と、第2の圧縮回路(755)は、曖昧検出回路A(701)に入力するデータの類型を生成する回路であり、「曖昧検索回路#1」から「曖昧検索回路#8」に例示した本発明の実施形態や、「一致度判定回路#1」から「一致度判定回路#5」に例示した本発明の実施形態を元に構成する曖昧検索回路、もしくは、公知の検索回路やデータ圧縮回路をいう。
どのような実施形態を採用するかは、「自律応答回路#1(801)」が扱うデータの規模や種類、求める応答の精度による。
【0165】
「自律応答回路#1(801)」に搭載された「曖昧検出回路A(701)」は、3系統の入力を受け取る。
第1の系統の入力は、第1の圧縮回路(745)の出力である「入力信号:720」だが、第1の圧縮回路(745)の元となるデータは、外部から入力される「入力データ(710)」、もしくは外部から入力される「入力データ(710)」を「入力信号変換回路(715)」によって前処理されたデータ、もしくは、それら信号の一部である。 どのようなデータ、もしくは、信号を「入力信号:720」として採用するかは、実施形態に依存する。
図25には、「入力信号変換回路(715)」が挿入されるケースが示されている。
【0166】
第2の系統の入力は、データ処理回路(725)の出力である「データ処理回路の出力(740と750)」である。データ処理回路(725)の出力は、一般に「Status信号」もしくは「Flag信号」等の名称がつけられることが多い「データ処理回路(725)」の状況を意味する信号(750)と、「データ処理回路(725)」によって処理された出力である「出力データ(740)」の両方であるが、多くの場合、「Status信号」で良い。
図25には、「出力データ(740)」と「Status信号(750)」の両方が、第2の系統の入力として示されている。
【0167】
第3の系統の入力は、外部から入力される「制御信号(785)」である。
「制御信号(785)」は、実質的には、「曖昧検出回路A(701)」の「外部からの制御信号入力(153)」であり、「曖昧検出回路A(701)」の中の記憶回路のデータの書込み、読出し、設定、リセットを行い、計数回路の制御を行う。
尚、第25図の中では示していないが、「第1の圧縮回路」や「第2の圧縮回路」を本発明の「曖昧検索回路」で構成する場合には、「外部からの制御信号(153)」に相当する外部からの信号を、その「曖昧検索回路」に与える必要がある。
【0168】
「曖昧検出回路A(701)」は、内部に、本発明の曖昧検索回路の「第1記憶回路」をすくなくとも1個、もしくは複数有し、外部から入力される「入力情報(720)」を元に「第1のデータ圧縮回路」で生成したコンテンツと、「応答信号2(780)」を元に「第2のデータ圧縮回路」で生成したコンテンツの組み合わせである「データ群」と、「曖昧検出回路A(701)」の内部に記憶するどのコンテンツを比較して、最も類似するコンテンツが記憶した「データ群」のどれに最も類似するかの情報を「応答出力(760)」として出力して、「メモリ回路A(735)」に伝える。
【0169】
即ち、「自律応答回路#1(801)」は、外部の状況を意味する「入力信号:710」と、その時点での「自律応答回路#1(801)」の出力が意味する「応答信号2」の組み合わせと最も類似する過去の状況を、「曖昧検索回路A(701)」の中の「第1の記憶回路」の中から曖昧検索し、最も類似すると判定する「過去の状況」の応答を「応答出力:760」として出力し、メモリ回路A(735)を通じて、データ処理回路(725)への指示を行う。
【0170】
「曖昧検出回路A(701)」から「メモリ回路A(735)」への情報伝達は、「曖昧検出回路A(701)」の中の「一致度判定装置」の物理アドレスをエンコードして「メモリ回路A(735)」に伝達する場合と、「一致度判定装置」の物理アドレスをエンコードせずに、「一致度判定装置」ごとに「出力データ記憶回路(46)」を持つという実装形態でもよい。[請求項19]、[請求項4]
【0171】
[本発明の第13の実施形態]
第26図は、本発明の第13の実施形態による「自律応答回路#2」を概略的に示すブロック図である。
第26図のブロック図中の曖昧検索回路の引用は、
図22Bで定義した「シンボル図」を用いる。
「自律応答回路#2(802)」は、曖昧検出回路A(701)、曖昧検出回路B(702)と、曖昧検出回路C(703)とメモリ回路A(735)、メモリ回路B(736)、メモリ回路C(737)と、合成回路(704)とから構成されている。
曖昧検出回路A(701)、曖昧検出回路B(702)、曖昧検出回路C(703)は、本発明の実施形態である「曖昧検索回路#1」から「曖昧検索回路#8」や、本発明の実施形態である「一致度判定回路#1」から「一致度判定回路#5」に例示した曖昧検索回路、もしくは、検索回路、もしくは、連想メモリ回路をいう。どのような実施形態を採用するかは、「自律応答回路#1(801)」が扱うデータの規模や種類、求める応答の精度による。
【0172】
メモリ回路A(735)、メモリ回路B(736)、メモリ回路C(737)は、アドレス信号を入力として、データを出力する公知の概念であり公知の技術となっているメモリ回路である。
データ処理回路(725)は、CPU、MPU、PLA、FPGA、ASICを含めたデータ処理用の公知の技術に基づく論理回路であり、内部に搭載するメモリに書き込まれたプログラムを元に入力データを処理して出力データを出力する。
【0173】
「曖昧検出回路A(701)」、「曖昧検出回路B(702)」、「曖昧検出回路C(703)」は、それぞれ、内部に本発明の曖昧検索回路の「第1記憶回路」をすくなくとも1個、もしくは複数有し、外部から入力される情報の組み合わせと、内部に記憶するどのコンテンツを比較して、最も類似するコンテンツがどれであるかという情報を出力する。
【0174】
「合成回路(704)」は、複数の入力を受け、「データ処理回路(725)」に対する制御信号を意味するデータを合成する。具体的には、プログラムのスタート信号や、その際に送るべき制御コードである
【0175】
[曖昧検出回路とメモリ回路に予め書き込んでおくデータ]
「曖昧検出回路A(701)」には、予め、「応答信号2(780)」と「入力信号(720)」のありうるデータの組み合わせを一定の精度、もしくは粒度で記憶しておく。また、「メモリ回路#A(735)」には、それら組み合わせの各々に対して、データ処理回路に送るべき制御信号を記憶させておく。
【0176】
「曖昧検出回路B(702)」には、「入力信号(720)」と「応答信号(760)」のありうる組み合わせを一定の精度、もしくは粒度で記憶しておく。また、「メモリ回路#B(736)」には、それら組み合わせの各々に対して、「入力信号(720)に関して次のStepで予想する値」を対応させて記憶させておく。
【0177】
「曖昧検出回路C(703)」には、「入力信号(720)」と「曖昧検出回路B(702)が入力信号(720)に関して次のStepで予想する値」のありうる組み合わせを一定の精度、もしくは、一定の粒度で記憶しておく。また、「メモリ回路#C(737)」には、それら組み合わせの各々に対し、「曖昧検索回路Aの出力に対する補正値」を対応させて記憶させておく。
【0178】
[自律応答回路#2の動作]
これらように、各曖昧検索回路と各メモリ回路の記憶データを設定して起き、以下の動作を行う。
先ず、ステップ#1では、
その元で、現状の「応答信号2(780)」と「外部状況を意味する入力信号(720)」によって、「曖昧検索回路A」を曖昧検索する。「曖昧検索回路A」からは、入力した組み合わせに最も類似度の高い組み合わせが発火し、「メモリ回路#A(735)」を通じて、データ処理回路に送るべき制御信号を発生させる。
【0179】
ステップ#2では、「曖昧検出回路B(702)」と「メモリ回路B(736)」によって、「入力信号(720)」と「応答信号(760)」の過去の組み合わせから、「次のStepで予想される入力信号」を出力する。
【0180】
ステップ#3では、「曖昧検出回路C(703)」と「メモリ回路C(737)」によって、「次のStepで予想される入力信号」と、「実際に生じた入力信号」の組み合わせで、両者の差分を理解し、その時に必要な「差分対応制御信号(770)」を発生させる。
【0181】
ステップ#4では、「合成回路(704)」によって、「曖昧検索回路A」が割り出した「データ処理回路(725)」に送るべき制御信号に、「曖昧検出回路C(703)」が判定した「差分対応制御信号(770)」によって、「データ処理回路(725)」に送る制御信号を合成する。
【0182】
[複雑な曖昧検索回路の抽象化モデル]
第27図は、入力信号の系統が2系統(系統A、系統B)である場合の本発明の曖昧検索回路の実施形態を抽象的に表現するモデルを表現するブロック図である。
本発明の曖昧検索回路を構成する回路ブロックは非常に多く、また、信号数も多いので、以降、本モデルを用いて、本発明の実施形態における曖昧検索回路の拡張方法と、各記憶回路の記憶データのメインテナンス動作を説明する。
第27図のモデルは、
図22に示した入力信号の系統が2系統の曖昧検索回路の構成を包含し、また、第4の記憶回路(47)を持つ
図15の曖昧検索回路の構成も包含する。
第27図のモデルにおける「フィードバック記憶回路[FB])は、
図15における「第3の記憶回路(45)」に相当する。
図15での「曖昧検索回路#4(14)」の機能は、27図の「垂直方向出力検出回路(534)」に相当する。
【0183】
動作モードが、「計数モード」である場合、「入力信号(系統A)」と「入力信号(系統B)」から、曖昧検索のための信号が入力されるが、曖昧検索された結果としての発火信号は「曖昧検索回路の出力信号(99)」から出力され、その信号を元に「第4の記憶回路(47)」のワードが選択され、その内容である読出し出力が「出力信号(580)」として出力される。
これら、「計数モード」で有効となる「入力信号(系統A)」と「入力信号(系統B)」と「出力信号(580)」を伝える信号を「曖昧検索バス(891)」と呼ぶ。
【0184】
一方、「メインテナンス・モード」では、「アドレス選択信号(811)」を元に、「読出し書込み信号(系統A:821)」、もしくは、「読出し書込み信号(系統B:822)」、もしくは、「第2の記憶回路の信号(210)」、もしくは、「読出し書込み信号(FB系統:831)」、もしくは、「第4の記憶回路の読出し書込み信号(841)」を通じて、各信号が対応する記憶回路の記憶データの読出し動作、もしくは、書込み動作を行う。
これら、「メインテナンス・モード」で有効となる「アドレス選択信号(811)」、「読出し書込み信号(系統A:821)」、「読出し書込み信号(系統B:822)」、「第2の記憶回路の信号(210)」、「読出し書込み信号(FB系統:831)」、「第4の記憶回路の読出し書込み信号(841)」を伝える信号を「メインテナンス・バス(892)」と呼ぶ。
【0185】
「動作モード」の制御や、読出し書込み動作の制御は、「制御回路」が行い、そのために制御回路には「制御信号(153)」が入力される。
このように、「計数モード」での動作と、「メインテナンス・モード」での動作は、別系統の入出力信号が使われる。
【0186】
[本発明の第14の実施形態]
第28図と第29図は、本発明の第14の実施形態による「自律応答回路#4」の概要を説明するブロック図である。第28図と第29A図のブロック図中の曖昧検索回路の引用は、
図27Bで定義した「シンボル図」を用いる。
第28図は、本発明の第14の実施形態による「自律応答回路#4」を概略的に説明示すブロック図である。
「自律応答回路#4」は、主に、曖昧検索の動作を行う「計測モード」の機能を必要とする「データ処理回路(725)」と、各曖昧検索回路の記憶回路のメインテナンスを行う「CPU(871)」と「バックアップ・メモリ(872)」とから構成される。
【0187】
「自律応答回路#4」は、複数の曖昧検索回路を搭載する「曖昧検索回路の拡張(880)」の技術であり、それら複数の曖昧検索回路のメインテナンス・モードでの信号伝送に使われる入力系統の信号と出力系統の信号は、メインテナンス・バスにつながれる。
メインテナンス・モードでは、「CPU(871)」の制御によって、曖昧検索回路[0:(S-1)]の各々が搭載する記憶回路のデータを、「バックアップ・メモリ(872)」に読出し、その物理アドレスとデータの関係を最適化する処理を行った上で、データを各曖昧検索回路の記憶回路に書き戻す。
【0188】
「計測モード」では、「曖昧検索バス」を通じて、「データ処理回路(725)」から、検索データを曖昧検索回路[0:(S-1)]の各々に送り、「データ処理回路(725)」それらからの「発火」情報を受ける。 複数の発火情報が応答される場合は、最も早い応答が、最も類似度が高いことになる。
【0189】
[曖昧検索回路とバスの接続方法]
第29図は、第28図で細部を省略した「曖昧検索回路とメインテナンス・バスや曖昧検索バスとの接続」を示す。
曖昧検索回路とメインテナンス・バスの接続の間には、レジスタとFIFOが介在することにより、メインテナンス・バスが空いている時のみ、曖昧検索回路は出力データをメインテナンス・バスに出力する。
同様に、曖昧検索回路と曖昧検索バスの接続の間には、レジスタとFIFOが介在することにより、曖昧検索バスが空いている時のみ、曖昧検索回路は出力データを曖昧検索バスに出力する。
【0190】
メインテナンス・バスも、曖昧検索バスも、一方向にのみデータを伝送するリング・バスを構成するので、各レジスタを高速に動作させることができる。
【0191】
[本発明の第15の実施形態]
第30図は、本発明の第15の実施形態による「自律応答回路#4」を説明する。
第30図は、本発明の第15の実施形態による「自律応答回路#4」を示すアルゴリズムの概略を示す実施例である。
第28図と第29図で示した「曖昧検索回路の拡張」を行うことにより、出力データを第4の記憶回路」に記載した宛先アドレスの「曖昧検索回路+第4の記憶回路」に送ることができるので、各記憶回路のデータに従って、複数の曖昧検索回路に、自律的にデータを送信することができる。
ブロック図中の曖昧検索回路の引用は、
図22Bで定義した「シンボル図」を用いる。
【0192】
例えば、第30図は、本発明の第15の実施形態による「自律応答回路#4」を示すアルゴリズム場合、複数の入力データ(710)は、各「入力信号変換回路(715)」をと各「第1のデータ圧縮回路(745)」経由で、「曖昧検索回路A(701)」と「曖昧検索回路B(702)」に送られるが、この動作は、
図29Bの概略図の中では、「データ処理回路(725」」からのデータが、「CPU、バックアップ・メモリ、合成回路、IO回路(881)」経由で、リング・バスを通って、曖昧検索回路A(701)と曖昧検索回路B(702)と曖昧検索回路C(703)に入力されるという動作に対応する。
【0193】
メモリ回路A、メモリ回路B、メモリ回路Cには、出力データの行く先アドレスも記憶するので、メモリ回路A、メモリ回路B、メモリ回路Cの各々の出力の行き先は、リングバス中の別の曖昧検索回路であるか、もしくは、「CPU、バックアップ・メモリ、合成回路、IO回路(881)」である。
曖昧検索処理が終わると、結果は、「CPU、バックアップ・メモリ、合成回路、IO回路(881)」を経由して、「データ処理回路(725)」に戻される。
【産業上の利用可能性】
【0194】
本発明は、データを「パルス信号の時系列」という形態でメモリ・マトリックスに送り、メモリ・マトリックスをデータ変換回路として用いるという点で、従来の回路の電子回路技術とはかなり異なっている。そのため、実用に向けては、いくつかの関連技術の立ち上がりを待たなくてはいけないという状況にはある。
【0195】
シリアル通信の利点は、「配線数が少なくて済む」ということであるが、一方、データ伝送に費やすレイテンシが増えるので、回路全体の処理スピードを遅くしうるというディメリットを持つ。
本発明の技術手法においても、データを「パルス信号の時系列」という形態で伝送することが、レイテンシと処理スピード面でのディメリットとなりうるが、その不利益点を、「記憶データと入力データの間の内積計算をメモリチップの中で非常にパラレルに行うという並列化の徹底」と、「記憶回路と演算回路の一体化」によって補い、そのメリットはディメリットを上回る。メリットとディメリットのバランスは、当然ながらアプリケーションに依存しうるのだが、人工知能のように、常に記憶データを総動員する必要のある用途ではメリットは非常に大きいと考えられる。
【0196】
電子回路は、従来、入力データと出力データの間の論理的な因果関係が全く明確であったが、曖昧なデータ処理ともいえる本発明の「曖昧検索」は、工業が基盤とする文化面での根本的なチャレンジとなる。この点も、いくつかの関連技術の立ち上がりを必要とするので、保守的に考える立場のアプリケーションでは壁であるかもしれない。
【0197】
しかしながら、電子回路は、常に、人間の脳の能力へのチェレンジであった訳であり、また、昨今発展の著しい多くのアプリケーションにては確率過程うことが増え、確定的ではない予測や予想を求めるケースが増えていることからすると、本発明の実用化に向けてのチェレンジは今後の電子回路全般の技術の進化と深化にとって、避けて通ることができない突破が必要な壁だともいえる。
本技術は、今後の電子回路技術が向かう方向である。
【符号の説明】
【0198】
1 : 一致度判定回路#1
2 : 一致度判定回路#2
3 : 一致度判定回路#3
4 : 一致度判定回路#4
5 : 一致度判定回路#5
6 : 一致度判定回路#6
11 : 曖昧検出回路#1
12 : 曖昧検出回路#2
13 : 曖昧検出回路#3
14 : 曖昧検出回路#4
15 : 曖昧検出回路#5
16 : 曖昧検出回路#6
17 : 曖昧検出回路#7
10 : 連想メモリセル
20 : メモリセル
30 : クロスポイント・セル
40 : 第1の記憶回路
42 : 第5の記憶回路
45 : 第3の記憶回路
46 : 出力データ記憶回路
47 : 第4の記憶回路
48 : 第4の記憶回路のワード線選択回路
49 : 第4の記憶回路の読出し回路
50 : 検出単位回路
55 : 単位の記憶回路
61 : 第1の検出線
62 : 第2の検出線
70 : 検出線
71 : 第2の検出線
80 : 入力線
81 : 第2の入力線
85 : 外部からの活性化信号 to 活性化線駆動回路
86 : 活性化パルス個数情報 to 活性化線信号生成回路
87 : 活性化制御信号 to 活性化信号制御回路
90 : 活性化信号の入力線
91 : 第2の活性化信号の入力線
99 : 判定結果出力
101 : 検出線電流の読出し回路
102 : 第2の検出線電流の読出し回路
111 : 第1の閾値情報発生器
112 : 閾値バイアス1
113 : 第3の閾値情報発生器
114 : 閾値バイアス3
115 : バイアス電圧
116 : タイマー回路
117 : 第4の制御回路
118 : 第3の制御回路
119 : 第2の制御回路
120 : 第1の制御回路
151 : 順次選択指示信号
152 : 順次選択制御信号
153 : 外部からの制御信号入力
155 : 活性化線駆動回路
156 : 活性化線信号生成回路
157 : 活性化本数制御回路
158 : 活性化本数制御回路 B
200 : 第2の記憶回路
201 : 計数入力
202 : シフトレジスタ
203 : シフトレジスタ制御回路
204 : シフトレジスタのユニット回路
206 : 第2の計数回路
207 : 計数回路
208 : 計数回路前段
209 : 計数回路後段
210 : 第2の読出し書込み信号(D2)
211 : 第2の記憶回路のIO回路
212 : 第2の記憶回路のIO回路への制御入力
260 : 判定結果出力
270 : 出力データ記憶回路の出力
288 : 読出し制御信号
289 : 書込み制御信号
290 : 判定回路
291 : Shift-Forward at Odd Cycle
292 : Shift-Forward at Even Cycle
293 : Shift-Reversely at Odd Cycle
294 : Shift-Reversely at Even Cycle
305 : Threshold Information Memory Access Global
306 : Shift Register Access Global
307 : Reset Content Global
308 : Write TIM to SR Global
309 : Write SR To TIM Global
404 : Read Write & Reset制御回路
405 : Write TIM to SR Local
407 : Reset Content Local
408 : Shift Register Access Local
409 : Threshold Information Memory Access Local
506 : Write SR To TIM Local
510 : 統合ストロボ信号
521 : 第4の記憶回路の制御信号
522 : 第4の書込み信号
523 : 第4の読出し信号
530 : 発火セル
531 : 垂直方向検出線
532 : 垂直方向検出線読出し回路
533 : 統合化発火信号
534 : 垂直方向出力検出回路
535 : パルス発生回路
540 : カウンタ制御回路
543 : 判定回路B
560 : カウンタ回路
570 : 第2の記憶回路の読出し書込み回路
571 : 第4の記憶の入出力IO回路
572 : 第4の記憶回路外部からの制御信号
573 : 第4の記憶回路の外部からの書き込み信号
574 : 第4の記憶回路の外部への読出し信号
575 : 第4の記憶回路
580 : 曖昧検索回路#8の出力
581 : 第2の書込み信号
582 : 第2の読み出し信号
585 : Flag出力信号
590 : アドレス出力
591 : アドレス・エンコーダ回路
592 : アドレス・エンコーダ・ユニット回路
593 : アドレス出力回路
598 : 順方向にシフト
599 : 逆方向にシフト
604 : Read Write & Reset制御回路B
610 : カウンタ方式での第2の記憶回路
690 : ワード内周辺回路
701 : 曖昧検索回路A
702 : 曖昧検索回路B
703 : 曖昧検索回路C
704 : 合成回路
710 : 入力信号変換回路の入力データ
715 : 入力信号変換回路
720 : 入力信号
725 : データ処理回路
735 : メモリ回路A
736 : メモリ回路B
737 : メモリ回路C
738 : メモリ回路Bの出力
739 : メモリ回路Cの出力
740 : データ処理回路(725)の出力データ
745 : 第1のデータ圧縮回路
750 : データ処理回路(725)のStatus信号出力
755 : 第2のデータ圧縮回路
760 : 応答出力
765 : メモリ回路Aの出力
770 : 差分対応制御信号
775 : 入力信号変換回路(715)の出力
780 : 応答信号2
785 : 制御信号
795 : 曖昧検索回路Bの出力
801 : 自律応答回路#1
802 : 自律応答回路#2
803 : 自律応答回路#3
811 : アドレス信号
812 : ワード選択回路
813 : 空白制御ビット
821 : 読出し書込み信号[系統A]
822 : 読出し書込み信号[系統B]
826 : 読出し書込み回路[系統A]
827 : 読出し書込み回路[系統B]
831 : 読出し書込み信号[系統FB]
836 : 読出し書込み回路[系統FB]
841 : 第4の記憶回路の読出し書込み信号
851 : アドレス線
852 : 制御信号線
853 : データ・バス
861 : 曖昧検索入力信号[系統A]
862 : 曖昧検索入力信号[系統B]
863 : 曖昧検索結果応答出力バス
871 : CPU
872 : バックアップ・メモリ
873 : データ処理回路
880 : 曖昧検索回路の拡張:880
881 : CPU、バックアップ・メモリ、合成回路、IO回路
882 : レジスタ
883 : FIFO
888 : 曖昧検索回路+第4の記憶回路
891 : 曖昧検索バス
892 : メインテナンス・バス