(58)【調査した分野】(Int.Cl.,DB名)
前記第1のメモリセル及び前記第2のメモリセルはアクセス線デコーダに直接に結合され、負荷抵抗器は前記実質的含意演算を行うために使用されない、請求項4に記載の装置。
特定のシーケンスの複数の実質的含意信号を、複数のメモリセルの1つのもの及び別のものに印加することによって、第1のアクセス線に結合された前記複数のメモリセルの前記1つのもの及び前記別のものに記憶された値の実質的含意演算を行うことを含み、
前記実質的含意演算を行うことは、
前記複数の実質的含意信号の第1の信号を、前記第1のアクセス線に印加することと、
前記複数の実質的含意信号の前記第1の信号が前記第1のアクセス線に印加されている間に、前記複数の実質的含意信号の第2の信号を、前記複数のメモリセルの前記1つのものが結合される第2のアクセス線に印加することと、
前記複数の実質的含意信号の前記第2の信号が前記第2のアクセス線に印加されている間に、前記複数の実質的含意信号の第3の信号を、前記複数のメモリセルの前記別のものが結合される第2のアクセス線に印加することと、を含み、
前記複数のメモリセルの前記1つのものに記憶された値は前記実質的含意演算の前件であり、
前記複数のメモリセルの前記別のものに記憶された値は前記実質的含意演算の結果であり、
前記複数のメモリセルの前記1つのもの及び前記複数のメモリセルの第2のものに記憶された値で行われる前記実質的含意演算の結果は、前記複数のメモリセルの前記別のものに記憶される、方法。
【発明を実施するための形態】
【0007】
本開示は、メモリにおける実質的含意演算のための装置及び方法を含む。例示装置は、第1のアクセス線(例えば、ワード線)及び複数の第2のアクセス線(例えば、ビット線)に結合された複数のメモリセル、及び第1の信号を第1のアクセス線に印加し、第1の信号が第1のアクセス線に印加されている間に、複数の第2のアクセス線の1つを介して第2の信号を複数のメモリセルの第1番目に印加し、複数の第2のアクセス線の別の1つを介して第3の信号を複数のメモリセルの第2番目に印加するように構成されたコントローラを含むことができる。実質的含意演算は印加される信号(例えば、第1、第2及び第3の信号)の結果として実行することができ、実質的含意演算の結果は第3の信号の印加の後に複数のメモリセルの第2番目に格納することができる。
【0008】
本開示の実施形態は、以前のアプローチと比較して、様々なインメモリ計算演算(例えば、ブール論理演算)を実行することができるメモリデバイスと関連した、低減されたコストなどの様々な利点を提供する。例えば、本開示は、メモリアレイの中で(例えば、メモリアレイから実質的含意と関連したデータを転送せずに)実質的含意演算を実行することができる、メモリアレイ用の回線設計を単純化することができる。例えば、メモリにおいてFALSE演算(例えば、常に結果として論理「0」となる演算)を実行する能力とともにメモリの実質的含意演算を実行する能力は、計算的に完全な論理ベースを形成する。したがって、いかなるブール論理演算(例えば、AND、OR、NAND、NOR、XOR、COPY及び/またはNOT)も、実質的含意及びFALSE演算の実行を最適に結合することによって演繹することができる。
【0009】
本明細書において記載されているインメモリ計算演算は、例えば、センスアンプにアレイからデータ値を読み出す必要なしに実行することができ、それは結果としてインメモリコンピューティングへの種々の以前のアプローチと比較して、電力消費がより少なくなり得る。本明細書においてさらに説明するように、実施形態は、いくつかの以前のインメモリ計算アプローチによって採用されているような外部負荷抵抗器を用いずに、メモリにおいて実質的含意演算を実行することを含むことができる。
【0010】
本明細書において使用する場合、実質的含意演算は、条件文が論理和(例えば、OR)と置き換えられるのを可能とする置換えの有効な規則であり、前件が否定(例えば、NOT)される。例えば、演算は、「p」が「q」を包含すること(例えば、ここで「p」が前件で「q」が後件である)は、(not−p) OR q、に論理的に等価であることを述べることができる。本明細書において使用する場合、実質的含意演算は、「IMP」として表現することができる。例えば、前件「p」及び後件「q」に実質的含意演算を実行することは、pIMPqとして表現することができる。
【0011】
本開示の以下の詳細な説明において、本開示の一部を形成する添付図面が参照され、そこにおいて、本開示の1つ以上の実施形態をどのように実践することができるかを例証により示す。これらの実施形態は十分な詳細が説明されており、当業者は本開示の実施形態を実践することができ、そして他の実施形態を利用することができて、そのプロセス、電気的及び構造的変更は本開示の要旨を逸脱しない範囲で行うことができることを理解すべきである。
【0012】
本明細書において使用する場合、「N」及び「M」などの指示子は、特に図面の参照数字に関して、そのように指定されるいくつかの特定の特徴が含まれ得ることを示す。本明細書において用いる用語は、特定の実施形態を説明するだけの目的であって、本発明を限定することを意図していないことも理解すべきである。本明細書において使用する場合、単数形「a」、「an」及び「the」は、文脈上明確にそうでないと示さない限り、単数及び複数の両方の指示物を含むことができる。そのほかに、「いくつかの(a number of)」何か(例えば、いくつかのメモリセル)は、このようなものの1つ以上を指すことができるが、「複数の(plurality of)」は、このようなものの2つ以上(例えば、2つ以上のメモリセル)を指すことを意図する。さらに、単語「することができる(can)」及び「してもよい(may)」は、本出願の全体にわたって、必須の意味(例えば、要求される)ではなく、許容的な意味(例えば、可能性を有する、可能である)で使用する。
【0013】
本明細書において図は、初めの桁または複数桁が図面の図番号に対応して、残りの桁が図面の要素またはコンポーネントを識別する番号付け規則に従う。異なる図の間の同様な要素またはコンポーネントは、同様の桁を用いて識別することができる。例えば、114は
図1で要素「14」を参照することができて、同様な要素は
図3の314として参照することができる。
【0014】
図1Aは、本開示のいくつかの実施形態による、実質的含意演算を実行することができるメモリシステム100を例示する。
図1Aに示すように、メモリシステム100は、コントローラ102及びメモリアレイ110を含む。
【0015】
コントローラ102はメモリアレイ110と通信して、読出し、書込み及び/または消去動作ならびに論理演算(例えば、演算の中でもとりわけ、IMP、NAND、NOR、XOR、COPY、NOT、AND及び/またはORを含むブール演算)などのメモリ演算を実行することができる。一例として、コントローラ102は、同じダイ、またはメモリアレイ110に対応するダイと異なるダイに置くことができる。コントローラ102は、例えば、メモリアレイ110に対するアクセスを制御するための、及び/またはメモリアレイ110と要求側デバイス(例えば、図示していないが、メモリシステム100に連結することができるホスト)の間のデータ転送を容易にするための、ハードウェア及び/またはファームウェア(例えば、1つ以上の集積回路)及び/またはソフトウェアの形でいくつかのコンポーネントを含むことができる。
【0016】
コントローラ102は、信号をアレイ110に提供し、読出し及び書込みのようなメモリ演算を実行することができる。いくつかの実施例において、コントローラ102は、アレイ110に対して信号を供給して、本明細書においてさらに記載されているように、実質的含意演算及び/または他のブール論理演算などのインメモリ計算演算を実行するように構成することができる。
【0017】
メモリアレイ110は、メモリシステム100用のメモリとして機能することができる。メモリアレイ110は、抵抗変化メモリセルであるメモリセルを含むことができる。例えば、メモリセルの状態(例えば、論理状態)は、メモリセル全体に印加される電圧に応答して変化し得るメモリセルの抵抗(例えば、対応する電圧)に基づいて決定されてもよい。本明細書においてさらに説明されているように、メモリアレイ110のメモリセルは、前件に対応する値、後件に対応する値及び実質的含意演算の結果に対応する値を格納することができてもよく、それはメモリアレイ110の中で実行することができる。
【0018】
図1Bは、実質的含意演算が本開示のいくつかの実施形態に従って実行可能であるデータ値を格納することができるメモリアレイ110の実施例を示す。
図1Bに示される実施例は、クロスポイントメモリアレイであるが、実施形態はそれに限定されない。メモリアレイ110は、複数のアクセス線112−0から112−N(例えば、これらはワード線112と呼ばれてもよい)、及び、互いに交わる(例えば、異なる平面において交差する)複数の他のアクセス線114−0から114−M(例えば、これらはビット線114と呼ばれてもよい)を含む。メモリセル116は、ワード線112及びビット線114の交点(例えば、各ビット線/ワード線の交差)に位置する。
図1Bにおいては、アクセス線112はワード線で、アクセス線114はビット線であるが、いくつかの実施形態では、アクセス線112はビット線でもよく、アクセス線114はワード線でもよい。
【0019】
メモリセル116は、例えば、各々関連する選択素子及び記憶素子を有している不揮発性抵抗変化メモリセルであることができる。各抵抗変化メモリセルの選択素子は、抵抗変化メモリセル上のデータプログラミング及び/またはデータ読出しなどの動作を実行するために、メモリセルを選択するように動作する(例えば、オン/オフされる)ことができる。アレイ110が二次元(2D)配置として示されているが、種々の実施形態で、アレイ110は三次元(3D)クロスポイントアレイであってもよく、それは互いに(例えば、垂直に)積み重なるアレイ110の複数の層を含んでもよい。
【0020】
本明細書において使用する場合、記憶素子は、抵抗変化メモリセルのプログラム可能な部分を指す。例えば、PCRAM及びRRAMセルで、記憶素子は、例えば、印加されたプログラム信号(例えば、電圧及び/または電流パルス)に応じたデータ状態にプログラム可能である抵抗を有する、メモリセルの部分を含むことができる。記憶素子は、相変化材料(例えば、位相変化カルコゲナイド合金)などの抵抗可変材料を含むことができ、その例としては、インジウム(In)−アンチモン(Sb)−テルル(Te)(IST)材料、例えば、In
2Sb
2Te
5、In
1Sb
2Te
4、In
1Sb
4Te
7など、またはゲルマニウム−アンチモン−テルル(GST)材料、例えば、Ge
2Sb
2Te
5、Ge
1Sb
2Te
4、Ge
1Sb
4Te
7などのようなGe−Sb−Te材料である。本明細書で用いられる、ハイフンでつないだ化学成分記法は、特定の混合物または化合物に含まれる要素を示して、示された要素を含んでいるすべての化学量論を表すことを意図する。他の相変化材料は、様々な相変化物質の中でも、GeTe、In−Se、Sb
2Te
3、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を含むことができる。
【0021】
選択素子は、上記で説明したようなカルコゲナイド材料とすることもできる。選択素子及び記憶素子は異なるカルコゲナイド材料を含むことができるが、実施形態はそれに限定はされない。例えば、各セルは、記憶素子及び選択素子の両方として機能することができる材料(例えば、カルコゲナイド材料)を含むことができ、セルはSSM(自己選択メモリ)と呼ばれる。例示の閾値電圧(Vt)分布及びSSMセルのための電流対電圧シグネチャは、さらに以下で(例えば、
図2A及び2Bに関連して)説明されている。
【0022】
図2Aは、実質的含意演算を本開示のいくつかの実施形態に従って実行することができるメモリセルの状態と関連した閾値電圧分布を示す。この例では、メモリセルは、集合的に分布222または状態222と称することができる、それぞれの閾値電圧状態に対応する電圧分布222−1、222−2、222−3及び222−4を有するSSMセルである。分布222は、特定の状態(例えば、論理状態)にプログラムされたメモリセルの電圧の統計的変動を表す。本明細書においてさらに説明しているように、電圧分布222は、(例えば、ワード線112などのワード線とビット線114などのビット線の間の印加電圧差によって)メモリセルに(例えば、全体的に)印加される特定の電圧差を介して達成されるプログラム状態に対応することができる。本明細書において使用する場合、メモリセル全体に印加される電圧差は、ワード線電圧(例えば、アクセス線112のうちの1本を介してメモリに印加される電圧)とビット線電圧(例えば、アクセス線114の対応する1つを介してメモリセルに印加される電圧)の差などの、メモリセル電圧(V
CELL)と呼ぶことができる。
【0023】
図2Aは4つの異なる電圧分布222−1、222−2、222−3及び222−4を示し、それらはメモリセルの4つの異なる状態を表すことができる。例えば、実施形態がそのように限定されるわけではないが、電圧分布222−1はセット状態(例えば、「1」)を表すことができ、電圧分布222−2はリセット状態(例えば、「0」)を表すことができ、電圧分布222−3はセット状態(例えば、「1」)を表すことができ、電圧分布222−4はリセット状態(例えば、「0」)を表すことができる。
【0024】
図2Aは、セル状態(例えば、論理状態)を区別するために用いる2つの異なる読出し電圧224−1及び224−2を示す。例えば、読出し電圧224−1はセルが状態222−1か222−2にプログラムされているかどうか判定するために用いることができて、読出し電圧224−2はセルが状態222−3か222−4にプログラムされているかどうか判定するために用いることができる。
図2Aに示すように、各電圧224−1及び224−2の絶対値(例えば、振幅)は、それぞれの電圧分布の1つより高く、それぞれの電圧分布の別の1つより低くてもよい。例えば、電圧224−1の振幅は、電圧分布222−2より高くてもよく(例えば、リセット状態「0」を表す)、電圧分布222−1より低くてもよい(例えば、セット状態「1」を表す)。例えば、電圧224−2の振幅は、電圧分布222−3より高くてもよく(例えば、セット状態「1」を表す)、電圧分布222−4より低くてもよい(例えば、リセット状態「0」を表す)。
【0025】
電圧224は、電圧分布222−1に対応する1つの状態(例えば、セット状態)のそれらのメモリセルを、電圧分布222−2に対応する別の状態(例えば、リセット状態)のメモリセルと区別するために利用することができる。例えば、電圧224−2を利用して、電圧分布222−3に対応する1つの状態(例えば、セット状態)のメモリセルを、電圧分布222−4に対応する別の状態(例えば、リセット状態)のメモリセルと区別することができる。メモリセルの論理状態(例えば、セット及びリセット状態)は、電圧224を印加した後にメモリセルが呈するV
CELLに基づいて判定することができ、それは
図2B及び
図2Cに関連してさらに説明されている。本明細書において使用する場合、電圧224は、読出し電圧(例えば、V
READ)と呼ばれてもよく、それはメモリセル全体に印加されて読出し動作中にそれらの論理状態を判定する電圧差に対応する。
【0026】
図2Aに示すように、読出し電圧224−1及び224−2は、異なる極性を有する。この例では、電圧224−1は負の電圧で、電圧224−2は正の電圧である。本明細書において使用する場合、電圧の極性は、ワード線対ビット線差(例えば、ビット線電圧がワード線電圧を超えるか、又はそれ未満であるかどうか)に基づくことができる。
【0027】
メモリセル(例えば、メモリセル116)は、メモリセルのVtのそれと同じ極性を有する読出し電圧を使用して読み出すことができる。例えば、負のVt(例えば、電圧分布222−1及び222−2に対応する)を有するメモリセルは、負極性を有する電圧224−1を使用して読み出すことができて、正のVt(例えば、電圧分布222−3及び222−4に対応する)を有するメモリセルは正極性を有する電圧224−2を使用して読み出すことができる。しかしながら、実施形態はそのように限定されるわけではない。例えば、実質的含意演算を実行する際に、正極性を有する読出し電圧は、メモリセルの状態(例えば、論理状態)に関係なく、メモリセルに印加することができる。正の読出し電圧を使用して(例えば、全体に印加して)、負のVtを有することができる(例えば、電圧226−1の印加によってセット状態「1」にプログラムされている)メモリセルを読み出すことができる。
【0028】
メモリセルVtsと同じ極性を有する読出し電圧224を介して読み出されるメモリセル(例えば、メモリセル116)は、読み出されるときに、メモリセルがそれらの読み出される回数とは独立して以前にプログラムされている同じ電圧を示すことができる。例えば、読出しは、非破壊読出しである(例えば、セルの論理状態は、読出し電圧224の振幅が読み出されているメモリセルのVtを超える場合であっても、維持される)。いくつかの実施形態において、FALSE演算は、リセット状態(例えば、プログラム電圧226−2を印加することによる「0」)にメモリセルをプログラムすることの結果として、実行することができる。例えば、FALSE演算の入力に関係なく、出力(例えば、リセット状態にプログラムされるメモリセルに格納される値)は「0」でもよく、それはFALSEを示す。
【0029】
図2Aは、メモリセルを特定の論理状態(例えば、「0」または「1」)にプログラムするために利用することができる2つの異なる電圧226−1を示す。例えば、メモリセルは、電圧226−2を印加することによってセット状態(例えば、「1」)に、そして、メモリセル全体に電圧226−1を印加することによってリセット状態(例えば、「0」)にプログラムすることができる。本明細書において使用する場合、電圧226はプログラム電圧と呼ばれてもよく、電圧226を印加して特定の論理状態にメモリセルをプログラムすることはプログラム演算と呼ぶことができる。
【0030】
電圧226−1は、電圧226−2の極性とは異なる極性を有することができる。例えば、
図2Aに示すように、電圧226−1は負極性を有することができて、電圧226−2は正極性を有することができる。メモリセルは、正極性を有する電圧226−2を印加することによってセット状態(例えば、「1」)に、そして、負極性を有する電圧226−1を印加することによってリセット状態(例えば、「0」)にプログラムすることができる。
【0031】
図2B〜2Cは、実質的含意演算を本開示のいくつかの実施形態に従って実行することができるメモリセルと関連した電流対電圧シグネチャを示しているグラフである。
図2B及び2Cにおいて示したV
CELLは、
図2Aに関連して説明しているように、電圧差(例えば、ビット線電圧とワード線電圧の差)を表すことができる。
図2Bにおいて示したセル電流は、対応する電圧がメモリセル全体に印加されるときにメモリセルを通って流れている電流を表すことができる。
【0032】
図2Bは、リセット状態(例えば、「0」)にプログラムされたメモリセルの電流対電圧グラフを示す。正極性Vtを有するメモリセルはV
CELLが閾値電圧(V
TH2)に達するまで、非導通状態(例えば、より高い抵抗)であってもよく、そのポイントで、メモリセルは導通状態(例えば、より低い抵抗)へ切り替わる(例えば、「スナップバック」イベントを経た遷移)。本明細書において使用する場合、それらの異なる抵抗は、抵抗状態(例えば、導通または非導通状態のいずれか)と呼ぶことができる。したがって、メモリセル全体に印加された正の電圧が閾値電圧(V
TH2)を上回ると、メモリセルは非導通状態から導通状態へ切り替わる。非導通状態から導通状態への切替えの後に、V
CELLは保持電圧(V
HOLD2)にとどまることができ、それは閾値電圧(V
TH2)より低い。同様に、その絶対値(例えば、振幅)が閾値電圧(V
TH1)の絶対値を超える負電圧がメモリセル全体に印加されると、セルは非導通状態から導通状態へ切り替わり、保持電圧(V
HOLD1)のままとどまる。
【0033】
図2Cは、セット状態(例えば、「1」)にプログラムされたメモリセルの電流対電圧グラフを示す。負極性Vtを有するメモリセルは、V
CELLが閾値電圧(V
TH3)に達するまで、非導通状態(例えば、より高い抵抗)であってもよく、そのポイントで、メモリセルは導通状態へ切り替わる。したがって、その絶対値が閾値電圧(V
TH3)を超える(例えば、メモリセル全体に印加される)負電圧が印加されると、メモリセルは非導通状態から導通状態へ切り替わる。非導通状態から導通状態への切替えの後に、V
CELLはV
HOLD1のままとどまり、それは閾値電圧(V
TH3)より低い。同様に、その絶対値が閾値電圧電圧(V
TH4)の絶対値を超える(例えば、メモリセル全体に印加される)正電圧が印加されると、メモリセルは非導通状態から導通状態へ切り替わり、V
HOLD2のままとどまる。
【0034】
いくつかの実施形態において、本開示のメモリセル(例えば、SSM)は、特定のスイッチング特性を有することができる。一例として、特定の状態のメモリセル(例えば、メモリセル116のうちの1つ)の閾値電圧の振幅は、
図2B及び2Cに示すように、異なる極性に対して非対称でもよい。例えば、閾値電圧V
TH1の振幅は閾値電圧V
TH3の振幅より低くてもよく、閾値電圧V
TH4の振幅は閾値電圧V
TH2の振幅より低くてもよい。
【0035】
したがって、いくつかの実施形態では、対応する閾値電圧より大きい振幅を有するメモリセルVtに印加された読出し電圧(例えば、読出し電圧224)は、メモリセルの抵抗状態を(例えば、非導通状態から導通状態に)切り替えることができる。例えば、読出し電圧224−2(V
READ2)は、印加されると、メモリセルがV
READ2より低い閾値電圧V
TH4を有するので、非導通状態から導通状態にメモリセル(例えば、
図2Cに示すように論理状態「1」にプログラムされている)を切り替えることができる。例えば、読出し電圧224−1(V
READ1)は、印加されると、メモリセルがV
READ1より(例えば、その絶対値が)低い閾値電圧V
TH1を有するので、非導通状態から導通状態にメモリセル(例えば、
図2Bに示すように論理状態「0」にプログラムされている)を、切り替えることができる。
【0036】
状態が読出し電圧(例えば、V
READ1及びV
READ2)の印加のため非導通状態から導通状態に変えられるメモリセルの論理状態は、いくつかの状況においては変更されなくてもよい。
図2Aに関連して説明しているように、メモリセルの論理状態は、V
CELL(例えば、対応する読出し電圧V
READ1及びV
READ2を印加した後)がV
HOLDに(例えば、実質的に)等しいか、印加読出し電圧V
READ1及びV
READ2より大きいかどうかに基づいて決定することができる。
【0037】
例えば、
図2Bに示すように、リセット状態「0」にプログラムされたメモリセルは、V
READ1(例えば、それは、V
TH1より大きい)がメモリセルに印加された後に、非導通状態から導通状態に切り替えることができ、それにより、切り替えられたメモリセルは、
図2Bに示すように、V
HOLD1を呈する。したがって、切り替えられたメモリセル(例えば、V
CELL)全体のV
HOLD1を検出することに応答して、メモリセルの論理状態は、依然としてリセット状態「0」(例えば、電圧分布222−2によって表される)であると判定することができる。対照的に、同じメモリセル(例えば、
図2Bに示すようにリセット状態「0」にプログラムされている)は、V
READ2がメモリセルに印加された後に、非導通状態から導通状態に切り替えられなくてもよい。これは、
図2Bに示すように、閾値電圧V
TH2がV
READ2より大きいという理由である。したがって、メモリセルは、
図2Bに示すように、振幅が
図2Bに示すようにV
READ2より大きいサブ閾値電圧(V
SD1)を依然として示すことができる。
【0038】
例えば、
図2Cに示すように、セット状態「1」にプログラムされたメモリセルは、V
READ2(例えば、それは、V
TH4より大きい)がメモリセルに印加された後に、非導通状態から導通状態に切り替えることができ、それにより、切り替えられたメモリセルがV
HOLD2を呈する。したがって、切り替えられたメモリセル全体のV
HOLD2(例えば、V
CELL)を検出することに応答して、メモリセルの論理状態は、依然としてセット状態「1」(例えば、電圧分布222−3によって表される)であると判定することができる。対照的に、同じメモリセル(例えば、
図2Cに示すようにセット状態「1」にプログラムされている)は、V
READ1がメモリセルに印加された後に、非導通状態から導通状態に切り替えられなくてもよい。これは、
図2Bに示すように、閾値電圧V
TH3がV
READ1より大きいという理由である。したがって、メモリセルは、
図2Bに示すように、振幅が
図2Bに示すようにV
READ1より大きいサブ閾値電圧(V
SD2)を依然として呈することができる。
【0039】
SSMセルなどのメモリセルの特性を利用して、本明細書において説明されている実施形態に従って実質的含意演算を実行することができる。例えば、実質的含意演算を実行することは、1つのメモリセルに正の読出し電圧(例えば、V
READ2)を印加することが必要であり得る。印加されたV
READ2は、(例えば、
図2Cに示すように)メモリセルがセット状態にプログラムされているときに限り、(例えば、非導通状態から導通状態に)メモリセルを切り替えることができるが、(例えば、
図2B及び2Cに示すように)その以前の論理状態にかかわらずメモリセルの論理状態に影響を及ぼさない。切り替えられたメモリセルは切り替えられたメモリセルが連結されるワード線に影響を及ぼすことができて、影響を受けたワード線は、別のメモリセルの以前の状態に関係なく、印加される次の信号の結果として、別のメモリセル(例えば、同じワード線に連結している)をセット状態「1」にプログラムすることができる。
【0040】
図3は、本開示のいくつかの実施形態に従った、実質的含意演算と関連付けられた値を格納することができるメモリセル316を含むメモリアレイ310の一部を例示している図である。
図3において示したように、メモリセル316−1及び316−2(例えば、集合的にメモリセル316と呼ばれる)は、それぞれ、ビット線314−1及び314−2(例えば、集合的にビット線314と呼ばれる)に、そして、ワード線312に、連結することができる。メモリセル316は、
図2A〜2Cに関連して説明されているものなどの電圧を使用して読み出して、プログラムすることができる。
【0041】
ビット線314は、それぞれのビット線電圧を印加するために利用することができる。例えば、ビット線電圧はビット線314−1を介してメモリセル316−1に印加することができて、別のビット線電圧はビット線314−2を介してメモリセル316−2に印加することができる。したがって、各メモリセル316のためのビット線電圧は、個々に制御することができる(例えば、ビット線314−1のビット線電圧を印加することは、ビット線314−2のビット線電圧に影響を及ぼさなくてもよい)。
【0042】
ワード線312は、ワード線電圧を印加するために利用することができる。例えば、ワード線電圧は、同じワード線312を介してメモリセル316−1及び316−2に印加することができる。外部抵抗(例えば、負荷抵抗器)を欠いているメモリアレイ310は、同時にメモリセル316のそれぞれのワード線電圧を制御するために利用することができる(例えば、一度ごとに各ワード線電圧を制御することとは対照的に)。
【0043】
図3に示すように、メモリセル316−1及び316−2は、それぞれビット線デコーダ317−1及び317−2に、そしてワード線デコーダ319に、連結することができる。ビット線デコーダ317及びワード線デコーダ319は、メモリアレイ310にアクセスすることができるようにするためにアドレス信号を受信して、デコードすることができてもよい。
図3に示されていないが、デコーダ317及び319は、ドライバ(例えば、ビット線ドライバ及び/またはワード線ドライバ)を含むことができる。
【0044】
図2に関連して説明されているように、各メモリセル316は非導通状態と導通状態の間で切り替わる(例えば、遷移する)ことができる。メモリセル(例えば、メモリセル316のうちの1つ)が非導通状態から導通状態へ切り替わるときに、ワード線電圧を上昇させることができ、結果として、メモリセルが切り替わらなかったならそうであっただろうよりも、V
CELLを低下させることになる。例えば、メモリセルが非導通状態から導通状態へ切り替わるときに、V
CELLは、(例えば、
図2に示すように)V
HOLDになってそのままであることができる。
【0045】
いくつかのアプローチでは、メモリセルはいくつかの負荷抵抗に連結することができて、そのいくつかの負荷抵抗は、高くなったワード線電圧の影響を、対応するメモリセルだけに限定することができる。例えば、メモリセルが同じワード線に連結するが、メモリセルのその他の対応するワード線電圧は、メモリセルの1つが非導通状態から導通状態へ切り替わるときでも、影響を受ける(例えば、上がる)ことがなくてもよく、それは結果として対応するワード線電圧を上げることになる。したがって、負荷抵抗を有するメモリアレイのプログラムメモリセルは、各メモリセルのそれぞれのワード線電圧が個々に制御されることを必要とするので、時間がかかる可能性があり、それは実質的含意演算を実行するには適切でない。
【0046】
対照的に、メモリアレイ310は、メモリセル316の中に外部抵抗(例えば、負荷抵抗器)を含まなくてもよい。本明細書において使用する場合、負荷抵抗器は、メモリセルの外部の抵抗器と呼ばれてもよく、信号を生成することなく電源消費のためにだけ用いられる。例えば、メモリセル316は、信号源(例えば、及び/または電源)を欠いている負荷抵抗器と対照的に、アドレス信号をデコードすることと関連した信号を生成することができるワード線デコーダ319に直接連結することができる。このような構造は実質的含意演算を実行する際に利用することができ、それによってアクセス線電圧(例えば、ワード線電圧)を制御することと関連した実行時間を減らすことができる。実質的含意演算を実行する際にメモリアレイ310を利用する方法の詳細は、
図4及び5に関連してさらに説明される。
【0047】
図4Aは、
図4Bに示される印加された信号を使用して実質的含意演算を実行することに関連付けられた真理値表430の一部を示す。
図4Bは、本開示のいくつかの実施形態に従って実質的含意演算を実行することに関連付けられたメモリセルに印加されたいくつかの信号434、436を示す。
【0048】
実質的含意演算を実行することは、特定のシーケンスで複数の信号(例えば、信号434及び436)を印加することを含むことができる。いくつかの実施形態において、信号は、特定の極性及び振幅を有する方形パルスでもよい。本明細書において使用する場合、方形パルスは、
図4Bに示すように、ある値から別の値への遷移が実質的に瞬間的であるパルスとして参照することができる。
【0049】
複数の信号434及び436の各々は、それぞれのアクセス線に印加される電圧に対応することができる。例えば、信号434は、メモリセル「p」及び「q」が連結されるワード線に印加することができる電圧に対応することができる。例えば、信号436−1は、メモリセル「p」が連結されるビット線に印加される電圧に対応することができる。例えば、信号436−2は、メモリセル「q」が連結されるビット線に印加することができる電圧に対応することができる。したがって、信号434はワード線電圧V
WLと呼ばれてもよく、各信号436はビット線電圧V
BLと呼ばれてもよい。
【0050】
表430は、複数の信号434及び436を印加することの結果として、メモリセル「p」及びメモリセル「q」の状態を示す。例えば、(例えば、表430の)カラム431−1及び431−2は、複数の信号434及び436を印加する前の、メモリセル「p」及びメモリセル「q」の状態をそれぞれ示す。例えば、(例えば、表430の)カラム431−3は、複数の信号434及び436を印加した後の、メモリセル「q」の状態(例えば、q(pIMPq)として示される)を示す。
【0051】
図4A〜4Bは、メモリセル「p」が複数の信号434及び436を印加する前に、(例えば、カラム431−1で示すように)リセット状態(例えば、「0」)にプログラムされていると仮定する。複数の信号434及び436は、特定のシーケンスで印加することができる。例えば、信号434は、特定の期間(例えば、T
0〜T
5)の間印加することができ、信号436−1は信号434が印加されている時間の期間内にある特定の期間(例えば、T
1〜T
4)の間印加することができ、信号436−2は信号436−1が印加されている時間の期間内にある特定の期間(例えば、T
2〜T
3)の間印加することができる。
【0052】
図4Bに示すように、信号436−1に対応する電圧は、信号436−2に対応する電圧より小さくてもよい。したがって、ワード線電圧がT
0からT
5まで変わらないと仮定して、T
1で(例えば、T
4まで)メモリセル「p」全体に印加される電圧差438−1は、T
2で(例えば、T
3まで)メモリセル「q」全体に印加される電圧差438−2より小さくてもよい。電圧438−1の振幅は読出し電圧224(の例えば、絶対値)以上であってもよくて、電圧438−2の振幅はプログラム電圧226以上であってもよい。
【0053】
メモリセル「p」がリセット状態(例えば、「0」)にプログラムされていると、メモリセル「p」が読出し電圧(例えば、
図2Bにて図示したように、V
READ2)より高い閾値電圧(例えば、
図2Bにて図示したように、V
TH2)を有するので、T
1でメモリセル「p」全体に印加される電圧差438−1はメモリセル「p」を(例えば、非導通状態から導通状態に)切り替えるのに十分ではない可能性がある。したがって、T
1でメモリセル「p」全体に印加された電圧は、ワード線電圧434に影響を及ぼさない。
【0054】
ワード線電圧434がT
0からT
5まで変わらないときに、T
3でメモリセル「q」全体に印加される電圧差438−2はメモリセルqを切り替えるのに十分であり得て、それは結果としてセット状態(例えば、「1」)にメモリセル「q」をプログラムすることになる。例えば、以前、電圧分布222−2によって表されるリセット状態(例えば、「0」)にプログラムされたメモリセルqは、電圧分布222−3によって表されるセット状態(例えば、「1」)にプログラムすることができる。例えば、以前、電圧分布222−3によって表されるセット状態(例えば、「1」)にプログラムされたメモリセルqは、再び導通状態に切り替えることができ、それは(例えば、電圧分布222−3によって表される)同じ状態を示す。したがって、メモリセルqの以前の状態に関係なく、メモリセル「q」は、テーブル430に示すように、複数の信号434及び436を印加することの結果として、セット状態(例えば、「1」)にプログラムされる。
【0055】
図5Aは、
図5Bに示される印加された信号を使用して実質的含意演算を実行することと関連付けられた真理値表530の一部を示す。
図5Bは、本開示のいくつかの実施形態に従って実質的含意演算を実行することに関連付けられたメモリセルに印加されたいくつかの信号534、536を示す。
【0056】
信号534、536−1及び536−2は、
図4Bに関連して記載されているように、それぞれ、信号434、436−1及び436−2に類似していてもよい。例えば、信号534は、メモリセル316が連結することができるワード線(例えば、ワード線312)に印加することができる電圧に対応することができる。例えば、信号536−1は、1つのメモリセル「p」が連結することができるビット線の1つに印加することができる電圧に対応することができる。例えば、信号536−2は、メモリセル「q」が連結することができるビット線の別の1つに印加することができる電圧に対応することができる。
【0057】
表530は、複数の信号534及び536を印加することの結果として、メモリセル「p」及びメモリセル「q」の状態を示す。例えば、(例えば、表530の)カラム531−1及び531−2は、複数の信号534及び536を印加する前の、メモリセル「p」及びメモリセル「q」の状態をそれぞれ示す。例えば、(例えば、表530の)カラム531−3は、複数の信号534及び536を印加した後の、メモリセル「q」の状態(例えば、q(pIMPq)として示される)を示す。
【0058】
図5A〜5Bは、メモリセル「p」が複数の信号534及び536を印加する前にセット状態(例えば、「1」)にプログラムされていると仮定する。複数の信号534及び536は、
図4Bに関連付けられて説明されていて、
図5Bに示されるように、特定のシーケンスで印加することができる。例えば、信号534は、(例えば、メモリセル「p」及び「q」が連結されているワード線に)T
0からT
5まで印加することができ、信号536−1は、(例えば、メモリセル「p」が連結されているビット線に)T
1からT
4まで(例えば、信号534が印加されている間)印加することができ、信号536−2は、(例えば、メモリセル「q」が連結されているビット線に)T
2からT
3まで(例えば、信号536−1が印加されている間)印加することができる。
【0059】
図5Bに示すように、電圧差538−1は、電圧差538−2よりも小さくなくてもよい。
図4A及び
図4Bに関連して説明したシナリオ(例えば、メモリセル「p」がリセット状態(例えば、「0」)に事前にプログラムされるシナリオ)とは異なり、セット状態(例えば、「1」)にプログラムされるメモリセル「p」は、読み出し電圧よりも低い閾値電圧を有する。例えば、
図2B及び
図2Cに関連して説明したように、メモリセル「p」にわたって印加される電圧差538−1は、メモリセル「p」を異なる状態に(例えば、非導通状態から導通状態に)に切り替えるのに十分である。このように、T
1に続くある点において、ワード線電圧(V
WORD)は、メモリセルpのスイッチングイベントに起因して上昇する。上昇したV
WORDは、電圧差538−2(例えば、T3においてメモリセル「q」にわたって印加される電圧)を減少させ得る。例えば、ビット線電圧564−2(例えば、メモリセル「q」に印加される電圧)がビット線電圧464−2と同じ電圧である場合でも、V
WORDが上昇しているので、T
3からT
4までのメモリセル「q」にわたる電圧差電圧538−2が減少し得る。電圧差438−1と比較して減少した電圧差538−2は、読み出し電圧224の大きさに対応し得る。
【0060】
減少した電圧差538−2は、メモリセル「q」の論理状態を変化させなくてもよい。例えば、メモリセル「q」がリセット状態(例えば、電圧分布222−4によって表される)に事前にプログラムされる場合、メモリセル「q」の閾値電圧(例えば、V
TH2)は、減少した電圧差538−2(例えば、V
READ2)よりも大きく、メモリセル「q」は、同じ状態(例えば、リセット状態)のままであってもよい。例えば、メモリセル「q」がセット状態(例えば、電圧分布222−1で表される)に事前にプログラムされる場合、メモリセル「q」の閾値電圧(例えば、V
TH4)は、減少した電圧差538−2よりも小さく、減少した電圧差538−2は、メモリセル「q」を非導通状態から導通状態(例えば、222−3)に再び切り替えてもよく、これは、同じ状態(例えば、セット状態「1」)を示す。
【0061】
図4A及び
図5Aに示すように、複数の信号(例えば、434及び436及び/または534及び536)を印加した結果として、メモリセル「p」がリセット状態にプログラムされる場合にのみ、メモリセル「q」の状態が(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。メモリセル「p」に記憶された値(例えば、列531−1に示すように)が前件であり、メモリセル「q」に記憶された値(例えば、列531−2に示すように)が(例えば、実質的含意演算の)後件であることを考えると、メモリセル「q」の結果として生じる状態(例えば、列531−3に示すように)は、実質的含意演算の結果に対応する。別の言い方をすれば、本明細書に示すように、特定の順序で複数の信号をメモリアレイ(例えば、メモリアレイ310)上に印加することは、実質的含意演算の実行をもたらすことがあり、その結果は、事前に記憶された値が後件として使用されたメモリセル(例えば、メモリセル「q」)のうちの1つに記憶されてもよい。同様に、いくつかの実質的含意演算を実行することによって、メモリアレイ(例えば、メモリアレイ110)は、とりわけ、NOT、NAND、NOR、COPY、及び/またはXORなどのブール論理演算を実行するように構成されてもよい。
【0062】
いくつかの実施形態では、実質的含意演算は、実質的含意演算に関連付けられた値をメモリアレイ(例えば、メモリアレイ110)から転送することなく実行されてもよい。例えば、実質的含意演算は、前件及び/または後件などのそれらの値を異なる記憶位置(例えば、感知増幅器、ラッチなど)に読み出すことなく、及び/または記憶することなく実行されてもよい。このように、本開示の実施形態は、実質的含意演算のオペランドを(例えば、読み取り動作中に)感知回路に転送することを含み得る以前のアプローチと比較して、電力消費を減少することなどの利点を提供する。
【0063】
図6Aは、本開示のいくつかの実施形態(例えば、
図6B〜
図6Fに関連して説明したものなど)に従って、実質的含意演算を実行するように動作することができるメモリアレイ610の一部分を示す。例えば、表640、650、660、670、及び680は、実質的含意演算または複数の(例えば、組み合わせの)実質的含意演算を実行することによって、それぞれの論理演算(例えば、NOT、NAND、NOR、COPY、及び/またはXOR)を実行することを示す。
【0064】
図6Aに示すように、メモリアレイ610は、同じワード線612と、それぞれのビット線614−1、614−2、614−3、614−4、614−5とに共通に結合されたメモリセル616−1、616−2、616−3、616−4、及び616−5(例えば、集合的にメモリセル616と呼ばれる)を含み得る。
【0065】
この例では、メモリセル「p」(例えば、616−1)はtビット線614−1に結合され、メモリセル「q」(例えば、616−2)はビット線614−2に結合され、メモリセル「r」(例えば、616−3)はビット線614−3に結合され、メモリセル「s」(例えば、616−4)はビット線614−4に結合され、メモリセル「t」(例えば、616−5)はビット線614−5に結合されている。
図3に関連して説明したように、メモリアレイ610は、例えば、メモリセル616と実質的含意演算(複数可)を実行するために使用されるワード線612との間に、外部抵抗器を含まなくてもよい。例えば、実質的含意演算(複数可)は、アクセス線デコーダ(例えば、ワード線及び/またはビット線デコーダ)に関連付けられた抵抗に加えて、抵抗(例えば、負荷抵抗器)を使用せずに実行することができる。
【0066】
本明細書で使用するように、メモリセル及び別のメモリセルに特定の順序で複数の実質的含意信号を印加することは、
図4B及び
図5Bに関連して説明したタイミングに従って、複数の信号434及び436(例えば、または534及び536)を印加することを意味してもよく、この場合、一方のメモリセルは前件である値を記憶し、他方のメモリセルは実質的含意演算の後件である値を記憶する。例えば、メモリセル「p」及びメモリセル「q」に複数の実質的含意信号を印加することは、pIMPqを実行することを示し得る。
【0067】
図6Bは、本開示のいくつかの実施形態による、実質的含意演算を実行することによってNOT演算を実行することに関連付けられたメモリセルの状態を示す真理値表640−1及び640−2を示す。2つのメモリセル(例えば、メモリセルp及びs)は、メモリセルpに記憶された値(例えば、列644−1によって示されるように)がNOT演算の入力(例えば、NOTp)である、NOT演算を実行するために利用されてもよい。
【0068】
この例では、表640−1の列644−2は、「FALSE s」演算に対応し、これは、NOT演算の最初のステップであり、メモリセル「p」、「q」、及び「s」に複数の実質的含意信号を印加する前に、メモリセル「s」がリセット状態(例えば、「0」)にプログラムされることをもたらす。表640−2は、「pIMPs」演算に対応する。「pIMPs」演算の実行後、セル「s」は、「pNOTq」の結果(例えば、表640−2の644−2列に示すように)を記憶する。メモリセル「s」は、メモリセル「p」及び「s」に複数の信号を印加する前に、リセット状態(例えば、「0」)にプログラムされてもよい。
【0069】
メモリセルsをリセット状態(例えば、「0」)にプログラムすることに続いて、複数の実質的含意信号(例えば、信号434及び436及び/または534及び536)をメモリセル「p」及び「s」(例えば、「pIMPs」)に印加してもよい(例えば、
図4及び
図5に関連して説明したように)。例えば、メモリセル「s」の状態は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化し得る。
【0070】
表640−2は、pIMPsを実行した結果として、メモリセル「p」及び「s」の結果として生じる状態を示す。例えば、表640−2の行642−1によって示すように、メモリセル「s」は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされたときに、セット状態(例えば、「1」)にプログラムされてもよい。例えば、表640−2の行642−3によって示すように、メモリセルpがリセット状態(例えば、「1」)にプログラムされたときに、メモリセルはリセット状態(例えば、「0」)のままであってもよい。メモリセルsの変化した状態(例えば、表640−2の列644−2)は、NOT演算の結果を表し、その入力は、メモリセルpに記憶された値(例えば、列644−1)である。このように、NOT演算は、2つのメモリセル上で単一の実質的含意演算を実行することによって実行されてもよい。
【0071】
図6Cは、本開示のいくつかの実施形態による、いくつかの実質的含意演算を実行することによってNAND演算(例えば、p NAND q)を実行することに関連付けられたメモリセルの状態を示す真理値表650−1、650−2、及び650−3を示す。3つのメモリセル(例えば、メモリセル「p」、「q」、及び「s」)は、NAND演算を実行するために利用されてもよく、ここで、メモリセル「p」及び「q」に記憶された値は、NAND演算(例えば、p NAND q)の入力である。
【0072】
この例では、表650−1の列654−3は、「FALSE s」演算に対応し、これは、NAND演算の最初のステップであり、メモリセル「p」、「q」、及び「s」に複数の実質的含意信号を印加する前に、メモリセル「s」がリセット状態(例えば、「0」)にプログラムされることをもたらす。表650−2は、表650−1に示されるFALSE s演算の実行に続いて実行される「pIMPs」演算に対応する。表650−3は、「pIMPs」演算の実行に続いて実行される「qIMPs」演算に対応する。「qIMPs」演算の実行後、セル「s」は、「pNANDq」の結果(例えば、表650−4の列654−3に示すように)を記憶する。
【0073】
表650−2は、「pIMPs」の実行に続くメモリセル「p」、「q」、及び「s」の結果として生じる状態を示す。例えば、表650−2の行652−1及び652−2によって示すように、メモリセル「s」は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされたときに、セット状態(例えば、「1」)にプログラムされてもよい。例えば、表650−2の行652−3及び652−4によって示すように、メモリセルは、メモリセル「p」がリセット状態(例えば、「1」)にプログラムされたときに、リセット状態(例えば、「0」)のままであってもよい。
【0074】
表650−3は、表650−2に示すpIMPs演算の実行に続いて実行される「pIMPq」演算に対応する。したがって、表650−3に示すように、本実施例では、メモリセル「q」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、メモリセル「s」の状態が(例えば、リセット状態「0」からセット状態「1」に)変化する。
【0075】
表650−3は、qIMPsを実行した結果として、メモリセル「p」、「s」、及び「q」の結果として生じる状態を示す。例えば、表650−3の行652−3によって示すように、メモリセル「s」は、メモリセル「q」が、表650−3の行652−3によって示すようにリセット状態(例えば、「0」)にプログラムされたときに、セット状態(例えば、「1」)にプログラムされてもよい。メモリセル「s」の変化した状態(例えば、表650−3の列654−3)は、NAND演算の結果を表し、その入力は、メモリセル「p」及び「q」に記憶された値である(例えば、それぞれ列654−1及び654−2)。このように、NAND演算は、3つのメモリセル上で単一の実質的含意演算を実行することによって実行されてもよい。
【0076】
図6Dは、本開示のいくつかの実施形態による、いくつかの実質的含意演算を実行することによってNOR演算(例えば、pNORq)を実行することに関連付けられたメモリセルの状態を示す真理値表660−1、660−2、660−3、及び660−4を示す。4つのメモリセル(例えば、メモリセル「p」、「q」、「r」、及び「s」)は、NOR演算を実行するために利用されてもよく、ここで、メモリセル「p」及び「q」に記憶された値は、NOR演算(例えば、p NOR q)の入力である。
【0077】
この例では、表660−1は、「FALSE r」及び「FALSE s」演算に対応し、ここで、セル「r」及び「s」は、セル「p」及び「q」に記憶された値(例えば、列664−3及び664−4に示されるように)に関係なく「0」が存在するようにリセットされる。表660−2は、後続の「pIMPr」演算に対応し、表660−3は、後続の「rIMPq」演算に対応し、表660−4は、後続の「qIMPs」演算に対応する。「qIMPs」演算の実行後、セル「s」は、「pNORq」の結果(例えば、表660−4の列664−3に示すように)を記憶する。メモリセル「r」及び「s」は、メモリセル「p」、「q」、「r」、及び「s」に複数の信号を印加する前に、リセット状態(例えば、「0」)にプログラムされてもよい。
【0078】
メモリセル「r」及び「s」をリセット状態(例えば、「0」)にプログラムすることに続いて、複数の実質的含意信号をメモリセルp及びrに印加してもよい(例えば、「pIMPr」)。例えば、メモリセル「r」の状態は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。
【0079】
表660−2は、「pIMPr」の実行に続くメモリセル「p」、「r」、及び「s」の結果として生じる状態を示す。例えば、表660−2の行662−1及び662−2によって示すように、メモリセル「r」は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされたときに、セット状態(例えば、「1」)にプログラムされてもよい。例えば、表660−2の行662−3及び662−4によって示すように、メモリセル「r」は、メモリセル「p」がセット状態(例えば、「1」)にプログラムされたときに、リセット状態(例えば、「0」)のままであってもよい。
【0080】
pIMPrを実行することに続いて、メモリセル「r」及び「q」に複数の実質的含意信号を印加してもよい(例えば、rIMPq)。例えば、メモリセル「q」の状態は、メモリセル「r」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。
【0081】
表660−3は、rIMPqを実行した結果(例えば、pIMPrに続いて実行された結果)として、メモリセル「p」、「q」、「r」、及び「s」の結果として生じる状態を示す。例えば、表660−3の行662−3によって示すように、メモリセル「q」は、メモリセル「r」がリセット状態(例えば、「0」)にプログラムされたときにセット状態(例えば、「1」)にプログラムされてもよく、一方、メモリセル「q」は、他のシナリオでは、表660−3の行662−1、662−2、及び662−4によって示すように、以前の状態のままであってもよい。
【0082】
rIMPqを実行することに続いて、メモリセル「q」及び「s」に複数の実質的含意信号を印加してもよい(例えば、qIMPs)。例えば、メモリセル「s」の状態は、メモリセル「q」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。
【0083】
表660−4は、qIMPsを実行した結果(例えば、rIMPqに続いて実行された結果)として、メモリセル「p」、「q」、「r」、及び「s」の結果として生じる状態を示す。例えば、表660−4の行662−1によって示すように、メモリセル「q」は、メモリセル「q」がリセット状態(例えば、「0」)にプログラムされたときにセット状態(例えば、「1」)にプログラムされてもよく、一方、メモリセル「s」は、他の場合には、表660−4の行662−2、662−3、及び662−4によって示すように、リセット状態(例えば、「0」)のままであってもよい。メモリセル「s」の変化した状態(例えば、表660−4の列664−4)は、NOR演算の結果を表し、その入力は、メモリセル「p」及び「q」に記憶された値(例えば、列664−1及び664−2)である。このように、NOR演算は、4つのメモリセル上で単一の実質的含意演算を実行することによって実行されてもよい。
【0084】
図6Eは、本開示のいくつかの実施形態による、いくつかの実質的含意演算を実行することによってCOPY演算を実行することに関連付けられたメモリセルの状態を示す真理値表670−1、670−2、及び670−3を示す。3つのメモリセル(例えば、メモリセル「p」、「r」、及び「s」)は、COPY演算を実行するために利用されてもよく、ここで、メモリセル「p」に記憶された値は、COPY演算(例えば、COPY p)の入力である。
【0085】
この例では、表670−1は、「FALSE r」及び「FALSE s」演算に対応し、ここで、セル「r」及び「s」は、セル「p」に記憶された値(例えば、列674−2及び674−3に示すように)に関係なく、それらの値が「0」であるようにリセットされる。表670−2は、後続の「pIMPr」演算に対応し、表670−3は、後続の「rIMPs」演算に対応する。「rIMPs」演算の実行後、セル「s」は、「COPY q」の結果(例えば、表670−3の列674−3に示すように)を記憶する。メモリセル「r」及び「s」は、メモリセル「p」、「r」、及び「s」に複数の信号を印加する前に、リセット状態(例えば、「0」)にプログラムされてもよい。
【0086】
メモリセル「r」及び「s」をリセット状態(例えば、「0」)にプログラムすることに続いて、複数の実質的含意信号をメモリセル「p」及び「r」に印加してもよい(例えば、「pIMPr」)。例えば、メモリセル「r」の状態は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。
【0087】
表670−2は、「pIMPr」の実行に続くメモリセル「p」、「r」、及び「s」の結果として生じる状態を示す。例えば、表670−2の行672−1によって示すように、メモリセル「r」は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされたときに、セット状態(例えば、「1」)にプログラムされてもよい。例えば、表670−2の行672−3によって示すように、メモリセル「r」は、メモリセル「p」がセット状態(例えば、「1」)にプログラムされたときに、リセット状態(例えば、「0」)のままであってもよい。
【0088】
pIMPrを実行することに続いて、メモリセル「r」及び「s」に複数の実質的含意信号を印加してもよい(例えば、rIMPs)。例えば、メモリセル「s」の状態は、メモリセル「r」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。
【0089】
表670−3は、rIMPsを実行した結果(例えば、pIMPrに続いて実行された結果)として、メモリセル「p」、「r」、及び「s」の結果として生じる状態を示す。例えば、表670−3の行672−1によって示すように、メモリセル「s」は、メモリセル「r」がリセット状態(例えば、「1」)にプログラムされたときに、リセット状態(例えば、「0」)のままであってもよい。例えば、表670−2の行672−3によって示すように、メモリセル「s」は、メモリセル「r」がリセット状態(例えば、「0」)にプログラムされたときに、セット状態(例えば、「1」)にプログラムされてもよい。メモリセル「s」の変化した状態(例えば、表670−3の列674−3)は、COPY演算の結果を表し、その入力はメモリセル「p」に記憶された値(例えば、列674−1)である。このように、COPY演算は、3つのメモリセル上で2つの実質的含意演算を実行することによって実行されてもよい。
【0090】
図6Fは、本開示のいくつかの実施形態による、いくつかの実質的含意演算を実行することによってXOR演算を実行することに関連付けられたメモリセルの状態を示す真理値表680−1、680−2、680−3、680−4、及び680−5を示す。3つのメモリセル(例えば、メモリセル「p」、「q」、「r」、及び「s」)は、XOR演算を実行するために利用されてもよく、ここで、メモリセル「p」及び「q」に記憶された値は、XOR演算(例えば、p XOR q)の入力である。
【0091】
この例では、表680−1は、「FALSE r」、「FALSE s」、及び「FALSE t」演算に対応し、ここで、セル「r」、「s」、及び「t」は、セル「p」及び「q」に記憶された値(例えば、列684−3、684−4、及び684−5に示すように)に関係なく、それらの値が「0」であるようにリセットされる。表680−2は、後続の「COPY p」演算及び後続の「COPY q」演算に対応する。表680−3は、後続の「pIMPs」演算及び後続の「qIMPr」演算に対応し、表680−4は、後続の「rIMPt」演算に対応し、表680−5は、後続の「sIMPt」演算に対応する。「sIMPt」演算の実行後、セル「t」は、(例えば、表680−5の列684−5に示すように)「p XOR q」の結果を記憶する。メモリセルr及びsは、メモリセル「p」、「r」、及び「s」に複数の信号を印加する前に、リセット状態(例えば、「0」)にプログラムされてもよい。
【0092】
メモリセル「r」、「s」、及び「t」をリセット状態(例えば、「0」)にプログラムすることに続いて、メモリセル「p」及び「q」にCOPY演算を実行してもよい。例えば、メモリセル「p」に記憶された値をメモリセル「r」にコピーしてもよく(例えば、684−3で示されるように)、メモリセル「q」に記憶された値をメモリセル「s」にコピーしてもよい(例えば、684−4で示されるように)。いくつかの実施形態では、これらのCOPY演算は、
図6Eに関連して説明したように、複数の実質的含意信号を使用して実行されてもよい。
【0093】
COPY演算の実行に続いて、メモリセル「p」及び「s」(例えば、pIMPs)及びメモリセル「q」及び「r」(例えば、qIMPr)に、複数の実質的含意信号を印加してもよい。例えば、メモリセル「s」の状態は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。例えば、メモリセル「r」の状態は、メモリセル「q」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。2つの実質的含意演算(例えば、pIMP及びqIMPr)は、同時に及び/または逐次的に実行されてもよい。
【0094】
表680−3は、pIMPs及びqIMPrの実行に続くメモリセル「p」、「q」、「r」、「s」、及び「t」の結果として生じる状態を示す。例えば、表680−3の行682−1によって示すように、メモリセル「s」は、メモリセル「p」がリセット状態(例えば、「0」)にプログラムされたときにセット状態(例えば、「1」)にプログラムされてもよく、メモリセル「r」は、メモリセル「q」がリセット状態(例えば、「0」)にプログラムされたときにセット状態(例えば、「1」)にプログラムされてもよい。
【0095】
pIMPs及びqIMPrを実行することに続いて、メモリセル「r」及び「t」に複数の実質的含意信号を印加してもよい(例えば、rIMPt)。例えば、メモリセル「t」の状態は、メモリセル「r」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。
【0096】
表680−4は、rIMPtを実行した結果(例えば、pIMPs及びqIMPrに続いて実行された結果)として、メモリセル「p」、「q」、「r」、「s」、及び「t」の結果として生じる状態を示す。例えば、表680−4の行682−2によって示すように、メモリセル「t」は、メモリセル「r」がリセット状態(例えば、「0」)にプログラムされたときに、セット状態(例えば、「1」)にプログラムされてもよい。例えば、行682−1、682−3、及び682−4によって示すように、メモリセル「t」は、メモリセル「r」がリセット状態(例えば、「1」)にプログラムされたときに、リセット状態(例えば、「0」)のままであってもよい。
【0097】
rIMPtの実行に続いて、メモリセル「s」及び「t」に複数の実質的含意信号を印加してもよい(例えば、sIMPt)。例えば、メモリセル「t」の状態は、メモリセル「s」がリセット状態(例えば、「0」)にプログラムされる場合にのみ、(例えば、リセット状態「0」からセット状態「1」に)変化してもよい。
【0098】
表680−5は、sIMPtを実行した結果(例えば、rIMPtに続いて実行された結果)として、メモリセル「p」、「q」、「r」、及び「s」の結果として生じる状態を示す。例えば、表680−4の行682−3によって示すように、メモリセル「t」は、メモリセル「s」がリセット状態(例えば、「0」)にプログラムされたときにセット状態(例えば、「1」)にプログラムされてもよく、一方、メモリセル「t」は、他のシナリオでは、表680−4の行682−1、682−2、及び682−4によって示すように、以前の状態のままであってもよい。メモリセル「t」の変化した状態(例えば、表680−5の列684−4)は、XOR演算の結果を表し、その入力は、メモリセル「p」及び「q」に記憶された値(例えば、列684−1及び684−2)である。このように、XOR演算は、5つのメモリセル上で2つのCOPY演算及び4つの実質的含意演算を実行することによって実行されてもよい。
【0099】
本明細書では特定の実施形態が例示され説明されているが、同じ結果を達成するために意図された構成が、示された特定の実施形態と置き換えられ得ることが、当業者には理解されよう。本開示は、本開示の多数の実施形態の適応形態または変形形態を対象とすることを意図する。上記の説明は、例示的な方法で行われたものであり、限定的なものではないことを理解されたい。上記の実施形態の組み合わせ、及び本明細書に具体的に記載されていない他の実施形態は、上記の説明を再考察することで、当業者には明らかになるであろう。本開示の多数の実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。したがって、本開示の多数の実施形態の範囲は、添付の特許請求の範囲を参照し、添付の特許請求の範囲が権利を与えられる内容の均等物の最大範囲に沿って、特定されるべきである。
【0100】
前述の発明を実施するための形態において、いくつかの特徴は、開示を簡素化するために、単一の実施形態にまとめられている。この開示方法は、本開示の開示された実施形態が各請求項に明示的に列挙される特徴より多くの特徴を使用する必要があるという意図を反映するものとして解釈されるべきではない。むしろ、下記の特許請求の範囲が反映するように、発明内容は、単一の開示された実施形態の全ての特徴より少ない。したがって、下記の特許請求の範囲は、本明細書では発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立する。