(57)【要約】  検索データに類似するデータを探索する際に、参照データの次元数に柔軟に対応することができかつコンパクトな回路構成を有するメモリ装置及びメモリシステムを提供する。検索データに類似するデータを探索する際に処理時間を低減し、回路面積の低減が可能なメモリシステムを提供する。メモリ装置１００は、複数の読み出し回路としての読出／書込回路１１４と、検索データを分けて出力する入力検索データ保存回路１３１と、複数の類似度評価セル１３３と、複数の電流統合回路１３５と、を備える。このような構成のメインコア及びブランチコアを備えることでメモリシステムを構成する。
2017195874.tif 000002
【特許請求の範囲】
【請求項１】
メインコアと一又は複数のブランチコアとを備え、
前記メインコア及び前記ブランチコアは、それぞれ、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる複数の参照データが次元毎に分けられて記憶されているメモリ領域において、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレンのうち対応するメモリグレンから、それぞれの読み出し回路が参照データを読み出す複数の前記読み出し回路と、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる検索データが保存されており、前記検索データを分けて出力する検索データ保存回路と、
それぞれの類似度評価セルが、前記メモリ領域からの読み出し毎に読み出された参照データのそれぞれと検索データとの類似度を求め、前記検索データ保存回路から読み出されたデータに対し、対応する前記読み出し回路で読み出された参照データの類似度を電流値として出力する、複数の前記類似度評価セルと、
それぞれの電流統合回路が、対応する前記任意数の前記類似度評価セルから出力された電流を統合する複数の前記電流統合回路と、
前記メモリ領域からの読み出し及び類似度評価毎に、前記メモリ領域から読み出された参照データのそれぞれの検索データとの類似度から、類似度の高い参照データの候補をローカルウィナーとして求める探索部と、
を備え、
前記メインコアは、
前記探索部で前記読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、前記グローバルウィナーの類似度を記憶する一時記憶回路を備えた比較更新部を備え、前記比較更新部が、前記メインコアの前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較すると共に、前記ブランチコアの前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較する、メモリシステム。
【請求項２】
複数の前記類似度評価セルが、前記任意数の前記類似度評価セルを有するセル群に区分けされており、
それぞれの前記電流統合回路が一つの前記セル群に対応しており、
それぞれの前記電流統合回路が、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合するように、切替スイッチが設けられている、請求項１に記載のメモリシステム。
【請求項３】
複数の前記電流統合回路のうち、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合する電流統合回路にのみ電力供給がなされる、請求項２に記載のメモリシステム。
【請求項４】
前記類似度評価セルの前段には、デジタルデータをアナログデータに変換するデジタル／アナログコンバーターが設けられ、
前記類似度評価セルは、前記デジタル／アナログコンバーターでアナログ変換されたデータに基いて、類似度をアナログ電流値として、対応する前記電流統合回路に出力する、
請求項１乃至３の何れかに記載のメモリシステム。
【請求項５】
前記メインコア及び前記ブランチコアは、それぞれのタイムドメインコンバーターが対応する前記類似度評価セルで求めた類似度を遅延時間に変換する複数のタイムドメインコンバーターと、を備える、請求項１乃至４の何れかに記載のメモリシステム。
【請求項６】
前記探索部は、前記複数のタイムドメインコンバーターから入力された、複数の遅延時間から最短遅延に対応する前記ローカルウィナーを検索すると同時に、前記ローカルウィナーのデジタル類似度として、カウンタで前記最短遅延を遅延時間内のクロックサイクル数に変換し、前記ローカルウィナーのアドレスを割り出す、タイムドメイン最小値探索回路を備える、請求項５に記載のメモリシステム。
【請求項７】
前記比較更新部は、前記メインコア及び前記ブランチコアの前記探索部からローカルウィナーの類似度の入力を受け、前記一時記憶回路に記憶しているグローバルウィナーの類似度と比較して高い類似度の値を前記一時記憶回路に更新する最小値探索回路を備える、請求項６に記載のメモリシステム。
【請求項８】
前記メインコアにおける前記探索部による探索処理と前記比較更新部による比較更新と、前記ブランチコアにおける前記探索部による探索処理とを、同期したクロックにより行う、請求項１乃至７の何れかに記載のメモリシステム。
【請求項９】
前記探索部による探索処理と前記比較更新部による比較更新とは、前記メインコア及び前記ブランチコアで任意のクロック数ずれてなされる、請求項８に記載のメモリシステム。
【請求項１０】
メインコアと一又は複数のブランチコアとを備え、
前記メインコア及び前記ブランチコアは、それぞれ、メモリ領域からの読み出し及び類似度評価毎に、前記メモリ領域から読み出された参照データのそれぞれの検索データとの類似度から、類似度の高い参照データの候補をローカルウィナーとして求める探索部を備え、
前記メインコアは、前記探索部で前記読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、前記グローバルウィナーの類似度を記憶する一時記憶回路を備えた比較更新部を備え、前記比較更新部が、前記メインコアの前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較すると共に、前記ブランチコアの前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較する、メモリシステム。
【請求項１１】
前記メインコア及び前記ブランチコアは、それぞれの類似度評価セルが前記メモリ領域からの読み出し毎に読み出された参照データのそれぞれと検索データとの類似度を求める複数の前記類似度評価セルと、それぞれのタイムドメインコンバーターが対応する前記類似度評価セルで求めた類似度を遅延時間に変換する複数のタイムドメインコンバーターと、を備える、請求項１０に記載のメモリシステム。
【請求項１２】
前記探索部は、前記複数のタイムドメインコンバーターから入力された、複数の遅延時間から最短遅延に対応する前記ローカルウィナーを検索すると同時に、前記ローカルウィナーのデジタル類似度として、カウンタで前記最短遅延を遅延時間内のクロックサイクル数に変換し、前記ローカルウィナーのアドレスを割り出す、タイムドメイン最小値探索回路を備える、請求項１１に記載のメモリシステム。
【請求項１３】
前記比較更新部は、前記メインコア及び前記ブランチコアの前記探索部からローカルウィナーの類似度の入力を受け、前記一時記憶回路に記憶しているグローバルウィナーの類似度と比較して高い類似度の値を前記一時記憶回路に更新する最小値探索回路を備える、請求項１２に記載のメモリシステム。
【請求項１４】
前記メインコアにおける前記探索部による探索処理と前記比較更新部による比較更新と、前記ブランチコアにおける前記探索部による探索処理とを、同期したクロックにより行う、請求項１０乃至１３の何れかに記載のメモリシステム。
【請求項１５】
前記探索部による探索処理と前記比較更新部による比較更新とは、前記メインコア及び前記ブランチコアで任意のクロック数ずれてなされる、請求項１４に記載のメモリシステム。
【請求項１６】
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる複数の参照データが次元毎に分けられて記憶されているメモリ領域において、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレンのうち対応するメモリグレンから、それぞれの読み出し回路が参照データを読み出す複数の前記読み出し回路と、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる検索データが保存されており、前記検索データを分けて出力する検索データ保存回路と、
それぞれの類似度評価セルが、前記検索データ保存回路から読み出されたデータに対し、対応する前記読み出し回路で読み出された参照データの類似度を電流値として出力する複数の前記類似度評価セルと、
それぞれの電流統合回路が、対応する前記任意数の前記類似度評価セルから出力された電流を統合する複数の前記電流統合回路と、
を備える、メモリ装置。
【請求項１７】
複数の前記類似度評価セルが、前記任意数の前記類似度評価セルを有するセル群に区分けされており、
それぞれの前記電流統合回路が一つの前記セル群に対応しており、
それぞれの前記電流統合回路が、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合するように、切替スイッチが設けられている、請求項１６に記載のメモリ装置。
【請求項１８】
複数の前記電流統合回路のうち、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合する電流統合回路にのみ電力供給がなされる、請求項１７に記載のメモリ装置。
【請求項１９】
前記類似度評価セルの前段には、デジタルデータをアナログデータに変換するデジタル／アナログコンバーターが設けられ、
前記類似度評価セルは、前記デジタル／アナログコンバーターでアナログ変換されたデータに基いて、類似度をアナログ電流値として、対応する前記電流統合回路に出力する、請求項１６乃至１８の何れかに記載のメモリ装置。
【請求項２０】
前記類似度評価セルの後段には、デジタルデータをアナログデータに変換するデジタルアナログコンバーターが設けられ、
前記類似度評価セルは類似度を求めて前記デジタルアナログコンバーターに出力する、請求項１６乃至１８の何れかに記載のメモリ装置。
【請求項２１】
複数の前記電流統合回路から出力される電流値から、検索データに最も類似する参照データに関する電流値を求めてデータ値に変換する、探索部を備える、請求項１６乃至２０の何れかに記載のメモリ装置。
【請求項２２】
前記メモリ領域から行毎に読み出される参照データに関し、前記探索部で求めたデータから、検索データに最も類似する参照データを比較して更新する比較更新部を備える、請求項２１に記載のメモリ装置。
【請求項２３】
それぞれのタイムドメインコンバーターが対応する前記類似度評価セルで求めた類似度を遅延時間に変換する複数のタイムドメインコンバーターと、
複数の前記タイムドメインコンバーターで変換された遅延時間から、類似度の高い参照データの候補をローカルウィナーとして求める探索部と、
前記探索部で前記読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、前記グローバルウィナーの類似度を記憶する一時記憶回路を備えた比較更新部を備え、前記比較更新部が、前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較する、請求項１６乃至２０の何れかに記載のメモリ装置。
【請求項２４】
前記探索部は、前記複数のタイムドメインコンバーターから入力された、複数の遅延時間から最短遅延に対応する前記ローカルウィナーを検索すると同時に、前記ローカルウィナーのデジタル類似度として、カウンタで前記最短遅延を遅延時間内のクロックサイクル数に変換し、前記ローカルウィナーのアドレスを割り出す、タイムドメイン最小値探索回路を備える、請求項２３に記載のメモリ装置。
【請求項２５】
メインコアと一又は複数のブランチコアとを備えたメモリシステムにおいて、
前記メインコアが請求項２３又は２４に記載のメモリ装置で構成され、
前記ブランチコアが請求項２３又は２４に記載のメモリ装置で構成され、かつ前記ブランチコアでは前記比較更新部が無効化され、前記ブランチコアの前記探索部で求めたローカルウィナーが前記メインコアの前記比較更新部に入力される、メモリシステム。
【請求項２６】
前記メインコアにおける前記探索部による探索処理と前記比較更新部による比較更新と、前記ブランチコアにおける前記探索部による探索処理とを、同期したクロックにより行う、請求項２５に記載のメモリシステム。
【請求項２７】
前記探索部による探索処理と前記比較更新部による比較更新とは、前記メインコア及び前記ブランチコアで任意のクロック数ずれてなされる、請求項２６に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似したデータを検索するメモリ装置及びメモリシステムに関する。
【背景技術】
【０００２】
一般的なメモリ装置は、アドレス毎にデータが記憶されており、アドレスを指定することにより、その指定アドレスに記憶されているデータを読み出す。一方、連想メモリ装置は、入力されたデータに類似しているデータを検索し、そのデータを読み出す。【０００３】
典型的な連想メモリとして、参照データベースから検索データと完全一致のデータを検索するＣＡＭ（Content Addressable Memory）がある（例えば特許文献１乃至３、非特許文献１乃至３）。完全並列で動作するＣＡＭは、メモリセルと比較回路がメモリセル毎に設けられ、比較回路がメモリセル内の参照データと入力データとを比較する。ＣＡＭは、指定された宛先ＩＰアドレスやＭＡＣアドレスに一致する参照データを高速に検索する。しかし、ＣＡＭは、ネットワークルータでのＩＰアドレスを検索することには有用であるが、類似データを検索するには不向きである。【０００４】
類似データを検索する技術には、Nearest Neighbor Search(NNS)機能を持つ連想メモリがあり、連想メモリには、デジタルアプローチ（例えば特許文献４及び５、非特許文献４乃至７）とアナログアプローチ（例えば非特許文献８）がある。【０００５】
ＮＮＳ連想メモリは一般的に多次元の参照データが検索データと類似しているかを判断している。１ワードの参照データはＮ次元のデータから構成され、一次元のデータはＭビットで構成される。【０００６】
ＮＮＳ連想メモリのうちデジタルアプローチでは、次元毎に参照データを保存する保存回路と、次元毎に参照データが検索データと類似するかを距離として計算する距離計算回路と、トリガー信号の入力を受けるとクロック信号のカウント動作を開始し、距離計算回路で求めた距離に応じたクロック数をカウントしたタイミングを示すマッチ信号を出力する距離／クロック数変換回路とを備える。距離／クロック数変換回路は直列接続されており、前段の距離／クロック数変換回路から出力されるマッチ信号は、次段の距離／クロック数変換回路のトリガー信号となる。ＮＮＳ連想メモリにおいて、Ｗｉｎｎｅｒ検出回路が、複数の距離／クロック数変換回路から入力されるマッチ信号からタイミングの一番早いものを見つけ出し、連想結果を出力する。ここで、距離／クロック数変換回路からの出力を次の距離／クロック数変換回路へ出力するか又はＷｉｎｎｅｒ検出回路へ出力するかを制御するために、reconfigurable programmable switch回路が、距離／クロック数変換回路毎に、設けられている。【０００７】
ＮＮＳ連想メモリのうちアナログアプローチでは、Ｒ行×Ｎ列の揮発性データ保存回路がＲワードからなる参照データを保存するために設けられ、Ｄ／Ａ変換回路が１行だけＮ個設けられ、各Ｄ/Ａ変換回路がデジタルデータをアナログデータに変換し、Ｒ行×Ｎ列のマッチングセルが次元毎に設けられ、各マッチングセルが参照データの電圧と検索データのそれとの差で類似度を評価して電流として出力し、current-to-delay-time converter回路がマッチングセルの出力電流を行毎に、すなわちＮ個のマッチングセル毎に統合してＲ個の電圧遅延信号に変換し、Time-Domain Winner-Take-All CircuitがＲ個の電圧遅延信号から立ち上がりの最も早い信号を検索する。【０００８】
一方、不揮発性メモリとして、本発明者らのグループは、スピン注入磁化反転型磁気抵抗変化型ＲＡＭ（Spin Transfer Torque - Magnetoresistance Random Access memory：STT-MRAM）の技術を開発してきた（例えば非特許文献９、１０）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１２−１９０５３０号公報
【特許文献２】特開２０１３−１９１２５５号公報
【特許文献３】特開２０１５−１８５１９７号公報
【特許文献４】特開２０１１−７６６８８号公報
【特許文献５】特開２０１５−１６２２５７号公報
【非特許文献】
【００１０】
【非特許文献１】B.-D. Yang, JSSC, Vol 50, No. 10, pp. 2441-2450, Oct. 2015
【非特許文献２】N. Onizawa, S. Matsunaga, V. C. Gaudet, W. J. Gross and T. Hanyu, IEEE Trans. Circuits and Systems, Vol. 61, No. 3, pp. 865-876, Mar. 2014
【非特許文献３】Z. Ullah, M. K. Jaiswal and R. C. C. Cheung, IEEE Trans. VLSI Systems, Vol. 23, No. 2, pp. 402-406, Feb. 2015
【非特許文献４】S. Sasaki, M. Yasuda and H. J. Mattausch, ESSCIRC, pp. 185-188, 2012
【非特許文献５】T. Akazawa, S. Sasaki and H. J. Mattausch, ESSCIRC, pp. 267-270, 2013
【非特許文献６】F. An, T. Akazawa, S. Yamazaki, L. Chen, and and H. J. Mattausch, CICC, pp. 1-4, 2014
【非特許文献７】F. An, K. Mihara, S. Yamasaki, L. Chen and H. J. Mattausch, SSDM, pp. 144-145, 2015
【非特許文献８】T. B. Trong and T. Shibata, ULIS, pp. 213-216, 2009
【非特許文献９】Takashi Ohsawa, Hiroki Koike, Sadahiko Miura, Hiroaki Honjo, Keizo Kinoshita, Shoji Ikeda, Takahiro Hanyu, Hideo Ohno, Tetsuo Endoh, A 1 Mb Nonvolatile Embedded Memory Using 4T2MTJ Cell With 32b Fine-Grained Power Gating Scheme, IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL.48, NO.6, JUNE 2013, pp.1511-1520
【非特許文献１０】T. Ohsawa, S. Miura, K. Kinoshita, H. Honjo, S. Ikeda, T. Hanyu, H. Ohno, and T. Endoh, A 1.5nsec/2.1nsec Random Read/Write Cycle 1Mb STT-RAM Using 6T2MTJ Cell with Background Write for Nonvolatile e-Memories, 2013 Symposium on VLSI Circuits Digest of Technical Papers C111
【発明の概要】
【発明が解決しようとする課題】
【００１１】
第1の課題としては次の通りである。ＮＮＳ連想メモリのうちデジタルアプローチでは、距離計算回路はＭビットの加算器で構成され、距離／クロック数変換回路は多数のレジスタと複雑なカウンタで構成され、reconfigurable programmable switch回路は複雑な回路により構成される。これらの回路は、次元毎に設ける必要があり膨大な回路面積を占める。Ｗｉｎｎｅｒ検出回路は、最悪の場合を想定して非常に多いマッチ信号に対応するために複雑で大規模な回路を必要とする。一方、アナログアプローチでは、固定された参照データの次元数に応じて次元毎に類似度セルを用意するので、任意に設定される参照データの次元数などの柔軟な対応ができない。【００１２】
第２の課題としては次の通りである。ＮＮＳ連想メモリのデジタルアプローチ、アナログアプローチの何れにおいても、複数のコアを有するコアシステムでは、各コアにおいて検索データに類似する参照データから、システム全体において最も類似する参照データを求めるための処理回路が必要となり、ひいては処理時間が増加し、回路面積が増大する。【００１３】
そこで、第1の課題を解決するために、本発明では、検索データに類似する参照データを探索する際に、参照データの次元数に柔軟に対応することができかつコンパクトな回路構成を有する、メモリ装置を提供することを第１の目的とする。本発明は、検索データに類似する参照データを探索する際に、同じコンパクトな設計のコアで簡単にシステムが構成でき、かつ、処理時間を低減可能な、メモリシステムを提供することを第２の目的とする。【００１４】
第2の課題を解決するために、本発明では、複数のコアを有する場合であっても、検索データに類似する参照データを探索する際に、同じコンパクトな設計のコアで簡単にシステムが構成でき、かつ、処理時間を低減可能な、メモリシステムを提供することを第３の目的とする。【００１５】
さらに、第１の課題と第２の課題を共に解決するために、本発明では、
複数のコアを有する場合であっても、検索データに類似する参照データを探索する際に、同じコンパクトな設計のコアで簡単にシステムが構成でき、処理時間を低減可能であることと、
検索データに類似する参照データを探索する際に、参照データの次元数に柔軟に対応することができかつコンパクトな回路構成を有すること
を同時に満たす、メモリシステムを提供することを第４の目的とする。
【課題を解決するための手段】
【００１６】
前記第１及び第２の目的を達成するために、本発明は次のコンセプトを有する。
［１］  Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる複数の参照データが次元毎に分けられて記憶されているメモリ領域において、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレンのうち対応するメモリグレンから、それぞれの読み出し回路が参照データを読み出す複数の前記読み出し回路と、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる検索データが保存されており、前記検索データを分けて出力する検索データ保存回路と、
それぞれの類似度評価セルが、前記検索データ保存回路から読み出されたデータに対し、対応する前記読み出し回路で読み出された参照データの類似度を電流値として出力する複数の前記類似度評価セルと、
それぞれの電流統合回路が、対応する前記任意数の前記類似度評価セルから出力された電流を統合する複数の前記電流統合回路と、
を備える、メモリ装置。
［２］  複数の前記類似度評価セルが、前記任意数の前記類似度評価セルを有するセル群に区分けされており、
それぞれの前記電流統合回路が一つの前記セル群に対応しており、
それぞれの前記電流統合回路が、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合するように、切替スイッチが設けられている、前記［１］に記載のメモリ装置。
［３］  複数の前記電流統合回路のうち、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合する電流統合回路にのみ電力供給がなされる、前記［２］に記載のメモリ装置。
［４］  前記類似度評価セルの前段には、デジタルデータをアナログデータに変換するデジタル／アナログコンバーターが設けられ、
前記類似度評価セルは、前記デジタル／アナログコンバーターでアナログ変換されたデータに基いて、類似度をアナログ電流値として、対応する前記電流統合回路に出力する、前記［１］乃至［３］の何れかに記載のメモリ装置。
［５］  前記類似度評価セルの後段には、デジタルデータをアナログデータに変換するデジタルアナログコンバーターが設けられ、前記類似度評価セルは類似度を求めて前記デジタルアナログコンバーターに出力する、前記［１］乃至［３］の何れかに記載のメモリ装置。
［６］  複数の前記電流統合回路から出力される電流値から、検索データに最も類似する参照データに関する電流値を求めてデータ値に変換する、探索部を備える、前記［１］乃至［５］の何れかに記載のメモリ装置。
［７］  前記メモリ領域から行毎に読み出される参照データに関し、前記探索部で求めたデータから、検索データに最も類似する参照データを比較して更新する比較更新部を備える、前記［６］に記載のメモリ装置。
［８］  それぞれのタイムドメインコンバーターが対応する前記類似度評価セルで求めた類似度を遅延時間に変換する複数のタイムドメインコンバーターと、
複数の前記タイムドメインコンバーターで変換された遅延時間から、類似度の高い参照データの候補をローカルウィナーとして求める探索部と、
前記探索部で前記読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、前記グローバルウィナーの類似度を記憶する一時記憶回路を備えた比較更新部を備え、前記比較更新部が、前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較する、前記［１］乃至［５］の何れかに記載のメモリ装置。
［９］  前記探索部は、前記複数のタイムドメインコンバーターから入力された、複数の遅延時間から最短遅延に対応する前記ローカルウィナーを検索すると同時に、前記ローカルウィナーのデジタル類似度として、カウンタで前記最短遅延を遅延時間内のクロックサイクル数に変換し、前記ローカルウィナーのアドレスを割り出す、タイムドメイン最小値探索回路を備える、前記［８］に記載のメモリ装置。
［１０］  メインコアと一又は複数のブランチコアとを備えたメモリシステムにおいて、
前記メインコアが前記［８］又は［９］に記載のメモリ装置で構成され、
前記ブランチコアが前記［８］又は［９］に記載のメモリ装置で構成され、かつ前記ブランチコアでは前記比較更新部が無効化され、前記ブランチコアの前記探索部で求めたローカルウィナーが前記メインコアの前記比較更新部に入力される、メモリシステム。
［１１］  前記メインコアにおける前記探索部による探索処理と前記比較更新部による比較更新と、前記ブランチコアにおける前記探索部による探索処理とを、同期したクロックにより行う、前記［１０］に記載のメモリシステム。
［１２］  前記探索部による探索処理と前記比較更新部による比較更新とは、前記メインコア及び前記ブランチコアで任意のクロック数ずれてなされる、前記［１１］に記載のメモリシステム。【００１７】
前記第３の目的を達成するために、本発明は次のコンセプトを有する。
［１］  メインコアと一又は複数のブランチコアとを備え、
前記メインコア及び前記ブランチコアは、それぞれ、メモリ領域からの読み出し及び類似度評価毎に、前記メモリ領域から読み出された参照データのそれぞれの検索データとの類似度から、類似度の高い参照データの候補をローカルウィナーとして求める探索部を備え、
前記メインコアは、前記探索部で前記読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、前記グローバルウィナーの類似度を記憶する一時記憶回路を備えた比較更新部を備え、前記比較更新部が、前記メインコアの前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較すると共に、前記ブランチコアの前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較する、メモリシステム。
［２］  前記メインコア及び前記ブランチコアは、それぞれの類似度評価セルが前記メモリ領域からの読み出し毎に読み出された参照データのそれぞれと検索データとの類似度を求める複数の前記類似度評価セルと、それぞれのタイムドメインコンバーターが対応する前記類似度評価セルで求めた類似度を遅延時間に変換する複数のタイムドメインコンバーターと、を備える、前記［１］に記載のメモリシステム。
［３］  前記探索部は、前記複数のタイムドメインコンバーターから入力された、複数の遅延時間から最短遅延に対応する前記ローカルウィナーを検索すると同時に、前記ローカルウィナーのデジタル類似度として、カウンタで前記最短遅延を遅延時間内のクロックサイクル数に変換し、前記ローカルウィナーのアドレスを割り出す、タイムドメイン最小値探索回路を備える、前記［２］に記載のメモリシステム。
［４］  前記比較更新部は、前記メインコア及び前記ブランチコアの前記探索部からローカルウィナーの類似度の入力を受け、前記一時記憶回路に記憶しているグローバルウィナーの類似度と比較して高い類似度の値を前記一時記憶回路に更新する最小値探索回路を備える、前記［３］に記載のメモリシステム。
［５］  前記メインコアにおける前記探索部による探索処理と前記比較更新部による比較更新と、前記ブランチコアにおける前記探索部による探索処理とを、同期したクロックにより行う、前記［１］乃至［４］の何れかに記載のメモリシステム。
［６］  前記探索部による探索処理と前記比較更新部による比較更新とは、前記メインコア及び前記ブランチコアで任意のクロック数ずれてなされる、前記［５］に記載のメモリシステム。
［７］  前記メインコア及び前記ブランチコアが、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる複数の参照データが次元毎に分けられて記憶されているメモリ領域において、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレンのうち対応するメモリグレンから、それぞれの読み出し回路が参照データを読み出す複数の前記読み出し回路と、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる検索データが保存されており、前記検索データを分けて出力する検索データ保存回路と、
それぞれの電流統合回路が、対応する前記任意数の前記類似度評価セルから出力された電流を統合する複数の前記電流統合回路と、
を備え、
それぞれの前記類似度評価セルが、前記検索データ保存回路から読み出されたデータに対し、対応する前記読み出し回路で読み出された参照データの類似度を電流値として出力する、前記［２］に記載のメモリシステム。
［８］  複数の前記類似度評価セルが、前記任意数の前記類似度評価セルを有するセル群に区分けされており、
それぞれの前記電流統合回路が一つの前記セル群に対応しており、
それぞれの前記電流統合回路が、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合するように、切替スイッチが設けられている、前記［７］に記載のメモリシステム。
［９］  複数の前記電流統合回路のうち、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合する電流統合回路にのみ電力供給がなされる、前記［８］に記載のメモリシステム。
［１０］  前記類似度評価セルの前段には、デジタルデータをアナログデータに変換するデジタル／アナログコンバーターが設けられ、
前記類似度評価セルは、前記デジタル／アナログコンバーターでアナログ変換されたデータに基いて、類似度をアナログ電流値として、対応する前記電流統合回路に出力する、前記［７］に記載のメモリシステム。【００１８】
前記第４の目的を達成するために、本発明は次のコンセプトを有する。
［１］  メインコアと一又は複数のブランチコアとを備え、
前記メインコア及び前記ブランチコアは、それぞれ、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる複数の参照データが次元毎に分けられて記憶されているメモリ領域において、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレンのうち対応するメモリグレンから、それぞれの読み出し回路が参照データを読み出す複数の前記読み出し回路と、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる検索データが保存されており、前記検索データを分けて出力する検索データ保存回路と、
それぞれの類似度評価セルが、前記メモリ領域からの読み出し毎に読み出された参照データのそれぞれと検索データとの類似度を求め、前記検索データ保存回路から読み出されたデータに対し、対応する前記読み出し回路で読み出された参照データの類似度を電流値として出力する、複数の前記類似度評価セルと、
それぞれの電流統合回路が、対応する前記任意数の前記類似度評価セルから出力された電流を統合する複数の前記電流統合回路と、
前記メモリ領域からの読み出し及び類似度評価毎に、前記メモリ領域から読み出された参照データのそれぞれの検索データとの類似度から、類似度の高い参照データの候補をローカルウィナーとして求める探索部と、
を備え、
前記メインコアは、
前記探索部で前記読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、前記グローバルウィナーの類似度を記憶する一時記憶回路を備えた比較更新部を備え、前記比較更新部が、前記メインコアの前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較すると共に、前記ブランチコアの前記探索部で求まるローカルウィナーの類似度と前記一時記憶回路に記憶している前記グローバルウィナーの類似度とを比較する、メモリシステム。
［２］  複数の前記類似度評価セルが、前記任意数の前記類似度評価セルを有するセル群に区分けされており、
それぞれの前記電流統合回路が一つの前記セル群に対応しており、
それぞれの前記電流統合回路が、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合するように、切替スイッチが設けられている、前記［１］に記載のメモリシステム。
［３］  複数の前記電流統合回路のうち、対応する一つの前記セル群とは別の前記セル群における前記任意数の類似度評価セルから出力された電流を統合する電流統合回路にのみ電力供給がなされる、前記［２］に記載のメモリシステム。
［４］  前記類似度評価セルの前段には、デジタルデータをアナログデータに変換するデジタル／アナログコンバーターが設けられ、
前記類似度評価セルは、前記デジタル／アナログコンバーターでアナログ変換されたデータに基いて、類似度をアナログ電流値として、対応する前記電流統合回路に出力する、
前記［１］乃至［３］の何れかに記載のメモリシステム。
［５］  前記メインコア及び前記ブランチコアは、それぞれのタイムドメインコンバーターが対応する前記類似度評価セルで求めた類似度を遅延時間に変換する複数のタイムドメインコンバーターと、を備える、前記［１］乃至［４］の何れかに記載のメモリシステム。
［６］  前記探索部は、前記複数のタイムドメインコンバーターから入力された、複数の遅延時間から最短遅延に対応する前記ローカルウィナーを検索すると同時に、前記ローカルウィナーのデジタル類似度として、カウンタで前記最短遅延を遅延時間内のクロックサイクル数に変換し、前記ローカルウィナーのアドレスを割り出す、タイムドメイン最小値探索回路を備える、前記［５］に記載のメモリシステム。
［７］  前記比較更新部は、前記メインコア及び前記ブランチコアの前記探索部からローカルウィナーの類似度の入力を受け、前記一時記憶回路に記憶しているグローバルウィナーの類似度と比較して高い類似度の値を前記一時記憶回路に更新する最小値探索回路を備える、前記［６］に記載のメモリシステム。
［８］  前記メインコアにおける前記探索部による探索処理と前記比較更新部による比較更新と、前記ブランチコアにおける前記探索部による探索処理とを、同期したクロックにより行う、前記［１］乃至［７］の何れかに記載のメモリシステム。
［９］  前記探索部による探索処理と前記比較更新部による比較更新とは、前記メインコア及び前記ブランチコアで任意のクロック数ずれてなされる、前記［８］に記載のメモリシステム。
【発明の効果】
【００１９】
第１の目的を達成するための本発明によれば、第１に、複数の参照データが次元毎に分けられて記憶されているメモリ領域において、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレンのうち対応するメモリグレンから、それぞれの読み出し回路が、参照データを読み出し、第２に、それぞれの類似度評価セルが、検索データ保存回路から読み出されたデータに対し、対応する読み出し回路で読み出された参照データの類似度を電流値として出力し、第３に、それぞれの電流統合回路が、対応する任意数の類似度評価セルから出力された電流を統合する。よって、メモリ領域に記憶される参照データの次元数及び任意数に対応して、電流統合回路のそれぞれが類似度評価セルからの電流を統合するので、参照データの次元数に柔軟に対応することができる。また、複雑な回路を前提としていないので、コンパクトな回路で実現することができる。本発明によれば、検索データに類似するデータを探索する際に、参照データの次元数に柔軟に対応することができかつコンパクトな回路構成を有する、メモリ装置が提供される。【００２０】
第２の目的を達成するための本発明によれば、さらに、メインコアとして、上述のメモリ装置に、更に、ぞれぞれのタイムドメインコンバーターが対応する類似度評価セルで求めた類似度を遅延時間に変換する複数のタイムドメインコンバーターと、複数のタイムドメインコンバーターで変換された遅延時間からメモリ領域から読み出された参照データのそれぞれの検索データとの類似度から、類似度の高い参照データの候補をローカルウィナーとして求める探索部と、探索部で前記読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、グローバルウィナーの類似度を記憶する一時記憶回路を備えた比較更新部を具備する。また、ブランチコアとして、メインコアと同一構成で、比較更新部を備えない又は無効化する。このようなブランチコアとメインコアとを設けたメモリシステムにより、メインコア及びブランチコアでの探索部による探索と、メインコアでの比較更新部による比較更新とを、並列処理することにより、メモリシステム上のメモリ領域から探索データに類似する参照データをより短い時間で求めることができる。よって、検索データに類似する参照データを探索する際に、同じコンパクトな設計のコアで簡単にシステムが構成でき、かつ、処理時間を低減可能な、メモリシステムが提供される。【００２１】
第３の目的を達成するための本発明によれば、メモリシステムがメインコアとブランチコアとを備え、メインコア及びブランチコアは、それぞれ、メモリ領域からの読み出し及び類似度評価毎に、メモリ領域から読み出された参照データのそれぞれの検索データとの類似度から、類似度の高い参照データの候補をローカルウィナーとして求める探索部を備え、メインコアは、探索部で読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、グローバルウィナーの類似度を記憶するレジスタを備えた比較更新部を具備し、比較更新部が、メインコアの探索部で求まるローカルウィナーの類似度と一時記憶回路に記憶しているグローバルウィナーの類似度とを比較すると共に、ブランチコアの前記探索部で求まるローカルウィナーの類似度と一時記憶回路に記憶しているグローバルウィナーの類似度とを比較する。よって、メインコア及びブランチコアで求まる候補を再度比較する必要がないため、再度比較するための回路が不要となり、コンパクト化することができる。さらに、メインコアの比較更新部のみで比較更新をするようにしているので、探索部による探索は比較更新と並列に行うことができるので、各コアの比較更新をパイプラインで処理することが可能になり、例えば１クロックで読み出し毎に、読み出された参照データに対する連想計算が完成される。よって、本発明によれば、複数のコアを有する場合であっても、検索データに類似するデータを探索する際に、処理時間を低減するメモリシステムが提供される。【００２２】
第４の目的を達成するための発明によれば、前述した第１乃至第３の目的を達成するための効果を有するため、本発明では、複数のコアを有する場合であっても、検索データに類似する参照データを探索する際に、同じコンパクトな設計のコアで簡単にシステムが構成でき、処理時間を低減可能であることと、検索データに類似する参照データを探索する際に、参照データの次元数に柔軟に対応することができかつコンパクトな回路構成を有することを同時に満たす、メモリシステムが提供される。
【図面の簡単な説明】
【００２３】
【図１Ａ】本発明の実施形態に係るメモリ装置が適用される場面を説明する図である。
【図１Ｂ】本発明の実施形態に係るメモリシステムが適用される場面を説明する図である。
【図２】特徴ベクトルデータについての説明図である。
【図３】本発明の第１の実施形態に係るメモリ装置の構成図である。
【図４】本発明の第２の実施形態に係るメモリ装置の構成図である。
【図５】本発明の第３の実施形態に係るメモリ装置の構成図である。
【図６】本発明の第４の実施形態に係るメモリ装置の構成図である。
【図７】本発明の第５の実施形態に係るメモリ装置の構成図である。
【図８】本発明の第５の実施形態に係るメモリ装置におけるメモリ部とその動作及び消費電力について模式的に示す図である。
【図９】従来のアプローチでのメモリ部とその動作及び消費電力について模式的に示す図である。
【図１０】従来のＳＴＴ-ＭＲＡＭから構成されたメモリ部とその動作及び消費電力について模式的に示す図である。
【図１１Ａ】参照データが一次元である場合のメモリ装置の再構成を示す図である。
【図１１Ｂ】参照データが二次元である場合のメモリ装置の再構成を示す図である。
【図１１Ｃ】参照データが三次元である場合のメモリ装置の再構成を示す図である。
【図１１Ｄ】参照データが四次元である場合のメモリ装置の再構成を示す図である。
【図１２】本発明の第８の実施形態に係るメモリシステムの構成図である。
【図１３】図１２に示すメモリシステムにおいて、類似度評価部、探索部及び比較更新部の主要部分のタイムチャートである。
【図１４】図１２に示すメモリシステムの動作を説明するための図である。
【図１５】実装例に係るブロック構成図である。
【図１６】実装例でのメモリ領域の領域毎のブロック図である。
【図１７Ａ】図１５に示す実装例において、不揮発性のメモリグレンを一つとし、参照データの次元毎にパワードライバーを備える場合を想定したメモリ領域のブロック図である。
【図１７Ｂ】図１７Ａに示すユニットについての動作を示すタイムチャートである。
【図１７Ｃ】図１７Ａに示す回路の変形例を示す図である。
【図１８】メモリ部における４Ｔ−２ＭＴＪメモリセルの回路図である。
【図１９】図１８に示す４Ｔ−２ＭＴＪメモリセルの動作を説明するためのタイムチャートである。
【図２０】図１５に示す実装例での読出／書込回路のブロック図である。
【図２１】図１５に示す実装例での類似度評価セルの回路図である。
【図２２】図１５に示す実装例での電流統合回路の回路図である。
【図２３】図１５に示す実装例でのタイムドメインコンバーターの回路図である。
【図２４】図１５に示す実装例での検索部内のＴＤ−ＷＴＡ回路のブロック図である。
【図２５】図１５に示す実装例での最小値比較更新回路の構成図であり、ブランチコアで用いられるものを示している。
【図２６】図１５に示す実装例での最小値比較更新回路の構成図であり、メインコアで用いられるものである。
【図２７Ａ】図２３Ｃに示す設計スペックに従って作製したチップの写真を示す像である。
【図２７Ｂ】図２３Ａに示す像の模式図である。
【図２７Ｃ】図１５に示す実装例での設計スペックを示す図表である。
【図２８】類似度評価セルの回路動作の検証結果を示す図である。
【図２９】３次元データ構成での類似度電流の結果を示す図である。
【図３０】１６次元データ構成でのコア動作波形を示す図である。
【図３１】消費電力について、従来のアナログアプローチ及びデジタルアプローチと本実装例を比較した結果を示す図である。
【図３２】回路面積について、従来のアナログアプローチ及びデジタルアプローチと本実装例を比較した結果を示す図である。
【図３３】最小値探索回路の例を示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について図面を参照しながら詳細に説明するが、本発明は図示した形態に限らず本発明の範囲内において適宜変更する形態についても当然含まれる。
【００２５】
[本発明の実施形態において用いる用語]
図１Ａは、本発明の実施形態に係るメモリ装置１００が適用される場面を説明するための図である。図１Ａに示すように、検索データ１０が入力されると、検索データ１０が１又は複数の次元の特徴ベクトルデータ２０に変換される。変換されたデータは、Ｎ（≧１）次元の特徴ベクトルデータ２０を備え、１次元がＭ（≧１）ビットを有する。メモリ装置１００は、格納されている参照データ３０の中から最も類似しているデータを抽出する。メモリ装置１００は、後述するようなメモリ領域を備えている。
【００２６】
図１Ｂは、本発明の実施形態に係るメモリシステム２００が適用される場面を説明するための図である。図１Ｂに示すように、検索データ１０が入力されると、検索データ１０が１又は複数の次元の特徴ベクトルデータ２０に変換される。変換されたデータは、Ｎ（≧１）次元の特徴ベクトルデータ２０を備え、１次元がＭ（≧１）ビットを有する。メモリシステム２００は、各メモリ装置に格納されている参照データ３０の中から最も類似しているデータを抽出する。メモリ装置は、後述するようなメモリ領域を備えている。
【００２７】
ここで、検索データ１０、特徴ベクトルデータ２０及び参照データ３０について説明する。
【００２８】
検索データ１０は、ターゲットデータとも呼ばれ、メモリ領域に記憶されているデータから検索したいデータに関し、入力されるデータをいう。
【００２９】
参照データ３０は、テンプレートデータとも呼ばれ、メモリ領域に記憶されているデータであって、検索データにより検索対象となるデータをいう。
【００３０】
検索データ１０及び参照データ３０は、画像データ、サウンドデータ、テキストデータ（文章データ）を対象とし、種類は問わない。自然数Ｍ、Ｎは対象とするデータの種類に応じて設定される。
【００３１】
特徴ベクトルデータ２０は、多数の観点からＮ（≧１）本の特徴量を抽出し、一つの特徴量の割合を数（この数をＭビットで表す。）で示し、Ｎ本の特徴量の割合をベクトル表示したものをいう。特徴量の数を次元数と呼ぶ。
【００３２】
図２は、特徴ベクトルデータ２０についての説明図である。図２の上段に示すように、例えば、色認識の３次元（ＲＧＢ）ベクトルデータであれば、検索データがＲＧＢの各色がどの程度含まれているかによって示される。１次元の特徴をＭ（例えばＭ＝８）ビットで示す。
【００３３】
図２の下段に示すように、例えば、形状認識の８次元ベクトルデータであれば、検索データ１０に含まれている輪郭について、「4-Direction Edge Map」に示すような各基準輪郭に沿っている部分が含まれているか否かを判定し、「Edge Distribution」に示すように各基準輪郭に沿っている部分をピクセル数でカウントし、０°、４５°、９０°、−４５°の点線で区分けされる各部におけるピクセル数の分布を作成し、「Vector Generation」に示すように８次元特徴ベクトル（「8-D Feature Vector」）のような分布として示す。
【００３４】
特徴ベクトルデータ２０は、図２に示すような単純なものに限らず、複雑な特徴ベクトルデータでもよく、画像認識の分野において非常に有名な１２８次元のscale-invariant feature transform(SIFT)やBag-of-feature(Bof)のベクトルデータであってもよい。
【００３５】
メモリグレン（memory grain）とは、参照データ３０の１次元分（Ｍビット）を保存するメモリ・サブアレイである。本発明の実施形態においては、メモリグレンに対して細粒度(fine-grain)パワーゲーティングを行い、独立に電源制御（ＯＮ/ＯＦＦ）をする。
【００３６】
ローカルウィナー（Local Winner）とは、メモリ領域の１行分の参照データのうち、検索データに一番類似している参照データである。ここでのメモリ領域とはメモリ装置におけるメモリ部を指し、メモリシステムではメインコアとブランチコアの何れも含むコアにおけるメモリ部を指す。ローカルウィナーは、メモリ装置（コアともいう）の探索部において得られる。
【００３７】
ローカルウィナー類似度（Local Winner Similarity）とは、ローカルウィナーと探索データの間の類似度である。ローカルウィナー類似度は、例えば各探索部において電流値として得られ、その各探索部において、カウンタでクロックサイクル数に変換される。
【００３８】
グローバルウィナー（Global Winner）とは、ローカルウィナーから選び出された参照データであって、メモリ領域に記憶されている全ての参照データにおいて検索データに最も似ている参照データである。メモリ装置において、グローバルウィナーは比較更新回路で計算され、ローカルウィナーと類似度を比較され、類似度がより高いものに更新される。メモリシステムでは、グローバルウィナーはメインコアの比較更新回路でのみ計算され、ローカルウィナーと類似度を比較され、類似度がより高いものに更新される。
【００３９】
グローバルウィナー類似度（Global Winner Similarity）とは、グローバルウィナーと探索データの間の類似度である。グローバルウィナーを更新するために、グローバルウィナーのアドレスと一緒に比較更新回路のレジスタなどの一時記憶回路に一時的に保存され、タイミングをずれて入力されたローカルウィナー類似度と比較して、より高いものが書き換えられる。メモリ装置では比較更新回路で計算され、メモリシステムではメインコアの比較更新回路でのみ計算される。
【００４０】
本発明の実施形態では、メモリ領域において、次元数毎にＭビットのデータが参照データとして記憶されるとして説明する。
【００４１】
[本発明の第１の実施形態]
図３は本発明の第１の実施形態に係るメモリ装置の構成図である。本発明の実施形態に係るメモリ装置１００は、メモリ部１１０と、類似度評価部１３０と、探索部１５０と、比較更新部１７０と、を備える。
【００４２】
メモリ部１１０は、参照データ保存回路とも呼ばれ、ローデコーダ１１１とコラムデコーダ１１２とメモリ領域１１３と読出／書込回路１１４とを備え、メモリ領域１１３内のメモリグレン１１９に参照データを書き込み及び読み出しできるように構成されている。メモリ領域１１３は、Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる複数の参照データが次元毎に分けられて記憶されている。メモリ領域１１３は、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレン（ＭＧ）１１９をマトリックス状に備えている。図３では、（Ｒ×Ｍ）行Ｃ列のメモリグレン１１９を備えて、列毎に読出／書込回路１１４を備えている。複数の読み出し回路としての読出／書込回路１１４のそれぞれは、対応するメモリグレン１１９から参照データを読み出す。ここで、図３は任意数ｋが１である場合を示している。
【００４３】
類似度評価部１３０は、入力検索データ保存回路１３１と、複数の類似度評価セル（ＳＥＣ：Similarity Evaluation Cell）１３３と、電流統合回路（ＣＡ：Current Accumulator）１３５を少なくとも備えている。
【００４４】
入力検索データ保存回路１３１は、Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる検索データが保存されており、メモリ領域１１３の各列に分けて記憶されている状況に応じて、検索データを分けて出力する。
【００４５】
各類似度評価セル１３３は、入力検索データ保存回路１３１から読み出されたデータが、対応する読出／書込回路１１４で読み出された参照データと類似しているかについて、類似度電流値として出力する。「入力検索データ保存回路１３１から読み出されたデータ」（「一つ目のデータ」とする。）とは、検索データが次元毎に分解されて入力検索データ保存回路１３１から出力されたデータであり、次元数毎の当該検索データの電圧値である。「対応する読出／書込回路１１４で読み出された参照データ」（「二つ目のデータ」とする。）とは、読出／書込回路１１４から入力された参照データの電圧値である。電流値がゼロの場合は一つ目のデータと二つ目のデータは同一と評価し、電流値が大きい場合は一つ目のデータと二つ目のデータは異なると評価することになる。つまり、検索データと参照データが似ていると、出力される電流値は小さくなる。
【００４６】
各電流統合回路（ＣＡ）１３５は、対応する任意数の類似度評価セル１３３から出力された電流を統合する。各電流統合回路１３５は、対応する任意数の類似度評価セル１３３から電流値が入力され、その電流に基いて、参照データが検索データに類似するかを求める。
【００４７】
探索部１５０は、複数の電流統合回路１３５から出力される電流値を入力し、検索データに最も類似する参照データに関する電流、即ち、類似度に関する電流を検出し、その検出した値を所定のデータに変換する。比較更新部１７０は、メモリ領域１１３から行毎に読み出される参照データに関し、メモリ領域１１３に記憶されている参照データのうち、検索データに最も類似する参照データを比較して更新する。
【００４８】
図３に示すメモリ装置１００では、メモリ領域１１３に記憶される参照データの次元数及び任意数に対応して、電流統合回路１３５のそれぞれが類似度評価セル１３３からの電流を統合する。よって、参照データの次元数に柔軟に対応することができる。また、類似度評価セル１３３や電流統合回路１３５は比較的簡単な回路構成で実現される。
【００４９】
図３に示す形態についてさらに詳細に説明する。メモリ領域１１３は、（Ｒ×Ｍ）行Ｃ列のメモリセルアレイから構成されて（Ｒ×Ｃ）／Ｎ個の参照データを保存している参照データ保存回路として構成されている。メモリ装置１００は、Ｃ個の類似度評価セル１３３を備え、Ｃ／Ｎ個の参照データと検索データの類似度を並列に計算し電流として出力する。電流統合回路１３５は、参照データの次元数に応じてＣ個の類似度電流を統合する。
【００５０】
類似度評価部１３０は、切替スイッチ１３４が列毎に備わっている。切替スイッチ１３４は、第１のスイッチ１３４ａと第２のスイッチ１３４ｂとが連動するように構成されている。第１のスイッチ１３４ａは、第ｊ列番目の類似度評価セル１３３と第ｊ列番目の電流統合回路１３５との配線と、第（ｊ＋１）列番目の類似度評価セル１３３と第（ｊ＋１）列番目の電流統合回路１３５との配線との間に設けられている。ここで、ｊは１以上（最大列数−１）以下の自然数である。第２のスイッチ１３４ｂは、各列の類似度評価セル１３３と電流統合回路１３５との間に設けられている。
【００５１】
第１のスイッチ１３４ａと第２のスイッチ１３４ｂは、何れも、外部からの次元制御信号（ＤＣＳ：Dimension Control Signal）により制御され、外部からの次元制御信号が入力される線は、第１のスイッチ１３４ａの制御電極、第２のスイッチ１３４ｂの制御電極の何れかに接続され、その何れかの配線の間には、ＮＯＴ回路１３４ｃが含まれている。
【００５２】
これにより、第１のスイッチ１３４ａがＯＮの場合には第２のスイッチ１３４ｂがＯＦＦとなる一方、第１のスイッチ１３４ａがＯＦＦの場合には第２のスイッチ１３４ｂがＯＮとなる。次元制御信号は、メモリ領域１１３に記憶されている参照データの次元に対応して、切替スイッチ１３４を制御する。
【００５３】
その際、第２のスイッチ１３４ｂのＯＦＦにより、類似度評価セル１３３からの電流が流れない電流統合回路１３５には，電力を供給しないように制御することにより、省電力化を図ることができる。
【００５４】
よって、切替スイッチ１３４を設けることにより、メモリ領域１１３に記憶される参照データの次元数及び任意数に対応して、電流統合回路１３５のそれぞれが類似度評価セル１３３からの電流を統合することができ、参照データの次元数に柔軟に対応することができる。
【００５５】
[本発明の第２の実施形態]
図４は本発明の第２の実施形態に係るメモリ装置１００の構成図である。図４に示すメモリ装置１００は、類似度評価部１３０の構成が図３と異なり、任意数ｋが２として設計製造されている。複数の類似度評価セル１３３がセル群に区分されており、図４に示すように、奇数列目の類似度評価セル１３３と偶数列目の類似度評価セル１３３とがセル群１３３ａを構成しており、電流統合回路１３５が一つのセル群１３３ａに対応している。そして、電流統合回路１３５が、対応している一つのセル群１３３ａとは別のセル群１３３ａにおける任意数の類似度評価セル１３３から出力された電流を統合するように、切替スイッチ１３４が設けられている。
【００５６】
つまり、図４では、図３とは異なり、切替スイッチ１３４が列毎に設けられておらず、奇数列目の一つの類似度評価セル１３３と偶数列目の一つの類似度評価セル１３３とがセル群１３３ａを構成しており、第２のスイッチ１３４ｂが、偶数列目の一つの類似度評価セル１３３とそのセル群１３３ａに対応した電流統合回路１３５との間に設けられ、第１のスイッチ１３４ａが、セル群１３３ａと隣のセル群１３３ａとの間に設けられている。
【００５７】
よって、第１のスイッチ１３４ａ、第２のスイッチ１３４ｂの何れか一方をＯＮにし、他方をＯＦＦにすることにより、４個の類似度評価セル１３３からの類似度電流を統合することもでき、２個の類似度評価セル１３３からの類似度電流を統合することもできる。
【００５８】
その際、第２のスイッチ１３４ｂのＯＦＦにより、類似度評価セル１３３からの電流が流れない電流統合回路１３５には，電力を供給しないように制御することにより、省電力化を図ることができる。
【００５９】
ここで、図４では、セル群は２つの類似度評価セル１３３を有しているが、３以上の任意数であってもよい。これにより、検索データ及び参照データの次数以外の数によっても柔軟に対応することができる。セル群における類似度評価セル１３３の任意数は、後述するように、図７に示す一つのパワードライバー１１８が電力供給するメモリグレン１１９の任意数と等しくなるように設定してもよい。
【００６０】
[本発明の第３の実施形態]
図５は、本発明の第３の実施形態に係るメモリ装置１００の構造図であり、図３に示す形態をより具体的に示す図である。図５に示すメモリ装置１００においては、類似度評価部１３０は、入力検索データ保存回路１３１と、デジタル／アナログコンバーター（ＤＡＣ: Digital Analog Converter）１３２と、Ｃ／Ｎ個の参照データと検索データの類似度を並列に計算し電流として出力するＣ個の類似度評価セル１３３と、切替スイッチ１３４と、参照データの次元数に応じてＣ個の類似度電流を統合する電流統合回路（ＣＡ）１３５と、統合した類似度電流をＣ／Ｎ個のTime-Domain電圧遅延信号に変換するタイムドメインコンバーター（ＴＤＣ：Time Domain Converter）１３６と、を備える。なお、メモリ部１１０では、メモリ領域１１３が（Ｒ×Ｍ）行Ｃ列のメモリセルアレイから構成され、（Ｒ×Ｃ）／Ｎ個の参照データを保存している参照データ保存回路が設けられている。
【００６１】
デジタル／アナログコンバーター１３２、類似度評価セル１３３、切替スイッチ１３４、電流統合回路１３５及びタイムドメインコンバーター１３６はコラムライン数だけ備えている。列毎に、読出／書込回路１１４からデジタル／アナログコンバーター１３２にデジタルデータが電圧値として入力され、デジタル／アナログコンバーター１３２においてデジタルデータがアナログデータに変換されて、類似度評価セル１３３に出力される。
【００６２】
類似度評価セル１３３は、入力された二つのデータについての類似度を求める。一つ目のデータは、検索データが次元毎に分解されて入力検索データ保存回路１３１から出力されたデータであって、次元数毎の当該検索データの電圧値である。二つ目のデータは、読出／書込回路１１４からデジタル／アナログコンバーター１３２を経由して入力された参照データの電圧値である。
【００６３】
類似度評価セル１３３は、一つ目のデータと二つ目のデータとの類似度を電流値として求めて出力する。電流値がゼロの場合は一つ目のデータと二つ目のデータは同一と評価し、電流値が大きい場合は一つ目のデータと二つ目のデータは異なると評価することになる。つまり、参照データが検索データと似ていると、出力される電流値は小さくなる。
【００６４】
切替スイッチ１３４が列毎に備わっている。切替スイッチ１３４は、第１のスイッチ１３４ａと第２のスイッチ１３４ｂとが連動するように構成されている。第１のスイッチ１３４ａは、第ｊ列番目の類似度評価セル１３３と第（ｊ＋１）列番目の類似度評価セル１３３との間に設けられている。ここで、ｊは１以上（列数−１）以下の自然数である。なお、図５での切替スイッチ１３４の機能は、図４での切替スイッチ１３４のそれと同様である。第２のスイッチ１３４ｂは、各列の類似度評価セル１３３と電流統合回路１３５との間に設けられている。第１のスイッチ１３４ａと第２のスイッチ１３４ｂは、何れも、外部からの次元制御信号（ＤＣＳ：Dimension Control Signal）により制御され、外部からの次元制御信号が入力される線は、第１のスイッチ１３４ａの制御電極、第２のスイッチ１３４ｂの制御電極の何れかに接続され、その何れかの配線の間には、ＮＯＴ回路１３４ｃが含まれている。これにより、第１のスイッチ１３４ａがＯＮの場合には第２のスイッチ１３４ｂがＯＦＦとなる一方、第１のスイッチ１３４ａがＯＦＦの場合には第２のスイッチ１３４ｂがＯＮとなる。次元制御信号は、メモリ領域１１３に記憶されている参照データの次元に対応して、切替スイッチ１３４を制御する。
【００６５】
Ｎ次元の参照データが、メモリグレンＭＧｉ ｊからメモリグレンＭＧｉ ｊ+ｎ-1まで、次元に分けて記憶されているとすると、当該Ｎ次元の参照データが検索データと類似しているかどうかを評価するには、第ｊ列番目の類似度評価セルＳＥＣｊから第（ｊ＋Ｎ−１）列番目の類似度評価セルＳＥＣｊ＋Ｎ−１までの各類似度を加算する必要がある。
【００６６】
本発明の実施形態では、各類似度を加算するために、第ｊ列番目の類似度評価セルＳＥＣｊと第（ｊ＋１）列番目の類似度評価セルＳＥＣｊ＋１との間に第１のスイッチ１３４ａを設け、第ｊ列番目の類似度評価セルＳＥＣｊと第ｊ列番目の電流統合回路ＣＡｊとの間に第２のスイッチ１３４ｂを設けている。
【００６７】
外部の次元制御信号により、第１のスイッチ１３４ａがＮ個の類似度評価セル１３３を接続した状態にする。類似度評価セル１３３の入力端子に次元毎の検索データの電圧を印加し、類似度評価セル１３３から出力される電流値を電流統合回路１３５に入力して、電流統合回路１３５に一旦保存する。その後、類似度評価セル１３３の入力端子に次元毎の参照データの電圧を印加し、類似度評価セル１３３から出力される電流値を電流統合回路１３５に入力して、保存している電流値との差分を計算する。このように、類似度評価セル１３３と電流統合回路１３５との連携により、複数列に分散して記憶されている参照データが検索データに類似しているか否かを、電流値により求めることできる。
【００６８】
タイムドメインコンバーター１３６は、電流統合回路１３５から出力された電流値を遅延時間に変換する。よって、切替スイッチ１３４により接続された各類似度評価セル１３３のうち、列番号が最も大きい最も一端（例えば右端）の類似度評価セル１３３からタイムドメインコンバーター１３６に電流値が入力されることにより、複数列に分散して記憶されている参照データが検索データに類似しているか否かを、時間遅延の値として求めることができる。類似度が高いほど、時間遅延の値が小さくなる。変換された遅延時間信号は、何れも、探索部１５０に入力される。
【００６９】
探索部１５０は、Ｃ／Ｎ個のタイムドメイン電圧遅延信号から最短値を検出しその最短遅延をカウンタで最小クロック数に変換するＴＤ（Time Domain）最小値探索回路１５１を備えている。ＴＤ最小値探索回路１５１は、類似度評価部１３０における各タイムドメインコンバーター１３６から入力された時間遅延信号のうち、最も時間遅延の短いもの、すなわち、タイムドメインの最小値を探索する。探索した最も遅延時間の短い値は、Ｗビットのカウンタでカウントされ、そのカウント値が比較更新部１７０に出力される。
【００７０】
比較更新部１７０は、得られる最小クロック数を、保存している以前計算したクロック数と比較し小さい方をアップデートする最小値比較更新回路１７１を備えている。最小値比較更新回路１７１は、メモリ部１１０の読み出しの繰り返し毎に、探索部１５０から入力されたカウント値と自ら保存しているカウント値とを比較し、カウント値が低い方を記憶する。これにより、メモリ部１１０の読み出しの繰り返しが終了すると、低いカウント値が求まり、結果として、検索データに最も類似する参照データのカウント値が求まる。このカウント値は、メモリ部１１０のアドレスに対応させることで、メモリ部１１０において最も類似する参照データのアドレスが求まる。
【００７１】
図５に示すメモリ装置１００の動作説明は、次の通りである。
【００７２】
先ず、入力検索データ保存回路１３１は、入力された検索データを次元毎に分けて、デジタル／アナログコンバーター１３２でアナログ電圧に変換し、類似度評価セル１３３に入力する。
【００７３】
次に、読出／書込回路１１４を経て、Ｃ個のメモリグレン１１９からそれぞれ出力される１次元分の参照データ（Ｍビット）を同様にデジタル／アナログコンバーター１３２でアナログ電圧に変換し、検索データの入力後から、並列にＣ個の類似度評価セル１３３に入力する。もしデジタル／アナログコンバーター１３２がシリアルである場合では、Ｍビットデータを変換するために、Ｍクロックの時間がかかる。
【００７４】
次に、類似度評価セル１３３は、次元毎に検索データ（１次元）の電圧と参照データ（１次元）の電圧との類似度を電流として出力する。
【００７５】
その際、先ず、外部の次元制御信号が、参照データ及び検索データの次元数に応じて、類似度評価セル１３３の間の第１のスイッチ１３４ａがＯＮ状態となるように制御し、第１のスイッチ１３４ａがＯＮ状態となっている類似度評価セル１３３同士の電流を加算し、Ｃ個の類似度評価セル１３３の電流をＣ／Ｎ個の電流統合回路１３５で統合し対応するタイムドメインコンバーター１３６へ出力する。電流が小さい方が高い類似度を有する。同じ次元制御信号により、第２のスイッチ１３４ｂをＯＦＦ状態にし、必要のない電流統合回路１３５とタイムドメインコンバーター１３６を接続しないように無効化する。
【００７６】
次に、タイムドメインコンバーター１３６が、統合されたＣ／Ｎ個の類似度電流をタイムドメイン電圧遅延信号に変換し、並列に探索回路としての最小値探索回路（タイムドメイン（ＴＤ）最小値探索回路）１５１へ出力する。
【００７７】
次に、第１階層（ローカル）の最小値探索処理として、最小値探索回路（タイムドメイン（ＴＤ）最小値探索回路）１５１で、１行分のＣ／Ｎ個の参照データに対応するタイムドメイン電圧遅延信号から最も類似度が高いもの、すなわち遅延の短いものを求め、Ｗビットのカウンタでその遅延を遅延中のクロック数であるデジタル値に変換し、最小値比較更新回路１７１へ出力する。Ｗビットのカウンタは、最大２Ｗクロックの遅延を持つタイムドメイン電圧遅延信号に変換され、この最大遅延に比例する類似度電流変換の解像度が得られる。つまり、Ｗが大きければ、もっと小さい類似度電流差が得られる。
【００７８】
次に、第２階層（グローバル）の最小値探索処理として、最小値比較更新回路１７１で、メインコア２１０で得られたＷｉｎｎｅｒ（ローカルＷｉｎｎｅｒ）のデジタル遅延値、又は、ブランチコア２２０で得られ入力されたＷｉｎｎｅｒ（ローカルＷｉｎｎｅｒ）のデジタル遅延値を、回路内に保存されている全ステップの値と比較して、小さい方を書き換えて更新する。この更新を繰り返すことで、メインコア２１０及びブランチコア２２０内の全ての参照データから一番似ているものが、最後に、最小値比較更新回路１７１の中に保存され連想処理結果になる。なお、メインコア２１０及びブランチコア２２０については、後述の図１２を参照して詳細に説明する。
【００７９】
[本発明の第４の実施形態]
図６は、本発明の第４実施形態に係るメモリ装置の構成図であって、図４のメモリ装置１００の具体的な形態を示す構成図である。図６に示すメモリ装置１００では、各類似度評価セル１３３の前段にデジタル／アナログコンバーター１３２を設けている。デジタル／アナログコンバーター１３２は入力されたデジタル電圧をアナログ電圧に変換し、類似度評価セル１３３に出力する。電流統合回路１３５の後段にはタイムドメインコンバーター１３６を設け、タイムドメインコンバーター１３６は電流統合回路１３５から出力された電流値を遅延時間に変換する。よって、切替スイッチ１３４により接続された各類似度評価セル１３３のうち、最端（例えば右端）の類似度評価セル１３３からの電流値がタイムドメインコンバーター１３６に入力されることにより、複数列に分散して記憶されている参照データが検索データに類似しているか否かを、時間遅延の値として求めることができる。
【００８０】
図５及び図６に示す形態では、類似度評価セル１３３の前段にデジタル／アナログコンバーター１３２を設け、類似度評価セル１３３はデジタル／アナログコンバーター１３２で変換されたデータに基いて、類似度を評価するための値としてアナログ電流を求めて、電流統合回路１３５に出力し、参照データが検索データに類似しているかどうかが電流値の差として求められる。
【００８１】
[本発明の第５の実施形態]
本発明の実施形態においては、類似度評価セル１３３の前段にデジタル／アナログコンバーター１３２を設ける必要はなく、次のようにしてもよい。類似度評価セル１３３に、検索データのデジタル電圧値と参照データのデジタル電圧値が順に入力され、類似度評価セル１３３において類似度を評価するためのデジタル値が求められ、類似度評価セル１３３の後段に設けたデジタル／アナログコンバーター（図示せず）によりアナログ値に変換されて、電流統合回路１３５に出力するようにしてもよい。なお、その際の類似度評価セル１３３は、デジタルアプローチで使用されている回路を適宜変更して使用すればよい。
【００８２】
[本発明の第６の実施形態]
前述の実施形態では、電流統合回路１３５からの出力をタイムドメインコンバーター１３６により遅延時間に変換し、最短遅延時間を求めている。しかしながら、本発明の実施形態はこれに限定されることなく、次のようにしてもよい。アナログ電圧の最小値をアナログの値のまま直接比較更新する回路を設けたり、アナログ電圧の最小値をデジタル値に変換する回路とそのデジタル値を比較更新する回路とを設けたりする。一例を挙げると、各電流統合回路からの出力端に各抵抗を接続することにより、各電流統合回路から流れるアナログ電流をアナログ電圧に変換し、その電圧のうち最小値を探索してもよい。図３乃至図６に示す探索部１５０をアナログ電圧最小値探索回路で構成すればよい。具体的なアナログ電圧最小値探索回路の例は図３３を参照して後述する。
【００８３】
[本発明の第７の実施形態]
次に、本発明の実施形態に係るメモリ装置１００におけるメモリ部１１０の好ましい形態について説明する。図７は本発明の第７の実施形態に係るメモリ装置の構成図であり、メモリ装置１００においてメモリ部の詳細を説明するための図である。メモリ部１１０は、（Ｒ×Ｍ）行Ｃ列のメモリセルアレイから構成されて（Ｒ×Ｃ）／Ｎ個の参照データを保存している参照データ保存回路を備えている。なお、図７は図５に対応した構成図としているが、図３、図４、図６に示す他の形態であっても採用することができる。
【００８４】
メモリ部１１０としての参照データ保存回路には、Ｒ×Ｃ（Ｃ≧Ｎ）の１次元データを保存するメモリグレン（ＭＧ: Memory Grain）１１９があって、各メモリグレン１１９にはＭビットの値を保存している。各メモリグレン１１９にパワーゲーティングのためのパワードライバー（ＰＤ：Ｐｏｗｅｒ  Ｄｒｉｖｅｒ）１１８が設置され、パワードライバー１１８が行デコーダ、列デコーダ及びクロック１(clk.1) により独立に電力の供給について制御する。すなわち、一行のメモリグレン（ＭＧ）１１９には、Ｃ／Ｎ個の参照データが保存されており、各参照データを並列に類似度評価セル１３３に出力して連想認識が実行される。
【００８５】
以下、図７に示すメモリ装置１００のメモリ部１１０について更に詳細に説明する。
メモリ部１１０としての参照データ保存回路は、ローデコーダ１１１、コラムデコーダ１１２、メモリ領域１１３、及び読出／書込回路１１４で構成される。メモリ領域１１３は、複数のローライン１１５と、複数のビットライン１１６と、複数本のコラムライン１１７と、複数のパワードライバー（ＰＤ）１１８と、複数のメモリグレン（ＭＧ）１１９とを備える。メモリグレン１１９は不揮発性メモリで構成されている。
【００８６】
ローデコーダ１１１には複数本のローライン１１５が接続されており、コラムデコーダ１１２には複数本のコラムライン１１７が接続されている。
【００８７】
メモリ領域１１３は複数の領域に分けられ、各領域は１以上Ｎ以下の任意数のコラムライン１１７とＭ本のローライン１１５とで指定され、領域毎にパワードライバー１１８とメモリグレン１１９とが組として備えられている。ここで、コラムライン１１７の任意数と、ローライン１１５の本数と、ビットライン１１６の本数とは、何れも設計時に設定され、その設定に従って製造される。ここで、「任意数」とはメモリ装置を利用するユーザにより定められる場合なども含まれ、単に、設計・製造時に一定の値に定められる場合も含まれる。図７では、領域毎に、コラムライン１１７は１本とし、ローライン１１５はＭ本として、ビットライン１１６はＭ本としている。ここでの自然数Ｍ，Ｎの定義は、図１及び図２を参照して前述した検索データ１０及び参照データ３０での定義と同じである。
【００８８】
本発明の実施形態では、メモリ領域１１３において任意数のコラムライン１１７とＭ本のローライン１１５とにより指定される領域毎に、Ｍビットの不揮発性メモリを１単位として構成するメモリグレン１１９と、メモリグレン１１９に電力を供給するパワードライバー１１８とが組として備えられている。ここで、領域毎のコラムライン１１７は任意数個であり、ここで、「任意数」とはメモリ装置を利用するユーザにより定められる場合なども含まれ、単に、設計・製造時に一定の値に定められる場合も含まれる。領域毎のメモリグレン１１９の任意数個と等しく、図７では１個としている。
【００８９】
本発明の実施形態では、或る一つのパワードライバー１１８が、任意数のコラムライン１１７からの制御信号の入力と、Ｍ本のローライン１１５からの制御信号の入力と、クロック信号の入力とを受け、クロック信号に同期して、パワードライバー１１８と組となるメモリグレン１１９に電力を供給する。これにより、そのメモリグレン１１９に格納されている次元毎の参照データを読み出し、ビットライン１１６を通じてその列の読出／書込回路１１４に出力する。
【００９０】
よって、メモリ領域１１３の全体に電力を供給するのではなく、読み出す各領域のメモリグレン１１９に電力を供給することで、必要な場所にのみ電力を供給すると共に、クロック信号の入力により必要な時間のみ電源供給をする。従って、メモリ領域１１３に格納されている参照データを読み出す際の消費電力を大幅に減らすことができる。
【００９１】
図７に示すように、メモリグレン１１９は、ＭＧ１１〜ＭＧＲＣまで、Ｒ行Ｃ列存在するので、ローデコーダ１１１からの制御信号が流れる１又は複数本のローライン１１５と、コラムデコーダ１１２から制御信号が流れる１又は複数本コラムライン１１７とで１又は複数のパワードライバー１１８が指定され、その指定されたパワードライバー１１８においてクロック信号“１”が入力されると、入力されている間のみ、パワードライバー１１８から、組となるメモリグレン１１９に電力が供給される。指定されたパワードライバー１１８においてクロック信号“０”が入力されると、組となるメモリグレン１１９に電力の供給が停止される。なお、パワードライバー１１８は、クロック信号“０”が入力されると組となるメモリグレン１１９に電力を供給し、クロック信号“１”が入力されると組となるメモリグレン１１９に電力を供給しないようにしてもよい。ここで、クロック信号“０”、“１”は、“Ｈ”、“Ｌ”に対応している。
【００９２】
ここで、Ｍ本のローライン１１５からの制御信号の入力は、１本乃至Ｍ本のうち所定本数毎に順番になされてもよいし、１本乃至Ｍ本まで同時になされてもよい。
【００９３】
ここで、図７に示すメモリ装置１００において、省電力化が達成できていることを詳細に説明する。図８乃至図１０は、本発明の実施形態に係るメモリ装置におけるメモリ部とその動作及び消費電力について、従来技術のそれらと比較するための図である。
【００９４】
図８は、本発明の第５の実施形態に係るメモリ装置におけるメモリ部とその動作及び消費電力について模式的に示す図である。図８の上段は、メモリ部１１０を模式的に示し、図８の中段は、Ｄａｔａ♯１、Ｄａｔａ♯２、Ｄａｔａ♯３を順に行毎に読み出したときに、どの行の領域からデータが読み出されるかを示す。図８の下段は、横軸が時間、縦軸が消費電力、奥行きの軸がメモグレンの位置を示している。
【００９５】
参照データの次元毎に（１個のメモリグレン毎に）パワードライバー１１８を備えて、細粒度パワーゲーティングを用いるだけでなく、任意のコラムライン１１７を複数本同時にアクティベートすることを可能にして１Ｄａｔａ内の必要なデータ次元に対応した必要なメモリグレン１１９のみに柔軟に電力を供給する。その上に、パワードライバー１１８に動作演算のクロック信号を入力し、クロック信号に同期して、パワードライバー１１８から対応のメモリグレン１１９に電力を供給する。
【００９６】
この読み出し制御によって、演算に必要なデータが演算動作中のみ、電力を消費することになり、演算動作のクロック信号が入っていない場合には電力を消費しない。さらに、読み出しの時にクロックパルスが“０”のときのみ電力消費がある。クロックパルスが“１”（クロック前半）の時はpre-charge、すなわちビットライン１１６を０Ｖにプレチャージし、電力を供給する必要がなく、演算動作中の消費電力が半減する。
【００９７】
例えば、データ♯１（Ｄａｔａ♯１）では、参照データの全ての次元のデータ出力が必要な場合、クロックを用いているので、読み出しの際に、消費電力が半減する。この理由は次の通りである。クロック制御の導入により、１クロックの前半、すなわちクロック信号が“Ｈ”であるときメモリグレン１１９に電力を供給しないで、プレチャージする。１クロックの後半、すなわちクロック信号が“Ｌ”であるとき指定のメモリグレン１１９に電力を供給して、データを読み出す。このプレチャージは、電力供給を高速で切り換える際にdisturb誤動作が発生しないようにするため、参照データを読み出す際に、データが書き換えられない。
【００９８】
データ♯２（Ｄａｔａ♯２）では、動作演算のクロックの制御により、パワードライバー１１８が動作していないので、動的にメモリの動作も停止し、消費電力を最小化することができる。
【００９９】
データ♯３（Ｄａｔａ♯３）では、参照データの一部分の次元のデータ出力が必要な場合、必要最低限のメモリグレン１１９だけに電力を供給して、消費電力の最適化を図ることができる。
【０１００】
図７に示すメモリ装置１００では、メモリ部１１０が、Cycle-based 粒度制御可能なパワーゲーティングに基いた不揮発性メモリで構成されている。この構成により、待機時の消費電力をゼロにする上、メモリ部１１０の必要な部分に電力を供給し、不要な部分には電力を供給しないため、消費電力を減らすことができる。
【０１０１】
不揮発性メモリは、小面積、高速、高安定、低書込電流など色々異なる性能に重視してそれぞれ開発されてきた経緯があるが、ここでは、Cycle-based 粒度制御可能なパワーゲーティングを実現するために、高速且つ安定の不揮発メモリセルが必要である。本発明の実施形態では、一般的には差動対型のＳＴＴ−ＭＲＡＭメモリセルを利用するとよい。この点については実装例で詳細に説明する。
【０１０２】
実装例において後述するように、高速で探索することができ、かつ、Cycle-based 粒度制御可能なパワーゲーティングが実現できたのは、次の理由による。
【０１０３】
第１には、電力が供給されたらすぐに反応でき、高速かつ安定な動作を特徴とする差動対型ＳＴＴ−ＭＲＡＭメモリセル（例えば４Ｔ−２ＭＴＪセル）を採用しているからである。４Ｔ−２ＭＴＪセルは、より速くＭＴＪからデータを読み出せ、高速の電源ＯＮ／ＯＦＦによるdisturb誤動作が発生しないという特徴がある。
【０１０４】
第２には、高速でデータを読み出すために、電力を供給する前に、ビットラインに邪魔な電荷をたまらないように、０Ｖにpre-chargeするからである。
【０１０５】
図７に示すメモリ装置１００では、Cycle-based粒度制御可能なパワーゲーティングに基づく不揮発性メモリ装置により、連想メモリの超低電力化を図ることができる。類似度評価部１３０の切替スイッチ１３４により、データ次元数に応じてシステムを再構成するわけだが、Cycle-based粒度制御可能なパワーゲーティングに基づく不揮発性メモリ装置は、その再構成に応じて必要最小限のメモリに電力を供給するため、動作時消費電力を最適化できる。
【０１０６】
従来のＮＮＳ連想メモリでのデジタルアプローチ及びアナログアプローチ（以下、「従来のアプローチ」とする。）でのメモリ部は、次の通りである。図９は、従来のアプローチでのメモリ部５１０とその動作及び消費電力について模式的に示す図である。図９の上段は、メモリ部５１０を模式的に示し、図９の中段は、Ｄａｔａ♯１、Ｄａｔａ♯２、Ｄａｔａ♯３を行毎に順に読み出したとき、どの行の領域からデータが読み出されるかを示す。図９の下段は、横軸が時間、縦軸が消費電力、奥行きの軸がメモグレンの位置を示し
ている。
【０１０７】
従来のアプローチでは、メモリ部５１０のメモリ領域は揮発性のＳＲＡＭで構成されている。そのため、全てのメモリグレン５１９に、参照データを書き込む際、データ♯１の読出しの際、データ♯２の読出しの際、データ♯３の読出しの際の何れも、常に電力を供給する必要がある。なお、符号５１１はローデコーダであり、符号５１２はコラムデコー
ダである。
【０１０８】
図１０は、従来のＳＴＴ−ＭＲＡＭから構成されたメモリ部とその動作及び消費電力について模式的に示す図である。図１０の上段は、メモリ部６１０を模式的に示し、図１０の中段は、Ｄａｔａ♯１、Ｄａｔａ♯２、Ｄａｔａ♯３を行毎に順に読み出したときに、どの行の領域からデータが読み出されるかを示す。図１０の下段は、横軸が時間、縦軸が消費電力、奥行きの軸がメモグレンの位置を示している。
【０１０９】
非特許文献９に示す従来のＳＴＴ-ＭＲＡＭでは、細粒度パワーゲーティング技術を用いて、１Ｄａｔａの参照データ毎に、即ちＮ個のメモリグレン６１９毎にパワードライバー６１８を備え、独立電源供給できる。そのため、参照データの書き込みの際、データ＃１の読み出しの際、データ♯２の読出しの際、及びデータ♯３の読出しの際にも、コラムデコーダとローデコーダのアドレスによって指定されるアクセス参照データのlocationに応じて電力を供給することができ、不要なメモリの場所に電力を供給する必要がない。しかしながら、Ｄａｔａ毎のパワーゲーティングなので、１Ｄａｔａ内の全ての次元のデータを読み出すために全てのメモリグレン６１９に同時に電力が供給される。なお、符号６１１はローデコーダであり、符号６１２はコラムデコーダである。
【０１１０】
ここで、Ｒ行４列のメモリグレンを備えるチップとして、１〜４次元参照データに応じて再構成したシステムアーキテクチャ（コラム数Ｃ＝４の場合）について、説明する。図１１Ａは、参照データが一次元である場合のメモリ装置の再構成を示す図であり、図１１Ｂは、参照データが二次元である場合のメモリ装置の再構成を示す図であり、図１１Ｃは、参照データが三次元である場合のメモリ装置の再構成を示す図であり、図１１Ｄは、参照データが四次元である場合のメモリ装置の再構成を示す図である。これらの図は、不揮発性メモリ装置のCycle-based 粒度制御可能なパワーゲーティングの動作状態を示しており、メモリ部１１０においてメモリグレン１１９に電力が供給されていないものは点線で示している。類似度評価部１３０においても無効化した部分は点線で示しており、無効化していない部分は実線で示している。
【０１１１】
[本発明の第８実施形態]
図１２は、本発明の第８の実施形態に係るメモリシステムの構成図である。メモリシステム２００はメモリ装置１００を複数備え、その一つをメインコア２１０とし、その他をブランチコア２２０としている。メインコア２１０、ブランチコア２２０の何れも同一の構成である。即ち、メインコア２１０，ブランチコア２２０の何れの各コアも、メモリ部としての参照データ保存回路２１１，２２１と、類似度評価部としてのデータ適応型電流モード類似度評価回路２１２，２２２と、探索部としてのタイムドメイン最小値探索回路２１３，２２３と、比較更新部としての最小値比較更新回路２１４，２２４と、出力用バッファー（Output Buffer）２１５、２２５とを備えている。
【０１１２】
参照データ保存回路２１１，２２１は、コラムデコーダと、ローデコーダと、マトリックス状に配置されたメモリ領域としてのメモリグレンと、書込／読出回路とを備え、書込／読出回路が各メモリグレンに参照データを書き込んだり読み出したりする。即ち、参照データ保存回路２１１，２２１は、行毎にメモリグレンの参照データを書き込んだり、読み出したりする。
【０１１３】
データ適応型電流モード類似度評価回路２１２，２２２は、入力検索データ保存回路と、類似度評価セルと、電流統合回路と、タイムドメインコンバーターを少なくとも備えている。入力検索データ保存回路に保存されている検索データが、各列の類似度評価セルに分けられて入力され、類似度評価セルにおいて、参照データ保存回路の一行の列毎のメモリグレンから読み出された参照データと検索データとの類似度が評価され、電流統合回路に電流値として入力される。電流統合回路では入力された類似度に関する電流値を統合してタイムドメインコンバーターに出力する。タイムドメインコンバーターは入力された電流値を遅延時間に変換する。ここで、「データ適応型」とは、検索データ、参照データの次元数、任意数に適応できるという意味であり、詳細は前述した通りである。
【０１１４】
探索部としてのタイムドメイン最小値探索回路２１３，２２３は、データ適応型電流モード類似度評価回路２１２，２２２から出力される電流値を入力し、検索データに最も類似する参照データに関する電流、即ち、類似度に関する電流を検出し、その検出した値を遅延時間のデータに変換し、参照データ保存回路２１１，２２１に記憶されている参照データの各行から最も類似しているもの、即ち、類似度の高い参照データの候補をローカルウィナーとして求める。
【０１１５】
比較更新部としての最小値比較更新回路２１４は、メインコア２１０でのみ有効化され、参照データ保存回路２１１，２２１から行毎に読み出される参照データから、検索データに最も類似する参照データを比較して更新する。
【０１１６】
よって、比較更新部としての最小値比較更新回路２１４では、探索部としてのタイムドメイン最小値探索回路２１３，２２３で読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、一時記憶回路にそのグローバルウィナーの類似度を記憶する。
【０１１７】
出力用バッファー２２５は、ブランチコア２２０のみ有効化され、ブランチコア２２０のタイムドメイン最小値探索回路２２３で求めたローカルウィナーを一時的に保存し、そのローカルウィナーをメインコア２１０の最小値比較更新回路２１４に出力するためのものである。
【０１１８】
メインコア２１０では出力用バッファー２１５を無効化し、ブランチコア２２０では最小値比較更新回路２２４を無効化する。図１２において無効化したエレメントは点線で示している。
【０１１９】
図１２に示すメモリシステム２００では、比較更新部としての最小値比較更新回路２１４が、メインコア２１０の探索部としてのタイムドメイン最小値探索回路２１３で求まるローカルウィナーの類似度と一時記憶回路に記憶しているグローバルウィナーの類似度とを比較すると共に、ブランチコア２２０の探索部のタイムドメイン最小値探索回路２２３で求まるローカルウィナーの類似度と一時記憶回路に記憶しているグローバルウィナーの類似度とを比較する。
【０１２０】
よって、メインコア２１０及びブランチコア２２０で求まる候補、即ち検索データに類似する参照データの候補を再度比較する必要がないため、再度比較するための回路が不要となり、コンパクト化することができる。また、メインコア２１０の比較更新部としての最小値比較更新回路２１４のみで比較更新をするようにしている。そのため、探索部による探索は比較更新と並列にすることができ、短い時間で処理をすることができる。
【０１２１】
メインコア２１０のみ最小値比較更新回路２１４を有効化して、１クロック(clock1)毎に、パイプラインで最小値比較更新回路２１４に入力されるブランチコア２２０のローカルＷｉｎｎｅｒ（Ｗビット）の結果と、前ステップの自分連想結果とを比較し、小さい方に書き換えて更新する。これにより、マルチコアシステム全体から検索データに一番似ている参照データが検出される。マルチコアシステムの接続可能なチップ枚数はローカルＷｉｎｎｅｒのＷと１次元データのビット数Ｍにより決められる。
【０１２２】
図１３は、図１２に示すメモリシステムにおいて、類似度評価部、探索部及び比較更新部の主要部分のタイムチャートである。この図では、Ｃ＝４、Ｎ＝１、Ｗ＝８、Ｒ＝無制限の場合を想定しており、メインコア２１０とブランチコア２２０における動作例を示しており、主に、電流モード類似度評価、及び、２階層パイプラインＴＤ最小値探索のシステム動作を説明している。
【０１２３】
図１４は、図１２に示すメモリシステム２００の動作を説明するための図である。一個（１Ｄａｔａ）の参照データ及び検索データが、Ｎ（≧１）次元のデータから構成され、各次元のデータがＭビットのデジタル値で表される。そして、メモリ部１１０としての参照データ保存回路は、（Ｒ×Ｍ）行−Ｃ列のメモリセルアレイから構成され、Ｒ×Ｃ（Ｃ≧Ｎ）の１次元データを保存するメモリグレン１１９があって、各メモリグレン１１９にはＭビットの値を保存している。メインコア２１０が２行目の「データ出力とＤＡＣ変換」と「ＴＤ最小値探索」を処理するために（２Ｍ＋２Ｗ−１）−ｃｌｏｃｋがかかり、その間に、ブランチコア２２０からのローカルＷｉｎｎｅｒの「最小値比較更新」処理を同時に実行するので、（２Ｍ＋２Ｗ−１）枚のコアが同一システムに接続できる。そこで、１次元データのメモリビット数Ｍ＝８、カウンタのビット数Ｗ＝８である場合は、１４４−コアシステムが可能となる。
【０１２４】
ここで、図１４に示すように、タイムドメイン最小値探索が最も時間が掛かり、データＤ／Ａ変換及び類似度評価の処理時間がそれよりも短いことについて言及しておく。
【０１２５】
本発明の実施形態では、メモリ領域の行毎にデジタル／アナログ変換がなされるので、遅延が生じる。確かに、デジタル／アナログ変換処理により遅延が生じるが、タイムドメイン最小値探索の方はもっと処理時間が長く、支配的である。従来のアナログアプローチによるＮＮＳ連想メモリでは一つのＤ／Ａ変換で複数の次元の参照データを変換する。一方、本発明の実施形態では、一つのデジタルアナログコンバーターで一つの１次元のデータを変換するので、変換オーバーヘッドがなくなる分、速くなる。ちなみに、アナログアプローチ、デジタルアプローチの何れのＮＮＳ連想メモリでも、本発明の実施形態においても、Ｄ／Ａ変換ではなく、タイムドメイン信号から最小値、即ち一番早く立ち上がるタイムドメイン信号）を検索するための処理時間の方が支配的である。例えば、Ｄ／Ａ変換が８-cycleの時間が必要であるが、タイムドメイン最小値探索の方が１００〜２００-cycleの時間が必要である。それは、早いタイムドメイン信号と遅いタイムドメイン信号とを区別する解像度を実現するために、ある程度長いランプ信号が必要である。０Ｖから例えば１Ｖになる時間を十分長くしないと、差の小さい類似度電流同士が区別できなくなるためである。言い換えれば、類似度、即ちデジタルアプローチの連想メモリの場合にはデジタル値、アナログアプローチの連想メモリと本発明の実施形態の場合には電流値をタイムドメイン信号の遅延に変換するので、差の小さい類似度から変換されるタイムドメイン信号の遅延差も小さく、十分長い時間で測らないと、区別し難くなる。
【０１２６】
本発明の実施形態では、Time-Domain最小値探索速度を改善するために、マルチコアに基づくパイプライン動作を採用している。パイプラインによって、各コアのローカルの長いTime-Domain最小値探索処理時間を吸収して、１クロックで完成させる。このマルチコアに基づくパイプライン方式を使わない場合には、従来のアナログアプローチの連想メモリと同等の速度で、類似する参照データについての情報が得られる。また、参照データ、探索データの次元数を任意に調整することができるようにしているため、次元数が増加し、参照データを格納するメモリグレンの数も増加する。仮に一つのコアのみでデータ処理をすると、図１４に示すようにメモリ領域の１行当たりにおける「ＴＤ最小値探索」の処理には（２Ｍ＋２Ｗ−１）−ｃｌｏｃｋがかかり、次元数の増加に対応して処理するメモリ領域の行数も増加する。ところが、本発明の実施形態のように、複数のコアを用いてTime-Domain最小値探索処理をするため、検索データに類似する参照データをサーチする時間の増加を抑制することができる。
【０１２７】
[本発明の実施形態に係るメモリシステム]
図１２は、本発明の実施形態に係るメモリシステムの構成図である。メモリシステム２００はメモリ装置を複数備え、その一つをメインコア２１０とし、その他をブランチコア２２０としている。メインコア２１０、ブランチコア２２０の何れも同一の構成である。即ち、メインコア２１０，ブランチコア２２０の何れの各コアも、メモリ部としての参照データ保存回路２１１，２２１と、類似度評価部としてのデータ適応型電流モード類似度評価回路２１２，２２２と、探索部としてのタイムドメイン最小値探索回路２１３，２２３と、比較更新部としての最小値比較更新回路２１４，２２４と、出力用バッファー（Output Buffer）２１５、２２５とを備えている。
【０１２８】
参照データ保存回路２１１，２２１は、コラムデコーダと、ローデコーダと、マトリックス状に配置されたメモリ領域としてのメモリグレンと、書込／読出回路とを備え、書込／読出回路が各メモリグレンに参照データを書き込んだり読み出したりする。即ち、参照データ保存回路２１１，２２１は、行毎にメモリグレンの参照データを書き込んだり、読み出したりする。
【０１２９】
データ適応型電流モード類似度評価回路２１２，２２２は、入力検索データ保存回路と、類似度評価セルと、電流統合回路と、タイムドメインコンバーターを少なくとも備えている。入力検索データ保存回路に保存されている検索データが、各列の類似度評価セルに分けられて入力され、類似度評価セルにおいて、参照データ保存回路の一行の列毎のメモリグレンから読み出された参照データと検索データとの類似度が評価され、電流統合回路に電流値として入力される。電流統合回路では入力された類似度に関する電流値を統合してタイムドメインコンバーターに出力する。タイムドメインコンバーターは入力された電流値を遅延時間に変換する。ここで、「データ適応型」とは、検索データ、参照データの次元数、任意数に適応できるという意味であり、メインコア２１０及びブランチコア２２０を構成するメモリ装置の具体的な構成について例えば図５を参照しながら詳細には後述する。
【０１３０】
探索部としてのタイムドメイン最小値探索回路２１３，２２３は、データ適応型電流モード類似度評価回路２１２，２２２から出力される電流値を入力し、検索データに最も類似する参照データに関する電流、即ち、類似度に関する電流を検出し、その検出した値を遅延時間のデータに変換し、参照データ保存回路２１１，２２１に記憶されている参照データの各行から最も類似しているもの、即ち、類似度の高い参照データの候補をローカルウィナーとして求める。
【０１３１】
比較更新部としての最小値比較更新回路２１４は、メインコア２１０でのみ有効化され、参照データ保存回路２１１，２２１から行毎に読み出される参照データから、検索データに最も類似する参照データを比較して更新する。
【０１３２】
よって、比較更新部としての最小値比較更新回路２１４では、探索部としてのタイムドメイン最小値探索回路２１３，２２３で読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、一時記憶回路にそのグローバルウィナーの類似度を記憶する。
【０１３３】
出力用バッファー２２５は、ブランチコア２２０のみ有効化され、ブランチコア２２０のタイムドメイン最小値探索回路２２３で求めたローカルウィナーを一時的に保存し、そのローカルウィナーをメインコア２１０の最小値比較更新回路２１４に出力するためのものである。
【０１３４】
メインコア２１０では出力用バッファー２１５を無効化し、ブランチコア２２０では最小値比較更新回路２２４を無効化する。図１２において無効化したエレメントは点線で示している。
【０１３５】
図１２に示すメモリシステム２００では、比較更新部としての最小値比較更新回路２１４が、メインコア２１０の探索部としてのタイムドメイン最小値探索回路２１３で求まるローカルウィナーの類似度と一時記憶回路に記憶しているグローバルウィナーの類似度とを比較すると共に、ブランチコア２２０の探索部のタイムドメイン最小値探索回路２２３で求まるローカルウィナーの類似度と一時記憶回路に記憶しているグローバルウィナーの類似度とを比較する。
【０１３６】
よって、メインコア２１０及びブランチコア２２０で求まる候補、即ち検索データに類似する参照データの候補を再度比較する必要がないため、再度比較するための回路が不要となり、コンパクト化することができる。また、メインコア２１０の比較更新部としての最小値比較更新回路２１４のみで比較更新をするようにしている。そのため、探索部による探索は比較更新と並列にすることができ、短い時間で処理をすることができる。
【０１３７】
メインコア２１０のみ最小値比較更新回路２１４を有効化して、１クロック(clock1)毎に、パイプラインで最小値比較更新回路２１４に入力されるブランチコア２２０のローカルＷｉｎｎｅｒ（Ｗビット）の結果と、前ステップの連想結果とを比較し、小さい方に書き換えて更新する。これにより、マルチコアシステム全体から検索データに一番似ている参照データが検出される。マルチコアシステムの接続可能なチップ枚数はローカルＷｉｎｎｅｒのＷと１次元データのビット数Ｍにより決められる。
【０１３８】
メモリシステム２００の詳細を説明する前提として、メインコア２１０、ブランチコア２２０の具体的な構成を幾つか説明する。
【０１３９】
[メインコア及びブランチコアの具体的な構成その１]
図５は、図１２のメモリシステムを構成するメインコア及びブランチコアとなるメモリ装置１００の構造図である。メモリ装置１００は、メモリ部１１０と、類似度評価部１３０と、探索部１５０と、比較更新部１７０と、を備える。なお、ブランチコア２２０では比較更新部１７０を無効化すればよい。
【０１４０】
メモリ部１１０は、参照データ保存回路とも呼ばれ、ローデコーダ１１１とコラムデコーダ１１２とメモリ領域１１３と読出／書込回路１１４とを備え、メモリ領域１１３内のメモリグレン１１９に参照データを書き込み及び読み出しできるように構成されている。メモリ領域１１３は、Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる複数の参照データが次元毎に分けられて記憶されている。メモリ領域１１３は、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレン（ＭＧ）１１９をマトリックス状に備えている。図５では、（Ｒ×Ｍ）行Ｃ列のメモリグレン１１９を備えて、列毎に読出／書込回路１１４を備えている。複数の読み出し回路としての読出／書込回路１１４のそれぞれは、対応するメモリグレン１１９から参照データを読み出す。ここで、図５は任意数ｋが１である場合を示している。
【０１４１】
類似度評価部１３０は、入力検索データ保存回路１３１と、デジタル／アナログコンバーター（ＤＡＣ: Digital Analog Converter）１３２と、Ｃ／Ｎ個の参照データと検索データの類似度を並列に計算し電流として出力するＣ個の類似度評価セル（Similarity Evaluation Cell）１３３と、切替スイッチ１３４と、参照データの次元数に応じてＣ個の類似度電流を統合する電流統合回路（ＣＡ：Current Accumulator）１３５と、統合した類似度電流をＣ／Ｎ個のTime-Domain電圧遅延信号に変換するタイムドメインコンバーター（ＴＤＣ：Time Domain Converter）１３６と、を備える。
【０１４２】
デジタル／アナログコンバーター１３２、類似度評価セル１３３、切替スイッチ１３４、電流統合回路１３５及びタイムドメインコンバーター１３６はコラムライン数だけ備えている。列毎に、読出／書込回路１１４からデジタル／アナログコンバーター１３２にデジタルデータが電圧値として入力され、デジタル／アナログコンバーター１３２においてデジタルデータがアナログデータに変換されて、類似度評価セル１３３に出力される。
【０１４３】
類似度評価セル１３３は、入力された二つのデータについての類似度を求める。一つ目のデータは、検索データが次元毎に分解されて入力検索データ保存回路１３１から出力されたデータであって、次元数毎の当該検索データの電圧値である。二つ目のデータは、読出／書込回路１１４からデジタル／アナログコンバーター１３２を経由して入力された参照データの電圧値である。
【０１４４】
類似度評価セル１３３は、一つ目のデータと二つ目のデータとの類似度を電流値として求めて出力する。電流値がゼロの場合は一つ目のデータと二つ目のデータは同一と評価し、電流値が大きい場合は一つ目のデータと二つ目のデータは異なると評価することになる。つまり、参照データが検索データと似ていると、出力される電流値は小さくなる。
【０１４５】
好ましいメモリ装置１００では、切替スイッチ１３４が列毎に備わっている。切替スイッチ１３４は、第１のスイッチ１３４ａと第２のスイッチ１３４ｂとが連動するように構成されている。第１のスイッチ１３４ａは、第ｊ列番目の類似度評価セル１３３と第（ｊ＋１）列番目の類似度評価セル１３３との間に設けられている。ここで、ｊは１以上（列数−１）以下の自然数である。第２のスイッチ１３４ｂは、各列の類似度評価セル１３３と電流統合回路１３５との間に設けられている。第１のスイッチ１３４ａと第２のスイッチ１３４ｂは、何れも、外部からの次元制御信号（ＤＣＳ：Dimension Control Signal）により制御され、外部からの次元制御信号が入力される線は、第１のスイッチ１３４ａの制御電極、第２のスイッチ１３４ｂの制御電極の何れかに接続され、その何れかの配線の間には、ＮＯＴ回路１３４ｃが含まれている。これにより、第１のスイッチ１３４ａがＯＮの場合には第２のスイッチ１３４ｂがＯＦＦとなる一方、第１のスイッチ１３４ａがＯＦＦの場合には第２のスイッチ１３４ｂがＯＮとなる。次元制御信号は、メモリ領域１１３に記憶されている参照データの次元に対応して、切替スイッチ１３４を制御する。
【０１４６】
好ましいメモリ装置１００では、Ｎ次元の参照データが、メモリグレンＭＧｉ ｊからメモリグレンＭＧｉ ｊ+ｎ-1まで、次元に分けて記憶されているとすると、当該Ｎ次元の参照データが検索データと類似しているかどうかを評価するには、第ｊ列番目の類似度評価セルＳＥＣｊから第（ｊ＋Ｎ−１）列番目の類似度評価セルＳＥＣｊ＋Ｎ−１までの各類似度を加算する必要がある。
【０１４７】
好ましいメモリ装置１００では、各類似度を加算するために、第ｊ列番目の類似度評価セルＳＥＣｊと第（ｊ＋１）列番目の類似度評価セルＳＥＣｊ＋１との間に第１のスイッチ１３４ａを設け、第ｊ列番目の類似度評価セルＳＥＣｊと第ｊ列番目の電流統合回路ＣＡｊとの間に第２のスイッチ１３４ｂを設けている。
【０１４８】
外部の次元制御信号により、第１のスイッチ１３４ａがＮ個の類似度評価セル１３３を接続した状態にする。類似度評価セル１３３の入力端子に次元毎の検索データの電圧を印加し、類似度評価セル１３３から出力される電流値を電流統合回路１３５に入力して、電流統合回路１３５に一旦保存する。その後、類似度評価セル１３３の入力端子に次元毎の参照データの電圧を印加し、類似度評価セル１３３から出力される電流値を電流統合回路１３５に入力して、保存している電流値との差分を計算する。このように、類似度評価セル１３３と電流統合回路１３５との連携により、複数列に分散して記憶されている参照データが検索データに類似しているか否かを、電流値により求めることできる。
【０１４９】
タイムドメインコンバーター１３６は、電流統合回路１３５から出力された電流値を遅延時間に変換する。よって、好ましいメモリ装置１００では、切替スイッチ１３４により接続された各類似度評価セル１３３のうち、列番号が最も大きい最端（例えば右端）の類似度評価セル１３３からタイムドメインコンバーター１３６に電流値が入力されることにより、複数列に分散して記憶されている参照データが検索データに類似しているか否かを、時間遅延の値として求めることができる。類似度が高いほど、時間遅延の値が小さくなる。変換された遅延時間信号は、何れも、探索部１５０に入力される。
【０１５０】
探索部１５０は、Ｃ／Ｎ個のタイムドメイン電圧遅延信号から最短値を検出しその最短遅延をカウンタで最小クロック数に変換するＴＤ（Time Domain）最小値探索回路１５１を備えている。ＴＤ最小値探索回路１５１は、類似度評価部１３０における各タイムドメインコンバーター１３６から入力された時間遅延信号のうち、最も時間遅延の短いもの、すなわち、タイムドメインの最小値を探索する。探索した最も遅延時間の短い値は、Ｗビットのカウンタでカウントされ、そのカウント値が比較更新部１７０に出力される。
【０１５１】
比較更新部１７０は、得られる最小クロック数を、保存している以前計算したクロック数と比較し小さい方をアップデートする最小値比較更新回路１７１を備えている。最小値比較更新回路１７１は、メモリ部１１０の読み出しの繰り返し毎に、探索部１５０から入力されたカウント値と自ら保存しているカウント値とを比較し、カウント値が低い方を記憶する。これにより、メモリ部１１０の読み出しの繰り返しが終了すると、低いカウント値が求まり、結果として、検索データに最も類似する参照データのカウント値が求まる。このカウント値は、メモリ部１１０のアドレスに対応させることで、メモリ部１１０において最も類似する参照データのアドレスが求まる。
【０１５２】
図５に示すメモリ装置１００の動作説明は、次の通りである。
【０１５３】
先ず、入力検索データ保存回路１３１は、入力された検索データを次元毎に分けて、デジタル／アナログコンバーター１３２でアナログ電圧に変換し、類似度評価セル１３３に入力する。
【０１５４】
次に、読出／書込回路１１４を経て、Ｃ個のメモリグレン１１９からそれぞれ出力される１次元分の参照データ（Ｍビット）を同様にデジタル／アナログコンバーター１３２でアナログ電圧に変換し、検索データの入力後から、並列にＣ個の類似度評価セル１３３に入力する。もしデジタル／アナログコンバーター１３２がシリアルである場合では、Ｍビットデータを変換するために、Ｍクロックの時間がかかる。
【０１５５】
次に、類似度評価セル１３３は、次元毎に検索データ（１次元）の電圧と参照データ（１次元）の電圧との類似度を電流として出力する。
【０１５６】
その際、先ず、外部の次元制御信号が、参照データ及び検索データの次元数に応じて、類似度評価セル１３３の間の第１のスイッチ１３４ａがＯＮ状態となるように制御し、第１のスイッチ１３４ａがＯＮ状態となっている類似度評価セル１３３同士の電流を加算し、Ｃ個の類似度評価セル１３３の電流をＣ／Ｎ個の電流統合回路１３５で統合し対応するタイムドメインコンバーター１３６へ出力する。電流が小さい方が高い類似度を有する。同じ次元制御信号により、第２のスイッチ１３４ｂをＯＦＦ状態にして、必要のない電流統合回路１３５とタイムドメインコンバーター１３６を接続しないように無効化する。
【０１５７】
次に、タイムドメインコンバーター１３６が、統合されたＣ／Ｎ個の類似度電流をタイムドメイン電圧遅延信号に変換し、並列に探索回路としての最小値探索回路（タイムドメイン（ＴＤ）最小値探索回路）１５１へ出力する。
【０１５８】
次に、第１階層（ローカル）の最小値探索処理として、最小値探索回路（タイムドメイン（ＴＤ）最小値探索回路）１５１で、１行分のＣ／Ｎ個の参照データに対応するタイムドメイン電圧遅延信号から最も類似度が高いもの、すなわち遅延の短いものを求め、Ｗビットのカウンタでその遅延を遅延中のクロック数であるデジタル値に変換し、最小値比較更新回路１７１へ出力する。Ｗビットのカウンタは、最大２Ｗクロックの遅延を持つタイムドメイン電圧遅延信号に変換され、この最大遅延に比例する類似度電流変換の解像度が得られる。つまり、Ｗが大きければ、もっと小さい類似度電流差が得られる。
【０１５９】
次に、第２階層（グローバル）の最小値探索処理として、最小値比較更新回路１７１で、メインコア２１０で得られたＷｉｎｎｅｒ（ローカルＷｉｎｎｅｒ）のデジタル遅延値、又は、ブランチコア２２０で得られ入力されたＷｉｎｎｅｒ（ローカルＷｉｎｎｅｒ）のデジタル遅延値を、回路内に保存されている全ステップの値と比較して、小さい方を書き換えて更新する。この更新を繰り返すことで、メインコア２１０及びブランチコア２２０内の全ての参照データから一番似ているものが、最後に、最小値比較更新回路１７１の中に保存され連想処理結果になる。
【０１６０】
［メモリシステムの動作］
ここで、図１２に示すメモリシステム２００の動作について説明する。
【０１６１】
図１３は、図１２に示すメモリシステムにおいて、類似度評価部、探索部及び比較更新部の主要部分のタイムチャートである。この図では、Ｃ＝４、Ｎ＝１、Ｗ＝８、Ｒ＝無制限の場合を想定しており、メインコア２１０とブランチコア２２０における動作例を示しており、主に、電流モード類似度評価、及び、２階層パイプラインＴＤ最小値探索のシステム動作を説明している。
【０１６２】
図１４は、図１２に示すメモリシステム２００の動作を説明するための図である。一個（１Ｄａｔａ）の参照データ及び検索データが、Ｎ（≧１）次元のデータから構成され、各次元のデータがＭビットのデジタル値で表される。そして、メモリ部１１０としての参照データ保存回路は、（Ｒ×Ｍ）行−Ｃ列のメモリセルアレイから構成され、Ｒ×Ｃ（Ｃ≧Ｎ）の１次元データを保存するメモリグレン１１９があって、各メモリグレン１１９にはＭビットの値を保存している。メインコア２１０が２行目の「データ出力とＤＡＣ変換」と「ＴＤ最小値探索」を処理するために（２Ｍ＋２Ｗ−１）−ｃｌｏｃｋがかかり、その間に、ブランチコア２２０からのローカルＷｉｎｎｅｒの「最小値比較更新」処理を同時に実行するので、（２Ｍ＋２Ｗ−１）枚のコアが同一システムに接続できる。そこで、１次元データのメモリビット数Ｍ＝８、カウンタのビット数Ｗ＝８である場合は、１４４−コアシステムが可能となる。
【０１６３】
ここで、図１４に示すように、タイムドメイン最小値探索が最も時間が掛かり、データＤ／Ａ変換及び類似度評価の処理時間がそれよりも短いことについて言及しておく。
【０１６４】
本発明の実施形態では、メモリ領域の行毎にデジタル／アナログ変換がなされるので、遅延が生じる。確かに、デジタル／アナログ変換処理により遅延が生じるが、タイムドメイン最小値探索の方はもっと処理時間が長く、支配的である。従来のアナログアプローチによるＮＮＳ連想メモリでは一つのＤ／Ａ変換で複数の次元の参照データを変換する。一方、本発明の実施形態では、一つのデジタルアナログコンバーターで一つの１次元のデータを変換するので、変換オーバーヘッドがなくなる分、速くなる。ちなみに、アナログアプローチ、デジタルアプローチの何れのＮＮＳ連想メモリでも、本発明の実施形態においても、Ｄ／Ａ変換ではなく、タイムドメイン信号から最小値、即ち一番早く立ち上がるタイムドメイン信号を検索するための処理時間の方が支配的である。例えば、Ｄ／Ａ変換が８-cycleの時間が必要であるが、タイムドメイン最小値探索の方が１００〜２００-cycleの時間が必要である。それは、早いタイムドメイン信号と遅いタイムドメイン信号とを区別する解像度を実現するために、ある程度長いランプ信号が必要である。０Ｖから例えば１Ｖになる時間を十分長くしないと、差の小さい類似度電流同士が区別できなくなるためである。言い換えれば、類似度、即ちデジタルアプローチの連想メモリの場合にはデジタル値、アナログアプローチの連想メモリと本発明の実施形態の場合には電流値をタイムドメイン信号の遅延に変換するので、差の小さい類似度から変換されるタイムドメイン信号の遅延差も小さく、十分長い時間で測らないと、区別し難くなる。
【０１６５】
本発明の実施形態では、Time-Domain最小値探索速度を改善するために、マルチコアに基づくパイプライン動作を採用している。パイプラインによって、各コアのローカルの長いTime-Domain最小値探索処理時間を吸収して、１クロックで完成させる。このように、メインコア２１０の比較更新部のみで比較更新をするようにし、探索部による探索は比較更新と並列に行う。よって、各コアの比較更新をパイプラインで処理することができ、任意のクロック数例えば１クロックで、読み出し毎に、読み出された参照データに対する連想計算がなされる。なお、このマルチコアに基づくパイプライン方式を使わない場合には、従来のアナログアプローチの連想メモリと同等の速度で、類似する参照データについての情報が得られる。また、参照データ、探索データの次元数を任意に調整することができるようにしているため、次元数が増加し、参照データを格納するメモリグレンの数も増加する。仮に一つのコアのみでデータ処理をすると、図１４に示すようにメモリ領域の１行当たりにおける「ＴＤ最小値探索」の処理には（２Ｍ＋２Ｗ−１）−ｃｌｏｃｋがかかり、次元数の増加に対応して処理するメモリ領域の行数も増加する。ところが、本発明の実施形態のように、複数のコアを用いてTime-Domain最小値探索処理をするため、検索データに類似する参照データをサーチする時間の増加を抑制することができる。
【０１６６】
メインコア２１０及びブランチコア２２０は、図５に示すメモリ装置１００のように構成されていなくても、図３、図４、図６、図７などを参照して以下説明するようなメモリ装置１００であってもよい。その際、必要に応じて設計変更が要求される場合がある。
【０１６７】
[メインコア及びブランチコアの具体的な構成その２]
図３は図１２のメモリシステムを構成するメインコア及びブランチコアとなるメモリ装置の構成図である。メモリ装置１００は、図５と同様、メモリ部１１０と、類似度評価部１３０と、探索部１５０と、比較更新部１７０と、を備える。図５に示す形態とは、デジタル／アナログコンバーター１３２、タイムドメインコンバーター１３６を備えていない点で異なる。なお、図７での切替スイッチ１３４の機能は、図５での切替スイッチ１３４のそれと同様である。
【０１６８】
[メインコア及びブランチコアの具体的な構成その３]
図４は図１２のメモリシステムを構成するメインコア及びブランチコアとなるメモリ装置１００の構成図である。図４に示す形態は、類似度評価部１３０の構成が図３と異なり、任意数ｋが２として設計製造されている。複数の類似度評価セル１３３がセル群に区分されており、図４に示すように、奇数列目の類似度評価セル１３３と偶数列目の類似度評価セル１３３とがセル群１３３ａを構成しており、電流統合回路１３５が一つのセル群１３３ａに対応している。そして、電流統合回路１３５が、対応している一つのセル群１３３ａとは別のセル群１３３ａにおける任意数の類似度評価セル１３３から出力された電流を統合するように、切替スイッチ１３４が設けられている。
【０１６９】
つまり、図４では、図３とは異なり、切替スイッチ１３４が列毎に設けられておらず、奇数列目の一つの類似度評価セル１３３と偶数列目の一つの類似度評価セル１３３とがセル群１３３ａを構成しており、第２のスイッチ１３４ｂが、偶数列目の一つの類似度評価セル１３３とそのセル群１３３ａに対応した電流統合回路１３５との間に設けられ、第１のスイッチ１３４ａが、セル群１３３ａと隣のセル群１３３ａとの間に設けられている。
【０１７０】
よって、第１のスイッチ１３４ａ、第２のスイッチ１３４ｂの何れか一方をＯＮにし、他方をＯＦＦにすることにより、４個の類似度評価セル１３３からの類似度電流を統合することもでき、２個の類似度評価セル１３３からの類似度電流を統合することもできる。
【０１７１】
その際、第２のスイッチ１３４ｂのＯＦＦにより、類似度評価セル１３３からの電流が流れない電流統合回路１３５には電力を供給しないように制御することにより、省電力化を図ることができる。
【０１７２】
ここで、図４では、セル群は２つの類似度評価セル１３３を有しているが、３以上の任意数であってもよい。これにより、検索データ及び参照データの次数以外の数によっても柔軟に対応することができる。セル群における類似度評価セル１３３の任意数は、後述するように、図７に示す一つのパワードライバー１１８が電力供給するメモリグレン１１９の任意数と等しくなるように設定してもよい。
【０１７３】
[メインコア及びブランチコアの具体的な構成その４]
図６は、図１２のメモリシステムを構成するメインコア及びブランチコアとなるメモリ装置の構成図であって、図４のメモリ装置１００の具体的な形態を示す構成図である。図６に示すメモリ装置１００では、各類似度評価セル１３３の前段にデジタル／アナログコンバーター１３２を設けている。デジタル／アナログコンバーター１３２は入力されたデジタル電圧をアナログ電圧に変換し、類似度評価セル１３３に出力する。電流統合回路１３５の後段にはタイムドメインコンバーター１３６を設け、タイムドメインコンバーター１３６は電流統合回路１３５から出力された電流値を遅延時間に変換する。よって、切替スイッチ１３４により接続された各類似度評価セル１３３のうち、最端（例えば右端）の類似度評価セル１３３からの電流値がタイムドメインコンバーター１３６に入力されることにより、複数列に分散して記憶されている参照データが検索データに類似しているか否かを時間遅延の値として求めることができる。
【０１７４】
図５及び図６に示す形態では、類似度評価セル１３３の前段にデジタル／アナログコンバーター１３２を設け、類似度評価セル１３３はデジタル／アナログコンバーター１３２で変換されたデータに基いて、類似度を評価するための値としてアナログ電流を求めて、電流統合回路１３５に出力し、参照データが検索データに類似しているかどうかが電流値の差として求められる。
【０１７５】
[メインコア及びブランチコアの具体的な構成その５]
本発明の実施形態においては、類似度評価セル１３３の前段にデジタル／アナログコンバーター１３２を設ける必要はなく、次のようにしてもよい。類似度評価セル１３３に、検索データのデジタル電圧値と参照データのデジタル電圧値が順に入力され、類似度評価セル１３３において類似度を評価するためのデジタル値が求められ、類似度評価セル１３３の後段に設けたデジタル／アナログコンバーター（図示せず）によりアナログ値に変換されて、電流統合回路１３５に出力するようにしてもよい。なお、その際の類似度評価セル１３３は、デジタルアプローチで使用されている回路を適宜変更して使用すればよい。
【０１７６】
[メインコア及びブランチコアの具体的な構成その６]
前述の実施形態では、電流統合回路１３５からの出力をタイムドメインコンバーター１３６により遅延時間に変換し、最短遅延時間を求めている。しかしながら、本発明の実施形態はこれに限定されることなく、次のようにしてもよい。アナログ電圧の最小値をアナログの値のまま直接比較更新する回路を設けたり、アナログ電圧の最小値をデジタル値に変換する回路とそのデジタル値を比較更新する回路とを設けたりする。一例を挙げると、各電流統合回路からの出力端に各抵抗を接続することにより、各電流統合回路から流れるアナログ電流をアナログ電圧に変換し、その電圧のうち最小値を探索してもよい。そのためには、例えば図５、図３、図４、図６に示す探索部１５０をアナログ電圧最小値探索回路で構成すればよい。具体的なアナログ電圧最小値探索回路の例は図３３を参照して後述する。この場合、出力された値をデジタル変換するアナログ／デンタルコンバーターなどを設けるなどする必要がある。
【０１７７】
[メインコア及びブランチコアの具体的な構成その７]
次に、メインコア及びブランチコアを構成するメモリ装置１００におけるメモリ部１１０の好ましい形態について説明する。図７は好ましいメモリ部を有するメモリ装置の構成図である。メモリ部１１０は、（Ｒ×Ｍ）行Ｃ列のメモリセルアレイから構成されて（Ｒ×Ｃ）／Ｎ個の参照データを保存している参照データ保存回路を備えている。なお、図１０は図４に対応した構成図としているが、図３、図４、図６に示す他の形態であっても採用することができる。
【０１７８】
メモリ部１１０としての参照データ保存回路には、Ｒ×Ｃ（Ｃ≧Ｎ）の１次元データを保存するメモリグレン（ＭＧ: Memory Grain）１１９があって、各メモリグレン１１９にはＭビットの値を保存している。各メモリグレン１１９にパワーゲーティングのためのパワードライバー（ＰＤ：Ｐｏｗｅｒ  Ｄｒｉｖｅｒ）１１８が設置され、パワードライバー１１８が行デコーダ、列デコーダ及びクロック１(clk.1) により独立に電力の供給について制御する。すなわち、一行のメモリグレン（ＭＧ）１１９には、Ｃ／Ｎ個の参照データが保存されており、各参照データを並列に類似度評価セル１３３に出力して連想認識が実行される。
【０１７９】
以下、図７に示すメモリ装置１００のメモリ部１１０について更に詳細に説明する。
メモリ部１１０としての参照データ保存回路は、ローデコーダ１１１、コラムデコーダ１１２、メモリ領域１１３、及び読出／書込回路１１４で構成される。メモリ領域１１３は、複数のローライン１１５と、複数のビットライン１１６と、複数本のコラムライン１１７と、複数のパワードライバー（ＰＤ）１１８と、複数のメモリグレン（ＭＧ）１１９とを備える。メモリグレン１１９は不揮発性メモリで構成されている。
【０１８０】
ローデコーダ１１１には複数本のローライン１１５が接続されており、コラムデコーダ１１２には複数本のコラムライン１１７が接続されている。
【０１８１】
メモリ領域１１３は複数の領域に分けられ、各領域は１以上Ｎ以下の任意数のコラムライン１１７とＭ本のローライン１１５とで指定され、領域毎にパワードライバー１１８とメモリグレン１１９とが組として備えられている。ここで、コラムライン１１７の任意数と、ローライン１１５の本数と、ビットライン１１６の本数とは、何れも設計時に設定され、その設定に従って製造される。ここで、「任意数」とはメモリ装置を利用するユーザにより定められる場合なども含まれ、単に、設計・製造時に一定の値に定められる場合も含まれる。図７では、領域毎に、コラムライン１１７は１本とし、ローライン１１５はＭ本として、ビットライン１１６はＭ本としている。ここでの自然数Ｍ，Ｎの定義は、図１及び図２を参照して前述した検索データ１０及び参照データ３０での定義と同じである。
【０１８２】
本発明の実施形態では、メモリ領域１１３において任意数のコラムライン１１７とＭ本のローライン１１５とにより指定される領域毎に、Ｍビットの不揮発性メモリを１単位として構成するメモリグレン１１９と、メモリグレン１１９に電力を供給するパワードライバー１１８とが組として備えられている。ここで、領域毎のコラムライン１１７は任意数個であり、ここで、「任意数」とはメモリ装置を利用するユーザにより定められる場合なども含まれ、単に、設計・製造時に一定の値に定められる場合も含まれる。領域毎のメモリグレン１１９の任意数個と等しく、図７では１個としている。
【０１８３】
本発明の実施形態では、或る一つのパワードライバー１１８が、任意数のコラムライン１１７からの制御信号の入力と、Ｍ本のローライン１１５からの制御信号の入力と、クロック信号の入力とを受け、クロック信号に同期して、パワードライバー１１８と組となるメモリグレン１１９に電力を供給する。これにより、そのメモリグレン１１９に格納されている次元毎の参照データを読み出し、ビットライン１１６を通じてその列の読出／書込回路１１４に出力する。
【０１８４】
よって、メモリ領域１１３の全体に電力を供給するのではなく、読み出す各領域のメモリグレン１１９に電力を供給することで、必要な場所にのみ電力を供給すると共に、クロック信号の入力により必要な時間のみ電源供給をする。従って、メモリ領域１１３に格納されている参照データを読み出す際の消費電力を大幅に減らすことができる。
【０１８５】
図７に示すように、メモリグレン１１９は、ＭＧ１１〜ＭＧＲＣまで、Ｒ行Ｃ列存在するので、ローデコーダ１１１からの制御信号が流れる１又は複数本のローライン１１５と、コラムデコーダ１１２から制御信号が流れる１又は複数本コラムライン１１７とで１又は複数のパワードライバー１１８が指定され、その指定されたパワードライバー１１８においてクロック信号“１”が入力されると、入力されている間のみ、パワードライバー１１８から、組となるメモリグレン１１９に電力が供給される。指定されたパワードライバー１１８においてクロック信号“０”が入力されると、組となるメモリグレン１１９に電力の供給が停止される。なお、パワードライバー１１８は、クロック信号“０”が入力されると組となるメモリグレン１１９に電力を供給し、クロック信号“１”が入力されると組となるメモリグレン１１９に電力を供給しないようにしてもよい。ここで、クロック信号“０”、“１”は、“Ｈ”、“Ｌ”に対応している。
【０１８６】
ここで、Ｍ本のローライン１１５からの制御信号の入力は、１本乃至Ｍ本のうち所定本数毎に順番になされてもよいし、１本乃至Ｍ本まで同時になされてもよい。
【０１８７】
ここで、図７に示すメモリ装置１００において、省電力化が達成できていることを詳細に説明する。図８乃至図１０は、メインコア及びブランチコアを構成するメモリ装置におけるメモリ部とその動作及び消費電力について、従来技術のそれらと比較するための図である。
【０１８８】
図８は、メインコア及びブランチコアを構成するメモリ装置におけるメモリ部とその動作及び消費電力について模式的に示す図である。図８の上段は、メモリ部１１０を模式的に示し、図８の中段は、Ｄａｔａ♯１、Ｄａｔａ♯２、Ｄａｔａ♯３を順に行毎に読み出したときに、どの行の領域からデータが読み出されるかを示す。図８の下段は、横軸が時間、縦軸が消費電力、奥行きの軸がメモグレンの位置を示している。
【０１８９】
参照データの次元毎に（１個のメモリグレン毎に）パワードライバー１１８を備えて、細粒度パワーゲーティングを用いるだけでなく、任意のコラムライン１１７を複数本同時にアクティベートすることを可能にして１Ｄａｔａ内の必要なデータ次元に対応した必要なメモリグレン１１９のみに柔軟に電力を供給する。その上に、パワードライバー１１８に動作演算のクロック信号を入力し、クロック信号に同期して、パワードライバー１１８から対応のメモリグレン１１９に電力を供給する。
【０１９０】
この読み出し制御によって、演算に必要なデータが演算動作中のみ、電力を消費することになり、演算動作のクロック信号が入っていない場合には電力を消費しない。さらに、読み出しの時にクロックパルスが“０”のときのみ電力消費がある。クロックパルスが“１”（クロック前半）の時はpre-charge、すなわちビットライン１１６を０Ｖにプレチャージし、電力を供給する必要がなく、演算動作中の消費電力が半減する。
【０１９１】
例えば、データ♯１（Ｄａｔａ♯１）では、参照データの全ての次元の出力が必要な場合、クロックを用いているので、読み出しの際に、消費電力が半減する。この理由は次の通りである。クロック制御の導入により、１クロックの前半、すなわちクロック信号が“Ｈ”であるときメモリグレン１１９に電力を供給しないで、プレチャージする。１クロックの後半、すなわちクロック信号が“Ｌ”であるとき指定のメモリグレン１１９に電力を供給して、データを読み出す。このプレチャージは、電力供給を高速で切り換える際にdisturb誤動作が発生しないようにするため、参照データを読み出す際に、データが書き換えられない。
【０１９２】
データ♯２（Ｄａｔａ♯２）では、動作演算のクロックの制御により、パワードライバー１１８が動作していないので、動的にメモリの動作も停止し、消費電力を最小化することができる。
【０１９３】
データ♯３（Ｄａｔａ♯３）では、参照データの一部分の次元のデータ出力が必要な場合、必要最低限のメモリグレン１１９だけに電力を供給して、消費電力の最適化を図ることができる。
【０１９４】
図７に示すメモリ装置１００では、メモリ部１１０が、Cycle-based 粒度制御可能なパワーゲーティングに基いた不揮発性メモリで構成されている。この構成により、待機時の消費電力をゼロにする上、メモリ部１１０の必要な部分に電力を供給し、不要な部分には電力を供給しないため、消費電力を減らすことができる。
【０１９５】
不揮発性メモリは、小面積、高速、高安定、低書込電流など色々異なる性能に重視してそれぞれ開発されてきた経緯があるが、ここでは、Cycle-based 粒度制御可能なパワーゲーティングを実現するために、高速且つ安定の不揮発メモリセルが必要である。本発明の実施形態では、一般的には差動対型のＳＴＴ−ＭＲＡＭメモリセルを利用するとよい。この点については実装例で詳細に説明する。
【０１９６】
実装例において後述するように、高速で探索することができ、かつ、Cycle-based 粒度制御可能なパワーゲーティングが実現できたのは、次の理由による。
【０１９７】
第１には、電力が供給されたらすぐに反応でき、高速かつ安定な動作を特徴とする差動対型ＳＴＴ−ＭＲＡＭメモリセル（例えば４Ｔ−２ＭＴＪセル）を採用しているからである。４Ｔ−２ＭＴＪセルは、より速くＭＴＪからデータを読み出せ、高速の電源ＯＮ／ＯＦＦによるdisturb誤動作が発生しないという特徴がある。
【０１９８】
第２には、高速でデータを読み出すために、電力を供給する前に、ビットラインに邪魔な電荷をたまらないように、０Ｖにpre-chargeするからである。
【０１９９】
図７に示すメモリ装置１００では、Cycle-based粒度制御可能なパワーゲーティングに基づく不揮発性メモリ装置により、連想メモリの超低電力化を図ることができる。類似度評価部１３０の切替スイッチ１３４により、データ次元数に応じてシステムを再構成するわけだが、Cycle-based粒度制御可能なパワーゲーティングに基づく不揮発性メモリ装置は、その再構成に応じて必要最小限のメモリに電力を供給するため、動作時消費電力を最適化できる。
【０２００】
従来のＮＮＳ連想メモリでのデジタルアプローチ及びアナログアプローチ（以下、「従来のアプローチ」とする。）でのメモリ部は、次の通りである。図９は、従来のアプローチでのメモリ部５１０とその動作及び消費電力について模式的に示す図である。図９の上段は、メモリ部５１０を模式的に示し、図９の中段は、Ｄａｔａ♯１、Ｄａｔａ♯２、Ｄａｔａ♯３を行毎に順に読み出したとき、どの行の領域からデータが読み出されるかを示す。図９の下段は、横軸が時間、縦軸が消費電力、奥行きの軸がメモグレンの位置を示している。
【０２０１】
従来のアプローチでは、メモリ部５１０のメモリ領域は揮発性のＳＲＡＭで構成されている。そのため、全てのメモリグレン５１９に、参照データを書き込む際、データ♯１の読出しの際、データ♯２の読出しの際、データ♯３の読出しの際の何れも、常に電力を供給する必要がある。なお、符号５１１はローデコーダであり、符号５１２はコラムデコーダである。
【０２０２】
図１０は、従来のＳＴＴ−ＭＲＡＭから構成されたメモリ部とその動作及び消費電力について模式的に示す図である。図１０の上段は、メモリ部６１０を模式的に示し、図１０の中段は、Ｄａｔａ♯１、Ｄａｔａ♯２、Ｄａｔａ♯３を行毎に順に読み出したときに、どの行の領域からデータが読み出されるかを示す。図１０の下段は、横軸が時間、縦軸が消費電力、奥行きの軸がメモグレンの位置を示している。
【０２０３】
非特許文献９に示す従来のＳＴＴ-ＭＲＡＭでは、細粒度パワーゲーティング技術を用いて、１Ｄａｔａの参照データ毎に、即ちＮ個のメモリグレン６１９毎にパワードライバー６１８を備え、独立電源供給できる。そのため、参照データの書き込みの際、データ＃１の読み出しの際、データ♯２の読出しの際、及びデータ♯３の読出しの際にも、コラムデコーダとローデコーダのアドレスによって指定されるアクセス参照データのlocationに応じて電力を供給することができ、不要なメモリの場所に電力を供給する必要がない。しかしながら、Ｄａｔａ毎のパワーゲーティングなので、１Ｄａｔａ内の全ての次元のデータを読み出すために全てのメモリグレン６１９は同時に電力を供給される。なお、符号６１１はローデコーダであり、符号６１２はコラムデコーダである。
【０２０４】
ここで、Ｒ行４列のメモリグレンを備えるチップとして、１〜４次元参照データに応じて再構成したシステムアーキテクチャ（コラム数Ｃ＝４の場合）について説明する。図１１Ａは、参照データが一次元である場合のメモリ装置の再構成を示す図であり、図１１Ｂは、参照データが二次元である場合のメモリ装置の再構成を示す図であり、図１１Ｃは、参照データが三次元である場合のメモリ装置の再構成を示す図であり、図１１Ｄは、参照データが四次元である場合のメモリ装置の再構成を示す図である。これらの図は、不揮発性メモリ装置のCycle-based 粒度制御可能なパワーゲーティングの動作状態を示しており、メモリ部１１０においてメモリグレン１１９に電力が供給されていないものは点線で示している。類似度評価部１３０においても無効化した部分は点線で示しており、無効化していない部分は実線で示している。
【０２０５】
本発明の実施形態に係るメモリシステム２００は、図１２に示すように、次のようなメインコア２１０と一又は複数のブランチコア２２０とを備えて構成されてもよい。
メインコア２１０及びブランチコア２２０は、例えば図７に示すように、それぞれ、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる複数の参照データが次元毎に分けられて記憶されているメモリ領域１１３において、Ｍビットのメモリを１単位として構成する任意数（ただし、１≦ｋ≦Ｎ）のメモリグレンのうち対応するメモリグレンから、それぞれの読み出し回路（読出／書込回路１１４）が参照データを読み出す複数の読み出し回路と、
Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる検索データが保存されており、検索データを分けて出力する検索データ保存回路（入力検索データ保存回路）１３１と、
それぞれの類似度評価セルが、メモリ領域１１３からの読み出し毎に読み出された参照データのそれぞれと検索データとの類似度を求め、検索データ保存回路から読み出されたデータに対し、対応する読み出し回路で読み出された参照データの類似度を電流値として出力する、複数の類似度評価セル１３３と、
それぞれの電流統合回路１３５が、対応する任意数の前記類似度評価セル１３３から出力された電流を統合する複数の電流統合回路１３５と、
メモリ領域１１３からの読み出し及び類似度評価毎に、メモリ領域１１３から読み出された参照データのそれぞれの検索データとの類似度から、類似度の高い参照データの候補をローカルウィナーとして求める探索部（例えば、タイムドメイン最小値探索回路２１３,２２３）と、
を備える。
メインコア２１０は、探索部（例えば、タイムドメイン最小値探索回路２１３,２２３）で読み出し及び類似度評価毎に求まるローカルウィナーのうち最も類似度が高い参照データの候補をグローバルウィナーとして求め、グローバルウィナーの類似度を記憶する一時記憶回路を備えた比較更新部（最小値比較更新回路）２１４を備え、
比較更新部（最小値比較更新回路）２１４が、メインコア２１０の探索部２２３で求まるローカルウィナーの類似度と一時記憶回路に記憶しているグローバルウィナーの類似度とを比較すると共に、ブランチコア２２０の探索部（例えば、タイムドメイン最小値探索回路２２３）で求まるローカルウィナーの類似度と一時記憶回路に記憶しているグローバルウィナーの類似度とを比較する。
このようなシステムを採用することにより、第１として、複数のコアを有する場合であっても、検索データに類似する参照データを探索する際に、同じコンパクトな設計のコアで簡単にシステムが構成でき、処理時間を低減可能であることと、第２として、検索データに類似する参照データを探索する際に、参照データの次元数に柔軟に対応することができかつコンパクトな回路構成を有することとを、同時に満たすことができる。
このシステムは、それぞれ前述した実施形態を取捨選択して組み合わせて実現されるので、説明を省略する。
【０２０６】
［実装例］
次に、実装例を説明する。図１５は、実装例に係るブロック構成図である。画像認識への応用を前提とし、低電力，高密度で適応性のある不揮発連想メモリ装置を想定している。図１５に示すメモリ装置３００では、図７と同様、メモリ部３１０、類似度評価部３３０，探索部３５０、比較更新部３７０、タイミングコントローラ３９０を備える。メモリ部３１０は、図７と同様、ローデコーダ３１１、コラムデコーダ３１２、メモリ領域３１３、読出／書込回路３１４、ローライン３１５、ビットライン３１６、コラムライン３１７、パワードライバー３１８、メモリグレン３１９を備える。類似度評価部３３０は、図７と同様、デジタル／アナログコンバーター（ＤＡＣ）３３２、類似度評価セル（ＳＥＣ）３３３、切替スイッチ３３４、電流統合回路（ＣＡ）３３５、タイムドメインコンバーター（ＴＤＣ）３３６を備え、切替スイッチ３３４は第１のスイッチ３３４ａと第２のスイッチ３３４ｂと否定回路３３４ｃとを備える。８次元、１６次元、３２次元、６４次元、１２８次元の画像特徴データを想定している試作チップである。基本的に次元数が８の整数倍であれば全て対応することができる。図７を参照して説明した各パラメータは以下のようになる。
Ｎ＝８次元、１６次元、３２次元、６４次元、１２８次元であり、８の整数倍の次元で適応可能である。
Ｍ＝８ビット
Ｃ＝１２８列
Ｒ＝１６行
Ｗ＝８ビット（最小値比較更新回路のカウンタのビット数）
ただし、８の整数倍対応であるので、メモリグレンのＰＤと類似度電流の統合スイッチは両方８次元毎に設計している。
【０２０７】
そのため、外部の次元制御信号により、左から奇数番目の切替スイッチ３３４を動作させ、第１のスイッチ３３４ａを閉じると、１６次元対応のシステムになる。後述する実測波形のうち速度などの性能評価は１６次元のｔｅｘｔｕｒｅ認識においての結果である。
【０２０８】
以下、実装例における各部の基本的な回路構成を説明することにより、図７などに示すメモリ装置１００の具体的な実施形態を説明する。
【０２０９】
図１６は、実装例でのメモリ領域の領域毎のブロック図である。図１６は、図７を参照して説明したメモリ領域の一領域を示す。この一領域には、１個のパワードライバー３１８とＫ（＝８）個の不揮発性のメモリグレン３１９が組として備えており、パワードライバー３１８は、Ｍ個のパワーラインゲート３１８ａを備える。パワーラインゲート３１８ａの論理演算回路３１８ｂには、コラムライン（ＣＤ  Ｌｉｎｅ）と、クロック信号の入力線と、ローライン（ＲＤ  Ｌｉｎｅ）のうち１本の線が入力され、クロック信号が反転して論理演算回路３１８ｂに入力される。論理演算回路３１８ｂからの出力信号は、電源ラインに接続されたインバータ回路３１８ｃに入力される。インバータ回路３１８ｃからの出力がパワーラインＰＬとして、４Ｔ−２ＭＴＪセル３１９ａに入力される。なお、ＢＬとＢＬＢとはビットラインの対である。
【０２１０】
図１７Ａは、図１６のブロック図のうち、不揮発性のメモリグレン３１９を１つとし、参照データの次元毎にパワードライバー３１８を備える場合を想定した図である。図１７Ｂは図１７Ａに示すユニットについての２つの４Ｔ−２ＭＴＪメモリセル（Ｃｅｌｌ＃１とＣｅｌｌ＃２）から連続的にデータを読み出す動作を示すタイムチャートである。既に説明したように、読出しオペレーションにおいては、クロック信号が“０”であり、ＣＤ  Ｌｉｎeが“１”であり、かつ、該当するＲＤ  Ｌｉｎｅも“1”であるとき、パワーラインＰＬが“１”になり、読出し処理をしている。
【０２１１】
図１７Ｃは、図１７Ａに示す回路の変形例であり、一つのパワーラインゲートから並列に、Ｍ個の各４Ｔ−２ＭＴＪセル３１９ａへパワーラインＰＬを出力するようにしてもよい。
【０２１２】
図１８は、メモリ部３１０における４Ｔ−２ＭＴＪメモリセル３２０の回路図である。４Ｔ−２ＭＴＪメモリセル３２０は、差動対型ＳＴＴ−ＭＲＡＭセルであり、４個のＮ型ＭＯＳＦＥＴ３２１乃至３２４と２個のＭＴＪ３２５，３２６を備える。ＭＴＪ３２５，３２６は、固定磁性層と絶縁層及び自由磁性層からなり、ＭＴＪ３２５，３２６の各固定磁性層がパワーラインＰＬに接続され、ＭＴＪ３２５，３２６の自由磁性層がそれぞれ固定磁性層と並行（Parallel）又は逆並行（Anti-Parallel）の状態を記憶することによりデジタル値を保存する。図１９は、図１８に示す４Ｔ−２ＭＴＪメモリセルの動作を説明するためのタイムチャートである。
【０２１３】
４Ｔ−２ＭＴＪセル３２０にデータを書込む際には、ワードラインＷＬを例えば高い電圧にしてビットライン（ＢＬ／ＢＬＢ）とセンスノード（SN: Sense Node/SNB）を接続し、ＢＬＢ／ＢＬを高い電圧（１Ｖ）／低い電圧（０Ｖ）にセットする。４Ｔ−２ＭＴＪセル３２０に“１”／“０”のデータを書き込む場合は、クロック信号でパワーラインＰＬを制御することにより、クロック前半では、ＰＬを０Ｖにして右／左のＭＴＪ３２５，３２６をAnti-Parallelに書き込み、クロック後半では、ＰＬを１Ｖにして左／右のＭＴＪ３２５，３２６をParallelに書き込む。
【０２１４】
４Ｔ−２ＭＴＪセル３２０からデータを読み出す際には、ワードラインＷＬを１Ｖにしてビットライン（ＢＬ／ＢＬＢ）とセンスノード（SN: Sense Node/SNB）を接続し、クロック信号でＰＬを制御し、クロック前半では、ＰＬを０ＶにしてＢＬＢ／ＢＬ及びＳＮ／ＳＮＢを全部０ＶにPrechargeし、クロック後半では、ＰＬを１Ｖにして、ＢＬＢ／ＢＬを通して、ＳＮ／ＳＮＢの電圧差を読み出す。
【０２１５】
図２０は、図７に示す読出／書込回路１１４のブロック図である。読出／書込回路１１４は、Ｍ個の読出−書込インタフェース（WRI：Write-Read Interface）回路から構成され、ビットライン（ＢＬ/ＢＬＢ）を通して、Ｍコラムの４Ｔ−２ＭＴＪセル３２０にアクセスし、１クロックでＭビットのデータを読出し／書込みをする回路である。その１個のＷＲＩ回路３２７は、書込ドライバ回路３２７Ａと、プレチャージ（Precharge）回路３２７Ｂと、センスアンプ（Sense Amplifier）回路３２７Ｃと、デジタルレジスタ（Register）回路３２７Ｄを備える。データを書き込む際には書込ドライバ回路３２７Ａを用い、データを読み出す際にはプレチャージ回路３２７Ｂとセンスアンプ回路３２７Ｃと、デジタルレジスタ回路３２７Ｄを用いることにより、１クロックで１ビットのデータを処理する。
【０２１６】
図２１は、図７などに示す類似度評価セル１３３の回路図である。類似度評価セル４００は、９つのＭＯＳＦＥＴ（Ｔ１〜Ｔ９）４０１乃至４０９と２個コンデンサ（Ｃ１，Ｃ２）４１０，４１１から構成され、両サイドの入力ポートＶ１及びＶ２から２つのステップに分けてアナログ電圧信号が入力される。上段の左側がステップ１であり、上段の右側がステップ２である。下段に示すように、ステップ１とステップ２とでの電圧の差を求め、類似度評価関数を満たす類似度電流（IBSSE）として電流統合回路へ出力する回路である。
【０２１７】
ステップ１の際には、ＳＷを“Ｈ”にセットし、入力ポートＶ１，Ｖ２に検索データとするターゲット電圧を印加してＭＡＸの類似度電流が得られる。ステップ２の際には、ＳＷを“Ｌ”にセットしてトランジスタＴ１、Ｔ２、Ｔ３、Ｔ４のゲート電荷を保持し、入力ポートに参照データとするテンプレート電圧を印加して、それとターゲット電圧との差に応じて下がる類似度電流が得られる。
【０２１８】
図２２は、図７などに示す電流統合回路１３５の回路図である。電流統合回路４２０は、５個のＰ型ＭＯＳＦＥＴ（Ｔ１０乃至Ｔ１４）４２１乃至４２５と、２個のＮ型ＭＯＳＦＥＴ（Ｔ１５乃至Ｔ１６）４２６，４２７と、２個のスイッチ（Ｓ１，Ｓ２）４２８，４２９と、１個のコンデンサ４３０から構成される。Ｔ１０とＴ１１でカレントミラーを構成し、Ｔ１０とＴ１２でカレントミラーを構成し、Ｔ１３とＴ１４でカレントミラーを構成し、Ｔ１５とＴ１６でカレントミラーを構成する。図２２に示す回路では、一つの電流加算器４３１と、一つの電流減算器４３２と、一つの電流メモリ４３３を備え、Ｋ個の類似度評価セルから２ステップを分けて出力される類似度電流（IBSSE）をそれぞれ足し合わせ、その電流差を出力する。そのＫの値は、電流統合回路４２０に接続する類似度評価セルの回路数を制御することにより、柔軟に設計調整できる。
【０２１９】
電流統合回路４２０は、まず、Ｋ個の類似度評価セル（ＳＥＣ）から出力されるステップ１の検索データに対応する類似度電流を足し合わせ、スイッチＳ１（Ｓ２）をＯＮ（ＯＦＦ）にセットし、Ｔ１０とＴ１１で構成されるカレントミラーを用いて、得られた電流結果ITarを一時的に電流メモリ４３３に保存する。それから、Ｋ個の類似度評価セル（ＳＥＣ）から出力され、ステップ２の参照データに対応する類似度電流（ITem）を足し合わせ、スイッチＳ１（Ｓ２）をＯＦＦ（ＯＮ）にセットし、得られた電流結果ITemをＴ１０とＴ１２で構成されるカレントミラーでコピーして、保存しているITarとの差を計算し、検索データと参照データの最終類似度電流（ISCORE）としてタイムドメインコンバーター（ＴＤＣ）へ出力する。
【０２２０】
図２３は、図７などに示すタイムドメインコンバーター１３６の回路図である。タイムドメインコンバーター４４０は、１個のＣＭＯＳスイッチ４４１と、２個のインバータ４４２，４４３と、１個のＰ型ＭＯＳＦＥＴ４４４と、２個のＮ型ＭＯＳＦＥＴ４４５，４４６を備え、電流統合回路（ＣＡ）から出力される類似度電流（ISCORE）をTime-Domain電圧遅延信号に変換する。
【０２２１】
タイムドメインコンバーター４４０は、まず、Reset信号で出力をＧＮＤになるように初期化する。その後、タイムドメインコンバーター４４０は、ISCOREが入力されると同時に、ランプ（ＲＡＭＰ）信号の電圧が入力され、出力インバータ４４３の閾値を超えるまでスイッチング・ノードの電圧が下がると出力が立ち上がり、ISCOREに対応する遅延を持つＴＤ電圧遅延信号を生成する。
【０２２２】
図２４は、探索部３５０内のＴＤ−ＷＴＡ（Time-Domain Winner Take-All）回路４５０のブロック図である。図中、Ｃはメモリグレンの列数で、Ｎはデータの次元数であり、Ｃ／Ｎはメモリの１行分の参照データ数である。
【０２２３】
ＴＤ−ＷＴＡ回路４５０は、（Ｃ−Ｎ）／Ｎ個の２入力ＴＤ比較回路（2-Input Time-Domain Comparator）４５１から構成される√（Ｃ/Ｎ）レイヤを持つ最小値探索回路であり、並列にタイムドメインコンバーターから入力されるＣ／Ｎ個の参照データに対応するＣ／Ｎ個ＴＤ電圧遅延信号から一番遅延の短い（立ち上がりの早い）信号をローカルWinnerとして、そのWinnerアドレスと一緒に出力する回路である。
【０２２４】
ＴＤ−ＷＴＡ回路４５０は、まず、Ｃ／Ｎ個のＴＤ電圧遅延信号を２入力ＴＤ比較回路４５１に入れて、２個ずつ比較し、遅延の短いものを次のレイヤに渡すことにより、数段繰り返して一番遅延の短いＴＤ電圧遅延信号（ローカルWinner）を検索する。各２入力ＴＤコンパレータ４５１では、入力される２つのＴＤ遅延信号にFlagを付けてＦＦ回路４５２に保存し、そのFlagをエンコードして、Winnerに対応する参照データのアドレスを割り出す。最後に、ＴＤ−ＷＴＡ回路４５０は、ローカルWinnerとそのWinnerアドレスを一緒に最小値比較更新回路に出力する。
【０２２５】
図２５及び図２６は、最小値比較更新回路４６０の構成図であり、図２５はブランチコアで用いられるものであり、図２６はメインコアで用いられるものである。点線で示す部分は無効化している。
【０２２６】
最小値比較更新回路４６０は、１個のＷビットデジタルカウンタ４６１と、１個のＷビット・セレクタ４６２と、１個のＷビットデジタル加算器４６３と、グローバルWinnerとそのアドレスを保存するデジタルレジスタ４６４から構成され、ＴＤ−ＷＴＡ回路４５０から直列に入力されるローカルWinnerを前ステップで求めたものと比較してより小さいものを保存することで、一番小さいグローバルWinnerを求める回路である。
【０２２７】
最小値比較更新回路４６０は、まず、ＴＤ―ＷＴＡ回路４５０からローカルWinnerのＴＤ電圧遅延信号を受け取り、８ビット（Ｗ＝８）のデジタルカウンタで信号遅延をクロック数に変換し、ローカルWinnerのクロック数（ローカル最小値）を計算する。この変換は、デジタルカウンタがタイムドメインコンバーターにＲＡＭＰ電圧を入力する時点からカウントし始め、ＴＤ―ＷＴＡ回路４５０がローカルWinnerを計算すると同時に、完成する。
【０２２８】
ブランチコアでは、得られたローカルWinner（最小値）をメインコアに送る。メインコアでは、メインコア自身又はブランチコアから得られたローカルWinner(最小値)と、Winnerレジスタに保存しているグローバルWinner(最小値)を、デジタル加算器を用いて減算処理を行い、ＣＯＵＴ＝１の場合だけレジスタを上書きすることにより、いつも小さいグローバルWinner（最小値）を更新しつつ、最終的なグローバル最小値と該当の参照データＩＤを連想認識の結果として保存する。
【０２２９】
ただし、メインコア及び各ブランチコアに対して、メモリ領域である参照データ保存回路から、データ適応型類似度評価回路、２階層最小値探索回路まで、全部１クロックずつタイミングをずらしてパイプラインで実行する。それで、１クロック以内に、コアの１行分（Ｃ／Ｎ個）の参照データに対する連想認識が完成できる。
【０２３０】
実装例では、８data／クロックのThroughputが得られている。そして、同じ設計のコアを用いて、簡単にシステム拡張が可能である。
【０２３１】
図２７Ａは図１５で示す設計に従って作製したチップの写真の像を示し、図２７Ｂは図２７Ａに示す像を模式的に示し、図２７Ｃには設計スペックを示している。
【０２３２】
図２８は、類似度評価セルの回路動作の検証結果を示す図である。横軸はΔＶであり、図２２のＣＡで示すＶｔｅｍ−ＶＴａｒである。縦軸は電流Ｉｐｅａｋ，Ｉｔｅｍである。この図に示すように、リファレンス電圧Ｖｒｅｆに依らず同様な鐘形の波形となっていることが分かる。
【０２３３】
図２９は、３次元カラーベクトルデータ（Ｍ＝８、Ｎ＝３）構成での電流統合回路が出力する類似度電流の結果を示す図である。図に示すように、検索データ（ターゲット）により近い参照データ（テンプレート）はより低い類似度電流（ISCORE）が出力される。
【０２３４】
図３０は、１６次元データ構成でのコア動作を検証する波形を示す図であり、Texture認識の実証結果である。横軸は時間であり、縦軸は０Ｖ〜１Ｖの電圧である。システムをリセットした後、Ｄ／Ａ変換のデータ変換指令信号（Read Instruction of NFM）で示すように、検索データ（Target）となる「石」のTextureを入力してから、第１行目の参照データ（Template 1）である８個の「木板」Textureを入力し、一時的に電源ＯＦＦにした後、第２行目の参照データ（Template 2）となる８個の「石」Textureの参照データを入力する。参照データを入力し続ける間に、電流モードの類似度評価を行い、ランプ信号（Reference RAMP Signal）によって類似度電流が電圧ＴＤ遅延信号に変換され、1行の参照データの電圧ＴＤ遅延信号から一番類似度の高いＴＤ遅延信号（Updated TD Similarity Score）を出力する。それと同時に、出力されるＴＤ遅延信号（Updated TD Similarity Score）の遅延をクロック数に変換し、デジタル相違度（Similarity Score）として得られ、相違度の小さいものに更新して最終的なTextureについての連想認識に成功した。
【０２３５】
試作したチップでは、１２コアが実装され、１Ｖ電源電圧、４０ＭＨｚで動作でき、５マイクロ秒で１行分のデータ、即ち、Ｃ／Ｎ個の参照データに対する認識処理を完了することができた。リセットは０．５マイクロ秒かかり、検索データ入力は０．５マイクロ秒がかかった。なお、Ｃ＝１２８、Ｎ＝１６、Ｒ＝８である。
【０２３６】
図３１は、消費電力について、従来のアナログアプローチ及びデジタルアプローチと本実装例を比較した結果を示す図である。図から、本実装例では、消費電力が大幅に低下していることが分かる。
【０２３７】
図３２は、回路面積について、従来のアナログアプローチ及びデジタルアプローチと本実装例を比較した結果を示す図である。図から、回路面積が大幅に削減することができていることが分かる。
【０２３８】
以上、本発明の実施形態を説明したが、本発明は類似度評価部の構成を工夫しており、メモリ部、探索部、比較更新部の各具体的な回路構成については、本発明の実施形態に示す内容を実現できるものであればよく、図１５以降の図面で示したものは好ましい一つの例である。例えば、アナログ電圧最小値探索回路としては図３３に示すような、多入力端子と、一出力端子と、オペアンプと、抵抗Ｒ１、Ｒ２、Ｒ３を備え、抵抗Ｒ３の電圧を出力とするように回路構成すればよい。
【０２３９】
図３３は、アナログ電圧最小値探索回路の一例である。アナログ電圧最小値探索回路は、オペアンプの入力端の一方に、各電流統合回路の出力端に接続した抵抗からの出力電圧Ｔｉｎ１、Ｔｉｎ２、Ｔｉｎ３を入力する。オペアンプの入力端の一端と出力端との間には抵抗Ｒ１を接続し、オペアンプの出力端の電圧Ｖｐから出力電圧Ｔｉｎ１、Ｔｉｎ２、Ｔｉｎ３の端子へ抵抗Ｒ１に電流Ｉｂが流れるように、抵抗Ｒ１の一端とアナログ電圧最小値探索回路の３つの入力端との間にはそれぞれダイオードＤ１、Ｄ２、Ｄ３を介在させる。一方、オペアンプの入力端の他端とオペアンプの出力端との間には抵抗Ｒ２を接続し、オペアンプの出力端と抵抗Ｒ２との接続点には、ダイオードＤｏを介在させて抵抗Ｒ３の一端を接続し、抵抗Ｒ３の他端を接地する。これにより、オペアンプの入力端の他端と抵抗Ｒ２との接続点から抵抗Ｒ３に電流Ｉａが流れる。アナログ電圧最小値探索回路は、このような構成を採用することにより、入力された複数の電圧の最小値が、抵抗Ｒ３の両端間の電圧として出力される。
【０２４０】
上述の説明では、図７において縦線をコラムライン、横線をローラインとしているが、一方の方向に延びる線と他方の延びる線の何れか一方がコラムラインであり、他方がローラインとして定義されるものとする。つまり、コラムラインとローラインとが交差してれば、何れか一方がコラムラインであり、他方がローラインである。このことは、図７以外に示す構成図においても当てはまる。
【０２４１】
本発明の実施形態では、図７を参照して説明したように、メモリ装置１００が次の構成を備える。
即ち、メモリ装置１００が、Ｎ（≧１）次元からなり１次元がＭ（≧１）ビットからなる参照データが記憶されるメモリ領域１１３を備え、
メモリ領域１１３において１以上Ｎ以下の任意数のコラムライン１１７とＭ本のローライン１１５とにより指定される領域毎に、Ｍビットの不揮発性メモリを１単位として構成する任意数のメモリグレン１１９と、任意数のメモリグレン１１９に電力を供給するパワードライバー１１８とが組として備えられ、
パワードライバー１１８が、任意数のコラムライン１１７からの制御信号の入力と、Ｍ本のローライン１１５からの制御信号の入力と、クロック信号の入力とを受け、クロック信号に同期して、パワードライバー１１８と組となるメモリグレン１１９に電力を供給することにより、当該メモリグレン１１９に格納されている次元毎の参照データを読み出す。
【０２４２】
よって、各メモリグレン１１９は、コラムライン１１７及びローライン１１５による読み出し場所の指定とクロック信号による時間的な指定との双方により、電力が供給されることになり、省電力化が図られる。
【０２４３】
このようなメモリ装置１００において、例えば、Ｍ本のローライン１１５からの制御信号の入力は、１本乃至Ｍ本のうち所定本数毎に順番になされるとよい。Ｍ本のローライン１１５からの制御信号の入力は、同時になされるとよい。
【０２４４】
このようなメモリ装置１００において、パワードライバー１１８は、クロック信号の“１”又は“０”の入力を受けると、そのパワードライバー１１８と組となる任意数のメモリグレン１１９へ電力を供給しない一方、クロック信号の“０”又は“１”の入力を受けると、そのパワードライバー１１８と組となる任意数のメモリグレン１１９へ電力を供給して当該メモリグレン１１９に格納されている参照データを読み出す。よって、参照データの読み出しにおける消費電力を大幅に削減することができる。
【０２４５】
不揮発性メモリとしてはＳＴＴ−ＭＲＡＭを中心に説明したが、例えば次のような不揮発性メモリでもよい。不揮発性メモリは、磁気抵抗メモリ（MRAM: Magnetoresistive Random Access Memory）、抵抗変化型メモリ(ReRAM: Resistive Random Access Memory)、強誘電体メモリ (FeRAM: Ferroelectric Random Access Memory)、フラッシュメモリなどの不揮発メモリで構成してもよい。
【０２４６】
磁気抵抗メモリは、スピントロニクスを利用し、GMR効果（Giant Magneto Resistive effect）を動作原理とする不揮発性メモリである。例えば、磁壁移動型ＭＲＡＭ、スピンホールトルク型ＭＲＡＭ、スピン注入型ＭＲＡＭ（ＳＴＴ−ＲＭＡＭ）などから選択される。磁壁移動型ＭＲＡＭは、微小磁性体内の磁壁を行き来させることで磁化を反転させる３端子ＭＲＡＭである。スピンホールトルク型ＭＲＡＭは、非磁性体からのスピンホールトルクによって磁化反転させる３端子ＭＲＡＭである。ＳＴＴ−ＲＭＡＭは、磁性体に電流を通じ、電子スピンとの相互作用で磁化回転をさせる２端子ＭＲＡＭである。何れも、高密度と高速度と長い寿命が期待される。
【０２４７】
抵抗変化型メモリは、電圧の印加による金属酸化物中の電気抵抗の変化を利用してデータを記憶する不揮発メモリである。高密度と高速化が期待される。
【０２４８】
強誘電体メモリは、強誘電体のヒステリシス効果に因る正負の残留分極を利用してデータを記憶する不揮発性メモリである。高速化と、長い寿命が期待できる。
【０２４９】
フラッシュメモリは、電圧制御で、ＭＯＳのフローティングゲートに電荷を閉じ込めることでＭＯＳ閾値を変化させてデータを記憶する不揮発メモリである。高密度化を期待できる。
【０２５０】
本発明の実施形態では、パワーゲートによりメモリグレンからデータの読み出しの際の消費電力を低く抑えることができるが、柔軟に最適化した電力を供給することができるので、書き込み時においても同様な低電力化効果が得られる。
【符号の説明】
【０２５１】
１０：検索データ
２０：特徴ベクトルデータ
３０：参照データ
１００：メモリ装置
１１０：メモリ部（参照データ保存回路）
１１１：ローデコーダ
１１２：コラムデコーダ
１１３：メモリ領域
１１４：読出／書込回路
１１５：ローライン
１１６：ビットライン
１１７：コラムライン
１１８：パワードライバー
１１９：メモリグレン
１３０：類似度評価部
１３１：入力検索データ保存回路
１３２：デジタル／アナログコンバーター（ＤＡＣ）
１３３：類似度評価セル（ＳＥＣ）
１３３ａ：セル群
１３４：切替スイッチ
１３４ａ：第１のスイッチ
１３４ｂ：第２のスイッチ
１３４ｃ：否定回路
１３５：電流統合回路（ＣＡ）
１３６：タイムドメインコンバーター（ＴＤＣ）
１５０：探索部
１５１：タイムドメイン最小値探索回路
１７０：比較更新部
１７１：最小値比較更新回路
２００：メモリシステム
２１０；メインコア
２１１：メインコアの参照データ保存回路（メモリ部）
２１２：メインコアのデータ適応型電流モード類似度評価回路（類似度評価部）
２１３：メインコアのタイムドメイン最小値探索回路（探索部）
２１４：メインコアの最小値比較更新回路（比較更新部）
２１５：メインコアの出力用バッファー
２２０：ブランチコア
２２１：ブランチコアの参照データ保存回路（メモリ部）
２２２：ブランチコアのデータ適応型電流モード類似度評価回路（類似度評価部）
２２３：ブランチコアのタイムドメイン最小値探索回路（探索部）
２２４：ブランチコアの最小値比較更新回路（比較更新部）
２２５：ブランチコアの出力用バッファー
３００：メモリ装置
３１０：メモリ部
３１１：ローデコーダ
３１２：コラムデコーダ
３１３：メモリ領域
３１４：読出／書込回路
３１５：ローライン
３１６：ビットライン
３１７：コラムライン
３１８：パワードライバー
３１９：メモリグレン
３２０：４Ｔ−２ＭＴＪメモリセル
３２１〜３２４：Ｎ型ＭＯＳＦＥＴ
３２５，３２６：ＭＴＪ
３２７：ＷＲＩ回路
３２７Ａ：書込ドライバ回路
３２７Ｂ：プレチャージ（Precharge）回路
３２７Ｃ：センスアンプ（Sense Amplifier）回路
３２７Ｄ：デジタルレジスタ（Register）回路
３３０：類似度評価部
３３２：デジタル／アナログコンバーター（ＤＡＣ）
３３３：類似度評価セル（ＳＥＣ）
３３４：切替スイッチ
３３４ａ：第１のスイッチ
３３４ｂ：第２のスイッチ
３３４ｃ：否定回路
３３５：電流統合回路（ＣＡ）
３３６：タイムドメインコンバーター（ＴＤＣ）
３５０：探索部
３５１：タイムドメイン最小値探索回路
３７０：比較更新部
３７１：最小値比較更新回路
【図１Ａ】
2017195874.tif 000003
【図１Ｂ】
2017195874.tif 000004
【図２】
2017195874.tif 000005
【図３】
2017195874.tif 000006
【図４】
2017195874.tif 000007
【図５】
2017195874.tif 000008
【図６】
2017195874.tif 000009
【図７】
2017195874.tif 000010
【図８】
2017195874.tif 000011
【図９】
2017195874.tif 000012
【図１０】
2017195874.tif 000013
【図１１Ａ】
2017195874.tif 000014
【図１１Ｂ】
2017195874.tif 000015
【図１１Ｃ】
2017195874.tif 000016
【図１１Ｄ】
2017195874.tif 000017
【図１２】
2017195874.tif 000018
【図１３】
2017195874.tif 000019
【図１４】
2017195874.tif 000020
【図１５】
2017195874.tif 000021
【図１６】
2017195874.tif 000022
【図１７Ａ】
2017195874.tif 000023
【図１７Ｂ】
2017195874.tif 000024
【図１７Ｃ】
2017195874.tif 000025
【図１８】
2017195874.tif 000026
【図１９】
2017195874.tif 000027
【図２０】
2017195874.tif 000028
【図２１】
2017195874.tif 000029
【図２２】
2017195874.tif 000030
【図２３】
2017195874.tif 000031
【図２４】
2017195874.tif 000032
【図２５】
2017195874.tif 000033
【図２６】
2017195874.tif 000034
【図２７Ａ】
2017195874.tif 000035
【図２７Ｂ】
2017195874.tif 000036
【図２７Ｃ】
2017195874.tif 000037
【図２８】
2017195874.tif 000038
【図２９】
2017195874.tif 000039
【図３０】
2017195874.tif 000040
【図３１】
2017195874.tif 000041
【図３２】
2017195874.tif 000042
【図３３】
2017195874.tif 000043
【国際調査報告】
2017195874.tif 000044
2017195874.tif 000045