bluespec / Toooba

RISC-V Core; superscalar, out-of-order, multi-core capable; based on RISCY-OOO from MIT
Other
161 stars 36 forks source link

Speculation Pruning #25

Closed jonwoodruff closed 2 years ago

jonwoodruff commented 3 years ago

This set of changes prevents speculation in 3 places to reduce DRAM traffic (~13% across our MiBench benchmarks). The first is to prevent instructions that jump to a register target and do not have a prediction from the BTB from speculating the default prediction (straight through). Instead, we flush the fetch pipeline and wait for redirection. The second and third are by not performing a page table walk for invalid virtual addresses in the instruction and data TLBs. Previously, even if the upper bits of a pointer did not constitute a valid virtual address, the would-be virtual page number was still fed into the page walker and a page table walk was done on them. We now check that the upper bits are a valid sign extension, and fail early if not, preventing a table walk.