JP2011159138A - 記憶装置及び記憶装置の制御方法 - Google Patents
記憶装置及び記憶装置の制御方法 Download PDFInfo
- Publication number
- JP2011159138A JP2011159138A JP2010020820A JP2010020820A JP2011159138A JP 2011159138 A JP2011159138 A JP 2011159138A JP 2010020820 A JP2010020820 A JP 2010020820A JP 2010020820 A JP2010020820 A JP 2010020820A JP 2011159138 A JP2011159138 A JP 2011159138A
- Authority
- JP
- Japan
- Prior art keywords
- physical
- writing
- logical
- data
- written
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】 情報処理装置の記憶領域として半導体ディスク装置を搭載する場合、メモリセルの寿命によるデータ信頼性悪化が懸念される。寿命を延ばすため空きメモリセル数を増やしたいが、搭載するメモリ部品数には限界があり、限られた数の中で空きメモリセルを増やす動作上の工夫が必要となる。
【解決手段】 データの書き込み時にメモリセルの物理位置と論理位置に対する書き込み回数等の書き込みデータ情報を記録する。物理/論理位置制御部105で書き込み実施する物理位置判定を行った後に、記録方式制御部106によりデータの更新頻度に応じた記録方式を決定する。判定に基づいてデータの書き込みを行い、更新頻度の高いデータへ優先的に空きメモリセルを割り当てる機能を新たに設ける。
【選択図】 図1
【解決手段】 データの書き込み時にメモリセルの物理位置と論理位置に対する書き込み回数等の書き込みデータ情報を記録する。物理/論理位置制御部105で書き込み実施する物理位置判定を行った後に、記録方式制御部106によりデータの更新頻度に応じた記録方式を決定する。判定に基づいてデータの書き込みを行い、更新頻度の高いデータへ優先的に空きメモリセルを割り当てる機能を新たに設ける。
【選択図】 図1
Description
本発明はNAND型フラッシュメモリを搭載した半導体ディスクの記憶装置において、一定範囲のメモリセルへの書き込み回数をカウントする機能を備え、且つ低価格・長寿命を実現するため、書き込み回数を判断してメモリセル記録方式を制御し、ディスク全体の記録状態を最適化する記憶装置に関する。
半導体ディスクの記憶装置は、NAND型フラッシュメモリセルにデータを記録する方式が主流となっている。メモリセルは、MOSトランジスタ構造をしており、ゲート層の電圧制御により絶縁層に挟まれ電気的に隔離された浮遊ゲート層へ電荷が注入され、帯電状態を保持することでデータを記録している。1つの浮遊ゲート層に対して1種類の帯電状態で1ビットを保守するのはSLC(Single Level Cell)と呼ばれる記録方式で、浮遊ゲート層の帯電状態を部分的に管理して複数の帯電状態を作り出し、2ビット以上を保守するのはMLC(Multi Level Cell)と呼ばれる記録方式である。データの書き込み・消去時は絶縁層を電荷が通過するため、書き込み動作を繰り返すと絶縁層が損傷し、絶縁の役目を果たせなくなる。
上記より、NAND型フラッシュメモリセルに書き込み回数制限が存在することは一般的である。SLC方式とMLC方式で使用するメモリセル自体は同一であるが、MLC方式は複数の帯電状態を管理することから電圧制御が厳しくなり、絶縁層の損傷に敏感になる。そのため、一般的にSLC方式よりMLC方式の方が寿命は短く、管理する帯電状態が増える即ち浮遊ゲート層へ記録するビットが増えるほど寿命は短くなるが、安価で大容量が実現できる。半導体ディスク装置では用途に応じてSLC方式とMLC方式を使い分けており、メモリコントローラで寿命管理を行っている。特開平8−16482号公報にはNAND型フラッシュメモリを用いた記憶装置での寿命管理と書き込み制御技術について記載されている。
近年、NAND型フラッシュメモリのプロセス微細化により小型化・大容量化が進み、SATA・SASといったインターフェースをもつ半導体ディスク装置が従来の磁気ディスク装置の代替として使われている。半導体ディスク装置はデータアクセス性能が高速で低消費電力でありパソコン・サーバ等の情報処理装置へ積極的に搭載される反面、構成が複雑で多数のデータアクセスを伴うシステム特性上、メモリセルの寿命によるデータ信頼性悪化が懸念されている。この問題を対策する手段として、半導体ディスク装置では書き込み回数の少ないメモリセルへ優先的に書き込みを行うウェアレベリング制御を実施している。メモリセルごとの書き込み回数を均一化することで、より多くのメモリセルの書き込み回数制限を活用でき、半導体ディスク装置自身の寿命を延ばしている。
前記の制御により、空きメモリセルの数が多ければ多いほど半導体ディスク装置の寿命は長くなる。しかし、単位面積当たりのメモリセルの数には限界があると共に、メモリ部品の数を増やすほど高価格になり一般的ではなくなってしまう。半導体プロセスの微細化により高集積化が進んだとしても、微細化によって絶縁層の損傷が早くなるという問題もある。限られたメモリセル数の中で空きメモリセルを増やす動作上の工夫が必要となる。
上位装置から書き込み命令を受領した際に、書き込み実施する物理位置と論理位置に対する書き込み回数をそれぞれカウントして、書き込みデータ情報として保存する。また、既に格納されている書き込みデータ情報を読み出して、書き込みデータが更新頻度の高いデータかどうかを半導体ディスク装置自身が判定する機能を設ける。半導体ディスク装置は、判定に基づいて最適なメモリセルへ最適な記録方式で記録する。
すなわち、上位装置から見たアクセス単位である論理位置を、フラッシュメモリの物理位置に割り当て、記録方式としてSLC方式とMLC方式とを使いわけるフラッシュメモリを用いた記憶装置の制御方法において、書き込み処理の際に、物理位置判定と、記録方式判定とを行う。
前記物理位置判定では、フラッシュメモリの複数の物理位置への書き込み回数を管理する第一の管理と、書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置情報およびその物理位置の書き込み回数を管理する第二の管理と、前記第二の管理で管理される物理位置の書き込み回数と前記第一の管理で管理される書き込み回数のうち最小である物理位置の書き込み回数との差分を、所定の閾値と照合し、前記差分が所定の閾値を超えない場合、前記書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置を、書き込み位置と決定し、前記差分が所定の閾値を超える場合、前記メモリブロックの空きブロックのうち最大書き込み回数のブロックへ最小書き込み回数のブロックのデータをコピーし、前記最小書き込み回数のブロックのデータを消去して新たな書き込み位置と決定し、前記第二の管理で管理される書き込み対象となる論理位置の情報が記録されている物理位置を前記新たな書き込み位置である前記最小書き込み回数のブロックの物理位置に変更する。
前記記録方式判定では、前記書き込み対象となる論理位置の書き込み回数を参照し、前記書き込み対象となる論理位置の情報を書き込み実施するメモリブロックの物理位置の記録方式を確認し、前記論理位置の書き込み回数と所定の閾値とを照合し、前記論理位置の書き込み回数が所定の閾値を超えない場合、SLC方式を選択し、前記論理位置の書き込み回数が所定の閾値を超える場合、MLC方式を選択する。
情報処理装置では記憶領域に常に書き込みを行っているわけではなく、基本ソフトウェアやアプリケーションデータ等の読み込みしか行わない情報も大量にある。これらの情報は同一の論理位置に長期間記録されるのが一般的である。
本発明の半導体ディスク装置は、自己の書き込みデータ情報から以後更新されないデータはMLC方式でまとめて記録し、メモリセルの消費を抑える。このことにより、空きメモリセル数を増やすことができ、ウェアレベリング制御と組み合わせることによって、更新頻度の高いデータへ優先的に空きメモリセルを割り当てることができる。このことにより、同一メモリセル数の半導体ディスク装置の寿命を従来より延ばすことが可能である。
以下、図面を用いて、本発明を適用した実施例について詳細に説明する。
図1は、本発明の一実施例の半導体ディスク装置を搭載した情報処理装置の全体図である。構成要素としては、CPU101、メインメモリ102、インターフェース制御IC103、SATAバス104、半導体ディスク装置105から成る。インターフェース制御IC103は、各インターフェースからの情報を統括するメインコントローラ106、処理要求をSATA規格のコマンドやデータへ変換するSATAコントローラ107、SATA規格のディスク装置へ送るコマンドを管理するコマンド制御部108から構成される。
半導体ディスク装置105は、SATAコマンドやデータの受領、応答を行うSATAコントローラ109、受領したSATAコマンドを管理するコマンド制御部110、半導体ディスク装置の実動作を制御するメモリコントローラ111、データの格納場所である半導体メモリ112から構成される。
本情報処理装置は、メインメモリ102に展開されたプログラム及びデータをCPU101で実行することにより成り立つ。メインメモリ102上にない新たな情報が必要な時、又はメインメモリ102に情報を格納しきれない時は、インターフェース制御IC103のメインコントローラ106へCPU101が処理要求を行う。処理要求が届くとSATAコントローラ107からSATAコマンドとして半導体ディスク装置105へ送られる。その際、コマンド制御部108はSATAコントローラ107と連携し、半導体ディスク装置105からのコマンド応答内容や応答時間を管理している。
半導体ディスク装置105は、SATAコマンドをSATAコントローラ109で受領し、その情報をコマンド制御部110、メモリコントローラ111に展開する。メモリコントローラ111は、半導体メモリ112に対して処理要求を実行し、結果をSATAコントローラ109を経由してインターフェース制御IC103へ応答する。メインコントローラ106は、半導体ディスク装置105からの応答結果をCPU101へ、データがある場合はメインメモリ102へ送出する。以上を耐えず繰り替えすことにより、情報処理装置として稼動することができる。
図2は、半導体磁気ディスクのウェアレベリング制御を示したブロック図である。前記の通り半導体ディスク装置は書き込みを行う際に書き込み回数が物理的に少ないメモリセルへ優先的書き込みを行う。図1で示した本発明の実施例の全体図では、メモリコントローラ111がこのウェアレベリング制御を制御している。本図では、フラッシュメモリ205には12のメモリアドレスがあり、その2つを半導体メモリの書き込み単位である1ブロックとして、6つのメモリブロック206〜211で構成されるものとして説明する。尚、メモリブロック209と210はデータのない空きブロックとする。
その上で詳細を説明すると、まず上位装置からの書き込み要求201が書き込みデータ202と共にメモリコントローラ203へ届けられる。このデータはメモリアドレス212のデータの新しいデータとする。メモリコントローラ203は書き込み回数テーブル204を参照し、半導体メモリ205内で物理的に書き込み回数の少ないメモリブロック、多いメモリブロックを検索する。
書き込み回数の検索の結果、メモリブロック211の書き込み回数が少ないとすると、メモリブロック211のデータを空きブロック210へコピーする。コピー時の空きブロックは書き込み回数の多いブロックを優先的に選択する。その後、書き込み対象があるメモリブロック208のデータを読み込み、メモリアドレス212のデータを書き込みデータ202に書き換えた上で、メモリブロック211へそのデータを書き込む。
以上のように、半導体ディスク装置は書き込み時に物理的な書き込み回数の少ない位置と多い位置を置換することで、物理位置の書き込み回数を均一化している。ウェアレベリング制御は空きブロックを常に使用するため、物理的に書き込み回数の少ない空きブロックを多く用意できるほど半導体ディスク装置全体としての寿命は長くできる。欠点としては、半導体メモリはメモリセルがいくつか集まったメモリブロック単位で書き込みを行うため、メモリブロックの一部を書き換える際も全体を書き換えなくてはいけない点である。頻繁に書き換えるデータと書き換えしないデータが混ざっていても、全体を書き換えなければならない。ゆえに、メモリ上のデータ位置の最適化と空きブロック確保が効率的なウェアレベリング制御には重要である。
図3は、本発明の実施例における半導体ディスク装置の読み出し書き込みのデータ処理ブロック図である。本ブロック図は半導体ディスク装置105へ読み出し書き込み処理を要求した際に、コマンド制御部110、メモリコントローラ111が行うデータ処理を説明したものである
コマンド制御部110内のコマンド実行制御部301で読み出し書き込み要求を受けると、上位装置からの処理要求302としてメモリコントローラ111の各部に展開される。読み出しの場合は、読み出し書き込み制御部304が物理/論理位置制御部305に対して読み出しを行う論理位置を示す論理アドレスを展開し、実際にデータが格納されている半導体メモリの物理位置を得る。ここで得た情報を基にメモリチップ308の中の該当位置から要求されたデータを読み出し、データバッファ303に一時記録する。
コマンド制御部110内のコマンド実行制御部301で読み出し書き込み要求を受けると、上位装置からの処理要求302としてメモリコントローラ111の各部に展開される。読み出しの場合は、読み出し書き込み制御部304が物理/論理位置制御部305に対して読み出しを行う論理位置を示す論理アドレスを展開し、実際にデータが格納されている半導体メモリの物理位置を得る。ここで得た情報を基にメモリチップ308の中の該当位置から要求されたデータを読み出し、データバッファ303に一時記録する。
一時記録されたデータはエラー検出/訂正制御部309でエラーチェックし、エラーが検出されなければコマンド応答制御部310にデータを送信する。エラーが検出されたらエラーデータ訂正やリトライを試み、修復可能であれば修復データを、修復不可能であればエラー内容をコマンド応答制御部310に送信する。
書き込みの場合は、まず上位装置からの処理要求302として転送されてきたデータをデータバッファ303に一時記録する。その後、読み出しの場合と同様に読み出し書き込み制御部304が、物理/論理位置制御部305に対して書き込みを行う論理位置を示す論理アドレスを展開する。
物理/論理位置制御部305は、書き込み回数制限を考慮して半導体メモリ全体の物理位置の書き込み回数を制御し、物理位置の書き込み回数が少ないメモリブロックを判定して、その物理位置を読み出し書き込み制御部304へ送信する。それと同時に論理アドレスを記録方式制御部306へ展開する。
記録方式制御部306は、論理位置の書き込み回数を制御するために論理アドレスごとの書き込み回数をカウントし、論理位置の書き込み回数や直近の書き込み論理アドレスから今回の書き込みで使用する記録方式を判定し、読み出し書き込み制御部304へ送信する。
書き込みデータ情報テーブル307は、物理/論理位置制御部305が制御する物理位置の書き込み回数、及び記録方式制御部306が制御する論理位置の書き込み回数と直近の書き込み論理アドレスをそれぞれ別々のテーブルで管理している。
以上で得た情報を基にメモリチップ308の中の該当位置へデータバッファ303に一時記録されたデータを書き込み、実行結果をコマンド制御部110内のコマンド応答制御部310へ送信する。コマンド応答制御部310は送られてきた実行結果やデータを上位装置へ送出して、処理要求に対する応答とする。
図4は、本実施例で書き込み処理を行う際に、物理/論理位置制御部305で実施されるメモリブロックの物理位置の書き込み回数を考慮した物理位置判定の処理フロー図である。
まず、上位装置の要求によらない定期的な処理として、書き込みデータ情報テーブル307に記録される書き込みデータ情報を読み出し、書き込み回数が最少であるメモリブロックの物理位置とその回数を記録しておく(ステップ401)。
読み出し書き込み制御部304から書き込み対象の論理アドレスが展開された時には、物理位置/論理アドレスの関連付け情報から、展開された論理アドレスの情報が記録されているメモリセルが含まれるメモリブロックの物理位置を割り出す。この物理位置のメモリブロックに対して今回の書き込み実施することを書き込みデータ情報に記録すると共に、このメモリブロックの現在の書き込み回数を読み出す(ステップ402)。
次に、ステップ402で読み出したメモリブロックの書き込み回数値とステップ401で読み出した最少ブロックの書き込み回数値の差を決められた閾値と照合する(ステップ403)。
閾値を超えない場合はステップ402のメモリブロックの物理位置を、そのまま書き込み位置として最終決定する(ステップ404)。
もし閾値を超えた場合、ステップ402で読み出したメモリブロックは書き込み回数が多いことを表しており、書き込み位置を変更する必要がある。そのため、空きブロックのうち最大書き込み回数のブロックへ最少ブロックのデータをコピー(ステップ405)し、最少ブロックのデータを消去する。この最少ブロックの物理位置を新しい書き込み位置に決定し、ステップ402で読み出したメモリブロックの論理アドレスと最少ブロックの論理アドレスを変更する (ステップ406)。
この閾値は物理位置判定が行われる頻度を決める値である。閾値が小さいほどステップ405、406の書き込み位置変更が頻繁に行われ、全メモリブロックの書き込み回数が均一に近くなる制御となり、書き込み回数制御の精度が上がる。ただし、過度に書き込み位置変更が行われると書き込み処理が複雑化し、書き込み処理性能への影響が無視できなくなる。装置に要求される性能と寿命を考慮して閾値設定する必要がある。
以上により、今回の書き込みを行う論理アドレスは物理的な書き込み回数の少ないメモリブロックに書き込まれ、半導体メモリの書き込み回数制限を有効に活用できる。
図5は、本実施例で読み出し書き込み制御部304と記録方式制御部306により制御される書き込み処理時のメモリセル記録方式(a)と記録状態図(b)である。
図5の(a)はSLC方式の記録状態図である。メモリセルは浮遊ゲート層の帯電状態でデータを記録するが、その記録状態を表すため縦軸にメモリセル数、横軸に閾値電圧Vthを取りグラフとすると、帯電していない状態[0]501と帯電状態[1]502に分類される。閾値電圧はメモリセルによってばらつきが出るため、閾値電圧の分布はほぼ正規分布になる。読み出し書き込み制御部304はメモリセルの帯電状態を[0]と[1]のように制御することで、0又は1の1bitのデータを記録する(503)。
続いて図5の(b)は、MLC方式の記録状態図である。MLC方式では帯電していない状態[0]504に加えて、電圧の大きさにより[1]〜[3]の3種類の帯電状態を持つ(505〜507)。読み出し書き込み制御部304は帯電状態を細かく制御して[0]〜[3]のようにすることで、504のように1メモリセルへ2bitのデータを記録する。記録方式制御部306はこの2種類の記録方式から各書き込みごとに最適な記録方式を選択する。
図6は、本実施例で書き込み処理を行う際に、記録方式制御部306で実施される論理位置の書き込み回数を考慮した記録方式判定の処理フロー図である。
物理/論理位置制御部305から論理アドレスが展開され、今回の書き込み実施することを書き込みデータ情報テーブル307に記録される書き込みデータ情報へ記録すると共に、論理位置の書き込み回数を知るためにこの論理アドレスの現在の書き込み回数を読み出す(ステップ601)。
また、この論理アドレスの情報を書き込み実施するメモリセルが含まれるメモリブロックの物理位置を割り出し、そのメモリブロックの記録方式を確認する(ステップ602)。
次に、ステップ601で読み出した書き込み回数を決められた閾値と照合する(ステップ603)。
この閾値はMLC方式でのメモリセルの物理的な書き込み回数制限と装置稼働時間から算出する。本実施例ではメモリセルのMLC方式での物理的な書き込み回数制限を1万回、装置寿命を5年と考えて1日あたりの書き込み頻度を試算すると10000回/(365日×5年)=5.48回となり、1日あたり約5回の割合で同じメモリセルを更新し続けても装置寿命を満足できる。この装置寿命を満足できる書き込み頻度を基準とし、論理アドレスごとの書き込み回数閾値を1日あたり基準書き込み頻度×稼働日数で算出して閾値設定する。閾値を超えた論理アドレスは更新頻度が高いデータが格納される論理アドレスと判断し、記録方式として物理的な書き込み回数制限が約10倍多いSLC方式を選択する(ステップ604)。逆に閾値を下回る論理アドレスは更新頻度の低いデータが格納される論理アドレスと判断し、記録方式としてMLC方式を選択する(ステップ605)。
ただし、書き込みデータ情報内の直近の書き込み論理アドレスを記録する書き込みアドレステーブルを参照して、同一アドレス又は周囲のアドレスが複数あることを確認(ステップ606)した場合には、直近で多くの書き込みが行われていると判断し、論理アドレスごとの書き込み回数に関係なくSLC方式を選択するものとする。以上のようにして書き込み方式を決定(ステップ607)すると同時に、書き込みアドレステーブルへ今回書き込みする論理アドレスを登録(ステップ608)し、以後の書き込みに対する記録方式決定の判断材料とする。情報処理装置のデータ更新頻度はプログラムのログデータや管理データのように毎時毎分更新されるものから、ソフトウェア・プログラム本体データのように月1回以下の更新頻度のものまで様々である。また、これらは同一論理アドレスへ記録され続けるため、論理アドレスごとの書き込み回数から書き込みデータの更新頻度判断が可能となる。
図7は、本実施例において書き込み処理を行った時の半導体ディスク装置の処理フローである。前記の通り、書き込み処理を行う前に書き込みするメモリブロックの物理位置の決定と、記録方式の決定が行われる(ステップ701〜702)。
ここで、書き込みを行う物理位置の記録方式が変化するかで処理フローが変わる(ステップ703)。
記録方式が変化しない場合は決定された物理位置へそのまま書き込み及び消去を行い(ステップ704)、処理終了となる。
記録方式が以前より変化する場合は、MLC方式からSLC方式になるのか若しくはその逆なのかによって、処理フローがさらに変わることになる(ステップ705)。
MLC方式からSLC方式に変わる場合は、同一データを記録するとしてもより多くのメモリブロックが必要となる。そのため、ステップ701で決定された物理位置に加え、不足分は不良ブロック用のスペアブロックを割り当てて、書き込み及び消去を行う(ステップ706)。その後、書き込みを行ったメモリブロックに対応した物理位置へ適切に論理アドレスを関連付け(ステップ707)、処理終了とする。このように更新頻度が高いアドレスには積極的にSLC方式を使用し、半導体メモリの劣化を抑える。
一方、SLC方式からMLC方式に変わる場合は、メモリブロック内のメモリセルが余ってしまう。そこで同種のデータが記録されていると思われる近傍の論理アドレスの論理位置の書き込み回数を検索し(ステップ708)、書き込み回数の少ない論理アドレスのデータを読み出す(ステップ709)。新たに読み出したデータを一緒に書き込み、物理位置の書き込み回数が少ない元の論理アドレスのメモリブロックを消去し(ステップ710)、適切に論理アドレスを関連付けて(ステップ711)処理完了とすることで、空きブロックを増やすことができる。空きブロックはスペアブロックとして、更新頻度の高いアドレスに使用できるようにする。
図8は本実施例において書き込み処理を行った時の、記録方式(a)とデータの遷移図(b)である。
図8の(a)は、ステップ702で書き込むデータの更新頻度が高いと判断された結果、書き込み対象メモリブロックをMLC方式からSLC方式に変化させる場合(ステップ706、707)のデータ遷移図である。
メモリブロック801〜804にMLC方式で4アドレス分のデータが記録され、メモリブロック805、806は空きブロックとし、新しい書き込みデータ807がメモリブロック804の一部データを更新するものとして説明する。
ステップ701でメモリブロック803が書き込み物理位置として決定されたとすると、まずメモリブロック803のデータが空きブロック805へコピーされる。同時に2ビット記録のMLC方式から1ビット記録のSLC方式に記録方式を変えるため、メモリブロック804のデータを2分割する。
その後、2分割したデータの片方をメモリブロック803へ書き込み、もう片方を空きブロック806へ書き込みする。書き込み完了後メモリブロック804のデータは消去し、論理アドレスを新しい物理位置に関連付けて完了である。このようにSLC方式で記録することで更新頻度の高いデータを細分化することが可能であるが、空きブロックを消費する。
一方で、図8の(b)は、ステップ702で書き込むデータの更新頻度が低いと判断された結果、書き込み対象メモリブロックをSLC方式からMLC方式に変化させる場合(ステップ708〜711)のデータ遷移図である。
メモリブロック808〜813にSLC方式で2アドレス分のデータが記録され、メモリブロック812、813は空きブロックとし、新しい書き込みデータ814がメモリブロック811のデータを更新するものとして説明する。
ステップ701でメモリブロック810が書き込み物理位置として決定されたとすると、図8(a)の場合と同様にメモリブロック810のデータが空きブロック812へコピーされる。こちらは1ビット記録のSLC方式から2ビット記録のMLC方式へ記録方式が変わるため、記録のためには2倍のデータが必要となる。そこでステップ708の書き込み回数検索で論理位置の書き込み回数の少ないデータが記録されたメモリブロック809を探し出す。
その後、メモリブロック809のデータを読み込み、新しいデータ814と一緒にメモリブロック810へまとめ書きする。書き込み完了後メモリブロック809及び811のデータは消去し、論理アドレスを新しい物理位置に関連付けて完了である。このようにMLC方式で記録することで、更新頻度の低いデータをまとめ書きすることができ、空きブロックを増やすことができる。
本実施例で説明したように、論理アドレスごとの書き込み回数から導き出されるデータの更新頻度の要素から、更新頻度による記録方式制御ができる。更新頻度の少ないデータはMLC方式でまとめ書きすることで空きブロックを確保し、それによってできた空きブロックを更新頻度の高いデータで使用することで、実質的な装置寿命を延ばすことができる。
一般的に更新頻度の高いデータはデータ量が小さく、更新頻度の低いソフトウェア・プログラム本体データはデータ量が大きいという特徴があり、本実施例により多数の空きブロックが確保できると期待できる。また、メモリブロック内のデータを更新頻度によってまとまった状態となるため、従来のウェアレベリング制御のようなメモリブロックの一部を書き換える動作が減り、無用な書き換えを抑える効果もある。メモリブロックの物理位置の書き込み回数からメモリブロックを置換する従来のウェアレベリング制御の考え方と組み合わせることによって、より最適化された書き込み制御が可能となる。
以上説明した実施例ではインターフェース仕様としてSATA仕様で説明したが、半導体ディスク装置のインターフェースによらず他の仕様でも実現できる。また、物理位置判定方法として既にデータの記録された部分も書き込み回数検索の対象にする仕様としたが、データコピーのオーバーヘッドによるパフォーマンスへの影響を考え空きブロックのみを使う仕様としてもよい。また、記録方式判定はSLC方式とMLC方式の2種類の記録方式としたが、閾値を細分化して2ビットMLC、3ビットMLC等のように記録方式を増やしても実現可能である。
101:CPU、102:メインメモリ、103:インターフェース制御IC、104:SATAバス、105:半導体ディスク装置、106:メインコントローラ、107:インターフェース制御ICのSATAコントローラ、108:インターフェース制御ICのコマンド制御部、109:半導体ディスク装置のSATAコントローラ、110:半導体ディスク装置のコマンド制御部、111:メモリコントローラ、112:半導体メモリ、201:上位装置からの書き込み要求、202:書き込みデータ、203:メモリコントローラ、204:書き込み回数テーブル、205:半導体メモリ、206〜211:メモリブロック、212:書き込み対象メモリアドレス、301:コマンド実行制御部、302:上位装置からの処理要求、303:データバッファ、304:読み出し書き込み制御部、305:物理/論理位置制御部、306:記録方式制御部、307:書き込みデータ情報テーブル、308:メモリチップ、309:エラー検出/訂正制御部、310:コマンド応答制御部
Claims (5)
- 上位装置から見たアクセス単位である論理位置を、フラッシュメモリの物理位置に割り当て、記録方式としてSLC方式とMLC方式とを使いわけるフラッシュメモリを用いた記憶装置の制御方法において、
書き込み処理の際に、物理位置判定と、記録方式判定とを行い、
前記物理位置判定では、
フラッシュメモリの複数の物理位置への書き込み回数を管理する第一の管理と、
書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置情報およびその物理位置の書き込み回数を管理する第二の管理と、
前記第二の管理で管理される物理位置の書き込み回数と前記第一の管理で管理される書き込み回数のうち最小である物理位置の書き込み回数との差分を、所定の閾値と照合し、
前記差分が所定の閾値を超えない場合、前記書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置を、書き込み位置と決定し、
前記差分が所定の閾値を超える場合、前記メモリブロックの空きブロックのうち最大書き込み回数のブロックへ最小書き込み回数のブロックのデータをコピーし、前記最小書き込み回数のブロックのデータを消去して新たな書き込み位置と決定し、前記第二の管理で管理される書き込み対象となる論理位置の情報が記録されている物理位置を前記新たな書き込み位置である前記最小書き込み回数のブロックの物理位置に変更し、
前記記録方式判定では、
前記書き込み対象となる論理位置の書き込み回数を参照し、
前記書き込み対象となる論理位置の情報を書き込み実施するメモリブロックの物理位置の記録方式を確認し、
前記論理位置の書き込み回数と所定の閾値とを照合し、
前記論理位置の書き込み回数が所定の閾値を超えない場合、SLC方式を選択し、
前記論理位置の書き込み回数が所定の閾値を超える場合、MLC方式を選択する
ことを特徴とする記憶装置の制御方法。 - 前記記憶装置は、
前記物理位置判定を行う物理/論理位置制御部と、
前記記録方式判定を行う記録方式判定部と、
前記物理位置の書き込み回数および前記論理位置の書き込み回数を管理する書き込みデータ情報テーブルと、
前記物理/論理位置制御部で決定される書き込み位置に、前記記録方式判定部で選択される記録方式で記録処理を行う書き込み制御部
とを備えることを特徴とする請求項1記載の記憶装置の制御方法。 - 前記記録方式判定では、更に、
前記書き込みデータ情報テーブルを参照し、同一の論理位置又は周囲の論理位置が複数ある場合、SLC方式を選択する
ことを特徴とする請求項2記載の記憶装置の制御方法。 - 前記記録方式判定で選択される記録方式が、
前回の書き込み処理から変化しない場合、決定された物理位置への書き込み/消去を継続し、
前回の書き込み処理から変化し、MLC方式からSLC方式となる場合、更にスペアブロックを割り当てて、書き込み及び消去を行い、書き込みを行ったメモリブロックに対応した物理位置へ適切に論理アドレスを関連付け、
前回の書き込み処理から変化し、SLC方式からMLC方式となる場合、同種のデータが記録されていると思われる近傍の論理アドレスの論理位置の書き込み回数を検索し、書き込み回数の少ない論理アドレスのデータを読み出し、新たに読み出したデータを一緒に書き込み、物理位置の書き込み回数が少ない元の論理アドレスのメモリブロックを消去し、論理アドレスを関連付ける
ことを特徴とする請求項1記載の記憶装置の制御方法。 - 上位装置から見たアクセス単位である論理位置を、フラッシュメモリの物理位置に割り当て、記録方式としてSLC方式とMLC方式とを使いわけるフラッシュメモリを用いた記憶装置において、
前記記憶装置は、物理位置判定を行う物理/論理位置制御部と、記録方式判定を行う記録方式判定部と、物理位置の書き込み回数および前記論理位置の書き込み回数を管理する書き込みデータ情報テーブルと、前記物理/論理位置制御部で決定される書き込み位置に前記記録方式判定部で選択される記録方式で記録処理を行う書き込み制御部とを備え、
物理/論理位置制御部は、前記物理位置判定として、
フラッシュメモリの複数の物理位置への書き込み回数を管理する第一の管理ステップと、
書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置情報およびその物理位置の書き込み回数を管理する第二の管理ステップと、
前記第二の管理で管理される物理位置の書き込み回数と前記第一の管理で管理される書き込み回数のうち最小である物理位置の書き込み回数との差分を、所定の閾値と照合するステップとを実行し、
前記差分が所定の閾値を超えない場合、前記書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置を、書き込み位置と決定し、
前記差分が所定の閾値を超える場合、前記メモリブロックの空きブロックのうち最大書き込み回数のブロックへ最小書き込み回数のブロックのデータをコピーし、前記最小書き込み回数のブロックのデータを消去して新たな書き込み位置と決定し、前記第二の管理で管理される書き込み対象となる論理位置の情報が記録されている物理位置を前記新たな書き込み位置である前記最小書き込み回数のブロックの物理位置に変更し、
記録方式判定部は、前記記録方式判定として、
前記書き込み対象となる論理位置の書き込み回数を参照する参照ステップと、
前記書き込み対象となる論理位置の情報を書き込み実施するメモリブロックの物理位置の記録方式を確認する確認ステップと、
前記論理位置の書き込み回数と所定の閾値とを照合する照合ステップとを実行し、
前記論理位置の書き込み回数が所定の閾値を超えない場合、SLC方式を選択し、
前記論理位置の書き込み回数が所定の閾値を超える場合、MLC方式を選択する
ことを特徴とする記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010020820A JP2011159138A (ja) | 2010-02-02 | 2010-02-02 | 記憶装置及び記憶装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010020820A JP2011159138A (ja) | 2010-02-02 | 2010-02-02 | 記憶装置及び記憶装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011159138A true JP2011159138A (ja) | 2011-08-18 |
Family
ID=44591027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010020820A Pending JP2011159138A (ja) | 2010-02-02 | 2010-02-02 | 記憶装置及び記憶装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011159138A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8976589B2 (en) | 2013-03-14 | 2015-03-10 | Kabushiki Kaisha Toshiba | Storage device |
JP2018073240A (ja) * | 2016-11-01 | 2018-05-10 | 富士通株式会社 | 制御回路、半導体記憶装置、及び半導体記憶装置の制御方法 |
-
2010
- 2010-02-02 JP JP2010020820A patent/JP2011159138A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8976589B2 (en) | 2013-03-14 | 2015-03-10 | Kabushiki Kaisha Toshiba | Storage device |
JP2018073240A (ja) * | 2016-11-01 | 2018-05-10 | 富士通株式会社 | 制御回路、半導体記憶装置、及び半導体記憶装置の制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5728672B2 (ja) | ハイブリッドメモリ管理 | |
US9063844B2 (en) | Non-volatile memory management system with time measure mechanism and method of operation thereof | |
KR101849440B1 (ko) | 동적 판독에 사용하기 위한 스크럽 기술 | |
US8200904B2 (en) | System and method for clearing data from a cache | |
US9298603B2 (en) | NAND flash-based storage device and methods of using | |
US7702880B2 (en) | Hybrid mapping implementation within a non-volatile memory system | |
US10740242B2 (en) | Sensing device data caching | |
US20160306553A1 (en) | High-Priority NAND Operations Management | |
US20090172255A1 (en) | Wear leveling method and controller using the same | |
US20110107016A1 (en) | Solid state storage systems and methods for flexibly controlling wear leveling | |
US20160306591A1 (en) | Open Erase Block Read Automation | |
JP2008529130A (ja) | フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング | |
WO2011068109A1 (ja) | 記憶装置、およびメモリコントローラ | |
US10283196B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
JP2016004387A (ja) | ストレージシステム、メモリコントローラ、および制御方法 | |
US20100205357A1 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
JP5300496B2 (ja) | 半導体記憶装置、ホスト機器及び半導体記憶システム | |
CN105955672B (zh) | 用于灵活控制损耗均衡的固态存储系统及方法 | |
US20110138110A1 (en) | Method and control unit for performing storage management upon storage apparatus and related storage apparatus | |
JP5579135B2 (ja) | データ記憶装置、メモリ制御装置及びメモリ制御方法 | |
JP5494086B2 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
JP2011159138A (ja) | 記憶装置及び記憶装置の制御方法 | |
KR101027687B1 (ko) | 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법 | |
JP3934659B1 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2003308242A (ja) | 半導体記憶装置及びその制御方法 |