【誤訳訂正書】
【提出日】平成19年8月13日(2007.8.13)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】特許請求の範囲
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】  第１のブートコードシーケンスを、再プログラム可能な不揮発性メモリに含み、前記再プログラム可能な不揮発性メモリは、インサーキット・プログラミング・プロセスによって、プログラム可能であり、前記第１のブートコードシーケンスは、システムの初期化資源を有し、且つ、前記インサーキット・プログラミング・プロセスから保護されるメモリに第２のブートコードシーケンスを有し、前記第２のブートコードシーケンスは、データまたは命令をリモートソースから前記再プログラム可能な不揮発性メモリにロードするために、インサーキット・プログラミングのための最小限のシステム資源を初期化するのに十分な、前記第１のブートコードシーケンスにおける前記システムの初期化資源のサブセットを含む、前記再プログラム可能な不揮発性メモリと結合されたプロセッサを含むコンピュータシステムのインサーキット・プログラミング中にエラー回復を行なう方法であって、
前記方法は、
データまたは命令を、前記再プログラム可能な不揮発性メモリにロードするために、前記プロセッサによって、前記インサーキット・プログラミング・プロセスを実行するステップと、
前記プロセッサによって、インサーキット・プログラミング状態を、前記インサーキット・プログラミング・プロセスが進行中であることを示す不完全な値にセットするステップと、
前記インサーキット・プログラミング・プロセスがデータまたは命令をロードするステップを完了したき、前記プロセッサによって、インサーキット・プログラミング状態を、前記インサーキット・プログラミング・プロセスが完了したことを示す完全な値にセットするステップと、
前記インサーキット・プログラミング・プロセスを用いてデータのブロックのダウンロードにおける遅延を検出するために、遠隔ホストまたは前記プロセッサの一方によって、前記インサーキット・プログラミング・プロセスをモニターするステップと、
もし、前記遅延がタイムアウト値を越えたら、前記モニターに応答して、前記プロセッサによって前記コンピュータシステムを再び初期化するステップと、
前記コンピュータシステムを再び初期化する間に、もし、前記インサーキット・プログラミング状態が完全な値を有するなら、マルチプレックサにより前記第１のブートコードシーケンスを選択し、前記プロセッサにより前記第１のブートコードシーケンスを実行するステップであって、前記第１のブートコードシーケンスは、前記インサーキット・プログラミング・プロセスによってプログラム可能であるステップと、且つ、
もし、前記インサーキット・プログラミング状態が不完全な値を有するなら、前記マルチプレックサにより前記第２のブートコードシーケンスを選択し、前記プロセッサにより前記第２のブートコードシーケンスを実行し、且つ、前記インサーキット・プログラミング・プロセスを再び開始させるステップであって、前記第２のブートコードシーケンスは、データまたは命令を前記再プログラム可能な不揮発性メモリロードするために、前記インサーキット・プログラミング・プロセスを再び開始させるステップと、
を有することを特徴とする方法。
【請求項２】  前記インサーキット・プログラミング・プロセスは、コードの一区分を前記再プログラム可能な不揮発性メモリにロードし、且つ、前記コードの一区分がロードされたことを検証するために、前記インサーキット・プログラミング・プロセスによってロードされたコードの一区分をテストするステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】  前記タイムアウト値が前記遠隔ホストから２回ダウンロードされ、タイムアウト値が正しくダウンロードされたことを保証するために、２つの値が互いに比較され、それらが一致していることを検証することを特徴とする請求項１に記載の方法。
【請求項４】  第１のタイムアウト値が遠隔ホストからダウンロードされ、前記第１のタイムアウト値が少なくとも第２のタイムアウト値と同程度に大きいことを保証するために、コンピュータシステムに永久にストアされた第２のタイムアウト値と比較され、もし、同程度に大きくないなら、タイムアウト値として第２のタイムアウトを使用することを特徴とする請求項１に記載の方法。
【請求項５】  第２のブートコードシーケンスを実行するステップは、第２のブートコードシーケンスの開始を指示するブートベクトルへのジャンプ命令を実行するステップを有することを特徴とする請求項１に記載の方法。
【請求項６】  インサーキット・プログラミング状態が前記インサーキット・プログラミング・プロセスから保護されていることを特徴とする請求項１に記載の方法。
【請求項７】  遠隔ホストのアドレスをストアするステップを有し、前記アドレスがインサーキット・プログラミング・プロセスから保護されるように、前記インサーキット・プログラミング・プロセスが前記遠隔ホストからデータをダウンロードし、且つ、
前記第２のブートコードシーケンスにあるインサーキット・プログラミングのための資源が、ストアされた前記アドレスを用いて遠隔ホストとのリンクを開始することを特徴とする請求項１に記載の方法。
【請求項８】  コンピュータシステムのインサーキット・プログラミング中にエラー回復を行なうための装置であって、
再プログラム可能な不揮発性メモリを含むメモリと結合されたプロセッサと、
前記メモリは、前記プロセッサによって実行するために、システムの初期化資源を含む第１のブートコードシーケンスをストアしており、
前記メモリは、前記プロセッサによって実行するために、第２のブートコードシーケンスをストアしており、前記第２のブートコードシーケンスは、前記インサーキット・プログラミングのための最小限のシステム資源を初期化するのに十分な、前記第１のブートコードシーケンスにおける前記システムの初期化資源のサブセット、及びデータまたは命令を前記再プログラム可能な不揮発性メモリにロードするために、インサーキット・プログラミング・プロセスを再び開始させる資源を有し、
前記メモリは、前記プロセッサによって実行するためのインサーキット・プログラミング・シーケンスをストアしており、前記インサーキット・プログラミング・シーケンスは、データまたは命令を前記再プログラム可能な不揮発性メモリにロードするために、インサーキット・プログラミング・プロセスのため前記プロセッサによって実行され、
前記プロセッサに接続されたインサーキット・プログラミング状態インジケータであって、インサーキット・プログラム・シーケンスの実行前または実行中は、前記プロセッサによって不完全な値にセットされ、且つ、前記プロセッサによって前記インサーキット・プログラム・シーケンスの実行の完了を示す完全な値にセットされるインサーキット・プログラミング状態インジケータと、
前記第１のブートコードシーケンスをストアする前記メモリと前記第２のブートコードシーケンスをストアする前記メモリに接続され、コンピュータシステムの初期化のためブートコードシーケンスを選択するためのセレクター機構であって、もし、前記インサーキット・プログラミング状態インジケータが完全な値にセットされているなら、前記第１のブートコードシーケンスを選択し、もし、インサーキット・プログラミング状態インジケータが不完全な値にセットされているなら、前記第２のブートコードシーケンスを選択するためのセレクター機構と、
を有することを特徴とする装置。
【請求項９】  前記第１のブートコードシーケンスと前記第２のブートコードシーケンスは、同じメモリモジュール内に含まれることを特徴とする請求項８記載の装置。
【請求項１０】  前記第１のブートコードシーケンスは、前記インサーキット・プログラミング・プロセスによってプログラム可能であり、前記第２のブートコードシーケンスは、前記インサーキット・プログラミング・プロセスから保護されていることを特徴とする請求項８に記載の装置。
【請求項１１】  前記第１のブートコードシーケンスは、フラッシュメモリ内に存在し、前記第２のブートコードシーケンスは、リードオンリーメモリ内に存在することを特徴とする請求項８に記載の装置。
【請求項１２】  前記インサーキット・プログラミング状態は、前記インサーキット・プログラミング・プロセスから保護されることを特徴とする請求項８に記載の装置。
【請求項１３】  前記プロセッサに接続された遠隔ホストアドレスをストアするメモリ有し、前記遠隔ホストアドレスは、遠隔ホストのネットワークアドレスを有し、前記インサーキット・プログラミング・シーケンスは、前記遠隔ホストからデータまたは命令をダウンロードし、且つ、前記第２のブートコードシーケンスは、前記遠隔ホストとのリンクを確立するための資源を有することを特徴とする請求項８に記載の装置。
【請求項１４】  前記プロセッサに接続されたウオッチドッグタイマを有し、前記ウオッチドッグタイマは、前記インサーキット・プログラミング・プロセスをモニターすることを特徴とする請求項８に記載の装置。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】００１１
【訂正方法】変更
【訂正の内容】
【００１１】
本発明の他の特徴によれば、インサーキット・プログラミング命令の伝送における遅延を検出するために、インサーキット・プログラミング・プロセスがモニターされる。もし、その遅延が特定のタイムアウト値を超えるならば、インサーキット・プログラミング・プロセスは再スタートされる。一つの実施形態においては、モニターは、遠隔ホストによって行なわれ、この遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる。他の実施形態においては、モニターは、インサーキット・プログラミング・システムに結合されたウオッチドッグタイマーを用いて行なわれる。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００１４
【訂正方法】変更
【訂正の内容】
【００１４】
本発明は、遠隔ホストからインサーキット・プログラミング命令の伝送における遅延を検出するために、進行中のインサーキットプログラムをモニターするステップ、及び前記遅延がタイムアウト値を越えたならば、インサーキット・プログラミング・プロセスを再スタートするステップを有する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与えるための方法として特徴付けられることができる。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００１８
【訂正方法】変更
【訂正の内容】
【００１８】
不揮発性メモリ１００は、電源がシステムから除かれたとき、持続する全ての形式のメモリで、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びＲＯＭメモリを含む。不揮発性メモリ１００は、ブートプログラム１０２、ユーティリティプログラム１０４、ＩＣＰハンドラー１０６、及びミニブートコード１０７を含む。ブートプログラム１０２は、システムのハードウェアやソフトウェア資源を初期化するために、システムの初期化中に実行されるプログラムの集合を含む。ブートプログラム１０２は、インサーキット・プログラミング・プロセス中に変更されることができるプログラム可能なメモリにストアされる。また、不揮発性メモリ１００は、システムの動作中にＣＰＵ１１２によって実行されるプログラムを含むユーティリティプログラム１０４を含む。また、ユーティリティプログラム１０４は、インサーキット・プログラミング・プロセスによってプログラムされることができるメモリ内に含まれる。また、不揮発性メモリ１００は、システムのインサーキット・プログラミング機能を果たし、インサーキット・プログラミング・プロセスによってプログラムされることができるメモリ内に含まれるＩＣＰハンドラー１０６を含む。
【誤訳訂正５】
【訂正対象書類名】明細書
【訂正対象項目名】００１９
【訂正方法】変更
【訂正の内容】
【００１９】
更に、不揮発性メモリ１００は、正規のブートプログラムの同じインサーキット・プログラミング・プロセス中に変更されることができない保護されたメモリ内に含まれるミニブートコード１０７を有する。ミニブートコード１０７は、ブートプログラム１０２の同じ機能の多くを行なうシステムの初期化命令の代わりのセットである。しかし、ブートプログラム１０２が、潜在的に破損され、使用することができないようにするインサーキット・プログラミング・プロセス中にエラーがあるとき、ミニブートコード１０７のみが働く。したがって、ミニブートコード１０７は、正規のブートプログラムの同じインサーキット・プログラミング・プロセス中に変更されることができないメモリにストアされなければならない。本発明の一つの実施形態では、ミニブートコード１０７は、マスクＲＯＭメモリにストアされ、一方、ブートプログラム１０２、ユーティリティプログラム１０４及びＩＣＰハンドラー１０６は、プログラム可能なフラッシュメモリにストアされる。
【誤訳訂正６】
【訂正対象書類名】明細書
【訂正対象項目名】００２０
【訂正方法】変更
【訂正の内容】
【００２０】
ＣＰＵ１１２は、更にインサーキット・プログラミング・プロセス中に障害の許容を容易にするハードウェア要素に接続される。ＣＰＵ１１２は、ＩＣＰ状態レジスタ１１８からの制御入力ばかりでなく、不揮発性メモリ１００及びジャンプブートベクトル１１６を入力として取りこむＭＵＸ１１０に接続されている。ＭＵＸ１１０は、ＩＣＰ状態レジスタ１１８の状態に依存して、ジャンプブートベクトル１１６と不揮発性メモリ１００間でＣＰＵ１１２を選択的にスイッチする。もし、ＩＣＰ状態レジスタ１１８がダーティであるなら、これは、前のインサーキット・プログラミング動作が完了しなかったことを示しており、ＣＰＵ１１２は、システムの初期化中にミニブートコード１０７に指示するジャンプ命令を入力としてブートベクトル１１６へ取り込む。一方、ＩＣＰ状態レジスタ１１８がクリーンであるなら、これはインサーキット・プログラミング動作が進行中でないことを示し、ＣＰＵ１１２は、システムの初期化中に不揮発性メモリ１００の最初の位置を入力として取り込む。更に、ＣＰＵ１１２は、システムがインサーキット・プログラミング中にリセットされる場合、遠隔ホストアドレスのバックアップコピーを含む遠隔ホストアドレスレジスタ１２０に接続される。また、ＣＰＵ１１２は、読取り／書込みパス１３０及びリセットライン１３２を介してＩＣＰウオッチドッグ１２２に接続される。ＩＣＰウオッチドッグ１２２は、整合ロジック１２８ばかりでなくタイムアウト期間レジスタ１２６とタイマー１２４を含む。タイムアウト期間レジスタ１２６とタイマー１２４は、読取り／書込みパス１３０を介してＣＰＵ１１２によって初期化されることができる。タイマー１２４の値がタイムアウト期間１２６と一致すると、整合ロジック１２８は、リセット信号がＣＰＵ１１２へ供給するリセットライン１２３を通って送られるようにする。一つの実施形態では、障害の許容を与える上述のハードウェア要素は、インサーキット・プログラミング・プロセスから保護されるプログラム可能なメモリ素子を含む。
【誤訳訂正７】
【訂正対象書類名】明細書
【訂正対象項目名】００２５
【訂正方法】変更
【訂正の内容】
【００２５】
図２Ａ、図２Ｂ、及び図２Ｃは、本発明の特徴による、インサーキット・プログラミング・システムのために障害の許容を与えるステップに含まれる動作のシーケンスを詳細に示すフローチャートである。このフローチャートは５つの欄（カラム）、即ち、ユーザ１４４、ブートプログラム１０２、ユーティリティプログラム１０４、ＩＣＰハンドラー１０６、及び遠隔ホスト１３８を有する。これらの欄のヘディングの下のボックスは、ユーザ１４４、ブートプログラム１０２、ユーティリティプログラム１０４、ＩＣＰハンドラー１０６、及び遠隔ホスト１３８の動作をそれぞれ示す。
【誤訳訂正８】
【訂正対象書類名】明細書
【訂正対象項目名】００２８
【訂正方法】変更
【訂正の内容】
【００２８】
ステップ２１８では、ＩＣＰ状態レジスタがシステムブートアップに関してダーティであると判断された。レギュラーシステムのブートアップコードが破損される可能性があるので、システムは、インサーキット・プログラミング・プロセスによって変更されることができる保護されたメモリのデフォルト割付から第１の命令をフェッチする。次に、システムは、ステップ２２４へ進む。ステップ２２４では、システムは、保護されたメモリ内の特定のエントリーを指定するブートベクトルへのジャンプ命令を実行する。次に、システムはステップ２２６へ進む。ステップ２２６で、システムは、インサーキット・プログラミングのため最小限のシステム資源を初期化するミニブートコード１０７を実行する。次に、システムはステップ２３６へ進む。ステップ２３６では、システムは、遠隔ホストアドレスレジスタ１２０から遠隔ホストアドレスを再ストアする。次に、システムは、ステップ２４０へ進む。