Wie unterscheidet der TLB bei SMT-Prozessoren (Simultaneous Multithreading), bei denen Threads den TLB gemeinsam nutzen, den Zugriff eines Threads vom Zugriff eines anderen? Jeder Thread hat seinen eigenen Satz von Seiten, die in den Speicher geladen werden, und unabhängige Threads nutzen keine Seiten gemeinsam. Ich würde vermuten, dass es dafür im TLB eine Art Hardwareunterstützung gibt, beispielsweise einige zusätzliche Bits. Aber ich würde gerne mehr Details wissen.
Antwort1
Wenn Threads einen TLB gemeinsam nutzen, muss der Zugriff eines Threads nicht von dem eines anderen unterschieden werden. Wenn Threads eine VM gemeinsam nutzen, haben sie genau dieselbe Speicheransicht. Wenn nicht, dann nutzen sie keinen TLB gemeinsam.