(57)【要約】【課題】データごとに必要なデータ保持期間を確保できる記憶装置を提供することを課題とする。【解決手段】データを記憶する機能を有し、データの書き換え回数に応じて記憶されたデータを保持できる期間が短くなる複数のブロックと、複数のブロック毎のデータ書き換え回数を平準化させるウェアレベリングを行うウェアレベリング手段１２を有する記憶装置１０であって、記憶装置１０を複数のブロック群に分割するブロック群分割手段１２を有し、ウェアレベリング手段１２は分割されたブロック群の範囲内でウェアレベリングを行うことを特徴とし、ブロック群分割手段１２がアプリケーション毎に使用するブロック群を割り当てると好適である。【選択図】図１
2011103077.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する機能を有し、データの書き換え回数に応じて記憶されたデータを保持できる期間が短くなる複数のブロックと、前記複数のブロック毎のデータ書き換え回数を平準化させるウェアレベリングを行うウェアレベリング手段を有する記憶装置であって、
前記記憶装置を複数のブロック群に分割するブロック群分割手段を有し、
前記ウェアレベリング手段は、前記ブロック群分割手段で分割したブロック群の範囲内でウェアレベリングを行うことを特徴とする記憶装置。
【請求項２】
前記ブロック群分割手段は、前記記憶装置にデータを記憶させるアプリケーション毎に使用するブロック群を割り当てることを特徴とする請求項１に記載する記憶装置。
【請求項３】
前記記憶装置は、フラッシュメモリであることを特徴とする請求項１又は請求項２に記載する記憶装置。
【請求項４】
前記ウェアレベリング手段は、ブロック群毎に、各ブロックのデータ書き換え回数を管理し、データ書き換え回数に応じてデータ書き換えを行うブロックを選択することを特徴とする請求項１〜請求項３のいずれか１項に記載する記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に関する。
【背景技術】
【０００２】
フラッシュメモリやＳＤメモリカードなどの記憶装置は、データの書き換えが可能であり、電源がオフした後でも記憶されているデータが消えないで保持される。しかし、このような記憶装置では、各ブロックに対して一定回数以上の書き込み／消去を実行すると書き込みエラーが発生し、それ以降はバッドブロックとなって使用不可となる。例えば、ＮＡＮＤ型フラッシュメモリの場合、各ブロックへの書き込み／消去回数がＳＣＬで１０万回、ＭＣＬで１万回程度で書き込みエラーが発生する。書き込みエラーが多発すると、使用できる書き込み可能な領域が減少し、必要な書き込みサイズを維持できなくなる。そのため、書き込み／消去回数を制限する必要がある。また、このような記憶装置では、データの書き換え回数が増加するとデータを保持できる期間が短くなる（データリテンションが低下する）。例えば、ＮＡＮＤ型フラッシュメモリの場合、図５に示すように、書き込み／消去回数が所定回数を超えると、データリテンションが書き込み／消去回数の増加に応じて直線的に低下する。
【０００３】
そこで、各ブロックに対して一定の書き込みスレッシュ回数を設け、あるブロックの書き込み回数がスレッシュ回数を超えると別のブロックに書き込む処理を行い、各ブロックへの書き込み／消去回数を平準化するウェアレベリングを行っている。特許文献１には、ＮＡＮＤ型フラッシュメモリ上の特定領域に書き換えが集中するのを防止するために、全ブロックの書き換え頻度を分散させるウェアレベリングが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３２２５６号公報
【特許文献２】特開２００８−１１２２８５号公報
【特許文献３】特開２００３−２０８３５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
記憶装置に保存されるデータには、書き換え頻度が多いデータ（書き込みが主であるデータ）と書き換え頻度が少ないデータ（読み込みが主であるデータ）とが混在する場合がある。例えば、車両の場合、車両ダイアグデータのように少量のデータを周期的に書き換えるものと地図データのように読み込みが主であるデータが存在する。車両ダイアグデータの場合、例えば、５００ｍ秒毎に１レコードで３５６ｂｙｔｅを書き込み、最大５日分のデータを保持しておく必要があり、１日の車両の使用時間を１０時間と仮定すると、１日だけで７２０００回の書き込みが発生する。一方、地図データの場合、データを保持しなければならない期間が長く（年単位）、そのデータ保持期間以上保証する必要がある。このような書き換え頻度が多いデータと書き換え頻度が少ないデータとが混在する場合にウェアレベリングを行うと、書き換え頻度の少ないデータが保存されているブロックが書き換え頻度の多いデータの書き換えを行う対象のブロックとなる場合がある。その場合、書き換え頻度の少ないデータがデータリテンションが劣化したブロックに保存され、そのデータに必要な保持期間分データを保持できない虞がある。
【０００６】
そこで、本発明は、データごとに必要なデータ保持期間を確保できる記憶装置を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明に係る記憶装置は、データを記憶する機能を有し、データの書き換え回数に応じて記憶されたデータを保持できる期間が短くなる複数のブロックと、複数のブロック毎のデータ書き換え回数を平準化させるウェアレベリングを行うウェアレベリング手段を有する記憶装置であって、記憶装置を複数のブロック群に分割するブロック群分割手段を有し、ウェアレベリング手段は、ブロック群分割手段で分割したブロック群の範囲内でウェアレベリングを行うことを特徴とする。
【０００８】
この記憶装置は、複数のブロックを有している。各ブロックは、データの書き換え回数に応じてデータを保持できる期間が短くなる。記憶装置では、ブロック群分割手段により複数のブロック群に分割する。これによって、書き換え頻度の多いデータを保存するためのブロック群や書き換え頻度の少ないデータを保存するためのブロック群などの複数のブロック群に分けることができる。ちなみに、各ブロック群は１つ以上のブロックからなるので、ブロック群の数＜ブロックの数である。そして、記憶装置では、ウェアレベリング手段によりブロック群単位でブロック群に含まれるブロックのデータ書き換え回数を平準化させる。これによって、書き換え頻度の多いデータを保存するためのブロック群や書き換え頻度の少ないデータを保存するためのブロック群などの各ブロック群で別々にウェアレベリングが行われることになる。その結果、書き換え頻度の少ないデータが書き換え頻度の多いデータが保存されていたブロックに保存されるようなことがなくなる。このように、記憶装置では、複数のブロック群に分け、ブロック群単位でウェアレベリングを行うことにより、データごとに必要なデータ保持期間を確保することができる。
【０００９】
本発明の上記記憶装置では、ブロック群分割手段は、記憶装置にデータを記憶させるアプリケーション毎に使用するブロック群を割り当てると好適である。
【００１０】
アプリケーション毎に、書き換え頻度やデータ保持期間などが異なる。そこで、この記憶装置では、ブロック群分割手段によりアプリケーション毎に使用するブロック群を割り当て、ウェアレベリング手段により各アプリケーションのブロック群単位でブロック群に含まれるブロックのデータ書き換え回数を平準化させる。このように、記憶装置では、アプリケーション単位で複数のブロック群に分け、各アプリケーションのブロック群単位でウェアレベリングを行うことにより、アプリケーションごとにデータ保持期間を確保することができる。
【００１１】
本発明の上記記憶装置では、記憶装置は、フラッシュメモリであると好適である。また、本発明の上記記憶装置では、ウェアレベリング手段は、ブロック群毎に、各ブロックのデータ書き換え回数を管理し、データ書き換え回数に応じてデータ書き換えを行うブロックを選択する構成とする。
【発明の効果】
【００１２】
本発明は、複数のブロック群に分け、ブロック群単位でウェアレベリングを行うことにより、データごとに必要なデータ保持期間を確保することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態に係るストレージデバイス制御装置の構成図である。
【図２】各サービスの使用領域サイズを演算方法の説明図である。
【図３】図１の記憶装置における各サービスに対する領域の割り当ての一例である。
【図４】ＮＡＢＤ型フラッシュメモリの内部構成の一例である。
【図５】ＮＡＮＤ型フラッシュメモリの書き込み／消去回数とデータリテンションの関係の一例を示すグラフである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明に係る記憶装置の実施の形態を説明する。なお、各図において同一又は相当する要素については同一の符号を付し、重複する説明を省略する。
【００１５】
本実施の形態では、本発明に係る記憶装置を、車両に搭載されるストレージデバイス制御装置に適用する。本実施の形態に係るストレージデバイス制御装置は、ストレージデバイス（記憶装置）を備えており、車両の各ＥＣＵ[Electronic Control Unit]におけるサービス（アプリケーション）のデータをストレージデバイスに書き込み／読み込み制御を行う。ストレージデバイスにデータを保存するサービスとしては、例えば、車両ダイアグサービス、リモートダイアグサービス、地図データ（道路情報）がある。
【００１６】
図１〜図４を参照して、ストレージデバイス制御装置１について説明する。図１は、本実施の形態に係るストレージデバイス制御装置の構成図である。図２は、各サービスの使用領域サイズを演算方法の説明図である。図３は、図１の記憶装置における各サービスに対する領域の割り当ての一例である。図４は、ＮＡＮＤ型フラッシュメモリの内部構成の一例である。
【００１７】
ストレージデバイス制御装置１は、サービス毎に、各サービスの書き込み方式を考慮して耐久年数（データを保持しなければならない期間）に必要な使用領域サイズを演算し、その使用領域サイズ分のブロック群（領域）を割り当て、その割り当てた領域単位でウェアレベリングを行う。ストレージデバイス制御装置１は、記憶装置１０、ＩＦ[InterFace]部１１、アクセス制御部１２を備えている。なお、本実施の形態では、アクセス制御部１２の各処理が特許請求の範囲に記載するブロック群分割手段及びウェアレベリング手段に相当する。但し、ブロック群分割手段については、設計段階で用いられるコンピュータでの処理で行う場合もある。
【００１８】
記憶装置１０は、車両に設けられるストレージデバイスであり、例えば、フラッシュメモリ（ＮＡＮＤ型、ＮＯＲ型）、ＳＤメモリカードである。記憶装置１０は、書き換え可能であり、電源が切られてもデータが消えない不揮発性のメモリである。記憶装置１０は、多数のブロックを有している。各ブロックは、書き換え回数が一定数を超えると、書き換え回数の増加に応じてデータを保持できる期間が短くなる。なお、記憶装置１０のメモリ容量としては、データを保存する全てのサービスについての使用領域サイズの合計サイズに対して十分に余裕を持たせたメモリ容量とする。
【００１９】
ＩＦ部１１は、記憶装置１０のＩＦ回路であり、例えば、ＮＡＮＤ型フラッシュメモリに対応したＩＦ回路、ＳＭメモリカードに対応したＩＦ回路である。
【００２０】
アクセス制御部１２は、ファイルシステムの制御装置（ＣＰＵ、ＲＡＭ、ファイルシステムの各処理を行うソフトウェアなどからなる装置）であり、記憶装置１０への各サービスのデータの書き込み／読み込み制御を行う。特に、アクセス制御部１２では、使用領域サイズ演算処理、領域割当処理、データ書込処理を行う。
【００２１】
使用領域サイズ演算処理について説明する。アクセス制御部１２では、記憶装置１０にデータ保存するサービス毎に、サービスの書き込み方式を考慮し、耐久年数の間保存するために必要な使用領域サイズを演算する。この演算は、サービスを開始する前に、予め行う。なお、車両ダイアグサービスや地図データ（道路情報）などのサービスのように設計段階において搭載することが決まっているサービスについては、設計段階においてコンピュータで使用領域サイズ演算処理を行い、各サービスの使用領域サイズを演算しておいてもよい。この場合、アクセス制御部１２では、配信サービスなどによって後から追加されるサービスについてのみ使用領域サイズ演算処理を行う。
【００２２】
具体的な演算方法としては、図２に示すように、書き込み上限回数、耐久年数、デバイス（記憶装置１０）の物理構成、サービスの書き込み方式に基づいて、使用領域サイズを演算する。この使用領域サイズは、データを耐久年数の間保持できかつサービスの書き込み方式に応じて書き込みを行った場合に全てのブロックの書き込み回数が上限回数を超えないサイズである。
【００２３】
書き込み上限回数は、図５に示すような、各デバイスの書き込み／消去回数とデータリテンションとの関係に基づいて、データリテンションが低下しない上限回数などが設定される。耐久年数は、基本的には、サービスとして保証しなければならない期間（車両の場合、一般には７年〜１０年程度）を考慮して設定される。地図データのように年単位で更新することが決まっているサービスの場合、その更新年数から余裕を持たせて耐久年数が設定される。ちなみに、耐久年数となっているが、サービスとして保証しなければならない期間が日単位、月単位で設定されている場合にはそれに応じた期間とする。デバイスの物理構成は、各デバイスの仕様に基づいて設定され、例えば、１ブロックあたりのページ数である。サービスの書き込み方式は、各サービスの仕様に基づいて設定され、例えば、書き込み周期、１回の書き込みのデータｂｙｔｅ数がある。
【００２４】
領域割当処理について説明する。アクセス制御部１２では、図３に示すように、各サービスに対して演算された使用領域サイズに基づいて、デバイス（記憶装置１０）において各サービスのデータを保存する領域（ブロック群）をそれぞれ割り当てる。この際、デバイスの領域をＲｅａｄ／Ｗｒｉｔｅ領域とＲｅａｄ領域に分け、車両ダイアグサービスなどのように書き込みが主であるサービスについてＲｅａｄ／Ｗｒｉｔｅ領域内に領域を割り当て、道路情報などのように読み出しが主でサービスについてはＲｅａｄ領域内に領域を割り当てる。このように領域を分ける理由としては、従来のウェアレベリング技術で行われる書き込み回数の平準化などで、読み込みを主とするデータ領域に不要な書き込み／消去が発生しないようにするためである。
【００２５】
この領域の割り当ては、サービスを開始する前に、予め行う。なお、使用領域サイズ演算処理と同様に、設計段階において搭載することが決まっているサービスについては、設計段階においてコンピュータで領域割当処理を行い、各サービスのデータを保存する領域を割り当てておいてもよい。この場合、アクセス制御部１２では、配信サービスなどで後から追加されるサービスについてのみ領域割当処理を行う。
【００２６】
データ書込処理について説明する。アクセス制御部１２では、サービス毎に、そのサービスの書き込み方式に応じて、そのサービスの割り当てられている領域内にデバイスの最も効率的に書き込める単位ごとにシーケンシャルにデータの書き込み／消去を実施する（つまり、リングバッファ方式でのデータの書き換え）。デバイスの最も効率的に書き込める単位としては、例えば、ＮＡＮＤ型フラッシュメモリの場合にはページ単位である。
【００２７】
このように、割り当てられている領域内で、前回書き込んだブロックの次のブロックから書き込み／消去を行い、割り当てられている領域の最後のブロックに到達した場合には領域の先頭のブロックに戻って書き込み／消去を行うことにより、領域内の各ブロックのデータ書き換え回数が均等になる。したがって、割り当てられている領域単位でシーケンシャルにデータの書き込み／消去は、各ブロックのデータ書き換え回数を管理して、各ブロックへの書き込み／消去回数を平準化するウェアレベリングを行っていることになる。また、各サービス単位で割り当てられている領域内でデータの書き換えを行うので、他のサービスに割り当てられている領域のブロックにデータの書き換えを行うようなことは確実になくなる。
【００２８】
なお、道路情報などのように読み込みが主であるサービスについては、基本的には、データ更新時以外には書き込み／消去は実施されない。そのため、Ｒｅａｄ領域については、データリテンションが低下しない。
【００２９】
図４を参照して、記憶装置１０（デバイス）としてＮＡＮＤ型フラッシュメモリを適用した一例を説明する。サービスとしては、車両ダイアグサービスの場合である。前提条件として、書き込み上限回数は、例えば、１ページあたり１００回とする。耐久年数は、１０年間とする。これは、車両で一般に必要とされる耐久年数（７〜１０年）考慮したものである。デバイスの物理構成は、１ブロックが６４ページ（１ページはデータ部：２０４８ｂｙｔｅ、冗長部：６４ｂｙｔｅ）で構成されるものとする（図４参照）。ＮＡＮＤ型フラッシュメモリの仕様により、デバイスへの書き込みは１ページ単位とする。車両ダイアグサービスのデータの書き込み方式は、車両ダイアグサービスの仕様に則り、１レコードあたり３５６ｂｙｔｅを５００ｍ秒毎に保存するものとする。
【００３０】
ＮＡＮＤ型フラッシュメモリの１ページは２０４８ｂｙｔｅなので、１ページには車両ダイアグサービスのデータの５レコード分（１レコードが３５６ｂｙｔｅなので、３５６×５＝１７８０ｂｙｔｅ）を保存することができる。そのため、５００ｍ秒×５レコード＝２．５秒毎に１ページ単位で書き込むこととする。この際、重要なのは、１ページ２０４８ｂｙｔｅアライメントでデバイスへ書き込むことである。もし、１ページアライメントを無視して２ページにまたがるようにデバイスに書き込んだ場合、１ページ目と２ページ目を読み込んで、データを整合して、更に１ページ目と２ページ目に書き込むという不要な書き込みが発生する（書き込み回数の増加）。
【００３１】
１ページあたり１００回の書き込み上限回数で１０年間に必要なページ数は、１０年×３６５日×２４時間×６０分×６０秒÷２．５秒÷１００回＝１２６１４４０ページとなる。ここでは、１年間に３６５日、１日に２４時間、車両を使用し続けるものとして計算している。必要なブロック数は、１２６１４４０ページ÷６４ページ＝１９７１０ブロックとなる。必要な使用領域サイズは、１９７１０ブロック×（２０４８ｂｙｔｅ×６４ページ）＝２５８３４２９１２０ｂｙｔｅ（約２．５８Ｇｂｙｔｅ）である。さらに、使用するＮＡＮＤ型フラッシュメモリの信頼性（ＰＰＭ）として数％程度の余裕度を持たせておくとよい。例えば、５％の余裕度とすると、２．５８Ｇｂｙｔｅ×１．０５＝２．７０９Ｇｂｙｔｅである。
【００３２】
上記のように車両ダイアグサービスの使用領域サイズが予め演算されると、その使用領域サイズに応じてデバイスにそのサイズ分の領域が予め割り当てられる。ここでは、上記で演算された必要なブロック数に応じてそのブロック数分の領域を割り当ててもよい。そして、車両が走行する毎に、その割り当てられている領域内に、１ページ分の車両ダイアグデータ（１７８０ｂｙｔｅ分のデータ）を２．５秒毎にシーケンシャルに書き込んでゆく。ちなみに、他のサービスについても、同様に、使用領域サイズの演算及び領域の割り当てを予め行い、車両が走行する毎にシーケンシャルにデータを書き込んでゆく。
【００３３】
このストレージデバイス制御装置１によれば、サービス毎に耐久年数に必要な使用領域サイズを求め、その使用領域サイズ分の割り当てられた領域内でウェアレベリングをそれぞれ実施するので、サービス毎に必要な耐久年数を確保することができる。特に、ストレージデバイス制御装置１では、デバイスをＲｅａｄ／Ｗｒｉｔｅ領域とＲｅａｄ領域に分け、書き込みが主であるサービス（書き換え頻度が多いサービス）にＲｅａｄ／Ｗｒｉｔｅ領域を割り当て、読み込みが主であるサービス（書き換え頻度が少ないサービス）にＲｅａｄ領域を割り当てているので、読み込みが主であるサービスに割り当てられた領域に書き込みが主であるサービスのデータが書き込み／消去されるようなことを確実に防止できる。
【００３４】
さらに、ストレージデバイス制御装置１によれば、サービス毎に書き込み上限回数を考慮して使用領域サイズを求め、その使用領域サイズ分の割り当てられた領域内でウェアレベリングをそれぞれ実施するので、各ブロックに書き込み上限回数を超えてデータが書き込まれることを防止できる。その結果、データリテンションの低下を抑制でき、書き込みエラーの発生も抑制できる。特に、ストレージデバイス制御装置１では、デバイスへ最も効率的に書き込める単位ごと（例えば、ＮＡＮＤ型フラッシュメモリの場合にはブロックの最小書き込み単位であるページごと）にシーケンシャルにデータを書き込んでいるので、デバイスへの書き込み／消去回数を最小限に抑えることができる。
【００３５】
また、ストレージデバイス制御装置１によれば、各サービスに割り当てられた領域内でシーケンシャルにデータを書き込むことにより、簡単な手法でウェアレベリングを実現できる。この際、使用領域サイズを求める際に書き込み上限回数を超えて書き込まれないようなサイズを求めているので、ブロック毎の書き込み／消去回数をカウントし、そのカウント数をスレッシュ回数で判定するような処理は必要ない。
【００３６】
以上、本発明に係る実施の形態について説明したが、本発明は上記実施の形態に限定されることなく様々な形態で実施される。
【００３７】
例えば、本実施の形態では車両に搭載されるストレージデバイス制御装置に適用したが、フラッシュメモリやＳＤメモリカードのような記憶装置を用いる他の様々なシステムに適用可能である。
【００３８】
また、本実施の形態ではフラッシュメモリやＳＤメモリに適用したが、ＳＳＤなどの他の記憶装置に適用してもよい。
【００３９】
また、本実施の形態では書き込み上限回数、耐久年数、デバイスの物理構成、サービスの書き込み方式に基づいて使用領域サイズを演算したが、他のパラメータも考慮する必要がある場合にはそのパラメータも考慮して演算を行う。
【００４０】
また、本実施の形態では各サービスに割り当てられた領域毎にシーケンシャルでデータを書き換えることによってウェアレベリングを行う構成としたが、他の手法でウェアレベリングを行ってもよい。
【符号の説明】
【００４１】
１…ストレージデバイス制御装置、１０…記憶装置、１１…ＩＦ部、１２…アクセス制御部
【図１】
2011103077.tif 000003
【図２】
2011103077.tif 000004
【図３】
2011103077.tif 000005
【図４】
2011103077.tif 000006
【図５】
2011103077.tif 000007