- Komputer penerbangan wahana berawak ke Bulan Orion memiliki arsitektur dengan ketahanan dan kemampuan kontrol otomatis yang jauh lebih baik dibanding sistem era Apollo, dan mengelola semua fungsi inti seperti penunjang kehidupan, daya, dan komunikasi
- Agar tetap beroperasi tanpa gangguan bahkan pada jarak 250 ribu mil di orbit Bulan, sistem ini dirancang untuk menahan kegagalan perangkat keras dan dampak radiasi melalui redundansi fisik dan logis serta banyak komputer penerbangan
- Setiap Flight Control Module (FCM) terdiri dari sepasang prosesor dengan proses verifikasi mandiri, sehingga total 8 CPU berjalan paralel, dan kesalahan diisolasi melalui desain fail-silent serta algoritme pemilihan output berbasis prioritas
- Sistem mempertahankan sinkronisasi penuh melalui Ethernet berbasis pemicu waktu dan arsitektur deterministik, serta secara otomatis mengoreksi hingga kesalahan satu bit dengan jaringan dan memori yang ditri-redundansi
- Jika semua sistem utama gagal, Backup Flight Software berbasis perangkat keras dan sistem operasi independen akan mengambil alih kendali; arsitektur ini dinilai sebagai model ketahanan always-on untuk sistem otonom di masa depan
Desain komputer tahan gangguan NASA untuk Artemis II
- Komputer penerbangan Artemis II memiliki arsitektur dengan ketahanan dan kemampuan kontrol otomatis yang jauh lebih baik dibanding komputer navigasi era Apollo
- Komputer Apollo menggunakan prosesor 1MHz dan memori sekitar 4KB, dengan kontrol utama berbasis sakelar manual atau relay
- Kapsul Orion pada Artemis II membuat komputer secara langsung mengelola semua fungsi inti seperti penunjang kehidupan, daya, dan komunikasi
- Karena kegagalan misi pada jarak 250 ribu mil di orbit Bulan tidak dapat dipulihkan, sistem harus tetap beroperasi tanpa henti meski menghadapi radiasi antariksa, bit flip, dan cacat perangkat keras
- NASA menyiapkan kegagalan perangkat keras melalui kabel redundan secara fisik, bidang jaringan yang redundan secara logis, dan banyak komputer penerbangan
-
The Power of Eight
- Orion mengadopsi arsitektur yang melampaui triple redundancy yang umum
- Dua Vehicle Management Computer (VMC) masing-masing memuat dua Flight Control Module (FCM), sehingga total ada 4 FCM
- Setiap FCM terdiri dari sepasang prosesor self-checking, sehingga total 8 CPU menjalankan perangkat lunak penerbangan secara paralel
- Sistem ini berbasis desain fail-silent, sehingga CPU yang mengalami kesalahan tidak mengirim keluaran salah dan langsung beralih ke keadaan diam
- Alih-alih voting mayoritas, sistem memakai algoritme pemilihan sumber berbasis prioritas untuk memilih keluaran dari kanal yang sehat
- NASA memperkirakan kesalahan sementara saat melintasi sabuk radiasi Van Allen, dan bahkan jika kehilangan 3 FCM selama hingga 22 detik, misi masih dapat berlanjut dengan FCM terakhir
- FCM yang berada dalam keadaan diam dapat ikut kembali saat penerbangan setelah di-reset dan disinkronkan ulang dengan modul lain
- Orion mengadopsi arsitektur yang melampaui triple redundancy yang umum
-
Menjaga operasi deterministik
- Untuk menjaga beberapa komputer independen tetap dalam sinkronisasi penuh (lockstep), diterapkan arsitektur deterministik (deterministic architecture)
- Orion menggunakan jaringan time-triggered Ethernet untuk mendistribusikan waktu ke seluruh sistem
- Perangkat lunak penerbangan dijalankan dalam major frame dan minor frame yang dikelola scheduler ARINC653
- Pemisahan waktu dan ruang menjamin input dan output selaras sempurna dengan jadwal jaringan
- Setiap FCM menerima input yang sama, menjalankan kode yang sama, dan menghasilkan output yang sama
- Setiap detik, clock drift pada FCM diukur lalu dikalibrasi ulang ke waktu referensi jaringan
- Aplikasi yang gagal memenuhi deadline otomatis beralih ke keadaan diam lalu disinkronkan ulang
- Perangkat keras memakai memori triple modular redundancy (TMR) untuk otomatis mengoreksi kesalahan satu bit, dan kartu antarmuka jaringan juga membandingkan jalur trafik ganda untuk menangani kesalahan dengan mekanisme fail-silent
- Jaringan ditri-redundansi menjadi tiga bidang independen, dan semua switch memiliki fungsi verifikasi mandiri
-
Sistem cadangan terakhir
- NASA juga menyiapkan diri terhadap common mode failure yang dapat memengaruhi semua kanal utama secara bersamaan
- Untuk itu dipasang sistem Backup Flight Software (BFS) secara terpisah
- BFS terdiri dari perangkat keras berbeda, sistem operasi berbeda, dan perangkat lunak penerbangan yang disederhanakan serta dikembangkan secara independen
- Jika sistem utama gagal, BFS secara otomatis mengambil alih kendali agar fase dinamis misi tetap dapat diselesaikan
- Setelah itu kru dapat mencoba memulihkan FCM utama
- Logika fail-silent memang penting, tetapi agar tidak ada kesalahan yang lolos tanpa terdeteksi, harus disertai watchdog timer dan pemantauan berlapis
- Sistem juga dirancang untuk tetap bertahan bahkan saat kehilangan daya total ("dead bus")
- Saat daya pulih, sistem otomatis masuk ke safe mode
- Panel surya diarahkan ke matahari untuk memulihkan daya, lalu wahana diposisikan dengan ekor menghadap matahari demi stabilisasi termal
- Setelah itu sistem mencoba membangun kembali komunikasi dengan Bumi, dan bila perlu kru dapat menyesuaikan perangkat penunjang kehidupan secara manual
-
Masa depan keandalan
- Perubahan dari Apollo ke Artemis menandai lonjakan besar dalam kompleksitas perangkat lunak
- Apollo masih memiliki cadangan mekanis, tetapi pada Artemis semua kendali ditangani perangkat lunak
- NASA menggunakan alur verifikasi modern yang mencakup simulasi seluruh lingkungan, stress test Monte Carlo, dan fault injection skala besar
- Dengan superkomputer, seluruh timeline penerbangan disimulasikan untuk memverifikasi apakah perangkat lunak dapat pulih secara fail-silent bahkan dalam kondisi kegagalan perangkat keras
- Arsitektur zero-tolerance pada Orion dinilai sebagai model ketahanan always-on yang dapat diterapkan di masa depan pada kendaraan otonom dan jaringan kontrol industri
- Perubahan dari Apollo ke Artemis menandai lonjakan besar dalam kompleksitas perangkat lunak
1 komentar
Komentar Hacker News
Dari 1989 sampai 1995 saya bekerja di Stratus terkait VOS dan performa database
Stratus adalah perusahaan sistem fault-tolerant berbasis hardware, sedangkan pesaingnya, Tandem, mengambil pendekatan berbasis software
Arsitektur Stratus adalah “pair and spare”, jadi semua board diduplikasi dan output tiap pin dibandingkan pada setiap tick
Saat beralih dari Motorola 68K ke Intel, tim hardware mengalami kesulitan besar karena pin yang tidak terpakai pada sebagian instruksi menjadi floating
Ungkapan peneliti CMU bahwa “Agile dan DevOps telah melemahkan disiplin arsitektural” cukup berkesan
Sekarang rasanya kita sudah lupa cara membuat sistem deterministik
Penjadwalan frame yang ketat pada Time-triggered Ethernet terasa seperti dunia yang benar-benar berbeda dari cara pengembangan software saat ini
Sebagian praktik pengembangan modern, seperti unit test dan CI, tetap memberi dampak positif bahkan di lingkungan seperti ini
Kini pasar bergeser menjadi berpusat pada sektor komersial sehingga investasinya menurun, tetapi tetap ada banyak algoritma menarik
Riset Frank Mueller atau Johann Blieberger layak dijadikan referensi
Di lingkungan seperti pesawat, yang input dan output-nya terbatas, desain deterministik sangat cocok diterapkan
Dalam praktiknya ini lebih mirip bus hardware khusus daripada Ethernet
Saat melihat tantangan ‘radiation hardening’ di Code Golf,
saya jadi penasaran apakah pendekatan seperti ini benar-benar bisa berguna dalam praktik
Secara realistis sulit karena terlalu banyak lapisan masalah yang saling terkait, tapi tetap menurut saya ini ide yang menarik
Desain “fail-silent” yang dijelaskan di artikel itu menarik
Tapi saya penasaran bagaimana cara mendeteksi jika dua CPU sekaligus melakukan perhitungan yang salah dan hasilnya ternyata sama
Kemungkinan dua CPU menghasilkan kesalahan yang sama pada saat yang sama jauh lebih rendah daripada FIT satu CPU tunggal
Meski begitu, di luar angkasa hukum Murphy tetap berlaku, jadi tidak bisa terlalu yakin
hasil yang salah bisa saja terpilih lewat “mayoritas 25%”
Saya penasaran dengan detail spesifik tentang CPU, RAM, OS, dan bahasa yang dipakai sistem ini
Saya juga ingin tahu seberapa sering FCM masuk ke mode “fail-silent”
Biasanya berjalan di atas FreeRTOS atau RTEMS
Secara pribadi saya merasa struktur proyeknya terlalu kompleks sehingga sulit ditangani
Sebagian besar kode inti NASA tidak dibuka untuk publik, tetapi cFS adalah materi yang bagus untuk mempelajari desain software penerbangan klasik
Artikel itu tidak membahas detail tentang RTOS dan arsitektur yang sebenarnya
Kendali penerbangan utama Orion memakai struktur empat kali redundan berbasis Green Hills INTEGRITY RTOS dan prosesor BAE RAD750
BFS berjalan pada hardware LEON3 + VxWorks yang sepenuhnya berbeda, dan memakai framework cFS milik NASA
Ini adalah arsitektur modular yang dapat digunakan ulang yang juga dipakai pada teleskop James Webb dan Mars Rover
Struktur seperti ini bukan sekadar “sistem utama + cadangan”, melainkan konsep dissimilar redundancy
Detail lebih lanjut bisa dilihat di dokumen teknis NASA 1, dokumen 2
Produksi aktual ditangani oleh Lockheed Martin dan para subkontraktornya
Cara media menuliskannya seolah-olah NASA membangun semuanya sendiri bisa menimbulkan salah paham
Saat bekerja sebagai web developer 25 tahun lalu, saya pernah bertanya kepada teman eks-NASA, “bagaimana kalian menangani bug?”
Dia tertawa dan menjawab, “tidak ada bug”
Developer masa kini sudah terbiasa bekerja di lingkungan yang kegagalannya tidak langsung mempertaruhkan nyawa manusia
Pada layanan web risikonya sebatas kehilangan pendapatan, tetapi pada wahana antariksa yang dipertaruhkan adalah nyawa manusia
Dulu saya pernah mengembangkan komputer tahan radiasi,
dan selain redundansi sederhana kami juga memakai teknik deteksi kesalahan non-redundan
Sayang sekali pendekatan seperti itu tidak terlihat pada sistem kali ini
sehingga ada hardening fisik untuk menyebarkan penampang tumbukan radiasi
Berbagai struktur redundansi ini memang luar biasa, tapi saya penasaran apakah fungsi kendali manual (Manual Override) masih dimungkinkan
Saya ingin tahu apakah sistem ini tetap bisa dikendalikan langsung saat diperlukan seperti pada Apollo 11 dan 13
Karena astronot yang menerbangkannya masih berasal dari kalangan mantan pilot uji, rasanya itu mungkin saja