JP5678210B2 - ポータブルコンピューティングデバイス内のリソースを管理するための方法およびシステム - Google Patents

ポータブルコンピューティングデバイス内のリソースを管理するための方法およびシステム Download PDF

Info

Publication number
JP5678210B2
JP5678210B2 JP2013546143A JP2013546143A JP5678210B2 JP 5678210 B2 JP5678210 B2 JP 5678210B2 JP 2013546143 A JP2013546143 A JP 2013546143A JP 2013546143 A JP2013546143 A JP 2013546143A JP 5678210 B2 JP5678210 B2 JP 5678210B2
Authority
JP
Japan
Prior art keywords
resource
requested state
resources
passed
master processor
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.)
Expired - Fee Related
Application number
JP2013546143A
Other languages
English (en)
Other versions
JP2014503908A (ja
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 JP2014503908A publication Critical patent/JP2014503908A/ja
Application granted granted Critical
Publication of JP5678210B2 publication Critical patent/JP5678210B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Description

優先権および関連出願に関する陳述
本出願は、「Method and system for managing resources within a portable computing device」と題する2010年12月21日に出願された米国仮特許出願第61/425,683号に対する米国特許法第119条(e)項に基づく優先権を主張する。この米国仮特許出願の内容全体が、参照により本明細書に組み込まれる。
ポータブルコンピューティングデバイス(「PCD」)は、個人レベルおよび専門レベルにおいて人々に必要なものになりつつある。これらのデバイスは、セルラー電話、携帯情報端末(「PDA」)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。
PCDは通常、中央処理装置、デジタル信号プロセッサなどを含む複数の処理ユニットから一般的に作られる複雑でコンパクトな電子パッケージングを有する。従来のPCDは、現在、当業者によって理解されるように、リモートプロシージャ呼出し(「RPC」)プロトコルを使用している。RPCプロトコルは、PCD内の異なる処理ユニットの間のリソース要求を管理する。RPCプロトコルに関する1つの問題は、プロトコルがPCD内の複数の処理ユニットの間のリソース要求を管理するのが非常に遅いことが多いことである。RPCプロトコルに関する別の問題は、PCDがバッテリー電力を節約するのに重要である低レベルの電力状態を、プロトコルが効率的にサポートすることができないということである。
したがって、当技術分野では、さらなるエネルギー保存を達成しながら、PCD内の複数の処理ユニットの間のリソース要求をより効率的に管理するための方法およびシステムが必要である。また、当技術分野では、処理ユニットの間の要求が処理され得る速度を上げるプロセッサ間通信プロトコルも必要である。
ポータブルコンピューティングデバイス(「PCD」)のプロセッサの間のリソースに対する要求を管理するための方法およびシステムは、各マスタープロセッサが、メッセージRAMなどの記憶装置におけるPCDの複数のリソースを識別することを含む。このメッセージRAMは、PCDの一部である。マスタープロセッサは、メッセージRAMにおける複数のリソースに望ましい状態を識別することができる。次いで、マスタープロセッサは、複数のリソース、およびリソースに望ましい状態が設定されている旨のアラートを生成することができる。アラートを受信した後、コントローラは、1つまたは複数の以前の要求が完了まで処理されているかどうかを決定することができる。そうである場合、コントローラは、複数のリソースを識別し、リソースの望ましい状態を識別するために、メッセージRAMの内容をレビューすることができる。
適切なとき、コントローラは、複数のリソースに、望ましい状態を渡すことができる。コントローラは、望ましい状態がリソースの制限を上回るかどうかを決定することもでき、望ましい状態が制限を上回る場合、コントローラは、値がリソースの制限内に含まれるように、望ましい状態の値を調整することができる。
システムは、テーブルを含むメタリソースを確立するステップも含む。このテーブルは、複数のリソースと、リソースに対するステータス変更についてコントローラによってプロセッサに通知すべきかどうかを示すフィールドとを記載することができる。PCDの各マスタープロセッサに割り当てられるメタリソース内の値に基づいて、コントローラは、リソースについてのステータス変更のアラートを1つまたは複数のプロセッサに送ることができる。
図中、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通じて、同様の部分を指す。「102A」または「102B」のような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、参照番号が、すべての図において同じ参照番号を有するすべての部分を包含することが意図される場合には、省略されることがある。
ポータブルコンピューティングデバイス(PCD)の一実施形態を示す機能ブロック図である。 コントローラ、マスタープロセッサ、低レベルドライバ、共有リソース、およびローカルリソースの間の関係を示す機能ブロック図である。 コントローラおよびメッセージRAMに関する詳細を示す機能ブロック図である。 1つまたは複数のマスタープロセッサの間の要求を管理するための方法を示す論理フローチャートである。 1つまたは複数のマスタープロセッサの間の要求を管理するための方法を示す論理フローチャートである。 要求からリソースの状態を識別し、適切なとき、リソースに状態を渡すためのサブメソッドまたはルーチンを示す論理フローチャートである。 リソースについての制限外の要求を処理するためのサブメソッドまたはルーチンを示す図である。 プロセッサについての通知メタリソースの一部であるテーブルを示す図である。 プロセッサについての通知メタリソースの一部であるテーブルを示す図である。 通知メタリソースを管理するためのサブメソッドまたはサブルーチンを示す論理フローチャートである。
「例示的な」という語は、「例、実例、または具体例としての役割を果たすこと」を意味するように本明細書において用いられている。「例示的な」ものとして本明細書で説明する何らかの態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「コンテンツ」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
本明細書で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば構成要素は、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであってよいが、これらであることに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してよく、1つの構成要素を1つのコンピュータに局在化すること、および/または2つ以上のコンピュータ間に分散することが可能である。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、信号によりローカルシステム、分散システムにおいて別の構成要素と対話し、かつ/または他のシステムとインターネットなどのネットワークにわたって対話する、1つの構成要素からのデータ)を有する信号に従うなどしてローカルプロセスおよび/またはリモートプロセスにより通信することができる。
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は交換可能に用いられる。第3世代(「3G」)および第4世代(「4G」)のワイヤレス技術が出現したことによって、利用可能な帯域が拡大されたので、より多くのワイヤレス機能を備えたより携帯が容易なコンピューティングデバイスが利用可能になっている。
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリーなど限られた容量の電源で動作する任意のデバイスを説明するために使用される。何十年もの間バッテリー式PCDが使用されてきたが、第3世代(「3G」)および第4世代(「4G」)ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、中でも、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであってよい。
図1:PCD100のプロセッサ間通信要素
図1を参照すると、この図は、PCD100のプロセッサ110、126の間のリソースを管理するための方法およびシステムを実現するためのワイヤレス電話の形態によるPCD100の例示的で非限定的な態様の機能ブロック図である。図示のように、PCD100は、マルチコアである第1の中央処理装置(「CPU」)110A、シングルコアタイプである第2のCPU110B、およびアナログ信号プロセッサ126を含むオンチップシステム102を含む。これらのプロセッサ110A、110B、および126は連結され得る。第1のCPU110Aは、当業者によって理解されるように第0のコア222、第1のコア224、および第Nのコア230を含むことができる。代替実施形態では、2つのCPU110を使用する代わりに、当業者によって理解されるように2つのデジタル信号プロセッサ(「DSP」)を用いることもできる。
図1は、1つまたは複数のコントローラモジュール101を含む。この説明の残り部分では、コントローラモジュール101を複数形ではなく単数形でコントローラ101と呼ぶ。当業者は、本発明から逸脱することなく、コントローラ101を様々な部分に分割し、異なるプロセッサ110、126によって実行することができることを認識されよう。代替的に、コントローラ101を、単一の要素として編成し、単一のプロセッサ110または126によって実行することができる。
コントローラ101は、CPU110によって実行されるソフトウェアを含むことができる。ただし、コントローラ101は、当業者によって理解されるように、ハードウェアおよび/またはファームウェアから形成されてもよい。
一般に、コントローラ101は、CPU110およびプロセッサ126から発するリソースについての要求を管理するなど、プロセッサ間通信をサポートする役目を果たし得る。例示的な一実施形態では、コントローラ101は、1つまたは複数のマスタープロセッサ110、126の間のリソース要求を管理するプロセッサ間通信プロトコルをサポートする。リソース要求は、リソースによるアクションまたは機能を要求するために、マスタープロセッサ110によって出され得る。
リソースは、1つまたは複数のマスタープロセッサ110、126によって実行されるソフトウェアアプリケーションのタスク、コマンド、および特徴をサポートするクロックおよび他の低レベルプロセッサを含むことができる。コントローラ101は、複数のマスタープロセッサ110、126の間のリソース要求競合を防ぐように設計され得る。
図1は、PCD100がメモリまたはメッセージRAM112を含み得ることを示している。以下でさらに詳細に説明するように、CPU110上で動作するコントローラ101は、メッセージRAM112にアクセスして、リソース105を管理することができる(図2参照)。
特定の態様において、本明細書で説明する方法ステップのうちの1つまたは複数は、コントローラ101を形成するメモリ112に記憶された実行可能命令およびパラメータによって実施され得る。コントローラ101を形成するこれらの命令は、CPU110、アナログ信号プロセッサ126、または別のプロセッサによって実行され得る。さらに、プロセッサ110、126、メモリ112、メモリ112に記憶された命令、またはそれらの組合せは、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として動作し得る。
図1:PCD100の他の要素
図1に示すように、CPU110は、1つまたは複数の内蔵オンチップまたは外部オフチップ熱センサ157に結合することもできる。オンチップ熱センサ157は、垂直PNP構造に基づく、通常、相補型金属酸化膜半導体(「CMOS」)超大規模集積(「VLSI」)回路専用である1つまたは複数の絶対温度比例(「PTAT」)温度センサを備え得る。オフチップ熱センサ157は、1つまたは複数のサーミスタを備え得る。熱センサ157は、アナログデジタル変換器(「ADC」)コントローラでデジタル信号に変換される電圧降下を引き起こし得る。しかしながら、当業者によって理解されるように、他のタイプの熱センサ157を使用することができる。
ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタル信号プロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
図1は、ビデオコーダ/デコーダ(「コーデック」)134、たとえば、位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のタイプのビデオエンコーダ134を含むポータブルコンピューティングデバイス(PCD)の一実施形態を示す概略図である。ビデオコーデック134は、マルチコア中央処理装置(「CPU」)110に結合される。ビデオ増幅器136が、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138がビデオ増幅器136に結合される。図1に示すように、ユニバーサルシリアルバス(「USB」)コントローラ140がCPU110に結合される。また、USBポート142がUSBコントローラ140に結合される。加入者識別モジュール(SIM)カード146も、CPU110に結合され得る。さらに、図1に示すように、デジタルカメラ148がCPU110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
図1にさらに示すように、ステレオオーディオコーデック150がアナログ信号プロセッサ126に結合され得る。さらに、オーディオ増幅器152がステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156がオーディオ増幅器152に結合される。図1は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを示している。加えて、マイクロフォン160がマイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナー162がステレオオーディオコーデック150に結合され得る。また、FMアンテナ164がFMラジオチューナー162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合され得る。
図1は、無線周波(「RF」)トランシーバ168がアナログ信号プロセッサ126に結合され得ることをさらに示している。RFスイッチ170がRFトランシーバ168およびRFアンテナ172に結合され得る。図1に示されるように、キーパッド174がアナログ信号プロセッサ126に結合され得る。また、マイクロフォンを備えたモノヘッドセット176がアナログ信号プロセッサ126に結合され得る。さらに、バイブレータデバイス178がアナログ信号プロセッサ126に結合され得る。図1は、たとえばバッテリーなどの電源180がオンチップシステム102に結合されることも示している。特定の態様では、電源180は、充電式DCバッテリー、または交流(「AC」)電源に接続されたAC-DC変換器から導かれるDC電源を含む。
図1に示されるように、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカー154、第2のステレオスピーカー156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、および電源180は、オンチップシステム322の外部にある。
図2は、コントローラ101、マスタープロセッサ110、126、低レベルドライバ103、共有リソース105A〜C、およびローカルリソース105D〜Hの間の関係を示す機能ブロック図である。この図は、タッチスクリーン132がどのようにタッチスクリーンドライバ/コントローラ130に結合され得るかについて示す。タッチスクリーンドライバ/コントローラ130は、第1のマスタープロセッサ110Aのクロックコード113Aに結合され得る。
第1のマスタープロセッサ110Aは、メッセージRAM112およびコントローラ101に結合され得る。コントローラ101は、第1のマスタープロセッサ110Aのクロックコード113Aに結合することができ、コントローラ101は、1つまたは複数の低レベルドライバ103を備え得る。1つまたは複数の低レベルドライバ103は、1つまたは複数の共有リソース105A〜Cと通信する役目を果たすことができる。共有リソース105A〜Cは、マスタープロセッサ110のタスクまたは機能をサポートする任意のタイプのデバイスを含むことができる。共有リソース105A〜Cは、グラフィカルプロセッサ、デコーダなどの単一の機能要素および他のプロセッサのクロックのようなデバイスを含むことができる。
共有リソース105A〜Cは、1つまたは複数のローカルリソース105D〜Hに結合され得る。1つまたは複数のローカルリソース105D〜Hは、マスタープロセッサ110のタスクまたは機能をサポートする任意のタイプのデバイスを含み得るという点で、共有リソース105A〜Cに類似していてよい。ローカルリソース105D〜Hは、グラフィカルプロセッサ、デコーダなどの単一の機能要素および他のプロセッサのクロックのようなデバイスを含むことができる。ローカルリソース105D〜Hは、リーフノードを含むことができる。リーフノードは、他のリソース105を参照せず、または依存しないローカルリソース105D〜Hとして当業者によって理解される。
コントローラ101は、1つまたは複数のマスタープロセッサ110、126から出される要求を管理する役目を果たすことができる。たとえば、コントローラ101は、第1のマスタープロセッサ110Aから生じる要求を管理することができる。第1のマスタープロセッサ110Aは、オペレータがタッチスクリーン132を操作したことに応答して、この要求を出すことができる。タッチスクリーン132は、タッチスクリーンドライバ/コントローラ130に信号を出すことができる。そして、タッチスクリーンドライバ/コントローラ130は、第1のマスタープロセッサ110Aのクロックコード113Aに信号を出すことができる。
図2に示した例示的な実施形態では、最初にマスタープロセッサ110Aがコントローラ101に要求を発行する前に、第1のマスタープロセッサ110Aは、以下でさらに詳細に説明するように、メッセージRAM112に情報を送る。第1のマスタープロセッサ110Aは、メッセージRAM112に情報を送った後、次いで、メッセージRAM112に記憶される情報をレビューする旨の要求をコントローラ101に発行する。
メッセージRAM112内に含まれている情報に基づいて、コントローラ101は、第1のマスタープロセッサ110Aから発せられた要求を1つまたは複数の低レベルドライバ103に対して発行することができる。次に、低レベルドライバ103は、1つまたは複数の共有リソース105A〜Cに対してコマンドを発行する。
図3は、プロセッサ間通信システム300を形成するコントローラ101およびメッセージRAM112に関する詳細を示す機能ブロック図である。コントローラ101は、図2に示した例示的な実施形態と同様に、第1のマスタープロセッサ110Aおよび第2のマスタープロセッサ110Bに結合することができる。コントローラ101は、要求割込みライン109A、Bおよび肯定応答割込みライン107A、Bによってこれらのプロセッサ110A、110Bに結合することができる。
コントローラ101は、メッセージランダムアクセスメモリ(「RAM」)112に結合することもできる。第1のマスタープロセッサ110Aおよび第2のマスタープロセッサ110BもメッセージRAM112に結合することができる。例示的な実施形態はRAMタイプを使用するが、当業者は諒解されるように、他のメモリデバイスまたはメモリデバイスの組合せを使用することができる。他のメモリデバイスは、限定はしないが、ダイナミックランダムアクセスメモリ(「DRAM」)「オフチップ」102、スタティックランダムアクセスメモリ(「SRAM」)「オンチップ」122、キャッシュメモリ、電気的消去可能プログラマブル(「EEPROM」)などを含む。
コントローラ101は、1つまたは複数の構成セット311、313を備える1つまたは複数のテーブル307をその内部メモリにおいて維持することができる。コントローラの内部メモリは、たとえばRAMなどのメモリデバイスを備えることができる。1つまたは複数の構成セット311、313は、特定のマスタープロセッサ110によって関連付けられ、必要とされるリソース105の様々な状態を記載する。
たとえば、テーブル307は、リスト309に列挙される複数のリソース105についての状態を記載する第1の構成セット311Aおよび第2の構成セット313Aを含む。この第1の構成セット311Aおよび第2の構成セット313Aを、図2の第1のマスタープロセッサ110Aに割り当てることができる。一方、第3の構成セット311Bおよび第4の構成セット313Bを、図2の第2のマスタープロセッサ110Bに割り当てることができる。
各構成セット311、313は、特定のリソース105についてのマスタープロセッサ110によって望まれる状態を記載する。図3に示した例示的な構成セット311、313は、特定のリソース105が特定の状態についての1つまたは複数の設定値を有することができることを示す。たとえば、図3に示したように、第1の構成セット311Aについての第1のローカルリソース(ローカルリソース#1)は、少なくとも4つの設定値を備える。これらの設定値は、リソース105の特定の状態に対応する数値を備え得る。一方、第1の共有リソース(#1)は、構成セット311、313ごとに、単一の設定値を備えることができるだけである。
図3に示した例示的な実施形態では、0は「オフ」状態を示すことができ、数字1は「オン」状態を示すことができる。数値は、バイナリ状態のみに限られるのではなく、英数字、および何百または数千の数値など、他の値を含むことができる。たとえば、数値は、当業者によって理解されるように、MHzまたはGHzでクロック速度を示すために、100または200のような設定値を含むことができる。
各第1の構成セット311は、プロセッサ110が通常のやり方で動作している間の特定のマスタープロセッサ110についてのデフォルトのセットであるアクティブセットを備える。マスタープロセッサ110に対応する各第2の構成セット313は、特定のプロセッサ110についての低レベルの消費電力またはスリープ状態用に指定されたセットであるスリープセットを備えることができる。図3に示したように、コントローラ101は、メッセージRAM112に結合される。メッセージRAM112は、リソースステータスセクション315を含む第1の部分301を含み得る。リソースステータスセクション315は、コントローラ101によって管理されるすべてのリソース105の現在のアグリゲート状態を記載する。図3に示した例示的な実施形態のリソースステータスセクション315は、単一のカラムを有するテーブルを備えることができる。この単一のカラムのテーブルは、コントローラ101によって管理され得る各リソース105のステータスに対応する値を記載する。
図3に示した例示的な実施形態において、ステータスセクション315は、第1の共有リソース(#1)105Aが「1」のステータス値を有し、第2の共有リソース(#2)105Bが「1」のステータス値を有することを反映する。N番目の共有リソース(#N)105Cは、「0」のステータス値を有し、第1のローカルリソース(#1)105Dは、それぞれ「1、0、1、および1」の4つのステータス値を有する。図3の例示的な実施形態のリソースステータスセクション315にはリソース105が4つのみ示されているが、通常、コントローラ101によって管理されるすべてのリソース105がリソースステータスセクション315に提示されることを当業者であれば理解する。
リソースステータスセクション315は、コントローラ101によってアクセスすることができる。コントローラ101は、リソースステータスセクション315に対する書込みおよび読取りを行うことができる。一方、各マスタープロセッサ110は、特定のプロセッサ110、126に関係のあるリソース105のステータスを取得するために、リソースステータスセクション315から情報を読み取ることができるだけである。
メッセージRAM112は、マスター当たりの領域とも呼ばれる追加の部分303をさらに備え得る。マスター当たりの領域303は、各マスタープロセッサ110、126、および単一のマスタープロセッサ110、126から発行される要求に対応する。
たとえば、メッセージRAM112の第1のマスター当たりの領域303Aは、第1のマスタープロセッサ110Aから発せられる要求および動作と直接対応するサブセクション318A、333Aおよび336Aを備え得る。同様に、メッセージRAM112の第2のマスター当たりの領域303Bは、第2の制御セクション318B、ならびに、メッセージRAM112の第2のマスター当たりの領域303Aに設けられている3つと類似した他のもの(図示せず)などのサブセクションを備えることもできる。
メッセージRAM112の各マスター当たりの領域303は、単一のマスタープロセッサ110、126からの要求の状態を追跡する。メッセージRAM112内の各マスター当たりの領域303の3つのサブセクションは、制御セクション318、要求セクション333、および肯定応答セクション336を含む。
各制御セクション318は、変更要求フィールド321、リソース指示要求フィールド324、リソース指示肯定応答フィールド327、および変更肯定応答フィールド330の少なくとも4つのステータスフィールドを備え得る。コントローラ101および割り当てられた、単一のマスタープロセッサ110または126は、この制御セクション内に含まれているフィールドに対する読取りおよび書込みを行うことができる。したがって、第1のマスタープロセッサ110Aに割り当てられた第1の制御セクション318Aについて、第1のマスタープロセッサ110Aおよびコントローラ101、ならびに第1のマスタープロセッサ110Aのみおよびコントローラ101(任意の他のマスター110でない)は両方、制御セクション318Aの4つのフィールド321、324、327、および330に対する読取りおよび書込みを行うことができる。
メッセージRAM112の第1のマスター当たりの領域303Aの第2のサブセクション333Aは、要求セクション333Aを備え得る。第1のマスター当たりの領域303Aの制御セクション318Aと同様に、コントローラ101および第1のマスタープロセッサ110Aのみは、要求セクション333Aと対話することができる。しかし、割り当てられたマスタープロセッサ110Aのみは、要求セクション333Aに書き込むことができる。コントローラ101は、要求セクション333A内に含まれる値を読み取ることができるだけである。図3に示される例示的な実施形態では、第1の共有リソース(SR#1)105Aは、「0」の要求セクションステータス値を有する。第2の共有リソース(SR#2)105Bも、「0」のステータス値を有する。N番目の共有リソース(SR#N)は、「1」のステータス値を有し、第1のローカルリソース(LR#1)は、4つの0のステータス値を有する。
第3のサブセクション336Bは、肯定応答セクション336Bである。第1のマスター当たりの領域303Aの肯定応答セクション336Bは、特定のリソース105になされる以前の要求に対応する値を記載する。通常、この肯定応答セクション336Bの値は、要求セクション333Aに提供される値をミラーリングする。
図4Aおよび図4Bは、1つまたは複数のマスタープロセッサ110、126の間の要求を管理するための方法400を示す論理フローチャート400A、400Bである。決定ブロック405は、方法400の最初のステップである。決定ブロック405では、要求側のマスタープロセッサ110または126は、メッセージRAM112における制御セクション318の変更要求フィールド321およびリソース指示要求フィールド324が0の値に等しいかどうかを決定する。このステップでは、マスタープロセッサ110または126は、完了していない、別のプロセッサ110、126から発せられた以前の要求が、現在の要求によってメッセージRAM112において上書きされないことを確実にしている。
決定ブロック405への照会が否定であれば、ループでブロック405の開始に戻って、「いいえ」分岐に進む。決定ブロック405への照会が肯定であれば、前の要求が処理されていることを意味し、ブロック410への「はい」分岐に進む。
ブロック410で、要求されたリソース105のすべてについての要求されたリソース状態は、図3に示したように、要求側のマスタープロセッサ110または126によって、メッセージRAM112のマスター領域303の要求セクション333に書き込まれる。次に、ブロック415で、どのリソース105がマスター110または126によって要求されているかを示すために、マスタープロセッサ110または126によって、値がリソース指示要求フィールド324に書き込まれる。
ブロック420で、どの構成セット311または313が要求されたリソース105のために選択されたかを識別するために、値がメッセージRAM112における制御セクション318の変更要求フィールド321に書き込まれる。次に、ブロック425で、要求側マスタープロセッサ110または126は、コントローラ101に要求割込みライン109のうちの1つに沿って、要求割込みを送信する。
ブロック430では、コントローラ101は、要求割込みライン109から要求割込みを受信し、どのマスター110または126が要求したかを決定する。次に、決定ブロック435で、コントローラ101は、変更肯定応答フィールド330およびリソース指示肯定応答フィールド327が0の値を有するかどうかを決定する。この段階では、コントローラ101は、コントローラ101か要求を管理または処理し始める前に、前の要求がまだ処理中であるかどうかを決定している。
決定ブロック435に対する照会が否定であれば、コントローラ101が、前の要求がシステムによってまだ処理中である旨のメッセージを、要求側マスタープロセッサ110または126に送り返すブロック440への「いいえ」分岐に進む。ブロック440の後、方法400は、ブロック435の開始に戻る。決定ブロック435に対する照会が肯定であれば、変更肯定応答フィールド330およびリソース指示肯定応答フィールド327が0の値を有することを意味し、方法400はブロック445に進む。
ブロック445で、コントローラ101は、どのリソース105が要求されているかを識別するために、メッセージRAM212における制御セクション318の変更要求フィールド321およびリソース指示要求フィールド324を読み取る。次に、ブロック450で、コントローラ101は、メッセージRAM212の要求セクション333からすべての関連のある要求状態を読み取り、コントローラ101内にローカルにこれらの値をキャッシュ(記憶)する。次に、ブロック455で、コントローラ101は、メッセージRAM212における制御セクション318の変更要求フィールド321およびリソース指示フィールド324に0の値を書き込む。
方法400は、ブロック455からブロック460に進み、ここで方法400は、図4Bのプロセスまたはルーチンブロック465で再開する。図4Bのプロセスまたはルーチンブロック465は、図5に関連して以下でさらに詳細に説明する複数のステップを備えることができる。プロセスブロック465で、コントローラ101は、マスタープロセッサ110または126から発せられる要求から、リソース105ごとに望ましい状態を識別する。次いで、コントローラ101は、もし適切な場合、1つまたは複数のリソース105に要求された状態を渡す。
ブロック470におけるプロセスまたはルーチンブロック465の後、コントローラ101は、メッセージRAM112の変更肯定応答フィールド330およびリソース指示肯定応答フィールド327に要求によって変更されたリソース105のステータスを書き込むことができる。
次に、ブロック475で、コントローラ101は、要求を発したマスター110または126に、図3の肯定応答割込みライン107のうちの1つに沿って、肯定応答割込みを送信することができる。ブロック480で、肯定応答割込みを受信するマスタープロセッサ110または126によって、メッセージRAM112の制御セクション318の変更肯定応答フィールド330およびリソース指示肯定応答フィールド327を読み取ることができる。これらのフィールド330および327は、マスタープロセッサ110または126によって要求されたリソース105に関連付けられた状態の現在の値を備え得る。マスタープロセッサ110または126は、コントローラ101にメッセージを送ることによって、これら2つのフィールドの状態を随意に肯定応答することができる。
ブロック485で、肯定応答割込みを受信したマスタープロセッサ110または126は、次いで、他のマスタープロセッサ110または126がリソース105に他の要求を発行することができるようにするために、メッセージRAM112における制御セクション318の変更肯定応答フィールド330およびリソース指示肯定応答フィールド327に0を書き込むことができる。方法400は、決定ブロック405に戻り、上記で説明したように、開始することができる。
図5は、要求からリソース105の状態を識別し、適切なとき、リソース105に状態を渡すためのサブメソッドまたはルーチン465(図4Bに対応する)を示す論理フローチャートである。ブロック505が、サブメソッド465の最初のステップである。ブロック505で、メッセージRAM112における制御セクション318のリソース指示要求フィールド324に記載されているリソース105ごとに、要求された状態が、メッセージRAM112のマスター部分303の要求セクション333から、コントローラ101によって読み取られる。
図3に示した例示的な実施形態では、第1の共有リソース(SR#1)105Aは、0の要求された状態値を有し、一方、第2の共有リソース(SR#2)105Bも、0の要求された状態値を有する。N番目の共有リソース(SR#N)105Cは、1の要求された状態値を有し、一方、第1のローカルリソース(LR#1)105Dは、0の4つの要求された状態値を有する。
次に、決定ブロック510で、コントローラ101は、特定のリソース105についての要求された状態がスリープ構成セット311の一部であるか、アクティブ構成セット313の一部であるかを決定する。決定ブロック510への照会が「アクティブセット」を戻せば、ブロック515への「アクティブセット」分岐に進む。決定ブロック510への照会が「スリープセット」を戻せば、ブロック525への「スリープセット」分岐に進む。
ブロック515で、コントローラ101は、1つまたは複数の低レベルドライバ103に要求された状態を渡し、低レベルドライバ103は次に、たとえば、図2に示したように、共有リソース105A〜105Cまたはローカルリソース105D〜105Gなど、特定のリソースに要求された状態を送信する。次に、ブロック520で、リソース105についての要求された状態が特定のリソース105に対するステータス変更をもたらす場合、リソースの新しいステータスが、コントローラ101によってメッセージRAM112のリソースステータスセクション315に書き込まれる。
ブロック525で、要求された状態が、コントローラ101によって、メッセージRAM112のリソースステータスセクション315に保存される。ブロック530で、要求された状態が、メッセージRAM112の肯定応答セクション336にコピーされる。そして、ルーチン465は、図4Bのブロック470に戻る。
図6は、リソース105についての制限外の要求を処理するためのサブメソッドまたはルーチン600を示す。サブメソッド600は、図4A、図4B、および図5に示したように、方法400およびサブメソッド465の番号付けされたブロックと一致するように番号付けされているブロックを含む。したがって、サブメソッド600の番号付けされブロックが方法400またはサブメソッド465の対応する番号付けされたブロックよりも大きい値を有する場合、サブメソッド600の番号付けされたブロックは、方法400またはサブメソッド465の対応する番号付けされたブロックの後に行われることになる。
たとえば、決定ブロック513は、サブメソッド600の最初のステップである。決定ブロック513は、サブメソッド465のブロック510よりも大きい値、およびブロック515未満である値を有する。したがって、当業者によって理解されるように、決定ブロック513は、決定ブロック510の後、しかしサブメソッド465のブロック515の前に行われることになる。
決定ブロック513で、コントローラ101は、要求された状態がリソース105の制限を上回るかどうかを決定することができる。たとえば、特定のリソース105が800MHzの最大クロック速度を有し、要求された状態が900MHzである場合、この要求された状態はこのリソース105の制限を上回る。
決定ブロック513への照会が否定であれば、「いいえ」分岐に進み、サブメソッド600は、図5におけるサブメソッド465のブロック515に戻る。決定ブロック513への照会が肯定であれば、要求された状態が特定のリソース105の制限を上回ることを意味し、ブロック518への「はい」分岐に進む。
ブロック518で、コントローラ101は、リソース105の最大または最小の制限を決定し、リソース105を、要求された状態に最も近い適切な制限に設定することができる。そのため、上記の例では、リソースの最大クロック速度が800MHzであり、要求された状態が900MHzである場合、コントローラ101は、クロック速度を、要求された状態よりも100MHz小さい800MHzの最大値に設定する。ブロック519で、コントローラ101は、要求された状態のためにコントローラ101によって選択された制限を示すために、変更フラグを設定することができる。
ブロック482は、ここで、ブロック480の後、図4Bの方法400に追加されるので、ブロック519に続く。ここで図4Bのブロック480に続くブロック482で、マスターが図3のメッセージRAM112の制御セクション318を読み取るとき、アクティブ要求を発するマスター110または126は、ブロック519で設定された変更フラグを読み取ることができる。そして、合計600は、図5のブロック515に戻る。
本発明が説明通りに機能するように、本明細書で説明したプロセスまたはプロセスの流れの特定のステップが他のステップよりも前に行われるのは当然である。しかしながら、ステップの順序または手順によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、開示されたシステムおよび方法から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、あるいは各ステップを並行して(実質的に同時に)実行してもよいことを認識されたい。場合によっては、当業者によって理解されるように方法から逸脱することなく、特定のステップを省略してよく、実行しなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
たとえば、コントローラ101がメッセージRAM112の肯定応答セクション336に要求された状態をコピーすることを要求するブロック530は、各リソース105のステータスが変わらなかった場合、完全にスキップすることができる。ブロック530のこの除去は、コントローラ101によって消費される処理時間を減らすことができる。
別の例として、マルチスレッド環境をサポートするために、いくつかのステップを変更することができる。特に、変更肯定応答フィールド330およびリソース指示肯定応答フィールド327がコントローラ101によってレビューされる決定ブロック435は、図5のブロック530の直前に移動またはシフトされ得る。同様に、当業者によって理解されるように、ステップ間またはステップの近くに追加の技法を用いてもよい。
たとえば、指数バックオフ技法をブロック440とブロック435との間に使用することができ、コントローラは、決定ブロック435でリソース105の状態をチェックすることができる。これは、ブロック440とブロック435との間の第1のパスが100ミリ秒の固定の持続時間を有し得ることを意味する。ブロック440とブロック435との間の第2のパスは、200ミリ秒の固定の持続時間を有し得る。当業者によって理解されるように、ブロック440とブロック435との間の第3のパスは、1秒の固定の持続時間を有し得る。
図7A〜7Bは、プロセッサ110についての通知メタリソース105Jの一部であるテーブル700を示す。通知メタリソース105Jおよび特にテーブル700は、メッセージRAM112の要求セクション333において記憶され、アクセスされ得る。例示的な実施形態では、各プロセッサ110または126は、メッセージRAM112の各マスター当たりの領域303の中に存在する制御セクション318、要求セクション333、および肯定応答セクション336と同様に、それ自体の個々の通知メタリソース105Jに割り当てられる。
各通知メタリソース105Jによって、マスタープロセッサ110または126は、マスタープロセッサ110に関係のあり得る特定のリソース105についてのステータス報告の受信の契約をすることができる。マスタープロセッサ110または126は、コントローラ101にステータス報告を生成して欲しいリソース105をメタリソース105Jに書き込み、記録することができる。コントローラ101は、特定のマスタープロセッサ110または126に、リソース105に関する報告を送ることをコントローラ101が必要とするかどうかを決定するために、各マスター110または126に対応する各メタリソース105Jをレビューする。
図7Aに示したように、通知メタリソース105Jは、特定のマスター110または126が利用可能であり得る各リソース105に対応する構成フィールド値の第1の行を含み得る。通知メタリソース105Jの第2の行は、特定のマスター110または126が利用可能であり得る各リソース105に対応する登録フィールド値を含み得る。構成フィールドは、通知を定義し、登録フィールドは、主要なセットからの状態がどのように継承され得るかについて定義する。
図7に示した例示的な実施形態では、構成フィールドおよび登録フィールドは、1または0のバイナリ状態を含み得る。構成フィールドにおける0の状態は、特定のマスタープロセッサ110または126がリソース変更通知についてのその設定値を継承することを望む旨を示す。この場合、登録ビットの状態は使用されず、通知は、配信されるか、主要なセットからの設定値に基づかない。
構成フィールドにおける1の状態は、特定のマスタープロセッサ110または126が特定のリソース105についての通知設定値を継承することを望まず、代わりに、登録ビットを使用して通知を明示的に構成することを示す。この場合、登録フィールドにおける1の状態は、特定のマスタープロセッサ110または126が特定のリソース105における変更についての通知を受信することを望むことを示す。同様に、登録フィールドにおける0の状態は、主要なセットにおける設定値に関係なく、現在のセットである間、通知を受信しないことを望むことを示す。主要なセットについて、以下でさらに詳細に説明する。
構成フィールドおよび登録フィールドについての概要を、以下の表1に示す。
Figure 0005678210
各マスタープロセッサ110または126は、特定のマスタープロセッサ110または126の特定の状態に割り当てられる複数の通知メタリソースを有することができる。たとえば、図7Bに示した例示的な実施形態では、3つセットの通知メタリソース105J1、105J2、および105J3を特定のマスタープロセッサ110または126に割り当てることができる。
第1の通知メタリソース105J1は、通知のための特定のマスタープロセッサの主要なセットを備え得る。主要なセットは、マスタープロセッサ110または126が関係のある特定のリソース105について通知されることを特定のマスター110または126が望む方法についてのデフォルトの設定でもよい。主要なセット105J1の第1の列の両方の行は、この通知メタリソース105Jに割り当てられるマスタープロセッサ110または126が、第1の共有リソース(SR#1)105Aについての通知を受信することを望むことを示す、1の値を有する。
主要なセット105J1の第4の列の両方の行は、この通知メタリソース105Jに割り当てられるマスタープロセッサ110または126が、第1のローカルリソース(LR#1)105Dについての通知を受信することを望むことを示すために、1の値を有する。
通知メタリソースの第2および第3のセット105J2および105J3は、当業者によって理解されるように、スリープセットを備え得る。たとえば、第3のセット105J3の第2および第3の列の第1の行の構成フィールドは、このメタリソース105J2に割り当てられるマスタープロセッサ110または126が、第2(SR#2)105Bおよび第3の共有リソース(SR#3)105Cに関して任意の通知を継承することを望むことを示すために、0の値を有し得る。この例では、SR#2 105BおよびSR#3 105Cについての主要なセットの構成も、通知が配信されないことを示す。一方、第1および第4の列の第1の行における構成フィールドは、このメタリソース105G2に割り当てられたマスタープロセッサ110または126が、主要なセットから継承することを望まないことを示すための1である。この場合、第4の列の第2の行における登録されたビットは1であるので、LR#1 105Cについての通知がある。第1の列の第2の行における登録されたビットは0であるので、SR#1 105Aについて配信される通知はない。
特定の通知メタリソース105Jにおける2つの行の存在は、設定を有していない(および、したがって、主要なセットから継承されなければならない)値と明示的に設定されている値との間の区別を可能にすることである。一般に、マスタープロセッサ110または126は、主要なセット105J1におけるその通知を構成し、それらの通知が常に順守されることを期待する。しかしながら、マスタープロセッサ110または126は、いくつかのリソース105についてのみを除いて、スリープの間、異なる構成を望み得ることが考えられる。したがって、継承する、スリープ時に追加の通知を受信するために、明示的に登録する、または主要なセットを介して通知が配信される場合であっても、スリープ時に通知を受信しないように明示的に登録解除するという3つの可能な状態を解釈するには、単一の情報は不十分である。
図8は、通知メタリソース105Jを管理するためのサブメソッドまたはサブルーチン800を示す論理フローチャートである。サブメソッド800のステップは、全般的に、図4A〜4Bに示した方法400のいくつかのステップを参照する。ブロック436が、サブメソッド800の最初のステップである。
決定ブロック435から「はい」分岐に進んだ後、ブロック436が行われる。ブロック436で、コントローラ101は、メッセージRAM212の制御セクション318の変更肯定応答フィールド330にリソース105のステータスを書き込む。コントローラ101によるこのアクションは、通知フラグを設定する。
サブルーチン800が方法400と統合されるものとして説明されているが、コントローラ101に対する要求は、リソースの変更の通知が行われるために必要でないことを、当業者であれば認識する。ステップ435の後、マスタープロセッサ110または126が新しい状態を要求した、または、コントローラ100の内部の何らかの状態が変わった場合、1つまたは複数のリソースのステータスが変わる新しい状態が起こり得る。マスタープロセッサ110または126になされる要求に対して、通知が非同期的に生じ得ることを、当業者であれば理解されたい。
次に、図4Aのブロック445の後に行われるブロック446で、コントローラ101は、どのリソース105が変わったかを、メッセージRAM212における制御セクション318のリソース指示肯定応答フィールド327に記録する。次に、図4A〜4Bのステップ450および475の後行われるブロック452/476で、マスタープロセッサ110または126ごとに割り当てられる通知メタリソース105Jにおける値に基づいて、コントローラ101は、肯定応答割込みを、各関係するマスタープロセッサ110または126に送る。これは、ブロック446が図4Aのブロック450の後、図4Bのブロック475において行われることを意味する。
次に、ブロック481で、図4Bのステップ480の後、コントローラ101は、メッセージRAM212の制御セクション318のリソース指示肯定応答フィールド327をレビューし、各マスター110または126についての通知メタリソース105Jにおける値に基づいて、コントローラは、関係のあるマスターにステータス変更を通知する。
次に、ブロック482で、各マスター110または126は、リソース105の現在の状態を学ぶために、メッセージRAM212のリソースステータスセクション315を読み取る。
上記の開示に鑑みて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を特定し、開示された発明を容易に実施することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるコンピュータで実施されるプロセスの発明性のある機能は、上の説明において、かつ、様々なプロセスの流れを示し得る図面とともに、より詳細に説明される。
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
選択された態様について詳細に図示し説明したが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変を実施できることが理解されよう。
100 PCD
101 コントローラモジュール
102 オンチップシステム
105A 共有リソース
105B 共有リソース
105C 共有リソース
105D ローカルリソース
105E ローカルリソース
105F ローカルリソース
105G ローカルリソース
105H ローカルリソース
105J 通知メタリソース
107A 肯定応答割込みライン
107B 肯定応答割込みライン
109A 要求割込みライン
109B 要求割込みライン
110 デジタル信号プロセッサ
110A 第1のCPU、第1のマスタープロセッサ
110B 第2のCPU、第2のマスタープロセッサ
112 メッセージRAM
113A クロックコード
122 スタティックランダムアクセスメモリ(「SRAM」)オンチップ
126 アナログ信号プロセッサ
128 ディスプレイコントローラ
130 タッチスクリーンコントローラ
132 タッチスクリーンディスプレイ
134 ビデオコーデック
136 ビデオ増幅器
138 ビデオポート
140 USBコントローラ
142 USBポート
146 加入者識別モジュール(SIM)カード
148 デジタルカメラ
150 ステレオオーディオコーデック
152 オーディオ増幅器
154 第1のステレオスピーカー
156 第2のステレオスピーカー
157 オンチップ熱センサ
158 マイクロフォン増幅器
160 マイクロフォン
162 FMラジオチューナー
164 FMアンテナ
166 ステレオヘッドフォン
168 RFトランシーバ
170 RFスイッチ
172 RFアンテナ
174 キーパッド
176 マイクロフォンを備えたモノヘッドセット
178 バイブレータデバイス
180 電源
212 メッセージRAM
222 第0のコア
224 第1のコア
230 第Nのコア
300 プロセッサ間通信システム
301 第1の部分
303A 第1のマスター当たりの領域
303B 第2のマスター当たりの領域
307 テーブル
309 リスト
311 構成セット
311A 第1の構成セット
311B 第3の構成セット
313 構成セット
313A 第2の構成セット
315 リソースステータスセクション
318 制御セクション
318A サブセクション
318B 第2の制御セクション
321 変更要求フィールド
324 リソース指示要求フィールド
327 リソース指示肯定応答フィールド
330 変更肯定応答フィールド
333 要求セクション
333A サブセクション
336 肯定応答セクション
336A サブセクション
336B 肯定応答セクション

Claims (36)

  1. ポータブルコンピューティングデバイスの複数のマスタープロセッサリソースに対する要求を管理するための方法であって、
    マスタープロセッサから、前記マスタープロセッサにサービスするための複数のリソースが識別された旨、および前記複数のリソースについての要求された状態が識別された旨を示すアラートを受信するステップであり、前記複数のリソースの識別、および前記要求された状態の識別が、前記ポータブルコンピューティングデバイスの一部である記憶装置に記憶される、ステップと、
    リソースに対する1つまたは複数の以前の要求が完了まで処理されているかどうかを決定するステップと、
    リソースに対する前記1つまたは複数の以前の要求が完了まで処理されている場合、前記複数のリソースを識別し、前記リソースの前記要求された状態を識別するために、前記記憶装置の内容をレビューするステップと、
    前記複数のリソースに前記リソースの前記識別された要求された状態を渡すステップと
    タリソースを確立する1つまたは複数の記憶されたテーブルをレビューするステップであり、前記1つまたは複数の記憶されたテーブルが、複数のリソース、および前記リソースに対するステータス変更について前記マスタープロセッサに通知すべきかどうかを示すフィールドを記載する、ステップ
    含む方法。
  2. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すステップは、前記渡された要求された状態がスリープセットの一部であるか、アクティブセットの一部であるかを決定するステップをさらに含む、請求項1に記載の方法。
  3. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すステップは、前記渡された要求された状態がリソースについてのステータス変更をもたらす場合、前記記憶装置に前記リソースについての新しいステータスを記録するステップをさらに含み、
    前記新しいステータスは、前記マスタープロセッサに通知される、請求項1に記載の方法。
  4. リソースが、1つまたは複数のマスタープロセッサによって実行されるソフトウェアアプリケーションのタスク、コマンド、または特徴をサポートするクロックおよびプロセッサの少なくとも1つを含む、請求項1に記載の方法。
  5. 少なくとも1つのリソースが、少なくとも2つのマスタープロセッサの間で共有されるリソースである、請求項1に記載の方法。
  6. 前記渡された要求された状態がスリープセットの一部である場合、前記渡された要求された状態がリソースの制限を上回るかどうかを決定するステップをさらに含む、請求項2に記載の方法。
  7. 前記渡された要求された状態がリソースの制限を上回る場合、前記渡された要求された状態の値が前記リソースの前記制限内に含まれるように、前記渡された要求された状態の前記値を調整するステップをさらに含む、請求項6に記載の方法。
  8. 前記渡された要求された状態の前記値が調整された旨のアラートを生成するステップをさらに含み、
    前記アラートは、前記マスタープロセッサにより読み取られる、請求項7に記載の方法。
  9. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すステップは、前記ポータブルコンピューティングデバイスの各マスタープロセッサに割り当てられる前記メタリソースにおける値に基づいて、1つまたは複数のマスタープロセッサにリソースについてのステータス変更のアラートを送るステップをさらに含み、
    前記マスタープロセッサは、前記記憶装置の内容を読み取る、請求項1に記載の方法。
  10. ポータブルコンピューティングデバイスの複数のマスタープロセッサリソースに対する要求を管理するためのコンピュータシステムであって、
    前記マスタープロセッサにサービスするための複数のリソースを識別し、
    前記複数のリソースについての要求された状態を識別するように動作可能なマスタープロセッサであって、
    前記複数のリソースの識別、および前記要求された状態の識別が、前記ポータブルコンピューティングデバイスの一部である記憶装置に記憶され、前記マスタープロセッサがさらに、
    前記複数のリソースおよび前記要求された状態が識別された旨を示すアラートを生成する
    ように動作可能なマスタープロセッサと、
    前記アラートを受信し、
    リソースに対する1つまたは複数の以前の要求が完了まで処理されているかどうかを決定し、
    前記1つまたは複数の以前の要求が完了まで処理されている場合、前記複数のリソースを識別し、前記リソースの前記要求された状態を識別するために、前記記憶装置の内容をレビューし、
    前記複数のリソースに前記リソースの前記識別された要求された状態を渡し
    タリソースを確立する1つまたは複数の記憶されたテーブルをレビューするように動作可能なコントローラであって、前記1つまたは複数の記憶されたテーブルが、複数のリソース、および前記リソースに対するステータス変更について前記マスタープロセッサに通知すべきかどうかを示すフィールドを記載する
    ように動作可能なコントローラと
    を含むコンピュータシステム。
  11. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡す動作は、
    前記渡された要求された状態がスリープセットの一部であるか、アクティブセットの一部であるかを決定する
    動作をさらに含み、請求項10に記載のシステム。
  12. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡す動作は、
    前記渡された要求された状態がリソースについてのステータス変更をもたらす場合、前記記憶装置に前記リソースについての新しいステータスを記録する
    動作をさらに含み、前記新しいステータスは、前記マスタープロセッサに通知される、請求項10に記載のシステム。
  13. リソースが、1つまたは複数のマスタープロセッサによって実行されるソフトウェアアプリケーションのタスク、コマンド、または特徴をサポートするクロックおよびプロセッサの少なくとも1つを含む、請求項10に記載のシステム。
  14. 少なくとも1つのリソースが、少なくとも2つのマスタープロセッサの間で共有されるリソースである、請求項10に記載のシステム。
  15. 前記コントローラが、
    前記渡された要求された状態がスリープセットの一部である場合、前記渡された要求された状態がリソースの制限を上回るかどうかを決定する
    ように動作可能である、請求項11に記載のシステム。
  16. 前記渡された要求された状態がリソースの制限を上回る場合、前記コントローラがさらに、前記渡された要求された状態の値が前記リソースの前記制限内に含まれるように前記渡された要求された状態の前記値を調整するように動作可能である、請求項15に記載のシステム。
  17. 前記コントローラがさらに、
    前記渡された要求された状態の前記値が調整された旨のアラートを生成する
    ように動作可能であり、前記アラートは、前記マスタープロセッサにより読み取られる、請求項16に記載のシステム。
  18. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡す動作は、
    前記ポータブルコンピューティングデバイスの各マスタープロセッサに割り当てられる前記メタリソースにおける値に基づいて、1つまたは複数のマスタープロセッサにリソースについてのステータス変更のアラートを送る
    動作をさらに含み、前記マスタープロセッサは、前記記憶装置の内容を読み取る、請求項10に記載のシステム。
  19. ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムであって、
    マスタープロセッサから、前記マスタープロセッサにサービスするための複数のリソースが識別された旨、および前記複数のリソースについての要求された状態が識別された旨を示すアラートを受信するための手段であり、前記複数のリソースの識別、および前記要求された状態の識別が、前記ワイヤレスハンドヘルドコンピューティングデバイスの一部である記憶手段に記憶される、手段と、
    1つまたは複数の以前の要求が完了まで処理されているかどうかを決定するための手段と、
    前記1つまたは複数の以前の要求が完了まで処理されている場合、前記複数のリソースを識別し、前記リソースの前記要求された状態を識別するために、前記記憶手段の内容をレビューするための手段と、
    前記複数のリソースに前記リソースの前記識別された要求された状態を渡すための手段と
    タリソースを確立する1つまたは複数の記憶されたテーブルをレビューするための手段であり、前記1つまたは複数の記憶されたテーブルが、複数のリソース、および前記リソースに対するステータス変更について前記マスタープロセッサに通知すべきかどうかを示すフィールドを記載する、手段
    含むコンピュータシステム。
  20. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すための手段は、前記渡された要求された状態がスリープセットの一部であるか、アクティブセットの一部であるかを決定するための手段
    をさらに含む、請求項19に記載のシステム。
  21. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すための手段は、前記渡された要求された状態がリソースについてのステータス変更をもたらす場合、前記記憶手段前記リソースについての新しいステータス状態を記録するための手段をさらに含み、
    前記新しいステータスは、前記マスタープロセッサに通知される、請求項19に記載のシステム。
  22. リソースが、1つまたは複数のマスタープロセッサによって実行されるソフトウェアアプリケーションのタスク、コマンド、または特徴をサポートするクロックおよびプロセッサの少なくとも1つを含む、請求項19に記載のシステム。
  23. 少なくとも1つのリソースが、少なくとも2つのマスタープロセッサの間で共有されるリソースである、請求項19に記載のシステム。
  24. 前記渡された要求された状態がスリープセットの一部である場合、前記渡された要求された状態がリソースの制限を上回るかどうかを決定するための手段をさらに含む、請求項20に記載のシステム。
  25. 前記渡された要求された状態がリソースの制限を上回る場合、前記渡された要求された状態の値が前記リソースの前記制限の範囲内に含まれるように前記渡された要求された状態の値を調整するための手段
    をさらに含む、請求項24に記載のシステム。
  26. 前記渡された要求された状態の前記値が調整された旨のアラートを生成するための手段
    をさらに含み、
    前記アラートは、前記マスタープロセッサにより読み取られる、請求項25に記載のシステム。
  27. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すための手段は、前記ワイヤレスハンドヘルドコンピューティングデバイスの各マスタープロセッサに割り当てられる前記メタリソースにおける値に基づいて、1つまたは複数のマスタープロセッサにリソースについてのステータス変更のアラートを送るための手段をさらに含み、
    前記マスタープロセッサは、前記記憶手段の内容を読み取る、請求項19に記載のシステム。
  28. コンピュータシステムのコントローラに操作を実行させるように構成されたソフトウェア命令を記録した、コンピュータ可読記録媒体であって、前記操作が、
    ポータブルコンピューティングデバイスのマスタープロセッサから、前記マスタープロセッサにサービスするための複数のリソースが識別された旨、および前記複数のリソースについての要求された状態が識別された旨を示すアラートを受信するステップであり、前記複数のリソースの識別、および前記要求された状態の識別が、前記ポータブルコンピューティングデバイスの一部である記憶装置に記憶される、ステップと、
    リソースに対する1つまたは複数の以前の要求が完了まで処理されているかどうかを決定するステップと、
    リソースに対する前記1つまたは複数の以前の要求が完了まで処理されている場合、前記複数のリソースを識別し、前記リソースの前記要求された状態を識別するために、前記記憶装置の内容をレビューするステップと、
    前記複数のリソースに前記リソースの前記識別された要求された状態を渡すステップと
    タリソースを確立する1つまたは複数の記憶されたテーブルをレビューするステップであり、前記1つまたは複数の記憶されたテーブルが、複数のリソース、および前記リソースに対するステータス変更について前記マスタープロセッサに通知すべきかどうかを示すフィールドを記載する、ステップ
    含む、コンピュータ可読記録媒体。
  29. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すステップは、前記渡された要求された状態がスリープセットの一部であるか、アクティブセットの一部であるかを決定するステップ
    さらに含む、請求項28に記載のコンピュータ可読記録媒体。
  30. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すステップは、前記渡された要求された状態がリソースについてのステータス変更をもたらす場合、前記記憶装置に前記リソースについての新しいステータスを記録するステップをさらに含み、前記新しいステータスは、前記マスタープロセッサに通知される、請求項28に記載のコンピュータ可読記録媒体。
  31. リソースが、1つまたは複数のマスタープロセッサによって実行されるソフトウェアアプリケーションのタスク、コマンド、または特徴をサポートするクロックおよびプロセッサの少なくとも1つを含む、請求項28に記載のコンピュータ可読記録媒体。
  32. 少なくとも1つのリソースが、少なくとも2つのマスタープロセッサの間で共有されるリソースである、請求項28に記載のコンピュータ可読記録媒体。
  33. 前記渡された要求された状態がスリープセットの一部である場合、前記渡された要求された状態がリソースの制限を上回るかどうかを決定するステップ
    をさらに含む、請求項29に記載のコンピュータ可読記録媒体。
  34. 前記渡された要求された状態がリソースの制限を上回る場合、前記渡された要求された状態の値が前記リソースの前記制限の範囲内に含まれるように前記渡された要求された状態の値を調整するステップ
    をさらに含む、請求項33に記載のコンピュータ可読記録媒体。
  35. 前記渡された要求された状態の前記値が調整された旨のアラートを生成するステップをさらに含み、前記アラートは、前記マスタープロセッサにより読み取られる、請求項34に記載のコンピュータ可読記録媒体。
  36. 前記複数のリソースに前記リソースの前記識別された要求された状態を渡すステップは、前記ポータブルコンピューティングデバイスの各マスタープロセッサに割り当てられる前記メタリソースにおける値に基づいて、1つまたは複数のマスタープロセッサにリソースについてのステータス変更のアラートを送るステップをさらに含み、前記マスタープロセッサは、前記記憶装置の内容を読み取る、請求項28に記載のコンピュータ可読記録媒体。
JP2013546143A 2010-12-21 2011-11-07 ポータブルコンピューティングデバイス内のリソースを管理するための方法およびシステム Expired - Fee Related JP5678210B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201061425683P 2010-12-21 2010-12-21
US61/425,683 2010-12-21
US13/069,052 2011-03-22
US13/069,052 US8412818B2 (en) 2010-12-21 2011-03-22 Method and system for managing resources within a portable computing device
PCT/US2011/059618 WO2012087439A1 (en) 2010-12-21 2011-11-07 Method and system for managing resources within a portable computing device

Publications (2)

Publication Number Publication Date
JP2014503908A JP2014503908A (ja) 2014-02-13
JP5678210B2 true JP5678210B2 (ja) 2015-02-25

Family

ID=46235906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013546143A Expired - Fee Related JP5678210B2 (ja) 2010-12-21 2011-11-07 ポータブルコンピューティングデバイス内のリソースを管理するための方法およびシステム

Country Status (7)

Country Link
US (1) US8412818B2 (ja)
EP (1) EP2656236B1 (ja)
JP (1) JP5678210B2 (ja)
KR (1) KR101505764B1 (ja)
CN (1) CN103314367B (ja)
HK (1) HK1186791A1 (ja)
WO (1) WO2012087439A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10073725B2 (en) * 2016-02-11 2018-09-11 Micron Technology, Inc. Distributed input/output virtualization

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210828A (en) 1988-12-29 1993-05-11 International Business Machines Corporation Multiprocessing system with interprocessor communications facility
JPH05173989A (ja) * 1991-12-24 1993-07-13 Kawasaki Steel Corp 計算機及びマルチプロセッサ計算装置
EP0640929A3 (en) 1993-08-30 1995-11-29 Advanced Micro Devices Inc Interprocessor communication via a post MEV.
US6085276A (en) * 1997-10-24 2000-07-04 Compaq Computers Corporation Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US6633916B2 (en) * 1998-06-10 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for virtual resource handling in a multi-processor computer system
JP2001209627A (ja) * 2000-01-27 2001-08-03 Hitachi Ltd 情報処理システム
US6704877B2 (en) 2000-12-29 2004-03-09 Intel Corporation Dynamically changing the performance of devices in a computer platform
US7080267B2 (en) 2002-08-01 2006-07-18 Texas Instruments Incorporated Methodology for managing power consumption in an application
US7139855B2 (en) * 2003-04-24 2006-11-21 International Business Machines Corporation High performance synchronization of resource allocation in a logically-partitioned system
US7685147B2 (en) 2003-05-27 2010-03-23 International Business Machines Corporation Automatic management method and system with category-based correlations
US7386607B2 (en) 2003-12-31 2008-06-10 Intel Corporation System using state change requests received over a network to change current state of a network device to a desired state at a particular time
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
US7272741B2 (en) 2004-06-02 2007-09-18 Intel Corporation Hardware coordination of power management activities
US7315952B2 (en) 2004-06-02 2008-01-01 Intel Corporation Power state coordination between devices sharing power-managed resources
US7451333B2 (en) * 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US7346787B2 (en) 2004-12-07 2008-03-18 Intel Corporation System and method for adaptive power management
US20060146769A1 (en) 2004-12-31 2006-07-06 Patel Anil N Method of operating a WLAN mobile station
GB0516447D0 (en) 2005-08-10 2005-09-14 Symbian Software Ltd Controlling multilevel shared resources in a computing device
US8161276B2 (en) 2006-07-21 2012-04-17 Sony Service Centre (Europe) N.V. Demodulator device and method of operating the same
JP2009265963A (ja) * 2008-04-25 2009-11-12 Nec Electronics Corp 情報処理システム及びタスクの実行制御方法
US8020025B2 (en) 2008-06-04 2011-09-13 Sony Ericsson Mobile Communications Ab Power saving scheduler for timed events
US8959217B2 (en) * 2010-01-15 2015-02-17 Joyent, Inc. Managing workloads and hardware resources in a cloud resource
US8412892B2 (en) * 2010-04-21 2013-04-02 Hitachi, Ltd. Storage system and ownership control method for storage system
US20120131180A1 (en) * 2010-11-19 2012-05-24 Hitachi Ltd. Server system and method for managing the same

Also Published As

Publication number Publication date
HK1186791A1 (en) 2014-03-21
WO2012087439A1 (en) 2012-06-28
JP2014503908A (ja) 2014-02-13
KR20130105719A (ko) 2013-09-25
EP2656236A1 (en) 2013-10-30
US8412818B2 (en) 2013-04-02
EP2656236B1 (en) 2017-09-06
KR101505764B1 (ko) 2015-03-24
CN103314367B (zh) 2015-11-25
US20120158968A1 (en) 2012-06-21
CN103314367A (zh) 2013-09-18

Similar Documents

Publication Publication Date Title
CN107025906B (zh) 扩展语音识别的周期的方法和产品以及信息处理设备
JP5734505B2 (ja) ポータブルコンピューティングデバイスのマルチコアプロセッサにおける複数のコアへの電力を動的に制御するための方法およびシステム
JP5605970B2 (ja) リソースセット移行をスケジュールすることによる、ポータブルコンピューティングデバイスにおけるプロセッサアプリケーション状態間のリソース待ち時間の最小化
US8656196B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
CN108566634B (zh) 降低蓝牙音箱连续唤醒延时的方法、装置及蓝牙音箱
CN107924225B (zh) 用于动态地调整存储器状态转变定时器的系统和方法
JP5705999B2 (ja) ポータブルコンピューティングデバイス内の割込みコントローラのスリープ状態を管理するための方法およびシステム
JP5649254B2 (ja) ポータブルコンピューティングデバイスのプロセッサがスリープ状態に迅速に入りスリープ状態から迅速に出るための方法およびシステム
US20120072919A1 (en) Mobile device and method for exposing and managing a set of performance scaling algorithms
US20170285722A1 (en) Method for reducing battery consumption in electronic device
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
WO2012087533A1 (en) Minimizing resource latency between processor application states in a portable computing device by using a next-active state set
JP5678210B2 (ja) ポータブルコンピューティングデバイス内のリソースを管理するための方法およびシステム
US8751840B2 (en) Computer providing motion picture mode and method of setting up system-mode while playing motion pictures
CN116028005B (zh) 音频会话获取方法、装置、设备和存储介质
TW201239766A (en) Method and system for managing resources within a portable computing device
TWI772438B (zh) 用於計算設備中的動態緩衝器大小設定的系統和方法
CN117075504A (zh) 设备控制方法、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150105

R150 Certificate of patent or registration of utility model

Ref document number: 5678210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees