hardware F. Vonk versie

Vergelijkbare documenten
Informatica gaat net zo min over computers als astronomie gaat over telescopen. (Edsger W. Dijkstra)

computerarchitectuur antwoorden

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

computerarchitectuur F. Vonk versie

hardware - antwoorden

Klas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek

Een desktopcomputer kan uit de volgende onderdelen zijn opgebouwd:

De computer als processor

-Een stukje geschiedenis van de PC (personal computer)

assembleertaal F. Vonk versie

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B

Hardware. Word. Anna van Kommer M3A

talstelsels F. Vonk versie

van PSD naar JavaScript

GameMaker Language. F. Vonk versie

computernetwerken - antwoorden

Jen Kegels, Eveline De Wilde, Inge Platteaux, Tamara Van Marcke. Hardware. De computer in een oogopslag. 1 / 11 Cursusontwikkeling

Digitale en analoge technieken

Android apps met App Inventor 2 antwoorden

Hoofdstuk 2. De Von Neumann-architectuur

Naam: Oumaima Bekour Klas: M4b ICT De Lange. Hardware

talstelsels F. Vonk versie

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

Wat is een computer? Wanneer is de pc uitgevonden? Wat hebben de volgende bedrijven met elkaar te maken IBM, Microsoft, Adobe, Apple, Intel, AMD?

bug fixen F. Vonk versie

Ekt1. Computer bouwen

Windows Training voor 50-plussers. PC50plus trainingen Eikbosserweg AK Hilversum tel:

algoritmiek - antwoorden

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Een desktopcomputer kan uit de volgende onderdelen zijn opgebouwd:

Hardware. Robert Groen. Jim van Dijk. 13 september 2013 M44 ITTL

7,3. Samenvatting door een scholier 1961 woorden 16 januari keer beoordeeld. Informatica Informatica actief

De Arduino-microcontroller in de motorvoertuigentechniek (2)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

Verslag over computers

Hardware Beginners. Processoren. Door Theo De Paepe

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Windows Basis - Herman Van den Borre 1

Wat zien we in deze cursus

2 Algemene opbouw van een computersysteem

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

WINDOWS 8. Windows Training voor 50-plussers

Van: Pakize Saygili en Tiffany Trampe. Docent: Meester de Lange. Klas: m3b.

logische schakelingen & logica

Een spoedcursus python

intro informatica F. Vonk versie

PWS informatica. F. Vonk versie

Packard Bell Chop D10. Zubin Mathoera & Maarten van Mensvoort

Naam: Mohamed Markouch Naam: Faizal Lartey Naam: Zumer Cankaya Klas: M44 ITTL. Docent: Meneer De Lange.

Hoe werkt een rekenmachine?

Microsoft Windows Vista installatiegids.

STAGEDAG SAM DIEPSTRATEN

Het lijkt zo simpel: je voert een adres in, je browser toont een webpagina, je bladert er doorheen... Hoe kan dit allemaal? INVOER VERWERKING UITVOER

HET BESTURINGSSYSTEEM

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Hardware-software Co-design

Assembly en Assemblers. Processoren 5 januari 2015

Verder zijn er een aantal producten die je hierop kan aansluiten, hier zijn een aantal producten:

Les B-04 Het moederbord

1 Aanvulling cosy deeltijd

MS Word opzet verslag

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Nieuwe computer en printer?

Theorie Informatica. Inhoud: 1. Systeem 2. Programmeren 3. Informatiesystemen 4. Internet 5. Besturingssystemen 6. Theorie bij praktijk

De samenvatting van hoofdstuk 3 van enigma

Inhoudsopgave. Aradhana Gangadien

Desktop, Laptop, Netbook, Ultrabook or Tablet? Which is best for what? Keuzes maken

Computertechniek vorige examens

USB Webserver installatie en gebruik

Raspberry Pi VOOR KIDS. Richard Wentk

Friesland College Leeuwarden

Werkblad H1 Hard en Software

Les B-03 Technologie: de werking van de processor

De allereerste Intel microprocessor de i4004 uit 1971

Multi-core systemen. door Alexander Melchior

1 computers (hardware)

Microsoft Windows XP Professional installatiegids.

Programmeren met Arduino-software

Een stop-motion film maken

logische schakelingen & logica antwoorden

LESBRIEF HARDWARE. OPDRACHTEN Hierin vind je alle opdrachten die bij de module Hardware horen. Klas 2

BEGINNER JAVA Inhoudsopgave

COMPUTERVAARDIGHEDEN EN PROGRAMMEREN

digitale vaardigheid 101 antwoorden

Computerarchitectuur. App. B. Review of Memory Hierarchy

1. Uw computer leren kennen

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

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Spreekbeurt Informatica Computers

Een schone installatie van Windows 10 uitvoeren met een hulpprogramma

Mediawijsheid wat zit er in mijn computer?

PSD Turtle. Om op een goede manier een programma te schrijven wordt er ook een algoritme gevolgd. Dit algoritme bestaat uit de volgende stappen/fasen:

Rekenen aan wortels Werkblad =

In te vullen tabellen.

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Uitwerking oefententamen Computerarchitectuur December 2016

Handleiding pc bouwen.

De Computer 15 mei 2018

Hoe werkt een computer precies?

Transcriptie:

2015 hardware F. Vonk versie 3 24-11-2015

inhoudsopgave 1. inleiding... - 2-2. hardware... - 3-3. moederbord... - 4 - bussen... - 5 - cpu... - 5 - bridges... - 6 - voorbeelden... - 6 - RAM... - 9-4. CPU... - 11-5. RAM... - 15-6. hardware architectuur (vwo)... - 18 - de werking van de CPU... - 18 - architectuurmodellen... - 22-7. wat heb je geleerd... - 26 - Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding NietCommercieel GelijkDelen 3.0 Unported licentie Deze module is deels overgenomen uit Hoofdstuk 3 van de informatica methode van Remie Woudt. De afbeelding op het voorblad is verkregen via INFOwrs. Copyright 2010 INFOwrs Serviços em informatica. - 1 -

1. inleiding Informatica gaat net zo min over computers als astronomie gaat over telescopen. (Edsger W. Dijkstra) Om informatica toe te passen en "tot leven te brengen" hebben we computer hardware (computers) nodig. Bovendien kunnen we met computers een heleboel leuke dingen doen. We kunnen ze onder andere programmeren en om dat te kunnen moeten we snappen hoe ze werken. Welkom bij de module hardware. In deze module behandelen we de essentiële componenten die je in computers vindt en die belangrijk zijn als we een computer willen programmeren. Ook de samenwerking tussen deze componenten is belangrijk. Let op, de vwo stof over hardware architectuur is geen toets- en schoolexamenstof voor havo! In deze module kom je opgaves tegen die je moet maken om de lesstof te verwerken. De antwoorden kunnen in de les besproken worden. opgave Opgaves in blauw moet je maken. Let op, links in dit document hebben een rode kleur. Veel plezier en succes. - 2 -

2. hardware Hardware gaat over de computer en alles wat je erin kunt stoppen of eraan kunt hangen. Hardware, het woord zegt het al, is iets wat "hard" is, wat aangeraakt kan worden. De tegenhanger is software. Software kun je niet aanraken, kun je niet vastpakken. Hoe zit het dan met een CD met een programma erop? Inderdaad, de CD kun je aanraken. Maar de CD is niet de software, het is alleen maar de drager van de software. Misschien is het duidelijker als je bedenkt dat je software ook kunt downloaden. Dan weet je dat het weliswaar via jouw internet aansluiting jouw computer binnengaat, maar dat je het toch niet kunt vastpakken. Het hoeft ook niet alleen om computerprogramma's te gaan. Ook een gedownloade film kun je als software zien. Pas wanneer je de film op een DVD brandt en afspeelt op een DVD speler kun je hem zien. Jouw DVD speler is hardware. Hardware zorgt ervoor dat je software kunt gebruiken. Het verschil is overigens lastig. Want als je een computer koopt zitten daar al kleine stukjes software in gebakken. Een computer kan niet eens opstarten zonder software. Dergelijke software wordt dan ook niet via een externe bron ingelezen maar zit permanent in de hardware opgeslagen. Een voorbeeld hiervan zijn de BIOS en de POST. De POST is de Power On Self- Test die wordt uitgevoerd om te controleren dat er geen problemen met de hardware van een computer is. Welke componenten van de computer gecontroleerd moeten worden leest de POST uit de BIOS (Basic Input and Output System). Hardware kun je op allerlei manieren in soorten opdelen. Een veelgebruikte manier is de volgende: interne hardware; de onderdelen die zich in de computerkast bevinden en daaraan verwante dataopslagmedia randapparatuur; de onderdelen die op de computerkast aangesloten worden In de volgende hoofdstukken gaan we de belangrijkste onderdelen in meer detail behandelen. opgave 2.1 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) De BIOS en POST zijn essentieel bij het opstarten van een PC. b) Bij het opstarten van de PC roept de BIOS de POST aan. c) De POST is een stuk hardware. d) Software is altijd nuttig, ook als je geen hardware hebt. - 3 -

3. moederbord Het moederbord is, als je in het binnenste van een computer kijkt, de grote vlakke plaat waarop alle onderdelen of aansluitingen voor onderdelen zijn gemonteerd. Eigenlijk verbindt het moederbord alle onderdelen (vaak componenten genoemd) met elkaar. Dat doet het moederbord door middel van de Northbridge, de Southbridge en de diverse bussen. De bridges worden verderop besproken. Bussen vormen de verbindingen tussen de componenten van de PC. De opbouw van het moederbord en de bussen wordt voor een deel bepaald door het merk en type van de CPU die erop aangesloten kan worden. Figuur 1: de architectuur van een moederbord 1 In hoofdlijnen komt de architectuur (bouwtekening) van een computer neer op de schematische voorstelling zoals in Figuur 1 afgebeeld. Alle componenten/aansluitingen (de grijze rechthoeken) in de figuur zitten ofwel op het moederbord zelf of kunnen er op worden aangesloten. De blauwe pijlen tussen de componenten stellen de bussen voor. Via de bussen kunnen de componenten met elkaar communiceren. 1 uit de methode van Remie Woudt - 4 -

bussen Een belangrijke bus is de Front Side Bus (FSB). Deze verbindt de CPU en de Northbridge. Door de FSB gaan alle elektrische signalen (communicatie) tussen de processor en de rest van de componenten. De snelheid van de hele pc is daarom onder andere afhankelijk van de snelheid en bandbreedte van de FSB. De FSB is de bus die bij een Intel CPU wordt gebruikt. De andere grote CPU fabrikant, AMD, gebruikt een bus met een andere naam, die dezelfde taak heeft als de FSB. Deze bus heet de Hyper Transport Bus (HTB). De bandbreedte van een bus wordt bepaald door de hoeveelheid bits die er tegelijkertijd (parallel) doorheen kunnen, zie Figuur 2. Ieder bit wordt over een aparte buslijn getransporteerd. Dus bij bijvoorbeeld een bandbreedte van 8 bits, heeft de bus dus 8 buslijnen. De bandbreedte wordt uitgedrukt in bits. Hoe hoger de bandbreedte, hoe sneller de bus. Figuur 2: een drietal bussen met verschillende bandbreedtes 2 De snelheid van een bus wordt bepaald door de hoeveelheid bits, die er per buslijn per tijdeenheid, achter elkaar, doorheen kunnen. Dit noemen we de kloksnelheid van de bus. Deze wordt uitgedrukt in Herz (Hz). Hoe hoger de kloksnelheid, hoe sneller de bus. cpu De CPU (Central Processing Unit), waarover later meer details, is een general-purpose processor. Dat wil zeggen dat deze ingezet kan worden voor allerlei verschillende berekeningen en toepassingen. De CPU is het hart van de PC en daarmee een belangrijke component. Deze zorgt voor een groot deel van de informatieverwerking in een computer. 2 www.alf.sd83.bc.ca/courses/it12/using_it/processor_speed.htm - 5 -

bridges De Northbridge en de Southbridge worden samen de chipset van het moederbord genoemd. Samen met de CPU en GPU (Graphics Processing Unit) vormen zij de belangrijkste processoren in de computer. De chipset wordt meestal speciaal voor een bepaald type CPU ontworpen. De GPU is een processor die specifiek ontworpen is om 2D en 3D video- en beeldbewerking te doen. Omdat deze processor hier specifiek voor ontworpen is, kan hij dit veel sneller dan een CPU. Bovendien wordt de CPU op deze manier ontlast. De GPU kan onderdeel zijn van de CPU zelf, in de Northbridge zitten of op een aparte insteekvideokaart (grafische kaart). De Northbridge is bedoeld voor de snelle communicatie met het RAM (interne geheugen of werkgeheugen) en de GPU. Verder verzorgt de Northbridge ook de communicatie met de rest van de pc via de tragere Southbridge. De Northbridge kan naast de hiervoor beschreven taak ook andere taken hebben. Zo kan er, zoals eerder gezegd, een geïntegreerde GPU in zitten. Soms zit er ook een NIC (Network Interface Controller) in. De Southbridge regelt de communicatie met de tragere componenten van de PC zoals bijvoorbeeld de harde schijf, het toetsenbord, de muis enzovoorts. Vaak zit er ook een NIC in, zodat die niet in de snellere (en dus duurdere) Northbridge hoeft te zitten. opgave 3.1 In Figuur 1 zijn vier type aansluitingen bij de Southbridge getekend. Geef voor iedere aansluiting tenminste twee componenten of randapparatuur die erop aangesloten kunnen worden. voorbeelden Figuur 3 en Figuur 4 laten moederborden zien. De processor (CPU) wordt in de CPU socket (aanduiding G in Figuur 4) gestoken en geeft tegenwoordig vaak zoveel warmte af dat deze fors gekoeld moet worden. Dat betekent meestal, dat er een goed koelblok met een krachtige ventilator op gemonteerd moet worden. We noemen dit actieve koeling, omdat er bewegende onderdelen (de ventilator) in het koelsysteem zitten. Er kan echter ook voor waterkoeling of zelfs stikstofkoeling worden gekozen. Deze opties zijn vaak stiller maar ook veel duurder. - 6 -

opgave 3.2 Er zijn een heleboel verschillende soorten processoren. Deze vereisen doorgaans allemaal een ander type socket op het moederbord. Er zijn daarom een heleboel verschillende soorten CPU sockets. Zoek op internet naar verschillende soorten CPU sockets en schrijf er 10 op. Vermeld voor iedere soort bij welk merk en type CPU deze hoort. Op de foto's van de moederborden zie je, dat ook de Northbridge (aanduiding D in Figuur 4) ook gekoeld wordt. De benodigde koeling voor een component is afhankelijk van de taken die erdoor moeten worden verricht. Bij de Northbridge wordt meestal passieve koeling toegepast. Dat betekent dat er geen ventilator op het koelblok zit. Het voordeel is dat dit soort koeling stil is. Het nadeel is dat het minder goed koelt dan actieve koeling. Dit laatste zie je goed in de figuren bij de Northbridge. De Southbridge hoeft meestal niet gekoeld te worden. Figuur 3: een oud AGP moederbord 3 3 uit de methode van Remie Woudt - 7 -

Figuur 4: een nieuw moederbord 4 opgave 3.3 Zoek op het internet op hoe de componenten en aansluitingen die aangeduid zijn in Figuur 4 heten. Schrijf de namen op en leg ze in je eigen woorden uit. In Figuur 3 heb je al het zogenaamde back panel als onderdeel van het moederbord gezien. Het back panel is belangrijk omdat het veel aansluitmogelijkheden biedt voor randapparatuur zoals de muis, het toetsenbord, de vaste netwerkkabel, luidsprekers enzovoorts. In Figuur 5 zie je een overzicht van de veel voorkomende aansluitingen op het back panel. 4 www.build-your-own-computer.net/image-files/motherboard-diagram-01.jpg - 8 -

RAM Figuur 5: een back panel van een moederbord Op het moederbord bevinden zich ook de sloten (slots) om het RAM aan te sluiten (aanduiding J in Figuur 4). In deze sloten kun je de RAM modules steken met daarop de RAM chips, zie Figuur 6. RAM moet makkelijk vervangen en uitgebreid kunnen worden en is daarom niet op het moederbord geïntegreerd. Figuur 6: diverse soorten RAM modules 5 5 upload.wikimedia.org/wikipedia/commons/d/d3/ram_n.jpg - 9 -

RAM staat voor Random Access Memory en is bestemd voor tijdelijke opslag ten behoeve van de CPU. Het RAM kan alleen maar iets onthouden zolang er spanning op staat. Zodra de computer uitgezet wordt, is het RAM na korte tijd weer leeg. Het RAM bestaat uit geheugenlocaties waar instructies en data in opgeslagen kunnen worden. Deze locaties kun je benaderen via het geheugenadres. De CPU heeft RAM nodig om snel te kunnen werken. Bijvoorbeeld direct werken met een harde schijf is veel te traag. opgave 3.4 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) De Southbridge is de snelle chip van de moederbord chipset. b) De Northbridge zit aangesloten op het RAM. c) De Southbridge zit tussen de CPU en de Northbridge in. d) Aan de elke CPU zit een belangrijk bus vast, deze heet de FSB. e) Om een GPU in je PC te krijgen heb je een videokaart nodig. f) Er is geen enkele actieve koeling die zo stil is als passieve koeling. g) RAM bestaat uit geheugenlocaties die te benaderen zijn via geheugenadressen. - 10 -

4. CPU opgave 4.1 Bekijk de volgende YouTube film. De CPU (Central Processing Unit) wordt vaak gezien als het hart of de hersenen van de computer. In het Nederlands zeggen we vaak processor tegen de CPU. De CPU snelheid en rekenkracht bepaalden vroeger in grote mate de snelheid van een computersysteem. Tegenwoordig speelt met name de GPU (Graphics Processing Unit) echter ook een zeer belangrijke rol, zeker als we video- of beeldbewerking willen doen. Voor de PC zijn er een aantal CPU fabrikanten. Intel en AMD zijn de grote spelers op deze markt. Via Technologies is ook een CPU fabrikant maar hun processoren worden meestal gebruikt bij kleine computers die energiezuinig moeten zijn. Een uitgebreide lijst van processoren kun je vinden op Wikipedia. In Figuur 7 zie je een aantal verschillende CPU merken en types. kloksnelheid Figuur 7: verschillende CPU merken en types 6 Een belangrijk begrip bij processoren (zowel CPU als GPU) is de kloksnelheid. Deze werd vroeger in megahertz (MHz) uitgedrukt maar tegenwoordig in gigahertz (GHz). Een kloksnelheid van bijvoorbeeld 3 GHz betekent dat de processor per seconde ongeveer 3 * 10 9 (3 miljard) acties kan uitvoeren. Een groep samenhangende acties noemen we een instructie. Er zijn instructies die uit één actie bestaan maar de meeste bestaan uit meerdere acties. 6 www.legitreviews.com/images/reviews/1060/intel_lynnfield_cpu.jpg - 11 -

multicore en hyper threading Een ander belangrijk begrip is het aantal kernen in de processorchip. Een chip met één kern heet single core, een chip met meerdere kernen heet multicore. Bij een CPU zie je bijvoorbeeld dual- (2), quad- (4), hexa- (6) en octa- (8) core. Er zijn ook al chips met 10 (deca-core) of meer kernen maar die zijn nog erg duur. De kernen kunnen software maar ook hardware kernen zijn. Bij software kernen spreken we van hyper threading. Er is dan één fysieke hardware kern aanwezig maar voor de software lijken er meerdere kernen aanwezig te zijn. We spreken dan van concurrency. Bij hardware kernen zitten er fysiek meerdere onafhankelijke kernen op de chip. Deze kernen kunnen daadwerkelijk onafhankelijk van elkaar werken. We spreken dan van parallelle uitvoering, oftewel parallel processing. Als een CPU meerdere kernen heeft is dit gunstig voor de snelheid. Hardware kernen zijn gunstiger voor de snelheid dan software kernen maar ook duurder. De snelheidswinst hangt bovendien af van hoe goed de software gebruik maakt van de aanwezige kernen. Op het moment maakt niet alle software standaard even goed gebruik van multicore processorchips. caches Nog een belangrijk onderdeel van de CPU zijn de caches. CPU caches slaan instructies en data op in de processorchip zodat deze niet uit het RAM opgehaald hoeven te worden. Dit maakt de CPU veel sneller. Hoe groter de caches zijn hoe beter dit is voor de snelheid. Vroeger had een CPU doorgaans twee caches, de L1 en de L2 cache. Met de komst van processorchips met meerdere kernen is er een L3 cache bijgekomen. De L1 cache is het kleinst en het snelst en is altijd gekoppeld aan één hardware kern. De L2 cache is groter en trager en is typisch gekoppeld aan één hardware kern. Bij hyper threading bedient de L2 cache echter wel meerder software kernen. De L3 cache is nog groter en trager en is een gedeelde cache voor alle hardware kernen. Ondanks dat de L3 cache veel trager is dan de L1 cache is deze oplossing altijd nog vele malen sneller dan data uit het RAM halen. Wanneer de CPU iets wil lezen, maar het staat niet in een cache, dan noemen we dat een cache miss. De inhoud van de cache waar de "miss" optreedt, moet dan vervangen worden. Vanwege snelheid, doet de CPU dit niet voor iedere geheugenlocatie apart, maar zijn de geheugenlocaties ondergebracht in zogenaamde cache blocks. Een "cache block" wordt in zijn geheel vervangen. Hiervoor kijkt de CPU of de data in een hoger gelegen cache staat; dus als er in de L1 cache een "miss" optreedt, dan wordt eerst in de L2 cache gekeken of de data daar wel te vinden is. Daarna wordt in een eventuele L3 cache gekeken en daarna pas in het RAM. In Figuur 8 zie je een voorbeeld van de L1, L2 en L3 caches bij een Intel Core I7 CPU. - 12 -

Figuur 8: een Intel Core I7 CPU cache architectuur 7 opgave 4.2 Beschrijf welke aspecten van de CPU een belangrijke rol spelen voor de snelheid van een PC behalve de kloksnelheid. opgave 4.3 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Twee grote spelers op de CPU markt voor de PC zijn AMD en Intel. b) Tegenwoordig wordt de kloksnelheid uitgedrukt in gigahertz. c) Een hardware kern is net zo snel als een software kern. d) Als we rekenen op meerdere hardware kernen noemen we dat hyper threading. e) Caches zitten op de CPU om de hoeveelheid interactie van de CPU met het RAM te verminderen. f) Op een CPU zitten altijd twee caches, de L1 en de L2 cache. g) De L2 cache is groter en sneller dan de L1 cache. 7 bron: internet, locatie onbekend - 13 -

programmeren Als we programma's schrijven voor een computersystem, dan zijn we feitelijk de CPU van het systeem aan het programmeren. Vroeger moest je precies weten welke instructies een bepaalde CPU kende. Er werd toen geprogrammeerd in binaire code of assembly language (ook wel afgekort tot assembly of assembler). Binaire code bestaat uit codes van alleen nullen en enen. Als een programmeur weet wat hij/zij doet, dan kan een CPU deze code direct lezen. Je zult echter begrijpen dat programmeren met alleen de getallen 0 en 1 niet echt handig is en dat grote programma's schrijven, vervelend, moeilijk en foutgevoelig is. Daarom zijn de instructies een CPU ook bekend als zogenaamde mnemonics. Dit zijn afkortingen die gebruikt kunnen worden in plaats van de binaire codes, zodat programmeurs ze makkelijker kunnen onthouden. Bovendien accepteren processoren ook hexadecimale waardes in plaats van binaire waardes als ze dat gevraagd wordt. Een voorbeeld maakt dit misschien duidelijker: Een voorbeeld van binaire code is: 10001100 11010001 11010010. In assembly ziet het er als volgt uit: ADD R1, 0x12. Het nadeel van beide methodes is, dat de programmacode specifiek is voor één of enkele CPU types en dat het programma alleen daar op uitgevoerd kan worden. Daarom zijn er zogenaamde hogere programmeertalen en later ook scripttalen ontwikkeld. Dit zijn talen die nog makkelijker door mensen te schrijven en lezen zijn en die bovendien niet specifiek voor een klein aantal CPU types is. Voorbeelden van hogere programmeertalen en scripttalen zijn C, C++, C#, Java, Python, Ruby, JavaScript enzovoorts. Om goed te snappen hoe een CPU werkt, is een hogere programmeertaal niet echt geschikt. Dat is logisch, want zulke talen willen onafhankelijk zijn van het type CPU. Om echt te snappen hoe een CPU werkt, is het goed om wat oefeningen te doen in assembly. Hiervoor bestaat een kort practicum dat je kunt doen als je geïnteresseerd bent. Instructies voor dit practicum vind je in de ELO. Als je in assembly programmeert, moet je ook goed snappen hoe de CPU samenwerkt met het RAM en hoe het RAM in elkaar zit. Hierover leer je hierna meer. - 14 -

5. RAM opgave 5.1 Bekijk de volgende YouTube film. Zoals eerder besproken, bestaat het RAM uit geheugenlocaties. Deze kunnen benaderd worden door geheugenadressen. Deze adressen zijn belangrijk bij het programmeren zoals je in het filmpje hebt kunnen zien. Geheugenlocaties hebben een grootte die we de woordgrootte (uitgedrukt in bits) noemen. Ook geheugenadressen hebben een grootte die we de adresgrootte (uitgedrukt in bits) noemen. De woordgrootte en adresgrootte kunnen even groot, maar dat hoeft niet en is ook vaak niet zo. De adresgrootte moet echter wel kloppen bij CPU architectuur en de bandbreedte van de bussen in het computersysteem. Veel computersystemen gebruiken op het moment met 64 bits architectuur. Dat wil zeggen, dat er een 64 bits CPU op een moederbord met een 64 bits bus bandbreedte zit en de adresgrootte van het RAM 64 bits is. Bekijk het volgende stuk geheugen met een adresgrootte van 16 bits en woordgrootte van 8 bits. We nemen even 16 en 8 bits omdat dit nog redelijk overzichtelijk is. In de linker kolom staat het adres, dat we altijd als hexadecimaal getal schrijven. In de andere kolommen staan bits die de data op het adres voorstellen. Dit is dus de inhoud van de geheugenlocatie. Zo vinden we op adres 0x0004 het getal decimale getal 236. adres bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0x0000 0 1 0 0 1 1 1 1 0x0001 1 0 0 1 0 0 0 1 0x0002 0 0 0 0 0 0 0 0 0x0003 0 1 1 1 0 1 0 1 0x0004 0 1 1 1 0 1 0 0 0x0004 1 1 1 0 1 1 0 0 0x0005 1 0 1 0 1 0 0 0 0x0006 0 0 0 0 1 0 1 1 0x0007 1 1 1 1 1 1 1 1 0x0008 1 0 0 0 1 0 1 1 0x0009 0 0 0 0 1 0 1 0 0x0010 0 0 0 0 0 0 0 0 0x0011 0 1 0 0 1 1 1 0 0x0012 1 1 1 1 1 1 1 1-15 -

opgave 5.2 Welke getallen staan op adressen 0x0001, 0x0002, 0x0007, 0x0010 en 0x0012? Je ziet dus dat er best dezelfde waarde in verschillende geheugenlocaties mogen staan. Er is geen directe relatie tussen de locaties. Vroeger moesten programmeurs direct met de geheugenadressen van het RAM werken als ze computerprogramma's schreven. Tegenwoordig gebruiken we hogere programmeertalen die ons variabelen laten gebruiken om naar geheugenlocaties te verwijzen. De code die we schrijven wordt voor ons vertaald naar code die direct werkt met geheugenadressen, zodat we dat zelf niet hoeven te doen. Het vertalen van de code gebeurt door zogenaamde compilers of interpreters. Als we een stuk programma code hebben voor een 16 bits computersysteem met RAM woordgrootte 8, dan kan dat er als volgt uitzien: var getal = 20; Dan wordt de variabele getal (dat dit een variabele is, wordt aangegeven door het woordje var) vertaald naar een geheugenlocatie, bijvoorbeeld 0x0004 en wordt op dat adres de inhoud van de geheugenlocatie verandert in binair 00010100, want dat stelt het decimale getal 20 voor. opgave 5.2 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Een geheugenlocatie en een geheugenadres zijn verschillende termen waarmee hetzelfde bedoeld wordt. b) Woordgrootte en adresgrootte van het RAM moeten altijd gelijk zijn. c) De adresgrootte van het RAM moet kloppen bij de bandbreedte van de bussen op het moederbord. d) De woordgrootte van het RAM moet kloppen bij de architectuur van de CPU. e) Een compiler wordt gebruikt om hogere programmeertalen te vertalen naar iets dat de CPU begrijpt. - 16 -

f) Een interpreter is hetzelfde als een compiler. g) Een hogere programmeertaal is een taal die relatief goed te begrijpen is door mensen. - 17 -

6. hardware architectuur (vwo) In de vorige hoofdstukken hebben we een overzicht gezien van componenten en randapparaten, die te maken hebben met de PC en computers in het algemeen. We hebben ook een beetje gekeken naar de samenhang tussen de componenten toen we het over het moederbord hadden. In dit hoofdstuk gaan we op deze samenhang wat dieper in. In het hoofdstuk over het moederbord staat Figuur 1. Hierin zien we onder andere het verband tussen de CPU en het RAM. Dit figuur is een architectuur afbeelding. Dat wil zeggen dat de afbeelding een model (vereenvoudigde weergave van de werkelijkheid) van een complex systeem of subsysteem weergeeft. de werking van de CPU In essentie is een CPU een informatie verwerkend systeem. De informatieverwerking gebeurt door de CPU zoals schematisch is afgebeeld in Figuur 9. De pijlen in deze afbeelding zijn informatiestromen. De CPU krijgt instructies met bijbehorende informatie. Voorbeelden van bijbehorende informatie zijn: data, een geheugenadres of de plek waar iets in de CPU opgeslagen moeten worden. Daarna voert de CPU de instructie uit en bewaart het resultaat. Figuur 9: data- en instructieverwerking door de CPU Voor iedere instructie voert de CPU de Von Neumann cyclus uit. Deze cyclus zie je in Figuur 10. Eerst moet een instructie opgehaald worden (fetch), daarna moet gekeken worden welke instructie het is en welke andere informatie erbij hoort (decode) en daarna kan de instructie uitgevoerd worden (execute). Figuur 10: de Von Neumann cyclus 8 8 www.teach-ict.com/gcse_computing/ocr/212_computing_hardware/cpu/miniweb/pg3.htm - 18 -

Je weet intussen dat alle componenten in een computer via bussen verbonden zijn. Zo ook de CPU en het RAM. Om data uit het RAM te halen, moet je weten waar die data staat; oftewel, je moet weten op welk geheugenadres de data staat. Voor het schrijven van data naar het RAM geldt hetzelfde. Als de CPU bijvoorbeeld de bewerking 3 + 6 moet uitvoeren, waarbij het getal 3 op geheugenadres 40 staat, het getal 6 op adres 72 en het resultaat op adres 56 geschreven moet worden, dan gaat dat heel abstract zoals afgebeeld in Figuur 11. Figuur 11: abstracte weergave van een optelling in een CPU opgave 6.1 Werk zelf een voorbeeld uit waarin een CPU de getallen 16 en 9 moeten vermenigvuldigen. Hierbij staat het getal 16 op adres 200, het getal 9 op adres 201 en het resultaat moet teruggeschreven worden op adres 300. Zoals je in Figuur 11 ziet, moet de CPU de reeds gelezen getallen (de data) opslaan tot de bewerking (hier dus de optelling) bekend is. Hiervoor gebruikt de CPU registers. Registers zijn kleine stukjes opslagruimte binnenin de CPU. In Figuur 12 zie je een aantal van deze registers afgebeeld zoals R1, R2, PC en IR. - 19 -

In de R1 en R2 registers kan data opgeslagen worden. In het IR (Instruction Register) wordt de instructie opgeslagen. In de PC (Program Counter) staat het geheugenadres waaruit de volgende instructie of data van het programma gelezen moet worden. Figuur 12: een zeer eenvoudige processor 9 In Figuur 11 komen de instructies uit de lucht vallen en dat is natuurlijk in werkelijkheid niet zo. Figuur 11 laat alleen de opeenvolgende EXECUTE stappen van de Von Neumann cyclus zien. Instructies moeten eerst opgehaald (FETCH) worden. Dit gaat feitelijk hetzelfde als het ophalen van data. Instructies staan namelijk ook gewoon in het RAM en hebben een geheugenadres. Zoals je hierboven gelezen hebt, staat dat adres in een speciaal register in de CPU, het IR (Instruction Register). Door te lezen wat er op het geheugenadres uit het IR staat, krijgt de CPU de instructie binnen, die de CPU vervolgens kan decoderen. 9 www.voti.nl/hvu/v1cp1/ - 20 -

Maar hoe gaat dat lezen en schrijven via de bussen nu precies? Om dat te weten moet je snappen hoe de bussen tussen de CPU en het RAM in elkaar zitten en hoe instructies van een CPU eruit zien. In Figuur 12 zie je de drie belangrijkste onderdelen van de bussen tussen de CPU en het RAM afgebeeld. Dit zijn achtereenvolgens: De data bus; deze wordt gebruikt om instructies en data uit te wisselen. De adres bus; deze wordt gebruikt om geheugenadressen (locaties in het RAM) waar data in staat uit te wisselen. De control bus; deze wordt onder andere gebruikt om aan te geven of er gelezen of geschreven moet worden. Daarnaast wordt deze gebruikt om de data en adres bussen te synchroniseren. Nu je weet waar hoe bussen opgedeeld zijn, gaan we kijken naar hoe een instructie er globaal uitziet. Iedere processor heeft zijn eigen verzameling instructies. De instructies die je nu gaat zien horen bij de zeer eenvoudige processor (ZEP) uit Figuur 12. Dit soort processoren worden tegenwoordig niet meer gebruikt. Een voorbeeld van een leesinstructie van de ZEP is: LOAD R1, 0x20. Het eerste deel, LOAD, geeft aan wat de instructie moet doen; in dit geval laden, oftewel lezen. Het tweede deel, R1, geeft aan waar de gelezen data moet worden opgeslagen; in dit geval het register genaamd R1. Het laatste deel, 0x20, geeft aan waar de data gelezen moet worden; in dit geval geheugenadres 0x20. Een voorbeeld van een schrijfinstructie van de ZEP is: STORE R1, 0x32. Alle delen uit een instructie staan, zoals gezegd, in het RAM en moeten daarom ook gelezen worden. Hiervoor leest de CPU steeds wat er op het geheugenadres uit het IR staat en hoogt de waarde van het IR op. Nu je dit allemaal weet, kunnen we laten zien hoe het lezen van data uit een geheugenadres gaat. Er gebeurt dan het volgende: 1. FETCH: De CPU haalt de leesinstructie, met register en geheugenadres, op via de data bus. 2. DECODE: De CPU decodeert de instructie. 3. EXECUTE: a. De CPU zet het geheugenadres uit de instructie op de adres bus. b. De CPU geeft, via de control bus, aan dat de inhoud van het geheugenadres gelezen moet worden. c. De CPU ontvangt de inhoud van het geheugenadres via de data bus en zet dat in het register dat aangegeven is in de instructie. - 21 -

Bij het schrijven van data naar een geheugenadres gebeurt het volgende: 1. FETCH: De CPU haalt de schrijfinstructie, met register en geheugenadres, op via de data bus. 2. DECODE: De CPU decodeert de instructie. 3. EXECUTE: a. De CPU zet het geheugenadres uit de instructie op de adres bus. b. De CPU zet de waarde uit het register, dat in de instructie staat, op de data bus. c. De CPU geeft via de control bus aan dat de data op het adres weggeschreven moet worden. opgave 6.2 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) De Von Neumann cyclus bestaat achtereenvolgens uit DECODE, FETCH en EXECUTE. b) Een geheugenadres is het adres van een geheugenlocatie. c) Registers zijn kleine stukjes opslagruimte in het RAM. d) Voorbeelden van registers zijn de PC en het IR. e) In de PC staat de instructie opgeslagen die de CPU moet uitvoeren. f) De control bus van de FSB is nodig om te controleren dat alle data goed aankomt bij de ontvanger. architectuurmodellen De eerste computers werkten met fysiek gedeelde opslag voor instructies en data. Dat wil zeggen dat er of een instructie of een stuk data uit het geheugen gelezen kan worden, niet beide tegelijkertijd. Zulke computers zijn gebouwd op basis van de zogenaamde Von Neumann architectuur, zie Figuur 13. Na verloop van tijd kwam men erachter dat het parallel kunnen lezen van instructies en data een grote snelheidswinst op kan leveren. Het feit dat dit bij de Von Neumann architectuur niet kan heet de Von Neumann bottleneck. - 22 -

Figuur 13: een mogelijke Von Neumann architectuur 10 Een oplossing voor de Von Neumann bottleneck is computers bouwen met fysiek gescheiden geheugen voor instructies en data. Zulke computer zijn gebouwd op basis van de zogenaamde Harvard Architectuur, zie Figuur 14. Dit levert snelheidswinst op, maar heeft als nadeel dat je minder effectief en flexibel met het geheugen om kunt gaan. Stel je hebt meer data dan datageheugen. Je hebt echter nog wel instructiegeheugen vrij. Je kunt dan, in het geval van de Harvard architectuur, de overtollige data niet in het instructiegeheugen bewaren. Figuur 14: een mogelijke Harvard architectuur 11 Zowel de Von Neumann als de Harvard architectuur hebben dus een significant nadeel. Daarom heeft men een architectuur bedacht die die nadelen niet heeft. Deze heet de Modified Harvard architectuur. De Modified Harvard architectuur kan op diverse manieren gerealiseerd worden. Eén van de mogelijkheden zie je in Figuur 15. Bij deze oplossing wordt een extra bus tussen de CPU en het datageheugen geplaatst. Het instructiegeheugen wordt klein gehouden en het datageheugen is groot. Hierdoor moeten in geval van nood instructies 10 www.electronics.dit.ie/staff/tscarff/architecture/neumann_harvard.gif 11 www.electronics.dit.ie/staff/tscarff/architecture/neumann_harvard.gif - 23 -

in het datageheugen worden gezet maar zelfs in dat geval kan er nog altijd een instructie en een stuk data tegelijkertijd gelezen worden. Een bijkomend voordeel van deze architectuur is dat normaliter er een instructie en twee stukken data tegelijkertijd gelezen kunnen worden. Het hebben van een extra bus is wel duurder. Daarom wordt deze oplossing tegenwoordig nauwelijks gebruikt. Figuur 15: een mogelijke Modified Harvard architectuur 12 Een andere, meer gebruikte, manier om de Modified Harvard architectuur te realiseren zie je in Figuur 16. Eerder heb je hiervan, in Figuur 8, ook al een voorbeeld gezien, toen we het onderwerp caches behandelden. Wat een moderne CPU typisch doet is de L1 cache dubbel uitvoeren. Het ene deel wordt gebruikt voor instructies (code) en het andere voor data. De andere caches en het RAM werken dan volgens de Von Neumann architectuur en bevatten zowel data als instructies. Bij deze oplossing kan de CPU altijd instructie en data tegelijkertijd uit de L1 cache lezen en kan het RAM toch beide bevatten. Aangezien caches toch nodig zijn op de CPU brengt deze oplossing nauwelijks extra kosten met zich mee. 12 embeddedsystemdesignhub.blogspot.nl/2009/11/introduction-to-dspic-dsc.html - 24 -

Figuur 16: Modified Harvard architectuur met behulp van caches 13 opgave 6.3 Leg in je eigen woorden duidelijk en volledig uit waarom de Modified Harvard architectuur is bedacht en hoe je hem kunt implementeren. opgave 6.4 Zijn de volgende beweringen waar of niet waar? Als je een bewering niet waar vindt moet je uitleggen waarom je dat vindt. a) Processoren werken op basis van de Von Neumann Cyclus. b) De Von Neumann cyclus bestaat uit vier stappen te weten fetch, decode, execute, en verify. c) Een CPU bevat registers om data tijdelijk op de slaan. d) Voorbeelden van registers zijn de RI en CP. e) De oplossing voor het nadeel van de Harvard architectuur is de Von Neumann architectuur. f) Caches worden in moderne computers gebruikt om de Modified Harvard architectuur te implementeren. 13 bron: internet, locatie onbekend - 25 -

7. wat heb je geleerd Je hebt in deze module een breed scala aan onderdelen en apparaten voorbij zien komen die ofwel in de computerkast geplaatst moeten worden of er buiten op aangesloten moeten worden. Via kleur en onderstreping is aangegeven op welke zaken de nadruk ligt. opgave 7.1 In voorgaande modules was dit hoofdstuk helemaal voor je ingevuld. Uiteindelijk is het belangrijk dat je zelf hoofd van bijzaken leert onderscheiden en je een grote hoeveelheid informatie snel terug kunt brengen naar de essentie zodat je deze efficiënt kunt leren. Vul dit hoofdstuk zelf in door met steekwoorden en/of korte zinnen aan te geven wat en waarover je waarschijnlijk de meeste vragen gaat krijgen in de toets en het SE. - 26 -