Hi,
My colleague and I solved the problem by looking at the cache unit. When
a request is finished, the cache wakes up the CPU (if it was sleeping).
We did the same for the Multiply Divide Unit: after the mul/div gets
execute the MDU wakes up the CPU.
By adding the following line to the function MultDivUnit::exeMulDiv(),
the CPU starts executing instructions again:
cpu->wakeCPU();
Greets,
Maximilien
On 06/28/2011 11:02 AM, Maximilien Breughe wrote:
Hi all,
I was playing around with the latency parameters of the MultDiv Unit
of the inorder CPU: multLatency, div8Latency, ...
Everything works fine for latencies up to 11. However, when you want
higher latencies the simulator crashes ("simulate() limit reached").
For some reason the CPU starts being idle after 11 cycles waiting for
the MDU to finish and doesn't wake up anymore.
Does anybody have a clue why multiply/divide latencies above 11 could
cause a problem?
Kind regards and thanks in advance,
Maximilien
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users