(57)【特許請求の範囲】
【請求項１】
デバイス（１００、２００）であって、
ハードウェア（１０２）と、
前記ハードウェア（１０２）を制御するための、アップグレード可能な第１のファームウェア（１０６）と、
前記ハードウェア（１０２）がハイパーバイザ（１０４）を介してのみ前記第１のファームウェア（１０６）にアクセス可能になるように、前記第１のファームウェア（１０６）を前記ハードウェア（１０２）にリンクする前記ハイパーバイザ（１０４）であって、前記ハードウェア（１０２）のインターフェースと同一のインターフェースを前記第１のファームウェア（１０６）に提供し、前記第１のファームウェア（１０６）の前記ハードウェア（１０２）へのアクセスを制御するように構成される前記ハイパーバイザ（１０４）と
を備え、
前記ハイパーバイザ（１０４）は、前記ハードウェア（１０２）を制御するための第２のファームウェア（１０８）を備え、
前記デバイス（１００、２００）は、前記ハードウェア（１０２）が前記第１のファームウェア（１０６）によって制御される第１のモードと、前記第１のファームウェア（１０６）がアップグレードされる第２のモードとで動作するように構成され、前記第１のファームウェア（１０６）は、前記ハイパーバイザ（１０４）の前記第１のモードから前記第２のモードへの切り替わりをトリガするように構成され、これにより前記ハイパーバイザ（１０４）は、前記第１のモードから前記第２のモードへ切り替わるときは前記第１のファームウェア（１０６）の前記ハードウェア（１０２）へのアクセスを拒否し、前記第２のファームウェア（１０８）にアクセスし、前記第２のファームウェア（１０８）を用いて前記ハードウェア（１０２）を制御するように構成され、前記ハイパーバイザ（１０４）は更に、前記第１のファームウェア（１０６）のアップグレード後に、前記第１のファームウェア（１０６）の前記ハードウェア（１０２）へのアクセスを再確立し、前記ハードウェア（１０２）の制御を前記第１のファームウェア（１０６）へ引き渡すように構成される、デバイス（１００、２００）。
【請求項２】
前記第１のファームウェア（１０６）は、前記デバイス（１００、２００）が第１の機能で動作可能となるように前記ハードウェア（１０２）を制御するように構成され、
前記第２のファームウェア（１０８）は、前記デバイス（１００、２００）が第２の機能で動作可能となるように前記ハードウェア（１０２）を制御するように構成され、前記第２の機能は前記第１の機能よりも減少している、請求項１に記載のデバイス（１００、２００）。
【請求項３】
前記第１のファームウェア（１０６）が、自由に使える第１のメモリリソースを有する前記ハードウェア（１０２）を制御するように構成され、
前記第２のファームウェア（１０８）が、自由に使える第２のメモリリソースを有する前記ハードウェア（１０２）を制御するように構成され、前記第２のメモリリソースは前記第１のメモリリソースよりも小さい、請求項１または２に記載のデバイス（１００、２００）。
【請求項４】
前記ハイパーバイザ（１０４）がタイプ１である、請求項１から３のいずれか一項に記載のデバイス（１００、２００）。
【請求項５】
前記ハイパーバイザ（１０４）がタイプ２である、請求項１から３のいずれか一項に記載のデバイス（１００、２００）。
【請求項６】
前記デバイスがビデオカメラである、請求項１から５のいずれか一項に記載のデバイス（２００）。
【請求項７】
前記第１のファームウェア（１０６）と前記第２のファームウェア（１０８）が各々、前記カメラのイメージングパイプラインを制御するドライバとソフトウェア命令を含む、請求項６に記載のデバイス（２００）。
【請求項８】
前記イメージングパイプラインが、イメージング、画像スケーリング、ビデオエンコーディング、及びネットワークインターフェースの提供のために構成されたハードウェアブロック（２０２ａ、２０２ｂ、２０２ｃ、２０２ｄ）を含む、請求項７に記載のデバイス（２００）。
【請求項９】
前記第１のファームウェア（１０６）と前記第２のファームウェア（１０８）が各々、前記ハードウェアブロック（２０２ａ、２０２ｂ、２０２ｃ、２０２ｄ）に対応するドライバとソフトウェア命令を含む、請求項８に記載のデバイス（２００）。
【請求項１０】
前記ハイパーバイザ（１０４）が、前記第１のファームウェア（１０６）のドライバとソフトウェア命令の、対応する前記ハードウェアブロック（２０２ａ、２０２ｂ、２０２ｃ、２０２ｄ）へのアクセスを制御するように構成される、請求項９に記載のデバイス（２００）。
【請求項１１】
第１のモードで動作しているデバイスのハードウェアを制御するように構成された第１のファームウェアのアップグレード中に、前記デバイスの操作を容易にするために前記デバイスにおいて実施される方法であって、
前記デバイスは、前記ハードウェアがハイパーバイザを介してのみ前記第１のファームウェアにアクセス可能となるように、前記第１のファームウェアを前記ハードウェアにリンクするハイパーバイザを備え、前記ハイパーバイザ（１０４）は、前記ハードウェア（１０２）のインターフェースと同一のインターフェースを前記第１のファームウェア（１０６）に提供し、前記第１のファームウェア（１０６）の前記ハードウェア（１０２）へのアクセスを制御するように構成され、前記方法は、
前記第１のファームウェアがアップグレードされている間に、前記第１のファームウェア（１０６）が、前記ハイパーバイザの前記第１のモードから第２のモードへの切り替わりをトリガし、これにより前記ハイパーバイザが、前記第１のモードから前記第２のモードへ切り替わるときは前記第１のファームウェアの前記ハードウェアへのアクセスを拒否すること（Ｓ０４）と、前記ハイパーバイザに含まれる第２のファームウェア（１０８）にアクセスすることと、前記第２のファームウェアを用いて前記ハードウェアを制御する（Ｓ０６）ことと、
前記第１のファームウェアのアップグレード後に、前記ハイパーバイザが、前記第１のファームウェアの前記ハードウェアへのアクセスを再確立すること（Ｓ０８）と、前記第１のファームウェアに前記ハードウェアの制御を引き渡すことと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアによって制御されるハードウェアを有するデバイスの分野に関する。具体的には、デバイスのファームウェアのアップグレード中に、デバイスの操作を容易にするデバイス及び方法に関する。
【背景技術】
【０００２】
例えばビデオカメラ、携帯電話、及び他の組込デバイス等の電子デバイスは、ファームウェアを使用してデバイスのハードウェアを制御するというのが一般的である。ファームウェアとは、デバイスおよびシステムの制御を提供するタイプのソフトウェアである。ファームウェアは、例えば新たな特徴を追加する、又はエラーを訂正するために時々アップグレードする必要がある。
【０００３】
数分かかりうるプロセスであるファームウェアのアップグレード中は通常、デバイスの動作が中断される。ある状況において、例えば電子デバイスが２４時間のサービスを提供する必要がある時に、これは非常に好ましくないことでありうる。このような状況は、例えば監視目的で使用されるビデオカメラ、アクセスシステムにおいて使用される電子デバイス、又は携帯電話に対して起こりうる。
【０００４】
公開特許出願ＵＳ２００９／０１７８０３３Ａに、関連の状況が開示されている。この出願は、ハードウェアを有する周辺機器が取り付けられたコンピュータシステムに関するものである。コンピュータシステムは、特権オペレーティングシステム及びゲストオペレーティングシステムを含む幾つかのオペレーティングシステムをコンピュータシステム上で実行することを可能にする仮想環境を有する。デバイスに関連するファームウェアのアップデート中、特権オペレーティングシステムは、ゲストオペレーティングシステムのデバイスへのアクセスを拒否する。こうすれば、ファームウェアのアップグレード中にコンピュータシステム全体のシャットダウンを避けることができる。しかしながら、ファームウェアが関連するデバイスは、アップグレード中に動作をしなくなる。ゆえに、改善の必要性がある。
【発明の概要】
【０００５】
従って、本発明の目的は、デバイスのハードウェアを制御するのに使用されるファームウェアのアップグレード中に、デバイスの操作を容易にすることである。
【０００６】
本発明の第１の態様によれば、上記の目的は、
ハードウェアと、
ハードウェアを制御するためのアップグレード可能な第１のファームウェアと、
第１のファームウェアのハードウェアへのアクセスを制御するために、第１のファームウェアをハードウェアにリンクするハイパーバイザとを備え、
ハイパーバイザが、第１のファームウェアのアップグレードの準備において、第１のファームウェアのハードウェアへのアクセスを拒否し、第２のファームウェアにアクセスし、第２のファームウェアによってハードウェアを制御するように構成される
デバイスによって達成される。
【０００７】
従って、ハードウェアと第１のファームウェアとの間に追加の層、ハイパーバイザを配置することが提案される。デバイスの通常動作の間、ハードウェアは第１のファームウェアによって制御される。第１のファームウェアがアップグレードされようとしている時に、ハイパーバイザは第１のファームウェアのハードウェアへのアクセスを拒否し、代わりに第２のファームウェアを使用してハードウェアを制御する。このように、ハイパーバイザは第２のファームウェアを使用してデバイスの制御を引き継ぎ、この結果、第１のファームウェアのアップグレード中にもデバイスが動作可能になる。
【０００８】
ハイパーバイザを有する別の利点は、ハイパーバイザがハードウェアを制御している時に、第１のファームウェアによって実施される全てのレジスタの読み出しと書き込みの機密管理を実施することができることである。こうすれば、ハードウェアを破壊する悪意のあるソフトウェアを防ぐことができる。
【０００９】
ハイパーバイザは一般に、ハードウェアを制御し、第１のファームウェアにハードウェアのインターフェースと同一のインターフェースを提供するソフトウェア、ファームウェア、ハードウェア、又はこれらの組み合わせを含みうる。
【００１０】
ハイパーバイザは更に、第１のファームウェアのアップグレード後に、第１のファームウェアのハードウェアへのアクセスを再確立し、ハードウェアの制御を第１のファームウェアに引き渡すように構成されうる。従ってこのように、第１のファームウェアは、アップグレードが完了したらハードウェアの制御を取り戻しうる。
【００１１】
ハイパーバイザは、第２のファームウェアの少なくとも一部を含むことが好ましい。第２のファームウェアの残りの部分は、ハイパーバイザにアクセス可能であるように、デバイスのどこかほかのところに保存されうる。幾つかの実施形態では、ハイパーバイザは第２のファームウェアを含む。これは、安全性の理由で有益である。更に詳細には、ハイパーバイザが第２のファームウェアを含む、あるいは少なくともその一部を含む場合、第２のファームウェアがデバイスのどこかほかのところに保存されている場合に比べて、第２のファームウェアを操作することが更に困難になる。誰かが第２のファームウェアを操作しようとすると、デバイスの動作が低下する。
【００１２】
第２のファームウェアは、第１のファームウェアに比べて「スリム」でありうる。これはとりわけ、デバイスを動作させるために第２のファームウェアが使用された時に、デバイスを動作させるために第１のファームウェアが使用される場合に比べ機能が減少することを意味する。更に詳しく説明すると、第１のファームウェアは、デバイスが第１の機能で動作可能であるようにハードウェアを制御するように構成され得、第２のファームウェアは、デバイスが第２の機能で動作可能であるようにハードウェアを制御するように構成され得、第２の機能は、第１の機能よりも減少している。こうすれば、デバイスは、機能は減少するものの、ファームウェアのアップグレード中に動作可能である。これは、処理リソース、ネットワーク帯域幅、メモリリソース等を節約するという理由において有益である。代わりに、利用可能なリソースのほとんどが第１のファームウェアと、第１のファームウェアのアップグレードに費やされうる。
【００１３】
通常、デバイスのメモリ容量は限定されている。第１のファームウェアのアップグレード中、利用可能なメモリのほとんどがアップグレード処理に使われ、わずかな容量のみが第２のファームウェアを実行するハイパーバイザのために確保されている。メモリ容量が限定されているため、第２のファームウェアの（実行時間メモリ、及びファームウェア自体を保存するメモリを含む）メモリのフットプリントが第１のファームウェアのフットプリントよりも小さい場合に更に有益である。より詳細には、第１のファームウェアは、自由に使える第１のメモリリソースを有するハードウェアを制御するように構成され得、第２のファームウェアは、自由に使える第２のメモリリソースを有するハードウェアを制御するように構成され得、第２のメモリリソースは第１のメモリリソースよりも小さい。
【００１４】
ネイティブ又はベアメタル型ハイパーバイザとしても知られるタイプ１のハイパーバイザが好ましい。これは、ハードウェア上で直接実行されるハイパーバイザである。タイプ１のハイパーバイザは、ハードウェアを直接制御し、他のソフトウェアに依存しないため、有利である。
【００１５】
あるいは、ハイパーバイザは、一次オペレーティングシステム上で実行されるコンピュータプログラムであるタイプ２のハイパーバイザであってよい。
【００１６】
デバイスは一般に、例えば任意の組込デバイス等のファームウェアによって制御されるハードウェアを有する何らかの種類のデバイスでありうる。一実施形態によれば、デバイスはビデオカメラである。ハイパーバイザが第２のファームウェアを使用してハードウェアの制御を引き継ぐことにより、ビデオカメラが第１のファームウェアのアップグレード中にも動作可能である。ビデオカメラは従って、ファームウェアのアップグレード中にもノンストップで映像を配信することができる。これは特にビデオカメラが、ビデオカメラの動作の中断が危険な状況となる監視目的で使用される場合に有益である。
【００１７】
ビデオカメラは、イメージングパイプラインを有しうる。本書で使用されるイメージングパイプラインとは一般的に、ネットワークを介して送信するためにフォーマットされるエンコードされた映像データのビットストリームを生成するため、カメラの未加工センサデータを処理するのに使用されるコンポーネントのセットを意味する。第１と第２のファームウェアは各々、カメラのイメージングパイプラインを制御するドライバとソフトウェア命令を含みうる。従って、ファームウェアのアップグレード中にも、カメラのイメージングパイプラインは、ネットワークを介して送信するためにエンコードされた映像データのビットストリームを生成するため、カメラの未加工センサデータを処理するように動作可能である。
【００１８】
第１のファームウェアのドライバとソフトウェア命令、及び第２のファームウェアのドライバとソフトウェア命令は異なる場合がある。具体的には、第２のファームウェアのドライバとソフトウェア命令は、第１のファームウェアに比べてイメージングパイプラインの機能が減少することにおいて、異なる場合がある。
【００１９】
本書で使用されるドライバとは、１つのハードウェアを制御するコンピュータプログラムである。ドライバは、１つのハードウェアにソフトウェアインターフェースを提供し、これによりファームウェアのソフトウェア命令が、使用されるそのハードウェアの正確な詳細を知る必要なく、ハードウェア機能にアクセスできる。
【００２０】
イメージングパイプラインのコンポーネントは一般に、対応するファームウェアを有するハードウェアブロックを含みうる。実施形態によれば、イメージングパイプラインはイメージング、画像スケーリング、ビデオエンコーディング、及びネットワークスインターフェースの提供のために構成されたハードウェアブロックを含みうる。更に、第１と第２のファームウェアは各々、ハードウェアブロックに対応するドライバとソフトウェア命令を含みうる。
【００２１】
イメージングブロックと、それに対応するファームウェアは一般に、未加工センサ画像データを処理して、改善された画像データを生成するように構成される。画像スケーリングブロックと、それに対応するファームウェアは一般に、画像データ、通常はイメージングブロックによって生成された、改善された画像データをスケーリングするように構成される。ビデオエンコーディングブロックと、それに対応するファームウェアは一般に、改善及びスケーリングされた画像データ、又は改善及びスケーリングされた画像データのストリームをエンコードして、エンコードされたビデオストリームを生成するように構成される。ネットワークインターフェースブロックと、それに対応するファームウェアは一般に、ネットワークを介して送信するためにエンコードされたビデオストリームをフォーマットし、エンコードされたビデオストリームをネットワークを介して送信するように構成される。
【００２２】
ハイパーバイザは一般に、第１のファームウェアのハードウェアへのアクセスを制御する。すなわち、ハイパーバイザは、第１のファームウェアがハードウェアレジスタから読み出し、ハードウェアレジスタへ書き込むことが可能である時に制御する。具体的には、ハイパーバイザは、ドライバのアクセス、及び第１のファームウェアの対応するハードウェアブロックへのソフトウェア命令を制御するように構成される。このように、ハイパーバイザは従って、第１のファームウェアの異なるハードウェアブロックへのアクセスを制御することができる。
【００２３】
本発明の第２の態様によれば、上記目的は、デバイスのハードウェアを制御するように構成された第１のファームウェアのアップグレード中に、デバイスの操作を容易にする方法によって達成される。本方法は、第１のファームウェアをハードウェアにリンクするハイパーバイザによって実施される。本方法は、第１のファームウェアのアップグレードの準備において、第１のファームウェアのハードウェアへのアクセスを拒否することと、第２のファームウェアにアクセスすることと、第２のファームウェアによってハードウェアを制御することとを含む。
【００２４】
本方法は更に、第１のファームウェアのアップグレード後に、第１のファームウェアのハードウェアへのアクセスを再確立することと、ハードウェアの制御を第１のファームウェアへ引き渡すこととを含みうる。
【００２５】
第２の態様は一般的に、第１の態様と同じ特徴及び利点を有しうる。別途明示的に記載されない限り、本発明が特徴の可能な組み合わせ全てに関するものであることを更に留意すべきである。
【００２６】
本発明の上記及び追加の目的、特徴、利点は、付随する図面を参照しつつ、本発明の好ましい実施形態の以下の例示的かつ非限定的な詳細説明を通して、より明確に理解されるであろう。図面では類似要素に対して同じ参照番号が使用されている。
【図面の簡単な説明】
【００２７】
【図１】実施形態によるアップグレード可能なファームウェアを有するデバイスを示す概略図である。
【図２】ファームウェアのアップグレード中にデバイスの操作を容易にする、実施形態による方法のフロー図である。
【図３】実施形態によるアップグレード可能なファームウェアを有するビデオカメラを示す概略図である。
【発明を実施するための形態】
【００２８】
これより、本発明の実施形態を示す添付図面を参照して、本発明をより網羅的に説明する。動作中の、本書で開示されるシステム及びデバイスが、説明される。
【００２９】
図１は、実施形態によるデバイス１００を示す図である。デバイス１００は、ハードウェア１０２、ハイパーバイザ１０４、及び第１のファームウェア１０６を含む。幾つかの例を挙げると、デバイス１００は、例えば携帯電話、ビデオカメラ、及びアクセスシステムのデバイス等の組込デバイスでありうる。アクセスシステムのデバイスの実施例は、アクセスコントローラ、ドアステーション、及びカードリーダである。
【００３０】
ハイパーバイザ１０４は、ハードウェア１０２と第１のファームウェア１０６との間に配置される。ハイパーバイザ１０４は従って、第１のファームウェアをハードウェアにリンクする。このように、第１のファームウェア１０６はハイパーバイザ１０４を介してのみハードウェア１０２にアクセスしうる、すなわち、第１のファームウェア１０６によるハードウェアレジスタからの全ての読み出し、及びハードウェアレジスタへの全ての書き込みは、ハイパーバイザ１０４を介して行われる。ハイパーバイザ１０４は更に、第１のファームウェア１０６のハードウェア１０２へのアクセスを制御しうる。
【００３１】
具体的には、ハイパーバイザ１０４が、例えばハイパーバイザ１０４を介して第１のファームウェア１０６のハードウェア１０２へのアクセスをリンクする制御リンク１１０を切断することによって、第１のファームウェアのハードウェア１０２へのアクセスを拒否しうる。ハイパーバイザ１０４は更に、例えば制御リンク１１０を再確立することによって、第１のファームウェア１０６のハードウェア１０２へのアクセスを再確立しうる。
【００３２】
ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせにおいて実行されうるハイパーバイザ１０４は一般に、ハードウェア１０２のインターフェースと同一のインターフェースを第１のファームウェア１０６に提供する。ハイパーバイザ１０４は、ネイティブ又はベアメタルハイパーバイザとしても知られるタイプ１のハイパーバイザ１０４であることが好ましい。あるいは、ハイパーバイザ１０４は、ホスト型ハイパーバイザとも知られる、すなわちオペレーティングシステム上で実行されるコンピュータプログラムであるタイプ２のハイパーバイザ１０４でありうる。ハイパーバイザ１０４のソフトウェアおよびファームウェアは、デバイス１００の非揮発性、好ましくは読み出し専用メモリに保存されうる。
【００３３】
第１のファームウェア１０６は、ハードウェア１０２を制御するソフトウェアを含む。第１のファームウェア１０６はアップグレード可能である、つまり置き替える、上書きする、又は再プログラミングすることが可能である。第１のファームウェア１０６は通常、例えばＥＥＰＲＯＭ又はフラッシュメモリ等のデバイス１００の非揮発性、書き込み可能なメモリに保存される。第１のファームウェア１０６及びハイパーバイザ１０４のソフトウェアとファームウェアは、（コスト効率が良い）同じ非揮発性メモリ又は別の非揮発性メモリのいずれかに保存されうる。後者の場合、第１のファームウェア１０６の非揮発性メモリは書き込み可能であるが、ハイパーバイザ１０４の非揮発性メモリは読み出し専用であり、これは安全性の観点から好ましい。
【００３４】
デバイス１００は更に、第１のファームウェア１０６とは異なる第２のファームウェア１０８を含む。第２のファームウェア１０８はまた、ハードウェア１０２を制御するソフトウェアも含む。第２のファームウェア１０８は、ハイパーバイザ１０４にアクセス可能になるように配置される。安全性の理由で、第２のファームウェア１０８がハイパーバイザ１０４に含まれる、つまり第２のファームウェア１０８がハイパーバイザ１０４のファームウェアの一部を形成することが好ましい。例えば、第１のファームウェア１０６と、第２のファームウェア１０８を含むハイパーバイザ１０４のファームウェアは、上述したように、別々の非揮発性メモリに保存されうる。しかしながら、幾つかの実施形態では、第２のファームウェア１０８はハイパーバイザ１０４の一部ではない。例えば第２のファームウェア１０８は、ハイパーバイザ１０４の外部、例えば別々のファイル、共通記憶装置の別々の部分、又は別々の記憶装置等に保存されうる。しかしながら、ハイパーバイザ１０４はそれでもまだ、ハードウェア１０２を制御するために、第２のファームウェア１０８にアクセスし、次に全てのソフトウェア命令と第２のファームウェア１０８のドライバを実行することができる。第２のファームウェア１０８が部分的にハイパーバイザ１０４に含まれ、部分的にハイパーバイザ１０４の外部に保存されることも可能である。
【００３５】
デバイス１００は更に、例えば第１のファームウェア１０６、ハイパーバイザ１０４、及び第２のファームウェア１０８によって実行される命令等のソフトウェア及びファームウェア命令を実行する一又は複数のプロセッサを含みうる。
【００３６】
第１と第２のファームウェア１０６、１０８は各々、異なる層を含みうる。通常、第１と第２のファームウェア１０６、１０８は各々、ドライバと、他のソフトウェア命令を含みうる。ドライバは第１の層を形成し、ハードウェア１０２にソフトウェアインターフェースを提供し、他のソフトウェア命令を有効にし、別の層を形成し、使用されているハードウェア１０２のいかなる詳細も知ることなくハードウェア１０２にアクセスする。
【００３７】
上述したように、第１と第２のファームウェア１０６、１０８は両方とも、デバイス１００のハードウェア１０２を制御するように構成される。しかしながら、第２のファームウェア１０８は通常、第１のファームウェアと比較して機能が減少したカメラを制御することにおいて、第１のファームウェア１０６と異なる。例えば、第２のファームウェア１０８は、第１のファームウェア１０６よりも少ない機能を実行しうる、及び／又は第２のファームウェア１０８は、第１のファームウェア１０６よりも単純で、メモリへの負担が少ない機能を実行しうる。これを更に、図２と併せて以下に例示する。このように、第２のファームウェア１０８の（実行時間メモリと記憶装置の両方の観点からの）メモリフットプリントが、第１のファームウェア１０６と比べて低いレベルに維持されうる。
【００３８】
以下に、デバイス１００の動作を説明する。デバイス１００は、２つのモード：第１のファームウェア１０６がハードウェア１０２を制御する通常動作モードと、ハイパーバイザ１０４が第２のファームウェア１０８によってハードウェア１０２を制御するファームウェアアップグレードモードにおいて動作しうる。ハイパーバイザ１０４は、第１のファームウェア１０６によって、通常動作モードからファームウェアアップグレードモードに切り替わるようにトリガされうる。更に詳細には、第１のファームウェア１０６のソフトウェアがハイパーバイザ１０４の機能を、通常動作モードからファームウェアアップグレードモードへ切り替えるように起動させることができる。
【００３９】
通常動作モードにある時、第１のファームウェア１０６はハイパーバイザ１０４を介してハードウェア１０２にアクセスできる。つまり、第１のファームウェア１０６がハードウェア１０２のレジスタから読み出し、ハードウェア１０２のレジスタへ書き込むことができるように、ハイパーバイザ１０４によって確立された、第１のファームウェア１０６とハードウェア１０２との間の制御リンク１１０が存在する。通常動作モードにある時は、ハイパーバイザ１０４は、第１のファームウェア１０６が直接ハードウェアの機能にアクセスすることができるようにし、これにより第１のファームウェアがハードウェア１０２を制御することが可能になる。
【００４０】
ファームウェアアップグレードモードにある時に、第１のファームウェア１０６がアップグレードされる。その間、ハイパーバイザ１０４はハードウェア１０２を制御する。ここで、第１のファームウェア１０６のアップグレード中にデバイス１００の操作を容易にする方法を、図１と図２のフロー図を参照しながら開示する。
【００４１】
第１のファームウェア１０６のアップグレードの準備において、ハイパーバイザ１０４が、ステップＳ０２で、第２のファームウェア１０８にアクセスする。更に上述したように、第２のファームウェア１０８は、全体的に又は部分的にハイパーバイザ１０４に含まれうる、あるいは、全体的に又は部分的にハイパーバイザ１０４の外側に保存されうる。ハイパーバイザ１０４が第２のファームウェア１０８にアクセスしたら、ハイパーバイザ１０４は第１のファームウェア１０６のハードウェア１０２へのアクセスＳ０４を拒否しうる。これは、ハイパーバイザ１０４が、第１のファームウェア１０６とハードウェア１０２との間の制御リンク１１０を切断することを意味する。第１のファームウェア１０６はこれにより、ハードウェア１０２から接続解除され、ハードウェア１０２を制御するように機能しなくなる。代わりに、デバイス１００のノンストップの動作を提供するために、ハイパーバイザ１０４は第２のファームウェア１０８を使用してハードウェア１０２の制御Ｓ０６を開始する。更に詳細には、ハイパーバイザ１０４は次に、ハードウェア１０２を制御するために、第２のファームウェア１０８のソフトウェア命令とドライバを実行する。この時、第１のファームウェア１０６は、デバイスの動作を失うことなく、アップグレードされうる。しかしながら、第２のファームウェア１０８によっては、デバイス１００は機能が減少した状態で動作可能になりうる。
【００４２】
第１のファームウェア１０６のアップグレードが完了すると、ハイパーバイザ１０４は、ステップＳ０８において、第１のファームウェア１０６のハードウェア１０２へのアクセスを再確立する、すなわち制御リンク１１０を再確立して、ハードウェア１０２の制御を第１のファームウェア１０６に引き渡しうる。
【００４３】
図３は、デバイスがビデオカメラ２００である実施形態を示す図である。ビデオカメラ２００は、ネットワークを介して送信するためにフォーマットされるエンコードされたビデオストリームを生成するために、センサ２１２から受信した未加工センサデータを処理するのに使用されるコンポーネントのセットを含むイメージングパイプラインを有する。この実施例では、イメージングパイプラインは、イメージングコンポーネント、画像スケーリングコンポーネント、エンコーディングコンポーネント、及びネットワークインターフェースコンポーネントを含むと仮定する。イメージングパイプラインの各コンポーネントは通常、対応するハードウェアのブロックを制御するように構成される、ドライバとソフトウェア命令を含むファームウェアのブロックを含む。例示的な実施形態では、第１のファームウェア１０６は、イメージングハードウェアブロック２０２ａに対応するイメージングファームウェアブロック２０６ａと、スケーラハードウェアブロック２０２ｂに対応するスケーラファームウェアブロック２０６ｂと、エンコーダハードウェアブロック２０２ｃに対応するエンコーダファームウェアブロック２０６ｃと、ネットワークインターフェースハードウェアブロック２０２ｄに対応するネットワークインターフェースファームウェアブロック２０６ｄとを含む。同様に、第２のファームウェア１０４は、イメージングハードウェアブロック２０２ａに対応するイメージングファームウェアブロック２０８ａと、スケーラハードウェアブロック２０２ｂに対応するスケーラファームウェアブロック２０８ｂと、エンコーダハードウェアブロック２０２ｃに対応するエンコーダファームウェアブロック２０８ｃと、ネットワークインターフェースハードウェアブロック２０２ｄに対応するネットワークインターフェースファームウェアブロック２０８ｄとを含む。  
【００４４】
イメージングパイプラインのイメージングコンポーネントの役割は、例えばデモザイキング、ホワイトバランシング、ビネッティング補正、シャープニング、カラーマトリクス化、暗電流補正、カラム固定パターンノイズ補正、欠陥ピクセル補正、及びノイズフィルタリングを実施することによって、未加工センサデータのビデオストリームを処理し改善することである。
【００４５】
イメージングパイプラインのスケーラコンポーネントの役割は、イメージングブロック２０２ａの出力である画像データの改善されたビデオストリームをスケーリングすることである。スケーラコンポーネントはまた、例えば歪み補正及びたる形歪曲補正の実施、及び画像にオーバーレイを含める等の画像データを変換することも含みうる。
【００４６】
エンコーダコンポーネントの役割は、例えばＭＪＰＥＧ、Ｈ．２６４又はＨ．２６５等のビデオエンコーディング形式のエンコードされたビデオストリームを作成するために、スケーラブロック２０２ｂから出力された画像データの改善及びスケーリングされたストリームをエンコーディングすることである。  
【００４７】
ネットワークインターフェースコンポーネントの役割は、ネットワークを介して送信するのに適切な形式にエンコードされたビデオストリームを処理することと、フォーマットされたビデオストリームをネットワークを介して送信することである。これには、例えばイーサネットインターフェース、ＷｉＦｉインターフェース、３Ｇ／４Ｇインターフェース、Ｚ−ｗａｖｅインターフェース等が含まれうる。
【００４８】
例えば図１と共に更に上述したように、ハイパーバイザ１０４は、第１のファームウェア１０６のアップグレード中、第２のファームウェア１０８によってハードウェア１０２を制御する。この実施例では、ハイパーバイザ１０４は従って、第１のファームウェア１０６のアップグレード中は、第２のファームウェア１０８を使用してビデオカメラ２００のイメージングパイプラインを操作する。つまり、ハイパーバイザ１０４は、第１のファームウェア１０６のアップグレード中は、対応するハードウェアブロック２０２ａ、２０２ｂ、２０２ｃ、２０２ｄを制御するために、第２のファームウェア１０８のイメージングファームウェアブロック２０８ａ、スケーラファームウェアブロック２０８ｂ、エンコーダファームウェアブロック２０８ｃ及びネットワークインターフェースブロック２０８ｄを使用する。
【００４９】
通常、このプロセスの間、ハイパーバイザ１０４向けに少量のシステムメモリのみが確保され、残りの部分は、第１のファームウェア１０６のアップグレードに、そしてその後のシステム起動に使われる。限定されたメモリリソースに対処するために、第２のファームウェア１０８は、減少した機能でハードウェア１０２を制御するように構成され得、この場合、ビデオカメラ２００のイメージングパイプラインが、ファームウェアアップグレードモードの間は通常動作モードに比べて減少した機能を有することを意味する。
【００５０】
更に詳細には、第２のファームウェア１０８は、第１のファームウェア１０６よりも少ない機能を実行しうる。通常、ビデオカメラ２００の動作において基本的でない機能、及び／又は第１のファームウェア１０６に比べて処理、帯域幅、又はメモリに負担のかかる機能は停止される。通常、第２のファームウェア１０８は、例えばメモリ管理又はプロセススケジューリング等のオペレーティングシステムに属するいかなる特徴も実行しない。これはつまり、特定の機能、例えば解析又はメタデータストリーム等をサポートしないことを意味する。これは、第１のファームウェア１０６とは対照的である。解析には、ソフトウェアにおいて実施される解析、又は特定のハードウェアに関連している解析が含まれうる。上記解析には通常、別のビデオストリームと追加の処理が必要とされうるため、第２のファームウェア１０８においては無効である。例えば、第２のファームウェア１０８は、画像データの輝度成分のみ（すなわちＣｂＣｒではなくＹのみ）を有する低解像度のストリームを動き検出アルゴリズムへ送りうる。
【００５１】
例えば一方では、第１のファームウェア１０６のイメージングファームウェアブロック２０６ａは、例えばデモザイキング、ホワイトバランシング、ビネッティング補正、シャープニング、カラーマトリクス化、暗電流補正、カラム固定パターンノイズ補正、欠陥ピクセル補正、及び（一時的な）ノイズフィルタリング、クロストーク補正及び露出マージ等のあらゆる種類の画像処理を含むように構成されうる。他方では、第２のファームウェア１０８のイメージングファームウェアブロック２０８ａは、例えばデモザイキング及び欠陥ピクセル補正等の基本的な処理ステップのみを実行するように構成されうる。例えば露出マージ及び一時的なフィルタリング等の、基本的なものでなく、システムメモリ及び／又は処理能力をたくさん費やす他の処理ステップは停止される。
【００５２】
同様に、一方では、第１のファームウェア１０６のスケーラファームウェアブロック２０６ｂは、（例えば歪み補正及びたる形歪曲補正を実施することによって）画像データをスケーリングする、画像データを変換する、及び画像のオーバーレイを含めるように構成されうる。他方では、第２のファームウェア１０８のスケーラファームウェアブロック２０８ｂは、いかなるスケーリング、変換又はオーバーレイの追加もすることなくビデオストリームを通すように構成されうる。
【００５３】
第２のファームウェア１０８は更に、第１のファームウェア１０６に比べてあまりメモリに負担がかからない、及び／又は処理がより簡単である、及び／又は必要な帯域幅が狭い機能を実行しうる。これには、複数のビデオストリームの代わりに１つのビデオストリームを処理する、及び／又は通常の解像度の代わりに低い解像度で画像データを処理することが含まれうる。このように、メモリ、処理及び帯域幅リソースのほとんどは、デバイスの通常動作中に使用される第１のファームウェア１０６（又は第１のファームウェア１０６のアップグレード）に費やされる。
【００５４】
別の実施例によれば、第１のファームウェア１０６のエンコーディングファームウェアブロック２０６ｃは、例えばＨ．２６４、Ｈ．２６５、及びＭＪＰＥＧ等の幾つかのビデオエンコーディング形式をサポートするように構成されうる。第２のファームウェアブロック２０８ｃは、ＭＪＰＥＧのみをサポートするように構成され得、これは、メモリに基準フレームを保存する必要がないことから、メモリにあまり負担がかからないためである。
【００５５】
同様に、第１のファームウェア１０６のネットワークインターフェースファームウェアブロック２０６ｄは、全面的なイーサネットサポートと完全なｈｔｔｐサーバを有し得、第２のファームウェア１０８のネットワークインターフェースファームウェアブロック２０８ｄは、基本的なイーサネットサポートと簡略化されたｈｔｔｐサーバのみを有しうる。
【００５６】
当業者が上述の実施形態を多くの方法で修正し、かつ、上記の実施形態において示す本発明の利点を依然として使用することが可能であることが理解されるだろう。例えば、デバイスはビデオカメラに限定されず、例えば携帯電話であってもよい。上記の例では、第２のファームウェアは第１のファームウェアに比べて、例えばファームウェアのアップグレード中に緊急通話のみが可能である等の減少した機能を有しうる。他の実施例によれば、デバイスは、アクセスコントローラ、ドアカメラステーション、無線スピーカ等でありうる。従って、本発明は例示の実施形態に限定すべきではなく、添付の特許請求の範囲によってのみ定義されるべきである。加えて、当業者が理解するように、示した実施形態を組み合わせることが可能である。
【図１】
0006448691.tif 000002
【図２】
0006448691.tif 000003
【図３】
0006448691.tif 000004