Computerarchitectuur. Ch 4. Data-Level Parallelism

Maat: px
Weergave met pagina beginnen:

Download "Computerarchitectuur. Ch 4. Data-Level Parallelism"

Transcriptie

1 Computerarchitectuur Ch 4. Data-Level Parallelism Kristian Rietveld

2 Data-Level Parallelism Nu we de limieten hebben gezien van parallelisme tussen instructies, kunnen we parallelisme 'vinden' in data? - Data-level parallelism - Het draait hier om stukken data die in parallel kunnen worden verwerkt. Voorbeelden waar DLP te vinden is: - Matrix codes (wetenschappelijke codes) Image & video processing Sound processing...

3 Data-Level Parallelism (2) Hoe kunnen we data-level parallelism implementeren? Met behulp van multi-cores: thread-level parallelism. Zie ook hoofdstuk 5. Zouden we een instructie dezelfde operatie kunnen laten toepassen op meerdere elementen tegelijkertijd? - Single Instruction Multiple Data (SIMD)

4 SIMD Het idee van SIMD is dat we steeds 1 instructie specificeren die werkt op meerdere data-elementen in parallel. Deze start dus meerdere operaties per instructie. Minder controle logica nodig, beter energiegebruik (vandaar vaak te vinden in smart phones e.d.). Programma's blijven sequentieel en een parallelle speedup wordt gehaald door parallelle data operaties. - Prettig voor de programmeurs; het is sequentieel makkelijker denken dan parallel.

5 SIMD (2) We zullen 3 vormen van SIMD bekijken: 1) Vectorarchitecturen 2) Multimedia SIMD extensies (MMX ('96), SSE, AVX (allen Intel), AltiVec (PowerPC), NEON (ARM)) 3) Graphics Processing Units (GPUs)

6 Vector Architectures De ontwikkeling van klassieke vectorarchitecturen gaat terug tot de Cray-I (1976). In het boek wordt een VMIPS ISA geïntroduceerd, dat lijkt op de ISA van Cray-I: Grote register file, met vector registers. - 8 registers met elk 64 elementen. - Veel read/write ports. Vector Functional Unit, volledig gepipelined. Vector instructies die werken op volledige vectoren. - addvv.d V1,V2,V3 Optelling van vectoren V2, V3, resultaat naar V1. - addvs.d V1,V2,F0 Tel scalair F0 op bij elk element V2, resultaat naar V1.

7 Vectorinstructies Vectorinstructies kunnen op verschillende manieren worden geïmplementeerd. Het aantal beschikbare functional units kan verschillen: - Het is eenvoudig om brede units te maken die draaien op lage kloksnelheid. Tussen elementen binnen eenzelfde instructie kunnen geen hazards ontstaan, dus geen checks nodig (bij superscalar wel). - Of smalle units en pipelining toepassen. De Cray-I had 12 pipelined functional units. In het algemeen kan een hoge bandbreedte worden gehaald zonder gebruik te maken van dynamic scheduling.

8 Vectorinstructies (2) We bekijken een voorbeeld (DAXPY): Y = a * X + Y - We gaan uit van vectoren met lengte 64. L.D DADDIU Loop: L.D MUL.D L.D ADD.D S.D DADDIU DADDIU DSUBU BNEZ F0, a R4,Rx,#512 F2,0(Rx) F2,F2,F0 F4,0(Ry) F4,F4,F2 F4,0(Ry) Rx,Rx,#8 Ry,Ry,#8 R20,R4,Rx R20,Loop

9 Vectorinstructies (2) We bekijken een voorbeeld (DAXPY): Y = a * X + Y - We gaan uit van vectoren met lengte 64. L.D DADDIU Loop: L.D MUL.D L.D ADD.D S.D DADDIU DADDIU DSUBU BNEZ F0, a R4,Rx,#512 F2,0(Rx) F2,F2,F0 F4,0(Ry) F4,F4,F2 F4,0(Ry) Rx,Rx,#8 Ry,Ry,#8 R20,R4,Rx R20,Loop L.D LV MULVS.D LV ADDVV.D SV F0,a V1,Rx V2,V1,F0 V3,Ry V4,V2,V3 V4,Ry

10 Vectorinstructies (3) Loops die mbv vectorinstructies kunnen worden geschreven noemen we vectorizable loops. Pipeline interlocks: - In de MIPS code moet elke add wachten voor mul en elke sd voor add. - In VMIPS: de vectorinstructie heeft alleen een stall voor het eerste element, daarna blijft de pipeline gevuld. - We zien dus een pipeline stall per vector instructie ipv per vector element. Forwarding in vector architecturen: - Forwarding kan worden toegepast tussen instructies die op dezelfde elementen opereren: men noemt dit chaining.

11 Terminologie Vector functional units hebben vaak meerdere parallelle pipelines: dit noemt men lanes. - Per clock cycle worden 2 of meer resultaten geproduceerd. Een convoy is een set van vectorinstructies die samen kunnen worden uitgevoerd. Middels chaining kan een vectoroperatie worden gestart zodra de eerste individuele elementen beschikbaar zijn. - Instructies die RAW hazards hebben kunnen zo toch in dezelfde convoy zitten. Chime: de tijd die nodig is om een convoy te verwerken. - Exacte tijd afhankelijk van target architectuur. Executietijd kan worden geschat door het aantal convoys te tellen (m convoys -> m chimes). - Hier wordt wel uitgegaan van lange vectoren.

12 Multiple lanes Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. 4.4.

13 Multiple lanes (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. 4.5.

14 Masking Loops met if-condities kunnen we niet zomaar vectoriseren. We moeten wel de control dependence correct afhandelen. for (i = 0; i < 64; i++) if (X[i]!= 0) X[i] = X[i] Y[i]; Vaak wordt dit opgelost middels mask registers, een Boolean vector. - Het Boolean-element geeft telkens aan of een operatie voor dat element wel of niet moet worden uitgevoerd. - Elementen waarvoor de mask nul is kosten nog wel executietijd Vaak draait de loop nog steeds sneller dan een scalar (non-vector) variant.

15 Gather/Scatter Bij een vector-load laden we elementen die achter elkaar in het geheugen staan of volgens een vaste stride. Wat nu in het geval van indirectie? - Dus de array-indices om te benaderen staan in een andere array/vector. for (i = 0; i < n; i++) A[K[i]] = A[K[i]] + C[M[i]]; Hiervoor bestaan er speciale gather/scatter instructies: - Gather: load aan de hand van een index vector. - Scatter: tegenovergestelde operatie.

16 Multimedia SIMD Extensions

17 Multimedia SIMD Vele general-purpose processoren bevatten multimedia SIMD extensies. Introductie MMX in Wat gebeurde er? - x86 had toentertijd al 64-bit floating-point registers. - Veel graphics gebruikten 8-bit pixels. - Met MMX werd het mogelijk om via de 64-bit FP registers ook 8 8-bit of 4 16-bit operaties tegelijkertijd uit te voeren. In feite werken multimedia SIMD instructies op kleine vectoren. - Daarnaast ontbreken vele geavanceerde functionaliteiten van vectorarchitecturen, zoals strided vector load, scatter/gather.

18 Multimedia SIMD (2) Waarom nuttig / waarom geïntroduceerd? Er hoeft maar weinig aan bestaande ALU te worden toegevoegd, dus goedkoop om te implementeren. Door de kleine vectoren zijn er ook (veel) minder hoge eisen aan geheugenbandbreedte vergeleken met vectorachitecturen. Het doel was om via hand-gecodeerde libraries programma's te versnellen. - Er zijn compilers die vectorcode kunnen genereren, maar automatische vectorisatie is zeer beperkt. - Dit alles blijft toch handwerk... en zelfs dan moeilijk om winst te halen.

19 Multimedia SIMD (3) Een evolutie van SIMD: MMX, bit vectors. Pentium Pro / Pentium II era. SSE (Streaming SIMD Extensions), Aparte register set, 128-bits. Pentium III era. - SSE2 2001, SSE3 2004, SSE4, AVX (Advanced Vector Extensions), bit vectors. Intel core era. - AVX2 voegt een gather instructie toe, maar geen scatter. Verwacht: AVX met 512-bit en later 1024-bit vectors. In ARM hebben we NEON, PowerPC had AltiVec.

20 Multimedia SIMD (4) Hoe programmeren we met behulp van SIMD extensies? Je kunt zelf assembly code schrijven. Iets eenvoudiger: gebruik maken van intrinsics. - Dit zijn eigenlijk de SIMD instructies verpakt als C functies, zodat je deze in C programma's kunt gebruiken zonder zelf inline assembly te schrijven. - Compiler zorgt voor een verdere vertaling naar assembly. - Zie verder het practicum. Als je peak performance wilt halen, blijf je aangewezen op assembly om zelf de instructievolgorde te tunen, enz.

21 Roofline Model Met behulp van het roofline model kunnen we de potentiële performance van verschillende SIMD architecturen vergelijken. We maken één grafiek, waarin we afbeelden: - Floating-point performance (peak) - Memory performance (max. bandbreedte) - Arithmetic intensity (FLOPS / bytes retrieved from memory) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig

22 Roofline Model (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig Diagonaal: berekening is memory-bound. Vlakke lijn: berekening is compute-bound

23 Graphics Processing Units

24 GPUs Waar zijn GPUs vandaan gekomen? - Eigenlijk vanuit een hele andere hoek. - Volledig ontworpen voor graphics. Begon met 3dFX eind jaren 90. Wat gebeurt er allemaal bij het renderen van 3-d graphics? - 3-d modellen opgebouwd uit polygonen / driehoeken. Coördinaattransformaties. Driehoeken uitlijnen op een grid van pixels. Driehoeken inkleuren. Driehoeken voorzien van schaduw / textures. Allemaal (eenvoudige) data parallele taken!

25 GPUs (2) GPUs zijn in feite ontworpen voor het uitvoeren van dezelfde taken op zeer veel data-elementen. - In het bijzonder eenvoudige taken: dus simpele programma's. Op een gegeven moment is men gaan kijken of de GPU ook buiten de graphics kon worden toegepast. - Matrix berekeningen doen via OpenGL textures (midden 2000). - Shaders programmeren. - En met de introductie van CUDA en OpenCL werd het gebruik van GPUs buiten graphics echt serieus. GPGPU programming: General Purpose GPU programming. Door CUDA heeft NVidia een zeer grote voorsprong wat betreft GPGPU programming.

26 GPUs (3) Vergeleken met CPUs is een GPU totaal anders georganiseerd. - Minder control logic. - Veel meer functional units. - Moderne kaarten hebben > 3000 simpele cores. De grootste moeilijkheid bij het begrijpen van GPUs is alle verschillende jargon die wordt gebruikt. - Het boek biedt een tabel aan met de NVidia-termen en de meer klassiekere benamingen die het boek gebruikt.

27 GPU programmeren Hoe programmeren we GPUs? De GPU is een aparte kaart binnen een computersysteem en wordt aangestuurd door de CPU (host). We hebben een library nodig om de GPU aan te sturen: - CUDA of OpenCL. We schrijven functies die op de GPU zullen worden uitgevoerd ( kernels ). Het geheugen van de GPU is apart, we moeten expliciet data tussen de CPU en GPU geheugens verplaatsen.

28 Werkverdeling Wanneer alles klaar staat, starten we duizenden threads op, die dezelfde kernel gaan uitvoeren. - Maar ieder op andere data! - Om threads uit te kunnen voeren, worden deze gegroepeerd in groepen van 32 threads (warps). - SIMT: Single Instruction Multiple Threads. Speciale manier om het werk te verdelen: - We starten een grid dat bestaat uit een aantal thread blocks. - Een thread block wordt toegewezen aan een bepaalde processor. - Een thread block bestaat uit een gegeven aantal threads, die in groepjes van 32 op een processor worden uitgevoerd.

29 Werkverdeling (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig

30 Structuur GPU Een streaming multiprocessor (SM) kan 32 threads (een warp) tegelijkertijd uitvoeren. - Eigenlijk een 32-lane SIMD processor. - Elk van de 32 threads voert steeds dezelfde instructie uit. Een SM krijgt een geheel thread block toegewezen. - De hardware kan automatisch wisselen tussen blokken van 32 threads binnen hetzelfde thread block. - Multithreading wordt gebruikt om geheugen latency te verbergen! - Het boek noemt een SM een multithreaded SIMD processor. Een GPU bestaat uit meerdere streaming multiprocessors. - En bevat een thread block scheduler om thread blocks toe te wijzen aan SMs. - We zien hier dus terug: multi-core, multi-threading en SIMD.

31 Structuur GPU (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig

32 Structuur GPU (3) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig

33 NVIDIA Fermi architectuur Structuur van een SM. Twee sets van 16 SIMD lanes. Twee schedulers & dispatch units. Er worden telkens 2 threads gekozen, van ieder wordt een instructie naar een SIMD lane gestuurd. Dit gebeurt iedere 2 clock cycles. Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig

34 NVIDIA Fermi architectuur (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig

35 GTX 980 Maxwell microarchitectuur 2048 CUDA cores Links een GM Graphics Processing Clusters. 16 SMs Source: GeForce GTX 980 Whitepaper

36 Per SM: 128 CUDA cores. Per SM: 4 warp schedulers. Een warp scheduler kan 2 instructies per per warp per clock cycle dispatchen. DP units niet weergegeven (4 per SM). Source: GeForce GTX 980 Whitepaper

37 Source: NVIDIA P100 Architecture Whitepaper NVIDIA Pascal microarchitectuur CUDA cores (Pieksnelheid ~10 TFLOPS, single-precision) Ter vergelijking: om 1 TFLOPS te behalen was in 1996 nog een grote supercomputer nodig.

38 Branching in GPUs Bij het uitvoeren van 32 threads, moeten alle threads steeds dezelfde instructie uitvoeren. Hoe gaat dat met if-statements? Waar de helft van de threads true heeft en de andere helft false? - Predicated instructies: true -threads slaan het resultaat van de berekening wel op, false -threads niet. Conditional branches in het algemeen: - Threads die de branch wel nemen voeren die uit, de andere threads wachten tot de control flow weer samenkomt. - Komt de efficientie dus niet ten goede. - Uitgebreide branching op GPUs vermijden.

39 Organisatie van het geheugen Elke SM heeft een on-chip lokaal geheugen ( shared memory ) dat door threads binnen eenzelfde thread block kan worden gedeeld. Daarnaast is er het normale off-chip GPU geheugen. - Elke thread heeft daarin wat prive opslag voor een stack, etc. - Om dit te versnellen wordt een kleine cache gebruikt. Er is geen hele grote cache: - Het doel van de cache is in het algemeen niet om latency te verbergen. - Bandbreedte wordt gekozen boven latency en latency wordt verborgen via multithreading. - In plaats van transistoren voor grote caches in te zetten, worden deze ingezet voor meer functional units.

40 Organisatie van het geheugen (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig

41 Organisatie van het geheugen (3) Bij het optimaliseren van GPU codes komt vaak de term coalescing langs. Stel er wordt een load instructie uitgevoerd, dan voeren alle threads die tegelijkertijd uit. Er is speciale hardware die nagaat of de adressen van de load instructies van de verschillende threads binnen hetzelfde geheugenblok vallen. Wanneer dit zo is, worden al deze loads samengenomen in 1 load request dat naar het geheugen gaat. - Bandbreedte gaat hierdoor omhoog, overhead omlaag. Datastructuren worden zo opgeslagen zodat er gebruik kan worden gemaakt van coalescing.

42 Gebruiken van CUDA Hoe programmeren we zelf een GPU met behulp van CUDA? We maken gebruik van een speciale superset van C/C++; deze bevat speciale CUDA-extensies. - Source code geven we vaak de extensie ".cu". Hierdoor moeten we gebruik maken van een speciale C/C++compiler die in de CUDA Toolkit zit: nvcc. Met behulp van deze extensies schrijven we een of meerdere "kernels" die moeten gaan draaien op de GPU. Tevens moeten we de data transfers tussen de CPU en GPU regelen.

43 Data transfer Speciale functies om "device memory" te alloceren en data te kopieren tussen CPU en GPU: /* CPU */ float *b = (float *)malloc(n * sizeof(float)); cudamalloc(&b_dev, N * sizeof(float)); cudamemcpy(b_dev, b, N * sizeof(float), cudamemcpyhosttodevice); /* en de andere kant op */ cudamemcpy(b, b_dev, N * sizeof(float), cudamemcpydevicetohost); cudafree(b_dev);

44 Kernel schrijven Denk eerst na hoe je het werk over de threads wilt verdelen. Daarna kun je de kernel schrijven. Bijvoorbeeld voor een matrix-manipulatie waar we een element met 2 vermenigvuldigen en een waarde uit een vector erbij optellen. We kunnen er voor kiezen om te beginnen voor om voor elk matrix element een thread te maken. global void add_vec_gpu1(float A[N][N], const float b[n]) { int i = blockidx.x * blockdim.x + threadidx.x; int j = blockidx.y * blockdim.y + threadidx.y; } A[i][j] = A[i][j] * (float)2 + b[i]; Met behulp van shared kun je variabelen (ook arrays) declareren die worden gedeeld tussen alle threads in een thread block.

45 Kernel opstarten Om de kernel op te starten moeten we aangegeven uit hoeveel threads een thread block bestaat en uit hoeveel blocks een grid bestaat. Dit mag worden aangegeven in 1, 2 of 3 dimensies. Voor ons voorbeeld: we hebben een thread per matrix element nodig. Stel we gebruiken 16 x 16 = 256 threads per thread block. We hebben dan een grid van N/16 bij N/16 threads blocks. We starten dan de kernel als volgt op: dim3 thread_block_size(16, 16); dim3 n_thread_blocks(n/thread_block_size.x, N/thread_block_size.y); add_vec_gpu1<<<n_thread_blocks, thread_block_size>>>(a_dev, b_dev);

46 Compileren en testen We kunnen het programma nu compileren en testen. nvcc -O3 -o test test.cu Bij het compileren wordt er automatisch PTX assembly en een PTX binary gemaakt aan de hand van de kernel codes. Je kunt het programma uitvoeren door gewoon "./test" op te starten. Je kunt het programma ook onder "nvprof" uitvoeren, dit geeft je allerlei statistieken: nvprof./test

47 Hoe nu verder Ok, het werkt en hoe nu verder? Nu begint het echte analyseren en optimaliseren. Bijvoorbeeld: de thread blocks anders inrichten. We kiezen ervoor om per thread block 512 matrix elementen in dezelfde rij te verwerken. En verder: alle non-coalesced memory accesses proberen te elimineren.

48 Loop-Level Parallelism

49 Loop-Level Parallelism Voor DLP hebben we het liefst loops die volledig in parallel kunnen worden uitgevoerd. - Alle iteraties zijn onafhankelijk van elkaar. - Er zijn geen loop-carried dependences. for (i = 0; i < 1000; i++) x[i] = x[i] + s;

50 Loop-Level Parallelism (2) Soms valt er niets aan loop-carried dependences te doen, zoals in dit voorbeeld. - Eerste statement legt de volgorde van de iteraties geheel vast; A[i] wordt gelezen die in de voorgaande iteratie is gegenereerd. - Stel we zouden alleen de dependence op A[i+1] hebben tussen statement 1 en 2, dan zouden de loop iteraties wel in parallel kunnen worden uitgevoerd. Dit komt omdat deze dependence binnen eenzelfde loop iteratie valt. for (i = 0; i < 100; i++) { A[i+1] = A[i] + C[i]; B[i+1] = B[i] + A[i+1]; }

51 Loop-Level Parallelism (3) for (i = 0; i < 100; i++) { A[i] = A[i] + B[i]; B[i+1] = C[i] + D[i]; } Soms kan met een transformatie een loop worden omgezet in een loop die wel in parallel kan worden uitgevoerd. A[0] = A[0] + B[0]; for (i = 0; i < 100; i++) { B[i+1] = C[i] + D[i]; A[i+1] = A[i+1] + B[i+1]; } B[100] = C[99] + D[99];

52 Loop-Level Parallelism (4) Compilers kunnen dergelijke loop transformaties uitvoeren. - Via dependence analysis proberen zij de dependences in een loop in kaart te brengen. Problemen: pointers, indirect access, data die in verschillende functies wordt gebruikt. - Op basis hiervan kunnen bepaalde transformaties wel/niet worden uitgevoerd. True dependences moeten in tact blijven. Anti en output dependences kunnen worden verwijderd via renaming (vergelijk register renaming). Qua transformaties: denk aan loop (zo veel mogelijk) parallel maken, vectoriseren, loop interchange, loop blocking, enz.

53 Tot slot Een aantal jaren geleden al een groot verschil en dit verschil wordt alleen maar groter. SP DP Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. 4.28

54 Tot slot (2) (Kon helaas geen recenter overzicht vinden.)

55 Tot slot: trends Het lijkt erop dat het aantal SIMD lanes groeit met dezelfde snelheid als het aantal cores op een chip groeit. Meer ideëen van vectorarchitecturen zullen hun weg vinden naar SIMD extensies. - We zien dit al met de toevoeging van gather in AVX2. Structuur GPU nog relatief eenvoudig, verwachting is dat hier nog ingewikkeldere/agressievere technieken gaan worden geïmplementeerd. - Daarnaast ook speciale functionaliteiten voor nieuwe toepassingen: e.g. deep learning.

Computerarchitectuur. Ch 4. Data-Level Parallelism

Computerarchitectuur. Ch 4. Data-Level Parallelism Computerarchitectuur Ch 4. Data-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Data-Level Parallelism Nu we de limieten hebben gezien van parallelisme tussen instructies, kunnen we parallelisme

Nadere informatie

Computerarchitectuur. Terugblik / discussie / oefenopgaven

Computerarchitectuur. Terugblik / discussie / oefenopgaven Computerarchitectuur Terugblik / discussie / oefenopgaven Kristian Rietveld http://ca.liacs.nl/ Trends & Performance Voorkennis We bouwden een 4-bit microprocessor bij Digitale Technieken. Bij computerarchitectuur

Nadere informatie

Uitwerking oefententamen Computerarchitectuur December 2016

Uitwerking oefententamen Computerarchitectuur December 2016 Uitwerking oefententamen Computerarchitectuur December 2016 I.a. De overall CPI kan worden berekend met de formule n IC i CPI Instruction count CPI i voor de ratio vullen we telkens de geven frequentie

Nadere informatie

Computerarchitectuur. Hoofdstuk 3: Instruction-Level Parallelism

Computerarchitectuur. Hoofdstuk 3: Instruction-Level Parallelism Computerarchitectuur Hoofdstuk 3: Instruction-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Instruction-level Parallelism Doel: gebruik maken van potentiële overlap tussen opeenvolgende instructies.

Nadere informatie

Computerarchitectuur. H&P App. C. Pipelining

Computerarchitectuur. H&P App. C. Pipelining Computerarchitectuur H&P App. C. Pipelining Kristian Rietveld http://ca.liacs.nl/ Motivatie Pipelining is een techniek die tegenwoordig in iedere CPU wordt gebruikt om de performance te verbeteren. Idee:

Nadere informatie

Computerarchitectuur. H&P Ch 5. Thread-Level Parallelism

Computerarchitectuur. H&P Ch 5. Thread-Level Parallelism Computerarchitectuur H&P Ch 5. Thread-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Thread-Level Parallelism In het geval van thread-level parallelism (TLP) gaan we uit van meerdere threads.

Nadere informatie

PyCuda. oftewel massief parallel rekenen. Jasper Spaans, Fox-IT PUN meeting

PyCuda. oftewel massief parallel rekenen. Jasper Spaans, Fox-IT PUN meeting PyCuda oftewel massief parallel rekenen Jasper Spaans, Fox-IT PUN meeting 2009-09-24 Cuda Techniek om berekingen op je GPU te kunnen uitvoeren ( GPGPU ) Cuda Techniek om berekingen op je

Nadere informatie

High Performance Computing

High Performance Computing High Performance Computing Kristian Rietveld (krietvel@liacs.nl, kamer 138) Groep Computer Systems High-Performance Computing Optimizing compilers (generieke codes, maar ook specifieke rekenkernels). Parallel

Nadere informatie

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen?? Vragen?? Vandaag Hoofdstuk 4: threads (tentamenstof : 4.1 t/m 4.2) Kleine Opgaven 4.1 (niet alleen ja of nee, ook waarom!) en 4.4 inleveren maandag Centrale begrippen hoofdstuk 3 processen proces state:

Nadere informatie

College 13: Patterns (2)

College 13: Patterns (2) Concurrency Gerard Tel / Jacco Bikker - november 2016 februari 2017 College 13: Patterns (2) Welkom! genda: Collective Operations Reduce Scan Stencil Recurrence Concurrency college 13 Patterns (2) 3 Collectives

Nadere informatie

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo) informatica hardware overzicht moederbord CPU RAM GPU architectuur (vwo) 1 moederbord basis van de computer componenten & aansluitingen chipset Northbridge (snel) Southbridge ("traag") bussen FSB/HTB moederbord

Nadere informatie

Digitale en analoge technieken

Digitale en analoge technieken Digitale en analoge technieken Peter Slaets February 14, 2006 Peter Slaets () Digitale en analoge technieken February 14, 2006 1 / 33 Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen

Nadere informatie

High Performance Computing

High Performance Computing High Performance Computing Kristian Rietveld (krietvel@liacs.nl, kamer 138) Groep Computer Systems - Embedded systems - Specifieke software mappen op specfieke hardware. - Hardware synthesis. - Real-time

Nadere informatie

college 2: Introductie

college 2: Introductie Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 college 2: Welkom! Agenda: Concepten en patronen Multi-threading in C# Concurrency college 2 3 Concurrency college 2 4 Jacco Bikker j.bikker@uu.nl

Nadere informatie

Computerarchitectuur. H&P Ch 2. Memory Hierarchy Design

Computerarchitectuur. H&P Ch 2. Memory Hierarchy Design Computerarchitectuur H&P Ch 2. Memory Hierarchy Design Kristian Rietveld http://ca.liacs.nl/ Motivatie Hoe dichter bij de CPU, hoe sneller het geheugen. - Maar ook: kleiner en duurder. Programmeurs willen

Nadere informatie

Beter, Sneller, Mooier. Processoren 12 januari 2015

Beter, Sneller, Mooier. Processoren 12 januari 2015 Beter, Sneller, Mooier Processoren 12 januari 2015 Beter! Sneller! Krachtigere CPU: maak instructies die meer doen Snellere CPU: pipeline, out-of-order execution Sneller RAM: cache meer mogelijkheden...

Nadere informatie

Computerarchitectuur 2016 Inleveropdracht 3: Exploiting Memory Hierarchies in Modern Systems

Computerarchitectuur 2016 Inleveropdracht 3: Exploiting Memory Hierarchies in Modern Systems Computerarchitectuur 2016 Inleveropdracht 3: Exploiting Memory Hierarchies in Modern Systems Gesuggereerde Deadline: zondag 27 november 2016 Zoals we in het hoorcollege uitgebreid hebben besproken spelen

Nadere informatie

Computerarchitectuur. H&P Appendix A: Instruction Set Principles

Computerarchitectuur. H&P Appendix A: Instruction Set Principles Computerarchitectuur H&P Appendix A: Instruction Set Principles Kristian Rietveld http://ca.liacs.nl/ Instruction Sets Een processor moet precies worden verteld wat deze moet doen. Dit staat opgeschreven

Nadere informatie

Computerarchitectuur. H&P Appendix A: Instruction Set Principles

Computerarchitectuur. H&P Appendix A: Instruction Set Principles Computerarchitectuur H&P Appendix A: Instruction Set Principles Kristian Rietveld http://ca.liacs.nl/ Instruction Sets Een processor moet precies worden verteld wat deze moet doen. Dit staat opgeschreven

Nadere informatie

Tentamen Computersystemen

Tentamen Computersystemen Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:

Nadere informatie

1 Aanvulling cosy deeltijd

1 Aanvulling cosy deeltijd 1 Aanvulling cosy deeltijd 1.1 Multiprocessor versus multicomputer Het kenmerk van een multiprocessor is dat meer CPU hetzelfde geheugen delen. Voordeel van deze aanpak is het relatief eenvoudige programmeermodel.

Nadere informatie

Computerarchitectuur. App. B. Review of Memory Hierarchy

Computerarchitectuur. App. B. Review of Memory Hierarchy Computerarchitectuur App. B. Review of Memory Hierarchy Kristian Rietveld http://ca.liacs.nl/ Caching De memory wall is een zeer groot probleem dat vraagt om oplossingen. De gebruikelijke oplossing is

Nadere informatie

Concurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom!

Concurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom! Concurrency Gerard Tel / Jacco Bikker - november 2015 januari 2016 Welkom! Agenda: Concepten en patronen Multi-threading in C# Concurrency college 1 3 Alles Parallel Opteron 6300 16 cores i7 4 cores Atom

Nadere informatie

Computerarchitectuur en netwerken Toets 1 4 okt

Computerarchitectuur en netwerken Toets 1 4 okt 11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer

Nadere informatie

Multi-core systemen. door Alexander Melchior

Multi-core systemen. door Alexander Melchior Multi-core systemen Multi-cpu & Multi-core Multi cpu & Multi core door Alexander Melchior Toevoeging aan GDP Overdragen Capita Selecta Waarom? Een stukje geschiedenis 2005: Introductie eerste consumenten

Nadere informatie

Studentnummer:... Opleiding:... a) Met welke term wordt het interface tussen software en hardware van een processor aangeduid?

Studentnummer:... Opleiding:... a) Met welke term wordt het interface tussen software en hardware van een processor aangeduid? Computerorganisatie (213110) Dinsdag 15 augustus 2000, 13.30 17.00 uur 7 bladzijden met 6 opgaven 3 bladzijden met documentatie Bij dit tentamen mag geen gebruik worden gemaakt van boeken, dictaten of

Nadere informatie

Concurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom!

Concurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom! Concurrency Gerard Tel / Jacco Bikker - november 2015 januari 2016 Welkom! Agenda: Wat vooraf ging Taken en Data Hardware Performance Theorie Concurrency college 3 Hardware 3 Previously in Concurrency

Nadere informatie

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en netwerken. Memory management Assembler programmering Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 10 september 2018 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management

Nadere informatie

Computerarchitectuur. Hoofdstuk 1: Introductie

Computerarchitectuur. Hoofdstuk 1: Introductie Computerarchitectuur Hoofdstuk 1: Introductie Kristian Rietveld http://ca.liacs.nl/ Inhoud Bestuderen van de opbouw van moderne computerarchitecturen. Wat gebeurt er allemaal binnen een Central Processing

Nadere informatie

Computer Architectuur 2016 Handleiding bij de CUDA opdracht

Computer Architectuur 2016 Handleiding bij de CUDA opdracht Computer Architectuur 2016 Handleiding bij de CUDA opdracht Voor opdracht vier kijken we naar een eenvoudige image filter pipeline en naar een mogelijke versnelling hiervan met behulp van de GPU. Bij een

Nadere informatie

College 4: Mechanismen

College 4: Mechanismen Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 College 4: Mechanismen Welkom! Agenda: Wat vooraf ging Hardware Electronic components are submerged into a bath of dielectric heat transfer

Nadere informatie

Cover Page. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications through code generation Issue Date:

Cover Page. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications through code generation Issue Date: Cover Page The handle http://hdl.handle.net/1887/18622 holds various files of this Leiden University dissertation. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications

Nadere informatie

From High-Level Language to language of the hardware

From High-Level Language to language of the hardware Overzichtscollege 1 Abstractieniveaus Een computersysteem bestaat uit een hiërarchie van lagen Elke laag heeft een goed gedefinieerde interface naar de bovenliggende en onderliggende lagen Essentieel bij

Nadere informatie

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2006-2007 Dinsdag 16 januari 2007, 14u00 Prof. dr. ir. L. Eeckhout Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder blad Uw naam en

Nadere informatie

EECS 452 Lecture 10 Chip Multiprocessors. Instructor: Gokhan Memik EECS Dept., Northwestern University

EECS 452 Lecture 10 Chip Multiprocessors. Instructor: Gokhan Memik EECS Dept., Northwestern University EECS 452 Lecture 10 Chip Multiprocessors Instructor: Gokhan Memik EECS Dept., Northwestern University Chip-Multiprocessors Place multiple, relatively simple cores on a single chip E.g., 32 RISC cores on

Nadere informatie

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2008-2009 Maandag 30 januari 2009, 14u00 Prof. dr. ir. L. Eeckhout Voornaam: Naam: Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder

Nadere informatie

College 15: Monte-Carlo

College 15: Monte-Carlo Concurrency Gerard Tel / Jacco Bikker - november 2016 februari 2017 College 15: Monte-Carlo Welkom! Agenda: Monte-Carlo Heterogeneous Computing Brigade Toets 2 Concurrency college 15 Monte-Carlo 3 Monte-Carlo

Nadere informatie

6 Methodology. afgelopen twee jaar de grafische processor ontdekt als snelle en goedkope bron van verwerkingscapaciteit.

6 Methodology. afgelopen twee jaar de grafische processor ontdekt als snelle en goedkope bron van verwerkingscapaciteit. 6 Methodology In de wetenschappelijke wereld, bij banken en bij ingenieursbureau s heeft men de grafische processor ontdekt als razendsnelle aanvulling op de gewone CPU. Die prestaties krijg je echter

Nadere informatie

Java virtuele machine JVM

Java virtuele machine JVM Implementatie Java Java virtuele machine JVM Java programma vertaald naar byte code instructies Byte code instructies uitgevoerd door JVM JVM is processor architectuur kan in principe in hardware worden

Nadere informatie

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en netwerken. Memory management Assembler programmering Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 12 september 2016 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management

Nadere informatie

De Parallelle Revolutie van GPU's en CPU's

De Parallelle Revolutie van GPU's en CPU's De Parallelle Revolutie van GPU's en CPU's George van Venrooij Organic Vectory BV Bits&Chips Embedded Systemen 18 November 2011 Eindhoven Een nieuw speelveld Desktop PC anno 2005 2 GHz CPU (1 core, 6 GFLOP/s)

Nadere informatie

Een interrupt is een hardwaremechanisme dat een extern apparaat in staat stelt om de CPU een signaal te sturen wanneer de I/O operatie voltooid is.

Een interrupt is een hardwaremechanisme dat een extern apparaat in staat stelt om de CPU een signaal te sturen wanneer de I/O operatie voltooid is. Procesbeheer: interrupts en uitvoering van besturingssystemen. a) Beschrijf de werking en de bedoeling van interrupts: Hoe deze door de processorhardware en het besturingssysteem worden verwerkt? Waarom

Nadere informatie

Herconfigureerbare Hardware in Ieders Bereik

Herconfigureerbare Hardware in Ieders Bereik Herconfigureerbare Hardware in Ieders Bereik Prof. Dirk Stroobandt Universiteit Gent Vakgroep ELIS Onderzoeksgroep PARIS http://www.elis.ugent.be/~dstr/ Overzicht Nood aan digitale verwerking van gegevens

Nadere informatie

Tim Mallezie Architectuur van besturingssystemen: Vraag A2.

Tim Mallezie Architectuur van besturingssystemen: Vraag A2. Procesbeheer: kenmerken van moderne besturingssystemen. 1. Bespreek de (drie) meest typische kenmerken van moderne besturingssystemen. 2. In hoeverre beantwoorden UNIX, Linux en Windows NT hieraan? Geef

Nadere informatie

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 Herhaling: Booleaanse algebra (B = {0,1},., +, ) Elke Booleaanse functie f: B n B m kan met., +, geschreven worden Met Gates (electronische

Nadere informatie

Hoe werkt een rekenmachine?

Hoe werkt een rekenmachine? Hoe werkt een rekenmachine? Uit welke hardware-componenten bestaat een rekenmachine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachine I Constante getallen Instructies van het type

Nadere informatie

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Geheugenbeheer. ICT Infrastructuren 2 december 2013 Geheugenbeheer ICT Infrastructuren 2 december 2013 Doelen van geheugenbeheer Reloca>e (flexibel gebruik van geheugen) Bescherming Gedeeld/gemeenschappelijk geheugen Logische indeling van procesonderdelen

Nadere informatie

Hardware Beginners. Processoren. Door Theo De Paepe

Hardware Beginners. Processoren. Door Theo De Paepe Hardware Beginners Processoren Merken en types Intel AMD * Pentium * Pentium II * Pentium III * Pentium 4 * Celeron * K6 * K7 / Athlon (64 BIT) * Duron * Sempron Opbouw En nog: * FPU * Datalijnen * Adreslijnen

Nadere informatie

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder Een.NET-besturingssysteemtoolkit Discovering Cosmos Sijmen J. Mulder Agenda Boek 1 Cosmos: a very short introduction Boek 2 Modern Operating Systems Pauze Boek 3 The Design and Implementation of the Cosmos

Nadere informatie

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering

Nadere informatie

computerarchitectuur antwoorden

computerarchitectuur antwoorden 2017 computerarchitectuur antwoorden F. Vonk versie 1 2-8-2017 inhoudsopgave hardware... - 3 - CPU... - 3 - bussen... - 4 - bridges... - 4 - RAM... - 4 - hardware architectuur... - 5 - Dit werk is gelicenseerd

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

Concurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom!

Concurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom! Concurrency Gerard Tel / Jacco Bikker - november 2015 januari 2016 Welkom! Agenda: Context Heterogeneous Rendering Load Balancing Application Conclusion Concurrency college 15 Heterogeen 3 Context Concurrency

Nadere informatie

Nederlandse samenvatting (Dutch summary)

Nederlandse samenvatting (Dutch summary) Nederlandse samenvatting (Dutch summary) Ditproefschriftpresenteerteen raamwerk voorhetontwikkelenvanparallellestreaming applicaties voor heterogene architecturen met meerdere rekeneenheden op een chip.

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (2)

De Arduino-microcontroller in de motorvoertuigentechniek (2) De Arduino-microcontroller in de motorvoertuigentechniek (2) E. Gernaat (ISBN 978-90-79302-11-6) 1 Procescomputer 1.1 Microprocessoren algemeen De informatie-verwerking zoals is behandeld, is vrijwel geheel

Nadere informatie

De computer als processor

De computer als processor De computer als processor DE FYSIEKE COMPUTER Componenten van de computerconfiguratie Toetsenbord Muis Scanner Microfoon (Extern geheugen) Invoerapparaten Uitvoerapparaten Monitor Printer Plotter Luidspreker

Nadere informatie

Inhoudsopgave. Optimalisatie van de mmips. Forwarding optie 1. Design flow. implementation

Inhoudsopgave. Optimalisatie van de mmips. Forwarding optie 1. Design flow. implementation 2 Inhoudsopgave Optimalisatie van de mmips pc Sander Stuijk Veel gestelde vragen Hoe moet ik forwarding implementeren? Hoe moet ik clipping implementeren? Waarom is mijn simulatie zo traag? Hoe kan ik

Nadere informatie

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A.

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A. Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 51-52, Appendix A1) Processes zijn meestal niet onafhankelijk Bijvoorbeeld: 2 processen

Nadere informatie

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015 Microcontroller Uit Wikipedia A microcontroller (sometimes abbreviated µc or uc) is a small computer on a single integrated circuit

Nadere informatie

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik Rick van der Zwet 4 augustus 2010 Samenvatting Dit schrijven zal

Nadere informatie

College 10: OpenCL (1)

College 10: OpenCL (1) Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 College 10: OpenCL (1) Welkom! Previously in Concurrency Concurrency College 8 Patronen 3 SIMD System.Numerics.Vectors namespace System.Numerics

Nadere informatie

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012

Nadere informatie

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen.

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen. Flex_Rooster WERKBOEK INTRODUCTIE iseries Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen. ICS Opleidingen Niets uit deze uitgave mag worden verveelvoudigd en/of openbaar gemaakt

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Woensdag 22 juni 2005, 8u30 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle  holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/28464 holds various files of this Leiden University dissertation Author: Jeroen Bédorf Title: The gravitational billion body problem / Het miljard deeltjes

Nadere informatie

Tentamen Computerorganisatie in aug. 1999, uur. N.B.: Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 9

Tentamen Computerorganisatie in aug. 1999, uur. N.B.: Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 9 TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Subfaculteit Technische Wiskunde en Informatica Werkeenheid Technische Informatica Tentamen Computerorganisatie in101 27 aug. 1999,

Nadere informatie

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC Inhoud vandaag Interrupts Algemeen ARM7 AIC Interrupts Wat is een interrupt? Een interrupt is een onderbreking van de huidige bezigheden ten gevolge van een externe gebeurtenis, zodanig dat de bezigheden

Nadere informatie

Assembly en Assemblers. Processoren 5 januari 2015

Assembly en Assemblers. Processoren 5 januari 2015 Assembly en Assemblers Processoren 5 januari 2015 Doel van vandaag Ik heb al losse eindjes over assembly verteld en een voorbeeldprogramma doorlopen. vandaag: algemeen + systematisch overzicht Programmeertalen

Nadere informatie

Inleiding Practicum Operating Systems

Inleiding Practicum Operating Systems Inleiding Practicum Operating Systems Mattias Holm & Kristian Rietveld Doel - In komende 3 practica zullen we gaan werken met een custom OS. - Kort introduceren van: - Hardware. - Kernel. - Tools. - De

Nadere informatie

OPTIMALISATIE VAN MPEG-4-WAVELETCODE VOOR DE TRIMEDIAPROCESSOR

OPTIMALISATIE VAN MPEG-4-WAVELETCODE VOOR DE TRIMEDIAPROCESSOR E99/EL/VLSI1 Diepenbeek, 1 juni 1999 OPTIMALISATIE VAN MPEG-4-WAVELETCODE VOOR DE TRIMEDIAPROCESSOR Abstract van het eindwerk van Bert BRANS en Benjamin GOYVAERTS Industrieel Ingenieur Elektriciteit optie

Nadere informatie

11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector.

11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector. NOT NOT NOT NOT NOT NOT 9-09-7 Intro MMI The Digital World 2 Peter van Kranenburg Vandaag: Terugblik vorige week Werking CPU Soorten instructies Werking CPU Cache Pipelining Digitale representatie Tekst

Nadere informatie

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

OpenVPN(-NL) Performance. Jan Just Keijser 9 November 2017

OpenVPN(-NL) Performance. Jan Just Keijser 9 November 2017 OpenVPN(-NL) Performance Jan Just Keijser 9 November 2017 Wie ben ik? Werkzaam in de ICT sinds 1995 Werk bij Nikhef als Grid System Engineer sinds 2005 In 2004 OpenVPN ontdekt Sinds die tijd gebruiker

Nadere informatie

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Pipeline processor One cycle machine Calculator File of registers Assembly

Nadere informatie

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset 2148 - idem

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset 2148 - idem Tentamen A2 (deel b) 24-06-2004 Geef (liefst beknopte en heldere) motivatie bij je antwoorden; dus niet enkel ja of nee antwoorden, maar ook waarom. Geef van berekeningen niet alleen het eindresultaat,

Nadere informatie

Tweede Toets Concurrency 2 februari 2017, , Educ-β.

Tweede Toets Concurrency 2 februari 2017, , Educ-β. Tweede Toets Concurrency 2 februari 2017, 8.30 10.30, Educ-β. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe

Nadere informatie

Beter, Sneller, Mooier. Processoren 27 maart 2012

Beter, Sneller, Mooier. Processoren 27 maart 2012 Beter, Sneller, Mooier Processoren 27 maart 2012 Beter! Sneller! Krach:gere CPU: microcode Snellere CPU: pipeline, out- of- order execu:on Sneller RAM: cache meer mogelijkheden... Welke extra s kan processor-

Nadere informatie

Digitale technieken Deeltoets II

Digitale technieken Deeltoets II Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

Nadere informatie

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

Nadere informatie

Hoofdstuk 7. Computerarchitectuur

Hoofdstuk 7. Computerarchitectuur Hoofdstuk 7 Computerarchitectuur 1 controlebus CPU MEMORY I/O databus adresbus Figuur 71 Schematische opbouw van een computersysteem 8 Figuur 72 Een busverbinding Buslijn Out E A In Out E B In Out E C

Nadere informatie

2 Algemene opbouw van een computersysteem

2 Algemene opbouw van een computersysteem Procescomputer E. Gernaat 1 Microprocessoren algemeen Informatie-verwerking zoals behandeld is momenteel vrijwel geheel overgenomen door microprocessoren. Wanneer we voortborduren op het idee van combinatorische

Nadere informatie

' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken.

' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken. Tentamen Operating Systems Dinsdag 14 juni 2016,10:00-13:00 Examinator: dr. K. F. D. Rietveld ' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files 1 Introductie In deze oefening zal je je LCD display leren aansturen. Je controleert deze display door er instructies naar te

Nadere informatie

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen ICT Infrastructuren: Processen en Threads 18 november 2013 David N. Jansen Datum en Ajd van werkcollege na overleg met de aanwezigen: donderdag 8:45 10:30 Leerdoel voor vandaag. Stallings hoofdst 2 4 Hoofddoelen

Nadere informatie

Welke wordt het? Ga je voor snelheid, of wordt het een minder dure uitgave om het nieuwe millennium in te gaan.

Welke wordt het? Ga je voor snelheid, of wordt het een minder dure uitgave om het nieuwe millennium in te gaan. Werkstuk door een scholier 3082 woorden 23 mei 2001 8,3 113 keer beoordeeld Vak Informatica Zelfs als je 3 jaar geen 1 PC tijdschrift gelezen hebt, weet iedereen toch dat Intel en AMD beide weer nieuwe

Nadere informatie

Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading

Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading Geheugen en Adressering Binding Geheugen (main memory, primary storage) is noodzakelijk voor de uitvoering van programma's. te beschouwen als array van adresseerbare bytes (of woorden). verschillende processen

Nadere informatie

Hardware. Word. Anna van Kommer M3A

Hardware. Word. Anna van Kommer M3A Hardware Word Anna van Kommer M3A Inhoudsopgave Pagina Inleiding... 2 Hoofdstuk 1: Het Beeldscherm... 3 Hoofdstuk 2: De processor... 4 Hoofdstuk 3: Het geheugen... 5 Hoofdstuk 4: De harde schijf... 6 Hoofdstuk

Nadere informatie

Computerarchitectuur en Netwerken. Computerarchitectuur

Computerarchitectuur en Netwerken. Computerarchitectuur Computerarchitectuur en Netwerken 1 Computerarchitectuur Lennart Herlaar 2 september 2015 Opbouw van het vak Eerst (6 keer) over de opbouw van computer en operating system Collegedictaat Systeemarchitectuur

Nadere informatie

ASUS DESKTOP GT51CH-BE016T 2 099,00. Kenmerken COMPUTRADE. Artikelcode : ITASGT51CHBE016

ASUS DESKTOP GT51CH-BE016T 2 099,00. Kenmerken COMPUTRADE. Artikelcode : ITASGT51CHBE016 ASUS DESKTOP GT51CH-BE016T Artikelcode : ITASGT51CHBE016 ASUS ROG GT51CH-BE016T. Frequentie van processor: 4,2 GHz, Processorfamilie: Zevende generatie Intel Core i7, Processormodel: i7-7700k. Intern geheugen:

Nadere informatie

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Uitleg Welkom bij de Beverwedstrijd 2006 Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Je krijgt 5 vragen van niveau A, 5 vragen van niveau B en 5 vragen van niveau C. Wij denken

Nadere informatie

Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen

Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen Memory Management Process control information Entry point to program Process Control Block Verdelen geheugen over meerdere processen Program Branch instruction Virtual Memory Data Reference to data Processen

Nadere informatie

MSI DESKTOP INFINITE 8RC-259EU 1 499,00. Kenmerken. D-Ware. Artikelcode : ITMIINFINITE259

MSI DESKTOP INFINITE 8RC-259EU 1 499,00. Kenmerken. D-Ware. Artikelcode : ITMIINFINITE259 MSI DESKTOP INFINITE 8RC-259EU Artikelcode : ITMIINFINITE259 MSI Infinite 8RC-259EU. Frequentie van processor: 3,2 GHz, Processorfamilie: Intel 8ste generatie Core i7, Processormodel: i7-8700. Intern geheugen:

Nadere informatie

IN1805 I Operating System Concepten

IN1805 I Operating System Concepten IN1805 I Operating System Concepten Hoofdstuk 12: Mass-storage structure 9-1 Secondary storage (1) voornamelijk disks kleinst leesbare eenheid: sector plaats van een sector volledig bepaald door: drive

Nadere informatie

College 11: Game Engines

College 11: Game Engines Concurrency Gerard Tel / Jacco Bikker - november 2016 februari 2017 College 11: Game Engines Welkom! Agenda: A Brief History Of Valve s Source Engine, 2007 id Tech 5, 2009 Bungie s Destiny, 2015 Naughty

Nadere informatie

Studiewijzer BACHELOR INFORMATICA 2015-2016

Studiewijzer BACHELOR INFORMATICA 2015-2016 Studiewijzer BACHELOR INFORMATICA 2015-2016 Opleiding Vak Studiejaar, Semester, Periode Coördinator(en) Docent Practicum docenten Assistenten Studielast (EC) Vakcode : Bachelor Informatica : Architectuur

Nadere informatie

4EE11 Project Programmeren voor W. College 2, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

4EE11 Project Programmeren voor W. College 2, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 4EE11 Project Programmeren voor W College 2, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Terugblik Functies Organisatie (architectuur) van programma s Arrays Structuren

Nadere informatie

Digitale technieken Microprocessoren

Digitale technieken Microprocessoren Digitale technieken Microprocessoren ir. Patrick Colleman Inhoudstafel Inhoudstafel. Afkortingen. Inleiding - voorwoord 1 Hoofdstuk 1 : Voorstelling van getallen en karakters. 2 1.1 Voorstelling van binaire

Nadere informatie

Uitwerking Tentamen Operating Systems Maandag 15 juni 2015 P1 P2 P3 P4 P5 P1 P3 P5 P4 P2 P1 P3 P5 P3. Opgave 1

Uitwerking Tentamen Operating Systems Maandag 15 juni 2015 P1 P2 P3 P4 P5 P1 P3 P5 P4 P2 P1 P3 P5 P3. Opgave 1 Uitwerking Tentamen Operating Systems Maandag 15 juni 2015 Belangrijk: de gegeven antwoorden vormen één mogelijke uitwerking van het tentamen. Echter zijn er bij vele vragen meerdere correcte antwoorden

Nadere informatie

Asus vivobook N705FD-GC064T-BE 1 349,00. Kenmerken. Artikelcode : ITASN705FNGC064

Asus vivobook N705FD-GC064T-BE 1 349,00. Kenmerken. Artikelcode : ITASN705FNGC064 Asus vivobook N705FD-GC064T-BE Artikelcode : ITASN705FNGC064 ASUS VivoBook Pro N705FD-GC064T-BE. Producttype: Notebook, Vormfactor: Clamshell. Processorfamilie: Intel 8ste generatie Core i7, Processormodel:

Nadere informatie