This work demonstrated the cost-saving and fault-tolerant benefits of virtualization technology by consolidating the flight software from multiple flight processors into a single virtualized system. In this study, a flight software system that was originally deployed on six separate physical processors was modeled using a single processor and a real-time embedded hypervisor.
Virtualization is commonly used to make more efficient use of Information Technology (IT) resources. Some of the same benefits of virtualization that apply to ground-based systems can also apply to real-time flight systems. Virtualization technology for flight systems can increase the ability to host onboard science data processing software, can provide fault isolation between flight software subsystems, and can provide software portability to new hardware platforms. Other benefits include providing an alternate way to manage multicore processors, and reduced size, weight, and power from consolidating an application from multiple physical processors to a single physical processor.
The system that was modeled was the Solar Dynamics Observatory (SDO) Command and Data Handling (C&DH) System. The SDO C&DH system consists of a single PowerPC processor along with four Coldfire processors connected via 1553 data bus. In addition to the 1553 data bus, each flight processor has additional I/O interfaces that are accessed over the PCI backplane. Because of the limited nature of an IRAD (Internal Research and Development) project, it was difficult to duplicate or simulate all of the flight processor interfaces. Therefore, the functionality was implemented in the following stages:
- Consolidation of the flight software from all five flight processors into virtual machines on one physical processor,
- Simulation of the 1553 data bus communication via intra-partition communication mechanism, and
- Simulation of processor I/O loads on each processor.
The virtualized system was implemented by porting the Open Source Abstraction Layer and the Core Flight Executive (both GSFC Open Source projects) to the PikeOS real-time embedded hypervisor on a Sparc/LEON3 processor card running at 60 MHz. Once the flight software was virtualized, the following objectives were tested:
- The ability to reboot virtual processors on an individual basis, especially the ACE/safe-hold computer,
- The ability to provide real-time intraprocessor communication, and
- The demonstration of fault tolerance by showing that exceptions in individual virtual machines do not affect the other virtual machines.
The work showed that given sufficient resources, a single processor could host multiple flight software subsystems without affecting software reliability.
This work was done by Justin Rice and Alan Cudmore of Goddard Space Flight Center. GSC-16856-1