(57)【要約】【課題】  組込み機器の不揮発性メモリに格納されたデータのエラー情報の取得を効率化することができる。【解決手段】  制御装置は、組込み機器の実行プログラムを含む第１データ群、及び、前記第１データ群以外のデータを含む第２データ群に分かれて不揮発性メモリに格納され、前記第１データ群のデータエラーの有無を示すエラー情報を、前記第２データ群より先に取得する取得部と、前記エラー情報に基づいて、前記組込み機器を起動する際に前記第１データ群のデータエラーを確認する確認部を備える。【選択図】  図１
2018013988.tif 000002
【特許請求の範囲】
【請求項１】
組込み機器の実行プログラムを含む第１データ群、及び、前記第１データ群以外のデータを含む第２データ群に分かれて不揮発性メモリに格納され、
前記第１データ群のデータエラーの有無を示すエラー情報を、前記第２データ群より先に取得する取得部と、
前記エラー情報に基づいて、前記組込み機器を起動する際に前記第１データ群のデータエラーを確認する確認部を備える、
制御装置。
【請求項２】
前記第１データ群は、前記組込み機器の運用中におけるデータエラーの復旧が許容されないデータである、
請求項１に記載の制御装置。
【請求項３】
前記不揮発性メモリは、前記第１データ群を格納する第１格納領域と、前記第２データ群を格納する第２格納領域を有し、
前記取得部は、前記第２格納領域より先に前記第１格納領域に格納された前記第１データ群のエラー情報を取得する、
請求項１又は２に記載の制御装置。
【請求項４】
前記取得部は、前記第１データ群を格納した前記不揮発性メモリのブロックを示すブロック番号情報を用いて前記第１格納領域の範囲を特定する、
請求項３に記載の制御装置。
【請求項５】
前記第１データ群を格納した前記不揮発性メモリのブロックを示すブロック番号情報が、他の不揮発性メモリに保持され、
前記取得部は、前記他の不揮発性メモリに保持された前記ブロック番号情報を用いて前記不揮発性メモリに格納された前記第１データ群を特定する、
請求項１又は２に記載の制御装置。
【請求項６】
前記不揮発性メモリは、前記第１データ群のデータエラーを検出して訂正するエラー検出訂正部を有し、
前記エラー検出訂正部が訂正できないデータエラーの有無を示すエラー情報を取得する、
請求項１から５のいずれか１つに記載の制御装置。
【請求項７】
前記訂正できないデータエラーを復旧する復旧部を、更に備える、
請求項６に記載の制御装置。
【請求項８】
請求項１から７のいずれか１つに記載の制御装置を含む組込み機器。
【請求項９】
組込み機器の実行プログラムを含む第１データ群、及び、前記第１データ群以外のデータを含む第２データ群に分かれて不揮発性メモリに格納され、
前記第１データ群のデータエラーの有無を示すエラー情報を、前記第２データ群より先に取得し、
前記エラー情報に基づいて、前記組込み機器を起動する際に前記第１データ群のデータエラーを確認する、
制御方法。
【請求項１０】
組込み機器の実行プログラムを含む第１データ群、及び、前記第１データ群以外のデータを含む第２データ群に分かれて不揮発性メモリに格納され、
前記第１データ群のデータエラーの有無を示すエラー情報を、前記第２データ群より先に取得し、
前記エラー情報に基づいて、前記組込み機器を起動する際に前記第１データ群のデータエラーを確認する、
ことをコンピュータに実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置等に関し、特に、組込み機器の不揮発性メモリのエラー検出に関する。
【背景技術】
【０００２】
近年、産業機器又は家電製品を含む様々な装置に、ソフトウエアにより特定の機能を実現する組込み機器が用いられている。このような組込み機器は、特定の機能を実現するための各種プログラム、又は、各種データを格納するための不揮発性メモリとしてフラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を用いている。フラッシュＲＯＭには、ＮＡＮＤ型とＮＯＲ型があり、安価で大容量のメモリがつくれることからＮＡＮＤ型フラッシュＲＯＭが主流となっている。
【０００３】
一方、フラッシュＲＯＭの大容量化、高集積化に伴う製造プロセスの微細化によって書換え回数の低下、及び、データ保持時間の短縮が問題となっている。例えば、ＮＡＮＤ型フラッシュＲＯＭでは、時間経過に伴いデータ保持用の酸化膜から電荷が漏れて格納されたデータのデータ化けが発生する。
【０００４】
また、酸化膜の劣化によりデータ保持期間が短くなることからフラッシュＲＯＭに格納されたデータの書換え回数が制限されている。特許文献１には、無駄なデータの書込みを回避してフラッシュＲＯＭの寿命を長くする技術が開示されている。
【０００５】
組込み機器において、不揮発性メモリに格納されたプログラム等にデータ化けが発生すると、起動時あるいは運用中に動作不良を起こし、組込み機器を含んだ装置にも深刻な影響を与えることになる。
【０００６】
エラー検出機能付きの不揮発性メモリを用いることで、データ化けの影響を低減させることができる。しかしながら、エラー検出機能付きの不揮発性メモリは、データを読出す際にエラーを検出するため、あまり利用されないデータは、エラーが検出されずに不揮発性メモリに格納されたままとなる。例えば、組込み機器の起動時ではエラーは検出されず、運用中のデータの読込みによって組込み機器の動作不良が発生する可能性がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平６−１３１８８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
不揮発性メモリの全データのエラーを確認することで、常時使用されないデータのエラーも検出すること可能となるが、組込み機器の高機能化に伴って不揮発性メモリの容量も増加しており、全データのエラーを検出することは時間的な効率が低下することになる。
【０００９】
本発明の目的は、組込み機器の不揮発性メモリに格納されたデータのエラー情報の取得を効率化することができる制御装置等を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の制御装置は、組込み機器の実行プログラムを含む第１データ群、及び、前記第１データ群以外のデータを含む第２データ群に分かれて不揮発性メモリに格納され、前記第１データ群のデータエラーの有無を示すエラー情報を、前記第２データ群より先に取得する取得部と、前記エラー情報に基づいて、前記組込み機器を起動する際に前記第１データ群のデータエラーを確認する確認部を備える。
【００１１】
本発明の組込み機器は、上記制御装置を備える。
【００１２】
本発明の制御方法は、組込み機器の実行プログラムを含む第１データ群、及び、前記第１データ群以外のデータを含む第２データ群に分かれて不揮発性メモリに格納され、前記第１データ群のデータエラーの有無を示すエラー情報を、前記第２データ群より先に取得し、前記エラー情報に基づいて、前記組込み機器を起動する際に前記第１データ群のデータエラーを確認する。
【００１３】
本発明の制御プログラムは、組込み機器の実行プログラムを含む第１データ群、及び、前記第１データ群以外のデータを含む第２データ群に分かれて不揮発性メモリに格納され、前記第１データ群のデータエラーの有無を示すエラー情報を、前記第２データ群より先に取得し、前記エラー情報に基づいて、前記組込み機器を起動する際に前記第１データ群のデータエラーを確認する、ことをコンピュータに実行させる。
【発明の効果】
【００１４】
本発明は、組込み機器の不揮発性メモリに格納されたデータのエラー情報の取得を効率化することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態の制御装置、及び、組込み機器の構成を示すブロック図である。
【図２】第１の実施形態の制御装置、及び、組込み機器のハードウエア構成を示すブロック図である。
【図３】第１の実施形態のフラッシュＲＯＭの格納領域の例を示す説明図である。
【図４】第１データ群と第２データ群をフラッシュＲＯＭに格納する書込み処理の例を示すフローチャートである。
【図５】第１の実施形態の制御装置の動作を示すフローチャートである。
【図６】図５のステップＳ１１の取得処理を示すフローチャートである。
【図７】第２の実施形態の制御装置、及び、組込み機器の構成を示すブロック図である。
【図８】第２の実施形態の制御装置の動作を示すフローチャートである。
【図９】第１データ群をフラッシュＲＯＭに書込む処理の動作を示すシーケンス図である。
【発明を実施するための形態】
【００１６】
（第１の実施形態）
第１の実施形態の制御装置、及び、組込み機器について、図面を用いて説明する。
【００１７】
図１は、第１の実施形態の制御装置、及び、組込み機器の構成を示すブロック図である。図１に示すように、組込み機器１０は、制御装置１１、不揮発性メモリ１２を備える。
【００１８】
不揮発性メモリ１２には、組込み機器１０に用いるデータが、組込み機器１０の実行プログラムを含む第１データ群、及び、第１データ群以外のデータを含む第２データ群に分けられて格納されている。
【００１９】
第１データ群は、組込み機器１０の実行プログラムを含むデータである。実行プログラムは、組込み機器の特定の機能を実行する機能プログラムを含む。第１データ群には、実行プログラムの他、組込み機器１０の制御に用いる各種データが含まれていてもよい。
【００２０】
また、実行プログラムは、組込み機器１０の運用中にデータエラーの復旧が許容されないデータである。データエラーとは、例えば、不揮発性メモリ１２のデータ化けで生じたデータ誤りである。運用中にデータエラーの復旧が許容されないデータは、例えば、医療機器等の組込み機器に用いる実行プログラムである。
【００２１】
第２データ群は、組込み機器１０に用いるデータのうち、第１データ群以外のデータを含む。第２データ群は、例えば、組込み機器１０の運用中にデータエラーの復旧が許容されるデータである。
【００２２】
制御装置１１は、取得部１１１と、確認部１１２を備える。取得部１１１は、不揮発性メモリ１２に格納された第１データ群のデータエラーの有無を示すエラー情報を、第２データ群より先に取得する。不揮発性メモリ１２にデータエラーの検出機能が搭載されている場合、取得部１１１は、エラー情報を不揮発性メモリ１２から取得してもよい。
【００２３】
確認部１１２は、エラー情報に基づいて、組込み機器１０を起動する際に第１データ群のデータエラーを確認する。
【００２４】
図２は、第１の実施形態の制御装置、及び、組込み機器のハードウエア構成を示すブロック図である。図１に示す組込み機器１０は、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、フラッシュＲＯＭ１０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）  ＲＯＭ１０４、外部インターフェース１０５、通信インターフェース１０６を備える。
【００２５】
制御装置１１、及び、組込み機器１０の各構成要素は、これらの機能を実現するプログラムをＣＰＵ１０１が取得して実行することで実現される。各構成要素の機能を実現するプログラムは、例えば、フラッシュＲＯＭ１０２、ＢＩＯＳ  ＲＯＭ１０４に格納されており、必要に応じてＣＰＵ１０１が読込む。
【００２６】
ＣＰＵ１０１は、ＢＩＯＳ  ＲＯＭ１０４から読込んだ起動プログラムによって、組込み機器１０の起動処理を行う。また、ＣＰＵ１０１は、フラッシュＲＯＭ１０２から読込んだ機能プログラムを実行し、組込み機器１０を制御する。
【００２７】
フラッシュＲＯＭ１０２は、組込み機器１０の機能プログラム及び各種データを格納する。例えば、フラッシュＲＯＭ１０２として、ＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）タイプのフラッシュＲＯＭを用いることができる。なお、フラッシュＲＯＭ１０２は、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）機能を搭載してもよい。
【００２８】
ＲＡＭ１０３は、組込み機器１０の主記憶装置（メインメモリ）である。例えば、ＲＡＭ１０３として、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を用いることができる。
【００２９】
ＢＩＯＳ  ＲＯＭ１０４は、組込み機器１０の起動プログラムを格納する。起動プログラムは、ハードウエア初期化、及び、ＣＰＵ１０１に機能プログラムを読込ませ、実行させる。ＢＩＯＳ  ＲＯＭ１０４として、例えば、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）タイプのフラッシュＲＯＭを用いることができる。
【００３０】
システムバス１０７は、ＣＰＵ１０１と、外部インターフェース１０５、通信インターフェース１０６を接続する。なお、制御装置１１、組込み機器１０のハードウエア構成は上記の構成に限定されない。
【００３１】
次に、第１の実施形態における不揮発性メモリにおける第１データ群と第２データ群の格納例について説明する。以下は、不揮発性メモリとしてフラッシュＲＯＭを用いた例である。
【００３２】
図３は、第１の実施形態のフラッシュＲＯＭの格納領域の例を示す説明図である。フラッシュＲＯＭ３００のメモリ領域は、ブロックごとに分割され、各ブロックにはブロック番号が割り当てられている。第１データ群は、ブロック番号が小さい方のメモリ領域に配置され第１格納領域３０１が形成される。第２データ群は、ブロック番号が大きい方のメモリ領域に配置され第２格納領域３０３が形成される。フラッシュＲＯＭ３００のメモリ領域のうち、第１格納領域３０１、第２格納領域３０３以外は、未使用領域３０２となる。
【００３３】
次に、組込み機器１０に用いるデータを不揮発性メモリ１２にファイルシステムとして構築する例を説明する。以下は、ＣＰＵ１０１が、外部インターフェース１０５を介して取得した第１データ群、第２データ群を、フラッシュＲＯＭ３００に格納する例である。
【００３４】
図４は、第１データ群と第２データ群をフラッシュＲＯＭに格納する書込み処理の例を示すフローチャートである。
【００３５】
まず、ＣＰＵ１０１は、取得した第１データ群をフラッシュＲＯＭ３００に書込む（Ｓ２０１）。第１データ群は、フラッシュＲＯＭ３００のメモリ領域のうちブロック番号の小さいブロックから書込まれる。第１データ群が書込まれた領域は、第１格納領域３０１となる。第１データ群のデータが更に書込まれるときは、第１格納領域３０１のブロックに続く未使用領域３０２のブロック番号の小さいブロックから書込まれる。
【００３６】
次に、ＣＰＵ１０１は、第１データ群の書込みが完了したか確認する（ステップＳ２０２）。第１データ群の書込みが完了していない場合（ステップＳ２０２のＮｏ）、ＣＰＵ１０１は、第１データ群の書込みを続ける。
【００３７】
第１データ群の書込みが完了した場合（ステップＳ２０２のＹｅｓ）、ＣＰＵ１０１は、第１データ群が書込まれた第１格納領域３０１を特定する（ステップＳ２０３）。例えば、図３に示すように、第１データ群が格納されたメモリ領域のブロック０からブロックＩの範囲を特定する。図３に示すフラッシュＲＯＭ３００の例では、第１格納領域３０１は、ブロック０からブロックＩまでの範囲となる。
【００３８】
なお、ブロック０は、フラッシュＲＯＭ３００におけるブロック番号の先頭である。ＣＰＵ１０１は、第１格納領域３０１特定するブロック番号情報をＢＩＯＳ  ＲＯＭ１０４に格納する。
【００３９】
次に、ＣＰＵ１０１は、第２データ群をフラッシュＲＯＭ３００に書込む（Ｓ２０４）。第２データ群は、フラッシュＲＯＭ３００のメモリ領域のうちブロック番号の大きいブロックから書込まれる。書込まれたメモリ領域は、第２格納領域３０３となる。第２データ群が更に書込まれるときは、第２格納領域３０３のブロックに続く未使用領域３０２のブロック番号の大きいブロックから書込まれる。
【００４０】
次に、ＣＰＵ１０１は、第２データ群の書込みが完了したか確認する（ステップＳ２０５）。第２データ群の書込みが完了していない場合（ステップＳ２０５のＮｏ）、ＣＰＵ１０１は、第２データ群の書込みを続ける。
【００４１】
第２データ群の書込みが完了した場合（ステップＳ２０５のＹｅｓ）、ＣＰＵ１０１は、フラッシュＲＯＭ３００に第１データ群、第２データ群を書込む処理を終了する。
【００４２】
図３に示すフラッシュＲＯＭ３００の例では、第２格納領域３０３は、ブロックＪからブロックＮ−１までの範囲となる。なお、ブロックＮ−１は、フラッシュＲＯＭ３００における最終ブロックである。
【００４３】
次に、第１の実施形態の制御装置の動作について、図面を用いて説明する。図５は、第１の実施形態の制御装置の動作を示すフローチャートである。
【００４４】
まず、制御装置１１の実行部（図示せず）は、組込み機器１０の起動を開始する。具体的には、ＣＰＵ１０１は、ＢＩＯＳ  ＲＯＭ１０４に格納された起動プログラムを読込み、組込み機器１０の起動処理を実行する。
【００４５】
次に制御装置１１の取得部１１１は、第１データ群のエラー情報を取得する（ステップＳ１１）。ステップＳ１１の取得処理の一例について図６を用いて説明する。図６はステップＳ１１の取得処理を示すフローチャートである。
図６に示すように、取得部１１１は、不揮発性メモリ１２の第１格納領域のブロック番号情報を取得する（ステップＳ１１１）。図３の例では、ブロック番号情報は、ブロック０からブロックＩの範囲となる。
【００４６】
具体的には、ＣＰＵ１０１は、フラッシュＲＯＭ１０２に格納された第１データ群の第１格納領域を特定するブロック番号情報を取得する。ブロック番号情報は、例えば、図４のステップＳ２０３においてＢＩＯＳ  ＲＯＭ１０４に書込まれたブロック番号情報である。
【００４７】
取得部１１１は、取得したブロック番号情報に基づいて、不揮発性メモリ１２の第１格納領域に格納された第１データ群を読込む（ステップＳ１０２）。具体的には、ＣＰＵ１０１は、フラッシュＲＯＭ１０２の第１格納領域のブロックに格納された第１データ群を読込む。
【００４８】
次に、取得部１１１は、第１データ群のエラー情報を取得する（ステップＳ１１３）。例えば、不揮発性メモリ１２にエラー検出訂正機能が搭載されている場合、第１格納領域の第１データ群の読込みによって、エラー検出訂正機能によって第１データ群のデータエラーの有無を示すエラー訂正結果が不揮発性メモリ１２に保持される。取得部１１１は、エラー情報としてエラー訂正結果を取得することにより、第１データ群のデータエラーに関する情報を得る。具体的には、フラッシュＲＯＭ１０２がＥＣＣ機能を搭載する場合、ＣＰＵ１０１は、フラッシュＲＯＭ１０２のＥＣＣ訂正状態レジスタ（図示せず）からＥＣＣ訂正結果を取得する。
【００４９】
次に、制御装置１１の確認部１１２は、エラー情報に基づいて、組込み機器を起動する際に第１データ群のデータエラーを確認する（ステップＳ１２）。具体的には、ＣＰＵ１０１は、ＥＣＣ訂正結果に基づいて、第１データ群にデータエラーの有無を確認する。ここで、ＥＣＣ訂正結果には、データエラーの有無を示す情報として、検出されたデータエラーが訂正できることを示す情報と、検出されたデータエラーが訂正できないことを示す情報が含まれる。データエラーが訂正できる場合、ＣＰＵ１０１は、データエラーが無いと判断する。一方、データエラーが訂正できない場合は、ＣＰＵ１０１は、データエラーが有ると判断する。
【００５０】
次に、第１データ群のエラー確認が完了していない場合（ステップＳ１３のＮｏ）確認部１１２は、ステップＳ１１の処理に移る。一方、第１データ群のエラー確認が完了すると（ステップＳ１３のＹｅｓ）、確認部１１２は、エラー確認の処理を終了する。具体的には、ＣＰＵ１０１は、フラッシュＲＯＭ１０２の第１格納領域に相当するブロックのデータの読込みの完了、第１データ群のエラー確認の完了によってエラー確認処理を終了する。
【００５１】
なお、確認部１１２が、第１データ群にデータエラーが有ると判断した場合、制御装置１１の実行部（図示せず）は、組込み機器１０の起動処理を中止する。
【００５２】
第１の実施形態の制御装置によれば、組込み機器の不揮発性メモリに格納されたデータエラーのエラー情報の取得を効率化することができる。組込み機器の実行プログラムを含む第１データ群、及び、第１データ群以外のデータを含む第２データ群に分かれて不揮発性メモリに格納され、取得部が、第１データ群のデータエラーを表すエラー情報を、第２データ群より先に取得する。さらに、確認部が、エラー情報に基づいて、組込み機器を起動する際に第１データ群のデータエラーを確認する。不揮発性メモリに格納されたデータのうち、エラーの検出対象を組込み機器の運用に必要なデータとすることで、格納された全てのデータのエラーを検出するよりもエラーの検出時間を短縮することができる。
【００５３】
（第２の実施形態）
第２の実施形態の制御装置、及び、組込み機器について、図面を用いて説明する。第２の実施形態の制御装置は、不揮発性メモリに搭載されたエラー検出訂正機能によってエラー訂正できなかったデータを復旧する復旧部を備える点で第１の実施形態と相違する。第２の実施形態の制御装置、及び、組込み機器の説明に関し、第１の実施形態と同一の構成については、同一の符号を付して詳細な説明は省略する。
【００５４】
図７は、第２の実施形態の制御装置、及び、組込み機器の構成を示すブロック図である。図７に示すように、組込み機器２０は、制御装置２１、不揮発性メモリ２２を備える。
【００５５】
不揮発性メモリ２２には、第１の実施形態の例と同様、組込み機器２０に用いるデータが、組込み機器２０の実行プログラムを含む第１データ群、及び、第１データ群以外のデータを含む第２データ群に分けられて格納されている。第１データ群、第２データ群の内容は、第１の実施形態と同様である。
【００５６】
不揮発性メモリ２２は、エラー検出訂正部１２１を備える。エラー検出訂正部１２１は、第１の実施形態の説明で例示したデータのエラーを検出し、検出したエラーを訂正できる機能を有する。
【００５７】
制御装置２１は、取得部１１１と、確認部１１２、復旧部１１３を備える。取得部１１１は、第１データ群のデータエラーの有無を示すエラー情報を、第２データ群より先に取得する。エラー情報は、不揮発性メモリ２２に格納された第１データ群のデータエラーの有無を示す情報である。
【００５８】
確認部１１２は、エラー情報に基づいて、組込み機器２０を起動する際に第１データ群のデータエラーを確認する。
【００５９】
復旧部１１３は、不揮発性メモリ２２のエラー検出訂正部１２１が検出したデータエラーのうち、エラー訂正できなかったデータを復旧する。
【００６０】
次に、第２の実施形態の制御装置の動作について、図面を用いて説明する。図８は、第２の実施形態の制御装置の動作を示すフローチャートである。ステップＳ１１、ステップＳ１２、ステップＳ１３は、第１の実施形態の制御装置の動作と同じため、詳細な説明を省略する。
【００６１】
復旧部１１３は、不揮発性メモリ２２のエラー検出訂正部１２１が検出したデータエラーのうち、エラー検出訂正部１２１がエラー訂正できなかったデータを復旧する（ステップＳ１４）。エラー訂正できなかったデータの復旧処理は、例えば、ネットワークを経由して外部ストレージデバイスから、あるいは、外部メディアからエラー訂正できなかったデータに対する正常データを取得し、新たに不揮発性メモリ２２に書込む処理である。
【００６２】
なお、制御装置１１の実行部（図示せず）は、復旧部１１３によるデータの復旧後、組込み機器１０の起動処理を再び開始させる。
【００６３】
第２の実施形態の制御装置によれば、組込み機器の起動の際にエラー訂正できないデータを確認し、復旧することで、組込み機器の運用中に発生する影響を低下させることができる。
【００６４】
（変形例）
第１の実施形態のフラッシュＲＯＭ３００の例では、メモリ格納領域のブロック番号の小さい方に第１データ群を集中させて格納し、ブロック番号の大きい方に第２データ群を集中させて格納する例を示したが、これに限られるものではない。
【００６５】
以下の変形例では、第１データ群がフラッシュＲＯＭ１０２に分散して格納された場合でも第１データ群の格納領域の特定が容易となる。
【００６６】
具体的には、図４のステップＳ２０１において、ＣＰＵ１０１は、第１データ群をフラッシュＲＯＭ１０２に書込む際に、書込み先ブロック番号をその都度、他の不揮発性メモリであるＢＩＯＳ  ＲＯＭ１０４に書込む。ＢＩＯＳ  ＲＯＭ１０４には、第１データ群に関するブロック番号の情報が集まり、これを第１データ群のブロック番号情報とすることでフラッシュＲＯＭ１０２における第１データ群の格納領域が特定可能となる。
【００６７】
図９は、第１データ群をフラッシュＲＯＭに書込む処理の動作を示すシーケンス図である。
【００６８】
ＣＰＵ１０１は、ファイルシステムに対して、第１データ群の書込みを要求する（ステップＳ４０１）。書込み要求を受けたファイルシステムは、管理するデータ長ごとに第１データ群を分割して分割データを生成する。そしてファイルシステムは、フラッシュＲＯＭ１０２に分割データを書込むための格納領域を決定する。
【００６９】
なお、第１データ群を分割した分割データを書込むための格納領域は、ブロック番号は連続していなくてもよい。
【００７０】
次に、ファイルシステムは、フラッシュＲＯＭデバイスドライバに対して、フラッシュＲＯＭ１０２に生成した分割データの書込みを要求する（ステップＳ４０２）。
【００７１】
フラッシュＲＯＭデバイスドライバは、フラッシュＲＯＭ１０２に各分割データを書込む。なお、フラッシュＲＯＭへの書込みは、フラッシュＲＯＭのブロック長単位に書込み先ブロック番号を指定して書込まれる。
【００７２】
フラッシュＲＯＭ１０２からの書込み完了の応答（ステップＳ４０４）後、フラッシュＲＯＭデバイスドライバは、分割データを書込んだフラッシュＲＯＭ１０２のブロック番号をＢＩＯＳ  ＲＯＭ１０４に書込む。
【００７３】
フラッシュＲＯＭデバイスドライバは、ＢＩＯＳ  ＲＯＭデバイスドライバにブロック番号の書込み要求を送る（ステップＳ４０５）。
【００７４】
ＢＩＯＳ  ＲＯＭデバイスドライバは、フラッシュＲＯＭデバイスドライバからの要求を受け、フラッシュＲＯＭ１０２のブロック番号をＢＩＯＳ  ＲＯＭ１０４に対して書込む（ステップＳ４０６）。
【００７５】
ＢＩＯＳ  ＲＯＭからの書込み完了の応答（ステップＳ４０７）後、ＢＩＯＳ  ＲＯＭデバイスドライバは、フラッシュＲＯＭデバイスドライバに書込み完了の応答を行う（ステップＳ４０８）。
【００７６】
さらに、フラッシュＲＯＭデバイスドライバは、ファイルシステムに書込み完了の応答を行い（ステップＳ４０９）、ファイルシステムは、ＣＰＵに書込み完了の応答を行う（ステップＳ４１０）。
【００７７】
第１の実施形態では、不揮発性メモリの例として、フラッシュＲＯＭを用いて説明したが、これに限られない。例えば、ＥＥＰＲＯＭを含む他の不揮発性メモリを適用することができる。
【００７８】
第１の実施形態では、不揮発性メモリ１２にエラー検出訂正部を有する例を用いて説明したが、エラー訂正機能のないエラー検出部を用いた不揮発性メモリでもよい。エラー検出訂正部の代わりにエラー検出部を用いる場合、制御装置１１の取得部１１１は、データ検出したエラーの訂正可否を示す情報の代わりに、検出したエラーの有無を示す情報を取得する。
【００７９】
制御装置の実現方法には、様々な変形例がある。例えば、制御装置は、各構成要素にそれぞれ別個のＣＰＵとプログラムとの任意の組み合わせにより実現されてもよい。また、制御装置が備える複数の構成要素が、一つのＣＰＵとプログラムとの任意の組み合わせにより実現されてもよい。
【００８０】
また、制御装置の各構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、制御装置は、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）のようなプログラマブルロジックデバイスを用いてもよい。
【００８１】
さらに、制御装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【００８２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８３】
１０、２０  組込み機器
１１、２１  制御装置
１２、２２  不揮発性メモリ
１１１  取得部
１１２  確認部
１１３  復旧部
１０１  ＣＰＵ
１０２  フラッシュＲＯＭ
１０３  ＲＡＭ
１０４  ＢＩＯＳ  ＲＯＭ
１０５  外部インターフェース
１０６  通信インターフェース
１０７  バス
３００  フラッシュＲＯＭ
３０１  第１格納領域
３０２  未使用領域
３０３  第２格納領域
【図１】
2018013988.tif 000003
【図２】
2018013988.tif 000004
【図３】
2018013988.tif 000005
【図４】
2018013988.tif 000006
【図５】
2018013988.tif 000007
【図６】
2018013988.tif 000008
【図７】
2018013988.tif 000009
【図８】
2018013988.tif 000010
【図９】
2018013988.tif 000011