DM548: Computerarkitektur og systemprogrammering

Det Naturvidenskabelige Studienævn

Undervisningssprog: 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: 14-03-2022


Varighed: 1 semester

Version: Godkendt - aktiv

Indgangskrav

Kurset kan ikke vælges hvis du har bestået, er tilmeldt eller har fulgt DM588: Computerarkitektur (7,5 ECTS), eller hvis DM588: Computerarkitektur (7,5 ECTS) indgår som obligatorisk i din studieordning.

Faglige forudsætninger

Stoffet fra DM550: Introduktion til Programmering (10 ECTS) forudsættes kendt.

Formål

Kurset introducerer den studerende til arkitekturen og organisationen af generelt anvendelige computere, fra logikniveauet over mikroprogramniveauet til det konventionelle ISA niveau. Desuden indføres de vigtige komponenter i lagerhierarkiet, kommunikations-arkitekturer og organiseringen af moderne pipelinede processorer. Derudover indføres de fundamentale aspekter af systemprogrammering.

Kurset bygger på kompetencer i programmering, concurrent programmering, algoritmer og datastrukturer, og giver et fagligt grundlag for at udvikle kompetencer i operativsystemer, netværk og sikkerhed, compiler-konstruktion og videregående systemprogrammering

I forhold til læringmålene i uddannelsens kompetenceprofil har kurset eksplicit fokus på:

  • viden om principper for konstruktion af computerhardware og styresystemer, herunder distribuerede og parallelle systemer.
  • at udvikle færdigheder i at programmere i flere typer programmeringssprog.
  • at udvikle færdigheder i at konstruere større softwaresystemer.
  • at udvikle færdigheder i at træffe og begrunde fagligt relaterede beslutninger.
  • at udvikle færdigheder i at beskrive, formulere og formidle problemstillinger og resultater til enten fagfæller og ikke-specialister eller samarbejdspartnere og brugere.
  • at give kompetence til at håndtere komplekse og udviklingsorienterede situationer i studie- og arbejdssammenhænge.
  • at give kompetence til at identificere egne læringsbehov og strukturere egen læring i forskellige læringsmiljøer.

Målbeskrivelse

Efter kurset forventes det at den studerende har opnået følgende.

Viden om

  • almindelige heltals- og flydende kommatals-repræsentationer.
  • arkitekturen af computere i form af abstraktionslag.
  • digital logik og Boolsk algebra.
  • mikroarkitekturer og brugen af parallellismei moderne processorer.
  • multikerne- og distribuerede arkitekturer.
  • instruktionsætarkitekturer.
  • assembly-sprog, herunder systemkald.
  • organisationen af hardwarekomponenter (processorer, hukommelse, kommunikationsveje, eksterne enheder, osv.)
  • I/O-enheder og afbrydelser (interrupts).
  • egenskaberne og begrænsningerne for de forskellige lagerkomponenter, herunder deres adresseringstruktur.

Færdigheder i at
  • fortolke elementære logikdiagrammer og sandhedstabeller, samt udtrykke funktionaliteten af basale processorkomponenter i form af sådanne diagrammer og tabeller.
  • fortolke almindelige repræsentationer for binære heltal og flydende kommatal, og konvertering mellem disse.
  • udtrykke funktionaliteten af en ISA-niveau instruktion ved fortolkning på en underliggende (mikro)arkitektur.
  • designe og implementere simple programmer i et assembly-sprog.
  • designe og implementere programmer i et systemprogrammeringssprog.

Kompetencer i at

  • vurdere ydeevnen af et flerniveau lagerhierarki.
  • forklare og diskutere udnyttelsen af parallelisme i moderne processorer, herunder brugen af pipelining, out-of-order udførsel, samt fordelingen af opgaver på flere funktionelle enheder.
  • forklare og diskutere den interne organisation og de interne kommunikationsveje på et overordnet plan, herunder kommunikation med ydre enheder samt afbrydelser fra disse.
  • vurdere den praktiske ydeevne for algoritmer.
  • opnå videregående viden om computerarkitektur.

Indhold

Kurset indeholder følgende faglige hovedområder.

  • Det digitale logikniveau, mikroarkitekturniveauet, herunder pipelining, cache-lagre, og andre ydelsesforbedringer.
  • ISA-niveauets instruktiontyper, -formater og adresseringsmetoder, datatyper og talrepræsentationer samt assembly-programmering.
  • Organisationen af computer-komponenter og deres sammenhæng.
  • Et systemprogrammeringssprog, herunder variabler og operatorer, funktioner, pointere, rekursion, I/O, og basale datastrukturer.

Litteratur

Se itslearning for pensumlister og yderligere litteraturhenvisninger.

Eksamensbestemmelser

Eksamenselement a)

Tidsmæssig placering

Efterår og januar

Udprøvninger

Portfolio og tests

EKA

N330005102

Censur

Ekstern prøve

Bedømmelse

7-trinsskala

Identifikation

Fulde navn og SDU brugernavn

Sprog

Følger, som udgangspunkt, undervisningssprog

Varighed

Skriftlig stedprøve 4 timer

Hjælpemidler

Alle almindelige hjælpemidler er tilladte fx lærebøger, egne noter, computerprogrammer som ikke benytter internettet m.v.  

Internet er ikke tilladt. Du må dog gå ind på kursets hjemmeside i itslearning i forbindelse med åbning af system "DE – Digital Eksamen". Noter fra kurset, som du ønsker at anvende som hjælpemidler, skal downloades til din computer senest dagen før eksamenen. Under eksamenen er det ikke sikkert at alt kursusmateriale er tilgængeligt for dig. 

ECTS-point

10

Uddybende information

Portfolio bestående af: Et antal opgaver afleveret undervejs i kurset samt en afsluttende skriftlig stedprøve (januar). 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.

Vejledende antal undervisningstimer

72 timer per semester

Undervisningsform

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

  • Introfase: 42 timer
  • Træningsfase: 30 timer, heraf, opgavetimer: 14 timer og laboratorieøvelser: 16 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 Algoritmer

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 2019, 2020, 2021 og 2022 Bachelor i datalogi | Odense 1 E22
BA Centralt fag datalogi et-faglig særligt forløb for datamatikere - optag 1. september 2020, 2021 og 2022 Bachelor i datalogi | Odense 1 E23
BA Centralt fag datalogi et-faglig særligt forløb for datamatikere - optag 1. september 2023 Bachelor i datalogi | Odense 1 E23
BA Centralt fag datalogi et-faglig særligt forløb for datamatikere - optag 1. september 2023 Bachelor i datalogi | Odense 1 E22
BA centralt fag i datalogi et-faglig - optag 1. september 2019 Bachelor i datalogi | Odense 3 E22
BA centralt fag i datalogi et-faglig - optag 1. september 2020 og 2021 Bachelor i datalogi | Odense 3 E23
BA centralt fag i datalogi et-faglig - optag 1. september 2020 og 2021 Bachelor i datalogi | Odense 3 E22
BA centralt fag i datalogi et-faglig - optag 1. september 2022 Bachelor i datalogi | Odense 3 E22
BA centralt fag i datalogi et-faglig - optag 1. september 2022 og 2023 Bachelor i datalogi | Odense 3 E23
BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2019 Bachelor i datalogi | Odense 3 E22
BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2020 og 2021 Bachelor i datalogi | Odense 3 E23
BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2020 og 2021 Bachelor i datalogi | Odense 3 E22
BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2022 Bachelor i datalogi | Odense 3 E22
BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2022 og 2023 Bachelor i datalogi | Odense 3 E23
BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2020 og 2021 Bachelor i datalogi | Odense 3 E22
BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2020 og 2021 Bachelor i datalogi | Odense 3 E23
BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2022 Bachelor i datalogi | Odense 3 E22
BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2022 og 2023 Bachelor i datalogi | Odense 3 E23
Ikke længere gældende pr. 31.aug 2020 - BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2019 Bachelor i datalogi | Odense 3 E22
Ikke længere gældende pr. 31.august 2020: BA centralt fag i datalogi et-faglig - optag 1. september 2019 Bachelor i datalogi | Odense 3 E22
Ikke længere gældende pr. 31.august 2020: BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2019 Bachelor i datalogi | Odense 3 E22
BA Sidefag i datalogi for central fag i matematik - optag 1. september 2019 og 2020 Bachelor i datalogi | Odense 5 E22
BA Sidefag i datalogi for central fag i matematik - optag 1. september 2020 Bachelor i datalogi | Odense 5 E23
Ikke længere gældende pr 31.august 2020. BA Sidefag i datalogi for central fag i matematik - optag 1. september 2019 og 2020 Bachelor i datalogi | Odense 5 E22
Ikke længere gældende pr 31.august 2020. BA Sidefag i datalogi for central fag i matematik - optag 1. september 2020 Bachelor i datalogi | Odense 5 E23
Ikke længere gældende pr. 31.august 2022: BA Sidefag i datalogi for central fag i matematik - optag 1. september 2019, 2020 og 2021 Bachelor i datalogi | Odense 5 E22
Ikke længere gældende pr. 31.august 2022: BA Sidefag i datalogi for central fag i matematik - optag 1. september 2020 og 2021 Bachelor i datalogi | Odense 5 E23

Overgangsordninger

Overgangsordninger beskriver, hvordan et kursus erstatter et andet kursus, når der ændres i et studieforløb.
Hvis der er lavet en overgangsordning for et kursus vil den fremgå af oversigten.
Se overgangsordninger for alle kurser på Det Naturvidenskabelige Fakultet.