(57)【要約】【課題】  本発明は、コンピュータシステムのインサーキットプログラム中にエラー回復を行う方法を提供する。【解決手段】  遠隔ホストからインサーキット・プログラミング命令の伝送における遅延を検出するために、インサーキット・プログラミング・プロセスをモニタし、もし、遅延がタイムアウト値を越えるならば、コンピュータシステムを再び初期化し、インサーキット・プログラム・プロセスを再開するものである。インサーキット・プログラミング・プロセスのモニタは、遠隔ホストによって行なわれ、遠隔ホストからインサーキットプログラミングコードがダウンロードされる。【選択図】      図１
2004164671.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのインサーキットプログラム中にエラー回復を行なう方法であって、
遠隔ホストからのインサーキット・プログラミング命令の伝送における遅延を検出するために、インサーキット・プログラミング・プロセスをモニタするステップと、
もし、前記遅延がタイムアウト値を越えるならばインサーキット・プログラム・プロセスを再び開始するステップ、
を有することを特徴とする方法。
【請求項２】
もし、前記遅延がタイムアウト値を超えるならば、コンピュータシステムを再び初期化するステップを有することを特徴とする請求項１に記載の方法。
【請求項３】
前記モニタするステップは、遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる遠隔ホストによって行なわれることを特徴とする請求項１に記載の方法。
【請求項４】
前記モニタするステップは、コンピュータシステムに接続されたウオッチドッグタイマーを使用することによって行なわれることを特徴とする請求項１に記載の方法。
【請求項５】
前記コンピュータシステムは、遠隔ホストを介してインサーキット・プログラミング・コードがダウンロードされるリモートホストに接続され、且つ、インサーキット・プログラミング・コードの伝送のためのタイムアウト値を決定するために前記遠隔ホストを用いるステップを有することを特徴とする請求項１に記載の方法。
【請求項６】
インサーキット・プログラミング・コードの伝送のためのタイムアウト値を決定するためにコンピュータシステムを用いるステップを有することを特徴とする請求項１に記載の方法。
【請求項７】
データのプロセッサへの前のダウンロード中に、システム性能に基づいてインサーキット・プログラミング・コードの伝送のためのタイムアウト値を決定するステップを有することを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるプロセッサによって実行する一連の命令をストアするための不揮発性メモリを有するコンピュータシステムに関し、特に、不揮発性メモリにストアされた一連の命令を更新し、変更するためのインサーキット・プログラミングのための障害の許容技術に関する。
【０００２】
（関連出願のクロスレファレンス）
本願は、合衆国以外の他の国家に対しては出願人Macronix International Co. Ltd.及び合衆国に対してはAlbert C. Sun, Chee H. Lee and Chang L. Chenによって１９９６年１０月２８日に出願された"PROCESSOR WITH EMBEDDED IN-CIRCUIT PROGRAM STRUCTURES"の国際出願番号ＰＣＴ／ＵＳ９６／１７３０２に関連する。本願は、この先の出願をレファレンスによって含む。
【０００３】
更に、本願は、合衆国以外の他の国家に対しては出願人Macronix International Co. Ltd.及び合衆国に対してはAlbert C. Sun, Chee H. Lee and Chang L. Chenによって１９９７年４月３日に出願された"IN-CIRCUIT PROGRAMMING ARCHITECTURE WITH ROM AND FLASH MEMORY"の国際出願番号ＰＣＴ／ＵＳ９７／０５６２２に関連する。本願は、この先の出願をレファレンスによって含む。
【背景技術】
【０００４】
マイクロ制御装置によって実行されるべき一連の命令をストアするための集積回路に不揮発性メモリのアレイを含む集積回路のマイクロ制御装置が開発されている。一連の命令は、デバイスの製造過程でプログラムされなければならず、更新することができないリードオンリーメモリ（ＲＯＭ）にストアされる。また、一連の命令は、ＥＰＲＯＭアレイにもストアされる。しかし、このアプローチは、デバイスが回路に配置される前にＥＰＲＯＭアレイをプログラムするために、特別のハードウェアを必要とする。他のシステムにおいては、ＥＥＰＲＯＭメモリが命令をストアするために用いられる。ＥＥＰＲＯＭは、ＥＰＲＯＭより非常に早くプログラムすることができ、素早く変更することができるという利点を有する。他のアプローチにおいて、フラッシュメモリが命令をストアするために用いられる。これは、不揮発性メモリの高密度化及び高スピードの再プログラミングを可能にする。デバイスが再プログラム可能な不揮発性メモリ、例えばＥＥＰＲＯＭまたはフラッシュメモリとマイクロ制御装置を結合すると、そのデバイスは、それが回路中にある限り、再プログラムされ、相互作用アルゴリズムに基づいてインサーキット・プログラミングを可能にする。
【０００５】
命令及びデータを遠隔デバイスに相互にダウンロードする能力は、ネットワーク環境において非常に有用である。例えば、会社は、顧客に装置をサービスセンターに運ぶように要求することなく、顧客の装置をサービスすることができる。むしろ、会社は、インターネットや電話線のような通信チャネルを通して顧客の装置のインサーキット・プログラミング能力を用いて、診断機能を実行することができる。このように、ソフトウェアの修正が顧客の装置へダウンロードされ、そしてその装置は修正され、更新されたコードで再イネーブルされる。
【０００６】
インサーキット・プログラミング中に、信頼性が問題となる。インサーキット・プログラミング・プロセスが１０分間かかり、その時間中にデータ伝送エラーや記録エラーがあるかもしれない。これらのエラーは、外部世界（ハンドシェーキングコード）との通信を行なうコードがそれ自体インサーキット・プログラミング中に変化するならば、特に問題である。このコードが破損されるなら、インサーキット・プログラミングモジュールがそれ自体をリセットしたり、外部世界と通信したりすることなく残されることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
必要とされることは、外部世界と通信するために、たとえインサーキット・プログラミング・プロセスによって用いられるコードが正しくプログラムされなくても、インサーキット・プログラミング中に障害の許容度を与える方法である。
【課題を解決するための手段】
【０００８】
本発明は、インサーキット・プログラミング中に、障害の許容度を与えるための方法及び装置を提供する。本発明は、コンピュータシステムのブートコードの一部がインサーキット・プログラミングから保護されることを確実にすることによって動作する。その結果、コンピュータシステムのブートコードはインサーキット・プログラミング中に破損されることがない。本発明は、インサーキット・プログラミング・プロセスが進行しているとき不完全な値にセットされ、インサーキット・プログラミング・プロセスが終了した後完全な値にセットされる、インサーキット・プログラミング状態を維持する。もし、システムがインサーキット・プログラミング中にリセットされると、システムはブートコードの保護された部分からブートするであろう。さもなければ、システムは、インサーキット・プログラミング・プロセスによってプログラム可能である正規のブートコードをブートするであろう。本発明は、もし、インサーキット・プログラミング・プロセスがうまく終了するのに失敗したら、システムがそれ自体をリセットするウオッチドッグタイマーと共に動作する。
【０００９】
したがって、本発明は、インシステム・プログラミング・プロセスが進行中であることを示して、インサーキット・プログラミング状態を不完全な値にセットするステップ；インサーキット・プログラミング・プロセスを開始するステップ；インサーキット・プログラミング・プロセスが終了したとき、インサーキット・プログラミング・プロセスが完全であることを示して、インサーキット・プログラミング状態を完全な値にセットするステップ；及びシステムの初期化中に、もし、インサーキット・プログラミング状態が完全な値を有するならば、第１のブートコードシーケンスがインサーキット・プログラミング・プロセスによってプログラム可能である第１のブートコードシーケンスを実行し、且つもし、インサーキット・プログラミング状態が不完全な値を有するならば、第２のブートコードシーケンスがインサーキット・プログラミング・プロセスから保護される第２のブートコードシーケンスを実行するステプを有する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与える方法として特徴付けられることができる。
【００１０】
本発明の１つの特徴によれば、インサーキット・プログラミング・プロセスは、インサーキット・プログラミング・プロセスによってプログラムされるコードの一部をテストするステップを含む。
【００１１】
本発明の他の特徴によれば、インサーキット・プログラミング命令の伝送における遅延を検出するために、インサーキット・プログラミング・プロセスがモニターされる。もし、その遅延が特定のタイムアウト値を超えるならば、インサーキット・プログラミング・プロセスは再スタートされる。一つの実施形態においては、モニターは、インサーキット・プログラミング・コードがダウンロードされる遠隔ホストによって行なわれる。他の実施形態においては、モニターは、インサーキット・プログラミング・システムに結合されたウオッチドッグタイマーを用いて行なわれる。
【００１２】
本発明の他の特徴によれば、上述の方法は、遠隔ホストのアドレスをストアするステップを有し、この遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる。
【００１３】
本発明は、プロセッサ；前記プロセッサに結合された第１のブートコードシーケンス；前記プロセッサに結合された第２のブートコードシーケンス；前記プロセッサに結合されたインサーキット・プログラミングの状態インジケータ、前記状態インジケータは、インサーキット・プログラミング中に不完全な値にセットされ、インサーキット・プログラミングが完全になった後、完全な値にセットされる；且つ前記第１及び第２のブートコードシーケンスに結合され、コンピュータシステムの初期化のためのブートコードシーケンスを選択するためのセレクター機構を有し、前記セレクター機構は、もし、インサーキット・プログラミングの状態インジケータが完全な値にセットされるならば、第１のブートコードシーケンスを選択し、もし、インサーキット・プログラミングの状態インジケータが不完全な値にセットされるならば、第２のブートコードシーケンスを選択する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与えるための装置として特徴付けられることができる。
【００１４】
本発明は、遠隔ホストからインサーキット・プログラミング命令の伝送における遅延を検出するために、進行中のインサーキットプログラムをモニターするステップ、及び前記遅延がタイムアウト値を越えたならば、インサーキット・プログラミング・プロセスを再スタートするステップを有する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与えるための方法として特徴付けられることができる。
【発明を実施するための最良の形態】
【００１５】
以下の説明は、この分野の通常の知識を有するものが本発明を作り、使用することができるように示され、特別な応用及びその要件のコンテクストに与えられる。好適な実施形態への種々の変更は、当業者に明らかであろう。また、ここに定義された一般原理は、本発明の精神及び請求の範囲から逸脱することなく他の実施形態及び応用に適用されよう。したがって、本発明は、ここに示された実施形態に限定されることを意図しないが、ここに開示された原理及び特徴と一致する最も広い範囲に及ぶべきである。
【００１６】
図１は、本発明の特徴によるインサーキット・プログラミング用の障害の許容システムの主な機能の幾つかの要素を示す。インサーキット・プログラミング・システムは、不揮発性メモリ１００、ＲＡＭ１０８、ＣＰＵ１１２、及び周辺機器１１４を含む。インサーキット・プログラミング・システムは、またジャンプブートベクトル１１６、マルチプレックサ（ＭＵＸ）１１０、ＩＣＰ状態レジスタ１１８、遠隔ホストアドレスレジスタ１２０及びＩＣＰウオッチドッグ１２２を含む障害の許容を具現化する要素も含む。
【００１７】
特に、ＣＰＵ１１２は、マイクロ制御装置、マイクロプロセッサ、またはメインフレーム計算システムを含む全ての形式の処理システムである。ＣＰＵ１１２は、ＣＰＵ１１２によって実行されるコード及びデータを含むランダムアクセスメモリであるＲＡＭ１０８に接続される。更に、ＣＰＵ１１２は、ＭＵＸ１１０を介して不揮発性メモリ１００に接続される。
【００１８】
不揮発性メモリ１００は、電源がシステムから除かれたとき、持続する全ての形式のメモリで、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びＲＯＭメモリを含む。不揮発性メモリ１００は、ブートプログラム１０２、ユーティリティプログラム１０４、ＩＰＣハンドラー１０６、及びミニブートコード１０７を含む。ブートプログラム１０２は、システムのハードウェアやソフトウェア資源をイニシャライズするために、システム・イニシャライゼーション中に実行されるプログラムの集合を含む。ブートプログラム１０２は、インサーキット・プログラミング・プロセス中に変更されることができるプログラム可能なメモリにストアされる。また、不揮発性メモリ１００は、システムの動作中にＣＰＵ１１２によって実行されるプログラムを含むユーティリティプログラム１０４を含む。また、ユーティリティプログラム１０４は、インサーキット・プログラミング・プロセスによってプログラムされることができるメモリ内に含まれる。また、不揮発性メモリ１００は、システムのインサーキット・プログラミング機能を果たし、インサーキット・プログラミング・プロセスによってプログラムされることができるメモリ内に含まれるＩＣＰハンドラー１０６を含む。
【００１９】
更に、不揮発性メモリ１００は、正規のブートプログラムの同じインサーキット・プログラミング・プロセス中に変更されることができない保護されたメモリ内に含まれるミニブートコード１０７を有する。ミニブートコード１０７は、ブートプログラム１０２の同じ機能の多くを行なうシステムの初期化命令の代わりのセットである。しかし、ミニブートコード１０７は、ブートプログラム１０２は、潜在的に破損され、使用することができないようにするインサーキット・プログラミング・プロセス中にエラーがあるとき、アクションへ跳ぶのみである。したがって、ミニブートコード１０７は、正規のブートプログラムの同じインサーキット・プログラミング・プロセス中に変更されることができないメモリにストアされなければならない。本発明の一つの実施形態では、ミニブートコード１０７は、ブートプログラム１０２、ユーティリティプログラム１０４及びＩＣＰハンドラー１０６がプログラム可能なフラッシュメモリにストアされている間、マスクＲＯＭメモリにストアされる。
【００２０】
ＣＰＵ１１２は、更にインサーキット・プログラミング・プロセス中に障害の許容を容易にするハードウェア要素に接続される。ＣＰＵ１１２は、ＩＰＣ状態レジスタ１１８からの制御入力ばかりでなく、不揮発性メモリ１００及びジャンプブートベクトル１１６を入力として取りこむＭＵＸ１１０に接続されている。ＭＵＸ１１０は、ＩＣＰ状態レジスタ１１８の状態に依存して、ジャンプブートベクトル１１６と不揮発性メモリ１００間でＣＰＵ１１２を選択的にスイッチする。もし、ＩＣＰ状態レジスタ１１８がダーティであるなら、これは、前のインサーキット・プログラミング動作が完了しなかったことを示しており、ＣＰＵ１１２は、システムの初期化中にミニブートコード１０７に指示するジャンプ命令を入力としてブートベクトル１１６へ取り込む。一方、ＩＣＰ状態レジスタ１１８がクリーンであるなら、これはインサーキット・プログラミング動作が進行中でないことを示し、ＣＰＵ１１２は、システムの初期化中に不揮発性メモリ１００の最初の位置を入力として取り込む。更に、ＣＰＵ１１２は、システムがインサーキット・プログラミング中にリセットされる場合、遠隔ホストアドレスのバックアップコピーを含む遠隔ホストアドレスレジスタ１２０に接続される。また、ＣＰＵ１１２は、読取り／書込みパス１３０及びリセットライン１３２を介してＩＣＰウオッチドッグ１２２に接続される。ＩＣＰウオッチドッグ１２２は、整合ロジック１２８ばかりでなくタイムアウト期間レジスタ１２６とタイマー１２４を含む。タイムアウト期間レジスタ１２６とタイマー１２４は、読取り／書込みパス１３０を介してＣＰＵ１１２によってイニシャライズされることができる。タイマー１２４の値がタイムアウト期間１２６と一致すると、整合ロジック１２８は、リセット信号がＣＰＵ１１２へ供給するリセットライン１２３を通って送られるようにする。一つの実施形態では、障害の許容を与える上述のハードウェア要素は、インサーキット・プログラミング・プロセスから保護されるプログラム可能なメモリ素子を含む。
【００２１】
更に、ＣＰＵ１１２は、周辺機器１１４の左側の二重矢印によって示されているシステムユーザと通信をするために用いられる入出力装置を含む周辺機器１１４に接続されている。周辺機器１１４は、周辺機器がインターネット１３４に結合されるインターフェースも有する。インターネット１３４は、それ自身遠隔ホスト１３６、１３８及び１４０に接続される。遠隔ホスト１３８は、インターネットを介してインサーキット・プログラミング・システムへダウンロードされるべき、新しいバージョンのブート及びユーティリティプログラムを含むディスクに接続される。
【００２２】
一般に、インサーキット・プログラミング・プロセスは、以下ように動作する。ＣＰＵ１１２は、周辺機器１１４を介してユーザ１４４と通信する。ユーザ１４４は、ＣＰＵ１１２がインサーキット・プログラミング・プロセスを始めるＩＣＰハンドラー１０６を実行し始めるようにする。ＩＣＰハンドラー１０６は、周辺機器１１４を介してインターネット１３４へ、及びインターネット１３４を介して遠隔ホスト１３８へ接続がなされるようにする。その後、遠隔ホスト１３８は、ディスク１４２からインターネット１３４を介して不揮発性メモリ１００へデータをダウンローディングし始める。同時に、データ転送が開始され、ＩＣＰウオッチドッグ１２２内でタイムアウト期間が評価された値にセットされ、タイマー１２４が開始される。
【００２３】
もし、インサーキット・プログラミング・プロセスがスムーズに進行するなら、本発明の障害の許容特徴は作動されない。一方、インサーキット・プログラミング・プロセスに過剰の遅延があると、タイマー１２４がタイムアウト期間１２６に最終的に一致し、リセット信号がリセットライン１３２を介してＣＰＵ１１２へ流れるようにする。これによって、ＣＰＵ１１２がブートシーケンスを開始する。もし、システムがインサーキット・プログラミング・プロセス中に再ブートされるなら、ＩＣＰ状態レジスタ１１８はダーティ値にセットされる。これによって、ＭＵＸ１１０は、ＣＰＵ１１２がブートプログラム１０２の代わりにミニブートコード１０７からブートするようにするＣＰＵ１１２へジャンプブートベクトル１１６を向けるようにする。もし、ＩＣＰ状態１１８がクリーン値にセットされるなら、これは、インサーキット・プログラミング・プロセスが完全であったことを意味し、ＭＵＸ１１０は、ＣＰＵ１１２がブートプログラム１０２からブートするようにする。
【００２４】
ミニブートコード１０７は、ＣＰＵが遠隔ホストアドレスレジスタ１２０から値を先ず読取ることによってインサーキット・プログラミング・プロセスを再び開始するようにし、そのために、どの遠隔ホストを接続するかを決定する。その後、インサーキット・プログラミング・プロセスが再び開始する。
【００２５】
図２(Ａ)、図２(Ｂ)、及び図２(Ｃ)は、本発明の特徴による、インサーキット・プログラミング・システムのために障害の許容を与えるステップに含まれる動作のシーケンスを詳細に示すフローチャートである。このフローチャートは５つの欄（カラム）、即ち、ユーザ１４４、ブートプログラム１０２、ユーティリティプログラム１０４、ＩＣＰハンドラー１０６、及び遠隔ホスト１３８を有する。これらの欄のヘディングの下のボックスは、ユーザ１４４の動作、ブートプログラム１０２、ユーティリティプログラム１０４、ＩＣＰハンドラー１０６、及び遠隔ホスト１３８をそれぞれ示す。
【００２６】
このシステムは、システムがユーザによって電源が入れられ、又はリセットされるステップ２１０において開始するか、或いはシステムは、システムがウオッチドッグタイマーによってセルフリセットされるステップ２１２において開始する。次に、システムは、ステップ２１４へ進み、そのステップにおいて、システムはＩＣＰ状態レジスタがダーティ値にセットされているか否かを判断する。もし、ダーティ値にセットされているなら、システムはステップ２１８へ進む。もし、そうでないなら、システムはステップ２１６へ進む。
【００２７】
ステップ２１６では、ＩＣＰ状態レジスタはクリーンである。したがって、システムは、プログラムメモリのデフォルト位置から第１の命令をフェッチする。その後、システムはステップ２２０へ進む。ステップ２２０では、システムは、ブートプログラム１０２を実行することによって、システムのハードウェア及びソフトウェア資源を初期化する。次に、システムはステップ２２８へ進む。ステップ２２８では、システムは、要求されたユーティリティプログラムに対して必要なハードウェアとソフトウェアを割り付ける。次に、システムは、ステップ２３０へ進む。ステップ２３０では、システムは、インサーキット・プログラミングが発生すべきであるか否かを決定する。もし、発生すべきでないならは、システムは、ステップ２３２へ進む。もし、発生すべきならば、システムは、ステップ２４０へ進む。ステップ２３２では、インサーキット・プログラミングは、目下のところ必要とされず、システムは、停止するか否かを決定する。もし、そうなら、システムは、終了状態であるステップ２３４へ進む。もし、そうでないなら、システムは、ステップ２２２へ進む。ステップ２２２では、システムは、要求されたユーティリティプログラムを走らせる。その後、システムは、ステップ２２８へ戻って、要求されるユーティリティプログラムのためのハードウェアとソフトウェアを割り付ける。ステップ２２８において、システムは、割り付けるべき正しいハードウェアとソフトウェアを決めるために、ユーザ１４４と相互作用することができることに留意すべきである。
【００２８】
ステップ２１８では、ＩＣＰ状態レジスタがシステムブートアップに関してダーティであると判断された。レギュラーシステムのブートアップコードが破損される可能性があるので、システムは、インサーキット・プログラミング・プロセスによって変更されることができる保護されたメモリのデフォルト割付から第１の命令をフェッチする。次に、システムは、ステップ２２４へ進む。ステップ２２４では、システムは、保護されたメモリ内の特定のエントリーを指定するブートベクトルへのジャンプ命令を実行する。次に、システムはステップ２２６へ進む。ステップ２２６で、システムは、インサーキット・プログラミングのため最小限のシステム資源を初期化するミニブートコード１０７を実行する。次に、システムはステップ２２３へ進む。ステップ２２３では、システムは、遠隔ホストアドレスレジスタ１２０から遠隔ホストアドレスを再ストアする。次に、システムは、ステップ２４０へ進む。
【００２９】
ステップ２４０では、システムは、遠隔ホストとのリンクを開始し、遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる。よって、ステップ２４２では、遠隔ホスト１３８はインサーキット・プログラミング・システムとリンクする。次に、システムはステップ２４４へ進む。ステップ２４４では、システムは遠隔ホストアドレスを遠隔ホストアドレスバッファ１２０へストアする。次に、システムは、ステップ２４６へ進む。ステップ２４６では、システムは評価されたタイムアウト値をタイムアウト期間レジスタ１２６へロードする。次に、システムは、ステップ２４８へ進む。ステップ２４８で、システムは、ブートベクトルレジスタ１１６をセットして、ミニブートコード１０７の開始アドレスを指定する。次に、システムはステップ２５０へ進む。ステップ２５０では、システムは、ＩＣＰ状態レジスタをインサーキット・プログラミングが現在アクティブであることを示す不完全状態へセットする。次に、システムは、ステップ２５２へ進む。ステップ２５２では、システムは転送されたバイトの数をゼロにセットする。次に、システムはステップ２５４へ進む。ステップ２５４では、システムは、新しいブート及び／又はユーティリティプログラムを不揮発性メモリ１００へダウンロードするように続ける。
【００３０】
よって、ステップ２５５で、遠隔ホスト１３８は、新しいバージョンのブート及び／又はユーティリティプログラムを供給する。次に、システムはステップ２５６へ進む。ステップ２５６では、システムは、ＩＣＰプロセスが終了したか否かを判断する。もし、終了していないなら、システムはステップ２５８へ進む。もし、終了しているなら、システムはステップ２６４へ進む。ステップ２５８では、ＩＣＰプロセスは停止しないで、システムは、転送されたバイトの数が転送ブロックサイズに等しいか否かを聞く。もし、等しくないなら、システムは、より多くのコードをダウンロードするためにステップ２５４へ戻る。もし、等しいなら、システムはステップ２６０へ進む。ステップ２６０では、システムは、進行しているブロックのインサーキット・プログラミング・コードの転送中に、性能に基づいてタイムアウト値を再計算する。その後、システムはタイマー１２４がリセットされるステップ２６２へ進む。次に、システムは転送されたバイトの数がゼロにリセットされるステップ２５２へ戻る。
【００３１】
ステップ２６４において、インサーキット・プログラミングのためのデータ転送が完全であり、タイマー１２４が停止される。次に、システムはステップ２６６へ進む。ステップ２６６では、システムはＩＣＰ状態を完全な値にセットし、インサーキット・プログラミングが完全であることを示す。その後、システムはステップ２７０へ進む。ステップ２７０では、インサーキット・プログラミング・プロセスが完全であり、システムはリセットされる。
【００３２】
本発明の１つの特徴によると、インサーキット・プログラミング・プロセスは、タイムアウト期間によって支配される。このタイムアウト期間の間、データの一定量が遠隔ホストからインサーキット・プログラミング・システムへ転送されなければならない。一つの実施形態において、このタイムアウト期間は、遠隔ホストからプロセッサへ２回ダウンロードされ、２つのダウンロード値が互いに比較され、その値がタイムアウト期間として使用される前に、その値が正しくクダウンロードされることを保証する。他の実施形態において、タイムアウト期間はインサーキット・プログラミング・システムに永久にストアされ、ダウンロードされた値が永久にストアされた値と比較され、ダウンロード値が少なくとも永久にストアされた値と同程度に大きいことを保証する。もし、大きくないなら、永久にストアされた値が用いられる。
【００３３】
本発明の好適な実施形態の上記の説明は、説明のみのためになされたものである。それらは、本発明を開示された正確な形状に限定されることを意図しない。
明らかに、多く変形や変更が所謂当業者には明らかであろう。本発明の範囲は、請求項によって定義され、それらの均等物に及ぶことを意図している。
【図面の簡単な説明】
【００３４】
【図１】本発明の特徴によるインサーキット・プログラミング用の障害の許容システムの主な機能の幾つかの要素を示す。
【図２（Ａ）】本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。
【図２（Ｂ）】本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。
【図２（Ｃ）】本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。
【図１】
2004164671.tif 000003
【図２（Ａ）】
2004164671.tif 000004
【図２（Ｂ）】
2004164671.tif 000005
【図２（Ｃ）】
2004164671.tif 000006