JP2016503214A - 動的ファームウェア更新 - Google Patents

動的ファームウェア更新 Download PDF

Info

Publication number
JP2016503214A
JP2016503214A JP2015552614A JP2015552614A JP2016503214A JP 2016503214 A JP2016503214 A JP 2016503214A JP 2015552614 A JP2015552614 A JP 2015552614A JP 2015552614 A JP2015552614 A JP 2015552614A JP 2016503214 A JP2016503214 A JP 2016503214A
Authority
JP
Japan
Prior art keywords
data object
version
consumer
dynamic
firmware
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.)
Granted
Application number
JP2015552614A
Other languages
English (en)
Other versions
JP6134390B2 (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2016503214A publication Critical patent/JP2016503214A/ja
Application granted granted Critical
Publication of JP6134390B2 publication Critical patent/JP6134390B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

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 Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

動的ファームウェア更新プロセスが、動的データオブジェクトの更新バージョンをファームウェアメモリにおいて見つけることを含む。コンシューマによって使用中の動的データオブジェクトの使用中バージョン用のコールバックハンドルが特定される。動的データオブジェクトの更新バージョンのコンシューマは、コールバックハンドルを用いて通知を受ける。【選択図】図1

Description

現代のコンピュータ及びコンピュータベースのシステムは、通常、不揮発性「ファームウェア」メモリに記憶されてコンピュータベースのシステムの初期化及び低レベル機能用に用いられるプラットフォームファームウェア、すなわち、コード(命令及び非命令タイプのデータを表す)を備える。通常、ファームウェアコードは、使用に備えて比較的高速の揮発性メモリ内にロードされる。
ファームウェアを更新すること、例えば、ファームウェアバグを修正すること、特徴を追加すること、又はシステムパラメータを微調整することが時に望ましいことがある。旧式のコンピュータシステムでは、ファームウェアの更新は、そのファームウェアを用いてコード化された1つのファームウェア読み出し専用メモリ(ROM)を取り出して、更新されたファームウェアを用いてコード化された別のものに交換して取り替えることが必要となることがある。より最近では、ファームウェア更新を所定の位置で更新することができるように、ファームウェアは、書き換え可能不揮発性メモリに記憶される。そのような更新は、システムが再初期化される、すなわち、リブートされると効力を生じることができる。
以下の図は、例を表すものであって、本発明そのものではない。
一例によるシステムの概略図である。 図1のシステム上で実施可能な、一例によるデータオブジェクト要求ハンドリングプロセスのフローチャートである。 図1のシステム上で実施可能な、一例によるファームウェア更新プロセスのフローチャートである。 一例による別のシステムの概略図である。 図4のシステム上で実施可能な、一例によるファームウェア更新プロセスのフローチャートである。
コンピュータが「高可用」であることが期待されるミッションクリティカルな状況、例えば、ネットワーク支援型医療アラート及び他の緊急サービス、金融取引、並びにオンライン小売では、システムをリブートしてファームウェアのインストールを完了することは、多くのコストを要する可能性がある。本明細書における例は、幾つかのファームウェア更新を、リブートすることなく実施することを可能にする。これは、リブートに関連したコストを節減するだけでなく、ファームウェア更新のより幅広い使用も促進し、例えば、ファームウェアパラメータを動的に微調整することによって性能を高める。本明細書では、ファームウェア更新は、リブートすることなく実施することができる(すなわち、単に書き込まれるだけとは異なり、使用することができる)場合に「動的」である。
図1に示す一例のシステム100は、コード104を用いてコード化された記憶媒体102を備える。コード104は、ファームウェア112及びデータマネージャ114(変形形態に応じて、ファームウェアである場合もあるし、ファームウェアでない場合もある)を含む。ファームウェア112のデータは、動的データボリューム、例えば、ボリューム116及び118に配置される。各データボリュームは、データオブジェクト識別子(ID)120と、データオブジェクトバージョンID122と、データオブジェクト126とを指定するデータオブジェクトメタデータを含む。データマネージャ114は、ファームウェアデータオブジェクトを得るためのコンシューマ(例えば、ソフトウェアエンティティ)からの要求128を管理する。データマネージャは、どのコンシューマがどのデータオブジェクトを用いているのかを、データオブジェクトID134をコンシューマコールバックハンドル132に関連付けて記憶するデータ構造体130内に記録する。
データマネージャ114は、図2にフローチャート化されたデータオブジェクト要求ハンドリングプロセス200を実施するものである。201において、データオブジェクトを得るための要求がコンシューマから受信される。202において、要求されたデータオブジェクトの最新(most-recent)バージョンが特定される。203において、そのコンシューマ用のコールバックハンドルが、要求されたデータオブジェクトの識別情報に関連付けて記憶される。204において、要求されたデータオブジェクトの最新バージョンが、そのデータオブジェクトの「使用中」バージョンになるようにコンシューマに提供される。以下で更に説明するように、プロセス200は、他のエンティティが実施することができ、データマネージャ114は、他のプロセスを実施することができる。
データマネージャ114は、図3にフローチャート化されたデータオブジェクト更新プロセス300を実施することができる。301において、データオブジェクトのバージョンの更新バージョンが見つけられる。302において、そのデータオブジェクトのコンシューマのコールバックハンドルが特定される。303において、このコールバックハンドルを用いて、データオブジェクトのコンシューマに更新が通知される。
コンシューマに更新が通知されると、コンシューマは、更新されたオブジェクトを直ちに又は後の時点で要求することができる。例えば、更新されたデータオブジェクトを要求すること及び用いることが、衝突又は他の問題を進行中の手順に引き起こす場合、コンシューマは、データオブジェクトのそのコピーを更新するのにより適切な時機を待つことができる。いずれにしても、動的データファームウェア更新は、リブート(高可用性コンピュータシステムのサービスレベルの目的と干渉する場合がある)を必要とすることなく、いずれのコヒーレンス問題も回避する方法で管理することができる。
次の例に示すように、データボリュームは、システム100について示されたもの以外のデータオブジェクトメタデータを記憶することができる。例えば、データボリュームは、更新が認可されたソースからのものであり、エラー又は悪意の結果でないことを保証するのに用いることができるセキュリティキーを含みうる。
コンピュータシステム400は、プロセッサ402と、通信デバイス404と、非一時的な記憶媒体406とを含む。媒体406は、コード408を用いてコード化されている。コード408は、ファームウェア410と、コンシューマ412と、ファームウェア更新ユーティリティ414と、更新フラグ416とを含む。別の例では、フラグ416は、ハードウェアにより実施される。ファームウェア410は、データマネージャ420と、更新ハンドラ422と、データボリューム432、434、及び436を含むデータボリューム430とを含む。
各データボリューム430は、データボリュームデータ構造体とそのコンテンツとを組み合わせたものである。これらのコンテンツは、データオブジェクトIDと、データオブジェクト属性と、データオブジェクトバージョンIDと、セキュリティキーと、他のメタデータと、データオブジェクトとを含む。データオブジェクトIDは、グローバル一意識別子(GUID)とすることができる。データオブジェクト属性は、所与のデータオブジェクトが動的データオブジェクトであるのか又は静的データオブジェクトであるのかを指定する。リブートすることなく変更を実施することができるのが動的データオブジェクトである一方、変更された静的データオブジェクトを実施するにはリブートすることが必要とされる。「他のメタデータ」は、データボリューム又はデータオブジェクト値の境界が位置する場所を決定するのに用いることができるロケーション又はオブジェクトサイズ情報を含みうる。加えて、「他のメタデータ」は、データマネージャ420又はコンシューマ412に有用なデータオブジェクトを特徴付ける他の情報を含みうる。
データボリューム432は、データオブジェクトID440と、属性442と、バージョンID444と、有効フラグ445と、セキュリティキー446と、他のメタデータ447と、データオブジェクト448とを含む。属性442は、「静的」に設定され、そのため、データオブジェクトID440を有するデータオブジェクトに対する(別のデータボリュームによって表される)変更は、システム400のリブートの後にしか行われない。バージョンID444は、最新バージョンであり、この場合、データボリューム430の中で表されるデータオブジェクトの最新バージョンである。データオブジェクト448は、要求に応答してコンシューマ412に提供されるデータオブジェクトである。
データボリューム434は、データオブジェクトID450と、属性452と、バージョンID454と、有効フラグ455と、セキュリティキー456と、他のメタデータ457と、データオブジェクト458とを含む。この場合、属性452は、データオブジェクト(値)の変更をリブートすることなく実施することができることを示す「動的」に設定されている。「4.2」等の数値とすることができるバージョンIDは、ID450を有するデータオブジェクトがコンシューマ412によって現在使用中であるという点において、このデータオブジェクトの使用中バージョンに偶然対応している。
しかしながら、使用中データオブジェクト458は、コンシューマ412によって要求された時点では最新バージョンであったが、図4に表された時点では最新バージョンではない。この理由は、コンシューマ412がデータオブジェクト458を要求してから、より新しいバージョンがファームウェア410に書き込まれたからである。このより新しい更新バージョンは、データボリューム436に表される。
データボリューム436は、データオブジェクトID460と、属性462と、バージョンID464と、有効フラグ465と、セキュリティキー466と、他のメタデータ467と、データオブジェクト468とを含む。データオブジェクト468は、データオブジェクト458の更新バージョンである。したがって、データオブジェクトID460は、データオブジェクトID450に等しく、バージョンID464(例えば、バージョン4.3)は、バージョンID454(例えば、バージョン4.2)よりも後のバージョンに対応する。オブジェクトの異なるバージョンの属性は一般に同じであり、そのため、属性452及び462は同じであり、ともに「動的」に設定されている。ただし、幾つかの場合には、更新がデータオブジェクトの属性を変更する。
データマネージャ420は、どのコンシューマがどのデータオブジェクトを用いているのかを記録する。このために、データマネージャ420は、コンシューマコールバックハンドル472を、コンシューマによって現在使用中の各データオブジェクトのデータオブジェクト識別情報474と、使用中のデータオブジェクトのデータオブジェクトバージョンIDとに関連付けるデータ構造体、例えばコールバックテーブル470を含む。例えば、図4に表された時に、データオブジェクト458のオブジェクト識別情報は、コールバックテーブル470においてコンシューマコールバックハンドルに関連付けられる。
システム400は、図5にフローチャート化されたファームウェア更新プロセス500の実施態様を提供する。プロセス500は、要求セクション510と、更新セクション520とを含む。要求セクション510は、データマネージャが、データオブジェクトを得るための要求をコンシューマから受信する動作511を含む。この要求は、そのオブジェクトのGUID又は他の識別子を指定することができる。
512において、データマネージャは、要求を満たすために、要求されたデータオブジェクトの適切なバージョンを得るためにデータボリュームを検索する。513において、データマネージャは、データオブジェクトの適切なバージョンを見つける。図示したプロセス500では、適切なバージョンは、最新の有効なバージョンである。無効なバージョンは、それらのそれぞれの有効フラグによって示されるので、検索されない。近時のものであることは、要求されたデータオブジェクトの見つけられた有効なバージョンのバージョン番号を比較することによって判断することができる。
データオブジェクトの更新の直後において、更新バージョンは、コンシューマによる使用中のどのバージョンとも異なる可能性がある。別のコンシューマが、最新バージョンが使用中バージョンと異なるデータオブジェクトを要求した場合、最新バージョンではなく使用中バージョンを用いてこの要求を満たすことが、一貫性を得るために望ましい場合がある。そのような例及びシナリオでは、使用中バージョンが、要求を満たすのに用いられる「適切」なバージョンである。プロセス500の図示した変形形態では、データオブジェクトの更新バージョンは、データマネージャがその更新バージョンの通知を受けるまで「有効」とマーキングされない。したがって、データマネージャは、更新(すなわち、最新)バージョンを用いて、データオブジェクトを得るためのいずれかの追加の要求を満たす前に、要求されたデータオブジェクトの使用中バージョンを廃棄することができる。
514において、データマネージャは、データオブジェクトの適切なバージョンの「静的」対「動的」の属性を調べる。515において、属性が「動的」である場合に限って、データマネージャは、例えば、コールバックテーブル470において、データオブジェクト識別情報及びデータオブジェクトバージョン識別情報にコールバックハンドルを関連付ける。属性が「静的」である場合には、コールバックテーブルにおいてエントリは行われない。516において、データマネージャは、そのデータオブジェクトを要求したコンシューマに、データオブジェクトの適切なバージョンを提供することによって要求を満たす。
プロセス500の更新セクション520は、521において、更新ツールが、ファームウェアの未使用エリアにおける新たなボリュームに、更新されたデータオブジェクトを書き込むことを含む。データオブジェクトが更新されるとき、更新バージョンは、ファームウェアの空のエリアに書き込まれ、以前のバージョンは削除されない。しかしながら、それよりも古いバージョンに戻ることがないこと又はそれらの古いバージョンを別の方法で用いることがないことが確実であると、更新ユーティリティは、それらの古いバージョンの「クリーンアップ」を提供することができる。プロセス500の図示した変形形態では、更新バージョンの有効フラグは、「無効」に初期設定される。
522において、データマネージャは更新の通知を受ける。ある変形形態では、データマネージャは、データボリュームを(例えば、定期的に)ポーリングすることによって更新を知る。別の変形形態では、更新ツールが、更新フラグ(例えば、フラグ416)を設定し、更新ハンドラ(例えば、更新ハンドラ422)をトリガする。このハンドラは、プラットフォーム管理割り込み又はシステム管理割り込み(SMI)を用いてトリガすることができる。そして、更新ハンドラは、データマネージャに更新を通知する。
523において、データマネージャは、更新用のデータボリューム及びその直前の更新用のデータボリュームを検索して見つける。データマネージャは、これらのデータボリュームをそれらのバージョンIDによって特定することができる。524において、直前の更新のバージョンの属性が「動的」である場合に限って、データマネージャは、例えば、データマネージャの秘密鍵472を用いて更新バージョン用のセキュリティキーを調べることによって、データオブジェクトの更新バージョンの有効性の確認を試みる。データオブジェクトの全てのバージョンが同じ属性値を有することが要件とされている場合、524において、更新バージョンの属性を、その直前の更新の属性の代わりに用いることができることに留意されたい。524において、以前のバージョンが「静的」である場合、次のブートまでこの更新に関して更なる動作は行われず、次のブート時に、有効性確認が実行される。
525において、更新バージョンが有効であると判断された場合、525おいて、データマネージャは、その有効フラグを「有効」に設定する。プロセス500の別の変形形態では、更新ハンドラが有効性チェックを実行し、更新が有効である場合に限って、データマネージャに更新を通知し、有効フラグを「有効」に設定する。データオブジェクトの更新バージョンが無効であると判断された場合、例えば、更新バージョンは、引き続き「無効」とマーキングされるか又は削除される。
526において、データマネージャは、更新された動的データオブジェクトと一致するエントリを得るためにそのコールバックテーブルを調べる。一致するものがある場合、各関連付けられたコールバックハンドルは、それぞれのコンシューマに更新を通知するのに用いられる。527において、動的データオブジェクトが使用中である場合に限って、データマネージャは、(データオブジェクトの以前のバージョンを用いている)単数又は複数のコンシューマに更新を通知する。データマネージャは、以前のデータオブジェクトのコンシューマがこの以前のデータオブジェクトをもはや用いなくなるまで、同じデータオブジェクトについての他のコンシューマによる要求を保留することができる。そして、プロセス500は、介在するリブートなしに511に戻ることができる。コンシューマは、データオブジェクトの以前のバージョンの使用を所与として適宜、通知の直後又は或る後の時点において動的データオブジェクトを要求することができる。
ある代替例は、有効性を示すデータオブジェクトボリューム内の有効フラグを用いない。その代わり、データマネージャは、静的データオブジェクトの更新を内部で追跡し、それらの更新が、リブートよりも前にコンシューマ要求を満たすのに用いられないようにする。リブートされると、更新を追跡するのに用いられたデータは失われ、そのため、リブート後、データマネージャは、更新された静的データオブジェクトを用いて要求を満たす。
本明細書において、「システム」は、インタラクトする非一時的な有形の要素の集合であり、これらの要素は、限定ではなく例として、機械的構成要素、電気的要素、原子的要素(atoms)、命令を物理的にコード化したもの、及びプロセス動作とすることができる。本明細書において、「プロセス」は、物理的な変換をもたらすか又は伴う動作のシーケンスを指す。
本明細書において、文脈から別段明らかでない限り、「データ」は、非命令タイプのデータだけでなく、実行可能命令も包含する包括的な意味で用いられる。本明細書において、「データオブジェクト」は、単一のビット、ストリング、並びにビット及び/又はストリングの配列を包含する。本明細書において、「記憶媒体」は、その内部又はその上に、(命令及び非命令タイプのデータを含む)データ及びデータオブジェクトを用いて、情報がコード化されるか又は情報をコード化することができる非一時的な有形の材料を備えるシステムを指す。本明細書において、文脈から別段明らかでない限り、「ファームウェア」は、永続的な固体メモリ(すなわち、不揮発性メモリ)及び永続的な固体メモリからのブートコードから得られるコードを指す。「ファームウェアメモリ」は、ファームウェアコードを記憶するのに用いられる非揮発性メモリを指す。
本明細書において、「バージョン」は、同じ物/ものの他のバージョンと何らかの点で異なる物/もの、例えばデータオブジェクトの特定の形態である。本明細書において、データオブジェクトは、リブートなしで更新して用いることができる場合に「動的」であると言われる。本明細書において、データオブジェクトは、その更新をリブートなしでは用いることができない場合に「静的」であると言われる。本明細書において、「コンシューマ」は、データオブジェクトを要求して用いる実行プロセスである。本明細書において、「コールバックハンドル」は、例えばデータオブジェクトを得るための要求を事前に送信したプロセスに情報を送信するのに用いられるデータアイテムである。
本明細書において、「コンピュータ」は、物理的にコード化された命令に従って、物理的にコード化されたデータを操作するためのハードウェアマシンを指す。本明細書において、文脈から別段明らかでない限り、コンピュータの機能的に規定された構成要素は、ハードウェアと、そのハードウェア上で実行されて規定された機能を提供するソフトウェアとを組み合わせたものである。
本明細書において、「プロセッサ」は、命令を実行するためのハードウェアを指す。プロセッサは、モノリシックデバイス、例えば集積回路、デバイスの一部分、例えばマルチコア集積回路のコア、又はデバイスの分散された若しくは同じ位置に配置されたセットとすることができる。本明細書において、「通信デバイス」は、通信に用いられるデバイスを指し、ネットワークデバイスと、入力及び出力に用いられるデバイス、例えばヒューマンインタフェースデバイスとの双方を含む。
この明細書では、関連技術が説明の目的で論述されている。「従来技術」というラベルが付けられた関連技術がもしあれば、それは自ら認めた従来技術である。「従来技術」というラベルが付けられていない関連技術は、自ら認めた従来技術ではない。特許請求の範囲において、「前記」の語が用いられている場合、それは、明示的な全く同じ語の先行詞が存在する要素を導入するものである。また、「前記」の語は、先行詞が「暗黙的」である場合がある要素も導入するものである。図示した実施形態及び他の説明した実施形態と、それらに対する変更形態及び変形形態とは、添付の特許請求の範囲の範囲内にある。

Claims (15)

  1. コンピュータにより実施される動的ファームウェア更新プロセスであって、
    ファームウェアメモリにおいて動的データオブジェクトの更新バージョンを見つけるステップと、
    コンシューマによって使用中の前記動的データオブジェクトの使用中バージョン用のコールバックハンドルを特定するステップと、
    前記コールバックハンドルを用いて、前記動的データオブジェクトの前記更新バージョンを前記コンシューマに通知するステップと
    を含んでなる、コンピュータにより実施される動的ファームウェア更新プロセス。
  2. 前記見つけるステップよりも前に、前記動的データオブジェクトのどの以前のバージョンも上書きすることなく、前記動的データオブジェクトの前記更新バージョンを前記ファームウェアメモリに書き込むステップを更に含む、請求項1に記載のプロセス。
  3. 前記通知するステップは、介在するリブートなしに前記書き込むステップに後続する、請求項2に記載のプロセス。
  4. 前記見つけるステップは、前記ファームウェアに表されるデータマネージャによって実行され、前記更新バージョンを前記書き込むステップは、更新ユーティリティによって実行される、請求項2に記載のプロセス。
  5. 前記通知するステップの後に、前記動的データオブジェクトを得るための要求を前記コンシューマから受信するステップと、
    前記要求に応答して、前記コンシューマ用のコールバックハンドルを前記動的データオブジェクトの前記更新バージョンに関連付けて書き込むステップと、
    前記要求に応答して、前記更新されたデータオブジェクトを前記コンシューマに提供するステップと
    を更に含む、請求項1に記載のプロセス。
  6. 前記ファームウェアメモリにおける第2のデータオブジェクトを得るための要求を前記コンシューマから受信するステップと、
    前記第2のデータオブジェクトの属性によって、前記第2のデータオブジェクトが静的であることを示すか又は動的であることを示すかを判断するステップと、
    前記第2のデータオブジェクトが動的であることを前記属性が示す場合に限って、前記第2のデータオブジェクトの他のバージョンを前記ファームウェアメモリにおいて検索するステップと
    を更に含む、請求項5に記載のプロセス。
  7. データマネージャ及びファームウェアを規定するコードを用いてコード化された非一時的記憶媒体を備えるシステムであって、前記ファームウェアは、それぞれのデータオブジェクトバージョンを、関連付けられたデータオブジェクト識別子(ID)及びデータオブジェクトバージョンIDとともに含むデータボリュームを含み、前記データマネージャは、
    コンシューマからの動的データオブジェクトを得るための要求に応答して、前記データオブジェクトのデータオブジェクトID及び前記動的データオブジェクトの種々のバージョンのデータオブジェクトバージョンIDを用いて前記動的データオブジェクトの最新バージョンを特定し、
    前記コンシューマ用のコールバックハンドルを前記動的データオブジェクトの前記最新バージョンに関連付けて記憶し、
    前記動的データオブジェクトが使用中に動的データオブジェクトになるように、前記動的データオブジェクトの前記最新バージョンを前記コンシューマに提供する、
    ようにプロセッサによって実行可能である、データマネージャ及びファームウェアを規定するコードを用いてコード化された非一時的な記憶媒体を備えるシステム。
  8. 前記プロセッサを更に備える、請求項7に記載のシステム。
  9. 前記データマネージャは、
    前記提供した後に、前記使用中動的データオブジェクトの更新バージョンを見つけ、
    前記使用中動的データオブジェクトに関連したコールバックハンドルを特定し、
    前記コールバックハンドルを用いて、前記更新バージョンが存在することを前記コンシューマに通知する、
    ように更に実行可能である、請求項7に記載のシステム。
  10. 前記データオブジェクトのうちの幾つかは、静的データオブジェクトであり、該静的データオブジェクトは、それらの更新が、該更新された静的データオブジェクトを前記ファームウェアのデータボリュームに書き込んだ後に続くリブート後にしか使用することができないものであり、前記ボリュームは、前記データオブジェクトが静的であるか又は動的であるかを示す前記それぞれのデータオブジェクトバージョンの属性を含む、請求項7に記載のシステム。
  11. 前記コードは、データオブジェクトの更新バージョンを含む新たなデータオブジェクトボリュームを前記ファームウェア内に準備して、該データオブジェクトの更新バージョンがそのデータオブジェクトの最新バージョンとなるようにするファームウェア更新ユーティリティを更に規定しており、前記ボリュームは、データオブジェクトIDと、データオブジェクトバージョンIDと、静的対動的属性についての前記データオブジェクトとを指定し、前記新たなデータオブジェクトボリュームは、コンシューマ用のコールバックハンドルを入力するためのフィールドを含む、請求項7に記載のシステム。
  12. 前記コードは、更新ハンドラを更に規定し、前記ファームウェア更新ユーティリティは、更新が前記ファームウェアに書き込まれたことを示すフラグを更に設定し、前記更新ハンドラをトリガし、前記更新ハンドラは、前記トリガに応答して、前記更新を前記データマネージャに通知する、請求項11に記載のシステム。
  13. コンピュータにより実施されるプロセスであって、
    データオブジェクトの更新バージョンを見つけるステップと、
    前記データオブジェクトの使用中バージョン用のコールバックハンドルを特定するステップと、
    前記コールバックハンドルを用いて、前記データオブジェクトの前記更新バージョンが存在することを前記データオブジェクトのコンシューマに通知するステップと
    を含んでなる、コンピュータにより実施されるプロセス。
  14. コンピュータにより実施されるプロセスであって、
    データオブジェクトを得るための要求をコンシューマから受信するステップと、
    前記データオブジェクトの複数のバージョンのうちの最新のものをファームウェアメモリにおいて特定するステップと、
    前記コンシューマ用のコールバックハンドルを前記データオブジェクトの識別情報に関連付けて記憶するステップと、
    前記最新バージョンを前記コンシューマに提供するステップと
    を含んでなる、コンピュータにより実施されるプロセス。
  15. 前記データオブジェクトの前記最新バージョンを前記ファームウェアメモリに書き込むステップと、
    前記書き込むステップに応答して、前記更新を前記コンシューマに通知するステップと
    を更に含む、請求項14に記載のプロセス。
JP2015552614A 2013-01-15 2013-01-15 動的ファームウェア更新 Expired - Fee Related JP6134390B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/021515 WO2014112969A1 (en) 2013-01-15 2013-01-15 Dynamic firmware updating

Publications (2)

Publication Number Publication Date
JP2016503214A true JP2016503214A (ja) 2016-02-01
JP6134390B2 JP6134390B2 (ja) 2017-05-24

Family

ID=51209929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015552614A Expired - Fee Related JP6134390B2 (ja) 2013-01-15 2013-01-15 動的ファームウェア更新

Country Status (7)

Country Link
US (1) US10101988B2 (ja)
EP (1) EP2946287B1 (ja)
JP (1) JP6134390B2 (ja)
CN (1) CN104903853B (ja)
BR (1) BR112015016953A2 (ja)
TW (1) TWI567649B (ja)
WO (1) WO2014112969A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018112913A (ja) * 2017-01-12 2018-07-19 株式会社東芝 電子装置、icカードおよび情報処理システム
JP2019510308A (ja) * 2016-03-04 2019-04-11 コンヴィーダ ワイヤレス, エルエルシー サービス層における要求処理

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101524096B1 (ko) * 2011-06-07 2015-06-01 엘에스아이 코포레이션 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리
US20160188351A1 (en) * 2014-12-24 2016-06-30 Bull Hn Information Systems, Inc. Process for providing increased power on demand in a computer processing system with submodeling
US10481893B1 (en) 2015-08-10 2019-11-19 American Megatrends International, Llc Identifying and resolving firmware component dependencies
US10430179B1 (en) * 2019-03-07 2019-10-01 Capital One Services, Llc Methods and systems for managing application configurations
US11256499B2 (en) 2019-12-20 2022-02-22 Hewlett Packard Enterprise Development Lp Hotfix-firmware having updates to a firmware at runtime

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04213148A (ja) * 1990-12-07 1992-08-04 Hitachi Ltd オンライン分散プログラム入替え方法
JPH07104992A (ja) * 1993-10-07 1995-04-21 Nec Corp 動的リンクプログラムの実時間置換方式
JP2000259519A (ja) * 1999-03-10 2000-09-22 Toshiba Corp ネットワークシステム
JP2002366381A (ja) * 2001-06-12 2002-12-20 Hitachi Ltd オブジェクトの動的入替え処理方法
JP2004318880A (ja) * 2003-04-10 2004-11-11 Internatl Business Mach Corp <Ibm> ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置
JP2005050097A (ja) * 2003-07-28 2005-02-24 Sony Corp 情報処理装置、情報処理方法、プログラム、記録媒体
JP2008090846A (ja) * 2006-10-02 2008-04-17 Fisher Rosemount Syst Inc プロセス制御システムにおいて使用する機能ブロックの動作を修正変更するための方法及び動的モディファイア機能ブロック
JP2008165627A (ja) * 2006-12-28 2008-07-17 Fujitsu Ltd 組込装置および制御方法
JP2009265980A (ja) * 2008-04-25 2009-11-12 Canon Inc 情報処理装置
JP2012043118A (ja) * 2010-08-18 2012-03-01 Ricoh Co Ltd 情報処理装置、電子機器、更新処理支援方法、更新処理支援プログラム、及び更新処理支援システム
JP2012248018A (ja) * 2011-05-27 2012-12-13 Fuji Xerox Co Ltd 管理装置、管理システム、及びプログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
US6148349A (en) * 1998-02-06 2000-11-14 Ncr Corporation Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification
US6353926B1 (en) * 1998-07-15 2002-03-05 Microsoft Corporation Software update notification
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US6536038B1 (en) * 1999-11-29 2003-03-18 Intel Corporation Dynamic update of non-upgradeable memory
US7197545B1 (en) * 2000-08-28 2007-03-27 Sanavigator, Inc. Techniques for dynamically loading modules for devices discovered in a storage network
US7146609B2 (en) * 2002-05-17 2006-12-05 Sun Microsystems, Inc. Method, system and article of manufacture for a firmware image
US7899888B2 (en) * 2002-06-28 2011-03-01 Oracle America, Inc. Runtime versioning of information processing systems
JP4341984B2 (ja) 2003-02-21 2009-10-14 国立大学法人富山大学 アミラーゼ活性測定キット
US20040230965A1 (en) * 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US6978452B2 (en) * 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US7260818B1 (en) * 2003-05-29 2007-08-21 Sun Microsystems, Inc. System and method for managing software version upgrades in a networked computer system
US7305672B2 (en) * 2004-01-06 2007-12-04 International Business Machines Corporation Dynamic software update system, method and program product
US8117293B1 (en) * 2005-01-05 2012-02-14 Smith Micro Software, Inc. Method of receiving, storing, and providing device management parameters and firmware updates to application programs within a mobile device
US8707297B2 (en) 2006-07-26 2014-04-22 Dell Products L.P. Apparatus and methods for updating firmware
US20080155524A1 (en) 2006-12-26 2008-06-26 Fuja Shone Firmware Updating and Extending Method for Application Specific Integrated Circuit
US7996850B2 (en) * 2006-12-28 2011-08-09 Sap Ag Dynamic business object properties for SOA architectures
JP4940967B2 (ja) * 2007-01-30 2012-05-30 富士通株式会社 ストレージシステム、ストレージ装置、ファームウェアの活性交換方法、ファームウェアの活性交換プログラム
US8185886B2 (en) * 2007-06-26 2012-05-22 Intel Corporation Method and apparatus to enable dynamically activated firmware updates
TW200923781A (en) * 2007-11-29 2009-06-01 Qisda Corp Firmware updating system for updating firmware of a display device and method thereof
WO2009156615A1 (fr) 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
US8250246B2 (en) * 2008-07-09 2012-08-21 Finisar Corporation Loading and executing firmware module without resetting operation
US8392895B2 (en) 2009-01-13 2013-03-05 Mediatek Inc. Firmware extension method and firmware builder
US8527613B2 (en) * 2009-01-26 2013-09-03 Assa Abloy Ab Provisioned firmware updates using object identifiers
TWI386847B (zh) 2009-02-04 2013-02-21 Novatek Microelectronics Corp 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置
KR101605875B1 (ko) * 2009-04-03 2016-03-24 삼성전자주식회사 메모리 장치 및 메모리 장치의 펌웨어 업데이트 방법
US8874515B2 (en) * 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US8972973B2 (en) * 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US8972964B2 (en) * 2012-07-26 2015-03-03 Unisys Corporation Dynamic firmware updating system for use in translated computing environments
US9116775B2 (en) * 2013-05-15 2015-08-25 Dell Products L.P. Relationship-based dynamic firmware management system
GB2518257A (en) * 2013-09-13 2015-03-18 Vodafone Ip Licensing Ltd Methods and systems for operating a secure mobile device

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04213148A (ja) * 1990-12-07 1992-08-04 Hitachi Ltd オンライン分散プログラム入替え方法
JPH07104992A (ja) * 1993-10-07 1995-04-21 Nec Corp 動的リンクプログラムの実時間置換方式
JP2000259519A (ja) * 1999-03-10 2000-09-22 Toshiba Corp ネットワークシステム
JP2002366381A (ja) * 2001-06-12 2002-12-20 Hitachi Ltd オブジェクトの動的入替え処理方法
JP2004318880A (ja) * 2003-04-10 2004-11-11 Internatl Business Mach Corp <Ibm> ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置
JP2005050097A (ja) * 2003-07-28 2005-02-24 Sony Corp 情報処理装置、情報処理方法、プログラム、記録媒体
JP2008090846A (ja) * 2006-10-02 2008-04-17 Fisher Rosemount Syst Inc プロセス制御システムにおいて使用する機能ブロックの動作を修正変更するための方法及び動的モディファイア機能ブロック
JP2008165627A (ja) * 2006-12-28 2008-07-17 Fujitsu Ltd 組込装置および制御方法
JP2009265980A (ja) * 2008-04-25 2009-11-12 Canon Inc 情報処理装置
JP2012043118A (ja) * 2010-08-18 2012-03-01 Ricoh Co Ltd 情報処理装置、電子機器、更新処理支援方法、更新処理支援プログラム、及び更新処理支援システム
JP2012248018A (ja) * 2011-05-27 2012-12-13 Fuji Xerox Co Ltd 管理装置、管理システム、及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019510308A (ja) * 2016-03-04 2019-04-11 コンヴィーダ ワイヤレス, エルエルシー サービス層における要求処理
US11290559B2 (en) 2016-03-04 2022-03-29 Convida Wireless, Llc Request processing in the service layer
US11659063B2 (en) 2016-03-04 2023-05-23 Convida Wireless, Llc Request processing in the service layer
JP2018112913A (ja) * 2017-01-12 2018-07-19 株式会社東芝 電子装置、icカードおよび情報処理システム

Also Published As

Publication number Publication date
BR112015016953A2 (pt) 2017-07-11
CN104903853A (zh) 2015-09-09
EP2946287A4 (en) 2016-10-19
TW201439913A (zh) 2014-10-16
US10101988B2 (en) 2018-10-16
TWI567649B (zh) 2017-01-21
EP2946287B1 (en) 2021-03-03
WO2014112969A1 (en) 2014-07-24
JP6134390B2 (ja) 2017-05-24
EP2946287A1 (en) 2015-11-25
CN104903853B (zh) 2018-09-04
US20150355897A1 (en) 2015-12-10

Similar Documents

Publication Publication Date Title
JP6134390B2 (ja) 動的ファームウェア更新
US8972967B2 (en) Application packages using block maps
US8904377B2 (en) Reconfiguration of computer system to allow application installation
US11055180B2 (en) Backup management of software environments in a distributed network environment
US9411533B2 (en) Snapshots and versioning of transactional storage class memory
JP5652480B2 (ja) データベース更新通知方法
CN103514298A (zh) 一种实现文件锁的方法及元数据服务器
CN113220669B (zh) 业务数据的处理方法、装置及电子设备
US8959069B2 (en) Dynamic configuration of a persistence provider
US11360673B2 (en) Removable data volume management
US11698795B2 (en) Unified way to track user configuration on a live system
US10754792B2 (en) Persistent virtual address spaces
US8635331B2 (en) Distributed workflow framework
US7987210B1 (en) System for lightweight objects
CN103677949A (zh) 一种带有可变唯一值的实体缓存方法及装置
KR101789933B1 (ko) 데이터 일관성을 위한 컴퓨팅 시스템 및 방법
US9720710B2 (en) Dynamically provisioning, managing, and executing tasks
US10922238B2 (en) Method for storing content, method for consulting content, method for managing content and content readers
JP6230480B2 (ja) データ処理装置及びデータ処理方法及びプログラム
US9378210B2 (en) Managing the writing of a dataset to a data storage device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161118

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20161122

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20161124

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170222

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: 20170404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170421

R150 Certificate of patent or registration of utility model

Ref document number: 6134390

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees