【短期集中連載】大原雄介の最新インターフェイス動向
|
【写真3】テストの構図は全く一緒であるが、今度はコネクタ部での信号をシミュレーション | 【写真4】桃色がコネクタ部、青が拡張カードの先の結果。縦軸はBERに変わっている |
更に、実際の配線条件に近いパラメータを考慮したケースが3番目のモデルである(写真5)。こちらのケースの結果が写真6で、多少改善されてはいるが、まだ問題は多いことが判る。
ただ、ここまでの結果はいずれも送受信の両側で何の対策もせずに、そのまま8GT/sの信号を流した場合の話である。写真1~6はIntelでの評価結果だが、PCI-SIGのAl Yanes氏にこのプレゼンテーションを確認したところ「確かに同じデータを我々も得ており、これは概ね正しい。ので、現時点ではまだGen3の伝達にハードルが多いことは判っている。ただこれはあくまでも初期のシミュレーションであり、Equalizationを始めとするさまざまな信号補正の技法を何も加味していない。今後は、TX/RX Equalizationや新しいScramblingなど、さまざまな技術を利用することで、こうしたハードルを越えられると考えている」という返事であった。実際、何もEqualizationを施さない状態でも、一応Eye Height/Widthを確保できる目処が立っているというのが公式な見解だそうだ(写真7)。
ちなみに基本的なコンポーネント、例えばコネクタについては早くからシミュレーション結果が出ており(写真8)、既存のGen2用のコンポーネントでGen3の利用に大きな問題が無い事が確認されている。またGen3に関しては、シミュレーションの方法を少し変えた事も明らかにされている(写真9)。
●PIPE 3.0
厳密に言えばこれはPCI Expressの仕様には入らない内容だが、重要なのがPIPEである。PIPEとは「PHY Interface for the PCI Express」の略である。何のインターフェイスかというのは写真10を見ていただくのが早い。PCI Expressの物理層と論理層のうち、MACとPCSの間のインターフェイスがこのPIPEとなる。このPIPEはPCI-SIGではなく、Intelが独自に仕様を策定しているもので、以前は「Intel Developer Network for PCI Express Architecture」という開発者組織に加盟したメンバーにのみ公開されていた(*1)のだが、Gen2がリリースされる前あたりで方針が変わったらしく、今は誰でもアクセス可能となっている。
(*1)そしてここに加盟するためには、PCI-SIGへの加盟が必須であった。なので、PCI-SIGに加盟していないメンバー企業や個人では、この仕様が参照できなかった。
PIPEの目的は、物理層というより電気層と論理層を切り離し、そこのインターフェイスを策定することで、デバイスを自由に構成できるようにするというものだった。実際、Gen1がリリースされた直後は、PCI Express PIPE PHYが各社からリリースされたりしている(写真11)。これを使うことで
・MACより上とPHYで、異なったデバイスにできる。例えばMACから上はFPGAを使って構築し、PHYだけ別に用意するといった事が可能になる
・SoCにおいてIPの自由度が増える
といったメリットがある。もっともGen1では図1-aのような2チップ構成も少なくなかったが、Gen2以降はあまりDiscreteのPIPE PHYは見かけなくなり、図1-bのような構成に切り替わっている(例えばPLX Technologyの場合、「Standard ProductとしてGen2用のDescreteのPIPE PHYは用意していないが、顧客から要望があれば用意する」と言っていた)。
Gen2クラスになるとPCIやPCI-Xデバイスの置き換えというケースはかなり少なく(この規模であれば、Gen1で事足りるから)、新規にデバイスを作るという形になるので、それであれば無理に2チップ構成にしなくても、SoCあるいはSIPの形でワンパッケージ化したほうがコストを下げられるからで、こういうところを狙ってさまざまなIPベンダーやファウンダリがPIPE PHYをソフトコアあるいはハードコアとして提供するようになっている。
もう少し突っ込んで考えると、PCI Express自体は標準規格だから、これをサポートしないのは単なるデメリットである一方、PCI Expressの実装で差別化というのは非常に行ないにくい。勿論、実効転送性能を上げた実装とか、消費電力を下げた実装、あるいはローコストな実装というのは概念としてはありえるが、それはMACなりPHYのIPベンダーにメリットはあっても、PCI Expressを使うアプリケーションのベンダーにはあまり大きな関係はない。また、特にPHYに関してはソフトコアよりもハードコアの方が性能を出しやすい(というより、プロセスに最適化しやすい)が、そうなるとIPの使える範囲が限られてしまう。ところがPIPEが間に入ることで、例えばMAC層はソフトコアを使って実装し、PHYはファウンダリが提供するハードコアを使うといった事が可能になるわけで、この意味合いは大きい。
さて前書きが長くなったがこのPIPE、2008年6月の時点ではGen3がどうなるか不明であった。Al Yanes氏などは「PIPEそのものはご存知の通りIntelが策定する規格だから我々がどうこう言えるわけではないが、多分Gen3にも似たようなものが提供されるんじゃないかと思っている」と、いまいち当てにならない返事だった。メンバー企業のみが参加できる技術(つまり秘密保守のセッション)の中では、「PIPEはどうなってる」と聞かれて、「それについては聞くな」という返事もあったそうで、この時点ではGen3対応のPIPEがどうなるか、非常に先行き不明であった。
【写真13】Controlが13+、Statusが6+となっているあたりが、まだ仕様が詰めきれていない事を示している |
ところが2008年8月のIDFでは、既存のPIPE 1.0/2.0と同じ枠組みで、PIPE 3.0の仕様を策定中であることが明らかにされた。既存のPIPEとの違いは、遂に32bitのデータ幅がサポートされたことと、Control/Statusに信号線が追加される見込みである事だ(写真13)。例えば写真13のプレゼンテーションではControlが13本以上となっているが、同時期にリリースされたPIPE V3.0のRevision 0.5によれば
・RateがRate[1:0]で2bitになる
・TxSyncHandle[1:0]が追加
ということで、少なくともControlは16本になるようだ(Statusは今のところ一緒)。このあたりは今後まだ変更がかかっても不思議ではない。
【写真14】これはPIPE 3.0 Specification Revision 0.5のFigure 4-3からの抜粋。130b/128bエンコーディングを使うことを考えれば、もっと別の選択があっても良さそうな感じではあるのだが。あくまでもペイロードの最小単位は1Byteに留めておきたいためかもしれない |
一方バス幅だが、表1にPIPE 2.0の、表2にPIPE 3.0でのデータ幅とその場合のPCLK(転送のタイミングを取るリファレンスクロック。PIPE PHYから供給される)をまとめたが、面白いのはGen1用に32bit/62.5MHzが追加されたこと。この組み合わせは以前からニーズは少なくなかった(PCI Expressを使うようなデバイスであれば、内部バスは32bit以上であるのが普通で、x1レーンを出すためには、わざわざ16bitに変換する必要があったからだ。逆にx4レーンであれば、8bit×4で丁度32bitになるので、こちらはあまり問題が無かったようだ)のだが、やっとサポートされた形だ。また、PIPE 3.0の仕様を見ると(写真14)、一度16/32bitで入ってきたデータは8bitに変換された上で、Scramblingが掛けられているのが判る。Scramblingについてまだ詳細は不明だが、一応8bitベースのScramblingを使うことを現時点では想定していることがここから判断できる。
ちなみに外部(つまりPIPE インターフェイスの外側)から見ると、この1つでGen1/Gen2とGen3の両方をカバーできるようになっており、パラメータを切り替えるだけでどちらでも使える(PCI Expressの使い方からして、動作中にGen1/2とGen3を切り替えるなんて形はありえないだろうから、電源投入直後あるいはHot Plug後のデバイス初期化のタイミングで、この判断が行なわれる事になる)が、内部的には完全に分離された形になると思われる。
PIPE 2.0 | データ幅 | PCLK |
2.5GT/s | 8bit | 250MHz |
16bit | 125MHz | |
5GT/s | 8bit | 500MHz |
16bit | 250MHz |
PIPE 3.0 | データ幅 | PCLK |
2.5GT/s | 8bit | 250MHz |
16bit | 125MHz | |
32bit | 62.5MHz | |
5GT/s | 8bit | 500MHz |
16bit | 250MHz | |
32bit | 125MHz | |
8GT/s | 8bit | 1GHz |
16bit | 500MHz | |
32bit | 250MHz |
□関連記事
【3月10日】大原雄介の最新インターフェイス動向~PCI Express 3.0編その1
http://pc.watch.impress.co.jp/docs/2009/0310/interface01.htm
(2009年3月12日)
[Reported by 大原雄介]