大原雄介の最新インターフェイス動向

Serial ATA 3.0編その1



 今回からはSerial ATA編である。COMPUTEX TAIPEI開催直前の5月27日に、SATA-IO(The Serial ATA International Organization)は、SATA 3.0の仕様策定が完了したことを発表した。すでに手可能(SATA-IOのMemberで無い場合、こちらから購入可能)となっている。

 昨年8月のニュースでは、2008年後半に完了のはずが、9月の時点で「2009年の早い時期」になり、最終的には2009年6月と、半年ほどずれ込んだ事になるわけだが、これに先立ち3月にはSeagate TechnologyとAMDが共同で公開デモを行なうなど、仕様のみならず製品化に向けた動きも水面下では着実に進んでいた事が判る。ということで、このSATA 3.0の話を説明するわけだが、今回もまず概要というか、過去の進化について、かいつまんでご紹介したいと思う。

●過去の規格の生い立ち

 もともとPCのHDDの規格は、SASI(Shugart Associate System Interface)が元になっている。これはShugart Associates(その後Xeroxに買収される)が'79年に制定した規格である。もともとPC向けといえば、ST-506というHDD('80年に発売)が多く使われていたが、その製造はShugart Technology(その後Seagate Technologyに改称)である。実は両方とも創立者はAlan Field Shugart氏という人物。

 氏は'73年にまずShugart Associatesを設立するが、同社がXeroxの買収された後に今度はShugart Technologyを設立。さすがに名前が紛らわしいと紛争になり、Seagate Technologyに名前を変えたという次第だ。本題に戻ると、最初のHDDインターフェイスはこのST-506のものであった。このST-506に使われているインターフェイス(以下ST-506インターフェイスとする)は、Shugart AssociatesのSA1000というインターフェイスをベースに、若干速度を高速化しただけのものである。

 このST-506インターフェイスは後のIDEなどとはおよそかけ離れたものだった。配線は制御用が34本、データ用が20本となっているが(図1)、制御用の方はモータの制御やヘッドのアーム制御を行なうもので、データ用は20本もありながら、実質データは4本(送受信がディファレンシャルで1対ずつ)。後はGNDと非接続という代物だった。要するにHDDの制御そのものをコントローラでやっていた事になる。このST-506がIBM/PCに採用されて大量に出荷されたため、標準になった形だ。

【図1】ST-506インターフェイスの概要

 この方式だと、HDDコントローラが拡張バスを占有することになり、拡張性に難があるし、異なる形式のHDDは当然接続できない。そのため、もう少し抽象度を高めたインターフェイスを用意することになった。これがSASIであり、更にその2年後にはこれがSCSIとなる。

 SASIは標準で50ピン(このあたりは厳密に決めなかったために、これに準拠しないものもある)のコネクタを使うが、その中身は後のIDEとかSCSIに近いものである。ただそのままだとHDDはこれを認識できないので、HDDの底面などに、SASIとST-506を変換するボードを搭載するという形で実装がなされた(図2)。その後、転送速度を高めたESDIといった規格も登場するが、こちらはSASIほどには普及しなかった。というか、その次に登場したIDEがESDIを駆逐してしまったというべきか。

【図2】SASIインターフェイスの概要

 そのIDEであるが、こちらはWesternDigitalとConner Peripherals(こちらの創始者であるFinis Conner氏は、その前はAlan Field Shugart氏と一緒にShugart Technologyを創立したパートナーだったりするのがまたややこしい。ちなみにConner Peripheralsは'96年にSeagate Technologyに買収されるが、Finis Conner氏は更にConner TechnologyとStorcardという会社を立ち上げる。前者は低価格向けHDDをリリースするが、思ったほどに価格が下がらず、結局廃業となった。一方後者は現在もまだ健在である)が共同で策定した規格である。

 IDEは、ケーブルの構造が独自の規格で、規格そのものも不十分な部分があり、ベンダーによる独自拡張が行なわれたケースもあった。まずケーブルについては、いわゆるPATAとして知られる40ピン(まだ80ピンではない)のフラットケーブルによる接続が行なわれるようになったのは、Western DigitalとCDC(Control Data Corporation)、COMPAQ(現HP)の3社が、共同で新しいHDDの規格を策定した時に登場した。これはCOMPAQが自社のIBM-PC/AT互換機に組み込むのに、もう少し拡張性に配慮したものを欲していたからだ。ちなみにCDCがHDD、Western Digitalはコントローラをそれぞれ提供している。

 COMPAQはこれとは別にConner Peripheralsとも共同で、やはり小型のHDDを開発しており、こちらはWestern Digital/CDCとの共同開発で登場した製品よりも更にコンパクトになった。これらが最終的に、IDE(Integrated Drive Electronics)と呼ばれるようになったParallel ATAのご先祖様ということになる。

●標準規格としてATAが登場

 前述の通り、IDEは標準規格ではなかったので、これを独自に拡張した製品を出すベンダーなども登場して、混乱するようになってきた。そのため'89年に関係するベンダーが集まって標準化を行なったのがATA(AT Attachment)である。このATAはその後ANSIにおいてANSI Standard X3.221-1994として標準化が行なわれ、これで名実共に標準規格となった。この規格はATA-1として知られている。

 これに続き、'94年にはEIDE(Enhanced IDE)という規格が登場した。直接的な契機は、504MBの壁と呼ばれる問題の解決である。IDEやATA、あるいはその前のST-506などは、CHSと呼ばれる方法でHDDにアクセスしていた。これは、C:Cylinder(シリンダ番号)、H:Head(ヘッド番号)、S:Sector(セクタ番号)の略で、元々のPCのBIOSが、C:0~1,023、H:0~255(なのだが、実質的には0~15)、S:1~63、までしかカバーしておらず、1,024×16×64×512(これはセクタあたりのバイト数)=528,482,304Bytes=504MBが上限になるというものだ。

 これを解決するために、新たにLBA(Logical Block Number)と呼ばれる、通し番号をセクタに振り、これでアクセスを行なう方法を導入した。ちなみにこのLBAは当初28bit=268,435,456個分のセクタを管理でき、128GBまでカバーできる。当時はこれで十分だろうと判断したのだろうが、昨今はSSDですらこれを超えているのはご存知の通り。その結果、途中からLBAを48bitに増やした、いわゆるBig Driveが登場している。こちらでは最大128PBの容量を管理できることになっている、今年のHDDが最大容量が2TBで、この先毎年最大容量が2倍で増えていくとしても、2025年までは持つ計算だ。

 EIDEではほかに、より高速な転送モードが導入された。ATA-1では最高で8.3MB/secだったのが、EIDEでは16.7MB/secがサポートされるようになる。これらは最終的にATA-2として'96年に標準化される。これに続くATA-3は'97年に登場するが、この規格では速度向上はなく、SMARTの対応とかリムーバブルメディアのサポートなどが追加された。

 '98年にはUltra DMAをサポートしたATA-4が登場。最大33.3MB/secの転送速度がサポートされる。ちなみに、このATA-4から、CD-ROMなどのATAPI(ATA Packet Interface)デバイスを正式にサポートし、規格名もATA/ATAPI-4になった。

 これに続くのが2000年のATA/ATAPI-5である。遂に転送速度は66.6MB/secに達するが、こうなると従来の40ピンのフラットケーブルで接続が難しくなり、80ピンのフラットケーブルを採用するようになる。

 2002年には100MB/secをサポートしたATA/ATAPI-6が登場。このATA/ATAPI-6で先に述べた48bit LBAがサポートされる。更に2005年には、133.3MB/secに向上し、ここでParallel ATAの発展は事実上打ち止めになり、ここからSerial ATAに切り替わっていく。

 このあたりを簡単にまとめたのが表1である。実際にはATA-1~ATA/ATAPI-7までの各特長にはもう少し色々あるのだが、ATA/ATAPIの規格そのものを論じている訳ではないので、細かいところは適当に省略させていただいた。

【表1】
規格名通称規格化時期転送速度(MB/sec)その他の特徴
PIOSingle Mode
DMA
Multi Mode
DMA
Ultra DMASATA
ATA-1IDE1994年3.3/5.2/8.32.1/4.2/8.34.2N/AN/A初期バージョン
ATA-2EIDE1996年3.3/5.2/8.3
/11.1/16.7
4.2/13.3/16.7PIOの拡張とSingle Mode DMA/Multi Mode DMAの追加
ATA-3EIDE1997年N/ASingle Mode DMA削除、SMART対応、リムーバブルメディアの対応
ATA/ATAPI-4UltraATA/331998年16.7/25.0/33.3ATAPIの統合、Ultra DMAのサポート
ATA/ATAPI-5UltraATA/662000年16.7/25.0/33.3
/44.4/66.6
Ultra DMAのモード追加、80pin フラットケーブルの利用
ATA/ATAPI-6UltraATA/1002002年16.7/25.0/33.3/
44.4/66.6/100.0
Ultra DMAのモード追加、48bit LBAのサポート
ATA/ATAPI-7UltraATA/1332005年16.7/25.0/33.3/44.4
/66.6/100.0/133.3
SATA/150Ultra DMAのモード追加、コマンドの追加等

●既定路線だったシリアルへの移行

 このパラレルからシリアルへの変遷は、性能向上を考えるときに避けて通れない道だった。ATA-1からATA/ATAPI-7までは、基本的には40ピンのフラットケーブルを使って接続する。この40ピンのうちデータには16ピンが割り当てられ、16bit幅で転送を行なっていた。だから例えばATA/ATAPI-5の場合、Ultra DMAをフルに使う(Ultra DMA Mode 4:66MB/sec)と33MHzで信号が流れる計算となる。信号の速度そのものは今日のバスでは大して問題が無いレベルだが、なにしろ過去との互換性を保つために、例えばスクランブリングを施したり、電圧レベルを下げたりといった、高速転送時によく利用できるテクニックが使えない。このため、外部からのノイズに弱いとか、信号線相互のクロストークが洒落にならないといった問題が続出したのだ。

 対策としてシールドを強化すると共に、図3のようにフラットケーブルを倍の80本とし、1本毎にGNDに落とすことでクロストークの影響を避けるという凄い事になった。この時点でかなり無理矢理というか、このまま高速化を進めるのは無理という事はある程度見えてきていた。

【図3】40ピンと80ピンIDEケーブルの違い

 このため、ATP Technology、Dell、Intel、Maxtor、Seagateという5社でSerial ATA Working Groupという組織を2000年に立ち上げ、新しい接続方式としてのSerial ATAの検討を始めた。最初のSerial ATA 1.0の仕様は同年11月にリリースされた。このSerial ATA Working Groupはその後SATA-IO(Serial ATA International Organization)と名前を変え、2002年には後継となるSATA-IIの開発に取り掛かる。

 こうした動きもあり、例えばIntelは自社のチップセットでATA/ATAPI-7をサポートしなかった(正確に書けば、Parallel ATAポートでUltra DMA Mode 6をサポートしなかった)上、いち早くParallel ATAそのものの廃止に向かう。2004年に登場したIntelのICH6チップセットは、Parallel ATAポートをサポートしておらず、このためマザーボード上に、別途PCIやPCI Express経由でParallel ATAをサポートするコントローラを接続する形で機能を補う製品が多数登場することになった。

 当初、他のチップセットベンダーは、それでもUltra DMA Mode 6をサポートしたり、引続きParallel ATAを2ch搭載したりしたが、次第にIntelに引きずられる形でParallel ATAのサポートを減らしていくようになる。これとほぼ同じくして、市場には、まずSerial ATA対応のHDDが大量に出てくるようになり、その後(だいぶかかったが)CD-ROMなどの光学ドライブ系もSerial ATAへの移行が始まった。現時点では、まだParallel ATA対応の光学ドライブは比較的容易に入手可能ではあるが、主流は完全にSerial ATAに変わった。

 こうした動きを受けてか、元々ATAの標準化を行なっていたT13はATA/ATAPI-8の審議を2004年より始めたものの、現時点でもまだATA/ATAPI-8は審議中となっている。もっともATA/ATAPI-8の中でコマンドセットに関してのみ、DraftではあるがすでにPublished Standardとして公開されており、コマンドセットに関してはこちらが事実上の標準とされている。だが、Parallel Transportに関しては2007年11月にRevision 2のDraftがリリースされたっきりとなっているし、スピードに関しては133.3MB/secのUltra DMA Mode 6が最高となっており、これ以上性能を引き上げる予定もないようだ。

 現在のATAのアーキテクチャは図4のような構図になっている。まず全体の構造の定義をATA8-AAM(こちらはDraft Revision 3が2006年5月にリリースされている)が行ない、コマンドパケットをATA8-ACSが定め、その下にパラレルとシリアルがそれぞれ用意される形だ。要するにParallel ATA/ATAPI-8というものが出来たとしても、それは速度的にはATA/ATAPI-7と全く差が無く、単にATA/ATAPI-8で追加された各種追加機能に対応しただけのものになる予定で、現実問題としてそうした製品が登場する可能性が薄い以上、このATA8-APTはDraftのまま終わるのではないかと想像される。

【図4】現在のATAアーキテクチャの構造

 ちなみに、それではATA8-ASTの方はというと、こちらは2007年8月にRevision 1のDraftがリリースされてはいるが、内容はほとんど無く、端的に言えばSATA Revision 2.6の仕様を参照と書いてあるだけである。そんなわけで、T13はATA8-ACSのみを現実問題として定義しており、Transportに関しては完全にSATA-IOにお任せという状態になっているわけだ。

バックナンバー

(2009年 6月 16日)

[Text by 大原 雄介]