(57)【要約】      （修正有）【課題】ブートローダーを更新することなく磁気ディスクの空き容量を十分に利用する。【解決手段】ファームウェアの更新方法は、ファームウェアパーティションに含まれる第１のブロックＰＴＮ１−１及び第２のブロックＰＴＮ１−２のうちの第１のブロックＰＴＮ１−１に位置するとともに、不揮発性メモリのディスクパーティションテーブルを含む補助ファームウェアを実行することと、電子装置のシステムファームウェアに対応するシステム更新ファイルを受信することと、システムファームウェアに必要な容量が第２のブロックＰＴＮ１−２の空き容量よりも大きい場合にディスクパーティションテーブル及びシステム更新ファイルに応じてシステムファームウェアをファームウェアパーティションの第２のブロックＰＴＮ１−２及びバックアップパーティションのバックアップブロックＰＴＮ２−２に書き込む。【選択図】図４
2019128946.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアパーティションとバックアップパーティションとを有する不揮発性メモリを含む電子装置に適用されるファームウェアの更新方法であって、
前記ファームウェアパーティションに含まれる第１のブロック及び第２のブロックのうちの第１のブロックに位置するとともに、前記不揮発性メモリのディスクパーティションテーブルを含む補助ファームウェアを実行することと、
前記電子装置のシステムファームウェアに対応するシステム更新ファイルを受信することと、
前記システムファームウェアに必要な容量が前記第２のブロックの空き容量よりも大きい場合に、前記ディスクパーティションテーブル及び前記システム更新ファイルに応じて、前記システムファームウェアを、前記ファームウェアパーティションの前記第２のブロック、及び前記バックアップパーティションのバックアップブロックに書き込むことと、
を含むファームウェアの更新方法。
【請求項２】
前記必要な容量が前記空き容量以下である場合に、前記ディスクパーティションテーブル及び前記システム更新ファイルに応じて、前記システムファームウェアを、前記ファームウェアパーティションの前記第２のブロックに書き込む、
請求項１に記載のファームウェアの更新方法。
【請求項３】
前記補助ファームウェアを実行する工程の後に、
前記ディスクパーティションテーブルに応じて、前記ファームウェアパーティションの前記第２のブロック及び前記バックアップパーティションの前記バックアップブロックから、前記システムファームウェアをロードして実行することをさらに含む、
請求項１に記載のファームウェアの更新方法。
【請求項４】
前記システムファームウェアは前記ディスクパーティションテーブルを含む、
請求項１に記載のファームウェアの更新方法。
【請求項５】
前記補助ファームウェアに対応する補助ファームウェア更新ファイルを受信することと、
前記補助ファームウェア更新ファイルに応じて、前記補助ファームウェアを、前記ファームウェアパーティションの前記第１のブロックに書き込むことと、をさらに含む、
請求項１に記載のファームウェアの更新方法。
【請求項６】
前記ファームウェアパーティションと前記バックアップパーティションとは互いに重ならないとともに、前記第１のブロックと前記第２のブロックとは互いに重ならない、
請求項１に記載のファームウェアの更新方法。
【請求項７】
データを送受信するための通信素子と、
ファームウェアパーティションと、バックアップパーティションとを有する不揮発性メモリであって、前記ファームウェアパーティションは、前記不揮発性メモリのディスクパーティションテーブルを含む第１のブロックと、第２のブロックとを含む補助ファームウェアを含む不揮発性メモリと、
前記通信素子及び前記不揮発性メモリに結合されており、
前記補助ファームウェアを実行し、
システムファームウェアに対応するシステム更新ファイルを受信し、
前記システムファームウェアに必要な容量が前記第２のブロックの空き容量よりも大きい場合に、前記ディスクパーティションテーブル及び前記システム更新ファイルに応じて、前記システムファームウェアを、前記ファームウェアパーティションの前記第２のブロック、及び前記バックアップパーティションのバックアップブロックに書き込むために用いられるコントローラと、
を備える電子装置。
【請求項８】
前記必要な容量が前記空き容量以下である場合に、前記コントローラは、前記ディスクパーティションテーブル及び前記システム更新ファイルに応じて、前記システムファームウェアを、前記ファームウェアパーティションの前記第２のブロックに書き込むために用いられる、
請求項７に記載の電子装置。
【請求項９】
前記コントローラは、前記補助ファームウェアを実行した後に、さらに、
前記ディスクパーティションテーブルに応じて、前記ファームウェアパーティションの前記第２のブロック及び前記バックアップパーティションの前記バックアップブロックから、前記システムファームウェアをロードして実行するために用いられる、
請求項８に記載の電子装置。
【請求項１０】
前記コントローラは、さらに
前記補助ファームウェアに対応する補助ファームウェア更新ファイルを受信し、
前記補助ファームウェア更新ファイルに応じて、前記補助ファームウェアを、前記ファームウェアパーティションの前記第１のブロックに書き込むために用いられる、
請求項７に記載の電子装置。
【請求項１１】
前記電子装置はケーブルモデムであり、前記補助ファームウェアがDOCSIS接続機能を備えるとともに、前記コントローラは、前記DOCSIS接続機能によって前記システム更新ファイルを受信する、
請求項７に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアの更新方法及びこの方法を用いる電子装置に関する。
【背景技術】
【０００２】
従来、システムファームウェアの更新時に、新しいシステムファームウェアのサイズがメモリにおいてシステムファームウェアのために保留された元のメモリパーティションのサイズを超えると、ディスクパーティションテーブル（partition table）を調整することで、システムファームウェアのために保留されたメモリパーティションを大きくする必要がある。ディスクパーティションテーブルを調整するには、ブートローダー（bootloader）を更新する必要があるが、一旦、ブートローダーの更新中に停電又は停電等の不確定要素の発生によって、更新しているブートローダーの書き込みが不完全になると、システムは、正常に起動できない。このため、ユーザは、遠隔でシステムファームウェアの更新を実行する時に、ブートローダーの更新は非常に大きなリスクがある。このようなリスクは、新しいシステムファームウェアのサイズを制限することになり、システム業者に大きな不便をもたらすおそれがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
以上のことを鑑みると、本発明は、ブートローダーを更新することなく磁気ディスクの空き容量を十分に利用できるファームウェアの更新方法及びこの方法を用いる電子装置を提供する。
【課題を解決するための手段】
【０００４】
本発明の実施例で提出したファームウェアの更新方法は、電子装置に適用される。電子装置は、不揮発性メモリを含み、不揮発性メモリは、ファームウェアパーティションとバックアップパーティションとを有する。ファームウェアの更新方法は、ファームウェアパーティションに含まれる第１のブロック及び第２のブロックのうちの第１のブロックに位置するとともに、不揮発性メモリのディスクパーティションテーブルを含む補助ファームウェアを実行することと、電子装置のシステムファームウェアに対応するシステム更新ファイルを受信することと、システムファームウェアに必要な容量が第２のブロックの空き容量よりも大きい場合に、ディスクパーティションテーブル及びシステム更新ファイルに応じて、システムファームウェアをファームウェアパーティションの第２のブロック及びバックアップパーティションのバックアップブロックに書き込むことと、を含む。
【０００５】
本発明の実施例で提出した電子装置は、通信素子と、不揮発性メモリと、コントローラとを備える。通信素子は、データを送受信するためのものである。不揮発性メモリは、ファームウェアパーティションとバックアップパーティションとを有する不揮発性メモリであり、ファームウェアパーティションは、補助ファームウェアを含み、補助ファームウェアが不揮発性メモリのディスクパーティションテーブルを含む第１のブロックと、第２のブロックとを含む。コントローラは、通信素子及び不揮発性メモリに結合されており、補助ファームウェアを実行し、システムファームウェアに対応するシステム更新ファイルを受信し、システムファームウェアに必要な容量が第２のブロックの空き容量よりも大きい場合に、ディスクパーティションテーブル及びシステム更新ファイルに応じて、システムファームウェアをファームウェアパーティションの第２のブロック及びバックアップパーティションのバックアップブロックに書き込むために用いられる。
【発明の効果】
【０００６】
上述したことに基づいて、本発明の実施例で提出したファームウェアの更新方法及び電子装置は、容量の小さい補助ファームウェアを一つのメモリパーティションにインストールし、この補助ファームウェアによって、メモリパーティションに跨ってデータを読み書きする。これによって、アクティブパーティションのブートローダーを更新することなく、各メモリパーティションにおける異なるブロックを柔軟的に利用することができ、より高いメモリの利用効率を達成した。
【０００７】
本発明の前記特徴及び利点を、さらに明らかで分かりやすくするために、以下、実施例を挙げ、添付図面によって以下のとおりに詳細に説明する。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施例に係る電子装置の概要ブロック図
【図２】本発明の一実施例に係る不揮発性メモリの模式図
【図３】本発明の一実施例に係る不揮発性メモリの模式図
【図４】本発明の一実施例に係る不揮発性メモリの模式図
【図５】本発明の一実施例に係るファームウェアの更新方法のフローチャート
【図６】本発明の一実施例に係るファームウェアの更新方法のフローチャート
【図７】本発明の一実施例に係るファームウェアの更新方法のフローチャート
【発明を実施するための形態】
【０００９】
本願明細書の全文（特許請求の範囲を含む）において用いられる「結合」という用語は、如何なる直接又は間接的な接続手段を指すことができる。例えば、明細書において第１の装置が第２の装置に結合されると述べる場合に、第１の装置が第２の装置に直接に結合されてもよく、あるいは、第１の装置が、他の装置、ワイヤー又はある接続手段を介して第２の装置に間接に結合されてもよい。また、可能な限り、図面及び実施形態に用いる同じ符号の要素/部材/工程は、同一または類似する部分を表す。異なる実施例において同じ符号又は同じ用語を用いる要素/部材/工程は、関連する説明を互いに参照することができる。
【００１０】
本発明の実施例に係るファームウェアの更新方法において、機能が少なく、占める容量が小さい補助ファームウェアを設計し、それをシステムファームウェアのために保留されたメモリパーティションにインストールする。補助ファームウェアには、メモリ全体のメモリパーティションテーブルが含まれるので、補助ファームウェアをロードしただけで、補助ファームウェアにおけるメモリパーティションテーブルによって、メモリ全体の各メモリパーティションにアクセスすることができる。このように、システムファームウェアをダウンロードした後に、このシステムファームウェアに予め保留されたメモリパーティションのサイズが不足であることが発覚しても、補助ファームウェアによって、メモリの他のパーティションを十分に利用して、パーティションに跨ってシステムファームウェアをインストールし、ロードすることができる。特に、本発明の一実施例における補助ファームウェアは、外部ホストと接続を確立する機能をさらに備えることにより、補助ファームウェアが独立して実行される場合でも、データを伝送又は受信可能である。
【００１１】
図１は、本発明の一実施例に係る電子装置の概要ブロック図を示す。図１を参照し、本実施例に係る電子装置１００は、通信素子１１０と、不揮発性メモリ１２０と、通信素子１１０及び不揮発性メモリ１２０に結合されているコントローラ１３０とを備える。以下の実施例において、電子装置１００は、ケーブルモデム（cable modem）を例示として説明されるが、本発明はこれに限られない。他の実施例において、電子装置１００は、例えばスマートフォン（smart phone）、タブレットPC（tablet PC）、個人情報端末（personal digital assistant，PDA）等の、ファームウェアをインストールするために不揮発性メモリを有する電子装置であってもよい。
【００１２】
本実施例において、通信素子１１０は、データを送受信するために、双方向同軸ケーブルによって外部ホスト（例えば、ファームウェアを更新するための電子装置のファームウェア更新ファイルを提供する遠隔ホスト）と接続を確立するためのものである。しかし、本発明はこれに限られない。他の実施例において、通信素子１１０は、例えば、有線の電話線、光ファイバ、又は無線のWi-Fi（登録商標）、ブルートゥース（登録商標）等によって外部ホストと接続を確立してもよい。
【００１３】
本実施例において、不揮発性メモリ１２０は、例えばデータを格納するためのフラッシュメモリ（flash memory）である。本実施例に係る不揮発性メモリ１２０における各メモリパーティション（partitions）及びその使用方法について、以下の説明において詳細に述べる。しかし、本発明では、不揮発性メモリ１２０はフラッシュメモリに限られず、当業者は、需要に応じて、不揮発性メモリ１２０を実施することができ、ここで重複して述べない。
【００１４】
本実施例において、コントローラ１３０は、電子装置１００の全体の運転を制御するために用いられ、例えば、中央処理装置（Central Processing Unit，CPU）や、他のプログラム可能な一般の用途や特別な用途のマイクロプロセッサ（Microprocessor）、デジタルシグナルプロセッサ（Digital Signal Processor，DSP）、プログラム可能なコントローラ、特定用途向け集積回路（Application Specific Integrated Circuits，ASIC）、プログラム可能な論理素子（Programmable Logic Device，PLD）や他の類似する装置、又はこれらの装置の組合せであってもよいが、これらに限られない。
【００１５】
図２乃至図４は、本発明の一実施例に係る不揮発性メモリの模式図を示す。図２乃至図４を参照し、本実施例において、図示の便宜のために、不揮発性メモリ１２０の、本発明の実施例に係るファームウェアの更新方法における異なる状態を示すために、不揮発性メモリ１２０をそれぞれに不揮発性メモリ１２０ａ、１２０ｂ、１２０ｃ、１２０ｄとして表す。以下、不揮発性メモリ１２０ａ、１２０ｂ、１２０ｃ、１２０ｄによって、本発明の実施例に係るファームウェアの更新方法を説明する。
【００１６】
図２を参照し、一実施例において、ファームウェア更新コマンドを受信する前に、電子装置１００の不揮発性メモリ１２０は、不揮発性メモリ１２０ａの状態で運転する。不揮発性メモリ１２０ａは、互いに重ならないアクティブパーティションＰＴＮ０と、少なくとも一つのファームウェアパーティションＰＴＮ１と、少なくとも一つのバックアップパーティションＰＴＮ２とを有する。
【００１７】
アクティブパーティションＰＴＮ０にはブートローダー（bootloader）が記録されており、ブートローダーにはディスクパーティションテーブル（disk partition table）が記録されている。ディスクパーティションテーブルは、例えば電子装置に、各メモリパーティションにアクセスする機能を提供するために用いられることができる。電子装置１００を起動又は再起動させた後に、ブートローダーをロードすることで、ディスクパーティションテーブルに応じて、そのうちの一つのメモリパーティションからファームウェアをロードして実行する。このように、電子装置１００は正常に起動できる。
【００１８】
ファームウェアパーティションＰＴＮ１は、不揮発性メモリ１２０の元のシステムファームウェアに予め保留されたメモリパーティション（例えば、コントローラ１３０がブートローダーの指示によってファームウェアをロードするメモリパーティションであってもよいが、これに限られない）である。通常状態で、電子装置１００を起動又は再起動させた後に、ブートローダーは、例えば、ファームウェアパーティションＰＴＮ１を選択し、それに記録されたシステムファームウェアをロードして実行するように指示する。このように、電子装置１００は、起動の後、正常に稼働することができる（例えば、外部ホストと接続を確立する）。
【００１９】
バックアップパーティションＰＴＮ２は、例えば固定データブロック及びバックアップブロックを含むが、これに限られない。固定データブロックは、電子装置１００がデータ転送の時に必要とするベリファイ情報、又は他の電子装置１００自身のハードウェア情報等を記録するためのものであるが、これに限られない。バックアップブロックは、例えば保留されて未使用のブロックである。
【００２０】
図３を参照し、本実施例において、電子装置１００は、システムファームウェアを運転させる過程において、例えば外部ホストからファームウェアの更新コマンドを受信するとともに、補助ファームウェアに対応する補助ファームウェア更新ファイルを受信する。これによって、電子装置１００のコントローラ１３０は、受信された補助ファームウェア更新ファイルに応じて、補助ファームウェアをファームウェアパーティションＰＴＮ１に書き込んだ後、電子装置１００を再起動させる。この時、不揮発性メモリ１２０の状態は、図３に示す不揮発性メモリ１２０ｂになり、ファームウェアパーティションＰＴＮ１における元のシステムファームウェアは、補助ファームウェアに上書きされたので、実行できない。本実施例において、補助ファームウェアの占めるファームウェアパーティションＰＴＮ１の一部は、第１のブロックＰＴＮ１−１と呼ばれ、ファームウェアパーティションＰＴＮ１の他の一部は、第２のブロックＰＴＮ１−２と呼ばれる。
【００２１】
言及すべきなのは、別の実施例において、電子装置１００のメーカーは、例えば電子装置１００の出荷前に、ブートローダーをアクティブパーティションＰＴＮ０に書き込むとともに、補助ファームウェアをファームウェアパーティションＰＴＮ１に書き込むことで、電子装置１００を、出荷時に既に不揮発性メモリ１２０ｂの状態にすることができることである。
【００２２】
特に、本発明の実施例で提出した補助ファームウェアは、ディスクパーティションテーブルを含むことにより、電子装置１００は、データの位置するメモリパーティションに応じて、異なるメモリパーティションに跨るデータのアクセスを含むデータのアクセスを行う。なお、補助ファームウェアは、ケーブルによるデータサービスインタフェース標準（Data-Over-Cable Service Interface Specifications、DOCSIS）の接続機能をさらに備え、DOCSIS標準を介して外部ホストと接続を確立し、データを送受信することができる。
【００２３】
電子装置１００が不揮発性メモリ１２０ｂの状態で再起動された後に、アクティブパーティションＰＴＮ０のブートローダーは、ファームウェアパーティションＰＴＮ１を選択し、読取を行うように指示する。本実施例において、第１のブロックＰＴＮ１−１における補助ファームウェアが、ロードされて実行されるので、電子装置１００は、DOCSIS標準を介して外部ホストと接続を確立する。
【００２４】
一実施例において、補助ファームウェアの運転中に、電子装置１００は、外部ホストからのファームウェア更新コマンドをさらに受信するとともに、補助ファームウェアに対応する補助ファームウェア更新ファイルを受信する。これによって、電子装置１００のコントローラ１３０は、受信された補助ファームウェア更新ファイルに応じて、補助ファームウェアをファームウェアパーティションＰＴＮ１に書き込むことにより、補助ファームウェアをオーバーライトして更新し、そして、電子装置１００を再起動させる。
【００２５】
言及すべきなのは、補助ファームウェアは、機能がシステムファームウェアよりも少ないので、補助ファームウェアに必要な容量は、第１のブロックＰＴＮ１の空き容量以下であることである。
【００２６】
図４を参照し、別の実施例において、補助ファームウェアの運転中に、電子装置１００は、外部ホストからのファームウェア更新コマンドをさらに受信するとともに、電子装置１００のシステムファームウェアに対応するシステム更新ファイルを受信する。
【００２７】
システム更新ファイルが対応するシステムファームウェアに必要な容量は、第２のブロックＰＴＮ１−２の空き容量よりも大きい場合に、電子装置１００のコントローラ１３０は、受信されたシステム更新ファイルに応じて、補助ファームウェアのディスクパーティションテーブル及びシステム更新ファイルに従って、システムファームウェアをファームウェアパーティションＰＴＮ１の第２のブロックＰＴＮ１−２、及びバックアップパーティションＰＴＮ２に書き込む。システムファームウェアの更新が成功した後に、不揮発性メモリ１２０の状態は、図４に示す不揮発性メモリ１２０ｃの状態になる。本実施例において、システムファームウェアを書き込むためのバックアップパーティションの一部は、バックアップブロックＰＴＮ２−２と呼ばれ、他の一部のバックアップパーティションＰＴＮ２は、固定データブロックＰＴＮ２−１と呼ばれる。このように、不揮発性メモリ１２０が図４に示す不揮発性メモリ１２０ｃの状態にある時に、ファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１の補助ファームウェアは、正常に運転実行されることができる。また、２つのパーティションに跨って記録された、同時にファームウェアパーティションＰＴＮ１の第２のブロックＰＴＮ１−２及びバックアップパーティションＰＴＮ２のバックアップブロックＰＴＮ２−２に位置するシステムファームウェアも、正常に運転実行されることができる。
【００２８】
一方、システム更新ファイルが対応するシステムファームウェアに必要な容量は、第２のブロックＰＴＮ１−２の空き容量以下である場合に、電子装置１００のコントローラ１３０は、受信されたシステム更新ファイルに応じて、補助ファームウェアのディスクパーティションテーブル及びシステム更新ファイルに従って、システムファームウェアをファームウェアパーティションＰＴＮ１の第２のブロックＰＴＮ１−２に書き込む。システムファームウェアの更新が成功した後、不揮発性メモリ１２０の状態は、図４に示すような不揮発性メモリ１２０ｄの状態になる。このように、不揮発性メモリ１２０が図４に示す不揮発性メモリ１２０ｄの状態にある時に、ファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１の補助ファームウェアは、正常に運転実行されることができる。また、ファームウェアパーティションＰＴＮ１の第２のブロックＰＴＮ１−２のシステムファームウェアも、正常に運転実行されることができる。
【００２９】
言及すべきなのは、システムファームウェアの更新が失敗しても、ファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１の補助ファームウェアは、依然として正常に運転実行されることができるので、電子装置１００を再起動させた後に、また前述したフローに従って、ファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１における補助ファームウェアを実行し、再び外部ホストに接続するとともに、システム更新ファイルを改めてダウンロードすることで、システムファームウェアを改めて更新することができることである。
【００３０】
一実施例において、固定データブロックＰＴＮ２−１は、電子装置１００がデータ転送の時に必要とするベリファイ情報、又は他の電子装置１００自身のハードウェア情報等を記録するためのものであるが、これに限られない。例を挙げると、電子装置１００がDOCSIS標準を介して外部ホストと接続を確立する時に必要とする認証局（Certificate Authority，CA）認証コード、ケーブルモデム（Cable Modem，CM）認証コード、及びケーブルモデム公開鍵（CM Publish key）等の情報は、例えば固定データブロックＰＴＮ２−１に記録されているが、本発明はこれに限られない。
【００３１】
言及すべきなのは、一実施例において、外部ホストの提供したシステム更新ファイルが対応するシステムファームウェアは、通常のシステムファームウェアの機能を備える以外、ディスクパーティションテーブルを含むことによって、電子装置１００は、システムファームウェアを稼働させる時に、データの位置するメモリパーティションによって、異なるメモリパーティションに跨るデータのアクセスも含めて、データのアクセスを行うことができる。なお、外部ホストの提供したシステム更新ファイルが対応するシステムファームウェアも、DOCSISの接続機能を備え、DOCSIS標準を介して、外部ホストと接続を確立し、データを送受信することができる。これによって、不揮発性メモリ１２０は、複数の類似するファームウェアパーティションＰＴＮ１を有する場合に、電子装置１００は、稼働しているシステムファームウェアのディスクパーティションテーブルによって、そのうちの一つのファームウェアパーティションＰＴＮ１、及び一つのバックアップパーティションＰＴＮ２を選択し、システムファームウェアを更新させることで、システムファームウェアを選択されたファームウェアパーティションＰＴＮ１、及びバックアップパーティションＰＴＮ２に書き込み又はインストールすることもできる。
【００３２】
図５乃至図７は、本発明の一実施例に係るファームウェアの更新方法のフローチャートを示す。図５乃至図７のそれぞれに示されたフローＳ１００、Ｓ２００、Ｓ３００に含まれる各工程は、上記の段落において図１乃至図４における電子装置１００の各要素に適用され、以下、図１乃至図４における各要素及び符号に合わせて、詳細に説明する。言及すべきなのは、各工程における既に上記の段落において詳細に述べた実施の細部について、以下のフローチャートの説明において重複して述べないことである。
【００３３】
一実施例において、電子装置１００の不揮発性メモリ１２０には、例えば補助ファームウェアが記録されていない場合に、先ず図６におけるフローＳ２００を実行し、補助ファームウェアをファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１に書き込む。
【００３４】
図６を参照し、工程Ｓ２１０において、電子装置１００は、通信素子１１０によって、補助ファームウェアに対応する補助ファームウェア更新ファイルを受信する。例えば、電子装置１００は、最初に、例えば従来のシステムファームウェアに稼働し、稼働中にDOCSIS標準を介して外部ホストから補助ファームウェアに対応する補助ファームウェア更新ファイルを受信する。次に、工程Ｓ２２０において、コントローラ１３０は、補助ファームウェア更新ファイルに応じて、補助ファームウェアをファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１に書き込む。一実施例において、コントローラ１３０は、例えば、先ず補助ファームウェアに必要な容量に応じて、ファームウェアパーティションＰＴＮ１を、第１のブロックＰＴＮ１−１及び第２のブロックＰＴＮ１−２と定義し、次に、補助ファームウェア更新ファイルに応じて、補助ファームウェアを第１のブロックＰＴＮ１−１に書き込む。ファームウェア更新ファイルには、例えば補助ファームウェアのインストールに必要なデータ、及び補助ファームウェアがインストールされる必要があるメモリパーティション等の情報を含むが、本発明はこれに限られない。
【００３５】
一実施例において、ファームウェアパーティションＰＴＮ１は、例えば電子装置１００が稼働しているシステムファームウェアの位置するメモリパーティションであってもよい。別の実施例において、電子装置１００が稼働しているシステムファームウェアの位置するメモリパーティションは、例えばファームウェアパーティションＰＴＮ１と異なるメモリパーティションであってもよい。補助ファームウェアをファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１に書き込んだ後、図５のフローＳ１００が実行される。
【００３６】
別の実施例において、電子装置１００の不揮発性メモリ１２０ｂのファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１には、補助ファームウェアが既に記録されているので、フローＳ２００を実行することなく、フローＳ１００の実行を始めることができる。
【００３７】
次に、図５を参照し、コントローラ１３０は、電子装置１００を起動又は再起動させた後に、工程Ｓ１１０において、補助ファームウェアを実行する。一実施例において、コントローラ１３０は、フローＳ２００の終了後、電子装置１００を再起動させ、電子装置１００を再起動させた後に、先ず、アクティブパーティションＰＴＮ０におけるブートローダーをロードし、ブートローダーは、ファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１における補助ファームウェアをロードして実行するように指示する。別の実施例において、電子装置１００の不揮発性メモリ１２０ｂのファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１には、補助ファームウェアが既に記録されているので、電子装置１００を起動させた後に、同様にアクティブパーティションＰＴＮ０におけるブートローダーをロードし、ブートローダーは、ファームウェアパーティションＰＴＮ１の第１のブロックＰＴＮ１−１における補助ファームウェアをロードして実行するように指示する。
【００３８】
工程Ｓ１２０において、コントローラ１３０は、ディスクパーティションテーブルに応じて、ファームウェアパーティションの第２のブロック及びバックアップパーティションのバックアップブロックには、有効なシステムファームウェアが含まれているか否かを判断する。本実施例において、補助ファームウェアのディスクパーティションテーブルは、自身の位置する第１のブロックＰＴＮ１−１、システムファームウェアの位置する第２のブロックＰＴＮ１−２、及びバックアップブロックＰＴＮ２−２を指示する。これによって、コントローラ１３０は、第２のブロックＰＴＮ１−２及びバックアップブロックＰＴＮ２−２を、有効なシステムファームウェアが記録されているか否かを判断するように検査することができる。一実施例において、システムファームウェアは、第２のブロックＰＴＮ１−２及びバックアップブロックＰＴＮ２−２に記録されているので、コントローラ１３０は、第２のブロックＰＴＮ１−２及びバックアップブロックＰＴＮ２−２に対して、有効なシステムファームウェアが記録されているか否かを検査することができる。別の実施例において、システムファームウェアは、第２のブロックＰＴＮ１−２のみに記録されているので、コントローラ１３０は、第２のブロックＰＴＮ１−２に対して、有効なシステムファームウェアが記録されているか否かを検査することができる。但し、検査の方法は、例えばチェックサム（checksum）によるものであるが、本発明はこれに限定されるものではなく、当業者は、その需要に応じて実施できる。
【００３９】
第２のブロックＰＴＮ１−２及びバックアップブロックＰＴＮ２−２には、有効なシステムファームウェアが記録されている（即ち、第２のブロックＰＴＮ１−２及びバックアップブロックＰＴＮ２−２には、共にシステムファームウェアが記録され、又は第２のブロックＰＴＮ１−２のみに、システムファームウェアが記録されている）場合に、コントローラ１３０は、工程Ｓ１３０において、このシステムファームウェアを実行するとともに、工程Ｓ１４０において、このシステムファームウェアによって外部ホストに接続される。一実施例において、コントローラ１３０は、補助ファームウェアにおけるディスクパーティションテーブルに応じて、２つのメモリパーティションに跨ってファームウェアパーティションＰＴＮ１の第２のブロックＰＴＮ１−２及びバックアップパーティションＰＴＮ２のバックアップブロックＰＴＮ２−２に記録されたシステムファームウェアをロードし、又はファームウェアパーティションＰＴＮ１の第２のブロックＰＴＮ１−２のみに記録されたシステムファームウェアをロードし、このシステムファームウェアを実行する。その後、コントローラ１３０は、例えばこのシステムファームウェアが備えられたDOCSIS接続機能によって、DOCSIS標準を介して外部ホストに接続される。
【００４０】
第２のブロックＰＴＮ１−２及びバックアップブロックＰＴＮ２−２には、有効なシステムファームウェアが記録されない場合に、工程Ｓ１５０において、コントローラ１３０は、補助ファームウェアによって、外部ホストに接続される。一実施例において、コントローラ１３０は、直接に補助ファームウェアの備えたDOCSIS接続機能によって、DOCSIS標準を介して外部ホストに接続される。
【００４１】
本実施例において、一旦、電子装置１００がDOCSIS標準を介して外部ホストに接続されると、図７に示すフローＳ３００のように、外部ホストから更新ファイルを受信することで、電子装置１００のファームウェアをダウンロードして更新又はインストールすることができる。
【００４２】
図７を参照し、工程Ｓ３１０において、電子装置１００は、通信素子１１０によって更新ファイルを受信する。一実施例において、電子装置１００は、例えばDOCSIS標準を介して外部ホストからファームウェア更新コマンドと更新ファイルを受信する。受信されたファームウェア更新コマンドと更新ファイルには、例えば更新したいファームウェアのタイプ、書き込みたいメモリパーティション等の指示を含むが、本発明はこれに限られるものではない。
【００４３】
工程Ｓ３２０において、電子装置１００は、受信された更新ファイルが補助ファームウェア更新ファイルであるか、又は電子装置１００のシステムファームウェアに対応するシステム更新ファイルであるかを判断する。一実施例において、ファームウェア更新コマンドは、例えば、更新ファイルが補助ファームウェア更新ファイル又はシステム更新ファイルであることを直接に指示する。別の実施例において、コントローラ１３０は、例えば、更新ファイルのヘッダファイルを検査することで、この更新ファイルが補助ファームウェア更新ファイルであるか、又はシステム更新ファイルであるかを判断してもよい。言い換えると、ここで、本発明では、コントローラ１３０は、受信された更新ファイルが補助ファームウェア更新ファイルであるか、又はシステム更新ファイルであるかを判断する具体的な実施方法が制限されない。
【００４４】
コントローラ１３０は、受信された更新ファイルが補助ファームウェア更新ファイルであると判断する場合に、工程Ｓ３３０において、コントローラ１３０は、ディスクパーティションテーブルに応じて、ファームウェアパーティションの第１のブロックにおける補助ファームウェアを更新する。一方、コントローラ１３０は、受信された更新ファイルが電子装置１００のシステムファームウェアに対応するシステム更新ファイルであると判断する場合に、工程Ｓ３４０において、コントローラ１３０は、受信されたシステム更新ファイルが対応するシステムファームウェアに必要な容量と、ファームウェアパーティションの第２のブロックの空き容量とを比較する。システムファームウェアに必要な容量が第２のブロックの空き容量よりも大きい場合に、工程Ｓ３５０において、コントローラ１３０は、ディスクパーティションテーブルに応じて、システムファームウェアをファームウェアパーティションの第２のブロック及びバックアップパーティションのバックアップブロックに書き込む。一方、システムファームウェアに必要な容量が第２のブロックの空き容量以下である場合に、工程Ｓ３６０において、コントローラ１３０は、ディスクパーティションテーブルに応じて、システムファームウェアをファームウェアパーティションの第２のブロックに書き込む。但し、補助ファームウェアの更新、及びシステムファームウェアの書き込みの細部について、既に上記の段落において述べたので、ここでは重複して述べない。一旦、ファームウェア（例えば、補助ファームウェア又はシステムファームウェア）の更新を完成すると、コントローラ１３０は、電子装置１００を再起動させ、図６のフローＳ２００に戻り稼働して接続を行う。
【００４５】
図５乃至図７の実施例で説明されたフローＳ１００、Ｓ２００、Ｓ３００によって、電子装置１００の不揮発性メモリ１２０は、現在どのような状態（例えば、不揮発性メモリ１２０ａ、１２０ｂ、１２０ｃまたは１２０ｄ）が書き込まれても、及び、電子装置１００が現在稼働しているのは、補助ファームウェア又はシステムファームウェアのいずれであっても、DOCSIS標準を介して外部ホストと接続を確立しただけで、更新ファイルを受信した後に、受信された更新ファイルに応じてファームウェアの更新をスムーズに行うことができる。
【００４６】
言及すべきなのは、本発明の実施例において、アクティブパーティションＰＴＮ０におけるブートローダーを変更する必要がないので、電子装置１００を起動又は再起動させた後に、ブートローダーは、依然として通常どおりロードし実行されることである。特に、本発明の実施例は、補助ファームウェアによって、元のメモリパーティションの分配下で、各メモリパーティションにおける異なるブロックを柔軟的に利用し、より高いメモリの利用効率を達成した。
【００４７】
以上、本発明の実施例で提出したファームウェアの更新方法及び電子装置では、容量の小さい補助ファームウェアを一つのメモリパーティションにインストールし、この補助ファームウェアによって、メモリパーティションに跨ってデータを読み書きする。これによって、元のメモリパーティションの分配方法を変えることなく、各メモリパーティションにおける異なるブロックを柔軟的に利用することができ、より高いメモリの利用効率を達成した。また、本発明の実施例において、アクティブパーティションのブートローダーは、変更されておらず、補助ファームウェアと更新されたシステムファームウェアは、いずれも接続の機能を備える。したがって、ファームウェアの更新時におけるリスクを大幅に低減させた。
【００４８】
実施例にて、本発明を以上のように開示したが、実施例は本発明を限定するためのものではなく、当業者は、本発明の精神及び範囲から逸脱することなく、いくつかの変更及び変形を加えることができるので、本発明の保護範囲は、添付の特許請求の範囲に限定されたものを基準とするべきである。
【符号の説明】
【００４９】
１００：電子装置
１１０：通信素子
１２０、１２０ａ、１２０ｂ、１２０ｃ、１２０ｄ：不揮発性メモリ
１３０：コントローラ
ＰＴＮ０：アクティブパーティション
ＰＴＮ１：ファームウェアパーティション
ＰＴＮ１−１：第１のブロック
ＰＴＮ：第２のブロック
ＰＴＮ２：バックアップパーティション
ＰＴＮ２−１：固定データブロック
ＰＴＮ２−２：バックアップブロック
Ｓ１００、Ｓ２００、Ｓ３００：ファームウェアの更新方法のフロー
Ｓ１１０、Ｓ１２０、Ｓ１３０、Ｓ１４０、Ｓ１５０、Ｓ２１０、Ｓ２２０、Ｓ３１０、Ｓ３２０、Ｓ３３０、Ｓ３４０、Ｓ３５０、Ｓ３６０：ファームウェアの更新方法の工程
【図１】
2019128946.tif 000003
【図２】
2019128946.tif 000004
【図３】
2019128946.tif 000005
【図４】
2019128946.tif 000006
【図５】
2019128946.tif 000007
【図６】
2019128946.tif 000008
【図７】
2019128946.tif 000009