"A Linux-based Software Platform for the Reconfigurable Scalable Computing Project"
John A. Williams1, Neil W. Bergmann1, and Robert F. Hodson2
1The University of Queensland
2NASA Langley Research Center
The Reconfigurable Scalable Computing (RSC) project is a NASA-funded project to develop a next-generation on-board computing platform for future space exploration missions. Key technologies are the use of FPGAs to provide reconfigurable computing capacity, soft processor cores to allow this new technology to be evaluated for space missions, a modular system design which allows the system to be scaled as appropriate to meet on-board data processing requirements, and application development tools which encourage use of application-specific hardware and software components.
This paper will describe initial plans for the software platform to be used on-board the RSC system. This platform (ie. operating system and communications) will be built on the Linux operating system for the following reasons which will be discussed in detail in the full paper.
Reliability: The use of Linux in millions of terrestrial systems has already provided many billions of hours of use, providing a proven base system as a superior starting point for RSC operating system design.
Compatibility: Linux has a large user base, and a wide pool of programmers experienced both in low-level Linux programming, and high-level applications development. Applications can be prototyped on existing desktop Linux systems before transfer to the RSC platform, in many cases with minimal software changes.
Reconfigurability: Linux is open-source, with a large programmer base. If needed, changes can be made to customise the Operating System to the particular hardware. Changes to the hardware processor can be largely masked from software designers.
Scalability: The RSC system is intended to scale from a single processor to very large systems, consisting of multiple CPUs per FPGA, multiple FPGA boards per stack, and multiple stacks per system. Through the use of Linux cluster technology, and MPI (Message Passing Interface) communications infrastructure, Linux applications can easily scale to these large processing systems.
Modularity: Linux potentially allows both software tasks and hardware co-processors to be encapsulated as individual processes which communicate with each other using a standard MPI communications layer. This layer can hide details of different communications mechanisms which exists at different levels of a heterogeneous multi-processor architectures, such as hardware FIFOs, on-chip buses, shared memory, PCI backplane, or gigabit Ethernet.
Ease of Design: Linux already provides many features to accommodate space computing system requirements such as Command Interface (shell), Process control, Shutdown, Reset, System Status, Debugging, Security, and Remote Access. There are well-proven tools for Linux software development in C. Extensive documentation already exists for both the Linux kernel, and standard Linux commands.
2005 MAPLD International Conference Home Page