TLB的歧义问题

TLB的歧义问题

什么是TLB的歧义问题?该如何解决? #

不同进程的相同的虚拟地址可以映射不同的物理地址。这就会造成歧义问题。例如,进程A将地址0x2000映射物理地址0x4000。进程B将地址0x2000映射物理地址 0x5000。当进程A执行的时候将0x2000对应0x4000的映射关系缓存到TLB中。当切换B进程的时候,B进程访问0x2000的数据,会由于命中TLB从物理地址0x4000取数据。这就造成了歧义。

为消除这种歧义,在进程切换时让整个TLB失效。这时,切换后的进程都不会命中TLB,但是会导致性能损失。

Viewpoint #

From #