JP2012027806A - メモリ管理装置およびメモリ管理方法 - Google Patents

メモリ管理装置およびメモリ管理方法 Download PDF

Info

Publication number
JP2012027806A
JP2012027806A JP2010167715A JP2010167715A JP2012027806A JP 2012027806 A JP2012027806 A JP 2012027806A JP 2010167715 A JP2010167715 A JP 2010167715A JP 2010167715 A JP2010167715 A JP 2010167715A JP 2012027806 A JP2012027806 A JP 2012027806A
Authority
JP
Japan
Prior art keywords
data
write
writing
block
mode
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.)
Withdrawn
Application number
JP2010167715A
Other languages
English (en)
Inventor
Masaki Matsuura
正樹 松浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alpine Electronics Inc
Original Assignee
Alpine Electronics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alpine Electronics Inc filed Critical Alpine Electronics Inc
Priority to JP2010167715A priority Critical patent/JP2012027806A/ja
Publication of JP2012027806A publication Critical patent/JP2012027806A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 データの書込み中に電源遮断が生じた場合でも、既に書込み済のデータが修復できなくなるまで破壊されることのない電源障害耐性と、データ書込みの高速性とを両立可能な「メモリ管理装置およびメモリ管理方法」を提供する。
【解決手段】 書込み要求に係るデータのサイズがブロックを丸ごと含むほど大きい場合であって、最新の書込位置がブロックの先頭に合致した場合、データ書込モードを多値モードに切替えて書込要求に係るデータの書込みを行わせる。これにより、ブロック単位から外れた比較的小容量のデータの書込みは電源障害耐性に優れた複合モードで行われる一方、ブロック単位での比較的大容量のデータの書込みはデータ書込みの高速性に優れた多値モードで行われるようにする。
【選択図】図2

Description

本発明は、フラッシュメモリに対するデータの書込み制御を行うためのメモリ管理装置およびメモリ管理方法に関する。
最近の携帯情報端末等の情報処理装置では、起動時間が短く振動に強いという利点から、内蔵又は外部の記憶装置としてフラッシュメモリを用いるものが普及してきた。フラッシュメモリの記録容量向上を狙って、一のセルに2値を超える多値形式でデータを書込み可能な多値フラッシュメモリと呼ばれるものが開発された(例えば特許文献1参照)。多値フラッシュメモリでは、セルの浮遊ゲートに電子が注入されると、セルに蓄えられる電荷の量(閾値電圧)が変化する。この現象を利用して多値データを記憶する。特許文献1の多値化技術によれば、単位面積当たりの記録密度を高めて記録容量を大きくすることができる。
しかし、特許文献1に係る多値化技術は、データ書込みの信頼性が低いという問題がある。これについて説明すると、この多値化技術では、一のセルに対し、相異なる一対のページのデータが多値形式で書込まれる。このため、一のセルに第1のページのデータを書込んだ後、同一のセルに第1のページと対をなす第2のページのデータを書込み中に電源遮断が生じると、書込み中であった第2のページのデータのみならず、既に書込み済の第1のページのデータまでもが破壊されてしまう。
こうした不具合を解消するために、一のセルに2値形式でデータをいったん書込んだ後、この書込み済データを用いて他のセルに多値形式でデータを書込む技術が提案されている(例えば特許文献2,3参照)。また、同一のセルに相対するページの一部が書込まれる多値フラッシュメモリにおいて、複数のブロックから選択した一対のブロックのそれぞれに、相対するページのデータを多値形式で重複させて書込む技術が提案されている(例えば特許文献4参照)。
特許文献2,3に係る技術では、多値形式データを書込み中に電源遮断が生じた場合、該当するブロック内で書込み中の多値形式データは一時的に失われるが、2値形式の書込み済データを用いて全てのデータを復旧することができる。また、特許文献4に係る技術では、多値形式データを書込み中に電源遮断が生じた場合、一対のブロックのうち一方のブロックにおいて書込み中の多値形式データは失われるが、他方のブロックにおいて書込み済の多値形式データは残っている。従って、特許文献2〜4に係る技術によれば、データを書込み中に電源障害が生じた場合でも、既に書込み済のデータが修復できなくなるほど破壊されることはないため、電源障害耐性を高めることができる。
特開2000−173281号公報 特開2007−257109号公報 特開2008−003684号公報 特開2008−158955号公報
しかしながら、特許文献2,3に係る技術では、データ書込みを二段階に分けて行うこと、並びに2値データを多値データに変換するための演算を要することが災いし、データ書込みに長時間を要するという問題があった。また、特許文献4に係る技術では、同一のデータを一対のブロックにそれぞれ重複させて書込むため、特許文献2,3と同様に、データ書込みに長時間を要するという問題があった。
本発明は、こうした問題を解決するためになされたものであり、データの書込み中に電源遮断が生じた場合でも、既に書込み済のデータが修復できなくなるまで破壊されることのない電源障害耐性と、データ書込みの高速性とを両立できるようにすることを目的とする。
上記課題を解決するために、本発明に係るメモリ管理装置では、書込み要求に係るデータのサイズがブロックを丸ごと含むほど大きい場合であって、最新の書込位置がブロックの先頭に合致した場合、電源障害耐性に優れた複合モードからデータ書込みの高速性に優れた多値モードにデータ書込モードを切替えることとした。
本発明に係るメモリ管理装置では、書込み要求に係るデータのサイズがブロックを丸ごと含むほど大きい場合において、ブロック単位から外れた比較的小容量のデータの書込みは、電源障害耐性に優れた複合モードで行われる。一方、ブロック単位での比較的大容量のデータの書込みは、高速性に優れた多値モードで行われる。従って、本発明に係るメモリ管理装置によれば、データの書込み中に電源遮断が生じた場合でも既に書込み済のデータが修復できなくなるまで破壊されることのない電源障害耐性と、データ書込みの高速性とを両立することができる。
本実施形態に係るメモリ管理装置及びその周辺の概略構成図である。 図1のメモリ管理装置が行うデータ書込モード制御に係る処理の流れを示すフロー図である。 図1のメモリ管理装置が行う割込み処理の流れを示すフロー図である。 本実施形態に係るメモリ管理装置がデータ書込モード制御を伴うデータ書込みを行った場合にもたらされる効果を概念的に示す説明図である。 比較例1に係るメモリ管理装置が多値モードによりデータ書込みを行った場合に生じる問題を概念的に示す説明図である。 比較例2に係るメモリ管理装置が複合モードによりデータ書込みを行った場合に生じる問題を概念的に示す説明図である。
以下、本発明の一実施形態について、添付の図面を参照しながら詳細に説明する。
(メモリ管理装置及びその周辺の概略構成)
図1は、本実施形態に係るメモリ管理装置及びその周辺の概略構成図である。本実施形態に係るメモリ管理装置11は、入力系要素であるアプリケーション13を実装した不図示のマイクロコンピュータを接続する一方、出力系要素であるフラッシュメモリ15を、不図示の物理インタフェースを介して接続してなる。メモリ管理装置11は、フラッシュメモリ15の記憶領域にデータを書込むためのデータ書込モードとして、一のセルに2値を超える多値形式でデータを書込む多値モードと、一のセルに2値形式でデータを書込む2値モードによりいったんデータを書込んだ後、この書込み済データを用いて他のセルに多値モードによりデータを書込む複合モードとを有する。メモリ管理装置11は、フラッシュメモリ15に対して読み書き指令を行うと共に、読み書き指令に伴うデータの送受信を行う。なお、本実施形態に係るメモリ管理装置11では、複合モードを優先適用してフラッシュメモリ15に対するデータの書込み制御を行う。
アプリケーション13は、メモリ管理装置11に書込指令を行うと共に書込データを提供する機能と、書込指令に従ってデータ書込みが行われたか否かに係る書込成否を判断する機能とを有する。フラッシュメモリ15は、一のセルに対し一対のページに跨ったデータが書込まれる多値NAND型のメモリである。
フラッシュメモリ15は、メモリ管理装置11の物理インタフェースを介して電源の供給を受けて動作する。フラッシュメモリ15は、後述する書込制御部23からの書込指令を受けて、書込指令に従うデータ書込みを行う。フラッシュメモリ15は、複数(例えば4096個など)の物理ブロックを有する。各ブロックのサイズは、例えば512kB〜4MB程度である。ブロックは、データの消去単位である。各物理ブロックは、それぞれが例えば128ページからなる。各ページは、メモリ管理装置11からのアクセス単位であり、例えば2112バイトの記憶容量をもつ。
メモリ管理装置11は、バッファメモリ17及び制御部19を有する。バッファメモリ17は、フラッシュメモリ15に対する読み書き指令に従うデータを一時的に蓄積する。制御部19は、例えば、CPU(Central processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を備えたマイクロコンピュータにより構成される。CPUは、ROMに格納されたプログラムに従って、RAMをワークエリアとして用いて各種の処理を実行する。
具体的には、制御部19は、フラッシュメモリ15に対する読み書き指令を行うと共に、この読み書き指令に伴うデータの送受信を制御する。フラッシュメモリ15に対するデータの書込みを行うため、制御部19は、書込要求受付部21、書込制御部23、メモリ情報取得部25、ブロック書込判定部27、給電監視部31、及び無効化指令部33を備える。なお、データの読出しを行うための構成は、本発明の要旨と直接関係がないため省略する。
書込要求受付部21は、アプリケーション13から送信されてきた書込指令を受信・解釈し、データのサイズ情報を含む書込要求を受け付ける。ここで受け付けられた書込要求に含まれるデータのサイズ情報は、ブロック書込判定部27においてブロック書込判定を行う際に参照される。書込制御部23は、アプリケーション13から送信されてきた書込指令とは別に、書込要求に係るデータの書込指令を作成し、作成した書込指令をフラッシュメモリ15に発行する。これにより、書込制御部23は、書込要求に係るデータの書込みをフラッシュメモリ15に行わせる。
また、書込制御部23は、フラッシュメモリ15の記憶領域の物理状態を管理する。詳しく述べると、書込制御部23は、書込要求受付部21により受け付けたデータのサイズ情報を含む書込要求と、次述するメモリ情報取得部25により取得したメモリ情報と、後述するブロック書込判定部27によるブロック書込判定結果とに基づいて、書込要求に係るデータを書込処理する際に参照されるデータ書込スケジュールを作成する。このデータ書込スケジュールには、フラッシュメモリ15が有する記憶領域のうち任意の場所を一意に指定可能なアドレス情報(物理アドレスまたは論理アドレスのうちいずれか)に対応付けて、データ書込モードの種別(複合モードか、或いは多値モードか)が記述されている。このデータ書込モードの種別に代えて、データ書込モードの切替え内容(データ書込モードを、複合モードから多値モードに切替えるか、多値モードから複合モードに戻す)を記述してもよい。このデータ書込スケジュールの記述内容と、最新の書込位置とに基づいて、書込制御部23は、データ書込モードの種別の切替えを適確なタイミングで制御する。
メモリ情報取得部25は、フラッシュメモリ15が有する物理ブロックのサイズの情報、及びフラッシュメモリ15の記憶領域における最新の書込位置の情報(例えば、物理ブロックの物理アドレス)を含むメモリ情報を取得する。物理ブロックのサイズの情報は、次述するブロック書込み判定を行う際に参照される。最新の書込位置の情報は、データ書込みの進捗状況を判断する際に逐次参照される。
メモリ情報のうちフラッシュメモリ15が有する物理ブロックのサイズの情報の取得経路としては、例えば、フラッシュメモリ15の製品型番のバリエーション毎にメモリ情報を関連付けたテーブルを制御部19の中に予め記憶させておき、製品型番を与えることで対応するメモリ情報を取得すればよい。或いは、フラッシュメモリ15の側にメモリ情報を持たせておき、これを読み出すことでメモリ情報を取得してもよい。
メモリ情報の取得タイミングは、メモリ情報の内容によって異なる。フラッシュメモリ15が有する物理ブロックのサイズの情報は、フラッシュメモリ15に固有の情報で内容が変動する性質のものでないため、実際にデータ書込みを実行する前までに少なくとも1回取得すればよい。一方、フラッシュメモリ15の記憶領域における最新の書込位置の情報は、データ書込みの進捗に伴って時々刻々と内容が変動する性質のものであるため、データ書込みの進捗に伴って、例えば所定時間毎に繰り返し取得すればよい。
ブロック書込判定部27は、書込要求受付部21で受け付けた書込要求に係るデータのサイズ情報と、メモリ情報取得部25で取得したメモリ情報とに基づいて、書込要求に係るデータをフラッシュメモリ15の記憶領域に書込んだ場合に一以上のブロックを丸ごと含むブロック書込みが生じるか否かを判定する。この判定は、ブロックのサイズの情報を取得したときに、ブロック書込判定部27が行う。ブロック書込判定部27は、少なくとも1単位のブロック書込みが生じる場合に”Yes”の判定を下す。ただし、電源遮断耐性とデータ書込みの高速性とを比較考量した場合、前者が後者を上回る(データ書込みの高速性の要請が比較的低い)ようなフラッシュメモリ15の使用環境下では、所定数単位(ただし、所定数は2以上の任意の値)以上のブロック書込みが生じる場合に”Yes”の判定を下すような、ブロック書込判定部27の構成を採用してもよい。
ブロック書込判定部27によりブロック書込みが生じると判定された場合、書込制御部23は、メモリ情報取得部25により取得したメモリ情報のうち最新の書込位置がブロックの先頭に合致するか否かを判断する。最新の書込位置がブロックの先頭に合致しない(最新の書込位置がブロックの先頭に未だ達していない)と判断した場合、書込制御部23は、書込要求に係るデータの書込みを複合モードで行わせる書込指令をフラッシュメモリ15に発行する。一方、最新の書込位置がブロックの先頭に合致した(最新の書込位置がブロックの先頭に達した)と判断した場合、書込制御部23は、この合致したタイミングで、書込要求に係るデータの書込みを多値モードで行わせる書込指令をフラッシュメモリ15に発行する。
ブロック書込判定部27によりブロック書込みが生じると判定され、かつ、データ書込モードが多値モードに切替えられている場合(つまり、ブロック書込み実行中の場合)、書込制御部23は、メモリ情報取得部25により取得したメモリ情報のうち最新の書込位置がブロックの終端に合致するか否かを判断する。最新の書込位置がブロックの終端に合致しない(最新の書込位置がブロックの終端に未だ達していない)と判断した場合、書込制御部23は、書込要求に係るデータの書込みを多値モードで行わせる書込指令をフラッシュメモリ15に発行する。一方、最新の書込位置がブロックの終端に合致した(最新の書込位置がブロックの終端に達した)と判断した場合、書込制御部23は、この合致したタイミングで、書込要求に係るデータの書込みを複合モードで行わせる書込指令をフラッシュメモリ15に発行する。
給電監視部31は、フラッシュメモリ15への給電状態を監視する。例えば、フラッシュメモリ15がメモリ管理装置11の物理インタフェースから外れた場合に、給電監視部31は、フラッシュメモリ15に対する電源遮断を検出する。また、メモリ管理装置11それ自身の電源が遮断された場合は、給電監視部31は、例えば、バックアップ用電池から供給される電源を用いて自身の電源遮断を検出するか、或いは、メモリ管理装置11の電源供給が再開された場合に、過去に電源遮断があった旨を検出するなど、適当な技術的手段を用いて電源の遮断を検出すればよい。
無効化指令部33は、ブロック書込みの処理中に給電監視部31により電源の遮断が検出された場合、ブロック書込みの該当ブロックに係るデータを無効化する無効化指令をフラッシュメモリ15に発行する。ここで、データの無効化を行う趣旨はふたつある。すなわち、ブロック書込みの処理中に電源遮断が生じた場合、その該当ブロック以外のブロックに属するデータには何ら影響を及ぼさないが、その該当ブロックでは任意の部分(どの部分かは一般に追跡困難)のデータに瑕疵を生じる蓋然性が高いので、こうした瑕疵を一掃するのが第1の趣旨である。また、データの無効化が済んだ該当ブロックを再利用して初めからデータの書き直しを行うことにより、メモリ資源の有効活用を図るのが第2の趣旨である。
(データ書込モード制御に係る処理の流れ)
次に、本実施形態に係るメモリ管理装置11が行うデータ書込モード制御に係る処理の流れについて、図面を参照して説明する。図2は、本実施形態に係るメモリ管理装置11が行うデータ書込モード制御に係る処理の流れを示すフロー図である。図2に示すデータ書込モード制御に係る処理は、新しいデータ書込要求が生じる毎に開始される。
図2に示すステップS11において、書込制御部23は、データ書込モードを複合モードに優先設定する指令をフラッシュメモリ15に発行する。これにより、フラッシュメモリ15では、データ書込モードが複合モードに初期設定される。ステップS12において、書込要求受付部21は、アプリケーション13から送信されてきた書込指令を受信・解釈し、データのサイズ情報を含む書込要求を受け付ける。ステップS12は、”書込要求受付手順”に相当する。ステップS13において、メモリ情報取得部25は、フラッシュメモリ15からメモリ情報を取得する。ステップS13は、”メモリ情報取得手順”に相当する。
ステップS14において、ブロック書込判定部27は、書込要求受付部21で受け付けた書込要求に係るデータのサイズ情報と、メモリ情報取得部25で取得したメモリ情報とに基づいて、書込要求に係るデータをフラッシュメモリ15の記憶領域に書込んだ場合に1単位以上のブロックを丸ごと含むブロック書込みが生じるか否かを判定する。ステップS14において、ブロック書込判定部27は、1単位以上のブロック書込みが生じる場合に”Yes”の判定を下す。ステップS14は、”ブロック書込判定手順”に相当する。
書込制御部23は、ステップS12で受け付けたデータのサイズ情報を含む書込要求と、ステップS13で取得したメモリ情報と、ステップS14によるブロック書込判定結果とに基づいて、書込要求に関するデータ書込スケジュールを作成する。このデータ書込スケジュールには、フラッシュメモリ15における記憶領域の相互に異なるアドレスに対応付けて、相応しいデータ書込モードの内容(モードの切替えタイミングでも可)が記述されている。
ステップS14の判定の結果、1単位以上のブロック書込みが生じない旨の判定が下された場合、制御部19は、処理の流れをステップS15に進ませる。ステップS15において、書込制御部23は、メモリ情報取得部25により取得したメモリ情報のうち最新の書込位置と、データ書込スケジュールとに基づいて、書込要求に係る全データの書込みが終了したかを調べる。そして、制御部19は、全データの書込み終了を待って、全ての処理の流れを終了させる。
ステップS14の判定の結果、1単位以上のブロック書込みが生じる旨の判定が下された場合、ステップS16において、書込制御部23は、メモリ情報取得部25により取得したメモリ情報のうち最新の書込位置がブロックの先頭に合致するか否かを判断する。
ステップS16の判断の結果、最新の書込位置がブロックの先頭に合致しない(最新の書込位置がブロックの先頭に未だ達していない)と判断された場合、ステップS17において、書込制御部23は、書込要求に係るデータの書込みを初期設定された複合モードで行わせる書込指令をフラッシュメモリ15に発行する。これにより、フラッシュメモリ15では、複合モードによるデータ書込処理が行われる。このデータ書込処理は、例えば、予め定めた任意のアドレス数の分だけ行われる(以下、同様)。書込指令に従うデータ書込処理が行われると、ステップS18において、メモリ情報取得部25は、最新の書込位置を(前述の任意のアドレス数の分だけ;以下、同様)更新する。
ステップS19において、書込制御部23は、メモリ情報取得部25により取得したメモリ情報のうち最新の書込位置と、データ書込スケジュールとに基づいて、書込要求に係る全データの書込みが終了したか否かを判断する。ステップS19の判断の結果、書込要求に係る全データの書込みが未だ終了していないと判断された場合、制御部19は、処理の流れをステップS16へと戻し、以下の処理を実行させる。一方、ステップS19の判断の結果、書込要求に係る全データの書込みが終了したと判断された場合、制御部19は、全ての処理の流れを終了させる。
一方、ステップS16の判断の結果、最新の書込位置がブロックの先頭に合致した(最新の書込位置がブロックの先頭に達した)と判断された場合、ステップS20において、書込制御部23は、初期設定された複合モードから多値モードに切替えて書込要求に係るデータの書込みを行わせる書込指令をフラッシュメモリ15に発行する。これにより、フラッシュメモリ15では、多値モードによるデータ書込処理が行われる。書込指令に従うデータ書込処理が行われると、ステップS21において、メモリ情報取得部25は、最新の書込位置を更新する。
ステップS22において、書込制御部23は、ステップS21で更新した最新の書込位置がブロックの終端に合致するか否かを判断する。ステップS22の判断の結果、最新の書込位置がブロックの終端に合致しない(最新の書込位置がブロックの終端に未だ達していない)と判断された場合、制御部19は、処理の流れをステップS20へと戻して、以下の処理を実行させる。一方、ステップS22の判断の結果、最新の書込位置がブロックの終端に合致した(最新の書込位置がブロックの終端に達した)と判断された場合、制御部19は、処理の流れをステップS16へと戻して、以下の処理を実行させる。なお、ステップS16からS22に至る一連の処理は、”書込制御手順”に相当する。
(割込み処理の流れ)
次に、本実施形態に係るメモリ管理装置11が行う割込み処理の流れについて、図面を参照して説明する。図3は、メモリ管理装置11が行う割込み処理の流れを示すフロー図である。図3に示す割込み処理は、給電監視部31の給電監視の結果、フラッシュメモリ15に対する電源の遮断が検出された場合に実行される。
図3に示すステップS31において、無効化指令部33は、ブロック書込みの該当ブロックに係るデータを無効化する無効化指令をフラッシュメモリ15に発行する。これにより、フラッシュメモリ15では、ブロック書込みの該当ブロックに係るデータの消去が行われる。
(データ書込モード制御を伴うデータ書込みの実施形態)
次に、データ書込モード制御を伴うデータ書込みの実施形態について、図面を参照して説明する。図4は、本実施形態に係るメモリ管理装置11によりデータ書込モード制御を伴うデータ書込みを行った場合に、本実施形態の効果がもたらされる様子を概念的に示す説明図である。
図4に示すフラッシュメモリ15では、説明の便宜上、4つの物理ブロックB0,B1,B2,B3を拡大して表した。同図に示すフラッシュメモリ15の右側部分には、記憶領域が複数の物理ブロックB0〜B3によって均等に区切られている様子を表す。同図の左側部分には、複数に区切られたそれぞれの記憶領域毎にもたらされる本実施形態の効果を概念的に示した。物理ブロックB0には、先頭を表す物理アドレスB0_S、終端を表す物理アドレスB0_E、これらのちょうど中間に位置する物理アドレスB0_Mがそれぞれ付与されている。同様に、物理ブロックB1,B2には、先頭を表す物理アドレスB1_S,B2_S、終端を表す物理アドレスB1_E,B2_Eがそれぞれ付与されている。そして、物理ブロックB3には、先頭を表す物理アドレスB3_S、終端を表す物理アドレスB3_E、これらのちょうど中間に位置する物理アドレスB3_Mがそれぞれ付与されている。
図4に示す物理ブロックB0のうち先頭アドレスB0_Sと中間アドレスB0_Mとの間の領域A00は、既に書込み済のデータ領域を表す。同様に、物理ブロックB3のうち中間アドレスB3_Mと終端アドレスB3_Eとの間の領域A31も、既に書込み済のデータ領域を表す。本実施形態において、物理ブロックB0のうち中間アドレスB0_Mと、物理ブロックB3のうち中間アドレスB3_Mとの間の領域(領域A01+A1+A2+A30)が、書込要求に係るデータの占有領域に相当するものとする。
前述のサイズ情報を含む書込要求に係るデータを受けた制御部19において、ブロック書込判定部27は、2単位分のブロック書込み(物理ブロックB1及びB2)が生じる旨の判定を下す。この場合、書込制御部23は、物理ブロックB0のうち中間アドレスB0_Mと終端アドレスB0_Eとの間の領域A01と、物理ブロックB3のうち先頭アドレスB3_Sと中間アドレスB3_Mとの間の領域A30では、電源遮断耐性に優れた複合モードによるデータ書込みを行う旨の判断を下す。また、書込制御部23は、物理ブロックB1及びB2に係る領域(領域A1+A2)では、データ書込みの高速性に優れた多値モードによるデータ書込みを行う旨の判断を下す。
ここで、本実施形態に係る多値NAND型のフラッシュメモリ15では、多値モードにより一のセルに第1のページのデータを書込んだ後、同一のセルに第1のページと対をなす第2のページのデータを書込み中に電源遮断が生じると、書込み中であった第2のページのデータのみならず、既に書込み済の第1のページのデータまでもが破壊されてしまう。しかも、こうして破壊されてしまった第1のページのデータは、フラッシュメモリ15の仕様上、どのアドレスに格納されていたどのデータであるかを追跡することが困難である。このため、破壊されてしまった第1のページのデータを修復することは二度とできなくなってしまう。要するに、多値モードによるデータ書込みは、修復できなくなるまでデータが破壊されるリスクを本来的に内在している。
しかし、本実施形態では、多値モードによるデータ書込みはブロック単位で行われる。このため、例えば、物理ブロックB2での多値モードによるデータ書込み中に電源遮断が生じた場合に、別の物理ブロックB0,B3内にある既に書込み済のデータが破壊されることはない。従って、この場合、物理ブロックB2に関するデータ書込みをはじめからやり直しさえすれば、書込要求に係るデータ書込みの実行に支障を来たすことはないし、既に書込み済のデータに支障を来たすこともない。
また、多値モードによるデータ書込みでは、複合モードによるそれと比べて、データ書込みの速度が約3倍程度速い。このため、多値モードによるデータ書込みが行われる多値モード書込領域(A1+A2)では、高速性に優れたデータ書込みを実現することができる。
多値モードによるデータ書込みに対し、複合モードによるデータ書込みでは、仮に、その書込み中に電源遮断が生じた場合でも、共通の物理ブロックB0,B3内にある既に書込み済のデータが修復できなくなるまで破壊されることはない。このため、複合モードによるデータ書込みが行われる複合モード書込領域(A01+A30)では、電源遮断耐性に優れたデータ書込みを実現することができる。
要するに、本実施形態では、多値モードによるデータ書込みはブロック単位のデータに限って適用するようにしている。これにより、多値モードによるデータ書込み時に、修復できなくなるまでデータが破壊される事態を未然に回避すると共に、書込要求に係る全データの処理の高速化を図っている。
(多値モードによるデータ書込みの比較例1)
次に、多値モードによるデータ書込みの比較例1について、図面を参照して説明する。図5は、比較例1に係るメモリ管理装置が多値モードによりデータ書込みを行った場合に生じる問題を概念的に示す説明図である。
図5に示す比較例1では、書込要求領域(A01+A1+A2+A30)の全てに対し、多値モードによるデータ書込みが行われる。この場合において、仮に、多値モード書込領域(A01+A30)における書込み中に電源遮断が生じた場合、共通の物理ブロックB0,B3内にある既に書込み済のデータは、多値モードによるデータ書込みが本来的に内在する”修復できなくなるまでデータが破壊される”リスクを負う蓋然性が高い。このため、比較例1に係る多値モード書込領域(A01+A30)では、電源遮断耐性に優れたデータ書込みを実現することはできないことがわかる。
(複合モードによるデータ書込みの比較例2)
次に、複合モードによるデータ書込みの比較例2について、図面を参照して説明する。図6は、比較例2に係るメモリ管理装置が複合モードによるデータ書込みを行った場合に生じる問題を概念的に示す説明図である。
図6に示す比較例2では、書込要求領域(A01+A1+A2+A30)の全てに対し、複合モードによるデータ書込みが行われる。この場合には、仮に、複合モード書込領域(A01+A30)における書込み中に電源遮断が生じた場合であっても、共通の物理ブロックB0,B3内にある既に書込み済のデータが修復できなくなるほど破壊されることはない。しかし、比較例2に係る複合モード書込領域(A01+A1+A2+A30)では、データ書込みに長時間を要する。このため、高速性に優れたデータ書込みを実現することはできないことがわかる。
以上説明したように、本実施形態に係るメモリ管理装置11では、ブロック書込みが生じる場合、最新の書込位置がブロックの先頭に合致するタイミングで、データ書込モードを電源障害耐性に優れた複合モードからデータ書込みの高速性に優れた多値モードに切替える。従って、本実施形態に係るメモリ管理装置11によれば、データの書込み中に電源遮断が生じた場合でも、既に書込み済のデータが修復できなくなるまで破壊されることのない電源障害耐性と、データ書込みの高速性とを両立することができる。
また、本実施形態に係るメモリ管理装置11では、データ書込モードが多値モードに切替えられている場合であって、最新の書込位置がブロックの終端に合致合致した場合、データ書込モードを複合モードに戻すようにしている。従って、ブロック単位のデータ書込み後にブロック単位から外れた比較的小容量のデータの書込みが未だ残っている場合に、このデータに係る書込モードを、優先適用された複合モードに速やかに戻すことができる。
さらに、本実施形態に係るメモリ管理装置11では、ブロック書込みの処理中に給電監視部31により電源の遮断が検出された場合、ブロック書込みの該当ブロックに係るデータを無効化するようにしている。従って、ブロック書込みの途中に電源遮断が生じた場合でも、電源遮断によって瑕疵を生じたデータを一掃すると共に、データの無効化が済んだ該当ブロックを再利用して初めからデータの書き直しを行うことにより、メモリ資源の有効活用を図ることができる。
なお、本実施形態に係るメモリ管理装置11の制御部19は、ソフトウェアドライバの態様で実現することができる。このように構成すれば、書込要求に係るデータのサイズと最新の書込位置の情報に基づいてデータ書込モードの切替えに係る条件判断をドライバレベルで行うことができる。従って、アプリケーションの変更を要することなく、データ書込モード制御機能に係る実装を簡易に実現することができる。
また、本実施形態に係るメモリ管理装置11は、その適用用途を特に限定することなく、あらゆる態様で実施することができる。一例をあげれば、内蔵メモリ又は外部メモリとしてフラッシュメモリを有する車載用ナビゲーション装置において、このフラッシュメモリに対するデータの書込み制御を行う用途に、本実施形態に係るメモリ管理装置11を適用してもよい。この場合、本実施形態に係るメモリ管理装置11は、例えば、車載用ナビゲーション装置に組み込んで構成すればよい。
車載用ナビゲーション装置において、経路の案内又は誘導を行う通常の使用時には、大容量のデータを書き込む機会はほとんど生じない。このため、こうした通常の使用時においては、シーケンシャルライトが多少遅くても問題にはならず、それよりも電源遮断耐性が求められる。従って、本実施形態のように、電源遮断耐性の高い複合モードを優先適用するのが好ましい。
ところが、例えば、車載用ナビゲーション装置の工場出荷時や、年次の地図データベースを定期更新する場合等には、マスターデータを用いて10GB程度の比較的大容量の地図データをフラッシュメモリに書込むべき要請が生じる。この要請に応えるための所要時間は、例えば、多値モードによるデータ書込み(比較例1参照)では約10分程度であるが、複合モードによるデータ書込み(比較例2参照)では約30分程度と約3倍も長くかかってしまう。
この点、車載用ナビゲーション装置に搭載されたフラッシュメモリに対する地図データの書込み制御を行う用途に本実施形態に係るメモリ管理装置11を適用した場合、メモリ管理装置11は次のように動作する。すなわち、書込み要求に係る地図データのサイズがブロックを丸ごと含むほど大きい場合に、ブロック単位から外れた比較的小容量の地図データの書込みは、電源障害耐性に優れた複合モードで行われる。一方、ブロック単位での比較的大容量の地図データの書込みは、高速性に優れた多値モードで行われる。このため、フラッシュメモリに対する地図データ書込み要求を、全体として高速に処理することができる。
従って、車載用ナビゲーション装置に搭載されたフラッシュメモリに対する地図データの書込み制御を行う用途に、本実施形態に係るメモリ管理装置11を適用した場合、地図データの書込み中に電源遮断が生じた場合でも既に書込み済のデータが修復できなくなるまで破壊されることのない電源障害耐性と、地図データ書込みの高速性とを両立することができる。同時に、工場出荷時、或いは地図データベース更新時の生産性の向上を実現することができる。
さらに、本実施形態に係るメモリ管理装置11として、物理インタフェースを介してフラッシュメモリ15を外部接続し、このフラッシュメモリ15に対するデータの書込み制御を行う態様を例示して説明したが、本発明はこの例に限定されない。フラッシュメモリ15の一構成要素として、本実施形態に係るメモリ管理装置11を一体に構成してもよい。
また、本実施形態に係るメモリ管理装置11として、データ書込スケジュールと呼ぶテーブルを用いて、最新の書込位置に対応するデータ書込モードを判断し、この判断に従ってデータ書込モードの制御を行う態様を例示して説明したが、本発明はこの例に限定されない。最新の書込位置と、書込要求に係る残余のデータ量とを参照して、ブロック書込みが生じるか否か、及び最新の書込位置にふさわしいデータ書込モードを逐次判断し、この判断に従ってデータ書込モードの制御を行う態様を採用してもよい。
また、本実施形態に係るフラッシュメモリ15は、例えばSDメモリカード、USB(Universal Serial Bass)メモリなどの形態で実現されているか、或いは将来実現されるものをも全て含む。
その他、本実施形態は、本発明を実施するにあたっての具体化の一例を示したものに過ぎない。このため、これによって本発明の技術的範囲が限定的に解釈されてはならない。すなわち、本発明はその要旨またはその主要な特徴から逸脱することなく、様々な形態で実施することができる。
11 メモリ管理装置
13 アプリケーション
15 多値NAND型のフラッシュメモリ
19 制御部
21 書込要求受付部
23 書込制御部
25 メモリ情報取得部
27 ブロック書込判定部
31 給電監視部
33 無効化指令部

Claims (4)

  1. フラッシュメモリの記憶領域にデータを書込むためのデータ書込モードとして、一のセルに2値を超える多値形式でデータを書込む多値モードと、一のセルに2値形式でデータを書込む2値モードによりいったんデータを書込んだ後、この書込み済データを用いて他のセルに前記多値モードによりデータを書込む複合モードとを有し、前記複合モードを優先適用して前記フラッシュメモリに対するデータの書込み制御を行うメモリ管理装置であって、
    データのサイズ情報を含む書込要求を受け付ける書込要求受付部と、
    前記書込要求に係るデータの書込みを前記フラッシュメモリに行わせる書込制御部と、
    前記フラッシュメモリが有するブロックのサイズの情報、及び前記フラッシュメモリの記憶領域における最新の書込位置の情報を含むメモリ情報を取得するメモリ情報取得部と、
    前記書込要求受付部により受け付けた書込要求に係るデータのサイズ情報と、前記メモリ情報取得部で取得したメモリ情報とに基づいて、前記書込要求に係るデータを前記フラッシュメモリの記憶領域に書込んだ場合に一以上のブロックを含むブロック書込みが生じるか否かを判定するブロック書込判定部と、を備え、
    前記書込制御部は、前記ブロック書込判定部により前記ブロック書込みが生じると判定された場合であって、前記メモリ情報取得部により取得したメモリ情報のうち前記最新の書込位置が前記一以上のブロックの先頭に合致した場合、前記データ書込モードを前記多値モードに切替えて前記書込要求に係るデータの書込みを行わせる、
    ことを特徴とするメモリ管理装置。
  2. 請求項1に記載のメモリ管理装置であって、
    前記書込制御部は、前記データ書込モードが前記多値モードに切替えられている場合であって、前記メモリ情報取得部により取得したメモリ情報のうち前記最新の書込位置が前記一以上のブロックの終端に合致した場合、前記データ書込モードを前記複合モードに戻して前記書込要求に係るデータの書込みを行わせる、
    ことを特徴とするメモリ管理装置。
  3. 請求項1又は2に記載のメモリ管理装置であって、
    前記フラッシュメモリへの給電状態を監視する給電監視部と、
    前記ブロック書込みの処理中に前記給電監視部により電源の遮断が検出された場合、前記ブロック書込みの該当ブロックに係るデータを無効化する無効化指令を前記フラッシュメモリに発行する無効化指令部と、
    を更に備えた
    ことを特徴とするメモリ管理装置。
  4. フラッシュメモリの記憶領域にデータを書込むためのデータ書込モードとして、一のセルに2値を超える多値形式でデータを書込む多値モードと、一のセルに2値形式でデータを書込む2値モードによりいったんデータを書込んだ後、この書込み済データを用いて他のセルに前記多値モードによりデータを書込む複合モードとを有し、いずれかのデータ書込モードを適用して前記フラッシュメモリに対するデータの書込み制御を行うためのメモリ管理方法であって、
    データのサイズ情報を含む書込要求を受け付ける書込要求受付手順と、
    前記フラッシュメモリが有するブロックのサイズの情報、及び前記フラッシュメモリの記憶領域における最新の書込位置の情報を含むメモリ情報を取得するメモリ情報取得手順と、
    前記書込要求受付手順で受け付けた書込要求に係るデータのサイズ情報と、前記メモリ情報取得手順で取得したメモリ情報とに基づいて、前記書込要求に係るデータを前記フラッシュメモリの記憶領域に書込んだ場合に一以上のブロックを含むブロック書込みが生じるか否かを判定するブロック書込判定手順と、
    前記書込要求に係るデータの書込みを前記フラッシュメモリに行わせる書込制御手順と、を有し、
    前記書込制御手順では、前記ブロック書込判定手順により前記ブロック書込みが生じると判定された場合において、前記メモリ情報取得手順により取得したメモリ情報のうち前記最新の書込位置が前記一以上のブロックの先頭に合致しない場合、前記データ書込モードを前記複合モードにして前記書込要求に係るデータの書込みを行わせる一方、前記最新の書込位置が前記一以上のブロックの先頭に合致した場合、この合致したタイミングで、前記データ書込モードを前記多値モードにして前記書込要求に係るデータの書込みを行わせる、
    ことを特徴とするメモリ管理方法。
JP2010167715A 2010-07-27 2010-07-27 メモリ管理装置およびメモリ管理方法 Withdrawn JP2012027806A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010167715A JP2012027806A (ja) 2010-07-27 2010-07-27 メモリ管理装置およびメモリ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010167715A JP2012027806A (ja) 2010-07-27 2010-07-27 メモリ管理装置およびメモリ管理方法

Publications (1)

Publication Number Publication Date
JP2012027806A true JP2012027806A (ja) 2012-02-09

Family

ID=45780638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010167715A Withdrawn JP2012027806A (ja) 2010-07-27 2010-07-27 メモリ管理装置およびメモリ管理方法

Country Status (1)

Country Link
JP (1) JP2012027806A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013178865A (ja) * 2012-02-29 2013-09-09 Renesas Electronics Corp 半導体装置
US9245630B2 (en) 2013-02-04 2016-01-26 Samsung Electronics Co., Ltd. Memory system comprising nonvolatile memory device and program method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013178865A (ja) * 2012-02-29 2013-09-09 Renesas Electronics Corp 半導体装置
US9245630B2 (en) 2013-02-04 2016-01-26 Samsung Electronics Co., Ltd. Memory system comprising nonvolatile memory device and program method thereof

Similar Documents

Publication Publication Date Title
EP1909184B1 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
JP4371771B2 (ja) 不揮発性メモリシステムにおいて用いられる電力管理ブロック
US10067032B2 (en) Back-up and restoration of data between volatile and flash memory
US9063728B2 (en) Systems and methods for handling hibernation data
US20170228154A1 (en) Device and method for power loss protection in solid state drive
US7558904B2 (en) Controller, data memory system, data rewriting method, and computer program product
JP2002169729A (ja) 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20110010499A1 (en) Storage system, method of controlling storage system, and method of controlling control apparatus
US20180150390A1 (en) Data Storage Device and Operating Method Therefor
CN103164342A (zh) 数据可用性的挂载时协调
CN105468544B (zh) 实现防掉电文件系统的方法、装置以及防掉电文件系统
US11467645B2 (en) Storage device and method for sudden power off recovery thereof
US10198198B2 (en) Storage device that stores setting values for operation thereof
JPWO2009004674A1 (ja) 記憶装置、ディスク装置、書込み判定方法、制御装置
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
CN107678420A (zh) 一种发动机数据在线存储方法
CN104536847A (zh) 一种提高数据写入完整性的方法
JP2010152747A (ja) ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム
CN103593301B (zh) 坏块管理方法及系统
EP3841472A1 (en) Tracking error-correction parity calculations
WO2014148208A1 (ja) 電子制御装置及びデータ書換え方法
KR100866513B1 (ko) 플래시 메모리 기반 저널링 파일 시스템을 이용한 데이터처리 방법
TW201403323A (zh) 記憶體儲存裝置及其修復方法
JP2012027806A (ja) メモリ管理装置およびメモリ管理方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20131001