Wat is TLB (translation lookaside buffer)?

Kleine cache met de resultaten van de vertaling van virtuele naar fysieke adressen. Omdat de paginatabel in het geheugen niet telkens hoeft te worden doorlopen, verloopt adresvertaling sneller.

Japanse benaming: TLB(変換索引バッファ)

“TLB (translation lookaside buffer)” komt voor in 20 oefenvragen uit 4 onderwerpen, bijv. Besturingssysteem en hardware, Geheugenhiërarchie en prestaties, Prestatiemeting en profiling.

Vakgebied: CPU en architectuur

Nu oefenen: vragen over TLB (translation lookaside buffer)

Welk voordeel is juist van het toevoegen van een ASID (address space identifier) aan elke TLB-ingang?

  1. AVertalingen kunnen worden onderscheiden zonder bij het wisselen de hele TLB te legen
  2. BHet bereik van virtuele adressen dat een proces kan gebruiken kan worden verdubbeld
  3. CDe paginatabel is niet meer nodig en alle vertalingen kunnen alleen met de TLB worden gedaan
Antwoord en toelichting tonen

Antwoord: A. Vertalingen kunnen worden onderscheiden zonder bij het wisselen de hele TLB te legen

Zonder ASID wijst hetzelfde virtuele adres per proces naar een ander fysiek adres, dus bij elke proceswisseling moet de TLB worden geleegd en volgen na de wisseling TLB-misses. Als elke ingang een ASID heeft, kan worden onderscheiden bij welk proces een vertaling hoort, zodat de TLB niet geleegd hoeft te worden en de ingangen bij terugkeer naar het oorspronkelijke proces opnieuw kunnen worden gebruikt. Het bereik van virtuele adressen verandert niet en de paginatabel blijft nodig voor vertalingen die niet in de TLB passen.

Hoeveel geheugentoegangen zijn in het slechtste geval nodig bij een TLB-miss in geneste paginering waarbij zowel gast als host paginatabellen met 4 trappen gebruiken?

  1. A8
  2. B16
  3. C24
Antwoord en toelichting tonen

Antwoord: C. 24

De plaats van elke tabel van de 4 trappen van de gastpaginatabel staat in gast-fysieke adressen, dus vóór het lezen ervan moet met de 4-traps tabel van de host worden vertaald. Per gasttrap zijn dat 5 toegangen (4 van de host + 1 van de gasttabel), bij 4 trappen 20, en daar komen de 4 bij voor het vertalen van het uiteindelijk verkregen gast-fysieke adres van de gegevens zelf met de 4 trappen van de host, samen 24. Als formule: (4 + 1) × (4 + 1) − 1 = 24. 8 is de waarde als men denkt dat 4 trappen twee keer worden doorlopen, waarbij de vertaling van de plaats van de tabellen is vergeten.

“TLB (translation lookaside buffer)” in de toelichting

Vragen met “TLB (translation lookaside buffer)” (20)

  1. Welk voordeel is juist van het toevoegen van een ASID (address space identifier) aan elke TLB-ingang?
  2. Hoeveel geheugentoegangen zijn in het slechtste geval nodig bij een TLB-miss in geneste paginering waarbij zowel gast als host paginatabellen met 4 trappen gebruiken?
  3. Wat is het bereik dat zonder TLB-miss kan worden benaderd (TLB reach) bij een TLB met 64 entries en een paginagrootte van 4 KB?
  4. Welke cache bewaart de resultaten van de omzetting van virtuele naar fysieke adressen en versnelt zo de adresvertaling?
  5. Wat is de juiste rol van de paginatabel?
  6. In welk geval treedt een paginafout op?
  7. Wat is de belangrijkste reden om de paginatabel meertrapsgewijs (hiërarchisch) in plaats van eentrapsgewijs te maken?
  8. Hoeveel trappen moeten worden doorlopen bij een meertraps paginatabel met 48 bits van het virtuele adres, een paginagrootte van 4 KB en 512 ingangen (9 bits) per tabel?
  9. Wat is de belangrijkste reden dat een contextwisseling in de praktijk soms een grotere prestatiedaling veroorzaakt dan de tijd die het opslaan en herstellen van registers kost?
  10. In veel besturingssystemen wordt het kernelgebied toegewezen aan een deel (bijvoorbeeld het hoge bereik) van de adresruimte van elk proces, en wordt toegang vanuit de gebruikersmodus met de beveiligingsbit van de paginatabel verboden. Wat is het belangrijkste voordeel van deze indeling?
  11. Hoeveel bits van het virtuele adres geven de positie binnen de pagina (offset) aan bij een paginagrootte van 4 KB?
  12. Welke verwerking is juist nodig in een systeem met meerdere cores wanneer het besturingssysteem de paginatabelingang van een pagina wijzigt en de koppeling ongedaan maakt?
  13. Wat is de belangrijkste reden dat het sneller is om kleine gegevens eerst in een buffer in de gebruikersruimte te verzamelen en gebundeld weg te schrijven dan bij het byte voor byte wegschrijven telkens een systeemaanroep te doen?
  14. Een tweedimensionale C-array a[i][j] wordt doorlopen met j als binnenste lus. Dit is doorgaans sneller dan met i als binnenste lus. Wat is de reden?
  15. Hoeveel bits van het adres worden bij een volledig associatieve cache voor de index (het selecteren van de set) gebruikt?

Verwante termen

Paginatabel ASID (address space identifier) Virtueel geheugen Systeemaanroep (system call) Numerieke apertuur (NA) Geneste paginering (nested paging) Via Interrupt TLB-shootdown Bevoorrechte modus (privileged mode)

Naar de woordenlijst