IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ウィンボンド エレクトロニクス コーポレーションの特許一覧

特開2022-137391半導体記憶装置および誤り検出訂正方法
<>
  • 特開-半導体記憶装置および誤り検出訂正方法 図1
  • 特開-半導体記憶装置および誤り検出訂正方法 図2
  • 特開-半導体記憶装置および誤り検出訂正方法 図3
  • 特開-半導体記憶装置および誤り検出訂正方法 図4
  • 特開-半導体記憶装置および誤り検出訂正方法 図5
  • 特開-半導体記憶装置および誤り検出訂正方法 図6
  • 特開-半導体記憶装置および誤り検出訂正方法 図7
  • 特開-半導体記憶装置および誤り検出訂正方法 図8
  • 特開-半導体記憶装置および誤り検出訂正方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022137391
(43)【公開日】2022-09-22
(54)【発明の名称】半導体記憶装置および誤り検出訂正方法
(51)【国際特許分類】
   G06F 11/10 20060101AFI20220914BHJP
【FI】
G06F11/10 648
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021036890
(22)【出願日】2021-03-09
(71)【出願人】
【識別番号】511062254
【氏名又は名称】ウィンボンド エレクトロニクス コーポレーション
(74)【代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】葛西 央倫
(72)【発明者】
【氏名】金子 二四三
(57)【要約】
【課題】 誤り検出訂正能力と書込みや読出しのパフォーマンスの両立を図る。
【解決手段】 本発明のフラッシュメモリの誤り検出訂正方法は、1ビットの誤り検出訂正を行う第1の誤り検出訂正機能または複数ビットの誤り検出訂正を行う第2の誤り検出訂正機能を選択するための選択情報を設定するステップと、読出し動作または書込み動作時に、設定された選択情報に基づき第1の誤り検出訂正機能または第2の誤り検出訂正機能を実行させるステップとを有する。
【選択図】 図6
【特許請求の範囲】
【請求項1】
半導体記憶装置の誤り検出訂正方法であって、
mビットの誤り検出訂正を行う第1の誤り検出訂正機能またはnビットの誤り検出訂正を行う第2の誤り検出訂正機能を選択するための選択情報を設定するステップと(m、nは自然数であり、m<n)、
読出し動作または書込み動作時に、前記選択情報に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させるステップと、
を有する誤り検出訂正方法。
【請求項2】
前記設定するステップは、外部からコマンドにより前記選択情報を変更可能である、請求項1に記載の誤り検出訂正方法。
【請求項3】
前記選択情報は、前記第1の誤り検出訂正機能を選択するためのメモリセルアレイの第1のアドレス空間および前記第2の誤り検出訂正機能を選択するためのメモリセルアレイの第2のアドレス空間を規定し、
前記実行させるステップは、読出し動作または書込み動作のアドレスに対応する第1または第2のアドレス空間に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる、請求項1に記載の誤り検出訂正方法。
【請求項4】
誤り検出訂正方法はさらに、前記第1の誤り検出訂正機能から前記第2の誤り検出訂正機能への動作が切替えられたとき、メモリセルアレイに書込まれた前記第1の誤り検出訂正機能に関連する第1のデータを前記第2の誤り検出訂正機能に関連する第2のデータに変換するステップを含む、請求項1に記載の誤り検出訂正方法。
【請求項5】
前記変換するステップは、メモリセルアレイから前記第1のデータをページバッファ/センス回路に読出し、読出した第1のデータを前記第2の誤り検出訂正機能を動作させて第2のデータに変換し、変換した第2のデータをメモリセルアレイの元の位置に書込む、請求項4に記載の誤り検出訂正方法。
【請求項6】
前記第1の誤り検出訂正機能は、ハミングコードにより1ビットの誤り検出訂正を行い、前記第2の誤り検出訂正機能は、BCHコードにより2ビット、4ビットまたは8ビットの誤り検出訂正を行う、請求項1ないし5いずれか1つに記載の誤り検出訂正方法。
【請求項7】
前記メモリセルアレイは、レギュラー領域とスペア領域とを含むNAND型のメモリセルアレイであり、前記スペア領域には、前記第1または第2の誤り検出訂正機能により生成されたパリティビットが記憶される、請求項1ないし6いずれか1つに記載の誤り検出訂正方法。
【請求項8】
メモリセルアレイと、
mビットの誤り検出訂正を行う第1の誤り検出訂正機能およびnビットの誤り検出訂正を行う第2の誤り検出訂正機能を含む誤り検出訂正手段と(m、nは自然数であり、m<n)、
前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を選択するための選択情報を設定する設定手段と、
読出し動作または書込み動作時に、前記選択情報に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる実行手段と、
を有する半導体記憶装置。
【請求項9】
前記設定手段は、外部からコマンドにより前記選択情報を変更可能である、請求項8に記載の半導体記憶装置。
【請求項10】
前記選択情報は、前記第1の誤り検出訂正機能を選択するためのメモリセルアレイの第1のアドレス空間および前記第2の誤り検出訂正機能を選択するためのメモリセルアレイの第2のアドレス空間を規定し、
前記実行手段は、読出し動作または書込み動作のアドレスに対応する第1または第2のアドレス空間に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる、請求項8に記載の半導体記憶装置。
【請求項11】
前記実行手段は、前記第1の誤り検出訂正機能から前記第2の誤り検出訂正機能への動作が切替えられたとき、メモリセルアレイに書込まれた前記第1の誤り検出訂正機能に関連する第1のデータを前記第2の誤り検出訂正機能に関連する第2のデータに変換する変換手段を含む、請求項8に記載の半導体記憶装置。
【請求項12】
前記変換手段は、メモリセルアレイから第1のデータをページバッファ/センス回路に読出し、読出した第1のデータを第2の誤り検出訂正機能を動作させて第2のデータに変換し、変換した第2のデータをメモリセルアレイの元の位置に書込む、請求項11に記載の半導体記憶装置。
【請求項13】
前記第1の誤り検出訂正機能は、ハミングコードにより1ビットの誤り検出訂正を行い、前記第2の誤り検出訂正機能は、BCHコードにより2ビット、4ビットまたは8ビットの誤り検出訂正を行う、請求項8ないし12いずれか1つに記載の半導体記憶装置。
【請求項14】
前記メモリセルアレイは、レギュラー領域とスペア領域とを含むNAND型のメモリセルアレイであり、前記スペア領域には、前記第1または第2の誤り検出訂正機能により生成されたパリティビットが記憶される、請求項8ないし13いずれか1つに記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、NAND型フラッシュメモリ等の半導体記憶装置に関し、特に誤り検出訂正機能の切替えに関する。
【背景技術】
【0002】
NAND型のフラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化等により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こすことがある。このようなビットエラー対策として、フラシュメモリには誤り検出訂正回路(以下、ECC回路という)が搭載されている(例えば、特許文献1、2)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許6744950号公報
【特許文献2】特許6744951号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、フラッシュメモリ等の不揮発性メモリでは、セルの微細化、書き換え回数の増大、車載機器への用途拡大などに伴い、ECC回路を搭載した製品が一般化している。多くの誤り検出訂正は、データ書換え回数やデータ保持特性などの経年劣化を伴うケースで生じる。言い換えれば、大部分の誤り検出訂正は、製品ライフサイクルの後半で生じる。また、ECC回路は、データの書込み時のパリティビットの生成や、読出し時のシンドローム計算等の誤りビットの特定と訂正処理を必要とするため、書込みや読出し時のパフォーマンスに悪影響を及ぼす。
【0005】
図1に、従来のオンチップECC機能を搭載したNAND型フラッシュメモリの概略構成を示す。フラッシュメモリ10は、メモリセルアレイ20と、ページバッファ/センス回路30と、ECC回路40と、入出力回路50とを含む。ECC回路40は、転送回路42、ECCコア44、エラーレジスタ46および書込み回路48を含む。
【0006】
読出し動作では、メモリセルアレイ20の選択ページから読み出されたデータがページバッファ/センス回路30に保持され、ページバッファ/センス回路30に保持されたデータが転送回路42を介してECCコア44へ転送される。ECCコア44は、転送されたデータをECC演算し、その演算から得られたエラー情報がエラーレジスタ46に保持される。書込み回路48は、エラーレジスタ46に保持されたエラー情報に基づき、訂正されたデータをページバッファ/センス回路30に書き戻す。こうして、1ページのECC処理の終了後、ページバッファ/センス回路30に保持されたデータが列アドレスに従いデータバス60に読み出され、読み出されたデータが入出力回路50に提供される。入出力回路50は、図示しない入出力端子から読出しデータを外部に出力する。
【0007】
書込み動作では、外部から入力されたプログラムすべきデータがページバッファ/センス回路30に保持され、ECCコア44は、ページバッファ/センス回路30から転送されたデータの符号(パリティビット)を生成し、書込み回路48は、生成された符号をページバッファ/センス回路30のスペア領域に対応する位置に書込む。ECC処理後、ページバッファ/センス回路30に保持されたデータがメモリセルアレイ20にプログラムされる。
【0008】
ECC回路40が1ビットのエラー検出訂正を行う場合にはハミングコードを用いることができ、この処理時間は比較的短い。これに対し、複数ビット(例えば、2ビット、4ビット、8ビットなど)のエラー検出・訂正を行う場合には、BCHコードを使用した誤り訂正が一般的であり、BCHコードの処理には、ハミングコードの処理よりも長い時間を必要とする。特に、1ページのデータサイズが大きくなれば、ページの読出しや書込み時間、あるいはSPI(Serial Peripheral Interface)による外部クロック信号に同期して複数ページの連続読出しを行うときの動作周波数に多大な影響を及ぼしてしまう。また、パイプライン処理によって高速化が図られているが、チップサイズの増大にも繋がり、誤り検出訂正能力と読出しパフォーマンスの両立は困難である。
【0009】
本発明は、このような従来の課題に着目し、誤り検出訂正能力と書込みや読出しのパフォーマンスの両立を図る半導体記憶装置および誤り検出訂正方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係る半導体記憶装置の誤り検出訂正方法は、mビットの誤り検出訂正を行う第1の誤り検出訂正機能またはnビットの誤り検出訂正を行う第2の誤り検出訂正機能を選択するための選択情報を設定するステップと(m、nは自然数であり、m<n)、読出し動作または書込み動作時に、前記選択情報に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させるステップとを有する。
【0011】
ある実施態様では、前記設定するステップは、外部からコマンドにより前記選択情報を変更可能である。ある実施態様では、前記選択情報は、前記第1の誤り検出訂正機能を選択するためのメモリセルアレイの第1のアドレス空間および前記第2の誤り検出訂正機能を選択するためのメモリセルアレイの第2のアドレス空間を規定し、前記実行させるステップは、読出し動作または書込み動作のアドレスに対応する第1または第2のアドレス空間に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる。ある実施態様では、誤り検出訂正方法はさらに、前記第1の誤り検出訂正機能から前記第2の誤り検出訂正機能への動作が切替えられたとき、メモリセルアレイに書込まれた前記第1の誤り検出訂正機能に関連する第1のデータを前記第2の誤り検出訂正機能に関連する第2のデータに変換するステップを含む。ある実施態様では、前記変換するステップは、メモリセルアレイから前記第1のデータをページバッファ/センス回路に読出し、読出した第1のデータを前記第2の誤り検出訂正機能を動作させて第2のデータに変換し、変換した第2のデータをメモリセルアレイの元の位置に書込む。ある実施態様では、前記第1の誤り検出訂正機能は、ハミングコードにより1ビットの誤り検出訂正を行い、前記第2の誤り検出訂正機能は、BCHコードにより2ビット、4ビットまたは8ビットの誤り検出訂正を行う。ある実施態様では、前記メモリセルアレイは、レギュラー領域とスペア領域とを含むNAND型のメモリセルアレイであり、前記スペア領域には、前記第1または第2の誤り検出訂正機能により生成されたパリティビットが記憶される。
【0012】
本発明に係る半導体記憶装置は、メモリセルアレイと、mビットの誤り検出訂正を行う第1の誤り検出訂正機能およびnビットの誤り検出訂正を行う第2の誤り検出訂正機能を含む誤り検出訂正手段と(m、nは自然数であり、m<n)、前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を選択するための選択情報を設定する設定手段と、読出し動作または書込み動作時に、前記選択情報に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる実行手段とを有する。
【0013】
ある実施態様では、前記設定手段は、外部からコマンドにより前記選択情報を変更可能である。ある実施態様では、前記選択情報は、前記第1の誤り検出訂正機能を選択するためのメモリセルアレイの第1のアドレス空間および前記第2の誤り検出訂正機能を選択するためのメモリセルアレイの第2のアドレス空間を規定し、前記実行手段は、読出し動作または書込み動作のアドレスに対応する第1または第2のアドレス空間に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる。ある実施態様では、前記実行手段は、前記第1の誤り検出訂正機能から前記第2の誤り検出訂正機能への動作が切替えられたとき、メモリセルアレイに書込まれた前記第1の誤り検出訂正機能に関連する第1のデータを前記第2の誤り検出訂正機能に関連する第2のデータに変換する変換手段を含む。ある実施態様では、前記変換手段は、メモリセルアレイから第1のデータをページバッファ/センス回路に読出し、読出した第1のデータを第2の誤り検出訂正機能を動作させて第2のデータに変換し、変換した第2のデータをメモリセルアレイの元の位置に書込む。ある実施態様では、前記第1の誤り検出訂正機能は、ハミングコードにより1ビットの誤り検出訂正を行い、前記第2の誤り検出訂正機能は、BCHコードにより2ビット、4ビットまたは8ビットの誤り検出訂正を行う。ある実施態様では、前記メモリセルアレイは、レギュラー領域とスペア領域とを含むNAND型のメモリセルアレイであり、前記スペア領域には、前記第1または第2の誤り検出訂正機能により生成されたパリティビットが記憶される。
【発明の効果】
【0014】
本発明によれば、第1の誤り検出訂正機能または第2の誤り検出訂正機能を選択できるようにしたので、例えば、製品ライフサイクル等に応じて誤り検出訂正能力を切替えることで、読出しや書込み動作のパフォーマンスと両立を図ることができる。
【図面の簡単な説明】
【0015】
図1】従来のオンチップECC機能を搭載するNAND型フラッシュメモリの概略構成を示す図である。
図2】本発明の実施例に係るNAND型フラッシュメモリの構成を示すブロック図である。
図3】本発明の実施例に係るECC回路の内部構成を示す図である。
図4】本発明の第1の実施例に係る設定レジスタの一例を示す図である。
図5】本発明の第1の実施例に係るECC回路の動作を説明する図である。
図6】本発明の第1の実施例に係るECC回路の誤り検出訂正能力の切替え動作を説明するフローである。
図7】本発明の第3の実施例に係る設定レジスタの一例を示す図である。
図8】本発明の第3の実施例に係るECC回路の誤り検出訂正能力の切替え動作を説明するフローである。
図9】本発明の実施例に係るECC回路のデコーダの構成を示すブロック図である。
【発明を実施するための形態】
【0016】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明に係る半導体記憶装置は、例えば、NAND型フラッシュメモリ、あるいはこのようなフラッシュメモリを埋め込むマイクロプロセッサ、マイクロコントローラ、ロジック、ASIC、画像や音声を処理するプロセッサ、無線信号等の信号を処理するプロセッサなどである。
【実施例0017】
次に、本発明の実施例について図面を参照して詳細に説明する。図2は、本発明の実施例に係るNAND型フラッシュメモリの内部構成を示す図である。フラッシュメモリ100は、複数のメモリセルが行列状に配列されたメモリアレイ110と、外部入出力端子に接続され、かつ読出しデータを外部に出力したりあるいは外部から入力されるデータを取り込む入出力回路120と、プログラムすべきデータの誤り訂正符号の生成や当該誤り訂正符号に基づき読み出されたデータの誤り検出訂正を行うECC回路130と、入出力回路120を介してアドレスデータを受け取るアドレスレジスタ140と、入出力回路120を介して受け取った命令(コマンド)や制御端子に印加された制御信号に基づき各部を制御するコントローラ150と、アドレスレジスタ140から行アドレス情報Axのデコード結果に基づきブロックの選択やワード線の選択等を行うワード線選択回路160と、メモリセルアレイ110の選択ページから読み出されたデータを保持したり、選択ページへプログラムするデータを保持するページバッファ/センス回路170と、アドレスレジスタ140から列アドレス情報Ayのデコード結果に基づき列の選択等を行う列選択回路180と、複数の誤り検出訂正機能についての選択情報を設定する設定レジスタ190とを含む。ここには図示しないがフラッシュメモリ100は、データの読出し、プログラム(書き込み)および消去等のために必要な電圧(プログラム電圧Vpgm、パス電圧Vpass、読出し電圧Vread、消去電圧Vers等を生成する内部電圧発生回路を含む。また、NAND型フラッシュメモリ100は、NOR型フラッシュメモリとの動作の互換性を図るためSPIを搭載するものであってもよい。
【0018】
メモリアレイ110は、例えば、列方向に配置されたm個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。1つのメモリブロックには、複数のNANDストリングが形成され、1つのNANDストリングは、直列に接続された複数のメモリセルとビット線側選択トランジスタとソース線側選択トランジスタとを含む。ビット線側選択トランジスタのドレインは対応する1つのグローバルビット線に接続され、ソース線側選択トランジスタのソースは共通のソース線に接続される。メモリセルのゲートは、対応するワード線に接続され、ビット線側選択トランジスタおよびソース線側選択トランジスタの各ゲートは、選択ゲート線SGD、SGSにそれぞれ接続される。ワード線選択回路160は、行アドレスAxに基づき選択ゲート線SGD、SGSを介してビット線側選択トランジスタ、ソース線側選択トランジスタを駆動し、ブロックやワード線を選択する。
【0019】
NANDストリングは、基板表面上に2次元的に形成されてもよいし、基板表面上に3次元的に形成されてもよい。また、メモリセルは、1ビット(2値データ)を記憶するSLCタイプでもよいし、多ビットを記憶するタイプであってもよい。
【0020】
読出し動作では、ビット線に或る正の電圧を印加し、選択ワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧Vpass(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線側選択トランジスタ、ソース線側選択トランジスタをオンし、共通ソース線SLを0Vにする。プログラム動作では、選択ワード線に高電圧のプログラム電圧Vpgm(例えば15~20V)を印加し、非選択のワード線に中間電位(例えば10V)を印加し、ビット線側選択トランジスタをオンさせ、ソース線側選択トランジスタをオフさせ、データ「0」または「1」に応じた電位をビット線に供給する。消去動作では、ブロック内の選択ワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加する。
【0021】
ECC回路130は、ある態様では、図3に示すように1ビットの誤り検出訂正機能を有する第1のECC部132と、8ビットの誤り検出訂正機能を有する第2のECC部134とを含む。第1のECC部132は、ハミングコードを用いてデータの符号化/復号化を行い、第2のECC部134は、BCHコードを用いてデータの符号化/復号化を行う。第1のECC部132および第2のECC部134には、コントローラ150から第1イネーブル信号EN_1および第2のイネーブル信号EN_2がそれぞれ供給される。第1のECC部132は、第1のイネーブル信号EN_1が第1の論理状態のときイネーブルされ、第2の論理状態のときディスエーブルされる。第2のECC部134は、第2のイネーブル信号EN_2が第1の論理状態のときイネーブルされ、第2の論理状態のときディスエーブルされる。第1のECC部132および第2のECC部134は、供給される内部クロック信号CLK_ECCに同期してECC処理を行う。
【0022】
設定レジスタ190は、第1のECC部132または第2のECC部134の動作を選択するための選択情報を設定し、これを保持する。選択情報は、例えば、図4に示すような1ビットのフラグを含み、フラグ「0」は、第1のECC部132の選択を規定し、フラグ「1」は、第2のECC部134の選択を規定する。ある態様では、選択情報は、フラッシュメモリ100のパワーオンシーケンスが実行されるときにフューズROM(フューズメモリセル)からロードされる。デフォルト状態または出荷時、フューズROMには、選択情報としてフラグ「0」が格納される。ライフサイクルが初期または前半のとき、メモリセルの経年劣化が比較的少ないため誤りの発生頻度が少ないと予測される。このため、初期設定として第1のECC部132が選択されるようにする。それ故、ライフサイクルの前半では、ECC処理時間が短く、ECC処理により読出しや書込み時間が長くなるのが抑制される。
【0023】
設定レジスタ190は、外部からアクセス可能であり、ユーザーは、所定のコマンドを用いて設定レジスタ190に設定された選択情報を書き換えることができる。コントローラ150は、入出力回路120を介してホストコンピューターから設定レジスタの書込みコマンドおよび書込みデータを受け取ると、当該書込みデータを設定レジスタ190に書込む。これにより、選択情報の書き換えが行われる。ライフサイクルが後半になり、メモリセルの経年劣化が生じると、それが原因で誤りの発生頻度の増加が予測される。これに対処するため、第2のECC部134を選択することでシングルビットの誤り検出訂正機能から多ビットの誤り検出訂正機能への切替えが行われる。これにより、ライフサイクルの後半では、ECC処理により読出しや書込みの時間が長くなるが、その反面、誤り検出訂正能力が増加し、信頼性の低下が抑制される。
【0024】
コントローラ150は、マイクロコントローラまたはステートマシン等を含み、外部から受け取るコマンドや制御信号等に基づきフラッシュメモリ100の読出し、プログラム、消去、誤り検出訂正機能の切替え等の全体の動作を制御する。
【0025】
次に、ECC回路130の動作について説明する。プログラム動作時、入出力回路120から入力されたデータがページバッファ/センス回路170へ保持され、次に、保持されたデータがECC回路130へ転送される。ECC回路130は、転送されたデータについてECC演算を行い、誤り訂正符号(例えば、パリティビット)を生成し、生成した誤り訂正符号をページバッファ/センス回路170のスペア領域に書き戻す。その後、入力されたデータおよび誤り訂正符号は、メモリセルアレイ110の選択されたページにプログラムされる。
【0026】
読出し動作時、メモリセルアレイ110の選択ページから読み出されたデータがページバッファ/センス回路170に転送され、そこに保持される。次に、保持されたデータがECC回路130へ転送され、ECC回路130は、誤り訂正符号に基づき誤りの有無を検出し、誤りが検出された場合には、データの誤りを訂正する。誤りの訂正は、例えば、ページバッファ/センス回路170に保持されたデータを書き換えることによって行われる。その後、ページバッファ/センス回路170に保持されたデータは入出力回路120を介して外部に出力される。
【0027】
図5に、ページバッファ/センス回路170のデータ構成例を示す。ページバッファ/センス回路170は、例えば、セクタ0~セクタ7の8つのセクタに分割されたレギュラー領域200と、スペア0、スペア1、スペア2、スペア3の4つのセクタに分割されたスペア領域210とを有する。レギュラー領域は、データの記憶に利用され、レギュラー領域200の1つのセクタは、例えば、256バイトから構成され、レギュラー領域200の8つのセクタは、全体で約2Kバイトのデータを保持する。
【0028】
スペア領域210の1つのセクタは、例えば16バイトから構成され、4つのセクタ(スペア0~スペア3)は全体で64バイトのデータを保持する。スペア0には、レギュラー領域200のセクタ0、セクタ1の誤り訂正符号が記憶され、スペア1には、レギュラー領域200のセクタ2、セクタ3の誤り訂正符号が記憶され、スペア2には、レギュラー領域200のセクタ4、セクタ5の誤り訂正符号が記憶され、スペア3には、レギュラー領域200のセクタ6、セクタ7の誤り訂正符号が記憶される。
【0029】
ECC回路130は、セクタ単位で転送されたデータを受け取り、これをECC処理部135へ転送する転送回路136と、1ビットの誤り検出訂正機能を有する第1のECC部132および8ビットの誤り検出訂正機能を有する第2のECC回路134を含むECC処理部135と、誤り訂正符号をスペア領域210に書込んだり、訂正されたデータをレギュラー領域200に書込む書込み回路138とを含む。
【0030】
コントローラ150は、設定レジスタ190に設定された選択情報(フラグ)に基づきイネーブル信号EN_1、EN_2をECC回路130へ出力し、第1のECC部132または第2のECC部134を選択的に動作させる。第1のECC部132は、ハミングコードを用いてシングルビットの誤り検出訂正を行い、第2のECC部134は、BCHコードを用いて8ビットの誤り検出訂正を行う。第1のECC部132が要する時間は、第2のECC部134が要する時間よりも短く、それ故、第1のECC部132が選択されたとき、第2のECC部134が選択されたときよりも読出しや書込みに要する時間を短くすることができ、反面、第2のECC部134が選択されたとき、第1のECC部132が選択されたときよりも多くの誤りビットの検出訂正を行うことができる。
【0031】
図6は、本発明の第1の実施例によるECC回路の誤り検出訂正能力の切替え動作を説明するフローである。メモリセルアレイ110のユーザー使用領域と異なるフューズROM(例えば、ユーザーによってアクセスすることができない領域)に、ECC回路130の第1のECC部132または第2のECC部134の選択情報の初期値が格納される。選択情報の初期値は、製品出荷時の情報として第1のECC部132の選択を設定する。パワーアップシーケンスの実行時、フューズROMに格納された選択情報が設定レジスタ190にロードされる(S100)。
【0032】
コントローラ150は、設定レジスタ190の選択情報を参照し、イネーブル信号EN_1を介して第1のECC部132をイネーブルし、イネーブル信号EN_2を介して第2のECC部134をディスエーブルする。これにより、読出しや書込み動作の際、選択された第1のECC部132が動作され、第2のECC部134は非動作となる(S110)。
【0033】
その後、フラッシュメモリの使用状況等に応じて、ユーザーは、設定レジスタ190の選択情報を書換え、第2のECC部134が選択されるようにする(S120)。選択情報の書き換えが行われると、コントローラ150は、イネーブル信号EN_1を介して第1のECC部132をディスエーブルし、イネーブル信号EN_2を介して第2のECC部134をイネーブルする。これにより、読出しや書込み動作の際、選択された第2のECC部134が動作され、第1のECC部132は非動作となる(S130)。
【0034】
このように本実施例によれば、設定レジスタの選択情報に応じて第1のECC部132または第2のECC部134を動作させるようにしたので、製品ライフサイクルに応じて誤り検出訂正能力を選択的に切替えることができ、誤り検出訂正の処理時間を最適に管理し、ページリード時間や連続読み出しの動作周波数の低下を抑制することができる。つまり、メモリセルの経年劣化が少ない期間では、ECC処理に要する時間を短くして読出しや書込みの高速化を可能にし、その一方で、メモリセルの経年劣化が多くなる期間では、誤り訂正能力を増強して信頼性の向上を図ることができる。
【0035】
なお、上記実施例では、設定レジスタ190は、フューズROMから初期値をロードするようにしたが、これは一例であり、本実施例は、必ずしもこのような態様に限定されるものではない。例えば、設定レジスタ190は、メモリセルアレイ110のユーザーが使用可能な領域の一部のメモリ空間を利用するものであってもよく、そのメモリ空間のデフォルト値(消去状態)が第1のECC部132の選択を示すようにしてもよい。この場合、コントローラ150は、当該メモリ空間のデフォルト値を読出し、第1のECC部132をイネーブルさせ、第2のECC部134をディスエーブルする。第2のECC部134を選択する場合には、ユーザーは、当該メモリ空間のデフォルト値をプログラムし、選択情報を書き換える。
【0036】
次に、本発明の第2の実施例について説明する。第1の実施例において第1のECC部132から第2のECC部134へ動作を切替えた場合、第1のECC部132で符号化されたデータを第2のECC部134で復号化することはできない。つまり、メモリセルアレイ110に格納されている第1のECC部132で生成された誤り訂正符号は、第2のECC部134で解読することができないため、第2のECC部134に切替えた場合には、第1のECC部132で生成された誤り訂正符号を第2のECC部132で生成された誤り訂正符号に変換しなければならない。
【0037】
そこで、第2の実施例は、フラッシュメモリのコピーバック機能を利用して、第1のECC部132で処理されたページをメモリセルアレイからページバッファ/センス回路170に読出し、読み出したデータを第1のECC部132で復号化し(つまり、誤り検出訂正を行い)、さらに復号化されたデータを第2のECC部134で再び符号化して誤り訂正符号を生成し、生成した誤り訂正符号を含むデータをメモリセルアレイの元のページにプログラムする。
【0038】
このようなデータ変換は、メモリセルアレイ110に格納された第1のECC部132についての全てのデータについて実施される。コントローラ150は、コピーバック機能を利用したデータ変換を、フラッシュメモリ100の動作に干渉しないようにバックグランドで自動的に実施したり、あるいは読出しや書込み等の動作が行われていない期間中に自動的に実施する。また、ある態様では、データ変換または未変換を表すフラグをスペア領域に格納し、コントローラ150は、当該フラグを参照してデータ変換を行い、変換後にフラグを書き換えるようにしてもよい。
【0039】
このように本実施例によれば、コピーバック機能を利用してデータ変換を自動的に行うようにしたので、第1のECC部132から第2のECC部134への誤り訂正機能の切替えを円滑に実施することができる。
【0040】
次に、本発明の第3の実施例について説明する。本実施例では、アドレス空間に応じて誤り検出訂正能力を切替えるものである。図7は、本実施例の設定レジスタ190の設定例を示す図である。設定レジスタ190には、アドレス空間とそれに対応するフラグとの関係が予め設定される。アドレス空間は、メモリセルアレイ110の行アドレスの範囲を規定し、例えば、アドレス空間1にはフラグ「0」、アドレス空間2にはフラグ「1」、アドレス空間3にはフラグ「0」が割り当てられる。フラグ「0」は、第1のECC部132の選択を示し、フラグ「1」は、第2のECC部134の選択を示し、従って、アドレス空間1への読出しや書込みが行われる場合には第1のECC部132が選択され、第2のアドレス空間2への読出しや書込みが行われる場合には第2のECC部132が選択される。
【0041】
図8は、第3の実施例によるECC回路の誤り検出訂正能力の切替え動作を説明するフローである。読出しまたは書込み動作が行われるとき、外部から入出力回路120を介して読出しまたは書込みのためのコマンドやアドレスが入力される(S200)。
【0042】
コントローラ150は、設定レジスタ190を参照し、入力されたアドレスの行アドレスに該当するアドレス空間のフラグを識別し(S210)、識別したフラグに従い第1のECC部132または第2のECC部134を選択するため、イネーブル信号EN_1、IN_2を介して第1のECC部132または第2のECC部134をイネーブルする(S220)。こうして、読出し動作または書込み動作時に、アドレスに応じて選択された第1のECC部132または第2のECC部134により誤り検出訂正が実施される(S230)。
【0043】
このように本実施例によれば、アドレス空間に応じて誤り検出訂正能力を変更することができる。例えば、ホスト側コンピュータがメモリセルアレイのデータ書換え回数または消去回数をブロック単位で管理しているような場合、アドレス空間をブロック単位で設定し、データ書換え回数または消去回数が一定以上になったとき、そのアドレス空間のフラグを「0」から「1」に書換えるようにしてもよい。これにより、アドレス空間のメモリセルの経年劣化に応じて誤り検出訂正能力を変更することができる。
【0044】
次に、第2のECC部134の具体例について説明する。第2のECC部134は、BCH符号を用いてデータを符号化するエンコーダと、BCH符号化されたデータを復号化するデコーダとを含む。図9(A)は、BCHデコーダの内部構成を示すブロック図である。BCHデコーダ300は、データのシンドロームを評価するシンドローム計算部310と、エラー位置多項式(ELP)を計算するユークリッド互除計算部320と、エラー位置多項式の根を計算し、誤り位置を探索する誤り位置探索部330と、探索された誤り位置に基づきページバッファ/センス回路170に訂正されたデータを書き戻す誤りビット訂正部340とを含む。
【0045】
BCHデコーダ300には、リセット信号RST_IN、ECC演算用のクロック信号CLK、イネーブル信号ENABLE_IN、バリッド信号VALID_IN、データDATA_INなどを受け取るための入力端子が設けられている。シンドローム計算部310は、その評価結果およびユークリッド互除の計算開始を示す開始信号EUC_Sをユークリッド互除計算部320に出力する。ユークリッド互除計算部320は、エラー位置多項式の計算結果と計算終了を示す終了信号EUC_Eを誤り位置探索部330へ出力する。
【0046】
図9(B)は、BCHデコーダの各部の処理例を示すタイミングチャートである。t1は、シンドローム計算部310の処理期間、t2は、ユークリッド互除計算部320の処理期間、t3は、誤り位置探索部330の処理期間、t4は、誤りビット訂正部340の処理期間を示している。
【0047】
BCHデコーダ300は、入力されたクロック信号CLKに同期して処理を行い、イネーブル信号ENABLE_INがHレベルに遷移することで動作可能になる。バリッド信号VALID_INのHレベルの期間中、ページバッファ/センス回路に保持されたデータがDATA_INからシンドローム計算部310に取り込まれる。シンドローム計算部310は、シンドロームの計算が終了すると、ユークリッドの互除の開始を表すパルス信号EUC_Sを出力し、これに応答して、ユークリッド互除計算部320がエラー位置多項式を計算する。ユークリッド互除計算部320は、エラー位置多項式の計算が終了すると、その終了を表すパルス信号EUC_Eを出力し、これに応答して、誤り位置探索部320が誤り位置を探索する。誤りビット訂正部340は、出力端子DATA_OUTを介してページバッファ/センス回路170のデータを書き換える。
【0048】
例えば、BCH符号を用いて、528バイト当たり、8ビットの誤り検出訂正を行う場合、シンドローム計算に149クロックサイクル、ユークリッド互除計算に82クロックサイクル、誤り位置探索に143クロックサイクル、誤り訂正に48クロックサイクルが必要になり、全体で422クロックサイクルが必要になる。クロック信号CLKの周波数が50MHzのとき、クロックの1サイクル時間は20nsであり、BCH符号のデコード処理には、8.44usを消費する。ページバッファ/センス回路170の1ページのサイズが2Kバイトであれば、約34us(1688サイクル=422*4)が必要となる。
【0049】
一方、ハミング符号を用いた1ビットの誤り検出訂正を行う場合、シンドローム計算と誤り訂正の構成が簡易になるため、2Kバイトの誤り検出訂正に必要なクロックサイクル数は330程度である。クロックの1サイクル時間が20nsであれば、約6.7usで処理が完了する。単純に8ビットのBCH符号と比較すると、約1/6の処理時間で済むことになる。4Kバイトのページ長で、アレイリード時間が20nsの場合、8ビットのBCH符号では、tRD2=(20us+34us*2)=88usに対して、1ビットのハミング符号では、tRD2=(20us+(6.7us*2)=34usとなり、両者の差は非常に大きくなる。従って、BCH符号を用いた場合、ページリード時間(tRD2)や連続読出し動作のためのクロック周波数の上限に影響を及ぼす。
【0050】
上記実施例では、1ビットの誤り検出訂正機能(第1のECC部132)と8ビットの誤り検出訂正機能(第2のECC部134)とを二重に実装することになるが、回路規模は8ビットの誤り検出訂正回路が支配的であり、誤りビット訂正部340は重複して利用できるため、ECC回路130は、8ビットの誤り訂正機能に1ビットの誤り検出訂正回路のシンドローム計算部を追加するだけで実現可能である。このためチップサイズへのインパクトはさほど影響はない。
【0051】
上記実施例では、ハミングコードを用いた誤り検出訂正とBCHコードを用いた誤り検出訂正とを例示したが、これは一例であり、本発明は、他のコードを用いた誤り検出訂正にも適用することができる。
【0052】
さらに上記実施例では、第2のECC部134のBCH符号において8ビットの誤り検出訂正を行うようにしたが、これは一例であり、第2のECC部134のBCH符号は、2ビット、4ビット、あるいは16ビットの誤り検出訂正を行うものであってもよい。さらに上記実施例では、第1のECC部132が1ビットの誤り検出訂正を行うようにしたが、これは一例であり、第1のECC部132による誤り検出訂正機能<第2のECC部134による誤り検出訂正機能の関係があれば、第1のECC部132は、2ビット以上の誤り検出訂正を行うようにしてもよい。
【0053】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0054】
100:フラッシュメモリ
110:メモリセルアレイ
120:入出力回路
130:ECC回路
132:第1のECC部
134:第2のECC部
140:アドレスレジスタ
150:コントローラ
160:ワード線選択回路
170:ページバッファ/センス回路
180:列選択回路
190:設定レジスタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
【手続補正書】
【提出日】2022-07-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メモリセルアレイと、当該メモリセルアレイに書込むデータまたはメモリセルアレイから読み出されたデータを保持するデータ保持部とを含む半導体記憶装置の誤り検出訂正方法であって、
mビットの誤り検出訂正を行う第1の誤り検出訂正機能またはnビットの誤り検出訂正を行う第2の誤り検出訂正機能を選択するための選択情報を設定するステップと(m、nは自然数であり、m<n)、
読出し動作または書込み動作時に、前記選択情報に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させるステップとを有し、
書込み動作時、前記第1または第2の誤り検出訂正機能は、外部から入力されたデータの誤り訂正符号を生成し、当該誤り訂正符号を前記データ保持部に書込み、
読出し動作時、前記第1または第2の誤り検出訂正機能は、前記データ保持部から受け取った誤り訂正符号に基づき前記データ保持部のデータを訂正する、誤り検出訂正方法。
【請求項2】
前記設定するステップは、外部からコマンドにより前記選択情報を変更可能である、請求項1に記載の誤り検出訂正方法。
【請求項3】
前記選択情報は、前記第1の誤り検出訂正機能を選択するためのメモリセルアレイの第1のアドレス空間および前記第2の誤り検出訂正機能を選択するためのメモリセルアレイの第2のアドレス空間を規定し、
前記実行させるステップは、読出し動作または書込み動作のアドレスに対応する第1または第2のアドレス空間に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる、請求項1に記載の誤り検出訂正方法。
【請求項4】
誤り検出訂正方法はさらに、前記第1の誤り検出訂正機能から前記第2の誤り検出訂正機能への動作が切替えられたとき、メモリセルアレイに書込まれた前記第1の誤り検出訂正機能に関連する第1のデータを前記第2の誤り検出訂正機能に関連する第2のデータに変換するステップを含む、請求項1に記載の誤り検出訂正方法。
【請求項5】
前記変換するステップは、メモリセルアレイから前記第1のデータをページバッファ/センス回路に読出し、読出した第1のデータを前記第2の誤り検出訂正機能を動作させて第2のデータに変換し、変換した第2のデータをメモリセルアレイの元の位置に書込む、請求項4に記載の誤り検出訂正方法。
【請求項6】
前記第1の誤り検出訂正機能は、ハミングコードにより1ビットの誤り検出訂正を行い、前記第2の誤り検出訂正機能は、BCHコードにより2ビット、4ビットまたは8ビットの誤り検出訂正を行う、請求項1ないし5いずれか1つに記載の誤り検出訂正方法。
【請求項7】
前記メモリセルアレイは、レギュラー領域とスペア領域とを含むNAND型のメモリセルアレイであり、前記スペア領域には、前記第1または第2の誤り検出訂正機能により生成された誤り訂正符号が記憶される、請求項1ないし6いずれか1つに記載の誤り検出訂正方法。
【請求項8】
メモリセルアレイと、
当該メモリセルアレイに書込むデータまたはメモリセルアレイから読み出されたデータを保持するデータ保持部と、
mビットの誤り検出訂正を行う第1の誤り検出訂正機能およびnビットの誤り検出訂正を行う第2の誤り検出訂正機能を含む誤り検出訂正手段と(m、nは自然数であり、m<n)、
前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を選択するための選択情報を設定する設定手段と、
読出し動作または書込み動作時に、前記選択情報に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる実行手段とを有し、
書込み動作時、前記誤り検出訂正手段は、外部から入力されたデータの誤り訂正符号を生成し、当該誤り訂正符号を前記データ保持部に書込み、
読出し動作時、前記第誤り検出訂正手段は、前記データ保持部から受け取った誤り訂正符号に基づき前記データ保持部のデータを訂正する、半導体記憶装置。
【請求項9】
前記設定手段は、外部からコマンドにより前記選択情報を変更可能である、請求項8に記載の半導体記憶装置。
【請求項10】
前記選択情報は、前記第1の誤り検出訂正機能を選択するためのメモリセルアレイの第1のアドレス空間および前記第2の誤り検出訂正機能を選択するためのメモリセルアレイの第2のアドレス空間を規定し、
前記実行手段は、読出し動作または書込み動作のアドレスに対応する第1または第2のアドレス空間に基づき前記第1の誤り検出訂正機能または前記第2の誤り検出訂正機能を実行させる、請求項8に記載の半導体記憶装置。
【請求項11】
前記実行手段は、前記第1の誤り検出訂正機能から前記第2の誤り検出訂正機能への動作が切替えられたとき、メモリセルアレイに書込まれた前記第1の誤り検出訂正機能に関連する第1のデータを前記第2の誤り検出訂正機能に関連する第2のデータに変換する変換手段を含む、請求項8に記載の半導体記憶装置。
【請求項12】
前記変換手段は、メモリセルアレイから第1のデータをページバッファ/センス回路に読出し、読出した第1のデータを第2の誤り検出訂正機能を動作させて第2のデータに変換し、変換した第2のデータをメモリセルアレイの元の位置に書込む、請求項11に記載の半導体記憶装置。
【請求項13】
前記第1の誤り検出訂正機能は、ハミングコードにより1ビットの誤り検出訂正を行い、前記第2の誤り検出訂正機能は、BCHコードにより2ビット、4ビットまたは8ビットの誤り検出訂正を行う、請求項8ないし12いずれか1つに記載の半導体記憶装置。
【請求項14】
前記メモリセルアレイは、レギュラー領域とスペア領域とを含むNAND型のメモリセルアレイであり、前記スペア領域には、前記第1または第2の誤り検出訂正機能により生成された誤り訂正符号が記憶される、請求項8ないし13いずれか1つに記載の半導体記憶装置。