人海戦術よりスマートなSoC開発はないのか?:SoC設計にモデリング手法を導入する(1)(1/3 ページ)
組み込み開発の主流となったSoC。そこではソフトウェアとハードウェアを1つのシステムとして考える設計が重要となる
はじめに
前回、UMTP(UMLモデリング推進協議会)の組み込み分科会が行っている活動を「組み込み開発にUMLを活用しよう」という連載記事で紹介しました。具体的には、組み込み開発の現状と、UMLの利点、そして、組み込み分科会で作成しているエレベータのキャビンモデルなどを取り上げました。
現在の組み込み開発では、SoC(System on Chip)が主流となりつつあります。SoCでは、コンピュータの主要機能であるマイクロプロセッサ、チップセット、メモリなどの機能が1つのチップに搭載されています。そして今後は、CPUが複数搭載されたマルチコア環境を前提とした開発が増えてくるでしょう。そこでは、ソフトウェアとハードウェアを1つのシステムとして考える設計が重要となってきます。こういった動向を踏まえて、今回はUMTPのSoC分科会の活動として行っている、UMLをSoC開発に使用する方法論を紹介します。
組み込み開発の現状
初めに、組み込みソフトウェア開発の現状を振り返ってみましょう。その特徴は、パソコンなどの標準仕様がほぼ決まっている特定のハードウェア上で動作するものでなく、ハードウェアの開発と並行してソフトウェア開発を行うことです。そのため、以下のような問題を抱えています。
1)Windowsアプリケーションなどと違いハードウェア開発者と共同で開発を行う必要がある
ソフト/ハードを同時に開発するために、試作品など未完成のハードウェア上で試験を行う必要があります。また、ハードウェア完成前には、シミュレータなどを使用してソフトウェア開発を行う必要があります。そして最後に、ソフト/ハードを組み合わせた試験を行い、完成となります。
試作品自体に不具合の原因がある場合もあれば、試作品では動作したものが、実際の製品では動作しないといった現象も発生します。つまり、組み合わせ試験を行うまで最終的な不具合が明確にならないのです。
2)ソフトウェア開発者とハードウェア開発者はコミュニケーションが必要
ソフトウェア開発者とハードウェア開発者は、それぞれの開発を行ううえでコミュニケーションを取る必要があります。お互いの作成するものを把握していないと、思わぬ勘違いから、予定どおりの製品にならないこともあります。それが納期遅延の大きな原因になることも少なくありません。また、いざ不具合が発生すると、厳しい工程の中で行われている開発では、互いに相手に原因があると疑ってしまうのが現状です(心当たりありませんか)。
3)予定どおりの性能(パフォーマンス)を出すことが困難
組み込みソフトウェアは、未完成の製品を相手に開発しており、最終的な製品の性能を予測することは困難です。最終的な性能は、製品が完成しないと分からないため、製品開発が終了してから、ソフトウェアの性能を出すために再度調整(チューニング)を行っていることも少なくありません。
またそのチューニング作業が工程に入っていることは少なく、納期直前に修正を行った場合、再度試験を行う必要があるにもかかわらず、十分な試験を行う時間がなくなってしまう現状もあるのではないでしょうか。それが、いま組み込み開発における品質問題の原因の1つであると考えられます。
上記のとおり、組み込み開発の現状はソフトウェアとハードウェアが密接に関係していることで開発が困難になっています。逆にいうと困難であるがために製品が完成したときの感動も大きく、また、他社製品より性能の良いものを作ろうといった競争心が起こったり、やりがいを感じることも事実です。
組み込み開発の問題点:
- 組み合わせ試験を行うまで最終的な品質が明確にならない
- ソフトウェア開発者とハードウェア開発者には、コミュニケーション・ミスが発生する
- 予定どおりの性能(パフォーマンス)を出すことが困難
SoC開発の現状
それでは、SoC開発の現状はどうでしょうか。一昔前は、ハードウェア開発といえば基板設計のことでした。しかし、いまやハードウェアもソフトウェアと同様に、HDL(Hardware Design Language)などのプログラミング言語により開発されています。その結果、開発効率は上がったのですが、同時に開発に対する要求もエスカレートして、開発規模は増大し続けています。そして現在では開発規模の増大を吸収するために、ソフトウェアとハードウェアを1つのチップに入れたSoCにより開発が行われています。
1965年、インテル共同設立者のゴードン・ムーア(Gordon Moore)氏は「半導体チップに集積されるトランジスタの数は約2年ごとに倍増する」と予測しました。これは「ムーアの法則」という名で広く知られています。
SoC開発の規模は膨大化/複雑化の一途をたどっています。これに対し、単に開発人員を増やす「人海戦術」といった対策しか取られていません。図1をご覧ください。人海戦術といっても、実装する量が2倍ならば人員を単に2倍にすればよいというものではありません。人員は3〜4倍は必要になるのです。また人員が増えればコミュニケーション・ミスが発生する可能性も増えてきます。これでは当然製品に対する品質を保持することは困難となります。
この現状は周知の事実であり、誰もが何とかしなくてはいけないと思っていますが、明確な解決策があるわけではありません。そこでUMTPは、SoC開発にUMLを利用すれば品質問題の解決につながるのではないか、という仮説を立てました。
Copyright © ITmedia, Inc. All Rights Reserved.