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. Vi vil
studere den tætte integration mellem hardware of software (HW/SW
codesign) som er nødvendig for at udvikle effektive indlejrede
computersystemer.
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.
- Beskrive hvordan data er repræsenteret i computersystemer.
- Forklare computermodellen Finite State Machine med Datapath
(FSMD) og hvordan den kan bruges til at modellere udførelsen af
både software og hardware.
- 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.
- Udvikle og simulere dele af en beregnende arkitektur ved hjælp
af FSMD-modellen udtrykt i et HDL sprog.
- Forklare de grundlæggende principper for synkronisering og
kommunikation indenfor såvel som mellem computersystemer.
- Analysere ydeevne og energiforbrug af et softwareprogram og
analysere hvordan hardware/software codesign can anvendes til at
opnå højere ydeevne.
- Forklare i generelle termer rolle og principper for
computernetværk, control systemer og distribuerede systemer.
- 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. 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 dele af beregnende
arkitektur 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 dække
computernetværkets og distribuerede computers rolle og principper,
som er grundlæggende koncepter for moderne computersystemer.
Derudover vil vi dække det grundlæggende kontrolsystemer, der
tegner sig for størstedelen af cyber-fysiske systemer, hvor
computersystemet interagerer med dets fysiske omgivelser.
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
05. maj, 2020