(57)【特許請求の範囲】
【請求項１】
１又は複数のプロセッサと、
前記１又は複数のプロセッサによってアクセス可能なプログラム指令を格納した１又は複数のメモリと、
を備え、
前記１又は複数のプロセッサは、
前記プログラム指令を実行することにより、第１のオペレーティング環境と第２のオペレーティング環境を提供し、
前記第２のオペレーティング環境に好適な１又は複数のファームウェアアップデートパッケージを、前記第１のオペレーティング環境にダウンロードし、
前記第１のオペレーティング環境からファームウェアアップデートツールを実行し、
前記ファームウェアアップデートツールは、前記１又は複数のファームウェアアップデートパッケージを前記第２のオペレーティング環境にインストールするように構成されており、
前記ファームウェアアップデートツールは、前記第１のオペレーティング環境から前記第２のオペレーティング環境へ切り替えるトリガーに応じて実行されることを特徴とする情報処理デバイス。 
【請求項２】
前記１又は複数のプロセッサは、前記第２のオペレーティング環境の１又は複数のファームウェアアプリケーションのバージョンを問い合わせるように構成されていることを特徴とする請求項１に記載の情報処理デバイス。 
【請求項３】
前記１又は複数のファームウェアアプリケーションのバージョンは、前記第１のオペレーティング環境の１又は複数のレジストリファイルに格納されていることを特徴とする請求項２に記載の情報処理デバイス。 
【請求項４】
１又は複数のフラグは、１又は複数のファームウェアアップデートパッケージが利用可能であることを示すように構成されていることを特徴とする請求項１に記載の情報処理デバイス。 
【請求項５】
さらに、前記１又は複数のファームウェアアップデートパッケージを実行するように構成された第１のオペレーティングシステム環境のインストーラツールを備えたことを特徴とする請求項１に記載の情報処理デバイス。 
【請求項６】
前記第１のオペレーティングシステム環境のインストーラツールは、前記１又は複数のファームウェアアップデートパッケージのダウンロードに応じて活性化されることを特徴とする請求項５に記載の情報処理デバイス。 
【請求項７】
前記１又は複数のファームウェアアップデートパッケージは、１又は複数の情報処理デバイスの条件に応じて、前記第２のオペレーティング環境にインストールされることを特徴とする請求項１に記載の情報処理デバイス。 
【請求項８】
前記１又は複数の情報処理デバイスの条件は、バッテリのパワーレベルが所定の閾値以上であることを含むことを特徴とする請求項７に記載の情報処理デバイス。 
【請求項９】
前記１又は複数のプロセッサは、前記第２のオペレーティング環境にインストールされている前記１又は複数のファームウェアアップデートパッケージの進捗情報を提供するように構成されていることを特徴とする請求項１に記載の情報処理デバイス。 
【請求項１０】
１又は複数のプロセッサが、１又は複数のメモリに格納したプログラム指令を実行することによって実行される方法であって、
第１のオペレーティング環境と第２のオペレーティング環境を提供する工程と、
前記第２のオペレーティング環境に好適な１又は複数のファームウェアアップデートパッケージを、前記第１のオペレーティング環境にダウンロードする工程と、
前記第１のオペレーティング環境からファームウェアアップデートツールを実行する工程と、
を含み、
前記ファームウェアアップデートツールは、前記１又は複数のファームウェアアップデートパッケージを前記第２のオペレーティング環境にインストールするように構成されており、前記第１のオペレーティング環境から前記第２のオペレーティング環境へ切り替えるトリガーに応じて実行されることを特徴とする方法。 
【請求項１１】
さらに、前記第２のオペレーティング環境に存在する１又は複数のファームウェアプリケーションのバージョンを問い合わせる工程を、含むことを特徴とする請求項１０に記載の方法。 
【請求項１２】
前記１又は複数のファームウェアプリケーションのバージョンは、前記第１のオペレーティング環境の１又は複数のレジストリファイルに格納されていることを特徴とする請求項１１に記載の方法。 
【請求項１３】
１又は複数のフラグは、１又は複数のファームウェアップデートパッケージが利用可能であることを示すように構成されていることを特徴とする請求項１０に記載の方法。 
【請求項１４】
さらに、１又は複数のファームウェアップデートパッケージを準備するように構成された第１のオペレーティング環境インストーラを備えたことを特徴とする請求項１０に記載の方法。 
【請求項１５】
前記１又は複数のファームウェアップデートパッケージは、１又は複数の情報処理デバイスの状態に応じて、前記第２のオペレーティング環境にインストールされることを特徴とする請求項１０に記載の方法。 
【請求項１６】
前記１又は複数の情報処理デバイスの状態は、閾値より大きいバッテリのパワーレベルを含むことを特徴とする請求項１５に記載の方法。 
【請求項１７】
さらに、前記第２のオペレーティング環境にインストールされる１又は複数のファームウェアップデートパッケージ用の進捗情報を提供する工程を、含むことを特徴とする請求項１０に記載の方法。 
【請求項１８】
コンピュータが実行可能なプログラムであって、
第１のオペレーティング環境と第２のオペレーティング環境を提供する工程と、
前記第２のオペレーティング環境に好適な１又は複数のファームウェアアップデートパッケージを、前記第１のオペレーティング環境にダウンロードする工程と、
前記第１のオペレーティング環境からファームウェアアップデートツールを実行する工程と、
をコンピュータに実行させ、
前記ファームウェアアップデートツールは、前記１又は複数のファームウェアアップデートパッケージを前記第２のオペレーティング環境にインストールするように構成されており、前記第１のオペレーティング環境から前記第２のオペレーティング環境へ切り替えるトリガーに応じて実行されることを特徴とするコンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハイブリッドコンピューティング環境におけるファームウェアのアップデートに関する。
【背景技術】
【０００２】
ハイブリッドコンピューティング環境におけるファームウェアのアップデート環境を操作する２つの主要な情報処理デバイスは、従来のコンピューティングデバイス（例えば、パーソナルコンピュータやラップトップコンピュータ）のエコシステムとモバイルデバイス（例えば、スマートフォンやタブレットコンピューティングデバイス）のエコシステムである。従来のコンピューティングデバイスのエコシステムは、一般的に、Ｗｉｎ−Ｔｅｌプラットフォーム、例えば、WINDOWS（登録商標）７オペレーティングシステムのようなMicrosoft  WINDOWS（登録商標）オペレーティングシステムを稼働可能なIntel  x86コンパチブルプロセッサで構成されるプラットフォームを収容するパーソナルコンピュータやラップトップコンピュータを構成するファクタで構成されている。
【０００３】
モバイルデバイスのエコシステムは、一般的に小さなデバイス（例えば、“hand-held”操作が可能なデバイス）用に、低電力プロセッサとより軽いオペレーティングシステム上で稼働するように構成されている。モバイル用のオペレーティングシステムで人気のある例は、スマートフォン、ネットブック、及びタブレットコンピュータのようなモバイルデバイス用のオペレーティングシステムとして使用されている、ANDROID（登録商標）オペレーティングシステムである。  タブレットコンピュータのような小さなモバイルデバイス用の有名なプロセッサ・ファミリは、「SNAPDRAGON  BY  QUALCOMM（登録商標）CPU」のようなＡＲＭのプロセッサシリーズである。
【０００４】
従来のコンピューティングデバイスやモバイルデバイスのオペレーティング環境は、それぞれ独自の利点がある。例えば、モバイルデバイスのオペレーティング環境の利点は、移動性、サイズ、高いエネルギー効率があり、一方、従来のコンピュータデバイスを望む主な理由は、増加する処理能力や伝統的な入力デバイスを備えている点である。  
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、ハイブリッドコンピューティング環境において、ファームウェアのアップデートを容易にすることを目的とする。
【課題を解決するための手段】
【０００６】
要約すると、１つの態様では、１又は複数のプロセッサと、前記１又は複数のプロセッサによってアクセス可能なプログラム指令を格納した１又は複数のメモリと、を備え、前記１又は複数のプロセッサは、前記プログラム指令を実行することにより、第１のオペレーティング環境と第２のオペレーティング環境を提供し、前記第２のオペレーティング環境に好適な１又は複数のファームウェアアップデートパッケージを、前記第１のオペレーティング環境にダウンロードし、前記第１のオペレーティング環境からファームウェアアップデートツールを実行し、前記ファームウェアアップデートツールは、前記１又は複数のファームウェアアップデートパッケージを前記第２のオペレーティング環境にインストールするように構成されている、情報処理デバイスを提供する。
【０００７】
別の態様では、第１のオペレーティング環境と第２のオペレーティング環境を提供する工程と、前記第２のオペレーティング環境に好適な１又は複数のファームウェアアップデートパッケージを、前記第１のオペレーティング環境にダウンロードする工程と、前記第１のオペレーティング環境からファームウェアアップデートツールを実行する工程と、前記ファームウェアアップデートツールは、前記１又は複数のファームウェアアップデートパッケージを前記第２のオペレーティング環境にインストールするように構成されている、方法を提供する。
【０００８】
さらに別の態様では、第１のオペレーティング環境と第２のオペレーティング環境を提供する工程と、前記第２のオペレーティング環境に好適な１又は複数のファームウェア・アップデート・パッケージを、前記第１のオペレーティング環境にダウンロードする工程と、前記第１のオペレーティング環境からファームウェアアップデートツールを実行する工程と、を実行するように構成され、前記ファームウェアアップデートツールは、前記１又は複数のファームウェアアップデートパッケージを前記第２のオペレーティング環境にインストールするように構成されている、プログラムコードを備えた記録媒体を提供する。
【０００９】
上述した内容は、要約であり、そのため、簡素化、一般化、詳細の省略を行ってもよい。当業者は、この要約は  単に説明であってその態様を制限する意図ではないことを理解できる。  
【００１０】
より実施態様を理解するために、そのさらなる特徴と利点は、以下の記載と添付した図面を一緒に参照することで理解できる。発明の範囲は、特許請求の範囲において指摘されている。
【図面の簡単な説明】
【００１１】
【図１】図１は、情報処理デバイスシステムの回路例を示す図である。
【図２】図２は、情報処理デバイスシステムの他の回路例を示す図である。
【図３】図３は、ハイブリッド情報処理デバイスの環境の例を示す図である。
【図４】図４は、実施例に従って構成されたファームウェアップデートプロセスを示すフローチャートである。
【発明を実施するための形態】
【００１２】
図面で一般的に説明しているような実施例のコンポーネントは、ここで記載する実施例に加えて、広く異なる各種構成として構成及び設計してもよい。従って、図面に記載されているような以下の実施例の詳細な記載は、特許請求の範囲の制限を意図するものではなく、単なる実施例である。
【００１３】
明細書を通じて、実施例に関連して記載された特定の図、構成、特徴を意味する１つの実施例又はある実施例等の参照は、少なくとも１つの実施例である。従って、いろいろな場所において、１つの実施例又はある実施例等という用語は、明細書を通じて、必ずしも全て同じ実施例を参照しているわけではない。
【００１４】
さらに、記載される特徴、構成、又は特性は、１又は複数の実施例において、好ましい態様で組み合わせることができる。以下の記載において、多数の詳細な説明が、実施例の理解を通じて提供される。関連する技術の当業者は、各種の実施例を、詳細な説明がなくても、他の方法や、コンポーネント、材料を用いて実施することができる。換言すると、公知の構成、材料、オペレーションは、難解となるのを避けるため詳細には記載していない。以下の記載は、単に実施例の態様を意図するものであり、簡単に特定の実施例について説明している。
【００１５】
実施例では、単一のコンピューティングシステムにおいて、第１の環境（ＰＥ：例えば、Win-Telプラットフォームのような従来のコンピューティングデバイスのプラットフォーム）と第２の環境（ＳＥ：例えば、ANDROID（登録商標）プラットフォームのようなモバイルデバイスのプラットフォーム）を備えたハイブリッドコンピューティングシステムを提供する。ハイブリッドコンピューティングシステムは、更にここで記載するように、各種の特徴を有している。他の特徴において、実施例では、ハイブリッドコンピューティングシステムのファームウェアのアップデートをサポートしている。
【００１６】
図１は、Win-Telタイプの情報処理デバイスの回路やコンポーネントの一例を示すブロック図である。これに限られるものではなく、他の回路やコンポーネントを使用してもよい。図１に示す例は、例えば、Lenovo(US)  Inc.  of  Morrisvilleで販売されているパーソナルコンピュータのTHINKPADシリーズ、ＮＣ、又は他のデバイスのようなコンピューティングシステムとすることができる。ここでの記載から明らかなように、実施例では、図１に示す構成以外の構成を含んでもよく、また、図１に示す構成のうちの一部だけを含んでいてもよい。
【００１７】
図１の例では、製造業者（例えば、ＩＮＴＥＬ、ＡＭＤ、ＡＲＭ等）に応じて変更できるアーキテクチャを有するいわゆるチップセット（chipset）１１０（集積回路、チップ、又はチップセットのグループ等）を備えている。チップセット１１０のアーキテクチャは、ＤＭＩ（direct  management  interface）１４２又はリンクコントローラ（link  controller）１４４を介して情報（例えば、データ、信号、及びコマンド等）を交換するコア・メモリコントロールグループ（core  and  memory  control  group）１２０及びＩ／Ｏコントローラハブ（I/Ｏ  controller  hub）１５０を備えている。図１において、ＤＭＩ１４２は、chip-to-chipインターフェイスである（ノースブリッジ（north-bridge）とサウスブリッジ（south-bridge）間のリンクとして参照する場合がある）。コア・メモリコントロールグループ１２０は、ＦＳＢ（front  side  bus）１２４を介して情報を交換する１つ以上のプロセッサ（processors）１２２（例えば、シングル又はマルチコア）及びメモリコントローラハブ（memory  controller  hub）１２６を備えている。コア・メモリコントロールグループ１２０は、従来のノースブリッジ（north-bridge）式のアーキテクチャに取って代わるチップがインテグレィトされてもよい。
【００１８】
図１において、メモリコントローラハブ１２６は、メモリ（memory）１４０とのインターフェイスを行う（例えば、システムメモリまたはメモリとして参照できるＲＡＭ形式としてサポートを提供する）。メモリコントローラハブ１２６は、さらに、ディスプレイデバイス（例えば、ＣＲＴ、フラットパネル、プロジェクタ等）１９２用のＬＶＤＳインターフェイス（LVDS  interface）１３２を備えている。ブロック（block）１３８はＬＶＤＳインターフェイス１３２を介してサポートされるテクノロジー（例えば、ＳＤＶＯ(serial  digital  video)、  ＨＤＭＩ／ＤＶＩ、  ディスプレイポート（display  port)）を備えている。メモリコントローラハブ１２６は、また、ディスクリートグラフィックス（discrete  graphics）１３６をサポートするＰＣＩｅ−Ｅ（PCI-express  interface）１３４を備えている。
【００１９】
図１において、Ｉ／Ｏコントローラハブ１５０は、ＳＡＴＡインターフェイス１５１（例えば、ＨＤＤ／ＳＤＤ１８０用等）、ＰＣＩ−Ｅインターフェイス１５２（例えば、無線接続  １８２用等）、ＵＳＢインターフェイス１５３（例えば、デジタイザ、キーボード、マウス、カメラ、電話、ストレージ、他の接続デバイス等の入力デバイス（input  devices）１８４用）、ネットワークインターフェイス１５４  (例えば、ＬＡＮ）、ＧＰＩＯインターフェイス１５５、ＬＰＣインターフェイス１７０（ＡＳＩＣｓ１７１、ＴＰＭ１７２、ｓｕｐｅｒＩ／Ｏ１７３、ファームウェアハブ１７４、ＢＩＯＳサポート１７５、ＲＯＭ１７７、Ｆｌａｓｈ１７８、及びＮＶＲＡＭ１７９のような各種タイプのメモリ１７６用)、パワーマネージメントインターフェイス（power  management  interface）１６１、クロックジェネレータインターフェイス（clock  generator  interface）１６２、オーディオインターフェイス（audio  interface）１６３(例えば、スピーカ１９４用)、ＴＣＯインターフェイス（TCO  interface）１６４、システムマネージメントバスインターフェイス（system  management  bus  interface）165、  ＢＩＯＳ１６５及びブートコード１９０を含むことができるＳＰＩ  Ｆｌａｓｈ１６６等を備えている。Ｉ／Ｏコントローラハブ１５０は、ギガビット・イーサネット（登録商標）サポートを含んでいてもよい。
【００２０】
コンピュータシステムは、パワーオン後にＳＰＩ  Ｆｌａｓｈ１６７に格納されているＢＩＯＳ１６８がブートコード１９０を実行し、その後、１つ以上のユーザＯＳ及びアプリケーションソフトウェア（例えば、メモリ１４０に格納されている）のコントロール下でデータを処理するように構成してもよい。ユーザＯＳは、各種の記憶場所に格納でき、例えば、ＢＩＯＳ１６８の指令に応じてアクセスされるようにしてもよい。ここで記載したように、デバイスは図１のコンピュータシステムに示されるよりも少なくまたは多くの構成を含んでいてもよい。  
【００２１】
図２を参照して、スマートフォン及び／又はタブレットの回路（smart phone and/or tablet circuitry）２００に関して説明する。この例では、シングルチップ（single chip）２１０に組み込まれたソフトウェア及びプロセッサと、ＡＲＭベースのシステムデザインを備えている。内部バス等は、異なるベンダーに依拠しているが、本質的に全ての周辺デバイス（peripheral(Additional) devices）２２０は、シングルチップ２１０に接続されてもよい。図２に示される回路２００において、チップオンシステム（ＳＯＣ）と称されるように、プロセッサと、メモリコントロールと、Ｉ／Ｏコントローラハブが全てシングルチップ２１０に組み込まれてもよい。また、ＡＲＭベースシステムの回路２００は、典型的には、ＳＡＴＡ、ＰＣＩ、又はＬＰＣを使用しない。例として、共通のインターフェイスは、ＳＤＩＯと１２Ｃを有している。電力管理チップ（power management chip(s)）２３０は、例えば、電源（不図示）に接続されることによってリチャージできるリチャージブルバッテリ（rechargeable battery）２４０を経由して供給されるような電力を管理し、また、少なくとも１つのデザイン、２１０のような、シングルチップでＢＩＯＳのような機能やＤＲＡＭメモリを提供するのに使用されてもよい。
【００２２】
ＡＲＭベースシステムの回路２００は、典型的には、これには限られないが、電話通信ネットワークやワイヤレスベースステーションのような各種のネットワークと接続するためのＷＷＡＮトランシーバー（WWAN Transceiver）２６０やＷＬＡＮトランシーバー（WLAN Transceiver）２５０を含む１又は複数のワイヤレストランシーバーを備えていてもよい。一般的に、ＡＲＭベースシステムの回路２００は、データ入力と表示用にタッチスクリーン(Touch screen/controller)２７０を備えている。ＡＲＭベースシステムの回路２００は、また、典型的には、例えば、フラッシュメモリ２８０及びＳＤＲＡＭ２９０のような各種のメモリデバイスを備えている。
【００２３】
ここで記載するように、実施例では、図１と図２のコンポーネントをハイブリッドシステムに組み込んでいる。各種の実施形態では、各種のハイブリッドの形態を取ることができ、図３は、一例として、ここで述べる実施の形態に従って、提供される標準のシステムバススロットを通じてマルチバンドアンテナのチューニングをサポートするように構成されているハイブリッド環境を示している。
【００２４】
図３は、ハイブリッド情報処理デバイス（デバイス）３００の一例を示している。デバイス３００は、少なくとも２つの環境又は状態、それぞれが２つのプラットフォーム（a primary environment(PE) Platform, a secondary environment(SE) Platform）３１０，３２０でサポートされる第１の環境（ＰＥ）と第２の環境（ＳＥ）を有している。それ故、デバイス３００は、図１に記載したデバイスと同じようなＰＥプラットフォーム３１０と、図２に記載したようなＳＥプラットフォーム３２０を備えていてもよい。例えば、実施例では、ユーザがＷＩＮＤＯＷＳオペレーティング環境や状態を体験するＰＥと、ユーザがＡＮＤＲＯＩＤオペレーティング環境や状態を体験するＳＥと、を備えている。ＰＥでは、デバイス３００は、ＷＩＮＤＯＷＳオペレーティングシステムに応じて動作することができる。ＳＥでは、デバイス３００は、ＡＮＤＲＯＩＤオペレーティングシステムに応じて動作することができる。実施例によれば、ユーザは、これらの２つの状態を切り替えることができる。
【００２５】
実施例では、ハイブリッドコンピューティングデバイス３００は、以前にアクティブだった環境ＳＥ又はＰＥを記憶しておき、一方の環境（例えば、ＳＥ）に、他の環境（例えば、ＰＥ）の状態が変化したことを知らせるエンベデッドコントローラ３３０を備えている。
【００２６】
デバイス３００は、ディスプレイと入力インターフェイス（例えば、キーボード、マウス、タッチインターフェイス等）を備えていてもよい。
【００２７】
スイッチ機構（図３のスイッチ）は、ユーザによって選択される実際のオペレーティング環境に応じて、ＰＥ又はＳＥプラットフォーム３１０、３２０のいずれかによって使用されるコンポーネントを許可するのに使用してもよい。
【００２８】
ＰＥプラットフォーム３１０とＳＥプラットフォーム３２０間の通信は、各種レベルで行うことにしてもよい。マシン状態、セキュリティ、及び他の関連する機能のコントロールは、デバイス３００のエンベデッドコントローラ３２０によって提供されてもよい。通信リンクは、１２ＣやＬＰＣのようなプロトコルを使用してもよい。例えば、ビデオファイルのような大量データを転送するのに使用されるような高バンド幅通信として、USB,  PCI  expressや  Ethernet（登録商標）のような方法を使用してもよい。
【００２９】
デバイス３００はＳＥモード又は状態にある場合には、独立したタブレットコンピュータとして動作する。ＡＮＤＲＯＩＤ（登録商標）オペレーティングシステムのような、そこで実行されるＳＥプラットフォーム３２０及びライトウエイト／タブレットオペレーティングシステムは、ディスプレイ、カメラ・マイクロフォン・スピーカー・共通ワイヤレスアンテナ・アクセレロメーター・ＳＤカードのような周辺器、他の同じような周辺デバイス、及びソフトウェアプリケーションの動作を制御する。  
【００３０】
ユーザがＰＥプラットフォーム３１０の操作状態を選択した場合は、デバイス３００は、ＰＥプラットフォーム３１０を使用する。この操作状態は、デフォルト又は初期状態として設定することにしてもよい。デバイス３００はＰＥ状態にある場合、例えば、ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムを含むＰＥプラットフォーム３１０によって制御される。本質的には、ＰＥプラットフォーム３１０がオペレーションを制御する場合、デバイス３００は従来のラップトップコンピュータとなる。ここでさらに記載するように、デバイス３００がＰＥ状態にある場合には、ＳＥプラットフォーム３２０のＡＮＤＲＯＩＤ（登録商標）オペレーティングシステムは稼働することができるが、ＳＥプラットフォーム３２０は、デバイス３００や周辺器等を制御しない。
【００３１】
このようなハイブリッド環境において、１つのデバイス内に、第１のシステム（ＰＥにおいて稼働する）と第２のシステム（ＳＥにおいて稼働する）の２つのコンピューティングシステムが不可欠である。これらのシステムは、状態（ＰＥ又はＳＥ）に応じて、各種ハードウェア、ソフトウェア、周辺器、内部コンポーネント等へのアクセスをシェアすることができる。各システムは独立して動作することができる。
【００３２】
実施例によれば、ユーザは、第１の環境での制御又は物理的な接続から、第２環境での制御又は物理的な接続へ、ハードウェアを切り替える１又は複数のハードウェア又はソフトウェアスイッチを介して、ＰＥ環境とＳＥ環境間を切り替えることができるようにしてもよい。切り替えられるハードウェアは、これに限られるものではないが、ディスプレイ、マイクロフォン、マウス、キーボード、タッチパッド、ストレージデバイス、及びＵＳＢデバイスを含むことにしてもよい。環境（例えば、ＳＥ）がハイブリッドデバイスの制御下にある場合、他の環境（例えば、ＰＥ）はスタンバイモードに置かれることにしもよい。このように、各環境は、他の環境の電力状態と独立して動作することができる。
【００３３】
追加的な実施例として、１又は複数のアプリケーションを開くこと、特定タイプのファイルにアクセスすること、デバイス（例えば、カメラ）の接続／切断のようなユーザクションに応答して、又は、低バッテリ状態のような１又は複数のデバイス状態に応じて、ＰＥ状態とＳＥ状態とを切り替えることにしてもよい。非限定的な実施例として、ハイブリッドデバイスは、ユーザが低電力環境において、特定のメディア（例えば、ムービーファイル）を実行できるように、ユーザが特定のメディアファイルを開くのに応答して、ＰＥ状態からＳＥ状態へ切り替えることにしてもよい。
【００３４】
ここで記載するような実施例の機能を実現するためのプログラム実行指令を好適に実行するように構成された１又は複数の情報処理デバイスで実行されてもよい。この点に関して、図１−３は、それらのデバイスやコンポーネントの非制限的な実施例を示している。タブレットコンピュータ、ラップトップコンピュータやスマートフォンのようなモバイル情報処理デバイスが例として具体的に挙げられているが、実施例は、適切な他のシステムはデバイスを用いて実行されてもよい。
【００３５】
一般的に、情報処理デバイスは、典型的には、ブートコード、オペレーティングシステム、アプリ-ション、不揮発性ストレージに格納されたデータを備えている。より複雑な例では、これらと、ソフトウェア又はハードウェアとソフトウェアのコンビネーションで構成できる他のデバイスコードエレメントをアップデートするための方法を提供することが必要である。スマートフォンやタブレットコンピュータのようなモバイルデバイスについては、デバイスコード・エレメンツは、一般的に、「ファームウェア」と呼ばれ、ファームウェアの交換や修正の動作は、「ファームウェア・アップデート」と呼ばれる。
【００３６】
ファームウェアのアップデートの処理は、必要かつ汎用のアクションである。なぜなら、デベロッパーは、マーケットにコンシュマーデバイスをリリースした後でも、絶えず、それらの改良、メンテナンス、修正を行っているからである。ファームウェアップデートの方法の例は、インターネットにアクセスして、ファームウェアパッケージを提供するサーバに直接接続するための、Ｗｉ−Ｆｉ又はデバイスのセルラーデータサービスを用いたＯＴＡ（over the air）である。この処理の間、サーバ、デバイス、又はその両方が、例えば、そのデバイスに存在するファームウェアのバージョンを特定するメタデータを交換することによって、ファームウェアパッケージのダウンロード及びその適用が適当であるかを判定してもよい。しかしながら、実施例に従って構成される、ハイブリッド情報処理デバイスの各オペレーティング環境は、ＯＴＡファームウェアップデートを構築するような方法において、直接、ユーザとイントラクトしなくてもよい。
【００３７】
ホストベースのアップデートツールは、別のファームウェアップデート方法を提供する。この方法において、ファームウェアップデートツールは、インターネット接続を介してアップデートサーバをポーリングするWINDOWS（登録商標）やMACINTOSH（登録商標）システムのようなＰＣホスト上で動作する。適切なアップデートが見つかった場合、ファームウェアップデートツールは、ＰＣホストにそれをダウンロードする。次に、モバイルデバイスをホストＰＣに接続し、ファームウェアップデートは、モバイルデバイスに自動的にプッシュされ、又は、ユーザのリクエストに応じてインストールされてもよい。この方法は、例えば、ＰＥ（ＷＩＮＤＯＷＳ）環境のコンポーネントのような実施例に従って構成されているハイブリッド情報処理デバイスを構成する、デバイスドライバやアプリケーションをアップデートするためのツールと統合されていなくてもよい。加えて、このような処理は、全体を結合するよりもむしろ独立したデバイスのような各オペレーティング環境毎にファームウェアップデートを管理することをユーザに要求するのがよい。実施例では、実施例に従って構成されるハイブリッド情報処理デバイスにおいて、ファームウェアをアップデートするための処理を提供する。実施例によれば、ファームウェアは、ＰＥと連帯して動作するハイブリッド情報処理デバイスのＳＥにアップデートされてもよい。
【００３８】
図４を参照して、実施例に従って構成されるファームウェアップデートの例を説明する。環境スイッチマネージャーは、現在のファームウェアバージョンをＳＥに問い合わせ、それを、ＰＥのファイル、メモリ、レジストリ、データベース構造、又はそれらの組み合わせに格納してもよい（４０１）。これには限られないが、例えば、ハイブリッド情報デバイスがＰＥからＳＥへ切り替えるとき、システムスタートアップのとき、スリープからレジュームしたとき、所定の時間間隔等で、ソフトウェアバージョンを何度でも要求してもよい。ファームウェアップデートツールは、例えば、自動的に又はユーザのリクエストに応じて、ＰＥ上で動作することにしてもよい（４０２）。ファームウェアップデートツールは、利用可能なソフトウェアップデートパッケージが適切かどうかを判定するために、それをローケートしてテストしてもよい（４０３）。適切なファームウェアップデートパッケージをＰＥにダウンロードし（４０４）、その後、インストーラプリケーションを起動してもよい（４０５）。インストーラプリケーションは、ファームウェアップデートツールとファームウェアイメージを準備する（stage）ために動作して、環境スイッチマネージャーにとって利用可能であることを示すフラグをセットして、続いて、エグジットしてもよい（４０６）。ＰＥからＳＥへの次の切り替えに応じて、環境スイッチマネージャーは前記フラグを見つけて、前もって準備されている（staged）ファームウェアップデートツールを開始する（４０７）。ファームウェアップデートツールは、ＰＥ（たとえば、ＷＩＮＤＯＷＳ（登録商標））上で動作し、ＳＥファームウェアをＳＥにアップデートするために動作するファームウェアップデートプロセスを構築するためのＰＥベースのインターフェイスを提供してもよい（４０８）。すなわち、ＳＥに好適な１又は複数のファームウェアアップデートパッケージを、ＰＥにダウンロードし、ＰＥ上でファームウェアアップデートツールを実行し、このファームウェアアップデートツールは、前記１又は複数のファームウェアアップデートパッケージをＳＥにインストール（アップデート）する。
【００３９】
実施例によれば、ファームウェアップデートツールは、WINDOWS環境（例えばＰＥ）内で自動的に又はリクエストに応じて可動できるTHINKVANTAGE（登録商標）System  Updater  (TVSU)  toolの形式としてもよい。他のファームウェアップデートツールとしては、これに限られないが、LANDESK（登録商標）やMICROSOFT  WINDOWS（登録商標）インストーラを使用してもよい。既存のテクノロジーに対して、ＴＶＳＵはアプリケーション、ファームウェア、ドライバ、それらの組み合わせを含む複数のデバイスコードエレメントをアップデートするために動作することができる。ＳＥのファームウェアップデートプロセスは、例えば、ファームウェアイメージをＳＥにインストールするために動作できる、ＧＯＯＧＬＥの「fastboot」アプリケーションのようなＳＥファームウェアップデートツールによって構築してもよい。
【００４０】
ハイブリッド情報処理デバイスは、ユーザに、シングルデバイスに２つの異なるシステムの機能を提供する。しかしながら、ハイブリッド情報処理デバイスを使用してアップデートするために複数の独立した機能を実行することはあまり効果的でない。したがって、ユーザがＳＥとＰＥのアップデートをインストールするためのシングルインターフェイスを持てるように、ＰＥインストーラの内部にＳＥファームウェアップデートをパッケージングしてもよい。加えて、ファームウェアップデートは、標準のインストーラ（例えば、WINDOWSインストーラ）を用いてパッケージされ、シングルツール（例えば、ＴＶＳＵ）を通じて配信されてもよい。アップデートは、シングルパッケージにおいて、環境スイッチマネージャーとＳＥファームウェア用にパッケージされてもよく、環境スイッチマネージャーとＳＥファームウェアはシングルアクションでインストールされてもよい。
【００４１】
ＰＥの局面では、ＳＥファームウェアップデート動作の中断を防止するように、実施の形態に従って管理されてもよい。例えば、実施例は、ファームウェアップデート動作の最中にＳＥ及び／又はＰＥのパワーオフやリスタートを防止するように構成されてもよい。これは、ＰＥはＳＥのｏｎ／ｏｆｆ状態を制御できるので必要である。ＰＥとＳＥのパワー状態は、完全に分離しない方がよい。例えば、パワー状態は、ＳＥがアップデートされている間、ＰＥがシャットダウンすることを防止するために、１又は複数の内部クロックで構成されてもよい。  実施例によれば、ＰＥに存在するＡＰＩ（例えば、WINDOWS  APIs)が、ＰＥがＳＥファームウェア動作の間にシャットダウンしないことを保証するために、使用されてもよい。非制限的な実施例では、バッテリライフが所定レベルよりも小さくなった場合にはアップデートを開始しないように、ＳＥアップデートプロセス前には、デバイスのバッテリレベルを条件としてもよい。  他の非制限的な実施例において、ＳＥアップデートは、パワーアダプター（例えば、ＡＣパワーアダプター）がシステムに接続されている場合にだけ行われることにしてもよい。さらに、ＳＥファームウェアップデートツールは、ＳＥファームウェアップデートの進捗を報告するように構成された進捗レポーティング機能を有することにしてもよい。進捗は、ＰＥからＳＥ、ＳＥ上のファームウェアップデートのインストレーション進捗、又は、それらの組み合わせに、ファームウェアイメージを転送することによって提供されてもよい。
【００４２】
当業者が理解するように、各種態様は、システム、方法、コンピュータプログラム（プロダクト）として実装してもよい。従って、ここでは全てを一般的に「回路」、「モジュール」、「システム」として説明したように、ある局面では、全体としてハードウェアの形態、ソフトウェア及び／又はハードウェアを含む形態を取ることができる。さらに、ある局面では、ここで具体化されたコンピュータ読み取り可能なプログラムコードを格納した１つ以上のコンピュータ読み取り可能な記録媒体を実装したコンピュータプログラムプロダクトの形態を取ることができる。
【００４３】
１又は複数の非信号コンピュータ読み取り可能な記録媒体（non-signal  computer  readable  medium(s)）の組み合わせを利用してもよい。非信号コンピュータ読み取り可能な記録媒体は、例えば、電気・磁気・光学・電磁気・赤外線・半導体のシステム、デバイス、デバイス、又はこれらの好適な組み合わせとしてもよい。コンピュータ読み取り可能な記録媒体の特定の例としては、ポータブルコンピューターディスケット（portable  computer  diskette）、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、Ｆｌａｓｈメモリ、光ファイバー、磁気ストレージデバイス、又はこれらの好適な組み合わせである。  
【００４４】
記録媒体に格納されるプログラムコードは、これらには限定されないが、無線、有線、光ファイバーケーブル、ＲＦ、又はこれらの好適な組み合わせを含む好適な媒体を用いて転送することができる。
【００４５】
オペレーションを実行するためのコンピュータプログラムコードは、１つ以上のプログラミング言語の組み合わせで記述してもよい。コンピュータプログラムコードは、スタンドアロンソフトウェアパッケージとして単一のデバイスで全体又は一部を、単一のデバイスで一部を及び他のデバイスで一部を、又は、他のデバイスで全体を実行することにしてもよい。ある場合は、デバイスは、ＬＡＮやＷＡＮを含む各種ネットワークを介して接続されてもよく、この接続は他のデバイスを介して（例えば、インターネットサービスプロバイダを用いたインターネットを介して）、又は、ＵＳＢ接続のようなハードワイヤー接続を介してなされてもよい。
【００４６】
各種の態様を、各種実施例にしたがって、「方法」、「デバイス」、「プログラムプロダクト」を例示して、図面を参照して説明した。説明した動作及び機能は、少なくとも一部をプログラム指令によって実現することができる。プログラム指令は、汎用目的のコンピュータ、特定目的のコンピュータ、他のプログラマブルデータ処理デバイス、又は情報処理デバイスに、そのプロセッサが特定の機能や作用を実行するマシンを生成するように提供されてもよい。  
【００４７】
プログラム指令は、汎用目的のコンピュータ、特定目的のコンピュータコンピュータ、他のプログラマブル処理デバイス、又は他のデバイス上で実行され、特定の機能や作用を実現する方法を提供するように、コンピュータ、他のプログラマブルデータ処理デバイス、又は他のデバイスにロードされて、一連の動作ステップが実行されてコンピュータ実施方法を提供することにしてもよい。  
【００４８】
コンピュータプログラム指令は、また、特定の機能や作用を実現する指令を含む製造物（article  of  manufacture）を生成するように、コンピュータ、他のプログラマブルデータ処理デバイス、又は他のデバイスに特定の方法で機能を指示できるコンピュータ読み取り可能な媒体に格納されてもよい。  
【００４９】
コンピュータプログラム指令は、コンピュータ、他のプログラマブル処理デバイス、又は他のデバイス上で実行され、特定の機能や作用を実現する方法を提供するように、コンピュータ、他のプログラマブルデータ処理デバイス、又は他のデバイスにロードされて、一連の動作ステップが実行されてコンピュータ実施方法を提供することにしてもよい。  
【００５０】
この開示は、説明や記述を目的として提供されており、消尽や制限を意図していない。多くの変更や変形が可能であることは当業者にとって明らかである。ここでの実施例は原理や実用的な用途を説明するために選択して記述したものであって、さまざまな実施のため、考えられる特定の使用に適するようにこの開示に各種の変更を加えることが可能であることを当業者は理解できる。  
【００５１】
従って、本実施の形態を、図面を参照して説明してきたが、ここでの記載は制限的なものではなく、この開示の範囲及び精神を逸脱することなく、当業者によって各種の変形や変更が可能であることが理解されるべきである。  
【符号の説明】
【００５２】
１１０  チップセット
１２０  コア・メモリコントロールグループ
１２２  プロセッサ
１２４  ＦＳＢ
１２６  メモリコントローラハブ
１４２  ＤＭＩ
１４４  リンクコントローラ
１５０  Ｉ／Ｏコントローラハブ
１６６  ＳＰＩ  Ｆｌａｓｈ
１６８  ＢＩＯＳ
１９０  ブートコード  
３００  デバイス
３１０  ＰＥプラットフォーム
３２０  ＳＥプラットフォーム
【図１】
0005576949.tif 000002
【図２】
0005576949.tif 000003
【図３】
0005576949.tif 000004
【図４】
0005576949.tif 000005