[Libre-soc-dev] gigabit router design decisions

Jacob Lifshay programmerjake at gmail.com
Thu Nov 4 01:39:35 GMT 2021


On Tue, Nov 2, 2021, 05:13 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:

> it means stalling until a branch is executed, but this is dead simple
> and extremely easy to implement right now.
>
> anything involving branch prediction *inherently* and automatically
> implies speculative execution, and we simply don't have time for that.


branch prediction doesn't require speculative execution:
fetching and decoding instructions ahead *does not* require executing
instructions -- branches can always stall execution until the branch
condition is calculated, at which point we can either immediately execute
the instructions that the branch prediction let us already have fetched and
decoded, or we tell the fetch pipe it was wrong and wait for it to fetch
and decode the correct instructions before executing them.

Jacob


More information about the Libre-soc-dev mailing list