(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022176035
(43)【公開日】2022-11-25
(54)【発明の名称】メモリシステム及びメモリシステムの動作方法
(51)【国際特許分類】
G06F 11/14 20060101AFI20221117BHJP
G06F 12/00 20060101ALI20221117BHJP
G06F 11/10 20060101ALI20221117BHJP
G06F 3/06 20060101ALI20221117BHJP
G06F 3/08 20060101ALI20221117BHJP
【FI】
G06F11/14 641A
G06F12/00 597U
G06F11/10 604
G06F3/06 304Z
G06F3/08 H
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2021162686
(22)【出願日】2021-10-01
(31)【優先権主張番号】10-2021-0061361
(32)【優先日】2021-05-12
(33)【優先権主張国・地域又は機関】KR
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.MEMORY STICK
(71)【出願人】
【識別番号】310024033
【氏名又は名称】エスケーハイニックス株式会社
【氏名又は名称原語表記】SK hynix Inc.
【住所又は居所原語表記】2091, Gyeongchung-daero,Bubal-eub,Icheon-si,Gyeonggi-do,Korea
(74)【代理人】
【識別番号】110000796
【氏名又は名称】弁理士法人三枝国際特許事務所
(72)【発明者】
【氏名】イ ウォン ヒョン
(72)【発明者】
【氏名】カン ジ ヨン
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160MM09
(57)【要約】
【課題】サドンパワーオフ復旧動作を行うメモリシステム及びメモリシステムの動作方法を提供する。
【解決手段】複数のメモリブロックを備えるメモリシステム110の動作方法は、サドンパワーオフの復旧のために、オープンブロックに連関したマップデータ及びオープンブロック識別情報を維持したまま、オープンブロックのデータを複数のメモリブロックの中で選択されたブロックに複写する第1ステップと、オープンブロックをイレイスする第2ステップと、選択されたブロックに複写されたデータをイレイスされたオープンブロックに複写する第3ステップとを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のメモリブロックを備えるメモリシステムの動作方法において、
サドンパワーオフの復旧のために、オープンブロックに連関したマップデータ及びオープンブロック識別情報を維持したまま、前記オープンブロックのデータを前記複数のメモリブロックの中で選択されたブロックに複写する第1ステップと、
前記オープンブロックをイレイスする第2ステップと、
前記選択されたブロックに複写されたデータを前記イレイスされたオープンブロックに複写する第3ステップと、
を含む動作方法。
【請求項2】
前記第1ステップの完了に応答して有効なログデータをメタブロックに格納するステップと、
前記メモリシステムがパワーアップされれば、前記メタブロックに前記有効なログデータが格納されたか否かによって前記第1ステップまたは第2ステップを行うステップをさらに含む請求項1に記載の動作方法。
【請求項3】
前記有効なログデータは、
前記オープンブロックのデータが前記選択されたブロックに複写されたということを表す請求項2に記載の動作方法。
【請求項4】
前記第3ステップの完了に応答して、前記メタブロックに格納された前記有効なログデータを無効化するステップをさらに含む請求項2に記載の動作方法。
【請求項5】
前記第1ステップまたは第2ステップを行うステップは、
前記メタブロックに前記有効なログデータが格納された場合、以前パワーサイクルで維持されたオープンブロック識別情報に基づいてオープンブロックを識別するステップと、
前記有効なログデータに基づいて、以前パワーサイクルで使用された選択されたブロックを識別するステップと、
前記識別されたオープンブロック及び選択されたブロックに基づいて前記第2ステップを行うステップと、
を含む請求項2に記載の動作方法。
【請求項6】
前記第1ステップまたは第2ステップを行うステップは、
前記メタブロックに無効なログデータが格納された場合、以前パワーサイクルで維持されたオープンブロック識別情報に基づいてオープンブロックを識別するステップと、
前記識別されたオープンブロックに基づいて前記第1ステップを行うステップと、
を含む請求項2に記載の動作方法。
【請求項7】
前記第3ステップの完了に応答して正常動作を行うステップをさらに含み、
前記正常動作を行うステップは、
前記オープンブロックのイレイスページに新しいデータを逐次格納するステップを含む請求項1に記載の動作方法。
【請求項8】
前記正常動作を行うステップは、
前記マップデータを参照してオープンブロックにアクセスするステップをさらに含む請求項7に記載の動作方法。
【請求項9】
前記第1ステップは、
前記オープンブロックのデータのエラー訂正デコードを行って揮発性メモリにロードするステップと、
前記ロードされたデータのエラー訂正エンコードを行って前記選択されたブロックに格納するステップと、
を含む請求項1に記載の動作方法。
【請求項10】
メモリシステムにおいて、
複数のメモリブロックを備えるメモリ装置と、
前記メモリ装置を制御するコントローラと、
を備え、
前記コントローラは、
サドンパワーオフの復旧のために、オープンブロックに連関したマップデータ及びオープンブロック識別情報を維持したまま、前記オープンブロックのデータを前記複数のメモリブロックの中で選択されたブロックに複写し、前記オープンブロックをイレイスし、前記選択されたブロックに複写されたデータを前記イレイスされたオープンブロックに複写するメモリシステム。
【請求項11】
前記コントローラは、
前記オープンブロックのデータが前記選択されたブロックに複写されれば、有効なログデータをメタブロックに格納し、前記メモリシステムがパワーアップされれば、前記メタブロックに前記有効なログデータが格納されたか否かによって選択的に前記オープンブロックをイレイスする動作を行う請求項10に記載のメモリシステム。
【請求項12】
前記有効なログデータは、
前記オープンブロックのデータが前記選択されたブロックに複写されたということを表す請求項11に記載のメモリシステム。
【請求項13】
前記コントローラは、
前記選択されたブロックに複写されたデータが前記オープンブロックに複写されれば、前記メタブロックに格納された前記有効なログデータを無効化する請求項11に記載のメモリシステム。
【請求項14】
前記コントローラは、
前記メタブロックに前記有効なログデータが格納された場合、以前パワーサイクルで維持されたオープンブロック識別情報に基づいて識別されたオープンブロックをイレイスする動作を行う請求項11に記載のメモリシステム。
【請求項15】
前記コントローラは、
前記メタブロックに無効なログデータが格納された場合、以前パワーサイクルで維持されたオープンブロック識別情報に基づいて、前記オープンブロックのデータを前記複数のメモリブロックの中で選択されたブロックに複写する請求項11に記載のメモリシステム。
【請求項16】
前記コントローラは、
前記選択されたブロックに複写されたデータを前記オープンブロックに複写した後、前記オープンブロックのイレイスページに新しいデータを逐次格納することにより正常動作を行う請求項10に記載のメモリシステム。
【請求項17】
前記コントローラは、
前記選択されたブロックに複写されたデータを前記オープンブロックに複写した後、前記マップデータを参照してオープンブロックにアクセスすることにより正常動作を行う請求項10に記載のメモリシステム。
【請求項18】
前記コントローラは、
前記オープンブロックのデータのエラー訂正デコードを行って揮発性メモリにロードし、前記ロードされたデータのエラー訂正エンコードを行って前記選択されたブロックに格納することにより、前記オープンブロックのデータを前記選択されたブロックに複写する請求項10に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリシステム及びメモリシステムの動作方法に関する。
【背景技術】
【0002】
近年、コンピュータ環境に対するパラダイム(paradigm)がいつ、どこでもコンピュータシステムを使用できるようにするユビキタスコンピューティング(ubiquitous computing)に切り換えられている。これにより、携帯電話、デジタルカメラ、ノートブックコンピュータなどのような携帯用電子装置の使用が急増している。このような携帯用電子装置は、一般に、メモリ装置を利用するメモリシステム、言い換えれば、データ格納装置を使用する。データ格納装置は、携帯用電子装置の主記憶装置または補助記憶装置として使用される。
【0003】
不揮発性メモリ装置を利用したデータ格納装置は、ハードディスクとは異なり、機械的な駆動部がないので、安定性及び耐久性に優れ、かつ、情報のアクセス速度が極めて速く、電力消費が少ないという長所がある。このような長所を有するメモリシステムの一例として、データ格納装置は、USB(Universal Serial Bus)メモリ装置、様々なインターフェースを有するメモリカード、ソリッドステートドライブ(SSD:Solid State Drive)などを含む。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、サドンパワーオフ復旧動作を行うメモリシステム及びメモリシステムの動作方法を提供しようとする。
【課題を解決するための手段】
【0005】
本発明の実施形態によれば、複数のメモリブロックを備えるメモリシステムの動作方法は、サドンパワーオフの復旧のために、オープンブロックに連関したマップデータ及びオープンブロック識別情報を維持したまま、前記オープンブロックのデータを前記複数のメモリブロックの中で選択されたブロックに複写する第1ステップと、前記オープンブロックをイレイスする第2ステップと、前記選択されたブロックに複写されたデータを前記イレイスされたオープンブロックに複写する第3ステップとを含む。
【0006】
また、前記動作方法は、前記第1ステップの完了に応答して有効なログデータをメタブロックに格納するステップと、前記メモリシステムがパワーアップされれば、前記メタブロックに前記有効なログデータが格納されたか否かによって前記第1ステップまたは第2ステップを行うステップとをさらに含むことができる。
【0007】
また、前記有効なログデータは、前記オープンブロックのデータが前記選択されたブロックに複写されたということを表すことができる。
【0008】
また、前記動作方法は、前記第3ステップの完了に応答して、前記メタブロックに格納された前記有効なログデータを無効化するステップをさらに含むことができる。
【0009】
また、前記第1ステップまたは第2ステップを行うステップは、前記メタブロックに前記有効なログデータが格納された場合、以前パワーサイクルで維持されたオープンブロック識別情報に基づいてオープンブロックを識別するステップと、前記有効なログデータに基づいて、以前パワーサイクルで使用された選択されたブロックを識別するステップと、前記識別されたオープンブロック及び選択されたブロックに基づいて前記第2ステップを行うステップとを含むことができる。
【0010】
また、前記第1ステップまたは第2ステップを行うステップは、前記メタブロックに無効なログデータが格納された場合、以前パワーサイクルで維持されたオープンブロック識別情報に基づいてオープンブロックを識別するステップと、前記識別されたオープンブロックに基づいて前記第1ステップを行うステップとを含むことができる。
【0011】
また、前記動作方法は、前記第3ステップの完了に応答して正常動作を行うステップをさらに含み、前記正常動作を行うステップは、前記オープンブロックのイレイスページに新しいデータを逐次格納するステップを含むことができる。
【0012】
また、前記正常動作を行うステップは、前記マップデータを参照してオープンブロックにアクセスするステップをさらに含むことができる。
【0013】
また、前記第1ステップは、前記オープンブロックのデータのエラー訂正デコードを行って揮発性メモリにロードするステップと、前記ロードされたデータのエラー訂正エンコードを行って前記選択されたブロックに格納するステップとを含むことができる。
【0014】
本発明の実施形態に係るメモリシステムは、複数のメモリブロックを備えるメモリ装置と、前記メモリ装置を制御するコントローラとを備え、前記コントローラは、サドンパワーオフの復旧のために、オープンブロックに連関したマップデータ及びオープンブロック識別情報を維持したまま、前記オープンブロックのデータを前記複数のメモリブロックの中で選択されたブロックに複写し、前記オープンブロックをイレイスし、前記選択されたブロックに複写されたデータを前記イレイスされたオープンブロックに複写する。
【0015】
また、前記コントローラは、前記オープンブロックのデータが前記選択されたブロックに複写されれば、有効なログデータをメタブロックに格納し、前記メモリシステムがパワーアップされれば、前記メタブロックに前記有効なログデータが格納されたか否かによって選択的に前記オープンブロックをイレイスする動作を行うことができる。
【0016】
また、前記有効なログデータは、前記オープンブロックのデータが前記選択されたブロックに複写されたということを表すことができる。
【0017】
また、前記コントローラは、前記選択されたブロックに複写されたデータが前記オープンブロックに複写されれば、前記メタブロックに格納された前記有効なログデータを無効化することができる。
【0018】
また、前記コントローラは、前記メタブロックに前記有効なログデータが格納された場合、以前パワーサイクルで維持されたオープンブロック識別情報に基づいて識別されたオープンブロックをイレイスする動作を行うことができる。
【0019】
また、前記コントローラは、前記メタブロックに無効なログデータが格納された場合、以前パワーサイクルで維持されたオープンブロック識別情報に基づいて、前記オープンブロックのデータを前記複数のメモリブロックの中で選択されたブロックに複写することができる。
【0020】
また、前記コントローラは、前記選択されたブロックに複写されたデータを前記オープンブロックに複写した後、前記オープンブロックのイレイスページに新しいデータを逐次格納することにより正常動作を行うことができる。
【0021】
また、前記コントローラは、前記選択されたブロックに複写されたデータを前記オープンブロックに複写した後、前記マップデータを参照してオープンブロックにアクセスすることにより正常動作を行うことができる。
【0022】
また、前記コントローラは、前記オープンブロックのデータのエラー訂正デコードを行って揮発性メモリにロードし、前記ロードされたデータのエラー訂正エンコードを行って前記選択されたブロックに格納することにより、前記オープンブロックのデータを前記選択されたブロックに複写することができる。
【発明の効果】
【0023】
本発明は、サドンパワーオフ復旧動作を行うメモリシステム及びメモリシステムの動作方法を提供できる。
【図面の簡単な説明】
【0024】
【
図1】本発明の実施形態に係るメモリシステム110を備えるデータ処理システム100の一例を示した図である。
【
図2】メモリ装置150内のメモリブロックのメモリセルアレイの例示的な構成を示した回路図である。
【
図3】メモリブロックに備えられたページのプログラム状態によるメモリブロックの類型を説明する図である。
【
図4】本発明の実施形態に係るメモリシステム110に備えられたコントローラ130を詳細に説明する図である。
【
図5A】本発明の実施形態に係るメモリシステム110の動作を説明する図である。
【
図5B】本発明の実施形態に係るメモリシステム110の動作を説明する図である。
【
図5C】本発明の実施形態に係るメモリシステム110の動作を説明する図である。
【
図5D】本発明の実施形態に係るメモリシステム110の動作を説明する図である。
【
図5E】本発明の実施形態に係るメモリシステム110の動作を説明する図である。
【
図6】本発明の実施形態に係るメモリシステム110の動作を説明する図である。
【発明を実施するための形態】
【0025】
図1は、本発明の実施形態に係るメモリシステム110を備えるデータ処理システム100の一例を示した図である。
【0026】
図1に示すように、データ処理システム100は、ホスト102及びメモリシステム110を備える。
【0027】
ホスト102は、電子装置、例えば、携帯電話、MP3プレーヤ、ラップトップコンピュータなどのような携帯用電子装置、またはデスクトップコンピュータ、ゲーム機、TV、プロジェクタなどのような電子装置を含むことができる。
【0028】
ホスト102は、少なくとも1つの運営システム(OS:operating system)を含むことができる。運営システムは、ホスト102の機能及び動作を全般的に管理及び制御し、データ処理システム100またはメモリシステム110を使用するユーザとホスト102との間に相互動作を提供する。運営システムは、ユーザの使用目的及び用途に相応した機能及び動作を支援し、ホスト102の移動性(mobility)によって一般運営システムとモバイル運用システムとに区分することができる。運営システムにおける一般運営システムシステムは、ユーザの使用環境によって個人用運営システムと企業用運営システムとに区分することができる。
【0029】
メモリシステム110は、ホスト102の要請に応じてホスト102のデータを格納するために動作することができる。例えば、メモリシステム110は、ソリッドステートドライブ(SSD:Solid State Drive)、MMC、eMMC(embedded MMC)、RS-MMC(Reduced Size MMC)、micro-MMC形態のマルチメディアカード(MMC:Multi Media Card)、SD、mini-SD、micro-SD形態のセキュアデジタル(SD:Secure Digital)カード、USB(Universal Serial Bus)格納装置、UFS(Universal Flash Storage)装置、CF(Compact Flash)カード、スマートメディア(Smart Media(登録商標))カード、メモリスティック(Memory Stick)などのような様々な種類の格納装置のうち、いずれか1つで実現されることができる。
【0030】
メモリシステム110は、様々な種類の格納装置により実現されることができる。例えば、前記格納装置は、DRAM(Dynamic Random Access Memory)、SRAM(Static RAM)などのような揮発性メモリ装置と、ROM(Read Only Memory)、MROM(Mask ROM)、PROM(Programmable ROM)、EPROM(Erasable ROM)、EEPROM(Electrically Erasable ROM)、FRAM(登録商標)(Ferromagnetic ROM)、PRAM(Phase change RAM)、MRAM(Magnetic RAM)、RRAM(Resistive RAM)、フラッシュメモリなどのような不揮発性メモリ装置を備えることができる。前記フラッシュメモリは、3次元スタック構造を有することができる。
【0031】
メモリシステム110は、メモリ装置150及びコントローラ130を備えることができる。メモリ装置150は、ホスト102のためのデータを格納することができ、コントローラ130は、メモリ装置150へのデータ格納を制御することができる。
【0032】
コントローラ130は、ホスト102からの要請に応じてメモリ装置150を制御できる。例えば、コントローラ130は、メモリ装置150から読み出されたデータをホスト102に提供し、ホスト102から提供されたデータをメモリ装置150に格納することができる。このような動作のために、コントローラ130は、メモリ装置150の読み出し(read)、プログラム(program)、イレイス(erase)などの動作を制御できる。
【0033】
例えば、コントローラ130は、メモリ装置150にデータをプログラムするために、ホスト102の論理アドレス(logical address)をメモリ装置150の物理アドレス(physical address)にマッピング(mapping)することができる。コントローラ130は、エラー訂正エンコードを行って書き込みデータにパリティビットを付加してメモリ装置150に格納することができる。
【0034】
コントローラ130は、メモリ装置150からデータを読み出すために、メモリシステム110のマップデータを参照し、ホスト102からの論理アドレスを物理アドレスに変換してメモリ装置150にアクセスすることができる。コントローラ130は、前記パリティビットを用いてエラー訂正デコードを行い、読み出しデータのエラーを検出及び訂正してホスト102に提供することができる。コントローラ130がホスト102からの読み出し要請に応じてアドレス変換動作、メモリ装置150からデータを読み出す動作、エラー訂正動作のような複数の動作を行うことができる。
【0035】
コントローラ130及びメモリ装置150は、1つの半導体装置で集積されることができる。一例として、コントローラ130及びメモリ装置150は、1つの半導体装置で集積されてSSDを構成できる。メモリシステム110がSSDとして使用されれば、メモリシステム110に連結されたホスト102の動作速度は向上することができる。さらに、コントローラ130及びメモリ装置150は、1つの半導体装置で集積されてメモリカードを構成することもできる。例えば、コントローラ130及びメモリ装置150は、PCカード(PCMCIA:Personal Computer Memory Card International Association)、コンパクトフラッシュ(登録商標)カード(CF)、スマートメディアカード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS-MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、ユニバーサルフラッシュ記憶装置(UFS)などのようなメモリカードを構成できる。
【0036】
他の一例として、メモリシステム110は、コンピュータ、UMPC(Ultra Mobile PC)、ワークステーション、ネットブック(net-book)、PDA(Personal Digital Assistants)、ポータブル(portable)コンピュータ、ウェブタブレット(web tablet)、タブレットコンピュータ(tablet computer)、無線電話機(wireless phone)、モバイルフォン(mobile phone)、スマートフォン(smart phone)、e-ブック(e-book)、PMP(portable multimedia player)、携帯用ゲーム機、ナビゲーション(navigation)装置、ブラックボックス(black box)、デジタルカメラ(digital camera)、DMB(Digital Multimedia Broadcasting)再生機、3次元テレビ(3-dimensional television)、スマートテレビ(smart television)、デジタル音声録音機(digital audio recorder)、デジタル音声再生機(digital audio player)、デジタル映像録画機(digital picture recorder)、デジタル映像再生機(digital picture player)、デジタル動画録画機(digital video recorder)、デジタル動画再生機(digital video player)、データセンターを構成するストレージ、情報を無線環境で送受信できる装置、ホームネットワークを構成する様々な電子装置のうち1つ、コンピューターネットワークを構成する様々な電子装置のうち1つ、テレマティクスネットワークを構成する様々な電子装置のうち1つ、RFID(radio frequency identification)装置、またはコンピューティングシステムを構成する様々な構成要素のうち1つなどを構成できる。
【0037】
メモリ装置150は、不揮発性メモリ装置であることができ、電源が供給されなくても格納されたデータを維持できる。メモリ装置150は、プログラム動作によってホスト102から提供されたデータを格納でき、読み出し動作によってホスト102にメモリ装置150に格納されたデータを提供できる。メモリ装置150は、複数のメモリブロックを備え、メモリブロックの各々は、複数のページを備え、前記ページの各々は、ワードラインに連結された複数のメモリセルを備えることができる。一実施形態において、メモリ装置150は、フラッシュメモリになることができる。前記フラッシュメモリは、3次元スタック構造を有することができる。
【0038】
フラッシュメモリ装置は、メモリセルトランジスタで構成されたメモリセルアレイにデータを格納できる。フラッシュメモリ装置は、メモリダイ、プレーン、メモリブロック、及びページ階層構造を有することができる。1つのメモリダイは、1回に1つのコマンドを受信することができる。フラッシュメモリは、複数のメモリダイを備えることができる。1つのメモリダイは、複数のプレーンを備えることができ、前記複数のプレーンは、前記メモリダイが受信したコマンドを並列に処理することができる。各プレーンは、複数のメモリブロックを備えることができる。
【0039】
図2は、メモリ装置150内のメモリブロックのメモリセルアレイの例示的な構成を示した回路図である。
【0040】
図2に示すように、メモリシステム110のメモリ装置150に備えられた複数のメモリブロックのうち、いずれのものとも対応できるメモリブロック330は、複数のビットラインBL0~BLm-1と連結された複数のセルストリング340を備えることができる。各列(column)のセルストリング340は、少なくとも1つのドレイン選択トランジスタDSTと少なくとも1つのソース選択トランジスタSSTとを備えることができる。ドレイン選択トランジスタDST及びソース選択トランジスタSST間に複数個のメモリセルMC0 to MCn-1が直列に連結され得る。それぞれのメモリセルMC0 to MCn-1は、セル当たり複数のビットのデータ情報を格納するMLCで実現されることができる。それぞれのセルストリング340は、対応するビットラインBL0 to BLm-1に各々電気的に連結されることができる。例えば、
図3に示されたように、第1のセルストリングは、第1のビットラインBL0と連結され、最後のセルストリングは、最後のビットラインBLm-1と連結されることができる。参考として、
図2において「DSL」は、ドレイン選択ライン、「SSL」は、ソース選択ライン、「CSL」は、共通ソースラインを示す。
【0041】
図2は、NANDフラッシュメモリセルを示しているが、本発明は、これに限定されない。例えば、前記メモリセルは、NORフラッシュメモリセルであることができる。また、メモリ装置150は、電荷蓄積層として伝導性フローティングゲートを備えるフラッシュメモリ装置、または電荷蓄積層が絶縁膜で構成されたチャージトラップ型フラッシュ(CTF、Charge Trap Flash)メモリ装置であることもできる。
【0042】
メモリ装置150は、動作モードによってワードラインに供給するためのプログラム電圧、読み出し電圧、パス電圧を含むワードライン電圧を提供する電圧供給部310をさらに備えることができる。電圧供給部310の電圧生成動作は、制御回路(図示せず)により制御されることができる。前記制御回路の制御下に、電圧供給部310は、メモリセルアレイのメモリブロック(または、セクタ)のうち1つを選択でき、前記選択されたメモリブロックのワードラインのうち1つを選択でき、前記ワードライン電圧を選択ワードラインに提供し、必要に応じて非選択ワードラインに提供することができる。
【0043】
メモリ装置150は、制御回路により制御される読み出し/書き込み回路320を備えることができる。検証/正常読み出し動作中に、読み出し/書き込み回路320は、メモリセルアレイからデータを読み出すために感知増幅器として動作することができる。プログラム動作中に、読み出し/書き込み回路320は、前記メモリセルアレイに格納されるデータによってビットラインを駆動する書き込みドライバとして動作することができる。プログラム動作中に、読み出し/書き込み回路320は、バッファ(図示せず)から前記メモリセルアレイに格納されるデータを受信し、前記受信されたデータによってビットラインを駆動できる。読み出し/書き込み回路320は、各々が列(column)(または、ビットライン)または列対(column pair)(または、ビットライン対)と対応する複数のページバッファ322~326を備えることができ、それぞれのページバッファ322~326は、複数のラッチ(図示せず)を備えることができる。
【0044】
すなわち、メモリ装置150の各メモリブロック330は、複数のビットラインBL、複数のドレイン選択ラインDSL、複数のソース選択ラインSSL、複数のワードラインWL、複数のダミーワードラインDWL、そして複数の共通ソースラインCSLに連結されることができ、各メモリブロック330は、複数のNANDストリングNSを備えることができる。また、各メモリブロック330において1つのビットラインBLが複数のNANDストリングNSと連結されて1つのNANDストリングNS内に複数のトランジスタを実現できる。また、各NANDストリングNSのドレイン選択トランジスタDSTは、対応するビットラインBLと連結されることができ、各NANDストリングNSのソース選択トランジスタSSTは、共通ソースラインCSLと連結されることができる。メモリセルMCは、各NANDストリングNSのドレイン選択トランジスタDSTとソース選択トランジスタSSTとの間に提供されることができる。すなわち、メモリ装置150の各メモリブロック330には複数のメモリセルが実現されることができる。
【0045】
メモリ装置150のイレイス動作は、メモリブロック単位に行われ、プログラム動作は、ページ単位で行われることができる。メモリ装置150は、プログラム動作の単位とイレイス動作の単位とが相違し、上書き(overwrite)演算を支援しないことができる。したがって、コントローラ130は、既存ページに格納されたデータをアップデートするために、他のページに前記アップデートされるデータを有効データとして格納し、既存ページのデータを無効化(invalidate)することができる。
【0046】
図3は、メモリブロックに含まれたページのプログラム状態によるメモリブロックの類型を説明する図である。
【0047】
図3においてブロック別に示された区画(section)は、各メモリブロックに属したページを示す。陰影が示された区画は、有効ページ、ドットパターンが示された区画は、無効ページ、何も示されていない区画は、イレイスページ(erased page)を示す。有効ページは、有効データを格納するページを称することができる。コントローラ130は、マップデータを参照してホスト102の論理アドレスを物理アドレスに変換することにより、前記有効ページにアクセスすることができる。無効ページは、無効化されたデータを格納するページを称することができる。そして、イレイスページは、当該ページに備えられたメモリセルが全てイレイス状態であるページを称することができる。
【0048】
図3は、メモリブロックの類型としてイレイスブロック(erased block)を示す。イレイスブロックは、当該メモリブロックに含まれたメモリセルが全てイレイス状態であるメモリブロックであって、イレイスページのみを備えることができる。
【0049】
図3は、メモリブロックの類型としてオープンブロック(open block)を示す。オープンブロックは、全てのメモリセルに対するプログラム動作が完了していないメモリブロックであって、イレイスページを備えることができる。オープンブロックにおいて、プログラムされたページは、最近にプログラムされたデータを格納できる。そして、以後にプログラムされるデータは、オープンブロックのイレイスページに格納されることができる。オープンブロックの全てのメモリセルにプログラム動作が完了して、当該オープンブロックにそれ以上イレイスページがない場合、コントローラ130は、当該オープンブロックをクローズドブロック(closed block)として決定することができる。前記クローズドブロックは、メモリブロックに対するイレイス動作が行われる前までは、それ以上プログラム動作が行われないメモリブロックを称することができる。
【0050】
図3は、メモリブロックの類型としてクローズドブロックを示す。具体的に、
図3は、クローズドブロックの例として無効ページを備えるクローズドブロックを示す。
【0051】
クローズドブロックの全てのページが無効ページになると、コントローラ130は、前記クローズドブロックをフリーブロックとして決定することができる。
【0052】
図3は、メモリブロックの類型としてフリーブロック(free block)を示す。フリーブロックは、プログラムされたページが全て無効ページであるメモリブロックを称することができる。前記フリーブロックは、ガベージコレクション(garbage collection)などの動作を要さずに直ちにイレイスされることができる。コントローラ130は、データを格納するために使用されたオープンブロックがクローズドブロックになると、フリーブロックをイレイスブロックに作り、前記イレイスブロックを新しいオープンブロックとして決定することができる。
【0053】
メモリ装置150に備えられるメモリブロックの各々は、イレイスブロック、オープンブロック、クローズドブロック、及びフリーブロックのうち、いずれか1つに該当することができる。
【0054】
メモリシステム110にサドンパワーオフが発生すれば、オープンブロックのデータが損傷され得る。例えば、メモリシステム110にサドンパワーオフが発生すれば、オープンブロックに既にプログラムされたデータが損傷され得る。そして、前記オープンブロックのイレイスページのメモリセル分布も損傷されることができる。メモリシステム110が前記オープンブロックに対する復旧措置なしに前記イレイスページにデータをプログラムすれば、前記イレイスページにプログラムされたデータも損傷されることができる。
【0055】
メモリシステム110は、サドンパワーオフのため、オープンブロックに格納されたデータの信頼性が低下することを防止するために、次のパワーサイクル(power cycle)でサドンパワーオフ復旧動作を行うことができる。パワーサイクルは、メモリシステム110がパワーアップされてパワーオフされるまでの1循環を称することができる。すなわち、メモリシステム110は、サドンパワーオフが発生した後にパワーアップされれば、サドンパワーオフ復旧動作を行うことができる。
【0056】
サドンパワーオフ復旧動作の第1例として、メモリシステム110は、前記オープンブロックの1番目のイレイスページにダミーデータをプログラムすることができる。1番目のイレイスページは、前記オープンブロックのイレイスページのうち、最後にプログラムされたページの次の順序でプログラムされることができるページを称することができる。
【0057】
サドンパワーオフ復旧動作の第2例として、メモリシステム110は、フリーブロックをイレイスし、前記オープンブロックに格納されたデータを前記イレイスされたフリーブロックに複写することができる。
【0058】
一方、メモリシステム110は、並列動作できる複数のメモリダイにわたって連続するデータをプログラムすることができる。メモリシステム110は、並列にプログラムされる複数のページのデータに対する並列パリティ演算、例えば、チップキル(chip-kill)演算を行ってパリティを生成できる。すなわち、メモリ装置150の複数のメモリダイにわたった複数のページのデータが互いに緊密に連関することができる。
【0059】
メモリシステム110が第1例によってサドンパワーオフ復旧動作を行う場合、前記1番目のイレイスページだけでなく、連関したページにプログラムされるデータを演算し、前記1番目のイレイスページ及び連関したページにプログラム動作を行わなければならない。したがって、第1例によるサドンパワーオフ復旧動作は、過度な演算を求めることができる。したがって、以下では、メモリシステム110が第2例によってサドンパワーオフ復旧動作を行う場合について説明される。
【0060】
メモリシステム110がサドンパワーオフ復旧動作を行う途中に、再度サドンパワーオフが発生し、次のパワーサイクルでサドンパワーオフ復旧動作を繰り返し実行する場合がある。仮りに、メモリシステム110がサドンパワーオフ復旧動作を繰り返し実行する度にフリーブロックをイレイスして新しいオープンブロックを生成するならば、メモリ装置150に備えられたフリーブロックが早期に消尽されることができる。メモリ装置150のフリーブロックが早期に消尽されれば、メモリブロックの寿命が残っていてもメモリシステム110を正常に使用できないようになる。したがって、繰り返されるサドンパワー復旧動作の際にも、メモリ装置150に備えられたフリーブロックが消尽されないようにするメモリシステム110が求められる。
【0061】
本発明の実施形態によれば、メモリシステム110は、サドンパワーオフ復旧動作の際に、内部に格納されたオープンブロック識別情報に基づいて復旧するオープンブロックを決定できる。メモリシステム110は、オープンブロックに格納されたデータを前記イレイスされたフリーブロックに複写することができる。メモリシステム110は、前記複写を完了した後にも、前記オープンブロック識別情報及び前記オープンブロックに格納されたデータのマップデータをアップデートしないことができる。サドンパワーオフ復旧動作が繰り返される場合にも、前記オープンブロック識別情報は維持されることができる。したがって、メモリシステム110は、サドンパワーオフ復旧動作を繰り返す場合、前記データが複写されたフリーブロックをオープンブロックとして復旧するものではなく、既存のオープンブロックを復旧することができる。
【0062】
メモリシステム110は、前記オープンブロック識別情報をアップデートしない代わりに、前記データが複写されたフリーブロックを識別するためのログデータをメモリ装置150に格納することができる。そして、メモリシステム110は、前記オープンブロックをイレイスすることによりオープンブロックの損傷されたデータを除去し、前記フリーブロックに複写されたデータを前記オープンブロックに再度複写し、前記ログデータを無効化することができる。
【0063】
図4~
図6を参照して本発明の実施形態に係るメモリシステム110がより詳細に説明される。
【0064】
図4は、本発明の実施形態に係るメモリシステム110に備えられたコントローラ130を詳細に説明する図である。
【0065】
コントローラ130は、互いに内部バスを介して動作可能なように連結されたホストインターフェース132、プロセッサ134、ECC(error correction code、138)、メモリインターフェース142、及びメモリ144を備えることができる。
【0066】
ホストインターフェース132は、ホスト102のコマンド(command)及びデータを処理し、USB(Universal Serial Bus)、MMC(Multi-Media Card)、PCI-E(Peripheral Component Interconnect-Express)、SAS(Serial-attached SCSI)、SATA(Serial Advanced Technology Attachment)、PATA(Parallel Advanced Technology Attachment)、SCSI(Small Computer System Interface)、ESDI(Enhanced Small Disk Interface)、IDE(Integrated Drive Electronics)、MIPI(Mobile Industry Processor Interface)などのような様々なインターフェースプロトコルのうち、少なくとも1つによってホスト102と通信するように構成されることができる。
【0067】
ホストインターフェース132は、ホスト102とデータをやり取りする領域であって、ホストインターフェース階層(HIL:Host Interface Layer)と呼ばれるファームウェア(firmware)を介して駆動されることができる。
【0068】
メモリインターフェース142は、コントローラ130がホスト102からの要請に応答してメモリ装置150を制御するように、コントローラ130とメモリ装置150との間のインターフェーシングのためのメモリ/ストレージ(storage)インターフェースとしての役割をすることができる。メモリ装置150がフラッシュメモリ、特に、NANDフラッシュメモリである場合、メモリインターフェース142は、メモリ装置150のための制御信号を生成し、プロセッサ134の制御下にメモリ装置150に提供されるデータを処理できる。メモリインターフェース142は、コントローラ130とメモリ装置150との間のコマンド及びデータを処理するためのインターフェース、例えば、NANDフラッシュインターフェースとして動作することができる。
【0069】
メモリインターフェース142は、フラッシュインターフェース階層(FIL:Flash Interface Layer)と呼ばれるファームウェア(firmware)を介して駆動されることができる。
【0070】
プロセッサ134は、メモリシステム110の全体的な動作を制御できる。プロセッサ134は、メモリシステム110の全般的な動作を制御するためにファームウェアを駆動できる。前記ファームウェアは、フラッシュ変換階層(FTL:Flash Translation Layer)と呼ばれることができる。そして、プロセッサ134は、マイクロプロセッサまたは中央処理装置(CPU)などで実現されることができる。
【0071】
プロセッサ134は、フラッシュ変換階層を駆動して、ホストから受信された要請に対応するフォアグラウンド動作(foreground operation)を行うことができる。例えば、プロセッサ134は、ホストからの書き込み要請に応じてメモリ装置150の書き込み動作を制御し、読み出し要請に応じてメモリ装置150の読み出し動作を制御することができる。
【0072】
また、コントローラ130は、マイクロプロセッサまたは中央処理装置(CPU)などで実現されたプロセッサ134を介してメモリ装置150に対するバックグラウンド(back ground)動作を行うこともできる。例えば、メモリ装置150に対するバックグラウンド動作は、ガベージコレクション(GC:Garbage Collection)動作、ウェアレベリング(WL:Wear Leveling)動作、マップフラッシュ(map flush)動作、バッドブロック管理(bad block management)動作などを含むことができる。
【0073】
メモリ144は、メモリシステム110及びコントローラ130の動作メモリとしての役割を果たすことができ、メモリシステム110及びコントローラ130の駆動のためのデータを格納することができる。コントローラ130は、ホスト102からの要請に応じてメモリ装置150が読み出し、プログラム、イレイス動作を行うようにメモリ装置150を制御できる。コントローラ130は、メモリ装置150から読み出されるデータをホスト102に提供することができ、ホスト102から提供されるデータをメモリ装置150に格納することができる。メモリ144は、コントローラ130とメモリ装置150とがこのような動作を行うのに必要なデータを格納することができる。
【0074】
メモリ144は、揮発性メモリで実現されることができる。例えば、メモリ144は、静的ランダムアクセスメモリ(SRAM:Static Random Access Memory)、または動的ランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)などで実現されることができる。メモリ144は、コントローラ130の内部または外部に配置されることができる。
図1は、コントローラ130内部に配置されたメモリ144を例示する。一実施形態において、メモリ144は、コントローラ130外部の揮発性メモリ装置で実現されることができる。メモリ144が外部揮発性メモリ装置で実現される場合、コントローラ130は、メモリ144とのデータ入出力を支援するインターフェースをさらに備えることができる。
【0075】
メモリ144は、ホスト102とメモリ装置150との間の書き込み、読み出しなどの動作を行うためのデータを格納するために、プログラムメモリ、データメモリ、書き込みバッファ(buffer)/キャッシュ(cache)、読み出しバッファ/キャッシュ、データバッファ/キャッシュ、マップ(map)バッファ/キャッシュなどを備えることができる。
【0076】
ECC(138)は、メモリ装置150から読み出されるデータに含まれたエラーを検出及び訂正することができる。すなわち、ECC(138)は、ECCエンコードプロセスで使用されたECCコードを介してメモリ装置150から読み出されたデータにエラー訂正デコードプロセスを行うことができる。エラー訂正デコードプロセスの結果に応じて、ECC(138)は、例えば、エラー訂正成功/失敗信号のような信号を出力できる。エラービットの数が訂正可能なエラービットの閾値を超過すれば、ECC(138)は、エラービットを訂正できず、エラー訂正失敗信号を出力することができる。
【0077】
ECC(138)は、ECCエンコーダとECCデコーダとを備えることができる。前記ECCエンコーダは、メモリ装置150にプログラムされるデータをエラー訂正エンコードしてパリティビットが付加されたデータを生成できる。前記パリティビットが付加されたデータは、メモリ装置150に格納されることができる。そして、ECCデコーダは、メモリ装置150から読み出されるデータに含まれたエラーを検出及び訂正することができる。
【0078】
ECC(138)は、LDPC(low density parity check)コード(code)、BCH(Bose、Chaudhuri、Hocquenghem)コード、ターボコード(turbo code)、リード-ソロモンコード(Reed-Solomon code)、コンボリューションコード(convolution code)、RSC(recursive systematic code)、TCM(trellis-coded modulation)、BCM(Block coded modulation)などのコーデッドモジュレーション(coded modulation)を使用してエラー訂正を行うことができる。しかし、ECC(138)は、特定の構造に限定されるものではない。ECC(138)は、エラー訂正のための回路、モジュール、システム、または装置を全て含むことができる。
【0079】
ランダマイザ140は、メモリ装置150に格納されるデータをランダマイズ(randomize)し、メモリ装置150から読み出されたデータをデ-ランダマイズ(de-randomize)することができる。ランダマイザ140は、シード値(seed value)を演算してデータをランダマイズし、デ-ランダマイズすることができる。メモリ装置150に格納されるデータがランダマイズされれば、メモリ装置150のビットラインに連結されたメモリセルまたはワードラインに連結されたメモリセルにプログラムされるデータで「0」値を有するビットと「1」値を有するビットとが均等に分布され得る。例えば、エラー訂正エンコードされたデータは、ランダマイザ140によりランダマイズされてメモリ装置150に提供されることができる。そして、メモリ装置150から読み出されて、デ-ランダマイズされたデータは、ECC(138)によりエラー訂正デコードされることができる。
【0080】
以下において、本発明の実施形態に係るメモリシステム110の動作が
図5A~
図5E及び
図6を参照して詳細に説明される。
【0081】
図5A~
図5Eは、本発明の実施形態に係るメモリシステム110のサドンパワーオフ復旧動作を説明するための図である。
【0082】
図5Aは、メモリ装置150に備えれることができる複数のメモリブロックを示す。
【0083】
図5Aは、複数のメモリブロックのうち、オープンブロックOP_BKを示す。
図2を参照して説明されたように、オープンブロックOP_BKは、データ格納が完了していないメモリブロックであることができる。プロセッサ134は、オープンブロック識別情報に基づいてどのメモリブロックがオープンブロックOP_BKであるか判断することができる。オープンブロック識別情報は、メモリ装置150に備えられたメモリブロックのうち、どのメモリブロックがオープンブロックOP_BKであるかを表すことができる。
【0084】
図5Aは、複数のメモリブロックのうち、臨時ブロックTMP_BKを示す。臨時ブロックTMP_BKは、本発明の実施形態に係るサドンパワーオフ復旧動作中にオープンブロックOP_BKのデータを仮に格納するメモリブロックであることができる。例えば、臨時ブロックTMP_BKは、メモリ装置150のフリーブロックの中で選択されることができる。
【0085】
図5Aは、複数のメモリブロックのうち、メタブロックMT_BKを示す。メタブロックMT_BKは、オープンブロック識別情報、マップデータ、ログデータをはじめとして様々なメタデータを格納することができる。メモリ装置150は、複数のメタブロックMT_BKを備えることができる。
図5Aは、複数のメタブロックMT_BKのうち、オープンブロック状態であるメタブロックMT_BKを例示する。
【0086】
図5Aは、メモリシステム110のサドンパワーオフ復旧動作が行われる前のオープンブロックOP_BK、臨時ブロックTMP_BK、及びメタブロックMT_BKの状態を示す。
図5B~
図5Eは、
図5Aに示されたメモリブロックにサドンパワーオフ復旧動作が行われる過程でのオープンブロックOP_BK、臨時ブロックTMP_BK、及びメタブロックMT_BKの状態を示す。
図5B~
図5Eに示されたオープンブロックOP_BK、臨時ブロックTMP_BK、及びメタブロックMT_BKは、
図5Aを参照して説明されたことと対応することができる。以下において、
図5B~
図5Eを参照してメモリシステム110のサドンパワーオフ復旧動作が説明される。
【0087】
図5Bに示すように、ステップS101においてプロセッサ134は、メモリ装置150のフリーブロックのうち、いずれか1つを臨時ブロックTMP_BKとして選択し、前記選択された臨時ブロックTMP_BKをイレイスするようにメモリ装置150を制御できる。
図5Bは、イレイスされた臨時ブロックTMP_BKを例示する。
【0088】
図5Cに示すように、ステップS103においてプロセッサ134は、オープンブロックOP_BKから臨時ブロックTMP_BKにデータを複写することができる。例えば、プロセッサ134は、オープンブロックOP_BKのデータをメモリ144にロードし、メモリ144にロードされたデータを臨時ブロックTMP_BKに格納することによってデータを複写することができる。ECC(138)は、メモリ144にロードされるデータにデ-ランダマイズ及びエラー訂正デコードを行い、臨時ブロックTMP_BKに格納されるデータにエラー訂正エンコード及びランダマイズを行うことによってオープンブロックOP_BKの損傷されたデータを復旧し、臨時ブロックTMP_BKに複写されたデータの信頼性を保障できる。
【0089】
実施形態によって、メモリブロックの各ページは、当該ページに格納されたデータの論理アドレスを格納するためのスペア領域を含むことができる。
【0090】
臨時ブロックTMP_BKで複写されたデータが格納されたページは、臨時ページと称されることができる。
図5Cにおいて臨時ページは、ハッチングされた区画で表示される。
【0091】
プロセッサ134は、オープンブロックOP_BKのデータを臨時ブロックTMP_BKに複写した後にも、オープンブロック識別情報、オープンブロックOP_BKのデータ、及びオープンブロックOP_BKに連関したマップデータを除去しないことができる。すなわち、前記オープンブロック識別情報及び前記マップデータは、メタブロックMT_BKに維持され、オープンブロックOP_BKのデータは、オープンブロックOP_BKに維持されることができる。したがって、プロセッサ134は、サドンパワーオフ復旧動作中に再度サドンパワーオフが発生しても前記オープンブロック識別情報を参照して、臨時ブロックTMP_BKでなく、オープンブロックOP_BKに対する復旧動作を行うことができる。
【0092】
ステップS105において、プロセッサ134は、オープンブロックOP_BKのデータが臨時ブロックTMP_BKに複写されたということを表すログデータをメタブロックMT_BKに格納することができる。
図5Cにおいて、「Open block copied」が記録された区画は、前記ログデータが格納されたページを表す。
【0093】
例えば、ログデータは、臨時ブロックTMP_BKのアドレス情報及びサドンパワーオフ復旧動作の進行ステップ情報を含むことができる。プロセッサ134は、メタブロックMT_BKに有効なログデータが格納された場合、ステップS101~ステップS105の動作が省略されたサドンパワーオフ復旧動作を行うことができる。
【0094】
図5Dに示すように、ステップS107においてプロセッサ134は、オープンブロックOP_BKをイレイスするようにメモリ装置150を制御できる。したがって、サドンパワーオフのために損傷されることができたオープンブロックOP_BKのデータが除去され得る。
【0095】
図5Eに示すように、ステップS109において、プロセッサ134は、臨時ブロックTMP_BKに格納された臨時データをイレイスされたオープンブロックOP_BKに複写することができる。
【0096】
ステップS111において、プロセッサ134は、メタブロックMT_BKに格納されたログデータを無効化することができる。臨時データが格納された位置を指すログデータが無効化されれば、プロセッサ134がログデータを使用して前記位置にアクセスできないので、前記臨時データも無効化されることができる。
図5C及び
図5Dにおいてログデータが格納されたページと臨時データが格納されたページとは、
図5Eにおいて各々無効ページとして表示される。
【0097】
本発明の実施形態に係るサドンパワーオフ復旧動作は、ステップS101~ステップS111を含むことができる。サドンパワーオフ復旧動作が完了すれば、オープンブロックOP_BKの損傷されたデータが信頼できるデータに交替されることができる。
【0098】
図5Aと
図5Eを比較すれば、サドンパワーオフ復旧動作が行われる前にオープンブロックOP_BKに格納されたデータは、サドンパワーオフ復旧動作が行われた後に同じオープンブロックOP_BKに格納されることができる。そして、オープンブロックOP_BKに格納されたデータのマップデータは変更されないことができる。したがって、プロセッサ134は、サドンパワーオフが発生する前と同様に、オープンブロックOP_BKに格納されたデータにアクセスすることができる。そして、プロセッサ134は、オープンブロックOP_BKのイレイスページに新しいデータを逐次格納することができる。
【0099】
本発明の実施形態によれば、プロセッサ134は、オープンブロックOP_BKを復旧するために、オープンブロックOP_BKのデータを臨時ブロックTMP_BKに複写した後にもオープンブロック識別情報を維持できる。したがって、プロセッサ134は、サドンパワーオフ復旧動作を繰り返す度に新しいオープンブロックに対するサドンパワーオフ復旧動作を行う代わりに、既存のオープンブロックOP_BKに対する復旧動作を繰り返し実行することができる。したがって、プロセッサ134がサドンパワーオフ復旧動作を繰り返す度に新しいオープンブロックを生成してメモリ装置150のフリーブロックが消尽される現象を防止できる。
【0100】
図6は、本発明の実施形態によってメモリシステム110のパワーサイクルを示すフローチャートである。
【0101】
図6のステップS101~ステップS111は、
図5B~
図5Eを参照して説明されたステップS101~ステップS111に対応することができる。
【0102】
メモリシステム110がパワーアップされれば、ステップS601においてプロセッサ134は、サドンパワーオフ発生可否を感知できる。
【0103】
サドンパワーオフが発生したことが感知されれば、ステップS603においてプロセッサ134は、メタブロックMT_BKを探索してメタブロックMT_BKに有効なログデータが格納されたか判断することができる。
【0104】
メタブロックMT_BKに有効なログデータが格納されなかった場合(ステップS603において、「NO」)、プロセッサ134は、サドンパワーオフ復旧動作をステップS101から行うことができる。
【0105】
第1例として、直前パワーサイクルにサドンパワーオフ復旧動作が行われなかったら、プロセッサ134はステップS101を行うことができる。第2例として、直前パワーサイクルでステップS101~ステップS105を行う途中にサドンパワーオフが発生した場合にも、プロセッサ134は、サドンパワーオフ復旧動作をステップS101から行うことができる。
【0106】
S101において、プロセッサ134は、フリーブロックの中で臨時ブロックTMP_BKを選択し、臨時ブロックTMP_BKをイレイスするようにメモリ装置150を制御できる。
【0107】
例えば、以前パワーサイクルでオープンブロックOP_BKのデータが以前の臨時ブロックに複写され、メタブロックMT_BKにログデータが記録される前にサドンパワーオフが発生しうる。以前の臨時ブロックに格納されたデータは、現在パワーサイクルでメタブロックMT_BKを参照してアクセスされることができない。したがって、以前の臨時ブロックは、現在パワーサイクルでは、無効データのみを格納するフリーブロックと判断されることができる。プロセッサ134は、以前の臨時ブロックを含むフリーブロックの中で現在臨時ブロックTMP_BKを選択し、臨時ブロックTMP_BKをイレイスするようにメモリ装置150を制御できる。
【0108】
S103において、プロセッサ134は、オープンブロックOP_BKのデータを臨時ブロックTMP_BKに複写することができる。
【0109】
以前パワーサイクルでオープンブロックOP_BKのデータが以前の臨時ブロックに複写された後にも、オープンブロック識別情報及び前記データのマップデータは維持されることができる。プロセッサ134は、前記オープンブロック識別情報に基づいて以前のオープンブロックを依然としてオープンブロックOP_BKとして識別することができる。プロセッサ134は、前記マップデータに基づいてオープンブロックOP_BKのデータにアクセスすることができる。
【0110】
ステップS105において、プロセッサ134は、オープンブロックOP_BKのデータが臨時ブロックTMP_BKに複写されたということを表すログデータをメタブロックMT_BKに格納することができる。
【0111】
ステップS107において、プロセッサ134は、オープンブロックOP_BKをイレイスするようにメモリ装置150を制御できる。
【0112】
ステップS109において、プロセッサ134は、臨時ブロックTMP_BKのデータをイレイスされたオープンブロックOP_BKに複写することができる。
【0113】
ステップS111において、プロセッサ134は、前記ログデータを無効化することにより、臨時ブロックTMP_BKに格納された臨時データを無効化することができる。
【0114】
一方、メタブロックMT_BKに有効なログデータが格納された場合(ステップS603において、「YES」)、プロセッサ134は、サドンパワーオフ復旧動作をステップS107から行うことができる。
【0115】
例えば、以前パワーサイクルで臨時ブロックTMP_BKのデータをイレイスされたオープンブロックOP_BKに複写する途中にサドンパワーオフが発生しうる。プロセッサ134は、現在パワーサイクルでメタブロックMT_BKに格納されたオープンブロック識別情報及びログデータを参照して、以前のオープンブロックOP_BKと以前の臨時ブロックTMP_BKとを識別できる。プロセッサ134は、現在パワーサイクルでオープンブロックOP_BKを再度イレイスし、臨時ブロックTMP_BKの臨時データをオープンブロックOP_BKに複写し、臨時データを無効化することができる。
【0116】
ステップS111までのサドンパワーオフ復旧動作が完了すれば、ステップS605においてメモリシステム110は正常動作を行うことができる。
【0117】
例えば、プロセッサ134は、メタブロックMT_BKのマップデータを参照してオープンブロックOP_BKにアクセスすることができ、オープンブロックOP_BKのイレイスページに新しいデータを逐次格納することができる。
【0118】
本発明の実施形態によれば、メモリシステム110がサドンパワーオフ復旧動作を繰り返し実行してもパワーサイクル毎に新しいオープンブロックを生成する動作が防止されるので、フリーブロックが早期に消尽されることも防止することができる。フリーブロックが早期に消尽されなければ、メモリブロックの寿命が尽きるまでメモリシステム110を正常に使用することができる。したがって、メモリシステム110の寿命が向上しうる。
【0119】
そして、メモリシステム110は、メモリ装置150に有効なログデータが格納された場合、前記サドンパワーオフ復旧動作を始めから始める代わりに、オープンブロックOP_BKをイレイスする動作から始めることができる。したがって、サドンパワーオフ復旧動作が繰り返される場合、メモリシステム110のサドンパワーオフ復旧にかかる時間が短縮され得る。
【0120】
さらに、メモリシステム110は、サドンパワーオフ復旧動作が行われる間、オープンブロックOP_BKのマップデータを維持することにより、マップデータの過度な修正及びロールバック(rollback)なしにサドンパワーオフ復旧動作を完了できる。サドンパワーオフ復旧動作が完了すれば、メモリシステム110は、既存のオープンブロックOP_BKにアクセスすることができる。したがって、メモリシステム110の性能が向上しうる。
【0121】
以上、本発明の実施形態に係るメモリシステム及びメモリシステムの動作方法を具体的な実施形態として説明したが、これは例示に過ぎず、本発明は、これに限定されないものであり、本明細書に開示された基礎思想に広範な範囲を有することと解釈されなければならない。当業者は、開示された実施形態等を組み合わせ、置換して、適示されていない実施形態を実施できるが、これも本発明の権利範囲を逸脱しないものである。その他にも、当業者は、本明細書に基づいて開示された実施形態を容易に変更または変形することができ、このような変更または変形も本発明の権利範囲に属することは明らかである。