Overordnede kursusmål
Computersystemer er blevet en integreret del af vores samfund. De
er grundlaget for en bred vifte af teknologier fra
Internet-of-Things og Smartphones til Skyen. I dette kursus vil vi
studere, hvordan moderne computere virker. Vi vil undersøge
computerens begrænsninger, samt hvilke muligheder den giver.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Forklare i generelle termer computersystemarkitekturen for
generelle processorer, applikationsspecifikke
instruktionssætprocessorer og dedikerede hardwareaccelerator
processorer og give eksempler på, hvor de anvendes.
- Forklare hukommelseshierarkiet for en moderne computer med
processoren, cacheniveauer, hukommelse og opbevaring.
- Udvikle, kompilere, debugge, udføre og analysere programmer ved
hjælp af programmeringssproget C.
- Forklare hvordan compileren, assembleren og linkeren bruges til
at oprette eksekverbare filer.
- Beskrive hvordan data er repræsenteret i computersystemer.
- Analysere ydeevne og energiforbrug af et softwareprogram og
give eksempler på kildekodstransformationer, som compileren kan
udføre for at opnå højere ydeevne.
- Forklare computermodellen Finite State Machine med Datapath
(FSMD) og hvordan den kan bruges til at modellere udførelsen af
både software og hardware.
- Udvikle og simulere en processorarkitektur baseret på et enkelt
instruktionssæt ved hjælp af FSMD-modellen.
- Forklare de grundlæggende principper for synkronisering og
kommunikation indenfor såvel som mellem computersystemer.
- Forklare OSI-modelens begreber og hvordan det bruges til at
kommunikere mellem computersystemer.
- Udvikle et sensorsystem, hvor sensordata præsenteres på et
fjernsystem via en webserver ved hjælp af sockets.
- Skrive en teknisk rapport som dokumenterer resultater og
analyser på en klar og præcis form
Kursusindhold
I dette kursus vil vi studere, hvordan computere udfører programmer
og manipulere data, og udforske de involverede værktøjer og
metoder. Vi vil studere, hvad værktøjerne, som en compiler, gør, og
vi vil træne i at bruge debuggere til at finde og fjerne fejl fra
vores programmer. Vi vil introducere programmeringssproget C, som
stadig er det dominerende sprog til programmering af moderne
indlejrede og cyber-fysiske systemer.
Computere består af flere dele, hvor processoren uden tvivl er den
vigtigste. For at opnå en solid forståelse af, hvordan computere
opfører sig, vil vi i kurset studere, hvordan en generaliseret
processor udfører programmer. Vi vil også studere, hvordan
programmer, herunder variabelt indhold, er kodet for at kunne
eksekveres. Endelig, vil vi udvikle og simulere en simpel
mikroprocessor og studerer dens ydeevne.
De fleste moderne computere er forbundet i store netværk. I mange
tilfælde er det utænkeligt at have computere uden adgang til
netværk, såsom internettet. Vi vil i kurset studere, hvordan
computernetværk grundlæggende fungere, og hvordan du skriver
programmer, der gør det muligt for computere at kommunikere via
internettet, men også Internet-of-Things.
Litteraturhenvisninger
"Embedded Systems Design: A Unified Hardware/Software
Introduction" af Frank Vahid og Tony Givargis, Wiley
Bemærkninger
Kurset gives delvist på engelsk.
Sidst opdateret
04. maj, 2020