Course syllabus

Kurs-PM

EDA333 / DIT122 EDA333 / DIT122 Datorsystemteknik lp4 VT24 (7,5 hp)

Kursen ges av institutionen för Data- och informationsteknik

OBS: Kursen kommer att ges på campus.  Detaljer framgår av  filen KursPM 2024.pdf under kursorganisation under Filer/Files på Canvas. Samtliga föreläsningar finns också inspelade. Länkarna finner du i filen videolänkar.doc under kursorganisation i Filer/Files.

Kontaktuppgifter

Kursansvarig, examinator och föreläsare: Per Stenström (pers@chalmers.se)

Assistenter på övningar och laborationer:

 

Kursens syfte

Kursen har som syfte att förmedla hur ett modernt datorsystem är uppbyggt och hur dess hårdvarudelar samverkar med varandra och med mjukvaran (på låg nivå). Speciellt tas stor hänsyn till prestandafrågor, eftersom många designbeslut eftersträvar en viss prestanda till lägsta kostnad, eller mesta möjliga prestanda för en given kostnad.

Schema

TimeEdit

Se även Schema 2024.pdf  under fliken Kursorganisation i Filer/Files på Canvas

Kurslitteratur

Kursbok: "Computer Organization and Design, the Hardware/Software Interface" (5'th edition eller senare), 

David Patterson, John L. Hennessy, ISBN: 978-0-12-407726-3. Säljes av Cremona.

På Canvas under Filer/Files finns

  • Exempelsamling med lösningsförslag. Finns som PDF under Filer/Files.
  • LabPMs, inlämningsuppgift, övningsexempel, föreläsningsslides, gamla tentor etc:
  • Inspelade föreläsningar på Youtube. (Länkar finns i  filen videolänkar.doc under fliken Kursorganisation i Filer/Files på Canvas.)

Kursens upplägg

Organisation

Kursen ges via föreläsningar, räkneövningar, laborationer, samt ett projekt/inlämningsuppgift.

Förkunskapskrav

Kurserna Grundläggande datorteknik och Maskinorienterad programmering (eller motsvarande kurser).

Föreläsningar

Dessa introducerar kursstoffet, illustrerar via exempel, och syftar till att stödja aktiva självstudier. Ca två tillfällen (á 2h) ges per vecka. Detaljerade läsanvisningar finns under fliken Kursorganisation i Filer/Files på Canvas i filerna Kursplan 2024.pdf och Schema. 2024pdf.

Demoräkneövningar

Kursassistenterna räknar utvalda räkneexempel på tavlan.

 

Räkneövningar

Ger möjligheter att lösa problem och fråga handledare om hjälp. Övningsuppgifterna finns i häftet "Exempelsamling" (se PDF under Dokument). Det finns också fler övningsupgifter i kursboken. "P&H"

Projektuppgift (inlämning)

Projektuppgiften görs i 2-mannagrupper (samma som labgrupperna). Ert resultat (program etc) skall visas upp för labhandledare för körningsgodkännande senast vid ett  labtillfälle i den näst sista läsveckan. En skriftlig rapport (på engelska) skall också skickas in här via Canvas. Uppgiften kräver både hårdvaru- och mjukvarulösning och är relativt krävande tidsmässigt. Så det är en god ide att starta tidigt med uppgiften. Simulatorn "MARS" skall användas (med en plug-in som är utvecklad specifikt för denna kurs). MARS är ett Java-program (vilket vid behov kan laddas ner via Files/Filer. Uppgiftsbeskrivningen finns under Files/Filer.

Plagiarismkontroll: Vi använder URKUND (rapport) samt MOSS (kod).

Projektet betygsätts (3,4,5). Kriterium enligt:

M= Exekveringstid x Kostnad (usC$)  

5: M <= 650

4: 650 < M <= 775

3: 775 < M <= 900

Ni bokar tid för körningsgodkännande  (bokning av labplats) via "Doodle" länken (se Laborationer).

Viktigt! Se till att "Delayed branching" är aktiverat i MARS (se "Settings" i MARS).

Laborationer

Exemplifierar i detalj mycket av det vi går igenom i kursen vad gäller MIPS assembler, pipelining och cacheminnen. Ni skall använda simulatorn "MipsIt" (Windows program) under laborationerna. MipsIt kan laddas ner från "Filer/Files". 

Laborationerna utföres  i 2-mannagrupper (samma grupperingar som för inlämningsuppgiften). Ni väljer själva lab-partner.

Viktigt!  Gör denna labbokning tidigt i kursen eftersom vi använder detta för att skapa projektgrupper här i Canvas till er. Detta behöver ni för att skicka in er rapport (inlämningsuppgiften).

 

Tid: Se Schema 2024.pdf under fliken kursorganisation under Filer/Files i Canvas.

Rum: 4225, För att boka labtid :  (Obs! två-mannagrupper; max ett pass  (=4h) per vecka får bokas); boka via Doodle'länken (kommer att finnas här). 

(Vänligen ge *båda* era namn - för- och efternamn - vi kommer att använda detta för att skapa projektgrupper till er här i Canvas vilket ni måste ha för att kunna skicka in er rapport över inlämningsuppgiften). Första labtillfället sker i läsvecka 3.

Lab PM:  Kan laddas ner via Filer/Files.

 

Examination

Sker via en skriftlig tentamen, examination av inlämningsuppgift/projektet och godkännande av laborationer.

Betygsgränser för tentamen: 40%/60%/80% av totalpoängen på tentamen ger tentamensbetyget 3/4/5.

Betygsgränser för inlämningsuppgift/projekt: Se ovan under rubriken Inlämningsuppgift/projekt.

Slutbetyg på kursen utgöres sammanviktat av betygen på tentamen och inlämningsuppgift/projekt pss att till tentamenspoängen adderas följande beroende på projektbetyget: 0p/6p/12p då projektbetyg är respektive 3/4/5.  Slutbetyget ges sedan av skalan 40%/60%/80% av totalpoängen på tentamen.

Observera att både tentamen och inlämningsuppgift/projekt måste lägst ha betyg 3 för att få ett slutbetyg på kursen. 

Tentamenstillfällen 2024: Ordinarie 30/5 (kl 8:30) och omtentamen 20/8 (kl 14).

Glöm inte att du måste anmäla dig för att få tentera: https://student.portal.chalmers.se/sv/chalmersstudier/tentamen/Sidor/sa-anmaler-du-dig.aspx

 
Lärandemål
Efter fullgjord kurs ska studenten kunna:
  • Förklara hur ett datorsystems prestanda kan definieras och mätas
  • Identifiera de grundläggande typer av konflikter som uppkommer till följd av pipelining av en processors dataväg.
  • Peka ut och beskriva enkla metoder för att hantera dessa konflikter, identifiera begränsningar i dessa metoder, samt uppskatta prestandainverkan.
  • Redogöra för funktionen hos och uppskatta prestandapåverkan av en minneshierarki, som kan omfatta cacheminnen, huvudminne och virtuellt minne, och som använder olika parameterar (total storlek, blockstorlek, associativitet, etc) för de olika minnesnivåerna.
  • Läsa och skriva enkla assemblerprogram för en typisk tre-adress registermaskin.
  • På korrekt sätt använda sig av instruktioner som utför aritmetiska operationer, såväl för flyttal som heltal
  • Beräkna prestanda (i enkla lastfall) hos ett I/O-system, speciellt i system som består av processorer, bussar och skivminnen.
  • Identifiera prestandamässiga flaskhalsar i ett sådant system.
  • Översiktligt beskriva de komponenter och principer som används vid konstruktion av flerkärniga processorer.
  • Genomföra en enklare samoptimering av mjukvara (på assemblernivå) med hårdvaruparametrar för att uppnå bästa möjliga prestanda/ kostnadsförhållande för en viss funktion, samt redovisa detta i en kortare skriftlig rapport.

Studentrepresentanter:

TKDAT  addelindholm19@gmail.com  Adam Lindholm

TKDAT  egil.moren@gmail.com             Egil Morén

TKDAT  simon.uggla@gmail.com          Simon Uggla

TKDAT  august.adahl@outlook.com    August Ådahl

TKDAT  isacakessonjansen@gmail.com            Isac Åkesson Jansen

 

 

Välkommen till kursen!

Per Stenström

 

 

Länk till kursplanen på Chalmers, Studieplan.

Länk till kursplanen på Göteborgs Universitet.