・旅客機の操縦システムには Core i7クラスの最速高性能なCPUが使われているのか?調べてみると、意外にもインテル 80186や80286といったPCの世界では化石並みの石でした。
なぜ、古いCPUを使うのか。
そんな不思議で奥深い内容を紹介します。
もくじ
最新鋭機でもCPUはWin95クラス
・今の個人向けPCのスペックは、CPU:Core i7、クロック周波数:4.5GHz(4,500MHz)など高性能が当たり前の時代ですが、旅客機の動きを制御するフライト・コンピューターの能力はどれくらいなのか。
PCの世界で例えると、MS-DOSやWindows95の時代まで遡ります。
インテル 80186や80286・80386といった86系CPU、モトローラ68000など68系のCPUで動作しており、一部の機器ではクロック周波数10~20MHzで動作している装置もあります。
例えば、LCCで活躍しているエアバス A320型機のFBY(フライ・バイ・ワイヤ)操縦装置には、このようなCPUが使用されています。
システム | メインCPU | サブCPU |
フライト・マネージメント・コントロール | インテル 80286 |
インテル 80287 |
FBY:ラダーシステム | インテル 80286 |
インテル 80287 |
FBY:エレベーター・エルロン・コントロール | モトローラー 68000 |
モトローラー 68000 |
FBY:スポイラー・エレベーター・コントロール | インテル 80186 |
インテル 80C86 |
スラット・フラップコントロール | インテル 8088 |
モトローラ 68000 |
ブレーキ・ステアリング | インテル 80186 |
インテル 80186 |
多重化システム
・航空機のシステムは、一つが壊れても正常なもう一つで継続して動作できる二重三重の冗長性となっています。
Airbus A320の場合
・フライ・バイ・ワイヤ操縦装置(FBY)など、飛行する上で最重要なシステムはCPUだけでなく、ソフトのプログラミング言語、電源系統も全て別々のものが用意されています。
例えば、メイン回路のプログラム言語にPascalを使用すると、バックアップのサブ回路にはアセンブラでプログラムするなど、誤作動やバグによる障害を防ぐ信頼性の高い構成となっています。
A320の操縦システムでは、異なるメーカーのCPUとプログラム言語を使用してシステムを二重化する異種冗長性方式がとられています。
Boeing 777の場合
・B777の場合は3重化冗長方式となっています。このあたりもメーカーの思想によって若干の違いがあるところです。
3重化とは何なのか簡単に説明すると、B777の飛行制御を行うFBYシステムは、大雑把に3つのモードがあります。
- 通常モード(全機能制限なし)
- バックアップモード(一部機能制限あり)
- ダイレクトモード(プロテクションなし)
・この3つは全て独立した回路と電源で構成され、並行して同じ処理を行う3重化システムとなっています。正常に動作していれば3つの結果は全て同じ。
これを相互に比較監視することで正常か故障かを判断しています。
もし、一つのシステムで何らかの不具合が発生していると判明したら、自動的にその系統を切り離すことで、システムの正常性を保つことができます。
驚くべきことに、この内部で3重化されているコンピューターが3台も搭載されています。つまり、合計:3台×3重化=9重化された高信頼設計となっています。
雑学:初期 Boeing 767のCDU・FMS(フライト・マネジメント・コンピューター)にデータを入力するディスプレイ付のキーボード(CDU)には、インテル 8085(クロック 6MHz)というCPUが使われていました。
画像はB737-300のCDU↓
なぜ古いCPUを使うのか
・現在は、安くて高性能(高速な処理演算やマルチタスクが可能)なCPUが様々なメーカーから販売されている時代にもかかわらず、なぜ旅客機ではこのような古くて低速なCPUが使われているのか?
この謎を解くカギは、それぞれの特徴を比較することで見えてきます。
PCの場合
一般的なPC
- とにかく処理が早くレスポンスが良いことが求められる
- マルチタスクで同時に複数のソフトが動く
- 高速描画で緻密なグラフィック演算処理
- 使用環境は室内 0℃~25℃前後
- CPUの熱暴走、プログラム停止(強制終了)が発生しても再起動が容易
飛行機の場合
航空機システム
- 処理速度も必要だが正しく正確に動作すること
- 致命的なエラーを起こさない絶対的な信頼性
- 急激に変化する気圧や気温(-50℃~+50℃)など環境耐久性
- 耐衝撃・耐G・振動に強い
- 電磁波・電気的ノイズで誤作動しないこと
・このように両者を比較してみると、求められる性能が全く違うことがわかります。
・航空機のシステムには、絶対的な信頼性と耐久性が要求され、過酷な環境でも確実に動作することが求められることから、経験に裏打ちされた確かな品質を持つ古いCPUが使われています。
なぜなら、
飛行制御システムは飛行中に再起動や停止ができないから
ソフトウェアー
・ハード面では信頼と実績のあるCPUで構成されている飛行制御システム。その動作を司るソフトはどのように開発されているのか。
先ほどのエアバスA320では、Pascalやアセンブラ・C言語が使用されていますが、より複雑な処理が必要なB777ではさらに高度なプログラム言語が使われています。
B777(トリプルセブン)の飛行制御用プログラムには、米国国防省で開発された、高い信頼性と安全性・応答速度の速いプログラミング言語 Ada(エイダ)が約70%使用されています。
その規模は、B747-400の40万行から250万行まで巨大化したといわれています。
機内エンターテイメントシステムは早さが優先
・先ほどの操縦システムなど飛行の安全を左右するコンピューターには、処理速度よりも確実性が要求されるため、低速で古くても実績のあるCPUが優先的に利用されていました。
しかし、機内の座席で楽しむエンターテイメントシステム(ビデオ・オーディオ)の場合には、家庭用PCに近いハイスペックなシステム構成が求められます。
一例を挙げると、1994年に就航開始したB777(トリプルセブン)の機内には各座席のシートモニターでビデオプログラムを楽しむために、高速LANが張り巡らされ、CPUは早々に家庭用PCに近いペンティアム系を採用、OSにはWindows 2000やUNIXが用いられていました。
なぜ機内IFE(In Flight Entertainment)には、このようなハイスペック構成が可能なのか?
それは、
故障やエラーが発生しても飛行の安全には支障がないから
このように、航空機はシステムの重要度に応じて信頼性を重視するか、処理速度を優先するかなど使い分けがされています。
古いCPUだから機能が劣るというわけではありません。
航空機のシステムに組み込まれるCPUは、一般のPCとは違い汎用性の必要はなく機能が限定されているので、設計の段階で最適化を行えば必要な処理能力を得ることができます。
最新の高速CPUよりも、航空機の特異な環境で正しく正確に動作し、頑丈で壊れない物が要求されます。
参考にした本
・今回の内容は、下記の資料を一部参考にしました。さらに詳しく知りたい方は読んでみてください。
◆航空とIT技術
◆Building the Information Society 【p214】
◆ハイテク機はなぜ落ちるか
ハイテク機はなぜ落ちるのか:遠藤 浩 著【飛行機の本 #8】