Dromajo ESESC
DESESC is an evolution from SESC, but it does not use semantic versioning. The reason is that after each major change (new letter) there is a period of "beta" unstable which is akind of 0.x version in semantic versioning.
Each major release adds a letter:
MIPS based OoO core with multicore and TLS support
Major changes from SESC:
- QEMU based emulator (MIPS/RISC-V/ARM)
- Power/thermal
- Statistical sampling
DESESC:
Major changes from ESESC:
- Dromajo instead of QEMU
- Specter Safe OoO model
- Major rework for modern C++
- New configuration
DESESC requires gcc (or clang) versions 10 or newer and bazelisk.
Install Bazelisk
Bazelisk is a wrapper around bazel that allows you to use a specific version.
If you do not have system permissions, you can install a local bazelisk
npm install @bazel/bazelisk
alias bazel=$(pwd)/node_modules/\@bazel/bazelisk/bazelisk.js
You can also install it directly if you have administrative permissions:
macos:
brew install bazelisk.
Linux:
go install github.com/bazelbuild/bazelisk@latest
export PATH=$PATH:$(go env GOPATH)/bin
Arch linux:
pacaur -S bazelisk # or yay or paru installers
To build desesc
with debug version (debug/develop)
bazel build -c dbg //main:desesc
To build desesc
with release version (long simulations)
bazel build -c dbg //main:desesc
To run the default simulation (dhrystone):
./bazel-bin/main/desesc -c ./conf/desesc.toml
You may want to use https://github.com/shioyadan/Konata to see the traces generated