02155 Computerarkitektur
2024/2025
Overordnede kursusmål
At give deltagerne en dyberegående hardwarenær viden om og
forståelse af en computers funktion og interne struktur, en
tilhørende viden om og forståelse af de forhold som påvirker
køretiden for programmer samt en forståelse for samspillet mellem
hardware og software. Da processorer i dag indgår i alle former for
elektronisk udstyr, er kurset relevant for såvel softwareudviklere
som (elektro)ingeniører, der designer såkaldte indlejrede systemer,
hvor det ofte er vigtigt at udnytte processorernes ressourcer bedst
muligt for at optimere pris, hastighed eller energiforbrug.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Beskrive den interne struktur af en processor, herunder
pipeline, cache lager, lagerhierarki, virtuelt lager, busser,
etc.
- Forklare disse elementers funktion og forklare hvorledes de
influerer på køretiden for programmer, og kompleksiteten (areal,
hastighed, energiforbrug) af den underliggende hardware.
- Anvende denne forståelse til at beregne og optimere køretiden
af programmer; dels små specifikke programstumper og dels større
programmer for hvilke der er fastlagt væsentlige nøgleparametre
som, f.eks. cash-miss rates etc.
- Forklare parametrene throughput og latenstid, og forklare deres
indbyrdes sammenhæng.
- Redegøre for hvorledes hardware (bl.a. teknologi og arkitektur)
og software (bl.a. instruktionssæt, compiler og operativsystem)
udgør et hele, og at interfacet mellem de to er et centralt element
i ethvert system.
- Give eksempler på tradeoffs og optimeringer der involverer både
software og hardware.
- Redegøre for instruktionssæt-arkitekturen af en typisk
processor.
- Dokumentere projektarbejde i form af en teknisk rapport, som
henvender sig til en udenforstående fagfælle, og som overholder
sædvanlige krav til form og indhold/abstraktionsniveau.
Kursusindhold
Introduktion af maskinstruktur og instruktionssæt. Intern struktur
af processoren i en moderne RISC-computer (kontrolenhed,
beregningsenhed og pipelining). Samspil mellem maskinstruktur og
instruktionssæt. Lagerhierarkier og lageradministration (cache
teknikker og virtual memory teknikker). Orientering om bussystemer
og ydre enheder. Orientering om nye arkitekturer, som i dag typisk
udnytter flere former for parallelisme.
Sideløbende med forelæsningerne arbejdes den med opgaver og øvelser
og der udføres an afsluttende projektopgave. Projektopgaven kan
f.eks. bestå i at analysere og optimere et programs køretid under
hensyntagen til processorens pipelinestruktur og lagerhierarki ved
hjælp af simuleringsværktøjer.
Sidst opdateret
14. juni, 2024