DM548: Computerarkitektur og systemprogrammering

Det Naturvidenskabelige Studienævn

Undervisningssprog: Engelsk, På dansk eller engelsk afhængigt af underviser, men engelsk ved internationale studerende
EKA: N330005102
Censur: Ekstern prøve
Bedømmelse: 7-trinsskala
Udbudssteder: Odense
Udbudsterminer: Efterår
Niveau: Bachelor

STADS ID (UVA): N330005101
ECTS-point: 10

Godkendelsesdato: 25-03-2020


Varighed: 1 semester

Version: Arkiv

Kommentar

15015001 (tidligere UVA) er identisk med denne kursusbeskrivelse. 

Indgangskrav

Ingen

Faglige forudsætninger

Stoffet fra DM550: Introduktion til Programmering (10 ECTS) 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

Se BlackBoard for pensumlister og yderligere litteraturhenvisninger.

Eksamensbestemmelser

Eksamenselement a)

Tidsmæssig placering

Januar

Udprøvninger

Projekter og skriftlig eksamen

EKA

N330005102

Censur

Ekstern prøve

Bedømmelse

7-trinsskala

Identifikation

Fulde navn og SDU brugernavn

Sprog

Følger, som udgangspunkt, undervisningssprog

Hjælpemidler

Tilladt, nærmere beskrivelse af eksamensreglerne vil blive offentliggjort under 'Course Information' på kursets side i BlackBoard’. 

ECTS-point

10

Uddybende information

Et antal opgaver afleveret undervejs i kurset samt en afsluttende skriftlig stedprøve. Karakteren baseres på et samlet indtryk af elementerne, dog med højest vægtning af den skriftlige stedprøve.Censor vil have adgang til besvarelserne af opgaverne.

Eksamensformen ved reeksamen kan være en anden end eksamensformen ved den ordinære eksamen.

Vejledende antal undervisningstimer

70 timer per semester

Undervisningsform

På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.

  • Introfase: 42 timer
  • Træningsfase: 28 timer, heraf, eksaminatorie: 14 timer og laboratorieøvelser: 14 timer
  • Studiefase: 32 timer

Aktiviteter i studiefasen: anvendelse af den tilegnede viden i projekter.

Ansvarlig underviser

Navn E-mail Institut
Jakob Lykke Andersen jlandersen@imada.sdu.dk Institut for Matematik og Datalogi

Skemaoplysninger

Administrationsenhed

Institut for Matematik og Datalogi (datalogi)

Team hos Uddannelsesjura & Registratur

NAT

Udbudssteder

Odense

Anbefalede studieforløb

Profil Uddannelse Semester Udbuds periode
BA Centralt fag datalogi et-faglig særligt forløb for datamatikere - optag 1. september 2018, 2019 og 2020 Bachelor i datalogi | Odense 1 E20
BA centralt fag i datalogi et-faglig - optag 1. september 2016 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi et-faglig - optag 1. september 2017 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi et-faglig - optag 1. september 2018 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi et-faglig - optag 1. september 2019 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi et-faglig - optag 1. september 2020 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2018 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2019 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2020 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi to-faglig med sidefag i kemi eller matematik - optag 1. september 2016 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2017 Bachelor i datalogi | Odense 3 E20
BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2020 Bachelor i datalogi | Odense 3 E20
Ikke længere gældende per 31. august 2019 - BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2018 Bachelor i datalogi | Odense 3 E20
Ikke længere gældende per 31. august 2019: BA centralt fag i datalogi et-faglig - optag 1. september 2018 Bachelor i datalogi | Odense 3 E20
Ikke længere gældende pr. 31.aug 2020 - BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2018 og 2019 Bachelor i datalogi | Odense 3 E20
Ikke længere gældende pr. 31.august 2020: BA centralt fag i datalogi et-faglig - optag 1. september 2018 og 2019 Bachelor i datalogi | Odense 3 E20
Ikke længere gældende pr. 31.august 2020: BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2018 og 2019 Bachelor i datalogi | Odense 3 E20
KA Sidefag i datalogi for centralt fag i biologi, fysik, kemi og idræt og sundhed - optag 1. september 2016, 2017 og 2018 Kandidat i datalogi | Odense 3 E20
BA Sidefag i datalogi for central fag i fysik - optag 1. september 2016 og 2017 Bachelor i datalogi | Odense 5 E20
BA Sidefag i datalogi for central fag i matematik - optag 1. september 2016 og 2017 Bachelor i datalogi | Odense 5 E20
BA Sidefag i datalogi for central fag i matematik - optag 1. september 2018, 2019 og 2020 Bachelor i datalogi | Odense 5 E20
Ikke længere gældende per 31. august 2019 - BA Sidefag i datalogi for central fag i fysik - optag 1. september 2018 Bachelor i datalogi | Odense 5 E20
Ikke længere gældende per 31. august 2019 - BA Sidefag i datalogi for central fag i matematik - optag 1. september 2018 Bachelor i datalogi | Odense 5 E20
Ikke længere gældende pr 31.august 2020. BA Sidefag i datalogi for central fag i matematik - optag 1. september 2018, 2019 og 2020 Bachelor i datalogi | Odense 5 E20