On Sun, Apr 29, 2012 at 9:32 PM, Matthew Hicks <firefal...@gmail.com> wrote:
> Why do we need to make sure rfe and mfspr spend at least two clock
> cycles in the execute stage.  I am working on a bug detection and
> recovery system, and I am trying to write a stateless (i.e., I can
> only read the current flip-flop values to determine if the bug is
> active) detector for the rfe bug from a year ago.  I can not find a
> way to tell if rfe spent a single cycle in the execute stage, which I
> might be able to do if I understand why it requires two cycles in the
> first place.

Well, I can think of a good reason for mfspr needing 2 cycles.  It
lets you read from the GPRs using certain SPR addresses, and the
processor has to stall in order to free the read port on the register
file in that case.

rfe is probably handled at the last stage in the pipeline (can't say
for sure, I haven't looked at the RTL).  So that means it will end up
flushing the pipeline when it's executed.  So there actually be more
than 2 cycles between it and the next instruction to be completed.

-Pete
_______________________________________________
OpenRISC mailing list
OpenRISC@lists.openrisc.net
http://lists.openrisc.net/listinfo/openrisc

Reply via email to