[an error occurred while processing the directive]

PCI-SIG Developer's Conference 2007レポート
~仮想化が遅れるI/O

会期:5月21日~22日(現地時間)

会場:米カリフォルニア州サンノゼ
San Jose Convention Center



 毎年恒例となっているPCI-SIGによるDeveloper's Conference 2007(PCI-SIG DevCon)が今年もサンノゼのSJCC(San Jose Convention Center)で開催された。今回はスケジュールの都合で初日のみの参加となったが、簡単にレポートしておきたい。

●PCI Express一色のセッション

【写真2】これは初日のセッション。もっとも2日目も同じセッションになっており、初日と2日目で別トラックを選ぶことで、複数のセッションを受講できる仕組み

 従来であればPCIやPCI-Xのセッションも多少は残されていたPCI-SIG DevConだが、さすがに今年は完全にPCI Express一色。他のイベントと異なり、基調講演などは一切なく、4つのトラックに分かれて延々とテクニカルセッションが続くスケジュールだ(写真2)。ちなみにトラックの分類は、

Track 1:PCI Express 2.0
Track 2:I/O Virtualization
Track 3:Introductory PCI Technology
Track 4:Members Implementation

といった形になっており、すでにPCI Expressの基礎を理解しているエンジニアはTrack 1と2を、これからPCI Expressを扱うというエンジニアはTrack 3と4を受講すれば済む形になっている。

 ちなみにTrack 4というのはPCI-SIGのメンバー企業により、PCI Express関連をどうインプリメントしたかの説明といえばわかりやすいだろうか? 筆者は初日のPCIe as Multiprocessor System Interconnectをちょっと受講したが、こちらはIDTによるセッションで、同社のスイッチを使っていかにMulti-Processor SystemをPCI Expressで構築するかについての説明が行なわれるといった具合だ。

 今回、我々報道陣が参加できるのはTrack 3/4のみ。Track 1/2はまだ仕様として定まる前のドラフトベースの話が含まれる関係で、PCI-SIG参加企業のエンジニアに限られるNDAベースのものとなっている。興味ある話が多いだけにちょっと残念ではある。

 その代わりに、PCI-SIGのChairメンバーによりプレス向けに現在の動向に関するブリーフィングが行なわれたので、こちらをベースに現状を簡単に紹介したい。

●IOVが目下最大の検討事項

 まずPCI-SIG自体のアップデートとしては、BoD(Board of Director)にAgilentとSun Microsystemsが新たに加わった事、およびPCI-SIGへ加盟したメンバー企業が900を超えた事が挙げられる(写真3)。正確に言えば現時点では924社となり、過去12カ月で18%も増えたそうだ。

 さて、昨年(2006年)からの中で一番大きなトピックは、なんと言ってもPCI Express 2.0の標準化が完了したこと(写真4)。ただしBackward Compatibilityが確保されるから、Transmitter/Receiver/Channelの全てが2.0準拠の5GHz駆動可能な場合のみ5GT/s、そうでなければ従来の2.5GT/sでの通信となる。また、プロトコルなどにもいくつか手が入ったが、これも互換性がちゃんと確保されている。

【写真3】両端の2社が新たに加わったBoDメンバー企業 【写真4】何かと物議をかもす「5GT/sec」という表記。なんで5Gbpsではないか、というと電気層を流れる生のデータは8B/10Bエンコードを経た後のものなので、厳密に言えばデータそのものではない(データのビットレートで言えば4Gbps相当になる)こと。ただ転送レートは5GHzになるから、5G Transfers/secという計算になるので5GT/secという表記が公式に利用されている

 そのプロトコル層だが、複数の速度や環境をサポートするために、LTSSMがいろいろ拡張された(写真5)。また、これらをサポートする関係で、レジスタもいくつか拡張された(写真6、7)。これらの結果として、PCI Express 1.x→2.0では多少のデバイスドライバの手直しは必要になる。ただ、PCI Express 2.0のプラットフォーム(たとえばIntelのX38チップセット)に従来のPCI Expresss 1.0デバイスを載せるだけであれば、ドライバは従来のものがそのまま使えるように工夫されている。

【写真5】LTSSMはLink Training and Status State Machineの略。最初の2つは、初期化の際に「相手が5GHzで動けるか」、「Channelが5GHz対応か」の2つを確認するもの。次の3つは、初期化および動作中の転送レートやデータ幅の確認を行なうもの。PCI Express 2.0からは、ダイナミックに転送幅を変更できるようになっており、これに関する項目もある 【写真6】リンク速度の設定関係。Link Control 2 registerのみが新設。残りの2つはPCI Express 1.0世代と変わらない。今回変更された項目は、従来だと固定値が入るようになっていた 【写真7】こちらは帯域変更関係。通知/設定にいくつかのbitの意味が変更されている。ただ、従来は帯域変更の機能を持たず、これらのbitには常に固定値を設定する/固定値が返ってくる仕組みだったので、やはりPCI Express 1.x世代のデバイスでは問題ない

 目新しいところでは、いくつかの新機能が追加されている。まずはMulti-Function Deviceの扱い。複数の機能を持つ1つのEndpoint Deviceに対しての扱いが新たに加わった(写真8)ほか、通信リンクへのハンドリングにいくつかの機能追加もなされている。Timeoutにオプションが追加されたのも興味深い(写真9)。

【写真8】右図でSwitchの下に複数のEndpointデバイスがぶら下がる構図であれば問題ないが、一番左のMDF(MultiFunciton Device)に2つのEndpoint Deviceが統合される構図では、従来だとMFDがSwitchの振る舞いをすることが期待されていた。ところがAER(Advanced Error Reporting)が拡張され、MFDの下の個別のEndPointそれぞれのStatusを取ったり、個別に設定を行なえるようになったのが大きな拡張 【写真9】オプションとして4~64秒といった長いタイムアウト、および50μs~10msという短いタイムアウトを設定できるようになった

 次がCFM(Card ElectroMechanical)に関する規定だ。タイミングバジェットの絶対値は、2.5GHzの400psから5GHzでは200psに半減したが、その内訳の比率そのものは大きく変わっていない。ちなみに5GHzでは信号伝達に問題があるため、インピーダンスが85Ωになったほか、Two ConnectorのケースではMicroStripではなくStriplineを使うようになっている。当然ながら相互接続性を維持するために、電気的な部分への要求は厳しくなっているが、機械的構造は変更なしとなっている(写真11)。

 次は今年2月に仕様がリリースされたCableに関してだが、主要な用途は拡張ボックスの接続や、シャーシ内の複数のシステムの接続といった事になる(写真12)。ちなみにeSATAと比較するとどうなる? といった質問も出たが、それは比べるものが違うと一蹴されていた。

【写真10】Timing Budgetの比率がほとんど変わらないのが、互換性を維持する大きな鍵だ、としていた。ちなみにTwo ConnectorでMicrostripが使えなくなった事に関しては、そもそもTwo ConnectorというのはたとえばPCのマザーボードなどではなく、ブレードサーバ向けBackplaneなどが主要な用途になるので、Microstripが使えなくなってもそれほど大きな問題ではない、というのがPCI-SIGの見解 【写真11】ところで2.5GHzのデバイス+5GHzのChannelというケースでは、インピーダンスミスマッチ(デバイスは100Ω、Channelは85Ω)が発生することになるが、これの影響は? と聞いたところ、確かにこれによるSide Effectは存在するだろうが、そもそも2.5GHzではマージンが大目に取ってあるから、十分これで許容できる範囲内に収まってるとの返事だった 【写真12】eSATAは4本の信号線で構成されるから安価で済むが、PCI Express Cableはx1の構成でも18本もの信号線が必要になる。もっともオプション扱いのものも少なくないが、それでも送受信別々にReference Clockを供給したり、電圧の状態やResetなどを別に分けたりするので、無駄に信号線が増えることになる。結果、コネクタも高価なものとなり、eSATAとは比較にならない高コストソリューションになっている面は否めない。このあたりをもう少し減らす可能性は? と聞いたが、これを減らすためにはシリコン側にいろいろ仕込んで信号の統廃合を行なう必要があり、こちらへのインパクトが大きいので、トータルコストを考えると現時点では今の本数は必須との事。ただ将来的には減らす可能性もありえるという含みを持たせた回答が返ってきた。もっとも具体的に現時点では何かそうした動きが実際にあるわけではないそうだ

 さて、ここからは現在審議中の話題となる。グラフィックス向けの225W-300Wの仕様だ。昨年の時点では今年前半にSpec 1.0が出る見通しだったが、実際にはやや遅れていて今年後半までSpec 1.0が策定されない見込みだ(写真13)。もっとも、電気的な部分ではもうほとんど問題はない。PCI Expresss x16スロットが単体で75W、2×3のPower Connectorがやはり75Wを供給できるので、合計で150Wまでは現在規定されている。これに加えて新たに2×4コネクタが150Wまでを供給できるように規定された。この結果

・PCI Express x16スロット+2×3コネクタ+2×3コネクタ = 225W
・PCI Express x16スロット+2×3コネクタ+2×4コネクタ = 300W

という形になるわけだ。計算上はPCI Express x16スロット+2×3コネクタ+2×3コネクタ+2×3コネクタで300Wという事も可能になるが、「そういうことはしない」のだそうだ。現在審議中なのは、1.5kgまでの重量に耐えるためのリテンション、それと環境温度に関する仕様の策定に関する部分だそうだ(写真14)。

【写真13】といっても、実際にはすでにこの2.0の2×4コネクタを使ったAMD ATI Radeon HD 2900が出ている以上、1.0でなくてもあまり問題はないという気もしなくはないが 【写真14】1.5kgといえば、猛烈な重さになる。1GB Memoryを積んだAMD ATI Radeon HD 2900でもここまでいくかどうか……

 カード関係でもう1つ審議中なのが、Half-Mini Cardだ(写真15)。こちらはピン数(=帯域)を半分に減らし、従来のカード1枚分のところに2枚のカードを装着できるようにするのが狙いだとか。もっぱらモバイル向け、とのことだった。

 さて、ここからが本題だ。IntelのVTやAMDのAMD-Vのように、CPUの側は仮想化が進みつつある。ところが現在はI/Oの側は仮想化されていない。結果、今はデバイスを完全に仮想化した上で、SuperVisorがI/Oリクエストを1本化し、まとめてI/Oを行ない、結果を各仮想OSに返すという仕組みになっている(写真16)。しかし、この仕組みでは全てのI/OにCPUが介在する結果になるから、どうしてもオーバーヘッドが多い。

【写真15】帯域的にはx1レーンで十分というケースが多かったから、ピン数を減らすことそのものにはそれほど問題が無いとの事だった 【写真16】従来はHyperVisor層の上に乗るVI(Virtualization Intermediaries)というI/O SuperVisorがI/O処理を1本化し、まとめてリクエストをだし、結果を各SIに返す仕組みになっていた。確実に動くが、遅いのは明白だ

 そこで、今年3月にまずATS(Address Translation Services)が策定された(写真17)。これは仮想OS毎に独自のI/O空間をマップし、これをデバイス側で認識できるようにする仕組みだ。今まではデバイスは1つのI/O空間しか認識できなかったから、たとえばDMA転送した結果はどの仮想OSからのリクエストであっても一緒のメモリエリアに入る形になっていた。ところがATSを使うことで、仮想OS毎に異なるメモリエリアにDMAの結果を格納できるようになり、これだけでも大幅な高速化が実現できるようになった。

 ただ、これはまだ不十分だ。Port I/OまでATSを掛けるのは大変だし、そもそもデバイスそのものが仮想化されているわけではないからだ。結果、ATSを使っても相変わらずSuperVisorがハンドリングする必要がある。これを解決するためには、全てのデバイスが仮想化に対応して、各仮想マシンに対応したVirtual I/O Contextを用意する必要がある。これを行なうのがSR-IOV(Single Root I/O Virtualization)だ(写真18)。すでにDraft 0.7がリリースされており、現在評価が行なわれている。「通常、0.7になれば大分安定になるので、多分このまま大きな問題はないと思う」との事で、今年のQ3には仕様がリリースされる見込みだ。

【写真17】要するにDevice I/O空間をSystem MemoryにMAPする際に、VI毎にMAPするアドレスを変更できるようになったという話だ。大きな変更ではないが(アドレス変換テーブルが1つ追加されただけだ)、HyperVisorのみならずデバイスドライバやEndPointもこれをハンドリングしなければいけなくなったので、影響は少なくはない 【写真18】Root Complex/Switch/Endpoitnの全てがVirtualizationに対応する形になり、作業自体はかなり多くなる。とはいえ、「やれば済む」というレベルだとか

 この次に控えているのがMR-IOV(Multi-Root I/O Virtualization)だ。こちらは複数のマシン(複数のRoot Complex)が複数のEndpointをSwitch経由で共有するという、さらに面倒な話だ。実はこちらが揉めまくっており、半年前にはそもそも標準化の制定そのものを疑問視する声がかなり多かったのだが、それでもリクエストの募集はすでに終了しており、現在はこれをベースにDraft 0.7に向けての作業が行なわれている。「これがうまくいけば」来月にはDraft 0.7が出ることになり、年内には標準化まで進む見込みだそうだが……ちなみにうまくいくかどうかは“No one knows”だそうであった。

 さて、今後の話だが、まずCompliance Testの内容を近く更新する予定だ。またCompliance Workshopをアメリカと台湾で開催する(写真20)。さらに未来の話として、まずはプロトコル全体の改良を予定するほか(写真21)、Gen 3となる次世代PCI Expressに関しても多少言及があった(写真22)。

【写真19】なんでこれが揉めるか、というのはその前にASI(Advanced Switch Interconnect)と呼ばれる野心的な規格があり、ところが事実上これが消えてしまって、これをあてにしていたベンダーが一斉にMR-IOVに向かってきたからという経緯があるからだ。このあたりの詳細は、別記事となるインタビューをお待ちいただきたい 【写真20】これとは別に、Developers Conferenceが東京(9月)、台北(10月)、ミュンヘン(11月)にそれぞれ開催するほか、8月と12月にはシリコンバレーでTechnical Training Daysも用意される。こちらはDevelopers Conferenceの内容をもっと絞り込んだものになるとか
【写真21】これを見て「あれ?」と思った人は鋭い。ヒントはこのあたり(というか、まんまか)。これについても、この後のインタビュー記事をお待ちいただきたい 【写真22】もっとも、具体的な数字が何か出てきたわけではない。とにかく互換性を維持することが最大の要因だそうで、その上でどこまでいけるのかを現在模索中とか。こちらも詳細は別記事をお待ちいただきたい

●ということで

 主なアップデートは以上だ。ちなみに併設された展示会場は、いつものように開発ツールや測定ツールがメインで、ちょっと目を引いたのはNEC Electronics Americaが展示していた5GHzで動作するPHY程度(写真23、24)。実際のSwitchなどは、2.5GHz品はともかく5GHzに関しては最低でもSR-IOV、実際はMR-IOVに対応しないとビジネスとして難しいという判断からか、アナウンスすらしていないベンダーがほとんど。このあたりに動きが出るのは、MR-IOVのDraft 0.7が発表される(か、出ないことが確定した)後になりそうだ。

 ところでこのプレスカンファレンスの後で、PCI-SIG ChairmanのAl Yanes氏とChairの一人であるRamin Neshati氏と話し合いをする時間を取ることができ、MR-IOVとGeneseo関係、およびPCI Express Gen3についてもう少し細かな情報を得ることができた。これについては後ほど別レポートの形でお届けしたい。

【写真23】6GHzで動作するPHY。当初は90nmプロセスだが、本格量産の場合は55nmに移行するらしい 【写真24】テスト全景。2つのPHYをバックプレーンに接続し、その間に測定器を挟んで6GHzでもちゃんとData Eyeが確保できていることを示した。ちなみにこのPHY、遂にPIPE I/Fに対応したそうな。なので、「ではPHY単体での製品化は? 」というと、今のところ予定はないそうで。ちょっと残念

□PCI-SIG Developers Conference 2007のホームページ(英文)
http://www.pcisig.com/events/devcon07/
□関連記事
【2月8日】PCI Expressを外付けケーブル化する規格が策定
http://pc.watch.impress.co.jp/docs/2007/0208/pcie.htm
【2006年10月10日】帯域を2倍に拡張した「PCI Express 2.0」の候補版が完成
http://pc.watch.impress.co.jp/docs/2006/1010/pcie.htm
【2004年12月16日】PCI-SIG、PCI Expressの帯域を5GT/secに拡張
http://pc.watch.impress.co.jp/docs/2004/1216/pcisig.htm

(2007年5月24日)

[Reported by 大原雄介]

【PC Watchホームページ】


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

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