連載
» 2006年10月06日 00時00分 公開

組み込みギョーカイの常識・非常識(2):組み込みシステムって何?

あいまいな使われ方をする「組み込み」という言葉。何をもって組み込みシステムとするか、まずは言葉の定義を共有しておこう

[中根 隆康 フリー・アーキテクト/(株)ネクスト・ディメンション,@IT MONOist]

 第1回では「どんな組み込みエンジニアになりたいですか?」という話をしましたが、そもそも「組み込み」って何なのでしょう。記述の仕方も「組み込み」「組込み」「組込」とまちまちでまったく統一されていません(「組込み」としているところが多いようですが)。

 いろいろなWebサイトで調べてみると、「パソコン、サーバ、メインフレーム以外でコンピュータ制御されている機器はすべて組み込みシステム」となっているようです。

 前回も少し述べましたが、ざっと並べてみると、通信機器(電話、携帯電話、FAXなど)、運輸機器(自動車、電車、航空機、船舶など)、FA機器(NC加工機、工業用ロボット、搬送装置など)、家電機器(洗濯機、電子レンジ、エアコンなど)、AV機器(テレビ、ビデオ、オーディオなど)、娯楽機器(ゲーム機、パチンコ、カラオケなど)、PDA、OA機器(プリンタ、スキャナ、コピー機など)、医療機器(心電計、CT、MRI、レントゲンなど)、計測器(オシロスコープ、電力メーター、ガスメーターなど)。ここに挙げただけでもほとんどの電子、電気機器が組み込みになります。組み込み以外の電気製品を探す方が難しそうです。

 ここで少し脱線しますが、PDAは組み込みで、パソコンは組み込みではないという定説が前々から気になっています。いったい何が違うのでしょうね。ハードウェアのアーキテクチャにしてもOSにしても何も変わらないと思うのですが、どなたか明確に説明してくれる方がいたら教えてください。

自分の専門分野しか知らない、と胸を張っているようでは……

 前回も述べましたが、これらがすべて組み込みシステムだとすると、組み込みエンジニアはそのすべて知っているのかといえば、そんなわけではありません。自分の扱っている製品、または自分の担当している部分だけしか知らないエンジニアも少なくないようです。ある意味では、特化した知識を持っているプロフェッショナルといえなくもないですが。

 これまでいろいろなエンジニアと付き合ってきて一番困ったのは、自分の担当している部分以外は知らない、知る必要がないと頑固なまでに主張する人でした。そんな人は大体、自分の担当部分以外で何かトラブルが発生すると、自分の担当しているところは絶対悪くないとガードに入り、悪くないことを証明するために必死になります。

 結果的には、この証明のおかげでほかの部分が原因であると分かることも多いので、いいことのように思われがちですが、冷静に考えてみてください(特に、マネージャやチームリーダーの方)。

 「自分のところは悪くない」という考えでの原因究明と「どこが悪いんだ?」という考えでの原因究明は、結果は同じでも根本的なアプローチが違っています。「自分のところは悪くない」という考えでアプローチした場合、当然、ほかの部分を担当している人と協力しようなどとは、思わないでしょう。

 「どこが悪いんだ?」という考えでアプローチした場合は、当然、自分以外の部分を担当している人との協力が必要になるはずです。特にハードが悪いのか、ソフトが悪いのか明確にできないときには、「自分のところは悪くない」でアプローチすると原因究明にとてつもなく時間がかかったりします(この文章を読んで苦笑いしている方も多いのでは?)。

組み込みを定義する、その真意とは?

 だいぶ脱線してしまいましたので、軌道修正します。

 今回のテーマは「組み込みシステムって何?」ですね。世の中の定義では、さまざまな電子機器や電気機器などが組み込みシステムだということは理解できたと思いますが、ものすごくあいまいですね。また、人によって「それは、組み込みソフトとはいわない。アプリケーションソフトだ」などという場合もあります。じゃあ、組み込みソフトとアプリケーションソフトは何が違うのかということになってしまいますので、私なりの「組み込みシステムとは?」の解釈を述べておきましょう。



  • CPU(または、MPU)を搭載したハードウェアがあり、そのハードウェアに何らかの入力があり、その入力を基に何らかのハードウェアを制御するもの。
  • ハードウェアとソフトウェアが一体になって相互関連しながら動作するもの。


 「これもあいまいだ」といわれそうですが、肝心なのは、ハードウェアとソフトウェアが相互関連していることだと思っています。従って、ハードウェアとソフトウェアのトレードオフが発生する可能性もあるのです。

 では、「ハードウェアとソフトウェアのトレードオフとは何?」ということになりますが、現実にあった話を紹介すると、あるハードウェアを制御する装置で、

  • スピードや精度を優先するために、それらに対応したハードウェアを使って制御するのか
  • そこそこのスピード、または精度でよいから部品のコストを下げるためにソフトウェアで制御するのか

をシステム設計の際に検討すること、検討できることです。

 プロトタイプのときはハードウェアで制御していたが、製品化するときには、ハードウェアのコストが高いのでソフトウェアでの制御に変更するなどということも間々あるようですし、逆にソフトウェアの処理では性能が出ないのでハードウェアを追加することも時にはあります。

 これを読んでニヤニヤしている人もいるのではないでしょうか。「それは基本設計が悪いんだ」と、おしかりの声も聞こえてきそうですが、これも現実ですので頭の片隅に覚えておくと、実際にそうなったときに戸惑わなくて済みます。


 今回も少し概論に近い話で終わってしまいましたが、次回からは組み込みシステムを構成しているもの(組み込みソフト屋から見たハードウェア)の基本的な動作や使い方について、できるだけ分かりやすく書いていきたいと思います。

 ご意見、ご要望などがありましたらできる限り取り込んでいきたいと思いますので、下記までメールをお送りください。(次回に続く)


Copyright © ITmedia, Inc. All Rights Reserved.