¿Qué es TLB shootdown?


¿Qué es un tiroteo TLB en SMPs?

No puedo encontrar mucha información con respecto a este concepto. Cualquier buen ejemplo sería muy apreciado.

Author: Peter Mortensen, 2010-09-20

3 answers

Un ejemplo rápido:

  1. Usted tiene algo de memoria compartida por todos los procesadores en su sistema.

  2. Uno de sus procesadores restringe el acceso a una página de esa memoria compartida.

  3. Ahora, todos los procesadores tienen que limpiar sus TLBs, para que los que se les permitió acceder a esa página no puedan hacerlo más.

Las acciones de un procesador que causan que los TLBs se descarguen en otros procesadores es lo que se llama un TLB derribo.

 54
Author: Carl Norum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-20 21:38:21

Un TLB (Translation Lookaside Buffer) es una caché de las traducciones de direcciones de memoria virtual a direcciones de memoria física. Cuando un procesador cambia la asignación virtual a física de una dirección, necesita decirle a los otros procesadores que invaliden esa asignación en sus cachés.

Ese proceso se llama un "tiroteo TLB".

 92
Author: Gabe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-06 17:00:00

Creo que la pregunta exige una respuesta más detallada.

Tabla de páginas : una estructura de datos que almacena la asignación entre la memoria virtual (software) y la memoria física (hardware)

Sin embargo, la tabla de páginas puede ser bastante grande y recorrer la tabla de páginas (para encontrar la dirección física correspondiente de la dirección virtual) puede ser un proceso que consume mucho tiempo. Para hacer este proceso más rápido, se utiliza una caché llamada TLB (Translation Lookaside Buffer), que almacena el direcciones de memoria virtual accedidas.

Como se puede ver claramente, las entradas TLB deben estar sincronizadas con sus respectivas entradas de la tabla de páginas en todo momento. Ahora los TLB son una caché por núcleo es decir. cada núcleo tiene su propio TLB.

Cada vez que una entrada de la tabla de páginas es modificada por cualquiera de los núcleos, esa entrada TLB en particular es invalidada en todos los núcleos. Este proceso se llama TLB shootdown.

El flushing TLB puede ser activado por varias operaciones de memoria virtual que cambian las entradas de la tabla de páginas como migración de páginas, liberar páginas, etc.

 5
Author: coda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-26 16:40:35