DM548: Computerarkitektur og systemprogrammering
Indgangskrav
Faglige forudsætninger
Stoffet fra DM550: 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
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
Eksamensbestemmelser
Eksamenselement a)
Tidsmæssig placering
Udprøvninger
Portfolio indeholdende: Projekter og skriftlig eksamen
EKA
Censur
Bedømmelse
Identifikation
Sprog
Varighed
Hjælpemidler
ECTS-point
Uddybende information
Eksamensformen ved reeksamen kan være en anden end eksamensformen ved den ordinære eksamen.
Vejledende antal undervisningstimer
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.