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