(57)【要約】      （修正有）【課題】不揮発性メモリへの書き込み処理が中断された場合であっても、書き換え対象の情報毎に元に戻すか否かを切り分けることが可能なＩＣチップを提供する。【解決手段】不揮発性メモリは、情報を記憶する記憶領域とバックアップ領域を有し、書き込み手段は、前記記憶領域への書き込み処理が中断された場合には、前記バックアップ領域にバックアップされている前記情報を前記記憶領域に書き戻す処理を行うものであって、前記書き込み処理直前に前記記憶領域に記憶されている情報に書き戻すことが許容されない情報を含むデータブロックに対して前記書き込み処理を行う場合には、前記データブロックに含まれる複数の情報のうち、前記書き戻すことが許容されない情報については書き換え後の情報を前記バックアップ領域にバックアップする一方、前記書き戻すことが許容される情報以外の情報については書き換え前の情報を前記バックアップ領域にバックアップする。【選択図】図３
2013003831.tif 000002
【特許請求の範囲】
【請求項１】
情報の書き換え可能な不揮発性メモリと、外部から書き込みコマンドがあった場合に、複数の情報を含むデータブロックの単位で前記不揮発性メモリに前記情報を書き込む書き込み手段と、を備えるＩＣチップにおいて、
前記不揮発性メモリは、情報を記憶する記憶領域と、前記記憶領域への書き込み処理中に前記情報をバックアップするためのバックアップ領域と、を有し、
前記書き込み手段は、
前記記憶領域への書き込み処理が中断された場合には、前記バックアップ領域にバックアップされている前記情報を前記記憶領域に書き戻す処理を行うものであって、
前記書き込み処理直前に前記記憶領域に記憶されている情報に書き戻すことが許容されない情報を含むデータブロックに対して前記書き込み処理を行う場合には、前記データブロックに含まれる複数の情報のうち、前記書き戻すことが許容されない情報については書き換え後の情報を前記バックアップ領域にバックアップする一方、前記書き戻すことが許容される情報以外の情報については書き換え前の情報を前記バックアップ領域にバックアップすることを特徴とするＩＣチップ。
【請求項２】
請求項１に記載のＩＣチップにおいて、
前記書き込み手段は、前記書き込み処理直前に前記記憶領域に記憶されている情報を前記データブロックの単位で前記バックアップ領域にバックアップした後、当該バックアップされた複数の情報のうち、前記書き戻すことが許容されない情報を書き換えることを特徴とするＩＣチップ。
【請求項３】
情報の書き換え可能な不揮発性メモリと、外部から書き込みコマンドがあった場合に、複数の情報を含むデータブロックの単位で前記不揮発性メモリに前記情報を書き込む書き込み手段と、を備え、前記不揮発性メモリは、情報を記憶する記憶領域と、前記記憶領域への書き込み処理中に前記情報をバックアップするためのバックアップ領域と、を有するＩＣチップに含まれるコンピュータを、
前記書き込み処理直前に前記記憶領域に記憶されている情報に書き戻すことが許容されない情報を含むデータブロックに対して前記書き込み処理を行う場合には、前記データブロックに含まれる複数の情報のうち、前記書き戻すことが許容されない情報については書き換え後の情報を前記バックアップ領域にバックアップする一方、前記書き戻すことが許容される情報以外の情報については書き換え前の情報を前記バックアップ領域にバックアップするステップと、
前記記憶領域への書き込み処理が中断された場合には、前記バックアップ領域にバックアップされている前記情報を前記記憶領域に書き戻すステップと、
を実行させることを特徴とするＩＣチップ用処理プログラム。
【請求項４】
情報の書き換え可能な不揮発性メモリと、外部から書き込みコマンドがあった場合に、複数の情報を含むデータブロックの単位で前記不揮発性メモリに前記情報を書き込む書き込み手段と、を備え、前記不揮発性メモリは、情報を記憶する記憶領域と、前記記憶領域への書き込み処理中に前記情報をバックアップするためのバックアップ領域と、を有するＩＣチップにおける書き込み処理方法であって、
前記ＩＣチップが、前記書き込み処理直前に前記記憶領域に記憶されている情報に書き戻すことが許容されない情報を含むデータブロックに対して前記書き込み処理を行う場合には、前記データブロックに含まれる複数の情報のうち、前記書き戻すことが許容されない情報については書き換え後の情報を前記バックアップ領域にバックアップする一方、前記書き戻すことが許容される情報以外の情報については書き換え前の情報を前記バックアップ領域にバックアップするステップと、
前記ＩＣチップが、前記記憶領域への書き込み処理が中断された場合には、前記バックアップ領域にバックアップされている前記情報を前記記憶領域に書き戻すステップと、
を含むことを特徴とするＩＣチップにおける書き込み処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の書き換え可能な不揮発性メモリと、外部から書き込みコマンド（命令）があった場合に、複数の情報を含むデータブロックの単位で不揮発性メモリに情報を書き込む書き込み手段と、を備えるＩＣカードの技術分野に関する。
【背景技術】
【０００２】
従来から、ＩＣカードでは、不揮発性メモリへの書き込み処理中の引き抜き等による電源供給の中断に対処するため、トランザクション（Transaction）という仕組みが利用されている。トランザクションとは、特定の一連の処理の開始前もしくは終了後のどちらかの状態のみを取り得る仕組みのことをいう。この仕組みにより、不揮発性メモリに記憶される情報が中途半端な内部状態とならないようにしている。特許文献１には、電源供給が中断した場合に、データの書き込み前の状態に戻すことが記載されている。ただし、書き込まれる情報によっては、例えトランザクション中であったとしても１度不揮発性メモリに書き込まれた情報を処理前の状態に書き戻されてしまうと不都合が起こる場合がある。例えば、認証処理等の失敗回数をカウントするカウンタの値は、元の値に戻っては不都合がある情報である。これに対処しようとしたとき、従来から使用されている１バイト（Byte）単位で書き換えが可能な不揮発性メモリであれば、特定の書き込み時のみバックアップを取らない、という単純な対処が取れた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許４１９５８２２号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、最近主流になってきている特定のデータブロック（例えば、数十〜数百バイト）単位（所謂、頁単位という）で書き換えるタイプの不揮発性メモリでは、上記と同じ対処では不十分である。なぜならば、そのようなタイプでは、１度ブロック単位で情報（データ）を消去した後に新情報を書き込むことで書き換えを実行しているため、書き換え対象の情報以外のデータブロック内の情報をバックアップしておく必要がある。このバックアップをしない場合は、書き換え中に引き抜き等が生じた際に想定外の情報（つまり、ブロック内の他の情報）が破壊されてしまう恐れがある。一方、バックアップした場合には、途中で処理を中断した際に戻されては不都合がある情報まで処理前の状態に戻ってしまう問題があった。
【０００５】
そこで、本発明は、このような点等に鑑みてなされたものであり、特定のデータブロック単位で書き換えるタイプの不揮発性メモリへの書き込み処理が中断された場合であっても、書き換え対象の情報毎に元に戻すか否かを切り分けることが可能なＩＣチップ、ＩＣチップ用処理プログラム、及びＩＣチップにおける書き込み処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、情報の書き換え可能な不揮発性メモリと、外部から書き込みコマンドがあった場合に、複数の情報を含むデータブロックの単位で前記不揮発性メモリに前記情報を書き込む書き込み手段と、を備えるＩＣチップにおいて、前記不揮発性メモリは、情報を記憶する記憶領域と、前記記憶領域への書き込み処理中に前記情報をバックアップするためのバックアップ領域と、を有し、前記書き込み手段は、前記記憶領域への書き込み処理が中断された場合には、前記バックアップ領域にバックアップされている前記情報を前記記憶領域に書き戻す処理を行うものであって、前記書き込み処理直前に前記記憶領域に記憶されている情報に書き戻すことが許容されない情報を含むデータブロックに対して前記書き込み処理を行う場合には、前記データブロックに含まれる複数の情報のうち、前記書き戻すことが許容されない情報については書き換え後の情報を前記バックアップ領域にバックアップする一方、前記書き戻すことが許容される情報以外の情報については書き換え前の情報を前記バックアップ領域にバックアップすることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載のＩＣチップにおいて、前記書き込み手段は、前記書き込み処理直前に前記記憶領域に記憶されている情報を前記データブロックの単位で前記バックアップ領域にバックアップした後、当該バックアップされた複数の情報のうち、前記書き戻すことが許容されない情報を書き換えることを特徴とする。
【０００８】
請求項３に記載の発明は、情報の書き換え可能な不揮発性メモリと、外部から書き込みコマンドがあった場合に、複数の情報を含むデータブロックの単位で前記不揮発性メモリに前記情報を書き込む書き込み手段と、を備え、前記不揮発性メモリは、情報を記憶する記憶領域と、前記記憶領域への書き込み処理中に前記情報をバックアップするためのバックアップ領域と、を有するＩＣチップに含まれるコンピュータを、前記書き込み処理直前に前記記憶領域に記憶されている情報に書き戻すことが許容されない情報を含むデータブロックに対して前記書き込み処理を行う場合には、前記データブロックに含まれる複数の情報のうち、前記書き戻すことが許容されない情報については書き換え後の情報を前記バックアップ領域にバックアップする一方、前記書き戻すことが許容される情報以外の情報については書き換え前の情報を前記バックアップ領域にバックアップするステップと、前記記憶領域への書き込み処理が中断された場合には、前記バックアップ領域にバックアップされている前記情報を前記記憶領域に書き戻すステップと、を実行させることを特徴とするＩＣチップ用処理プログラムである。
【０００９】
請求項４に記載の発明は、情報の書き換え可能な不揮発性メモリと、外部から書き込みコマンドがあった場合に、複数の情報を含むデータブロックの単位で前記不揮発性メモリに前記情報を書き込む書き込み手段と、を備え、前記不揮発性メモリは、情報を記憶する記憶領域と、前記記憶領域への書き込み処理中に前記情報をバックアップするためのバックアップ領域と、を有するＩＣチップにおける書き込み処理方法であって、前記ＩＣチップが、前記書き込み処理直前に前記記憶領域に記憶されている情報に書き戻すことが許容されない情報を含むデータブロックに対して前記書き込み処理を行う場合には、前記データブロックに含まれる複数の情報のうち、前記書き戻すことが許容されない情報については書き換え後の情報を前記バックアップ領域にバックアップする一方、前記書き戻すことが許容される情報以外の情報については書き換え前の情報を前記バックアップ領域にバックアップするステップと、前記ＩＣチップが、前記記憶領域への書き込み処理が中断された場合には、前記バックアップ領域にバックアップされている前記情報を前記記憶領域に書き戻すステップと、を含むことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、特定のデータブロック単位で書き換えるタイプの不揮発性メモリへの書き込み処理が中断された場合であっても、書き換え対象の情報毎に元に戻すか否かを切り分けることができる。
【図面の簡単な説明】
【００１１】
【図１】ＩＣカードに搭載されるＩＣチップの概要構成例を示すブロック図である。
【図２】ＩＣチップ１のＣＰＵ１５における書き込み処理を示すフローチャートである。
【図３】書き込み処理において、記憶領域とバックアップ領域に記憶される情報の遷移例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、外部機器との間で接触または非接触で通信を行うＩＣカードに対して本発明を適用した場合の実施の形態である。
【００１３】
先ず、図１を参照して、ＩＣカードに搭載されるＩＣチップの構成及び機能等について説明する。図１は、ＩＣカードに搭載されるＩＣチップの概要構成例を示すブロック図である。
【００１４】
ＩＣチップ１は、外部機器２（外部）からのコマンドに応じてコマンド処理を実行するものである。外部機器２の例としてはＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１が携帯端末に搭載される場合、外部機器２には携帯端末の機能を担うコントローラが該当する。また、外部機器２は、ＩＣチップ１との間で接触または非接触で通信を行うためのリーダーライタを備える。
【００１５】
ＩＣチップ１は、図１に示すように、Ｉ／Ｏインターフェイス１１、ＲＯＭ（Read Only Memory）１２、ＥＥＰＲＯＭ(Electrical Erasable Programmable Read Only Memory）１３、ＲＡＭ(Random Access Memory)１４、及びＣＰＵ（Central Processing Unit）１５（マイクロコンピュータ）等を備えて構成されている。なお、ＥＥＰＲＯＭ１３は、本発明における「情報の書き換え可能な不揮発性メモリ」の一例である。
【００１６】
Ｉ／Ｏインターフェイス１１は、外部機器２との間でリーダーライタを介して各種信号（リセット、コマンド、クロック等）の入出力を接触または非接触で行う。
【００１７】
ＲＯＭ１２又はＥＥＰＲＯＭ１３には、オペレーティングシステム、及びアプリケーションプログラム（本発明のＩＣチップ用処理プログラムを含む）が予め記憶されている。ここで、アプリケーションプログラムは、外部機器２からのコマンド（例えば、書き込みコマンド）に対応するコマンド処理（例えば、書き込み処理）の内容及び実行順序を規定するプログラムである。
【００１８】
また、ＥＥＰＲＯＭ１３には、書き込み処理により書き込まれる各種情報を記憶する記憶領域と、当該記憶領域への書き込み処理中に当該情報をバックアップ（記憶）するためのバックアップ領域と、を有している。
【００１９】
ＲＡＭ１４は、書き込み処理等において情報を一時的に記憶する作業用メモリとして使用される。
【００２０】
ＣＰＵ１５は、アプリケーションプログラムを実行することにより「書き込み手段」としての機能を有する。ＣＰＵ１５による書き込み処理では、複数の情報を含むデータブロック（例えば、数十〜数百バイト）（以下、単に、「ブロック」という）の単位で記憶領域に情報を書き込む。また、この書き込み処理では、記憶領域に記憶されている情報（以下、「元情報」という）がブロック単位で消去された後に、書き込みコマンドで指定された新情報が書き込まれる（つまり、書き換え対象の元情報が、書き込みコマンドで指定された新情報に書き換えられる）。
【００２１】
また、ＣＰＵ１５は、書き込み処理において、書き込み処理の対象となるブロック単位でバックアップ領域に複数の情報（元情報を含む）をバックアップする。このとき、バックアップされる元情報には、書き換え対象以外の元情報が含まれる場合もある。そして、ＣＰＵ１５は、書き込み処理が中断された場合には、バックアップ領域にバックアップされている情報を記憶領域に書き戻す処理を行う。
【００２２】
また、書き込み処理が中断された場合の対処方法として、アトミック（atomic）と、ノンアトミック（non-atomic）の２種類がある。アトミックでは、書き込み処理直前に記憶領域に記憶されていた元情報が、当該記憶領域に書き戻されることが許容される。
【００２３】
このようにアトミックの対象の情報は、書き込み処理直前に記憶領域に記憶されていた元情報に書き戻すことが許容される情報である。一方、ノンアトミックでは、書き込み処理直前に記憶領域に記憶されていた元情報が、当該記憶領域に書き戻されることが許容されない（つまり、書き込み処理が中断された場合であっても、書き込みコマンドで指定された新情報により書き換えられるため、場合によっては中途半端な内部状態となる）。このようにノンアトミックの対象の情報は、書き込み処理直前に記憶領域に記憶されていた元情報に書き戻すことが許容されない情報である。ノンアトミックの対象の情報の例としては、認証処理等の失敗回数をカウントするカウンタの値、またはステップを踏む（１→２→３というように）タイプの処理（元のステップに逆戻りすることが許されない）における当該ステップのカウンタの値等が挙げられる。
【００２４】
そして、本実施形態において、ＣＰＵ１５は、複数の情報を含むブロックに対して書き込み処理を行う場合には、当該ブロックに含まれる複数の情報のうち、ノンアトミックの対象の情報については書き換え後の新情報（書き込みコマンドで指定された新情報）をバックアップ領域にバックアップする一方、ノンアトミック以外の情報（アトミックの対象の情報と書き換え対象以外の情報の少なくとも何れか一方の情報）については書き換え前の元情報をバックアップ領域にバックアップするようになっている。
【００２５】
次に、図２及び図３を参照して、ＩＣチップ１のＣＰＵ１５における書き込み処理について説明する。図２は、ＩＣチップ１のＣＰＵ１５における書き込み処理を示すフローチャートである。図３は、書き込み処理において、記憶領域とバックアップ領域に記憶される情報の遷移例を示す図である。
【００２６】
なお、図３に示す例においては、説明の便宜上、横１行を１ブロック（例えば、１２８バイト）とし、１ブロックを３つの領域に分けている。つまり、１ブロックは３つの情報を含む。
【００２７】
図２に示す処理は、外部機器２から書き込みコマンドがあった（つまり、Ｉ／Ｏインターフェイス１１を介して書き込みコマンドが受信された）場合に開始される。なお、書き込みコマンドには、書き込み対象の新情報（実データ）、当該新情報を書き込むべき記憶領域における位置（アドレス）情報、及び、書き込み対象の新情報がアトミックの対象である否かを示す情報が含まれる。
【００２８】
図２に示す処理が開始されると、ＣＰＵ１５は、書き込み処理の対象となるブロック（書き込み先のブロック）を特定する（ステップＳ１）。次いで、ＣＰＵ１５は、書き込み対象の新情報がアトミックの対象である否かを判定する（ステップＳ２）。そして、ＣＰＵ１５は、書き込み対象の新情報がアトミックの対象であると判定した場合には（ステップＳ２：ＹＥＳ）、ステップＳ３に進む。一方、ＣＰＵ１５は、書き込み対象の新情報がアトミックの対象でない（つまり、ノンアトミックの対象である）と判定した場合には（ステップＳ２：ＮＯ）、ステップＳ５に進む。
【００２９】
ステップＳ３では、ＣＰＵ１５は、上記ステップＳ１で特定された書き込み処理の対象となるブロックがバックアップ済であるか否かを判定する。そして、ＣＰＵ１５は、書き込み処理の対象となるブロックがバックアップ済であると判定した場合（つまり、処理対象のブロックに既に書き込みが発生しており対象のブロックが既にバックアップされている場合）には（ステップＳ３：ＹＥＳ）、ステップＳ８に進む。一方、ＣＰＵ１５は、書き込み処理の対象となるブロックがバックアップ済でないと判定した場合には（ステップＳ３：ＮＯ）、当該ブロックの元情報をバックアップ領域にバックアップ（つまり、書き込み前の状態のバックアップ作成）する（ステップＳ４）。例えば、図３（Ａ）の（ａ）に示すブロック５１が、書き込み処理の対象となるブロックであるとすると、当該ブロック５１の「２−１」（元情報），「２−２」（元情報），及び「２−３」（元情報）が、図３（Ａ）の（ｂ）に示すように、バックアップ領域に記憶される。
【００３０】
そして、上記バックアップ後に、ＣＰＵ１５は、書き込み対象の新情報（アトミックの対象）を記憶領域に書き込む（ステップＳ８）。これにより、当該ブロックの元情報が新情報に書き換えられる。例えば、ブロック５１の「２−２」（元情報）が、図３（Ａ）の（ｂ）に示すように、「２−２（新）」（新情報）に書き換えられる。なお、ステップＳ８では、書き込み処理の対象となるブロックの情報が全て一旦記憶領域から消去（１ブロック単位で一旦消去されるため）され、その後に当該ブロックの元情報及び新情報が記憶領域に書き込まれる（書き換え対象でない元情報は再び書き込まれる）。
【００３１】
一方、ステップＳ５では、ＣＰＵ１５は、上記ステップＳ１で特定された書き込み処理の対象となるブロックがバックアップ済であるか否かを判定する。そして、ＣＰＵ１５は、書き込み処理の対象となるブロックがバックアップ済でないと判定した場合には（ステップＳ５：ＮＯ）、当該ブロックの元情報及び新情報をバックアップ領域にバックアップ（つまり、書き込み後の状態のバックアップ作成）する（ステップＳ６）。例えば、図３（Ａ）の（ｂ）に示すブロック５２が、書き込み処理の対象となるブロックであるとすると、当該ブロック５２の「３−１」（元情報），「３−２」（元情報），及び「３−３（新）」（新情報）が、図３（Ａ）の（ｃ）に示すように、バックアップ領域に記憶される。なお、ステップＳ６では、書き込み処理の対象となるブロックの元情報（図３（Ａ）の例では、ブロック５２の「３−１」（元情報），「３−２」（元情報），及び「３−３」（元情報））が一旦ＲＡＭ１４に記憶される。そして、書き込み処理の対象となるブロックの元情報が記憶されたＲＡＭ１４において、書き換え対象の元情報が新情報に書き換え（書き換え対象でない元情報はそのまま）られた後に、当該ブロックの元情報及び新情報（図３（Ａ）の例では、ブロック５２の「３−１」（元情報），「３−２」（元情報），及び「３−３（新）」（新情報））がＲＡＭ１４からバックアップ領域に記憶される。そして、上記と同様、このバックアップ後に、ＣＰＵ１５は、書き込み対象の新情報（ノンアトミックの対象）を記憶領域に書き込む（ステップＳ８）。
【００３２】
一方、ステップＳ５において、ＣＰＵ１５は、書き込み処理の対象となるブロックがバックアップ済であると判定した場合には（ステップＳ５：ＹＥＳ）、バックアップ領域に既にバックアップされている当該ブロックの元情報を、書き込み対象の新情報に書き換える（新たなバックアップの作成）（ステップＳ７）。例えば、図３（Ｂ）の（ａ）に示すブロック５３が、書き込み処理の対象となるブロックであるとし、このブロック５３の情報が、図３（Ｂ）の（ｂ）に示すように、バックアップ領域に既にバックアップされているとすると、書き込み処理の対象となるブロックの情報が記憶されたバックアップ領域において、書き換え対象の元情報が新情報に書き換え（書き換え対象でない元情報はそのまま）られて、図３（Ｂ）の（ｃ）に示すように、当該ブロックの元情報及び新情報（図３（Ｂ）の例では、ブロック５２の「１−１」（元情報），「１−２」（元情報），及び「１−３（新）」（新情報））が新たにバックアップされる。そして、上記と同様、このバックアップ後に、ＣＰＵ１５は、書き込み対象の新情報（ノンアトミックの対象）を記憶領域に書き込む（ステップＳ８）。
【００３３】
そして、ステップＳ９では、ＣＰＵ１５は、ステップＳ１で特定した書き込み処理の対象となるブロックにおいて書き換え対象の情報が未だあるか（言い換えれば、当該ブロックにおいて書き込むべき新情報があるか）否かを判定する。そして、ＣＰＵ１５は、書き込み処理の対象となるブロックにおいて書き換え対象の情報が未だあると判定した場合には（ステップＳ９：ＹＥＳ）、ステップＳ２に戻り、当該ブロックにおいて次に書き込むべき新情報についてステップＳ２以降の処理を行う。一方、ＣＰＵ１５は、書き込み処理の対象となるブロックにおいて書き換え対象の情報がないと判定した場合には（ステップＳ９：ＮＯ）、書き込み処理の対象となるブロックが未だあるか否かを判定する（ステップＳ１０）。そして、ＣＰＵ１５は、書き込み処理の対象となるブロックが未だあると判定した場合には（ステップＳ１０：ＹＥＳ）、ステップＳ１に戻り、次に書き込み処理の対象となるブロックを特定して、ステップＳ２以降の処理を行う。一方、ＣＰＵ１５は、書き込み処理の対象となるブロックがないと判定した場合には（ステップＳ１０：ＮＯ）、図２に示す書き込み処理を終了する。
【００３４】
そして、以上の書き込み処理が中断された場合には、ＣＰＵ１１は、バックアップ領域にバックアップされている情報を記憶領域に書き戻す処理を行う。例えば、図３（Ａ）の（ｄ）に示す例では、記憶領域において書き換えられたブロック５１の「２−２（新）」（新情報）は、アトミックの対象の情報であるため、書き換え前の「２−２」（元情報）に戻るが、記憶領域において書き換えられたブロック５２の「３−３（新）」（新情報）は、ノンアトミックの対象の情報であるため、書き換え前の「３−３」には戻らず、書き換えられたままの状態となる。また、例えば、図３（Ｂ）の（ｄ）に示す例では、記憶領域において書き換えられたブロック５３の「１−１（新）」（新情報）は、アトミックの対象の情報であるため、書き換え前の「１−１」（元情報）に戻るが、記憶領域において書き換えられたブロック５２の「１−３（新）」（新情報）は、ノンアトミックの対象の情報であるため、書き換え前の「１−３」には戻らず、書き換えられたままの状態となる（つまり、同じブロック内の情報であっても、書き換え前の状態に戻る情報と戻らない情報とがある）。
【００３５】
以上説明したように、上記実施形態によれば、複数の情報を含むブロックに対して書き込み処理を行う場合には、当該ブロックに含まれる複数の情報のうち、ノンアトミックの対象の情報については書き換え後の新情報をバックアップ領域にバックアップする一方、ノンアトミック以外の情報については書き換え前の元情報をバックアップ領域にバックアップしておき、書き込み処理が中断された場合には、バックアップ領域にバックアップされている情報を記憶領域に書き戻すように構成したので、ブロック単位で書き換えるタイプの不揮発性メモリへの書き込み処理が中断された場合であっても、書き換え対象の情報毎に元に戻すか否かを切り分けることができる。これにより、書き込み処理が中断した場合に、書き換え対象外の情報が破壊されることなく元の状態に戻すことができ、なおかつ、書き換え対象且つノンアトミックの対象の情報（戻されては不都合がある情報）が元の状態に戻ることを防止することができる。
【００３６】
更に、書き込み処理の対象となるブロックがバックアップ済である場合、バックアップ領域に既にバックアップされている当該ブロックの元情報を、書き込み対象の新情報に書き換えるように構成したので、同じブロック内にアトミックの対象の情報とノンアトミックの対象の情報とが混在する場合であっても、より効率良く元に戻すか否かを切り分けることができる。
【符号の説明】
【００３７】
１  ＩＣチップ
２  外部機器
１１  Ｉ／Ｏインターフェイス
１２  ＲＯＭ
１３  ＥＥＰＲＯＭ
１４  ＲＡＭ
１５  ＣＰＵ
【図１】
2013003831.tif 000003
【図２】
2013003831.tif 000004
【図３】
2013003831.tif 000005