レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
おちゃめくらぶ掲示板
-
ARMのマルチコア化は省電力のため!?
サーバや大型コンピュータにおいてはマルチコア(マルチCPU)が古くから当たり前だった
けれど一般的なPCにおいては2005年に登場したAthlon64x2やPentium Dによってようやく
マルチコア化が始まったにょ。
当初はハイエンド向けだったデュアルコアCPUも製造プロセスの微細化によってメイン
ストリームとなり、そしてハイエンドはクアッドコアが主流になってきているにょ。
スマホやタブレット端末に用いられているARMベースのCPUを見てみると昨年まではほぼ
シングルコアCPUだったのが今年にはタブレット端末はほぼすべてデュアルコアCPUとなり
スマホでも一部機種にデュアルコアCPUが採用されているにょ。
来年にはタブレット端末はクアッドコアが主流、スマホはデュアルコアが主流になると
予想されるにょ。
数年前まではPCにおいてマルチコアCPUを導入する意味は「早くするため」ではなく「遅く
なりにくくするため」だったにょ。
というのもマルチコアというのはOSやアプリの対応が無ければパフォーマンスの向上には
繋がらないからね。
WindowsにおいてはWindows NT以降マルチCPUに対応したにょ。
ただし、マルチコアに最適化されたのはVistaからにょ。(XPもSP3で最適化された)
しかし、OSよりもむしろアプリ側の方の対応が遅れているにょ。
対応が遅れ気味だったゲームにおいても昨今はマルチコア対応のものが増えているため
「ゲームをプレイするなら高速なシングルコアCPUがベスト」というものは過去のものに
なりつつあるにょ。(マルチコアに対応していないゲームであってもIntelのターボ
ブーストやAMDのターボコアのようにTDPの範囲内で動的にクロックを上げる機構が搭載
されているため問題ない)
ARMにおいては上記のようにPCよりも遙かに急速にマルチコア化が進んでいるにょ。
その理由は下記の2つがあると思われるにょ。
(1)パフォーマンスの向上
(2)省電力のため
(1)確かにOS、アプリともにマルチコアに対応すればパフォーマンスの向上に繋がるのは
確かにょ。
iOS4.0以降、Android3.0以降マルチコアに対応しているにょ。
AndroidのベースとなっているのはLinuxであり、カーネルレベルではマルチコアに対応
しているのだけどAndroid用アプリはJavaで作られているためJava仮想マシンがマルチ
コアに対応していないとマルチコアの恩恵を受けることができないにょ。
このJava仮想マシンがマルチコア対応になったのがAndroid3.0以降ということにょ。
より高いパフォーマンスが必要なのは8月1日に書いたようにWeb閲覧という用途においても
年々要求されるスペックが高くなっているためにょ。
確かにシングルコアでもクロックさえ上げれば高いパフォーマンスを得ることが可能に
なるにょ。
基本的にCPUの動作クロックに比例して消費電力が上がるのだけど動作クロックをむやみに
上げるとリーク電流も大きくなり結果として同一の消費電力のCPUだとクロックを無理に
上げずにマルチコア化した方が電力を抑えられるということにょ。
アプリ側がマルチコアに対応すればそれで高いパフォーマンスを得ることができるため
高性能なCPUはマルチコアへとシフトしていったにょ。
PCの場合はデスクトップPCの場合で最大でTDP140W、省スペースタイプのPCだと65W程度
となっているにょ。(「TDP=最大消費電力」ではないけど目安として考えて貰えるといい)
これがノートPCだと一般的35W〜45W程度になるにょ。
このTDPの制約内でパフォーマンスを高める必要があるにょ。
x86CPUはマルチコア化で同一クロック動作の場合はTDPはコア数にほぼ比例して上がって
いくわけだけどARMにおいてもこれは同じにょ。
ARMは元々電力消費が少ないといっても高クロック化、マルチコア化によってx86CPUの
ようにTDPの制約が大きくなってきているにょ。
それをカバーするのが製造プロセスの微細化にょ。
理論上は1世代進む毎に同一ダイサイズで2倍のトランジスタが搭載可能になり、デュアル
コアのダイサイズでクアッドコアを搭載可能になるにょ。
その際はリーク電流などを考慮しない場合は、クアッドコアでもデュアルコアと同じ
消費電力で保つことが可能にょ。
ただし、ARMの場合は、元々シンプルなインオーダだったのがCortex-A9からはアウトオブ
オーダになり、1コア当たりのトランジスタ数の増大を招いている(これによって同一
クロックにおける性能はCortex-A8の1.25倍になっている)わけだし、動作クロックも
上がっているため製造プロセスが1世代進んでもTDPは上昇してしまうため今後はARMとは
いえ熱設計はどんどんシビアになっていくことが予想されるにょ。
(2)高クロック化、マルチコア化は(1)で書いたように最大消費電力の増大を招いてしまい
熱設計がどんどん難しくなっていくことになるのだけど実際の消費電力という面に
おいては高クロック化やマルチコア化によって消費電力を引き下げることが可能になって
いるにょ。
nVidiaも次世代のTegraであるKal-Elにおいてはクアッドコアモデルも投入予定となって
いるのだけどそれは省電力においても有用と考えているにょ。
http://pc.watch.impress.co.jp/docs/column/kaigai/20110805_465346.html
これは、よりパフォーマンスの高いCPUを用いて素早く演算を終了させてスリープさせる
ことによって全体的な消費電力を抑えることが可能になるというものにょ。
仮にCPUの消費電力が1W、CPU以外が1Wとすれば1時間で2Whの消費電力量だけどこれが
CPUの性能が2倍になり消費電力が2Wになった場合は全体では3Wになるけど30分で処理が
完了するために1.5Whの消費電力量になるからね。
しかし、演算を終えたら作業終了という処理だけではなく動画再生のように一定の負荷が
コンスタントに続くような作業においては上記のような省電力メリットは生かせないにょ。
ここで重要なのはCPUの消費電力はクロックに比例し、動作電圧の2乗に比例するという
ことにょ。
仮に微細化によって1.5GHzのCPUが従来の1GHzのCPUと同じ消費電力になった場合には
1.5GHzのCPUの1GHz動作時においては従来の3分の2の消費電力になるということにょ。
またマルチコア化もアプリがマルチコアに対応している場合には同一性能のシングルコア
よりもクロックが下げられるという面において省電力化においては有用にょ。
省電力に効果を発揮するのはやはり動作電圧にょ。
電圧の2乗に比例するために低クロック時には電圧を0.8倍にできると仮定すれば単純計算で
消費電力は0.64倍になるにょ。
そうすれば、マルチコア化によって同一パフォーマンスを得るためのクロックが下がれば
平均消費電力を下げることが可能になるというのが分かると思うにょ。
このようにARMのマルチコア化はパフォーマンスと省電力の両面を考えて非常に有用という
ことが言えるにょ。
ただし、(1)のように低発熱のARMとはいえ、熱設計がどんどん難しくなってきているにょ。
平均消費電力だけではなくピーク時を考えて設計しなくてはならないからね。
では、CPUコアはクアッドコア以降さらにコア数がどんどん増えていくのかというとそれは
やや疑問にょ。
アムダールの法則があるためマルチスレッド化できない部分がボトルネックとなって
いくらコア数を増やしてもどんどん効果が薄くなるにょ。
そのためnVidiaはCPUコアは4コアまでに止めてGPGPUに力を入れていく模様にょ。
nVidiaは早くからGPGPUに力を入れており、G80コアからはアーキテクチャはGPGPUに向いた
ものへと転換されたにょ。(RADEONは現時点ではGPU向きのコアとなっており、次世代の
ものからGPGPUに向いたものに変わる予定となっている)
Tegra2のGPUコアはG70(GeForce 7000シリーズ)をベースとしており、GPGPUに向いたもの
とはいえないにょ。
したがって、GPGPUを進めるならばモバイル向けのTegraもPC用のG80以降のアーキテクチャを
ベースとしたものに変えるのではないかと思われるにょ。
そういう面ではGPUメーカーであるnVidiaは他社と比べてかなり有利な立場に立てると
思われるにょ。
ただし、今後は製造プロセスの微細化が進むとより多く開発費、設備費により多くの
コストがかかるようになるにょ。
そうなると勝ち残れるのは技術だけではなく資本力も重要になってくるにょ。
メインストリームPC用のCPUにノースブリッジ機能が内蔵されたSoCが主流になってきて
いる今となってはPCの統合型グラフィックス市場はほぼ壊滅状態となっており、nVidiaに
とってはこのモバイル向けのARM SoCが生命線となっているにょ。(PC向けのGPUもあるけど
CPU内蔵GPUの高性能化によって販売数量の多いエントリークラスは淘汰されつつあるため
PC向けGPUだけでやっていくのはかなり厳しい状態)
したがって、よりパフォーマンスが高く、省電力のARM SoCを作っていく必要があると
いうわけにょ。
|
|
|
掲示板管理者へ連絡
無料レンタル掲示板