Hoppa till huvudinnehållet
Till KTH:s startsida Till KTH:s startsida

IS1500 Datorteknik och komponenter 9.0 hp

Kurs-PM HT 2021-50501

Version 2 – 2021-08-30 12:11:32

Kursomgång

HT 2021-1 (Startdatum 2021-08-30, Svenska)

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kurs-PM HT 2021

Presentation av kursen

I denna kurs kommer du att lära dig hur datorsystem fungerar. Efter att kursen är avslutad kommer du ha en grundläggande förståelse för hur en processor är konstruerad, hur en dator exekverar maskinkod och hur minneshierarkier påverkar exekveringstid. Du kommer också att lära dig grundläggande principer kring parallella beräkningar. Under laborationer kommer du att skriva assembler- och C-kod, se hur program exekveras på inbäddade system, samt konstruera en fungerande encykelsprocessor i en simulerad miljö. Slutligen kommer du i grupper om två studenter att konstruera ett miniprojekt på en inbäddad plattform.

Se kurshemsidan för mer information kring kursen (Kurs PM, föreläsningar etc.).

 

Rubriker markerade med en asterisk ( * ) kommer från kursplan version HT 2021

Innehåll och lärandemål

Kursinnehåll

Kursen ger grundläggande kunskaper om hur en dator fungerar och är uppbyggd, både ur hårdvaru- och programvaruperspektiv. Kursen är uppdelad i sex olika moduler, vilka bland annat inkluderar följande grundläggande begrepp och koncept:

  1. C-programmering och assemblerspråk: pekare, funktioner, stack, assemblerspråk, maskinspråk, instruktionskodning och processorregister.
  2. In- och utmatningssystem: timerfunktioner, avbrott och minnesmappad in- och utmatning.
  3. Digital design: sanningstabeller, grindar, boolesk algebra, multiplexer, avkodare, adderare, kombinatoriska nät, sekvensnät och register.
  4. Processorkonstruktion: aritmetisk-logisk enhet, dataväg (datapath), styrenhet och pipeline.
  5. Minneshierarkier: instruktionscache, datacache och virtuellt minne.
  6. Parallella processorer och program: Amdahls lag, olika varianter av parallellism, samt multicore.

Lärandemål

Efter godkänd kurs ska studenten kunna

  • konstruera maskinnära program i programspråket C och i assemblerspråk,
  • konstruera maskinnära program med in- och utmatning, timerfunktioner och avbrott,
  • analysera hur logiska grindar, funktionsblock, kombinatoriska nät och sekvensnät fungerar,
  • analysera hur en processor fungerar, både med och utan pipeline,
  • analysera hur minneshierarkier fungerar, inklusive cache-strukturer,
  • jämföra grundläggande begrepp inom flerprocessorsystem,
  • förklara och beskriva tekniska lösningar i både tal och skrift.

För högre betyg ska studenten dessutom konstruera mer komplexa program och/eller diskutera samt analysera koncept inom kursen. Detaljerna är specificerade i kurs-PM.

Läraktiviteter

Föreläsningar: Syftet är att ge en introduktion till de olika ämnena.

Övningarna: Syftet är att se hur en lärare löser enkla och komplexa problem, samt att göra det enkelt för studenter att ställa specifika frågor.

Seminarier: Syftet är att studenterna ska förbereda sig inför seminariet och sedan aktivt delta i diskussionerna.

Laborationer: Syftet är att få "hands-on" erfarenhet av programmering och design.

Mini Projekt: Syftet är att låta studenterna arbeta i grupp med ett självvalt projekt under hela terminen.

Lunch Q&A: Syftet är att hjälpa studenter med frågor relaterade till kursinnehållet.

Förberedelser inför kursstart

Rekommenderade förkunskaper

Studenten ska kunna skriva, förklara och felsöka program i imperativa programspråk, exempelvis Java, C eller C++, upp till programstorlekar omkring 100 programrader.

Kurslitteratur

Följande är de rekommenderade kursböckerna:

  • David Money Harris and Sarah L. Harris. Digital Design and Computer Architecture, Second Edition, Morgan Kaufmann, 2013. 
  • David A. Patterson and John L. Hennessy. Computer Organization and Design – the Hardware/Software Interface, Fifth Edition, Morgan Kaufmann, 2013.

Om du har loggat in via KTH:s system är båda dessa böcker tillgängliga online.

Mer information om kurslitteratur för laboratorioner och projektet finns på den här länken.

Utrustning

Miniprojektets inlärningsaktivitet utförs på ett ChipKIT Uno32- eller ett ChipKIT uC32-utvecklingskort tillsammans med en ChipKIT Basic I/O-skärm eller annan elektronik som är ansluten till kortet. Denna utvecklingsmiljö kommer att delas ut till varje elevgrupp (grupp om två studenter) på LAB 1.

Mer informationen finns på den här länken.

Programvara

Vi använder flera programvaror i kursen:

  • MARS är en simulator för är en RISC-processorarkitektur.
  • MCB32tools är en verktygskedja med öppen källkod som innehåller en C-kompilator och programvara för enkel programmering av ChipKIT-miljön.
  • C-kompilatorer.
  • Logisim är ett pedagogiskt verktyg för att designa och simulera digitala logikkretsar.

Mer informationen finns på den här länken.

Funka rekommenderar också att du informerar läraren (i detta fall Marco Chiesa) om alla behov du kan ha. Funka informerar inte automatiskt lärare i kurser.

Examination och slutförande

Betygsskala

A, B, C, D, E, FX, F

Examination

  • ANN1 - Komponentuppgift, 1,5 hp, Betygsskala: P, F
  • LAB1 - Laborationer, 4,5 hp, Betygsskala: P, F
  • TEN1 - Tentamen, 3,0 hp, Betygsskala: A, B, C, D, E, FX, F

Examinator beslutar, baserat på rekommendation från KTH:s samordnare för funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.

Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Avsnittet nedan kommer inte från kursplanen:

Komponentuppgift ( ANN1 )

1.5 hp. Betyg P eller F. Studenten erhåller betyg P (Pass) om LD-LAB:en är godkänd. 

Laborationer ( LAB1 )

4.5 hp. Betyg P eller F. Studenten erhåller betyg P (Pass) om LAB1, LAB2, LAB3, LAB4 och projektet är godkända. 

Tentamen ( TEN1 )

3.0 hp. Betyg A, B, C, D, E, FX, och F. Betyget rapporteras efter godkänd tentamen. Se nedan beskrivningar kring betygskriterier. Notera att det är tillåtet att skriva tentamen flera gånger för att kunna uppnå ett högre betyg (dvs. plussning är tillåtet). 

NOTERA

P.g.a. Covid-19 situationen, så är det idag inte klart exakt hur examinationen kommer att gå till i januari. Planen är att ha individuell datorbaserad examination på KTH i Kista. Mer exakt information kommer att meddelas senare under hösten. Dock kommer tentamen att testa studenten på samma typer av problem som för de äldre skriftliga tentorna. Det är alltså fortfarande en god idé att studera de gamla tentorna för att förbereda inför tentamen.

Tentamensstruktur

Del 1: Grundläggande

  • Maximalt 48 poäng (IS1500).
  • 8 poäng på varje modul.
  • Korta frågor med korta svar.

Del 2: Avancerat

  • Omfattande frågor.
  • Diskussion, analys och konstruktion.

Målrelaterade betygskriterier/bedömningskriterier

Kriterier för godkänt:

För att kunna erhålla godkänt betyg (A, B, C, D eller E) krävs att studenten får godkänt på del 1 av tentamen.  Studenten måste erhålla minst 2 poäng på varje modul (exklusive bonuspoäng) samt erhålla totalt 36 poäng på del 1 (inklusive bonuspoäng). Notera att det är en direkt koppling mellan de officiella lärandemålen och modulerna i kursen. Dvs. det krävs tillräcklig kunskap för alla lärandemål för att få godkänt på kursen. Lärandemålet att förklara tekniska lösningar muntligt och skriftligt examineras i laborationer och i projektet. 

Betygskriterier:

Att endast få godkänt på del 1 ger betyg E på tentamen. För att erhålla ett högre betyg (A, B, C eller D) krävs att studenten påvisar kunskap i tre förmågor, vilka var och en representeras av en separat fråga i del 2 av tentamen.

  • Fråga 1: Diskussion: Test av förmågan att kunna diskutera och jämföra olika koncept inom kursen. Fokus är på modul 6, men koncept från modul 1, 2, 4 och 5 kan även förekomma. Frågan betygsätts i tre nivåer, S, G och VG med följande kriterier:
    • Tillfredsställande (Satisfactory, S):Vissa av begreppen i frågan är tydligt förklarade.

    • Bra (Good, G): I grund och botten är alla begrepp i frågan tydligt förklarade och vissa av begreppen har relaterats till varandra genom att likheter och skillnader har diskuterats.

    • Mycket bra (Very Good, VG): I grund och botten är alla begrepp i frågan tydligt förklarade och alla begrepp har relaterats till varandra genom att likheter och skillnader har diskuterats.

      Om ingen av de tre nivåerna har uppnåtts betraktas uppgiften som underkänd (Failed, F).

  • Fråga 2: Konstruktion: Test av förmåga att konstruera större C och/eller assemblerprogram. Fokus på frågan är på modul 1 och 2. Frågan är uppdelad i tre delar med olika svårighetsgrader, L1, L2 och L3. Betygsnivåerna S, G och VG sätts med följande kriterier:
    • Tillfredsställande (Satisfactory, S): Uppgiften på nivå L1 har lösts korrekt.

    • Bra (Good, G): Antingen uppgiften på nivå L2 eller uppgiften på nivå L3 har lösts korrekt.

    • Mycket bra (Very Good, VG): Både uppgiften på nivå L2 och uppgiften på nivå L3 har lösts korrekt.

      Om ingen av de tre nivåerna har uppnåtts betraktas uppgiften som underkänd (Failed, F).

  • Fråga 3: Analys: Test av förmåga att analysera C och/eller assemblerprogram gällande pipelines och caches. Fokus på fråga 3 är modulerna 4 och 5.  Frågan är uppdelad på 3 nivåer L1, L2, och L3 och betygssätts på samma sätt som fråga 2.

Slutbetyget beräknas enligt följande:

  • Betyg A: Godkänt på del 1, genomfört godkänt avancerat projekt, samt erhållit 3 st VG eller 2 st VG och ett G på del 2. 
  • Betyg B: Godkänt på del 1, genomfört godkänt avancerat projekt, samt erhållit ett VG och 2 st G eller 2 st VG och ett S på del 2.
  • Betyg C: Godkänt på del 1 samt erhållit 3 st G eller 2 st G och ett S eller 1 st VG och 2 st S eller ett VG, ett G och ett F eller 2 st VG och ett F eller ett VG, ett G och ett S på del II.
  • Betyg D: Godkänt på del 1 samt erhållit 3 st S eller ett G, ett S och ett F eller 2 st G och ett F eller ett VG, ett S och ett F eller ett VG och två F eller ett G och två S på del 2. 
  • Betyg E: Godkänt på del 1.
  • Betyg FX: Minst 36 poäng på del 1 och som mest en modul med mindre än 2 poäng.
  • Betyg F: i annat fall

Bonuspoäng: Det är möjligt att erhålla 4 bonuspoäng på seminarierna. Dessa bonuspoäng adderas till del 1. Poängen läggs inte till en specifik modul utan används för att räkna ut den totala summan för del 1. 

Avancerat projekt: För att erhålla betyg A eller B på den skriftliga tentamen måste studenten ha fått godkänt på ett avancerat projekt innan tentamenstillfället och inom samma kursomgång. Dvs, ett avancerat projekt möjliggör att man kan erhålla betyg A eller B på den första ordinarie tentamen och de följande två omtentorna. 

Möjlighet till komplettering

Om studenten erhåller FX på tentamen så erbjud muntlig examination gällande komplettering av den modul som studenten missade. Vänligen kontakta examinatorn ifall du erhållit FX på tentamen. Se ovan beskrivning om vad som gäller för att få FX.

Möjlighet till plussning

Plussning av betyg är tillåtet. Vänligen kontakta studentsupport för att anmäla dig till tentamen. 

Om du skulle plussa och få ett lägre betyg än det som redan rapporterats i LADOK behåller du det betyget som finns i LADOK. Dvs. plussning kan inte sänka ditt betyg. Notera att om du försöker uppnå betyg A eller B vid plussning måste du fortfarande fått godkänt på ett avancerat projekt under samma kursomgång som du genomför plussning av tentamen.

Resultatrapportering

Slutbetyg

Slutbetyg för kursen rapporteras när LAB1, ANN1 och TEN1 är godkända i LADOK. Slutbetyget är samma som resultatet på TEN1.

Etiskt förhållningssätt

  • Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
  • Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
  • Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.

Avsnittet nedan kommer inte från kursplanen:

Hederskodex
Var vänlig se till att du är medveten om och att du förstår KTH-EECS-Code of Honor. Links till en extern webbplats.

Policy mot plagiat
Observera att alla former av fusk och plagiat kommer att rapporteras. Se KTH:s policy för hantering av plagiat.

  • Labs och projektkod. Du kan samarbeta och diskutera med vem som helst, men du måste kunna förklara all kod du presenterar för oss individuellt, inklusive din labpartners kod. På begäran i labb och projektinstruktioner måste du tydligt deklarera vem som har skapat koden du visar vid laboratorieundersökning.
  • Skriftliga rapporter och projektöversikter. Du får inte kopiera, klippa ut eller klistra in text i din rapport som du inte har skrivit själv. Det enda undantaget är om du citerar texten ordentligt och ger ett citat till den ursprungliga källan.
  • Seminarieövningar. Du får diskutera övningens lösningar, men de slutliga lösningarna måste skrivas ner och lösas individuellt av dig. Det är inte tillåtet att kopiera lösningar på något sätt.
  • Skriftligt prov. Du får ta med ett handskrivet A4-papper. Du kan skriva på båda sidor. A4-papperet får inte skrivas ut eller kopieras. Alla andra hjälpmedel (till exempel miniräknare eller läroböcker) är inte tillåtna.

Ytterligare Information

Ingen information tillagd

Fakta om kursomgång

Startdatum

2021-08-30

Kursomgång

  • HT 2021-50501

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kontakter

Kursansvarig

Lärare

Examinator