JP3268130B2 - フラッシュeepromを用いたデータ処理装置 - Google Patents
フラッシュeepromを用いたデータ処理装置Info
- Publication number
- JP3268130B2 JP3268130B2 JP16816594A JP16816594A JP3268130B2 JP 3268130 B2 JP3268130 B2 JP 3268130B2 JP 16816594 A JP16816594 A JP 16816594A JP 16816594 A JP16816594 A JP 16816594A JP 3268130 B2 JP3268130 B2 JP 3268130B2
- Authority
- JP
- Japan
- Prior art keywords
- control information
- block
- log
- buffer
- information
- 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.)
- Expired - Fee Related
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Microcomputers (AREA)
- Read Only Memory (AREA)
Description
【0001】
【産業上の利用分野】この発明は、例えばマイコン組込
み型のI/Oコントローラなどのデータ処理装置に関
し、特にフラッシュEEPROMを有し、そのフラッシ
ュEEPROMのプログラムを実行するデータ処理装置
に関する。
み型のI/Oコントローラなどのデータ処理装置に関
し、特にフラッシュEEPROMを有し、そのフラッシ
ュEEPROMのプログラムを実行するデータ処理装置
に関する。
【0002】
【従来の技術】一般に、コンピュータシステムにおいて
は種々のI/Oコントローラが設けられている。これら
I/Oコントローラのほどんは、マイコン組込み型のイ
ンテリジェントなデバイスによって構成されており、マ
イクロプロセッサ、ROM、RAM、およびEEPRO
Mなどを内蔵している。
は種々のI/Oコントローラが設けられている。これら
I/Oコントローラのほどんは、マイコン組込み型のイ
ンテリジェントなデバイスによって構成されており、マ
イクロプロセッサ、ROM、RAM、およびEEPRO
Mなどを内蔵している。
【0003】I/Oコントローラは、ROMに格納され
たプログラムを実行することによって動作する。RAM
はマイクロプロセッサの作業エリアとして使用され、ま
たEEPROMはI/Oコントローラの機能を特定する
パラメータなどの制御情報の格納に利用される。EEP
ROMに格納された制御情報はホストシステムからロー
ドされるデータによって変更され、これによって例えば
システム起動時などにおけるI/Oコントローラの動作
を制御する事ができる。
たプログラムを実行することによって動作する。RAM
はマイクロプロセッサの作業エリアとして使用され、ま
たEEPROMはI/Oコントローラの機能を特定する
パラメータなどの制御情報の格納に利用される。EEP
ROMに格納された制御情報はホストシステムからロー
ドされるデータによって変更され、これによって例えば
システム起動時などにおけるI/Oコントローラの動作
を制御する事ができる。
【0004】このように、従来では、プログラムと制御
情報をそれぞれその特性に合わせて物理的に異なるメモ
リ上に格納していた。このため、部品点数は増加するも
のの、制御情報やプログラムの信頼性は比較的高く維持
することができる。
情報をそれぞれその特性に合わせて物理的に異なるメモ
リ上に格納していた。このため、部品点数は増加するも
のの、制御情報やプログラムの信頼性は比較的高く維持
することができる。
【0005】しかし、その反面、ROMプログラムをバ
ージョンアップする場合にはROMを交換する必要があ
るなどの不具合もある。そこで、最近では、ROMの代
りにフラッシュEEPROMが用いられるようになって
いる。フラッシュEEPROMはブロック単位で書き換
え可能であり、これを使用ればオンボード上でプログラ
ムを容易に書き替える事ができる。
ージョンアップする場合にはROMを交換する必要があ
るなどの不具合もある。そこで、最近では、ROMの代
りにフラッシュEEPROMが用いられるようになって
いる。フラッシュEEPROMはブロック単位で書き換
え可能であり、これを使用ればオンボード上でプログラ
ムを容易に書き替える事ができる。
【0006】また、フラッシュEEPROMに制御情報
も格納すれば、従来使用していたEEPROMが不用と
なり、部品点数の削減も可能となる。しかしながら、フ
ラッシュEEPROMはブロック単位でデータ消去が行
われるので、書き替え途中に電源遮断や他の何らかのエ
ラーなどが発生すると全ての制御情報が破壊されてしま
うという危険がある。このため、現在では、フラッシュ
EEPROMを使用した場合の信頼性の向上が要求され
ている。
も格納すれば、従来使用していたEEPROMが不用と
なり、部品点数の削減も可能となる。しかしながら、フ
ラッシュEEPROMはブロック単位でデータ消去が行
われるので、書き替え途中に電源遮断や他の何らかのエ
ラーなどが発生すると全ての制御情報が破壊されてしま
うという危険がある。このため、現在では、フラッシュ
EEPROMを使用した場合の信頼性の向上が要求され
ている。
【0007】
【発明が解決しようとする課題】従来では、ROMの代
りにフラッシュEEPROMを用いることでプログラム
の書き替え可能な構成にする事はできるが、信頼性の問
題からEEPROMを別個に設ける必要があり、十分に
部品点数を削減することはできなかった。
りにフラッシュEEPROMを用いることでプログラム
の書き替え可能な構成にする事はできるが、信頼性の問
題からEEPROMを別個に設ける必要があり、十分に
部品点数を削減することはできなかった。
【0008】この発明はこのような点に鑑みてなされた
もので、フラッシュEEPROMの書き替え途中に電源
遮断や他の何らかのエラーなどが発生しても制御情報の
破壊を防止できるようにし、従来のROMおよびEEP
ROM機能をフラッシュEEPROMのみによって実現
することができるデータ処理装置を提供することを目的
とする。
もので、フラッシュEEPROMの書き替え途中に電源
遮断や他の何らかのエラーなどが発生しても制御情報の
破壊を防止できるようにし、従来のROMおよびEEP
ROM機能をフラッシュEEPROMのみによって実現
することができるデータ処理装置を提供することを目的
とする。
【0009】
【課題を解決するための手段】この発明は、第1に、ブ
ロック単位でデータの消去可能なフラッシュEEPRO
Mを有し、そのフラッシュEEPROMのプログラムを
実行するデータ処理装置において、前記フラッシュEE
PROMに設けられた、少なくとも前記データ処理装置
が実行するプログラムが記憶されるブロックと、前記プ
ログラムを書き換えるための書替えプログラムが記憶さ
れるブロックと、前記データ処理装置の制御情報がそれ
ぞれ記憶される第1および第2の制御情報ブロックと、
前記データ処理装置内に設けられ、少なくとも第1およ
び第2のバッファを有するRAMと、前記制御情報の更
新時に、外部から転送された新たな制御情報を前記RA
Mの第1のバッファに格納する手段と、前記データ処理
装置の動作により、前記第1のバッファに格納された制
御情報に付加すべき書き換え回数をカウントアップし
て、その書き替え回数情報と前記新たな制御情報を前記
第1のバッファから前記第2のバッファにコピーし、次
に前記制御情報のチェックサムを生成し、その生成され
たチェックサム、前記書き替え回数情報、および前記制
御情報からなる制御情報ブロックを、ブロック消去した
前記第1の制御情報ブロックに書き込み、その後、当該
制御情報ブロックをブロック消去した前記第2の制御情
報ブロックに書き込む手段とを具備することを特徴とす
る。また、この発明は、第2に、ブロック単位でデータ
の消去可能なフラッシュEEPROMを有し、そのフラ
ッシュEEPROMのプログラムを実行するデータ処理
装置において、前記フラッシュEEPROMに設けら
れ、少なくとも、前記データ処理装置が実行するプログ
ラムが記憶されるブロックと、前記プログラムを書き換
えるための書替えプログラムが記憶されるブロックと、
前記データ処理装置の制御情報がそれぞれ記憶され、且
つ前記プログラム実行時のログ情報がシーケンシャルに
書き込まれるエリアを各々が有する第1および第2の制
御情報・ログブロックと、前記データ処理装置内に設け
られ、少なくとも第1および第2のバッファを有するR
AMと、前記制御情報の更新時に、外部から転送された
新たな制御情報を前記RAMの第1のバッファに格納す
る手段と、前記データ処理装置の動作により、前記第1
のバッファに格納された制御情報に付加すべき書き 換え
回数をカウントアップして、その書き替え回数情報と前
記新たな制御情報を前記第1のバッファから前記第2の
バッファにコピーし、次に前記制御情報のチェックサム
を生成する手段と、前記第1の制御情報・ログブロック
の前記ログ情報を前記第2のバッファに読み出して、前
記制御情報に前記ログ情報を付加し、前記第1の制御情
報・ログブロックをブロック消去する手段と、前記ブロ
ック消去した前記第1の制御情報・ログブロックに前記
制御情報と前記ログ情報と前記チェックサム、前記書き
替え回数とでなる制御情報ブロックを書き込む手段と、
前記第2の制御情報・ログブロックの前記ログ情報を前
記第2のバッファに読み出して、前記制御情報に前記ロ
グ情報を付加し、前記第2の制御情報・ログブロックを
ブロック消去する手段と、前記ブロック消去した前記第
2の制御情報・ログブロックに前記制御情報と前記ログ
情報と前記チェックサム、前記書き替え回数とでなる制
御情報ブロックを書き込む手段とを具備することを特徴
とする。
ロック単位でデータの消去可能なフラッシュEEPRO
Mを有し、そのフラッシュEEPROMのプログラムを
実行するデータ処理装置において、前記フラッシュEE
PROMに設けられた、少なくとも前記データ処理装置
が実行するプログラムが記憶されるブロックと、前記プ
ログラムを書き換えるための書替えプログラムが記憶さ
れるブロックと、前記データ処理装置の制御情報がそれ
ぞれ記憶される第1および第2の制御情報ブロックと、
前記データ処理装置内に設けられ、少なくとも第1およ
び第2のバッファを有するRAMと、前記制御情報の更
新時に、外部から転送された新たな制御情報を前記RA
Mの第1のバッファに格納する手段と、前記データ処理
装置の動作により、前記第1のバッファに格納された制
御情報に付加すべき書き換え回数をカウントアップし
て、その書き替え回数情報と前記新たな制御情報を前記
第1のバッファから前記第2のバッファにコピーし、次
に前記制御情報のチェックサムを生成し、その生成され
たチェックサム、前記書き替え回数情報、および前記制
御情報からなる制御情報ブロックを、ブロック消去した
前記第1の制御情報ブロックに書き込み、その後、当該
制御情報ブロックをブロック消去した前記第2の制御情
報ブロックに書き込む手段とを具備することを特徴とす
る。また、この発明は、第2に、ブロック単位でデータ
の消去可能なフラッシュEEPROMを有し、そのフラ
ッシュEEPROMのプログラムを実行するデータ処理
装置において、前記フラッシュEEPROMに設けら
れ、少なくとも、前記データ処理装置が実行するプログ
ラムが記憶されるブロックと、前記プログラムを書き換
えるための書替えプログラムが記憶されるブロックと、
前記データ処理装置の制御情報がそれぞれ記憶され、且
つ前記プログラム実行時のログ情報がシーケンシャルに
書き込まれるエリアを各々が有する第1および第2の制
御情報・ログブロックと、前記データ処理装置内に設け
られ、少なくとも第1および第2のバッファを有するR
AMと、前記制御情報の更新時に、外部から転送された
新たな制御情報を前記RAMの第1のバッファに格納す
る手段と、前記データ処理装置の動作により、前記第1
のバッファに格納された制御情報に付加すべき書き 換え
回数をカウントアップして、その書き替え回数情報と前
記新たな制御情報を前記第1のバッファから前記第2の
バッファにコピーし、次に前記制御情報のチェックサム
を生成する手段と、前記第1の制御情報・ログブロック
の前記ログ情報を前記第2のバッファに読み出して、前
記制御情報に前記ログ情報を付加し、前記第1の制御情
報・ログブロックをブロック消去する手段と、前記ブロ
ック消去した前記第1の制御情報・ログブロックに前記
制御情報と前記ログ情報と前記チェックサム、前記書き
替え回数とでなる制御情報ブロックを書き込む手段と、
前記第2の制御情報・ログブロックの前記ログ情報を前
記第2のバッファに読み出して、前記制御情報に前記ロ
グ情報を付加し、前記第2の制御情報・ログブロックを
ブロック消去する手段と、前記ブロック消去した前記第
2の制御情報・ログブロックに前記制御情報と前記ログ
情報と前記チェックサム、前記書き替え回数とでなる制
御情報ブロックを書き込む手段とを具備することを特徴
とする。
【0010】第1のデータ処理装置によれば、データ処
理装置のプログラム、その書き替えプログラム、および
制御情報を同じフラッシュEEPROMに内に格納する
ことができるため部品点数が少なくて済み、しかも制御
情報の更新処理時においても、新たな制御情報を格納す
る第1のバッファとフラッシュEEPROMへの書き込
み用の第2のバッファとから成る二重化されたRAMバ
ッファを使用し、且つ更新された書き換え回数情報と共
に制御情報を第1および第2の2つの制御情報ブロック
に二重化して記憶する構成となっているため、更新処理
中に障害が発生しても片方の制御情報は消失されずに保
持されることから、その制御情報を使用して処理するこ
とが出来る。また、第2のデータ処理装置によれば、デ
ータ処理装置のプログラム、その書き替えプログラム、
および制御情報を同じフラッシュEEPROMに内に格
納することができるため部品点数が少なくて済み、しか
も制御情報のみ二重化構成とし、ログ情報はシリアルに
記憶する構成とし、制御情報の更新時には、ログ情報を
一旦バッファに移して新たな制御情報にログ情報を付加
して書き込む構成とすることにより、制御情報とログ情
報を合わせて記憶する構成とすることが出来る。
理装置のプログラム、その書き替えプログラム、および
制御情報を同じフラッシュEEPROMに内に格納する
ことができるため部品点数が少なくて済み、しかも制御
情報の更新処理時においても、新たな制御情報を格納す
る第1のバッファとフラッシュEEPROMへの書き込
み用の第2のバッファとから成る二重化されたRAMバ
ッファを使用し、且つ更新された書き換え回数情報と共
に制御情報を第1および第2の2つの制御情報ブロック
に二重化して記憶する構成となっているため、更新処理
中に障害が発生しても片方の制御情報は消失されずに保
持されることから、その制御情報を使用して処理するこ
とが出来る。また、第2のデータ処理装置によれば、デ
ータ処理装置のプログラム、その書き替えプログラム、
および制御情報を同じフラッシュEEPROMに内に格
納することができるため部品点数が少なくて済み、しか
も制御情報のみ二重化構成とし、ログ情報はシリアルに
記憶する構成とし、制御情報の更新時には、ログ情報を
一旦バッファに移して新たな制御情報にログ情報を付加
して書き込む構成とすることにより、制御情報とログ情
報を合わせて記憶する構成とすることが出来る。
【0011】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。図1にはこの発明の一実施例に係るコンピュー
タシステム全体の構成が示されている。このコンピュー
タシステムは、CPU11、メインメモリ12、システ
ムROM13、およびI/Oコントローラ14を備えて
いる。I/Oコントローラ14は、このシステムに設け
られるディスプレイモニタ、ハードディスク装置、RS
232Cデバイス、フロッピーディスク装置などの各種
I/Oを制御するためのマイコン組み込み型の装置であ
り、図示のように、ホストシステムインタフェース14
1、各種I/Oに結合される複数のI/Oインタフェー
ス142、マイクロプロセッサ143、RAM144、
およびフラッシュEEPROM145を備えている。
明する。図1にはこの発明の一実施例に係るコンピュー
タシステム全体の構成が示されている。このコンピュー
タシステムは、CPU11、メインメモリ12、システ
ムROM13、およびI/Oコントローラ14を備えて
いる。I/Oコントローラ14は、このシステムに設け
られるディスプレイモニタ、ハードディスク装置、RS
232Cデバイス、フロッピーディスク装置などの各種
I/Oを制御するためのマイコン組み込み型の装置であ
り、図示のように、ホストシステムインタフェース14
1、各種I/Oに結合される複数のI/Oインタフェー
ス142、マイクロプロセッサ143、RAM144、
およびフラッシュEEPROM145を備えている。
【0012】RAM144は、マイクロプロセッサ14
3の作業領域として使用されるものであり、ここには2
つのバッファAとバッファBの2つのバッファが確保さ
れている。これらバッファは、フラッシュEEPROM
145のデータ更新などのために利用される。
3の作業領域として使用されるものであり、ここには2
つのバッファAとバッファBの2つのバッファが確保さ
れている。これらバッファは、フラッシュEEPROM
145のデータ更新などのために利用される。
【0013】フラッシュEEPROM145は、I/O
コントローラ14のROMプログラムおよび制御情報格
納用のEEPROMの機能を実現するために設けられた
ものであり、例えば128Kバイトの容量を持つチップ
によって実現されている。
コントローラ14のROMプログラムおよび制御情報格
納用のEEPROMの機能を実現するために設けられた
ものであり、例えば128Kバイトの容量を持つチップ
によって実現されている。
【0014】このフラッシュEEPROM14はブロッ
ク1〜ブロック4の4個の消去ブロックに分割されてお
り、ブロック1は8Kバイト、ブロック2は4Kバイ
ト、ブロック3は4Kバイト、ブロック4は112Kバ
イトの容量を有している。
ク1〜ブロック4の4個の消去ブロックに分割されてお
り、ブロック1は8Kバイト、ブロック2は4Kバイ
ト、ブロック3は4Kバイト、ブロック4は112Kバ
イトの容量を有している。
【0015】ブロック1には、フラッシュEEPROM
14の書き替えプログラムが格納されている。ブロック
2およびブロック3は、例えばシステム起動時に実行さ
れるI/Oコントローラ14内の各デバイスの初期化処
理に使用されるパラメータや、フロッピーディスク装置
やハードディスク装置などのディスク装置の起動順位な
どを示すパラメータなど、マイクロプロセッサ143の
機能を特定するための制御情報の格納に利用される。こ
の場合、ブロック2およびブロック3には、同一の制御
情報が2重化されて格納されている。
14の書き替えプログラムが格納されている。ブロック
2およびブロック3は、例えばシステム起動時に実行さ
れるI/Oコントローラ14内の各デバイスの初期化処
理に使用されるパラメータや、フロッピーディスク装置
やハードディスク装置などのディスク装置の起動順位な
どを示すパラメータなど、マイクロプロセッサ143の
機能を特定するための制御情報の格納に利用される。こ
の場合、ブロック2およびブロック3には、同一の制御
情報が2重化されて格納されている。
【0016】また、ブロック2およびブロック3の各々
は、制御情報格納エリアとログ情報格納エリアに分割さ
れている。ログ情報格納エリアには、このシステムの動
作状況を管理するために必要な動作履歴を示すログデー
タ(電源ON/OFF時刻情報、システム障害情報な
ど)が格納される。この場合、ブロック2およびブロッ
ク3のログ情報格納エリアは図2に示されているように
リング状に連なった1つのエリアとして管理され、ログ
データが採取される度にそのログデータが追記方式で書
き込まれる。
は、制御情報格納エリアとログ情報格納エリアに分割さ
れている。ログ情報格納エリアには、このシステムの動
作状況を管理するために必要な動作履歴を示すログデー
タ(電源ON/OFF時刻情報、システム障害情報な
ど)が格納される。この場合、ブロック2およびブロッ
ク3のログ情報格納エリアは図2に示されているように
リング状に連なった1つのエリアとして管理され、ログ
データが採取される度にそのログデータが追記方式で書
き込まれる。
【0017】すなわち、ログ情報格納エリアについては
2重化はなされておらず、ブロック2に設けられた51
2個のログエントリとブロック2に設けられた512個
のログエントリとから構成される合計1024個のログ
エントリに、ログデータが順次格納される。各ログエン
トリは、例えば8バイトのサイズを有している。
2重化はなされておらず、ブロック2に設けられた51
2個のログエントリとブロック2に設けられた512個
のログエントリとから構成される合計1024個のログ
エントリに、ログデータが順次格納される。各ログエン
トリは、例えば8バイトのサイズを有している。
【0018】また、ブロック2およびブロック3それぞ
れの制御情報格納エリアは、図3に示されているよう
に、チェックサムデータ格納領域、チェックサム反転デ
ータ格納領域、書き替え回数データ格納領域、および制
御情報格納領域に分割されている。
れの制御情報格納エリアは、図3に示されているよう
に、チェックサムデータ格納領域、チェックサム反転デ
ータ格納領域、書き替え回数データ格納領域、および制
御情報格納領域に分割されている。
【0019】フラッシュEEPROM14のブロック1
〜ブロック4はそれぞれオンボード上で書き替え可能で
あるが、ブロック1についてはその書きき替えが外部制
御回路などによって禁止されている。
〜ブロック4はそれぞれオンボード上で書き替え可能で
あるが、ブロック1についてはその書きき替えが外部制
御回路などによって禁止されている。
【0020】次に、図4乃至図11のフローチャートを
参照して、フラッシュEEPROM145を利用して実
行されるI/Oコントローラ14の動作を説明する。図
4は、フラッシュEEPROM145のブロック1に納
められた書き替えプログラムの動作を示すフローチャー
トである。
参照して、フラッシュEEPROM145を利用して実
行されるI/Oコントローラ14の動作を説明する。図
4は、フラッシュEEPROM145のブロック1に納
められた書き替えプログラムの動作を示すフローチャー
トである。
【0021】書き替えプログラムは、ブロック4のプロ
グラムの更新(機能向上やバグ修正)がオペレータによ
って要求された場合や、プログラムが破壊された場合な
どに実行される。
グラムの更新(機能向上やバグ修正)がオペレータによ
って要求された場合や、プログラムが破壊された場合な
どに実行される。
【0022】プロセッサ143は、システム起動時に書
き替えプログラムを実行し、まず、ブロック4のプログ
ラム更新要求の有無を判定する(ステップS11)。こ
の判定は、例えばオペレータによって所定のキー入力操
作、またはスイッチ操作がなされたか否かを検出するこ
とによって行われる。プログラム更新要求がない場合
は、プロセッサ143は、ブロック4に格納されている
チェックサムを用いてブロック4の内容が正当であるか
否かを判断する(ステップS12)。
き替えプログラムを実行し、まず、ブロック4のプログ
ラム更新要求の有無を判定する(ステップS11)。こ
の判定は、例えばオペレータによって所定のキー入力操
作、またはスイッチ操作がなされたか否かを検出するこ
とによって行われる。プログラム更新要求がない場合
は、プロセッサ143は、ブロック4に格納されている
チェックサムを用いてブロック4の内容が正当であるか
否かを判断する(ステップS12)。
【0023】プログラム更新要求が発行された場合、ま
たはブロック4の内容のエラーが検出された場合には、
プロセッサ143はフロッピーディスク装置やハードデ
ィスク装置などから新たなプログラムをロードし、その
プログラムのレビジョンを画面表示して正しいプログラ
ムであるか否かをユーザに問い合わせる(ステップS1
3,S14)。
たはブロック4の内容のエラーが検出された場合には、
プロセッサ143はフロッピーディスク装置やハードデ
ィスク装置などから新たなプログラムをロードし、その
プログラムのレビジョンを画面表示して正しいプログラ
ムであるか否かをユーザに問い合わせる(ステップS1
3,S14)。
【0024】正しいことが確認されると、プロセッサ1
43は、ブロック4に格納されている書き替えプログラ
ム内の書き替えルーチンをRAM144上にコピーし
(ステップS15)、そのRAM144上で書き替えル
ーチンを実行する(ステップS16)。これにより、ブ
ロック4の消去、ブロック4への新プログラムの書き込
みが行われ、その後、書き替えプログラムからブロック
4の新プログラムへ制御が移される。
43は、ブロック4に格納されている書き替えプログラ
ム内の書き替えルーチンをRAM144上にコピーし
(ステップS15)、そのRAM144上で書き替えル
ーチンを実行する(ステップS16)。これにより、ブ
ロック4の消去、ブロック4への新プログラムの書き込
みが行われ、その後、書き替えプログラムからブロック
4の新プログラムへ制御が移される。
【0025】このように、ブロック1の書き替えプログ
ラムは、ブロック4の書き替え指示が有った時、又はフ
ラッシュEEPROM145の内容の正当性のチェック
を行ない、不正であれば、フラッシュEEPROM14
5の内容の書き替えを行なう全ての機能(1.新プログ
ラムの読み込み、2.読み込みプログラムのバージョン
確認、3.フラッシュメモリの書きき替え、4.書き込
み後の再スタート)を持っている。
ラムは、ブロック4の書き替え指示が有った時、又はフ
ラッシュEEPROM145の内容の正当性のチェック
を行ない、不正であれば、フラッシュEEPROM14
5の内容の書き替えを行なう全ての機能(1.新プログ
ラムの読み込み、2.読み込みプログラムのバージョン
確認、3.フラッシュメモリの書きき替え、4.書き込
み後の再スタート)を持っている。
【0026】図5は、2重化された制御情報の更新を行
なうフローチャートである。制御情報を更新する場合に
は、CPU11からI/Oコントローラ14に制御情報
が転送される。CPU11による転送制御は、制御情報
がRAM144のバッファAに格納された時点で完了
し、バッファAからフラッシュEEPROM145への
データ書き込みはI/Oコントローラ14内部の処理と
して実行される。
なうフローチャートである。制御情報を更新する場合に
は、CPU11からI/Oコントローラ14に制御情報
が転送される。CPU11による転送制御は、制御情報
がRAM144のバッファAに格納された時点で完了
し、バッファAからフラッシュEEPROM145への
データ書き込みはI/Oコントローラ14内部の処理と
して実行される。
【0027】すなわち、プロセッサ143は、バッファ
Aにあらかじめ制御情報格納エリアの内容を読み出して
おき、そのバッファAにCPU11から制御情報が転送
されると、まず、バッファA上の書き替え回数データの
値を+1カウントアップする(ステップS21)。次い
で、プロセッサ143は、バッファAの内容(転送され
た制御情報、および書き替え回数データを含む)をバッ
ファBにコピーした後、チェックサムを生成して図3に
示した構造を持つ制御情報ブロックを作る(ステップS
23)。この後、プロセッサ143は、ブロック2の更
新を行ってから、ブロック3の更新を行う(ステップS
24,S25)。
Aにあらかじめ制御情報格納エリアの内容を読み出して
おき、そのバッファAにCPU11から制御情報が転送
されると、まず、バッファA上の書き替え回数データの
値を+1カウントアップする(ステップS21)。次い
で、プロセッサ143は、バッファAの内容(転送され
た制御情報、および書き替え回数データを含む)をバッ
ファBにコピーした後、チェックサムを生成して図3に
示した構造を持つ制御情報ブロックを作る(ステップS
23)。この後、プロセッサ143は、ブロック2の更
新を行ってから、ブロック3の更新を行う(ステップS
24,S25)。
【0028】これら各ブロックの更新処理では、まず、
ログ格納部の内容がバッファBに読み出されて、ログデ
ータが制御情報に付加される(ステップS31)。次い
で、ブロック消去、バッファBからブロックへのデータ
書き込みが行われる(ステップS32〜S34)。
ログ格納部の内容がバッファBに読み出されて、ログデ
ータが制御情報に付加される(ステップS31)。次い
で、ブロック消去、バッファBからブロックへのデータ
書き込みが行われる(ステップS32〜S34)。
【0029】このように、制御情報の更新は、要求時に
バッファAを更新し、書き込み時に、バッファA上の書
き替え回数を更新した後、バッファAをバッファBにコ
ピーし、チェックサムを作成し、ブロック2を更新後、
ブロック3を更新するという手順で行われる。また、ブ
ロック2、ブロック3にはログデータが有るため更新時
はこの値をフラッシュメモリから読み出し、フラッシュ
後再度書き込む。フラッシュメモリ更新時、フラッシュ
した時と同じ値のデータは書き込まれない。例えば、デ
ータ消去によって各ビットの記憶内容が“1”に設定さ
れる場合には、データ“0”の書き込みだけが行われ
る。
バッファAを更新し、書き込み時に、バッファA上の書
き替え回数を更新した後、バッファAをバッファBにコ
ピーし、チェックサムを作成し、ブロック2を更新後、
ブロック3を更新するという手順で行われる。また、ブ
ロック2、ブロック3にはログデータが有るため更新時
はこの値をフラッシュメモリから読み出し、フラッシュ
後再度書き込む。フラッシュメモリ更新時、フラッシュ
した時と同じ値のデータは書き込まれない。例えば、デ
ータ消去によって各ビットの記憶内容が“1”に設定さ
れる場合には、データ“0”の書き込みだけが行われ
る。
【0030】このような更新処理により、ブロック2お
よびブロック3には同一の制御情報が2重化されて格納
される。また、一方のブロック更新終了後に、もう一方
を更新するという手続きで消去および書き込みが行われ
るので、制御データ更新中に障害が発生しても片方の制
御情報は消失されずに保持される。
よびブロック3には同一の制御情報が2重化されて格納
される。また、一方のブロック更新終了後に、もう一方
を更新するという手続きで消去および書き込みが行われ
るので、制御データ更新中に障害が発生しても片方の制
御情報は消失されずに保持される。
【0031】図6は2重化した制御情報の内、どちらを
有効情報として利用するかを判定するためのフローチャ
ートであり、この判定処理はシステム立上時に実行され
る。すなわち、プロセッサ143は、まず、ブロック2
とブロック3の制御情報を比較して、それら等しいか否
かを検出する(ステップS41)。等しい場合にはブロ
ック2とブロック3のどちらの制御情報も正当なもので
あるので、いずれか一方、例えばブロック2が有効ブロ
ックであると判断される(ステップS42)。
有効情報として利用するかを判定するためのフローチャ
ートであり、この判定処理はシステム立上時に実行され
る。すなわち、プロセッサ143は、まず、ブロック2
とブロック3の制御情報を比較して、それら等しいか否
かを検出する(ステップS41)。等しい場合にはブロ
ック2とブロック3のどちらの制御情報も正当なもので
あるので、いずれか一方、例えばブロック2が有効ブロ
ックであると判断される(ステップS42)。
【0032】ブロック2とブロック3の制御情報が不一
致の場合には、プロセッサ143は、ブロック3のチェ
ックサムデータを用いてブロック3の内容の正当性を調
べる(ステップS43)。ブロック3の内容が正しくな
い場合(チェックサムチェックエラー)には、ブロック
2が有効ブロックであると判断される(ステップS4
4)。
致の場合には、プロセッサ143は、ブロック3のチェ
ックサムデータを用いてブロック3の内容の正当性を調
べる(ステップS43)。ブロック3の内容が正しくな
い場合(チェックサムチェックエラー)には、ブロック
2が有効ブロックであると判断される(ステップS4
4)。
【0033】ブロック3の内容が正しい場合(チェック
サムチェック成功)には、プロセッサ143は、ブロッ
ク2のチェックサムデータを用いてブロック2の内容の
正当性を調べる(ステップS45)。ブロック2の内容
が正しくない場合には、ブロック3が有効ブロックであ
ると判断される(ステップS46)。
サムチェック成功)には、プロセッサ143は、ブロッ
ク2のチェックサムデータを用いてブロック2の内容の
正当性を調べる(ステップS45)。ブロック2の内容
が正しくない場合には、ブロック3が有効ブロックであ
ると判断される(ステップS46)。
【0034】ブロック2とブロック3の双方とも内容が
正しい場合には、プロセッサ143は、更新回数の多い
方のブロックを有効とする(ステップS47)。このよ
うにして有効と判定されたブロックの制御情報は、立上
げ時にバッファAに読み出され、以後、バッファAの値
を利用した動作制御が行われる(ステップS48)。
正しい場合には、プロセッサ143は、更新回数の多い
方のブロックを有効とする(ステップS47)。このよ
うにして有効と判定されたブロックの制御情報は、立上
げ時にバッファAに読み出され、以後、バッファAの値
を利用した動作制御が行われる(ステップS48)。
【0035】図7は、ブロック2、ブロック3に設けた
ログエリアの書き込みポインタを見つけるフローチャー
トである。システム立ち上げ時、プロセッサ143は、
ブロック2のログエリアの先頭(ログエントリ1)にロ
グデータが格納されているか否かを検出する(ステップ
S51)。この検出は、ログエントリ1の内容がオール
“1”であるか否かを調べることによって行われる。
ログエリアの書き込みポインタを見つけるフローチャー
トである。システム立ち上げ時、プロセッサ143は、
ブロック2のログエリアの先頭(ログエントリ1)にロ
グデータが格納されているか否かを検出する(ステップ
S51)。この検出は、ログエントリ1の内容がオール
“1”であるか否かを調べることによって行われる。
【0036】ブロック2のログエリアの先頭にログデー
タが無い場合には、プロセッサ143は、ブロック3の
ログ未書き込みエリアを探し、未書き込みエリアが存在
する場合にはその先頭エントリを書き込みポインタとし
て決定する(ステップS52)。もしブロック3にログ
未書き込みエリアが存在しない場合には、プロセッサ1
43は、ブロック2のログエリアの先頭エントリを書き
込みポインタとして決定する(ステップS53)。
タが無い場合には、プロセッサ143は、ブロック3の
ログ未書き込みエリアを探し、未書き込みエリアが存在
する場合にはその先頭エントリを書き込みポインタとし
て決定する(ステップS52)。もしブロック3にログ
未書き込みエリアが存在しない場合には、プロセッサ1
43は、ブロック2のログエリアの先頭エントリを書き
込みポインタとして決定する(ステップS53)。
【0037】また、ブロック2のログエリアの先頭にロ
グデータが存在する場合には、プロセッサ143は、ブ
ロック2のログ未書き込みエリアを探し、未書き込みエ
リアがある場合にはその先頭エントリを書き込みポイン
タとして決定する(ステップS54)。ブロック2に未
書き込みエリアが存在しない場合には、プロセッサ14
3は、ブロック3のログ未書き込みエリアを探し、未書
き込みエリアがある場合にはその先頭エントリを書き込
みポインタとして決定する(ステップS55)。ブロッ
ク3にログ未書き込みエリアが所定数以上存在しない場
合には、プロセッサ143は、ブロック2のログエリア
を消去し(ステップS56)、ブロック2のログエリア
の先頭エントリを書き込みポインタとして決定する(ス
テップS53)。
グデータが存在する場合には、プロセッサ143は、ブ
ロック2のログ未書き込みエリアを探し、未書き込みエ
リアがある場合にはその先頭エントリを書き込みポイン
タとして決定する(ステップS54)。ブロック2に未
書き込みエリアが存在しない場合には、プロセッサ14
3は、ブロック3のログ未書き込みエリアを探し、未書
き込みエリアがある場合にはその先頭エントリを書き込
みポインタとして決定する(ステップS55)。ブロッ
ク3にログ未書き込みエリアが所定数以上存在しない場
合には、プロセッサ143は、ブロック2のログエリア
を消去し(ステップS56)、ブロック2のログエリア
の先頭エントリを書き込みポインタとして決定する(ス
テップS53)。
【0038】このように、ブロック2およびブロック3
のログエリアはリング状に連続した1つのエリアとして
使用され、ログ書き込みポインタ側のブロックの未書き
込みログエリアが少なくなると、反対側のログエリアが
フラッシュされる。未書き込みログエリアの残り数のチ
ェックは通常動作時においても定期的に行ない、未書き
込みログエリアが無くなる前にフラッシュによってログ
エリアを確保しておくことが好ましい。また、ログ未書
き込みエリアが残っていない場合には、ログを採取しな
いなどの運用を行うこともできる。
のログエリアはリング状に連続した1つのエリアとして
使用され、ログ書き込みポインタ側のブロックの未書き
込みログエリアが少なくなると、反対側のログエリアが
フラッシュされる。未書き込みログエリアの残り数のチ
ェックは通常動作時においても定期的に行ない、未書き
込みログエリアが無くなる前にフラッシュによってログ
エリアを確保しておくことが好ましい。また、ログ未書
き込みエリアが残っていない場合には、ログを採取しな
いなどの運用を行うこともできる。
【0039】図8は、ログエリアを確保するために行わ
れるログフラッシュ動作を示すフローチャートである。
ここでは、ブロック3のログエリアに空きが少なくな
り、ブロック2のログエリアを消去する場合を例示して
説明する。
れるログフラッシュ動作を示すフローチャートである。
ここでは、ブロック3のログエリアに空きが少なくな
り、ブロック2のログエリアを消去する場合を例示して
説明する。
【0040】プロセッサ143は、まず、ブロック2の
内容(制御情報エリアおよびログエリア)をバッファB
に読み出し、ログエリアの内容だけをオール“1”にす
る(ステップS61)。次いで、プロセッサ143は、
ブロック2の消去を行う(ステップS62)。この後、
プロセッサ143は、バッファBの内容をブロック2に
書き込む(ステップS63)。この場合、バッファBの
ログエリアの内容は“1”であるため、制御情報エリア
の内容だけがブロック2に書き込まれ、バッファBのロ
グエリアの内容については書き込みは行われない。この
ようにして、ブロック2のログエリフだけが消去され
る。
内容(制御情報エリアおよびログエリア)をバッファB
に読み出し、ログエリアの内容だけをオール“1”にす
る(ステップS61)。次いで、プロセッサ143は、
ブロック2の消去を行う(ステップS62)。この後、
プロセッサ143は、バッファBの内容をブロック2に
書き込む(ステップS63)。この場合、バッファBの
ログエリアの内容は“1”であるため、制御情報エリア
の内容だけがブロック2に書き込まれ、バッファBのロ
グエリアの内容については書き込みは行われない。この
ようにして、ブロック2のログエリフだけが消去され
る。
【0041】図9は、採取されたログデータをログエリ
アに書き込む動作を示すフローチャートである。プロセ
ッサ143は、CPU11からログデータの書き込み要
求が発行されると、まず、現在書き込み対象となってい
るブロック内に未書き込みログエントリが所定数、例え
ば2個以上残っているか否かを調べる(ステップS7
1)。2個以上残っていれば、プロセッサ143は、採
取したログデータを書き込みポインタで指定される位置
に書き込み、その後、書き込みポインタの値を更新して
おく(ステップS72,S73)。
アに書き込む動作を示すフローチャートである。プロセ
ッサ143は、CPU11からログデータの書き込み要
求が発行されると、まず、現在書き込み対象となってい
るブロック内に未書き込みログエントリが所定数、例え
ば2個以上残っているか否かを調べる(ステップS7
1)。2個以上残っていれば、プロセッサ143は、採
取したログデータを書き込みポインタで指定される位置
に書き込み、その後、書き込みポインタの値を更新して
おく(ステップS72,S73)。
【0042】次に、プロセッサ143は、更新された書
き込みポインタの値がそのブロックの最終エントリを示
しているか否かを調べ、最終エントリを示しているなら
ば、書き込みポインタの値を他方のブロックの先頭エン
トリに変更する(ステップS74、S75)。
き込みポインタの値がそのブロックの最終エントリを示
しているか否かを調べ、最終エントリを示しているなら
ば、書き込みポインタの値を他方のブロックの先頭エン
トリに変更する(ステップS74、S75)。
【0043】一方、ステップ71にて未書き込みログエ
ントリの残り数が1個だけあることが検出されると、他
方のブロックの先頭ログエントリが未書き込みであるか
否かを調べる(ステップS76)。未書き込みの場合に
は、その先頭ログエントリを書き込みポインタとして書
き込み対象ブロックを変更し、そして、ステップS72
〜S75の処理を行う。先頭ログエントリが書き込み済
みの場合には、ログ書込みを行わずに処理を終了する。
ントリの残り数が1個だけあることが検出されると、他
方のブロックの先頭ログエントリが未書き込みであるか
否かを調べる(ステップS76)。未書き込みの場合に
は、その先頭ログエントリを書き込みポインタとして書
き込み対象ブロックを変更し、そして、ステップS72
〜S75の処理を行う。先頭ログエントリが書き込み済
みの場合には、ログ書込みを行わずに処理を終了する。
【0044】図10および図11は通常動作時における
フラッシュEEPROM145に対するアクセス動作
(制御データ更新、ログ書き込み要求、ログ未書き込み
エリアチェック、制御データ読み出し、プログラム更
新)を示すフローチャートである。
フラッシュEEPROM145に対するアクセス動作
(制御データ更新、ログ書き込み要求、ログ未書き込み
エリアチェック、制御データ読み出し、プログラム更
新)を示すフローチャートである。
【0045】この実施例では、フラッシュEEPROM
145を4つのブロックに分けて管理し、データ内容毎
に異なる機能を提供しているため、フラッシュEEPR
OM145に対する複数の要求が同時に発生する。
145を4つのブロックに分けて管理し、データ内容毎
に異なる機能を提供しているため、フラッシュEEPR
OM145に対する複数の要求が同時に発生する。
【0046】ログ書き込み要求は即時フラッシュメモリ
に書き込み、他の要求は、フラッシュメモリアクセスタ
スクで実現し、同時に発生した要求を順番に処理する。
タスク動作中に発生したログ書き込みは、タスク動作終
了時まで待たせ、タスクで書き込みを行なう。又、制御
情報の更新要求はタスク動作中複数発生しても一度の更
新で行なう様、タスク動作中は更新フラグを立ててお
き、タスク動作後に更新フラグがあれば、制御情報の更
新を行なう。
に書き込み、他の要求は、フラッシュメモリアクセスタ
スクで実現し、同時に発生した要求を順番に処理する。
タスク動作中に発生したログ書き込みは、タスク動作終
了時まで待たせ、タスクで書き込みを行なう。又、制御
情報の更新要求はタスク動作中複数発生しても一度の更
新で行なう様、タスク動作中は更新フラグを立ててお
き、タスク動作後に更新フラグがあれば、制御情報の更
新を行なう。
【0047】まず、図10(A)を参照して、制御デー
タ更新要求が発行された場合の動作を説明する。プロセ
ッサ143は、CPU11から制御情報更新要求を受け
取ると、バッファAに読み出されている制御情報をその
バッファA上で更新し(ステップS81)、その後、タ
スク動作中であるか否かを調べる(ステップS82)。
タスク動作中であれば更新フラグをオンにして処理を終
了し、タスク動作中でなければタスクを起動する(ステ
ップS83,S84)。
タ更新要求が発行された場合の動作を説明する。プロセ
ッサ143は、CPU11から制御情報更新要求を受け
取ると、バッファAに読み出されている制御情報をその
バッファA上で更新し(ステップS81)、その後、タ
スク動作中であるか否かを調べる(ステップS82)。
タスク動作中であれば更新フラグをオンにして処理を終
了し、タスク動作中でなければタスクを起動する(ステ
ップS83,S84)。
【0048】また、ログ書き込み要求が発行されると、
図10(B)に示されているように、プロセッサ143
は、タスク動作中か否かを調べ、タスク動作中はログを
書き込まずログデータを保存しておく(ステップS91
〜S93)。
図10(B)に示されているように、プロセッサ143
は、タスク動作中か否かを調べ、タスク動作中はログを
書き込まずログデータを保存しておく(ステップS91
〜S93)。
【0049】ログ未書き込みエリアのチェック処理は定
期的に呼び出され、この場合には、図10(C)に示さ
れているように、プロセッサ143は、ブロックの未書
き込みエリアが少なくなっていることを検出すると、他
方のログエリアをあらかじめフラッシュする(ステップ
S101〜S103)。
期的に呼び出され、この場合には、図10(C)に示さ
れているように、プロセッサ143は、ブロックの未書
き込みエリアが少なくなっていることを検出すると、他
方のログエリアをあらかじめフラッシュする(ステップ
S101〜S103)。
【0050】制御情報の読み出し要求については、図1
0(D)に示されているように、システム起動時に有効
ブロックからバッファAに読み出した内容が使用される
(ステップS111)。
0(D)に示されているように、システム起動時に有効
ブロックからバッファAに読み出した内容が使用される
(ステップS111)。
【0051】プログラム変更要求が発行されると、図1
0(E)に示されているように、タスクの起動が行われ
る(ステップS121)。次に、図11を参照して、タ
スクによる動作手順を説明する。
0(E)に示されているように、タスクの起動が行われ
る(ステップS121)。次に、図11を参照して、タ
スクによる動作手順を説明する。
【0052】プロセッサ143は、タスクの初期化時に
おいて、有効ブロックの制御情報をバッファAに読み出
しておき(ステップS201)、以降、起動要求を判断
して(ステップS202,S203)、その起動要求に
対応する処理(プログラム更新、制御データ更新フラグ
OFFおよび制御データ更新、保存ログまたは採取ログ
の書き込み、ログフラッシュなどを行う(ステップS2
04〜S211)。
おいて、有効ブロックの制御情報をバッファAに読み出
しておき(ステップS201)、以降、起動要求を判断
して(ステップS202,S203)、その起動要求に
対応する処理(プログラム更新、制御データ更新フラグ
OFFおよび制御データ更新、保存ログまたは採取ログ
の書き込み、ログフラッシュなどを行う(ステップS2
04〜S211)。
【0053】以上のように、この実施例においては、フ
ラッシュEEPROM145を4つのブロックに分け、
装置上でフラッシュEEPROM145の更新を可能に
し、また外部から更新データを読み込み機能を有する事
で、従来ROM交換等で対応していた、機能向上や、バ
グの修正を装置自身で実現できる。また、制御情報を2
重化してフラッシュEEPROM145内に置く事で、
制御データ更新中に障害が発生しても片方の制御情報が
失われないので、信頼性の向上を実現できる。又、フラ
ッシュメモリの制御情報ブロックの未使用エリアをログ
データエリアとして使用しており、不安定動作の解析、
特に電源切断時の誤動作解析に有効に利用する事ができ
る。さらに、ログデータの書き込みにおいては2つのロ
グエリアをリング状の連続したエリアとして管理し、追
記方式で書き込みを行うので、採取したログを空きエン
トリに即時に書き込む事ができる。
ラッシュEEPROM145を4つのブロックに分け、
装置上でフラッシュEEPROM145の更新を可能に
し、また外部から更新データを読み込み機能を有する事
で、従来ROM交換等で対応していた、機能向上や、バ
グの修正を装置自身で実現できる。また、制御情報を2
重化してフラッシュEEPROM145内に置く事で、
制御データ更新中に障害が発生しても片方の制御情報が
失われないので、信頼性の向上を実現できる。又、フラ
ッシュメモリの制御情報ブロックの未使用エリアをログ
データエリアとして使用しており、不安定動作の解析、
特に電源切断時の誤動作解析に有効に利用する事ができ
る。さらに、ログデータの書き込みにおいては2つのロ
グエリアをリング状の連続したエリアとして管理し、追
記方式で書き込みを行うので、採取したログを空きエン
トリに即時に書き込む事ができる。
【0054】
【発明の効果】以上説明したように、この発明によれ
ば、フラッシュEEPROMの2つの消去ブロックに制
御情報が2重化されて格納されているため、一方の消去
ブロックの更新中に電源遮断や他の何らかのエラーなど
が発生しても、他方の消去ブロックの制御情報は正常に
保持される。また、有効ブロックの制御情報が読み出さ
れるため、正常な制御情報を利用する事ができる。した
がって、制御情報の破壊を防止でき、従来のROMおよ
びEEPROM機能をフラッシュEEPROMのみによ
って実現することができる。
ば、フラッシュEEPROMの2つの消去ブロックに制
御情報が2重化されて格納されているため、一方の消去
ブロックの更新中に電源遮断や他の何らかのエラーなど
が発生しても、他方の消去ブロックの制御情報は正常に
保持される。また、有効ブロックの制御情報が読み出さ
れるため、正常な制御情報を利用する事ができる。した
がって、制御情報の破壊を防止でき、従来のROMおよ
びEEPROM機能をフラッシュEEPROMのみによ
って実現することができる。
【図1】この発明の一実施例に係わるコンピュータシス
テムの全体の構成を示すブロック図。
テムの全体の構成を示すブロック図。
【図2】同実施例のコンピュータシステムに設けられた
フラッシュメモリのブロック利用形態を説明するための
図。
フラッシュメモリのブロック利用形態を説明するための
図。
【図3】同実施例のコンピュータシステムに設けられた
フラッシュメモリに2重化されて書き込まれる制御情報
のデータ構造を示す図。
フラッシュメモリに2重化されて書き込まれる制御情報
のデータ構造を示す図。
【図4】同実施例のフラッシュメモリに格納された書き
替えプログラムの動作を示すフローチャート。
替えプログラムの動作を示すフローチャート。
【図5】同実施例のフラッシュメモリに2重化されて格
納されている制御情報の更新動作を示すフローチャー
ト。
納されている制御情報の更新動作を示すフローチャー
ト。
【図6】同実施例の2重化された制御情報の内、どちら
かを有効情報として利用するかを判定するための動作を
示すフローチャート。
かを有効情報として利用するかを判定するための動作を
示すフローチャート。
【図7】同実施例のフラッシュメモリのログ書き込みポ
インタを見つける動作を示すフローチャート。
インタを見つける動作を示すフローチャート。
【図8】同実施例のフラッシュメモリにログエリアを確
保するために行われるログフラッシュ動作を示すフロー
チャート。
保するために行われるログフラッシュ動作を示すフロー
チャート。
【図9】同実施例のフラッシュメモリにログデータを書
き込む動作を示すフローチャート。
き込む動作を示すフローチャート。
【図10】同実施例のフラッシュメモリの各種アクセス
要求に対する動作を説明するフローチャート。
要求に対する動作を説明するフローチャート。
【図11】同実施例のフラッシュメモリに対する各種ア
クセス要求に対して実行されるタスクの動作を説明する
フローチャート。
クセス要求に対して実行されるタスクの動作を説明する
フローチャート。
11…CPU、12…メインメモリ、13…システムR
OM、14…I/Oコントローラ、141…ホストイン
タフェース、142…I/Oインタフェース、143…
マイクロプロセッサ、144…RAM、145…フラッ
シュEEPROM。
OM、14…I/Oコントローラ、141…ホストイン
タフェース、142…I/Oインタフェース、143…
マイクロプロセッサ、144…RAM、145…フラッ
シュEEPROM。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/16 340 G06F 13/12 340 G06F 15/78 510
Claims (2)
- 【請求項1】 ブロック単位でデータの消去可能なフラ
ッシュEEPROMを有し、そのフラッシュEEPRO
Mのプログラムを実行するデータ処理装置において、前記フラッシュEEPROMに設けられた、少なくと
も、前記データ処理装置が実行するプログラムが記憶さ
れるブロックと、前記プログラムを書き換えるための書
替えプログラムが記憶されるブロックと、前記データ処
理装置の制御情報がそれぞれ記憶される第1および第2
の制御情報ブロックと、 前記データ処理装置内に設けられ、少なくとも第1およ
び第2のバッファを有するRAMと、 前記制御情報の更新時に、外部から転送された新たな制
御情報を前記RAMの第1のバッファに格納する手段
と、 前記データ処理装置の動作により、前記第1のバッファ
に格納された制御情報に付加すべき書き換え回数をカウ
ントアップして、その書き替え回数情報と前記新たな制
御情報を前記第1のバッファから前記第2のバッファに
コピーし、次に前記制御情報のチェックサムを生成し、
その生成されたチェックサム、前記書き替え回数情報、
および前記制御情報からなる制御情報ブロックを、ブロ
ック消去した前記第1の制御情報ブロックに書き込み、
その後、当該制御情報ブロックをブロック消去した前記
第2の制御情報ブロックに書き込む手段 とを具備するこ
とを特徴とするデータ処理装置。 - 【請求項2】 ブロック単位でデータの消去可能なフラ
ッシュEEPROMを有し、そのフラッシュEEPRO
Mのプログラムを実行するデータ処理装置において、前記フラッシュEEPROMに設けられ、少なくとも、
前記データ処理装置が実行するプログラムが記憶される
ブロックと、前記プログラムを書き換えるための書替え
プログラムが記憶されるブロックと、前記データ処理装
置の制御情報がそれぞれ記憶され、且つ前記プログラム
実行時のログ情報がシーケンシャルに書き込まれるエリ
アを各々が有する第1および第2の制御情報・ログブロ
ックと、 前記データ処理装置内に設けられ、少なくとも第1およ
び第2のバッファを有 するRAMと、 前記制御情報の更新時に、外部から転送された新たな制
御情報を前記RAMの第1のバッファに格納する手段
と、 前記データ処理装置の動作により、前記第1のバッファ
に格納された制御情報に付加すべき書き換え回数をカウ
ントアップして、その書き替え回数情報と前記新たな制
御情報を前記第1のバッファから前記第2のバッファに
コピーし、次に前記制御情報のチェックサムを生成する
手段と、 前記第1の制御情報・ログブロックの前記ログ情報を前
記第2のバッファに読み出して、前記制御情報に前記ロ
グ情報を付加し、前記第1の制御情報・ログブロックを
ブロック消去する手段と、 前記ブロック消去した前記第1の制御情報・ログブロッ
クに前記制御情報と前記ログ情報と前記チェックサム、
前記書き替え回数とでなる制御情報ブロックを書き込む
手段と、 前記第2の制御情報・ログブロックの前記ログ情報を前
記第2のバッファに読み出して、前記制御情報に前記ロ
グ情報を付加し、前記第2の制御情報・ログブロックを
ブロック消去する手段と、 前記ブロック消去した前記第2の制御情報・ログブロッ
クに前記制御情報と前記ログ情報と前記チェックサム、
前記書き替え回数とでなる制御情報ブロックを書き込む
手段とを 具備することを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16816594A JP3268130B2 (ja) | 1994-07-20 | 1994-07-20 | フラッシュeepromを用いたデータ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16816594A JP3268130B2 (ja) | 1994-07-20 | 1994-07-20 | フラッシュeepromを用いたデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0830515A JPH0830515A (ja) | 1996-02-02 |
JP3268130B2 true JP3268130B2 (ja) | 2002-03-25 |
Family
ID=15863017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16816594A Expired - Fee Related JP3268130B2 (ja) | 1994-07-20 | 1994-07-20 | フラッシュeepromを用いたデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3268130B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010064337A1 (ja) * | 2008-12-04 | 2010-06-10 | パナソニック株式会社 | マイクロコンピュータ |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10289162A (ja) * | 1997-04-11 | 1998-10-27 | Aisin Aw Co Ltd | データ処理方法 |
JPH10307759A (ja) * | 1997-05-01 | 1998-11-17 | Daikin Ind Ltd | 運転制御装置 |
JPH1131107A (ja) * | 1997-07-10 | 1999-02-02 | Minolta Co Ltd | メモリのバックアップ方法 |
JP3616948B2 (ja) * | 1998-08-18 | 2005-02-02 | シャープ株式会社 | 一括消去型メモリを用いた情報記録再生装置 |
JP3594495B2 (ja) * | 1998-08-28 | 2004-12-02 | 三洋電機株式会社 | 制御装置 |
JP3750477B2 (ja) * | 2000-03-23 | 2006-03-01 | トヨタ自動車株式会社 | データ書込装置及びデータ破壊検出装置 |
JP4596602B2 (ja) * | 2000-05-09 | 2010-12-08 | 大日本印刷株式会社 | 不揮発性メモリのデータ管理方法 |
JP3916862B2 (ja) | 2000-10-03 | 2007-05-23 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
JP2002374273A (ja) * | 2001-06-14 | 2002-12-26 | Nec Corp | Atm−ponシステムの終端装置及び終端装置における状態情報のバックアップ方法 |
JP2003044457A (ja) * | 2001-07-27 | 2003-02-14 | Hitachi Ltd | データプロセッサ |
JP4645883B2 (ja) * | 2004-07-14 | 2011-03-09 | ソニー株式会社 | 半導体集積回路、データ記憶方法及びデータ通信装置 |
JP2007034858A (ja) * | 2005-07-29 | 2007-02-08 | Kyocera Mita Corp | データバックアップ方法及びメモリ装置 |
JP5060088B2 (ja) * | 2006-09-08 | 2012-10-31 | 株式会社東芝 | フラッシュメモリ制御システムとその制御方法 |
JP4563992B2 (ja) * | 2006-12-26 | 2010-10-20 | 株式会社京都ソフトウェアリサーチ | 多値フラッシュメモリおよび多値フラッシュメモリへのデータ書き込み方法 |
JP5052221B2 (ja) * | 2007-06-22 | 2012-10-17 | 新日本無線株式会社 | 半導体集積回路 |
JP5012548B2 (ja) * | 2008-02-07 | 2012-08-29 | 富士電機株式会社 | プログラマブルコントローラ |
KR101097245B1 (ko) * | 2009-09-28 | 2011-12-21 | 삼성에스디아이 주식회사 | 배터리 팩, 및 데이터 플래시 동작 제어 방법 |
JP5523379B2 (ja) * | 2010-03-18 | 2014-06-18 | 京セラドキュメントソリューションズ株式会社 | 記憶制御装置、画像形成装置および記憶制御方法 |
JP5377393B2 (ja) * | 2010-04-01 | 2013-12-25 | 京セラドキュメントソリューションズ株式会社 | データバックアップ制御方法およびデータバックアップ制御装置 |
JP6060892B2 (ja) * | 2013-12-27 | 2017-01-18 | 住友電装株式会社 | 車載データ記憶装置及びデータ記憶方法 |
JP6898186B2 (ja) * | 2017-09-13 | 2021-07-07 | 日立Astemo株式会社 | 自動車用制御装置及び不揮発性メモリの書き込み方法 |
-
1994
- 1994-07-20 JP JP16816594A patent/JP3268130B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010064337A1 (ja) * | 2008-12-04 | 2010-06-10 | パナソニック株式会社 | マイクロコンピュータ |
Also Published As
Publication number | Publication date |
---|---|
JPH0830515A (ja) | 1996-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3268130B2 (ja) | フラッシュeepromを用いたデータ処理装置 | |
JP4668416B2 (ja) | ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護 | |
US7322029B2 (en) | Method and system for recovering program code in a computer system | |
JP3906825B2 (ja) | 計算機システム、計算機システム起動方法およびプログラム | |
JP4037605B2 (ja) | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 | |
KR100415371B1 (ko) | 컴퓨터 | |
KR100507884B1 (ko) | 플래시 메모리의 메모리 재기록 제어 시스템, 메모리 재기록 제어 방법, 메모리 재기록 제어 방법의 각 공정을 실행시키는 프로그램을 기록한 정보 기록 매체 | |
US20110307878A1 (en) | System for atomically updating a plurality of files | |
US20070186070A1 (en) | Computer operating system with selective restriction of memory write operations | |
JP2001209543A (ja) | フラッシュ・マイコンにおけるプログラム書き換え方法 | |
EP0823086B1 (en) | Methods and apparatus for protecting the integrity of process data stored on a removable storage medium | |
JP3472008B2 (ja) | フラッシュメモリ管理方法 | |
KR100744873B1 (ko) | 컴퓨터 시스템에서의 펌웨어 기록방법 | |
KR920022093A (ko) | 복구가능한 베이식 펌웨어를 가진 컴퓨터시스템 동작방법 | |
JP2003316595A (ja) | インストール方法、ファイル更新方法、プログラム及びコンピュータシステム | |
JP4046877B2 (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
RU2248627C2 (ru) | Способ и устройство для изменения содержимого запоминающих устройств блоков управления | |
US20070277028A1 (en) | Method and system for recovery from reprogramming failures in nonvolatile memory | |
JP2002251310A (ja) | フラッシュメモリのファイルシステム作成方式 | |
JP4375857B2 (ja) | プログラム再書き込み機能付コンピュータ | |
JPH11110300A (ja) | 外部記憶装置、データ処理装置及びデータ処理方法 | |
JP4062429B2 (ja) | メモリ書き換え制御方法及びメモリ書き換え制御方法の各工程を実行させるプログラム | |
JP2004326523A (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
JPH10187454A (ja) | Bios書き換え方式 | |
JP3271935B2 (ja) | 制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080111 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090111 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100111 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |