|Exploring novel computer system designs involves modification of both programming models and hardware organization. This exploration is frequently made difficult by the lack of compiler tools, well defined ISA features, or complete microarchitectural definitions. Premature definition of hardware or software limits the flexibility of the other. However, without such assumptions, neither software or hardware can progress. A key goal is to allow programming models and the underlying hardware to evolve separately, while allowing feedback between them.
The Structural Simulation Toolkit (SST) was developed to explore innovations in highly concurrent systems where the ISA, microarchitecture, and memory interact with the programming model and communications system. The package provides two novel capabilities. The first is a fully modular design that enables extensive exploration of an individual system parameter without the need for intrusive changes to the simulator. The second is a parallel simulation environment based on MPI. This provides a high level of performance and the ability to look at large systems. The framework has been successfully used to model concepts ranging from processing in memory to conventional processors connected by conventional network interfaces and running MPI.