Atomのアーキテクチャー
Atomは現在インテルCPUの主流である「Coreマイクロアーキテクチャー」や、Pentium 4の「NetBurstアーキテクチャー」とは、まったく違った新しいアーキテクチャーとなっている。
Atomのコンセプトは前述のとおり、トランジスター数を少なくして、高クロック・ある程度のパフォーマンスを確保するというものだ。そのためCPUそのものをシンプルにしている。しかし、CPUをシンプルにすると、その分パフォーマンスが低くなりがちだ。
そこで、Atomではパフォーマンスを出すために、組み込み機器向けCPUとしては今までにないほど、高クロックで動作させている。最も遅いAtom Z500では、動作クロックが800MHzでTDPも0.65Wと非常に低い。さらにAtom Z520以上では、ひとつのCPUコアで2つのスレッドを実行させる「Hyper-Threading Technology」(HT)を採用してパフォーマンスを上げている。
HTが機能した場合、CPU内の演算器は無駄なく稼働するので、パフォーマンスは上がるが消費電力もあがる。これについて土岐氏はこう語る。「確かに、AtomでHTを利用すると、CPUがフル回転するためTDP面ではデメリットになります。しかし時間軸でCPUの動作を見てみると、HTによってパフォーマンスが必要な部分の処理を短時間で終わらせて、なるべく早く低消費電力モードに移行した方が、全体を見れば低消費電力化に寄与します。低速で長時間処理を行なうよりも、素早く処理を終えてすぐにスリープした方が、メリットがあるのです」
HTを採用した理由には、シングルコアCPUであるAtomのパフォーマンス向上とともに、将来的にデュアルコアCPU化しようという考えもあると予想される。デュアルコア版AtomがTDP 3Wに収まるとは思えないが(8Wほどと推測されている)、次世代の32nm製造プロセスに移行すれば、TDP 3Wも目標に入ってくるだろう。
Atomの低消費電力化には、「C6ステート」(Deep Power Down)と呼ぶ新しい電力消費モードの実装も寄与しているという。C6ステートではコア電圧、コアクロック、PLL(同期回路)、1次/2次キャッシュメモリーなどをオフにすることで、消費電力を大幅に下げ、ほとんど電力を消費しない。ちなみにPenrynファミリーのCore 2 Duo/QuadもC6ステートをサポートしている。
パソコンの使用シーンを考えると、多くの時間が入力待ちの状態にある。逆に言えば消費電力の低いステートの状態で長くいられることになる。つまり、C6ステートの導入により、CPUの消費電力を圧倒的に低くできる。インテルでは、一般的なパソコンの使用時において、C6ステートに入っている時間は90%にのぼるとしている。
Atomは1次命令キャッシュが32KB、1次データキャッシュが24KB、2次キャッシュは512KB搭載している。システムバス(FZB)は133MHz(Atom Z500は100MHz)。HTや64bit拡張命令の「Intel 64」のほか、仮想化をサポートするバーチャライゼーション・テクノロジー、SSE3と拡張SSE3(Core 2 Duoからサポート)など、Core 2 Duoと同等の機能がサポートされている。Atomだからと言って、最新CPUの機能や命令セットを使えない、というわけではない。
AtomはCore 2 Duoと何が違う?
Atomのアーキテクチャーは、Core 2 DuoのCore マイクロアーキテクチャーとどのようなところが違うのだろうか? 大きく異なるのは、Atomでは「イン・オーダー」型の命令実行方式を採用していることだ。
Core 2 DuoやPentium 4は、「アウト・オブ・オーダー」型の命令実行方式を採用している。アウト・オブ・オーダー型では、CPUコア内部でプログラムを分析して、処理に必要なデータが揃っていて、実行できる命令から先に実行するよう、命令の実行順序を並び替えて実行する。命令が並んでいる順番どおりに実行するわけではない。順番(Order)を無視して(Out)実行できる命令から先に処理することで、CPUの動きを止めずに実行して処理性能を上げている。
一方、Atomプロセッサーで採用されているイン・オーダー型は、プログラムの順序に従って処理する。そのため、実行に必要なデータが揃っていないと、CPUの動作は待たされる=処理速度の低下につながる。
アウト・オブ・オーダー型は実行効率がいい反面、命令の並べ替え(スケジューリング)などに多くのトランジスターが必要となる。そのため、トランジスター数をコンパクトにしたいAtomでは、イン・オーダー型を採用したのだろう。
一方、AtomでHTを採用したのは、命令が実行できなくてCPUが待たされるようなときでも、HTによって別スレッドの命令を実行できるようという意図からと思われる。これにより、イン・オーダー型でもできるだけ、コア部分が無駄に待たされないようにできている。
そのほかにCoreマイクロアーキテクチャーと違いを挙げると、Atomではx86命令を、μOPsのような細かい内部命令には変換しない点が挙げられる。また分岐命令がある場合、あらかじめ分岐の先まで実行しておき、実際に分岐が起こったときにどちらかを採用するといった「投機実行」機能も採用していない。
Atom内部のパイプラインは、Coreアーキテクチャーの14段から、16段に増えている。ただしイン・オーダー型にチューニングされている部分があるため、おおむねCoreアーキテクチャーと同じと言っていい。ちなみにPentium III世代は10段だった。パイプラインの段数を増やすことで、高クロック動作に適する設計を採用したわけだ。パイプラインに関しては、CoreマイクロアーキテクチャーのコンセプトをAtomも継承したと言える。
Atomの内部を見ていると、Pentium III世代のアーキテクチャーをベースにして、「Coreマイクロアーキテクチャーのいい部分を採用したのがAtom」という印象を受ける。