前回はシステムの寿命の話をした。今回は技術の寿命の話と云える。ただし現実に仕事で関わった内容で詳しく書けないので、迫力に欠けるのはご容赦願いたい。怒られたら削除しますので了解願います。

二十年前ぐらいにとある機能を持った IC が開発され、ニッチな分野ながらそれなりの継続性を持った製品に搭載されていた。ところが IC のプロセスはご存知のように日進月歩で、当時作られた IC が製造できなくなってきた。しかしその IC はシンプルな部品とはいえシステム構成に重要な役割を果たしていて、しかも独自設計なので代替えが効かないのである。そこで困ったシステムビルダーは、ある会社に同等品の設計を依頼しなんとかシステムの継続性を維持しようとした。当時の IC 設計者はすでに引退していたが、幸いなことに仕様書、ブロック図、回路図は残っており、それを見ながらほぼ完コピで部品を立ち上げた。
機能性能共に当時の IC を再現しており、プロセスが進歩した分だけ消費電力が下がって応答が良くなっている、というおまけ付きで納めることが出来た。
が、これをシステムアップするとトラブルが起きてしまった。
ちょっとだけ図解するとこんな感じのシステムである。
イメージ 1
コントロールボードからクロックとそれに同期したシリアルデータがスレーブチップに送られる。スレーブチップはデータを適当に処理しながら次のスレーブチップにデータを渡す。これをデイジーチェイン接続して規模のあるシステムと構築されていた。
発生した問題というのは、スレーブチップが 1個の場合は全く問題ないのに多段接続すると最初のスレーブチップのところからデータ化けが発生した。昔のチップなら問題ない。ロジック波形を見てみると同期ズレが起きていることが分かった。
で、詳細を調査することになり多段接続の場合何が起きるか見てみようということで、一つのチップのみ接続して多段接続の代わりに数メートルのツイストペアをつないでアナログ的に詳しく見て見たところ、そのチップのクロック入力が歪んでいて、チップのデータ出力が同期ズレを起こして化けているのが観測された。
いつか来た道である。こちらをご覧下さい。

SCSI バス信号の歪みを消せ!>双方向信号の片方向にフィルタを入れるには?
https://blogs.yahoo.co.jp/susanoo2001_hero/folder/456816.html?m=lc&p=5

要するに起きていたことは、クロックをデイジーチェインで長い距離接続した結果、終端で反射が起きて最初のチップのクロックに歪みを生じさせ同期ズレを起こしていたと云うことである。

ではなぜ昔のチップなら大丈夫だったのか?
話は簡単でプロセスが古く、IC の応答速度も遅かったので歪みを引っかけて同期ズレを起こすことがなかったということだ。あるいは各チップに何らかのフィルタが入っていたのかも知れない。いずれにしても現在の IC の応答速度を考えるとこういうシステム設計はありえない。どうすれば良いのかというと、スレーブチップでクロックとデータを受けたら、スレーブチップ内で使われたクロックを再度バッファリングしてデータとまとめて次のスレーブチップに送れば解決する。クロックラインを長々と引き回してはいけないのである。だがそういう構成にしなくてはいけないシステムもあるだろう。そういう場合はちゃんと同軸ケーブルを用いて終端処理=インピーダンスマッチングを行って、反射が起きないようにしなくてはいけない。コントロールボードのクロックドライバもそれなりの能力がないといけない。

ということでこればっかりはどうしようもない、という結論しか出てこなかった。強いていうならスレーブチップ間にクロックバッファを入れれば、反射があっても影響を受けないので実用には耐えられる。

さて、本件どのように見えるだろうか。
システムを構築する際に反射などの現象を想定していなかったため技術の進歩について行けなかった、と見るか、新規部品を古いシステムに配慮せずに作ったのが問題か(ただしチップで完結しようとすると結構難しい)、悩ましいところである。
え、前回システム変更は大変だからそうならないようにすべきだろう、といってるじゃんって!?
まあそうなんですけど立場変われば,,,(^^;

イメージ 2 ← にほんブログ村「科学」-「技術・工学」へ
 ↑ クリックをお願いします。