next_inactive up previous


4.5 Prestatieverbetering

In dit hoofdstuk wordt cachegeheugen behandeld alsmede oplsooingen die bijdragen tot het optimaal laten werken van een pipeline.

cachegeheugen

Er betsaan levels. Instructies en data kunnen geschidene of gecombineerd worden. (split cache en verenigde cache). We onderschieden drie typen:
  1. Direct mapping cache. Gebaseerd op conventioneel geheugen. Een geheugenplaats bevat data en extra informatie over de geheugenplaats waar die data vandaan komt. Dit is niet het hele adres, maar alleen de hogere adresbits. De lagere adresbits kiezen de cachelocatie, zoals bij gewoon geheugen. Voordeel te maken met snel standaard gehuegen. Nadeel: een geheugenlocatie kan maar op een cahcelokatie terecht komen.
  2. associatieve cache Gebaseerd op associatief geheugen. Een locatie wordt geselecteerd op inhoud (in ons geval een adres) als dit aanwezig is verschijnen de met dit adres geassocieerde tagbits (de data) op de uitgang. Voordeel: optimaal gebruik van geheugenlocaties. Nadeel: duur associatief geheugen.
  3. setassociative cache een combinatie van bovenstaande technieken. Combineert beide voordelen in zekere mate.
Voor meer info lees ook in Computersystemen en -netwerken het stukje over cache geheugen. Verrder is van belang het repalcement algoritme (wat te doen als de cache vol is). Gebuikelijk is LRU of bij direct mapping cache geen keuze mogelijk. Ee tweede aspect is schrijven in geheugen wat gecached is. Write through en write back (write deferred) zij twee mogelijkheden.

sprongvoorspelling

Om de pipeline optimaal te laten functioneren is sprongvoorspelling belangrijk. Bij een pijplijn moet de reeks instructies bekend zijn. Het gaat hierbij om conditionele sprongen (voorwaardelijke sprongen). Van deze sprongen is niet op voorhand bekend of ze al dan niet genomen gaan worden. Er zijn twee mogelijkheden:
  1. statische sprongvoorspelling
  2. dynamische sprongvoorspelling
Bij statische sprongvoorspelling kan de compiler gebruik maken van informatie over het te verwachten spronggedrag. Bij dynamische sprongvoorspelling wordt tijdens het uitvoeren van een programma de voorspelling gedaan. Dit kost extra hardware en die bestaat dan onder meer uit een spronghistory tabel, waarin met een of meer bits per sprongadres wordt bijgehouden of de sprong de vorige keer wel of niet uitgevoerd is.

Out-of order en herbenoeming

Een tweede probleem bij pipelining is het gebruik van CPU resources met name registers. Belangrijke begrippen die hiermee samenhangen zijn:

Speculatieve uitvoering

Elementaire blokken zijn verzamelingen van isntructies die spronvrij zijn dus een ingang en een uitgang kennen. Het uitvoeren van code voordat bekend is of deze echt nodig is heet speculatieve uitvoering. Een probleem dat daarbij kan optreden is dat er een trap of fout ontstaat die niet echt van toepassing zal blijken te zijn. Een mogelijke oplossing hiervoor het het poison bit.

Over dit dokument ...

Samenvatting COSY2

This document was generated using the LaTeX2HTML translator Version 2002 (1.62)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 2 tan4.tex

The translation was initiated by Leo van Moergestel on 2003-05-11



next_inactive up previous
Leo van Moergestel 2003-05-11