1980年代半ば、筆者はコンピュータグラフィックス企業である米Evans&Sutherland社で、フライトシミュレータ用のビジュアルシステムを設計していた。当時のシステムは、19インチ(約48.3cm)のラックを数十個も使う非常に大きな構成であった。そこにぎっしり詰まったカードの集まりが、コクピットの窓から見える視界を擬似的に生成する。用いられている主要な技術は、ワイヤーラッピングとTTLの74LSシリーズであった。筆者らは、このような数百万米ドルもする大規模システムを1台、NASA(アメリカ航空宇宙局)に出荷する準備を整えていた。しかし、出荷予定日の2日前に行った最終テストで、複数のチャンネルにスパークル(火花のような輝き)が発生するという問題が発覚した。
1つだけ明らかだったのは、ディスプレイプロセッサに原因があったということである。そのディスプレイプロセッサは、約100個のワイヤーラッピング基板とプリント回路基板(PCB)の集まりがワイヤーラッピングのバックパネルに接続される構成となっていた。さらに悪いことに、このシステムの解像度は1024ピクセル×1024ピクセルで、4台のディスプレイプロセッサに対し、現在では市販のグラフィックスチップで使用されているスキャンラインインターリーブ方式で負荷を分散する必要があった。そのため、問題が存在する可能性のある部分は、約400枚のカード、約100本のケーブル、数十万本のワイヤーにも及ぶことになった。
筆者は会社の上層部から「問題を特定し修復するように」との指示を受けた。解析の結果、個々のプロセッサからの画像はそれぞれ単体では正常であることが分かった。しかし、それらを組み合わせた画像にはひどいスパークルが生じていた。最も怪しいのは、周期が25nsというシステム内で最高速のクロックであった。このクロックは、バックパネルを8回、カードを16回横切り、3本のリボンケーブルを通っていた。
筆者は、立ち上がり時間と降下時間を制御し、コモンモードノイズを低減するために、ECL(emitter coupled logic)と差動信号を用いるのがよいのではないかと考えた。しかし、このような変更を施すには、多くのカードに新しい部品を配置したり、多くのシングル線をツイストペア線に置き換えたりといったことを行わなければならなかった。
非常に差し迫った状況であったことから、筆者らのチームは、とにかくまず1つのプロセッサを改造してテストを行ってみた。その結果、クロックは正常に見えたため、われわれは1つのチャンネル内のほかの3つのプロセッサにも改造を施した。ところが、困ったことにそれらを組み合わせてみると、最終段のプロセッサには深刻な異常が生じていた。クロックのデューティに異常があり、細かいパルス列の形に歪んでいたのだ。
再度詳細に調べてみると、ECLの立ち上がり時間は、降下時間よりも通常0.5ns遅いことが分かった。その影響で、各バッファが12.5nsというクロックのハイ期間を侵食していたのだ。うまいタイミングでクロックを反転することで、デューティサイクルのバランスを回復することができ、スパークルの発生は抑えられた。
筆者は社の上層部に問題とその解決策を説明した。改造に必要な作業量が多いため、最初は反対もあったが、すぐにすべての関係者の支持を得ることができた。通常は何週間もかかる承認手続きが数時間で完了した。続いて改造を担当する技術者のグループが、残り10台ほどのプロセッサに対する作業に取り掛かった。結果として、定められた期日に製品を出荷することができた。
この経験を通じて、筆者は技術知識以外にも大切なことを学んだ。差し迫った状況に置かれるのは心地よいことではない。しかしそのような状況が、面倒な事務手続きを切り抜ける特殊な力を与えてくれるということである。
Copyright © ITmedia, Inc. All Rights Reserved.