USB 3.0の高速伝送は、転送速度の向上だけで実現できたわけではない。本連載ではプロトコル面での改善点を中心に解説
USB 3.0製品が市場に出現し、確かにいままでのUSBより速い伝送が可能なことは分かりました。ではなぜ高速伝送が実現できるのでしょうか? その理由はどこにあるのかを、USB 2.0からのプロトコル改善点を中心に説明します。
USBは世界中で最も普及したバスの1つで、シリアルバスの代表格として身の回りにたくさんのUSBデバイスが存在しています。
昨今では画像や動画をはじめとするマルチメディアデータの高精細化が著しく、取り扱うデータ量が飛躍的に増えており、USB 2.0では転送速度に物足りなさを感じてしまいます。そんな背景もあって世界中の誰でも簡単に使用できる、より高速なインターフェイスの登場が心待ちにされてきました。
そんな中、新しいUSBのインターフェイス規格として、2008年11月にUSBインプリメンターズ・フォーラム(USB-IF)によってUSB 3.0の仕様が策定されました。現在ではUSB 3.0対応のコンシューマ製品もすでに販売されており、街の電気屋に行けば入手可能です。いままでのUSBデバイスとまったく変わらない使用感で、その転送速度の速さを実感された方も多いことでしょう。
ところで、新しい規格である“USB 3.0”から何をイメージされるでしょうか?
多くの方は“伝送速度:5.0Gbps”や、“USB 2.0の10倍以上の転送速度”などをイメージされることでしょう。これらはUSB 3.0製品のキャッチコピーとして使用され、身近であるUSBだからこそ、USB 3.0の最も分かりやすい特徴が伝えられていると考えられます。
かつてUSBはLow Speed(LS:1.5Mbps)、Full Speed(FS:12Mbps)、そしてHigh Speed(HS:480Mbps)と着々と進化を遂げつつ、コネクタ形状や信号線数などのメカニカルな仕様は維持されてきました。またUSB 2.0までは、たとえホストに接続された全デバイス/ハブにLS/FS/HSが混在していたとしても、共通のバス・アーキテクチャ上で伝送速度差を吸収し、影響を最小限に抑える仕様が盛り込まれてきました。
今回のUSB 3.0はどうでしょうか? 実は、コネクタや信号線数にまで見直しが入り、“USB”の名を持ちながらもUSB 1.0/1.1/2.0とは技術的にまったく別物のバスとなっています。また、USB 2.0までのバス・アーキテクチャと、まったく異なるUSB 3.0独自のバス・アーキテクチャをもって構成する「デュアルバス・アーキテクチャ」を採用して、システムとしての下位互換性を維持しています。
USBはこれほど物理的な側面でも劇的な変化を遂げ、技術的に別のバスとなっているにもかかわらず、インターフェイス規格として従来の下位互換性も保たなければなりません。仕様策定に対する苦労がうかがい知れます。
それではなぜ、ここまでUSB 3.0は従来のUSBから変更が行われたのでしょうか?
規格策定段階ではUSB 2.0より10倍速くすることを当初から目指していたために、PCI ExpressやSerial ATAをはじめとする、現在のシリアル伝送方式の主流となっている通信技術が採用されました。これは確立された技術を採用したという半面、USB 2.0までの方向性と明らかに異なる進化です。
また、USB 3.0でうたわれている5.0Gbpsは“伝送速度”であって、実際のデータ転送速度とは異なります。実際にはSCRAMBLE+8B/10Bエンコードが行われており、8bitのデータを10bit化して伝送されています。このことから単純に20%の伝送上の損失があることを忘れてはいけません。
物理的にも高速バスであることが分かりますので、転送の優位点を十分供与できますが、プロトコル面でもUSB 2.0のデメリットを解消するような改善が行われています。今回はUSB 3.0のプロトコル変更点、特に従来のUSBから高速化に大きく寄与する変更内容について確認していきます。
USBシステムはホスト(一般的にはPC)を頂点として通信を制御し、デバイス側が応答するマスター/スレーブ型バスになります。データ転送は常にホストからの要求でトランザクションが始まり、ホスト主体で考えられているため、ホストからデバイスへのデータ転送はOUT転送、デバイスからホストへのデータ転送はIN転送と呼ばれます。
USB 3.0でもUSB 2.0までと同様に4つの転送タイプ(Control/Bulk/Interrupt/Isochronous)をサポートしております。ここでは、最も一般的で実用的なBulk転送においてUSB 3.0で行われたプロトコル改善点にフォーカスしたいと思います。
従来のUSBプロトコルは3つのパケットからトランザクションが構成されています。
従来のUSBではこの3パケットが正常終了して初めて転送終結と見なされるため、Data Packetに対してパケット間アイドル期間のプロトコルオーバーヘッドが大きいことが、問題視されていました。HSでいえば、480Mbps(60MByte)の伝送速度に対して、データペイロードの実効転送レートは30〜35MByte程度が一般的な値として考えられています。
USB 3.0でもプロトコル上の概念は変わりません。論理上は3つのパートのトランザクションから構成されますが、パケットが表す意味が共有化されることにより、プロトコルオーバーヘッドの削減が図られています。
このようなパケット自体の共有によりパケット間アイドル期間そのものが減少し、プロトコルオーバーヘッドの削減につながります。そしてこの修正が最大限に変更されることでさらに削減幅が大きくなる事例をご紹介しましょう。
USBには物理的なUSBポートを増やすことができる「ハブ」と呼ばれるデバイスがあり、規格上は5段までカスケード接続することが可能です。ハブを経由した場合であってもパケット転送はホストから末端デバイスまでEnd-to-Endで転送しますので、物理的な距離が長ければ長いほどラウンドトリップタイムが転送の効率に影響を及ぼします。最大ではハブ5段+6本のケーブル分の通過時間がパケット間拡大に影響しますので、パケット間アイドルタイムの削減による転送効率改善は計り知れません。
Copyright © ITmedia, Inc. All Rights Reserved.