Appendix A. 一般的なバスの種類(SCSI 等)

この付録で触れる様々なバスの種類(SCSI もその他も)の概観としては、 www.pctechguide.com/04disk2.htm が非常に優れています。 (注: リンク切れです。- 2006-08-06 JF Project)

SCSI. オリジナルの SCSI 1 規格(ANSI 規格 X3.131-1986)は、8 ビットのパラレルバス です。非同期で 1.5 MB/sec、同期で 5 MB/sec までの転送ができることになって いました。SCSI コマンドは非同期で送られます。SCSI データは非同期(最悪の 場合)もしくは、ネゴシエーションをして同期(最善で 5 MB/sec)で送られます。

FAST SCSI. SCSI 2 規格は、最大同期速度が 10 MB/sec まで上がりました。SCSI 2 では パラレルバスがいくつか定義してあります。シングルエンド(SCSI 1 で使用)と、 新規のディファレンシャルバスです。ディファレンシャルバスは、耐ノイズ性 に優れ、最大バス長が 25 m になりました(これに対してシングルエンドは 6 m)。 タグキューのコマンドも SCSI 2 で追加されました。

WIDE SCSI. SCSI 2 規格ではバス幅も広がり、16 と 32 ビットの(wide)な変種が認められました。 32 ビット幅はほとんど使われていませんので、「wide」は通常 16 ビット幅のデータ パスを指します。パラレルバスに接続できる SCSI デバイスの最大数は、バス幅 に密接に関連しており、「wide」バスには最大 16 個の SCSI デバイスが接続 可能です。(デバイスの内少なくとも 1 つは SCSI「イニシエータ」でなければ いけませんい。通常イニシエータはホスト・アダプタ)。

ULTRA SCSI. これまで同期式のバスは、クロック(通常は方形波)の立ち上がりと立ち下がりどちらか で同期を取ってきましたが、最近はクロックの立ち上がりと立ち下がり両方でクロック を取り、利用できる帯域幅を倍にする傾向にあります。 この方法によって、ULTRA SCSI は SCSI 2 を「高速」にして 20 MB/sec となりました。

ULTRA WIDE SCSI. 「ULTRA」と同じ技術を(16 ビット)の wide SCSI パラレルバスに適用し、帯域幅を 40 MB/sec にしています。

ULTRA 2 WIDE SCSI. このタイプは、新しい「低電圧」版のディファレンシャルな信号形式(LVD)で、 同期クロック速度を倍にし、(16 ビット)wide バスを使って 80 MB/sec にして います。 この場合の、SCSI バス長は最長 12 m です。ultra wide との下位互換性のため、 「シングルエンド」での操作も可能になっています。これには、LVD/SE という 略語がアダプタ製造メーカーによって使われています。この取り組み方の欠点の 1 つに、U2W バス上に UW デバイスが存在していると、他の U2W デバイスの速度 が遅くなって(つまり、UW になって)しまう点があります。アダプタには、論理的 には同一の SCSI バス上でありながら、物理的に LVD と SE を独立したバスに載せ、 この欠点を補っているものもあります。

ULTRA 160 SCSI. ULTRA 160 は、パラレル SCSI のバス幅をさらにまた倍にしています。16 ビット幅のデータバスに LVD の信号形式(先の項目を参照)を使っています。 さらに DT(Double Transition)クロックにより、同期帯域幅は最高で 160 MB/sec になります。 追加機能として巡回冗長検査(CRC)が加わり、データの整合性が(パリティビットと 比べて)向上しています。またエラー率があまりに高くなると、転送速度を調整する ドメインバリデーション(domain validation)も加わっています。 " 【訳註:ULTRA 160 までの SCSI 一般についての説明は、 adaptec 社の SCSI HAND BOOK(日本語)を参照してください】 "

ULTRA 320 SCSI. まもなく ULTRA 320 アダプタが登場します(このインタフェースを持ったディスク はすでに市場に出ています)。この規格も 16 ビット幅の LVD バスです。古い デバイスに対する互換性を保つために速度を落とせます。 クロック速度を倍にして、Ultra 160 の能力を向上させています。 コマンドとステータスを (5MB/sec ではなく) バンド幅のフル速度で送る、 Packetized SCSI という機能も含まれます。 その他の改良点として、「quick arbitration and selection(QAS)」や 「read and write data streaming」、データと同様に コマンドブロックを保護する CRC プロテクションがなどがあります(Ultra 160 は データに対してだけ CRC プロテクションが有効)。このような速度になると、PCI バスをボトルネックにしないためには、64 ビット PCI (さらに良いのは PCI-X) カードが必要とされます。さらに詳しい情報は、 www.scsita.org を見てください。 最近になって Ultra 320 の HBA ベンダーは、秒あたりの入出力操作が 105,000 に まで達したと言っています。これは、コマンド当たりの SCSI バスのオーバーヘッド が 10 ms 以内ということになります。ULTRA 640 規格のドラフトもありますが、 シリアルアタッチド SCSI に取って代わられるでしょう。 " 【訳註:「quick arbitration and selection(QAS)」と「read and write data streaming」については、 米 adaptec 社の Ultra320 SCSI: New Technology-Still SCSI を参照してください】 "

シリアルアタッチド SCSI(SAS). シリアルアタッチド SCSI(SAS)は、シリアル ATA(sATA)と同じ転送技術を、 さらに拡張して使うものです。(sATA については後述)。SAS では、外部エクスパンダ を使って、4096(?)個のデバイスをひとつの HBA 回路で制御できます。 データ転送は全二重で、1.5 Gbps の「束」をまとめ、帯域を広げられます。 ケーブル長は 6 m までです。SAS ディスクはデュアルポートになっています。 sATA ディスクは、SAS HBAに接続できます(ただし、SAS ディスクは sATA HBA には 接続できません)。 SAS は、最近 CeBit(国際事務情報/通信技術見本市)でデモが行われましたが、 2004 年までは市場には出ないでしょう。 " 【訳註:外部エクスパンダについては、 adaptec 社の SCSI HAND BOOK(日本語)を参照してください】 "

FC-AL. これは、ファイバチャネルアービトレイトループを意味し、2 GB/sec の シングルモード光ファイバーをデュアルで接続し、10 Km の経路で 400 MB/sec の流量を流します。 storage area network(SAN)と連携するケースがよくあります。ループには 126 デバイスまで接続できます。public loop モードにするとさらに拡張が可能で、 1600 万もの接続が可能になります。転送媒体には光ケーブルでなくても構い ません。 低速で経路が短かければ、メタルケーブル(同軸ケーブル)も使用できます。

IEEE 1394. この規格は、「Fire Wire」(APPLE の商標)とも「iLink」(SONY の商標)とも 呼ばれています。シリアルバスで、400 MB/sec まで動作します。USB と似て いますが、より汎用的な構造になっています。IEEE 1394 規格では、SCSI コマンド セットを 1394 バスに載せています。Linux の IEEE 1394 スタックとしては、 「sbp2_1394」ドライバが利用可能になりました。この sbp2_1394 ドライバは、 SCSI サブシステムの低レベルなドライバでもあります(よって機能的には ide-scsi ドライバと似ています)。 つまり、SBP-2 プロトコルを使用した IEEE 1394 デバイス(例えばディスク、 CD-RW、DVD ドライブ、MO ドライブ、スキャナー)には、SCSI サブシステムを通じて アクセスします。 Linux1394.sourceforge.net に詳しい情報があります。 sbp2 ドライバは、Linux カーネル 2.4.7 に取り込まれました。

iSCSI. これは SCSI コマンドセットを TCP 接続(もしくはそれらの内のいくつか)で送る、 新たな IETF 規格です。これは SCSI デバイス(ターゲットはディスクのようなもの) をネットワーク機器とし、ホストマシンからローカルに(もしくは遠距離から) アクセスすることを可能とします。

SCSI 以外のバス. これから述べるバスは SCSI 規格では定義されていませんが、SCSI コマンドセット も運べること、ある面で Linux の SCSI サブシステムに関連していること、SCSI 製品と同様の機能を提供することなど、本文書の対象となりうるものです。

IDE/ATA (ATAPI). IDE は、PC システムで現在最も普及しているタイプのディスクです。頭文字は、 Integrated Drive Electronics を表しています。名前が示す通り、IDE では IO の「知能」をディスクコントローラカードに集中させています。これに対し、 例えば SCSI では、IO 機能をデバイス(たいていはディスク)とコントローラ(HBA) 間に分散させています。 IDE は、1980 年代に ST506 と ESDI 規格からはじまりました。EIDE(extended IDE) は、同類の略語です。このバスアーキテクチャを指す最近の規格は ATA として 知られており、 www.t13.org で見られます。ATA のパケットインタ フェース(ATAPI)は、ディスク指向のコマンドセットを拡張して、CD-ROM や テープドライブをサポートしています。ATAPI のコマンド・セットは、SCSI コマンドセットと非常に似ています。最新の ATA 技術については、次の節で紹介 します。

ATA 133. IDE デバイスが使用する ATA 規格も、形容詞(例えば fast や ultra)や数字(例えば 2、33、66、100、133)が並んできました。最も新しく加わったのは ATA 133 で、 バーストで 133 MB/sec の速度とバス当たり 2 つまでのデバイスをサポートして います。(PC には通常、2 本 または 4 本の ATA バスがあります)。 ATA 66、 100、133 には、専用のケーブルが必要になります。 ATA ケーブルはかなり短く、コンピュータ外部に IDE デバイスが置けないのはこの せいです。ケーブル長はこれまで 46 cm が限度でしたが、最近になって 1 m のもの が出てきました。133 MB/sec という値は、おおかたの PC の最大転送速度でもあり ます。より高速(かつ帯域も広い)バージョンの PCI もありますが、まだそれほど 普及しているわけではありません。

シリアル ATA (sATA). シリアル ATA はディファレンシャルのペアを 2 組使い、1 つはディスクからデータを sATA ディスクとデータ を交換します。1 m 以内の距離で 1.5 G ビット/sec で転送します。1 組はデータ をディスクに送り、もう 1 つはディスクからデータを受けます。データ速度は、 150 MB/sec まで可能です(データ転送は半二重)。 sATA はポイント‐ポイント接続で、バス接続ではありませんので、ATA の マスターとスレーブという関係は存在しません。sATA の配線はすっきりして いて、プラグやソケットの形状もパラレル ATA(と SCSI パラレルインタフェース) より小ぶりです。sATA デバイスは市場に出はじめたところです。sATA-2 はドラフト 規格で、シリアルのデータ転送量が 3 G ビット/sec になっています。

USB. ユニバーサルシリアルバス(USB)は、帯域幅が 1.5 から 12 M ビット/sec (後者の速度は USB 1.1)です。ハブそれぞれに最大 7 つのデバイスが接続でき、 ハブを複数用いて 127 個までのデバイスが接続できます(長さの限界は 5 m)。 USB は、低消費電力デバイス向けに、 5 V 0.5 A を供給します。USB は「プラグ アンドプレイ」で、ホットプラグができ、同期転送をサポートします(最低帯域幅 保証が必要なオーディオやビデオデバイスに適しています)。

PC パラレルポート. もともと PC についているパラレルポートは片方向(プリンター向き)で、 約 10 KB/sec の能力がありました。1994 年の IEEE 1284 規格では、データ転送 方法が 5 種類ありました。

エンハンスドパラレル・ポート(EPP)は、転送速度が 500 KB/sec から 2 MB/sec の間になり、CD-ROM、テープ、ハードドライブをターゲットにしています。 エクステンデッドケイパビリティポート(ECP)は、ラン・レングス符号化を 取り入れ、DMA をサポートしています。 ECP は高速なプリンターやスキャナーをターゲットにしています。

I2O. 「I2O(Intelligent Input/Output)仕様は、インテリジェントな入出力のための 標準的なアーキテクチャで、制御されるデバイスやホストのオペレーティング システム(OS)から独立しています」(www.i2osig.orgから 引用)。 I2O は「分割ドライバ」モデルを定義しており、それによると OS Services Module(OSM)が、ホスト OS のデバイスインタフェースと I2O コミュニケーション層の間に入り、一方 Hardware Device Module(HDM)が、I2O コミュニケーション層とハードウェアの間に入ります。HDM は、恐らく専用 プロセッサ(IOP)上で動作するでしょう。