[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4688584B2 - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
JP4688584B2
JP4688584B2 JP2005180378A JP2005180378A JP4688584B2 JP 4688584 B2 JP4688584 B2 JP 4688584B2 JP 2005180378 A JP2005180378 A JP 2005180378A JP 2005180378 A JP2005180378 A JP 2005180378A JP 4688584 B2 JP4688584 B2 JP 4688584B2
Authority
JP
Japan
Prior art keywords
block
data
write
area
once
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.)
Active
Application number
JP2005180378A
Other languages
English (en)
Other versions
JP2007004234A (ja
Inventor
勝也 田中
学 石田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005180378A priority Critical patent/JP4688584B2/ja
Priority to US11/228,345 priority patent/US7613871B2/en
Priority to EP06251099A priority patent/EP1739565A1/en
Publication of JP2007004234A publication Critical patent/JP2007004234A/ja
Application granted granted Critical
Publication of JP4688584B2 publication Critical patent/JP4688584B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データを記憶するストレージ装置に関し、特に、ブロックごとにデータを消去する不揮発性半導体メモリを記憶媒体とする技術に関する。
近年、データを長期的かつ安全に記憶するストレージ装置が必要とされている。例えば、金融機関及び医療機関などの文書データは、消去及び書き換えが不可能な追記型(ライトワンス型)の記憶装置での記憶が法律によって義務づけられている。
ストレージ装置は、一般的に、ランダムアクセス可能な不揮発性記憶媒体を備える。ランダムアクセス可能な不揮発性記憶媒体は、例えば、磁気ディスク又は光ディスク等である。また、現在主流ストレージ装置は、小型ディスクドライブを多数備える。
また、半導体技術の進歩に伴って、一括消去可能な不揮発性半導体メモリが開発されている。一括消去可能な不揮発性半導体メモリは、例えば、フラッシュメモリである。フラッシュメモリを記憶媒体とするストレージ装置は、小型ディスクドライブを多数備えるストレージ装置に比べ、寿命、省電力及びアクセス時間等に優れている。
ここで、フラッシュメモリについて説明する。フラッシュメモリは、特性上、データを直接書き換えることができない。つまり、フラッシュメモリは、記憶しているデータを書き換える場合、記憶している有効なデータを退避させる。次に、記憶しているデータをブロック単位で消去する。そして、データを消去したブロックにデータを書き込む。なお、ブロックは、データを一括消去する単位の記憶領域である。
具体的には、フラッシュメモリは、「1」を「0」に書き換えることはできる。しかし、「0」を「1」に書き換えることができない。そこで、フラッシュメモリは、データの書き換え時に、ブロックの全体を消去する。
フラッシュメモリは、データを読み出す時間に比べて、データを書き込む時間及びデータを消去する時間が長い。そのため、フラッシュメモリは、データを書き換える場合、データの書き込み及びデータの消去を伴うので、動作が絶望的に遅くなる。
この問題点を解決する記憶システムが知られている(例えば、特許文献1参照。)。この従来技術の記憶システムは、ホストCPUと外部記憶装置のアドレス関係に柔軟性を与え、ホストCPUのコマンドの持つ論理アドレスによって半導体メモリの物理アドレスが一方的に決定されることのないようなアドレス制御方式を導入した。
特開平5−27924号公報
この従来技術の記憶システムは、リクラメーション処理又はウエアレベリング処理を行うと、ブロック間をデータが移動してしまう。よって、当該記憶システムは、データの移動中に誤動作又は停電等の障害が発生すると、データを消失する可能性がある。
また、従来技術の記憶システムは、データを消去する際に、当該データを記憶している物理ブロックに無効フラグを立てるだけである。つまり、消去されたデータが、実際には記憶システムから消去されずに残っているので、読み出される可能性がある。そのため、当該記憶システムは、情報漏洩防止の観点から安全とは言えない。
また、従来技術の記憶システムは、追記型領域と書換型領域の領域割り当てを考慮していない。そのため、当該記憶システムは、追記型領域の容量が不足すると、追記型領域での記憶が義務付けられているデータを記憶できなくなる。
更に、従来技術の記憶システムは、データの保持期限を考慮しない。よって、当該記憶システムは、保持期限を過ぎたデータを消去しないので、不要なデータを永久に記憶している。
本発明は、前述した問題点に鑑みてなされたものであり、追記型領域で記憶しているデータの消失を防ぐストレージ装置を提供することを目的とする。
本発明は、データ書換のためにブロックごとにデータを消去する不揮発性メモリを記憶媒体とし、前記不揮発性メモリにデータを入出力する制御部を備えるストレージ装置において、前記不揮発性メモリの記憶領域は、データの書込並びに記憶しているデータの消去及び書換ができる書換型領域と、データの1回書込ができ記憶しているデータの消去及び書換ができない追記型領域と、を含み、前記ブロックは、データの書込単位であるページを複数有し、前記追記型領域は、データが書き込まれていないページを一つ以上含む書き込みが完了していない追記型領域又はすべてのページにデータが書き込まれている書き込みが完了している追記型領域のどちらかであり、前記ブロックの属性は、当該ブロックが書換型領域、書き込みが完了していない追記型領域又は書き込みが完了している追記型領域のいずれに属するかを示し、前記制御部は、前記ブロックの属性に基づいて、前記書換型領域に属するブロックを判定し、前記判定した書換型領域に属するブロックに対してのみ、ウエアレベリング処理及びリクラメーション処理を行うことを特徴とする。
本発明によれば、追記型領域で記憶しているデータの消失を防ぐことができる。
以下、本発明の実施の形態について図面を参照して説明する。
(第1の実施の形態)
図1は、第1の実施の形態のストレージ装置のブロック図である。
ストレージ装置は、ストレージコントローラSC及びフラッシュメモリ・モジュールFM0、FM1、FM2、FM3を備える。
ストレージコントローラSCは、チャネルアダプタCA0、CA1、キャッシュメモリCM0、CM1、ストレージアダプタSA0、SA1及び相互接続網NW0、NW1を備える。
なお、チャネルアダプタCA0、CA1、キャッシュメモリCM0、CM1及びストレージアダプタSA0、SA1は、二つずつを図示しているが、いくつ備えられていてもよい。
相互接続網NW0及びNW1は、例えば、スイッチ等であり、ストレージコントローラSCを構成する装置を相互に接続する。具体的には、相互接続網NW0及びNW1は、チャネルアダプタCA0、キャッシュメモリCM0及びストレージアダプタSA0を相互に接続する。同様に、相互接続網NW0、NW1は、チャネルアダプタCA1、キャッシュメモリCM1及びストレージアダプタSA1を相互に接続する。
チャネルアダプタCA0は、図2で後述するが、チャネルC00、C01、C02、C03を介して、外部の上位装置(図示省略)に接続されている。同様に、チャネルアダプタCA1は、チャネルC10、C11、C12、C13を介して、外部の上位装置(図示省略)に接続されている。なお、上位装置は、本実施の形態のストレージ装置にデータを読み書きする計算機である。
キャッシュメモリCM0は、チャネルアダプタCA0及びストレージアダプタSA0から受信したデータを一時的に記憶する。同様に、キャッシュメモリCM1は、チャネルアダプタCA1及びストレージアダプタSA1から受信したデータを一時的に記憶する。
ストレージアダプタSA0は、図3で後述するが、フラッシュメモリ・モジュールFM0等に接続されている。具体的には、ストレージアダプタSA0は、チャネルD00を介して、フラッシュメモリ・モジュールFM0に接続されている。また、ストレージアダプタSA0は、チャネルD01を介して、フラッシュメモリ・モジュールFM1に接続されている。また、ストレージアダプタSA0は、チャネルD02を介して、フラッシュメモリ・モジュールFM2に接続されている。また、ストレージアダプタSA0は、チャネルD03を介して、フラッシュメモリ・モジュールFM3に接続されている。
同様に、ストレージアダプタSA1は、フラッシュメモリ・モジュールFM0等に接続されている。具体的には、ストレージアダプタSA1は、チャネルD10を介して、フラッシュメモリ・モジュールFM0に接続されている。また、ストレージアダプタSA1は、チャネルD11を介して、フラッシュメモリ・モジュールFM1に接続されている。また、ストレージアダプタSA1は、チャネルD12を介して、フラッシュメモリ・モジュールFM2に接続されている。また、ストレージアダプタSA1は、チャネルD13を介して、フラッシュメモリ・モジュールFM3に接続されている。
チャネルアダプタCA0、CA1及びストレージアダプタSA0、SA1は、保守端末SVPに接続されている。保守端末SVPは、ストレージ装置の管理者から入力された設定情報を、チャネルアダプタCA0、CA1及び/又はストレージアダプタSA0、SA1に送信する。
フラッシュメモリ・モジュールFM0は、図4で後述するが、メモリコントローラMC0及びフラッシュメモリMEM0を備える。同様に、フラッシュメモリ・モジュールFM1は、メモリコントローラMC1及びフラッシュメモリMEM1を備える。また、フラッシュメモリ・モジュールFM2は、メモリコントローラMC2及びフラッシュメモリMEM2を備える。また、フラッシュメモリ・モジュールFM3は、メモリコントローラMC3及びフラッシュメモリMEM3を備える。
フラッシュメモリMEM0、MEM1、MEM2、MEM3は、データを記憶する。メモリコントローラMC0、MC1、MC2、MC3は、フラッシュメモリMEM0、MEM1、MEM2、MEM3に対して、データを読み書きする。
なお、ストレージ装置は、ストレージアダプタSA0及びチャネルアダプタCA0に代わって、一つのアダプタを備えていても良い。この場合、当該アダプタが、ストレージアダプタSA0及びチャネルアダプタCA0の処理を行う。
図2は、第1の実施の形態のチャネルアダプタCA0のブロック図である。
チャネルアダプタCA0は、ホストチャネル・インターフェイス21、キャッシュメモリ・インターフェイス22、ネットワーク・インターフェイス23、プロセッサ24、ローカルメモリ25及びプロセッサ周辺制御部26を備える。
ホストチャネル・インタフェース21は、チャネルC00、C01、C02、C03を介して、外部の上位装置(図示省略)と接続するインタフェースである。また、ホストチャネル・インターフェイス21は、チャネルC00、C01、C02、C03上のデータ転送プロトコルと、ストレージコントローラSCの内部のデータ転送プロトコルとを相互に変換する。
キャッシュメモリ・インターフェイス22は、相互結合網NW0、NW1と接続するインタフェースである。ネットワーク・インタフェース23は、保守端末SVPと接続するインタフェースである。
なお、ホストチャネル・インターフェイス21とキャッシュメモリ・インターフェイス22とは、信号線27によって接続されている。
プロセッサ24は、ローカルメモリ25に記憶されているプログラムを実行することによって、各種処理を行う。具体的には、プロセッサ24は、上位装置と相互結合網NW0、NW1との間のデータ転送を制御する。
ローカルメモリ25は、プロセッサ24によって実行されるプログラムを記憶する。また、ローカルメモリ25は、プロセッサ24によって参照されるテーブルを記憶する。なお、当該テーブルは、管理者によって設定又は変更される。
この場合、管理者は、テーブルの設定又はテーブルの変更に関する情報を、保守端末SVPに入力する。保守端末SVPは、入力された情報をネットワーク・インタフェース23を介して、プロセッサ24に送信する。プロセッサ24は、受信した情報に基づいて、テーブルを作成又は変更する。そして、プロセッサ24は、当該テーブルを、ローカルメモリ25に格納する。
プロセッサ周辺制御部26は、ホストチャネル・インターフェイス21、キャッシュメモリ・インターフェイス22、ネットワーク・インターフェイス23、プロセッサ24及びローカルメモリ25間のデータの送受信を制御する。プロセッサ周辺制御部26は、例えば、チップセット等である。
なお、チャネルアダプタCA1も、チャネルアダプタCA0と同一の構成である。よって、説明を省略する。
図3は、第1の実施の形態のストレージアダプタSA0のブロック図である。
ストレージアダプタSA0は、キャッシュメモリ・インターフェイス31、ストレージチャネル・インターフェイス32、ネットワーク・インターフェイス33、プロセッサ34、ローカルメモリ35及びプロセッサ周辺制御部36を備える。
キャッシュメモリ・インターフェイス31は、相互結合網NW0、NW1と接続するインタフェースである。
ストレージチャネル・インターフェイス32は、チャネルD00、D01、D02、D03と接続するインタフェースである。また、ストレージチャネル・インターフェイス32は、チャネルD00、D01、D02、D03上のデータ転送プロトコルと、ストレージコントローラSCの内部のデータ転送プロトコルとを相互に変換する。
なお、キャッシュメモリ・インターフェイス31とストレージチャネル・インターフェイス32とは、信号線37によって接続されている。
ネットワーク・インターフェイス33は、保守端末SVPと接続するインタフェースである。
プロセッサ34は、ローカルメモリ35に記憶されているプログラムを実行することによって、各種処理を行う。
ローカルメモリ35は、プロセッサ34によって実行されるプログラムを記憶する。また、ローカルメモリ35は、プロセッサ34によって参照されるテーブルを記憶する。なお、当該テーブルは、管理者によって設定又は変更される。
この場合、管理者は、テーブルの設定又はテーブルの変更に関する情報を、保守端末SVPに入力する。保守端末SVPは、入力された情報をネットワーク・インタフェース33を介して、プロセッサ34に送信する。プロセッサ34は、受信した情報に基づいて、テーブルを作成又は変更する。そして、プロセッサ34は、当該テーブルを、ローカルメモリ35に格納する。
プロセッサ周辺制御部36は、キャッシュメモリ・インターフェイス31、ストレージチャネル・インターフェイス32、ネットワーク・インターフェイス33、プロセッサ34及びローカルメモリ35間のデータの送受信を制御する。プロセッサ周辺制御部26は、例えば、チップセット等である。
なお、ストレージアダプタSA1も、ストレージアダプタSA0と同一の構成である。よって、説明を省略する。
図4は、第1の実施の形態のフラッシュメモリ・モジュールFM0のブロック図である。
フラッシュメモリ・モジュールFM0は、メモリコントローラMC0及びフラッシュメモリMEM0を備える。
メモリコントローラMC0は、プロセッサ401、インターフェイス部402、データ転送部403及びメモリ404を備える。
フラッシュメモリMEM0は、複数のフラッシュメモリ・チップ405を備える。フラッシュメモリ・チップ405は、複数のブロック406を含み、データを記憶する。ブロック406は、図5で後述するが、メモリコントローラMC0がデータを消去する単位である。
なお、ブロック406は、有効ブロック又は無効ブロックのいずれかに分類される。有効ブロックは、データを記憶可能なブロックである。また、無効ブロックは、当該ブロックの記憶素子が壊れている等の理由によって、物理的に使用できないブロックである。つまり、フラッシュメモリモジュールFM0は、有効ブロックにだけデータを記憶し、無効ブロックにはデータを記憶しない。
更に、有効ブロックは、未使用ブロック、追記型ブロック又は書換型ブロックに分類される。未使用ブロックは、追記型ブロックにも書換型ブロックにも割り当てられずに、データを記憶していないブロックである。追記型ブロック(ライトワンスブロック)は、データの消去及びデータの書き換えができないブロックである。書換型ブロックは、データの消去及びデータの書き換えが可能なブロックである。
ブロック406は、複数のページを含む。ページは、図5で後述するが、メモリコントローラMC0がデータを書き込む単位である。
なお、ページは、有効ページ、無効ページ、未使用ページ又は不良ページのいずれかに分類される。有効ページは、有効なデータを記憶しているページである。無効ページは、無効なデータを記憶しているページである。未使用ページは、データを記憶していないページである。不良ページは、当該ページの記憶素子が壊れている等の理由によって、物理的に使用できないページである。
インターフェイス部402は、チャネルD00を介して、ストレージコントローラSC内のストレージアダプタSA0に接続されている。また、インターフェイス部402は、チャネルD10を介して、ストレージコントローラSC内のストレージアダプタSA1に接続されている。
インターフェイス部402は、ストレージアダプタSA0、SA1からの命令を実行する。ストレージアダプタSA0、SA1からの命令は、例えば、SCSIコマンドである。
具体的には、インタフェース部402は、ストレージアダプタSA0、SA1からデータを受信する。そして、インタフェース部402は、受信したデータをメモリ404に格納する。また、インタフェース部402は、メモリ404に格納されているデータを、ストレージアダプタSA0、SA1へ送信する。
メモリ404は、例えば、ダイナミック型ランダムアクセスメモリであり、高速に読み書きできる。メモリ404は、インタフェース部402が送受信するデータを一時的に記憶する。また、メモリ404は、プロセッサ401によって実行されるプログラムを記憶する。また、メモリ404は、プロセッサ401によって参照されるテーブルを記憶する。当該テーブルは、例えば、フラッシュメモリMEM0の論理アドレスと物理アドレスとの変換テーブルである。
データ転送部403は、例えば、スイッチであり、プロセッサ401、インターフェイス部402、メモリ404及びフラッシュメモリMEM0を相互に接続し。それらの間のデータ転送を制御する。
プロセッサ401は、メモリ404に記憶されているプログラムを実行することによって、各種処理を行う。例えば、プロセッサ401は、メモリ404に記憶されているフラッシュメモリの論理アドレスとフラッシュメモリの物理アドレスとの変換テーブルを参照して、フラッシュメモリMEM0にデータを読み書きする。また、プロセッサ401は、リクラメーション処理(ブロック再生処理)及びウエアレベリング処理(消去回数均等化処理)を行う。
リクラメーション処理は、ブロック406内の無効ページを未使用ページに再生する処理である。具体的には、プロセッサ401は、リクラメーション処理の対象となるブロック(対象ブロック)406内の有効ページに記憶されているデータを、未使用ブロックへ複写する。そして、プロセッサ401は、データを複写した未使用ブロックの論理ブロック番号を、対象ブロックの論理ブロック番号に変更する。そして、対象ブロックのデータをすべて消去し、リクラメーション処理を完了する。
例えば、プロセッサ401がブロック406にデータを書き込むと、ブロック406内の未使用ページが少なくなる。そして、ブロック406内の未使用ページが足りなくなると、プロセッサ401は、当該ブロック406へデータを書き込めなくなる。そこで、プロセッサ401は、当該ブロック406をリクラメーションすることによって、無効ページを未使用ページに再生する。
また、ウェアレベリング処理は、それぞれのブロック406のデータ消去回数を均等化する処理である。これによって、フラッシュメモリMEM0の寿命を長くできる。なぜなら、フラッシュメモリMEM0は、データの消去回数が多くなると、寿命になるからである。フラッシュメモリMEM0は、一般的に、約十万回のデータの消去が保証されている。
なお、フラッシュメモリ・モジュールFM1、FM2及びFM3も、フラッシュメモリ・モジュールFM0と同一の構成である。よって、説明を省略する。
図5は、第1の実施の形態のフラッシュメモリ・モジュールFM0のブロック406の説明図である。
ブロック406は、複数のページ501を含む。ブロック406は、一般的に、数十程度のページ501(例えば、32ページ、64ページ等)を含む。
ページ501は、メモリコントローラMC0等がデータを書き込む単位である。例えば、NAND型フラッシュメモリでは、メモリコントローラMC0等は、20〜30μs弱/ページの速度でデータを読み出し、0.2〜0.3ms/ページの速度でデータを書き込む。また、メモリコントローラMC0等は、2〜4ms/ブロックの速度でデータを消去する。
ページ501は、データ部502及び冗長部503を含む。ページ501は、例えば、512バイトのデータ部502及び16バイトの冗長部503を含む。
データ部502は、通常のデータを記憶する。
冗長部503は、当該ページ501の管理情報及びエラー訂正情報を記憶する。
管理情報は、オフセットアドレス及びページステータスを含む。なお、オフセットアドレスは、当該ページ501が属するブロック406内における相対的なアドレスである。また、ページステータスは、当該ページ501が有効ページ、無効ページ、未使用ページ又は処理中のページのいずれであるかを示す。
エラー訂正情報は、当該ページ501のエラーを検出及び訂正するための情報であり、例えば、ハミングコードである。
また、ブロック406は、ブロック管理情報520を所定の領域に有する。所定の領域は、例えば、当該ブロック406のアドレス空間の先頭から予め定められた長さの領域とする。ブロック管理情報520は、論理ブロック番号領域510、有効フラグ領域511、消去回数領域512及び書込制御情報領域513を含む。
論理ブロック番号領域510は、当該ブロック406の論理ブロック番号を記憶する。論理ブロック番号は、ストレージコントローラSCが当該ブロック406を一意に識別する識別子である。
なお、メモリコントローラMC0等は、リクラメーション処理又はウエアレベリング処理においてデータを移動すると、移動元のブロック406の論理ブロック番号領域510に格納されている値を、移動先のブロック406の論理ブロック番号領域510へ格納する。
有効フラグ領域511は、当該ブロック406が有効ブロック又は無効ブロックのいずれであるかを記憶する。メモリーコントローラMC0等は、不良ページを見つけると、当該不良ページを含むブロック406の有効フラグ領域511に無効ブロックを示すフラグを格納する。
消去回数領域512は、当該ブロック406のデータ消去回数を記憶する。メモリコントローラMC0等は、ブロック406に記憶されているデータを消去すると、当該ブロックの消去回数領域512に格納されている値を増加させる。
書込制御情報領域513は、当該ブロック406の書込制御情報を記憶する。書込制御情報は、当該ブロック406の属性である。
本実施の形態では、書込制御情報は、2ビットの情報とする。具体的には、ブロック406が書換型ブロックであれば、メモリーコントローラMC0等は、当該ブロック406の書込制御情報領域513に「11」を格納する。
また、ブロック406が書込未完了の追記型ブロックであれば、メモリーコントローラMC0等は、当該ブロック406の書込制御情報領域513に「10」を格納する。なお、書込未完了の追記型ブロックは、未使用ページを一つでも含む追記型ブロックであり、データが書き込まれていても良い。
また、ブロック406が書込完了の追記型ブロックであれば、メモリーコントローラMC0等は、当該ブロック406の書込制御情報領域513に「00」を格納する。書込完了の追記型ブロックは、未使用ページを含まない追記型ブロックであり、当該ブロック406に含まれるすべてのページにデータが格納されている。
なお、本実施の形態では、メモリコントローラMC0等は、書込制御情報を「10」から「11」へ変更できない。同様に、書込制御情報を「00」から「11」へ変更できない。つまり、メモリコントローラMC0等は、追記型ブロックを書換型ブロックへ変更できないので、追記型ブロックに格納されているデータを消去できない。よって、本実施の形態のストレージ装置は、法律でWORM(Write Once Read Many)で記憶を義務づけられている文書を記憶することもできる。
図6は、第1の実施の形態のフラッシュメモリ・モジュールFM0のメモリ404に記憶されているページ管理テーブル600の構成図である。
ページ管理テーブル600は、物理アドレス601、論理アドレス602及びステータス603を含む。
物理アドレス601は、フラッシュメモリ・モジュールFM0内のページ501の物理アドレスである。なお、物理アドレス601は、メモリコントローラMC0等がフラッシュメモリ・モジュールFM0内のページ501にアクセスする際に使用するアドレスである。また、物理アドレス601は、フラッシュメモリ・チップ405の仕様及びフラッシュメモリ・モジュールFM0等の構成等によって決まる。
論理アドレス602は、当該ページ501の論理アドレスである。なお、論理アドレス602は、ストレージコントローラSCがフラッシュメモリ・モジュールFM0内のページ501にアクセスする際に使用するアドレスである。また、論理アドレス602は、当該ページが属するブロックの論理ブロック番号及び当該ページのオフセットアドレスによって決まる。
ステータス603は、当該ページ501が有効ページ、無効ページ、未使用ページ又は処理中のページのいずれであるかを示す。
なお、ページ管理テーブル600は、ページ501の冗長部503に格納されている情報と同期される。
図7は、第1の実施の形態のフラッシュメモリ・モジュールFM0のメモリ404に記憶されているブロック管理テーブル700の構成図である。
ブロック管理テーブル700は、物理ブロック番号705、論理ブロック番号701、書込制御情報702、未使用ページ数703及び消去回数704を含む。
物理ブロック番号705は、メモリコントローラMC0等がブロック406を一意に識別する識別子である。
論理ブロック番号701は、ストレージコントローラSCがブロック406を一意に識別する識別子である。つまり、論理ブロック番号701は、当該ブロック406の論理ブロック番号領域510に格納されている値と同じ値になる。但し、当該ブロック406が未使用ブロックであると、論理ブロック番号701は「−」となる。
書込制御情報702は、当該ブロック406の属性である。具体的には、ブロック406が書換型ブロックであれば、当該ブロック406の書込制御情報702は「11」となる。また、ブロック406が書込未完了の追記型ブロックであれば、当該ブロック406の書込制御情報702は「10」となる。また、ブロック406が書込完了の追記型ブロックであれば、当該ブロック406の書込制御情報702は「00」となる。また、ブロック406が未使用ブロックであれば、当該ブロック406の書込制御情報702は「−」となる。
つまり、書込制御情報702は、当該ブロック406の書込制御情報領域513に格納されている値と同じ値になる。
消去回数704は、当該ブロック406のデータ消去回数である。なお、消去回数704は、当該ブロック406の消去回数領域512に格納されている値と同じ値になる。
未使用ページ数703は、当該ブロック406に含まれる未使用ページの数である。
図8は、第1の実施の形態のフラッシュメモリ・モジュールFM0のメモリ404に記憶されている領域属性管理テーブル800の構成図である。
領域属性管理テーブル800は、開始論理アドレス801、領域サイズ802及び書込制御情報803を含む。
開始論理アドレス801は、フラッシュメモリ・モジュールFM0等の記憶領域の論理アドレスの先頭の値である。
領域サイズ802は、当該記憶領域の記憶容量である。なお、本実施の形態では、領域サイズ802は、フラッシュメモリ・モジュールFM0等のブロック406の記憶容量の倍数となる。なぜなら、記憶領域の属性は、ブロック単位で設定されるからである。
書込制御情報803は、当該記憶領域の属性である。具体的には、書込制御情報803は、書換型の領域又は追記型の領域のいずれであるかを示す。
ストレージコントローラSCは、フラッシュメモリ・モジュールFM0等の記憶領域の割り当てに関する情報を保守端末SVPから受信する。次に、受信した割り当てに関する情報に応じて、記憶領域の開始論理アドレス、領域サイズ及び書込制御情報を求める。そして、当該求めた情報をメモリコントローラMC0等に送信する。
すると、メモリコントローラMC0等は、受信した情報に基づいて、領域属性管理テーブル800を作成する。具体的には、受信した開始論理アドレスを、領域属性管理テーブル800の開始論理アドレス801に格納する。次に、受信した領域サイズを、領域属性管理テーブル800の領域サイズ802に格納する。次に、受信した書込制御情報を、領域属性管理テーブル800の書込制御情報803に格納する。
次に、作成した領域属性管理テーブル800に基づいて、フラッシュメモリ・モジュールFM0等のブロック406の属性を決定する。そして、作成した領域属性管理テーブル800及び決定したブロック406の属性に基づいて、ページ管理テーブル600(図6)及びブロック管理テーブル700(図7)を作成する。
また、ストレージコントローラSCは、フラッシュメモリ・モジュールFM0等が新たに接続されると、SCSIのInquiryコマンドを当該フラッシュメモリ・モジュールFM0等に送信する。
すると、フラッシュメモリ・モジュールFM0等は、領域属性管理テーブル800の内容を含む応答をストレージコントローラSCへ送信する。
これによって、ストレージコントローラSCは、新たに接続されたフラッシュメモリ・モジュールFM0等の属性を取得できる。つまり、ストレージコントローラSCは、新たに接続されたフラッシュメモリ・モジュールFM0等が追記型又は書換型のいずれであるかを知ることができる。
図9は、第1の実施の形態のメモリコントローラMC0等の書込コマンド実行処理のフローチャートである。
まず、メモリコントローラMC0等は、ストレージコントローラSCから書込コマンドを受信する(901)。なお、書込コマンドは、書込データ及び当該データを書き込むページ(書込先ページ)の論理アドレスを含む。
メモリコントローラMC0等は、書込コマンドを受信すると、当該書込コマンドから、論理アドレスを抽出する。次に、抽出した論理アドレスとページ管理テーブル600の論理アドレス602が一致するレコードを、ページ管理テーブル600から選択する。次に、選択したレコードから、物理アドレス601を抽出する。
次に、抽出した物理アドレス601とフラッシュメモリ・モジュールFM0等の構成に基づいて、当該物理アドレス601に対応するページを含むブロックの物理ブロック番号を求める。これによって、書込先ブロックの物理ブロック番号を求める(902)。
次に、求めた物理ブロック番号とブロック管理テーブル700の物理ブロック番号705とが一致するレコードを、ブロック管理テーブル700から選択する。次に、選択したレコードから、書込制御情報702を抽出する。
そして、抽出した書込制御情報702が「11」であるか否かを判定する(903)。
書込制御情報702が「11」であると、書込先ブロック406が書換型ブロックであると判定する。よって、当該ブロックに書込処理を実行し(904)、本処理を終了する。なお、書込処理は、図10で後述する。
一方、書込制御情報702が「11」でないと、書込先ブロック406が追記型ブロックであると判定する。そして、抽出した書込制御情報702が「10」であるか否かを判定する(905)。
書込制御情報702が「10」でないと、書込先ブロックが書込完了の追記型ブロックであると判定する。よって、当該ブロックにデータを書き込むことができないので、書込エラーをストレージコントローラSCへ通知する(910)。
具体的には、メモリコントローラMC0等は、「SCSI Status=02h:Check Condition」を自身に設定する。そして、エラーメッセージの「Sense Key=07,additional sense code 27h,additional sense code qualifier=00:Write Protected」をストレージコントローラSCへ通知する。
そして、本処理を終了する。
一方、書込制御情報702が「10」であると、データを書き込むブロックが書込未完了の追記型ブロックであると判定する。そこで、書込先ページが未使用ページであるか否かを判定する(906)。
書込先ページが未使用ページでないと、当該ページにデータを書き込むことができないので、書込エラーをストレージコントローラSCへ通知する(910)。そして、本処理を終了する。
一方、書込先ページが未使用ページであると、当該ページにデータを書き込む(907)。
次に、ステップ902で求めた物理ブロック番号とブロック管理テーブル700の物理ブロック番号705とが一致するレコードを選択する。次に、選択したレコードの未使用ページ数から、データを書き込んだページ数を減算する。
そして、減算した値が「0」であるか否かを判定する。これによって、書込処理後に、当該ブロックに含まれる未使用ページ数が「0」になったかを判定する(908)。
未使用ページ数が「0」にならないと、当該ブロックの属性を変更する必要がないので、そのまま本処理を終了する。
一方、未使用ページ数が「0」になると、当該ブロックが書込完了になったと判定する。よって、当該ブロックの書込制御情報領域513に格納されている値を「00」に変更する。更に、ステップ908で選択したレコードの書込制御情報702を「00」に変更する(909)。そして、本処理を終了する。
図10は、第1の実施の形態のメモリコントローラMC0等の書込処理のフローチャートである。
フラッシュメモリMEM0等内のそれぞれのブロック406は、所定の領域にアドレスマッピング情報1507を備える。アドレスマッピング情報1507は、論理アドレスと物理アドレスとの対応を示す。
以下、メモリコントローラMC0等の書込処理を説明する。
まず、メモリコントローラMC0等は、書込先ページが未使用ページであるか否かを判定する。
書込先ページが未使用ページであると、当該ページにデータを書き込む。そして、書込処理を終了する。
一方、書込先ページが未使用ページでないと、当該ページにデータを書き込むことができない。ここでは、書込先ページが有効ページ1505である場合で説明する。
この場合、当該有効ページ1505に格納されているデータを読み出し、メモリ404に格納する(1510)。ただし、当該有効ページ1505の全体を書き換える場合には、データを読み出す必要はない。
次に、メモリ404に格納されているデータに書込データを上書きする。次に、メモリ404内で上書きしたデータを、当該ブロック406に含まれる未使用ページ1506へ書き込む(1511)。
次に、当該ブロック406のアドレスマッピング情報1507及びページ管理テーブル600(図6)を変更する。具体的には、データを書き込んだ未使用ページ1506の論理アドレスが、データを読み出した有効ページ1505の論理アドレスの値になるように、マッピング情報1507を及びページ管理テーブル600を変更する。更に、データを読み出した有効ページ1505の論理アドレスを、マッピング情報1507及びページ管理テーブル600から削除する。
次に、データを読み出した有効ページ1505の冗長部に格納されているページステータスの「有効ページ」を「無効ページ」に変更する。また、未使用ページ1506の冗長部に格納されているページステータスの「未使用ページ」を「有効ページ」に変更する。
以上のように、メモリコントローラMCは、論理アドレスと物理アドレスとの対応関係を変更することによって、フラッシュメモリMEM0等にデータを書き込む。これによって、フラッシュメモリMEM0等のデータ消去回数を減らすことができるので、フラッシュメモリMEM0等にデータを高速に書き込むことができる。
図11は、第1の実施の形態のメモリコントローラMC0等の属性変更処理のフローチャートである。
まず、メモリコントローラMC0等は、ストレージコントローラSCから追記型ブロックの割り当て要求を受ける。なお、当該追記型ブロックの割り当て要求は、追記型ブロックに割り当てる記憶容量(要求容量)を含む。
メモリコントローラMC0等は、ブロック管理テーブル700から消去回数704をすべて抽出する。次に、抽出した消去回数704を参照して、ウエアレベリング処理を行う(1001)。具体的には、消去回数704の多いブロックのデータを、消去回数704の少ないブロックへ移動させる。なお、メモリコントローラMC0等は、書換型ブロックに対してのみ、ウェアレベリング処理を行う。
次に、ブロック管理テーブル700の書込制御情報702が「−」のレコードを選択することによって、未使用ブロックの数を求める。次に、求めた未使用ブロックの数に単位ブロックの容量を乗じることによって、未使用ブロックの容量を算出する。次に、受け取った割り当て要求から、要求容量を抽出する。
次に、算出した未使用ブロックの容量が、抽出した要求容量以上であるか否かを判定する(1002)。
未使用ブロックの容量が要求容量より小さいと、未使用ブロックが足りないので、追記型ブロックへの割り当てができない。そこで、書換可能ブロックに対してのみ、リクラメーション処理を行う(1003)。これによって、書換型ブロックを未使用ブロックに再生する(1003)。そして、ステップ1002に戻る。
一方、未使用ブロックの容量が要求容量以上であると、当該未使用ブロックの物理ブロック番号と管理テーブル700の物理ブロック番号701とが一致するレコードを選択する。次に、選択したレコードから、消去回数704を抽出する。次に、抽出した消去回数704の多い未使用ブロックから順に選択する。次に、選択した未使用ブロックを追記型ブロックに変更する(1004)。
具体的には、当該未使用ブロックの書込制御情報領域513に「10」を格納する。更に、ブロック管理テーブル700の書込制御情報702に「10」を格納する(1005)。
そして、追記型ブロックの容量が要求容量となるまで、未使用ブロックを追記型ブロックに変更し、本処理を終了する。
なお、属性変更処理は、予め確保されている追記型ブロックの容量が不足した場合に有用である。
以上のように、メモリコントローラMC0等は、消去回数の多いブロックを追記型ブロックとする。消去回数の多いブロックは、データを消去しない追記型ブロックとなるので、消去回数による寿命にならなくなる。
また、メモリコントローラMC0等は、消去回数の多いブロックを追記型ブロックとするので、消去回数の少ないブロックを、データの消去を伴う書換型ブロックとして使用できる。
また、メモリコントローラMC0等は、書換型ブロックに対してのみ、ウェアレベリング処理及びリクラメーション処理を行う。つまり、追記型ブロックに対しては、ウェアレベリング処理及びリクラメーション処理を行わない。よって、追記型ブロックに記憶されているデータは、ブロック間を移動しない。そのため、本発明のストレージ装置は、追記型ブロックに記憶されているデータのブロック間の移動による消失を防ぐことができる。
(第2の実施の形態)
本発明の第2の実施の形態では、書換型ブロックへの書き込み後に、当該ブロックの属性を追記型ブロックへ変更する。
第2の実施の形態のストレージ装置の構成は、第1の実施の形態のストレージ装置(図1)と同一である。よって、説明を省略する。
図12は、第2の実施の形態のメモリコントローラMC0等の書込コマンド実行処理のフローチャートである。
第2の実施の形態の書込コマンド実行処理は、書込処理904の後に、追記型ブロックへ変更するか否かを判定する。それ以外の処理は、第1の実施の形態の書込コマンド実行処理(図9)と同一である。同一の処理は同一の番号を付し、説明を省略する。
メモリコントローラMC0等は、書込処理904を行うと、ステップ901で受け取った書込コマンドに追記型ブロックへの変更要求が含まれているか否かを判定する(911)。
追記型ブロックへの変更要求が含まれていないと、そのまま本処理を終了する。
一方、追記型ブロックへの変更要求が含まれていると、書込処理を行った書換型ブロックを、追記型ブロックへ変更する。具体的には、当該ブロックの書込制御情報領域513に「10」を格納する。更に、ブロック管理テーブル700の書込制御情報702に「10」を格納する。
そして、ステップ908に進む。ステップ908以降の処理は、第1の実施の形態の書込コマンド実行処理と同一なので、説明を省略する。
第2の実施の形態では、メモリコントローラMC0等は、データの書込処理に続いて、ブロックの属性を変更するので、追記型ブロックの範囲を拡大する処理を簡略に行える。
(第3の実施の形態)
本発明の第3の実施の形態では、データの保持期間に応じて、ブロックの属性を変更する。
図13は、第3の実施の形態のフラッシュメモリ・モジュールFM0のブロック406の説明図である。
ブロック406の構成は、ブロック管理情報520を除き、第1の実施の形態のブロック(図5)と同一である。同一の構成は同一の番号を付し、説明を省略する。
ブロック管理情報520は、論理ブロック番号領域510、有効フラグ領域511、消去回数領域512、書込制御情報領域1201及びデータ保持期間情報領域1202を含む。論理ブロック番号領域510、有効フラグ領域511、消去回数領域512は、第1の実施の形態のブロック(図5)の構成と同一であるので、説明を省略する。
書込制御情報領域1201は、当該ブロック406の書込制御情報を記憶する。書込制御情報は、当該ブロック406の属性である。本実施の形態では、書込制御情報は、3ビットの情報とする。
具体的には、ブロック406が書換型ブロックであれば、メモリーコントローラMC0等は、当該ブロック406の書込制御情報領域1201に「111」を格納する。
また、ブロック406が書込未完了の追記型ブロックであれば、メモリーコントローラMC0等は、当該ブロック406の書込制御情報領域1201に「110」を格納する。
また、ブロック406が、データ保持期限の経過後であれば消去可能なデータを記憶し、且つ、書込完了の追記型ブロックであれば、メモリーコントローラMC0等は、当該ブロック406の書込制御情報領域1201に「000」を格納する。
また、ブロック406が、データ保持期限の経過後であっても消去不可能なデータを記憶し、且つ、書込完了の追記型ブロックであれば、メモリーコントローラMC0等は、当該ブロック406の書込制御情報領域1201に「100」を格納する。
データ保持期間情報領域1202は、当該ブロック406のデータ保持期間情報を記憶する。データ保持期間情報は、例えば、データの書込年月日、データの保持期限年月日又はデータの保持期間等である。
図14は、第3の実施の形態のメモリコントローラMC0等の保持期限経過ブロック再生処理のフローチャートである。
まず、メモリコントローラMC0等は、ストレージコントローラSCの時計を参照することによって、時刻情報を取得する。次に、取得した時刻情報をメモリ404に格納する(1301)。これによって、フラッシュメモリ・モジュールFM0等は、時計をそれぞれ備える必要がなくなる。
次に、フラッシュメモリ・モジュールFM0等に含まれるすべてのブロック406のデータ保持期間情報領域1202を走査することによって、データ保持期限が過ぎたブロック406を選択する(1302)。
次に、選択したブロック406の書込制御情報領域1201から、書込制御情報を抽出する。次に、抽出した書込制御情報が「000」であるか否かを判定する(1303)。
書込制御情報が「000」でないと、当該ブロック406がデータ保持期限の経過後であっても消去不可能なデータを記憶していると判定する。よって、そのまま本処理を終了する。
一方、書込制御情報が「000」であると、当該ブロック406がデータ保持期限の経過後であれば消去可能なデータを記憶していると判定する。よって、当該ブロック406に記憶されているデータを消去する。そして、当該ブロック406を未使用ブロックとする(1304)。
具体的には、当該データを消去したブロック406の物理ブロック番号と物理管理テーブル700の物理ブロック番号705とが一致するレコードを、ブロック管理テーブル700から選択する。次に、選択したレコードの論理ブロック番号701に「−」を格納する。次に、選択したレコードの書込制御情報702に「−」を格納する。次に、選択したレコードの未使用ページ数703に、当該ブロックに含まれるすべてのページの数を格納する。次に、選択したレコードの消去回数704を増加させる。
そして、本処理を終了する。
例えば、メモリコントローラMC0等は、ストレージ装置の立ち上げ時に、保持期限経過ブロック再生処理を実行する。また、一日に一回程度、保持期限経過ブロック再生処理を実行しても良い。
本実施の形態では、メモリーコントローラMC0等は、データ保持期限の経過後に、消去可能なデータをブロック406から消去する。これによって、ストレージ装置は、記憶領域を有効に利用できる。
本発明は、様々な情報を記憶するストレージ装置に利用できる。特に、法律によって追記型(ライトワンス)の記憶装置での記憶が義務付けられている文書データを記憶するストレージ装置に利用できる。例えば、金融機関又は医療機関などの文書データを記憶するストレージ装置に利用できる。
第1の実施の形態のストレージ装置のブロック図である。 第1の実施の形態のチャネルアダプタのブロック図である。 第1の実施の形態のストレージアダプタのブロック図である。 第1の実施の形態のフラッシュメモリ・モジュールのブロック図である。 第1の実施の形態のフラッシュメモリ・モジュールのブロックの説明図である。 第1の実施の形態のフラッシュメモリ・モジュールのメモリに記憶されているページ管理テーブルの構成図である。 第1の実施の形態のフラッシュメモリ・モジュールのメモリに記憶されているブロック管理テーブルの構成図である。 第1の実施の形態のフラッシュメモリ・モジュールのメモリに記憶されている領域属性管理テーブルの構成図である。 第1の実施の形態のメモリコントローラの書込コマンド実行処理のフローチャートである。 第1の実施の形態のメモリコントローラの書込処理のフローチャートである。 第1の実施の形態のメモリコントローラの属性変更処理のフローチャートである。 第2の実施の形態のメモリコントローラの書込コマンド実行処理のフローチャートである。 第3の実施の形態のフラッシュメモリ・モジュールのブロックの説明図である。 第3の実施の形態のメモリコントローラの保持期限経過ブロック再生処理のフローチャートである。
符号の説明
SC ストレージコントローラ
CA0、CA1 チャネルアダプタ
CM0、CM1 キャッシュメモリ
SA0、SA1 ストレージアダプタ
FM0、FM1、FM2、FM3 フラッシュメモリ・モジュール
MC0、MC1、MC2、MC3 メモリコントローラ
MEM0、MEM1、MEM2、MEM3 フラッシュメモリ
C00、C01、C02、C03、C10、C11、C12、C13、D00、D01、D02、D03、D10、D11、D12、D13 チャネル
NW0、NW1 相互結合網
SVP 保守端末
21 ホストチャネル・インターフェイス
22 キャッシュメモリ・インタフェース
23 ネットワーク・インタフェース
24 プロセッサ
25 ローカルメモリ
26 プロセッサ周辺制御部
27 信号線
31 キャッシュメモリ・インタフェース
32 ストレージチャネル・インタフェース
33 ネットワーク・インターフェイス
34 プロセッサ
35 ローカルメモリ
36 プロセッサ周辺制御部
37 信号線
401 プロセッサ
402 インターフェイス部
403 データ転送部
404 メモリ
405 フラッシュメモリ・チップ
406 ブロック

Claims (10)

  1. データ書換のためにブロックごとにデータを消去する不揮発性メモリを記憶媒体とし、前記不揮発性メモリにデータを入出力する制御部を備えるストレージ装置において、
    前記不揮発性メモリの記憶領域は、データの書込並びに記憶しているデータ消去及び書換ができる書換型領域と、データの1回書込ができ記憶しているデータ消去及び書換ができない追記型領域とを含み、
    前記ブロックは、データの書込単位であるページを複数有し、
    前記追記型領域は、データが書き込まれていないページを一つ以上含む書き込みが完了していない追記型領域又はすべてのページにデータが書き込まれている書き込みが完了している追記型領域のどちらかであり、
    前記ブロックの属性は、当該ブロックが書換型領域、書き込みが完了していない追記型領域又は書き込みが完了している追記型領域のいずれに属するかを示し、
    前記制御部は、
    前記ブロックの属性に基づいて、前記書換型領域に属するブロックを判定し、
    前記判定した書換型領域に属するブロックに対してのみ、ウエアレベリング処理及びリクラメーション処理を行うこと特徴とするストレージ装置。
  2. 前記ブロックは、当該ブロックの属性を所定の領域に記憶することを特徴とする請求項1に記載のストレージ装置。
  3. 前記制御部は、書き込みが完了している追記型領域に属するブロックに対するデータの書込要求を受けると、データを書き込まずに、エラーを通知することを特徴とする請求項1に記載のストレージ装置。
  4. 前記制御部は、
    書き込みが完了していない追記型領域に属するブロックに対するデータの書込要求を受けると、データを書き込むページの属性に基づいて、当該ページにデータが書き込まれているか否かを判定し、
    当該ページにデータが書き込まれていなければ、当該ページにデータを書き込み、当該ページを含むブロックの属性を書き込みが完了していない追記型領域から書き込みが完了している追記型領域へ変更し、
    当該ページにデータが書き込まれていれば、データを書き込まずに、エラーを通知することを特徴とする請求項1に記載のストレージ装置。
  5. 前記制御部は、前記リクラメーション処理を行ったブロックの属性を、書換型領域から書き込みが完了していない追記型領域へ変更することを特徴とする請求項1に記載のストレージ装置。
  6. 前記ブロックは、当該ブロックのデータの消去回数を記憶し、
    前記制御部は、前記消去回数の多いブロックを優先して、前記リクラメーション処理を行ったブロックの属性を、書換型領域から追記型領域へ変更することを特徴とする請求項5に記載のストレージ装置。
  7. 前記制御部は、
    書換型領域に属するブロックに対するデータの書込要求を受けると、当該ブロックにデータを書き込み、
    当該ブロックの属性を、書換型領域から追記型領域へ変更することを特徴とする請求項1に記載のストレージ装置。
  8. 前記ブロックは、記憶しているデータの保持期限情報を記憶することを特徴とする請求項1に記載のストレージ装置。
  9. 前記制御部は、データの書込要求を受けると、データをブロックに書き込むと共に、当該データの保持期限情報を当該ブロックに書き込むことを特徴とする請求項8に記載のストレージ装置。
  10. 前記不揮発性メモリの記憶領域は、さらに、属性が決まっていない未使用領域を含み、
    前記制御部は、
    前記保持期限情報に基づく保持期限を過ぎたデータを記憶しているブロックから、当該データを消去し、
    当該ブロックの属性を、追記型領域から未使用領域へ変更することを特徴とする請求項8に記載のストレージ装置。
JP2005180378A 2005-06-21 2005-06-21 ストレージ装置 Active JP4688584B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005180378A JP4688584B2 (ja) 2005-06-21 2005-06-21 ストレージ装置
US11/228,345 US7613871B2 (en) 2005-06-21 2005-09-19 Storage system using a flash memory partitioned with write-once and rewritable blocks
EP06251099A EP1739565A1 (en) 2005-06-21 2006-03-01 Storage system using flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005180378A JP4688584B2 (ja) 2005-06-21 2005-06-21 ストレージ装置

Publications (2)

Publication Number Publication Date
JP2007004234A JP2007004234A (ja) 2007-01-11
JP4688584B2 true JP4688584B2 (ja) 2011-05-25

Family

ID=36698746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005180378A Active JP4688584B2 (ja) 2005-06-21 2005-06-21 ストレージ装置

Country Status (3)

Country Link
US (1) US7613871B2 (ja)
EP (1) EP1739565A1 (ja)
JP (1) JP4688584B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846019B2 (en) 2017-12-06 2020-11-24 Samsung Electronics Co., Ltd. Semiconductor device

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10256502A1 (de) * 2002-12-04 2004-06-24 Hyperstone Ag Speichersystem mit mehreren Speichercontrollern und Verfahren zu deren Synchronisierung
US7571287B2 (en) 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
US7692682B2 (en) 2005-04-28 2010-04-06 Apple Inc. Video encoding in a video conference
KR100755700B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
US20070150645A1 (en) * 2005-12-28 2007-06-28 Intel Corporation Method, system and apparatus for power loss recovery to enable fast erase time
US20080109612A1 (en) * 2006-11-02 2008-05-08 Jones Kevin M Dynamic Code Relocation for Low Endurance Memories
JP4991320B2 (ja) * 2007-01-12 2012-08-01 株式会社東芝 ホスト装置およびメモリシステム
US7689762B2 (en) * 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
JP5073402B2 (ja) * 2007-07-31 2012-11-14 パナソニック株式会社 メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
US8127104B1 (en) 2007-08-06 2012-02-28 Marvell International Ltd. Alignment matrix memory copy
JP5026213B2 (ja) 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
US8688947B1 (en) 2007-11-21 2014-04-01 Marvell International Ltd. Aligned data access
US8275927B2 (en) * 2007-12-31 2012-09-25 Sandisk 3D Llc Storage sub-system for a computer comprising write-once memory devices and write-many memory devices and related method
KR101454817B1 (ko) 2008-01-11 2014-10-30 삼성전자주식회사 반도체 메모리 장치 및 그것의 마모도 관리 방법
US20090198952A1 (en) 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture
US8131915B1 (en) 2008-04-11 2012-03-06 Marvell Intentional Ltd. Modifying or overwriting data stored in flash memory
US8185706B2 (en) * 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
US8683085B1 (en) 2008-05-06 2014-03-25 Marvell International Ltd. USB interface configurable for host or device mode
JP2009282678A (ja) * 2008-05-21 2009-12-03 Hitachi Ltd フラッシュメモリモジュール及びストレージシステム
US8244959B2 (en) * 2008-11-10 2012-08-14 Atmel Rousset S.A.S. Software adapted wear leveling
WO2010103566A1 (en) * 2009-03-10 2010-09-16 Hitachi, Ltd. Storage apparatus, management apparatus, and method of controlling storage apparatus
JP5341584B2 (ja) * 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
US8423710B1 (en) 2009-03-23 2013-04-16 Marvell International Ltd. Sequential writes to flash memory
US8213236B1 (en) 2009-04-21 2012-07-03 Marvell International Ltd. Flash memory
JP5377182B2 (ja) * 2009-09-10 2013-12-25 株式会社東芝 制御装置
US9063728B2 (en) * 2010-03-17 2015-06-23 Apple Inc. Systems and methods for handling hibernation data
JP5612508B2 (ja) * 2010-03-25 2014-10-22 パナソニック株式会社 不揮発性メモリコントローラ及び不揮発性記憶装置
JP5100789B2 (ja) * 2010-05-28 2012-12-19 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
US8612669B1 (en) 2010-06-28 2013-12-17 Western Digital Technologies, Inc. System and method for performing data retention in solid-state memory using copy commands and validity and usage data
US8756394B1 (en) 2010-07-07 2014-06-17 Marvell International Ltd. Multi-dimension memory timing tuner
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US20120246384A1 (en) * 2011-03-21 2012-09-27 Winbond Electronics Corp. Flash memory and flash memory accessing method
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
US8719531B2 (en) 2011-06-14 2014-05-06 Western Digital Technologies, Inc. System and method for performing data retention that incorporates environmental conditions
US8949508B2 (en) * 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US9046915B2 (en) * 2012-02-27 2015-06-02 Advanced Micro Devices, Inc. Circuit and method for initializing a computer system
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
JP5788369B2 (ja) * 2012-09-12 2015-09-30 株式会社東芝 メモリシステム、コンピュータシステム、およびメモリ管理方法
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
KR20150015621A (ko) * 2013-07-31 2015-02-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
JPWO2015118865A1 (ja) * 2014-02-05 2017-03-23 日本電気株式会社 情報処理装置、情報処理システム及びデータアクセス方法
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US10261725B2 (en) * 2015-04-10 2019-04-16 Toshiba Memory Corporation Storage system capable of invalidating data stored in a storage device thereof
US9588691B2 (en) * 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
KR102513491B1 (ko) * 2015-07-15 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
JP2015222590A (ja) * 2015-07-24 2015-12-10 株式会社東芝 メモリシステム
US10420928B2 (en) 2015-12-14 2019-09-24 Medtronic, Inc. Implantable medical device having a scheme for managing storage of data
US10915441B2 (en) 2017-08-23 2021-02-09 Hitachi, Ltd. Storage system having non-volatile memory device
KR102663661B1 (ko) * 2018-12-06 2024-05-10 에스케이하이닉스 주식회사 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치
JP2021117705A (ja) * 2020-01-24 2021-08-10 富士フイルムビジネスイノベーション株式会社 情報処理装置
JP2022143789A (ja) * 2021-03-18 2022-10-03 株式会社東芝 磁気ディスク装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001283170A (ja) * 2000-03-31 2001-10-12 Mega Chips Corp 半導体記憶装置および半導体記憶装置を用いた認証システム
JP2002163139A (ja) * 2000-11-22 2002-06-07 Sharp Corp データ管理装置およびそれを用いたデータ管理方法
JP2003122643A (ja) * 2001-07-09 2003-04-25 Matsushita Electric Ind Co Ltd コンテンツ読出装置
JP2003208352A (ja) * 2002-01-17 2003-07-25 Fujitsu Ltd 書き込み回数の制限とウエアレベリングを可能にしたフラッシュメモリ

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63228323A (ja) * 1987-03-18 1988-09-22 Mitsubishi Electric Corp 追記型メモリカ−ドの記録方式
JP2582487B2 (ja) 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
US5479638A (en) 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5397834A (en) * 1993-09-03 1995-03-14 Iowa State University Research Foundation, Inc. Biodegradable thermoplastic composition of aldehyde starch and protein
US5523293A (en) * 1994-05-25 1996-06-04 Iowa State University Research Foundation, Inc. Soy protein-based thermoplastic composition for preparing molded articles
US5818771A (en) * 1996-09-30 1998-10-06 Hitachi, Ltd. Semiconductor memory device
JP3233079B2 (ja) * 1997-09-30 2001-11-26 ソニー株式会社 データ処理システム及びデータ処理方法
US7000063B2 (en) * 2001-10-05 2006-02-14 Matrix Semiconductor, Inc. Write-many memory device and method for limiting a number of writes to the write-many memory device
CA2461446A1 (en) * 2002-08-29 2004-03-11 Matsushita Electric Industrial Co., Ltd. Semiconductor memory apparatus and method for writing data into the flash memory device
JP2004310650A (ja) * 2003-04-10 2004-11-04 Renesas Technology Corp メモリ装置
US7332119B2 (en) * 2003-06-13 2008-02-19 Poet Research Biopolymer structures and components
JP2005108273A (ja) 2003-09-26 2005-04-21 Toshiba Corp 不揮発性半導体記憶装置
US20060147582A1 (en) * 2004-06-14 2006-07-06 Riebel Michael J Biopolymer and methods of making it
US20060069850A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to perform a reclaim operation in a nonvolatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001283170A (ja) * 2000-03-31 2001-10-12 Mega Chips Corp 半導体記憶装置および半導体記憶装置を用いた認証システム
JP2002163139A (ja) * 2000-11-22 2002-06-07 Sharp Corp データ管理装置およびそれを用いたデータ管理方法
JP2003122643A (ja) * 2001-07-09 2003-04-25 Matsushita Electric Ind Co Ltd コンテンツ読出装置
JP2003208352A (ja) * 2002-01-17 2003-07-25 Fujitsu Ltd 書き込み回数の制限とウエアレベリングを可能にしたフラッシュメモリ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846019B2 (en) 2017-12-06 2020-11-24 Samsung Electronics Co., Ltd. Semiconductor device

Also Published As

Publication number Publication date
US20060288153A1 (en) 2006-12-21
JP2007004234A (ja) 2007-01-11
US7613871B2 (en) 2009-11-03
EP1739565A1 (en) 2007-01-03

Similar Documents

Publication Publication Date Title
JP4688584B2 (ja) ストレージ装置
US8037232B2 (en) Data protection method for power failure and controller using the same
US8166258B2 (en) Skip operations for solid state disks
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
US8001317B2 (en) Data writing method for non-volatile memory and controller using the same
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US8327068B2 (en) Memory module, memory controller, nonvolatile storage, nonvolatile storage system, and memory read/write method
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
US9213629B2 (en) Block management method, memory controller and memory stoarge apparatus
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
KR20180130229A (ko) 데이터 저장 장치 및 그것의 동작 방법
US9378130B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
JP5180957B2 (ja) メモリコントローラ、半導体記録装置及び書き換え回数通知方法
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2004326523A (ja) 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法
KR100780963B1 (ko) 메모리 카드 및 메모리 카드의 구동 방법
JP4710274B2 (ja) メモリ装置、メモリ装置の制御方法およびデータ処理システム
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110215

R150 Certificate of patent or registration of utility model

Ref document number: 4688584

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250