【コラム】

セカンド・オピニオン

176 バスのアーキテクチャ - 過去から未来へ(137)

    大原雄介  [2006/09/17]

    Wrap-Up その4

    というわけで、いよいよ本当に最後である。この連載でもとにかく多くのバスを取り上げてきたが、それでも有名どころに絞った話であって、まだまだ世の中にはバスが多数溢れている。例えばかつて筆者がデバイスの開発をしたことがあって、取り上げてないもので言っても(古のDECの)VAX-11シリーズで使われていたUniBUSとかMicroVAXで使われていたQ-Bus(Q22Bus)、SunのSPARCシリーズ(初代)で使われていたSBus、汎用I/Oバスとして(ちょっとだけ最初の方で言及した)VME-Bus、もっと古くなるとPC-9801で使われていたC-Busとか、開発はしたことがないが使っていたレベルではS-100なんてバスもある。変なところでは、InmosのTransputerで使われていたLink(Transputer同士を接続する、5M~20MHzの1bit Interconnect。話としてはK8がHyperTransport Link経由で複数CPUを接続する形態に非常によく似ている。Link自体はIEEE-1355として標準化もなされた。が、T400 / T800シリーズに続き登場する筈だったT9000の開発に失敗。結局InmosはSGS-Tomsonに買収され、最終的に消えてしまった)なんかも、今の定義からすれば立派にバスであり、T414を使ってシステムを作っているときにお世話になった覚えがあるが、この類を延々と説明していたらいつまで経っても終らないだろう。

    その一方、新しいバスが相変わらず登場してくるのも事実だ。例えばHyperTransport Linkは3.0にバージョンがあがり、またついにRiser Cardを公式にサポートした。Torrenzaによってヘテロジニアスマルチプロセッサの構成に使われるという新たな用途も広がっており、当分なくなりそうもない。というか、HyperTransport Link登場時にささやかれていた、PCI-Express普及までの暫定解であって、やがてPCI-Expressに置き換えられるだろうといった観測は全く当たっておらず、むしろPCI-Expressと明確に住み分けができつつあるのが現状だ。あるいはPCI-ExpressもGen2世代が射程に入ってきつつあるし、Virtualizationの機能はそろそろ実装を具体的に考えるフェーズになってきたと思われる。

    特定用途向けも相変わらずだ。例えばIntelは自社製品向けに、相変わらず独自バスを大量生産している(コチラでちょっと触れた、GbE向けのKumeran interface portなんかはこの代表例だろう)し、昨日開催されたFTF Japan 2006で公開されたDSI(Distributed System Interface:エアバッグ作動センサー専用バス)はFreescaleとTRW社が共同開発し、OpenStandardとして規格を無償公開しているものだが、150Kbps程度の全二重バスという点は普通だが、コントローラから電圧変化でコマンドを送り、スレーブ(つまりエアバッグ作動用の加速度センサーとか圧力センサーなど)からは電流変化でレスポンスを返すという、これまた他にあまり例を見ないバスである。今後も独自の用途に応じて新しいバスが続々登場してくることは間違いないだろうし、そうあるべきなのだろうと思う。

    ただ、こうした新しいバスが、全く従来のバスと異なる次元で生まれるという事は、まずない。例えばPCI-Expressの場合、物理層はRAMBUS社が以前から開発していた高速シリアルバスI/FであるRaSERを利用しているし、論理層の一番上は従来のPCIのものをそのまま利用している。MAC層にはネットワーク、特にEthernetの伝達保証メカニズムとか転送メカニズムを下敷きにしている部分が少なからず存在していると思えるわけで、こうしたものがあったからこそ、PCI-Expressというものが出来上がったわけである。それではRaSERは? というと、同社が開発してきたRDRAMの物理層レベルのトライアルから生まれたものであるし、一方のPCIは、EISAの物理層レベルのトライアルや、PnP ISAとかECU(EISA Configuration Utility)などで開発されてきたPnPの考え方やその反省を元に生まれている部分がすくなくない。だから新しいバスが出てきたとしても、古いバスの事を理解していれば、実はそれほど理解が難しくないケースも少なくない。

    勿論だからといって「簡単」とは言えないのも事実だ。実際PCI-Expressの説明には結構苦慮した。PCI-SIGのご好意でSpecificationを全部入手した(はPCI-SIGに加盟したメンバー企業は安価で入手できるが、さもなければ1500ドル払ってCD-ROMで全Specificationを購入するしかない)のはいいが、これを単体で読んでもさっぱり理解ができず、解説書を3冊(「The Complete PCI Express* Reference」「PCI Express system architecture」「PCI Express Design & System Architecture」)ほど購入して、Specificationと読み比べならが理解するという方法を取ったが、Specificaionと全ての解説書の章立てが全部異なっており、理解するのにはえらい苦労した。もっとも読んでいる途中で「ああ、ここはTCPの再送に似ている」とか「ここはPCIのConfiguration Spaceを流用している」とか次第にわかってくる訳であるが、硬くなりつつある筆者の頭にはちょっと難易度が高かったのは事実。でも過去のバスの事を知っていなかったら、もっと理解に時間は掛かっただろう。

    これがCPUとかOSといったメジャーなコンポーネントになると、「過去のものを理解していると、新しいものも理解しやすい」というのは割と理解されやすいのだが、バスに関しては日陰者(?)のためか、案外にこうした話はない。勿論一般ユーザーがこんなものを理解する必要があるかといえば無いと思うのだが、もう少し開発者寄りの人にはこうした古いバスのことをもっと理解したほうが便利になると思うし、本連載がそのための一助になればいいなぁ...ということで始めた連載がこんなに続くとは思わなかった(笑)。

    ということでバスの話は今回で完全に終了。来週からはちょっと息抜きシリーズをお届けする。

    新着記事

    特設サイトの情報

      人気記事

      一覧

      新着記事

      特別企画

      マイナビニュースマガジン