I made some changes to architecture in gem5. It runs fine for 8wide
architecture. But when I change the configuration to 4 wide, the simulation
crashes after some time with following message:
gem5.debug: build/ARM/cpu/timebuf.hh:55: void TimeBuffer<T>::valid(int)
const [with T = DefaultIEWDefaultCommit<O3CPUImpl>]: Assertion `idx >=
-past && idx <= future' failed.
Program aborted at cycle 538173163500
Aborted (core dumped)
gdb backtrace is:
#3 0x00007f585348ec32 in __assert_fail () from
/lib/x86_64-linux-gnu/libc.so.6
#4 0x00000000012868b9 in TimeBuffer<DefaultIEWDefaultCommit<O3CPUImpl>
>::valid (this=0x58c5580, idx=6)
at build/ARM/cpu/timebuf.hh:54
#5 0x00000000012874ac in TimeBuffer<DefaultIEWDefaultCommit<O3CPUImpl>
>::calculateVectorIndex (this=0x58c5580, idx=6)
at build/ARM/cpu/timebuf.hh:198
#6 0x00000000012c107c in TimeBuffer<DefaultIEWDefaultCommit<O3CPUImpl>
>::operator[] (this=0x58c5580, idx=6)
at build/ARM/cpu/timebuf.hh:220
#7 0x00000000012bacd0 in DefaultIEW<O3CPUImpl>::instToCommit
(this=0x58bf0b0, inst=...) at build/ARM/cpu/o3/iew_impl.hh:617
#8 0x00000000012be2cd in DefaultIEW<O3CPUImpl>::executeInsts
(this=0x58bf0b0) at build/ARM/cpu/o3/iew_impl.hh:1377
#9 0x00000000012bffde in DefaultIEW<O3CPUImpl>::tick (this=0x58bf0b0) at
build/ARM/cpu/o3/iew_impl.hh:1604
Please explain how timebuffer works? What are idx, past and future
variables in timebuffer?
I would be grateful for any help.
--
Regards,
Abhishek Rajgadia
Electrical Engineering,
IIT Bombay
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users