JP2012518860A - センス・マージンを向上させた連想メモリ・デバイスとその動作方法およびコンピュータ・プログラム(連想メモリにおいてセンス・マージンを向上させるための符号化技法) - Google Patents

センス・マージンを向上させた連想メモリ・デバイスとその動作方法およびコンピュータ・プログラム(連想メモリにおいてセンス・マージンを向上させるための符号化技法) Download PDF

Info

Publication number
JP2012518860A
JP2012518860A JP2011550495A JP2011550495A JP2012518860A JP 2012518860 A JP2012518860 A JP 2012518860A JP 2011550495 A JP2011550495 A JP 2011550495A JP 2011550495 A JP2011550495 A JP 2011550495A JP 2012518860 A JP2012518860 A JP 2012518860A
Authority
JP
Japan
Prior art keywords
word
memory
search
code
data word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011550495A
Other languages
English (en)
Other versions
JP5594908B2 (ja
Inventor
ラストラス‐モンタノ、ルイス
フランチェスキーニ、ミケレ
ラム、チャン、ホン
ラジェンドラン、ビピン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012518860A publication Critical patent/JP2012518860A/ja
Application granted granted Critical
Publication of JP5594908B2 publication Critical patent/JP5594908B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/02Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using magnetic elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • G11C15/046Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using non-volatile storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells

Abstract

【課題】 センス・マージンを向上させた連想メモリおよびその動作方法を提供する。
【解決手段】 符号化データ・ワードおよび検索ワードを用いた連想メモリ、ならびにかかるデバイスを動作させるための技法。一実施形態においては、データ・ワードをコード・ワードに変換し、データ・ワードが検索ワードと一致しない場合、メモリ検索動作の間に異なる二進値を有する少なくとも2つのコード・ワード・ビットの不一致を保証する。別の実施形態においては、検索ワードを検索コードに変換して、データ・ワードと検索ワードとの間に少なくとも1ビットの不一致がある場合にコード・ワードと検索コードとの間のハミング距離が所与の閾値よりも大きいようにする。
【選択図】 図2

Description

本発明は連想メモリ(contentaddressable memory)に関し、更に具体的には、抵抗性メモリ要素を用いた連想メモリにおいてデータを記憶および検索するための符号化技法に関する。
連想メモリ(CAM:Contentaddressable memory)は、高速検索用途において用いられるタイプのコンピュータ・メモリである。ほとんどのCAMデバイスでは、スタティック・ランダム・アクセス・メモリ(SRAM)として構成されたトランジスタと、照合動作のための追加のトランジスタ回路と、が用いられる。典型的に、これらのCAMデバイスにおいては、メモリ・アレイにおける個々のメモリ・セルを動作させプログラミングするために、検索線アクセス・トランジスタおよびワード線アクセス・トランジスタが必要である。検索線アクセス・トランジスタおよびワード線アクセス・トランジスタは、多くの場合、電力集約型の大駆動電界効果トランジスタ(FET)から成る。
また、CAMデバイスにおいて情報を記憶するために相変化材料を用いることができる。相変化材料を操作すると異なる相または状態とすることができ、各相が異なるデータ値を表す。一般に、各相は異なる電気的特性を示す。アモルファス相および結晶相は、電気抵抗に検出可能な差があるために、二進データ(1および0)の記憶に用いられる典型的な2つの相である。具体的には、アモルファス相は結晶相よりも抵抗が高い。
ThomasCover、「Enumerative source encoding」、IEEE Transactions on Information Theory 19:73〜77(1973年) M.Blaum、「Codes for Detecting and CorrectingUnidirectional Errors」、IEEE Computer Soc. Press(カリフォルニア州ロスアラミトス、1993年)
CAM設計において相変化メモリ等の抵抗性メモリ要素を用いる際の1つの問題は、大きいデータ・ワードをCAMに記憶し検索する際のセンス・マージンが小さいことである。記憶したデータ・ワードと検索ワードとの間に単一の不一致ビットがあると、充分な照合電流偏差が検出されない場合がある。このため、抵抗性メモリ・セルを有する従来のCAM設計では、記憶ワード当たりのビット数が制限されている。本発明は、この制限および、抵抗性メモリ要素を用いたCAMの他の欠点に対処するものである。
本発明の一態様は、連想メモリを動作させるための方法である。この方法は、並列回路において複数のメモリ・セルを用意することを含む。メモリ・セルは照合線に電気的に結合されている。照合線は、メモリ検索動作の間にメモリ・セルからの総合電流を受信するように構成されている。受信動作は、メモリ・セルに記憶するためにビット長Lのデータ・ワードを受信する。変換動作は、データ・ワードをLよりも大きいビット長のコード・ワードに変換して、コード・ワードの少なくとも1ビットがデータ・ワードの少なくとも2ビットに依存するようにする。データ・ワードが検索ワードと一致しない場合、メモリ検索動作の間に、コード・ワードによって、異なる二進値を有する少なくとも2つのコード・ワード・ビットの不一致を保証する。記憶動作は、コード・ワードをメモリ・セルに記憶する。
本発明によって想定される連想メモリを動作させるための別の方法は、並列回路において照合線に電気的に結合された複数のメモリ・セルを用意することを含む。照合線は、メモリ検索動作の間にメモリ・セルからの総合電流を受信するように構成されている。受信動作は、メモリ・セルに記憶するためにビット長Lのデータ・ワードを受信する。変換動作は、データ・ワードをビット長Mのコード・ワードに変換する。MはLよりも大きい。変換動作によって、コード・ワードの少なくとも1ビットがデータ・ワードの少なくとも2ビットに依存することを確実とする。記憶動作は、コード・ワードをメモリ・セルに記憶する。別の受信動作は、メモリ検索動作の間にデータ・ワードと比較するためにビット長Lの検索ワードを受信する。第2の変換動作は、検索ワードをビット長Mの検索コードに変換して、データ・ワードと検索ワードとの間に少なくとも1ビットの不一致がある場合にコード・ワードと検索コードとの間のハミング距離が所与の閾値よりも大きいようにする。
本発明の更に別の態様は、連想メモリ・デバイスである。このデバイスは、並列回路において複数のメモリ・セルを含む。メモリ・セルは照合線に電気的に結合されている。照合線は、検索動作の間にメモリ・セルからの総合電流を受信するように構成されている。受信ユニットは、長さLのデータ・ワードを受信するように構成されている。符号化ユニットは、メモリ・セルに記憶するためにデータ・ワードをLよりも長いコード・ワードに変換するように構成されている。この変換は、コード・ワードの少なくとも1ビットがデータ・ワードの少なくとも2ビットに依存するようになっている。データ・ワードが検索ワードと一致しない場合、メモリ検索動作の間に、コード・ワードによって、異なる二進値を有する少なくとも2つのコード・ワード・ビットの不一致を保証する。
本発明の更に別の態様は、連想メモリ・デバイスである。このデバイスは、並列回路において複数のメモリ・セルを含む。メモリ・セルは照合線に電気的に結合されている。照合線は、検索動作の間にメモリ・セルからの総合電流を受信するように構成されている。受信ユニットは、長さLのデータ・ワードを受信するように構成されている。符号化ユニットは、メモリ・セルに記憶するためにデータ・ワードをLよりも長いコード・ワードに変換するように構成されている。この変換は、コード・ワードの少なくとも1ビットがデータ・ワードの少なくとも2ビットに依存するようになっている。データ・ワードが検索ワードと一致しない場合、コード・ワードがメモリ検索動作の間に照合線を通る電流を大きくするように構成されている。
本発明の更に別の態様は、タンジブル(tangible)なメモリにおいて具現化されたコンピュータ・プログラムである。コンピュータ・メモリを動作させるためにタンジブルなメモリにプログラム・コードが結合されている。コンピュータ・メモリは、並列回路において複数のメモリ・セルを含む。メモリ・セルは照合線に電気的に結合されている。照合線は、メモリ検索動作の間にメモリ・セルからの総合電流を受信するように構成されている。コンピュータ読み取り可能プログラム・コードは、メモリ・セルに記憶するためにビット長Lのデータ・ワードを受信することと、データ・ワードをLよりも長いコード・ワードに変換し、コード・ワードの少なくとも1つのビットがデータ・ワードの少なくとも2つのビットに依存するようにし、データ・ワードが検索ワードと一致しない場合、メモリ検索動作の間に、コード・ワードによって、異なる二進値を有する少なくとも2つのコード・ワード・ビットの不一致を保証することと、コード・ワードをメモリ・セルに記憶することと、をコンピュータ・プログラムに実行させるように構成されている。
本発明と見なされる主題は、明細書の末尾にある特許請求の範囲において具体的に指摘され明確に特許請求されている。本発明の前述およびその他の目的、特徴、および利点は、添付図面と関連付けて以下の詳細な説明を読むことから明らかとなろう。
本発明によって想定されるメモリ・デバイスの一実施形態を示す。 本発明によって想定されるCAMのための例示的なプログラミング・プロセスのフローチャートを示す。 本発明によって想定されるCAMの例示的な検索プロセスのフローチャートを示す。 本発明によって想定されるCAMデバイスの別の実施形態を示す。 本発明の1つ以上の態様を組み込んだ製造品の一実施形態を示す。
本発明の実施形態を参照して本発明について説明する。本発明の説明全体を通して図1から図5を参照する。
図1は、本発明によって想定される連想メモリ(CAM)102の一例を示す。CAM102は、メモリ・アレイにおいて複数のメモリ・セル104を含む。個別の各メモリ・セル104は、直列回路でアクセス・デバイス110に電気的に結合されたメモリ要素108を含む。
本発明の一実施形態においては、メモリ・セル104のメモリ要素108は、2つの抵抗値の一方を記憶することができる相変化材料から成る。かかる相変化材料の一例はゲルマニウム−アンチモン−テルル(GST)である。このため、メモリ要素は2つの状態の一方すなわち結晶状態またはアモルファス状態にプログラミングすることができる。
結晶状態は記憶した二進0値を表すことができ、アモルファス状態は記憶した二進1値を表すことができる。結晶状態においては、メモリ要素は比較的低い抵抗(すなわち5Kオーム)を示す。一方、アモルファス状態においては、メモリ要素は比較的高い抵抗(すなわち500Kオーム)を示す。メモリ要素108のために様々な記憶技術を用いることができ、相変化材料の例は単に例示に過ぎないことは、当業者には認められよう。例えば、メモリ要素108は、浮動ゲート・トランジスタ、抵抗性メモリ要素、磁気抵抗ランダム・アクセス・メモリ(MRAM)、または電荷トラッピング・デバイスから成るものとすることができる。
相変化メモリにおいてメモリ要素の状態を変化させるためには、材料を融点まで加熱し、次いで材料を冷却して可能な状態の1つとすることが必要である。メモリ要素に電流を通すと、オーム加熱が起こり、相変化材料が溶ける。メモリ要素において相変化材料を溶かして徐々に冷却すると、時間の経過によって相変化材料が結晶状態を形成する。メモリ要素において相変化材料を溶かして急激に冷却すると、相変化材料は急冷されてアモルファス状態にする。
アクセス・デバイス110は、第1の端子116と第2の端子118との間の電流を制御する共通端子114を含む。共通端子は検索線122に結合され、これによってメモリ要素108を通る電流を制御する。アクセス・デバイス110の第1の端子116はメモリ要素108に電気的に結合されている。本発明の特定の実施形態において、アクセス・デバイス110は、金属酸化膜半導体電界効果トランジスタ(MOSFET)、バイポーラ接合トランジスタ(BJT)、およびダイオードとすることができる。本発明の精神および範囲から逸脱することなく他のアクセス・デバイスを使用可能であることも想定される。
図示のように、メモリ要素108はビット線112に電気的に結合されている。ビット線112を用いて、メモリ要素108を所望の状態にプログラミングすることおよびメモリ要素108の状態を読み出すことの双方が可能であることは、当業者には認められよう。例えばプログラミングの間、ビット線112を通してメモリ要素108に高電流を流し、これによって相変化材料はオーム加熱で溶ける。メモリ検索動作の間、ビット線112を通してメモリ要素108に低電流を流す。検索動作電流は、相変化材料を溶かすのには不充分であるが、メモリ要素108の両端の電圧降下を検出するには充分な大きさである。
アクセス・デバイス110の第2の端子118は、照合線106に電気的に結合されている。プログラミングの間、照合線106はメモリ要素108を通る比較的高い電流をシンク(またはソース)するように機能し、これによって相変化材料が溶ける。メモリ検索動作の間、照合線106はメモリ要素108を通して照合回路120まで電流を通す。
メモリ・セル104群はワード128として共に結線される。各ワード128は、ビット線112と照合線106との間で並列回路に構成されたメモリ・セル104を含む。このため、特定のワード128をプログラミングするためには、適切なビット線112および照合線106の対に通電する必要がある。
メモリ・デバイス102のプログラミング動作は、CPUまたは他の外部ソースからデータ・ワードを受信することを伴う。以下で詳細に論じるように、データ・ワードは符号化ワードに変換されてメモリ・アレイの特定のワード128に記憶される。符号化ワードの各ビットが単一のメモリ・セル104に記憶される。バイアス回路124が、メモリ要素における符号ワード・ビットをプログラミングするのに充分な所定の信号を印加することによって、アクセス・デバイス110にバイアスをかける。
例えば、相変化メモリが二進1(RESETまたはアモルファス状態)を記憶するためには、アクセス・デバイス110の共通端子114にパルス供給して、比較的高い電流信号がメモリ要素108を通るようにする。迅速な電力カットオフによって急峻な立ち下がりが生じることで、メモリ要素108における相変化材料を急冷してアモルファス状態に設定する。二進0(SETまたは結晶状態)を記憶するためには、アクセス・デバイス110の共通端子114における電流信号の振幅をゆっくりと小さくする。これによって、ゆるやかな立ち下がりが生じ、メモリ要素108における相変化材料をゆっくりと冷却して結晶状態に設定することができる。プログラミング動作の終了時までには、特定のワード128において、高い抵抗および低い抵抗にプログラミングされたメモリ・セルとして二進符号化ワードが表現される。
検索動作の間、符号化検索ワードを、メモリに記憶された符号化ワードと比較する。一致がある場合、CAM102は一致したコード・ワードのアドレスを報告する。検索ワードは典型的に、中央演算処理装置(CPU)または外部のメモリ・コントローラ等の外部のソースから受信される。データ・ワードが符号化ワードに変換されたのと同じ方法で、検索ワードは符号化検索ワードに変換される。符号化検索ワード内の各検索ビットは、ビットごとに順次、符号化ワード内の記憶ビットに対応する。
バイアス回路124は、アクセス・デバイス110にバイアスをかけて、メモリ・プログラミング中にビットに関連付けられた抵抗に対して相補的な実効抵抗とする。例えば、検索ビットが二進1(高抵抗メモリ)である場合、アクセス・デバイス110の実効抵抗は低抵抗に設定される。検索ビットが二進0(メモリにおける低抵抗)である場合、アクセス・デバイス110の実効抵抗は高抵抗に設定される。
そして、照合回路120は、各ワード128ごとにビット線112と照合線106との間の総合抵抗を測定する。検索電流は各メモリ要素108および各アクセス・デバイス110を通る。このため、メモリ要素108およびアクセス・デバイス110の総合抵抗を測定することができる。抵抗の測定のために、限定ではないが、電流測定回路および抵抗制御オシレータ等の様々な技法および回路を利用可能であることは、当業者には認められよう。
表1は、本発明の一実施形態のための照合抵抗を列挙して示す。この表は、メモリ検索動作中のアクセス・デバイス抵抗、メモリ要素抵抗、および照合線の値の真理表である。抵抗「L」および「H」は、メモリ要素およびアクセス・デバイスにおける高抵抗値および低抵抗値を表すことに留意すべきである。簡略化のために、アクセス・デバイス110およびメモリ要素104は同一の相補的な抵抗を用いると想定するが、これは本発明に必須ではない。換言すると、メモリ要素104「L」および「H」抵抗は、例えばそれぞれ5Kオームおよび500Kオームとすることができ、アクセス・デバイス110の「L」および「H」抵抗は、例えばそれぞれ2Kオームおよび200Kオームとすることができる。本発明の特定の構成においては、高抵抗状態は低抵抗状態よりも少なくとも1桁大きい。
Figure 2012518860
例えば、「H」二進値の抵抗が「L」二進値の抵抗よりもk倍大きいと考える。アクセス・トランジスタ抵抗がメモリ要素抵抗の相補値である場合(一致)、メモリ要素104を介した全抵抗はk+1となる。更に、記憶ワード128内の全てのメモリ要素104が検索コードと一致する場合、照合回路120によって測定される全抵抗は(k+1)/nとなる。ここで、nはワードにおけるビット数である。
一方、メモリ・セル104におけるアクセス・トランジスタ抵抗およびメモリ要素抵抗が双方とも高いかまたは低い場合には、非一致状況が生じる。1つのワードが正確に1つの非一致メモリ・セルを有し、この非一致メモリ・セルが高抵抗経路(すなわち「H」−「H」抵抗対)を有する場合、照合回路120が測定する全抵抗は、(k+1)/nの一致抵抗よりも高くなる。
1つのワードが、低抵抗経路(すなわち「L」−「L」抵抗対)を有する1つの非一致メモリ・セルを含む場合、照合回路120が測定する全抵抗は2/n未満となる。本発明の一態様は、記憶されたワードおよび検索ワードのための符号化技法であり、記憶されたワードが検索ワードと一致しない場合に少なくとも1つの低抵抗経路が発生することを保証する。換言すると、検索動作の間にメモリ・セル104の各々を通る照合電流は、2つの電流範囲すなわち高電流範囲および低電流範囲の一方内にある。高電流範囲と低電流範囲との間の境界は、V(k+1)−1とV(2)−1との間で選択された適切な数によって与えられ、ここでVはビット線112において印加された電圧を示す。検索動作の間にデータ・ワードが検索ワードに一致しない場合、メモリ・セルの少なくとも1つを通る照合電流が、起こり得る最も高い電流範囲((2)−1以上)内にあることを保証するように、コード・ワードは構成されている。
以下で更に詳細に論じるが、照合回路120は、照合線106において総合電流を調べることによって検索の不一致を検出するように構成されている。特定の実施形態において、あるメモリ位置におけるデータ・ワードが検索ワードと一致する場合、照合回路120はその位置を示すように構成されている。例えば、検索動作中にそのメモリ要素の総合抵抗が閾値を超えている場合、照合回路120はメモリ・アドレスを戻す。
ここで図2に移ると、CAMによってデータ・ワードをコード・ワードに符号化するためのプロセスの一例が示されている。図2に示す動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの何らかの組み合わせにおいて実施可能である。プログラム・コード論理は、記憶媒体に記憶するか、コンピュータにロードするか、またはコンピュータによって実行するか、あるいはその両方とすることができ、プログラム・コード論理がコンピュータにロードされて実行されると、コンピュータは本発明を実施するための装置となる。記憶媒体の例には、固体メモリ(RAMまたはROM)、フレキシブル・ディスク、CD−ROM、ハード・ドライブ、ユニバーサル・シリアル・バス(USB)・フラッシュ・ドライブ、または他の何らかのコンピュータ読み取り可能記憶媒体が含まれる。
このプロセスは受信動作204から開始する。この動作の間、CPUまたは外部メモリ・コントローラ等の外部ソースから、CAMの受信ユニットによって、ビット長Lのデータ・ワードを受信する。通常、CAMはデータ・ワードを供給するデータ・バスに接続されている。いったんデータ・ワードを受信すると、更に別の処理のために、これをLビット・バッファにラッチすることができる。受信動作が完了した後、制御は変換動作206に進む。
変換動作206では、符号化ユニットがデータ・ワードをCAMに記憶するためにコード・ワードに変換する。コード・ワードは、データ・ワードよりもビット長が長く、全く同じにコピーされたデータ・ワード・ビットを含む場合もあるしそうでない場合もある。変換は、コード・ワード・ビットの少なくとも1つがデータ・ビットの少なくとも2つに依存するようになっている。この変換は、データ・ワード・ビットをコード・ワード・ビットにマッピングする関数として見ることができる。コード・ワードのビットの値を1つだけのデータ・ワード・ビットの関数として算出することができない場合に、コード・ワードのビットはデータ・ワードの少なくとも2ビットに依存すると言う。本発明の一実施形態においては、データ・ワードが検索ワードに一致しない場合、メモリ検索動作の間に異なる二進値を有する少なくとも2つのコード・ワード・ビットが不一致となることがコード・ワードによって保証される。かかる構成により、不一致ワードのために照合線とビット線との間に低抵抗経路が生成されることが確実となる。
本発明の特定の実施形態においては、コード・ワードは、固定ハミング重み(constant Hamming weight)を有するコード・ワード・セット(固定重みコードとも称する)から求められる。ハミング重みはコード内の1の数を示す。例えば、コード・ワード・セット{011、101、110}によって3つの可能な値を表すことについて考える。このセットにおける各コード・ワードは正確に2つの1を有する。従って、このコード・ワード・セットの固定ハミング重みは2である。データ・ワードおよび検索ワードの双方のために固定ハミング重みコードを用いることによって、データ・ワードが検索ワードと一致しない場合、メモリ検索動作の間に異なる二進値を有する少なくとも2つのコード・ワード・ビットの不一致が常に生じる。CAMにおいて固定ハミング重みを有する符号化数セットを実施することは、例えばルックアップ表および当業者に既知の他の技法を用いて達成可能であることに留意すべきである。例えば、Thomas Coverの「Enumerative source encoding」、IEEE Transactions on Information Theory 19:73〜77(1973年)を参照のこと。
本発明の更に別の実施形態においては、固定ハミング重みを有する符号化数セットを用いて、コード・ワードは、データ・ワードおよびデータ・ワード内の1の個数を含む。63ビットのデータ・ワードを記憶しようとすると仮定する。ハミング重みが4である8ビットの固定重みコードは、最大70の別個の可能性を数えることができ、63ビット・ワード内の1の数については64のみの別個の可能性が存在する。このため、固定重み4で8ビットの符号化した1の個数を用いてデータ・ワードを終端させると、結果としてコード・ワードは合計で63+8=71ビットを有する。本発明のこの態様の可能な変形は、1の数でなく0の数をカウントする。
本発明の更に別の実施形態において、コード・ワードは、データ・ワードと、ゼロに等しいデータ・ワード内の二進値の個数と、を含む。データ・ワード内のビット数をLとする。整数範囲〔0、1、...、L〕内にある個数を記述するためには、合計でceil(log2(L+1))ビットが必要である。この個数は標準的な二進数系を用いて符号化される。例えばL=7である場合、ゼロの個数を記述するためには合計3ビットで充分である。データ・ワードが0011000である場合、コード・ワードは0011000101となる。この符号化技法を用いると、コード・ワードの長さはL+ceil(log2(L+1))である。この技法の変形では、1の数をカウントし、結果として得られた個数のビット補数を記憶する。
本発明の別の実施形態においては、コード・ワードは、データ・ワードと、データ・ワード内の1の個数と、1の個数のビット補数と、を含む。例えば、Lビット・データ・ワードb0 b1 b2...bL−1を記憶したいと仮定する。データ・ワード内の1の数をカウントし、二進数系を用いて符号化する。この数は0からLまでの範囲に及ぶことができるので、L+1の可能な結果が得られる。この個数をコード・ワード内の二進個数として含ませた結果として、b0 b1 b2...bL−1 c0...ct−1が得られる。ここで、t=ceil(log2(L+1))である。次に、c0...ct−1に対して二進NOT演算を実行し、この結果、コード・ワードb0 b1 b2...bL−1 c0...ct−1 1−c0...1−ct−1が得られる。このため、Lビットのデータ・ワードを符号化するために、この実施形態におけるコード・ワードはL+2*ceil(log2(L+1))のビット長を有する。例えば、63ビットのデータ・ワードを記憶したいと想定する。コード・ワードの構築には、合計で63+6+6=75ビットが必要である。あるいは、ゼロの数でなく1の数をカウントし、上述したように進むことができる。
メモリ要素の低抵抗値を二進「0」でなく二進「1」に割り当て、メモリ要素の高抵抗値を二進「0」でなく二進「1」に割り当てた場合に、同様の符号化の結果を達成可能であることは、当業者には認められよう。本明細書に開示する符号化技法には、二進値の特定の数でなく一般的な第1および第2の二進値が含まれる。
本発明の更に別の実施形態において、データ・ワードが検索ワードと一致しない場合、コード・ワードはメモリ検索の間に照合線を通る電流を増大させるように構成されている。例えば、コード・ワードはデータ・ワードおよび1つ以上のパリティ・ビットを含むことができる。この構成は、検索の不一致の間に低抵抗経路を保証しない場合があるが、検索動作中の一致と不一致との間のセンス・マージンを有利に大きくすることに役立つ。
変換動作206が完了した後、制御は記憶動作208に進む。記憶動作の間、コード・ワードをCAMメモリ・アレイに記憶する。上述したように、コード・ワードを記憶するために、相変化メモリ(PCM)、浮動ゲート・トランジスタ、抵抗性メモリ要素、磁気抵抗ランダム・アクセス・メモリ(MRAM)、および電荷トラッピング・デバイス等の様々な抵抗性メモリ技術を用いることができる。
いったんメモリ・アレイ内に記憶された後は、メモリ検索動作中にコード・ワードを検索コードと比較することができる。以下で詳細に説明するが、データ・ワードからコード・ワードを発生させたのと同様の方法で、受信した検索ワードから検索コードを発生させることができる。検索動作では、検索ワードに一致する記憶データ・ワードのメモリ位置を出力する。
図3は、メモリ検索動作の間に実行される例示的なステップ・シーケンスを示す。この動作は受信ステップ302から開始する。このステップの間、CPUまたは外部メモリ・コントローラ等の外部ソースから、CAM受信ユニットによって、ビット長Lの検索ワードを受信する。いったん検索ワードを受信すると、追加の処理のためにこれをLビット・バッファにラッチすることができる。受信ステップが完了した後、制御は変換ステップ304に進む。
変換ステップ304において、符号化ユニットは、CAMに記憶されたコード・ワードと比較するために検索ワードを検索コードに変換する。コード・ワードと同様、検索コードはビット長がLよりも大きく、コード・ワードと同じ方法で符号化される。検索コードにおける各検索ビットは、コード・ワード内の記憶されたビットに対応する。更に、コード・ワードを発生させるために用いたものと同じ符号化アルゴリズムを用いて検索コードを生成する。
このため、本発明の一実施形態においては、固定ハミング重みを有する検索コード・セットから検索コードを求める。別の実施形態においては、固定ハミング重みを有する符号化数セットを用いて、検索コードは検索ワードおよび検索ワード内の1の個数を含む。本発明の更に別の実施形態においては、検索コードは、検索ワードと、検索ワード内のゼロの個数または1の個数のビット補数と、を含む。更に別の実施形態においては、検索コードは、検索ワードと、検索ワード内の1の個数と、1の個数のビット補数と、を含む。本発明の更に別の実施形態においては、検索コードは検索ワードおよび1つ以上のパリティ・ビットを含む。
変換ステップ304が完了した後、制御はバイアス・ステップ306に進む。バイアス・ステップ306の間、各メモリ・セルのアクセス・デバイスにバイアスをかけることによって、メモリ・セルの対応する検索コード・ビットの値に応じて、アクセス・デバイスの実効抵抗を高い実効抵抗または低い実効抵抗のいずれかに設定する。本発明の一実施形態において、アクセス・デバイスの実効抵抗の制御は、アクセス・デバイスの共通端子におけるバイアス電圧を制御することによって達成される。
特定の二進値について、メモリ要素およびアクセス・デバイスにおける相対抵抗は相互に逆であることに留意するのは重要である。例えば、低い記憶抵抗(すなわち5kオーム)を二進0値に割り当てた場合、同じ二進値に高い実効抵抗(すなわち500Kオーム)を割り当てる。しかしながら、変換ステップ304の間に検索コードが反転した場合、この要件は除去することができる。
いったんバイアス・ステップ306が完了すると、制御は判定ステップ308に進む。このステップの間、各照合ユニットは関連付けられた照合線から総合電流を受信する。照合ユニットは、検索動作の間にメモリ要素からの総合電流が閾値未満であるか否かを判定するように構成されている。
総合電流が閾値電流値未満である場合、これは、検索動作中にビット線と照合線との間に低抵抗経路が生成されなかったことを示す。そして、これは、データ・ワードおよび検索ワードが一致することを示す。このため、判定ステップ308は、検索動作中に総合電流が閾値電流値未満であるメモリ要素のメモリ位置を示す。
本発明の代替的な実施形態においては、判定ステップ308において、照合線に結合されたメモリ要素の総合抵抗を判定する。総合電流が閾値抵抗値よりも大きい場合、メモリ要素のメモリ位置をCAMによって出力する。
本発明の別の実施形態において、判定ステップ308は、各メモリ・ワードの総合電流または抵抗が所定値範囲内に収まるか否かを調べる。この実施形態が有用であるのは、データ・ワードおよび検索ワードが不一致であるときにコード・ワードが低抵抗経路を保証しないが、検索動作中のCAMのセンス・マージンを大きくするという場合である。
ここで図4に移ると、本発明によって想定されるCAMデバイス402の別の実施形態が示されている。CAMデバイス402は、複数のメモリ・ワード128を記憶および検索するためのメモリ・アレイ404を含む。上述のように、各メモリ・ワード128は照合線106に電気的に結合された複数のメモリ・セル104を含む。
照合線106は、検索動作中にメモリ・セル104から総合電流を受信するように構成されている。照合線106は、更に、検索動作中にメモリ・セル104からの総合電流が閾値未満であるか否かを測定するように構成された照合ユニット120に電気的に結合されている。照合ユニット120によって閾値電流を検出するため、当技術分野において既知の様々な回路を用いることができる。例えば、照合ユニット120において電流制御オシレータおよび周波数カウンタを用いることができる。
検索動作中にメモリ・ワード128の総合電流が閾値未満であることを照合ユニット120が報知した場合、出力ユニット406がそのメモリ・ワード128のメモリ位置を提供する。本発明の特定の実施形態において、出力ユニットは、2つ以上の一致メモリ・ワード128が存在することを示すフラグを含むことができ、CAMデバイス402から一致メモリ・ワードの多数のアドレスを検索することを可能とする。
また、CAMデバイス402は、メモリ・アレイ404に記憶するために長さLのデータ・ワード410を受信するように構成された受信ユニット408を含む。受信ユニット408は、更に、検索動作中にデータ・ワード410と比較するために長さLの検索ワード412を受信するように構成されている。いったん受信ユニット408が受信データ・ワード410または検索ワード412のいずれかをラッチしたら、そのワードは符号化ユニット414に渡される。
符号化ユニット414は、メモリ・セル104に記憶するために、データ・ワード410をLよりも長いコード・ワード416に変換するように構成されている。上述のように、データ・ワード410が検索ワード412と一致しない場合、コード・ワード416はメモリ検索動作中に異なる二進値を有する少なくとも2つのコード・ワード・ビットが不一致となることを保証するように設計されている。
本明細書において、この目的を達成するために様々な符号化方式について論じた。符号化方式は、固定ハミング重みを有するコード・ワード・セットからコード・ワード416を生成すること、データ・ワード410と共に固定ハミング重みを有する符号化数セットを用いたデータ・ワード410内の1の個数を含むこと、データ・ワード410内のゼロの個数を含むこと、最後に、データ・ワード410と共にデータ・ワード410内の1の個数および1の個数のビット補数を含むことを含む。論じた全ての符号化技法において、コード・ワード・ビットの少なくとも1つがデータ・ビットの少なくとも2つに依存することは認められよう。更に、これらのコードによって、データ・ワードが検索ワードと一致しない場合はいつでも、データ・コード・ワードが検索コード内の対応ビットと一致しない異なる値の少なくとも2ビットを有することが保証されることは、当業者には認められよう。
符号化ユニット414は、更に、検索動作中にコード・ワード416と比較するために検索ワード412を検索コード418に変換するように構成されている。コード・ワード416を発生させるために用いたものと同じ符号化アルゴリズムを用いて検索コード418を生成し、結果として得られた検索コード・ビット長はコード・ワード・ビット長と同じである。本発明の他の実施形態においては、データ・ワード410と検索ワード412との間に少なくとも1ビットの不一致がある場合にはコード・ワード416と検索コード418との間のハミング距離が所与の閾値よりも大きくなるように、符号化ユニット414が検索ワード412を検索コード418に変換するように構成されている。これは、線形コード、ハミング・コード、BCHコード等の既知のコード・ファミリの1つからコードを選択した場合に確実とすることができる。この実施形態においては、コード・ワード416および検索コード418が一致しない場合に照合ユニット106を通る電流は一致電流よりも大きくまたは小さくすることができ、このため一致を検出するには電流が所与の範囲内にあるか否かを検出する必要がある。
いくつかの用途においては、一致および不一致の状況の正確な区別を可能とするために、少なくとも1つの低抵抗経路を確実とすることでは充分でない場合がある。考えられる方法は、データ・ワードが検索ワードと一致しない場合はいつでも少なくとも「d」個の低抵抗経路を確実とするコードを用いることである。ここでdは正の整数である。これを確実とする1つの方法は、二進ベクトル・セットからコード・ワードを(従って検索ワードも)選択することである。このベクトルは以下の特性を有する。すなわち、1)二進ベクトルは同一のハミング重みを有する(このため、このベクトル・セットは固定重みコードを形成する)、および、2)二進ベクトルは少なくとも2dのハミング距離を有する。上述のセットにおけるデータ・ワードとコード・ワードとの間の関連付けは、エンコーダの実際の実施に好都合ないずれかの方法で実行することができる。1つの可能な実施はテーブル・ルックアップである。これらの2つの条件によって示される所望の特性においては、データ・ワードが検索ワードと一致しない場合、データ・ワードに関連付けられたコード・ワードおよび検索ワードに関連付けられた検索コードでは、少なくともd個の低抵抗経路が存在するようになっており、従ってこれに対応して不一致電流がもっと大きくなるということは、当業者には認められよう。
同様の効果を有する他のコードには、データ・ワードにビットを追加するコードが含まれる。適切なコードを、エラーを訂正するためのコード設計理論から借用して、単方向性エラーを検出することができる。本明細書において用いる場合、単方向性のエラーとは、第1の二進値が第2の二進値に変換される潜在的なエラーを受けることが知られているが第2の二進値は決して第1の二進値に変換されないというエラーである。この問題は、本発明の実施形態によって解決されるものとは全く異なるが、この問題のためのコードを連想メモリの状況において用いて、少なくともd個の低抵抗経路を生成することができる。かかるコードを実施することに関する情報は、M. Blaumの「Codes for Detecting and CorrectingUnidirectional Errors」、IEEE Computer Soc. Press(カリフォルニア州ロスアラミトス、1993年)において見ることができる。検索ワードが記憶されたワードと不一致である場合に少なくともd個の低抵抗経路を確実とするコードには、データ・ワード・ビットの数を一定に維持しながらパラメータdが大きくなるにつれてビット量が増えるコード・ワードが必要であることに留意すべきである。
本発明の別の態様は、コンピュータにより実施されるプロセスおよびこのプロセスを実行するための装置という形態で具現化することができる実施形態を対象とする。これについて図5を参照して説明する。例えば、連想コンピュータ・メモリを動作させるためのコンピュータにより実施される動作は、コンピュータ・プロセッサによって実行されるコンピュータ・プログラム・コードにおいて具現化される。
実施形態は、コンピュータ使用可能媒体504上に図5に示したようなコンピュータ・プログラム502を含み、コンピュータ・プログラム・コード論理506は、製造品としてタンジブルな媒体に具現化された命令を含む。コンピュータ使用可能媒体504のための製造品の例は、フレキシブル・ディスク、CD−ROM、ハード・ドライブ、ユニバーサル・シリアル・バス(USB)・フラッシュ・ドライブ、または他のいずれかのコンピュータ読み取り可能記憶媒体を含むことができ、コンピュータ・プログラム・コード論理506がコンピュータにロードされてそれによって実行されると、コンピュータが本発明を実施するための装置になる。
実施形態は、コンピュータ・プログラム・コード論理506を含む。これは、例えば記憶媒体に記憶されているか、コンピュータにロードされるかまたはコンピュータによって実行されるかあるいはその両方であり、コンピュータ・プログラム・コード論理506がコンピュータにロードされてそれによって実行されると、コンピュータが本発明を実施するための装置になる。汎用マイクロプロセッサ上で実施された場合、コンピュータ・プログラム・コードは、特定の論理回路を生成するようにマイクロプロセッサを構成する。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を示す。この点で、フローチャートまたはブロック図における各ブロックは、指定された論理機能(複数の機能)を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した2つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方におけるブロックの組み合わせは、特殊目的ハードウェアおよびコンピュータ命令の指定された機能もしくは行為または組み合わせを実行する特殊目的ハードウェア・ベースのシステムによって実施可能であることに留意すべきである。
本明細書において用いた用語は、特定の実施形態を記載する目的のためだけのものであり、本発明を限定することは意図していない。本明細書において用いたように、単数形「1つの(a)、(an)、(the)」は、文脈によって明らかに他の場合が示されない限り、複数形を含むことが意図されている。また、「含む」または「含んでいる」という言葉あるいはその両方は、本明細書において用いられた場合、述べた特徴、整数、ステップ、動作、要素、または構成要素あるいはそれら全ての存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループあるいはそれら全ての存在または追加を除外するものではないことは、理解されよう。
以下の特許請求の範囲における全てのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、具体的に特許請求したような他の特許請求した要素と組み合わせて機能を実行するためのいずれかの構造、材料、または行為を含むことが意図されている。本発明の記載は、例示および記述の目的のために提示したが、網羅的であることや、開示した形態に本発明を限定することは、意図していない。本発明の範囲および精神から逸脱することなく、当業者には多くの変更および変形が明らかであろう。実施形態は、本発明の原理および実際的な用途を最良に説明するため、更に、想定される特定の用途に適した様々な変更と共に様々な実施形態に関して当業者が本発明を理解することを可能とするために、選択し記載したものである。
従って、本出願の本発明について詳細に、その実施形態を参照して記載したが、添付の特許請求の範囲に規定した本発明の範囲から逸脱することなく変更および変形が可能であることは明らかであろう。

Claims (25)

  1. 連想メモリを動作させるための方法であって、
    並列回路において照合線に電気的に結合された複数のメモリ・セルを用意し、前記照合線がメモリ検索動作の間に前記メモリ・セルからの総合電流を受信するように構成されていることと、
    前記メモリ・セルに記憶するためにビット長Lのデータ・ワードを受信することと、
    前記データ・ワードをLよりも大きいビット長のコード・ワードに変換して、前記コード・ワード内の少なくとも1つのコード・ワード・ビットが前記データ・ワード内の少なくとも2つのデータ・ワード・ビットに依存するようにし、前記データ・ワードが検索ワードと一致しない場合、前記メモリ検索動作の間に、前記コード・ワードによって、異なる二進値を有する少なくとも2つのコード・ワード・ビットの不一致を保証することと、
    前記コード・ワードを前記メモリ・セルに記憶することと、
    を含む、方法。
  2. 前記コード・ワードが固定ハミング重みを有するコード・ワード・セットから求められる、請求項1に記載の方法。
  3. 前記コード・ワードが、前記データ・ワードと、前記データ・ワード内のゼロの個数と、を含み、前記個数が二進数系を用いて符号化されている、請求項1に記載の方法。
  4. 前記データ・ワードが第1の二進値および第2の二進値として表される複数の数字を含み、
    前記コード・ワードが、前記データ・ワードと、前記データ・ワード内の前記第1の二進値の符号化した発生数と、を含み、前記第1の二進値の前記符号化した発生数が固定ハミング重みを有する符号化数セットから求められる、請求項1に記載の方法。
  5. 前記データ・ワードが第1の二進値および第2の二進値として表される複数の数字を含み、
    前記コード・ワードが、前記データ・ワードと、前記データ・ワード内の前記第1の二進値の符号化した発生数と、前記データ・ワード内の前記第1の二進値の前記符号化した発生数のビット補数と、を含む、請求項1に記載の方法。
  6. 前記並列回路に沿って少なくともd個の低抵抗経路を生成し、ここでdは正の整数であることを更に含む、請求項1に記載の方法。
  7. 前記コード・ワードが同一ハミング重みの二進ベクトル・セットから選択され、前記二進ベクトルが少なくとも2dであるハミング距離を有する、請求項6に記載の方法。
  8. 前記メモリ検索動作の間に前記データ・ワードが前記検索ワードと一致しない場合、前記検索動作の間に前記メモリ・セルの少なくとも1つを通る照合電流が少なくとも2つの電流範囲のうち起こり得る最も高い電流範囲内にあることを保証するように前記コード・ワードが構成されている、請求項1に記載の方法。
  9. 前記連想メモリにおいて前記検索動作の間に前記データ・ワードと比較するために長さLの前記検索ワードを受信することと、
    前記連想メモリにおいて前記検索動作の間に前記コード・ワードと比較するために前記検索ワードを検索コードに変換することと、
    前記メモリ検索動作の間に前記メモリ・セルからの前記総合電流が閾値未満であるか否かを判定することと、
    を更に含む、請求項1に記載の方法。
  10. 各メモリ・セルが直列回路においてアクセス・デバイスに電気的に結合されたメモリ要素を含み、前記メモリ要素が2つの相補的なメモリ要素抵抗の1つとして二進データを記憶するように構成され、
    前記メモリ検索動作の間に前記アクセス・デバイスの実効抵抗が2つの相補的なアクセス・デバイス抵抗の1つとなるように各メモリ・セルの前記アクセス・デバイスにバイアスをかけること、
    を更に含む、請求項9に記載の方法。
  11. 前記メモリ検索動作の間に前記データ・ワードと比較するためにビット長Lの検索ワードを受信するステップと、
    前記検索ワードをビット長Mの検索コードに変換して、前記データ・ワードと前記検索ワードとの間に少なくとも1ビットの不一致がある場合に前記コード・ワードと前記検索コードとの間のハミング距離がハミング閾値よりも大きいようにする、ステップと、
    前記総合電流が下電流閾値よりも大きく上電流閾値よりも小さい場合に一致を示すステップと、
    を更に含む、請求項1に記載の方法。
  12. 連想メモリ・デバイスであって、
    並列回路において照合線に電気的に結合された複数のメモリ・セルであって、前記照合線がメモリ検索動作の間に前記メモリ・セルからの総合電流を受信するように構成されている、前記複数のメモリ・セルと、
    長さLのデータ・ワードを受信するように構成された受信ユニットと、
    前記メモリ・セルに記憶するために前記データ・ワードをLよりも長いコード・ワードに変換するように構成された符号化ユニットと、を含み、前記コード・ワードのビットの少なくとも1つが前記データ・ワードのビットの少なくとも2つに依存し、前記データ・ワードが検索ワードと一致しない場合、前記メモリ検索動作の間に、前記コード・ワードによって、異なる二進値を有する少なくとも2つのコード・ワード・ビットの不一致を保証する、連想メモリ・デバイス。
  13. 前記コード・ワードが固定ハミング重みを有するコード・ワード・セットから求められる、請求項12に記載の連想メモリ・デバイス。
  14. 前記データ・ワードが第1の二進値および第2の二進値として表される複数の数字を含み、
    前記コード・ワードが、前記データ・ワードと、前記データ・ワード内の前記第1の二進値の符号化した発生数と、を含み、前記第1の二進値の前記符号化した発生数が固定ハミング重みを有する符号化数セットから求められる、請求項12に記載の連想メモリ・デバイス。
  15. 前記データ・ワードが第1の二進値および第2の二進値として表される複数の数字を含み、
    前記コード・ワードが、前記データ・ワードと、前記データ・ワード内の前記第1の二進値の符号化した発生数と、前記データ・ワード内の前記第1の二進値の前記符号化した発生数のビット補数と、を含む、請求項12に記載の連想メモリ・デバイス。
  16. 前記検索動作の間に前記データ・ワードが前記検索ワードと一致しない場合、前記並列回路に沿って少なくともd個の低抵抗経路が生成されることを前記符号化ユニットが保証する、請求項12に記載の連想メモリ・デバイス。
  17. 前記コード・ワードが同一ハミング重みの二進ベクトル・セットから選択され、前記二進ベクトルが少なくとも2dであるハミング距離を有する、請求項16に記載の連想メモリ・デバイス。
  18. 前記コード・ワードが、前記データ・ワードと、前記データ・ワード内のゼロの個数と、を含み、前記個数が二進数系を用いて符号化されている、請求項12に記載のデバイス。
  19. 前記受信ユニットが更に、前記検索動作の間に前記データ・ワードと比較するために長さLの前記検索ワードを受信するように構成され、
    前記符号化ユニットが更に、前記検索動作の間に前記コード・ワードと比較するために前記検索ワードを検索コードに変換するように構成され、
    前記検索動作の間に前記メモリ・セルからの前記総合電流が閾値未満であるか否かを測定するように構成された照合ユニット、
    を更に含む、請求項12に記載の連想メモリ・デバイス。
  20. 各メモリ・セルが直列回路においてアクセス・デバイスに電気的に結合されたメモリ要素を含み、前記メモリ要素が2つの相補的な抵抗の1つとして二進データを記憶するように構成され、
    前記検索動作の間に前記アクセス・デバイスの実効抵抗が2つの相補的なデバイス抵抗の1つとなるように各メモリ・セルの前記アクセス・デバイスにバイアスをかけるように構成されたバイアス・ユニット、
    を更に含む、請求項19に記載の連想メモリ。
  21. 複数の前記アクセス・デバイスが単一の検索線に電気的に結合されるように、前記アクセス・デバイスが検索線に電気的に結合される、請求項20に記載の連想メモリ。
  22. 前記検索動作の間に前記総合電流が前記閾値未満である場合、前記照合ユニットが前記メモリ・セルのメモリ位置を示すように更に構成されている、請求項19に記載の連想メモリ。
  23. 前記データ・ワードが前記検索ワードと一致しない場合、前記検索動作の間に前記メモリ・セルの少なくとも1つを通る照合電流が前記検索動作の間の少なくとも2つの電流範囲のうち起こり得る最も高い電流範囲内にあることを保証するように前記コード・ワードが構成されている、請求項12に記載の連想メモリ。
  24. 前記データ・ワードが検索ワードと一致しない場合、前記コード・ワードが前記メモリ検索動作の間に前記照合線を通る電流を大きくするように構成されている、請求項12に記載の連想メモリ。
  25. コンピュータ読み取り可能メモリにおいて具現化されるコンピュータ・プログラムであって、
    コンピュータ・メモリを動作させるために前記コンピュータ読み取り可能メモリに結合されたプログラム・コードであって、前記コンピュータ・メモリが並列回路において照合線に電気的に結合された複数のメモリ・セルを含み、前記照合線がメモリ検索動作の間に前記メモリ・セルからの総合電流を受信するように構成され、
    前記メモリ・セルに記憶するためにビット長Lのデータ・ワードを受信することと、
    前記データ・ワードをLよりも長いコード・ワードに変換し、前記コード・ワードの少なくとも1つのビットが前記データ・ワードの少なくとも2つのビットに依存し、前記データ・ワードが検索ワードと一致しない場合、前記メモリ検索動作の間に、前記コード・ワードによって、異なる二進値を有する少なくとも2つのコード・ワード・ビットの不一致を保証することと、
    前記コード・ワードを前記メモリ・セルに記憶することと、
    を前記コンピュータ・プログラムに実行させるように前記コンピュータ・コードが構成されている、コンピュータ・プログラム。
JP2011550495A 2009-02-24 2010-01-25 センス・マージンを向上させた連想メモリ・デバイスとその動作方法およびコンピュータ・プログラム(連想メモリにおいてセンス・マージンを向上させるための符号化技法) Expired - Fee Related JP5594908B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/392,049 2009-02-24
US12/392,049 US7881089B2 (en) 2009-02-24 2009-02-24 Coding techniques for improving the sense margin in content addressable memories
PCT/EP2010/050797 WO2010097257A1 (en) 2009-02-24 2010-01-25 Coding techniques for improving the sense margin in content addressable memories

Publications (2)

Publication Number Publication Date
JP2012518860A true JP2012518860A (ja) 2012-08-16
JP5594908B2 JP5594908B2 (ja) 2014-09-24

Family

ID=42133685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011550495A Expired - Fee Related JP5594908B2 (ja) 2009-02-24 2010-01-25 センス・マージンを向上させた連想メモリ・デバイスとその動作方法およびコンピュータ・プログラム(連想メモリにおいてセンス・マージンを向上させるための符号化技法)

Country Status (5)

Country Link
US (1) US7881089B2 (ja)
EP (1) EP2401744B1 (ja)
JP (1) JP5594908B2 (ja)
CN (1) CN102326207B (ja)
WO (1) WO2010097257A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489501B2 (en) 2013-09-19 2016-11-08 Fujitsu Limited Authentication method, authentication device, and system
US10734075B2 (en) 2018-09-06 2020-08-04 Toshiba Memory Corporation Semiconductor storage device and method of reading data therefrom

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100064442A (ko) * 2008-12-05 2010-06-15 한국전자통신연구원 버스 신호의 인코딩, 디코딩 방법 및 장치
US8624217B2 (en) 2010-06-25 2014-01-07 International Business Machines Corporation Planar phase-change memory cell with parallel electrical paths
WO2012015401A1 (en) 2010-07-28 2012-02-02 Hewlett-Packard Development Company, L.P. Rewriting a memory array
US8575008B2 (en) 2010-08-31 2013-11-05 International Business Machines Corporation Post-fabrication self-aligned initialization of integrated devices
US9070435B2 (en) * 2012-09-27 2015-06-30 Broadcom Corporation Pre-computation based ternary content addressable memory
EP2991266B1 (en) * 2013-04-24 2019-02-27 Nec Corporation Encrypted text matching system, method, and computer readable medium
WO2015116184A1 (en) 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Constant hamming weight coding
US9501350B2 (en) * 2014-09-22 2016-11-22 Empire Technology Development Llc Detecting unidirectional resistance drift errors in a multilevel cell of a phase change memory
CN107919375B (zh) * 2016-10-06 2020-08-21 财团法人工业技术研究院 可变电阻装置、物理性不可复制功能电路与控制方法
US9912352B1 (en) * 2017-06-06 2018-03-06 Western Digital Technologies, Inc. Hamming distance based binary representations of numbers
US10831653B2 (en) 2018-05-15 2020-11-10 Micron Technology, Inc. Forwarding code word address
US11003375B2 (en) 2018-05-15 2021-05-11 Micron Technology, Inc. Code word format and structure
US10741244B1 (en) * 2019-06-21 2020-08-11 Macronix International Co., Ltd. Memory and operating method thereof
US11200929B1 (en) * 2020-06-18 2021-12-14 Hewlett Packard Enterprise Development Lp Time division multiplexing (TDM) based optical ternary content addressable memory (TCAM)
US11469764B2 (en) 2020-08-28 2022-10-11 Hewlett Packard Enterprise Development Lp Optical comb source for content-addressable memory encoders
DE102020133802B4 (de) 2020-12-16 2022-12-29 Infineon Technologies Ag Zugriff auf einen assoziativspeicher
CN113539327A (zh) * 2021-07-09 2021-10-22 中国科学院上海微系统与信息技术研究所 一种相变存储单元实现快速逻辑计算装置及数据检索方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491703A (en) * 1992-06-30 1996-02-13 Sgs-Thomson Microelectronics Ltd. Cam with additional row cells connected to match line
JPH10242432A (ja) * 1997-02-27 1998-09-11 Sony Corp 不揮発性半導体記憶装置
JP2002334585A (ja) * 2001-05-02 2002-11-22 Sony Corp 半導体記憶装置
US20050010719A1 (en) * 2003-07-11 2005-01-13 Slavin Keith R. Data encoding for fast CAM and TCAM access times
US20060067097A1 (en) * 2004-09-24 2006-03-30 Chuen-Der Lien Binary and ternary non-volatile CAM
WO2007051205A1 (en) * 2005-10-28 2007-05-03 Qualcomm Incorporated High speed cam lookup using stored encoded key

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0230304A3 (en) 1986-01-21 1991-03-13 Energy Conversion Devices, Inc. Content adressable memory
DE60335465D1 (de) 2003-10-22 2011-02-03 St Microelectronics Srl Über den Inhalt anwählbare Speicherzelle
US7050316B1 (en) 2004-03-09 2006-05-23 Silicon Storage Technology, Inc. Differential non-volatile content addressable memory cell and array using phase changing resistor storage elements
US7711893B1 (en) * 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
US7319608B2 (en) 2005-06-30 2008-01-15 International Business Machines Corporation Non-volatile content addressable memory using phase-change-material memory elements
US7675765B2 (en) 2005-11-03 2010-03-09 Agate Logic, Inc. Phase-change memory (PCM) based universal content-addressable memory (CAM) configured as binary/ternary CAM
KR100900199B1 (ko) 2006-09-19 2009-06-02 삼성전자주식회사 상변화 메모리를 이용하는 캠(ContentAddressable Memory ; CAM) 셀 및 캠

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491703A (en) * 1992-06-30 1996-02-13 Sgs-Thomson Microelectronics Ltd. Cam with additional row cells connected to match line
JPH10242432A (ja) * 1997-02-27 1998-09-11 Sony Corp 不揮発性半導体記憶装置
JP2002334585A (ja) * 2001-05-02 2002-11-22 Sony Corp 半導体記憶装置
US20050010719A1 (en) * 2003-07-11 2005-01-13 Slavin Keith R. Data encoding for fast CAM and TCAM access times
US20060067097A1 (en) * 2004-09-24 2006-03-30 Chuen-Der Lien Binary and ternary non-volatile CAM
WO2007051205A1 (en) * 2005-10-28 2007-05-03 Qualcomm Incorporated High speed cam lookup using stored encoded key

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489501B2 (en) 2013-09-19 2016-11-08 Fujitsu Limited Authentication method, authentication device, and system
US10734075B2 (en) 2018-09-06 2020-08-04 Toshiba Memory Corporation Semiconductor storage device and method of reading data therefrom

Also Published As

Publication number Publication date
US20100214811A1 (en) 2010-08-26
CN102326207B (zh) 2014-10-29
CN102326207A (zh) 2012-01-18
US7881089B2 (en) 2011-02-01
EP2401744A1 (en) 2012-01-04
JP5594908B2 (ja) 2014-09-24
EP2401744B1 (en) 2018-07-25
WO2010097257A1 (en) 2010-09-02

Similar Documents

Publication Publication Date Title
JP5594908B2 (ja) センス・マージンを向上させた連想メモリ・デバイスとその動作方法およびコンピュータ・プログラム(連想メモリにおいてセンス・マージンを向上させるための符号化技法)
TWI497493B (zh) 利用相位改變裝置的高密度內容可定址記憶體
KR101369049B1 (ko) 상변화 디바이스들을 이용하는 3진수 내용 주소화 메모리
CN108717858B (zh) 选择性自参考读取
JP5404559B2 (ja) 連想メモリ・アレイ
US20180149527A1 (en) Mtj-based temperature-sensing device
US7872889B2 (en) High density ternary content addressable memory
US20130346825A1 (en) Error correction device, error correction method and computer program product
US11262948B2 (en) Transformation of binary signals read from a memory
Namba et al. Non-binary orthogonal latin square codes for a multilevel phase charge memory (PCM)
KR102565005B1 (ko) 저항 변화 메모리의 수명 연장 방법 및 그 방법을 이용하는 데이터 저장 시스템
JP2017107620A (ja) 半導体装置及び不揮発メモリ
US20090319867A1 (en) Memory system and memory access method
Ali et al. A reconfigurable arbiter PUF based on STT-MRAM
Qin et al. Time–space constrained codes for phase-change memories
Namba et al. A single and adjacent symbol error-correcting parallel decoder for Reed–Solomon codes
Namba et al. High-speed parallel decodable nonbinary single-error correcting (SEC) codes
US20230095070A1 (en) Determination of a resultant data word when accessing a memory
Evain et al. Error correction schemes with erasure information for fast memories
Sun et al. Two fault tolerance design approaches for hybrid CMOS/nanodevice digital memories
JP5826940B2 (ja) メモリの確率的スイッチングに基づいてadcを設計するためのシステムおよび方法
Chakraborty et al. Current optimized coset coding for efficient rram programming
TWI517161B (zh) 電源電壓產生電路與用於記憶陣列之電源電壓產生電路的操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20130122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130327

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140715

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140804

R150 Certificate of patent or registration of utility model

Ref document number: 5594908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees