Course syllabus

Kurs-PM

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

Kursen ges av institutionen för Data- och informationsteknik

OBS: Kursen kommer att ges på campus. Föreläsningar kommer att ges i hybridform. Detaljer framgår av   filen kursPM.pdf under kursorganisation under Filer/Files på Canvas. Samtliga föreläsningar finns också inspelade och tillgängliga via zoom. Länkarna finner du i filen videolänkar.doc under kursorganisation under 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 KursPM.pdf  under fliken Kursorganisation under 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 läsanvissningar.pdf och föreläsningsplan.pdf.

Demoräkneövningar

Torsdagar 10-12  Plats: Se https://cloud.timeedit.net/chalmers/web/public/ri1Y90ygZ05ZZQQ8X16v0Y075Q55x3966g060YQQ607.html (Länkar till en externa sida.)

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 och zoomlänkar: Se KursPM.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 2022: Ordinarie 2/6 (kl 8:30) och omtentamen 16/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 eli.adelhult@outlook.com Eli Adelhult
TKDAT jesper@acorneroftheweb.com Jesper Führ
TKDAT samuel@kyletoft.se Samuel Kyletoft
TKDAT norozie@student.chalmers.se Enayatullah Norozi
TKDAT pnadia@student.chalmers.se Nadia Papa

 

Välkommen till kursen!

Per Stenström

 

 

Länk till kursplanen på Chalmers, Studieplan.

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