後藤弘茂のWeekly海外ニュース

突貫工事だったXbox 360と消えたXbox 1.5プラン




●消えた中間バージョンXbox 1.5のプラン

Xbox
 Microsoftは初代Xbox(Xbox 1)の後、「Xbox 1.5」と呼ばれる中間バージョンアップを計画していた。Xbox 1.5では、Xbox 1との互換性を保ちながら、CPUやGPUを強化してパフォーマンスを伸ばすプランだった。

 据え置き型ゲーム機(ゲームコンソール)は、通常5年単位で次世代機に入れ替わる。5年間はハードウェアスペックは据え置く。ゲームタイトル側は、最初の2年でコストをかけて開発の経験を積み重ね、後半の3年で収穫する。5年サイクルはゲームコンソールの不文律で、公理のようなものだ。しかし、Microsoftは、このルールを破るつもりだったことになる。

 Xbox 1.5では、Xbox 1のゲームタイトルはハードウェア互換でそのまま走り、1.5対応の新タイトルは、より高品質になるという計画だったようだ。Xbox 2相当の大きなジャンプではないが、世代途中でライバルを性能で引き離すわけだ。ソフトウェア環境の互換を保つことで、開発側の負担を減らして対応を促すストーリーだったと見られる。

 Xbox 1.5のプランについては、CPU業界ではある程度知られていた。この記事の情報の出所の1つは、ゲームとは全く関係がないCPU業界関係者だ。そこから推測すると、MicrosoftがCPU調達について打診していた可能性が高い。もっとも、その当時は、この中間バージョンがXbox 1.5ではなく、Xbox 2に当たる次期版という情報も入ってきて、混乱した。

 Xbox 1.5のプランで行けば、Microsoftは5年サイクルの常識を破り、PC的に中間ステップでもう1段ブーストするはずだった。だが、結局、Microsoftは中途半端なXbox 1.5よりも、Xbox 2(Xbox 360)をXbox 1の4年後と、前へひっぱることで、PLAYSTATION 3(PS3)に先行する道を選んだ。そのあたりの事情がどうなったのか、いつ変更されたのか、明瞭ではない。しかし、こうした計画のぶれで、MicrosoftがXbox 360開発のリードタイムを十分に取れなかった可能性はある。

●24カ月スケジュールだったXbox 360 CPUの開発

Xbox 360
 実際、IBMは、2005年10月に開催されたFall Processor Forum 2005で、Xbox 360のCPU開発はシリコン製造まで24カ月という突貫工事だったことを明らかにしている。MicrosoftとIBMの間で契約が結ばれたのは2003年夏から秋頃で、そこからダッシュで開発されたことを意味している。

 通常、CPUの方がGPUより設計に必要なリードタイムは長い。GPUは18カ月から24カ月でロールアウトできるが、カスタム設計のCPUはそれ以上の期間が必要となる。Xbox 1ではCPUが楽だったのは、できあいのPentium IIIを使ったからだ。自社仕様でカスタム設計するとなるとそうは行かない。特に、CPUはGPUと比べて、物理設計にかかる時間が格段に長いため、容易ではない。しかし、Microsoftは常識を破るGPU並のペースで、カスタムCPUを設計することをIBMに要求したようだ。このことは、Xbox 360 CPUには、ベースとなった設計データベースがあったことも意味している。

 Xbox 2のウワサが聞こえ始めたのは2003年の中盤頃から。最初は、Xbox 1.5の情報と入り交じりノイズが多かったためこのコラムでもかなり混乱した。しかし、2003年の終わり頃には輪郭が見え始めた。おそらく、実際に明瞭なプランでスタートしたのも2003年の中盤から後半にかけてだったと見られる。

 Xbox 360開発の時間的な余裕は、初代Xbox 1のそれよりも長い(Xbox 1は'99年12月に正式に計画が開始され、2年後にはもうマシンを出してしまった)。しかし、開発の作業量を考えると、今回の方が、ずっときつい作業だったはずだ。

 以前の記事で指摘した通り、Microsoftは今回、XboxをPCゲーム機というコンセプトから引き離した。そのため、ハード、ソフトともに、開発量が格段に増えた。例えば、CPUは完全にMicrosoft専用の設計となっており、GPUもPCグラフィックスから離れた部分(eDRAMなど)が多い。ソフトウェア層では、OSをカーネルから起こしており、GUIなど新しいレイヤも増えた。プログラミングでは、カスタム版DirectXを提供するだけだったXbox 1から踏み出し、包括的なプログラミングフレームワーク「XNA」構想を提唱した(実際には、実現しているのは最初のステップに過ぎない)。

 つまり、2代目のXboxでは、スケジュールの余裕はやや増えたものの、開発の作業量自体も格段に増えて、相殺されてしまったわけだ。開発リソースも増やされたとは思うが、常識的に考えれば、この期間でXbox 360クラスの製品をハードソフト含めて完成させるのは、かなり無理がある。もっとも、PS3のGPUも同レベルの突貫作業なので、あまりライバルのことは言えないかもしれない。

●甘かったXbox 360の熱設計の見積もり

巨大なXbox 360のACアダプタ
 今回、Microsoftは、明らかにXbox 360の熱設計の見積もりについて甘すぎた。これは、Xbox 360の開発を急いだしわ寄せだと見られる。このスケジュールだと、筐体設計は、シリコン検証より前に走らせる必要がある。そのため、事前の熱設計の予測が重要となる(PS3はCellが完成したあとに筺体をデザインしたと見られる)。

 Xbox 360の熱設計の甘さを象徴するのが、巨大な外付け電源だ。Xbox 360では、当初は電源を内蔵しようとしていた。これを外に出したのは、もちろん消費電力の増大のためだ。熱源である電源を外に出せば、熱量が減ると同時に筐体内のスペースが空く。一石二鳥で廃熱が容易になる。

 Microsoft関係者は、2005年春のE3時、電源を内蔵するか外に出すかどうかの選択で悩んだことを明かしている。実際、E3時点のモックでは、迷ったすえに外に出した形跡があった。電源を外付けにした結果、Xbox 360はスマートな筐体に巨大で不格好な箱(電源)をくっつける羽目になってしまった。

 Xbox 360の電源が巨大なのは、発熱によるPL(Product Liability)問題発生を恐れているからだ。電源が本体に内蔵されている場合は、廃熱は比較的容易だ。ユーザーは、ゲームコンソール本体は、比較的余裕のある場所に設置する。そのため、廃熱は容易で、問題は起きにくい。

 しかし、いったん電源を外に出してしまうと、そうは行かない。ゲームコンソールをラック置きする場合は、電源は雑誌の下のような狭い場所に置かれてしまう場合が多い。そうなると、過熱による回りへの影響を考える必要がある。本の変色や、最悪の場合は、過熱発火事故が発生する可能性がある。

 Microsoftとしては、電源を外に出すなら、PLを考え、狭い場所に押し込まれても大丈夫(あるいは押し込める気にならない)な電源にする必要があると考えたと見られる。もちろん、他にもやりようはあるが、手っ取り早いのは、Xbox 360の取った方法だ。家電製品の経験が浅いMicrosoftとしては、さじ加減がわからず、慎重を期すべきと判断したのだろう。

 ちなみに、任天堂ゲームコンソールは電源を外にしているが、同社のマシンの場合、床置きされるケースが多い。筐体もラック置きはあまり考慮しないデザインになっている。そのため、問題にならないと言われる。

 いずれにせよ、不格好なXbox 360の電源は、Microsoftの熱設計の甘さの象徴で、Xbox 360チップセットが微細化して消費電力が下がると、筐体内へ戻り、消えてゆくだろう。それまでは、Xbox 360の突貫工事の象徴として残ることになる。

●CPUコアが2個のプランもあったXbox 360

 Microsoftは、今回Xbox 360では、デベロッパにまずMacintosh G5ベースの開発キットを渡した。そのため、デベロッパは、かなり早期からXbox 360を想定した、親和性のある開発ターゲット環境を手に入れることができた。

 そこまではよかったが、実機をベースにした最終のキットに移ってからは問題があった。開発者の手に渡ったキットでは、ターゲット周波数に達しないものもかなり混じっていたという。周波数だけではない問題もあった。開発サイドの苦労が大きいことは、クオリティを重視する日本系デベロッパのタイトルが次々にずれ込んだことでもよくわかる。

 開発キットの一部でクロックを落とした理由として想定される要素は熱だ。クロックを落とせば、消費電力は抑えられ、熱暴走の危険も減る。

 トランジスタ規模と動作周波数を考えると、最大の熱源は、3.2GHz動作でトリプルコアのCPUだ。ここを抑えれば、熱を抑えることができる。

 コア数で言えば、もともと、Microsoftには、CPUコアを2個にするプランもあったという。Xbox 360 CPUの設計を見ればわかるが、CPUコアは全く同一のものを3個並べており、2コア構成のバリエーションを設計することは、比較的容易だ。2コアと3コアの両方を設計しておいて、どちらかを選択するという手段を取ったかもしれない。また、Microsoftは周波数を3.2GHzより下げることも考慮はしたという。

 しかし、あるMicrosoft関係者は、Xbox 360 CPUでは、3個のCPUコアで3.2GHzでなければならない理由があったと言っていた。リニアにゲームパフォーマンスに影響する周波数はともかく、CPUコアが3個必要と考えいてることは、非常に示唆的だ。MicrosoftはそれなりにCPU負荷の高い処理を、ゲームの背後で走らせることを考えている可能性が高い。

●マルチコアはゲームとサービスのCPUコアを分離するため

 MicrosoftがXbox 360にマルチコアCPUを採用した動機はわかりやすい。ゲームプログラムにメインのCPUコアのユーセージをまるまる独占させるためだ。もちろん、ゲームプログラムをマルチスレッド化して、セカンダリの2個のCPUコアもゲームに使うことも想定している。しかし、もっとも重要なポイントは、OSやネットワーク、オーディオといった処理を、メインCPUコアから追い出すことにあるようだ。ちなみに、Cellのマルチコアも、同様にゲームプログラムにコアを独占させることを前提に発想されている。

 Xbox 360 CPUでは、ゲームデベロッパは、メインCPUコアのパフォーマンスをフルに使うことができる。OSやネットワークに、CPUパフォーマンスを想定外に食われる心配がない。デベロッパフレンドリと、リッチなサービスの両立を目指すことを考えた構成だ。Microsoftは、ゲームプログラムに影響を与えることなく、バックグラウンドのサービスをリッチにすることができる(メモリやI/Oのネックを別とすれば)。もっとも、通常の処理なら2コア程度で十分なはずで、セカンダリのCPUコアを1個ではなく2個にしたということは、ある程度負荷の高い処理をサービス側に想定していることになる。

 そうした理由から、Microsoftはトリプルコアを堅持したため、CPUは高消費電力となった。もっとも、Xbox 360 CPUはクロックゲーティングによって消費電力のアクティブ成分を抑える仕組みを取っている。インストラクションがアクティブになるまでは、各パイプラインはクロックゲーティングによってそれぞれシャットダウンされている。デフォルト状態がシャットダウンであるため、各CPUコアのユーセージが低い時は、それなりに消費電力は下がるはずだ。

 また、半導体チップのパフォーマンスや熱暴走では、チップ全体の消費電力より、ホットスポットの熱が問題になる。つまり、CPUのダイ(半導体本体)上の局所的なエリアの温度上昇が、動作の制約となる。特に、現在のCPUは、単位面積当たりの電力である電力密度が上がっているため、ホットスポットはよりクリティカルになっている。局所の熱が規定値を超えやすいため、熱暴走はより起きやすい。

 Xbox 360 CPUについては、状況がわからないため推測しかわからないが、一般論で言えば、現在のCPUは、ホットスポットの温度上昇をうまく検知できないと熱暴走する危険は増えている。

 ソフトウェア中心の企業であるMicrosoftにとって、ハードウェア設計は経験が浅い。特に、Xbox 360は、半導体を自社で管理することで、微細化によるコストダウンを想定。そのために、高集積で規模の大きい=消費電力の多いチップを搭載した。また、カスタム設計によって、周波数はPCハイエンドCPU並に上げている。それだけ消費電力の問題は厳しくなったことに、まだ対応しきれていない雰囲気がある。

□関連記事
【12月15日】スタートでふらついたMicrosoftの「Xbox 360」
http://pc.watch.impress.co.jp/docs/2005/1215/kaigai229.htm
【10月28日】【海外】Xbox 360 CPUの鍵を握る超高速FSB
http://pc.watch.impress.co.jp/docs/2005/1028/kaigai220.htm
【9月9日】【海外】Xbox 360コアとCellの類似性
http://pc.watch.impress.co.jp/docs/2005/0909/kaigai210.htm

バックナンバー

(2005年12月27日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2005 Impress Corporation, an Impress Group company. All rights reserved.