01signal.com

マルチギガビット・トランシーバ:概要

このページは、マルチギガビット・トランシーバ(MGT)を紹介する一連のページの最初のページで、このシリーズで扱う内容の概要を示します。

はじめに

マルチギガビット・トランシーバ(MGT)は、コンピュータや電子システムの内部で、異なる構成部分の間の通信に重要な役割を果たしています。コンピュータ内部のよく知られたインターフェースのいくつかは MGT に基づいています。例えば、PCIe や SATA です。また、コンピュータと周辺機器の間の通信に使われるよく知られたインターフェースとしては、Gigabit Ethernet、SuperSpeed USB、Thunderbolt、DisplayPort などがあります。

MGT は電子部品同士の接続にも使われます。例えば、2 つの FPGA 間です。この場合、通信は、あまり知られていないプロトコルや非標準のプロトコルに基づいていることがよくあります。また、FPGA と別の種類の部品を接続するため、あるいは他の部品同士を接続するために MGT を使うこともできます。例えば Xillyp2p を使う場合です。

例えば、光ファイバ用トランシーバは、多くの場合、MGT に直接接続するための標準モジュール(特に SFP+ フォームファクタ)です。このサンプルデザインにはその例が示されています。また、高速 ADC/DAC の中には、サンプルデータを転送するために MGT を使うものもあります(通常 JESD204 プロトコルを使用)。さらに、ビデオデータの転送を目的としたプロトコルもあります(例えば MIPI の物理層プロトコルの一部)。

MGT は双方向プロトコルで使われることがよくありますが、実際には各 MGT は 2 つの独立した部分、すなわち送信部と受信部から構成されています。したがって、どちらか一方をオフにすることで、MGT を一方向伝送に使うことも可能です。ほとんどの FPGA MGT では、送信部と受信部のパラメータを独立に設定することもできます。

まとめると、MGT はさまざまな用途に使われています。インターフェース名を見ただけでは MGT が使われているとわからないこともよくあります(例:Gigabit Ethernet、SATA、DisplayPort)。しかし、その物理層は MGT によって構成されています。

触れておく価値があるのは、Xilinx(そしてその後 AMD)が自社の MGT を RocketIO、GTX、GTH、GTY、GTP、GTM など、さまざまな名前で呼んでいることです。それぞれの名前はトランシーバの特定のハードウェア実装を表しており、そのトランシーバがサポートするデータレートやその他の性能特性を示しています。

この一連のページでは、MGT の基本と、それに関連してよく使われる技術用語をいくつか説明します。その目的は、技術文書を読みやすくすること、特に、皆さんのプロジェクトに関係するパラメータとそうでないパラメータを見分けられるようにすることです。

MGT とは何か?

重要なのは、MGT が数々の複雑な機能の背後で、結局のところ単なる SERDES にすぎないという点を認識することです。つまり MGT は、データの受信と送信を行う電子回路ブロックです。MGT と外部との電気的インターフェースは、差動ペア(differential pair)を構成する 2 本の配線からなります。最初の配線(「プラス」側)の電圧がもう一方の配線(「マイナス」側)の電圧よりも高い場合、物理状態は '1' に対応します。それ以外の場合は '0' です。これは LVDS などの差動インターフェースと同じ原理です。

SERDES とのもう 1 つの類似点は、MGT とアプリケーションロジック(application logic)とのインターフェースがパラレルワードで構成されていることです。アプリケーションロジックのクロックの 1 サイクルごとに、複数のビットがアプリケーションロジックと MGT の間で転送されます。この構成は、データレートが FPGA で可能な最大クロック周波数よりもはるかに高いために必要です。

しかし、通常の SERDES と MGT には、いくつかの重要な違いがあります。その一部を挙げます。

では、なぜ MGT はそんなに複雑なのか?

FPGA プロジェクトのために MGT ブロックを設定しようとしたことのある人なら誰でも、そこには多数のパラメータと選択肢があることを知っています。なぜこのようになっているのでしょうか?

実は、複雑である必要はありません。このサンプルデザインに示すように、MGT を単なる SERDES として使うのであれば、複雑さの多くは解消されます。

しかし、MGT の使用は通常複雑です。その主な理由は 3 つあります。まず第 1 に、MGT ブロックは、ロジックファブリック(logic fabric)にも実装できる多くの機能ブロックを、効率化のために MGT の一部として実装しています。例えば、すべての MGT は 8b/10b のエンコードとデコード機能を持っています。この処理はアプリケーションロジックでも実行できます。しかし、この符号化方式は非常に広く使われているため、MGT が代わりに処理する機能を備えているのです。

第 2 の理由は、クロッキング(clocking)に関係しています。MGT を正しく動作させるには、複数のクロックが必要です。さらに複雑なことに、FPGA のロジックファブリック用のクロックと比較すると、クロックの品質(特にジッタ(jitter))に対する要求はより厳しくなります。また、SSC(Spread Spectrum Clocking、スペクトラム拡散クロック)が使われることもあり、さらに複雑になります。

そのため、クロッキングを正しく行うことは、MGT 全体のパラメータを正しく選ぶことと同じくらい難しい場合があります。

第 3 の理由は、MGT が複数の標準通信プロトコルをサポートするように設計されていることです。その結果、特定のプロトコルに必要な機能の名前は、そのプロトコルの仕様書から取られていることがよくあります。そうした専門用語は、関連するプロトコルを知らない人には意味がわかりません。このため、FPGA 用に MGT ブロックを設定する際、どの機能を有効にすればよいかの判断が難しくなります。

これらすべてのトピックについては、この一連のページの残りでさらに詳しく説明します。

注意すべき点

ほとんどの用途では、MGT は別の確立されたプロトコル、特に PCIe の物理層として使われます。このような場合、FPGA ツールが詳細を処理してくれるので、低レベルの動作について深く理解する必要はありません。

しかし、アプリケーションロジックを MGT に直接接続しようとしているなら、そのロジックが対処しなければならないいくつかの課題があることに注意が必要です。これらの課題の一部は、FPGA 間での使用を目的としたプロトコルによって処理されます。

以下に、考慮すべきトピックを簡単に挙げます。それぞれのトピックは、この一連のページの残りで詳しく説明します。

PMA、PCS、クロッキング

このブロック図は、MGT の各部分と、アプリケーションロジックとの相互作用を示しています。

Overview of Multi-Gigabit Transceiver's components

MGT の機能は通常、次の 3 つの部分に分けられます。

これらのトピックについては、この一連のページでさらに詳しく説明します。

PIPE インターフェース

PIPE 標準については触れておく価値があります。この標準は、MGT と、PCIe、SuperSpeed USB、または SATA を実装するロジックとの間の接続を定義します。これには、データ、制御信号、ステータス信号をやり取りするためのポート群が含まれます。

この標準では、MGT は PHY 層と呼ばれ、プロトコル側は MAC 層と呼ばれます。この用語は、Ethernet、USB 1.x、USB 2.0 を定義する標準でも使われています。これらの標準は通常、2 つの別々のチップで実装されます。例えば、プロセッサチップ上で Ethernet を実装する場合、MAC 層はそのチップに実装され、PHY 層は別のチップに実装されます。PIPE 標準も同じ考え方に沿って書かれています。ただし、PCIe、SuperSpeed USB、SATA は実質的に常に同じチップ上に完全に実装されます。PIPE 標準で定義されている MAC 層と PHY 層の接続はチップ内部で行われ、外部から見えることはほとんどありません。

PIPE 標準の重要な影響として、きちんとした FPGA MGT であれば、PCIe 用に要求される PIPE インターフェースを必ず実装していることが挙げられます。SATA 用の PIPE インターフェースも、しばしばサポートされます。これは、これら 2 つのプロトコルを実装する際に明らかに有用です。しかし、もう 1 つの重要な利点があります。それは、FPGA が異なっても MGT とのインターフェースは似通っていることです。特に、実質的にすべての MGT に見られる機能要素がいくつかあります。

まとめ

このページでは、MGT とその複雑さの概要を説明しました。この一連のページの残りでは、上で述べた概念の多くを解説します。その前に、2 つの FPGA MGT を接続するときによく使われるプロトコルについて、簡単な概要から始めます

このページは英語から機械翻訳されたものです。不明な点があれば、原文を参照してください。
Copyright © 2021-2026. All rights reserved. (dcc38493)