Translation lookaside buffer

Translation lookaside buffer

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

Utilité

Sans TLB, le processeur doit consulter la table des pages à chaque fois qu'une adresse virtuelle est utilisée. Lorsque la table des pages est stockée en mémoire, avec plusieurs niveaux d'indirection, cela ralentit considérablement les accès mémoire. Par exemple, dans le mode protégé de l'Intel 80386, l'accès à une adresse virtuelle implique trois accès à la mémoire physique : un premier accès pour lire une entrée dans un répertoire de table de pages (page directory), un second pour lire une entrée dans une table de pages (page table), et enfin un troisième pour accéder à la donnée[1]. À partir du Pentium Pro, en mode PAE avec des pages de 4 Kio, il existe même un niveau d'indirection supplémentaire[2], soit en tout quatre accès mémoire.

Le TLB mémorise les derniers couples (page, cadre) correspondant aux dernières pages auxquelles le processeur a dû accéder, ce qui permet d'améliorer grandement les temps d'accès à la mémoire. Sur 80386, le TLB comporte 32 entrées[1].

Prise en charge par le système d'exploitation

Le système d'exploitation doit être conscient de l'existence du TLB, car s'il modifie la table des pages en mémoire, la MMU n'en est pas avertie par défaut. Les processeurs fournissent donc des instructions pour invalider sélectivement des entrées du TLB, ou bien vider complètement le TLB.

Sur le 80386, l'adresse du page directory est stockée dans le registre CR3. Lorsque CR3 est modifié, cela signifie que les associations entre adresses virtuelles et adresses physiques ont changé, donc les entrées du TLB sont obsolètes. Le processeur vide donc systématiquement le TLB lors de chaque écriture dans le registre CR3. Sur 80386, il s'agit en réalité de la seule façon d'invalider des entrées du TLB ; il n'existe pas de méthode plus sélective. Ainsi, lorsqu'une entrée de table de page change, le système d'exploitation doit réécrire dans CR3 sa propre valeur[1], avec des instructions du type[3] :

mov %cr3, %ax
mov %ax, %cr3

L'un des bits des entrées de la table de pages est appelé le bit global. Si celui-ci est à 1, la page correspondante ne sera pas retirée du TLB même si on change la valeur de CR3. Ce bit est principalement utilisé pour les pages de mémoire utilisées par le système d'exploitation, puisque celles-ci doivent être accessibles à tout moment.

À partir du processeur 80486 l'opcode "invlpg" permet de signaler que les caractéristiques d'une page en particulier ont été modifiés[4]. Cette page est alors retirée du TLB si elle y était présente.

Notes et références

  1. a , b  et c Michael Tischer, La bible PC, programmation système, 4e édition. Micro Application, 1994.
  2. How PAE X86 Works — Microsoft Technet.
  3. En syntaxe AT&T.
  4. (en)Documentation officielle des instructions des processeurs IA-32

Voir aussi

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Translation Lookaside Buffer ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Translation lookaside buffer de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • 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 — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • 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

Share the article and excerpts

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