I was printing out TLB entries whenever virtual address hit or miss on TLB.
And I found that TLB miss occurs even though TLB already has matched entry
in it.

For example,
4949665272500: system.cpu.dtb: L1 TLB Miss : VA = 0x7fab3f32c280
4949665272500: system.cpu.dtb: tlb[41] : VPN = 0x7fab3f32c000, PPN =
0x1facd000

Translation for VA = 0x7fab3f32c280 is already in tlb[41].
However, it is considered as miss.
After this weird TLB miss, gem5 puts same translation in TLB again.

4949667892500: system.cpu.dtb: tlb[41] : VPN = 0x7fab3f32c000, PPN =
0x1facd000
4949667892500: system.cpu.dtb: tlb[42] : VPN = 0x7fab3f32c000, PPN =
0x1facd000
...........(abbreviated)
4949667892500: system.cpu.dtb: tlb[46] : VPN = 0x6b4000, PPN = 0x1ff27000
4949667892500: system.cpu.dtb: tlb[47] : VPN = 0x6b4000, PPN = 0x1ff27000
4949667892500: system.cpu.dtb: tlb[48] : VPN = 0x6bd000, PPN = 0x1ff0a000
4949667892500: system.cpu.dtb: tlb[49] : VPN = 0x6bd000, PPN = 0x1ff0a000

As you can see, there are several same translations in TLB.
I played with this simulation with latest gem5-stable and dev version.
Does anyone have idea why this is happening?
I just don't understand why gem5 can't find proper translation when it is
already in TLB and put same translation again.

-- 
*Jinchun Kim*
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to