(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024150916
(43)【公開日】2024-10-24
(54)【発明の名称】メモリ制御装置
(51)【国際特許分類】
G06F 12/00 20060101AFI20241017BHJP
G06F 8/654 20180101ALI20241017BHJP
【FI】
G06F12/00 550Z
G06F8/654
G06F12/00 597U
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023063961
(22)【出願日】2023-04-11
(71)【出願人】
【識別番号】324003048
【氏名又は名称】三菱電機モビリティ株式会社
(72)【発明者】
【氏名】片山 昌彦
【テーマコード(参考)】
5B160
5B376
【Fターム(参考)】
5B160NA03
5B376CA49
5B376CA86
5B376CA88
5B376GA07
(57)【要約】
【課題】プログラムを追加・更新する前に、不揮発性メモリの寿命を推測できるメモリ制御装置を得る。
【解決手段】不揮発性メモリ102に記憶されるとともに不揮発性メモリ102へ書き込むアプリA201a~アプリC201cを有し、各アプリからの書き込みを制御するメモリ制御部202が、不揮発性メモリ102の寿命を算出する構成であり、メモリ制御部202は、不揮発性メモリ102に記憶された各アプリの変更に当たって、第一の期間における不揮発性メモリ102へ要求した書き込み量と、不揮発性メモリ102に実際に書き込まれた書き込み量の実際値に基づき、第一の期間とは別の第二の期間における不揮発性メモリへ要求する書き込み量と、不揮発性メモリ102に実際に書き込まれる書き込み量の実際値とを推測して、不揮発性メモリ102の寿命を算出する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
不揮発性メモリに記憶されるとともに、上記不揮発性メモリへの書き込みを行うアプリケーションプログラム、
このアプリケーションプログラムによる不揮発性メモリへの書き込みを制御するとともに、上記不揮発性メモリの寿命を算出するメモリ制御部を備え、
上記メモリ制御部は、上記不揮発性メモリに記憶された上記アプリケーションプログラムの変更に当たって、予め定められた第一の期間における上記不揮発性メモリへ要求した書き込み量と、上記不揮発性メモリに実際に書き込まれた書き込み量の実際値に基づき、第一の期間とは別の第二の期間における上記不揮発性メモリへ要求する書き込み量と、上記不揮発性メモリに実際に書き込まれる書き込み量の実際値とを推測して、上記不揮発性メモリの寿命を算出することを特徴とするメモリ制御装置。
【請求項2】
上記メモリ制御部は、上記変更するアプリケーションプログラムのサイズ、更新頻度を加味して、第二の期間における上記不揮発性メモリに実際に書き込まれる書き込み量の実際値を推測することを特徴とする請求項1に記載のメモリ制御装置。
【請求項3】
上記メモリ制御部は、上記不揮発性メモリの書き込み可能量を算出し、この書き込み可能量と、上記不揮発性メモリに実際に書き込まれる書き込み量の実際値とを用いて、上記寿命を算出することを特徴とする請求項1または請求項2に記載のメモリ制御装置。
【請求項4】
上記メモリ制御部は、上記不揮発性メモリへ要求した書き込み量と、対応する上記不揮発性メモリに実際に書き込まれた書き込み量の実際値との比である書き込み効率を用いて、第二の期間における上記書き込み量の実際値を推測することを特徴とする請求項1または請求項2に記載のメモリ制御装置。
【請求項5】
上記アプリケーションプログラムは、複数であり、
上記メモリ制御部は、変更されるアプリケーションプログラムを含む複数のアプリケーションプログラムの組み合わせに応じて、上記不揮発性メモリの書き込み効率を推測することを特徴とする請求項4に記載のメモリ制御装置。
【請求項6】
上記メモリ制御部は、電源状態が変化した場合に、上記不揮発性メモリの書き込み効率を算出することを特徴とする請求項4に記載のメモリ制御装置。
【請求項7】
上記不揮発性メモリの寿命をユーザーに通知する表示部を備えたことを特徴とする請求項1または請求項2に記載のメモリ制御装置。
【請求項8】
車両に搭載されていることを特徴とするから請求項1または請求項2に記載のメモリ制御装置。
【請求項9】
OTA機能を保有する機器に搭載されていることを特徴とする請求項1または請求項2に記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、メモリ制御装置に関するものである。
【背景技術】
【0002】
近年、OTA(Over The Air)で、車載ECU(Electronic Control Unit)のプログラムを更新・追加する方法が考案されている。(特許文献1)
一方、車載ECUに搭載される不揮発性メモリの書き込み回数には制限があり、不揮発性メモリを搭載した車載ECUに、上述のように、OTAでプログラムを追加・更新する場合、不揮発性メモリの書き込み回数が増加し、自動車のような長寿命の製品においては、自動車が寿命を迎える前に不揮発性メモリの寿命を超過することがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-197079号公報(第7~10頁、第2図)
【特許文献2】特開2020-154674号公報(第8~19頁、第4図)
【発明の概要】
【発明が解決しようとする課題】
【0004】
この問題に関し、特許文献2には、インストール済みのプログラムに対して、単位時間あたりのメモリの書き込み回数から所定期間におけるメモリの書き込み回数を予測し、書き込み頻度を調整することで、メモリの書き込み回数の制限を超過することを防止する方法が記載されている。
しかしながら、引用文献2の方法では、プログラムを追加・更新する前に、不揮発性メモリの寿命を予測できない、という問題があった。
【0005】
本願は、上記のような課題を解決するための技術を開示するものであり、プログラムを追加・更新する前に、不揮発性メモリの寿命を推測できるメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本願に開示されるメモリ制御装置は、不揮発性メモリに記憶されるとともに、不揮発性メモリへの書き込みを行うアプリケーションプログラム、このアプリケーションプログラムによる不揮発性メモリへの書き込みを制御するとともに、不揮発性メモリの寿命を算出するメモリ制御部を備え、メモリ制御部は、不揮発性メモリに記憶されたアプリケーションプログラムの変更に当たって、予め定められた第一の期間における不揮発性メモリへ要求した書き込み量と、不揮発性メモリに実際に書き込まれた書き込み量の実際値に基づき、第一の期間とは別の第二の期間における不揮発性メモリへ要求する書き込み量と、不揮発性メモリに実際に書き込まれる書き込み量の実際値とを推測して、不揮発性メモリの寿命を算出するものである。
【発明の効果】
【0007】
本願に開示されるメモリ制御装置によれば、プログラムを追加・更新する前に、不揮発性メモリの寿命を推測することができる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態1によるメモリ制御装置の構成を示すブロック図である。
【
図2】実施の形態1によるメモリ制御装置のCPUが実行する制御プログラムの構成を示すブロック図である。
【
図3】実施の形態1によるメモリ制御装置の制御部の不揮発性メモリの寿命算出動作を示すシーケンス図である。
【
図4】実施の形態1によるメモリ制御装置における制御プログラムのアプリA~Cの書き込み効率と書き込み量を示す図である。
【
図5】実施の形態1によるメモリ制御装置における制御プログラムのアプリDのサイズ、更新頻度および書き込み効率を示す図である。
【
図6】実施の形態1によるメモリ制御装置における制御プログラムのアプリDの書き込み効率と書き込み量を示す図である。
【
図7】実施の形態2によるメモリ制御装置のメモリ制御部202の不揮発性メモリ102の寿命算出動作を示すシーケンス図である。
【
図8】実施の形態3によるメモリ制御装置のメモリ制御部202の電源状態変化時の書き込み効率算出動作を示すシーケンス図である。
【
図9】実施の形態3によるメモリ制御装置のメモリ制御部202の不揮発性メモリ102の寿命算出動作を示すシーケンス図である。
【発明を実施するための形態】
【0009】
実施の形態1.
以下に、実施の形態1を図に基づいて説明する。
図1は、実施の形態1によるメモリ制御装置の構成を示すブロック図である。
図1において、メモリ制御装置100は、後述するCPU(Central Processing Unit)101、不揮発性メモリ102、通信I/F(interface)103、RAM(Random Access Memory)104、ROM(Read Only Memory)105、表示部106、電源107を有する。
このメモリ制御装置100は、車両のような長寿命で、ユーザーにより使用方法が異なる製品、およびプログラムの追加・更新頻度が高いOTA機能を有する機器への搭載に適している。
【0010】
CPU101は、メモリ制御装置100の全体を制御する。このため、CPU101は、RAM104に置かれた命令コードを逐次実行、不揮発性メモリ102およびROM105へのアクセス制御、通信I/F103を介したメモリ制御装置100の外部との通信、表示部106を介したユーザーへの通知を行う。
通信I/F103は、メモリ制御装置100の外部との通信を行うものであり、例えば、CAN(Controller Area Network)、Ethernet(登録商標)、SATA(Serial Advanced Technology Attachment)、PCIe(Peripheral Component Interconnect-Express)が使用される。
【0011】
ROM105は、不揮発性メモリ102とは別の不揮発性メモリであり、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)、NORフラッシュメモリであり、不揮発性メモリ102とは別の、消えてしまってはいけない重要なデータ、および書き換え回数の多いデータを保持するために用いられる。
表示部106は、スピーカ等の音声出力装置、ディスプレイ、アイコン等のユーザーに通知を行う表示装置である。
電源107は、メモリ制御装置100に供給される電源であり、例えば、車両の+B電源またはスマートフォンのバッテリーである。
【0012】
不揮発性メモリ102は、例えば、NANDフラッシュメモリまたはeMMC(embedded Multi Media Card)またはUFS(Universal Flash Storage)またはSSD(Solid State Drive)であり、OS(Operating System)等のプログラム、ユーザーあるいはプログラムの実行に基づいて作成されたデータ等を格納する。
RAM104は、不揮発性メモリ102から読み出されたプログラムおよびデータを格納し、CPU101が実行する制御プログラム200の記憶、またはワーク領域として使用される。
【0013】
また、NANDフラッシュメモリは、メモリセルに設けられた浮遊ゲート内に注入される電荷によってデータを記憶する構成を有しており、データの保持には電源供給が不要である。
しかしながら、NANDフラッシュメモリは、セルのデータ書き換え時にゲート絶縁膜に電荷トラップ等による劣化が生じるため、書き換え回数が有限であることが知られている。
【0014】
NANDフラッシュメモリにおいては、新しいデータを書き込むときの状態によって、プログラムから書き込まれるデータサイズと、実際にNANDフラッシュメモリに書き込まれるデータサイズが異なる場合がある。
NANDフラッシュメモリへのデータの書き込みは、ページ単位(例えば4KByte)で実行される。一方で、NANDフラッシュメモリのデータの消去は、複数のページから成るブロック単位(例えば、64KByte)で実行される。
【0015】
すでにデータの書き込まれているページに新しいデータを書き込む場合、NANDフラッシュメモリは、当該ページを含むブロック全体を消去し、消去したデータとともに新しく書き込みたいデータを書き込む。
このため、プログラムが書き込みを指示したデータサイズに対して、NANDフラッシュメモリでの実際の書き込みデータサイズが多くなる。
アプリケーションプログラム(以下、アプリと略称する)により書き込みが指示されたデータサイズに対する、NANDフラッシュメモリの実際の書き込みデータサイズの比をWAF(Write Amplification Factor)という。
【0016】
また、NANDフラッシュメモリは、近年、大容量化を進めるために、1つのセルの浮遊ゲートが蓄積する電荷量を制御することにより、1セル当たり2ビット以上のデータを記憶させるMLC(Multi-Level Cell)技術が採用されている。
MLC技術を適用したMLCセルを有するNANDフラッシュメモリでは、書き込み速度を向上させるため、一度、1つのセル当たり1ビットのデータを記憶させた後、2ビット以上のデータは、MLCセルに書き直す動作をするものもある。
その場合、NANDフラッシュメモリは、プログラムからの要求なしにデータを消去・書き込むためNANDフラッシュメモリでの実際の書き込みデータサイズが多くなる。
【0017】
さらに、NANDフラッシュメモリは、書き換え回数が有限であるため、全領域の書き込み回数を均一化するため、全領域の書き込み回数を監視し、領域毎の書き込み回数が平均化されるように制御するウェアレベリングという技術が用いられている(ウェアレベリングについては、特許第5625888号参照)。
【0018】
図2は、実施の形態1によるメモリ制御装置のCPUが実行する制御プログラムの構成を示すブロック図である。
図2において、符号102、103、106、107は
図1におけるものと同一のものである。
図2は、メモリ制御装置100のCPU101が実行する制御プログラム200の全体構成を示すとともに、制御プログラム200を構成する各プログラムが行う処理に関連するハードウェアを示している。
制御プログラム200は、車外のサーバー等からネットワークを介して更新データを取得し、取得した更新データに基づいて、それぞれプログラムの更新処理等を行うアプリA201a、アプリB201b、アプリC201cおよび後述する通信部203を制御するメモリ制御部202、通信I/F103を介して外部の装置と通信を行う通信部203を有する。
ただし、アプリは、上述の機能に制限されるものではなく、他の機能を有するアプリであってもよい。
【0019】
制御プログラム200は、不揮発性メモリ102に記憶されて、RAM104に展開され、CPU101により実行される。
また、制御プログラム200は、メモリ制御装置100上で動作するレーダー、カメラ等の車両に備えられたセンサから、車両の周囲の物体等の状況を取得し、これに基づいて車両の操舵、加速、減速等の制御内容を表す制御出力を算出する。
また、ステアリング、エンジン、ブレーキ等に制御出力を出力して、制御出力に基づく操舵、加速、減速等を実行させる。
【0020】
次に、動作について説明する。
図3のシーケンス図を用いて、メモリ制御部202の不揮発性メモリ102の寿命算出動作について説明する。
図3では、追加するプログラムとして、アプリDを追加する場合についてのものである。
図3において、まず、通信部203から、通信I/F103を介してアプリの追加・変更の要求があるかどうかを確認する(ステップS301)。
要求がない場合は、処理を終了する。
【0021】
要求がある場合は、アプリA201a、アプリB201b、アプリC201c(以下、既存アプリ)から、それぞれのアプリの所定期間(第一の期間)での書き込み量の見込み値を取得する(ステップS302)。
所定期間での書き込み量の見込み値は、例えば
図4に記載の値であり、アプリ毎の値を保有している。この値は、特定のユースケースにおいて事前に取得した値となっている。
また、所定期間は、予め定められた期間であり、例えば1分でも1時間でも1日でもよい。
【0022】
次いで、ステップS303で、メモリ制御部202が、不揮発性メモリ102に要求した書き込み量(WD_11)を取得する。
メモリ制御部202は、既存アプリからの書き込み要求があった場合、不揮発性メモリ102に書き込み要求するとともに書き込み量を積算し、ROM105に保存する。
また、メモリ制御部202は、ROM105に記録しているメモリ制御装置100の稼働時間を取得し、次の計算式(1)により、所定期間の不揮発性メモリ102に要求した書き込み量(WD_12)を算出する。
WD_12=WD_11÷稼働時間×所定期間 ・・・・・(1)
【0023】
次に、ステップS304で、不揮発性メモリ102に設けられたレジスタを参照し、メモリ制御部202が書き込み要求したデータ量(WD_11)に対して、不揮発性メモリ102内のセルが実際に平均、または、最大で何回書き換えられているかを取得する。
【0024】
次いで、ステップS305で、次の計算式(2)により、不揮発性メモリ102内での書き込み量の実際値(WD_13)を算出する。
不揮発性メモリ102の全容量は、不揮発性メモリ102の公称値を用いてもよいし、不揮発性メモリ102の公称値に不揮発性メモリ102のスペア容量を含んだ値を用いてもよい。
WD_13=不揮発性メモリ102の全容量×ステップS304で取得した書き換え回数 ・・・・・(2)
【0025】
次いで、ステップS306で、計算式(3)により、不揮発性メモリ102への書き込み可能量(WD_14)を算出する。
WD_14=不揮発性メモリ102の全容量×(不揮発性メモリ102のスペック上の書き換え可能回数-ステップS304で取得した書き換え回数) ・・・・・(3)
【0026】
さらに、ステップS307で、追加・変更するプログラム(アプリD)のサイズ(US_D)、更新頻度(UF_D)、書き込み効率(UWAF_D)を取得する。
ここで、更新頻度は、例えば、定期的にプログラムを更新する場合の見込み頻度であり、毎月または隔月、毎年といった情報となる。
また、書き込み効率は、変更するプログラムはまとめて不揮発性メモリ102に書き込まれ、アプリDが動作する際の書き込み効率とは異なることから、アプリDの書き込み効率とは別の書き込み効率を有する。
【0027】
次いで、ステップS308で、アプリDの所定期間での書き込み量(WD_D)を取得する。ステップS307とステップS308で取得する値は、特定のユースケースにおいて事前に取得した値となっており、例えば、
図5、
図6に記載された値である。
【0028】
次に、ステップS309で、計算式(4)により、不揮発性メモリ102の書き込み効率の実際値(WAF_1)を算出する。
WAF_1=WD_13÷WD_11+A1 ・・・・・(4)
ここで、A1は不揮発性メモリ102の空き容量に応じた所定値であり、不揮発性メモリ102は空き容量が少なくなると不揮発性メモリ102の特定のセルに対して書き換えが頻発することを防止するため、ウェアレベリングにより不揮発性メモリ102のセル内でデータの書き換えが発生し、結果としてWAFが増加することが知られており、例えば空き容量が10%あるいは5%以下となった際に加算される値である。また、A1は加算に限定したものでなく、乗算でもよい。
【0029】
次いで、ステップS310で、計算式(5)により、アプリDを追加した場合の所定期間での不揮発性メモリ102における実際の書き込み量の推測値(WD_15)(実際値)を算出する。
WD_15=(WD_12×(1+WD_D÷(WD_A+WD_B+WD_C))×WAF_1+UWAF_D×US_D×UF_D÷所定期間 ・・・・・(5)
【0030】
続いて、ステップS311で、計算式(6)を用いて、アプリDを追加した場合の第二の所定期間(第二の期間)での不揮発性メモリ102における実際の書き込み量の推測値(WD_16)(実際値)を算出する。
WD_16=WD_15×第二の所定期間÷所定期間 ・・・・・(6)
ここで、第二の所定期間は、例えば製品寿命までの期間、メンテナンスまでの期間である。
【0031】
次いで、ステップS312で、WD_16とWD_14を比較する。
WD_16がWD_14以下の場合、表示部106を介して、ユーザーにアプリDが追加可能である旨を通知する(ステップS313)。
一方、WD_16がWD_14を超過する場合、アプリDを追加すると製品寿命またはメンテナンスまでの期間で、不揮発性メモリ102の寿命に達する可能性があるため、表示部106を介して、ユーザーにアプリDを追加できない、または、装置の交換が必要である旨を通知する(ステップS314)。
【0032】
実施の形態1によれば、メモリ制御装置は、上述の動作を行うことで、プログラムの追加、変更時に不揮発性メモリ102の寿命を精度よく推定できる。
なお、本実施の形態1では、プログラムを追加する場合について説明したが、プログラムを更新する場合でも同様の効果を実現することができる。
【0033】
実施の形態2.
以下、実施の形態2を図に基づいて説明する。
実施の形態2のメモリ制御装置、制御プログラムの構成は、実施の形態1の
図1、
図2と同じである。
実施の形態2では、メモリ制御部202の不揮発性メモリ102の寿命算出動作が、実施の形態1と異なっている。
実施の形態2は、書き込み効率の推測値を不揮発性メモリの実使用状態に合わせて補正して、不揮発性メモリの寿命を算出するようにしたものである。
【0034】
次に、
図7を用いて、実施の形態2における、メモリ制御部202の不揮発性メモリ102の寿命算出動作について説明する。
図7では、追加するプログラムとして、アプリDを追加する場合についてのものである。
なお、
図7では、
図3のステップS302をステップS401に、ステップS308をステップS402に、ステップS310-S312をステップS403-S406に、それぞれ代えている。
【0035】
以下、変更したステップについて説明する。
ステップS301に続くステップS401で、
図4に記載の既存アプリの所定期間での書き込み量の見込み値(WD_A~C)と、書き込み効率の見込み値(WAF_ABC)を取得する。
【0036】
次いで、ステップS303-ステップS307を実行し、書き込み量の実際値、不揮発性メモリへの書き込み可能量を算出し、変更するアプリのサイズ、更新頻度を取得したのち、ステップS402で、
図6に記載の、変更するアプリの所定期間での書き込み量の見込み値(WD_D)と、書き込み効率の見込み値(WAF_ABCD)を取得する。
【0037】
次に、ステップS309を実行し、書き込み効率の実際値(WAF_1)を算出したのち、ステップS403で、計算式(7)により、書き込み効率の推測値(WAF_2)を算出する。
WAF_2=WAF_1×WAF_ABCD÷WAF_ABC ・・・・・(7)
【0038】
次いで、ステップS404で、計算式(8)により、アプリDを追加した場合の実使用における所定期間での実際の書き込み量の推測値(WD_21)(実際値)を算出する。
WD_21=WAF_2×(WD_A+WD_B+WD_C+WD_D)+UWAF_D×US_D×UF_D÷所定期間 ・・・・・(8)
【0039】
次に、ステップS405で、計算式(9)により、アプリDを追加した場合の第二の所定期間での不揮発性メモリ102への実際の書き込み量の推測値(WD_22)(実際値)を算出する。
ここで、第二の所定期間は、例えば、製品寿命までの期間、またはメンテナンスまでの期間である。
WD_22=WD_21×第二の所定期間÷所定期間 ・・・・・(9)
【0040】
さらに、ステップS406で、WD_22とWD_14を比較する。
WD_22がWD_14以下の場合、ステップS313で、表示部106を介して、ユーザーにアプリDが追加可能である旨を通知する。
一方、WD_22がWD_14を超過する場合、ステップS314で、アプリDを追加すると製品寿命またはメンテナンスまでの期間で、不揮発性メモリ102の寿命に達する可能性があるため、表示部106を介して、ユーザーにアプリDを追加できない、または、装置の交換が必要である旨を通知する。
【0041】
実施の形態2によれば、WAFを不揮発性メモリ102の実使用状態に合わせて補正するため、不揮発性メモリ102の寿命をより精度よく推定することができる。
【0042】
実施の形態3.
以下、実施の形態3を図に基づいて説明する。
実施の形態3のメモリ制御装置、制御プログラムの構成は、実施の形態1の
図1、
図2と同じである。
実施の形態3では、メモリ制御部202の不揮発性メモリ102の寿命算出動作が、実施の形態1と異なっている。
実施の形態3は、電源状態に変化がある場合の不揮発性メモリの寿命を算出についてのものであり、
図8、
図9を用いて説明する。実施の形態3でも、追加するプログラムとして、アプリDを追加する場合について説明している。
【0043】
以下、
図8を用いて、実施の形態3における、メモリ制御部202の電源状態変化時の書き込み効率算出動作について説明する。
なお、
図8のステップS303とステップS304は、
図3のステップS303とステップS304と同じであり、
図8の他のステップは、
図3から変更されている。
独自のものである。
【0044】
図8で、メモリ制御部202は、電源状態に変化があるかどうかを確認する(ステップS501)。
ここで、電源状態とは、電源107の供給開始、供給遮断された状態のことを意味する。
また、供給遮断状態には電源107の電圧が下がり、供給遮断される直前の状態も含む。
ステップS501で電源状態に変化がある場合、ステップS502に進む。
ステップS501で電源状態に変化がない場合は、処理を終了する。
【0045】
次に、ステップS502で、ROM105に記憶済みの不揮発性メモリ102の書き込み量(WD_PRE)、書き込み回数(CNT_PRE)、書き込み効率(WAF_PRE)を取得する。
【0046】
次いで、ステップS303、ステップS304を実行したのち、ステップS503で、計算式(10)により、電源状態が変化した期間の書き込み効率の実際値(WAF_31)を算出する。
WAF_31=不揮発性メモリ102の全容量×(ステップS304で取得した書き換え回数-CNT_PRE)÷(WD_11-WD_PRE) ・・・・・(10)
【0047】
次いで、ステップS504で、ステップS503で算出された書き込み効率と、ステップS502で取得された書き込み効率の差分を算出する。
ステップS504で、差分の絶対値が所定値以上であるときは、ユーザーが代わった、または、使用温度が大きく変わった等、メモリ制御装置100の使用環境が大きく変わったものと判定し、ステップS503で算出した書き込み効率をROM105に記憶する(ステップS505)。
ステップS504で、差分の絶対値が所定値未満である場合、同じユーザーが同じ使い方をしていると判定し、ステップS503で算出した書き込み効率とステップS502で取得した書き込み効率の平均(算術平均でもよいし、荷重平均でもよい)を算出し、ROM105に記憶する(ステップS506)。
【0048】
次いで、ステップS507で、ステップS303で取得された書き込み量とステップS304で取得された書き込み回数をROM105に記憶し、処理を終了する。
【0049】
次に、
図9を用いて、実施の形態3によるメモリ制御装置のメモリ制御部202の不揮発性メモリ102の寿命算出動作について説明する。
図9は、
図8でROM105に記憶された新しいWAFを用いて、電源状態変化時の使用環境が大きく変わった場合に、不揮発性メモリ102の寿命を推定するようにしたものである。
ここで、使用環境が大きく変わる場合とは、例えば、ユーザーが変わる、温度が大幅に変わるなどである。
なお、
図9では、
図3のステップS309-ステップS312を、ステップS601-ステップS604に変更し、
図3のステップS304、ステップS305を削除している。
図9の他のステップは、
図3におけるものと同一のものである。
【0050】
図9において、ステップS308に続くステップS601で、計算式(11)により、書き込み効率の実際値(WAF_32)を算出する。
ここで、A1について説明する。
不揮発性メモリ102の空き容量に応じた所定値であり、不揮発性メモリ102の空き容量が少なくなると、特定の不揮発性メモリ102のセルに対して書き換えが頻発する。これを防止するため、ウェアレベリングにより、不揮発性メモリ102のセル内でデータの書き換えが発生し、結果としてWAFが増加することが知られている。
A1は、例えば、空き容量が10%または5%以下となった際に加算される値である。また、A1は加算に限定したものでなく、乗算でもよい。
WAF_32=ROM105に記録済の実使用における書き込み効率+A1
・・・・・(11)
【0051】
次に、ステップS602で、計算式(12)により、アプリDを追加した場合の所定期間での不揮発性メモリ102への書き込み量の推測値(WD_31)(実際値)を算出する。
WD_31=(WD_12×(1+WD_D÷(WD_A+WD_B+WD_C))×WAF_32+UWAF_D×US_D×UF_D÷所定期間 ・・・・・(12)
【0052】
次いで、ステップS603で、計算式(13)により、第二の所定期間での不揮発性メモリ102への書き込み量の推測値(WD_32)(実際値)を算出する。
ここで、第二の所定期間は、例えば、製品寿命までの期間またはメンテナンスまでの期間である。
WD_32=WD_31×第二の所定期間÷所定期間 ・・・・・(13)
【0053】
次に、ステップS604で、WD_32とWD_14とを比較する。
WD_32が、WD_14以下であれば、ステップS313を実行し、WD_32が、WD_14を超えていれば、ステップS314を実行する。
【0054】
実施の形態3によれば、電源状態の変化時に書き込み効率WAFを算出し、書き込み効率WAFの変化が大きい場合にユーザーが代わった、または、使用温度が大きく変わった等、メモリ制御装置100の使用環境が大きく変わったと判定し、新しい書き込み効率WAFで不揮発性メモリ102の寿命を推定するため、使用環境が変わった場合でも不揮発性メモリ102の寿命をより精度よく推定することができる。
【0055】
本開示は、様々な例示的な実施の形態及び実施例が記載されているが、1つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
【0056】
以上、好ましい実施の形態等について詳説したが、上述した実施の形態等に制限される
ことはなく、特許請求の範囲に記載された範囲を逸脱することなく、上述した実施の形態
等に種々の変形及び置換を加えることができる。
【0057】
以下、本開示の諸態様を付記としてまとめて記載する。
【0058】
( 付記1 )
不揮発性メモリに記憶されるとともに、上記不揮発性メモリへの書き込みを行うアプリケーションプログラム、
このアプリケーションプログラムによる不揮発性メモリへの書き込みを制御するとともに、上記不揮発性メモリの寿命を算出するメモリ制御部を備え、
上記メモリ制御部は、上記不揮発性メモリに記憶された上記アプリケーションプログラムの変更に当たって、予め定められた第一の期間における上記不揮発性メモリへ要求した書き込み量と、上記不揮発性メモリに実際に書き込まれた書き込み量の実際値に基づき、第一の期間とは別の第二の期間における上記不揮発性メモリへ要求する書き込み量と、上記不揮発性メモリに実際に書き込まれる書き込み量の実際値とを推測して、上記不揮発性メモリの寿命を算出することを特徴とするメモリ制御装置。
( 付記2 )
上記メモリ制御部は、上記変更するアプリケーションプログラムのサイズ、更新頻度を加味して、第二の期間における上記不揮発性メモリに実際に書き込まれる書き込み量の実際値を推測することを特徴とする付記1に記載のメモリ制御装置。
( 付記3 )
上記メモリ制御部は、上記不揮発性メモリの書き込み可能量を算出し、この書き込み可能量と、上記不揮発性メモリに実際に書き込まれる書き込み量の実際値とを用いて、上記寿命を算出することを特徴とする付記1または付記2に記載のメモリ制御装置。
( 付記4 )
上記メモリ制御部は、上記不揮発性メモリへ要求した書き込み量と、対応する上記不揮発性メモリに実際に書き込まれた書き込み量の実際値との比である書き込み効率を用いて、第二の期間における上記書き込み量の実際値を推測することを特徴とする付記1から付記3のいずれか一項に記載のメモリ制御装置。
( 付記5 )
上記アプリケーションプログラムは、複数であり、
上記メモリ制御部は、変更されるアプリケーションプログラムを含む複数のアプリケーションプログラムの組み合わせに応じて、上記不揮発性メモリの書き込み効率を推測することを特徴とする付記4に記載のメモリ制御装置。
( 付記6 )
上記メモリ制御部は、電源状態が変化した場合に、上記不揮発性メモリの書き込み効率を算出することを特徴とする付記4に記載のメモリ制御装置。
( 付記7 )
上記不揮発性メモリの寿命をユーザーに通知する表示部を備えたことを特徴とする付記1から付記6のいずれか一項に記載のメモリ制御装置。
( 付記8 )
車両に搭載されていることを特徴とするから付記1から付記7のいずれか一項に記載のメモリ制御装置。
( 付記9 )
OTA機能を保有する機器に搭載されていることを特徴とする付記1から付記7のいずれか一項に記載のメモリ制御装置。
【符号の説明】
【0059】
100 メモリ制御装置、101 CPU、102 不揮発性メモリ、
103 通信I/F、104 RAM、105 ROM、106 表示部、
107 電源、200 制御プログラム、201a アプリA、201b アプリB、
201c アプリC、202 メモリ制御部、203 通信部