Is the pre-fetch buffer refilled on a branch? If so, how many clocks are needed to get the pipeline full again?
For example, if the pre-fetch buffer and the pipeline are full, and a branch happens, the pipeline and pre-fetch buffer are invalid, correct?
It takes one clock cycle to for the pipeline to become full. Generally, the pre-fetch buffer does not add any extra clocks (as compared to a non pre-fetch buffer design).
As indicated above, the pre-fetch buffer does NOT add any extra clock cycles. The pre-fetch buffer is part of the pipeline -- it is better described as a stretch buffer between two pipe stages that can hold 0-16 values.