Exynos 9810ギャラクシーS9を改良する:2 - スナップドラゴンをキャッチ

Galaxy S9のレビューに続いて、Galaxy S9810のExynos 9バリエーションの性能とバッテリ寿命の両方について多くの議論がありました。 最初のレビューでは、私が携帯電話の悪い特性に最も悪影響を与えていると考えていたプラットフォームに関するいくつかの重要な問題を特定しました。 に レビューに続く最初の作品 カーネルのマイナーチェンジを行ったところ、私たちのウェブブラウジングテストでバッテリーの寿命に恩恵を与えていたようですが、携帯電話の性能特性を若干変更しました。

前回の記事では、電話機の性能をさらに向上させ、バッテリ寿命を最適化するために行うべきことがたくさんあることに留意しました。 特にパフォーマンス面では、ユーザーエクスペリエンスに役立つ可能性のある変更の点で、非常に低い執拗な実績がありました。

パフォーマンス重視

この2番目のパートでは、可能な限り最高のパフォーマンスを回復し、Galaxy S845のSnapdragon 9バリアントにマッチさせ、バッテリーの寿命を見守っています。

サムスンギャラクシーS9(E9810)
カーネルの比較と変更
バージョン変更と注釈
公式ファームウェア出荷時- ストックの設定と振る舞い
- 3 MHzでのシングルコアM2704
- 3 MHzのデュアルコアM2314
- 3 MHzのクアッドコアM1794
'CPU Limited
モード'
- 設定でサムスンが定義したCPUモード(オプション)
- 1469 MHzに制限されたCPU
- 半速度のメモリコントローラ
- 保守的スケジューラ
カスタム設定1- 「出荷時の」ファームウェアで始める
- ホットプラグ機構を取り外す
- 任意の負荷でM3周波数ピークを1794MHzに制限する
カスタム設定2
(カーネルソース)
コア周波数を1950MHzに上げる
- 大きなコアの最小周波数を962MHzに上げます
- 測定されたパーツ&パワーに基づいてEASコストテーブルを適合させる
スケジューラパッチを4.9-eas-devにマージする (Jan18まで)
バックポートPELT util_estを使用して使用する
バックポートPELTの減衰率を16msに変更
- アダプターを無効にする/不要にするサムスンのsched(util)改造
チューニングのマイナーなカスタム修正
カスタム設定3大きなコア周波数を2314MHzに調整し、関連する調整

出発点として、M1コア上の1.8GHz以上のすべてのブースト周波数を除去し、オンラインのコア/ホットプラグドライバを無効にすることだけが変更されたため、3の一部を中止しました。

元のレビューでは、電話機の性能に悪影響を及ぼすという点で私が特定した最も明白な問題は、周波数を拡大するという点でデバイスが非常に遅く、大きなコアにスレッドを移行させる方法でした。 私が説明した元の値は、実際には大きなコアの最大周波数に達するための定常状態の連続作業負荷の410msの周りにありました。 これは、Snapdragon 65の845msとはかなり対照的です。 他のすべてのものを脇に置いておくことは、Exynos 9810のインタラクティブなパフォーマンスを最大限に制限していたことです。当然のことながら、それを最初に修正したいのです。

EAS周辺のスケジュール履歴

数年前、ARMの最大の目標は、さまざまなCPUの性能とエネルギー特性を認識するスマートスケジューラを使用してSoCベンダーに異種CPUを実行させることでした。 これは良い目標だったが、そこに着く道は私の意見では何も混乱していない。 ARMのアプローチは、上流のLinuxカーネルやLinaroワークグループカーネルで作業を行うことでした。 残念なことに、長年にわたり、エネルギー消費量のスケジューリング(EAS)がもたらしうる誇大宣伝の多くは、商業用機器を出荷する際に騒がしくなりました。 私はクアルコムがここでボールになったと思う 早けれ2015として Snapdragon 810のために、EASに関連する問題を解決するために同社が何をしようとしているのかを広範に網羅しました。

異種CPU間のスケジューリングを可能にするための重要な要素は、スケジューラが一般的なCPU使用率を知るだけでなく、個々のタスクのアクティビティと負荷を実際に知ることができることです。 個々のタスクの負荷を知っている場合は、バッタースケジューリングを決定するCPUコアを配置することができます。 これはもともと、PELTメカニズム(エンティティごとの負荷追跡)をLinuxカーネルに実装したもので、HMPとEASの両方のスケジューリングで移行の決定に使用されたものです。


Exynos 9810フロアプラン。 イメージクレジット TechInsights

ArmとLinuxコミュニティのもう一つの長年の目標は、別個のメカニズムではなく、CPU周波数選択ロジックをスケジューラ内に統合することでした。 これはschedfreqというプロジェクトで最初に試行され、schedutilという新しいガバナーに完全に統合されました。 繰り返しますが、私たちがここで話している実装の時間スケールは数年ですが、同時にいくつかのデバイス世代には無数のソリューションが搭載されています。

S.LSIのExynosチップセットは安全にプレイしていましたが、Exnyos 9810までは、別個のインタラクティブCPU周波数ガバナを使用してHMPスケジューラに固執することを選択しました。 Huawei KirinのチップセットはEASに同梱されていますが、P20などの最新のデバイスであっても、スケジューラーのCPU周波数ガバナーを忘れてしまい、伝統的なインタラクティブなシステムに落ちてしまいます。 クアルコムは独自の実装を進め、PALTにはるかに対応したWALT(Window-assisted load tracking)という別のアプローチを採用しました。 Snapdragon 835と845では、スケジューリングとCPU周波数選択の点で最高のパフォーマンスを保証するコアメカニズムです。

原著

関連のポスト

返信を残します

このサイトはAkismetを使用して迷惑メールを減らします。 コメントの処理方法を学ぶ.