Toegangseisen
n.v.t.
Beschrijving
Basiskennis van computerarchitecturen is een vereiste om complexe softwaresystemen te kunnen ontwikkelen en optimaliseren, en voor het kunnen uitvoeren van onderzoek in het vakgebied computersystemen. In dit college bestuderen we de opbouw van moderne computerarchitecturen. We beginnen met een grondige introductie van de basisconcepten van computerarchitecturen: instruction set architectures, pipelining en memory hierarchy. We vervolgen onze studie door te kijken hoe instructies en processen almaar sneller verwerkt kunnen worden door het toepassen van oude en nieuwe hard- en softwarematige technieken. Te denken valt aan superscalar execution, out-of-order execution, branch prediction, vector processing en multi-core architecturen. Zowel de voordelen als beperkingen van deze technieken zullen aan bod komen. Tevens zullen we aandacht besteden aan GPGPU architecturen, welke in de afgelopen jaren een zeer grote opmars hebben gemaakt.
In het bijbehorende practicum is er de mogelijkheid de opgedane kennis in de praktijk te brengen. Tijdens het practicum zal er onder andere ervaring worden opgedaan met het werken met "assembly language", het decoderen van machine instructies, caching optimalisaties en het programmeren van GPGPU's.
Aanbevolen voorkennis: Programmeertechnieken, Digitale Technieken.
Leerdoelen
Het kunnen onderscheiden van verschillende klassen van computers. Het begrijpen hoe computer performance wordt gemeten en gerapporteerd. Inzicht hebben in de kwantitatieve principes van het ontwerp van computersystemen. Kunnen werken met verschillende Instruction Set Architectures en correspondenties hiertussen aanwijzen. Het kunnen omschrijven van een moderne "memory hierarchy" en begrijpen hoe hiervan gebruik kan worden gemaakt door middel van cache optimalisaties in software. Het kunnen uitleggen van verschillende technieken die worden gebruikt voor het verkrijgen van instruction-level parallelism en hun beperkingen. Inzicht verkrijgen in vector processing en de toepassing van deze techniek in SIMD instructies en GPGPU's. Voordelen en problemen met multi-core architecturen kunnen benoemen.
Rooster
Het meest recente rooster is te vinden op de Studenten-website:
Onderwijsvorm
hoorcollege, werkcollege
Toetsing
De toetsing bestaat uit twee delen: een theoretisch en een praktisch deel. Het cijfer voor beide delen moet voldoende zijn om te kunnen slagen voor het vak.
Het theoretische deel wordt getoetst met een schriftelijk tentamen aan het eind van het semester en telt voor twee derde (2/3) mee. De tentamenstof zal bekend worden gemaakt op de website van het vak.
Het cijfer voor het praktische deel wordt bepaald aan de hand van een drietal onderdelen. Er wordt gebruik gemaakt van verschillende toetsvormen, zowel een individuele schriftelijke toets als een programmeeropdracht en verslaglegging. Het practicumcijfer is een gewogen gemiddelde over de cijfers die zijn behaald over de drie onderdelen, en telt als een derde (1/3) mee voor het eindcijfer. De opdrachten met bijbehorende toetsvorm en gewicht voor het practicumcijfer worden aan het begin van het semester bekend gemaakt op de website van het vak. Om te kunnen slagen voor het praktische deel moeten alle opdrachten zijn ingeleverd en moet het uiteindelijke practicumcijfer voldoende zijn.
Literatuur
Boek: Computer Architecture: A Quantitative Approach, Sixth Edition. John Hennessy, David Patterson. 2017. Morgan Kaufmann. ISBN-13: 978-0128119051
Blackboard
Ja
Aanmelden
Aanmelden via Usis: Selfservice > Studentencentrum > Inschrijven Activiteitencodes te vinden via de facultaire website
Contact
Onderwijscoördinator Informatica, Riet Derogee