Execution trace cache

Vi nämnde innan att Pentium 4 processorn har mycket lägre ”felprocent” när den ska göra sina förgreningsförutsägelser efter att koden har passerat genom pipelinen. Anledningen till detta är att den databuffert (branch target buffer) som lagrar information om processorns förutsägelser är 8 gånger så stor på Pentium 4 processorn som den på Pentium 3. Som man kan förstå är det väldigt mycket lättare att lyckas förutsäga var koden ska ta vägen om man har 8 gånger så mycket information till sitt förfogande.

Men trots detta finns det fortfarande risk för en missbedömning av processorn och då måste allting gå väldigt snabbt för att prestandan inte ska bli för lidande. Detta avhjälps med otroligt snabba ALU enheterna i Rapid Execution Engine men för att minska prestandaförlusten ännu mer så finns då den nya Execution trace cache.

Till skillnad mot Pentium 3 och AMD Athlon så använder inte Pentium 4 en L1 instruktions cache. I fallet med en L1 instruktions cache så hämtar den upp kod och förvarar den tills den skickas vidare till den verkställande delen. Men innan koden skickas vidare måste den gå genom dekoder enheten. Tyvärr så är vissa x86-instruktioner väldigt komplexa och tar då lite längre tid än önskvärt att dekoda. Något som också slösar tid är vissa instruktioner som ska verkställas kontinuerligt och måste då även dekodas varje gång de skickas vidare till verkställningsbanan.

För det första så kan Pentium 4 processorns Execution trace cache lagra alla kontinuerligt använda instruktioner i sin cache efter att de har blivit dekodade. Det gör att processorn vid senare tillfälle kan hämta dessa färdigdekodade instruktioner från trace cachen istället för att skicka dem genom dekoder enheterna på nytt.
Trace cachen kan även vara mycket användbar vid en missbedömning av processorn eftersom den rätta koden kanske redan finns i trace cache redo för verkställning.

Advanced transfer cache

Pentium 4 processorns L2 cache är också något utöver det vanliga. Intel har förbättrat Pentium 3 processorns Advanced Transfer Cache så att den på Pentium 4 har både lägre väntetid och högre bandbredd. L2 cachen på Pentium 4 kan överföra data under varje klockfas vilket då ger dubbelt så hög bandbredd som Pentium 3s L2 cache. Athlon modellernas dataväg till kärnan har bara en bredd på 64-bit vilket försämrar bandbredden avsevärt.

Processor
L2 cache storlek
Data per klockcykel
Max Systembandbredd
Intel Pentium 3 Cu 1.0 Ghz
256 KB
256-bit
16.0 GB/s
Intel Pentium 4 2.0Ghz
256 KB
256-bit
64.0 GB/s
Athlon XP/T-bird 1.5Ghz
256 KB
64-bit
12.0 GB/s

En 1.5Ghz Pentium 3 processor skulle teoretiskt sett ha en systembandbredd på 24 GB/s vilket då är hälften av bandbredden på en 1.5 Ghz Pentium 4 (48 GB/s) men ändå dubbelt så mycket som på en 1.5 Ghz Athlon processor.

Leave a Reply

Please Login to comment
  Subscribe  
Notifiera vid