JP2017528816A - ポータブルコンピューティングデバイス(pcd)内のプロセッサに関する改善されたセキュリティのためのシステムおよび方法 - Google Patents

ポータブルコンピューティングデバイス(pcd)内のプロセッサに関する改善されたセキュリティのためのシステムおよび方法 Download PDF

Info

Publication number
JP2017528816A
JP2017528816A JP2017508514A JP2017508514A JP2017528816A JP 2017528816 A JP2017528816 A JP 2017528816A JP 2017508514 A JP2017508514 A JP 2017508514A JP 2017508514 A JP2017508514 A JP 2017508514A JP 2017528816 A JP2017528816 A JP 2017528816A
Authority
JP
Japan
Prior art keywords
core
monitor module
timer
soc
pcd
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.)
Pending
Application number
JP2017508514A
Other languages
English (en)
Inventor
ヨニ・カハナ
ローレンス・ジェフリー・ランドブレード
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2017528816A publication Critical patent/JP2017528816A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Telephone Function (AREA)

Abstract

ハイレベルオペレーティングシステム(HLOS)を動作させているコアなど、ポータブルコンピューティングデバイス(PCD)内のコアに関する改善されたセキュリティのためのシステムおよび方法が提示される。動作中、SoC上のモニタモジュールが初期化される。モニタモジュールは、SoCのコアに要求を送信し、モニタモジュールはそのコアから応答を受信する。モニタモジュールと通信しているタイマが検査される。コアからの応答がタイマの失効前にモニタモジュールにおいて受信される場合、モニタモジュールによってタイマがリセットまたは無効化される。そうでなければ、モニタモジュールは、タイマ失効の結果として、少なくとも1つのセキュリティ対策をコアに適用する。

Description

本発明は、ポータブルコンピューティングデバイス(PCD)内のプロセッサに関する改善されたセキュリティのためのシステムおよび方法に関する。
ワイヤレス信号を含めて、様々な通信媒体を通じて他のデバイスと通信するプロセッサを備えるデバイスは至る所にある。ポータブルコンピューティングデバイス(PCD)を含むモバイルデバイスは、ワイヤレス手段、アナログ手段、デジタル手段、および他の手段を介して様々な他のデバイスと通信するために使用される場合がある。これらのモバイルデバイスは、モバイル電話、携帯情報端末(PDA)、ポータブルゲーム機、パームトップコンピュータ、タブレットコンピュータ、および他のポータブル電子デバイスを含んでよい。
主な機能に加えて、PCDは、ゲームのダウンロードおよび再生、音楽のダウンロードおよび再生、ビデオのダウンロードおよび閲覧、全地球測位システム(GPS)ナビゲーション、ウェブブラウジング、ならびにスケジュール調整およびアドレスアプリケーション、電子財布ソフトウェアなど、アプリケーションの実行のために使用されてもよい。
ますます増大するこれらの使用およびより高い性能に対して需要に対応するために、現在のPCDは、一般に、PCDの様々な機能を制御または実行するための1つまたは複数のコア(たとえば、中央処理装置、グラフィックス処理ユニットなど)を備えるシステムオンチップ(SoC)を含む。しかしながら、各コア/CPUを動作させることは、PCD上の電力消費を増大し、バッテリー寿命を低減し、PCDの接触温度を増大し、サービスを低下させる、等々である。
しかしながら、PCDに対してますます増大する使用につきものなのは、相当な悪影響を有することが可能なセキュリティ侵害のリスク増大である。これらのセキュリティ問題に対処するための以前の試行には限界があった。ソフトウェアソリューションは依然として、セキュリティホールの高い可能性を有し、検証が困難な場合がある。ハードウェアソリューションは、SoC内で効果的に実装するために、あまりにも多くの電力および/またはチップエリアを消耗した。
これらの以前の試行は、たとえば、SoCとベンダのPCDとの間の互換性を確実にして、PCD内で使用されるSoCに対するセキュリティを提供する以前の試行を回避するために、ハイレベルオペレーティングシステム(HLOS)など、埋込み式オペレーティングシステムを改変する能力を有する場合がある、PCD内にSoCを実装するSoC製造会社のベンダによって容易に回避されることが可能である。同様に、PCDの「脱獄」を試行するエンドユーザは、オペレーティングシステムを改変し、SoCに対するセキュリティを提供するための以前の試行をさらに回避する場合がある。
したがって、PCD内で使用されるSoCのセキュリティを改善するための改善されたシステムおよび方法の必要が存在する。
ポータブルコンピューティングデバイス(PCD)内のシステムオンチップ(SoC)上のコアに関する改善されたセキュリティを可能にするシステムおよび方法が開示される。動作中、SoC上のモニタモジュールが初期化される。モニタモジュールは、SoCのコアに要求を送信し、モニタモジュールはそのコアから応答を受信する。モニタモジュールと通信しているタイマが検査される。コアからの応答がタイマの失効前にモニタモジュールにおいて受信される場合、モニタモジュールによってタイマがリセットまたは無効化される。そうでなければ、モニタモジュールは、タイマ失効の結果として、少なくとも1つのセキュリティ対策をコアに適用する。
1つの例示的な実施形態は、システムオンチップ(SoC)上にコアを備えるPCDである。SoC上のモニタモジュールはコアと通信しており、タイマはモニタモジュールと通信している。この例示的な実施形態では、モニタモジュールは、コアに要求を送信することと、コアから応答を受信することと、応答がタイマ失効前にモニタモジュールによって受信される場合、タイマをリセットすること、またはタイマ失効の結果として、少なくとも1つのセキュリティ対策をコアに適用することを行うように構成される。
別の例示的な実施形態は、コンピュータ可読プログラムコードを具現化した非一時的コンピュータ使用可能媒体を備えるコンピュータプログラム製品であって、前記コンピュータ可読プログラムコードは、ポータブルコンピューティングデバイス(PCD)内のコアに関する改善されたセキュリティのための方法を実装するために実行されるように構成され、本方法は、SoC上のモニタモジュールを初期化するステップと、SoCのモニタモジュールからSoCのコアに要求を送信するステップと、コアからの応答をモニタモジュールにおいて受信するステップと、モニタモジュールと通信しているタイマを検査するステップと、応答がタイマの失効前にモニタモジュールにおいて受信される場合、モニタモジュールを用いてタイマをリセットするステップ、またはタイマ失効の結果として、モニタモジュールを用いて、少なくとも1つのセキュリティ対策をコアに適用するステップとを含む。
図面における同様の参照番号は、特に示されていない限り、様々な図を通して同様の部分を参照している。"102A"または"102B"などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在している2つの同様の部分または要素を区別することができる。ある参照番号が、すべての図に同じ参照番号を有するすべての部分を包含することが意図されている場合、参照番号に対する文字指定が省略される場合がある。同様に、102'など、「'」記号を伴う参照番号の場合、「'」記号は、同じ参照番号を有する(が、「'」記号なしの)基礎をなす要素に関する代替実施形態を指定する場合がある。
本発明が実装されてよいポータブルコンピューティングデバイス(PCD)のある例示的な実施形態のブロック図である。 図1に示したPCD実施形態など、PCD内のプロセッサに関する改善されたセキュリティのための例示的なシステムを示すブロック図である。 図1に示したPCD実施形態の部分を用いて実装される、図2の例示的なシステムの態様を示すブロック図である。 図2および/または図3の例示的なシステムが動作してよい例示的なセキュリティ状態の図である。 PCD内の1つまたは複数のプロセッサに関する改善されたセキュリティを提供するための方法の例示的な実施形態の態様を説明するフローチャートである。 図5Aに示した方法の態様を実行することが可能な例示的な構成要素を示す図である。 PCD内の1つまたは複数のプロセッサに関する改善されたセキュリティを提供するための方法の例示的な実装形態の追加の態様を説明するフローチャートである。 図6Aに示した方法の態様を実行することが可能な例示的な構成要素を示す図である。
「例示的な」という単語は、本明細書では、「例、実例、または例証として働く」を意味するのに使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。
本明細書では、「アプリケーション」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含んでよい。さらに、本明細書において参照される「アプリケーション」は、開くことが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
「コンテンツ」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能コンテンツを有するファイルを含んでよい。さらに、本明細書において参照される「コンテンツ」は、開くことが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルやデータ値などの、本質的に実行可能ではないファイルも含んでよい。
本明細書で使用されるとき、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであってよい。例として、コンピューティングデバイス上で実行されるアプリケーションとコンピューティングデバイスの両方は構成要素であってよい。1つまたは複数の構成要素は、プロセスおよび/または実行のスレッド内に存在してよく、構成要素は、1つのコンピュータ上に局在化されてよく、および/または2つ以上のコンピュータ間で分散されてよい。さらに、これらの構成要素は、その上に記憶された様々なデータ構造を有する様々なコンピュータ可読媒体から実行されてよい。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素とやりとりし、および/または、信号によってインターネットなどのネットワークにわたって他のシステムとやりとりする、1つの構成要素からのデータ)を有する信号に従ってなど、ローカルプロセスおよび/またはリモートプロセスによって通信してよい。
本明細書では、「ポータブルコンピューティングデバイス」("PCD")という用語は、バッテリーおよび/またはキャパシタなど、制限された容量の再充電可能な電源において動作する任意のデバイスを記述するために使用される。充電式電源を備えるPCDは、数十年にわたって使用されてきたが、第3世代("3G")および第4世代("4G")のワイヤレス技術の出現に結び付けられる、充電式バッテリーにおける技術的な進歩により、複数の能力を有する数多くのPCDが可能になった。したがって、PCDは、数ある中でも、セルラ電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックすなわちリーダ、メディアプレーヤ、上述のデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータまたはタブレットコンピュータとすることができる。
本明細書では、「中央処理ユニット("CPU")」、「デジタル信号プロセッサ("DSP")」、「グラフィックス処理ユニット("GPU")」、「チップ」、「ビデオコーデック」、「システムバス」、「画像プロセッサ」、および「メディアディスプレイプロセッサ("MDP")」という用語は、SoC上で実装されてよい処理構成要素の非限定的な例である。処理構成要素についてのこれらの用語は、別段に規定されているときを除いて、互換的に使用される。その上、下で論じるように、上記またはそれらの均等物のいずれも、「コア」および/または「サブコア」と本明細書では全般的に呼ばれる1つまたは複数の別個の処理構成要素内で実装されてよいか、またはそれらからなってよい。
本明細書では、「作業負荷」、「プロセス負荷」、「プロセス作業負荷」および「グラフィカル作業負荷」という用語は互換的に使用される場合があり、全般的に、所与の実施形態の所与の処理構成要素に関連付けられるか、または割り当てられてよい処理負担または処理負担の割合を対象にする。さらに、「フレーム」、「コードブロック」、および「コードのブロック」という関連用語は、所与の作業負荷の部分またはセグメントを指すために交換可能に使用される場合がある。上で定義されるものに加えて、「処理構成要素」などは、限定はしないが、中央処理装置、グラフィカル処理ユニット、コア、メインコア、サブコア、処理エリア、ハードウェアエンジンなど、またはポータブルコンピューティングデバイス内の集積回路内またはその外にある任意の構成要素とすることができる。
"MIPS"という用語が、プロセッサが所与の電力周波数において処理することが可能である百万命令毎秒の数を表すことは、当業者には認識されよう。本明細書では、この用語は、例示的な実施形態におけるプロセッサ性能の相対的なレベルを示すための尺度の一般的な単位として使用され、本開示の範囲内に入る任意の所与の実施形態が任意の特定のドライストーン評価または処理能力を有するプロセッサを含むべきであること、または含むべきではないことを示唆するものと、解釈されることはない。さらに、当業者によって理解されるように、プロセッサのMIPS設定は、プロセッサに供給されている電力、周波数、または動作周波数と直接的に相関する。
PCD内のプロセッサまたはコアに関する改善されたセキュリティのための本システムおよび本方法は、ハイレベルオペレーティングシステム("HLOS")を動作させているプロセッサを含めて、1つまたは複数の追加のプロセッサとともに、システムオンチップ(SoC)上のモニタモジュールを実装するための費用効果が高い方法を提供する。モニタモジュールは、モニタモジュールの完全性を確実にする方法で、SoCの初期化に応じて初期化する。さらに、モニタモジュールは、次いで、コアの状態を監視し、それらのコアの状態が否定的な形または予想外の形で変化した場合、またはコアが、モニタモジュールによって要求される情報、データ、および/もしくはコードの提供に失敗した場合、1つまたは複数のコア上でセキュリティ対策を実装することによって、SoCの1つまたは複数のプロセッサまたはコアのセキュリティを確実にするように働く場合がある。
本システムおよび本方法では、モニタモジュール自体は、モニタモジュールが、初期化するために必要とされるコードをブートアップするために、HLOSコアなど、別のコアに依存するように、限定されたRAMメモリまたはROMメモリに依存する単なる構成要素であってよい。ブートアップ後に、モニタモジュールは、モニタモジュールによってだけリセットされてよいタイマを使用して、必要に応じて、SoC上の1つまたは複数のコアの状態を監視する。本システムおよび本方法は、SoCの電力消費とチップエリアの両方においてSoC上に最小負担をかけるモニタモジュールを実装することによって、SoCの1つまたは複数のコアに関するロバストかつフレキシブルなセキュリティを可能にする。
動作の間、SoCは、初期化されてよく、モニタモジュールの初期化をトリガする。モニタモジュールは、次いで、タイマを設定し、SoC上のコアから情報を要求する。SoCの初期化の場合、要求される情報は、モニタモジュールが初期化および/または動作を完了するために必要なブートコードであってよい。モニタモジュールが、タイマ失効に先立って、予想された情報を受信しない場合、かつ/またはモニタモジュールが受信した情報が、モニタモジュールが予想していたものでない場合、モニタモジュールは、要求された情報が提供されるまで、および/またはSoC全体が再初期化されるまで、そのコアを「人質」として維持することを含めて、コアに関するセキュリティ対策を実装することができる。モニタモジュールが、要求された情報をタイマ失効前に受信する場合、モニタモジュールは、タイマをリセットし、実装形態に応じて、モニタモジュールは、自らを停止させるか、または所定の時間間隔/所定の将来のイベントにわたって、低減された電力のスリープモードまたはアイドルモードに入ってよいか、またはモニタモジュールは、HLOSコアを含めて、SoCの1つまたは複数のコアの動作を監視し続けてよい。
いくつかの実装形態では、モニタモジュールは、コアの状態を検査し、コアの状態が変化した場合、タイマがカウントし続けることを可能にするか、またはコアの状態が変化しない場合、タイマをリセットすることのいずれかによって、SoCの1つまたは複数のコアの状態を監視してよい。タイマが失効した場合、モニタモジュールは、タイマ失効の結果として、少なくとも1つのセキュリティ対策をコアに適用する。セキュリティ対策は、SoC全体を再初期化すること、特定のコアを再初期化すること、コアがPCD上に記憶されたデータにアクセスするのを防止すること、コアがSoC上の1つまたは複数の構成要素にアクセスするのを防止すること、および/またはPCDのディスプレイ上に警告を出現させることを含んでよい。セキュリティ対策は、現在のセキュリティレベル状態など、あらかじめ定義されたセキュリティポリシーに従って適用されてもよい。同様に、セキュリティ対策は、所望される場合、より厳しい対策がタイマの複数のまたは連続した失効に関して予約される状態で、ティア化(多層化)された方式で適用されてよい。
一実施形態では、モニタモジュールは、プロセッサ、限定されたRAMメモリまたはROMメモリ、およびタイマで、フラッシュメモリに対する直接的なアクセスなしに、実装されてよい。他の実施形態では、モニタモジュールは、たとえば、HLOSを動作させているコアなど、コアの一部またはパーティションとして仮想的に実装されてよい。モニタモジュールの電力消費および/またはSoC上のフットプリントを最小限に抑えながら、SoC上の1つまたは複数のコアに関するロバスト、かつフレキシブルなセキュリティ対策を提供するためのこの能力は、費用効果の高い方法でPCD内のプロセッサまたはコアに関する改善されたセキュリティを可能にする。
本明細書で説明する、PCD内のプロセッサまたはコアに関する改善されたセキュリティを提供するためのシステムまたはシステムの一部は、ハードウェアまたはソフトウェアで実装されてよい。ハードウェアで実装する場合、デバイスはすべてが当技術分野でよく知られている、以下の技術のいずれか、またはそれらの組合せを含むことが可能である、すなわち、適切に構成された半導体デバイスおよび抵抗要素を有する、個別電子構成要素、集積回路、特定用途向け集積回路などである。これらのハードウェアデバイスのうちのいずれも、単独で動作しようと、他のデバイス、またはメモリなどの他の構成要素とともに動作しようと、開示する方法の様々な動作またはステップを実行するための構成要素または手段を形成するかまたは備えてもよい。
PCDまたは本明細書で説明する他のシステムがソフトウェアで実装されるとき、またはソフトウェアで部分的に実装されるとき、ソフトウェア部分は、SoCおよび/またはSoCのモニタモジュールの初期化を含めて、本明細書で説明する方法の様々なステップを実行するために使用されることが可能である。ソフトウェア部分は、コアからモニタモジュール情報を受信し、受信された情報を検証し、モニタモジュールと通信しているタイマを設定/リセットし、かつ/またはSoCの1つまたは複数のコアに関するセキュリティ対策を実装するために使用されてもよい。同様に、ソフトウェア部分は、コアの状態が変化した場合、タイマがカウントし続けることを可能にすることによって、またはコアの状態が変化しない場合、タイマをリセットすることによって、コアの状態を監視するために使用されることが可能である。ソフトウェア部分は、タイマ失効の結果として、1つまたは複数のセキュリティ対策をコアに適用するため(または、SoC全体をリセットするため)に使用されることも可能である。
様々な要素を表す際に使用されるソフトウェアおよびデータは、メモリ内に記憶され、適切な命令実行システム(マイクロプロセッサ)によって実行されることが可能である。ソフトウェアは、論理機能を実装するために実行可能な命令の順位リストを備えてよく、シングルコアプロセッサもしくはマルチコアプロセッサまたはプロセッサ包含システム(processor-containing system)など、命令実行システム、装置、またはデバイスによって、またはそれらとともに使用するために任意の「プロセッサ可読媒体」内で実施されてよい。そのようなシステムは、一般に、命令実行システム、装置、またはデバイスから命令にアクセスし、それらの命令を実行することになる。
図1は、1つまたは複数のワイヤレス通信システムと通信することができるワイヤレス電話の形態で本システムおよび本方法を実装する場合があるPCD100の例示的な非限定的な態様のブロック図である。そのようなワイヤレス通信システムは、ロングタームエボリューション(LTE)システム、符号分割多元接続(CDMA)システム、周波数分割多元接続(FDMA)システム、モバイル通信用グローバルシステム(GSM(登録商標):Global System for Mobile Communications)システム、ワイヤレスローカルエリアネットワーク(WLAN)システム、いくつかの他のワイヤレスシステム、またはそれらのいずれかの組合せを含めて、広帯域ワイヤレス通信システムであってよい。CDMAシステムは、広帯域CDMA(WCDMA(登録商標))、CDMA 1X、エボリューションデータオプティマイズド(EVDO)、時分割同期CDMA(TD-SCDMA)、またはCDMAの何らかの他のバージョンを実装してもよい。
示すように、PCD100は、互いに結合された異種マルチコア中央処理装置("CPU")110およびアナログ信号プロセッサ126を含むオンチップシステム(すなわち、SoC)102を含む。当業者が理解するように、CPU110は、第0のコア120と、第1のコア122と、第Nのコア124とを備えてもよい。さらに、当業者が理解するように、CPU110の代わりに、デジタル信号プロセッサ("DSP")が採用されてもよい。その上、異種マルチコアプロセッサの技術分野で理解されるように、コア120、122、124の各々は、同様の動作条件の下で異なる効率で作業負荷を処理してよい。コア120、122、124の各々は、PCD100の1つまたは複数の機能を制御してよい。たとえば、第1のコア122は、PCD100内のグラフィックスを制御するためのグラフィックス処理ユニット(GPU)であってよい。そのようなGPU/第1のコア122は、GPUコア122と(バッファを含む)メモリ112との間の通信を制御することを含めて、PCD100内のグラフィックスを制御するために必要なドライバおよび/または他の構成要素をさらに含んでよい。別の例では、第Nのコア124など、異なるコアは、ハイレベルオペレーティングシステム(HLOS)など、PCDオペレーティングシステムを実行してよい。そのような第Nの/HLOSコア124は、ドライバ、ハードウェアインターフェース、および/またはコア124と(フラッシュメモリを含んでよい)メモリ112との間の通信を含めて、HLOSを実行するために必要な他の構成要素をさらに含んでよい。
PCD100は、マルチコアCPU110および/またはコア120、122、124のうちの1つまたは複数と通信しているモニタモジュール116を含んでよい。モニタモジュール116は、下で説明するように、コアのうちのいくつかまたはすべてにセキュリティを提供するように動作してよい。モニタモジュール116は、マルチコアCPU110によって実行されるソフトウェアを備えてよい。しかしながら、本発明の範囲から逸脱することなく、モニタモジュール116はまた、ハードウェアおよび/またはファームウェアから形成される場合もある。他の実装形態では、PCD100は、マルチコアCPU110とは別個のモニタモジュール116を含まなくてよいが、モニタモジュール116は、代わりに、マルチコアCPU110の一部であってよい。そのような実施形態では、モニタモジュール116は、マルチコアCPU110の別個の論理構成要素、ソフトウェア構成要素、またはファームウェア構成要素として実装されてよいか、またはモニタモジュール116は、コア120、122、124のうちの1つまたは複数のパーティションまたは部分として実装されているなど、仮想的に実装されてよい。
図1に示すように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130がマルチコアCPU110に結合される。次に、オンチップシステム102の外部のディスプレイ/タッチスクリーン132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。デジタルカメラ148が、マルチコアCPU110に結合されてもよい。そのような実施形態では、デジタルカメラ148は、マルチコアCPU110のコアのうちの1つによって制御されてよい。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(CCD:charge-coupled device)カメラまたは相補型金属酸化物半導体(CMOS:complementary metal-oxide semiconductor)カメラである。
図1のPCD100は、ビデオエンコーダ134、たとえば、マルチコアCPU110に結合された、位相反転線(PAL:phase alternating line)エンコーダ、順次式カラーメモリ(SECAM:sequential couleur a memoire)エンコーダ、もしくは全国テレビジョン方式委員会(NTSC:national television system(s) committee)エンコーダ、または任意の他のタイプのビデオデコーダ134をさらに含んでよい。さらに、ビデオ増幅器136が、ビデオエンコーダ134およびディスプレイ/タッチスクリーン132に結合される。ビデオポート138は、ビデオ増幅器136に結合される。図1に示すように、ユニバーサルシリアルバス(USB)コントローラ140がマルチコアCPU110に結合される。同様に、USBポート142は、USBコントローラ140に結合される。メモリ112は、マルチコアCPU110に結合されるとしてやはり示されている。そのようなメモリ112は、たとえば、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、またはそれらの任意の組合せであってよい。加入者識別モジュール(SIM)カード146がマルチコアCPU110に結合されてもよい。他の実施形態では、複数のSIMカード146が実装されてよい。
図1にさらに示すように、ステレオオーディオCODEC150がマルチコアCPU110に結合されてよい。さらに、オーディオ増幅器152は、ステレオオーディオCODEC150に結合されてよい。例示的な態様では、第1のステレオスピーカ154および第2のステレオスピーカ156が、オーディオ増幅器152に結合される。図1は、マイクロフォン増幅器158が、ステレオオーディオCODEC150に結合されてもよいことを示している。さらに、マイクロフォン160が、マイクロフォン増幅器158に結合される場合がある。特定の態様では、周波数変調(FM)無線チューナ162が、ステレオオーディオCODEC150に結合される場合がある。また、FMアンテナ164がFM無線チューナ162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオCODEC150に結合されてもよい。
図1は、モデムデバイス/無線周波数("RF")トランシーバ168がマルチコアCPU110に結合されてよいことをさらに示す。モデムデバイス168は、GSM、CDMA、W-CDMA、TDSCDMA、LTE、および、FDB/LTEワイヤレスプロトコルおよびPDD/LTEワイヤレスプロトコルに限定されないが、これらなど、LTEの変形体など、ワイヤレス通信プロトコルのうちの1つまたは複数をサポートする場合がある。さらに、複数のモデムデバイス168が存在する場合があり、そのような実施形態では、異なるモデムデバイス168が、上に記載したワイヤレス通信プロトコルおよび/または技術のうちのいくつかまたはすべてをサポートする場合がある。
いくつかの実装形態では、モデムデバイス168はさらに、別個のプロセッサ、メモリ、および/またはRFトランシーバを含めて、様々な構成要素からなってよい。他の実装形態では、モデムデバイス168は単なるRFトランシーバであってよい。さらに、モデムデバイス168は集積回路に組み込まれる場合がある。すなわち、モデムデバイス168を備える構成要素は、チップ内のフルソリューションであってよく、本明細書で説明するシステムおよび方法によって監視される場合があるその独自のプロセッサおよび/またはコアを含んでよい。代替として、モデムデバイス168を備える様々な構成要素は、マルチコアCPU110に結合され、CPU110のコア120、122、124のうちの1つによって制御されてよい。RFスイッチ170が、モデムデバイス168およびRFアンテナ172に結合されてもよい。様々な実施形態では、複数のRFアンテナ172が存在してよく、そのようなRFアンテナ172の各々は、RFスイッチ170を介してモデムデバイス168に結合されてよい。
図1に示すように、キーパッド174は、直接的に、またはアナログ信号プロセッサ126を介して、のいずれかで、マルチコアCPU110に結合されてよい。また、マイクロフォン付きモノヘッドセット176が、マルチコアCPU110および/またはアナログ信号プロセッサ126に結合される場合がある。さらに、バイブレータデバイス178が、マルチコアCPU110および/またはアナログ信号プロセッサ126に結合されてもよい。図1は、電源188がオンチップシステム102に結合されてよく、いくつかの実装形態では、電源188がUSBコントローラ140を介して結合されることも示す。特定の態様では、電源188は電力を必要とするPCD100の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源188は、交流(AC)電源に接続されたAC-DC変換器から得られる、充電式DCバッテリーまたはDC電源であってよい。
マルチコアCPU110は、1つまたは複数の内部のオンチップ熱センサ157A、ならびに、1つまたは複数の外部のオフチップ熱センサ157Bに結合されてもよい。オンチップ熱センサ157Aは、縦型PNP構造に基づき、通常は相補型金属酸化物半導体("CMOS")の超大規模集積("VLSI:very large-scale integration")回路に専用の、1つまたは複数の絶対温度比例("PTAT:proportional to absolute temperature")の温度センサを備えてよい。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを備えてよい。熱センサ157は、アナログデジタル変換器("ADC")コントローラ103を用いてデジタル信号に変換される、電圧降下を生じさせる場合がある。しかしながら、本開示の範囲から逸脱することなく、他のタイプの熱センサ157が採用されてよい。
図1は、PCD100が、データネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用される場合があるネットワークカード114も含む場合があることをさらに示す。ネットワークカード114は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、または当技術分野でよく知られている任意の他のネットワークカードであってよい。さらに、ネットワークカード114は、集積回路の中に統合されてよい。すなわち、ネットワークカード114は、チップ内のフルソリューションであってよく、別個のネットワークカード114でなくてもよい。
図1に示すように、ディスプレイ/タッチスクリーン132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカ154、第2のステレオスピーカ156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178および電源188は、SoC102の外部にある。
SoC102はまた、様々なバスコントローラ(図示せず)を含んでもよい。たとえば、第1の例は、ビデオエンコーダ134を含めて、マルチメディアサブシステムの構成要素にCPU110を通信可能に結合するバスインターフェース内の信号に対応する場合がある。任意の数の同様に構成されたバスコントローラが、オンチップシステム102内に配置されたバスインターフェースを監視するように配置されることが可能であることを理解されよう。代替的に、必要に応じて、CPU110とPCD100の様々なサブシステムとの間で信号を通信する2つ以上のバスインターフェースを監視するように配置された入力を備える単一のバスコントローラが構成されてよい。
特定の態様では、本明細書で説明する方法ステップのうちの1つまたは複数は、メモリ112および/またはCPU110上に位置するメモリ内に記憶されたデータおよびプロセッサ命令の組合せを介して使用可能にされる場合がある。これらの命令は、本明細書で説明する方法を実行するために、マルチコアCPU110内の1つまたは複数のコア120、122、124によって実行される場合がある。さらに、マルチコアCPU110、コア120、122、124のうちの1つまたは複数、メモリ112、モニタモジュール116、またはこれらの組合せは、PCD内のプロセッサまたはコアに関する改善されたセキュリティを可能にするために本明細書で説明する方法ステップの1つまたは複数を実行するための手段として機能してよい。
図2は、図1に示したPCD実施形態など、PCD内のプロセッサまたはコアに関する改善されたセキュリティのための例示的なシステムを示すブロック図である。図2に示すように、例示的なシステムは、(図1のSoC102と同様の)PCD内で実装されることが可能なシステムオンチップ(SoC)集積回路(IC)202を含む。図2のSoC IC202は、コア220とモニタモジュール216とを含む。コア220は、図1のマルチコアCPU110からのコア120、122、124のうちの1つであることが可能であり、一実施形態では、PCD100のためのHLOSを実行しているコア120、122、124であってよい。
図2に示すように、コア220は、メモリ223に結合されたCPU221を含む。CPU221は、図1に関して上で論じたタイプのプロセッサのうちのいずれかであることが可能であり、(HLOSなど)SoC IC202の機能のための専用プロセッサであってよく、またはSoC IC202のための複数の機能を実行するより一般的なプロセッサであってもよい。いくつかの実施形態では、CPU221はまた、SoC IC202またはPCDの他の機能を実行するため、制御するため、または動作させるために使用されることが可能である。
メモリ223は、任意のタイプの所望のメモリであってよく、コア220専用のメモリ223であってよく、コア220に加えて、1つまたは複数の追加のコアまたはプロセッサ間で共有されるメモリであってもよい。いくつかの実施形態では、メモリ223はフラッシュメモリである。メモリ223は図2でコア220内に位置するとして示されるが、メモリ223は、SoC IC202上またはPCD内の他の場所に、コア220から物理的に離されて位置してもよい。図2に示す実施形態では、メモリ223は、動作を開始するためにモニタモジュール216が必要とするモニタブートコード225a、ならびに下で論じるような、その動作の間にモニタモジュール216が必要とするモニタデータファイル225bを包含する。
図2の例示的なシステムは、コア220と通信しているモニタモジュール216をSoC IC202上にやはり含む。示すシステムでは、モニタモジュール216は、コア220のCPU221と通信しているCPU217を含む。モニタCPU217は、図1に関して上で論じたタイプのプロセッサのうちのいずれかであってもよく、モニタモジュール216に関する専用プロセッサであってよい。図2のSoC IC202上で別個の構成要素として示されているが、いくつかの実施形態では、モニタモジュール216は、コア220の仮想部分または仮想パーティションなど、コア220の一部であってよい。そのような実施形態では、CPU217は、図2に示すような別個の物理的構成要素ではなく、CPU221の一部またはパーティションであろう。
図2のモニタモジュール216は、両方ともモニタCPU217と通信している、モニタメモリ218とタイマ219とをやはり含む。図2の実施形態では、メモリは、好ましくは、ランダムアクセスメモリ(RAM)または読取り専用メモリ(ROM)であるが、好ましくは、フラッシュメモリでない。典型的なフラッシュメモリは、より洗練されたドライバを必要とし、RAMメモリまたはROMメモリを用いて実装する/RAMメモリまたはROMメモリとインターフェースするにはより複雑である。
図2に示す実施形態の場合、モニタモジュール216を単純かつ効率的に維持し、モニタモジュール216を動作させるための電力消費と、モニタモジュール216を実装するために要求されるSoC IC202のチップエリアの両方を最小限に抑えることが望ましい場合がある。一般にフラッシュメモリ内に記憶されることになるコードおよび/またはデータは、代わりに、モニタモジュール216が通信しており、モニタモジュール216が監視するコア220の1つまたは複数のメモリ223内に記憶される。モニタメモリ218は、モニタモジュール216用の専用メモリであってよく、または図1のマルチコアCPU110のコア120、122、124など、他のプロセッサによって共有される(図1のメモリ112など)メモリの一部であってよい。さらに、モニタモジュール216の一部であるとして図1に示されているが、モニタメモリ218は、SoC IC202上またはPCD内の他の場所に、モニタモジュール216から物理的に離されて位置してよい。
図2に示すように、モニタモジュール216は、モニタCPU217と通信しているタイマ219をやはり含む。タイマ219は、いくつかの実装形態では、モニタモジュール216が適切にブートすることを可能にするために、必要なモニタブートコード225aをコア220が少なくとも提供することを確実にするために使用されてよい。タイマ219は、コア220が、モニタモジュール216によって必要とされるモニタデータファイル225bなど、何らかの追加情報を提供することを確実にし、かつ/またはモニタモジュール216がコア220による望まれない変更、改変、または動作を防止するために、コア220の進行中の動作を監視することを可能にするために使用されてもよい。
タイマ219は、ハードウェア構成要素、ファームウェア構成要素、またはソフトウェア構成要素であってよく、モニタモジュール216とともに位置してよく、またはモニタモジュール216から物理的に離されて(しかし、モニタモジュール216と通信して)位置してもよい。さらに、単一の構成要素として示すが、タイマ219は、2つのタイマ(図示せず)、またはタイマ319およびカウンタ317(図3A参照)など、複数の構成要素からなってもよい。どのように実装されるかにかかわらず、タイマ219は、コア220によってリセットされなくてよく、図2の実装形態では、下でさらに論じるように、モニタモジュール216によってだけリセットされてよい。
図3を参照すると、図1のPCD実施形態の部分を用いて実装される、図2の例示的なシステムの態様のブロック図が示されている。図3に示すように、コア320と通信しているモニタモジュール316は、PCDのSoC IC302上に提供される。図3に示すコア320の実施形態は、図2に示したコア220の追加の構成要素を含んでよい。他の実施形態では、図3のコア320は、図1のコア120、122、124のうちの1つなど、単にプロセッサであってよいのに対して、図2のコア220の他の部分の機能はコア320とは別の構成要素によって提供される。さらに他の実施形態では、コア320はコア120、122、124など、複数の別個のコアであってよく、各別個のコアは、図3に示す追加の構成要素のうちの1つと通信しているか、またはそれ専用(すなわち、ビデオエンコーダ334に結合された、またはビデオエンコーダ334専用のGPUコア、モデムデバイス368に結合された、またはモデムデバイス368専用のモデムコア、など)である。
図3のモニタモジュール316はメモリまたはプロセッサを備えて示されていないが、図2のモニタモジュール216のように、それらの構成要素は、モニタモジュール316内に含まれてよい。他の実施形態では、それらの構成要素は、モニタモジュール316内に位置しなくてよく、代わりに、それらの構成要素の機能は、モニタモジュール316とは別に位置するが、モニタモジュール316と通信している、ハードウェア、ソフトウェア、および/またはファームウェアによって提供されてよい。モニタモジュール316はカウンタ317を含み、モニタモジュール316はまた外部のタイマ319と通信している。一緒に、図3Aの実施形態のカウンタ317および外部のタイマ319は、モニタモジュール316に関する計時機能(timing function)を実行する。
図3に示すコア320はまた、USBコントローラ340を含めて(かつ、USBコントローラ340、USBポート342を通じて)SoC IC302および/またはPCDの他の部分または構成要素と通信している。コア320は、USBコントローラ340と直接通信してよく、かつ/またはUSBコントローラ340を制御していてもよい。代替的に、かつ/またはPCDの動作の間の様々な時点で、コア320は、USBコントローラ340と直接通信している1つまたは複数の構成要素またはプロセッサ(図1のコア120、122、124、またはアナログ信号プロセッサ126など)と通信していることによってなど、USBコントローラ340と間接的に通信している場合がある。USBコントローラ340(および、USBポート342)との直接的または間接的な通信は、コア320が、USBポート342を通じてPCDに接続された他のデバイスもしくはコンピュータシステムになど、データを入力および/もしくは出力すること、ならびに/またはUSBポート342を通じて入力を受信すること、もしくはPCDに接続された周辺装置に入力を提供することを可能にしてよい。
図3のコア320は、SoC IC302のネットワークカード314およびモデムデバイス/RFトランシーバ368と通信しているとしてやはり示されている。この場合も、コア320は、SoC IC302のこれらの構成要素と直接通信していてよく、かつ/またはこれらの構成要素を制御していてもよく、コア320が、ウェブブラウジング、ファイルのアップロード/ダウンロードなどのために、他のデバイスまたはコンピュータシステムとワイヤレスで通信することを可能にする。代替的に、かつ/またはPCDの動作の間の様々な時点で、コア320は、これらの構成要素のうちの1つまたは複数と直接通信している1つまたは複数の構成要素またはプロセッサ(図1のコア120、122、124、またはアナログ信号プロセッサ126など)と通信していることによってなど、ネットワークカード314およびモデムデバイス/RFトランシーバ368と間接的に通信している場合がある。
最終的に、図3に示す態様では、コア320は、PCDが、ビデオコンテンツを含めて、様々なメディアファイルを再生することを可能にする場合がある、ビデオエンコーダ334とやはり通信している。この場合も、コア320は、上で説明したように、ビデオエンコーダ334と直接通信してよく、または間接的に通信していてもよく、かつ/またはビデオエンコーダ334を制御してもよい。
動作中、PCDのバッテリーが完全に消耗したときなど、停止からの電源投入時であってよい、SoC IC302の初期化において、セキュアなモニタモジュール316は初期化/ブートアップをやはり試行する。コア320は、モニタブートコード225(図2参照)またはモニタモジュール316が適切に初期化および/または動作するために必要な他の情報を包含するか、またはそれらに対するアクセスを有する。コア320が、適時にモニタモジュール316に必要なコードの提供に失敗した場合、またはコア320が、モニタモジュール316が適切に初期化/動作するために必要とされる正確なコードの提供に失敗した場合、タイマ319が失効し/トリガされ、モニタモジュール316にセキュリティ対策をとらせることになる。そのようなセキュリティ対策は、PCDのスクリーン上に警告を表示することから、コア320および/またはSoC IC302のブートアップおよび/または動作の介入に及ぶ場合がある。
別の実装形態では、モニタモジュール316が初期化した後で、モニタモジュール316は、コア320を含めて、SoC IC302の1つまたは複数のプロセッサまたはコアの追加の監視を実行してよい。時々、モニタモジュール316は、たとえば、コア320内に包含された追加データを含めて、これらの追加機能を実行するために、追加の情報、データ、またはデータファイルを必要とする場合がある。そのような実装形態では、モニタモジュール316は、ウェイクアップしてよく、またはそうでなければ、コア320からの追加情報に対する要求をトリガしてよい。コアがモニタモジュール316によって要求された追加情報の提供に失敗した場合、タイマ319は失効し/トリガされ、モニタモジュール316に、コアを「人質」として維持すること、および/またはコア320またはSoC IC302にリブート/再初期化させることを含めて、1つまたは複数のセキュリティ対策をとらせることになってもよい。
上記のいずれの例示的な動作において、コア320はそれ自体タイマ319を停止またはリセットしなくてよく、またはモニタモジュール316の要件に適合することを除いて、タイマ319をリセットさせなくてよい。すなわち、コア320が、セキュアなモニタモジュール316が適切にブートアップおよび/または動作することを可能にしない限り、モニタモジュール316は、コア320またはSoC IC302に完全な再初期化/リブートを強制することを含めて、コア320またはSoC IC302の任意の所望のレベルへのブートアップおよび/または動作に介入することが可能である。
図3の実施形態では、コア320が適切なコード/要求された情報を適宜な形でモニタモジュール316に提供する場合、モニタモジュール316は、その時点で、モニタモジュール316がコア320の状態を監視、検査、またはテストしてよい何らかの間隔にわたってタイマ319をリセットする。コア320の状態のそのような監視は、モニタモジュール316があらかじめ決定された時間にコア320から自動メッセージを受信すること、モニタモジュール316が停止し、次いで、コア320の状態を検査するために、あらかじめ決定された時間に再開すること、モニタモジュール316がクエリをコア320に送信し、コア320から適切な、かつ時宜を得た応答を受信すること、モニタモジュール316が、ブートアップ以来、または最後の検査/テスト以来、コア320を動作させているコードが改変されているかどうかを検査またはテストして確認すること、または、コア320の状態または、コア320を含めて、SoC IC302の任意の他の部分のセキュリティを検証またはテストする任意の他の所望の方法であってよい。
コア320の状態のテスト/監視の結果が満足なものであるか、または肯定的である場合、たとえば、すなわち、コア320の状態が許可されなかった形で変化していない場合、モニタモジュール316は、コア320および/またはSoC IC302の別の構成要素を再度監視/検査/テストするために、(上述の第1の間隔と同じであってよく、または異なってもよい、かつ/または不規則に選択された間隔であってよい)何らかの間隔にわたってタイマ319をリセットする。コア320のテスト/監視の結果が満足なものでない/否定的である場合、すなわち、状態が予想外または許可されない形で何らかの形で変化した場合、またはコア320が、適時に要求されたデータを提供しなかった場合、モニタモジュール316は、コア320またはSoC IC302の初期化/ブートアップに、または進行中の動作に介入してよい。
いくつかの実施形態では、モニタモジュール316は、タイマ319間隔より前に、初期化/ブートアップにおいて、または進行中の動作の間で、いつコア320を検査するかを決定するためにカウンタ317を実装してよい。たとえば、カウンタ317は、タイマ319間隔の80%など、タイマ319間隔の割合である時間期間にわたって設定されてよい。カウンタ317がタイマ319のトリガまたは失効前の適切な時間に達するとき、カウンタ317は、モニタモジュール316にウェイクアップさせ、かつ/またはコア320の状態の検査またはテストを実行させる。状態のそのようなテストまたは検査は、モニタモジュール316に、コア320にクエリを送信させて、モニタモジュール316に、コア320から(または、何らかの他のロケーションから)の自動メッセージを探させることによるか、または何らかの他の所望の方法もしくは手段による場合がある。したがって、タイマ319の間隔にかかわらず、かつ間隔が不規則に変化するか、または設計によって変化するかにかかわらず、モニタモジュール316のそのような実施形態は、フラグまたはトリガを受信してよく、または、タイマ319がトリガもしくは失効する前にコア320の状態を検査/テストするためにウェイクアップしてよい。他の実施形態では、別個のカウンタ317は実装されなくてよく、さらに他の実施形態では、カウンタ317は追加のタイマであってよい。
コア320の初期化/ブートアップ、および/または動作におけるモニタモジュール316の介入は、タイマ319失効のいずれかの場合において、コア320またはSoC IC302をリブートするための自動的かつ/またはハードワイヤード命令であってよい。そのような実施形態では、モニタモジュール316の初期化/ブートアップを防止することによりモニタモジュール316を迂回するためのOEM製造会社、エンドユーザ、または第三者による何らかの試行は、モニタモジュール316が適切にブートされて実行するまで、コア320および/またはSoC IC302に再初期化/リブートし続けさせる。
同様に、マルウェアの挿入によるなど、初期化/ブートアップまたは動作の間にコア320を望まれない形で変化させる何らかの試行はまた、モニタモジュール316にコア320および/またはSoC IC302をリブートさせ、コア320に対する(または、コア320からモニタモジュール316に対する)望まれないマルウェアの設置の除去または防止を支援する。このようにして、本システム200/300は、セキュリティ特徴に関する電力消耗および/または物理的なSoC IC202/302チップエリアを最小限に抑えながら、(リモートコンピュータシステムを監視することなど)外部のシステムまたは構成要素に依存せずに、SoC IC202/302自体に対するロバストなセキュリティを提供する。
他の実装形態では、コア320のブートアップおよび/または動作におけるモニタモジュール316の介入は、コア320またはSoC IC302の自動リブートよりもより複雑な場合があり、任意の所望のポリシー、動作パラメータ、セキュリティ状態などに基づいて異なる場合がある。たとえば、PCDが企業の従業員に発行される多くのPCDのうちの1つである企業設定では、モニタモジュール316がコア320内で検出する問題のタイプに応じて、コア320との問題の場合、コア320またはSoC IC302の他の構成要素のいくつかの機能だけを制限することが望ましい場合がある。たとえば、そのような実装形態では、モニタモジュール316が、適切なデジタル著作権管理(DRM)なしのメディアコンテンツがコア320を使用してPCD上で再生されることが試行されていることを検出した場合、タイマ319がトリガされた後でコア320をリブートする代わりに、モニタモジュール316は、コア320がビデオエンコーダ334にアクセスすることを単に無効化および/または防止してよい。
この例を続けると、モニタモジュール316がコア320に関してあるタイプのあらかじめ定義された問題を検出した場合、企業は、そのPCDユーザが電子メールに対するアクセスおよび/または電話呼出しを行う能力を依然として有することを望む場合がある。図3に示したように、そのような実装形態では、タイマ319がトリガまたは失効した場合、モニタモジュール316は、コア320に再初期化/リブートさせなくてよく、代わりに、コア320および/または他のコアが、セルラ呼出しを行うかもしくは受信すること、または電子メールを読み取ることを除いて、USBコントローラ340、ネットワークカード314、モデムデバイス/RFトランシーバ368、ビデオエンコーダ334および/またはSoC IC302またはPCDの他の構成要素など、様々な構成要素にアクセスすることを無効化および/または防止してよい。
このようにして、コア320にリブートさせることに加えて、またはその代わりに、モニタモジュール316は、タイマ319の失効時に、所望の何らかの措置をとるか、または引き起こしてよい。モニタモジュール316が行ってよいそのような措置は、以下を含むが、これらに限定されない、すなわち、コア320および/またはエンドユーザが、写真、電子メール、テキストメッセージ、企業のパスワードまたは鍵など、PCD上に記憶されたある種の材料、ファイル、またはデータにアクセスするのを防止すること、コア320が、モデム、wifi、またはBluetoothの接続性など通信周辺装置、加速度計などのセンサ、またはGPSレシーバを含めて、SoC IC302および/またはPCDの様々な構成要素にアクセスすることを無効化または防止すること、CPU110またはCPU110の部分/コア120、122、124により遅く実行させること、バッテリー管理を終了させて、不十分なバッテリー寿命をもたらすこと、イベントのログ入力を維持して、タイマ319にそのようなログ入力をトリガさせること、および/または(企業サーバなど)リモートサーバまたはウェブサイトに報告させること、エンドユーザが応答しなければならないポップアップダイアログ/警告など、警告をエンドユーザに送信すること、および/またはカメラ148(図1参照)などのある種の構成要素を顔認識のために使用すること、またはネットワークカード314などのある種の構成要素をリモート目的地に直接イベントを報告するために使用することをコア320に要求すること、またはそのための統制権をコア320から奪うこと、である。
さらに、モニタモジュール316は、タイマ319のトリガに対する応答がティア化されるように構成されてよい。たとえば、コア320に伴う/関するある種のタイプの問題によるタイマ319の失効の場合、モニタモジュール316はある措置をとってよい。コア320に伴う/に関する異なるタイプの問題の場合、モニタモジュール316は、異なるかつ/またはより厳しい措置をとってよい。応答のティア化を含めて、モニタモジュール316による措置は、いくつかの実施形態では、タイマ319が失効する回数など、何らかの所望の要因またはパラメータに応じてよいか、またはそれらに従って異なってよい。そのような実施形態では、モニタモジュール316は、タイマ319の第1のトリガ/失効に応答してそれほど厳しくない(または、まったく厳しくない)措置をとってよく、第2、第3、第4など、タイマ319の後続の失効に対して異なるかつ/またはより厳しい措置をとってよい。
他の実施形態では、(コア320の状態の検査/テスト間の時間間隔の長さを含めて)モニタモジュール316がとる措置、またはタイマ319のトリガに対する応答は、PCDに関するポリシーシステムおよび/またはセキュリティレベルまたはセキュリティ状態に基づいてよい。図4は、図2および/または図3のシステムが動作してよい、いくつかの例示的な状態の一実施形態を示す。図4に示すように、モニタモジュール216/316は、いくつかの実施形態では、PCDに関する一連のセキュリティレベル状態の下で/に従って動作してよい。そのようなセキュリティレベル状態は、必要に応じて、モニタモジュール216/316が、ブートアップの後、コア220/320の進行中の活動および/または状態をいつ、どのように監視するかに関する規則を提供するために適用されてよい。
図4に示す実施形態では、そのようなセキュリティレベル状態は、モニタモジュール216/316の適切な動作を確実にする成功裏の初期化/ブートアップ後に、モニタモジュール216/316において、またはモニタモジュール216/316によって実装されてよい。様々な実施形態では、そのようなセキュリティレベル状態は、PCDのエンドユーザ、エンドユーザにPCDを発行する企業のIT部門によって、またはデバイスのタイプ/デバイスが使用される目的に基づいて製造会社によって設定または選択されてよい。さらに、例示的なセキュリティレベル状態は、任意の所望のパラメータ、イベント、またはタイマ219/319のトリガまたは失効を含む要因に応じて自動的に、を含めて、必要に応じて変更されてよい。
図4は、その第1が最小セキュリティ状態405である、4つの例示的なセキュリティレベル状態を示す。この状態は、図4に示す最小セキュリティ状態を提供する。最小セキュリティ状態405は、モニタモジュール216/316によるコア220/320の検査またはテストの間により長い間隔をもたらす、タイマ219/319に関するより長い間隔を含んでよい。さらに、最小セキュリティ状態405は、タイマ219/319が失効する場合、モニタモジュール216/316によってそれほど厳しくない措置をもたらしてよい。
たとえば、一実施形態では、モニタモジュール216/316は、タイマ219/319の第1の失効/トリガに関して何の措置をとらなくてもよく、代わりに、タイマ219/319の第2のまたはより後続のトリガ後にだけ措置をとってよい。いくつかの実装形態では、モニタモジュール216/316は、メモリ内にイベントを記録すること、または図3のモニタモジュール316のカウンタ317など、カウンタを用いてイベントを追跡することによってなど、任意の所望の手段によって、タイマ219/319の複数のトリガの数/タイプ/タイミングなどを追跡してよい。さらに、最小セキュリティ状態405は、タイマ219/319トリガの場合、モニタモジュール216/316に最小限に破壊的な措置をとらせてよい。そのような措置は、いくつかの実施形態では、イベントをファイルに(局所的にまたは遠隔的に、のいずれかで)記録すること、および/またはPCDのエンドユーザにメッセージを表示することを含むことが可能である。
別の例示的なセキュリティレベル状態は、図4に示したようにDRM状態410であってよい。いくつかの実施形態では、そのようなDRM状態410は、ビデオエンコーダ134(図1参照)またはSoC IC202/302もしくはPCDの他の構成要素が、(オーディオファイルまたはビデオファイルなどの)メディアファイルがPCD上で再生もしくは表示されていること、またはPCD上でまさに再生/表示されようとしていることを決定するときはいつでも実装されてよい。他の実施形態では、そのようなDRM状態410は、タイマ219/319がトリガし、モニタモジュール216/316が、メディアファイルが再生/表示されていること、またはメディアファイルを表示/再生することがタイマ219/319をトリガさせることを決定するときはいつでも実装されてよい。
図4の示されたDRM状態410では、タイマ219/319は、中程度の長さの時間間隔で動作するが、所望の任意の長さで動作してよい。さらに、示されたDRM状態410では、モニタモジュール216/316は、タイマ219/319が失効し、PCDがメディアの再生を試行するときに措置をとる。いくつかの実施形態では、メディアは適切なDRM保護を有さない場合があるか、またはエンドユーザは、メディア上のDRM保護を克服または回避するためにPCDの使用を試行している場合がある。そのような実施形態では、モニタモジュール316は、コア320(図3参照)などのコアによるオーディオエンコーダまたは視覚エンコーダ334のうちの1つまたは複数の何らかの動作を防止するように働く場合がある。他の実施形態では、モニタモジュール316は、選択されたメディアファイルおよび/またはメディアファイルのタイプに関してだけ、コア320(図3参照)などのコアによるオーディオエンコーダまたは視覚エンコーダ334のうちの1つまたは複数の動作だけを防止するように働く場合がある。
図4に示すように、様々な実施形態では、他の増大されたレベルのセキュリティ状態も可能である。たとえば、図4は、モニタモジュール216/316によって前に論じた最小セキュリティ状態405よりもロバストなセキュリティを提供し、かつ/またはより侵襲的な措置を可能にするように設計または構成されてよい中間セキュリティ状態415を示す。例示的な中間セキュリティ状態415は、中程度のタイマ219/319間隔長さを提供するが、任意の所望の間隔長さが実装されてよい。
さらに、図4の中間セキュリティ状態415では、モニタモジュール216/316は、タイマ219/319が失効するときはいつでも措置をとる。たとえば、タイマ319が失効することに応じて、モニタモジュール316は、USBコントローラ340、ネットワークカード314、モデムデバイス/RFトランシーバ368、および/またはビデオエンコーダ334(図3参照)など、1つまたは複数の周辺装置に対するコア320によるアクセスを無効化してよい。
いくつかの実施形態では、タイマ319の単一の失効は、モニタモジュール316に周辺装置のすべてに対するアクセスを無効化させてよい。他の実施形態では、タイマ319の第1のトリガまたは失効は、コア320がUSBコントローラ340(図3参照)にアクセスすることができないという結果をもたらしてよいのに対して、タイマ319の第2のまたは他の後続のトリガは、コア320が1つまたは複数の追加の周辺装置にアクセスすることができないという結果をもたらしてよい。タイマ319の失効ごとにモニタモジュール316によって無効化される周辺装置の順序および/または周辺装置の数は、様々な実施形態では、必要に応じて異なってよい。
代替または追加として、中間セキュリティ状態415のいくつかの実施形態では、モニタモジュール316はまた、PCDが企業システムの一部である場合、ウェブサイトまたは企業サーバなど、リモートサーバにログまたは報告を送信してもよい。モニタモジュール316は、そのような通信に必要なインターフェース/ドライバ/等々の制御をモニタモジュール316(または、図2のモニタモジュール216の場合、モニタCPU217)に譲るようにコア320またはSoC IC302に要求することによって、または任意の他の所望の手段によって、そのようなログまたは報告を送信させてよい。
最後に、図4は、様々な実施形態では、エンドユーザ、企業IT職員によって判定されるか、またはOEM製造会社によってあらかじめ設定されるように、SoC IC202/302に関するさらなるセキュリティが所望されるときに実装されてよい第4の最大セキュリティ状態420を示す。いくつかの実装形態では、最大セキュリティ状態420は、モニタモジュール216/316に関するデフォルト設定であってよい。最大セキュリティ状態420は、コア220/320の状態のより頻繁な検査またはテストにつながる短いタイマ219/319間隔を含んでよいか、またはそのような間隔で構成されてよい。
タイマ219/319の何らかのトリガに応じて、モニタモジュール216/316は、様々な実装形態では、最大セキュリティ状態420で、コア220/320および/またはSoC IC202/302全体を自動的に再初期化/リブートしてよい。中間セキュリティ状態415と同様に、最大セキュリティ状態420のいくつかの実施形態ではまた、モニタモジュール316は、PCDが企業システムの一部である場合、ウェブサイトまたは企業サーバなど、リモートサーバにログまたは報告を送信してもよい。モニタモジュール316は、そのような通信に必要なインターフェース/ドライバ/等々の制御をモニタモジュール316(または、図2のモニタモジュール216の場合、モニタCPU217)に譲るようにコア320に要求することによって、または任意の他の所望の手段によって、そのようなログまたは報告を送信させてよい。
図4は4つの異なるセキュリティレベル状態だけを示すが、他の実施形態はより少ないまたはより多いセキュリティレベル状態を有する場合があることを理解されたい。同様に、様々な実施形態は、図4に示したセキュリティレベル状態とは異なる、かつ/または異なる種類のセキュリティレベル状態を有する場合がある。たとえば、他の実施形態は、より多い、より少ない、または、図4に示したDRM状態410など、異なるイベントベースのセキュリティレベル状態を有する場合がある。さらに、モニタモジュール216/316に利用可能なセキュリティレベル状態の数および/またはタイプは経時的に異なってよい。たとえば、セキュリティレベル状態の数および/またはタイプは、必要に応じて、様々な時点においてエンドユーザによって選択および/または変更されてよいか、またはモニタモジュール216/316と通信している様々な時点において企業IT職員によって選択および/または変更されてよい。さらに、図4に示すセキュリティ状態の代わりに、またはそれらに加えて、必要に応じて、ポリシーおよび/または規則もしくはアルゴリズムのセットとして、様々なレベルまたはタイプのセキュリティが実装されてよい。
図5Aを参照すると、PCD内の1つまたは複数のプロセッサまたはコアに関する改善されたセキュリティのための方法の例示的な実施形態を説明するフローチャートが示されている。方法500は、モニタモジュール(図2のモニタモジュール216または図3のモニタモジュール316など)が初期化されるブロック510から開始する。いくつかの実施形態では、ブロック510の初期化は、SoC IC202/302および/またはPCDの完全な停止からなどの初期化を含んでよい。そのような初期化/ブートアップの一例は、PCDまたはSoC IC202/302が完全なバッテリー消耗から電源投入されたときである。他の実施形態では、ブロック510の初期化は、代わりに、モニタモジュール216/316の一時的な電力低減からの「ウェイクアップ」を含んでよい。そのような「ウェイクアップ」の例は、モニタモジュール216/316が、単にモニタモジュール216/316の電力節約のアイドルモードまたはスリープモードからウェイクアップ/電源投入することである。
初期化/ウェイクアップ時に、モニタモジュール216/316は、ブロック512で、タイマ219/319を設定または検査する。いくつかの実施形態では、タイマ219/319は、前に設定されており、ブロック512で、モニタモジュール216/316は、ウェイクアップして、タイマ219/319を検査する。他の実施形態では、モニタモジュール216/316は初期化/ブートアップしており、モニタモジュール216/316は、ブロック512で、その間にコア220/320が、モニタモジュール216/316が初期化/ブートアップすること、コア220/320がモニタモジュール216/316が初期化/ブートアップするために必要とされる任意のコードに対する要求に応答すること、またはモニタモジュール216/316による適切な初期化/ブートアップを確実にするために必要とされる任意の他の措置を可能にするための適切なコードを提供すべき時間間隔にモニタタイマ219を設定することができる。
一例として図2のシステム200を使用すると、モニタモジュール216は、ブロック514で、モニタブートコード225aのロードを要求または試行してよい。ブロック514のこの要求/ロードは、図2に示したモニタモジュール216のモニタCPU217によって達成されてよい。上で論じたように、モニタモジュール216の電力消費および/またはモニタモジュール216に要求されるSoC202のチップエリアを最小限に抑えるために、モニタモジュール216のいくつかの実施形態は、図2のモニタメモリ218など、限定されたオンボードメモリまたは専用メモリを有する場合がある。
そのような実施形態では、モニタモジュール216が完全に初期化/ブートアップするために必要とされるコード225aは、モニタモジュール216から離れて位置してよく、モニタモジュール216が初期化/ブートアップすることを可能にするためにモニタモジュール216に提供されてよい。一例として図2の例示的なシステム200を使用すると、図2のメモリ223は、モニタブートコード225aが記憶されるフラッシュメモリであってよい。モニタモジュール216が方法500に従って初期化/ブートアップし始めるとき、コア220のCPU221は、いくつかの実施形態では、メモリ223からブートコード225aを取り出し、ブロック512で、モニタモジュール216のCPU217にブートコード225aを通信してよい。
上記の例を続けると、方法500は、ブロック516で、たとえば、コア220がモニタブートコード225aを適切に提供しなかったこと、および/またはモニタブートコード225aに関するモニタモジュール216からの要求に時宜を得て応答しなかったことの結果として、タイマ219が失効/トリガしたかどうかを確認するために検査する。上で論じたように、タイマ219は、図2に示したように、モニタモジュール216の内部であってよい。他の実施形態では、計時機能は、複数の構成要素によって、かつ/または図3に示したシステム300の内部カウンタ317および外部カウンタ319など、モニタモジュール316に外部の1つまたは複数の構成要素によって実行されてよい。
ブロック516の判定は、時間間隔の経過により、タイマ219/319が失効/トリガしたかどうかを理解するために、タイマ219/319を評価するモニタモジュール216/316(または、モニタモジュール216のCPU217)などの構成要素によって行われてよい。他の実施形態では、ブロック516の判定は、タイマ間隔の経過により、タイマ219/319が失効/トリガするとき、タイマ219/319が何らかの信号または通信を自動的に送信する結果であってよい。どのように実装されるかにかかわらず、タイマ219/319は、コア220/320によって(または、モニタモジュール216/316が監視する他のプロセッサまたはコアによって)リセットされなくてよい。
したがって、コア220/320がモニタモジュール216/316の予想または要件に従って動作しない限り、タイマ219/319は、ブロック520でデータ/ブートコードが受信される前に、方法500のブロック516で失効することになる。タイマ219/319が失効した場合、図5Aの方法は、ブロック518でセキュリティ対策を実装する。モニタモジュール216の初期化の例の場合、セキュリティ対策は、方法500を最初からやり直させることになる、SoC202の自動再開始/再初期化であってよい。
他の実施形態では、タイマ219の失効またはトリガの結果としてとられてよいセキュリティ対策は、以下を含むが、これらに限定されない、すなわち、コア220および/またはエンドユーザが、写真、電子メール、テキストメッセージ、企業のパスワードまたは鍵など、PCD上に記憶されたある種の材料、ファイル、またはデータにアクセスするのを防止すること、コア220が、モデム、wifi、またはBluetoothの接続性など通信周辺装置、加速度計などのセンサ、またはGPSレシーバを含めて、SoC IC202および/またはPCDの様々な構成要素にアクセスすることを無効化または防止すること、CPU110またはCPU110の部分/コア120、122、124により遅く実行させること、バッテリー管理を終了させて、不十分なバッテリー寿命をもたらすこと、イベントのログ入力を維持して、タイマ219にそのようなログ入力をトリガさせること、および/または(企業サーバなど)リモートサーバまたはウェブサイトに報告させること、エンドユーザが応答しなければならないポップアップダイアログ/警告など、警告をエンドユーザに送信すること、および/またはカメラ148(図1参照)などのある種の構成要素を顔認識のために使用すること、またはネットワークカード314などのある種の構成要素をリモート目的地に直接イベントを報告するために使用することをコア220に要求すること、またはそのための統制権をコア220から奪うこと、である。そのようなセキュリティ対策は、セキュリティポリシーの一環として実装されてよく、かつ/または図4に関して上で論じた様々なセキュリティレベルを含む。
タイマ219がブロック516で失効しない場合、方法500は、ブロック522に進み、ここで、モニタモジュール216の初期化の例では、モニタモジュール216がコア220および/またはSoC202の他の構成要素を監視することを可能にするような形でモニタモジュール216が適切に初期化/ブートすることを確実にするために、モニタブートコード225aが検証される。そのような検証は、様々な実施形態では、デジタル署名、鍵などを用いて、かつ/またはモニタCPU217が、モニタメモリ218内に記憶された1つまたは複数の値を用いて、提供されたモニタブートコード225aのデジタル署名、鍵、などを検査することによって達成されてよく、または所望の任意のコード検証手段によって達成されてよい。
モニタモジュール216セキュリティ対策を回避するためにモニタブートコード225aの改ざんされたバージョンを提供することによってなど、モニタブートコード225aがブロック522で適切に検証されない場合、上で論じたように、ブロック518でセキュリティ対策が実装される。いくつかの実施形態では、ブロック522のデータ検証の欠如によってトリガされる、ブロック518で実装される実際のセキュリティ対策は、トリガイベントがブロック516におけるタイマ失効である場合に実装されることになるセキュリティ対策とは異なってよいことに留意されたい。他の実施形態では、トリガイベントにかかわらず、ブロック518で、同じセキュリティ対策が実装されてよい。
ブロック522でデータが検証される場合、タイマ219は、ブロック524でモニタモジュール216によってリセットまたは無効化される。ブロック524でタイマ219をリセットまたは無効化することによって、図5Aの方法500の実施形態は、コア220および/またはSoC202が動作を継続することを可能にし、モニタモジュール216はSoC202の1つまたは複数の構成要素を監視し続けてよい。
たとえば、方法500によるモニタモジュール216/316の適切な初期化の後、タイマ219/319は、ブロック524であらかじめ決定された時間期間にわたって設定されてよく、モニタモジュール216/316は、次の所望の監視イベントまで、アイドルモードまたはスリープモードなど、低減された電力状態または電力モードに置かれてよい(または、停止されてよい)。
そのような「ウェイクアップ」実施形態では、モニタモジュール216/316は、ブロック510で起動されてよい。モニタモジュール216/316は、図3のカウンタ317のようなカウンタからなど、トリガによって、または任意の他の所望の手段によって、起動されてよい。方法500の「ウェイクアップ」実装形態で、モニタモジュール216/316は、上で論じたように、ブロック514でコア220/320からデータを要求する前に、ブロック512で前に設定されたタイマ219/319をオプションで検査してよい(または、設定してよい)。いくつかの実施形態では、モニタモジュール216/316は、ブロック512でタイマ219/319がリセットされてよいように、タイマ219/319の失効後、ブロック510で起動されてよい。他の実施形態では、モニタモジュール216/316は、タイマ219/319が上で論じたように失効するように設定される前に、あらかじめ決定された時間にブロック510で起動されてよく、あらかじめ決定された時間は、タイマ219/319が失効するように設定される前に、モニタモジュール216/316が所望の監視を実行することを可能にするために十分である。
ブロック512でタイマ219/319が検査されるかどうかにかかわらず、モニタモジュール216/316は、ブロック514で、SoC IC202/302の1つまたは複数のコア220/320から応答および/またはデータを要求する。上で論じたように、ブロック516で、タイマが失効する/トリガされる前に、ブロック520で、要求された応答および/またはデータがコア220/320から受信されない場合、モニタモジュール216/316は、ブロック518で、コア220/320上で1つまたは複数のセキュリティ対策を実装する。そのようなセキュリティ対策は、何の措置もとらないこと、またはSoC202/302に再初期化/リブートさせることを含めて、上で論じた任意の形で実装される、上で論じた何らかのそのような措置を含んでよい。
方法500の「ウェイクアップ」例を続けると、ブロック516で、タイマが失効/トリガされる前に、ブロック520で、要求された応答または情報がコア220/320から受信される場合、モニタモジュール216/316は、ブロック522で、データをオプションで検証してよい。しかしながら、いくつかの実施形態では、セキュアかつ適切な初期ブートアップの後、ブロック522に示すように、コア220/320から受信されたデータまたは応答を検証することは望ましくないか、または必要でない場合がある。
「ウェイクアップ」例において、ブロック522でデータが検証されるかどうかにかかわらず、ブロック516でタイマが失効/トリガされる前に、ブロック520で、要求された応答および/または情報がコア220/320から受信される場合、モニタモジュール216/316は、ブロック524で、タイマ219/319を無効化するか、またはモニタモジュール216/316による次の監視イベントに対するあらかじめ決定された時間間隔になど、タイマ219/319をリセットする。
当業者が理解するように、図5Aは、PCD内のプロセッサまたはコアに関する改善されたセキュリティのための方法の1つの例示的な実施形態だけを説明している。他の実施形態では、追加のブロックまたはステップが方法500に追加されてよい。同様に、いくつかの実施形態では、図5Aに示す様々なブロックまたはステップは、図5Aに示した2つの別個のブロック/ステップではなく、たとえばブロック520および522を組み合わせて、1つの受信/検証ステップにすることなど、組み合わせてよく、または省略されてもよい。方法500のそのような変形体は本開示の範囲内である。
さらに、図5Aを含めて、本細書で説明するプロセスまたはプロセスフロー内のいくつかのステップは、説明する実施形態で機能するように、本発明に関する他のステップよりも先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を改変しない場合、本発明は、たとえば、ブロック516の前にブロック522を実行するなど、説明したステップの順序に限定されない。さらに、いくつかのステップが、本開示の範囲から逸脱することなく、他のステップの前、後、またはそれと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、たとえば、ブロック512(動作の「ウェイクアップ」モードにおけるタイマ219/319の第1の検査)および/またはブロック522(動作の「ウェイクアップ」モードにおける受信された応答/データの検証)を除去するなど、本発明から逸脱せずに、いくつかのステップは、省略されてよく、または実行されなくてもよい。方法500のそのような変形体は本開示の範囲内である。さらに、「それ以降」、「次いで」、「次に」、「後に」などの語は、ステップの順序を制限することは意図していない。これらの語は単に、例示的な方法の説明を通して読者を導くために使用される。
図6Aを参照すると、PCD内の1つまたは複数のプロセッサまたはコアに関する改善されたセキュリティを提供するための方法の例示的な実装形態の追加の態様を説明するフローチャートが示されている。図6Aに示す例示的な方法600では、図5Aの方法500に従ってなど、モニタモジュール216/316の適切な初期化/ブートアップを保証した後、方法600は、ブロック610で、コア220(図2)/320(図3A)など、1つまたは複数のコアの状態を監視する。ブロック610のコア220/320の状態を監視するステップは、いくつかの実施形態では、ブートアップ以来、および/または最後の検査/テスト以来、コア220/320に関するコードが変更されているかどうかを検査またはテストすることによってなど、コア220/320の状態を検査するステップを含んでよい。
モニタモジュール216/316は、図2のモニタモジュール216のCPU217がコア220のCPU221から通信を受信することによってなど、この検査またはテストを実行してよい。コア220からのそのような通信は、上で論じた、セキュリティ対策、セキュリティポリシー、またはセキュリティ状態の一部としてコア220によって開始されてよい。いくつかの実施形態では、通信は、モニタモジュール216からの要求または要望に対するコア220による応答であってよい。そのような実施形態では、コア220から通信される情報は、デジタル署名、鍵、またはそこからコア220に関するコードが、コア220の前のバージョンから改変されているかどうかが判定されてよい他のトークンを含んでよい。
他の実施形態では、ブロック610でコア220/320の状態を監視するステップは、コア220/320が実行しているか、またはまさに実行しようとしているという活動に関する情報を受信することなど、コア220/320の動作を監視するステップを含んでもよい。そのような実施形態の一例は、コア220/320が、ビデオエンコーダ334を動作させている場合があるか、またはGPUなどの別のプロセッサにビデオエンコーダ334を動作させている場合がある、上記の図3Aおよび図4の議論からであろう。そのような実装形態では、コア220/320の状態を監視するステップは、ビデオエンコーダ334の動作または動作させる試行、ならびに、DRM保護が観測されているかなど、ビデオエンコーダ334上で再生されるべきメディアの数、タイプ、詳細などに留意するステップを含んでよい。
この場合も、ビデオエンコーダ334上でメディアを再生する、図3および図4に関して論じた上記の例を続けると、いくつかの実施形態では、モニタモジュール316は、ビデオエンコーダ334を動作させているコア320の状態の検査またはテストを実行してよい。状態のこの監視または検査は、図3のモニタモジュール316がコア320から通信を受信することによって達成されてよい。コア320からのそのような通信は、上で論じた、セキュリティ規則、セキュリティポリシー、またはセキュリティ状態の一部として、コア320によって開始されてよい。代替で、いくつかの実施形態では、通信は、モニタモジュール316からの要求または要望に対するコア320による応答であってよい。通信における情報は、コア320がセキュリティポリシーに従って、かつ/またはモニタモジュール320によって予想される方法で動作しているかどうかを判定することを可能にするために、モニタモジュール316によって所望されるか、または要求される任意の情報であってよい。
さらに他の実施形態では、ブロック610におけるコア220/320の状態を監視するステップは、モニタモジュール216/316が他の構成要素と通信することが可能にされるか否かに留意するステップを含んでよい。そのような実施形態の一例は、モニタモジュール216/316が、規則、ポリシー、および/またはセキュリティレベル状態更新に関してリモートコンピュータ/企業サーバに問い合わせているモニタモジュール216/316に定期的にスケジュールされた更新を通信する企業サーバなど、リモートコンピュータと通信することが可能にされるか否かであろう。そのような実装形態では、コア220/320の状態を監視するステップは、コア220/320が、モニタモジュール216/316が、そのような通信をもたらすために、および/またはリモートコンピュータから開始された、またはリモートコンピュータによって送信された通信を受信するために必要なSoC IC202/302構成要素の制御の通信および/または放棄を可能にするか否かに留意するステップを含んでよい。
PCDが使用される目的、エンドユーザの要望、および/または許可された第三者(PCDの一部であってよい企業システムなど)の要望に応じて、ブロック610の特定の監視は、いくつかの実装形態では異なってよい。たとえば、方法600がブロック610の第1の監視/テストを実行するとき、第1のセキュリティポリシーまたはセキュリティレベル状態(図4に示した状態のうちの1つなど)が実施され、第1の監視/テストを特定の方法で、かつ/またはコア220/320に関する特定の情報の第1の監視/テストを実行させてよい。しかしながら、方法600がブロック610の監視を二度目に実行する時点で、第2のセキュリティポリシーまたはセキュリティレベル状態(図4に示した状態のうちの異なる1つなど)が実施され、第1の監視とは異なる方法で、かつ/またはコア220/320に関して、第1の監視とは異なる情報の第2の監視を実行させてよい。
例示的な方法600は、次いで、ブロック612で、コア320の状態が変化したかどうかを判定する。ブロック612における判定は、監視のタイプおよび/またはブロック610の監視が実行された方法に応じてよい。ブートアップ以来のコア220に関するコードの変更を監視することを含めて、ブロック610のコア220の状態を監視する例を使用して、ブロック612の判定は、モニタモジュール216のCPU217が、コア220コードが変化したかどうかを判定するために、受信されたデジタル署名、鍵、トークンなどをモニタメモリ218内に記憶された値と比較することであってよい。
ブロック612で判定がどのように行われるかにかかわらず、判定が、コア220/320が適切に動作していること、たとえば、ブートアップ以来、状態が変化したように改ざんされていない場合、タイマ219/319は、ブロック614で何らかの時間間隔にわたってリセットされ、方法600はブロック610に戻り、コア220/320の状態を監視し続ける。タイマ219/319がトリガ/失効することを可能にするのではなく、タイマ219/319をリセットすることによって、方法600は、コア220/320が適切に動作しているとき、かつ/または適切なコードを実行しているとき、(コア220/320またはSoC IC202/302を再初期化/リブートすることなど)コア220/320に対するセキュリティ対策の実装を回避する。
上で論じたように、タイマ219/319は、コア220/320またはSoC IC202/302の他の構成要素によってリセットされなくてよく、モニタモジュール216/316によってだけリセットされてよい。さらに、タイマ219/319は固定された時間間隔に常にリセットされている必要はない。いくつかの実施形態では、タイマ219/319がリセットされる時間間隔は、異なってよく、いくつかの実装形態では、任意であってよい。時間間隔が異なるとき、時間間隔の長さは、セキュリティポリシーおよび/またはセキュリティレベル状態(図4に示したセキュリティレベル状態など)を含めて、任意の要因または所望の考慮事項に基づいてよい。
さらに、図2に示したシステム200など、いくつかの実装形態では、計時機能をリセットするステップは、タイマ219をリセットするステップと、モニタモジュール216の内部カウンタ217をリセットするステップの両方をさらに含んでよい。上で論じたように、そのような内部カウンタ217を実装およびリセットすることは、方法600が、モニタモジュール216/316が起動すること、および/またはブロック610におけるコア220/320の状態の次の監視が、方法600に関してそのような監視を有用にするために、タイマ219/319の失効/トリガの十分前に実行されることを確実にすることを可能にしてよい。
ブロック612における判定が、コア220/320が適切に動作していないということ、たとえば、コア220/320が、ブートアップ以来、不適切に改ざんまたは変更されているということである場合、図6Aの方法600は、ブロック616で、タイマ219/319が失効したかどうかを判定する。ブロック616の判定は、時間間隔の経過により、タイマ219/319が失効/トリガしたかどうかを理解するために、タイマ219/319を評価するモニタモジュール216/316(または、モニタモジュール216のCPU217)などの構成要素によって行われてよい。他の実施形態では、ブロック616の判定は、タイマ間隔の経過により、タイマ219/319が失効/トリガするとき、タイマ219/319が何らかの信号または通信を自動的に送信する結果であってよい。
図6Aに示すように、どのように行われるかにかかわらず、ブロック616における判定が、タイマ219/319が失効していないということである場合、方法600はブロック610に戻り、コア220/320を監視する。さらに、いくつかの実装形態では、コア220/320状態を継続的に監視するために直ちにブロック616からブロック610に戻るのではなく、方法600は、代わりに、ブロック616で、モニタモジュール216/316に電源を切断させるか、または電力消費を低減するために、指定された期間時間にわたってスリープモードもしくはアイドルモードに入らせてもよい。そのような実施形態では、方法のブロック610に戻ることは、上記の図5Aに関する「ウェイクアップ」モードの議論と同様に、ブロック610でモニタモジュール216/316をウェイクアップさせることを含んでよい。
図2のモニタモジュール216内にカウンタ217を備えるシステム200など、いくつかの実施形態では、カウンタ217の時間間隔は、タイマ219が失効/トリガするように設定される直前に、方法600のブロック610の監視が生じることを確実にしてよい。そのような実装形態では、ブロック612でコア220の状態が変化したという判定の後、方法はまた、ブロック616でタイマ219が失効したと直ちに判定することが可能であってもよい。
他の実装形態では、ブロック612の判定が、コア220/320の状態が変化したということである場合ですら、ブロック616における判定は、方法がブロック610でコア220/320の状態の監視に戻るように、タイマ219/319が失効していないことであってよい。このようにして、いくつかの実施形態では、タイマ219/319が失効すべきである前に、監視の2つ以上の「サイクル」が可能である。方法600のそのような実施形態では、タイマ219/319が失効し、コア220/320がリブートする前に(または、何らかの他のセキュリティ対策が実装される前に)コア220/320内の欠陥および/またはブロック612で判定されたコア220/320の動作を「是正する」ことが可能であってよい。
他方で、ブロック616の判定が、タイマ219/319が失効またはトリガしたということである場合、方法600はブロック618でセキュリティ対策を検査する。タイマ219/319の失効またはトリガの結果としてとられてよいセキュリティ対策は、以下を含むが、これらに限定されない、すなわち、コア220/320および/またはエンドユーザが、写真、電子メール、テキストメッセージ、企業のパスワードまたは鍵など、PCD上に記憶されたある種の材料、ファイル、またはデータにアクセスするのを防止すること、コア220/320が、モデム、wifi、またはBluetoothの接続性など通信周辺装置、加速度計などのセンサ、またはGPSレシーバを含めて、SoC IC202/302および/またはPCDの様々な構成要素にアクセスすることを無効化または防止すること、CPU110またはCPU110の部分/コア120、122、124により遅く実行させること、バッテリー管理を終了させて、不十分なバッテリー寿命をもたらすこと、イベントのログ入力を維持して、タイマ219/319にそのようなログ入力をトリガさせること、および/または(企業サーバなど)リモートサーバまたはウェブサイトに報告させること、エンドユーザが応答しなければならないポップアップダイアログ/警告など、警告をエンドユーザに送信すること、および/またはカメラ148(図1参照)などのある種の構成要素を顔認識のために使用すること、またはネットワークカード314などのある種の構成要素をリモート目的地に直接イベントを報告するために使用することをコア220/320に要求すること、またはそのための統制権をコア220/320から奪うこと、である。
ブロック618でセキュリティ対策を検査するステップはまた、そのような状況下で、何のセキュリティ対策が利用可能であるかを検査するステップを含んでもよい。利用可能なセキュリティ対策は、いくつかの実施形態では、何らかの所望の要因またはパラメータに応じてよい。たとえば、上で論じたように、コア220/320によるあるタイプの欠陥/コア220/320に関するあるタイプの問題によるタイマ219/319の失効またはトリガは、あるタイプのセキュリティ対策を必要とする場合がある。他方で、コア220/320による異なるタイプの欠陥/コア220/320に関する異なるタイプの問題は、異なるタイプの、かつ/またはより厳しいセキュリティ対策を必要とする場合がある。さらに、利用可能なセキュリティ対策は、タイマ219/319がトリガされる回数に応じてよく、またはそれに従って異なってよい。そのような実施形態では、タイマ219/319の第1の失効またはトリガに応じて、第1の、それほど厳しくない(または、まったく厳しくない)セキュリティ対策が利用可能であってよいのに対して、タイマ219/319の第2の、第3の、第4のなど、後続の失効またはトリガに関して、異なる、かつ/またはより厳しいセキュリティ対策が利用可能であってよい。
さらに、いくつかの実施形態では、ブロック618におけるセキュリティ対策を検査するステップは、そのようなセキュリティポリシー、セキュリティレベル、セキュリティ状態が経時的に異なってよいか、または変化してよいことに留意して、何らかの適用可能なセキュリティポリシーおよび/または実施されているセキュリティレベルもしくはセキュリティ状態に関して利用可能な/要求されるセキュリティ対策を検査するステップを含んでもよい。たとえば、そのような実施形態では、図4に示したセキュリティレベル状態など、PCDに関して様々なセキュリティレベル状態が生じる場合がある。したがって、ブロック618でセキュリティ対策を検査するステップはまた、その時点で(もしあれば)、かつタイマ219/319トリガまたは失効の状況下で、実施されているセキュリティレベル状態によって何のセキュリティ対策が利用可能であるか、かつ/または命じられているかを判定するステップを含んでもよい。
図6Aに示すように、方法600は、ブロック620で、セキュリティ対策がコア220/320および/またはSoC IC202/302の再初期化/リブートを要求するか否かを判定する。そのようなリブートが要求される場合、方法600は、ブロック624でコア220/320(および/または、必要に応じて、SoC IC202/302)を再初期化して、コア220/320(および/またはSoC202/302)初期化/ブートプロセスを開始するために、図5Aの方法500の初めに戻ることによって終了する。
他方で、そのようなリブートが要求されない場合、方法600は、ブロック622で要求されるセキュリティ対策を実装して、上で論じたブロック614に戻り、ここで、タイマ219/319がリセットされ、上記のブロック610に戻り、ここで、(論じたように、スリープモードまたはアイドルモードを用いてなど)連続的にまたは断続的に、のいずれかでコア220/320の状態が監視される。
当業者が理解するように、図6Aは、PCD内のプロセッサまたはコアに関する改善されたセキュリティのための方法の1つの例示的な実施形態だけを説明している。他の実施形態では、追加のブロックまたはステップが図6Aに示した方法600に追加されてよい。同様に、いくつかの実施形態では、図6Aに示す様々なブロックまたはステップは、図6Aに示した2つの別個のブロック/ステップではなく、たとえばブロック618および620を組み合わせて、1つの検査/判定ステップにすることなど、組み合わせてもよく、または省略されてもよい。方法600のそのような変形体は本開示の範囲内である。
さらに、図6Aを含めて、本細書で説明するプロセスまたはプロセスフロー内のいくつかのステップが、説明する実施形態で機能するように、本発明に関する他のステップよりも先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を改変しない場合には、本開示は、説明したステップの順序に限定されない。さらに、いくつかのステップが、本開示の範囲から逸脱することなく、他のステップの前、後、またはそれと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップは、省略されてよく、または実行されなくてよい。方法600のそのような変形体は本開示の範囲内である。さらに、「それ以降」、「次いで」、「次に」、「後に」などの語は、ステップの順序を制限することは意図していない。これらの語は単に、例示的な方法の説明を通して読者を導くために使用される。
両方の方法500および600に関して上で説明した様々な動作、方法、または機能は、様々なハードウェアおよび/またはソフトウェアの構成要素/モジュールによって実行されてよい。そのような構成要素および/またはモジュールは、様々な説明した動作、方法、または機能を実行するための手段を提供する場合がある。概して、対応する等価物であるミーンズプラスファンクションを有する、図に示した方法が存在する場合、動作ブロックは類似に番号付けされたミーンズプラスファンクションに対応する。たとえば、図5Aに示したブロック510〜524は、図5Bに示したミーンズプラスファンクションブロック510'〜524'に対応する。同様に、図6Aに示したブロック610〜624は、図6Bに示したミーンズプラスファンクションブロック610'〜624'に対応する。
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示した発明を実装するコンピュータコードを書くことができるか、または実装するのに適したハードウェアおよび/もしくは回路を特定することができる。したがって、特定の1つのセットのプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明の作製方法および使用方法を十分に理解するのに必要であるとは見なされない。特許請求されるプロセッサ実施プロセスの本発明の機能性は、種々のプロセスフローを例示する場合がある図面とともに、上述の説明において、より詳細に説明されている。
上で示したような1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてよい。ソフトウェアにおいて実装される場合には、その機能は、非一時的プロセッサ可読媒体のようなコンピュータ可読媒体上に1つまたは複数の命令またはコードとして記憶または送信されてよい。コンピュータ可読媒体は、ある場所から別の場所へのプログラムの転送を容易にする任意の媒体を含む、データ記憶媒体とデータ通信媒体との両方を含む。
記憶媒体は、コンピュータまたはプロセッサによってアクセスされてよい任意の利用可能な媒体であってよい。限定はしないが、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。本明細書において使用されているように、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)("CD")、レーザディスク(disc)、光ディスク(disc)、デジタル汎用ディスク(disc)("DVD")、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを使用してデータを光学的に再生する。上記の組合せは、非一時的コンピュータ可読媒体の範囲内に同じく含まれるものとする。
選択された態様が詳細に図示および説明されたが、以下の特許請求の範囲によって規定されるような本発明から逸脱することなく、本明細書において様々な置換および改変がなされる場合があることは理解されよう。
100 PCD
102 オンチップシステム(SoC)
103 アナログデジタル変換器("ADC")コントローラ
110 異種マルチコア中央処理装置(CPU)
112 メモリ
114 ネットワークカード
116 モニタモジュール
120 第0のコア、コア
122 第1のコア、コア、GPUコア
124 第Nのコア、コア、HLOS
126 アナログ信号プロセッサ
128 ディスプレイコントローラ
130 タッチスクリーンコントローラ
132 ディスプレイ/タッチスクリーン
134 ビデオエンコーダ
136 ビデオ増幅器
138 ビデオポート
140 ユニバーサルシリアルバス(USB)コントローラ
142 USBポート
146 加入者識別モジュール(SIM)カード
148 デジタルカメラ、カメラ
150 ステレオオーディオCODEC
152 オーディオ増幅器
154 第1のステレオスピーカ
156 第2のステレオスピーカ
157 熱センサ
157A オンチップ熱センサ
157B オフチップ熱センサ
158 マイクロフォン増幅器
160 マイクロフォン
162 周波数変調(FM)無線チューナ
164 FMアンテナ
166 ステレオヘッドフォン
168 モデムデバイス/無線周波数("RF")トランシーバ
170 RFスイッチ
172 RFアンテナ
174 キーパッド
176 マイクロフォン付きモノヘッドセット、モノヘッドセット
178 バイブレータデバイス、バイブレータ
188 電源
200 システム
202 システムオンチップ(SoC)集積回路(IC)
216 モニタモジュール
217 CPU
218 モニタメモリ
219 タイマ
220 コア
221 CPU
223 メモリ
225a モニタブートコード、コード、ブートコード
225b モニタデータファイル
230 コア
300 システム
302 SoC IC
314 ネットワークカード
316 モニタモジュール
317 カウンタ
319 タイマ
320 コア
334 ビデオエンコーダ
340 USBコントローラ
342 USBポート
368 モデムデバイス、RFトランシーバ
405 最小セキュリティ状態
410 DRM状態
415 中間セキュリティ状態
420 最大セキュリティ状態
500 方法
600 方法

Claims (30)

  1. ポータブルコンピューティングデバイス(PCD)内のシステムオンチップ(SoC)上のコアに関する改善されたセキュリティのための方法であって、
    前記SoC上のモニタモジュールを初期化するステップと、
    前記SoCの前記モニタモジュールから前記SoCの前記コアに要求を送信するステップと、
    前記コアからの応答を前記モニタモジュールにおいて受信するステップと、
    前記モニタモジュールと通信しているタイマを検査するステップと
    を含み、
    前記コアからの前記応答が前記タイマの失効前に前記モニタモジュールにおいて受信される場合、前記モニタモジュールを用いて前記タイマをリセットするステップか、または、
    前記タイマ失効の結果として、前記モニタモジュールを用いて、少なくとも1つのセキュリティ対策を前記コアに適用するステップ
    を含む、方法。
  2. 前記少なくとも1つのセキュリティ対策が、
    前記タイマ失効の結果として、前記SoCを再初期化するステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記少なくとも1つのセキュリティ対策が、
    前記コアが前記PCD上に記憶されたデータのセットにアクセスするのを防止するステップと、
    前記コアが前記SoC上の複数の構成要素のうちの1つまたは複数にアクセスするのを防止するステップと、
    前記PCDのディスプレイ上に警告を出現させるステップと
    のうちの1つまたは複数をさらに含む、請求項1に記載の方法。
  4. 前記タイマ失効の結果として、前記モニタモジュールを用いて、少なくとも1つのセキュリティ対策を前記コアに適用するステップが、
    前記モニタモジュールを用いて、セキュリティレベル状態に従って少なくとも1つのセキュリティ対策を適用するステップ
    をさらに含む、請求項1に記載の方法。
  5. 前記タイマ失効の結果として、前記モニタモジュールを用いて、少なくとも1つのセキュリティ対策を前記コアに適用するステップが、
    前記モニタモジュールを用いて、前記タイマが失効した回数に従って少なくとも1つのセキュリティ対策を適用するステップ
    をさらに含む、請求項1に記載の方法。
  6. 前記コアが、ハイレベルオペレーティングシステム(HLOS)を動作させている前記SoC上に位置するプロセッサを備える、請求項1に記載の方法。
  7. 前記コアからの応答を前記モニタモジュールにおいて受信するステップが、
    前記コアに関する状態についての情報を前記モニタモジュールにおいて受信するステップと、
    前記コアの初期化以来、前記コアに関する前記状態が変化したかどうかを前記モニタモジュールにおいて判定するステップと
    をさらに含む、請求項1に記載の方法。
  8. 前記コアからの応答を前記モニタモジュールにおいて受信するステップが、
    前記PCDから物理的に離れたコンピュータデバイスから送信された通信を前記モニタモジュールにおいて受信するステップ
    をさらに含む、請求項1に記載の方法。
  9. ポータブルコンピューティングデバイス(PCD)内のコアに関する改善されたセキュリティのためのコンピュータシステムであって、
    システムオンチップ(SoC)上のコアと、
    前記コアと通信している前記SoC上のモニタモジュールと、
    前記モニタモジュールと通信しているタイマと
    を備え、
    前記モニタモジュールが、
    前記コアに要求を送信することと、
    前記コアから応答を受信することと
    を行い、
    前記応答が前記タイマの失効前に前記モニタモジュールによって受信される場合、前記タイマをリセットすることか、または、
    前記タイマ失効の結果として、少なくとも1つのセキュリティ対策を前記コアに適用すること
    を行うように構成される、コンピュータシステム。
  10. 前記セキュリティ対策が、
    前記タイマ失効の結果として、前記SoCおよび前記モニタモジュールを再初期化することを含む、請求項9に記載のシステム。
  11. 前記セキュリティ対策が、
    前記コアが前記PCD上に記憶されたデータのセットにアクセスするのを防止することと、
    前記コアが前記SoC上の複数の構成要素のうちの1つまたは複数にアクセスするのを防止することと、
    前記PCDのディスプレイ上に警告を出現させることと
    のうちの少なくとも1つを含む、請求項9に記載のシステム。
  12. 前記モニタモジュールが、
    セキュリティレベル状態に従って、セキュリティ対策を前記コアに適用する
    ようにさらに構成される、請求項9に記載のシステム。
  13. 前記モニタモジュールが、
    前記タイマが失効した回数に従って複数のセキュリティ対策のうちの少なくとも1つを前記コアに適用する
    ようにさらに構成される、請求項9に記載のシステム。
  14. 前記コアが、ハイレベルオペレーティングシステム(HLOS)を動作させている前記SoC上に位置するプロセッサを備え、
    前記モニタモジュールが、前記プロセッサの仮想部分を備える、
    請求項9に記載のシステム。
  15. 前記コアから応答を受信することが、
    前記コアに関する状態についての情報を前記モニタモジュールにおいて受信することと、
    前記コアの初期化以来、前記コアに関する前記状態が変化したかどうかを前記モニタモジュールにおいて判定することと
    をさらに含む、請求項9に記載のシステム。
  16. 前記コアから応答を受信することが、
    前記PCDから物理的に離れたコンピュータデバイスからの通信を前記モニタモジュールにおいて受信すること
    をさらに含む、請求項9に記載のシステム。
  17. コンピュータ可読プログラムコードを具現した非一時的コンピュータ使用可能媒体を備えるコンピュータプログラム製品であって、前記コンピュータ可読プログラムコードが、ポータブルコンピューティングデバイス(PCD)内のコアに関する改善されたセキュリティのための方法を実装するために実行するように構成され、前記方法が、
    SoC上のモニタモジュールを初期化するステップと、
    前記SoCの前記モニタモジュールから前記SoCの前記コアに要求を送信するステップと、
    前記コアからの応答を前記モニタモジュールにおいて受信するステップと、
    前記モニタモジュールと通信しているタイマを検査するステップと
    を含み、
    前記応答が前記タイマの失効前に前記モニタモジュールにおいて受信される場合、前記モニタモジュールを用いて前記タイマをリセットするステップか、または
    前記タイマ失効の結果として、前記モニタモジュールを用いて、少なくとも1つのセキュリティ対策を前記コアに適用するステップ
    を含む、コンピュータプログラム製品。
  18. 前記少なくとも1つのセキュリティ対策が、
    前記タイマ失効の結果として、前記SoCおよび前記モニタモジュールを再初期化することと、
    前記コアが前記PCD上に記憶されたデータのセットにアクセスするのを防止することと、
    前記コアが前記SoC上の複数の構成要素のうちの1つまたは複数にアクセスするのを防止することと、
    前記PCDのディスプレイ上に警告を出現させることと
    のうちの1つまたは複数をさらに含む、請求項17に記載のコンピュータプログラム製品。
  19. 前記タイマ失効の結果として、前記モニタモジュールを用いて、少なくとも1つのセキュリティ対策を前記コアに適用するステップが、
    セキュリティレベル状態に従って少なくとも1つのセキュリティ対策を適用するステップ
    をさらに含む、請求項17に記載のコンピュータプログラム製品。
  20. 前記タイマ失効の結果として、前記モニタモジュールを用いて、少なくとも1つのセキュリティ対策を前記コアに適用するステップが、
    前記タイマが失効した回数に従って少なくとも1つのセキュリティ対策を適用するステップ
    をさらに含む、請求項17に記載のコンピュータプログラム製品。
  21. 前記コアが、ハイレベルオペレーティングシステム(HLOS)を動作させている前記SoC上に位置するプロセッサを備える、
    請求項17に記載のコンピュータプログラム製品。
  22. 前記コアからの応答を前記モニタモジュールにおいて受信するステップが、
    前記コアに関する状態についての情報を前記モニタモジュールにおいて受信するステップと、
    前記コアの初期化以来、前記コアに関する前記状態が変化したかどうかを前記モニタモジュールにおいて判定するステップと
    をさらに含む、請求項17に記載のコンピュータプログラム製品。
  23. 前記コアからの応答を前記モニタモジュールにおいて受信するステップが、
    前記PCDから物理的に離れたコンピュータデバイスから送信された通信を前記モニタモジュールにおいて受信するステップ
    をさらに含む、請求項17に記載のコンピュータプログラム製品。
  24. ポータブルコンピューティングデバイス(PCD)内のコアに関する改善されたセキュリティのためのコンピュータシステムであって、
    SoC上のモニタモジュールを初期化するための手段と、
    前記SoCの前記モニタモジュールから前記SoCの前記コアに要求を送信するための手段と、
    前記コアからの応答を前記モニタモジュールにおいて受信するための手段と、
    前記モニタモジュールと通信しているタイマを検査するための手段と
    を備え、
    前記応答が前記タイマの失効前に前記モニタモジュールにおいて受信される場合、前記タイマをリセットするための手段か、または
    前記タイマ失効の結果として、少なくとも1つのセキュリティ対策を前記コアに適用するための手段
    を備える、コンピュータシステム。
  25. 前記少なくとも1つのセキュリティ対策が、
    前記タイマ失効の結果として、前記SoCおよび前記モニタモジュールを再初期化することと、
    前記コアが前記PCD上に記憶されたデータのセットにアクセスするのを防止することと、
    前記コアが前記SoC上の複数の構成要素のうちの1つまたは複数にアクセスするのを防止することと、
    前記PCDのディスプレイ上に警告を出現させることと
    のうちの1つまたは複数をさらに含む、請求項24に記載のシステム。
  26. 前記タイマ失効の結果として、少なくとも1つのセキュリティ対策を前記コアに適用するための手段が、
    セキュリティレベル状態に従って少なくとも1つのセキュリティ対策を適用するための手段
    をさらに備える、請求項24に記載のシステム。
  27. 前記タイマ失効の結果として、少なくとも1つのセキュリティ対策を前記コアに適用するための手段が、
    前記タイマが失効した回数に従って少なくとも1つのセキュリティ対策を適用するための手段
    をさらに備える、請求項24に記載のシステム。
  28. 前記コアが、ハイレベルオペレーティングシステム(HLOS)を動作させている前記SoC上に位置するプロセッサを備える、
    請求項24に記載のシステム。
  29. 前記コアからの応答を前記モニタモジュールにおいて受信するための手段が、
    前記コアに関する状態についての情報を前記モニタモジュールにおいて受信するための手段と、
    前記コアの初期化以来、前記コアに関する前記状態が変化したかどうかを前記モニタモジュールにおいて判定するための手段と
    をさらに備える、請求項24に記載のシステム。
  30. 前記コアからの応答を前記モニタモジュールにおいて受信するための手段が、
    前記PCDから物理的に離れたコンピュータデバイスから送信された通信を前記モニタモジュールにおいて受信するための手段
    をさらに備える、請求項24に記載のシステム。
JP2017508514A 2014-08-28 2015-08-20 ポータブルコンピューティングデバイス(pcd)内のプロセッサに関する改善されたセキュリティのためのシステムおよび方法 Pending JP2017528816A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/472,249 2014-08-28
US14/472,249 US10019602B2 (en) 2014-08-28 2014-08-28 System and method for improved security for a processor in a portable computing device (PCD)
PCT/US2015/046183 WO2016032861A1 (en) 2014-08-28 2015-08-20 System and method for improved security for a processor in a portable computing device (pcd)

Publications (1)

Publication Number Publication Date
JP2017528816A true JP2017528816A (ja) 2017-09-28

Family

ID=54011136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017508514A Pending JP2017528816A (ja) 2014-08-28 2015-08-20 ポータブルコンピューティングデバイス(pcd)内のプロセッサに関する改善されたセキュリティのためのシステムおよび方法

Country Status (5)

Country Link
US (1) US10019602B2 (ja)
EP (1) EP3186742B1 (ja)
JP (1) JP2017528816A (ja)
CN (1) CN106663164A (ja)
WO (1) WO2016032861A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433296B2 (en) 2009-05-01 2013-04-30 Ryan Hardin Exclusive delivery of content within geographic areas
US8566336B2 (en) 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
US9928181B2 (en) * 2014-11-21 2018-03-27 Ge-Hitachi Nuclear Energy Americas, Llc Systems and methods for protection of reflective memory systems
US10200369B1 (en) * 2016-02-16 2019-02-05 Symantec Corporation Systems and methods for dynamically validating remote requests within enterprise networks
US10585755B2 (en) * 2016-11-29 2020-03-10 Ricoh Company, Ltd. Electronic apparatus and method for restarting a central processing unit (CPU) in response to detecting an abnormality
GB2564878B (en) * 2017-07-25 2020-02-26 Advanced Risc Mach Ltd Parallel processing of fetch blocks of data
CN109308417B (zh) * 2017-07-27 2022-11-01 阿里巴巴集团控股有限公司 基于可信计算的解锁方法及装置
GB2571727B (en) 2018-03-06 2022-05-25 Siemens Ind Software Inc Monitoring accesses to a region of an integrated circuit chip
US11755745B2 (en) * 2019-01-29 2023-09-12 Johnson Controls Tyco IP Holdings LLP Systems and methods for monitoring attacks to devices

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333272A (en) * 1991-06-13 1994-07-26 International Business Machines Corporation Warning timer for users of interactive systems
US7819750B2 (en) * 1999-10-06 2010-10-26 Igt USB software architecture in a gaming machine
US7704147B2 (en) * 1999-10-06 2010-04-27 Igt Download procedures for peripheral devices
US7613930B2 (en) * 2001-01-19 2009-11-03 Trustware International Limited Method for protecting computer programs and data from hostile code
JP2004072352A (ja) * 2002-08-05 2004-03-04 Nec Corp 携帯端末システム、該システムに用いられる監視制御方法及び監視制御プログラム、並びに携帯端末
US7349871B2 (en) * 2002-08-08 2008-03-25 Fujitsu Limited Methods for purchasing of goods and services
US7801826B2 (en) * 2002-08-08 2010-09-21 Fujitsu Limited Framework and system for purchasing of goods and services
CN100386740C (zh) * 2002-12-12 2008-05-07 有限状态机实验室公司 用于检测计算机系统中的安全漏洞的系统和方法
US7249381B2 (en) * 2004-03-29 2007-07-24 Bryte Computer Technologies, Inc. Controller and resource management system and method with improved security for independently controlling and managing a computer system
US7496750B2 (en) * 2004-12-07 2009-02-24 Cisco Technology, Inc. Performing security functions on a message payload in a network element
WO2007011816A2 (en) * 2005-07-15 2007-01-25 Atka Software, Llc An improved means for protecting computers from malicious software
CN100490388C (zh) * 2005-08-24 2009-05-20 上海浦东软件园信息技术有限公司 基于程序行为的入侵检测方法
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
EP1845470B1 (en) * 2006-04-13 2016-11-09 STMicroelectronics (Research & Development) Limited Multiple purpose integrated circuit
JP4288292B2 (ja) * 2006-10-31 2009-07-01 株式会社エヌ・ティ・ティ・ドコモ オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
JP2010514028A (ja) * 2006-12-22 2010-04-30 バーチャルロジックス エスエイ 単一データ処理を共有するために複数の実行環境を有効化するシステム
US20080307240A1 (en) * 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
KR100997238B1 (ko) * 2008-03-03 2010-11-29 삼성전자주식회사 Crum 유닛, 교체가능유닛 및 이를 이용하는 화상형성장치와, 그 인증 및 암호화 데이터 통신 방법
CN101344862B (zh) * 2008-09-01 2011-04-20 华为技术有限公司 一种嵌入式系统中的抗干扰设备
JP2010117866A (ja) * 2008-11-12 2010-05-27 Canon Inc バージョンアップ方法及びプログラム
US8117469B2 (en) * 2009-07-10 2012-02-14 Packet Digital Automatically determining operating parameters of a power management device
KR101596222B1 (ko) * 2009-08-25 2016-02-23 삼성전자주식회사 영상 재생 장치의 부팅을 제어하는 방법 및 그 장치
EP2393007B1 (en) 2010-06-03 2013-03-27 Telefonaktiebolaget LM Ericsson (publ) Processing device
US8458533B2 (en) * 2010-11-03 2013-06-04 Texas Instruments Incorporated Watch dog timer and counter with multiple timeout periods
WO2012128681A1 (en) 2011-03-22 2012-09-27 Telefonaktiebolaget L M Ericsson (Publ) Method for switching between virtualized and non-virtualized system operation
US20130282951A1 (en) 2012-04-19 2013-10-24 Qualcomm Incorporated System and method for secure booting and debugging of soc devices
US9591484B2 (en) * 2012-04-20 2017-03-07 T-Mobile Usa, Inc. Secure environment for subscriber device
EP4116824A1 (en) * 2012-06-26 2023-01-11 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection prevention, and/or other features
US9331922B2 (en) * 2012-08-10 2016-05-03 Broadcom Corporation Automatic recover after loss of signal event in a network device
US10291013B2 (en) * 2013-11-20 2019-05-14 Nokia Technologies Oy Adaptive battery protection

Also Published As

Publication number Publication date
CN106663164A (zh) 2017-05-10
US10019602B2 (en) 2018-07-10
US20160063281A1 (en) 2016-03-03
EP3186742A1 (en) 2017-07-05
EP3186742B1 (en) 2018-01-31
WO2016032861A1 (en) 2016-03-03

Similar Documents

Publication Publication Date Title
EP3186742B1 (en) System and method for improved security for a processor in a portable computing device (pcd)
EP2989579B1 (en) Redundant system boot code in a secondary non-volatile memory
JP6328568B2 (ja) 熱アウェアデバイスブーティングのためのシステムおよび方法
KR101933246B1 (ko) 중지된 애플리케이션 재개 및/또는 애플리케이션의 중지 면제 기법
KR101920980B1 (ko) 멀티-운영 체제 디바이스들에 대한 액세스 격리
US8230237B2 (en) Pre-boot environment power management
US8082439B2 (en) Firmware modification in a computer system environment supporting operational state changes
EP2661661B1 (en) Method and system for managing sleep states of interrupt controllers in a portable computing device
JP2016058071A (ja) Bios性能プロファイルを自動的に設定するシステムおよび方法
JP4384243B1 (ja) 情報処理装置および起動方法
WO2018039967A1 (zh) 虚拟机切换方法、装置、电子设备和计算机程序产品
US11216053B2 (en) Systems, apparatus, and methods for transitioning between multiple operating states
US20170269984A1 (en) Systems and methods for improved detection of processor hang and improved recovery from processor hang in a computing device
US10869176B1 (en) Near field communication (NFC) enhanced computing systems
KR20080071979A (ko) 컴퓨팅 장치에서의 시스템 및 방법, 및 운영 체제 및/또는펌웨어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
JP6647285B2 (ja) システムオンチップのサブシステムの外部アクセス検出および回復のためのシステムおよび方法
CN109690496B (zh) 存储器监视器
US10069962B1 (en) Near field communication (NFC) enhanced computing systems
JP4575228B2 (ja) 持ち運び可能な記憶媒体の使用制御方法、管理方法、装置、及びプログラム
CN114258517B (zh) 用于调制解调器指导的应用处理器引导流程的系统和方法
TWI581186B (zh) 用以禁止本地端輸入之方法、可遠端啟動運算系統及相關電腦可讀媒 體
US10437310B2 (en) Technologies for secure hybrid standby power management
JP2006285674A (ja) 情報処理装置および該情報処理装置におけるブート処理制御方法
US20220237328A1 (en) Information processing apparatus and control method
JP2023076096A (ja) 情報処理装置およびプログラム