特許第6448691号(P6448691)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アクシス アーベーの特許一覧

特許6448691ファームウェアのアップグレード中に動作可能なデバイス
<>
  • 特許6448691-ファームウェアのアップグレード中に動作可能なデバイス 図000002
  • 特許6448691-ファームウェアのアップグレード中に動作可能なデバイス 図000003
  • 特許6448691-ファームウェアのアップグレード中に動作可能なデバイス 図000004
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6448691
(24)【登録日】2018年12月14日
(45)【発行日】2019年1月9日
(54)【発明の名称】ファームウェアのアップグレード中に動作可能なデバイス
(51)【国際特許分類】
   G06F 8/656 20180101AFI20181220BHJP
【FI】
   G06F8/656
【請求項の数】11
【外国語出願】
【全頁数】14
(21)【出願番号】特願2017-43372(P2017-43372)
(22)【出願日】2017年3月8日
(65)【公開番号】特開2017-208071(P2017-208071A)
(43)【公開日】2017年11月24日
【審査請求日】2018年8月1日
(31)【優先権主張番号】16160338.6
(32)【優先日】2016年3月15日
(33)【優先権主張国】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208205
【氏名又は名称】アクシス アーベー
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林特許業務法人
(72)【発明者】
【氏名】ユアン, ソン
【審査官】 多胡 滋
(56)【参考文献】
【文献】 特開2012−220990(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/656
(57)【特許請求の範囲】
【請求項1】
デバイス(100、200)であって、
ハードウェア(102)と、
前記ハードウェア(102)を制御するための、アップグレード可能な第1のファームウェア(106)と、
前記ハードウェア(102)がハイパーバイザ(104)を介してのみ前記第1のファームウェア(106)にアクセス可能になるように、前記第1のファームウェア(106)を前記ハードウェア(102)にリンクする前記ハイパーバイザ(104)であって、前記ハードウェア(102)のインターフェースと同一のインターフェースを前記第1のファームウェア(106)に提供し、前記第1のファームウェア(106)の前記ハードウェア(102)へのアクセスを制御するように構成される前記ハイパーバイザ(104)と
を備え、
前記ハイパーバイザ(104)は、前記ハードウェア(102)を制御するための第2のファームウェア(108)を備え、
前記デバイス(100、200)は、前記ハードウェア(102)が前記第1のファームウェア(106)によって制御される第1のモード、前記第1のファームウェア(106)アップグレードされる第2のモードで動作するように構成され、前記第1のファームウェア(106)は、前記ハイパーバイザ(104)の前記第1のモードから前記第2のモードへの切り替わりをトリガするように構成され、これにより前記ハイパーバイザ(104)は、前記第1のモードから前記第2のモードへ切り替わるときは前記第1のファームウェア(106)の前記ハードウェア(102)へのアクセスを拒否し、前記第2のファームウェア(108)にアクセスし、前記第2のファームウェア(108)を用いて前記ハードウェア(102)を制御するように構成され、前記ハイパーバイザ(104)は更に、前記第1のファームウェア(106)のアップグレード後に、前記第1のファームウェア(106)の前記ハードウェア(102)へのアクセスを再確立し、前記ハードウェア(102)の制御を前記第1のファームウェア(106)へ引き渡すように構成される、デバイス(100、200)。
【請求項2】
前記第1のファームウェア(106)は、前記デバイス(100、200)が第1の機能で動作可能となるように前記ハードウェア(102)を制御するように構成され、
前記第2のファームウェア(108)は、前記デバイス(100、200)が第2の機能で動作可能となるように前記ハードウェア(102)を制御するように構成され、前記第2の機能は前記第1の機能よりも減少している、請求項1に記載のデバイス(100、200)。
【請求項3】
前記第1のファームウェア(106)が、自由に使える第1のメモリリソースを有する前記ハードウェア(102)を制御するように構成され、
前記第2のファームウェア(108)が、自由に使える第2のメモリリソースを有する前記ハードウェア(102)を制御するように構成され、前記第2のメモリリソースは前記第1のメモリリソースよりも小さい、請求項1または2に記載のデバイス(100、200)。
【請求項4】
前記ハイパーバイザ(104)がタイプ1である、請求項1からのいずれか一項に記載のデバイス(100、200)。
【請求項5】
前記ハイパーバイザ(104)がタイプ2である、請求項1からのいずれか一項に記載のデバイス(100、200)。
【請求項6】
前記デバイスがビデオカメラである、請求項1からのいずれか一項に記載のデバイス(200)。
【請求項7】
前記第1のファームウェア(106)と前記第2のファームウェア(108)が各々、前記カメラのイメージングパイプラインを制御するドライバとソフトウェア命令を含む、請求項に記載のデバイス(200)。
【請求項8】
前記イメージングパイプラインが、イメージング、画像スケーリング、ビデオエンコーディング、及びネットワークインターフェースの提供のために構成されたハードウェアブロック(202a、202b、202c、202d)を含む、請求項に記載のデバイス(200)。
【請求項9】
前記第1のファームウェア(106)と前記第2のファームウェア(108)が各々、前記ハードウェアブロック(202a、202b、202c、202d)に対応するドライバとソフトウェア命令を含む、請求項に記載のデバイス(200)。
【請求項10】
前記ハイパーバイザ(104)が、前記第1のファームウェア(106)のドライバとソフトウェア命令の、対応する前記ハードウェアブロック(202a、202b、202c、202d)へのアクセスを制御するように構成される、請求項に記載のデバイス(200)。
【請求項11】
第1のモードで動作しているデバイスのハードウェアを制御するように構成された第1のファームウェアのアップグレード中に、前記デバイスの操作を容易にするために前記デバイスにおいて実施される方法であって、
前記デバイスは、前記ハードウェアがハイパーバイザを介してのみ前記第1のファームウェアにアクセス可能となるように、前記第1のファームウェアを前記ハードウェアにリンクするハイパーバイザを備え、前記ハイパーバイザ(104)は、前記ハードウェア(102)のインターフェースと同一のインターフェースを前記第1のファームウェア(106)に提供し、前記第1のファームウェア(106)の前記ハードウェア(102)へのアクセスを制御するように構成され、前記方法は、
前記第1のファームウェアがアップグレードされている間に、前記第1のファームウェア(106)が、前記ハイパーバイザの前記第1のモードから第2のモードへの切り替わりをトリガし、これにより前記ハイパーバイザが、前記第1のモードから前記第2のモードへ切り替わるときは前記第1のファームウェアの前記ハードウェアへのアクセスを拒否すること(S04)と、前記ハイパーバイザに含まれる第2のファームウェア(108)にアクセスすることと、前記第2のファームウェアを用いて前記ハードウェアを制御する(S06)ことと、
前記第1のファームウェアのアップグレード後に、前記ハイパーバイザが、前記第1のファームウェアの前記ハードウェアへのアクセスを再確立すること(S08)と、前記第1のファームウェアに前記ハードウェアの制御を引き渡すことと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファームウェアによって制御されるハードウェアを有するデバイスの分野に関する。具体的には、デバイスのファームウェアのアップグレード中に、デバイスの操作を容易にするデバイス及び方法に関する。
【背景技術】
【0002】
例えばビデオカメラ、携帯電話、及び他の組込デバイス等の電子デバイスは、ファームウェアを使用してデバイスのハードウェアを制御するというのが一般的である。ファームウェアとは、デバイスおよびシステムの制御を提供するタイプのソフトウェアである。ファームウェアは、例えば新たな特徴を追加する、又はエラーを訂正するために時々アップグレードする必要がある。
【0003】
数分かかりうるプロセスであるファームウェアのアップグレード中は通常、デバイスの動作が中断される。ある状況において、例えば電子デバイスが24時間のサービスを提供する必要がある時に、これは非常に好ましくないことでありうる。このような状況は、例えば監視目的で使用されるビデオカメラ、アクセスシステムにおいて使用される電子デバイス、又は携帯電話に対して起こりうる。
【0004】
公開特許出願US2009/0178033Aに、関連の状況が開示されている。この出願は、ハードウェアを有する周辺機器が取り付けられたコンピュータシステムに関するものである。コンピュータシステムは、特権オペレーティングシステム及びゲストオペレーティングシステムを含む幾つかのオペレーティングシステムをコンピュータシステム上で実行することを可能にする仮想環境を有する。デバイスに関連するファームウェアのアップデート中、特権オペレーティングシステムは、ゲストオペレーティングシステムのデバイスへのアクセスを拒否する。こうすれば、ファームウェアのアップグレード中にコンピュータシステム全体のシャットダウンを避けることができる。しかしながら、ファームウェアが関連するデバイスは、アップグレード中に動作をしなくなる。ゆえに、改善の必要性がある。
【発明の概要】
【0005】
従って、本発明の目的は、デバイスのハードウェアを制御するのに使用されるファームウェアのアップグレード中に、デバイスの操作を容易にすることである。
【0006】
本発明の第1の態様によれば、上記の目的は、
ハードウェアと、
ハードウェアを制御するためのアップグレード可能な第1のファームウェアと、
第1のファームウェアのハードウェアへのアクセスを制御するために、第1のファームウェアをハードウェアにリンクするハイパーバイザとを備え、
ハイパーバイザが、第1のファームウェアのアップグレードの準備において、第1のファームウェアのハードウェアへのアクセスを拒否し、第2のファームウェアにアクセスし、第2のファームウェアによってハードウェアを制御するように構成される
デバイスによって達成される。
【0007】
従って、ハードウェアと第1のファームウェアとの間に追加の層、ハイパーバイザを配置することが提案される。デバイスの通常動作の間、ハードウェアは第1のファームウェアによって制御される。第1のファームウェアがアップグレードされようとしている時に、ハイパーバイザは第1のファームウェアのハードウェアへのアクセスを拒否し、代わりに第2のファームウェアを使用してハードウェアを制御する。このように、ハイパーバイザは第2のファームウェアを使用してデバイスの制御を引き継ぎ、この結果、第1のファームウェアのアップグレード中にもデバイスが動作可能になる。
【0008】
ハイパーバイザを有する別の利点は、ハイパーバイザがハードウェアを制御している時に、第1のファームウェアによって実施される全てのレジスタの読み出しと書き込みの機密管理を実施することができることである。こうすれば、ハードウェアを破壊する悪意のあるソフトウェアを防ぐことができる。
【0009】
ハイパーバイザは一般に、ハードウェアを制御し、第1のファームウェアにハードウェアのインターフェースと同一のインターフェースを提供するソフトウェア、ファームウェア、ハードウェア、又はこれらの組み合わせを含みうる。
【0010】
ハイパーバイザは更に、第1のファームウェアのアップグレード後に、第1のファームウェアのハードウェアへのアクセスを再確立し、ハードウェアの制御を第1のファームウェアに引き渡すように構成されうる。従ってこのように、第1のファームウェアは、アップグレードが完了したらハードウェアの制御を取り戻しうる。
【0011】
ハイパーバイザは、第2のファームウェアの少なくとも一部を含むことが好ましい。第2のファームウェアの残りの部分は、ハイパーバイザにアクセス可能であるように、デバイスのどこかほかのところに保存されうる。幾つかの実施形態では、ハイパーバイザは第2のファームウェアを含む。これは、安全性の理由で有益である。更に詳細には、ハイパーバイザが第2のファームウェアを含む、あるいは少なくともその一部を含む場合、第2のファームウェアがデバイスのどこかほかのところに保存されている場合に比べて、第2のファームウェアを操作することが更に困難になる。誰かが第2のファームウェアを操作しようとすると、デバイスの動作が低下する。
【0012】
第2のファームウェアは、第1のファームウェアに比べて「スリム」でありうる。これはとりわけ、デバイスを動作させるために第2のファームウェアが使用された時に、デバイスを動作させるために第1のファームウェアが使用される場合に比べ機能が減少することを意味する。更に詳しく説明すると、第1のファームウェアは、デバイスが第1の機能で動作可能であるようにハードウェアを制御するように構成され得、第2のファームウェアは、デバイスが第2の機能で動作可能であるようにハードウェアを制御するように構成され得、第2の機能は、第1の機能よりも減少している。こうすれば、デバイスは、機能は減少するものの、ファームウェアのアップグレード中に動作可能である。これは、処理リソース、ネットワーク帯域幅、メモリリソース等を節約するという理由において有益である。代わりに、利用可能なリソースのほとんどが第1のファームウェアと、第1のファームウェアのアップグレードに費やされうる。
【0013】
通常、デバイスのメモリ容量は限定されている。第1のファームウェアのアップグレード中、利用可能なメモリのほとんどがアップグレード処理に使われ、わずかな容量のみが第2のファームウェアを実行するハイパーバイザのために確保されている。メモリ容量が限定されているため、第2のファームウェアの(実行時間メモリ、及びファームウェア自体を保存するメモリを含む)メモリのフットプリントが第1のファームウェアのフットプリントよりも小さい場合に更に有益である。より詳細には、第1のファームウェアは、自由に使える第1のメモリリソースを有するハードウェアを制御するように構成され得、第2のファームウェアは、自由に使える第2のメモリリソースを有するハードウェアを制御するように構成され得、第2のメモリリソースは第1のメモリリソースよりも小さい。
【0014】
ネイティブ又はベアメタル型ハイパーバイザとしても知られるタイプ1のハイパーバイザが好ましい。これは、ハードウェア上で直接実行されるハイパーバイザである。タイプ1のハイパーバイザは、ハードウェアを直接制御し、他のソフトウェアに依存しないため、有利である。
【0015】
あるいは、ハイパーバイザは、一次オペレーティングシステム上で実行されるコンピュータプログラムであるタイプ2のハイパーバイザであってよい。
【0016】
デバイスは一般に、例えば任意の組込デバイス等のファームウェアによって制御されるハードウェアを有する何らかの種類のデバイスでありうる。一実施形態によれば、デバイスはビデオカメラである。ハイパーバイザが第2のファームウェアを使用してハードウェアの制御を引き継ぐことにより、ビデオカメラが第1のファームウェアのアップグレード中にも動作可能である。ビデオカメラは従って、ファームウェアのアップグレード中にもノンストップで映像を配信することができる。これは特にビデオカメラが、ビデオカメラの動作の中断が危険な状況となる監視目的で使用される場合に有益である。
【0017】
ビデオカメラは、イメージングパイプラインを有しうる。本書で使用されるイメージングパイプラインとは一般的に、ネットワークを介して送信するためにフォーマットされるエンコードされた映像データのビットストリームを生成するため、カメラの未加工センサデータを処理するのに使用されるコンポーネントのセットを意味する。第1と第2のファームウェアは各々、カメラのイメージングパイプラインを制御するドライバとソフトウェア命令を含みうる。従って、ファームウェアのアップグレード中にも、カメラのイメージングパイプラインは、ネットワークを介して送信するためにエンコードされた映像データのビットストリームを生成するため、カメラの未加工センサデータを処理するように動作可能である。
【0018】
第1のファームウェアのドライバとソフトウェア命令、及び第2のファームウェアのドライバとソフトウェア命令は異なる場合がある。具体的には、第2のファームウェアのドライバとソフトウェア命令は、第1のファームウェアに比べてイメージングパイプラインの機能が減少することにおいて、異なる場合がある。
【0019】
本書で使用されるドライバとは、1つのハードウェアを制御するコンピュータプログラムである。ドライバは、1つのハードウェアにソフトウェアインターフェースを提供し、これによりファームウェアのソフトウェア命令が、使用されるそのハードウェアの正確な詳細を知る必要なく、ハードウェア機能にアクセスできる。
【0020】
イメージングパイプラインのコンポーネントは一般に、対応するファームウェアを有するハードウェアブロックを含みうる。実施形態によれば、イメージングパイプラインはイメージング、画像スケーリング、ビデオエンコーディング、及びネットワークスインターフェースの提供のために構成されたハードウェアブロックを含みうる。更に、第1と第2のファームウェアは各々、ハードウェアブロックに対応するドライバとソフトウェア命令を含みうる。
【0021】
イメージングブロックと、それに対応するファームウェアは一般に、未加工センサ画像データを処理して、改善された画像データを生成するように構成される。画像スケーリングブロックと、それに対応するファームウェアは一般に、画像データ、通常はイメージングブロックによって生成された、改善された画像データをスケーリングするように構成される。ビデオエンコーディングブロックと、それに対応するファームウェアは一般に、改善及びスケーリングされた画像データ、又は改善及びスケーリングされた画像データのストリームをエンコードして、エンコードされたビデオストリームを生成するように構成される。ネットワークインターフェースブロックと、それに対応するファームウェアは一般に、ネットワークを介して送信するためにエンコードされたビデオストリームをフォーマットし、エンコードされたビデオストリームをネットワークを介して送信するように構成される。
【0022】
ハイパーバイザは一般に、第1のファームウェアのハードウェアへのアクセスを制御する。すなわち、ハイパーバイザは、第1のファームウェアがハードウェアレジスタから読み出し、ハードウェアレジスタへ書き込むことが可能である時に制御する。具体的には、ハイパーバイザは、ドライバのアクセス、及び第1のファームウェアの対応するハードウェアブロックへのソフトウェア命令を制御するように構成される。このように、ハイパーバイザは従って、第1のファームウェアの異なるハードウェアブロックへのアクセスを制御することができる。
【0023】
本発明の第2の態様によれば、上記目的は、デバイスのハードウェアを制御するように構成された第1のファームウェアのアップグレード中に、デバイスの操作を容易にする方法によって達成される。本方法は、第1のファームウェアをハードウェアにリンクするハイパーバイザによって実施される。本方法は、第1のファームウェアのアップグレードの準備において、第1のファームウェアのハードウェアへのアクセスを拒否することと、第2のファームウェアにアクセスすることと、第2のファームウェアによってハードウェアを制御することとを含む。
【0024】
本方法は更に、第1のファームウェアのアップグレード後に、第1のファームウェアのハードウェアへのアクセスを再確立することと、ハードウェアの制御を第1のファームウェアへ引き渡すこととを含みうる。
【0025】
第2の態様は一般的に、第1の態様と同じ特徴及び利点を有しうる。別途明示的に記載されない限り、本発明が特徴の可能な組み合わせ全てに関するものであることを更に留意すべきである。
【0026】
本発明の上記及び追加の目的、特徴、利点は、付随する図面を参照しつつ、本発明の好ましい実施形態の以下の例示的かつ非限定的な詳細説明を通して、より明確に理解されるであろう。図面では類似要素に対して同じ参照番号が使用されている。
【図面の簡単な説明】
【0027】
図1】実施形態によるアップグレード可能なファームウェアを有するデバイスを示す概略図である。
図2】ファームウェアのアップグレード中にデバイスの操作を容易にする、実施形態による方法のフロー図である。
図3】実施形態によるアップグレード可能なファームウェアを有するビデオカメラを示す概略図である。
【発明を実施するための形態】
【0028】
これより、本発明の実施形態を示す添付図面を参照して、本発明をより網羅的に説明する。動作中の、本書で開示されるシステム及びデバイスが、説明される。
【0029】
図1は、実施形態によるデバイス100を示す図である。デバイス100は、ハードウェア102、ハイパーバイザ104、及び第1のファームウェア106を含む。幾つかの例を挙げると、デバイス100は、例えば携帯電話、ビデオカメラ、及びアクセスシステムのデバイス等の組込デバイスでありうる。アクセスシステムのデバイスの実施例は、アクセスコントローラ、ドアステーション、及びカードリーダである。
【0030】
ハイパーバイザ104は、ハードウェア102と第1のファームウェア106との間に配置される。ハイパーバイザ104は従って、第1のファームウェアをハードウェアにリンクする。このように、第1のファームウェア106はハイパーバイザ104を介してのみハードウェア102にアクセスしうる、すなわち、第1のファームウェア106によるハードウェアレジスタからの全ての読み出し、及びハードウェアレジスタへの全ての書き込みは、ハイパーバイザ104を介して行われる。ハイパーバイザ104は更に、第1のファームウェア106のハードウェア102へのアクセスを制御しうる。
【0031】
具体的には、ハイパーバイザ104が、例えばハイパーバイザ104を介して第1のファームウェア106のハードウェア102へのアクセスをリンクする制御リンク110を切断することによって、第1のファームウェアのハードウェア102へのアクセスを拒否しうる。ハイパーバイザ104は更に、例えば制御リンク110を再確立することによって、第1のファームウェア106のハードウェア102へのアクセスを再確立しうる。
【0032】
ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせにおいて実行されうるハイパーバイザ104は一般に、ハードウェア102のインターフェースと同一のインターフェースを第1のファームウェア106に提供する。ハイパーバイザ104は、ネイティブ又はベアメタルハイパーバイザとしても知られるタイプ1のハイパーバイザ104であることが好ましい。あるいは、ハイパーバイザ104は、ホスト型ハイパーバイザとも知られる、すなわちオペレーティングシステム上で実行されるコンピュータプログラムであるタイプ2のハイパーバイザ104でありうる。ハイパーバイザ104のソフトウェアおよびファームウェアは、デバイス100の非揮発性、好ましくは読み出し専用メモリに保存されうる。
【0033】
第1のファームウェア106は、ハードウェア102を制御するソフトウェアを含む。第1のファームウェア106はアップグレード可能である、つまり置き替える、上書きする、又は再プログラミングすることが可能である。第1のファームウェア106は通常、例えばEEPROM又はフラッシュメモリ等のデバイス100の非揮発性、書き込み可能なメモリに保存される。第1のファームウェア106及びハイパーバイザ104のソフトウェアとファームウェアは、(コスト効率が良い)同じ非揮発性メモリ又は別の非揮発性メモリのいずれかに保存されうる。後者の場合、第1のファームウェア106の非揮発性メモリは書き込み可能であるが、ハイパーバイザ104の非揮発性メモリは読み出し専用であり、これは安全性の観点から好ましい。
【0034】
デバイス100は更に、第1のファームウェア106とは異なる第2のファームウェア108を含む。第2のファームウェア108はまた、ハードウェア102を制御するソフトウェアも含む。第2のファームウェア108は、ハイパーバイザ104にアクセス可能になるように配置される。安全性の理由で、第2のファームウェア108がハイパーバイザ104に含まれる、つまり第2のファームウェア108がハイパーバイザ104のファームウェアの一部を形成することが好ましい。例えば、第1のファームウェア106と、第2のファームウェア108を含むハイパーバイザ104のファームウェアは、上述したように、別々の非揮発性メモリに保存されうる。しかしながら、幾つかの実施形態では、第2のファームウェア108はハイパーバイザ104の一部ではない。例えば第2のファームウェア108は、ハイパーバイザ104の外部、例えば別々のファイル、共通記憶装置の別々の部分、又は別々の記憶装置等に保存されうる。しかしながら、ハイパーバイザ104はそれでもまだ、ハードウェア102を制御するために、第2のファームウェア108にアクセスし、次に全てのソフトウェア命令と第2のファームウェア108のドライバを実行することができる。第2のファームウェア108が部分的にハイパーバイザ104に含まれ、部分的にハイパーバイザ104の外部に保存されることも可能である。
【0035】
デバイス100は更に、例えば第1のファームウェア106、ハイパーバイザ104、及び第2のファームウェア108によって実行される命令等のソフトウェア及びファームウェア命令を実行する一又は複数のプロセッサを含みうる。
【0036】
第1と第2のファームウェア106、108は各々、異なる層を含みうる。通常、第1と第2のファームウェア106、108は各々、ドライバと、他のソフトウェア命令を含みうる。ドライバは第1の層を形成し、ハードウェア102にソフトウェアインターフェースを提供し、他のソフトウェア命令を有効にし、別の層を形成し、使用されているハードウェア102のいかなる詳細も知ることなくハードウェア102にアクセスする。
【0037】
上述したように、第1と第2のファームウェア106、108は両方とも、デバイス100のハードウェア102を制御するように構成される。しかしながら、第2のファームウェア108は通常、第1のファームウェアと比較して機能が減少したカメラを制御することにおいて、第1のファームウェア106と異なる。例えば、第2のファームウェア108は、第1のファームウェア106よりも少ない機能を実行しうる、及び/又は第2のファームウェア108は、第1のファームウェア106よりも単純で、メモリへの負担が少ない機能を実行しうる。これを更に、図2と併せて以下に例示する。このように、第2のファームウェア108の(実行時間メモリと記憶装置の両方の観点からの)メモリフットプリントが、第1のファームウェア106と比べて低いレベルに維持されうる。
【0038】
以下に、デバイス100の動作を説明する。デバイス100は、2つのモード:第1のファームウェア106がハードウェア102を制御する通常動作モードと、ハイパーバイザ104が第2のファームウェア108によってハードウェア102を制御するファームウェアアップグレードモードにおいて動作しうる。ハイパーバイザ104は、第1のファームウェア106によって、通常動作モードからファームウェアアップグレードモードに切り替わるようにトリガされうる。更に詳細には、第1のファームウェア106のソフトウェアがハイパーバイザ104の機能を、通常動作モードからファームウェアアップグレードモードへ切り替えるように起動させることができる。
【0039】
通常動作モードにある時、第1のファームウェア106はハイパーバイザ104を介してハードウェア102にアクセスできる。つまり、第1のファームウェア106がハードウェア102のレジスタから読み出し、ハードウェア102のレジスタへ書き込むことができるように、ハイパーバイザ104によって確立された、第1のファームウェア106とハードウェア102との間の制御リンク110が存在する。通常動作モードにある時は、ハイパーバイザ104は、第1のファームウェア106が直接ハードウェアの機能にアクセスすることができるようにし、これにより第1のファームウェアがハードウェア102を制御することが可能になる。
【0040】
ファームウェアアップグレードモードにある時に、第1のファームウェア106がアップグレードされる。その間、ハイパーバイザ104はハードウェア102を制御する。ここで、第1のファームウェア106のアップグレード中にデバイス100の操作を容易にする方法を、図1図2のフロー図を参照しながら開示する。
【0041】
第1のファームウェア106のアップグレードの準備において、ハイパーバイザ104が、ステップS02で、第2のファームウェア108にアクセスする。更に上述したように、第2のファームウェア108は、全体的に又は部分的にハイパーバイザ104に含まれうる、あるいは、全体的に又は部分的にハイパーバイザ104の外側に保存されうる。ハイパーバイザ104が第2のファームウェア108にアクセスしたら、ハイパーバイザ104は第1のファームウェア106のハードウェア102へのアクセスS04を拒否しうる。これは、ハイパーバイザ104が、第1のファームウェア106とハードウェア102との間の制御リンク110を切断することを意味する。第1のファームウェア106はこれにより、ハードウェア102から接続解除され、ハードウェア102を制御するように機能しなくなる。代わりに、デバイス100のノンストップの動作を提供するために、ハイパーバイザ104は第2のファームウェア108を使用してハードウェア102の制御S06を開始する。更に詳細には、ハイパーバイザ104は次に、ハードウェア102を制御するために、第2のファームウェア108のソフトウェア命令とドライバを実行する。この時、第1のファームウェア106は、デバイスの動作を失うことなく、アップグレードされうる。しかしながら、第2のファームウェア108によっては、デバイス100は機能が減少した状態で動作可能になりうる。
【0042】
第1のファームウェア106のアップグレードが完了すると、ハイパーバイザ104は、ステップS08において、第1のファームウェア106のハードウェア102へのアクセスを再確立する、すなわち制御リンク110を再確立して、ハードウェア102の制御を第1のファームウェア106に引き渡しうる。
【0043】
図3は、デバイスがビデオカメラ200である実施形態を示す図である。ビデオカメラ200は、ネットワークを介して送信するためにフォーマットされるエンコードされたビデオストリームを生成するために、センサ212から受信した未加工センサデータを処理するのに使用されるコンポーネントのセットを含むイメージングパイプラインを有する。この実施例では、イメージングパイプラインは、イメージングコンポーネント、画像スケーリングコンポーネント、エンコーディングコンポーネント、及びネットワークインターフェースコンポーネントを含むと仮定する。イメージングパイプラインの各コンポーネントは通常、対応するハードウェアのブロックを制御するように構成される、ドライバとソフトウェア命令を含むファームウェアのブロックを含む。例示的な実施形態では、第1のファームウェア106は、イメージングハードウェアブロック202aに対応するイメージングファームウェアブロック206aと、スケーラハードウェアブロック202bに対応するスケーラファームウェアブロック206bと、エンコーダハードウェアブロック202cに対応するエンコーダファームウェアブロック206cと、ネットワークインターフェースハードウェアブロック202dに対応するネットワークインターフェースファームウェアブロック206dとを含む。同様に、第2のファームウェア104は、イメージングハードウェアブロック202aに対応するイメージングファームウェアブロック208aと、スケーラハードウェアブロック202bに対応するスケーラファームウェアブロック208bと、エンコーダハードウェアブロック202cに対応するエンコーダファームウェアブロック208cと、ネットワークインターフェースハードウェアブロック202dに対応するネットワークインターフェースファームウェアブロック208dとを含む。
【0044】
イメージングパイプラインのイメージングコンポーネントの役割は、例えばデモザイキング、ホワイトバランシング、ビネッティング補正、シャープニング、カラーマトリクス化、暗電流補正、カラム固定パターンノイズ補正、欠陥ピクセル補正、及びノイズフィルタリングを実施することによって、未加工センサデータのビデオストリームを処理し改善することである。
【0045】
イメージングパイプラインのスケーラコンポーネントの役割は、イメージングブロック202aの出力である画像データの改善されたビデオストリームをスケーリングすることである。スケーラコンポーネントはまた、例えば歪み補正及びたる形歪曲補正の実施、及び画像にオーバーレイを含める等の画像データを変換することも含みうる。
【0046】
エンコーダコンポーネントの役割は、例えばMJPEG、H.264又はH.265等のビデオエンコーディング形式のエンコードされたビデオストリームを作成するために、スケーラブロック202bから出力された画像データの改善及びスケーリングされたストリームをエンコーディングすることである。
【0047】
ネットワークインターフェースコンポーネントの役割は、ネットワークを介して送信するのに適切な形式にエンコードされたビデオストリームを処理することと、フォーマットされたビデオストリームをネットワークを介して送信することである。これには、例えばイーサネットインターフェース、WiFiインターフェース、3G/4Gインターフェース、Z−waveインターフェース等が含まれうる。
【0048】
例えば図1と共に更に上述したように、ハイパーバイザ104は、第1のファームウェア106のアップグレード中、第2のファームウェア108によってハードウェア102を制御する。この実施例では、ハイパーバイザ104は従って、第1のファームウェア106のアップグレード中は、第2のファームウェア108を使用してビデオカメラ200のイメージングパイプラインを操作する。つまり、ハイパーバイザ104は、第1のファームウェア106のアップグレード中は、対応するハードウェアブロック202a、202b、202c、202dを制御するために、第2のファームウェア108のイメージングファームウェアブロック208a、スケーラファームウェアブロック208b、エンコーダファームウェアブロック208c及びネットワークインターフェースブロック208dを使用する。
【0049】
通常、このプロセスの間、ハイパーバイザ104向けに少量のシステムメモリのみが確保され、残りの部分は、第1のファームウェア106のアップグレードに、そしてその後のシステム起動に使われる。限定されたメモリリソースに対処するために、第2のファームウェア108は、減少した機能でハードウェア102を制御するように構成され得、この場合、ビデオカメラ200のイメージングパイプラインが、ファームウェアアップグレードモードの間は通常動作モードに比べて減少した機能を有することを意味する。
【0050】
更に詳細には、第2のファームウェア108は、第1のファームウェア106よりも少ない機能を実行しうる。通常、ビデオカメラ200の動作において基本的でない機能、及び/又は第1のファームウェア106に比べて処理、帯域幅、又はメモリに負担のかかる機能は停止される。通常、第2のファームウェア108は、例えばメモリ管理又はプロセススケジューリング等のオペレーティングシステムに属するいかなる特徴も実行しない。これはつまり、特定の機能、例えば解析又はメタデータストリーム等をサポートしないことを意味する。これは、第1のファームウェア106とは対照的である。解析には、ソフトウェアにおいて実施される解析、又は特定のハードウェアに関連している解析が含まれうる。上記解析には通常、別のビデオストリームと追加の処理が必要とされうるため、第2のファームウェア108においては無効である。例えば、第2のファームウェア108は、画像データの輝度成分のみ(すなわちCbCrではなくYのみ)を有する低解像度のストリームを動き検出アルゴリズムへ送りうる。
【0051】
例えば一方では、第1のファームウェア106のイメージングファームウェアブロック206aは、例えばデモザイキング、ホワイトバランシング、ビネッティング補正、シャープニング、カラーマトリクス化、暗電流補正、カラム固定パターンノイズ補正、欠陥ピクセル補正、及び(一時的な)ノイズフィルタリング、クロストーク補正及び露出マージ等のあらゆる種類の画像処理を含むように構成されうる。他方では、第2のファームウェア108のイメージングファームウェアブロック208aは、例えばデモザイキング及び欠陥ピクセル補正等の基本的な処理ステップのみを実行するように構成されうる。例えば露出マージ及び一時的なフィルタリング等の、基本的なものでなく、システムメモリ及び/又は処理能力をたくさん費やす他の処理ステップは停止される。
【0052】
同様に、一方では、第1のファームウェア106のスケーラファームウェアブロック206bは、(例えば歪み補正及びたる形歪曲補正を実施することによって)画像データをスケーリングする、画像データを変換する、及び画像のオーバーレイを含めるように構成されうる。他方では、第2のファームウェア108のスケーラファームウェアブロック208bは、いかなるスケーリング、変換又はオーバーレイの追加もすることなくビデオストリームを通すように構成されうる。
【0053】
第2のファームウェア108は更に、第1のファームウェア106に比べてあまりメモリに負担がかからない、及び/又は処理がより簡単である、及び/又は必要な帯域幅が狭い機能を実行しうる。これには、複数のビデオストリームの代わりに1つのビデオストリームを処理する、及び/又は通常の解像度の代わりに低い解像度で画像データを処理することが含まれうる。このように、メモリ、処理及び帯域幅リソースのほとんどは、デバイスの通常動作中に使用される第1のファームウェア106(又は第1のファームウェア106のアップグレード)に費やされる。
【0054】
別の実施例によれば、第1のファームウェア106のエンコーディングファームウェアブロック206cは、例えばH.264、H.265、及びMJPEG等の幾つかのビデオエンコーディング形式をサポートするように構成されうる。第2のファームウェアブロック208cは、MJPEGのみをサポートするように構成され得、これは、メモリに基準フレームを保存する必要がないことから、メモリにあまり負担がかからないためである。
【0055】
同様に、第1のファームウェア106のネットワークインターフェースファームウェアブロック206dは、全面的なイーサネットサポートと完全なhttpサーバを有し得、第2のファームウェア108のネットワークインターフェースファームウェアブロック208dは、基本的なイーサネットサポートと簡略化されたhttpサーバのみを有しうる。
【0056】
当業者が上述の実施形態を多くの方法で修正し、かつ、上記の実施形態において示す本発明の利点を依然として使用することが可能であることが理解されるだろう。例えば、デバイスはビデオカメラに限定されず、例えば携帯電話であってもよい。上記の例では、第2のファームウェアは第1のファームウェアに比べて、例えばファームウェアのアップグレード中に緊急通話のみが可能である等の減少した機能を有しうる。他の実施例によれば、デバイスは、アクセスコントローラ、ドアカメラステーション、無線スピーカ等でありうる。従って、本発明は例示の実施形態に限定すべきではなく、添付の特許請求の範囲によってのみ定義されるべきである。加えて、当業者が理解するように、示した実施形態を組み合わせることが可能である。
図1
図2
図3