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)