文科系のためのPOWER7プロセッサーの話 ~ 3
気が向いた時に書いているこのシリーズの第3回目ということで、今回は信頼性向上のためのテクノロジーについても述べてみようと思う。プロセッサーの話というとどうしても速度至上主義というわけではないが、性能の話が主な話題になってしまうのは仕方ない。しかしサーバー用途ということを考えるならば、RAS(Reliability Availability Serviceability)も重要な技術要素であることも事実であろう。ちょっとした道路の凹凸にタイヤをとられてすぐに横転してしまうような車では、いくら高速走行性能が優れていても怖くて運転する気にならない。POWER7プロセッサーについて言うと「道路の凸凹」に対する種々の安全策が講じられているのだが、POWER6の世代から実装されている、エラー修復のメカニズムがなかなか興味深い。
そもそもソフトエラーって何だろう。用語の検索をかけると非常に多くのサイトがヒットするわけだが、要するに確実に再現できるとは言えないエラーだと思えば良さそうだ。この逆が恒常的なエラーというわけでハードエラーと言う。いわゆるソフトウェアだのハードウェアだのといったものとは直接的な関係はない。機器類が物理的に破損するようなハードエラーと違って、ソフトエラーの方は一般的には結構対応がやっかいだ。原因を追究しようにもいつだかわからない次のエラーが発生するのを気長に待たなければならないからだ。ただ、その原因として可能性が指摘されているのが、電子機器類に対する宇宙線、すなわち宇宙から降り注ぐ放射線だと言われている。自然現象がコンピュータの誤動作を引き起こす原因となり得ると聞いても、どうもなかなかピンと来ない。
プロセッサーと言っても、要するにフタを開ければ膨大な数の、スイッチの役割を果たすトランジスタが集まったものに過ぎない。そしてPOWER7では12億に達すると言われているトランジスタ回路が、45ナノメートル(ナノは10のマイナス9乗)という解像度をもって、シリコンのウェハーと呼ばれる板の上に刻まれている。トランジスタは電気のオン・オフを制御するスイッチとして機能するから、構成するには電気を流す物質と流さない物質とが必要になってくる。この時、電気を通さない絶縁物質はわずか電子数個分(と聞いたことがある)の厚みしかない繊細なものなのだそうだ。そして動作中のトランジスタに宇宙線が当たると誤動作、すなわち物理的に破壊されるわけではないから、一過性のソフトエラーが発生してしまう。だから今日の最先端の半導体デバイスは、宇宙線が到達し得ない地中深くに設置するとか、宇宙線を通さない筺体で覆わない限り、ソフトエラーを発生させるリスクが常につきまとう。
POWER7では動作する都度エラーチェックを行ない、万一エラーを検知した場合は、自動的に前のステップに戻って再実行する仕組みを備えている。ソフトエラーだったらまず再発しないので、これで問題なく動作を継続できるわけだ。もし万が一エラーが再発する場合には、該当プロセッサーをあきらめて別のプロセッサーに処理を移管する。その際でもコンテキストと呼ばれる仕掛かり中の状態を維持したままなので、処理が中断されることはない。サーバー用途ということでよく考えられた設計なのではないだろうか。