(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-15
(45)【発行日】2022-12-23
(54)【発明の名称】リソーススケジューリング方法および端末デバイス
(51)【国際特許分類】
G06F 9/50 20060101AFI20221216BHJP
【FI】
G06F9/50 120A
(21)【出願番号】P 2020552909
(86)(22)【出願日】2019-06-10
(86)【国際出願番号】 CN2019090573
(87)【国際公開番号】W WO2020073672
(87)【国際公開日】2020-04-16
【審査請求日】2020-09-29
(31)【優先権主張番号】201811184979.7
(32)【優先日】2018-10-11
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【氏名又は名称】野村 進
(72)【発明者】
【氏名】王 ▲飛▼
(72)【発明者】
【氏名】王 振▲寧▼
(72)【発明者】
【氏名】▲陳▼ ▲海▼波
(72)【発明者】
【氏名】成 ▲堅▼
(72)【発明者】
【氏名】▲趙▼ ▲鴻▼江
(72)【発明者】
【氏名】▲陳▼ 善席
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2012-511204(JP,A)
【文献】特開2010-152738(JP,A)
【文献】米国特許出願公開第2017/0195247(US,A1)
【文献】Basireddy Karunakar Reddy, et al.,"Inter-Cluster Thread-to-Core Mapping and DVFS on Heterogeneous Multi-Cores",IEEE Transactions on Multi-Scale Computing Systems,IEEE,2018年09月14日,Vol.4, No.3,Pages 369-382,ISSN: 2332-7766, <DOI: 10.1109/TMSCS.2017.2755619>.
【文献】Alexandra Fedorova, et al.,"Performance of Multithreaded Chip Multiprocessors And Implications For Operating System Design",Technical Report TR-09-05,[online], Computer Science Group, Harvard University,2005年,全14頁,[令和3年11月9日検索], インターネット, <URL: https://dash.harvard.edu/handle/1/24829606?show=full> and <URL: http://nrs.harvard.edu/urn-3:HUL.InstRepos:24829606>.
【文献】Ahmad Lashgar, et al.,"Performance in GPU Architectures : Potentials snd Distances",Proceedings of the 9th Annual Workshop on Duplicating, Deconstructing, and Debunking (WDDD 2011),[online],2011年06月14日,全7頁,[令和3年11月9日検索], インターネット, <URL: https://www.eecg.utoronto.ca/~enright/wddd/2011/papers/lashgar_wddd2011.pdf> and <URL: https://www.eecg.utoronto.ca/~enright/wddd/2011/program.html>.
【文献】Fan Wu, et al.,"Adaptive CPU Scheduling to Conserve Energy in Real-Time Mobile Graphics Applications",Proceedings of International Symposium on Visual Computing (ISVC 2008),Springer-Verlag,2008年,Pages 624-633,[online], [令和3年11月9日検索], インターネット, <URL: http://web.cs.wpi.edu/~emmanuel/publications/PDFs/C47.pdf>,ISBN: 978-3-540-89638-8, <DOI : https://doi.org/10.1007/978-3-540-89639-5_60>. (Also published as "Lecture Notes in Computer Science, vol.5358".)
(58)【調査した分野】(Int.Cl.,DB名)
G06F9/46-9/54
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
リソーススケジューリング方法であって、前記方法は、端末デバイスに適用され、
フレーム描画スレッドの負荷特性を決定するステップであって、前記フレーム描画スレッドは、画像フレームを描画するために使用される、ステップと、
前記フレーム描画スレッドの前記負荷特性に基づいてターゲットリソーススケジューリング方式を決定するステップと、
前記ターゲットリソーススケジューリング方式で前記フレーム描画スレッドについてのリソースをスケジューリングするステップと
を含み、
前記フレーム描画スレッドの前記負荷特性は、第1の時間間隔における前記フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいて決定され、
前記第1の時間間隔は、前記フレーム描画スレッドの実行の開始と前記フレーム描画スレッドの前記実行の終了との間の期間であり、
前記第1の時間間隔が設定されているときに前記第1の時間間隔に対して比率閾値が設定され、
前記画像フレームのフレーム描画時間に対する前記第1の時間間隔の比率は、前記比率閾値を超えることはでき
ず、前記画像フレームの前記フレーム描画時間は、完全な画像フレームを描画するのにかかる時間を示すために使用される、方法。
【請求項2】
前記フレーム描画スレッドの前記負荷特性に基づいてターゲットリソーススケジューリング方式を決定する前記ステップは、
前記フレーム描画スレッドの前記負荷特性に基づいて前記フレーム描画スレッドの予測負荷値を決定するステップと、
前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記予測負荷値、および事前設定されたターゲットフレームレートに基づいて前記ターゲットリソーススケジューリング方式を決定するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記予測負荷値、および事前設定されたターゲットフレームレートに基づいて前記ターゲットリソーススケジューリング方式を決定する前記ステップは、
前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記予測負荷値、および前記事前設定されたターゲットフレームレートに基づいて、前記フレーム描画スレッドについてのリソースをスケジューリングする少なくとも1つのリソーススケジューリング方式を決定するステップと、
前記少なくとも1つのリソーススケジューリング方式の中で最も低い消費電力のリソーススケジューリング方式を前記ターゲットリソーススケジューリング方式として決定するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記フレーム描画スレッドの前記負荷特性に基づいてターゲットリソーススケジューリング方式を決定する前記ステップは、
前記フレーム描画スレッドの前記負荷特性に基づいて前記フレーム描画スレッドの予測負荷値を決定するステップと、
前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記予測負荷値、および第1のマッピング関係情報に基づいて前記ターゲットリソーススケジューリング方式を決定するステップであって、前記第1のマッピング関係情報は、複数の負荷情報および前記複数の負荷情報の各々に対応するリソーススケジューリング方式を含み、前記複数の負荷情報の各々は、1つの負荷特性および1つの負荷値を含む、ステップと
を含む、請求項1に記載の方法。
【請求項5】
前記フレーム描画スレッドの前記負荷特性に基づいて前記フレーム描画スレッドの予測負荷値を決定する前記ステップは、
前記フレーム描画スレッドの前記負荷特性および第2のマッピング関係情報に基づいて前記フレーム描画スレッドの前記予測負荷値を決定するステップであって、前記第2のマッピング関係情報は、複数の負荷特性および前記複数の負荷特性の各々に対応する負荷値を含む、ステップ
を含む、請求項2から4のいずれか一項に記載の方法。
【請求項6】
前記フレーム描画スレッドの前記負荷特性および第2のマッピング関係情報に基づいて前記フレーム描画スレッドの前記予測負荷値を決定する前記ステップは、
前記第2のマッピング関係情報における前記複数の負荷特性が基準負荷特性を含むとき、前記基準負荷特性に対応する負荷値を前記フレーム描画スレッドの前記予測負荷値として決定するステップであって、前記基準負荷特性と前記フレーム描画スレッドの前記負荷特性との間の類似度は、類似度閾値以上である、ステップ
を含む、請求項5に記載の方法。
【請求項7】
前記フレーム描画スレッドの前記負荷特性および第2のマッピング関係情報に基づいて前記フレーム描画スレッドの前記予測負荷値を決定するステップは、
前記第2のマッピング関係情報における前記複数の負荷特性が基準負荷特性を含まないとき、前記フレーム描画スレッドを使用することによって描画された前記画像フレームに先行するフレームの負荷値を、前記フレーム描画スレッドの前記予測負荷値として決定するステップであって、前記基準負荷特性と前記フレーム描画スレッドの前記負荷特性との間の類似度は、類似度閾値以上である、ステップ
を含む、請求項5または6に記載の方法。
【請求項8】
前記フレーム描画スレッドの前記負荷特性に基づいてターゲットリソーススケジューリング方式を決定する前記ステップは、
前記フレーム描画スレッドの前記負荷特性および第3のマッピング関係情報に基づいて前記ターゲットリソーススケジューリング方式を決定するステップであって、前記第3のマッピング関係情報は、複数の負荷特性および前記複数の負荷特性の各々に対応するリソーススケジューリング方式を含む、ステップ
を含む、請求項1に記載の方法。
【請求項9】
前記フレーム描画スレッドの前記負荷特性および第3のマッピング関係情報に基づいて前記ターゲットリソーススケジューリング方式を決定する前記ステップは、
前記第3のマッピング関係情報における前記複数の負荷特性が基準負荷特性を含むとき、前記基準負荷特性に対応するリソーススケジューリング方式を前記ターゲットリソーススケジューリング方式として決定するステップであって、前記基準負荷特性と前記フレーム描画スレッドの前記負荷特性との間の類似度は、類似度閾値以上である、ステップ
を含む、請求項8に記載の方法。
【請求項10】
前記フレーム描画スレッドの前記負荷特性および第3のマッピング関係情報に基づいて前記ターゲットリソーススケジューリング方式を決定するステップは、
前記第3のマッピング関係情報における前記複数の負荷特性が基準負荷特性を含まないとき、前記フレーム描画スレッドを使用することによって描画された前記画像フレームに先行するフレームのフレーム描画スレッドのリソーススケジューリング方式を、前記ターゲットリソーススケジューリング方式として決定するステップであって、前記基準負荷特性と前記フレーム描画スレッドの前記負荷特性との間の類似度は、類似度閾値以上である、ステップ
を含む、請求項8または9に記載の方法。
【請求項11】
前記方法は、
前記フレーム描画スレッドの関連スレッドを決定するステップであって、前記関連スレッドは、前記フレーム描画スレッドをスリープさせることが可能なスレッドである、ステップと、
前記関連スレッドの実行を加速するように前記関連スレッドについてのリソースをスケジューリングするステップと
をさらに含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記フレーム描画スレッドの実行は、所定の時間内に完了されず、前記方法は、
前記フレーム描画スレッドの前記実行を加速するように前記フレーム描画スレッドについての追加のリソースをスケジューリングするステップであって、前記所定の時間は、リソースが前記ターゲットリソーススケジューリング方式で前記フレーム描画スレッドにスケジューリングされるときに前記フレーム描画スレッドの前記実行を完了するために必要な時間である、ステップ
をさらに含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記追加のリソースのサイズと第1の差との間に正の相関関係があり、前記第1の差は、前記追加のリソースをスケジューリングする時点と前記所定の時間の終了時点との間の差である、請求項12に記載の方法。
【請求項14】
リソーススケジューリング方法であって、前記方法は、端末デバイスに適用され、
フレーム描画スレッドの負荷特性を決定するステップであって、前記フレーム描画スレッドは、画像フレームを描画するために使用される、ステップと、
前記フレーム描画スレッドの前記負荷特性および前記フレーム描画スレッドに対応するアプリケーションシナリオに基づいて前記フレーム描画スレッドのターゲット予測負荷値を決定するステップと、
前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記ターゲット予測負荷値、および事前設定されたターゲットフレームレートに基づいてターゲットリソーススケジューリング方式を決定するステップと、
前記ターゲットリソーススケジューリング方式で前記フレーム描画スレッドについてのリソースをスケジューリングするステップと
を含み、
前記フレーム描画スレッドの前記負荷特性は、第1の時間間隔における前記フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいて決定され、
前記第1の時間間隔は、前記フレーム描画スレッドの実行の開始と前記フレーム描画スレッドの前記実行の終了との間の期間であり、
前記第1の時間間隔が設定されているときに前記第1の時間間隔に対して比率閾値が設定され、
前記画像フレームのフレーム描画時間に対する前記第1の時間間隔の比率は、前記比率閾値を超えることはでき
ず、前記画像フレームの前記フレーム描画時間は、完全な画像フレームを描画するのにかかる時間を示すために使用され、
前記アプリケーションシナリオは、前記フレーム描画スレッドが位置されるアプリケーションプログラムのタイプ、前記フレーム描画スレッドが位置されるアプリケーションプログラムのフェーズ、および前記フレーム描画スレッドが位置されるアプリケーションプログラムが実行されるフェーズのうちの少なくとも1つを含む、方法。
【請求項15】
前記フレーム描画スレッドの前記負荷特性および前記フレーム描画スレッドに対応するアプリケーションシナリオに基づいて前記フレーム描画スレッドのターゲット予測負荷値を決定する前記ステップは、
前記フレーム描画スレッドの前記負荷特性に基づいて前記フレーム描画スレッドの第1の予測負荷値を決定するステップと、
前記フレーム描画スレッドに対応する前記アプリケーションシナリオおよび第4のマッピング関係情報に基づいて第2の予測負荷値を決定するステップであって、前記第4のマッピング関係情報は、複数のアプリケーションシナリオおよび前記複数のアプリケーションシナリオの各々に対応する負荷値を含む、ステップと、
前記第1の予測負荷値および前記第2の予測負荷値に基づいて前記ターゲット予測負荷値を決定するステップと
を含む、請求項1
4に記載の方法。
【請求項16】
前記方法は、
前記フレーム描画スレッドの関連スレッドを決定するステップであって、前記関連スレッドは、前記フレーム描画スレッドをスリープさせることが可能なスレッドである、ステップと、
前記関連スレッドの実行を加速するように前記関連スレッドについてのリソースをスケジューリングするステップと
をさらに含む、請求項14
または15に記載の方法。
【請求項17】
前記フレーム描画スレッドの実行は、所定の時間内に完了されず、前記方法は、
前記フレーム描画スレッドの前記実行を加速するように前記フレーム描画スレッドについての追加のリソースをスケジューリングするステップであって、前記所定の時間は、リソースが前記ターゲットリソーススケジューリング方式で前記フレーム描画スレッドにスケジューリングされるときに前記フレーム描画スレッドの前記実行を完了するために必要な時間である、ステップ
をさらに含む、請求項14から
16のいずれか一項に記載の方法。
【請求項18】
前記追加のリソースのサイズと第1の差との間に正の相関関係があり、前記第1の差は、前記追加のリソースをスケジューリングする時点と前記所定の時間の終了時点との間の差である、請求項
17に記載の方法。
【請求項19】
フレーム描画スレッドの負荷特性を決定し、前記フレーム描画スレッドは、画像フレームを描画するために使用される、ように構成された処理モジュールであって、
前記処理モジュールは、前記フレーム描画スレッドの前記負荷特性に基づいてターゲットリソーススケジューリング方式を決定するようにさらに構成される、処理モジュールと、
前記ターゲットリソーススケジューリング方式で前記フレーム描画スレッドについてのリソースをスケジューリングするように構成されたスケジューリングモジュールと
を備え、
前記フレーム描画スレッドの前記負荷特性は、第1の時間間隔における前記フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいて決定され、
前記第1の時間間隔は、前記フレーム描画スレッドの実行の開始と前記フレーム描画スレッドの前記実行の終了との間の期間であり、
前記第1の時間間隔が設定されているときに前記第1の時間間隔に対して比率閾値が設定され、
前記画像フレームのフレーム描画時間に対する前記第1の時間間隔の比率は、前記比率閾値を超えることはでき
ず、前記画像フレームの前記フレーム描画時間は、完全な画像フレームを描画するのにかかる時間を示すために使用される、端末デバイス。
【請求項20】
前記処理モジュールは、
前記フレーム描画スレッドの前記負荷特性に基づいて前記フレーム描画スレッドの予測負荷値を決定し、
前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記予測負荷値、および事前設定されたターゲットフレームレートに基づいて前記ターゲットリソーススケジューリング方式を決定する
ように構成される、請求項
19に記載の端末デバイス。
【請求項21】
前記処理モジュールは、
前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記予測負荷値、および前記事前設定されたターゲットフレームレートに基づいて、前記フレーム描画スレッドについてのリソースをスケジューリングする少なくとも1つのリソーススケジューリング方式を決定し、
前記少なくとも1つのリソーススケジューリング方式の中で最も低い消費電力のリソーススケジューリング方式を前記ターゲットリソーススケジューリング方式として決定する
ように構成される、請求項
20に記載の端末デバイス。
【請求項22】
前記処理モジュールは、
前記フレーム描画スレッドの前記負荷特性に基づいて前記フレーム描画スレッドの予測負荷値を決定し、
前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記予測負荷値、および第1のマッピング関係情報に基づいて前記ターゲットリソーススケジューリング方式を決定し、前記第1のマッピング関係情報は、複数の負荷情報および前記複数の負荷情報の各々に対応するリソーススケジューリング方式を含み、前記複数の負荷情報の各々は、1つの負荷特性および1つの負荷値を含む、
ように構成される、請求項
19に記載の端末デバイス。
【請求項23】
前記処理モジュールは、
前記フレーム描画スレッドの前記負荷特性および第2のマッピング関係情報に基づいて前記フレーム描画スレッドの前記予測負荷値を決定し、前記第2のマッピング関係情報は、複数の負荷特性および前記複数の負荷特性の各々に対応する負荷値を含む、
ように構成される、請求項
20から
22のいずれか一項に記載の端末デバイス。
【請求項24】
前記処理モジュールは、
前記第2のマッピング関係情報における前記複数の負荷特性が基準負荷特性を含むとき、前記基準負荷特性に対応する負荷値を前記フレーム描画スレッドの前記予測負荷値として決定し、前記基準負荷特性と前記フレーム描画スレッドの前記負荷特性との間の類似度は、類似度閾値以上である、
ように構成される、請求項
23に記載の端末デバイス。
【請求項25】
前記処理モジュールは、
前記第2のマッピング関係情報における前記複数の負荷特性が基準負荷特性を含まないとき、前記フレーム描画スレッドを使用することによって描画された前記画像フレームに先行するフレームの負荷値を、前記フレーム描画スレッドの前記予測負荷値として決定し、前記基準負荷特性と前記フレーム描画スレッドの前記負荷特性との間の類似度は、類似度閾値以上である、
ように構成される、請求項
23または
24に記載の端末デバイス。
【請求項26】
前記処理モジュールは、
前記フレーム描画スレッドの前記負荷特性および第3のマッピング関係情報に基づいて前記ターゲットリソーススケジューリング方式を決定し、前記第3のマッピング関係情報は、複数の負荷特性および前記複数の負荷特性の各々に対応するリソーススケジューリング方式を含む、
ように構成される、請求項
19に記載の端末デバイス。
【請求項27】
前記処理モジュールは、
前記第3のマッピング関係情報における前記複数の負荷特性が基準負荷特性を含むとき、前記基準負荷特性に対応するリソーススケジューリング方式を前記ターゲットリソーススケジューリング方式として決定し、前記基準負荷特性と前記フレーム描画スレッドの前記負荷特性との間の類似度は、類似度閾値以上である、
ように構成される、請求項
26に記載の端末デバイス。
【請求項28】
前記処理モジュールは、
前記第3のマッピング関係情報における前記複数の負荷特性が基準負荷特性を含まないとき、前記フレーム描画スレッドを使用することによって描画された前記画像フレームに先行するフレームのフレーム描画スレッドのリソーススケジューリング方式を、前記ターゲットリソーススケジューリング方式として決定し、前記基準負荷特性と前記フレーム描画スレッドの前記負荷特性との間の類似度は、類似度閾値以上である、
ように構成される、請求項
26または
27に記載の端末デバイス。
【請求項29】
前記処理モジュールは、
前記フレーム描画スレッドの関連スレッドを決定し、前記関連スレッドは、前記フレーム描画スレッドをスリープさせることが可能なスレッドである、
ようにさらに構成され、
前記スケジューリングモジュールは、
前記関連スレッドの実行を加速するように前記関連スレッドについてのリソースをスケジューリングする
ようにさらに構成される、請求項
19から
28のいずれか一項に記載の端末デバイス。
【請求項30】
前記フレーム描画スレッドの実行は、所定の時間内に完了されず、前記スケジューリングモジュールは、
前記フレーム描画スレッドの前記実行を加速するように前記フレーム描画スレッドについての追加のリソースをスケジューリングし、前記所定の時間は、リソースが前記ターゲットリソーススケジューリング方式で前記フレーム描画スレッドにスケジューリングされるときに前記フレーム描画スレッドの前記実行を完了するために必要な時間である、
ようにさらに構成される、請求項
19から
29のいずれか一項に記載の端末デバイス。
【請求項31】
前記追加のリソースのサイズと第1の差との間に正の相関関係があり、前記第1の差は、前記追加のリソースをスケジューリングする時点と前記所定の時間の終了時点との間の差である、請求項
30に記載の端末デバイス。
【請求項32】
フレーム描画スレッドの負荷特性を決定し、前記フレーム描画スレッドは、画像フレームを描画するために使用される、ように構成された処理モジュールであって、
前記処理モジュールは、前記フレーム描画スレッドの前記負荷特性および前記フレーム描画スレッドに対応するアプリケーションシナリオに基づいて前記フレーム描画スレッドのターゲット予測負荷値を決定するようにさらに構成され、
前記処理モジュールは、前記フレーム描画スレッドの前記負荷特性、前記フレーム描画スレッドの前記ターゲット予測負荷値、および事前設定されたターゲットフレームレートに基づいてターゲットリソーススケジューリング方式を決定するようにさらに構成される、処理モジュールと、
前記ターゲットリソーススケジューリング方式で前記フレーム描画スレッドについてのリソースをスケジューリングするように構成されたスケジューリングモジュールと
を備え、
前記フレーム描画スレッドの前記負荷特性は、第1の時間間隔における前記フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいて決定され、
前記第1の時間間隔は、前記フレーム描画スレッドの実行の開始と前記フレーム描画スレッドの前記実行の終了との間の期間であり、
前記第1の時間間隔が設定されているときに前記第1の時間間隔に対して比率閾値が設定され、
前記画像フレームのフレーム描画時間に対する前記第1の時間間隔の比率は、前記比率閾値を超えることはでき
ず、前記画像フレームの前記フレーム描画時間は、完全な画像フレームを描画するのにかかる時間を示すために使用され、
前記アプリケーションシナリオは、前記フレーム描画スレッドが位置されるアプリケーションプログラムのタイプ、前記フレーム描画スレッドが位置されるアプリケーションプログラムのフェーズ、および前記フレーム描画スレッドが位置されるアプリケーションプログラムが実行されるフェーズのうちの少なくとも1つを含む、端末デバイス。
【請求項33】
前記処理モジュールは、
前記フレーム描画スレッドの前記負荷特性に基づいて前記フレーム描画スレッドの第1の予測負荷値を決定し、
前記フレーム描画スレッドに対応する前記アプリケーションシナリオおよび第4のマッピング関係情報に基づいて第2の予測負荷値を決定し、前記第4のマッピング関係情報は、複数のアプリケーションシナリオおよび前記複数のアプリケーションシナリオの各々に対応する負荷値を含み、
前記第1の予測負荷値および前記第2の予測負荷値に基づいて前記ターゲット予測負荷値を決定する
ように構成される、請求項
32に記載の端末デバイス。
【請求項34】
前記処理モジュールは、
前記フレーム描画スレッドの関連スレッドを決定し、前記関連スレッドは、前記フレーム描画スレッドをスリープさせることが可能なスレッドである、
ようにさらに構成され、
前記スケジューリングモジュールは、
前記関連スレッドの実行を加速するように前記関連スレッドについてのリソースをスケジューリングする
ようにさらに構成される、請求項
32または33に記載の端末デバイス。
【請求項35】
前記フレーム描画スレッドの実行は、所定の時間内に完了されず、前記スケジューリングモジュールは、
前記フレーム描画スレッドの前記実行を加速するように前記フレーム描画スレッドについての追加のリソースをスケジューリングし、前記所定の時間は、リソースが前記ターゲットリソーススケジューリング方式で前記フレーム描画スレッドにスケジューリングされるときに前記フレーム描画スレッドの前記実行を完了するために必要な時間である、
ようにさらに構成される、請求項
32から
34のいずれか一項に記載の端末デバイス。
【請求項36】
前記追加のリソースのサイズと第1の差との間に正の相関関係があり、前記第1の差は、前記追加のリソースをスケジューリングする時点と前記所定の時間の終了時点との間の差である、請求項
35に記載の端末デバイス。
【請求項37】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体は、プログラムコードを格納するように構成され、前記プログラムコードがコンピュータによって実行されると、前記コンピュータが請求項1から
18のいずれか一項に記載の方法を実行する、コンピュータ可読記憶媒体。
【請求項38】
チップであって、前記チップは、プロセッサを備え、前記プロセッサは、請求項1から
18のいずれか一項に記載の方法を実行するように構成される、チップ。
【請求項39】
コンピュータに請求項1から
18のいずれか一項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、端末デバイスの分野に関し、より具体的には、リソーススケジューリング方法および端末デバイスに関する。
【背景技術】
【0002】
端末デバイスの性能が向上すると、端末デバイスの消費電力も増加する。しかし、電池容量は非常にゆっくりと増加しており、端末デバイスの性能向上に追いつくことができない。したがって、端末デバイスの性能を保証し、ユーザエクスペリエンスをさらに満たすために、端末デバイスによって現在実行されているタスクについて、リソースが現在のタスクの負荷ステータスに基づいてスケジューリングされる必要がある。
【0003】
従来の解決策では、通常、履歴期間中に端末デバイスによって現在実行されているタスクの負荷ステータスが収集され、リソースが収集された負荷ステータスに基づいて現在実行されているタスクにスケジューリングされる。例えば、現在実行されているタスクの負荷が比較的大きいときには、中央処理装置(CPU)の動作周波数が高くなる場合があり、または現在実行されているタスクの負荷が比較的小さいときには、CPUの動作周波数が低くなる場合がある。しかし、従来の解決策では、リソースは、以前の期間中の負荷ステータスに基づいてスケジューリングされる。したがって、リソーススケジューリングは、低い精度を有し、タイムリーに実施されない。
【発明の概要】
【課題を解決するための手段】
【0004】
本出願は、より正確にリソースをスケジューリングするためのリソーススケジューリング方法および端末デバイスを提供する。
【0005】
第1の態様によれば、リソーススケジューリング方法が提供され、方法は、端末デバイスに適用され、方法は、フレーム描画スレッドの負荷特性を決定するステップであって、フレーム描画スレッドは、画像フレームを描画するために使用される、ステップと、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するステップと、ターゲットリソーススケジューリング方式でフレーム描画スレッドについてのリソースをスケジューリングするステップとを含む。
【0006】
端末デバイスは、モバイル端末(例えば、スマートフォン)、コンピュータ、携帯情報端末、ウェアラブルデバイス、車載デバイス、モノのインターネットデバイスなどであってもよい。あるいは、端末デバイスは、画像を表示することができる別のデバイスであってもよい。
【0007】
端末デバイスは、様々なオペレーティングシステムを実行するデバイスであり得る。例えば、端末デバイスは、Android(登録商標)システムを実行するデバイス、iOS(登録商標)システムを実行するデバイス、またはWindows(登録商標)システムを実行するデバイスであってもよい。
【0008】
リソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされているとき、コンピューティングリソースがフレーム描画スレッドにスケジューリングされてもよく(例えば、CPU内のコアがフレーム描画スレッドを実行するようにスケジューリングされる)、ストレージリソースがフレーム描画スレッドにスケジューリングされてもよく(例えば、いくつかのストレージユニットがフレーム描画スレッドの実行中のプロセスでデータを格納するようにスケジューリングされる)、またはコンピューティングリソースとストレージリソースの両方がフレーム描画スレッドにスケジューリングされてもよい。
【0009】
フレーム描画スレッドは、画像フレームを描画するためのすべてまたは一部のスレッドであり得る。
【0010】
フレーム描画スレッドの負荷特性が決定される前に、フレーム描画スレッドが決定されてもよいことを理解されたい。
【0011】
任意選択で、フレーム描画スレッドを決定するステップは、フレーム描画スレッドとして、画像フレームを描画するプロセスでキーフレーム描画機能を呼び出すためのスレッドを決定するステップを含む。
【0012】
キーフレーム描画機能は、画像フレームを描画するプロセスにおける一部のキー機能であり得、キーフレーム描画機能は、事前設定されてもよい。具体的には、キーフレーム描画機能は、端末デバイスによって使用されるオペレーティングシステムのタイプに基づいて決定されてもよく、異なるタイプのオペレーティングシステムに対応するキーフレーム描画機能は、異なっていてもよい。例えば、iOSシステムに対応するキーフレーム描画機能は、Androidシステムに対応するキーフレーム描画機能とは異なる。
【0013】
本出願では、フレーム描画スレッドの実行速度がユーザエクスペリエンスに直接関係するため、フレーム描画スレッドの負荷特性を使用することによってターゲットリソーススケジューリング方式を決定し、さらに、ターゲットリソーススケジューリング方式でフレーム描画スレッドについてのリソースを直接スケジューリングすると、より細かい粒度のリソーススケジューリングを実装することができるため、リソーススケジューリングがより具体的になり、リソーススケジューリング効果がより良好になる。
【0014】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性は、フレーム描画スレッドのリソース要件特徴を示すために使用される。
【0015】
具体的には、フレーム描画スレッドのリソース要件特徴は、フレーム描画スレッドの負荷が計算集約型であるかリソース集約型であるかを示すことができ、それにより対応するターゲットリソーススケジューリング方式がその後決定される。
【0016】
例えば、フレーム描画スレッドの負荷が計算集約型の負荷であるとき、リソースがフレーム描画スレッドにスケジューリングされているときにコンピューティングリソースが主にスケジューリングされてもよく、またはフレーム描画スレッドの負荷がリソース集約型の負荷であるとき、リソースがフレーム描画スレッドにスケジューリングされているときにストレージリソースが主にスケジューリングされてもよい。
【0017】
フレーム描画スレッドのリソース要件特徴が、フレーム描画スレッドの負荷が計算集約型かつリソース集約型であることを示すとき、リソースがフレーム描画スレッドにスケジューリングされているときにコンピューティングリソースとストレージリソースの両方がスケジューリングされてもよい。
【0018】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性は、フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つを含む。
【0019】
本出願では、フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率などのパラメータの1つまたは複数が収集されると、フレーム描画スレッドの負荷特性は直接取得することができ、それによりフレーム描画スレッドの負荷特性を取得する複雑さが軽減される。
【0020】
フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率などのパラメータの1つまたは複数を直接使用して、フレーム描画スレッドの負荷特性を示すことができ、またはフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率などのパラメータの1つまたは複数を処理した後に取得されたパラメータを使用して、フレーム描画スレッドの負荷特性を示すことができることを理解されたい。
【0021】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性は、第1の時間間隔(または第1の期間と呼ばれる)におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいて決定され、第1の時間間隔は、フレーム描画スレッドの実行の開始とフレーム描画スレッドの実行の終了との間の期間である。
【0022】
第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率は、第1の時間間隔におけるフレーム描画スレッドの性能指標データと呼ばれることがある。フレーム描画スレッドの負荷特性が決定されているとき、第1の時間間隔におけるフレーム描画スレッドの性能指標データのいくつかのパラメータがフレーム描画スレッドの負荷特性として直接決定されてもよいし、または処理もしくは操作が第1の時間間隔におけるフレーム描画スレッドの性能指標データに対して実施されてもよく(例えば、除算演算が性能指標データの2つのパラメータに対して実施されるか、またはハッシュ演算が性能指標データのいくつかのパラメータに対して実施される)、処理または操作後に取得されたデータは、フレーム描画スレッドの負荷特性として決定される。
【0023】
任意選択で、フレーム描画スレッドの負荷特性を決定するステップは、第1の時間間隔におけるフレーム描画スレッドの性能指標データを記録するステップであって、第1の時間間隔は、フレーム描画スレッドの実行の開始とフレーム描画スレッドの実行の終了との間の期間であり、第1の時間間隔におけるフレーム描画スレッドの性能指標データは、第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、キャッシュミス率、およびプログラムカウンタのうちの少なくとも1つを含む、ステップと、第1の時間間隔におけるフレーム描画スレッドの性能指標データに基づいてフレーム描画スレッドの負荷特性を決定するステップとを含む。
【0024】
任意選択で、第1の時間間隔の長さは、収集され得る性能指標データに基づいて決定される。
【0025】
具体的には、第1の時間間隔は、十分な性能指標データを収集するために必要な時間に設定され得る。加えて、第1の時間間隔が設定されているときに初めて比率閾値が設定されてもよく、画像フレームのフレーム描画時間に対する第1の時間間隔の比率は、比率閾値を超えることはできない。
【0026】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するステップは、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定するステップと、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および事前設定されたターゲットフレームレートに基づいてターゲットリソーススケジューリング方式を決定するステップとを含む。
【0027】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および事前設定されたターゲットフレームレートに基づいてターゲットリソーススケジューリング方式を決定するステップは、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および事前設定されたターゲットフレームレートに基づいて、フレーム描画スレッドについてのリソースをスケジューリングする少なくとも1つのリソーススケジューリング方式を決定するステップと、少なくとも1つのリソーススケジューリング方式の中で最も低い消費電力に対応するリソーススケジューリング方式をターゲットリソーススケジューリング方式として決定するステップとを含む。
【0028】
本出願では、複数の利用可能なリソーススケジューリング方式の中で最も低い消費電力に対応するリソーススケジューリング方式は、ターゲットリソーススケジューリング方式として決定され、それによりフレーム描画スレッドのリソーススケジューリング要件が満たされながら消費電力を可能な限り削減することができるため、性能と消費電力との間のバランスを実現する。
【0029】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するステップは、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定するステップと、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および第1のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定するステップであって、第1のマッピング関係情報は、複数の負荷情報および複数の負荷情報の各々に対応するリソーススケジューリング方式を含み、複数の負荷情報の各々は、1つの負荷特性および1つの負荷値を含む、ステップとを含む。
【0030】
任意選択で、第1のマッピング関係情報は、端末デバイスによって記録された履歴情報に基づいて決定され、履歴情報は、フレーム描画スレッドを使用することによって描画された画像フレームに先行する画像フレームの負荷特性、負荷値、および対応するリソーススケジューリング方式を含む。
【0031】
第1のマッピング関係情報は、表の形式であってもよく、または負荷特性、負荷値、および対応するリソーススケジューリング方式を記録するための任意の他の形式の情報であってもよい。
【0032】
本出願では、フレーム描画スレッドの負荷特性および予測負荷値ならびに第1のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定することにより、直接計算によるターゲットリソーススケジューリング方式の決定と比較して、ターゲットリソーススケジューリング方式を決定する複雑さを軽減することができる。
【0033】
任意選択で、方法は、第1のマッピング関係情報を更新するために、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、およびターゲットリソーススケジューリング方式を記録するステップをさらに含む。
【0034】
第1のマッピング関係情報は、第1のマッピング関係情報を更新することによってより多くのタイプの負荷情報を含むことができ、それによりリソーススケジューリング方式は、第1のマッピング関係情報に基づいてその後決定される。
【0035】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定するステップは、フレーム描画スレッドの負荷特性および第2のマッピング関係情報に基づいてフレーム描画スレッドの予測負荷値を決定するステップであって、第2のマッピング関係情報は、複数の負荷特性および複数の負荷特性の各々に対応する負荷値を含む、ステップを含む。
【0036】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性および第2のマッピング関係情報に基づいてフレーム描画スレッドの予測負荷値を決定するステップは、第2のマッピング関係情報における複数の負荷特性が基準負荷特性を含むとき、基準負荷特性に対応する負荷値をフレーム描画スレッドの予測負荷値として決定するステップであって、基準負荷特性とフレーム描画スレッドの負荷特性との間の類似度は、類似度閾値以上である、ステップを含む。
【0037】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性および第2のマッピング関係情報に基づいてフレーム描画スレッドの予測負荷値を決定するステップは、第2のマッピング関係情報における複数の負荷特性が基準負荷特性を含まないとき、フレーム描画スレッドを使用することによって描画された画像フレームに先行するフレームの負荷値を、フレーム描画スレッドの予測負荷値として決定するステップであって、基準負荷特性とフレーム描画スレッドの負荷特性との間の類似度は、類似度閾値以上である、ステップを含む。
【0038】
任意選択で、第2のマッピング関係情報は、端末デバイスによって記録された履歴情報に基づいて決定され、履歴情報は、フレーム描画スレッドを使用することによって描画された画像フレームの負荷特性および対応する負荷値を含んでもよい。
【0039】
第2のマッピング関係情報は、表の形式であってもよく、または負荷特性および対応する負荷値を記録するための任意の他の形式の情報であってもよい。
【0040】
本出願では、フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷特性および第2のマッピング関係を使用することによって比較的便利に決定することができ、これは、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの負荷値を分析または計算することによってフレーム描画スレッドの予測負荷値を直接決定するよりも簡単である。
【0041】
任意選択で、方法は、第2のマッピング関係情報を更新するために、フレーム描画スレッドの負荷特性およびフレーム描画スレッドの予測負荷値を記録するステップをさらに含む。
【0042】
第2のマッピング関係情報は、第2のマッピング関係情報を更新することによってより多くのタイプの負荷特性を含むことができ、それによりフレーム描画スレッドの予測負荷値は、第2のマッピング関係情報に基づいてその後決定される。
【0043】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するステップは、フレーム描画スレッドの負荷特性および第3のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定するステップであって、第3のマッピング関係情報は、複数の負荷特性および複数の負荷特性の各々に対応するリソーススケジューリング方式を含む、ステップを含む。
【0044】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性および第3のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定するステップは、第3のマッピング関係情報における複数の負荷特性が基準負荷特性を含むとき、基準負荷特性に対応するリソーススケジューリング方式をターゲットリソーススケジューリング方式として決定するステップであって、基準負荷特性とフレーム描画スレッドの負荷特性との間の類似度は、類似度閾値以上である、ステップを含む。
【0045】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性および第3のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定するステップは、第3のマッピング関係情報における複数の負荷特性が基準負荷特性を含まないとき、フレーム描画スレッドを使用することによって描画された画像フレームに先行するフレームのフレーム描画スレッドのリソーススケジューリング方式を、ターゲットリソーススケジューリング方式として決定するステップであって、基準負荷特性とフレーム描画スレッドの負荷特性との間の類似度は、類似度閾値以上である、ステップを含む。
【0046】
任意選択で、第3のマッピング関係情報は、端末デバイスによって記録された履歴情報に基づいて決定され、履歴情報は、フレーム描画スレッドを使用することによって描画された画像フレームに先行する画像フレームの負荷特性および対応するリソーススケジューリング方式を含む。
【0047】
第3のマッピング関係情報は、表の形式であってもよく、または負荷特性および対応するリソーススケジューリング方式を記録するための任意の他の形式の情報であってもよい。
【0048】
本出願では、ターゲットリソーススケジューリング方式は、フレーム描画スレッドの負荷特性および負荷特性とリソーススケジューリング方式との間のマッピング関係に関する情報を使用することによって直接決定され、それによりフレーム描画スレッドの予測負荷値を決定するプロセスは省略することができ、ターゲットリソーススケジューリング方式を決定する複雑さがさらに軽減され得る。
【0049】
任意選択で、方法は、第3のマッピング関係情報を更新するために、フレーム描画スレッドの負荷特性およびターゲットリソーススケジューリング方式を記録するステップをさらに含む。
【0050】
第3のマッピング関係情報は、第3のマッピング関係情報を更新することによってより多くのタイプの負荷特性を含むことができ、それによりフレーム描画スレッドに対応するリソーススケジューリング方式は、第3のマッピング関係情報に基づいてその後決定される。
【0051】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、方法は、フレーム描画スレッドの関連スレッドを決定するステップであって、関連スレッドは、フレーム描画スレッドをスリープさせることが可能なスレッドである、ステップと、関連スレッドの実行を加速するように関連スレッドについてのリソースをスケジューリングするステップとをさらに含む。
【0052】
フレーム描画スレッドをスリープさせることは、フレーム描画スレッドを断続的にスリープさせるか、または動作を停止させてもよい。
【0053】
本出願では、リソースが関連スレッドにスケジューリングされるので、フレーム描画スレッドの実行速度を間接的に増加させることができ、ユーザエクスペリエンスが向上される。
【0054】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、フレーム描画スレッドの実行は、所定の時間内に完了されず、方法は、フレーム描画スレッドの実行を加速するようにフレーム描画スレッドについての追加のリソースをスケジューリングするステップであって、所定の時間は、リソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされるときにフレーム描画スレッドの実行を完了するために必要な時間である、ステップをさらに含む。
【0055】
フレーム描画スレッドの実行が完了されると、フレーム描画スレッドに対応する画像フレームの描画が完了されることを理解されたい。フレーム描画スレッドの実行が所定の時間内に完了されない場合、それはより少ないリソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされ得ることを示す。この場合、追加のリソースがフレーム描画スレッドの実行を加速するようにフレーム描画スレッドにスケジューリングされる必要があり、それによってユーザエクスペリエンスを向上させる。
【0056】
第1の態様を参照すると、第1の態様のいくつかの実施態様では、追加のリソースのサイズと第1の差との間に正の相関関係があり、第1の差は、追加のリソースをスケジューリングする時点と事前設定された時間の終了時点との間の差である。
【0057】
第1の差が大きいほど、所定の時間がより早く経過する。より多くのリソースがフレーム描画スレッドにスケジューリングされるため、フレーム描画スレッドの実行は、可能な限り早く完了される。
【0058】
フレーム描画スレッドの実行が完了されると、フレーム描画スレッドについての追加のリソースのスケジューリングが停止されることを理解されたい。
【0059】
第2の態様によれば、リソーススケジューリング方法が提供され、方法は、端末デバイスに適用され、方法は、フレーム描画スレッドの負荷特性を決定するステップであって、フレーム描画スレッドは、画像フレームを描画するために使用される、ステップと、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップと、フレーム描画スレッドの負荷特性、フレーム描画スレッドのターゲット予測負荷値、および事前設定されたターゲットフレームレートに基づいてターゲットリソーススケジューリング方式を決定するステップと、ターゲットリソーススケジューリング方式でフレーム描画スレッドについてのリソースをスケジューリングするステップとを含む。
【0060】
端末デバイスは、モバイル端末(例えば、スマートフォン)、コンピュータ、携帯情報端末、ウェアラブルデバイス、車載デバイス、モノのインターネットデバイスなどであってもよい。あるいは、端末デバイスは、画像を表示することができる別のデバイスであってもよい。
【0061】
端末デバイスは、様々なオペレーティングシステムを実行するデバイスであり得る。例えば、端末デバイスは、Androidシステムを実行するデバイス、iOSシステムを実行するデバイス、またはWindowsシステムを実行するデバイスであってもよい。
【0062】
フレーム描画スレッドに対応するアプリケーションシナリオは、フレーム描画スレッドが位置されるアプリケーションプログラムのタイプであってもよい。例えば、フレーム描画スレッドに対応するアプリケーションシナリオは、動画アプリケーションプログラム、ゲームアプリケーションプログラム、またはユーザとの対話が必要な別のアプリケーションプログラム(例えば、WeChat、Taobao、またはWeibo)であってもよい。
【0063】
加えて、フレーム描画スレッドに対応するアプリケーションシナリオは、フレーム描画スレッドが位置されるアプリケーションプログラムのフェーズであってもよい。例えば、フレーム描画スレッドに対応するアプリケーションシナリオは、フレーム描画スレッドが位置されるアプリケーションプログラムの開始フェーズ、終了フェーズなどであってもよい。
【0064】
あるいは、フレーム描画スレッドに対応するアプリケーションシナリオは、フレーム描画スレッドが位置されるアプリケーションプログラムが実行されるフェーズであってもよい。例えば、フレーム描画スレッドに対応するアプリケーションシナリオは、WeChatのインターフェース(チャットインターフェースまたは小さな動画が開かれるインターフェース)であってもよい。
【0065】
フレーム描画スレッドの負荷特性が決定される前に、フレーム描画スレッドが決定されてもよいことを理解されたい。
【0066】
任意選択で、フレーム描画スレッドを決定するステップは、フレーム描画スレッドとして、画像フレームを描画するプロセスでキーフレーム描画機能を呼び出すためのスレッドを決定するステップを含む。
【0067】
キーフレーム描画機能は、画像フレームを描画するプロセスにおける一部のキー機能であり得、キーフレーム描画機能は、事前設定されてもよい。具体的には、キーフレーム描画機能は、端末デバイスによって使用されるオペレーティングシステムのタイプに基づいて決定されてもよく、異なるタイプのオペレーティングシステムは、異なるキーフレーム描画機能に対応してもよい。例えば、iOSシステムに対応するキーフレーム描画機能は、Androidシステムに対応するキーフレーム描画機能とは異なる。
【0068】
本出願では、フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてより適切に決定することができ、さらに、ターゲットリソーススケジューリング方式は、より細かい粒度のリソーススケジューリングを実装するために、より適切に決定することができるため、リソーススケジューリングがより具体的になり、リソーススケジューリング効果がより良好になる。
【0069】
第2の態様を参照すると、第2の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップは、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの第1の予測負荷値を決定するステップと、フレーム描画スレッドに対応するアプリケーションシナリオおよび第4のマッピング関係情報に基づいてフレーム描画スレッドの第2の予測負荷値を決定するステップであって、第4のマッピング関係情報は、複数のアプリケーションシナリオおよび複数のアプリケーションシナリオの各々に対応する負荷値を含む、ステップと、第1の予測負荷値および第2の予測負荷値に基づいてターゲット予測負荷値を決定するステップとを含む。
【0070】
本出願では、予測負荷値がフレーム描画スレッドの負荷特性およびアプリケーションシナリオに基づいてそれぞれ決定され、次に最終的なターゲット予測負荷値が取得された2つの予測負荷値に基づいて決定されるため、ターゲット負荷値がより良好に決定され得、ターゲットリソーススケジューリング方式がより良好に決定され得る。
【0071】
任意選択で、第1の予測負荷値および第2の予測負荷値に基づいてターゲット予測負荷値を決定するステップは、第1の予測負荷値および第2の予測負荷値における最大負荷値をターゲット予測負荷値として決定するステップを含む。
【0072】
任意選択で、第1の予測負荷値および第2の予測負荷値に基づいてターゲット予測負荷値を決定するステップは、第1の予測負荷値および第2の予測負荷値における最小負荷値をターゲット予測負荷値として決定するステップを含む。
【0073】
任意選択で、第1の予測負荷値および第2の予測負荷値に基づいてターゲット予測負荷値を決定するステップは、式C=A×C1+B×C2に基づいてターゲット予測負荷値を決定するステップを含む。
【0074】
C1は、第1の予測負荷値であり、C2は、第2の予測負荷値であり、Cは、ターゲット予測負荷値であり、Aは、第1の重み付け係数であり、Bは、第2の重み付け係数である。
【0075】
アプリケーションシナリオが負荷値に対して比較的大きい影響を有するとき、Aは、比較的大きい値に設定されてもよく、またはアプリケーションシナリオが負荷値に対して比較的小さい影響を有するとき、Aは、比較的小さい値に設定されてもよい。
【0076】
任意選択で、第1の予測負荷値および第2の予測負荷値に基づいてターゲット予測負荷値を決定するステップは、第1の予測負荷値および第2の予測負荷値の平均値をターゲット予測負荷値として決定するステップを含む。
【0077】
任意選択で、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップは、フレーム描画スレッドに対応するアプリケーションシナリオが開始シナリオであるとき、フレーム描画スレッドに対応するアプリケーションシナリオおよび第4のマッピング関係情報に基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップであって、第4のマッピング関係情報は、複数のアプリケーションシナリオおよび複数のアプリケーションシナリオの各々に対応する負荷値を含む、ステップを含む。
【0078】
フレーム描画スレッドに対応するシナリオが開始シナリオであるとき、開始シナリオに対応する負荷値が比較的大きいため、フレーム描画スレッドのターゲット予測負荷値は、フレーム描画スレッドのアプリケーションシナリオに基づいて直接決定されてもよい。
【0079】
任意選択で、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップは、フレーム描画スレッドに対応するアプリケーションシナリオが開始シナリオ以外のシナリオであるとき、フレーム描画スレッドの負荷特性に基づいてターゲット予測負荷値を決定するステップを含む。
【0080】
第2の態様を参照すると、第2の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性は、フレーム描画スレッドのリソース要件特徴を示すために使用される。
【0081】
具体的には、フレーム描画スレッドのリソース要件特徴は、フレーム描画スレッドの負荷が計算集約型であるかリソース集約型であるかを示すことができ、それにより対応するターゲットリソーススケジューリング方式がその後決定される。
【0082】
例えば、フレーム描画スレッドの負荷が計算集約型の負荷であるとき、リソースがフレーム描画スレッドにスケジューリングされているときにコンピューティングリソースが主にスケジューリングされてもよく、またはフレーム描画スレッドの負荷がリソース集約型の負荷であるとき、リソースがフレーム描画スレッドにスケジューリングされているときにストレージリソースが主にスケジューリングされてもよい。
【0083】
フレーム描画スレッドのリソース要件特徴が、フレーム描画スレッドの負荷が計算集約型かつリソース集約型であることを示すとき、リソースがフレーム描画スレッドにスケジューリングされているときにコンピューティングリソースとストレージリソースの両方がスケジューリングされてもよい。
【0084】
第2の態様を参照すると、第2の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性は、フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つを含む。
【0085】
本出願では、フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率などのパラメータの1つまたは複数が収集されると、フレーム描画スレッドの負荷特性は直接取得することができ、それによりフレーム描画スレッドの負荷特性を取得する複雑さが軽減される。
【0086】
フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率などのパラメータの1つまたは複数を直接使用して、フレーム描画スレッドの負荷特性を示すことができることを理解されたい。フレーム描画スレッドのこれらのパラメータが取得されると、フレーム描画スレッドの負荷特性が取得される。
【0087】
第2の態様を参照すると、第2の態様のいくつかの実施態様では、フレーム描画スレッドの負荷特性は、第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいて決定され、第1の時間間隔は、フレーム描画スレッドの実行の開始とフレーム描画スレッドの実行の終了との間の期間である。
【0088】
第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率は、第1の時間間隔におけるフレーム描画スレッドの性能指標データと呼ばれることがある。フレーム描画スレッドの負荷特性が決定されているとき、第1の時間間隔におけるフレーム描画スレッドの性能指標データのいくつかのパラメータがフレーム描画スレッドの負荷特性として直接決定されてもよいし、または処理もしくは操作が第1の時間間隔におけるフレーム描画スレッドの性能指標データに対して実施されてもよく(例えば、除算演算が性能指標データの2つのパラメータに対して実施されるか、またはハッシュ演算が性能指標データのいくつかのパラメータに対して実施される)、処理または操作後に取得されたデータは、フレーム描画スレッドの負荷特性として決定される。
【0089】
第2の態様を参照すると、第2の態様のいくつかの実施態様では、フレーム描画スレッドの実行は、所定の時間内に完了されず、方法は、フレーム描画スレッドの実行を加速するようにフレーム描画スレッドについての追加のリソースをスケジューリングするステップであって、所定の時間は、リソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされるときにフレーム描画スレッドの実行を完了するために必要な時間である、ステップをさらに含む。
【0090】
フレーム描画スレッドの描画が所定の時間内に完了されない場合、それはより少ないリソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされ得ることを示すことを理解されたい。この場合、追加のリソースがフレーム描画スレッドの実行を加速するようにフレーム描画スレッドにスケジューリングされる必要があり、それによってユーザエクスペリエンスを向上させる。
【0091】
第2の態様を参照すると、第2の態様のいくつかの実施態様では、追加のリソースのサイズと第1の差との間に正の相関関係があり、第1の差は、追加のリソースをスケジューリングする時点と事前設定された時間の終了時点との間の差である。
【0092】
第1の差が大きいほど、所定の時間がより早く経過する。より多くのリソースがフレーム描画スレッドにスケジューリングされるため、フレーム描画スレッドの実行は、可能な限り早く完了される。
【0093】
第3の態様によれば、端末デバイスが提供され、端末デバイスは、第1の態様および第1の態様の実施態様のいずれか1つにおける方法を実施するように構成されたモジュールを含む。
【0094】
第4の態様によれば、端末デバイスが提供され、端末デバイスは、第2の態様および第2の態様の実施態様のいずれか1つにおける方法を実施するように構成されたモジュールを含む。
【0095】
第5の態様によれば、端末デバイスが提供され、端末デバイスは、メモリと、プロセッサとを含み、メモリは、プログラムを格納するように構成され、プロセッサは、プログラムを実行するように構成され、プログラムを実行すると、プロセッサは、第1の態様および第1の態様の実施態様のいずれか1つにおける方法を実施するように構成される。
【0096】
第6の態様によれば、端末デバイスが提供され、端末デバイスは、メモリと、プロセッサとを含み、メモリは、プログラムを格納するように構成され、プロセッサは、プログラムを実行するように構成され、プログラムを実行すると、プロセッサは、第2の態様および第2の態様の実施態様のいずれか1つにおける方法を実施するように構成される。
【0097】
第7の態様によれば、コンピュータ可読記憶媒体が提供され、コンピュータ可読記憶媒体は、プログラムコードを格納するように構成され、プログラムコードがコンピュータによって実行されると、コンピュータは、第1の態様および第1の態様の実施態様のいずれか1つにおける方法を実施するように構成される。
【0098】
第8の態様によれば、コンピュータ可読記憶媒体が提供され、コンピュータ可読記憶媒体は、プログラムコードを格納するように構成され、プログラムコードがコンピュータによって実行されると、コンピュータは、第2の態様および第2の態様の実施態様のいずれか1つにおける方法を実施するように構成される。
【0099】
任意選択で、第7の態様および第8の態様では、コンピュータ可読記憶媒体は、端末デバイスの内部に位置されてもよく、コンピュータ可読媒体に格納されたプログラムコードは、端末デバイスによって実行されてもよい。プログラムコードが端末デバイスによって実行されると、端末デバイスは、第1の態様および第1の態様の実施態様のいずれか1つにおける方法、または第2の態様および第2の態様の実施態様のいずれか1つにおける方法を実施することができる。
【0100】
第9の態様によれば、チップが提供され、チップは、プロセッサを含み、プロセッサは、第1の態様および第1の態様の実施態様のいずれか1つにおける方法を実施するように構成される。
【0101】
第10の態様によれば、チップが提供され、チップは、プロセッサを含み、プロセッサは、第2の態様および第2の態様の実施態様のいずれか1つにおける方法を実施するように構成される。
【0102】
第11の態様によれば、コンピュータまたは端末デバイスが第1の態様および第1の態様の実施態様のいずれか1つにおける方法を実施することを可能にするために使用されるコンピュータプログラム(またはコンピュータプログラム製品と呼ばれる)が提供される。
【0103】
第12の態様によれば、コンピュータまたは端末デバイスが第2の態様および第2の態様の実施態様のいずれか1つにおける方法を実施することを可能にするために使用されるコンピュータプログラム(またはコンピュータプログラム製品と呼ばれる)が提供される。
【図面の簡単な説明】
【0104】
【
図1】本出願の一実施形態による、リソーススケジューリング方法の概略フローチャートである。
【
図2】フレーム描画スレッドを決定するプロセスの概略図である。
【
図3】フレーム描画スレッドの性能指標データに基づいてフレーム描画スレッドの負荷特性を取得する概略フローチャートである。
【
図4】本出願の一実施形態による、リソーススケジューリング方法の概略フローチャートである。
【
図5】フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定する概略フローチャートである。
【
図6】フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドについてのリソースをスケジューリングする概略フローチャートである。
【
図7】関連スレッドを決定し、関連スレッドについてのリソースをスケジューリングする概略フローチャートである。
【
図8】本出願の一実施形態による、リソーススケジューリング方法の概略フローチャートである。
【
図9】本出願の一実施形態による、端末デバイスの概略ブロック図である。
【
図10】本出願の一実施形態による、端末デバイスの概略ブロック図である。
【
図11】本出願の一実施形態による、端末デバイスの概略構造図である。
【発明を実施するための形態】
【0105】
以下は、添付の図面を参照して、本出願の技術的解決策を説明する。
【0106】
従来の解決策では、端末デバイスは、現在のタスクの負荷ステータスに基づいて対応するリソーススケジューリング方式を主に決定し、次にリソーススケジューリング方式でリソースをスケジューリングする。このように、スケジューリングを実施する方法は、現在のタスクの負荷ステータスに基づいて主に決定される。ユーザエクスペリエンスは、このスケジューリング方式では認識されない。対応するタスクの実行はスケジューリングプロセスで完了することができるが、ユーザエクスペリエンスは必ずしも比較的良いとは限らない。
【0107】
端末デバイスの場合、ユーザエクスペリエンスの良し悪しは、画像フレームの表示速度に明らかに関係する。画像フレームの表示速度が比較的遅いと、ユーザはフレームがフリーズしているように感じ、ユーザエクスペリエンスが悪い一方、画像フレームの表示速度が比較的速いと、ユーザは画像が比較的滑らかであると感じ、ユーザエクスペリエンスが比較的良い。例えば、ユーザは、ゲームをプレイしている。画像フレームの表示速度が比較的速い場合、ユーザは、ゲームが非常に滑らかであると感じる。逆の場合、ユーザは、ゲームでフレームフリーズが発生しているように感じる。
【0108】
分析により、画像フレームの表示速度とフレーム描画スレッドの実行との間に明らかな対応関係があることがわかった。フレーム描画スレッドが比較的速く実行されると、画像フレームは比較的速く表示され、またはフレーム描画スレッドが比較的ゆっくりと実行されると、画像フレームは比較的ゆっくりと表示される。したがって、細かいリソーススケジューリングの場合、リソースがフレーム描画スレッドに対して直接スケジューリングされ得るため、リソースがより適切にスケジューリングされる。
【0109】
以下は、
図1を参照して、本出願の実施形態におけるリソーススケジューリング方法を詳細に説明する。本出願でスケジューリングされるリソースは、コンピューティングリソース(例えば、CPU)またはストレージリソース(例えば、ストレージスペース)であり得ることを理解されたい。
【0110】
図1は、本出願の一実施形態による、リソーススケジューリング方法の概略フローチャートである。
図1に示す方法は、端末デバイスによって実施され得る。ここでの端末デバイスは、モバイル端末(例えば、スマートフォン)、コンピュータ、携帯情報端末、ウェアラブルデバイス、車載デバイス、モノのインターネットデバイスなどであってもよい。
【0111】
図1に示す方法は、ステップ101~ステップ103を含む。以下は、ステップを詳細に説明する。
【0112】
101.フレーム描画スレッドの負荷特性を決定する、フレーム描画スレッドは、画像フレームを描画するために使用される。
【0113】
画像フレームは、画像のフレームと呼ばれることもある。簡潔にするために、画像フレームおよび画像のフレームは、本明細書では画像フレームとまとめて呼ばれる。
【0114】
フレーム描画スレッドの実行速度は、ユーザエクスペリエンスに影響を及ぼす場合がある。例えば、フレーム描画スレッドの実行速度が比較的遅いと、画像フレームを描画するのに比較的長い時間を要し、ユーザは画像にフレームフリーズが発生しているように感じる場合があり、またはフレーム描画スレッドの実行速度が比較的速いと、画像フレームの描画が比較的短時間内で完了され得、ユーザは画像が比較的滑らかであると感じる。
【0115】
フレーム描画スレッドの負荷特性は、フレーム描画スレッドの一部の負荷特徴を反映し得る。例えば、フレーム描画スレッドの負荷特性は、フレーム描画スレッドが計算集約型(より多くのコンピューティングリソースを必要とする)であるかアクセス集約型(より多くのストレージリソースを必要とする)であるかを反映することができる。フレーム描画スレッドの負荷特性は、フレーム描画スレッドのレイテンシ特徴(低レイテンシまたは高レイテンシ)をさらに反映し得る。
【0116】
任意選択で、フレーム描画スレッドは、ステップ101の前に決定されてもよい。
【0117】
具体的には、画像フレームを描画するプロセスでキーフレーム描画機能を呼び出すためのスレッドがフレーム描画スレッドとして決定されてもよい。例えば、キーフレーム描画機能が呼び出されるとき、キーフレーム描画機能を呼び出すためのスレッドは、キーフレーム描画機能で決定され、キーフレーム描画機能を呼び出すためのスレッドは、フレーム描画スレッドである。
【0118】
キーフレーム描画機能は、画像フレームを描画するプロセスにおける一部のキー機能であり得、キーフレーム描画機能は、事前設定されてもよい。具体的には、キーフレーム描画機能は、端末デバイスによって使用されるオペレーティングシステムのタイプに基づいて決定されてもよく、異なるタイプのオペレーティングシステムに対応するキーフレーム描画機能は、異なっていてもよい。例えば、iOSシステムに対応するキーフレーム描画機能は、Androidシステムに対応するキーフレーム描画機能とは異なる。
【0119】
以下は、
図2を参照して、Androidシステムにおいてフレーム描画スレッドを決定するプロセスを詳細に説明する。
【0120】
図2は、画像のフレームを描画するプロセスを示す。プロセスは、キャンバス作成、測定とレイアウト、ビュー作成、レンダリング、合成、スワップバッファ、および表示を含む。
【0121】
キャンバス作成から表示へのプロセスは、キーフレーム描画機能が呼び出された後に画像フレームを描画するための一連のステップと見なすことができる。各プロセスでは、キーフレーム描画機能は、対応するスレッドを使用することによって呼び出される(異なるステップまたはプロセスが同じスレッドまたは異なるスレッドによって実施され得る)。したがって、これらのプロセスで実行されるスレッドは、フレーム描画スレッドとして決定されてもよい。
【0122】
表示プロセスはハードウェア性能に主に関係し、リソーススケジューリングにほとんど関係しないため、
図2のキャンバス作成からスワップバッファへのプロセスでキーフレーム描画機能を呼び出すためのスレッドは、フレーム描画スレッドとして決定されてもよいことを理解されたい。
【0123】
ステップ101において、フレーム描画スレッドの負荷特性は、フレーム描画スレッドの性能指標データを記録することによって決定されてもよい。
【0124】
任意選択で、フレーム描画スレッドの負荷特性は、フレーム描画スレッドのリソース要件特徴を示すために使用される。
【0125】
具体的には、フレーム描画スレッドのリソース要件特徴は、フレーム描画スレッドの負荷が計算集約型であるかリソース集約型であるかを示すことができ、それにより対応するターゲットリソーススケジューリング方式がその後決定される。
【0126】
任意選択で、フレーム描画スレッドの負荷特性は、フレーム描画スレッドのリソース要件特徴、フレーム描画スレッドのレイテンシ特徴、およびフレーム描画スレッドの実行特徴のうちの少なくとも1つを示すために使用されてもよい。
【0127】
フレーム描画スレッドの負荷特性は、フレーム描画スレッドの全体的な負荷特性を反映することができるため、リソースは、フレーム描画スレッドの負荷特性に基づいてその後スケジューリングされる。
【0128】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性は、第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいて決定され、第1の時間間隔は、フレーム描画スレッドの実行の開始とフレーム描画スレッドの実行の終了との間の期間である。
【0129】
命令あたりの平均サイクル数(CPI)は、各コンピュータ命令を実行するために必要なクロックサイクルを示す(これは、命令の平均サイクル数と呼ばれることもある)。CPIの平均数は、式X=Y/Zに基づいて計算することができ、Yは、期間におけるクロックサイクルの数を示し、Zは、期間における命令の数を示し、Xは、CPIの平均数である。分岐命令の数は、分岐の数を示すために使用され(分岐はプログラムである)、分岐の数は、ジャンプ命令の数と見なすこともでき、1つのジャンプ命令は、1つの分岐を示す。
【0130】
フレーム描画スレッドの負荷特性が決定されているとき、期間におけるフレーム描画スレッドの性能指標データが最初に収集され得、次にフレーム描画スレッドの負荷特性が期間におけるフレーム描画スレッドの性能指標データに基づいて決定される。
【0131】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性を決定するステップは、第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つを記録するステップであって、第1の時間間隔は、フレーム描画スレッドの実行の開始とフレーム描画スレッドの実行の終了との間の期間である、ステップと、第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいてフレーム描画スレッドの負荷特性を決定するステップとを含む。
【0132】
第1の時間間隔の設定は、収集され得る性能指標データに基づいて決定され得、第1の時間間隔は、十分な性能指標データを収集するために必要な時間に設定され得る。加えて、第1の時間間隔が設定されているときに第1の時間間隔に対して比率閾値が設定されてもよく、画像フレームの描画時間に対する第1の時間間隔の比率は、比率閾値を超えることはできない(比率が比率スレッドを超えた後、画像フレームのフレーム描画スレッドの実行はすぐに完了され、この場合、画像フレームについてのリソースをスケジューリングする意味はない)。
【0133】
プログラムカウンタは、画像フレームに対して実行されている命令のアドレスを記録してもよく、第1の時間間隔におけるフレーム描画スレッドのプログラムカウンタは、第1の時間間隔における画像フレームに対して実行される命令のアドレスであり得る。
【0134】
任意選択で、フレーム描画スレッドの負荷特性が決定されているとき、第1の時間間隔におけるフレーム描画スレッドの性能指標データがフレーム描画スレッドの負荷特性として直接決定されてもよいし、または分析もしくは処理が第1の時間間隔におけるフレーム描画スレッドの性能指標データに対して最初に実施されてもよく、分析もしくは処理により取得されたデータもしくはパラメータ(処理により取得されたデータもしくはパラメータは、画像フレームの全体的な負荷特徴を反映するデータもしくはパラメータであり得る)は、フレーム描画スレッドの負荷特性として使用される。
【0135】
例えば、フレーム描画スレッドの2つのタイプの性能指標データが第1の時間間隔で収集されると、除算が2つのタイプの性能指標データに対して実施されてもよく(具体的には、除算処理が第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、および第1の時間間隔におけるフレーム描画スレッドの分岐命令の数に対して実施されてもよい)、取得された値は、フレーム描画スレッドの負荷特性を示すために使用される。
【0136】
加えて、第1の時間間隔でいくつかの性能指標データが収集されると、ハッシュ演算が性能指標データに対して実施されてもよく(例えば、ハッシュ演算が、画像フレームに対して実行された命令であり、プログラムカウンタによって収集されるアドレスに対して実施されてもよい)、次に操作により取得された情報またはパラメータは、フレーム描画スレッドの負荷特性を示すために使用される。
【0137】
フレーム描画スレッドの性能指標データは第1の時間間隔で複数回収集される場合があり、次にフレーム描画スレッドの負荷特性が複数回収集された様々な性能指標データに基づいて包括的に決定されることで、フレーム描画スレッドの負荷特性はより正確に決定することができることを理解されたい。一般に、フレーム描画スレッドの性能指標データを収集する回数が多く、性能指標データを収集する周波数が高いほど、フレーム描画スレッドの決定された負荷特性の精度がより高く、オーバヘッドが比較的高いことを示す。したがって、実際の用途では、第1の時間間隔の長さおよび性能指標データを収集する周波数は、経験またはシミュレーション結果に基づいて決定することができる。
【0138】
以下は、表1を参照して、フレーム描画スレッドの性能指標データの具体的な表現形式を詳細に説明する。表1は、フレーム描画スレッド0およびフレーム描画スレッド1の収集された命令あたりの平均サイクル数、収集された分岐命令の数、収集されたキャッシュミス率、および収集されたプログラムカウンタの具体的な値を示す。フレーム描画スレッド0が、例として使用される。期間において収集されるフレーム描画スレッド0の命令あたりの平均サイクル数の具体的な値は、0.7、0.72、0.6、0.8などであり、期間において収集されるフレーム描画スレッド0の分岐命令の数は、98k、87k、102kなどであり、期間において収集されるフレーム描画スレッド0のキャッシュミス率は、0.008、0.002、0.01などであり、期間において収集されるフレーム描画スレッド0のプログラムカウンタは、0xe8dab47a、0xe8dac79bなどである。表1は、フレーム描画スレッドの負荷特性の具体的な表現形式のみを示すことを理解されたい(表1の様々なパラメータの値も具体的な例である)。実際、フレーム描画スレッドの負荷特性は、表1のパラメータのうちの少なくとも1つを含む場合があり、またはフレーム描画スレッドの性能を反映し得る別のパラメータを含む場合がある。
【0139】
【0140】
102.フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定する。
【0141】
103.ターゲットリソーススケジューリング方式でフレーム描画スレッドについてのリソースをスケジューリングする。
【0142】
計算集約型のフレーム描画スレッドの場合、ターゲットリソーススケジューリング方式が決定されているときにより多くのコンピューティングリソースをスケジューリングすると見なすことができる。メモリ集約型のフレーム描画スレッドの場合、ターゲットリソーススケジューリング方式が決定されているときにより多くのストレージリソースをスケジューリングすると見なすことができる。低レイテンシ要件のフレーム描画スレッドの場合、フレーム描画スレッドの実行を加速するために、ターゲットリソーススケジューリング方式が決定されているときにより多くのリソースがスケジューリングされ得る。高レイテンシ要件のフレーム描画スレッドの場合、ターゲットリソーススケジューリング方式が決定されているときに適切なリソースがスケジューリングされ得る(フレーム描画スレッドが高レイテンシサービスに属しているため、スレッドを実行するために過剰なリソースをスケジューリングする必要はない)。
【0143】
本出願では、フレーム描画スレッドが画像フレームを描画するためのスレッドであり、フレーム描画スレッドの実行速度がユーザエクスペリエンスに直接関係するため、フレーム描画スレッドの負荷特性を使用することによって決定されたターゲットリソーススケジューリング方式でフレーム描画スレッドについてのスケジューリングを実施すると、より細かい粒度のリソーススケジューリングを実装することができるため、リソーススケジューリングがより具体的になり、リソーススケジューリング効果がより良好になる。
【0144】
任意選択で、フレーム描画スレッドの負荷特性がフレーム描画スレッドの性能指標データに基づいて取得された後、履歴記録情報が負荷特性を含むかどうかが最初に決定されてもよい。履歴記録情報が負荷特性を含まない場合、フレーム描画スレッドの負荷値は取得され続け、フレーム描画スレッドの負荷特性および負荷値が記録される。履歴記録情報が負荷特性を含む場合、それはフレーム描画スレッドの負荷値が記録され得ることを示し、この場合、フレーム描画スレッドの負荷特性のみが記録される必要がある(フレーム描画スレッドの負荷特性が記録され、ターゲットリソーススケジューリング方式をその後決定することができる)。
【0145】
図3は、フレーム描画スレッドの性能指標データに基づいてフレーム描画スレッドの負荷特性を取得する概略フローチャートである。
図3に示すプロセスは、ステップ201~ステップ207を含む。以下は、ステップ201~ステップ207を詳細に説明する。
【0146】
201.開始。
【0147】
ステップ201は、フレーム描画スレッドの性能指標データを収集することを開始することを示し、ステップ201の開始時間は、フレーム描画スレッドの実行が開始される時間であってもよい。
【0148】
202.フレーム描画スレッドの性能指標データを収集する。
【0149】
性能指標データは、期間(具体的には、前述の第1の時間間隔であり得る)におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、キャッシュミス率、およびプログラムカウンタのうちの少なくとも1つであってもよい。
【0150】
203.画像フレームのフレーム特性境界に達しているかどうかを決定する。
【0151】
フレーム特性境界は、期間であり得る。フレーム描画スレッドの性能指標データは、期間において収集される。期間が経過した後、フレーム描画スレッドの性能指標データの収集が停止される。具体的には、フレーム特性境界は、前述の説明における第1の時間間隔であり得る。
【0152】
204.収集された性能指標データに基づいてフレーム描画スレッドの負荷特性を決定する。
【0153】
ステップ204でフレーム描画スレッドの負荷特性を決定する具体的な方式およびプロセスについては、前述の説明におけるステップ101~ステップ103の関連する段落のフレーム描画スレッドの負荷特性を決定する具体的な方式およびプロセスを参照することができることを理解されたい。
【0154】
205.フレーム描画スレッドの負荷特性が記録された負荷特性であるかどうかを決定する。
【0155】
記録された負荷特性は、画像フレームに先行するフレームであり、端末デバイスによって記録される負荷特性であり得、記録された負荷特性は、異なる負荷特性のみを含み得ることを理解されたい。
【0156】
206.フレーム描画スレッドの負荷特性を記録する。
【0157】
フレーム描画スレッドの負荷特性は、ステップ206で主に記録され、ターゲットリソーススケジューリング方式をその後決定する。
【0158】
207.フレーム描画スレッドの負荷特性および負荷値を記録する。
【0159】
ステップ207において、フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷特性に基づいて決定されてもよく(詳細については、本明細書のフレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定する関連内容を参照されたい)、フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷値として使用され、次にフレーム描画スレッドの負荷特性および負荷値が記録されることで、その後負荷値が負荷特性と負荷値との間の記録された対応関係に基づいて直接決定される。
【0160】
本出願では、ターゲットリソーススケジューリング方式がフレーム描画スレッドの負荷特性に基づいて決定されているとき、リソーススケジューリング方式は、フレーム描画スレッドの負荷の具体的な特性に基づいて決定され得る。例えば、フレーム描画スレッドの実行速度を増加させてユーザエクスペリエンスを向上させるために、より多くのリソースがフレーム描画スレッドにスケジューリングされてもよい。
【0161】
ステップ102において、ターゲットリソーススケジューリング方式は、複数の具体的な方式でフレーム描画スレッドの負荷特性に基づいて決定される。具体的には、フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷特性に基づいて最初に決定され得、次にターゲットリソーススケジューリング方式は、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および事前設定されたターゲットフレームレートに基づいて計算により決定され、またはターゲットリソーススケジューリング方式は、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および事前設定された対応関係(ここでの対応関係は、負荷特性、負荷値、およびリソーススケジューリング方式の間の対応関係を含む)に基づいて決定され得、またはターゲットリソーススケジューリング方式は、フレーム描画スレッドの負荷特性および事前設定された対応関係(ここでの対応関係は、負荷特性とリソーススケジューリング方式との間の対応関係を含む)に基づいて直接決定され得る。
【0162】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するステップは、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定するステップと、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および事前設定されたターゲットフレームレートに基づいてターゲットリソーススケジューリング方式を決定するステップとを含む。
【0163】
さらに、ターゲットリソーススケジューリング方式がフレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および事前設定されたターゲットフレームレートに基づいて決定されているとき、複数の利用可能なリソーススケジューリング方式がフレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および事前設定されたターゲットフレームレートに基づいて最初に決定され得、次に複数の利用可能なリソーススケジューリング方式の中で最も低い消費電力に対応するリソーススケジューリング方式は、ターゲットリソーススケジューリング方式として決定される。
【0164】
本出願では、複数の利用可能なリソーススケジューリング方式の中で最も低い消費電力に対応するリソーススケジューリング方式は、ターゲットリソーススケジューリング方式として決定され、それにより画像フレームのフレーム描画スレッドのリソーススケジューリング要件が満たされながら消費電力を可能な限り削減することができるため、性能と消費電力との間のバランスを実現する。
【0165】
図4は、本出願の一実施形態による、リソーススケジューリング方法の概略フローチャートである。
図4に示す方法は、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するプロセスを主に示すことを理解されたい。
図4に示す方法は、ステップ301~ステップ304を含む。以下は、ステップ301~ステップ304を詳細に説明する。
【0166】
301.フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定する。
【0167】
302.フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドのリソーススケジューリング方式のターゲットタイプを決定する。
【0168】
ステップ301とステップ302との間には順番がないことを理解されたい。ステップ301およびステップ302は、同時にまたは順番に実施されてもよい(ステップ301はステップ302の前に実行されるか、またはステップ302はステップ301の前に実行される)。
【0169】
異なるタイプの負荷の場合、必要なリソーススケジューリング方式も異なる。ステップ302において、フレーム描画スレッドの負荷特性に一致するリソーススケジューリング方式のタイプが、フレーム描画スレッドの負荷特性に基づいて決定される。
【0170】
例えば、フレーム描画スレッドの負荷が計算集約型であるとき、フレーム描画スレッドに一致するリソーススケジューリング方式のタイプは、コンピューティングリソースを主にスケジューリングすることであり、またはフレーム描画スレッドの負荷がメモリ集約型であるとき、フレーム描画スレッドに一致するリソーススケジューリング方式のタイプは、ストレージリソースを主にスケジューリングすることである。
【0171】
303.フレーム描画スレッドの予測負荷値およびターゲットフレームレートに基づいてターゲットタイプのリソーススケジューリング方式から少なくとも1つのリソーススケジューリング方式を決定する。
【0172】
例えば、ターゲットタイプがコンピューティングリソースをスケジューリングしているとき、少なくとも1つのリソーススケジューリング方式がステップ303においてコンピューティングリソースをスケジューリングするタイプから決定される必要がある。
【0173】
304.少なくとも1つのリソーススケジューリング方式の中で最も低い消費電力に対応するリソーススケジューリング方式をターゲットリソーススケジューリング方式として決定する。
【0174】
ステップ304において、少なくとも1つのリソーススケジューリング方式の中で最も低い消費電力に対応するリソーススケジューリング方式は、エネルギー効率表またはエネルギー効率曲線に基づいて決定され得、次に最も低い消費電力のリソーススケジューリング方式がターゲットリソーススケジューリング方式として決定される。
【0175】
エネルギー効率表の具体的な表現形式は、表2に示され得る。表2において、性能値は、プロセッサの処理能力を示すために使用され得、より大きな性能値は、プロセッサのより良好な性能およびより高い処理速度を示す。
【0176】
CPU内の最大コアが100%の負荷で最も高い周波数においてプログラムを実行するときに100 Mのプログラム命令が一定の期間に実行されると仮定すると、最も高い周波数での最大コアの性能値は、1024として定義することができる。しかし、CPU内の最小コアを使用して同じ時間内に100%の負荷で最も低い周波数において同じプログラムを実行し、最小コアが期間において10 Mの命令しか実行しない場合、CPU内の最小コアが最も低い周波数で実行されるときの対応する性能値は、102.4であると見なすことができる。つまり、CPU内の最小コアが最も低い周波数で実行されるとき、CPU内の最小コアの性能値は、最大コアが最も高い周波数で実行されるときのCPU内の最大コアの性能値の1/10である。
【0177】
表2に示すように、第1のリソーススケジューリング方式の性能は、107であり、周波数は、533であり、リソーススケジューリング方式に対応する消費電力は、32である。3つのリソーススケジューリング方式:リソーススケジューリング方式1、リソーススケジューリング方式2、およびリソーススケジューリング方式3は、ステップ303で決定され、3つのリソーススケジューリング方式の具体的な情報は、以下の通りであると仮定される:
【0178】
リソーススケジューリング方式1は、小さなコア、306の性能、1042の周波数、および119の消費電力に対応する。
【0179】
リソーススケジューリング方式2は、小さなコア、388の性能、1804の周波数、および242の消費電力に対応する。
【0180】
リソーススケジューリング方式3は、大きなコア、373の性能、903の周波数、および191の消費電力に対応する。
【0181】
3つのリソーススケジューリング方式のうち、リソーススケジューリング方式1に対応する消費電力が最も低く、リソーススケジューリング方式1は、ターゲットリソーススケジューリング方式として決定することができる。
【0182】
【0183】
ターゲットリソーススケジューリング方式が決定されているとき、ターゲットリソーススケジューリング方式を決定するプロセスを簡略化し、ターゲットリソーススケジューリング方式を決定する複雑さを軽減するために、ターゲットリソーススケジューリング方式は、画像フレームのフレーム描画スレッドの負荷情報(負荷情報は負荷特性および負荷値を含み得る)および負荷情報とリソーススケジューリング方式との間のマッピング関係に関する情報に基づいて直接決定され得ることを理解されたい。
【0184】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するステップは、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定するステップと、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および第1のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定するステップであって、第1のマッピング関係情報は、複数の負荷情報および複数の負荷情報の各々に対応するリソーススケジューリング方式を含み、複数の負荷情報の各々は、1つの負荷特性および1つの負荷値を含む、ステップとを含む。
【0185】
具体的には、フレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値、および第1のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定するステップは、第1のマッピング関係情報におけるフレーム描画スレッドの負荷特性およびフレーム描画スレッドの予測負荷値に対応するリソーススケジューリング方式をターゲットリソーススケジューリング方式として決定するステップを含む。
【0186】
ターゲットリソーススケジューリング方式を決定するプロセスでは、フレーム描画スレッドの負荷特性に一致する第1の負荷特性およびフレーム描画スレッドの予測負荷値に一致する第1の負荷値は、第1のマッピング関係情報から決定することができ、次に第1の負荷特性および第1の負荷値に対応するリソーススケジューリング方式は、第1のマッピング関係情報に基づいてターゲットリソーススケジューリング方式として決定される。
【0187】
第1の負荷特性が第1のマッピング関係情報から決定されているとき、第1のマッピング関係に含まれる複数の負荷特性にあり、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である負荷特性は、第1の負荷特性として決定され得る。同様に、第1の負荷値が第1のマッピング関係情報から決定されているとき、第1のマッピング関係に含まれる複数の負荷値にあり、フレーム描画スレッドの予測負荷値との類似度が類似度閾値以上である負荷値は、第1の負荷値として決定され得る。
【0188】
任意選択で、第1のマッピング関係は、端末デバイスによって記録された履歴情報に基づいて決定されてもよく、履歴情報は、画像フレームに先行する画像フレームの負荷特性、負荷値、および対応するリソーススケジューリング方式を含む。
【0189】
第1のマッピング関係情報は、表の形式であってもよく、または負荷特性、負荷値、および対応するリソーススケジューリング方式を記録するための任意の他の形式の情報であってもよい。
【0190】
例えば、第1のマッピング関係情報の具体的な表現形式は、表3に示され得る。
【0191】
【0192】
表3において、負荷特性に含まれる具体的なパラメータは、表1の命令あたりの平均サイクル数、分岐命令の数、キャッシュミス率、およびプログラムカウンタのうちの少なくとも1つであり得、リソーススケジューリング方式に含まれる具体的なパラメータは、プロセッサタイプ、性能、および周波数などのパラメータのいずれか1つであり得、負荷値は、スレッド実行周波数および時間に基づいて決定され得る。負荷値は、フレーム描画スレッドによって実行される必要があるタスクの数を示し得る。負荷値が大きいほど、フレーム描画スレッドによって実行される必要があるプログラム命令の数がより多いことを示す。
【0193】
表3に示すように、フレーム描画スレッドの負荷特性が表3の負荷特性1に一致し、フレーム描画スレッドの負荷値が表3の負荷値1に一致するとき、負荷特性1および負荷値1に対応するリソーススケジューリング方式1は、表3に従ってターゲットリソーススケジューリング方式として決定することができる。
【0194】
本出願では、フレーム描画スレッドの負荷特性および予測負荷値ならびに第1のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定することにより、直接計算によるターゲットリソーススケジューリング方式の決定と比較して、ターゲットリソーススケジューリング方式を決定する複雑さを軽減することができる。
【0195】
本出願では、フレーム描画スレッドの予測負荷値が決定されているとき、フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷特性および負荷特性と負荷値との間のマッピング関係に基づいて決定することができる。
【0196】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定するステップは、フレーム描画スレッドの負荷特性に対応する負荷値をフレーム描画スレッドの負荷特性および第2のマッピング関係情報に基づいてフレーム描画スレッドの予測負荷値として決定するステップであって、第2のマッピング関係情報は、複数の負荷特性および複数の負荷特性の各々に対応する負荷値を含む、ステップを含む。
【0197】
第2のマッピング関係情報は、端末デバイスによって記録された履歴情報に基づいて決定されてもよく、履歴情報は、画像フレームに先行する画像フレームの負荷特性および対応する負荷値を含む。
【0198】
第2のマッピング関係情報は、表の形式であってもよく、または負荷特性および対応する負荷値を記録するための任意の他の形式の情報であってもよい。
【0199】
フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷特性および第2のマッピング関係を使用することによって比較的便利に決定することができ、これは、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの負荷値を分析または計算することによってフレーム描画スレッドの予測負荷値を直接決定するよりも簡単である。
【0200】
第2のマッピング関係の具体的な形式は、表4に示され得、IDは、フレーム番号を示し、各フレームは、1つのフレーム特性に対応し、各フレーム特性は、1つの負荷値に対応する。画像フレームに先行するフレームのフレーム特性および負荷は、表4に記録され得る。したがって、表4は、端末デバイスによって記録された少なくともいくつかの履歴情報(フレームならびにフレームに対応するフレーム特性および負荷を含む)から生成され得る。
【0201】
【0202】
表4のフレーム特性は、単に例として分岐命令の数およびキャッシュミス率を使用することによって説明されていることを理解されたい。実際、フレーム特性は、フレーム特徴を反映し得る別のパラメータを使用することによって示される場合がある。
【0203】
フレーム描画スレッドの予測負荷値は、以下の2つの場合におけるフレーム描画スレッドの負荷特性および第2のマッピング関係情報に基づいて具体的に決定することができる。
【0204】
(1)第2のマッピング関係情報における複数の負荷特性が、フレーム描画スレッドの負荷特性との類似度が事前設定された類似度に達する基準負荷特性を含むとき、基準負荷特性に対応する負荷値は、フレーム描画スレッドの予測負荷値として決定される。
【0205】
(2)複数の負荷特性が基準負荷特性を含まないとき、画像フレームに先行するフレームの負荷値は、フレーム描画スレッドの予測負荷値として決定される。
【0206】
フレーム描画スレッドの負荷特性との類似度が事前設定された類似度に達するということは、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上であることを意味し得る。
【0207】
基準負荷特性は、1つの負荷特性であってもよく(第2のマッピング関係情報は、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である1つの負荷特性のみを含む)、または複数の負荷特性であってもよい(第2のマッピング関係情報は、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である複数の負荷特性を含む)ことを理解されたい。基準負荷特性が1つの負荷特性であるとき、基準負荷特性に対応する負荷値は、フレーム描画スレッドの予測負荷値として直接決定されてもよい。基準負荷特性が複数の負荷特性であるとき、負荷特性のいずれか1つに対応する負荷値は、フレーム描画スレッドの予測負荷値として決定されてもよいし、またはフレーム描画スレッドの負荷特性との類似度が最も高い負荷特性に対応する負荷値は、ターゲットリソーススケジューリング方式として決定されてもよい。
【0208】
画像フレームに先行するフレームは、画像フレームの前に表示される画像フレームであってもよく、さらに、画像フレームに先行するフレームは、画像フレームの前に表示され、画像フレームに隣接する画像フレームであってもよいことを理解されたい。
【0209】
隣接するフレームのフレーム描画スレッドの負荷値は、通常、大きく異ならない。したがって、複数の負荷特性が、現在のフレーム描画スレッドの負荷特性との類似度が要件を満たす基準負荷特性を含まないとき、画像フレームに先行するフレームの負荷値は、フレーム描画スレッドの予測負荷値として直接決定されてもよい。ターゲットリソーススケジューリング方式を決定する複雑さまたは計算量をさらに軽減するために、ターゲットスケジューリング方式は、画像フレームのフレーム描画スレッドの負荷特性および負荷特性とリソーススケジューリング方式との間のマッピング関係に基づいて直接決定することができる。
【0210】
図5は、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの予測負荷値を決定する概略フローチャートである。
図5に示すプロセスは、ステップ401~ステップ406を含む。以下は、ステップを詳細に説明する。
【0211】
401.フレーム描画スレッドの負荷特性を記録する。
【0212】
402.フレーム描画スレッドを使用することによって描画された画像フレームに先行するフレームの負荷特性を取得する。
【0213】
具体的には、ステップ402において、画像フレームに先行するフレームの負荷特性は、記録された負荷特性から取得され得る。
【0214】
403.画像フレームに先行するフレームの負荷特性に対するフレーム描画スレッドの負荷特性の変化が事前設定された制限を超えるかどうかを決定する。
【0215】
ステップ403において、画像フレームに先行するフレームの負荷特性に対するフレーム描画スレッドの負荷特性の変化が事前設定された制限を超えるとき、それは画像フレームに先行するフレームの負荷特性とフレーム描画スレッドの負荷特性との間の差が比較的大きいことを示し、この場合、以前に記録された履歴データは、フレーム描画スレッドの負荷特性に一致する基準負荷特性に対して検索される必要があり、すなわち、ステップ404は実施される必要があることを理解されたい。画像フレームに先行するフレームの負荷特性に対するフレーム描画スレッドの負荷特性の変化が事前設定された制限を超えないとき、それは画像フレームに先行するフレームの負荷特性とフレーム描画スレッドの負荷特性との間の類似度が比較的高いことを示し、この場合、画像フレームに先行するフレームの負荷特性は、フレーム描画スレッドの負荷特性に一致する基準負荷特性として直接決定されてもよく、すなわち、ステップ406が実施される。
【0216】
404.記録された履歴データがフレーム描画スレッドの負荷特性に一致する基準負荷特徴を含むかどうかを決定する。
【0217】
ステップ404において、基準負荷特性は、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である負荷特性とすることができる。
【0218】
405.画像フレームに先行するフレームの負荷特性に対応する負荷値をフレーム描画スレッドの予測負荷値として決定する。
【0219】
406.基準負荷特性に対応する負荷値をフレーム描画スレッドの予測負荷値として決定する。
【0220】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するステップは、フレーム描画スレッドの負荷特性に対応するリソーススケジューリング方式をフレーム描画スレッドの負荷特性および第3のマッピング関係情報に基づいてターゲットリソーススケジューリング方式として決定するステップであって、第3のマッピング関係情報は、複数の負荷特性および複数の負荷特性の各々に対応するリソーススケジューリング方式を含む、ステップを含む。
【0221】
第3のマッピング関係情報は、端末デバイスによって記録された履歴情報に基づいて決定されてもよい(履歴情報は、画像フレームの前に表示されるフレームの負荷特性および対応するリソーススケジューリング方式を含む)。
【0222】
第3のマッピング関係情報は、表の形式であってもよく、または負荷特性および対応するリソーススケジューリング方式を記録するための任意の他の形式の情報であってもよい。
【0223】
本出願では、ターゲットリソーススケジューリング方式は、フレーム描画スレッドの負荷特性および負荷特性とリソーススケジューリング方式との間のマッピング関係に関する情報を使用することによって直接決定され、それにより画像フレームのフレーム描画スレッドに基づいて画像フレームの予測負荷値を決定するプロセスは省略することができ、ターゲットリソーススケジューリング方式を決定する複雑さがさらに軽減され得る。
【0224】
ターゲットリソーススケジューリング方式がフレーム描画スレッドの負荷特性および第3のマッピング関係情報に基づいて決定されているとき、フレーム描画スレッドの負荷特性と比較的同様である負荷特性は、第3のマッピング関係情報から選択することができ、次に同様の負荷特性に対応するリソーススケジューリング方式は、ターゲットリソーススケジューリング方式として決定される。
【0225】
具体的には、フレーム描画スレッドの負荷特性および第3のマッピング関係情報に基づいてターゲットリソーススケジューリング方式を決定するステップは、第3のマッピング関係情報における複数の負荷特性が基準負荷特性を含むとき、基準負荷特性に対応するリソーススケジューリング方式をターゲットリソーススケジューリング方式として決定するステップであって、基準負荷特性とフレーム描画スレッドの負荷特性との間の類似度は、類似度閾値以上である、ステップ、または第3のマッピング関係情報における複数の負荷特性が基準負荷特性を含まないとき、画像フレームに先行するフレームのフレーム描画スレッドのリソーススケジューリング方式をターゲットリソーススケジューリング方式として決定するステップを含む。
【0226】
基準負荷特性は、1つの負荷特性であってもよく(第3のマッピング関係情報は、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である1つの負荷特性のみを含む)、または複数の負荷特性であってもよい(第3のマッピング関係情報は、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である複数の負荷特性を含む)ことを理解されたい。基準負荷特性が1つの負荷特性であるとき、基準負荷特性に対応するリソーススケジューリング方式は、ターゲットリソーススケジューリング方式として直接決定されてもよい。基準負荷特性が複数の負荷特性であるとき、負荷特性のいずれか1つに対応するリソーススケジューリング方式は、ターゲットリソーススケジューリング方式として決定されてもよく、または負荷特性にあり、フレーム描画スレッドの負荷特性との類似度が最も高い負荷特性に対応するリソーススケジューリング方式は、ターゲットリソーススケジューリング方式として決定されてもよい。
【0227】
例えば、第3のマッピング関係は、表5に示され得る。表5は、異なる負荷特性と、これらの異なる負荷特性で記録されたリソーススケジューリング方式を記録している。フレーム描画スレッドの負荷特性と表5の負荷特性1との間の類似度が類似度閾値以上であるとき、負荷特性1に対応するリソーススケジューリング方式1は、ターゲットリソーススケジューリング方式として決定することができる。
【0228】
【0229】
図6は、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドについてのリソースをスケジューリングする概略フローチャートである。
図6に示すプロセスは、ステップ501~ステップ508を含む。以下は、ステップ501~ステップ508を詳細に説明する。
【0230】
501.フレーム描画スレッドの負荷特性を決定する。
【0231】
502.フレーム描画スレッドの負荷特性に基づいて、フレーム描画スレッドの負荷がアクセス集約型の負荷であるか計算集約型の負荷であるかを決定する。
【0232】
ステップ503は、フレーム描画スレッドの負荷が計算集約型の負荷である場合に実施され、ステップ504は、フレーム描画スレッドの負荷がアクセス集約型の負荷である場合に実施される。
【0233】
503.フレーム描画スレッドの実行速度が遅いとき、CPU内の小さなコアをスケジューリングすることによってフレーム描画スレッドを実行する、またはフレーム描画スレッドの実行速度が速いとき、CPU内の大きなコアを使用することによってフレーム描画スレッドを実行する。
【0234】
504.フレーム描画スレッドの実行速度が速いとき、CPU内の大きなコアを使用することによってフレーム描画スレッドを実行し、DDR周波数を増加させる、またはフレーム描画スレッドの実行速度が遅いとき、CPU内の小さなコアを使用することによってフレーム描画スレッドを実行し、DDR周波数を増加させる。
【0235】
505.フレーム描画スレッドが高レイテンシタスクに属するか低レイテンシタスクに属するかを決定する。
【0236】
506.パッキング(packing)ポリシーを実行し、コア間バランシング(balancing)を実施する。
【0237】
パッキングポリシーは、現在のタスクが実行のために複数の異なるCPUに割り当てられることであり得、コア間バランシングを実施することは、現在のタスクが実行のためにCPU内の複数のコアに割り当てられることであり得る。
【0238】
507.拡散(spreading)ポリシーを実行し、コア間バランシングの実施をスキップする。
【0239】
拡散ポリシーは、現在のタスクが実行のために1つのCPUに割り当てられることであり得、コア間バランシングの実施をスキップすることは、現在のタスクが実行のためにCPU内のコアに割り当てられることであり得る。
【0240】
508.エネルギー効率表に基づいてCPU内の適切なコアを選択し、フレーム描画スレッドを実行する。
【0241】
図6は、フレーム描画スレッドをスケジューリングするために、フレーム描画スレッドの負荷特性に基づいて対応するリソーススケジューリング方式を選択するプロセスを主に示すことを理解されたい。前述の説明において、ステップ501~ステップ507は、フレーム描画スレッドに基づいてターゲットリソーススケジューリング方式を決定することに相当し、ステップ508は、ターゲットリソーススケジューリング方式でフレーム描画スレッドについてのリソースをスケジューリングすることに相当する。
【0242】
フレーム描画スレッドに一致するターゲットリソーススケジューリング方式を使用してフレーム描画スレッドについてのリソースをスケジューリングすることに加えて、フレーム描画スレッドの実行に影響を及ぼす可能性のある関連スレッドを見つけることができ、リソースが関連スレッドにスケジューリングされて関連スレッドの実行速度を増加させ、それによりフレーム描画スレッドの実行速度が増加される。
【0243】
任意選択で、一実施形態では、
図1に示す方法は、フレーム描画スレッドの関連スレッドを決定するステップであって、関連スレッドは、フレーム描画スレッドをスリープさせることが可能なスレッドである、ステップと、関連スレッドの実行を加速するように関連スレッドについてのリソースをスケジューリングするステップとをさらに含む。
【0244】
フレーム描画スレッドをスリープさせることは、具体的には、フレーム描画スレッドを断続的にスリープさせてもよく、ここでのスリープは、動作を停止することを指す場合もある。関連スレッドは、フレーム描画スレッドをスリープさせ、さらにフレーム描画スレッドの実行速度を低下させることが可能なスレッドであることを理解されたい。フレーム描画スレッドの実行を加速することによって、フレーム描画スレッドの実行速度は、間接的に増加させることができる。
【0245】
本出願では、リソースが関連スレッドにスケジューリングされるので、フレーム描画スレッドの実行速度を間接的に増加させることができ、ユーザエクスペリエンスが向上される。
【0246】
具体的には、リソースが関連スレッドにスケジューリングされることにより、関連スレッドを可能な限り早く実行することができ、関連スレッドのブロッキング時間が短縮され、フレーム描画スレッドの実行速度が増加される。
【0247】
任意選択で、一実施形態では、フレーム描画スレッドに関係するスレッドは、候補スレッドとフレーム描画スレッドとの間の論理関係および/またはリソース相関関係に基づいて候補スレッドから決定される。
【0248】
図7は、関連スレッドを決定し、関連スレッドについてのリソースをスケジューリングする概略フローチャートである。
図7に示すプロセスは、ステップ601~ステップ607を含む。以下は、ステップを詳細に説明する。
【0249】
601.負荷ステータスに基づいて候補スレッドを認識する。
【0250】
具体的には、ステップ601において、比較的大きい負荷値を有するスレッドが、負荷値に基づく候補スレッドとして、端末デバイス上で現在実行されているスレッド内のフレーム描画スレッド以外のスレッドから選択され得る。例えば、ステップ601において、最大負荷値を有する10個のスレッドが、候補スレッドとして、他のスレッドから選択されてもよい。
【0251】
602.候補スレッドの実行時間およびスリープ時間(またはスリープ時間と呼ばれる)に基づいて候補スレッドとフレーム描画スレッドとの間の論理相関係数を決定する。
【0252】
具体的には、候補スレッドとフレーム描画スレッドとの間の論理相関が、候補スレッドおよびフレーム描画スレッドの実行時間とスリープ時間を比較することによって推定され得、論理相関係数が取得される。論理相関係数が大きいほど、候補スレッドとフレーム描画スレッドとの間の相関がより高いことを示すと見なすことができる。
【0253】
関連スレッドを決定することは、式に基づいて以下で詳細に説明される。
【0254】
例えば、候補スレッドとフレーム描画スレッドとの間の論理相関係数は、式(1)に基づいて決定されてもよい。
【数1】
【0255】
式(1)では、Xは、フレーム描画スレッドの実行時間であり、Yは、候補スレッドの実行時間であり、Cov(X,Y)は、XとYの共分散を示し、Var[X]は、Xの分散を示し、Var[Y]は、Yの分散を示し、r(X,Y)は、候補スレッドとフレーム描画スレッドとの間の論理相関係数である。
【0256】
603.グローバルリソース要件に基づいて候補スレッドとフレーム描画スレッドとの間のリソース相関係数を決定する。
【0257】
具体的には、フレーム描画スレッドがスリープするとき、グローバルリソースの不足によりフレーム描画スレッドがスリープするかどうかが決定され得る。グローバルリソースの不足によりフレーム描画スレッドがスリープする場合、候補スレッドにあり、グローバルリソースが現在属するスレッド(グローバルリソースが割り当てられているスレッド)がさらに決定される。グローバルリソースが第1のスレッドに属すると仮定すると、第1のスレッドとフレーム描画スレッドとの間のリソース相関係数は、1であり、別のスレッドとフレーム描画スレッドとの間のリソース相関係数は、0である。
【0258】
1および0が、本明細書ではリソース相関係数の例として使用されることを理解されたい。実際、リソース相関係数は、別のスレッドとフレーム描画スレッドとの間の依存度に基づいて0~1の間の任意の値とすることができる。
【0259】
604.候補スレッドとフレーム描画スレッドとの間の論理相関係数が事前設定された閾値を超えるかどうかを決定する。
【0260】
候補スレッドとフレーム描画スレッドとの間の論理相関係数が事前設定された閾値を超えるとき(例えば、事前設定された閾値が0.8または0.9であり得る)、候補スレッドとフレーム描画スレッドとの間に比較的高い相関があると見なすことができ、候補スレッドは、フレーム描画スレッドの関連スレッドと見なすことができる。次に、ステップ606およびステップ607が実施される必要がある。
【0261】
605.候補スレッドとフレーム描画スレッドとの間のリソース相関係数が事前設定された閾値を超えるかどうかを決定する。
【0262】
候補スレッドとフレーム描画スレッドとの間のリソース相関係数が事前設定された閾値を超えるとき、候補スレッドは、フレーム描画スレッドの関連スレッドと見なすことができる。次に、ステップ606およびステップ607が実施される必要がある。
【0263】
ステップ605およびステップ604における事前設定された閾値は、異なる閾値であってもよく、経験、シミュレーション実験などに基づいて具体的に設定されてもよい。
【0264】
本出願では、論理相関係数が事前設定された閾値を超え、リソース相関係数が事前設定された閾値を超えるとき、ステップ606およびステップ607を実施することができることを理解されたい。
【0265】
606.候補スレッドをフレーム描画スレッドの関連スレッドグループに追加する。
【0266】
607.関連スレッドグループについてのリソースをスケジューリングし、関連スレッドグループ内のスレッドの実行を加速する。
【0267】
加えて、ステップ603における論理相関係数が事前設定された閾値を超えないとき、候補スレッドに関する情報を記録することができ、それにより関連スレッドがその後決定されているときに候補スレッドが除外されることで、関連スレッドを決定する速度を加速する。
【0268】
同様に、ステップ605におけるリソース相関係数が事前設定された閾値を超えないとき、候補スレッドに関する情報を同様に記録することができ、それにより関連スレッドがその後決定されているときに候補スレッドが除外される。
【0269】
ターゲットリソーススケジューリング方式は、画像フレームのフレーム描画スレッドの負荷特性、予測負荷値などに基づいて推定されるスケジューリング方式である。実際のスケジューリングでは、予測負荷値の不正確な予測のために、リソーススケジューリング速度が比較的遅くなる場合があり、画像フレームの描画を所定の時間内に完了することができない。
【0270】
したがって、端末デバイスが所定の時間内に画像フレームの描画を完了しなかった場合、追加のリソースがフレーム描画スレッドにスケジューリングされ、フレーム描画スレッドの実行速度を増加させることができる。
【0271】
任意選択で、一実施形態では、
図1に示す方法は、フレーム描画スレッドの実行が所定の時間内に完了されないことをさらに含み、方法は、画像フレームの描画が完了されるまでフレーム描画スレッドについての追加のリソースをスケジューリングするステップであって、所定の時間は、リソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされるときにフレーム描画スレッドの実行を完了するために必要な時間である、ステップをさらに含む。
【0272】
フレーム描画スレッドの実行が完了されると、画像フレームの描画が完了されることを理解されたい。画像フレームの描画が所定の時間内に完了されない場合、それはより少ないリソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされ得ることを示す。この場合、追加のリソースがフレーム描画スレッドの実行を加速するようにフレーム描画スレッドにスケジューリングされる必要があり、それによってユーザエクスペリエンスを向上させる。
【0273】
任意選択で、追加のリソースのサイズと第1の差との間に正の相関関係があり、第1の差は、追加のリソースをスケジューリングする時点と事前設定された時間の終了時点との間の差である。
【0274】
第1の差が大きいほど、所定の時間がより早く経過する。より多くのリソースがフレーム描画スレッドにスケジューリングされるため、フレーム描画スレッドの実行は、可能な限り早く完了される。
【0275】
フレーム描画スレッドの実行が完了されると、フレーム描画スレッドについての追加のリソースのスケジューリングが停止されることを理解されたい。
【0276】
任意選択で、一実施形態では、
図1に示す方法は、フレーム描画スレッドの負荷特性が典型的な負荷特性であるかどうかを決定するステップと、フレーム描画スレッドの負荷特性が典型的な負荷特性であるとき、フレーム描画スレッドの負荷特性およびフレーム描画スレッドの予測負荷値を格納するステップとをさらに含む。
【0277】
フレーム描画スレッドの負荷特性が典型的な負荷特性であるとき、フレーム描画スレッドの予測負荷値は、典型的な負荷特性に対応する負荷値であることを理解されたい。
【0278】
本出願では、典型的な負荷特性、および典型的な負荷特性に対応する負荷値が格納されるため、その後、予測負荷値が負荷特性に基づいて直接決定され、予測負荷値を決定することの複雑さを軽減することができる。
【0279】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性が典型的な負荷特性であるかどうかを決定するステップは、記録された負荷特性が、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である負荷特性を含むかどうかを決定するステップと、記録された負荷特性が、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である負荷特性を含まない場合、フレーム描画スレッドの負荷特性が典型的な負荷特性であると決定するステップとを含む。
【0280】
記録された負荷特性が、フレーム描画スレッドの負荷特性との類似度が類似度閾値以上である負荷特性を含むとき、それは記録された負荷特性がフレーム描画スレッドの負荷特性と同様の負荷特性を含むことを示し、フレーム描画スレッドの負荷特性はさらに記録される必要がないことを理解されたい。
【0281】
図8は、本出願の一実施形態による、リソーススケジューリング方法の概略フローチャートである。
図8に示す方法は、端末デバイスによって実施され得る。ここでの端末デバイスは、モバイル端末(例えば、スマートフォン)、コンピュータ、携帯情報端末、ウェアラブルデバイス、車載デバイス、モノのインターネットデバイスなどであってもよい。
【0282】
図8に示す方法は、ステップ701~ステップ704を含む。以下は、ステップを詳細に説明する。
【0283】
701.フレーム描画スレッドの負荷特性を決定する、フレーム描画スレッドは、画像フレームを描画するために使用される。
【0284】
画像フレームのフレーム描画スレッドは、ステップ701の前に決定されてもよい。画像フレームは、端末デバイスによって現在表示されているフレームであってもよく、画像フレームは、具体的には、画像フレームなどであってもよい。フレーム描画スレッドは、画像フレームを描画するためのスレッドである。フレーム描画スレッドの実行速度は、画像フレームの表示速度に直接影響を及ぼし、ユーザエクスペリエンスにさらに影響を及ぼす。具体的には、フレーム描画スレッドの実行速度が比較的遅いと、画像フレームを表示するのに比較的長い時間を要し、ユーザは画像にフレームフリーズが発生しているように感じる場合があり、またはフレーム描画スレッドの実行速度が比較的速いと、画像フレームを表示するのにそれほど長い時間を必要とせず、ユーザは画像が比較的滑らかに表示されていると感じる。
【0285】
702.フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定する。
【0286】
フレーム描画スレッドに対応するアプリケーションシナリオは、フレーム描画スレッドが位置されるアプリケーションプログラムのタイプであってもよい。例えば、フレーム描画スレッドに対応するアプリケーションシナリオは、動画アプリケーションプログラム、ゲームアプリケーションプログラム、またはユーザとの対話が必要な別のアプリケーションプログラム(例えば、WeChat、Taobao、またはWeibo)であってもよい。
【0287】
加えて、フレーム描画スレッドに対応するアプリケーションシナリオは、フレーム描画スレッドが位置されるアプリケーションプログラムのフェーズであってもよい。例えば、フレーム描画スレッドに対応するアプリケーションシナリオは、フレーム描画スレッドが位置されるアプリケーションプログラムの開始フェーズ、終了フェーズなどであってもよい。
【0288】
あるいは、フレーム描画スレッドに対応するアプリケーションシナリオは、フレーム描画スレッドが位置されるアプリケーションプログラムが実行されるフェーズであってもよい。例えば、フレーム描画スレッドに対応するアプリケーションシナリオは、WeChatのインターフェース(チャットインターフェースまたは小さな動画が開かれるインターフェース)であってもよい。
【0289】
703.フレーム描画スレッドの負荷特性、フレーム描画スレッドのターゲット予測負荷値、および事前設定されたターゲットフレームレートに基づいてターゲットリソーススケジューリング方式を決定する。
【0290】
704.ターゲットリソーススケジューリング方式でフレーム描画スレッドについてのリソースをスケジューリングする。
【0291】
本出願では、フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてより適切に決定することができ、さらに、ターゲットリソーススケジューリング方式は、より細かい粒度のリソーススケジューリングを実装するために、より適切に決定することができるため、リソーススケジューリングがより具体的になり、リソーススケジューリング効果がより良好になる。
【0292】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップは、フレーム描画スレッドの負荷特性に基づいてフレーム描画スレッドの第1の予測負荷値を決定するステップと、フレーム描画スレッドに対応するアプリケーションシナリオおよび第4のマッピング関係情報に基づいて第2の予測負荷値を決定するステップであって、第4のマッピング関係情報は、複数のアプリケーションシナリオおよび複数のアプリケーションシナリオの各々に対応する負荷値を含む、ステップと、第1の予測負荷値および第2の予測負荷値に基づいてターゲット予測負荷値を決定するステップとを含む。
【0293】
例えば、端末デバイスがアプリケーションを開始すると、アプリケーションがアプリケーション開始シナリオであることを認識することができ、次にアプリケーション開始シナリオに対応する負荷値は、第2の予測負荷値を取得するために、事前に割り当てられたガイドライン(GL)表(事前に割り当てられたGL表は、第4のマッピング関係情報を含むことができる)に基づいて決定される。GL表は、構成ファイルと同様であり、GL表は、異なるシナリオに対応する負荷値と、異なるシナリオに対応するリソーススケジューリング方式(大きなコアまたは小さなコアが選択されているかどうか、周波数の値など)とを含む。異なるアプリケーションシナリオに対応する負荷値またはリソーススケジューリング方式は、GL表に基づいて決定することができる。
【0294】
第1の予測負荷値および第2の予測負荷値が取得された後、ターゲット予測負荷値は、複数の方式で決定され得ることを理解されたい。以下は、いくつかの可能な方式を説明する。
【0295】
方式1:第1の予測負荷値と第2の予測負荷値における最大負荷値は、ターゲット予測負荷値として決定される。
【0296】
方式2:第1の予測負荷値と第2の予測負荷値における最小負荷値は、ターゲット予測負荷値として決定される。
【0297】
方式3:第1の予測負荷値と第2の予測負荷値の平均値は、ターゲット予測負荷値として決定される。
【0298】
加えて、重み付け加算が第1の予測負荷値および第2の予測負荷値に対して実施され得、第1の予測負荷値と第1の重み付け係数の積、および第2の予測負荷値と第2の重み付け係数の積の合計は、ターゲット予測負荷値として決定することができ、第1の重み付け係数および第2の重み付け係数は、事前設定された値であり得る。
【0299】
アプリケーションシナリオが負荷値に対して比較的大きい影響を有するとき、比較的大きい第1の重み付け係数が設定されてもよく、またはアプリケーションシナリオが負荷値に対して比較的小さい影響を有するとき、比較的小さい第1の重み付け係数が設定されてもよい。
【0300】
任意選択で、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップは、フレーム描画スレッドに対応するアプリケーションシナリオが開始シナリオであるとき、フレーム描画スレッドに対応するアプリケーションシナリオおよび第4のマッピング関係情報に基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップであって、第4のマッピング関係情報は、複数のアプリケーションシナリオおよび複数のアプリケーションシナリオの各々に対応する負荷値を含む、ステップを含む。
【0301】
フレーム描画スレッドに対応するシナリオが開始シナリオであるとき、開始シナリオに対応する負荷値が比較的大きいため、フレーム描画スレッドのターゲット予測負荷値は、フレーム描画スレッドのアプリケーションシナリオに基づいて直接決定されてもよい。
【0302】
任意選択で、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定するステップは、フレーム描画スレッドに対応するアプリケーションシナリオが開始シナリオ以外のシナリオであるとき、フレーム描画スレッドの負荷特性に基づいてターゲット予測負荷値を決定するステップを含む。
【0303】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性は、フレーム描画スレッドのリソース要件特徴を示すために使用される。
【0304】
具体的には、フレーム描画スレッドの負荷特性は、フレーム描画スレッドの負荷が計算集約型であるかリソース集約型であるかを示すことができ、それにより対応するターゲットリソーススケジューリング方式がその後決定される。
【0305】
例えば、フレーム描画スレッドの負荷が計算集約型の負荷であるとき、コンピューティングリソースがフレーム描画スレッドに主にスケジューリングされ、またはフレーム描画スレッドの負荷がリソース集約型の負荷であるとき、ストレージリソースがフレーム描画スレッドに主にスケジューリングされる。
【0306】
フレーム描画スレッドの負荷特性は、フレーム描画スレッドの負荷が計算集約型かつリソース集約型であることをさらに示す場合があり、この場合、コンピューティングリソースとストレージリソースの両方は、フレーム描画スレッドにスケジューリングされる必要があることを理解されたい。
【0307】
任意選択で、一実施形態では、フレーム描画スレッドの負荷特性は、フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つを含む。
【0308】
本出願では、フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率などのパラメータの1つまたは複数が収集されると、フレーム描画スレッドの負荷特性は直接取得することができ、それによりフレーム描画スレッドの負荷特性を取得する複雑さが軽減される。
【0309】
フレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率などのパラメータの1つまたは複数を直接使用して、フレーム描画スレッドの負荷特性を示すことができることを理解されたい。フレーム描画スレッドのこれらのパラメータが取得されると、フレーム描画スレッドの負荷特性が取得される。
【0310】
任意選択で、フレーム描画スレッドの負荷特性は、第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率のうちの少なくとも1つに基づいて決定され、第1の時間間隔は、フレーム描画スレッドの実行の開始とフレーム描画スレッドの実行の終了との間の期間である。
【0311】
第1の時間間隔におけるフレーム描画スレッドの命令あたりの平均サイクル数、分岐命令の数、およびキャッシュミス率は、第1の時間間隔におけるフレーム描画スレッドの性能指標データと呼ばれることがある。フレーム描画スレッドの負荷特性が決定されているとき、第1の時間間隔におけるフレーム描画スレッドの性能指標データのいくつかのパラメータがフレーム描画スレッドの負荷特性として直接決定されてもよいし、または処理もしくは操作が第1の時間間隔におけるフレーム描画スレッドの性能指標データに対して実施されてもよく(例えば、除算が性能指標データの2つのパラメータに対して実施されるか、またはハッシュ演算が性能指標データのいくつかのパラメータに対して実施される)、処理または操作後に取得されたデータは、フレーム描画スレッドの負荷特性として決定される。
【0312】
任意選択で、フレーム描画スレッドの実行は、所定の時間内に完了されず、図8に示す方法は、画像フレームの描画が完了されるまでフレーム描画スレッドについての追加のリソースをスケジューリングするステップであって、所定の時間は、リソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされるときにフレーム描画スレッドの実行を完了するために必要な時間である、ステップをさらに含む。
【0313】
フレーム描画スレッドの実行が完了されると、画像フレームの描画が完了されることを理解されたい。画像フレームの描画が所定の時間内に完了されない場合、それはより少ないリソースがターゲットリソーススケジューリング方式でフレーム描画スレッドにスケジューリングされ得ることを示す。この場合、追加のリソースがフレーム描画スレッドの実行を加速するようにフレーム描画スレッドにスケジューリングされる必要があり、それによってユーザエクスペリエンスを向上させる。
【0314】
任意選択で、追加のリソースのサイズと第1の差との間に正の相関関係があり、第1の差は、追加のリソースをスケジューリングする時点と事前設定された時間の終了時点との間の差である。
【0315】
第1の差が大きいほど、所定の時間がより早く経過する。より多くのリソースがフレーム描画スレッドにスケジューリングされるため、フレーム描画スレッドの実行は、可能な限り早く完了される。
【0316】
前述の説明では、第1のマッピング関係情報、第2のマッピング関係情報、第3のマッピング関係情報、および第4のマッピング関係情報が発生する。マッピング関係情報の意味をよりよく理解するために、以下は、表6を参照して、マッピング関係情報の意味を説明する。
【0317】
【0318】
本出願では、様々なマッピング関係情報を事前に格納することができ、様々なマッピング情報は、端末デバイスによって記録された履歴情報に基づいて決定することができる(履歴情報は、負荷情報、負荷特性、アプリケーションシナリオ、負荷値、およびリソーススケジューリング方式の一部の間の対応関係を含み得る)。加えて、画像フレームの実行が完了された後、様々なマッピング関係情報は、画像フレームの負荷情報、負荷特性、予測負荷値、および対応するリソーススケジューリング方式などの情報に基づいてさらに更新され得、それによりフレーム描画スレッドに対応する予測負荷値、ターゲットリソーススケジューリング方式などは、様々なマッピング関係情報に基づいてその後決定される。
【0319】
上記は、
図1~
図8を参照して、本出願の実施形態におけるリソーススケジューリング方式を詳細に説明している。以下は、
図9~
図11を参照して、本出願の実施形態における端末デバイスを説明する。
図9~
図11の端末デバイスは、本出願の実施形態におけるリソーススケジューリング方法のステップを実施することができることを理解されたい。繰り返しを避けるために、
図9~
図11の端末デバイスが以下で説明されるとき、繰り返される説明は適宜省略される。
【0320】
図9は、本出願の一実施形態による、端末デバイスの概略ブロック図である。
図9の端末デバイス1000は、処理モジュール1001と、スケジューリングモジュール1002とを含む。処理モジュール1001およびスケジューリングモジュール1002は、本出願の実施形態における
図1~
図8のリソーススケジューリング方法のステップを実施することができる。
【0321】
具体的には、端末デバイス1000が
図1に示す方法を実施するように構成されるとき、処理モジュール1001およびスケジューリングモジュール1002の具体的な機能は、以下の通りである:
【0322】
処理モジュール1001は、フレーム描画スレッドの負荷特性を決定し、フレーム描画スレッドは、画像フレームを描画するために使用され、フレーム描画スレッドの負荷特性に基づいてターゲットリソーススケジューリング方式を決定するように構成される。
【0323】
スケジューリングモジュール1002は、ターゲットリソーススケジューリング方式でフレーム描画スレッドについてのリソースをスケジューリングするように構成される。
【0324】
本出願では、フレーム描画スレッドが画像フレームを描画するためのスレッドであり、フレーム描画スレッドの実行速度がユーザエクスペリエンスに直接関係するため、フレーム描画スレッドの負荷特性を使用することによって決定されたターゲットリソーススケジューリング方式でフレーム描画スレッドについてのスケジューリングを実施すると、より細かい粒度のリソーススケジューリングを実装することができるため、リソーススケジューリングがより具体的になり、リソーススケジューリング効果がより良好になる。
【0325】
端末デバイス1000が
図8に示す方法を実施するように構成されるとき、処理モジュール1001およびスケジューリングモジュール1002の具体的な機能は、以下の通りである:
【0326】
処理モジュール1001は、フレーム描画スレッドの負荷特性を決定し、フレーム描画スレッドは、画像フレームを描画するために使用され、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてフレーム描画スレッドのターゲット予測負荷値を決定し、フレーム描画スレッドの負荷特性、フレーム描画スレッドのターゲット予測負荷値、および事前設定されたターゲットフレームレートに基づいてターゲットリソーススケジューリング方式を決定するように構成される。
【0327】
スケジューリングモジュール1002は、ターゲットリソーススケジューリング方式でフレーム描画スレッドについてのリソースをスケジューリングするように構成される。
【0328】
本出願では、フレーム描画スレッドの予測負荷値は、フレーム描画スレッドの負荷特性およびフレーム描画スレッドに対応するアプリケーションシナリオに基づいてより適切に決定することができ、さらに、ターゲットリソーススケジューリング方式は、より細かい粒度のリソーススケジューリングを実装するために、より適切に決定することができるため、リソーススケジューリングがより具体的になり、リソーススケジューリング効果がより良好になる。
【0329】
図10は、本出願の一実施形態による、端末デバイスの概略ブロック図である。
図10の端末デバイス2000は、ハードウェア層2100、システム層2200、およびアプリケーション層2300に分割されてもよい。
【0330】
図10に示すように、ハードウェア層2100は、いくつかの物理モジュールまたはユニットを主に含み、ハードウェア層2100は、CPU、ダブルデータレート同期ダイナミックランダムアクセスメモリ(DDR
SDRAM)、およびグラフィック処理ユニット(GPU)を含み得る。CPUは、性能監視ユニット(PMU)をさらに含んでもよい。
【0331】
本出願の実施形態におけるリソーススケジューリング方法のステップは、CPUによって最終的に実行され得ることを理解されたい。
【0332】
図10に示すように、システム層2200は、シナリオ認識モジュール、ユーザエクスペリエンス量子化モジュール、QoSスケジューリングコントローラ、負荷予測モジュール、スケジューリングモジュール、エネルギー効率収集モジュール、性能監視モジュール、均一周波数変調モジュール、フレームレンダリングサブシステム、メディアサブシステム、グリッドサブシステム、およびメモリ管理サブシステムを含み得る。
【0333】
システム層2200におけるモジュールの具体的な機能は、以下の通りである:
【0334】
シナリオ認識モジュールは、ユーザによって現在使用されているシナリオを認識するように構成される(例えば、ユーザが動画を見ているか、または開いているウェブページを閲覧しているかどうかを認識することができる)。
【0335】
ユーザエクスペリエンス量子化モジュールは、リアルタイムでシステムフレームウィンドウ情報をキャプチャし、システムフレームウィンドウ情報をカーネルに提供するように構成され、フレームウィンドウ情報は、フレーム描画プロセスでCPUおよびGPUなどの構成要素を計算することによってフレーム描画操作に関係する開始時点および終了時点を主に指し、フレームウィンドウ情報は、ユーザによって認識され得る「フレームフリーズ」などのエクスペリエンスをカーネルによって認識され得る具体的なデータに変換するために、ユーザエクスペリエンスを量子化するために使用される。
【0336】
サービス品質(QoS)コントローラは、現在のシナリオに基づいて、認識された現在のシナリオの性能制約およびターゲットフレームレートを提供するように構成される。
【0337】
負荷予測モジュールは、フレーム描画スレッドの負荷を予測してフレーム描画スレッドの予測負荷値を取得するように構成され、予測負荷値は、フレーム描画スレッドの実行を完了するために必要なワークロードであり得、ワークロードは、CPU、GPU、またはDDRなどのハード構成要素によって具体的に完了される必要があるワークロードを含むが、これに限定されない。
【0338】
スケジューリングモジュールは、負荷予測モジュールによって予測された負荷およびカットオフ時間(フレーム描画スレッドの実行はカットオフ時間内に完了される必要がある)などの情報に基づいて、上位層のQoSモジュールによって提供される指標、リソース供給、およびフレーム描画スレッド(および関連スレッド)についてのスレッドスケジューリングを決定するように構成される。
【0339】
エネルギー効率収集モジュールは、リアルタイムで現在のシステム消費電力を収集し、最適なエネルギー消費比率で異なるリソーススケジューリング方式を決定するように構成される。
【0340】
性能監視モジュールは、ステータスに基づいてフレーム特性を示すために、コンピューティング構成要素の性能動作ステータスを収集するように構成される。
【0341】
周波数変調モジュールは、CPUの動作周波数を調整するように構成される。
【0342】
フレームレンダリングサブシステムは、表示されるフレームをレンダリングするように構成される。
【0343】
図10に示すように、アプリケーション層2300は、アプリケーション1、アプリケーション2、…、アプリケーションxなどを含み得る。アプリケーション1、アプリケーション2、…、およびアプリケーションxは、異なるアプリケーションプログラムエンティティを表す。例えば、アプリケーション1は、WeChatであってもよく、アプリケーション2は、Weiboであってもよい。
【0344】
本出願における画像フレームは、
図10に示すアプリケーション層2300内のアプリケーションにおいて現在表示される画像フレームであり得ることを理解されたい。
【0345】
図9および
図10に示す端末デバイスは、具体的には、モバイル端末(例えば、スマートフォン)、コンピュータ、携帯情報端末、ウェアラブルデバイス、車載デバイス、モノのインターネットデバイス、人工知能デバイスなどであってもよい。
【0346】
図11は、本出願の一実施形態による、端末デバイスの概略構造図である。
【0347】
図11の端末デバイスは、通信モジュール3010、センサ3020、ユーザ入力モジュール3030、出力モジュール3040、プロセッサ3050、音声/動画入力モジュール3060、メモリ3070、および電源3080を含む。以下は、モジュールを詳細に説明する。
【0348】
通信モジュール3010は、端末デバイスが別の端末デバイスと通信することを可能にし得る少なくとも1つのモジュールを含むことができる。例えば、通信モジュール3010は、有線ネットワークインターフェース、放送受信モジュール、モバイル通信モジュール、無線インターネットモジュール、ローカルエリア通信モジュール、ロケーション(またはポジショニング)情報モジュールなどの1つまたは複数を含んでもよい。
【0349】
センサ3020は、ユーザの一部の操作を感知することができ、センサ3020は、距離センサ、タッチセンサなどを含むことができる。センサ3020は、ユーザによる画面へのタッチまたは画面への接近などの操作を感知し得る。
【0350】
ユーザ入力モジュール3030は、入力されたデジタル情報もしくは文字情報、または接触タッチ操作/非接触ジェスチャを受け取り、システムのユーザ設定および機能制御などに関係する信号入力を受け取るように構成される。ユーザ入力モジュール3030は、タッチパネルおよび/または別の入力デバイスを含む。
【0351】
出力モジュール3040は、ユーザによって入力された情報、ユーザに提供された情報、システムの様々なメニューインターフェースなどを表示するように構成された、ディスプレイパネルを含む。任意選択で、ディスプレイパネルは、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)などの形式で構成されてもよい。いくつかの他の実施形態では、タッチパネルは、タッチディスプレイ画面を形成するために、ディスプレイパネルを覆ってもよい。加えて、出力モジュール3040は、音声出力モジュール、アラーム、触覚モジュールなどをさらに含んでもよい。
【0352】
音声/動画入力モジュール3060は、音声信号または動画信号を入力するように構成される。音声/動画入力モジュール3060は、カメラおよびマイクロフォンを含み得る。
【0353】
電源3080は、プロセッサ3050の制御下で外部電力および内部電力を受け取り、端末デバイスでモジュールを実行するために必要な電力を提供することができる。
【0354】
プロセッサ3050は、1つまたは複数のプロセッサを示し得る。例えば、プロセッサ3050は、1つまたは複数の中央処理装置、1つの中央処理装置および1つのグラフィック処理ユニット、または1つのアプリケーションプロセッサおよび1つのコプロセッサ(例えば、マイクロ制御ユニットまたはニューラルネットワークプロセッサ)を含み得る。プロセッサ3050が複数のプロセッサを含むとき、複数のプロセッサは、同じチップに統合されてもよく、または独立したチップであってもよい。1つのプロセッサは、1つまたは複数の物理コアを含むことができ、物理コアは、最小処理モジュールである。
【0355】
メモリ3070は、コンピュータプログラムを格納し、コンピュータプログラムは、オペレーティングシステムプログラム3072、アプリケーションプログラム3071などを含む。典型的なオペレーティングシステムは、デスクトップコンピュータまたはノートブックコンピュータで使用されるシステム、例えば、MicrosoftのWindowsまたはAppleのMac OSを含み、また、モバイル端末で使用されるシステム、例えば、Googleによって開発されたLinux(登録商標)ベースのAndroid(登録商標)システムを含む。本出願の実施形態におけるリソーススケジューリング方法がソフトウェアを介して実装されるとき、リソーススケジューリング方法は、アプリケーションプログラム3071を使用することによって具体的に実装されると見なすことができる。
【0356】
メモリ3070は、以下のタイプ:フラッシュ(flash)メモリ、ハードディスクタイプのメモリ、マイクロマルチメディアカードタイプのメモリ、カードタイプメモリ(例えば、SDまたはXDメモリ)、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(static RAM、SRAM)、読み取り専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、プログラム可能な読み取り専用メモリ(programmable ROM、PROM)、磁気メモリ、磁気ディスク、または光ディスクの1つまたは複数であってもよい。いくつかの他の実施形態では、メモリ3070は、インターネット上のネットワーク記憶デバイスであってもよい。システムは、インターネット上のメモリ3070上で更新または読み取りなどの操作を実施することができる。
【0357】
プロセッサ3050は、メモリ3070からコンピュータプログラムを読み取り、次にコンピュータプログラムによって定義された方法を実施するように構成される。例えば、プロセッサ3050は、システムでオペレーティングシステムを実行し、オペレーティングシステムの様々な機能を実装するために、オペレーティングシステムプログラム3072を読み取るか、またはシステムでアプリケーションを実行するために、1つまたは複数のアプリケーションプログラム3071を読み取る。
【0358】
例えば、メモリ3070は、コンピュータプログラムを格納することができる(コンピュータプログラムは、本出願の実施形態におけるリソーススケジューリング方法に対応するプログラムである)。プロセッサ3050がコンピュータプログラムを実行するとき、プロセッサ3050は、本出願の実施形態におけるリソーススケジューリング方法を実施することができる。
【0359】
メモリ3070は、コンピュータプログラム以外のデータ3073をさらに格納する。例えば、メモリ3070は、本出願におけるリソーススケジューリング方法でのフレーム描画スレッドの負荷特性、フレーム描画スレッドの予測負荷値などを格納することができる。
【0360】
図11のモジュール間の接続関係は、一例に過ぎない。本出願のいずれかの実施形態で提供される方法はまた、別の接続方式を使用する端末デバイスにも適用することができる。例えば、すべてのモジュールは、バスを使用することによって接続される。
【0361】
当業者は、本明細書に開示された実施形態に記載の例と組み合わせて、ユニットおよびアルゴリズムステップが電子ハードウェアまたはコンピュータソフトウェアと電子ハードウェアの組み合わせによって実装され得ることを知っているかもしれない。機能がハードウェアまたはソフトウェアのどちらによって実施されるかは、特定の用途および技術的解決策の設計上の制約によって異なる。当業者は、各特定の用途について記載された機能を実装するために異なる方法を使用することができるが、その実施態様が本出願の範囲を超えることを考慮すべきではない。
【0362】
当業者であれば、便利で簡単な説明のために、前述のシステム、装置、およびユニットの詳細な動作プロセスについて、前述の方法の実施形態における対応するプロセスを参照することができ、詳細は本明細書では再度説明されないことを明確に理解するであろう。
【0363】
本出願において提供されるいくつかの実施形態では、開示されたシステム、装置、および方法は他の方式で実装されてもよいことを理解されたい。例えば、記載された装置の実施形態は、単なる例である。例えば、ユニット分割は、論理的機能分割にすぎず、実際の実施態様において他の分割であり得る。例えば、複数のユニットもしくは構成要素が、組み合わされて、もしくは統合されて別のシステムにされてもよく、またはいくつかの特徴が、無視されてもよく、もしくは実施されなくてもよい。加えて、表示される、もしくは説明される相互結合または直接結合もしくは通信接続は、いくつかのインターフェースを使用することによって実装されてもよい。装置またはユニットの間の間接結合もしくは通信接続は、電子形態、機械形態、または他の形態で実装されてもよい。
【0364】
別々の部分として記載されるユニットは、物理的に分離していてもいなくてもよく、ユニットとして表示される部分は、物理ユニットでもそうでなくてもよく、一箇所に位置されてもよく、または複数のネットワークユニットに分散させてもよい。実施形態の解決策の目的を達成するために、ユニットの一部またはすべてを実際の要件に基づいて選択することができる。
【0365】
加えて、本出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、またはユニットの各々が物理的に単独で存在してもよく、または2つ以上のユニットが1つのユニットに統合されてもよい。
【0366】
機能がソフトウェア機能ユニットの形態で実装され、かつ独立した製品として販売される、もしくは使用されるとき、機能は、コンピュータ可読記憶媒体に格納され得る。そのような理解に基づいて、本出願の技術的解決策は、基本的に、または従来技術に寄与する部分が、または技術的解決策のいくつかが、ソフトウェア製品の形態で実装され得る。コンピュータソフトウェア製品は、記憶媒体に格納され、本出願の実施形態において説明される方法のステップのすべてまたは一部を実施するようコンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る)に命令するためのいくつかの命令を含む。記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、または光ディスクなどのプログラムコードを格納することができる任意の媒体を含む。
【0367】
前述の説明は、本出願の特定の実施態様にすぎないが、本出願の保護範囲を限定することを意図するものではない。本出願において開示される技術的範囲内で当業者によって容易に考案される任意の変形または置換が、本出願の保護範囲に入るものとする。したがって、本出願の保護範囲は、特許請求の範囲の保護範囲の対象となるものとする。
【符号の説明】
【0368】
1000 端末デバイス
1001 処理モジュール
1002 スケジューリングモジュール
2000 端末デバイス
2100 ハードウェア層
2200 システム層
2300 アプリケーション層
3010 通信モジュール
3020 センサ
3030 ユーザ入力モジュール
3040 出力モジュール
3050 プロセッサ
3060 音声/動画入力モジュール
3070 メモリ
3071 アプリケーションプログラム
3072 オペレーティングシステムプログラム
3073 コンピュータプログラム以外のデータ
3080 電源