JP2017097404A - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP2017097404A JP2017097404A JP2015225501A JP2015225501A JP2017097404A JP 2017097404 A JP2017097404 A JP 2017097404A JP 2015225501 A JP2015225501 A JP 2015225501A JP 2015225501 A JP2015225501 A JP 2015225501A JP 2017097404 A JP2017097404 A JP 2017097404A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage area
- sector
- data storage
- cpu
- 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
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】レスポンスを向上させることのできるマイクロコンピュータを提供する。【解決手段】マイクロコンピュータ10は、データの書き込み及び消去が可能なフラッシュメモリ14と、フラッシュメモリ14に対してデータの書き込みを行うCPU11と、を備える。フラッシュメモリ14における最小のデータ消去単位に相当する記憶領域をセクタSCとするとき、フラッシュメモリ14には、複数のセクタからなるデータ格納領域が設けられている。CPU11は、データ格納領域が一杯になった際に、セクタSC単位でデータ格納領域を再編する。【選択図】図1
Description
本発明は、不揮発性メモリを備えるマイクロコンピュータに関する。
従来、装置や機器の動作を統括的に管理するマイクロコンピュータには、各種データの格納先として種々のメモリが搭載されている。このメモリの一つとして、各種データの電気的な書き込み及び消去が可能な不揮発性メモリがある。この種の不揮発性メモリは、例えばフラッシュメモリである。フラッシュメモリは、データの書き込み先であるメモリ領域が複数のブロックの集合体により構成されている。以下では、このブロックをデータ格納領域と称する。フラッシュメモリには、その特性として、データ書き込み済みのアドレスに新たなデータを書き込む際には、データ格納領域全体を一旦消去してからでないと新たなデータを書き込めないという制限がある。
そこで、特許文献1に記載のマイクロコンピュータは、フラッシュメモリの複数のデータ格納領域をローテーションして使用している。複数のデータ格納領域の少なくとも一つが使用対象に設定されている。使用対象のデータ格納領域では、データの書き込みが可能である。特許文献1に記載のマイクロコンピュータでは、フラッシュメモリに新たなデータが書き込まれる際には、使用対象のデータ格納領域内の空き領域に新たなデータが順次書き込まれる。そして、使用対象のデータ格納領域が一杯になると、使用対象が別のデータ格納領域に切り替えられる。このとき、古い使用対象のデータ格納領域に記憶されている最新のデータが、新たな使用対象のデータ格納領域にコピーされる。その後、新たなデータがフラッシュメモリに書き込まれる際には、新たな使用対象のデータ格納領域の空き領域に新たなデータが順次書き込まれる。以降、使用対象のデータ格納領域が一杯になる度に使用対象のデータ格納領域の切り替えが行われる。なお、書き込み領域が一杯になったデータ格納領域では、次に使用対象に割り当てられるまでの期間に、書き込まれたデータが消去される。
ところで、特許文献1に記載のマイクロコンピュータでは、使用対象のデータ格納領域を切り替える際に、古い使用対象のデータ格納領域に記憶されている最新のデータが新たな使用対象のデータ格納領域にコピーされるため、最新のデータの情報量が大きくなると、コピー処理に要する時間が長くなる。これがマイクロコンピュータの処理負担となり、マイクロコンピュータのレスポンスを悪化させる要因となっている。
なお、このような課題は、フラッシュメモリ等の不揮発性メモリを有するマイクロコンピュータに共通する課題である。
本発明は、こうした実情に鑑みてなされたものであり、その目的は、レスポンスを向上させることのできるマイクロコンピュータを提供することにある。
上記課題を解決するマイクロコンピュータは、データの書き込み及び消去が可能な不揮発性メモリ(14)と、不揮発性メモリに対してデータの書き込みを行う演算処理部(11)と、を備える。不揮発性メモリにおける最小のデータ消去単位に相当する記憶領域をセクタ(SC)とするとき、不揮発性メモリには、複数のセクタからなるデータ格納領域が設けられている。演算処理部は、データ格納領域が一杯になった際に、セクタ単位でデータ格納領域を再編する。
この構成によれば、データ格納領域の再編がセクタ単位で行われるため、従来のマイクロコンピュータのようにデータ格納領域の再編をデータ格納領域単位で行う場合と比較すると、再編時の演算処理部のデータ処理量を低減することができる。その結果、マイクロコンピュータのレスポンスを向上させることができる。
なお、上記手段、及び特許請求の範囲に記載の括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示す一例である。
本発明によれば、レスポンスを向上させることができる。
<第1実施形態>
以下、マイクロコンピュータの第1実施形態について説明する。
図1に示されるように、本実施形態のマイクロコンピュータ10は、CPU11と、ROM(Read Only Memory)12と、フラッシュコントローラ13と、フラッシュメモリ14と、RAM(Random Access Memory)15と、入出力ポート16とを備えている。これらの要素11〜16は電源17から供給される電力を動作電源として駆動する。マイクロコンピュータ10は、例えば車両のエンジン等の制御対象を制御する電子制御装置等に搭載されており、制御対象の動作を制御する制御部として機能する。
以下、マイクロコンピュータの第1実施形態について説明する。
図1に示されるように、本実施形態のマイクロコンピュータ10は、CPU11と、ROM(Read Only Memory)12と、フラッシュコントローラ13と、フラッシュメモリ14と、RAM(Random Access Memory)15と、入出力ポート16とを備えている。これらの要素11〜16は電源17から供給される電力を動作電源として駆動する。マイクロコンピュータ10は、例えば車両のエンジン等の制御対象を制御する電子制御装置等に搭載されており、制御対象の動作を制御する制御部として機能する。
ROM12は、主にプログラムメモリとして用いられている。ROM12には、例えばCPU11により実行されるソフトウェアが予め記憶されている。例えば、ROM12には、フラッシュドライバソフトウェア120と、アプリケーションソフトウェア121が記憶されている。フラッシュドライバソフトウェア120は、フラッシュメモリ14へのデータの書き込み、及びフラッシュメモリ14からのデータの読み込みの際にCPU11により実行されるソフトウェアである。アプリケーションソフトウェア121は、制御処理等のマイクロコンピュータ10の機能を実現するための各種ソフトウェアである。
フラッシュコントローラ13は、フラッシュメモリ14の動作を制御する部分である。フラッシュコントローラ13は、所定のデータと共に書き込み指令がCPU11から伝達された場合、この所定のデータをフラッシュメモリ14に書き込む。また、フラッシュコントローラ13は、CPU11から所定のデータの読み込み指令が伝達された場合、所定のデータをフラッシュメモリ14から読み込むとともに、読み込んだ所定のデータをCPU11に伝達する。
フラッシュメモリ14は、電源17からの電力供給が遮断された場合でもデータを保持することが可能な不揮発性メモリである。フラッシュメモリ14では、データの書き込み及び消去が可能である。フラッシュメモリ14は、例えばNAND型フラッシュメモリやNOR型フラッシュメモリからなる。
RAM15には、CPU11の演算途中のデータや演算結果等の一時的なデータが記憶される。
CPU11は、ROM12に記憶されたアプリケーションソフトウェア121を実行することにより、マイクロコンピュータ10の機能を実現するための各種演算処理を実行する。例えば、CPU11は、入出力ポート16を介して図示しないセンサの検出信号を取り込むとともに、この検出信号に基づいて所定の物理量を取得する。CPU11は、この物理量に基づいてアプリケーションソフトウェア121を実行することにより制御信号を生成し、この制御信号を入出力ポート16を介して図示しない制御対象に出力することにより制御対象の動作を制御する。その際、CPU11は、一時的なデータを演算した場合には、これをRAM15に記憶させる。また、CPU11は、一時的でないデータ、例えば電源17からの電力供給が遮断された場合でも保持すべきデータを演算した場合には、これをフラッシュコントローラ13を介してフラッシュメモリ14に記憶させる。本実施形態では、CPU11が演算処理部に相当する。
次に、フラッシュメモリ14の構成について具体的に説明する。
図1に示されるように、フラッシュメモリ14は、複数のセクタSCを有している。セクタSCは、フラッシュメモリ14における最小のデータ消去単位に相当する記憶領域である。
図1に示されるように、フラッシュメモリ14は、複数のセクタSCを有している。セクタSCは、フラッシュメモリ14における最小のデータ消去単位に相当する記憶領域である。
フラッシュメモリ14には、図2に示されるようなデータ格納領域DSAが設けられている。データ格納領域DSAは、複数のセクタSCからなる。なお、データ格納領域DSAに属するセクタSCの数は、フラッシュメモリ14のセクタSCの総数よりも少ない数に設定されている。すなわち、フラッシュメモリ14には、データ格納領域DSAに属するセクタSCと、データ格納領域DSAに属していないセクタSCとが存在する。図2では、二点鎖線で囲われたセクタSCが、データ格納領域DSAに属するセクタSCを示している。データ格納領域DSAに属するセクタSCは、データの書き込みが行われるセクタである。データ格納領域DSAに属していないセクタSCは、データの書き込みが行われないセクタである。換言すれば、データ格納領域DSAに属していないセクタSCは、データ格納領域DSAに移行する準備段階のセクタである。
図3に示されるように、一つのセクタSCには、セクタ状態を記憶するための記憶領域と、複数の単位データ領域UDAとが設けられている。図4に示されるように、単位データ領域UDAには、データ状態と、データIDと、データ値とが記憶されている。以下では、データID及びデータ値をまとめて「データ」と称する。データ値は、CPU11の演算処理で実際に用いられる情報である。データ値は、例えば数バイトの情報からなる。データIDは、データ値の識別子である。CPU11は、フラッシュメモリ14に対してデータの書き込み、あるいは読み込みを行う際、データIDを指定することにより、書き込み対象のデータ値、あるいは読み込み対象のデータ値を指定する。データ状態は、データ値が「有効」及び「無効」のいずれの状態であるかを示す。「有効」は、データ値が使用中であることを示す。「無効」は、データ値が使用中でないことを示す。図3に示される複数の単位データ領域UDAのうち、何らかのデータ値が記憶されている単位データ領域UDAには、データ値と共に図4に示されるデータ状態及びデータIDが関連付けられて記憶されている。データ値が記憶されていない単位データ領域UDA、あるいはデータの消去の行われた単位データ領域UDAには、図4に示されるデータ状態、データID、及びデータ値の情報が記憶されていない。以下では、データが記憶されていない単位データ領域UDAを空き状態の単位データ領域UDAと称する。
図3に示されるセクタ状態は、セクタSCの状態が「使用前」、「使用中」、「使用済み」のいずれの状態であるかを示す情報である。「使用前」は、全ての単位データ領域UDAのデータが消去されている状態であって、且つデータ格納領域DSAに属していない状態を示す。「使用中」は、データ格納領域DSAに属しており、データの書き込みが可能な状態を示す。「使用済み」は、単位データ領域UDAに何らかのデータが記憶されている状態であって、且つデータ格納領域DSAに属していない状態を示す。「使用済み」は、単位データ領域UDAのデータの消去が行われる前の状態を示す。
CPU11は、フラッシュドライバソフトウェア120を実行することにより、フラッシュメモリ14に対するデータの読み込み及び書き込みをフラッシュコントローラ13を介して行う。
例えばCPU11は、アプリケーションソフトウェア121の実行に伴いフラッシュメモリ14から所定のデータ値を読み込む際には、まず、対象のデータ値がフラッシュメモリ14のデータ格納領域DSAに存在するか否かを判断する。具体的には、CPU11は、データ格納領域DSAのセクタSCに、対象のデータ値に対応するデータIDが存在するか否かを判断する。CPU11は、データ格納領域DSAのセクタSCに、対象のデータ値に対応するデータIDが存在する場合には、そのデータIDに対応するデータ値をアプリケーションソフトウェア121に返却する。CPU11は、データ格納領域DSAのセクタSCに、対象のデータ値に対応するデータIDが存在しない場合には、対象のデータ値が無い旨をアプリケーションソフトウェア121に返却する。
次に、図5〜図7を参照して、CPU11によるフラッシュメモリ14へのデータの書き込み手法について説明する。図5〜図7では、二点鎖線で囲まれる領域がデータ格納領域DSAを示している。また、実線及び破線で区画される領域が単位データ領域UDAを示している。さらに、図5〜図7に一点鎖線で示されるように、セクタSCが3つの単位データ領域UDAで構成されている場合について例示している。
CPU11は、例えばCPU11からの指示に基づいてデータE1をフラッシュメモリ14に書き込む際には、まず、データ格納領域DSAのセクタSCに空き状態の単位データ領域UDAが存在するか否かを判断する。すなわち、CPU11は、データ格納領域DSAが一杯であるか否かを判断する。この際、図5(A)に示されるように、データ格納領域DSAが一杯でなく、且つデータ格納領域DSAにデータE1が記憶されていない場合、CPU11は、図5(B)に示されるように、空き状態の単位データ領域UDAにデータE1を書き込む。
一方、図6(A)に示されるように、データ格納領域DSAが一杯でなく、且つデータ格納領域DSAにデータE1が既に記憶されている場合、CPU11は、図6(B)に示されるように、既にデータ格納領域DSAに記憶されているデータE1を無効にする。具体的には、既にデータ格納領域DSAに記憶されているデータE1のデータ状態を無効に設定する。なお、図6を含め、以降の図では、無効に設定されたデータには二重取り消し線が付されている。その後、CPU11は、空き状態の単位データ領域UDAに新たなデータE2を書き込む。なお、データE2は、データE1の更新データである。
さらに、図7(A)に示されるように、データ格納領域DSAが一杯である場合には、CPU11は、セクタSC単位でデータ格納領域DSAの再編を行う。具体的には、図7(B)に示されるように、CPU11は、データ格納領域DSAから単位データ領域UDAをセクタSC単位で除去した上で、除去セクタESCに記憶されている有効なデータC1を追加セクタASCにコピーする。そして、CPU11は、追加セクタASCの空き状態の単位データ領域UDAに新たなデータE2を書き込む。
次に、図8〜図11を参照して、CPU11により実行されるデータの読み込み及び書き込み処理の具体的な手順について説明する。まず、データの読み込み処理の具体的な手順について説明する。
CPU11は、フラッシュメモリ14に対してデータの読み込みを行う際には、図8に示される処理を実行する。図8に示されるように、CPU11は、まず、ステップS10の処理として、読み込みデータのデータIDに基づいて対象データ探索処理を行う。対象データ探索処理は、読み込みが行われるデータがフラッシュメモリ14に記憶されているか否かを探索する処理である。具体的には、CPU11は、図9に示される処理を実行する。
図9に示されるように、対象データ探索処理では、CPU11は、まず、ステップS100の処理として、フラッシュメモリ14の全てのセクタSCに対してステップS101〜S103の処理を繰り返し実行する。以下、フラッシュメモリ14の全てのセクタSCのうち、現在対象となっているセクタを対象セクタと称する。
CPU11は、ステップS101の処理として、対象セクタは、データ格納領域DSAを構成するセクタであるか否かを判断する。CPU11は、対象セクタが、データ格納領域を構成するセクタでない場合には、ステップS101の処理で否定判断し、ステップS100の処理に戻り、次のセクタを対象セクタとしてステップS101〜S103の処理を実行する。
CPU11は、対象セクタが、データ格納領域DSAを構成するセクタである場合には、ステップS102の処理として、対象セクタに含まれる全ての単位データ領域UDAに対してステップS103の処理を繰り返し実行する。以下、対象セクタに含まれる単位データ領域UDAのうち、現在対象となっている単位データ領域を対象単位データ領域と称する。
CPU11は、ステップS103の処理として、対象単位データ領域に記憶されているデータ値が有効な状態であって、且つそのデータIDが要求データIDと一致しているか否かを判断する。要求データIDは、読み込みデータのデータIDである。CPU11は、ステップS103の処理で否定判断した場合には、ステップS102の処理に戻り、次の単位データ領域を対象単位データ領域としてステップS103の処理を実行する。
CPU11は、ステップS102のループ処理を実行している間に、ステップS103の処理で肯定判断した場合には、すなわち読み込みの対象データを検出した場合には、ステップS105の処理として、読み込みの対象データが有ることを示すフラグを立てた後、図9に示される処理を終了する。CPU11は、ステップS102のループ処理を実行した結果、対象セクタに含まれる単位データ領域UDAの全てにおいてステップS103の処理で否定判断した場合には、ステップS102のループ処理を抜ける。この場合、CPU11は、ステップS100のループ処理に戻る。
CPU11は、ステップS100のループ処理を実行した結果、フラッシュメモリ14の全てのセクタSCにおいてステップS103の処理で否定判断した場合には、すなわち対象となるデータがフラッシュメモリ14に記憶されていない場合には、ステップS100のループ処理を抜ける。この場合、CPU11は、ステップS104の処理として、読み込みの対象データが無いことを示すフラグを立てた後、図9に示される処理を終了する。
図8に示されるように、CPU11は、図9に示される処理を終了した後、ステップS11の処理として、読み込みの対象データを検出したか否かを判断する。CPU11は、読み込みの対象データが有ることを示すフラグが立てられている場合、ステップS11の処理で肯定判断する。この場合、CPU11は、ステップS12の処理として、図9に示される処理で検出されたデータ値をアプリケーションソフトウェア121に返却する。これに対し、CPU11は、読み込みの対象データが無いことを示すフラグが立てられている場合、ステップS11の処理で否定判断する。この場合、CPU11は、ステップS13の処理として、読み込みの対象データが無いことをアプリケーションソフトウェア121に返却する。
次に、CPU11により実行されるデータの書き込み処理の具体的な手順について説明する。CPU11は、フラッシュメモリ14に対してデータの書き込み処理を行う際には、図10に示される処理を実行する。
図10に示されるように、CPU11は、まず、データ格納領域DSAが一杯であるか否かを判断する。CPU11は、データ格納領域DSAが一杯である場合には、ステップS21の処理として、データ格納領域再編処理を実行する。具体的には、CPU11は、図11に示される処理を実行する。
図11に示されるように、データ格納領域再編処理では、CPU11は、まず、ステップS220の処理として、データ格納領域DSAに新たに追加する追加セクタを選定する。具体的には、CPU11は、データ格納領域DSAに属するセクタSCを除くセクタSCを追加セクタとして選定する。
CPU11は、ステップS220に続くステップS221の処理として、データ格納領域DSAから除去する除去セクタを選定する。例えば、CPU11は、データ格納領域DSAの先頭のセクタSCを除去セクタとして選定する。
CPU11は、ステップS221に続くステップS222の処理として、除去セクタに有効なデータが存在するか否かを判断する。CPU11は、除去セクタに有効なデータが存在する場合には、ステップS222の処理で肯定判断する。この場合、CPU11は、ステップS223の処理として、除去セクタに存在する全ての有効なデータが追加セクタにコピーされるまでステップS224,S225の処理を繰り返し実行する。
CPU11は、ステップS224の処理として、除去セクタからコピーされていない有効なデータを探索する。具体的には、CPU11は、除去セクタの単位データ領域UDAのうち、データ状態が「有効」となっている単位データ領域UDAを探索する。
CPU11は、ステップS224に続くステップS225の処理として、有効なデータを追加セクタにコピーする。具体的には、CPU11は、データ状態が「有効」となっている単位データ領域UDAのデータID及びデータ値を追加セクタの単位データ領域UDAにコピーする。
CPU11は、除去セクタに存在する全ての有効なデータを追加セクタにコピーすると、ステップS223のループ処理を抜けて、ステップS226の処理を実行する。また、CPU11は、ステップS222の処理で否定判断した場合にも、すなわち除去セクタに有効なデータが存在しない場合にも、ステップS226の処理を実行する。具体的には、CPU11は、ステップS226の処理として、新たなデータ格納領域DSAを使用するように設定する。具体的には、CPU11は、追加セクタの状態を「使用中」に設定するとともに、除去セクタの状態を「使用済み」に設定する。
CPU11は、ステップS226に続くステップS227の処理として、除去セクタのデータを消去する。具体的には、CPU11は、使用済みに設定された除去セクタの単位データ領域UDAのデータの消去を行う。CPU11は、ステップS227の処理を実行した後、図11に示されるデータ格納領域再編処理を終了する。
図10に示されるように、CPU11は、ステップS21のデータ格納領域再編処理を終了した後、あるいはステップS20の処理で否定判断した場合には、ステップS22の処理として、対象データ探索処理を実行する。この対象データ探索処理は、書き込みの対象データがフラッシュメモリ14に記憶されているか否かを探索する処理である。ステップS22の処理手順は、図9に示される処理と同一であるため、割愛する。
CPU11は、ステップS22の処理に続くステップS23の処理として、書き込みの対象データを検出したか否かを判断する。CPU11は、書き込みの対象データを検出した場合には、ステップS23の処理で肯定判断する。この場合、CPU11は、ステップS24の処理として、検出されたデータが記憶された単位データ領域のデータ状態を「無効」に設定した後、ステップS25の処理として、新たなデータをデータ格納領域DSAに追記し、一連の処理を終了する。
CPU11は、ステップS23の処理で否定判断した場合、すなわち書き込みの対象データを検出できなかった場合には、ステップS25の処理として、新たなデータをデータ格納領域DSAに追記し、一連の処理を終了する。
次に、図7(A),(B)を参照して、本実施形態のマイクロコンピュータ10の動作例について説明する。
CPU11は、図7(A)に示されるようにデータ格納領域DSAが一杯になった状態で新たなデータE2を書き込む場合、図7(B)に示されるようにデータ格納領域DSAを再編する。すなわち、CPU11は、データ格納領域DSAに属するセクタSCを除くセクタSCを追加セクタASCとして選定する。また、CPU11は、データ格納領域DSAに属する先頭のセクタSCを除去セクタESCとして選定する。そして、CPU11は、除去セクタESCに記憶されている有効なデータC1を追加セクタASCにコピーする。そして、CPU11は、データ格納領域DSAから除去セクタESCを除去するとともに、データ格納領域DSAに追加セクタASCを追加する。これにより、データ格納領域DSAの再編が完了する。CPU11は、データ格納領域DSAの再編を完了した後、新たなデータ格納領域DSAにデータE2を書き込む。また、CPU11は、除去セクタESCのデータを消去する。
以上説明した本実施形態のマイクロコンピュータ10によれば、以下の(1)〜(3)に示される作用及び効果を得ることができる。
(1)CPU11は、データ格納領域DSAが一杯になった際に、セクタSC単位でデータ格納領域DSAの再編を行う。具体的には、CPU11は、データ格納領域DSAの一つのセクタSCを消去した上で、データ格納領域DSAに新たなセクタSCを追加する。また、CPU11は、除去セクタESCに有効なデータが記憶されている場合には、これを追加セクタASCにコピーする。これにより、従来のマイクロコンピュータのようにデータ格納領域の再編をデータ格納領域単位で行う場合と比較すると、再編時のCPU11のデータ処理量を低減することができる。その結果、マイクロコンピュータ10のレスポンスを向上させることができる。
(2)セクタSCには、セクタの使用状態を示す情報が記憶されている。これにより、セクタSCの管理情報が各セクタに分散されるため、例えば意図しない電源17の遮断時に各セクタの管理情報が消失し難くなる。
(3)フラッシュメモリ14では、一般に、最小のデータ消去単位としてのセクタが設けられている。したがって、本実施形態のような構成をフラッシュメモリ14を有するマイクロコンピュータ10に適用することは有効である。
<第2実施形態>
次に、マイクロコンピュータ10の第2実施形態について説明する。以下、第1実施形態との相違点を中心に説明する。
次に、マイクロコンピュータ10の第2実施形態について説明する。以下、第1実施形態との相違点を中心に説明する。
本実施形態のCPU11は、図11に示されるデータ格納領域再編処理のステップS221で除去セクタESCを選定する際、データ格納領域DSAのセクタSCのうち、有効なデータが記憶されている数が最も少ないセクタを除去セクタESCとして選定する。
次に、本実施形態のマイクロコンピュータ10の動作例について説明する。
データ格納領域DSAに、例えば図12(A)に示されるようなデータが記憶されているとする。この場合、CPU11は、新たなデータE2をデータ格納領域DSAに記憶させる際、データ格納領域DSAの先頭から2番目のセクタSCに記憶されているデータD1,E1,F1の全てが無効なデータであるため、このセクタSCを除去セクタESCとして選定する。このとき、除去セクタESCに選定されたセクタSCには有効なデータが存在しないため、図12(B)に示されるように、CPU11は、新たなセクタASCを追加した後、データのコピーを行わずにデータ格納領域DSAの再編を完了する。また、CPU11は、新たなデータ格納領域DSAにデータE2を書き込む。
データ格納領域DSAに、例えば図12(A)に示されるようなデータが記憶されているとする。この場合、CPU11は、新たなデータE2をデータ格納領域DSAに記憶させる際、データ格納領域DSAの先頭から2番目のセクタSCに記憶されているデータD1,E1,F1の全てが無効なデータであるため、このセクタSCを除去セクタESCとして選定する。このとき、除去セクタESCに選定されたセクタSCには有効なデータが存在しないため、図12(B)に示されるように、CPU11は、新たなセクタASCを追加した後、データのコピーを行わずにデータ格納領域DSAの再編を完了する。また、CPU11は、新たなデータ格納領域DSAにデータE2を書き込む。
以上説明した本実施形態のマイクロコンピュータ10によれば、以下の(4)に示される作用及び効果を更に得ることができる。
(4)追加セクタASCにコピーさせるデータ量を減らすことができるため、CPU11の処理負担を更に軽減することができる。特に、図12に示されるように、除去セクタESCに有効なデータが存在しない場合には、追加セクタASCへのコピー処理を行う必要がないため、CPU11の処理負担を大幅に軽減することができる。よって、マイクロコンピュータ10のレスポンスを更に低減することができる。
<第3実施形態>
次に、マイクロコンピュータ10の第3実施形態について説明する。以下、第1実施形態との相違点を中心に説明する。
次に、マイクロコンピュータ10の第3実施形態について説明する。以下、第1実施形態との相違点を中心に説明する。
本実施形態のCPU11は、図10に示されるデータ格納領域再編処理のステップS221で除去セクタESCを選定する際、データ格納領域DSAのセクタSCのうち、データ格納領域DSAに追加された順番が最も古いセクタを除去セクタESCとして選定する。具体的には、図13に示されるように、データ格納領域DSAに属するセクタSCの数を「M」とし、フラッシュメモリ14のセクタSCの数を「N」とすると、フラッシュメモリ14には、データ格納領域DSAに追加された順番を示す情報が全てのセクタSC(1)〜SC(N)に関連付けられて更に記憶されている。CPU11は、この情報に基づいて現在のデータ格納領域DSAに属するセクタSC(1)〜SC(M)がデータ格納領域DSAに追加された順番を判断するとともに、そのうち、データ格納領域DSAに追加された順番が最も古いセクタを除去セクタESCとして選定する。
以上説明した本実施形態のマイクロコンピュータ10によれば、以下の(5)に示される作用及び効果を更に得ることができる。
(5)フラッシュメモリ14の全てのセクタSC間での消去回数が均衡化されるため、フラッシュメモリ14の寿命を延ばすことができる。
<第4実施形態>
次に、マイクロコンピュータ10の第4実施形態について説明する。以下、第1実施形態との相違点を中心に説明する。
次に、マイクロコンピュータ10の第4実施形態について説明する。以下、第1実施形態との相違点を中心に説明する。
本実施形態のCPU11は、図10に示されるデータ格納領域再編処理のステップS220の処理で追加セクタASCを選定する際、データ格納領域DSAのセクタSCのうち、データの消去回数の最も少ないセクタを追加セクタASCとして選定する。具体的には、図14に示されるように、データ格納領域DSAに属するセクタSCの数を「M」とし、フラッシュメモリ14のセクタSCの数を「N」とすると、フラッシュメモリ14には、データの消去回数を示す情報が全てのセクタSC(1)〜SC(N)と関連付けられて更に記憶されている。CPU11は、この情報に基づいて現在のデータ格納領域DSAに属していないセクタSCの消去回数を判断するとともに、そのうち、データの消去回数が最も少ないセクタを追加セクタASCとして選定する。
以上説明した本実施形態のマイクロコンピュータ10によれば、以下の(6)に示される作用及び効果を更に得ることができる。
(6)フラッシュメモリ14の全てのセクタSC間での消去回数が均衡化されるため、フラッシュメモリ14の寿命を延ばすことができる。
<他の実施形態>
なお、各実施形態は、以下の形態にて実施することもできる。
・各実施形態のCPU11は、図11に示されるデータ格納領域再編処理において、データ格納領域DSAからのセクタSCの除去を行わずに、セクタSCの追加のみを行ってもよい。例えば、データ格納領域DSAに、図15(A)に示されるようにデータが記憶されているとする。この場合、データ格納領域DSAのセクタSCには、全てのデータが無効となっているセクタが存在しない。そのため、セクタの除去が行われると、除去セクタESCに記憶されている有効なデータを追加セクタASCにコピーする処理をCPU11が行わなければならない。このような場合、図15(B)に示されるように、データ格納領域DSAに新たなセクタASCを追加する処理のみをCPU11が行えば、有効なデータをコピーする処理をCPU11が行う必要がなくなるため、CPU11の処理負担を軽減することができる。結果的に、マイクロコンピュータ10のレスポンスを向上させることができる。
なお、各実施形態は、以下の形態にて実施することもできる。
・各実施形態のCPU11は、図11に示されるデータ格納領域再編処理において、データ格納領域DSAからのセクタSCの除去を行わずに、セクタSCの追加のみを行ってもよい。例えば、データ格納領域DSAに、図15(A)に示されるようにデータが記憶されているとする。この場合、データ格納領域DSAのセクタSCには、全てのデータが無効となっているセクタが存在しない。そのため、セクタの除去が行われると、除去セクタESCに記憶されている有効なデータを追加セクタASCにコピーする処理をCPU11が行わなければならない。このような場合、図15(B)に示されるように、データ格納領域DSAに新たなセクタASCを追加する処理のみをCPU11が行えば、有効なデータをコピーする処理をCPU11が行う必要がなくなるため、CPU11の処理負担を軽減することができる。結果的に、マイクロコンピュータ10のレスポンスを向上させることができる。
・各実施形態のCPU11は、図11に示されるデータ格納領域再編処理のステップS221の処理で除去セクタESCを選定する際、追加セクタASCよりも多い数のセクタをデータ格納領域DSAから除去してもよい。例えば、データ格納領域DSAに、図16(A)に示されるようにデータが記憶されているとする。この場合、データ格納領域DSAの先頭から2番目のセクタSC、及び先頭から3番目のセクタSCでは、全てのデータが無効になっているため、これらのセクタSCを除去セクタESCに選定したとしても、CPU11は追加セクタASCに有効なデータをコピーする処理を実行する必要がない。よって、図16(B)に示されるように、CPU11が追加セクタASCよりも多い2つのセクタSCを除去セクタESCに選定した場合でも、CPU11の処理負担が増加することがない。また、データ格納領域DSAの再編時に追加されるセクタの数と、除去されるセクタの数とが同数の場合と比較すると、データ格納領域DSAを小さくすることができる。これにより、フラッシュメモリ14においてデータの検索を行う際、検索されるデータ量を少なくすることができるため、マイクロコンピュータ10のレスポンスを向上させることができる。
・フラッシュメモリ14には、例えば図17に示されるような複数のセクタSC(1)〜SC(N)のそれぞれの使用状態の情報が記憶された専用のセクタSCEが設けられていてもよい。これにより、各セクタSC(1)〜SC(N)の管理情報を一元化することができるため、マイクロコンピュータ10のレスポンスを向上させることができる。また、図17に示されるような複数のセクタSC(1)〜SC(N)のそれぞれの使用状態の情報は、フラッシュメモリ14とは別の記憶媒体、例えばバックアップRAMやハードディスク等に記憶されていてもよい。
・CPU11は、図11に示されるステップS227の処理を、データ格納領域再編処理とは別の処理として行ってもよい。要は、CPU11は、除去セクタに選定されたセクタが次回にデータ格納領域DSAに追加されるまでの期間に、このセクタに記憶されているデータを消去すればよい。
・マイクロコンピュータ10が提供する手段及び/又は機能は、実体的な記憶装置に記憶されたソフトウェア及びそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、あるいはそれらの組み合わせにより提供することができる。例えばマイクロコンピュータ10がハードウェアである電子回路により提供される場合、それは多数の論理回路を含むデジタル回路、またはアナログ回路により提供することができる。
・各実施形態の構成は、フラッシュメモリ14を備えるマイクロコンピュータ10に限らず、任意の不揮発性メモリを備えるマイクロコンピュータに適用することが可能である。すなわち、フラッシュメモリ14に代えて、任意の不揮発性メモリを用いることができる。この場合、フラッシュコントローラ13に代えて、不揮発性メモリコントローラを用いることができる。また、フラッシュドライバソフトウェア120に代えて不揮発性メモリドライバソフトウェアを用いることができる。
・本発明は上記の具体例に限定されるものではない。すなわち、上記の具体例に、当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。例えば、前述した各具体例が備える各要素及びその配置や条件等は、例示したものに限定されるわけではなく適宜変更することができる。また、前述した実施形態が備える各要素は、技術的に可能な限りにおいて組み合わせることができ、これらを組み合わせたものも本発明の特徴を含む限り本発明の範囲に包含される。
SC:セクタ
10:マイクロコンピュータ
11:CPU(演算処理部)
14:フラッシュメモリ(不揮発性メモリ)
10:マイクロコンピュータ
11:CPU(演算処理部)
14:フラッシュメモリ(不揮発性メモリ)
Claims (10)
- データの書き込み及び消去が可能な不揮発性メモリ(14)と、
前記不揮発性メモリに対してデータの書き込みを行う演算処理部(11)と、を備え、
前記不揮発性メモリにおける最小のデータ消去単位に相当する記憶領域をセクタ(SC)とするとき、
前記不揮発性メモリには、
複数のセクタからなるデータ格納領域が設けられ、
前記演算処理部は、
前記データ格納領域が一杯になった際に、前記セクタ単位で前記データ格納領域を再編するマイクロコンピュータ。 - 前記演算処理部は、
前記データ格納領域の再編として、前記データ格納領域に含まれる複数の前記セクタのうちの少なくとも一つのセクタを除去した上で、前記データ格納領域に新たなセクタを追加するとともに、
前記除去されるセクタに有効なデータが記憶されている場合、前記有効なデータを前記新たなセクタにコピーする
請求項1に記載のマイクロコンピュータ。 - 前記演算処理部は、
前記データ格納領域に含まれる複数の前記セクタのうちの少なくとも一つのセクタを除去する際、有効なデータの記憶されている数が最も少ないセクタを除去する
請求項2に記載のマイクロコンピュータ。 - 前記演算処理部は、
前記データ格納領域に含まれる複数の前記セクタのうちの少なくとも一つのセクタを除去する際、前記データ格納領域に追加された順番が最も古いセクタを除去する
請求項2に記載のマイクロコンピュータ。 - 前記演算処理部は、
前記データ格納領域に新たに追加されるセクタの数よりも多い数のセクタを前記データ格納領域から除去する
請求項2〜4のいずれか一項に記載のマイクロコンピュータ。 - 前記演算処理部は、
前記データ格納領域の再編として、前記データ格納領域への新たなセクタの追加のみを行う
請求項1に記載のマイクロコンピュータ。 - 前記演算処理部は、
前記データ格納領域に前記セクタを追加する際、データの消去回数の最も少ないセクタを前記データ格納領域に追加する
請求項2又は6に記載のマイクロコンピュータ。 - 前記セクタには、
前記セクタの使用状態を示す情報が記憶されている
請求項1〜7のいずれか一項に記載のマイクロコンピュータ。 - 前記複数のセクタのそれぞれの使用状態の情報が記憶された記憶媒体を備える
請求項1〜8のいずれか一項に記載のマイクロコンピュータ。 - 前記不揮発性メモリは、
フラッシュメモリである。
請求項1〜9のいずれか一項に記載のマイクロコンピュータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015225501A JP2017097404A (ja) | 2015-11-18 | 2015-11-18 | マイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015225501A JP2017097404A (ja) | 2015-11-18 | 2015-11-18 | マイクロコンピュータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017097404A true JP2017097404A (ja) | 2017-06-01 |
Family
ID=58817756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015225501A Pending JP2017097404A (ja) | 2015-11-18 | 2015-11-18 | マイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017097404A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020135656A (ja) * | 2019-02-22 | 2020-08-31 | パナソニックIpマネジメント株式会社 | ファイル管理システム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535949B1 (en) * | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
WO2011068109A1 (ja) * | 2009-12-03 | 2011-06-09 | 株式会社日立製作所 | 記憶装置、およびメモリコントローラ |
JP2013003869A (ja) * | 2011-06-17 | 2013-01-07 | Denso Corp | 不揮発性半導体記憶装置およびメモリ管理方法 |
JP2013152676A (ja) * | 2012-01-26 | 2013-08-08 | Hitachi Ltd | 不揮発性記憶装置 |
JP2013191174A (ja) * | 2012-03-15 | 2013-09-26 | Toshiba Corp | 半導体記憶装置およびプログラム |
-
2015
- 2015-11-18 JP JP2015225501A patent/JP2017097404A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535949B1 (en) * | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
WO2011068109A1 (ja) * | 2009-12-03 | 2011-06-09 | 株式会社日立製作所 | 記憶装置、およびメモリコントローラ |
JP2013003869A (ja) * | 2011-06-17 | 2013-01-07 | Denso Corp | 不揮発性半導体記憶装置およびメモリ管理方法 |
JP2013152676A (ja) * | 2012-01-26 | 2013-08-08 | Hitachi Ltd | 不揮発性記憶装置 |
JP2013191174A (ja) * | 2012-03-15 | 2013-09-26 | Toshiba Corp | 半導体記憶装置およびプログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020135656A (ja) * | 2019-02-22 | 2020-08-31 | パナソニックIpマネジメント株式会社 | ファイル管理システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8886870B2 (en) | Memory access table saving and restoring system and methods | |
JP6112595B2 (ja) | メモリシステムにおける消去管理 | |
US8239612B2 (en) | Memory controller, flash memory system with memory controller, and control method of flash memory | |
US8327064B2 (en) | Data processor with flash memory, and method for accessing flash memory | |
JP2009521044A (ja) | ブロック消去可能なメモリ位置およびポインタ情報を有するブロックを見つけ出すポインタのリンク付けしたチェーンを備えるメモリ | |
JP2009521045A (ja) | ブロック消去可能なメモリ場所を有する不揮発性メモリ | |
KR20080085574A (ko) | 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법 | |
JP2006323751A (ja) | 情報処理装置、寿命監視方法およびプログラム | |
KR101336258B1 (ko) | 비휘발성 메모리의 데이터 처리 장치 및 방법 | |
JP6008325B2 (ja) | データ記憶システムおよびその制御方法 | |
JP5183662B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
JP5695112B2 (ja) | データ記憶装置、データの記憶方法および車載用制御装置 | |
JP2014167809A (ja) | 情報処理装置 | |
JP5535383B2 (ja) | ホスト装置および制御ツール | |
JP2017097404A (ja) | マイクロコンピュータ | |
JP6676791B2 (ja) | 情報処理装置 | |
JP5787095B2 (ja) | 不揮発性メモリへのデータ記憶方法 | |
JP2011081641A (ja) | メモリ制御装置 | |
JP4572205B2 (ja) | フラッシュメモリドライブ装置、その制御方法及びそのプログラム | |
US11137937B2 (en) | Information processing device and control method determining valid data in multiple memory areas based on multiple valid flags | |
JP7219813B2 (ja) | 演算処理装置、車両制御装置及び更新方法 | |
JP2009211152A (ja) | 情報処理装置、メモリシステムおよびその制御方法 | |
WO2015194100A1 (ja) | 記憶装置、フラッシュメモリ制御装置、及びプログラム | |
JP2017134440A (ja) | メモリ制御回路、メモリ制御システム、メモリ制御方法、及び、メモリ制御プログラム | |
JP2005222531A (ja) | データ記録装置及びデータ記録方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180828 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190305 |