特開2021-118011(P2021-118011A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ラピスセミコンダクタ株式会社の特許一覧

特開2021-118011半導体記憶装置及び半導体記憶装置のリフレッシュ方法
<>
  • 特開2021118011-半導体記憶装置及び半導体記憶装置のリフレッシュ方法 図000003
  • 特開2021118011-半導体記憶装置及び半導体記憶装置のリフレッシュ方法 図000004
  • 特開2021118011-半導体記憶装置及び半導体記憶装置のリフレッシュ方法 図000005
  • 特開2021118011-半導体記憶装置及び半導体記憶装置のリフレッシュ方法 図000006
  • 特開2021118011-半導体記憶装置及び半導体記憶装置のリフレッシュ方法 図000007
  • 特開2021118011-半導体記憶装置及び半導体記憶装置のリフレッシュ方法 図000008
  • 特開2021118011-半導体記憶装置及び半導体記憶装置のリフレッシュ方法 図000009
  • 特開2021118011-半導体記憶装置及び半導体記憶装置のリフレッシュ方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2021-118011(P2021-118011A)
(43)【公開日】2021年8月10日
(54)【発明の名称】半導体記憶装置及び半導体記憶装置のリフレッシュ方法
(51)【国際特許分類】
   G11C 16/34 20060101AFI20210712BHJP
   G06F 12/00 20060101ALI20210712BHJP
【FI】
   G11C16/34 110
   G11C16/34 163
   G06F12/00 550Z
   G06F12/00 597U
【審査請求】未請求
【請求項の数】10
【出願形態】OL
【全頁数】13
(21)【出願番号】特願2020-9681(P2020-9681)
(22)【出願日】2020年1月24日
(71)【出願人】
【識別番号】308033711
【氏名又は名称】ラピスセミコンダクタ株式会社
(74)【代理人】
【識別番号】100079119
【弁理士】
【氏名又は名称】藤村 元彦
(72)【発明者】
【氏名】上田 元輝
【テーマコード(参考)】
5B160
5B225
【Fターム(参考)】
5B160NA02
5B225BA19
5B225CA27
5B225DE07
5B225DE08
5B225DE09
5B225DE16
5B225EA05
5B225FA01
(57)【要約】
【課題】データ消去の回数を抑えてメモリを長寿命化することが可能な半導体記憶装置を提供する。
【解決手段】各々が複数のセルからなるm個のページを夫々含むn個のブロック(m,nは2以上の整数)を有する第1の記憶部と、複数のセルを有する第2の記憶部と、第1の記憶部及び第2の記憶部に対するデータの書き込み、読み出し及び消去を制御する制御部と、を有する。制御部は、第1の記憶部からページ毎にデータを読み出して誤り検出を行い、当該誤り検出において、第1の記憶部内でデータの誤りを含むページが検出された場合には、当該誤りを含むページのデータに誤り訂正を施したデータを第2の記憶部に書き込み、第1の記憶部の1のブロック内の所定数のページに記憶されていたデータが第2の記憶部に書き込まれた場合に、前記1のブロックのリフレッシュ処理を実行する。
【選択図】図1
【特許請求の範囲】
【請求項1】
各々が複数のセルからなるm個のページを夫々含むn個のブロック(m,nは2以上の整数)を有する第1の記憶部と、
複数のセルを有する第2の記憶部と、
前記第1の記憶部及び前記第2の記憶部に対するデータの書き込み、読み出し及び消去を制御する制御部と、
を有し、
前記制御部は、前記第1の記憶部からページ毎にデータを読み出して誤り検出を行い、
当該誤り検出において、前記第1の記憶部内でデータの誤りを含むページが検出された場合には、当該誤りを含むページのデータに誤り訂正を施したデータを前記第2の記憶部に書き込み、
前記第1の記憶部の1のブロック内の所定数のページに記憶されていたデータが前記第2の記憶部に書き込まれた場合に、前記1のブロックのリフレッシュ処理を実行することを特徴とする半導体記憶装置。
【請求項2】
前記制御部は、前記リフレッシュ処理において、前記1のブロックのm個のページに記憶されているデータのうち、前記第2の記憶部に書き込まれた前記データを前記第1の記憶部の1の空きブロックに書き込み、前記第2の記憶部に書き込まれた前記データ以外のデータを前記第1の記憶部の前記1のブロックから読み出して前記1の空きブロックに書き込むことを特徴とする請求項1に記載の半導体記憶装置。
【請求項3】
前記制御部は、前記第1の記憶部の前記1のブロック以外のブロックのうちの1つのブロックに記録されているデータを消去することにより、前記1の空きブロックを生成することを特徴とする請求項2に記載の半導体記憶装置。
【請求項4】
前記制御部は、セル毎に複数ビットのデータを記録する方式である第1のデータ記録方式で前記第1の記憶部にデータを書き込み、
セル毎に記録されるデータのビット数が前記第1のデータ記録方式よりも少ない第2のデータ記録方式で前記第2の記憶部にデータを書き込むことを特徴とする請求項1乃至3のいずれか1に記載の半導体記憶装置。
【請求項5】
前記第1のデータ記録方式は、MLC(Multiple Level Cell)方式又はTLC(Triple Level Cell)方式であり、
前記第2のデータ記録方式は、SLC(Single Level Cell)方式であることを特徴とする請求項4に記載の半導体記憶装置。
【請求項6】
前記第1の記憶部は、前記第1のデータ記録方式でデータが記録される第1の不揮発性メモリから構成され、
前記第2の記憶部は、前記第2のデータ記録方式でデータが記録される第2の不揮発性メモリから構成されていることを特徴とする請求項4又は5に記載の半導体記憶装置。
【請求項7】
前記第1の記憶部は、1の不揮発性メモリ内のn個のブロックからなるブロック群として構成され、
前記第2の記憶部は、前記1の不揮発性メモリ内の前記n個のブロックとは異なるブロックから構成されていることを特徴とする請求項1乃至5のいずれか1に記載の半導体記憶装置。
【請求項8】
各々が複数のセルからなるm個のページを夫々含むn個のブロック(m,nは2以上の整数)を有する第1の記憶部と、複数のセルを有する第2の記憶部と、データの書き込み、読み出し、消去及び誤り検出訂正処理を制御する制御部と、を有する半導体記憶装置が実行するブロックのリフレッシュ方法であって、
前記第1の記憶部からページ毎にデータを読み出して誤り検出を行うステップと、
前記誤り検出において前記第1の記憶部にデータの誤りを含むページが検出された場合に、当該誤りを含むページのデータに誤り訂正を施したデータを前記第2の記憶部に書き込むステップと、
前記第1の記憶部の1のブロックの所定数のページに記憶されていたデータが前記第2の記憶部に書き込まれた場合に、前記1のブロックのリフレッシュ処理を実行するステップと、
を含むことを特徴とするリフレッシュ方法。
【請求項9】
前記リフレッシュ処理を実行するステップは、
前記1のブロックのm個のページに記憶されているデータのうち、前記第2の記憶部に書き込まれた前記データを前記第1の記憶部の1の空きブロックに書き込むステップと、
前記1のブロックのm個のページに記憶されているデータのうち、前記第2の記憶部に書き込まれた前記データ以外のデータを前記第1の記憶部の前記1のブロックから読み出して前記1の空きブロックに書き込むステップと、
を含むことを特徴とする請求項8に記載のリフレッシュ方法。
【請求項10】
前記第1の記憶部の前記1のブロック以外のブロックのうちの1つのブロックに記録されているデータを消去することにより、前記1の空きブロックを生成するステップを含むことを特徴とする請求項9に記載のリフレッシュ方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体記憶装置及び半導体記憶装置のリフレッシュ方法に関する。
【背景技術】
【0002】
近年、SSD(Solid State Drive)、SD(Secure Digital)カード等のストレージデバイスやモバイル機器等において、NANDフラッシュメモリの需要が高まっている。それに伴って、NANDフラッシュメモリの大容量化も進んでいる。
【0003】
NANDフラッシュメモリでは、ゲート絶縁膜の物理的な劣化によるデータ保持の不良やリードディスターブ等による電荷の移動等により、正しいデータ値が読み取れなくなる現象(以下、データの劣化と称する)が生じる。このようなデータの劣化に対処するため、NANDフラッシュメモリでは、メモリ領域のリフレッシュ処理が行われている(例えば、特許文献1)。
【0004】
リフレッシュ処理は、NANDフラッシュメモリのブロックに書き込まれているデータをブロック内の全てのページについて一旦読み出し、他のブロックに新たに書き直す処理である。リフレッシュ処理は、例えばデータの読み出し時にデータの劣化が発見された場合に行われる。通常、NANDフラッシュメモリのデータの読み出しはページ単位で行われ、データの消去はブロック毎に行われる。リフレッシュ処理はデータの消去を伴う処理であるため、ブロック単位で行われる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−87509号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
メモリセルへのデータ記録方式として、1つのメモリセルに1ビットのデータを記録するSLC(Single Level Cell)方式、2ビットのデータを記録するMLC(Multiple Level Cell)方式、3ビットのデータを記録するTLC(Triple Level Cell)方式がある。近年では、1つのメモリセルに複数ビットのデータを記録できるMLC方式やTLC方式の採用が増加している傾向にある。しかし、これらのデータ記録方式には、1つのメモリセルに記録するデータのビット数が大きくなればなるほど、データの書き換え可能回数が少なくなるというデメリットが存在する。従って、MLC方式やTLC方式では、NANDフラッシュメモリを長寿命化するため、消去回数を抑える制御が特に必要となる。
【0007】
上記の通り、NANDフラッシュメモリの特性上、データの読み出しはページ単位で行われる。このため、例えばブロック内の1ページのみが劣化していた場合でも、そのブロックはリフレッシュ対象となってしまう。従って、データが劣化していない正常なページについてまでデータのコピーを行うことになり、無駄な処理が発生してしまう。そして、リフレッシュ処理はデータの消去を伴うため、少数のエラーページのためにNANDフラッシュメモリの寿命を縮めてしまうという問題があった。
【0008】
本発明は、上記問題点に鑑みてなされたものであり、データ消去の回数を抑えてメモリを長寿命化することが可能な半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る半導体記憶装置は、各々が複数のセルからなるm個のページを夫々含むn個のブロック(m,nは2以上の整数)を有する第1の記憶部と、複数のセルを有する第2の記憶部と、前記第1の記憶部及び前記第2の記憶部に対するデータの書き込み、読み出し及び消去を制御する制御部と、を有し、前記制御部は、前記第1の記憶部からページ毎にデータを読み出して誤り検出を行い、当該誤り検出において、前記第1の記憶部内でデータの誤りを含むページが検出された場合には、当該誤りを含むページのデータに誤り訂正を施したデータを前記第2の記憶部に書き込み、前記第1の記憶部の1のブロック内の所定数のページに記憶されていたデータが前記第2の記憶部に書き込まれた場合に、前記1のブロックのリフレッシュ処理を実行することを特徴とする。
【0010】
また、本発明に係るリフレッシュ方法は、各々が複数のセルからなるm個のページを夫々含むn個のブロック(m,nは2以上の整数)を有する第1の記憶部と、複数のセルを有する第2の記憶部と、データの書き込み、読み出し、消去及び誤り検出訂正処理を制御する制御部と、を有する半導体記憶装置が実行するブロックのリフレッシュ方法であって、前記第1の記憶部からページ毎にデータを読み出して誤り検出を行うステップと、前記誤り検出において前記第1の記憶部にデータの誤りを含むページが検出された場合に、当該誤りを含むページのデータに誤り訂正を施したデータを前記第2の記憶部に書き込むステップと、前記第1の記憶部の1のブロックの所定数のページに記憶されていたデータが前記第2の記憶部に書き込まれた場合に、前記1のブロックのリフレッシュ処理を実行するステップと、を含むことを特徴とする。
【発明の効果】
【0011】
本発明の半導体記憶装置によれば、データ消去の回数を抑えてメモリの長寿命化を図ることが可能となる。
【図面の簡単な説明】
【0012】
図1】実施例1のNANDフラッシュ制御システムの構成を示すブロック図である。
図2】データ検査処理の処理ルーチンを示すフローチャートである。
図3】冗長メモリへのデータの書き込みを模式的に示す図である。
図4】リフレッシュ処理の処理ルーチンを示すフローチャートである。
図5】リフレッシュ処理におけるデータの読み出し及び書き込みを模式的に示す図である。
図6】実施例2のNANDフラッシュ制御システムの構成を示すブロック図である。
図7】実施例2のNANDフラッシュメモリの第2の領域へのデータの書き込みを模式的に示す図である。
図8】実施例2の変形例によるNANDフラッシュメモリの第2の領域へのデータの書き込みを模式的に示す図である。
【発明を実施するための形態】
【0013】
以下に本発明の好適な実施例を詳細に説明する。なお、以下の各実施例における説明及び添付図面においては、実質的に同一または等価な部分には同一の参照符号を付している。
【実施例1】
【0014】
図1は、本発明に係るNANDフラッシュ制御システム100の概略構成を示すブロック図である。NANDフラッシュ制御システム100は、ホストコンピュータ10及び半導体記憶装置11から構成されている。
【0015】
ホストコンピュータ10及び半導体記憶装置11は互いに通信接続されている。ホストコンピュータ10は、データの読み出しや書き込みを指示するコマンドを半導体記憶装置11に送信する。半導体記憶装置11は、ホストコンピュータ10からのコマンドを受信し、これに応じてデータの書き込み動作や読み出し動作を実行する。
【0016】
半導体記憶装置11は、コントローラ12、NANDフラッシュメモリ13、RAM(Random Access Memory)14及び冗長メモリ15を有する。
【0017】
コントローラ12は、半導体記憶装置11の動作を制御する制御部であり、例えばCPU(Central Processing Unit)から構成されている。コントローラ12は、NANDフラッシュメモリ13、RAM14及び冗長メモリ15にアクセスし、データの書き込み、読み出し及び消去等の各種のデータ処理を実行する。
【0018】
また、コントローラ12は、ECC(Error Check and Correct)回路を含み、NANDフラッシュメモリ13から読み出したデータに対する誤り検出訂正処理を実行する。本実施例では、例えばNANDフラッシュメモリ13に設けられたゲート絶縁膜(図示せず)の物理的な劣化によるデータ保持の不良やリードディスターブによる電荷の移動等に起因する所謂データの劣化がエラーとして検出される。
【0019】
また、コントローラ12は、誤り検出訂正処理におけるエラー検出の結果に基づいて、冗長メモリ15へのデータの書き込み及びNANDフラッシュメモリ13のリフレッシュ処理を実行する。
【0020】
NANDフラッシュメモリ13は、例えばEEPROM(Electrically Erasable Programmable Read-Only Memory)等からなる不揮発性の半導体メモリである。NANDフラッシュメモリ13は、記憶領域としてn個のブロック(nは2以上の整数)を有する。n個のブロックの各々は、m個のページ(mは2以上の整数)から構成されている。m個のページの各々は、複数のセルから構成されている。本実施例では、各々のページへのデータの書き込みは、セル毎に2ビットのデータを記録するMLC(Multiple Level Cell)方式で行われる。
【0021】
NANDフラッシュメモリ13へのデータの書き込み及びNANDフラッシュメモリ13からのデータの読み出しは、ページ毎に行われる。一方、NANDフラッシュメモリ13に記憶されているデータの消去は、ブロック単位で行われる。なお、NANDフラッシュメモリ13には、誤り訂正符号ECC(Error Correction Code)が付加されたデータが書き込まれる。
【0022】
RAM14は、NANDフラッシュメモリ13のリフレッシュ処理におけるキャッシュメモリとして機能する揮発性メモリである。例えば、リフレッシュ処理では、NANDフラッシュメモリ13及び冗長メモリ15から読み出されたデータがRAM14にいったん格納される。そして、RAM14から当該データが読み出され、NANDフラッシュメモリ13に書き込まれる。
【0023】
冗長メモリ15は、半導体記憶装置11にNANDフラッシュメモリ13とは別に設けられた不揮発性の半導体メモリである。冗長メモリ15は、各々が複数のセルからなる複数のページを有する。冗長メモリ15へのデータの書き込みは、セル毎に1ビットのデータを記録するSLC(Single Level Cell)方式によって行われる。
【0024】
本実施例では、誤り検出によりデータの劣化が進んだページが検出された場合に、当該ページのデータが誤り訂正を経て冗長メモリ15に記録される。以後、ブロックのリフレッシュ処理が行われるまでの間、当該ページのデータを読み出す際には、冗長メモリ15からデータの読み出しが行われる。なお、ブロックのリフレッシュ処理が行われると、当該ブロックに対応するデータは冗長メモリ15から消去される。
【0025】
次に、本実施例に係る半導体記憶装置11のエラー検出処理及びリフレッシュ処理の処理動作について、図2及び図4のフローチャートを参照して説明する。
【0026】
コントローラ12は、例えば半導体記憶装置11の電源が投入された直後のタイミングで、NANDフラッシュメモリ13のエラー検出処理を実行する。本実施例のエラー検出処理は、誤り訂正符号ECCを用いた誤り検出訂正処理であり、n個のブロックの各々についてページ毎に行われる。以下の説明では、NANDフラッシュメモリ13のn個のブロックを第1ブロック〜第nブロック、m個のページを第1ページ〜第mページとする。
【0027】
コントローラ12は、NANDフラッシュメモリ13のn個のブロックのうち、エラー検出の対象となるブロックを示す“k”の値をk=1にセットする(STEP101)。
【0028】
コントローラ12は、NANDフラッシュメモリ13の第kブロックを対象としてデータ検査を実行する(STEP102)。具体的には、第1〜第mページの各々から順次データを読み出し、読み出したデータに対して誤り検出訂正を行うことにより、各ページのデータの劣化の有無を検出する。
【0029】
コントローラ12は、データ検査(誤り検出訂正処理)の結果、データの劣化したページが発見されたか否かを判定する(STEP103)。
【0030】
データの劣化したページが発見されたと判定すると(STEP103:Yes)、コントローラ12は、誤り訂正を経たNANDフラッシュメモリ13の当該ページのデータを、冗長メモリ15に書き込む(STEP104)。一方、データの劣化したページが発見されたと判定されなかった場合(STEP103:No)、STEP107に進む。
【0031】
図3は、STEP104で行われる冗長メモリへのデータの書き込みを模式的に示す図である。例えば、NANDフラッシュメモリ13の「ブロック2」の「ページ1」でデータの劣化が検出された場合、ブロック2のページ1(図4に斜線で示す)に記録されていたデータである「データ2,1」が誤り訂正を経て冗長メモリ15に書き込まれる。
【0032】
再び図2を参照すると、コントローラ12は、第kブロックの閾値以上のページ数のデータが冗長メモリ15に格納されたか否か(すなわち、第kブロックの所定以上のデータ量のデータが冗長メモリ15に書き込まれたか否か)を判定する(STEP105)。
【0033】
第kブロックの閾値以上のページ数のデータが冗長メモリ15に格納されたと判定すると(STEP105:Yes)、コントローラ12は、NANDフラッシュメモリ13のリフレッシュ処理を実行する(STEP106)。
【0034】
図4は、リフレッシュ処理の処理ルーチンを示すフローチャートである。まず、コントローラ12は、リフレッシュ処理におけるデータの書き込み先として用いるブロック(以下、リフレッシュ先ブロックと称する)を空きブロックとするため、当該ブロックに書き込まれているデータを消去する(STEP201)。
【0035】
コントローラ12は、NANDフラッシュメモリ13の第kブロックのm個のページのうち、リフレッシュ処理におけるデータ移動の対象となるページを示す“j”の値をj=1にセットする(STEP202)。
【0036】
コントローラ12は、jページ目のデータが冗長メモリ15に格納されているか否か、すなわち図2のフローチャートのSTEP104で冗長メモリ15に書き込まれたデータであるか否かを判定する(STEP203)。
【0037】
jページ目のデータが冗長メモリ15に格納されていると判定すると(STEP203:Yes)、コントローラ12は、jページ目のデータを冗長メモリ15から読み出す(STEP204)。
【0038】
一方、jページ目のデータが冗長メモリ15に格納されていないと判定すると(STEP203:No)、コントローラ12は、jページ目のデータをNANDフラッシュメモリ13の第kブロックの第jページから読み出す(STEP205)。
【0039】
コントローラ12は、STEP204又はSTEP205で読み出されたjページ目のデータを、NANDフラッシュメモリ13のリフレッシュ先ブロックのメモリ領域に書き込む(STEP206)。
【0040】
図5は、STEP204〜206で行われるデータの読み出し及び書き込みを模式的に示す図である。ここでは、NANDフラッシュメモリ13の「ブロック2」を対象とするエラー検出処理(図2のSTEP102〜104を参照)において、「ページ1、3、4、5及びm」でデータのエラーが検出された場合を例として示している。
【0041】
ページ1、3、4、5及びmでデータのエラーが検出された場合、当該ページに記憶されていたデータが誤り訂正を経て冗長メモリ15にコピーされる。このため、図5に示すように、冗長メモリ15には、NANDフラッシュメモリ13のブロック2のページ1、3、4、5及びmの各々に対応するデータである「データ2,1」、「データ2,3」、「データ2,4」、「データ2,5」及び「データ2,m」が格納されている。従って、コントローラ12は、これらのデータを読み出し、リフレッシュ先のブロックである「ブロックX」に書き込む。
【0042】
一方、ブロック2のページ1、3、4、5及びm以外のページに書き込まれているデータについては、データエラーが検出されていないため、対応するデータが冗長メモリ15に格納されていない。このため、コントローラ12は、これらのデータをNANDフラッシュメモリ13のブロック2から読み出し、リフレッシュ先のブロックであるブロックXに書き込む。
【0043】
これにより、ブロックXには、ページ1〜mに対応するデータ2,1、データ2,2データ2,3、・・・データ2,mが書き込まれ、ブロック2についてのリフレッシュ処理が完了する。
【0044】
再び図4を参照すると、コントローラ12は、STEP203〜206の一連の処理が第kブロックのmページ目まで行われたか否かを判定する(STEP207)。
【0045】
一連の処理がmページ目まで行われていないと判定すると(STEP207:No)、jの値を“+1”だけインクリメントし(STEP208)、STEP203に戻る。
【0046】
一方、一連の処理がmページ目まで行われたと判定すると(STEP207:Yes)、冗長メモリ15に記録されている第kブロックのデータを消去し(STEP209)、リフレッシュ処理を終了する。
【0047】
再び図2を参照すると、STEP103においてデータの劣化したページが発見されたと判定されなかった場合(STEP103:No)、STEP105において第kブロックの閾値以上のページ数のデータが冗長メモリ15に格納されていないと判定された場合(STEP105:No)、及びSTEP106の第kブロックのリフレッシュ処理が終了した場合、コントローラ12は、STEP102〜106の一連の処理が第nブロックまで行われたか否かを判定する(STEP107)。
【0048】
一連の処理が第nブロックまで行われていないと判定すると(STEP107:No)、kの値を“+1”だけインクリメントし(STEP108)、STEP102に戻る。
【0049】
一方、一連の処理が第nブロックまで行われたと判定すると(STEP107:Yes)、NANDフラッシュメモリ13についてのエラー検出処理を終了する。
【0050】
以上のように、本実施例の半導体記憶装置11では、NANDフラッシュメモリ13からデータを読み出して誤り検出訂正を行い、エラーが検出されたページのデータを冗長メモリ15に書き込む。そして、特定のブロック内の一定以上のページ数のデータが冗長メモリ15に記録された場合に、当該ブロックのリフレッシュ処理を実行する。
【0051】
本実施例の半導体記憶装置11によれば、データの劣化が発見されたページの数が1つのブロックにつき所定数以上に達した場合に当該ブロックのリフレッシュ処理を行うため、データが劣化したページが発見される度にリフレッシュ処理を行う場合と比べて、データの消去回数を抑えることができる。従って、NANDフラッシュメモリ13を長寿命化することが可能となる。
【実施例2】
【0052】
次に、本発明の実施例2について説明する。図6は、本実施例のNANDフラッシュ制御システム200の概略構成を示すブロック図である。NANDフラッシュ制御システム200は、ホストコンピュータ20及び半導体記憶装置21から構成されている。
【0053】
半導体記憶装置21は、コントローラ12、RAM14及びNANDフラッシュメモリ23を有する。
【0054】
本実施例のNANDフラッシュメモリ23は、複数のブロックからなる第1の領域と、これとは異なるブロックからなる第2の領域と、から構成されている。
【0055】
第1の領域は、NANDフラッシュメモリ23に対する通常のデータの書き込みに用いられるメモリ領域である。第1の領域は、各々がm個のページからなるp個のブロック(pはp<nを満たす自然数)から構成されている。本実施例では、第1の領域へのデータの書き込みはMLC方式によって行われる。
【0056】
第2の領域は、第1の領域においてデータが劣化したページが検出された場合に、当該ページのデータを書き込むためのメモリ領域である。すなわち、本実施例では、実施例1の冗長メモリ15(図1を参照)の代わりに、通常のメモリ領域として用いる第1の領域と同一のチップ内に、冗長領域として用いる第2の領域が設けられている。第2の領域は、各々がr個のページ(rはr<mを満たす自然数)からなるq個のブロック(qはq=n−pを満たす自然数)から構成されている。本実施例では、第2の領域へのデータの書き込みはSLC方式によって行われる。
【0057】
コントローラ12は、NANDフラッシュメモリ13の第1の領域のp個のブロックに対してページ毎に誤り検出訂正処理を行い、各ページにおけるデータの劣化の有無を検出する。データの劣化したページを発見すると、コントローラ12は、誤り訂正を経た当該ページのデータをNANDフラッシュメモリ13の第2の領域に書き込む。
【0058】
図7は、第2の領域へのデータの書き込みを模式的に示す図である。例えば、NANDフラッシュメモリ13の第1の領域のブロック2において、ページ1、3及び4でデータの劣化が検出された場合、これらのページに記録されていたデータである「データ2,1」、「データ2,3」及び「データ2,4」が誤り訂正を経てNANDフラッシュメモリ13の第2の領域に書き込まれる。以後、ブロックのリフレッシュ処理が行われるまでの間、当該ページのデータを読み出す際には、第2の領域からデータの読み出しが行われる。そして、第1の領域のブロックのリフレッシュ処理が行われると、当該ブロックに対応するデータは第2の領域から消去される。
【0059】
なお、第2の領域の1つのブロックには第1の領域の1つのブロックのページのデータが書き込まれるように、管理及び制御がなされる。すなわち、第1の領域の同一のブロックに記録されていたデータは、第2の領域の同一のブロックに書き込まれる。そして、第1の領域の互いに異なるブロックに記録されていたデータは、第2の領域の互いに異なるブロックにそれぞれ書き込まれる。
【0060】
コントローラ12は、第2の領域の1つのブロックの全ページ(すなわち、r個のページ)にデータが書き込まれた場合に、そのデータの元の記録場所であるページを含む第1の領域のブロックについて、リフレッシュ処理を実行する。
【0061】
リフレッシュ処理では、コントローラ12は、第2の領域に記録されているデータ(すなわち、データの劣化が発見されたページのデータ)については、第2の領域から読み出したデータをリフレッシュ先のブロックに書き込む。一方、第2の領域に記録されていないデータ(すなわち、データの劣化が発見されなかったページのデータ)については、コントローラ12は、第1の領域から読み出したデータをリフレッシュ先のブロックに書き込む。
【0062】
このように、本実施例の半導体記憶装置21では、NANDフラッシュメモリ13にSLC方式でデータを書き込む第2の領域を設け、データエラーが検出されたページのデータの移動先となる退避用のメモリとして使用する。SLC方式は、MLC方式やTLC方式と比べてデータの消去可能回数が多いため、データが繰り返し消去されることを前提とする退避用のメモリとして使用しても、NANDフラッシュメモリ13の寿命の低下を抑えることができる。従って、本実施例の半導体記憶装置21によれば、実施例1のような冗長メモリを別途設けることなく、NANDフラッシュメモリ13を長寿命化することが可能となる。
【0063】
なお、本発明は上記実施例で示したものに限られない。例えば、上記実施例では、半導体記憶装置11の電源投入の直後にNANDフラッシュメモリ13の第1〜第nのブロックの各々のページについて順次エラー検出処理を行う例について説明した。しかし、エラー検出処理を行うタイミングはこれに限られない。例えば、あるブロックに対してアクセスがあった場合に、そのブロックについてのみエラー検出処理を行ってもよい。この場合、当該ブロックのみを対象として、図2のフローチャートのSTEP103〜106の処理(すなわち、冗長メモリ15へのデータの書き込み及びリフレッシュ処理)が実行される。
【0064】
また、電源投入直後にエラー検出処理を行う場合であっても、必ずしも1回のエラー検出処理で全てのブロックに対して処理を行わなくてもよい。例えば、1回の電源投入につきk個(kはn未満の自然数)のブロックを対象としてエラー検出処理を行い、対象となるブロックを電源投入毎に順次遷移させるようにしてもよい。
【0065】
また、上記実施例2では、NANDフラッシュメモリ23が、通常のデータの書き込みを行う第1の領域と、エラーを含むページが検出された際に当該ページのデータの書き込みを行う第2の領域と、から構成されている場合について説明した。しかし、第1の領域及び第2の領域の区分は、予めなされていなくてもよい。すなわち、通常の状態ではNANDフラッシュメモリ23の全てのメモリ領域を第1の領域として使用し、データの劣化が検出された場合に、その時点で空いているブロックを第2の領域として使用するように構成されていてもよい。
【0066】
また、上記実施例2では、MLC方式で第1の領域へのデータの書き込みを行い、SLC方式で第2の領域へのデータの書き込みを行う場合を例として説明した。しかし、データ記録方式はこれに限られない。例えば、第1の領域にはTLC(Triple Level Cell)方式でデータを記録し、第2の領域にはMLC方式でデータを記録するようにしてもよい。ただし、第2の領域は、データエラーが検出された第1の領域のページのデータを一時的に移す退避用のメモリとして用いる領域であり、繰り返し消去が行われることを前提とする記憶領域であるため、第1の領域よりも消去可能回数の多いデータ記録方式を採用することが望ましい。
【0067】
また、上記実施例では、リフレッシュ処理の最初の段階(図4のSTEP201)でリフレッシュ先ブロックに書き込まれているデータを消去する場合を例として説明した。しかし、リフレッシュ先ブロックのデータの消去のタイミングはこれに限られず、リフレッシュ処理を行う段階でリフレッシュ先ブロックにデータが記録されていない状態が実現されていればよい。例えば、予め空きブロックとなっているブロックをリフレッシュ先ブロックとして用いてもよい。また、リフレッシュ処理を行った後に元のデータが記録されていたブロックの消去を行うことにより、一定の空きブロックが常に確保されるようにしてもよい。
【0068】
また、上記実施例2では、第2の領域の1つのブロックの全ページにデータが格納された場合にリフレッシュ処理を行う場合を例として説明した。しかし、リフレッシュ処理を行わず、エラー検出時のデータの移動先(退避先)である第2領域のブロックを、そのままデータのコピー先のブロックとして用いてもよい。例えば、図8に示すように、劣化したデータを含むページを発見した際に当該ページのデータを第2の領域のブロックに順次書き込み、第2の領域の1のブロックの全てのページにデータが格納された場合には、当該1のブロックに隣接するブロックにデータを順次書き込む。第2の領域の複数のブロックに亘ってデータを記録することにより、最終的には第1の領域の1のブロックの全てのページのデータを第2領域に移すことができる。そして、第1の領域の1のブロックに対応するデータを第2の領域の複数のブロックで管理することにより、リフレッシュ処理を行うことなくデータの書き直しを完了することができる。従って、リフレッシュ処理に付随するデータの消去を行う必要がないため、NANDフラッシュメモリを長寿命化することが可能となる。
【0069】
また、本発明の半導体記憶装置は、NANDフラッシュメモリ以外の他の種類の不揮発性メモリにも適用することが可能である。例えば、NANDフラッシュメモリはページ毎にデータの書き込み及び読み出しを行い、ブロック毎にデータの消去を行うことを前提としているが、これとは異なり、ページ毎にデータの消去を行うことが可能な不揮発性メモリに本発明を適用することも可能である。このような不揮発性メモリにおいても、誤りを含むページの数が一定以上に達した場合にリフレッシュ処理を実行することにより、その都度リフレッシュ処理を実行する場合と比べて、少ない機会に集中してリフレッシュ処理を行うことが可能となる。
【符号の説明】
【0070】
100、200 NANDフラッシュ制御システム
10 ホストコンピュータ
11、21 半導体記憶装置
12 コントローラ
13 NANDフラッシュメモリ
14 RAM
15 冗長メモリ
図1
図2
図3
図4
図5
図6
図7
図8