Hello, I found an unexpected behavior of my code in Gem5. The runtime depends of the starting position of the code.
I'm running on ARM cpu for the detailed processor model compiled with opt flavor. I made an experiment to exemplify this situation. It consists of running a code for different alignments. The results are: case end init diff 00 18233000 13203000 5030000 01 18233000 13203000 5030000 02 18233000 13203000 5030000 03 18233000 13203000 5030000 04 18290000 13208000 5082000 05 18284500 13208000 5076500 06 18284500 13208500 5076000 07 18285500 13208500 5077000 08 23285000 13208500 10076500 09 23285500 13208500 10077000 10 23285500 13208500 10077000 11 23299000 13208500 10090500 12 23285500 13208500 10077000 13 23285500 13208500 10077000 14 18286500 13209000 5077500 15 18304000 13274000 5030000 The first column is the value for the alignment. The two nexts are the gem5 ticks for end and start. The last one is the difference. As you can see, there is a set of alignments that costs twice. It seems something is not working properly. In addition, I count the ifetch events for miss and hit, and I found the following results, case miss hit 00 357 1440 01 357 1440 02 357 1440 03 357 1440 04 357 1441 05 357 1436 06 357 1437 07 357 1437 08 357 11436 09 357 11437 10 357 11437 11 359 11431 12 357 11435 13 357 11435 14 357 1436 15 358 1440 The amount of misses is the same in all the cases, but the amount of hits is 10 times more for some of them. I think, that the problem is on the pipeline of out-of-order. I checked the same experiment using the minor cpu model, and it works ok. I'm a file containing all the necessary files to reproduce the experiment. I tested it on the last repo version for stable and developer. Thanks in advance, David _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
