En introduktion till Smart cache 1
Sammanfattning Syftet med den här rapporten är att ge en introduktion till tekniken smart cache för läsaren. Smart cache är en teknik som låter de olika cacheminnena användas av olika processorer efter behov för att på så sätt effektivisera arbetet för en multi core processor. Rapporten beskriver kortfattat hur kommunikationen i en dator fungerar för att ge en enkel förståelse för vad ett cacheminne används till. Inledning En dator är uppbyggd av tre komponenter: 1. CPU:n vars syfte är att delegera data baserat på instruktioner. 2. IO:n som hanterar kommunikationen mellan datorn och komponenter utifrån som tangentbord och skärm. 3. Lagringsenheten som lagrar instruktioner och data. Den här enheten kallas generellt för minnet. I takt med att tekniken utvecklats och processorer(cpu:er) blivit snabbare har detta inneburit att processorer kunnat hantera flera instruktioner och mer data per klockcykel. Detta har i sin tur inneburit att Primärminnet snabbt måste kunna hantera detta för att CPU:n inte ska behöva vänta. För att lösa detta problem används ett snabbt minne som besitter den bandbredden som fordras för att kunna ligga på samma nivåer som CPU:n Detta minnet kallas för cacheminne. 2
Bakgrund om cacheminnet En del av lagringsenheten är det så kallade cacheminnet. Cache kommer från det franska ordet Cachet som betyder att gömma. Cacheminnet lagrar instruktioner som nyttjas ofta(frekvent) av CPU:n. Detta namnet tog man eftersom de tidigaste cacheminnet var osynliga för användaren och för CPU:n. Cacheminnet fyller ett tomrum som uppstår i kommunikationen mellan CPU:n och primärminnet. Teoretisk optimalt hade man kunnat ersätta det vanliga primärminnet med ett cacheminne men i praktiken är detta inte ekonomiskt hållbart då cacheminnen är mycket dyra att tillverka och köpa.(stacpoole, R and Jamil, Tariq 2002). Bakgrund om multi core processor Multi core processorer bygger på att man har fler än en processorkärna(cpu:er). Förenklat kan man säga att dessa kommunicerar parallellt och effektiviserar därmed processorns arbete. Vad som är gemensamt för nästan alla dessa processorer är att de erbjuder programmeraren en enskild fysisk adressplats över hela processorns plattform(patterson and Hennessy, 2013, sid 519-520). Ett exempel på detta är Intel Core Duo processorn som ursprungligen när den tillverkades baserades på två stycken kärnor från den enkärniga processorn Pentium M Cachminnet i multi core Normalt så fungerar cache så att varje kärna är kopplade till varsitt cacheminne som kommunicerar. I intel core Duo har Kärnorna var för sig tillgång till varsin L1. I intel core Duo så använder de två processorkärnorna en L2 cache som delas på. Detta innebär att den ena har kärnan har tillgång till den ena halvan av L2:s minne och den andra har resten. (Gochman, Simcha., Mendelson, Avi., Naveh, Alon., Rotem, Efraim. 2006). Smart cache Smart-cache tekniken fungerar så att om en kärna behöver mycket cacheminne kan den låna cacheminne från ett annat minne utöver det som det använder från början för att på så sätt öka sin prestanda. Om man jämför med exemplet ovan med hur fördelningen i intel core Duo fungerar och tänker sig att processorn använde sig av smartcache teknik hade detta kunnat innebära att ifall den ena processorn inte var särskilt tungt belastad och bara nyttjade 20% av sina totala 50% av cacheminnet medan den andra var väldigt tung belastad och använde hela sina 50% så hade den andra kärnan i så fall kunnat låna de 3
resterande 30% från den första kärnan för att på så sätt kunna bli mer effektiv. Det är den här tekniken med en flexibel fördelning av cacheminnet mellan processorer som kallas för smart cache. (Doweck, Jack. 2006). Diskussion I ett experiment som utfördes på Cambridge visade det sig att en enkärnig processor med smart cache 14% Jämfört med en processor med vanlig cache. Detta testades med hjälp av simuleringar som utfördes på ett beslutsträd. Detta var ett träd där grenarna bestod av olika instruktioner som processorn skulle hantera. Processorn fick en maskininstruktion och skulle därefter med hjälp av olika boolska uttryck passera genom trädets hierarki mot någon av det slutgiltiga lövnoderna. Under detta experimentet kollade man på två saker: 1.Hur mycket kraft som cacheminnet konsumerade under tiden som simuleringen genomfördes. 2.Prestandan vilken mättes i hur lång tid det tog för en instruktion att gå igenom trädet. Vad som framkom i det här experimentet var att energiåtgången i datacachen reducerades med 14% och i level-2 cachen med 34%. (Sundararajan, Karthik T., Jones, Timothy M., TopHam, Nigel. 2011). När man senare gjorde experimentet med två olika multi core processorer, en med två kärnor och en med fyra fick man resultatet energiåtgången i data cachen reducerades med 45% och i level-2 cachen med 70% i den tvåkärniga. I Den fyrkärniga fick man fram att energy delay låg på 12%. (Sundararajan, Karthik T., Jones, Timothy M., TopHam, Nigel. 2012). Att använda smart cache teknik i multi core processorer verkar vara fördelaktigt av diverse orsaker men främst eftersom det får hela arkitekturen i datorn att bli mer effektiv och strömsnål. Man kan förenklat säga att man löser ett problem med det som tillhandahölls från början utan att man behöver tillföra något större utifrån utan bara bygger mer strategiskt med samma komponenter. Man får intrycket av det är en pragmatisk lösning på ett problem. 4
Referenser Doweck, Jack. 2006. Inside Intel Core Microarchitecture and Smart Memory Access An In- Depth Look at Intel Innovations for Accelerating Execution of Memory-Related Instructions. Intel Leap Ahead. https://web.archive.org/web/20111229193036/http://software.intel.com/ file/18374/ Gochman, Simcha., Mendelson, Avi., Naveh, Alon., Rotem, Efraim. 2006. Introduction to Intel Core Duo Processor Architecture. Intel Technology Journal. Vol. 10 Issue 2, May. http://eds.b.ebscohost.com.ludwig.lub.lu.se/eds/pdfviewer/pdfviewer? vid=10&sid=f4ad59e9-f7ce-49c5-9886-6eae28200a1d@sessionmgr4008&hid=4202 Patterson, D.A. and Hennessy, J.L. (2013) Computer organization and design: The hardware/software interface. 5th edn. Waltham, MA: Morgan Kaufmann Publishers In. Stacpoole, R and Jamil, Tariq 2002. Cache memories. IEEE Potentials, Volume: 19 Issue: 2, Apr/May. http://eds.b.ebscohost.com.ludwig.lub.lu.se/eds/pdfviewer/pdfviewer? vid=10&sid=f4ad59e9-f7ce-49c5-9886-6eae28200a1d@sessionmgr4008&hid=4202 Sundararajan, Karthik T., Jones, Timothy M., TopHam, Nigel. 2011 Smart cache: A self Adaptive Cache Architecture for Energy efficacy. Embedded Computer Systems (SAMOS) ; 2011, p41-50,. http://resolver.ebscohost.com.ludwig.lub.lu.se/openurl? sid=ebsco %3aedb&genre=chapter&issn=&isbn=9781457708022&volume=&issue=&date=20110101 &spage=41&pages=41-50&title=2011+international+conference+on+embedded +Computer+Systems+(SAMOS)&atitle=Smart+cache%3a+A+self+adaptive+cache +architecture+for+energy+efficiency.&btitle=2011+international+conference+on +Embedded+Computer+Systems+(SAMOS)&jtitle=2011+International+Conference+on +Embedded+Computer+Systems+(SAMOS)&series=&aulast=Sundararajan%2c +K.T.&id=DOI%3a10.1109%2fSAMOS.2011.6045443&site=ftf-live Sundararajan, Karthik T., Jones, Timothy M., TopHam, Nigel. 2012. The Smart Cache: An Energy-Efficient Cache Architecture Through Dynamic Adaptation. International Journal of Parallel Programming. Apr2013, Vol. 41 Issue 2, p305-330. http:// eds.b.ebscohost.com.ludwig.lub.lu.se/eds/pdfviewer/pdfviewer?sid=f74320c4-95f7-45a8- bfc4-00513d3d3fd3@sessionmgr4008&vid=4&hid=4202 5