--- Log opened Tue May 07 00:00:47 2013 | ||
stekern | juliusb: to get zero branch overhead without delay slot, wouldn't you need to do the branch address calculation in fetch stage? | 03:16 |
---|---|---|
stekern | without branch prediction | 03:18 |
stekern | you would even need branch target prediction to avoid doing the branch address calculation there | 03:19 |
stekern | I'm still planning on adding simple branch prediction to cappuccino, I don't think there's another way to get any decent fmax out of it without crippling all b(n)f branches to be 2 cycle | 03:21 |
stekern | or more correctly, crippling all l.sfxx; l.b(n)f to be 3-cycle | 03:22 |
stekern | I'm not sure what scheme would be best though, initially I thought about a "traditional" backward branches taken forward not | 03:24 |
stekern | but I'm playing with the idea of just using the old flag value and recheck in execute stage if it was a misprediction | 03:25 |
stekern | because, for loops, I think that would work pretty well, basically the first jump is potentially a misprediction and the last is a misprediction | 03:27 |
stekern | for conditional statements it's a bit of coin tossing, but so is the backwards-taken-forward-not | 03:28 |
stekern | another benefit of using the old value is that the compiler can be taught to avoid branch mispredictions (by inserting instructions between the l.sfxx and the l.b(n)f) | 03:30 |
mor1kx | [mor1kx] skristiansson pushed 2 new commits to master: https://github.com/openrisc/mor1kx/compare/591f41b398c2...c3e2bff2af41 | 05:34 |
mor1kx | mor1kx/master 8084d90 Stefan Kristiansson: cappuccino/cpu: remove unused execute_opc_insn_i AUTOTEMPLATE signal | 05:34 |
mor1kx | mor1kx/master c3e2bff Stefan Kristiansson: execute_alu: remove unused opc_insn_i signal | 05:34 |
--- Log closed Wed May 08 00:00:49 2013 |
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!