DM548: Computerarkitektur og systemprogrammering (10 ECTS)

STADS: 15015001

Niveau
Bachelorkursus

Undervisningsperiode
Kurset er placeret i efterårssemesteret.

Ansvarlige undervisere
Email: roettger@imada.sdu.dk

Skemaoplysninger
Hold Type Dag Tidsrum Lokale Uger Kommentar
Fælles I Mandag 14-16 U174 48
Fælles I Mandag 14-16 U166 49
Fælles I Tirsdag 14-16 U46 36,41,44
Fælles I Tirsdag 14-16 U167 37
Fælles I Tirsdag 14-16 U20 39
Fælles I Tirsdag 14-16 U48A 45
Fælles I Onsdag 14-16 U55 43
Fælles I Torsdag 14-16 U133 36
Fælles I Torsdag 14-16 U31 37
Fælles I Torsdag 14-16 U20 38,41
Fælles I Torsdag 14-16 U46 39-40
Fælles I Torsdag 10-12 U23 44
Fælles I Torsdag 10-12 U170 45
Fælles I Torsdag 10-12 U9 47
Fælles I Torsdag 12-14 U48A 48
Fælles I Torsdag 12-14 U170 49
Fælles I Fredag 12-14 U21 35
H1 TE Tirsdag 14-16 U82 38
H1 TE Tirsdag 14-16 U20 40
H1 TE Tirsdag 14-16 U133 49
H1 TE Onsdag 14-16 U142 36
H1 TE Onsdag 14-16 U51 40
H1 TE Onsdag 14-16 U31 45,48
H1 TL Torsdag 10-12 IMADA ComputerLab 37-41,48-49
H1 TE Torsdag 14-16 U25A 43
H1 TE Torsdag 14-16 U170 49
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal.

Indgangskrav:
Ingen.

Faglige forudsætninger:
Stoffet fra DM536 Introduktion til Programmering forudsættes kendt.

Kurset kan ikke følges hvis DM544 er bestået, eller hvis DM544 indgår obligatorisk i din studieordning.



Formål
Introduktion af computerarkitektur, fra logikniveauet over mikroprogramniveauet til det konventionelle ISA niveau. Desuden vigtige komponenter i lagerhierarkiet, busarkitekturer og organiseringen af moderne pipelinede CPU'er. Derudover indføres de vigtigste aspekter af et systemprogrammeringssprog.

Kurset bygger på DM550, DM519 og DM507, og giver fagligt grundlag for kurserne DM510 og DM546.

I forhold til uddannelsens kompetenceprofil har kurset eksplicit fokus på at:

  • viden om principper for konstruktion af computerhardware og styresystemer, herunder distribuerede og parallele systemer
  • at forstå elementære logik-diagrammer, og at kunne udtrykke funktionaliteten af basale CPU komponenter i form af sådanne
  • at kunne udtrykke funktionaliteten af en ISA niveau instruktion ved fortolkning på en underliggende (mikro)maskinarkitektur, at kunne fortolke almindelige binære heltals og flydende tals repræsentationer, og at kunne konvertere mellem disse
  • at kende og kunne forklare de forskellige lagerkomponenters egenskaber og begrænsninger, herunder deres adresseringsstruktur, samt vurdere ydeevnen af et flerniveau lagerhierarki
  • at kunne forklare og diskutere moderne CPU'ers interne udnyttelse af parallelisme i form af pipelining, begrænsninger af denne samt fordeling af opgaver på flere funktionelle enheder
  • at kunne forklare og diskutere computeres indre opbygning og interne kommunikationsveje på et overordnet plan, herunder kommunikation med ydre enheder samt afbrydelser fra disse
  • at kunne udtrykke funktionaliteten af en given algoritme som et assemblerprogram, herunder at kunne bringe et sådant program til udførelse på en konkret maskine
  • at kunne udtrykke funktionaliteten af en given algoritme som et systemprogram, herunder at kunne bringe et sådant program til udførelse på en konkret maskine


Målbeskrivelse
For at opnå kursets formål er det læringsmålet for kurset, at den studerende demonstrerer evnen til at:
  • fortolke elementære logik-diagrammer og sandhedstabeller, samt udtrykke funktionaliteten af basale CPU komponenter i form af sådanne, specielt at kunne udnytte rekursive definitioner til minimering af den længste sti
  • udtrykke funktionaliteten af en ISA niveau instruktion ved fortolkning på en underliggende (mikro)maskinarkitektur
  • fortolke almindelige binære heltals og flydende tals repræsentationer, og at kunne konvertere mellem disse
  • forklare de forskellige lagerkomponenters egenskaber og begrænsninger, herunder deres adresseringsstruktur, samt vurdere ydeevnen af et flerniveau lagerhierarki
  • forklare og diskutere moderne CPU'ers interne udnyttelse af parallelisme i form af pipelining, begrænsninger af denne samt fordeling af opgaver på flere funktionelle enheder
  • forklare og diskutere computeres indre opbygning og interne kommunikationsveje på et overordnet plan, herunder kommunikation med ydre enheder samt afbrydelser fra disse
  • udtrykke funktionaliteten af en given algoritme som et assemblerprogram, herunder at kunne bringe et sådant program til udførelse på en konkret maskine
  • udtrykke funktionaliteten af en given algoritme som et system program, herunder at kunne bringe et sådant program til udførelse på en konkret maskine
Indhold
Kurset indeholder følgende faglige hovedområder:
  • Det digitale logikniveau, mikroarkitekturniveauet, herunder pipelining og andre ydelsesforbedringer samt cache-lagre
  • ISA-niveauets instruktiontyper, -formater og adresseringsmetoder, datatyper og talrepræsentationer samt assemblerprogrammering.
  • Et systemprogrammeringssprog, herunder: variabler og operatorer, funktioner, pointere, rekursion, I/O, og basale datastrukturer.
Litteratur
    Meddeles ved kursets start.


Kursets hjemmeside
Dette kursus benytter e-learn (blackboard).

Forudsætningsprøver
To obligatoriske opgaver. Opgaverne skal være bestået for at man kan deltage i eksamen. Bestået/ikke-bestået, intern bedømmelse ved underviser (15015012)

Eksamen- og censurform:
  1. Skriftlig eksamen. Bedømmes ved ekstern censur efter 7-trinsskalaen. Tilladte hjælpemidler: Bøger og noter. 10 ECTS (15015002)
Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.
Introfase: 42 timer
Træningsfase: 14 timer, heraf:
 - Eksaminatorie: 14 timer
 - Laboratorieøvelser: 14 timer

Aktiviteter i studiefasen Studiefase: 32 timer
Undervisningsform
Aktiviteter i studiefasen:
  • Anvendelse af den tilegnede viden i projekter.


Sprog
Dette kursus undervises på engelsk.

Kursustilmelding
Se tilmeldingsfrister.

Pris for åben uddannelse
Se priser for enkeltkurser.

Denne kursusbeskrivelse var gyldig fra 1. september 2016 til 31. august 2018.