ICTコンサルティング,プロジェクトマネジメント,特定保健システム,遠隔医療システム,救急医療システム

アイフォース・コラム No.5 「巨大システム開発に挑む」 その1

昭和63年12月31日の大晦日の晩。
私と数名のエンジニア達は、ある通信機ベンダーの工場の一室で大泣きした。
その時のエピソードが将来、オブジェクト指向技術との出会いにつながったのです。

国内初の高速デジタル伝送システムの開発


昭和63年12月31日大晦日。この時私達は、某国内通信機器ベンダーの工場にいました。
普通であれば、一般企業は既に正月休みのど真ん中。そんな日に我々は、多摩川の近くにある工場の片隅で、システムのデバッグを行っていました。

開発中だったシステムは、日本の高速デジタル通信網の原点だったSDH(Synchronous Digital Hierarchy)装置である。SDHは、当時、米国Bellcore(元のBell研究所)が提起し、日本においてはNTTが規格化した当時最新のデジタル伝送システムの事である。

基本速度の信号を高次に多重化する「モジュールA」。パス単位の信号のクロスコネクトを行う「モジュールB」。インタフェース・プロトコルを高速に新同期インタフェースに変換するモジュールC/D1、D2。というモジュール化されたネットワークアーキテクチャが特徴となっており、絶対1秒周期のネットワーク警報監視、100msec周期の装置内制御というリアルタイム性を要求されるシステムとなっている。

 このシステムを開発するにあたり、毎週のようにテレコム事業者の技師の方々と、ベンダー各社の技術者、そして我々、ソフトウェアエンジニアが集結し、この巨大で尚且つ高速処理を要求するシステムの開発をどう行うべきが、議論に明け暮れていたのである。そして、現実にソフトウェアのアーキテクチャを決定し、まさに全てが初めての試みで、プロジェクトが始まった。 

大晦日の夜、我々ソフトウェアエンジニアの目は、HP製のICE(インサーキット・エミュレータ)の画面に釘づけになっていた。昭和63年の夏から始まったプロジェクトで、当初から問題だったのは、「100msec周期タスク」をいかに正確に動作させるかだった。インテルのi80286CPUを使用し、C言語で約100KStepを要した100msec周期タスクのプログラムは、そのままでは、動作処理速度が大幅にオーバーしてしまい、網同期を確実にするための「絶対1秒警報判定」を実現するには、到底追いつかないプログラムだった。

我々は、この100msec周期タスクを高速化するために、100KstepのC言語プログラムを、全て捨て去り、最初から再設計する事を決断した。 イベント・マトリクスを利用した、イベント・ドリブンなプログラム設計。すべてのソースコードに高級言語は使用せず、i8086インストラクチャを使用したアセンブラ言語によるコーディング。すべての分岐命令、レジスタ命令を吟味し、極限に近いほどの最適化を実施した。それら全ての作業を1ヶ月間、10名のエンジニアが不眠不休で対応した。

そして、今日、昭和63年大晦日の夜。その100msec周期タスクを始めて実機上で動作させる日がやってきたのだ。 

ヒューレット・パッカード社製のICEを準備する。この頃のHPの基盤には金メッキが施されていて、一枚、一枚手にとって無水アルコールを湿らせたガーゼで基盤の端子部分を磨く。別に錆びているわけではないのだが、1ナノ秒でも高速に動作する事を祈って、念入りに準備するのである。無水アルコールが触れた金メッキの基盤は、薄暗い工場の蛍光灯に照らされて黄金色に輝いていた。 

準備万端である。 

実機ボードにICEのプローブを差し入れ、順序良く電源を投入する。

HPのオペレーティングシステムが立ちあがり、特徴的な「ピンッ!」というビープ音を響かせた。いよいよ開始である。

メモリマップをロード。
ロードモジュールを展開する。
念のため、メモリ上のマシンコードを逆アセンブルし、問題なく展開されている事を確認する。

RUN・・・ 

システムを空転。問題なく動作している。

いよいよ、実行速度を測定することになった。

タイマー割り込みの先頭アドレスと、100msec周期タスクの最終命令の両方にブレイク・ポイントを設定した。 

10名のエンジニアたちは、立ったままじっと画面を凝視した。

RUN・・・ 

ピンッ! 

予定通り100msec周期タスクの最終命令でブレイクした。

動作時間は?

0.087s 

やった!

100msecを大幅に下回り、87msecで空転。この速度なら絶対1秒警報判定に十分耐える事が出来る。

この時は、泣いた。皆で泣いた。
もちろん嬉し泣きであり、感動で胸がいっぱいになった。
皆、がんばった。よくここまでたどり着けたものだ。遠くで鳴り響く除夜の鐘を聞きながら皆で感動を分かち合った。

(つづく)