JP3364356B2 - メモリ書替え装置 - Google Patents
メモリ書替え装置Info
- Publication number
- JP3364356B2 JP3364356B2 JP07282995A JP7282995A JP3364356B2 JP 3364356 B2 JP3364356 B2 JP 3364356B2 JP 07282995 A JP07282995 A JP 07282995A JP 7282995 A JP7282995 A JP 7282995A JP 3364356 B2 JP3364356 B2 JP 3364356B2
- Authority
- JP
- Japan
- Prior art keywords
- rewriting
- bank
- memory
- data
- program
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
【0001】
【産業上の利用分野】本発明は、バンク単位に書替え可
能なフラッシュメモリとして知られた不揮発性メモリの
メモリ書替え装置に関し、特に、書替え処理の途中で電
源遮断等により中断しても、書替え処理を正常に再開可
能としたメモリ書替え装置に関する。
能なフラッシュメモリとして知られた不揮発性メモリの
メモリ書替え装置に関し、特に、書替え処理の途中で電
源遮断等により中断しても、書替え処理を正常に再開可
能としたメモリ書替え装置に関する。
【0002】
【従来の技術】従来、装置の電源を遮断した際に記憶内
容を消失したくないプログラムメモリ等の部分に不揮発
性メモリが使用されている。このような不揮発性メモリ
は、従来はフィールドでの改造の容易性が求められてい
たが、最近は、プログラムにより書替え可能なメモリが
要求されている。プログラムにより書替え可能な不揮発
性メモリとしては、EEPROMが知られている。EE
PROMはバイト単位での書替えが可能である。
容を消失したくないプログラムメモリ等の部分に不揮発
性メモリが使用されている。このような不揮発性メモリ
は、従来はフィールドでの改造の容易性が求められてい
たが、最近は、プログラムにより書替え可能なメモリが
要求されている。プログラムにより書替え可能な不揮発
性メモリとしては、EEPROMが知られている。EE
PROMはバイト単位での書替えが可能である。
【0003】しかし、近年になり、計算機システムの信
頼性を向上するため、プロセッサの主記憶やマルチプロ
セッサの共有メモリ等での不揮発性メモリの使用が要求
され、不揮発性メモリの大容量化と低価格化が望まれて
きている。このような背景により、今後は、フラッシュ
メモリが現状大勢を占めるEEPROMに取って代わっ
てくいくことが予想される。
頼性を向上するため、プロセッサの主記憶やマルチプロ
セッサの共有メモリ等での不揮発性メモリの使用が要求
され、不揮発性メモリの大容量化と低価格化が望まれて
きている。このような背景により、今後は、フラッシュ
メモリが現状大勢を占めるEEPROMに取って代わっ
てくいくことが予想される。
【0004】フラッシュメモリは、通常、複数のバンク
から構成される。各バンクはプログラムの制御により、
一括して消去可能であるが、バイト単位での消去は出来
ない。また、データがフラッシュメモリ内に格納されて
いない状態では、データをバイト単位でCPUのプログ
ラム制御により書込みが可能である。しかし、一旦、デ
ータが書き込まれている状態では、バイト単位での上書
きは出来ない。バイト単位での書替えを行うためには、
以下の手順で行う必要がある。
から構成される。各バンクはプログラムの制御により、
一括して消去可能であるが、バイト単位での消去は出来
ない。また、データがフラッシュメモリ内に格納されて
いない状態では、データをバイト単位でCPUのプログ
ラム制御により書込みが可能である。しかし、一旦、デ
ータが書き込まれている状態では、バイト単位での上書
きは出来ない。バイト単位での書替えを行うためには、
以下の手順で行う必要がある。
【0005】
書替えバンクの全データを作業領域にコピーする。
書替えデータ部分を作業領域のデータコピー上に埋め
込む。 書替えバンクをクリアする。 作業領域のデータコピーを書替えバンク全領域に書き
込む。 更に、〜の処理は、プロセッサによるプログラムの
実行で行うが、実際には、フラッシュメモリのハードウ
ェア信号を規定のシーケンスに従って制御しなければな
らないため、この期間はプロセッサからフラッシュメモ
リにアクセスを行ってはならない。
込む。 書替えバンクをクリアする。 作業領域のデータコピーを書替えバンク全領域に書き
込む。 更に、〜の処理は、プロセッサによるプログラムの
実行で行うが、実際には、フラッシュメモリのハードウ
ェア信号を規定のシーケンスに従って制御しなければな
らないため、この期間はプロセッサからフラッシュメモ
リにアクセスを行ってはならない。
【0006】
【発明が解決しようとする課題】しかしながら、プロセ
ッサの実行するプログラムによるフラッシュメモリの書
替え処理には、必ず書替えバンクの消去という処理が入
るため、書替え処理の途中での電源遮断等の異常で処理
の中断が発生すると、フラッシュメモリに格納されてい
るデータの保証がされない場合がある。
ッサの実行するプログラムによるフラッシュメモリの書
替え処理には、必ず書替えバンクの消去という処理が入
るため、書替え処理の途中での電源遮断等の異常で処理
の中断が発生すると、フラッシュメモリに格納されてい
るデータの保証がされない場合がある。
【0007】特にフラッシュメモリをプロセッサのプロ
グラムメモリに使用している場合には、プロセッサの走
行に必要な各種のプログラムを格納しており、書替え処
理が途中中断によって装置の起動に必要な初期起動プロ
グラム等も消失する可能性があり、このような場合に
は、電源が回復しても再起動できなくなってしまう恐れ
もあった。
グラムメモリに使用している場合には、プロセッサの走
行に必要な各種のプログラムを格納しており、書替え処
理が途中中断によって装置の起動に必要な初期起動プロ
グラム等も消失する可能性があり、このような場合に
は、電源が回復しても再起動できなくなってしまう恐れ
もあった。
【0008】本発明は、このような問題点に鑑みてなさ
れたもので、フラッシュメモリの書替え処理の途中で電
源断等の異常が発生しても、データが消失するのを防止
して書替え処理を正常に再開できるようにした信頼性の
高いメモリ書替え装置を提供することを目的とする。
れたもので、フラッシュメモリの書替え処理の途中で電
源断等の異常が発生しても、データが消失するのを防止
して書替え処理を正常に再開できるようにした信頼性の
高いメモリ書替え装置を提供することを目的とする。
【0009】
【課題を解決するための手段】図1は本発明の原理説明
図である。本発明のメモリ書替え装置は、複数バンク1
6−0〜16−nから構成され、バンク単位に書替え可
能なメモリ16を対象とする。このようなメモリはフラ
ッシュメモリ16として知られている。フラッシュメモ
リ16の複数バンクの内の少なくとも1つにバックアッ
プバンク16−nを割り当てる。プログラム機能により
実現される書替え処理部38は、特定の書替えバンク1
6−kを指定した書替え指示を受けた際に、書替えバン
ク16−kのデータをバックアップバンク16−nへコ
ピーした後に、RAM等のワークメモリ18上に準備し
た新データを書き込み、この書込み終了後にバックアッ
プバンク16−nをクリアする。
図である。本発明のメモリ書替え装置は、複数バンク1
6−0〜16−nから構成され、バンク単位に書替え可
能なメモリ16を対象とする。このようなメモリはフラ
ッシュメモリ16として知られている。フラッシュメモ
リ16の複数バンクの内の少なくとも1つにバックアッ
プバンク16−nを割り当てる。プログラム機能により
実現される書替え処理部38は、特定の書替えバンク1
6−kを指定した書替え指示を受けた際に、書替えバン
ク16−kのデータをバックアップバンク16−nへコ
ピーした後に、RAM等のワークメモリ18上に準備し
た新データを書き込み、この書込み終了後にバックアッ
プバンク16−nをクリアする。
【0010】書替え処理部38及びフラグ設定部48a
は、書替え指示をプロセッサ12で認識した際に、フラ
ッシュメモリ16の特定バンクに格納された書替え起動
プログラムの実行で、同じバンクの書替えプログラムを
ワークメモリ18上にロードした状態でプロセッサ12
により実行することで実現される。 書替え処理部38
は、ワークメモリ上に準備された書替え用の新データに
付加された書替え形式をチェックする。この書替え形式
が書替えバンクの全データの書替えを指示している場合
は、新データをそのまま使用してフラッシュメモリのバ
ンク単位の書替え処理を開始する。 また書替え形式が書
替えバンクの一部のデータの書替えを指示している場合
は、書替えバンクの全データをワークメモリ18上にコ
ピーして一部を新データで書き替えた後に、書替え後の
データを使用してフラッシュメモリの書替え処理を開始
する。 更に、書替え形式が書替えバンクの一部のデータ
の書替えを指示すると共に旧データの有りを指示してい
る場合、書替えバンクの全データをワークメモリ18上
にコピーして旧データをチェックする。旧データが正常
な場合には一部を新データで書き替えたデータを使用し
てフラッシュメモリの書替え処理を開始する。旧データ
が異常な場合はフラッシュメモリの故障と判断して書替
え処理を異常終了させる。
は、書替え指示をプロセッサ12で認識した際に、フラ
ッシュメモリ16の特定バンクに格納された書替え起動
プログラムの実行で、同じバンクの書替えプログラムを
ワークメモリ18上にロードした状態でプロセッサ12
により実行することで実現される。 書替え処理部38
は、ワークメモリ上に準備された書替え用の新データに
付加された書替え形式をチェックする。この書替え形式
が書替えバンクの全データの書替えを指示している場合
は、新データをそのまま使用してフラッシュメモリのバ
ンク単位の書替え処理を開始する。 また書替え形式が書
替えバンクの一部のデータの書替えを指示している場合
は、書替えバンクの全データをワークメモリ18上にコ
ピーして一部を新データで書き替えた後に、書替え後の
データを使用してフラッシュメモリの書替え処理を開始
する。 更に、書替え形式が書替えバンクの一部のデータ
の書替えを指示すると共に旧データの有りを指示してい
る場合、書替えバンクの全データをワークメモリ18上
にコピーして旧データをチェックする。旧データが正常
な場合には一部を新データで書き替えたデータを使用し
てフラッシュメモリの書替え処理を開始する。旧データ
が異常な場合はフラッシュメモリの故障と判断して書替
え処理を異常終了させる。
【0011】フラグ設定部48aは、フラッシュメモリ
16の複数のバンク内にデータが有効か無効かを示すフ
ラグ情報を設定する。即ち、バックアップバンク16−
nについては、初期状態又はコピーの消去状態で無効フ
ラグをセットし、データをコピーしたバックアップ状態
で有効クラグをセットする。書替えバンク16−kにつ
いては、初期状態又は消去状態で無効フラグをセット
し、データ書込み状態で有効クラグをセットする。
16の複数のバンク内にデータが有効か無効かを示すフ
ラグ情報を設定する。即ち、バックアップバンク16−
nについては、初期状態又はコピーの消去状態で無効フ
ラグをセットし、データをコピーしたバックアップ状態
で有効クラグをセットする。書替えバンク16−kにつ
いては、初期状態又は消去状態で無効フラグをセット
し、データ書込み状態で有効クラグをセットする。
【0012】書替え処理部38は、書替え開始時に、各
バンク16−0〜16−n内のフラグ情報をチェック
し、バックアップバンク16−nを除く全てのバンク1
6〜16−(n−1)が有効であった場合のみ書替え処
理を開始し、いずれかのバンクが無効であった場合はメ
モリ異常として異常終了する。ここで書替え処理部38
は、書込み処理を中断した後の再開処理において、書替
え開始前に全てのバンクのフラグ情報をチェックし、書
替えバンク16−kが有効でバックアップバンク16−
nも有効な場合、次の処理を行う。
バンク16−0〜16−n内のフラグ情報をチェック
し、バックアップバンク16−nを除く全てのバンク1
6〜16−(n−1)が有効であった場合のみ書替え処
理を開始し、いずれかのバンクが無効であった場合はメ
モリ異常として異常終了する。ここで書替え処理部38
は、書込み処理を中断した後の再開処理において、書替
え開始前に全てのバンクのフラグ情報をチェックし、書
替えバンク16−kが有効でバックアップバンク16−
nも有効な場合、次の処理を行う。
【0013】書替えバンク16−kのデータをバック
アップバンク16−nへコピー; 書替えバンク16−kに新データを書き込む; バックアップバンク16−nをクリア;また書替えバ
ンク16−kが無効でバックアップバンク16−nが有
効な場合には、書替えバンク16−kのデータのバック
アップバンク16−nへのコピーは不要であることか
ら、 書替えバンク16−kに新データを書き込む; バックアップバンク16−nをクリア;の処理を行
う。
アップバンク16−nへコピー; 書替えバンク16−kに新データを書き込む; バックアップバンク16−nをクリア;また書替えバ
ンク16−kが無効でバックアップバンク16−nが有
効な場合には、書替えバンク16−kのデータのバック
アップバンク16−nへのコピーは不要であることか
ら、 書替えバンク16−kに新データを書き込む; バックアップバンク16−nをクリア;の処理を行
う。
【0014】更に、書替えバンク16−kが有効でバッ
クアップバンク16−nが無効な場合には、書替えバン
ク16−kのデータをバックアップバンク16−nへコ
ピー及び書替えバンク16−kに新データの書込みが正
常に済んでいるため、バックアップバンク16−nをク
リアするだけでよい。書替え処理部38は、各バンク1
6−0〜16−nのデータ書込み、コピー、又はクリア
後に、バンク内データの検証を行ってバンク内容の状態
変化毎に正当性をチェックし、正常と確認した後に次の
処理に進むようにする。これにより書替え途中でのフラ
ッシュメモリのハードウェア障害に迅速に対応する。
クアップバンク16−nが無効な場合には、書替えバン
ク16−kのデータをバックアップバンク16−nへコ
ピー及び書替えバンク16−kに新データの書込みが正
常に済んでいるため、バックアップバンク16−nをク
リアするだけでよい。書替え処理部38は、各バンク1
6−0〜16−nのデータ書込み、コピー、又はクリア
後に、バンク内データの検証を行ってバンク内容の状態
変化毎に正当性をチェックし、正常と確認した後に次の
処理に進むようにする。これにより書替え途中でのフラ
ッシュメモリのハードウェア障害に迅速に対応する。
【0015】書替え処理部38は、バックアップバンク
16−n内に書替えバンク16−kのデータをコピーし
た際に、バックアップ元を示す情報を格納する。この場
合、書替え起動プログラム及び書替えプログラムは、同
じバンクに収まるように格納することが望ましい。
16−n内に書替えバンク16−kのデータをコピーし
た際に、バックアップ元を示す情報を格納する。この場
合、書替え起動プログラム及び書替えプログラムは、同
じバンクに収まるように格納することが望ましい。
【0016】またフラッシュメモリ16のある特定のバ
ンクを書替え禁止バンクとし、この書替え禁止バンクに
装置の電源投入の初期処理を起動する初期起動プログラ
ムを格納し、装置電源投入時にプロセッサ12はフラッ
シュメモリ16上の初期起動プログラムにより初期処理
を開始する。またプロセッサ12は、電源投入に伴う初
期処理の際に、フラッシュメモリ16の全バンク16−
0〜16−nのフラグ情報をチェックし、バックアップ
バンク16−nが有効となっていた場合、バックアップ
バンク16−n内のデータを書替えが中断しているバッ
クアップ元のバンクに書き戻した後、次の処理に進む。
ンクを書替え禁止バンクとし、この書替え禁止バンクに
装置の電源投入の初期処理を起動する初期起動プログラ
ムを格納し、装置電源投入時にプロセッサ12はフラッ
シュメモリ16上の初期起動プログラムにより初期処理
を開始する。またプロセッサ12は、電源投入に伴う初
期処理の際に、フラッシュメモリ16の全バンク16−
0〜16−nのフラグ情報をチェックし、バックアップ
バンク16−nが有効となっていた場合、バックアップ
バンク16−n内のデータを書替えが中断しているバッ
クアップ元のバンクに書き戻した後、次の処理に進む。
【0017】一方、初期起動プログラムの格納バンクを
書替え禁止バンクとせず、アドレス変換機構で対応して
もよい。即ち、フラッシュメモリ16は、ある特定のバ
ンク16−iに初期起動プログラムを格納しており、プ
ロセッサ12は、電源投入に伴う初期処理の際にフラッ
シュメモリ16の全バンク16−1〜16−nのフラグ
情報をチェックし、初期起動プログラムの格納バンク1
6−iが無効でバックアップバンク16−nが有効とな
っていた場合、プロセッサ12による初期起動プログラ
ム格納バンク16−iへのアクセスアドレスをバックア
ップバンク16−nにアドレス変換し、バックアップバ
ンク16−n上の初期起動プログラムをワークメモリ1
8上にロードした後に、初期処理を開始する。
書替え禁止バンクとせず、アドレス変換機構で対応して
もよい。即ち、フラッシュメモリ16は、ある特定のバ
ンク16−iに初期起動プログラムを格納しており、プ
ロセッサ12は、電源投入に伴う初期処理の際にフラッ
シュメモリ16の全バンク16−1〜16−nのフラグ
情報をチェックし、初期起動プログラムの格納バンク1
6−iが無効でバックアップバンク16−nが有効とな
っていた場合、プロセッサ12による初期起動プログラ
ム格納バンク16−iへのアクセスアドレスをバックア
ップバンク16−nにアドレス変換し、バックアップバ
ンク16−n上の初期起動プログラムをワークメモリ1
8上にロードした後に、初期処理を開始する。
【0018】書替え処理部38は、書替え中はフラッシ
ュメモリ16に対する書替え以外のアクセスを禁止す
る。この場合、書替え中に他のアクセスにより起動され
るバンクのプログラムをワークメモリ18にコピーし
て、書替え中のフラッシュメモリ16に対するアクセス
を禁止しておくことで、ワークメモリ18上で必要なプ
ログラムを起動できる。
ュメモリ16に対する書替え以外のアクセスを禁止す
る。この場合、書替え中に他のアクセスにより起動され
るバンクのプログラムをワークメモリ18にコピーし
て、書替え中のフラッシュメモリ16に対するアクセス
を禁止しておくことで、ワークメモリ18上で必要なプ
ログラムを起動できる。
【0019】また図1(B)ように、複数のプロセッサ
12−0〜12−mがフラッシュメモリ12及びワーク
メモリ18を共有して動作するマルチプロセッサ構成の
場合、書替え処理を実行する特定のプロセッサ12−0
をメインプロセッサとする。メインプロセッサ12−0
は書替え指示を受けた際に、書替制御部38を実現する
フラッシュメモリ16上の書替えプログラムをワークメ
モリ18上へコピーし、コピー後に他のプロセッサ12
−1〜12−mに、フラッシュメモリ16へアクセスす
る際にワークメモリ18上の書替えプログラムへジャン
プするように指示する。
12−0〜12−mがフラッシュメモリ12及びワーク
メモリ18を共有して動作するマルチプロセッサ構成の
場合、書替え処理を実行する特定のプロセッサ12−0
をメインプロセッサとする。メインプロセッサ12−0
は書替え指示を受けた際に、書替制御部38を実現する
フラッシュメモリ16上の書替えプログラムをワークメ
モリ18上へコピーし、コピー後に他のプロセッサ12
−1〜12−mに、フラッシュメモリ16へアクセスす
る際にワークメモリ18上の書替えプログラムへジャン
プするように指示する。
【0020】この指示を受けた他のプロセッサ12−1
〜12−mはワークメモリ18上の書替えプログラムへ
ジャンプした後、メインプロセッサ12−0にジャンプ
を通知して無限ループに移行する。メインプロセッサ1
2−0は、他の全てのプロセッサ12−1〜12−mが
ワークメモリ上の書替えプログラムへジャンプしたこと
を確認した後に、自らも書替えプログラムにジャンプし
てフラッシュメモリ16の書替え処理を開始する。
〜12−mはワークメモリ18上の書替えプログラムへ
ジャンプした後、メインプロセッサ12−0にジャンプ
を通知して無限ループに移行する。メインプロセッサ1
2−0は、他の全てのプロセッサ12−1〜12−mが
ワークメモリ上の書替えプログラムへジャンプしたこと
を確認した後に、自らも書替えプログラムにジャンプし
てフラッシュメモリ16の書替え処理を開始する。
【0021】これによってメイプロセッサ12−0によ
るフラッシュメモリ16の書替え処理中の他のプロセッ
サ12−1〜12−mからのアクセスを確実に禁止し、
書替え処理の中断を防止する。またマルチプロセッサ構
成で他のプロセッサ12−1〜12−mからのアクセス
を禁止する他の形態として、メインプロセッサ12−0
は書替え指示を受けた際に、書替え処理部38を実現す
るフラッシュメモリ16上の書替えプログラムをワーク
メモリ18上へコピーした後に他のプロセッサ12−1
〜12−mを全てホルトさせ、このホルト後にワークメ
モリ18の書替えプロクラムにジャンプして書替え処理
を開始するようにしてもよい。
るフラッシュメモリ16の書替え処理中の他のプロセッ
サ12−1〜12−mからのアクセスを確実に禁止し、
書替え処理の中断を防止する。またマルチプロセッサ構
成で他のプロセッサ12−1〜12−mからのアクセス
を禁止する他の形態として、メインプロセッサ12−0
は書替え指示を受けた際に、書替え処理部38を実現す
るフラッシュメモリ16上の書替えプログラムをワーク
メモリ18上へコピーした後に他のプロセッサ12−1
〜12−mを全てホルトさせ、このホルト後にワークメ
モリ18の書替えプロクラムにジャンプして書替え処理
を開始するようにしてもよい。
【0022】
【0023】
【0024】フラッシュメモリ16は、各バンクのデー
タのパリティを同じバンク内に保持してバンク内のみを
対象としてデータ書替えを可能する。
タのパリティを同じバンク内に保持してバンク内のみを
対象としてデータ書替えを可能する。
【0025】
【作用】このような本発明のフラッシュメモリの書替え
装置によれば、書替え処理の途中で処理の中断が発生し
た場合、処理を再開した際に各バンクのフラグ情報をチ
ェックすることで、書替えバンク及びバックアップバン
クの状態を認識し、書替え処理を最初から又は途中から
再開することで、正常に終了させることができる。
装置によれば、書替え処理の途中で処理の中断が発生し
た場合、処理を再開した際に各バンクのフラグ情報をチ
ェックすることで、書替えバンク及びバックアップバン
クの状態を認識し、書替え処理を最初から又は途中から
再開することで、正常に終了させることができる。
【0026】このため書替え処理が途中で中断しても書
替えバンクのデータが消失してしまうことが可能な限り
防止でき、フラッシュメモリの書替えを行ってもプログ
ラム等の格納データを保証することができる。またシン
グルプロセッサによる書替えのみならず、マルチプロセ
ッサ構成にあっては、書替え処理を特定のプロッサに割
り当てると共に、他のプロセッサの書替え途中でのアク
セスを禁止することで、共有メモリとして使用されるフ
ラッシュメモリの書替えを可能とし、データを保証でき
る。
替えバンクのデータが消失してしまうことが可能な限り
防止でき、フラッシュメモリの書替えを行ってもプログ
ラム等の格納データを保証することができる。またシン
グルプロセッサによる書替えのみならず、マルチプロセ
ッサ構成にあっては、書替え処理を特定のプロッサに割
り当てると共に、他のプロセッサの書替え途中でのアク
セスを禁止することで、共有メモリとして使用されるフ
ラッシュメモリの書替えを可能とし、データを保証でき
る。
【0027】
<目 次>
1.シングルCPU構成の書替え処理
2.修正データの書替え形式
3.マルチCPU構成の書替え処理
4.書替えフラグと再開処理
5.再開時の初期起動プログラム
6.書替えプログラムのバンク格納
1.シングルCPU構成の書替え処理
図2は本発明のフラッシュメモリ書替え装置が適用され
る動作環境のブロック図であり、1台のCPUを備えた
シングルCPU構成を例にとっている。
る動作環境のブロック図であり、1台のCPUを備えた
シングルCPU構成を例にとっている。
【0028】図2において、情報処理装置10にはプロ
セッサとして動作する1台のCPU12が設けられる。
CPU12に対しては、メモリマッピング機構14を介
して、プログラムメモリとして動作するフラッシュメモ
リ16と、ワークメモリとして動作するRAM18が接
続される。またCPU12に対しては通信制御ユニット
20が設けられ、通信制御ユニット20はRS232C
などの外部インタフェース22を介してオペレータ操作
端末24を接続している。
セッサとして動作する1台のCPU12が設けられる。
CPU12に対しては、メモリマッピング機構14を介
して、プログラムメモリとして動作するフラッシュメモ
リ16と、ワークメモリとして動作するRAM18が接
続される。またCPU12に対しては通信制御ユニット
20が設けられ、通信制御ユニット20はRS232C
などの外部インタフェース22を介してオペレータ操作
端末24を接続している。
【0029】フラッシュメモリ16は、この実施例にあ
っては、バンク番号#0〜#7の8つのバンク16−0
〜16−7に分けられている。フラッシュメモリ16は
公知のメモリであり、CPU12によるプログラムの実
行で書き替えることができる。このフラッシュメモリ1
6の書替えは、メモリ内にデータが格納されていない状
態では、バイト単位でのデータの書込みが可能である。
しかし、メモリ内に一旦データが書き込まれている状態
ではバイト単位での上書きはできず、バンク単位での書
替えを必要とする。
っては、バンク番号#0〜#7の8つのバンク16−0
〜16−7に分けられている。フラッシュメモリ16は
公知のメモリであり、CPU12によるプログラムの実
行で書き替えることができる。このフラッシュメモリ1
6の書替えは、メモリ内にデータが格納されていない状
態では、バイト単位でのデータの書込みが可能である。
しかし、メモリ内に一旦データが書き込まれている状態
ではバイト単位での上書きはできず、バンク単位での書
替えを必要とする。
【0030】図3は、図2の情報処理装置10における
フラッシュメモリ16の書替え機能を示す。この実施例
にあっては、フラッシュメモリ16のバンク番号#4の
バンク16−4とバンク番号#5のバンク16−5に、
書替え処理を行うための関連プログラムを格納してい
る。具体的には、コマンド処理モジュール26と書替え
プログラム28で構成される。コマンド処理モジュール
26は、バンク番号#4とバンク番号#5に格納され
る。コマンド処理モジュール26には、オペレータ操作
端末ハンドラ30、コマンド解析部32、書替え起動プ
ログラム34、更に書替え以外の他のコマンドに対応し
たコマンド1〜mの処理部36−1〜36−mを有す
る。
フラッシュメモリ16の書替え機能を示す。この実施例
にあっては、フラッシュメモリ16のバンク番号#4の
バンク16−4とバンク番号#5のバンク16−5に、
書替え処理を行うための関連プログラムを格納してい
る。具体的には、コマンド処理モジュール26と書替え
プログラム28で構成される。コマンド処理モジュール
26は、バンク番号#4とバンク番号#5に格納され
る。コマンド処理モジュール26には、オペレータ操作
端末ハンドラ30、コマンド解析部32、書替え起動プ
ログラム34、更に書替え以外の他のコマンドに対応し
たコマンド1〜mの処理部36−1〜36−mを有す
る。
【0031】この内、オペレータ操作端末ハンドラ3
0、コマンド解析部32、書替え起動プログラム34、
および他のコマンドのコマンド1の処理部36−1は、
バンク番号#4に格納されている。このような構造をも
つコマンド処理モジュール26は、図2のCPU12が
フラッシュメモリ16のバンク番号#4およびバンク番
号#5をアクセスして実行する。即ち、フラッシュメモ
リ16上でCPU12を走行させる。
0、コマンド解析部32、書替え起動プログラム34、
および他のコマンドのコマンド1の処理部36−1は、
バンク番号#4に格納されている。このような構造をも
つコマンド処理モジュール26は、図2のCPU12が
フラッシュメモリ16のバンク番号#4およびバンク番
号#5をアクセスして実行する。即ち、フラッシュメモ
リ16上でCPU12を走行させる。
【0032】書替えプログラム28は、コマンド処理モ
ジュール26の書替え起動プログラム34により起動さ
れるプログラムであり、バンク番号#4に格納されてい
るが、書替え起動プログラム34により図2のRAM1
8にロードされた後、CPU12のアクセスを受けて実
行される。即ち、書替えプログラム28はRAM18上
で走行する。この書替えプログラム28は、ブロックで
示す書替え処理部38としての機能を実現する。
ジュール26の書替え起動プログラム34により起動さ
れるプログラムであり、バンク番号#4に格納されてい
るが、書替え起動プログラム34により図2のRAM1
8にロードされた後、CPU12のアクセスを受けて実
行される。即ち、書替えプログラム28はRAM18上
で走行する。この書替えプログラム28は、ブロックで
示す書替え処理部38としての機能を実現する。
【0033】この書替え処理部38による書替え機能
は、フラッシュメモリ16の構造に従ってシーケンス番
号Seq.1〜Seq.10の手順を必ずとらなければ
ならない。このシーケンスの途中に他のアクセスが入る
と、書替え処理は中断されることになる。書替え処理部
38によるシーケンスは後の説明で明らかにされる。図
4は図2の情報処理装置10におけるフラッシュメモリ
16の書替え処理の手順を示している。
は、フラッシュメモリ16の構造に従ってシーケンス番
号Seq.1〜Seq.10の手順を必ずとらなければ
ならない。このシーケンスの途中に他のアクセスが入る
と、書替え処理は中断されることになる。書替え処理部
38によるシーケンスは後の説明で明らかにされる。図
4は図2の情報処理装置10におけるフラッシュメモリ
16の書替え処理の手順を示している。
【0034】図4において、オペレータはオペレータ操
作端末24の操作によりRAM18上の作業領域に書替
えデータ42を準備した後、外部インタフェース22を
介してフラッシュメモリ16のバンク16−kの書替え
指示100を発行する。このときCPU12はRAM1
8のプログラム領域40上のプログラムで走行してお
り、オペレータ指示100を認識すると、フラッシュメ
モリ16のバンク16−4に格納されている書替え起動
プログラム34に制御を移す。
作端末24の操作によりRAM18上の作業領域に書替
えデータ42を準備した後、外部インタフェース22を
介してフラッシュメモリ16のバンク16−kの書替え
指示100を発行する。このときCPU12はRAM1
8のプログラム領域40上のプログラムで走行してお
り、オペレータ指示100を認識すると、フラッシュメ
モリ16のバンク16−4に格納されている書替え起動
プログラム34に制御を移す。
【0035】プログラム領域40からの制御を移された
書替え起動プログラム34は、同じバンク16−4に格
納されている書替えプログラム28をRAM18にロー
ド102を行い、ロード後の書替えプログラム28−1
に起動を掛ける。RAM18上で起動された書替えプロ
グラム28−1は、フラッシュメモリ16について予め
定められたバックアップバンク16−nの消去処理10
4を行う。
書替え起動プログラム34は、同じバンク16−4に格
納されている書替えプログラム28をRAM18にロー
ド102を行い、ロード後の書替えプログラム28−1
に起動を掛ける。RAM18上で起動された書替えプロ
グラム28−1は、フラッシュメモリ16について予め
定められたバックアップバンク16−nの消去処理10
4を行う。
【0036】次に、オペレータ指示100で指定された
書替えバンク16−kに対しコピー指示106を行い、
書替えバンク16−1の内容を、消去が済んだバックア
ップバンク16−nに対しコピー108を行う。更に、
次に、書替えプログラム28−1は、コピーが済んだ書
替えバンク16−kに消去指示110を行って、書替え
バンク16−kの内容を消去する。
書替えバンク16−kに対しコピー指示106を行い、
書替えバンク16−1の内容を、消去が済んだバックア
ップバンク16−nに対しコピー108を行う。更に、
次に、書替えプログラム28−1は、コピーが済んだ書
替えバンク16−kに消去指示110を行って、書替え
バンク16−kの内容を消去する。
【0037】続いてRAM18上に準備してある書替え
データ42の書替えバンク16−kへのコピー指示11
2を行い、書替えデータ42を書替えバンク16−kに
コピーする。最後に、書替えプログラム28−1は、バ
ックアップバンク16−nに再び消去指示114を行っ
て、バックアップバンク16−nの内容を消去し、一連
の書替え処理を終了する。
データ42の書替えバンク16−kへのコピー指示11
2を行い、書替えデータ42を書替えバンク16−kに
コピーする。最後に、書替えプログラム28−1は、バ
ックアップバンク16−nに再び消去指示114を行っ
て、バックアップバンク16−nの内容を消去し、一連
の書替え処理を終了する。
【0038】図5は、図4の書替え処理をフローチャー
トとして示している。まずステップS1で、書替えデー
タ42をRAM18上に準備し、この状態で書替え指示
を行うことから、オペレータの書替え指示をステップS
2で判別すると、ステップS3で、まずフラッシュメモ
リ16の書替え起動プログラム34に処理を引き渡し、
書替え起動プログラム34によって同じバンクの書替え
プログラムをRAM18上にロードして、書替えプログ
ラム28−1として起動させる。
トとして示している。まずステップS1で、書替えデー
タ42をRAM18上に準備し、この状態で書替え指示
を行うことから、オペレータの書替え指示をステップS
2で判別すると、ステップS3で、まずフラッシュメモ
リ16の書替え起動プログラム34に処理を引き渡し、
書替え起動プログラム34によって同じバンクの書替え
プログラムをRAM18上にロードして、書替えプログ
ラム28−1として起動させる。
【0039】このようにして起動した書替えプログラム
28−1は、まずステップS4で、バックアップバンク
16−nの消去処理を行う。次にステップS5で、書替
えバンク16−kの内容をバックアップバンク16−n
にコピーする。続いてステップS6で、書替えバンク1
6−kの内容を消去する。これによって書替えデータ4
2の書替え準備が完了する。続いてステップS7で、R
AM18上の書替えデータ42を書替えバンク16−k
にコピーする。最終的にステップS8で、バックアップ
バンク16−nの内容を消去して、一連の処理を終了す
る。 2.修正データの書替え形式 図4に示したように、オペレータは書替えを指示して書
替えプログラムを起動する前に、RAM18上に例えば
バージョンアップした修正プログラム等の書替えデータ
42を準備する必要がある。この書替えデータ42の中
にはフォーマットタイプという情報が設けられており、
書替えプログラムによってフォーマットタイプを認識さ
せ、処理を変えることにより複数種類の書替え処理をサ
ポートすることができる。この実施例にあっては、書替
えデータのフォーマットタイプとして バンク全書替えタイプ バンク部分書替えで旧データありのタイプ バンク部分書替えで旧データなしのタイプ の3つがある。
28−1は、まずステップS4で、バックアップバンク
16−nの消去処理を行う。次にステップS5で、書替
えバンク16−kの内容をバックアップバンク16−n
にコピーする。続いてステップS6で、書替えバンク1
6−kの内容を消去する。これによって書替えデータ4
2の書替え準備が完了する。続いてステップS7で、R
AM18上の書替えデータ42を書替えバンク16−k
にコピーする。最終的にステップS8で、バックアップ
バンク16−nの内容を消去して、一連の処理を終了す
る。 2.修正データの書替え形式 図4に示したように、オペレータは書替えを指示して書
替えプログラムを起動する前に、RAM18上に例えば
バージョンアップした修正プログラム等の書替えデータ
42を準備する必要がある。この書替えデータ42の中
にはフォーマットタイプという情報が設けられており、
書替えプログラムによってフォーマットタイプを認識さ
せ、処理を変えることにより複数種類の書替え処理をサ
ポートすることができる。この実施例にあっては、書替
えデータのフォーマットタイプとして バンク全書替えタイプ バンク部分書替えで旧データありのタイプ バンク部分書替えで旧データなしのタイプ の3つがある。
【0040】図6は、フォーマットタイプをバンク全書
替えタイプとした場合の書替えデータの説明図である。
図6において、書替えデータの先頭のアドレス領域に
は、修正データ情報フラグ48、フォーマットタイプ5
0、版数52、書替え指定バンク54、チェックサム5
6が設けられており、残りが新データ格納領域55とな
る。
替えタイプとした場合の書替えデータの説明図である。
図6において、書替えデータの先頭のアドレス領域に
は、修正データ情報フラグ48、フォーマットタイプ5
0、版数52、書替え指定バンク54、チェックサム5
6が設けられており、残りが新データ格納領域55とな
る。
【0041】修正データ情報フラグ48は、このデータ
がフラッシュメモリ16の書替え情報であることを示す
情報を格納しており、例えば16進で[0x55AA5
5AA]の固定値が使用される。フォーマットタイプ5
0はバンク全書替えを示しており、例えばバンク全書替
えを示す情報として[0x0002]を格納している。
がフラッシュメモリ16の書替え情報であることを示す
情報を格納しており、例えば16進で[0x55AA5
5AA]の固定値が使用される。フォーマットタイプ5
0はバンク全書替えを示しており、例えばバンク全書替
えを示す情報として[0x0002]を格納している。
【0042】版数52は、書替え対象バンクの新版数を
格納している。書替え指定バンク54は、フラッシュメ
モリ16の書替え対象となっているバンク番号を格納し
ている。チェックサム56は、新データ領域55の新デ
ータをバイト単位で足し合わせた値が格納されており、
データの正当性のチェックに使用される。データ領域5
5は、例えばフラッシュメモリ16の1バンクのサイズ
を64Kバイトとすると、その中のデータ領域である5
0Kバイト分のデータをもっている。ここでフラッシュ
メモリ16の1バンクのサイズを64Kバイトとしたと
き、データ領域が50Kバイト、7Kバイトがパリテ
ィ、1Kが未使用となっている。
格納している。書替え指定バンク54は、フラッシュメ
モリ16の書替え対象となっているバンク番号を格納し
ている。チェックサム56は、新データ領域55の新デ
ータをバイト単位で足し合わせた値が格納されており、
データの正当性のチェックに使用される。データ領域5
5は、例えばフラッシュメモリ16の1バンクのサイズ
を64Kバイトとすると、その中のデータ領域である5
0Kバイト分のデータをもっている。ここでフラッシュ
メモリ16の1バンクのサイズを64Kバイトとしたと
き、データ領域が50Kバイト、7Kバイトがパリテ
ィ、1Kが未使用となっている。
【0043】このような図6の書替えデータの場合、書
替えプログラムはフォーマットタイプ50をチェック
し、バンク全書替えを判断すると、書替えデータの中の
データ領域55の中の全データを書替え指定バンク54
で指定された書替えバンクに書き込むことになる。図7
は、フォーマットタイプが部分書替えで旧データありの
タイプの場合の書替えデータのフォーマットを示す。書
替えデータの先頭領域については、図6のバンク全書替
えタイプと同様、修正データ情報フラグ48、フォーマ
ットタイプ50、版数52、書替え指定バンク54およ
びチェックサム56が設けられ、更に、未使用となって
いた部分には書替え個数58が新たに設けられている。
替えプログラムはフォーマットタイプ50をチェック
し、バンク全書替えを判断すると、書替えデータの中の
データ領域55の中の全データを書替え指定バンク54
で指定された書替えバンクに書き込むことになる。図7
は、フォーマットタイプが部分書替えで旧データありの
タイプの場合の書替えデータのフォーマットを示す。書
替えデータの先頭領域については、図6のバンク全書替
えタイプと同様、修正データ情報フラグ48、フォーマ
ットタイプ50、版数52、書替え指定バンク54およ
びチェックサム56が設けられ、更に、未使用となって
いた部分には書替え個数58が新たに設けられている。
【0044】フォーマットタイプ50は、バンク部分書
替えで旧データありを示すため、例えば[0x000
1]が格納されている。また新たに設けられた書替え個
数58には、1バンク内での部分書替えを行うデータ領
域の数Nが格納されている。更に、データ領域55につ
いては、書替え個数58で指定された1〜Nの書替え場
所ごとに、開始アドレス、バイト長が指定され、更に、
その部分の現在フラッシュメモリに格納されている旧デ
ータの格納領域と新たに書き込む新データの格納領域を
もっている。
替えで旧データありを示すため、例えば[0x000
1]が格納されている。また新たに設けられた書替え個
数58には、1バンク内での部分書替えを行うデータ領
域の数Nが格納されている。更に、データ領域55につ
いては、書替え個数58で指定された1〜Nの書替え場
所ごとに、開始アドレス、バイト長が指定され、更に、
その部分の現在フラッシュメモリに格納されている旧デ
ータの格納領域と新たに書き込む新データの格納領域を
もっている。
【0045】図7にあっては、書替え数1〜Nに対応し
て、開始アドレス1〜N,バイト長1〜Nで示し、それ
ぞれについて旧データおよび新データの領域を設けてい
る。旧データ及び新データの最大長は、この実施例にあ
っては16バイトであり、このため、16バイトを越え
た連続データについては、分割して別の領域としなけれ
ばならない。
て、開始アドレス1〜N,バイト長1〜Nで示し、それ
ぞれについて旧データおよび新データの領域を設けてい
る。旧データ及び新データの最大長は、この実施例にあ
っては16バイトであり、このため、16バイトを越え
た連続データについては、分割して別の領域としなけれ
ばならない。
【0046】書替えプログラムは、図7の書替えデータ
のフォーマットタイプ50をチェックして、部分書替え
で旧データありのタイプを認識すると、RAM18上に
存在する図7の書替えデータを対象に、書替えバンクに
実際に書き込むべきデータの作成を行う。この書替えバ
ンクに実際に書込むべきデータの作成は、まずフラッシ
ュメモリの書替えバンク内の現データをRAM18上に
旧データとしてコピーし、図7の書替えデータの示すバ
ンク内の開始アドレスから指定バイト長分の新データを
書き込んでいく。この際に、フラッシュメモリ16から
コピーした旧データが正しいか否か、チェックサムを使
用してチェックを行い、異なっている場合はオペレータ
に異常発生を警告し、それ以上の処理は行わない。
のフォーマットタイプ50をチェックして、部分書替え
で旧データありのタイプを認識すると、RAM18上に
存在する図7の書替えデータを対象に、書替えバンクに
実際に書き込むべきデータの作成を行う。この書替えバ
ンクに実際に書込むべきデータの作成は、まずフラッシ
ュメモリの書替えバンク内の現データをRAM18上に
旧データとしてコピーし、図7の書替えデータの示すバ
ンク内の開始アドレスから指定バイト長分の新データを
書き込んでいく。この際に、フラッシュメモリ16から
コピーした旧データが正しいか否か、チェックサムを使
用してチェックを行い、異なっている場合はオペレータ
に異常発生を警告し、それ以上の処理は行わない。
【0047】図8は、フォーマットタイプが部分書替え
で旧データなしのタイプの書込みデータのフォーマット
である。この場合にも、書替えデータの先頭領域に修正
データ情報フラグ48、フォーマットタイプ50、版数
52、書替え指定バンク54およびチェックサム56
が、図7の場合と同様、設けられている。ここで、フォ
ーマットタイプ50は部分書替えで旧データなしを示す
ため、例えば[0x0000]が格納されている。デー
タ領域55については、図8における旧データの領域が
未使用となっている以外は同じである。
で旧データなしのタイプの書込みデータのフォーマット
である。この場合にも、書替えデータの先頭領域に修正
データ情報フラグ48、フォーマットタイプ50、版数
52、書替え指定バンク54およびチェックサム56
が、図7の場合と同様、設けられている。ここで、フォ
ーマットタイプ50は部分書替えで旧データなしを示す
ため、例えば[0x0000]が格納されている。デー
タ領域55については、図8における旧データの領域が
未使用となっている以外は同じである。
【0048】書替えプログラムがフォーマットタイプ5
0のチェックで図8の部分書替えで旧データなしのタイ
プを認識した場合には、図7の部分書替えで旧データあ
りの場合と同様、フラッシュメモリ16の書替えバンク
の現データを全てRAM18上にコピーし、図8の書替
えデータで示すバンク内の開始アドレスから指定バイト
長分の新データを書き込んで、書替えバンクに実際に書
き込むべきデータを作成する。この場合、図8の部分書
替えで旧データなしのタイプにあっては、図7の旧デー
タありのような、旧データが正しいか否かのチェックは
行わない。
0のチェックで図8の部分書替えで旧データなしのタイ
プを認識した場合には、図7の部分書替えで旧データあ
りの場合と同様、フラッシュメモリ16の書替えバンク
の現データを全てRAM18上にコピーし、図8の書替
えデータで示すバンク内の開始アドレスから指定バイト
長分の新データを書き込んで、書替えバンクに実際に書
き込むべきデータを作成する。この場合、図8の部分書
替えで旧データなしのタイプにあっては、図7の旧デー
タありのような、旧データが正しいか否かのチェックは
行わない。
【0049】図9は、図6〜図8に示した3つのフォー
マットタイプを対象とした書替えデータ作成処理のフロ
ーチャートである。まずステップS1で、書替えデータ
のフォーマットタイプを参照し、ステップS2で、いず
れのタイプに属するかを判定する。フォーマットタイプ
が[0x002]であった場合には、ステップS3で、
バンク全書替えを認識し、この場合には書替えデータが
そのまま使用できることから、処理を終了する。
マットタイプを対象とした書替えデータ作成処理のフロ
ーチャートである。まずステップS1で、書替えデータ
のフォーマットタイプを参照し、ステップS2で、いず
れのタイプに属するかを判定する。フォーマットタイプ
が[0x002]であった場合には、ステップS3で、
バンク全書替えを認識し、この場合には書替えデータが
そのまま使用できることから、処理を終了する。
【0050】またステップS2でフォーマットタイプ
[0x001]を判定した場合には、ステップS4で、
部分書替えで旧データありのタイプであることを認識
し、ステップS5で、書替えバンクの現データをRAM
18上にコピーする。続いてステップS6で、RAM1
8上の書替えデータのバンク内の開始アドレスからバイ
ト単位にコピーしている旧データに新データを書き込
む。
[0x001]を判定した場合には、ステップS4で、
部分書替えで旧データありのタイプであることを認識
し、ステップS5で、書替えバンクの現データをRAM
18上にコピーする。続いてステップS6で、RAM1
8上の書替えデータのバンク内の開始アドレスからバイ
ト単位にコピーしている旧データに新データを書き込
む。
【0051】このとき、まず旧データの正当性をチェッ
クし、ステップS7で、旧データが正しいことを認識す
れば、ステップS8で、全個数を終了したか否かチェッ
クし、全個数を終了するまで、ステップS6の旧データ
に対する新データの書込み処理を繰り返す。一方、ステ
ップS6における旧データの新データによる書込みの際
に旧データをチェックした結果、旧データに異常があっ
た場合には、ステップS9に進み、オペレータに警告出
力を行って、書替えデータ作成処理を異常終了させる。
クし、ステップS7で、旧データが正しいことを認識す
れば、ステップS8で、全個数を終了したか否かチェッ
クし、全個数を終了するまで、ステップS6の旧データ
に対する新データの書込み処理を繰り返す。一方、ステ
ップS6における旧データの新データによる書込みの際
に旧データをチェックした結果、旧データに異常があっ
た場合には、ステップS9に進み、オペレータに警告出
力を行って、書替えデータ作成処理を異常終了させる。
【0052】更に、ステップS2でフォーマットタイプ
[0x000]を判定した場合には、ステップS10
で、部分書替えで旧データなしを認識し、ステップS1
1で、書替えバンクの現データをRAM18上にコピー
し、ステップS12で、RAM上に準備されている書替
えデータのバンク内開始アドレスに従ってバイト単位に
新データを書き込み、ステップS13で全個数の書込み
を終了して、書替えデータ作成処理を終了する。 3.マルチCPU構成の書替え処理 図10は、本発明のフラッシュメモリの書替え制御が適
用されるマルチプロセッサ構成の動作環境を示す。近年
にあっては、計算機システムの無停止化および処理速度
の高速化のため、共有メモリ上のプログラムで走行する
複数のプロセッサを備えたマルチプロセッサシステムが
構築されており、マルチプロセッサシステムにおいて、
本発明の書替え対象となるフラッシュメモリは共有メモ
リとして使用される。
[0x000]を判定した場合には、ステップS10
で、部分書替えで旧データなしを認識し、ステップS1
1で、書替えバンクの現データをRAM18上にコピー
し、ステップS12で、RAM上に準備されている書替
えデータのバンク内開始アドレスに従ってバイト単位に
新データを書き込み、ステップS13で全個数の書込み
を終了して、書替えデータ作成処理を終了する。 3.マルチCPU構成の書替え処理 図10は、本発明のフラッシュメモリの書替え制御が適
用されるマルチプロセッサ構成の動作環境を示す。近年
にあっては、計算機システムの無停止化および処理速度
の高速化のため、共有メモリ上のプログラムで走行する
複数のプロセッサを備えたマルチプロセッサシステムが
構築されており、マルチプロセッサシステムにおいて、
本発明の書替え対象となるフラッシュメモリは共有メモ
リとして使用される。
【0053】図10において、情報処理装置10は、マ
ルチプロセッサとして複数のMPU12−0〜12−3
を備えている。CPU12−0〜12−3に対しては、
メモリマッピング機構14を介して、共有プログラムメ
モリとして動作するフラッシュメモリ16および共有ワ
ークメモリとして動作するRAM18が接続されてい
る。
ルチプロセッサとして複数のMPU12−0〜12−3
を備えている。CPU12−0〜12−3に対しては、
メモリマッピング機構14を介して、共有プログラムメ
モリとして動作するフラッシュメモリ16および共有ワ
ークメモリとして動作するRAM18が接続されてい
る。
【0054】更にCPU12−0〜12−3は、CPU
間割込みバス46で接続されており、相互に処理の連携
をとることができる。またCPU12−0〜12−3は
フラッシュメモリ16のアクセスが競合して時間がかか
ることから、それぞれ個別に命令キャッシュ機構をもつ
ことで、メモリアクセスを高速化している。複数のCP
U12−0〜12−3の内、CPU12−0が通信制御
ユニット20から外部インタフェース22を介してフラ
ッシュメモリ16の書替え指示を行うための操作端末2
4に接続されている。このため、CPU12−0がフラ
ッシュメモリ16の書替えを行う書替えプログラムを走
行させるためのメインCPU(メインプロセッサ)の割
当てを受けることになる。
間割込みバス46で接続されており、相互に処理の連携
をとることができる。またCPU12−0〜12−3は
フラッシュメモリ16のアクセスが競合して時間がかか
ることから、それぞれ個別に命令キャッシュ機構をもつ
ことで、メモリアクセスを高速化している。複数のCP
U12−0〜12−3の内、CPU12−0が通信制御
ユニット20から外部インタフェース22を介してフラ
ッシュメモリ16の書替え指示を行うための操作端末2
4に接続されている。このため、CPU12−0がフラ
ッシュメモリ16の書替えを行う書替えプログラムを走
行させるためのメインCPU(メインプロセッサ)の割
当てを受けることになる。
【0055】図11は、図10のマルチプロセッサ構成
におけるフラッシュメモリ書替えの機能ブロックであ
る。この機能ブロックは、シングルプロセッサ構成を示
した図3に加え、書替えプログラム28側にマスタCP
U判別部60と、マスタCPU以外の他のCPUの書替
え処理中におけるフラッシュメモリへのアクセスを禁止
するための自己ブランチ又はホルト部62を新たに設け
ている。
におけるフラッシュメモリ書替えの機能ブロックであ
る。この機能ブロックは、シングルプロセッサ構成を示
した図3に加え、書替えプログラム28側にマスタCP
U判別部60と、マスタCPU以外の他のCPUの書替
え処理中におけるフラッシュメモリへのアクセスを禁止
するための自己ブランチ又はホルト部62を新たに設け
ている。
【0056】マスタCPU判別部60は、図10に示す
ように、通信制御ユニット20による書替え指示を行う
オペレータ操作端末24との物理的な接続スロットを認
識して、書替え指示を受けた際に、CPU12−0がマ
スタCPUであることを判別する。自己ブランチ又はホ
ルト部62は、マスタCPU12−0が書替え起動プロ
グラム34によりRAM18上にロードされて走行する
書替えプログラム28で実現される書替え処理部38の
書替えシーケンスSeq.1〜Seq.10の間におけ
る他のCPU12−1〜12−3からのフラッシュメモ
リ16に対するアクセスを禁止させる処理を行う。
ように、通信制御ユニット20による書替え指示を行う
オペレータ操作端末24との物理的な接続スロットを認
識して、書替え指示を受けた際に、CPU12−0がマ
スタCPUであることを判別する。自己ブランチ又はホ
ルト部62は、マスタCPU12−0が書替え起動プロ
グラム34によりRAM18上にロードされて走行する
書替えプログラム28で実現される書替え処理部38の
書替えシーケンスSeq.1〜Seq.10の間におけ
る他のCPU12−1〜12−3からのフラッシュメモ
リ16に対するアクセスを禁止させる処理を行う。
【0057】自己ブランチ又はホルト部62によるマス
タCPU12−0以外の他のCPU12−1〜12−3
のアクセス禁止は、マスタCPU12−0で書替え処理
を開始する前に行われる。この自己ブランチ又はホルト
指示は、後の説明で明らかにする。図12は、図10の
マルチプロセッサ構成におけるフラッシュメモリ16の
書替え処理を示している。ここで、マルチCPUとして
はCPU12−0〜12−mを例にとっており、この
内、CPU12−0がマスタCPUに割り当てられてい
る。オペレータはRAM18上に書替えデータ42を準
備した後、フラッシュメモリ16を書き替えるためのオ
ペレータ指示100を発行する。このときCPU12−
0〜12−mは、RAM18にロードされたプログラム
領域40のプログラムで動作しているが、オペレータ指
示100があると、マスタ割当てを受けたマスタCPU
12−0がフラッシュメモリ16の書替え指示を認識
し、プログラム領域40の処理をフラッシュメモリ16
のバンク16−4に格納されている書替え起動プログラ
ム34に引き渡す引き渡し101を行う。
タCPU12−0以外の他のCPU12−1〜12−3
のアクセス禁止は、マスタCPU12−0で書替え処理
を開始する前に行われる。この自己ブランチ又はホルト
指示は、後の説明で明らかにする。図12は、図10の
マルチプロセッサ構成におけるフラッシュメモリ16の
書替え処理を示している。ここで、マルチCPUとして
はCPU12−0〜12−mを例にとっており、この
内、CPU12−0がマスタCPUに割り当てられてい
る。オペレータはRAM18上に書替えデータ42を準
備した後、フラッシュメモリ16を書き替えるためのオ
ペレータ指示100を発行する。このときCPU12−
0〜12−mは、RAM18にロードされたプログラム
領域40のプログラムで動作しているが、オペレータ指
示100があると、マスタ割当てを受けたマスタCPU
12−0がフラッシュメモリ16の書替え指示を認識
し、プログラム領域40の処理をフラッシュメモリ16
のバンク16−4に格納されている書替え起動プログラ
ム34に引き渡す引き渡し101を行う。
【0058】この制御の引き渡し101を受けて、書替
え起動プログラム34が起動し、同じバンク16−4に
格納している書替えプログラム38をRAM18に書替
えプログラム28−1としてロードして起動するロード
102を行う。このときマスタCPU12−0は、他の
全てのCPU12−1〜12−mに対し、フラッシュメ
モリ16に対する全てのアクセスをRAM18にロード
された書替えプログラム28−1のアクセスから入るよ
うに割込み指示105を行う。
え起動プログラム34が起動し、同じバンク16−4に
格納している書替えプログラム38をRAM18に書替
えプログラム28−1としてロードして起動するロード
102を行う。このときマスタCPU12−0は、他の
全てのCPU12−1〜12−mに対し、フラッシュメ
モリ16に対する全てのアクセスをRAM18にロード
された書替えプログラム28−1のアクセスから入るよ
うに割込み指示105を行う。
【0059】この割込み指示105を受けた他のCPU
12−1〜12−mは、フラッシュメモリ16にアクセ
スする際には、まずRAM18上の書替えプログラム2
8−1にジャンプすることになる。マスタCPU12−
0から他のCPU12−1〜12−mに割込み指示10
5が行われた後、書替えプログラム28−1に対し、い
ずれかのCPUからアクセスがあると、書替えプログラ
ム28−1はCPUのプロセッサ番号を認識し、マスタ
CPU12−0以外のCPUであった場合には、そのC
PUの処理を禁止させる。
12−1〜12−mは、フラッシュメモリ16にアクセ
スする際には、まずRAM18上の書替えプログラム2
8−1にジャンプすることになる。マスタCPU12−
0から他のCPU12−1〜12−mに割込み指示10
5が行われた後、書替えプログラム28−1に対し、い
ずれかのCPUからアクセスがあると、書替えプログラ
ム28−1はCPUのプロセッサ番号を認識し、マスタ
CPU12−0以外のCPUであった場合には、そのC
PUの処理を禁止させる。
【0060】このCPUのフラッシュメモリ16に対す
るアクセスの禁止処理は、無限ループに処理を戻すか、
あるいはマスタCPU12−0からホルト指示を行って
停止させるかする。また書替えプログラム28−1は他
のCPU12−1〜12−mのフラッシュメモリ16に
対するアクセスの禁止処理を行うごとに、マスタCPU
12−0に禁止結果を報告している。
るアクセスの禁止処理は、無限ループに処理を戻すか、
あるいはマスタCPU12−0からホルト指示を行って
停止させるかする。また書替えプログラム28−1は他
のCPU12−1〜12−mのフラッシュメモリ16に
対するアクセスの禁止処理を行うごとに、マスタCPU
12−0に禁止結果を報告している。
【0061】マスタCPU12−0は全ての他のCPU
12−1〜12−mのフラッシュメモリ16に対するア
クセス禁止を認識すると、書替えプログラム28−1の
走行により一連の書替えバンク16−kに対する書替え
データ42の書替え処理を開始する。この書替え処理
は、図4のシングルプロセッサ構成の場合と同じにな
る。
12−1〜12−mのフラッシュメモリ16に対するア
クセス禁止を認識すると、書替えプログラム28−1の
走行により一連の書替えバンク16−kに対する書替え
データ42の書替え処理を開始する。この書替え処理
は、図4のシングルプロセッサ構成の場合と同じにな
る。
【0062】即ち、書替えプログラム28−1は書替え
バンク16−kにコピー指示106を行って、バックア
ップバンク16−nに書替えバンク16−kの内容をコ
ピーするコピー108を行う。続いてクリア指示110
を書替えバンク16−kに行って内容を消去し、続いて
書替えデータ42のコピー指示112により書替えバン
ク16−kに書き込む。最後に、バックアップバンク1
6−nに対しクリア指示114を行って、バックアップ
バンク16−nを消去する。
バンク16−kにコピー指示106を行って、バックア
ップバンク16−nに書替えバンク16−kの内容をコ
ピーするコピー108を行う。続いてクリア指示110
を書替えバンク16−kに行って内容を消去し、続いて
書替えデータ42のコピー指示112により書替えバン
ク16−kに書き込む。最後に、バックアップバンク1
6−nに対しクリア指示114を行って、バックアップ
バンク16−nを消去する。
【0063】図13は、図11のマルチプロセッサ構成
における書替え処理のフローチャートであり、マスタC
PUで他のCPUにホルト指示を行って書替え中のアク
セスを禁止させる実施例を例にとっている。図13にお
いて、まずオペレータは、ステップS1で書替えデータ
をRAM18上に準備し、書替え指示を行う。この書替
え指示をステップS2で認識すると、ステップS3に進
み、マスタCPU12−1を認識する。続いてステップ
S4で、フラッシュメモリ16の書替え起動プログラム
を起動し、書替えプログラムをRAM上にロードして起
動する。
における書替え処理のフローチャートであり、マスタC
PUで他のCPUにホルト指示を行って書替え中のアク
セスを禁止させる実施例を例にとっている。図13にお
いて、まずオペレータは、ステップS1で書替えデータ
をRAM18上に準備し、書替え指示を行う。この書替
え指示をステップS2で認識すると、ステップS3に進
み、マスタCPU12−1を認識する。続いてステップ
S4で、フラッシュメモリ16の書替え起動プログラム
を起動し、書替えプログラムをRAM上にロードして起
動する。
【0064】続いてステップS5で、マスタCPU12
−0が他のCPU12−1〜12−mに対しフラッシュ
メモリ16のアクセスにつきRAM18上の書替えプロ
グラムからの走行を指示する。ステップS6では、他の
CPU12−1〜12−mからのアクセスを認識してお
り、他のCPU12−1〜12−mのいずれかからのア
クセスがあると、ステップS7でホルトを指示して停止
させる。
−0が他のCPU12−1〜12−mに対しフラッシュ
メモリ16のアクセスにつきRAM18上の書替えプロ
グラムからの走行を指示する。ステップS6では、他の
CPU12−1〜12−mからのアクセスを認識してお
り、他のCPU12−1〜12−mのいずれかからのア
クセスがあると、ステップS7でホルトを指示して停止
させる。
【0065】ステップS6,S7の処理は、ステップS
8で他の全てのCPU12−1〜12−mをホルトさせ
るまで繰り返され、マスタCPU12−0以外のCPU
のホルトが済むと、ステップS9に進み、フラッシュメ
モリの書替え処理を開始する。このフラッシュメモリ書
替え処理は、図5のステップS4〜S8と同じ内容にな
る。
8で他の全てのCPU12−1〜12−mをホルトさせ
るまで繰り返され、マスタCPU12−0以外のCPU
のホルトが済むと、ステップS9に進み、フラッシュメ
モリの書替え処理を開始する。このフラッシュメモリ書
替え処理は、図5のステップS4〜S8と同じ内容にな
る。
【0066】このように、マルチプロセッサ構成であっ
ても、共通メモリとして使用されるフラッシュメモリ1
6の書替え中はマスタCPU以外の他のCPUによるフ
ラッシュメモリに対するアクセスが禁止されるため、書
替えシーケンスが途中で中断されることはなく、フラッ
シュメモリの書替えを確実に正常終了させることができ
る。
ても、共通メモリとして使用されるフラッシュメモリ1
6の書替え中はマスタCPU以外の他のCPUによるフ
ラッシュメモリに対するアクセスが禁止されるため、書
替えシーケンスが途中で中断されることはなく、フラッ
シュメモリの書替えを確実に正常終了させることができ
る。
【0067】図14は、図10のマルチプロセッサ構成
における書替え処理のフローチャートの他の実施例であ
り、図13のステップS1〜S5までは同じであること
から、残りステップS6〜S9のみを示している。この
図14の実施例は、マスタCPUでフラッシュメモリ1
6の書替え処理の際に他のCPU12−1〜12−mを
自己ブランチによりアクセス禁止とするものである。即
ち、ステップS6で他のCPUからのアクセスを認識す
ると、ステップS7で、書替え起動プログラムはそのC
PUの処理を無限ループへ遷移させる。
における書替え処理のフローチャートの他の実施例であ
り、図13のステップS1〜S5までは同じであること
から、残りステップS6〜S9のみを示している。この
図14の実施例は、マスタCPUでフラッシュメモリ1
6の書替え処理の際に他のCPU12−1〜12−mを
自己ブランチによりアクセス禁止とするものである。即
ち、ステップS6で他のCPUからのアクセスを認識す
ると、ステップS7で、書替え起動プログラムはそのC
PUの処理を無限ループへ遷移させる。
【0068】このため、他のCPU12−1〜12−m
の処理は無限ループに入ることで、その時点で処理を停
止することになる。この無限ループへの遷移はマスタC
PU12−0に報告され、ステップS8で他の全てのC
PU12−1〜12−mの無限ループへの遷移を確認す
ると、ステップS9のフラッシュメモリの書替え処理を
マスタCPU12−0がRAM18上の書替えプログラ
ムの走行で実現する。 4.書替えフラグと再開処理 図15は、本発明の書替え対象となるフラッシュメモリ
18における1つのバンクの構成を示す。
の処理は無限ループに入ることで、その時点で処理を停
止することになる。この無限ループへの遷移はマスタC
PU12−0に報告され、ステップS8で他の全てのC
PU12−1〜12−mの無限ループへの遷移を確認す
ると、ステップS9のフラッシュメモリの書替え処理を
マスタCPU12−0がRAM18上の書替えプログラ
ムの走行で実現する。 4.書替えフラグと再開処理 図15は、本発明の書替え対象となるフラッシュメモリ
18における1つのバンクの構成を示す。
【0069】図15においてバンク内には、まずバック
アップ元バンク番号64、バンク番号66、バンク版数
68、書替え回数70、書替えフラグ72が設けられて
いる。バックアップ元バンク番号64はバックアップバ
ンクのみで使用され、他のバンクは未使用となる。バン
ク番号66は自分自身のバンク番号を格納してる。バン
ク版数68は、書替えによる新たなデータのバンク版数
を格納する。
アップ元バンク番号64、バンク番号66、バンク版数
68、書替え回数70、書替えフラグ72が設けられて
いる。バックアップ元バンク番号64はバックアップバ
ンクのみで使用され、他のバンクは未使用となる。バン
ク番号66は自分自身のバンク番号を格納してる。バン
ク版数68は、書替えによる新たなデータのバンク版数
を格納する。
【0070】書替え回数70は、このバンクのデータ書
替え回数を格納する。更に書替えフラグ72は、このバ
ンクの書替えに伴う状態を表わしている。ここで書替え
フラグ72は、通常の書替えが行われる書替えバンクに
ついては書替えフラグFLAが格納され、バックアップ
バンクについてはバックアップバンクフラグFLBが格
納される。
替え回数を格納する。更に書替えフラグ72は、このバ
ンクの書替えに伴う状態を表わしている。ここで書替え
フラグ72は、通常の書替えが行われる書替えバンクに
ついては書替えフラグFLAが格納され、バックアップ
バンクについてはバックアップバンクフラグFLBが格
納される。
【0071】図16は、書替えフラグ72の状態遷移図
である。まず図16(A)は、書替えバンクとなる通常
バンクのフラグFLAの状態遷移であり、初期状態また
は消去状態でオールFとなっている。このオールFの状
態からバンクに対し正常なデータ書込みが行われると、
FLA=3に遷移する。FLA=3の状態でバンクの消
去が行われると、FLA=オールFに遷移する。
である。まず図16(A)は、書替えバンクとなる通常
バンクのフラグFLAの状態遷移であり、初期状態また
は消去状態でオールFとなっている。このオールFの状
態からバンクに対し正常なデータ書込みが行われると、
FLA=3に遷移する。FLA=3の状態でバンクの消
去が行われると、FLA=オールFに遷移する。
【0072】図16(B)は、バックアップバンクのフ
ラグFLBの状態遷移図である。バックアップバンクに
ついても、初期状態または消去状態にあってはFLB=
オールFにある。書替え処理に伴ってバックアップバン
クにデータコピーが行われると、FLB=5に遷移す
る。コピー後にバックアップバンクが消去されると、F
LB=オールFに遷移する。
ラグFLBの状態遷移図である。バックアップバンクに
ついても、初期状態または消去状態にあってはFLB=
オールFにある。書替え処理に伴ってバックアップバン
クにデータコピーが行われると、FLB=5に遷移す
る。コピー後にバックアップバンクが消去されると、F
LB=オールFに遷移する。
【0073】再び図15を参照するに、書替えフラグ7
2に続いてはモジュール・ヘッダ部74が設けられ、そ
の後ろにデータ部76を設け、更にパリティ78を設け
ている。また最後に、未使用のダミー領域80がある。
通常、不揮発性メモリ内の全データに対するパリティは
別の不揮発性メモリや同じ不揮発性メモリの1箇所にま
とめて格納されている。しかしフラッシュメモリの場
合、書替え単位が1バンクごととなるため、書替え途中
での中断を考慮すると、1つのバンク内のデータに対す
るパリティは図15のように同じバンク内に設けておく
ことが望ましい。
2に続いてはモジュール・ヘッダ部74が設けられ、そ
の後ろにデータ部76を設け、更にパリティ78を設け
ている。また最後に、未使用のダミー領域80がある。
通常、不揮発性メモリ内の全データに対するパリティは
別の不揮発性メモリや同じ不揮発性メモリの1箇所にま
とめて格納されている。しかしフラッシュメモリの場
合、書替え単位が1バンクごととなるため、書替え途中
での中断を考慮すると、1つのバンク内のデータに対す
るパリティは図15のように同じバンク内に設けておく
ことが望ましい。
【0074】このため、図15のように、同じバンク内
にデータ76とパリティ78を保持することで、データ
の書替えをバンク内だけで対象にすることができる。更
に、各バンクの書込み処理や消去処理の後にデータ76
を読み出してパリティ78をチェックすることにより、
データの保証を、消去、コピーの各処理過程ごとに行う
ことができる。
にデータ76とパリティ78を保持することで、データ
の書替えをバンク内だけで対象にすることができる。更
に、各バンクの書込み処理や消去処理の後にデータ76
を読み出してパリティ78をチェックすることにより、
データの保証を、消去、コピーの各処理過程ごとに行う
ことができる。
【0075】図17は本発明によるフラッシュメモリ1
6の書替えシーケンスと書替えバンクおよびバックアッ
プバンクに設けている書替えフラグの状態、更に各バン
ク内のデータ状態の対応関係であり、これらの対応関係
に基づき、右側に示す再起動された際の処理が定められ
ている。図17において、まず書替えバンクの書替え処
理はシーケンス番号SEQ1〜10の10段階に亘り実
行される。即ち、シーケンスSEQ1でバックアップバ
ンクをクリアし、シーケンスSEQ2でバックアップバ
ンクの読出しチェックを行い、シーケンスSEQ3で、
バックアップバンクに対し書替えバンクからのコピーを
行い、シーケンスSEQ4でバックアップバンクの読出
しチェックを行う。
6の書替えシーケンスと書替えバンクおよびバックアッ
プバンクに設けている書替えフラグの状態、更に各バン
ク内のデータ状態の対応関係であり、これらの対応関係
に基づき、右側に示す再起動された際の処理が定められ
ている。図17において、まず書替えバンクの書替え処
理はシーケンス番号SEQ1〜10の10段階に亘り実
行される。即ち、シーケンスSEQ1でバックアップバ
ンクをクリアし、シーケンスSEQ2でバックアップバ
ンクの読出しチェックを行い、シーケンスSEQ3で、
バックアップバンクに対し書替えバンクからのコピーを
行い、シーケンスSEQ4でバックアップバンクの読出
しチェックを行う。
【0076】次にシーケンスSEQ5で書替えバンクを
クリアし、シーケンスSEQ6で書替えバンクの読出し
チェックを行う。次にシーケンスSEQ7で、RAM1
8上に準備された書替えデータにより書替えバンクの書
替えを行い、シーケンスSEQ8で、書替えが済んだ書
替えバンクの読出しチェックを行う。最終的にシーケン
スSEQ9でバックアップバンクのクリアを行い、シー
ケンスSEQ10で、クリアの済んだバックアップバン
クの読出しチェックを行って一連の処理を終了する。
クリアし、シーケンスSEQ6で書替えバンクの読出し
チェックを行う。次にシーケンスSEQ7で、RAM1
8上に準備された書替えデータにより書替えバンクの書
替えを行い、シーケンスSEQ8で、書替えが済んだ書
替えバンクの読出しチェックを行う。最終的にシーケン
スSEQ9でバックアップバンクのクリアを行い、シー
ケンスSEQ10で、クリアの済んだバックアップバン
クの読出しチェックを行って一連の処理を終了する。
【0077】このようなシーケンスSEQ1〜10に対
し、書替えバンクのフラグFLAは、SEQ1〜4の
間、FLA=3となって、旧データが有効であることを
表わしている。SEQ5にあっては、書替えバンクがク
リアされることから、途中から書替えフラグFLAは不
定となり、クリアが完了するとFLA=オールFに移行
する。
し、書替えバンクのフラグFLAは、SEQ1〜4の
間、FLA=3となって、旧データが有効であることを
表わしている。SEQ5にあっては、書替えバンクがク
リアされることから、途中から書替えフラグFLAは不
定となり、クリアが完了するとFLA=オールFに移行
する。
【0078】シーケンスSEQ6〜8の間は、FLA=
オールFである。そしてシーケンスSEQ8で新データ
の書替えが完了することから、SEQ9〜10はFLA
=3となり、新データが有効であることを示す。一方、
バックアップバンクのフラグFLBにあっては、最初の
シーケンスSEQ1〜4の間はFLB=オールFと、ク
リア有効状態を示している。シーケンスSEQ5に至る
と、書替えバンクのデータが有効にバックアップバンク
にコピーされることからFLB=5となり、シーケンス
SEQ8までの間、FLB=5を維持する。
オールFである。そしてシーケンスSEQ8で新データ
の書替えが完了することから、SEQ9〜10はFLA
=3となり、新データが有効であることを示す。一方、
バックアップバンクのフラグFLBにあっては、最初の
シーケンスSEQ1〜4の間はFLB=オールFと、ク
リア有効状態を示している。シーケンスSEQ5に至る
と、書替えバンクのデータが有効にバックアップバンク
にコピーされることからFLB=5となり、シーケンス
SEQ8までの間、FLB=5を維持する。
【0079】シーケンスSEQ9にあっては、バックア
ップバンクのクリアが行われ、途中でFLBは不定とな
り、その後、FLB=オールFに移行して、シーケンス
SEQ10ではFLB=オールFとなって、クリア有効
状態を表わす。また書替えバンクについては、シーケン
スSEQ1〜4までは旧データが有効であり、シーケン
スSEQ5の途中からクリアにより不定となる。そして
シーケンスSEQ6に入る少し前からシーケンスSEQ
7の初めまでの間、オールFの消去状態にある。シーケ
ンスSEQ7の途中から新データの書替えが行われるこ
とから、新データの格納状態に移行する。更にバックア
ップバンクにあっては、SEQ3〜8までは書替えバン
クの旧データをコピーしたバックアップ状態にある。
ップバンクのクリアが行われ、途中でFLBは不定とな
り、その後、FLB=オールFに移行して、シーケンス
SEQ10ではFLB=オールFとなって、クリア有効
状態を表わす。また書替えバンクについては、シーケン
スSEQ1〜4までは旧データが有効であり、シーケン
スSEQ5の途中からクリアにより不定となる。そして
シーケンスSEQ6に入る少し前からシーケンスSEQ
7の初めまでの間、オールFの消去状態にある。シーケ
ンスSEQ7の途中から新データの書替えが行われるこ
とから、新データの格納状態に移行する。更にバックア
ップバンクにあっては、SEQ3〜8までは書替えバン
クの旧データをコピーしたバックアップ状態にある。
【0080】このような図17におけるシーケンスSE
Q、書替えフラグの状態およびバンク内データの状態か
ら、もし書替え処理の途中で処理を中断しその後再起動
したときの再開処理は、右側に示す処理となる。まずシ
ーケンスSEQ1〜4の間で書替え処理が中断された場
合には、FLA=3、FLB=Fにより、この中断状態
を認識し、このとき書替えバンクに書替え前の旧データ
がそのまま残っていることから、SEQ1から書替えを
再開すればよい。
Q、書替えフラグの状態およびバンク内データの状態か
ら、もし書替え処理の途中で処理を中断しその後再起動
したときの再開処理は、右側に示す処理となる。まずシ
ーケンスSEQ1〜4の間で書替え処理が中断された場
合には、FLA=3、FLB=Fにより、この中断状態
を認識し、このとき書替えバンクに書替え前の旧データ
がそのまま残っていることから、SEQ1から書替えを
再開すればよい。
【0081】またシーケンスSEQ6〜8の間で処理を
中断した場合には、FLA=オールF、FLB=5にあ
り、バックアップバンクにコピーした書替えバンクのデ
ータが有効であることから、シーケンスSEQ5の書替
えバンクのクリアから処理を再開すればよい。また、シ
ーケンスSEQ9〜10の間に書替え処理が中断した場
合、FLA=3でFLB=5またはオールFであり、こ
の場合は書替えバンクに対する新データの書替えは正常
終了していることから、シーケンスSEQのバックアッ
プバンクのクリアから再開すればよい。
中断した場合には、FLA=オールF、FLB=5にあ
り、バックアップバンクにコピーした書替えバンクのデ
ータが有効であることから、シーケンスSEQ5の書替
えバンクのクリアから処理を再開すればよい。また、シ
ーケンスSEQ9〜10の間に書替え処理が中断した場
合、FLA=3でFLB=5またはオールFであり、こ
の場合は書替えバンクに対する新データの書替えは正常
終了していることから、シーケンスSEQのバックアッ
プバンクのクリアから再開すればよい。
【0082】一方、シーケンスSEQ5にあっては、書
替えバンクのFLA=3でバックアップバンクのFLB
=5となり、書替えバンク内のデータが書替え前のもの
か書替え後のものか判別がつかないので、書替え処理の
続行は不能と判断し、リカバリ不能であることをオペレ
ータに通知する。この場合、一旦書替えバンクを出力
し、バックアップバンクの内容を書替えバンクにコピー
して旧データに戻してから、SEQ1から書替えを再開
するようにしてもよい。
替えバンクのFLA=3でバックアップバンクのFLB
=5となり、書替えバンク内のデータが書替え前のもの
か書替え後のものか判別がつかないので、書替え処理の
続行は不能と判断し、リカバリ不能であることをオペレ
ータに通知する。この場合、一旦書替えバンクを出力
し、バックアップバンクの内容を書替えバンクにコピー
して旧データに戻してから、SEQ1から書替えを再開
するようにしてもよい。
【0083】図18は、図17の対応関係に基づいた再
開処理のフローチャートである。書替え途中で処理が中
断し再開した際には、ステップS1で、書替えバンクフ
ラグFLA、バックアップバンクフラグFLBおよび中
断シーケンスSEQを読み込む。ステップS2で、FL
A=3,FLB=F,SEQ=1〜4であれば、ステッ
プS3で、シーケンスSEQ=1から処理を再開する。
ステップS4で、FLA=3,FLB=5,SEQ=5
であれば、ステップS5で、リカバリ不能として例えば
メモリ交換をオペレータに指示する。
開処理のフローチャートである。書替え途中で処理が中
断し再開した際には、ステップS1で、書替えバンクフ
ラグFLA、バックアップバンクフラグFLBおよび中
断シーケンスSEQを読み込む。ステップS2で、FL
A=3,FLB=F,SEQ=1〜4であれば、ステッ
プS3で、シーケンスSEQ=1から処理を再開する。
ステップS4で、FLA=3,FLB=5,SEQ=5
であれば、ステップS5で、リカバリ不能として例えば
メモリ交換をオペレータに指示する。
【0084】ステップS6で、FLA=F,FLB=
5,SEQ=6〜7であれば、ステップS7で、シーケ
ンスSEQ=5から処理を再開する。更にステップS8
で、FLA=3,FLB=5またはオールF,SEQ=
9〜10であれば、ステップS9で、シーケンスSEQ
=9から処理を再開する。更にステップS2〜S8のい
ずれでもなければ、ステップS12で、リカバリ不能を
オペレータに通知する。 5.再開時の初期起動プログラム 本発明の情報処理装置にあっては、装置の電源投入時に
まず初期起動プログラムを走行し、その直後に初期診断
プログラムを走行して運用状態に移行するようになって
いる。このため、フラッシュメモリの書替え中に電源遮
断で処理が中断し、もし初期診断プログラムが書替え処
理により消去状態にあったとすると、フラッシュメモリ
を交換しない限り装置自体が立ち上がらなくなってしま
う。このような状況を回避するため、本発明にあって
は、初期起動プログラムにフラッシュメモリの全バンク
内の書替えフラグを確認し、書替え途中で書替えバンク
が消去状態にあり且つバックアップバンクがコピーを格
納した有効状態にある場合、初期起動プログラムによる
書替えバンクのマッピングアドレスをバックアップバン
クに切り替え、バックアップバンクに残っているプログ
ラムで装置を立ち上げる。
5,SEQ=6〜7であれば、ステップS7で、シーケ
ンスSEQ=5から処理を再開する。更にステップS8
で、FLA=3,FLB=5またはオールF,SEQ=
9〜10であれば、ステップS9で、シーケンスSEQ
=9から処理を再開する。更にステップS2〜S8のい
ずれでもなければ、ステップS12で、リカバリ不能を
オペレータに通知する。 5.再開時の初期起動プログラム 本発明の情報処理装置にあっては、装置の電源投入時に
まず初期起動プログラムを走行し、その直後に初期診断
プログラムを走行して運用状態に移行するようになって
いる。このため、フラッシュメモリの書替え中に電源遮
断で処理が中断し、もし初期診断プログラムが書替え処
理により消去状態にあったとすると、フラッシュメモリ
を交換しない限り装置自体が立ち上がらなくなってしま
う。このような状況を回避するため、本発明にあって
は、初期起動プログラムにフラッシュメモリの全バンク
内の書替えフラグを確認し、書替え途中で書替えバンク
が消去状態にあり且つバックアップバンクがコピーを格
納した有効状態にある場合、初期起動プログラムによる
書替えバンクのマッピングアドレスをバックアップバン
クに切り替え、バックアップバンクに残っているプログ
ラムで装置を立ち上げる。
【0085】図19は、初期起動プログラムに続いて走
行する初期診断プログラムのフラッシュメモリの格納状
態である。初期診断プログラム84−0は、本来、書替
えバンク16−kに格納されており、処理中断時に書替
えバンク16−kは消去状態にあり、バックアップバン
ク16−nに書替えバンク16−aのコピーにより初期
診断プログラム84−1が有効に存在しているとする。
行する初期診断プログラムのフラッシュメモリの格納状
態である。初期診断プログラム84−0は、本来、書替
えバンク16−kに格納されており、処理中断時に書替
えバンク16−kは消去状態にあり、バックアップバン
ク16−nに書替えバンク16−aのコピーにより初期
診断プログラム84−1が有効に存在しているとする。
【0086】このような書替え処理の中断による再開時
の立上げを可能とするため、再開時に起動した初期起動
プログラムは、本来の初期診断プログラム84−0を格
納した書替えバンク16−kに対する初期起動プログラ
ムからのアクセスアドレス84を、アドレス変換機構8
2でバックアップバンク16−nのアドレスに変換し、
バックアップバンク16−nに格納されている初期診断
プログラム84−1をRAM18上に展開し、初期診断
処理を実行することができる。
の立上げを可能とするため、再開時に起動した初期起動
プログラムは、本来の初期診断プログラム84−0を格
納した書替えバンク16−kに対する初期起動プログラ
ムからのアクセスアドレス84を、アドレス変換機構8
2でバックアップバンク16−nのアドレスに変換し、
バックアップバンク16−nに格納されている初期診断
プログラム84−1をRAM18上に展開し、初期診断
処理を実行することができる。
【0087】このようなアドレス変換機構82の機能
は、フラッシュメモリに対する物理アドレスとCPUで
扱う論理アドレスとのマッピングを行うメモリマネージ
メントユニット等のハードウェアを初期起動プログラム
で制御することにより実現できる。即ち、通常はアクセ
スアドレス84を書替えバンク16−kのアドレス0x
FF000000+0*1000*kにマッピングして
いたものが、書替え処理中断後の再開時の初期起動プロ
グラムからのアクセスアドレス84に対してはバックア
ップバンク16−nのアドレス0xFF000000+
0*1000*nに変換する。
は、フラッシュメモリに対する物理アドレスとCPUで
扱う論理アドレスとのマッピングを行うメモリマネージ
メントユニット等のハードウェアを初期起動プログラム
で制御することにより実現できる。即ち、通常はアクセ
スアドレス84を書替えバンク16−kのアドレス0x
FF000000+0*1000*kにマッピングして
いたものが、書替え処理中断後の再開時の初期起動プロ
グラムからのアクセスアドレス84に対してはバックア
ップバンク16−nのアドレス0xFF000000+
0*1000*nに変換する。
【0088】このような初期起動プログラムによる初期
診断プログラムの正常立上げを可能とするため、フラッ
シュメモリ16の任意のバンクに初期起動プログラムが
格納されている場合には、初期起動プログラムを格納し
たバンクは書替えプログラムによる書替えを禁止する必
要がある。また図19に示すようなマッピングアドレス
のアドレス変換機構82を初期起動プログラムに持たせ
た場合、書替え中断後の再開処理で起動した書替えプロ
グラムによる再開処理において、図17のシーケンスS
EQ5から書替え処理を再開する場合には、アクセスア
ドレスをバックアップバンクに変換しているアドレス変
換機能を元に戻した後にシーケンスSEQ5からの書替
え再開処理を行う必要がある。
診断プログラムの正常立上げを可能とするため、フラッ
シュメモリ16の任意のバンクに初期起動プログラムが
格納されている場合には、初期起動プログラムを格納し
たバンクは書替えプログラムによる書替えを禁止する必
要がある。また図19に示すようなマッピングアドレス
のアドレス変換機構82を初期起動プログラムに持たせ
た場合、書替え中断後の再開処理で起動した書替えプロ
グラムによる再開処理において、図17のシーケンスS
EQ5から書替え処理を再開する場合には、アクセスア
ドレスをバックアップバンクに変換しているアドレス変
換機能を元に戻した後にシーケンスSEQ5からの書替
え再開処理を行う必要がある。
【0089】このように電源投入時に走行する初期起動
プログラムに全バンク内の書替えフラグをチェックし、
もしどこかのバンクが前回の書替え処理の中断で消去状
態にあったならば、消去状態にある書替えバンクのアド
レスをバックアップバンクのアドレスに交換する機能を
持たせることにより、消去状態にある書替えバンクに再
度、書替え処理が施されて正常なデータ状態に復旧する
まで、バックアップバンクに格納していたデータを使用
して、装置の運用を続行することができる。
プログラムに全バンク内の書替えフラグをチェックし、
もしどこかのバンクが前回の書替え処理の中断で消去状
態にあったならば、消去状態にある書替えバンクのアド
レスをバックアップバンクのアドレスに交換する機能を
持たせることにより、消去状態にある書替えバンクに再
度、書替え処理が施されて正常なデータ状態に復旧する
まで、バックアップバンクに格納していたデータを使用
して、装置の運用を続行することができる。
【0090】図20は、図19のデータ送出状態にある
書替えバンクからバックアップバンクへのアクセスアド
レスの変換を実現する初期起動プログラムの処理フロー
である。まず初期起動プログラムは、ステップS1で、
全バンクの書替えフラグを確認する。続いてステップS
2で、バックアップバンク以外の他の通常バンクの書替
えバンクFLA=3か否かチェックする。
書替えバンクからバックアップバンクへのアクセスアド
レスの変換を実現する初期起動プログラムの処理フロー
である。まず初期起動プログラムは、ステップS1で、
全バンクの書替えフラグを確認する。続いてステップS
2で、バックアップバンク以外の他の通常バンクの書替
えバンクFLA=3か否かチェックする。
【0091】全てFLA=3であれば、いずれのバンク
もデータの喪失状態にないことから、ステップS9で、
図17に従った再開処理を行う。いずれかのバンクがF
LA=3でなければデータ喪失状態にあることから、ス
テップS3で、バックアップバンクがFLB=5か否か
即ちバックアップが有効に行われているか否かチェック
する。もしバックアップバンクがFLB=5でなけれ
ば、ステップS10でリカバリ不能と判断し、メモリ交
換を指示する。
もデータの喪失状態にないことから、ステップS9で、
図17に従った再開処理を行う。いずれかのバンクがF
LA=3でなければデータ喪失状態にあることから、ス
テップS3で、バックアップバンクがFLB=5か否か
即ちバックアップが有効に行われているか否かチェック
する。もしバックアップバンクがFLB=5でなけれ
ば、ステップS10でリカバリ不能と判断し、メモリ交
換を指示する。
【0092】ステップS3でバックアップバンクがFL
B=5と有効であった場合には、ステップS4で、通常
バンクの1つがFLA=3以外、即ち1つだけがデータ
送出状態にあるか否かチェックする。2つ以上、通常バ
ンクがデータ送出状態のときは、ステップS10で、リ
カバリ不能としてメモリ交換を指示する。通常バンクの
1つのみがデータ送出の状態であるときには、ステップ
S5で、消去状態にあるバンクのアドレスをバックアッ
プバンクのアドレスに切り替えるアドレス変換を行う。
続いてステップS6で、アドレス変換に基づくバックア
ップバンクのアクセスでそのデータをRAM18上にロ
ードして処理を起動する。ステップS7で、起動した処
理が終了したら、ステップS8でアドレスを元に戻し、
ステップS9で書替え処理を再開する。 6.書替えプログラムのバンク格納 図21は、フラッシュメモリ16に対する書替え起動プ
ログラムおよび書替えプログラム86の格納状態を示し
ている。この書替え起動プログラムおよび書替えプログ
ラム86は、例えばオペレータからのコマンドを処理す
る他のコマンド処理プログラム88−1,88−2の一
部であり、全体を1つの制御モジュールとしてフラッシ
ュメモリ16に格納している。
B=5と有効であった場合には、ステップS4で、通常
バンクの1つがFLA=3以外、即ち1つだけがデータ
送出状態にあるか否かチェックする。2つ以上、通常バ
ンクがデータ送出状態のときは、ステップS10で、リ
カバリ不能としてメモリ交換を指示する。通常バンクの
1つのみがデータ送出の状態であるときには、ステップ
S5で、消去状態にあるバンクのアドレスをバックアッ
プバンクのアドレスに切り替えるアドレス変換を行う。
続いてステップS6で、アドレス変換に基づくバックア
ップバンクのアクセスでそのデータをRAM18上にロ
ードして処理を起動する。ステップS7で、起動した処
理が終了したら、ステップS8でアドレスを元に戻し、
ステップS9で書替え処理を再開する。 6.書替えプログラムのバンク格納 図21は、フラッシュメモリ16に対する書替え起動プ
ログラムおよび書替えプログラム86の格納状態を示し
ている。この書替え起動プログラムおよび書替えプログ
ラム86は、例えばオペレータからのコマンドを処理す
る他のコマンド処理プログラム88−1,88−2の一
部であり、全体を1つの制御モジュールとしてフラッシ
ュメモリ16に格納している。
【0093】この制御モジュールはフラッシュメモリ1
6の1バンクのサイズを越える大きさを持っており、こ
のため、バンク16−k,16−(k+1)に制御モジ
ュールを格納した場合、その中の書替え起動プログラム
および書替えプログラム86の部分がバンク境界90に
入る場合がある。このように書替え起動プログラムおよ
び書替えプログラムが2つのバンク16−k,16−
(k+1)に跨がる形で制御モジュールが作成されてい
ると、例えばバンク16−kの書替えが電源遮断等によ
り中断したとすると、次の立上げ時に書替え起動プログ
ラムおよび書替えプログラム86は2バンクに亘るため
に、新旧の版数部分を混在して持つこととなり、書替え
起動プログラムおよび書替えプログラム86を保証でき
ない。
6の1バンクのサイズを越える大きさを持っており、こ
のため、バンク16−k,16−(k+1)に制御モジ
ュールを格納した場合、その中の書替え起動プログラム
および書替えプログラム86の部分がバンク境界90に
入る場合がある。このように書替え起動プログラムおよ
び書替えプログラムが2つのバンク16−k,16−
(k+1)に跨がる形で制御モジュールが作成されてい
ると、例えばバンク16−kの書替えが電源遮断等によ
り中断したとすると、次の立上げ時に書替え起動プログ
ラムおよび書替えプログラム86は2バンクに亘るため
に、新旧の版数部分を混在して持つこととなり、書替え
起動プログラムおよび書替えプログラム86を保証でき
ない。
【0094】そこで本発明にあっては、図22に示すよ
うに、フラッシュメモリ16の書替えに関連するプログ
ラム、即ち書替え起動プログラムおよび書替えプログラ
ム86は1バンク内に収めるように制御モジュールを作
成する。このような制御モジュールの作成により、書替
え起動プログラムおよび書替えプログラム自身の書替え
処理の途中で電源遮断等の理由で異常終了しても、再書
込み処理を行うことで回復可能として、書替えプログラ
ムの処理を保証することができる。
うに、フラッシュメモリ16の書替えに関連するプログ
ラム、即ち書替え起動プログラムおよび書替えプログラ
ム86は1バンク内に収めるように制御モジュールを作
成する。このような制御モジュールの作成により、書替
え起動プログラムおよび書替えプログラム自身の書替え
処理の途中で電源遮断等の理由で異常終了しても、再書
込み処理を行うことで回復可能として、書替えプログラ
ムの処理を保証することができる。
【0095】尚、上記の実施例は、バンク単位の書替え
を行う不揮発性メモリとしてフラッシュメモリを例にと
るものであったが、本発明はこれに限定されず、同様な
バンク単位の書替えを必要とする適宜のメモリについ
て、そのまま適用できる。また本発明は、実施例に示し
た数値による限定は受けない。
を行う不揮発性メモリとしてフラッシュメモリを例にと
るものであったが、本発明はこれに限定されず、同様な
バンク単位の書替えを必要とする適宜のメモリについ
て、そのまま適用できる。また本発明は、実施例に示し
た数値による限定は受けない。
【0096】
【発明の効果】以上説明してきたように本発明によれ
ば、フラッシュメモリのバンク単位の書替え処理の途中
で処理が中断した場合、再起動時に各バンクのフラグ情
報をチェックすることで書替えバンクおよびバックアッ
プバンクの状態を認識し、各バンクの状態に応じて適切
な書替え処理を最初または途中から再開することで、途
中中断があっても正常に終了させることができる。
ば、フラッシュメモリのバンク単位の書替え処理の途中
で処理が中断した場合、再起動時に各バンクのフラグ情
報をチェックすることで書替えバンクおよびバックアッ
プバンクの状態を認識し、各バンクの状態に応じて適切
な書替え処理を最初または途中から再開することで、途
中中断があっても正常に終了させることができる。
【0097】このため、書替え処理が途中で中断して書
替えバンクのデータが消失してしまっても、可能な限り
書替えバンクのデータをバックアップバンクに基づいて
回復して、フラッシュメモリ書替え時のデータ保証を実
現することができる。また、マルチプロセッサ構成にあ
っては、書替え処理を特定のプロセッサに割り当てた状
態で他のプロセッサによる書替え途中のアクセスを禁止
することで、他のプロセッサのアクセスによる書替え処
理の中断を確実に防止し、マルチプロセッサシステムで
共有メモリとして使用されるフラッシュメモリの書替え
時のデータ保証を実現できる。
替えバンクのデータが消失してしまっても、可能な限り
書替えバンクのデータをバックアップバンクに基づいて
回復して、フラッシュメモリ書替え時のデータ保証を実
現することができる。また、マルチプロセッサ構成にあ
っては、書替え処理を特定のプロセッサに割り当てた状
態で他のプロセッサによる書替え途中のアクセスを禁止
することで、他のプロセッサのアクセスによる書替え処
理の中断を確実に防止し、マルチプロセッサシステムで
共有メモリとして使用されるフラッシュメモリの書替え
時のデータ保証を実現できる。
【図1】本発明の原理説明図
【図2】シングルCPU構成の動作環境のブロック図
【図3】図2の書替え機能を示したブロック図
【図4】図2の書替え処理の説明図
【図5】シングルCPU構成による書替え処理のフロー
チャート
チャート
【図6】バンク全書替えの書替えデータのフォーマット
説明図
説明図
【図7】バンク部分書替えで旧データありの書替えデー
タのフォーマット説明図
タのフォーマット説明図
【図8】バンク部分書替えで旧データなしの書替えデー
タのフォーマット説明図
タのフォーマット説明図
【図9】図6〜図8のフォーマットに従った書替えデー
タ作成処理のフローチャート
タ作成処理のフローチャート
【図10】マルチCPU構成の動作環境のブロック図
【図11】図11の書替え機能を示したブロック図
【図12】図11の書替え処理の説明図
【図13】マルチCPU構成による書替え処理のフロー
チャート
チャート
【図14】マルチCPU構成による他の書替え処理のフ
ローチャート
ローチャート
【図15】フラッシュメモリのバンク内容の説明図
【図16】書替えフラグの状態遷移図
【図17】書替えシーケンス、書替えフラグ及びバンク
内データ状態の対応関係の説明図
内データ状態の対応関係の説明図
【図18】図17の対応関係に基づく再開処理のフロー
チャート
チャート
【図19】初期化プログラムの格納バンクが無効の場合
のアドレス変換による初期化起動処理の説明図
のアドレス変換による初期化起動処理の説明図
【図20】再開処理時の初期起動処理のフローチャート
【図21】書替え起動プログラム及び書替えプログラム
のバンク境界を含んだ格納状態の説明図
のバンク境界を含んだ格納状態の説明図
【図22】書替え起動プログラム及び書替えプログラム
の1バンクに収めた格納状態の説明図
の1バンクに収めた格納状態の説明図
10:筐体
12,12−0〜12−m:CPU(プロセッサ)
14:メモリマッピング機構
16:フラッシュメモリ
16−0〜16−7:バンク
16−k:書替えバンク
16−n:バックアップバンク
18:RAM(ワークメモリ)
20:通信制御ユニット
22:外部インタフェース(RS232C)
24:オペレータ操作端末
26:コマンド処理モジュール
28:書替えプログラム(書替え処理部)
30:オペレータ操作端末ハンドラ
32:コマンド解析部
34:書替え起動プログラム
36−1〜36−m:コマンド処理部
40:プログラム領域
42:書替えデータ
46:CPU間割込みバス
48:修正データ情報フラグ
48a:フラグ設定部
50:フォーマットタイプ
52:版数
54:書替え指定バンク
56:チェックサム
58:書替え個数(書替えバイト数)
60:マスタCPU判別部
62:自己ブランチ又はホルト部
64:バックアップ元バンク番号
66:バンク番号
68:バンク版数
70:書替え回数
72,72−1〜72−n:書替えフラグ
74:モジュール・ヘッダ部
76:データ
78:バリティ
80:ダミー
82:アドレス変換機構
84:アクセスアドレス
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 太田 武夫
神奈川県川崎市中原区上小田中1015番地
富士通株式会社内
(56)参考文献 特開 昭63−116253(JP,A)
特開 平5−81105(JP,A)
特開 平4−293139(JP,A)
特開 平5−210599(JP,A)
(58)調査した分野(Int.Cl.7,DB名)
G06F 12/16
G06F 12/00
G11B 16/00
Claims (19)
- 【請求項1】複数バンクから構成され、バンク単位に書
替え可能なメモリと、 前記複数バンクの内の少なくとも1つを割り当てたバッ
クアップバンクと、 前記メモリの特定のバンクを指定した書替え指示を受け
た際に、書替えバンクのデータを前記バックアップバン
クへコピーした後に、ワークメモリ上に準備した新デー
タを書き込み、該書込み終了後に前記バックアップバン
クをクリアする書替え処理部と、 前記複数のバンク内にデータが有効か無効かを示すフラ
グ情報を設定するフラグ設定部とを設け、 前記書替え処理部及びフラグ設定部の実現は、書替え指
示をプロセッサで認識した際に、前記メモリの特定バン
クに格納された書替え起動プログラムの実行で同じバン
クの書替えプログララムを前記ワークメモリ上にロード
した状態で前記プロセッサにより実行し、 前記書替え処理部は、ワークメモリ上に準備された書替
え用の新データに付加された書替え形式をチェックし、
該書替え形式が書替えバンクの全データの書替えを指示
している場合は、新データをそのまま使用して前記メモ
リのバンク単位の書替え処理を開始し、 前記書替え形式が書替えバンクの一部のデータの書替え
を指示している場合は、書替えバンクの全データを前記
ワークメモリ上にコピーして一部を新データで書き替え
た後に、該書替え後のデータを使用して前記メモリの書
替え処理を開始すし、 前記書替え形式が書替えバンクの一部のデータの書替え
を指示すると共に旧データの有りを指示している場合、
書替えバンクの全データを前記ワークメモリ上にコピー
して旧データをチェックし、旧データが正常な場合に一
部を新データで書き替えたデータを使用して前記メモリ
の書替え処理を開始し、旧データが異常な場合は書替え
処理を異常終了させる ことを特徴とするメモリ書替え装
置。 - 【請求項2】請求項1記載のメモリ書替え装置に於い
て、前記フラグ設定部は、前記バックアップバンクにつ
いては、初期状態又はコピーの消去状態で無効フラグを
セットし、データをコピーしたバックアップ状態で有効
フラグをセットし、前記書替えバンクについては、初期
状態又は消去状態で無効フラグをセットし、データ書込
み状態で有効クラグをセットすることを特徴とするメモ
リ書替え装置。 - 【請求項3】請求項2記載のメモリ書替え装置に於い
て、前記書替え処理部は、書替え開始時に、前記各バン
ク内のフラグ情報をチェックして前記バックアップバン
クを除く全てのバンクが有効であった場合のみ書替え処
理を開始し、いずれかのバンクが無効であった場合は異
常終了とすることを特徴とするメモリ書替え装置。 - 【請求項4】請求項2記載のメモリ書替え装置に於い
て、前記書替え処理部は、書替え開始前に全てのバンク
のフラグ情報をチェックし、書替えバンクが有効でバッ
クアップバンクも有効な場合、前記書替えバンクのデー
タを前記バックアップバンクへコピーした後に新データ
を書き込み、書込み終了後に前記バックアップバンクを
クリアすることを特徴とするメモリ書替え装置。 - 【請求項5】請求項2記載のメモリ書替え装置に於い
て、前記書替え処理部は、書替え開始前に全てのバンク
のフラグ情報をチェックし、書替えバンクが無効でバッ
クアップバンクが有効な場合、前記書替えバンクに新デ
ータを書き込み、書込み終了後に前記バックアップバン
クをクリアすることを特徴とするメモリ書替え装置。 - 【請求項6】請求項2記載のメモリ書替え装置に於い
て、前記書替え処理部は、書替え開始前に全てのバンク
のフラグ情報をチェックし、書替えバンクが有効でバッ
クアップバンクが無効な場合、前記バックアップバンク
をクリアすることを特徴とするメモリ書替え装置。 - 【請求項7】請求項1記載のメモリ書替え装置に於い
て、前記書替え処理部は、前記各バンクのデータ書込
み、コピー、又はクリア後に、バンク内データの検証を
行って正常と確認した後に次の処理に進むことを特徴と
するメモリ書替え装置。 - 【請求項8】請求項1記載のメモリ書替え装置に於い
て、前記書替え処理部は、前記バックアップバンク内に
前記書替えバンクのデータをコピーした際に、バックア
ップ元を示す情報を格納することを特徴とするメモリ書
替え装置。 - 【請求項9】請求項1記載のメモリ書替え装置に於い
て、前記書替え起動プログラム及び書替えプログラム
を、前記メモリの同一バンクに収まるように格納したこ
とを特徴とするメモリ書替え装置。 - 【請求項10】請求項1記載のメモリ書替え装置に於い
て、 前記メモリの複数バンクの内、ある特定のバンクを書替
え禁止バンクとし、該書替え禁止バンクに装置の電源投
入の初期処理を起動する初期起動プログラムを格納し、
装置電源投入時にプロセッサは前記初期起動プログラム
をアクセスして初期処理を開始することを特徴とするメ
モリ書替え装置。 - 【請求項11】請求項10記載のメモリ書替え装置に於
いて、前記プロセッサは、前記初期処理の際に、前記メ
モリの全バンクのフラグ情報をチェックし、前記バック
アップバンクが有効となっていた場合、該バックアップ
バンク内のデータをバックアップ元のバンクに書き戻し
た後、次の処理に進むことを特徴とするメモリ書替え装
置。 - 【請求項12】請求項1記載のメモリ書替え装置に於い
て、前記メモリは、ある特定のバンクに装置の電源投入
時の初期処理を起動する初期起動プログラムを格納して
おり、前記プロセッサは、前記初期処理の際に前記メモ
リの全バンクのフラグ情報をチェックし、前記初期起動
プログラムの格納バンクが無効でバックアップバンクが
有効となっていた場合、前記プロセッサによる前記初期
起動プログラムへのアクセスアドレスを前記バックアッ
プバンクにアドレス変換して該バックアップバンク上の
初期起動プログラムを前記ワークメモリ上にロードした
後に、初期処理を開始することを特徴とするメモリ書替
え装置。 - 【請求項13】請求項1記載のメモリ書替え装置に於い
て、前記書替え処理部は、書替え中は前記メモリに対す
る書替え以外のアクセスを禁止することを特徴とするメ
モリ書替え装置。 - 【請求項14】請求項13記載のメモリ書替え装置に於
いて、前記書替え処理部は、書替え中に他のアクセスに
より起動されるバンクのプログラムを、前記ワークメモ
リにコピーして書替え中の前記メモリに対するアクセス
を禁止することを特徴とするメモリ書替え装置。 - 【請求項15】請求項1記載のメモリ書替え装置に於い
て、複数のプロセッサが前記メモリ及びワークメモリを
共有して動作する場合、書替え処理を実行する特定のプ
ロセッサをメインプロセッサとし、前記メインプロセッ
サは書替え指示を受けた際に、他のプロセッサの前記メ
モリに対するアクセスを禁止した後に書替え処理を開始
することを特徴とするメモリ書替え装置。 - 【請求項16】請求項15記載のメモリ書替え装置に於
いて、前記メインプロセッサは書替え指示を受けた際
に、 前記書替え処理部を実現する前記メモリ上の書替えプロ
グラムを前記ワークメモリ上へコピーし、 該コピー後に他のプロセッサに、前記メモリへアクセス
する際に前記ワークメモリ上の書替えプログラムへジャ
ンプするように指示し、 該指示を受けた他のプロセッサは前記ワークメモリ上の
書替えプログラムへジャンプした後、前記メインプロセ
ッサにジャンプを通知して無限ループに移行し、 前記メインプロセッサは、他の全てのプロセッサが前記
ワークメモリ上の書替えプログラムへジャンプしたこと
を確認した後に、自らも前記書替えプログラムにジャン
プして前記メモリの書替え処理を開始することを特徴と
するメモリ書替え装置。 - 【請求項17】請求項15記載のメモリ書替え装置に於
いて、前記メインプロセッサは書替え指示を受けた際
に、前記書替え処理部を実現する前記メモリ上の書替え
プログラムを前記ワークメモリ上へコピーした後に他の
プロセッサを全てホルトさせ、該ホルト後に前記ワーク
メモリの書替えプロクラムにジャンプして前記メモリの
書替え処理を開始することを特徴とするメモリ書替え装
置。 - 【請求項18】請求項1記載のメモリ書替え装置に於い
て、前記メモリは、各バンクのデータのパリティを同じ
バンク内に保持して該バンク内のみを対象としてデータ
書替えを可能とすることを特徴とするメモリ書替え装
置。 - 【請求項19】請求項1記載のメモリ書替え装置に於い
て、前記バンク単位で書替え可能なメモリは、不揮発性
のフラッシュメモリであることを特徴とするメモリ書替
え装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07282995A JP3364356B2 (ja) | 1995-03-30 | 1995-03-30 | メモリ書替え装置 |
US08/569,944 US5694538A (en) | 1995-03-30 | 1995-12-08 | Memory rewriting apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07282995A JP3364356B2 (ja) | 1995-03-30 | 1995-03-30 | メモリ書替え装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08272698A JPH08272698A (ja) | 1996-10-18 |
JP3364356B2 true JP3364356B2 (ja) | 2003-01-08 |
Family
ID=13500703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07282995A Expired - Fee Related JP3364356B2 (ja) | 1995-03-30 | 1995-03-30 | メモリ書替え装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5694538A (ja) |
JP (1) | JP3364356B2 (ja) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124403A (ja) * | 1996-10-24 | 1998-05-15 | Hitachi Ltd | ブロック消去型フラッシュメモリの書込み方法 |
KR100240572B1 (ko) * | 1996-12-05 | 2000-01-15 | 윤종용 | 프로그램 메모리를 공유하는 멀티 프로세서 시스템 |
JPH1125001A (ja) * | 1997-06-30 | 1999-01-29 | Nec Corp | 不揮発性メモリオーバーライト処理装置 |
JP3070539B2 (ja) * | 1997-09-30 | 2000-07-31 | ソニー株式会社 | 外部記憶装置、データ処理装置及びデータ処理方法 |
JP3271935B2 (ja) * | 1997-10-15 | 2002-04-08 | 松下電工株式会社 | 制御システム |
KR100228717B1 (ko) * | 1997-11-06 | 1999-11-01 | 윤종용 | 레이저 프린터의 전원 오프 대처방법 |
US6040997A (en) * | 1998-03-25 | 2000-03-21 | Lexar Media, Inc. | Flash memory leveling architecture having no external latch |
JP4146006B2 (ja) | 1998-09-28 | 2008-09-03 | 富士通株式会社 | フラッシュメモリを有する電子機器 |
FR2794546B1 (fr) * | 1999-06-03 | 2001-10-05 | Sagem | Procede de telechargement d'un programme dans un equipement |
JP2001051883A (ja) * | 1999-08-12 | 2001-02-23 | Nec Corp | 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置 |
EP1145240A1 (en) | 1999-10-29 | 2001-10-17 | Kabushiki Kaisha Toshiba | Data write control system and method therefor |
US6895479B2 (en) | 2000-11-15 | 2005-05-17 | Texas Instruments Incorporated | Multicore DSP device having shared program memory with conditional write protection |
DE10148047B4 (de) * | 2001-09-28 | 2013-06-27 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein |
US7237071B2 (en) * | 2001-12-20 | 2007-06-26 | Texas Instruments Incorporated | Embedded symmetric multiprocessor system with arbitration control of access to shared resources |
US6725324B2 (en) * | 2002-04-23 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for increasing flash ROM programming performance in a multiple processor computer system |
EP1843358B1 (en) * | 2002-10-02 | 2010-06-16 | Panasonic Corporation | Control method of a non-volatile memory apparatus |
KR100986487B1 (ko) * | 2002-12-18 | 2010-10-08 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 고장 허용 갱신 에이전트를 구비한 모바일 핸드세트 |
JP4701618B2 (ja) * | 2004-02-23 | 2011-06-15 | ソニー株式会社 | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
JP2005258851A (ja) * | 2004-03-12 | 2005-09-22 | Renesas Technology Corp | メモリカード |
TWI254947B (en) * | 2004-03-28 | 2006-05-11 | Mediatek Inc | Data managing method and data access system for storing all management data in a management bank of a non-volatile memory |
DE102005013896B4 (de) * | 2004-03-28 | 2014-07-03 | Mediatek Inc. | Verfahren zur Datenverwaltung und Datenzugriffssystem zum Speichern von allen Verwaltungsdaten in einer Verwaltungsbank eines nicht-flüchtigen Speichers |
US7904895B1 (en) | 2004-04-21 | 2011-03-08 | Hewlett-Packard Develpment Company, L.P. | Firmware update in electronic devices employing update agent in a flash memory card |
JP4480454B2 (ja) | 2004-05-07 | 2010-06-16 | パイオニア株式会社 | メモリ制御装置、車載用機器、メモリ制御方法、メモリ制御プログラムおよび記録媒体 |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
JP3969494B2 (ja) * | 2004-08-31 | 2007-09-05 | 三菱電機株式会社 | 車載電子制御装置 |
KR100703164B1 (ko) * | 2005-07-12 | 2007-04-06 | 삼성전자주식회사 | 데이터 처리장치 및 그 제어방법 |
JP4692231B2 (ja) * | 2005-11-04 | 2011-06-01 | 株式会社デンソー | 車両用の電子制御装置 |
US8209676B2 (en) | 2006-06-08 | 2012-06-26 | Hewlett-Packard Development Company, L.P. | Device management in a network |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE |
US7934050B2 (en) * | 2006-12-07 | 2011-04-26 | Denso Corporation | Microcomputer for flash memory rewriting |
JP4294049B2 (ja) * | 2006-12-21 | 2009-07-08 | リンナイ株式会社 | エネルギー使用量表示装置 |
JP2008176608A (ja) * | 2007-01-19 | 2008-07-31 | Matsushita Electric Ind Co Ltd | データバックアップ装置及びデータバックアップ方法 |
KR100873825B1 (ko) * | 2007-05-02 | 2008-12-15 | 삼성전자주식회사 | 비휘발성 메모리의 멀티 비트 프로그래밍 장치 및 방법 |
EP1988550B1 (fr) * | 2007-05-02 | 2010-08-25 | Stmicroelectronics Sa | Mémoire non volatile à secteurs auxiliaires tournants |
JP4696171B2 (ja) | 2009-05-19 | 2011-06-08 | 富士通株式会社 | 記憶装置、データ保存方法およびデータ保存プログラム |
JP2011129192A (ja) * | 2009-12-16 | 2011-06-30 | Samsung Electronics Co Ltd | 半導体記憶装置 |
FR2988878B1 (fr) * | 2012-04-02 | 2015-01-16 | Morpho | Procede de modification en memoire d'un ensemble de donnees |
KR102227636B1 (ko) * | 2014-12-31 | 2021-03-16 | 삼성디스플레이 주식회사 | 표시 장치용 데이터 저장 장치 및 이의 저장 방법 |
JP6877265B2 (ja) * | 2017-06-27 | 2021-05-26 | ルネサスエレクトロニクス株式会社 | 半導体装置、及びフラッシュメモリ制御方法 |
JP2019040571A (ja) * | 2017-08-29 | 2019-03-14 | オンキヨー株式会社 | 電子機器 |
JP7089423B2 (ja) * | 2018-07-12 | 2022-06-22 | ルネサスエレクトロニクス株式会社 | 情報処理装置及び制御方法 |
US11226909B2 (en) | 2018-08-24 | 2022-01-18 | Rambus Inc. | DRAM interface mode with interruptible internal transfer operation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970008188B1 (ko) * | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
-
1995
- 1995-03-30 JP JP07282995A patent/JP3364356B2/ja not_active Expired - Fee Related
- 1995-12-08 US US08/569,944 patent/US5694538A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08272698A (ja) | 1996-10-18 |
US5694538A (en) | 1997-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3364356B2 (ja) | メモリ書替え装置 | |
JP2914360B2 (ja) | 外部記憶装置及びデータ処理方法 | |
US7313682B2 (en) | Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code | |
JP3233079B2 (ja) | データ処理システム及びデータ処理方法 | |
CN110347414A (zh) | 固件更新方法、装置、设备及计算机可读存储介质 | |
US6883060B1 (en) | Microcomputer provided with flash memory and method of storing program into flash memory | |
JPH08255084A (ja) | Eepromのアップグレード方法 | |
US5829019A (en) | Computer network server backup with posted write cache disk controllers | |
US20040260919A1 (en) | Computer system and method therefor to bootup the system quickly after initialization | |
WO2000019317A1 (en) | Protection of boot block code while allowing write accesses to the boot block | |
US20040153738A1 (en) | Redundancy management method for BIOS, data processing apparatus and storage system for using same | |
CN101872306B (zh) | 一种实现软件更新和软件备份的嵌入式系统及其实现方法 | |
JPH11110218A (ja) | ファームウェア書き換え装置 | |
JP2002342102A (ja) | プログラム更新方法およびプログラム更新方式 | |
JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
JP3620478B2 (ja) | 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法 | |
JP2000293376A (ja) | ブートプログラムの切替回路及び切替方法 | |
JP3790756B2 (ja) | ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法 | |
CN112883384A (zh) | 一种强鲁棒性的嵌入式计算机引导加载程序的保护方法 | |
JP2910745B2 (ja) | 記憶装置及びデータ処理方法 | |
US7849279B2 (en) | Method for the secure updating data areas in non volatile memory, device to perform such a method | |
CN116501354B (zh) | 光纤通道网络节点设备中fpga配置文件安全在线升级方法 | |
JP4165423B2 (ja) | コアi/oカードを実装したシステムボード | |
JP7491765B2 (ja) | ファームウェア更新システムおよびファームウェア更新方法 | |
JP5345655B2 (ja) | 基本入出力プログラムの冗長管理方法及びデータ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020924 |
|
LAPS | Cancellation because of no payment of annual fees |