Nothing Special   »   [go: up one dir, main page]

JP2011203916A - メモリコントローラ、および半導体記憶装置 - Google Patents

メモリコントローラ、および半導体記憶装置 Download PDF

Info

Publication number
JP2011203916A
JP2011203916A JP2010069418A JP2010069418A JP2011203916A JP 2011203916 A JP2011203916 A JP 2011203916A JP 2010069418 A JP2010069418 A JP 2010069418A JP 2010069418 A JP2010069418 A JP 2010069418A JP 2011203916 A JP2011203916 A JP 2011203916A
Authority
JP
Japan
Prior art keywords
block
address
logical
management table
spare
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.)
Pending
Application number
JP2010069418A
Other languages
English (en)
Inventor
Hiroshi Sukegawa
博 助川
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010069418A priority Critical patent/JP2011203916A/ja
Priority to US12/886,029 priority patent/US20110238890A1/en
Publication of JP2011203916A publication Critical patent/JP2011203916A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】ブロック消去回数平均化をより高精度に行うメモリコントローラを提供する。
【解決手段】ブロックを複数有する不揮発性メモリ40の書換え制御を行うメモリコントローラ10であって、ホスト3が指定するブロック単位の論理アドレスである論理ブロックアドレスとブロックのメモリ40での記憶位置を示す物理ブロックアドレスとの対応を記憶する第1管理テーブル31と、ホスト3からメモリ40への書き込み回数を論理ブロックアドレス毎に記憶する第2管理テーブル31と、物理ブロックアドレス毎の消去回数を記憶する第3管理テーブル31、32と、ホスト3からの論理アドレスを指定した書き込み要求に対して、対応する論理アドレスをもたないスペアブロックを選択して書き込む制御部23とを備え、論理ブロックアドレス毎に記憶される書き込み回数と物理ブロックアドレス毎に記憶される消去回数に基づいて、消去回数を複数ブロック間で平均化する。
【選択図】図1

Description

本発明は、メモリコントローラ、および半導体記憶装置に関する。
NAND型フラッシュメモリは、ブロックと呼ばれる複数のメモリセルに記憶されたデータを一括して消去処理を行うことにより構造を簡略化し、安価でかつ大容量を実現している。そしてさらに、NAND型フラッシュメモリは、可動部がなく低消費電力であることから、HDDに代わる記憶装置、携帯電話または携帯音楽プレーヤ等のホストの記憶装置として広く利用されている。しかし、NAND型フラッシュメモリには書き込み/消去回数に制限があることが知られている。
特開2004−326523号公報
本発明は、ブロックの消去回数の平均化を高い精度で行うことができるメモリコントローラ、および半導体記憶装置を提供する。
本願発明の一態様によれば、データ消去の単位であるブロックを複数個有する不揮発性半導体メモリのデータを書き換えるための制御を行うメモリコントローラであって、ホストが指定する前記ブロック単位の論理アドレスとしての論理ブロックアドレスと、前記ブロックの前記不揮発性半導体メモリでの記憶位置を示す物理ブロックアドレスとの対応を記憶する第1の管理テーブルと、前記ホストから前記不揮発性半導体メモリへのデータの書き込み回数を前記論理ブロックアドレス毎に記憶する第2の管理テーブルと、前記物理ブロックアドレス毎のデータ消去回数を記憶する第3の管理テーブルと、前記ホストからの論理アドレスを指定した書き込み要求に対して、対応する論理アドレスをもたない前記ブロックであるスペアブロックを選択し、当該スペアブロックにデータを書き込む書き込み制御部とを備え、前記論理ブロックアドレス毎に記憶されるデータの書き込み回数と前記物理ブロックアドレス毎に記憶されるデータ消去回数に基づいて、データ消去回数を複数の前記ブロックの間で平均化することを特徴とするメモリコントローラが提供される。
本発明によれば、ブロックの消去回数の平均化を高い精度で行うことができるメモリコントローラ、および半導体記憶装置を提供できる。
図1は、第1乃至3の実施の形態のメモリシステムの構成を示すブロック図である。 図2は、第1乃至3の実施の形態の半導体記憶装置における物理アドレスと論理アドレスとの関係を示す図である。 図3は、第1及び第3の実施の形態の論理アドレス管理テーブルを示す図である。 図4は、第1及び第3の実施の形態のスペアブロック管理テーブルを示す図である。 図5は、第1の実施の形態のメモリコントローラが行う受動的ウェアレベリングの具体的な手順を示すフローチャートである。 図6は、第2の実施の形態の論理アドレス管理テーブルを示す図である。 図7は、論理アドレス毎の書き込み回数の分布を示す図である。 図8は、図7を書き込み回数の大小関係でグループ分けした図である。 図9は、第2の実施の形態のスペアブロック管理テーブルを示す図である。 図10は、スペアブロック毎のブロック消去の回数の分布を示す図である。 図11は、図10をブロック消去の回数の大小関係でグループ分けした図である。 図12は、第2の実施の形態のメモリコントローラが行う受動的ウェアレベリングの具体的な手順を示すフローチャートである。 図13は、第3の実施の形態のメモリコントローラが行う能動的ウェアレベリングの具体的な手順を示すフローチャートである。
NAND型フラッシュメモリのメモリセルに対する書き込み/消去回数の制限は、基板に対してゲートに高電圧がかけられフローティングゲートに電子が注入されること(書き込み)、及び、ゲートに対してソースに高電圧がかけられフローティングゲートから電子が引き抜かれること(消去)に起因する。即ち、書き込み/消去処理が特定のメモリセルで何回も実行されるとフローティングゲート周りの酸化膜が劣化し、データが破壊されてしまうことがある。
このような書き込み/消去処理が特定のメモリセルに集中することを回避するために、メモリコントローラが書き込み/消去処理回数の平均化をはかっている。これは、メモリコントローラが、消去処理の単位である物理ブロックの消去回数をカウントし消去処理回数の多い物理ブロックと少ない物理ブロックとを入れ替えて、書き込み/消去処理回数の平均化をはかる、いわゆるウェアレベリングによって実施されている。
しかしながら、従来のウェアレベリングにおいては、物理ブロックの属性としての書き込み/消去回数しか参照していなかった(例えば、特許文献1参照。)。特許文献1では、最も書き込み回数が少ない物理ブロックと書き込み回数が所定のチェック回数に達した物理ブロックとを交換するブロック交換手段を備えることにより書き込み回数の平均化を試みている。
ウェアレベリングを行う半導体記憶装置では一般に、論理アドレスを物理アドレスに変換するための論理アドレス/物理アドレス変換(以下、「論物変換」という。)テーブルが用いられている。この論物変換テーブルを用いることによって、ホストが論理アドレスで指定する更新位置に偏りがあった場合でも、半導体記憶装置内部における物理的な記憶位置を分散させることが可能となる。ウェアレベリングを行う半導体記憶装置では、このように書き換えの都度、論理アドレス/物理アドレスの対応関係が変化する。
SSD(Solid State Drive)等のウェアレベリングが行われている半導体記憶装置のように、書き換えの都度、論理アドレス/物理アドレスの対応関係が変わる場合において、ホストからの外部要求としての書き換え頻度の偏りは、物理ブロックの属性ではなく、本来論理アドレスの属性である。しかしながら従来のウェアレベリングにおいては、上記したように物理ブロックの属性としての書き込み/消去回数しか参照されておらず、論理アドレスの属性としての書き換え頻度の偏り特性が全く考慮されていなかった。
従って、従来のウェアレベリングにおいては、例えば、ホストからの外部要求としての書き換え頻度が少ない論理アドレスに対して、書き込み/消去回数が少ない物理ブロックの物理アドレスを割り当てる可能性があった。この場合、その物理ブロックは割り当て後の新しい論物変換の関係において更新される可能性が低く、書き込み/消去回数が少ないままである可能性が高く、結果として物理ブロックの書き換え回数の平均化が適切に行われないという問題があった。
以下に添付図面を参照して、本発明の実施の形態にかかるメモリコントローラ、半導体記憶装置を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(第1の実施の形態)
図1は、本発明の第1の実施の形態にかかるメモリシステムとしての半導体記憶装置2の構成を示すブロック図である。半導体記憶装置2は、パソコンまたはデジタルカメラ等のホスト3と着脱可能に接続されるメモリカード、または、ホスト3の内部に収納され、ホスト3の外部記憶装置として機能するエンベデッドタイプのメモリ等である。
半導体記憶装置2は、不揮発性半導体メモリ(以下、単に「メモリ部」ともいう。)40と、メモリコントローラ10とを有する。メモリ部40は例えばNAND型フラッシュメモリであり、単位セルである多数のメモリセル41が、ビット線(図示せず)およびワード線42の交点にマトリクス状に配置された構造を有している。メモリ部40におけるデータ消去は、単位セル複数個からなる物理ブロック単位で行われ、メモリ部40は複数の物理ブロックを備えている。メモリ部40に対する書き込み/読み出しは、物理ページ単位に行われる。1つの物理ブロックは複数の物理ページから構成されるので、物理ページのサイズは物理ブロックのサイズより小さい。
メモリコントローラ10は、制御部であるCPU20と、RAM30と、ホスト I/F(インターフェイス)12と、ROM13と、記憶するデータの符号化処理および記憶されたデータの復号化処理を行う誤り訂正(ECC:Error Correcting Code)回路14と、NAND I/F(インターフェイス)15とを備え、これらがバス11を介して接続されている。
メモリコントローラ10は、CPU20による制御に従って、ホストI/F12を介してホスト3とRAM30との間でデータ送受信を行い、NAND I/F15を介してメモリ部40とRAM30との間でデータ送受信を行う。CPU20は、ホスト3とRAM30との間のデータ送受信制御、メモリ部40とRAM30との間のデータ送受信制御を行う通常制御部の他に、メモリ部40へのデータの書き込み回数を論理アドレス毎に計数する書き込み回数計数部21、メモリ部40のデータ消去の単位である物理ブロック毎のデータ書き換え回数としてデータ消去回数を計数する消去回数計数部22、対応する論理アドレスが割り当てられていない物理ブロックであるスペアブロックの選択を行うスペアブロック選択処理部23を備える。スペアブロック(フリーブロック)は、内部に有効データを含まない、用途未割り当ての物理ブロックである。
スペアブロック選択処理部23は、ホスト3からデータの書き込み要求が発生すると、バス11を介してRAM30にアクセスして、そこに保持された管理情報(例えば、後述するスペアブロック管理テーブル)などに基づいて、データを書き込むスペアブロックの選択を行う。
図2は、本実施の形態における論物変換の概念を示すものであるが、その前提となる用語を説明する。論理アドレスとは、ホストが使用するアドレスであり、例えばLBA(Logical Block Addressing)である。LBAは、セクタ(サイズ:例えば512B)に対して0からの通し番号をつけた論理アドレスである。セクタは前述した物理ページよりも小さい単位である。物理アドレスとは、メモリ部40での記憶位置を示すアドレスである。
本実施の形態では、データ消去の単位である物理ブロックのサイズと同一の区分サイズとなる論理アドレスの単位として、上記論理アドレス(例えばLBA)の上位アドレスである論理ブロックアドレスを用いて、物理ブロックの物理アドレスである物理ブロックアドレスに対応付ける。即ち図2に示すように、1個の論理ブロックアドレスに対して1個の物理ブロックアドレスが対応付けられる論物変換が行われることとする。しかし、本実施の形態の要旨に含まれる技術思想の範囲であるならば、この論物変換関係に必ずしも限定されるわけではない。
RAM30は、ホスト3とメモリ部40との間に介在するキャッシュ領域として機能する領域の他に、論理アドレス管理テーブル31及びスペアブロック管理テーブル32を備えている。論理アドレス管理テーブル31は、図3に示すように論理ブロックアドレスをメモリ部40における物理ブロックアドレスに変換する第1の管理テーブルである論理アドレス/物理アドレス変換テーブル(論物変換テーブル)70を含んでいる。
上述したように、スペアブロック選択処理部23はホスト3からのデータの書き込み指示に対して、対応する論理アドレスが割り当てられていないスペアブロックを選択するので、本実施の形態においては、データ書き換えの都度、論物変換の関係が変わることになる。ホスト3からのメモリ部40に対する書き込み指示には、通常、先頭論理アドレス、データサイズが含まれている。
さらに、論理アドレス管理テーブル31は、図3に示すように上記論物変換テーブル70に登録された物理ブロックアドレスが示す物理ブロックのデータ消去回数(物理ブロック消去回数)、及び論理ブロックアドレス毎にホスト3から指示された書き込み回数(論理アドレス書き込み回数)を記憶している。
従って、論理アドレス管理テーブル31は論理ブロックアドレス毎のホスト3からの書き込み回数を記憶する第2の管理テーブルである論理書き込み回数テーブルも含んでいることになる。論理書き込み回数テーブルは、論理アドレスの属性としての書き換え頻度の偏り特性を反映したものとなる。
スペアブロック管理テーブル32は、図4に示すように、対応する論理アドレスが割り当てられていない物理ブロックであるスペアブロックの物理ブロックアドレスと、それに対応する物理ブロックのデータ消去回数(物理ブロック消去回数)とを記憶している。このテーブルは、例えば図4に示すように、物理ブロック消去回数の大小に従って物理ブロックアドレスがソートされていてもよい。
従って、論理アドレス管理テーブル31に登録された物理ブロックアドレス毎の物理ブロックのデータ消去回数の情報と、スペアブロック管理テーブル32に登録された物理ブロックアドレス毎の物理ブロックのデータ消去回数の情報とを合わせると、物理ブロックアドレス毎のデータ消去回数を記憶する第3の管理テーブルである物理消去回数テーブルが構成される。物理消去回数テーブルは、物理ブロック毎の消去(及び書き込み)回数の頻度、即ち当該物理ブロックの物理的な疲労度を反映したものとなる。
CPU20は、論理アドレス管理テーブル31に含まれる論物変換テーブル70にもとづいて論理アドレスと物理アドレスとの変換を行うアドレス変換部(図示せず)としての動作をファームウエア(FW)により実行する。ホスト3からのコマンド入力に応じた半導体記憶装置2全体の制御もCPU20においてファームウエアで実行される。
ROM13は、半導体記憶装置2のブートプログラム等が格納されている記憶部であり、半導体メモリ部30の一部または図示しない不揮発性記憶部にもメモリコントローラ10が半導体記憶装置2を制御するための情報が記憶される。
本実施の形態においては、メモリコントローラ10が備えるCPU20は、ホスト3から任意の論理アドレスへのデータの書き込み指示があった場合、書き込み回数計数部21が論理ブロックアドレス毎に計数している論理アドレス書き込み回数をインクリメントする。その結果は、バス11を介してRAM30内の論理アドレス管理テーブル31の論理アドレス書き込み回数の欄に記憶される。
また、CPU20は、メモリ部40の各物理ブロックにおいてデータの消去があった場合も、消去回数計数部22が物理ブロックアドレス毎に計数している物理ブロック消去回数をインクリメントする。その結果は、当該物理ブロックが対応する論理アドレス(即ち、論理ブロックアドレス)を有している場合は、バス11を介してRAM30内の論理アドレス管理テーブル31の当該物理ブロックの物理ブロックアドレスが登録された行(即ち、上記論理ブロックアドレスが登録された行)の物理ブロック消去回数の欄に記憶される。
データ消去のあった物理ブロックが、対応する論理アドレスが割り当てられていない物理ブロックであるスペアブロックの場合は、バス11を介してRAM30内のスペアブロック管理テーブル32の当該物理ブロックの物理ブロックアドレスが記憶された行の物理ブロック消去回数の欄に記憶される。
従来、ホスト3からの書き込み要求時に行われていたウェアレベリング(以下、受動的ウェアレベリングと呼ぶ)は、ホスト3からの書き込み要求で指定された論理アドレスへの過去の書き込み(書き換え)要求回数は全く考慮されずに行われていた。即ち、従来の受動的ウェアレベリングにおいては、スペアブロックの消去回数のみに依存して、例えば、図4のスペアブロック管理テーブル32において物理ブロック消去回数が少ないスペアブロックを選択して、書き込み(または、ブロック消去及び書き込み)を行い、当該物理ブロックにホストから指定された論理アドレスを割り当てていた。
しかし、このような受動的ウェアレベリングでは、消去回数の平均化というウェアレベリングの目的が適切に実現出来ない可能性があった。例えば、ホストからの外部要求としての書き換え頻度が少ない論理アドレスに偶々書き換え要求が来た場合に、消去回数が少ない物理ブロックをスペアブロックから選択してデータを書き込む可能性があった。この場合、その物理ブロックは当該論理アドレス割り当て後の新しい論物変換の関係においても消去回数が少ないままである可能性が高く、結果として物理ブロックの書き換え回数の偏りが生じてしまい、平均化が適切に行われないという問題があった。
そこで、本実施の形態においては、ホストからデータの書き込み(書き換え)指示があった論理アドレスの書き込み頻度が少ない場合は、当該論理アドレスに対しては、あえて消去回数が大きいスペアブロックを選択して当該論理アドレスを割り当て、選択したスペアブロックに当該データを書き込む。逆に、ホストから書き込み指示があった論理アドレスの書き込み頻度が大きい場合は、当該論理アドレスに対しては、消去回数が少ないスペアブロックを選択して当該論理アドレスを割り当て、選択したスペアブロックに当該データを書き込む。これにより、上述した平均化が適切に行われないという問題を解決することが可能となる。
具体的には、スペアブロック選択処理部23(書き込み制御部)が、論理アドレス管理テーブル31に記憶されている書き込み回数が相対的に多い論理ブロックアドレスを指定した書き込み要求に対しては、スペアブロック管理テーブル32に記憶されている消去回数が相対的に少ないスペアブロックを選択し、書き込み回数が相対的に少ない論理アドレスを指定した書き込み要求に対しては、消去回数が相対的に多いスペアブロックを選択する。
例えば、ホスト3から図3の論理ブロックアドレス「n−1」を指定した書き込み要求が来た場合は、論理アドレス管理テーブル31内での論理アドレス書き込み回数「150」が相対的に少ないと判断して、スペアブロック管理テーブル32内での物理ブロック消去回数が相対的に多い図4の物理ブロックアドレス「WWW」のスペアブロックを選択してデータを書き込む。逆に、図3の論理ブロックアドレス「n」を指定した書き込み要求が来た場合は、論理アドレス管理テーブル31内での論理アドレス書き込み回数「400」が相対的に多いと判断して、スペアブロック管理テーブル32内での物理ブロック消去回数が相対的に少ない図4の物理ブロックアドレス「aaa」のスペアブロックを選択してデータを書き込む。
更に具体的には、図3の論理アドレス管理テーブル31の論理アドレス書き込み回数の大小関係でソートした論理ブロックアドレスと、図4のスペアブロック管理テーブル32の物理ブロック消去回数の大小関係でソートしたスペアブロックの物理ブロックアドレスを、両者の大小関係が逆になるように対応づけておいてもよい。
また、大小関係を逆順に対応づける方法としては、上記のように生の回数値を用いるのでない方法で行うこともできる。例えば、図3の論理アドレス管理テーブル31にさらに「書き込み回数相対値」の欄を設け、各論理アドレス書き込み回数をその時点での論理アドレス書き込み回数の最大値で割った値(0〜1)を論理ブロックアドレス毎に保持しておく。さらに、スペアブロック管理テーブル32にも「消去回数相対値」の欄を設け、各物理ブロック消去回数をその時点でのスペアブロックの中での物理ブロック消去回数の最大値で割った値(0〜1)をスペアブロック毎に保持しておく。
そして、ホスト3からの論理ブロックアドレスを指定した書き込み要求に対して、図3の当該論理ブロックアドレスの「書き込み回数相対値」がXであった場合。例えば、以下の(式1)に従い、「好適消去回数相対値」Yを算出する。
Y=1−X (式1)
スペアブロック選択処理部23は、ここで求まったYに最も近い「消去回数相対値」を有するスペアブロックをスペアブロック管理テーブル32から選択してデータを書き込む。例えば、「書き込み回数相対値」X=0.2のように書き込み回数が相対的に小さい論理ブロックアドレスを指定した書き込み要求に対しては、「好適消去回数相対値」Y=0.8に最も近い消去回数がスペアブロックの中で相対的に大きいスペアブロックを選択する。
上記(式1)はXとYが逆順の関係になるような式であれば、上記の式に限定されない。また、図7に示すホストからの論理アドレス毎の書き込み回数頻度の偏りと図10に示すスペアブロック毎のブロック消去回数頻度の偏りを反映させた非線形な式を用いて対応づけがより均等になるように工夫しても構わない。
以下に、図5のフローチャートを用いて、本実施の形態のメモリコントローラ10が行う受動的ウェアレベリングの具体的な手順を示す。
<ステップS101> データ書き込み指示
ホスト3からメモリコントローラ10に、例えば論理ブロックアドレスLA1を指定したデータ書き込み要求が来る。
<ステップS102> スペアブロックの選択
スペアブロック選択処理部23は、指定された論理ブロックアドレスLA1に対して、上記(式1)に基づいてスペアブロックSB1を選択する。
<ステップS103> ブロック消去及びデータの書き込み
ステップS102で選択したスペアブロックSB1に相当するメモリ部40内の物理ブロックアドレスの物理ブロックをブロック消去し、その物理ブロックにホスト3から指示のあったデータの書き込みを行う。
<ステップS104> 物理ブロック消去回数のインクリメント
CPU20内の消去回数計数部22は、ステップS103におけるブロック消去を物理ブロックアドレス毎に計数しており、図4のスペアブロック管理テーブル32の当該物理ブロックアドレスの物理ブロック消去回数を1増やす。
<ステップS105> 論理アドレス書き込み回数のインクリメント
CPU20内の書き込み回数計数部21は、ステップS101におけるホスト3からの各論理ブロックアドレスへの書き込み指示を論理ブロックアドレス毎に計数しており、図3の論理アドレス管理テーブル31の論理ブロックアドレスLA1の論理アドレス書き込み回数を1増やす。
<ステップS106> 物理ブロックの交換
さらにステップS102で選択したスペアブロックSB1のスペアブロック管理テーブル32に記載された物理ブロックアドレス及び物理ブロック消去回数と、論理アドレス管理テーブル31の論理ブロックアドレスLA1の物理ブロックアドレス及び物理ブロック消去回数とを交換する。交換時に例えば、RAM30内の所定の記憶領域(図示せず)等を一時記憶領域として利用しても構わない。これにより論理アドレス管理テーブル31にエントリされていた物理ブロックとスペアブロック管理テーブル32にエントリされていた物理ブロックが入れ替えられたことになる。交換後、スペアブロック管理テーブル32を物理ブロック消去回数(データ消去回数)の大小に従ってソートする。
<ステップS107> テーブルソート
スペアブロック管理テーブル32を物理ブロック消去回数(データ消去回数)の大小関係に従ってソートする。
ホスト3からメモリコントローラ10に、任意の論理アドレスへのデータ書き込み指示が来る度にステップS101〜S107を繰り返す。
以上説明したように本実施の形態においては、ホストからデータの書き込み指示があった論理アドレスの書き込み頻度が少ない場合は、あえて消去回数が大きいスペアブロックを選択して当該データを書き込み、ホストから書き込み指示があった論理アドレスの書き込み頻度が大きい場合は、消去回数が少ないスペアブロックを選択して当該データを書き込むようにする。
このように、本実施の形態に係る半導体記憶装置2は、データ書き換えの都度、論物変換の関係が変わる場合において、論理アドレスの属性である書き換え回数、即ち論理アドレスの書き換え頻度を参照して、物理ブロックの書き換え回数の平均化を行う。
本実施の形態では、受動的ウェアレベリングにおいて、書き込み頻度が少ない論理ブロックアドレスには消去回数が大きく物理的な疲労の程度が大きい物理(スペア)ブロックを割り当て、逆に、書き込み頻度が大きい論理ブロックアドレスには消去回数が少ない物理的な疲労の程度が小さい物理(スペア)ブロックを割り当てることによって、物理ブロックの書き換え回数の平均化の精度を高めることが可能になると考えられる。
即ち、従来の受動的ウェアレベリングにおいて生じていた、書き換え頻度が少ない論理アドレスに書き込み/消去回数が少ない物理ブロックをスペアブロックとして選択する現象を回避することができるので、物理ブロックの書き換え回数の平均化というウェアレベリングの目的をより精度を高めて実現することが可能となり、メモリシステムの寿命を従来に比べて延ばすことが可能となる。
一方、ホストからのデータ書き換え指示が無いときであっても、消去回数が少ない物理ブロックに書き込まれているデータを消去回数が多いスペアブロックにメモリシステムが自主的に書き移すことにより、当該消去回数が少ない物理ブロックをスペアブロックにするウェアレベリング(以下、能動的ウェアレベリングと呼ぶ)の方法がある。
上記実施の形態においては、受動的ウェアレベリングの物理ブロック消去回数平均化が高精度になることによって、能動的ウェアレベリングの必要回数も低減されると考えられる。従って、能動的ウェアレベリングにおけるメモリシステムの自主的なデータ書き換えに伴う物理ブロックの消去の回数を減らすことも可能になるので、これによるメモリシステムの長寿命化も期待できる。
(第2の実施の形態)
本発明の第2の実施の形態にかかるメモリシステムとしての半導体記憶装置2の構成を示すブロック図は図1と同様である。同じ構成要素の説明は省略する。本実施の形態においても、例として図2に示すように1個の論理ブロックアドレスに対して1個の物理ブロックアドレス、即ち、メモリ部40の1つの物理ブロックが対応付けられた論物変換が行われることとする。しかし、本実施の形態の要旨を逸脱しない範囲であるならば、この論物変換関係に限定されるわけではない。
また、ホスト3から任意の論理アドレスへのデータの書き込み指示に対して(論理アドレスが割り当てられていない)スペアブロックを選択してデータを書き込んで当該論理アドレスと対応づける。即ち、データ書き換えの都度、論物変換の関係が変わるところも、第1の実施の形態と同様である。
本実施の形態においては、スペアブロック選択処理部23の処理と、RAM30内に備えられる論理アドレス管理テーブル31及びスペアブロック管理テーブル32の構成が第1の実施の形態とは異なる。
図6に示す本実施の形態における論理アドレス管理テーブル31は、第1の実施の形態と同様に、論理ブロックアドレスを対応する物理ブロックのメモリ部40における物理アドレスである物理ブロックアドレスに変換する論理アドレス/物理アドレス変換テーブル(論物変換テーブル)70を含んでいる。論物変換テーブル70に記載された物理ブロックアドレスのデータ消去回数(物理ブロック消去回数)を記憶し、論理ブロックアドレス毎の書き込み回数(論理アドレス書き込み回数)を記憶して論理書き込み回数テーブルを含んでいることも第1の実施の形態と同様である。
しかし図6に示すように、本実施の形態の論理アドレス管理テーブル31には、論理ブロックアドレス毎に論理アドレスグループのインデックスがさらに記憶されている。一般に、ホスト3からの論理アドレス毎の書き込み回数頻度には図7に示すように偏りが存在する。従って、図6の論理アドレス書き込み回数の大小関係に基づいて論理ブロックアドレス全てを複数の論理アドレスグループのいずれかに分類することが可能である。例えば、図8に示すようにA〜Dのインデックスをそれぞれ持った4つの論理アドレスグループに分類することができる。
具体的には、例えば図6に示された全ての論理ブロックアドレスに対する論理アドレス書き込み回数の最大値に対する各論理ブロックアドレス書き込み回数の比(0〜1)を、3つの閾値、例えば、0.25、0.5、0.75との大小関係で4つに分類し、図8に示すように比が大きい方から、A、B、C、Dのインデックスをそれぞれ持った4つ論理アドレスグループに分類することができる。
論理アドレスグループの数は複数であればよく4に限定されるわけではない。また、論理アドレス書き込み回数の大小関係に基づいて、全ての論理ブロックアドレスをほぼ同数ずつの論理ブロックアドレスを有する複数の論理アドレスグループに分類してもよく、論理アドレス書き込み回数の大小関係に基づいた分類ならば閾値の間隔を含め上記分類方法に限定されない。このように定めたインデックスを図6の論理アドレス管理テーブル31の論理アドレスグループの欄に各論理ブロックアドレスの属性として、論理ブロックアドレス毎に記憶させる。
一方図9に示す本実施の形態におけるスペアブロック管理テーブル32も、第1の実施の形態と同様に、対応する論理アドレスが割り当てられていない物理ブロックであるスペアブロックの物理ブロックアドレスとそれに対応する物理ブロックの物理ブロック消去回数(データ消去回数)を記憶している。そして、物理ブロック消去回数の大小に従って物理ブロックアドレスがソートされている。
しかし図9に示すように、本実施の形態のスペアブロック管理テーブル32には、スペアブロックの物理ブロックアドレス毎にスペアブロックグループのインデックスがさらに記憶されている。
一般に、スペアブロック毎のブロック消去の回数頻度には図10に示すように偏りが存在する。従って、図9の物理ブロック消去回数の大小関係に基づいてスペアブロック全てを、上記論理アドレスグループの数と例えば同数のスペアブロックグループのいずれかに分類することが可能である。例えば、図11に示すようにA〜Dのインデックスをそれぞれ持った4つのスペアブロックグループに分類することができる。
具体的には、例えば図9に示された全てのスペアブロックに対する物理ブロック消去回数の最大値に対する各物理ブロック消去回数の比(0〜1)を、3つの閾値、例えば、0.25、0.5、0.75との大小関係で4つに分類し、図11に示すように比が小さい方から、A、B、C、Dのインデックスをそれぞれ持ったスペアブロックグループに分類することができる。
スペアブロックグループの数は上記論理アドレスグループの数と、例えば同数であればよく4に限定されるわけではない。また、物理ブロック消去回数の大小関係に基づいて、全てのスペアブロックをほぼ同数ずつのスペアブロックを有する複数のスペアブロックグループに分類してもよく、物理ブロック消去回数の大小関係に基づいた分類ならば閾値の間隔を含め上記分類方法に限定されない。このインデックスを図9のスペアブロック管理テーブル32のスペアブロックグループの欄に、スペアブロックの物理ブロックアドレス毎に記憶させる。
本実施の形態においては、ホストからデータの書き込み(書き換え)指示があった論理ブロックアドレスが書き込み頻度の少ない論理アドレスグループに属している場合は、当該論理ブロックアドレスに対しては、消去回数の頻度が大きいスペアブロックグループに属するスペアブロックを選択して当該論理ブロックアドレスを割り当て、選択したスペアブロックに相当するメモリ部40内の物理ブロックに当該データを書き込む。
逆に、ホストから書き込み指示があった論理ブロックアドレスが書き込み頻度の大きい論理アドレスグループに属している場合は、当該論理ブロックアドレスに対しては、消去回数の頻度が少ないスペアブロックグループに属するスペアブロックを選択して当該論理ブロックアドレスを割り当て、選択したスペアブロックに相当するメモリ部40内の物理ブロックに当該データを書き込む。
上述した図8及び図11の例の場合、論理アドレス書き込み回数の大小関係と物理ブロック消去回数の大小関係が逆になるように、それぞれの論理アドレスグループには同じインデックスのスペアブロックグループ、すなわち、A同士、B同士、C同士、D同士を組み合わせる。この組み合わせの中から、書き込み指示があった論理アドレスに対してスペアブロックの選択を行う。
以下に、図12のフローチャートを用いて、本実施の形態のメモリコントローラ10が行う受動的ウェアレベリングの具体的な手順を示す。
<ステップS201> データ書き込み指示
ホスト3からメモリコントローラ10に、例えば論理ブロックアドレスLA1を指定したデータ書き込み要求が来る。
<ステップS202> 論理アドレスグループの判定
スペアブロック選択処理部23は、図6の論理アドレス管理テーブル31にアクセスし論理ブロックアドレスLA1の論理アドレスグループのインデックスに基づき、論理アドレスグループを判定する。
<ステップS203> スペアブロックの選択
スペアブロック選択処理部23は、図9のスペアブロック管理テーブル32にアクセスして、ステップS202で判定した論理アドレスグループと同じインデックスのスペアブロックグループに属するスペアブロックSB1を選択する。
上述したように、それぞれの論理アドレスグループには論理アドレス書き込み回数の大小関係と物理ブロック消去回数の大小関係が逆になるようにスペアブロックグループが対応付けられている。従って、ステップS202で判定した論理アドレスグループに対応するスペアブロックグループに属するスペアブロックであれば、どれを選択しても、例えば当該スペアブロックグループに属するスペアブロックをランダムに1つ選択するようにしても構わない。
しかし、第1の実施の形態の考えをここでも反映させて、ステップS202で判定した論理アドレスグループの中での論理ブロックアドレスLA1の論理アドレス書き込み回数の相対的な大小の程度に応じて、同一インデックスのスペアブロックグループからスペアブロックSB1を選択するようにした方が、物理ブロックの消去回数の平均化がさらに効果的に行える。即ち、ステップS202で判定した論理アドレスグループの中で論理アドレスLA1の論理アドレス書き込み回数が相対的に大きい場合は、対応するスペアブロックグループに属するスペアブロックの中で物理ブロック消去回数が相対的に小さいスペアブロックを選択し、逆に論理アドレス書き込み回数が相対的に大きい場合は、物理ブロック消去回数が相対的に小さいスペアブロックを選択してもよい。
このような機構は、例えば第1の実施の形態で説明した(式1)等を用いれば実現できる。この場合、図6の論理アドレス管理テーブル31の論理アドレスグループの欄に論理アドレスグループのインデックスに付加して、当該インデックスの論理アドレスグループ内での書き込み回数の最大値でその行の論理アドレス書き込み回数を割った値である論理アドレスグループ毎の「書き込み回数相対値」をさらに記憶させる。例えば「A:0.3」等である。同様に図9のスペアブロック管理テーブル32のスペアブロックグループの欄にも、各スペアブロックグループ内での消去回数の最大値でその行の物理ブロック消去回数を割った値スペアブロックグループ毎の「消去回数相対値」を「D:0.4」のように付加記憶させる。そしてステップS202で判定した論理アドレスグループと同じインデックスのスペアブロックグループを選択した後、その中で(式1)等に従って「好適消去回数相対値」に最も近いスペアブロックグループSB1を選択する。
<ステップS204> ブロック消去及びデータの書き込み
ステップS203で選択したスペアブロックSB1に相当するメモリ部40内の物理ブロックアドレスの物理ブロックをブロック消去し、その物理ブロックにホスト3から指示のあったデータの書き込みを行う。
<ステップS205> 物理ブロック消去回数のインクリメント
CPU20内の消去回数計数部22は、ステップS204におけるブロック消去を物理ブロックアドレス毎に計数しており、図9のスペアブロック管理テーブル32の当該物理ブロックアドレスの物理ブロック消去回数を1増やす。
<ステップS206> 論理アドレス書き込み回数のインクリメント
CPU20内の書き込み回数計数部21は、ステップS201におけるホスト3からの各論理ブロックアドレスへの書き込み指示を論理ブロックアドレス毎に計数しており、図6の論理アドレス管理テーブル31の論理ブロックアドレスLA1の論理アドレス書き込み回数を1増やす。
<ステップS207> 物理ブロックの交換
さらにステップS203で選択したスペアブロックSB1のスペアブロック管理テーブル32に記載された物理ブロックアドレス及び物理ブロック消去回数と、論理アドレス管理テーブル31の論理ブロックアドレスLA1の物理ブロックアドレス及び物理ブロック消去回数を交換する。交換時に例えば、RAM30内の所定の記憶領域(図示せず)等を一時記憶領域として利用しても構わない。これにより論理アドレス管理テーブル31にエントリされていた物理ブロックとスペアブロック管理テーブル32にエントリされていた物理ブロックが入れ替えられたことになる。交換後、スペアブロック管理テーブル32を物理ブロック消去回数(データ消去回数)の大小に従ってソートする。
<ステップS208> 論理アドレスグループのインデックスの更新
ステップS206で論理アドレス管理テーブル31の論理アドレス書き込み回数がインクリメントされているので、論理アドレスグループのインデックスの更新の必要が生じる場合がある。具体的には、全ての論理ブロックアドレスに対する論理アドレス書き込み回数の最大値と各論理アドレス書き込み回数との比(0〜1)を計算し、例えば、0.25、0.5、0.75の3つの閾値で再度4つのインデックスA、B、C、Dに分類する。以前と異なるインデックスになった論理ブロックアドレスがあった場合は、図6の当該論理ブロックアドレスの論理アドレスグループの欄をそのインデックスに更新する。
<ステップS209> スペアブロックグループのインデックスの更新
ステップS207で、スペアブロック管理テーブル32に記載された物理ブロックアドレス及び物理ブロック消去回数が書き換えられ、物理ブロック消去回数の大小に従ってソートされているので、スペアブロックグループのインデックスの更新の必要が生じる。具体的には、全てのスペアブロックの物理ブロック消去回数の最大値と各物理ブロック消去回数との比(0〜1)を計算し、例えば、0.25、0.5、0.75の3つの閾値で再度4つのインデックスA、B、C、Dに分類する。そして、スペアブロック管理テーブル34の全ての物理ブロックアドレスのスペアブロックグループの欄をそのインデックスに更新する。
ホスト3からメモリコントローラ10に、任意の論理アドレスへのデータ書き込み指示が来る度にステップS201〜S209を繰り返す。
以上説明したように本実施の形態においては、データ書き換えの都度、論物変換の関係が変わるメモリシステムにおいて、論理ブロックアドレスの属性として書き込み回数頻度を計数してその頻度の相対的な大小関係で論理ブロックアドレスをグループ分けし、スペアブロックを構成する物理ブロックも消去回数の相対的な大小関係でグループ分けしておく。
論物変換の関係が変わるデータ書き換え時に、書き込み回数頻度が小さい論理アドレスグループは消去回数が大きいスペアブロックグループと、書き込み回数頻度が大きい論理アドレスグループは消去回数が小さいスペアブロックグループと組み合わせて、その組み合わせの中で書き換え要請があった論理アドレスにスペアブロックを選択する。
これにより、従来の受動的ウェアレベリングにおいて生じていた、書き換え頻度が少ない論理アドレスに書き込み/消去回数が少ない物理ブロックをスペアブロックとして選択する現象を回避することができるので、物理ブロックの書き換え回数の平均化というウェアレベリングの目的をより精度を高めて実現することが可能となり、メモリシステムの寿命を従来に比べて延ばすことが可能となる。また、第1の実施の形態同様、能動的ウェアレベリングの必要回数の低減によるメモリシステムの長寿命化も期待できる。
なお、本実施の形態においては、スペアブロックグループの数は論理アドレスグループの数と同数として説明したが、論理アドレスの属性として書き込み回数の大小関係とスペアブロックの消去回数の大小関係が逆順となるグループの組み合わせにする趣旨が実現できるのであれば、必ずしも同数でなくてもかまわない。
また、本実施の形態のより簡易な実現例として以下のようにしてもよい。即ち、論理アドレス書き込み回数の最大値に対する各論理ブロックアドレス毎の書き込み回数の比を、例えば閾値0.1と0.9との大小関係により大きい方からA、B、Cの論理アドレスグループに分類し、全てのスペアブロックに対する物理ブロック消去回数の最大値に対する各物理ブロック消去回数の比も、例えば閾値0.1と0.9との大小関係により小さい方からA、B、Cのスペアブロックグループに分類して同一インデックスのグループ同士を対応づけてもよい。
(第3の実施の形態)
本発明の第3の実施の形態にかかるメモリシステムの構成を示すブロック図は、図1と同様であるが、本実施の形態は能動的ウェアレベリングに関するものである。RAM30は、図3に示す論理アドレス管理テーブル31と、図4に示すスペアブロック管理テーブル32を備えている。各構成要素の第1の実施の形態と共通な動作の説明は省略する。
本実施の形態においても、例として図2に示すように1個の論理ブロックアドレスに対して1個の物理ブロックアドレス、即ち、メモリ部40の1つの物理ブロックが対応付けられた論物変換が行われることとする。しかし、本実施の形態の要旨を逸脱しない範囲であるならば、この論物変換関係に限定されるわけではない。また、ホスト3から任意の論理アドレスへのデータの書き込み指示に対して(論理アドレスを持たない)スペアブロックを選択してデータを書き込んで当該論理アドレスと対応づける。即ち、データ書き換えの都度、論物変換の関係が変わるところも、第1及び第2の実施の形態と同様である。
本実施の形態においては、ホスト3からの書き換え指示が無いときの物理ブロックの書き換え回数平均化制御である能動的ウェアレベリングにおいて、物理ブロックの書き換え回数が少なく且つ論理ブロックアドレスへの書き込み回数が少ない物理ブロックを疲労度が高いスペアブロックと交換する。しかし、物理ブロックの書き換え回数が少なくても論理ブロックアドレスへの書き込み回数が多い物理ブロックに対しては能動的ウェアレベリングを実行しない。これにより、物理ブロックの書き換え回数平均化の精度を従来に比べて高めることが可能となる。
即ち、能動的ウェアレベリングにおいて、有効なデータが書き込まれている物理ブロックの論理ブロックアドレスの書き換え頻度を考慮する。具体的には、メモリコントローラ10が図3の論理アドレス管理テーブル31の論理アドレス書き込み回数を考慮に入れた上で能動的ウェアレベリングを行う。
以下に、図13のフローチャートを用いて、本実施の形態のメモリコントローラ10が行う能動的ウェアレベリングの具体的な手順を示す。
<ステップS301> 開始条件判定
ホスト3から論理アドレスへのデータの書き込み指示が無いときに、CPU20が、RAM30内の論理アドレス管理テーブル31の物理ブロック消去回数とスペアブロック管理テーブル32の物理ブロック消去回数をチェックし、全ての物理ブロックの中での消去回数の最大値と最小値の差が所定の閾値以上になったとき等、物理ブロックの消去回数の不均衡が所定の条件を超えたかどうかを開始条件として判定する。また、一定時間毎に周期的に開始する、或いは開始条件を判定するとしてもよい。開始条件を満たす場合にステップS302に進む。満たさない場合はステップS301を繰り返す。
<ステップS302> 論理アドレス書き込み回数の閾値判定
CPU20は、RAM30内の論理アドレス管理テーブル31にアクセスして、論理アドレス管理テーブル31の論理アドレス書き込み回数の中で第1閾値より小さいという条件を満たすものがあるかどうかを判定する。第1閾値はRAM30等に保持されていればよい。第1閾値の値としては、例えば図3に示された全ての論理ブロックアドレスに対する論理アドレス書き込み回数の最大値に例えば0.1〜0.3等の係数を掛けた値にして、相対的に論理アドレス書き込み回数が小さいものを選別出来るようにしてもよい。
しかし、ホスト3からの今後の書き込み要求が少ないことが予測される論理ブロックアドレスを選択するのが第1閾値の目的であるので、上記例や係数に限定されず、相対値ではなく例えば具体的な書き込み回数の数値にしても構わない。条件を満たす論理ブロックアドレスが全く無い場合は、ステップS301に戻り、条件を満たす論理ブロックアドレスがある場合は、ステップS303に進む。
<ステップS303> 物理ブロック消去回数の閾値判定
CPU20は、RAM30内の論理アドレス管理テーブル31の中でステップS302の条件を満たした論理ブロックアドレスの行の物理ブロック消去回数の中で第2閾値より小さいという条件を満たすものがあるかどうかを判定する。第2閾値はRAM30等に保持されていればよい。その値としては、例えば図3の全ての論理ブロックアドレスに対する物理ブロック消去回数の最大値に例えば0.1〜0.3等の係数を掛けた値にして、有効なデータが書き込まれている物理ブロックの中からさらに物理ブロック消去回数が小さいものを選別出来るようなものを選べばよい。
ステップS302の条件を満たした論理ブロックアドレスに対応する物理ブロックの中からさらに物理的な疲労度が少ない物理ブロックを選択するのが目的であるので、第2閾値も上記例や係数に限定されず、具体的な物理ブロック消去回数でもかまわない。条件を満たす物理ブロックが全く無い場合は、ステップS301に戻る。条件を満たす物理ブロックがある場合は、当該物理ブロックを有閑物理ブロックとし、それに対応する論理ブロックアドレスを有閑論理アドレスとする。そしてステップS304に進む。
<ステップS304> 疲労スペアブロックのブロック消去及びデータの書き込み
スペアブロック選択処理部23が、図4のスペアブロック管理テーブル32に示されたスペアブロックの中での物理ブロック消去回数が第3閾値よりも大きいか或いは最大値である疲労スペアブロックを選択する。そして、当該疲労スペアブロックをブロック消去した上で、上記有閑物理ブロックに書き込まれているデータを書き込む。
第3閾値としては、基本的に第2閾値より大きいことが条件であるが、物理ブロックの物理的な絶対的な疲労度を基準にするのであれば定数を選択してもよい。しかし、例えば図4に示された全てのスペアブロックに対する物理ブロック消去回数の最大値に例えば0.9等の係数を掛けた値のように相対的な値を選択してもよい。疲労度が高いスペアブロックを選択できるのであれば、第3閾値は上記例や係数に限定されるものではない。
また、ステップS303の条件を満たす有閑物理ブロックが1つであれば、物理ブロック消去回数がスペアブロック管理テーブル32の中で最大値をとる疲労スペアブロックを選択してもよい。有閑物理ブロックが複数ある場合は、その中で対応する論理アドレス書き込み回数がより小さいもの程、物理ブロック消去回数がより大きい疲労スペアブロックにデータを書き込むように逆順に選択すればより効果的な能動的ウェアレベリングとなる。
また、第2閾値より大きい物理ブロック消去回数のスペアブロックを疲労スペアブロックとして選択して有閑物理ブロックに書き込まれているデータを書き込むのであれば、能動的ウェアレベリングは実現されるので、必ずしも第3閾値を考慮して疲労スペアブロックを選択しなくてもよい。次にステップS305に進む。
<ステップS305> 疲労スペアブロックの消去回数のインクリメント
CPU20内の消去回数計数部22は、ステップS304におけるブロック消去を物理ブロックアドレス毎に計数しており、図4のスペアブロック管理テーブル32の当該物理ブロックアドレスの物理ブロック消去回数を1増やす。
<ステップS306> 有閑物理ブロックと疲労スペアブロックの交換
スペアブロック選択処理部23は、ステップS304で有閑物理ブロックに書き込まれているデータを書き込んだ疲労スペアブロックの物理ブロックアドレス及び物理ブロック消去回数と、論理アドレス管理テーブル31の当該有閑物理ブロックの物理ブロックアドレス及び物理ブロック消去回数を交換する。交換時に例えば、RAM30内の所定の記憶領域(図示せず)等を一時記憶領域として利用しても構わない。
これにより当該有閑物理ブロックの物理ブロックアドレスが論理アドレス管理テーブル31から消去されて、スペアブロック管理テーブル32に新たにエントリされ、当該有閑物理ブロックは新たにスペアブロックになる。交換後、スペアブロック管理テーブル32を物理ブロック消去回数(データ消去回数)の大小に従ってソートする。
ホスト3からメモリコントローラ10に、データ書き込み指示が来ないときに、ステップ301〜ステップ306を行う。
以上説明したように本実施の形態においては、ホストからの書き換え指示が無いときの能動的ウェアレベリングにおいて、ホストからの書き込み要求頻度が少ない論理ブロックアドレスの物理ブロックに限定して、当該物理ブロックの消去回数が少ない場合に、疲労度が高いスペアブロックと交換する。これにより、従来、ホストからの書き込み要求頻度が多い論理ブロックアドレスの物理ブロックに対しても当該物理ブロックの消去回数が少ないという条件のみに基づいて疲労度が高いスペアブロックと交換していた能動的ウェアレベリングを回避できる。
即ち、上記有閑論理アドレス以外のデータ書き換え頻度が高い論理アドレスに対しては、例え当該アドレスに対応する物理ブロックの書き換え回数が少なくても能動的ウェアレベリングの対象とはしない。これは、そのような物理ブロックはあえて能動的ウェアレベリングの対象としなくても、ホストからの書き込み要求が頻繁に来るはずなので、そのときに、強制的にスペアブロックと物理ブロックが交換されるからである。
従って、本実施の形態によって、従来の能動的ウェアレベリングによる物理ブロックの書き換え回数平均化の精度を維持しつつ能動的ウェアレベリングの必要回数を減らすことが可能になる。よって、能動的ウェアレベリングの自主的なデータ書き換えに伴う物理ブロックの消去回数を減らすことが可能になるので、メモリシステムの長寿命化が期待できる。
また、上記ステップS304で述べたように、有閑物理ブロックが複数ある場合は、その中で対応する論理アドレス書き込み回数がより小さいもの程、物理ブロック消去回数がより大きい疲労スペアブロックにデータを書き込むように逆順に選択することにより、第1及び2の実施の形態で説明したのと同様な理由により物理ブロックの書き換え回数平均化の精度を高めることが可能となる。即ち、本実施の形態によって能動的ウェアレベリングによる物理ブロックの書き換え回数平均化の精度を高めることも可能であり、メモリシステムのさらなる長寿命化が可能となる。
さらに、本実施の形態は能動的ウェアレベリングを改良するものであるので、第1及び第2の実施の形態で説明した改良した受動的ウェアレベリングと併用可能であり、併用により更なる効果が期待できる。即ち、ホストからの書き換え指示があったときは、図5或いは図12のフローチャートに従い、ホストからの書き換え指示がないときは、図13のフローチャートに従って、メモリコントローラ10が動作すればよい。これにより、上記した第1乃至3の実施の形態より、物理ブロックの消去回数平均化の精度をさらに高めることが期待でき、メモリシステムの長寿命化がさらに図れることになる。
上記したいずれの実施の形態も、物理的な書き換え回数に依存した劣化特性を有する記憶素子を複数搭載し、論物変換の対応関係が書き換えの都度変化するストレージデバイスにおいて、論理アドレスへの書き込み回数が、今後の当該論理アドレスへの書き込み頻度の予測値になるという考えに基づいている。即ち、論理アドレスへの書き込み回数が少ないものには消去回数が多く疲労度が高いスペアブロックをあえて割り当て、記憶素子の物理的な書き換え回数の平均化を将来にわたってより高精度に行えるようにしてストレージデバイスの長寿命化を図っている。
従って、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
2 半導体記憶装置、3 ホスト、10 メモリコントローラ、11 バス、12 ホスト I/F(インターフェイス)、13 ROM、14 誤り訂正部、15 NAND I/F、20 CPU、21 書き込み回数係数部、22 消去回数計数部、23 スペアブロック選択処理部、30 RAM、31 論理アドレス管理テーブル、32 スペアブロック管理テーブル、40 不揮発性半導体メモリ部、41 メモリセル、42 ワード線、50、51 論理ブロックアドレス、60、61 物理ブロックアドレス、70 論物変換テーブル、S101〜S107、S201〜S209、S301〜S306 ステップ。

Claims (8)

  1. データ消去の単位であるブロックを複数個有する不揮発性半導体メモリのデータを書き換えるための制御を行うメモリコントローラであって、
    ホストが指定する前記ブロック単位の論理アドレスとしての論理ブロックアドレスと、前記ブロックの前記不揮発性半導体メモリでの記憶位置を示す物理ブロックアドレスとの対応を記憶する第1の管理テーブルと、
    前記ホストから前記不揮発性半導体メモリへのデータの書き込み回数を前記論理ブロックアドレス毎に記憶する第2の管理テーブルと、
    前記物理ブロックアドレス毎のデータ消去回数を記憶する第3の管理テーブルと、
    前記ホストからの論理アドレスを指定した書き込み要求に対して、対応する論理アドレスをもたない前記ブロックであるスペアブロックを選択し、当該スペアブロックにデータを書き込む書き込み制御部とを備え、
    前記論理ブロックアドレス毎に記憶されるデータの書き込み回数と前記物理ブロックアドレス毎に記憶されるデータ消去回数に基づいて、データ消去回数を複数の前記ブロックの間で平均化することを特徴とするメモリコントローラ。
  2. 前記書き込み制御部は、
    前記第2の管理テーブルに記憶されている書き込み回数が相対的に多い論理ブロックアドレスを指定した書き込み要求に対しては前記第3の管理テーブルに記憶されている消去回数が前記スペアブロックの中で相対的に少ないスペアブロックを選択し、
    前記第2の管理テーブルに記憶されている書き込み回数が相対的に少ない論理ブロックアドレスを指定した書き込み要求に対しては前記第3の管理テーブルに記憶されている消去回数が前記スペアブロックの中で相対的に多いスペアブロックを選択する
    ことを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記第2の管理テーブルおよび前記第3の管理テーブルに基づき、前記書き込み回数の大小関係と前記消去回数の大小関係が逆になるように前記論理ブロックアドレスと前記スペアブロックを対応づけ、
    前記書き込み制御部は、前記ホストからの論理アドレスを指定した書き込み要求に対して、前記対応づけに基づいてスペアブロックを選択する
    ことを特徴とする請求項1に記載のメモリコントローラ。
  4. 前記第2の管理テーブルに記憶された書き込み回数の大小関係に基づいて前記論理ブロックアドレスを複数の論理アドレスグループに分類し、前記第3の管理テーブルに記憶された消去回数の大小関係に基づいて前記スペアブロックを複数のスペアブロックグループに分類し、前記書き込み回数の大小関係と前記消去回数の大小関係が逆になるように前記論理アドレスグループと前記スペアブロックグループを対応づけ、
    前記書き込み制御部は、前記ホストからの論理アドレスを指定した書き込み要求に対して、当該論理アドレスが分類されている前記論理アドレスグループに対応づけられている前記スペアブロックグループに分類されているスペアブロックを選択する
    ことを特徴とする請求項1に記載のメモリコントローラ。
  5. 前記書き込み回数の大小関係に基づく前記論理ブロックアドレスの分類は、前記第2の管理テーブルに記憶されている前記書き込み回数の最大値に対する前記書き込み回数の比を閾値と比較することにより行い、
    前記消去回数の大小関係に基づく前記スペアブロックの分類は、前記第3の管理テーブルに記憶されている前記消去回数の前記スペアブロックの中での最大値に対する前記消去回数の比を閾値と比較することにより行う
    ことを特徴とする請求項4に記載のメモリコントローラ。
  6. 前記書き込み制御部は、前記ホストからの書き込み要求が無いときに、前記第2の管理テーブルに記憶された書き込み回数が第1閾値より小さい論理ブロックアドレスに前記第1の管理テーブルで対応する物理ブロックアドレスの前記第3の管理テーブルに記憶された消去回数が第2閾値より小さい条件を満たす場合に、当該条件を満たす論理ブロックアドレスである有閑論理アドレスに対応する物理ブロックアドレスが示す有閑物理ブロックに書き込まれているデータを、前記スペアブロックの中から前記第3の管理テーブルに記憶された消去回数が第3閾値よりも大きい疲労スペアブロックを選択して書き込み、
    前記疲労スペアブロックの物理ブロックアドレスを前記有閑論理アドレスに対応するように前記第1の管理テーブルに書き込んで前記有閑物理ブロックの物理ブロックアドレスを消去することにより当該有閑物理ブロックを前記スペアブロックにする
    ことを特徴とする請求項1に記載のメモリコントローラ。
  7. 前記第1閾値は、前記第2の管理テーブルに記憶された書き込み回数の最大値に所定の定数を乗じた値である
    ことを特徴とする請求項6に記載のメモリコントローラ。
  8. 請求項1から請求項7のいずれか1項に記載のメモリコントローラと、前記不揮発性半導体メモリとを具備することを特徴とする半導体記憶装置。
JP2010069418A 2010-03-25 2010-03-25 メモリコントローラ、および半導体記憶装置 Pending JP2011203916A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010069418A JP2011203916A (ja) 2010-03-25 2010-03-25 メモリコントローラ、および半導体記憶装置
US12/886,029 US20110238890A1 (en) 2010-03-25 2010-09-20 Memory controller, memory system, personal computer, and method of controlling memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010069418A JP2011203916A (ja) 2010-03-25 2010-03-25 メモリコントローラ、および半導体記憶装置

Publications (1)

Publication Number Publication Date
JP2011203916A true JP2011203916A (ja) 2011-10-13

Family

ID=44657641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010069418A Pending JP2011203916A (ja) 2010-03-25 2010-03-25 メモリコントローラ、および半導体記憶装置

Country Status (2)

Country Link
US (1) US20110238890A1 (ja)
JP (1) JP2011203916A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015090724A (ja) * 2013-11-07 2015-05-11 株式会社Genusion 記憶装置及びこれを用いた情報端末
KR20150118778A (ko) * 2014-04-15 2015-10-23 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
WO2016135955A1 (ja) * 2015-02-27 2016-09-01 株式会社日立製作所 不揮発性メモリデバイス
JP2016184402A (ja) * 2015-03-26 2016-10-20 パナソニックIpマネジメント株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
JP2021533467A (ja) * 2018-08-02 2021-12-02 マイクロン テクノロジー,インク. 論理対物理テーブルフラグメント
US11544183B1 (en) * 2013-01-28 2023-01-03 Radian Memory Systems, Inc. Nonvolatile memory controller host-issued address delimited erasure and memory controller remapping of host-address space for bad blocks
US11681614B1 (en) 2013-01-28 2023-06-20 Radian Memory Systems, Inc. Storage device with subdivisions, subdivision query, and write operations
US11914523B1 (en) 2014-09-09 2024-02-27 Radian Memory Systems, Inc. Hierarchical storage device with host controlled subdivisions
US12093533B1 (en) 2013-01-28 2024-09-17 Radian Memory Systems, Inc. Memory management of nonvolatile discrete namespaces

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5330432B2 (ja) * 2011-03-11 2013-10-30 株式会社東芝 データ記憶装置及びテーブル管理方法
US9405670B2 (en) * 2011-06-09 2016-08-02 Tsinghua University Wear leveling method and apparatus
US9389805B2 (en) 2011-08-09 2016-07-12 Seagate Technology Llc I/O device and computing host interoperation
JP2013182313A (ja) * 2012-02-29 2013-09-12 Canon Inc ジョブ処理装置、ジョブ処理装置の制御方法、及びプログラム
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US10007428B2 (en) 2013-08-16 2018-06-26 Micron Technology, Inc. Data storage management
US9298534B2 (en) 2013-09-05 2016-03-29 Kabushiki Kaisha Toshiba Memory system and constructing method of logical block
CN104658550A (zh) * 2013-11-19 2015-05-27 株式会社东芝 磁盘装置及其控制方法
GB201322075D0 (en) 2013-12-13 2014-01-29 Ibm Device for selecting a level for at least one read voltage
US9558107B2 (en) * 2013-12-24 2017-01-31 International Business Machines Corporation Extending useful life of a non-volatile memory by health grading
US9619381B2 (en) * 2013-12-24 2017-04-11 International Business Machines Corporation Collaborative health management in a storage system
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US10365859B2 (en) 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
US9563373B2 (en) 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
WO2016086411A1 (zh) * 2014-12-05 2016-06-09 华为技术有限公司 一种控制器、闪存装置、识别数据块稳定性的方法以及在闪存装置中存储数据的方法
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
TWI631463B (zh) 2016-03-22 2018-08-01 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
TWI599880B (zh) 2016-03-22 2017-09-21 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
US9830098B1 (en) * 2016-07-11 2017-11-28 Silicon Motion, Inc. Method of wear leveling for data storage device
JP2019056981A (ja) 2017-09-19 2019-04-11 東芝メモリ株式会社 メモリシステム
JP7020989B2 (ja) * 2018-04-23 2022-02-16 株式会社メガチップス 不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法
EP3627308A1 (en) * 2018-09-20 2020-03-25 STMicroelectronics Srl A method of managing memories, corresponding circuit, device and computer program product
US11416163B2 (en) * 2020-04-09 2022-08-16 SK Hynix Inc. Systems and methods for dynamic logical block address distribution between multicores
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory
CN113127377B (zh) * 2021-04-08 2022-11-25 武汉导航与位置服务工业技术研究院有限责任公司 一种非易失存储器件写擦除的磨损均衡方法
CN116107491A (zh) * 2021-11-10 2023-05-12 三星电子株式会社 存储器控制器、存储装置和存储装置的操作方法
CN115586874B (zh) * 2022-11-24 2023-03-10 苏州浪潮智能科技有限公司 一种数据块回收方法、装置及电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816482A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd フラッシュメモリを用いた記憶装置およびその記憶制御方法
JPH113287A (ja) * 1997-06-12 1999-01-06 Hitachi Ltd 記憶装置およびそれに用いられる記憶領域管理方法
JP2002032256A (ja) * 2000-07-19 2002-01-31 Matsushita Electric Ind Co Ltd 端末装置
WO2006067839A1 (ja) * 2004-12-22 2006-06-29 Renesas Technology Corp. 記憶装置及びコントローラ
JP2009003880A (ja) * 2007-06-25 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及びその制御方法及び記憶装置
JP2009211152A (ja) * 2008-02-29 2009-09-17 Toshiba Corp 情報処理装置、メモリシステムおよびその制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
WO2011010348A1 (ja) * 2009-07-23 2011-01-27 株式会社日立製作所 フラッシュメモリ装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816482A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd フラッシュメモリを用いた記憶装置およびその記憶制御方法
JPH113287A (ja) * 1997-06-12 1999-01-06 Hitachi Ltd 記憶装置およびそれに用いられる記憶領域管理方法
JP2002032256A (ja) * 2000-07-19 2002-01-31 Matsushita Electric Ind Co Ltd 端末装置
WO2006067839A1 (ja) * 2004-12-22 2006-06-29 Renesas Technology Corp. 記憶装置及びコントローラ
JP2009003880A (ja) * 2007-06-25 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及びその制御方法及び記憶装置
JP2009211152A (ja) * 2008-02-29 2009-09-17 Toshiba Corp 情報処理装置、メモリシステムおよびその制御方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681614B1 (en) 2013-01-28 2023-06-20 Radian Memory Systems, Inc. Storage device with subdivisions, subdivision query, and write operations
US11899575B1 (en) 2013-01-28 2024-02-13 Radian Memory Systems, Inc. Flash memory system with address-based subdivision selection by host and metadata management in storage drive
US11544183B1 (en) * 2013-01-28 2023-01-03 Radian Memory Systems, Inc. Nonvolatile memory controller host-issued address delimited erasure and memory controller remapping of host-address space for bad blocks
US11748257B1 (en) 2013-01-28 2023-09-05 Radian Memory Systems, Inc. Host, storage system, and methods with subdivisions and query based write operations
US12093533B1 (en) 2013-01-28 2024-09-17 Radian Memory Systems, Inc. Memory management of nonvolatile discrete namespaces
JP2015090724A (ja) * 2013-11-07 2015-05-11 株式会社Genusion 記憶装置及びこれを用いた情報端末
KR102289919B1 (ko) 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
JP2015204118A (ja) * 2014-04-15 2015-11-16 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージコントローラ及びストレージ装置
CN105045523A (zh) * 2014-04-15 2015-11-11 三星电子株式会社 存储控制器、存储装置和系统及操作存储控制器的方法
KR20150118778A (ko) * 2014-04-15 2015-10-23 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
US11914523B1 (en) 2014-09-09 2024-02-27 Radian Memory Systems, Inc. Hierarchical storage device with host controlled subdivisions
US10241909B2 (en) 2015-02-27 2019-03-26 Hitachi, Ltd. Non-volatile memory device
JPWO2016135955A1 (ja) * 2015-02-27 2017-09-14 株式会社日立製作所 不揮発性メモリデバイス
WO2016135955A1 (ja) * 2015-02-27 2016-09-01 株式会社日立製作所 不揮発性メモリデバイス
US10324664B2 (en) 2015-03-26 2019-06-18 Panasonic Intellectual Property Management Co., Ltd. Memory controller which effectively averages the numbers of erase times between physical blocks with high accuracy
JP2016184402A (ja) * 2015-03-26 2016-10-20 パナソニックIpマネジメント株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
US11669461B2 (en) 2018-08-02 2023-06-06 Micron Technology, Inc. Logical to physical table fragments
JP2021533467A (ja) * 2018-08-02 2021-12-02 マイクロン テクノロジー,インク. 論理対物理テーブルフラグメント

Also Published As

Publication number Publication date
US20110238890A1 (en) 2011-09-29

Similar Documents

Publication Publication Date Title
JP2011203916A (ja) メモリコントローラ、および半導体記憶装置
US10754769B2 (en) Memory system having persistent garbage collection
US8046526B2 (en) Wear leveling method and controller using the same
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI474324B (zh) 平均讀寫記憶元件的方法及記憶體系統
KR100974954B1 (ko) 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법
EP2396729B1 (en) Memory system and method of controlling memory system
JP4666080B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8489942B1 (en) Memory management method, and memory controller and memory storage device using the same
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11036429B2 (en) Memory control method, memory storage device and memory control circuit unit to determine a source block using interleaving information
US10283196B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP5687649B2 (ja) 半導体記憶装置の制御方法
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4434171B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4952742B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4952741B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4254933B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP6260395B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP2022170214A (ja) メモリシステム及びメモリシステムの制御方法
JP2024033081A (ja) メモリシステムおよび制御方法
CN117636968A (zh) 用于块条写入的混合写入光标

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120807