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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 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.

2 INNEHÅLL INNEHÅLL Innehåll 1 Syfte 2 2 Arkitekturen 3 3 Teori Multitrådning och pipelineing Kontextbyte 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 8 Referenser ARM (2017a), Cortex-a53. [Online; Hämtad ]. URL: ARM (2017b), Technologies: big.little, technologies/big-little. [Online; Hämtad ]. Frumusanu, A. and Smith, R. (2015), Arm a53/a57/t760 investigated - samsung galaxy note 4 exynos review, the-samsung-galaxy-note-4-exynos-review/3. [Online; Hämtad ]. Humrick, M. (2017), Exploring dynamiq and arm s new cpus: Cortex-a75, cortex-a55, dynamiq-and-arms-new-cpus-cortex-a75-a55/4. [Online; Hämtad ]. Larsson, E. (2017), Datorarkitekturer med operativsystem. [Online; Hämtad ]. URL: Nayfeh, B. A. and Olukotun, K. (1997), A single-chip multiprocessor, Computer 30(9), Project, T. L. I. (2006), Context switch definition. [Online; Hämtad ]. URL: Shameem, A. and Jason, R. (2011), Avoiding classic threading problems. [Online; Hämtad ]. URL: 12

14 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 : 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 : 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 : 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

15 A INFORMATION OM ARM CORETEX-A53 CPU processor : 3 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 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 : eb

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73 Lunds universitet Pipeline hos ARM Cortex-A53 och ARM Cortex-A73 Kevin Eriksson EITF60 Kursansvarig: Erik Larsson 2017-12-04 Innehållsförteckning Syfte 2 Sammanfattning 2 Jämförelse 3 Pipelinebredd 3 Out

Läs mer

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

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum: Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05 Abstract Rapporten handlar om två tekniker inom multiple issue processorer

Läs mer

Hyper-Threading i Intelprocessorer

Hyper-Threading i Intelprocessorer Lunds Tekniska Högskola Campus Helsingborg DATORARKITEKTURER MED OPERATIVSYSTEM EITF60 RAPPORT Hyper-Threading i Intelprocessorer 4 december 2017 Rasmus Hanning IDA2 Sammanfattning Det har sedan den första

Läs mer

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

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2 Hyper Threading Intels implementation av SMT Datorarkitekturer med operativsystem - EITF60 Felix Danielsson IDA2 Sammanfattning Simultaneous multithreading (SMT) är en teknik som används i processorer

Läs mer

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 18 mars svar Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 18 mars 2015 - svar Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30

Läs mer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer LUNDS UNIVERSITET Parallell exekvering av Float32 och INT32 operationer Samuel Molin Kursansvarig: Erik Larsson Datum 2018-12-05 Referat Grafikkort utför många liknande instruktioner parallellt då typiska

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Så här långt. FÖ2 RISC/CISC FÖ1 Primärminne Instruktioner och data Address Instruction 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011

Läs mer

Parallellism i CDC 7600, pipelinens ursprung

Parallellism i CDC 7600, pipelinens ursprung Lunds universitet Parallellism i CDC 7600, pipelinens ursprung Henrik Norrman EITF60 Datorarkitekturer med operativsystem Kursansvarig: Erik Larsson 4 december 2017 INNEHÅLL Parallellism i CDC 7600 Innehåll

Läs mer

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

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal

Läs mer

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

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA CDC6600 - en jämförelse mellan superskalära processorer av: Marcus Karlsson Sammanfattning I denna rapport visas konkret information om hur den första superskalära processorn såg ut och hur den använde

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Fetch-Execute Utan pipelining: Tid: 1 2 3 4 5 6 Instruktion 1 Instruktion 2 Instruktion 3 Fetch Execute Fetch Execute Fetch Execute Med pipelining: Tid: 1 2 3 4 Instruktion 1 Instruktion

Läs mer

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621 Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Parallellberäkning Konstant behov av högre prestanda Prestanda har uppnåtts genom: Utveckling inom halvledarteknik Tekniker som:» Cacheminne» Flera bussar»

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Programexekvering (1) Hämta instruktion på 00001000 (där PC pekar) Fetch (2) Flytta instruktionen 0000101110001011 till CPU (3) Avkoda instruktionen: 00001 MOVE, 01110001 Adress,

Läs mer

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

Fetch-Execute. Datorteknik. Pipelining. Pipeline diagram (vid en viss tidpunkt) Datorteknik ERIK LRSSON Fetch- Utan pipelining: Tid: 1 2 3 4 5 6 Instruktion 1 Instruktion 2 Instruktion 3 Fetch Fetch Fetch Med pipelining: Tid: 1 2 3 4 Instruktion 1 Instruktion 2 Instruktion 3 Fetch

Läs mer

Arm Cortex-A8 Pipeline

Arm Cortex-A8 Pipeline Marcus Havrell Dahl - 941206 Arm Cortex-A8 Pipeline Sammanfattning Arm Cortex-A8 processorn är en energisnål men samtidigt kraftfull enhet. Beroende på implementationen kan den ha en klockhastighet på

Läs mer

Pipelining i Intel 80486

Pipelining i Intel 80486 Lunds Universitet Pipelining i Intel 80486 EITF60 Datorarkitekturer med operativsystem Martin Wiezell 2017-12-04 Abstract This paper gives a brief description of the instruction pipeline of the Intel 80486

Läs mer

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)

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) Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika

Läs mer

Multithreading in Intel Pentium 4 - Hyperthreading

Multithreading in Intel Pentium 4 - Hyperthreading Multithreading in Intel Pentium 4 - Hyperthreading Sammanfattning Hyper-threading är en implementation av SMT(Simultaneous Multithreading) teknologi som används på Intel processorer. Implementationen användes

Läs mer

Hantering av hazards i pipelines

Hantering av hazards i pipelines Datorarkitektur med operativsystem Hantering av hazards i pipelines Lisa Arvidsson IDA2 Inlämningsdatum: 2018-12-05 Abstract En processor som använder pipelining kan exekvera ett flertal instruktioner

Läs mer

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

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline Linda Wapner HT2018 EITF60 Sammanfattning Effektutvecklingen i en processor har länge ökat genom att klockfrekvensen för

Läs mer

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

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Lösningsförslag för 725G45-tentan 3/11-10 1. Vad menas med Von Neumann-arkitektur? (2p) En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Data och instruktioner lagras i samma

Läs mer

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

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

Läs mer

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA PARALLELLISERING AV ALGORITMER FÖR FLERKÄRNIGA PROCESSORER 870928 3017 Johan Gustafsson 870303 4952 Gustaf David Hallberg 880525 8210 Per Hallgren 801117 0597 Wuilbert Lopez 1/7 Innehållsförteckning Table

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Pipelining Tid SSA P Pipelining FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Superscalar pipelining FI DI CO FO EI WO FI DI

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Semantic gap Alltmer avancerade programmeringsspråk tas fram för att göra programvaruutveckling mer kraftfull Dessa programmeringsspråk (Ada, C++, Java)

Läs mer

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tentamen den 17 mars 2016 Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 17 mars 2016 Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng

Läs mer

Pipelining i Intel Pentium II

Pipelining i Intel Pentium II Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.

Läs mer

Öka prestanda i Shared-Cache multi-core processorer

Öka prestanda i Shared-Cache multi-core processorer Öka prestanda i Shared-Cache multi-core processorer 1. Abstract Många processorer har nuförtiden flera kärnor. Det är även vanligt att dessa kärnor delar på högsta nivås cachen för att förbättra prestandan.

Läs mer

Datorsystem. Tentamen 2011-10-29

Datorsystem. Tentamen 2011-10-29 Datorsystem Tentamen 2011-10-29 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller och beräkningar som används för att nå svaret ska också finnas med i lösningen. Ett svar

Läs mer

SIMD i Intel s P5- baserade Pentium MMX

SIMD i Intel s P5- baserade Pentium MMX SIMD i Intel s P5- baserade Pentium MMX Maurits Gabriel Johansson - IDA2 Datorarkitekturer med operativsystem - 4 december 2016 SIMD I INTEL S P5-BASERADE PENTIUM MMX 1 Abstrakt Moderna CPU s (Central

Läs mer

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Schemaläggnings metoderna AMP & SMP i en Multiprocessor EDT621 Datorarkitekturer med operativsystem 7,5 HP 2015-12-05 Schemaläggnings metoderna AMP & SMP i en Multiprocessor Författare: Simon Plato Sammanfattning Rapporten beskriver två schemaläggnings metoder.

Läs mer

Parallellism i NVIDIAs Fermi GPU

Parallellism i NVIDIAs Fermi GPU Parallellism i NVIDIAs Fermi GPU Thien Lai Phu IDA2 Abstract This report investigates what kind of computer architecture, based on Flynn s taxonomy, is used on NVIDIAs Fermi-based GPU to achieve parallellism

Läs mer

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Rahim Rahmani (rahim@dsv.su.se) Division of ACT Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Tentamensdatum: 2013-03-21 Tentamen består av totalt

Läs mer

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

Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren 2016-12-05 Sammanfattning I följande rapport introduceras de tillägg som planeras genomföras i kommande C++ 17

Läs mer

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

Prestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren Prestandapåverkan på databashanterare av flertrådiga processorer av Sammanfattning Behandling av information bli vanligare i dagens samhälle och för att klara denna uppgiften används ofta en databashanterare

Läs mer

Processor pipelining genom historien (Intel i9-intel i7)

Processor pipelining genom historien (Intel i9-intel i7) Processor pipelining genom historien (Intel i9-intel i7) Besnik Redzepi Lunds Universitet Abstrakt/Sammanfattning Syftet med denna uppsats är att jämföra Intels nya generation processorer och deras pipelining.

Läs mer

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

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt

Läs mer

Datorarkitekturer med Operativsystem

Datorarkitekturer med Operativsystem Lunds Tekniska Högskola Campus Helsingborg Datorarkitekturer med Operativsystem EDT621 Rapport Cacheminneshantering för ARM3-processorer 7 december 2015 Pierre Aupeix dat11pau@student.lu.se 1 Abstract

Läs mer

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

Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache 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

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Grundläggande datavetenskap, 4p

Grundläggande datavetenskap, 4p Grundläggande datavetenskap, 4p Kapitel 2 Datamanipulation, Processorns arbete Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-09 IT och Medier 1 Innehåll CPU ALU Kontrollenhet Register

Läs mer

Snapdragon 810: Cacheminnet

Snapdragon 810: Cacheminnet Snapdragon 810: Cacheminnet Daniel Eckerström dat14dec@student.lu.se Sammanfattnig Snapdragon 810 innehåller två olika processor arkitekturer, ARM Cortex-A53 samt Cortex-A57. Detta för att kunna på ett

Läs mer

Cache-koherens protokoll MESI och MOSI

Cache-koherens protokoll MESI och MOSI Handledare: Erik Larsson Lunds Tekniska Högskola HT2016 Cache-koherens protokoll MESI och MOSI Författare: Adnan Mohamed Abstrakt Cache koherens protokoll hanterar cacheminnet i ett multiprocessor system,

Läs mer

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

IBM POWER4, den första flerkärniga processorn och dess pipelines. IBM POWER4, den första flerkärniga processorn och dess pipelines. 5 DECEMBER 2016 FÖRFATTARE: OSCAR STRANDMARK EXAMINATOR: ERIK LARSSON Abstract Rapporten redovisar IBM:s POWER-serie, generation ett till

Läs mer

Exempeltentamen Datorteknik, EIT070,

Exempeltentamen Datorteknik, EIT070, Lunds Universitet LTH Exempeltentamen Datorteknik, EIT070, Skrivtid: xx.00-xx.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng För betyg

Läs mer

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

Operativsystem. Hierarkin för hårdvara läses nerifrån Operativsystem DOS DiskOperatingSystem - ett jobb i taget. Dagens Operativsystem - prioriterar olika jobb. Om ett jobb pausas körs ett annat. Operativsystems viktigaste funktion är att bilda gränssnitt

Läs mer

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60) Lunds Universitet LTH Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60) Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering

Läs mer

Närliggande allokering Datorteknik

Närliggande allokering Datorteknik Närliggande allokering Datorteknik ERIK LARSSON TID Problem: Minnet blir fragmenterat Paging Demand paging Sida (S) Dela upp primärminnet i ramar (frames) och program i sidor (pages) Program 0 RD.0 1 RD.1

Läs mer

What Is Hyper-Threading and How Does It Improve Performance

What Is Hyper-Threading and How Does It Improve Performance What Is Hyper-Threading and How Does It Improve Performance Ali Muthanna, Lunds Universitet, IDA2, EDT621 Abstract Hyper-Threading (HT) is Intel s version of simultaneous multi-threading (SMT). Hyper-Threading

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Skrivtid: 8.00-13.00 Inga tillåtna hjälpmedel Uppgifterna i tentamen ger maximalt 60 poäng. Uppgifterna är

Läs mer

Cacheminne i en Intel Core 2 Duo-processor

Cacheminne i en Intel Core 2 Duo-processor Peter Hesslow EDT621 Cacheminne i en Intel Core 2 Duo-processor Abstrakt Det finns många olika sätt att bygga upp ett datorminne på, och med en flerkärnig processor så blir alternativen ännu fler. Denna

Läs mer

Rapport (1,5 HP) Lunds Universitet HT15

Rapport (1,5 HP) Lunds Universitet HT15 Rapport (1,5 HP) Lunds Universitet HT15 Cache-koherens protokoll i Intel Core i7 En rapport om cache-koherens och protokollet som används i Intel Core i7 processorer för att hålla minnet koherent Författare:

Läs mer

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

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant. Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant. Sammanfattning När processorns klockhastighet ökar medför det en ökning av instruktioner vilket såklart ökar

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

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

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion Moment 2 Digital elektronik Föreläsning Inbyggda system, introduktion Jan Thim 1 Inbyggda system, introduktion Innehåll: Historia Introduktion Arkitekturer Mikrokontrollerns delar 2 1 Varför lär vi oss

Läs mer

MESI i Intel Core 2 Duo

MESI i Intel Core 2 Duo MESI i Intel Core 2 Duo Sammanfattning Denna rapport beskriver en processor (Intel Core 2 Duo) vars cache coherence protokoll är MESI. Rapporten beskriver hur processorn är uppbyggd, hur många kärnor den

Läs mer

Spekulativ exekvering i CPU pipelining

Spekulativ exekvering i CPU pipelining Spekulativ exekvering i CPU pipelining Max Faxälv Datum: 2018-12-05 1 Abstrakt Speculative execution is an optimisation technique used by modern-day CPU's to guess which path a computer code will take,

Läs mer

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar Gabriel Gerhardsson Cacheprobe p.1/38 Abstract Kan analytiskt ta reda på associativitet, line storlek och storlek på processorns cacheminnen

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

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

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

Anujan Balasingam IDA14 NAND flashminnen

Anujan Balasingam IDA14 NAND flashminnen Anujan Balasingam IDA14 NAND flashminnen Hur kan prestandan och kapaciteten förbättras? Kursansvarig: Erik Larsson Datorarkitektur med operativsystem 7,5 hp 04-12-2015 Innehållsförteckning 1. Inledning...

Läs mer

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

Pipelining i RISC-processorn. Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi Pipelining i RISC-processorn Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi Innehållsförteckning 1. Inledning 2. Historia: Intel 8086 (1978) till Pentium

Läs mer

32 Bitar Blir 64 Sammanfattning

32 Bitar Blir 64 Sammanfattning 32 Bitar Blir 64 Sammanfattning Syftet med rapporten är att ge en insyn i det tillvägagångssätt och problem som uppstod i utvecklingen från 32 bitars CPUs till 64 bitars CPUs samt inblick i skillnaden

Läs mer

Cacheminne Intel Core i7

Cacheminne Intel Core i7 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...

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-04-28 Tid: 08-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

HF0010. Introduktionskurs i datateknik 1,5 hp

HF0010. Introduktionskurs i datateknik 1,5 hp HF0010 Introduktionskurs i datateknik 1,5 hp Välkommna - till KTH, Haninge, Datateknik, kursen och till första steget mot att bli programmerare! Er lärare och kursansvarig: Nicklas Brandefelt, bfelt@kth.se

Läs mer

Datorsystemteknik för E/D

Datorsystemteknik för E/D Tentamen i kursen Datorsystemteknik (EDA330 för D och EDA370 för E) 19/8 2000 1(8) Tentamen i kursen Datorsystemteknik (EDA330 för D och EDA370 för E) Datorsystemteknik för E/D 19/8 2000 Tentamensdatum:

Läs mer

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

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

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

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation. Vad är viktigast? Sammanfattning Processer och trådar Avbrottshantering Vad det är och hur det fungerar (på låg nivå) Vilka problem finns Schemaläggning Flerprocessorsystem Varianter, problem Interprocesskommunikation

Läs mer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.) Outline för D2, ICT2, E3 och Mek3 Nicholas Wickström Högskolan i Halmstad Sverige p.1/18 Förra föreläsningen Specifikation -Kravspecifikation -Funktionsspecifikation -Blockdiagram Operativsystem -Grunder,

Läs mer

DEC Alpha instruktions Arkitektur

DEC Alpha instruktions Arkitektur DEC Alpha instruktions Arkitektur David Ekberg December 4, 2017 Innehållsförteckning 1 Sammanfattning...3 2 Bakgrund...3 3 Syfte...3 4 Pipeline...4 4.1 Datatyper...4 4.2 Instruktions arkitektur...5 5 Slutsats...6

Läs mer

Datorsystem. Tentamen

Datorsystem. Tentamen Datorsystem Tentamen 2012-03-17 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller, illustrationer och beräkningar som används för att nå svaret ska också finnas med i lösningen.

Läs mer

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

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys Realtidssystem HT03 Vad är realtidssystem? Föreläsare: Wang Yi Rum: 1235, yi@it.uu.se, Tel: 471 3110 Assistent: Tobias Amnell Rum: 1216, tobiasa@it.uu.se, Tel: 4717122 Webbsida: www.it.uu.se/edu/course/homepage/realtid/h03

Läs mer

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

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16 MESI-Protokollet Richard Elvhammar Lund Universitet 4/12-16 Abstract För att ett system snabbt ska kunna hantera information så används, å sidan åt primärminnet och sekundärminnet, ett cacheminne. I modern

Läs mer

Hantering av hazards i multi-pipelines

Hantering av hazards i multi-pipelines Campus Helsingborg IDA2 Hantering av hazards i multi-pipelines Av: Mounir Salam Abstract Det finns tre olika problem som kan uppstå när vi kör en pipeline med flera steg. De tre problemen även så kallade

Läs mer

Datorsystemteknik DVGA03 Föreläsning 8

Datorsystemteknik DVGA03 Föreläsning 8 Datorsystemteknik DVGA03 Föreläsning 8 Processorns uppbyggnad Pipelining Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Innehåll Repetition av instruktionsformat

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2010-04-07 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

MESI-protokollets funktion i multiprocessorer

MESI-protokollets funktion i multiprocessorer LUNDS TEKNISKA HÖGSKOLA CAMPUS HELSINGBORG MESI-protokollets funktion i multiprocessorer Jacob Petersson EDT621 Datorarkitekturer med Operativsystem 2016-HT Abstract Denna rapport syftar till att visa

Läs mer

Cacheminne i en AMD Opteron Processor

Cacheminne i en AMD Opteron Processor Handledare: Erik Larsson Lunds Tekniska Högskola HT15 Cacheminne i en AMD Opteron Processor En rapport om cacheminne och dess struktur, i en 12 kärnig AMD Opteron Magny-Cours processor. Författare: Hamza

Läs mer

Regression med Genetiska Algoritmer

Regression med Genetiska Algoritmer Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet

Läs mer

Tentamen PC-teknik 5 p

Tentamen PC-teknik 5 p Tentamen PC-teknik 5 p Lösningar med kommentarer Program: Di2 Datum: 05-01-10 Tid: 13:30-18:30 Lokal He303 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Bilaga: Ingen Examinator:

Läs mer

SKOLFS. beslutade den -- maj 2015.

SKOLFS. beslutade den -- maj 2015. SKOLFS Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan och inom kommunal vuxenutbildning på gymnasial nivå; beslutade den -- maj

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-08-22 Tid: 14-18 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

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

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn? Fö 7: Operativsystem Introduktion. Klassificering. Vad är ett operativsystem? Program som kontrollerar andra andra program. Gränssnitt mellan användare och hårdvaran. Kärnan. Historisk översikt. Typeset

Läs mer

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

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2018-01-09 8.00-13.00 (förlängd 14.00) Uppgifterna i tentamen

Läs mer

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR EN INBLICK I HUR INTERCONNECTION OCH NUMA FUNGERAR DEN 5 DECEMBER 2016 FÖRFATTARE: NIKLAS SCHLIKER Examinator: Erik Larsson Innehåll Abstrakt:... 2 1.1

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Översikt Reduced instruction set computers (RISC) Superscalar processors Semantic gap Alltmer avancerade programmeringsspråk tas fram för att göra programvaruutveckling

Läs mer

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

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman Operativsystem Lektion 1 1 Lärare jem@cs.umu.se, B449 Lektioner etc Set Norman set@cs.umu.se, NAdv105 Labbar, labhandledning 2 Schema Notera att det finns ändringar i schemat!! Under perioden 1-8 mars

Läs mer

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

Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll? 1 Vad är speciellt med implementering av kommunikationsprotokoll? 2 Översikt Inledning Hårdvaru-vy och mjukvaru-vy Mjukvaruarkitektur Rules of thumb Minnesbandbredd TCP-implementering ILP Integrated Layer

Läs mer

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

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer? LUNDS TEKNISKA HÖGSKOLA Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer? 2015-12-07 1. Inledning Det är ett faktum idag att multi-core

Läs mer

4 grundregler. Minneshantering. Problemet. Windows minkrav

4 grundregler. Minneshantering. Problemet. Windows minkrav 4 grundregler 1. Man kan aldrig få för mycket minne 2. Minnet kan aldrig bli för snabbt Minneshantering 3. Minne kan aldrig bli för billigt 4. Programmens storlek ökar fortare än minnet i datorerna (känns

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

4. Pipelining. 4. Pipelining

4. Pipelining. 4. Pipelining 4. Pipelining 4. Pipelining Det finns en pipelinad biltvätt i Linköping spoltvätttork spoltvätt tork spolning tvätt tork De tre momenten tar lika lång tid Alla bilar går igenom samma program Väntetid 1/3

Läs mer

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

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel Uppgift 3 Till en process som kräver 8 sidor allokeras 4 sidoramar. Antag följande referenssträng: 1,2,8,3,4,3,8,2,1,4 Hur många sidofel kommer att genereras (demand paging) med en a) FIFO-algoritm (2

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) Praktiska kommentarer TSEA8 Datorteknik Y (och U) Föreläsning Kent Palmkvist, ISY Dagens föreläsning RISC Mer information om hur arkitekturen fungerar Begränsningar Lab extra tillfälle för redovisning

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 16, Kent Palmkvist 2018-05-21 3 Dagens föreläsning TSEA28 Datorteknik Y (och U) Föreläsning 16 Kent Palmkvist, ISY Mer avancerade sätt att öka prestanda Applikationsspecifika

Läs mer

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON Digitala System: Datorteknik ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering (1)

Läs mer