CPUの動作周波数が変動しません

ハードウェア : iPhone12 mini

ソフトウェア : iOS 17.1.2


質問です。

ハードウェアの状態を見られるアプリを使っていて気になったのですが、CPUの使用率にかかわらず、動作周波数が変動しません。

以下のように固定周波数で動いているように見えます。


通常 →3.0GHz

省電力モード→1.3GHz


これは動作として正しいのでしょうか?

もちろんアプリからはAPIを呼び出しているだけだと思うので細かい周波数の変化をとらえられていない可能性はあります。


iPhone12 miniに搭載されているA14 Bionicは、2つの高性能コアと、4つの高効率コアで構成されているのは承知しているのですが、常に固定周波数で動作するというのは電力効率が悪くなる認識です。

そんな非効率な動作をするCPUを使っているのは信じがたく、iOSのバグではないかと疑っています。


いかがでしょうか。

iPhone SE, iOS 15

投稿日 2023/12/01 17:27

返信
返信: 14

2023/12/02 01:15 ながっちゃ への返信

ながっちゃ さんによる書き込み:

ちょっと論点がズレているかと思います。


これはおっしゃる通りです。というのも「CPU 使用率によってクロックダウンがフレキシブルに起きるはずだ」という前提が正しいかどうか疑問だからです(つまり前提を共有していない)。


私の知る限りクロックダウンが起きる原因は「CPU 使用率」ではなく「温度」とか「故意のリミッター(故障などを含む)」という感じです。これって Intel とか ARM とか無関係ではないかと思うのですが。


軽くググった限りでは「CPU 使用率によってクロックダウンがフレキシブルに起きる iPhone」みたいな話は見つからないような。そういう話ってありましたっけ?


「こうすれば効率的なのになんでこうじゃないんだ? バグでは?」というのは個人の感想としてはもっともですがそもそもその機能を実装しているはずだという証拠が見つからないような。


私が無知なのかもですがもしかしたら「CPU 使用率によってクロックダウンがフレキシブルに起きる」という製品があるのでしょうか。Android 製品とか?

2023/12/01 22:49 亀どん への返信

>亀どんさん

コメントありがとうございます。


>>ARMは最初からclockに対する電力効率を高くする設計です。

>>性能優先で爆熱設計してヒマな時にclock下げりゃいい、、とは違うと思います。

>>原発振が3GHzのままでも使用率が低ければ低消費電力になるんじゃないんですかね?


なるほど!

そもそもARMの設計思想がそうなっているなら合点がいきます。

勉強になりました。

2023/12/02 01:58 Rondo_1 への返信

Rando_1さん

コメントありがとうございます。

「使用率」ではなく「熱」がクロック変動の根本的なトリガーになっているのはおっしゃる通りです。

発熱の部分を端折って書いていたいたことをお詫びします。


CPUの使用率が上がる→消費電力が増えて発熱する→熱設計に余裕がある場合はクロックを上げる

CPUが使用率が下がる→消費電力が減って発熱が下がる→クロックも下げる


こちらのページに書かれている内容が私のイメージに近いですね。

https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AB_%E3%82%BF%E3%83%BC%E3%83%9C%E3%83%BB%E3%83%96%E3%83%BC%E3%82%B9%E3%83%88%E3%83%BB%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC

2023/12/01 19:57 ながっちゃ への返信

使われているAPIが動作周波数を変化時に常に返して、その値を表示しようとしたら該当アプリのCPU利用率が100%近く行くのでは…。

その手の値を気にするのはなんだかな〜と。

CPU-x と言うアプリをiOS 15.8の端末にインストールして動作させると暫くはいくつかの周波数を表示していましたが、その後は固定されました。

2023/12/01 21:34 亀どん への返信

>亀どんさん

コメントありがとうございます。


はい、CPUの「使用率」 と「周波数」は違う認識です。

個人的な知識の範囲では、スマホやパソコンのCPUは


使用率が高くなるような重いタスクを処理するときには、それに伴って周波数が高くなり、

ヒマになって使用率が低くなれば、それに伴って周波数が低くなる。


という動作をするものだと思っています。

この動作は電力効率を考えると理にかなっているからです。


ただ、A14 Bionicの細かい仕様が分からないので、ご指摘のように上記のような動きをしない可能性もあります。

なので現状は、Appleだけが答えを知っている、ということで納得しようと思います。

2023/12/01 21:32 ながっちゃ への返信

ながっちゃ さんによる書き込み:

CPUの使用率にかかわらず、動作周波数が変動しません。


「変動」しないといけないんでしょうか。処理が遅くなるだけだと思うのですが。


例えばゲームとかでサーマルスロットリング(とされているもの)が起きればクロック周波数が下がる……かもしれません?

https://forums.macrumors.com/threads/iphone-12-a14-running-hot-and-thermal-throttling-issues.2266744/


そもそも厳密な意味におけるサーマルスロットリングって何?というか。遅くなるとかフレームレートが下がるメカニズムってさまざまだと思うので。

2023/12/01 22:36 ながっちゃ への返信

>使用率が高くなるような重いタスクを処理するときには、それに伴って周波数が高くなり、

>ヒマになって使用率が低くなれば、それに伴って周波数が低くなる。

>という動作をするものだと思っています。


可変すると? たぶん、intelのターボブーストの感覚ですか?

うーん、、私は違うと思ってます。

ARMは最初からclockに対する電力効率を高くする設計です。性能優先で爆熱設計してヒマな時にclock下げりゃいい、、とは違うと思います。


原発振が3GHzのままでも使用率が低ければ低消費電力になるんじゃないんですかね?


2023/12/01 20:21 木藤 への返信

>木藤さん

検証ありがとうございます。


たしかにAPIの仕様で、周波数の変化時にしか値を取得しないという仮説はアリだと思います。


ただ、今回は


>>CPUの使用率にかかわらず、動作周波数が変動しません。


なので、CPU使用率が100%の時も5%の時も3.0GHz固定です。下がりません。

負荷にかかわらず周波数が高止まりするのはCPUの動作としては良くないと思いますね。

2023/12/01 21:40 ながっちゃ への返信

ながっちゃ さんによる書き込み:

使用率が高くなるような重いタスクを処理するときには、それに伴って周波数が高くなり、
ヒマになって使用率が低くなれば、それに伴って周波数が低くなる。


普通は温度の影響を受けるのでは?


余談ですがバッテリーがないか機能しない Mac ノートブックでは強制的にクロックダウンが起きます(少なくとも Intel Mac)。

2023/12/01 22:34 Rondo_1 への返信

>Rondo_1さん

コメントありがとうございます。


より長く、便利にiPhoneを使いたいと思っているので、CPUには無駄に電力を使ってほしくないですね。

なので「変動」して効率よく動いてほしいということです。


遅いと感じることがないよう、負荷が高いときには周波数が上がることはスマホとして当然だと思っています。

そのぶんヒマになったら周波数を下げて電気を使わないようにしてほしいです。

2023/12/01 22:45 Rondo_1 への返信

一般的にCPUは自身の温度によっても動作に影響をうけることは承知しています。

ただ、私自身はスマホでゲームをしませんし、炎天下の車内にスマホを放置もしないので、サーマルスロットリングはもとから考慮しておりません。

ちょっと論点がズレているかと思います。



このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

CPUの動作周波数が変動しません

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。