(57)【要約】【課題】  複雑なメモリ管理を行うことなく、メモリにおける物理ブロックの書き込み回数の効果的な平準化を図る。【解決手段】  メモリ制御装置１は分類部３と更新部４を備える。メモリの記憶領域は複数の物理ブロックに分けることができ、当該記憶領域へのデータの書き込みと削除は物理ブロック単位で行われる。分類部３は、未使用あるいはデータが削除された待機中の物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかに、待機中の物理ブロックを書き込み回数に基づいて分類する。メモリへのデータの書き込みを行う場合には、その分類情報を利用して書き込み対象の物理ブロックが選択される。更新部４は、書き込み処理により待機中から使用中に遷移した物理ブロックに関連付けられている書き込み回数を更新する。【選択図】      図１
2017134446.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する分類部と、
待機中の前記物理ブロックにおける前記分類部により分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する更新部と
を備えるメモリ制御装置。
【請求項２】
前記メモリへの書き込み処理が実行されていない場合に、使用中の前記物理ブロックの書き込み回数の情報を含む使用中ブロックデータを利用して、書き込み回数が閾値未満である使用中の前記物理ブロックを選択し、また、前記待機中ブロックデータを利用して書き込み回数が多いと判断された待機中の前記物理ブロックを選択し、当該選択した待機中の前記物理ブロックに、前記選択した使用中の前記物理ブロックに書き込まれているデータを書き換える見直し部をさらに備える請求項１に記載のメモリ制御装置。
【請求項３】
データの書き込みが要求された場合に、前記待機中ブロックデータを利用して待機中の前記物理ブロックの中から書き込み対象の前記物理ブロックを選択する選択部をさらに備える請求項１又は請求項２に記載のメモリ制御装置。
【請求項４】
前記選択部は、前記書き込み回数範囲に設定された複数の前記分類区分のうちの前記書き込み回数が最小である前記分類区分に待機中の前記物理ブロックが分類されている場合には当該最小の分類区分に分類されている待機中の前記物理ブロックを書き込み対象の前記物理ブロックとして選択し、最小の前記分類区分に分類されている待機中の前記物理ブロックが無く、かつ、前記書き込み回数が次に少ない前記分類区分に待機中の前記物理ブロックが分類されている場合には当該分類区分に分類されている待機中の前記物理ブロックを書き込み対象の前記物理ブロックとして選択するという如く、書き込み回数の少ない前記分類区分から順に分類されている待機中の前記物理ブロックの有無を調べることにより、書き込み対象の前記物理ブロックを選択する請求項３に記載のメモリ制御装置。
【請求項５】
データの書き込み要求を受け取った場合に、書き込み要求に関連付けられているデータの書き込み先を表す論理アドレスに対応する物理アドレスを持つ前記物理ブロックに書き込まれているデータを削除することにより、当該物理ブロックを解放し、当該物理ブロックを使用中から待機中に遷移させる解放部をさらに備える請求項１乃至請求項４の何れか一つに記載のメモリ制御装置。
【請求項６】
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリと、
前記メモリへのデータの書き込みと削除を含むメモリ関連動作を制御する制御装置と
を備え、
前記制御装置は、
請求項１乃至請求項５の何れか一つに記載のメモリ制御装置と、
前記メモリ制御装置が利用するデータを含む情報を記憶する記憶部と、
前記メモリにデータを書き込む書き込み部と
前記メモリからデータを削除する削除部と
を備える記憶装置。
【請求項７】
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類し、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する
メモリ制御方法。
【請求項８】
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する処理と、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する処理と
をコンピュータに実行させる処理手順を表すコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリへの書き込み制御の技術に関する。
【背景技術】
【０００２】
フラッシュメモリ等の不揮発性メモリの記憶領域は、その構造により物理ブロック（セクタ）と呼ばれる単位でデータの書き込みと消去が行われる。不揮発性メモリにおける物理ブロックは、書き込みと消去が繰り返されると、構造の劣化が進む。劣化した物理ブロックに記憶されているデータの信頼性は低くなることから、物理ブロックに対する書き込み回数の上限値が設定されており、書き込み回数が上限値に達した物理ブロックは使用しない（使用不可）という処置が採られる。
【０００３】
さらに、使用不可になった（寿命に達した）物理ブロックの数が増加してしまった不揮発性メモリは有効に使用できなくなるので、当該不揮発性メモリ自体が使用不可（寿命に達した状態）になってしまう。データの書き込みが一部の物理ブロックに偏ると、書き込みに起因して寿命に達する物理ブロックの増加傾向が、書き込みが一部の物理ブロックに偏っていない場合に比べて急であるために、不揮発性メモリの寿命が早まるという問題が生じる。
【０００４】
このような問題を防止するために、データの書き込みが一部の物理ブロックに偏らないようにすべく、様々な手法が提案されている。例えば、特許文献１（特開２０１１-２０３９１６号公報）では、書き込み回数が少ない論理アドレスには、書き込み回数が多い物理アドレスを対応させることにより、メモリにおける物理ブロックの書き込み回数の平準化を図ることが提案されている。
【０００５】
また、特許文献２（特開２０１０-２５０５３３号公報）では、メモリにおける各物理ブロックの消去回数を管理することにより、物理ブロックの消去回数の偏りとメモリ全体における消去回数の増加を抑制することが提案されている。さらに、特許文献３（特開２０１０-０７９８６０号公報）では、メモリにおける書き込み回数が閾値以上の物理ブロックと、書き換え時間が所定値より長い物理ブロックとを交替することにより、物理ブロックの書き込み回数の均一化を図ることが提案されている。さらにまた、特許文献４（特開２００８-１２３３１４号公報）では、メモリへの書き込みが指令された際に、空き物理ブロックのうちの消去回数が最小の物理ブロックに情報を書き込むことにより、物理ブロックの消去回数の均一化を図ることが提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１-２０３９１６号公報
【特許文献２】特開２０１０-２５０５３３号公報
【特許文献３】特開２０１０-０７９８６０号公報
【特許文献４】特開２００８-１２３３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の提案では、書き込み回数が少ない論理アドレスには、書き込み回数が多い物理アドレスを対応させることにより、メモリにおける物理ブロックの書き込み回数の平準化が図られる。しかしながら、書き込み回数が少なかった論理アドレスに対する書き込み要求が増加してしまうと、その論理アドレスに関連付けられている物理アドレスに対応する物理ブロックの書き込み回数が増加してしまい、書き込み回数の偏りが生じる。
【０００８】
本発明は上記問題を解決するために考え出された。すなわち、本発明の主な目的は、複雑なメモリ管理を行うことなく、メモリにおける物理ブロックの書き込み回数の効果的な平準化を図ることができる技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係るメモリ制御装置は、
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する分類部と、
待機中の前記物理ブロックにおける前記分類部により分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する更新部と
を備える。
【００１０】
本発明に係る記憶装置は、
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリと、
前記メモリへのデータの書き込みと削除を含むメモリ関連動作を制御する制御装置と
を備え、
前記制御装置は、
本発明のメモリ制御装置と、
前記メモリ制御装置が利用するデータを含む情報を記憶する記憶部と、
前記メモリにデータを書き込む書き込み部と
前記メモリからデータを削除する削除部と
を備える。
【００１１】
本発明に係るメモリ制御方法は、
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類し、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する。
【００１２】
本発明に係るコンピュータプログラムは、
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する処理と、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する処理と
をコンピュータに実行させる処理手順を表す。
【００１３】
なお、本発明の主な目的は、本発明のメモリ制御装置、本発明の記憶装置に対応するメモリ制御方法によっても達成される。さらにまた、本発明の主な目的は、本発明のメモリ制御装置、本発明の記憶装置、本発明のメモリ制御方法をコンピュータによって実現するコンピュータプログラムおよびそれを記憶するプログラム記憶媒体によっても達成される。
【発明の効果】
【００１４】
本発明によれば、複雑なメモリ管理を行うことなく、メモリにおける物理ブロックの書き込み回数の効果的な平準化を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係る第１実施形態のメモリ制御装置の構成を簡略化して表すブロック図である。
【図２】第１実施形態のメモリ制御装置が組み込まれる記憶装置の構成を簡略化して表すブロック図である。
【図３】本発明に係る第２実施形態のメモリ制御装置およびそれが組み込まれた記憶装置の構成を簡略化して表すブロック図である。
【図４】使用中ブロックデータの一例を表す図である。
【図５】待機中ブロックデータの一例を表す図である。
【図６】第２実施形態のメモリ制御装置における書き込み処理の動作例を表すフローチャートである。
【図７】第２実施形態のメモリ制御装置における見直し処理の動作例を表すフローチャートである。
【発明を実施するための形態】
【００１６】
以下に、本発明に係る実施形態を図面を参照しながら説明する。
【００１７】
＜第１実施形態＞
図１は、本発明に係る第１実施形態のメモリ制御装置の構成を簡略化して表すブロック図である。第１実施形態のメモリ制御装置１は、例えば、ＳＳＤ（Solid State Drive）等の記憶装置に組み込まれ、当該記憶装置を構成するメモリ（例えば、フラッシュメモリ等の不揮発性メモリ）へのデータの書き込み等の処理を制御する装置である。図２は、メモリ制御装置１が組み込まれる記憶装置の構成を簡略化して表すブロック図である。記憶装置６は、制御装置７と、メモリ８とを備えている。メモリ８は、メモリ制御装置１が制御する制御対象のメモリ（例えば、フラッシュメモリ等の不揮発性メモリ）である。メモリ８は、記憶領域へのデータの書き込みと削除の処理がメモリの構造に基づいた物理ブロック単位で実行される。この明細書では、メモリ８を構成する複数の物理ブロックのうち、データが書き込まれている物理ブロックを使用中の物理ブロックと記す。また、未使用あるいはデータが削除された物理ブロックを待機中の物理ブロック（つまり、データの書き込みに備えている物理ブロック）と記す。
【００１８】
制御装置７は、メモリ８へのデータの書き込みと削除を含むメモリ関連動作を制御する装置であり、メモリ制御装置１を含んでいる。また、制御装置７は、メモリ８にデータを書き込む書き込み部１０と、メモリ８からデータを削除する削除部１１とを備えている。さらに、制御装置７は、メモリ制御装置１が利用するデータを含む各種データを記憶する記憶部１２を備えている。例えば、記憶部１２には、メモリ８を構成する各物理ブロックの書き込み回数（書き込み処理が成された回数）の情報が格納されている。
【００１９】
メモリ制御装置１は、例えば、ＣＰＵ（Central Processing Unit）により実現される装置である。メモリ制御装置１は、記憶部（記憶媒体）１２に格納され装置の処理手順を表しているコンピュータプログラム（プログラム）を実行することにより、次のような機能を持つ。すなわち、メモリ制御装置１は、機能部として、分類部３と、更新部４とを備えている。
【００２０】
分類部３は、待機中の物理ブロックを書き込み回数に基づいて分類する機能を備えている。すなわち、ここでは、待機中の物理ブロックにおける書き込み回数の最大値以下の書き込み回数範囲が複数の分類区分に区分されている。分類部３は、それら分類区分のうちの何れかに、待機中の物理ブロックを書き込み回数に基づいて分類する。記憶部１２には、待機中の物理ブロックに関する待機中ブロックデータが格納されている。この待機中ブロックデータには、分類部３により分類された待機中の物理ブロックにおける分類区分を表す分類情報が含まれている。記憶装置６の制御装置７は、メモリ８への書き込み要求を外部から受け取った場合に、その待機中ブロックデータを利用してデータを書き込む書き込み対象の待機中の物理ブロックを選択する機能を備えている。
【００２１】
更新部４は、書き込み対象として選択された物理ブロックに書き込み部１０によってデータが書き込まれ当該物理ブロックが待機中から使用中に遷移した場合に、次のように書き込み回数の情報を更新する機能を備えている。すなわち、記憶部１２には、物理ブロックの書き込み回数の情報が格納されている。更新部４は、待機中から使用中に遷移した（データが書き込まれた）物理ブロックに関連付けられている書き込み回数に“１”を加算することによって、書き込み回数のデータを更新する機能を備えている。書き込み回数の情報は、上記したような待機中の物理ブロックの分類および選択に利用される。また、書き込み回数の情報は、例えば、データを保持している物理ブロックの見直し等の処理にも利用される。
【００２２】
第１実施形態のメモリ制御装置１およびそれを備えた記憶装置６は上記のような構成を備えている。メモリ制御装置１および記憶装置６は、待機中の物理ブロックにおける書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する。この分類の情報は、待機中の物理ブロックに関し、書き込み回数のばらつきを表す情報となる。この分類情報を利用して、書き込み回数の平準化を図るべく書き込み対象の物理ブロックを選択することにより、メモリ制御装置１および記憶装置６は、複雑なメモリ管理を行うことなく、物理ブロックの書き込み回数の平準化を効果的に図ることができる。
【００２３】
＜第２実施形態＞
以下に、本発明に係る第２実施形態を説明する。
【００２４】
図３は、第２実施形態のメモリ制御装置を備えた記憶装置の構成を簡略化して表すブロック図である。記憶装置２０は、例えばＳＳＤ（Solid State Drive）であり、メモリ２１と制御装置２２を備えている。メモリ２１は、フラッシュメモリ等の不揮発性メモリである。メモリ２１は、第１実施形態におけるメモリ８と同様に、記憶領域へのデータの書き込みと削除の処理がメモリの構造に基づいた物理ブロック単位で実行される。
【００２５】
制御装置２２は、メモリ２１へのデータの書き込みと削除を含むメモリ関連動作を制御する機能を備えている。制御装置２２は、メモリ制御装置２４と、書き込み部２６と、削除部２７と、記憶部２８とを備えている。書き込み部２６は、メモリ制御装置２４の指令に基づいて、メモリ２１にデータを書き込む機能を備えている。削除部２７は、メモリ制御装置２４の指令に基づいて、メモリ２１に格納されているデータを削除する機能を備えている。それら書き込み部２６と削除部２７は、例えば、ＣＰＵにより実現される。
【００２６】
記憶部２８は、メモリ制御装置２４が利用するデータを含む各種データを格納する機能を備えている。この記憶部２８に格納されるデータの一つとして、使用中ブロックデータがある。使用中ブロックデータとは、使用中の物理ブロック（データが書き込まれている物理ブロック）の書き込み回数の情報を含むデータである。第２実施形態では、論理−物理変換テーブルデータが使用中ブロックデータとしても機能する。すなわち、論理−物理変換テーブルデータは、論理アドレスと物理アドレスの対応表である。論理アドレスとは、データの書き込み要求に関連付けられ、論理アドレス空間における書き込み対象のデータの書き込み位置を表すアドレス情報である。物理アドレスとは、メモリ２１の物理ブロックの位置を表す物理アドレス空間におけるアドレス情報である。論理−物理変換テーブルデータ（論理アドレスと物理アドレスの対応表）は、書き込み対象のデータの論理アドレスと、当該データが書き込まれた物理ブロックを表す物理アドレスとが関連付けられているデータである。第２実施形態では、そのような論理−物理変換テーブルデータにおける物理アドレスには、当該物理アドレスを持つ物理ブロックの書き込み回数の情報が関連付けられている。図４は、論理−物理変換テーブルデータ（使用中ブロックデータ）の構造をイメージで表す図である。
【００２７】
記憶部２８に格納される別のデータとして、待機中ブロックデータがある。待機中ブロックデータは、待機中の物理ブロック（未使用あるいはデータが削除された物理ブロック）の書き込み回数の情報が含まれるデータである。さらに、記憶部２８に格納される別のデータとして、書き込み回数範囲における分類区分データがある。この第２実施形態では、書き込み回数範囲は、０回から、待機中の物理ブロックにおける書き込み回数の最大値までの範囲であり、当該書き込み回数範囲は、設定された数（ここでは、１０とする）の分類区分に区分されている。ここでは、その分類区分は、待機中の物理ブロックにおける書き込み回数の最大値に対する割合による。具体的には、待機中の物理ブロックにおける書き込み回数の最大値に対する割合Ｒが０％以上かつ１１％未満の分類区分（区分１と記す）が設定されている。また、割合Ｒが１１％以上かつ２１％未満の分類区分（区分２と記す）が設定されている。このような分類区分が、割合Ｒが９１％以かつ１００％以下の分類区分（区分１０と記す）まで書き込み回数に応じて順に設定されている。図５には、そのような分類区分データＤがイメージで表されている。
【００２８】
記憶部２８に格納されるさらに別のデータとして、待機中の物理ブロックに関する書き込み回数の最大値と最小値のデータがある。
【００２９】
メモリ制御装置２４は、ＣＰＵにより実現される装置であり、例えば、記憶部２８に格納されているコンピュータプログラムを実行することにより、次のような機能を備えることができる。すなわち、メモリ制御装置２４は、機能部として、解放部３２と、分類部３３と、選択部３４と、更新部３５と、見直し部３６とを備えている。
【００３０】
解放部３２は、データの書き込み要求を受け取った場合に、書き込み要求に関連付けられている書き込み対象のデータの書き込み先の論理アドレスに対応する物理アドレスを、記憶部２８の論理−物理変換テーブルデータに基づき検知する機能を備えている。さらに、解放部３２は、検知した物理アドレスに対応する物理ブロックのデータを削除することを削除部２７に指示する機能を備えている。削除部２７は、その指示を受けて、メモリ２１における処理対象の物理ブロックのデータを削除する。この削除部２７により削除処理が実行された物理ブロックは、解放され、使用中から待機中に遷移した状態となる。
【００３１】
分類部３３は、解放部３２による解放処理によって使用中から待機中に遷移した（解放された）物理ブロックが発生した場合に、当該物理ブロックを、書き込み回数に基づいて、書き込み回数範囲に設定されている分類区分の何れかに分類する機能を備えている。具体的には、分類部３３は、記憶部２８における待機中の物理ブロックにおける書き込み回数の最大値に対する分類対象の物理ブロックの書き込み回数の割合Ｑを算出する。そして、分類部３３は、その割合Ｑを分類区分データＤに照合することにより、割合Ｑが含まれる分類区分を検知する。分類部３３は、そのようにして待機中の物理ブロックを分類する。
【００３２】
また、分類部３３は、分類した待機中の物理ブロックの分類情報を記憶部２８の待機中ブロックデータに格納する機能を備えている。第２実施形態では、図５に表されるように、待機中の物理ブロックの物理アドレスのデータＡdrと、その物理ブロックの書き込み回数のデータＣとが組み合わされている。待機中ブロックデータにおいて、待機中の物理ブロックに関するデータＡdr，Ｃの組が、分類された分類区分を表す情報（区分１、区分２、・・・区分１０）に関連付けられ、分類区分毎の線形リストの態様でもって、記憶部２８に格納されている。
【００３３】
選択部３４は、書き込み要求を受け取ったことによって解放部３２と分類部３３が順に処理を実行したことを検知した場合に、記憶部２８の待機中ブロックデータを利用して書き込み対象の物理ブロックを選択する機能を備えている。第２実施形態では、選択部３４は、書き込み対象の物理ブロックを選択する場合には、まず、待機中ブロックデータにおいて、書き込み回数が最も少ない分類区分である区分１に分類されている物理ブロック（物理アドレス）が有るか否かを判断する。そして、区分１に分類されている物理ブロックが無いと判断した場合には、選択部３４は、待機中ブロックデータにおいて、書き込み回数が次に少ない分類区分である区分２に分類されている物理ブロック（物理アドレス）が有るか否かを判断する。これにより、区分２に分類されている物理ブロックが有ると判断した場合には、選択部３４は、区分２における線形リストの端に登録されている物理ブロックを書き込み対象の物理ブロックとして選択する。
【００３４】
選択部３４は、さらに、書き込み対象の物理ブロックを選択した場合には、その選択した物理ブロックの物理アドレスの情報および書き込み指令を書き込み部２６に送信する機能を備えている。書き込み部２６は、その書き込み指令に従って、書き込み対象のデータを、メモリ２１における選択された物理アドレスの物理ブロックに書き込む。
【００３５】
更新部３５は、書き込み部２６による書き込み処理によって待機中から使用中に遷移した物理ブロックが発生したことを選択部３４の処理状況によって検知した場合には、次のような処理を実行する機能を備えている。すなわち、更新部３５は、待機中から使用中に遷移した物理ブロックの物理アドレスを例えば選択部３４又は書き込み部２６から取得し、また、取得した物理アドレスに関連付けられている書き込み回数の情報を待機中ブロックデータから取得する。そして、更新部３５は、取得した書き込み回数に“１”を加算し、加算後の書き込み回数の情報と、取得した物理アドレスの情報と、書き込んだデータに関連付けられている論理アドレスとを関連付け、関連付けられた情報を使用中ブロックデータに書き込む。一方、更新部３５は、待機中から使用中に遷移した物理ブロックに関わる情報を待機中ブロックデータから削除する。
【００３６】
また、更新部３５は、解放部３２の処理によって使用中から待機中に遷移した物理ブロックが生じたことを検知した場合に、次のような機能を実行する機能をも備えている。すなわち、更新部３５は、待機中になった物理ブロックに関連付けられている書き込み回数と、記憶部２８における待機中の物理ブロックにおける最大値とを取得し、これら取得した情報を比較する。そして、更新部３５は、待機中になった物理ブロックの書き込み回数が記憶部２８における最大値よりも大きいか否かを判断する。そして、更新部３５は、待機中になった物理ブロックの書き込み回数が最大値よりも大きいと判断した場合には、待機中になった物理ブロックの書き込み回数を待機中の物理ブロックにおける最大値として記憶部２８の情報を更新する。
【００３７】
見直し部３６は、物理ブロックの書き込み回数を設定のタイミング毎に見直すことにより、物理ブロックにおける書き込み回数のより一層の平準化を図る機能を備えている。すなわち、メモリ制御装置２４には、見直しのタイミングの情報が与えられている。見直しのタイミングは様々に考えられ、適宜設定されるものであるが、具体例を挙げると、解放部３２や分類部３３によるメモリ２１への書き込み処理が行われていない状態であって、かつ、予め設定された時間間隔毎に見直し部３６が次のような処理を実行する。
【００３８】
見直し部３６は、見直しのタイミングであることを検知すると、論理−物理変換テーブルデータに含まれている書き込み回数の中から最大値と最小値を取得し、平均値を算出する。算出された平均値が整数でない場合には、見直し部３６は、その算出された値における小数点以下を切り捨てた値を平均値とする。
【００３９】
さらに、見直し部３６は、その算出した平均値を閾値とし、論理−物理変換テーブルデータにおける書き込み回数と閾値を比較し、書き込み回数が閾値未満であるか否かを判断する。そして、見直し部３６は、閾値未満であると判断した書き込み回数を検知した場合には、次に、待機中ブロックデータにおける書き込み回数が最も多い分類区分（区分１０）に分類されている物理ブロックが有るか否かをチェックする。そして、見直し部３６は、区分１０に分類されている物理ブロックが無いと判断した場合には、待機中ブロックデータにおける書き込み回数が次に多い分類区分（区分９）に分類されている物理ブロックが有るか否かをチェックする。これにより、見直し部３６は、区分９に分類されている物理ブロックが有ると判断した場合には、当該区分９に関連付けられている線形リストの端の物理アドレスを取得する。このように、見直し部３６は、書き込み回数の多い分類区分から順番に、分類されている物理ブロックが有るか否かをチェックし、分類されている物理ブロックが有った場合には、その分類区分の線形リストの端に登録されている物理アドレスを取得する。
【００４０】
そして、見直し部３６は、論理−物理変換テーブルデータにおいて書き込み回数が少ないと判断された物理アドレスの物理ブロック（使用中の物理ブロック）に書き込まれているデータを読み出す。さらに、見直し部３６は、待機中ブロックデータから取得した物理アドレスと、使用中の物理ブロックから読み出したデータとを書き込み部２６に送信する。これにより、書き込み部２６は、書き込み回数の少ない使用中の物理ブロックのデータを、書き込み回数の多い待機中の物理ブロックに書き込む（書き換える）。また、見直し部３６は、データの書き換えによって待機中から使用中に遷移した物理ブロックの物理アドレス情報と書き込み回数と、書き換えられたデータに関連付けられている論理アドレス情報とを更新部３５に送信する。これにより、更新部３５は、前記同様に、受け取った書き込み回数に“１”を加算し、加算後の書き込み回数と物理アドレスと論理アドレスとの情報を論理−物理変換テーブルデータに追加する。
【００４１】
一方、見直し部３６は、書き換えられたデータが書きこまれていた物理ブロックの物理アドレスの情報を解放部３２に送信する。これにより、解放部３２が、その物理アドレスを持つ書き込み回数の少ない物理ブロックのデータを削除し、当該物理ブロックを解放する。そして、前記同様に、分類部３３によって、その解放された物理ブロックが分類され、当該物理ブロックに関する情報が待機中ブロックデータに書き込まれる。
【００４２】
見直し部３６は、上記したような見直し処理を論理−物理変換テーブルデータ（使用中ブロックデータ）に含まれる全ての書き込み回数について行う。
【００４３】
このような見直し部３６による見直し処理は、書き込み回数の少ない物理ブロックを解放することによって、当該物理ブロックをデータを書き込み可能な状態とする。また、見直し部３６による見直し処理は、書き込み回数の多い物理ブロックを使用中とすることにより、当該書き込み回数の多い物理ブロックの書き込み回数の増加を抑制できる。つまり、見直し部３６による見直し処理は、書き込み回数の多い物理ブロックよりも書き込み回数の少ない物理ブロックに書き込みの機会を増やすことができるようにすることにより、書き込み回数のばらつきを小さくできる。
【００４４】
また、第２実施形態のメモリ制御装置２４は、使用中の物理ブロックの書き込み回数の最大値と最小値に基づいた閾値を利用して、使用中の物理ブロックにおける書き込み回数の大小を判断している。このことにより、メモリ制御装置２４は、使用中の物理ブロック間における相対的な書き込み回数の大小を判断できる。このことも、物理ブロック間の書き込み回数のばらつきを効果的に抑制できる要因である。これに対し、メモリ２１の特性等に基づいて予め設定した固定値である閾値に基づいて書き込み回数の大小を判断すると仮定すると、この判断は、メモリ２１の書き込み回数の能力（限界）と比較して、書き込み回数の大小を判断していることとなる。つまり、この判断は、物理ブロック間の書き込み回数のばらつきは考慮されないことから、判断を行う場合には、この第２実施形態の構成から得られる効果は得られない。
【００４５】
以下に、メモリ制御装置２４における書き込み処理に係る動作の一例を図６のフローチャートを利用して説明する。なお、図６のフローチャートは、メモリ制御装置（ＣＰＵ）２４が実行する処理手順が表されている。
【００４６】
例えば、制御装置２２がデータの書き込み要求を受け取ると（ステップＳ１）、解放部３２は、書き込み要求に関連付けられているデータから、書き込み対象のデータの書き込み先を表す論理アドレスを抽出する。さらに、解放部３２は、その抽出した論理アドレスと、論理−物理変換テーブルデータとに基づき、論理アドレスに対応する物理アドレスを検知し（ステップＳ２）、検知した物理アドレスの物理ブロックのデータを削除部２７により削除させる（ステップＳ３）。
【００４７】
そして、分類部３３は、データを削除した（解放した）待機中の物理ブロックを、書き込み回数に基づいて待機中ブロックデータにおける何れかの分類区分に分類する（ステップＳ４）。
【００４８】
その後、選択部３４は、書き込み回数に基づいて、データの書き込み対象の物理ブロックを待機中ブロックデータの中から選択する（ステップＳ５）。ここでは、選択部３４は、前述したように、待機中ブロックデータにおける書き込み回数の最も少ない分類区分（区分１）から、書き込み対象の物理ブロックの有無を判断していき、書き込み対象の物理ブロックを決定する。
【００４９】
その後、選択部３４は、選択した物理ブロックの物理アドレスと、書き込み指令とを書き込み部２６に送信することにより、選択された物理ブロックに書き込み対象のデータを書き込むことを書き込み部２６に指示する（ステップＳ６）。
【００５０】
そして、更新部３５は、書き込み部２６による書き込み処理によって待機中から使用中に遷移した物理ブロックの書き込み回数の情報を待機中ブロックデータから読み出し、その書き込み回数に“１”を加算することにより、書き込み回数を更新する。さらに、更新部３５は、更新された書き込み回数と、当該書き込み回数の物理ブロックの物理アドレスと、その物理ブロックに書き込まれたデータに関連付けられている論理アドレスとを関連付けられた状態で論理−物理変換テーブルデータに追加する。また、更新部３５は、データが書き込まれた物理ブロックに関するデータを待機中ブロックデータから削除する。このように、更新部３５は、各種データを更新する（ステップＳ７）。
【００５１】
次に、メモリ制御装置２４における見直し処理の動作例を図７のフローチャートに基づいて説明する。なお、図７のフローチャートは、メモリ制御装置（ＣＰＵ）２４が実行する処理手順を表している。
【００５２】
例えば、見直し部３６は、設定の見直しタイミングか否かを判断する（ステップＳ１０）。見直し部３６は、見直しタイミングではないと判断した場合には、次の当該判断動作に備えた処理を終了する。一方、見直し部３６は、見直しタイミングであると判断した場合には、論理−物理変換テーブルデータ（使用中ブロックデータ）における書き込み回数を閾値（書き込み回数の最大値と最小値の平均値）に比較する。
【００５３】
そして、見直し部３６は、書き込み回数が閾値未満であるか否かを判断する（ステップＳ１１）。書き込み回数が閾値未満である場合には、見直し部３６は、その書き込み回数が閾値未満である書き込み回数が少ない使用中の物理ブロックのデータを、前記の如く選択された書き込み回数の多い待機中の物理ブロックに書き換える（ステップＳ１２）。
【００５４】
その後、更新部３５は、メモリ制御に用いる待機中ブロックデータおよび論理−物理変換テーブルデータ（使用中ブロックデータ）のデータを更新する（ステップＳ１３）。
【００５５】
然る後に、見直し部３６は、論理−物理変換テーブルデータ（使用中ブロックデータ）における全ての書き込み回数（換言すれば、使用中の全ての物理ブロック）について、上記のような見直し処理を実行したか否かを判断する（ステップＳ１４）。使用中の全ての物理ブロックについて見直し処理を実行した場合には、見直し部３６は、処理を終了する。
【００５６】
また、ステップＳ１１において、見直し部３６は、書き込み回数が閾値未満でないと判断した場合には、ステップＳ１４の処理を実行し、使用中の全ての物理ブロックについて見直し処理を実行したと判断した場合には、処理を終了する。
【００５７】
第２実施形態のメモリ制御装置２４およびそれを備えた記憶装置２０は、上記のような構成を備えていることによって、前記の如く、複雑なメモリ管理を行うことなく、メモリ２１における書き込み回数の平準化を効果的に図ることができる。
【００５８】
＜その他の実施形態＞
なお、本発明は、第１と第２の実施形態に限定されず、様々な実施の態様を採り得る。例えば、第２実施形態では、書き込み回数範囲を１０段階に区分しているが、書き込み回数範囲の区分数は、“１０”に限定されず、例えば、メモリ２１の容量や、制御装置２２の性能等を考慮して適宜設定して良いものである。また、第２実施形態では、書き込み回数範囲の最小値は“０”であるが、当該最小値は、待機中の物理ブロックにおける実際の書き込み回数の最小値であってもよい。さらに、第２実施形態では、書き込み回数の最大値に対する分類対象の物理ブロックの書き込み回数の割合に基づいて、物理ブロックは分類されている。これに代えて、例えば、書き込み回数の最小値から最大値までの回数範囲を１０個に等分し、回数に基づいた分類区分に基づいて、待機中の物理ブロックが分類されてもよい。
【００５９】
さらに、第２実施形態では、待機中ブロックデータにおいて、分類区分毎に線形リストの態様で待機中の物理ブロックに関する情報が格納されているが、待機中の物理ブロックに関する情報を記憶するデータ構造は線形リストに限定されない。
【符号の説明】
【００６０】
１，２４  メモリ制御装置
３，３３  分類部
４，３５  更新部
６，２０  記憶装置
８，２１  メモリ
３６  見直し部
【図１】
2017134446.tif 000003
【図２】
2017134446.tif 000004
【図３】
2017134446.tif 000005
【図４】
2017134446.tif 000006
【図５】
2017134446.tif 000007
【図６】
2017134446.tif 000008
【図７】
2017134446.tif 000009