Effektivitetsmätning av multitrådning på ARM Cortex-A53 mikroarkitektur

Relevanta dokument
Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Hyper-Threading i Intelprocessorer

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

Tentamen den 18 mars svar Datorteknik, EIT070

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Datorteknik ERIK LARSSON

Parallellism i CDC 7600, pipelinens ursprung

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

Datorteknik ERIK LARSSON

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Datorarkitekturer med operativsystem ERIK LARSSON

Datorteknik ERIK LARSSON

Fetch-Execute. Datorteknik. Pipelining. Pipeline diagram (vid en viss tidpunkt)

Arm Cortex-A8 Pipeline

Pipelining i Intel 80486

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Multithreading in Intel Pentium 4 - Hyperthreading

Hantering av hazards i pipelines

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen den 17 mars 2016 Datorteknik, EIT070

Pipelining i Intel Pentium II

Öka prestanda i Shared-Cache multi-core processorer

Datorsystem. Tentamen

SIMD i Intel s P5- baserade Pentium MMX

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Parallellism i NVIDIAs Fermi GPU

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren

Prestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren

Processor pipelining genom historien (Intel i9-intel i7)

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Datorarkitekturer med Operativsystem

Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache

Föreläsning 2. Operativsystem och programmering

Grundläggande datavetenskap, 4p

Snapdragon 810: Cacheminnet

Cache-koherens protokoll MESI och MOSI

IBM POWER4, den första flerkärniga processorn och dess pipelines.

Exempeltentamen Datorteknik, EIT070,

Operativsystem. Hierarkin för hårdvara läses nerifrån

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

What Is Hyper-Threading and How Does It Improve Performance

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Cacheminne i en Intel Core 2 Duo-processor

Rapport (1,5 HP) Lunds Universitet HT15

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

MESI i Intel Core 2 Duo

Spekulativ exekvering i CPU pipelining

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Anujan Balasingam IDA14 NAND flashminnen

Pipelining i RISC-processorn. Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi

32 Bitar Blir 64 Sammanfattning

Cacheminne Intel Core i7

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

HF0010. Introduktionskurs i datateknik 1,5 hp

Datorsystemteknik för E/D

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

DEC Alpha instruktions Arkitektur

Datorsystem. Tentamen

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16

Hantering av hazards i multi-pipelines

Datorsystemteknik DVGA03 Föreläsning 8

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

MESI-protokollets funktion i multiprocessorer

Cacheminne i en AMD Opteron Processor

Regression med Genetiska Algoritmer

Tentamen PC-teknik 5 p

SKOLFS. beslutade den -- maj 2015.

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Datorarkitekturer med operativsystem ERIK LARSSON

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer?

4 grundregler. Minneshantering. Problemet. Windows minkrav

Introduktion till programmering och Python Grundkurs i programmering med Python

4. Pipelining. 4. Pipelining

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Digitala System: Datorteknik ERIK LARSSON

Transkript:

Lunds universitet Effektivitetsmätning av multitrådning på ARM Cortex-A53 mikroarkitektur Johan Hermansson EITF60 Kursansvarig: Erik Larsson 4 december 2017 Sammanfattning I projektet utvecklades multitrådad programvara samt icke trådad programvara. Sedan utfördes effektivitetsmätningar i form hur lång exekveringstid de olika versionerna behövde för att lösa det givna problemet på ARM Cortex-A53 mikroarkitekturen.

INNEHÅLL INNEHÅLL Innehåll 1 Syfte 2 2 Arkitekturen 3 3 Teori 5 3.1 Multitrådning och pipelineing..................... 5 3.2 Kontextbyte............................... 6 4 Utförande 7 5 Resultat 8 6 Diskussion 10 7 Slutsats 11 8 Referenser 12 9 APPENDIX 13 A Information om ARM Coretex-A53 CPU 13 1

1 SYFTE 1 Syfte Syftet med projektet är att undersöka hur väl ARM Cortex-A53 arkitekturen lämpar sig till parallell exekvering i form av POSIX-trådar samt ge förståelse för hur trådarna är kopplade till dess pipeline. Genom att utföra praktiska tester är målet att kunna ge ett mått på eventuella prestandavinster vid exekvering av trådad programvara gentemot icke trådad programvara på den ovan nämnda arkitekturen samt att undersöka och försöka påvisa varför det inte alltid är lämpligt eller möjligt att all programvara exekveras parallellt. 2

2 ARKITEKTUREN 2 Arkitekturen ARM Cortex-A53 är en superskalär processor som bygger på ARMv8 mikroarkitekturen. Dess prestandamål är att vara energisnål och samtidigt effektiv. I mobila enheter placeras den ofta i en så kallad big.little konfiguration där big enheten innebär en processor som är optimerad för hög prestanda. Big -enheten är ofta en mer avancerad processor som har en out-of-order pipeline och bättre brach-prediction. Detta kräver mer energi samt större chiparea eftersom arkitekturen blir mer komplex. Cortex-A53 befinner sig i den andra sidan av spektrumet och är en så kallad LITTLE enhet vars primära syfte är att ta hand om alla uppgifter utom de mest krävande(arm, 2017b). I en big.little konfiguration är det vanligt att endast en enhet är aktiverad åt gången där LITTLE processorn svarar för majoriteten av tiden. Big processorn schemaläggs enbart när det är nödvändigt och på så sätt kan energi sparas genom att använda kombinationen på mobila enheter utan att tappa beräkningskraft. I detta projektet kommer dock ej Cortex-A53 parkopplas med en big enhet. Fokus kommer istället ligga på att undersöka hur väl multitrådning fungerar på den enskilda processorn. Den aktuella processorn är en så kallad symmetrisk multiprocessor (SMP) (ARM, 2017a). En annan benämning är homogen Chip-Multi Processor (CMP) som fortsättningsvis kommer att användas i rapporten. Den har fyra identiska kärnor (se APPENDIX A) som var och en har sitt eget L1-cache. I övrigt delas övriga resurser som L2- cache, primärminne och I/O -enheter vilket kan innebära begränsningar i systemet (se Fig.1). Varje enskild kärna har endast en tråd och kan därför enbart uppnå instruktionsparallellism (Nayfeh and Olukotun, 1997, s. 79). Däremot kan flera trådar exekveras parallellt på flera kärnor. Detta innebär dock att programvaran behöver stöd för multitrådning för att detta ska fungera tillfredsställande. I annat fall utförs exekveringen på en enskild kärna. Cortex-A53 prestandamål uppnås bland annat genom att implementera en relativt enkel dual-issue in-order pipeline med åtta steg (Humrick, 2017). Dualissue innebär att två instruktioner kan tas emot av pipelinen under samma klockcykel. Varje kärna har en egen pipeline som består av totalt sex beräkningsenheter varav två är ALUs för heltalsaddition, en ALU för heltalsmultiplikation, en enhet för hoppinstruktioner, en AGU för load/store -instruktioner samt en NEON/- flyttals -beräkningsenhet (se Fig.2 på s. 4). För att minimera risken att hela kärnan råkar ut för en stall, vilket innebär att kärnan stannar upp i väntan på problemet ska lösas, har Cortex-A53:s båda issue -platser stöd att utfärda instruktioner till samtliga beräkningsenheter i pipelinen vilket inte var fallet i tidigare modeller, dock kan varken två parallella multiplikationer, hopp, inläsning/lagring eller NEON/flyttals -beräkningar göras eftersom det saknas dubbla uppsättningar av dessa beräkningsenheter (Frumusanu and Smith, 2015). Ett annat skäl till att 3

2 ARKITEKTUREN Fig. 1 Illustration av symmetrisk multiprocessor där kärnorna delar minne och I/O -enheter (Larsson, 2017, s. 69). Lägg märke till att bilden visar godtyckligt många processorer alt. kärnor, medan den befintliga hårdvaran enbart har fyra kärnor. Fig. 2 Illustration av ARM Cortex-A53 pipeline. dual issue -enhetens båda platser ska kunna utfärda instruktioner till samtliga beräkningsenheter är att instruktionskön enbart håller tre instruktioner åt gången vilket gör det extra viktigt att se till att de instruktioner som ligger i kön kan exekveras parallellt. Här spelar kompilatorn en viktig roll i att se till så att instruktioner ordnas på ett sådant sätt att parallellismen kan maximeras. Detta kommer att diskuteras mer under avsnitt 3.1. 4

3 TEORI 3 Teori 3.1 Multitrådning och pipelineing Multitrådning och pipelineing har en del gemensamma egenskaper. De är båda ämnade för att effektivisera och utnyttja resurser på ett bättre sätt genom att öka genomströmningen av instruktioner per tidsenhet. Superskalära processorer försöker uppnå instruktionsparallellism via sin pipeline och dess uppsättning av beräkningsenheter medan multitrådning utnyttjar trådar för att uppnå parallellism. Det finns således flera nivåer av parallellism som kan samverka inom samma arkitektur. Som tidigare nämnts är den aktuella processorn av typen CMP vilket innebär att det inte finns någon multitrådningsteknik implementerad per definition. Här är det istället frågan om ett antal kärnor som kan samverka parallellt om det explicit möjliggörs av antingen kompilator eller programmeraren (Nayfeh and Olukotun, 1997, s. 79). Nackdelen med detta är att den fulla potentialen inte kan utnyttjas såvida programvaran inte har stöd för trådning. Detta skiljer sig mot SMT arkitekturer där hårdvaran försöker parallellexekvera så många instruktioner som möjligt åt gången. Genom att överlåta planering av instruktioner till kompilatorn kan hårdvarukonstruktionen vara relativt enkel med ett mindre och snabbare instruktionsfönster gentemot en SMT arkitektur där det måste finnas en stor mängd instruktioner för att kunna realisera en hög grad av parallellism. Teorin är att kompilatorn i princip har ett oändligt virtuellt instruktionsfönster där instruktioner som ska exekveras parallellt ordnas så att de befinner sig i närheten av varandra i den exekverbara koden (Nayfeh and Olukotun, 1997, s. 80). På så sätt kommer dem att hämtas och läggas i instruktionsfönstret i relativ samtid och kan därefter utfärdas till varsin beräkningsenhet i pipelinen. Ett annat jobb för kompilatorn är att bestämma hur instruktionerna ska fördelas över de tillgängliga kärnorna. I CMP arkitekturer agerar varje kärna som om den vore en tråd i en SMT arkitektur. Detta innebär att det antal trådar den givna programvaran stödjer kommer kompilatorn fördela på ett sådant sätt att maximal tråd/instruktions -parallellism uppnås. Det har visat sig att programvara som ej utvecklats med stöd för trådar ofta också presterar sämre på SMT arkitekturer på grund av att det blir svårare att arrangera instruktionerna i sådan ordning att maximal instruktionsparallellism går att uppnå. Detta resulterar i att SMT arkitekturer ofta bara är bråkdelen snabbare än en CMP arkitektur av det aktuella slaget som har två issue -platser som parallellt kan utfärda instruktioner (se Fig. 2) (Nayfeh and Olukotun, 1997, s. 85). 5

3.2 Kontextbyte 3 TEORI 3.2 Kontextbyte Det finns olika typer av kontextbyten som kan samverka i ett system. En variant är att det är implementerat på hårdvaran, vilket ofta är fallet då processorn implementerar multitrådningstekniker som simultan, interleaved eller blocked. Den andra typen av kontextbyte sker genom operativsystemets schemaläggare vilket uteslutande gäller för ARM Cortex-A53. Operativsystemets roll i kontextbyte innebär att se till så att alla processer som är aktiva kan samköras på den befintliga mängden resurser som innebär antalet kärnor i detta fall (CMP). Anledningen är att alla aktiva processer ska kunna hållas igång och ge sken av att de körs parallellt. Innebörden av kontext är registernas innehåll samt programräknaren för den aktiva tråden. Det innebär att kontextbyten som utförs av operativsystemet i regel är beräkningsintensiva. Detta beror på att kontexten av en tråd ska lagras och en annan läsas in vid ett byte (Project, 2006). Ett annat problem som uppkommer när antalet trådar övertrasserar antalet kärnor i denna typen av system är att operativsystemets schemaläggare kommer allokera tidsintervall växelvis där trådarna skiftas om att vara aktiva. Problemet med detta är att kärnas L1-cache med hög sannolikhet kommer vara inaktuell efter merparten av kontextbytena. Detta resulterar i att cacheminnet kommer att uppdateras enligt en ersättningsalgoritm (oftast LRU) efter varje kontextbyte. Detta beteendet degraderar prestandan i dagens processorer som i hög grad beror av det snabba cacheminnet (Shameem and Jason, 2011). 6

4 UTFÖRANDE 4 Utförande Prestandamätningen genomfördes med två separat skrivna program. Ett varav all exekvering sker sekventiellt, ett annat där exekveringen sker parallellt med hjälp av variabelt antal trådar. Det gemensamma för de båda programmen är att båda ska beräkna hash-summor av en mängd strängar med en given storlek där resultatet sedan ska skrivas ut till skärmen. I detta projektet undersöks enbart ett prestandamått av många, exekveringstid. Genom att mäta den tid det tar för algoritmen att genomföra beräkningarna är tanken att se hur bra eller dåligt programmet presterar med olika antal trådar och på så sätt jämföra hur prestandavinst förhåller sig till antal trådar på ARM Cortex-A53 arkitekturen. Problemet som algoritmen ska lösa samt algoritmens design är identisk mellan de olika programvaruversionerna för att göra testet så rättvist som möjligt. Källkoden kompilerades med C++ version 11, GNU g++ kompilator i båda fallen. I det sekventiella programmet görs en beräkning per iteration. I det multitrådade programmet är det mer komplicerat. Här skapas en lista med trådstrukturer som var och en innehåller en jobbkö. Genom att tilldela varje tråd ett antal jobb som läggs i denna kö, kan varje tråd exekvera de jobb den blivit tilldelad i tur och ordning. Dock uppstår det en del svårigheter. För det första, bör jobben synkroniseras för att undvika att resultatet skrivs ut i fel ordning. För det anda måste koden implementeras så att de olika trådarna kan dela på de gemensamma resurserna som t.ex. I/O till skärmen. Detta kommer diskuteras vidare under resultat och diskussions delen. 7

5 RESULTAT 5 Resultat Fig. 3 En jämförelse av exekveringar med olika antal trådar där arbetsvolym var 600 hashingar av varierande längder på strängarna. Den procentuella förbättringen räknades ut med följande formel: Resultat enligt nedan: P restandavinst = δt t = t 2 t 1 t 2 För hashning av strängar med längden 10 7, löste två trådar exkl. huvudtråden uppgiften 45,82% snabbare än otrådad programvara. För hashning av strängar med längden 10 6, löste två trådar exkl. huvudtråden uppgiften 53,11% snabbare än otrådad programvara. För hashning av strängar med längden 10 5, löste två trådar exkl. huvudtråden uppgiften 53,32% snabbare än otrådad programvara. För hashning av strängar med längden 10 4, löste tre trådar exkl. huvudtråden uppgiften 53,86% snabbare än otrådad programvara. 8

5 RESULTAT För hashning av strängar med längden 10 3, löste två trådar exkl. huvudtråden uppgiften 47,46% snabbare än otrådad programvara. Fig. 4 Exekveringar med olika antal trådar. Arbetsvolymen var 10 6 hashningar av strängar med storlek 10. I detta experiment (se Fig.4) presterade den otrådade versionen 39,15% bättre än exekvering med 3 trådar (exkl. huvudtråden) som inom gruppen av parallellexekveringarna presterade bäst i detta testet. 9

6 DISKUSSION 6 Diskussion Resultatet i Fig.3 visar tydligt att det finns prestandavinster att hämta genom att utveckla multitrådad programvara för Cortex-A53 arkitekturen trotts dess avsaknad av out-of-order pipeline och simultan multitrådning. Grafen visar även att det är viktigt att balansera antalet trådar så att de har stöd i hårdvaran. C++ standardbibliotek för trådar kan ge en fingervisning om hur många samtidiga trådar som stöds av hårdvaran via följande syntax: std::thread::hardware_concurrency. Uppskattningen visade sig stämma bra med resultatet som genomgående visade att två trådar exklusive huvudtråden löste uppgiften snabbast. Den troliga orsaken till det är att operativsystemet ej behöver utföra onödiga kontextbyten med anledning av att bakgrundsprocesser kan köras på en separat tråd. Med stöd av resultatet verkar två trådar vara den optimala kombinationen på denna arkitekturen då uppgiften uträttades 46-53% snabbare än otrådad exekvering i de tre fallen där de längsta strängarna skulle haschas. I övriga exekveringar presterade denna uppsättning jämbördigt med tre samt fyra trådar då varje sträng var 10 4 samt 10 3 bokstäver lång. Här ska även tilläggas att optimeringsflaggor för arkitekturen ej sattes vid kompilering av programvaran i något av fallen. Här finns det säkert mer prestanda att hämta om så önskas. Även aspekter som hur väl optimerad den faktiska C++ koden är implementerad bör has i åtanke då det troligen går att förbättra ytterligare. Ett exempel vore att införa korta randomiserade väntetider då gemensamma resurser ska användas av de olika trådarna. Detta skulle innebära att risken för att någon tråd väntar på att resursen ska bli ledig minskar ytterligare och på så sätt fås ett bättre flöde i arbetsprocessen. En annan aspekt att förbättra vore att optimera den mängd jobb huvudtråden kan utföra medan den inväntar att alla de andra trådarna ska bli klara med sina uppgifter. I testerna som körts för att extrahera resultatet till Fig. 3 på s. 8 gjorde huvudtråden 20% av det totala arbetet medan 80% av arbetet fördelades på övriga trådar. Sedan finns det problem som helt enkelt inte lämpar sig väl till att lösas parallellt. Ett exempel är t.ex. Fibonaccis talserie där nästa tal i serien beror av de två föregående. Detta innebär som tidigare avhandlats att processorns fulla potential ej kommer att utnyttjas vid denna typ av problemlösning. I Fig.4 illustreras hur prestandan påverkas negativt när själva problemet tar så kort tid att det skapas köer bland trådarna till de gemensamma resurserna, därav presterar den icke multitrådade programvaran bättre i detta fall. 10

7 SLUTSATS 7 Slutsats Slutsatsen av projektet är att det finns stora prestandavinster att hämta ur multitrådad exekvering på ARM Cortex-A53 mikroarkitektur. I det mest krävande testerna exekverade programvaran med optimalt antal trådar upp till 54% snabbare än otrådad programvara. På detta sätt utnyttjas resurserna i hårdvaran på ett bättre sätt. Vad som är tydligt är att vinsterna minskar vid tillräckligt enkla problem. En stor bidragande faktor till detta är troligen de gemensamma resurserna som de olika kärnorna delar(se Fig. 1). Här orsakas köer när trådarna försöker få tillgång till dessa resurser och i värsta fall minskar prestandan gentemot otrådad programvara. 11

8 Referenser ARM (2017a), Cortex-a53. [Online; Hämtad 2017-11-28]. URL: https://developer.arm.com/products/processors/cortex-a/cortex-a53 ARM (2017b), Technologies: big.little, https://developer.arm.com/ technologies/big-little. [Online; Hämtad 2017-11-26]. Frumusanu, A. and Smith, R. (2015), Arm a53/a57/t760 investigated - samsung galaxy note 4 exynos review, https://www.anandtech.com/show/8718/ the-samsung-galaxy-note-4-exynos-review/3. [Online; Hämtad 2017-11- 26]. Humrick, M. (2017), Exploring dynamiq and arm s new cpus: Cortex-a75, cortex-a55, https://www.anandtech.com/show/11441/ dynamiq-and-arms-new-cpus-cortex-a75-a55/4. [Online; Hämtad 2017-11- 26]. Larsson, E. (2017), Datorarkitekturer med operativsystem. [Online; Hämtad 2017-12-01]. URL: http://www.eit.lth.se/fileadmin/eit/courses/eitf60/f%d6/f%d64.17.pdf Nayfeh, B. A. and Olukotun, K. (1997), A single-chip multiprocessor, Computer 30(9), 79 85. Project, T. L. I. (2006), Context switch definition. [Online; Hämtad 2017-12-02]. URL: http://www.linfo.org/context_switch.html Shameem, A. and Jason, R. (2011), Avoiding classic threading problems. [Online; Hämtad 2017-12-04]. URL: http://www.drdobbs.com/tools/avoiding-classic-threadingproblems/231000499 12

A INFORMATION OM ARM CORETEX-A53 CPU 9 APPENDIX A Information om ARM Coretex-A53 CPU Observera att anledningen till att det står ARMv7 i CPU specifikationen nedan beror på att operativsystemet är 32-bitars version. johan@srv01:~ \$ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 38.40 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 processor : 1 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 38.40 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 processor : 2 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 38.40 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 13

A INFORMATION OM ARM CORETEX-A53 CPU processor : 3 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 38.40 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 Hardware Revision Serial : BCM2835 : a02082 : 0000000005eb8979 14