特許第6149246号(P6149246)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧 ▶ 国立大学法人東北大学の特許一覧

<>
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000002
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000003
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000004
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000005
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000006
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000007
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000008
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000009
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000010
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000011
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000012
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000013
  • 特許6149246-不揮発性連想メモリ及びその動作方法 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6149246
(24)【登録日】2017年6月2日
(45)【発行日】2017年6月21日
(54)【発明の名称】不揮発性連想メモリ及びその動作方法
(51)【国際特許分類】
   G11C 15/04 20060101AFI20170612BHJP
   G11C 15/02 20060101ALI20170612BHJP
   G11C 11/15 20060101ALI20170612BHJP
【FI】
   G11C15/04 631E
   G11C15/02
   G11C15/04 601R
   G11C15/04 601W
   G11C11/15 110
【請求項の数】18
【全頁数】17
(21)【出願番号】特願2014-534257(P2014-534257)
(86)(22)【出願日】2013年8月1日
(86)【国際出願番号】JP2013071442
(87)【国際公開番号】WO2014038340
(87)【国際公開日】20140313
【審査請求日】2016年7月7日
(31)【優先権主張番号】特願2012-195959(P2012-195959)
(32)【優先日】2012年9月6日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(73)【特許権者】
【識別番号】504157024
【氏名又は名称】国立大学法人東北大学
(74)【代理人】
【識別番号】100077838
【弁理士】
【氏名又は名称】池田 憲保
(74)【代理人】
【識別番号】100129023
【弁理士】
【氏名又は名称】佐々木 敬
(72)【発明者】
【氏名】崎村 昇
(72)【発明者】
【氏名】根橋 竜介
(72)【発明者】
【氏名】杉林 直彦
(72)【発明者】
【氏名】松永 翔雲
(72)【発明者】
【氏名】羽生 貴弘
(72)【発明者】
【氏名】大野 英男
【審査官】 滝谷 亮一
(56)【参考文献】
【文献】 国際公開第2002/056315(WO,A1)
【文献】 特開昭62−293596(JP,A)
【文献】 特開昭63−31091(JP,A)
【文献】 特開平11−86567(JP,A)
【文献】 特開平4−186596(JP,A)
【文献】 特開昭59−116992(JP,A)
【文献】 特開2012−190530(JP,A)
【文献】 特開2013−200920(JP,A)
【文献】 特開平2−308499(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 15/04
G11C 15/02
G11C 11/15
(57)【特許請求の範囲】
【請求項1】
外部から入力されるサーチデータと、予め格納したストレージデータとを比較する不揮発性連想メモリにおいて、
複数のワード回路からなり、前記複数のワード回路は、それぞれ、順序関係を有する複数のセグメントからなり、前記複数のセグメントはそれぞれ一乃至複数のメモリセルを備え、前記一乃至複数のメモリセルはそれぞれ不揮発性記憶素子を備え、
前記複数のセグメントは、それぞれ、当該セグメントのメモリセルの電源をオンオフする電源スイッチ手段を備え、
スタンバイ時にすべての前記電源スイッチ手段をオフにし、
検索動作時に必要に応じてセグメント毎に電源スイッチ手段をオンにする
ことを特徴とする不揮発性連想メモリ。
【請求項2】
前記複数のセグメントは、それぞれ、前記ストレージデータの一部として当該セグメントのメモリセルに格納されたストレージセグメントデータと、当該ストレージセグメントデータに対応する前記サーチデータの一部であるサーチセグメントデータとを比較して、一致及び不一致のいずれかを判定するセンスアンプを備え、
前記複数のワード回路のそれぞれで前記順序関係の順にセグメント毎にセンスアンプでの判定を実行し、
前記電源スイッチ手段は、前記順序関係で自セグメントよりも先のセグメントに属するすべてのセンスアンプが一致の判定をした場合に限り、当該セグメントのメモリセルの電源をオンにする
ことを特徴とする請求項1に記載の不揮発性連想メモリ。
【請求項3】
前記複数のワード回路は、それぞれ、第1のセグメントと、前記順序関係にて前記第1のセグメントの直後に続く第2のセグメントを備え、
前記複数のワード回路それぞれの前記第1のセグメントは互いに同期して動作し、前記複数のワード回路それぞれの前記第2のセグメントは互いに同期して動作する
ことを特徴とする請求項1及び請求項2のいずれかに記載の不揮発性連想メモリ。
【請求項4】
前記複数のワード回路は、それぞれ、第1のセグメントと、前記順序関係にて前記第1のセグメントの直後に続く第2のセグメントを備え、
前記第2のセグメントの電源スイッチ手段は、前記第1のセグメントのセンスアンプの出力信号と、前記第2のセグメントの検索動作をイネーブルにする制御信号とが入力され、
前記出力信号及び制御信号の値が予め定められた値の組み合わせとなる場合に限り、前記第2のセグメントの電源スイッチ手段はオン状態になる
ことを特徴とする請求項1乃至請求項3のいずれかに記載の不揮発性連想メモリ。
【請求項5】
前記複数のワード回路は、それぞれ、第1のセグメントと、前記順序関係にて前記第1のセグメントの直後に続く第2のセグメントを備え、
前記第2のセグメントのセンスアンプは、前記第1のセグメントのセンスアンプの出力信号と、前記第2のセグメントの検索動作をイネーブルにする制御信号とが入力され、
前記出力信号及び制御信号の値が予め定められた値の組み合わせとなる場合に限り、前記第2のセグメントのセンスアンプは前記判定を実行する
ことを特徴とする請求項1乃至請求項4のいずれかに記載の不揮発性連想メモリ。
【請求項6】
前記メモリセルは、それぞれ、4つの異なる状態、即ち、“データ0”、“データ1”、“Don‘t Care”、及び、“強制不一致”のいずれかひとつを記憶可能であり、
“Don‘t Care”を記憶している場合、前記メモリセルは、当該メモリセルに入力されたサーチデータに関わらず、“一致”に相当する電圧を出力し、
“強制不一致”を記憶している場合、前記メモリセルは、当該メモリセルに入力されたサーチデータに関わらず“不一致”に相当する電圧を出力する
ことを特徴とする請求項1乃至請求項5のいずれかに記載の不揮発性連想メモリ。
【請求項7】
前記メモリセルは、それぞれ、2つの異なる状態のいずれか一方を記憶可能な不揮発性記憶素子を2つ備え、これら2つの不揮発性記憶素子の出力の組み合わせにより、前記4つの異なる状態を記憶することを特徴とする請求項6に記載の不揮発性連想メモリ。
【請求項8】
前記複数のワード回路は、それぞれ、第1のセグメントと、前記順序関係にて前記第1のセグメントの直後に続く第2のセグメントを備え、
前記第1のセグメントに属するメモリセルに格納される予め定められたビットを、前記第2のセグメントの有効化及び無効化のいずれかを示すビットとして割り当て、
前記第2のセグメントの有効化を示す際には、前記ビットを“Don’t Care”の状態に設定し、
前記第2のセグメントの無効化を示す際には、前記ビットを“強制不一致”の状態に設定する
ことを特徴とする請求項6及び請求項7のいずれかに記載の不揮発性連想メモリ。
【請求項9】
前記不揮発性記憶素子は、磁気抵抗素子、相変化素子、原子移動型素子、酸素欠損型抵抗変化素子、金属架橋形成型抵抗変化素子及びその他の抵抗変化素子のいずれかであることを特徴とする請求項1乃至請求項8のいずれかに記載の不揮発性連想メモリ。
【請求項10】
外部から入力されるサーチデータと、予め格納したストレージデータとを比較する不揮発性連想メモリの動作方法において、
前記不揮発性連想メモリを構成する複数のワード回路のそれぞれを、それぞれが一乃至複数のメモリセルからなり、同一ワード回路内での順序関係を有する複数のセグメントに分割するとき、
スタンバイ時に前記複数のセグメントのすべての電源をオフにするスタンバイ段階と、
検索動作時に必要に応じてセグメント毎に電源をオンにする検索段階と
を含むことを特徴とする不揮発性連想メモリの動作方法。
【請求項11】
前記複数のセグメントのひとつを第1のセグメントと呼び、前記複数のセグメントのひとつであって、前記順序関係において前記第1のセグメントの直後のセグメントを第2のセグメントと呼ぶものとするとき、前記検索段階は、
前記第1のセグメント及び前記順序関係にて前記第1のセグメントよりも前のセグメント、即ち前記第1のセグメント以前のセグメントのそれぞれにて、当該セグメントのメモリセルに格納されたストレージデータの一部と、当該ストレージデータの一部に対応する前記サーチデータの一部とを比較して、一致及び不一致のいずれかを判定する段階と、
前記第1のセグメント以前のセグメントでの判定がすべて一致の場合に限り、前記第2のセグメントのメモリセルの電源をオンにする段階と
を含むことを特徴とする請求項10に記載の不揮発性連想メモリの動作方法。
【請求項12】
前記複数のワード回路それぞれの前記第1のセグメントは互いに同期して前記第1の判定を行い、前記複数のワード回路それぞれの前記第2のセグメントは互いに同期して前記第2の判定を行うことを特徴とする請求項10及び請求項11のいずれかに記載の不揮発性連想メモリの動作方法。
【請求項13】
前記第1のセグメントでの判定結果を示す信号、及び、前記第2のセグメントでの検索動作をイネーブルにする制御信号の値が予め定められた組み合わせとなる場合に限り、前記第2のセグメントのメモリセルの電源をオンにすることを特徴とする請求項10乃至請求項12のいずれかに記載の不揮発性連想メモリの動作方法。
【請求項14】
前記第1のセグメントでの判定結果を示す信号、及び、前記第2のセグメントでの検索動作をイネーブルにする制御信号の値が予め定められた組み合わせとなる場合に限り、前記第2のセグメントのメモリセルに格納されたストレージデータの一部と、当該ストレージデータの一部に対応する前記サーチデータの一部とを比較して、一致及び不一致のいずれかを判定することを特徴とする請求項10乃至請求項13のいずれかに記載の不揮発性連想メモリの動作方法。
【請求項15】
前記メモリセルは、それぞれ、4つの異なる状態、即ち、“データ0”、“データ1”、“Don‘t Care”、及び、“強制不一致”のいずれかひとつを記憶可能であり、
“Don‘t Care”を記憶している場合、前記メモリセルは、当該メモリセルに入力されたサーチデータに関わらず、“一致”に相当する電圧を出力し、
“強制不一致”を記憶している場合、前記メモリセルは、当該メモリセルに入力されたサーチデータに関わらず“不一致”に相当する電圧を出力する
ことを特徴とする請求項10乃至請求項14のいずれかに記載の不揮発性連想メモリの動作方法。
【請求項16】
前記メモリセルは、それぞれ、2つの異なる状態のいずれか一方を記憶可能な不揮発性記憶素子を2つ備え、これら2つの不揮発性記憶素子の出力の組み合わせにより、前記4つの異なる状態を記憶することを特徴とする請求項15に記載の不揮発性連想メモリの動作方法。
【請求項17】
前記第1のセグメントに属するメモリセルに格納される予め定められたビットを、前記第2のセグメントの有効化及び無効化のいずれかを示すビットとして割り当て、
前記第2のセグメントの有効化を示す際には、前記ビットを“Don’t Care”の状態に設定し、
前記第2のセグメントの無効化を示す際には、前記ビットを“強制不一致”の状態に設定する
ことを特徴とする請求項15及び請求項16のいずれかに記載の不揮発性連想メモリの動作方法。
【請求項18】
前記不揮発性記憶素子は、磁気抵抗素子、相変化素子、原子移動型素子、酸素欠損型抵抗変化素子、金属架橋形成型抵抗変化素子及びその他の抵抗変化素子のいずれかであることを特徴とする請求項10乃至請求項17のいずれかに記載の不揮発性連想メモリの動作方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連想メモリ(CAM:Content Addressable Memory)に関する。本発明は、特に、記憶素子として不揮発性記憶素子を利用するCAMに関する。
【背景技術】
【0002】
CAMは入力データ(検索データ)と記憶データとの比較を行い、一致した記憶データのアドレスを出力する。一般的にCAMは、この比較動作を全ての記憶データに対して並列に行うため、高速にデータを検索できる。こうした機能を有するCAMは、幅広い領域で利用されており、例えば、ネットワークルータやキャッシュメモリなどで利用されている。
CAMの記憶素子としては、SRAM(Static Random Access Memory)をベースとしたCAMセルが広く知られている。CAMセルとしては、2つの論理状態“0”、“1”を記憶できるものと、3つの論理状態“0”、“1”、“X”を記憶できるものが知られている。前者は単にCAMセル、あるいはバイナリCAMセルと呼ばれ、後者は、TCAM(Ternary CAM)セルとも呼ばれている。ここで、“X”状態のビットは“Don’t care”を意味し、検索データとして“0”が入力されても“1”が入力されても一致とみなされる。
SRAMをベースとしたこれらのCAMセルは、高速に、例えば、数nsでデータ検索を実行できる。一方、その検索動作において、入力される検索ワードに対して全てのストレージワードを活性化させてビット比較する必要があり、動作電力が非常に大きくなっている。
検索動作時におけるCAMの消費電力を削減する手法として、検索動作をいくつかのサイクルに分割してパイプライン的に実行し、先に不一致と判定されたワードに対しては、残りのビットを評価しない手法が非特許文献1に開示されている。この手法によれば、nビットのCAMセルで構成されるワード回路を複数有するCAMセルアレイに対して、いくつかのセグメントに分割し、セグメント毎にビット比較を行う。先に一致と判定されたワードに対しては次段のセグメントのビット比較動作を活性化させる。一方、不一致と判定されたワードに対しては次段のセグメントにおけるビット比較動作を実行させない。以上の動作を逐次的に繰り返すことにより、無駄なビット検索動作を削除することが可能となる。検索動作に係る時間が増加するものの、その動作電力を格段に下げることが可能である。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】“Content−Addressable Memory(CAM)Circuits and Architectures: A Tutorial and Survey”(IEEE Journal of Solid−State Circuits,Vol.41,No.3,March,2006
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1に記載の従来のSRAMベースのCAMによれば、検索動作が不要の時間帯においても、ストレージデータ(被検索データ)保持のためにその電源を投入し続ける必要がある。
典型的なSRAMベースのCAMセルにおいては、ストレージデータを保持するためのSRAMセルを含んでいる。バイナリCAMセルは1個のSRAMセルが必要であり、TCAMセルにおいては、2個のSRAMセルが必要である。データ保持のために個々のSRAMで消費されるリーク電流は微少であるが、CAMセルは2次元的に大量に配置されるためにこのリーク電流が大きな待機電流の主原因になる。
検索動作時におけるCAMの消費電力を削減する他の手法として、非動作時にCAMの電源を遮断する方法が考えられる。しかし、SRAMベースのCAMセルは揮発性なので電源遮断により被検索データが失われてしまう。CAMの電源を遮断する直前に、全ての被検索データを別途具備されるストレージデバイスに転送、保存することでこれを回避可能である。しかしながら、電源遮断、及び投入する度に、CAMとストレージデバイス間のデータ転送が必要となる。このデータ転送のために待ち時間が発生し、利便性を損ねてしまう。また、データ転送のための消費電力のオーバヘッドも生じること、電源オン/オフの制御の複雑さが増すこと等から、本手法の適用は限定的となる。
本発明はこのような状況に鑑みてなされたものであり、本発明が解決しようとする課題は、消費電力を低減した不揮発性連想メモリを提供することである。
【課題を解決するための手段】
【0005】
上述の課題を解決するため、本発明は、その一態様として、外部から入力されるサーチデータと、予め格納したストレージデータとを比較する不揮発性連想メモリにおいて、複数のワード回路からなり、前記複数のワード回路は、それぞれ、順序関係を有する複数のセグメントからなり、前記複数のセグメントはそれぞれ一乃至複数のメモリセルを備え、前記一乃至複数のメモリセルはそれぞれ不揮発性記憶素子を備え、前記複数のセグメントは、それぞれ、当該セグメントのメモリセルの電源をオンオフする電源スイッチ手段を備え、スタンバイ時にすべての前記電源スイッチ手段をオフにし、検索動作時に必要に応じてセグメント毎に電源スイッチ手段をオンにすることを特徴とする不揮発性連想メモリを提供する。
また、本発明は、他の一態様として、外部から入力されるサーチデータと、予め格納したストレージデータとを比較する不揮発性連想メモリの動作方法において、前記不揮発性連想メモリを構成する複数のワード回路のそれぞれを、それぞれが一乃至複数のメモリセルからなり、同一ワード回路内での順序関係を有する複数のセグメントに分割するとき、スタンバイ時に前記複数のセグメントのすべての電源をオフにするスタンバイ段階と、検索動作時に必要に応じてセグメント毎に電源をオンにする検索段階とを含むことを特徴とする不揮発性連想メモリの動作方法を提供する。
【発明の効果】
【0006】
本発明に係る不揮発性連想メモリによれば、検索動作時の消費電力を低減することができる。
【図面の簡単な説明】
【0007】
図1は本発明の実施の形態に係る不揮発性CAMの構成を概略的に示すブロック図である。
図2は本発明の実施の形態に係る不揮発性CAMにおけるワード回路構成を示すブロック図である。
図3は不揮発性CAMセルの一例を示す回路図である。
図4図3の不揮発性CAMセルに利用される一例のMTJ素子の断面図である。
図5図3の不揮発性CAMセルの動作真理値表である。
図6は本発明の実施の形態に係るCAMにおけるセルアレイの回路図である。
図7は本発明の実施の形態に係るCAMの動作モード真理値表である。
図8は本発明の実施の形態に係るCAMのサーチ動作におけるタイミングチャートである。
図9は本発明の実施の形態に係るCAMのサーチ動作における電源制御の一例である。
図10は本発明の実施の形態に係るCAMのサーチ動作における消費電力の推移である。
図11は本発明の第2の実施の形態に係るCAMのワード回路構成を示すブロック図である。
図12は本発明の第2の実施の形態に係るCAMのサーチ動作におけるタイミングチャートである。
図13は本発明の第2の実施の形態に係るCAMのサーチ動作における電源制御の一例である。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら具体的に本発明の実施の形態について詳述する。なお、本実施の形態においては、説明の便宜上、バイナリCAM、ターナリCAMの区別をせず、単にCAMと呼ぶこととする。
(第1の実施の形態)
図1は、本実施の形態に係る不揮発性CAMの構成を概略的に示すブロック図である。本実施の形態に係る不揮発性CAMは、CAMアレイと、その周辺に配置されるワード線ドライバ、センスアンプ、アドレスエンコーダ、ビット線ドライバ、サーチ線ドライバ、及び、コントローラを備えている。
CAMアレイは、X方向の一行に配置される複数のワード回路がから構成され、さらに、複数のセグメントに分割されている。すなわち、図2に示すように、各々のワード回路は複数のセグメント、セグメント0、セグメント1、・・・に分割される。各々のセグメントは、複数のCAMセルと電源スイッチ、センスアンプから構成される。
ここで、電源スイッチは、セグメント内の全てのCAMセルの電源(V_Vdd)をオン/オフさせる機能を有する。電源スイッチSW0はセグメント0内のすべてのCAMセルの電源V_Vdd0を一括してオン/オフさせる。同様に、電源スイッチSW1はセグメント1内のすべてのCAMセルの電源V_Vdd1を一括してオン/オフさせる。不図示の他セグメントの電源スイッチSW2、SW3、・・・も同様である。
センスアンプは、セグメント内のマッチ線(ML)の電圧と参照電圧Vrefを比較し、論理振幅に増幅させる機能を有する。具体的には、マッチ線が参照電圧よりも高ければハイレベル(一致に相当)を、低ければローレベル(不一致に相当)を出力する。この増幅動作は、クロック信号SCLKに同期して実行される。即ち、センスアンプSA0はセグメント0内のマッチ線ML0の電圧と参照電圧Vrefを比較し、マッチ線ML0が参照電圧Vrefよりも高電圧ならばハイレベルを出力し、低電圧ならばローレベルを出力する。同様に、センスアンプSA1はセグメント1内のマッチ線ML1の電圧と参照電圧Vrefを比較し、マッチ線ML1が参照電圧Vrefよりも高電圧ならばハイレベルを出力し、低電圧ならばローレベルを出力する。不図示の他のセグメントのセンスアンプSA2、SA3、・・・も同様である。
センスアンプの出力は次段のセグメントの電源スイッチ、及び、センスアンプの制御信号として作用する。例えば、センスアンプSA0の出力は電源スイッチSW1及びセンスアンプSA1の制御信号として作用する。セグメントSA1、SA2、・・・の出力についても同様である。最後のセグメントのセンスアンプの出力は、これらセグメント0、1、・・・からなるワードに格納されたストレージデータの一部と、そのストレージデータに対応するサーチデータの一部とが一致したか否かを示す。
本実施の形態における不揮発性CAMセルの一例を図3に示す。本CAMセルは、磁気抵抗素子(MTJ(Magnetic Tunnel Junction)素子)のペアを含む比較回路、比較結果をマッチ線に伝送する伝送手段、MTJ素子に書き込み電流を供給するための電流スイッチから構成される。比較回路は、トランジスタM1、M2、M5とMTJ素子のペアRjとRjbから構成されている。伝送手段はダイオード接続されたトランジスタM6で構成される。トランジスタM3、M4は電流スイッチである。
上記比較回路は、トランジスタM1のゲートにサーチ線SLが接続され、トランジスタM2のゲートにサーチ線/SLが接続されている。また、M1のソース端子n2にMTJ素子Rjの一方の端子が接続され、M2のソース端子n3にMTJ素子Rjbの一方の端子が接続されている。また、M5は、そのゲートにバイアス電圧Vbが印加される定電流源であり、M5のソース端子はV_Vdd、ドレイン端子n1は、M1のドレイン端子とM2のドレイン端子が接続されている。また、MTJ素子Rjのもう一方の端子と、Rjbのもう一方の端子とが共にプレート線PLに接続されている。
上記伝送手段であるダイオード接続されたトランジスタM6は、そのソース端子がn1に、ドレイン端子とゲート端子がマッチ線MLに接続されている。
上記電流スイッチであるトランジスタM3、及び、M4のゲートにワード線WLが接続されている。また、M3のソース端子がビット線BLに接続され、ドレイン端子がn2に接続されている。また、M4のソース端子がビット線/BLに接続され、ドレイン端子がn3に接続されている。MTJ素子に被検索データを書き込む際に、ワード線を活性化してM3とM4をオンの状態にすることで、ビット線、あるいはプレート線からMTJ素子に書き込み電流を供給可能とする。
本CAMセルに組み込まれるMTJ素子Rj、Rjbの断面図を図4に示す。これらMTJ素子は、トンネル膜で絶縁される2枚の磁性層から成り、配線プロセスの層間膜中に形成される。一方の磁性層(固定磁性層)の磁化は製造時にその向きが固定化されており、もう一方の磁性層(自由磁性層)の磁化はMTJに供給される書き込み電流によって可変である。自由磁性層と固定磁性層の磁化が同じ向きである平行状態である時、上部−下部電極間のMTJ素子抵抗は低抵抗状態(R)となる。逆に、それぞれの磁化が反対方向である反平行状態の時、MTJ素子抵抗は高抵抗状態となる(R)。ここで、MTJ素子抵抗が低抵抗状態の時にデータ“0”、高抵抗状態の時にデータ“1”が保存されていると定義する。MTJ素子に“0”を書き込む場合、自由磁性層から固定磁性層の向きに所定値以上の電流を供給することで磁化が平行状態に遷移し、低抵抗化する。一方、“1”を書き込む場合、固定磁性層から自由磁性層の向きに所定値以上の電流を供給することで磁化が反平行状態に遷移し、高抵抗化する。
本CAMセルには、2本のサーチ線SL、/SLがトランジスタM1とM2のゲートにそれぞれ接続されており、SLと/SLには検索したいデータの1ビットが相補的に入力される。検索動作では、MTJ素子RjとRjbに格納される1ビットのストレージデータと、SL、及び/SLから入力されるサーチデータとが比較され、トランジスタM6を通じてマッチ線MLに比較結果が伝送される。
図5は、本CAMセルの検索動作における真理値表を示している。サーチデータの任意のビットが“0”(SL線がローレベル、/SL線がハイレベル)で、ストレージデータの当該ビットが“0”の時(Rjが低抵抗、Rjbが高抵抗)、トランジスタM2がオンとなって高抵抗状態のRjbが選択され、マッチ線MLはハイレベル(一致)が出力される。また、サーチデータの任意のビットが“0”で、ストレージデータの当該ビットが“1”の時(Rjが高抵抗、Rjbが低抵抗)、低抵抗状態のRjbが選択され、MLはローレベル(不一致)が出力される。また、サーチデータの任意のビットが“1”(SL線がハイレベル、/SL線がローレベル)で、ストレージデータの当該ビットが“0”の時(Rjが低抵抗、Rjbが高抵抗)、トランジスタM1がオンとなって低抵抗状態のRjが選択され、MLはローレベル(不一致)が出力される。また、サーチデータの任意のビットが“1”で、ストレージデータの当該ビットが“1”の時(Rjが高抵抗、Rjbが低抵抗)、高抵抗状態のRjが選択され、MLはハイレベル(一致)が出力される。
さらに、本CAMセルは、サーチデータやストレージデータのビットを“Don‘t Care”にすることができる。例えば、MTJ素子RjとRjbを共に高抵抗化することで、ストレージデータの任意のビットを“Don’t Care”にすることができ、サーチデータのビットが“0”でも“1”でもMLはハイレベル(一致)が出力される。また、SL線と/SL線の両方をローレベルに印加することで、サーチデータの任意ビットを“Don‘t Care”にすることができ、ストレージデータのビットが“0”でも“1”でもMLはハイレベル(一致)が出力される。
さらに、本CAMセルは、MTJ素子RjとRjbを共に低抵抗化することで、強制的に不一致させることができる。
図6は、図3で図示した不揮発性CAMセルをマトリックス状に配置してアレイ化した場合の回路構成図であり、セグメント0におけるワード回路二行分のみを図示している(セグメント1、セグメント2・・は省略している)。ここで、ML0[0]は、セグメント0におけるワード0のマッチ線を表し、ML0[1]は、セグメント0におけるワード1のマッチ線を表わしている。同様に、V_Vdd0[0]は、セグメント0におけるワード0の電源線を表し、V_Vdd0[1]は、セグメント0におけるワード1の電源線を表わしている。電源スイッチSW0[0]はセグメント0におけるワード0の電源スイッチであり、電源スイッチSW0[1]はセグメント0におけるワード1の電源スイッチである。
すなわち、ML0[0]、及びV_Vdd0[0]は、セグメント0におけるワード0のCAMセルで共有化され、ML0[1]、及びV_Vdd0[1]は、同セグメントにおけるワード1のCAMセルで共有化される。また、ML0[0]はセグメント0におけるワード0の不図示のセンスアンプSA0[0]に入力され、ML0[1]はセグメント0におけるワード1の不図示のセンスアンプSA0[1]に入力される。また、V_Vdd0[0]はセグメント0におけるワード0の電源スイッチSW0[0]に接続され、V_Vdd0[1]はセグメント0におけるワード1の電源スイッチSW0[1]に接続される。
図6において、WL[0]はワード0のワード線を表し、WL[1]はワード1のワード線を表わしている。同様に、PL[0]はワード0のプレート線、PL[1]はワード1のプレート線を表わしている。すなわち、ワード線WL[i]、及びプレート線PL[i]は、X方向に延在し、ワード回路毎にセグメントに跨って共有されている(ここで、iはワード番号を示す)。
図6において、ビット線BL[j]、及び/BL[j]は、Y方向に延在し、ワードに跨って共有されている(ここで、jはビット番号を示す)。同様に、サーチ線SL[j]、及び/BL[j]は、Y方向に延在し、ワードに跨って共有されている。
図7は、本実施の形態におけるCAMの動作真理値表を示している。以下、図面を参照しながら本実施の形態におけるCAMの各動作モードについて説明する。ここで、CAMセルアレイは、図1のようにセグメントが4分割されていると仮定する。即ち、ワード0、1、・・・はそれぞれセグメント0、セグメント1、セグメント2、セグメント3の4つに分割されるものとする。
スタンバイ・モードにおいては、リセット信号/RSTがローレベルであり、ワード回路内の全てのセンスアンプの状態は初期化(クリア)される。この時、ワード線ドライバは、全てのサーチイネーブル信号SEi、ワード線WLi、プレート線PLiを接地する。また、ビット線ドライバは、全てのビット線BLi、/BLiを接地する。また、サーチ線ドライバは、全てのサーチ線SLi、/SLiを接地する。スタンバイ・モードでは、全てのSEiが非活性状態であるので、初段のセグメントの全ての電源スイッチはオフの状態である。また、各セグメントのセンスアンプがクリアされ、且つ、各々のセンスアンプを駆動するクロック信号SCLKも活性化されないため、2段目移行のセグメントの全ての電源スイッチもオフの状態である。すなわち、全てのCAMセルの電源は非導通の状態である。従って、待機電力の主要因であるCAMセルのリーク電流をほぼゼロにする。ここで、ストレージデータは、各々のCAMセルのMTJ素子の抵抗値で保持されるため、電源を切断しても失われることはない。
次に、図8に示すタイミングチャートを参照しながらサーチ動作について詳述する。サーチ動作の命令が入力されると、少なくとも4サイクルの逐次動作によってサーチ動作が実施される。
サイクル1においては、セグメント0のサーチ動作が開始される。まず、/RST信号は非活性化され(ハイレベル)、センスアンプはSCLK信号によって動作可能な状態になる。また、ワード線ドライバは、全てのサーチイネーブル信号SEiを活性化させる(ハイレベル)。すなわち、セグメント0が選択可能な状態にする。この時、サーチ線ドライバは、SLi線、/SLi線に、入力されるサーチデータとマスクデータに応じた電圧を印加する。なお、サーチ動作時において、ワード線WLi、ビット線BLi、/BLiは接地された状態のままである。サイクル1においては、SEi信号が活性化されると同時に、セグメント0イネーブル信号SegE0も活性化され、セグメント0の電源スイッチSW0[0]、SW0[1]、SW0[2]、・・・がオンとなる。この時、セグメント0内の各々のCAMセルにおいて、サーチデータとストレージデータの比較動作が実行される。セグメント0内の全てのビットが一致したワードにおいてのみ、そのマッチ線ML0はハイレベルの電圧が出力される(一致)。逆に、1ビットでも不一致のビットがあるワードに対しては、ML0はローレベルの電圧が出力されることになる(不一致)。
次に、SCLK0信号が活性化され、各ワードのセンスアンプSA0[0]、SA0[1]、SA0[2]、・・・はML0の電位を参照電圧Vrefと比較し、論理振幅まで増幅する。これらセンスアンプの出力HIT0は、セグメント0における一致/不一致の判定結果を示す。すなわち、HIT0がハイレベルのワードは、そのセグメント0に位置するビットが一致であったワードであり、ローレベルのワードは、不一致であったワードである。この結果は、最終サイクルのサイクル4の動作が完了するまで保持される。
サイクル2においては、セグメント1イネーブル信号SegE1が活性化され、セグメント1のサーチ動作が開始される。この時、セグメント1の電源スイッチSW1[0]、SW1[1]、SW1[2]、・・・のうち、HIT0がハイレベルのワード、すなわち、セグメント0の全てのビットが一致判定されたワードの電源スイッチがオンの状態になる。一方、HIT0がローレベルのワード、すなわち、セグメント0のビットが不一致判定されたワードにおいては、そのワードのセグメント1の電源スイッチはオフの状態のままである。従って、セグメント0のビットが一致判定されたワードのみ、セグメント1のビットの一致/不一致の比較動作が実行されることになる。
次に、SCLK1信号が活性化され、セグメント1のセンスアンプSA1[0]、SA1[1]、SA1[2]、・・・のうち、HIT0信号がハイレベルのワード、すなわち、セグメント1が活性状態にあるワードのセンスアンプのみが動作する。活性化されたセンスアンプは、ML1の電位をVrefと比較し、論理振幅まで増幅する。これらセンスアンプの出力HIT1は、セグメント1における一致/不一致の判定結果を示し、この結果は最終サイクル4の動作が完了するまで保持される。ここで、HIT0信号がローレベルのワード、すなわち、セグメント1が動作停止状態にあるセンスアンプの出力HIT1はローレベルに固定化されたままであり、不一致判定された状態と等価である。
サイクル3においては、セグメント2イネーブル信号SegE2が活性化され、セグメント2のサーチ動作が開始される。この時、セグメント2の電源スイッチSW2[0]、SW2[1]、SW2[2]、・・・のうち、HIT1がハイレベルのワード、すなわち、セグメント1の全てのビットが一致判定されたワードの電源スイッチがオンの状態になる。一方、HIT1がローレベルのワード、すなわち、セグメント1のビットが不一致判定されたワードにおいては、そのワードのセグメント2の電源スイッチはオフ状態のままである。従って、セグメント1のビットが一致判定されたワードのみ、セグメント2のビットの一致/不一致の比較動作が実行されることになる。以下、サイクル2の場合と同様に、セグメント2において活性化されたワードのみのセンスアンプが動作し、その出力信号HIT2に一致/不一致の判定結果を出力する。
サイクル4においては、セグメント3イネーブル信号SegE3が活性化され、セグメント3のサーチ動作が開始される。この時、セグメント3の電源スイッチSW3[0]、SW3[1]、SW3[2]、・・・のうち、HIT2がハイレベルのワード、すなわち、セグメント2の全てのビットが一致判定されたワードの電源スイッチがオンの状態になる。一方、HIT2がローレベルのワード、すなわち、セグメント2のビットが不一致判定されたワードにおいては、そのワードのセグメント3の電源スイッチはオフ状態のままである。従って、セグメント2のビットが一致判定されたワードのみ、セグメント3のビットの一致/不一致の比較動作が実行されることになる。
以下、サイクル2やサイクル3の場合と同様に、セグメント3において活性化されたワードのみのセンスアンプが動作し、その出力信号HIT3に最終的な一致/不一致の判定結果を出力する。すなわち、HIT3がハイレベルを出力するワードは、一致判定されたワードであり、ローレベルを出力するワードは不一致判定されたワードである。アドレスエンコーダは、サイクル4において、全てのワードのHIT3信号を入力として、一致したワードの番地情報を出力する。
図9は、本実施の形態のCAMのサーチ動作における電源制御の一例を概略したものである。図9では、説明の便宜上、8ワード分のみを図示しているが、実際には数K〜数Mワード構成になるのが一般的である。この図において、白で囲まれた部分が電源がオンの状態で、網掛けの部分が電源がオフの状態を表す。先に説明したように、セグメント0から順次ビット比較を行うため、セグメント0の領域は全て電源がオンの状態である。セグメント1の領域は、セグメント0で一致判定されたワードのみが電源がオンの状態になる。例えば、ワード1、2、4、7がこれに該当する。セグメント2の領域は、セグメント1で一致判定されたワードのみが電源オンの状態になる。例えば、ワード1、2、4がこれに該当する。セグメント3の領域は、セグメント2で一致判定されたワードのみが電源オンの状態になる。例えば、ワード2とワード4がこれに該当する。ここで、ワード2は一致判定され、一方、ワード4は不一致判定されている。すなわち、最終的にワード2のみが一致判定され、検索結果としてアドレスエンコーダはワード2の番地を出力する。
図10は、各サイクルにおける消費電力の推移を概略化した図である。サイクル1では、全てのワードが動作するので消費電力が最大となるが、サイクル2、サイクル3、サイクル4と進むにつれ、動作するワード数が減少するに伴って消費電力は減少する。
本実施の形態において、セグメントを何ビット毎に分割するかは任意である。例えば、ワードが128ビットを4つのセグメントに分割する場合を考える。図9より明らかなように、最初に比較動作が行われるセグメント0は必ず動作するため、その他のセグメントよりも少ないビット数に割りつけることがピーク電流削減の観点から望ましい。
次に、CAMセル内のMTJ素子に被検索データを書き込むライトモードの動作について説明する。図7の動作真理値表より、ライトモードでは、外部から入力されるアドレス信号に対応する一の選択ワード線WLiの活性化し(ハイレベル)、外部から入力されるデータ入力、及びマスクデータから決まる電圧をビット線BLj、/BLjに印加される。本ライトモードは、ワード毎に2ステップで実施される。第1のステップでは、選択プレート線PLiをローレベルに接地し、高抵抗状態にしたいMTJ素子の書き込みを行う。次の第2ステップでは、選択プレート線PLiをハイレベルにプルアップし、低抵抗状態にしたいMTJ素子の書き込みを行う。この時、非選択の全てのワード線、及びプレート線は接地され、全てのサーチ線も接地されている。以下、具体的に動作を詳述する。
ライトモードにおいて、ワード線ドライバは、外部から入力されるアドレス入力に対応する一の選択ワード線にハイレベルの電圧を印加して活性化させ、非選択ワード線にローレベルの電圧を印加して非活性化させる機能を有する。
ライトモードにおいて、ビット線ドライバは、外部から入力されるデータ入力とマスクデータから各々のビット線に印加する信号を生成する機能を有する。もし、任意のデータビットjに対してマスクビットが“0”であれば(マスクされない)、ビット線BLjと/BLjにデータビットに応じて相補の電圧を印加する。例えば、データビットが“0”の時は、BLjにローレベル、/BLjにハイレベルを印加し、“1”の時は、BLjにハイレベル、/BLjにローレベルを印加する。もし、マスクビットが“1”であれば(マスクする)、データビットに関係なく、ビット線BLjと/BLjの両方に対して、該当するCAMセルのMTJ素子のペア両方を高抵抗化する様に同一の電圧を印加する(すなわち、BLと/BLの両方をプルアップする。)。
ライトモードにおいて、任意の一のワード線WLiが活性化されると、選択ワードのCAMセルのトランジスタM3とM4がオン状態となる。つまり、内部ノードn2とビット線BLが導通され、n3と/BLが導通された状態である。この時、ビット線BL、/BLと、プレート線PLの電圧を適切に制御することで、CAMセル内の2つのMTJ素子に任意のデータを書き込むことができる。例えば、MTJ素子Rjに“1”を書き込むには、プレート線PLにローレベル、ビット線BLにハイレベルの電圧を印加することで実行可能である。この時、MTJ素子Rjに下部電極(n2)から上部電極(PL)の方向に電流が流れ、Rjは高抵抗化する。一方、MTJ素子Rjに“0”を書き込むには、プレート線PLにハイレベル、ビット線BLにローレベルの電圧を印加することで実行可能である。この時、MTJ素子Rjに、上部電極(PL)から下部電極(n2)の方向に電流が流れ、Rjは低抵抗化する。プレート線とビット線を同電位を印加した場合は、MTJ素子Rjの両端に電位差が生じないため書き込み電流は供給されず、データの書き換えは起きない。もう一方のMTJ素子Rjbに対しても、プレート線とビット線/BLに電位差を与える同様の方法で記憶データを書き換えることが可能である。
以上説明した本実施の形態によれば、サーチ動作時において、ビット比較する必要のないCAMセルの電源を効率的にオフすることができ、無駄な動作電力消費を抑えることができる。これは、電源をオフにしてもストレージデータを保持できる不揮発性CAMを利用することで実現でき、従来の揮発性のSRAMベースのCAMセルでは実施不可能である。また、待機時に全てのCAMセルの電源をオフにする機能も有するため、待機電力の大幅な削減が可能となる。
さらに、CAMセルの面積コストを1/2以下に削減することも期待できる。例えば、図3で図示したCAMセルは6個のトランジスタと2個のMTJ素子が利用されている。MTJ素子は、物理的にトランジスタの上に形成可能なため、実質的なセル面積は6個のトランジスタ分だけである。従来のSRAMベースのCAMセルは、14個から16個のトランジスタが必要である。すなわち、セル面積コストを1/2〜1/3程度に下げることできる。従って、従来よりも大容量、且つ、低消費電力のCAMを実現することが可能となる。
(第2の実施の形態)
本発明の第2の実施の形態では、被検索対象のワードを有効、あるいは無効化するための専用のセグメントが付け加えられている点が第1の実施の形態と異なる。その他の基本的な回路構成、及びCAMセルの動作は第1の実施の形態と同様であり、その説明は省略される。
被検索ワード数が、物理的(ハードウェア的)に用意されたCAMマクロのワード数を超えない場合、空きワードに対してビット比較動作をさせない仕組みを導入することで、さらに動作電力を低減することが可能である。例えば、第1の実施の形態において、検索非対象のワードに対しては、最初にビット比較が行われるセグメント0の任意のビットに、強制的に不一致となるパターンをMTJ素子に書き込んでおくことで実施可能である。すなわち、MTJ素子Rj、及び、Rjbの両方が低抵抗状態にセットしておけば良い。この強制的に不一致にさせる処置は1ビットのみで実施可能であるが、セグメント0が複数のビットで構成される場合には、残りのビットにおける比較動作で消費される電力は無駄となる。
図11は本実施の形態によるCAMのワード回路の基本構成を示しており、各々のワードが検索対象か否かを指定する専用のセグメントUを備えている。セグメントUは、1ビットのCAMセルと、その電源スイッチSWU、及びセンスアンプSAUが具備されている。また、セグメントUは、ワード線ドライバとセグメント0の間に配置され、ワード線ドライバが供給するサーチイネーブル信号SEiが電源スイッチSWUとセンスアンプSAUに入力される。センスアンプSAUの出力HITUSE信号は、そのワードが有効か無効かを表す。具体的には、HITUSEがハイレベルの時に有効で、ローレベルの時に無効化される。
各ワードにおいて、セグメントUのCAMセルのMTJ素子Rj、Rjbは以下の様に値が書き込まれる。検索対象のワードの場合、本CAMセルには、MTJ素子Rj、Rjbの両方を高抵抗状態に書き込む。この場合は、図5の真理値表で“Don’t Care”に相当し、サーチデータに依らず一致判定される。一方、検索被対象のワードの場合、MTJ素子Rj、Rjbの両方を低抵抗状態に書き込む。この場合は、サーチデータによらず強制的に不一致判定される。なお、セグメントUに該当するサーチ線について、その入力方法(印加される電圧)は、任意である。
図12に示すように、本実施の形態において、セグメントUは最初のサイクル1で一致/不一致のビット比較動作が行われ、次のサイクル2でセグメント0のビット比較動作が行われる。もし、サイクル1において、HITUSE信号がハイレベルを出力した場合、このワードは検索対象のワードである。よって、次のサイクル2において、セグメント0の電源スイッチをオンにし、センスアンプは一致/不一致の判定を行う。一方、HITUSE信号がローレベルを出力した場合、このワードは検索対象のワードではない。よって、次のサイクル2において、セグメント0の電源スイッチSW0はオフのままにして、センスアンプSA0も動作停止にする。なお、サイクル2以降の動作は第1の実施の形態と同様であるから、具体的な説明を省略する。
図13は、本実施の形態のCAMのサーチ動作における電源制御の一例を概略したものである。図13では、説明の便宜上、8ワード分のみを図示しているが、実際には数K〜数Mワード構成になるのが一般的である。この図において、白で囲まれた部分が電源がオンの状態で、網掛けの部分が電源がオフの状態を表す。また、ワード0〜3が検索対象のワードであり、ワード4〜7は非対象のワードである。先に説明したように、セグメントUから順次ビット比較を行うため、セグメントUの領域は全て電源がオンの状態である。セグメント0の領域は、セグメントUで一致判定されたワードのみ、すなわち、有効ワードのみが電源がオンの状態になる。例えば、ワード0〜3がこれに該当する。セグメント1の領域は、セグメント0で一致判定されたワードのみが電源オンの状態になる。例えば、ワード1、2がこれに該当する。セグメント2の領域は、セグメント1で一致判定されたワードのみが電源オンの状態になる。例えば、ワード1とワード2がこれに該当する。セグメント3の領域は、セグメント2で一致判定されたワードのみが電源オンの状態になる。例えば、ワード2がこれに該当する。ここで、ワード2は一致判定されている。すなわち、最終的にワード2のみが一致判定され、検索結果としてアドレスエンコーダはワード2の番地を出力する。
本実施の形態によれば、ストレージデータが全てのワードで埋め尽くされない場合において、第1の実施の形態よりも動作電力の低減効果が得られる。尚、矛盾しない限りにおいて、本実施の形態と既出の実施の形態とを組み合わせることも可能である。例えば、CAMに不良ビット、あるいは不良ワードを救済するための冗長ワードを具備させる場合にも適用できる。この場合、本実施の形態を適用することで置き換え元のワード(不良ワード)の動作を止める信号を生成する周辺回路を具備することなく、簡単に動作対象外にすることができる。
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
例えば、上述の実施の形態では、メモリセルの不揮発性記憶素子として磁気抵抗素子を用いることとして説明したが、相変化素子、原子移動型素子、酸素欠損型抵抗変化素子、金属架橋形成型抵抗変化素子その他の抵抗変化素子、或いは、他のタイプの不揮発性記憶素子でも同様に成り立つことは当業者には明らかであろう。
この出願は、2012年9月6日に出願された日本出願特願第2012−195959号を基礎とする優先権を主張し、その開示のすべてをここに取り込むものである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13