Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The complexity of OoO CPU is such that you scrutiny correctness of every instruction you implement. Also, OoO behavior depends on the commands preceding and following one to be tested, so you have to have more indirect tests for OoO implementation of CPU commands.


Looks like from Appendix D that only 2 bugs were found in BOOM:

> 1. Inaccurate instruction count when minstret is written by software

I don't know what that means, but having minstret written by software was definitely not something I ever tested. In general, perf counters are likely to be undertested.

> 2. Static rounding is ignored for fdiv.s and fsqrt.s

A mistake was made in only listening to the dynamic rounding mode for the fdiv/sqrt unit. This is one of those bugs that is trivially found if you test for it, but it turns out that no benchmarking ever cared about this and from all of the fuzzers I used when I worked on BOOM, NONE of them hit it (including commercial ones...). Ooops.

Fixed here: https://github.com/riscv-boom/riscv-boom/pull/629/files




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: