JPH11272459A - 書換え可能不揮発性メモリの書換え方法及びシステム並びにアプリケ―ション・プログラムの故障回復方法及びシステム - Google Patents

書換え可能不揮発性メモリの書換え方法及びシステム並びにアプリケ―ション・プログラムの故障回復方法及びシステム

Info

Publication number
JPH11272459A
JPH11272459A JP11022452A JP2245299A JPH11272459A JP H11272459 A JPH11272459 A JP H11272459A JP 11022452 A JP11022452 A JP 11022452A JP 2245299 A JP2245299 A JP 2245299A JP H11272459 A JPH11272459 A JP H11272459A
Authority
JP
Japan
Prior art keywords
application program
segment
program
application
nonvolatile memory
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.)
Pending
Application number
JP11022452A
Other languages
English (en)
Inventor
Yahya Hamadani
ハマダニ ヤハヤ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JPH11272459A publication Critical patent/JPH11272459A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G11—INFORMATION STORAGE
    • G11C—STATIC STORES
    • G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70—Masking faults in memories by using spares or by reconfiguring
    • G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/004—Error avoidance
    • G—PHYSICS
    • G11—INFORMATION STORAGE
    • G11C—STATIC STORES
    • G11C16/00—Erasable programmable read-only memories
    • G11C16/02—Erasable programmable read-only memories electrically programmable
    • G11C16/06—Auxiliary circuits, e.g. for writing into memory
    • G11C16/10—Programming or data input circuits
    • G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

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)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 壊れたプログラムの実行を防ぎ、アプリケー
ション実行中に起こる障害から回復させる。 【解決手段】 アプリケーション・プログラムを不揮発
性メモリに書換える機能を持ち、同プログラムをメモリ
の第1セグメントに書込む前に、第1セグメントが“無
効”情報を含むことを示す標識が第2セグメントに書込
まれ、第2セグメントを除く少なくとも第1セグメント
が消去されてそこにプログラムが書込まれる。システム
の障害等により書込みが完了しないと第1セグメントの
先の標識値を変えずに持ち続け、完了すると“有効”に
変更する。続くプログラム実行に当って標識値がチェッ
クされ、無効ならアプリケーション・プログラムに移行
しない。また遅延機能が用意され、仮に標識が有効でプ
ロセス・フローがアプリケーションへ移行しないように
させるコマンド・シグナルを出す猶予期間を供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は 書換え可能不揮発
性メモリにプログラムを格納するところの 方法とコン
ピュータを用いたシステムに関するもので、殊に不揮発
性書換え可能メモリのセグメント中へのプログラムの格
納に関する。
【0002】
【従来の技術】市販のデイジタル・インタフェイス装置
は 標準のインタフェイス装置とRS−232のような標準プ
ロトコルとを用いて ファクシミリ装置と保障電話ユニ
ットの間のインタフェイスを提供している。 パーソナ
ル・コンピュータへのRS−232インタフェイスを持つフ
ァクシミリ装置も 亦市販されている。パーソナル・コ
ンピュータ・メモリカード国際協会(PCMCIA)カードが
コンピュータとモデムとのインタフェイスを提供してい
るけれども、ラップトップ・コンピュータ保障電話ユニ
ットとの間のPCMCIAインタフェイスは 仮に入手の可能
性はあるとしても 通常は入手できない。
【0003】
【発明が解決しようとする課題】しかして本発明者は、
PCMCIAカードの書換えを便利に行なえ 亦PCMCIAカード
に埋め込まれた(即ちユーザにはアクセス出来ない)メモ
リの中に書込まれたアプリケーション・プログラムが
適正に動かないときに 優雅に回復させることが出来る
ような、再構成可能なPCMCIAインタフェイスが存在しな
いことに気付いた。
【0004】プロトコル変換PCMCIAカードは、典型的に
は処望のプロトコル変換操作を実行するプログラムを格
納するために、中に埋め込まれたメモリを有している。
このメモリが埋め込まれていると言うことが、殊にメ
モリがフラッシュメモリでなくPCMCIAカードから取外さ
なければ消去できない場合には、エンド・ユーザと開発
者のいずれにとっても 悩みの種である。 同様にハード
ウェア、ソフトウェア何れの開発者も、メモリに格納さ
れているコードに取って代わって制御を行なうことは困
難だという理由で、埋め込まれたメモリにあるアプリケ
ーション・ソフトウェアの変更は 再構成が難しいこと
に気付いた。
【0005】開発環境にあっては、もしPCMCIAメモリに
格納されたアプリケーション・ソフトウェアが不完全で
あったり欠陥があったりすると システムはハング・ア
ップする可能性がある。システムをリセットするために
は またそうすることでハング・アップの状態を克服す
るためには PCMCIAカードの電力を切って入れなおす。
もし不揮発性メモリのなかのソフトウェアに欠陥がある
ときには、PCMCIAカードの電源を入れ直しても 問題の
解決にはならない可能性がある。 たとえば ソフトウェ
アに欠陥があって ユーザがプロセス・フローに優先し
て制御を実行(たとえばオーバライド命令を発する)する
のを妨げている場合には、ソフトウェアは常にPCMCIAカ
ードをハングアップさせてしまう。さらには 電源再開
後でも システムはブート・プログラムを実行し 更にプ
ロセス・フローをアプリケーション・プログラムに自動
的に移し、そのアプリケーション・プログラムのエラー
はシステムをハングアップさせる。一旦そのカードがハ
ング・アップすると ユーザはPCMCIAカードをコンピュ
ータから取り外しその中に埋め込まれているメモリを再
構成するのを余儀なくさせられるのだが、これは メモ
リがフラッシュ・メモリでなければ、殊更煩わしいこと
である。
【0006】
【課題を解決するための手段】従って 本発明の目的の
1つは、上で述べた現存の方法やシステムの限界を克服
できるような不揮発メモリを書換えるための新規な方法
とシステムを提供する事である。これにはじまるその他
の本発明の諸目的は、システム・オペレータに便利な方
法で不揮発性メモリを書換え プログラム操作中に起こ
るエラーによるシステムのハング・アップを防ぎ かつ
埋め込みソフトウェアー・アプリケーション実行中に起
こる障害から回復させるところの コンピュータを用い
たシステムと方法により達成できる。
【0007】このシステムと方法では、システム・オペ
レータは フラッシュ・メモリのような不揮発性メモリ
の複数のセグメントの一乃至それ以上に格納されるべき
新しいアプリケーションを識別する。 この新アプリケ
ーションをそのメモリの第1セグメントに書込む前に、
第1セグメントは“無効”な情報を含む事を示すような
標識(インジケータ)が メモリの第2セグメントに書
込まれる。そして 第2セグメントを除く 少なくとも第
1セグメントが消去されて後 第1セグメントに新アプ
リケーションが書込まれる。 予見出来ないシステムの
障害(例えば停電)により もしもその書込みが完了し
なかったら 第1セグメントは標識値を変えることなし
に先の標識を保持し続ける。しかし 書込み過程が完了
した場合は コンピュータ・プロセスは書込みが完了し
たと判定し、第1セグメントの標識値を“有効”と示す
値に変える。
【0008】プログラム・プロセス実行の後メモリを用
いる時は メモリの第3セグメントに格納されたブート・
プログラム(kernel)制御プロセッサーにより実行され
る。ブート・プログラムは第一セグメントに記憶された
標識値をチェックし もしも標識がアプリケーション・
プログラムは有効と判定していれば 後で議論するよう
に 既定の遅延の後 第2セグメントにあるアプリケーシ
ョン・プログラムを実行する。 しかし もしも ブート
・プログラムがアプリケーション・プログラムは無効な
データを含むと判定すれば、ブート・プログラムはアプ
リケーション・プログラムを実行せずに プロセス・フ
ローの制御を持続するので システム・ユーザはメモリ
の プログラム書換えを行なうなどの修正の動作を行な
うことが出来る。
【0009】本発明の遅延機能に関しては、もし標識値
は第2セグメントにある新アプリケーションが有効とブ
ート・プロセスが示していても なお且つ 既定の時間に
亙りアプリケーションの実行を待機することである。
この遅延期間は システム・ユーザが プロセス・フロー
のブート・プログラムから新アプリケーションへ移行す
るのを遮って システム・ユーザがシステムの制御を保
持し 必要とあればメモリの内容を変更するような制御
命令をその間に送るような 猶予期間を作り出す。 かく
してこの遅延機能により、新アプリケーションは 第2
セグメントに正しくコピーされたかも知れないけれども
アプリケーション・プログラム自身が不完全か不正確
であるとした状況を避けるものである。 従って このシ
ステムの制御を握る事で ブート・プロセスは システム
・ユーザが新アプリケーションを修正するような修正の
動作とって アプリケーション・プログラムに起因する
問題から回復するのを可能にする。
【0010】
【発明の実施の形態】以下、図を参照しながら発明の詳
細を述べるが、それらの図を通して、殊に図1にある部
分に対応するものについては、それと同じ番号か対応す
る番号を付している。
【0011】まず、図1において、通信システム100
は、液晶表示付きのラップトップ・コンピュータ102、
保障(secure)インターフェイス・カード104、電話機1
06、通信ネットワーク108、保障電話ユニット110、保障
ファクシミリ装置112とからなっている。 コンピュータ
102は、コンピュータ・データを G3プロトコルのよう
なファクシミリ・プロトコルへまたその逆へと変換する
ために、コンピュータ・メモリに格納された WINF
AXソフトウェア等のファクシミリ・ソフトウェアを実
行する プロセッサーを有している。 コンピュータ102
は、データをファクシミリ・フォーマットで 保障イン
ターフェイスカード104へ 供給し、保障インターフェイ
ス・カード104は そのデータをファクシミリ・フォーマ
ットから保障プロトコル・フォーマットへ変換する。
【0012】それに替えて 保障インターフェイス・カ
ード104は コンピュータ102からのソフトウェア・コマ
ンドに応えて、別の異なったプロトコル変換プロセスに
入るかまたは データをただ単純に電話106ヘまわすかの
プロセスを実行する。 またコンピュータ102は、保障イ
ンターフェイスカード104の操作を制御する命令を保障
インターフェイス・カード104へ与える。 この命令は、
例えば 保障インターフェイス・カード104の中の不揮発
性メモリをプログラムし直す命令であっても良い。保障
インターフェイス・カード104は、PCMCIAカード・フォ
ーマットで格納されており、それに替えて バスを介し
てコンピュータのプロセッサーに繋がるサーキットボー
ドとして構成されていても良い。 コンピュータ102は
例えばNEC VERSA 2000C(PC互換)や APPLE POWERBOOK
のような 通常のラップトップ・コンピュータであって
良い。
【0013】電話ユニット106は、種々の通話モード
(即ち 暗号化を行なわない“クリヤー動作”モード
や、色々なレベルで電話がデータの暗号化を行なう“隠
密(covered)動作”モードでの通話)の何れか一つで動
作するように構成されている。電話ユニット106は、例
えばMotorola社製の CIPHERTAC電話機であっても良いし
またこれと同種の電話機(例えば STU III)であって
も良い。 電話ユニット106は、暗号化データまたは(そ
れに替えて もし保障インターフェイスカード104か 電
話ユニット106のいずれも データを暗号化するように構
成されていなかった場合には)暗号化しないデータを、
通信ネットワーク108を介して受信側の電話ユニット110
へ送信する。
【0014】この通信ネットワーク108の例としては、
セルラー(cellular)ネットワーク、公衆電話網(public
switched telephone network) 及びそれらの組合わせが
挙げられる。
【0015】保障電話ユニット110(例えばAT&T社のモ
デル4100)は, 通信ネットワーク108から受信した暗号
化データを解読し その解読したデータを ファクシミリ
・フォーマット(例えばG3またはG4フォーマット)
へ変換した後 非暗号化データを保障ファクシミリ装置1
12へ渡す。 保障ファクシミリ装置112は その非暗号化
データを印字に適したイメージ・データに変換する。
保障ファクシミリ装置112の例としては Ricoh社製のモ
デルSFX3700Mが挙げられる。
【0016】図2は、保障インターフェイス・カード10
4のブロック・ダイアグラムである。
【0017】この保障インターフェイス・カード104は
バス・インターフェイス202、プロセッサー204、揮発性
メモリ206、不揮発性メモリ208、制御回路210、シリア
ル通信コントローラ(SCC)212、アドレス・バス214、デ
ータ・バス216 からなっている。 バス・インターフェ
イス202は、本実施例ではPCMCIAバスとした バス218を
介して コンピュータ102と交信する。 しかし、他のバ
スも同様に用いることが出来て、それらは 汎用シリア
ル・バス(USB), EIA-232, ISDN(ISO 8877), VMEbus、ま
たは I. Wickelgrenによる 「The Facts About "WireFi
re"」と題するIEEESpectrum, Vol.34, Number 4,Pages
19-25所載で、本出願の参照文献ともされている記事で
記述されているところのIEEE 1394 ("WireFire")であ
る。
【0018】バス・インターフェイス202は バス218か
らのデータ検索のタイミングを制御するとともに、保障
インターフェイス・カード104のための たとえばクロッ
ク・シグナルなどのタイミング・シグナルを供給する。
本発明の一実施態様では、バス・インターフェイス202
は Texas Instrument社製 モデルTL16PC564Aのような汎
用非同期式送信機構(universal asynchronous receiver
transmitter, UART)である。 コンピュータ102は バス
・インターフェイス202を介して 保障インターフェイス
・カード104へ電力を供給するが、この電力は他の電源
から供給されてもよい。
【0019】アドレス・バス214は バス・インターフェ
イス202、プロセッサー204、揮発性メモリ206、不揮発
性メモリ208に繋がっていて それらのアドレス間の交信
を担う。 また 制御回路210は アドレス・バス214に繋
がっていて 内部あるいは外部データの動きを管理する
制御信号の交信を行う。 埋め込み(embedded)制御に適
していれば どのプロセッサーでも用いることが出来て
例えばSanta Clara, CaliforniaのIntel社製のモデルSN
80CI88XL20がある。 プロセッサー204は メモリ206、20
8に格納された あるいは外部ソースから プロセッサー2
04へロードされた異なるソフトウェアー・プログラムを
幾つでも実行出来る。 バス・インターフェイス202は、
バス218からのデータを アドレス・バス214やデータ・
バス216のプロトコルに変換する。
【0020】データ・バス216は プロセッサー204、バ
ス・インターフェイス202、揮発性メモリ206、不揮発性
メモリ208、制御回路210を互いに結んでいる。 またSC
C212は データ・バス216と繋がっておりRS−232ポート
(若しくは USB, FireWireを例とするような 上述のイ
ンターフェイス)を通して 電話機106(図1)と交信す
る。 SCC212としては 例えばSanta Clara, California
のAdvanced Micro Device社の製品モデル番号AM85233−
16 seeやドライバー220用のMaxim社の製品 モデル番号A
MAX 207CAGなどがある。
【0021】この実施態様では 不揮発性メモリ208はAM
D製モデル番号AM28FOO2Tのようなフラッシュ・メモリで
ある。しかしながら、他の電気的消去書込み可能ROM(E
EPROM)や書換え可能光メデイアまでも含むような 如何
なるタイプの不揮発性メモリをも使用できる。その態様
の一としては、揮発性メモリ206は 三菱社製のM5M51008
ARV static RAMのような ランダムアクセス・メモリで
ある。 制御回路210は 例えばAltera製の電気的書換え
可能ロジック・デバイス モデル番号EMP7032TC44であっ
ても良い。
【0022】第3図において、不揮発性メモリ208は ブ
ート・セクター(boot sector)302に核(kernel)プログラ
ム307(またはboot program)を、パラメータ・セクタ
ー(parameter sector)304に 標識(indicator)308を、ま
た 保障インターフェイス・カード104による実行にそな
えて アプリケーション・セクター(application secto
r)306に アプリケーション・プログラム(application p
rogram)を有している。 このboot program、標識、アプ
リケーション・プログラムは、保障インターフェイス・
カード104をコンピュータ102から取り外すことなしに
別途プログラム書換えが出来る。
【0023】第3図に示したように、揮発性メモリ(RA
M)206は、プログラム書換えの過程で 不揮発性メモリ2
08の各セクターと交信する。初期パワー・オン、パワー
リセット、パワー再印加の各イベントで、プロセッサー
204はアドレス・バス(図2)を介して ブート・セクタ
ー302のそのイベントに対応した部分をアドレスするこ
とによって ブート・プログラム307を実行し始める。
次にプロセッサーは、保障インターフェイス・カード10
4により実行されているソフトウェアーの動作や状態の
表示となるようなデータ・パラメータが その中に格納
されているところの パラメータ・セクター304にアクセ
スする。
【0024】後で述べられるように パラメータ・セク
ター304に格納されているパラメータは 標識308であっ
て、その値は プロセッサーにより アプリケーション・
セクター306にあるアプリケーション・プログラムが有
効か否かの表示として解釈されることとなる。 プロセ
ッサーが適正に立ち上がって(boot up) アプリケーショ
ン・プログラムは確かに有効なデータを持っていると判
定した後で、アプリケーション・プログラムが プロセ
ッサー204によって実行される。
【0025】この発明の一実施態様では このアプリケ
ーション・プログラムは コンピュータ102と電話機106
との間でやり取りされたデータを変換するプロトコル変
換の仕組みとして働くとしている。しかしながら この
アプリケーション・プログラムは 上のプロトコル変換
操作の代わりの 或いはそれの追加の機能としても働く
ことが出来る。
【0026】この標識308はその中に、原形が損なわれ
た(corrupt)若しくは無効なデータのある時は ある特
定の16進法の値(例えばOXFF)を、有効なデータのある
時は別の16進法の値(例えばOXOI)を格納する。またこ
れに替えて 追加の指示値を用いることも出来る。それ
はアプリケーション・プログラムが1つ以上のエラーを
含むか否かを判定するのに使えるような追加情報(ファ
イルのサイズ、エラー訂正の情報等)を与えるからであ
る。
【0027】不揮発性メモリ208のアプリケーション・
セクター306(あるいは ブート・セクター302)のプロ
グラムの書換えに先立ち、標識308は 無効(invalid)
なデータを表示するようにセットされる。これにより
ブート・プログラム307は、引き続いての立ち上げイベ
ントで 不揮発性メモリ208のプログラム書換えが適正に
終了したか否かを検出することが出来る。もしもこれが
成功裏に終了しているときには、第4図を用いて 次で
説明されるように、標識308は 有効なデータがあると表
示するように設定される。
【0028】図4は アプリケーション・セクター306
(図3)を 新アプリケーション・プログラムで プログ
ラミングする時のプロセス・フローを示すフローチャー
トである。類似のプロセス・フローは 不揮発性メモリ2
08の他のセクターをプログラムするのに使用出来る。
プロセスはステップS1で始まるが、そこでは 無効な
標識に対する値が 不揮発性メモリ208の標識個所308に
書込まれるように プロセッサー204が動作する。この標
識値は プロセッサー204から直接書込まれても、または
プロセッサー204の制御のもとでRAM206(図3)を通し
て行われてもよい。 ステップS1のあと ステップS3
で アプリケーション・セクター306が消去される。これ
に替えて アプリケーション・セクター消去の前に 必要
な場合は後でまた利用出来るように アプリケーション
・セクター306にある旧アプリケーションを RAM206へ移
しておいて、その後で消去することも出来る。 ステッ
プS3のあと ステップS5へ進むが、そこでは プロセ
ッサー204が 指令して、アプリケーション・プログラム
が 例えばRAM206に格納されるか 若しくは外部のソース
(図示なし)から アプリケーション・セクター306へ書
込まれるようにする。かくして ステップS5が終わる
と、アプリケーション・セクター306に格納されていた
前のプログラムは消去されて 新アプリケーション・プ
ログラムに置き換えられる。
【0029】ステップS5の完了したあと ステップS
7へ進むが、そこでは プログラム操作が成功裏に終わ
ったか否かの問い合わせが行われる。ステップS7を行
うことで、アプリケーション・セクター306の アプリケ
ーション・プログラムが有効か否かの情報が得られる。
たとえば 停電その他プログラム途中の中断により ア
プリケーション・ソフトウェアーが アプリケーション
・セクター306へ完全には書込まれなかったり誤ったデ
ータを含んだりして、その結果 アプリケーション・ソ
フトウェアーが アプリケーション・セクター306の中へ
ロードしたいと意図したコンピュータ・コードの完全な
(または正確な)補集合(コンプリメント complement)
を含まないことがあり得るからである。 かくして 若し
もプロセッサー204がプログラム操作が終わっていない
と検知すると アプリケーション・プログラムは無効と
判定される。
【0030】プロセッサーは またファイルのサイズや
エラー訂正情報等をチェックしてもよく、これはアプリ
ケーション・プログラムが適正にメモリの中に格納され
たか否かを判定するための 上に替わる若しくは 補完す
る方法である。 したがってもしもステップS7の問い
に対する答が否定的であれば プロセスは ステップS1
1へ進み、そこでは 標識308の値を変更しないで プロ
グラム操作は存続する。
【0031】しかし もしも ステップS7の問いに対す
る答が肯定的であれば ステップS9へ進み、そこでは
標識308の値が 有効と表すものに変更される。この結果
アプリケーション・プログラムを実行する前に プロセ
ッサー204は 標識の値をチェックすると共に アプリケ
ーション・プログラムが有効なデータを含むか否かを決
めることが出来ることになる。引続いて プロセスは ス
テップS9のプログラム操作から抜け出て プロセスは
終了する。
【0032】図5のフローチャートは、パラメータ・セ
クター304の標識部308の値が、プロセス・フローに、ま
たは アプリケーション・プログラムが実行されるか否
かやプロセス・フロー制御がブート・プログラムに保持
されているか否かに どのように影響するかを示してい
る。 プロセスはステップS21で始まるが、そこでは
立ち上げの条件,すなはち システムをオンにした時、
ハードウェアーやソフトウェアーをリセット状態にした
時などに起こるであろう条件を定義する。 このステッ
プS21のあと ステップS23へ進むが、そこでは プ
ロセッサー204が ブート・セクター302のkernel部307に
あるブート・プログラム(kernel)を実行する。
【0033】このブート・プログラムを実行することで
プロセス・フローの制御をアプリケーション・プログ
ラムに委ねることなしに システムは 構成(configure)
される。 勿論 システムが適正に立ち上がれば、そして
もしプロセス・フローが 多くの場合そうであるように
アプリケーション・プログラムの中のエラーを訂正する
ために中断される(この点は後で議論する)のでなけれ
ば、プロセス・フローは通常アプリケーション・プログ
ラムへ移行する。
【0034】ステップS23のあと ステップS25へ
進むが、そこでは 標識部308の値が有効な情報を示して
いるか否かの問い合わせが行われる。 もしもステップ
S25の問い合わせの答が否定的 (すなはち無効なデー
タがアプリケーション・セクター306にあること)であれ
ば プロセスは ステップS27へ進む。 そのステップ
S27では、アプリケーション・プログラムには 壊れ
たデータがあると判定されているのだから、アプリケー
ション・プログラムへ制御を委ねることなくして プロ
セッサー204の制御は ブート・プログラムによって続行
される。
【0035】アプリケーション・セクター306のプログ
ラム書換えのような修正の動作を行う目的で ユーザが
出すコマンドがプロセッサー204へ送られる迄は、プロ
セス・フローの制御は ブート・プログラムが続ける。
この結果へ向けて ブート・プログラムは コンピュータ
のデイスプレイ上に表示されたメッセージでもって ユ
ーザを促すことが出来る。 そのメッセージとは アプリ
ケーション・プログラムに無効なデータがあるのが検知
されたので、ユーザは アプリケーション・セクター306
のアプリケーション・プログラム書換えるなどの修正の
動作を行わなければならないと言うものである。 ステ
ップS27が終わると、プロセス制御は ステップS2
3のブート・プログラムへ戻るが、そこでは ユーザ・
コマンドがプロセス・フローの向きを変えて 4図に示し
たプロセス・フローを実行して直接抜け出すこと(図示
なし)も出来る。
【0036】もしも、ステップS25の問いに対する答
えが否定的であれば プロセスは ステップS29へ進
み、そこでは 第2の問い すなはち 或る既定の時間が
経過したか否かの問いが行われる。 もしもステップS
7の問いに対する答が否定的であれば プロセスは ステ
ップS33の第3の問いへ進み、その問いの内容は ユー
ザ・コマンドが既定の時間内(例えば5秒内)に受理さ
れたか否かである。もしも 問いに対する答が肯定的で
あれば メモリはステップS35で書換えられてプロセ
スは終了する。しかし 答が否定的であれば プロセスは
既定の時間の過ぎる迄 ステップS29へ戻る。
【0037】この規定の時間の間待機することで オペ
レータにとっては 猶予期間を与えられることとなり、
プロセス・フローがアプリケーション・プログラムへ移
行する前に その既定時間内に修正のアクションをとる
ことが出来ることになる。 このシナリオは 標識がアプ
リケーション・プログラムは有効であることを示してい
るけれども ユーザがアプリケーション・ソフトウェア
ーの中の論理エラーを訂正したいといった修正アクショ
ンを取りたい場合にも 存続する。 かくして 上述のア
プリケーション・ソフトウェアー実行前に 既定の時間
の間待機することは、ユーザがアプリケーション・ソフ
トウェアーの構成に満足しない場合の安全機構として働
く。 もし ステップS29の問いに対して肯定的な答え
が得られると ステップS31へ進み、そこではアプリ
ケーション・セクター306にある新しいアプリケーショ
ン・ソフトウェアーが実行され プロセスは終了する。
【0038】ここで記述されたプロセスは、当面する技
術に熟練した者に理解されるように本明細書の示すとこ
ろによってプログラムした 従来の汎用のマイクロプロ
セッサーを用いても実行出来る。適切なソフトウェアー
符号化も、これまた熟練した者には 明らかなように こ
こに開示するところにより容易に準備されうる。
【0039】本発明は 従って記憶媒体に載せられるコ
ンピュータをもちいた製品を含み、本発明によるプロセ
スを行なう目的で コンピュータをプログラムするのに
用いられる命令も含んでいる。 この記憶媒体としては
フロッピ・デイスク、光デイスク、CD-ROMs、光磁気デ
イスク、ROMs, RAMs, EPROMs、EEPROMs、フラッシュ・
メモリ、磁気または光カード、または 電子命令を記憶
するのに適したいかなるタイプの媒体をも含むが これ
らに限定されるもではない。本発明の教えるところにつ
いては 多くの変更や変形が可能である。従って 併記さ
れるクレイムの視野の範囲内において、 本発明は特定
して記述された以外にも実施され得る事は勿論である。
【0040】
【発明の効果】本発明によれば、システム・オペレータ
に便利な方法で不揮発性メモリを書換えて、プログラム
操作中に起こるエラーによるシステムのハング・アップ
を防ぎ、かつ、埋め込みソフトウェアー・アプリケーシ
ョンの実行中に起こる障害からの回復を図ることができ
る。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る通信システムを示す
ブロック図である。
【図2】図1の通信システムの保障カード示すブロック
図である。
【図3】本発明の メモリと第2図の保障カード間のデ
ータフローを示すブロック図である。
【図4】図2の保障カードの不揮発メモリをプログラム
するためのプログラム操作を示すフローチャートであ
る。
【図5】図2の保障カードの操作を示すフローチャート
である。
【符号の説明】
100 通信システム 102 ラップトップ・コンピュータ 104 保障インターフェイス・カード 106 電話機 108 通信ネットワーク 110 保障電話ユニット 112 保障ファクシミリ装置 202 バス・インターフェイス 204 プロセッサー 206 揮発性メモリ 208 不揮発性メモリ 210 制御回路 212 シリアル通信コントローラ 214 アドレス・バス 216 データ・バス 302 ブート・セクター 307 核プログラム(ブートプログラム) 304 パラメータ・セクター 306 アプリケーション・セクター 308 標識(インジケータ)

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】書換え可能不揮発性メモリに格納するアプ
    リケーション・プログラムを識別するステップと、 標識値を該書換え可能不揮発性メモリの既定の個所に書
    込み、該標識値は該不揮発性メモリのアプリケーション
    個所に含まれるデータが無効なデータであることを表わ
    すステップと、 書換え可能不揮発性メモリの該アプリケーション個所を
    消去するステップと、アプリケーション・プログラムを
    書換え可能不揮発性メモリへ移行するステップと、 アプリケーション・プログラムが 書換え可能不揮発性
    メモリへ完全に書込まれたか否かを判定するステップ
    と、 もし先の判定ステップで アプリケーション・プログラ
    ムが 書換え可能不揮発性メモリへ完全に書込まれたと
    判定されたら 書換え可能不揮発性メモリの標識値を他
    の値に変更するステップとを、少なくとも有する 書換
    え可能不揮発性メモリの書換え方法。
  2. 【請求項2】請求項1に記載の書換え可能不揮発性メモ
    リの書換え方法において、 前記書込みのステップは フラッシュメモリで構成され
    るところの前記書換え可能不揮発性メモリの第一セグメ
    ントへの該標識値の書込み操作を有し、 前記消去のステップは前記フラッシュメモリの第2セグ
    メント消去操作を有し、 また、前記移行のステップは 前記アプリケーション・
    プログラムを前記フラッシュメモリの第2セグメントへ
    移行する操作を有する 書換え可能不揮発性メモリの書
    換え方法。
  3. 【請求項3】請求項1に記載の書換え可能不揮発性メモ
    リの書換え方法において、 前記消去のステップは少なくとも1つの旧アプリケーシ
    ョン・プログラムとブート・プログラムの消去操作を有
    し、 前記移行のステップは少なくとも1つのアプリケーショ
    ン・プログラムと新ブート・プログラムの移行操作を有
    する 書換え可能不揮発性メモリの書換え方法。
  4. 【請求項4】前記消去のステップを行うに先立って旧ア
    プリケーション・プログラムを該アプリケーション個所
    から補助メモリに移行するステップを、更に有する 請
    求項1に記載の書換え可能不揮発性メモリの書換え方
    法。
  5. 【請求項5】前記標識値が該アプリケーション個所は有
    効なデータを含んでいると示しているか否かをか判定す
    るステップと、 もしも 該アプリケーション個所は有効なデータを含ん
    でいると判定されると、アプリケーション・プログラム
    を実行するが、もしも 該アプリケーション個所は有効
    なデータを含んでいないと判定されると、アプリケーシ
    ョン・プログラムを実行しないステップとを、更に有す
    る 請求項1に記載の書換え可能不揮発性メモリの書換
    え方法。
  6. 【請求項6】前記実行のステップを行う前に 既定の時
    間 待機するステップと、 該既定の時間待機している間に 命令信号が出されたか
    否かを判定するステップと、 その命令信号が出されていると判定されると 該アプリ
    ケーション・プログラムを実行しないように保持するス
    テップとを、更に有する 請求項5に記載の書換え可能
    不揮発性メモリの書換え方法。
  7. 【請求項7】前記アプリケーション個所は有効なデータ
    を含んでいないと判定されたときには 該アプリケーシ
    ョン個所は有効なデータを含んでいないことを示すメッ
    セージをデイスプレイ上に表示するステップを、更に有
    する 請求項5に記載の書換え可能不揮発性メモリの書
    換え方法。
  8. 【請求項8】書換え可能不揮発性メモリの或るセグメン
    トに記憶された標識値が、該書換え可能不揮発性メモリ
    の他のセグメントに格納されたアプリケーション・プロ
    グラムに有効なデータを含むことを示しているか否かを
    判定するステップと、 該標識値が 該アプリケーション・プログラムは有効な
    データを含み 成功裏に実行されたかも知れないと表し
    ていれば 既定の時間 待機するステップと、 もし その判定のステップで 該標識値が アプリケーシ
    ョン・プログラムは有効なデータを含むことを示してい
    るときには 該既定時間の後 アプリケーション・プログ
    ラムを実行するが、もしも 該待機のステップの間に プ
    ロセス・フローをアプリケーション・プログラムへ移行
    させないよう命令信号が受信されていれば アプリケー
    ション・プログラムを実行しないステップとを、少なく
    とも有する コンピュータ・システムでのアプリケーシ
    ョン・プログラムの故障回復の方法。
  9. 【請求項9】前記待機ステップを行う前に アプリケー
    ション・プログラムがエラーを含むか判定するステップ
    と、 該アプリケーション・プログラムがエラーを含むと判定
    されたときに 該待機ステップの間に該命令信号を発信
    するステップとを、更に有する 請求項8に記載のコン
    ピュータ・システムでのアプリケーション・プログラム
    の故障回復の方法。
  10. 【請求項10】請求項9に記載のコンピュータ・システ
    ムでのアプリケーション・プログラムの故障回復の方法
    において、 アプリケーション・プログラムがエラーを有することの
    前記判定のステップが、前段で該アプリケーション・プ
    ログラムを実行することで 該アプリケーション・プロ
    グラムにエラーが在るか否かを検知するステップと、 前記発信のステップを行う機会を提供するようにコンピ
    ュータ・システムの再ブートを行うステップとを、有す
    るアプリケーション・プログラムの故障回復の方法。
  11. 【請求項11】請求項8に記載のコンピュータ・システ
    ムでのアプリケーション・プログラムの故障回復の方法
    において、 前記判定のステップはパワー立ち上げに呼応して行われ
    るアプリケーション・プログラムの故障回復の方法。
  12. 【請求項12】アプリケーション・プログラムをその中
    に格納すべく構成された第一セグメントを有すると共に
    アプリケーション・プログラムが有効なデータを含む
    か否かを示す標識値をその中に格納すべく構成された第
    二セグメントを有する書換え可能不揮発性メモリと、 コンピュータ記憶媒体と、不揮発性メモリを書換え ま
    たアプリケーション・プログラムにエラーがあってシス
    テム動作を不断に妨げるような回復不可能なエラーを防
    ぐような そのコンピュータ記憶媒体に埋め込まれたコ
    ンピュータ・プログラムコード機構を含む コンピュー
    タ・プログラム製品とを有し、 該コンピュータ・プログラムコードは、標識値を第二セ
    グメントに書込み この標識値は第一セグメントにある
    データは無効なデータであることを表すべく構成された
    書込み機構と、 該第一セグメントを消去すべく構成された消去機構と、 アプリケーション・プログラムを第一セグメントへ移行
    すべく構成された移行機構と、 アプリケーション・プログラムが 書換え可能不揮発性
    メモリへ完全に書込まれたか否かを判定すべく構成され
    た判定機構と、 もし先の判定ステップで アプリケーション・プログラ
    ムが 書換え可能不揮発性メモリへ完全に書込まれたと
    判定されると標識値を他の値に変更すべく構成された変
    更機構とを有するところの、プロセッサーを用いたシス
    テム。
  13. 【請求項13】請求項12に記載のシステムにおいて、
    前記不揮発性メモリはフラッシュ・メモリを含むシステ
    ム。
  14. 【請求項14】請求項12に記載のシステムにおいて、 前記コンピュータ・プログラム・コードは、 更に該標識値が該第一セグメントに含まれている有効な
    データを示しているか否かを判定すべく構成された今一
    つの判定機構と、 もしも 該今一つの判定機構が 該第一セグメントは有効
    なデータを含むと判定したときには 該アプリケーショ
    ン・プログラムを実行するが、もしも 該第一セグメン
    トが有効なデータを含まない時には 該アプリケーショ
    ン・プログラムを実行しないように構成された実行機構
    とを有するシステム。
  15. 【請求項15】請求項14に記載のシステムにおいて、 前記コンピュータ・プログラムコードが、更に、 前記実行機構が前記アプリケーション・プログラムを実
    行する前に既定時間だけ遅延させるべく構成された遅延
    機構と、 該既定時間の間に 命令信号が発信されたか否かを判定
    すべく構成された第三の判定機構と、 その命令信号が出されたと判定すると 該アプリケーシ
    ョン・プログラムを実行しないでプログラム・フロー制
    御を保持すべく構成された保持機構とを有するシステ
    ム。
  16. 【請求項16】前記今一つの判定機構が該第一セグメン
    トは有効なデータを含まないと判定したとき、該第一セ
    グメントは有効なデータを含まないとの判定が出たとの
    内容のメッセージを表示するデイスプレイを、更に有す
    る 請求項14に記載のシステム。
  17. 【請求項17】アプリケーション・プログラムをその中
    に格納するように構成された第一セグメントを有すると
    共に、該アプリケーション・プログラムが有効なデータ
    を含むか否かを示す標識値を中に格納するように構成さ
    れた第二セグメントを有する書換え可能不揮発性メモリ
    と、 コンピュータ記憶媒体と、 アプリケーション・プログラムにあるエラーから回復を
    図るための そのコンピュータ記憶媒体に埋め込まれた
    コンピュータ・プログラムコード機構とを有し、 該コンピュータ・プログラムコード機構は、 第一セグメントに記憶された標識値がアプリケーション
    ・プログラムは有効なデータを含むと示しているか否か
    を 判定すべく構成された判定機構と、 該アプリケーション・プログラムが有効なデータを含む
    と標識値が示していると判定した後に始まる既定時間を
    以って 該アプリケーション・プログラムを実行する前
    にその既定時間の間待機すべく構成された遅延機構と、 もし 標識値がアプリケーション・プログラムは有効な
    データを含むと示していることが 判定機構により判定
    されたときは 該アプリケーション・プログラムを 該既
    定時間の後 実行するように構成されるが、他方 既定時
    間の間にプログラム・フローをアプリケーション・プロ
    グラムへ移行するのを妨げるところの命令信号が受信さ
    れていれば アプリケーション・プログラムを実行しな
    いように構成された実行機構とを有する、プロセッサー
    を用いたシステム。
  18. 【請求項18】請求項17に記載のシステムにおいて、 前記コンピュータ・プログラムコードが、更に、 アプリケーション・プログラムがエラーを含むか否かを
    判定すべく構成された今一つの判定機構と、 アプリケーション・プログラムがエラーを含むと判定さ
    れたら該既定時間の間に 命令信号が発信すべく構成さ
    れた発信機構とを有するシステム。
  19. 【請求項19】請求項18に記載のシステムにおいて、 更に 前記コンピュータ・プログラムコードが アプリケ
    ーション・プログラムにエラーがあるか否かを検知すべ
    く構成された第三の検知機構を有し、 その検知機構は、 その前の操作でアプリケーション・プログラムを実施し
    ようと試み 該アプリケーション・プログラムにより行
    われる誤動作を観察することにより 該アプリケーショ
    ン・プログラムにエラーがあるか否かを検知すべく構成
    された検知機構と、 該発信ステップを行う機会を与えるためにコンピュータ
    ・システムをリセットすべく構成されたリセット機構と
    を有するシステム。
  20. 【請求項20】書換え可能不揮発性メモリに格納するア
    プリケーション・プログラムを識別する手段と、 標識値は該不揮発性メモリのアプリケーション個所に含
    まれるデータが無効なデータであることを表わすように
    標識値を書換え可能不揮発性メモリの既定の個所に書
    込む手段と、 書換え可能不揮発性メモリの該アプリケーション個所を
    消去する手段と、 アプリケーション・プログラムを書換え可能不揮発性メ
    モリへ移行させる手段と、 アプリケーション・プログラムが 書換え可能不揮発性
    メモリへ完全に書込まれたか否かを判定する手段と、 もし先の判定ステップで アプリケーション・プログラ
    ムが 書換え可能不揮発性メモリへ完全に書込まれたと
    判定されたら 書換え可能不揮発性メモリの標識値を他
    の値に変更する手段とを、 少なくとも有する 書換え可能不揮発性メモリの書換え
    システム。
  21. 【請求項21】書換え可能不揮発性メモリの或るセグメ
    ントに記憶された標識値が 書換え可能不揮発性メモリ
    の他のセグメントに格納されたアプリケーション・プロ
    グラムに有効なデータを含むと示しているか否かを判定
    する手段と、 該標識値が 該アプリケーション・プログラムは有効な
    データを含み 成功裏に実行されたかも知れない表して
    いれば 既定の時間 待機する手段と、 もし その判定ステップで 該標識値が アプリケーショ
    ン・プログラムは有効なデータを含むことを示している
    ときには 該既定時間の後 アプリケーション・プログラ
    ムを実行するが、もしも 該待機ステップの間に プロセ
    ス・フローをアプリケーション・プログラムへ移行させ
    ないよう命令信号が受信されていればアプリケーション
    ・プログラムを実行しない手段とを、 少なくとも有する コンピュータ・システムでのアプリ
    ケーション・プログラムの故障回復のシステム。
JP11022452A 1998-01-30 1999-01-29 書換え可能不揮発性メモリの書換え方法及びシステム並びにアプリケ―ション・プログラムの故障回復方法及びシステム Pending JPH11272459A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/016734 1998-01-30
US09/016,734 US6134628A (en) 1998-01-30 1998-01-30 Method and computer-based system for rewriting a nonvolatile rewritable memory

Publications (1)

Publication Number Publication Date
JPH11272459A true JPH11272459A (ja) 1999-10-08

Family

ID=21778673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11022452A Pending JPH11272459A (ja) 1998-01-30 1999-01-29 書換え可能不揮発性メモリの書換え方法及びシステム並びにアプリケ―ション・プログラムの故障回復方法及びシステム

Country Status (2)

Country Link
US (1) US6134628A (ja)
JP (1) JPH11272459A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149623A (ja) * 2000-11-10 2002-05-24 Sanyo Electric Co Ltd マイクロコンピュータ

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117505A (ja) * 1997-06-17 1999-01-12 Fujitsu Ltd カード型記憶媒体
JP4181688B2 (ja) * 1998-04-09 2008-11-19 キヤノン株式会社 データ通信システム及びデータ通信装置
JP4146006B2 (ja) * 1998-09-28 2008-09-03 富士通株式会社 フラッシュメモリを有する電子機器
US7810152B2 (en) * 2002-05-08 2010-10-05 Broadcom Corporation System and method for securely controlling access to device functions
US6789159B1 (en) * 2002-05-08 2004-09-07 Broadcom Corporation System and method for programming non-volatile memory
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
US6629317B1 (en) * 1999-07-30 2003-09-30 Pitney Bowes Inc. Method for providing for programming flash memory of a mailing apparatus
US20030135744A1 (en) * 2002-01-11 2003-07-17 International Business Machines Corporation Method and system for programming a non-volatile device in a data processing system
US6795872B2 (en) 2002-05-09 2004-09-21 Renesas Technology America, Inc. Maintaining at least partial functionality of a device as defined by a hardware configuration at a USB bus enumeration while the device memory is programmed
EP1376344A3 (en) * 2002-06-17 2005-08-24 Seiko Epson Corporation Apparatus and method of rewriting firmware
US7197583B2 (en) * 2003-01-21 2007-03-27 Zentek Technology Japan, Inc. SDIO controller
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
DE102005018910A1 (de) * 2005-04-22 2006-10-26 Endress + Hauser Gmbh + Co. Kg Verfahren zum Aufrüsten eines mikroprozessorgesteuerten Geräts mit neuem Softwarecode über ein Kommunikationsnetzwerk
US20070277028A1 (en) * 2006-05-26 2007-11-29 Jamey Cates Method and system for recovery from reprogramming failures in nonvolatile memory
US8473923B2 (en) * 2007-09-12 2013-06-25 Sandisk Technologies Inc. Pointers for write abort handling
US7493334B1 (en) 2008-01-17 2009-02-17 International Business Machines Corporation System and method for handling invalid condition of a data element

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4498151A (en) * 1980-04-17 1985-02-05 Texas Instruments Incorporated On board non-volatile memory programming
JP3408552B2 (ja) * 1991-02-11 2003-05-19 インテル・コーポレーション 不揮発性半導体メモリをプログラム及び消去する回路とその方法
US5333300A (en) * 1991-02-11 1994-07-26 Intel Corporation Timing circuitry and method for controlling automated programming and erasing of a non-volatile semiconductor memory
KR100274099B1 (ko) * 1991-08-02 2001-01-15 비센트 비.인그라시아 점진적으로 프로그램가능한 비휘발성 메모리 및 이를 구비한 집적 회로와 비휘발성 메모리 프로그래밍 방법
US5432927A (en) * 1992-06-17 1995-07-11 Eaton Corporation Fail-safe EEPROM based rewritable boot system
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149623A (ja) * 2000-11-10 2002-05-24 Sanyo Electric Co Ltd マイクロコンピュータ

Also Published As

Publication number Publication date
US6134628A (en) 2000-10-17

Similar Documents

Publication Publication Date Title
US6308265B1 (en) Protection of boot block code while allowing write accesses to the boot block
US5748940A (en) Secure updating of non-volatile memory
US7421573B2 (en) Apparatus and method for updating firmware
TW440848B (en) A method and apparatus for hardware block locking in a nonvolatile memory
US6134628A (en) Method and computer-based system for rewriting a nonvolatile rewritable memory
CN109189445B (zh) 一种物联网设备程序升级的方法
US20020002652A1 (en) Method of rewriting program in flash microcomputer
JP3268130B2 (ja) フラッシュeepromを用いたデータ処理装置
JP2003316595A (ja) インストール方法、ファイル更新方法、プログラム及びコンピュータシステム
CN108319520A (zh) 基于安全存储的移动设备备用操作系统
JP2020160747A (ja) 情報処理装置、その制御方法、及びプログラム
US6543008B1 (en) Computer system and program rewriting method
JPH113223A (ja) 情報処理装置及び情報格納方法
JP3385844B2 (ja) 自動販売機
CN121233381A (zh) 服务器的目标系统信息处理方法和电子设备
JPH10307726A (ja) 起動エラー時におけるファームウェアリカバリ方式
JPH113213A (ja) 情報処理システム
JP2000163268A (ja) コンピュータ
JP3012842B1 (ja) ファクシミリ装置
US20080098388A1 (en) Safe Flashing
JP4375857B2 (ja) プログラム再書き込み機能付コンピュータ
JP4076113B2 (ja) 電子制御装置
WO2023035233A1 (en) Cost effective firmware upgrade algorithm for resource constrained microprocessors
JPH10187454A (ja) Bios書き換え方式
US20070277028A1 (en) Method and system for recovery from reprogramming failures in nonvolatile memory

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060523