JP4266839B2 - 統合型の再プログラム可能な、不揮発性メモリ及び統合型プロセッサを有する回路のインサーキット・プログラミング中にエラー回復を行なう方法 - Google Patents

統合型の再プログラム可能な、不揮発性メモリ及び統合型プロセッサを有する回路のインサーキット・プログラミング中にエラー回復を行なう方法 Download PDF

Info

Publication number
JP4266839B2
JP4266839B2 JP2004012001A JP2004012001A JP4266839B2 JP 4266839 B2 JP4266839 B2 JP 4266839B2 JP 2004012001 A JP2004012001 A JP 2004012001A JP 2004012001 A JP2004012001 A JP 2004012001A JP 4266839 B2 JP4266839 B2 JP 4266839B2
Authority
JP
Japan
Prior art keywords
circuit programming
boot
remote host
processor
circuit
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 - Lifetime
Application number
JP2004012001A
Other languages
English (en)
Other versions
JP2004164671A (ja
Inventor
アルバート シー サン
チー エイチ リー
チャン エル チェン
Original Assignee
マクロニクス インターナショナル カンパニー リミテッド
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 マクロニクス インターナショナル カンパニー リミテッド filed Critical マクロニクス インターナショナル カンパニー リミテッド
Priority to JP2004012001A priority Critical patent/JP4266839B2/ja
Publication of JP2004164671A publication Critical patent/JP2004164671A/ja
Application granted granted Critical
Publication of JP4266839B2 publication Critical patent/JP4266839B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、コンピュータシステムにおけるプロセッサによって実行する一連の命令をストアするための不揮発性メモリを有するコンピュータシステムに関し、特に、不揮発性メモリにストアされた一連の命令を更新し、変更するためのインサーキット・プログラミングのための障害の許容技術に関する。
(関連出願のクロスレファレンス)
本願は、合衆国以外の他の国家に対しては出願人Macronix International Co. Ltd.及び合衆国に対してはAlbert C. Sun, Chee H. Lee and Chang L. Chenによって1996年10月28日に出願された"PROCESSOR WITH EMBEDDED IN-CIRCUIT PROGRAM STRUCTURES"の国際出願番号PCT/US96/17302に関連する。本願は、この先の出願をレファレンスによって含む。
更に、本願は、合衆国以外の他の国家に対しては出願人Macronix International Co. Ltd.及び合衆国に対してはAlbert C. Sun, Chee H. Lee and Chang L. Chenによって1997年4月3日に出願された"IN-CIRCUIT PROGRAMMING ARCHITECTURE WITH ROM AND FLASH MEMORY"の国際出願番号PCT/US97/05622に関連する。本願は、この先の出願をレファレンスによって含む。
マイクロ制御装置によって実行されるべき一連の命令をストアするための集積回路に不揮発性メモリのアレイを含む集積回路のマイクロ制御装置が開発されている。一連の命令は、デバイスの製造過程でプログラムされなければならず、更新することができないリードオンリーメモリ(ROM)にストアされる。また、一連の命令は、EPROMアレイにもストアされる。しかし、このアプローチは、デバイスが回路に配置される前にEPROMアレイをプログラムするために、特別のハードウェアを必要とする。他のシステムにおいては、EEPROMメモリが命令をストアするために用いられる。EEPROMは、EPROMより非常に早くプログラムすることができ、素早く変更することができるという利点を有する。他のアプローチにおいて、フラッシュメモリが命令をストアするために用いられる。これは、不揮発性メモリの高密度化及び高スピードの再プログラミングを可能にする。デバイスが再プログラム可能な不揮発性メモリ、例えばEEPROMまたはフラッシュメモリとマイクロ制御装置を結合すると、そのデバイスは、それが回路中にある限り、再プログラムされ、相互作用アルゴリズムに基づいてインサーキット・プログラミングを可能にする。
命令及びデータを遠隔デバイスに相互にダウンロードする能力は、ネットワーク環境において非常に有用である。例えば、会社は、顧客に装置をサービスセンターに運ぶように要求することなく、顧客の装置をサービスすることができる。むしろ、会社は、インターネットや電話線のような通信チャネルを通して顧客の装置のインサーキット・プログラミング能力を用いて、診断機能を実行することができる。このように、ソフトウェアの修正が顧客の装置へダウンロードされ、そしてその装置は修正され、更新されたコードで再イネーブルされる。
インサーキット・プログラミング中に、信頼性が問題となる。インサーキット・プログラミング・プロセスが10分間かかり、その時間中にデータ伝送エラーや記録エラーがあるかもしれない。これらのエラーは、外部世界(ハンドシェーキングコード)との通信を行なうコードがそれ自体インサーキット・プログラミング中に変化するならば、特に問題である。このコードが破損されるなら、インサーキット・プログラミングモジュールがそれ自体をリセットしたり、外部世界と通信したりすることなく残されることができる。
必要とされることは、外部世界と通信するために、たとえインサーキット・プログラミング・プロセスによって用いられるコードが正しくプログラムされなくても、インサーキット・プログラミング中に障害の許容度を与える方法である。
本発明は、インサーキット・プログラミング中に、障害の許容度を与えるための方法及び装置を提供する。本発明は、コンピュータシステムのブートコードの一部がインサーキット・プログラミングから保護されることを確実にすることによって動作する。その結果、コンピュータシステムのブートコードはインサーキット・プログラミング中に破損されることがない。本発明は、インサーキット・プログラミング・プロセスが進行しているとき不完全な値にセットされ、インサーキット・プログラミング・プロセスが終了した後完全な値にセットされる、インサーキット・プログラミング状態を維持する。もし、システムがインサーキット・プログラミング中にリセットされると、システムはブートコードの保護された部分からブートするであろう。さもなければ、システムは、インサーキット・プログラミング・プロセスによってプログラム可能である正規のブートコードをブートするであろう。本発明は、もし、インサーキット・プログラミング・プロセスがうまく終了するのに失敗したら、システムがそれ自体をリセットするウオッチドッグタイマーと共に動作する。
したがって、本発明は、インシステム・プログラミング・プロセスが進行中であることを示して、インサーキット・プログラミング状態を不完全な値にセットするステップ;インサーキット・プログラミング・プロセスを開始するステップ;インサーキット・プログラミング・プロセスが終了したとき、インサーキット・プログラミング・プロセスが完全であることを示して、インサーキット・プログラミング状態を完全な値にセットするステップ;及びシステムの初期化中に、もし、インサーキット・プログラミング状態が完全な値を有するならば、第1のブートコードシーケンスがインサーキット・プログラミング・プロセスによってプログラム可能である第1のブートコードシーケンスを実行し、且つもし、インサーキット・プログラミング状態が不完全な値を有するならば、第2のブートコードシーケンスがインサーキット・プログラミング・プロセスから保護される第2のブートコードシーケンスを実行するステプを有する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与える方法として特徴付けられることができる。
本発明の1つの特徴によれば、インサーキット・プログラミング・プロセスは、インサーキット・プログラミング・プロセスによってプログラムされるコードの一部をテストするステップを含む。
本発明の他の特徴によれば、インサーキット・プログラミング命令の伝送における遅延を検出するために、インサーキット・プログラミング・プロセスがモニターされる。もし、その遅延が特定のタイムアウト値を超えるならば、インサーキット・プログラミング・プロセスは再スタートされる。一つの実施形態においては、モニターは、インサーキット・プログラミング・コードがダウンロードされる遠隔ホストによって行なわれる。他の実施形態においては、モニターは、インサーキット・プログラミング・システムに結合されたウオッチドッグタイマーを用いて行なわれる。
本発明の他の特徴によれば、上述の方法は、遠隔ホストのアドレスをストアするステップを有し、この遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる。
本発明は、プロセッサ;前記プロセッサに結合された第1のブートコードシーケンス;前記プロセッサに結合された第2のブートコードシーケンス;前記プロセッサに結合されたインサーキット・プログラミングの状態インジケータ、前記状態インジケータは、インサーキット・プログラミング中に不完全な値にセットされ、インサーキット・プログラミングが完全になった後、完全な値にセットされる;且つ前記第1及び第2のブートコードシーケンスに結合され、コンピュータシステムの初期化のためのブートコードシーケンスを選択するためのセレクター機構を有し、前記セレクター機構は、もし、インサーキット・プログラミングの状態インジケータが完全な値にセットされるならば、第1のブートコードシーケンスを選択し、もし、インサーキット・プログラミングの状態インジケータが不完全な値にセットされるならば、第2のブートコードシーケンスを選択する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与えるための装置として特徴付けられることができる。
本発明は、遠隔ホストからインサーキット・プログラミング命令の伝送における遅延を検出するために、進行中のインサーキットプログラムをモニターするステップ、及び前記遅延がタイムアウト値を越えたならば、インサーキット・プログラミング・プロセスを再スタートするステップを有する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与えるための方法として特徴付けられることができる。
以下の説明は、この分野の通常の知識を有するものが本発明を作り、使用することができるように示され、特別な応用及びその要件のコンテクストに与えられる。好適な実施形態への種々の変更は、当業者に明らかであろう。また、ここに定義された一般原理は、本発明の精神及び請求の範囲から逸脱することなく他の実施形態及び応用に適用されよう。したがって、本発明は、ここに示された実施形態に限定されることを意図しないが、ここに開示された原理及び特徴と一致する最も広い範囲に及ぶべきである。
図1は、本発明の特徴によるインサーキット・プログラミング用の障害の許容システムの主な機能の幾つかの要素を示す。インサーキット・プログラミング・システムは、不揮発性メモリ100、RAM108、CPU112、及び周辺機器114を含む。インサーキット・プログラミング・システムは、またジャンプブートベクトル116、マルチプレックサ(MUX)110、ICP状態レジスタ118、遠隔ホストアドレスレジスタ120及びICPウオッチドッグ122を含む障害の許容を具現化する要素も含む。
特に、CPU112は、マイクロ制御装置、マイクロプロセッサ、またはメインフレーム計算システムを含む全ての形式の処理システムである。CPU112は、CPU112によって実行されるコード及びデータを含むランダムアクセスメモリであるRAM108に接続される。更に、CPU112は、MUX110を介して不揮発性メモリ100に接続される。
不揮発性メモリ100は、電源がシステムから除かれたとき、持続する全ての形式のメモリで、フラッシュメモリ、EPROM、EEPROM、及びROMメモリを含む。不揮発性メモリ100は、ブートプログラム102、ユーティリティプログラム104、IPCハンドラー106、及びミニブートコード107を含む。ブートプログラム102は、システムのハードウェアやソフトウェア資源をイニシャライズするために、システム・イニシャライゼーション中に実行されるプログラムの集合を含む。ブートプログラム102は、インサーキット・プログラミング・プロセス中に変更されることができるプログラム可能なメモリにストアされる。また、不揮発性メモリ100は、システムの動作中にCPU112によって実行されるプログラムを含むユーティリティプログラム104を含む。また、ユーティリティプログラム104は、インサーキット・プログラミング・プロセスによってプログラムされることができるメモリ内に含まれる。また、不揮発性メモリ100は、システムのインサーキット・プログラミング機能を果たし、インサーキット・プログラミング・プロセスによってプログラムされることができるメモリ内に含まれるICPハンドラー106を含む。
更に、不揮発性メモリ100は、正規のブートプログラムの同じインサーキット・プログラミング・プロセス中に変更されることができない保護されたメモリ内に含まれるミニブートコード107を有する。ミニブートコード107は、ブートプログラム102の同じ機能の多くを行なうシステムの初期化命令の代わりのセットである。しかし、ミニブートコード107は、ブートプログラム102は、潜在的に破損され、使用することができないようにするインサーキット・プログラミング・プロセス中にエラーがあるとき、アクションへ跳ぶのみである。したがって、ミニブートコード107は、正規のブートプログラムの同じインサーキット・プログラミング・プロセス中に変更されることができないメモリにストアされなければならない。本発明の一つの実施形態では、ミニブートコード107は、ブートプログラム102、ユーティリティプログラム104及びICPハンドラー106がプログラム可能なフラッシュメモリにストアされている間、マスクROMメモリにストアされる。
CPU112は、更にインサーキット・プログラミング・プロセス中に障害の許容を容易にするハードウェア要素に接続される。CPU112は、IPC状態レジスタ118からの制御入力ばかりでなく、不揮発性メモリ100及びジャンプブートベクトル116を入力として取りこむMUX110に接続されている。MUX110は、ICP状態レジスタ118の状態に依存して、ジャンプブートベクトル116と不揮発性メモリ100間でCPU112を選択的にスイッチする。もし、ICP状態レジスタ118がダーティであるなら、これは、前のインサーキット・プログラミング動作が完了しなかったことを示しており、CPU112は、システムの初期化中にミニブートコード107に指示するジャンプ命令を入力としてブートベクトル116へ取り込む。一方、ICP状態レジスタ118がクリーンであるなら、これはインサーキット・プログラミング動作が進行中でないことを示し、CPU112は、システムの初期化中に不揮発性メモリ100の最初の位置を入力として取り込む。更に、CPU112は、システムがインサーキット・プログラミング中にリセットされる場合、遠隔ホストアドレスのバックアップコピーを含む遠隔ホストアドレスレジスタ120に接続される。また、CPU112は、読取り/書込みパス130及びリセットライン132を介してICPウオッチドッグ122に接続される。ICPウオッチドッグ122は、整合ロジック128ばかりでなくタイムアウト期間レジスタ126とタイマー124を含む。タイムアウト期間レジスタ126とタイマー124は、読取り/書込みパス130を介してCPU112によってイニシャライズされることができる。タイマー124の値がタイムアウト期間126と一致すると、整合ロジック128は、リセット信号がCPU112へ供給するリセットライン123を通って送られるようにする。一つの実施形態では、障害の許容を与える上述のハードウェア要素は、インサーキット・プログラミング・プロセスから保護されるプログラム可能なメモリ素子を含む。
更に、CPU112は、周辺機器114の左側の二重矢印によって示されているシステムユーザと通信をするために用いられる入出力装置を含む周辺機器114に接続されている。周辺機器114は、周辺機器がインターネット134に結合されるインターフェースも有する。インターネット134は、それ自身遠隔ホスト136、138及び140に接続される。遠隔ホスト138は、インターネットを介してインサーキット・プログラミング・システムへダウンロードされるべき、新しいバージョンのブート及びユーティリティプログラムを含むディスクに接続される。
一般に、インサーキット・プログラミング・プロセスは、以下ように動作する。CPU112は、周辺機器114を介してユーザ144と通信する。ユーザ144は、CPU112がインサーキット・プログラミング・プロセスを始めるICPハンドラー106を実行し始めるようにする。ICPハンドラー106は、周辺機器114を介してインターネット134へ、及びインターネット134を介して遠隔ホスト138へ接続がなされるようにする。その後、遠隔ホスト138は、ディスク142からインターネット134を介して不揮発性メモリ100へデータをダウンローディングし始める。同時に、データ転送が開始され、ICPウオッチドッグ122内でタイムアウト期間が評価された値にセットされ、タイマー124が開始される。
もし、インサーキット・プログラミング・プロセスがスムーズに進行するなら、本発明の障害の許容特徴は作動されない。一方、インサーキット・プログラミング・プロセスに過剰の遅延があると、タイマー124がタイムアウト期間126に最終的に一致し、リセット信号がリセットライン132を介してCPU112へ流れるようにする。これによって、CPU112がブートシーケンスを開始する。もし、システムがインサーキット・プログラミング・プロセス中に再ブートされるなら、ICP状態レジスタ118はダーティ値にセットされる。これによって、MUX110は、CPU112がブートプログラム102の代わりにミニブートコード107からブートするようにするCPU112へジャンプブートベクトル116を向けるようにする。もし、ICP状態118がクリーン値にセットされるなら、これは、インサーキット・プログラミング・プロセスが完全であったことを意味し、MUX110は、CPU112がブートプログラム102からブートするようにする。
ミニブートコード107は、CPUが遠隔ホストアドレスレジスタ120から値を先ず読取ることによってインサーキット・プログラミング・プロセスを再び開始するようにし、そのために、どの遠隔ホストを接続するかを決定する。その後、インサーキット・プログラミング・プロセスが再び開始する。
図2(A)、図2(B)、及び図2(C)は、本発明の特徴による、インサーキット・プログラミング・システムのために障害の許容を与えるステップに含まれる動作のシーケンスを詳細に示すフローチャートである。このフローチャートは5つの欄(カラム)、即ち、ユーザ144、ブートプログラム102、ユーティリティプログラム104、ICPハンドラー106、及び遠隔ホスト138を有する。これらの欄のヘディングの下のボックスは、ユーザ144、ブートプログラム102、ユーティリティプログラム104、ICPハンドラー106、及び遠隔ホスト138の動作をそれぞれ示す。
このシステムは、システムがユーザによって電源が入れられ、又はリセットされるステップ210において開始するか、或いはシステムは、システムがウオッチドッグタイマーによってセルフリセットされるステップ212において開始する。次に、システムは、ステップ214へ進み、そのステップにおいて、システムはICP状態レジスタがダーティ値にセットされているか否かを判断する。もし、ダーティ値にセットされているなら、システムはステップ218へ進む。もし、そうでないなら、システムはステップ216へ進む。
ステップ216では、ICP状態レジスタはクリーンである。したがって、システムは、プログラムメモリのデフォルト位置から第1の命令をフェッチする。その後、システムはステップ220へ進む。ステップ220では、システムは、ブートプログラム102を実行することによって、システムのハードウェア及びソフトウェア資源を初期化する。次に、システムはステップ228へ進む。ステップ228では、システムは、要求されたユーティリティプログラムに対して必要なハードウェアとソフトウェアを割り付ける。次に、システムは、ステップ230へ進む。ステップ230では、システムは、インサーキット・プログラミングが発生すべきであるか否かを決定する。もし、発生すべきでないならは、システムは、ステップ232へ進む。もし、発生すべきならば、システムは、ステップ240へ進む。ステップ232では、インサーキット・プログラミングは、目下のところ必要とされず、システムは、停止するか否かを決定する。もし、そうなら、システムは、終了状態であるステップ234へ進む。もし、そうでないなら、システムは、ステップ222へ進む。ステップ222では、システムは、要求されたユーティリティプログラムを走らせる。その後、システムは、ステップ228へ戻って、要求されるユーティリティプログラムのためのハードウェアとソフトウェアを割り付ける。ステップ228において、システムは、割り付けるべき正しいハードウェアとソフトウェアを決めるために、ユーザ144と相互作用することができることに留意すべきである。
ステップ218では、ICP状態レジスタがシステムブートアップに関してダーティであると判断された。レギュラーシステムのブートアップコードが破損される可能性があるので、システムは、インサーキット・プログラミング・プロセスによって変更されることができる保護されたメモリのデフォルト割付から第1の命令をフェッチする。次に、システムは、ステップ224へ進む。ステップ224では、システムは、保護されたメモリ内の特定のエントリーを指定するブートベクトルへのジャンプ命令を実行する。次に、システムはステップ226へ進む。ステップ226で、システムは、インサーキット・プログラミングのため最小限のシステム資源を初期化するミニブートコード107を実行する。次に、システムはステップ223へ進む。ステップ223では、システムは、遠隔ホストアドレスレジスタ120から遠隔ホストアドレスを再ストアする。次に、システムは、ステップ240へ進む。
ステップ240では、システムは、遠隔ホストとのリンクを開始し、遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる。よって、ステップ242では、遠隔ホスト138はインサーキット・プログラミング・システムとリンクする。次に、システムはステップ244へ進む。ステップ244では、システムは遠隔ホストアドレスを遠隔ホストアドレスバッファ120へストアする。次に、システムは、ステップ246へ進む。ステップ246では、システムは評価されたタイムアウト値をタイムアウト期間レジスタ126へロードする。次に、システムは、ステップ248へ進む。ステップ248で、システムは、ブートベクトルレジスタ116をセットして、ミニブートコード107の開始アドレスを指定する。次に、システムはステップ250へ進む。ステップ250では、システムは、ICP状態レジスタをインサーキット・プログラミングが現在アクティブであることを示す不完全状態へセットする。次に、システムは、ステップ252へ進む。ステップ252では、システムは転送されたバイトの数をゼロにセットする。次に、システムはステップ254へ進む。ステップ254では、システムは、新しいブート及び/又はユーティリティプログラムを不揮発性メモリ100へダウンロードするように続ける。
よって、ステップ255で、遠隔ホスト138は、新しいバージョンのブート及び/又はユーティリティプログラムを供給する。次に、システムはステップ256へ進む。ステップ256では、システムは、ICPプロセスが終了したか否かを判断する。もし、終了していないなら、システムはステップ258へ進む。もし、終了しているなら、システムはステップ264へ進む。ステップ258では、ICPプロセスは停止しないで、システムは、転送されたバイトの数が転送ブロックサイズに等しいか否かを聞く。もし、等しくないなら、システムは、より多くのコードをダウンロードするためにステップ254へ戻る。もし、等しいなら、システムはステップ260へ進む。ステップ260では、システムは、進行しているブロックのインサーキット・プログラミング・コードの転送中に、性能に基づいてタイムアウト値を再計算する。その後、システムはタイマー124がリセットされるステップ262へ進む。次に、システムは転送されたバイトの数がゼロにリセットされるステップ252へ戻る。
ステップ264において、インサーキット・プログラミングのためのデータ転送が完全であり、タイマー124が停止される。次に、システムはステップ266へ進む。ステップ266では、システムはICP状態を完全な値にセットし、インサーキット・プログラミングが完全であることを示す。その後、システムはステップ270へ進む。ステップ270では、インサーキット・プログラミング・プロセスが完全であり、システムはリセットされる。
本発明の1つの特徴によると、インサーキット・プログラミング・プロセスは、タイムアウト期間によって支配される。このタイムアウト期間の間、データの一定量が遠隔ホストからインサーキット・プログラミング・システムへ転送されなければならない。一つの実施形態において、このタイムアウト期間は、遠隔ホストからプロセッサへ2回ダウンロードされ、2つのダウンロード値が互いに比較され、その値がタイムアウト期間として使用される前に、その値が正しくクダウンロードされることを保証する。他の実施形態において、タイムアウト期間はインサーキット・プログラミング・システムに永久にストアされ、ダウンロードされた値が永久にストアされた値と比較され、ダウンロード値が少なくとも永久にストアされた値と同程度に大きいことを保証する。もし、大きくないなら、永久にストアされた値が用いられる。
本発明の好適な実施形態の上記の説明は、説明のみのためになされたものである。それらは、本発明を開示された正確な形状に限定されることを意図しない。
明らかに、多く変形や変更が所謂当業者には明らかであろう。本発明の範囲は、請求項によって定義され、それらの均等物に及ぶことを意図している。
本発明の特徴によるインサーキット・プログラミング用の障害の許容システムの主な機能の幾つかの要素を示す。 本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。 本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。 本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。

Claims (5)

  1. 再プログラム可能な、不揮発性メモリ及びプロセッサを有するインサーキット・プログラミング・コンピュータ・システムのインサーキット・プログラミング中にエラー回復を行なう方法であって、
    前記インサーキット・プログラミング・コンピュータ・システムに接続された遠隔ホストからのコマンドに応答して、前記プロセッサがインサーキット・プログラミング・プロセスを実行して、前記遠隔ホストから前記再プログラム可能な、不揮発性メモリへブートまたはユーティリティプログラムをロードするステップと、
    前記遠隔ホストが前記インサーキット・プログラミング・プロセスをモニタして、前記遠隔ホストからの前記ブートまたはユーティリティプログラムの伝送の遅延を検出するステップと、
    前記遠隔ホストが検出した前記遅延がタイムアウト値を越えたならば、前記インサーキット・プログラミング・コンピュータ・システムは、前記遠隔ホストからの信号に基づいて不揮発性メモリ内の特定のエントリーを指定するジャンプベクトルを用いてジャンプすることにより前記遅延がタイムアウトを越えた時にシステムをブートするためのミニブートコードを実行して遠隔ホストのアドレスを検索し、前記プロセッサを再び初期化し、前記インサーキット・プログラミング・プロセスを再び開始するステップと、
    を有することを特徴とする方法。
  2. 再プログラム可能な、不揮発性メモリ及びプロセッサを有するインサーキット・プログラミング・コンピュータ・システムのインサーキット・プログラミング中にエラー回復を行なう方法であって、
    前記インサーキット・プログラミング・コンピュータ・システムに接続された遠隔ホストからのコマンドに応答して、前記プロセッサがインサーキット・プログラミング・プロセスを実行して、前記遠隔ホストから前記再プログラム可能な、不揮発性メモリへブートまたはユーティリティプログラムをロードするステップと、
    前記プロセッサに接続されたウオッチドッグタイマーが前記インサーキット・プログラミング・プロセスをモニタして、前記遠隔ホストからの前記ブートまたはユーティリティプログラムの伝送の遅延を検出するステップと、
    前記ウオッチドッグタイマーが検出した前記遅延がタイムアウト値を越えたならば、前記インサーキット・プログラミング・コンピュータ・システムは、前記ウオッチドッグタイマーからの信号に基づいて不揮発性メモリ内の特定のエントリーを指定するジャンプベクトルを用いてジャンプすることにより前記遅延がタイムアウトを越えた時にシステムをブートするためのミニブートコードを実行して遠隔ホストのアドレスを検索し、前記プロセッサを再び初期化し、前記インサーキット・プログラミング・プロセスを再び開始するステップと、
    を有することを特徴とする方法。
  3. 前記遠隔ホストは、前記ブートまたはユーティリティプログラムの伝送のためのタイムアウト値を決定するステップを有することを特徴とする請求項1または2に記載の方法。
  4. 前記遠隔ホストから前記プロセッサへのブートまたはユーティリティプログラムをロードする前に、2つのタイムアウト値がロードされ、前記プロセッサが前記2つのタイムアウト値を比較することによって、前記ブートまたはユーティリティプログラムの伝送のためのタイムアウト値が決定されることを特徴とする請求項1または2に記載の方法。
  5. 前記インサーキット・プログラミング・プロセスの実行前、または実行中に、前記プロセッサが初期化を通して持続するメモリにあるインサーキット・プログラミングの状態インジケータを前記インサーキット・プログラム・プロセスが進行中であることを示す不完全な値にセットするステップと、
    前記インサーキット・プログラミング・プロセスが前記ブートまたはユーティリティプログラムを誤りなくロードし終わると、前記プロセッサが前記インサーキット・プログラムミングの状態インジケータを前記インサーキット・プログラミング・プロセスが完全であることを示す完全な値にセットするステップと、
    ブートコードまたはミニブートコードを実行する前の、前記プロセッサの初期化中に、もし、前記インサーキット・プログラミングの状態インジケータが完全な値を有するならば、前記プロセッサが前記インサーキット・プログラミング・プロセスを通してプログラム可能である前記ブートコードのシーケンスを選択するステップを有し、且つ、もし、前記インサーキット・プログラミングの状態インジケータが不完全な値を有するならば、前記プロセッサが前記ミニブートコードのシーケンスを実行するステップを有し、前記ミニブートコードのシーケンスは、前記インサーキット・プログラミング・プロセス中に変更されないように、前記インサーキット・プログラミング・プロセスから保護され、且つ、インサーキット・プログラミングを再び初期化するために代わりの資源を有することを特徴とする請求項1に記載の方法。
JP2004012001A 2004-01-20 2004-01-20 統合型の再プログラム可能な、不揮発性メモリ及び統合型プロセッサを有する回路のインサーキット・プログラミング中にエラー回復を行なう方法 Expired - Lifetime JP4266839B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004012001A JP4266839B2 (ja) 2004-01-20 2004-01-20 統合型の再プログラム可能な、不揮発性メモリ及び統合型プロセッサを有する回路のインサーキット・プログラミング中にエラー回復を行なう方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004012001A JP4266839B2 (ja) 2004-01-20 2004-01-20 統合型の再プログラム可能な、不揮発性メモリ及び統合型プロセッサを有する回路のインサーキット・プログラミング中にエラー回復を行なう方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000506583A Division JP4136309B2 (ja) 1997-08-06 1997-08-06 インサーキット・プログラミングための障害の許容アーキテクチャ

Publications (2)

Publication Number Publication Date
JP2004164671A JP2004164671A (ja) 2004-06-10
JP4266839B2 true JP4266839B2 (ja) 2009-05-20

Family

ID=32821973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004012001A Expired - Lifetime JP4266839B2 (ja) 2004-01-20 2004-01-20 統合型の再プログラム可能な、不揮発性メモリ及び統合型プロセッサを有する回路のインサーキット・プログラミング中にエラー回復を行なう方法

Country Status (1)

Country Link
JP (1) JP4266839B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4757648B2 (ja) 2005-03-03 2011-08-24 日本電気株式会社 処理装置及びその障害復旧方法

Also Published As

Publication number Publication date
JP2004164671A (ja) 2004-06-10

Similar Documents

Publication Publication Date Title
US6282675B1 (en) Fault-tolerant architecture for in-circuit programming
US5987605A (en) Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
EP2638466B1 (en) Software updating process for an embedded device
US9542195B1 (en) Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip
US20040158702A1 (en) Redundancy architecture of computer system using a plurality of BIOS programs
US20180101304A1 (en) Configuration control system and configuration control method
EP1536332B1 (en) Programmable configuration integrated circuit
US20080005454A1 (en) Microcomputer
KR20070077463A (ko) 컴퓨터 시스템 초기화 방법과 초기화 코드 로딩 방법 및dram 디바이스와 이를 포함하는 내장형 시스템
JPH11316687A (ja) 自動リカバリ・システム
JP4136309B2 (ja) インサーキット・プログラミングための障害の許容アーキテクチャ
EP1598747A2 (en) Programmable configuration integrated circuit
EP1536345A2 (en) Programmable configuration integrated circuit
JP4266839B2 (ja) 統合型の再プログラム可能な、不揮発性メモリ及び統合型プロセッサを有する回路のインサーキット・プログラミング中にエラー回復を行なう方法
JP4879124B2 (ja) インサーキット・プログラミングのための障害の許容アーキテクチャ
KR100860402B1 (ko) 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법
JP2007157143A (ja) 処理配列、メモリカード装置、並びに処理配列の動作方法及び製造方法
EP3798831B1 (en) Resilient upgradable boot loader with power reset
TWI726436B (zh) 電腦基本輸入輸出系統bios修復方法及實施該修復方法之電腦系統
JP2018180608A (ja) プログラム実行装置およびプログラム実行方法
JP2009070303A (ja) リセットベクタ消去時プログラム書換え方法
JP2005228225A (ja) メモリカードアダプタ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041018

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050415

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050801

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060118

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060124

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081027

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081114

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081226

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090217

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term