Intelの新プロセッサ「Core Duo」には、地味だが魅力的な省電力機能が実装されている。動的部分電源断と復帰に一番近い技術として注目だ。
こういうことを書くとお叱りを受けそうなのだが、実はこのところ、この連載でインテルのPC向けプロセッサの話題を無理に取り上げるつもりをなくしていた。もちろんPC向けプロセッサの市場は大きく、関心や興味を持っている人から、実際PC産業に従事している人まで関係者は多岐多数にわたるので重要であることは承知している。だいたいこの連載を読んでくれる方々にも、その関係者が多いのは間違いない。しかし重要だからこそ、あちらこちらで取り上げられる回数も多い。その上、インテル自体が立派に自己分析し、戦略を立て、それを緻密に広報している。どこを見てもあまり変わらぬ論評が同時期に掲載される。あえて部外者の筆者が似たようなコメントすることもあるまい、と思っていたのだ。
それにいまやPC系プロセッサは、一般の半導体業界とは少々異なっている。半分自己完結した閉じた市場を形成しているからだ。筆者らが関係していたころのx86業界では、「高々」数十万トランジスタの追加がプロセッサの能力の地平を広げ、そこから新たな産業が勃興し、社会を変革するような影響力を発揮した。しかしいまや、1000万個のトランジスタの追加など小さな一歩でしかない。市場は依然として大きくなっているし、一般への影響度も計り知れなくなっている。だいたい「想定内」の進歩で予想外のことは少ない。あえて筆者などがコメントするとすれば、何かPC産業の人々が内輪の論理に引きこもりすぎたときに茶々を入れるのが役回りかと思うのだ。
そんないま、あえて「モバイル向け真のデュアルコア設計」としてリリースになった「Core Duo」について取り上げることにする。そのフレンドリーな感じの新しい商標に引かれたわけではないし、ましてや2つのコアでシェアされることになった2次キャッシュ・アーキテクチャを論評したいわけでもない。
このリリースで目を引いたのは、「Dynamic Power Coordination」という地味な技術である。詳細な技術資料を手に入れたわけでもないので、断片的なリリースなどからの判断だが、デュアルコアの効率的電力管理のために、各コアを独立して深いスリープ(Deep Sleep)や「もっと深い」スリープ(Deeper Sleep)に入れる技術のようである。前からあるSpeedStepが動作時の動的な電源電圧+動作周波数制御とすれば、このDynamic Power Coordinationという技術はデュアルコアのスリープ・モードに関して、(スリープについてこう表現するのも変だが)「動的に」電源電圧管理を行うもの、と理解できる。いってしまえば単純な発想なのだが、これが新技術として紹介されるに足りえるのは、本来同じ電圧が供給されるべきチップ内の部分(電源ドメインとかいわれることもある)をさらに細かく分解して、小部分ごとに供給する電圧を変える、という点である。たまたま制御の単位がコア別というのは、管理する上でやりやすい単位がコアだからと解釈できる。これが何で目を引いたか。デュアルコア搭載ノートPCの駆動時間がインテルの目標どおりに延びるからか……、否である。
実はこの手の技術の進化が、今後の半導体産業全体の行く末を考える上でキーになるのではないかと勝手に思っているからだ。この手の技術とは、あちこちですでに指摘されているとおりのリーク電流の制御の問題である。
微細化こそが半導体産業を支えており、その微細化は電源の低電圧化を避けては進められない。しかしトランジスタのスレッショルドに電源電圧が迫っていかざるを得ないこともあって、必然的にリークの問題がクローズアップされるようになったことは、ご存じのとおりかと思う(このあたりの事情については「第9回 銅配線にまつわるエトセトラ」参照のこと)。
リークの問題はいくつも原因があり、これらに対処するために種々のリーク対策が進められてきているが、高性能トランジスタを使いながらリークを避ける決め手は実はみんなよく知っているのだ。「使わないときに電源を切ってしまうこと」である。電源が切れていれば、いくらジャジャ漏れのトランジスタといえども電流が流れようがない。動作するときだけ電源を入れ、動作の必要がなくなったらトランジスタの電源を元から断つ、実に単純な発想だが、その効果は抜群である。単純なチップ全体の電源断なら、ちょっと工夫しているシステムならいまでもよくやる手法だが、チップ内の部分部分で小まめに電源をオン/オフする。それも動的に走っている最中に、というのがモダンな課題である。
これが、いざ実現しようとすると分かっちゃいるけど面倒なのだ。すでに外部とのインターフェイス部の電源電圧と内部コアの電圧など異なる電圧を1つのチップの中で使い分けるのは一般化している。また、動作クロックを使用しない部分で止めるのは普通だし、動的にクロック周波数を変更するものも増えてきている。ある意味、スリープというのはクロックの周波数がDC(直流)まで落ちた「状態」とみなせるので、動作時とスリープ時でことさらに分けて考えることもなく、周波数可変の行き着く姿といえる。と同時に電源電圧を可変とする技術も何とかなってきたし、電源電圧を低くするのでなく、この際ゼロにする、というのは、頭の中ではその先の一歩でしかない。しかし、その一歩がなかなかに難題である。
チップの中に電源の入っているところと電源の入っていないところを作ることは、回路的にも沢山問題はあるのだけれど、取りあえず「何とか」することは可能である。しかし「動的かつ部分的に」電源をオン/オフしながら間欠動作させようと思った瞬間に壁に当たる。
オフからオンを考えてみると分かりやすい。オンになって再度走るためには、電源が動作可能な電圧にまでたどり着くまで待つ必要がある。どうあがいても電源の挙動はアナログな物理現象なので、一瞬にしてOKにはならない。電圧の上がる途中で変な挙動を示されても困る。その上、動作可能となっても、回路の中の「昔」の記憶はすべて消えている。すると回路的には「パワーオン・リセット」からの復帰と同様になる。動的オン/オフといっても、ポンと電源さえ戻れば、電源が切れずに動いていた部分と急に連携して動作できるはずもないのである。電源の安定と昔の記憶を取り戻すのに長い時間をかけているのであれば決め手にはならない。業界全体を救うような新技術にはならない。
負荷であるプロセッサ側だけでなく、電源自体にも困難度が大きい。負荷の変動の対応は電源設計にお約束の問題ではあるが、高速動作時の大電力供給に対応しつつ、スリープ時の落差の大きい小電力まで広い局面で「高効率」を達成するというのはかなり難度が高い。電源自体の効率が落ちてしまうと、プロセッサ側が低消費電力になってもやぶ蛇となりかねない。動的な部分的電源断に対応する電源というのは相当ハイテクなものになるだろう。動的周波数−電力可変を車のシフトチェンジに例えれば、スリープがニュートラ程度なら、電源断はオートマ車のパーキング・ポジションとなるだろう。走っている最中トップからパーキングに入れることを想像すれば(そんなこと無理か!)難しさを想像してもらえるだろうか。
そんな中で、今回のDynamic Power Coordinationという技術は動的部分電源断と復帰まで踏み込んでいるわけではないのだけれど、原理的にはそういう方向まで「一番行きやすい」位置にあるように筆者には見える。デュアルコアのそれぞれのコアの管理という切り口なら、複雑な回路の部分部分の電源断よりもはるかに単純に目指すところにたどりつけそうな期待が持てるのだ。この際、インテルには先頭をきってそこまでさっさとやってほしいと思う。無理難題を持ち出される電源ICベンダは大変かもしれないが……。
新年ということで、ある雑誌に2005年にGordon Moore御大が書かれた手紙が再掲載されていた。「まだまだ半導体業界はいける」という力強い内容である。その実現のためにも電源制御は避けてとおれないと思っている。みんなでがんばりましょう!
日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部を経て、現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。
「頭脳放談」
Copyright© Digital Advantage Corp. All Rights Reserved.