Kursplan för Datorarkitektur

Kursplan fastställd 2021-02-26 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 86113
  • 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
  • 24 Okt 2022 em L
  • 04 Jan 2023 fm J
  • 15 Aug 2023 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 arkitekturella 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 hierarkier, 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 en sekvens av laborationer och i en projektuppgift. Projektuppgiften ger studenterna träning i att sätta in sina föreslagna lösningar inklusive sina metodval i ett vidare sammanhang, och i att redogöra för sina avvägningar för kollegor och avnämare. Specifikt tränas förmågan att på ett systematiskt sätt konstruera datorer för att uppnå samhälleliga krav på energieffektivitet.

Litteratur

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

Examination inklusive obligatoriska moment

Godkända laborationer, skriftlig projektrapport samt skriftlig 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.