multi, green hills software統合開発環境

30年以上にわたり利用され、継続して改良してきた結果、統合開発環境MULTIは組込みソフトウェア業界ではどこにも負けない製品になりました。開発者の間では、MULTIは高品質なコードの制作や製品の早期市場投入で頼りになると定評があります。見つけにくいバグのピンポイントでの発見、メモリリークの解決、システム性能向上、すべてMULTIで解決できます。

バグの早期発見・修正

TimeMachine PathAnalyzer

TimeMachineで非常に重要な機能を担うPathAnalyzerは、アプリケーションのコールスタックを時系列で表示します。 クリックして画像を拡大

革新的なDebuggerの各機能は従来のツールでは難しい問題を短時間で解決させるために作られました。タスク同士の競合による破損、リアルタイム性の喪失、外部ハードウェアでのイベントなどの問題の原因をさかのぼって突き止めるのに数週間、または数ヶ月もかかってしまうことがあります。Green Hillsの動的実行解析ツールTimeMachineツールスイートを使えば、そうした問題を数時間、または数分で解決できます。このツールスイートは自動でプログラムの実行データをキャプチャし、MULTI Debuggerのインターフェースを革新的なデバッグ再生機能とリンクします。TimeMachineでのデバッギングでは、コードを一歩ずつ進めたり戻ったり、実行したり、デバッグしたりして、問題の根本原因をピンポイントで見付けることができます。

TimeMachineでキャプチャした各ポイントでは、次のことができます。

  • タスクの相互動作のソースレベルでのデバッグ
  • 効果的な実行ブレークポイント・データブレークポイントを使って特定のデータポイントの発見
  • RTOSのデータ構造の確認
  • 仮想メモリアプリケーションのデバッグ

統合された静的ソースコード解析ツールであるDoubleCheckは、プログラムを動かす前にプログラミングのミスを発見できるので、時間と予算の節約につながります。DoubleCheckはGreen Hills Compilerに組み込まれているので、使うための設定コストはありません。オプションを選ぶだけで、DoubleCheckはソースコードのコンパイルの度に解析を行います。さらに、DoubleCheckは従来の静的解析ツールよりもずっと高速なので、開発者1人1人いつでも利用できます。

DoubleCheckの補助機能として、ランタイムエラーチェックがあり、静的実行解析だけでは発見できないバグを突き止めます。特に凶悪なバグは実際に故障するまで顕在化しないものです。ランタイムエラーチェックがあれば、問題が起こった時点でその原因を知らせます。直接見えていれば、バグを直すのは簡単です。

複雑なシステムを理解する

multicore debug, synchronous run control

MULTIの同期実行制御はマルチコアシステム内のコアをすべて停止します。このため、他のコアで実行中の処理が共有メモリに与える影響を心配せずにコアのデバッグができます。 クリックして画像を拡大

複雑なシステムのデバッグも、システムのステータスを知るために必要な情報が手元にあればずっとシンプルになります。重要なシステム情報を分かりやすい形で提供し、早期問題発見に役立てます。

  • OSA Explorerで、カーネルオブジェクト、タスク、およびリソースのステータスをすべて閲覧できます。
  • Debuggerで、スタックのトラバース、オブジェクトのブラウズ、メモリとレジスタの内覧など、アプリケーション実行後の包括的なデバッギングが可能です。
  • EventAnalyzerで、マイクロ秒単位間隔のシステムイベントを時系列に表示できます。

マルチコアの同期実行制御
Green Hills Softwareはマルチコアのデバッギング向けのプローブとデバッガをいち早くリリースした会社の1つです。MULTIが現在提供している機能により、マルチコアシステムのデバッギングがシングルコアシステムと同じくらい簡単にできます。

そうした機能の中でも重要なのは同期実行制御です。これはコアのどれかがデバッギング条件になった場合にすべてのコアを1ユニットとして止める機能です。例えば、あるコアでブレークポイントに当たった場合、ターゲットリストには次が明示されます。

  • どのコアがブレークポイントに当たったか
  • その時、そのコアでどのスレッドが実行されていたか
  • システム内のその他のコアは何をしていたか

マルチコアのターゲットにコードをダウンロードするのは、難解で面倒な作業になりがちです。MULTIはINTEGRITYのターゲットへのダウンロードを自動処理します。それ以外のOSやアプリケーションについては、設定ファイルでダウンロードや設定のプロセスを自動化することができます。

開発効率向上

MULTI Project Manager with Builder

MULTI Project Managerにより、アプリケーションのビルドとアップデートがシンプルになります。 クリックして画像を拡大

クリーンなコードはミスが少ない傾向があり、またテストしやすく、理解も修正も簡単で、その分バグも少なくなり、信頼性も向上します。Green Hills CompilerはMISRA 2004などの業界標準のクリーンなコーディング規約やGHS Standard Modeを適用できます。GHS Standard Modeはコンパイラ警告とエラーをまとめたもので、通常のC/C++よりも厳しいコーディング基準を適用します。GHS Standard Modeは当社が長年蓄積してきたソフトウェア展開の成功事例や、同等水準の信頼性を達成してきた顧客との協業に基づいて作られました。

GHSはビルドの作業を簡略化して、開発者の貴重な時間を次の製品の設計に使えるようにします。MULTI Builderを使えば、複雑なビルド用環境を保守する必要はありません。ビルドの設定を変更するのは簡単です。Builderはプロジェクト全体の依存性を自動で解析し、ファイルはできるだけ多く並列にしてコンパイルとリンクを行い、新しいマルチコアシステムの利点ができるだけ活用できるようにします。

Builderその他の先進的機能はプロジェクト開発のオーバーヘッドを大きく削減します。プロジェクトマネージャ、エディタ、フラッシュプログラマ、命令セットシミュレータなどがシームレスにつながり、開発をすぐに加速できるだけでなく、作業効率も上がります。

組込みLinuxのデバッグ

組込みLinuxシステム向けのソフトウェアを開発するエンジニアにとって、MULTI for Linuxは生産性を劇的に向上させ、今までより信頼性の高い製品をより早くリリースするために必要なデバッギング機能を総合的に備えた製品です。

今までは、Linuxエンジニアには視認性と使いやすさがあまり考えられていないツールに頼らなければなりませんでした。GDBやそのフロントエンドであるEclipseは、設定が面倒で、使いにくく、いつも信頼できるわけではありませんでした。そのため、開発者は最後の手段としてprintfやprintkコマンドに頼るしかありませんでしたが、あまり当てにならず、残念ながら、これでは複雑なシステムの実行状況はほんの少ししか見えませんでした。

MULTI for Linuxがある今、組込み開発者は、Linuxカーネル、カーネルスレッド、割込みサービスルーチン、ユーザーモードのスレッドやプロセスなど、組込みLinuxシステムのあらゆる面を、今までより楽にかつ素早く可視化してデバッグできます

Linuxデバッギングの機能

  • Linuxカーネルを全面的に可視化 — 共有メモリ領域、セマフォ、メッセージキュー、カーネルモジュールなど
  • SMPマルチコアデバッギングのサポート
  • 1つのデバッガでカーネルからユーザー空間までのデバッグ
  • ネイティブLinuxおよび(INTEGRITY Multivisorの仮想化技術で)仮想化されたLinuxのデバッグ
  • ロードするカーネルモジュールとデバイスドライバのデバッグ
  • プロセススタートアップコードのデバッグも簡単
  • カーネルコード内部のスレッドごとにブレークポイントの設定
  • 仮想アドレス空間の共有オブジェクトのデバッグ
  • パフォーマンスを下げることなくブレークポイントの処理
  • プロセス間のマルチスレッドにまたがる相互処理のデバッグ

性能の最大化

高速、小型のコード生成
最適化コンパイラGreen Hills Compilerは販売されているコンパイラの中でも最強です。組込み業界でベンチマーク指標としてもっとも認められているEEMBCベンチマークでは、Green Hills Compilerの生成するコードは、32ビット・64ビットのプロセッサ双方で競合のコンパイラより高速かつコンパクトです。

Green Hills Compilerは最先端の最適化手法を何百も採り入れ、プログラムの大幅な実行速度向上・サイズ削減に活かしています。例えば、最先端のプログラム全体の最適化で関数呼び出しの境界を拡げることで、Green Hills Compilerはソースコード全体を1単位として最適化を行います。その結果、Compilerは不要なコードや変数の削除、いろいろなモジュールにまたがるインライン化、プロシージャ間のエイリアスのより詳細な解析を行うことができます。Compilerの出力は、最適化手法をいろいろと組み合わせたり、プロジェクトごと、ファイルごと、関数ごと、はてはソース行ごとに最適化を設定したりすることで細かくチューニングできます。ほとんどのプログラムについて、Green Hills CompilerはGNUコンパイラよりも実行速度が20%高速になります。

性能のボトルネックをピンポイントで発見

MULTI performance profiler, embedded,
Profilerのインターフェースは解析をすっきりした形で表示し、タスクや関数、命令などが何回コールされ、またどのくらいの間実行されるかを分かりやすく表示するので、どこを重点的に最適化しテストすればよいかピンポイントで判断できます。 クリックして画像を拡大

独自のツールであるGreen HillsのPathAnalyzer、Profiler、およびEventAnalyzerは、コード内にある性能のボトルネックを簡単に見つけ、取り除きます。その結果、高速で、よりスリムなアプリケーションが完成します。

  • まったく新しいツールであるPathAnalyzerは、プログラム内部で実行される関数を個別に高抽象度の時系列で表示します。そのため、プログラムフローのパターンが特定しやすく、どこで時間が費やされているか分かりやすくなります。プログラム実行のぼんやりした跡だけを表示するのではなく、PathAnalyzerは全体像をお見せします。
  • システムの最適化と解析については、強力なProfilerでプログラムの動作について他のどれよりも深い洞察が得られます。このProfilerはタスク、関数、ソース行、アセンブラ言語の命令を単位として、プロセッサ時間がどのくらい消費されているか表示します。次のようなことが簡単になります。
    • 性能に関する問題点の発見
    • カバレッジのギャップ発見、特定のコードのテストカバレッジの追跡
    • プロファイルデータを他のユースと共有
    • プロファイルデータをいろいろなテストやプロファイルの記録から収集、一体化
  • EventAnalyzerにはINTEGRITYのイベントの長さや頻度が表示されます。どの処理がもっとも時間がかかっているか、どこを集中的に最適化するか素早く見付けることができます。

エキスパートからの手助け

Green Hills customer performance tuning services

Green HillsのソフトウェアエンジニアはMULTIやGHSのコンパイラを毎日使用しています。当社の生産性コンサルタントのチームは自分の直接的な経験を応用して、開発者がGHSの製品のポテンシャルをすべて引き出せるようにします。GHSのエキスパートは次のサービスを提供します。

  • 特定の要件に合うようにツールを設定
  • 当社製品の最適な使用法を研修
  • 使用について評価を行い、生産性向上の方法を分析

また、可能な限り性能を高めるために、プログラムを当社の性能チューニングのエキスパートに任せることもできます。30年にわたり、私達は深い知識と業界最高のツールを駆使して、公開されるプログラム速度のベンチマークで競合他社に勝利してきました。当社が内部で使用する技術と同じ技術を使い、貴社のアプリケーションを高速化します。プログラムの部分ごとに、総合的な知見からベストなコンパイラ最適化手法を選び、適用していきます。

GHSの性能チューニングサービスは、商品ではなくカスタムサービスです。GHSは蓄積された専門知識を活かし、貴社のアプリケーションを評価してその結果をもとにコンパイラ最適化手法を組み立てます。GHSと協業して顧客のプログラムが300%以上の改善がみられることも珍しくありません。

製造コストの削減

プロセッサコストの削減
高まり続ける性能要件を達成するために、より高速なプロセッサが必ずしも必要というわけではありません。GHSの優れたコンパイラ最適化をチューニングすれば、どんなチップをお使いでも、それに合わせてフル活用できるようになります。しかも、GHSのPathAnalyzer、Profiler、およびEventAnalyzerなどの性能解析ツールは、プログラムのどこでどれくらい時間を使っているか鳥瞰図的に描き出し、どこを集中的に最適化すればアプリケーションを高速化できるかはっきりさせます。低価格のプロセッサで同じリアルタイム要件を達成できれば、経費をいくら節約できるでしょうか?また、新製品をリリースするために新しいハードウェアプラットフォームを制作する必要がないとすれば?

アプリケーションの性能が良くなれば、プロセッサそのものの費用も少なくできますが、さらに低価格のプロセッサならクロック速度と消費電力もより低くなり、発熱も小さくなります。電池駆動時間が長くなれば製品は良くなると同時に安くもなります。

メモリコストの削減
Green Hills Compilerで最適化すると実行ファイルのサイズを削減できるので、メモリにかかる経費も削減できます。ほとんどのプログラムで、GNUコンパイラと比較してメモリサイズは10%以上削減できます。さらに、メモリリークはDoubleCheckでコンパイル時に発見可能で、MULTIのMemory Allocationsツールで実行時間中に動的に探すこともできます。

最大限の節約
GHSのコストカット専門のチームは性能をそのままにメモリとプロセッサの要件を低くする作業をお手伝いします。今まで、お客様のメモリ使用量を30%以上、パフォーマンスを300%以上向上させた実績があります。

機能安全への信頼

TUV Nord, exida, safety certification, IEC 61508, EN50128, ISO 26262

統合開発環境MULTIツールチェーンは最高水準のツール認証とC/C++ランタイム認証を達成してきました。

  • IEC 61508:2010(産業)、EN 50128:2011(鉄道)、およびISO 26262:2011(自動車)の機能安全規格
  • TÜV NORD、およびexidaから認証を取得
  • SIL 4(安全度水準)、およびASIL D(自動車安全度水準)のツール認証に適合。C/C++ランタイム認証要件も達成 — 現時点で最高水準の成果
  • 幅広いターゲットプロセッサに対応

シンプルかつ大きな利点

  • 認証までのコストと時間を削減
  • 製品の市場投入期間を削減
  • 製品発売後の認証保守を軽減
  • SIL/ASILの最高水準のアプリケーション開発のサポート