(57)【要約】一次的プロセッサおよび１つ以上の二次的プロセッサを含むシステムにおいて、本発明の実施形態は、当該プロセッサが、システムソフトウェアの破損によって、不安定である場合であっても、二次的プロセッサのファームウェアの更新を可能にする。また、本発明の実施形態は、家庭用電子機器等のシステム内のプロセッサまたはマイクロコントローラのネットワークベースのファームウェア更新を可能にし、プロセッサまたはマイクロコントローラは、シリアルポートを介して、そのような更新が生じることを必要とする。
2010541105.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサおよび第２のプロセッサを備えたシステムにおいて、該第２のプロセッサのファームウェアを更新する方法であって、該方法は、
該第１のプロセッサによって、共有メモリにファームウェアイメージをロードすることと、
該第１のプロセッサから該第２のプロセッサにブートプロセスを行うコマンドを送信することと、
該第２のプロセッサによる該コマンドの受信に応答して、該第２のプロセッサによって、ブートプロセスを行うことであって、該ブートプロセスを行うことは、該共有メモリから該ファームウェアイメージをロードすることを含む、ことと
を包含する、方法。
【請求項２】
前記第１のプロセッサによってウオッチドッグタイマー機構を実行することであって、該ウオッチドッグタイマー機構は、前記第２のプロセッサが前記ブートプロセスを正常に完了したかどうか決定するように構成されている、ことをさらに包含する、請求項１に記載の方法。
【請求項３】
第１のプロセッサと、
第２のプロセッサと、
該第１のプロセッサおよび該第２のプロセッサに連結された共有メモリと
を備えたシステムであって、
該第１のプロセッサは、該共有メモリにファームウェアイメージをロードすることと、ブートプロセスを行うためのコマンドを該第２のプロセッサに送信することとを行うように構成され、
該第２のプロセッサは、該コマンドの受信に応答して、ブートプロセスを行うように構成され、該ブートプロセスを行うことは、該共有メモリから該ファームウェアイメージをロードすることを含む、システム。
【請求項４】
前記第１のプロセッサは、ウオッチドッグタイマー機構を実行するようにさらに構成され、該ウオッチドッグタイマー機構は、前記第２のプロセッサが、前記ブートプロセスを正常に完了したかどうか決定するように構成されている、請求項３に記載のシステム。
【請求項５】
第１のマイクロコントローラおよび第２のマイクロコントローラを備えたシステムにおいて、該第１のマイクロコントローラによって使用されるファームウェアイメージを更新する方法であって、該方法は、
該第２のマイクロコントローラによって、バッファ内に新しいファームウェアイメージをロードすることと、
該第２のマイクロコントローラから該第１のマイクロコントローラに第１のコマンドを送信することと、
該第１のマイクロコントローラによる該第１のコマンドの受信に応答して、該第１のマイクロコントローラによって、該第１のマイクロコントローラのシリアルポートを介して、該バッファから該新しいファームウェアイメージを読み込むことと、該第１のマイクロコントローラによって、該第１のマイクロコントローラと関連付けられた命令メモリに該新しいファームウェアイメージを書き込むことと
を包含する、方法。
【請求項６】
前記第２のマイクロコントローラによって、前記バッファ内に前記新しいファームウェアイメージをロードすることは、
有線ネットワークリンクまたは無線ネットワークリンクを介して、該新しいファームウェアイメージを受信することを包含する、請求項５に記載の方法。
【請求項７】
前記第１のマイクロコントローラから前記第２のマイクロコントローラにメッセージを送信し、該第１のマイクロコントローラが、前記ファームウェアイメージを更新する準備ができたことを示すことをさらに包含する、請求項５に記載の方法。
【請求項８】
前記第２のマイクロコントローラから前記第１のマイクロコントローラに第２のコマンドを送信することと、
該第１のマイクロコントローラによる該第２のコマンドの受信に応答して、該第１のマイクロコントローラによる通常実行モードを再開することと
をさらに包含する、請求項５に記載の方法。
【請求項９】
第１のマイクロコントローラと、
該第１のマイクロコントローラに接続される第２のマイクロコントローラと、
該第２のマイクロコントローラに接続されるバッファと、
該第１のマイクロコントローラに接続される命令メモリと
を備えたシステムであって、該第２のマイクロコントローラは、該バッファ内に新しいファームウェアイメージをロードすることと、該第２のマイクロコントローラから該第１のマイクロコントローラに第１のコマンドを送信することとを行うように構成され、
該第１のマイクロコントローラは、該第１のマイクロコントローラによる該第１のコマンドの受信に応答して、該第１のマイクロコントローラのシリアルポートを介して、該バッファから該新しいファームウェアイメージを読み込むことと、該新しいファームウェアイメージを該命令メモリに書き込むこととを行うように構成されている、システム。
【請求項１０】
ネットワークリンクをさらに備え、前記第２のマイクロコントローラは、前記ネットワークリンクを介して、前記ファームウェアイメージを取得するように構成される、請求項９に記載のシステム。
【請求項１１】
前記ネットワークリンクは、有線ネットワークリンクまたは無線ネットワークリンクのうちの１つである、請求項１０に記載のシステム。
【請求項１２】
前記第１のマイクロコントローラは、前記第２のマイクロコントローラにメッセージを送信し、該第１のマイクロコントローラが、前記ファームウェアイメージを更新する準備ができたことを示すようにさらに構成される、請求項９に記載のシステム。
【請求項１３】
前記第２のマイクロコントローラは、前記第１のマイクロコントローラに第２のコマンドを送信するようにさらに構成され、
該第１のマイクロコントローラは、該第２のコマンドの受信に応答して、通常実行モードを再開するようにさらに構成される、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、概して、プロセッサによって使用されるファームウェアイメージを更新および管理するシステムに関する。
【背景技術】
【０００２】
（背景）
マルチプロセッサ家庭用電子機器等のマルチプロセッサシステムは、システムが動作不能になる危険を冒さずに、プロセッサファームウェアを更新するための復元可能な確実な技術を要求する。一次的プロセッサおよび１つ以上の二次的プロセッサを含むマルチプロセッサシステムでは、システムは、二次的プロセッサのファームウェアを更新可能でなければならないだけではなく、また、更新が失敗する場合、またはブートイメージの破損によって、システムが不安定となる場合、ファームウェアイメージを再更新する能力も有していなければならない。
【０００３】
さらに、いくつかのプロセッサは、プログラムまたは命令メモリへの書き込み能力を制限する、またはサポートしておらず、それによって、ファームウェアイメージを更新する能力を阻止あるいは阻害する。例えば、いくつかのプロセッサは、特殊動作モードを介してのファームウェアイメージの更新のみをサポートしており、プロセッサは、シリアルポートを介して、新しいイメージを読み込み、それをフラッシュメモリに書き込む。一部の電話ハンドセット等、そのようなプロセッサを含む家庭用電子機器は、概して、ファームウェア更新をサポートしない。デバイスソフトウェアの高度化が増すにつれて、それは不可欠となる。
【発明の概要】
【課題を解決するための手段】
【０００４】
（発明の概要）
本発明の実施形態は、システムソフトウェアの破損によって、プロセッサが不安定である場合であっても、マルチプロセッサシステム内の１つのプロセッサのファームウェアの更新を可能にある。例えば、一次的プロセッサおよび１つ以上の二次的プロセッサを含むシステムでは、本発明の実施形態は、システムソフトウェアの破損によって、プロセッサが不安定である場合であっても、二次的プロセッサのファームウェアの更新を可能にする。
【０００５】
特に、本明細書では、第１のプロセッサおよび第２のプロセッサを備えるシステム内の第２のプロセッサのファームウェアを更新するための方法が記載される。本方法によると、第１のプロセッサは、共有メモリにファームウェアイメージをロードする。次いで、第１のプロセッサは、第２のプロセッサにブートプロセスを行うためのコマンドを送信する。コマンドの受信に応答して、第２のプロセッサは、ブートプロセスを行ない、ブートプロセスを行うステップは、共有メモリからファームウェアイメージをロードするステップを含む。上述の方法は、第１のプロセッサによって、ウオッチドッグタイマー機構を実行するステップをさらに含んでもよく、ウオッチドッグタイマー機構は、第２のプロセッサが、ブートプロセスを正常に完了したかどうか決定するように構成される。
【０００６】
また、本明細書では、システムが記載される。本システムは、第１のプロセッサと、第２のプロセッサと、第１のプロセッサおよび第２のプロセッサに連結される、共有メモリと、を含む。第１のプロセッサは、共有メモリにファームウェアイメージをロードし、第２のプロセッサにブートプロセスを行うためのコマンドを送信するように構成される。第２のプロセッサは、コマンドの受信に応答して、ブートプロセスを行うように構成され、ブートプロセスを行うステップは、共有メモリからファームウェアイメージをロードするステップを含む。第１のプロセッサは、ウオッチドッグタイマー機構を実行するようにさらに構成されてもよく、ウオッチドッグタイマー機構は、第２のプロセッサが、ブートプロセスを正常に完了したかどうか決定するように構成される。
【０００７】
また、本発明の実施形態は、家庭用電子機器等のシステム内のプロセッサまたはマイクロコントローラのネットワークベースのファームウェア更新を可能にし、プロセッサまたはマイクロコントローラは、シリアルポートを介して、そのような更新を行うことを要求する。
【０００８】
特に、本明細書では、第１のマイクロコントローラおよび第２のマイクロコントローラを含むシステム内において、第１のマイクロコントローラによって使用されるファームウェアイメージを更新するための方法が記載される。本方法によると、第２のマイクロコントローラは、新しいファームウェアイメージをバッファ内に一時的にロードする。次いで、第２のマイクロコントローラは、第１のコマンドを第１のマイクロコントローラに送信する。第１のコマンドの受信に応答して、第１のマイクロコントローラは、第１のマイクロコントローラのシリアルポートを介して、バッファから新しいファームウェアイメージを読み込み、第１のマイクロコントローラと関連付けられた命令メモリに新しいファームウェアイメージを書き込む。新しいファームウェアイメージをバッファ内にロードする際、第２のマイクロコントローラは、有線ネットワークリンクまたは無線ネットワークリンクを介して、新しいファームウェアイメージを受信してもよい。
【０００９】
上述の方法は、第１のマイクロコントローラから第２のマイクロコントローラにメッセージを送信し、第１のマイクロコントローラが、ファームウェアイメージを更新する準備ができたことを示すステップをさらに含んでもよい。また、上述の方法は、第２のマイクロコントローラから第１のマイクロコントローラに第２のコマンドを送信し、第１のマイクロコントローラによる第２のコマンドの受信に応答して、第１のマイクロコントローラによる通常実行モードを再開するステップを含んでもよい。
【００１０】
また、本明細書では、システムが記載される。本システムは、第１のマイクロコントローラと、第１のマイクロコントローラに接続される、第２のマイクロコントローラと、第２のマイクロコントローラに接続される、バッファと、第１のマイクロコントローラに接続される、命令メモリと、を含む。第２のマイクロコントローラは、新しいファームウェアイメージをバッファ内に一時的にロードし、第２のマイクロコントローラから第１のマイクロコントローラに第１のコマンドを送信するように構成される。第１のマイクロコントローラは、第１のマイクロコントローラのシリアルポートを介して、バッファから新しいファームウェアイメージを読み込み、第１のマイクロコントローラによる第１のコマンドの受信に応答して、新しいファームウェアイメージを命令メモリに書き込むように構成される。
【００１１】
上述のシステムは、有線または無線ネットワークリンク等のネットワークリンクをさらに含んでもよく、第２のマイクロコントローラは、ネットワークリンクを介して、ネットワークファームウェアイメージを取得するようにさらに構成されてもよい。また、第１のマイクロコントローラは、第２のマイクロコントローラにメッセージを送信し、第１のマイクロコントローラが、ファームウェアイメージを更新する準備ができたことを示すようにさらに構成されてもよい。また、第２のマイクロコントローラは、第１のマイクロコントローラに第２のコマンドを送信するようにさらに構成されてもよく、第１のマイクロコントローラは、第２のコマンドの受信に応答して、通常実行モードを再開するようにさらに構成されてもよい。
【００１２】
本発明のさらなる特徴および利点、ならびに本発明の種々の実施形態の構造および動作は、添付の図面を参照して、以下に詳細に記載される。本発明は、本明細書に記載される特定の実施形態に制限されないことに留意されたい。そのような実施形態は、例証目的のためだけに、本明細書に提示される。付加的実施形態は、本明細書に含有される教示に基づいて、当業者に明白となるであろう。
【００１３】
本明細書に組み込まれ、明細書の一部を形成する添付の図面は、本発明を例証し、その説明とともに、さらに、当業者が、本発明を作製および使用可能となるように、本発明の原理を説明する役割を果たす。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施形態に従って、ファームウェアの更新を容易にするマルチプロセッサシステムのブロック図である。
【図２】図２は、第１のプロセッサおよび第２のプロセッサを備えるシステムにおいて、第２のプロセッサのファームウェアを更新するための方法のフローチャートを示す。
【図３】図３は、本発明の実施形態に従って、第２のマイクロコントローラが、第１のマイクロコントローラのシリアルポートを介して、第１のマイクロコントローラの命令メモリ内にファームウェアをロードするために使用されるシステムのブロック図である。
【図４】図４は、第１のマイクロコントローラおよび第２のマイクロコントローラを備えるシステムにおいて、第１のマイクロコントローラによって使用されるファームウェアイメージを更新するための方法のフローチャートを示す。
【発明を実施するための形態】
【００１５】
本発明の特徴および利点は、図面と併せて考慮されることによって、以下に記載される詳細な説明からより明白となり、図面において、同様の参照番号は、全体を通して、対応する要素を識別する。図面中、同様の参照番号は、概して、同一、機能的に類似、そして／または構造的に類似する要素を示す。ある要素が最初に出現する図面は、対応する参照番号の左端の数字によって示される。
【００１６】
（発明の詳細な説明）
（Ａ．ファームウェア更新のシステムおよび方法）
上記の背景技術に記載されるように、マルチプロセッサ家庭用電子機器等のマルチプロセッサシステムは、システムが動作不能になる危険を冒さずに、プロセッサファームウェアを更新するための復元可能な確実な技術を要求する。一次的プロセッサおよび１つ以上の二次的プロセッサを含むマルチプロセッサシステムでは、二次的プロセッサのファームウェアを更新可能でなければならないだけではなく、また、更新が失敗する場合、またはブートイメージの破損によって、システムが不安定になる場合、ファームウェアイメージを再更新する能力を有していなければならない。本発明の実施形態は、システムソフトウェアの破損によって、プロセッサが不安定である場合であっても、そのようなマルチプロセッサシステム内の二次的プロセッサのファームウェアを更新するための機構を提供する。
【００１７】
図１は、本発明の実施形態に従って、ファームウェアの更新を容易にするマルチプロセッサシステムのブロック図１００である。特に、システム１００は、システムソフトウェアの破損によって、プロセッサが不安定である場合であっても、システム１００内の１つのプロセッサのファームウェアの更新を可能にする。
【００１８】
図１に示されるように、マルチプロセッサシステム１００は、第１のプロセッサ１０２および第２のプロセッサ１０４を含む。ある実施形態では、第１のプロセッサ１０２は、主要プロセッサを備え、第２のプロセッサ１０４は、補助プロセッサを備える。第１のプロセッサ１０２および第２のプロセッサ１０４はそれぞれ、ある実施形態では、ブートメモリを備える、共有メモリ１０６に通信可能に接続される。共有メモリ１０６は、不揮発性フラッシュメモリを備え得るが、本発明は、それに限定されない。
【００１９】
第２のプロセッサ１０４は、共有メモリ１０６からブートするように構成される。本明細書で使用されるように、用語「ブート」とは、プロセッサをその通常動作状態にするために要求される、ロードおよび一連の動作を行うことを意味する。第１のプロセッサ１０２は、共有メモリ１０６に第２のプロセッサ１０４のための適切なブートコードを取り込むように構成される。第１のプロセッサ１０２は、第２のプロセッサ１０４をトリガし、ブートを開始するようにさらに構成される。第１のプロセッサ１０２は、共有メモリ１０６を介して、１つ以上のメッセージを送信することによって、あるいは第１のプロセッサ１０２と第２のプロセッサ１０４との間のネットワークまたはある他の通信路（図１に図示せず）上で１つ以上のメッセージを送信することによって、第２のプロセッサ１０４をトリガし、ブートを開始し得る。
【００２０】
本発明の実施形態に従って、ウオッチドッグタイマー機構は、第１のプロセッサ１０２によって実行され、第２のプロセッサ１０４が、正常にブートされ、継続して起動していることを保証し得る。このウオッチドッグタイマー機構は、共有メモリ１０６を介して、またはネットワークメッセージを送信することによって、等のいくつかの周知の方法のいずれかで実装可能である。
【００２１】
図２は、上述の説明に従って、第１および第２のプロセッサを備えるマルチプロセッサシステムにおいて、第２のプロセッサのファームウェアを更新するための方法のフローチャート２００を示す。フローチャート２００は、図１のシステム１００を継続して参照して説明される。しかしながら、フローチャート２００の方法は、そのような実装に限定されない。
【００２２】
図２に示されるように、フローチャート２００の方法は、第１のプロセッサ１０２が、共有メモリ１０６にファームウェアイメージをロードするステップ２０２から開始する。ステップ２０４では、第１のプロセッサ１０２は、ブートプロセスを行うためのコマンドを第２のプロセッサ１０４に送信する。ステップ２０６では、コマンドの受信に応答して、第２のプロセッサ１０４は、ブートプロセスを行ない、ブートプロセスを行うステップは、共有メモリ１０６からファームウェアイメージをロードするステップを含む。
【００２３】
ある実施形態では、フローチャート２００の方法は、第１のプロセッサ１０２によるウオッチドッグタイマー機構の実行をさらに含み、ウオッチドッグタイマー機構は、第２のプロセッサ１０４が、ブートプロセスを正常に完了したかどうかを決定するように構成される。
【００２４】
（Ｂ．ファームウェアイメージ管理のためのシステムおよび方法）
背景技術に記載されるように、いくつかのプロセッサは、プログラムまたは命令メモリに書き込む能力を制限するか、またはサポートしておらず、それによって、ファームウェアイメージを更新する能力を阻止または阻害する。例えば、いくつかのプロセッサは、特殊動作モードを介してのファームウェアイメージの更新のみをサポートしており、プロセッサは、シリアルポートを介して、新しいイメージを読み込み、それをフラッシュメモリに書き込む。いくつかの電話ハンドセット等、そのようなプロセッサを含む家庭用電子機器は、概して、そのようなファームウェア更新をサポートしていない。デバイスソフトウェアの高度化が増すにつれて、それは不可欠となるであろう。
【００２５】
本発明の実施形態は、新しいファームウェアをバッファ内に一時的にロードし、次いで、新しいファームウェアを送信する前に、二次的マイクロコントローラを使用して、主要マイクロコントローラを更新モードに設定することによって、上述の問題を解決する。
【００２６】
本アプローチは、図３に示されるシステムを参照して説明される。特に、図３は、互いに通信可能に接続される第１のマイクロコントローラ３０２および第２のマイクロコントローラ３０４を含む、システム３００のブロック図である。ある実施形態では、第１のマイクロコントローラ３０２は、主要コントローラを備え、第２のマイクロコントローラ３０４は、二次的コントローラを備える。第１のマイクロコントローラ３０２は、第１のメモリ３０６に通信可能に接続され、第２のマイクロコントローラ３０４は、第２のメモリ３０８に通信可能に接続される。ある実施形態では、第１のメモリ３０６は、命令メモリを備え、第２のメモリ３０８は、データメモリまたはバッファを備える。
【００２７】
図３のシステム３００は、最初に、新しいファームウェアイメージを第２のメモリ３０８内に取得することによって、ネットワークベースのファームウェア更新をサポートする機構を提供する。新しいファームウェアイメージは、第２のマイクロコントローラ３０４によって取得され、例えば、有線または無線ネットワークリンク上で取得されてもよい。この間、第１のマイクロコントローラ３０２は、通常モードで実行している。第１のマイクロコントローラ３０２が、ファームウェアを更新する準備ができると、第２のマイクロコントローラ３０４に信号を送信する。次いで、第２のマイクロコントローラ３０４が引き継ぎ、第１のマイクロコントローラ３０２を更新モードにする。更新モードの間、第２のマイクロコントローラ３０４は、第２のメモリ３０８からデータを読み込み、第１のマイクロコントローラ３０２のシリアルポートを介して、第１のメモリ３０６内にそれを書き込む。更新プロセスが完了すると、次いで、第２のマイクロコントローラ３０４は、第１のマイクロコントローラ３０２にコマンドを送信し、通常実行モードでの実行を再開する。
【００２８】
図４は、上述の説明に従って、第１のマイクロコントローラおよび第２のマイクロコントローラを備えるシステムにおいて、第１のマイクロコントローラによって使用されるファームウェアイメージを更新するための方法のフローチャート４００を示す。フローチャート４００は、図３のシステム３００を継続して参照して説明される。しかしながら、フローチャート４００の方法は、そのような実装に限定されない。
【００２９】
図４に示されるように、フローチャート４００の方法は、第２のマイクロコントローラ３０４が、図３の第２のメモリ３０８によって表される、バッファ内に新しいファームウェアイメージをロードするステップ４０２から開始する。新しいファームウェアイメージをバッファ内にロードするステップは、有線ネットワークリンクまたは無線ネットワークリンクを介して、新しいファームウェアイメージを受信するステップを含んでもよい。
【００３０】
ステップ４０４では、第２のマイクロコントローラ３０４は、第１のマイクロコントローラ３０２から第１のコマンドを送信する。
【００３１】
ステップ４０６では、第１のコマンドの受信に応答して、第１のマイクロコントローラ３０２は、シリアルポートを介して、バッファから新しいファームウェアイメージを読み込み、図３の第１のメモリ３０６によって表される、第１のマイクロコントローラと関連付けられた命令メモリに新しいファームウェアイメージを書き込む。
【００３２】
上述の方法は、第１のマイクロコントローラ３０２から第２のマイクロコントローラ３０４にメッセージを送信し、第１のマイクロコントローラ３０２が、ファームウェアイメージを更新する準備ができたことを示すステップをさらに含んでもよい。
【００３３】
また、上述の方法は、第２のマイクロコントローラ３０４から第１のマイクロコントローラ３０２に第２のコマンドを送信し、第１のマイクロコントローラ３０２による第２のコマンドの受信に応答して、第１のマイクロコントローラ３０２による通常実行モードを再開するステップを含んでもよい。
【００３４】
（Ｃ．結論）
本発明の種々の実施形態が上述されたが、単なる一例として提示されたものであって、限定するものではないことを理解されたい。形態および詳細における種々の変更が、添付の特許請求の範囲に定義される本発明の精神および範囲から逸脱することなく、本明細書に記載される本発明の実施形態に成され得ることは、当業者によって理解されるであろう。故に、本発明の範囲は、上述の例示的実施形態のいずれかによって限定されるべきではなく、以下の特許請求の範囲およびそれらの均等物に従ってのみ定義されるべきである。
【図１】
2010541105.tif 000003
【図２】
2010541105.tif 000004
【図３】
2010541105.tif 000005
【図４】
2010541105.tif 000006
【国際調査報告】
2010541105.tif 000007