(57)【要約】【課題】  情報処理装置の記憶領域として半導体ディスク装置を搭載する場合、メモリセルの寿命によるデータ信頼性悪化が懸念される。寿命を延ばすため空きメモリセル数を増やしたいが、搭載するメモリ部品数には限界があり、限られた数の中で空きメモリセルを増やす動作上の工夫が必要となる。【解決手段】  データの書き込み時にメモリセルの物理位置と論理位置に対する書き込み回数等の書き込みデータ情報を記録する。物理/論理位置制御部１０５で書き込み実施する物理位置判定を行った後に、記録方式制御部１０６によりデータの更新頻度に応じた記録方式を決定する。判定に基づいてデータの書き込みを行い、更新頻度の高いデータへ優先的に空きメモリセルを割り当てる機能を新たに設ける。【選択図】  図１
2011159138.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から見たアクセス単位である論理位置を、フラッシュメモリの物理位置に割り当て、記録方式としてSLC方式とMLC方式とを使いわけるフラッシュメモリを用いた記憶装置の制御方法において、
書き込み処理の際に、物理位置判定と、記録方式判定とを行い、
前記物理位置判定では、
フラッシュメモリの複数の物理位置への書き込み回数を管理する第一の管理と、
書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置情報およびその物理位置の書き込み回数を管理する第二の管理と、
前記第二の管理で管理される物理位置の書き込み回数と前記第一の管理で管理される書き込み回数のうち最小である物理位置の書き込み回数との差分を、所定の閾値と照合し、
前記差分が所定の閾値を超えない場合、前記書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置を、書き込み位置と決定し、
前記差分が所定の閾値を超える場合、前記メモリブロックの空きブロックのうち最大書き込み回数のブロックへ最小書き込み回数のブロックのデータをコピーし、前記最小書き込み回数のブロックのデータを消去して新たな書き込み位置と決定し、前記第二の管理で管理される書き込み対象となる論理位置の情報が記録されている物理位置を前記新たな書き込み位置である前記最小書き込み回数のブロックの物理位置に変更し、
前記記録方式判定では、
前記書き込み対象となる論理位置の書き込み回数を参照し、
前記書き込み対象となる論理位置の情報を書き込み実施するメモリブロックの物理位置の記録方式を確認し、
前記論理位置の書き込み回数と所定の閾値とを照合し、
前記論理位置の書き込み回数が所定の閾値を超えない場合、SLC方式を選択し、
前記論理位置の書き込み回数が所定の閾値を超える場合、MLC方式を選択する
ことを特徴とする記憶装置の制御方法。
【請求項２】
前記記憶装置は、
前記物理位置判定を行う物理/論理位置制御部と、
前記記録方式判定を行う記録方式判定部と、
前記物理位置の書き込み回数および前記論理位置の書き込み回数を管理する書き込みデータ情報テーブルと、
前記物理/論理位置制御部で決定される書き込み位置に、前記記録方式判定部で選択される記録方式で記録処理を行う書き込み制御部
とを備えることを特徴とする請求項１記載の記憶装置の制御方法。
【請求項３】
前記記録方式判定では、更に、
前記書き込みデータ情報テーブルを参照し、同一の論理位置又は周囲の論理位置が複数ある場合、SLC方式を選択する
ことを特徴とする請求項２記載の記憶装置の制御方法。
【請求項４】
前記記録方式判定で選択される記録方式が、
前回の書き込み処理から変化しない場合、決定された物理位置への書き込み/消去を継続し、
前回の書き込み処理から変化し、MLC方式からSLC方式となる場合、更にスペアブロックを割り当てて、書き込み及び消去を行い、書き込みを行ったメモリブロックに対応した物理位置へ適切に論理アドレスを関連付け、
前回の書き込み処理から変化し、SLC方式からMLC方式となる場合、同種のデータが記録されていると思われる近傍の論理アドレスの論理位置の書き込み回数を検索し、書き込み回数の少ない論理アドレスのデータを読み出し、新たに読み出したデータを一緒に書き込み、物理位置の書き込み回数が少ない元の論理アドレスのメモリブロックを消去し、論理アドレスを関連付ける
ことを特徴とする請求項１記載の記憶装置の制御方法。
【請求項５】
上位装置から見たアクセス単位である論理位置を、フラッシュメモリの物理位置に割り当て、記録方式としてSLC方式とMLC方式とを使いわけるフラッシュメモリを用いた記憶装置において、
前記記憶装置は、物理位置判定を行う物理/論理位置制御部と、記録方式判定を行う記録方式判定部と、物理位置の書き込み回数および前記論理位置の書き込み回数を管理する書き込みデータ情報テーブルと、前記物理/論理位置制御部で決定される書き込み位置に前記記録方式判定部で選択される記録方式で記録処理を行う書き込み制御部とを備え、
物理/論理位置制御部は、前記物理位置判定として、
フラッシュメモリの複数の物理位置への書き込み回数を管理する第一の管理ステップと、
書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置情報およびその物理位置の書き込み回数を管理する第二の管理ステップと、
前記第二の管理で管理される物理位置の書き込み回数と前記第一の管理で管理される書き込み回数のうち最小である物理位置の書き込み回数との差分を、所定の閾値と照合するステップとを実行し、
前記差分が所定の閾値を超えない場合、前記書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置を、書き込み位置と決定し、
前記差分が所定の閾値を超える場合、前記メモリブロックの空きブロックのうち最大書き込み回数のブロックへ最小書き込み回数のブロックのデータをコピーし、前記最小書き込み回数のブロックのデータを消去して新たな書き込み位置と決定し、前記第二の管理で管理される書き込み対象となる論理位置の情報が記録されている物理位置を前記新たな書き込み位置である前記最小書き込み回数のブロックの物理位置に変更し、
記録方式判定部は、前記記録方式判定として、
前記書き込み対象となる論理位置の書き込み回数を参照する参照ステップと、
前記書き込み対象となる論理位置の情報を書き込み実施するメモリブロックの物理位置の記録方式を確認する確認ステップと、
前記論理位置の書き込み回数と所定の閾値とを照合する照合ステップとを実行し、
前記論理位置の書き込み回数が所定の閾値を超えない場合、SLC方式を選択し、
前記論理位置の書き込み回数が所定の閾値を超える場合、MLC方式を選択する
ことを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はNAND型フラッシュメモリを搭載した半導体ディスクの記憶装置において、一定範囲のメモリセルへの書き込み回数をカウントする機能を備え、且つ低価格・長寿命を実現するため、書き込み回数を判断してメモリセル記録方式を制御し、ディスク全体の記録状態を最適化する記憶装置に関する。
【背景技術】
【０００２】
半導体ディスクの記憶装置は、NAND型フラッシュメモリセルにデータを記録する方式が主流となっている。メモリセルは、MOSトランジスタ構造をしており、ゲート層の電圧制御により絶縁層に挟まれ電気的に隔離された浮遊ゲート層へ電荷が注入され、帯電状態を保持することでデータを記録している。1つの浮遊ゲート層に対して1種類の帯電状態で1ビットを保守するのはSLC(Single Level Cell)と呼ばれる記録方式で、浮遊ゲート層の帯電状態を部分的に管理して複数の帯電状態を作り出し、2ビット以上を保守するのはMLC(Multi Level Cell)と呼ばれる記録方式である。データの書き込み・消去時は絶縁層を電荷が通過するため、書き込み動作を繰り返すと絶縁層が損傷し、絶縁の役目を果たせなくなる。
【０００３】
上記より、NAND型フラッシュメモリセルに書き込み回数制限が存在することは一般的である。SLC方式とMLC方式で使用するメモリセル自体は同一であるが、MLC方式は複数の帯電状態を管理することから電圧制御が厳しくなり、絶縁層の損傷に敏感になる。そのため、一般的にSLC方式よりMLC方式の方が寿命は短く、管理する帯電状態が増える即ち浮遊ゲート層へ記録するビットが増えるほど寿命は短くなるが、安価で大容量が実現できる。半導体ディスク装置では用途に応じてSLC方式とMLC方式を使い分けており、メモリコントローラで寿命管理を行っている。特開平８−１６４８２号公報にはNAND型フラッシュメモリを用いた記憶装置での寿命管理と書き込み制御技術について記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１６４８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、NAND型フラッシュメモリのプロセス微細化により小型化・大容量化が進み、SATA・SASといったインターフェースをもつ半導体ディスク装置が従来の磁気ディスク装置の代替として使われている。半導体ディスク装置はデータアクセス性能が高速で低消費電力でありパソコン・サーバ等の情報処理装置へ積極的に搭載される反面、構成が複雑で多数のデータアクセスを伴うシステム特性上、メモリセルの寿命によるデータ信頼性悪化が懸念されている。この問題を対策する手段として、半導体ディスク装置では書き込み回数の少ないメモリセルへ優先的に書き込みを行うウェアレベリング制御を実施している。メモリセルごとの書き込み回数を均一化することで、より多くのメモリセルの書き込み回数制限を活用でき、半導体ディスク装置自身の寿命を延ばしている。
【０００６】
前記の制御により、空きメモリセルの数が多ければ多いほど半導体ディスク装置の寿命は長くなる。しかし、単位面積当たりのメモリセルの数には限界があると共に、メモリ部品の数を増やすほど高価格になり一般的ではなくなってしまう。半導体プロセスの微細化により高集積化が進んだとしても、微細化によって絶縁層の損傷が早くなるという問題もある。限られたメモリセル数の中で空きメモリセルを増やす動作上の工夫が必要となる。
【課題を解決するための手段】
【０００７】
上位装置から書き込み命令を受領した際に、書き込み実施する物理位置と論理位置に対する書き込み回数をそれぞれカウントして、書き込みデータ情報として保存する。また、既に格納されている書き込みデータ情報を読み出して、書き込みデータが更新頻度の高いデータかどうかを半導体ディスク装置自身が判定する機能を設ける。半導体ディスク装置は、判定に基づいて最適なメモリセルへ最適な記録方式で記録する。
【０００８】
すなわち、上位装置から見たアクセス単位である論理位置を、フラッシュメモリの物理位置に割り当て、記録方式としてSLC方式とMLC方式とを使いわけるフラッシュメモリを用いた記憶装置の制御方法において、書き込み処理の際に、物理位置判定と、記録方式判定とを行う。
【０００９】
前記物理位置判定では、フラッシュメモリの複数の物理位置への書き込み回数を管理する第一の管理と、書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置情報およびその物理位置の書き込み回数を管理する第二の管理と、前記第二の管理で管理される物理位置の書き込み回数と前記第一の管理で管理される書き込み回数のうち最小である物理位置の書き込み回数との差分を、所定の閾値と照合し、前記差分が所定の閾値を超えない場合、前記書き込み対象となる論理位置の情報が記録されているメモリブロックの物理位置を、書き込み位置と決定し、前記差分が所定の閾値を超える場合、前記メモリブロックの空きブロックのうち最大書き込み回数のブロックへ最小書き込み回数のブロックのデータをコピーし、前記最小書き込み回数のブロックのデータを消去して新たな書き込み位置と決定し、前記第二の管理で管理される書き込み対象となる論理位置の情報が記録されている物理位置を前記新たな書き込み位置である前記最小書き込み回数のブロックの物理位置に変更する。
【００１０】
前記記録方式判定では、前記書き込み対象となる論理位置の書き込み回数を参照し、前記書き込み対象となる論理位置の情報を書き込み実施するメモリブロックの物理位置の記録方式を確認し、前記論理位置の書き込み回数と所定の閾値とを照合し、前記論理位置の書き込み回数が所定の閾値を超えない場合、SLC方式を選択し、前記論理位置の書き込み回数が所定の閾値を超える場合、MLC方式を選択する。
【発明の効果】
【００１１】
情報処理装置では記憶領域に常に書き込みを行っているわけではなく、基本ソフトウェアやアプリケーションデータ等の読み込みしか行わない情報も大量にある。これらの情報は同一の論理位置に長期間記録されるのが一般的である。
【００１２】
本発明の半導体ディスク装置は、自己の書き込みデータ情報から以後更新されないデータはMLC方式でまとめて記録し、メモリセルの消費を抑える。このことにより、空きメモリセル数を増やすことができ、ウェアレベリング制御と組み合わせることによって、更新頻度の高いデータへ優先的に空きメモリセルを割り当てることができる。このことにより、同一メモリセル数の半導体ディスク装置の寿命を従来より延ばすことが可能である。
【図面の簡単な説明】
【００１３】
【図１】実施例の半導体ディスク装置を搭載した情報処理装置の全体図
【図２】半導体ディスク装置のウェアレベリング制御ブロック図
【図３】実施例の半導体ディスク装置のデータ処理ブロック図
【図４】実施例の半導体ディスク装置の物理位置判定処理フロー図
【図５】半導体ディスク装置のメモリセル記録方式と記録状態図
【図６】実施例の半導体ディスク装置の記録方式判定処理フロー図
【図７】実施例の半導体ディスク装置の書き込み処理フロー図
【図８】実施例の半導体ディスク装置の記録方式とデータ遷移図
【発明を実施するための形態】
【００１４】
以下、図面を用いて、本発明を適用した実施例について詳細に説明する。
【００１５】
図１は、本発明の一実施例の半導体ディスク装置を搭載した情報処理装置の全体図である。構成要素としては、ＣＰＵ１０１、メインメモリ１０２、インターフェース制御ＩＣ１０３、ＳＡＴＡバス１０４、半導体ディスク装置１０５から成る。インターフェース制御ＩＣ１０３は、各インターフェースからの情報を統括するメインコントローラ１０６、処理要求をＳＡＴＡ規格のコマンドやデータへ変換するＳＡＴＡコントローラ１０７、ＳＡＴＡ規格のディスク装置へ送るコマンドを管理するコマンド制御部１０８から構成される。
【００１６】
半導体ディスク装置１０５は、ＳＡＴＡコマンドやデータの受領、応答を行うＳＡＴＡコントローラ１０９、受領したＳＡＴＡコマンドを管理するコマンド制御部１１０、半導体ディスク装置の実動作を制御するメモリコントローラ１１１、データの格納場所である半導体メモリ１１２から構成される。
【００１７】
本情報処理装置は、メインメモリ１０２に展開されたプログラム及びデータをＣＰＵ１０１で実行することにより成り立つ。メインメモリ１０２上にない新たな情報が必要な時、又はメインメモリ１０２に情報を格納しきれない時は、インターフェース制御ＩＣ１０３のメインコントローラ１０６へＣＰＵ１０１が処理要求を行う。処理要求が届くとＳＡＴＡコントローラ１０７からＳＡＴＡコマンドとして半導体ディスク装置１０５へ送られる。その際、コマンド制御部１０８はＳＡＴＡコントローラ１０７と連携し、半導体ディスク装置１０５からのコマンド応答内容や応答時間を管理している。
【００１８】
半導体ディスク装置１０５は、ＳＡＴＡコマンドをＳＡＴＡコントローラ１０９で受領し、その情報をコマンド制御部１１０、メモリコントローラ１１１に展開する。メモリコントローラ１１１は、半導体メモリ１１２に対して処理要求を実行し、結果をＳＡＴＡコントローラ１０９を経由してインターフェース制御ＩＣ１０３へ応答する。メインコントローラ１０６は、半導体ディスク装置１０５からの応答結果をＣＰＵ１０１へ、データがある場合はメインメモリ１０２へ送出する。以上を耐えず繰り替えすことにより、情報処理装置として稼動することができる。
【００１９】
図２は、半導体磁気ディスクのウェアレベリング制御を示したブロック図である。前記の通り半導体ディスク装置は書き込みを行う際に書き込み回数が物理的に少ないメモリセルへ優先的書き込みを行う。図１で示した本発明の実施例の全体図では、メモリコントローラ１１１がこのウェアレベリング制御を制御している。本図では、フラッシュメモリ２０５には１２のメモリアドレスがあり、その２つを半導体メモリの書き込み単位である１ブロックとして、６つのメモリブロック２０６〜２１１で構成されるものとして説明する。尚、メモリブロック２０９と２１０はデータのない空きブロックとする。
【００２０】
その上で詳細を説明すると、まず上位装置からの書き込み要求２０１が書き込みデータ２０２と共にメモリコントローラ２０３へ届けられる。このデータはメモリアドレス２１２のデータの新しいデータとする。メモリコントローラ２０３は書き込み回数テーブル２０４を参照し、半導体メモリ２０５内で物理的に書き込み回数の少ないメモリブロック、多いメモリブロックを検索する。
【００２１】
書き込み回数の検索の結果、メモリブロック２１１の書き込み回数が少ないとすると、メモリブロック２１１のデータを空きブロック２１０へコピーする。コピー時の空きブロックは書き込み回数の多いブロックを優先的に選択する。その後、書き込み対象があるメモリブロック２０８のデータを読み込み、メモリアドレス２１２のデータを書き込みデータ２０２に書き換えた上で、メモリブロック２１１へそのデータを書き込む。
【００２２】
以上のように、半導体ディスク装置は書き込み時に物理的な書き込み回数の少ない位置と多い位置を置換することで、物理位置の書き込み回数を均一化している。ウェアレベリング制御は空きブロックを常に使用するため、物理的に書き込み回数の少ない空きブロックを多く用意できるほど半導体ディスク装置全体としての寿命は長くできる。欠点としては、半導体メモリはメモリセルがいくつか集まったメモリブロック単位で書き込みを行うため、メモリブロックの一部を書き換える際も全体を書き換えなくてはいけない点である。頻繁に書き換えるデータと書き換えしないデータが混ざっていても、全体を書き換えなければならない。ゆえに、メモリ上のデータ位置の最適化と空きブロック確保が効率的なウェアレベリング制御には重要である。
【００２３】
図３は、本発明の実施例における半導体ディスク装置の読み出し書き込みのデータ処理ブロック図である。本ブロック図は半導体ディスク装置１０５へ読み出し書き込み処理を要求した際に、コマンド制御部１１０、メモリコントローラ１１１が行うデータ処理を説明したものである
コマンド制御部１１０内のコマンド実行制御部３０１で読み出し書き込み要求を受けると、上位装置からの処理要求３０２としてメモリコントローラ１１１の各部に展開される。読み出しの場合は、読み出し書き込み制御部３０４が物理/論理位置制御部３０５に対して読み出しを行う論理位置を示す論理アドレスを展開し、実際にデータが格納されている半導体メモリの物理位置を得る。ここで得た情報を基にメモリチップ３０８の中の該当位置から要求されたデータを読み出し、データバッファ３０３に一時記録する。
【００２４】
一時記録されたデータはエラー検出/訂正制御部３０９でエラーチェックし、エラーが検出されなければコマンド応答制御部３１０にデータを送信する。エラーが検出されたらエラーデータ訂正やリトライを試み、修復可能であれば修復データを、修復不可能であればエラー内容をコマンド応答制御部３１０に送信する。
【００２５】
書き込みの場合は、まず上位装置からの処理要求３０２として転送されてきたデータをデータバッファ３０３に一時記録する。その後、読み出しの場合と同様に読み出し書き込み制御部３０４が、物理/論理位置制御部３０５に対して書き込みを行う論理位置を示す論理アドレスを展開する。
【００２６】
物理/論理位置制御部３０５は、書き込み回数制限を考慮して半導体メモリ全体の物理位置の書き込み回数を制御し、物理位置の書き込み回数が少ないメモリブロックを判定して、その物理位置を読み出し書き込み制御部３０４へ送信する。それと同時に論理アドレスを記録方式制御部３０６へ展開する。
【００２７】
記録方式制御部３０６は、論理位置の書き込み回数を制御するために論理アドレスごとの書き込み回数をカウントし、論理位置の書き込み回数や直近の書き込み論理アドレスから今回の書き込みで使用する記録方式を判定し、読み出し書き込み制御部３０４へ送信する。
【００２８】
書き込みデータ情報テーブル３０７は、物理/論理位置制御部３０５が制御する物理位置の書き込み回数、及び記録方式制御部３０６が制御する論理位置の書き込み回数と直近の書き込み論理アドレスをそれぞれ別々のテーブルで管理している。
【００２９】
以上で得た情報を基にメモリチップ３０８の中の該当位置へデータバッファ３０３に一時記録されたデータを書き込み、実行結果をコマンド制御部１１０内のコマンド応答制御部３１０へ送信する。コマンド応答制御部３１０は送られてきた実行結果やデータを上位装置へ送出して、処理要求に対する応答とする。
【００３０】
図４は、本実施例で書き込み処理を行う際に、物理/論理位置制御部３０５で実施されるメモリブロックの物理位置の書き込み回数を考慮した物理位置判定の処理フロー図である。
【００３１】
まず、上位装置の要求によらない定期的な処理として、書き込みデータ情報テーブル３０７に記録される書き込みデータ情報を読み出し、書き込み回数が最少であるメモリブロックの物理位置とその回数を記録しておく(ステップ４０１)。
【００３２】
読み出し書き込み制御部３０４から書き込み対象の論理アドレスが展開された時には、物理位置/論理アドレスの関連付け情報から、展開された論理アドレスの情報が記録されているメモリセルが含まれるメモリブロックの物理位置を割り出す。この物理位置のメモリブロックに対して今回の書き込み実施することを書き込みデータ情報に記録すると共に、このメモリブロックの現在の書き込み回数を読み出す(ステップ４０２)。
【００３３】
次に、ステップ４０２で読み出したメモリブロックの書き込み回数値とステップ４０１で読み出した最少ブロックの書き込み回数値の差を決められた閾値と照合する(ステップ４０３)。
【００３４】
閾値を超えない場合はステップ４０２のメモリブロックの物理位置を、そのまま書き込み位置として最終決定する(ステップ４０４)。
【００３５】
もし閾値を超えた場合、ステップ４０２で読み出したメモリブロックは書き込み回数が多いことを表しており、書き込み位置を変更する必要がある。そのため、空きブロックのうち最大書き込み回数のブロックへ最少ブロックのデータをコピー(ステップ４０５)し、最少ブロックのデータを消去する。この最少ブロックの物理位置を新しい書き込み位置に決定し、ステップ４０２で読み出したメモリブロックの論理アドレスと最少ブロックの論理アドレスを変更する (ステップ４０６)。
【００３６】
この閾値は物理位置判定が行われる頻度を決める値である。閾値が小さいほどステップ４０５、４０６の書き込み位置変更が頻繁に行われ、全メモリブロックの書き込み回数が均一に近くなる制御となり、書き込み回数制御の精度が上がる。ただし、過度に書き込み位置変更が行われると書き込み処理が複雑化し、書き込み処理性能への影響が無視できなくなる。装置に要求される性能と寿命を考慮して閾値設定する必要がある。
【００３７】
以上により、今回の書き込みを行う論理アドレスは物理的な書き込み回数の少ないメモリブロックに書き込まれ、半導体メモリの書き込み回数制限を有効に活用できる。
【００３８】
図５は、本実施例で読み出し書き込み制御部３０４と記録方式制御部３０６により制御される書き込み処理時のメモリセル記録方式（ａ）と記録状態図（ｂ）である。
【００３９】
図５の(a)はSLC方式の記録状態図である。メモリセルは浮遊ゲート層の帯電状態でデータを記録するが、その記録状態を表すため縦軸にメモリセル数、横軸に閾値電圧Ｖthを取りグラフとすると、帯電していない状態[０]５０１と帯電状態[１]５０２に分類される。閾値電圧はメモリセルによってばらつきが出るため、閾値電圧の分布はほぼ正規分布になる。読み出し書き込み制御部３０４はメモリセルの帯電状態を[０]と[１]のように制御することで、０又は１の１bitのデータを記録する(５０３)。
【００４０】
続いて図５の(b)は、MLC方式の記録状態図である。MLC方式では帯電していない状態[０]５０４に加えて、電圧の大きさにより[１]〜[３]の３種類の帯電状態を持つ(５０５〜５０７)。読み出し書き込み制御部３０４は帯電状態を細かく制御して[０]〜[３]のようにすることで、５０４のように１メモリセルへ２bitのデータを記録する。記録方式制御部３０６はこの２種類の記録方式から各書き込みごとに最適な記録方式を選択する。
【００４１】
図６は、本実施例で書き込み処理を行う際に、記録方式制御部３０６で実施される論理位置の書き込み回数を考慮した記録方式判定の処理フロー図である。
【００４２】
物理/論理位置制御部３０５から論理アドレスが展開され、今回の書き込み実施することを書き込みデータ情報テーブル３０７に記録される書き込みデータ情報へ記録すると共に、論理位置の書き込み回数を知るためにこの論理アドレスの現在の書き込み回数を読み出す(ステップ６０１)。
【００４３】
また、この論理アドレスの情報を書き込み実施するメモリセルが含まれるメモリブロックの物理位置を割り出し、そのメモリブロックの記録方式を確認する(ステップ６０２)。
【００４４】
次に、ステップ６０１で読み出した書き込み回数を決められた閾値と照合する(ステップ６０３)。
【００４５】
この閾値はMLC方式でのメモリセルの物理的な書き込み回数制限と装置稼働時間から算出する。本実施例ではメモリセルのMLC方式での物理的な書き込み回数制限を1万回、装置寿命を5年と考えて1日あたりの書き込み頻度を試算すると10000回/(365日×5年)＝5.48回となり、1日あたり約5回の割合で同じメモリセルを更新し続けても装置寿命を満足できる。この装置寿命を満足できる書き込み頻度を基準とし、論理アドレスごとの書き込み回数閾値を1日あたり基準書き込み頻度×稼働日数で算出して閾値設定する。閾値を超えた論理アドレスは更新頻度が高いデータが格納される論理アドレスと判断し、記録方式として物理的な書き込み回数制限が約10倍多いSLC方式を選択する(ステップ６０４)。逆に閾値を下回る論理アドレスは更新頻度の低いデータが格納される論理アドレスと判断し、記録方式としてMLC方式を選択する(ステップ６０５)。
【００４６】
ただし、書き込みデータ情報内の直近の書き込み論理アドレスを記録する書き込みアドレステーブルを参照して、同一アドレス又は周囲のアドレスが複数あることを確認(ステップ６０６)した場合には、直近で多くの書き込みが行われていると判断し、論理アドレスごとの書き込み回数に関係なくSLC方式を選択するものとする。以上のようにして書き込み方式を決定(ステップ６０７)すると同時に、書き込みアドレステーブルへ今回書き込みする論理アドレスを登録(ステップ６０８)し、以後の書き込みに対する記録方式決定の判断材料とする。情報処理装置のデータ更新頻度はプログラムのログデータや管理データのように毎時毎分更新されるものから、ソフトウェア・プログラム本体データのように月1回以下の更新頻度のものまで様々である。また、これらは同一論理アドレスへ記録され続けるため、論理アドレスごとの書き込み回数から書き込みデータの更新頻度判断が可能となる。
【００４７】
図７は、本実施例において書き込み処理を行った時の半導体ディスク装置の処理フローである。前記の通り、書き込み処理を行う前に書き込みするメモリブロックの物理位置の決定と、記録方式の決定が行われる(ステップ７０１〜７０２)。
【００４８】
ここで、書き込みを行う物理位置の記録方式が変化するかで処理フローが変わる（ステップ７０３）。
【００４９】
記録方式が変化しない場合は決定された物理位置へそのまま書き込み及び消去を行い(ステップ７０４)、処理終了となる。
【００５０】
記録方式が以前より変化する場合は、MLC方式からSLC方式になるのか若しくはその逆なのかによって、処理フローがさらに変わることになる(ステップ７０５)。
【００５１】
MLC方式からSLC方式に変わる場合は、同一データを記録するとしてもより多くのメモリブロックが必要となる。そのため、ステップ７０１で決定された物理位置に加え、不足分は不良ブロック用のスペアブロックを割り当てて、書き込み及び消去を行う(ステップ７０６)。その後、書き込みを行ったメモリブロックに対応した物理位置へ適切に論理アドレスを関連付け(ステップ７０７)、処理終了とする。このように更新頻度が高いアドレスには積極的にSLC方式を使用し、半導体メモリの劣化を抑える。
【００５２】
一方、SLC方式からMLC方式に変わる場合は、メモリブロック内のメモリセルが余ってしまう。そこで同種のデータが記録されていると思われる近傍の論理アドレスの論理位置の書き込み回数を検索し(ステップ７０８)、書き込み回数の少ない論理アドレスのデータを読み出す(ステップ７０９)。新たに読み出したデータを一緒に書き込み、物理位置の書き込み回数が少ない元の論理アドレスのメモリブロックを消去し(ステップ７１０)、適切に論理アドレスを関連付けて(ステップ７１１)処理完了とすることで、空きブロックを増やすことができる。空きブロックはスペアブロックとして、更新頻度の高いアドレスに使用できるようにする。
【００５３】
図８は本実施例において書き込み処理を行った時の、記録方式（ａ）とデータの遷移図（ｂ）である。
【００５４】
図８の(a)は、ステップ７０２で書き込むデータの更新頻度が高いと判断された結果、書き込み対象メモリブロックをMLC方式からSLC方式に変化させる場合(ステップ７０６、７０７)のデータ遷移図である。
【００５５】
メモリブロック８０１〜８０４にMLC方式で４アドレス分のデータが記録され、メモリブロック８０５、８０６は空きブロックとし、新しい書き込みデータ８０７がメモリブロック８０４の一部データを更新するものとして説明する。
【００５６】
ステップ７０１でメモリブロック８０３が書き込み物理位置として決定されたとすると、まずメモリブロック８０３のデータが空きブロック８０５へコピーされる。同時に２ビット記録のMLC方式から１ビット記録のSLC方式に記録方式を変えるため、メモリブロック８０４のデータを２分割する。
【００５７】
その後、２分割したデータの片方をメモリブロック８０３へ書き込み、もう片方を空きブロック８０６へ書き込みする。書き込み完了後メモリブロック８０４のデータは消去し、論理アドレスを新しい物理位置に関連付けて完了である。このようにSLC方式で記録することで更新頻度の高いデータを細分化することが可能であるが、空きブロックを消費する。
【００５８】
一方で、図８の(b)は、ステップ７０２で書き込むデータの更新頻度が低いと判断された結果、書き込み対象メモリブロックをSLC方式からMLC方式に変化させる場合(ステップ７０８〜７１１)のデータ遷移図である。
【００５９】
メモリブロック８０８〜８１３にSLC方式で２アドレス分のデータが記録され、メモリブロック８１２、８１３は空きブロックとし、新しい書き込みデータ８１４がメモリブロック８１１のデータを更新するものとして説明する。
【００６０】
ステップ７０１でメモリブロック８１０が書き込み物理位置として決定されたとすると、図８(a)の場合と同様にメモリブロック８１０のデータが空きブロック８１２へコピーされる。こちらは１ビット記録のSLC方式から２ビット記録のMLC方式へ記録方式が変わるため、記録のためには２倍のデータが必要となる。そこでステップ７０８の書き込み回数検索で論理位置の書き込み回数の少ないデータが記録されたメモリブロック８０９を探し出す。
【００６１】
その後、メモリブロック８０９のデータを読み込み、新しいデータ８１４と一緒にメモリブロック８１０へまとめ書きする。書き込み完了後メモリブロック８０９及び８１１のデータは消去し、論理アドレスを新しい物理位置に関連付けて完了である。このようにMLC方式で記録することで、更新頻度の低いデータをまとめ書きすることができ、空きブロックを増やすことができる。
【００６２】
本実施例で説明したように、論理アドレスごとの書き込み回数から導き出されるデータの更新頻度の要素から、更新頻度による記録方式制御ができる。更新頻度の少ないデータはMLC方式でまとめ書きすることで空きブロックを確保し、それによってできた空きブロックを更新頻度の高いデータで使用することで、実質的な装置寿命を延ばすことができる。
【００６３】
一般的に更新頻度の高いデータはデータ量が小さく、更新頻度の低いソフトウェア・プログラム本体データはデータ量が大きいという特徴があり、本実施例により多数の空きブロックが確保できると期待できる。また、メモリブロック内のデータを更新頻度によってまとまった状態となるため、従来のウェアレベリング制御のようなメモリブロックの一部を書き換える動作が減り、無用な書き換えを抑える効果もある。メモリブロックの物理位置の書き込み回数からメモリブロックを置換する従来のウェアレベリング制御の考え方と組み合わせることによって、より最適化された書き込み制御が可能となる。
【００６４】
以上説明した実施例ではインターフェース仕様としてＳＡＴＡ仕様で説明したが、半導体ディスク装置のインターフェースによらず他の仕様でも実現できる。また、物理位置判定方法として既にデータの記録された部分も書き込み回数検索の対象にする仕様としたが、データコピーのオーバーヘッドによるパフォーマンスへの影響を考え空きブロックのみを使う仕様としてもよい。また、記録方式判定はSLC方式とMLC方式の2種類の記録方式としたが、閾値を細分化して２ビットMLC、３ビットMLC等のように記録方式を増やしても実現可能である。
【符号の説明】
【００６５】
１０１：ＣＰＵ、１０２：メインメモリ、１０３：インターフェース制御ＩＣ、１０４：ＳＡＴＡバス、１０５：半導体ディスク装置、１０６：メインコントローラ、１０７：インターフェース制御ＩＣのＳＡＴＡコントローラ、１０８：インターフェース制御ＩＣのコマンド制御部、１０９：半導体ディスク装置のＳＡＴＡコントローラ、１１０：半導体ディスク装置のコマンド制御部、１１１：メモリコントローラ、１１２：半導体メモリ、２０１：上位装置からの書き込み要求、２０２：書き込みデータ、２０３：メモリコントローラ、２０４：書き込み回数テーブル、２０５：半導体メモリ、２０６〜２１１：メモリブロック、２１２：書き込み対象メモリアドレス、３０１：コマンド実行制御部、３０２：上位装置からの処理要求、３０３：データバッファ、３０４：読み出し書き込み制御部、３０５：物理/論理位置制御部、３０６：記録方式制御部、３０７：書き込みデータ情報テーブル、３０８：メモリチップ、３０９：エラー検出/訂正制御部、３１０：コマンド応答制御部
【図１】
2011159138.tif 000003
【図２】
2011159138.tif 000004
【図３】
2011159138.tif 000005
【図４】
2011159138.tif 000006
【図５】
2011159138.tif 000007
【図６】
2011159138.tif 000008
【図７】
2011159138.tif 000009
【図８】
2011159138.tif 000010