第89回 「不揮発プロセッサ」って何がすごいの?:頭脳放談
ロームがCEATECに参考出品した「不揮発プロセッサ」は、メディアの受けはいまいちだったようだが、その実力は二重丸。何がすごいのか話そう。
今回は、2007年10月初旬に幕張で開催された「CEATEC JAPAN 2007」でロームが見せた「不揮発プロセッサ」について少し語ってみようと思う。CEATECでは、東芝のCellを応用したメディア・プロセッサ「SpursEngine」がメディアに大きく扱われた陰で、ロームの不揮発プロセッサの扱いは小さかったようだ。
ローム自体も、事前にあまり情報をプッシュした形跡がない。つまりは営業的に「直近の期待はない」のだろう。まだ量産も決まっていないようで、参考出品であったことも一因かもしれない。一応、比較的目立つところに展示してあったので、Webのニュースでは取り上げられたようだが、地味な扱いである。
まぁ、「不揮発」なメモリを積んだプロセッサなどあちらこちらにある。確かに不揮発メモリとしてFRAM(強誘電体を用いた記憶素子)を積んだマイコンはそれほど多くないが、FRAM「だけ」を搭載したプロセッサは、2007年前半に富士通がすでに見せている。といった感じで、通り過ぎてしまった人の方が多かったのではないだろうか。
でも、その「不揮発さ」がちょっと違うところにあったのだ。業界人なら、一瞬でよいから立ち止まって見ればすぐに分かったはずだ。目利きでいうところの「捨て目(何げないようなことでも目を付けておくようにすること)」というやつである。その不揮発というのは、FRAMをメモリにしたというだけではなかったのである。
不揮発プロセッサというと、ついフラッシュメモリを搭載したマイコンを想定してしまう。いまやシングルチップ・マイコンは、フラッシュメモリ搭載に決まっているくらいだ。「オール・フラッシュメモリ宣言」などしている某マイコン・メーカーもある。しかし今回の「参考出品」は、記憶装置としてプロセッサのソフトウェアから読み書きできるメモリのほかにFRAMを使った、という点に最大の特徴がある。つまり、プロセッサの中の回路に含まれるフリップフロップ類のセルの中にFRAM同様の素子を配置し、「回路そのものを不揮発化」したということなのだ。
高速性と低消費電力の両立は楽じゃない
このあたりは、LSIの回路などを作ったことのない方には分かりにくい部分なので説明しておく。現在、プロセッサを含むほとんどのデジタルLSIは、同期式回路という設計方式に基づいて設計されている。同期といって何に同期するかといえば、「クロック」という名のペコペコと「0」と「1」を繰り返すタイミング基準信号である。この「クロック」が速ければ速いほど、同じ回路なら性能は高くなるのはご存じのとおり。さて、このクロックというものは実際どこに入力されているかというと、デジタル回路内のあちらこちらに点在しているフリップフロップ(1bitの情報を保持できる順序回路)もしくはラッチ(基本的な記憶回路)などと呼ばれる記憶素子に入っているのである。記憶容量からいえば普通1bit単位と考えてよい。回路の動作というものを突き詰めれば、あるフリップフロップを出発した信号が、組み合わせ回路というクロックを持たない論理回路を経由して次のフリップフロップのクロックで捕まるという繰り返しなのである。
ここで普通、フリップフロップとかラッチとかいわれるものは、通常回路では「SRAMのような」性質を持った記憶素子だ。SRAMセルとは物理的には異なる回路ではあるけれど、高速に何度でも読み書きでき、電源を切れば記憶が消えるという性質はSRAMと一緒である。逆にいえば、電源さえ入れておけばフリップフロップの記憶はずっと保持される。DRAMのように記憶をよみがえらせる操作(リフレッシュ)は不要だ。おかげで、世のほとんどの回路は電源さえ与えておけば、クロックを停止してホルトとかスリープといわれる待機状態に入ることができるのだ。
ところで、回路そのものの性能は、フリップフロップを含めた論理回路全体がどれだけ速く動作するか、ということにかかっている。よって、業界は長年にわたって、より高速なトランジスタを追い求めてきたのであるが、高速なトランジスタほど電力を消費する。まずは、フリップフロップの状態(「0」か「1」か)がヒックリかえる度に電力が消費されるので、消費電力はクロック速度に比例するのである。それでも動作時に電力を消費するのは必要な電力なので目をつぶるとしても、非動作時にもリーク電流といわれる不要な電力が消費されてしまうのはいただけない特性である。
そこで、高速性と低消費電力を両立させるべく、例えば動作していない部分のクロックを止める、という基本中の基本から始まって、必要な速度に応じて電源電圧を変えるとか、いろいろな手法を各社駆使してきている。その中で、最近の微細プロセスでは一般化しつつあるのが、止めるときには、速度の速いトランジスタで作った高速回路の電源を切ってしまう、という手である。電源を止めれば電流は流れないからだ。しかし、電源を切るとマズイことにSRAM同様の性質を持つ回路内のフリップフロップの記憶は「消えて」しまう。すると、再起動するときには困ったことになってしまう。
それに対する1つの手法として、高速なフリップフロップの記憶を、電源を切る前に速度の遅いトランジスタで作った別のフリップフロップにコピーしておくという手法がある。そして、速度の遅いフリップフロップの方は別な電源でバックアップしておく。そうしておいて、いざ再開というときには高速回路に電源を与えてから低速回路から記憶を戻せばよい。これなら止めたところから回路が動き出すことができる。
しかし、電源を与えつづける部分と、電源を切る部分、よく「電源ドメイン」などというのだが、これを混在させるには結構面倒なケアが必要なのだ。それに、結局、一部の回路の電源は与え続けないとならないので、本当の意味での電源オフはできない。かなり大幅な電力削減はできるにしてもゼロになるわけではないだ。
不揮発プロセッサの潜在的可能性は二重丸
ところが、このロームの参考出品のケースでは違うのだ。ロームの不揮発プロセッサの場合、プロセッサを構成するフリップフロップの素子レベルに、FRAMと同等な不揮発性の記憶素子が組み込んである。つまり、上記の電源バックアップされた低速フリップフロップの代わりにこの不揮発性の記憶素子が記憶内容を保持してくれるわけである。よって、このプロセッサではLSIの根元から電源を一気に切ることができる。つまり、リーク電流などというものをまったく考えずに停止時電力を「ゼロ」にできるのだ。
ロームは、どうも「普通のASIC」的なロジック・セルを使ってプロセッサを試作してみたようだ。ということは、別に「プロセッサ」といわず、普通のロジック系LSIすべてに適用可能なはずだ。ある意味これは、プロセッサの新技術というより、より広い範囲のロジックLSI全般に適用可能な回路技術と考えるべきだろう。前述の省電力技術では複数のスレッショルド電圧*1と複数の電源ドメインの使い分けなど、CAEツール的にも非常に高度になってくるが、フリップフロップが不揮発になるのなら、何も気にせず、省電力など不要だった昔のまま設計して、出来上がったら電源を止めるだけで究極的な省電力を実現できてしまいそうである。
*1 スレッショルド電圧とは、例えばそれを0.8Vとすると、0Vから0.8V以下の電圧をかけても、ほとんど回路に電気が流れず、0.8Vを過ぎると急に電気が流れ始める、そういう境界となる電圧レベルのこと。
この技術、筆者的には「潜在的可能性に二重丸」をあげたい。あとは価格ということになる。当然、プロセス・コストは高くなるだろうから、これが手の届く範囲に入ってくれば、メリットは十分にありそうだ。
まぁ、しかし、いろいろ魅力あるLSIを作っているものの、「プロセッサ・メーカー」という点ではあまりマークされないロームなので、「不揮発プロセッサ」という見せ方はちょっと微妙だったような。あまり人のことはいえないか。
筆者紹介
Massa POP Izumida
日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部を経て、現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。
「頭脳放談」
Copyright© Digital Advantage Corp. All Rights Reserved.