デジタルオーディオプレーヤー、テレビ、DVDレコーダーなどなど、幅広い適用製品。半導体プロセスからOS、ミドルウェア、アプリケーションまで、幅広い技術領域。それらに対応して、幅広く多くのエンジニアが貢献して現在に至っているのが「組込みシステム」。技術史連載第2回は、この技術ジャンルが形成されてきた29年史をつづります。イラスト/岡田丈)作成日:08.02.21コンピュータといえば、誰もが本体にキーボードとディスプレイが接続されている姿を思い浮かべるだろう。いまや、企業における業務はもちろん小学生さえもが授業でパソコンを利用し、コンピュータはかなり身近な存在となった。これに対し、誰もが形を想像できるコンピュータよりも、はるかに数多く生活の中に入り込んでいるのが、組込みシステムと呼ばれるコンピュータだ。家庭で利用されるテレビや洗濯機、エアコンなどの家電製品はもちろん、街に出れば信号機や自動販売機、駅の自動改札など、電気で動いているものほとんどにコンピュータが組み込まれていると言っても過言ではない。組込みシステムの産業規模は、急拡大している。日本における組込みシステムの開発規模は経済産業省によると約3兆2700億円(2007年6月時点)あり、これは前年に比べて19.8%も拡大しているという。組込みシステムとパソコンなどのコンピュータの違いは、行う処理が専用か汎用かということ。パソコンでは、ワープロや表計算などソフトウェアを切り替え目的に合わせ処理を行う。そのため、さまざまなソフトウェアを動かすよう汎用的な構造となっており、操作のためのキーボードやディスプレイもさまざまなデータが扱える汎用的なインターフェースとなっている。対して、例えば洗濯機に組み込まれているコンピュータは、洗濯のための処理しか行わない。インターフェースは数個のスイッチ、表示もせいぜい数個のLEDかあっても小さな液晶程度で汎用性はない。当然ながら、コンピュータが入っているからといって洗濯機で四則演算ができるわけではない。昔の洗濯機には、コンピュータは組み込まれていなかった。電源をオン、オフするスイッチがあるだけで、せいぜいアナログ式のタイマーがある程度。この単純だった家電が、全自動洗濯機の登場で大きく変化する。洗濯物を入れボタンを押せば、自動的に洗濯物の量を確認し、最適な水量で洗い、すすぎ、脱水、そして今なら乾燥まで行う。この家電の便利さを実現しているのが、組込みシステムだ。組込みシステムには、さまざまな過酷ともいえる稼働条件がある。その中でも、開発するうえで影響が大きいものが3つある。ひとつ目はパソコンのようにシャットダウンなどの手続きなしに電源のオン、オフですぐに起動、終了ができることだ。ひとつは、利用できるコンピュータリソースが通常は極めて少ないこと。コストに大きく跳ね返るためだ。最後が、スイッチを押せばすぐに処理を行うリアルタイム性の確保だ。これらの条件を克服するために、汎用的なコンピュータで動くソフトウェアとは異なる開発スキルが、組込みシステム技術者には求められる。G2マイクロプロセッサ(2007年量産出荷開始)。905iシリーズの心臓部として採用されており、通話もその他のマルチメディア機能もひとつのプロセッサで実現されている。1980年代以前は、組込みシステムを実現するにはアセンブラ言語を用いプログラム開発を行うのが普通だった。専用ハードウェアに限られたリソースしかないので、選択肢がアセンブラしかなかったのだ。簡単な処理であれば、機械語を用い直接プログラムをハードウェア上に記述する方法でもよかった。現在でもコストが厳しく、利用できるコンピュータリソースが極めて限られる場合には、この方法が使われる。組込みシステムに求められる機能が複雑化するにつれ、アセンブラで直接開発する方法では、要求される機能を実現することが難しくなる。そこで登場するのが、組込みシステム用のOSだ。リアルタイムOSとして、1979年にOS-9、1980年にはVxWorksが開発、提供されてはいるが、この当時は、自社のハードウェア専用に、自社開発でOS機能を実現することもまだまだ多かった。1980年代後半になり、複数のベンダーから各種組込み用プロセッサに対応した組込みOSが提供され、市場に徐々に普及し始める。OSがあれば、組込み用プロセッサと各種センサーやスイッチなどのデバイスとの接続処理をOSに任せ、処理のロジックだけをプログラミングすれば、組込みシステムの構築が可能となる。一度構築した汎用的な処理をするプログラムを使い回すこともでき、開発の効率化が図れる。組込みOSが利用されるようになると、多くの場合はプログラミングにCおよびC++言語が用いられるようになる。最近では、グラフィカルユーザーインターフェースを搭載する機器などの開発にJavaも利用されるようになっている。Group社)組込み機器向けリアルタイムOS。「Lynx」最初のバージョンが登場POSIX互換のリアルタイムOSソフトウェア生産工業化システム(シグマシステム)プロジェクトがスタートUNIXワークステーションが相次いで製品化(パナファコム、カシオ計算機、ソニー、オムロンなど)NTT株の一般入札開始。Association)C言語による標準コーディングガイドライン。Linuxカーネル用のパッチ。現状、ITの世界では多くのハードウェア、ソフトウェアが海外製だといわれている。そんな中で、東京大学の坂村健教授が1984年に提唱したコンピュータ・アーキテクチャのTRONをベースとしたITRONや、TRONの発展形T-Kernelに準拠したリアルタイムOSが、組込みOSとして数多く採用されている。ここ2000年代に入ってからは、さらに複雑で高度な性能、機能が組込みシステムに求められるようになっており、WindowsやLinuxといった汎用のパソコンなどで利用されるOSをベースとした、高機能な組込みOSも利用されるようになってきた。Linuxは、OSのカーネルソースコードが公開されていることもあり、自由に改変でき、カーネルサイズを小さくしたり目的に応じてカスタマイズしたりが可能という特徴がある。半面、リアルタイム性や信頼性については、既存のリアルタイムOSよりも劣る部分もある。2000年には、国内でもLinuxを組込みシステムに普及させるために、NPO法人日本エンベデッド・リナックス・コンソーシアムが発足している。2.4が公開された2001年ごろからであろう。高いリアルタイム性や堅牢性、信頼性などを特長とし航空宇宙や防衛分野などで実績のあるVxWorksのように、特定用途で大きなシェアを獲得する組込みOSも登場している。近年、大きく利用が拡大している組込みシステム領域としては、自動車を挙げることができる。1993年にはドイツを中心にエンジンコントロールユニットの標準化を目指すOSEKプロジェクトが既に発足しており、1998年には欧州の自動車関連ソフトウェア業界団体が、C言語による標準コーディングガイドラインであるMISRA-Cを発表している。日本では、2006年に名古屋大学とトヨタが車載マルチメディア向けのOSの共同研究開発の開始を発表し、車載コンピュータの領域はマルチメディアやネットワーク機能へと拡大している。当初はカーエアコンやカーナビゲーションなど、運転とは直接関連しない機能の制御を中心に組込みシステムが活躍していたが、現在は運転そのものにコンピュータが利用されるようになり、エンジンの制御はもちろん、搭載されているさまざまなセンサーから得られる情報を安全、便利な運転に役立てるために利用するようになっている。そのため、いまや車は組込みシステムで動いているともいえる状況だ。さまざまな機器がネットワークに接続されるようになってきたのも、組込みシステムに大きな変化を与えている。昨今の携帯電話は、通話という基本機能よりもそれ以外の機能がむしろ重要であり、あの小さな筐体の中にパソコンと同等ともいえる機能が詰め込まれている。この傾向は、3Gと呼ばれる第三世代携帯電話のサービスを各キャリアが開始した2002年ごろから加速し、携帯電話ではネットワーク接続は必須な機能のひとつとなり、さらにマルチメディア対応も求められている。機能はどんどん複雑化しても、組込みシステムとしての過酷な稼働条件が緩和されるわけではない。コンパクトなプログラムで堅牢性、リアルタイム性を発揮することが組込みシステムでは常に求められている。そのために最近では、組込みシステムにデータベースを採用する動きもある。組込み用の汎用OSが普及したこともあり、その上で動くサイズの極めて小さなデータベースが、さまざまなベンダーから提供されるようになったのだ。複雑な機能を短期間で実現するために、OSに加えデータベースのようなミドルウェアの活用も、今後はさらに促進されることであろう。)米グーグル日本法人設立G-XMLのJIS化完了アメリカで同時多発テロ。「VxWorks」「JWorks」日本市場に投入(WindRiver社)「VxWorks」はリアルタイムOS。日立製作所と三菱電機の半導体部門が事業統合。Alliance)携帯電話を含む携帯デバイス向けのオープンプラットフォーム。テクノロジの茶木英明氏が「組込み」の世界に入ったのは、日立製作所に在籍していた1980年ころ。当時は、国産の組込み用マイクロプロセッサは存在しない。日立ではモトローラの許諾を受け、MC68000系のマイクロプロセッサの製造を行っていた。組込み汎用OSもなく、茶木氏はMC68000用のOS開発を担当していたという。このとき米国DRIと共同でCP/M68KというOSをC言語で開発している。これがはじめて組込みの世界でC言語が利用された事例であり、現在でも組込みでもっとも利用されている開発言語は、CおよびC++となっているのだ。「海外のアーキテクチャに頼っているのではだめだということで、1984年ころからオリジナルのマイクロプロセッサの開発が始まりました。その結果オリジナルのHシリーズが誕生します。Hシリーズが発表されたのを皮切りに、現在は携帯電話やカーナビゲーションなど幅広い製品に、国産プロセッサが採用されている。Hの進化とともに、OSやミドルウェアの開発を行ってきた。マイクロソフトなど各種ベンダーとも、組込み用OS開発においては積極的に協業してきたという。半導体は半導体ベンダーが、その上のOSやミドルウェアはサードパーティーが開発、提供するのが一般的な構造。テクノロジは、半導体もミドルウェアも提供する。「半導体の集積化はどんどん進んでいます。その進化にソフトウェアが追いついていない。半導体を最もよく理解する半導体ベンダー自らがミドルウェアを開発することで、半導体の性能を最大限に引き出せます」(茶木氏)顧客の要求には限りがない。その実現に、どの部分までを半導体の仕事とし、どこからはソフトウェアに任せるか。半導体ですべて行えば電力や熱効率、リアルタイム性に優れたものが出来上がるが、逆に半導体のコストは上がり柔軟性もなくなる。ハードウェアとソフトウェアの組み合わせが最適となる、「ミックスポイント」を引き出す必要があるのだ。今後の組込み技術のトレンドには、例えばマルチコア化がある。マルチコアの性能を引き出すには、適切な負荷分散が必要だ。マルチコアで複数の処理を最適に負荷分散することは、リアルタイム処理が必要な組込みソフトウェアの技術面では今後の大きなブレークスルーとなる可能性がある。その実現はチャレンジングなことであり、やりがいのあるところだと茶木氏は言う。「世の中で利用されるさまざまな物の潮流を、半導体の立場からリードできる。新しい物を顧客と協力し生み出せる環境にあるのが、組込みの世界にいて面白いところです」と茶木氏。やりがいのある仕事だと言う。組込み技術者は自分の専門分野を極めると同時に、世の中の今後の流れを把握する広い視野をもつ必要があるとも言う。組込みシステムにおいて、ソフトウェアのコストや価値、比率は、今後よりいっそう上昇する。現状でも、ソフトウェアは膨大となり、開発にもテスト(検証)にも大きな手間が発生しているのだ。ソフトウェアを人海戦術で作るのではなく、要求仕様から自動生成する。テストパターンを理論的に効率化し、テスト作業量を削減する。いったところにも知恵を絞っていく必要があると、茶木氏は指摘する。ハードウェアはさらに小さく、ソフトウェアはより高機能、高性能を要求される組込みシステムは、まだまだ技術的にも奥が深い世界だ。エンタープライズのITシステム技術が組込みの領域にもどんどん入ってきている。そのため、システムの肥大化が問題となっており、さらに自動車や携帯電話など組込みが活躍する製品の提供ペースが昨今はかなり早く、複雑で膨大なシステムをいかに短期間で提供するかという、さらに厳しい課題もあるとエンサーク株式会社の藤井達治氏は言う。この課題クリアのために、組込みでも汎用OSやデータベースなどのミドルウェアが活用されつつある。いえ、データベースはサイズが巨大なソフトウェアの代名詞のようなもの。そんなものを使ってはいけないという観念をもつ傾向が、組込み技術者にはある。シニア・エンジニア組込みでは、データ管理の処理は技術者が自ら開発してきた。これはCOBOLで汎用機のシステムを開発していたころと同様で、データと処理のアルゴリズムは一緒になる。これでは、多様化する製品の変化に柔軟に対応できず、製品ごとにプログラムを作り直すしかない。共通化できる部分は共通化し、機能を分割し生産性を上げないと、顧客の要求にタイムリーに応えられない。膨大なシステムを人海戦術で開発するのではなく、多少メモリなどのハードウェアリソースが増えても、データベースを採用し生産性を向上させるほうが、結果的にはコスト削減につながる。日本でも、ここ2、3年でそういう流れになってきた。組込み用データベースには、現状2つのタイプがある。1つは1990年代後半から登場してきたOracleのような大きなデータベースの縮小版で、機能を削りサイズを小さくしたものだ。小さいとはいえ、組込み用途としてはリソースを大きく消費するので、メモリなどに余裕がある際に利用される。対して、2000年ごろに登場してきたサブルーチン型と呼ばれる組込み用途に特化したデータベースがある。これはテーブル定義やリレーションはSQLで記述するが、それらをプリコンパイラにかけC言語のソースコードに変換する。これに加え、極めてサイズの小さいデータベースエンジンがあるというものだ。「組込み技術者が自分で作っていたデータ管理プログラムを、自動的に作ってくれると考えればいいでしょう。これなら、従来の組込み開発の延長線上で構築できます」(藤井氏)エンサークが提供するDeviceSQLは、このサブルーチン型だ。小さく高速なだけでなく、データストリームも扱える特徴ももつ。「組込みでは、センサーなどから流れてくるデータを使うことが多い。その中から異常値を発見するために、蓄積されたテーブルデータとセンサーのストリームデータをジョインして検索するといったことが、DeviceSQLでは簡単にできます」(藤井氏)ある組込みシステムの実現方法は、1つだけではない。どこまでをハードウェアに任せ、どの部分をソフトウェアで実現するか。どのミドルウェアを採用し生産性を向上させるか。「システム全体を見渡し、いいものを効率よく作る。これが1年後ではだめ。短期間で実現するには、何を活用すればいいのか。技術者は何でも自分でやりたがる傾向がありますが、これからは適切な方法を選択できるよう、新しい技術にもアンテナを張っておくといいでしょう」(藤井氏)いいものを作ることは、どの技術者でも意識している。それを効率よく実現するには、目の前の技術に固執せず幅広い選択肢を検討する必要があるのだ。武井啓之氏が東芝情報システムテクノロジーに入社した1999年当時は、携帯電話機能が飛躍的に拡大を始めた時期。このころからメールやWebはもちろん、カメラが搭載されるようになり、通信とマルチメディア双方の機能が追加される。「当時はOSも単純なものしかなく、ほとんどの機能をC言語で書いて作らなければなりませんでした」(武井氏)武井氏は、auの携帯電話端末の組込みシステムの開発に長く携わってきた。当初はcdmaOne用にクアルコムが提供していた単純なOSがあるだけで、さまざまな機能は技術者がすべてプログラミング開発しなければならなかった。「メモリも少なく、アプリケーションごとにプログラム分割もできず、1タスクにさまざまな機能を詰め込まなければなりませんでした。Platform)というフレームワークが、KDDIによりBREWに追加される。これで開発環境は改善し、機能ごとに部品化を行いプログラムの再利用が可能となる。2007年のauの秋冬モデル端末の一部からは、「KCP+」というさらに高機能化した共通プラットフォームが採用され、すべての携帯電話機能がBREW上に実装されるようになる。して確かに開発環境は改善されたが、開発現場の苦労はあまり減っていないという。携帯電話の新製品サイクルは早く、機能がさらに複雑化しているためだ。「昔は開発環境こそ整っていませんでしたが、求められる機能は単純でした。今はかなり機能が複雑で、環境は便利になったのですが開発は楽になっているとはあまり言えません。実際、1台の端末の開発に携わる人数でみても、私が入社してからの9年間で3倍から5倍、あるいはそれ以上と、開発が大規模化しているんです。1999年ごろは私が担当していたユーザーインターフェースに20人程度、全体でも100人くらいだったと思いますが、今はユーザーインターフェースだけでも100人以上います」(武井氏)逆に考えると、高度な共通プラットフォームがなければ、現状の高機能な携帯電話は実現できないともいえる。携帯電話は組込みの中でも、ある意味もっとも「人」の近くにある製品を作っているといえる。「自分が作ったものを高校生からお年寄りまで、さまざまな人が手にしてくれている。電車の中などで使っているのを見かけると、やはり嬉しくなります」(武井氏)さらに携帯電話は進化し、近い将来、現状のパソコンレベルの機能を持つだろうと武井氏。なると、現状の携帯電話のフレームワークでは、限界も出てくるかもしれない。Googleの「Android」のような、スマートホン的なフレームワークが今後は伸びてくるのではとのこと。武井氏は、iPhoneを見たときに、携帯電話の開発技術者として驚きがあったという。今後は、これまでの携帯電話の固定観念や先入観を捨て、新しい自由な発想が必要になるのではと指摘している。技術史C++ミドルウェアデータベースOS...あなたを求める企業がある!まずはリクナビNEXTの「スカウト」でチャンスを掴もう!根村かやの(総研スタッフ)からのメッセージこれまでに、組込みシステム技術やそのエンジニアの取材をすることは何度かあり、それを通して、私のなかには“組込みとはこういうもの”という漠然としたイメージがつくられていました。今回の記事のための取材の過程で“漠然”がだいぶはっきりしたように思います。いうふうに追ってみることは、理解を深めるのに効果的だと再認識しました。この技術とともに在り技術を育てるのはエンジニアであり、エンジニアを育てるのは技術。その人なしにはありえなかった技術を、その技術なしではありえなかった技術者人生とともに語ります。米サン・マイクロシステムズが開発し、1995年に発表したプログラミング言語、「Java」。インターネットの普及とともにその特性が...技術史Javaジェームズ・ゴスリングネットワーク...畑違いでも求人増でチャンスは本当か組込みソフトで生きるSIerのスキル求人が活発な組込みソフト分野で、IT業界からの転職を受け入れるケースが増えてきているという。不況下転職に成功したエンジニアたちを紹介していく連載企画。組込み系のエンジニアがWeb系への転職を目指して50社に応募。いっていいほど出てくる「最後に質問があればどうぞ」というひと言。Tech総研リクルートグループサイトへ。