(57)【要約】  態様は、プロセッサコアのウェアレベリングによって、動作寿命を延ばし、デバイス性能を最大化するために、マルチコア処理システムにおけるプロセッサコアへのタスクの割当てを調整するためのコンピューティングデバイス、システム、および方法を含む。信頼性エンジンは、同じ目的のために構成された同等プロセッサコアのグループに関する熱出力、電流漏れ、および履歴動作時間の動作または組込み自己テストデータを収集するように構成され得る。収集されたデータは、グループ中の各同等プロセッサコアの優先度を判断するために重み関数に適用され得る。信頼性エンジンは、同等プロセッサコアの優先度に従って、仮想プロセッサ識別変換テーブルを再構成することができる。高レベルオペレーティングシステムは、プロセッサコアを指定するプロセス要求を出すことができ、指定されたプロセッサコアは、優先度によって指示されたプロセッサコアの順序に従って、異なるプロセッサコアに変換され得る。
2017506773.tif 000002
【特許請求の範囲】
【請求項１】
マルチコアプロセッサの動作寿命を延ばすために、前記マルチコアプロセッサ内のプロセッサコアに処理タスクを割り当てる方法であって、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップと、
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップと、
前記計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップと
を含む方法。
【請求項２】
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、通常動作の下で前記プロセッサコアの温度、累積使用量、および電流漏れのうちの1つまたは複数を測定するステップを含む、請求項1に記載の方法。
【請求項３】
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、
前記プロセッサコアがアクティブであるかどうかを判断するステップと、
前記プロセッサコアが非アクティブであると判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップと、
前記テスト作業負荷を提供したことに応答して、個別に、または前記プロセッサコアのグループに関して、前記テスト作業負荷の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアの各々に関する履歴動作時間を取り出すステップと
を含む、請求項1に記載の方法。
【請求項４】
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップは、前記測定された熱出力、前記測定された電流漏れ、および前記履歴動作時間を重み係数と乗算し、その積を加算することによって、前記プロセッサコアの各々に関する前記優先度を計算するステップを含む、請求項3に記載の方法。
【請求項５】
ネットワーク接続を介して更新済み重み係数を受信するステップと、
前記更新済み重み係数により前記プロセッサコアの各々に関する優先度を計算する際に使用される前記重み係数を更新するステップと
をさらに含む、請求項4に記載の方法。
【請求項６】
前記計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップは、
第1のプロセッサコアに関する第1の仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するステップと、
第2のプロセッサコアに前記プロセス要求をマッピングするステップと、
前記第1のプロセッサコアが前記プロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するステップと
を含む、請求項1に記載の方法。
【請求項７】
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップと、
前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々との間の関連性を、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関して順序付けるステップと
を含む、請求項6に記載の方法。
【請求項８】
前記計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップは、
前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップと、
前記プロセッサコアの各々に関する前記仮想識別子と前記物理的識別子との間の前記順序付けられた関連性に従って、高レベルオペレーティングシステムから受信されたプロセス要求をマッピングするステップと、
前記高レベルオペレーティングシステムによって識別された前記プロセッサコアがプロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するステップと
を含む、請求項1に記載の方法。
【請求項９】
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップと
をさらに含み、
前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップは、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関する関連性を順序付けるステップを含む、請求項8に記載の方法。
【請求項１０】
複数のプロセッサコアを有するマルチコアプロセッサを含むコンピューティングデバイスであって、前記マルチコアプロセッサは、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップと、
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップと、
前記計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップと
を含む動作を実行するためのプロセッサ実行可能命令により構成される、コンピューティングデバイス。
【請求項１１】
前記マルチコアプロセッサは、前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップが、
前記プロセッサコアがアクティブであるかどうかを判断するステップと、
前記プロセッサコアが非アクティブであると判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップと、
前記テスト作業負荷を提供したことに応答して、個別に、またはプロセッサコアのグループに関して、前記テスト作業負荷の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアの各々に関する履歴動作時間を取り出すステップと
を含むような動作を実行するためのプロセッサ実行可能命令により構成される、請求項10に記載のコンピューティングデバイス。
【請求項１２】
前記マルチコアプロセッサは、摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップが、前記測定された熱出力、前記測定された電流漏れ、および前記履歴動作時間を重み係数と乗算し、その積を加算することによって、前記プロセッサコアの各々に関する前記優先度を計算するステップを含むような動作を実行するためのプロセッサ実行可能命令により構成される、請求項11に記載のコンピューティングデバイス。
【請求項１３】
前記マルチコアプロセッサは、
ネットワーク接続を介して更新済み重み係数を受信するステップと、
前記更新済み重み係数により前記プロセッサコアの各々に関する優先度を計算する際に使用される前記重み係数を更新するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令により構成される、請求項12に記載のコンピューティングデバイス。
【請求項１４】
前記マルチコアプロセッサは、
第2のプロセッサコアに関する前記計算された優先度に従って、第1のプロセッサコアに関する第1の仮想識別子を前記第2のプロセッサコアに関連付けるステップと、
前記第1のプロセッサコアに関する前記第1の仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するステップと、
前記第2のプロセッサコアに前記プロセス要求をマッピングするステップと、
前記第1のプロセッサコアが前記プロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令により構成される、請求項10に記載のコンピューティングデバイス。
【請求項１５】
前記マルチコアプロセッサは、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップをさらに含む動作を実行するためのプロセッサ実行可能命令により構成され、
第2のプロセッサコアに関する前記計算された優先度に従って、第1のプロセッサコアに関する第1の仮想識別子を前記第2のプロセッサコアに関連付けるステップは、前記第1のプロセッサコアに関する前記第1の仮想識別子を前記第2のプロセッサコアに関する物理的識別子に関連付けるステップを含み、
前記第2のプロセッサコアに前記プロセス要求をマッピングするステップは、前記プロセッサコアの各々に関する前記仮想識別子と前記物理的識別子との間の前記順序付けられた関連性に従って、前記高レベルオペレーティングシステムから受信されたプロセス要求をマッピングするステップを含む、請求項14に記載のコンピューティングデバイス。
【請求項１６】
前記マルチコアプロセッサは、
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令により構成され、
前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップは、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関する関連性を順序付けるステップを含む、請求項15に記載のコンピューティングデバイス。
【請求項１７】
複数のプロセッサコアを有するマルチコアプロセッサを有するコンピューティングデバイスであって、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するための手段と、
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するための手段と、
前記計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるための手段と
を含むコンピューティングデバイス。
【請求項１８】
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するための手段は、
前記プロセッサコアがアクティブであるかどうかを判断するための手段と、
前記プロセッサコアが非アクティブであると判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するための手段と、
前記テスト作業負荷を提供したことに応答して、個別に、またはプロセッサコアのグループに関して、前記テスト作業負荷の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するための手段と、
前記プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するための手段と、
前記プロセッサコアの各々に関する履歴動作時間を取り出すための手段と
を含む、請求項17に記載のコンピューティングデバイス。
【請求項１９】
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するための手段は、前記測定された熱出力、前記測定された電流漏れ、および前記履歴動作時間を重み係数と乗算し、その積を加算することによって、前記プロセッサコアの各々に関する前記優先度を計算するための手段を含む、請求項18に記載のコンピューティングデバイス。
【請求項２０】
ネットワーク接続を介して更新済み重み係数を受信するための手段と、
前記更新済み重み係数により前記プロセッサコアの各々に関する優先度を計算する際に使用される前記重み係数を更新するための手段と
をさらに含む、請求項19に記載のコンピューティングデバイス。
【請求項２１】
第2のプロセッサコアに関する前記計算された優先度に従って、第1のプロセッサコアに関する第1の仮想識別子を前記第2のプロセッサコアに関連付けるための手段と、
前記第1のプロセッサコアに関する前記第1の仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するための手段と、
前記第2のプロセッサコアに前記プロセス要求をマッピングするための手段と、
前記第1のプロセッサコアが前記プロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するための手段と
をさらに含む、請求項17に記載のコンピューティングデバイス。
【請求項２２】
前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるための手段をさらに含み、
第2のプロセッサコアに関する前記計算された優先度に従って、第1のプロセッサコアに関する第1の仮想識別子を前記第2のプロセッサコアに関連付けるための手段は、前記第1のプロセッサコアに関する前記第1の仮想識別子を前記第2のプロセッサコアに関する物理的識別子に関連付けるための手段を含み、
前記第2のプロセッサコアに前記プロセス要求をマッピングするための手段は、前記プロセッサコアの各々に関する前記仮想識別子と前記物理的識別子との間の前記順序付けられた関連性に従って、前記高レベルオペレーティングシステムから受信されたプロセス要求をマッピングするための手段を含む、請求項21に記載のコンピューティングデバイス。
【請求項２３】
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するための手段と、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するための手段と
をさらに含み、
前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるための手段は、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関する関連性を順序付けるための手段を含む、請求項22に記載のコンピューティングデバイス。
【請求項２４】
プロセッサ実行可能命令を記憶した非一時的プロセッサ可読媒体であって、前記プロセッサ実行可能命令は、マルチコアプロセッサに、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップと、
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップと、
前記計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップと
を含む動作を実行させるように構成される、非一時的プロセッサ可読媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップが、
前記プロセッサコアがアクティブであるかどうかを判断するステップと、
前記プロセッサコアが非アクティブであると判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップと、
前記テスト作業負荷を提供したことに応答して、個別に、またはプロセッサコアのグループに関して、前記テスト作業負荷の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアの各々に関する履歴動作時間を取り出すステップと
を含むような動作を実行させるように構成される、請求項24に記載の非一時的プロセッサ可読媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップが、前記測定された熱出力、前記測定された電流漏れ、および前記履歴動作時間を重み係数と乗算し、その積を加算することによって、前記プロセッサコアの各々に関する前記優先度を計算するステップを含むような動作を実行させるように構成される、請求項25に記載の非一時的プロセッサ可読媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、
ネットワーク接続を介して更新済み重み係数を受信するステップと、
前記更新済み重み係数により前記プロセッサコアの各々に関する優先度を計算する際に使用される前記重み係数を更新するステップと
をさらに含む動作を実行させるように構成される、請求項26に記載の非一時的プロセッサ可読媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、
第2のプロセッサコアに関する前記計算された優先度に従って、第1のプロセッサコアに関する第1の仮想識別子を前記第2のプロセッサコアに関連付けるステップと、
前記第1のプロセッサコアに関する前記第1の仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するステップと、
前記第2のプロセッサコアに前記プロセス要求をマッピングするステップと、
前記第1のプロセッサコアが前記プロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するステップと
をさらに含む動作を実行させるように構成される、請求項24に記載の非一時的プロセッサ可読媒体。
【請求項２９】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップをさらに含む動作を実行させるように構成され、
第2のプロセッサコアに関する前記計算された優先度に従って、第1のプロセッサコアに関する第1の仮想識別子を前記第2のプロセッサコアに関連付けるステップは、前記第1のプロセッサコアに関する前記第1の仮想識別子を前記第2のプロセッサコアに関する物理的識別子に関連付けるステップを含み、
前記第2のプロセッサコアに前記プロセス要求をマッピングするステップは、前記プロセッサコアの各々に関する前記仮想識別子と前記物理的識別子との間の前記順序付けられた関連性に従って、前記高レベルオペレーティングシステムから受信されたプロセス要求をマッピングするステップを含む、請求項28に記載の非一時的プロセッサ可読媒体。
【請求項３０】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップと
をさらに含む動作を実行させるように構成され、
前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップは、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関する関連性を順序付けるステップを含む、請求項29に記載の非一時的プロセッサ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、すべての目的でその内容全体が参照によって本明細書に組み込まれる、2013年12月18日に出願された「Runtime Optimization of Multi-core System Designs for Increased Operating Life and Maximized Performance」という表題の米国仮出願第61/917,487号の優先権の利益を主張する。
【背景技術】
【０００２】
高性能デジタルシステムの動作寿命は、部分的に、システムの構成要素の加熱および冷却のサイクルに左右される。システムの構成要素の故障は、システムを損なわせること、またはシステムを動作不可能にすることがある。1つのそのような構成要素は、マルチコアプロセッサの個別のプロセッサコアを含む、システムのプロセッサである。持続的で極端な熱サイクルが発生すると、システムの構成要素の動作寿命は、構成要素のダイ、パッケージまたはつなぎに物理的損傷が生じる結果、縮小することがある。
【０００３】
大きい製造ロットにおいて作られるプロセッサなどの電子構成要素は、それらの内部抵抗の差を示す傾向があり、そのような差は、所与の動作状態で単位時間当たりに使用される電流量の差につながる。そのような製造のばらつきに起因して、コンピューティングデバイスにそのような構成要素が2つ以上ある場合には、それらのうちの1つまたはいくつかは、他のものよりも多くの電流を使用する可能性が高く、そのため、本明細書では「高漏れ構成要素」と呼ばれる。高漏れ構成要素は、低漏れ構成要素と比較して、より低い性能レベルを示す傾向がある。高漏れ構成要素は、内部抵抗がより高いために、低漏れ構成要素よりも高い温度で動作する傾向もある。高漏れ構成要素のより高い温度は、低漏れ構成要素と比較して短い動作寿命につながり得る。熱サイクルは、時間とともに構成要素の漏れ特性を変化させることがあり、したがって、動作温度および動作寿命の差は、コンピューティングデバイスが古くなるのに伴って増大し得る。
【発明の概要】
【課題を解決するための手段】
【０００４】
様々な態様の方法および装置は、マルチコアプロセッサの動作寿命を延ばすために、マルチコアプロセッサ内のプロセッサコアに処理タスクを割り当てるための回路および方法を提供する。態様方法は、マルチコアプロセッサ内のプロセッサコアの各々に関する摩耗に関係する情報を取得するステップと、摩耗に関係する取得された情報に基づいて、プロセッサコアの各々に関する優先度を計算するステップと、計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップとを含むことができる。一態様では、マルチコアプロセッサ内のプロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、通常動作の下でプロセッサコアの温度、累積使用量、および電流漏れのうちの1つまたは複数を測定するステップを含むことができる。一態様では、マルチコアプロセッサ内のプロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、プロセッサコアがアクティブであるかどうかを判断するステップと、プロセッサコアが非アクティブであると判断したことに応答して、プロセッサコアの各々にテスト作業負荷を提供するステップと、テスト作業負荷を提供したことに応答して、個別に、またはプロセッサコアのグループに関して、テスト作業負荷の下でプロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下でプロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、プロセッサコアの各々に関する履歴動作時間を取り出すステップとを含むことができる。
【０００５】
一態様では、摩耗に関係する取得された情報に基づいて、プロセッサコアの各々に関する優先度を計算するステップは、測定された熱出力、測定された電流漏れ、および履歴動作時間を重み係数と乗算し、その積を加算することによって、プロセッサコアの各々に関する優先度を計算するステップを含むことができる。態様方法は、ネットワーク接続を介して更新済み重み係数を受信するステップと、更新済み重み係数によりプロセッサコアの各々に関する優先度を計算する際に使用される重み係数を更新するステップとを含むことができる。
【０００６】
一態様では、計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップは、第1のプロセッサコアに関する第1の仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するステップと、第2のプロセッサコアにプロセス要求をマッピングするステップと、第1のプロセッサコアがプロセス要求の結果を生成したかのように、高レベルオペレーティングシステムにプロセス要求の結果を返信するステップとを含むことができる。
【０００７】
態様方法は、プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップと、プロセッサコアの各々に関して計算された優先度に従って、プロセッサコアの各々に関する仮想識別子とプロセッサコアの各々との間の関連性を、第2のプロセッサコアグループに関する関連性とは別個に第1のプロセッサコアグループに関して順序付けるステップとを含むことができる。
【０００８】
一態様では、計算された優先度に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップは、プロセッサコアの各々に関して計算された優先度に従って、プロセッサコアの各々に関する仮想識別子とプロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップと、プロセッサコアの各々に関する仮想識別子と物理的識別子との間の順序付けられた関連性に従って、高レベルオペレーティングシステムから受信されたプロセス要求をマッピングするステップと、高レベルオペレーティングシステムによって識別されたプロセッサコアがプロセス要求の結果を生成したかのように、高レベルオペレーティングシステムにプロセス要求の結果を返信するステップとを含むことができる。
【０００９】
態様方法は、プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップとを含むことができ、プロセッサコアの各々に関して計算された優先度に従って、プロセッサコアの各々に関する仮想識別子とプロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップは、第2のプロセッサコアグループに関する関連性とは別個に第1のプロセッサコアグループに関する関連性を順序付けるステップを含む。
【００１０】
一態様は、上述の態様方法のうちの1つまたは複数の動作を実行するためのプロセッサ実行可能命令によりマルチコアプロセッサが構成される、複数のプロセッサコアを有するマルチコアプロセッサを含む装置を含む。
【００１１】
一態様は、上述の態様方法のうちの1つまたは複数の機能を実行するための手段を含む複数のプロセッサコアを有するマルチコアプロセッサを有するコンピューティングデバイスを含む。
【００１２】
一態様は、上述の態様方法のうちの1つまたは複数の動作をマルチコアプロセッサに実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読媒体を含む。
【００１３】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１４】
【図１】一態様を実装するのに適した例示的なコンピューティングデバイスの構成要素ブロック図である。
【図２】一態様を実装するのに適した例示的なマルチコアプロセッサの構成要素ブロック図である。
【図３】一態様を実装するのに適したシステムオンチップの機能および構成要素ブロック図である。
【図４】一態様による、動作寿命を延ばし、性能を最大化するためのマルチコアシステム設計のランタイム最適化のための、高レベルオペレーティングシステムプロセッサコア識別情報をハードウェアプロセッサコア優先度に関係付ける例示的なテーブルである。
【図５】プロセッサコアの優先度を判断するための一態様方法を示すプロセスフロー図である。
【図６】いつプロセッサコア優先度を更新するかを判断するための一態様方法を示すプロセスフロー図である。
【図７】テスト/動作データを収集し、プロセッサコア優先度を計算するための一態様方法を示すプロセスフロー図である。
【図８】高レベルオペレーティングシステムプロセッサコア識別情報をハードウェアプロセッサコア優先度に変換するための一態様方法を示すプロセスフロー図である。
【図９】動作経験に基づいてコア優先度を判断する際に使用する重み付け値を更新するための一態様方法を示すプロセスフロー図である。
【図１０】動作経験に基づいてコア優先度を判断する際に使用する重み付け値を更新するための一態様方法を示すプロセスフロー図である。
【図１１】様々な態様とともに使用するのに適したコンピューティングデバイスの一例を示す構成要素ブロック図である。
【図１２】様々な態様とともに使用するのに適した別の例示的なコンピューティングデバイスを示す構成要素ブロック図である。
【図１３】様々な態様とともに使用するのに適した例示的なサーバデバイスを示す構成要素ブロック図である。
【発明を実施するための形態】
【００１５】
様々な態様は、添付図面を参照して詳細に説明される。可能な場合はいつでも、同じまたは同様の部分を指すために図面全体を通して同じ参照番号が使用される。特定の例および実装形態への言及は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００１６】
「コンピューティングデバイス」という用語は、セルラー電話、スマートフォン、パーソナルもしくはモバイルマルチメディアプレーヤ、携帯情報端末(PDA)、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラー電話、ワイヤレスゲームコントローラ、デスクトップコンピュータ、計算サーバ、データサーバ、電気通信インフラストラクチャラックサーバ、ビデオ配信サーバ、特定用途向けサーバ、ならびにメモリ、および1つもしくは複数のプログラマブルマルチコアプロセッサを含む同様のパーソナルもしくは商用電子デバイスのいずれかまたはすべてを指すために、本明細書で使用される。
【００１７】
「システムオンチップ」(SoC)および「集積回路」という用語は、一般に、限定はしないが、複数のハードウェアコア、メモリ、および通信インターフェースを含む、相互接続電子回路のセットを指すために、本明細書で互換的に使用される。ハードウェアコアは、汎用マルチコアプロセッサ、マルチコア中央処理装置(CPU)、マルチコアデジタル信号プロセッサ(DSP)、マルチコアグラフィック処理装置(GPU)、マルチコア加速処理装置(APU:accelerated processing unit)、およびマルチコア補助プロセッサなど、様々な異なるタイプのプロセッサを含むことができる。ハードウェアコアはさらに、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASCI)、他のプログラマブル論理デバイス、ディスクリートゲートロジック、トランジスタロジック、性能監視ハードウェア(performance monitoring hardware)、監視ハードウェア(watchdog hardware)、および時間基準など、他のハードウェアおよびハードウェアの組合せを具現化することができる。集積回路は、集積回路の構成要素がシリコンなどの単体の半導体材料に存在するように構成され得る。そのような構成は、ICコンポーネントがシングルチップにあると言われることもある。
【００１８】
コンピューティングデバイスは、各コアが同じ目的のために、かつ/または同じ能力を有するように構成されるような、複数の同等のプロセッサコアを含むことができる。シングルマルチコアプロセッサチップ内でも、同等プロセッサコアは、同等プロセッサコアの構成要素材料における本質的な自然のばらつきに起因するわずかに異なる物理的特性および性能特性を有し得る。これらの差は、コンピューティングデバイスにおける各プロセッサコアの処理速度、電力消費量、熱的性能のばらつきをもたらし得る。プロセッサコアは、それらの特性的な電流漏れによる異なる使用量、熱サイクルおよび動作温度に起因して、時間とともに別様に摩耗し得る。1つまたは複数のプロセッサコアの過剰な摩耗は、すべてのプロセッサコアが故障するのではないとしても、コンピューティングデバイスの故障につながり得る。
【００１９】
すべての同等プロセッサコアが常に同時に動作するとは限らないコンピューティングデバイスでは、その態様は、同等プロセッサコア、ひいてはコンピューティングデバイスの動作寿命を、それらの使用履歴ならびに電流性能特性によって決定された優先順位でコアにタスクを指示することによって、延ばすことを可能にする。一態様は、そのような方法でコアにタスクを指示することによって、システムの性能を改善することもできる。プロセッサコアの特性は、プロセッサコアが時間とともに摩耗するのに伴って変わり得るので、製造業者のデータは信頼できないことがある。プロセッサコアの電流特性は、通常に動作するプロセッサコアに関して、または電流特性を判断するために必要な結果を生成するために指定された組込み自己テストを受けるプロセッサコアに関して、熱出力および/または電流漏れを測定することによって判断され得る。プロセッサコアの履歴動作時間も取り出され得る。電流特性データは、プロセッサコアの優先度を生成するために重み関数に適用され得る。優先度は、プロセッサコアの摩耗レベルに基づいてプロセッサコアにプロセスおよび処理タスクを割り当てるために、使用され得る。たとえば、摩耗が最も少ないプロセッサコアは、故障する可能性がより低いので、より多くのプロセスを実行するように優先度を付けられる。
【００２０】
一態様では、プロセッサコアの優先度を決定するための関数において使用される重み係数は、オーバージエアで更新されてよく、それにより相手先商標製造会社(OEM)、ワイヤレスサービスプロバイダ、またはチップセット供給者は、これらの重み係数を変更し、システムの信頼性および配備済みユニット(fielded unit)の性能を改善することができる。重み係数の更新は、返された商品(たとえば、保証期間内に故障したデバイス)を調べたことから得られた情報、ならびに配備済みユニットからの動作およびテストデータに基づき得る。
【００２１】
図1は、プロセッサ製造業者サーバ50と通信しているコンピューティングデバイス10を有するシステムを示す。コンピューティングデバイス10は、プロセッサ14、メモリ16、通信インターフェース18、およびストレージインターフェース20を有するSoC12を含むことができる。コンピューティングデバイスは、ワイヤードモデムまたはワイヤレスモデムなどの通信構成要素22、ストレージ構成要素24、ワイヤレスネットワーク30へのワイヤレス接続32を確立するためのアンテナ26、および/またはインターネット40へのワイヤード接続44に接続するためのネットワークインターフェース28をさらに含むことができる。プロセッサ14は、上述の様々なハードウェアコアのいずれかを含むことができる。プロセッサ14は、いくつかのプロセッサコアをさらに含むことができる。SoC12は、1つまたは複数のプロセッサ14を含むことができる。コンピューティングデバイス10は、1つまたは複数のSoC12を含むことができ、それによってプロセッサ14およびプロセッサコアの数を増やすことができる。コンピューティングデバイス10はまた、SoC12に関連付けられていないプロセッサコア14を含むことができる。プロセッサ14はそれぞれ、コンピューティングデバイス10の他のプロセッサ14と同じまたは異なることがある特定目的のために構成され得る。同じ目的のために構成されたプロセッサ14は、同等プロセッサと考えられ得る。さらに、同等プロセッサ14は、同様の性能特性を有するように構成され得る。さらに、個別のプロセッサ14は、図2を参照しながら後述するマルチコアプロセッサであり得る。
【００２２】
SoC12のメモリ16は、プロセッサ14によってアクセスされるデータおよび実行可能コードを記憶するように構成された揮発性メモリまたは不揮発性メモリであり得る。一態様では、メモリ16は、高レベルオペレーティングシステムプロセッサコア識別情報をハードウェアプロセッサコア優先度に関係付ける、または変換するための、図4を参照しながら後述するテーブルなどのデータ構造を少なくとも一時的に記憶するように構成され得る。以下でさらに詳細に説明するように、プロセッサ14のプロセッサコアの各々は、優先度を付けられ、またはコンピューティングデバイス10上で動作する高レベルオペレーティングシステムと共有される識別値を与えられ得る。
【００２３】
コンピューティングデバイス10および/またはSoC12は、様々な目的のために構成された1つまたは複数のメモリ16を含むことができる。一態様では、1つまたは複数のメモリ16は、データ構造の情報が1つまたは複数のプロセッサ14によってアクセスされ得るように、コア優先度情報を記憶するためのデータ構造を記憶するためにもっぱら用いられるように構成され得る。データ構造を記憶するメモリ16が不揮発性であるとき、メモリ16は、コンピューティングデバイス10の電源が切断された後でもデータ構造の情報を保持することができる。電源が再投入され、コンピューティングデバイス10が再起動すると、メモリ16は、データ構造の情報を提供するために、コンピューティングデバイス10にとって利用可能になり得る。別の態様では、メモリ16は、ハードウェアプロセッサコア優先度を割り当てるために、または重み付け値を更新する際に使用する目的でプロセッサコア製造業者50に送るために使用され得る、重み付け値、ならびに履歴プロセッサコア動作および/またはテストデータを記憶し維持することもできる。
【００２４】
通信インターフェース18、通信構成要素22、アンテナ26および/またはネットワークインターフェース28は、コンピューティングデバイス10がワイヤレス接続32を介してワイヤレスネットワーク30により、かつ/またはワイヤードネットワーク44によりプロセッサコア製造業者サーバ50と通信することが可能になるように、調和して機能することができる。ワイヤレスネットワーク30は、プロセッサコア製造業者サーバ50とデータを交換する場合の手段であるインターネット40への接続をコンピューティングデバイス10に提供するために、たとえば、ワイヤレス通信に使用される無線周波数スペクトルを含む、様々なワイヤレス通信技術を使用して実装され得る。一態様では、ワイヤレスネットワーク30および/またはインターネット40へのワイヤード接続44は、コンピューティングデバイス10の動作データおよび/またはテストデータをプロセッサコア製造業者サーバ50に通信するために使用され得る。別の態様では、ワイヤレスネットワーク30および/またはインターネット40へのワイヤード接続44は、ハードウェアプロセッサコア優先度を割り当てる際に使用する更新済み重み付け値をプロセッサコア製造業者サーバ50からコンピューティングデバイス10に通信するために使用され得る。
【００２５】
ストレージインターフェース20およびストレージ構成要素24は、コンピューティングデバイス10が不揮発性記憶媒体上にデータを記憶することが可能になるように、調和して機能することができる。ストレージ構成要素24は、データ構造の情報が1つまたは複数のプロセッサ14によってアクセスされ得るように、ストレージ構成要素24がデータ構造を記憶するメモリ16の一態様と同様の形で構成され得る。ストレージ構成要素24は、不揮発性であり、コンピューティングデバイス10の電源が切断された後でもデータ構造の情報を保持することができる。電源が再投入され、コンピューティングデバイス10が再起動すると、ストレージ構成要素24は、データ構造の情報を提供するために、コンピューティングデバイス10にとって利用可能になり得る。別の態様では、ストレージ構成要素24は、ハードウェアプロセッサコア優先度を割り当てるために、または重み付け値を更新する際に使用する目的でプロセッサコア製造業者50に送るために使用され得る、重み付け値、ならびに履歴プロセッサコア動作および/またはテストデータを記憶し維持することもできる。ストレージインターフェース20は、ストレージデバイス24へのアクセスを制御し、プロセッサ14がストレージデバイス24からデータを読み取ること、およびストレージデバイス24にデータを書き込むことを可能にし得る。
【００２６】
コンピューティングデバイス10の構成要素の一部または全部は、必要な機能を引き続きサービス提供する一方で、別様に配置および/または結合され得ることに留意されたい。その上、コンピューティングデバイス10は、構成要素の各々の1つに限定されなくてよく、各構成要素の複数のインスタンスが、様々な構成では、コンピューティングデバイス10に含まれ得る。
【００２７】
図2は、一態様を実装するのに適したマルチコアプロセッサ14を示す。マルチコアプロセッサ14は、複数の同等のプロセッサコア200、201、202、203を有し得る。本明細書でさらに説明するように、単一のプロセッサ14のプロセッサコア200、201、202、203が、同じ目的のために、かつ同じ性能特性を有するように構成され得るという点で、プロセッサコア200、201、202、203は同等である。たとえば、プロセッサ14は汎用プロセッサであってよく、プロセッサコア200、201、202、203は同等の汎用プロセッサコアであってよい。代替的に、プロセッサ14は、グラフィック処理装置またはデジタル信号プロセッサであってよく、プロセッサコア200、201、202、203はそれぞれ同等のグラフィックプロセッサコアまたはデジタル信号プロセッサコアであってよい。製造プロセスおよび材料におけるばらつきにより、プロセッサコア200、201、202、203の性能特性が、同じマルチコアプロセッサ14内または同じ設計のプロセッサコアを使用する別のマルチコアプロセッサ14において、プロセッサコアによって異なる結果となり得る。図2に示す例では、マルチコアプロセッサ14は、4つのプロセッサコア200、201、202、203(すなわち、プロセッサコア0、プロセッサコア1、プロセッサコア2、およびプロセッサコア3)を含む。説明を容易にするために、本明細書の例は、図2に示す4つのプロセッサコア200、201、202、203に言及し得る。しかしながら、図2、および図示し本明細書で説明する4つのプロセッサコア200、201、202、203は、決して限定的であることは意図されていないことに留意されたい。コンピューティングデバイス10、SoC12、またはマルチコアプロセッサ14は個別に、または組合せで、4つのプロセッサコア200、201、202、203よりも少ない、または多いプロセッサコアを含み得る。
【００２８】
図3は、一態様による、動作寿命を延ばし、性能を最大化するためのマルチコアシステム設計のランタイム最適化のための、複数のプロセッサコア320、321、322、324、326および信頼性エンジン302を含むSoC12を有するコンピューティングデバイス10を示す。コンピューティングデバイス10は、プロセッサコア320、321、322、324、326、ならびに仮想プロセッサ識別変換テーブル300および信頼性エンジン302を有するSoC12を含むことができる。コンピューティングデバイス10はまた、SoC12の構成要素と通信するように構成され得るソフトウェアアプリケーション304および高レベルオペレーティングシステム306を含むことができる。
【００２９】
図3では、(図では「高電力CPUコア」と呼ばれる)高性能/高漏れマルチコア汎用/中央処理装置(CPU)320、(図では「低電力CPUコア」と呼ばれる)低性能/低漏れマルチコア汎用/中央処理装置(CPU)321、マルチコアグラフィック処理装置(GPU)322、マルチコアデジタル信号プロセッサ(DSP)324、および他のマルチコア計算ユニット326を含む異なるタイプのマルチコアプロセッサが示されている。最近のコンピューティングデバイスのアーキテクチャは、高性能を示すが、高電流漏れという代償を伴う汎用CPUのクラスタ、およびより低い性能を示すが、より低い電流漏れを示すCPUの別のクラスタを含んでいる。CPUの2つのクラスタは、コヒーレントキャッシュを維持することができ、したがって、CPUの両方のクラスタが同時に作動していることがある。本開示では、CPUの各クラスタは別個に優先度を付けられ得る。また、本開示では、同様の特性を有する計算要素が一般に一緒にグループ化されるが、これは必要条件ではない。たとえば、DSPクラスタは、同様の方法で区別されてよく、したがって、本態様は、同様の処理要素を区別するために他の軸でコンピューティングデバイスを区別することを含む。
【００３０】
図3はまた、処理能力の拡大または強化など、またはコンピューティングデバイスへの更新として、コンピューティングデバイスが販売された後にコンピューティングデバイスにプロセッサコア326がインストールされ得ることを示す。処理能力のアフターマーケット拡大は、中央プロセッサコアに限定されず、たとえば、追加の、アップグレードされる、または交換用のモデムプロセッサ、追加または交換用のグラフィックプロセッサ(GPU)、追加または交換用のオーディオプロセッサ、および追加または交換用のDSPを含む、コンピューティングシステムに追加されるか、またはコンピューティングシステムにおいて交換され得る任意のタイプのコンピューティングモジュールであり得、これらのいずれかは、(たとえば、SoC上に)プロセッサのシングルチップマルチコアモジュールまたはクラスタとしてインストールされ得る。また、サーバでは、そのような追加または交換されるプロセッサ構成要素は、レセプタクルおよび配線ハーネスインターフェースに接続する処理モジュール(またはブレード)としてインストールされ得る。コンピューティングデバイスに追加または交換用のプロセッサコアを加えることの影響については、図6を参照しながら後述する。
【００３１】
図3に示すプロセッサコアのグループの各々は、上述のマルチコアプロセッサ14の一部であり得る。その上、これら5つの例示的なマルチコアプロセッサ(またはプロセッサコアのグループ)は、限定的であることは意図されておらず、コンピューティングデバイス10またはSoC12は個別に、または組合せで、図3に表示されていないタイプを含む、5つのマルチコアプロセッサ320、321、322、324、326(またはプロセッサコアのグループ)よりも少ない、または多いマルチコアプロセッサを含み得る。
【００３２】
信頼性エンジン302は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実装され得る。信頼性エンジンは、様々なプロセッサコア320、321、322、324、326に関係するデータを分析し、ハードウェアプロセッサコア優先度を変更して、様々なプロセッサコア320、321、322、324、326、ひいてはコンピューティングデバイス10の動作寿命を延ばし、性能を最大化するように構成され得る。上述のように、マルチコアプロセッサにおけるプロセッサコアは不均一に摩耗し得る。いくつかのプロセッサコアは、プロセッサ、SoC、および/またはコンピューティングデバイスの設計によって、同じコンピューティングデバイス10における他の動作コアとは異なる動作状態に置かれ得る。一態様では、プロセッサコアの熱サイクルは、プロセッサコアの構成要素を弱め、それらの故障につながることがある。いくつかのプロセッサコアは、より高い温度とより低い温度との間の熱サイクルのレートおよび/または度合いの上昇に直面するように、コンピューティングデバイス内に位置付けられ得る。いくつかのプロセッサコアが他のプロセッサコアよりも多く使用されるときに、使用から熱サイクルの差が生じることもある。これは、コンピューティングデバイス10上で動作しているプロセスのタイプ、およびソフトウェア304および高レベルオペレーティングシステム306がいくつかのプロセッサコアを指定するように構成される方法から生じ得る。また、より高い電流漏れを伴うプロセッサコアは、より低い電流漏れを伴うプロセッサコアと比較して、より高い温度で動作する。より高い電流漏れを伴うプロセッサコアはまた、より低い電流漏れを伴うプロセッサコアと比較して、より低い性能レベルで動作する。熱サイクルは、時間とともにプロセッサコアの電流漏れ特性を変化させる。
【００３３】
熱サイクルによって生じる可能性のある損傷を遅らせるために、信頼性エンジン302は、マルチコアプロセッサ320、321、322、324、326におけるプロセッサコアの各々に関係するデータを分析し、ハードウェアプロセッサコア優先度を変更して、いくつかのプロセッサコアが使用される頻度を変えることができる。ハードウェアプロセッサコア優先度はまた、プロセッサコアの物理的識別子として機能し得る。
【００３４】
プロセッサコアに関係するデータは、状態によって異なることがあり、一般に、プロセッサコアの摩耗に起因して時間とともに変化し得るので、プロセッサコアの製造業者のデータに依拠するのは不十分であり得る。信頼性エンジン302は、マルチコアプロセッサ320、321、322、324、326に、またはその近くに位置するセンサーによって捕捉されたセンサーデータを含む、様々なプロセッサコアの測定されたデータを使用することができる。一態様では、測定されるデータは、マルチコアプロセッサ320、321、322、324、326の通常動作中に捕捉され得る。別の態様では、コンピューティングデバイス10の起動時間中などにプロセッサコアがアイドル状態であるか、または休止状態にあるとき、コンピューティングデバイスは、選択されたプロセッサコアの組込み自己テストを実行することができる。組込み自己テストは、テストされるプロセッサコアに所定のルーチンまたは作業負荷をロードし、処理時間、電圧降下、電流ドロー、温度上昇など、様々な性能パラメータを測定することができる。通常動作または組込み自己テストのいずれかにおいて、プロセッサコアの熱出力および電流漏れが、少なくとも選択されたプロセッサコアに関して捕捉され得る。プロセッサコアに関係する他のデータは、メモリ16、ストレージ構成要素24、または個別のプロセッサコアの動作時間および重み係数を保持もしくは判断するための他の専用構成要素から取り出され得る。
【００３５】
プロセッサコアに関係するデータを使用して、信頼性エンジン302は、選択されたプロセッサコアの新しいハードウェアプロセッサコア優先度を計算することができる。各プロセッサコアのハードウェアプロセッサコア優先度は、個別のプロセッサコアの熱出力、電流漏れおよび動作時間、ならびにそれらのそれぞれの重み係数のうちの1つまたは複数の関数であり得る。プロセッサコアに優先度を割り当てるために使用される関数またはアルゴリズムにおいて使用されるデータのタイプは、熱出力、電流漏れおよび動作時間を含むことができ、選択されたタイプのみを使用し、またはすべてのタイプが使用され得、望ましくないタイプにゼロの重み係数を使用することによって、いくつかのタイプは無関係と見なされ得る。優先度を計算するための関数またはアルゴリズムは、たとえば、最初に各タイプとそれのそれぞれの重み係数とを乗算することによって拡大されたデータのタイプのうちの1つまたは複数の合計であり得る。データの各タイプの単位は異なることがあり、動作時間は、マルチコアプロセッサ14が動作している間にプロセッサコアが動作している時間のパーセンテージで表現され得る。各プロセッサコアの関数またはアルゴリズムの結果は比較され得、優先度は関数の結果の番号順に従って決定され得る。たとえば、最低値の結果を有するプロセッサコアは、最も少ない摩耗量を示していることがあり、最高優先度を与えられ得る。次に低い値の結果は、次に少ない摩耗量を示していることがあり、関連するプロセッサコアは、次に高い優先度を与えられ得、関数結果が計算されるプロセッサコアのすべてに関して、以下同様である。プロセッサコアは、同等プロセッサコアのグループにおいて選択され得、ハードウェアプロセッサコア優先度は、グループ内においてのみ適用することができる。
【００３６】
仮想プロセッサ識別変換テーブル300は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実装され得る。仮想プロセッサ識別変換テーブル300は、高レベルオペレーティングシステムプロセッサコア識別情報をハードウェアプロセッサコア優先度に関係付けるように構成され得る。高レベルオペレーティングシステムプロセッサコア識別情報(またはコアID)は、特定の処理要求、スレッド、またはタスクを処理することになるプロセッサコアをソフトウェアアプリケーション304および高レベルオペレーティングシステム306が識別する方法である。高レベルオペレーティングシステムプロセッサコア識別情報は、プロセッサコアの仮想識別子として機能し得る。一態様では、ソフトウェアアプリケーション304および高レベルオペレーティングシステム306は、いくつかの高レベルオペレーティングシステムプロセッサコア識別情報によっていくつかのプロセッサコアを識別するようにプログラムされ得る。別の態様では、コンピューティングデバイス10を起動すると、またはソフトウェアアプリケーション304もしくは高レベルオペレーティングシステム306を開始すると、コンピューティングデバイスはソフトウェアアプリケーション304および高レベルオペレーティングシステム306に、どのプロセッサコアがどの高レベルオペレーティングシステムプロセッサコア識別情報に関連付けられるかについて指示することができる。これらの関連性は、静的で、コンピューティングデバイス10のBIOSなどのファームウェアにプログラムされ得る。したがって、ソフトウェアアプリケーション304および高レベルオペレーティングシステム306は、特定のプロセッサコアにプロセス要求を行い、それらは、特定のプロセッサコアの高レベルオペレーティングシステムプロセッサコア識別情報を指定することによって、そうすることができる。
【００３７】
しかしながら、コンピューティングデバイス10は、以下でさらに説明するようにプロセッサコアの優先度を変更することができる。コンピューティングデバイス10は、プロセッサコアの動作寿命を延ばし、性能を最大化するために、優先度を変更することができる。プロセッサコアの優先度を変更すると、高レベルオペレーティングシステムプロセッサコア識別情報は、コンピューティングデバイス10が要求されたプロセスを実行することを意図していないプロセッサコアに関連付けられ得る。仮想プロセッサ識別変換テーブル300は、プロセッサコアの優先度の変化を追跡し、適切に優先度を付けられたプロセッサコアに高レベルオペレーティングシステムプロセッサコア識別情報を関連付けることができる。これを達成するために、仮想プロセッサ識別変換テーブル300は、信頼性エンジン302によって計算された更新済みハードウェアプロセッサコア優先度を受信し得る。仮想プロセッサ識別変換テーブル300はまた、高レベルオペレーティングシステムプロセッサコア識別情報を対応するハードウェアプロセッサコア優先度に関連付け、ハードウェアプロセッサコア優先度が変化するのに伴って、関連性を更新することができる。特定の高レベルオペレーティングシステムプロセッサコア識別情報を指定するプロセス要求が受信されたとき、コンピューティングデバイスは、仮想プロセッサ識別変換テーブル300を使用して、適切に優先度を付けられたプロセッサコアにプロセスを割り当てることができる。コンピューティングデバイス10のこの特徴について説明するために、本明細書ではテーブルが使用されるが、仮想プロセッサ識別変換は、上述の機能と同じ機能を達成し得る様々な異なるハードウェア、データ構造、およびソフトウェアアルゴリズムを使用して実施され得る。一態様では、1つまたは複数の仮想プロセッサ識別変換テーブル300が、プロセッサコアの多数のグループに関して実装され得る。たとえば、マルチコア汎用CPU320、321、マルチコアGPU322、マルチコアDSP324、および他のマルチコア計算ユニット326などのプロセッサコアの1つのタイプの各グループは、様々な構成において結合または分離されて、1つまたは複数の仮想プロセッサ識別変換テーブル300に入れられ得る。
【００３８】
図4は、一態様による、高レベルオペレーティングシステムプロセッサコア識別情報をハードウェアプロセッサコア優先度に関係付ける例示的なテーブル400を示す。テーブル400は、図2に示す4つのプロセッサコア(プロセッサコア0〜3)の例の続きである。左列402は、テーブル400に表されるグループにあるように選択されたプロセッサコア(たとえば、プロセッサコア0〜3)の各々に関する仮想識別子として使用され得る、高レベルオペレーティングシステムプロセッサコア識別情報を表す。右列404は、テーブル400に表されるグループにあるように選択されたプロセッサコア(プロセッサコア0〜3)を順序付けるために使用され得る各プロセッサコアに割り当てられた優先度を記載し得る、これらのプロセッサコアの各々に関する物理的識別子としての、プロセッサコア識別情報/優先度を表す。
【００３９】
テーブル400の各行406、408、410、412は、プロセッサコアのうちの1つに関係する。たとえば、第1の行406は、高レベルオペレーティングシステムによって識別されるように、プロセッサコア0に関係する。ただし、この例では、プロセッサコアの優先度は、データ収集および上述の信頼性エンジンによって行われた計算に基づいてシャッフルされている。したがって、この例によると、第1の行406では、高レベルオペレーティングシステムプロセッサコア識別情報のプロセッサコア0がハードウェアプロセッサコア識別情報のプロセッサコア2に関連付けられ、その理由は、プロセッサコア2が最高優先度を有することにある。同様に、第2の行408では、高レベルオペレーティングシステムプロセッサコア識別情報のプロセッサコア1が、ハードウェアプロセッサコア識別情報のプロセッサコア0に関連付けられ、その理由は、プロセッサコア0が次に高い優先度を有することにある。同じことが、それぞれ第3の行410および第4の行412において、高レベルオペレーティングシステムプロセッサコア識別情報のプロセッサコア2およびプロセッサコア3と、ハードウェアプロセッサコア識別情報のプロセッサコア3およびプロセッサコア1とに当てはまる。
【００４０】
一態様では、高レベルオペレーティングシステムに関する限り、高レベルオペレーティングシステムプロセッサコア識別情報を指定する動作要求を行うとき、高レベルオペレーティングシステムは、指定されたプロセッサコアによって動作が実行されることを予想する。しかしながら、指定されたプロセッサコアは、収集されたデータおよび信頼性エンジンによって行われた計算に従ってプロセッサコアの優先度がシャッフルされているとき、要求されたプロセスを実行すること、または実行しないことがある。要求されたプロセスを実行するプロセッサコアは、テーブル400において関連ハードウェアプロセッサコア識別情報を有するプロセッサコアであり得る。処理の結果は、高レベルオペレーティングシステム指定のプロセッサコアが要求されたプロセスを実行した場合と同じであり得る。高レベルオペレーティングシステムは、それが指定したプロセッサコアとは異なるプロセッサコアが要求されたプロセスを実行した可能性に気づかないことがある。
【００４１】
仮想識別子、物理的識別子、および優先度は、プロセッサコアのグループに関連付けられ、当該グループに関して計算されてよく、それにより、テーブル400の行は、単一のプロセッサコアではなく、プロセッサコアのグループを表すことができる。
【００４２】
プロセッサコアの優先度を決定し、優先順位に従って処理タスクをマッピング/再割り当てした結果、プロセッサコアは時間とともにより均一に摩耗することになり得る。より大きい摩耗を示すプロセッサコアの優先度を、プロセッサコアに関係する収集されたデータを分析することによって低下させることによって、より少ないプロセスおよびスレッドがプロセッサコアによって実行されることになる。プロセッサコアに課される作業が少ないほど、直面する熱サイクルが少なくなり、コアが古くなる速度が低下する。より優先度の高いプロセッサコアは、より多くの要求されたプロセスまたはスレッドを割り当てられ、結果として、より多くの熱サイクルに直面することがあり、これにより、より優先度の高いプロセッサコアの構成要素の摩耗は大きくなり得る。より優先度の高いプロセッサコアがより大きい摩耗を示す(またはより大きい摩耗に直面すると計算される)ことに伴い、態様方法によってプロセッサコアに割り当てられる優先度は正常化し始め、要求されたプロセスのスケジューリングがより等しくなる。このようにしてプロセッサコア全体に要求されたプロセスを分散することで、すべてのプロセッサコアの摩耗はより均一になり、コンピューティングデバイスは、1つのプロセッサコアが他のコアよりも多くのタスクを割り当てられた場合、またはより高い漏れを伴うコアが他のコアと同様にタスクを与えられた場合(これは、1つのコアが他のコアの前に摩耗し、故障することにつながり得る)よりも高い能力でより長く機能することが可能になり得る。
【００４３】
図5は、プロセッサコアから収集された情報に基づいてプロセッサコア優先度を計算するための態様方法500を示す。信頼性エンジンを実行しているプロセッサは、方法500を実行することができる。ブロック502において、プロセッサは、同等プロセッサコアのクラスタ、またはグループを選択することができる。前に説明したように、同等プロセッサコアは、同じ目的のために、かつ同じ性能特性を有するように構成され得るが、性能特性は、製造のばらつきに起因して異なり得る。したがって、プロセッサは、同じ目的のために構成されたプロセッサコアのグループを選択することができる。たとえば、プロセッサは、それぞれ、汎用プロセッサコアのグループ、またはグラフィックもしくはデジタルシグナリングプロセッサコアコアのグループを選択することができる。複数の同等プロセッサがあるとき、同等プロセッサコアのグループは、複数の同等プロセッサに及ぶことがあり、またはグループは、単一のプロセッサの同等プロセッサコアに限られることがある。
【００４４】
判断ブロック504において、プロセッサは、選択されたプロセッサコアが非アクティブであるか、アイドル状態であるか、または休止状態にあるかを判断することができる。この判断は、どのようにプロセッサがプロセッサコアのデータ収集および優先度付けを実施するかに影響を与え得る。コアがアクティブであるとき、プロセッサコアの通常の活動から測定されたプロセッサコアに関する情報は十分であり得るので、テストを実行する必要がないことがある。また、アクティブなプロセッサコアは、特定のプロセッサコアがタスクの実行に利用可能であると予想し得る他の構成要素と対話していることがあるので、アクティブなプロセッサコアに優先度を付けることは、より複雑なプロセスであり得る。選択されたプロセッサコアがアクティブであるとプロセッサが判断したとき(すなわち、判断ブロック504=「No」)、ブロック506においてプロセッサは、選択されたアクティブなコアの動作データを収集することができる。言い換えれば、プロセッサは、選択されたプロセッサコアの関連データの読取り値を取得するために別個のテストを実行することなく、センサーを監視し、選択されたプロセッサコアの通常動作からデータを収集することができる。たとえば、プロセッサは、通常動作中に、選択されたプロセッサコアの熱出力および電流漏れを監視することができる。
【００４５】
随意のブロック507において、この収集された動作データおよび関連情報は、コンピューティングデバイスのFLASHメモリ、この情報を記憶するように構成されたストレージ構成要素、またはプロセッサコア動作データおよび累積動作時間に関するデータを追跡し記憶するためにもっぱら用いられる別の構成要素を含む、プロセッサによってアクセス可能な任意の不揮発性メモリに記憶され得る。不揮発性メモリに記憶された動作データは、最初のプロセッサコア優先度およびマッピングを設定するために起動時間に使用され得る。ブロック507において保存されるデータの一部として、プロセッサコアの動作時間または使用量が、頻繁に更新されるデータフィールドに記憶され得る。したがって、ブロック506における動作の一部として、プロセッサはこのメモリから、選択されたプロセッサコアの動作時間(すなわち、総アクティブ時間または相対アクティブ時間)を取り出すことができる。
【００４６】
ブロック508において、プロセッサは、収集された動作データおよび動作履歴に基づいて、選択されたプロセッサコアの各々に関する優先度を計算することができる。プロセッサは、選択されたプロセッサコアの各々について、データのタイプの各々に関する重み係数とともに、収集されたデータに関数またはアルゴリズムを適用して、選択されたコアの新しい優先度値を計算することができる。優先度を計算するために使用される関数またはアルゴリズムは異なり得る。様々な態様では、熱出力、電流漏れおよび動作時間、ならびにそれらのそれぞれの重み係数のうちの1つまたは複数の異なる組合せが、コア優先度を計算するために使用され得る。一態様では、3つのタイプの収集済みデータが、それらのそれぞれの重み係数によって乗算され、結果が合算されて、各プロセッサコアの優先度値が生成され得る。別の態様では、データのタイプのうちの1つが無視されるべきであるとき、重み付け値はゼロに設定されることがあり、または無視されたタイプのデータが関数またはアルゴリズムから除去されることがある。
【００４７】
ブロック510において、コンピューティングデバイスは、選択されたプロセッサコアが非アクティブになるのを待つことができる。上述のように、アクティブなコアに優先度を付けることは、コンピューティングデバイスの構成要素が、特定のプロセッサコアがいくつかのタスクの実行に利用可能であることを予想するときに、問題をもたらし得る。しかしながら、予想されるプロセッサコアが予想とは異なる形で優先度を付けられたとき、構成要素は、予想されるタスクを実行するためのプロセッサコアを有しない状態に置かれ、コンピューティングデバイスの動作の潜在的エラーにつながることがある。したがって、コンピューティングデバイスは、他の構成要素に悪影響を与えるのを回避するために、プロセッサコアの優先度を変更する前に、プロセッサコアに関するスケジュールされたタスクまたは予想されたタスクがないときには、プロセッサコアが非アクティブになるのを待つことができる。
【００４８】
別の態様では、随意のブロック512において、プロセッサは、選択されたプロセッサコアの現在のプロセスおよび予想されるプロセスならびにデータを、1つまたは複数の他のプロセッサコアに移動させることができる。選択されたプロセッサコアが非アクティブになるのを待つのではなく、プロセッサは、現在のプロセスおよびスケジュールされたプロセス、ならびに関連データを、選択されたプロセッサコアから利用可能である他のプロセッサコアに再割り当てすることができる。この態様では、コンピューティングデバイスの構成要素は、異なるプロセッサコアにマッピングされたプロセスおよびデータにより予想通り動作し続けることができ、本質的に、コンピューティングデバイスに対する処理需要がすべてよりも少ないプロセッサコアを必要としているときには、選択されたプロセッサコアを休止状態に置くことができる。
【００４９】
選択されたプロセッサコアが非アクティブになるのを待つか、それともプロセスをより優先度の低いプロセッサコアから移動させるかを問わず、いずれの態様においても、ブロック526において、プロセッサは、仮想プロセッサ識別変換テーブルにおけるハードウェアプロセッサコア優先度を更新することができる。上述のように、選択されたプロセッサコアの優先度を更新することは、ハードウェアプロセッサコア識別情報をそれらの優先度値に従って順序付ける、または再度順序付けることから生じる。得られる優先度値の番号順は、選択されたプロセッサコアの相対的優先度を決定し得る。一態様では、第1または最高の優先度値を有する選択されたプロセッサコアは、仮想プロセッサ識別変換テーブルの最上部に移され、第1の行における高レベルオペレーティングシステムプロセッサコア識別情報に関連付けられ得る。第2の優先度値を有する選択されたプロセッサコアは、仮想プロセッサ識別変換テーブルの第2の行に移され、第2の行における高レベルオペレーティングシステムプロセッサコア識別情報に関連付けられ得、選択されたプロセッサコアのすべてに関して以下同様である。
【００５０】
選択されたプロセッサコアが非アクティブであるとプロセッサが判断したとき(すなわち、判断ブロック504=「Yes」)、ブロック514においてプロセッサは、選択されたプロセッサコアの組込み自己テストを実行することができる。組込み自己テストは選択されたプロセッサコアに、プロセッサが選択されたプロセッサコアから、プロセッサコアの優先度を計算することに関連する熱出力および電流漏れのデータを収集することができるように実行する作業負荷を与えることができる。組込み自己テストは、選択されたプロセッサコアがその他の点では非アクティブであるか、アイドル状態であるか、または休止状態にある間に、実行され得る。一態様では、組込み自己テストは、コンピューティングデバイスの起動プロセス中に(プロセッサコアのデフォルトグループとして事前選択され得る)選択されたプロセッサコアに関して実行され得る。ブロック516において、プロセッサは、選択されたプロセッサコアの組込み自己テスト中に取得された、選択されたプロセッサコアの関連データを収集することができる。
【００５１】
随意のブロック517において、自己テストデータは、ブロック507において収集された動作データを記憶するために使用される不揮発性メモリなど、プロセッサによってアクセス可能な不揮発性メモリに記憶され得る。不揮発性メモリに自己テストデータを記憶することにより、最初のプロセッサコア優先度およびマッピングを設定するために起動時間にこの情報を使用することが可能になり得る。
【００５２】
プロセッサはまた、組込み自己テストデータを収集することの一部として、選択されたプロセッサコアの動作時間データを取り出すことができる。ブロック518において、プロセッサは、ブロック508の場合と同様の方法で、収集された動作データおよび動作履歴に基づいて、選択されたプロセッサコアの各々に関する優先度を計算することができる。ブロック526において、プロセッサは、上述のように、仮想プロセッサ識別変換テーブルにおけるハードウェアプロセッサコア優先度を更新することができる。
【００５３】
別の態様では、選択されたプロセッサコアが非アクティブであるとプロセッサが判断したとき(すなわち、判断ブロック504=「Yes」)、随意の判断ブロック520においてプロセッサは、コンピューティングデバイスがコールドブートにあり、ブロック514において選択されたプロセッサコアの組込み自己テストを実行するのではなく迅速に起動するように構成されているかどうかを随意に判断することができる。コールドブートは、コンピューティングデバイスがパワーダウン状態から起動するときに発生し得る。コンピューティングデバイスがコールドブートにないか、またはコールドブートにあるが速く起動するように構成されていないとプロセッサが判断したとき(すなわち、随意の判断ブロック520=「No」)、プロセッサは、ブロック514において選択されたプロセッサコアの組込み自己テストを実行し、上述のように進むことができる。
【００５４】
コンピューティングデバイスがコールドブートにあり、速く起動するように構成されているとプロセッサが判断したとき(すなわち、随意の判断ブロック520=「Yes」)、プロセッサは、随意のブロック522において不揮発性メモリから、選択されたプロセッサコアの記憶された組込み自己テストデータ、または記憶された動作データ、および動作履歴を取り出すことができる。不揮発性メモリは、ブロック507において収集された動作データを記憶するために使用される同じメモリおよび/またはブロック517において自己テストデータを記憶するために使用される同じメモリであり得る。一態様では、選択されたプロセッサコアの記憶された組込み自己テストデータおよび動作データの組合せをプロセッサが取り出すことが可能であり得る。たとえば、選択されたプロセッサコアの記憶された組込み自己テストデータまたは動作データは不完全であることがあり、プロセッサは、欠落したデータを、入手可能なときには他のタイプのデータで補完することができる。プロセッサはまた、プロセッサコアの優先度を計算する際に使用される、データのタイプのうちの1つまたは複数に関する組込み自己テストデータまたは動作データのうちの1つが、より最近のものであるとの判断を行うことがあり、データの1つまたは複数のタイプに関するより最近のデータを使用することを決定し得る。
【００５５】
随意のブロック524において、プロセッサは、上述のようにブロック508および518の場合と同様の方法で、取り出された記憶されたデータおよび動作履歴に基づいて、選択されたプロセッサコアの各々に関する優先度を計算することができる。ブロック526において、プロセッサは、上述のように、仮想プロセッサ識別変換テーブルにおけるハードウェアプロセッサコア優先度を更新することができる。
【００５６】
代替態様では、コンピューティングデバイスまたはシステムは、プロセッサがプロセッサコアに再度優先度を付ける方法を決定するために自己テストまたはランタイム測定のみを使用するように構成され得る。自己テストのみを使用する態様では、ブロック504〜512の動作は実行されないことがあり、517においてメモリに記憶された自己テストの結果が、上述のように初回の自己テストが実行され得る前に最初のプロセッサ優先度を設定するために起動時間に使用され得る。プロセッサコアに再度優先度を付けるためにランタイム測定のみを使用する態様では、ブロック514〜524の動作は実行されないことがあり、ランタイム測定の結果は、将来の起動サイクルまたはランタイム中において結果が参照され得るように不揮発性ストレージに保存され得る。そのような態様では、プロセッサは、十分なランタイム測定がメモリに記憶される前に最初の起動サイクル時に使用され得るデフォルトプロセッサコアマッピング(たとえば、0=0、1=1、2=2、3=3)により構成され得る。
【００５７】
図6は、更新されたハードウェアを含むシステムの動作寿命を延ばし、性能を最大化するためのマルチコアシステム設計のランタイム最適化のための態様方法600を示す。信頼性エンジンを実行しているプロセッサは、方法600を実行することができる。
【００５８】
図3に示す拡大版の、アップグレードされる、交換される、または後に追加されるプロセッサコア326(たとえば、モデムプロセッサ、追加または交換用のグラフィックプロセッサ(GPU)、追加または交換用のオーディオプロセッサ、および追加または交換用のDSP)など、コンピューティングデバイスへの新しいプロセッサコアを含む新しい処理ハードウェアの追加は、新しいプロセッサコアとより古いプロセッサコアとの間における摩耗レベルの不均衡をもたらし得る。プロセッサコアのそのような後に追加される/交換される/アップグレードされるセットは、コンピューティングデバイスの販売後のある時点で随意に追加される(たとえば、既存のインターフェーススロットに接続される)ことのある第2のCPUクラスタ326と似たものであり得る。不均衡は大変大きいために、プロセッサコアの摩耗を均一にしようとして、より古いプロセッサコアを大きく上回る優先度を新しいプロセッサコアに付けることになり得る。しかしながら、補完的ハードウェアを追加することによってコンピューティングデバイスの性能を高めるために新しいハードウェアが追加されることが多いので、これは新しいハードウェアを追加する目的にそぐわないことがある。ハードウェア使用レベルが均一になるまで古いハードウェアを上回る優先度を新しいハードウェアに付けることは、古いハードウェアを補完するのではなく、ある時間期間にそれに取って代わるという意図しない影響を及ぼすことがある。したがって、新しいハードウェアに過度に依拠するのを回避するために、ブロック602において、信頼性エンジンを実行するプロセッサは、選択されたコアの履歴動作時間を動作時間しきい値と比較することができる。動作時間しきい値は、あらかじめ決定されるか、または新しいプロセッサコアおよび古いプロセッサコアの動作時間データに基づいて計算され得る。動作時間しきい値は、いつ新しいプロセッサコアが古いプロセッサコアと同じように扱われ得るかについての分離線を提供することができる。判断ブロック604において、プロセッサは、選択されたプロセッサコアのいずれかの履歴動作時間が動作時間しきい値を上回るかどうかを判断することができる。言い換えれば、プロセッサは、同等プロセッサコアの優先度を判断する目的で、新しいプロセッサコアのいずれかが非常に新しくて、より古いプロセッサコアと混ぜるほど十分にはまだ実行されていないかどうかを確認することができる。
【００５９】
少なくとも1つのプロセッサコアの履歴動作時間が動作時間しきい値を上回るとプロセッサが判断したとき(すなわち、判断ブロック604=「Yes」)、ブロック606においてプロセッサは、選択されたプロセッサコアをしきい値超過(または新しい)プロセッサコアおよびしきい値未満(または古い)プロセッサコアにグループ化することができる。ブロック608において、プロセッサは、選択されたプロセッサコアのしきい値超過グループおよびしきい値未満グループの各々に関して、他方のグループとは別個に方法500を実行することができる。したがって、ブロック602において、プロセッサは、選択されたプロセッサコアのしきい値超過グループまたはしきい値未満グループのいずれかを選択し、上述のように残りのブロックを実行することができる。プロセッサは、最初に選択されていないグループに関しても同じことを行うことができる。この態様では、古いプロセッサコアおよび新しいプロセッサコアは、別個に優先度を付けられ、同様のウェアの他のプロセッサコアとのみ比較される。したがって、古いグループと新しいグループの両方におけるプロセッサコアは、高レベルオペレーティングシステムから処理要求を割り当てられ得る。プロセッサコアのいずれの履歴動作時間も動作時間しきい値を上回らないとプロセッサが判断したとき(すなわち、判断ブロック604=「No」)、ブロック610においてプロセッサは、選択されたプロセッサコアのすべてに関して一緒に方法500を実行することができる。
【００６０】
方法600は、サーバのマルチコアプロセッサの動作時間が消費者用デバイスの場合よりもしばしば長いサーバ環境において特に有用であり得る。サーバは、サーバによってサポートされる機能にとってサーバ使用可能時間が非常に重要であり得る商業的環境において用いられることが多いので、マルチコアプロセッサに対する需要はほぼ持続的であり得る。サーバはまた、処理ハードウェアを追加、除去および交換することによって、変化する使用量および需要レベルに合わせて柔軟に再構成されるように構成されることが多い。マルチコアプロセッサの追加または交換など、サーバにおける処理ハードウェアの追加および交換により、サーバは新しいタスク、さらなる同じタスクを実行すること、または追加前よりも優れたタスクを実行することが可能になる。サーバのマルチコアプロセッサの長い動作時間により、現在用いられているマルチコアプロセッサと新たに導入されたマルチコアプロセッサとの間の大きい格差が生じ得る。上述のように、サーバシステムは計算サーバ、データサーバ、電気通信インフラストラクチャラックサーバ、ビデオ配信サーバ、特定用途向けサーバなどを含み得る。サーバ環境において方法600を実施すると、サーバの信頼性が増し、結果的に使用可能時間が長くなることがあり、これはサーバサービスプロバイダおよびサーバアクセスに依拠する者にとって非常に重要な側面である。
【００６１】
図7は、テスト/動作データを収集し、プロセッサコア優先度を計算するための態様方法700を示す。信頼性エンジンを実行しているプロセッサは、方法700を実行することができる。方法700は、図5を参照しながら上述した方法500のブロック506、508、514および516におけるテスト/動作データを収集し、プロセッサコア優先度を計算するための動作について説明する。判断ブロック504において、選択されたプロセッサコアが非アクティブであるとプロセッサが判断したとき(すなわち、方法500における判断ブロック504=「Yes」)、ブロック702においてプロセッサは、選択されたプロセッサコアにテスト作業負荷を適用することができる。テスト作業負荷は、プロセッサコアにおけるいくつかの動作を生じさせるように設計された、あらかじめ決定された作業負荷であり得る。たとえば、テスト作業負荷は、通常作業負荷を提供することによって、プロセッサコアからの通常作業応答を誘発しようとし得る。同様に、テスト作業負荷は、プロセッサコアにタスクの重作業負荷を提供することによって、プロセッサコアからの重作業応答を誘発しようとし得る。グラフィックプロセッサコアに対してはグラフィック処理作業負荷など、異なるタイプのプロセッサコアに対して異なる作業負荷が指定され得る。
【００６２】
ブロック704において、プロセッサは、ブロック702における自己テスト中に収集されたデータに基づいて、またはプロセッサコアがアクティブであるときに(すなわち、方法500における判断ブロック504=「No」)コアの通常動作から収集されたデータに基づいて、各選択されたプロセッサコアの熱出力を測定することができる。たとえば、プロセッサコアを含んでいるマルチコアプロセッサのダイに戦略的に置かれ得る熱センサーから温度データが取得され得る。いくつかのセンサーからの温度データの分析が、個別のプロセッサコアの熱出力を計算するために使用され得る。プロセッサコアが互いに非常に接近して置かれて、プロセッサコアのうちの1つまたは複数の熱出力が別のプロセッサコアに影響を及ぼす態様では、個別に各プロセッサコアではなく、プロセッサコアのグループの熱出力を観測することで十分であり得る。そのような態様では、熱出力を観測するためのプロセッサコアごとに必要な熱センサーの数を減らすことが可能であり得る。
【００６３】
ブロック706において、プロセッサは、各選択されたプロセッサコアの電流漏れを測定することができる。電流または電圧センサーは、コアでの電圧降下またはコアによって消費される電流の量が観測および記録され得るように、プロセッサコアを含んでいるマルチコアプロセッサのダイに戦略的に置かれ得る。電流漏れはまた、温度センサーを使用して観測され得る個別のプロセッサコアの熱出力に基づいて計算され得る。
【００６４】
ブロック708において、プロセッサは、各選択されたプロセッサコアの履歴動作時間を取り出すことができる。上述のように、履歴動作時間は、メモリ、ストレージ構成要素、マルチコアプロセッサ、またはプロセッサコアの履歴動作時間を追跡し記録するためにもっぱら用いられる何らかの他の構成要素から取り出され得る。履歴動作時間は、いくつかの異なる方法で提示され得る。一態様では、履歴動作時間は、(本明細書では「アクティブ時間」と呼ばれる)プロセッサコアがアクティブであった時間量のカウント値を含み得る。一態様では、履歴動作時間は、他の同等プロセッサコアのアクティブ時間の量と比較したコアのアクティブ時間の比較(または相対的測定)に基づくプロセッサコアの相対アクティブ時間値を含むことができる。たとえば、履歴動作時間は、特定の動作コアがアクティブであった、同等プロセッサコアのすべての総動作時間のパーセンテージであり得る。
【００６５】
ブロック710において、プロセッサは、選択されたプロセッサコアの各々の測定された熱出力に熱出力重み係数を適用することができる。ブロック712において、プロセッサは、選択されたプロセッサコアの各々の測定された電流漏れに電流漏れ重み係数を適用することができる。ブロック714において、プロセッサは、選択されたプロセッサコアの各々の履歴動作時間に動作時間重み係数を適用することができる。重み係数の各々に関して、重み係数は同等プロセッサコア全体で同じままであり得る。たとえば、熱出力重み係数は、同等プロセッサコアの各々に関して同じであり得る。一態様では、重み係数は、非同等プロセッサコアに関しては同じであること、または異なることがある。たとえば、熱出力重み係数は、グラフィックプロセッサコアと比較して一般的プロセッサコアに関しては同じであること、または同じではないことがある。様々な態様では、測定値または履歴値に重み係数を適用することは、任意の数の数学演算のうちの1つまたは複数を使用することを含み得る。たとえば、測定値または履歴値は、それらのそれぞれの重み係数で乗算され得る。
【００６６】
ブロック716において、プロセッサは、個別に各選択されたプロセッサコアの重み付けされた熱出力、重み付けされた電流漏れ、および/または重み付けされた履歴動作時間を組み合わせて、各選択されたプロセッサコアの優先度値を得ることができる。上述のように、これらの値の組合せは、様々な形で実現され得る。様々な態様では、これらの値の一部または全部が組み合わせられて、各選択されたプロセッサコアの優先度値が生成され得る。いくつかの態様では、値の一部は、数学演算を通じて切り捨てられた値を他の値と組み合わせないこと、または値をそれのそれぞれの重み係数を使用して相殺することによって値を無視すること、のいずれかによって、組合せに含まれないことがある。
【００６７】
プロセッサコアに関する異なるタイプの動作情報は独立していることがあり、したがって、必ずしも図7に動作が示されている順序とは限らない任意の順序で取得および処理され得ることに留意されたい。たとえば、プロセッサは、起動またはシステム初期化のときのみ電流漏れをサンプリングし、その後は通常動作の一部として周期的に(たとえば、1時間ごとに)温度/熱測定値を取得することができる。したがって、図7に示す動作の順序は例示のためにすぎず、特許請求の範囲を限定するものではない。
【００６８】
図8は、高レベルオペレーティングシステムプロセッサコア識別情報をハードウェアプロセッサコア優先度に変換するための態様方法800を示す。信頼性エンジンを実行しているプロセッサは、方法800を実行することができる。ブロック802において、プロセッサは、高レベルオペレーティングシステムプロセッサコア識別情報を指定する高レベルオペレーティングシステムからのプロセス要求を受信し得る。そうする際に、高レベルオペレーティングシステムは、高レベルオペレーティングシステムプロセッサコア識別情報によって識別されたプロセッサコアがプロセス要求を割り当てられることになることを予想している。たとえば、仮想プロセッサコア識別子および物理的プロセッサコア識別子の元のペアリングが、仮想識別子のプロセッサコア0を物理的識別子のプロセッサコア0とペアリングし得る。しかしながら、プロセッサコアが図4の優先度テーブルに示されているように優先度を付けられた場合、仮想識別子のプロセッサコア0は、物理的識別子のプロセッサコア2とペアリングされ得る。
【００６９】
ブロック804において、プロセッサは、それの優先度に従って高レベルオペレーティングシステムプロセッサコア識別情報を対応するハードウェアプロセッサコア識別情報とマッチングさせ得る。プロセッサコアが優先度を付けられ、高レベルオペレーティングシステムプロセッサコア識別情報のそれらの元のペアリングともはやマッチングしない場合、プロセッサは、高レベルオペレーティングシステムによって行われたプロセス要求がプロセッサコア、およびより具体的には適切なプロセッサコアにマッピングされるように、高レベルオペレーティングシステムプロセッサコア識別情報と新たに優先度を付けられたプロセッサコアとの間で結び付けを行うことができる。しかしながら、適切なプロセッサコアはもはや、高レベルオペレーティングシステムが予想するプロセッサコアではないことがある。
【００７０】
ブロック806において、プロセッサは、指定されたプロセッサコア識別情報に関する高レベルオペレーティングシステムからのプロセス要求を、対応するハードウェアプロセッサコア識別情報を割り当てられたプロセッサコアにマッピングすることができる。プロセッサはプロセス要求を、要求された仮想プロセッサコア識別子に現在関連するプロセッサコアにマッピングすることができる。関連プロセッサコアは、プロセス要求を実行するプロセッサコアであり得る。
【００７１】
ブロック808において、プロセッサは、プロセス要求において高レベルオペレーティングシステムによって識別されたプロセッサコアによってプロセス要求が実行されたかのように、プロセス要求の結果を高レベルオペレーティングシステムに返信することができる。プロセッサコアの優先度の変化を高レベルオペレーティングシステムに通知せず、高レベルオペレーティングシステムが変化に合わせて調整する必要なしにプロセス要求を管理することによって、高レベルオペレーティングシステムにおける複雑な層をなくし、オペレーティングシステムにおける態様を実装するのに本来必要であり得るコストを減らすことができる。
【００７２】
図9は、動作寿命を延ばし、性能を最大化するためのマルチコアシステム設計のランタイム最適化において使用する重み付け値を更新するための態様方法900を示す。製造業者内のコンピュータは、方法900の少なくとも一部の動作を実行することができる。製造業者は、製造中にプロセッサコアの性能特性について把握し、次いでデータを使用して、非効率性および不均一な熱サイクルなど、プロセッサコアのテスト段階で検出されていない問題を是正するために、使用中のプロセッサコアを調整することができる。たとえば、製造業者が新しいプロセスにおいて集積回路の生産を拡大する中で、製造業者は通常、ウエハ製作プロセスのチューニング中にプロセッサコアのばらつきおよび性能に関することを把握する。そのような把握により、製造業者は、たとえば、以前製作されたロットから集積回路を実装しているコンピューティングデバイスのためにオーバージエア更新において更新済みパラメータを送信することによって、すでに配備されているデバイスを修正することになり得る。別の例として、故障した消費者用製品が、たとえば、周知の返品許可(RMA:Return Merchandise Authorization)プロセスに従って、製造業者に返されることがある。返された商品は、商品返品を促したデバイスの故障につながる問題のパターンを発見するために分析され得る。返された商品の故障の分析を通じて、製造業者は、プロセッサコアの摩耗を変える重み付け値を更新することによって、それのプロセッサコアの故障率および寿命を改善することができると判断し得る。
【００７３】
ブロック902において、製造業者は、故障の原因および故障率のデータを判断するために、返された商品を受け取り、分析することができる。このデータは、顧客のコメントおよびRMAプロセスに従って取得された潜在的に欠陥があるプロセッサコアまたは壊れているプロセッサコアの技術的分析を含み得る。一態様では、ブロック904において、製造業者は、ワイヤード接続またはワイヤレス接続による通信を介して、機能しているコンピューティングデバイスからプロセッサコアの動作およびテストデータを受け取ることもできる。
【００７４】
ブロック906において、製造業者は、返品商品分析データならびに動作およびテストデータを、受け取られた場合に、構成要素の故障の原因を判断するために分析することができる。ブロック908において、製造業者は、受け取られたデータを使用して、構成要素の故障の原因を回避し得るプロセッサコアのための重み係数のうちの1つまたは複数に関する更新を決定することができる。プロセッサコアのより良い摩耗またはより均一な摩耗につながると予想される方法でコアの優先度をスキューするために、プロセッサコアに関係するデータのうちの1つまたは複数をより重視するように、またはさほど重視しないように、重み係数は修正され得る。
【００７５】
ブロック910において、製造業者は、たとえば、コンピューティングデバイスへのオーバージエア更新、技術者によって実現される店内での更新、またはインターネットへのワイヤードネットワーク接続もしくはワイヤレスネットワーク接続を介してインターネットサーバからコンピューティングデバイス(たとえば、デスクトップまたはラップトップコンピュータ)にダウンロードされる更新の形態で、ワイヤード接続またはワイヤレス接続を介してコンピューティングデバイスに更新済み重み係数を送ることができる。そのような更新を送ることは、コンピューティングデバイスへのデータのターゲットプッシュもしくはブロードキャストプッシュを使用して実現され得るか、またはコンピューティングデバイスは、更新を通知され、インターネットサーバから更新をダウンロード(すなわち、プル)することを要求され得る。
【００７６】
図10は、動作寿命を延ばし、性能を最大化するためのマルチコアシステム設計のランタイム最適化において使用する重み付け値を更新するための態様方法を示すプロセスフロー図である。方法900に関連する方法1000において、コンピューティングデバイスは、重み付け値を更新するために、製造業者との間でデータを送受信し得る。
【００７７】
ブロック1002において、コンピューティングデバイスは、ワイヤレス接続を介して製造業者に動作およびテストデータを送ることができる。このデータを送ることは、コンピューティングデバイスまたは製造業者のいずれかがこのデータの送信のためにセットアップされていないので随意であるか、あるいはコンピューティングデバイス上のユーザオプションとして随意であり得る。
【００７８】
ブロック1004において、コンピューティングデバイスは、熱出力、電流漏れ、および動作時間のうちの1つまたは複数に関する更新済み重み係数を受信し得る。受信された更新済み重み係数は、コンピューティングデバイスに送られたか、もしくは提供された更新済み重み係数、ならびに/またはコンピューティングデバイスおよび/もしくはユーザによって受け入れられた更新済み重み係数に依存し得る。
【００７９】
ブロック1006において、信頼性エンジンを実行しているプロセッサは、重み係数を更新済み重み係数に置き換えることができる。一態様では、古い重み係数の一部または全部は、新しい重み係数により更新されるときに削除され、それらのポインタから分離され、または上書され得る。更新済み係数は、プロセッサコアが優先度を付けられる次回に使用され得る。
【００８０】
図11は、スマートフォンの形態での様々な態様を実装するのに適したコンピューティングデバイスの一例を示す。スマートフォンコンピューティングデバイス1100は、タッチスクリーンコントローラ1104および内部メモリ1106に結合されたマルチコアプロセッサ1102を含むことができる。マルチコアプロセッサ1102は、汎用または特定の処理タスクに指定された1つまたは複数のマルチコア集積回路であってよい。内部メモリ1106は揮発性または不揮発性メモリであってよく、また、セキュアおよび/もしくは暗号化メモリであっても、または非セキュアおよび/もしくは非暗号化メモリであっても、あるいはそれらの任意の組合せであってもよい。タッチスクリーンコントローラ1104およびマルチコアプロセッサ1102は、抵抗感知タッチスクリーン、容量感知タッチスクリーン、赤外線感知タッチスクリーンなどのようなタッチスクリーンパネル1112に結合される場合もある。加えて、コンピューティングデバイス1100のディスプレイは、タッチスクリーン機能を有する必要はない。
【００８１】
スマートフォンコンピューティングデバイス1100は、互いに結合され、かつ/またはマルチコアプロセッサ1102に結合された、通信を送信および受信するための1つまたは複数の無線信号トランシーバ1108(たとえば、Peanut、Bluetooth（登録商標）、Zigbee、Wi-Fi、RF無線など)と、アンテナ1110とを有する場合がある。トランシーバ1108およびアンテナ1110は、様々なワイヤレス送信のプロトコルスタックおよびインターフェースを実装するために、上述の回路とともに使用される場合がある。スマートフォンコンピューティングデバイス1100は、セルラーネットワークを介する通信を可能にし、プロセッサに結合された、セルラーネットワークワイヤレスモデムチップ1116を含むことができる。
【００８２】
スマートフォンコンピューティングデバイス1100は、マルチコアプロセッサ1102に結合された周辺デバイス接続インターフェース1118を含む場合がある。周辺デバイス接続インターフェース1118は、1つのタイプの接続を受け入れるように単独で構成される場合があるか、またはUSB、FireWire、Thunderbolt、もしくはPCIeなどの様々なタイプの物理接続および通信接続を共通もしくはプロプライエタリに受け入れるように構成される場合がある。周辺デバイス接続インターフェース1118は、同様に構成された周辺デバイス接続ポート(図示せず)に結合される場合もある。
【００８３】
スマートフォンコンピューティングデバイス1100は、オーディオ出力を提供するためのスピーカー1114を含む場合もある。スマートフォンコンピューティングデバイス1100は、本明細書で論じた構成要素のすべてまたは一部を含むための、プラスチック、金属、または材料の組合せで構成されたハウジング1120を含むこともできる。スマートフォンコンピューティングデバイス1100は、使い捨てバッテリまたは充電式バッテリなどの、マルチコアプロセッサ1102に結合された電源1122を含んでもよい。充電式バッテリは、また、スマートフォンコンピューティングデバイス1100の外部のソースから充電電流を受け取るために、周辺デバイス接続ポートに結合され得る。スマートフォンコンピューティングデバイス1100は、ユーザ入力を受け取るための物理ボタン1124を含む場合もある。スマートフォンコンピューティングデバイス1100は、スマートフォンコンピューティングデバイス1100をオンおよびオフするための電源ボタン1126を含む場合もある。
【００８４】
上述の様々な態様はまた、図12に示すラップトップコンピュータ1200などの様々な他のコンピューティングデバイス内に実装される場合がある。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面1217を含み、したがって、タッチスクリーンディスプレイを装備した上述のコンピューティングデバイス上で実装されるものと同様のドラッグジェスチャ、スクロールジェスチャ、およびフリックジェスチャを受け取ることができる。ラップトップコンピュータ1200は通常、揮発性メモリ1212、およびフラッシュメモリのディスクドライブ1213などの大容量不揮発性メモリに結合されたマルチコアプロセッサ1211を含む。さらに、コンピュータ1200は、マルチコアプロセッサ1211に結合されたワイヤレスデータリンクおよび/またはセルラー電話トランシーバ1216に接続され得る、電磁放射を送り、受信するための1つまたは複数のアンテナ1208を有し得る。コンピュータ1200は、マルチコアプロセッサ1211に結合されたフロッピーディスクドライブ1214およびコンパクトディスク(CD)ドライブ1215を含む場合もある。ノートブック構成では、コンピュータハウジングは、すべてがマルチコアプロセッサ1211に結合された、タッチパッド1217、キーボード1218、およびディスプレイ1219を含む。コンピューティングデバイスの他の構成には、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールが含まれ得、それらは様々な態様と連携して使用される場合もある。デスクトップコンピュータも同様に、1つまたは複数の別個であるが接続可能な部分において構成要素を分離および結合することを含む、様々な構成によるこれらのコンピューティングデバイス構成要素を含むことができる。
【００８５】
様々な態様はまた、図13に示すサーバ1300のような種々の市販のサーバデバイスのいずれにおいても実装され得る。そのようなサーバ1300は、通常、揮発性メモリ1302、およびディスクドライブ1304などの大容量の不揮発性メモリに結合された、1つまたは複数のマルチコアプロセッサアセンブリ1301を含む。図13に示すように、マルチコアプロセッサアセンブリ1301は、それらをアセンブリのラックに挿入することによって、サーバ1300に追加され得る。サーバ1300は、プロセッサ1301に結合された、フロッピーディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ1306も含み得る。サーバ1300はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワーク、インターネット、公衆交換電話網、ならびに/またはセルラーデータネットワーク(たとえば、CDMA、TDMA、GSM（登録商標）、PCS、3G、4G、LTE、もしくは任意の他のタイプのセルラーデータネットワーク)など、ネットワーク1305とのネットワークインターフェース接続を確立するための、マルチコアプロセッサアセンブリ1301に結合されたネットワークアクセスポート1303を含み得る。
【００８６】
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で実行されるコンピュータプログラムコードすなわち「プログラムコード」は、C、C++、C#、Smalltalk、Java（登録商標）、JavaScript（登録商標）、Visual Basic、Structured Query Language(たとえば、Transact-SQL)、Perlなどの高水準プログラミング言語で、または様々な他のプログラミング言語で書かれ得る。本出願で使用されるように、コンピュータ可読記憶媒体に記憶されるプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である(オブジェクトコードなどの)機械語コードを指す場合がある。
【００８７】
多くのコンピューティングデバイスのオペレーティングシステムのカーネルは、(非特権コードが動作する)ユーザ空間へと編成され、(特権コードが動作する)カーネル空間へと編成される。この分離は、カーネル空間の一部であるコードがGPL認可される必要がある一方で、ユーザ空間内で動作するコードがGPL認可されなくてもよい、Androidおよび他の一般公有使用許諾(GPL)環境において特に重要である。本明細書で説明された様々なソフトウェア構成要素/モジュールは、明示的に別段の記述がない限り、カーネル空間またはユーザ空間のいずれかに実装され得ることを理解されたい。
【００８８】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な態様の動作が提示された順序で実施されなければならないことを要求または暗示するものではない。当業者には理解されるように、上記の態様における動作の順序は、任意の順序で実施され得る。「その後」、「次いで」、「次に」などのような語は、動作の順序を限定するものではなく、これらの語は単に、本方法の説明を通して読者を導くために使用される。さらに、特許請求要素に対して単数形で行われるいかなる言及も、その要素を単数に限定するものとして解釈すべきではない。
【００８９】
様々な態様に関して説明する様々な例示的な論理ブロック、モジュール、回路およびアルゴリズム動作は、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路および動作について、概してそれらの機能に関して上記で説明してきた。そのような機能がハードウェアとして実装されるか、それともソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約で決まる。当業者は、説明した機能を特定の適用例ごとに様々な方式で実装し得るが、そのような実装決定は、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００９０】
本明細書で開示する態様に関して説明する様々な例示的なロジック、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実現または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連結した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。代替として、いくつかの動作または方法は、所与の機能に固有の回路によって実施され得る。
【００９１】
1つまたは複数の態様では、説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読媒体上または非一時的プロセッサ可読媒体上の1つまたは複数の命令またはコードとして記憶されてもよい。本明細書で開示する方法またはアルゴリズムの動作は、非一時的コンピュータ可読またはプロセッサ可読記憶媒体上に常駐することができるプロセッサ実行可能ソフトウェアモジュールにおいて具体化され得る。非一時的コンピュータ可読またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であり得る。限定ではなく例として、そのような非一時的コンピュータ可読またはプロセッサ可読媒体は、RAM、ROM、EEPROM、FLASHメモリ、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含む場合がある。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびblu-rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記の組合せは、また、非一時的コンピュータ可読およびプロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれる場合がある、非一時的プロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして存在する場合がある。
【００９２】
開示された態様の上記の説明は、任意の当業者が本発明を作成または使用することができるように提供される。これらの態様に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本発明の要旨または範囲から逸脱することなく、他の態様に適用されてもよい。したがって、本発明は、本明細書に示された態様に限定されるものではなく、以下の特許請求の範囲、ならびに、本明細書で開示された原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００９３】
10  コンピューティングデバイス
12  SoC
14  プロセッサ、プロセッサコア、マルチコアプロセッサ
16  メモリ
18  通信インターフェース
20  ストレージインターフェース
22  通信構成要素
24  ストレージ構成要素、ストレージデバイス
26  アンテナ
28  ネットワークインターフェース
30  ワイヤレスネットワーク
32  ワイヤレス接続
40  インターネット
44  ワイヤード接続、ワイヤードネットワーク
50  プロセッサ製造業者サーバ、プロセッサコア製造業者、プロセッサコア製造業者サーバ
200  プロセッサコア
201  プロセッサコア
202  プロセッサコア
203  プロセッサコア
300  仮想プロセッサ識別変換テーブル
302  信頼性エンジン
304  ソフトウェアアプリケーション、ソフトウェア
306  高レベルオペレーティングシステム
320  プロセッサコア、高性能/高漏れマルチコア汎用/中央処理装置(CPU)、マルチコアプロセッサ、マルチコア汎用CPU
321  プロセッサコア、低性能/低漏れマルチコア汎用/中央処理装置(CPU)、マルチコアプロセッサ、マルチコア汎用CPU
322  プロセッサコア、マルチコアグラフィック処理装置(GPU)、マルチコアプロセッサ
324  プロセッサコア、マルチコアデジタル信号プロセッサ(DSP)、マルチコアプロセッサ
326  プロセッサコア、他のマルチコア計算ユニット、マルチコアプロセッサ、第2のCPUクラスタ
400  テーブル
402  左列
404  右列
406  行、第1の行
408  行、第2の行
410  行、第3の行
412  行、第4の行
500  態様方法、方法
600  態様方法、方法
700  態様方法、方法
800  態様方法、方法
900  態様方法、方法
1000  方法
1100  スマートフォンコンピューティングデバイス、コンピューティングデバイス
1102  マルチコアプロセッサ
1104  タッチスクリーンコントローラ
1106  内部メモリ
1108  無線信号トランシーバ、トランシーバ
1110  アンテナ
1112  タッチスクリーンパネル
1114  スピーカー
1116  セルラーネットワークワイヤレスモデムチップ
1118  周辺デバイス接続インターフェース
1120  ハウジング
1122  電源
1124  物理ボタン
1126  電源ボタン
1200  ラップトップコンピュータ、コンピュータ
1208  アンテナ
1211  マルチコアプロセッサ
1212  揮発性メモリ
1213  ディスクドライブ
1214  フロッピーディスクドライブ
1215  コンパクトディスク(CD)ドライブ
1216  ワイヤレスデータリンクおよび/またはセルラー電話トランシーバ
1217  タッチパッドのタッチ面、タッチパッド
1218  キーボード
1219  ディスプレイ
1300  サーバ
1301  マルチコアプロセッサアセンブリ、プロセッサ
1302  揮発性メモリ
1303  ネットワークアクセスポート
1304  ディスクドライブ
1305  ネットワーク
1306  フロッピーディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ
【図１】
2017506773.tif 000003
【図２】
2017506773.tif 000004
【図３】
2017506773.tif 000005
【図４】
2017506773.tif 000006
【図５】
2017506773.tif 000007
【図６】
2017506773.tif 000008
【図７】
2017506773.tif 000009
【図８】
2017506773.tif 000010
【図９】
2017506773.tif 000011
【図１０】
2017506773.tif 000012
【図１１】
2017506773.tif 000013
【図１２】
2017506773.tif 000014
【図１３】
2017506773.tif 000015
【手続補正書】
【提出日】平成28年6月21日(2016.6.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチコアプロセッサの動作寿命を延ばすために、前記マルチコアプロセッサ内のプロセッサコアに処理タスクを割り当てる方法であって、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップと、
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップと、
高レベルオペレーティングシステムからプロセス要求を受信する前に、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップと、
前記順序付けられた関連性に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップと
を含む方法。
【請求項２】
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、通常動作の下で前記プロセッサコアの温度、累積使用量、および電流漏れのうちの1つまたは複数を測定するステップを含む、請求項1に記載の方法。
【請求項３】
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、
前記プロセッサコアがアクティブであるかどうかを判断するステップと、
前記プロセッサコアが非アクティブであると判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップと、
前記テスト作業負荷を提供したことに応答して、個別に、または前記プロセッサコアのグループに関して、前記テスト作業負荷の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアの各々に関する履歴動作時間を取り出すステップと
を含む、請求項1に記載の方法。
【請求項４】
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップは、前記測定された熱出力、前記測定された電流漏れ、および前記履歴動作時間を重み係数と乗算し、その積を加算することによって、前記プロセッサコアの各々に関する前記優先度を計算するステップを含む、請求項3に記載の方法。
【請求項５】
ネットワーク接続を介して更新済み重み係数を受信するステップと、
前記更新済み重み係数により前記プロセッサコアの各々に関する優先度を計算する際に使用される前記重み係数を更新するステップと
をさらに含む、請求項4に記載の方法。
【請求項６】
前記マルチコアプロセッサを有するコンピューティングデバイスがコールドブート状態にあり、迅速に起動するように構成されているかどうかを判断するステップ
をさらに含み、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、
前記コンピューティングデバイスが前記コールドブート状態にあり、迅速に起動するように構成されていると判断したことに応答して、前記プロセッサコアに関する摩耗に関係する記憶された情報を取り出すステップと、
前記コンピューティングデバイスが前記コールドブート状態にないか、または迅速に起動するように構成されていないと判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップと
を含む、請求項1に記載の方法。
【請求項７】
前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップと、摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップとは、前記コンピューティングデバイスが前記コールドブート状態にあり、迅速に起動するように構成されていると判断したことに応答して、起動時間中に発生する、請求項6に記載の方法。
【請求項８】
第1のプロセッサコアに関する仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するステップをさらに含み、
特定のプロセッサコアにプロセッサ要求を再度割り当てるステップは、
前記第1のプロセッサコアの前記仮想識別子と第2のプロセッサコアの物理的識別子との間の前記順序付けられた関連性に従って、高レベルオペレーティングシステムから受信された前記プロセス要求をマッピングするステップと、
前記高レベルオペレーティングシステムによって指定された前記第1のプロセッサコアが前記プロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するステップと
を含む、請求項1に記載の方法。
【請求項９】
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップと
をさらに含み、
高レベルオペレーティングシステムからプロセス要求を受信する前に、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップは、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関する関連性を順序付けるステップを含む、請求項1に記載の方法。
【請求項１０】
複数のプロセッサコアを有するマルチコアプロセッサを含むコンピューティングデバイスであって、前記マルチコアプロセッサは、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップと、
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップと、
高レベルオペレーティングシステムからプロセス要求を受信する前に、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップと、
前記順序付けられた関連性に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップと
を含む動作を実行するためのプロセッサ実行可能命令により構成される、コンピューティングデバイス。
【請求項１１】
前記マルチコアプロセッサは、前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップが、
前記プロセッサコアがアクティブであるかどうかを判断するステップと、
前記プロセッサコアが非アクティブであると判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップと、
前記テスト作業負荷を提供したことに応答して、個別に、またはプロセッサコアのグループに関して、前記テスト作業負荷の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアの各々に関する履歴動作時間を取り出すステップと
を含むような動作を実行するためのプロセッサ実行可能命令により構成される、請求項10に記載のコンピューティングデバイス。
【請求項１２】
前記マルチコアプロセッサは、摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップが、前記測定された熱出力、前記測定された電流漏れ、および前記履歴動作時間を重み係数と乗算し、その積を加算することによって、前記プロセッサコアの各々に関する前記優先度を計算するステップを含むような動作を実行するためのプロセッサ実行可能命令により構成される、請求項11に記載のコンピューティングデバイス。
【請求項１３】
前記マルチコアプロセッサは、
ネットワーク接続を介して更新済み重み係数を受信するステップと、
前記更新済み重み係数により前記プロセッサコアの各々に関する優先度を計算する際に使用される前記重み係数を更新するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令により構成される、請求項12に記載のコンピューティングデバイス。
【請求項１４】
前記マルチコアプロセッサは、
前記マルチコアプロセッサを有する前記コンピューティングデバイスがコールドブート状態にあり、迅速に起動するように構成されているかどうかを判断するステップ
をさらに含む動作を実行するためのプロセッサ実行可能命令により構成され、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、
前記コンピューティングデバイスが前記コールドブート状態にあり、迅速に起動するように構成されていると判断したことに応答して、前記プロセッサコアに関する摩耗に関係する記憶された情報を取り出すステップと、
前記コンピューティングデバイスが前記コールドブート状態にないか、または迅速に起動するように構成されていないと判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップと
を含む、請求項10に記載のコンピューティングデバイス。
【請求項１５】
前記マルチコアプロセッサは、第1のプロセッサコアに関する仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するステップをさらに含む動作を実行するためのプロセッサ実行可能命令により構成され、
特定のプロセッサコアにプロセッサ要求を再度割り当てるステップは、
前記第1のプロセッサコアの前記仮想識別子と第2のプロセッサコアの物理的識別子との間の前記順序付けられた関連性に従って、前記高レベルオペレーティングシステムから受信された前記プロセス要求をマッピングするステップと、
前記高レベルオペレーティングシステムによって指定された前記第1のプロセッサコアが前記プロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するステップと
をさらに含む、請求項10に記載のコンピューティングデバイス。
【請求項１６】
前記マルチコアプロセッサは、
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令により構成され、
高レベルオペレーティングシステムからプロセス要求を受信する前に、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップは、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関する関連性を順序付けるステップを含む、請求項10に記載のコンピューティングデバイス。
【請求項１７】
複数のプロセッサコアを有するマルチコアプロセッサを有するコンピューティングデバイスであって、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するための手段と、
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するための手段と、
高レベルオペレーティングシステムからプロセス要求を受信する前に、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるための手段と、
関連性を順序付けるための前記手段に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるための手段と
を含むコンピューティングデバイス。
【請求項１８】
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するための手段は、
前記プロセッサコアがアクティブであるかどうかを判断するための手段と、
前記プロセッサコアが非アクティブであると判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するための手段と、
前記テスト作業負荷を提供したことに応答して、個別に、またはプロセッサコアのグループに関して、前記テスト作業負荷の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するための手段と、
前記プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するための手段と、
前記プロセッサコアの各々に関する履歴動作時間を取り出すための手段と
を含む、請求項17に記載のコンピューティングデバイス。
【請求項１９】
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するための手段は、前記測定された熱出力、前記測定された電流漏れ、および前記履歴動作時間を重み係数と乗算し、その積を加算することによって、前記プロセッサコアの各々に関する前記優先度を計算するための手段を含む、請求項18に記載のコンピューティングデバイス。
【請求項２０】
ネットワーク接続を介して更新済み重み係数を受信するための手段と、
前記更新済み重み係数により前記プロセッサコアの各々に関する優先度を計算する際に使用される前記重み係数を更新するための手段と
をさらに含む、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記マルチコアプロセッサを有する前記コンピューティングデバイスがコールドブート状態にあり、迅速に起動するように構成されているかどうかを判断するための手段
をさらに含み、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するための手段は、
前記コンピューティングデバイスが前記コールドブート状態にあり、迅速に起動するように構成されていると判断したことに応答して、前記プロセッサコアに関する摩耗に関係する記憶された情報を取り出すための手段と、
前記コンピューティングデバイスが前記コールドブート状態にないか、または迅速に起動するように構成されていないと判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するための手段と
を含む、請求項17に記載のコンピューティングデバイス。
【請求項２２】
第1のプロセッサコアに関する仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するための手段をさらに含み、
特定のプロセッサコアにプロセッサ要求を再度割り当てるための手段は、
前記第1のプロセッサコアの前記仮想識別子と第2のプロセッサコアの物理的識別子との間の前記順序付けられた関連性に従って、前記高レベルオペレーティングシステムから受信された前記プロセス要求をマッピングするための手段と、
前記高レベルオペレーティングシステムによって指定された前記第1のプロセッサコアが前記プロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するための手段と
をさらに含む、請求項17に記載のコンピューティングデバイス。
【請求項２３】
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するための手段と、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するための手段と
をさらに含み、
高レベルオペレーティングシステムからプロセス要求を受信する前に、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるための手段は、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関する関連性を順序付けるための手段を含む、請求項17に記載のコンピューティングデバイス。
【請求項２４】
プロセッサ実行可能命令を記憶した非一時的プロセッサ可読記憶媒体であって、前記プロセッサ実行可能命令は、マルチコアプロセッサに、
前記マルチコアプロセッサ内のプロセッサコアの各々に関する摩耗に関係する情報を取得するステップと、
摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップと、
高レベルオペレーティングシステムからプロセス要求を受信する前に、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップと、
前記順序付けられた関連性に基づいて、特定のプロセッサコアにプロセッサ要求を再度割り当てるステップと
を含む動作を実行させるように構成される、非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップが、
前記プロセッサコアがアクティブであるかどうかを判断するステップと、
前記プロセッサコアが非アクティブであると判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップと、
前記テスト作業負荷を提供したことに応答して、個別に、またはプロセッサコアのグループに関して、前記テスト作業負荷の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアがアクティブであると判断したことに応答して、個別に、またはプロセッサコアのグループに関して、通常動作の下で前記プロセッサコアの熱出力および電流漏れのうちの1つまたは複数を測定するステップと、
前記プロセッサコアの各々に関する履歴動作時間を取り出すステップと
を含むような動作を実行させるように構成される、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、摩耗に関係する前記取得された情報に基づいて、前記プロセッサコアの各々に関する優先度を計算するステップが、前記測定された熱出力、前記測定された電流漏れ、および前記履歴動作時間を重み係数と乗算し、その積を加算することによって、前記プロセッサコアの各々に関する前記優先度を計算するステップを含むような動作を実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、
ネットワーク接続を介して更新済み重み係数を受信するステップと、
前記更新済み重み係数により前記プロセッサコアの各々に関する優先度を計算する際に使用される前記重み係数を更新するステップと
をさらに含む動作を実行させるように構成される、請求項26に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、
前記マルチコアプロセッサを有するコンピューティングデバイスがコールドブート状態にあり、迅速に起動するように構成されているかどうかを判断するステップ
をさらに含む動作を実行させるように構成され、
前記マルチコアプロセッサ内の前記プロセッサコアの各々に関する摩耗に関係する情報を取得するステップは、
前記コンピューティングデバイスが前記コールドブート状態にあり、迅速に起動するように構成されていると判断したことに応答して、前記プロセッサコアに関する摩耗に関係する記憶された情報を取り出すステップと、前記コンピューティングデバイスが前記コールドブート状態にないか、または迅速に起動するように構成されていないと判断したことに応答して、前記プロセッサコアの各々にテスト作業負荷を提供するステップとを含む、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２９】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、第1のプロセッサコアに関する仮想識別子を指定する高レベルオペレーティングシステムからのプロセス要求を受信するステップをさらに含む動作を実行させるように構成され、
特定のプロセッサコアにプロセッサ要求を再度割り当てるステップは、
前記第1のプロセッサコアの前記仮想識別子と第2のプロセッサコアの物理的識別子との間の前記順序付けられた関連性に従って、前記高レベルオペレーティングシステムから受信された前記プロセス要求をマッピングするステップと、
前記高レベルオペレーティングシステムによって指定された前記第1のプロセッサコアが前記プロセス要求の結果を生成したかのように、前記高レベルオペレーティングシステムに前記プロセス要求の前記結果を返信するステップと
をさらに含む、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項３０】
前記記憶されたプロセッサ実行可能命令は、前記マルチコアプロセッサに、
前記プロセッサコアのいずれかに関する履歴動作時間が動作時間しきい値を上回るかどうかを判断するステップと、
前記動作時間しきい値を上回るプロセッサコアを第1のプロセッサコアグループにグループ化し、前記動作時間しきい値を上回らないプロセッサコアを第2のプロセッサコアグループにグループ化するステップと
をさらに含む動作を実行させるように構成され、
高レベルオペレーティングシステムからプロセス要求を受信する前に、前記プロセッサコアの各々に関して計算された前記優先度に従って、前記プロセッサコアの各々に関する仮想識別子と前記プロセッサコアの各々に関する物理的識別子との間の関連性を順序付けるステップは、前記第2のプロセッサコアグループに関する関連性とは別個に前記第1のプロセッサコアグループに関する関連性を順序付けるステップを含む、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【国際調査報告】
2017506773.tif 000016
2017506773.tif 000017
2017506773.tif 000018
2017506773.tif 000019