のんびりと各章に分けてUPして行こうと思うが今回は前書きと第一章を公開します
【第1章】1990年代、混沌としたI/Oの海へ
1990年代初頭、パソコンの背面には、無数のポートが並んでいた。今のようにUSBひとつで全てが済む時代とは違う。通信専用のRS-232C端子、プリンターの専用端子、キーボードとマウス専用のPS/2端子。記憶装置用の高速SCSIインタフェース、そして独自仕様のコネクタ……。そのすべてが「標準」であるようで、「標準」でなかった。まさにI/Oインターフェースの群雄割拠。統一も秩序もない、まるで戦国時代のようだった。
私は、長野県に本社を構えるある一部上場企業──その本社開発部に所属し、制御回路や組み込み設計を担当していた時期だ(数社転職している)。電子回路設計のエンジニアとして、日々、多種多様な装置の制御系を手がけていた。マイコンを使ったタイマ制御、電源系のフェイルセーフ設計、産業機器とのインターフェース──そうした業務に忙殺されながらも、私はどこか、満たされない思いを抱えていた。
「この混乱は、いつか終わるのだろうか?私の担当している製品のインタフェースは業界標準になっているが、一般ユーザーには無関係な場所に使う」
業務の中で扱うI/Oインターフェースは、標準化してもOEM先要求により、そのたびに専用設計を強いられる事も多々あった。折角標準化を提唱したのにだ。OEM先の要求するインタフェースが頭に入るまでは仕様書の熟読とソフト開発を並行しながら試行錯誤。端子の割当や信号のタイミング、ノイズ耐性。一つの製品分野なのにインタフェースが違う世界があり、それを都度力技でまとめる。時代はまだWindows95 あるいは Windows NT、MS-DOS。OSの力も頼りない。エンジニアの腕と、現場の勘に多くが委ねられていた。
そんなある日、私に一通の技術資料が届いた。幹事会社である三菱電機からだ。私宛である。「次世代インターフェース」に関する資料。まだ“USB”という名称もはっきりとは示されていなかったが、その中にはいくつかの意味深なキーワードが並んでいた。
──ホスト制御
──ホットプラグ対応
──低速から高速までのマルチスピード
──トポロジ階層型の通信構造
──電源供給のバス統合
紙面の説明はわずか数ページ、図もあっさりとしたものだったが、私は読みながら次第に技術者魂が興奮した。
「これだ──これは、混沌としたPCの端子をすべてを統一する“何か”だ。」
紙に描かれたそのインターフェース構想は、既存のどのポートとも異なっていた。単に信号のやり取りだけではなく、機器の認識、アドレスの割当て、転送タイプの区別まで含めた「制御の思想」がそこにあった。つまり、これは単なる物理層ではなく、「設計思想を内包したインターフェース」なのだ。と同時にSCSIのコマンド体系に似てるな、とも思った。
頭の中で、神経回路が動き出すのを感じた。
「OSは認識して通信破綻しなければそれで良い。私はOS屋じゃない。組み込み制御ソフト屋だ。2本のシリアルポート、もしかしたらおまけでマイコンに付いてるUART機能だけで行けそうだ」
私はその夜、会社を出た後も眠れなかった。私は考えていた。ハードウェアで実現出来る感触だが、部品代がもったいなぞ。ここはソフト処理で部品不要かな?私はノートに書かない主義で脳内で絵を描く。困った時は模造紙(岐阜県民はB紙と言う)に木の幹と枝を書いて考える少し変わった事をする。
また、会社の休みの日は異性も探さない。飲みにも行かない。結婚も意識しない。部屋にこもって音楽を流して天井を見てるだけ。何を考えてるんだ?愛車を洗車してピカピカに磨き、午後に雨が降って悲しくなる。まさにマーフィーの法則。それが休みのルーティン。実家住まいだったから、この行動は両親・兄弟は不気味に映ったに違いない。私の中では、すでに仕事というよりも、未来を見てしまった者の「これは面白い挑戦だ」という心が芽生え始めていた。
当時、USBはまだ公式には世に出ていなかった。世間では「Plug and Pray(端子に周辺機器をつなぐ時、動いてくださいと祈りながら挿せ。動いたら儲けものだ)」という言葉が使われるほど、周辺機器の接続は不安定だった。何かをつなげば動くかもしれない、動かないかもしれない。ドライバはどこかへ行ってしまい、ケーブルのピンアサインは謎。そんな時代だった。
私は直感的に理解していた。この新しいバス規格は、世界のルールを変える。
そして、もしそれを今、理解できるなら、自分が実装を考えるべきではないか?うぬぼれ過ぎである。
私はまだUSBという名前すら使われていない時期に、その動作ロジックをハードウェアで再現しようと考えていた。ソフトではなく、回路でUSBを語ろうとしたのだ。
あの時、社内にUSBの全体像を本気で理解していた者は、おそらく私一人だった。なぜなら、みな「先の話だろう」と見ていたし、「OS依存のものだろう」と思っていた。だが私は違った。OSに頼らず、論理回路だけでこのバスに対応できるなら、それはとても興味深い。私は制御ソフト屋であり、電気屋なのだから。
USBは、単なるバスではない。制御モデルそのものを内包した設計なのだ。そこに気づいた時、私はもう引き返せなかった。
次回、第2章「未発表のドラフト、そして“変換”の発想」をお楽しみに!