Course syllabus

Kurs-PM

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

Kursen ges av institutionen för Data- och informationsteknik

OBS: Pga pandemin kommer alla kursmoment att göras på distans. För att underlätta detta finns det en fil kursPM.pdf under kursorganisation under Filer/Files på Canvas i vilket schema för samtliga kursmoment framgår och med zoom länkar till dessa. 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:

  • Fazeleh <fazeleh@chalmers.se>
  • Pirah <pirah@chalmers.se>
  • Piyumal <piyumal@chalmers.se>
  • Anna-Maria <annunt@student.chalmers.se>
  • Björn <bwerner@student.chalmers.se>

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

Kurs Grundläggande datorteknik, 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"

Instruktioner för att fråga om hjälp:

1. Gå med i vår slack: (https://join.slack.com/t/eda333dit122vt21/shared_invite/zt-o6c3acup-dgHL0wyXqWwYaigIWEJCXg)

2. Skriv era namn på kölistan när ni behöver hjälp: (http://www.waglys.com/EtlmJb)

3. När det är er tur kommer vi bjuda in er i zoom från slack. Se därför till att vara inloggad i slacken när ni skriver upp er på kölistan.

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 PMs:  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 2021: Ordinarie 3/6 (kl 8:30 via zoom) och omtentamen 17/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 simonjohansson312@gmail.com Simon Johansson
TKDAT riddle.agk@gmail.com Albin Karlsson
TKDAT filiplindset@hotmail.com Filip Lindset
TKDAT carl.ridderstolpe@hotmail.com Carl Ridderstolpe
TKDAT firrens.123@gmail.com Fredrik Österström

Välkommen till kursen!

 

Beskrivning av kursens läraktiviteter; hur de genomförs och hur de hänger ihop. Detta är studentens guide till att navigera igenom kursen. Glöm inte att gärna ge studenten råd om hur de ska arbeta för att lära sig så mycket som möjligt baserat på den pedagogik du valt. Ofta kan man behöva understryka konkreta saker som hur ofta de bör gå in på kursrummet på lärplattformen, hur olika frågor fördelas mellan handledare, etc.

Skall innehålla plan för bland annat:

  • föreläsningar
  • övningar
  • laborationer
  • projekt
  • handledning
  • feedback
  • seminarier

Bör innehålla beskrivning av hur de digitala verktygen (lärplattform och andra) skall användas och hur de är organiserade, samt hur kommunikationen mellan lärare och studenter sker (lärplattform, e-post, annat).

Glöm inte att beskriva eventuella resurser som studenterna behöver använda så som labbutrustning, studios, verkstäder, fysiskt eller digitalt råmaterial.

Du bör vara tydlig med hur missade deadlines och kompletteringar hanteras.

 

Förändringar sedan förra kurstillfället

En sammanfattning av gjorda förändringar sedan förra kurstillfället, baserat på protokoll från kursnämndsmötet.

Lärandemål

 

  • Läsa och skriva enkla assemblerprogram för en typisk tre-adress register maskin.
  • 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.
  • På korrekt sätt använda sig av instruktioner som utför aritmetiska operationer, såväl för flyttal som heltal.
  • 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.
  • 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.
  • Förklara hur ett datorsystems prestanda kan definieras och mätas.
  • Uppskatta parameterändringars inverkan på systemets prestanda enligt ovan.
  • Översiktligt beskriva de komponenter och principer som används vid konstruktion av fler-kä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.

 

Examination

Beskrivning av hur kursens examinerande moment – salstentamen och andra – är upplagda och hur de bedöms.

Detta skall finnas med:

  • vilka moment som ingår, syftet med dessa och hur de bidrar till lärandemål
  • hur obligatoriska och/eller frivilliga moment bidrar till slutbetyget
  • betygsgränser och eventuella övriga krav för alla former av examination för att bli godkänd på kursen (obligatoriska moment)
  • form för examinationen, t.ex. om tentamen genomförs som digital examination
  • tid och plats för examination, dels ordinarie tentamenstillfälle, dels andra examinationer så som projektredovisningar; "Troligt datum för tentamen (obs vid eventuell ändring av tentamensdatum så finns alltid korrekt uppgift i Ladok)"
  • tillåtna hjälpmedel vid examination (skriftliga salstenta), samt om markeringar, indexeringar och anteckningar i hjälpmedel är tillåtna

Glöm inte att vara extra tydlig med projektuppgifter; vad är problemet, vad ska göras, vad är förväntat resultat, och hur ska detta resultat redovisas. Konkreta saker så som mallar för projektrapporter, vad händer om man lämnar in sent etc. är extra viktigt att ha med.

Länk till kursplanen på Chalmers, Studieplan.

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

Course summary:

Date Details Due