Chimera Instruction Set Simulator (ISS) is an executable with associated libraries available on macOS and Ubuntu Linux platforms. It can be used to simulate algorithms that have been “lowered” and converted into Chimera assembly code.
ISS Standalone mode features:
- Approximately timed model (performance accurate to +/- 5%).
- Models all architectural states to provide debug visibility.
- Models all core-internal LRM (Local Register Memory) RAMs and the L2 memory RAM.
- Includes a simplistic model of all other memory space (on the AXI port) with a user-selectable average read and write delay function.
The ISS allows a user to:
- Simulate any algorithm that can be ported to Chimera and obtain a bit-accurate output.
- Receive a good estimate of cycle-counts spent in various categories of instructions.
- See the various stalls in Chimera pipeline.
- Use these estimates to perform A/B comparison of different implementations and optimize algorithms.
All Chimera instructions and data movement is modeled in the ISS. The ISS is functionally accurate and cycle-approximate. Internally, it does not advance cycle by cycle but advances time based on when an instruction execution, and data traffic, would have been completed. The knowledge of instruction execution and data-hazard based stalls is exact, but the knowledge of data movement is stochastic, based on total bandwidth, efficiency and average latencies of memory interfaces that are supplied as inputs to the simulator.