新しい航空機のフライトコントロールシステムで使用されるCPUとプログラミング言語はどれですか?

今日の新しいシステムは、20年以上前と同じCPU、プログラミング言語、開発ソフトウェアで構築されていますか?

new とは、これらのシステムが現在将来の航空機向けに設計されているか、または最近初めてサービスを見たことを意味します。

最新世代の大手旅客機(A350と787が最も明白な例です)で使用されている新しいデザインの具体例は、一般的な回答よりも優れています。

飛行に不可欠なシステムの例に興味があります(例えば、オンボード・エンターテイメントなど)。

この質問の一環として、業界で採用されているマイクロプロセッサーやプログラミング言語を徐々に更新することで製品を更新する傾向がありますか、または世代に合わせて新技術に移行する傾向がありますか?そして、(軍/一般航空業界とは対照的に)航空会社がこれにアプローチする方法には大きな違いがありますか?

15

2 答え

注:私は、リンクされた質問は、まだ新しい航空機には現在のところありません。私はその質問やその回答を複製したくありません。私の意見では、C ++、C#、Adaは、おそらく今後10年間、航空電子工学の支配的なプログラミング言語になるでしょう。

まず、航空機のライフサイクルを理解しなければなりません。多くの航空機は、 30年以上の実績があります。 a>。新しい機能の追加、バグの修正、要件を満たすためのコンプライアンスの追加など、アビオニクスはアップデートを取得します。しかし、作業の大半は、ソフトウェアとハ​​ードウェアの初期開発中に行われます。その構成は、そのアビオニクスの世代が製造業者によって置き換えられるか、または別の製造業者によって改造されるまで、ほとんど固定される。

実際に何が変わったのですか?

アビオニクスが(CRTからLCDスクリーンのような)世代の更新を経た場合、変更されたものはコストに見合ったものでなければならないので、通常はあまり変更されません。多分CPUですが、プログラミング言語は間違いありません。たとえば、G1000は12年前から別の世代のハードウェアをリリースしていました(ただし、ハードウェア互換性や合成ビジョンなどのために多数のソフトウェアアップデートを公開していましたが)。

同様に、 Avidyne Entegra は5年間にわたり、データリンク天気やLPVなどの主要機能を継続的に追加していました2009年にリリース9でハードウェアを最終的にアップグレードする前に、Falcon 900のようなファルコン・ジェット機は

なぜ頻繁なアップグレードをしないのですか?

アビオニクスで価値を生み出すのは、通常はエキゾチックな新機能ではなく、決してコンピューティングパフォーマンスではありません。 価値は、信頼性、法令遵守、安全適合性によってもたらされます。これには、エンジニアとパイロットが理解するのに十分シンプルで、数百人の人生が頼りになるほど堅牢な機能が必要です。したがって、追加される新機能には一般的に余分なパフォーマンスは必要なく、クラウドコンピューティング、マシンラーニング、オブジェクト指向などの最新のプログラミングパラダイムにはほとんどインセンティブがありません。

ロックウェル・コリンズのエンジニア述べた過去には、私たちが必要としていたすべてを私たちが持っていたインターフェイス上でこれらすべてのビットを手に入れる方法を教えてください。私たちが現在行っているプロセッサとファイバインターフェイスでは、もはや懸念されていません...今問題は、問題のないソフトウェアをテストし、すべてのコード行をテストする必要があります。その結果、私たちが必要とする処理と帯域幅がすべて確保されたので、我々はそれを使用できるようにしなければなりません。

検証は、プロセッサおよびプログラミング言語の使用における最大の推進要因(およびコスト)の1つです。すべてのハードウェアとソフトウェアには、安全レベルが添付されている必要があります。オートランドのための航空電子工学)は、そのような航空電子工学の失敗を意味する "レベルA"は壊滅的であると考えられた。レベルAソフトウェア(10 ^ 9飛行時間に1回の故障が多いことが多い)の厳しい安全要件を達成するためには、何も間違いがないことを確実にするためにソフトウェアとハ​​ードウェアを徹底的にテストする必要があります。これには、すべてのコード行のすべての条件をカバーすることも含まれます。プログラミング言語とソフトウェアアーキテクチャーを処理するために開発されたほとんどのツールは、正式に検証される必要があります(通常、「修飾」とも呼ばれます)。それに加えて、変更を評価するためには高価な飛行テストを行う必要があります。これは多くの慣性を生み出し、既存の製品の完全なオーバーホールを意味するか、または新製品のためにゼロから始めるだけで、「より高速なシステム」を得ることはしばしばコスト効率が悪いことを意味する。

新しいCPU機能のサポートはどうですか?

Virtualization (allowing different OS's to act like they're running by themselves but are actually running with a layer between themselves and the bare hardware) and multi-core processing is now supported by some real-time OS's for commercial off-the-shelf processors. These have to follow the standards in DO-332 and other materials. According to my 2013 text, this is still in the investigatory phase and no avionics with these features have been certified. The main issue is that multi-core processors don't just have more features, but they have more features that are not comprehensively documented or testable. For more information on issues with use of multi-core see the FAA's CAST 32 and this presentation.

11
追加された
「仮想化(異なるプロセスは、それぞれが動作しているように振る舞い、実際には仮想マシン上で動作している) "...うーん、仮想化の定義はCPU、メモリ、ストレージ、I/O、およびネットワークはOSによって独占的に所有され、使用されているように見えますが、実際に複数のOSインスタンスは仮想化プログラムが共有する同じリソース上で実行されます。仮想化は、 rel="nofollow noreferrer">ハードウェアまたはソフトウェアを参照してください。
追加された 著者 Galwegian,
仮想化では、1つのマシンで実行するものが増えるほど、「単一障害点」を増やすことになります。飛行機で何かが壊れたとき、我々は冗長性とシステムの独立性が好きです:他の何かが壊れたときに壊れる事は少なくなります。
追加された 著者 Jon Story,
確かにそうすることが可能です。何かと同様に、2つのシステムを持つことができます.1つのシステムに多くを積み重ねているだけです。コスト削減には最適ですが、安全性に欠かせない信頼性には必ずしも理想的ではありません。 「各システムは1つのことを行いますが、1つのことはすべて行いますが、そのことだけは役に立ちます。それは確かに管理されたリスクかもしれませんが、それにもかかわらずリスクです
追加された 著者 Jon Story,
質問へのこの詳細で有益な返答のために@CodyPに感謝します。より詳細な調査が必要な多くの問題がありますが、1)マルチコアプロセッサは総合的に文書化されているかテスト可能ではない機能を備えています - 将来の世代のCPUが重要な航空宇宙用途には本質的に不適切です。 2)これらの非常に保守的なシステムが構築されているマイクロプロセッシングハードウェアが利用できなくなる時が来るかもしれません。それはおそらく、スクラッチソフトウェア/ハードウェアの再開発の契機になるでしょうか?
追加された 著者 Uriel CP,
@minsキャッチをありがとう!
追加された 著者 Cody P,
包括的に文書化されているか、またはテスト可能であるということは、内部隠れ変数があることと、完全に記述されていない機能を意味します。多分、マルチコアCPUを使用するには、最終的に検証の難しさに値するでしょう。ワーストケースのシナリオでは、コアをオフにすることができます。しかし、1)私たちは、デスクトッププロセッサーやモバイルプロセッサーではなく、組み込みプロセッサーを指しているので、異なる市場であるため、異なるプロセッサーが使用されています。2)コンシューマーエレクトロニクス市場だけでも非常に多様です。結局のところ、アップルはまだAppleのデュアルコアプロセッサをiPadに搭載している。
追加された 著者 Cody P,
@JonStory仮想化が単一障害点分析にどれほど影響するかはわかりませんが、正しく実装されていれば、メンテナンスとフライバイワイヤーを並行して実行している現在のIMAとは違いはないと思います1枚のカードに単一障害点は、そのような複数のコンピュータを別々に持つことによって軽減されます。しかし、CPU仮想化は、私たちがアビオニクスソフトウェアで使用しているのと同じ堅牢なパーティショニングで設計されていないため、パーティショニングは難題です。
追加された 著者 Cody P,
Downvotedは深刻な答えですが、実際にはプロセッサーやプログラミング言語に関する最初の質問には答えられないからです。
追加された 著者 bphillips,

多くの要素が、各製品のプログラミング言語とプロセッサの選択に入ります。その中には、次のものがあります。

  • ソフトウェアシステムの汎用目的
  • 選択した設計保証レベル(A-E)
  • 製品のハードウェア制約
  • 言語による企業体験
  • 利用可能な開発ツール
  • 利用可能な確認ツール

私は航空安全上重要なシステムで使用される最も一般的な言語はCとAdaであり、C ++は過去10〜15年でより多くの使用を獲得していると考えています。

プロセッサは、単純な8ビットSO8マイクロからPowerPC、マルチコアx86またはARMシステムオンチップまで多岐に渡ります。 PLDやFPGAなどの電子ハードウェアも特定の作業負荷で普及しています。

2
追加された
Aviation.SEへようこそ!あなたの答えは、質問に完全に答えるために何が変わったのかについてもう少し詳しく説明することができますが、それは良いスタートです。詳細を追加するために、多くの回答が編集され、一定期間にわたって構築/改善されます。
追加された 著者 Rene Saarsoo,