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

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

▶ インテル・コーポレーションの特許一覧

<>
  • 特許6396502-ファームウェアセンサレイヤ 図000002
  • 特許6396502-ファームウェアセンサレイヤ 図000003
  • 特許6396502-ファームウェアセンサレイヤ 図000004
  • 特許6396502-ファームウェアセンサレイヤ 図000005
  • 特許6396502-ファームウェアセンサレイヤ 図000006
  • 特許6396502-ファームウェアセンサレイヤ 図000007
  • 特許6396502-ファームウェアセンサレイヤ 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6396502
(24)【登録日】2018年9月7日
(45)【発行日】2018年9月26日
(54)【発明の名称】ファームウェアセンサレイヤ
(51)【国際特許分類】
   G06F 9/4401 20180101AFI20180913BHJP
   G06F 11/30 20060101ALI20180913BHJP
   G06F 21/57 20130101ALI20180913BHJP
【FI】
   G06F9/4401
   G06F11/30 158
   G06F11/30 189
   G06F21/57 350
【請求項の数】26
【全頁数】27
(21)【出願番号】特願2016-567585(P2016-567585)
(86)(22)【出願日】2014年6月24日
(65)【公表番号】特表2017-519284(P2017-519284A)
(43)【公表日】2017年7月13日
(86)【国際出願番号】CN2014080587
(87)【国際公開番号】WO2015196347
(87)【国際公開日】20151230
【審査請求日】2016年12月27日
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ハーネビュート、ウルフ アール.
(72)【発明者】
【氏名】ヤオ、ジーウェン
(72)【発明者】
【氏名】ジンマー、ヴィンセント ジェイ.
【審査官】 多賀 実
(56)【参考文献】
【文献】 特表2014−509765(JP,A)
【文献】 国際公開第2014/043056(WO,A1)
【文献】 国際公開第2014/063330(WO,A1)
【文献】 国際公開第2013/126411(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/24
G06F 9/4401
G06F 9/445
G06F 11/30−11/34
G06F 21/57
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
演算するためのコンピューティングデバイスであって、
プロセッサと、
1又は複数のモジュール、及び、センサレイヤを含む、前記プロセッサにより動作させられるファームウェアと、
を備え、
前記ファームウェアは、
オペレーティングシステム不在のファームウェア環境(OS不在のファームウェア環境)において、複数のセンサにより生成されるセンサデータを受信し、
前記複数のセンサを抽象化する前記センサレイヤのインタフェースを介して前記1又は複数のモジュールに前記センサデータを選択的に提供し、
前記複数のセンサは、前記コンピューティングデバイスにあるか、又は、前記コンピューティングデバイスに動作可能に結合される、コンピューティングデバイス。
【請求項2】
前記コンピューティングデバイス上でインスタンス化されるオペレーティングシステムをさらに備え、
前記ファームウェアは、前記オペレーティングシステムから独立している、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記1又は複数のモジュールは、環境因子ブートモジュールを含み、
前記環境因子ブートモジュールは、
前記センサレイヤの前記インタフェースを通じて前記センサレイヤからセンサデータの一部を受信し、
前記センサデータの一部に少なくとも部分的に基づいて、1又は複数のポリシーを適用し、
前記センサデータの一部は、前記1又は複数のポリシーにより規定される1又は複数の環境因子に関連付けられる、請求項1又は2に記載のコンピューティングデバイス。
【請求項4】
前記1又は複数のポリシーを適用することは、前記1又は複数の環境因子に関連付けられる前記センサデータの一部に少なくとも部分的に基づいて、前記1又は複数のポリシーに違反するとの決定が行われるときに、前記コンピューティングデバイスのブート処理を終了することである、請求項3に記載のコンピューティングデバイス。
【請求項5】
前記1又は複数のポリシーを適用することは、前記1又は複数の環境因子に関連付けられる前記センサデータの一部に少なくとも部分的に基づいて1又は複数のドライバを選択的にインスタンス化することである、請求項3又は4に記載のコンピューティングデバイス。
【請求項6】
前記1又は複数の環境因子は、温度、水分、湿度、高度、音圧レベル、可聴周波数、振動、速度、加速度又は照明のうちの1又は複数を含む、請求項3から5のいずれか一項に記載のコンピューティングデバイス。
【請求項7】
前記コンピューティングデバイスは、オペレーティングシステムから独立しており、前記OS不在のファームウェア環境は、前記コンピューティングデバイスにOS不在の動作状態を実現することを結果的にもたらすブート処理の一部である、請求項1から6のいずれか一項に記載のコンピューティングデバイス。
【請求項8】
前記複数のセンサのうちの1又は複数のセンサは、前記コンピューティングデバイスに配置され、バスインタフェースを介して前記プロセッサと動作可能に結合される、請求項1から7のいずれか一項に記載のコンピューティングデバイス。
【請求項9】
前記複数のセンサのうちの1又は複数のセンサは、ヒューマンインタフェースデバイス(HD)ドライバを介して前記コンピューティングデバイスと通信可能に結合される、請求項1から8のいずれか一項に記載のコンピューティングデバイス。
【請求項10】
前記コンピューティングデバイスは、前記複数のセンサを有するモノのインターネットエッジデバイスである、請求項1、3から9のいずれか一項に記載のコンピューティングデバイス。
【請求項11】
前記コンピューティングデバイスは、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、タブレット、パーソナルデジタルアシスタント、ウルトラモバイルパーソナルコンピュータ、携帯電話、デスクトップコンピュータ、サーバ、又は、セットトップボックスからなるグループから選択される、請求項1〜9のいずれか一項に記載のコンピューティングデバイス。
【請求項12】
演算するための方法であって、
コンピューティングデバイスのオペレーティングシステム不在のファームウェア環境(OS不在のファームウェア環境)が、複数のセンサの抽象概念を提供するインタフェースを有するセンサレイヤをインスタンス化する段階と、
前記OS不在のファームウェア環境内の前記センサレイヤが、複数のセンサにより生成されるセンサデータを受信する段階と、
前記センサレイヤが、前記センサレイヤの前記インタフェースを介して1又は複数のファームウェアモジュールに前記センサデータを選択的に提供する段階と
を備える方法。
【請求項13】
前記1又は複数のファームウェアモジュールは、環境因子ブートモジュールを含み、
前記方法は、
前記環境因子ブートモジュールが、前記センサレイヤの前記インタフェースを通じて前記センサレイヤからセンサデータの一部を受信する段階と、
前記環境因子ブートモジュールが、前記センサデータの一部に少なくとも部分的に基づいて1又は複数のポリシーを適用する段階と
をさらに備え、
前記センサデータの一部は、前記1又は複数のポリシーにより規定される1又は複数の環境因子に関連付けられる、請求項12に記載の方法。
【請求項14】
前記1又は複数のファームウェアモジュールは、センサキャリブレーションモジュールを含み、
前記方法は、
前記センサキャリブレーションモジュールが、前記複数のセンサのうちの1つのセンサにより生成される前記センサデータに少なくとも部分的に基づいて前記1つのセンサの妥当性を確認する段階、又は、
前記センサキャリブレーションモジュールが、前記複数のセンサのうちの1つのセンサにより生成される前記センサデータに少なくとも部分的に基づいて前記1つのセンサをキャリブレートする段階
をさらに備える、請求項12又は13に記載の方法。
【請求項15】
前記複数のセンサのうちの前記1つのセンサの妥当性を確認する段階は、さらに、前記1つのセンサにより生成される前記センサデータの妥当性を前記コンピューティングデバイスのオペレーティングシステムに検証させる段階を含む、請求項14に記載の方法。
【請求項16】
前記複数のセンサのうちの前記1つのセンサをキャリブレートする段階は、さらに、
前記1つのセンサにより生成される前記センサデータを基準値と一致させるべく、前記センサレイヤとインタラクトする段階、又は、
前記センサデータを前記基準値と一致させるべく、前記センサデータを操作する段階
をさらに含む、請求項14に記載の方法。
【請求項17】
前記OS不在のファームウェア環境は、ブート処理についてのユニファイドエクステンシブルファームウェアインタフェース環境(UEFI環境)である、請求項12から16のいずれか一項に記載の方法。
【請求項18】
前記OS不在のファームウェア環境は、前記UEFI環境のドライバ実行環境(DXE)である、請求項17に記載の方法。
【請求項19】
コンピューティングデバイスのプロセッサに、
1又は複数のモジュール、及び、センサレイヤを含むファームウェア環境を前記コンピューティングデバイスに提供する手順と、
前記センサレイヤが、複数のセンサにより生成されるセンサデータをオペレーティングシステム不在のファームウェア環境(OS不在のファームウェア環境)において受信する手順と、
前記センサレイヤが、前記複数のセンサを抽象化する前記センサレイヤのインタフェースを介して前記1又は複数のモジュールに前記センサデータを選択的に提供する手順と
を実行させるためのプログラムであって、
前記複数のセンサは、前記コンピューティングデバイスにあるか、又は、前記コンピューティングデバイスと動作可能に結合される、プログラム。
【請求項20】
前記1又は複数のモジュールは、データセキュリティモジュールを含み、
前記プロセッサに、
前記データセキュリティモジュールが、暗号化されるデータを受信する手順と、
前記データセキュリティモジュールが、前記センサレイヤから受信されるセンサローカル情報に少なくとも部分的に基づいて暗号鍵を生成する手順と、
前記データセキュリティモジュールが、前記暗号鍵を利用して前記データを暗号化する手順と、
前記データセキュリティモジュールが、暗号情報として前記センサローカル情報を前記コンピューティングデバイスのメモリ内に存続させる手順と、
を実行させるための、請求項19に記載のプログラム。
【請求項21】
前記プロセッサに、
前記データセキュリティモジュールが、前記データを復号化するための要求を受信する手順と、
前記データセキュリティモジュールが、前記センサレイヤから追加のセンサローカル情報を受信する手順と、
前記データセキュリティモジュールが、前記暗号情報を取得する手順と、
前記データセキュリティモジュールが、前記追加のセンサローカル情報が前記暗号情報と一致するときに、前記追加のセンサローカル情報に少なくとも部分的に基づいて復号鍵を生成する手順と、
前記データセキュリティモジュールが、前記復号鍵を利用して前記データを復号化する手順と
を実行させるための、請求項20に記載のプログラム。
【請求項22】
前記センサローカル情報は、複数のセンサ読出し、センサ状態又はセンサキャリブレーションのうちの1又は複数を含む、請求項20又は21に記載のプログラム。
【請求項23】
請求項19から22のいずれか一項に記載のプログラムを格納するコンピュータ可読記憶媒体。
【請求項24】
演算するためのコンピューティングデバイスであって、
前記コンピューティングデバイスのオペレーティングシステム不在のファームウェア環境(OS不在のファームウェア環境)において、複数のセンサの抽象概念を提供するインタフェースを有するセンサレイヤをインスタンス化する手段
を備え、
前記センサレイヤは、
複数のセンサにより生成されるデータを受信する手段と、
前記センサレイヤの前記インタフェースを介して1又は複数のファームウェアモジュールにセンサデータを選択的に提供する手段と
を含み、
前記複数のセンサは、前記コンピューティングデバイスにあるか、又は、前記コンピューティングデバイスと動作可能に結合される、コンピューティングデバイス。
【請求項25】
前記1又は複数のファームウェアモジュールは、環境因子ブートモジュールを含み、
前記環境因子ブートモジュールは、
前記センサレイヤの前記インタフェースを通じて前記センサレイヤからセンサデータの一部を受信する手段と、
前記センサデータの一部に少なくとも部分的に基づいて1又は複数のポリシーを適用する手段と
を有し、
前記センサデータの一部は、前記1又は複数のポリシーにより規定される1又は複数の環境因子と関連付けられる、請求項24に記載のコンピューティングデバイス。
【請求項26】
前記1又は複数のポリシーを適用する手段は、さらに、
前記1又は複数の環境因子と関連付けられる前記センサデータの一部に少なくとも部分的に基づいて前記1又は複数のポリシーに違反するか否かを決定する手段と、
前記決定の結果に少なくとも部分的に基づいて前記コンピューティングデバイスのブート処理を終了する手段と
を有する、請求項25に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の複数の実施形態は、コンピューティングデバイスの分野に関し、特に、コンピューティングデバイスのオペレーティングシステム不在の動作に対するファームウェアセンササポートを提供することに関する。
【背景技術】
【0002】
本明細書で提供される背景技術の説明は、本開示の文脈を一般に示すことを目的としている。本明細書において別途示されない限り、この節で説明される内容は、本願の特許請求の範囲に対する従来技術ではなく、この節に含まれることをもって従来技術であるとは認められない。
【0003】
実質的に全てのコンピューティングデバイスは、パワーオン又はリセットの間にブート(初期化)処理を経る。通常、ブート(初期化)処理の間に、パワーオンセルフテストが実行され、その後、周辺機器デバイスが位置付けられ、初期化されて、ロードを終了し、オペレーティングシステムを開始する。現代のコンピューティングプラットフォームは、センサ情報を継続的に収集し得る多数のセンサを含む。しかしながら、当該技術分野における現在の状態の下において、センサ情報は、コンピューティングデバイスのオペレーティングシステムのセンサレイヤのみを通じてアクセス可能である。このように、コンピューティングデバイスのブート処理の間のセンサデータの利用、又は、オペレーティングシステムのないコンピューティングデバイスの利用ができない。
【図面の簡単な説明】
【0004】
図1】本開示の様々な実施形態に係る、ファームウェアセンサレイヤを有するコンピューティング環境の概略図を示す。
図2】本開示の様々な実施形態に係る、コンピューティングデバイスの例示的なブートフローを示す。
図3】本開示の様々な実施形態に係る、図2のブートフローの代替図を示す。
図4】本開示の様々な実施形態に係る、データセキュリティモジュールにより、ブート処理の間、データを保護するための例示的な利用処理フローを示す。
図5】本開示の様々な実施形態に係る、ブート処理の間、データの保護を解除するための例示的な利用処理フローを示す。
図6】本開示の様々な実施形態に係る、ファームウェアセンサレイヤ又は複数のセンサ利用モジュールのうちのいずれかを実装するのに適した例示的なコンピューティングデバイスを示す。
図7】様々な実施形態に係る、コンピューティングデバイスが本開示を実行できるように構成される複数の命令を有する例示的な記憶媒体を示す。
【発明を実施するための形態】
【0005】
オペレーティングシステム(OS)不在の環境におけるセンサレイヤ及びセンサ利用のためのコンピューティングデバイス、方法及び記憶媒体が本明細書に開示される。複数の実施形態において、コンピューティングデバイスは、様々なセンサにより生成されるセンサデータを受信するように構成されるファームウェアセンサレイヤを有してよく、コンピューティングデバイスのブート処理、又は、OS不在の動作モードにおけるブート処理のようなOS不在の動作の間を含む。ファームウェアセンサレイヤは、様々なセンサを抽象化するファームウェアセンサレイヤのインタフェースを介して1又は複数のファームウェア利用モジュールにセンサデータを選択的に提供してよい。複数の実施形態において、1又は複数の利用モジュールは、例えば、ブート処理を終了するか否かを決定するときに複数の環境因子に関するセンサデータを利用すること、コンピューティングデバイスに対してデータを保護すべくセンサデータを利用すること、ブート処理の間にセンサを検証するか、又は、センサをキャリブレートすべくセンサデータを利用することを含むが、これらに限定されない、様々な方法でセンサデータに作用するように構成され得る。
【0006】
以下の詳細な説明において、参照は、同様の参照番号が全体を通じて同様の部分を示す本明細書の一部を形成する添付の図面に対して行われ、添付の図面には、実例として行われ得る実施形態が示される。本開示の範囲から逸脱することなく、他の実施形態が利用されてよく、かつ、構造的又は論理的な変更が行われてよいことが理解されるべきである。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきでなく、複数の実施形態の範囲は、添付の特許請求の範囲及びそれらの等価物によって定義される。
【0007】
様々な動作は、特許請求の範囲の主題の理解に最も有用な態様で、複数の別個のアクション又は動作として順番に説明されてよい。しかしながら、説明の順序は、これらの動作が必ず順序に依存すること示唆するものと解釈されるべきではない。特に、これらの動作は、提示される順序で実行されなくてよい。説明される複数の動作は、説明された実施形態とは異なる順序で実行されてよい。複数の追加の実施形態において、様々な追加の動作が実行されてよく、及び/又は、説明される複数の動作が、省略されてよい。
【0008】
本開示の目的のために、「A及び/又はB」という表現は、(A)、(B)、又は(A及びB)を意味する。本開示の目的のために、「A、B、及び/又はC」という表現は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B、及びC)を意味する。説明では、「実施形態において」又は「複数の実施形態において」という表現を用いることがあり、これらはそれぞれ、同じ又は異なる複数の実施形態のうちの1つ又は複数を指してよい。さらに、「備える」、「含む」、「有する」等の用語は、本開示の複数の実施形態に対して用いられる際、同義語である。
【0009】
図1は、本開示の様々な実施形態に係る、ファームウェアセンサレイヤ118を有するコンピューティング環境の概略図を示す。複数の実施形態において、コンピューティング環境は、ハードウェア100及びオペレーティングシステム不在の(OS不在の)ファームウェア環境102を含んでよい。OS不在のファームウェア環境102は、一部の実施形態において、ドライバスタック104と、センサレイヤ及び利用106との2つのセクションに分けられてよい。ドライバスタック104は、一部の実施形態において、ファームウェアセンサレイヤ(以下、単にセンサレイヤ)118とハードウェア100との間の通信を提供するように構成されてよい。
【0010】
ハードウェア100は、ホストコントローラ110と結合される1又は複数のセンサ108を含んでよい。センサ108は、画像センサ、オーディオセンサ、タッチセンサ、全地球測位システム(GPS)、加速度計、ジャイロスコープ、高度計、モイスチャーセンサ、湿度センサ、光センサ、圧力センサ、赤外線、ブルートゥース(登録商標)又はWi−Fi(登録商標)のような複数の信号関連センサ、若しくは、それらの任意の組み合わせを含むが、これらに限定されない、任意の数又は任意のタイプのセンサを含んでよい。ホストコントローラ110は、例えば、センサ108とやりとりする複数のデータパケットの送信を含む、様々な低レベルデータ送信を制御するように構成されてよい。
【0011】
複数の実施形態において、ドライバスタック104は、1又は複数のホストコントローラドライバ112、1又は複数のバスドライバ114、及び、1又は複数のクラスドライバ116を含んでよく、それらの全ては、以下で単独で参照される。ホストコントローラドライバ112は、一部の実施形態において、ホストコントローラ110及びバスドライバ114と通信可能に結合されてよい。ホストコントローラドライバ112は、バスドライバ114とホストコントローラ110との間の包括的なインタフェースを提供するように構成されてよい。ホストコントローラドライバ112は、以下に限定されるものではないが、エンハンスド・ホストコントローラインタフェース(EHCI)ドライバ、オープンホストコントローラインタフェース(OHCI)ドライバ、ユニバーサル・ホストコントローラインタフェース(UHCI)ドライバ又はそれらの任意の組み合わせのような、任意のタイプの従来のホストコントローラドライバを含んでよい。
【0012】
バスドライバ114は、ホストコントローラドライバ112及びクラスドライバ116と通信可能に結合されてよく、クラスドライバ116とホストコントローラドライバ112との間をインタフェースで接続するように構成されてよい。バスドライバ114は、例えば、コンピューティングデバイスに対するハードウェア(例えば、(複数の)センサ108)の1又は複数の部品の接続を処理すること、及び、そこから切断することのような、数々のサービスを提供するように構成されてよい。バスドライバ114は、ハードウェアの1又は複数の部品の基本的な初期化、ハードウェアの1又は複数の部品に対するドライバの選択、及び/又は、ハードウェアの1又は複数の部品を有する複数の通信チャネルの高いレベルの管理も提供してよい。通信バスドライバ114は、例えば、ユニバーサルシリアルバス(USB)ドライバ、ブルートゥース(登録商標)ドライバ、若しくは、任意の他の適切なバス又は通信ドライバであってよい。
【0013】
クラスドライバ116は、バスドライバ114及びセンサレイヤ118と通信可能に結合されてよく、センサレイヤ118と通信バスドライバ114との間をインタフェースで接続するように構成されてよい。クラスドライバ116は、ハードウェアデバイスのクラスに共通する複数の標準化プロトコルのセットを利用して、数々の機能を実装するように構成されてよい。クラスドライバ116は、一部の実施形態において、クラスの範囲内にある複数のハードウェアデバイスの動作について十分な機能を提供し得る。他の実施形態において、所与のハードウェアデバイスと対応する別個のドライバはクラスドライバ116の代わりに利用され得るか、又は、クラスドライバ116に追加して利用され得る。クラスドライバ116は、例えば、ヒューマンインタフェースデバイス(HID)クラスドライバ、物理インタフェースデバイス(PID)クラスドライバ、コンテンツセキュリティクラスドライバ、パーソナルヘルスケアクラスドライバ、診断デバイスクラスドライバ、無線コントローラクラスドライバ等を含むが、これらに限定されない、複数のUSBクラスドライバのいずれかのような任意のタイプの従来のクラスドライバであってよい。
【0014】
センサレイヤ118は、クラスドライバ116、及び、1又は複数のファームウェア利用モジュール(例えば、利用モジュール120−126)と通信可能に結合されてよく、クラスドライバ116と1又は複数のファームウェア利用モジュールとの間をインタフェースで接続するように構成されてよい。複数の実施形態において、センサレイヤ118は、コンピューティングデバイスと結合される任意の数のセンサ(例えば、(複数の)センサ108)により生成されるセンサデータを受信して集約するように構成されてよく、センサを1又は複数のファームウェア利用モジュールに抽象化するインタフェースを介して複数のファームウェア利用モジュールにデータを提供するように構成されてよい。この抽象概念は、センサ固有の情報を難読化する可能性があるが、センサハードウェアの複数の特性を認識させる必要なく、複数のファームウェア利用モジュールが、個々のセンサにより生成されるデータにアクセスすることを可能にする。一部の実施形態において、センサ固有の情報を難読化する一方、センサレイヤ118は、図4及び図5の例示的な処理フローを参照して述べられるような要求の際にセンサ固有の情報を提供するよう構成されてもよい。図示されるように、センサレイヤ118は、例えば、コンピューティングデバイスのブート処理の間、コンピューティングデバイスのリカバリの間、又は、OS不在の動作モード中(例えば、以下で述べられ、図2又は図3に示されるような、ユニファイドエクステンシブルファームウェアインタフェース(UEFI)シェルのランタイムの間)、OS不在のファームウェア環境で動作するように構成されてよい。結果として、センサレイヤ118は、コンピューティングデバイス上のOSから独立して動作してよく、コンピューティングデバイスのブート処理の間、若しくは、コンピューティングデバイスが低電力状態にあるとき(例えば、コンピューティングデバイスがスリープモードにあるとき)、又は、コンピューティングデバイスがOS不在の動作モードで動作しているときのような、他のOS不在のコンテキストにおいて、センササポートをコンピューティングデバイスに提供してよい。一部の実施形態において、センサレイヤ118は、複数のセンササブレイヤから構成されてよく、各センササブレイヤは、異なるクラスドライバ、バスドライバ等と通信してよい。例えば、一方のセンササブレイヤが、USBを介して1つのセンサと通信してよく、一方、他方のセンササブレイヤは、ブルートゥース(登録商標)を介して複数のセンサと通信してよい。
【0015】
上述したように、センサレイヤ118は、プロビジョニングモジュール120、環境因子ブートモジュール122、センサキャリブレーションモジュール124及びデータセキュリティモジュール126のような1又は複数のファームウェア利用モジュールにセンサデータを提供するように構成されてよい。利用モジュール120−126は、単に例示的なものを意図しているに過ぎず、この開示に限定するものと見なされるべきでない。複数の実施形態において、利用モジュール120−126は、コンピューティングデバイスのブート処理の間、又は、OS不在の動作モード中(例えば、本明細書の他の箇所で述べられるUEFIシェルのランタイム)のような、OS不在のコンテキストにおいて実行されるべく、ファームウェアとして実装されてよく、センサレイヤ118により収集されて個々の利用モジュールに提供されるセンサデータに作用するように構成されてよい。
【0016】
プロビジョニングモジュール120は、一部の実施形態において、センサレイヤ118への直接アクセスを有し得ない1又は複数の要求元からセンサデータに対する複数の要求を受信するように構成されてよく、プロビジョニングモジュール120は、センサレイヤ118からのデータをこれらの要求元に提供するように構成されてよい。一部の実施形態において、1又は複数の予め定められた条件が要求元及び/又はセンサデータによって満たされる場合、プロビジョニングモジュール120は、要求されたデータを提供するだけでよい。他の実施形態において、1又は複数の予め定められた条件が満たされる場合、プロビジョニングモジュール120は、コンピューティングデバイスの1又は複数の機能をイネーブル又はディセーブルにするように構成されてよい。これらの条件は、プロビジョニングモジュール120内で規定されてよく、又は、プロビジョニングモジュール120にアクセス可能となり得る別のファームウェアモジュールにより規定されてよい。当該条件は、センサレイヤ118によりプロビジョニングモジュール120に提供されるセンサデータに基づく任意の条件を含んでよい。例として、コンピューティングデバイスが低照明環境においてブートしていることを、プロビジョニングモジュール120がセンサデータから検出した場合、その後、プロビジョニングモジュール120は、コンピューティングデバイスに取り付けられるキーボードに対するバックライトを提供してよい。
【0017】
環境因子ブートモジュール122は、一部の実施形態において、センサレイヤ118からセンサデータを受信し、センサデータに少なくとも部分的に基づいて1又は複数のポリシーを適用するように構成されてよい。これらのポリシーは、環境因子ブートモジュール122内で規定されてよく、又は、環境因子ブートモジュール122にアクセス可能となり得る別のファームウェアモジュールにより規定されてよい。複数の実施形態において、センサデータは、1又は複数のポリシーにより規定される複数の環境因子に関連付けられてよい。これらの環境因子は、温度、水分、湿度、高度、音圧レベル、可聴周波数、振動、速度、加速度、及び/又は、照明に関するデータを含んでよいが、これらに限定されない。
【0018】
一部の実施形態において、1又は複数のポリシーは、1又は複数の環境因子に基づいてブート処理を終了することを含んでよい。実例として、コンピューティングデバイスがコンピューティングデバイスにとって過酷な環境においてブートしていることをセンサ108のうちの1又は複数が示す場合、環境因子ブートモジュール122は、ブート処理を終了する、又は、ブート処理を終了させるように構成されてよい。例として、適切に機能するにはコンピューティングデバイスにとってあまりにも高温な環境において、コンピューティングデバイスがブートしている場合、環境因子ブートモジュール122は、ブート処理を終了し、又は、ブート処理を終了させるように構成されてよい。
【0019】
他の実施形態において、環境因子ブートモジュール122は、センサデータに関連付けられる1又は複数の環境因子に少なくとも部分的に基づいて、1又は複数のドライバを選択的にインスタンス化する、又は、これらをインスタンス化させるように構成されてよい。実例として、及び、単に例として、1つのドライバ又は複数のドライバのセットは、複数の低照明条件におけるインスタンス化のために選択されてよく、一方、別のドライバ又は複数のドライバのセットは、他の高照明条件におけるインスタンス化のために選択されてよい。そのような照明条件は、コンピューティングデバイスが動作される環境内の光センサからのセンサデータを利用して決定されてよい。
【0020】
センサキャリブレーションモジュール124は、センサレイヤ118からセンサデータを受信し、少なくともセンサデータの一部の妥当性を確認又はキャリブレートするように構成されてよい。センサデータの一部の妥当性を確認すべく、センサキャリブレーションモジュール124は、既知の基準データを利用してセンサレイヤ118から受信されるセンサデータと比較してよく、基準値に対する受信されるセンサデータの妥当性を確認してよい。一部の実施形態において、基準値は、予め格納されたセンサデータであってよい。他の実施形態において、基準値は、基準センサにより提供されるセンサデータであってよい。さらなる他の実施形態において、基準値は、センサレイヤ118を通じてセンサにより提供される基準値であってよい。一部の実施形態において、センサキャリブレーションモジュール124は、その後、妥当性が確認されたセンサデータの精度が正しいことを証明すべく、オペレーティングシステムの開始の際に、妥当性の確認をオペレーティングシステムに検証させてよい。
【0021】
センサデータの一部をキャリブレートすべく、センサキャリブレーションモジュール124は、基準値に対する受信したセンサデータの妥当性を確認することを求めてよく、上述したように、妥当性の確認が失敗したイベントにおいてセンサデータをキャリブレートすることを求めてよい。一部の実施形態において、センサキャリブレーションモジュール124は、センサレイヤ118とインタラクトして、センサにより生成されるデータを基準値と一致させるべく、受信したセンサデータを生成したセンサを調節する。他の実施形態において、センサキャリブレーションモジュール124は、受信したデータを直接操作してデータを基準値と一致させてよい。そのような実施形態において、操作されたデータは、その後、要求元に提供されてよく、又は、操作の基準が要求元に報告されてよい。実例として、センサキャリブレーションモジュール124は、操作の基準を利用して、センサレイヤ118により又は各センサから直接的にアプリケーションに提供されるデータをキャリブレートし得るアプリケーションに操作の基準を提供してよい。
【0022】
データセキュリティモジュール126は、コンピューティングデバイスに対して、データを確保又は保護するように構成されてよい。複数の実施形態において、データセキュリティモジュール126は、ローカルセンサ情報を利用してデータを暗号化することにより、コンピューティングデバイスに対して、データを保護するように構成されてよく、これにより、その後、データがローカルセンサ情報なしで復号化されるのを防止し得る。これに対する処理が以下の図5及び図6を参照してより詳細に説明される。
【0023】
図2は、本開示の様々な実施形態に係る、コンピューティングデバイスの例示的なブートフロー200を示す。ブートフローの複数のステージは、図2の右側に沿って示される。ブートフローのSEC及びPEIステージは、ブートフローのセキュリティフェーズ及び事前拡張可能なファームウェア環境(PEI)フェーズにそれぞれ対応する。DXEフェーズは、ブートフローのドライバ実行環境フェーズに対応する。BDSフェーズは、ブートフローのブートデバイスセレクタフェーズに対応する。最後に、TSLフェーズ及びRTフェーズは、一時的なシステムロードフェーズ及びランタイムフェーズにそれぞれ対応する。これらのフェーズのそれぞれは、以下で図3を参照してさらに詳細に述べられる。ブートフロー200は、例示的なブートフロー内で発生し得る選択された複数の処理のグループを表し、当該技術分野において容易に理解されるので、本開示に適用可能でない追加の処理は、提示されず、又は、述べられないことが理解される。さらに、ブートフローの異なる処理は、ブートフローの特定のフェーズ内で生じるように描かれているが、必要に応じて隣接するブートフローフェーズに実際に及んでよいことが理解される。ブートフロー200は、コンピューティングデバイスがパワーオンされ得るか、又は、リセットされ得るブロック202で開始してよい。コンピューティングデバイスがパワーオンされたか、又は、リセットされた後に、処理は、SEC及びPEIフェーズに入り、基本ファームウェアが初期化され得るブロック204に進んでよい。この基本ファームウェアは、マザーボード、チップセット、中央処理装置(CPU)、システムメモリ等を初期化するように構成されるファームウェアを含んでよい。
【0024】
基本ファームウェアの初期化の後に、処理は、UEFIフェーズが開始され得るブロック206に進んでよい。ブロック208において、UEFIフェーズは、様々な処理が実行されるドライバ実行環境(DXE)を開始してよく、複数のセンサを発見することを含む。複数のセンサは、例えば、本明細書で述べられた任意のタイプのセンサであってよい。複数のセンサが一旦発見されると、ブロック210において、任意の利用モジュールがロードされてよい。これらの利用モジュールは、例えば、プロビジョニングモジュール212、データセキュリティモジュール214、キャリブレーションモジュール216及び環境因子ブートモジュール218を含んでよい。これらの利用モジュールのそれぞれは、本明細書の他の箇所で説明される機能を実行するように構成されてよい。複数の利用モジュールは、メモリと結合されるプロセッサによる複数の命令の実行のために、個々の利用モジュールをコンピューティングデバイスのメモリに実装するための複数の命令のセットをロードすることによりロードされてよい。
【0025】
複数の利用モジュールは、ブロック210で初期化されてもよい。これは、存続されなくてよい個々の利用モジュールに関連付けられる任意の値をリセットすることを含んでよい。例えば、以前のブートが環境因子ブートモジュール218により、又は、環境因子ブートモジュール218の要求で、ブート処理の終了をトリガされた場合、これは、ブート終了値により実行され、環境因子ブートモジュール218内又は環境因子ブートモジュール218によりアクセス可能なメモリ内に格納され、終了値が真であることを示すべく「1」のような終了値に設定されてよい。そのようなシナリオにおいて、この終了値は、終了値が偽であることを示すべく「0」のようなデフォルト値にリセットされてよい。
【0026】
複数の利用モジュールがロードされて初期化された後、処理は、コンピューティングデバイスがセンサポーリング間隔内にあるか否かが決定され得るブロック220に進んでよい。コンピューティングデバイスがセンサポーリング間隔内にある場合、処理は、任意のセンサが利用可能であるか否かに応じて決定が行われ得るブロック222に進んでよい。利用可能なセンサがない場合、処理は、ローカルレポートが生成されるブロック224に進んでよく、処理は、ブロック220に戻ってよい。本明細書の他の箇所で説明されるように、利用可能なセンサがある場合、処理は、センサデータがセンサレイヤにより収集されてログが記録されるブロック226に進んでよい。ブロック226から、処理は、複数の利用モジュール、例えば、利用モジュール212−218が本明細書で説明される複数の処理又は機能のいずれかを実行するように実行され得るブロック228に進んでよい。ブロック228は、例えば、上述したような終了値が環境因子ブートモジュール218によって偽から真に変更されて、1又は複数の環境因子に基づいてブート処理を終了させる段階であってよい。ブロック228が完了した後に、処理は、この処理が反復され得るブロック220に戻ってよい。
【0027】
ブロック220において、コンピューティングデバイスがセンサポーリング間隔内にない場合、次に、処理は、BDSフェーズに入り、オペレーティングシステム(OS)をロードして開始する時間であるか否かに応じて決定され得るブロック230に進んでよい。OSを初期化する時間でない場合、処理は、ローカルレポートが生成されるブロック224に進んでよく、処理は、その後、ブロック220に戻ってよい。ブロック230で、OSを初期化する時間である場合、次に、処理は、初期化の条件が満たされているか否かについて決定されるブロック232に進んでよい。ブロック232は、終了値のような変数が評価されて、ブート処理が継続されるべきか、又は、終了されるべきかを決定し得る箇所である。ブロック232の決定が否定的な場合、次に、処理は、ブート処理が終了され得るブロック234に進んでよい。例として、上述した終了値が真である場合、その結果、ブロック232の結果が否定的であってよく、ブート処理は、ブロック234で終了されてよい。ブロック232の決定が肯定的な場合、次に、処理は、センサ情報がOSに渡され得るブロック236に進んでよい。複数の実施形態では、キャリブレーションモジュール216が、1又は複数のセンサの結果を検証し、又は、1又は複数のセンサをキャリブレートし、この検証又はキャリブレーション情報は、同様に、ブロック236でOSに渡され得る。ブロック238において、コンピューティングデバイスは、OSランタイム環境に入ってよく、処理は終了してよい。
【0028】
代替的な実施形態において、例えば、コンピューティングデバイスは、モノのインターネット(IoT)エッジデバイスであってよく、全てのオペレーティングシステムは、コンピューティングデバイスの適切な機能を必要としなくてよく、コンピューティングデバイスは、OS不在の動作モードで動作してよい。別の実施形態において、OS不在のモードは、メインOSが、メインCPUの制御をシステム管理モード(SMM)に渡すことにつながるシステム管理割り込み(SMI)の起動を介するようにして、中断されるときを含んでよい。そのような複数の実施形態において、ブロック240内に示される機能は、ブロック242に示される機能と置き換えられてよい。そのような実施形態において、センサポーリング間隔が終了した場合、次に、処理は、ユニファイドエクステンシブルファームウェアインタフェース(UEFI)の動作環境(例えば、UEFIシェルのランタイム)を初期化する時間であるか否かについて決定され得るブロック244に進んでよい。UEFIシェルの動作環境を初期化する時間でない場合、処理は、ローカルレポートが生成されるブロック224に進み、次に、処理はブロック220に戻ってよい。ブロック244で、UEFIシェルの動作環境を初期化する時間である場合、次に、処理は、UEFIシェルの動作環境の初期化についての条件が満たされるか否かについて決定されるブロック246に進んでよい。ブロック246は、終了値のような変数が評価されて、ブート処理が継続されるべきか、又は、終了されるべきかを決定し得る箇所である。ブロック246の決定が否定的な場合、次に、処理は、上述したように、ブート処理が終了され得るブロック234に進んでよい。例として、上述した終了値が真である場合、その結果、ブロック246の結果が否定的であってよく、ブート処理がブロック234で終了されてよい。ブロック246の決定が肯定的な場合、次に、処理は、UEFIシェルの動作環境が初期化され得るブロック248に進んでよい。複数の実施形態では、キャリブレーションモジュール216が、1又は複数のセンサの結果を検証し、若しくは、1又は複数のセンサをキャリブレートしており、この検証又はキャリブレーション情報は、同様に、ブロック248でUEFIシェルの動作環境に渡されてよい。ブロック250で、コンピューティングデバイスは、UEFIシェルのランタイムに入ってよく、処理は終了してよい。
【0029】
図3は、本開示の様々な実施形態に係る、図2のブートフローの代替図を示す。ブートフロー300は、スタートアップ処理が314で実行され得るセキュリティ(SEC)フェーズ302で開始してよい。スタートアップ処理は、例えば、コンピューティングデバイスの中央処理装置(CPU)のキャッシュをフラッシュすること、コンピューティングデバイスの基本入出力システム(BIOS)を開始すべく、コンピューティングデバイスのBIOSのリセットベクタを実行すること、及び、システムメモリの初期化の前にスタックベースのプログラム言語を用いることを可能にすべく、CPUのキャッシュにデータ領域を確立することのような複数の予備アクションを実行してよい。
【0030】
SECフェーズ302は、事前拡張可能なファームウェアインタフェース(PEI)フェーズ304に引き渡してよい。PEIフェーズ304において、PEIモジュールは、BIOSにより316で実行され、又は、実行させられる。PEIモジュールは、318においてコンピューティングデバイスのCPUを、320においてコンピューティングデバイスのチップセットを、及び、322においてコンピューティングデバイスのマザーボードを初期化してよく、又は、これらの初期化を実行させてよい。PEIフェーズ304は、ドライバ実行環境(DXE)フェーズ306のためにコンピューティングデバイスを準備してよい。ドライバ実行環境(DXE)ディスパッチャと共に、複数のブートサービス及び複数のランタイムサービスは、326及び324においてそれぞれ、BIOSにより実行されてよく、又は、実行させられてよい。PEIフェーズ304は、DXEフェーズ306に引き渡してよい。
【0031】
DXEフェーズ306の間、324におけるDXEディスパッチャのような、ファームウェアが実行されてよく、そのようなファームウェアは、ブート処理の間にデバイスサポートを提供する複数のドライバを検索し、初期化するための役割を担い得る。このように、DXEディスパッチャは、図1のドライバ112−116のような複数のブロック328において、一連のデバイス、バス及びサービスドライバを初期化してよい。複数のブロック328は、図1のファームウェアセンサレイヤ118及びファームウェア利用モジュール120−126のような、センサレイヤ及び任意の利用モジュールがロードも初期化もされ得る箇所である。330において、DXEディスパッチャは、ブートディスパッチャを実行してよく、又は、ブートディスパッチャの実行を開始させてよく、次に、DXEフェーズ306は、ブートデバイスセレクタ(BDS)フェーズ308に引き渡してよい。
【0032】
ブートディスパッチャは、プラットフォームブートポリシーを実装してよく、332において、一時的なOSブートローダを実行してよく、又は、一時的なOSブートローダの実行を行わせてよく、及び/又は、一時的なシステムロード(TSL)フェーズ310の間に、338において、最終OSブートローダを実行してよく、又は、最終OSブートローダの実行を行わせてよい。一実施形態において、TSLフェーズ310の間に、332における一時的なOSブートローダは、334におけるUEFIシェルの実行を開始してよく、334におけるUEFIシェルは、次に、336における(複数の)OS不在のアプリケーションの実行を開始してよい。最終OSブートローダは、342において、OS環境を終わらせてよく、BIOSは、342において、コンピューティングデバイスの制御をコンピューティングデバイスのOSに引き渡してよい。340において、ランタイムフェーズの間に、最終のOS環境は、(複数の)OSが存在するアプリケーションを実行してよい。
【0033】
他の実施形態において、処理300は、OS不在の環境におけるOSから独立して実行されてよい。OS不在の環境は、例えば、OSにより提供される全ての機能を必要としないモノのインターネット(IoT)エッジデバイス又は任意の他のコンピューティングデバイス上に実装されてよい。そのような環境において、TSLフェーズ310及びRTフェーズ312は、省略されてよく、かつ、コンピューティングデバイスにUEFIの動作状態を実現させ得るブロック344内に示されるUEFIシェルのランタイムフェーズ346と置き換えられてよい。そのような実施形態において、ブートディスパッチャ330は、プラットフォームブートポリシーを実装してよく、UEFIシェルのブートローダ348を実行してよく、又は、UEFIシェルのブートローダ348の実行を行わせてよい。350において、UEFIシェルのブートローダ348は、352における1又は複数のUEFIシェルのアプリケーションの実行を順番に開始し得るUEFIシェルのランタイムの実行を開始してよい。このように、UEFIシェルは、コンピューティングデバイスの制御を維持してよい。上記の1又は複数のUEFIシェルのアプリケーションは、例えば、上述したファームウェアセンサレイヤ及び/又は複数のセンサ利用を含んでよい。例として、図1のプロビジョニングモジュール120のようなファームウェアは、352で実行してよく、同様に構成され得る他のコンピューティングデバイスからのセンサデータを用いたセンサデータの集約のための遠隔サーバに対して、ファームウェアセンサレイヤにより提供されるセンサデータを報告するように構成されてよい。
【0034】
図4は、本開示の様々な実施形態に係る、図1のデータセキュリティモジュール126又は図2のデータセキュリティモジュール214のような、データセキュリティモジュールによるOS不在の環境において(例えば、コンピューティングデバイスのブート処理の間又はOS不在の動作状態において)、データを保護するための例示的なセンサデータの利用処理フロー400を示す。処理は、データ保護コマンドが、要求元から保護されるべきデータと共にデータセキュリティモジュールによるブート処理の間に受信され得るブロック402で開始してよい。一部の実施形態において、要求は、コンピューティングデバイスの基本入出力システム(BIOS)により行われていてよく、又は、BIOSにより開始されていてよい。ブロック404において、データセキュリティモジュールは、ファームウェアセンサレイヤ(例えば、図1のファームウェアセンサレイヤ118)を介してローカルセンサ情報を取得してよい。ローカルセンサ情報は、複数のセンサ読出し、センサ状態情報及び/又はセンサキャリブレーション情報を含んでよい。ブロック406において、暗号鍵は、ファームウェアセンサレイヤから受信したローカルセンサ情報を利用してデータセキュリティモジュールにより生成されてよく、ブロック408において、データは、データがブート処理の間でさえもローカルセンサ情報を介してコンピューティングデバイスに対して保護されるように、暗号鍵を利用してデータセキュリティモジュールにより暗号化されてよい。ブロック410において、保護されたデータは、データセキュリティモジュールにより要求元に出力されてよく、ローカルセンサ情報は、保護又は暗号化、情報として存続されてよい。
【0035】
図5は、本開示の様々な実施形態に係る、OS不在の環境において(例えば、コンピューティングデバイスのブート処理の間、又は、OS不在の動作状態において)、データの保護を解除するための説明に役立つ実例的な利用処理フロー500を示す。処理は、保護を解除するコマンド及び保護されたデータが、コンピューティングデバイスのブート処理の間に、コンピューティングデバイスのBIOSのような、要求元からデータセキュリティモジュールにより受信され得るブロック502で開始してよい。ブロック504において、一部の実施形態において、保護されたデータに関連する保護情報は、データセキュリティモジュールにより取得されてよい。保護情報は、保護情報が存続されていたレポジトリから取得されてよく、又は、ブロック502で受信された要求から取得され得る。ブロック506において、保護情報と対応するローカルセンサ情報は、ファームウェアセンサレイヤ(例えば、図1のファームウェアセンサレイヤ118)を介してデータセキュリティモジュールにより取得されてよい。ブロック508において、データセキュリティモジュールは、保護情報がローカルセンサ情報と一致するか否かについての決定を行ってよい。保護情報がローカルセンサ情報と一致しなかった場合、次に、処理は、データセキュリティモジュールがセキュリティ違反を応答し得るブロック510に進んでよい。保護情報がローカルセンサ情報と一致しなかった場合、次に、処理は、コンピューティングデバイスの保護されたデータが、ブート処理の間でさえもローカルセンサ情報を介して保護が解除され得るように、データセキュリティモジュールが、ローカルセンサ情報を利用して保護されたデータを復号化し得るブロック512に進んでよい。ブロック514において、データセキュリティモジュールは、復号化されたデータを要求元に送信してよい。
【0036】
図6は、本開示の様々な実施形態に係る、図1のファームウェアセンサレイヤ118のような、ファームウェアセンサレイヤ、又は、すでに本明細書で説明されたもののような、複数のセンサ利用モジュールのうちのいずれかを有するのに適した例示的なコンピューティングデバイスを示す。示されるように、コンピューティングデバイス600は、1又は複数のプロセッサ又はプロセッサコア602、及び、システムメモリ604を含んでよい。複数の実施形態において、複数のプロセッサコア602は、1つのダイに配置されてよい。特許請求の範囲を含む本願の目的のために、「プロセッサ」及び「複数のプロセッサコア」という用語は、文脈が別の方法を明らかに求めていない限り、同義語と見なされてよい。コンピューティングデバイス600は、ファームウェアストレージ606を含んでよい。ファームウェアストレージ606は、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM)及び/又はフラッシュメモリを含むが、これらに限定されない、不揮発性メモリの形式をとってよい。さらに、コンピューティングデバイス600は、(ディスケット、ハードドライブ、コンパクトディスクリードオンリメモリ(CD−ROM)等のような)(複数の)大容量記憶デバイス608、(ディスプレイ、キーボード、カーソル制御等のような)(複数の)入力/出力(I/O)デバイス610、(ネットワークインタフェースカード、モデム等のような)複数の通信インタフェース612、及び、本明細書で述べた複数のセンサのいずれかをこれらに限定されることなく含み得る(複数の)センサデバイス614を含んでよい。複数の要素は、1又は複数のバスを表し得るシステムバス616を介して、互いに結合されてよい。複数のバスの場合、それらは1又は複数のバスブリッジ(不図示)によりブリッジされてよい。
【0037】
これらの要素のそれぞれは、当該技術分野で知られている、それぞれの要素の従来の機能を実行してよい。特に、システムメモリ604及びファームウェアストレージ606は、以前に説明された複数の動作、例えば、限定されることはないが、一般に演算ロジック622と称されるファームウェアセンサレイヤ及び/又は複数のセンサ利用モジュールに関連する複数の動作を実装する複数のプログラミング命令のワーキングコピー及び永続的なコピーを格納するために利用されてよい。様々な動作は、(複数の)プロセッサ602によりサポートされる複数のアセンブラ命令又はそのような複数の命令にコンパイルされ得る、例えば、C言語のような、高級言語により実装され得る。
【0038】
複数のプログラミング命令の永続的なコピーは、例えば、コンパクトディスク(CD)のような分配媒体(不図示)を通じて、又は、(分配サーバ(不図示)から)通信インタフェース612を通じてファクトリー内又はフィールド内のファームウェアストレージ606内に置かれてよい。すなわち、ファームウェアセンサレイヤの実装を有する1又は複数の分配媒体、及び/又は、1又は複数のセンサ利用モジュールは、センサレイヤ、及び/又は、1又は複数のセンサ利用モジュールを様々なコンピューティングデバイスに分配するために利用され得る。
【0039】
これらの要素610−614の数、能力及び/又は容量は、例示的なコンピューティングデバイス600の意図された利用に応じて、例えば、例示的なコンピューティングデバイス600が、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、タブレット、パーソナルデジタルアシスタント、ウルトラモバイルパーソナルコンピュータ、携帯電話、デスクトップコンピュータ、サーバ、モノのインターネットデバイス又はセットトップボックスであるか応じて、異なってよい。これらの要素610−614の構造は、その他の点で知られており、したがって、さらに説明されることはない。
【0040】
図7は、様々な実施形態に係る、以前に説明された、センサレイヤ、及び/又は、1又は複数のセンサ利用モジュールに関連する複数の動作のうちの全て又は当該複数の動作のうちの選択されたいくつかを実行するように構成される複数の命令を有する例示的な非一時的なコンピュータ可読記憶媒体を示す。図に示されるように、非一時的なコンピュータ可読記憶媒体702は、複数のプログラミング命令704を含んでよい。複数のプログラミング命令704は、デバイス、例えば、コンピューティングデバイス600が、複数のプログラミング命令の実行に応答して、図1図5を参照して説明された複数の処理について1又は複数の動作を実行できるように構成され得る。代替的な実施形態において、複数のプログラミング命令704は、代わりに、複数の非一時的なコンピュータ可読記憶媒体702上に配置されてよい。さらに他の実施形態において、複数のプログラミング命令704は、複数の一時的なコンピュータ可読信号にエンコードされてよい。
【0041】
図6に戻って参照すると、一実施形態について、複数のプロセッサ602のうちの少なくとも1つは、図1図5を参照して説明された複数の処理について1又は複数の動作を実行するように構成される演算ロジック622と共に(メモリ604及び/又はファームウェアストレージ606に格納する代わりに)パッケージ化されてよい。一実施形態について、複数のプロセッサ602のうちの少なくとも1つは、図1図5を参照して説明された複数の方法について複数の態様を実行するように構成される演算ロジック622と共にパッケージ化されて、システムインパッケージ(SiP)を形成してよい。一実施形態について、複数のプロセッサ602のうちの少なくとも1つは、図1図5を参照して説明された複数の処理について1又は複数の動作を実行するように構成される演算ロジック622と共に同じダイに統合されてよい。一実施形態について、複数のプロセッサ602のうちの少なくとも1つは、図1図5を参照して説明された複数の処理について1又は複数の動作を実行するように構成された演算ロジック622と共にパッケージ化されて、システムオンチップ(SoC)を形成してよい。そのようなSoCは、任意の好適なコンピューティングデバイスに利用されてよい。
【0042】
この説明の目的のために、コンピュータで利用可能な媒体又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスにより用いられるプログラム、若しくは、これらに関連するプログラムを包含、格納、通信、伝搬及び移送できる任意の媒体であり得る。媒体は、揮発性又は不揮発性メモリであり得る。媒体は、電子、磁気、光学、電磁、赤外線又は半導体システム(若しくは装置又はデバイス)、若しくは、伝播媒体であり得る。コンピュータ可読記憶媒体の複数の例は、半導体又はソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、剛性磁気ディスク、及び、光ディスクを含む。現在の光ディスクの複数の例は、コンパクトディスク−リードオンリメモリ(CD−ROM)、コンパクトディスク−読出し/書込み(CD−R/W)及びDVDを含む。
【0043】
本開示の複数の実施形態は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態、又は、ハードウェア及びソフトウェアの要素の両方を含む実施形態ついての形式をとることができる。様々な実施形態において、ソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコード等を含んでよいが、これらに限定されるものではない。さらに、本開示は、コンピュータ又は任意の命令実行システムによる使用のためのプログラムコード、又は、これらに関連するプログラムコードを提供するコンピュータで利用可能な媒体又はコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形式をとることができる。
【0044】
特定の実施形態が図示され、本明細書に説明されてきたが、多岐にわたる代替的な実装例及び/又は等価的な実装例が、本開示の複数の実施形態の範囲から逸脱することなく示され、かつ、説明された特定の実施形態の代わりとなり得ることが当業者に理解されるだろう。本願は、本明細書で述べられた複数の実施形態の任意の脚色又は変形に包含することが意図されている。したがって、本開示の複数の実施形態が特許請求の範囲及びそれらの等価物のみによって限定されないことが明白に意図される。
【実施例】
【0045】
様々な実施形態によれば、本開示は、複数の実施例を説明する。実施例1は、演算するためのコンピューティングデバイスであって、プロセッサと、1又は複数のモジュール、及び、センサレイヤを含むプロセッサにより動作させられるファームウェアとを備え、ファームウェアは、オペレーティングシステム(OS)不在のファームウェア環境において、複数のセンサにより生成されるセンサデータを受信し、複数のセンサを抽象化するセンサレイヤのインタフェースを介して1又は複数のモジュールにセンサデータを選択的に提供し、複数のセンサは、コンピューティングデバイスにあるか、又は、コンピューティングデバイスと動作可能に結合される。
【0046】
実施例2は、実施例1の主題を含んでよく、コンピューティングデバイス上でインスタンス化されるオペレーティングシステムをさらに備え、ファームウェアは、オペレーティングシステムから独立している。
【0047】
実施例3は、実施例1の主題を含んでよく、1又は複数のモジュールは、環境因子ブートモジュールを含み、環境因子ブートモジュールは、センサレイヤのインタフェースを通じてセンサレイヤからセンサデータの一部を受信し、センサデータの一部に少なくとも部分的に基づいて、1又は複数のポリシーを適用し、センサデータの一部は、1又は複数のポリシーにより規定される1又は複数の環境因子と関連付けられる。
【0048】
実施例4は、実施例3の主題を含んでよく、1又は複数のポリシーを適用することは、1又は複数の環境因子と関連付けられるセンサデータの一部に少なくとも部分的に基づいて、1又は複数のポリシーに違反するという決定が行われるときに、コンピューティングデバイスのブート処理を終了することである。
【0049】
実施例5は、実施例3の主題を含んでよく、1又は複数のポリシーを適用することは、1又は複数の環境因子と関連付けられるセンサデータの一部に少なくとも部分的に基づいて、1又は複数のドライバを選択的にインスタンス化することである。
【0050】
実施例6は、実施例3〜5のいずれか一つの主題を含んでよく、1又は複数の環境因子は、温度、水分、湿度、高度、音圧レベル、可聴周波数、振動、速度、加速度又は照明のうちの1又は複数を含む。
【0051】
実施例7は、実施例1の主題を含んでよく、1又は複数のファームウェアモジュールは、センサキャリブレーションモジュールを含み、センサキャリブレーションモジュールは、複数のセンサのうちの1つのセンサにより生成されるセンサデータの一部に少なくとも部分的に基づいて、1つのセンサの妥当性を確認し、又は、複数のセンサのうちの1つのセンサにより生成されるセンサデータの一部に少なくとも部分的に基づいて、1つのセンサをキャリブレートする。
【0052】
実施例8は、実施例7の主題を含んでよく、センサキャリブレーションモジュールは、複数のセンサのうちの1つのセンサの妥当性を確認し、さらに、1つのセンサにより生成されるセンサデータの当該妥当性をコンピューティングデバイスのオペレーティングシステムに検証させる。
【0053】
実施例9は、実施例7の主題を含んでよく、センサキャリブレーションモジュールは、複数のセンサのうちの1つのセンサにより生成されるセンサデータを基準値と一致させるべく、センサレイヤとのインタラクションを通じて、又は、センサデータを基準値と一致させるべく、センサデータの操作を通じて、1つのセンサをキャリブレートする。
【0054】
実施例10は、実施例1の主題を含んでよく、1又は複数のファームウェアモジュールは、データセキュリティモジュールを含み、データセキュリティモジュールは、暗号化されるデータを受信し、センサレイヤから受信されるローカルセンサ情報に少なくとも部分的に基づいて暗号鍵を生成し、暗号鍵を利用してデータを暗号化し、暗号情報としてコンピューティングデバイスのメモリにローカルセンサ情報を存続させる。
【0055】
実施例11は、実施例10の主題を含んでよく、データセキュリティモジュールは、さらに、データを復号化する要求を受信し、センサレイヤから追加のローカルセンサ情報を受信し、暗号情報を取得し、追加のローカルセンサ情報が暗号情報と一致するときに追加のローカルセンサ情報に少なくとも部分的に基づいて復号鍵を生成し、復号鍵を利用して情報を復号化する。
【0056】
実施例12は、実施例10又は11のいずれか一方の主題を含んでよく、ローカルセンサ情報は、複数のセンサ読出し、センサ状態又はセンサキャリブレーションのうちの1又は複数を含む。
【0057】
実施例13は、実施例1の主題を含んでよく、OS不在のファームウェア環境は、ブート処理についてのユニファイドエクステンシブルファームウェアインタフェース(UEFI)環境である。
【0058】
実施例14は、実施例13の主題を含んでよく、OS不在のファームウェア環境は、UEFI環境のドライバ実行環境(DXE)である。
【0059】
実施例15は、実施例13の主題を含んでよく、コンピューティングデバイスは、オペレーティングシステムから独立しており、ブート処理は、コンピューティングデバイスにOS不在の動作状態を実現することを結果的にもたらすべく、拡張可能なファームウェアインタフェース動作環境をインスタンス化する。
【0060】
実施例16は、実施例1〜15のいずれか一つの主題を含んでよく、複数のセンサのうちの1又は複数のセンサは、コンピューティングデバイス上に配置され、バスインタフェースを介してプロセッサと動作可能に結合される。
【0061】
実施例17は、実施例1〜15のいずれか一つの主題を含んでよく、複数のセンサのうちの1又は複数のセンサは、ヒューマンインタフェースデバイス、HID、ドライバを介してコンピューティングデバイスと通信可能に結合される。
【0062】
実施例18は、実施例1又は実施例3〜15のいずれか一つの主題を含んでよく、コンピューティングデバイスは、複数のセンサを有するモノのインターネットエッジデバイスである。
【0063】
実施例19は、実施例1〜15のいずれか一つの主題を含んでよく、コンピューティングデバイスは、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、タブレット、パーソナルデジタルアシスタント、ウルトラモバイルパーソナルコンピュータ、携帯電話、デスクトップコンピュータ、サーバ、モノのインターネットデバイス、又はセットトップボックスからなるグループから選択される。
【0064】
実施例20は、演算するための方法であって、方法は、コンピューティングデバイスのオペレーティングシステム(OS)不在のファームウェア環境が、複数のセンサの抽象概念を提供するインタフェースを有するセンサレイヤをインスタンス化する段階と、OS不在のファームウェア環境内のセンサレイヤが、複数のセンサにより生成されるセンサデータを受信する段階と、センサレイヤが、センサレイヤのインタフェースを介して1又は複数のファームウェアモジュールにセンサデータを選択的に提供する段階とを備える。
【0065】
実施例21は、実施例20の主題を含んでよく、オペレーティングシステム(OS)不在のファームウェア環境は、コンピューティングデバイス上にオペレーティングシステムのインスタンス化を結果的にもたらすブート処理の一部であり、ファームウェア環境は、オペレーティングシステムから独立している。
【0066】
実施例22は、実施例20の主題を含んでよく、1又は複数のファームウェアモジュールは、環境因子ブートモジュールを含み、方法は、さらに、環境因子ブートモジュールが、センサレイヤのインタフェースを通じてセンサレイヤからセンサデータの一部を受信する段階と、環境因子ブートモジュールが、センサデータの一部に少なくとも部分的に基づいて1又は複数のポリシーを適用する段階とを備え、センサデータの一部は、1又は複数のポリシーにより規定される1又は複数の環境因子に関連付けられる。
【0067】
実施例23は、実施例22の主題を含んでよく、1又は複数のポリシーを適用する段階は、さらに、1又は複数の環境因子に関連付けられるセンサデータの一部に少なくとも部分的に基づいて1又は複数のポリシーに違反するか否かを決定する段階と、決定の結果に少なくとも部分的に基づいて、コンピューティングデバイスのブート処理を終了する段階とを含む。
【0068】
実施例24は、実施例22の主題を含んでよく、1又は複数のポリシーを適用する段階は、さらに、1又は複数の環境因子と関連付けられるセンサデータの一部に少なくとも部分的に基づいて、1又は複数のドライバを選択的にインスタンス化する段階を含む。
【0069】
実施例25は、実施例22〜24のいずれか一つの主題を含んでよく、1又は複数の環境因子は、温度、水分、湿度、高度、音圧レベル、可聴周波数、振動、速度、加速度又は照明のうちの1又は複数を含む。
【0070】
実施例26は、実施例20の主題を含んでよく、1又は複数のファームウェアモジュールは、センサキャリブレーションモジュールを含み、方法は、センサキャリブレーションモジュールが、複数のセンサのうちの1つのセンサにより生成されるセンサデータの一部に少なくとも部分的に基づいて、1つのセンサの妥当性を確認する段階と、センサキャリブレーションモジュールが、複数のセンサのうちの1つのセンサにより生成されるセンサデータの一部に少なくとも部分的に基づいて、1つのセンサをキャリブレートする段階とをさらに備える。
【0071】
実施例27は、実施例26の主題を含んでよく、複数のセンサのうちの1つのセンサの妥当性を確認する段階は、さらに、1つのセンサにより生成されるセンサデータの当該妥当性をコンピューティングデバイスのオペレーティングシステムに検証させる段階を含む。
【0072】
実施例28は、実施例26の主題を含んでよく、複数のセンサのうちの1つのセンサをキャリブレートする段階は、1つのセンサにより生成されるセンサデータを基準値と一致させるべく、センサレイヤとインタラクトする段階、又は、センサデータを基準値と一致させるべく、センサデータを操作する段階をさらに含む。
【0073】
実施例29は、実施例20の主題を含んでよく、1又は複数のファームウェアモジュールは、データセキュリティモジュールを含み、方法は、データセキュリティモジュールが、暗号化されるデータを受信する段階と、データセキュリティモジュールがセンサレイヤから受信されるローカルセンサ情報に少なくとも部分的に基づいて暗号鍵を生成する段階と、データセキュリティモジュールが、暗号鍵を利用してデータを暗号化する段階と、データセキュリティモジュールが、暗号情報としてローカルセンサ情報をコンピューティングデバイスのメモリ内に存続させる段階とをさらに備える。
【0074】
実施例30は、実施例29の主題を含んでよく、方法は、データセキュリティモジュールが、データを復号化するための要求を受信する段階と、データセキュリティモジュールが、センサレイヤから追加のローカルセンサ情報を受信する段階と、データセキュリティモジュールが、暗号情報を取得する段階と、データセキュリティモジュールが、追加のローカルセンサ情報が暗号情報と一致するときに追加のローカルセンサ情報に少なくとも部分的に基づいて復号鍵を生成する段階と、データセキュリティモジュールが、復号鍵を利用してデータを復号化する段階をさらに備える。
【0075】
実施例31は、実施例29又は30のいずれか一方の主題を含んでよく、ローカルセンサ情報は、複数のセンサ読出し、センサ状態又はセンサキャリブレーションのうちの1又は複数を含む。
【0076】
実施例32は、実施例20の主題を含んでよく、OS不在のファームウェア環境は、コンピューティングデバイスのブート処理についてのユニファイドエクステンシブルファームウェアインタフェース(UEFI)環境である。
【0077】
実施例33は、実施例32の主題を含んでよく、OS不在のファームウェア環境は、UEFI環境のドライバ実行環境(DXE)である。
【0078】
実施例34は、実施例32の主題を含んでよく、コンピューティングデバイスは、オペレーティングシステムから独立しており、方法は、ファームウェア環境が、コンピューティングデバイスにOS不在の動作状態を実現することを結果的にもたらす拡張可能なファームウェアインタフェース動作環境をインスタンス化する段階をさらに備える。
【0079】
実施例35は、実施例20の主題を含んでよく、複数のセンサのうちの1又は複数のセンサは、コンピューティングデバイス上に配置され、バスインタフェースを介してプロセッサと動作可能に結合される。
【0080】
実施例36は、実施例20の主題を含んでよく、複数のセンサのうちの1又は複数のセンサは、ヒューマンインタフェースデバイス、HID、ドライバを介してコンピューティングデバイスと通信可能に結合される。
【0081】
実施例37は、実施例20の主題を含んでよく、コンピューティングデバイスは、複数のセンサを有するモノのインターネットエッジデバイスである。
【0082】
実施例38は、実施例20の主題を含んでよく、コンピューティングデバイスは、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、タブレット、パーソナルデジタルアシスタント、ウルトラモバイルパーソナルコンピュータ、携帯電話、デスクトップコンピュータ、サーバ又はセットトップボックスからなるグループから選択される。
【0083】
実施例39は、そこに格納される複数の命令を有する1又は複数のコンピュータ可読媒体であって、複数の命令は、コンピューティングデバイスのプロセッサにより実行されるときに、コンピューティングデバイスに、実施例20〜38のいずれか一つの方法を実行させる。
【0084】
実施例40は、そこに格納される複数の命令を有する1又は複数のコンピュータ可読媒体であって、複数の命令は、コンピューティングデバイスのプロセッサにより実行されるときに、1又は複数のモジュール、及び、センサレイヤを含むファームウェア環境を有するコンピューティングデバイスを提供し、センサレイヤは、複数のセンサにより生成されるセンサデータをオペレーティングシステム(OS)不在の環境において受信し、複数のセンサを抽象化するセンサレイヤのインタフェースを介して1又は複数のモジュールにセンサデータを選択的に提供し、複数のセンサは、コンピューティングデバイスにあり、又は、コンピューティングデバイスと動作可能に結合される。
【0085】
実施例41は、実施例40の主題を含んでよく、ファームウェアは、コンピューティングデバイスのオペレーティングシステムから独立している。
【0086】
実施例42は、実施例40の主題を含んでよく、1又は複数のモジュールは、環境因子ブートモジュールを含み、環境因子ブートモジュールは、センサレイヤのインタフェースを通じてセンサレイヤからセンサデータの一部を受信し、センサデータの一部に少なくとも部分的に基づいて、1又は複数のポリシーを適用し、センサデータの一部は、1又は複数のポリシーにより規定される1又は複数の環境因子と関連付けられる。
【0087】
実施例43は、実施例42の主題を含んでよく、1又は複数のポリシーを適用することは、1又は複数の環境因子と関連付けられるセンサデータの一部に少なくとも部分的に基づいて、1又は複数のポリシーに違反することの決定が行われたときに、コンピューティングデバイスのブート処理を終了することである。
【0088】
実施例44は、実施例42の主題を含んでよく、1又は複数のポリシーを適用することは、1又は複数の環境因子と関連付けられるセンサデータの一部に少なくとも部分的に基づいて、1又は複数のドライバを選択的にインスタンス化することである。
【0089】
実施例45は、実施例42〜44のいずれか一つの主題を含んでよく、1又は複数の環境因子は、温度、水分、湿度、高度、音圧レベル、可聴周波数、振動、速度、加速度又は照明のうちの1又は複数を含む。
【0090】
実施例46は、実施例39の主題を含んでよく、1又は複数のファームウェアモジュールは、センサキャリブレーションモジュールを含み、センサキャリブレーションモジュールは、複数のセンサのうちの1つのセンサにより生成されるセンサデータの一部に少なくとも部分的に基づいて、1つのセンサの妥当性を確認し、又は、複数のセンサのうちの1つのセンサにより生成されるセンサデータの一部に少なくとも部分的に基づいて、1つのセンサをキャリブレートする。
【0091】
実施例47は、実施例46の主題を含んでよく、センサキャリブレーションモジュールは、複数のセンサのうちの1つのセンサの妥当性を確認し、さらに、1つのセンサにより生成されるセンサデータの当該妥当性をコンピューティングデバイスのオペレーティングシステムに検証させる。
【0092】
実施例48は、実施例46の主題を含んでよく、センサキャリブレーションモジュールは、複数のセンサのうちの1つのセンサにより生成されるセンサデータを基準値と一致させるべく、センサレイヤとのインタラクションを通じて、又は、センサデータを基準値と一致させるべく、センサデータの操作を通じて、1つのセンサをキャリブレートする。
【0093】
実施例49は、実施例40の主題を含んでよく、1又は複数のファームウェアモジュールは、データセキュリティモジュールを含み、データセキュリティモジュールは、暗号化されるデータを受信し、センサレイヤから受信されるローカルセンサ情報に少なくとも部分的に基づいて、暗号鍵を生成し、暗号鍵を利用してデータを暗号化し、暗号情報としてローカルセンサ情報をコンピューティングデバイスのメモリ内に存続させる。
【0094】
実施例50は、実施例49の主題を含んでよく、データセキュリティモジュールは、さらに、データを復号化するための要求を受信し、センサレイヤから追加のローカルセンサ情報を受信し、暗号情報を取得し、追加のローカルセンサ情報が暗号情報と一致するときに、追加のローカルセンサ情報に少なくとも部分的に基づいて、復号鍵を生成し、復号鍵を利用してデータを復号化する。
【0095】
実施例51は、実施例49又は50のいずれか一方の主題を含んでよく、ローカルセンサ情報は、複数のセンサ読出し、センサ状態又はセンサキャリブレーションのうちの1又は複数を含む。
【0096】
実施例52は、実施例40の主題を含んでよく、OS不在のファームウェア環境は、ブート処理についてのユニファイドエクステンシブルファームウェアインタフェース(UEFI)環境である。
【0097】
実施例53は、実施例40の主題を含んでよく、OS不在のファームウェア環境は、UEFI環境のドライバ実行環境(DXE)である。
【0098】
実施例54は、実施例52の主題を含んでよく、ブート処理は、コンピューティングデバイスに動作状態を実現することを結果的にもたらす拡張可能なファームウェアインタフェース動作環境をインスタンス化する。
【0099】
実施例55は、実施例40の主題を含んでよく、複数のセンサのうちの1又は複数のセンサは、コンピューティングデバイス上に配置され、バスインタフェースを介してプロセッサと動作可能に結合される。
【0100】
実施例56は、実施例40の主題を含んでよく、複数のセンサのうちの1又は複数のセンサは、ヒューマンインタフェースデバイス、HID、ドライバを介してコンピューティングデバイスと通信可能に結合され、センサレイヤは、さらに、HIDデバイスドライバを利用して複数のセンサと通信する。
【0101】
実施例57は、実施例40の主題を含んでよく、コンピューティングデバイスは、複数のセンサを有するモノのインターネットエッジデバイスである。
【0102】
実施例58は、実施例40の主題を含んでよく、コンピューティングデバイスは、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、タブレット、パーソナルデジタルアシスタント、ウルトラモバイルパーソナルコンピュータ、携帯電話、デスクトップコンピュータ、サーバ又はセットトップボックスからなるグループから選択される。
【0103】
実施例59は、演算するためのコンピューティングデバイスであって、オペレーティングシステム(OS)不在のファームウェア環境において、複数のセンサの抽象概念を提供するインタフェースを有するセンサレイヤをインスタンス化する手段と、複数のセンサにより生成されるデータをOS不在のファームウェア環境において受信する手段と、センサレイヤのインタフェースを介して1又は複数のファームウェアモジュールにセンサデータを選択的に提供する手段とを備え、複数のセンサは、コンピューティングデバイスにあるか、又は、コンピューティングデバイスと動作可能に結合される。
【0104】
実施例60は、実施例59の主題を含んでよく、OS不在のファームウェア環境は、コンピューティングデバイス上にオペレーティングシステムのインスタンス化を結果的にもたらすブート処理の一部である。
【0105】
実施例61は、実施例59の主題を含んでよく、1又は複数のファームウェアモジュールは、環境因子ブートモジュールを含み、環境因子ブートモジュールは、センサレイヤのインタフェースを通じてセンサレイヤからセンサデータの一部を受信する手段と、センサデータの一部に少なくとも部分的に基づいて、1又は複数のポリシーを適用する手段とを有し、センサデータの一部は、1又は複数のポリシーにより規定される1又は複数の環境因子と関連付けられる。
【0106】
実施例62は、実施例61の主題を含んでよく、1又は複数のポリシーを適用する手段は、さらに、1又は複数の環境因子と関連付けられるセンサデータの一部に少なくとも部分的に基づいて、1又は複数のポリシーに違反するか否かを決定する手段と、決定の結果に少なくとも部分的に基づいて、コンピューティングデバイスのブート処理を終了する手段とを含む。
【0107】
実施例63は、実施例61の主題を含んでよく、1又は複数のポリシーを適用する手段は、さらに、1又は複数の環境因子と関連付けられるセンサデータの一部に少なくとも部分的に基づいて、1又は複数のドライバを選択的にインスタンス化する手段を含む。
【0108】
実施例64は、実施例61〜63のいずれか一つの主題を含んでよく、1又は複数の環境因子は、温度、水分、湿度、高度、音圧レベル、可聴周波数、振動、速度、加速度又は照明のうちの1又は複数を含む。
【0109】
実施例65は、実施例59の主題を含んでよく、1又は複数のファームウェアモジュールは、センサキャリブレーションモジュールを含み、センサキャリブレーションモジュールは、複数のセンサのうちの1つのセンサにより生成されるセンサデータの一部に少なくとも部分的に基づいて、1つのセンサの妥当性を確認する手段、又は、複数のセンサのうちの1つのセンサにより生成されるセンサデータの一部に少なくとも部分的に基づいて、1つのセンサをキャリブレートする手段を有する。
【0110】
実施例66は、実施例65の主題を含んでよく、複数のセンサのうちの1つのセンサの妥当性を確認する手段は、さらに、1つのセンサにより生成されるセンサデータの妥当性をコンピューティングデバイスのオペレーティングシステムに検証させる手段を含む。
【0111】
実施例67は、実施例65の主題を含んでよく、複数のセンサのうちの1つのセンサをキャリブレートする手段は、さらに、1つのセンサにより生成されるセンサデータを基準値と一致させるべく、センサレイヤとインタラクトする手段、又は、センサデータを基準値と一致させるべく、センサデータを操作する手段を含む。
【0112】
実施例68は、実施例59の主題を含んでよく、1又は複数のファームウェアモジュールは、データセキュリティモジュールを含み、データセキュリティモジュールは、暗号化されるデータを受信する手段と、センサレイヤから受信されるローカルセンサ情報に少なくとも部分的に基づいて、暗号鍵を生成する手段と、暗号鍵を利用してデータを暗号化する手段と、暗号情報としてローカルセンサ情報をコンピューティングデバイスのメモリ内に存続させる手段とを有する。
【0113】
実施例69は、実施例68の主題を含んでよく、データセキュリティモジュールは、さらに、データを復号化するための要求を受信する手段と、センサレイヤから追加のローカルセンサ情報を受信する手段と、暗号情報を取得する手段と、追加のローカルセンサ情報が暗号情報と一致するときに、追加のローカルセンサ情報に少なくとも部分的に基づいて、復号鍵を生成する手段と、復号鍵を利用してデータを復号化する手段とを有する。
【0114】
実施例70は、実施例68又は69のいずれか一方の主題を含んでよく、ローカルセンサ情報は、複数のセンサ読出し、センサ状態又はセンサキャリブレーションのうちの1又は複数を含む。
【0115】
実施例71は、実施例59の主題を含んでよく、OS不在のファームウェア環境は、ブート処理についてのユニファイドエクステンシブルファームウェアインタフェース(UEFI)環境である。
【0116】
実施例72は、実施例71の主題を含んでよく、OS不在のファームウェア環境は、UEFI環境のドライバ実行環境(DXE)である。
【0117】
実施例73は、実施例71の主題を含んでよく、コンピューティングデバイスは、オペレーティングシステムから独立しており、さらに、コンピューティングデバイスに動作状態を実現することを結果的にもたらす拡張可能なファームウェアインタフェース動作環境をインスタンス化する手段を備える。
【0118】
実施例74は、実施例59の主題を含んでよく、複数のセンサのうちの1又は複数のセンサは、コンピューティングデバイス上に配置される。
【0119】
実施例75は、実施例59の主題を含んでよく、複数のセンサのうちの1又は複数のセンサは、ヒューマンインタフェースデバイス、HID、ドライバを介してコンピューティングデバイスと通信可能に結合される。
【0120】
実施例76は、実施例59の主題を含んでよく、コンピューティングデバイスは、複数のセンサを有するモノのインターネットエッジデバイスである。
【0121】
実施例77は、実施例59の主題を含んでよく、コンピューティングデバイスは、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、タブレット、パーソナルデジタルアシスタント、ウルトラモバイルパーソナルコンピュータ、携帯電話、デスクトップコンピュータ、サーバ又はセットトップボックスからなるグループから選択される。
図1
図2
図3
図4
図5
図6
図7