Archimulator 国产纯Java多核体系结构模拟器:
Written in 100% Java with the aid of JNA (Java Native Access) for native POSIX syscall implementations, which assures its portability and usability across many Linux machine configurations.
Facilitates interface-based hierarchical object orientation to improve code readability and extensibility.
Provides functional architectural simulation of:
Program loading for statically-linked MIPS32 ELF executables (both Little Endian and Big Endian are supported);
Functional execution of common integer and floating-point instructions of MIPS32 ISA;
Emulation of common POSIX system calls;
Execution of Pthreads based multithreaded programs.
Provides cycle-accurate microarchitectural simulation of:
Separate pipeline structures such as the reorder buffer, separate integer and floating point physical register files;
Explicit register renaming based on the merged architectural and rename register file model;
Single-threaded superscalar out-of-order execution, multithreaded SMT and CMP execution model;
Multi-level inclusive cache hierarchy with the directory-based MESI coherence protocol;
Simple cycle-accurate DRAM controller model;
Various kinds of static and dynamic branch predictors, checkpointing-based pipeline recovery on branch misprediction.
项目主页:https://github.com/mcai/Archimulator
来自:开源中国社区