By Jakob Engblom
A few week ago, Intel announced the Crystal Forest platform, a new IA-based platform for networking and communications applications. The first Crystal Forest hardware is appearing now, but we have been working with Crystal Forest on Simics for more than a year already.
While we cannot yet talk about the details of the hardware (and in any case, that is more Intel's story to tell, not ours), it is a pretty complex piece of silicon. Crystal Forest is based around Sandy Bridge processors and features hardware acceleration for network and security tasks. It features multicore 64-bit processors with virtualization and the latest iteration of the IA instruction set. All of this is faithfully modeled in Simics.
A Crystal Forest system can be configured in a lot of different ways for a particular application. The particular SKUs (chip variants, in Intel lingo) used can differ, and the number of processor cores go from a few to very many. In Simics, it is easy to cover the configuration space with a very small effort. It is just a matter of setting simulation parameters to vary the hardware configuration, numbers of cores and accelerator blocks, and network setup. The simulator makes a single deliverable potentially correspond to a large number of different configurations, unlike hardware boards which are by necessity limited to a single configuration.
Simics for Crystal Forest also enables system integrators to build their own custom platforms, including custom ASICs and rack configurations.
The first demo we have shown for Simics Crystal Forest emphasize networking. Inside a single simulation, we put two Crystal Forest machines. Each has a two-port i82599 network card, 8 GB of RAM, and a 4-core processor (several times more memory and processors than the host on which it is typically run). Two Ethernet networks connect the two machines, allowing experiments in routing and forwarding. To see the network traffic, we insert a "network instrument" on the two networks that count the Ethernet packets being sent and offers us an ability to inject network faults.
In action in Simics, the demo looks like shown below. Note the network instruments being shown in the "System Panel" view, and the machines and other components in the system listed on the left. The software stack on the target is a Wind River Linux demonstration setup that is identical to what is used with physical Crystal Forest machines – no adaptations were needed to run on Simics.
Unlike general x86 virtual machine solutions, Simics models the actual details of the Crystal Forest platform. This means that software stacks that require particular hardware support runs fine on Simics. In particular, the Intel Dataplane Development Kit (DPDK) has been proven to run on Simics. The DPDK is a middleware stack that provides software access to the acceleration and encryption functions of the Crystal Forest hardware, and it expects quite particular features from the hardware which is not found in most standard PCs.
Since Crystal Forest is a model of an actual chipset, it also boots actual real-world BIOSes. Usually, the initial part of the boot of an x86 target in Simics and other simulators is done using simulator-specific boot code such as SeaBIOS (to save development time and simplify the model). However, the Crystal Forest model is detailed enough that actual production BIOSes (including UEFI, obviously) can run on it. This makes Simics an ideal platform for developing custom BIOS code for custom hardware extensions to the Crystal Forest platform and doing bringup on system solutions built on Crystal Forest.
Obviously, the Crystal Forest models have all standard Simics features, like reverse execution, determinism and repeatability, fault injection, checkpointing, and bug transportation. Thanks to Simics VMP, they can also run really fast on IA hosts.
Please note that the demonstration setup I used is just one potential configuration – Simics has been configured with more boards, more networks, and many more processor cores and target gigabytes of memory than this. It was just a suitable setup for the demo software used for this demonstration.
For additional information from Wind River, visit http://www.facebook.com/WindRiverSystems.