PC watchには >コンパニオンコアとクアッドコアの切替はCPUの内部で自動的に行われる とありますので,OSからはいつも4コアに見えて,負荷が高まると自動で普通の4コアの方に移動するのでは? vSMPという名前がつけられてます。
Itmediaに書かれているように >Companion CPU CoreとMain CPU Coresは、同時に有効になることはなく、一方だけが動作する。 >そのため、それぞれのコアが利用する2次キャッシュメモリは共用され、 >切り替え時にキャッシュメモリにあるデータの同期や整合を取る処理が必要ない ということのようです。
うまく読みとれなかった (スコア:1)
コンパニオンコアは1つだけど、SMT的に4コアに見えるような工夫はあるのかな?
まあクロックが下ってきてる時なら動いてるメインコアは1つとかになってるとは思うけど、できれば低負荷でもまったく同じ動きすること自体を期待できるようにはなってほしい。
# まあ、問題はあんまりないようにしてるんだろう...
あと、コア間でのレジスタファイルの受渡しとか、コアのステータスの変化伝達はどうするんだろう...
M-FalconSky (暑いか寒い)
Re:うまく読みとれなかった (スコア:1)
レジスタとかはそのままで、命令を投げ込むパイプラインが切り替わるんじゃないか?
Re: (スコア:0)
PC watchには
>コンパニオンコアとクアッドコアの切替はCPUの内部で自動的に行われる
とありますので,OSからはいつも4コアに見えて,負荷が高まると自動で普通の4コアの方に移動するのでは?
vSMPという名前がつけられてます。
Itmediaに書かれているように
>Companion CPU CoreとMain CPU Coresは、同時に有効になることはなく、一方だけが動作する。
>そのため、それぞれのコアが利用する2次キャッシュメモリは共用され、
>切り替え時にキャッシュメモリにあるデータの同期や整合を取る処理が必要ない
ということのようです。
つまり基本CPUだけで完結する省電力技術ということになるのではないでしょうか。
普及のハードルは特にないでしょう。うまく考えられていますね。
Re: (スコア:0)
負荷によってはメインコア1個動作ってのもありうるようだし、コンパニオンコアに限らず論理CPUに振られた仕事を物理コアに振り直す機構を持ってるんじゃないだろうか。
1コアで複数の論理CPUを提供して処理を回すってのはHTと同様の機構だし、物理CPU1個の論理CPU4個としてOSに認識させて回せばいいんじゃなかろうか。
ただ「物理CPUによる並列処理なら必要だけど論理CPUによる並列処理では必要ない」領域の同期を常にこっそりと取り続けるコストとか、論理CPUを想定して最適化したコードによるロスとかが生じるので、普通の物理CPU4つ構成よりはパフォーマンスは落ちる気がする。
あとARMは詳しくないんだけど・・・HTと同系統の論理CPUだと異なるメモリ空間で走ってるスレッドを同じCPUに投げ込めない、なんてことはないよね?
もし投げ込めないなら実用性ががくっと落ちてしまうはずだが…?
Re:うまく読みとれなかった (スコア:1)
メインの方は各コア独立で電源を落とせるようなので,
メインが1コアだけが動作している場合と
コンパニオンで動作している場合の違いがソフトから見えない
といった感じなのではないでしょうか?
何個のコアが動いている,というか何個のコアを動かす
ってのはOSが決めることだと思いますし
Re: (スコア:0)
アプリやドライバレベルじゃ複数コア使うことが前提なコーディングができないんじゃないの?
コアをいくつ使うのかはOSだけがコントロールするようにしないと省電力化が複雑になりすぎるから
OSは必要に応じてコア数をコントロールし、それが1コアになったときさらにアイドル比率が高まればCPU内部でコンパニオンコアへの切り替えが行われる、って感じならスケーラブルに省電力化出来そうだし
Re:うまく読みとれなかった (スコア:1)
最初から高負荷になることが分かっているアプリケーションならば、マルチスレッド前提で作って問題は無いのでは?
それでもなお省電力コアで処理可能になれば、CPUが勝手に省電力モードで実行してくれるわけだし。
Re:うまく読みとれなかった (スコア:2)
とあるので、低消費電力1コアの時はSMT的な挙動をするのかな???Cortex-A9はO-o-oなプロセッサなのでバレルプロセッサ的なアプローチも取りやすいとは思うけど、詳細知りたいですね。