Post #2409966
2025-09-09 05:39 UTC
@rygorous@mastodon.gamedev.place @steve@discuss.systems @regehr@mastodon.social
> [x86] out-of-order decode using 2 or 3 separate 3-wide decoders
wat.
(i was not paying attention when this dropped (in 2020? 2021?); i'll have to go read about it)
Replies (1)
-
@rygorous@mastodon.gamedev.place 2025-09-09 05:44
@JamesWidman@mastodon.social The basic idea that landed in Tremont is quite simple: Have two decoders that can each do 3 instructions/cycle. Switch which decode cluster you route instruction bytes to on every predicted branch. So any given basic block can only decode 3 insns/cycle max, but you're working on decoding multiple basic blocks at once. This works great on most code (avg length of a BB in most traces is something like 6 instructions). If you have a long basic block though, easy to get decode bound.