Product & Project Public Downloads

Product and Project Public Downloads

Diab Compiler – Building Highly Optimized Code for Safety Certified Use Cases-Japan

 



Wind River Diab Compilerにより、安全認証が求められるユースケースにおける高速かつ厳格なコードの生成を実現

Sep 15, 2021 通信

Raju Subbian

ウインドリバーのDiabツールチェーンでコンパイルされたコードは、自動車、産業機器、航空宇宙・防衛、ネットワーク業界などで、数十億台のデバイスにデプロイされています。ミッションクリティカルなアプリケーションにとって、安全性は最も重要です。Diab Compilerは安全性が重要視される組込み市場で、パフォーマンスやコードサイズの要件への対応はもちろんのこと、安全で効果的なコードを生成する目的で、お客様から長年にわたり信頼を得ています。Diabツールチェーンは、お客様からのフィードバックや市場分析に基づいて継続的に改良を行っています。本ブログでは、その中から最近の改良についていくつかご紹介します。

Diab Compilerは、リリース当初から最先端の自社技術とイノベーションにより、業界がより新しいアーキテクチャを採用するのに合わせて、新機能の開発や新しいアーキテクチャの追加を早いスピードで実施してきました。35年以上にわたる研究開発により、Diab Compiler 5.9.xは進化を遂げました。Diab Compilerは、組込み市場で最も広く使われている32ビットと64ビットプロセッサーをサポートしています。また業界規制により、自動車および産業機器市場が機能安全規格に準拠したアプリケーション開発に移行し始めたため、コンパイラはアプリケーション開発における重要なツールとして機能安全認証要件を満たすツールチェーンとしての役割が求められるようになりました。Diab Compiler 5.9.xは業界で初めて、ISO 26262とIEC 61508規格に準拠したコンパイラを安全に使用するための認証取得に、アプリケーション開発で使用するコンパイラの機能を選択して、その機能に適合するテストをお客様の環境で実行できるToolchain Qualification Kit(QKit)の提供を開始しました。

ウインドリバーはお客様からのフィードバックをもとに、Diab Compiler 5.9.xの開発と改良を重ね、お客様が認証作業に費やしていた労力を軽減しています。Diabツールチェーンは、お客様にQKitで生成されたテストコードをデプロイし、テストしてもらう代わりに、自動車(ISO 26262)および産業機器(IEC 61508)業界で必要とされるあらゆるASILおよびSILレベルに対してTUV SUDが評価し事前認証を取得したコンパイラへと移行しました。このTUV SUD認証ツールチェーンは、セイフティマニュアルやツール認証レポートなどの必要なドキュメントを提供するだけでなく、業界初の診断用コンパイラを提供しています。コンパイラのような高度で複雑な製品にはバグがあり、組込みアプリケーション用に生成されたコードへの影響を分析する必要があります。Diab Compilerチームは、すべての不具合をウインドリバーのサポートサイトで公開し、不具合が安全性に影響を与えるか、特定のプロセッサアーキテクチャのみが影響を受けるか、これらの潜在的な不具合のトリガーとなるオプションや回避策などを注記し、お客様が影響を分析して必要な対策を講じられるよう支援しています。しかし、お客様が何百万行ものアプリケーションコードからコードのシーケンスを特定したり、トリガーとなる条件を見つけたりするのは難しいため、このような有用なデータがあるにもかかわらず特定の不具合がアプリケーションにどのような影響を及ぼすかを判断することは困難です。

診断用コンパイラのコンセプトは、Diab CompilerチームがTUV認証を取得したコンパイラの一部として提供するイノベーションです。診断用コンパイラは、同じコンパイラ製品をベースとした二次的なコンパイラですが、不具合の修正をおこなうのではなく、コンパイラの不具合を誘発するアプリケーションのコードをピンポイントで特定するための診断メッセージを送ります。重要なのは、コンパイラが不正なコードを生成したり、誤った動作をする原因となるアプリケーションのコードシーケンスを特定することです。お客様は、アプリケーションコードに回避策を適用し、診断用コンパイラで再コンパイルしてトリガー条件が存在しないことを確認することができます。お客様からは、新しく開発したコードがコンパイラの潜在的な不具合を誘発しないように、定期的に診断用コンパイラでビルドしたいという要望がありました。診断用コンパイラは、Diab Compilerのユーザがセーフティクリティカルなアプリケーション開発にかかる時間を節約し、重要な役割を果たすコンセプトの1つとなっています。このコンセプトは、アプリケーションの再評価には高いコストがかかるため、コンパイラの変更や更新が好ましくないプロジェクトで重要な最終期のマイルストーンを経過した後も、生産用コンパイラを変更しないことを支援するものです。

ウインドリバーは、VxWorksプラットフォーム用のオープンソースコンパイラGCCの開発や使用で長年の実績があります。また、Wind River Linux向けのGCCの統合と問題修正も行っています。市場がGCCやLLVMベースのコンパイラなど、より多くのオープンソース製品を活用する方向に移行したため、ウインドリバーも業界の強力なバックアップ、モダンなコードベース、開発の容易さなどから、VxWorks用のメインコンパイラとしてLLVMをデプロイしました。ウインドリバーは、LLVMベースの取り組みをDiab Compilerにも展開し、ARM向けのLLVMベースクロスコンパイラの提供を開始しています。

LLVMベースのDiab Compiler 7.x製品では、Diab Compiler 5.9.xからの移行ガイドを提供しています。GNU binutilsとともにDiabリンカーと他のバイナリユーティリティを同梱することで容易に移行できるため、Diab Compiler 7.xではGCCユーザとDiab Compiler 5.9.xユーザが簡単にアプリケーションを移行することができます。セーフティクリティカルな市場では、LLVMベースのコンパイラを採用し、改良するだけでは十分ではありません。LLVMやClang、コンパイラのランタイムライブラリに存在する不具合を継続的に分析・分類して、その不具合が安全性に影響を与えるかどうかの情報を公開する必要があります。ウインドリバーは、これまでに1万件以上の不具合を分析し、安全性への影響度合いに基づき分類をおこない、その情報をエンドユーザ向けにWind River Support Network上で公開しています。Diab Compiler 7.xでは、機能安全アプリケーション開発を支援する診断用コンパイラを提供します。また、付加価値としてシミュレーション用のQEMUを同梱しているため、パワー不足のターゲットCPU環境でもアプリケーション開発を効率的に行うことができます。

最近Diab Compiler 7.xに、ARM浮動小数点演算関連の例外を計測、チェック、処理する新機能が追加されました。この機能は、お客様のニーズに合わせて複数のオプションを提供し、カスタムハンドラをインストールすることで、これらの特例を上書きして処理できるようにするものです。

Diab Compiler 5.9.xは、TC 4xxやRenesas G4MH2などの新しいTriCoreアーキテクチャをサポートします。さらに新しい命令を活用し、パフォーマンスとサイズ向けのコードを最適化します。

Diab Compiler 5.9.xおよび7.xは、自社技術とオープンソース開発を活用することで、組込み機器に携わるお客様にとって最適な開発環境を提供するほか、コンパイラの診断や安全性に影響を与えるオープンソースの不具合の監視と情報の公開といった革新的な付加価値の高いTUV認定コンパイラを提供します。Diab Compilerは、その技術的な優位性と優れたカスタマーサポートおよびメンテナンスにより、お客様から信頼されています。

Wind River Simics: Full System Simulation

Wind River Simics:
Full System Simulation

With Simics you can simulate anything, chip to system, giving you a path to DevOps and Continuous Integration and Deployment.

Deliver Better Software Faster

Wind River® Simics® is a full-system simulator used by software developers to simulate the hardware of complex electronic systems.

Simics allows on-demand and easy access to any target system, more efficient collaboration between developers, and more efficient and stable automation. With Simics you can adopt new development techniques that are simply not possible with physical hardware, enabling you to deliver better software faster.

Do DevOps Better

High-performing DevOps teams can deploy 106x faster than their lower-performing peers, according to a 2019 DORA/Google Cloud survey. Watch this to learn how simulation can help you level up your DevOps practices.

Watch Now »

Simics for Digital Twin

Wind River customers have used Simics for their digital twins for more than 20 years. Learn from our experience how to get the most from your digital twin projects.

Watch Now »

Seven Development Tasks Simics Makes Better

By offering a virtual alternative to physical hardware, Simics greatly increases engineering efficiency, lowers development costs, and makes new Agile approaches possible.

From experimenting and testing to configuration and communication—learn the seven key ways Wind River customers are using Simics to improve a host of tasks within their embedded software development processes.

Simics Featured Customers

Supported Platforms and Targets

See our extensive Simics model library that makes creating a custom model of virtually any hardware system quick and easy.

See Supported Targets

Resources

Wind River Diab Compiler-Japan

Wind River
Diab Compiler
コードを最適化

Wind River Diab Compilerは、安全認証が求められる
ユースケースに最適な、高速かつ厳格なコードの生成を可能に
するコンパイラツールチェーンです。

 

高いパフォーマンス、小フットプリント

Wind River® Diab Compilerは、組込みシステムアプリケーションのパフォーマンスの向上、メモリフットプリントの削減、高品質で規格に準拠したコードを生成します。また、コンパイラにおける35年以上の経験と、何億台というデバイス導入実績をもつ、受賞歴のあるウインドリバーのグローバルサポート部門がお客様をサポートします。

最新情報

Diab Compilerの各リリースでは、パフォーマンスとコード密度のさらなる向上を実現するために最適化されています。ウインドリバーは、Diab Compilerの性能が業界トップクラスであることを確実にするため、社内およびお客様から提供されたアプリケーションベンチマークを使用して性能テストを実施しています。

最新のイノベーション

Diab Compiler 7.x (LLVM) Diab Compiler 5.9x 安全性に関連するリリース
  • 強力かつモダンなコンパイラ技術によるアップデート
  • GCC(GNU コンパイラコレクション)との互換性
  • 最新の C/C++規格(C++17)に準拠
  • Arm®32ビットおよび64ビット、Cortex-A、M、Rシリーズに対応
  • GDBとQEMUをサポート
  • RH850 、TriCore
    • 全般的なパフォーマンスを向上
    • RH850/TriCore向けの次世代CPUアーキテクチャをサポート
    • ISA(命令セット)と機能を完全サポート
  • 認定されたコンパイラ
  • 不具合影響に関する継続的な分析およびレポート
  • 診断コンパイラの継続的なアップデート
  • ランタイムライブラリの認証

特長

Powerful optimization

強力な最適化

パフォーマンス、フットプリント、またはその両方に関するソフトウェアをチューニングするための数百の最適化オプションを提供

Multiple architectures

複数のアーキテクチャをサポート

業界をリードするプロセッサアーキテクチャに対応(PowerPC、Arm、TriCore、RH850、ColdFire、MIPS、Intel)

Latest industry standards

最新の業界規格に対応

Clangフロントエンド、Edison Design Groupフロントエンド、LLVM/Dinkumwareライブラリ、ANSI C11およびC++17をサポート

Key safety requirements

主要な安全規格に準拠

ISO 26262 (ASIL Dまで) 、IEC 61508 (SIL 4まで)に対応

Reliable quality

高い品質

数百万におよぶテストケースと業界標準のテストスイート(POSIX® PSE52準拠のランタイムライブラリ)を用いたテストを実施

Flexible business model

柔軟なビジネスモデル

単一のアーキテクチャに対する永久ライセンス、または複数アーキテクチャに使用できるユーザー単位の年間サブスクリプションから選択可能

Award-winning support

受賞歴のあるサポート

厳格なパフォーマンス基準を満たし、最高品質のサポートを提供していることを示すSCP(Service Capability and Performance)認定を取得しているウインドリバーのカスタマーサポート部門がお客様をサポート。日本語を含む、世界各国の言語に対応

Long-term support

Long-Term Support(長期サポート)

お客様のニーズに応じたサポートを提供

機能安全認証に準拠したオブジェクトコード

安全関連ソフトウェア開発では、ソフトウェア開発ツールが機能安全に関する規定された基準に適合していることが重要です。Diab Compilerは、TÜV SÜD(テュフズード)から安全関連ソフトウェア開発の認定を受けています。最終製品の安全認証要件を満たす安全アーティファクトの作成により、お客様を支援します。
Diab Compilerは、以下のセーフティクリティカルな市場向けの機能安全認証を取得しています。

Diab Compiler 5.9.X (Proprietary)
  • ISO 26262(ASIL D TCL3まで):車載アプリケーション用途
  • DO-178C:アビオニクス用途
  • IEC 61508(SIL4まで):産業用途
  • IEC 60880:原子力用途
  • EN 50128:鉄道アプリケーション用途
Diab Compiler 7.X (LLVM)
  • ISO 26262(ASIL D TCL3まで):車載アプリケーション用途
  • IEC 61508(SIL4まで):産業用途

技術仕様

対応するプロセッサアーキテクチャ

単一のツールチェーンを、複数のアーキテクチャで使用することにより効率化を実現します。

Diab Compiler 5.9.X (Proprietary)
  • PowerPC – E500, VLE, SPE, LSP
  • RH850 – G3M, G3MH, G3K, G3KH, G4MH
  • TriCore AURIX – TC2xxx, TC3XXX, TC4XX, TC1.8x
  • Bosch GTM-IP – MCS (3.1.5.1)
  • Arm*
Diab Compiler 7.X (LLVM)
  • Arm
    • Cortex-A/R/M
    • Arm/Thumb 2
    • Armv7-A/R/M
    • Armv8-A/R
      • AArch32
      • AArch64
*新しいArmアーキテクチャのバリアントはDiab Compiler 7.xのみに追加。5.9.xでは、現在のバリアントに対する保守・サポートをアクティブに実施。

対応するホストOS

Diab Compilerは以下のホストOS (32ビット、64ビット) に対応しています:

  • Windows 10
  • Windows 8.1/8
  • Windows 7
  • Red Hat 7.2
  • Red Hat 6.7
  • Ubuntu 16.04 LTS
  • Ubuntu 14.04 LTS
  • Linux 2用Windowsサブシステムで使用するUbuntu 18.04と20.04
  • Fedora 23
  • Fedora 22
  • Open SUSE Leap 42.1
  • Open SUSE 13.2

対応するプログラミング言語と規格

  • C言語とライブラリ: C90、C99、C11
  • C++ 言語とライブラリ: C++03、C++11、C++14、C++17
  • オブジェクトフォーマット: ELF
  • デバッグフォーマット: DWARF 2、3、4、5
  • アプリケーションバイナリインタフェース: 標準的なターゲット固有の組込みABI
  • C++ 言語ABI: 業界標準のItanium ABI

リソース

Customer Success - Collins Aerospace

Collaborating on First
DO-178C Multi-core Certification

Collins Aerospace and Wind River collaborated on plans to develop the world’s first multi-core design safety certified for avionics on multiple cores.

Customer Success Story

The Objective

Multi-core products provide greater processing capability in a smaller footprint, reducing costs associated with size, weight, and power (SWaP) and boosting performance. Collins Aerospace and Wind River® identified a clear need for a higher-performance software virtualization platform with an open systems architecture for avionics. This platform also needed to host new applications, consolidate legacy applications, and be highly deterministic. It needed to be able to support the vision of autonomous and optionally piloted aircraft, as well as achieve the highest levels of avionics safety certification. But no multi-core design had ever been certified to avionics safety standards at the highest level of criticality on multiple cores. Creating one had the potential to fundamentally change the industry.

How Wind River Helped

Wind River and Collins Aerospace collaborated on design, problem solving, and involving certification authorities in their plans to achieve FAA CAST-32A multi-core certification objectives as part of the DO-178C DAL A certification process. To maximize flexibility for future development, they chose VxWorks® 653 Multi-core Edition, which enables multiple guest operating systems to run on a single hardware platform at different levels of safety criticality.

The Results

Together, Collins Aerospace and Wind River greatly reduced technical and program certification risks while increasing the available processing resources. Their collaborative approach to achieving DO-178C DAL A certification on multi-core is shared in a detailed white paper, along with technical insights and best practices. In addition, Collins Aerospace and Wind River were selected to present their conference papers at Safety-Critical Systems Symposium (SSS’19), Avionics Expo, and SAE AeroTech Americas.

Resources

Video

The Road to Multi-core Certification

Watch Video

Crossing the Chasm: Software-Defined Avionics and Millennial Engineers

play
CHOOSE-YOUR-OWN WEBINAR

  Crossing the Chasm: Software-Defined   
  Avionics and Millennial Engineers
  

Join Michel Chabroux, senior director of Product Management, Wind River®, and Woodrow Bellamy III, editor-in-chief of Avionics International, for a discussion of two clashing trends facing avionics system suppliers: legacy code in deployed systems and the engineering world’s generational shift from boomer to millennial.

Chabroux will discuss the resulting changes in avionic software development and explain how a modern RTOS can provide developers with features and tools to create new, advanced software-defined avionics. Watch the full webinar above, or select the chapter of your interest below.

Michel Chabroux
Woodrow Bellamy

   Sample Highlights