(57)【要約】  ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するための方法およびシステムについて説明する。本方法は、ポータブルコンピューティングデバイスの容認不可能期限逃し要素に関するダウンタイム期間のトレランスを判断するステップを含んでもよい。次に、ダウンタイム期間の判断されたトレランスは、サービス品質("QoS")コントローラに送信されてもよい。QoSコントローラは、ダウンタイム期間のトレランスが調整される必要があるかどうかを判断してもよい。QoSコントローラは、ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信する場合がある。QoSコントローラは、ダウンタイム要求が調整される必要があるかどうかを判断してもよい。次に、QoSコントローラは、実行のためにダウンタイム要求を選択し、次いで、選択されたダウンタイム要求によって影響されるポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素はどれであるかを識別してもよい。
2017533515.tif 000002
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するための方法であって、
前記ポータブルコンピューティングデバイスの容認不可能期限逃し要素に関するダウンタイム期間のトレランスを判断するステップと、
前記ポータブルコンピューティングデバイス内の中央ロケーションに前記ダウンタイム期間の前記トレランスを送信するステップと、
前記ダウンタイム期間の前記トレランスが調整される必要があるかどうかを判断するステップと、
前記ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信するステップと、
前記ダウンタイム要求が調整される必要があるかどうかを判断するステップと、
実行のためにダウンタイム要求を選択するステップと、
前記選択されたダウンタイム要求によって影響される前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素はどれであるかを識別するステップと、
影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の持続時間に適切に機能することができるかどうかを判断するステップと、
前記影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができる場合に、前記選択されたダウンタイム要求を要求した1つまたは複数のデバイスに対して前記ダウンタイム要求を許可するステップと
を含む、方法。
【請求項２】
前記影響される1つまたは複数の容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができない場合に、すべての容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間に適切に機能することができるようになるまで、前記ダウンタイム要求を発行しないステップをさらに含む、請求項1に記載の方法。
【請求項３】
所定の許容可能ダウンタイム期間を有する1つまたは複数の容認不可能期限逃し要素の優先度を引き上げるステップをさらに含む、請求項2に記載の方法。
【請求項４】
容認不可能期限逃し要素および非容認不可能期限逃し要素のうちの少なくとも1つの帯域幅を調整するためのコマンドを発行するステップをさらに含む、請求項2に記載の方法。
【請求項５】
1つまたは複数の容認不可能期限逃し要素の帯域幅をスロットリングするステップをさらに含む、請求項2に記載の方法。
【請求項６】
容認不可能期限要素に有利に働くようにメモリコントローラおよびPeripheral Component Interconnect Express("PCI-e")コントローラのうちの少なくとも1つのポリシーを変更するステップをさらに含む、請求項2に記載の方法。
【請求項７】
容認不可能期限要素は、処理コア、ディスプレイエンジン、カメラコントローラ、グラフィカル処理ユニット、モデム、およびプログラム可能計算エンジン上で実行されるソフトウェアまたはファームウェアのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項８】
前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素のどれが、前記選択されたダウンタイム要求によって影響されるかを識別するステップは、ダウンタイム要求側デバイスを1つまたは複数の容認不可能期限逃し要素とマッピングするマッピングテーブルを生成するステップをさらに含む、請求項1に記載の方法。
【請求項９】
前記ダウンタイム要求期間が完了した後に1つまたは複数の非容認不可能期限要素をスロットリングする、請求項1に記載の方法。
【請求項１０】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項１１】
ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するためのシステムであって、
前記ポータブルコンピューティングデバイスの容認不可能期限逃し要素に関するダウンタイム期間のトレランスを判断し、
前記ポータブルコンピューティングデバイス内の中央ロケーションに前記ダウンタイム期間の前記トレランスを送信し、
前記ダウンタイム期間の前記トレランスが調整される必要があるかどうかを判断し、
前記ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信し、
前記ダウンタイム要求が調整される必要があるかどうかを判断し、
実行のためにダウンタイム要求を選択し、
前記選択されたダウンタイム要求によって影響される前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素はどれであるかを識別し、
影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の持続時間に適切に機能することができるかどうかを判断し、
前記影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができる場合に、前記選択されたダウンタイム要求を要求した1つまたは複数のデバイスに対して前記ダウンタイム要求を許可する
ように動作可能なプロセッサを含む、システム。
【請求項１２】
前記プロセッサは、容認不可能期限逃し要素のいずれかが、前記選択されたダウンタイム要求の前記持続時間中に適切に機能しない場合に、すべての容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間に適切に機能するようになるまで、前記ダウンタイム要求を発行しないようにさらに動作可能である、請求項11に記載のシステム。
【請求項１３】
前記プロセッサは、所定の許容可能ダウンタイム期間を有する1つまたは複数の容認不可能期限逃し要素の優先度を引き上げるようにさらに動作可能である、請求項11に記載のシステム。
【請求項１４】
前記プロセッサは、容認不可能期限逃し要素および非容認不可能期限逃し要素のうちの少なくとも1つの帯域幅を調整するためのコマンドを発行するようにさらに動作可能である、請求項11に記載のシステム。
【請求項１５】
前記プロセッサは、1つまたは複数の容認不可能期限逃し要素の帯域幅をスロットリングするようにさらに動作可能である、請求項11に記載のシステム。
【請求項１６】
前記プロセッサは、容認不可能期限要素に有利に働くようにメモリコントローラおよびPeripheral Component Interconnect Express("PCI-e")コントローラのうちの少なくとも1つのポリシーを変更するようにさらに動作可能である、請求項11に記載のシステム。
【請求項１７】
容認不可能期限要素は、処理コア、ディスプレイエンジン、カメラコントローラ、グラフィカル処理ユニット、モデム、およびプログラム可能計算エンジン上で実行されるソフトウェアまたはファームウェアのうちの少なくとも1つを含む、請求項11に記載のシステム。
【請求項１８】
前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素のどれが、前記選択されたダウンタイム要求によって影響されるかを識別する前記プロセッサは、ダウンタイム要求側デバイスを1つまたは複数の容認不可能期限逃し要素とマッピングするマッピングテーブルを生成する前記プロセッサをさらに含む、請求項11に記載のシステム。
【請求項１９】
前記プロセッサは、前記ダウンタイム要求期間が完了した後に1つまたは複数の非容認不可能期限要素をスロットリングするようにさらに動作可能である、請求項11に記載のシステム。
【請求項２０】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを含む、請求項11に記載のシステム。
【請求項２１】
ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するためのシステムであって、
前記ポータブルコンピューティングデバイスの容認不可能期限逃し要素に関するダウンタイム期間のトレランスを判断するための手段と、
前記ポータブルコンピューティングデバイス内の中央ロケーションに前記ダウンタイム期間の前記トレランスを送信するための手段と、
前記ダウンタイム期間の前記トレランスが調整される必要があるかどうかを判断するための手段と、
前記ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信するための手段と、
前記ダウンタイム要求が調整される必要があるかどうかを判断するための手段と、
実行のためにダウンタイム要求を選択するための手段と、
前記選択されたダウンタイム要求によって影響される前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素はどれであるかを識別するための手段と、
影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の持続時間に適切に機能することができるかどうかを判断するための手段と、
前記影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができる場合に、前記選択されたダウンタイム要求を要求した1つまたは複数のデバイスに対して前記ダウンタイム要求を許可するための手段と
を含む、システム。
【請求項２２】
容認不可能期限逃し要素のいずれかが、前記選択されたダウンタイム要求の前記持続時間中に適切に機能しない場合に、すべての容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間に適切に機能するようになるまで、前記ダウンタイム要求を発行しないための手段をさらに含む、請求項21に記載のシステム。
【請求項２３】
所定の許容可能ダウンタイム期間を有する1つまたは複数の容認不可能期限逃し要素の優先度を引き上げるための手段をさらに含む、請求項21に記載のシステム。
【請求項２４】
容認不可能期限逃し要素および非容認不可能期限逃し要素のうちの少なくとも1つの帯域幅を調整するためのコマンドを発行するための手段をさらに含む、請求項21に記載のシステム。
【請求項２５】
1つまたは複数の容認不可能期限逃し要素の帯域幅をスロットリングするための手段をさらに含む、請求項21に記載のシステム。
【請求項２６】
ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するためのシステムであって、
前記ポータブルコンピューティングデバイスの容認不可能期限逃し要素に関するダウンタイム期間のトレランスを判断するように動作可能なプロセッサと、
前記ポータブルコンピューティングデバイス内の中央ロケーションに前記ダウンタイム期間の前記トレランスを送信するように動作可能なプロセッサと、
前記ダウンタイム期間の前記トレランスが調整される必要があるかどうかを判断するように動作可能なプロセッサと、
前記ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信するように動作可能なプロセッサと、
前記ダウンタイム要求が調整される必要があるかどうかを判断するように動作可能なプロセッサと、
実行のためにダウンタイム要求を選択するように動作可能なプロセッサと、
前記選択されたダウンタイム要求によって影響される前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素はどれであるかを識別するように動作可能なプロセッサと、
影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の持続時間に適切に機能することができるかどうかを判断するように動作可能なプロセッサと、
前記影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができる場合に、前記選択されたダウンタイム要求を要求した1つまたは複数のデバイスに対して前記ダウンタイム要求を許可するように動作可能なプロセッサであって、容認不可能期限要素は、処理コア、ディスプレイエンジン、カメラコントローラ、グラフィカル処理ユニット、モデム、およびプログラム可能計算エンジン上で実行されるソフトウェアまたはファームウェアのうちの少なくとも1つを含む、プロセッサと
を含む、システム。
【請求項２７】
容認不可能期限逃し要素のいずれかが、前記選択されたダウンタイム要求の前記持続時間中に適切に機能しない場合に、すべての容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間に適切に機能するようになるまで、前記ダウンタイム要求を発行しないためのプロセッサをさらに含む、請求項26に記載のシステム。
【請求項２８】
所定の許容可能ダウンタイム期間を有する1つまたは複数の容認不可能期限逃し要素の優先度を引き上げるためのプロセッサをさらに含む、請求項26に記載のシステム。
【請求項２９】
容認不可能期限逃し要素および非容認不可能期限逃し要素のうちの少なくとも1つの帯域幅を調整するためのコマンドを発行するためのプロセッサをさらに含む、請求項26に記載のシステム。
【請求項３０】
1つまたは複数の容認不可能期限逃し要素の帯域幅をスロットリングするためのプロセッサをさらに含む、請求項26に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権および関連出願の陳述
本出願は、2014年10月31日に出願した"SYSTEM AND METHOD FOR MANAGING SAFE DOWNTIME OF SHARED RESOURCES WITHIN A PCD"と題する米国仮出願第62/073,606号の米国特許法第119条(e)項に基づく優先権を主張する。その内容が、参照により本明細書に組み込まれる。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス("PCD")は、個人レベルおよび専門レベルにおいて人々に必要なものになりつつある強力なデバイスである。PCDの例には、セルラー電話、携帯情報端末("PDA")、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスが含まれる場合がある。
【０００３】
PCDは通常、システムオンチップ("SOC")を用いる。各SOCは、逃した場合にPCDの動作中に容認できない検出可能な/認識できる障害を引き起こすことがある期限を有する複数の処理コアを含むことがある。コアなどのハードウェア要素の期限は通常、短い時間期間にダイナミックランダムアクセスメモリ("DRAM")、内部スタティックランダムアクセスメモリ("SRAM")メモリ("IMEM")、またはPeripheral Component Interconnect Express("PCI-e")外部トランスポートリンクなどの他のメモリのような、メモリまたはバスなどの共有リソースからコアが受け取る帯域幅("BW")の量によって決定される。この短い時間期間は、処理コアに依存し、通常、約10ミリ秒〜約100ミリ秒の範囲にある。
【０００４】
いくつかの処理コアが指定時間期間に必要メモリBWを受け取らないとき、障害が発生することがあり、これはユーザが認識できることがある。必要メモリBWの欠落は、PCDの保守のための、またはPCDが1つもしくは複数の動作モードを変更する必要がある場合のダウンタイムがあるときに発生することがある。これらの必要メモリBW欠落は、ユーザが認識できることのある障害を引き起こす可能性がある。
【０００５】
たとえば、1つの認識できる障害がPCDのディスプレイエンジンにより発生する場合があり、ディスプレイエンジンは、メモリ要素(通常はDRAM)からデータを読み取り、ユーザが見ることができるようにディスプレイパネル/デバイスにデータを出力する。ディスプレイエンジンが固定時間期間内にDRAMから十分なデータを読み取ることができない場合、そのような問題によりディスプレイエンジンは、アプリケーションデータを「なくす」ことがあり、ディスプレイエンジンに利用可能なディスプレイデータがないために、ディスプレイ上に固定の一色(通常は青または黒)を表示せざるを得ないことがある。このエラー状態は、当業者によって理解されるように、当技術分野では「ディスプレイアンダーフロー(Display Underflow)」または「ディスプレイアンダーラン(Display Under Run)」または「ディスプレイティアリング(Display tearing)」と呼ばれることが多い。
【０００６】
ハードウェア要素がメモリ要素から十分なスループットまたは帯域幅を受け取らないときの潜在的障害の別の例とて、PCD中のカメラがセンサからデータを受け取り、そのデータをDRAMに書き込む場合がある。十分なデータ量が固定時間期間内にDRAMに書き込まれない場合、これによりカメラエンジンは、入力カメラデータを失うことがある。そのようなエラー状態は、当業者によって理解されるように、当技術分野では「カメラオーバーフロー(Camera overflow)」または「カメラ画像破損(Camera Image corruption)」と呼ばれることが多い。
【０００７】
潜在的障害の別の例は、モデムコアが重大なタスクを完了させるために固定期間にDRAMとの間で十分なデータを読み取る/書き込むことができないことである。重大なタスクが期限内に完了しなかった場合、モデムファームウェアがクラッシュすることがあり、PCDの音声またはデータ呼が時間期間に失われ、インターネット接続が不調に見える(すなわち、インターネット接続中に動きが鈍い)ことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、当技術分野では、モバイルフォンなどのPCDにおいて目につく上記のエラー状態を低減および/または解消するために共有リソースを利用することのある、PCD内で安全なダウンタイム期間を管理する必要がある。
【課題を解決するための手段】
【０００９】
ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するための方法およびシステムは、ポータブルコンピューティングデバイスの容認不可能期限逃し(unacceptable deadline miss)要素に関するダウンタイム期間のトレランスを判断することを含む。本開示では、容認不可能期限逃し("UDM")要素は、背景技術セクションで説明したようなPCD100の重大または壊滅的な障害を引き起こす可能性があるハードウェア要素および/またはソフトウェア要素である。次に、ダウンタイム期間の判断されたトレランスが、ポータブルコンピューティングデバイス内のサービス品質("QoS")コントローラなどの中央ロケーションに送信されてもよい。
【００１０】
QoSコントローラは、ダウンタイム期間のトレランスが調整される必要があるかどうかを判断してもよい。トレランスが調整される必要がある場合、QoSコントローラは、トレランスを発生させたUDM要素に応じて、トレランスを上方または下方に調整してもよい。
【００１１】
QoSコントローラは、ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信する場合がある。QoSコントローラは、ダウンタイム要求が調整される必要があるかどうかを判断してもよい。ダウンタイム要求を発行したデバイスのタイプに基づいてダウンタイム要求が調整される必要があるとQoSコントローラが判断した場合、QoSコントローラは、ダウンタイム要求の値を上方または下方に調整してもよい。
【００１２】
次に、QoSコントローラは、実行のためにダウンタイム要求を選択し、次いで、選択されたダウンタイム要求によって影響されるポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素はどれであるかを識別してもよい。QoSコントローラは、影響される容認不可能期限逃し要素が、選択されたダウンタイム要求の持続時間に適切に機能することができるかどうかを判断してもよい。
【００１３】
影響される容認不可能期限逃し要素が、選択されたダウンタイム要求の持続時間中に適切に機能することができる場合、QoSコントローラは、選択されたダウンタイム要求を要求した1つまたは複数のデバイスに対してダウンタイム要求を許可してもよい。
【００１４】
影響される1つまたは複数の容認不可能期限逃し要素が、選択されたダウンタイム要求の持続時間中に適切に機能することができない場合、QoSコントローラは、すべての容認不可能期限逃し要素が、選択されたダウンタイム要求の持続時間に適切に機能することができるようになるまで、ダウンタイム要求を発行しなくてもよい。
【００１５】
待機期間中に、QoSコントローラは、所定の許容可能ダウンタイム期間を有する1つまたは複数の容認不可能期限逃し要素の優先度を引き上げてもよい。
また、待機期間中に、QoSコントローラは、容認不可能期限逃し要素および非容認不可能期限逃し要素のうちの少なくとも1つの帯域幅を調整するためのコマンドを発行してもよい。
【００１６】
図面における同様の参照番号は、特に示されていない限り、様々な図を通して同様の部分を参照している。"102A"または"102B"などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在している2つの同様の部分または要素を区別することができる。参照番号がすべての図において同じ参照番号を有するすべての部分を含むことが意図されるとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【００１７】
【図１】共有リソースの安全なダウンタイムを管理するためのポータブルコンピューティングデバイス(PCD)内の例示的なシステムの機能ブロック図である。
【図２】容認不可能期限逃し("UDM")ハードウェア要素の例示的なTDPレベルセンサの機能ブロック図である。
【図３】別の例示的な実施形態による、容認不可能期限逃し("UDM")ハードウェア要素の別の例示的なTDPレベルセンサの機能ブロック図である。
【図４】メモリコントローラなどの1つまたは複数のダウンタイム要求側要素からのダウンタイム要求を管理するためのダウンタイムマッピングテーブルの例示的な一実施形態である。
【図５】メモリコントローラなどの1つまたは複数のダウンタイム要求側要素からのダウンタイム要求を管理するためのダウンタイムマッピングテーブルの別の例示的な実施形態である。
【図６】1つまたは複数のUDM要素および/または非UDM要素をスロットリングすることによって1つまたは複数のダウンタイム要求側要素からのダウンタイム要求を管理するためのQoSポリシーマッピングテーブルの例示的な一実施形態である。
【図７】PCD内で共有リソースの安全なダウンタイムを管理するための例示的な方法を示す論理フローチャートである。
【図８】PCD内で共有リソースの安全なダウンタイムを管理するための方法およびシステムを実現するための、ワイヤレス電話の形態によるPCDの例示的で非限定的な態様の機能ブロック図である。
【発明を実施するための形態】
【００１８】
「例示的」という単語は、本明細書において、例、事例、または例示として機能することを意味するために使用される。「例示的」として本明細書で説明するいずれの態様も、排他的であるか、他の態様よりも好ましいか、または有利であると、必ずしも解釈されるべきでない。
【００１９】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「アプリケーション」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルのような、本質的に実行可能ではないファイルを含むこともある。
【００２０】
本明細書で使用される、「構成要素」、「データベース」、「モジュール」、「システム」、「処理構成要素」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されるアプリケーションとコンピューティングデバイスの両方が構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、構成要素は、1つのコンピュータ上に局在化され、かつ/または2つ以上のコンピュータ間で分散されてもよい。加えて、これらの構成要素は、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行されてもよい。構成要素は、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システム中の別の構成要素と、かつ/または、インターネットなどのネットワークにわたって他のシステムと対話する、1つの構成要素からのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
【００２１】
本明細書では、「中央処理装置("CPU")」、「デジタル信号プロセッサ("DSP")」、および「チップ」という用語は互換的に使用される。さらに、CPU、DSP、またはチップは、「コア」と本明細書では全般的に呼ばれる1つまたは複数の別個の処理構成要素からなることができる。
【００２２】
本明細書では、「作業負荷」、「プロセス負荷」および「プロセス作業負荷」という用語は互換的に使用され、一般に、所与の実施形態における所与の処理構成要素に関連付けられた処理負担または処理負担の割合を対象にする。上記で定義されるものに加えて、「処理構成要素」は、限定はしないが、中央処理装置、グラフィカル処理ユニット、コア、メインコア、サブコア、処理エリア、ハードウェアエンジンなど、またはポータブルコンピューティングデバイス内の集積回路の中もしくは外にある任意の構成要素とすることができる。
【００２３】
本明細書では、「ポータブルコンピューティングデバイス」("PCD")という用語は、バッテリーなどの限られた容量の電源で動作する任意のデバイスを説明するために使用される。バッテリー式PCDは数十年にわたって使われてきたが、第3世代("3G")および第4世代("4G")のワイヤレス技術の出現に結び付けられる、充電式バッテリーにおける技術的進歩により、複数の機能を有する数多くのPCDが可能になった。したがって、PCDは、とりわけ、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述のデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータ、ノートブックコンピュータ、ウルトラブックコンピュータ、タブレットパーソナルコンピュータ("PC")であってもよい。だが、特に、解決策の例示的な実施形態がPCDの文脈内で本明細書で説明されるが、解決策の範囲は、上記で定められたPCDにおける適用例に限定されない。たとえば、解決策のいくつかの実施形態が、自動車の適用例において使用するのに適している可能性が想定される。本明細書が想定する解決策の自動車ベースの実装形態の場合、自動車は、当業者が認識するように、その特定の実施形態のための"PCD"と考えられてもよい。したがって、解決策の範囲は、適用可能性においてPCD自体に限定されない。別の例として、本明細書で説明するシステムは、ラップトップコンピュータまたはノートブックコンピュータなどの通常のポータブルコンピュータにおいて実装され得る。
【００２４】
図1は、共有リソースの安全なダウンタイムを管理するためのポータブルコンピューティングデバイス("PCD")100(図8参照)内の例示的なシステム101の機能ブロック図である。システム101は、システムオンチップ("SoC")102ならびにメモリデバイス112および外部ダウンタイムリクエスタ229などのオフチップデバイスを備えてもよい。SoC102上では、システム101は、容認不可能期限逃し("UDM")コア222aなどの1つまたは複数のUDM要素に結合されたサービス品質("QoS")コントローラ204を備えてもよい。詳細には、QoSコントローラ204は、4つのUDMコア222a1、222a2、222a3、および222a4に結合されてもよい。
【００２５】
本開示では、容認不可能期限逃し("UDM")要素は、上記の背景技術セクションで説明したようなPCD100の重大または壊滅的な障害を引き起こす可能性があるハードウェア要素および/またはソフトウェア要素である。詳細には、UDM要素222aは、限定はしないが、当業者によって理解されるように、「ディスプレイアンダーフロー」、「ディスプレイアンダーラン」、「ディスプレイティアリング」、「カメラオーバーフロー」、「カメラ画像破損」、通話の切断、インターネット接続の不調などのような例示的なエラー状態を引き起こす可能性がある要素である。
【００２６】
PCD100の任意のハードウェア要素および/またはソフトウェア要素がUDM要素222aとして特徴付けられ、扱われてもよい。UDMコア222a1〜a4などの各UDM要素222aは、QoSコントローラ204によって受信および監視される許容可能ダウンタイム期間("TDP")信号"B"を生成するTDPセンサ"A"を備えてもよい。TDP信号"B"は、時間量を含んでもよく、またはそれは、5レベルベースのシステムのうちのレベル1などのレベルを含んでもよい。TDPレベルまたは持続時間量信号Bを生成するTDPセンサAのさらなる詳細は、図2に関連して以下でさらに詳細に説明する。
【００２７】
非UDMコア222b1〜b4などの他のハードウェア要素が、PCD100およびシステム101の一部であってもよい。非UDMコア222b1〜b4は、TDPレベルセンサAを備えていなくても、含んでいなくてもよい。代替的に、他の例示的な実施形態では、非UDMコア222b1〜b4がTDPレベルセンサAを有する可能性があるが、これらの非UDMハードウェア要素222bのこれらのセンサAがQoSコントローラ204に結合されていないか、またはスイッチ(図示せず)がこれらのTDPレベルセンサAを「オフ」位置にして、QoSコントローラ204がこれらの指定された/割り当てられた非UDMハードウェア要素222bからTDPレベル信号Bを一切受信しないようにしている。
【００２８】
各UDMコア222aおよび非UDMコア222bは、トラフィックシェーパー(shaper)またはトラフィックスロットル(throttle)206に結合されてもよい。各トラフィックシェーパーまたはトラフィックスロットル206は、相互接続部210に結合されてもよい。相互接続部210は、当業者によって理解されるように、1つまたは複数のスイッチファブリック、リング、クロスバー、バスなどを備えてもよい。相互接続部210は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、およびレシーバのような、簡単にするために省略されている追加の要素を有してもよい。さらに、相互接続部210は、上述の構成要素の間での適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含んでもよい。相互接続部210は、1つまたは複数のメモリコントローラ214に結合されてもよい。システム101の代替例では、トラフィックシェーパーまたはトラフィックスロットル206は、相互接続部210に統合される場合がある。
【００２９】
メモリコントローラ214は、メモリ要素112に結合されてもよい。メモリ要素112は、揮発性メモリまたは不揮発性メモリを備えてもよい。メモリ要素112は、限定はしないが、ダイナミックランダムアクセスメモリ("DRAM")、または内部スタティックランダムアクセスメモリ("SRAM")メモリ("IMEM")を含んでもよい。
【００３０】
QoSコントローラ204は、スロットルレベルコマンドライン208を介して個別のトラフィックシェーパーまたはトラフィックスロットル206にコマンド信号を発行してもよい。同様に、QoSコントローラ204は、(図1において参照符号"H"により指定されてもいる)データライン218を介して個別のメモリコントローラ214にメモリコントローラダウンタイム許可信号を発行してもよい。QoSコントローラ204は、必ずしも要求が行われた順序またはときに限らず、ダウンタイム許可信号を通信してもよい。テーブル400および500を使用してQoSコントローラ204によって行われるUDM影響判断に応じて、メモリコントローラ214のようないくつかのダウンタイムリクエスタまたは要求側要素がそれらのダウンタイム許可を迅速に受信する場合がある一方、他が長い時間待機する場合がある。テーブル400および500のさらなる詳細は、図4〜図5に関連して以下で説明する。
【００３１】
QoSコントローラ204はまた、データライン218に沿って、メモリコントローラ214の1つまたは複数の共有リソースポリシーを変更するためのコマンドを発行してもよい。QoSコントローラ204は、限定はしないが、UDMコア222a1〜a4などのUDM要素222aによって生成されたTDPレベル信号Bを監視してもよい。QoSコントローラ204はまた、相互接続部およびメモリコントローラの周波数を監視してもよい。
【００３２】
上記で説明したように、その入力のうちの1つとして、QoSコントローラ204は、UDMコア222aなどの指定UDMハードウェア要素222の各々からTDPレベル信号Bを受信する。各UDMハードウェア要素222は、TDPレベル信号Bを生成するTDPレベルセンサAを有する。
【００３３】
TDPレベル信号Bは、UDMハードウェア要素222aが期限に間に合わない危険および/または障害の危険にさらされる前に低帯域幅または帯域幅なしを許容することができるダウンタイムのレベルまたは量を示す情報を含んでもよい。障害は、限定はしないが、ディスプレイエンジン、カメラ、およびモデムなどのハードウェアデバイスに関する背景技術セクションで上述した1つまたは複数のエラー状態を含む場合がある。
【００３４】
各TDPレベル信号Bは、それぞれのUDM要素222aに対して一意であってもよい。言い換えれば、第1のUDMコア222a1によって生成されるTDPレベル信号Bは、第2のUDMコア222a2によって生成されるTDPレベル信号Bに対して異なってもよい。たとえば、第1のUDMコア222a1によって生成されるTDPレベル信号Bが、5つの単位の大きさまたはスケールを有する場合がある一方、第2のUDMコア222a2によって生成されるTDPレベル信号Bが、3つの単位の大きさまたはスケールを有する場合がある。差異は、大きさまたはスケールに限らない。当業者によって理解されるように、一意のUDM要素222aごとに他の差異が存在する場合がある。各TDPレベル信号Bは一般に、UDM要素222aに関して障害のリスクが発生するかもしれない前にUDM要素222aが許容することができるダウンタイム値に対応する。
【００３５】
QoSコントローラ204は、図1に示すような4つのUDMコア222a1〜222a4などのそれぞれのUDMハードウェア要素222からQoSコントローラ204に送信されるTDPレベル信号Bを監視する。TDPレベル信号Bを監視することに加えて、QoSコントローラ204は、別の入力として相互接続部およびメモリコントローラの周波数も監視する。TDPレベル信号Bならびに相互接続部およびメモリコントローラの周波数218に基づいて、QoSコントローラ204は、図1に示すような4つのUDMコア222a1〜222a4ならびに非UDMコア222b1-b4など、監視されている各ハードウェア要素222に関する適切なQoSポリシーを判断する。
【００３６】
QoSコントローラ204は、UDMコア222a1〜a4と非UDMコア222b1〜b4の両方を含む各それぞれのハードウェア要素222に関する個別のQoSポリシー225を維持する。個別のQoSポリシー225がQoSコントローラ204内に含まれるものとして図1に示されているが、ポリシー225に関するQoSポリシーデータが、QoSコントローラ204によってアクセスされるメモリ112内に存在する場合もある。代替的に、または追加として、各ハードウェア要素222に関するQoSポリシー225は、限定はしないが、QoSコントローラ204内に含まれるキャッシュタイプメモリ(図示せず)などのローカルメモリに記憶されてもよい。当業者によって理解されるように、QoSポリシー225が記憶されてもよい他の変形形態も、本開示の範囲内に含まれる。
【００３７】
QoSコントローラ204はまた、UDM要素222から受信されたTDP信号Bと比較するために、1つまたは複数のダウンタイムマッピングテーブル400、500(図4〜図5参照)を維持してもよい。QoSコントローラ204は、各UDM要素222aが耐えることができるダウンタイムを示す拡大/縮小に関して、すべてのUDM要素222からのTDP信号を監視してもよい。QoSコントローラ204は、システム101に一層の安全マージンを加えるために、各UDM要素222aが許容することができる受信されたTDPレベルBの値/大きさを調整してもよい。
【００３８】
TDP信号に対するこの調整は、TDP信号Bを発生させたUDM要素222aに応じて、TDPレベル/値/量をより高いレベルまたはより低いレベルに再マッピングすることを含んでもよい。QoSコントローラ204は、どのUDM要素222aがどのダウンタイムクライアントに敏感であるかを理解するように、ソフトウェア、ハードウェア、および/またはファームウェアにおいてプログラムされてもよい。
【００３９】
コア222aなどのUDM要素222aが複数のダウンタイムリクエスタに敏感である場合、UDM要素のダウンタイムトレランスは通常、すべてのダウンタイムトレランスの最低限を表すべきであり、またはUDM要素222aは、敏感であるダウンタイムリクエスタの各々に関するダウンタイムトレランスを送信しなければならない。QoSコントローラ204は、限定はしないが、相互接続部210、メモリコントローラ214、および/またはメモリ要素112のような非UDM要素を含むことがあるすべてのダウンタイムリクエスタから、データライン212'(212-「プライム」)からダウンタイム要求"D"を受信する場合がある。
【００４０】
ダウンタイムの要求がデータライン212'に沿ってQoSコントローラ204に来るとき、当該要求は通常、要求されたダウンタイム期間("RDP")を含む。複数のリソースからのダウンタイムの要求は、アグリゲータ220によりアグリゲートされてもよい。アグリゲータは、当業者によって理解されるように、マルチプレクサを含む場合がある。(要求されたダウンタイム期間“RDP”を含む場合がある)要求を受信すると、QoSコントローラ204は、どのUDM要素222aがダウンタイム要求によって影響されるかを識別するために、ダウンタイムマッピングテーブル400、500(図4〜図5参照)をチェックしてもよく、テーブル400、500を調べることによって決定を下してもよい。テーブル400、500のさらなる詳細は、以下で説明する図4〜図5に示される。
【００４１】
図1の例示的な実施形態では、ダウンタイム要求データライン212a〜dが示されている。ダウンタイム要求ライン212a〜cは、それぞれのメモリコントローラ214a〜nに結合される。一方、ダウンタイム要求ライン212dは、SoCピン227を介して外部ダウンタイムリクエスタ229と(SoC102の外で)オフチップで結合される。外部ダウンタイムリクエスタ229は、SoC102に結合される場合がある任意のタイプのデバイスを含んでもよい。例示的な一実施形態によれば、外部ダウンタイムリクエスタ229は、Peripheral Component Interconnect Express("PCI-e")ポート198(図1に示されていないが、図8参照)を使用する周辺デバイスを含んでもよい。
【００４２】
データライン212'に沿ったメモリコントローラ214および外部ダウンタイムリクエスタ229などからの、図1において文字"C"によって参照されるダウンタイム要求の一部は同期化されてもよく、したがって要求は、以下で説明するダウンタイムマッピングテーブル500を示す図5に関連して説明するように、個別に処理されるのではなく、グループに束ねられてもよい。Cにおける要求はまた、文字"D"においてアグリゲートおよび/または多重化されてもよい。
【００４３】
データライン212'に沿って受信されたダウンタイム要求により、QoSコントローラ204は、メモリコントローラ214などのリクエスタの所定のグループが同期化されることを知るために、ダウンタイムマッピングテーブル500を使用してもよい。この場合、QoSコントローラ204は、グループにおける1つのダウンタイムリクエスタからの1つの要求を、グループにおけるすべてのリクエスタからの要求として扱う。QoSコントローラ204からの許可は、図1において文字"H"によって指定されてもいるように、データライン216に沿ってグループにおけるすべてのダウンタイム要求側要素に送信される。
【００４４】
QoSコントローラ204は、どのUDM要素222aが各共有リソースのダウンタイムによって影響されるかを関連付ける。ダウンタイムを要求している共有リソースに依存するすべてのUDM要素222aが、要求されたダウンタイムを耐えることが可能である場合、ダウンタイム要求は(メモリコントローラ214および外部ダウンタイムリクエスタ229などの1つまたは複数の要求側共有リソースに対して)許可されてもよい。すべてのUDM要素222aが要求されたダウンタイムを耐えることが可能であるわけではない場合、QoSコントローラ204は、いくつかの反応モードを有する。
【００４５】
モード1:すべてのUDM要素222aが要求されたダウンタイム中に動作することができるようになるまで待機する、または
【００４６】
モード2:図1に示すUDMコア222a1〜a4などのUDM要素222aのダウンタイムトレランスを改善するために、シェーパー/スロットル206を使用してシステム101においてトラフィックを積極的に操作する。
【００４７】
ダウンタイム要求が許可されると、QoSコントローラ204はまた、任意で、非UDM要素222b(全部または一部)を、特定のダウンタイムが終わる/終了する/完了するとシステム101をあふれさせる要求を生成しないように、ダウンタイム中にスロットル/シェーパー206を介してシェーピング/スロットリングしてもよい。要求されたダウンタイム期間が完了/終了すると、QoSコントローラ204はまた、任意で、許可されたダウンタイム期間からUDM要素222aが回復するのを確実にするために既定/所定の持続時間、非UDM要素222b(全部または一部)をシェーピング/スロットリングしてもよい。QoSコントローラ204はまた、任意で、すべての許可されたダウンタイム期間からUDM要素222aが回復するのを確実にするために、連続するダウンタイム要求の許可の間隔をあけてもよい。
【００４８】
QoSコントローラ204は、許可されたダウンタイム期間中ならびに許可されたダウンタイム期間外に非UDM要素222bをシェーピング/スロットリングしてもよい。アグレッサ非UDM要素222bをスロットリング/シェーピングすることによって、または十分に高いTDPを有するUDM要素222aをスロットリングすることによって、不十分なTDP時間を有するUDM要素222aは、システム101からより多くの帯域幅および/またはより低いレイテンシを受け取り、それにより、将来のダウンタイム要求に対するトレランスが改善する。
【００４９】
図1に見られるように、QoSコントローラ204は、UDMコア222a1〜222a4からのみTDPレベル信号Bを受信していてもよいが、QoSコントローラ204は、UDMコア222a1〜a4に加えて非UDMコア222b1〜b4を含む各ハードウェア要素222を監視および制御する。監視されている各ハードウェア要素222に関するQoSポリシーの適用は、参照符号"F"によって指定されてもいるスロットルレベルコマンドライン208を介して、特定のハードウェア要素222に割り当てられる各それぞれのシェーパー/スロットル206に伝達/中継される。
【００５０】
各シェーパー/スロットル206は、QoSコントローラ204によって管理されるトラフィックシェーピング/スロットリングレベルコマンドライン208からスロットルレベルコマンドを連続的に受信するハードウェア要素を備えてもよい。各トラフィックシェーパーまたはトラフィックスロットル206は、スロットルレベルコマンドライン208を介してQoSコントローラ204によって指定された帯域幅レベル"G"と合致するように、それぞれのコア222から到来する帯域幅を調整する。各スロットル206は、以下の技術、すなわち、データ信号に論理関数を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路("ASIC")、1つもしくは複数のプログラマブルゲートアレイ("PGA")、1つもしくは複数のフィールドプログラマブルゲートアレイ(“FPGA")などのうちのいずれかまたはその組合せにより実装されてもよい。
【００５１】
前に述べたように、各ハードウェア要素222は、QoSコントローラ204の制御下にあるトラフィックシェーピング/スロットリングレベルコマンドライン208に結合されるそれぞれのトラフィックシェーパーまたはトラフィックスロットル206を有する。これは、TDPレベル信号Bを送信することまたは発生させることがあるUDMハードウェア要素222aだけでではなく、各ハードウェア要素222をQoSコントローラ204が制御しているという点で、システム101の1つの重要な態様であるにすぎない。
【００５２】
要素222aと要素222bの両方を含む各ハードウェア要素222をQoSコントローラ204が直接制御しているので、QoSコントローラ204は、UDMタイプのハードウェア要素である場合もない場合もあるアグレッサコア222などのアグレッサハードウェア要素222のトラフィックまたは帯域幅をスロットリングしてもよい。非UDMコア222b1〜b4などのアグレッサハードウェア要素222の帯域幅をシェーピング/スロットリングすることによって、UDMコア222a1〜a4は、システム101からより多くの帯域幅および/またはより低いレイテンシを受け取り、それによって、UDMコア222a1〜a4などのそれぞれのハードウェア要素222のそれぞれのTDPレベルを下げることができる。QoSコントローラ204による非UDMハードウェア要素222bのようなアグレッサハードウェア要素222のこのシェーピング/スロットリングはまた、背景技術セクションで上述したようなUDMハードウェア要素222aに関する障害を防止および/または回避することができる。
【００５３】
QoSコントローラ204は、メモリコントローラ共有リソースポリシーコマンドを生成し、図1に示すメモリライン218を介して発行してもよい。このメモリコントローラ共有リソースポリシーデータはQoSコントローラ204によって、UDMハードウェア要素222aからのTDPレベル信号Bならびに相互接続部およびメモリコントローラの周波数に基づいて決定される。
【００５４】
当業者によって理解されるように、各メモリコントローラ214は、DRAMリソース最適化ポリシーなどの複数の共有リソースポリシーを有する場合がある。これらのポリシーのすべては通常、より低い優先度を有するデータトラフィックよりも、より高い優先度を有するデータトラフィックに有利に働く。高優先度トランザクションの受信とメモリまたはDRAM112に対する低優先度トランザクションの進行中ストリームの中断との間の遅延は、共有リソースポリシーごとに異なる場合がある。
【００５５】
共有リソースがメモリコントローラ214を含む場合、そのポリシーは、要求されたダウンタイムのための必要なTDPをUDM要素222aが達成するのを支援するためにメモリコントローラ214にその最適化ポリシーを変更させる「メモリコントローラQOSポリシー」と呼ばれる場合がある。共有リソースがオンチップPCIコントローラ199(図8参照)またはPCIペリフェラルポート198などのオフチップ外部リクエスタ229を含む場合、共有リソースは、要求されたダウンタイムのための必要なTDPをUDM要素222aが達成するのを支援するために、UDM要素222aとの間のトラフィックに有利に働くようにその内部アービトレーションポリシーを変更することができる。
【００５６】
図1の例示的な実施形態では、第1のUDMコア222a1は、相互接続部210と結合する2つのデータ経路を有する。第1のUDMコア222a1からの各データ経路は、第1のトラフィックシェーパー/スロットル206aおよび第2のトラフィックシェーパー/スロットル206bなどのそれ自体のそれぞれのトラフィックシェーパー/スロットル206を有してもよい。
【００５７】
図1では、潜在的非UDMアグレッサコア222b1のためのトラフィックシェーピング/スロットリングの一例として、第1の非UDMアグレッサコア222b1は、相互接続部210への一連の要求において1ギガバイト毎秒("GBps")のアグリゲート帯域幅を発行しようと試みる場合がある。これらの連続する要求は最初に、トラフィックシェーパー/スロットル206cによって受信される。トラフィックシェーパー/スロットル206cは、QoSコントローラ204およびQoSコントローラ内の非UDMコアに割り当てられたそれぞれのコアQoSポリシー225Bの制御下にあり、これらの一連の要求を「シェーピング」、「スロットリング」して、相互接続部に提示された帯域幅が1GBpsから100メガバイト毎秒("MBps")に縮小し、その結果、1つまたは複数のUDMコア222aが相互接続部210を介してそれらのそれぞれのメモリ要求のためのより多くの帯域幅を有するようにしてもよい。
【００５８】
次に図2を参照すると、この図は、図1および図8に示すディスプレイコア222aなどの容認不可能期限逃し("UDM")ハードウェア要素222の例示的なTDPレベルセンサA'(「プライム」)の機能ブロック図である。TDPレベルセンサAは、先入れ先出し(FIFO)データバッファ302およびFIFOレベルTDP計算部306aを備える。各FIFOデータバッファ302は、読取りポインタと書込みポインタとのセット、ストレージおよび制御論理を含んでもよい。ストレージは、スタティックランダムアクセスメモリ("SRAM")、フリップフロップ、ラッチ、または任意の他の適切な形式のストレージであってもよい。
【００５９】
例示的な一実施形態によれば、各FIFOデータバッファ302は、ハードウェア要素222によって受信されたデータを追跡してもよい。たとえば、ハードウェア要素222がディスプレイエンジンを含むと仮定する。ディスプレイエンジン222またはディスプレイコントローラ128(図8参照)はDRAMメモリ112から、FIFOデータバッファ302に記憶されることになるディスプレイデータを読み取る。次いで、ディスプレイエンジン222(または図8のディスプレイコントローラ128)は、FIFOデータバッファ302からディスプレイデータを取り出し、それをディスプレイまたはタッチスクリーン132(図8)に送信する。
【００６０】
FIFOデータバッファ302は、TDP計算部306aにより追跡されることがある充填レベル304を有する。FIFOデータバッファ302がエンプティになるか、あるいはディスプレイまたはタッチスクリーン132に送信すべきデータを有しない場合、「ディスプレイアンダーフロー」または「ディスプレイアンダーラン」または「ディスプレイティアリング」として上記で説明したエラー状態が発生することがあるので、FIFOデータバッファ302の充填レベル304の値が減少するにつれて、TDPレベルは低下する。TDP計算部306aの出力は、上記で説明したようにQoSコントローラ204に送信されるTDPレベル信号Bである。
【００６１】
ディスプレイエンジンの例では、ディスプレイエンジン222の許容可能ダウンタイム期間("TDP")は、DRAMメモリ112がダウンタイムに起因して読取り帯域幅を提供していない場合に、(FIFOからデータを読み取り、図8のディスプレイ132に送信することによって)現在のFIFOレベルをゼロまで落とすのに要する時間を表す。TDPは、上記で説明したFIFO302をエンプティにするための「未加工」時間と追加的安全性の係数との積を含んでもよい。これは、TDP計算部306が、「未加工」時間を判断し、それを安全性の係数で乗算して、図2に示すTDPレベルまたは値Bになる場合があることを意味する。
【００６２】
別の例示的な実施形態によれば、図2のUDMハードウェア要素222aがカメラコントローラを含むと仮定する。SoC102内のカメラコントローラ(図示せず)は、カメラセンサ148(図8参照)からデータを読み取り、それをFIFOデータバッファ302内に記憶する。次いでカメラコントローラは、FIFOデータバッファ302からDRAMメモリ112にカメラデータを出力する。この例示的な実施形態では、FIFOデータバッファ302がカメラデータからオーバーフローした場合、一部のカメラデータが失われることがあり、「カメラオーバーフロー」または「カメラ画像破損」のエラー状態が発生することがある。
【００６３】
したがって、この例示的な実施形態によれば、FIFO充填レベル304が上昇するにつれて、TDPレベルBは、TDP計算部306aによって判断されるように低下する。カメラセンサ148のこのTDPレベルは、当業者によって理解されるように、前に説明したTDPレベルのディスプレイ実施形態とは反対である。言い換えれば、このカメラコントローラ実施形態のTDPは、DRAMメモリ112がダウンタイムに起因して書込みトランザクションに応答していない場合に、FIFOレベル304を現在のレベルからフルまで引き上げるのに要する時間を含む。
【００６４】
次に図3を参照すると、この図は、図1および図8に示すディスプレイコア222aなどの、別の例示的な実施形態による容認不可能期限逃し("UDM")ハードウェア要素222の別の例示的なTDPレベルセンサA''(「ダブルプライム」)の機能ブロック図である。ディスプレイまたはカメラエンジン222aは、ディスプレイエンジン実施形態におけるメモリエンジンからの読取りの場合、FIFOレベル304が一定のレベルを上回るときはいつでも、カメラ実施形態におけるメモリエンジンへの書込み機能の場合、FIFOレベル304が一定のレベルを下回るときはいつでも、(実際の時間ではなく)TDPレベルを発行するためにTDP計算部306bを使用するようにプログラムできる。
【００６５】
TDP計算部306bは、FIFOレベルとTDPレベルとのマッピングテーブルを含んでもよい。TDP計算部306bによって決定された許容可能ダウンタイム期間("TDP")レベルは、現在のFIFO充填に比例する所定の時間量をこのUDM要素222aが許容できることをQoSコントローラ204にそれぞれ示す数(0, 1, 2, 3, ..., N)のセットを含んでもよい。UDM要素222aが複数のダウンタイムリクエスタに敏感である場合、TDP計算部306bを介してUDM要素222aは、すべてのダウンタイムリクエスタに関する最低ダウンタイムトレランスを表すTDPまたはTDPレベルBを計算するか、またはUDM要素222aは、異なるダウンタイムリクエスタにそれぞれ対応する異なるTDP/TDPレベル信号Bを送信してもよい。代替的に、TDP計算部は、UDM要素222aのトレランスを表すTDP/TDPレベルBを、同時にダウンタイム期間に入っている場合があるダウンタイムリクエスタのセットに送信してもよい。たとえば、すべて同期方式で実行されるDRAMコントローラ214のセットは、周波数切替え事象に起因して同時にダウンタイム期間に入る場合がある。
【００６６】
他の例示的な実施形態によれば、図2〜図3のUDM要素222aおよびそれのそれぞれのTDP計算部306は、UDM要素222aによってすでに完了した1つまたは複数のタスクの割合およびUDM要素222aのためのタスクが始まってからの経過時間を連続的にチェックするプログラム可能計算エンジン上のソフトウェアベースのモジュールまたはファームウェア(図2に示されていない)を備えてもよい。
【００６７】
TDP計算部306のソフトウェア("SW")またはファームウェア("FW")実施形態は、タスクの完了時間を推定してもよく、それを(操作者によって指定された)ターゲット完了時間と比較する。TDP計算部306によって判断された推定完了時間がターゲット完了時間よりも大きい(>)場合、TDP計算部306のSW/FWは、TDP信号Bの差をQOSコントローラ204に示す。計算されたTDP信号/レベルBの値は、TDP計算部306のSW/FWによって、不測の将来の事象または経過タスク時間、完了したタスクの割合、ターゲット完了時間、およびUDM要素222aの計算エンジン上の同時負荷に基づく推定完了時間の計算の不正確さを考慮して下げることができる。
【００６８】
別の例示的な実施形態によれば、UDM要素222aは、すでに完了したタスクの割合およびUDM要素222aによって実行するために1つまたは複数のタスクが始まってからの経過時間を連続的にチェックする固定関数計算エンジンを備えるTDP計算部306のハードウェア("HW")要素(図示せず)を備えてもよい。TDP計算部306の専用HW要素は、タスクの完了時間を推定してもよく、それを(ユーザによって指定された)ターゲット完了時間と比較する。
【００６９】
TDP計算部306によって判断された推定完了時間がターゲット完了時間よりも大きい(>)場合、TDP計算部306のこのHW要素は、TDP信号Bの差をQOSコントローラ204に示す。計算されたTDP信号/レベルBの値は、TDP計算部306のHW要素によって、不測の将来の事象または経過タスク時間、完了したタスクの割合、ターゲット完了時間、およびUDM要素222aの計算エンジン上の同時負荷に基づく推定完了時間の計算の不正確さを考慮して下げることができる。
【００７０】
図2〜図3および図1において文字"A"によって全般的に参照されるTDP計算部306のそれらの図に鑑みて、各UDM要素222aが耐えることができるダウンタイムの持続時間の指示(TDP信号B)を各UDM要素222aがQoS(ダウンタイムトレランス)コントローラ204に送信することは明らかである。その指示または信号Bは、各UDM要素222aがデータダウンタイムを耐えることができる期間を示す明示的なTDP値、またはUDM要素222aが既定の安全時間値を耐えることができることをそれぞれ示すTDPレベルを含んでもよい。
【００７１】
図1〜図3において文字"B"として参照されるTDPレベルは、(上昇または低下する)単調方式で定められてよいが、等しく分散される必要はない。たとえば、「レベル2」は、コア222aのようなUDM要素222aが「レベル1」よりも多くのダウンタイムを耐えることができることを示してもよい。別の例として、コアのような1つのUDM要素222aの「レベル2」値は、別のコアなどの別のUDM要素222aによって示される「レベル2」よりも多くのダウンタイムを耐えることが可能であることを示してもよい。
【００７２】
再び図1を参照すると、図1において"C"と標示されたダウンタイム要求は、DRAMメモリコントローラ214、またはPCIコントローラコア(図示せず)、または内部SRAMコントローラ(図示せず)によって生成されてもよい。各ダウンタイム要求側要素は、内部的に、要求されたダウンタイム期間("RDP")の推定値を生成し、RDP以下のダウンタイムに進むための要求を生成してもよい。
【００７３】
メモリコントローラ214などの各ダウンタイム要求側要素は、ダウンタイムをいつ要求するか、およびその期間を決定する。たとえば、外部ダウンタイムリクエスタ229を含むことがあるPCI-EコントローラまたはDRAMメモリコントローラ214は、それのリンクを、経時的な温度/電圧変動に合わせて調整するために周期的に再トレーニングする必要がある場合がある。各コントローラ229または214は、再トレーニング中にDRAM/PCIバスがダウンすることになる期間を判断する能力を有してもよく、コントローラ214/229は、この情報を図1におけるダウンタイム要求Cとしてデータライン212に沿ってQoSコントローラ204に送信してもよい。
【００７４】
メモリコントローラ214は通常、周波数制御HW/SWによって、DRAM周波数を変更するタスクを課せられる。DRAMコントローラ214は、(PLL/DLLロックおよびリンクトレーニングのための)周波数切替え中にDRAMバスがダウンすることになる期間を判断する能力を有し、この情報は、"C"としてデータライン212に沿ってダウンタイム要求としてQoSコントローラ204に伝達されてもよい。
【００７５】
ダウンタイム要求に加えて、メモリコントローラ214などのコントローラはまた、データライン212a〜dに沿ってQoSコントローラ204に送信されるダウンタイム要求の優先度を生成してもよい。ダウンタイム要求の優先度は、要求側デバイスの重要性のレベル(すなわち、限定はしないが、1、2、3...などのような数値)を示してもよい。代替的に、要求の優先度は、要求が行われた時間から始まる、要求側デバイスがダウンタイムに入らなければならなくなる前に待機することができる最大時間を示してもよい。より早い最大待機時間を有するメモリコントローラ214のような要求側デバイスは、QoSコントローラ204によって、より長い最大待機時間を有する要求側デバイスを上回る優先度値を与えられてもよい。
【００７６】
当業者には明らかなように、共有リソースコントローラは、外部ダウンタイムリクエスタ229のような、SoC102の外に存在してもよい。外部コントローラの場合、ダウンタイムの要求および許可または制御時間は通常、図1に示すようにSoCピン227を介して通信される。
【００７７】
図1における参照文字"D"を参照すると、ダウンタイム要求データライン212a〜dは、アグリゲータまたはマルチプレクサ220にアグリゲートおよび結合されてもよい。コントローラ214a〜nおよび外部ダウンタイムリクエスタ229などのすべてのマスタからの複数のダウンタイム要求またはダウンタイム期間("RDP")の要求は、アグリゲータまたはマルチプレクサ220により一緒にマージされ、アグリゲートダウンタイム要求データライン212'(「プライム」)に沿ってQoSコントローラ204に戻る形でルーティングされ/送信されてもよい。これは、SoC102に対する外部ダウンタイム要求と内部ダウンタイム要求の両方がマージされてもよいことを意味する。しかしながら、他の例示的な実施形態(図示せず)では、(SoC102に対する)内部ダウンタイム要求とは別個に外部ダウンタイム要求を維持することが可能である。さらに、他の例示的な実施形態では、各ダウンタイム要求側デバイスは、それ自体の別個のダウンタイム要求データライン212を提供される場合がある。
【００７８】
前記のように、ダウンタイム要求データライン212に沿った各RDP要求は、それに関連する優先度または緊急度レベルを有してもよい。マルチプレクサまたはアグリゲータ220は、アグリゲートデータ要求ライン212'(212-「プライム」)沿ってQoSコントローラ204に複数の要求を送信するときに、より高い優先度の要求を優先させるためのソフトウェア、ハードウェア、および/またはファームウェアを備えてもよい。
【００７９】
2つ以上のダウンタイム要求側デバイスからのより多くの複数のダウンタイム要求が同期化される場合(すなわち、両方の要求側デバイスが同時ダウンタイムを有することのある場合)、これらのダウンタイム要求は、アグリゲータ/マルチプレクサ220によって単一の要求にアグリゲートされてもよい。このシナリオでは、QOSコントローラ204は、ダウンタイム要求側デバイスのこのグループを、単一のダウンタイム要求側デバイスとして扱ってもよい。
【００８０】
代替的に、アグリゲータ/マルチプレクサ220が、ソフトウェアおよび/またはハードウェアの観点からより単純になるように設計される場合、マルチプレクサ220によって受信された複数のダウンタイム要求は、アグリゲートされて「未加工」状態でQoSコントローラ204に送信されなくてもよい。このシナリオでは、QoSコントローラ204は、ダウンタイム要求側デバイスの特定のグループが一緒に同期化されており、単一のリクエスタのように扱われてもよいと(図4〜図5に関連して以下で説明するようなテーブル400および500などのルックアップテーブルを通じて)判断する場合がある。
【００８１】
QoSコントローラ204は、ステートマシンを含んでもよい。ステートマシンは、以下の技術、すなわち、データ信号に論理関数を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路("ASIC")、1つもしくは複数のプログラマブルゲートアレイ("PGA")、1つもしくは複数のフィールドプログラマブルゲートアレイ("FPGA")、ファームウェアを実行しているマイクロコントローラなどのうちのいずれかまたはその組合せにより実装されてもよい。
【００８２】
図1に関連して上記で説明したように、QoSコントローラ204は、1つまたは複数のUDM要素222からTDPレベル信号Bを受信する場合がある。各TDP信号BはQoSコントローラ204によって、PCD100の操作者および/または製造者によって設定/確立されることのあるより低い、またはより高いレベルに再マッピングされてもよい。
【００８３】
たとえば、5単位スケール上の3つの単位の大きさを有するディスプレイコントローラ128からのTDPレベル信号Bが、操作者の定義に従って5つの単位の大きさにマッピング/調整されてもよい一方、カメラ148からの2つのユニットのTDPレベルが、操作者の定義に従って1つの単位の大きさにマッピング/調整されてもよい。この例示的な5単位TDPレベルスケールの場合、1つの単位の大きさは、UDM要素222aによって許容されてもよいダウンタイム期間のより低い時間量を示してもよい一方、5つの単位の大きさは、UDM要素222aによって許容されてもよいダウンタイム期間のより高い時間量を示してもよい。
【００８４】
この例では、操作者の定義は、ディスプレイコントローラ128のUDM要素から発生しているTDPレベル信号Bを、カメラ148のUDM要素から発生しているTDPレベル信号Bと比較して「より重く」重み付けする/シフトさせる場合がある。すなわち、ディスプレイコントローラ128からのTDPレベル信号Bは、より高いTDPレベルに引き上げられてもよい一方、カメラ148からのTDPレベル信号Bは、より低いTDPレベルに引き下げられてもよい。これは、PCD100の操作者/製造者が、いくつかのUDM要素222の場合に敏感度を上げる一方で、他のUDM要素の場合に敏感度を下げるQoSコントローラ204内の定義/スケーリング調整を作成してもよいことを意味する。QoSコントローラによって実行されるマッピング関数の一部である操作者定義/スケーリング調整は、各UDM要素222aおよびそれぞれのトラフィックシェーパー/スロットル206に割り当てられる各QoSポリシー225の一部であってもよい。
【００８５】
QoSコントローラ204はまた、メモリコントローラ214と相互接続部210の両方の周波数218を監視してもよい。UDMコア222aおよび非UDMコア222bごとに、QoSコントローラ204は、再マッピングされたTDPレベルならびに相互接続部210および/またはメモリコントローラ214の周波数を使用して、スロットルトラフィックシェーパー/スロットル"F"を生成する各コア222およびそれのトラフィックシェーパー/スロットル206のQoSポリシー225を[公式またはルックアップテーブルを通じて]計算してもよい。各ポリシー225は、相互接続周波数220Aまたはトラフィックスロットル/シェーピングレベル"G"を指定してもよい。QoSコントローラによってコア222ごとに生成されたQoSポリシー225はまた、1つまたは複数のメモリコントローラ効率最適化ポリシーおよび/または共有リソースポリシーを選択するために、1つまたは複数のメモリコントローラ214a〜Nによって受信および使用される、データライン218に沿って送信される計算/指示メモリコントローラQoSポリシーデータを含んでもよい。
【００８６】
1つのUDMコア222aおよび/または1つの非UDMコア222bからのTDPレベル信号は、そのマッピングアルゴリズムの一部として、すべての他のコア222に影響するとは限らない。QoSコントローラ204は、選択されたUDMコア222aが他のコア222に影響するように設計される場合がある各ポリシー225の一部であるプログラム可能マッピングを有してもよい。
【００８７】
たとえば、UDM要素222aとして指定されたディスプレイコントローラ128(図8参照)からのTDPレベル信号は、GPU182(図8参照)およびデジタル信号プロセッサ("DSP")またはアナログ信号プロセッサ126(図8参照)からであって、CPU110(図8参照)からではないトラフィックに、帯域幅シェーピング/スロットリングを引き起こす場合がある。
【００８８】
別の例として、カメラ148(図8参照)からのTDPレベル信号Bは、QoSポリシー225に従って、割り当てられたメモリコントローラ214のQOSポリシー(最適化レベル)ならびに相互接続部210の周波数に影響するようにプログラムされてもよい。一方、カメラ148からのTDPレベル信号Bは、QoSコントローラ204からデータライン218に沿って通信されるDRAM最適化レベルに影響をもたらすようにはプログラムされない。マッピングの図例として、第1のUDMコア222a1のTDPレベル信号B1が、第1のポリシー225Aと第2のポリシー225Bの両方に「マッピング」されてもよい。同様に、第2のUDMコア222a2のTDPレベル信号B2が、第2のポリシー225Bと第1のポリシー225Aの両方に「マッピング」されてもよい。
【００８９】
UDM要素222からのTDPレベル信号Bのこのマッピングは、QoSコントローラ204に、その機能の次の3つのいずれかまたは組合せを実行させるようにプログラムされてもよい。(i)QoSコントローラ204に、(図1において出力Gとも呼ばれる)UDMおよび/または非UDM要素222bの帯域幅をシェーピングまたは制限するためのコマンドをそれぞれの帯域幅シェーパー/スロットル206に発行させる、(ii)QoSコントローラ204に、相互接続部210の周波数を変更するためのコマンド220Aを周波数コントローラ(図示せず)に発行させる、および/または(iii)QoSコントローラ204に、QoSコントローラ204によって受信されているTDPレベル信号Bと合致する適切なメモリコントローラポリシーを示すメモリコントローラQoSポリシーおよび/または共有リソース信号をデータライン218に沿って1つまたは複数のメモリコントローラ214に発行させる。
【００９０】
各QoSポリシー225は、シェーパー/スロットル206ごとの帯域幅シェーピングポリシーまたはスロットルレベルを含んでもよい。帯域幅シェーピングポリシーまたはスロットルレベルは、特定のUDMまたは非UDM要素が超えるのをシェーパー/スロットル206が許さない値である。帯域幅スロットル値は、最大しきい値として特徴付けられてもよい。しかしながら、他の例示的な実施形態では、帯域幅スロットル値が最小値または最小しきい値の働きをする場合もある。他の実施形態では、シェーパー/スロットル206は、当業者によって理解されるように、最小帯域幅と最大帯域幅の両方を割り当てられ得る。
【００９１】
QoSコントローラ204によって維持される各QoSポリシー225は、所与のシステム周波数におけるいくつかのアクティブなTDPレベル信号Bおよび各信号のTDPレベル(値)をコア222ごとの帯域幅スロットルレベルにマッピングする場合がある1つまたは複数の公式またはルックアップテーブルによって導出されてもよい。
【００９２】
QoSコントローラ204は、各UDMおよび非UDMポリシー225の一部である帯域幅シェーピング/スロットリングレベルを、TDPレベル値および/または周波数の変化に起因してこれらの帯域幅レベルの値がしばしば変わる場合があるので、それぞれのトラフィックシェーパーまたはトラフィックスロットル206に連続的に伝達してもよい。前記のように、図1の非UDMコア222b1〜b4などの非UDM要素222bの帯域幅は、各非UDM要素が各UDM要素222aと同様に割り当てられたスロットル206を有する場合があるので、シェーピング/スロットリングされてもよい。いくつかの動作状態において、非UDMコア222bが、1つまたは複数のUDMコア222aに対してアグレッサコアである場合があるが、UDMコア222aが他のUDMコア222aに対してアグレッサである可能性もある。すべての場合において、コア222ごとに導出されたQoSポリシー225を介してQoSコントローラ204は、メモリコントローラ214および外部ダウンタイムリクエスタ229などの1つまたは複数のダウンタイム要求側デバイスからの1つまたは複数のダウンタイム要求を満たすか、または達成するために、アグレッサコア222a1または222b1の帯域幅スロットルレベルを、それぞれのスロットル206を介して調整してもよい。
【００９３】
たとえば、ディスプレイコントローラ128(図8参照)のUDMコア222aは、いくつかの動作状態ではカメラ148のUDMコア222aに対して帯域幅消費に関してアグレッサであってもよい。これは、ディスプレイコントローラ128のUDMコア222aに割り当てられたQoSポリシー225に従ってQoSコントローラ204が、PCD100の特定の動作状態のために、またあるダウンタイム期間要求を達成するために適したより多くの帯域幅をカメラ148のUDMコア222aに与えるために、スロットル/シェーパー206を介してディスプレイの帯域幅をスロットリングする場合があることを意味する。
【００９４】
次に図4を参照すると、この図は、図1に示すQoSコントローラ204において参照されるダウンタイムマッピングテーブル400の例示的な一実施形態である。ダウンタイムマッピングテーブル400は、キャッシュタイプメモリ中のような、QoSコントローラ204内の内部メモリ(図示せず)内に記憶されてもよい。代替または追加として、ダウンタイムマッピングテーブル400は、QoSコントローラ204によってアクセス可能であるメモリ112中に記憶され得る。
【００９５】
ダウンタイムマッピングテーブル400中の各行402は、ダウンタイムリクエスタの識別情報(列405)およびダウンタイムリクエスタによって影響されることのある各UDM要素222aの識別情報(第2の列407A、第3の列407Bなど)を含んでもよい。たとえば、第1の行402、第1の列407Aでは、列407における"x"の値は、行402におけるダウンタイムリクエスタからのダウンタイム要求を許可するときにUDMのTDP時間が考慮されなければならないことを表す。ダウンタイムリクエスタからのダウンタイム要求されたダウンタイム期間("RDP")を受信すると、ダウンタイムリクエスタに対応するテーブル400中の行402をチェックする。その行402における"x"ごとに、QOSコントローラは、"x"の印が付けられた列の対応するUDM要素が、ダウンタイムリクエスタによって要求されたTDP時間を耐えることが可能であることを確認する。対応する行における"x"を有するすべてのUDM要素が要求されたダウンタイムを耐えることが可能である場合、QOSコントローラ204は、ダウンタイム要求を許可することができる。
【００９６】
次に図5を参照すると、この図は、メモリコントローラ214などの1つまたは複数のダウンタイム要求側要素からのダウンタイム要求を管理するためのダウンタイムマッピングテーブル500の別の例示的な実施形態である。ダウンタイムマッピングテーブル500は、ダウンタイムマッピングテーブル400と非常に似ている。したがって、これら2つのテーブルの間の差異のみについて説明する。
【００９７】
このテーブル500によれば、1つまたは複数のダウンタイム要求側要素が同期化されてよく、したがって、グループのメンバーからの任意のダウンタイム要求は、個別のダウンタイム要求側要素からではなくグループからの要求として扱われることになる。たとえば、第1の列405に記載された最初の3つのダウンタイム要求側要素は、テーブル500の第2の列409に記載された「グループA」によって示されるようなグループとして扱われてもよい。
【００９８】
QoSコントローラ204は、このテーブル500を使用して、メモリコントローラ214のグループなど、システム101のダウンタイム要求側要素のどのグループが同期化されるかを判断してもよい。第3、第4、および残りの列407A、407Bに記載されたテーブル500の残りの情報は、上記で説明したテーブル400の列407A、407Bと同様に機能してもよい。QoSコントローラ204がダウンタイム要求を許可することを決定すると、QOSコントローラ204からのそのような許可は通常、グループ中のすべてのリクエスタに送信される。
【００９９】
次に図6を参照すると、この図は、1つまたは複数のUDM要素222aおよび/または非UDM要素222bをスロットリングすることによって1つまたは複数のダウンタイム要求側要素からのダウンタイム要求を管理するためのQoSポリシーマッピングテーブル600の例示的な一実施形態である。QOSコントローラ204は、1つのダウンタイムリクエスタまたはテーブル500に示すようなリクエスタのグループにそれぞれ対応する、テーブル600のいくつかのインスタンスを有してもよい。テーブル600はQoSコントローラ204によって、シェーパー/スロットル206のアクションによって、かつ/または1つもしくは複数のQoSメモリコントローラポリシーを変更することによって、非UDMコア222b(または十分に高いTDPを有する他のUDMコア222a)の帯域幅を縮小するために使用されてもよい。
【０１００】
QoSコントローラ204は、すべての影響されるUDMコア222aから最小TDPを計算してもよく、すべてのUDM要素222a、222bがRDP(または調整されたRDP)を満たすことができるようになるまで適用すべきQoSポリシー(スロットル帯域幅)およびメモリコントローラ最適化QoSポリシーを決定するために、そのデータをテーブル600への入力として使用してもよい。
【０１０１】
たとえば、QOSコントローラ204は、ダウンタイムリクエスタからダウンタイム要求("RDP")を受信したとき、最初にテーブル400または500を調べて、ダウンタイム要求を許可することができるかどうかを判断する。1つまたは複数のUDM要素がダウンタイムを耐えることが不可能である(TDPがRDPよりも小さい)のでダウンタイム要求を許可することができない場合、QOSコントローラ204は、ダウンタイムリクエスタに関する対応するQoSポリシーマッピングテーブル600を見つけ、要求されたRDPを使用して、対応する行を識別する。これは、単一の行が識別されるまで、テーブル600における行のサブグループを連続的に選択することによって行われる。QOSコントローラ204は、RDPが「最小持続時間」エントリよりも大きいが、「最大持続時間」エントリ以下である行、または行のセットを見つけるために、列602におけるエントリを調べることによって始める。その行、または行のセットが識別されると、QOSコントローラは、要求されたRDPに対応する列604中のエントリを調べる。列604におけるエントリは、ダウンタイムリクエスタによって示されるRDPの優先度、最大緊急度または最大待機時間を表す。
【０１０２】
QOSコントローラ204は、ダウンタイムリクエスタによって示されるRDPの示されたレベル優先度、最大緊急度または最大待機時間に対応する行、または行のセットを選択する。次いでQOSコントローラは、列608に移動し、テーブル600における最後の単一の行に到達するように、列606中の「最小」値および「最大」値と、対応するUDMコアが耐えることができるTDPの値最小値を比較することによって、行選択を絞り込む。テーブル600における「出力コマンド」列は、RDP以上であるTDPをUDMコアが達成するまでQOSコントローラがシステムに適用するコアおよびMC QOSポリシーを表す。列608におけるQOSポリシーは、影響されるUDMのTDPがRDP以下になるまでQOSコントローラがスロットル/シェーパーブロック206に適用するトラフィックシェーピング/スロットリング帯域幅を表す。同様に、列608におけるエントリは、より高い優先度をUDMコアに提供することにより、必要なTDP値にUDMコアが達することができるようにするために、QOSコントローラがメモリコントローラに送信するメモリコントローラQOS最適化ポリシーを示す。
【０１０３】
RDPの間、より高いRDP(602)または上昇したダウンタイム要求優先度(604)を伴う新しいダウンタイム要求に応答して最小TDP範囲が拡大した場合、QOSコントローラ204は、新しいメカニズムを考慮してテーブル600中の異なる行を選択してもよい。テーブル600は使用されてよく、または当業者によって理解されるように、出力を生成するために入力によって乗算される係数を使用する出力の各々に関する公式に置き換えられ得る。
【０１０４】
次に図7を参照すると、この図は、ポータブルコンピューティングデバイス("PCD")100内で共有リソースの安全なダウンタイムを管理するための例示的な方法700を示す論理フローチャートである。PCD100によって使用される図7の論理のいずれかがソフトウェアで実装されるとき、そのような論理は、任意のコンピュータ関連のシステムもしくは方法によって、またはそれと関連して使用するために、任意の有形のコンピュータ可読媒体に記憶されてもよいことに留意されたい。本明細書の文脈では、有形のコンピュータ可読媒体は、コンピュータ関連のシステムもしくは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶してもよい、電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、コンピュータベースのシステム、プロセッサを含むシステム、または、命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムなどの、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に組み込むことができる。本明細書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または搬送することができる任意の手段であってもよい。
【０１０５】
コンピュータ可読媒体は、たとえば、限定はしないが、電子式、磁気式、光学式、電磁式、赤外線式、または半導体のシステム、装置、デバイス、または伝搬媒体であってもよい。コンピュータ可読媒体のより具体的な例(非包括的なリスト)を挙げると、限定はしないが、以下のもの、すなわち、1つまたは複数のワイヤを有する電気的接続(電子式)、ポータブルコンピュータディスケット(磁気式)、ランダムアクセスメモリ(RAM)(電子式)、読取り専用メモリ(ROM)(電子式)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子式)、光ファイバー(光学式)、およびポータブルコンパクトディスク読取り専用メモリ(CDROM)(光学式)を含むことになる。
【０１０６】
再び図7を参照すると、ブロック705は、方法700の最初のステップである。ブロック705において、各UDM要素222aにおいて見られ、図2〜図3において詳細に示したTDPセンサAは、それのそれぞれのUDM要素222aに関するダウンタイムトレランスを判断してもよい。TDPは、上記で説明したUDM要素222aの「未加工」時間と追加的安全性の係数との積を含んでもよい。これは、TDP計算部306が、UDM要素222aが許容することができる「未加工」時間を判断し、それを安全性の係数で乗算して、図2に示すTDPレベルまたは値Bになる場合があることを意味する。
【０１０７】
代替的に、図3の各TDP計算部306bによって決定された許容可能ダウンタイム期間("TDP")レベルは、FIFO充填レベルに比例する所定の時間量をこのUDM要素222aが許容できることをQoSコントローラ204にそれぞれ示す数(0, 1, 2, 3, ..., N)のセットを含んでもよい。UDM要素222aが複数のダウンタイムリクエスタに敏感である場合、TDP計算部306bを介してUDM要素222aは、すべてのダウンタイムリクエスタに関する最低ダウンタイムトレランスを表すTDPまたはTDPレベルBを計算するか、またはUDM要素222aは、異なるダウンタイムリクエスタにそれぞれ対応する異なるTDP/TDPレベル信号Bを送信してもよい。
【０１０８】
次に、ブロック710において、QoSコントローラ204は、UDM要素タイプに基づいて、かつ/または潜在的な欠陥/エラータイプ、ユースケース、固定的な公式、もしくは任意の他の動作パラメータに基づいて、TDP信号Bとして送信された1つまたは複数のダウンタイムトレランスを調整またはスケーリングしてもよい。ブロック715において、1つまたは複数のダウンタイム要求が、「オンチップ」102に位置するメモリコントローラ214のような1つまたは複数の共有リソースから、ならびに外部ダウンタイムリクエスタ229などの「オフチップ」に位置する外部リソースから、データライン212'(212-「プライム」)に沿って受信される場合がある。
【０１０９】
ブロック720において、データライン212'に沿って受信されたダウンタイムの到着した要求ごとに、QOSコントローラ204は、任意で、受信されたRDPの値を引き上げることによって安全マージンを加えるようにダウンタイム要求を調整/スケーリングしてもよい。ブロック725において、QoSコントローラ204は、メモリコントローラ214などの1つまたは複数の共有リソースからの処理されるべきダウンタイム要求に、ダウンタイム要求内に含まれる任意の優先度データに基づいて優先度を付けてもよい。このブロック725において、複数のダウンタイム要求が無関係のリクエスタ(グループではない)からデータライン212'に沿ってQoSコントローラ204に同時に到着した場合、QoSコントローラ204は最初に、以下に基づいて要求に優先度を付けてもよい。(a)ダウンタイム要求の一部である場合がある優先度フラグに基づく要求の優先度、(b)ダウンタイム要求における優先度がダウンタイム要求側デバイスの相対的重要度を示す場合がある要求の優先度、および/または(c)要求の優先度が、ダウンタイム要求側デバイスがダウンタイムに入らなければならなくなる前に待機することができる最大時間を示す場合もあり、より早い最大待機時間を有するダウンタイム要求側デバイスには、より長い最大待機時間を有するダウンタイム要求側デバイスを上回る優先度を与えることができる。
【０１１０】
ブロック730において、QoSコントローラ204は、テーブル400または500を使用して、どのUDM要素222aが各ダウンタイム要求によって影響される場合があるかをマッピングしてもよい。テーブル400または500を使用して、QOSコントローラは、どのコアがダウンタイムリクエスタによって影響されるかを判断することが可能である。次いでQOSコントローラ204は、すべての影響されるUDMのTDP値を収集し、それをブロック735において使用して、要求されたRDPを許可することができるかどうかを判断する。次に、判定ブロック735において、QoSコントローラ204は、各UDMコア222a1〜222a4などの影響される各UDM要素222aのTDPが、選択されたダウンタイム持続時間をUDMコアが耐えることが可能であるようなものであるかどうかを判断する。言い換えれば、この判定ブロック735において、QoSコントローラ204は、各UDM要素222の各QOSコントローラ内部調整済みTDPが、所与のUDM要素222に関するQoSコントローラ内部調整済みRDP以上であるかどうかを判断してもよい。
【０１１１】
判定ブロック735への照会が否定であって、選択されたダウンタイム要求の持続時間に少なくとも1つのUDM要素222aが機能することができない場合、"NO"分岐はブロック740に進む。ブロック740において、QoSコントローラ204は、選択されたダウンタイム要求をすべての影響されるUDM要素222aが耐える/許容することが可能になるまで、待機してもよい。この待機時間中、QoSコントローラ204は、低いTDPを有する他のUDM要素の優先度を引き上げてもよい。また、QoSコントローラ204は、任意で、1つまたは複数の非UDM要素222b(および場合によってはUDM要素222a)のスロットリングを開始してもよい。さらに、このブロック740においてQoSコントローラは、1つまたは複数のUDM要素222aに有利に働くようにメモリコントローラポリシーおよび/またはPCIEコントローラQoSポリシーを変更してもよい。
【０１１２】
言い換えれば、このブロック740において、要求されたダウンタイム要求の持続時間/大きさをすべてのUDM要素222aが耐えることができるようになるまで単に待機することに加えて、QoSコントローラ204は、影響されるUDM要素222aのTDPの拡大を加速させるようにシステム101の状態を変更してもよい。(上記で簡単に述べた)4つの技法のうちの1つまたはそれらの組合せが、影響されるUDM要素222aのTDPを拡大するためにQoSコントローラ204によって用いられてもよい。TDP拡大技法#1:QoSコントローラ204は、不十分なTDPを有するUDM要素222aからのトラフィックの優先度を引き上げ、かつ/または非UDM要素222bもしくは非常に高いTDPを有するUDM要素222aの優先度を引き下げてもよい。
【０１１３】
TDP拡大技法#2:QoSコントローラ204は、スロットル/帯域幅シェーピング要素206により非UDM要素222b(または十分に高いTDPを有する他のUDM要素222a)の帯域幅を縮小してもよい。
【０１１４】
TDP拡大技法#3:QoSコントローラ204は、要求されたダウンタイム期間内に存続/機能することができないUDMコア222aにより多くの帯域幅を提供するために、メモリコントローラ214またはPCI-Expressコントローラ199(または任意の他の共有リソースコントローラ)のQoSポリシーを変更してもよい。これらの3つの技法は、同時に適用でき、またはダウンタイム要求側要素の最大待機時間が増加するのに伴って時間的に順次適用できる。
【０１１５】
TDP拡大技法#4:QoSコントローラ204は、増大した帯域幅をUDMコアに提供する場合があるシステム101における相互接続部または任意の他のトラフィック搬送要素の周波数を、その周波数の増大のためのダウンタイムを必要とすることなく、増大させてもよい。
【０１１６】
TDP拡大技法#1の場合:QoSコントローラ204は、UDMコア222からのトラフィックの優先度を引き上げてもよい。この技法により、QoSコントローラ204は、通過する各トランザクションの優先度を引き上げることによって、または通過する各トランザクションの優先度を引き下げることによって通過するトラフィックの優先度を引き下げるよう1つもしくは複数の非UDM要素222bのスロットル-シェーパー206にシグナリングすることによって、通過するトラフィックの優先度を引き上げるよう、不十分な高さのTDPを有する各UDM要素222aのスロットル-シェーパー206に命令してもよい。
【０１１７】
TDP拡大技法#2〜3の場合:QoSコントローラ204は、シェーパー/スロットル206にコマンドを発行するアクションによって、かつ/またはQoSメモリコントローラポリシーを変更することによって、非UDMコア222b(または十分に高いTDPを有する他のUDMコア222a)の帯域幅を縮小してもよい。TDP拡大技法#2〜3の下では、QoSコントローラは、上記で説明したテーブル600を使用してもよい。QoSコントローラは、すべての影響されるUDMコア222aから最小TDPを計算してもよく、すべてのUDM要素222aがRDP(または調整されたRDP)を満たすことができるようになるまで適用すべきQoSポリシー(スロットル帯域幅)およびメモリコントローラ最適化QoSポリシーを決定するために、最小TDPを図6のテーブル600への入力として使用する。
【０１１８】
ブロック740のこの待機期間中、上記で説明したTDP拡大技法のうちの1つに応答してUDM要素222aごとに最小TDP範囲が拡大するにつれて、QoSコントローラ204は、選択された直近の拡大技法を考慮して図6のテーブル600における異なる行を選択してもよい。図6のテーブル600は、QoSコントローラ204によって使用されてよく、または当業者によって理解されるように、出力を生成するために入力によって乗算される係数を使用する出力の各々に関する公式に置き換えられ得る。
【０１１９】
ブロック745において、選択されたダウンタイム要求が、ダウンタイムを開始するためにQoSコントローラ204によってダウンタイム要求側要素に発行される。このダウンタイム期間中、QoSコントローラ204は、任意で、QoSコントローラ204がトラフィックシェーパー206およびメモリコントローラ214に対して実施したQoSポリシーを除去してもよい。代替または追加として、QoSコントローラ204は、QoSコントローラ204がトラフィックシェーパー206およびメモリコントローラ214に対して実施したQoSポリシーを維持してもよい。代替的に、QoSコントローラ204は、ダウンタイムの持続時間にトラフィックシェーパー206およびメモリコントローラ214に対して異なるQoSポリシーを適用してもよい。別の代替として、QoSコントローラ204は、古いQOSポリシーを維持してもよく、または非UDM要素222bが許可されたダウンタイム中にシステム101に多くのトランザクション/要求を発行して、ダウンタイムが完了するとUDMコアに帯域幅の喪失をもたらすのを妨げることができる異なるQOSポリシーを適用してもよい。
【０１２０】
ブロック750において、許可されたダウンタイム要求が完了すると、QoSコントローラ204は、QoSコントローラ204がトラフィックシェーパー206およびメモリコントローラ214に対して実施したQoSポリシーを適用するのを中止してもよく、または許可されたダウンタイム期間からUDM要素222aが回復するのを確実にするために、QoSコントローラ204がトラフィックシェーパー206およびメモリコントローラ214に対して実施したQoSポリシーを維持する(またはそのポリシーを変更する)ことを選択してもよい。
【０１２１】
ダウンタイム後のQoSポリシー実施の随意の期間の持続時間は、以下のいずれか1つを含んでもよい。(a)固定値/時間長、(b)許可されたダウンタイム期間に比例する固定値/時間長、および(c)可変値/時間長。たとえば、この可変時間長は、既定値よりも高い新しいTDPをすべてのUDM要素222aが有するまで、結び付け/関連付けられてよい。ブロック750の後、方法700は最初に戻ってもよい。
【０１２２】
特定の態様では、限定はしないが、図7に示すものなど、本明細書で説明する方法ステップのうちの1つまたは複数は、メモリ112に記憶された実行可能命令およびパラメータによって実施されてもよい。これらの命令は、本明細書で説明する方法を実行するために、ADCコントローラ103に加えて、QoSコントローラ204、トラフィックシェーパーまたはトラフィックスロットル206、周波数コントローラ202、メモリコントローラ214、CPU110、アナログ信号プロセッサ126、あるいは別のプロセッサによって実行されてもよい。さらに、コントローラ202、204、214、トラフィックシェーパー/スロットル206、プロセッサ110、126、メモリ112、そこに記憶された命令、またはそれらの組合せは、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働く場合がある。
【０１２３】
次に図8を参照すると、この図は、1つまたは複数のUDM要素222aから監視されたTDPレベル信号Bに基づいてダウンタイム要求を管理する方法およびシステムを実現するためのワイヤレス電話の形態によるPCD100の例示的で非限定的な態様の機能ブロック図である。図示のように、PCD100は、互いに結合されたマルチコア中央処理装置("CPU")110およびアナログ信号プロセッサ126を含むオンチップシステム102を含む。当業者が理解するように、CPU110は、第0のコア222a、第1のコア222b1、および第Nのコア222bnを備えてもよい。
【０１２４】
上記で説明したように、小文字"a"指定を有するコア222aは、容認不可能期限逃し("UDM")コアを含む。一方、小文字"b"指定を有するコア222bは、上記で説明したように、非UDMコアを含む。
【０１２５】
当業者によって理解されるように、CPU110の代わりに、第2のデジタル信号プロセッサ("DSP")も利用されてもよい。PCD100は、図1に関して上記で説明したように、サービス品質("QoS")コントローラ204および周波数コントローラ202を有する。
【０１２６】
一般に、QoSコントローラ204は、コア222a、bを有するCPU110およびアナログ信号プロセッサ126などの1つまたは複数のハードウェア要素から監視されたTDP信号Bに基づく帯域幅スロットリングを担当する。上記で説明したように、QoSコントローラ204は、1つまたは複数のトラフィックシェーパーまたはトラフィックスロットル206、周波数コントローラ202、および1つまたは複数のメモリコントローラ214A、Bにコマンドを発行してもよい。メモリコントローラ214A、Bは、メモリ112A、112Bを管理および制御してもよい。図1に示すように、第1のメモリ112AがSOC102上の、オンチップに位置する場合がある一方、第2のメモリ112BはSOC102上/内ではない、オフチップに位置する場合がある。
【０１２７】
各メモリ112は、上記で説明したように、SOCの中またはSOCの外に存在する揮発性メモリおよび/または不揮発性メモリを含んでもよい。メモリ112は、限定はしないが、ダイナミックランダムアクセスメモリ("DRAM")、内部スタティックランダムアクセスメモリ("SRAM")メモリ("IMEM")、またはPeripheral Component Interconnect Express("PCI-e")外部トランスポートリンクを含んでもよい。メモリ112は、フラッシュメモリまたは固体メモリデバイスを含んでもよい。単一のデバイスとして示されるが、メモリ112は、CPU110、アナログ信号プロセッサ126、およびQoSコントローラ204に結合される別個のデータストアを用いる分散メモリデバイスであってもよい。
【０１２８】
外部のオフチップメモリ112Bは、PCIペリフェラルポート198に結合されてもよい。PCIペリフェラルポート198は、SOC102上のオンチップに存在するPCIコントローラ199に結合され、PCIコントローラ199によって制御されてもよい。PCIコントローラ199は、PCIペリフェラルポート198を介してPeripheral Component Interconnect Express("PCI-e")外部トランスポートリンクを通じて1つまたは複数のPCI周辺装置に結合されてもよい。
【０１２９】
図8に示すように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130がCPU110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132がディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。ディスプレイ132およびディスプレイコントローラは、ディスプレイ132上にグラフィックスをレンダリングするためにグラフィカル処理ユニット("GPU")182とともに機能してもよい。
【０１３０】
PCD100は、ビデオエンコーダ134、たとえば、位相反転線("PAL")エンコーダ、順次式カラーメモリ("SECAM")エンコーダ、全国テレビジョン方式委員会("NTSC")エンコーダ、または任意の他のタイプのビデオエンコーダ134をさらに含んでもよい。ビデオエンコーダ134はマルチコア中央処理装置("CPU")110に結合される。ビデオ増幅器136がビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138がビデオ増幅器136に結合される。図8に示すように、ユニバーサルシリアルバス("USB")コントローラ140がCPU110に結合される。また、USBポート142がUSBコントローラ140に結合される。
【０１３１】
さらに、図8に示すように、デジタルカメラ148がCPU110に、具体的には図1のUDMコア222aなどのUDMコア222aに結合されてもよい。例示的な態様では、デジタルカメラ148は、電荷結合デバイス("CCD")カメラまたは相補型金属酸化膜半導体("CMOS")カメラである。
【０１３２】
図8にさらに示すように、ステレオオーディオコーデック150がアナログ信号プロセッサ126に結合されてもよい。その上、オーディオ増幅器152がステレオオーディオコーデック150に結合されてもよい。例示的な態様では、第1のステレオスピーカ154および第2のステレオスピーカ156がオーディオ増幅器152に結合される。図8は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合されてもよいことを示す。加えて、マイクロフォン160がマイクロフォン増幅器158に結合されてもよい。特定の態様では、周波数変調("FM")無線チューナ162がステレオオーディオコーデック150に結合されてもよい。また、FMアンテナ164がFM無線チューナ162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合されてもよい。
【０１３３】
図8は、無線周波数("RF")トランシーバ168がアナログ信号プロセッサ126に結合されてもよいことをさらに示している。RFスイッチ170がRFトランシーバ168およびRFアンテナ172に結合されてもよい。図8に示すように、キーパッド174がアナログ信号プロセッサ126に結合されてもよい。また、マイクロフォン付きモノヘッドセット176がアナログ信号プロセッサ126に結合されてもよい。さらに、バイブレータデバイス178がアナログ信号プロセッサ126に結合されてもよい。
【０１３４】
図8は、電源188、たとえば、バッテリーが電力管理集積回路("PMIC")180を介してオンチップシステム102に結合されることも示す。特定の態様では、電源188は、充電式DCバッテリー、または交流("AC")電源に接続されたAC-DC変換器から導出されたDC電源を含んでもよい。PMIC180からの電力は、ピーク電流しきい値に関連付けられる場合がある電圧レギュレータ189を介してチップ102に提供される。
【０１３５】
CPU110はまた、1つまたは複数の内部オンチップ熱センサ157Aならびに1つまたは複数の外部オフチップ熱センサ157B〜Cに結合されてもよい。オンチップ熱センサ157Aは、垂直PNP構造に基づき、かつ通常、相補型金属酸化膜半導体("CMOS")超大規模集積("VEST")回路に専用である、1つまたは複数の絶対温度比例("PTAT")温度センサを備えてもよい。オフチップ熱センサ157B〜Cは、1つまたは複数のサーミスタを備えてもよい。熱センサ157B〜Cは、アナログデジタル変換器("ADC")コントローラ103でデジタル信号に変換される電圧降下を引き起こす場合がある。しかし、本開示の範囲から逸脱することなく、他のタイプの熱センサが利用されてもよい。
【０１３６】
タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカ154、第2のステレオスピーカ156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、電源188、PMIC180および熱センサ157B〜Cは、オンチップシステム102の外部にある。
【０１３７】
CPU110は、上述のように、N個のコアプロセッサ222を有するマルチコアプロセッサである。すなわち、CPU110は、第0のコア222a、第1のコア222b1、および第Nのコア222bnを含む。当業者には知られているように、第0のコア222a、第1のコア222b、および第Nのコア222bnの各々は、専用のアプリケーションまたはプログラムをサポートするために利用可能である。あるいは、利用可能なコア222の2つ以上にわたる処理のために、1つまたは複数のアプリケーションまたはプログラムを分散してもよい。
【０１３８】
CPU110の第0のコア222a、第1のコア222b、および第Nのコア222bnは、単一の集積回路ダイに集積されるか、または、複数回路のパッケージにおいて別個のダイ上で集積もしくは結合される場合がある。設計者は、第0のコア222a、第1のコア222b、および第Nのコア222bnを、1つまたは複数の共有キャッシュ(図示せず)を介して結合することができ、バス、リング、メッシュ、およびクロスバートポロジーのようなネットワークトポロジーを介して、メッセージまたは命令の伝達を実施することができる。
【０１３９】
上で説明した様々な動作および/または方法は、様々なハードウェアおよび/またはソフトウェア構成要素および/またはモジュールによって実行されてもよく、そのような構成要素および/またはモジュールは、そのような動作および/または方法を実行するための手段を提供してもよい。概して、対応する等価物であるミーンズプラスファンクションを有する、図に示した方法が存在する場合、動作ブロックは、同様に番号付けされたミーンズプラスファンクションに対応する。たとえば、図7に示したブロック705〜750は、特許請求の範囲に記載されている場合があるミーンズプラスファンクションに対応する。
【０１４０】
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示した発明を実装するコンピュータコードを書くことができるか、または実装するのに適したハードウェアおよび/もしくは回路を特定することができる。したがって、プログラムコード命令または詳細なハードウェアデバイスの特定のセットの開示は、本発明の作製方法および使用方法を十分に理解するのに必要であるとは見なされない。特許請求されるコンピュータ実装プロセスの本発明の機能は、様々なプロセスフローを示す場合がある図面とともに、上述の説明において、より詳細に説明されている。
【０１４１】
1つまたは複数の例示的な態様では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアで実装される場合、機能は、1つもしくは複数の命令またはコードとして、コンピュータ可読媒体上に記憶される場合もあり、またはコンピュータ可読媒体上で送信される場合もある。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムのある場所から別の場所への転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされる場合がある任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または命令もしくはデータ構造の形で所望のプログラムコードを搬送もしくは記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。
【０１４２】
また、あらゆる接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線("DSL")、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【０１４３】
ディスク(disk)およびディスク(disc)は、本明細書で使用するときに、コンパクトディスク(disc)("CD")、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)("DVD")、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生するが、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
【０１４４】
方法もしくはシステム、またはシステムおよび方法の部分は、ハードウェアまたはソフトウェアで実装されてもよい。ハードウェアで実装される場合、デバイスはすべてが当技術分野でよく知られている、以下の技術のいずれか、またはそれらの組合せを含むことが可能である:すなわち、適切に構成された半導体デバイスおよび抵抗要素を有する、個別電子構成要素、集積回路、特定用途向け集積回路などである。これらのハードウェアデバイスのうちのいずれも、単独で動作しようと、他のデバイス、またはメモリなどの他の構成要素とともに動作しようと、開示する方法の様々な動作またはステップを実行するための構成要素または手段を形成するかまたは備えてもよい。
【０１４５】
様々な要素を表す際に使用されるソフトウェアおよびデータは、メモリ内に記憶され、適切な命令実行システム(マイクロプロセッサ)によって実行されることが可能である。ソフトウェアは、論理機能を実装するために実行可能な命令の順位リストを備えてよく、シングルコアプロセッサもしくはマルチコアプロセッサもしくはプロセッサ包含システム(processor-containing system)など、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために任意の「プロセッサ可読媒体」内で実施されることがある。そのようなシステムは、一般に、命令実行システム、装置、またはデバイスから命令にアクセスし、それらの命令を実行することになる。
【０１４６】
したがって、選択された態様について図示し詳細に説明したが、以下の特許請求の範囲によって規定されるように、本発明の趣旨および範囲から逸脱することなく、態様において様々な置換および改変が行われてもよいことは理解されよう。
【符号の説明】
【０１４７】
A  許容可能ダウンタイム期間("TDP")センサ、TDPレベルセンサ
A'  TDPレベルセンサ
A''  TDPレベルセンサ
B  TDP信号、TDPレベルまたは持続時間量信号、TDPレベル信号、TDPレベル、TDPレベルまたは値、TDP/TDPレベル信号
B1  TDPレベル信号
B2  TDPレベル信号
D  ダウンタイム要求
G  帯域幅レベル、トラフィックスロットル/シェーピングレベル
100  ポータブルコンピューティングデバイス("PC")
101  システム
102  システムオンチップ("SoC")、オンチップ、オンチップシステム、チップ
103  アナログデジタル変換器("ADC")コントローラ
110  CPU、プロセッサ、マルチコア中央処理装置("CPU")
112  メモリデバイス、メモリ要素、メモリ、メモリまたはDRAM、DRAMメモリ
112A  メモリ、第1のメモリ
112B  メモリ、第2のメモリ、オフチップメモリ
126  アナログ信号プロセッサ、プロセッサ
128  ディスプレイコントローラ、
130  タッチスクリーンコントローラ
132  ディスプレイ、タッチスクリーン、タッチスクリーンディスプレイ
134  ビデオエンコーダ
136  ビデオ増幅器
138  ビデオポート
140  ユニバーサルシリアルバス("USB")コントローラ
142  USBポート
148  カメラセンサ、カメラ、デジタルカメラ
150  ステレオオーディオコーデック
152  オーディオ増幅器
154  第1のステレオスピーカ
156  第2のステレオスピーカ
157A  内部オンチップ熱センサ、オンチップ熱センサ
157B〜C  外部オフチップ熱センサ、オフチップ熱センサ、熱センサ
158  マイクロフォン増幅器
160  マイクロフォン
162  周波数変調("FM")無線チューナ
164  FMアンテナ
166  ステレオヘッドフォン
168  無線周波数("RF")トランシーバ
170  RFスイッチ
172  RFアンテナ
174  キーパッド
176  マイクロフォン付きモノヘッドセット、モノヘッドセット
178  バイブレータデバイス、バイブレータ
180  バッテリーが電力管理集積回路("PMIC")
182  グラフィカル処理ユニット("GPU")
188  電源
189  電圧レギュレータ
198  Peripheral Component Interconnect Express("PCI-e")ポート、PCIペリフェラルポート
199  オンチップPCIコントローラ、PCI-Expressコントローラ、PCIコントローラ
202  周波数コントローラ、コントローラ
204  サービス品質("QoS")コントローラ、QoS(ダウンタイムトレランス)コントローラ、QOSコントローラ、コントローラ
206  トラフィックシェーパーまたはトラフィックスロットル、シェーパー/スロットル、スロットル、トラフィックシェーパー/スロットル、帯域幅シェーパー/スロットル、スロットル/シェーパーブロック、トラフィックシェーパー
206a  第1のトラフィックシェーパー/スロットル
206b  第2のトラフィックシェーパー/スロットル
206c  トラフィックシェーパー/スロットル
208  スロットルレベルコマンドライン、トラフィックシェーピング/スロットリングレベルコマンドライン
210  相互接続部
212  データライン、ダウンタイム要求データライン
212'  データライン、アグリゲートダウンタイム要求データライン、アグリゲートデータ要求ライン
212a〜d  ダウンタイム要求データライン、ダウンタイム要求ライン、データライン
214  メモリコントローラ、DRAMコントローラ、DRAMメモリコントローラ、コントローラ
214a〜n  メモリコントローラ、コントローラ
214a〜N  メモリコントローラ
214A  メモリコントローラ
214B  メモリコントローラ
216  データライン
218  データライン、相互接続部およびメモリコントローラの周波数、メモリライン、周波数
220  アグリゲータ、マルチプレクサ
220A  相互接続周波数、コマンド
222  容認不可能期限逃し("UDM")ハードウェア要素、ハードウェア要素、UDM要素、コア、アグレッサハードウェア要素、アグレッサコア、ディスプレイエンジン、UDMコア、コアプロセッサ
222a  UDMコア、UDM要素、UDMハードウェア要素、コア、要素、ディスプレイコア、ディスプレイまたはカメラエンジン、第0のコア
222a1  UDMコア、第1のUDMコア、アグレッサコア
222a2  UDMコア、第2のUDMコア
222a3  UDMコア
222a4  UDMコア
222b  非UDMハードウェア要素、非UDMコア、非UDM要素、アグレッサ非UDM要素、要素、コア、第1のコア
222b1  潜在的非UDMアグレッサコア、第1の非UDMアグレッサコア、アグレッサコア、第1のコア
222b1〜b4  非UDMコア
222bn  第Nのコア
225  QoSポリシー、ポリシー、UDMおよび非UDMポリシー
225A  第1のポリシー
225B  コアQoSポリシー、第2のポリシー
227  SoCピン
229  外部ダウンタイムリクエスタ、オフチップ外部リクエスタ、コントローラ
302  先入れ先出し(FIFO)データバッファ、FIFO
304  充填レベル、FIFO充填レベル、FIFOレベル
306  TDP計算部
306a  FIFOレベルTDP計算部、TDP計算部
306b  TDP計算部
400  テーブル、ダウンタイムマッピングテーブル
402  行、第1の行
405  列、第1の列
407A  第2の列、第1の列、列
407B  第3の列、列
409  第2の列
500  テーブル、ダウンタイムマッピングテーブル
600  QoSポリシーマッピングテーブル、テーブル
602  列
604  列
606  列
608  列
700  方法
【図１】
2017533515.tif 000003
【図２】
2017533515.tif 000004
【図３】
2017533515.tif 000005
【図４】
2017533515.tif 000006
【図５】
2017533515.tif 000007
【図６】
2017533515.tif 000008
【図７】
2017533515.tif 000009
【図８】
2017533515.tif 000010
【手続補正書】
【提出日】平成29年5月2日(2017.5.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するための方法であって、
前記ポータブルコンピューティングデバイスの容認不可能期限逃し要素に関するダウンタイム期間のトレランスを、少なくとも1つの容認不可能期限逃し要素に関連する許容可能ダウンタイム期間センサから送信された少なくとも1つの許容可能ダウンタイム期間信号に基づいて判断するステップと、
前記ダウンタイム期間の前記トレランスが調整される必要があるかどうかを、前記容認不可能期限逃し要素に関連する許容可能ダウンタイム期間センサから送信された少なくとも1つの許容可能ダウンタイム期間信号に基づいて判断するステップと、
前記ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信するステップと、
前記受信されたダウンタイム要求に基づいて、実行のためにダウンタイム要求を選択するステップと、
前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素のどれが、前記選択されたダウンタイム要求によって影響されるかを識別するステップと、
影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の持続時間に適切に機能することができるかどうかを、前記ダウンタイム要求と前記1つまたは複数の容認不可能期限逃し要素の前記ダウンタイム期間の前記トレランスとの比較に基づいて判断するステップと、
前記影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができる場合に、前記選択されたダウンタイム要求を要求した1つまたは複数のデバイスに対して前記ダウンタイム要求を許可するステップと
を含む、方法。
【請求項２】
前記影響される1つまたは複数の容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができない場合に、すべての容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間に適切に機能することができるようになるまで、前記ダウンタイム要求を発行しないステップをさらに含む、請求項1に記載の方法。
【請求項３】
所定の許容可能ダウンタイム期間を有する1つまたは複数の容認不可能期限逃し要素の優先度を引き上げるステップをさらに含む、請求項2に記載の方法。
【請求項４】
1つまたは複数の容認不可能期限逃し要素の帯域幅をスロットリングするステップをさらに含む、請求項2に記載の方法。
【請求項５】
容認不可能期限逃し要素に有利に働くようにメモリコントローラおよびPeripheral Component Interconnect Express("PCI-e")コントローラのうちの少なくとも1つのポリシーを変更するステップをさらに含む、請求項2に記載の方法。
【請求項６】
容認不可能期限逃し要素は、処理コア、ディスプレイエンジン、カメラコントローラ、グラフィカル処理ユニット、モデム、およびプログラム可能計算エンジン上で実行されるソフトウェアまたはファームウェアのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項７】
前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素のどれが、前記選択されたダウンタイム要求によって影響されるかを識別するステップは、ダウンタイム要求側デバイスを1つまたは複数の容認不可能期限逃し要素とマッピングするマッピングテーブルを生成するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記ダウンタイム要求期間が完了した後に1つまたは複数の非容認不可能期限要素をスロットリングする、請求項1に記載の方法。
【請求項９】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項１０】
ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するためのシステムであって、
前記ポータブルコンピューティングデバイスの容認不可能期限逃し要素に関するダウンタイム期間のトレランスを、少なくとも1つの容認不可能期限逃し要素に関連する許容可能ダウンタイム期間センサから送信された少なくとも1つの許容可能ダウンタイム期間信号に基づいて判断し、
前記ダウンタイム期間の前記トレランスが調整される必要があるかどうかを、前記容認不可能期限逃し要素に関連する許容可能ダウンタイム期間センサから送信された少なくとも1つの許容可能ダウンタイム期間信号に基づいて判断し、
前記ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信し、
前記受信されたダウンタイム要求に基づいて、実行のためにダウンタイム要求を選択し、
前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素のどれが、前記選択されたダウンタイム要求によって影響されるかを識別し、
影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の持続時間に適切に機能することができるかどうかを、前記ダウンタイム要求と前記1つまたは複数の容認不可能期限逃し要素の前記ダウンタイム期間の前記トレランスとの比較に基づいて判断し、
前記影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができる場合に、前記選択されたダウンタイム要求を要求した1つまたは複数のデバイスに対して前記ダウンタイム要求を許可する
ように動作可能なプロセッサを含む、システム。
【請求項１１】
前記プロセッサは、容認不可能期限逃し要素のいずれかが、前記選択されたダウンタイム要求の前記持続時間中に適切に機能しない場合に、すべての容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間に適切に機能するようになるまで、前記ダウンタイム要求を発行しないようにさらに動作可能である、請求項10に記載のシステム。
【請求項１２】
前記プロセッサは、所定の許容可能ダウンタイム期間を有する1つまたは複数の容認不可能期限逃し要素の優先度を引き上げるようにさらに動作可能である、請求項10に記載のシステム。
【請求項１３】
前記プロセッサは、1つまたは複数の容認不可能期限逃し要素の帯域幅をスロットリングするようにさらに動作可能である、請求項10に記載のシステム。
【請求項１４】
前記プロセッサは、容認不可能期限逃し要素に有利に働くようにメモリコントローラおよびPeripheral Component Interconnect Express("PCI-e")コントローラのうちの少なくとも1つのポリシーを変更するようにさらに動作可能である、請求項10に記載のシステム。
【請求項１５】
容認不可能期限逃し要素は、処理コア、ディスプレイエンジン、カメラコントローラ、グラフィカル処理ユニット、モデム、およびプログラム可能計算エンジン上で実行されるソフトウェアまたはファームウェアのうちの少なくとも1つを含む、請求項10に記載のシステム。
【請求項１６】
前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素のどれが、前記選択されたダウンタイム要求によって影響されるかを識別する前記プロセッサは、ダウンタイム要求側デバイスを1つまたは複数の容認不可能期限逃し要素とマッピングするマッピングテーブルを生成する前記プロセッサをさらに含む、請求項10に記載のシステム。
【請求項１７】
前記プロセッサは、前記ダウンタイム要求期間が完了した後に1つまたは複数の非容認不可能期限要素をスロットリングするようにさらに動作可能である、請求項10に記載のシステム。
【請求項１８】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを含む、請求項10に記載のシステム。
【請求項１９】
ポータブルコンピューティングデバイス内で共有リソースの安全なダウンタイムを管理するためのシステムであって、
前記ポータブルコンピューティングデバイスの容認不可能期限逃し要素に関するダウンタイム期間のトレランスを、少なくとも1つの容認不可能期限逃し要素に関連する許容可能ダウンタイム期間センサから送信された少なくとも1つの許容可能ダウンタイム期間信号に基づいて判断するための手段と、
前記ダウンタイム期間の前記トレランスが調整される必要があるかどうかを、前記容認不可能期限逃し要素に関連する許容可能ダウンタイム期間センサから送信された少なくとも1つの許容可能ダウンタイム期間信号に基づいて判断するための手段と、
前記ポータブルコンピューティングデバイスの1つまたは複数の共有リソースからダウンタイム要求を受信するための手段と、
前記受信されたダウンタイム要求に基づいて、実行のためにダウンタイム要求を選択するための手段と、
前記ポータブルコンピューティングデバイスの1つまたは複数の容認不可能期限逃し要素のどれが、前記選択されたダウンタイム要求によって影響されるかを識別するための手段と、
影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の持続時間に適切に機能することができるかどうかを、前記ダウンタイム要求と前記1つまたは複数の容認不可能期限逃し要素の前記ダウンタイム期間の前記トレランスとの比較に基づいて判断するための手段と、
前記影響される容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間中に適切に機能することができる場合に、前記選択されたダウンタイム要求を要求した1つまたは複数のデバイスに対して前記ダウンタイム要求を許可するための手段と
を含む、システム。
【請求項２０】
容認不可能期限逃し要素のいずれかが、前記選択されたダウンタイム要求の前記持続時間中に適切に機能しない場合に、すべての容認不可能期限逃し要素が、前記選択されたダウンタイム要求の前記持続時間に適切に機能するようになるまで、前記ダウンタイム要求を発行しないための手段をさらに含む、請求項19に記載のシステム。
【請求項２１】
所定の許容可能ダウンタイム期間を有する1つまたは複数の容認不可能期限逃し要素の優先度を引き上げるための手段をさらに含む、請求項19に記載のシステム。
【請求項２２】
1つまたは複数の容認不可能期限逃し要素の帯域幅をスロットリングするための手段をさらに含む、請求項19に記載のシステム。
【国際調査報告】
2017533515.tif 000011
2017533515.tif 000012