JP2022522047A - 連想メモリバッファを備えた連想メモリシステム - Google Patents

連想メモリバッファを備えた連想メモリシステム Download PDF

Info

Publication number
JP2022522047A
JP2022522047A JP2021559961A JP2021559961A JP2022522047A JP 2022522047 A JP2022522047 A JP 2022522047A JP 2021559961 A JP2021559961 A JP 2021559961A JP 2021559961 A JP2021559961 A JP 2021559961A JP 2022522047 A JP2022522047 A JP 2022522047A
Authority
JP
Japan
Prior art keywords
data
vector
memory cell
cam
volatile memory
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.)
Ceased
Application number
JP2021559961A
Other languages
English (en)
Inventor
アミーン ディー. アケル
ショーン エス. エイラート
Original Assignee
マイクロン テクノロジー,インク.
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 マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2022522047A publication Critical patent/JP2022522047A/ja
Ceased legal-status Critical Current

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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

装置(例えば、連想メモリシステム)は、コントローラ、コントローラに結合された第1の連想メモリ及びコントローラに結合された第2の連想メモリを有し得る。コントローラは、入力データが、第1のデータ及び第2のデータと同時に比較されるように、第1の連想メモリに、入力データを第1の連想メモリに格納された第1のデータと比較させ、第2の連想メモリに、入力データを第2の連想メモリに格納された第2のデータと比較させ、第1のデータが無効でありかつ第2のデータが第1のデータに対応するとの判定に応えて、入力データと第1のデータの比較結果を、入力データと第2のデータの比較結果に置き換えるように構成することができる。

Description

本開示は、一般に、連想メモリ、より詳細には、連想メモリバッファを備えた連想メモリシステムに関する。
メモリシステムは、コンピュータ、携帯電話、ハンドヘルド電子デバイスなどといった電子システムに実装され得る。ソリッドステートドライブ(SSD)、組み込みマルチメディアコントローラ(eMMC)デバイス、ユニバーサルフラッシュストレージ(UFS)デバイスなどといった一部のメモリシステムは、ホストからのホスト(例えば、ユーザ)データを格納するための不揮発性ストレージメモリを含み得る。不揮発性ストレージメモリは、電源が入っていないとき、格納されたデータを保持することによって永続的データを提供し、他のタイプのメモリの中でもとりわけ、NANDフラッシュメモリ、NORフラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、ならびに、相変化ランダムアクセスメモリ(PCRAM)、3次元クロスポイントメモリ(例えば、3D XPoint)、抵抗ランダムアクセスメモリ(RRAM)、強誘電体ランダムアクセスメモリ(FeRAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、及びプログラム可能導電性メモリなどの抵抗変化型メモリを含み得る。
様々な抵抗可変メモリセルなどの一部のメモリセルは、メモリセルが、セルにアクセスするのに用いられる信号線の交点に(例えば、ワード線とビット線の交点に)配置されるようなクロスポイントアーキテクチャに配置することができる。抵抗可変メモリセルの状態(例えば、格納データ値)は、例えばメモリセルのプログラムされた抵抗に依存し得る。
いくつかの例では、メモリセルの抵抗は、低閾値電圧(Vt)状態(例えば、「セット」状態)または高Vt状態(例えば、「リセット」状態)にプログラムすることができる。抵抗可変メモリセルの状態(例えば、格納されたデータ値)は、例えば、読み出し電圧または限界電圧と称され得る検知電圧のセルへの(例えば、セル全体への)印加に応えてセルがその導電状態を変化させるかどうか(例えば、切り替えイベントを経験する)かどうかを判定することによって、判定することができる。例えば、限界電圧は、リセット状態に対応するVt(例えば、Vt分布)とセット状態に対応するVt(例えば、Vt分布)の間のマージンに在るように選択することができる。
メモリは通常、ホストが提供したアドレスに応えて、ユーザデータをホストに返す(例えば、読み取り操作中に)。別の形態のメモリは、連想パターンメモリ(APM)としても知られる連想メモリ(CAM)である。いくつかの例では、CAMは、入力データ(例えば、入力データベクトル)を受信し得、検索を実行して入力データがCAMに格納されているかどうかを判定し得る。例えば、CAMは、CAMの格納データ(例えば、格納データベクトル)が入力データと一致するかどうかを判定し得る。
CAMは、コンピュータシステム、データベース、画像もしくは音声認識、バイオメトリクス、データ圧縮、キャッシュメモリコントローラ、またはコンピュータ及び通信ネットワーク(例えば、ネットワークスイッチ、メディアアクセスコントローラ、ネットワークルータなどでの)などでの、高速検索またはパターンマッチングを必要とするアプリケーションでハードウェアベースの検索デバイスとして利用することができる。
本開示のいくつかの実施形態による、装置の簡略化されたブロック図である。 本開示のいくつかの実施形態による、プログラミング直後の不揮発性メモリセルの閾値電圧分布の例の図である。 本開示のいくつかの実施形態による、プログラミング直後の不揮発性メモリセルの閾値電圧分布の別の例の図である。 本開示のいくつかの実施形態による、プログラミング後ある閾値時間長後の不揮発性メモリセルの閾値電圧分布の例の図である。 本開示のいくつかの実施形態による、データ構造の例の図である。 本開示のいくつかの実施形態による、連想メモリの簡略化されたブロック図である。 本開示のいくつかの実施形態による、コントローラで受信した結果ベクトルの図である。 本開示のいくつかの実施形態による、不揮発性連想メモリの一部の図である。 本開示のいくつかの実施形態による、入力データを不揮発性連想メモリに格納されたデータと比較する例の図である。
様々な例で、不揮発性メモリをCAMとして使用することができる。不揮発性メモリCAMを設けることには、揮発性CAM(例えば、SRAM CAM)に比べ様々な利益が存在し得る。例えば、不揮発性CAMは、データの保持に電力を必要とせず、不揮発性メモリセルは揮発性メモリセルと比較してフットプリントが小さいことが多いため、より高いストレージ密度を提供することができる。しかしながら、多くの場合、揮発性CAMは、不揮発性CAMと比較してより高速なアクセス時間(例えば、読み取り/書き込み時間)を提供することができる。
場合によっては、カルコゲニドベースのメモリセルなどの一部の抵抗可変メモリセルに格納されたデータは、メモリセルがプログラムされた(例えば、書き込まれた)直後は有効(例えば、信頼できる)ではない場合がある。したがって、プログラム直後のそのようなメモリセルを確実に読み取ることは可能でない場合がある。例えば、本明細書中でさらに説明するように、そのようなメモリセルは、それらを確実に読み取ることができるまで、ひいてはメモリセルによって格納されたデータが有効となるまで、プログラム後、閾値時間長(例えば、約1ミリ秒)、ドリフトすることを可能とする必要があり得る。したがって、そのような抵抗可変メモリセルを用いるCAMにアクセスすることができる速度は、閾値時間長によって制限することができる。
本明細書中でさらに説明するように、本開示の様々な実施形態は、一部の抵抗可変不揮発性メモリセルに書き込まれたデータは、データが書き込まれた直後は無効であり得るということを考慮することができるCAM実装を提供する。したがって、実施形態は、他の利益の中でもとりわけ、以前のアプローチと比較して向上したアクセス時間を有する不揮発性CAMを提供することができる。例として、いくつかの実施形態は、メインCAMとして不揮発性の第1のCAMを使用し、バッファCAMとして揮発性CAM(例えば、SRAMバッファCAM)などの第2のCAMを使用することができる。例えば、そのような揮発性CAMに格納されたデータは、データが書き込まれてすぐに有効であり得、かくして、データは、データが書き込まれてすぐに、入力データと確実に比較することができる。
いくつかの例では、入力データは、メインCAMに格納されたデータ及びバッファCAMに格納されたデータと同時に比較することができる。メインCAMに格納されたデータが無効(信頼できない)との判定に応えて、例えば、入力データとメインCAMのデータの比較結果が無効であるとの判定に応えて、入力データとメインCAMのデータの比較結果を、入力データとバッファCAMのデータの比較結果に置き換えることができる。例えば、メインCAMのデータ、ひいては入力データとメインCAMのデータの比較結果は、データが第1の連想メモリに書き込まれる時間から入力データが第1の連想メモリのデータと比較される時間までの経過時間が閾値時間長未満であるとき、無効であり得る。例えば、閾値時間長は、データが第1の連想メモリに書き込まれる時間からメインCAMのデータが有効になる、ひいては入力データと第1の連想メモリに書き込まれたデータの比較結果が有効になる時間までの経過時間であり得ることに留意されたい。バッファCAMをメイン不揮発性CAMと併せることによって、例えば、入力データと不揮発性CAMのデータの比較結果が有効になるまでの待機に関連する遅延を排除することができる。
バッファCAMのバッファをメイン不揮発性CAMと併せて用いると、メインCAMと併せてバッファとしてDRAMバッファまたはテーブルを用いる場合と比較して、エネルギー要件、コスト、及び信頼できる比較結果を取得するのにかかる時間を削減することができる。例えば、DRAMまたはテーブルの使用には、入力データと比較されているメインCAMのデータに対応するデータを識別するために、DRAMまたはテーブルのコンテンツ全体をスキャンするという時間のかかるプロセスが含まれ得る。
図1Aは、本開示のいくつかの実施形態による、コンピューティングシステム100の形態の装置の簡略化されたブロック図である。コンピューティングシステム100は、例えば、周辺コンポーネント相互接続エクスプレス(PCIe)CAMシステムであり得るCAMシステム102の形態の装置を含む。
CAMシステム102は、コントローラ104、バス108を介してコントローラ104に結合されたCAM106-1から106-8、ならびにコントローラ104に結合されたCAM110-1及び110-2を含み得る。8個のCAM106及び2個のCAM110が示されているが、任意の数のCAM106及びCAM110が存在し得る。いくつかの例では、CAM106は、メイン(例えば、一次)CAMと呼ばれ得、CAM110は、バッファCAMと呼ばれ得る(例えば、CAM110は、CAM106のバッファとして機能することができるので)。いくつかの例では、CAM106-1から106-8を含み得る単一のメインCAM106が在り得、CAM110-1及び110-2を含み得る単一のバッファCAM110が在り得る。本明細書中では、「CAM106」及び/または「メインCAM」は、CAM106-1から106-8の1つまたは複数を指すのに用いられ、「CAM110」及び/または「バッファCAM」は、CAM110-1及び110-2の1つまたは複数を指すのに用いられる。
コントローラ104は、入力データがCAM106及び110に格納されたデータと同時に比較されるように、CAM106に、(例えば、ホスト103からの)入力データベクトルなどの入力データを、CAM106に格納された格納データベクトルなどの格納データと比較させることができ、CAM110に、入力データを、CAM110に格納されたデータと比較させることができる。コントローラ104は、CAM106に格納されたデータが無効である、ひいては入力データとCAM106に格納されたデータの比較結果が無効であるとの、そして、例えば、CAM110に格納されたデータがCAM106に格納されたデータに対応するとの判定に応えて、入力データとCAM106に格納されたデータの比較結果を、入力データとCAM110に格納されたデータの比較結果に置き換えることができる。
コントローラ104は、CAM106にデータが書き込まれる時間から入力データがCAM106のデータと比較される時間までの経過時間が閾値時間長未満であると判定することによって、CAM106に格納されたデータが無効であると判定することができる。例えば、閾値時間長は、データがCAM106に書き込まれる時間からCAM106に書き込まれたデータが有効になる時間までの経過時間であり得ることに留意されたい。
いくつかの例では、CAM106は不揮発性CAMであり得、CAM110はSRAM CAMなどの揮発性CAMであり得る。例えば、CAM110に格納されたデータは、SRAMメモリセルに格納され得、CAM106に格納されたデータは、不揮発性メモリセルに格納され得る。CAM106に格納されたデータは、例えば、データがCAM106でプログラムされるときからドリフトすることができる。いくつかの例では、CAM106は、抵抗可変メモリセルなどの、ドリフトすることができるメモリセルを含み得る、3D XPointデバイスなどのクロスポイントデバイスであり得る。
様々な例では、コントローラ104は、入力データベクトルと、バッファCAM(例えば、CAM110)またはメインCAM(例えば、CAM106)に格納されたデータベクトルの一致を検証するのに用いることができる一致検証回路を含み得る。例えば、入力データベクトルが格納データベクトルと一致する旨受信したことに応えて、一致検証回路は、バッファCAMまたはメインCAMに、格納データベクトルを読み取らせ、バッファCAMまたはメインCAMから読み取られたデータベクトルをコントローラ104に返させることができる。次に、一致検証回路は、返されたデータベクトルを入力データベクトルと比較して、以前に示された一致が有効であるかどうかを判定することができる。
いくつかの例では、メインCAM及びバッファCAMは、入力データベクトルと格納ベクトルの一致を検証するのに用いることができる一致検証回路を含み得る。例えば、入力データベクトルが格納データベクトルと一致していることに応えて、一致検証回路は、格納データベクトルを読み取り、読み取られたデータベクトルを入力データベクトルと比較して、以前に示された一致が有効であるかどうかを判定することができる。一致が無効である場合、一致検証回路は、比較結果を一致から不一致に変更し、その結果をコントローラ104に送信することができる。メインCAMの一致検証回路が入力データと格納データベクトルの一致を無効と判定する様々な例では、コントローラ104は、閾値時間長を増加させ得る。
図1Bは、本開示のいくつかの実施形態による、プログラミング(書き込み)直後の不揮発性メモリセルのVt分布の例を示す。図1Cは、本開示のいくつかの実施形態による、プログラミング直後の不揮発性メモリセルのVt分布の別の例を示す。図1Dは、本開示のいくつかの実施形態による、プログラミング後、ある閾値時間長後の不揮発性メモリセルのVt分布の例を示す。
図1Bから1Dの例では、Vt分布105はセット状態と称され得、Vt分布107はリセット状態と称され得る。図1Bから1Dの例では、Vt分布105は、論理のデータ値1を格納するようにプログラムされたメモリセルに対応し、Vt分布107は、論理のデータ値0を格納するようにプログラムされたメモリセルに対応する。しかしながら、実施形態は、この割り当てエンコーディングに限定されるものではない。図1Bから1Dの例は、メモリセルをセット状態からリセット状態にプログラミングすることを表すことに留意されたい。
図1Bから1Dの例では、エッジ電圧E1は、分布105の上縁に対応するVtとして定義することができ、エッジ電圧E2は、分布107の下縁に対応するVtとして定義することができる。マージン(例えば、ウィンドウ)Wは、E2とE1の差である。例えば、W=E2-E1である。図1Bから1Dの例では、VDMは、メモリセル(例えば、メモリセルによって格納されたデータ値)の格納状態(例えば、「1」または「0」)を判定するのに用いることができる限界電圧を表す。いくつかの例では、VDMは、メモリセルによって格納されたデータ値と比較される入力データ値に対応し得る。図1Dに示すように、限界電圧VDMは、マージンWに在るように選択することができる。
場合によっては、一部の抵抗可変メモリセルなどの様々な不揮発性メモリセルが、例えばセット状態からリセット状態にプログラムされるとき、メモリセルのデータは、プログラミング直後には有効でない場合がある。これは、図1B及び1Cに示すように、マージンWが、プログラミング直後セット状態とリセット状態をVDMが確実に区別するのに不十分であり得るからである。
場合によっては、図1Bに示すように、プログラミング直後、マージンWは小さすぎてVDMがマージンWにない場合がある。例えば、VDMは、マージンWの外側そしてVt分布107の内側に在る。場合によっては、図1Cに示すように、セット状態及びリセット状態に対応するVt分布が実際にオーバーラップし得る。例えば、図1CのマージンWは、エッジ電圧E1がエッジ電圧E2よりも大きいので、負である。図1Bの例のように、VDMは図1CにおいてVt分布107の内側に在ることに留意されたい。
図1B及び1Cに示すように、プログラミング直後にメモリセルにVDMを印加すると、無効な結果を生成し得る。図1B及び1Cの例では、例えば、VDMよりも小さいVtsを有する分布107のメモリセルは、VDMの印加に応えてデータ値1を格納すると判定され得、VDMよりも大きいVtsを有するVt分布107のメモリセルは、データ値0を格納すると判定され得る。かくして、図1B及び1Cのメモリセルに格納されたデータは無効であり得る。
しかしながら、一部の抵抗可変メモリセルのVtsは、例えば、リセット状態にプログラムされた後、時間の経過とともにドリフト(例えば、より高い絶対値に)し得る。Vtsがドリフトするにつれて、リセットVt分布は、図1B及び1Cに矢印で示すように、セットVt分布から離れ得、マージンWは増加する。マージンWが、例えば図1Dに示すように、限界電圧がVt分布105にもVt分布107にも存在せずマージンに存在するポイントまで増加したとき、メモリセルをVDMを用いて読み取った結果は有効であり得る(例えば、有効であると判定され得る)。かくして、図1Dのメモリセルに格納されたデータは有効であり得る。例えば、VDMに対応するデータ値を有する入力データとメモリセルに格納されたデータの比較、ひいてはそれらの比較の結果は、図1Dに示されている状況では有効であると判定され得るが、図1B及び1Cに示されている状況では無効であると判定され得る。
いくつかの例では、メモリセルがプログラムされる時間(たとえば、とき)からメモリセルに格納されたデータが有効になる時間までの経過時間が、本明細書中で言及される閾値時間長であり得る。例えば、図1Dは、閾値時間長以上であり得る、メモリセルがプログラムされたときからの経過時間に対応し得る。メモリセルが(例えば、データベクトルが)プログラムされる時間は、例えばプログラミング電圧がメモリセルに印加またはメモリセルから削除される時間であり得る。いくつかの例では、閾値時間長は、約1ミリ秒であり得る。
不揮発性メモリセルに格納されたデータは、閾値時間長未満の、データが書き込まれる時間からの経過時間において無効であり得、閾値時間長以上の、データが書き込まれる時間からの経過時間において有効であり得る。かくして、いくつかの例では、入力データと不揮発性メモリセルに格納されたデータの比較、ひいてはそれらの比較の結果は、閾値時間長未満の、データが書き込まれる時間から入力データがデータと比較される時間までの経過時間において無効であり、閾値時間長以上の、データが書き込まれる時間から入力データがデータと比較される時間までの経過時間において有効であると判定され得る。
図1Bから1Dの例では、セット状態及びリセット状態に対応するVtsならびにVDMは正であり、リセット状態に対応するVtsは、正の方向で、セット状態に対応するVtsよりも大きくドリフトはVtsを正の方向に増加させるように機能する。しかしながら、セット状態及びリセット状態に対応するVtsならびにVDMは負であり得、リセット状態に対応するVtsは、負の方向で、セット状態に対応するVtsよりも大きくドリフトはVtsを負の方向に増加させるように機能する。
少なくとも今説明した理由により、入力データとCAM106のメモリセルに格納されたデータの比較は、少なくとも閾値時間長未満の時間において無効であり得る。しかしながら、CAM110に格納されたデータは、書き込まれてすぐに有効であり得る。こういうわけで、CAM106のデータが無効である閾値時間長の間、入力データとCAM106に格納されたデータの比較結果の代わりに、入力データとCAM110に格納されたデータの比較結果を用いることができる。
いくつかの例では、コントローラ104は、CAM106からデータを読み取り、読み取られたデータをCAM106のプログラムされることを意図されたデータと比較することによって、例えば、読み取られたデータをCAM110の対応するデータと比較し、読み取られたデータが不揮発性メモリセルのプログラムされることを意図されたデータと一致するかどうかを判定することによって、CAM10に格納されたデータが有効であるかどうかを判定することができる。例えば、コントローラ104は、読み取られたデータがCAM106のプログラムされることを意図されたデータと一致すると判定したことに応えて、読み取られたデータが有効であると判定することができ、読み取られたデータがCAM106のプログラムされることを意図されたデータと不一致であると判定したことに応えて、読み取られたデータが無効であると判定することができる。コントローラ104は、CAM106に格納されたデータが有効であると判定することによって、入力データとCAM106に格納されたデータの比較が有効であると、かつ、CAM106に格納されたデータが無効であると判定することによって、入力データとCAM106に格納されたデータの比較が無効であると判定することができることに留意されたい。
いくつかの例では、コントローラ104は、入力データベクトルとCAM106のデータベクトルの比較結果が有効であるかどうか、ひいてはCAM106のデータベクトルが有効であるかどうかを、結果を、入力データベクトルとCAM106のデータベクトルに対応するCAM110のデータベクトルの比較結果と比較することによって、判定することができる。結果が一致する場合、入力データベクトルとCAM106のデータベクトルの比較結果、ひいてはCAM106のデータベクトルは有効である。結果が不一致である場合、入力データベクトルとCAM106のデータベクトルの比較結果、ひいてはCAM106のデータベクトルは無効である。
いくつかの例では、コントローラ104は、メインCAM106に、データベクトルをメインCAM106及びバッファCAM110に同時に書き込みさせることができる。コントローラ104は、データベクトルがメインCAM及びバッファCAMに同時に書き込まれるたびに(例えば、データベクトルがメインCAM及びバッファCAMに同時に書き込まれることに応えて)、(例えば、コントローラ104における)ルックアップ(例えば、マッピング)テーブル112などのデータ構造を生成することができる。いくつかの例では、コントローラ104は、ルックアップテーブル112を管理することができる。
図1Eは、本開示のいくつかの実施形態による、ルックアップテーブル112の形態のデータ構造の例を示す。ルックアップテーブル112は、メインCAMのデータベクトルが無効である間、メインCAMのデータベクトルの位置(例えば、位置のアドレス)をバッファCAMの対応するデータベクトルの位置(例えば、位置のアドレス)にマッピングするのに用いることができる(例えば、順序付けられた並びの)エントリ114-1から114-Nを含み得る。
例えば、データベクトルを格納しているメインCAMのメモリセルのグループの位置を、データベクトルを格納しているバッファCAMのメモリセルのグループの位置にマッピングすることができる。エントリ114は、メインCAMのデータベクトルの位置のアドレス(例えば、アドレス)、メインCAMのデータベクトルのアドレスがマッピングされるバッファCAMの対応するデータベクトルのアドレス、及び、エントリ114で指定されたメインCAMのデータベクトルに対応するタイムスタンプを含み得る。メインCAM及びバッファCAMのデータベクトルのアドレスは、物理アドレスと呼ばれ得ることに留意されたい。
タイムスタンプは、データベクトルが、エントリ114で指定されたメインCAMアドレスにプログラムされた時間であり得る。コントローラ104は、例えばエントリ114に、メインCAMのデータベクトルのアドレス、バッファCAMのデータベクトルのアドレス、及びデータベクトルがメインCAMでプログラムされた時間を書き込むことによって、ルックアップテーブル112を管理することができる。
いくつかの例では、バッファCAMの格納空間は、バッファCAM及びメインCAMに同時に書き込まれた全てのデータベクトルを格納するのに十分であり得る。しかしながら、メインCAMに書き込まれるデータベクトルの量がバッファCAMの格納空間を超える場合、バッファCAMで空間が使用可能になるまで、メインCAM及びバッファCAMでのデータベクトルの同時書き込みを遅延させることができる。例えば、コントローラ104は、バッファCAMがいっぱいであるとの判定に応えて、バッファCAMにおいて以前に格納されたデータベクトルがバッファCAMから削除されるまで、同時書き込みを遅延させることができる。コントローラ104は、以前に格納されたデータベクトルが、無効であるメインCAMのデータベクトルにもはや対応しないとの判定に応えて、バッファCAMに、以前に格納されたデータベクトルをバッファCAMから削除させることができる。
コントローラ104は、ルックアップテーブル112を用いて、入力ベクトルと同時に比較されているメインCAM及びバッファCAMのデータベクトルが互いと対応するかどうかを判定することができる。メインCAM及びバッファCAMが入力データベクトルをメインCAM及びバッファCAMのデータベクトルと同時に比較していることに応えて、コントローラ104は、ルックアップテーブル112に、メインCAMのデータベクトルのアドレスに対応するエントリがあるかどうかを判定することができる。エントリがない場合、コントローラ104は、メインCAMのデータベクトルはバッファCAMのデータベクトルに対応していないという判定、及び/または、メインCAMのデータベクトルは有効である;例えば、メインCAMのデータベクトルと入力データベクトルの比較結果は有効であるという判定をなすことができる。したがって、コントローラ104は、入力データベクトルとメインCAMのデータベクトルの比較結果を用いることができる。
ルックアップテーブル112に、メインCAMのデータベクトルのアドレスに対応するエントリ114がある場合、コントローラ104は、メインCAMのデータベクトルは、アドレスがそのエントリ114にあるバッファCAMのデータベクトルに対応するという判定をなすことができ、メインCAMのデータベクトルが有効であるかどうかをそのエントリ114のタイムスタンプから判定することができる。
例えば、コントローラ104は、タイムスタンプに指定された時間から比較の時間までの経過時間を判定することができる。経過時間が閾値時間長未満である場合、メインCAMのデータベクトルは無効であり(例えば、比較に対して)、メインCAMのデータベクトルのアドレスは、バッファCAMのデータベクトルのアドレスにマッピングされる。例えば、メインCAMのデータベクトルが無効であるという判定に応えて、入力データベクトルとバッファCAMのデータベクトルの比較結果を、入力データベクトルとメインCAMのデータベクトルの比較結果の代わりに用いることができる。
経過時間が閾値時間長以上の場合、メインCAMのデータベクトルは有効である。いくつかの例では、コントローラ104は、エントリに指定されたアドレスを有するデータベクトルが有効であると判定したことに応えて、ルックアップテーブル112からエントリを削除、すなわちエントリのアドレスマッピングを無効化することができる。例えば、メインCAMのデータベクトルが有効であると判定したことに応えて、有効であると判定されたメインCAMのデータベクトルに対応するバッファCAMのデータベクトルは、バッファCAMから削除することができる。例えば、閾値時間長は、事前決定し、コントローラ104に格納することができることに留意されたい。
いくつかの例では、タイムスタンプは、メインCAMのデータベクトルが有効になる(例えば、有効になると見なされる)時間であり得る。例えば、コントローラ104は、エントリ114に指定されたメインCAMアドレスにデータベクトルがプログラムされる時間に閾値時間長を加えて、タイムスタンプを取得することができる。コントローラ104は、エントリがアクセスされる時間をタイムスタンプと比較することができる。時間がタイムスタンプよりも早い(例えば未満の)場合、エントリに対応する、メインCAMのデータベクトルは無効である。時間がタイムスタンプよりも遅い(例えば、大きい)または等しい場合、データベクトルは有効である。
図1Eのルックアップテーブル112はタイムスタンプを含むが、実施形態はそのように限定されるものではなく、例えばタイムスタンプは省略することができる。タイムスタンプが省略されている実施形態の場合、ルックアップテーブル112のエントリの数は、メインCAMが閾値時間長内に書き込むことができるデータベクトルの数に対応し得る。例えば、バッファCAM及びメインCAMが同時にデータベクトルを書き込むたびに各マッピングは各エントリに書き込まれ得、N個のエントリすべてが閾値時間長内にマッピングを含み、かくしてルックアップテーブル112が閾値時間長内にいっぱいであるようにする。これは、各マッピングがメインCAMの無効なデータベクトルに対応するように各マッピングが閾値時間長内にメインCAMに書き込まれたデータベクトルに対応することを意味する。
いくつかの例では、ルックアップテーブル112は、循環的に書き込みすることができる(例えば、先入れ先出し(FIFO)法を用いて)。例えば、ルックアップテーブル112がいっぱいである場合、既存のマッピングを、最も古いマッピングが最初に上書きされる(例えば、無効化される(削除される))などのように、既存のマッピングが書き込まれた順序で、新しいマッピングで上書きすることができる。例えば、ルックアップテーブル112のN個のマッピングは閾値時間長内にメインCAMに書き込まれたN個のデータベクトルに対応するので、最も古いマッピングは、少なくとも閾値時間長の間、ルックアップテーブル112に格納することができ、したがって、メインCAMの対応するデータベクトルが有効であるとき、上書きすることができる。
かくして、各マッピングは、メインCAMのその対応するデータベクトルが有効であるとき、上書きすることができる。したがって、コントローラ104は、ルックアップテーブル112の対応するマッピングがタイムスタンプを有さないことを把握したことに応えて、メインCAMのデータベクトルは無効であると判定することができる。例えば、コントローラ104は、マッピングを用いて、入力データベクトルとメインCAMのデータベクトルの比較結果を、入力データベクトルとバッファCAMのデータベクトルの比較結果に置き換えることができる。コントローラ104はまた、入力データベクトルと、ルックアップテーブル112がマッピングを有さないメインCAMの様々なデータベクトルの比較結果も、それらのデータベクトルは有効であり得るので、用いることができる。例えば、コントローラ104は、マッピングを新しいマッピングで上書きしたことに応えて、入力データベクトルと、上書きされたマッピングに対応するメインCAMに格納されたデータベクトルの比較を用いることができる。
バッファCAMは、バッファCAMが閾値時間長内にデータベクトルでいっぱいになるように、閾値時間長内にメインCAMに書き込むことができるものに対応する量のデータベクトルを格納するようにサイズ設定することができる。これは、バッファCAMの各データベクトルはメインCAMの無効なデータベクトルに対応することを意味する。
いくつかの例では、バッファCAMは、ルックアップテーブル112と関連して説明されたのと同様の循環的な方法で書き込むことができる。例えば、バッファCAMがいっぱいになると、既存のデータベクトルは、バッファCAMの最も古いデータベクトルが最初に上書きされる(例えば削除される)などのように既存のデータベクトルが書き込まれた順序で、新しいデータベクトルで上書きすることができる。例えば、データベクトルは閾値時間長内にメインCAM及びバッファCAMで同時に書き込まれるので、最も古いデータベクトルは、少なくとも閾値時間長の間バッファCAMに格納することができ、かくして、メインCAMの対応するデータベクトルが有効であるとき上書きすることができる。
コントローラ104は、入力データベクトルとメインCAMのデータベクトルの比較結果を、対応するベクトルがバッファCAMにある限り、入力データベクトルとバッファCAMの対応するデータベクトルの比較結果に置き換えることができる。コントローラ104はまた、入力データベクトルと、バッファCAMにないメインCAMの様々なデータベクトルの比較結果も、それらのデータベクトルは有効であり得るので、用いることができる。例えば、コントローラ104は、バッファCAMの対応するデータベクトルを新しいデータベクトルで上書きしたことに応えて、入力データベクトルとメインCAMに格納されたデータベクトルの比較を用いることができる。
いくつかの例では、コントローラ104は、データベクトルのホスト103から受信した論理アドレスをメインCAMのデータベクトルの物理アドレスにマッピングすることができる論理から物理(L2P)へのマッピングテーブルを含み得る。
コントローラ104は、他のタイプのコントローラの中でもとりわけ、フィールドプログラマブルゲートアレイ(FPGA)及び/または特定用途向け集積回路(ASIC)であり得る。ホスト103は、様々な他のタイプのホストの中でもとりわけ、例えば、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、モバイルデバイス(例えば、携帯電話)、ネットワークサーバ、インターネットオブシングス(IoT)対応デバイス、またはメモリカードリーダなどのホストシステムであり得る。例えば、ホスト103は、バスを含み得るインターフェース116を介して(例えば、コントローラ104を介して)CAMシステム102にアクセス可能な1つまたは複数のプロセッサを含み得る。インターフェース116は、様々な数あるものの中でも、シリアルアドバンストテクノロジアタッチメント(SATA)、PCIe、またはユニバーサルシリアルバス(USB)などの規格化されたインターフェースであり得る。
いくつかの例では、CAMシステム102は、コンピューティングシステム100のメモリシステムの一部であり得る。例えば、メモリシステムは、SSD、UFSデバイス、eMMCデバイスなどのようなストレージシステムであり得る。CAMシステム102がメモリシステムの一部であり得る様々な例では、コントローラ104は、メモリシステムに結合されメモリシステムの様々なメモリデバイスを制御するように構成されたメモリシステムコントローラ(例えば、SSDコントローラ、特定用途向け集積回路ASIC、プロセッサなど)の一部であり得る。
図2は、本開示のいくつかの実施形態による、CAM220の簡略化されたブロック図である。例えば、CAM220はメインCAMまたはバッファCAMとして構成することができる。CAM220は、入力データレジスタ224に結合することができるCAMアレイ222を含む。CAMアレイ222は、データを(例えば、格納データベクトルの形で)格納することができ、入力データレジスタ224は、格納データベクトルと比較するために、コントローラ204(例えば、コントローラ104であり得る)から入力データベクトルを受信することができる。CAM220がバッファCAMである例では、CAMアレイ222は、SRAMセルを有するSRAMメモリアレイであり得る。CAM220がメインCAMである例では、CAMアレイ222は、抵抗可変メモリセル(例えば、クロスポイント式に配置される)などの、少なくとも閾値時間長未満の時間の間無効であり得る不揮発性メモリセルを有する不揮発性メモリアレイであり得る。
CAM220は、CAM220の内部動作を指示することができCAMアレイ222を管理することができる制御回路225(例えば、制御ステートマシン)を有し得る。制御回路225は、制御インターフェース226を介してコントローラ204から制御信号を受信することができる。例えば、コントローラ204は、制御回路225に、入力データベクトルをCAMアレイ222に格納されたデータベクトルと比較させることができ、制御回路225に、データベクトルをCAMアレイ222に書き込ませることができる。様々な例では、コントローラ225は、図1Aに関連して前述した一致検証回路を含み得る。
検出器229は、線230-1から230-M(例えば、一致線)によってCAMアレイ222に結合することができる。例えば、それぞれの線230-1から230-Mの各々は、CAMアレイ222に格納された各データベクトルに対応し得る。CAM220がバッファCAMである例では、線230の数は、ルックアップテーブル112のエントリ114の数に等しくあり得る。
検出器229は、格納データベクトルが入力データベクトルと一致するかどうかを検出することができ、それぞれの格納データベクトルごとに、それぞれの格納データベクトルが入力データベクトルと一致するかどうかを示す各結果(例えば、データビット)を生成することができる。例えば、図2に示されるように、検出器229は、各格納データベクトルが入力データベクトルと一致したことを示す論理値1(1)を有するデータビットを生成し得、各格納データベクトルが入力データベクトルと一致しなかった(例えば不一致だった)ことを示す論理値ゼロ(0)を有するデータビットを生成し得る。しかしながら、開示はそのように限定されるものではなく、論理1と論理0の役割を逆にすることができる。いくつかの例では、ベクトル比較の結果を組み合わせて、各格納ベクトルに対応するコンポーネント(例えば、1または0)を有する結果(例えば、出力)ベクトル235を形成することができる。
検出器229は、各格納ベクトルのアドレスを、結果ベクトル235の(例えば、各コンポーネントの)各結果に関連付ける(例えば、リンクする)ように構成することができる。いくつかの例では、検出器229は、線230-1から230-Mの各々に結合されたセンスアンプ(例えば、図2には示されていない)を有し得る。例えば、各センスアンプは、センスアンプが一致それとも不一致を検出するかに応じて、論理1または0を生成するように構成することができる。結果ベクトル235及びコンポーネントの関連アドレスは、入力/出力(I/O)バッファ232に、インターフェース234を介してコントローラ204に出力するために送信することができる。図1Aの文脈において、結果ベクトル及びコンポーネントの関連アドレスは、CAM106及びCAM110から(例えば、同時に)コントローラ104に送信することができることに留意されたい。
図3は、本開示のいくつかの実施形態による、コントローラ304で受信した結果ベクトルを示す。例えば、コントローラ304(例えば、コントローラ104または204であり得る)は、結果ベクトル335-メインをメインCAMから及び結果ベクトル335-バッファをバッファCAMから同時に受信することができる。結果ベクトル335-メインは、アドレス340-1から340-8にそれぞれ関連付けられたコンポーネント(例えば、コンポーネントデータ値01101001)を有し、結果ベクトル335-バッファは、アドレス342-1から342-8にそれぞれ関連付けられたコンポーネント(例えば、コンポーネントデータ値00100101)を有する。しかしながら、結果ベクトル335は、8個のコンポーネントに限定されるものではなく、任意の量のコンポーネントを有し得る。さらに、結果ベクトル335-メイン及び335-バッファは、異なる量のコンポーネントを有し得る。コントローラ304は、ルックアップテーブル312(例えば、ルックアップテーブル112であり得る)を有する。
メインCAMが入力データベクトルをメインCAMの格納データベクトルと比較しバッファCAMが入力データベクトルをバッファCAMの格納データベクトルと同時に比較したことに応えて、結果ベクトル335-メイン及び335-バッファを同時に生成することができる。例えば、メインCAMの格納データベクトルは、それぞれアドレス340-1から340-8を有するメインCAMの位置にそれぞれ格納することができ、バッファCAMの格納データベクトルは、それぞれアドレス342-1から342-8を有するバッファCAMの位置にそれぞれ格納することができる。
結果ベクトル335-メイン及び335-バッファを受信すると、コントローラ304は、アドレス340-1から340-8を、ルックアップテーブル112のエントリ114のメインCAMアドレスと比較することができる。アドレス340-1から340-8のいずれかがルックアップテーブル112のメインCAMアドレスと一致しない場合、コントローラ304は、それらのアドレスを有するメインCAMのデータベクトルが有効であると判定することができ、それらのアドレスと関連付けられた結果ベクトル335-メインのコンポーネントの結果を有効として受け入れることができる。例えば、アドレス340-2、340-4、340-5、及び340-7は、ルックアップテーブル112のメインCAMアドレスのいずれとも一致しない場合があり、それらのアドレスと関連付けられた結果ベクトル335-メインのコンポーネントは有効と見なされ得る。
さらに、コントローラ304は、ルックアップテーブル112のエントリのメインCAMアドレスと一致するアドレスを有するメインCAMのデータベクトルが有効であるかどうかを、そのエントリのタイムスタンプから判定することができる。例えば、アドレス340-1、340-3、340-6、及び340-8は、それぞれ、エントリ114-2、114-4、114-5、及び114-7のメインCAMアドレスと一致する場合がある。次に、コントローラ304は、前述のように、アドレス340-1、340-3、340-6、及び340-8を有するメインCAMのデータベクトルが有効であるかどうかを、エントリ114-2、114-4、114-5、及び114-7のタイムスタンプから判定し得る。例えば、コントローラ304は、アドレス340-1及び340-8を有するベクトルが有効であると判定する場合があり、エントリ114-2及び114-7をクリアする場合があり、それによって、それらのエントリのマッピングを無効化する。コントローラ304はまた、アドレス340-1及び340-8を有するメインCAMのデータベクトルが有効であると判定したことに応えて、アドレス340-1及び340-8に対応するアドレス342-1及び342-8を有するバッファCAMのデータベクトルをバッファCAMから削除する場合がある。
しかしながら、コントローラ304は、アドレス340-3及び340-6を有するベクトルが無効である、かくして、アドレス340-3及び340-6と関連付けられた結果ベクトル335-メインのコンポーネントの結果(例えば、それぞれ論理1及び論理0)は無効であると判定する場合がある。例では、エントリ114-4及び114-5は、図3に示すように、アドレス340-3及び340-6をそれぞれバッファCAMのデータベクトルのアドレス342-1及び342-8にマッピングする場合がある。マッピングにより、データコンポーネント01001101を有する結果データベクトルがもたらされる。
アドレス340-1から340-8及び342-1から342-8は物理アドレスであり得ることに留意されたい。コントローラ304は、L2Pマッピングテーブル350などのL2Pデータ構造を用いて、それぞれの物理アドレス340-1から340-8をそれぞれの論理アドレスにマッピングすることができ、アドレス340-3及び340-6はそれぞれアドレス342-1及び342-8にマッピングされている。次に、コントローラ304は、結果ベクトルのそれぞれのデータコンポーネント01001101をそれぞれの論理アドレスに関連付け、関連付けられた論理アドレスを有する結果ベクトルをホスト103に出力することができる。このようにして、コントローラ304は、どのデータベクトルが入力データと一致し、どのデータベクトルがデータベクトルと不一致かをホスト103に示すことができる。例えば、ホスト103は、論理アドレスからの論理アドレス空間において、どのデータベクトルが入力データベクトルと一致し、どのベクトルが入力データベクトルと不一致かを判定することができる。
いくつかの例では、コントローラ304は、ホスト103に対して、入力データベクトルと一致したベクトルに対応する論理アドレスのみを示し得る。例えば、コントローラ304は、論理1のデータ値を有する結果ベクトルのコンポーネントにマッピングされた論理アドレスを出力し得る。コントローラ304は、例えば、物理アドレス340-2、340-5、340-6、及び340-8にマッピングされたそれぞれの論理アドレスを出力し得、アドレス340-3は、論理0と関連付けられたアドレス342-1にマッピングされていること、及びアドレス340-6は、論理1と関連付けられたアドレス342-8にマッピングされていることに留意されたい。
図4は、本開示のいくつかの実施形態による、不揮発性CAMの一部を示す。例えば、図4は、メインCAMの不揮発性CAMアレイの、タイル452といった一部を示す。いくつかの例では、各メインCAMのCAMアレイは、いくつかのメモリタイル452を有し得る。各メモリタイル452は、データベクトルプレーン455-1から455-Jなどの多数のデータプレーンを有し得る。
各データベクトルプレーン455は、ワード線457-1から457-8を有し得る。ワード線457-1から457-8の各々は、ビット線459-1から459-8と交差し得る。かくして、データベクトルプレーン455は、クロスポイントデータベクトルプレーンであり得る。ワード線とビット線の各交点に、抵抗可変メモリセルなどのメモリセル461が存在し得る。いくつかの例では、ビット線459に共通結合されたメモリセルのグループ(例えば、メモリセルの列)は、データベクトルを格納することができる。例えば、ビット線459-1から459-8にそれぞれ共通結合されたメモリセルの列は、それぞれ、データベクトル463-1から463-8を格納することができる。8つのビット線及び8つのワード線が示されているが、任意の数のビット線及びワード線が存在し得る。
各ベクトルプレーン455のビット線459-1から459-8は、それぞれ、センスアンプ465-1から465-8に結合することができる。センスアンプ465-1から465-8は、それぞれ、入力データベクトル466と格納ベクトル463-1から463-8の比較結果を生成することができる。例えば、結果は、結果ベクトル335-メインであり得る結果ベクトル435のコンポーネントであり得る。いくつかの例では、メモリタイルの格納データベクトルは、一度に1プレーンずつ(例えば、プレーンごとに)入力データベクトル466と比較することができる。
格納ベクトルの位置は、いくつかの例では、CAMシステム102のCAM106などの、CAMシステムのCAMの位置、CAMのメモリタイルの位置、メモリタイルのベクトルプレーンの位置、及びベクトルプレーンの格納データベクトルの位置を指定することによって、指定することができる。例えば、格納データベクトルの位置を指定するアドレスは、CAMシステムのCAMの位置、CAMのメモリタイルの位置、メモリタイルのプレーンの位置、及びベクトルプレーンのデータベクトルの位置を指定することができる。
図5は、本開示のいくつかの実施形態による、入力データを、不揮発性CAMに格納されたデータと比較する例を示す。例えば、図5では、入力データベクトル566は、メインCAMのベクトルプレーン555のデータベクトル563-1から563-8と同時に比較されている。入力データベクトル566は、例えば、ビットのビット1からビット8にそれぞれ対応するコンポーネントデータ(例えば、ビット)値00110011を有し得る。
ベクトルプレーン555は、ワード線557-1から557-8を有し得る。ワード線557-1から557-8の各々は、ビット線559-1から559-8と交差し得る。ワード線とビット線の各交点に、抵抗可変メモリセルなどのメモリセル561が存在し得る。図5の例では8本のビット線及び8本のワード線が示されているが、実施形態は、特定の数のワード線及び/またはビット線に限定されるものではない。
データベクトル563-1から563-8は、それぞれ、ビット線559-1から559-8にそれぞれ共通結合されたメモリセルの列に格納することができる。例えば、各列のメモリセル561-1から561-8は、それぞれ、ワード線557-1から557-8に結合され得る。この例では、データベクトル563-1(01111111)は、ビット線559-1に結合されたセルに格納され、データベクトル563-2(11110111)は、ビット線559-2に結合されたセルに格納され、データベクトル563-3(11111111)は、ビット線559-3に結合されたセルに格納され、データベクトル563-4(11111101)は、ビット線559-4に結合されたセルに格納され、データベクトル563-5(00110011)は、ビット線559-5に結合されたセルに格納され、データベクトル563-6(00000000)は、ビット線559-6に結合されたセルに格納され、データベクトル563-7(11111110)は、ビット線559-7に結合されたセルに格納され、データベクトル563-8(00000000)は、ビット線559-8に結合されたセルに格納される。それぞれのデータベクトル563-1から563-8の各々のそれぞれのデータ値(例えば、コンポーネント)は、それぞれメモリセル561-1から561-8に格納されることに留意されたい。
ビット線559-1から559-8は、それぞれ、センスアンプ565-1から565-8に結合することができる。センスアンプ565-1から565-8は、それぞれ、入力データベクトル566と格納ベクトル563-1から563-8の比較結果を生成することができる。例えば、結果は、結果ベクトル335-メインであり得る結果ベクトル535のコンポーネントであり得る。
入力データベクトル566のビット1からビット8は、それぞれ、データ線559-1から559-8の各々に結合されたメモリセル561-1から561-8にそれぞれ格納されたデータと比較することができる。論理0のビット値は、メモリセル全体に限界電圧VDM1などの電圧差を印加することによって、メモリセル561に格納されたデータと比較することができる。論理1のビット値は、メモリセル全体に限界電圧VDM2を印加することによって、メモリセル561に格納されたデータと比較することができる。
例えば、VDM1は、論理0の入力ビット値に対応し得、VDM2は、論理1の入力ビット値に対応し得る。いくつかの例では、限界電圧は、メモリセルに結合されたビット線に印加された電圧からメモリセルに結合されたワード線に印加された電圧をひいたものであり得る。本例では、VDM1とVDM2は、反対の極性を有し、VDM1は負の極性を有し、VDM2は正の極性を有することに留意されたい。しかしながら、本開示は、そのように限定されるものではない。
いくつかの例では、メモリセル561は、メモリセル561全体にVDM1を印加したことに応えて閾値化イベント(例えば、スナップバックイベント)などの切り替えイベント、またはメモリセル561全体にVDM2を印加したことに応えて切り替えイベントを経験し得る。例えば、メモリセル561は、低導電率状態(例えば、高抵抗状態)などの一方の導電率状態から、高導電率状態(例えば、低抵抗状態)などの他方の導電率状態に切り替えることができる。
いくつかの例では、限界電圧に応えて切り替えイベントを経験しているメモリセルは、限界電圧に対応する入力データ値と不一致であるデータ値を格納していると見なされ得る。例えば、論理1を格納しているメモリセルは、そのメモリセル全体にVDM1(例えば、入力論理0に対応する)を印加したことに応えて切り替えイベントを経験し得、論理0を格納しているメモリセルは、そのメモリセル全体にVDM2(例えば、入力論理1に対応する)を印加したことに応えて切り替えイベントを経験し得る。
そのような例では、限界電圧に応えて切り替えイベントを経験していないメモリセルは、限界電圧に対応する入力データ値と一致するデータ値を格納していると見なされ得る。例えば、論理0を格納しているメモリセルは、そのメモリセル全体にVDM1を印加したことに応えて切り替えイベントを経験しない場合があり、論理1を格納しているメモリセルは、そのメモリセル全体にVDM2を印加したことに応えて切り替えイベントを経験しない場合がある。しかしながら、他の例では、切り替えイベントが一致を示し得、切り替えイベントがないことが不一致を示し得ることに留意されたい。
データベクトル563のメモリセルの少なくとも1つに格納されたデータが入力データベクトル566の対応するビットと不一致である場合、データベクトル563は入力データベクトル566と不一致であり得ることに留意されたい。センスアンプ565は、センスアンプの出力電圧に反映され得る電流の変化を感知することによって、対応するデータベクトル563の1つまたは複数のメモリセルが経験した切り替えイベントを感知し得る。結果として、センスアンプは、切り替えイベントを感知することによって、センスアンプに結合されたデータベクトルと入力データベクトル566の不一致を感知することができる。例えば、センスアンプは、切り替えイベントの感知に応えて、センスアンプに結合されたデータベクトルと入力データベクトル566の不一致を示す論理0を生成(例えば、出力)し得る。センスアンプは、切り替えイベントを感知しなかったことに応えて、センスアンプに結合されたデータベクトルと入力データベクトル566の一致を示す論理1を生成し得る。
いくつかの例では、入力データベクトル566の一部は、比較の第1のフェーズに対応する第1の期間中にデータベクトル563-1から563-8の対応する部分と比較することができ、入力データベクトル566の残りの部分は、比較の第2のフェーズに対応する第2の期間中にデータベクトル563-1から563-8の対応する部分と比較することができる。第1のフェーズ中、論理0を有する入力データベクトル566のビットのビット1、ビット2、ビット5、及びビット6は、それぞれ、データベクトル563-1から563-8の各々のメモリセル561-1、561-2、561-5、及び561-6に格納されたデータ値と、それらのメモリセル全体にVDM1を印加することによって比較することができ、一方、例えばゼロボルトを残りのメモリセル561-3、561-4、561-7、及び561-8全体に印加する。第2のフェーズ中、論理1を有する入力データベクトル566のビットのビット3、ビット4、ビット7、及びビット8は、それぞれ、データベクトル563-1から563-8の各々のメモリセル561-3、561-4、561-7、及び561-8に格納されたデータ値と、それらのメモリセル全体にVDM2を印加することによって比較することができ、一方、例えばゼロボルトを残りのメモリセル561-1、561-2、561-5、及び561-6全体に印加する。しかしながら、本開示はそのように限定されるものではなく、VDM1及びVBM2は同時に(例えば、同じフェーズ中に)印加することができる。
メインCAMのCAMアレイは、クロスポイントアレイ構造などの2次元(2D)かつ/または3次元(3D)アレイ構造を含み得る。メモリセル(例えば、メモリセル461及び561)は、例えば、様々なタイプの抵抗可変記憶素子及び/またはスイッチ素子を含み得る。例えば、セルは、相変化ランダムアクセスメモリ(PCRAM)セルまたは抵抗変化型メモリ(RRAM)セルであり得る。
本明細書中で用いられる記憶素子とは、メモリセルのプログラム可能な部分を指す。例えば、メインCAMは、セルが、記憶素子がスイッチ素子と直列に結合される「スタック」構造を含み得る3Dクロスポイントデバイスであり得、本明細書中で3D相変化材料及びスイッチ(PCMS)デバイスと呼ばれ得る。3D PCMSセルは、例えば、オボニック閾値スイッチ(OTS)などの2端子カルコゲニドベースのスイッチ素子と直列に結合された2端子カルコゲニドベースの記憶素子を含み得る。いくつかの例では、メモリセルは、単一の材料がスイッチ素子及び記憶素子の両方として機能することができる自己選択メモリ(SSM)セルであり得る。SSMセルは、カルコゲニド合金を含み得るが、実施形態はそのように限定されるものではない。
非限定的な例として、開示された不揮発性CAMのメモリセルは、インジウム(In)-アンチモン(Sb)-テルル(Te)(IST)材料(例えば、InSbTe、InSbTe、InSbTeなど)またはゲルマニウム(Ge)-アンチモン(Sb)-テルル(Te)(GST)材料(例えば、GeSbTe、GeSbTe、GeSbTeなど)などの相変化材料(例えば、相変化カルコゲン化物合金)を含み得る。本明細書中で用いられるハイフンでつないだ化学成分の表記は、特定の混合物または化合物に含まれる要素を示し、示される要素を伴う全ての化学量論を表すことを意図している。他のメモリセル材料は、様々な他の材料の中でも、GeTe、In-Se、SbTe、GaSb、InSb、As-Te、Al-Te、Ge-Sb-Te、Te-Ge-As、In-Sb-Te、Te-Sn-Se、Ge-Se-Ga、Bi-Se-Sb、Ga-Se-Te、Sn-Sb-Te、In-Sb-Ge、Te-Ge-Sb-S、Te-Ge-Sn-O、Te-Ge-Sn-Au、Pd-Te-Ge-Sn、In-Se-Ti-Co、Ge-Sb-Te-Pd、Ge-Sb-Te-Co、Sb-Te-Bi-Se、Ag-In-Sb-Te、Ge-Sb-Se-Te、Ge-Sn-Sb-Te、Ge-Te-Sn-Ni、Ge-Te-Sn-Pd及びGe-Te-Sn-Ptを含み得る。
本開示の先行する詳細な説明では、本明細書の一部を構成する添付図面への参照がなされ、それらの図面では、本開示のいくつかの実施形態がどのように実施され得るかが例として示される。これらの実施形態は、当業者が本開示の実施形態を実施することが可能となるように十分詳細に説明されており、本開示の範囲から逸脱することなく、他の実施形態が利用されてよいこと、ならびにプロセスの変更、電気的変更及び/または構造的変更がなされてよいことが理解されよう。
本明細書で用いられる「いくつかの(a number of)もの」、または「多数の(quantity of)もの」は、そのような1つ以上のものを指すことができる。例えば、複数のメモリセルまたは多数のメモリセルは1つ以上のメモリセルを指し得る。「複数の(plurality)もの」は、2つ以上を意図している。本明細書で使用されるように、用語「結合される(coupled)」は、電気的に結合されること、直接結合されること、及び/または(例えば、直接の物理的接触によって)介在要素なしで直接接続されること、介在要素と間接的に結合かつ/または接続されること、または無線で結合されることを含み得る。結合という用語は、互いに協力または相互作用する2つ以上の要素をさらに含み得る(例えば、因果関係のように)。本明細書で使用される場合、同時に実行されている複数の行為は、特定の期間にわたって少なくとも部分的に重複する行為を指す。
本明細書では特定の実施形態が示され説明されたが、示された特定の実施形態は、同じ結果を達成するように意図された構成と置き換えられ得ることを、当業者は理解するであろう。この開示は、本開示のいくつかの実施形態の適応または変形を網羅することを意図している。上記説明は限定的ではなく例示的に行われていることが理解されよう。上記実施形態の組み合わせ、及び本明細書で特に説明されていない他の実施形態は、上記説明を検討した当業者にとって明らかであろう。本開示のいくつかの実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。したがって、本開示のいくつかの実施形態の範囲は、添付の特許請求の範囲を、係る特許請求の範囲によって権利が与えられる均等物の全範囲と一緒に参照して決定されるべきである。
前述の発明を実施するための形態では、本開示を簡素化する目的のために、単一の実施形態にいくつかの特徴を一緒にまとめている。開示のこの方法は、本開示の開示された実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を使用する必要があるという意図を反映したものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の全ての特徴にあるわけではない。したがって、以下の請求項は、本明細書によって発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。

Claims (23)

  1. コントローラと、
    前記コントローラに結合された第1の連想メモリと、
    前記コントローラに結合された第2の連想メモリとを備える装置であって、
    前記コントローラは、
    入力データが第1のデータ及び第2のデータと同時に比較されるように、前記第1の連想メモリに、前記入力データを
    前記第1の連想メモリに格納された前記第1のデータと比較させ、前記第2の連想メモリに、前記入力データを前記第2の連想メモリに格納された前記第2のデータと比較させ、
    前記第1のデータが無効でありかつ前記第2のデータが前記第1のデータに対応すると判定したことに応えて、前記入力データと前記第1のデータの前記比較の結果を、前記入力データと前記第2のデータの前記比較の結果に置き換えるように構成されている、前記装置。
  2. 前記コントローラが、前記第1のデータが前記第1の連想メモリに書き込まれる時間から前記入力データが前記第1のデータと比較される時間までの経過時間が前記第1のデータの閾値時間長未満であると判定することによって、前記第1のデータが無効であると判定するように構成されている、請求項1に記載の装置。
  3. 前記閾値時間長が、前記第1のデータが前記第1の連想メモリに書き込まれる時間から前記第1のデータが有効になる時間までの経過時間である、請求項2に記載の装置。
  4. 前記第2の連想メモリが揮発性メモリセルを備え、前記第1の連想メモリが不揮発性メモリセルを備える、請求項1に記載の装置。
  5. 前記第1のデータが、前記第1の連想メモリの抵抗可変メモリセルに格納され、前記第2のデータが、前記第2の連想メモリのスタティックランダムアクセスメモリセルに格納されている、請求項1に記載の装置。
  6. 前記コントローラが、
    前記第1のデータが格納されている前記第1の連想メモリの位置を、前記第2のデータが格納されている前記第2の連想メモリの位置にマッピングするマッピングを格納し、
    前記第1のデータが有効であるという判定に応えて、前記マッピングを無効化するように構成されている、請求項1に記載の装置。
  7. 前記コントローラが、前記第1のデータが有効であるという判定に応えて、前記第2の連想メモリから前記第2のデータを削除するように構成されている、請求項1に記載の装置。
  8. 前記コントローラが、前記第1のデータが無効でありかつ前記第2のデータが前記第1のデータに対応するという判定に応えて、前記第1のデータが前記入力データと一致するかどうかを示すビット値を、前記第2のデータが前記入力データと一致するかどうかを示すビット値に置き換えるように構成されている、請求項1から7のいずれかに記載の装置。
  9. 前記コントローラが、
    前記第1の連想メモリに、前記入力データを、前記入力データを前記第1のデータと比較するのと同時に前記第1の連想メモリの追加データと比較させ、
    前記追加データが有効であるという判定に応えて、前記入力データと前記追加データの前記比較の結果を、前記入力データと前記第2のデータの前記比較の結果と組み合わせるように構成されている、請求項1から7のいずれかに記載の装置。
  10. コントローラと、
    前記コントローラに結合されかつプログラム後にドリフトする不揮発性メモリセルを備えるメイン連想メモリと、
    前記コントローラに結合されかつ揮発性メモリセルを備えるバッファ連想メモリとを備える装置であって、前記コントローラが、
    データを用いて同時に、前記メイン連想メモリに前記不揮発メモリセルをプログラムさせかつ前記バッファ連想メモリに前記揮発性メモリセルをプログラムさせ、
    前記メイン連想メモリに、入力データを前記不揮発性メモリセルにプログラムされた前記データと比較させ、前記バッファ連想メモリに、前記入力データを前記揮発性メモリセルにプログラムされた前記データと比較させ、
    前記入力データと前記不揮発性メモリセルに格納された前記データの前記比較が無効であるという判定に応えて、前記入力データと前記不揮発性メモリセルに格納された前記データの前記比較の代わりに、前記入力データと前記揮発性メモリセルに格納された前記データの前記比較を用いるように構成されている、前記装置。
  11. 前記不揮発性メモリセルが、カルコゲナイドベースの記憶素子を備え、前記揮発性メモリセルが、スタティックランダムアクセスメモリセルを備え、前記コントローラが、前記入力データと前記不揮発性メモリセルに格納された前記データの前記比較が有効であるという判定に応えて、前記入力データと前記不揮発性メモリセルに格納された前記データの前記比較を用いるように構成されている、請求項10に記載の装置。
  12. 前記コントローラが、
    前記メイン連想メモリの前記不揮発性メモリセルの位置を前記バッファ連想メモリの前記揮発性メモリセルの位置にマッピングするマッピングを備えるエントリを備えるデータ構造を管理し、
    タイムスタンプを前記エントリに書き込むように構成されており、前記タイムスタンプは、前記不揮発性メモリセルが前記データを用いてプログラムされた時間を備える、請求項10に記載の装置。
  13. 前記コントローラが、
    前記マッピングが前記データ構造で最も古いマッピングであると判定したことに応えて、前記マッピングを追加のマッピングで上書きし、
    前記マッピングを前記追加のマッピングで上書きしたことに応えて、前記入力データと前記不揮発性メモリセルに格納された前記データの前記比較を用いるように構成されている、請求項12に記載の装置。
  14. 前記コントローラが、タイムスタンプを前記エントリに書き込むように構成されており、前記タイムスタンプは、前記不揮発性メモリが前記データを用いてプログラムされた時間を備え、
    前記コントローラが、前記タイムスタンプの前記時間から前記入力データと前記不揮発性メモリセルにプログラムされた前記データの前記比較の時間までの経過時間が閾値時間長未満であると判定することによって、前記入力データと前記不揮発性メモリセルに格納された前記データの前記比較が無効であると判定するように構成されている、請求項12に記載の装置。
  15. 前記コントローラが、前記入力データと前記不揮発性メモリセルにプログラムされた前記データの前記比較の時間が、前記タイムスタンプの前記時間よりも早いと判定することによって、前記不揮発性メモリセルが無効であると判定するように構成されている、請求項14に記載の装置。
  16. 前記コントローラが、前記入力データと前記不揮発性メモリに格納された前記データの前記比較が有効であると判定したことに応えて、前記メイン連想メモリの前記不揮発性メモリセルの前記位置を、前記バッファ連想メモリの前記揮発性メモリセルの前記位置にマッピングする前記エントリを無効化するように構成されている、請求項12に記載の装置。
  17. 前記コントローラが、前記バッファ連想メモリがいっぱいであるという判定に応えて、前記揮発性メモリセルの以前に格納されたデータが前記揮発性メモリセルから削除されるまで、前記不揮発性メモリセル及び前記揮発性メモリセルを前記データを用いて同時にプログラミングすることを遅延するように構成されている、請求項10から16のいずれか1項に記載の装置。
  18. 前記コントローラが、
    前記データを不揮発性メモリセルから読み取り、
    前記読み取ったデータを前記不揮発性メモリセルでプログラムされることを意図したデータと比較し、
    前記読み取ったデータが前記不揮発性メモリセルでプログラムされることを意図した前記データと一致しないと判定したことに応えて、
    前記入力データと前記不揮発性メモリセルに格納された前記データの前記比較が無効であると判定するように構成されている、請求項10から16のいずれか1項に記載の装置。
  19. 入力データベクトルを、第1の連想メモリに格納された複数の第1のデータベクトルと比較して、前記複数の第1のデータベクトルの前記第1のデータベクトルの各々に対する第1の各比較結果を取得することと、
    前記入力データベクトルを前記複数の第1のデータベクトルと比較するのと同時に、前記入力データベクトルを第2の連想メモリに格納された第2のデータベクトルと比較して、前記第2のデータベクトルに対する第2の比較結果を取得することと、
    前記複数の第1のデータベクトルの特定の第1のデータベクトルに対する前記第1の各比較結果を、前記特定の第1のデータベクトルが前記第2のデータベクトルに対応しかつ前記特定の第1のデータベクトルが無効であると判定したことに応えて、前記第2の比較結果に置き換えることとを含む方法。
  20. 前記特定の第1のデータベクトルが前記第2のデータベクトルに対応しかつ前記特定の第1のデータベクトルが無効であると、前記特定の第1のデータベクトルのアドレスに対応しかつ前記特定の第1のデータベクトルの前記アドレスを前記第2のデータベクトルのアドレスにマッピングするデータ構造のエントリから判定することをさらに含む、請求項19に記載の方法。
  21. 前記第1のデータベクトルの各々に対する前記第1の各比較結果を、第1の結果ベクトルの各コンポーネントとして書き込むことと、
    前記第2のデータベクトルに対する前記第2の比較結果を、第2の結果ベクトルのコンポーネントとして書き込むこととをさらに含む、請求項19に記載の方法であって、
    前記特定の第1のデータベクトルに対する前記第1の各比較結果を、前記第2のデータベクトルに対する前記第2の比較結果に置き換えることが、前記特定の第1のデータベクトルに対する前記第1の各比較結果である前記第1の結果ベクトルの前記各コンポーネントを、前記第2のデータベクトルに対する前記第2の比較結果である前記第2の結果ベクトルの前記コンポーネントにマッピングすることを含む、前記方法。
  22. 前記特定の第1のデータベクトルの物理アドレスを前記特定の第1のデータベクトルに対する前記比較結果にリンクさせることと、
    前記第2のデータベクトルの物理アドレスを第2のデータベクトルに対する前記第2の比較結果にリンクさせることとをさらに含む、請求項19に記載の方法であって、
    前記特定の第1のデータベクトルに対する前記第1の各比較結果を前記第2の比較結果に置き換えることが、前記特定の第1のデータベクトルの前記物理アドレスを前記第2のデータベクトルの前記物理アドレスにマッピングすること、
    前記第2のデータベクトルの前記物理アドレスにマッピングされた前記特定の第1のデータベクトルの前記物理アドレスを論理アドレスにマッピングすること、前記論理アドレスを前記第2の比較結果にリンクさせること、及び
    前記論理アドレスにリンクされた前記第2の比較結果を、前記第2の比較結果が前記第2のデータベクトルが前記入力データベクトルと一致すると示すときにのみ、ホストに送信することを含む、前記方法。
  23. 前記第2のデータベクトルが前記第2の連想メモリの最も古いデータベクトルであると判定したことに応えて、前記第2の連想メモリの前記第2のデータベクトルを追加のデータベクトルで上書きすること、及び前記第2の連想メモリの前記第2のデータベクトルを前記追加のデータベクトルで上書きしたことに応えて、前記特定の第1のデータベクトルに対する前記第1の各比較結果を用いることをさらに含む、請求項19から22のいずれか1項に記載の方法。
JP2021559961A 2019-04-12 2020-04-01 連想メモリバッファを備えた連想メモリシステム Ceased JP2022522047A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/382,449 US10937499B2 (en) 2019-04-12 2019-04-12 Content addressable memory systems with content addressable memory buffers
US16/382,449 2019-04-12
PCT/US2020/026096 WO2020210097A1 (en) 2019-04-12 2020-04-01 Content addressable memory systems with content addressable memory buffers

Publications (1)

Publication Number Publication Date
JP2022522047A true JP2022522047A (ja) 2022-04-13

Family

ID=72747704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021559961A Ceased JP2022522047A (ja) 2019-04-12 2020-04-01 連想メモリバッファを備えた連想メモリシステム

Country Status (6)

Country Link
US (2) US10937499B2 (ja)
EP (1) EP3953936A4 (ja)
JP (1) JP2022522047A (ja)
KR (1) KR20210141758A (ja)
CN (1) CN113711311B (ja)
WO (1) WO2020210097A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10937499B2 (en) * 2019-04-12 2021-03-02 Micron Technology, Inc. Content addressable memory systems with content addressable memory buffers
US11587623B2 (en) * 2021-05-14 2023-02-21 Macronix International Co., Ltd. Content-addressable memory and operation method thereof
WO2022252205A1 (en) 2021-06-04 2022-12-08 Yangtze Memory Technologies Co., Ltd. Firmware repair for three-dimensional nand memory
US11798614B2 (en) 2021-08-31 2023-10-24 Micron Technology, Inc. Automated voltage demarcation (VDM) adjustment for memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020529696A (ja) * 2017-07-31 2020-10-08 マイクロン テクノロジー,インク. データ状態同期
JP2021504870A (ja) * 2017-11-30 2021-02-15 マイクロン テクノロジー,インク. 入力データと格納データの比較

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596686A (en) 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
US6263404B1 (en) 1997-11-21 2001-07-17 International Business Machines Corporation Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
TW451132B (en) 1998-12-15 2001-08-21 Nippon Electric Co System and method for cache processing
US6275426B1 (en) * 1999-10-18 2001-08-14 Netlogic Microsystems, Inc. Row redundancy for content addressable memory
JP2003085993A (ja) 2001-09-07 2003-03-20 Toshiba Corp 不揮発性半導体記憶装置およびその不良救済方法
JP2004086934A (ja) 2002-08-22 2004-03-18 Renesas Technology Corp 不揮発性記憶装置
US6933757B1 (en) * 2002-10-31 2005-08-23 Cypress Semiconductor Corporation Timing method and apparatus for integrated circuit device
US6958925B1 (en) * 2003-12-24 2005-10-25 Cypress Semiconductor Corporation Staggered compare architecture for content addressable memory (CAM) device
WO2006011186A1 (ja) * 2004-07-23 2006-02-02 Spansion Llc コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト
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
JP2007140733A (ja) * 2005-11-16 2007-06-07 Renesas Technology Corp 半導体処理装置及び半導体集積回路
US8521952B2 (en) 2009-03-31 2013-08-27 Micron Technology, Inc. Hierarchical memory architecture with a phase-change memory (PCM) content addressable memory (CAM)
US7907432B2 (en) 2009-06-30 2011-03-15 Netlogic Microsystems, Inc. Content addressable memory device for simultaneously searching multiple flows
US20130054886A1 (en) 2010-01-25 2013-02-28 Idatamap Pty. Ltd. Content addressable memory (cam)
US8681554B2 (en) 2011-08-29 2014-03-25 Hitachi, Ltd. Semiconductor storage device comprising electrically rewritable nonvolatile semiconductor memory
US8982596B1 (en) * 2011-11-21 2015-03-17 Netlogic Microsystems, Inc. Content addressable memory having column segment redundancy
US9208024B2 (en) * 2014-01-10 2015-12-08 Freescale Semiconductor, Inc. Memory ECC with hard and soft error detection and management
US9389954B2 (en) * 2014-02-26 2016-07-12 Freescale Semiconductor, Inc. Memory redundancy to replace addresses with multiple errors
US10067705B2 (en) * 2015-12-31 2018-09-04 International Business Machines Corporation Hybrid compression for large history compressors
US9613699B1 (en) * 2016-04-22 2017-04-04 Microsoft Technology Licensing, Llc Memory system with a content addressable superconducting memory
US10915444B2 (en) * 2018-12-27 2021-02-09 Micron Technology, Inc. Garbage collection candidate selection using block overwrite rate
US10937499B2 (en) * 2019-04-12 2021-03-02 Micron Technology, Inc. Content addressable memory systems with content addressable memory buffers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020529696A (ja) * 2017-07-31 2020-10-08 マイクロン テクノロジー,インク. データ状態同期
JP2021504870A (ja) * 2017-11-30 2021-02-15 マイクロン テクノロジー,インク. 入力データと格納データの比較

Also Published As

Publication number Publication date
EP3953936A4 (en) 2022-12-28
CN113711311B (zh) 2024-05-14
US20200327942A1 (en) 2020-10-15
CN113711311A (zh) 2021-11-26
EP3953936A1 (en) 2022-02-16
US10937499B2 (en) 2021-03-02
US11869589B2 (en) 2024-01-09
WO2020210097A1 (en) 2020-10-15
US20210225447A1 (en) 2021-07-22
KR20210141758A (ko) 2021-11-23

Similar Documents

Publication Publication Date Title
CN113711311B (zh) 具有内容可寻址存储器缓冲器的内容可寻址存储器系统
US10936252B2 (en) Storage system capable of invalidating data stored in a storage device thereof
US10235079B2 (en) Cooperative physical defragmentation by a file system and a storage device
KR102373852B1 (ko) 기입 시간들에 기초한 방해 관리
US20130086312A1 (en) Semiconductor Device
US11422748B2 (en) Writing and querying operations in content addressable memory systems with content addressable memory buffers
US20220019384A1 (en) Memory management utilzing buffer reset commands
CN114097034A (zh) 有范围内容可寻址存储器
US11775215B2 (en) Storage device with host-controlled operation mode, electronic system including the same, and method of operating the same
CN112673426B (zh) 用于存储器操作的专用命令
US11456033B2 (en) Dedicated commands for memory operations
CN117370226A (zh) 具有扩展的读取缓冲的数据块传送

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211105

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230112

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230131

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20230530