組込み開発とLSIとテスト

私は長年、組込み開発に従事してきたベテランエンジニア.Tと言います。組込み開発を中心に、ソフトウェアエンジニアはどうあるべきか、など、日頃考えている事や感じた事をとめどなく書いてみようと思います。

目次

組込み開発で出会ったエラーと検証の話

遥か昔の話です。

組込み開発プロジェクトで、バッチ処理プログラムの開発を先輩から指示されました。コーディング、デバッグ、テストを終わらせて、運用テストを開始すると、不定期にデータエラーが発生するではないですか・・・

データエラー発生時の入力データを特定し再現試験を行いました。しかし、何故かデータエラーは発生しないのです。何度再現試験を行っても発生しませんでした。再現性が無い不具合ほど厄介なものはありません。 ソースコードを再検証しますが、不具合を見つけることができません。

コンパイラー等の開発ツールのバージョンを変えても不具合が発生します。さて、どうやって解析と検証を進めたら良いのか悩んでいる最中にも、不定期にデータエラーは発生していました。

特定できない組込みプログラムのエラーの原因

どうしても不具合の原因が分からないため、先輩や上司と検証方法を相談し、ソフトウェア技術本部にアラームを上げることにしました。その後ハードウェア技術本部を絡めて全社的な検証調査が始まりました。

後でハードウェア担当エンジニアから聞いた話では、問題が発生するモデルの開発本部(海外です)にまでアラームが上がり、様々な検証を行ったようです。

特定できたエラーの原因は・・・

暫くすると検証結果と不具合の原因が判明した、と報告が届きました。不具合の原因は、何とコンピューターの心臓部であるCPUそのものの不具合だったのです。

設計時の性能保証温度範囲を満足しない不良品が出回っていたのです。動作温度が動作できる温度からわずかに外れた時に演算結果にエラーが紛れ込むことが検証結果から判明しました。その後、この問題をきっかけに世界的に同モデルの販売が停止になってしまいました。

組込み開発プロジェクトで遭遇するトラブルへの対処法

このようなトラブルには滅多に遭遇するものではありませんが、不幸にも遭遇するとその検証と解決は各方面の専門家の協力が不可欠です。皆さんもエンジニアとして長い人生を歩む途中で様々なトラブルに遭遇するでしょう。その時は周りの皆さんに協力を仰ぎ、乗り越えてください。

ある組込みソフトウェアの研究開発案件似て

もう一つ、組込み開発におけるエラーとテストの話です。

あるネットワークプロバイダーの研究所で、次世代無線通信用エンコーダー・デコーダー装置の研究開発を手伝った時です。ソフトウェア処理では間に合わないため電文のエンコード・デコードを行う専用のCODEC LSIを採用しました。

組込み開発とCODEC LSI

実はこのCODEC LSIは試作ASIC (Application Specific IC、特定用途向けIC) だったのです。(試作段階のICはES (Engineering Sample) とも言います。)『試作』ですので、動作保証はありません。
実際、起動直後は正常に動作していたにもかかわらず、暫くすると異常な動作に陥ることもありました。

自分の組込みソフトウェアが悪いのか、CODEC LSIが悪いのか

こうなると、自分がコーディングした制御ソフトウェアが悪いのかCODEC LSIが悪いのか見分けが付かなくなります。正常に動作していた制御ソフトウェアが突然異常な動作をするのです。不満を言いつつも何とか正常に動作させようと検証と試行錯誤しながらコーディングとテストを継続します。しかし、暫くすると改良された(と言う)次のESが届くのです。

テスト・テスト・テスト・・・

『今度は大丈夫だろう』と思いも新たにテストを再開すると、今度は違うところで不具合が出始めます。研究者と協力しながら次世代無線通信装置を動かすことが目的ですが、さすがにこの検証方法による試行錯誤には疲れてしまいました。幸いにも何とか動かすことができたのが救いでした。

こんなドタバタを繰り返しながら動かしたシステムでしたが、協力した研究者は後日試作した無線装置を使った研究論文をしっかりと発表していました。さすがです。

別の試作ASICでの不具合

別の機会にですが、データーセンター向け大規模ネットワークスイッチング装置の開発を行った時にも試作ASICを採用していました。この時はその試作ASICを最終製品に採用するかどうかの判定を行うための評価が目的でしたが、やはり動作が不安定で苦労させられました。

組込み開発エンジニアと新しいLSIとの向き合い方

今までに無い組込みシステムや次世代の装置などを開発しようとすると、全く新しいLSIを開発または評価することがよくあります。しかし、新しいLSIを使おうとすると、予測できないトラブルが起こることがあることを事前に考えておく必要があります。

ちなみに、当社では組込み開発を始め、様々なシステム開発の相談、設計、実装を全国対応で行なっています。無料相談も実施していますので、お気軽にご相談ください。

この記事を書いた人

株式会社スクラムソフトウェアで、長年の組込み開発エンジニアとしての経験から、実際の開発業務と若手エンジニアの技術指導を行っています。

目次