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

マルチOSのためにメモリアーキテクチャが限定されたXbox One

Xbox Oneのチップの概要が8月に発表へ

Hot Chipsの会場となるStanford大学のMemorial Auditorium_2

 Microsoftは次世代ゲーム機「Xbox One」のチップの概要を、来月カンファレンスで明らかにする。米スタンフォードで8月25~27日に開催されるチップカンファレンス「Hot Chips」で「XBOX One Silicon」と題した講演を行なう予定だ。講演者としてアナウンスされているのはJohn Sell氏とPat O'Connor氏。John Sell氏は、元3DOのCTOで、AMDやAppleにも在籍した人物だと見られる。Pat O'Connor氏は、Microsoftによる買収が発表された3Dセンサ元Canestaのエンジニアリング担当の副社長だった人物と見られる。

 Xbox Oneの中核APU(Accelerated Processing Unit)は、AMD設計で28nmプロセスで製造される。CPUコアはAMDの省電力コア「Jaguar」が8コア、GPUコアはGCN(Graphics Core Next)アーキテクチャで12 CU(Compute Unit)、768 MADユニット。メインメモリはDDR3で8GB容量でDDR3。そして、通常のAPUとの最大の違いは、APUの内部にGPUコアに直結した32MBの“ESRAM”を備えることだ。このESRAMは、同様にJaguarとGCNを使うPS4のAPUとの最大の違いとなっている。

 Xbox OneのDDR3メモリはx256インターフェイスをオンマザーボードで2,133Mbpsで駆動することで68.3GB/secのメモリ帯域と見られている。これだけと見ると、x256インターフェイスでGDDR5を5.5Gbpsで駆動するPlayStation 4(PS4)の176GB/secのメモリ帯域と比べるとかなり貧弱だ。しかし、Xbox Oneは内蔵のESRAMで100GB/secメモリ帯域を稼ぐため、合計ではPS4に匹敵するか、レイテンシを考えればそれ以上のメモリパフォーマンスを備える。

DRAMのバス幅のロードマップ
PDF版はこちら

 Microsoftは、こうしたXbox Oneのチップアーキテクチャの概要とその背景をHot Chipsで明らかにすると見られる。しかし、今の段階でも、Microsoftがこうしたアーキテクチャを取った理由は容易に想像ができる。それは、MicrosoftがXbox Oneで、マルチOSアーキテクチャを採用したからだ。

メモリ量が必要なMicrosoftの選択

 ストーリーは極めて明瞭だ。Microsoftは仮想化を使い、複数のOSを同時に走らせることができるアプローチをXbox Oneで採った。Xbox OSと呼ばれるゲームOSのバックグラウンドで、Windows KernelのOSが走る。薄いHypervisor層が両OSをバーチャルマシンで共存させるアーキテクチャだと見られる。E3でも、Xbox OneではゲームOSがクラッシュした時に、Windows Kernel側にスイッチするなどの場面が見られた。Microsoftは、5月のXbox Oneの発表の際に、これを3つのOSが走ると形容している。

 このアーキテクチャは、ゲームプレイ中でも、他のアプリケーションやサービスの迅速な切り替えやバックグラウンドタスクを可能にするために採用された。Xbox Oneを、ゲーム機を超えるマシンとするために、必要とされたのが、バーチャルマシンによるOSの切り替えだ。しかし、OSを並列に走らせるために、Microsoftはメモリ量とCPUコア数を必要としたと見られる。結果として、メモリ量を経済的に確保しつつ、メモリ帯域を広くするチップアーキテクチャを取る必要が生じた。それが、ESRAMという選択肢となったと見られる。

 MicrosoftはXbox Oneにシステムの予約領域だけで、かなりのメモリ量を確保しなければならなくなった。現在、Xbox Oneについてはメインメモリのうち3GBがシステム予約領域だと報じられている。最終的に3GBになるかどうか(MicrosoftはSCEと比べるとOSのフットプリントを小さく抑えることが上手い)はともかく、シングルOS(フリーBSDベース)のPS4と比べると、より多くのメモリ領域をOSが必要とすることは確かだ。Hypervisorの占有するメモリと、Windows Kernelの占有するメモリ、そしてWindows Kernel上でさまざまなタスクを走らせるためのメモリが必要となるからだ。

8GBのメモリを積むための選択

 MicrosoftはXbox Oneでは明瞭に4GBをはるかに超えるメモリ量を必要とした。そうでなければ、Microsoftが目指すゲーム機を超える家庭のエンターテイメントセンターは実現できない。PCではDDR3メモリは依然としてそれほど高価格ではないので、メモリ量を8GBに増やすことは容易く見える。ところが、ゲーム機の場合は状況が異なる。

 ゲーム機は通常メインメモリに高速なGDDR系メモリを使う。ところが、高速版のGDDR5はコストが高くつく。時期や速度によって異なるが、コモディティのDDR3メモリと比べると、GDDR5は同容量品で2倍以上の価格が普通だ。そのため、GDDR5で容量を増やすことは、コスト的にはリスクが高い。

 PS4は8GBのGDDR5を積んでいるが、これは当初は4GBの予定だった。それが、大容量メモリを求めるソフトウェア開発現場の声と、Xbox Oneの8GBという情報に引っ張られて8GBへと倍増した。ソフトウェア開発は容易になったものの、ハードウェアコストは膨れ上がった。

 現在、PS4はAPUの256-bitのインターフェイスに、16個のx16 4G-bit品のGDDR5を接続していると見られる。GDDR5は、ちょうど2G-bit品から4G-bit品への転換が始まったばかりで、それによって16個で合計8GBの構成が可能になったと見られる。GDDR5はx16とx32の両対応なので、将来的に、GDDR5の8G-bit品が出るとx32で8個の構成へと切り替えることができる。ただし、DRAM自体の微細化が行き詰まると、GDDR5の大容量化も止まる。

GDDR5の大容量化

 DRAMのコストは、ゲーム機にとってかなりやっかいだ。DRAMチップの個数を減らすことが難しいため、ゲーム機のライフサイクルの後期になるほどコストに響くからだ。これまでのゲーム機の場合、互換性のためDRAMのアーキテクチャも同一に保つ必要があり、そのため、DRAMチップ個数をなかなか減らすことができない。

ソフトウェアアーキテクチャがチップ設計に影響

 こうした事情があるため、通常の選択なら、コスト面から8GBのGDDR5メモリは取らない。ソニー・コンピュータエンタテインメント(SCE)の選択は、かなりアグレッシブだ。もっとも、GDDR5を供給すると推測されるSamsungとかなりディスカウントしたコントラクト価格の契約を結んだ可能性もあるが。

 一方、Microsoftはこうした状況を考え、メインメモリを高速なGDDR5にして8GBにするよりも、メインメモリはDDR3で安価に容量を稼ぐ方法を選択したと見られる。その上で、ゲーム機として必須の広メモリ帯域は、APUに内蔵するメモリで稼ぐ方式を取ったと推測される。難点は、言うまでもなく、メモリの分断だ。PS4は同一メモリプールで8GBの広帯域メモリを備える。それに対して、Microsoftは、低速で大容量のメモリと、広帯域で極めて少さな容量のメモリに分断した。

 Microsoftとしては、こうした複雑なアーキテクチャを取っても、開発ツールやライブラリでカバーできると踏んだと見られる。逆を言えば、メモリアーキテクチャの複雑化よりも、メモリの大容量化と、それによるバーチャルマシンでのマルチOSの方を重視したということだ。

 こうして見ると、Xbox OneとPS4のハードウェアアーキテクチャの違いの背景には、こうしたソフトウェアアーキテクチャがあることがわかる。Microsoftのメモリアーキテクチャの選択は苦肉の策ではあるが、必然的な選択だ。これが2015年だったら、広帯域のスタックドDRAMを使う選択肢もあったが、現状では選択肢がない。

 興味深いことは、Hypervisor上でゲームOSと汎用OSを共存させるというアイデアは、もともとはSCEのものだったことだ。PS3はオリジナルプランでは、薄いHypervisor上で、ゲームOSとLinuxを走らせる予定だった。いずれにせよ、結果として今世代では、ゲームプログラムにオープンなメモリ量はPS4の方がどうしても多くなる。ただし、これが、どれだけの違いを産むのかは、まだわからない。

(後藤 弘茂 (Hiroshige Goto)E-mail