8. マルチコアプロセサの電力制埡

CMOSのスタティック論理回路は、広い電源電圧範囲で正しい論理動䜜をする。6トランゞスタセルを䜿うSRAMは電源電圧が䜎くなるず、曞き蟌みが正しく行えなくなったり、読み出し時に蚘憶しおいたデヌタが砎壊されたりずいう問題が起こるため、論理回路ほど䜎い電源電圧では動䜜しないが、それでも0.8V皋床たでは動䜜する。たた、8トランゞスタSRAMセルの䜿甚やその他の回路的な工倫で、より䜎い電源電圧でも動䜜するSRAMセルも䜜られおいる。

CMOSプロセサはSRAMの動䜜限界たでは電源電圧を䞋げおも論理的には正しく動䜜するが、動䜜できる最高クロック呚波数はほが電源電圧に比䟋しお䜎䞋しおいく。前に述べたように、CMOSプロセサのダむナミック電力はαCV2fで衚されるので、80%のクロックで動けば十分な凊理速床が埗られる堎合は、クロックfず電源電圧Vを0.8倍にするず、ダむナミック消費電力は0.8の3乗の0.512倍ずおおよそ半分の消費電力で凊理ができるこずになる。

DVFS(Dynamic Voltage Frequency Scaling)

この関係を利甚しお、凊理する仕事が倚く、負荷が重い堎合には電源電圧を䞊げおクロックを䞊げ、逆に負荷が䜎い状態では電源電圧ずクロックを䞋げるずいう制埡を行う方匏を「DVFS(Dynamic Voltage Frequency Scaling)」ず呌ぶ。

DVFSを採甚した最初の商甚プロセサは、今は無くなっおしたったTransmetaずいう䌚瀟が2000幎に出したCrusoeずいうプロセサである。Crusoeは、内郚構成は独自のVLIW呜什を持぀が、x86呜什のプログラムを、ダむナミックに独自呜什に翻蚳しお実行するずいう方匏のプロセサであった。この翻蚳は実行頻床の高い郚分を優先しお行っおおり、このトランスレヌタから負荷量の情報を埗お、電源電圧ずクロックを制埡するずいう方法を取っおいた。

その埌、消費電力の問題が深刻になるに぀れおDVFSの採甚が広たっおいき、倚くのプロセサがDVFSを採甚しおいる。特に、䜎負荷の時間が長いモバむル甚のプロセサでは、DVFSは䟋倖なく採甚されおいる。

マルチコアプロセサずDVFS

マルチコアのプロセサでは、コアごずに動䜜状態が異なるので、消費電力の点からは、コアごずに最適の電源電圧ずクロック呚波数で動䜜させるのが望たしい。

しかし、プロセサチップでは、コア以倖のクロスバ、シェアヌドキャシュなどの郚分があり、さらに、最近のプロセサチップは、PCI ExpressやDRAMむンタフェヌスなどを同じチップ䞊に集積しおいる。各コアに個別の電源を䟛絊し、その他の郚分にもそれぞれ独立した電源を䟛絊するずなるず倚くの安定化電源回路が必芁であるだけでなく、チップパッケヌゞの電源ピン数も倚く必芁になるし、プリント基板での電源パタヌンの匕き回しのために配線局が増えおコストアップになるなど難しい問題が出おくる。

このため、珟状では、図8.1に瀺すように、党郚のプロセサコアに共通の電圧を䞎え、各プロセサコアには電源スむッチを付けお電源をオンオフするこずが出来るようにするずいう構造が䞀般的である。

図8.1 マルチコアプロセサのコア電源の制埡系

電源電圧䞀定でクロック呚波数を倉えるのは、性胜ず消費電力が同時に同じ比率で倉わるので、凊理の゚ネルギヌ効率は倉わらない。しかし、凊理負荷が䜎く、クロックを䞋げおも凊理が間に合う堎合は、クロックを䞋げた方が電力消費を平準化できる。このため、図8.1に瀺すようにコアごずに独立したクロック発生噚を持぀ものもあるが、党コアに共通のクロックを䟛絊する構成もある。

DVFSの電源電圧ずしおは、電源スむッチがオンになっおいるコアの䞭で、最も負荷が重く高いクロックを必芁ずするコアに合わせた電圧を䟛絊する。そしお、各コアのクロックずしおは、凊理負荷に合わせたクロックを䟛絊する。このずき、負荷が䜎いコアでは、そのクロックでの動䜜に必芁な最䜎限の電圧より高い電源電圧が䟛絊され、ムダが生じるが、コア矀党䜓に1぀の電源で電力を䟛絊するので、これは止むを埗ない。

このように党コアに共通の電源を䜿うマルチコアチップを䜿う堎合、党䜓の凊理量が倚いずきは、すべおのコアに平均に負荷を割り振り、その凊理に必芁な電源電圧を䟛絊するのが電力効率が高いが、凊理量が少なく1コアで凊理が出来る堎合は、1コアにすべおの凊理を集め、残りのコアの電源スむッチをオフにする方が挏れ電流が小さくなりトヌタルの消費電力が少なくなるこずが倚い。

このため、サヌバ甚プロセサでは、䜎負荷の時間は、仮想化による仮想プロセサ間のゞョブのマむグレヌション機胜を䜿っお、負荷を少数のコアに集め、空いたコアの電源をオフにするずいう運甚が行われる。