Translation Lookaside Buffer

Translation Lookaside Buffer

Translation Lookaside Buffer (TLB) es una memoria caché administrada por la MMU, que contiene partes de la tabla de paginación, es decir, relaciones entre direcciones virtuales y reales. Posee un número fijo de entradas y se utiliza para obtener la traducción rápida de direcciones. Si no existe una entrada buscada, se deberá revisar la tabla de paginación y tardará varios ciclos más, sobre todo si la página que contiene la dirección buscada no está en memoria primaria (véase memoria virtual). Si en la tabla de paginación no se encuentra la dirección buscada, saltará una interrupción conocida como fallo de página.

Contenido

Funcionamiento

El TLB hace referencia a direcciones físicas en su tabla. Puede residir entre la CPU y la caché de la misma o entre esta caché y la unidad de memoria primaria. Esto depende de si la caché utiliza direccionamiento físico o virtual. Si la caché se direcciona de manera virtual, las peticiones se envían directamente de la CPU a la caché, la cual accede al TLB cuando es necesario. Si la caché se direcciona de manera física, la CPU realiza una búsqueda en el TLB con cada operación de memoria, y la dirección física resultante es enviada a la caché. Existen pros y contras en ambas implementaciones.

Una optimización común para las cachés direccionadas de manera física es realizar una búsqueda en el TLB en paralelo con el acceso a caché. Los bits de orden más bajo de cualquier dirección virtual (por ejemplo en un sistema de memoria virtual que tiene páginas de 4KB, los 12 bits más bajos de la dirección virtual) no cambian en la traducción de dirección virtual a física. Durante un acceso a caché se realizan dos acciones: Se utiliza un índice para encontrar una entrada en el sistema de datos de la caché, y a continuación las etiquetas de la línea encontrada se comparan. Si la caché está estructurada de tal manera que pueda ser indexada utilizando solo los bits que no cambian en la traducción, la caché puede realizar su operación de "indexación" mientras el TLB traduce la parte alta de la dirección. Entonces, la dirección traducida del TLB es enviada a la caché. La caché realiza una comparación de etiquetas para determinar si este acceso ha sido un acierto o un fallo.

Fallo

En las arquitecturas modernas se pueden observar dos métodos de tratar un fallo de TLB.

Con el manejo hardware del TLB, la propia CPU comprueba las tablas de paginación para ver si hay alguna entrada válida para la dirección virtual especificada. Si la entrada existe, se lleva a la TLB y se reintenta el acceso; esta vez el acceso será un acierto, y el programa podrá proceder con normalidad. Si la CPU no encuentra una entrada válida para la dirección virtual en las tablas de página, se genera una excepción de fallo de página, la cual deberá manejar el sistema operativo. El manejo de los fallos de página normalmente implica llevar los datos pedidos a la memoria física, generando una entrada en la tabla de paginación para mapear la dirección virtual que faltaba para corregir la dirección física, y reiniciar el programa.

Con el manejo software de las TLB, un fallo genera una excepción "fallo de TLB", y el sistema operativo debe acceder a las tablas de paginación y realizar la traducción por software. Entonces, el sistema operativo carga la traducción en el TLB y reinicia el programa desde la instrucción que causó el fallo. Como en el sistema de manejo hardware, si el SO no encuentra una traducción válida en las tablas, ocurre un fallo de página y el SO deberá manejarlo de la manera correspondiente.

Estadísticas típicas

Tamaño: 8 - 4.096 entradas
Tiempo de acierto: 0,5 - 1 ciclos de reloj
Penalización por fallos: 10 - 30 ciclos de reloj
Ratio de fallos: 0.01% - 1%

Si un acierto de TLB requiere 1 ciclo de reloj, un fallo requiere 30 ciclos, y siendo el ratio de fallos 1%, el ratio de ciclos de memoria efectiva es una media de 1 \times 0,99 + (1 + 30) \times 0,01 = 1,30 ciclos de reloj por acceso a memoria.

Véase también


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Translation lookaside buffer — En architecture des ordinateurs, le translation lookaside buffer (TLB) est un cache du processeur utilisé par l unité de gestion mémoire (MMU) dans le but d accélérer la traduction des adresses virtuelles en adresses physiques. Sommaire 1 Utilité …   Wikipédia en Français

  • Translation lookaside buffer — Буфер ассоциативной трансляции (англ. Translation lookaside buffer, TLB) это буфер сверхоперативной памяти центрального процессора, используемый для ускорения трансляции адреса виртуальной памяти в адрес физической памяти. TLB используется всеми… …   Википедия

  • Translation lookaside buffer — A Translation lookaside buffer (TLB) is a CPU cache that is used by memory management hardware to improve the speed of virtual address translation. All current desktop and server processors (such as x86) use a TLB. A TLB has a fixed number of… …   Wikipedia

  • Translation Lookaside Buffer — Le translation lookaside buffer, ou TLB, est une mémoire cache du processeur utilisé par l unité de gestion mémoire (MMU) dans le but d accélérer la traduction des adresses virtuelles en adresses physiques. Sommaire 1 Utilité 2 Prise en charge… …   Wikipédia en Français

  • Translation Lookaside Buffer — Prinzipschaubild einer MMU mit TLB Der Begriff Übersetzungspuffer oder englisch Translation Lookaside Buffer (TLB, vgl. auch Cache) bezeichnet eine funktionale Einheit der Speicherverwaltung von selbst nachladenden MMUs. Wenn virtueller Speicher… …   Deutsch Wikipedia

  • Translation-Look-Aside-Buffer — Prinzipschaubild einer MMU mit TLB Der Begriff Übersetzungspuffer oder englisch Translation Lookaside Buffer (TLB, vgl. auch Cache) bezeichnet eine funktionale Einheit der Speicherverwaltung (MMU) eines Prozessors. Wenn virtueller Speicher… …   Deutsch Wikipedia

  • Dynamic Address Translation (в архтектуре Z) — У этого термина существуют и другие значения, см. Dynamic Address Translation. В архитектуре Z динамическим преобразованием адреса (Dynamic Address Translation или DAT) называется преобразование виртуального адреса в реальный. Задание адресных… …   Википедия

  • TLB — Translation Lookaside Buffer …   Acronyms

  • TLB — Translation Lookaside Buffer …   Acronyms von A bis Z

  • TLB — Translation Lookaside Buffer (TLB) es un buffer o cache en una Unidad de Procesamiento Central (CPU), que contiene partes de la tabla de paginación, es decir, relaciones entre direcciones virtuales y reales. Posee un número fijo de entradas y se… …   Enciclopedia Universal

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”