図面 (/)

技術 不揮発性メモリにおける書き込み欠陥からのデータ保護

出願人 アップルインコーポレイテッド
発明者 ミハアンホルトバラクバウムアレキサンダー(サーシャ)パレイ
出願日 2012年11月9日 (8年0ヶ月経過) 出願番号 2012-260307
公開日 2013年5月23日 (7年6ヶ月経過) 公開番号 2013-101743
状態 特許登録済
技術分野 エラーの検出訂正 記憶装置の信頼性向上技術 半導体メモリの信頼性技術 リードオンリーメモリ
主要キーワード 停電保護 サブ組み合わせ 状態指示子 低下モード バックアップブロック 一体的部分 プログラミング機構 限定セット
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2013年5月23日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (4)

課題

メモリ装置書き込み欠陥からデータを保護するための方法及びシステムを提供する。

解決手段

この方法は、データアイテムのセットにわたる冗長情報を計算し、データアイテムを、メモリに記憶するために送信することを含む。冗長情報は、データアイテムがメモリに首尾良く書き込まれるまでの間のみ保持され、次いで、破棄される。データアイテムは、それをメモリに書き込むのに欠陥が生じたとき、冗長情報を使用して回復される。

概要

背景

フラッシュメモリ等の多くの形式メモリ装置は、データを記憶するためアナログメモリセルアレイを使用している。各アナログメモリセルは、セルに記憶されるデータを表わす電荷又は電圧のような或るレベル所与物理量を保持する。この物理量のレベルは、記憶値又はアナログ値とも称される。例えば、フラッシュメモリでは、各アナログメモリセルが或る量の電荷を保持する。考えられるアナログ値の範囲は、典型的に、1つ以上のデータビット値を表わすプログラミング状態に各々対応する領域に分割される。望ましいビット(1つ又は複数)に対応する公称アナログ値を書き込むことにより、アナログメモリセルにデータが書き込まれる。

シングルレベルセル(SLC)装置と一般的に称されるあるメモリ装置は、単一ビットの情報を各メモリセルに記憶し、即ち各メモリセルは、2つの考えられるメモリ状態をとるようにプログラムすることができる。マルチレベルセルMLC)装置ともしばしば称される高密度装置は、メモリセル当たり2つ以上のビットを記憶し、即ち3つ以上の考えられるメモリ状態を取るようにプログラムすることができる。

フラッシュメモリ装置は、例えば、参考としてここに援用するベッツ氏等が著作した“Introduction to Flash memory”、Proceedings of theIEEE、第91巻、第4号、4月、2003年、第489−502頁に掲載されている。マルチレベルフラッシュセル及び装置は、例えば、参考としてここに援用するエイタン氏等が著作した“Multilevel Flash Cells and their Trade-offs”、Proceedings of the 1996 IEEE International Electron Devices Meeting (IEDM)、ニューヨーク州ニューヨーク、第169−172頁に掲載されている。この論文は、共通接地、DINOR、AND、NOR及びNANDセルのような多数の種類のマルチレベルフラッシュセルを比較している内容である。

エイタン氏等は、ニトリドリードオンリメモリ(NROM)と称される別の形式のアナログメモリセルを、参考としてここに援用する“Can NROM, a 2-bit, TrappingStorage NVM Cell, Give a Real Challenge to Floating Gate Cells?”、Proceedings of the 1999 International Conference on Solid State Devices and Materials (SSDM)、日本、東京、1999年9月21−24日、第522−524頁に掲載している。また、NROMセルは、参考としてここに援用する、マーヤン氏等が著作した“A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate”、Proceedings of the 2002IEEE International Solid-StateCircuits Conference (ISSCC 2002)、カリフォルニアサンフランシスコ、2002年2月3−7日、第100−101頁にも掲載されている。他の規範的形式のアナログメモリセルは、フローティングゲート(FG)セル、強誘電性RAM(FRAM)セル、磁気RAM(MRAM)セル、電荷トラップフラッシュ(CTF)及び相変化RAM(PRAM、相変化メモリPCMとも称される)セルである。FRAM、MRAM、及びPRAMセルは、参考としてここに援用する、例えば、キム及びコー氏が著作した“Future Memory Technology including Emerging New Memories”、Proceedings of the 24th International Conference on Microelectronics (MIEL)、ニス、セルビア及びモンテネグロ、2004年5月16−19日、第1巻、第377−384頁に掲載されている。

アナログメモリセルをプログラミング及び消去するための種々の方法が知られている。あるメモリ装置は、メモリセルのグループパルスシーケンス印加して、そのシーケンス中にプログラムされた値を検証する繰り返しプログラミング及び検証(P&V)プロセスを使用するものである。

メモリ装置のデータを欠陥に対して保護するための種々の技術が知られている。例えば、参考としてここに援用する米国特許第5,533,190号は、書き込みI/O動作の実行を中断するリセットまたは停電状態に続いてディスクアレイシステムにおけるデータとパリティとの間の一貫性保証するための方法を開示している。この方法は、ドライブアクティビティ検査して、中断状態のために未完了となっている書き込みI/O動作を識別し、その未完了の動作及び未完了の動作に関連したアレイ冗長グループを識別するのに必要な情報を不揮発性メモリロギングし、そしてディスクアレイサブシステム初期化または電源回復中に不揮発性メモリのログエントリチェックする、という段階を備えている。ログにおいて識別される各未完了動作に対して、この方法は、更に、関連冗長グループ内に記憶されるデータの対応部分のビットごとの排他的OR遂行してそれと一貫するパリティを計算し、そしてその計算されたパリティを、関連冗長性グループ内のパリティ記憶エリアに書き込む、という段階も備えている。欠陥のあるディスクドライブメンバーとのアレイ動作に対して(即ち、質低下モードにおいて)、この方法は、未完了の書き込みI/O動作が新たなデータ及びパリティをマップするところの記憶エリアを識別するのに必要な情報や、未完了の書き込みI/O動作が新たなデータ及びパリティをマップするところの記憶エリアにセーブされたある形式の古いデータ及びパリティ情報もロギングする。システムリセットまたは電源の回復に続いて、関連する冗長グループごとに一貫したパリティが決定される。

参考としてここに援用する米国特許第7,487,394号は、RAID−6システムのようなディスクアレイシステムのパリティ更新動作の状態に関連したデータを動作の遂行中に記憶し、動作が中断された場合に、その記憶したデータを使用して回復を開始する方法を開示している。記憶されるデータは、パリティ更新動作の状態を表わす状態指示子と、パリティ更新動作中にキャプチャーされるスナップショット値(例えば、新しいデータと古いデータとの間の差を表わすデルタ値)とを含む。

概要

メモリ装置の書き込み欠陥からデータを保護するための方法及びシステムを提供する。この方法は、データアイテムのセットにわたる冗長情報を計算し、データアイテムを、メモリに記憶するために送信することを含む。冗長情報は、データアイテムがメモリに首尾良く書き込まれるまでの間のみ保持され、次いで、破棄される。データアイテムは、それをメモリに書き込むのに欠陥が生じたとき、冗長情報を使用して回復される。

目的

ここに述べる実施形態は、データアイテムのセットにわたる冗長情報を計算することを含む方法を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

データアイテムのセットにわたる冗長情報を計算する処理と、前記データアイテムを、メモリに記憶するために送信する処理と、前記冗長情報を、前記データアイテムがメモリに首尾良く書き込まれるまでのみ保持し、次いで、前記冗長情報を破棄する処理と、前記データアイテムをメモリに書き込むのに欠陥が生じたときに、前記冗長情報を使用して前記データアイテムを回復する処理と、を含む方法。

請求項2

前記冗長情報を保持する処理は、欠陥が前記セットにおけるデータアイテムを破壊することになる全ての書き込み動作が首尾良く完了した後にのみ、前記冗長情報を破棄することを含む、請求項1に記載の方法。

請求項3

前記冗長情報を保持する処理は、前記データアイテムのセットを保持する全てのワードラインの全てのページを首尾良くプログラミングした後にのみ、前記冗長情報を破棄することを含む、請求項1に記載の方法。

請求項4

前記データアイテムを記憶のために送信し、そして前記冗長情報を保持する処理には、前記データアイテム及び冗長情報の両方をメモリの同じメモリブロックに記憶することを含む、請求項1に記載の方法。

請求項5

前記データアイテムを記憶のために送信し、そして前記冗長情報を保持する処理には、前記データアイテム及び冗長情報の両方を、前記メモリによりサポートされる予め定義されたページプログラミング順序に基づいて前記メモリに記憶することを含む、請求項1に記載の方法。

請求項6

前記データアイテムを送信する処理は、前記データアイテムを前記メモリの第1のメモリブロックに記憶することを含み、更に、前記冗長情報を保持する処理は、前記第1のメモリブロックとは異なる前記メモリの第2のメモリブロックに冗長情報記憶することを含む、請求項1に記載の方法。

請求項7

前記第2のメモリブロックは、冗長情報の記憶専用であり、データアイテムを記憶することはない、請求項6に記載の方法。

請求項8

前記データアイテムを記憶のために送信し、そして前記冗長情報を保持する処理には、前記データアイテムの第1サブセットを、前記メモリの各ワードラインの第1のデータ部分に書き込み、次いで、前記第1サブセットに対する冗長情報を、後続ワードラインの第1のデータ部分に書き込み、前記第1サブセット及び冗長情報を書き込んだ後に、前記データアイテムの第2サブセットを、各ワードライン及び後続ワードラインの第2のデータ部分に書き込み、前記第2サブセットを首尾良く書き込むと、前記冗長情報を破棄する、ことを含む請求項1に記載の方法。

請求項9

前記冗長情報を保持する処理は、前記メモリの外部の記憶位置に前記冗長情報を記憶することを含む、請求項1に記載の方法。

請求項10

メモリと通信するためのインターフェイスと、データアイテムのセットにわたる冗長情報を計算し、前記データアイテムをメモリに記憶するために送信し、前記冗長情報を、前記データアイテムがメモリに首尾良く書き込まれるまでの間のみ保持し、次いで、前記冗長情報を破棄し、そして前記データアイテムをメモリに書き込むのに欠陥が生じたときに、前記冗長情報を使用して前記データアイテムを回復するように構成されたプロセッサと、を備えた装置。

請求項11

前記プロセッサは、欠陥が前記セットにおけるデータアイテムを破壊することになる全ての書き込み動作が首尾良く完了した後にのみ、前記冗長情報を破棄するように構成された、請求項10に記載の装置。

請求項12

前記プロセッサは、前記データアイテムのセットを保持する全てのワードラインの全てのページを首尾良くプログラミングした後にのみ、前記冗長情報を破棄するように構成された、請求項10に記載の装置。

請求項13

前記プロセッサは、前記データアイテム及び冗長情報の両方をメモリの同じメモリブロックに記憶するように構成された、請求項10に記載の装置。

請求項14

前記プロセッサは、前記データアイテム及び冗長情報の両方を、前記メモリによりサポートされる予め定義されたページプログラミング順序に基づいて前記メモリに記憶するように構成された、請求項10に記載の装置。

請求項15

前記プロセッサは、前記データアイテムを前記メモリの第1のメモリブロックに記憶し、そして前記第1のメモリブロックとは異なる前記メモリの第2のメモリブロックに冗長情報記憶するように構成された、請求項10に記載の装置。

請求項16

前記第2のメモリブロックは、冗長情報の記憶専用であり、データアイテムを記憶することはない、請求項15に記載の装置。

請求項17

前記データアイテムを記憶のために送信し、そして前記冗長情報を保持することは、前記データアイテムの第1サブセットを、前記メモリの各ワードラインの第1のデータ部分に書き込み、次いで、前記第1サブセットに対する冗長情報を、後続ワードラインの第1のデータ部分に書き込み、前記第1サブセット及び冗長情報を書き込んだ後に、前記データアイテムの第2サブセットを、各ワードライン及び後続ワードラインの第2のデータ部分に書き込み、前記第2サブセットを首尾良く書き込むと、前記冗長情報を破棄する、ことにより行われる、請求項10に記載の装置。

請求項18

前記プロセッサは、前記メモリの外部の記憶位置に前記冗長情報を記憶するように構成された、請求項10に記載の装置。

請求項19

メモリと、データアイテムのセットにわたる冗長情報を計算し、前記データアイテムを、メモリに記憶するために送信し、前記冗長情報を、前記データアイテムがメモリに首尾良く書き込まれるまでのみ保持し、次いで、前記冗長情報を破棄し、そして前記データアイテムをメモリに書き込むのに欠陥が生じたときに、前記冗長情報を使用して前記データアイテムを回復するように構成されたプロセッサと、を備えた装置。

請求項20

前記プロセッサは、欠陥が前記セットにおけるデータアイテムを破壊することになる全ての書き込み動作が首尾良く完了した後にのみ、前記冗長情報を破棄するように構成された、請求項19に記載の装置。

技術分野

0001

本発明は、一般的に、データ記憶装置に関するもので、より特定すれば、メモリ装置おける書き込み欠陥からデータを保護する方法及びシステムに関する。

背景技術

0002

フラッシュメモリ等の多くの形式のメモリ装置は、データを記憶するためアナログメモリセルアレイを使用している。各アナログメモリセルは、セルに記憶されるデータを表わす電荷又は電圧のような或るレベル所与物理量を保持する。この物理量のレベルは、記憶値又はアナログ値とも称される。例えば、フラッシュメモリでは、各アナログメモリセルが或る量の電荷を保持する。考えられるアナログ値の範囲は、典型的に、1つ以上のデータビット値を表わすプログラミング状態に各々対応する領域に分割される。望ましいビット(1つ又は複数)に対応する公称アナログ値を書き込むことにより、アナログメモリセルにデータが書き込まれる。

0003

シングルレベルセル(SLC)装置と一般的に称されるあるメモリ装置は、単一ビットの情報を各メモリセルに記憶し、即ち各メモリセルは、2つの考えられるメモリ状態をとるようにプログラムすることができる。マルチレベルセルMLC)装置ともしばしば称される高密度装置は、メモリセル当たり2つ以上のビットを記憶し、即ち3つ以上の考えられるメモリ状態を取るようにプログラムすることができる。

0004

フラッシュメモリ装置は、例えば、参考としてここに援用するベッツ氏等が著作した“Introduction to Flash memory”、Proceedings of theIEEE、第91巻、第4号、4月、2003年、第489−502頁に掲載されている。マルチレベルフラッシュセル及び装置は、例えば、参考としてここに援用するエイタン氏等が著作した“Multilevel Flash Cells and their Trade-offs”、Proceedings of the 1996 IEEE International Electron Devices Meeting (IEDM)、ニューヨーク州ニューヨーク、第169−172頁に掲載されている。この論文は、共通接地、DINOR、AND、NOR及びNANDセルのような多数の種類のマルチレベルフラッシュセルを比較している内容である。

0005

エイタン氏等は、ニトリドリードオンリメモリ(NROM)と称される別の形式のアナログメモリセルを、参考としてここに援用する“Can NROM, a 2-bit, TrappingStorage NVM Cell, Give a Real Challenge to Floating Gate Cells?”、Proceedings of the 1999 International Conference on Solid State Devices and Materials (SSDM)、日本、東京、1999年9月21−24日、第522−524頁に掲載している。また、NROMセルは、参考としてここに援用する、マーヤン氏等が著作した“A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate”、Proceedings of the 2002IEEE International Solid-StateCircuits Conference (ISSCC 2002)、カリフォルニアサンフランシスコ、2002年2月3−7日、第100−101頁にも掲載されている。他の規範的形式のアナログメモリセルは、フローティングゲート(FG)セル、強誘電性RAM(FRAM)セル、磁気RAM(MRAM)セル、電荷トラップフラッシュ(CTF)及び相変化RAM(PRAM、相変化メモリPCMとも称される)セルである。FRAM、MRAM、及びPRAMセルは、参考としてここに援用する、例えば、キム及びコー氏が著作した“Future Memory Technology including Emerging New Memories”、Proceedings of the 24th International Conference on Microelectronics (MIEL)、ニス、セルビア及びモンテネグロ、2004年5月16−19日、第1巻、第377−384頁に掲載されている。

0006

アナログメモリセルをプログラミング及び消去するための種々の方法が知られている。あるメモリ装置は、メモリセルのグループパルスシーケンス印加して、そのシーケンス中にプログラムされた値を検証する繰り返しプログラミング及び検証(P&V)プロセスを使用するものである。

0007

メモリ装置のデータを欠陥に対して保護するための種々の技術が知られている。例えば、参考としてここに援用する米国特許第5,533,190号は、書き込みI/O動作の実行を中断するリセットまたは停電状態に続いてディスクアレイシステムにおけるデータとパリティとの間の一貫性保証するための方法を開示している。この方法は、ドライブアクティビティ検査して、中断状態のために未完了となっている書き込みI/O動作を識別し、その未完了の動作及び未完了の動作に関連したアレイ冗長グループを識別するのに必要な情報を不揮発性メモリロギングし、そしてディスクアレイサブシステム初期化または電源回復中に不揮発性メモリのログエントリチェックする、という段階を備えている。ログにおいて識別される各未完了動作に対して、この方法は、更に、関連冗長グループ内に記憶されるデータの対応部分のビットごとの排他的OR遂行してそれと一貫するパリティを計算し、そしてその計算されたパリティを、関連冗長性グループ内のパリティ記憶エリアに書き込む、という段階も備えている。欠陥のあるディスクドライブメンバーとのアレイ動作に対して(即ち、質低下モードにおいて)、この方法は、未完了の書き込みI/O動作が新たなデータ及びパリティをマップするところの記憶エリアを識別するのに必要な情報や、未完了の書き込みI/O動作が新たなデータ及びパリティをマップするところの記憶エリアにセーブされたある形式の古いデータ及びパリティ情報もロギングする。システムリセットまたは電源の回復に続いて、関連する冗長グループごとに一貫したパリティが決定される。

0008

参考としてここに援用する米国特許第7,487,394号は、RAID−6システムのようなディスクアレイシステムのパリティ更新動作の状態に関連したデータを動作の遂行中に記憶し、動作が中断された場合に、その記憶したデータを使用して回復を開始する方法を開示している。記憶されるデータは、パリティ更新動作の状態を表わす状態指示子と、パリティ更新動作中にキャプチャーされるスナップショット値(例えば、新しいデータと古いデータとの間の差を表わすデルタ値)とを含む。

0009

ここに述べる実施形態は、データアイテムのセットにわたる冗長情報を計算することを含む方法を提供する。データアイテムは、メモリに記憶するために送られる。冗長情報は、データアイテムがメモリに首尾良く書き込まれるまで保持されるにすぎない。次いで、冗長情報は破棄される。データアイテムは、メモリにデータアイテムを書き込む際に欠陥があったとき冗長情報を使用して回復される。

0010

ある実施形態では、冗長情報を保持することは、欠陥によりセット内のデータアイテムが破壊される全ての書き込み動作が首尾良く完了したときだけ冗長情報を破棄することを含む。他の実施形態では、冗長情報を保持することは、データアイテムのセットを保持する全てのワードラインに全てのページが首尾よくプログラムされた後にのみ冗長情報を破棄することを含む。

0011

ある実施形態では、記憶のためにデータアイテムを送りそして冗長情報を保持することは、データアイテム及び冗長情報の両方をメモリの同じメモリブロックに記憶することを含む。他の実施形態では、記憶のためにデータアイテムを送りそして冗長情報を保持することは、データアイテム及び冗長情報の両方を、メモリによりサポートされる規定のページプログラミング順序に基づいてメモリに記憶することを含む。更に別の実施形態では、冗長情報を保持することは、メモリの外部の記憶位置に冗長情報を記憶することを含む。

0012

ある実施形態では、データアイテムを送ることは、メモリの第1メモリブロックにデータアイテムを記憶することを含み、そして冗長情報を保持することは、メモリの第1のメモリブロックとは異なる第2のメモリブロックに冗長情報を記憶することを含む。他の実施形態では、第2のメモリブロックは、冗長情報の記憶専用であり、データアイテムを記憶するものではない。

0013

ある実施形態では、記憶のためにデータアイテムを送りそして冗長情報を保持することは、データアイテムの第1のサブセットをメモリの各ワードラインの第1のデータ部分に書き込み、次いで、第1サブセットの冗長情報を後続ワードラインの第1のデータ部分に書き込むことを含む。第1サブセット及び冗長情報を書き込んだ後に、データアイテムの第2サブセットを各ワードライン及び後続ワードラインの第2のデータ部分に書き込む。冗長情報は、第2サブセットを首尾良く書き込んだときに破棄される。

0014

更に、ここに述べる実施形態によれば、インターフェイス及びプロセッサを備えた装置が提供される。インターフェイスは、メモリと通信する。プロセッサは、データアイテムのセットにわたる冗長情報を計算し、データアイテムを、メモリに記憶するために送り、データアイテムがメモリに首尾良く書き込まれるまでの間のみ冗長情報を保持し、次いで、冗長情報を破棄し、そしてデータアイテムのメモリへの書き込みに欠陥が生じたときに冗長情報を使用してデータアイテムを回復するように構成される。

0015

更に、ここに述べる実施形態によれば、メモリ及びプロセッサを備えた装置が提供される。プロセッサは、データアイテムのセットにわたる冗長情報を計算し、データアイテムをメモリに記憶するために送り、データアイテムがメモリに首尾良く書き込まれるまでの間のみ冗長情報を保持し、次いで、冗長情報を破棄し、そしてデータアイテムのメモリへの書き込みに欠陥が生じたときに冗長情報を使用してデータアイテムを回復するように構成される。

0016

本発明は、添付図面を参照した実施形態の以下の詳細な説明から完全に理解されよう。

図面の簡単な説明

0017

本発明の一実施形態によるメモリシステムを概略的に示すブロック図である。
本発明の一実施形態により書き込み欠陥に対して保護するようにデータを記憶する方法を例示するフローチャートである。
本発明の一実施形態により不揮発性メモリの書き込み欠陥から失われたデータアイテムを再構成する方法を例示するフローチャートである。

実施例

0018

概略
フラッシュメモリのような不揮発性メモリでは、各メモリセルを、記憶されるビット値を表わす各アナログ値にプログラムすることにより、データが典型的にアナログメモリセルに記憶される。各ビット値は、ある領域のアナログ値により表される各プログラミングレベルまたはプログラミング状態に対応する。典型的なフラッシュメモリは、複数のメモリブロックに分割され、各ブロックは複数のメモリページを含む。データは、ページ単位で書き込み及び読み取りされるが、メモリブロック単位で消去される(物理的ブロックまたは消去ブロックとも称される)。

0019

各メモリブロックは、メモリセルのアレイを構成し、メモリセルの行は、ワードライン(WL)と称され、そしてメモリセルの列は、ビットラインBL)と称される。単一のプログラミング動作は、ワードラインに信号パルスを付与することによりワードライン行内のメモリセルにデータアイテムを書き込み、信号パルスは、ワードラインに接続されたメモリセルの1つ以上に記憶されるアナログ電圧値を変更するように構成される。

0020

各ワードラインは、別々にプログラムされるセルの2つ以上のグループに分割される。個別の書き込みサイクルでプログラムされるワードラインのメモリセルの2つの異なるグループは、通常、互いにインターリーブされ、そして偶数セル及び奇数セルとして表される。物理的に、偶数及び奇数セルは、ワードライン上の交互のメモリセルである。奇数及び偶数ページをプログラミングすることは、書き込みサイクル中に1つおきのビットライン(例えば、ワードライン上の1つおきのメモリセル)をイネーブルすることにより遂行される。或いはまた、オールビットライン(ABL)とも称される構成においてワードラインの全てのメモリセルを一緒にプログラムしてもよい。あるメモリ装置では、ワードラインのメモリセルの各グループ(例えば、奇数セル、偶数セルまたは全セル)が、各メモリセルに複数のビットを記憶することにより、2つ以上のページを記憶する。

0021

書き込みサイクル中に書き込み欠陥(例えば、停電)が生じた場合には、そのとき書き込まれていたデータが通常は失われる。しかしながら、更に、メモリに以前に書き込まれたデータも失われることが考えられる。例えば、現在書き込まれるデータと同じワードラインに以前に書き込まれたデータが書き込み欠陥の結果として失われることがある。

0022

例えば、ワードラインの奇数ページに以前に書き込まれたデータは、同じワードラインの偶数ページへのデータの書き込み中書き込みエラーがあると、失われまたは破壊されることがある。別の例では、あるページに書き込まれたデータは、メモリセルの同じグループへ後続ページを書き込む間に欠陥があると、失われることがある。

0023

多くのデータ記憶アプリケーションでは、書き込み欠陥の結果として現在書き込まれるデータを失うのは当然である。しかしながら、以前に書き込まれたデータを失うことは、典型的に許されず、回避されねばならない。

0024

以下に述べる本発明の実施形態は、書き込み欠陥の場合にデータの損失を最小にするように不揮発性メモリにデータをプログラミングするための改良された方法を提供する。ある実施形態では、メモリコントローラは、データアイテムのセット、典型的に、メモリのページをメモリに記憶する。メモリコントローラは、データアイテムのセットにわたり、冗長情報、例えば、パリティを計算する。メモリコントローラは、データアイテムをメモリに記憶し、そしてデータアイテムのセットが首尾良く記憶されるまで冗長情報を(メモリまたはどこかに)保持する。データのセットを首尾良く記憶すると、メモリコントローラは、冗長情報を破棄する。データアイテムのセットを記憶する間に書き込み欠陥(例えば、停電)が生じた場合には、メモリコントローラは、冗長情報を使用して、失われたデータを再構成する。

0025

冗長情報を長期記憶のために保持する既知機構とは異なり、ここに開示する技術は、データアイテムのセットがメモリに首尾良く記憶されるまで、冗長情報を一時的に保持するだけである。データアイテムのセットが書き込み欠陥なく記憶されるや否や、冗長情報が破棄される。従って、ここに開示する技術は、オーバーヘッド及びメモリ容量に関して非常に効率的である。

0026

換言すれば、ここに開示する技術は、データをプログラミングした後にいつでも生じ得るメモリ欠陥に対して保護する(この場合には、冗長情報をデータと共に永久的に記憶する必要がある)ことを目的としておらず、プログラミング動作中に欠陥(例えば、停電)に対して保護することを目的とする。従って、ここに開示する技術は、冗長情報を一時的に保持するだけであり、従って、メモリスペース及び管理オーバーヘッドを保存するものである。

0027

ある実施形態では、データアイテム及び冗長情報がメモリの種々のページに書き込まれる順序は、以前のデータが失われるメカニズムを考えることにより予め定義される。例えば、現在書き込まれているデータと同じワードラインにある他のページへのデータに書き込み欠陥によりおそらくダメージが及ぶメモリについて考える。このような場合、メモリコントローラは、データアイテム及び冗長情報をメモリページへマッピングすることで、所与の時間に、首尾良く記憶されたデータアイテム及び冗長情報を使用して、失われたデータを再構成できることを保証する予め定義されたプログラミングスキームを使用する。このようなプログラミング機構の幾つかの例を以下に述べる。

0028

ここに開示するスキームは、データ保護を提供すると同時に、僅かな付加的な数の書き込み動作しか受けないようにする。更に、ここに開示する技術の幾つかは、同じメモリブロックにプログラムされるデータアイテムに対してデータ保護を与えることができる。換言すれば、ここに開示するプログラミングスキームは、メモリコントローラが保護のために複数のブロックにわたってデータアイテムを分散することを要求しない。

0029

システムの説明
図1は、本発明の一実施形態によるメモリシステム20を概略的に示すブロック図である。このシステム20は、コンピューティング装置セルラーホン及びスマートホン、他の通信ターミナル、取り外し可能なメモリモジュール(「USBフラッシュドライブ」とも称される)、ソリッドステートドライブ(SSD)、デジタルカメラ音楽及び他のメディアプレーヤ、及び/又はデータが記憶され検索される他のシステムまたは装置のような種々のホストシステム及び装置に使用することができる。

0030

システム20は、メモリセルアレイ28にデータを記憶するメモリ装置24を備えている。メモリセルアレイは、複数のメモリブロック34を含む。各メモリブロックは、アナログメモリセル32を含む。本特許出願に関して、「アナログメモリセル」という語は、電圧または電荷のような物理的パラメータの連続的なアナログ値を保持するメモリセルを表わすのに使用される。アレイ28は、任意の種類のアナログセル、例えば、NAND、NOR及び電荷トラップフラッシュ(CTF)セル、相変化RAM(PRAM、相変化メモリ−PCMとも称される)、ニトリドリードオンリメモリ(NROM)、強誘電RAM(FRAM)、磁気RAM(MRAM)、及び/又はダイナミックRAMDRAM)セルを含む。メモリセルは、適当な二次元又は三次元接続スキームで配置される。

0031

セルに記憶される電荷レベル、及び/又はセルに書き込まれ及びセルから読み出されるアナログ値または電流は、ここでは、総体的に、アナログ値、アナログ記憶値、又は記憶値と称される。システム20は、プログラミングレベルとも称される各プログラミング状態をとるようにセルをプログラミングすることによりアナログメモリセルにデータを記憶する。プログラミング状態は、考えられる状態の限定セットから選択され、そして各プログラミング状態は、ある公称記憶値に対応する。

0032

シングルレベルセル(SLC)は、セル当たり1ビットの密度での記憶に対応し、マルチレベルセル(MLC)は、セル当たり2ビット以上の密度での記憶を指し、そしてトリプルレベルセルTLC)は、セル当たり3ビットの密度でのデータ記憶を指す。TLCは、8つの考えられるアナログ記憶値の1つをセルに書き込むことにより8つの考えられるプログラミング状態の1つをとるようにプログラムすることができる。

0033

メモリ装置24は、読み取り/書き込み(R/W)ユニット36を備え、これは、メモリ装置に記憶するためのデータをアナログ記憶値へ変換して、それをメモリセル32に書き込む。別の実施形態では、R/Wユニットは、変換を行わずに、電圧サンプルが与えられ、即ちセルに記憶するための記憶値が与えられる。アレイ28からデータを読み出すときに、R/Wユニット36は、メモリセル32の記憶値を、1ビット以上の分解能を有するデジタルサンプルへ変換する。データは、典型的に、ページと称されるグループにおいてメモリセルに書き込まれ及びそこから読み取られる。ある実施形態では、R/W回路は、1つ以上の負の消去パルスをセルへ付与することにより、セル32のグループを消去することができる。消去は、典型的に、全メモリブロックで遂行される。

0034

メモリ装置24からのデータの記憶及び検索は、メモリコントローラ40により遂行される。このメモリコントローラは、メモリ装置24と通信するためのインターフェイス44と、種々のメモリ管理機能を実行するプロセッサ48とを備えている。特に、プロセッサ48は、以下に詳細に述べるように、書き込み欠陥に対してデータを保護するプログラミングスキームを実行する。

0035

メモリコントローラ40は、メモリ装置に記憶するためのデータを受け容れそしてメモリ装置から検索したデータを出力するためにホスト52と通信する。メモリコントローラ40及び特にプロセッサ48は、ハードウェアで実施される。或いはまた、メモリコントローラは、適当なソフトウェア、或いはハードウェア及びソフトウェア要素の組み合わせを実行するマイクロプロセッサを含んでもよい。

0036

図1の構成は、単にコンセプトを明瞭にするために示された規範的なシステム構成である。他の適当なメモリシステム構成も使用できる。本発明の原理を理解する上で必要のない要素、例えば、種々のインターフェイス、アドレス回路、タイミング・シーケンシング回路、及びデバッグ回路は、明瞭化のために図から省略されている。

0037

図1の例は、単一のメモリ装置24を示しているが、システム20は、メモリコントローラ40によりコントロールされる複数のメモリ装置を備えてもよい。図1に示す規範的なシステム構成では、メモリ装置24及びメモリコントローラ40は、2つの個別の集積回路(IC)として実施される。しかしながら、別の実施形態では、メモリ装置及びメモリコントローラは、単一のマルチチップパッケージMCP)またはシステムオンチップ(SoC)において個別の半導体ダイ一体化されて、内部バスにより相互接続されてもよい。更に、それとは別に、メモリコントローラ回路の幾つかまたは全部が、メモリアレイが配置された同じダイに存在してもよい。更に、それとは別に、メモリコントローラ40の機能の幾つかまたは全部がソフトウェアで実施されて、ホストシステムのプロセッサまたは他の要素で実行されてもよい。ある実施形態では、ホスト44及びメモリコントローラ40は、同じダイに製造されてもよいし、または同じ装置パッケージの個別のダイに製造されてもよい。

0038

ある実施形態において、メモリコントローラ40は、ここに述べる機能を実行するためにソフトウェアでプログラムされた汎用プロセッサを含む。そのソフトウェアは、例えば、ネットワークを経て、電子的な形態でプロセッサにダウンロードされてもよいし、或いは、それとは別に又はそれに加えて、磁気、光学または電子メモリのような非一時的な有形媒体に設けられ及び/又は記憶されてもよい。

0039

アレイ28の規範的な構成において、メモリセル32は、複数の行及び列に配置され、各メモリセルは、フローティングゲートトランジスタを含む。各ワードラインにおけるトランジスタゲートは、ワードラインバスによって一緒に接続され、そして各列におけるトランジスタのソースは、ビットラインバスによって一緒に接続される。メモリアレイは、典型的に、複数のページに分割され、即ちプログラムされて同時に読み取られるメモリセルのグループに分割される。ページは、時々セクタ細分化される。ある実施形態では、各ページは、アレイの行全体を含む。別の実施形態では、各行(ワードライン)は、2つ以上のページに分割される。例えば、ある装置では、上述したように、各行が2つのページに分割され、その一方は、奇数セルを含み、そしてその他方は、偶数セルを含む。

0040

典型的に、メモリコントローラ40は、ページ単位でデータをプログラムするが、メモリブロック34全体を消去する。典型的に、必ずしもそうでないが、メモリブロックは、ほぼ106個のメモリセルであるが、ページは、ほぼ103−104個のメモリセルである。

0041

書き込み欠陥及び潜在的なデータ損失シナリオ
書き込み欠陥中に不揮発性メモリにデータを書き込むと、現在書き込まれているデータは当然失われるが、以前に書き込まれたデータは失われるかもしれないが検索可能でなければならない。以下に述べるプログラミングスキームは、ワードラインにデータをプログラミングする順序を利用して、以前に書き込まれたデーが書き込み欠陥中に失われても、冗長データから検索できるように保証する。したがって、冗長データは、データプログラミング中に形成されて、フラッシュ又は他の適当な記憶媒体の予め定義された位置に書き込まれる。メモリコントローラがデータの書き込みが成功したことを確認すると、冗長情報は、次いで破棄される。

0042

規範的なシナリオでは、データは、SLCプログラミングを使用して、奇数及び偶数セルに仕切られた同じワードラインへ書き込まれる。第1の以前の書き込みサイクルからのデータが、例えば偶数セルに記憶され、そして第2の現在書き込みサイクル中のデータが、書き込み欠陥発生時に、同じワードライン上の奇数セルに書き込まれるときは、第1の以前の書き込みサイクルからの偶数セルのデータが破壊されることがある(遡及データ破壊)。

0043

(前記例は、所与のワードラインの奇数セルが偶数セルの後にプログラムされるシナリオを参照するもので、この場合には、奇数セルプログラミング中の欠陥は偶数セルに記憶されたデータを破壊し得る。これに対して、ここに開示する技術は、所与のワードラインの偶数セルが奇数セルの後にプログラムされるシナリオにおいて同様に適用することができる。)

0044

別のシナリオにおいて、所与のワードラインの偶数セル及び奇数セルの各々は、複数のページ、例えば、2つ又は3つのページで順次にプログラムされる。そのようなページは、一般に、MLC/TLCページプログラミングスキームの場合と同様に、最下位ビット(LSB)ページ、中位ビット(CSB)ページ、及び最上位ビット(MSB)ページと称される。(CSBは、上位ページUSBとも称される。)

0045

新たなデータページが書き込まれるワードラインに以前に書き込まれたデータは、ここで、これらのシナリオに書き込み欠陥が生じた場合に潜在的なデータ破壊としての複数のメカニズムを受ける。最も破壊され易いページは、MLC/TLCプログラミングのための次の章で説明されるプログラミングスキームに述べられたようにグループ分けされる。これらのグループからの冗長データは、メモリコントローラにより生成され、そして不揮発性メモリ又は別の適当な記憶媒体に書き込まれる。データページが首尾良く書き込まれると、冗長情報が破棄される。

0046

一時的な冗長情報を使用した書き込み欠陥に対する保護
ある実施形態では、メモリコントローラ40のプロセッサ48は、異なるページの

をとることにより、ページのセットにわたる冗長情報を発生する。この冗長情報は、ここでは、「バックアップ」又は「パリティ」データアイテムPと称される。例えば、Pは、A、B、Cで表される3つのデータページから次の式、

により計算され、そしてA、B、Cがメモリに安全に書き込まれるまで記憶され、その後に、Pは、破棄される。3つのページの例は、単にコンセプトを明確にするために示されたもので、本発明の実施形態を何ら限定するものではない。

0047

例えば、ページCを破壊させる停電の場合に、ページCは、A、B及びPから、次の式

によって再構成することができる。更に、予め定義されたプログラミングスキームによりメモリへのデータアイテムの書き込み順序を最適にすることで、パリティデータ又は冗長情報を計算して記憶するためのオーバーヘッド及び計算効率が最適にされる。

0048

ここに述べる実施形態は、主として、明瞭化のため単一ページの欠陥から保護する冗長情報を参照する。2ページ以上が破壊される場合には、より複雑な冗長スキームを使用しなければならない。ここに開示する技術は、そのような冗長スキームと共に使用することができる。

0049

ここに述べる方法の効率及び速度は、典型的に、読み取り及び書き込み動作の数に依存する。というのは、フラッシュメモリの読み取り動作は、通常、書き込み動作より著しく短いからである。データアイテムが書き込まれると、プロセッサ48は、冗長情報を破棄する。冗長情報からのデータの再構成を要求するデータアイテムの書き込み欠陥は、稀な事象であると仮定され、若干の余計な読み取り動作により生じるレイテンシーは、全体的なメモリシステム性能において無視できるものである。

0050

図2は、本発明の一実施形態により書き込み欠陥に対して保護するようにデータを記憶する方法を例示するフローチャートである。受け容れ(acceptance)ステップ100において、メモリコントローラ40は、記憶のためのデータアイテムをホスト52から受け容れる(アクセプトする)。書き込みステップ110において、メモリコントローラは、プロセッサ48により構成される予め定義されたプログラミングスキームに基づいてメモリ装置24にデータアイテムを書き込む。

0051

第1の判断ステップ120において、プロセッサ48は、データアイテムのバックアップが必要であるかどうかチェックする。バックアップが必要な場合、プロセッサ48は、生成ステップ130において、上述したパリティデータのような冗長情報をデータアイテムから生成する。書き込みステップ140において、プロセッサ48は、メモリ装置24の予め定義された位置又は他の適当な記憶媒体(例えば、メモリコントローラのランダムアクセスメモリ)に冗長情報を書き込む。

0052

バックアップが必要でない場合は、メモリコントローラ40のプロセッサ48は、第2の判断ステップ150において、受け容れ(acceptance)ステップ100からの受け容れられた全てのデータアイテムがプログラミングスキームに基づいてメモリに書き込まれたかどうか評価する。もしそうであれば(すなわち、メモリに書き込まれた場合)、プロセッサ48は、破棄ステップ160において、冗長情報を破棄する。もしそうでなければ(すなわち、メモリに書き込まれなかった場合)、プロセッサ48は、第3の判断ステップ170において、新たなデータアイテムを記憶のために送るべきかどうか評価する。もしそうであれば(すなわち、送るべき場合)、この方法は、ステップ100へループバックし、新たなデータアイテムが記憶のために受け容れられる。そうでなければ、終了ステップ180において、データ記憶が終了となる。

0053

メモリコントローラのプロセッサ48は、種々の仕方で冗長情報を破棄する。例えば、フラッシュベースシステムでは、プロセッサ48は、典型的に、冗長情報のページ(1つ又は複数)を無効とマークする。その結果、メモリコントローラは、コンパクト化又は「ガーベージコレクション」中に冗長情報を新たなブロックにコピーせず、冗長情報は、結局、消去される。

0054

図3は、本発明の一実施形態により不揮発性メモリの書き込み欠陥から失われたデータアイテムを再構成する方法を概略的に示すフローチャートである。監視ステップ200において、メモリ装置24に書き込まれたデータアイテムのセットは、メモリコントローラ40のプロセッサ48により監視される。

0055

判断ステップ210において、プロセッサ48は、データ書き込み欠陥事象が生じたかどうか確認する。生じていなければ、メモリコントローラ40は、監視ステップ200においてメモリに書き込まれたデータを監視し続ける。生じた場合には、プロセッサ48は、ページのセットに対する冗長情報を、それが書き込まれた(図2の書き込みステップ140)予め定義された位置からフェッチする。再構成ステップ230において、プロセッサ48は、冗長情報を使用して、失われたデータアイテムを再構成する。書き込みステップ240において、失われて再構成されたデータアイテムがメモリに書き込まれる。メモリコントローラ40は、次いで、監視ステップ200において、メモリに書き込まれたデータを監視し続ける。

0056

書き込み欠陥中のデータ保護のためのプログラミングスキーム
図2及び3は、両方とも、書き込み欠陥の場合にデータを書き込み及び再構成するための一般的な方法を示している。データ損失が生じた場合には、予め定義されたプログラミングスキーム中に生成される冗長情報から、失われたデータを再構成することができる。 以下に述べる実施形態は、多数の異なるシナリオに対する予め定義されたプログラミングスキームの特定例を示す。異なる実施形態は、メモリセル当たりのビット数、奇数及び偶数セルに仕切るワードライン、及び書き込まれるデータアイテムのサイズに対する種々の可能性を考慮するものである。各プログラミングスキームは、以前に書き込まれたデータの損失をいつでも防止するために、ページのセットをプログラミングするある順序を指定する。

0057

換言すれば、以下に述べるプログラミング順序は、書き込み欠陥が生じたときに、欠陥により影響を受けない首尾良く記憶されたデータを使用して以前のデータを常に回復できるように保証する。以下の例では、現在書き込まれるデータと同じワードラインに以前に書き込まれたデータが書き込み欠陥で破壊され得ると仮定する。しかしながら、ここに開示する技術は、この仮定に限定されない。別の実施形態では、他の仮定がなされ、それに応じて適当なプログラミング順序を定義することができる。

0058

ある実施形態では、プロセッサ48は、ページ書き込みが有効とされるまで、各ページを複写し、そしてバックアップページを冗長情報として記憶する。しかしながら、この技術は、オーバーヘッドが大きい。例えば、奇数/偶数2ビット/セルメモリでは、4つの外部データ書き込み動作のために3つの内部書き込み保護動作が必要となる。

0059

他の実施形態では、プロセッサ48は、データページを異なるブロックに順次に書き込む。N個のブロックがプログラムされたときに、プロセッサ48は、書き込まれたブロックのデータが保護されるようにパリティバックアップブロックを生成する。パリティブロックをバックアップするためのメモリオーバーヘッドは、1/Nである。一実施形態において、N個のブロックにおけるデータの幾つか(例えば、各ワードラインの最後のページ)は、必ずしも保護を必要としないので、オーバーヘッドを小さくすることができる。

0060

SLC記憶装置を使用して、各ワードラインの偶数セルに、次いで、奇数セルに異なるページを記憶するメモリに使用される別の例について考える。ワードラインの奇数ページの書き込み欠陥は、同じワードラインの偶数ページに以前に書き込まれたデータを破壊することがある。このSLC構成は、プログラミングページ順序ずれをサポートする。

0061

この実施形態では、プロセッサ48は、L0・・・L14と示された15のデータページのセットと、パリティページを、次のテーブル1に基づいてプログラムする。

0062

テーブルにおいて明らかなように、プロセッサは、先ず、ページL0・・・L6を次々のワードラインの偶数セルにプログラムする。偶数セルのプログラミング中には、書き込み欠陥が、以前に書き込まれたデータを破壊することはない。というのは、以前のデータは、異なるワードラインにプログラムされているからである。次いで、プロセッサ48は、次のワードライン、例えば、WL7の、XOR_CW(L0−L6)と示された偶数セルにパリティページをプログラムする。

0063

演算子XOR_CRは、低密度パリティチェック(LDPC)又はボーズチョドーリ・オッケンジェム(Bose-Chaudhuri-Hocquenghem:BCH)のようなECCエンコードされたデータページに対して、

を遂行する。この演算子を実行するときに、プロセッサ48は、ECC冗長ビットをもたないデータページのデータビットのみにわたってビットごとのXORを遂行し、次いで、ECCでXOR結果をエンコードして、冗長ページを発生する。(別の実施形態では、プロセッサ48は、データビット及びECC冗長ビットの両方を含めて、データページの全てのビットにわたりビットごとのXORを計算する。

0064

ワードラインWL0−WL6の偶数データページへのページL0−L6のプログラミングが完了すると、テーブル1に示されたように、プロセッサ48は、バックアップページが必要とされ(判断ステップ120)、偶数ページデータ保護のためにページL0−L6からパリティバックアップページが生成され(生成ステップ130)そしてWL7の偶数ページへ書き込まれる(書き込みステップ140)ことを検出する。

0065

次いで、プロセッサ48は、L7−L14と示されたLSBデータページをWL0−WL7の連続する奇数ページに書き込む。全てのデータがWL0−WL7の奇数及び偶数ページへ書き込まれると(判断ステップ150)、パリティデータ、この例では、WL7の偶数ページに記憶されたXOR_CWページが破棄される(ステップ160)。

0066

テーブル1のデータページのインデックス術語(indexing nomenclature)、例えばL1−L14は、LSBデータ(“L”)を表わし、そして数字は、データが書き込まれるここに示す8本のワードライン(WL0−WL7)へのデータ書き込みシーケンスのステップ数を表わす。従って、L0は、書き込まれるべき第1のデータページであり、L1は、書き込まれるべき第2のデータページであり、L2は、書き込まれるべき第3のデータページであり、等々となる。書き込みシーケンスを表わす術語は、それ以降のテーブルで、その後の実施形態における付加的なプログラミングスキームを示すのに使用される。

0067

あるメモリ装置では、各偶数又は奇数SLCページは、2つの個別のプログラミング動作において、2つの半部分に書き込まれる。そのような装置に使用するための規範的なプログラミング順序がテーブル2に示されている。

0068

この実施形態でも、プロセッサ48は、ワードラインを、全てのデュアル偶数ページが順次にプログラムされた後に、デュアル奇数ページがプログラムされるように「順序ずれして(out of order)」プログラムする。しかしながら、テーブル2に示すように、ワードラインの順次グループのプログラミングの終わりにパリティページが生成されて、最後のワードラインに書き込まれる。

0069

テーブル2において明らかなように、プロセッサ48は、WL0−WL6の偶数セルの第1の半部分にデータセクタL0−L6を記憶し、次いで、WL7の偶数セルの第1の半部分にL0−L6のXOR_CWを記憶する。次いで、プロセッサ48は、WL0−WL6の偶数セルの第2の半部分にデータセクタL7−L13を記憶し、次いで、WL7の偶数セルの第2の半部分にL7−L13のXOR_CWを記憶する。次いで、プロセッサ48は、WL0−WL6の奇数セルの第1の半部分にデータセクタL14−L20を記憶し、次いで、WL7の奇数セルの第1の半部分にL14−L20のXOR_CWを記憶する。最後に、プロセッサ48は、WL0−WL7の奇数セルの第2の半部分にデータセクタL21−L28を記憶する。この段階において、プロセッサ48は、3つのXOR_CWセクタを破棄する(例えば、無効にする)。

0070

テーブル1及び2に示した実施形態は、コンセプトを明確にするために選択されたものに過ぎないことに注意されたい。例えば、奇数ページを、偶数ページの前にプログラムすることができる。テーブル1及びテーブル2に示したパリティデータは、異なるメモリブロック又は他の適当な記憶媒体に記憶され、そしてメモリデータ書き込みシーケンスの完了時に破棄される。パリティデータが同じメモリブロックに記憶されずに、異なる位置に記憶される場合には、XOR_CW動作は、偶数又は奇数ページの全てのワードラインに書き込まれたデータを含み、そしてここでは、例えば、XOR_CW(L0−L7)のようなWL7からのデータを含み、等々となる。

0071

ある実施形態では、ワードラインを順序正しくプログラムすることが望まれる。これらの実施形態では、プロセッサ48は、ページのセットのための冗長データを異なるブロックにプログラムし、そしてその後、ページのセット、及びページのセットのデータにダメージを及ぼし得るページが首尾良く書き込まれたときに、冗長データを破棄する。

0072

MLCプログラミングでは、ワードラインにMSBページをプログラミングするとき、同じワードラインに既に書き込まれたLSBデータは、書き込み欠陥(例えば、停電)の場合に破壊されることがある。以下のテーブル3は、一実施形態によりそのような事象に対して保護するための規範的なスキームを示す。

0073

テーブル3に示す例において、ワードライン3(WL3)のMSBページM16又はM17をプログラミングするときに、WL3に以前に書き込まれたLSBページL10及び/又はL11は、書き込み欠陥の場合に破壊されることがある。ここで、先に述べた術語によれば、L2は、例えば、シーケンスにおけるLSBデータページの第2の書き込みステップを表わし、そしてM13は、シーケンスにおけるMSBデータページの13番目の書き込みステップを表わす。

0074

本発明の実施形態において、書き込み欠陥でデータ破壊が生じるリスクを最小にするため、データをワードラインへプログラムし、冗長情報を生成し、そして冗長情報を、予め定義された位置(典型的には別のブロック)に記憶するMLCプログラミングスキームが実施される。

0075

MLCプログラミングスキームのための以下に述べる冗長性生成フローは、i>0とすれば、WL(i)で表されるi番目のワードラインに対して次の術語を使用する。一実施形態において、プロセッサ48は、テーブル3に示したMLCプログラミング順序を実行する。このプログラミング順序に関連して、プロセッサ48は、次の冗長性スキームを実行する。

0076

ステップ3は、奇数ページを書き込みながら偶数LSBページに対する冗長性(1)を記憶する。同様に、ステップ7は、以前に記憶されていない奇数LSBページの冗長性(2)を記憶する。ステップ7は、奇数ページを書き込みながら偶数MSBページに対する冗長性を記憶する。i=0の特定のケースでは、ステップは、次の通りである。

0077

テーブル3のMLCプログラミングスキーム及びそれに対応する冗長性生成フローは、4つのデータプログラミング書き込みステップごとに2つの冗長ページ(コードワード)を生じ、即ち1/2のコードレートを生じる。前記MLCプログラミングスキームが正しく動作するためには、偶数セルの場合には所与の時間に典型的に2つの冗長コードワードを、そして奇数セルの場合には2つの冗長コードワードを使用できねばならない。第3の冗長コードワードが生成されるときには、第1の冗長コードワードが破棄され、等々となる。

0078

書き込み欠陥の場合には、次のMLCデータ回復スキームを使用して、MLCプログラミングスキーム中にデータを回復することができる。

0079

更に別の実施形態では、メモリ装置は、LSB、CSB及びMSBデータページが次の順序に基づいて奇数及び偶数メモリセルへプログラムされるTLCプログラミングスキームをサポートする。

0080

ここでは、上述した術語によれば、L2は、シーケンスにおけるLSBデータページの第2の書き込みステップを表わし、C9は、CSBデータページの9番目の書き込みステップを表わし、そしてM16は、MSBデータページの16番目の書き込みステップを表わす。この実施形態では、テーブル4のTLCプログラミングフロー中に、プロセッサ48は、次の冗長データを発生する(i>1については、データがどこかにセーブされるので、偶数及び奇数ページをデータ損失なく一緒にプログラムできると仮定する)。

0081

このTCLプログラミングスキームの場合、プログラミングスキームは、6つのデータプログラミング書き込みステップごとに2つの冗長コードワードを生じさせ、または1/3のコードレートを生じさせる。前記プログラミングスキームが正しく動作するためには、所与の時間に3*2冗長コードワードを典型的に使用できねばならない。プログラミングスキームに基づいてデータが書き込まれると、冗長コードワードが破棄される。

0082

他の実施形態では、プログラム書き込み中に、書き込み欠陥が生じた場合に奇数ページデータを書き込む間に、以前に書き込まれた偶数ページデータが破壊されることがある。このような実施形態の場合、プロセッサ48は次の冗長データを発生する。

0083

このプログラミングスキームは、6つのデータプログラミング書き込みステップごとに3つの冗長コードワードを生じさせ、または1/2のコードレートを生じさせる。前記プログラミングスキームが正しく動作するためには、所与の時間に3*3冗長コードワードを典型的に使用できねばならない。プログラミングスキームに基づいてデータが書き込まれると、冗長性が破棄される。

0084

更に別の実施形態では、メモリ装置は、ワードライン上で奇数及び偶数セル分割がなされないTLC全ビットライン(ABL)プログラミングスキームをサポートする。LSB、CSB及びMSBデータは、テーブル5に示すステップのシーケンスでワードラインへ直接プログラムされる。

0085

この実施形態では、プロセッサ48は、次の冗長性生成フローを実行する。

0086

このTLCABLプログラミングスキームの場合、このプログラミングスキームは、3つのデータプログラミング書き込みステップごとに1つの冗長コードワードを生じさせ、または1/3のコードレートを生じさせる。前記プログラミングスキームが正しく動作するためには、所与の時間に3*2冗長コードワードを典型的に使用できねばならない。プログラミングスキームに基づいてデータが書き込まれると、冗長性が破棄される。

0087

テーブル1から5に示すプログラミングスキームは、単にコンセプトを明確にするために選択されたものであり、本発明の実施形態を限定するものではない。プログラム書き込みフロー中に、停電保護のように、書き込み欠陥の際に以前に書き込まれたデータを保護するための手段として冗長情報を生成する技術は、ブロックインターリービングと結合されて、冗長オーバーヘッドの少ない新たなプログラミングスキームを得ることができる。

0088

ここに述べる実施形態は、主として、XORベースの冗長性を参照している。他の実施形態では、プロセッサ48は、XOR以外の適当な冗長スキームを使用して冗長情報を発生する。例えば、プロセッサ48は、この目的のために適当なECCを使用する。ECCが、例えば、2つのエラー修正できる場合は、一緒に破壊される2つのページが、ECCにより保護される同じページセットに含まれてもよい。

0089

ここに述べた実施形態は、主として、書き込み欠陥中に不揮発性メモリのデータ保護に向けられたが、ここに述べる方法及びシステムは、他の欠陥メカニズムを経験するメモリや、三次元メモリセルアレイのような他の幾何学形状より成るメモリのデータ保護のような他の用途に使用することもできる。

0090

したがって、上述した実施形態は、例示に過ぎず、本発明は、特に図示して上述したものに限定されないことが明らかであろう。むしろ、本発明の範囲は、上述した種々の特徴の組み合わせ及びサブ組み合わせ、並びに以上の説明を読んだときに当業者に明らかとなり且つ従来開示されていない修正や変更を包含する。本特許出願に参考として援用される文書は、本出願の一体的部分みなすべきであるが、本明細書において明示的又は暗示的になされた定義と矛盾するようにそれらの援用文書中に用語が定義されるものについては、本明細書の定義のみを考慮すべきである。

0091

20:メモリシステム
24:メモリ装置
28:メモリアレイ
34:メモリブロック
36:R/Wユニット
40:メモリコントローラ
44:インターフェイス
48:プロセッサ
52:ホスト

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 東芝メモリ株式会社の「 メモリシステム及び不揮発性メモリ」が 公開されました。( 2020/09/24)

    【課題】リード動作の信頼性を向上できるメモリシステムを提供する。【解決手段】複数のメモリセルは、複数のワードラインとメモリーピラーとが交差する位置に形成される。複数のワードラインは、積層されている。メ... 詳細

  • 東芝メモリ株式会社の「 メモリシステム」が 公開されました。( 2020/09/24)

    【課題】誤り訂正をより高精度に実行可能とする。【解決手段】実施形態のメモリシステムは、不揮発性メモリと、メモリコントローラと、を備える。不揮発性メモリは、符号を構成するシンボルのうち少なくとも1つのシ... 詳細

  • 東芝メモリ株式会社の「 メモリシステム」が 公開されました。( 2020/09/24)

    【課題】 リード電圧を効率よく推定できるメモリシステムを提供する。【解決手段】 一実施形態のメモリシステムは、第1および第2ページでデータを保持する記憶装置と、メモリコントローラとを含む。メモリコ... 詳細

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ