JP2017134446A - メモリ制御装置、記憶装置、メモリ制御方法およびコンピュータプログラム - Google Patents
メモリ制御装置、記憶装置、メモリ制御方法およびコンピュータプログラム Download PDFInfo
- Publication number
- JP2017134446A JP2017134446A JP2016011304A JP2016011304A JP2017134446A JP 2017134446 A JP2017134446 A JP 2017134446A JP 2016011304 A JP2016011304 A JP 2016011304A JP 2016011304 A JP2016011304 A JP 2016011304A JP 2017134446 A JP2017134446 A JP 2017134446A
- Authority
- JP
- Japan
- Prior art keywords
- physical block
- waiting
- data
- physical
- writing
- 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
【課題】 複雑なメモリ管理を行うことなく、メモリにおける物理ブロックの書き込み回数の効果的な平準化を図る。【解決手段】 メモリ制御装置1は分類部3と更新部4を備える。メモリの記憶領域は複数の物理ブロックに分けることができ、当該記憶領域へのデータの書き込みと削除は物理ブロック単位で行われる。分類部3は、未使用あるいはデータが削除された待機中の物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかに、待機中の物理ブロックを書き込み回数に基づいて分類する。メモリへのデータの書き込みを行う場合には、その分類情報を利用して書き込み対象の物理ブロックが選択される。更新部4は、書き込み処理により待機中から使用中に遷移した物理ブロックに関連付けられている書き込み回数を更新する。【選択図】 図1
Description
本発明は、不揮発性メモリへの書き込み制御の技術に関する。
フラッシュメモリ等の不揮発性メモリの記憶領域は、その構造により物理ブロック(セクタ)と呼ばれる単位でデータの書き込みと消去が行われる。不揮発性メモリにおける物理ブロックは、書き込みと消去が繰り返されると、構造の劣化が進む。劣化した物理ブロックに記憶されているデータの信頼性は低くなることから、物理ブロックに対する書き込み回数の上限値が設定されており、書き込み回数が上限値に達した物理ブロックは使用しない(使用不可)という処置が採られる。
さらに、使用不可になった(寿命に達した)物理ブロックの数が増加してしまった不揮発性メモリは有効に使用できなくなるので、当該不揮発性メモリ自体が使用不可(寿命に達した状態)になってしまう。データの書き込みが一部の物理ブロックに偏ると、書き込みに起因して寿命に達する物理ブロックの増加傾向が、書き込みが一部の物理ブロックに偏っていない場合に比べて急であるために、不揮発性メモリの寿命が早まるという問題が生じる。
このような問題を防止するために、データの書き込みが一部の物理ブロックに偏らないようにすべく、様々な手法が提案されている。例えば、特許文献1(特開2011-203916号公報)では、書き込み回数が少ない論理アドレスには、書き込み回数が多い物理アドレスを対応させることにより、メモリにおける物理ブロックの書き込み回数の平準化を図ることが提案されている。
また、特許文献2(特開2010-250533号公報)では、メモリにおける各物理ブロックの消去回数を管理することにより、物理ブロックの消去回数の偏りとメモリ全体における消去回数の増加を抑制することが提案されている。さらに、特許文献3(特開2010-079860号公報)では、メモリにおける書き込み回数が閾値以上の物理ブロックと、書き換え時間が所定値より長い物理ブロックとを交替することにより、物理ブロックの書き込み回数の均一化を図ることが提案されている。さらにまた、特許文献4(特開2008-123314号公報)では、メモリへの書き込みが指令された際に、空き物理ブロックのうちの消去回数が最小の物理ブロックに情報を書き込むことにより、物理ブロックの消去回数の均一化を図ることが提案されている。
特許文献1の提案では、書き込み回数が少ない論理アドレスには、書き込み回数が多い物理アドレスを対応させることにより、メモリにおける物理ブロックの書き込み回数の平準化が図られる。しかしながら、書き込み回数が少なかった論理アドレスに対する書き込み要求が増加してしまうと、その論理アドレスに関連付けられている物理アドレスに対応する物理ブロックの書き込み回数が増加してしまい、書き込み回数の偏りが生じる。
本発明は上記問題を解決するために考え出された。すなわち、本発明の主な目的は、複雑なメモリ管理を行うことなく、メモリにおける物理ブロックの書き込み回数の効果的な平準化を図ることができる技術を提供することにある。
上記目的を達成するために、本発明に係るメモリ制御装置は、
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する分類部と、
待機中の前記物理ブロックにおける前記分類部により分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する更新部と
を備える。
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する分類部と、
待機中の前記物理ブロックにおける前記分類部により分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する更新部と
を備える。
本発明に係る記憶装置は、
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリと、
前記メモリへのデータの書き込みと削除を含むメモリ関連動作を制御する制御装置と
を備え、
前記制御装置は、
本発明のメモリ制御装置と、
前記メモリ制御装置が利用するデータを含む情報を記憶する記憶部と、
前記メモリにデータを書き込む書き込み部と
前記メモリからデータを削除する削除部と
を備える。
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリと、
前記メモリへのデータの書き込みと削除を含むメモリ関連動作を制御する制御装置と
を備え、
前記制御装置は、
本発明のメモリ制御装置と、
前記メモリ制御装置が利用するデータを含む情報を記憶する記憶部と、
前記メモリにデータを書き込む書き込み部と
前記メモリからデータを削除する削除部と
を備える。
本発明に係るメモリ制御方法は、
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類し、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する。
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類し、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する。
本発明に係るコンピュータプログラムは、
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する処理と、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する処理と
をコンピュータに実行させる処理手順を表す。
記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する処理と、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する処理と
をコンピュータに実行させる処理手順を表す。
なお、本発明の主な目的は、本発明のメモリ制御装置、本発明の記憶装置に対応するメモリ制御方法によっても達成される。さらにまた、本発明の主な目的は、本発明のメモリ制御装置、本発明の記憶装置、本発明のメモリ制御方法をコンピュータによって実現するコンピュータプログラムおよびそれを記憶するプログラム記憶媒体によっても達成される。
本発明によれば、複雑なメモリ管理を行うことなく、メモリにおける物理ブロックの書き込み回数の効果的な平準化を図ることができる。
以下に、本発明に係る実施形態を図面を参照しながら説明する。
<第1実施形態>
図1は、本発明に係る第1実施形態のメモリ制御装置の構成を簡略化して表すブロック図である。第1実施形態のメモリ制御装置1は、例えば、SSD(Solid State Drive)等の記憶装置に組み込まれ、当該記憶装置を構成するメモリ(例えば、フラッシュメモリ等の不揮発性メモリ)へのデータの書き込み等の処理を制御する装置である。図2は、メモリ制御装置1が組み込まれる記憶装置の構成を簡略化して表すブロック図である。記憶装置6は、制御装置7と、メモリ8とを備えている。メモリ8は、メモリ制御装置1が制御する制御対象のメモリ(例えば、フラッシュメモリ等の不揮発性メモリ)である。メモリ8は、記憶領域へのデータの書き込みと削除の処理がメモリの構造に基づいた物理ブロック単位で実行される。この明細書では、メモリ8を構成する複数の物理ブロックのうち、データが書き込まれている物理ブロックを使用中の物理ブロックと記す。また、未使用あるいはデータが削除された物理ブロックを待機中の物理ブロック(つまり、データの書き込みに備えている物理ブロック)と記す。
図1は、本発明に係る第1実施形態のメモリ制御装置の構成を簡略化して表すブロック図である。第1実施形態のメモリ制御装置1は、例えば、SSD(Solid State Drive)等の記憶装置に組み込まれ、当該記憶装置を構成するメモリ(例えば、フラッシュメモリ等の不揮発性メモリ)へのデータの書き込み等の処理を制御する装置である。図2は、メモリ制御装置1が組み込まれる記憶装置の構成を簡略化して表すブロック図である。記憶装置6は、制御装置7と、メモリ8とを備えている。メモリ8は、メモリ制御装置1が制御する制御対象のメモリ(例えば、フラッシュメモリ等の不揮発性メモリ)である。メモリ8は、記憶領域へのデータの書き込みと削除の処理がメモリの構造に基づいた物理ブロック単位で実行される。この明細書では、メモリ8を構成する複数の物理ブロックのうち、データが書き込まれている物理ブロックを使用中の物理ブロックと記す。また、未使用あるいはデータが削除された物理ブロックを待機中の物理ブロック(つまり、データの書き込みに備えている物理ブロック)と記す。
制御装置7は、メモリ8へのデータの書き込みと削除を含むメモリ関連動作を制御する装置であり、メモリ制御装置1を含んでいる。また、制御装置7は、メモリ8にデータを書き込む書き込み部10と、メモリ8からデータを削除する削除部11とを備えている。さらに、制御装置7は、メモリ制御装置1が利用するデータを含む各種データを記憶する記憶部12を備えている。例えば、記憶部12には、メモリ8を構成する各物理ブロックの書き込み回数(書き込み処理が成された回数)の情報が格納されている。
メモリ制御装置1は、例えば、CPU(Central Processing Unit)により実現される装置である。メモリ制御装置1は、記憶部(記憶媒体)12に格納され装置の処理手順を表しているコンピュータプログラム(プログラム)を実行することにより、次のような機能を持つ。すなわち、メモリ制御装置1は、機能部として、分類部3と、更新部4とを備えている。
分類部3は、待機中の物理ブロックを書き込み回数に基づいて分類する機能を備えている。すなわち、ここでは、待機中の物理ブロックにおける書き込み回数の最大値以下の書き込み回数範囲が複数の分類区分に区分されている。分類部3は、それら分類区分のうちの何れかに、待機中の物理ブロックを書き込み回数に基づいて分類する。記憶部12には、待機中の物理ブロックに関する待機中ブロックデータが格納されている。この待機中ブロックデータには、分類部3により分類された待機中の物理ブロックにおける分類区分を表す分類情報が含まれている。記憶装置6の制御装置7は、メモリ8への書き込み要求を外部から受け取った場合に、その待機中ブロックデータを利用してデータを書き込む書き込み対象の待機中の物理ブロックを選択する機能を備えている。
更新部4は、書き込み対象として選択された物理ブロックに書き込み部10によってデータが書き込まれ当該物理ブロックが待機中から使用中に遷移した場合に、次のように書き込み回数の情報を更新する機能を備えている。すなわち、記憶部12には、物理ブロックの書き込み回数の情報が格納されている。更新部4は、待機中から使用中に遷移した(データが書き込まれた)物理ブロックに関連付けられている書き込み回数に“1”を加算することによって、書き込み回数のデータを更新する機能を備えている。書き込み回数の情報は、上記したような待機中の物理ブロックの分類および選択に利用される。また、書き込み回数の情報は、例えば、データを保持している物理ブロックの見直し等の処理にも利用される。
第1実施形態のメモリ制御装置1およびそれを備えた記憶装置6は上記のような構成を備えている。メモリ制御装置1および記憶装置6は、待機中の物理ブロックにおける書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する。この分類の情報は、待機中の物理ブロックに関し、書き込み回数のばらつきを表す情報となる。この分類情報を利用して、書き込み回数の平準化を図るべく書き込み対象の物理ブロックを選択することにより、メモリ制御装置1および記憶装置6は、複雑なメモリ管理を行うことなく、物理ブロックの書き込み回数の平準化を効果的に図ることができる。
<第2実施形態>
以下に、本発明に係る第2実施形態を説明する。
以下に、本発明に係る第2実施形態を説明する。
図3は、第2実施形態のメモリ制御装置を備えた記憶装置の構成を簡略化して表すブロック図である。記憶装置20は、例えばSSD(Solid State Drive)であり、メモリ21と制御装置22を備えている。メモリ21は、フラッシュメモリ等の不揮発性メモリである。メモリ21は、第1実施形態におけるメモリ8と同様に、記憶領域へのデータの書き込みと削除の処理がメモリの構造に基づいた物理ブロック単位で実行される。
制御装置22は、メモリ21へのデータの書き込みと削除を含むメモリ関連動作を制御する機能を備えている。制御装置22は、メモリ制御装置24と、書き込み部26と、削除部27と、記憶部28とを備えている。書き込み部26は、メモリ制御装置24の指令に基づいて、メモリ21にデータを書き込む機能を備えている。削除部27は、メモリ制御装置24の指令に基づいて、メモリ21に格納されているデータを削除する機能を備えている。それら書き込み部26と削除部27は、例えば、CPUにより実現される。
記憶部28は、メモリ制御装置24が利用するデータを含む各種データを格納する機能を備えている。この記憶部28に格納されるデータの一つとして、使用中ブロックデータがある。使用中ブロックデータとは、使用中の物理ブロック(データが書き込まれている物理ブロック)の書き込み回数の情報を含むデータである。第2実施形態では、論理−物理変換テーブルデータが使用中ブロックデータとしても機能する。すなわち、論理−物理変換テーブルデータは、論理アドレスと物理アドレスの対応表である。論理アドレスとは、データの書き込み要求に関連付けられ、論理アドレス空間における書き込み対象のデータの書き込み位置を表すアドレス情報である。物理アドレスとは、メモリ21の物理ブロックの位置を表す物理アドレス空間におけるアドレス情報である。論理−物理変換テーブルデータ(論理アドレスと物理アドレスの対応表)は、書き込み対象のデータの論理アドレスと、当該データが書き込まれた物理ブロックを表す物理アドレスとが関連付けられているデータである。第2実施形態では、そのような論理−物理変換テーブルデータにおける物理アドレスには、当該物理アドレスを持つ物理ブロックの書き込み回数の情報が関連付けられている。図4は、論理−物理変換テーブルデータ(使用中ブロックデータ)の構造をイメージで表す図である。
記憶部28に格納される別のデータとして、待機中ブロックデータがある。待機中ブロックデータは、待機中の物理ブロック(未使用あるいはデータが削除された物理ブロック)の書き込み回数の情報が含まれるデータである。さらに、記憶部28に格納される別のデータとして、書き込み回数範囲における分類区分データがある。この第2実施形態では、書き込み回数範囲は、0回から、待機中の物理ブロックにおける書き込み回数の最大値までの範囲であり、当該書き込み回数範囲は、設定された数(ここでは、10とする)の分類区分に区分されている。ここでは、その分類区分は、待機中の物理ブロックにおける書き込み回数の最大値に対する割合による。具体的には、待機中の物理ブロックにおける書き込み回数の最大値に対する割合Rが0%以上かつ11%未満の分類区分(区分1と記す)が設定されている。また、割合Rが11%以上かつ21%未満の分類区分(区分2と記す)が設定されている。このような分類区分が、割合Rが91%以かつ100%以下の分類区分(区分10と記す)まで書き込み回数に応じて順に設定されている。図5には、そのような分類区分データDがイメージで表されている。
記憶部28に格納されるさらに別のデータとして、待機中の物理ブロックに関する書き込み回数の最大値と最小値のデータがある。
メモリ制御装置24は、CPUにより実現される装置であり、例えば、記憶部28に格納されているコンピュータプログラムを実行することにより、次のような機能を備えることができる。すなわち、メモリ制御装置24は、機能部として、解放部32と、分類部33と、選択部34と、更新部35と、見直し部36とを備えている。
解放部32は、データの書き込み要求を受け取った場合に、書き込み要求に関連付けられている書き込み対象のデータの書き込み先の論理アドレスに対応する物理アドレスを、記憶部28の論理−物理変換テーブルデータに基づき検知する機能を備えている。さらに、解放部32は、検知した物理アドレスに対応する物理ブロックのデータを削除することを削除部27に指示する機能を備えている。削除部27は、その指示を受けて、メモリ21における処理対象の物理ブロックのデータを削除する。この削除部27により削除処理が実行された物理ブロックは、解放され、使用中から待機中に遷移した状態となる。
分類部33は、解放部32による解放処理によって使用中から待機中に遷移した(解放された)物理ブロックが発生した場合に、当該物理ブロックを、書き込み回数に基づいて、書き込み回数範囲に設定されている分類区分の何れかに分類する機能を備えている。具体的には、分類部33は、記憶部28における待機中の物理ブロックにおける書き込み回数の最大値に対する分類対象の物理ブロックの書き込み回数の割合Qを算出する。そして、分類部33は、その割合Qを分類区分データDに照合することにより、割合Qが含まれる分類区分を検知する。分類部33は、そのようにして待機中の物理ブロックを分類する。
また、分類部33は、分類した待機中の物理ブロックの分類情報を記憶部28の待機中ブロックデータに格納する機能を備えている。第2実施形態では、図5に表されるように、待機中の物理ブロックの物理アドレスのデータAdrと、その物理ブロックの書き込み回数のデータCとが組み合わされている。待機中ブロックデータにおいて、待機中の物理ブロックに関するデータAdr,Cの組が、分類された分類区分を表す情報(区分1、区分2、・・・区分10)に関連付けられ、分類区分毎の線形リストの態様でもって、記憶部28に格納されている。
選択部34は、書き込み要求を受け取ったことによって解放部32と分類部33が順に処理を実行したことを検知した場合に、記憶部28の待機中ブロックデータを利用して書き込み対象の物理ブロックを選択する機能を備えている。第2実施形態では、選択部34は、書き込み対象の物理ブロックを選択する場合には、まず、待機中ブロックデータにおいて、書き込み回数が最も少ない分類区分である区分1に分類されている物理ブロック(物理アドレス)が有るか否かを判断する。そして、区分1に分類されている物理ブロックが無いと判断した場合には、選択部34は、待機中ブロックデータにおいて、書き込み回数が次に少ない分類区分である区分2に分類されている物理ブロック(物理アドレス)が有るか否かを判断する。これにより、区分2に分類されている物理ブロックが有ると判断した場合には、選択部34は、区分2における線形リストの端に登録されている物理ブロックを書き込み対象の物理ブロックとして選択する。
選択部34は、さらに、書き込み対象の物理ブロックを選択した場合には、その選択した物理ブロックの物理アドレスの情報および書き込み指令を書き込み部26に送信する機能を備えている。書き込み部26は、その書き込み指令に従って、書き込み対象のデータを、メモリ21における選択された物理アドレスの物理ブロックに書き込む。
更新部35は、書き込み部26による書き込み処理によって待機中から使用中に遷移した物理ブロックが発生したことを選択部34の処理状況によって検知した場合には、次のような処理を実行する機能を備えている。すなわち、更新部35は、待機中から使用中に遷移した物理ブロックの物理アドレスを例えば選択部34又は書き込み部26から取得し、また、取得した物理アドレスに関連付けられている書き込み回数の情報を待機中ブロックデータから取得する。そして、更新部35は、取得した書き込み回数に“1”を加算し、加算後の書き込み回数の情報と、取得した物理アドレスの情報と、書き込んだデータに関連付けられている論理アドレスとを関連付け、関連付けられた情報を使用中ブロックデータに書き込む。一方、更新部35は、待機中から使用中に遷移した物理ブロックに関わる情報を待機中ブロックデータから削除する。
また、更新部35は、解放部32の処理によって使用中から待機中に遷移した物理ブロックが生じたことを検知した場合に、次のような機能を実行する機能をも備えている。すなわち、更新部35は、待機中になった物理ブロックに関連付けられている書き込み回数と、記憶部28における待機中の物理ブロックにおける最大値とを取得し、これら取得した情報を比較する。そして、更新部35は、待機中になった物理ブロックの書き込み回数が記憶部28における最大値よりも大きいか否かを判断する。そして、更新部35は、待機中になった物理ブロックの書き込み回数が最大値よりも大きいと判断した場合には、待機中になった物理ブロックの書き込み回数を待機中の物理ブロックにおける最大値として記憶部28の情報を更新する。
見直し部36は、物理ブロックの書き込み回数を設定のタイミング毎に見直すことにより、物理ブロックにおける書き込み回数のより一層の平準化を図る機能を備えている。すなわち、メモリ制御装置24には、見直しのタイミングの情報が与えられている。見直しのタイミングは様々に考えられ、適宜設定されるものであるが、具体例を挙げると、解放部32や分類部33によるメモリ21への書き込み処理が行われていない状態であって、かつ、予め設定された時間間隔毎に見直し部36が次のような処理を実行する。
見直し部36は、見直しのタイミングであることを検知すると、論理−物理変換テーブルデータに含まれている書き込み回数の中から最大値と最小値を取得し、平均値を算出する。算出された平均値が整数でない場合には、見直し部36は、その算出された値における小数点以下を切り捨てた値を平均値とする。
さらに、見直し部36は、その算出した平均値を閾値とし、論理−物理変換テーブルデータにおける書き込み回数と閾値を比較し、書き込み回数が閾値未満であるか否かを判断する。そして、見直し部36は、閾値未満であると判断した書き込み回数を検知した場合には、次に、待機中ブロックデータにおける書き込み回数が最も多い分類区分(区分10)に分類されている物理ブロックが有るか否かをチェックする。そして、見直し部36は、区分10に分類されている物理ブロックが無いと判断した場合には、待機中ブロックデータにおける書き込み回数が次に多い分類区分(区分9)に分類されている物理ブロックが有るか否かをチェックする。これにより、見直し部36は、区分9に分類されている物理ブロックが有ると判断した場合には、当該区分9に関連付けられている線形リストの端の物理アドレスを取得する。このように、見直し部36は、書き込み回数の多い分類区分から順番に、分類されている物理ブロックが有るか否かをチェックし、分類されている物理ブロックが有った場合には、その分類区分の線形リストの端に登録されている物理アドレスを取得する。
そして、見直し部36は、論理−物理変換テーブルデータにおいて書き込み回数が少ないと判断された物理アドレスの物理ブロック(使用中の物理ブロック)に書き込まれているデータを読み出す。さらに、見直し部36は、待機中ブロックデータから取得した物理アドレスと、使用中の物理ブロックから読み出したデータとを書き込み部26に送信する。これにより、書き込み部26は、書き込み回数の少ない使用中の物理ブロックのデータを、書き込み回数の多い待機中の物理ブロックに書き込む(書き換える)。また、見直し部36は、データの書き換えによって待機中から使用中に遷移した物理ブロックの物理アドレス情報と書き込み回数と、書き換えられたデータに関連付けられている論理アドレス情報とを更新部35に送信する。これにより、更新部35は、前記同様に、受け取った書き込み回数に“1”を加算し、加算後の書き込み回数と物理アドレスと論理アドレスとの情報を論理−物理変換テーブルデータに追加する。
一方、見直し部36は、書き換えられたデータが書きこまれていた物理ブロックの物理アドレスの情報を解放部32に送信する。これにより、解放部32が、その物理アドレスを持つ書き込み回数の少ない物理ブロックのデータを削除し、当該物理ブロックを解放する。そして、前記同様に、分類部33によって、その解放された物理ブロックが分類され、当該物理ブロックに関する情報が待機中ブロックデータに書き込まれる。
見直し部36は、上記したような見直し処理を論理−物理変換テーブルデータ(使用中ブロックデータ)に含まれる全ての書き込み回数について行う。
このような見直し部36による見直し処理は、書き込み回数の少ない物理ブロックを解放することによって、当該物理ブロックをデータを書き込み可能な状態とする。また、見直し部36による見直し処理は、書き込み回数の多い物理ブロックを使用中とすることにより、当該書き込み回数の多い物理ブロックの書き込み回数の増加を抑制できる。つまり、見直し部36による見直し処理は、書き込み回数の多い物理ブロックよりも書き込み回数の少ない物理ブロックに書き込みの機会を増やすことができるようにすることにより、書き込み回数のばらつきを小さくできる。
また、第2実施形態のメモリ制御装置24は、使用中の物理ブロックの書き込み回数の最大値と最小値に基づいた閾値を利用して、使用中の物理ブロックにおける書き込み回数の大小を判断している。このことにより、メモリ制御装置24は、使用中の物理ブロック間における相対的な書き込み回数の大小を判断できる。このことも、物理ブロック間の書き込み回数のばらつきを効果的に抑制できる要因である。これに対し、メモリ21の特性等に基づいて予め設定した固定値である閾値に基づいて書き込み回数の大小を判断すると仮定すると、この判断は、メモリ21の書き込み回数の能力(限界)と比較して、書き込み回数の大小を判断していることとなる。つまり、この判断は、物理ブロック間の書き込み回数のばらつきは考慮されないことから、判断を行う場合には、この第2実施形態の構成から得られる効果は得られない。
以下に、メモリ制御装置24における書き込み処理に係る動作の一例を図6のフローチャートを利用して説明する。なお、図6のフローチャートは、メモリ制御装置(CPU)24が実行する処理手順が表されている。
例えば、制御装置22がデータの書き込み要求を受け取ると(ステップS1)、解放部32は、書き込み要求に関連付けられているデータから、書き込み対象のデータの書き込み先を表す論理アドレスを抽出する。さらに、解放部32は、その抽出した論理アドレスと、論理−物理変換テーブルデータとに基づき、論理アドレスに対応する物理アドレスを検知し(ステップS2)、検知した物理アドレスの物理ブロックのデータを削除部27により削除させる(ステップS3)。
そして、分類部33は、データを削除した(解放した)待機中の物理ブロックを、書き込み回数に基づいて待機中ブロックデータにおける何れかの分類区分に分類する(ステップS4)。
その後、選択部34は、書き込み回数に基づいて、データの書き込み対象の物理ブロックを待機中ブロックデータの中から選択する(ステップS5)。ここでは、選択部34は、前述したように、待機中ブロックデータにおける書き込み回数の最も少ない分類区分(区分1)から、書き込み対象の物理ブロックの有無を判断していき、書き込み対象の物理ブロックを決定する。
その後、選択部34は、選択した物理ブロックの物理アドレスと、書き込み指令とを書き込み部26に送信することにより、選択された物理ブロックに書き込み対象のデータを書き込むことを書き込み部26に指示する(ステップS6)。
そして、更新部35は、書き込み部26による書き込み処理によって待機中から使用中に遷移した物理ブロックの書き込み回数の情報を待機中ブロックデータから読み出し、その書き込み回数に“1”を加算することにより、書き込み回数を更新する。さらに、更新部35は、更新された書き込み回数と、当該書き込み回数の物理ブロックの物理アドレスと、その物理ブロックに書き込まれたデータに関連付けられている論理アドレスとを関連付けられた状態で論理−物理変換テーブルデータに追加する。また、更新部35は、データが書き込まれた物理ブロックに関するデータを待機中ブロックデータから削除する。このように、更新部35は、各種データを更新する(ステップS7)。
次に、メモリ制御装置24における見直し処理の動作例を図7のフローチャートに基づいて説明する。なお、図7のフローチャートは、メモリ制御装置(CPU)24が実行する処理手順を表している。
例えば、見直し部36は、設定の見直しタイミングか否かを判断する(ステップS10)。見直し部36は、見直しタイミングではないと判断した場合には、次の当該判断動作に備えた処理を終了する。一方、見直し部36は、見直しタイミングであると判断した場合には、論理−物理変換テーブルデータ(使用中ブロックデータ)における書き込み回数を閾値(書き込み回数の最大値と最小値の平均値)に比較する。
そして、見直し部36は、書き込み回数が閾値未満であるか否かを判断する(ステップS11)。書き込み回数が閾値未満である場合には、見直し部36は、その書き込み回数が閾値未満である書き込み回数が少ない使用中の物理ブロックのデータを、前記の如く選択された書き込み回数の多い待機中の物理ブロックに書き換える(ステップS12)。
その後、更新部35は、メモリ制御に用いる待機中ブロックデータおよび論理−物理変換テーブルデータ(使用中ブロックデータ)のデータを更新する(ステップS13)。
然る後に、見直し部36は、論理−物理変換テーブルデータ(使用中ブロックデータ)における全ての書き込み回数(換言すれば、使用中の全ての物理ブロック)について、上記のような見直し処理を実行したか否かを判断する(ステップS14)。使用中の全ての物理ブロックについて見直し処理を実行した場合には、見直し部36は、処理を終了する。
また、ステップS11において、見直し部36は、書き込み回数が閾値未満でないと判断した場合には、ステップS14の処理を実行し、使用中の全ての物理ブロックについて見直し処理を実行したと判断した場合には、処理を終了する。
第2実施形態のメモリ制御装置24およびそれを備えた記憶装置20は、上記のような構成を備えていることによって、前記の如く、複雑なメモリ管理を行うことなく、メモリ21における書き込み回数の平準化を効果的に図ることができる。
<その他の実施形態>
なお、本発明は、第1と第2の実施形態に限定されず、様々な実施の態様を採り得る。例えば、第2実施形態では、書き込み回数範囲を10段階に区分しているが、書き込み回数範囲の区分数は、“10”に限定されず、例えば、メモリ21の容量や、制御装置22の性能等を考慮して適宜設定して良いものである。また、第2実施形態では、書き込み回数範囲の最小値は“0”であるが、当該最小値は、待機中の物理ブロックにおける実際の書き込み回数の最小値であってもよい。さらに、第2実施形態では、書き込み回数の最大値に対する分類対象の物理ブロックの書き込み回数の割合に基づいて、物理ブロックは分類されている。これに代えて、例えば、書き込み回数の最小値から最大値までの回数範囲を10個に等分し、回数に基づいた分類区分に基づいて、待機中の物理ブロックが分類されてもよい。
なお、本発明は、第1と第2の実施形態に限定されず、様々な実施の態様を採り得る。例えば、第2実施形態では、書き込み回数範囲を10段階に区分しているが、書き込み回数範囲の区分数は、“10”に限定されず、例えば、メモリ21の容量や、制御装置22の性能等を考慮して適宜設定して良いものである。また、第2実施形態では、書き込み回数範囲の最小値は“0”であるが、当該最小値は、待機中の物理ブロックにおける実際の書き込み回数の最小値であってもよい。さらに、第2実施形態では、書き込み回数の最大値に対する分類対象の物理ブロックの書き込み回数の割合に基づいて、物理ブロックは分類されている。これに代えて、例えば、書き込み回数の最小値から最大値までの回数範囲を10個に等分し、回数に基づいた分類区分に基づいて、待機中の物理ブロックが分類されてもよい。
さらに、第2実施形態では、待機中ブロックデータにおいて、分類区分毎に線形リストの態様で待機中の物理ブロックに関する情報が格納されているが、待機中の物理ブロックに関する情報を記憶するデータ構造は線形リストに限定されない。
1,24 メモリ制御装置
3,33 分類部
4,35 更新部
6,20 記憶装置
8,21 メモリ
36 見直し部
3,33 分類部
4,35 更新部
6,20 記憶装置
8,21 メモリ
36 見直し部
Claims (8)
- 記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する分類部と、
待機中の前記物理ブロックにおける前記分類部により分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する更新部と
を備えるメモリ制御装置。 - 前記メモリへの書き込み処理が実行されていない場合に、使用中の前記物理ブロックの書き込み回数の情報を含む使用中ブロックデータを利用して、書き込み回数が閾値未満である使用中の前記物理ブロックを選択し、また、前記待機中ブロックデータを利用して書き込み回数が多いと判断された待機中の前記物理ブロックを選択し、当該選択した待機中の前記物理ブロックに、前記選択した使用中の前記物理ブロックに書き込まれているデータを書き換える見直し部をさらに備える請求項1に記載のメモリ制御装置。
- データの書き込みが要求された場合に、前記待機中ブロックデータを利用して待機中の前記物理ブロックの中から書き込み対象の前記物理ブロックを選択する選択部をさらに備える請求項1又は請求項2に記載のメモリ制御装置。
- 前記選択部は、前記書き込み回数範囲に設定された複数の前記分類区分のうちの前記書き込み回数が最小である前記分類区分に待機中の前記物理ブロックが分類されている場合には当該最小の分類区分に分類されている待機中の前記物理ブロックを書き込み対象の前記物理ブロックとして選択し、最小の前記分類区分に分類されている待機中の前記物理ブロックが無く、かつ、前記書き込み回数が次に少ない前記分類区分に待機中の前記物理ブロックが分類されている場合には当該分類区分に分類されている待機中の前記物理ブロックを書き込み対象の前記物理ブロックとして選択するという如く、書き込み回数の少ない前記分類区分から順に分類されている待機中の前記物理ブロックの有無を調べることにより、書き込み対象の前記物理ブロックを選択する請求項3に記載のメモリ制御装置。
- データの書き込み要求を受け取った場合に、書き込み要求に関連付けられているデータの書き込み先を表す論理アドレスに対応する物理アドレスを持つ前記物理ブロックに書き込まれているデータを削除することにより、当該物理ブロックを解放し、当該物理ブロックを使用中から待機中に遷移させる解放部をさらに備える請求項1乃至請求項4の何れか一つに記載のメモリ制御装置。
- 記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリと、
前記メモリへのデータの書き込みと削除を含むメモリ関連動作を制御する制御装置と
を備え、
前記制御装置は、
請求項1乃至請求項5の何れか一つに記載のメモリ制御装置と、
前記メモリ制御装置が利用するデータを含む情報を記憶する記憶部と、
前記メモリにデータを書き込む書き込み部と
前記メモリからデータを削除する削除部と
を備える記憶装置。 - 記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類し、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する
メモリ制御方法。 - 記憶領域へのデータの書き込みと削除を行う最小単位である物理ブロックが前記記憶領域に複数設定されているメモリにおける未使用あるいはデータが削除された待機中の前記物理ブロックに関する書き込み回数の最大値以下の書き込み回数範囲に設定された複数の分類区分のうちの何れかの区分に、待機中の前記物理ブロックを、当該物理ブロックの書き込み回数に基づいて分類する処理と、
待機中の前記物理ブロックが分類された区分を表す分類情報を含む待機中ブロックデータを利用して待機中の前記物理ブロックの中から選択された前記物理ブロックが書き込み処理によって待機中から使用中に遷移した場合に、使用中に遷移した前記物理ブロックに関連付けられている書き込み回数を更新する処理と
をコンピュータに実行させる処理手順を表すコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016011304A JP2017134446A (ja) | 2016-01-25 | 2016-01-25 | メモリ制御装置、記憶装置、メモリ制御方法およびコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016011304A JP2017134446A (ja) | 2016-01-25 | 2016-01-25 | メモリ制御装置、記憶装置、メモリ制御方法およびコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017134446A true JP2017134446A (ja) | 2017-08-03 |
Family
ID=59503655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016011304A Pending JP2017134446A (ja) | 2016-01-25 | 2016-01-25 | メモリ制御装置、記憶装置、メモリ制御方法およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017134446A (ja) |
-
2016
- 2016-01-25 JP JP2016011304A patent/JP2017134446A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9600408B2 (en) | Data storage device and method for flash block management | |
US7882300B2 (en) | Apparatus and method for managing nonvolatile memory | |
EP3588259B1 (en) | Garbage collection method for storage media, storage medium, and program product | |
US9208067B2 (en) | Storage system and storage control method that compress and store data elements | |
TWI662418B (zh) | Information processing device and memory access method | |
KR101929584B1 (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US20140181378A1 (en) | Control device, control method, and program | |
JP2009003880A (ja) | 不揮発性メモリの制御装置及びその制御方法及び記憶装置 | |
JP6107802B2 (ja) | 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム | |
JP2015191336A (ja) | メモリ制御装置、情報処理装置とその制御方法、及びプログラム | |
US8271721B2 (en) | Data writing method and data storage device | |
JP2010237907A (ja) | ストレージ装置および記録方法 | |
JP5858081B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP2016184402A (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法 | |
US10346040B2 (en) | Data merging management method based on data type, memory storage device and memory control circuit unit | |
JP6988445B2 (ja) | ストレージシステム、制御装置及び制御方法 | |
KR101676175B1 (ko) | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 | |
US9501414B2 (en) | Storage control device and storage control method for cache processing according to time zones | |
JP2018185842A (ja) | メモリ制御装置及び情報処理システム | |
JP2017134446A (ja) | メモリ制御装置、記憶装置、メモリ制御方法およびコンピュータプログラム | |
US20110082995A1 (en) | Information processing apparatus | |
KR100908637B1 (ko) | 플래시 메모리의 데이터 관리방법 | |
JP2020086748A (ja) | メモリコントローラ、及びメモリシステム | |
JP2014115927A (ja) | プログラム更新装置、方法、プログラム、及び記憶媒体 | |
JP2013109404A (ja) | 情報処理装置 |