Datorsystemdesign för energieffektivitet
Lär dig hur moderna datorer designas för att förbättra hastighet, prestanda och energieffektivitet i dina program.
Om kursen
För att vara konkurrenskraftig inom datavetenskap är det avgörande att förstå byggstenarna i en modern dator och hur de direkt påverkar ett programs hastighet och effektivitet. Oavsett om du arbetar med inbyggda system, mobila datorbaserade system eller molnsystem, är prestanda och energieffektivitet centrala drivkrafter för användbarhet och konkurrenskraft hos datoriserade produkter.
I den här kursen lär du dig hur moderna flerkärniga datorer designas, och hur dina designval påverkar både prestanda och energiförbrukning. Du går igenom de designprinciper som styr moderna mikroprocessorer, såsom pipelining och cacheminnen, samt metoder för att bedöma hur designen påverkar exekveringstid och energieffektivitet.
Den här kunskapen kan göra verklig skillnad för yrkesverksamma ingenjörer som vill bygga konkurrenskraftiga produkter. Ta till exempel en smartphone med begränsad batterikapacitet – genom att tillföra värde till slutanvändaren med ny eller förbättrad funktionalitet kan man avsevärt förlänga drifttiden mellan laddningar, och därmed använda smartphonens redan begränsade resurser betydligt mer effektivt.
Med dessa kunskaper kan du bli expert på prestanda och energieffektivitet i datorsystem – kompetens som efterfrågas allt mer vid design av datoriserade inbyggda produkter. I takt med utvecklingen inom IoT (Internet of Things), autonoma system och mobila datorer blir den här typen av kompetens avgörande för en karriär inom systemteknik.
Kursen bygger på en avancerad grundutbildningskurs i datorsystemdesign från Chalmers.
Det här lär du dig
- Designkoncept i moderna flerkärniga datorer, inklusive processorer och minneshierarkier
- Hur energieffektivt och snabbt ett program exekveras
- Hur enkla modeller kan användas för att analysera energieffektivitet och prestanda
- Hur kursens designkoncept tillämpas i moderna flerkärniga datorsystem
Innehåll
Vecka 1: Exekveringsmodell för datorsystem
- Transformationshierarkin
- Instruktionsuppsättningsarkitektur
- Exekveringssteg
- Styrning, dataflöden och en modell av en dator
- Exekvering av ett program
- Att sätta ihop helheten
Vecka 2: Prestanda- och energimodeller för datorer
- Grundläggande prestandamodell för ett exekverande program
- Energi- och effektförbrukning i datorsystem
- Grundläggande energimodell för ett exekverande program
- Hur prestanda och energiförbrukning kan förbättras
- Att rapportera prestanda och energi
- Att sätta ihop helheten
Vecka 3: Pipeliningprinciper
- Löpande bandets princip – pipelining
- Instruktionsnivåparallellism och dess koppling till pipelining
- En pipelinemodell av en dator
- Pipelinekonflikter (strukturella, data- och styrkonflikter)
- Enkla tekniker för att undvika konflikter
- Att sätta ihop helheten
Vecka 4: Principer för cacheminneshierarkier
- Grunderna i minnessystem
- Lokalitetsprincipen i minnet
- Grundläggande begrepp kring cacheminne och direktmappad cache
- Mängdassociativa cacher
- Flernivåcacher
- Att sätta ihop helheten
Undervisningsspråk
Kursen ges på engelska.
Lecturer
Register today
Register now
Course Participant profile
Kursen vänder sig till studenter och yrkesverksamma med allmän förståelse för programmering, men utan tidigare kunskap om hur en dator fungerar.