AS/400展望台

ITハードウエアの未来



米IBM, フランク・G・ソルティス

企複雑な IT にどう対処するかということは多くの企業が頭を抱えている問題です。特に、ここ10年ほどの間に導入したすべての分散処理システムの管理に苦慮している多くの中小企業にとってはまさに深刻な問題です。e-ビジネスへの移行に伴い、IT組織においてシステムの需要が増大してシステムが急増すると、なぜ大勢のお客様がIBMに支援を求めるのかお解りになってくるでしょう。

IBMではこうした支援要請にお応えするため、管理が容易なIT構造の将来像を構築するためのイニシアティブをいくつか立ち上げました。この記事シリーズではそうしたIBMのイニシアティブを掘り下げ、iSeriesをお使いのお客様にとってどのような利益があるのかについて考えてきました。

今回は、IBMが半導体技術をどのように活用して古い世代のプロセッサが実行していた命令以上の処理を実行するプロセッサを開発したのかについて述べます。これはまさにIBMが描くIT構造の将来のハードウェア基盤です。

必要以上のハードウェア

プロセッサ設計の黎明期では、できるだけトランジスタを使わないことが目標でした。これはトランジスタが大変高価なデバイスであったからです。特定のコンピュータのハードウェアコストは使用するトランジスタの数に正比例していました。その結果、設計するプロセッサ中のトランジスタの数に強い関心を持つ設計者がほとんどでした。

初期のIBM System/3プロセッサの設計では約3000個のトランジスタが使用され、その当時の設計者は使用したデバイスの数を激減することによりハードウェアコストを低く抑えたことを大変誇りに思っていました。当時のソフトウェアの設計者もまたハードウェアコストについて苦慮していました。たとえば、初期のRPGコンパイラは4Kバイトのメモリで実行できるように設計されていたため、System/3のエントリモデルでは高価な主メモリをわずか4Kバイト搭載するだけで提供することができました。

1970年代にシングルチッププロセッサが登場すると、使用するトランジスタの数を最小限に抑えようとする流れはなお一層強くなりました。他のチップへオーバーフローするような設計をしたがる設計者はいませんでした。マイクロプロセッサと言えばシングルチッププロセッサのことを指すようになっていました。

縮小命令セットコンピュータ(RISC)へ移行しようとする動きも、使用するトランジスタをできるだけ少なくしたいという動機による影響を大きく受けていました。複雑命令セットコンピュータ(CISC)の設計に比べて単純な設計の方がプロセッサに必要なトランジスタが少なくて済むのではないかという議論もありました。RISCの設計はチップ上で解放できるトランジスタ数が多いので、その分を高速なキャッシュメモリに使用できたのです。その結果、キャッシュメモリが別のチップ上にある場合に比べてプロセッサのパフォーマンスが向上しました。時の流れと共にこうしたキャッシュメモリがプロセッサチップ上にますます大量に詰め込まれるようになり、今日ではキャッシュメモリが完全に3レベルあるチップまで登場しています。

1990年代初期までには、トランジスタの数を最小にする設計は結局のところ最良の取り組みではないということが明らかになっていました。マイクロチップ上のトランジスタの数は18ヶ月から24ヶ月ごとに倍増するというムーアの法則として知られている現象がある通り、ハードウェアの設計者は効率的に使用できる数以上のトランジスタがチップの上に搭載される日が来るのがわかっていました。

将来どのようにすればすべてのトランジスタを使用できるのかということに関する研究が複数の大学で始まっていました。特に、こうした研究の多くは10億個のトランジスタを搭載したチップの設計に集中していました。

IEEE Computer Magazineの1997年9月号では、最先端の大学で研究されている10億個レベルのトランジスタを搭載したアーキテクチャについて7点もの論文を掲載しています。その中には、従来の路線を踏襲して、それを少しだけ改良すれば良いとする従来型の提案もありました。非常に急進的な提案もいくつかあって、その提案を採用するにはまったく新しいプログラミングモデルを必要としました。しかしそのうちの2件の提案がIBMロチェスター研究所の目にとまることになりました。その2件の提案はiSeriesのプロセッサ用に開発していたものと非常に似た取り組みについて述べられていたからです。以下のパラグラフではこの両方の取り組みについて述べます。

シングルチップマルチプロセッサ

より多くのトランジスタを使う方法の1つにチップ上に複数のプロセッサを実装するという方法があります。最小構成のサーバの基本部分でさえもマルチプロセッサを搭載することがますます重要になっています。これは、複数のサーバを管理する複雑さとコストを低減するために複数のサーバを大規模なサーバ1台に統合したいと考えている顧客にとっては特に重要な意味を持つものです。

IBMのPower4チップは現在iSeriesで使用されていて、pSeriesでは1つのチップ上に64ビットのPowerPCプロセッサコアを2つフルに搭載しています。他のベンダーも今や似たような理由で同じ道を歩み始めています。

1つのシングルチップ上に複数のプロセッサコアを追加するという取り組みは当然のことながら2つ以上のプロセッサに拡張でき、いくつかの大学ではこれを最良の方法で実現するための研究をしています。スタンフォード大学はシングルチップマルチプロセッサ研究の先駆者の1つであり、1つのシングルチップ上に4〜16のプロセッサコアを実装した10億個のトランジスタを搭載したプロセッサアーキテクチャを提案しています。同大学が提案する設計は、複数のプロセッサが単一の並行ジョブに対して協調して動作したり、独立したタスクを実行したりするものです。

しかしながら我々はここ数年間はシングルチップ上に2つ以上のプロセッサコアが実装されることはないであろうと見ています。その理由は、放熱問題です。1つのチップに搭載するトランジスタの数が増えるにつれ、チップが発する熱の量も増大します。

大変な過熱

iSeriesをご使用のお客様は1億7400万という数字に馴染みがあるのではないでしょうか。Power4チップ上のトランジスタの数です。これだけ多くの数のトランジスタがギガヘルツの速度で動作すると大量の電力を必要とします。もう少し正確に言うと、Power4チップを1.1 ギガヘルツで動作させると約115ワットを消費します。115ワットの電力は多量の熱を発生させます。Power4チップの大きさの115ワットの電球を思い浮かべていただければ、チップがどれほど熱くなるか想像がつくでしょう。比較のため、4400万個のトランジスタを搭載したS-Starプロセッサを600 MHzで実行させてみると、わずか12ワットしか消費しません。

チップが発する熱をチップから何らかの方法ですべて逃がすことによって、チップ自体が焼けることを防がなければなりません。幸いなことにIBMは長年にわたって大変高度なパッケージング技術を開発し、チップが発する熱を放熱することができるようになりました。iSeriesとpSeriesのハイエンドモデルで使用されているマルチチップモジュール(MCM)はPower4チップ4個をパッケージ化していて、それら4個のチップが発する熱をすべて簡単に放熱できます。ただしMCMパッケージングは非常に高価なため、小型モデルでの使用が制限されています。

チップに必要な電力を抑える取り組みの1つにトランジスタのサイズを縮小するというものがあります。トランジスタのサイズが小さい方が消費電力が少ないからです。Power4プロセッサは180ナノメートルのCMOSテクノロジで作られています。180ナノメートルとはトランジスタの有効幅です。第2世代のPower4+チップは130ナノメートルのCMOSテクノロジで作られています。Power4+チップには1億8400万個のトランジスタが搭載されていますが、搭載されているトランジスタのサイズがPower4チップに比べて小さいため全体のサイズもPower4チップよりも小さくなっています(Power4チップの366平方ミリメートルに比べPower4+は267平方ミリメートル)。またPower4+チップの方が消費電力が少ない(1.2 ギガヘルツで約70ワット)ため、発生する熱量も少なく、小型モデルでも使用可能となっています。

トランジスタのサイズを小さくすると、チップ上に搭載できるトランジスタの数も同時に増加してしまうので、放熱問題については打つ手があまりなかったということにお気づきでしょうか。こうしたことから、次世代のPower5チップではPower4に比べてトランジスタの数が飛躍的に増えるということはないでしょう。

Power4チップはハイエンドのサーバ向けに設計されたものです。Power5チップの方が、ブレードサーバから最もハイエンドのサーバにいたるまで広範なアプリケーションをカバーすることになるはずです。その結果、Power5チップの設計者はPower4チップが消費する大量の電力とそれによって生じる熱を削減しなければなりませんでした。たとえばブレードサーバはパッケージングの制約から消費電力を25ワットから40ワットの範囲に制限しなければなりません。

このレベルの低消費電力を達成するため、Power5チップではその負荷に応じて「電圧アイランド」と呼ばれるチップ部分でのワット損を減らすことができました。これはIntelがPentiumプロセッサの一部で実現したことと似ています。Power5チップではその負荷に応じて20ワットから135ワットの範囲の消費電力となると予測されています。

Power5チップではトランジスタの数がPower4チップに比べて飛躍的に増大するわけではないので、1つのチップ上に2つ以上のプロセッサを搭載する余裕はありません。しかしPower5チップは別のテクニックを用いてチップあたり実質4プロセッサに相当することを達成しようとしています。このテクニックはマルチスレッディングと呼ばれています。

同時マルチスレッディング

ワシントン大学はここ数年に渡って同時マルチスレッディング(SMT)と呼ばれる先進的な提案をしています。SMTの背景にある考え方は、1つのチップ上のプロセッサハードウェアをマルチプログラミングされた作業負荷からなる複数のスレッドで共有しようというものです。ここでスレッドとは、システム中の実行可能な作業エンティティと定義され、別々の命令ストリームと考えることができます。SMTは、1つのサイクル内で複数の独立したスレッドがプロセッサの機能単位に命令を発行できるようにするテクニックです。このユニプロセッサという提案は、一度には1つのスレッドからしか命令が発行されないという伝統的なユニプロセッサアーキテクチャから生じたものです。

Power5チップはSMTに基づいた設計を特徴とし、チップ上の各プロセッサがまるで2つのプロセッサがフルスピードで動作するようなものです。Power5チップはSMTの能力を新しい回路構成によって得るのではなく、さまざまなタイプの命令を実行する役割を果たすチップの部分である既存の実行単位を、今までと違う使い方をすることにより得ようとしています。その結果、各Power5チップはあたかも4つの別々のプロセッサを持っているかのように動作するのです。アプリケーションの作業負荷によっては、Power5チップはPower4チップの4倍のパフォーマンスを達成できるはずです。

他のベンダーが考えている別のチップ設計もまたマルチスレッディングの形式を使用しています。たとえば、このテクノロジのIntel版である「ハイパースレッディング」は、チップが実行しているプログラムによっては、約20%のパフォーマンス向上を達成できると予測されています。

iSeriesをご利用のお客様にとって特に興味深いのは、Starファミリのプロセッサとそのマルチスレッディングの実装方法です。商用プロセッサにおけるマルチスレッディングが最初に用いられたのは1998年のNorthstarプロセッサです。

各Northstarプロセッサチップにはプロセッサレジスタがフルに2個搭載されていて、2つの別々のスレッドの実行をサポートしています。各スレッドには命令ストリームとレジスタ値のセットが関連付けられています。1つのNorthstarプロセッサはレジスタ2セットを使って、2つの独立した命令ストリームを同時に交互に処理します。

Northstarの設計はPower5の設計ほど大胆なものではありませんでしたが、我々のパフォーマンス測定の結果ではNorthstarプロセッサは単一プロセッサシステムに対して30%の処理スループット向上をもたらし、各チップ上で2セットのレジスタを使用することによりマルチプロセッサシステムに対しても同様の向上をもたらすことができました。しかも、チップ表面積の増加は10%以下です。

IBMにとってマルチスレッディングは決して新しい技術ではない点に注意してください。iSeriesとpSeriesをお使いのお客様は1998年以来、最新のS-Starプロセッサを含むStarファミリの全メンバーでマルチスレッディングの恩恵にあずかっています。Power5チップはマルチスレッディングを次のレベルに押し上げることをお約束します。

可用性向上のための冗長ハードウェア

IBMのオートノミックコンピューティングのイニシアティブの1つの側面にサーバに自己回復能力を持たせるという目的があります。これを達成するにはハードウェアとソフトウェアのコンビネーションが必要になります。ここで注目するのはハードウェアのサポートです。これからのプロセッサ設計の目標とするところは、障害を検知し、故障の予知さえもできるようなよりスマートなハードウェアを作ることです。

IBMメインフレームの主要な特徴の1つにその究極の可用性があります。このレベルの可用性を達成するために、メインフレームハードウェアの設計ではプロセッサチップ中のハードウェアに冗長性を持たせました。こうした冗長なハードウェアにより、プロセッサは自己検査をし、発生した障害を検知し、障害から回復することができます。

Power4チップは非常に多数の障害を検知し、その大部分から回復することができます。Power5チップでの目標はより多くの障害を検知、予知し、そこから回復することです。これを達成するためにPower5チップでは回路構成を追加して、発生する可能性のある障害の種類をより多く検知、修正できるようにしています。Power5チップの設計関係者によれば、メインフレームのチップの能力の約95〜97%で同様の障害を検知、回復できると予測しています。Power6チップではメインフレームの能力に並ぶでしょう。

ソフトウェア機能をハードウェア側に移動

チップ上にトランジスタを追加する方法としてさらに興味深くそして意見の分かれるのがハードウェアアクセラレータを使用するものです。ハードウェアアクセラレータを使用すること自体は新しいことではありません。Intel社を始めとして、さまざまなマルチメディア操作にチップベースのアクセラレータを追加するのはもう何年も行われています。オペレーティングシステムやミドルウェア中で実行中のソフトウェアのタスクにハードウェアアクセラレータを使用することはかなり新しいことです。

IBMはこうした形式のソフトウェアアクセラレーションを「ファストパス」と呼んでおり、これからの数年でPowerプロセッサに実装し始める予定です。ファストパスの考え方の背景にあるのは単純なことです。比較的少数の命令を長時間かけてプロセッサが実行しているタスクを探し出し、それらのタスクをシリコン中にハードワイヤしてしまおうというものです。たとえば、ネットワーク上でデータの読み込みおよび書き込みを行うのに使用されるTCP/IP処理などの通信タスクのいくつかは頻繁に呼び出され、プロセッサ中で多数のサイクルを占有することが多いのです。当然のことながらこのようなタスクを別の特殊なチップに実装することも可能ですが、より簡単な解決方法はそのタスクをプロセッサハードウェアに直接実装することです。

通信タスクの他にも、これからのPowerプロセッサは、たとえば、仮想メモリサブシステムを管理するタスクなどといったその他の頻繁に使用されるオペレーティングシステムのタスクを加速します。ミドルウェア機能の一部も加速化の対象となります。たとえば、DB2データベースの複数テーブル検索を加速するとレコードへのアクセスに必要な時間を大幅に削減できます。

まずOS/400およびAIXが新しいハードウェアアクセラレータの利点を利用できるはずです。Linuxプログラマなど他のプラットフォームでも新しいチップの機能を使用できるようにするために、シリコンアクセラレータへのインタフェースはすべて公開される予定です。

Powerプロセッサの設計にファストパスを使用することは、その新しいプロセッサ設計が依然としてRISC設計と呼べるのかどうかについて一部で議論になっています。このような複雑なアクセラレータ機能を追加した場合、それはもはやRISCではないと主張する人もいます。その一方で、それは単に元々のRISCの定義を拡張したものに過ぎないと反論する人もいます。どのように分類しようとも、現代版RISCプロセッサは従来のものと異なることだけは確かです。

フランク・G・ソルティスはIBMロチェスター研究所に勤務しており、AS/400およびiSeriesで使用されているテクノロジ非依存のアーキテクチャを開発しています。IBM iSeriesの主任科学者であり、ミネソタ大学コンピュータ工学科の教授も勤めています。



↑このページのトップへ
TOPPAGE

BELLDATA, Inc. Copyright reserved.