JP2013122797A - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP2013122797A
JP2013122797A JP2011270223A JP2011270223A JP2013122797A JP 2013122797 A JP2013122797 A JP 2013122797A JP 2011270223 A JP2011270223 A JP 2011270223A JP 2011270223 A JP2011270223 A JP 2011270223A JP 2013122797 A JP2013122797 A JP 2013122797A
Authority
JP
Japan
Prior art keywords
state
memory cell
cell
potential
bit line
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.)
Pending
Application number
JP2011270223A
Other languages
English (en)
Inventor
Haruki Toda
春希 戸田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011270223A priority Critical patent/JP2013122797A/ja
Publication of JP2013122797A publication Critical patent/JP2013122797A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Semiconductor Memories (AREA)

Abstract

【課題】不良率が低いメモリセルを用いた半導体記憶装置を提供することを目的とする。
【解決手段】実施形態に係る半導体記憶装置は、複数の第1配線、前記第1配線に交差する複数の第2配線、並びに、前記複数の第1配線及び第2配線の交差部に設けられた複数のメモリセルからなるメモリセル層を有するメモリセルアレイを備え、前記メモリセルは、積層された複数のセルユニットを有し、前記セルユニットの異なる抵抗状態によってデータを記憶し、前記セルユニットは、第1極性の電圧が印加されると前記抵抗状態が高抵抗状態から低抵抗状態に遷移し、前記第1極性と異なる第2極性の電圧が印加されると前記抵抗状態が抵抵抗状態から高抵抗状態に遷移し、前記第1極性における電圧−電流特性と前記第2極性における電圧−電流特性とが非対象であることを特徴とする。
【選択図】図14

Description

実施形態は、半導体記憶装置に関する。
大容量データを記憶して利用するメモリとして、三次元化が容易な抵抗変化型メモリ(ReRAM:Resistive RAM)などが注目されている。これら抵抗変化型メモリの特徴は、メモリセルに印加する電圧の方向によって電圧−電流特性が大きく変わる非対称性にある。
しかし、製造不良によってこの非対称性が損なわれたメモリセルは、ある確率で出現する。このようなメモリセルがあると、三次元化されたクロスポイント型のメモリセルアレイの場合、電流のショート経路が出現してしまい、メモリセルアレイの大きな領域がアクセス不能になるため問題となる。
特開2010−33675号公報
不良率が低いメモリセルを用いた半導体記憶装置を提供することを目的とする。
実施形態に係る半導体記憶装置は、複数の第1配線、前記第1配線に交差する複数の第2配線、並びに、前記複数の第1配線及び第2配線の交差部に設けられた複数のメモリセルからなるメモリセル層を有するメモリセルアレイを備え、前記メモリセルは、積層された複数のセルユニットを有し、前記セルユニットの異なる抵抗状態によってデータを記憶し、前記セルユニットは、第1極性の電圧が印加されると前記抵抗状態が高抵抗状態から低抵抗状態に遷移し、前記第1極性と異なる第2極性の電圧が印加されると前記抵抗状態が抵抵抗状態から高抵抗状態に遷移し、前記第1極性における電圧−電流特性と前記第2極性における電圧−電流特性とが非対象であることを特徴とする。
実施形態に係る半導体記憶装置の構成図である。 実施形態に係る半導体記憶装置のメモリセルアレイの一部の斜視図である。 実施形態に係る半導体記憶装置の構造図である。 実施形態に係る半導体記憶装置のメモリセルのセルユニットの回路記号及び電圧−電流特性を示す図である。 比較例に係る半導体記憶装置のメモリセルアレイの一部の等価回路図である。 比較例に係る半導体記憶装置のフローティングアクセス方式によるアクセス動作を説明する図である。 比較例に係る半導体記憶装置のフローティングアクセス方式によるホールド動作時のメモリセルアレイのバイアス状態を示す図である。 比較例に係る半導体記憶装置のフローティングアクセス方式によるアクセス動作のアクティブ・スタンバイ・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 比較例に係る半導体記憶装置のフローティングアクセス方式による読み出し動作のアクセス・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 比較例に係る半導体記憶装置のフローティングアクセス方式によるセット動作のアクセス・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 比較例に係る半導体記憶装置のフローティングアクセス方式によるリセット動作のアクセス・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 比較例に係る半導体記憶装置のフローティングアクセス方式による読み出し動作におけるバタフライ化したメモリセルの影響を説明する図である。 比較例に係る半導体記憶装置のフローティングアクセス方式によるセット動作におけるバタフライ化したメモリセルの影響を説明する図である。 実施形態に係る半導体記憶装置のメモリセルの構造を説明する図である。 実施形態に係る半導体記憶装置のZpの要素とペアセルの状態の対応付けを示す図である。 実施形態に係る半導体記憶装置のZpの要素とペアセルの状態の対応付けを示す図である。 実施形態に係る半導体記憶装置のメモリセルグループを説明する図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式によるホールド動作時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式によるアクセス動作のイニシャル・スタンバイ・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式によるアクセス動作のアクティブ・スタンバイ・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘2’状態設定)のアクセス・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘1’状態設定)のアクセス・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘0’状態設定)のアクセス・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作のアクセス・フェーズ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(初期状態設定)時の正常なメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(初期状態設定)時のバタフライ化したセルユニットを持つメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(初期状態設定)時のバタフライ化したセルユニットを持つメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘2’状態設定)時の正常なメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘2’状態設定)時のバタフライ化したセルユニットを持つメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘1’状態設定)時の正常なメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘1’状態設定)時のバタフライ化したセルユニットを持つメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘0’状態設定)時の正常なメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による書き込み動作(‘0’状態設定)時のバタフライ化したセルユニットを持つメモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置の書き込み動作の書き込みシーケンスの一例を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の‘0’状態判定ステップ後のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の前‘1’状態判定ステップ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の‘1’状態判定ステップ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作時の選択ビット線及び選択ワード線間の選択メモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作時の選択ビット線及び非選択ワード線間の非選択メモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作時の非選択ビット線及び選択ワード線間の非選択メモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作時の非選択ビット線及び非選択ワード線間の非選択メモリセルの状態遷移を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の‘1’状態判定ステップ後のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の前‘1’状態再設定ステップ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の‘1’状態再設定ステップ時のメモリセルアレイのバイアス状態を示す図である。 実施形態に係る半導体記憶装置のメモリセルアレイにおける欠陥発生時の処理方法を説明する図である。 実施形態に係る半導体記憶装置におけるペアセルの構成例を説明する図である。 実施形態に係る半導体記憶装置におけるペアセルの構成例を説明する図である。 実施形態に係る半導体記憶装置におけるペアセルの構成例を説明する図である。 実施形態に係る半導体記憶装置における複数のメモリセルに対する並列アクセスを説明する図である。 実施形態に係る半導体記憶装置の構成例のブロック図である。 実施形態に係る半導体記憶装置のECCシステム(ε=1)の機能ブロック図である。 実施形態に係る半導体記憶装置のECCシステム(ε=2)の機能ブロック図である。 実施形態に係る半導体記憶装置に7進数変換部の構成を模式的に示した図である。 実施形態に係る半導体記憶装置の7進数変換部の構成を示す図である。 実施形態に係る半導体記憶装置の“X to p”回路ブロックの構成を示す図である。 実施形態に係る半導体記憶装置の“X to p”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“4 bit mod 7”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“4 bit mod 7”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の“p−adic”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“p−adic”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の7進数変換部のブロック図である。 実施形態に係る半導体記憶装置の“D−r”レジスタの回路図である。 実施形態に係る半導体記憶装置の7進数変換部の制御信号のタイミング図である。 実施形態に係る半導体記憶装置の2進数変換部の構成を模式的に示した図である。 実施形態に係る半導体記憶装置の2進数変換部の構成を示す図である。 実施形態に係る半導体記憶装置の“a to X”回路ブロックの構成を示す図である。 実施形態に係る半導体記憶装置の“a to X”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“4 bit add 7”回路ブロックの回路記号である。 実施形態に係る半導体記憶装置の“4 bit add 7”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の“p to X”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“p to X”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の“binary”回路ブロックの回路記号である。 実施形態に係る半導体記憶装置の“binary”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の2進数変換部のブロック図である。 実施形態に係る半導体記憶装置の“A−4”レジスタの回路図である。 実施形態に係る半導体記憶装置のメモリコントローラにおけるデータ処理のフローチャートである。 実施形態に係る半導体記憶装置のメモリコントローラにおけるデータ処理のフローチャートである。 実施形態に係る半導体記憶装置の“X Zp”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“X Zp”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の“3 bit AD mod 7”回路ブロック及び“3 bit AD(8) mod 7”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“3 bit AD mod 7”回路ブロック及び“3 bit AD(8) mod 7”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置のZpの要素の累乗を求めるデコーダに用いる対応表である。 実施形態に係る半導体記憶装置のZpの要素の逆元を求めるデコーダに用いる対応表である。 実施形態に係る半導体記憶装置のエンコーダ部のブロック図である。 実施形態に係る半導体記憶装置のシンドローム成分要素生成回路のブロック図である。 実施形態に係る半導体記憶装置の“c(m−1) ”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“c(m−1) ”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の“a”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“a”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の“c/a”回路ブロックの回路記号を示す図である。 実施形態に係る半導体記憶装置の“c/a”回路ブロックのブロック図である。 実施形態に係る半導体記憶装置の逆変換回路のブロック図である。 実施形態に係る半導体記憶装置の“3 bit LM7”回路ブロックの回路記号を示す図である。 実施形態に係る半導体既往装置の“3 bit LM7”回路ブロックのブロック図である。
以下、図面を参照しながら実施形態に係る半導体記憶装置について説明する。
[半導体記憶装置の概要]
図1は、実施形態に係る半導体記憶装置の構成図である。この半導体記憶装置は、メモリセルアレイ1を備える。メモリセルアレイ1は、複数積層されたメモリセルマットMM(メモリセル層)を有する。各メモリセルマットMMは、複数のビット線BL(第1配線)及び複数のワード線WL(第2配線)と、これらワード線WL及びビット線BLで選択されるメモリセルMCを有する。
メモリセルマットMMのビット線BLには、ビット線BLを制御し、メモリセルMCのデータ消去、メモリセルMCへのデータ書き込み及びメモリセルMCからのデータ読み出しをするカラム制御回路2が電気的に接続されている(以下において、メモリセルMCのデータ消去及びメモリセルMCへのデータ書き込みをまとめて「書き込み動作」と呼び、メモリセルMCからのデータ読み出しを「読み出し動作」と呼ぶ。また、書き込み動作及び読み出し動作をまとめて「アクセス動作」と呼ぶ)。カラム制御回路2には、アクセス動作に必要な電圧をビット線BLに供給するビット線ドライバ2´と、読み出し動作時にメモリセルMCに流れる電流を検知・増幅してメモリセルMCが記憶するデータを判定するセンスアンプSAを有する。
一方、メモリセルマットMMのワード線WLには、アクセス動作時にワード線WLを選択するロウ制御回路3が電気的に接続されている。ロウ制御回路3は、アクセス動作に必要な電圧をワード線WLに供給するワード線ドライバ3´を有する。なお、このロウ制御回路3は、カラム制御回路2と共にアクセス回路に含まれる。
図2は、メモリセルアレイ1の一部を示す斜視図である。
メモリセルアレイ1は、クロスポイント型のメモリセルアレイである。メモリセルアレイ1のメモリセルマットMMは、平行に配設された複数のビット線BLと、これらビット線BLと交差する方向に平行に配設された複数のワード線WLを有する。ビット線BL及びワード線WLの各交差部には、両配線に挟まれるようにメモリセルMCが設けられている。メモリセルアレイ1は、前述の通り、このような複数のメモリセルマットMMが多層に積層されており、上下に隣接するメモリセルマットMM同士は、ワード線WL或いはビット線BLを共有している。図2の場合、メモリセルアレイ1の最下層のメモリセルマットMM0と、このメモリセルマットMM0の上に隣接するメモリセルマットMM1は、ビット線BL00〜BL02を共有している。
なお、以下において、例えば、ビット線BL00、BL10及びBL20のように、各メモリセルマットMMにおける同じ位置に配設されたビット線BLのまとまりを「ビット線グループ」と呼ぶ。同様に、ワード線WL00及びWL10のように、各メモリセルマットMMにおける同じ位置に配設されたワード線WLのまとまりを「ワード線グループ」と呼ぶ。また、1つのビット線グループ及び1つのワード線グループの交差部に配置されたメモリセルMCのまとまりを「メモリセルグループ」と呼ぶ。
以上説明したクロスポイント型のメモリセルアレイ1の場合、ビット線ドライバ2´、センスアンプSA、ワード線ドライバ3´、バスBUS等の周辺回路は、図3に示すように、メモリセルアレイ1の直下のシリコン基板に形成可能であり、これによって、この半導体記憶装置のチップ面積は、ほぼメモリセルアレイ1の面積に等しくすることができる。
[セルユニットの特性]
ここでは、実施形態に係るメモリセルMCを構成するセルユニットについて説明する。
図4中(A)は、セルユニットCUの回路記号を示す図であり、図4中(B)は、セルユニットCUの電圧−電流特性を示す図である。以下では、図4中(A)に示すノードNaを「アノード」、ノードNcを「カソード」と呼ぶことにする。また、図4中(A)の矢印で示されたアノードNaからカソードNcに向かう方向を「順方向」、その逆の方向を「逆方向」と呼ぶ。したがって、アノードNaよりもカソードNcの電圧が小さいバイアスが順方向バイアス(第1極性)となり、アノードNaよりもカソードNcの電圧が大きいバイアスが逆方向バイアス(第2極性)となる。
セルユニットCUは、可変抵抗素子からなり、この可変抵抗素子の異なる抵抗状態によってデータを記憶する。以下では、可変抵抗素子が高抵抗状態であるセルユニットCUの状態を「リセット状態」、可変抵抗素子が低抵抗状態であるセルユニットCUの状態を「セット状態」と呼ぶ。また、リセット状態のセルユニットCUをセット状態に遷移させる動作を「セット動作」、セット状態のセルユニットCUをリセット状態に遷移させる動作を「リセット動作」と呼ぶ。したがって、書き込み動作は、「セット動作」及び「リセット動作」を含むものである。
このセルユニットCUは、個体電解質の性質を有する。これは、図4中(B)に示すように、バイアスの方向(印加電圧の極性)によって電圧−電流特性が非対称となる性質である。図4中(B)から分かるように、セルユニットCUの電圧−電流特性は、印加電圧V=0の近傍を除いて、セル電流は、I〜A exp(αV)(A、αは定数)で近似することができる。リセット状態のセルユニットCUに順方向バイアスをかけた場合、リセット状態のセルユニットCUに逆方向バイアスをかけた場合及びセット状態のセルユニットCUに逆方向バイアスをかけた場合の係数αは同程度となる。これに対して、セット状態のセルユニットCUに順方向バイアスをかけた場合の係数αは格段に大きくなる。なお、印加電圧V=0の近傍では、ln Iは、±∞になる。
リセット状態のセルユニットCUに順方向バイアスをかけた場合、印加電圧Vが0V近傍からセット電圧Vsetまでの範囲では、セルユニットCUはリセット状態のままであり、セルユニットCUに流れるセル電流Iは印加電圧Vの変化に応じて可逆的に変化する(矢印a0)。そして、印加電圧Vがセット電圧Vset以上になると、セルユニットCUの状態は、リセット状態からセット状態に非可逆的に遷移する(セット動作)(矢印a1)。
一方、セット状態のセルユニットCUに順方向バイアスをかけた場合、セルユニットCUに流れるセル電流Iは印加電圧Vの変化に応じて可逆的に変化する(矢印a2)。しかし、セット状態のセルユニットCUは、順方向バイアスをかけている限り、印加電圧Vを大きくしていってもリセット状態に遷移しない。
リセット状態のセルユニットCUに逆方向バイアスをかけた場合、セルユニットCUに流れるセル電流Iは印加電圧Vの変化に応じて可逆的に変化する(矢印a3)。しかし、リセット状態のセルユニットCUは、逆方向バイアスをかけている限り、印加電圧Vを大きくしていってもセット状態に遷移しない。
一方、セット状態のセルユニットCUに逆方向バイアスをかけた場合、印加電圧が0Vからこの逆方向バイアスが0Vから電圧−Vreset(以下では、Vresetを、「リセット電圧」と呼ぶ)までの範囲では、セルユニットCUはセット状態のままであり、セルユニットCUに流れるセル電流Iは印加電圧Vの変化に応じて可逆的に変化する(矢印a3)。そして、印加電圧Vが電圧−Vreset以下になると、セルユニットCUの状態は、セット状態からリセット状態に非可逆的に遷移する(リセット動作)。
[比較例に係る半導体記憶装置のアクセス動作]
ここでは、実施形態に対する比較例となる半導体記憶装置のアクセス動作について説明する。この比較例に係る半導体記憶装置のメモリセルMC´は、図4を用いて説明したセルユニットCUを1個で構成する。
図5は、比較例のメモリセルアレイの一部であり、メモリセルグループMGの等価回路図である。比較例に係るメモリセルMC´を用いて三次元構造を有するクロスポイント型のメモリセルアレイを構成する場合、図5に示すように、メモリセルMCの上下が1層毎に反転するように、メモリセルマットMMを積層させる。例えば、メモリセルマットMM0のメモリセルMC´020と、メモリセルマットMM0の上に隣接するメモリセルマットMM1のメモリセルMC´120は、メモリセルマットMM0及びMM1が共有するビット線BL00を挟んで上下が反転して配置されている。これは、上下に隣接するメモリセルマットMMで、ビット線BL或いはワード線WLを共有させる場合でも、全てのメモリセルマットMMにおいて、ビット線BLからワード線WLに向かう方向が順方向となるようにメモリセルMC´を設けるためである。
以上、セルユニットCUの特性と、このセルユニットCUが1個で構成された比較例に係るメモリセルMC´を用いた場合のメモリセルアレイの構造について説明した。
しかし、セルユニットCU(比較例の場合、メモリセルMC´自体)は、セット電圧Vsetの過印加等があった場合、逆方向の電圧−電流特性(以下、「リバース特性」と呼ぶ)が、図4中Bの一点鎖線で示すように、順方向の電圧−電流特性(以下、「フォワード特性」と呼ぶ)とほぼ同じ状態になることがある。このようなリバース特性になったセルユニットCUは、セルユニットCUのアノードNaに対するカソードNcの電圧が正の場合と負に場合で、同じ電流立ち上がりを示す。
このように変化したセルユニットCUの特性は、そのグラフの形状がチョウのハネの様な形状となる。そこで、以下では、このようにセルユニットCUの特性が変化することを「バタフライ化」と呼ぶ。
バタフライ化したセルユニットCUの特性は、逆方向バイアスを掛けた場合の電流特性の係数をαrev、セット動作時の電流特性の係数をαsetとすると、αrev〜αsetで表わすことができる。つまり、バタフライ化したセルユニットCUは、本来持つべき非対称性の電圧−電流特性が損なわれた状態となる。
このように、セルユニットCU(比較例の場合、メモリセルMC´自体)がバタフライ化した場合、アクセス動作時において問題が生じてしまう。そこで、次は、この問題を説明する前提として、比較例に係るアクセス動作について説明する。
比較例に係るアクセス動作では、メモリセルマットMMの所定のメモリセルMC´を選択する際、この選択メモリセルMC´に接続されたビット線BL及びワード線WLにアクセス動作に必要な電圧を印加すると共に、他のビット線BL及びワード線WLをフローティング状態にする。ここで、フローティング状態とは、外部から一定電圧を印加していない状態をいう。したがって、アクセスしないメモリセルMC´に接続されたビット線BL及びワード線WLのいずれか一方がをフローティング状態となる。以下では、選択メモリセルに接続されたビット線を「選択ビット線」、選択メモリセルに接続されたワード線を「選択ワード線」、選択メモリセルに接続されていないビット線を「非選択ビット線」、選択メモリセルに接続されていないワード線を「非選択ワード線」、非選択ビット線及び非選択ワード線の少なくとも一方に接続されたメモリセルを「非選択メモリセル」と呼ぶこともある。
始めに、この方法によって、選択メモリセルMC´にアクセスできる根拠について説明する。なお、メモリセルMC´(セルユニットCU)のアノード側にはビット線BL、カソード側にはワード線WLが接続されているものとする。したがって、ビット線BLに高電圧、ワード線WLに低電圧を印加すると、メモリセルMC´に順方向バイアスがかかる。
比較例の場合、ビット線BL及びワード線WLは、上下に隣接するメモリセルマットMMで共有されている。所定のメモリセルマットMMのメモリセルMC´を1つ選択する場合、この選択メモリセルMC´をクロスポイントに持つ選択ビット線BL、選択ワード線WLをビット線ドライバ2´、ワード線ドライバ3´でドライブさせるが、この時にメモリセルアレイ1に生じる電流パスは次のようになる。
つまり、選択ビット線BL及び選択ワード線WLの交差部のメモリセルMC´が選択されると、ビット線BL及びワード線WLが上下に隣接するセルアレイマットMMで上下逆に使用されていることから、選択ビット線BLから選択ワード線WLに向かう電流パスは、選択メモリセルMC´を通る電流パスを除き、最低3つの非選択メモリセルMC´を通る(以下では、非選択メモリセルMC´を3つだけ通る最短の電流パスを「最短電流パス」と呼ぶこともある)。この場合、最短電流パスが2番目に通る非選択メモリセルMC´には逆方向バイアスがかかる。
例えば、図6に示すメモリセルアレイ1の場合、ビット線BL21及びワード線WL11の交差部にあるメモリセルMC´211を選択メモリセルとする場合について考える。
選択ビット線BL21を電位Us、選択ワード線WL11を電位Usよりも低い電位Wsに設定する。ここで、電圧Us−Wsは、メモリセルMC´のアクセス動作に必要な電圧である。この時、選択ビット線BL21から選択ワード線WL11に向けて、いくつかの電流パスができる。電流パスP0は、選択メモリセルMC´211を介して選択ビット線BL21から選択ワード線WL11に向かう電流パスである。この電流パスP0によって、選択メモリセルMC´211には、電圧Us−Ws程度の順方向バイアスがかかる。電流パスP1は、非選択メモリセルMC´221、MC´121及びMC´111を介して選択ビット線BL21から選択ワード線WL11に向かう最短電流パスである。この電流パスP1によって、メモリセルMC´121には、逆方向バイアスがかかる。そのため、メモリセルMC´221及びMC´111には、電圧Us−Wsよりも小さい電圧しか印加されない。また、電流パスP2は、メモリセルMC´321、MC´322及びMC´212を介して選択ビット線BL21から選択ワード線WL11に向かう最短電流パスである。この電流パスP2によって、メモリセルMC´322には、逆方向バイアスが加わる。そのため、メモリセルMC´321及びMC´212には、電圧Us−Wsよりも小さい電圧しか印加されない。つまり、全ての非選択メモリセルMC´には、選択メモリセルMC´に印加される電圧よりも小さい電圧しか印加されないことが保証される。
非選択メモリセルMC´に印加される電圧は、ビット線ドライバ2´及びワード線ドライバ3´から選択ビット線BL及び選択ワード線WL間に印加された電圧が複数の非選択メモリセルMC´によって分圧された電圧であり、セルアレイマットMMの場所毎に自己整合的に決まる。
従来のクロスポイント型のメモリセルアレイの場合、非選択メモリセルに対して一定のバイアスをかけることで、非選択メモリセルへの誤ったアクセス動作を回避していた。この場合、最短電流パスの中間点が固定電圧となる。そのため、メモリセルマット内で配置された場所によっては、非選択メモリセルにかなり大きなバイアスがかかる。その結果、自己整合的な状況が破壊され、非選択メモリセルには、強制的にセル電流が流されることになる。
その点、比較例の場合、非選択ビット線BL及び非選択ワード線WLをフローティング状態にする。これによって、選択ビット線BL及び選択ワード線WLに設定される電位のみ固定され、この状況において、メモリセルアレイ1は、非選択メモリセルMC´に流れる総セル電流が最低になるような電圧分布に自己整合的に落ち着く。その結果、アクセス動作時のメモリセルアレイ1の消費電流を従来の半導体記憶装置に比べて小さくすることができる。
以下では、このようなアクセス動作の方式を「フローティングアクセス方式」と呼ぶ。
次に、フローティングアクセス方式によるメモリセルMC´へのアクセス手順について説明する。ここでは、簡単な例として、3×3のメモリセルマットMMを積層させたメモリセルアレイ1を対象とし、メモリセルマットMM2のビット線BL21及びワード線WL11の交差部に設けられたメモリセルMC´211にアクセスする場合について説明する。
比較例に係る半導体記憶装置の動作には、前述のアクセス動作の他、メモリセルMC´のデータを維持する「ホールド動作」がある。
図7は、ホールド動作時のメモリセルアレイ1のバイアス状態を示す図である。
ホールド動作では、全てのビット線BL及びワード線WLを接地電位程度の電位Vsに設定する。その結果、いずれのメモリセルMC´にもバイアスは掛からず、メモリセルMC´の抵抗状態は維持される。
続いて、アクセス動作について説明する。アクセス動作には、前述の通り、書き込み動作と読み出し動作があり、更に書き込み動作には、セット動作及びリセット動作がある。比較例に係るアクセス動作は、アクティブ・スタンバイ・フェーズ及びアクセス・フェーズからなるアクセスシーケンスによって実現される。
図8は、アクセス動作のアクティブ・スタンバイ・フェーズ時のメモリセルアレイ1のバイアス状態を示す図である。
アクティブ・スタンバイ・フェーズでは、メモリセルアレイ1の全てのビット線BL及びワード線WLを所定の電位Vに設定する。この電位Vは、書き込み動作(セット動作及びリセット動作)及び読み出し動作で異なる値を取る。書き込み動作の場合、電位Vは、セット電位Vset、リセット電位Vreset、或いはそれらに近い電位Vdの半分程度にあたる電位(〜Vset/2、〜Vreset/2、或いは〜Vd/2)となる。一方、読み出し動作の場合、電位Vは、アクセス電位Vaccと同程度の電位となる。なお、アクセス電位Vaccは、読み出し動作時に選択ビット線BLに設定する電位であり、セット電位Vset及びリセット電位Vresetよりも小さく、メモリセルMCの状態が遷移しない程度の電位である。このアクティブ・スタンバイ状態でも、ホールド状態と同様、いずれのメモリセルMC´にもバイアスは掛からない。
図9は、読み出し動作のアクセス・フェーズ時のメモリセルアレイ1のバイアス状態を示す図である。
読み出し動作のアクセス・フェーズでは、選択ビット線BL21をクセス電位Vacc、選択ワード線WL11を電位Vsに設定する一方、非選択ビット線BL及び非選択ワード線WLをフローティング状態にする。図9では、フローティング状態のビット線BL及びワード線WLの電位をV〜で表わしている。なお、アクセス電位Vaccは、セット電位Vsetやリセット電位Vresetよりも小さく、メモリセルMCの状態が遷移しない程度のレベルである。
アクティブ・スタンバイ・フェーズにおいて全てのビット線BL及びワード線WLは、予め電位V=Vaccに設定されている。そのため、選択ビット線BL21からフローティング状態の非選択ビット線BL及び非選択ワード線WLに対して充電されることはない。その結果、選択ビット線BL21には、選択メモリセルMC´211のデータに応じたセル電流が素早く現れる。この選択ビット線BL21に流れるセル電流をセンスアンプSAで検知することで選択メモリセルMC´211の状態(セット状態又はリセット状態)を判定することができる。メモリセルMC´のセット状態、リセット状態は、それぞれ‘0’、‘1’に対応しているため、メモリセルMC´の状態を判定すれば選択メモリセルMC´211の記憶データを読み出すことができる。
フローティング状態(電位V〜)のビット線BL及びワード線WLの電位は、メモリセルアレイ1におけるメモリセルMCの配置場所に応じて自己整合的に所定の値に落ち着くが、その過程において、非選択メモリセルMCにも電流が流れる。この非選択メモリセルMCに流れる電流は、大別して間接順方向電流、間接逆方向電流に分類することができる。最短電流パスを流れる電流が途中の非選択メモリセルを順方向に通過する場合、この非選択メモリセルを「間接順方向電流が流れるメモリセル」と言い、最短電流パスを流れる電流が途中の非選択メモリセルを逆方向に通過する場合、この非選択メモリセルを「間接逆方向電流が流れるメモリセル」と言う。図9では、選択メモリセルMCの流れるセル電流を白抜き矢印、間接順方向電流が流れる非選択メモリセルMCを実線矢印、間接逆方向電流が流れる非選択メモリセルMCを点線矢印でそれぞれ示している。白抜き矢印、実線矢印及び点線矢印は、いずれも電流が流れる向きも示している。
例えば、非選択メモリセルMC´201、MC´202及びMC´212を介して選択ビット線BL21から選択ワード線WL11に向かう最短電流パスP0について見ると、非選択メモリセルMC´201及びMC´212に間接順方向電流が流れ、非選択メモリセルMC´202に間接逆方向電流が流れることになる。
つまり、選択ビット線BL21又は選択ワード線WL11に接続された非選択メモリセルMC´に間接順方向電流が流れ、これら間接順方向電流が流れるメモリセルMC´と同じ非選択ビット線BL又は非選択ワード線WLに接続された非選択メモリセルMC´に間接逆方向電流が流れることが分かる。また、間接順方向電流又は間接逆方向電流が流れる非選択メモリセルMC´は、選択メモリセルMC´211が属するメモリセルマットMM2並びに、このメモリセルマットMM2の上下に隣接するメモリセルマットMM1及びMM3の範囲にのみ存在し、メモリセルマットMM2に隣接しないメモリセルマットMM0には存在しないことが分かる。
図10は、セット動作のアクセス・フェーズ時のメモリセルアレイ1のバイアス状態を示す図である。
セット動作のアクセス・フェーズでは、選択ビット線BL21をセット電位Vset、選択ワード線WL11を電位Vsに設定する一方、非選択ビット線BL及び非選択ワード線WLはフローティング状態とする。
アクティブ・スタンバイ・フェーズにおいて全てのビット線BL及びワード線WLは、予め電位V=〜Vset/2に設定されている。そのため、放電電流が選択ワード線WL11に集中せず、充電電流として選択ビット線BL21にも供給される。また、ビット線ドライバ2´から遠く、ワード線ドライバ3´に近い場所の非選択メモリセルMC´に対して、過渡的にでもセット電圧Vsetに近い電圧が印加されるのを防ぐことができる。
フローティング状態(電位V〜)のビット線BL及びワード線WLは、メモリセルアレイ1におけるメモリセルMC´の位置によって自己整合的に所定の電圧に落ち着くが、その過程において、非選択メモリセルMC´にも電流が流れる点については、読み出し動作のアクセス・フェーズと同じである。但し、電位Vの値が異なるため、メモリセルアレイ1のバイアス状態と電流の過渡的な変化は異なる。
図11は、リセット動作のアクセス・フェーズ時のメモリセルアレイ1のバイアス状態を示す図である。
リセット動作のアクセス・フェーズでは、選択ビット線BL21を電位Vs、選択ワード線WL11をリセット電位Vresetに設定する。これは、セット動作時と逆のバイアス状態である。一方、非選択ビット線BL及び非選択ワード線WLはフローティング状態とする。
アクティブ・スタンバイ・フェーズにおいて全てのビット線BL及びワード線WLは、予め電位V=〜Vreset/2に設定されている。そのため、放電電流が選択ビット線BL21に集中せず、充電電流として選択ワード線WL11にも供給される。また、ワード線ドライバ3´から遠く、ビット線ドライバ2´に近い場所の非選択メモリセルMC´に対して、過渡的にでもリセット電圧Vresetに近い電圧が印加されるのを防ぐことができる。
フローティング状態(電位V〜)のビット線BL及びワード線WLは、メモリセルアレイ1におけるメモリセルMC´の位置によって自己整合的に所定の電圧に落ち着くが、その過程において、非選択メモリセルMCにも電流が流れる点については、読み出し動作及びセット動作のアクセス状態と同じである。但し、選択メモリセルMC´211を逆方向バイアスの状態にするため、間接順方向電流が流れる非選択メモリセルMC´と間接逆方電流が流れる非選択メモリセルMC´が、読み出し動作やセット動作時のアクセス・フェーズと全く逆になる。
次に、メモリセルアレイ1にバタフライ化したメモリセルMCが存在した場合のアクセス動作時の影響を説明する。ここでは、バタフライ化の影響が大きい読み出し動作と、セット動作について説明する。
図12は、比較例に係る半導体記憶装置のフローティングアクセス方式による読み出し動作におけるバタフライ化したメモリセルの影響を説明する図であり、図13は、比較例に係る半導体記憶装置のフローティングアクセス方式によるセット動作におけるバタフライ化したメモリセルの影響を説明する図である。図12及び図13は、メモリセルMC´120がバタフライ化した場合のアクセス・フェーズ時のメモリセルアレイのバイアス状態を示している。
バタフライ化したメモリセルMC´120は、逆方向バイアスが掛かってもセット状態と同様の電流を流してしまう(図12及び図13の電流パスP0)。
読み出し動作の場合、アクセス動作のアクティブ・スタンバイ・フェーズ時に、全てのビット線BL及びワード線WLをアクセス電位Vaccに設定する。そして、続くアクセス・フェーズ時に非選択ビット線BL及び非選択ワード線WLをフローティング状態(電位V〜)にすると共に、選択ビット線BL21をアクセス電位Vacc、選択ワード線WL11を接地電位Vssに設定する。
このとき、選択ビット線BL21から選択ワード線WL11に向かう最短経路パスP0のうち、唯一の逆方向バイアスが掛かる非選択メモリセルMC´120はセット状態であり、実質、順方向バイアスが掛かっているものと同じである。つまり、最短経路パスP0は、低抵抗の電流パスとなる。その結果、選択ビット線BL21と選択ワード線WL11間に所望の電圧が印加されず、正常な読み出し動作ができなくなる。
このように、選択メモリセルMC´のあるメモリマットMMの上下に隣接するメモリマットMMは、最短経路パスが形成される領域となるため、これら領域にバタフライ化したメモリセルMC´が存在すると、所望の読み出し動作ができなくなる。これは、図13に示すセット動作時においても同様である。
換言すれば、バタフライ化したメモリセルMC´が存在するメモリマットMMの上下に隣接するメモリマットMMに属するメモリセルMMのアクセス動作に影響を及ぼすことを意味する。そのため、3次元のメモリセルアレイの有効領域を大きく制限することになる。
[実施形態に係るメモリセル]
そこで、実施形態では、バタフライ化するメモリセルMCが一定の割合で生じることを前提として、この影響をできる限り小さくする方法について説明する。実施形態では、比較例に係るメモリセルMC´に替えて、セルユニットCUを2つ積層させた構造を持つ新たなメモリセルMCを用いる。そして、この新たなメモリセルMCに3値のバイナリデータをコード化した情報を記憶させる。
図14中(A)は、実施形態に係るメモリセルMCの構造を示す図であり、図14中(B)は、当該メモリセルMCの記号を示す図である。
実施形態の場合、セルユニットCUを2個積層させることで、メモリセルMC´よりも全体としてバタフライ化する確率を下げることができる。即ち、メモリセルMC´のバタフライ化確率をbとすれば、実施形態のメモリセルMCのバタフライ化率をbにまで低減させることができる。
また、メモリセルMCにコード化されたデータを記憶させることで、エラー訂正が容易なシステムを構築できる。そのため、メモリセルMCのセルユニットCUにバタフライ化が生じても致命的な不良とはならずにメモリセルアレイ1を有効に利用できるようになる。
実施形態に係るメモリセルMCは、2個のセルユニットCU1(第1セルユニット)、CU2(第2セルユニット)を積層させることで、容易に3値の記憶が容易となる。即ち、2つのセルユニットCU1、CU2が共にセット状態の場合を‘0’状態(第1状態)、一方がセット状態、他方がリセット状態の場合を‘1’状態(第2状態)、共にリセット状態の場合を‘2’状態(第3状態)とする3つの抵抗状態を作ることができる。なお、これら状態のうち‘1’状態と‘2’状態は、メモリセルMCの抵抗の絶対値が非常に高いために電流センスなどによる区別が困難である。そのため、実施形態の場合、メモリセルMCからのデータの読み出しには、後述するような破壊読み出しを用いることになる。
メモリセルMCが‘2’状態の場合、メモリセルMCのセルユニットCU1及びCU2間の中間ノードNmは、高抵抗の接続点となるため、ビット線BLの電位Uやワード線WLの電位Wが直接反映されなくなる。そのため、中間ノードNmの電位Vmは、図14中(A)に示したような浮遊容量によるカップリング分割で決まり、微少な電流による長時間放置によって変化することになる。実施形態では、この特性を、後述のように、メモリセルMCのアクセスに利用する。
また、実施形態に係るメモリセルMCは3つの状態を記憶できるため、メモリセルMCをペアで用いることで合計9つの状態を記憶することができる。そして、このことを利用することで、p進数(pは、素数7)の剰余体Zpを用いたリー・メトリック・コード(Lee metric code)をメモリセルMCに記憶させることができる。以下において、ペアで用いるメモリセルMCを、「ペアセル」と呼ぶこともある。
図15は、Zpの要素とペアセルPCの状態の対応付けを示す図である。ペアセルPCは、図15中(A)に示すように、メモリセルMC0(第1メモリセル)及びメモリセルMC1(第2メモリセル)によって構成されている。
図15中(B)に示すように、Zpの要素とペアセルPCの状態を対応付けすることで、メモリセルMC0或いはMC1の‘1’状態及び‘2’状態間の変化は、Zpにおいて±1の変化であり、リー・メトリック・コードにおいて1の変化に収まる。この場合、エラー訂正のシステムが簡単に構築できる。
したがって、Zpの要素とペアセルPCの状態を対応付ける際には、セルユニットCUがバタフライ化しても、エラーの範囲が‘1’状態及び‘2’状態間の変化だけに限定されるようにアクセスすることが重要である。
図15中(B)は、Zpの要素とペアセルPCの状態の対応付けとして最も単純な例となる。しかし、図15中(B)に示した例に限らず、Zpの要素が、2つのメモリセルMCの‘1’状態と‘2’状態の組み合わせのいかなる場合でも、リー・メトリック・コードにおいて1の変化に収まるような対応付けであれば良い。
図16は、Zpの要素とペアセルMCの状態の対応付けの他の例を説明する図である。図16中(A)の各列のドットで示す行、右斜め線で示す行、左斜め線で示す行は、それぞれ図16中(B)のドットで示すマス、右斜め線で示すマス、左斜め線で示すマスに対応している。
Zpの要素は、その変化が巡回的であるため、図16中(A)のa列〜g列に示すように7通りの対応付けが可能である。図16中(B)に示す例は、図16中(A)のa列の対応付けを示したものであるが、他の列についても、図16中(A)のドットで示したZpの要素同士は互いにZpの隣接要素となっている。そのため、これらZpの要素をペアセルPCの‘1’状態と‘2’状態の任意の組み合わせに対応させることで、Zpの要素の変化を±1に収めることができる。
[実施形態に係るアクセス動作]
<アクセス動作の概要>
ここでは、前述の多値記憶のメモリセルMCを用いた実施形態に係る半導体記憶装置におけるフローティングアクセス方式によるアクセス動作について説明する。
ここで扱うメモリセルアレイ1は、複数のメモリセルマットMMを積層させた構造を持つ。また、積層方向に隣接する2つのメモリセルマットMMは、ビット線BL或いはワード線WLを共有しているものとする。したがって、1つのメモリセルグループMGは、図17のようになる。
先ず、実施形態の説明で用いる用語、記号などを説明しておく。
アクセス対象となるメモリセルを「選択メモリセル」、その他のメモリセルを「非選択メモリセル」と呼ぶ。選択メモリセルに接続されたビット線を「選択ビット線」、その他のビット線を「非選択ビット線」、選択メモリセルに接続されたワード線を「非選択ワード線」、その他のワード線を「非選択ワード線」と呼ぶ。ビット線の電位をU、選択ビット線の電位をUs、非選択ビット線の電位をUu、ワード線の電位をW、選択ワード線の電位をWs、非選択ワード線の電位をWuで表わす。最終的に‘n’状態(n=0、1、2)に設定されるべきメモリセル或いは、本来的に‘n’状態であるべきメモリセルをMC(‘n’)と表わす。メモリセルMC(‘n’)に接続されたビット線をBL(‘n’)で表わし、その電位をU(‘n’)、Us(‘n’)或いはUu(‘n’)で表わす。メモリセルの中間ノード電位をVmで表わす。セット電圧Vsetとリセット電圧Vresetのいずれか大きい方、つまりmax(Vset,Vreset)をVmaxで表わし、小さい方、つまり、min(Vset,Vreset)をVminで表わす。セルユニットの状態を遷移させない電圧マージンをΔで表わす。例えば、リセット状態のセルユニットに掛かる順方向バイアスがVset−Δ以下の場合、セルユニットはセット状態に遷移しないことになる。電位vのビット線或いはワード線をフローティング状態にした後のビット線或いはワード線の電位をv〜で表わす。例えば、電位U=Vmax+3Δのビット線をフローティング状態にした後のビット線の電位はU〜或いは(Vmax+3Δ)〜で表わす。
ここで説明するアクセス動作は、メモリセルMCに順方向バイアスが掛からない限り、ビット線BL或いはワード線WLをフローティング状態にしてもメモリセルMCには無視できる程度の逆リーク電流しか流れない事を前提としている。これは、実施形態のメモリセルMCがセルユニットCUを2つ積層させた構造を持つためである。この前提によって、ビット線BL及びワード線WLの電位U及びWを固定する設定をフローティングと併用することができる。そのため、比較例のアクセス動作に比べて電位設定を簡素化することができる。なお、メモリセルMCに流れる逆リーク電流が無視できない場合には、隣接するビット線BL間或いはワード線WL間の容量性カップリングに対する動作マージンを考慮したフローティング状態の設定をすれば良い。
実施形態のアクセス動作は、書き込み動作、読み出し動作の2つに大別することができる。
書き込み動作は、メモリセルMCの状態を初期化(データを消去)する「初期状態設定」、選択メモリセルMCを‘2’状態に設定する「‘2’状態設定」(第3状態設定)、メモリセルMCを‘1’状態に設定する「‘1’状態設定」(第2状態設定)及びメモリセルMCを‘0’状態に設定する「‘0’状態設定」(第1状態設定)の組み合わせからなる書き込みシーケンスによって実現される。なお、初期状態設定によってメモリセルMCを‘1’状態或いは‘0’状態に遷移させるため、書き込みシーケンスには、‘1’状態設定或いは‘0’状態設定が含まれないこともある。
読み出し動作は、メモリセルMCが‘0’状態かを判定する「‘0’状態判定」(第1状態判定)、メモリセルMCが‘1’状態かを判定する「‘1’状態判定」(第2状態判定)及びメモリセルMC(‘1’)を‘1’状態に再設定する「‘1’状態再設定」(第2状態再設定)からなる読み出しシーケンスによって実現される。
初期状態設定、‘2’状態設定、‘1’状態設定、‘0’状態設定、‘0’状態判定、‘1’状態判定、‘1’状態再設定は、おおよそ「イニシャル・スタンバイ・フェーズ」、「アクティブ・スタンバイ・フェーズ」及び「アクセス・フェーズ」の3つのフェーズからなる。
<ホールド動作>
ここでは、アクセス動作を説明する前提として、アクセス動作に入る前のホールド動作について説明する。ホールド動作は、メモリセルMCのセルユニットCUの状態を保持させる動作である。
図18は、ホールド動作時のメモリセルアレイ1のバイアス状態を示す図である。
ホールド動作では、全てのビット線BL及びワード線WLの電位をU=W=Vssに設定する。これによって、全てのメモリセルMCにはバイアスが掛からない。また、メモリセルMC(‘2’)も含めた全てのメモリセルMCの中間ノード電位Vmは、ほぼ接地電位Vssに放電されている。
<初期状態設定>
図19は、アクセス動作のイニシャル・スタンバイ・フェーズ時のメモリセルアレイ1のバイアス状態を示す図である、図20は、アクセス動作のアクティブ・スタンバイ・フェーズ時のメモリセルアレイ1のバイアス状態を示す図である。図21〜図24は、アクセス動作のアクセス・フェーズ時のメモリセルアレイ1のバイアス状態を示す図である。なお、図20〜図24は、ビット線BL21及びワード線WL11に接続されたメモリセルMC211を選択メモリセルとするバイアス状態である。
イニシャル・スタンバイ・フェーズは、メモリセルMCの中間ノード電位Vmを設定する過程である。アクティブ・スタンバイ・フェーズは、ビット線BL或いはワード線WLをフローティング状態にする際の電位設定をする過程である。
ここでは、初期状態設定における各フェーズについて説明する。
‘2’状態のメモリセルMCの中間ノード電位Vmは、自在に制御することが困難である。また、‘2’状態の選択メモリセルMCを他の状態へ遷移させるようなメモリセルアレイ1のバイアス状態を作ると、選択ビット線BL或いは選択ワード線WLに接続された非選択メモリセルMCの状態を破壊しかねず、データの保証ができなくなる。
そこで、メモリセルMCを新たな状態に遷移させる際には、一旦、メモリセルMCを‘0’状態或いは‘1’状態に遷移させた上で、最後に‘2’状態へ遷移させる方法を特に検討する。初期状態設定は、全てのメモリセルMCを‘0’状態或いは‘1’状態に遷移させる過程である。したがって、初期状態設定後は、メモリセルアレイ1に‘2’状態のメモリセルMCは存在しない。
なお、初期状態設定後のメモリセルアレイ1内のメモリセルMCの状態は統一されていることが望ましい。そこで、以下の手順により、全てのメモリセルMCを‘0’状態或いは‘1’状態のいずれかに統一する。
イニシャル・スタンバイ・フェーズ前は、図18に示すように、ホールド動作によって、全てのビット線BL及びワード線WLの電位はU=W=Vssに設定されており、全てのメモリセルMCの中間ノード電位Vmは接地電位Vss近くまで放電されている。
始めに、イニシャル・スタンバイ・フェーズでは、図19に示すように、全てのビット線BL及びワード線WLの電位をU=W=Vmax+3Δに設定する。この電位設定によって、‘2’状態のメモリセルMCのセルユニットCU1にはセット電圧Vset以上の順方向バイアスが掛かり、セルユニットCU2にはリセット電圧Vreset以上の逆方向バイアスが掛かる。その結果、‘2’状態のメモリセルMCは、‘1’状態に遷移する。なお、‘0’状態及び‘1’状態のメモリセルMCは、中間ノード電位Vmがビット線BLの電位U或いはワード線WLの電位Wに連動して推移するため、状態は遷移しない。
続いて、アクティブ・スタンバイ・フェーズでは、図20に示すように、電位U=Vmax+3Δで設定されている全てのビット線BLをフローティング状態にすると共に、W=Vmax+3Δで設定されている全てのワード線WLの電位をWs=Wu=Vssに設定し、この状態を暫くの間保持する。これによって、‘0’状態のメモリセルMCのセルユニットCU2はセット状態であるため、‘0’状態のメモリセルMCの中間ノード電位Vmは、接地電位Vssまで低下する。また、0’状態のメモリセルMCのセルユニットCU1もセット状態であるため、ビット線BLの電位Uも接地電位Vssに向けて放電していく。しかし、‘0’状態のメモリセルMCのセルユニットCU1及びCU2の抵抗状態はバイアスが低いほど高くなる非線形な特性を有するため、ビット線BLの電位Uは、接地電位Vssまで放電せず、接地電位Vssよりも電圧マージンΔほど高い電位でほぼ飽和する。つまり、全てのビット線BLの電位は、U=Vs(Vs≧Vss+Δ)となる。
以上の手順によって、全てのメモリセルMCは‘0’状態に遷移する。メモリセルMCの初期状態を‘0’状態とする場合、ここまでの手順で初期状態設定が完了となる。一方、メモリセルMCの初期状態を‘1’状態とする場合、以下の手順を続ける。
全てのメモリセルMCを‘0’状態に遷移させた後、全てのワード線WLの電位を再びWs=Wu=Vmax+3Δに設定する。これによって、‘0’状態のメモリセルMCのセルユニットCU2には、リセット電圧Vreset以上の逆方向バイアスが掛かるため、セルユニットCU2はリセット状態に遷移する。その結果、全てのメモリセルMCが‘1’状態に遷移する。
<‘2’状態設定>
‘2’状態設定は、非選択メモリセルMCの状態に影響を与えず、‘1’状態の選択メモリセルMCを‘2’状態に遷移させる過程である。したがって、初期状態設定によってメモリセルMCが‘0’状態に設定された場合、後述の‘1’状態設定後に行う必要がある点に留意されたい。つまり、‘2’状態設定は、セルユニットCU1、CU2がそれぞれセット状態、リセット状態のメモリセルMCを対象とする過程となる。
始めのイニシャル・スタンバイ・フェーズでは、セルユニットCU1に逆方向バイアスが掛かっても状態遷移しないような電位設定をメモリセルMCの中間ノードNmに対して行う。つまり、イニシャル・スタンバイステップでは、図19に示すように、全てのビット線BL及びワード線WLの電位をU=W=Vmin−Δに設定する。これによって、選択メモリセルMCについては、セット状態のセルユニットCU1に順方向バイアスが掛かるため、セルユニットCU1の状態は遷移しない。既に‘2’状態に設定されたメモリセルMC(‘2’)については、リセット状態のセルユニットCU1に順方向バイアスが掛かるが、この順方向バイアスはVset−Δ以下の大きさしかないため、セルユニットCU1の状態は遷移しない。また、選択ビット線BLに接続された非選択メモリセルMC(‘0’)或いはMC(‘1’)については、セルユニットCU2がバタフライ化している場合であっても、セルユニットCU1にVreset−Δ以下の逆方向バイアスしか掛からないため、セルユニットCU1の状態は遷移しない。
なお、このイニシャル・スタンバイ・フェーズにおける電位設定は、ある程度の時間維持させる必要がある。これは、続くアクティブ・スタンバイ・フェーズにおいて、既に‘2’状態に設定された非選択メモリセルMC(‘2’)のセルユニットCU1が、セット状態に遷移してしまうことを防止するためである。アクティブ・スタンバイ・フェーズでは、非選択ビット線BLの電位をUu=Vreset−Δに設定するが、イニシャル・スタンバイ・フェーズにおける電位設定をある程度の時間維持させることで、非選択メモリセルMC(‘2’)の中間ノード電位Vmが上昇するため、セット電圧Vsetに対する電圧マージンを確保することができる。
続いて、アクティブ・スタンバイ・フェーズでは、図20に示すように、選択ビット線BLの電位をUs=Vmin−Δに設定する。これは、続くアクセス・フェーズにおいて、選択ビット線BLに接続された非選択メモリセルMC(‘0’)或いはMC(‘1’)のセルユニットCU1をリセット状態に遷移させないためである。また、非選択ビット線BL及び全てのワード線WLの電位をUu=Ws=Wu=Vreset−Δに設定する。これは、続くアクセス・フェーズにおいて、選択ワード線WLに接続された非選択メモリセルMC(‘0’)のセルユニットCU2をリセット状態に遷移させないためである。
続いて、アクセス・フェーズでは、図21に示すように、選択ビット線BLの電位をUs=Vss、選択ワード線WLの電位をWs=2Vreset−2Δ、非選択ビット線BL及び非選択ワード線WLの電位をUu=Wu=Vreset−Δに設定する。この電位設定をある程度維持することで、‘1’状態の選択メモリセルMCの中間ノード電位Vmは、セルユニットCU2に流れる逆リーク電流によってVmin−Δからリセット電圧Vresetへと上昇する。その結果、選択メモリセルMCのセルユニットCU1は、リセット状態に遷移する。一方、非選択メモリセルMCのセルユニットCU1及びCU2には、状態が遷移しない程度のバイアスしか掛からない。なお、この電位設定をある程度維持させないと、選択メモリセルMCが‘2’状態に遷移せず、‘1’状態のままとなる場合がある点に留意されたい。また、このアクセス・フェーズ終了後は、選択ワード線WLの電位Wsをいきなり接地電位Vssに設定せず、アクセス・フェーズの時間と同程度の時間だけWs=Vreset−Δに戻してメモリセルMCの中間ノード電位Vmを放電させる必要がある。これは、選択メモリセルMC(‘2’)のセルユニットCU2が、セット状態に遷移するのを防ぐためである。
<‘1’状態設定>
‘1’状態設定では、非選択メモリセルMCの状態には影響を与えず、‘0’状態の選択メモリセルMCを‘1’状態に遷移させる。
始めに、イニシャル・スタンバイ・フェーズでは、図19に示すように、全てのビット線BL及びワード線WLの電位をU=W=Vssに設定する。これは、メモリセルMCのセルユニットCU1に逆方向バイアスが掛かり、セルユニットCU1の状態が遷移しないように、メモリセルMCの中間ノード電位をVm=Vssに設定するためである。
続いて、アクティブ・スタンバイステップでは、図20に示すように、選択ビット線BLの電位をUs=Vss、非選択ビット線BL及び全てのワード線WLの電位をUu=Ws=Wu=Vmin−Δに設定する。非選択ビット線BL及び非選択ワード線WLの電位をUu=Wu=Vmin−Δに設定するのは、既に状態の設定が完了したメモリセルMC或いはバタフライ化したセルユニットCUを持つメモリセルMCの状態が遷移するのを防止するためである。なお、そのためには、非選択ビット線BLの電位をUu=Vset−Δ、非選択ワード線WLの電位をWu=Vreset−Δにすれば良いとも考えられるが、電位Uuを電位Wu以下にしないと、メモリセルMCに順方向バイアイスが掛かり、メモリセルMCに大電流が流れる恐れがある。そのため、非選択ビット線BL及びワード腺WLの電位をUu=Ws=Wu=Vmin−Δに設定する必要がある。
続いて、アクセス・フェーズでは、図22に示すように、選択ワード線WLの電位をWs=Vreset+Δに設定する。全てのビット線BL及び非選択ワード線WLの電位は、アクティブ・スタンバイ・フェーズにおける電位設定を維持させる。これによって、選択メモリセルMCのセルユニットCU2にはリセット電圧Vreset以上の逆方向バイアスが掛かる一方、セルユニットCU1にはリセット電圧Vreset以下の逆方向バイアスしか掛からないため、選択メモリセルMCは、‘1’状態に遷移する。なお、非選択メモリセルMCは、セルユニットCU1及びCU2に状態が遷移しない程度のバイアスしか掛からないため、状態は遷移しない。
<‘0’状態設定>
‘0’状態設定では、非選択メモリセルMCの状態に影響を与えず、‘1’状態の選択メモリセルMCを‘0’状態に遷移させる。
ここでは、選択メモリセルMCに順方向バイアスを掛けるため、非選択ビット線BL及び非選択ワード線WLをフローティング状態にする。これによって、隣接ビット線BL間、隣接ワード線WL間の容量性カップリングが100%であったとしても、非選択メモリセルMCの状態は破壊されない。
始めに、イニシャル・スタンバイ・フェーズでは、図19に示すように、ビット線BL及びワード線WLの電位をU=W=Vmin−Δに設定する。この電位設定をある程度維持することで、既に‘2’状態に設定された非選択メモリセルMC(‘2’)の中間ノード電位Vmが上昇するため、セルユニットCU1及びCU2の状態が遷移することを防止できる。
続いて、アクティブ・スタンバイ・フェーズでは、図20に示すように、選択ビット線BLの電位を、イニシャル・スタンバイ・フェーズに引き続き、Us=Vmin−Δに設定する。非選択ビット線BLの電位をU=Vmin−Δに設定する。これは、隣接ビット線BLとの容量性カップリングに対する電圧マージンを確保するためである。選択ワード線WLの電位を、イニシャル・スタンバイ・フェーズに引き続き、Ws=Vmin−Δに設定する。非選択ワード線WLの電位をWu=Vminに設定する。これは、隣接ワード線WLとの容量性カップリングに対する電圧マージンを確保するためである。これら電位設定をある程度維持させることで、メモリセルMC(‘2’)の中間ノード電位Vmを上昇させるめの時間を稼ぐことができる。
続いて、アクセス・フェーズでは、図23に示すように、選択ビット線BLの電位をWs=Vset、選択ワード線WLの電位をWu=Vssに設定し、非選択ビット線BL及び非選択ワード線WLをフローティング状態にする。この設定によって、選択メモリセルMCのセルユニットCU2には、セット電圧Vset以上の順方向バイアスが掛かるため、セルユニットCU2をセット状態に遷移する。また、選択ビット線BLの電位変化によって、隣接ビット線BLの電位は、最大でΔだけ変化してUu=Vmin−Δとなる。選択ワード線WLの電位変化によって、隣接ワード線WLの電位は、最大でVmin−Δだけ変化してWu≧Δとなる。そのため、非選択メモリセルMCには、最大でもVmin−Δのバイアスしか掛からないため、非選択メモリセルMCのセルユニットCU1及びCU2の状態は遷移しない。
なお、‘0’状態に設定された選択メモリセルMC(‘0’)に流れるセル電流の増加を抑制するために選択ビット線BLをビット線ドライバ2´から遮断する場合、選択ビット線BLの電位Usは、選択ワード線WLの電位Wsに引かれて接地電位Vssに向けて低下するが、‘0’状態のメモリセルMCのセルユニットCU1及びCU2の抵抗状態は、バイアスが低いほど高くなる非線形な特性を有するため、接地電位Vssよりも電圧マージンΔほど高い電位でほぼ飽和する。そのため、選択ビット線BLに接続されたセット状態のセルユニットCU1を持つ非選択メモリセルMCの中間ノード電位がVm=Vsetの場合であっても、セルユニットCU1にはVset−Δ程度の逆方向バイアスしか掛からない。その結果、このセルユニットCU1は、VsetとVresetが同程度である場合、状態は遷移しない。
<‘0’状態判定>
‘0’状態判定では、選択メモリセルMCが低抵抗か高抵抗かを判別する。即ち、‘0’状態か、或いは‘1’状態又は‘2’状態かを判別する。なお、‘1’状態と‘2’状態との判別は後述の‘1’状態判定で行う。
始めに、イニシャル・スタンバイ・フェーズでは、図19に示すように、全てのビット線BL及びワード線WLの電位をメモリセルMCの状態に影響を与えない程度の電位であるU=W=Vaccに設定する。
続いて、アクティブ・スタンバイ・フェーズでは、図20に示すように、イニシャル・スタンバイ・フェーズにおける電位設定を維持させる。つまり、‘0’状態判定においては、イニシャル・スタンバイ・フェーズとアクティブ・スタンバイ・フェーズの区別はない。
続いて、アクセス・フェーズでは、図24に示すように、選択ビット線BLの電位をUs=Vacc、選択ワード線WLの電位をWs=Vssに設定し、非選択ビット線BL及び非選択ワード線WLをフローティング状態にする。この設定によって選択ビット線BLに流れる電流から、選択メモリセルMCの‘0’状態と‘1’状態又は‘2’状態とを判別することができる。
<初期状態設定時の正常なメモリセルの状態遷移>
ここでは、実施形態のアクセス動作の過程において、バタフライ化したセルユニットCUの影響がどのように現れるかについて説明する。
実施形態のアクセス動作を用いた場合のメモリセルMCの状態遷移を、異なる4つの状態のメモリセルMCについて説明する。ここで、4つの状態とは、セルユニットCU1、セルユニットCU2の状態の組み合わせを(セルユニットCU1の状態、セルユニットCU2の状態)で表わし、セット状態を「S」、リセット状態を「R」で表わすと、(S,S)、(S,R)、(R,S)、(R,R)のことを言う。
図25は、初期状態設定時の正常なメモリセルMCの状態遷移を示す図である。図25中の白抜き矢印はイニシャル・スタンバイ・フェーズにおける遷移、墨付き矢印はアクティブ・スタンバイ・フェーズにおける遷移を示す。
イニシャル・スタンバイ・フェーズでは、ビット線BL及びワード線WLの電位は、U=W=Vmax+3Δで設定される。そのため、(S,S)、(S,R)及び(R,R)のメモリセルMCについては、セルユニットCU1に順方向バイアスが掛かるため、セルユニットCU1は、セット状態に遷移する。その結果、‘2’状態のメモリセルMCがなくなる。一方、(R,S)のメモリセルMCについては、セルユニットCU1が先にセット状態に遷移するか(図中p1)、セルユニットCU2が先にリセット状態に遷移するか(図中p2)で状態遷移の過程が異なってくる。遷移過程p1の場合、イニシャル・スタンバイ・フェーズでは、(R,S)のメモリセルMCは(S,S)に遷移する。一方、遷移過程p2の場合、セルユニットCU2がリセット状態に遷移した後、中間ノード電位Vmが接地電位VssのままであるためセルユニットCU1もセット状態に遷移する。その結果、(R,S)のメモリセルMCは、(S,R)に遷移する。いずれの遷移経路p1及びp2であっても、メモリセルMCのセルユニットCU1は、セット状態に遷移する。
アクティブ・スタンバイ・フェーズでは、全てのビット線BLがフローティング状態にされ、全てのワード線WLの電位は、Ws=Wu=Vssに設定される。この時点で、リセット状態のセルユニットCU2にはセット電圧Vset以上の順方向バイアスが掛かるため、セルユニットCU2はセット状態に遷移する。また、フローティング状態のビット線BLの電位もU〜=Vsになる。ここまでの過程で、全てのメモリセルMCが‘0’状態に遷移する。
全てのメモリセルMCを‘1’状態に遷移させる場合、更に、全てのワード線WLの電位は、再びWs=Wu=Vmax+3Δに設定される。そのため、メモリセルMCの中間ノード電位がVm=Vssになり、セルユニットCU2にはリセット電圧Vreset以上の逆方向バイアスが掛かる。その結果、セルユニットCU2がリセット状態に遷移し、全てのメモリセルMCが(S,R)に遷移する。
<初期状態設定時のバタフライ化したセルユニットCU1を持つメモリセルの状態遷移>
ここでは、初期状態設定時のバタフライ化したセルユニットCUを持つメモリセルMCの状態遷移について説明する。なお、以下では、セルユニットCU1及びCU2の一方がバタフライ化したメモリセルMCについてのみ説明する。これは、セルユニットCU1及びCU2が共にバタフライ化してしまう可能性は低い上、このようなメモリセルMCはECC等の対象外となるためである。
図26は、初期状態設定時のバタフライ化したセルユニットCU1を持つメモリセルMCの状態遷移を示す図である。図26中の白抜き矢印はイニシャル・スタンバイ・フェーズにおける遷移、墨付き矢印はアクティブ・スタンバイ・フェーズにおける遷移を示す。また、墨付きで示したセルユニットCUは、バタフライ化したセルユニットを表わしている。なお、リバース特性が低抵抗になるバタフライ化は、セット状態のセルユニットCU、リセット状態のセルユニットCUの双方であり得るため、ここでも、(S,S)、(S,R)、(R,S)及び(R,R)の全ての状態のメモリセルMCの状態遷移について説明する。
イニシャル・スタンバイ・フェーズでは、ビット線BL及びワード線WLの電位は、U=W=Vmax+3Δで設定される。そのため、(S,S)、(S,R)及び(R,R)のメモリセルMCについては、セルユニットCU1に順方向バイアスが掛かるため、セルユニットCU1は、セット状態に遷移する。その結果、‘2’状態のメモリセルMCがなくなる。一方、(R,S)のメモリセルMCについては、セルユニットCU1が先にセット状態に遷移するか(図中p1)、セルユニットCU2が先にリセット状態に遷移するか(図中p2)で状態遷移の過程が異なってくる。遷移過程p1の場合、イニシャル・スタンバイ・フェーズでは、(R,S)のメモリセルMCは(S,S)に遷移する。一方、遷移過程p2の場合、セルユニットCU2がリセット状態に遷移した後、中間ノード電位Vmが接地電位VssのままであるためセルユニットCU1もセット状態に遷移する。その結果、(R、S)のメモリセルMCは、(S,R)に遷移する。いずれの遷移経路p1及びp2であっても、メモリセルMCのセルユニットCU1は、セット状態となる。
アクティブ・スタンバイ・フェーズでは、全てのビット線BLがフローティング状態にされ、全てのワード線WLの電位は、Ws=Wu=Vssに設定される。この時点で、リセット状態のセルユニットCU2にはセット電圧Vset以上の順方向バイアスが掛かるため、セルユニットCU2はセット状態に遷移する。また、フローティング状態のビット線BLの電位もU〜=Vsになる。ここまでの過程で、全てのメモリセルMCが‘0’状態に遷移する。
全てのメモリセルMCを‘1’状態に遷移させる場合、更に、全てのワード線WLの電位が、再びWs=Wu=Vmax+3Δに設定される。そのため、メモリセルMCの中間ノード電位がVm=Vssになり、セルユニットCU2にはリセット電圧Vreset以上の逆方向バイアスが掛かる。その結果、セルユニットCU2がリセット状態に遷移し、全てのメモリセルMCが(S,R)に遷移する。
つまり、初期状態設定の過程では逆方向バイアスが利用されないため、セルユニットCU1がバタフライ化したとしても、メモリセルMCの状態遷移に影響はない。
<初期状態設定時のバタフライ化したセルユニットCU2を持つメモリセルの状態遷移>
ここでは、初期状態設定時のバタフライ化したセルユニットCU2を持つメモリセルMCの状態遷移について図27を用いて説明する。図27中の表記については、図26と同様である。
イニシャル・スタンバイ・フェーズでは、ビット線BL及びワード線WLの電位は、U=W=Vmax+3Δで設定される。しかし、いずれのセルユニットCU2にも逆方向バイアス特性がないため、メモリセルMCの状態は遷移しない。
アクティブ・スタンバイ・フェーズでは、全てのビット線BLがフローティング状態にされ、全てのワード線WLの電位がWs=Wu=Vssに設定される。この時点で、リセット状態のセルユニットCU1にはセット電圧Vset以上の順方向バイアスが掛かるため、セルユニットCU1はセット状態に遷移する。また、フローティング状態のビット線BLの電位もU〜=Vsになる。ここまでの過程で、全てのメモリセルMCが‘0’状態に遷移する。
全てのメモリセルMCを‘1’状態に遷移させる場合、更に、全てのワード線WLの電位が、再びWs=Wu=Vmax+3Δに設定される。この場合、セルユニットCU2に逆方向バイアス特性がないため、メモリセルMCの中間ノード電位がVm=Vmax+3Δになる。そのため、セルユニットCU1にはリセット電圧Vreset以上の逆方向バイアスが掛かる。その結果、セルユニットCU1がリセット状態に遷移し、全てのメモリセルMCが(R,S)に遷移する。
つまり、初期状態設定の過程では、セルユニットCU2がバタフライ化したことで、メモリセルMCは、正常なメモ入りセルMCの場合とは異なる‘1’状態に遷移することになる。
<‘2’状態設定時の正常なメモリセルの状態遷移>
ここでは、選択メモリセルMCに対して‘2’状態設定した場合の正常なメモリセルMCの状態遷移について図28を用いて説明する。
選択メモリセルMCについては、図28に示すように、選択ビット線BLの電位がUs=Vmin−Δに設定されることで、選択メモリセルMCの中間ノード電位がVmin−Δに設定される。その後、選択ビット線BLの電位がUs=Vss、選択ワード線WLの電位がWs=2Vreset−2Δに設定される。これによって、選択メモリセルMCのセルユニットCU1は、リセット状態に遷移する。これら選択ビット線BL及び選択ワード線WLへの電位設定は、ある程度の時間(数μsオーダー)維持されないとセルユニットCU1がリセット状態に遷移しないため、選択メモリセルMCは‘2’状態に遷移しない。即ち、この電位設定の期間によっては、‘2’状態で設定されるべきメモリセルMCに‘1’状態のメモリセルMCが混入することになる。
一方、非選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCについては、非選択ビット線BL及び非選択ワード線WLの電位がUu=Wu=Vreset−Δに設定されるため、バイアスは掛からず状態は遷移しない。
これに対し、選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCについては、図28に示すように、選択ビット線BLの電位がUs=Vss、非選択ワード線WLの電位がWu=Vreset−Δに設定される。そのため、非選択メモリセルMC(‘1’)は、セット状態のセルユニットCU1を介して中間ノード電位がVm=Vmin−Δに設定される。その結果、セルユニットCU2にはVmin−Vresetの順方向バイアスしか掛からず、状態は遷移しない。なお、セット電圧Vsetとリセット電圧Vresetは、同程度の電圧である。非選択メモリセルMC(‘0’)も、中間ノード電位がVm=Vmin−Δに設定されるため、状態は遷移しない。非選択メモリセルMC(‘2’)は、やはりセルユニットCU1及びCU2共に状態が遷移するようなバイアスが掛からないため、状態が遷移しない。
また、非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCの場合、図28に示すように、非選択メモリセルMC(‘0’)及びMC(‘1’)については、セット状態のセルユニットCU1を介して中間ノード電位がVm=Vreset−Δに設定され、選択ワード線WLの電位がWs=2Vreset−2Δに設定されるため、セルユニットCU2にはWs−Vm=Vreset−Δの逆方向バイアスしか掛からない。その結果、非選択メモリセルMC(‘0’)及び(‘1’)は、状態が遷移しない。非選択メモリセルMC(‘2’)については、イニシャル・スタンバイ・フェーズにおいて中間ノード電位Vmがある程度上昇するため、セルユニットCU1にはVreset−Δよりも低い順方向バイアスしか掛からない。そのため、セット電圧Vsetとリセット電圧Vresetに極端な差がない限り、非選択メモリセルMC(‘2’)は、状態が遷移しない。
<‘2’状態設定時のバタフライ化したセルユニットCU1又はCU2を持つメモリセルの状態遷移>
ここでは、‘2’状態設定時のバタフライ化したセルユニットCU1又はCU2を持つメモリセルMCの状態遷移について図29を用いて説明する。図29中、‘/‘の前に示した値はセルユニットCU1がバタフライ化した場合の値、‘/’の後に示した値はセルユニットCU2がバタフライ化した場合の値を示している。その他の表記については、図26と同様である。図29には、‘1’状態設定によって‘0’状態のメモリセルMCが‘1’状態に遷移した場合と、初期状態設定によってメモリセルMCが‘1’状態に遷移した場合について、メモリセルMCの状態遷移の全てのパターンが示されている。なお、初期状態設定では、リセット状態のバタフライ化したセルユニットCUはなくなるため、バタフライ化したセルユニットCUを持つ‘2’状態のメモリセルMCはない。
セルユニットCU1がバタフライ化した(S,R)の選択メモリセルMCについては、図29に示すように、中間ノード電位Vmが最低電位である選択ビット線BLの電位Usと同じ接地電位Vssに設定されるため、セルユニットCU2はリセット状態で安定する。その結果、(S,R)の選択メモリセルMCは、‘2’状態に遷移しない。セルユニットCU2がバタフライ化した(R,S)の選択メモリセルMCについては、中間ノード電位Vmが選択ワード線WLの電位Wsである2Vreset−2Δに設定されるため、セルユニットCU1はリセット状態で安定する。その結果、セルユニットCU1がバタフライ化した(S,R)の選択メモリセルMCと同様、(R,S)の選択メモリセルMCは、‘2’状態に遷移しない。つまり、‘1’状態の選択メモリセルMCのセルユニットCUがバタフライ化した場合、選択メモリセルMCに対して‘2’状態設定しても、選択メモリセルMCは‘1’状態のままとなる。
一方、非選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCについては、非選択ビット線BL及び非選択ワード線WLの電位がUu=Ws=Vreset−Δに設定されるため、バイアスは掛からず状態は遷移しない。
これに対し、選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMC並びに非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCについては、図29に示すように、選択ワード線WLの電位がWs=2Vreset−2Δに設定される場合もあるが、セルユニットCU1及びCU2には、Vreset−Δ以上の逆方向バイアスが掛かることはないため、状態は遷移しない。
以上から、バタフライ化したセルユニットCU1又はCU2を持つメモリセルMCについては、‘1’状態から‘2’状態に遷移させることができず、‘1’状態及び‘2’状態間の誤遷移が生じる結果となる。
<‘1’状態設定時の正常なメモリセルの状態遷移>
ここでは、‘0’状態の選択メモリセルMCに対して‘1’状態設定した場合の正常なメモリセルMCの状態遷移について図30を用いて説明する。
‘1’状態設定におけるイニシャル・スタンバイ・フェーズでは、ビット線BL及びワード線WLの電位をU=W=Vssに設定し、選択メモリセルMCの中間ノード電位をVm=Vssに設定する。続いて、アクティブ・スタンバイ・フェーズでは、選択ビット線BLの電位をUs=Vssに維持しつつ、非選択ビット線BL及び全てのワード線WLの電位をUu=Ws=Wu=Vmin−Δに設定する。そして、アクセス・フェーズにおいて、選択ビット線BLの電位をUs=Vssに維持しつつ、選択ワード線WLの電位をWs=Vreset+Δに設定する。
これによって、選択メモリセルMCについては、中間ノード電位Vmが接地電位Vssから少し上昇するが、選択メモリセルMCのカソードNc側のセルユニットCU2にはリセット電圧Vreset以上の逆方向バイアスが掛かため、セルユニットCU2は、常にリセット状態に遷移する。また、選択メモリセルMCのアノードNa側のセルユニットCU1にはほとんどバイアスが掛からないため、セルユニットCU1は、セット状態を維持する。つまり、‘0’状態の選択メモリセルMCは、‘1’状態に遷移する。
一方、非選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCについては、非選択ビット線BL及び非選択ワード線WLの電位がUu=Wu=Vmin−Δに設定されるため、バイアスは掛からず状態は遷移しない。
これに対し、選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCについては、選択ビット線BLの電位がUs=Vss、非選択ワード線WLの電位がWu=Vmin−Δに設定される。そのため、非選択メモリセルMCにはリセット電圧Vreset以下の逆方向バイアスしか掛からないため、非選択メモリセルMCの状態は遷移しない。
非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCについては、選択ワード線WLの電位がWs=Vreset+Δ、非選択ビット線BLの電位がUu=Vmin−Δに設定される。そのため、非選択メモリセルMCのセルユニットCU2には、Vreset+Δ−(Vmin−Δ)=Vreset−Vmin+2Δ以下の逆方向バイアスしか掛からない。また、セット電圧Vsetとリセット電圧Vresetは、同程度の値である。したがって、いずれの状態であっても、非選択メモリセルMCの状態は遷移しない。
<‘1’状態設定時のバタフライ化したセルユニットCU1又はCU2を持つメモリセルの状態遷移>
ここでは、‘1’状態設定時のバタフライ化したセルユニットCU1又はCU2を持つメモリセルMCの状態遷移について図31を用いて説明する。図31中の表記については、図29と同様である。
セルユニットCU1がバタフライ化した選択メモリセルMCについては、図31に示すように、イニシャル・スタンバイ・フェーズにおいてビット線BL及びワード線WLの電位がU=W=Vssに設定されるため、中間ノード電位はVm=Vssになる。その後、アクセス・フェーズにおいて、選択ワード線WLの電位がWs=Vreset+Δに設定されるため、セルユニットCU2にはリセット電圧Vreset以上の逆方向バイアスが掛かる。その結果、セルユニットCU2がリセット状態に遷移し、選択メモリセルMCは‘1’状態に遷移する。
セルユニットCU2がバタフライ化した選択メモリセルMCについては、選択ワード線WLの電位がWs=Vreset+Δに設定されるので、バタフライ化したセルユニットCU2を介して中間ノード電位はVm=Vreset+Δになる。そのため、セルユニットCU1がリセット状態に遷移する。その結果、セルユニットCU2がバタフライ化した場合、選択メモリセルMCは、正常な場合とは異なる構成の‘1’状態に遷移する。
これに対し、選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMC並びに非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCについては、バタフライ化したセルユニットCU1或いはCU2が存在したとしても、セルユニットCU1及びCU2にはVmin−Δか、Vreset−Vmin+2Δ以下のバイアスしか掛からないため、非選択メモリセルMCは誤遷移することはない。
<‘0’状態設定時の正常なメモリセルの状態遷移>
ここでは、選択メモリセルMCに対して‘0’状態設定した場合の正常なメモリセルMCの状態遷移について図32を用いて説明する。
‘0’状態設定では、始めに、イニシャル・スタンバイ・フェーズにおいて、ビット線BL及びワード線WLの電位がU=W=Vmin−Δに設定され、この設定を数μs間維持される。続いて、アクティブ・スタンバイ・フェーズにおいて、選択ビット線BL及び選択ワード線WLの電位がUs=Ws=Vmin−Δ、非選択ビット線BLの電位がUu=Vmin−2Δ、非選択ワード線WLの電位がWu=Vminに設定される。その後、アクセス・フェーズにおいて、選択ビット線BLの電位がUs=Vset、選択ワード線WLの電位がWs=Vssに設定され、非選択ビット線BL及び非選択ワード線WLがフローティング状態になる。このように、非選択ビット線BL及び非選択ワード線WLがフローティング状態になることで、容量性カップリングによる隣接ビット線BL或いは隣接ワード線WLへの影響を抑制できる。
選択メモリセルMCについては、アクティブ・スタンバイ・フェーズにおける電位設定によって、選択メモリセルMCのカソードNc側のセルユニットCU2は常にセット状態に遷移する。また、アノードNa側のセルユニットCU1には順方向バイアスが掛かり、セルユニットCU1はセット状態を維持する。その結果、選択メモリセルMCは、‘0’状態に遷移する。
一方、非選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCについては、選択メモリセルMCに対する‘0’状態設定によってディスターブが生じないかが問題となる。始めに、イニシャル・スタンバイ・フェーズにおける電位設定を維持し、メモリセルMC(‘2’)の中間ノード電位Vmを十分に上げておく。ここで、フローティング状態のビット線BL及びワード線WLには、隣接ビット線BL或いは隣接ワード線WLから100%の容量性カップリングの影響を受けるものとそうでないものが存在する。そして、アクティブ・スタンバイ・フェーズにおける電位設定による選択ビット線BLの電位変化はVset−Vmin+Δであり、選択ワード線WLの電位変化はVmin−Δになる。したがって、非選択メモリセルMCの両端には、フローティング状態の非選択ビット線BLの電位の範囲Vmin−2Δ≦Uu≦Vset−Δとフローティング状態の非選択ワード線WLの電位の範囲Δ≦Wu≦Vminで電位差が生じる。このとき、非選択ビット線BLの電位Uuが‘0’状態のメモリセルMCを介して電位Ws=Vssの選択ワード線WLへ放電されたとしても、非選択ビット線BLの電位の範囲は、Vs≦Uu≦Vset−Δになる。また、非選択ワード線WLに対して‘0’状態のメモリセルMCを介した電位Us=Vsetの選択ビット線BLからの充電があったとしても、非選択ワード線WLの電位の範囲は、Δ≦Wu≦Vminになる。その結果、非選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCには状態を遷移させるようなバイアスは掛からないため、選択メモリセルMCの状態は遷移しない。
また、選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCについては、選択ビット線BLの電位がUs=Vsetに設定され、非選択ワード線WLの電位が容量性カップリングの影響によってΔ≦Wu<Vminの範囲となる。そのため、セルユニットCU1がセット状態の場合、セルユニットCU2にはセット電位Vset以下の順方向バイアスしか掛からず、非選択メモリセルMCの状態は遷移しない。一方、セルユニットCU1がリセット状態の場合、イニシャル・スタンバイ・フェーズ時においてビット線BL及びワード線WLの電位が数μs間Vmin−Δに維持され、中間ノード電位Vmが上昇する。そのため、セルユニットCU1にはセット電圧Vset以下の順方向バイアスしか掛からず、非選択メモリセルMCの状態は遷移しない。イニシャル・スタンバイ・フェーズにおける電位設定の持続時間が短く、非選択メモリセルMCの中間ノード電位Vmが十分に上昇しない場合、‘2’状態のセルユニットCU1にはセット電圧Vset近い順方向バイアスが掛かることになり、セルユニットCU1はセット状態に遷移する可能性が少ないながらもある。
また、選択メモリセルMCが‘0’ 状態に遷移しこの選択メモリセルMCに電流が流れると、選択ビット線BLはビット線ドライバ2´から遮断される。そのため、選択ビット線BLの電位Usは、電位Ws=Vssの選択ワード線WLに引っ張られ接地電位Vssに向かって低下する。しかし、‘0’ 状態のメモリセルMCは、順方向バイアスが低い程、実効的な抵抗値が高くなるため、非選択ビット線BLの電位は、Uu=Vss+Δ程度で飽和してしまう。その結果、セルユニットCU1には大きな逆方向バイアスが掛らないため、選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCの状態は遷移しない。
非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCについては、選択ワード線WLの電位がWs=Vssに設定されている。また、非選択ビット線BLには、隣接ビット線BLから100%の容量性カップリングの影響を受けるものとそうでないものが存在するため、非選択ビット線BLの電位の範囲はVmin−2Δ≦Uu≦Vset−Δとなる。その結果、非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCには状態を遷移させるようなバイアスが掛からず、状態は遷移しない。
<‘0’状態設定時のバタフライ化したセルユニットCU1又はCU2を持つメモリセルの状態遷移>
ここでは、セルユニットCU1又はCU2がバタフライ化したメモリセルMCに対する‘0’状態設定について図33を用いて説明する。図33中の表記については、図26と同様である。
バタフライ化したセット状態のセルユニットCUには逆方向バイアスが掛からないため、このセルユニットCUの両端には電位差が生じないと考えられる。この場合、選択メモリセルMCのリセット状態のセルユニットCUには、常にセット電圧Vsetの順方向バイアスが掛かるため、セット状態に遷移する。
一方、非選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCについては、正常なメモリセルMCの場合と同様、非選択メモリセルMCには状態遷移するようなバイアスが掛からず、状態は遷移しない。
これに対し、選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMC並びに非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCについては、バタフライ化したセット状態のセルユニットCUにバイアスが掛からない事と、非選択メモリセルMCに順方向バイアスしか掛からないことから、セルユニットCUにはセット電圧Vset以上のバイアスが掛からない。その結果、非選択メモリセルMCが誤遷移することはない。
<望ましい書き込みシーケンス>
以上、セルユニットCUのバタフライ化を考慮し、選択メモリセルMCに対する状態設定毎に、メモリセルMCの状態遷移を説明した。
そして、バタフライ化したセルユニットCUを持つ選択メモリセルMCは、‘1’状態から‘2’状態に遷移できないことが分かった。また、選択メモリセルMCに対する‘0’状態設定において、‘2’状態の非選択メモリセルMCが‘1’状態に誤遷移し得ることも分かった。即ち、これは、メモリセルMC(‘2’)には、エラーとして‘1’状態のメモリセルMCが混入し得るということである。しかし、このエラーは、ペアセルPCにZpの要素を記憶させる実施形態に係る半導体記憶装置の場合、Zpの要素の±1の変化に収まり、これは、リー・メトリック・コードの1の変化に相当する。つまり、このエラーは、ε=1のECCシステムで対応可能であり、ε=2のECCシステムに至っては余裕を持って対応することができる。
図34は、実施形態の書き込みシーケンスの一例である。
書き込みシーケンスとしては、初期状態設定(消去)によって、全てのメモリセルMCを‘1’状態にした後で他の状態を上書きする方法と、図34に示すように、初期状態設定(消去)によって全てのメモリセルMCを‘0’状態にした後で他の状態を上書きする方法を説明した。このうち、前者の方法は、‘2’状態設定の際に‘1’状態に遷移させる必要がないため、その点においては後者の方法よりも単純であると考えられる。しかし、その一方、後者の方法は、電位設定とその電位設定の持続時間の設定が面倒な‘0’状態設定を無くすことができるため、書き込みシーケンスの全体の処理時間や手順の少なさ、処理の複雑さににおいて、後者の方法の方が優れており望ましい方法と言える。
ここで改めて後者の方法によるの望ましい書き込みシーケンスをまとめると次のようになる。つまり、図34に示すように、始めに、全てのメモリセルMC(‘2’)、MC(‘1’)及びMC(‘0’)を対象にして初期状態設定を実行する。これによって、メモリセルMC(‘0’)を含めた全てのメモリセルMCが‘0’状態に遷移する。続いて、‘0’状態設定を実行することなく、選択メモリセルMC(‘2’)及びMC(‘1’)を対象にして‘1’状態設定を実行する。これによって、メモリセルMC(‘1’)に対するデータの書き込みが完了する。最後に、選択メモリセルMC(‘2’)を対象にして‘2’状態設定を実行する。これによってメモリセル(‘2’)に対するデータの書き込みが完了する。
<‘1’状態判定>
ここからは、読み出しシーケンスにおける‘1’状態判定について説明する。なお、ここでは、1本の選択ワード線WLに共通に接続された複数のメモリセルMCを同時にアクセスする場合を前提に説明する。
‘1’状態判定は、前述の‘0’状態判定後に実行されるもので、前‘1’状態判定ステップと‘1’状態判定ステップに大別することができる。
‘0’状態判定ステップ後、メモリセルアレイ1のバイアス状態は、図35のようになる。つまり、‘0’状態判定ステップでは、非選択ワード線WLは、電位がWu=Vaccに設定された後、フローティング状態Wu〜になる。一方、選択ワード線WLは、電位がWs=Vssに設定される。また、例えば、‘0’状態判定の基準となる参照ビット線RBL(‘0’)との比較で‘0’状態と判定された選択メモリセルMC(‘0’)に接続された選択ビット線BL(‘0’)は、ビット線ドライバ2´から遮断される。そのため、これら選択ビット線BL(‘0’)の電位は接地電位Vssに向かい低下し、最終的にUs=Vsで安定する。電位Vsは、Vss+Δ程度の電位である。これは、選択ビット線BL(‘0’)からは2個のセルユニットCU1及びCU2を介して放電するが、セット状態のセルユニットCU1又はCU2は、バイアスが低い程、実効的な抵抗値が高くなるためである。一方、‘0’状態と判定されなかった選択メモリセルMCに接続された選択ビット線BLと参照ビット線RBL(‘0’)の電位はUs=Vaccで維持される。非選択ビット線BL(図35の場合、“非選択BL”)は、電位がUu=Vaccに設定された後、フローティング状態Uu〜となる。このメモリセルアレイ1の状態において、ビット線ドライバ2´から遮断されずに残っている選択ビット線BLに接続されている選択メモリセルMCが、‘1’状態又は‘2’状態のメモリセルMCとなる。そして、以下で説明する前‘1’状態判定ステップ及び‘1’状態判定ステップによって、これら選択メモリセルMCが‘1’状態か‘2’状態かを判定する。
なお、‘1’状態判定は、選択メモリセルMC(‘1’)を‘0’状態に遷移させる破壊読み出しであり、前述の‘0’状態設定と同様の過程を用いる。
次に、前‘1’状態判定ステップについて、図36を用いて説明する。
前‘1’状態判定ステップでは、選択メモリセルMC(‘0’)に接続されており、ビット線ドライバ2´から遮断された選択ビット線BL(‘0’)、非選択ビット線BL及び参照ビット線RBL(‘0’)の電位をUs(‘0’)=Uu=Ur=Vmin−2Δ(Urは、参照ビット線の電位である。)、非選択ワード線WLの電位をWu=Vmin、選択ビット線BL及び選択ワード線WLの電位をUs=Ws=Vmin−Δに設定し、これを数μsの間維持する。この電位設定を数μsの間維持するのは、非選択ビット線BL等に接続された非選択メモリセルMC(‘2’)の中間ノード電位Vmが上昇する時間をできるだけ確保し、中間ノード電位Vmが低いことによって生じる非選択メモリセルMC(‘2’)のセルユニットCU1及びCU2の誤遷移を防止するためである。前‘1’状態判定ステップにおける電位は、容量性カップリングに対するディスターブマージンを確保でき、初期段階においてメモリセルMC(‘2’)の中間ノード電位Vmが接地電位Vss近くであっても、当該メモリセルMC(‘2’)のセルユニットCUが誤遷移しないような値となっている。
次に、‘1’状態判定ステップについて、図37を用いて説明する。
‘1’状態判定ステップでは、‘1’状態の破壊読み出しを行う。選択ビット線BL(‘0’)、非選択ビット線BL及び非選択ワード線WLをフローティング状態にすると共に、選択メモリセルMC(‘1’)のみが‘0’状態に遷移する電位設定を行い、この状態遷移時の選択ビット線BLの電流変化によって選択メモリセルMCの状態を判定する。選択ビット線BLの電位をUs=Vset、選択ワード線WLの電位をWs=Vss、必要に応じて参照ビット線RBL(‘0’)の電位をUr(‘0’)=Vaccに設定する。そして、参照ビット線RBL(‘0’)との電流比較などで、電流が大きくなった選択ビット線BLを遮断する。ここで、この新たに遮断された選択ビット線BLに接続された選択メモリセルMCが‘1’状態であり、遮断されない選択ビット線BLに接続された選択メモリセルMCが‘2’状態であると判定できる。‘0’状態へ遷移したメモリセルMC(‘1’)の電位Us(‘0’)や、非選択メモリセルMC(‘0’)を介して選択ワード線WL(‘0’)に接続される非選択ビット線BLの電位Uuは、電位Vsに向けて変化する。この‘1’状態判定ステップは、前述の‘0’状態設定と同様の過程となる。
以上説明した‘1’状態判定によって、選択メモリセルMCの状態が‘0’状態、‘1’状態或いは‘2’状態かを判定することができる。しかし、メモリセルMC(‘1’)は、その状態が破壊されて‘0’状態に遷移してしまっているので、これを回復するための後述の‘1’状態再設定が必要となる。
<‘1’状態判定時の選択メモリセルの状態遷移>
書き込みシーケンスでは、初期状態設定によってメモリセルMCを‘1’状態に遷移させた上で他の状態を上書きしていたのに対し、読み出しシーケンスでは、メモリセルMCの状態が‘1’状態であるとは限らない。
そこで、ここでは、‘1’状態判定時の各ステップにおけるメモリセルMCの状態遷移について説明する。
‘1’状態判定では、センスアンプSAによって、選択メモリセルMC(‘0’)、MC(‘1’)及びMC(‘2’)の状態を区別して検知するが、その過程において非選択メモリセルMCを誤遷移させるようなことがあってはならない。この点について、図38を用いて確認する。
図38は、‘1’状態判定時の選択ビット線BL及び選択ワード線WL間の選択メモリセルの状態遷移を示す図である。
始めに、‘0’状態判定ステップで、全てのビット線BL及びワード線WLの電位がU=W=Vaccに設定される。その後、非選択ビット線BL及び非選択ワード線WLがフローティング状態になり、選択ビット線BLの電位がUs=Vaccに維持され、選択ワード線WLの電位がWs=Vssに設定される。その上で、選択メモリセルMCが‘0’状態かその他の状態かを判別する。そして、‘0’状態と判定された選択メモリセルMC(‘0’)に接続された選択ビット線BL(‘0’)は電流が遮断される。その結果、選択ビット線BL(‘0’)の電位は、Us(‘0’)=Vs(≧Vss+Δ)となる。選択メモリセルMCの中間ノード電位Vmについては、図38を参照されたい。
続いて、前‘1’状態判定ステップでは、選択メモリセルMC(‘0’)に接続された選択ビット線BL(‘0’)の電位がUs(0)=Vmin−2Δ、その他の選択ビット線BLの電位がUs=Vmin−Δ、選択ワード線WLの電位がWs=Vmin−Δに設定される。その結果、セット状態のセルユニットCU1を持つ選択メモリセルMC(‘0’)及びMC(‘1’)については、中間ノード電位Vmが選択ビット線BLの電位に設定される。この前‘1’状態判定ステップでは、どのセルユニットCUにも状態遷移するようなバイアスは掛らない。この電位設定がしばらく維持されることで、メモリセルMC(‘2’)の中間ノード電位VmがΔ以上に上昇しメモリセルMC(‘2’)のセルユニットCU1がセット状態に誤遷移することを防止する。この電位設定が短いと、続く‘1’状態判定ステップで、メモリセルMC(‘2’)が‘1’状態に誤遷移する可能性が出てくることになる。
最後に、‘1’状態判定ステップでは、選択ビット線BLの電位がUs=Vset、選択ワード線WLの電位がWs=Vssに設定され、選択メモリセルMC(‘1’)のみが‘0’状態に遷移する。そして、この選択メモリセルMC(‘1’)にセル電流が多く流れ始めたら選択ビット線BL(‘1’)は、ビット線ドライバ2´から遮断され、フローティング状態になる。これよって、選択ビット線BL(‘1’)の電位Usは、電位Vsで安定する。一方、メモリセルMC(‘0’)に接続された選択ビット線BL(‘0’)は、始めからフローティング状態であるため、容量性カップリングの影響によって、その電位Us(0)は、Vmin−2Δ≦Us(0)≦Vset−Δの範囲から電位Vsに向けて放電される。このように、‘1’状態判定ステップでは、新たに‘0’状態に遷移したメモリセルMC(‘1’)を検知することで、メモリセルMC(‘1’)の状態を判定することができる。
なお、選択メモリセルMCについては、セルユニットCUがバタフライ化していても、前述の‘0’状態設定の場合と同様、ディスターブの問題は生じない。
<‘1’状態読み出し時の選択ビット線に接続された非選択メモリセルの状態遷移>
次に、‘1’状態判定時の選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCの状態遷移について図39を用いて説明する。
始めに、‘0’状態判定ステップで、選択ビット線BLの電位がUs=Vacc、非選択ワード線WLの電位がWu=Vaccに設定される。その後、非選択ワード線WLがフローティング状態になる。選択ビット線BLに接続された選択メモリセルMCの中間ノード電位Vmについては、図39を参照されたい。
続いて、前‘1’状態判定ステップでは、選択メモリセルMC(‘0’)に接続された選択ビット線BL(‘0’)の電位がUs(‘0’)=Vmin−2Δ、その他の選択ビット線BLの電位がUs=Vmin−Δ、非選択ワード線の電位がWu=Vminに設定される。なお、選択ビット線BLの電位は、選択メモリセルMCの状態によって、Us(‘0’)又はUsにも該当するため、図39では電位Us(‘0’)を()内で示している。セット状態のセルユニットCU1を持つ‘0’状態及び‘1’状態のメモリセルMCの中間ノード電位Vmは、選択ビット線BLの電位Usに設定される。この前‘1’状態判定ステップでは、どのセルユニットCUにも状態遷移を起こすようなバイアスは掛らない。この電位状態をしばらく維持してメモリセルMC(‘2’)の中間ノード電位VmをΔ以上に上昇させてメモリセルMC(‘2’)のセルユニットCU1がセット状態に誤遷移しないようにする。この電位設定が短いと、続く‘1’状態判定ステップで、メモリセルMC(‘2’)が‘1’状態に誤遷移する可能性が出てくることになる。
最後に、‘1’状態判定ステップでは、選択ビット線BLの電位がUs=Vset、選択ワード線WLの電位がWs=Vssに設定され、選択メモリセルMC(‘1’)のみが‘0’状態に遷移する。非選択ワード線WLは、この時フローティング状態であるので、容量性カップリングによって、電位がΔ≦Wu≦Vminの範囲で分布する。非選択メモリセルMC(‘0’)は、選択ビット線BLの電位Us=Vsetがフローティング状態の非選択ワード線WLに伝わり、非選択ワード線WLの電位はWu=Vset−Δ程度になる。選択ビット線BLの電位は、その後Us=Vsetのままか、ビット線ドライバ2´から遮断されたフローティング状態Vsとなる。この場合であっても、セット電圧Vsetとリセット電圧Vresetが同程度であれば、メモリセルMCの状態に拘わらず、セルユニットCU1がリセット状態に遷移するだけのバイアスは掛らないため、メモリセルMCの状態は遷移せず、ディスターブは生じない。
なお、セルユニットCUがバタフライ化していても、前述の‘0’状態設定と同様、ディスターブの問題は生じない。
<‘1’状態読み出し時の選択ワード線に接続された非選択メモリセルの状態遷移>
次に、‘1’状態判定時の非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCの状態遷移について図40を用いて説明する。
始めに、‘0’状態判定ステップでは、電位Vaccで設定されたビット線BL及びワード線WLのうち、選択ビット線BLの電位がUs=Vacc、選択ワード線WLの電位がWs=Vssに設定され、非選択ビット線BLがフローティング状態となっている。メモリセルMC(‘0’)に接続されたフローティング状態の非選択ビット線BL(‘0’)の電位Uuは、電位Vsへと放電される。非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCの中間ノード電位Vmについては、図40を参照されたい。
続いて、前‘1’状態判定ステップでは、非選択ビット線BLの電位がUu=Vmin−2Δ、選択ワード線WLの電位がWs=Vmin−Δに設定される。セット状態のセルユニットCU1を持つメモリセルMC(‘0’)及びMC(‘1’)の中間ノード電位Vmは、非選択ビット線BLの電位Uuに設定される。前‘1’状態判定ステップでは、どのセルユニットCUに対しても、状態遷移が起こるようなバイアスは掛らない。この電位設定をしばらく維持してメモリセルMC(‘2’)の中間ノード電位Vmを上昇させることで、メモリセルMC(‘2’)のセルユニットCU1のセット状態への誤遷移を回避するためのマージンを稼ぐ。
最後に、‘1’状態判定ステップでは、選択ビット線BLの電位がUs=Vset、選択ワード線WLの電位がWs=Vssに設定され、メモリセルMC(‘1’)のみが‘0’状態に遷移する。非選択ビット線BLは、容量性カップリングによって、電位がVmin−2Δ≦Uu≦Vset−Δの範囲で分布する。非選択メモリセルMC(‘0’)に接続されたフローティング状態の非選択ビット線BL(‘0’)の電位Uuは、選択ワード線WLに放電され電位Vs程度になる。そのため、非選択メモリセルMC(‘0’)の中間ノード電位Vmは、接地電位Vss程度になる。メモリセルMCの状態に拘わらず、セルユニットCUには状態遷移するだけのバイアスは掛からないため、メモリセルMCの状態は遷移しない。
なお、セルユニットCUがバタフライ化していても、前述の‘0’状態設定と同様、ディスターブの問題は生じない。
<‘1’状態読み出し時の非選択ビット線及び非選択ワード線に接続された非選択メモリセルの状態遷移>
次に、‘1’状態判定時の非選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCの状態遷移について図41を用いて説明する。
始めに、‘0’状態判定ステップでは、電位Vaccで設定されたビット線BL及びワード線WLのうち、選択ビット線BLの電位がUs=Vacc、選択ワード線WLの電位がWs=Vssで設定され、非選択ビット線BLはフローティング状態になっている。メモリセルMC(‘0’)に接続されたフローティング状態の非選択ビット線BL(‘0’)の電位Uuは、電位Vsへと放電される。非選択ビット線BL及び非選択ワード線WL間の非選択メモリセルMCの中間ノード電位Vmについては、図41を参照されたい。
続いて、前‘1’状態判定ステップでは、非選択ビット線BLの電位がUu=Vmin−2Δ、非選択ワード線WLの電位がWu=Vminに設定される。セット状態のセルユニットCU1を持つ非選択メモリセルMC(‘0’)及び(‘1’)の中間ノード電位Vmは、非選択ビット線BLの電位Uuに設定される。この前‘1’状態判定ステップでは、どのセルユニットCUに対しても、状態遷移が起こるようなバイアスは掛らない。
最後に、‘1’状態判定ステップでは、選択ビット線BLの電位がUs=Vset、選択ワード線WLの電位がWs=Vssに設定され、メモリセルMC(‘1’)のみが‘0’状態に遷移する。そのため、フローティング状態の非選択ビット線BLは、当該非選択ビット線BL及び選択ワード線WL間の非選択メモリセルMCが‘0’状態である場合、電位Vsに放電する。そうでない場合には、容量性カップリングによって、電位がVmin−2Δ≦Uu≦Vset−Δの範囲で分布し、結局、電位は、Vs≦Uu≦Vset−Δの範囲となる。非選択ワード線WLは、容量性カップリングによって、電位がΔ≦Wu≦Vminの範囲となる。メモリセルMCの状態に拘わらず、セルユニットCUには状態遷移するだけのバイアスは掛からないため、メモリセルMCの状態は遷移しない。
なお、セルユニットCUがバタフライ化していても、前述の‘0’状態設定と同様、ディスターブの問題は生じない。
以上、選択メモリセルMCに対する‘1’状態判定時のメモリセルMCの状態遷移を説明したが、いずれのメモリセルMCは遷移しないことが分かる。
<‘1’状態再設定>
ここでは、破壊読み出しによって破壊された‘1’状態のメモリセルMCの状態を、‘0’状態に復帰させる‘1’状態再設定について説明する。
図42は、実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の‘1’状態判定ステップ後のメモリセルアレイ1のバイアス状態を示す図である。
選択メモリセルMCの状態の判別が終了した後、即ち‘1’状態判定後では、参照ビット線RBL(‘0’)と選択メモリセルMC(‘2’)が接続された選択ビット線BL(‘2’)及び選択ワード線WL以外のビット線BL及びワード線WLはフローティング状態になっている。そのため、特に、選択ビット線BLのうちメモリセルMC(‘0’)及びMC(‘1’)に接続された選択ビット線BL(‘0’)及びBL(‘1’)の電位Usと非選択ビット線BLのうち選択ワード線WLとの間でメモリセルMC(‘0’)を持つ非選択ビット線BLの電位Uuは、接地電位Vssに向かって電位Vsに放電される。このバイアス状態から‘1’状態再設定を行う。
‘1’状態再設定の過程は、前‘1’状態再設定ステップと‘1’状態再設定ステップに大別することができる。これら前‘1’状態再設定ステップと‘1’状態設定ステップは、前述の‘1’状態設定のアクティブ・スタンバイ・フェーズと同様である。
図43は、実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の前‘1’状態再設定ステップ時のメモリセルアレイ1のバイアス状態を示す図である。
前‘1’状態再設定ステップでは、‘1’状態が判別された選択ビット線BLの電位Us(‘1’)を接地電位Vssに設定すると、当該選択ビット線BLに接続されたメモリセルMCが‘1’状態再設定の対象となる。他のビット線BL及びワード線WLは、電位Us=Uu=Ws=Wu=Vmin−Δに設定する。これは前述の‘1’状態設定のアクティブ・スタンバイ・フェーズにおける選択ビット線BLが選択ビット線BL(‘1’)であった場合に相当する。
図44は、実施形態に係る半導体記憶装置のフローティングアクセス方式による読み出し動作の‘1’状態再設定ステップ時のメモリセルアレイ1のバイアス状態を示す図である。
‘1’状態再設定ステップでは、選択ワード線WLの電位をWs=Vreset+Δとして、‘1’状態に遷移してしまったメモリセルMC(‘0’)を‘1’状態に復帰させる。
なお、非選択メモリセルMCへのディスターブや、セルユニットCUがバタフライ化した場合のメモリセルMCの状態遷移については‘1’状態設定と同様であるため説明は省略する。
<メモリセルアレイのアクセス禁止領域>
ここでは、実施形態のメモリセルを用いた場合のアクセス禁止領域について説明する。
図45は、実施形態に係る半導体記憶装置のメモリセルアレイにおける欠陥発生時の処理方法を説明する図である。
実施形態のように2つのセルユニットCU1及びCU2を積層して多値化したメモリセルMCを用いることで、フローティングアクセス方式の特徴であるメモリセルアレイ1に欠陥が発生した場合でも、従来の半導体記憶装置と比較して、メモリセルの有効範囲の縮小を抑えることができる。
前述のように、セルユニットCUがバタフライ化して逆方向バイアスに対する抵抗値が低くなったメモリセルMCが発生した場合、当該メモリセルMCが属するメモリセルマットMMの全てのメモリセルMMの電位の設定ができなくなり、メモリセルMCとして有効でなくなってしまう。
バタフライ化するセルユニットCUの確率をbとすると、2つのセルユニットCUを積層してなるメモリセルMC全体がバタフライ化する確率はbとなり、かなり低減される。そのため、セルユニットCUがバタフライ化したとしても、メモリセルMCの状態をECCによって訂正できるだけでなく、メモリセルMC全体のリバース特性も保たれるため、メモリセルマットMM内の他のメモリセルMCの利用に影響は及ばない。
また、フローティングアクセス方式の場合、非選択ビット線BL及び非選択ワード線WLがフローティング状態になるため、他のメモリセルマットMMに与える影響もない。
つまり、メモリセルMCのセルユニットCU1及びCU2のいずれか一方に欠陥が生じても、図45に示すように、メモリセルアレイ1の欠陥発生部位を選択するビット線及びワード線の同時アクセスドライブ禁止領域が、ECC訂正不可能領域に一致するため、メモリセルマットMM全体に及ぶことはない。そのため、ハードディスクと同様のアドレ管理によって、メモリセルアレイ1の一部に欠陥が発生した際の処理が非常に容易となる。
以上のように、実施形態に係るメモリセルMCを用いたメモリセルアレイ1に対してフローティングアクセス方式によるアクセス動作をすることで、ECCのエラー訂正能力を超える欠陥が発生した場合であっても、その欠陥発生部位のアドレスへのアクセスを禁止するだけで、メモリセルアレイ1の他の正常な領域を最大限利用することができる。
<ペアセルに対するアクセス>
実施形態では、前述のように、Zp(p=7)の要素をペアセルPCの9つの状態に対応付けてデータを記憶する。そのため、これらペアセルPCを同時に選択できれば、高速なアクセスに資する。実施形態のメモリセルMCの場合、ワード線に共通に接続されたメモリセルMCの場合、同時にアクセスが可能である。そこで、ここでは、ペアセルPCの構成方法について説明する。
図46〜図48は、実施形態に係る半導体記憶装置におけるペアセルの構成例を説明する図である。
図46は、同一のメモリセルマットMM1内の2つのメモリセルMCでペアセルPCを構成する例である。具体的には、メモリセルマットMM2のうち、ビット線BL20及びワード線WL10間のメモリセルMC200と、ビット線BL21及びワード線WL10間のメモリセルMC201によってペアセルPCが構成されている。実施形態に係る半導体記憶装置の場合、1本のワード線WLに対して複数ビット線BLを選択することで、データの転送効率を上げることが前提となっているため、この例のように同一のメモリセルマットMM内でペアセルPCを構成するの容易である。特に、メモリセルマットMM内でセンスアンプ系(SA)などを共有化できるため、レイアウトの観点からも望ましい例と言える。
図47及び図48は、異なるメモリセルマットMMの2つのメモリセルMC0、MC1でペアセルPCを構成する例である。これら構成例の場合、メモリセルMC0及びMC1に同時にアクセスするには、少なくともワード線WLを共有する2つのメモリセルマットMMの選択が必要となる。
図47は、メモリセルマットMM1内のビット線BL10及びワード線WL10間のメモリセルMC100と、メモリセルマットMM1とワード線WLを共有するメモリセルマットMM2内のビット線BL21及びワード線WL10間のメモリセルMC201によってペアセルPCが構成されている。この場合、ビット線BL00とビット線BL21が異なるビット線グループに属しているため、センスアンプ系(SA)のメモリセルマットMMの選択回路が少々複雑になる。
図48は、メモリセルマットMM1内のビット線BL00及びワード線WL10間のメモリセルMC100と、メモリセルマットMM1とワード線WLを共有するメモリセルマットMM2内のビット線BL20及びワード線WL10間のメモリセルMC200によってペアセルPCが構成されている。この場合、ビット線BL00とビット線BL20が同一のビット線グループに属しているため、メモリセルマットMM1とメモリセルマットMM2では、異なるセンスアンプ系(SA)が必要となる。
以上の点から、図47及び図48に示すペアセルPCの構成例は、半導体記憶装置の仕様やレイアウトについて制約が多い場合など、採用される用途は限定的である。
なお、図46〜図48に示したペアセルPCの構成例は、いずれも選択ワード線WL上では参照電流を供給する参照セルRCを選択する参照ビット線RBLも同時に選択される。なお、参照セルRCは‘0’ 状態に設定されたメモリセルMCであり、ここに流れるセル電流をカレントミラーで小さくすることで、メモリセルMCに流れるセル電流と比較するための参照電流が作られる。
<複数のメモリセルに対する並列アクセス>
ペアセルPCで構成される多値記憶の半導体記憶装置は、メモリセルMCの書き込み動作は複雑であったり、読み出し動作も破壊読出しでリカバリーのためのデータの再設定を伴ったりするため、アクセスに必要なサイクル時間は、10μs程度と長くなってしまう。
そこで、データ転送の効率を向上させるには、メモリセルアレイ1内の同時選択できるビット線BLを全て駆動しておき、多くのデータの転送を同時に行う並列アクセスが必須となる。以下に複数のメモリセルMCに対する並列アクセスする方法について図49を用いて説明する。
書き込み動作、読み出し動作に拘わらず、そのシーケンスの中の選択ワード線WLに電位を設定して選択メモリセルMCにアクセスをするまでは、メモリセルマットMM内の電位状況は、場所に応じて自己整合的にほぼ一定になっている。そのため、ビット線BLとワード線WLの交差部のメモリセルMCを選択する過程を選択ワード線WL毎に一から繰り返さなくても、一組のメモリセルMCに対するアクセスができる。
アクセスシーケンスのどのフェーズ/ステップから繰り返すかは、4種類のアクセスシーケンス(初期状態設定、‘2’状態設定、‘1’状態設定、‘0’状態設定及び読み出し動作)毎に異なるが、アクセスシーケンスの全過程を繰り返す必要はないため、短いサイクルで高速なアクセスを実現することができる。
したがって、選択ビット線BLのスキャンを行わずに同じビット線BLを選択し続け、ワード線WLは切り替える度に、アクセスシーケンス毎に途中のフェーズ/ステップから処理を続ける。
一組のワード線WL群に対して、同じアクセスシーケンスを、選択ワード線を順次切り替えながら、繰返しの先頭フェーズ/ステップの電位設定をして、一連のフェーズ/ステップを実行すれば、そのワード線WLに関するアクセスが完了する。ここで、一組のワード線WL群を「ワード線セット」と呼ぶことにする。メモリセルマットMMは、このワード線セットが複数備わっている。図49の場合、メモリセルアレイ1上の斜線で表した部分がワード線セット1つ分となる。
ここで説明した並列アクセスの場合、ある状態設定の書き込みシーケンスをワード線セット全体に対して実行するため、ワード線セットを構成するメモリセルMC分の情報を一時的に保持しておくバッファが必要となる。
データの転送効率について具体例で説明する。Zp(p=7)の要素を記憶するε=1のリー・メトリック・コードのECCを考えると、1コードは、6つのペアセルPCで記憶され、1コードには、9ビットの訂正可能情報を構成することができる。8K(ワード線)×4K(ビット線)を有するメモリセルマットMMの場合、全てのビット線BLから同時にデータ転送を行うことができるとして、ワード線WL毎のデータアクセスに必要な1サイクルの時間を20μsとし、4K×(1/2)のペアセルPCを選択する。この場合、これは4K×(1/2)×(1/6)コードになり、これは3Kビットの訂正可能情報となるため、訂正可能情報の転送効率は、3K/20μs=150Mbpsとなる。
図49中(B)に示すように、N個のメモリセルマットMMに同時にアクセスすれば、N倍の転送可能情報の転送効率、即ちN倍のバンド幅を得ることもできる。但し、各ワード線セットに対応するバッファのサイズも大きくする必要がある。バッファのサイズを変えず、ワード線セットのサイズを1/Nにしても良いが、この場合、ワード線WLのスキャン本数は、当然1/Nになる。
[半導体記憶装置の具体的構成]
<全体構成>
前述の実施形態のメモリセルMCを用いた半導体記憶装置の構成例の概要について、図50に示すブロック図を用いて説明する。
メモリセルMCには、例えば、銀イオンなどの固体電解質中での析出を利用した所謂イオンメモリを用いる場合を前提とする。
図50に示す半導体記憶装置は、大別して、メモリデバイス100と、このメモリデバイス100を制御するメモリコントローラ200からなる。
メモリデバイス100には、メモリセルアレイ1と、メモリコントローラ200及びメモリセルアレイ1間のデータ送受をするためのバッファ・レジスタが含まれる。
メモリセルアレイ1は、メモリセルMCであるイオンメモリをマトリックス状に配列してなるメモリセルマットMMによって複数に分割されている。更に、各メモリセルマットMMは、複数のワード線セットによって構成されている。
これらワード線セットは、前述の通り、アクセスの高速化を図るための領域であり、データの転送効率を向上させるために、複数のメモリセルマットMMそれぞれのワード線セットは、同時にアクセスされる。バッファ・レジスタは、これら同時にアクセスされるワード線セット内のメモリセルMCに読み書きするデータを保持する。
メモリコントローラ200は、外部から入力されたデータのメモリデバイス100への書き込み、メモリデバイス100のメモリセルアレイ1が記憶するデータのECCの処理などに必要な制御を行う。
<コントローラによるデータの処理>
ここでは、コントローラのデータ処理について、多値記憶のメモリセルを用いた実施形態に特徴的な部分を中心に説明する。
実施形態に半導体記憶装置は、9つの状態を記憶可能なペアセルPCの各状態にZp(p=7)の各要素を対応付けるものであり、エラーは、リー・メトリック・コードにおいて1の範囲で収まるため、搭載すべきECCシステムのエラー訂正能力がε=1で良い。但し、ここでは、ε=2の場合についても少し言及しておく。
図51は、エラー訂正能力をε=1とした場合の実施形態に係る半導体記憶装置のメモリコントローラ200の機能ブロック図である。
データの書き込みは、始めに、M=9ビットずつのまとまりでバイナリのデータDがメモリコントローラ200に入力される。このデータDは、7進数変換部201に入力される。
7進数変換部201では、バイナリ表現のデータDを、各桁がZp(p=7)の要素となる7進数表現に変換してデータAを生成する。このデータAは、エンコード部202に入力される。
エンコード部202は、データAをリー・メトリック・コードCに変換する。このコードCは、メモリデバイス100に転送され、9値の記憶が可能なペアセルPC(イオンメモリ)にプログラムされる。
データの読み出しは、始めに、メモリデバイス100からコードYを読み出す。このコードYは、多値レベルの誤認識のエラーを含んだリー・メトリック・コードである。以降、このコードYからエラーのないリー・メトリック・コードCを復元する。コードYは、シンドローム生成部203に入力される。
シンドローム生成部203では、コードYからシンドロームをS=YH(Hはシンドローム行列であり、Hはその転置行列である)によって求める。Sの成分が値を持つ場合(S≠0)、この演算で得られたSのリー・メトリック|S|≠1であれば、エラー訂正ができないためNG信号を出力して処理を中止する。この場合、コードYのエラーをそのままエラー無しのデータとして外部に出力させる。S=0の場合、この場合はデータYにエラーがない場合であるため、やはりコードYをそのまま外部に出力させる。その他のシンドロームSの場合、シンドロームSは解探索多項式生成部204に入力される。
解探索多項式生成部204では、シンドロームS=(S,S)からψ=Sとして、多項式Ψ(x)=1+ΨxとΨ(x)=1−ψxを生成する。これら多項式Ψ(x)及びΨ(x)は、エラー探索部205及び206で順次処理される。
エラー探索部205及び206では、S=1の場合、多項式λ(x)=Ψ(x)とν(x)=1とし、或いは、S=−1の場合、多項式λ(x)=1とν(x)=Ψ(x)とするとキー条件を満足し、エラー成分の位置t=r−1=S及びエラー量e=Sを求める。このエラー量eは、コード復元部207に入力される。
コード復元部207では、エラー量からc=y−eとして、コードCを復元する。このコードCは、デコード部208に入力される。
デコード部208では、コードCのp進数の各桁をZp(p=7)の要素に変換しデータAを復元する。このデータAは、2進数変換部209に入力される。
変換部209では、p進数表現のデータAをバイナリ表現のデータDに変換し、メモリコントローラ200の外部に出力する。
図51は、エラー訂正能力をε=1とした場合の最も簡単なリー・メトリック・コードを用いたECCシステムを搭載したメモリコントローラ200の処理について説明した。しかし、より強いエラー訂正能力が欲しい場合もある。そこで、次に、エラー訂正能力をε=2とした場合のリー・メトリック・コードを用いたECCシステムを搭載したメモリコントローラ200について説明する。ここでは、図51の例と同様、p=7とした場合について説明する。
図52は、エラー訂正能力をε=2とした場合の実施形態に係る半導体記憶装置のメモリコントローラ200の機能ブロック図である。
データの書き込みは、始めに、M=6ビットずつのまとまりでバイナリのデータDがメモリコントローラ200に入力される。このデータDは、7進数変換部201に入力される。
7進数変換部201では、バイナリ表現のデータDを、各桁がZp(p=7)の要素となる7進数表現に変換してデータAを生成する。このデータAは、エンコーダ部202に入力される。
エンコーダ部202では、データAをリー・メトリック・コードCに変換する。このコードCは、メモリデバイス100に転送され、9値の記憶が可能なペアセルPC(イオンメモリ)にプログラムされる。
データの読み出しは、始めに、メモリデバイス100からコードYを読み出す。このコードYは、多値レベルの誤認識のエラーを含んだリー・メトリック・コードである。以降、このコードYからエラーのないリー・メトリック・コードCを復元する。コードYは、シンドローム生成部203に入力される。
シンドローム生成部203では、コードYからシンドロームをS=YHによって求める。Sの成分が値を持つ場合(S≠0)、この演算で得られたSのリー・メトリック|S|>2であれば、個々のエラーコード成分の和は必ず3以上になるため、エラー訂正ができないためNG信号を出力して処理を中止する。この場合、コードYのエラーをそのままエラー無しのデータとして外部に出力させる。S=0の場合、この場合はコードYにエラーがない場合であるため、やはりコードYをそのまま外部に出力させる。その他のシンドロームSの場合、シンドロームSは、解探索多項式生成部204に入力される。
解探索多項式生成部204では、シンドロームS=(S,S,S)からψ0=1、ψ=−S、ψ=−(ψ+ψ)/2として、多項式Ψ(x)を生成する。この多項式Ψ(x)は、ユークリッド反復法処理部251に入力される。
ユークリッド反復法処理部251では、多項式Ψ(x)とxからユークリッド反復法で多項式λ(x)=fとν(x)=pn−1を求める。ここで、多項式λ(x)及びν(x)を求めることができない場合、NG信号を出力して処理を中止する。この場合、コードYのエラーをそのままエラー無しのデータとしてして外部に出力させる。これら多項式λ(x)及びν(x)は、エラー探索部252及び253で順次処理される。
エラー探索部252及び253では、多項式λ(x)及びν(x)の根と多重度からエラー成分の位置tとエラー量eを求める。即ち、多項式λ(x)及びν(x)が2次以下の多項式であるので、λ(r)=0から根r及び多重度nを求め、エラー成分の位置t=r−1及びエラー量e=nを求める。同様に、ν(r)=0から根r及び多重度nを求め、エラー成分の位置t=r−1及び位置t=7−nを求める。このエラー量eは、コード復元部207に入力される。
コード復元部207では、エラー量eからc=y−eとして、コードCを復元する。このコードCは、デコード部208に入力される。
デコード部208では、コードCのp進数の各桁をZp(p=7)の要素に変換しデータAを復元する。このデータAは、2進数変換部254に入力される。
進数変換部254では、p進数表現のデータAをバイナリ表現のデータDに変換し、メモリコントローラ200の外部に出力する。
なお、以下において、メモリデバイス100などバイナリでデータを取り扱う環境を「binary world」と呼ぶことにする。これに対し、データをZpの数で取り扱うメモリコントローラ200などの環境を「p−adic Zp world」と呼ぶことにする。この場合「binary world」は、「p−adic Z world」と呼ぶこともできる。
<7進数変換部>
ここからは、メモリコントローラ200におけるデータ処理で用いる各機能ブロックについて説明する。
先ず、メモリコントローラ200の入口と出口において必要となるバイナリとp進数(7進数)の変換回路について説明する。
図53は、p=7とした場合の「binary world」のδ桁の2進数のデータD(d,d,・・・,dδ−1)を「p−adic Zp world」のδ+1桁のp進数のデータA(a,a,・・・,aδ−1,aδ)に変換する変換回路の構成を模式的に示した図である。図53中のハッチングで示す部分は、処理が終了したデータを示している。
なお、図53に示す“3 res”と示した四角は、入力されたバイナリデータを7で割り、商と剰余を求める演算回路である。この演算回路の入力は3ビットのバイナリデータであり、出力はこのバイナリデータを7で割った剰余となる。また、入力されたバイナリデータが7より大きい場合、商をキャリーCとして出力する。以下、この演算回路素子を“3 res”回路ブロックと呼ぶ。
始めに、第0ステップ(図53中S0)では、3桁の2進数のデータD(d,d,d)に対して最右側のd側から7の数え上げを行う。ここでは、dに対して、“3 res”回路ブロックに入力された4ビットのバイナリデータの最上位ビットに0を入れてdを7で割った剰余と共に商であるキャリーC を直接生成する。
続いて、1〜3ビット目が先の“3 res”回路ブロックの出力(3ビットで表現された剰余)、0ビット(最下位ビット)目がdの最上位ビットD (=D)である4ビットのバイナリデータを入力とする次の“3 res”回路ブロックによって、入力されたバイナリデータを7で割った剰余と共に商であるキャリーC を作る。
以降、“3 res”回路ブロックに入力される4ビットのバイナリデータのうちの0ビット目がdの最下位ビットD (=D)になるまで、7個の“3 res”回路ブロックを用いてキャリーC 〜C を生成する。これら生成されたキャリーC 〜C によって表現されるバイナリデータは、データDに含まれる7の個数になっている。
そして、dを入力とする“3 res”回路ブロックの出力が、4桁の7進数のデータA(a,a,a,a)のうち、aのバイナリ表示になる。
続いて、第1ステップ(図53中S1)では、第0ステップで得られたデータDに含まれる7の個数に対して、更に7がいくつ含まれるかを計算して7の個数を求め、7進数のデータAの重み7の桁の係数aのバイナリを求める。
第1ステップでは、キャリーC 〜C に対して最右側のC 側から7の数え上げを行う。キャリーC 〜C に対する7の数え上げに際しては、4ビットの入力バイナリデータの最上位ビットに0を入れて入力バイナリデータを7で割った剰余と共にキャリーC を直接生成する。
続いて、1〜3ビット目が先の“3 res”回路ブロックの出力(3ビットで表現された剰余)、0ビット(最下位ビット)目がC である4ビットのバイナリデータを入力とする次の“3 res”回路ブロックによって、入力されたバイナリデータを7で割った剰余と共に商であるキャリーC を生成する。
以降、“3 res”回路ブロックに入力される4ビットのバイナリデータのうちの0ビット目がC の最下位ビットC になるまで、5個の“3 res”回路ブロックを用いてキャリーC 〜C を生成する。これら生成されたキャリーC 〜C によって表現されるバイナリデータは、データDに含まれる素数7の個数になっている。
そして、C を入力とする“3 res”回路ブロックの出力が、4桁の7進数のデータA(a,a,a,a)のうち、aのバイナリになる。
続く第2ステップ(図53中S2)では、第1ステップで得られたデータDに含まれる7の個数に対して、更に素数7がいくつ含まれるかを計算して7の個数を求め、7進数のデータAの重み7の桁の係数aのバイナリを求める。
以降、同様に7進数の重み7の桁の係数aのバイナリ表示を求める第3ステップ(図53中S3)まで行う。
なお、第3ステップのキャリーC は計算には使用しない。
次に、“4 bit mod 7”回路ブロックを用いた7進数変換部201の構成について考える。ここで、“4 bit mod 7”回路ブロックとは、4ビットのバイナリデータである入力Aと、素数7を比較し、Aが7以上の場合にPF0=‘1’を出力すると共に、Aの素数7による剰余Qを出力する回路である。詳細については後述する。
図54中(A)は、7進数変換部201の第kステップの回路を、“4 bit mod 7”回路ブロックを用いて構成したものである。
ここでは、データを3桁の2進数表現にした場合の第j桁目をdとする。この場合、dは3ビットのバイナリで表示できるが、この表示の係数Dを他のdの係数Dと共通に表現するために、数1に示すようにサブインデックスを用いる。
[数1]

また、第kステップの演算の入力である前ステップ(第k−1ステップ)のキャリーはC 〜C 3(3−k)+k−1であり、各々のC はサブインデックスjを2の累乗の指数とする2進数としての係数となっていて、この2進数によって表現される数ΣC がデータに含まれる7の個数となる。
第kステップでは、図54中(A)に示すように、入力は3(3−k)+k個のバイナリ(キャリーC 〜C 3(3−k)+k−1)であり、これを3(3−(k+1))+k+1個の“4 bit mod 7”回路ブロックで受ける。
1つ目の“4 bit mod 7”回路ブロック<1>は、入力バイナリA〜A、Aに、それぞれC 3(3−k)+k−3〜C 3(3−k)+k−1、0を入力し、出力Q〜Q、キャリーPF0から、それぞれR3(3−(k+1))+k 〜R3(3−(k+1))+k 、Ck+1 3(3−(k+1))+kを出力する。
図示しない2つ目の“4 bit mod 13”回路ブロック<2>は、入力バイナリA、及びA〜AにそれぞれキャリーC 3(3−(k+1))+k−1、及び1つ目の“4 bit mod 7”回路ブロック<1>の出力R3(3−(k+1))+k 〜R3((3−(k+1))+k を入力し、出力Q〜Q、及びキャリーPF0から、それぞれR3(3−(k+1))+k−1 〜R3(3−(k+1))+k−1 、及びCk+1 3(3−(k+1))+k−1を出力する。
以降、図54中(A)に示すように、同様の入出力を持つ“4 bit mod 7”回路ブロックが、合計3(3−(k+1))+k+1個並び、各“4 bit mod 7”回路ブロックから出力されるキャリーCk+1 〜Ck+1 3(3−(k+1))+kが、次のステップである第k+1ステップの入力となる。
このように、バイナリから7進数への変換は、図54中(B)に示す模式図のように、キャリーCの最上位ビット側から順次実行される。
図54中(A)は、第kステップに関係する回路構成であるが、各ステップを時分割で処理することで、図54中(A)に示す回路構成を各ステップで使い回すことができる。この場合、各“4 bit mod 7”回路ブロックの入出力を単純なオン/オフによって制御可能にするために、“4 bit mod 7”回路ブロックの必要数が最大となる第0ステップの回路構成に、更に、6個の“4 bit mod 7”回路ブロックが付加される。
この様に構成された13個の“4 bit mod 7”回路ブロックからなる回路を図55に示す。以下において、この回路を“X to p”回路ブロックと呼ぶ。
図56に示すように、この“X to p”回路ブロックの入力は、C 〜C 14の合計15個となっている。また、出力は、3個おきの“4 bit mod 7”回路ブロックから出力される4個の3ビットのバイナリR 〜R 、R 〜R 、R 〜R 、R 〜R と、次のステップの入力となる13個のキャリーC 〜C 12となる。
次に、図53に示した“3 res”回路ブロックである“4 bit mod 7”回路ブロックについて具体的に説明する。
図57は、“4 bit mod 7”回路ブロックの回路記号を示す図である。“4 bit mod 7”回路ブロックは、4ビットのバイナリA〜Aを入力し、3ビットのバイナリQ〜Q及びキャリーPF0を出力する。
“4 bit mod 7”回路ブロックは、入力バイナリAの素数7による剰余Qを出力すると共に、入力バイナリAが7以上の場合にPF0から‘1’、7未満の場合にPF0から‘0’を出力する。
ここで、h=3、p=7の場合、バイナリA、バイナリQ、素数pの間には、数2に示す関係が成立する。
[数2]

図58は、“4 bit mod 7”回路ブロックのブロック図である。
“4 bit mod 7”回路ブロックは、PF0生成部U1及び3個の半加算器(Half adder)HA1〜HA3を有する。
PF0生成部U1は、所定の電圧が供給されるVcc端子と、接地電圧が供給されるVss端子との間に、直列に接続されたPMOSトランジスタQP1及び、QP2及びNMOSトランジスタQN1〜QN3を有する。これらトランジスタQP1、QP2、QN1、QN2、及びQN3は、それぞれA、A、A、A、及びAで制御される。
また、PF0生成部U1は、その他に、2個のPMOSトランジスタQP2、QP3、NMOSトランジスタQN4、及びインバータIV1を有する。
トランジスタQP3、QP4は、それぞれ、トランジスタQP2のソース及びドレイン間に並列に接続されている。トランジスタQN4は、トランジスタQN1のソース及びトランジスタQN3のドレイン(Vss端子)間に並列に接続されている。これらトランジスタQP3、QP4及びQN4は、それぞれA、A及びAで制御される。
インバータIV1は、入力がトランジスタQN1及びQN4のソースに接続されている。このインバータIV1の出力がキャリーPF0になる。
半加算器HA1は、入力がA及びPF0、出力がQ、桁上げ出力がC0となっている。半加算器HA2は、入力がC1及びA、出力がQ、桁上げ出力がC1となっている。半加算器HA3は、入力がC1及びA、出力がQとなっている。
以上の構成によって、PF0生成部U1は、“4 bit mod 7”回路ブロックに入力されるバイナリAが7以上か否かを判断し、その結果をPF0から出力する。バイナリAが7以上の場合、7をバイナリAから引くために、半加算器HA1〜HA3によって、4ビットバイナリの7の補数である1をバイナリAに加えている。
次に、7進数変換部201のコア部分となる“p−adic”回路ブロックについて説明する。
図59は、“p−adic”回路ブロックの回路記号を示す図である。
“p−adic”回路ブロックは、図59に示すように、B〜B、I〜I15を入力し、r〜r15を出力する。
図60は、“p−adic”回路ブロックのブロック図である。“p−adic”回路ブロックは、1ステップの回路構成を“X to p”回路ブロックとして、これに“X to p”回路ブロックの入出力を制御する制御スイッチSWが付加された構成となっている。
具体的には、入力I〜I、I〜I、・・・、I12〜I14は、それぞれ、制御スイッチSW1を介してC 〜C 、C 〜C 、・・・C 12〜C 14として“X to p”回路ブロックに入力される。これら制御スイッチSW1は、それぞれ入力B〜Bによって制御される。
〜C 14が入力された“X to p”回路ブロックは、前述の通り、R 〜R 、C 〜C 12を出力する。
“X to p”回路ブロックから出力されたC 〜C 12は、制御スイッチSW2を介して“p−adic”回路ブロックの出力であるr〜r15となる。これら制御スイッチSW2は、入力B〜Bによって制御される。したがって、これら制御スイッチSW2は、B=‘0’の場合、C 〜C 12をそのままr〜r15として出力する。
また、“X to p”回路ブロックから出力されたR 〜R は、制御スイッチSW3を介して、“p−adic”回路ブロックの出力であるr〜r11となる。これら制御スイッチSW3は、それぞれB∧/B〜B∧/Bで制御される。これによって、例えば、R 及びr間にある制御スイッチSW3は、B=‘1’、B=‘0’の場合のみ、R をそのままrとして出力する。
制御スイッチSWを制御するB〜Bは、タイミング信号であり、順次立ち上がる信号である。これに合わせて入力Iのパスが下位ビット側から3ビットずつ開通し、出力rのパスが出力Rのパスと切り替わる。
7進数の各桁の係数Aに相当するRは、次のステップの計算過程に入るまでに、そのステップの結果を出力するため、隣接するタイミング信号Bと論理演算した信号によってオン/オフ制御される制御スイッチSW3を介して後述する外部の“D−r”レジスタに出力される。
次に、以上説明した回路をまとめて構成された7進数変換部201について説明する。
図61は、7進数変換部201のブロック図である。7進数変換回路部201は、“p−adic”回路ブロックに“D−r”レジスタが結合されて構成される。
“D−r”レジスタは、図61に示すように、タイミング信号B及びクロックclkで制御されるレジスタで、入力r〜r15、D〜D15、出力I〜I15を持つ。
図62は、“D−r”レジスタの回路図である。
“D−r”レジスタは、ビット毎に2つのインバータからなるフリップフロップFFを有している。このフリップフロップFFには、制御スイッチSW1を介してD(j=0〜15)が入力され、制御スイッチSW2を介してrが入力される。一方、フリップフロップFFの出力側には、制御スイッチSW3を介してインバータIV1が接続されている。このインバータIV1の出力がIとなる。
制御スイッチSW1〜SW3は、タイミング信号B及びクロックclkによって制御される。具体的には、制御スイッチSW1は/clk∧/B=‘1’の場合、制御スイッチSW2は/clk∧B=‘1’の場合、制御スイッチSW3はclk=‘1’の場合にそれぞれオンする。
なお、“D−r”レジスタのデータ入力にないD10〜D15は‘0’とする。
“D−r”レジスタの初期状態は、バイナリD〜D15が設定され、残りは‘0’で埋められた状態となっている。以後、Bが立ち上がるとclkの立ち下がりに同期してデータrを取り込み、clkの立ち上がりに同期して取り込んだrをIとして出力する。
この“D−r”レジスタは、“p−adic”回路ブロックと結合してタイミング信号B毎に計算のステップを進める。各クロックの変化の様子は図63に示す。タイミング信号Bは、図63に示すように、クロックclkの立ち上がりの度に、B、B、B、・・・と順番に‘L’から‘H’に立ち上がっていく信号である。
各計算ステップで7進数の各桁Aが下位側から出力rとして得られ、これをタイミング信号Bの後半のIの取り込みと同じタイミングで保持していく。
全計算ステップが終了すると“D−r”レジスタには、7進数のデータDの各桁の係数aをバイナリに変換した場合の各桁の係数A が保持されている。
なお、p=7の場合、計算ステップの数は6、“p−adic”回路ブロックに含まれる“4 bit mod 7”回路ブロックの数は13となる。
<2進数変換部>
図64は、「p−adic Zp world」の4桁の7進数A(a,a,a,a)を「binary world」の3桁の2進数D(d,d,d,d)に変換する変換回路の構成を模式的に示した図である。
なお、図64中“3 add 7”と示した四角は、入力された3ビットのデータに対して、入力されたキャリーCに応じて7を加え、4ビットのバイナリを出力する演算回路である。以下、この回路を“3 add 7”回路ブロックと呼ぶ。
始めに、第0ステップ(図64中S0)では、7進数の2次の桁のバイナリ表示に対して3次の桁のバイナリ表示をキャリーすなわち7の個数のバイナリ表現として前述の計算を行う。これによって、7の個数としてキャリーC 〜C の6ビットを得る。このキャリーC 〜C が次の第1ステップの入力(図64中S1)となる。
続いて、第1ステップでは、7進数の1次の桁のバイナリ表示に対して、第0ステップで得られたキャリーC 〜C を7の個数のバイナリ表現として前述の計算を行う。これによって、7の個数としてキャリーC 〜C の9ビットを得る。このキャリーC 〜C が次の第2ステップ(図64中S2)の入力となる。
続いて、第2ステップでは、7進数の0次の桁のバイナリ表示に対して、第1ステップで得られたキャリーC 〜C を7の個数のバイナリ表現として前述の計算を行う。これによって、7の個数としてキャリーC 〜C 11の12ビットを得る。但し、上位の3ビットはDの7進数と2進数との設定からゼロとなる。これらのキャリーを3ビット毎にまとめるとDのバイナリ表現D(d,d,d,d)を得ることができる。
次に、2進数変換部209の構成について説明する。
図65は、2進数変換部209の第kステップの回路構成を、“4 bit add 7”回路ブロックを用いて構成したものである。ここで、“4 bit add 7”回路ブロックは、3ビットのバイナリデータである入力Bに素数7を加えてその結果をバイナリデータQとして出力する回路である。詳細については後述する。
7進数表現のj次の桁の係数aは、3ビットのバイナリで表現できるが、このバイナリ表現の係数Aを他の桁の係数aと共通の表現とするめに、数3に示すようなサブインデックスを用いる。
[数3]

また、第kステップの演算の入力である前ステップ(第k−1ステップ)のキャリーはC 〜C 3(k+1)−1であり、サブインデックスが2の累乗の指数の2進数としての係数となっていて、この2進数が表現する数がデータに含まれる73−kの個数となる。
第kステップでは、図65中(A)に示すように、3(k+1)個の“4 bit add 7”回路ブロックで処理される。各“4 bit add 7”回路ブロックには、1個のキャリー(carry)と、7進数表現の1桁分の係数を表示する3個のバイナリが入力される。
1つ目の“4 bit add 7”回路ブロック<1>は、carry、入力B〜Bに、それぞれC 、Q−1 〜Q−1 が入力され、Q、Q〜QからそれぞれCk+1 、Q 〜Q を出力する。
図示しない2つ目の“4 bit add 7”回路ブロック<2>は、carry、入力B〜Bに、それぞれC 、Q 〜Q が入力され、Q、Q〜QからそれぞれCk+1 、Q 〜Q を出力する。
以降、図65中(A)に示すように、同様の入出力を持つ“4 bit add 7”回路ブロックが、合計3(k+1)個並び、各“4 bit add 7”回路ブロックから出力されるキャリーCk+1 〜Ck+1 3(k+2)−1(=Ck+1 3(k+1)+2)が、次にステップである第k+1ステップの入力となる。
このように、7進数からバイナリへの変換は、図65中(B)に示す模式図のように、キャリーCの最下位ビット側から順次実行される。
図65中(A)は、上記の通り、第kステップに関係する回路構成であるが、各ステップを時分割で処理することで、図65中(A)に示す回路構成を各ステップで使い回すことができる。この場合、各“4 bit add 7”回路ブロックの入出力を単純なオン/オフによって制御可能にするために、図66に示すように、k=0とした場合の3個の“4 bit add 7”回路ブロックを最小構成の回路ブロックとする。
この様に構成された3個の“4 bit add 7”回路ブロックからなる回路を“a to X”回路ブロックと呼ぶ。
図67に示すように、この“a to X”回路ブロックの入力は、Q−1 〜Q−1 とC 〜C の6個となり、出力はQ 〜Q とC 〜C の6個となる。
次に、図64に示した“3 add 7”回路ブロックである“4 bit add 7”回路ブロックについて具体的に説明する。
図68は、“4 bit add 7”回路ブロックの回路記号である。“4 bit add 7”回路ブロックは、3ビットのバイナリB〜Bと1ビットのキャリー(carry)を入力し、4ビットのバイナリQ〜Qを出力する。この“4 bit add 7”回路ブロックは、入力Bに対し、carryが‘1’なら素数7を加え、その結果をQとして出力する。
ここで、h=3、p=7の場合、バイナリB、バイナリQの間には、数4に示す関係が成立する。
[数4]

図69は、“4 bit add 7”回路ブロックのブロック図である。
“4 bit add 7”回路ブロックは、半加算器HA1、2個の全加算器FA1及びFA2を有する。
半加算器HA1は、入力がB及びcarry、出力がQ、桁上げ出力がC0となっている。全加算器FA1は、入力がB及びcarry、桁上げ入力がC0、出力がC1、桁上げ出力がQとなっている。全加算器FA2は、入力がB及びcarry、桁上げ入力がC1、出力がQ、桁上げ出力がQとなっている。
以上の構成によって、“4 bit add 7”回路ブロックは、carry=‘1’なら、入力バイナリBに素数7を加える。
次に、前述の“a to X”回路ブロックを用いて、7進数の次数を1つ下げるための1ステップ分の回路を構成する。以下では、この回路を“p to X”回路ブロックと呼ぶ。この“p to X”回路ブロックは、全計算ステップに共通に使用することができる。
図70は、“p to X”回路ブロックの回路記号を示す図である。“p to X”回路ブロックはタイミング信号B及びBで制御され、入力であるQ−1 〜Q 、C 〜C から、C 〜C 11を出力する。
図71は、“p to X”回路ブロックのブロック図である。
“p to X”回路ブロックは、3個の“a to X”回路ブロックからなる。
1個目の“a to X”回路ブロック<1>は、“p to X”回路ブロックの入力の一部であるQ−1 〜Q−1 、及びC 〜C を入力し、Q´ 〜Q´ 、及び“p to X”回路ブロックの出力の一部であるC 〜C を出力する。
2個目の“a to X”回路ブロック<2>は、Q 〜Q 、及び“p to X”回路ブロックの入力の一部であるC 〜C を入力し、Q´ 〜Q´ 、及び“p to X”回路ブロックの出力の一部であるC 〜C を出力する。入力のうち、Q 〜Q は、1個目の“a to X”回路ブロック<1>の出力Q´ 〜Q´ がタイミング信号Bで制御される制御スイッチSW1を介して入力される信号である。
3個目の“a to X”回路ブロック<3>は、Q 〜Q 、及び“p to X”回路ブロックの入力の一部であるC 〜C を入力し、C 〜C 11、及び“p to X”回路ブロックの出力の一部であるC 〜C を出力する。入力のうち、Q 〜Q は、2個目の“a to X”回路ブロック<2>の出力Q´ 〜Q´ がタイミング信号Bで制御される制御スイッチSW2を介して入力される信号である。
このように、“a to X”回路ブロックの入出力間を制御スイッチSWで接続するのは、計算ステップ毎に入力の接続が外部入力と内部入力で切り替わるためであり、外部入力の場合に内部回路の出力が干渉しないようにするためである。
図71の回路構成の場合、タイミング信号Bだけが‘1’のタイミングにおいて、全ての制御スイッチSWがオフされ、図72中右から1番目の“a to X”回路ブロック<3>だけが活性化する。これが第0ステップに相当する。
続いて、タイミング信号Bも‘1’になると、図72中右から2番目の“a to X”回路ブロック<2>までが活性化する。これが第1ステップに相当する。
最後に、タイミング信号Bも‘1’になると、図72中右から3番目の“a to X”回路ブロック<1>までが活性化する。これが第2ステップに相当する。
このように、図71に示す構成の場合、タイミング信号Bで各ステップに必要な“p to X”回路ブロックの構成を作ることができる。
次に、2進数変換部209のコア部分となる“binary”回路ブロックについて説明する。
図72は、“binary”回路ブロックの回路記号である。
“binary”回路ブロックは、図72に示すように、B〜B、I〜I11を入力し、r〜r11を出力する。
図73は、“binary”回路ブロックのブロック図である。“binary”回路ブロックは、1ステップの回路構成を“p to X”回路ブロックとして、これに“p to X”回路ブロックの入出力を制御する制御スイッチSWが付加された構成となっている。
具体的には、入力I〜I11は、それぞれ、制御スイッチSW1を介してC 〜C として“p to X”回路ブロックに入力される。これら制御スイッチSW1は、それぞれタイミング信号B〜Bによって制御される。したがって、制御スイッチSW1は、B=‘1’の場合、I〜I11がそのままC 〜C として出力され、B=‘0’の場合、入力に依らず出力は‘0’となる。
また、入力I〜Iは、それぞれ、制御スイッチSW2を介してQ−1 〜Q として“p to X”回路ブロックに入力される。これら制御スイッチSW2は、それぞれ/B∧B〜/B∧Bによって制御される。したがって、例えば、I及びQ−1 間にある制御スイッチSW2は、B=‘0’、B=‘1’の場合のみ、IをそのままQ−1 として出力する。
“p to X”回路ブロックから出力されたC 〜C 11は、制御スイッチSW3を介して、“binary”回路ブロックの出力であるr〜r11となる。これら制御スイッチSW3は、タイミング信号B〜Bによって制御される。したがって、制御スイッチSW3は、B=‘1’の場合、C 〜C 11をそのままr〜r11として出力する。
以上の回路構成によって、“p to X”回路ブロックは、入力と出力のビット幅を3ビットずつ順次増やしながら各計算ステップに対応する。各計算ステップで7進数の桁の数Aを順次上位桁から取り込み、全ての計算ステップが終了したときに得られるのがデータのバイナリ表現となる。
前述のように、タイミング信号B〜Bは、順次立ち上がる信号である。これに合わせて入力Iと出力rへのパスが上位ビット側から3ビットずつ導通していく。
7進数の各桁の数Aは、後述する外部の“A−r”レジスタに初期設定されて、次の計算ステップに入るまでに、選択的にパスが切り替わるように、隣接するタイミング信号Bでオン/オフ制御される制御スイッチSW3を介して“A−r”レジスタに出力される。
次に、以上説明した回路をまとめて構成された2進数変換部209について説明する。
図74は、2進数変換部209のブロック図である。2進数変換部209は、“binary”回路ブロックに“A−r”レジスタが結合されて構成される。
“A−r”レジスタは、図74に示すように、タイミング信号B及びクロックclkで制御されるレジスタで、入力r〜r11、A〜A11、出力I〜I11を持つ。
図75は、“A−r”レジスタの回路図である。
“A−r”レジスタは、ビット毎に2つのインバータからなるフリップフロップFFを有している。このフリップフロップFFには、制御スイッチSW1を介してA(j=0〜11)が入力され、制御スイッチSW2を介してrが入力される。一方、フリップフロップFFの出力側には、制御スイッチSW3を介してインバータIV1が接続されている。このインバータIV1の出力がIとなる。
制御スイッチSW1〜SW3はタイミング信号B及びクロックclkによって制御される。具体的には、制御スイッチSW1は/clk∧/B=‘1’の場合、制御スイッチSW2は/clk∧B=‘1’の場合、制御スイッチSW3はclk=‘1’の場合にそれぞれオンする。
“A−r”レジスタの初期状態は、7進数の桁A〜A11となっている。
以後、タイミング信号Bが立ち上がるとクロックclkの立ち下がりに同期して取り込んだrを、クロックclkの立ち上がりに同期してIとして出力する。
この“A−r”レジスタは“binary”回路ブロックと結合してタイミング信号B毎に計算ステップを進める。各クロックの変化の様子は、図63と同様である。クロックclkからckが作られ、更にタイミング信号Bが作られる。
全計算ステップが終了すると“A−r”レジスタには、入力である7進数Aのバイナリ表現Dが保持される。
以上の構成による2進数変換部209によれば、計算ステップの数は4で、“binary”回路ブロックに含まれる“4 bit add 7”回路ブロックの数は9となる。
<ECCシステムの概要>
実施形態のメモリコントローラ200は、既存のメモリデバイス100が記憶するデータの信頼性を確保するためにリー・メトリック・コードを用いたECCシステムを搭載している。
このECCシステムは、エラー検出・訂正に必要な計算をより簡便するため、リー・メトリック・コードを用いている。そこで、ここではリー・メトリック・コードについて簡単に説明する。
コードを表すシンボルcは、数5に示す整数となる。
[数5]


これら整数の計量をリー・メトリックとして|c|で表わし、全てのリー・メトリック|c|はp/2以下の整数で表されて、リー・メトリック|c|の定義は数6のようになる。
[数6]

コードCは、n=p−1個のシンボルcの並びと考えられるため、C=(c,c,…,c)で表すことができる。コードCの計量w(C)は、数9のように各シンボルcのリー・メトリック|c|の和として定義される。
[数7]

また、コード間の距離はコードに対応する各シンボルの差のリー・メトリックの和で定義される。ここで2つのシンボルcとyの差(リー距離)d(c,y)は数8のようになる。
[数8]

さらに、コードCの最小リー距離は、数9に示すようにコードCの計量w(C)の最小の計量で定義される。
[数9]

このとき、リー・メトリック・コードは、数12に示す生成行列G及びシンドローム行列Hを持ったコード間の最小距離が2γであり、且つ、γ−1以下のリー・メトリックのエラー訂正が可能なコードである。
[数10]


ここで、コードCの語長をn、データの語長をkとすると、γ=n−kであり、γはコードCに含まれる冗長語長を表している。
この様に構成されるリー・メトリック・コードを生成するために入力変換されたデータをk桁のp進数で表す。このp進数の各桁の数はZpの要素であるから、これをリー・メトリック・コードのデータ語Xとして、生成行列Gから演算C=XGとしてコード表現が得られる。得られたコード語をメモリに記憶する。記憶したZpの数に生じたエラーの情報は、メモリから読み出したリー・メトリック・コードのデータ語Yとして、演算S=YH(HはHの転置行列)からシンドロームを得て、エラーの位置と量が計算できエラーが訂正できる。
次に、実施形態で扱うp=7、γ=ε+1、ε=1,2の場合のECCシステムで用いる一般的な関係式などをまとめて説明しておく。
メモリデバイス100に記録されたコードCのバイナリデータは、3ビットからなるコード語シンボルが6個集まったものであり、ビット毎に様々な擾乱を受けて変化を起こす。そこで、コードYからコードCを復元するのがデコードである。このデコードに先立ち、始めにシンドロームを求める。
シンドロームSはシンドローム行列Hを利用したS=YHの演算をして数11に示す要素S、S、Sとして求まる。
[数11]


ここで、HはHの転置行列である。生成行列Gとシンドローム行列Hの構成がGH=0(mod 7)となるように構成されていることにより、Y=C+EとおくとS=EHとなる。またE=(e,e,・・・,e)とすると、シンドロームSは各コード語シンボルのエラーの総和になっていることが分かる。これらのシンドロームSが唯一のエラーの情報であり、これらシンドロームSを基にして以下のように、正しいコードCの復元を行う。
続いて、デコードの原理を説明する。n=p−1=6個のエラーのシンボルを二つの組JとJに、数12のように分類する。
[数12]


すなわち、シンボルのエラー量がe<7/2の場合、コードシンボルcの位置jの集まりであるJと、シンボルのエラー量がe>7/2の場合のコードシンボルcの位置jの集まりであるJとに分類される。ガロア体GF(7)上の多項式Λ(x)、V(x)をこれらの組を基に数13のように構成する。
[数13]

このように、多項式Λ(x)はJのエラーコード語シンボルの位置jの逆数を根として持ち、そのコード語シンボルのリー・メトリックeを根の多重度として持つ多項式となる。一方、多項式V(x)はJのエラーコード語シンボルの位置jの逆数を根として持ち、そのコード語シンボルのリー・メトリック7−eを根の多重度として持つ多項式となる。デコードは、最終的にこれらの多項式をシンドロームSの情報のみから構成して解くことによってエラーの情報を得る過程となる。つまり、これら多項式Λ(x)、V(x)とシンドロームSとの関係を求める必要がある。
続いて、数14に示すように各シンドロームSをその次数の係数に持つ級数多項式で構成すると、シンボルのエラー量e、位置jとその値を持つ有理多項式で表される。
[数14]


数14から、多項式Λ(x)、V(x)、シンドロームS(x)の間には数15に示す関係式が成立する。
[数15]

続いて、数15に示す関係式を利用して、シンドロームS(x)から多項式Λ(x)、V(x)を求める。
シンドロームS(x)から、数16に示す次数がγ−1以下の多項式Ψ(x)を求める。
[数16]


多項式Ψ(x)の展開式において、数16に示す式の両辺の同次次数の係数の比較から、係数ψは、シンドロームSと既に求まっている係数ψj−1とを用いて求めることができる。この多項式Ψ(x)は、Λ(x)/V(x)に等価な多項式である。
[数17]

ε=1の場合、シンドロームS=(S、S)から多項式Ψ(x)の係数ψ及びψを求めると数18のようになる。
[数18]


そして、数18から多項式Ψ(x)=1+ψxとΨ(x)=1−ψxを作り、S=1の場合には多項式をλ(x)=Ψ(x)とν(x)=1とし、S=−1の場合には多項式をλ(x)=1とν(x)=Ψ*(x)とする。これによって数17に示すキー条件を満たすことができる。
ε=2の場合、xとΨ(x)に対してユークリッド反復法で定数倍を除いて求めることができる。その際、シンドロームS=(S,S,S)から多項式Ψ(x)の係数ψ〜ψを求めると数19のようになる。
[数19]


そして、ユークリッド反復法の停止条件にSを用いると、数19からΛ(x)とV(x)が求まる。即ち、(S,Ψ(x))のユークリッドの反復法で求めることができる。
以上の通り、ε=1の場合には、エラー探索多項式が1次であり、その解はシンドロームSから直接求めることができた。しかし、ε=2の場合、ユークリッドの反復法で得られるエラー探索多項式の次数は最大でも2次であるため、その解を、根と根の多重度を求めるハッセ(Hasse)微分多項式から求める。
エラー探索多項式をφ(x)で表して、多項式φ(x)をハッセ微分多項式の表現と係数の関係を式で示すと数20のようになる。
[数20]

ユークリッドの反復法で得られたエラー探索多項式であるλ(x)とν(x)にこの関係を適用する。
探索する解の範囲はZp(p=7)であり、探索するのは1〜6についてである。したがって、mod 7を考えると、数21のような6つのφ及びφ間の関係式として簡単に得られる。
[数21]

得られたエラー探索多項式の係数φ及びφを代入する。そして、φ≠0の場合、2根でφ(1)〜φ(6)で0になるものがZpの根となり、根が1つしかなければ、それは重根と言うことになる。一方、φ=0の場合、エラーは一つで(φ−1が根となる。このように、Zpの要素における探索は、数21で示した6つの式について、0に等しいか否かで判断すれば良い。
次に、図76及び図77を用いてメモリコントローラ200におけるデータ処理の手順について詳細に説明する。
以下では、「p−adic Zp world」でのECCの演算について、Zpデータとしてメモリシステム100に入力されたデータをエンコードする手順と、メモリシステム100から読み出されたコードYをデコードし、データAを得るまでの手順についてまとめる。
エンコードの手順は以下のようになる。
始めに、入力されたデータDを、7進数変換部201によって数22に示す7進数表現の4桁のデータ語D(h)に変換する(図76中S1)。
[数22]

続いて、このデータDに生成行列Gを乗じてコードCの6個のコード語成分c〜cを得る(図76中S2)。各コード語成分の値は数23に示す通りである。
[数23]

最後に、コードCのコード語成分cをメモリデバイス100のメモリセルMCに記憶する(図76中S3)。
ここで、リー・メトリック・コードCは、メモリデバイス100に記憶されて、エラーを含むコードYとなったとする。
データの読み出しは、始めに、メモリシステム100からコードYを読み出す(図77中S4)。コードYは数24に示す構成となっている。ここで、eは、コードYの位置jにあるコード語シンボルのエラーのリー・メトリックを示す。
[数24]

メモリコントローラ200は、コードYに対して、ECCによるエラー訂正を施した上でバイナリデータを生成し外部に出力する。これらデータ読み出しの際のデータ処理の手順は以下の通りである。なお、ここで用いるECCシステムは、エラー訂正能力をε=1とするものである。
(手順1) コードYから数25に示す計算式に基づいてシンドロームS=(S,S)を計算する(図77中S5)。
[数25]

=Σeとなるため、|S|>1の場合、エラーのリー・メトリック総量が2以上となることから、コードYのエラー訂正が不可能と判断し、解無しとしてエラー探索を中止する(図77中S6、S7)。一方、|S|≦1の場合、手順2に処理を進める(図77中S8)。
(手順2) 訂正可能なコード語成分の数の上限であるε=1に対して、まず手順1で求めたシンドロームS及びSから数26に示す計算式に基づいて解探索多項式Ψ(x)の係数ψ及びψを計算する(図77中S8)。
[数26]


続いて、Ψ(x)=1−Sx、Ψ*(x)=1+Sxとおく。この場合、キー条件を満たす候補は、S=1の場合、λ(x)=Ψ(x)、ν(x)=1となり、S=−1の場合、λ(x)=1、ν(x)=Ψ(x)となる(図77中S9)。
(手順3) 手順2で求めた多項式λ(x)又はν(x)から、その根などを求める。得られた多項式λ(x)及びν(x)は1次の式であるため、解は、S=1の場合、r=S −1、t=S、e=1となり、S=−1の場合、r=−S −1、t=−S、e=−1となる(図77中S10)。
(手順4) 手順3で得られた根からエラー成分のエラー量を求める。エラーのあるコード語成分の番号は、t=r−1=S、e=Sであり、c=y−eから正しいコードCを得ることができる(図77中S11)。
(手順5) コードC及びコードAと生成行列Gの関係AG=Cなる多元連立一次方程式を介して、4個のZpの要素a〜aを求める。得られた要素a〜aから4桁の7進数A=(a,a,a,a)を求める(図77中S12)。
以上で、メモリコントローラ200における「p−adic Zp world」内でのデータ処理は終了したため、続いて「p−adic Zp world」の出口においてデータAをバイナリデータに戻す変換を行う。データAを4桁の7進数表現から3桁の2進数表現に変換し、3桁として各桁の数字をバイナリ表示する。これがメモリシステムに入力されたバイナリデータDとなる。
以上でデータの復元が完了する。
<デコード部>
ここらからは、上記手順を実現する具体的な回路の例について説明する。
先ず、Zpの積を求める計算回路について説明する。以下においてこの計算回路を“X Zp”回路ブロックと呼ぶ。
図78は、“X Zp”回路ブロックの回路記号を示す図、図79中(A)は、“X Zp”回路ブロックのブロック図、図79中(B)及び(C)は“X Zp”回路ブロックによる演算処理を模式的に示した図である。
“X Zp”回路ブロックは、大別して、前半の計算ステップ群を処理する回路と、後半の計算ステップ群を処理する回路とからなる。
前半の計算ステップ群を処理する回路は、ANDゲートG1と2個の“3 bit AD mod 7”回路ブロック<1>及び<2>で構成される。
ANDゲートG1は、掛けられる数aの第i(i=0〜2)ビットと、掛ける数bの第j(j=0〜2)ビットとの論理積を取り、これをMijとして出力する。ここで、数a及びbは、数27のように表わす。
[数27]

“3 bit AD mod 7”回路ブロックは、2つのZpの数に対して7を法とする和を求める回路である。“3 bit AD mod 7”回路ブロックは、A〜A及びB〜Bを入力し、Q〜Qを出力する。この“3 bit AD mod 7”回路ブロックの具体的構成については、後述する。
1つ目の“3 bit AD mod 7”回路ブロック<1>は、A、A、A及びB〜Bに、それぞれM10、M20、‘0’及びM01〜M21を入力し、Q〜QからQ 〜Q を出力する。
2つ目の“3 bit AD mod 7”回路ブロック<2>は、A、A、A及びB〜Bに、それぞれ“3 bit AD mod 7”回路ブロック<1>の出力であるQ 、Q 、‘0’及びM02〜M22を入力し、Q〜QからQ 〜Q を出力する。
以上のように、前半の計算ステップ群を処理する回路は、“3 bit ADmod 7”回路ブロック<1>及び<2>の出力と入力とを順次接続して構成されている。
後半の計算ステップ群を処理する回路は、2個の“4 bit mod 7”回路ブロック<1>及び<2>で構成されている。この“4 bit mod 7”回路ブロック<1>及び<2>は、図57及び図59に示す回路である。
1つ目の“4 bit mod 7”回路ブロック<1>は、A及びA〜Aに、それぞれQ 及びQ 〜Q を入力し、Q〜QからQ 〜Q を出力する。
2つ目の“4 bit mod 7”回路ブロック<2>は、A及びA〜Aに、それぞれM00及び“4 bit mod 7”回路ブロック<1>の出力であるQ 〜Q を入力し、Q〜QからQ 〜Q を出力する。
以上のように、後半の計算ステップ群を処理する回路は、“4 bit mod 7”回路ブロック<1>及び<2>の出力と入力とを順次接続して構成されている。
全ての回路はクロック非同期で動作し、入力Mijを与えることによって出力Qが確定する。
以上のように、“X Zp”回路ブロックを構成する回路ブロック数は4個となる。
次に、図79に示す“3 bit AD mod 7”回路ブロックについて説明する。
図80は、“3 bit AD mod 7”回路ブロックの回路記号を示す図である。
“3 bit AD mod 7”回路ブロックは、A及びBから入力される数a及びbの和を求めて、得られた和の素数7による剰余をQから出力する。なお、入力の和をZpの数として扱わないで3ビットのバイナリ数として扱う場合が必要となるので、ブロック内の信号の変更で実現できる“3 bit AD(8) mod 7”回路ブロックとしても回路記号を図80に示した。
h=3、p=7の場合、数a、b、剰余のバイナリ表示Qの間には、数28に示す関係が成立する。
[数28]

図81は、“3 bit AD mod 7”回路ブロック及び“3 bit AD(8) mod 7”回路ブロックのブロック図である。
“3 bit AD mod 7”及び“3 bit AD(8) mod 7”回路ブロックは、PF0生成部U1、4個の半加算器HA1〜HA4、2個の全加算器FA1及びFA2を有する。
PF0生成部U1は、所定の電圧が供給されるVcc端子と、Vss端子との間に、直列に接続されたPMOSトランジスタQP0、QP1及びNMOSトランジスタQN1〜QN3を有する。これらトランジスタQP0、QP1、QN1、QN2及びQN3は、それぞれC2、S0、S0、S1並びにS2で制御される。
また、PF0生成部U1は、その他に、2個のPMOSトランジスタQP0、QP3、NMOSトランジスタQN3及びインバータIV1を有する。
トランジスタQP2及びQP3は、それぞれトランジスタQP1のソース及びドレイン間に並列に接続されている。トランジスタQN3は、トランジスタQN0のソース及びトランジスタQN2のドレイン間に並列に接続されている。これらトランジスタQP2、QP3及びQN3は、それぞれS1、S2及びC2で制御される。また、インバータIV1は、入力がトランジスタQN1及びQN3のソースに接続されている。このインバータIV1の出力がキャリーPF0になる。以上でC2に替わりVssが入力される場合が“3 bit AD(8) mod 7”回路ブロックとなる。
半加算器HA1は、入力がA及びB、出力がS0、桁上げ出力がC0´となっている。全加算器FA1は、入力がA及びB、桁上げ入力がC0´、出力がS1、桁上げ出力がC1´となっている。全加算器FA2は、入力がA及びB、桁上げ入力がC1´、出力がS2、桁上げ出力がC2´となっている。半加算器HA2は、入力がS0及びPF0、出力がQ、桁上げ出力がC0となっている。半加算器HA3は、入力がC0及びS1、出力がQ、桁上げ出力がC1となっている。半加算器HA4は、入力がC1及びS2、出力がQとなっている。
以上の構成によって、PF0生成部U1は、“3 bit AD mod 7”回路ブロックに入力されるバイナリA及びBの和が13以上か否かの検出を行う。なお、C2をVssに替えることで、8を法としたA及びBの和に対して7以上の検出をすることができる。このオプションの回路構成は、Zpの要素の減算を補数の加算で行うときに必要となる演算回路であり、後に“3 bit AD(8) mod 7”回路ブロックとして使用する。
<Zpの要素間の対応を求めるデコーダ>
素数p=7とした場合、Zpの要素の数は少ないため、特殊な演算を計算回路で求めるよりも、予め作成した要素の対応表を用いてデコーダを生成した方が良い場合もある。そこで、Zpの要素の対応表の一例を示しておく。
図82は、Zpの要素の累乗を求める対応表となる。Zpの要素の累乗はしばしば求める必要があるため、その対応表を用意しておくと有用である。p=7の場合、Zpの要素j(j=2〜6)に対してi乗(i=2〜5)の演算結果を用意すれば良いため、対応表に記録すべき値は20個となる。図82に示す対応表を用いた場合、ロジック回路によって3ビットのバイナリ表示のデコーダを用意するだけで、Zpの要素の累乗を得ることができる。
図83は、Zpの要素の逆元を求める対応表となる。Zpの要素jから逆元j−1を求めるには、j・j−1≡1(mod 7)の関係から求めた要素j及びその逆元j−1の対応表を用意すれば良い。図83に示す対応表を用いた場合、ロジック回路によって3ビットのバイナリ表示の変換デコーダを用意するだけで、Zpの要素の逆元を得ることができる。
<エンコーダ部>
次に、エンコード部202の回路構成例を説明する。
図84中(A)は、Zpのコード語Aをリー・メトリック・コードCに変換する回路のブロック図であり、図84中(B)は、図84中(A)に示す回路を制御する2重のクロックck及びclを示す図である。
図84中(B)に示すように、クロックclは、ckの立ち上がりに遅れて立ち上がるパルスであり、クロックck毎にcl〜clの合計4個のクロックclが順次立ち上がる。そして、clが立ち上がると、これに遅れて次のクロックckが立ち上がる。同様の波形がckからckまで繰り返される。
これらクロックck、clのうち、ckは“(j) register”回路ブロック及び“Ri(1〜6)”レジスタ部を制御し、clは、“(j) register”回路ブロック及び“Ro(0〜8)”レジスタ部を制御する。
“Ri(1〜6)”レジスタ部は、コード語Cの成分cを記憶するレジスタで、合計6個の数を記憶することができる。この“Ri(1〜6)”レジスタ部は、ckの立ち上がりのタイミングに合わせて順次個々のレジスタに数を記憶していく。即ちckj+1の立ち上がりのタイミングで要素cとなるデータをレジスタに取り込む。ckの立ち上がりによって、レジスタに6個の要素cが取り込まれる。つまり、コード語Cを記憶することができる。
“(j) register”回路ブロックは、Zpの要素jと(j)を対応付けるデコーダ回路である。具体的には、“(j) register”回路ブロックは、ck(j=1〜6)及びclj+1(i=0〜3)が入力されると(j)i+1を出力する。
“Ro(0〜3)”レジスタ部は、4個の数を記憶できるレジスタであり、初期状態では、コードAの4個の成分a〜aを記憶している。“Ro(0〜3)”レジスタ部には、クロックclが入力されており、このクロックclが立ち上がる度にコードAの成分a〜aを順次出力する。即ち、clを受けてaを出力する。
“X Zp”回路ブロックは、入力の掛け算をZpで行なう回路である。“X Zp”回路ブロックには、クロックcl毎に“X k−times”回路ブロックの出力(j)i+1と“Ro(0〜3)”レジスタ部の出力aが入力され、(j)i+1を出力する。この出力された数(j)i+1を加算していくのが、“3 bit AD mod 7”回路ブロック及び“Rgstr”レジスタの組み合わせである。
“3 bit AD mod 7”回路ブロックは、2つの入力の数の和を7を法として求める回路である。一方、“Rgstr”レジスタは、初期状態が‘0’でクロックclの入力毎に、“3 bit AD mod 7”回路ブロックからの入力を遮断し、自身が保持する内容を“3 bit AD mod 7”回路ブロックに出力するレジスタである。図84に示すような、“3 bit AD mod 7”回路ブロック及び“Rgstr”レジスタの接続によって、クロックclの入力毎に前回出力した数に新たな“X Zp”回路ブロックから出力される数を加算していく。即ち、クロックcl〜clが立ち上がると、コードAをリー・メトリック・コードに変換した後のCの成分cが、クロックckのサイクルで出力される。これが次のckj+1のサイクルの頭で“Ri(1〜6)”レジスタ部に保持される。これによって、コードAから変換されたコードCを得ることができる。
図85中(A)は、シンドローム成分要素生成回路のブロック図であり、図85中(B)は、シンドローム成分要素生成回路を制御するクロックck(i=0〜1)、cl(j=1〜6)のタイミングチャートである。
シンドローム成分要素生成回路は、図85中(A)に示すように、“Ro(1〜6)”レジスタ部、“(j) register”回路ブロック、“X Zp”回路ブロック、“3 bit AD mod 13”回路ブロック、“Rgstr”レジスタ、及び“Ri(0〜1)”レジスタ部を有する。
メモリデバイス100から読み出されたコードYは“Ro(1〜6)”レジスタ部に初期設定として格納される。“(j) register”回路ブロックからは(j)を発生させる。これら“Ro(1〜6)”レジスタ及び“(j) register”回路ブロックは、クロックclによって同期され、Yの成分yが出力されると同時に(j)が出力されるように制御される。これらの積(j)を“X Zp”回路ブロックで生成し、クロックcl(j=1〜6)と同期して、“3 bit AD mod 7”回路ブロック及び“Rgstr”レジスタのループによって加算していき、シンドローム成分Sを作る。得られたSをクロックcki+1で“Ri(0〜1)”レジスタの第i番目のレジスタに格納する。この過程をクロックckのi=0〜2について処理し、全てのシンドローム成分を得て“Ri(0〜1)”レジスタ部に格納する。
コードYのエラーの探索の可否の判定には、シンドローム・ベクタの成分Sのリー・メトリック|S|を求める必要がある。
<デコード部>
ここでは、デコード部208について説明する。
エラー探索を終了し、エラーコードEによって訂正されたリー・メトリック・コードCが得られたら、これをZpのデータコードAに戻す必要がある。この演算はGを生成行列として、C=AGの逆演算を行うことに相当するが、行列の逆を得るのは規模の大きな演算となる。そのため、Aの要素を逐次的にCの要素から求めて行く。計算の過程を数29に示す。
[数29]







数29に示したように、c=Σ(j)i+1の関係を順次変形して、aからa、続いてaからa、・・・と逐次的にaを求めて行くことが計算の原理となる。
両辺にjの累乗の逆元を掛けてjのZpの全ての元についての項として足し合わせる。このときZpの全ての元の和はゼロとなることを利用して変形している。
各データコードAの成分シンボルcを求める式は、数29の各シンボルaからaの計算式で示したように、始めに、リー・メトリック・コードCの成分c〜cの変形を行う部分と、この結果を使ってデータAの成分a〜aを求める部分からなる。数29に示すように、逐次計算の式は4つと少ない。以下では、これら演算を並列処理する具体的な演算回路について説明する。
次に、数29に基づいてリー・メトリック・コードCの成分の変換を都度行う回路について説明する。以下において、この回路を“c(m−1) ”回路ブロックと呼ぶ。
図86は、“c(m−1) ”回路ブロックの回路記号を示す図であり、図87は、“c(m−1) ”回路ブロックのブロック図である。
“c(m−1) ”回路ブロックは、クロックcl、/clに同期して動作する回路であり、(j)、am−1、及びコード成分c〜cを入力し、c(m−1) を出力する。
“c(m−1) ”回路ブロックは、“X Zp”回路ブロック、“3 bit AD(8) mod 7”回路ブロック、”3 bit AD mod 7”回路ブロック及びインバータIV1を有する。
“X Zp”回路ブロックでは、(j)とam−1との積を生成しインバータIV1を介して“3 bit AD(8) mod 7”回路ブロックに出力する。
“3 bit AD(8) mod 7”回路ブロックでは、インバータIV1を介して出力された出力(j)m−1の補数を求め、−jm−1を生成し、“3 bit AD mod 7”回路ブロックに出力する。
“3 bit AD mod 7”回路ブロックは、−jm−1とc(=c(m−2) )との和を生成する。この生成された和が“c(m−1) ”回路ブロックの出力であるc(m−1) となる。
続いて、数29に基づいてaを生成する回路について説明する。以下において、この回路を“a”回路ブロックと呼ぶ。
図88は、“a”回路ブロックの回路記号を示す図であり、図89は、“a”回路ブロックのブロック図である。
“a”回路ブロックは、クロックclに同期して動作する回路であり、(j)m+1、及びc(m−1) を入力し、aを出力する。
“a”回路ブロックは、“j−1 dec”回路ブロック、2つの“X Zp”回路ブロック<1>、<2>、“3 bit AD mod 7”回路ブロック、及び“Rgstr”レジスタを有する。
“j−1 dec”回路ブロックでは、(j)m+1を、その逆元(j)−(m+1)に変換し、“X Zp”回路ブロック<1>に出力する。
“X Zp”回路ブロック<1>は、“j−1 dec”回路ブロックから入力された(j)−(m+1)と、“c(m−1) ”回路ブロックから出力されるc(=c(m−1) )との積演算をし、“3 bit AD mod 7”回路ブロックに出力する。
“3 bit AD mod 7”回路ブロックから出力された積は、初期値が‘0’の“Rgstr”レジスタと“3 bit AD mod 7”回路ブロックからなるループによって加算されて行く。この結果は、“3 bit AD mod 7”回路ブロックから“X Zp”回路ブロック<2>に出力される。
“X Zp”回路ブロック<2>では、“3 bit AD mod 7”回路ブロックから出力された和と6−1=6との積を演算し、“a”回路ブロックの出力であるaを得る。
次に、図86〜図89を用いて説明した“C(m−1) ”回路ブロック及び“a”回路ブロックを用いたデータコードAを求める計算回路について説明する。以下において、この回路を“c/a”回路ブロックと呼ぶ。
図90は、“c/a”回路ブロックの回路記号を示す図であり、図91は、 “c/a”回路ブロックのブロック図である。
“c/a”回路ブロックは、クロックck及びclで制御される。ここで、クロックclは、クロックckが立ち上がる間に6回立ち上がるパルスである。
“c/a”回路ブロックは、クロックckに同期し、Zpの要素のm+1乗である1m+1〜6m+1と先のクロックckm−1のタイミングで計算されたリー・メトリック・コードCの変形成分c(m−1) 〜c(m−1) を入力として、新たなリー・メトリック・コードCの変形成分c(m) からc(m) とデータコードAの成分の一つaを出力する。
“c/a”回路ブロックは、“R(1〜6)”レジスタ部、“MX”回路ブロック、“a”回路ブロック及び6つの“c(m−1) ”回路ブロック<1>〜<6>を有する。
“R(1〜6)”レジスタ部は、クロックckの立ち上がりで、リー・メトリック・コードCの変形成分c(m−1) 〜c(m−1) を取り込んでラッチする。
“MX”回路ブロックは、クロックclに同期して、“R(1〜6)”レジスタ部の出力とZpの要素のm+1乗である1m+1〜6m+1を入力し、jm+1とc(m−1) を取り出し“a”回路ブロックに渡すマルチプレクサ回路である。
“a”回路ブロックは、クロックclを6回受けて、データコード成分aを計算する。
6個の“c(m−1) ”回路ブロック<1>〜<6>は、これらa〜aと入力1m+1〜6m+1から、新たなリー・メトリック・コードCの変形成分c(m) 〜c(m) を同時に計算する。
次に、前述の“c/a”回路ブロックを用いたデータコードAを得る計算回路について説明する。以下では、この計算回路を「逆変換回路」と呼ぶ。
図92中(A)は、逆変換回路のブロック図であり、図92中(B)は、この逆変換回路を制御するクロックck及びclのタイミングチャートである。
図92中(B)に示すように、クロックck及びclは、所定のクロックckの立ち上がりから次のクロックckの立ち上がりまでの間に、クロックclが6回立ち上がる関係となっている。
逆変換回路は、“(j) register”回路ブロック、“c/a”回路ブロック及び“Li(0〜3)”レジスタ部を有する。
“(j) register”回路ブロックは、クロックck(m=0〜3)に同期して、1m+1〜6m+1(図92のjm+1)を並列に出力する。これら1m+1〜6m+1は“c/a”回路ブロックに入力される。
“c/a”回路ブロックは、出力c(m) 〜c(m) と入力c(m−1) 〜c(m−1) を直結する。クロックckのときの初期値c(−1) 〜c(−1) は、リー・メトリック・コードCの成分c〜cを設定しておく。“c/a”回路ブロックは、クロックclの1サイクルが終わる度に、数29に示したaを算出する。aは、次のクロックclの1サイクルの始まりであるクロックckm+1によって、“Li(0〜3)”レジスタ部の第mレジスタに格納される。
全てのクロックのサイクルが終了すると、“Li(0〜3)”レジスタ部には、コードデータAが格納されることになる。
<リー・メトリックの演算回路>
ECCによるデータ処理では、エラー訂正の可否などを判断する際にシンドロームSのリー・メトリック|S|を用いる。そこで、次は、Zp(p=7)の要素のリー・メトリックを計算する演算回路素子について説明する。以下において、この演算回路素子を“3 bit LM7”回路ブロックと呼ぶ。
3ビットのバイナリ表示のZpの要素aについて、そのリー・メトリックQ=|a|は、Q=/PF0×a+PF0×(7−a)と表現できる。ここでPF0は、a≧4の場合に‘1’、a<4の場合に‘0’になる。したがって、aのリー・メトリックを求めるには、a≧4の場合、7からaを引く、即ち、7にaの補数を加えれば良い。
h=3、p=7の場合のAとQの関係は数30のようになる。
[数30]

図93は、“3 bit LM7”回路ブロックの回路記号を示す図であり、図94は、“3 bit LM7”回路ブロックのブロック図である。
“3 bit LM7”回路ブロックは、3ビットのバイナリA〜Aを入力し、3ビットのバイナリQ〜Qを出力する。
“3 bit LM7”回路ブロックは、XORゲートG1及び3個の半加算器HA1〜HA3を有する。
XORゲートG1は、A(j=0〜2)及びPF0を入力し、Bを出力する。
全加算器FA1は、入力がB及びPF0、桁上げ入力がPF0、出力がQ、桁上げ出力がC0となっている。全加算器FA2は、入力がB及びPF0、桁上げ入力がC0、出力がQ、桁上げ出力がC1となっている。全加算器FA3は、入力がB及びPF0、桁上げ入力がC1、出力がQとなっている。
入力が4以上になったらaの補数を7に加えている。aの補数は、PF0=1の場合、XORゲートG1でaの各ビット表示Aを反転してBとし、これに1を加えて生成されている。
p=7は、7=(111)であるので、これをPF0で表し、更に、1としてPF0を使い、これらとバイナリの和としてBと加えている。
“3 bit LM7”回路は、クロックに非同期で動作し、入力を入れると計算されたリー・メトリックを出力する。
[まとめ]
以上、実施形態に係る半導体記憶装置の場合、フローティングアクセス方式のアクセス動作を採用することで、アクセス動作時の消費電力が小さくすることができる。また、メモリセルの不良発生に対応するための回路が不要となる。更に、三次元構造の抵抗変化メモリであるため大容量ファイルメモリの実現が容易である。
[その他]
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1・・・メモリセルアレイ、2・・・カラム制御回路、2´・・・ビット線ドライバ、3・・・ロウ制御回路、3´・・・ワード線ドライバ、100・・・メモリデバイス、200・・・メモリコントローラ、201・・・7進数変換部、202・・・エンコード部、203・・・シンドローム生成部、204・・・解探索多項式生成部、205、206、252、253・・・エラー探索部、207・・・コード復元部、208・・・デコード部、209・・・2進数変換部、251・・・ユークリッド反復処理部、254・・・2進数変換部。

Claims (9)

  1. 複数の第1配線、前記第1配線に交差する複数の第2配線、並びに、前記複数の第1配線及び第2配線の交差部に設けられた複数のメモリセルからなるメモリセル層を有するメモリセルアレイと、
    前記メモリセルにデータを書き込み、前記メモリセルからデータを読み出すアクセス回路と
    を備え、
    前記メモリセルは、積層された複数のセルユニットを有し、前記セルユニットの異なる抵抗状態によってデータを記憶し、
    前記セルユニットは、
    第1極性の電圧が印加されると前記抵抗状態が高抵抗状態から低抵抗状態に遷移し、前記第1極性と異なる第2極性の電圧が印加されると前記抵抗状態が抵抵抗状態から高抵抗状態に遷移し、
    前記第1極性における電圧−電流特性と前記第2極性における電圧−電流特性とが非対象であり、
    前記メモリセルは、前記セルユニットである第1セルユニット及び第2セルユニットを積層させた構造を持ち、
    前記第1セルユニット及び前記第2セルユニットが共に低抵抗状態である第1状態、前記第1セルユニット及び第2セルユニットの一方が低抵抗状態であり他方が高抵抗状態である第2状態、並びに、前記第1セルユニット及び第2セルユニットが共に高抵抗状態である第3状態を有し、
    前記アクセス回路は、前記メモリセルへのデータの書き込みの際、
    前記メモリセルを前記第1状態に遷移させる初期状態設定を実行し、
    前記メモリセルに前記第2状態又は前記第3状態を設定する場合、前記初期状態設定の実行後、更に、前記メモリセルを前記第2状態に遷移させる第2状態設定を実行し、
    前記メモリセルに前記第3状態を設定する場合、前記第2状態設定の実行後、更に、前記メモリセルを前記第3状態に遷移させる第3状態設定を実行し、
    前記アクセス回路は、前記メモリセルからのデータの読み出しの際、
    前記メモリセルが前記第1状態か否かを判定する第1状態判定を実行し、
    前記メモリセルが前記第1状態ではない場合、前記第1状態判定の実行後、第2状態の前記メモリセルを第1状態に遷移させる破壊読み出しによって当該メモリセルが前記第2状態か否かを判定する第2状態判定を実行し、
    前記破壊読み出しによって前記メモリセルが前記第2状態から前記第1状態に遷移した場合、前記第2状態判定の実行後、前記メモリセルを前記第2状態に遷移させる第2状態再設定を実行し、
    前記メモリセルである第1メモリセル及び第2メモリセルによってペアセルを構成し、
    前記ペアセルは、前記第1メモリセル及び第2メモリセルの前記第1状態乃至前記第3状態からなる9通りの組み合わせに剰余体Zp(pは素数7)の各要素を対応付けてデータを記憶し、
    6組の前記ペアセル単位で、エラー訂正可能なコードを記憶し、
    前記ペアセルは、前記第1メモリセル及び第2メモリセルの前記第2状態及前記第3状態からなる4通りの組み合わせに、剰余体Zp(pは素数7)の隣り合う2つの要素を重複させて対応付ける
    ことを特徴とする半導体記憶装置。
  2. 複数の第1配線、前記第1配線に交差する複数の第2配線、並びに、前記複数の第1配線及び第2配線の交差部に設けられた複数のメモリセルからなるメモリセル層を有するメモリセルアレイを備え、
    前記メモリセルは、積層された複数のセルユニットを有し、前記セルユニットの異なる抵抗状態によってデータを記憶し、
    前記セルユニットは、
    第1極性の電圧が印加されると前記抵抗状態が高抵抗状態から低抵抗状態に遷移し、前記第1極性と異なる第2極性の電圧が印加されると前記抵抗状態が抵抵抗状態から高抵抗状態に遷移し、
    前記第1極性における電圧−電流特性と前記第2極性における電圧−電流特性とが非対象である
    ことを特徴とする半導体記憶装置。
  3. 前記メモリセルは、前記セルユニットである第1セルユニット及び第2セルユニットを積層させた構造を持ち、
    前記第1セルユニット及び前記第2セルユニットが共に低抵抗状態である第1状態、前記第1セルユニット及び第2セルユニットの一方が低抵抗状態であり他方が高抵抗状態である第2状態、並びに、前記第1セルユニット及び第2セルユニットが共に高抵抗状態である第3状態を有する
    ことを特徴とする請求項2記載の半導体記憶装置。
  4. 前記メモリセルにデータを書き込むアクセス回路を備え、
    前記アクセス回路は、
    前記メモリセルを前記第1状態に遷移させる初期状態設定を実行し、
    前記メモリセルに前記第2状態又は前記第3状態を設定する場合、前記初期状態設定の実行後、更に、前記メモリセルを前記第2状態に遷移させる第2状態設定を実行し、
    前記メモリセルに前記第3状態を設定する場合、前記第2状態設定の実行後、更に、前記メモリセルを前記第3状態に遷移させる第3状態設定を実行する
    ことを特徴とする請求項3記載の半導体記憶装置。
  5. 前記メモリセルにデータを書き込むアクセス回路を備え、
    前記アクセス回路は、
    前記メモリセルを前記第2状態に遷移させる初期状態設定を実行し、
    前記メモリセルに前記第1状態を設定する場合、前記初期状態設定の実行後、更に、前記メモリセルを前記第1状態に遷移させる第1状態設定を実行し、
    前記メモリセルに前記第3状態を設定する場合、前記初期状態設定の実行後、更に、前記メモリセルを前記第3状態に遷移させる第3状態設定を実行する
    ことを特徴とする請求項3記載の半導体記憶装置。
  6. 前記メモリセルからデータを読み出すアクセス回路を備え、
    前記アクセス回路は、
    前記メモリセルが前記第1状態か否かを判定する第1状態判定を実行し、
    前記メモリセルが前記第1状態ではない場合、前記第1状態判定の実行後、第2状態の前記メモリセルを第1状態に遷移させる破壊読み出しによって当該メモリセルが前記第2状態か否かを判定する第2状態判定を実行し、
    前記破壊読み出しによって前記メモリセルが前記第2状態から前記第1状態に遷移した場合、前記第2状態判定の実行後、前記メモリセルを前記第2状態に遷移させる第2状態再設定を実行する
    ことを特徴とする請求項3〜5のいずれか1項記載の半導体記憶装置。
  7. 前記メモリセルである第1メモリセル及び第2メモリセルによってペアセルを構成し、
    前記ペアセルは、前記第1メモリセル及び第2メモリセルの前記第1状態乃至前記第3状態からなる9通りの組み合わせに剰余体Zp(pは素数7)の各要素を対応付けてデータを記憶する
    ことを特徴とする請求項3〜5のいずれか1項記載の半導体記憶装置。
  8. 6組の前記ペアセル単位で、エラー訂正可能なコードを記憶する
    ことを特徴とする請求項7記載の半導体記憶装置。
  9. 前記ペアセルは、前記第1メモリセル及び第2メモリセルの前記第2状態及前記第3状態からなる4通りの組み合わせに、剰余体Zp(pは素数7)の隣り合う2つの要素を重複させて対応付ける
    ことを特徴とする請求項8記載の半導体記憶装置。
JP2011270223A 2011-12-09 2011-12-09 半導体記憶装置 Pending JP2013122797A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011270223A JP2013122797A (ja) 2011-12-09 2011-12-09 半導体記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011270223A JP2013122797A (ja) 2011-12-09 2011-12-09 半導体記憶装置

Publications (1)

Publication Number Publication Date
JP2013122797A true JP2013122797A (ja) 2013-06-20

Family

ID=48774674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011270223A Pending JP2013122797A (ja) 2011-12-09 2011-12-09 半導体記憶装置

Country Status (1)

Country Link
JP (1) JP2013122797A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9368197B2 (en) 2014-01-29 2016-06-14 Kabushiki Kaisha Toshiba Memory system
FR3089681A1 (fr) * 2018-12-10 2020-06-12 Proton World International N.V. Mémoire à lecture unique
US11200936B2 (en) 2018-12-10 2021-12-14 Proton World International N.V. Read-once memory

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9368197B2 (en) 2014-01-29 2016-06-14 Kabushiki Kaisha Toshiba Memory system
US9691474B2 (en) 2014-01-29 2017-06-27 Kabushiki Kaisha Toshiba Memory system
FR3089681A1 (fr) * 2018-12-10 2020-06-12 Proton World International N.V. Mémoire à lecture unique
US11049567B2 (en) 2018-12-10 2021-06-29 Proton World International N.V. Read-once memory
US11200936B2 (en) 2018-12-10 2021-12-14 Proton World International N.V. Read-once memory

Similar Documents

Publication Publication Date Title
KR102511459B1 (ko) 비휘발성 메모리 장치 및 그 동작 방법
US10218789B2 (en) Erasure correcting coding using temporary erasure data
US11256564B2 (en) Media quality aware ECC decoding method selection to reduce data access latency
JP5204868B2 (ja) 半導体記憶装置
CN109119120A (zh) 非易失性存储器子区块擦除干扰管理方案
KR102081584B1 (ko) 메모리 장치 구동 방법 및 메모리 시스템
US10153046B1 (en) Non-volatile memory with backing up of programmed data
CN104937667A (zh) 对数似然比和针对数据存储系统的集中的对数似然比生成
US20190108090A1 (en) Non-volatile memory with dynamic write abort detection and recovery
JP2007305267A (ja) 半導体記憶装置
JP4836608B2 (ja) 半導体記憶装置
US20150301887A1 (en) High-speed multi-block-row layered decoder for low density parity check (ldpc) codes
JP4846384B2 (ja) 半導体記憶装置
Tanakamaru et al. Highly reliable and low power SSD using asymmetric coding and stripe bitline-pattern elimination programming
US20080212352A1 (en) Multi-layer semiconductor memory device comprising error checking and correction (ecc) engine and related ecc method
US10142419B2 (en) Erasure correcting coding using data subsets and partial parity symbols
KR102142602B1 (ko) 신규 메모리 디바이스
KR20150048425A (ko) 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
JP5204186B2 (ja) メモリシステム
Mao et al. A multilayer approach to designing energy-efficient and reliable ReRAM cross-point array system
JP2013122797A (ja) 半導体記憶装置
JP5143203B2 (ja) メモリシステム
US11251812B2 (en) Encoding and decoding of hamming distance-based binary representations of numbers
JP2012123600A (ja) メモリシステム及びメモリコントローラ
US11003551B2 (en) Non-volatile storage system with program failure recovery