2010-09-20 7 views
51

Was ist ein TLB-Shootdown in SMPs?Was ist TLB-Shootdown?

Ich kann nicht viele Informationen zu diesem Konzept finden. Jedes gute Beispiel würde sehr geschätzt werden.

+1

Ist dies eine Programmierung Frage

TLB Spülung kann durch verschiedene virtuelle Speicheroperationen ausgelöst werden, die die Seitentabelleneinträge wie Seite Migration ändern? – Gabe

+0

@Gabe, ich denke, es ist eine Programmierfrage, wenn @mousey versucht, einen Kernel zu implementieren. Eine Klarstellung seinerseits würde sehr geschätzt werden. –

+2

ja ich versuche einen Kernel zu implementieren. – mousey

Antwort

49

Ein kurzes Beispiel:

  1. Sie haben einige von allen Prozessoren in dem System gemeinsam genutzten Speicher.

  2. Einer Ihrer Prozessoren beschränkt den Zugriff auf eine Seite dieses gemeinsamen Speichers.

  3. Jetzt müssen alle Prozessoren ihre TLBs löschen, so dass diejenigen, die auf diese Seite zugreifen durften, dies nicht mehr tun können.

Die Aktionen eines Prozessors die TLBs verursacht auf anderen Prozessoren gespült werden soll, was ein TLB-Abschuss genannt wird.

86

Ein TLB (Translation Lookaside Buffer) ist ein Cache für die Übersetzungen von virtuellen Speicheradressen zu physikalischen Speicheradressen. Wenn ein Prozessor die Zuordnung virtuell zu physisch einer Adresse ändert, muss er den anderen Prozessoren mitteilen, dass diese Zuordnung in ihren Caches ungültig gemacht werden soll.

Dieser Prozess wird als "TLB-Shootdown" bezeichnet.

+11

+1 für die Erweiterung TLB – pmg

3

Ich denke, die Frage erfordert eine detailliertere Antwort.

Seitentabelle: eine Datenstruktur, die die Zuordnung zwischen den virtuellen Speicher (Software) und physikalischen Speicher (Hardware) kann

jedoch die Seitentabelle (finden speichert die ziemlich groß sein und durchquert die Seitentabelle virtuelle Adresse die entsprechende physikalische Adresse) kann ein zeitaufwändiger Prozess sein. Um diesen Vorgang zu beschleunigen, wird ein Cache verwendet, der als TLB (Translation Lookaside Buffer) bezeichnet wird und die zuletzt abgerufenen virtuellen Speicheradressen speichert.

Wie deutlich zu sehen ist, müssen die TLB-Einträge stets synchron mit ihren jeweiligen Seitentabelleneinträgen sein. Jetzt sind die TLBs ein Pro-Core-Cache dh. Jeder Kern hat seinen eigenen TLB.

Immer wenn ein Seitentabelleneintrag von einem der Kerne geändert wird, wird dieser bestimmte TLB-Eintrag in allen Kernen ungültig gemacht. Dieser Prozess wird TLB Shootdown genannt. , Befreien Seiten usw.