CART Research Projects
TRIPS System Software
System software for the TRIPS prototype comprises
numerous software subsystems
whose coordinated operation enables users to load TRIPS applications, begin
their execution, monitor their progress, perform program input/output,
and send results to a console or file.
The software spans TRIPS chips (up to four per board, with two cores per chip), PowerPC controllers (one per board), and the x86/Linux Host PC (one per system).
The major software components are hosted as follows:
-
The TRIPS cores execute standalone binaries, which are created with the
TRIPS C/Fortran language toolchain.
A variety of runtime libraries support string, memory, utility, and
math operations as well as traps due to system calls.
-
A Linux 2.6 kernel runs on the individual PowerPC controllers, whose
functionality includes:
-
An NFS-mounted root file system from the host PC.
-
Standard Linux system utilities such as init, sshd, and crond as well as
end-user utilities such ls, mkdir, mv, and gcc.
-
A PowerPC device driver which serves as the gateway to the individual TRIPS chips.
-
A user-level process which sits on top of the device driver.
This daemon discovers available TRIPS chips and processors at
boot time and mediates communication between the processors and the Host PC.
-
The host PC provides a variety of services:
-
Boot daemons (tftpd and dhcpd) enable the PowerPC to download and boot the
Linux kernel from the host PC.
-
Network file system daemons allow the PowerPC to mount a root partition
physically located on the host.
-
Multiple ssh clients enable terminal sessions from the host PC to the
Linux login on the PowerPC.
-
Importantly, the TRIPS Resource Manager (TRM) controls application
execution and provides system call support. Among its responsibilites are:
-
Downloading and initializing TRIPS applications.
-
Creating and destroying those processes, including memory space allocation,
TLB initialization, process morphing, and setting up interprocess communication.
-
Servicing system call requests from the individual
processor on behalf of the executing TRIPS application.
-
Supporting the TRIPS debugger (tdb), which enables developers to set breakpoints
and block-step through an application running on one TRIPS core.
There are a variety of other software components, such as the bootloader, which is programmed into the flash module on the board, and provides low-level
initialization of the PowerPC, onboard SDRAM, serial console, networking,
and other peripherals. A number of x86/Linux utilities provide command-line
interfaces for downloading, executing, and controlling TRIPS applications.
By maintaining a clear demarcation of reponsibilites and clean
interfaces between components, the TRIPS system software provides
a reliable and comfortable runtime platform for developers and end users.