DM548: Computerarkitektur og systemprogrammering
Indgangskrav
Faglige forudsætninger
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 og tests
EKA
Censur
Bedømmelse
Identifikation
Sprog
Varighed
Hjælpemidler
ECTS-point
Uddybende information
Vejledende antal undervisningstimer
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
Skemaoplysninger
Administrationsenhed
Team hos Uddannelsesjura & Registratur
Udbudssteder
Anbefalede studieforløb
Overgangsordninger
Se overgangsordninger for alle kurser på Det Naturvidenskabelige Fakultet.