最近、お客様にヒアリングしデバイス選定をする
というロールプレイングを行っています。 

その中で以下の会話がありました。 

----------------会話------------------
私「トランシーバはご利用になられますか?」 
相手「はい、PCI Express(PCIe)gen3 x8 を3系統使用します。」 
私「PCIe とはトランシーバでしょうか?」 
相手「…」 
--------------------------------------

私はトランシーバに関して質問したのですが、 PCIe gen3 x8 という回答が返ってきました。 
本記事では、「PCIe gen3 x8 」という回答の意味を理解するまでを順を追ってご紹介したいと思います。 


1、トランシーバとは?
2、 PCIe gen3 とは? 
3、 x8 とは?

1、 トランシーバとは?

高速なシリアル・データの送受信を行うための回路のことです。 

(FPGA 内にロジック・エレメントとは別に専用の回路として存在しています。) 

アルテラデバイスには、トランシーバ内蔵とそうでないデバイスがあります。 

どのデバイスにトランシーバが搭載されているかは、以下のURL の 概要タブよりご覧ください。 

https://www.intel.com/content/www/us/en/programmable/solutions/technology/transceiver/protocols.html

また、トランシーバを語るうえで重要な指標がデータレートです。

データレートとは データの送受信における転送量を示す数値です。

単位は bps(bit per second)です。

最新のアルテラデバイスである、Stratix® 10 のデータレートは最大56 Gbps であり、非常に高速です。

2、 PCIe gen3 とは?

PCIe とは、プロトコル(※1)の1つです。 

※1:プロトコルとは通信上の規格であり、外部機器と接続する際には送信側と受信側のプロトコルをそろえる必要があります。

なので、トランシーバのことを聞いたときいきなりプロトコルの話に飛んだんですね。

では、gen3とは何でしょうか?

gen は generation の略で、世代を意味します。

世代が上がることにより、パフォーマンスが向上しています。

以下の表は、1レーン(※2)あたりのデータ転送速度(双方向)を表しています。

※2:レーンに関しては後ほどご説明いたします。

今回のgen 3 は3世代目という意味だったんですね!

アルテラがどのプロトコルをサポートしているかは、先ほどと同様、以下のURL のプロトコルのタブをご覧ください。

https://www.intel.com/content/www/us/en/programmable/solutions/technology/transceiver/protocols.html

3、x8 とは?

最後の疑問です。 

パッと見た感じ、何かが8本あるような意味に思えますが、何が8本なのでしょうか? 

 

調べてみると、レーン数が8という意味のようです。 

レーンとは、送信側を意味する Tx と 受信側を意味するRx 用の回路が、 1つの束になっているものです。 

レーンが増えると一度に転送できるデータの帯域が広くなり、転送速度が向上します。 

 

以上のことから「PCIe gen3 x8」の意味が分かりました! 

 

PCIe の gen3 に対応しているデバイスは、先ほどのプロトコル一覧にありましたが、複数あるので1つに絞り込むのは難しい。。。 

まだまだヒアリングすることがたくさんありそうです! 

まとめ

・トランシーバとは、高速なシリアル・データの送受信を行うための回路 

・PCIe とは通信のプロトコルの内の1つ

・x8 とは、レーン数が 8という意味 


[おまけ]

本文中でご紹介したレーンについてもう少し詳しくご説明したいと思います。 

レーンの中は以下の図のようになっています。

Tx(送信側) と Rx(受信側) は共に差動信号なので、それぞれ配線が2本ずつあり、合計4本の配線が1レーンの中に存在していることになります。

(差動信号に関しては、過去記事「LVDS の振幅に注意」をご覧ください)

皆さんも、混乱したときは、上図をイメージして頭の中を整理してみてくださいね。