wordtourmother Posted August 14, 2012 Posted August 14, 2012 (edited) What's the difference between "delay" and "penalty?" For example: branch delay, branch penalty, load delay, load penalty. Never-mind about above. In the questions, "delay" was meant to pertain to a single instruction, and by "penalty" the question meant the total penalty, given various statistics about the program (percentage of branches, etc). Damn ambiguous questions In regards to the classic 5-stage pipeline (IF ID EX MEM WB): If there is no forwarding, the correct target address of a branch will not be "available" (to other instructions) until the after WB stage, right? So, whenever there is a branch, the instruction at the target can't be fetched until the cycle after the branches WB stage? I.e. this will have to happen, (correct?): 1 2 3 4 5 6 7 <- cycles. IF ID EX MEM WB <- branch instruction. stalls---- IF ID EX MEM WB <- instruction at branch target. I think this is correct because the program counters are just registers, and registers aren't updated until the WB stage. Edited August 14, 2012 by wordtourmother
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now