インタフェースIPコア「Z-coreシリーズ」で知られるインベンチュアの中村孝志氏が行った「FPGAで実現するUSB 3.0デバイス開発」も注目の技術セッションだった。
中村氏が指摘したのは「USBデバイスではエンドポイントの位置付けが重要になる」ということ。USBホストと直接通信するエンドポイントは通常、USBデバイスのMAC(Media Access Control)層に配置されるRAM領域だが、「FIFO(First In First Out)構造なのでアクセシビリティが低く、使い勝手が悪い」という。
そこで提案されたのは「MAC内エンドポイントは“一時的なFIFOバッファ”、ユーザーアプリケーションのワークメモリを“実質のエンドポイント”と見なす」という構造である。メモリマッピングされたワークメモリならアクセシビリティが高く、アプリケーションはパケットでなくデータ自体を扱えるようになるわけだ。
こうした構造では当然、MAC内のFIFOバッファとワークメモリ上のエンドポイントがCPUを介さず、DMA(Direct Memory Access)コントローラによりメモリ間通信を行う。中村氏は「各エンドポイントに対応する各DMAチャネルが同時動作することが必要」とした。
続いて中村氏は、USB 3.0におけるPHY(Physical Layer)とMACのインタフェースについて、「PCI ExpressでPHY/MAC間の標準インタフェースとなっているPIPE(PHY Interface for the PCI Express)がUSB 3.0でも標準になるだろう」と指摘した。その上でUSB 3.0デバイスコントローラをFPGAに実装する上での留意点を次のように話した。
PIPEの最新版「PIPE 3.0」でもUSB 3.0に完全に対応しておらず、実装には工夫が要る。また、USB 3.0固有機能であるLFPS(Low Frequency Periodic signaling)も別途、論理的に実装する必要がある。USB 3.0で新規採用されたLFPSは、リンク開始前のトレーニング、ローパワーステートからの復帰などに使われる。8b/10bエンコード処理をバイパスしてLFPSの機能を実現するという。
さらに中村氏からは、FPGAでUSB 3.0デバイスコントローラを実現する2つの方法が紹介された。1つは、USB 3.0のPHYにはFPGA内蔵SerDesマクロを使い、USB 2.0のPHYには外部チップを使うという方法。だが、この方法だと「スペクトラム拡散による最大偏差がUSB 3.0で規定された5000ppmを超える」という。もう1つの方法は、USB 2.0/3.0の両方に対応した外部チップを用い、それぞれの標準インタフェースでUSB 2.0/3.0 MACと接続するもの。これならUSB 3.0規格に準拠し、PHY/MACでIPコア組み合わせの自由度は高まるだろう。
その組み合わせの一例として、中村氏はインベンチュアとTEDが共同開発したUSB 3.0インタフェースを持つFPGAメザニンカードを紹介した。同製品はテキサス・インスツルメンツ(TI)のUSB 2.0/3.0共有PHYチップと、インベンチュアのUSB 3.0デバイスコントローラIPコア「Z-Core USB 3.0」を実装したSpartan-6 LX75Tを搭載する。「ターゲットのメインボードに接続すれば、即座にUSB 3.0インタフェースの評価が行える」(中村氏)。同製品は2011年4月より提供されるという。USB 3.0デバイスの評価・開発に役立ちそうだ。
以上、TEDプログラマブル・ソリューション 2011で興味深かった技術セッションをレポートした。ザイリンクス、TED、パートナーによるエコシステムは、組み込み業界で新インタフェース普及を強力に後押ししそうだ。
Copyright © ITmedia, Inc. All Rights Reserved.