- Added
- Print TLB stats to the terminal after the simulation completes
- Specify latency for each FPU ALU instruction (
fadd
,fsub
,fmul
,fdiv
,fmin
,fmax
,fcvt
,cvt
,fle
,flt
,feq
,fsgnj
,fqsrt
,fmv
,fclass
) via TinyEMU config file - Figure showing the high-level overview of MARSS-RISCV in README.md
- Changed
- Simplify the base DRAM model
- All memory accesses simulate a fixed latency
mem_access_latency
- Any subsequent accesses to the same physical page occupies a lower delay, which is roughly 60 percent of the fixed
mem_access_latency
- More info here
- All memory accesses simulate a fixed latency
- Parallel operation of functional units can be enabled or disabled in the in-order core via TinyEMU config file
- Clean exception handling code
- Simulate page table entry read/write delays directly via memory controller using a configurable fixed latency
pte_rw_latency
- Don't stall the pipeline stage for the write request to complete on the memory controller
- Make FPU-ALU non-pipelined
- Rename
dram_dispatch_queue
tomem_request_queue
- Update MARSS-RISCV Docs
- Update README.md
- Update TinyEMU config file here
- Simplify the base DRAM model
- Fixed
- memory leaks
- Added
- Support for separate RISC-V Bios and Kernel
- Command line option
flush-sim-mem
to flush simulator memory hierarchy on every fresh simulation run - Command line option
sim-trace
to generate instruction commit trace during simulation - Distinct configurable read-hit and write-hit latency for all the caches
- Return address stack (RAS)
- Branch prediction and speculative execution support for out of order core
- Print performance counters on terminal when the simulation completes
- More performance counters:
- Instruction types
- ecall
- page walks for loads, stores and instructions
- memory controller delay for data and instructions
- hardware interrupts
- Changed
- Port to TinyEMU version
2019-12-21
- For bimodal branch predictor, store prediction bits in a separate Branch history table (BHT)
- For in-order core, non-memory instructions can forward their result from MEM stage in addition to EX stage
- For in-order core, relaxed interlocking on WAW data hazard
- Simplified out of order core design, ROB slots are now used as physical registers along with a single rename table and a single global issue queue
- Port to TinyEMU version
- Fixed
- Correctly calculated the rounding mode for floating pointing instruction decoding
- Converted
c.addiw
result buffer intoint32_t
on 64-bit simulation - Set the data type to
unint64_t
for 64-bit simulation, for the buffer which holds the memory address for atomic instructions - Issue #13 and #14 (thanks to Okhotnikov Grigory)
- Added
- Added DRAMSim2 support
- Changed
- Flush all the CPU caches and DRAM models for every new simulation run
- Fixed
- Issue #8: useless cleaning of local variables
- Added
- Add 16550A UART support (thanks to Marc Gauthier)
- Add a timestamp suffix to the stats file
- Changed
- Reworked the dram latency parameters to match the Sifive HiFive U540 Board
- Increased the dram dispatch queue size from 32 to 64
- Fixed
- Calculation of hardware page walk latency
- Miscalculation in page fault counters
- Issue #2: memory leaks in copy_file
- Issue #3: 'log' instead 'log2'