(57)【要約】【課題】一連のデータの書き込み途中での電源遮断による不正データの発生防止を簡単な構成で実現することができるメモリ装置を提供する。【解決手段】データＤＴが格納される不揮発性メモリ１３と、不揮発性メモリ１３に格納されるデータＤＴを一時的に保持するバッファメモリ１５と、不揮発性メモリ１３およびバッファメモリ１５に対するデータの書き込みを制御するメモリ制御モジュール１４とを備え、メモリ制御モジュール１４は、入力されるライトプロテクト信号ＰＳ１がプロテクト解除を示している間に、不揮発性メモリ１３に対して書き込み要求（書き込み要求信号ＷＳ１）されたデータＤＴを、バッファメモリ１５に書き込んで一時的に保持させ、ライトプロテクト信号ＰＳ１がプロテクト設定を示すと、バッファメモリ１５からデータＤＴを読み出して不揮発性メモリ１３に書き込むよう制御する。【選択図】図１
2008152601.tif 000002
【特許請求の範囲】
【請求項１】
データが格納される不揮発性メモリと、
前記不揮発性メモリに格納されるデータを一時的に保持するバッファメモリと、
前記不揮発性メモリおよび前記バッファメモリに対するデータの書き込みを制御する制御手段と、
を備え、
前記制御手段は、入力されるライトプロテクト信号がプロテクト解除を示している間に、前記不揮発性メモリに対して書き込み要求されたデータを、前記バッファメモリに書き込んで一時的に保持させ、前記ライトプロテクト信号がプロテクト設定を示すと、前記バッファメモリから前記データを読み出して前記不揮発性メモリに書き込む
ことを特徴とするメモリ装置。
【請求項２】
前記制御手段は、前記不揮発性メモリに前記データを連続的に書き込む
ことを特徴とする請求項１に記載のメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに格納されたデータを保護するライトプロテクト機能を備えたメモリ装置に関する。
【背景技術】
【０００２】
コンピュータに搭載される不揮発性メモリ、あるいは不揮発性メモリとそのメモリ制御モジュールなどを備える不揮発性メモリユニットは、通常、データの書き込みや削除を禁止するライトプロテクト機能が付加されており、格納した各種設定データやユーザーデータなどの重要なデータを保護できるように構成されている。
【０００３】
たとえば、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などのプロセッサが不揮発性のメモリやメモリユニットにデータを書き込むときには、プロセッサが出力するライトプロテクト信号によってプロテクトの設定／解除が行われ、データの書き込み禁止／許可が切り替えられる。そして、プロテクト解除中のみ書き込み可能とし、プロテクト設定中は書き込み不可能とすることで、既に格納したデータを保護するようにしている。
【０００４】
このような不揮発性のメモリまたはメモリユニットにおいては、ライトプロテクトを解除して行うデータの書き込み動作中に、停電などで電源が遮断されると、書き込み中のデータが破壊される虞がある。そこで、不揮発性メモリに運用メモリ領域とバックアップ用メモリ領域とを設け、バックアップ用メモリ領域へのデータ書き込み後にフラグをリセットしたタイミングで、そのバックアップ用メモリ領域に書き込んだデータと同一のデータを運用メモリ領域に書き込むことにより、正常なデータがバックアップ用メモリ領域と運用メモリ領域のいずれかに存在し、かつ、どちらが有効かをフラグで示すことで、電源遮断時のデータ書き込み不良を防止するようにした書き込み方法が提案されている（たとえば、特許文献１参照）
【特許文献１】特開平７−８４８９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ユーザーデータなどのように、ある程度の大きさを持ち、含まれる個々の情報に相関（連続性）があるような一連のデータを不揮発性メモリに書き込む途中で電源が遮断され、書き込みが継続できなくなった場合、通常はデータが途中まで更新されて終了してしまう。そして、次の立ち上げ時に、一連のデータに含まれる個々の情報の相関が崩れていることで不正なデータとして扱われ、データを初期化せざるを得なくなる。しかし、重要な情報を含むユーザーデータなどは、初期化するよりも前回のデータから更新できないほうが望ましい。
【０００６】
このような不具合に、上述した特許文献１のデータ書き込み方法にて対応することも可能ではあるが、不揮発性メモリに運用のためのメモリ領域とバックアップ用のメモリ領域を設けることで、冗長な不揮発性メモリが必要となり、コスト上昇を招いて現実的ではない。
【０００７】
本発明は、上記の問題を解決しようとするものであり、一連のデータの書き込み途中での電源遮断による不正データの発生防止を簡単な構成で実現することができるメモリ装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【０００９】
［１］データが格納される不揮発性メモリと、
前記不揮発性メモリに格納されるデータを一時的に保持するバッファメモリと、
前記不揮発性メモリおよび前記バッファメモリに対するデータの書き込みを制御する制御手段と、
を備え、
前記制御手段は、入力されるライトプロテクト信号がプロテクト解除を示している間に、前記不揮発性メモリに対して書き込み要求されたデータを、前記バッファメモリに書き込んで一時的に保持させ、前記ライトプロテクト信号がプロテクト設定を示すと、前記バッファメモリから前記データを読み出して前記不揮発性メモリに書き込む
ことを特徴とするメモリ装置。
【００１０】
上記発明では、制御手段は、入力されるライトプロテクト信号がプロテクト解除を示している間に、不揮発性メモリに対して書き込み要求されたデータを、バッファメモリに書き込んで一時的に保持させる。そして、ライトプロテクト信号がプロテクト設定を示すように切り替わると、バッファメモリからデータを読み出して不揮発性メモリに書き込む。
【００１１】
このように、不揮発性メモリに書き込まれるデータを、ライトプロテクトの解除中にバッファメモリで一時的に保持し、ライトプロテクトが設定に切り替わると、バッファメモリから読み出して不揮発性メモリに書き込むことにより、たとえば、プロセッサが命令の読み出し、解読、実行、書き戻し過程を繰り返して一連のデータを不揮発性メモリに書き込む場合などに比べ、プロセッサを介すことなくバッファメモリから不揮発性メモリへデータを直接転送することで、短時間で処理できるようになる。これにより、バッファメモリから不揮発性メモリへのデータ転送中に電源が遮断されたとしても、メモリ装置の動作可能なうちに全てのデータを不揮発性メモリに書き込むことができる。
【００１２】
また、バッファメモリへのデータ書き込み中や、バッファメモリに書き込んだデータをバッファメモリから不揮発性メモリへ転送する前に、電源が遮断された場合でも、バッファメモリに保持されたデータが消滅するだけで、不揮発性メモリに不完全なデータが書き込まれることはない。これにより、含まれる個々の情報に相関（連続性）があるような一連のデータなどを不揮発性メモリに書き込む場合でも、電源遮断によるデータ書き込み途中での終了によるデータの不完全な更新が発生せず、次の立ち上げ時に、不正なデータとして扱われ初期化しなければならなくなるような不具合を回避できる。したがって、一連のデータを不揮発性メモリに書き込む途中での電源遮断による不正データの発生防止を、冗長な不揮発性メモリを要することなく簡単な構成で実現することができる。
【００１３】
また、メモリ装置が備えるライトプロテクト機能を利用して上記の制御を実行することにより、すなわち、ライトプロテクト信号が解除から設定に切り替わるタイミングは、プロテクト解除中に書き込み要求された全データの書き込みが完了したこと（バッファメモリによるデータの保持完了）を示すものであり、このライトプロテクト信号を制御動作のトリガ信号として利用することにより、たとえば、専用のトリガ信号を生成して制御するような場合に比べて、構成（制御方法）を簡素化することができる。
【００１４】
［２］前記制御手段は、前記不揮発性メモリに前記データを連続的に書き込む
ことを特徴とする［１］に記載のメモリ装置。
【００１５】
上記発明では、バッファメモリに保持されたデータを不揮発性メモリに連続的に書き込むことにより、バッファメモリから不揮発性メモリへのデータの高速転送が可能となり、連続性のあるデータなどでも効率よく短時間で転送することができる。
【発明の効果】
【００１６】
本発明に係るメモリ装置によれば、一連のデータの書き込み途中での電源遮断による不正データの発生防止を簡単な構成で実現することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面に基づき本発明の実施の形態を説明する。
【００１８】
図１は、本発明の実施の形態に係る不揮発性のメモリユニット１０を備えたデータ処理装置１１の主要構成を示している。データ処理装置１１は、たとえば種々のデータを扱うパーソナルコンピュータ、あるいは、主に画像データを扱うレーザプリンタやデジタル複合機などに搭載される装置であり、本発明のメモリ装置である上記の（不揮発性）メモリユニット１０と、ＣＰＵ１２とを備えている。
【００１９】
ＣＰＵ１２は、演算処理機能を備えてメモリユニット１０を含む装置全体の動作を制御し、メモリユニット１０に対するデータの書き込みおよび読み出しでは、メモリのアドレスを指定することで特定のデータ領域にアクセスする。
【００２０】
メモリユニット１０は、データ処理装置１１が扱う各種データが格納される不揮発性メモリ１３と、不揮発性メモリ１３に対するデータの書き込みおよび読み出しを制御する（不揮発性）メモリ制御モジュール１４とを備えており、更に、メモリユニット１０自体に対するデータの書き込みや削除を禁止するライトプロテクト機能をも備えている。
【００２１】
不揮発性メモリ１３は、電源がオフしても記憶内容が保持されるメモリであり、この不揮発性メモリ１３には、装置固有の各種パラメータ、設定データ、ユーザーデータなど、電源オフ後も保存すべき所定のデータが記憶される。また、不揮発性メモリ１３も、不揮発性メモリ１３自体に対するデータの書き込みや削除を禁止するライトプロテクト機能を備えている。
【００２２】
メモリ制御モジュール１４の内部には、不揮発性メモリ１３に格納されるデータを一時的に保持するバッファメモリ１５（内部バッファメモリ）が設けられている。メモリ制御モジュール１４は、この内蔵したバッファメモリ１５に対するデータの書き込みおよび読み出しも制御しており、バッファメモリ１５に保持されたデータを不揮発性メモリ１３に格納する際は、ＣＰＵ１２を介さずにＤＭＡ（Direct Memory Access）転送によってバッファメモリ１５から不揮発性メモリ１３へデータを直接転送する。さらにメモリ制御モジュール１４は、バッファメモリ１５から不揮発性メモリ１３へのデータ転送時に、データを転送しつつ、それと並行して、ＣＰＵ１２から次に書き込み要求されたデータをバッファメモリ１５に書き込む制御を行う。
【００２３】
データ処理装置１１は、動作中に電源（ＡＣ入力）が遮断されたとしても、電源回路や内部回路に蓄積された電力によって数十〜数百ｍｓ程度は動作可能であり、電源仕様や回路構成などによって電源遮断時の動作可能時間が決定される。バッファメモリ１５の容量は、この電源遮断時におけるデータ処理装置１１の動作可能時間に基づいて設定されている。たとえば、電源遮断時の動作可能時間が５０ｍｓ（または１００ｍｓ）である場合、保持した全てのデータを５０ｍｓ（または１００ｍｓ）以内に不揮発性メモリ１３に転送できる容量に設定される。さらにバッファメモリ１５は、メモリ制御モジュール１４による不揮発性メモリ１３へのデータ転送時に、特定の領域に保持したデータを不揮発性メモリ１３へ転送しつつ、それと並行して、ＣＰＵ１２から送られる次のデータを別の領域に受け入れて保持できるよう、メモリ領域が区分けされている。
【００２４】
メモリユニット１０のライトプロテクト機能に関しては、ＣＰＵ１２がメモリユニット１０にデータを書き込むときに、メモリ制御モジュール１４がライトプロテクトの設定（有効）／解除（無効）を行ってデータの書き込み禁止／許可を切り替える。また、連続性のあるデータの書き込みでは、その連続データの書き込み中はメモリユニット１０をプロテクト解除状態に保持し、全てのデータの書き込み完了後にプロテクト状態に戻す制御が行われる。
【００２５】
詳細には、ＣＰＵ１２は、メモリユニット１０のメモリ制御モジュール１４へライトプロテクト信号ＰＳ１および書き込み要求信号ＷＳ１を出力しており、メモリユニット１０（不揮発性メモリ１３）にデータＤＴを書き込むとき、ライトプロテクト信号ＰＳ１の信号レベルをHighからLowへ切り替える（図２参照）。ライトプロテクト信号ＰＳ１の低下を検出したメモリ制御モジュール１４は、メモリユニット１０のプロテクトを解除してデータＤＴの書き込みを許可する。ＣＰＵ１２は、メモリユニット１０のプロテクト解除後またはプロテクト解除と同時に、書き込み要求信号ＷＳ１の信号レベルをHighからLowへ切り替えてデータＤＴの書き込みを要求し、メモリ制御モジュール１４がＣＰＵ１２から送られたデータＤＴをバッファメモリ１５に書き込む。データＤＴの書き込み完了後は、ＣＰＵ１２がライトプロテクト信号ＰＳ１の信号レベルをLowからHighへ切り替え、ライトプロテクト信号ＰＳ１の上昇を検出したメモリ制御モジュール１４は、メモリユニット１０をプロテクト解除状態から設定状態に切り替えてデータＤＴの書き込みを禁止する。
【００２６】
不揮発性メモリ１３のライトプロテクト機能に関しては、メモリ制御モジュール１４が不揮発性メモリ１３にデータを書き込むときに、不揮発性メモリ１３がライトプロテクトの設定／解除を行ってデータの書き込み禁止／許可を切り替える。また、連続性のあるデータの書き込みでは、その連続データの書き込み中は不揮発性メモリ１３をプロテクト解除状態に保持し、全てのデータの書き込み完了後にプロテクト状態に戻す制御が行われる。
【００２７】
詳細には、メモリ制御モジュール１４は、不揮発性メモリ１３へライトプロテクト信号ＰＳ２および書き込み要求信号ＷＳ２を出力しており、バッファメモリ１５に保持されたデータＤＴを不揮発性メモリ１３に格納するとき、ライトプロテクト信号ＰＳ２の信号レベルをHighからLowへ切り替える（図２参照）。ライトプロテクト信号ＰＳ２の低下を検出した不揮発性メモリ１３は、プロテクトを解除してデータＤＴの書き込みを許可する。メモリ制御モジュール１４は、不揮発性メモリ１３のプロテクト解除後またはプロテクト解除と同時に、書き込み要求信号ＷＳ２の信号レベルをHighからLowへ切り替えてデータＤＴの書き込みを要求し、バッファメモリ１５からデータを読み出して不揮発性メモリ１３に転送し書き込む（ＤＭＡ転送）。データＤＴの書き込み完了後は、メモリ制御モジュール１４がライトプロテクト信号ＰＳ２の信号レベルをLowからHighへ切り替え、ライトプロテクト信号ＰＳ２の上昇を検出した不揮発性メモリ１３は、プロテクト解除状態から設定状態に切り替えてデータＤＴの書き込みを禁止する。
【００２８】
次に、上記構成のメモリユニット１０を含むデータ処理装置１１の動作について説明する。
【００２９】
図２は、ＣＰＵ１２によるメモリユニット１０（不揮発性メモリ１３）へのデータの書き込み動作、および、メモリユニット１０内でのメモリ制御モジュール１４による不揮発性メモリ１３へのデータの書き込み動作のタイミングを示す説明図である。図２に示すタイミングチャートでは、時間経過に伴う、ＣＰＵ１２とメモリ制御モジュール１４の間での動作（ライトプロテクト信号ＰＳ１の出力レベルの変化／書き込み要求信号ＷＳ１の出力レベルの変化／バッファメモリ１５に書き込まれるデータＤＴ）と、メモリ制御モジュール１４と不揮発性メモリ１３の間での動作（ライトプロテクト信号ＰＳ２の出力レベルの変化／書き込み要求信号ＷＳ２の出力レベルの変化／不揮発性メモリ１３に書き込まれるデータＤＴ）とを対応させて表している。
【００３０】
図２に示すように、ＣＰＵ１２は、メモリユニット１０（不揮発性メモリ１３）にデータＤＴを書き込むとき、メモリユニット１０のメモリ制御モジュール１４へ出力するライトプロテクト信号ＰＳ１の信号レベルをHighからLowへ切り替えて、メモリユニット１０のライトプロテクトを解除（無効に）する（Ｔ１）。
【００３１】
メモリユニット１０のプロテクト解除後に、ＣＰＵ１２は、書き込み要求信号ＷＳ１の信号レベルをHighからLowへ切り替えてデータＤＴの書き込みを要求する。たとえば、３つのデータ０，データ１，データ２をその順番に書き込む場合には、データ０の書き込み要求（Ｔ２）と、データ１の書き込み要求（Ｔ３）と、データ２の書き込み要求（Ｔ４）とを所定のタイミング（時間間隔）で順次行う。
【００３２】
メモリ制御モジュール１４は、上記の書き込み要求後にＣＰＵ１２から送られてきたデータＤＴをバッファメモリ１５に書き込んで保持する。上記のデータ０〜２の例では、最初のデータ０の書き込み要求（Ｔ２）後に、ＣＰＵ１２から送られてきたデータ０をバッファメモリ１５に書き込む。データ０の書き込みが完了すると、２番目のデータ１の書き込み要求（Ｔ３）後に、ＣＰＵ１２から送られてきたデータ１をバッファメモリ１５に書き込む。データ１の書き込みが完了すると、最後のデータ２の書き込み要求（Ｔ４）後に、ＣＰＵ１２から送られてきたデータ２をバッファメモリ１５に書き込む。また、このデータＤＴ（データ０〜２）は、たとえば、バッファメモリ１５の特定の領域に書き込んで保持する。
【００３３】
バッファメモリ１５へのデータＤＴの書き込みが完了すると、ＣＰＵ１２は、ライトプロテクト信号ＰＳ１の信号レベルをLowからHighへ切り替えて、メモリユニット１０のライトプロテクトを設定（有効に）する（Ｔ５）。
【００３４】
メモリ制御モジュール１４は、ライトプロテクト信号ＰＳ１の上昇を検出すると、不揮発性メモリ１３へ出力するライトプロテクト信号ＰＳ２の信号レベルをHighからLowへ切り替えて、不揮発性メモリ１３のライトプロテクトを解除し、この不揮発性メモリ１３のプロテクト解除と同時に、書き込み要求信号ＷＳ２の信号レベルをHighからLowへ切り替えてバッファメモリ１５から不揮発性メモリ１３へのデータＤＴの書き込みを要求する（Ｔ５）。そして、バッファメモリ１５に保持されたデータＤＴをＤＭＡ転送によって不揮発性メモリ１３に書き込む。上記のデータ０〜２の例では、バッファメモリ１５に保持されたデータ０〜２を不揮発性メモリ１３に連続的に書き込む。
【００３５】
不揮発性メモリ１３へのデータＤＴの書き込みが完了すると、メモリ制御モジュール１４は、ライトプロテクト信号ＰＳ２の信号レベルをLowからHighへ切り替えて、不揮発性メモリ１３のライトプロテクトを設定する（Ｔ８）。
【００３６】
また、バッファメモリ１５のデータＤＴを不揮発性メモリ１３に書き込んでいる最中に、メモリユニット１０に対して次のデータＤＴを書き込む場合、ＣＰＵ１２は、同様にライトプロテクト信号ＰＳ１の信号レベルをHighからLowへ切り替えて、メモリユニット１０のライトプロテクトを解除し（Ｔ６）、プロテクト解除後に、書き込み要求信号ＷＳ１の信号レベルをHighからLowへ切り替えて次のデータＤＴの書き込みを要求する（Ｔ７）。
【００３７】
この書き込み要求を受けたメモリ制御モジュール１４は、書き込み要求後にＣＰＵ１２から送られてきた次のデータＤＴをバッファメモリ１５に書き込んで保持する。たとえば、上記のデータ０〜２に続くデータ３を書き込む例では、先にデータ０〜２を書き込んだ特定の領域とは別の領域にデータ３を書き込んで保持する。
【００３８】
このように、メモリユニット１０では、不揮発性メモリ１３に書き込まれるデータＤＴが、メモリユニット１０のライトプロテクト解除中にバッファメモリ１５で一時的に保持され、ライトプロテクトが設定に戻されたタイミングで、バッファメモリ１５から読み出されて不揮発性メモリ１３に書き込まれる。また、バッファメモリ１５に保持されたデータＤＴ（データ０〜２）をメモリ制御モジュール１４が不揮発性メモリ１３に書き込んでいる最中でも、ＣＰＵ１２がメモリユニット１０（不揮発性メモリ１３）に対して次のデータＤＴ（データ３）を書き込むことができる。
【００３９】
次に、上記の動作でメモリ制御モジュール１４が行うバッファメモリ１５でのデータ管理について、３種類の例を用いて説明する。
【００４０】
図３に示すデータ管理例（１）の場合、メモリ制御モジュール１４は、バッファメモリ１５へのデータ書き込みで、ＣＰＵ１２から送られてきたデータに、ＣＰＵ１２から指定された不揮発性メモリ１３への書き込み先のアドレスを付与（関連付け）して保存する。
【００４１】
たとえば、書き込みデータがデータ０，データ１，データ２，データ３，・・・，データＮ−１，データＮで、各データの不揮発性メモリ１３への書き込み先のアドレスがアドレスＸ０，アドレスＸ１，アドレスＸ２，アドレスＸ３，・・・，アドレスＸＮ−１，アドレスＸＮである場合、メモリ制御モジュール１４は、メモリユニット１０のライトプロテクト解除中に（図２のＴ１〜Ｔ６）、ＣＰＵ１２から送られてくるデータ０にアドレスＸ０を関連付けし、データ１にアドレスＸ１を関連付けし、データ２にアドレスＸ２を関連付けし、データ３にアドレスＸ３を関連付けし、・・・、データＮ−１にアドレスＸＮ−１を関連付けし、データＮにアドレスＸＮを関連付けして、バッファメモリ１５に保存する。そして、メモリユニット１０のライトプロテクトが解除から設定に切り替わると（図２のＴ６）、メモリ制御モジュール１４は、バッファメモリ１５から各データ（データ０〜Ｎ）を読み出し、不揮発性メモリ１３の各指定アドレス（アドレスＸ０〜ＸＮ）に書き込む。なお、本例の場合はアドレスが不連続であってもよい。
【００４２】
図４に示すデータ管理例（２）の場合、メモリ制御モジュール１４は、バッファメモリ１５へのデータ書き込みで、ＣＰＵ１２から送られてきたデータを、ＣＰＵ１２から指定された不揮発性メモリ１３への書き込み先のアドレスが連続している単位にブロック化し、そのブロック毎に、ブロック内データの書き込みスタートアドレス（先頭アドレス）とサイズを含むヘッダ情報を付与して、バッファメモリ１５に保存する。
【００４３】
たとえば、書き込みデータがデータ０，データ１，データ２，データ３，データ４，データ５，・・・，データＮ−１，データＮで、各データの不揮発性メモリ１３への書き込み先のアドレスがアドレスＸ０，アドレスＸ１，アドレスＸ２，アドレスＸ３，アドレスＸ７，アドレスＸ８，・・・，アドレスＸＸ−１，アドレスＸＸである場合、メモリ制御モジュール１４は、メモリユニット１０のライトプロテクト解除中に（図２のＴ１〜Ｔ６）、ＣＰＵ１２から送られてくるアドレスが連続しているデータ０〜３をブロック化してそのデータブロック０の書き込みスタートアドレスＸ０とサイズ４を含むヘッダ情報を付与し、データ４とデータ５をブロック化してそのデータブロック１の書き込みスタートアドレスＸ７とサイズ２を含むヘッダ情報を付与し、・・・、データＮ−１とデータＮをブロック化してそのデータブロックＭの書き込みスタートアドレスＸＸ−１とサイズ２を含むヘッダ情報を付与し、バッファメモリ１５に保存する。そして、メモリユニット１０のライトプロテクトが解除から設定に切り替わると（図２のＴ６）、メモリ制御モジュール１４は、バッファメモリ１５から各データをブロック単位（データブロック０〜Ｍ）で読み出し、不揮発性メモリ１３の指定された各スタートアドレス（スタートアドレスＸ０，スタートアドレスＸ７，・・・，スタートアドレスＸＸ−１）から始まる領域に書き込む。
【００４４】
図５に示すデータ管理例（３）の場合、メモリ制御モジュール１４は、バッファメモリ１５へのデータ書き込みで、ＣＰＵ１２から書き込み要求を受けたデータの不揮発性メモリ１３への書き込み先のアドレスが含まれる物理ブロックを不揮発性メモリ１３から読み出し、その読み出した物理ブロックにデータを書き込んで反映させ、バッファメモリ１５に保存する。
【００４５】
たとえば、書き込みデータがデータ０で、不揮発性メモリ１３への書き込み先のアドレスがアドレスＸＭで、そのアドレスＸＭを含む不揮発性メモリ１３の物理ブロックが物理ブロックＭである場合、メモリ制御モジュール１４は、メモリユニット１０のライトプロテクト解除中に（図２のＴ１〜Ｔ６）、ＣＰＵ１２から送られてくるデータ０のアドレスＸＭが含まれる物理ブロックＭを不揮発性メモリ１３から読み出し（フェッチ）、その読み出した物理ブロックＭにデータ０を書き込んで統合し（マージ）、バッファメモリ１５に保存する。そして、メモリユニット１０のライトプロテクトが解除から設定に切り替わると（図２のＴ６）、メモリ制御モジュール１４は、バッファメモリ１５から、データ０が統合された物理ブロックＭを読み出して不揮発性メモリ１３に書き戻す。
【００４６】
このデータ管理例（３）では、ＣＰＵ１２から書き込み要求を受けたデータの不揮発性メモリ１３への書き込み先のアドレスが含まれる物理ブロックのみが書き換えられる。
【００４７】
以上説明したように、本実施形態に係るメモリユニット１０では、不揮発性メモリ１３に書き込むデータＤＴを、メモリユニット１０のライトプロテクトの解除中に、メモリ制御モジュール１４内のバッファメモリ１５で一時的に保持し、ライトプロテクトが設定に切り替わると、バッファメモリ１５から読み出して不揮発性メモリ１３に書き込むことにより、たとえば、ＣＰＵ１２が命令の読み出し、解読、実行、書き戻し過程を繰り返して一連のデータＤＴを不揮発性メモリ１３に書き込む場合などに比べ、ＣＰＵ１２を介すことなくバッファメモリ１５から不揮発性メモリ１３へデータＤＴを直接転送（ＤＭＡ転送）することで、短時間で処理できるようになる。そして、バッファメモリ１５から不揮発性メモリ１３へのデータ転送中に電源が遮断されたとしても、メモリユニット１０の動作可能なうちに全てのデータＤＴを不揮発性メモリ１３に書き込むことができる。
【００４８】
また、バッファメモリ１５へのデータＤＴの書き込み中や、バッファメモリ１５に保持したデータＤＴをバッファメモリ１５から不揮発性メモリ１３へ転送する前に、電源が遮断された場合でも、バッファメモリ１５に保持されたデータＤＴが消滅するだけで、不揮発性メモリ１３に不完全なデータが書き込まれることはない。これにより、含まれる個々の情報に相関（連続性）があるようなユーザーデータなどを不揮発性メモリ１３に書き込む場合でも、電源遮断によるデータ書き込み途中での終了とデータの不完全な更新が発生せず、次の立ち上げ時に、不正なデータとして扱われ初期化しなければならなくなるような不具合を回避できる。したがって、一連のデータを不揮発性メモリ１３に書き込む途中での電源遮断による不正データの発生防止を、冗長な不揮発性メモリを要することなく簡単な構成で実現することができる。また、メモリユニット１０が備えるライトプロテクト機能を利用して上記の制御を実行することにより、すなわち、ライトプロテクト信号ＰＳ１が解除から設定に切り替わるタイミングは（Low⇒High）、プロテクト解除中に書き込み要求された全データの書き込みが完了したこと（バッファメモリ１５によるデータの保持完了）を示すものであり、このライトプロテクト信号ＰＳ１を制御動作のトリガ信号として利用することにより、たとえば、専用のトリガ信号を生成して制御するような場合に比べて、構成（制御方法）を簡素化することができる。
【００４９】
また、バッファメモリ１５に保持されたデータＤＴ（データ０〜２）を不揮発性メモリ１３に連続的に書き込むことにより、バッファメモリ１５から不揮発性メモリ１３へのデータＤＴの高速転送が可能となり、連続性のあるデータなどでもより短い時間で転送することができる。
【００５０】
さらに、メモリ制御モジュール１４がバッファメモリ１５から不揮発性メモリ１３にデータＤＴを書き込んでいる最中でも、ＣＰＵ１２は次のデータＤＴを書き込むことができるため、書き込み速度が低下することはない。
【００５１】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【００５２】
たとえば、実施の形態では、メモリユニット１０が備えるバッファメモリ１５をメモリ制御モジュール１４の内部に設けているが、このバッファメモリ１５をメモリ制御モジュール１４の外部に設けるようにしてもよい。
【００５３】
また、電源遮断を監視しておき、ＣＰＵ１２からのライトプロテクト信号ＰＳ１がプロテクト解除を示している間（信号レベルLow）、もしくはライトプロテクト信号ＰＳ１が解除から設定に切り替わる（信号レベルLow⇒High）前の所定期間に電源遮断が検出されなかったことを条件に、バッファメモリ１５から不揮発性メモリ１３へのデータの書き込みを行うように構成されてもよい。これにより、電源遮断後の動作可能時間がバッファメモリ１５から不揮発性メモリ１３へのデータの書き込み途中で経過して、書き込み不能になることを確実に防止できる。なお、上記した所定期間は、バッファメモリ１５から不揮発性メモリ１３へのデータの書き込みに要する時間を電源遮断後の動作可能時間から減算した残り時間に基づいて設定するとよい。
【００５４】
また、実施の形態では、メモリユニット１０と不揮発性メモリ１３とが共にライトプロテクト機能を備える場合を例に説明したが、不揮発性メモリ１３のライトプロテクト機能については設けなくてもよい。不揮発性メモリ自体がライトプロテクト機能を有するか否かは、メモリの仕様によるものであり、本発明は、不揮発性メモリ自体はライトプロテクト機能を有しないが、その不揮発性メモリを備える装置自体はライトプロテクト機能を有するメモリ装置（不揮発性メモリユニット）に対しても適用可能である。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施の形態に係るメモリユニットを備えたデータ処理装置の主要構成を示すブロック図である。
【図２】本発明の実施の形態に係るデータ処理装置のデータ書き込み時の動作タイミングを示すタイミングチャートである。
【図３】本発明の実施の形態に係るバッファメモリでのデータ管理例（１）を示す説明図である。
【図４】本発明の実施の形態に係るバッファメモリでのデータ管理例（２）を示す説明図である。
【図５】本発明の実施の形態に係るバッファメモリでのデータ管理例（３）を示す説明図である。
【符号の説明】
【００５６】
１０…メモリユニット
１１…データ処理装置
１２…ＣＰＵ
１３…不揮発性メモリ
１４…メモリ制御モジュール
１５…バッファメモリ
ＤＴ…データ
ＰＳ１…ライトプロテクト信号
ＰＳ２…ライトプロテクト信号
ＷＳ１…書き込み要求信号
ＷＳ２…書き込み要求信号
【図１】
2008152601.tif 000003
【図２】
2008152601.tif 000004
【図３】
2008152601.tif 000005
【図４】
2008152601.tif 000006
【図５】
2008152601.tif 000007