Another POWER8 Development Option

Edit: There are easier ways to get access to hardware.

Originally posted February 10, 2015 on AIXchange

If you’re looking to develop software for POWER8 systems but don’t have access to POWER8 hardware, there are options like the virtual loaner program or some kind of test system. You should also be aware of the IBM POWER8 Functional Simulator:

The IBM POWER8 Functional Simulator is a simulation environment developed by IBM. It is designed to provide enough POWER8 processor complex functionality to allow the entire software stack to execute, including loading, booting and running a Fedora 20 BE (Big Endian) kernel image or a Debian LE (Little Endian) kernel image. The intent for this tool is to educate, enable new application development, and to facilitate porting of existing Linux applications to the POWER8 architecture. While the IBM POWER8 Functional Simulator serves as a full instruction set simulator for the POWER8 processor, it may not model all aspects of the IBM Power Systems POWER8 hardware and thus may not exactly reflect the behavior of the POWER8 hardware.

Features
·        POWER8 hardware reference model
·        Models complex SMP effects
·        Architectural modeled areas:
o    Functional units (Load/Store, FXU, FPU, etc.)
o    Pipeline
o    Exceptions and Interrupt handling
o    Address translation
o    Memory and basic cache modeling (SLBs, TLBs, ERATs)
·        Linux and Hypervisor development and debug platform
·        Boots Fedora 20 (BE) and Debian (LE) kernel images
·        TCL command-line interface provides:
o    Custom user initialization scripts
o    Processor state control for debug: Step, Run, Cycle run-to, Stop, etc.
o    Register and Memory R/W interaction

Supported x86_64 host operating systems for running the IBM POWER8 Functional Simulator
· Fedora 20
· Red Hat Enterprise Linux 7.0
· Suse 12
· Ubuntu 14.10
Supported 64-bit Big Endian Linux distributions for booting the IBM POWER8 Functional Simulator
· Fedora 20
· Other distributions may function, however, no testing has been performed

For detailed information, check out the user guide and the command reference guide. I’ll highlight the user guide descriptions of the Simulator’s Linux and Standalone modes:

Linux Mode
In Linux mode, after the simulator is configured and loaded, the simulator boots the Linux operating system on the simulated system. At runtime, the operating system is simulated along with the running programs. The simulated operating system takes care of all the system calls, just as it would in a nonsimulation (real) environment.

Standalone Mode
In standalone mode, the application is loaded without an operating system. Standalone applications are usermode applications that are normally run on an operating system. On a real system, these applications rely on the operating system to perform certain tasks, including loading the program, address translation, and system-call support. In standalone mode, the simulator provides some of this support, allowing applications to run without having to first boot an operating system on the simulator.

Why not download the code and give it a try?