Kursplan för Datorarkitektur

Kursplan fastställd 2023-02-05 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnComputer architecture
  • KurskodDAT105
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPHPC
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Elektroteknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 86114
  • Blockschema
  • Sökbar för utbytesstudenterJa

Poängfördelning

0107 Projekt 1,5 hp
Betygsskala: UG
1,5 hp
0207 Tentamen 6 hp
Betygsskala: TH
6 hp
  • 23 Okt 2023 em J
  • 04 Jan 2024 fm J
  • 20 Aug 2024 em J

I program

Examinator

Gå till kurshemsidan (Öppnas i ny flik)

Behörighet

Grundläggande behörighet för avancerad nivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Särskild behörighet

Engelska 6
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Kursspecifika förkunskaper

Datorsystemteknik som introducerar de fundamentala begreppen inom datorarkitektur såsom pipelining och cacheminne motsvarande Chalmerskursen EDA332/EDA331.

Syfte

Datorer utgör en viktig komponent i nästan alla tekniska system idag på grund av deras funktionella flexibilitet och förmåga att utföra beräkningar snabbt och energieffektivt. I själva verket har beräkningshastigheten för datorer fördubblats ca var 18 månad under de senaste decennierna. Ett viktigt skäl är framsteg inom datorarkitektur - ingenjörsvetenskapen kring datorkonstruktion.

Inom datorarkitektur studerar vi principer för uppbyggnad av beräkningsstrukturer som idag typiskt använder en miljard ultrasnabba datorer för att snabbt utföra de beräkningar som uttrycks i programmeringsspråk genom att utnyttja den inneboende parallellismen. Kursen täcker fundamentala principer för hur man konstruerar datorer som erbjuder hög beräkningshastighet för programvaran.

Lärandemål (efter fullgjord kurs ska studenten kunna)

Efter fullgjord kurs ska studenten kunna
  • redogöra för begrepp och strukturer i moderna datorarkitekturer för att kunna följa forskningsframsteg inom detta område,
  • redogöra för principerna bakom en modern mikroprocessor; speciellt avancerade tekniker baserade på pipelining som typiskt utför flera instruktioner samtidigt samt grundläggande principer kring flerkärniga processorer (multicores) som kan utföra flera beräkningsuppgifter samtidigt,
  • redogöra för principerna bakom moderna minneshierarkier som typiskt utnyttjar lokalitet för att finna begärda instruktioner och operander snabbt, och
  • redogöra för och kunna tillämpa kvantitativ analys av hur konstruktionsbeslut påverkar beräkningshastighet genom utnyttjande av moderna verktyg som används i datorindustrin.
  • redogöra för metodval, vid rapportering av prestandaegenskaper för datorer och värdera prestandaegenskaper utifrån samhälleliga och etiska aspekter
  • tolka omvärldens krav på datorers utformning, för att möta samhälleliga behov, såsom lägre energianvändning.

Innehåll

Kursen omfattar datorarkitekturella tekniker nödvändiga för att uppnå hög prestanda för exekverande program. Detta omfattar även simuleringsbaserade analysmetoder för kvantitativ analys av konsekvenserna av ett konstruktionsbeslut på prestanda och strömförbrukning.

Kursinnehållet är indelat i följande delar:

1 . Den första delen omfattar trender som påverkar utvecklingen av datorteknik inklusive Moores lag, mått på beräkningshastighet (responstid och kapacitet), strömförbrukning, benchmarking, Amdahls lag samt referenslokalitet. Den täcker också hur simuleringsbaserade tekniker kan användas för att kvantitativt utvärdera effekten av konstruktionsbeslut på beräkningshastigheten.
2 . Den andra delen omfattar olika tekniker för utnyttjande av parallellism på instruktionsnivå (ILP) genom att definiera nyckelbegrepp ILP och vad som begränsar det. De tekniker som omfattas delas in i två huvudkategorier: dynamiska och statiska tekniker. De viktigaste dynamiska tekniker som omfattas är Tomasulos algoritm, branch prediction och spekulation. De viktigaste statiska tekniker är loop unrolling, software pipelining, trace scheduling samt predicated execution.
3 . Den tredje delen handlar om minneshierarkier. Denna del omfattar tekniker för att angripa olika prestandaflaskhalsar i minneshierarkin såsom tekniker för att minska antalet cache missar, samt minska tiden att hantera en cache träff/miss. Exempel på tekniker som behandlas är inklusiva/exkusiva minneshierarkier, lockup-free cachar och prefetching. Virtuellt minne behandlas också.
4 . Den fjärde delen behandlar flerkärniga/flertrådade processorarkitekturer (multicores). På systemnivå behandlas programmeringsmodeller och hur processorkärnor på ett chip kan kommunicera med varandra via ett gemensamt adressrum. På mikroarkitekturnivå behandlas olika metoder för hur flera trådar kan dela arkitekturella resurser: fine-grain/coarse-grain och simultaneous multithreading. På minneshierarkinivå introduceras cache coherence.

Organisation

Kursen är organiserad i föreläsningar, övningar, fallstudier, laborationer och ett miniprojekt. Föreläsningarna behandlar grundläggande begrepp och strukturer. Övningarna ger djupgående analys av begrepp och strukturer och fokuserar på problemlösning. Fallstudierna är baserade på moderna kommersiella datorer som är dokumenterade i den vetenskapliga litteraturen. Studenter genomför fallstudier och presenterar dem i plenum för kurskamrater och instruktörer. Slutligen får studenterna bekanta sig med och använda simuleringsmetoder och verktyg som används inom industrin för att analysera effekterna av konstruktionsbeslut på beräkningshastigheten. Detta moment understöds av tre laborationer.

Litteratur

M. Dubois, M. Annavaram, P. Stenström. Parallel Computer Organization and Design. Cambridge Press, 2012.

Examination inklusive obligatoriska moment

Godkända laborationer samt skriftlig tentamen.

Slutbetyget baseras på resultat på tentamen till vilket bonuspoäng kan adderas för högre betyg (se nedan). För betyg 3 krävs minst 40% av totalpoäng på tentamen. För betyg 4 krävs minst 60% av totalpoäng på tentamen och för betyg 5 kärvs minst 80% av totalpoäng på examen. Man kan erhålla 4 bonuspoäng om man svarat rätt på minst 3 duggor som ges under föreläsningstid. Man kan erhålla ytterligare 4 bonuspoäng om man muntligt redovisar fallstudien för de övriga kursdeltagarna. Dessa bonuspoäng adderas till resultatet på tentamen och kan användas för högre betyg men inte för att få godkänt på kursen. För att bli godkänd på hela kursen krävs godkänt på labkursen (1.5 ECTS) och på tentamen (6.5 ECTS). Slutbetyget på kursen är samma som slutbetyget på tentamen.

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.