連載
» 2012年12月12日 08時00分 公開

第6回 Thunderbolt前田真一の最新実装技術あれこれ塾(2/3 ページ)

[前田真一,実装技術/MONOist]

2. Thunderboltとは何か

 Thunderboltが10Gbpsのシリアル転送規格ということでまず頭に浮かぶのは、昨年末にやっと規格がまとまったPCI Express Gen3です。PCI Expressはもっとも普及している高速シリアルリンク(シリアルデータ転送)で、Gen3は転送速度も8GT/s(Gbps)とThunderboltの10Gbpsとデータ転送速度もそれほど変わりません。すでに規格が確立されており、Gen1、Gen2と多くの実績をもつ8GbpsのPCI Express Gen3に対して、10Gbpsと20%の速度向上のためにまったく新しく、仕様も公開されていないThunderboltが正面から競合する規格として対抗するのはかなり困難なことでしょう。しかも、Intel社が開発したPCI Expressに対して、同じ用途で同じIntel社がThunderbolt規格を策定するのはおかしな話です。

 この件に関して、Intel社ではThunderboltはPCI Expressと競合するものではなく、用途が違うものだと答えています。

 PCI Expressは基板上(On Board)の高速データ伝送に使い、Thunderboltは装置間のデータ転送に使う規格だと説明しています。確かに、PCI Expressの前身であるPCI並列バス規格は基板内のバス規格としてインテル社が開発したもので、装置間でのデータ転送を行うIOバスとしては規定していません。規格的にも基板内、または、コネクタを介しての基板間での伝送規格は決められていますが、ケーブルを介してのIOバス的な使い方は規定していません。実際、16ビットや32ビットの高速並列バスをIOバスとして機器から引き出すのは困難です。

 速度が遅いものでは並列IOバスがありましたが、ケーブルの長さや終端処理など高速化は困難でした(図3)。

図3 SCSI並列バスケーブルと直列バスケーブル 図3 SCSI並列バスケーブルと直列バスケーブル(クリックで拡大)

 PCI Expressは、PCI並列バス規格との最大限の互換性を保ちながらデータの並列伝送を直列伝送に置き換えたものです。そのため、基本は基板内バスとして規定されています。

 しかし、直列伝送になり、信号線が大幅に減ったため、PCI ExpressをIOバスとしても使用することが可能とはなりました。また、PCI Expressバスをカードインタフェースに出力するExpress Card規格が規定され、このExpress Card製品も多く出現しています(図4)。しかし、IOバスとして、8GbpsのPCI Express Gen3の速度を達成するのは簡単ではないでしょう。

図4 PCI Expressの Express Card 図4 PCI Expressの Express Card(クリックで拡大)

 ここで、Intel社はPCI Expressで処理している基板内のデータを転送速度を落とさず、他の装置へ転送する手段として、Thunderboltを使おうというものです。基板内でのシリアルバスとしては、他にディスク装置や光学ドライブの接続にSATA(Serial ATA=Advanced Technology Attachment)と呼ばれるバスが良く使われています。

 現在、IOバスとしてはデータ同期の問題や信号線数が少なくて済むことから高速シリアル転送方式が主流となっています(図5)。皆さんよくご存知のUSB、ビデオ機器などに使われているIEEE1394(iLINK、Fire Wire)、ビデオ信号用のHDMIなどすべてシリアルIOバスです。

図5 シリアル転送IO 図5 シリアル転送IO(クリックで拡大)

 Thunderboltはこれらのバスの替わりに使おうというものです。では、これらのバスに取って代わるものかというと、どうもそうではないようです。Thunderboltはこれら既存のシリアルIOバスと競合しないで、既存のIOバスより高速なバスをうまく実現して市場を確保しようというものです。Apple社のように、いち早くPCからフロッピーディスクをなくしたり、光学ドライブをなくした会社が採用したのは妥当な判断でしょう。MacBook AirやiPadのように、少しでも小さく軽くすることが価値となるAppleの製品としては、DisplayポートやIOを高速化することで、数を減らすことができるThunderboltは良い選択でしょう。しかも、ポート数を減らすことにより、コネクタやIOを減らすことにより、コストダウンも可能となるでしょう。

 この点が、先に述べた、Thunderboltが価格と性能、マーケット要求の実に上手いバランスを突いている、という理由の一つです。

3. Thunderboltの位置づけ

 基本的にThunderboltは、HDMIやPCI Express、USB、SATAなどシリアル方式のデータを載せ変えて、より高速で、より長距離転送するだけの役割を果たします。Thunderboltコントローラは、基板内でHDMIやPCI Express、USB、SATAなどシリアル方式のデータを受け取って、このデータをパケット化し、高速シリアル方式でことなる装置のThunderboltコントローラに転送します。データを受け取ったThunderboltコントローラはデータのパケットを解き、データを基板内のHDMIやPCI Express、USB、SATAなどのコントローラへ転送します(図6)。

図6 Thunderboltの接続(IntelのTechnology Briefより) 図6 Thunderboltの接続(クリックで拡大) (IntelのTechnology Briefより)

 Thunderboltコントローラは基本的にHDMIやPCI Express、USB、SATAなどのプロトコルを理解しませんし、これらのコントローラのデータ制御もしません。おのおのの方式でのプロトコルは、おのおののコントローラ間で行い、Thunderboltはおのおののコントローラ間のデータ転送を行うだけです。

 これは、電話やデータ通信で多くの通信会社がそれぞれ独自のサーバを使って、それぞれが独自のサービスを行っているものの、途中の経路は皆、NTTの光ケーブルを使っているというようなものです。Thunderboltはこの途中の高速データ転送だけを担当し、ここのデータの処理や制御は個々の規格に任せているのです。このため、PCI Express、USB、SATA、HDMIなど、どのような規格の信号でも、シリアル方式の規格でありさえすれば、簡単にThunderboltを使って、ことなる装置と接続することができます。

 たとえると、Thunderboltは高速、長距離(装置間)配送のための道路と集配センタのようなものです。Thunderboltの配送センタには、PCI ExpressやUSB、SATA、HDMIなど、いくつかのローカル(基板内)な道(シリアルバス)から荷物(データ)がもちこまれます。Thunderboltの配送センタでは、これらの荷物をまとめて(パケット化)宛先を付け、高速で相手(ことなる装置)の集配センタに荷物を届けます。

 荷物を受け取った集配センタでは、宛先ごとに集配センタに接続されているローカルバスに荷物を送り出します(図7)。

図7 Thunderboltは装置間のデータ転送のみを担当 図7 Thunderboltは装置間のデータ転送のみを担当(クリックで拡大)

 Thunderboltの速度はローカルバスより速いので、複数のローカルバスのデータをパケット化して、同時に送ることも理論的には可能です(ただし、このようなパケット化を行っているかどうかは、詳細な仕様が発表されていないので不明です)。

Copyright © ITmedia, Inc. All Rights Reserved.