[go: up one dir, main page]

JP5478986B2 - 情報機器及びプログラム - Google Patents

情報機器及びプログラム Download PDF

Info

Publication number
JP5478986B2
JP5478986B2 JP2009192413A JP2009192413A JP5478986B2 JP 5478986 B2 JP5478986 B2 JP 5478986B2 JP 2009192413 A JP2009192413 A JP 2009192413A JP 2009192413 A JP2009192413 A JP 2009192413A JP 5478986 B2 JP5478986 B2 JP 5478986B2
Authority
JP
Japan
Prior art keywords
update
file
difference
firmware
version
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 - Fee Related
Application number
JP2009192413A
Other languages
English (en)
Other versions
JP2011044039A (ja
Inventor
雄一 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
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 Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2009192413A priority Critical patent/JP5478986B2/ja
Priority to PCT/JP2010/063933 priority patent/WO2011021643A1/ja
Priority to CN2010800024472A priority patent/CN102132260A/zh
Priority to EP10809984.7A priority patent/EP2362311A4/en
Priority to US13/120,178 priority patent/US8904374B2/en
Publication of JP2011044039A publication Critical patent/JP2011044039A/ja
Application granted granted Critical
Publication of JP5478986B2 publication Critical patent/JP5478986B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、更新データ生成装置、及び情報機器、並びにプログラムに関し、特に、情報機器におけるファームウェアの更新に関するものである。
組込み機器をリリース後、ファームウェアに不具合が見つかった場合、不具合を解決したファームウェアに従来のファームウェアを書き換えることで問題を解決するという方法が一般に行われている。ここでファームウェアとは、組み込み機器の不揮発性記憶領域にあらかじめ記憶されているデータの全てを意味するものとする。このようなファームウェア更新に関する文献として、例えば特許文献1や非特許文献1がある。
特許文献1は、ファームウェアを全て交換するファームウェア更新方式である。ファームウェアを全て交換するため、ネットワーク経由で更新する場合、新しいバージョンのファームウェアイメージを全て配信する必要があるため、配信すべきデータサイズが大きくなる。
また、非特許文献1は、古いバージョンのデータと新しいバージョンのデータの差分を抽出する技術である。ネットワーク経由でファームウェアを更新する場合、これを利用し、ファームウェアの更新差分だけを配信すれば、配信データサイズを削減できる。
特開平11-110218号公報
xdelta: http://xdelta.org/
しかしながら、特許文献1の方法では配信すべきデータサイズが大きくなり過ぎてしまう。従って、例えば、放送波のようなブロードキャストネットワークを介してファームウェア更新を実行する場合、当該ネットワークはその通信速度が低速でビット単価が高いため、特許文献1の方法は好ましくない。よりファームウェアの更新サイズを小さくすることが求められる。
一方、非特許文献1の方法によれば、ファームウェアの更新差分だけを配信するのでデータサイズを小さくすることができる。しかしながら、ファームウェアのバージョンが増えてくると、データサイズが大きくなる課題がある。例えば、最新のファームウェアのバージョンが5である場合、配信対象の機器のファームウェアのバージョンは、1から5までのバージョンが混在しているため、バージョン1から5の差分、2から5の差分、3から5の差分、4から5の差分の4種類のデータを配信しなければならない。また、組み込み機器側では、搭載される物理メモリが限られ、また書込み速度が低速なNOR型フラッシュメモリが使われることが多いため、非特許文献1によって配信された更新用差分データを適用するためにはメモリの消費領域が大きくなり、かつ更新用差分データの書込み時間が長く掛かってしまうという問題がある。
本発明はこのような状況に鑑みてなされたものであり、組み込み機器側の消費メモリ容量を小さくし、かつ書込み時間を短くし、さらに、配信される更新用データサイズが小さくなるようなファームウェア更新技術を提供するものである。
上記課題を解決するために、本発明では、更新データ作成装置は、更新対象機器(情報機器)の新バージョン(バージョンN)のファームウェアイメージと一つ古いバージョン(バージョンN−1)のファームウェアイメージを入力とし、バージョンNのファームウェアイメージとバージョンN−1のファームウェアイメージの差分(N−1→N差分とする)を抽出し、機器Aに蓄積する。機器Aは、蓄積された1→2差分、2→3差分、3→4差分・・・(N−1)→N差分を更新ファイルとしてまとめ、ブロードキャストネットワークに更新ファイルを配信する。
一方、更新対象機器にはバージョンi(1≦i≦N)のファームウェアがフラッシュメモリに書き込まれ、それが稼動している場合に、更新対象機器が、更新ファイルをブロードキャストネットワークから受信する。更新ファイルには、(j−1)→j差分(2≦j≦N)が含まれるが、更新対象機器は、j≦iが成り立つ差分については、記憶領域にとどめずに破棄し、i<jの差分のみを記憶領域に留める。更新対象機器は、受信した(j−1)→j差分(i<j≦N)より、i→N差分を生成し、i→N差分をファームウェアイメージに適用し、バージョンNのファームウェアイメージにアップデートする。
即ち、本発明による更新データ生成装置は、複数のバージョンのファームウェアイメージにおいて互いに隣接するバージョンのファームウェアイメージの差分である複数の差分ファイルを格納する差分ファイル群格納部と、差分ファイル群格納部に格納される全ての差分ファイルの少なくとも一部であって、複数の差分ファイルを更新ファイルとして生成する更新ファイル生成部と、生成された更新ファイルを、ネットワーク(例えば、ブロードキャストネットワーク等の1対多を実現するネットワーク)を介して情報機器(ファームウェア更新対象機器)に送信する更新ファイル送信部と、を備えている。
また、差分ファイルは、ファームウェアイメージのバージョンj(j=1,・・・,n−1;nはn>jの整数)とバージョンj+1の差分であることを示す差分バージョン番号と、ファームウェアのどのファイルに対してどのような処理を実行すべきかを示す更新手順と当該更新手順で用いられる構成データとを有する更新データと、を含んでいる。
更新データ生成装置は、さらに、最新バージョンのファームウェアイメージを取得するデータ取得部と、最新バージョンのファームウェアイメージの直近の旧バージョンのファームウェアイメージを少なくとも格納する旧版ファームウェアイメージ格納部と、最新バージョンのファームウェアイメージと直近の旧バージョンのファームウェアイメージの差分である最新差分ファイルを生成し、差分ファイル群格納部に最新差分ファイルを追加する差分ファイル生成部と、を備えている。
一方、本発明による情報機器は、ファームウェアが組み込まれており、ネットワークを介して送信されてきた、ファームウェアを更新するための更新ファイルを受信する更新ファイル受信処理部と、更新ファイルに基づいて現バージョンのファームウェアイメージを更新するのに最適な最適化更新データを生成する更新最適化処理部と、最適化更新データを現バージョンのファームウェアイメージに適用してファームウェアイメージを更新する更新適用処理部と、を備えている。ここで、更新ファイルは、最新バージョンまでの複数のバージョンのファームウェアイメージにおいて、互いに隣接するバージョンのファームウェアイメージの差分である複数の差分ファイルによって構成されている。また、差分ファイルは、ファームウェアイメージのバージョンj(j=1,・・・,n−1;nはn>jの整数)とバージョンj+1の差分であることを示す差分バージョン番号と、ファームウェアのどのファイルに対してどのような処理を実行すべきかを示す更新手順と当該更新手順で用いられる構成データとを有する更新データと、を含んでいる。そして、更新ファイル受信処理部は、受信した更新ファイルから、現バージョンのファームウェアイメージのバージョン番号までの差分ファイルを削除し、残った差分ファイルを適用ファイルとする。また、更新最適化処理部は、適用ファイルを用いて、現バージョンのファームウェアイメージから最新バージョンのファームウェアイメージに直接書き換えるための最適化更新データを生成する。より具体的には、更新最適化処理部は、適用ファイルに含まれる複数の差分ファイルのうち重複する更新手順を取り除いて最新の更新手順及び構成データのみを残すことにより最適化更新データを生成する。
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
本発明によれば、組み込み機器側の消費メモリ容量を小さくし、かつ書込み時間を短くできる。また、配信される更新用データサイズを小さくすることができる。
本発明の実施形態によるファームウェア更新システムの概略構成を示す図である。 更新作成・配布サーバのソフトウェア構成を示す図である。 ファームウェア組み込み機器のソフトウェアの構成を示す図である。 更新データの構成例を示す図である。 差分ファイル群の構成例を示す図である。 更新ファイルの構成例を示す図である。 バージョン番号の構成例を示す図である。 作業データ領域の構成例を示す図である。 更新作成機能の処理を説明するためのフローチャートである。 更新配布機能の処理を説明するためのフローチャートである。 更新受信プログラムによる処理を説明するためのフローチャートである。 更新最適化プログラムによる処理を説明するためのフローチャートである。 更新適用プログラムによる処理を説明するためのフローチャートである。
本発明は、ファームウェアが組み込まれた情報機器におけるファームウェアを効率よく(配信コストを削減でき、情報機器におけるメモリ容量及び更新時間が少なくて済む)更新することを可能にする技術に関するものである。
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
<ファームウェア更新システムの構成>
図1は、本発明の実施形態によるファームウェア更新システムの概略構成を示す図である。ファームウェア更新システムは、更新作成・配布サーバ130と、例えばDVD録再装置等、少なくとも1つのファームウェア組み込み機器160(以下、「機器160」という)と、を備えている。更新作成・配布サーバ130と機器160は、ネットワーク、例えばブロードキャストネットワーク150を介して接続されている。
開発者110が新しいファームウェアを作成すると、そのファームウェアイメージ120が更新作成・配布サーバ130に転送される。ここで、ファームウェアイメージ120とは、開発者110が開発したソフトウェアと構成ファイルを一つのファイルとしてアーカイブしたものである。
更新作成・配布サーバ130は、ネットワーク機能を備えたコンピュータとしてのハードウェアで構成され、具体的には、CPU131と、RAM132と、ネットワークインタフェース133と、HDD134と、を備えている。ネットワークインタフェース133には、開発者110からのアクセスを可能にするためのLANインタフェース、及び更新ファイル140をブロードキャストネットワーク150で配布するため、ブロードキャストネットワーク150へのインタフェースが設けられている。
HDD134は、旧版ファームウェアイメージ135と差分ファイル群136を格納している。旧版ファームウェアイメージ135は、ファームウェアイメージ120より一つ古いバージョンのファームウェアイメージでも良いし、古いバージョンのファームウェアイメージを全て保存していても良い。差分ファイル群136は、更新ファイル140を作成するために使うデータであり、詳細な構成は図5に示される。
更新作成・配布サーバ130は、機器160のファームウェア更新に用いられる更新ファイル140を、ブロードキャストネットワーク150を介して配信する。更新ファイル140の構成については、図6に示される。更新作成・配布サーバ130の詳細なソフトウェアの構成は図2に示される。ブロードキャストネットワーク150は、放送波ネットワークで代表されるネットワークであり、送信者から複数の受信者に対して同じデータを送信する。
機器160は、ブロードキャストネットワーク150からのデータ受信機能を備えた、コンピュータとしてのハードウェアで構成され、具体的には、CPU161と、RAM162と、電波チューナ163と、フラッシュメモリ164と、を備えている。
機器160は、ブロードキャストネットワーク150に送信される更新ファイル140を受信し、フラッシュメモリ164に格納されたファームウェアイメージ165を更新する。機器160の詳細なソフトウェアの構成は図3に示される。
なお、本実施形態では、更新作成・配布サーバ130は、更新ファイル作成機能と更新ファイル配布機能の双方を備えているが、作成機能と配布機能を分離して別々の装置として構成しても良い。
<更新作成・配布サーバ130のソフトウェア構成>
図2は、更新作成・配布サーバ130のソフトウェアの構成を示す図である。図2に示されるように、更新作成・配布サーバ130は、更新作成機能(プログラム)220と更新配布機能(プログラム)230を備えている。更新作成機能220は、ファームウェアイメージ120及び旧版ファームウェアを用いて差分ファイル群136を生成し、それに基づいて更新ファイル140を作成する。詳細な処理は、図9に示される。一方、更新配布機能230は、更新作成機能220で作成された更新ファイル140を、ブロードキャストネットワーク150に送信する機能を有している。詳細な処理は、図10に示される。
<機器160のソフトウェア構成>
図3は、機器160のソフトウェア構成を示す図である。図3に示されるように、機器160は、更新受信プログラム310と、更新最適化プログラム320と、更新適用プログラム330と、バージョン番号格納部340と、を備えている。これらプログラムによる処理は、RAM162の一部である作業データ領域350を使用して実行される。
更新受信プログラム310は、更新ファイル140をネットワークから受信するためのプログラムであり、処理の詳細は図11に示される。また、更新最適化プログラム320は、更新受信プログラム310が受信した更新ファイル140を最適化するプログラムであり、処理の詳細は図12に示される。さらに、更新適用プログラム330は、更新ファイル140に記された更新内容であって、最適化された更新データをファームウェアイメージ165に反映するプログラムであり、処理の詳細は図13に示される。
バージョン番号格納領域340は、ファームウェアイメージ165のバージョン番号を管理する領域であり、詳細な構成は図7に示される。なお、バージョン番号格納領域340は、バージョン番号以外に機器160のメタデータを管理していても良い。
作業データ領域350は、更新最適化プログラム320が使うデータを格納し、受信した更新ファイル140からファームウェア更新に必要な最適化された更新データを生成するために用いられるRAM162上の領域である。最適化された更新データの生成例については図8を用いて説明する。
以上のうち、更新受信プログラム310、更新最適化プログラム320、更新適用プログラム330、及びバージョン番号格納領域340は、フラッシュメモリ164に書き込まれている。なお、作業データ領域350は、RAM162に存在してもいいし、フラッシュメモリ164に書き込まれていてもよい。
<更新データの構成>
図4は、更新ファイル400の構成例を示す図である。更新ファイル400は、差分ファイル群136及び更新ファイル140で使われるデータ構造に相当するものであり、更新手順410と構成データ420とによって構成されている。更新データ400は、差分ファイル群及び更新ファイルの構成要素となるものである。
更新手順410は、データ420をどのように使って更新するのかを記す情報である。例えば、行431は、ファームウェアイメージ165内の/foo/barというファイルを、行431のデータ420に格納されたデータで上書きする、という意味である。また、行432は、ファームウェアイメージ165内のファイル/foo/bar2を削除するという意味である。
<差分ファイル群の構成>
図5は、差分ファイル群136の構成例を示す図である。差分ファイル群136は、差分バージョン番号510と更新データ520で構成されている。
差分バージョン番号150は、<旧バージョン>→<新バージョン>というフォーマットとなっており、更新データ520には、<旧バージョン>から<新バージョン>にバージョンアップするための更新データが記されている。
更新データのフォーマットとして、例えば、行531には、バージョン1のファームウェアから、バージョン2のファームウェアにバージョンアップするために必要な更新手順410と必要な構成データ420(図4参照)が記されている。
<更新ファイルの構成>
図6は、更新ファイル140の構成例を示した図である。更新ファイル140には、差分ファイル群136と同様に差分バージョン番号610、更新データ620の組が格納されている。なお、更新ファイル140は、実際に配信されるファイルである。例えば、差分ファイル群136が全ての差分ファイル(差分バージョン番号+更新データ)を有しているのに対し、更新ファイル140は、差分ファイル群136から一定以上古いバージョンの差分ファイルを除く差分ファイルを有している。
<バージョン番号>
図7は、バージョン番号340の構成を示す図である。バージョン番号710に、機器160のファームウェアイメージ165のバージョン番号が記録されている。例えば、721では、「2」となっているため、機器160のファームウェアイメージ165のバージョン番号は2であることを意味する。
<作業データ領域の構成例>
図8は、作業データ領域350に格納されるデータの構成例を示す図である。更新手順、データの組が格納されている。当該作業データ領域350に格納される差分データは、バージョン番号710よりも大きいバージョンを有する差分データ(例えば810、820及び830)、及びそれに基づいて最適化された差分データ(例えば840)である。
<更新作成機能の処理内容>
図9は、更新作成機能220の処理内容を説明するためのフローチャートである。なお、各ステップの処理はCPU131によって実行されるが、更新作成機能220とCPU131が協働して更新作成処理部が構成される。以下の処理は動作主体が更新作成処理部であるとして説明する。
まず、更新作成処理部は、ファームウェアイメージ120を受信する(ステップ910)。
そして、更新作成処理部は、受信したファームウェアイメージ120と旧版ファームウェアイメージ135の差分を生成し、図4のフォーマットの更新データを作成する(ステップ920)。例えば、ファームウェアイメージ120中に/foo/barファイルが存在し、旧版ファームウェアイメージ135には/foo/barファイルが存在しない場合は、行431のような更新データを生成する。そして、データ420には、ファームウェアイメージ120に含まれる/foo/barのデータが格納される。また、旧版ファームウェアイメージ135に/foo/bar2が存在し、ファームウェアイメージ120に存在しない場合は、行432のような更新データを生成する。
最後に、更新作成処理部は、差分ファイル群136に、ステップ920で作成した更新データを追加する(ステップ930)。例えば、受信したファームウェアイメージのバージョンが5、旧版ファームウェアイメージのバージョンが4の場合は、行534のようなデータが追加される(図5参照)。
<更新配布機能の処理内容>
図10は、更新配布機能230の処理内容を説明するためのフローチャートである。なお、各ステップの処理はCPU131によって実行されるが、更新配布機能230とCPU131が協働して更新配布処理部が構成される。以下の処理は動作主体が更新配布処理部であるとして説明する。
更新配布処理部は、差分ファイル群136を基に更新ファイル140を作成する(ステップ1010)。例えば、最新のファームウェアのバージョンがNの場合、差分バージョン番号1→2,2→3,3→4,・・・,N−1→Nに対応する更新データを取り出す。最新のファームウェアバージョンが5の場合は、更新ファイル140は図6のような構成になる。なお、更新ファイル140は、差分ファイル群136と同じ内容となる場合もあるし、差分ファイル群136から選択された一部の差分ファイルで構成される場合もある。
そして、更新配布処理部は、ステップ1010で作成した更新ファイル140を、ブロードキャストネットワーク150を介して機器160に配信する(ステップ1020)。
<更新受信処理の内容>
図11は、更新受信プログラム310の処理内容を説明するためのフローチャートである。なお、各ステップの処理はCPU161によって実行されるが、更新受信プログラム310とCPU161が協働して更新受信処理部が構成される。以下の処理は動作主体が更新受信処理部であるとして説明する。
まず、更新受信処理部は、ブロードキャストネットワーク150を介して送信されてきた更新ファイル140の受信を開始する(ステップ1110)。そして、更新ファイル140の各行について、ステップ1130及び1140の処理が実行される(ステップ1120)。
つまり、更新受信処理部は、差分バージョン番号610の新バージョンのバージョン番号と機器側のバージョン番号340を比較する(ステップ1130)。これは、後の更新処理で使わないデータを作業データ領域350に保存しないことにより、機器160におけるリソース消費量を減らすためである。差分バージョン番号610の新バージョンの番号がバージョン番号340よりも大きい場合、処理は1140に移行する。例えば、機器160側のバージョン番号340が2の場合は、図6の更新ファイルの場合だと、行632、633及び634についてステップ1140の処理が実行されることになる。
そして、更新受信処理部は、必要な差分バージョン番号610及び更新データ620の組を、例えば作業データ領域350に保存する。ここでは作業データ領域350に必要なデータを保存するとしたが、これに限られず、RAM162でもよいしフラッシュメモリ164の空き領域でもよい。
<更新最適化処理の内容>
図12は、更新最適化プログラム320の処理内容を説明するためのフローチャートである。なお、各ステップの処理はCPU161によって実行されるが、更新最適化プログラム320とCPU161が協働して更新最適化処理部が構成される。以下の処理は動作主体が更新最適化処理部であるとして説明する。
まず、各ステップの処理の説明の前に、当該更新最適化処理の目的を説明する。配信された更新ファイル140には、最新のファームウェアのバージョンが5の場合、ファームウェアのバージョン1→2への更新手順と構成データ、2→3の手順と構成データ、3→4への手順と構成データ、4→5への手順と構成データ、が別々に含まれている。そして、機器160のファームウェアのバージョンが2の時、2→3、3→4、4→5のように順々にバージョンアップする必要がある。順々にバージョンアップする処理の中で、同じファイルのバージョンアップがあると、バージョンアップのためのファイル書き込み時間が無駄になる。例えば、2→3、4→5のバージョンアップの中で/foo/barファイルのコピーが生じていたら、2度/foo/barファイルをフラッシュROMに書き込みすることになってしまい、無駄である。そこで、このような無駄が生じないようにするため、更新最適化プログラム320は、直接バージョン2からバージョン5に直接アップデートする更新手順と構成データを生成し、最後の一度のコピーや削除等の処理を実行すれば済むようにファイルを最適化している。以下、図6の更新ファイルを受信した例を使いながら説明する。
更新最適化処理部は、S=現バージョン番号340、N=最新のファームウェアのバージョン番号として、差分バージョン番号S→Nのための更新データを空テーブルとして作成する(ステップ1210)。今回の例では、S=2、N=5となる。Nについては、図6の更新ファイルの差分バージョン番号610の中の最も新しいバージョン番号から知ることができる。
次に、更新最適化処理部は、S≦i≦N−1について、ステップ1230からステップ1270の処理を行う(ステップ1220)。今回の例では、2≦i≦4である。つまり、更新最適化処理部は、更新受信プログラム(更新受信処理部)310によって受信されたデータから(今回の例では、図6の行632から634)、差分バージョン番号i→i+1の更新データ620を作業領域350に取り出す(ステップ1230)。i=2ならば、行632の更新データを取り出すことになる。このステップで取り出される更新データの例は、図8の810、820、830、及び840に示されている。それぞれ、i=2、3、4に対応する更新データである。
続いて、更新最適化処理部は、取り出した更新データの各行について、ステップ1250からステップ1270の処理を行う(ステップ1240)。つまり、更新最適化処理部は、当該取り出した更新手順がS→Nの更新データの更新手順に一致するかどうかをチェックする(ステップ1250)。一致する場合(ステップ1250でYes)は、更新最適化処理部は、S→Nの更新データのデータを、差分バージョン番号i→i+1のデータで上書きする(ステップ1260)。一方、一致しない場合(ステップ1250でNo)は、更新最適化処理部は、S→Nの更新データに、取り出した更新手順、データの組を追加する(ステップ1270)。
以上のステップ1240から1270の処理内容の説明を補足するため、具体例を使って説明する。
繰り返し処理でi=2の場合、840は空であるため、ステップ1250ではNo(一致しない)となり、ステップ1270において、行811及び812の内容が行841及び842にそれぞれ追加される。
繰り返し処理でi=3の場合、840には既に行841及び842が存在する。しかし、更新手順copy/foo/bar3は存在しないので、ステップ1250ではNo(一致しない)となり、ステップ1270において行821の内容が行843に追加される。
繰り返し処理でi=4の場合、840には既に行841、842及び843が存在する。更新手順copy/foo/barが830及び840の双方に存在するため、ステップ1250ではYes(一致する)となる。よって、ステップ1260において、830のデータが行843のデータに上書きされる。
以上の処理を実行することにより、ファームウェアイメージのバージョン2からバージョン5に直接バージョンアップするために必要な更新手順とデータを850に構築できることになる。バージョン2→3、3→4、4→5のように順次バージョンアップすると、/foo/barファイルへの書き込みが行811及び831の2度生じるのに対し、850に生成されたバージョン2→5のバージョンアップでは、/foo/barファイルへの書き込みは行841の一度しか生じていない。よって、ファームウェアの更新処理時間を短縮することができるようになる。
<更新適用処理の内容>
図13は、更新適用プログラム330の処理内容を説明するためのフローチャートである。なお、各ステップの処理はCPU161によって実行されるが、更新適用プログラム330とCPU161が協働して更新適用処理部が構成される。以下の処理は動作主体が更新適用処理部であるとして説明する。
ファームウェアの更新が指示されると、更新適用処理部は、更新最適化プログラムを呼び出し、受信した更新ファイル140の最適化処理(図12の各ステップ)を実行させ、最適化された更新データを取得する(ステップ1310)。
そして、更新適用処理部は、更新最適化処理によって生成された最適化された更新データに含まれる更新手順(図12の説明で使った例では、840)に従い、フラッシュメモリ164中のファームウェアイメージ165を更新する(ステップ1320)。
<まとめ>
本実施形態では、更新作成・配布サーバは、複数のバージョンのファームウェアイメージにおいて互いに隣接するバージョンのファームウェアイメージの差分である複数の差分ファイルを格納している。そして、当該サーバは、格納されている全ての差分ファイルの少なくとも一部であって、複数の差分ファイルを更新ファイル(ファームウェアの作成日時によっては、差分ファイルが1→2、2→3、・・・、j−1→jの場合、更新ファイルが5→6、・・・、j−1→jという場合がある。)として生成し、この生成された更新ファイル(複数の差分ファイルで構成される)を、ブロードキャストネットワーク等の1対多を実現するネットワークを介して情報機器に配信する。このようにすることにより、全てのバージョンから最新バージョンへの更新データを全て作成して配信する必要がなくなり、配信すべきデータのサイズを小さくすることができるようになる。特に、ブロードキャストネットワークはビット単価が高いので、配信コストを削減することが可能となる。
また、更新作成・配布サーバは、最新バージョンのファームウェアイメージを取得すると、最新バージョン(j)のファームウェアイメージと直近の旧バージョン(j−1)のファームウェアイメージの差分である最新差分ファイル(j−1→j)を生成し、差分ファイル群格納部に最新差分ファイルを追加する。このようにすることにより、最新バージョンのファームウェアが供給される度に、全ての旧バージョンと最新バージョンとの差分を演算する必要がなく、サーバ側の負担を軽減することができる。
より具体的に説明すると、配信サイズについては、単純な差分配布では、1→N差分、2→N差分、3→N差分・・・N−1→N差分のN−1個の差分が配信される。この方式では、各差分での、バージョンの差が大きいため、差分のデータサイズが大きくなる。一方、本発明においては、1→2差分、2→3差分、・・・N−1→N差分のN−1個の差分が配信される。各差分のバージョンの差は1なため、単純な差分配布より差分のデータサイズが小さくなる。
一方、ファームウェア組み込み機器(情報機器)は、ブロードキャストネットワークを介して送信されてきた更新ファイルを受信し、更新ファイルに基づいて現バージョンのファームウェアイメージを更新するのに最適な最適化更新データを生成し、それを現バージョンのファームウェアイメージに適用してファームウェアイメージを更新する。より詳細には、更新ファイル受信した際に、当該機器は、受信した更新ファイルから、現バージョンのファームウェアイメージのバージョン番号までの差分ファイルを削除し、残った差分ファイルを適用ファイルとする。また、当該機器は、当該機器は、適用ファイルに含まれる複数の差分ファイルのうち重複する更新手順を取り除いて最新の更新手順及び構成データのみを残すことにより最適化更新データ(現バージョンのファームウェアイメージから最新バージョンのファームウェアイメージに直接書き換えるため更新データ)を生成する。
より具体的に説明すると、ファームウェア組み込み機器における必要な記憶領域については、配信されたN−1個のj−1→j差分(2≦j≦N)のうち、i<jの差分のみが記憶領域に留められるため、必要な記憶領域は単純に更新を受信し保存するより小さくて済む。
また、当該機器における更新内容をフラッシュメモリに書き込むための処理時間についても、記憶領域に保存された(j−1)→j差分(i<j≦N)をそのままフラッシュメモリに書き込むと、それぞれの差分で共通するファイルを更新している場合、余計な書込みが発生する。例えば、それぞれの差分全てで/foo/barファイルを更新している場合、N−i回/foo/barファイルを書き込むことになる。一方、本方式では、フラッシュメモリ書込み前に、i→N差分を動的に生成しているため、/foo/barファイルへの書込みは1回であり、書込み時間の短縮を実現している。
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
120・・・ファームウェアイメージ
130・・・更新作成・配布サーバ
131・・・CPU
132・・・RAM
133・・・ネットワークインタフェース
134・・・HDD
135・・・旧版ファームウェアイメージ格納部
136・・・差分ファイル群格納部
140・・・更新ファイル
150・・・ブロードキャストネットワーク
160・・・情報機器
161・・・CPU
162・・・RAM
163・・・電波チューナ
164・・・フラッシュメモリ
165・・・ファームウェアイメージ(現在使用中のもの)
400・・・更新データ

Claims (2)

  1. ファームウェアが組み込まれた情報機器であって、
    ネットワークを介して送信されてきた、前記ファームウェアを更新するための更新ファイルを受信する更新ファイル受信処理部と、
    前記更新ファイルに基づいて現バージョンのファームウェアイメージを更新するのに最適な最適化更新データを生成する更新最適化処理部と、
    前記最適化更新データを前記現バージョンのファームウェアイメージに適用してファームウェアイメージを更新する更新適用処理部と、を備え、
    前記更新ファイルは、最新バージョンまでの複数のバージョンのファームウェアイメージにおいて、互いに隣接するバージョンのファームウェアイメージの差分である複数の差分ファイルによって構成され、
    前記差分ファイルは、ファームウェアイメージのバージョンj(j=1,・・・,n−1;nはn>jの整数)とバージョンj+1の差分であることを示す差分バージョン番号と、ファームウェアのどのファイルに対してどのような処理を実行すべきかを示す更新手順と当該更新手順で用いられる構成データとを有する更新データと、を含み、
    前記更新ファイル受信処理部は、前記受信した更新ファイルから、前記現バージョンのファームウェアイメージのバージョン番号までの前記差分ファイルを削除し、残った差分ファイルを適用ファイルとし、
    前記更新最適化処理部は、前記適用ファイルに含まれる前記差分ファイルのうち重複する更新手順を取り除いて最新の更新手順及び構成データのみを残すことにより、前記現バージョンのファームウェアイメージから前記最新バージョンのファームウェアイメージに直接書き換えるための前記最適化更新データを生成することを特徴とする情報機器。
  2. コンピュータを請求項に記載の情報機器として機能させるためのプログラム。
JP2009192413A 2009-08-21 2009-08-21 情報機器及びプログラム Expired - Fee Related JP5478986B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009192413A JP5478986B2 (ja) 2009-08-21 2009-08-21 情報機器及びプログラム
PCT/JP2010/063933 WO2011021643A1 (ja) 2009-08-21 2010-08-18 更新データ生成装置、及び情報機器、並びにプログラム
CN2010800024472A CN102132260A (zh) 2009-08-21 2010-08-18 更新数据生成装置、信息设备以及程序
EP10809984.7A EP2362311A4 (en) 2009-08-21 2010-08-18 DEVICE FOR PRODUCING UPDATE DATA, INFORMATION DEVICE AND PROGRAM
US13/120,178 US8904374B2 (en) 2009-08-21 2010-08-18 Firmware update data generating apparatus and information device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009192413A JP5478986B2 (ja) 2009-08-21 2009-08-21 情報機器及びプログラム

Publications (2)

Publication Number Publication Date
JP2011044039A JP2011044039A (ja) 2011-03-03
JP5478986B2 true JP5478986B2 (ja) 2014-04-23

Family

ID=43607094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009192413A Expired - Fee Related JP5478986B2 (ja) 2009-08-21 2009-08-21 情報機器及びプログラム

Country Status (5)

Country Link
US (1) US8904374B2 (ja)
EP (1) EP2362311A4 (ja)
JP (1) JP5478986B2 (ja)
CN (1) CN102132260A (ja)
WO (1) WO2011021643A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012163994A (ja) * 2011-02-03 2012-08-30 Nec Corp ソフトウェア管理システム、ソフトウェア管理装置、制御方法、及びプログラム
KR101524096B1 (ko) * 2011-06-07 2015-06-01 엘에스아이 코포레이션 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리
US8997085B2 (en) * 2011-06-24 2015-03-31 International Business Machines Corporation Image delta-based upgrade of complex stack in software appliance
US8826265B2 (en) * 2011-10-24 2014-09-02 Texas Instruments Incorporated Data concentrator initiated multicast firmware upgrade
KR102261815B1 (ko) * 2014-10-30 2021-06-07 삼성전자주식회사 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
EP3251028A1 (en) * 2015-01-29 2017-12-06 Longsand Limited Regenerated container file storing
CN104661090A (zh) * 2015-02-04 2015-05-27 深圳市九洲电器有限公司 机顶盒升级方法及系统
US10860310B2 (en) 2015-09-30 2020-12-08 Apple Inc. Software updating
TWI602122B (zh) * 2016-06-08 2017-10-11 神雲科技股份有限公司 韌體更新方法
JP2018136816A (ja) * 2017-02-23 2018-08-30 住友電気工業株式会社 プログラム更新システム、制御装置、プログラム更新方法、及びコンピュータプログラム
KR20180131840A (ko) * 2017-06-01 2018-12-11 한국전자통신연구원 펌웨어 업데이트 지원 장치 및 그 방법
JP7013918B2 (ja) * 2018-02-16 2022-02-01 トヨタ自動車株式会社 車両制御装置、プログラム更新方法およびプログラム
JP6988636B2 (ja) * 2018-03-28 2022-01-05 トヨタ自動車株式会社 リプログラミング方法
US10503489B1 (en) * 2018-05-22 2019-12-10 Quanta Computer Inc. Updating firmware via a remote utility
US10795664B2 (en) * 2018-10-30 2020-10-06 Walmart Apollo, Llc Systems and methods for differential bundle updates
US10853495B2 (en) * 2019-03-29 2020-12-01 Microsoft Technology Licensing, Llc Method for patching and updating encrypted disk images in a reliable and secure fashion
CN110262827B (zh) * 2019-05-20 2020-07-03 北京三快在线科技有限公司 增量更新的方法、装置、存储介质以及电子设备
JP7377893B2 (ja) * 2019-12-24 2023-11-10 京セラ株式会社 通信機器及びプログラム
CN111857603B (zh) * 2020-07-31 2022-12-02 重庆紫光华山智安科技有限公司 数据处理方法及相关装置
CN112685067B (zh) * 2020-12-25 2025-01-07 浪潮电子信息产业股份有限公司 一种固件版本刷新方法、装置、系统和介质
EP4359917A4 (en) * 2021-06-23 2025-03-12 Red Bend Ltd UPDATING NON-VOLATILE MEMORY IN A COMPUTER-CONTROLLED DEVICE
CN114936037B (zh) * 2022-07-21 2022-12-09 天津七一二移动通信有限公司 一种兼容多型号铁路cir程序升级的夹具实现方法
US12066908B2 (en) 2022-07-29 2024-08-20 Dell Products Lp System and method for predicting and avoiding hardware failures using classification supervised machine learning
US12056031B2 (en) 2022-10-17 2024-08-06 Dell Products Lp System and method for pro-actively limiting a client information handling system from increase in greenhouse gas emissions

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0430218A (ja) * 1990-05-25 1992-02-03 Hitachi Ltd 差分インストール方式
JPH11110218A (ja) 1997-10-03 1999-04-23 Hitachi Ltd ファームウェア書き換え装置
US6216175B1 (en) * 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
JP2001325140A (ja) * 2000-05-17 2001-11-22 Mitsubishi Electric Corp ファイル転送装置
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US7600021B2 (en) * 2002-04-03 2009-10-06 Microsoft Corporation Delta replication of source files and packages across networked resources
US7814476B2 (en) * 2002-10-31 2010-10-12 Oracle America, Inc. Systems and methods for updating software
US7676506B2 (en) * 2003-06-20 2010-03-09 Innopath Software, Inc. Differential file compression of software image versions
US7089270B2 (en) * 2003-06-20 2006-08-08 Innopath Software Processing software images for use in generating difference files
US7600225B2 (en) * 2003-07-21 2009-10-06 Microsoft Corporation System and method for intra-package delta compression of data
WO2005055055A1 (ja) * 2003-12-05 2005-06-16 Fujitsu Limited データ管理システム,データ管理装置,データ管理方法,データ供給システム,データ管理プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
US7509636B2 (en) * 2003-12-15 2009-03-24 Microsoft Corporation System and method for updating files utilizing delta compression patching
US8539469B2 (en) * 2004-05-11 2013-09-17 Microsoft Corporation Efficient patching
US7552430B2 (en) * 2004-08-31 2009-06-23 Microsoft Corporation Patch sequencing
EP1811377A4 (en) * 2004-10-27 2009-04-01 Panasonic Corp RECEIVER DEVICE
US8387037B2 (en) * 2005-01-28 2013-02-26 Ca, Inc. Updating software images associated with a distributed computing system
US20070130232A1 (en) * 2005-11-22 2007-06-07 Therrien David G Method and apparatus for efficiently storing and managing historical versions and replicas of computer data files
KR100717064B1 (ko) * 2006-03-03 2007-05-10 삼성전자주식회사 소프트웨어 업데이트 실행 방법 및 장치
US7716414B2 (en) * 2006-03-31 2010-05-11 Hewlett-Packard Development Company, L.P. Method for updating a mobile device using an update package obtained from a remote server
CN101055526A (zh) * 2006-04-14 2007-10-17 英保达股份有限公司 利用数字广播系统进行固件更新的方法及其系统
US7665081B1 (en) * 2006-05-06 2010-02-16 Kaspersky Lab, Zao System and method for difference-based software updating
US20070263716A1 (en) * 2006-05-10 2007-11-15 Himax Technologies, Inc. Digital video broadcasting method for updating firmware image of digital set-top box or digital television
JP4864557B2 (ja) * 2006-06-15 2012-02-01 富士通株式会社 ソフトウェアの更新処理プログラム及び更新処理装置
CN101356519B (zh) * 2006-06-19 2011-11-09 三星电子株式会社 用于可利用空中机制的便携式设备的程序升级系统及方法
US8539471B2 (en) * 2007-12-13 2013-09-17 Telefonaktiebolaget L M Ericsson (Publ) Updating firmware of an electronic device
JP5113699B2 (ja) * 2008-09-24 2013-01-09 株式会社日立ソリューションズ ファームウェア更新システム、及び更新イメージ生成・配布サーバ装置
JP5342302B2 (ja) * 2009-03-30 2013-11-13 株式会社日立ソリューションズ ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
US20100293538A1 (en) * 2009-05-15 2010-11-18 Microsoft Corporation Dynamic program updating in a continuation based runtime

Also Published As

Publication number Publication date
US8904374B2 (en) 2014-12-02
EP2362311A4 (en) 2013-08-07
CN102132260A (zh) 2011-07-20
JP2011044039A (ja) 2011-03-03
US20110179408A1 (en) 2011-07-21
EP2362311A1 (en) 2011-08-31
WO2011021643A1 (ja) 2011-02-24

Similar Documents

Publication Publication Date Title
JP5478986B2 (ja) 情報機器及びプログラム
JP5346253B2 (ja) ファームウェア更新システム、及び情報機器、並びにプログラム
JP5342302B2 (ja) ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
JP5113699B2 (ja) ファームウェア更新システム、及び更新イメージ生成・配布サーバ装置
US9483357B2 (en) Selective restore from incremental block level backup
US7676503B2 (en) Hybrid computer restore using network service
US11662996B2 (en) System and method for downgrading applications
CN101882156B (zh) Silverlight客户端可控缓存方法和系统
CN1607500A (zh) 通过围栏和解围栏对复制信息的权限进行的粒度控制
CN1925495A (zh) 同步服务器和客户机间的epg信息的方法和装置
KR20110107800A (ko) 폐기 가능 파일
CN109086078A (zh) 安卓系统升级方法、装置、服务器及移动终端
JP2005316715A (ja) 文書管理システムおよび方法およびプログラム
JP4088650B2 (ja) 情報配布方法
JP2013118510A (ja) 画像処理装置及び画像処理方法
JP5375550B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
JP5326547B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
CN114527935A (zh) 数据存储方法、装置、电子设备、介质及程序产品
CN119645719A (zh) 用于在存储系统中恢复对象的方法、设备和计算机程序产品
JP2006252312A (ja) コンテンツ管理システム及びこれに用いるプログラム
KR20080069072A (ko) 주변기기의 펌웨어 갱신 장치 및 방법
JP2007128558A (ja) 情報端末装置
JP2009053883A (ja) 情報処理装置、デバイスドライバ及び記録媒体
JP2006178551A (ja) 自動データバックアップシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130726

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140212

R150 Certificate of patent or registration of utility model

Ref document number: 5478986

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees