Computerarchitectuur

Vakbeschrijving Computerarchitectuur
Collegejaar: 2017-2018
Studiegidsnummer: 4032CMPA6
Docent(en):
  • dr. K. Rietveld
Voertaal: Nederlands
Blackboard: Nee
EC: 6.0
Niveau: 300
Periode: Semester 1
Onderwijstijd in uren
(excl. zelfstudie):
55:00 uur
  • Wel Keuzevak
  • Wel Contractonderwijs
  • Wel Exchange
  • Wel Study Abroad
  • Geen Avondonderwijs
  • Geen A-la-Carte en Aanschuifonderwijs
  • Geen Honours Class

Toegangseisen

Aanbevolen voorkennis: Programmeertechnieken, Digitale Technieken.

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 opgang hebben gemaakt.

In het bijbehorende practicum is er de mogelijkheid de opgedane kennis in de praktijk te brengen. Tijdens het practicum zal er ervaring worden opgedaan met het werken met "assembly language", het decoderen van machine instructies, caching optimalisaties en het gebruik van vectorinstructies. Als de tijd het toelaat zal er aandacht worden besteed aan het programmeren van GPGPU's.

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 LIACS 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 schriftelijk tentamen over de kennis en vaardigheden opgedaan bij het practicum. Dit cijfer telt voor een derde (1/3) mee. Om te kunnen slagen voor het praktische deel moeten er een klein aantal opdrachten worden ingeleverd en voldoende zijn bevonden.

Literatuur

Boek: Computer Architecture: A Quantitative Approach, Fifth Edition. John Hennessy, David Patterson. 2011. Morgan Kaufmann. ISBN-13: 978-0-12-383872-8

Aanmelden

Aanmelden via Usis: Selfservice > Studentencentrum > Inschrijven
Activiteitencodes te vinden via de facultaire website

Voor studenten die niet staan ingeschreven voor de bachelor Informatica is er een beperkte capaciteit. Neem contact op met de studieadviseur.

Contact

Onderwijscoördinator Informatica, Riet Derogee

Website

Computerarchitectuur

Talen