EDT621 Datorarkitekturer med
operativsystem 7,5 hp
2015-12-07
Cacheminne i
Intel Core i7
Författare: Adnan Karahmetovic
Handledare: Erik Larsson
Innehåll
1.
Inledning ................................................................................................................... 1
1.1
Syfte ........................................................................................................... 1
1.2
Frågeställning ............................................................................................. 1
2.
Teori .......................................................................................................................... 1
3.
Jämförelse och resultat .............................................................................................. 2
4.
Reflektion .................................................................................................................. 3
Källförteckning ................................................................................................................ 4
Abstract
To see how the cache memory works with the other components in the processor, we
have to take a look at how the cache memory is structured on the motherboard. Our
processor is built according to the Haswell architecture, which means that the memory
controller, in comparison to previous architecture, has been moved from the
motherboard and on to the processors own chip. Beyond that, there has been added an
extra memory channel to the motherboard, which means that every individual memory
channel can communicate with one or two memory modules. The cache memory works
at three levels. When compared to the previous architecture, it is clear there has been a
major improvement when it comes to speed and performance to be able to run more
demanding applications more smoothly.
1. Inledning
Att vänta i evigheter på att datorn ska öppna en fil eller hämta en hemsida på webben
kan vara fruktansvärt frustrerande. Det kan hända att vi stänger av datorn helt innan
den hunnit göra klart instruktionen, att vi i frustration klickar hårdare och hårdare med
musen för att på något sätt tvinga fram resultatet snabbare, eller att vi lite lätt slår till
datorn. Jag valde att undersöka hur en del av processen i att hämta data egentligen går
till.
1.1 Syfte
Syftet med arbetet är att undersöka hur cacheminnet i Intels processor Core i7 fungerar
jämfört med tidigare Core 2.
1.2 Frågeställning
För att undersöka hur cacheminnet i processorn fungerar har jag valt följande
frågeställning:
Hur samarbetar cacheminnet med de andra komponenterna i minneshierarkin jämfört
med tidigare arkitektur?
2. Teori
Processorfamiljen Intel Core i7 har fyra olika arkitekturer. Bland de lite äldre Nehalem
och Ivy Bridge, och det senaste Skylake, tillhör vår processor Haswell-arkitekturen.
Jämfört med tidigare teknik har bland annat ett helt nytt moderkort gjorts och ny
teknik som till exempel Intel Turbo Boost1 lagts till. Mest fokus har varit kring
strukturen på minne. Minneskontrollen i tidigare Core 22 har flyttats från moderkortet
till processorn och man har utöver det lagt till en extra minneskanal, vilket gör att varje
minneskanal sedan kan kommunicera med en eller två minnesmoduler. Det finns tre
nivåer av cacheminnet. Den första nivån, L1, är den minsta, men också den snabbaste.
Sedan finns en mellannivå, L2, som följs av en stor L3-cache som alla kärnor i
processorn delar på. Tack vare den nya inbyggda minneskontrollen och den nya
strukturen på cacheminnet slår den sin företrädare markant.
Minnet i en dator utgör en stor del i datorns förmåga att utföra instruktioner snabbt. I
och med att ljusets hastighet bestämmer hur fort signalerna sänds till och från minnet,
finns det dessvärre begränsningar på hur snabba minnen kan vara. Genom åren har det
därför utvecklats diverse minnen som kan ställas upp i en hierarki där de snabbaste,
men dessvärre dyraste och med begränsad kapacitet, är på toppen av hierarkin, och där
de mest långsamma minnen, men desto billigare och med nästan oändlig kapacitet, är
på botten av hierarkin3. Minnet i datorn delas upp i primärminne och sekundärminne.
Primärminnet är ett så kallat flyktigt minne, vilket innebär att det förlorar sitt innehåll
när strömmen stängs av, till skillnad från sekundärminnet som inte gör det.
1
https://en.wikipedia.org/wiki/Intel_Turbo_Boost
https://en.wikipedia.org/wiki/Intel_Core_2
3
https://en.wikipedia.org/wiki/Memory_hierarchy
2
1
Processorns register, som används direkt för att utföra arbetet, är den snabbaste typen
av minne. I registren bearbetas befintlig data och beroende på instruktionerna från
processorn, förflyttas data mellan stegen i hierarkin. De ligger närmast processorn
jämfört med de andra i hierarkin. Antalet register är begränsat beroende på hur mycket
plats det finns på processorns fysiska krets.
Processorers klockfrekvens ökade rejält precis innan 2000-talet samtidigt som
primärminnenas drifthastighet knappt rörde sig. Det innebar att processorn ofta fick
vänta länge på att hämta från primärminnet eller lagra i det. Det är vad den ungerska
matematiker John von Neumann4 grundade sin flaskhalsteori kring. För att åtgärda det
problemet skapades det som vi ska titta närmare på, nämligen cacheminnen.
Cacheminnen är mindre och snabbare än primärminnet och deras uppgift är att lagra
ofta använd data, så att det tar mindre tid att utföra kända arbeten. Hela program får
inte plats i cacheminnen, utan det är data och instruktioner som ska vara tillgängliga
när de behövs som finns i dem. Vissa cacheminnen byggs in på processorns fysiska
krets, men kan också byggas in på egna kretsar som ligger nära processorns krets på
moderkortet.
En hårddisk är ett exempel på ett sekundärminne. Jämfört med de tidigare nämnda
minnena, är dessa mycket långsammare. De är däremot billigare och har i princip
obegränsad kapacitet.
3. Jämförelse och resultat
Primärminnet är oftast mellan 2 till 8 Gigabytes i en modern dator. Primärminnet har
en lång accesstid på 100 nanosekunder.
Processorns register kan variera mellan 8 till 32 stycken och har en väldigt kort
accesstid på bara ett fåtal nanosekunder.
Cacheminnen ligger oftast på mellan 32 Kilobytes till 12 Megabytes, beroende på ifall
de ligger på processorns krets eller en egen krets, och har en kort accesstid på ett 10-tal
nanosekunder.
Hårddiskar ligger idag på ungefär 500 Gigabytes till 1 Terabyte i en typisk modern
datorn, vilket innebär väldigt mycket lagringsutrymme, men har en accesstid på 10talet millisekunder.
Efter jämförelse med tidigare teknik, blir det tydligt att cacheminnet i processorn är
strukturerad på ett nyare och bättre sätt för att kunna köra krävande applikationer mer
smidigt.
4
https://en.wikipedia.org/wiki/John_von_Neumann
2
4. Reflektion
Syftet med rapporten var att undersöka hur cacheminnet i Intels Core i7 fungerar
jämfört med tidigare Intel Core 2.
Undersökningen har visat att strukturen på cacheminnet har ändrats betydligt och att
bättre resultat gällande snabbhet och prestanda uppnåtts.
3
Källförteckning
CPU cache. Wikipedia. 2015.
http://en.wikipedia.org/wiki/CPU_cache (Hämtad 2015-12-07)
EDT621: Föreläsning 3-4. LTH. 2015.
http://www.eit.lth.se/fileadmin/eit/courses/edt621/F%D63-4.15.A4.pdf (Hämtad
2015-12-07)
Haswell (microarchitecture). Wikipedia. 2015.
http://en.wikipedia.org/wiki/Haswell_(microarchitecture) (Hämtad 2015-12-07)
List of Intel Core i7 microprocessors. Wikipedia. 2015.
http://en.wikipedia.org/wiki/List_of_Intel_Core_i7_microprocessors (Hämtad
2015-12-07)