1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

FDD/HDDをつなぐため急速に普及したSASI 消え去ったI/F史

ASCII.jp / 2024年3月18日 12時0分

 消え去ったI/F史で取り上げるものとして「次はLocal Talkだ」なんて予言もあったが、Local Talkはもう少し先になる。今回はSCSIの前身であるSASI(サジー)を説明しよう。

SASI(SCSI)の50ピンコネクター

世界初のFDDを開発したAlan Shugart氏が そのFDDを機器に接続するために作ったSASI

 SASIはFDDおよびHDDをPCに接続するためのI/Fとして、Shugart Associatesという会社によって開発された。このShugart Associatesは、「業界に痕跡を残して消えたメーカー」シリーズで取り上げているので、繰り返さない。要は世界で最初のフロッピードライブ(とフロッピーディスク)であるIBM 3330を開発したAlan Shugart氏が、IBM退社後に(何社かを経て)1973年に設立した会社である。

 そのShugart Associatesは1976年に、同社のSA-400というフロッピードライブを発表しているが、このSA-400を接続するためのI/Fを1979年にSASI(Shugart Associates System Interface)として公開する。

 ちなみにShugart氏は1974年に設立したShugart Associatesを退社、新たに興したのが現在のSeagateであるが、これは余談である。

 そんなSASIであるが、当時ほかにFDD/HDDをつなぐ有力なI/Fがなかったこともあって、瞬く間に広がることになった。1981年9月にはANSI Document X3T9.3として業界標準化も完了しており、初期のパソコンでは広く利用されることになる。

 さてそのSASIだが、別にFDD専用やHDD専用というわけではなく、FDDもHDDも接続できた。さらに言えば、複数のホストから最大8台までのデバイスを接続することも「規格上は」可能だった。

"Up to 8 SASI DEVICES can be supported"と書いておきながら、一番下のCOMPLEX SYSTEMは10個ドライブがいるじゃないか、という突っ込みが可能なあたり、まだ脇が甘かった1980年代という気がする

 もっともこんなCOMPLEX SYSTEMを実装していた例は筆者もまるで聞かない。それどころか"BASIC TWO CONTROL UNIT SYSTEM"も見た記憶がない。一応Shugart Associatesが1980年にリリースしていたSA1403/SA1403DというSASI HDDコントローラーのマニュアルを見ると最大4台までのHDDを制御できるようなので、あるいは市場には存在したのかもしれないが、普段お目に掛かるのは一番上の"SIMPLE SYSTEM"の構成のみだった。

SA1403/SA1403DというSASI HDDコントローラーのマニュアル。SASIはFDDないしHDDのI/Fと書いたが、厳密にはFDDコントローラーやHDDコントローラーとのI/Fというのが正確で、HDDとのI/Fはまた別である。実際これを見ると、20ピンと50ピンの2種類のケーブルでコントローラーとHDDが接続されているのがわかる

 なお、筆者はHDDとFDD以外で利用された例を見かけたことがないが、デバイスの側は以下のさまざまな機器が接続可能になっている。

  • "Winchester Disk"(HDDの事だ)
  • "Floppy Disk"(FDD)
  • "MAG TAPE"(磁気テープドライブ)
  • "OPTICAL DISK"(CD-ROMが世間に登場したのは1985年だったことを考えると、ここで言うOptical DiskはLD(Laser Disk)を念頭に置いていたのかもしれない)

信号ピンは19本しかないがコスト的な問題で 当時普及していた25ピンないし50ピンコネクターを使用

 信号ピンは合計19本しかない。ただ実際には25ピンないし50ピンのコネクターが利用された。

 25ピンないし50ピンのコネクターが利用されたのはなぜか? というとそう規定されているためである。

これはカードエッジの片面だけに信号線が来て、裏側にはなにも信号線が通っていない場合の設定。25本のうち中央6本は未接続になっている
Differentialの信号もサポートされており、この場合前述のSA1403/SA1403DというSASI HDDコントローラーの2倍の信号線となる。あと両端(1~2/49~50)はGNDになっており、未使用ピンが4×2の8ピンとなっている

 D-Subの25ピン、あるいは50ピンのRibbonコントローラーはこの規格が制定された1980年代に普通に入手できたので、これを流用するのがコスト的にも優れていると判断されたというあたりであろう。

 ところでこれを見ても、複数台のFDDやHDDを接続する場合に、どう区別するのかがわからない。SASIはこの後出てくるSCSIと同じく(SASIを元にSCSIが作られたので、SCSIがSASIの仕様を引き継いだというのが正確だが)、機器ごとにIDを持っており、このIDで区別する仕組みとなっている。

 ホストコントローラーはSASIバスの初期化の際に、それぞれのデバイスのIDを取得し、以後はこのバスIDを指定してデータを送受信する仕組みだ。このデバイスIDを取得するシーケンスは、Bus Arbitrationの機能が実装されているか否かで異なるが、そこまで細かい話も不要と思われるので割愛する。

 デバイスのIDを取得するため、SASIの機器側には自分のIDを設定するためのスイッチ(ジャンパーだったりロータリースイッチだったり)が搭載されているのが普通である。ここで、他のデバイスのIDと重ならないように設定するのは利用者の仕事となる。なおこのデバイスのIDの事を、LUN(Logical Unit Number)と称する。

 このSASI、信号レベルとしてはSingle Endedが最小2.5V/最大5.25V、Differentialは最小2.0V/最大5.25Vとなっており、5Vを利用するのが一般的だった。ケーブル長はSingle Endedの場合は最大6mで、Bus Stub(SASIのコネクターから、SASI/機器のコントローラーまでの配線)長は0.1m、Differentialではケーブル長が最大15m、Bus stub長は0.2mと規定されていた。

 ケーブルそのものは50ピンのフラットケーブル、ないしねじった「より対線」を利用することとされ、コネクターは3MのScotchflex #3425-3000が推奨されている。

 ただこのScotchflex #3425-3000は、カードエッジに刺すタイプのコネクターで、ケースの内部の配線はともかくとしてケース外の配線に使うには強度的に心もとない(ちょっと引っ張ると抜けてしまう)こともあり、外部接続の周辺機器には初期のSCSIと同じくロック付きの50ピンアンフェノールコネクターが使われることが多かった。

リファレンスクロックがないため REQ/ACKを利用したハンドシェイクで非同期通信

 気になるSASIの速度であるが、実は仕様には規定がない。そもそも先の信号ピンのところで説明したように、SASIにはリファレンスクロックに当たる信号がない。要するに同期式ではないわけだ。では通信はどうやって行なったか? というと、REQ/ACKを利用したハンドシェイクである。下の画像がそのタイミングチャートであるが、デバイスからの読み込みなら以下の手順になる。

本当はこのチャートは2ページぶち抜きでさまざまなシーケンスが示されているのだが、ここではDataのRead/Writeのみを抜粋した

(1) デバイスがREQをAssertする(0→1にする) (2) この段階でDB0~DB7にはデバイスからのデータが載るので、ホストはこのデータを読み込む (3) データを読み込み終わったホストはACKをAssertする(0→1にする)。このタイミングでDB0~DB7の信号は有効だが意味がなくなる (4) REQ/ACKの両方がAssertされたら、デバイスがREQをNegateする(1→0にする)。この段階でDB0~DB7の信号は無効になる (5) ホストがACKをNegateする(1→0)。これで1回の転送が終わる

 同様にデバイスへの書き込みは以下のとおり。

(1) デバイスがREQをAssertする(0→1にする) (2) ホストはACKをAssertする(0→1にする) (3) この段階でDB0~DB7にはホストからのデータが載るので、デバイスはこのデータを読み込む (4) デバイスはデータを読み込み終わったら、REQをNegateする(1→0にする)。この段階でDB0~DB7の信号は無効になる (5) ホストがACKをNegateする(1→0)。これで1回の転送が終わる

要するにホストとデバイスの両方が、どれだけ高速にハンドシェイクするかで転送速度が決まるわけだ。実はこの仕組み、のちのSCSIにもほぼそのまま継承されたのだが、SCSI-1が公称5MB/秒、実効でも1~2MB/秒の転送速度が確保できた(なにをつなぐか次第ではあったが)のに対し、SASIはそこまで速度が出なかったように記憶している。おそらく1MB/秒未満だっただろう。

 ちなみにSASI自身は、純粋にホストとデバイスの間でメッセージやデータを交換するI/Fの規定であって、その上でどんなデータを流すかといったことには一切関与していない。これは続くSCSIも同じではあるのだが、本来ならもっと汎用に利用されても不思議ではなかった。

 ただそこまで普及しなかったのは、より優れた上位規格としてSCSIが登場し、これが市場を席捲してしまったためだろう。またFDDに関しては、IBM-PCの頃から本体内蔵が一般的になってしまったことにより、拡張バスにFDDのコントローラーを搭載、そこから直接FDDのI/F(34ピンのやつだ)にフラットケーブルなどで接続することになり、SASIを使う必要性がなくなった。

 米国では1983年発売のIBM-PC/XTこそSASIだったが、1984年発売のIBM-PC/ATはIDEに移行。1984年発売のMacintosh 128Kは外部FDD接続用に独自I/Fを採用した(内蔵HDDはなし)が、1986年のMacintosh Plusでは外部接続用にSCSIポートを搭載した。

 こんな経緯もあってか海外では1990年を待たずにSASIはほとんど消えてしまっており、たまにSASIが必要な場合に向けてSASI/SCSIのコンバーター(SCSI HDDをSASI I/Fに接続できるようにするもの)が使われたりしたほどだ。消えるのが妥当なI/Fだった、としていいだろう。

※お断り:記事初出時、PC-9801シリーズのFDDがSASI接続だった旨を記述しておりましたが、これは筆者の記憶違いによる誤りである模様です。当該箇所を削除しお詫びします。(2024年3月21日)

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください