山田祥平のRe:config.sys
【特別編】Instantには実現できなかった「InstantGo」
~その困難に果敢にチャレンジした「VAIO Duo 13」
(2013/11/30 06:00)
ソニーのVAIO Duo 13は、現時点で世界で唯一のWindows 8.1 64bitが稼働するInstantGo対応機だ。今回は、長野県安曇野にあるソニーのVAIO&Mobile事業本部を訪ね、このプロジェクトに関わった笠井貴光氏(Duo13プログラムマネージャー)、安藤徹次氏(InstantGoソフトウェア統括)、田中義幸氏(Duo13ソフトウェアリーダー)、土田敏正氏(Duo13電気リーダー)、増田健氏(InstantGoハードウェア統括)らに話を聞いてきた。
InstantGoは、Windows 8の登場とともに鳴り物入りで登場した機能で、瞬時にスリープから復帰し、PCのオンオフを意識せずに使える上、スリープ中にも通信を継続するなど、AndroidやiOSといったモバイルOSでは当たり前の機能をWindows PCに実装しようと目論んだものだ。だが、OS側にはこの機能が実装されたものの、それに対応するPCはまだまだ限られている。特に、Windows 8/8.1 64bitが稼働するPCとしては、現時点でソニーのVAIO Duo 13が世界で唯一の装置となる。
この10月8日、ソニーはVAIOの2013年秋冬モデルの発表会を開催した。その場において、同社業務執行役員SVP VAIO&Mobile事業本部本部長の赤羽良介氏は、スマートフォンやタブレットの快適さをPCにもたらす新しいカタチをアピールし、ノートのカタチを180度変えていくと宣言した。そして、この製品がInstantGoを実装するために、実現には並々ならぬ努力をしたことを明らかにし、Microsoftとの協業、Intelとの協力関係、さらには、デバイスパートナーのサポートを通じて、ようやく実現できたとした。
このInstantGo。機能そのものは、ずっと「Connected Standby」という名前で紹介されてきた。Windows 8.1がRTMした今なお、さまざまな部分にこの名前が残っているし、日本語版では「コネクトスタンバイ」という表記も残っている。
――ConnectedStandbyからInstantGoに名前が変わったのは、この機能の位置付けにちょっとした変化があったのでしょうか。ずっと繋がっているという意味合いから、すぐに使えるという意味合いに変わった印象を受けます。
笠井氏:InstantGoという名前はMicrosoftが付けたものですから真意は分かりかねますが、推測するに、待つという受け身的な意味合いから、能動的にすぐに使えるという印象を持ってほしかったのではないでしょうか。本来、PCは何でもできるはずだったのに、スマートフォンやタブレットの登場で、そうではなくなってしまっている面があります。その機能的に不足している部分を補完する機能がInstantGoだといえます。
――実装のためには、かなりの時間を要したと聞いています。
増田氏:追い込みの作業は3カ月以上かかっていますね。米オレゴン州ポートランドにあるIntelのサイトにカテゴリごとに総勢で10人くらいが缶詰になって作業しました。
笠井氏:実際には2011年ごろから入れ替わり立ち替わりといった状態でした。この年は9月に、米カリフォルニアのアナハイムでMicrosoftがBuildカンファレンスを開催し、Windows 8 Developer Preview版が公開されました。そのタイミングですね。
――当時、カンファレンスのブレークアウトセッションで、Connected Standbyについての説明を聞きました。当時の説明では、「Power Engine Plugin」と呼ばれるパワーマネジメントのミニポートが用意され、それがACPIのファームウェアをコントロールするということでした。
笠井氏:その時点で、VAIOの開発フェーズに併せて将来のことを考えた場合、スマートフォン、タブレットで一般的になっているAlways On/Always Connectedという普通の便利さがPCにもあるべきだと考えたんです。だから、どうしてもVAIO Duoにこの機能を入れたかった。ですから、実装に入る前の段階から技術的な案件を考え、仕様面で必要なことなどを洗い出しました。個々に設計をやっているので、関係各方面で課題を持ち寄り解決していくという感じですね。
実は、InstantGoの定義ははっきりしていない。VAIOチームに聞いても、定義をどうとらえるかが明らかにならないのだ。ロゴを取得するための要件をチェックしてみても 、Connected Standby機については“~でなければならない”という記述が随所に散在しているだけで、よく分からない点が多い。
また、かろうじて、同機能の解説ドキュメントがMSDNの公式ページに存在する。これを読んでも、ロゴ要件にはConnected Standbyという表記になっているInstantGoの定義が不透明だ。まさに、VAIOチームが暗中模索で取り組んだ様子が想像できるというものだ。
具体的には、プロセッサがACPIスリープ、つまりS3やS4状態に入ったときに比べて、ずっと速く復帰できるとされているだけだ。また、Wi-Fiやモバイルブロードバンドに繋がった状態、正確には以前の接続を覚えていてそこに復帰するためのNetwork List Offload(NLO)が利用され、ユーザーは接続完了を待つ必要なく、すぐに作業を再開できるとされている。また、メールの到着やSkypeのコールをスリープ中にも伝えることができるなど、現象面での解説しか為されていないというのが実情だ。おそらくは、このドキュメントの中の、ここを読むと、おぼろげながらハードウェアの満たさなければならないおおまかな状況が見えてくる。
また、これらのドキュメントでは、2014年1月1日以降にInstantGo対応を称するには、新たに2つの要件が追加されるとされている。
1つは、ディスプレイの実解像度(ネイティブ解像度)で6時間のビデオ再生が可能であること。もう1つは、冷却ファン付きシステムの場合は、そのステータスをOSに対してレポート可能であるようにすることとなっている。
――そもそもInstantGoの明確な定義はないのでしょうか。
笠井氏:重要な要素としては、スリープ中にネットワーク接続状態で、16時間でバッテリの消耗を5パーセント以内に抑えること。さらに300msでウェイクしなければならないということです。また、プライマリストレージはSSDでなければなりません。ですから、バッテリ 消費電力が少ないプロセッサの方がやりやすいというところもあったのでしょうね。
増田氏:スピンドルのあるストレージを内蔵しているものはInstantGoを名乗れないですね。フォームファクタ的にInstantGoと親和性が高いものから対象になっていったようですよ。いわば、寝ているというよりも、1つのOSの動作のモードとして捉えればいいと思います。具体的にはディスプレイが消えているときのモードで、ローパワーなアイドル状態です。
安藤氏:OSからすれば、画面が消えていればInstantGoの状態です。ユーザーからの見え方としては、画面は消えていますが、音楽を再生しているとか、ネットワークが繋がっているかなどの状態に応じて、システムの状態は違います。
増田氏:いずれにしても、OSとしてスリープ時にはデスクトップアプリを動かさないようにすることは決まっています。
笠井氏:InstantGo機では画面を消した状態では、音楽再生はできますが、それ以外のアプリケーションの実行はできません。。
田中氏:さらにユーザーがInstantGoを無効にすることはできません。ハードウェアでの省電力はリファレンスを作り上げるところから始めたのですが、ソフトウェア側でもアンチウィルスソフトなどが実行されることで、電力消費が多くなってはまずいので、そうしたメーカーに対しても、早い時期から共同作業を行ない、電力消費を抑える実装を実現しました。つまり、いいかげんなアプリを書いてしまうと、InstantGoの要件が達成できなくなるんです。
例えば、ダウンロードなどでネットワーク上にアクセスしている場合は、即座にはスリープせずに、セッションを維持しながらある程度の時間は通信を続けるといったことも行なわれます。
――他社からは16時間で消費を5%に抑える要件は、バッテリさえ大きくすれば実現できるという話も聞きます。しかし、それによって筐体が重くなるのでは意味がないという話も聞きますが、そのあたりはどうなのでしょうか。
笠井氏:どういう商品を作るかということ、そこが重要なんです。モバイルPCにおいて、薄さ、軽さを優先しすぎて、バッテリ容量を抑えざるをえなくなって、結果的にバッテリ駆動時間が犠牲になってしまうのでは意味がありません。バッテリ駆動時間というのは本当に重要な要素で、長時間使えるというのは大きなユーザーメリットになります。軽く薄くすることや、機能を実装するということだけが目的になってはならないんです。そうすると解釈が変わってくるじゃないですか。
VAIO Duoは、PCとしてのキーボードを備え、さらにタブレットモードでも使えます。そして、PCとして必要なパフォーマンス、機能に加えて軽さも重要視したプラットフォームです。いくら機能面ではPCが優勢でも、スマートフォンやタブレットとカタチで比べたときの重要なユーザー体験がなければ意味がありません。それを実装することが必要です。必要なものを入れたうえで、いかに軽くするのか、何を大事にして物を作るかで観点が変わってくるんじゃないでしょうか。
――それぞれのアプリの行儀のよさが影響してくるということですね。
田中氏:ただ、デスクトップアプリ系の挙動については、まだ、はっきりしない点も少なくありません。とりあえず、今のところは、プッシュを受けられるものはストアアプリに限定されていますね。デスクトップのカーネルレイヤーとしては、セッション0レベルのサービスがギリギリ動いているようです。ユーザーに対して画面を見せるものなどは完全に寝てしまいます。アプリから見るとS3のステートにいることになってしまうんです。
でも、ストアアプリが動ける余地を与えているんです。ストアアプリはアクティブでないときにもバックグラウンドで動くようになっています。もちろん、それを宣言したアプリに限定されますが、裏でライブタイルなどの更新を行なうのです。前面にいないときにもアクティブになっては眠ることを繰り返します。また、ロックスクリーンでの通知もあります。それを全部合わせても1秒もかかりません。そこは、OS側でものすごくコントロールしています。
安藤氏:Microsoftから、Windows Push Notificationサービスが提供されていて、アプリの開発者がそれを使えるようになっています。そのサービスによって、InstantGoでの待機時にプッシュ通知を受けることができます。ただ、InstantGoの電力消費に大きな影響を与えないように、プッシュ通知を受けるアプリが使用できるCPU時間やネットワーク帯域は、OSによって制限されていて、電力消費に配慮した設計がなされています。
――ミュージックアプリで音楽の再生が続くようなことは、InstantGoでは起こらないのでしょうか。
安藤氏:音楽の再生はInstantGoの最も低い電力状態とは微妙に違いますね。音楽再生ができる最低の電力で動くように実装されています。それぞれのサービスの状態に応じて最も低い消費電力になるように実装されているということです。
デバイスごとに最適化したVAIO Duoへの実装
――Windows 8と8.1では、InstantGoに関する規定などは変わってきているのでしょうか。そして、実装にあたっては、何がどのように難しかったのでしょうか。
田中氏:HaswellはWindows 8.1でInstantGoを正式にサポートするようになったわけですが、内容的には、それほど大きくは変わっていません。
笠井氏:いずれにしても実装は非常に難しかったです。フル充電のバッテリで320時間をスリープ維持、つまり16時間で5%のバッテリ消費という要件クリアは単純に考えればバッテリを大きくすればすみそうなものですが、それではただ分厚くて重いセットになってしまい商品として成り立たないんです。ですから、いかに待機電力を抑え、必要なバッテリ容量を積むか。そのほかの、薄さ、軽さ、機能とのバランスをとったた設計でなければならず、普通にやったら商品にならない側面もあります。各社、InstantGOの実装には、たいへんな苦労をされているようで、いまだUプロセッサでInstantGo対応機が発売されていない事実があります。
――具体的には何が難しかったのでしょうか。
安藤氏:InstantGoでは300msで復帰しなければならないのですが、ドライバの実装を1つ間違うと、簡単に秒単位で違ってくるんです。
土田氏:測定するたびにばらつきもありました。
笠井氏:復帰時間でいえば、2~3秒からスタートして、最終的に270msくらいに収まったんじゃないかな。復帰よりも、むしろ、InstantGoのステートに入ること自体で非常に苦労しました。
土田氏:スリープに入れて復帰させるだけは簡単にできたんです。ただ、Haswellの場合、いちばん深い眠りに入るとC10になるんですが、なかなかそこまで入れないんです。そこまで入ると消費電力が100mWくらいとなりますが、最初はどうしてもC10まで落ちませんでした。その何倍、何十倍の電力を消費していたんです。でも、InstantGoでは、いちばん低いときの電力が勝負となります。
C10ステートはHaswellで新たに追加された深い省電力ステートだ。いわばコールドリセット相当といってもいい。しかもPCはプロセッサとチップセット以外にもさまざまなデバイスで構成されている。
それらのデバイスを正常に機能させて瞬時にまた元の深い眠りにつかせなければならない。C10ステートでは45mW程度しか電力を消費しないとされているが、そこは一筋縄ではいかないわけだ。
――デバイスごとの最適化が必要だということですね。例えば、どこかのベンダーがIGZOパネルで同じことをやろうとした場合、同じようにデバイスドライバをチューンアップする必要があるといったことでしょうか。
笠井氏:その通りです。これは、全てのデバイスが深いステートに入らないと実現できない値です。でも、それを妨げている犯人がなかなか分からないんです。もちろん通常の機能としての動作をきちんとさせなければなりません。その時に消費する電力が重要なのです。でも、実装当初は、機能として正常に動いていないから電力が大きくなっているのかどうかも分からないわけですよ。
たとえハードウェアの仕様をIntelが定義したとしても、実際のデバイスベンダーにそれを伝える場合に足りない情報もあって、期待動作と電力を満たすための追加仕様を定義したりする必要もありました。
さらに、超解像技術の“X-Reality for mobile”や、ソニー独自のデジタル信号処理技術の“ClearAudio+モード”など、ソニー独自のテクノロジーについても見直しが必要になりました。
増田氏:これら各種のデバイスをデバッグしていって、弊社の期待通りに動いていないと、ベンダーのところにとんでいって修正することを繰り返すのです。そして、ロジックなどを直してもらいます。
笠井氏:実は、当初はあまり協力的でないベンダーも正直ありました。我々が、Microsoftの予定よりも早く走り始めてしまったからという経緯もあります。でも、こうして最初にできたのは我々が諦めなかったからです。最初からやると言い続けて、なんで、あいつらこんなことをやっているんだとも言われました。
でも、ひたすら走り続けていたら、ちょっとずつ、MicrosoftやIntelをはじめ、みんなが応援してくれるようになりました。最終的にはベンダー各社には多大な協力を頂き世界初の実装を実現できたことを大変感謝しています。
電力削減を実行するためには、多くの構成要素があります。システムトータルで見ると、Intelプロセッサとチップセット、その他を構成するデバイス、システムを動かすためのソニー主導の回路等、部品点数にして約2,000点、抵抗1つとっても500点近くあります。
これらが消費する電力を1つずつ削減していくのですが、全ての回路担当者が、主要ASICはもとより、抵抗1点1点全ての回路部品の漏れ電流をチェック、是正しながら作りあげたのです。本当に気の遠くなるような地道な作業の繰り返しでした。
大事なのは16時間で5%という規定がユーザー体験上、きわめて重要な値であるということです。ただ黙っていてそこに入るのではありません。その枠の中でちゃんと意図通りに機能を動作させなければならないのです。
安藤氏:新しいテクノロジーでは、どこに不具合の原因があるかを類推するのがたいへんであることがおおいです。ソニーとMicrosoft、デバイスベンダーの3者でデバッグするなどしても、ドライバ、ファームウェア、BIOS、回路などいろいろな要因を疑い、調査は手探りな状態が続きました。
――今後、InstantGOをPC業界に広げ、普及させるためには何が課題となりますか。コスト的にはどうなのでしょうか。
笠井氏:省電力デバイスを使わなければならないので、デバイスコストの点では若干不利になります。VAIO Duo 13は、お客様に提供する付加価値を重視する、フラグシップモデルなので採用できたという面もあります。これからは、これを普及価格帯まで下げるための努力が重要になってきます。ただ、実装が難しいので、開発拠点への展開方法含めて検討をしていく必要があります。
InstantGoでは、デスクトップアプリは完全に停止する。ただし、ストアアプリのうち、バックグラウンド動作を宣言したものについては、そのアプリが停止した状態でも、必要な動作をOSが代替して行なう。それをInstantGo内で30秒に1度繰り返しては眠りにつく。
――InstantGoで、できそうでできないことはありますか。
田中氏:例えば、Wake On LANが動きません。InstantGoの状態から、別のPCからのなんらかのトリガーで起きることはできないんです。ただ、トリガーの種類によっては抜け道も用意されてはいますが、マジックパケットを受けて起きるようなことはできません。
笠井氏:新しい技術を実装するにあたり、最初から理想が100%実現することばかりではないと考えています。
ですから、不足個所については、引き続き、どう進化させるか考えていきたいですね。その一方で、今、実現できてることだけでも、お客様はシャットダウンなどの電源のオン/オフといったことを考えなくてもよくなるわけじゃないですか。
すぐに使えるというのは我々の商品作りの要素として絶対に必要なんです。機能の実装が目的じゃありません。このVAIO Duo 13という商品で必要だと思っていることとしては、クリエイティブな価値を提供するタブレットモードです。そこで、ペンPenを用いてアイディアをすぐに書き留めるようなことですね。それを実現できるのがたまたまInstantGoだったということです。
これは作る商品によって違ってきます。例えば、プッシュのあり方については、これからOfficeアプリやエンターテインメントでどう進化していくか、業界動向を注視しながら、更なる魅力創出につなげていく必要があります。
正直、InstantGoは、それだけで世の中が変わるような技術ではないんですよ。重要な体験を実現するための1要素にすぎません。でも、PCの正統進化としてあるべき姿であると考えています。あまり言いたくありませんが「やるなら今でしょ」って感じかな。
スマートフォンやタブレットができる前は、ビジネスでもエンターテインメントでもPCしかなかったんですが、今は違います。PCの有利な点は、そのパフォーマンスや、キーボードがあり圧倒的に生産性で有利なところなんですが、ビジネスにおいてもPCが担ってきた役割がタブレットに置き換わる動きがありますよね。手軽で、起動が速いとか、バッテリ駆動時間が長いとかといった理由からです。
PCのいい部分をさらに伸ばしながら、スマートフォンやタブレットでできる利便性を実現し、相乗効果でPCの価値をより高める技術要素がInstantGoです。消費電力が高いPCでは、難易度が高いからといってチャレンジしないわけにはいきません。
――最終的に、Haswellのリリースとほぼ同時、2013年6月に未だ他社が出せていないIntantGoを世界初で実装したDuo13を発売しました。このスケジュールは予定通りでしたか。
笠井氏:Haswellのタイミングに合わせることを目標としていましたが、予定通りドンぴしゃで実装することができました。技術難易度に対して、我々の技術力を全力でつぎ込んでギリギリだろうと読んでいました。そのタイミングで、ソニー以外はどこもできると思っていなかったでしょうね。
――現時点ではInstantGoをサポートする唯一のリファレンス機ということになりますね。VAIOチームは「こうなるはず」を前提に、リファレンスなしで、この機能の実装に挑んだわけですが、これから他社がキャッチアップするには、やはり、まだ時間がかかるのでしょうか。やるとすると、VAIO Duo 13のデッドコピーに近いものになるという話も聞こえてきます。
笠井氏:Intel、Microsoft、部品ベンダー各社と協力しながら商品化を実現したわけですが、協力しながらリファレンスを作ったという意味で、VAIO Duo 13のデッドコピーになると表現されているのであれば本当でしょうね。リファレンスがあるからできるのであって、ないからこそ、我々はものすごい苦労をしたわけです。土日もなく、ゴールデンウィークもなしですよ。
実装に当たっては、米国のIntelや、台湾、中国、イスラエル等の多くの海外部品ベンダーとのコミュニケーションが必須でした。毎日、時差を埋めるために朝の6時に電話会議です。あるいは夜遅くです。これを日々繰り返しながら完成させました。
安藤氏:我々は、Intel のアーキテクチャ更新に合わせて、新しい機種を設計していくわけですが、ただ、アーキテクチャを更新するだけでは、VAIOらしさを出せません。そのために、独自の“ClearAudio+モード”などお客様に喜んで頂ける機能も実装するわけですが、そういった付加機能に加えて、今回は、InstantGoの機能を実装する必要がありました。
仕事量が増えることは、ある程度予想はしていましたが、実際は予想以上でしたね。発売直前のゴールデンウイークは、複数の担当者が、海外のベンダーに張り付いて修正を加速し、そこでできたドライバを日本側で確認して結果を現地にフィードバック、また修正。そんなことの繰り返しでした。
笠井氏:ソニーは他社に先駆けた技術実装が得意です。例えば、eDPインターフェイスを用いたスイッチャブル・グラフィックスや、RAID 0のSSD開発なども他社に先駆けて実現してきました。私がプログラムマネージャーとして商品作りで大事にしているのは、単純に新しい技術、難しい技術にを入れるだけではなく、それによって、感動や魅力をお客様ににお届けするということです。
そのために他社がまだやっていない新しい要素を入れ込むんです。それによって商品の魅力が上がり、加えて我々の技術力も上がります。その繰り返しで、製品も良くなっていくのです。いわばポジティブスパイラルですね。こうして強いVAIOを作っていけるんです。
我々の成果はMicrosoftやIntelにフィードバックしています。結果として、苦労して作ったものを惜しげもなく出すことになるわけですが、それによってPCの業界そのものも盛り上がっていくし、我々にとってはむしろ得たものも大きいです。