Overordnede kursusmål
Computersystemer er blevet en integreret del af vores samfund. De
er grundlaget for en bred vifte af teknologier fra små enheder
(internet-of-things, smartphones, osv.) til store (servere, cloud,
osv.). I dette kursus undersøger vi, hvordan computere fungerer.
Mere specifikt studerer vi det tætte forhold mellem hardware og
software, der er nødvendigt for at udvikle effektive
computersystemer, og i processen lærer vi om mulighederne og
begrænsningerne ved moderne computersystemer.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Fortolke, hvordan data er repræsenteret i computersystemer for
tal, tegn, strenge, billeder og programmer.
- Modellére adfærden af software og hardware ved hjælp af
beregningsmodellen Finite State Machine with Datapath (FSMD).
- Udtrække kontrolflowgrafen og dataflowgrafen fra
softwareprogrammer og forklare deres rolle i
kompileringspipelinen.
- Udvikle, kompilere, fejlsøge, eksekvere og analysere programmer
skrevet i C-programmeringssproget rettet mod
små/ressourcebegrænsede systemer.
- Designe en simpel general-purpose processor, samt dedikerede
hardware acceleratorer på RTL-niveau, og derefter identificere
deres fordele og ulemper i specifikke anvendelser.
- Forklare hukommelseshierarkiet i en moderne computer baseret på
registre, caches, main memory og lager.
- Udvikle og simulere en del af en computerarkitektur baseret på
FSMD-modellen ved hjælp af Chisel HDL-sproget.
- Forklare og anvende principperne for synkronisering og
kommunikation mellem de forskellige komponenter i et
computersystem, samt mellem computersystemer.
- Analysere ydeevnen og energiforbruget af et softwareprogram og
simple hardwarearkitekturer, og analysere, hvordan
hardwareacceleratorer kan bruges til at opnå højere ydeevne.
- Forklare rollen og principperne for computernetværk og
kontrolsystemer.
Kursusindhold
Kurset har til formål at give en introduktion til computersystemer,
samt at give en grundlæggende forståelse af den
hardwareinfrastruktur, som softwaren kører på. Der lægges særlig
vægt på FSMD-beregningsmodellen og små/ressourcebegrænsede
systemer (såsom embedded og cyber-physical systems). Kurset er
opdelt i fire hovedafsnit: (1) modeller for beregning og software,
(2) hardwarearkitekturer, (3) design på systemniveau, og (4)
relaterede emner. FSMD-modellen bruges som en rød tråd mellem alle
sektionerne.
I første del af kurset gives et generelt overblik over
computersystemer med særligt fokus på betydningen af computing og
beregningsmodeller. Vi introducerer konceptet af en FSMD-model,
formålet med kontrol- og dataflowgrafer, det grundlæggende i
compilere, og formålet med instruction-set arkitekturer. Desuden
introducerer vi C-programmeringssproget rettet mod
små/ressourcebegrænsede systemer.
Den anden del af kurset er dedikeret til hardwarearkitekturer, og
præsenterer grundlæggende RTL-hardwarekomponenter, strukturen af
en general-purpose processor, og designet af simple
hardwareacceleratorer baseret på FSMD-modellen. Her introducerer vi
Chisel HDL-sproget til udvikling og simulering af en del af en
computerarkitektur baseret på FSMD-modellen.
Til slut vil tredje og fjerde del af kurset nå ind på
udfordringerne ved systemintegrering og performanceanalyse, og
efterfølgende give en introduktion til kontrolsystemer og
computernetværk.
Litteraturhenvisninger
"Embedded Systems Design: A Unified Hardware/Software
Introduction" af Frank Vahid og Tony Givargis, Wiley
Bemærkninger
Kurset gives på engelsk.
Sidst opdateret
02. maj, 2024