InfoNu.nl > Wetenschap > Techniek > Voorbeeld rekenmachine

Voorbeeld rekenmachine

Voorbeeld rekenmachine In de digitale wereld rekent men met binaire getallen en getalreeksen. Het is gemakkelijker voor hardware (elektronica) om met het binaire talstelsel te werken dan met het tientallig talstelsel. Een getal bestaand uit enen en nullen is eenvoudig te bewaren en te bewerken met digitale circuits. Von Neumann bedacht een basis circuit voor een rekenmachine; huidige processoren en computers werken nog steeds met hetzelfde mechanisme.
- fig 1 -<BR>
elke berekening moet mogelijk zijn / Bron: Tronic- fig 1 -
elke berekening moet mogelijk zijn / Bron: Tronic

Hoe kan een machine rekenen?

De wiskundige ideeën van Alan Turing en Von Neumann zijn door elektrotechnici omgezet in elektronica. Het belangrijkste idee kwam van Turing die met een wiskundig algoritme bewees dat een lange band van getallen die langs een lees- en schrijf-kop gaat, elke mogelijke berekening kan uitvoeren. De lees- en schrijf-kop is een klein machientje dat zich slechts in een eindig aantal toestanden kan bevinden.

....| B | G | E | H | X | J | W | A | C | Y | N |..... (band met getallen)
...........................↑.............................................
...........<- lees/schrijfkop->.............................

Von Neumann bedacht een basisschema -de Von Neumann-architectuur- voor een systeem dat elektronisch getallen kan bewerken. Een processor (of cpu, process = bewerken) wordt gescheiden van de opslagplaats van getallen, het (werk)geheugen.
Om getallen zoals wij ze kennen (tientallig stelsel) door elektrische systemen te laten bewerken is een cruciale stap nodig:

getallen uit ons tientallige stelsel worden omgezet naar getallen uitgedrukt in een binair stelsel

Dit betekent dat elk getal wordt uitgedrukt in een rij van de tekens: '1' en '0'. Elk decimaal getal (inclusief negatieve en komma-getallen) kan op deze manier worden omgezet. Het is voor elektronica heel eenvoudig om een 1 of 0 te herkennen, evenals een lange rij combinaties van 1 en 0.

- fig 2-<BR>
1111 en 0101 - elektronisch / Bron: Tronic- fig 2-
1111 en 0101 - elektronisch / Bron: Tronic

Omzetting naar binaire getallen

Elk mogelijk getal dat wij kennen of nodig hebben kunnen we ook schrijven als combinaties van de cijfers 1 en 0 [ipv gebruik decimale cijfers (0, 1, 2, 3, ... , 9)].
Een 0 en een 1 moeten herkenbaar zijn voor hardware -of logische poorten- :

  • hoge spanning (5 Volt, 3.3 Volt of 2.2 Volt) → 1
  • een lage spanning (in de buurt van 0 Volt) → 0

Zie figuur 2 -klik om te vergroten-, 2.2 Volt (Vdd) representeert een 1, de 0 Volt (ground) representeert een 0. Vervolgens verbinden we 4 schakelaars met zowel de 1 als de 0, afhankelijk van de stand van de schakelaars creëren we 2 binaire getallen bestaande uit 4 bits:

  • 1111 (=15)
  • 0101 (=5)

- fig 3-<BR>
4 bits register / Bron: Tronic- fig 3-
4 bits register / Bron: Tronic

Opslag

De hierboven beschreven omzetting is schematisch, voor opslag van getallen in de elektronische wereld gebruikt men registers (zie afbeelding - een 4bits register). Dit zijn logische schakelingen, bestaand uit flipflops; elke flipflop slaat 1 bit op. Registers werken met een klok-signaal (clk); de klok zorgt ervoor dat de bits allemaal gelijktijdig geschreven (of gelezen) worden.

Een register zoals in figuur 3 afgebeeld noemt men 'static'. Een register kan ook gemaakt worden met flash-geheugen, met poorten die lading kunnen opslaan (dynamic ram), of poorten die data permanent opslaan (rom).

Stel we leggen een flink aantal registers -elk 8 bits- naast elkaar (of boven elkaar - zie volgende figuur, 'opslag'). Elk register krijgt een adres, dit is speciale data die een opslagplaats aanwijst.

- fig 4-<BR>
ALU rekent stap voor stap / Bron: Tronic- fig 4-
ALU rekent stap voor stap / Bron: Tronic

Rekenregels

Rekenen met een binair getal verschilt niet veel van rekenen met een decimaal getal; we moeten alleen andere rekenregels toepassen.
Er zijn allerlei logische schakelingen die binaire getallen kunnen optellen/vermenigvuldigen, onthouden, of logische operatie's op binaire getallen uitvoeren. Veel berekeningen zijn in de binaire wereld uiteindelijk uit te voeren als een reeks binaire optellingen en vermenigvuldigingen.

Digitale circuits -zoals een microprocessor- bestaan uit optellers/vermenigvuldigers/logica (Arithmetic Logic Unit's - ALU) die stapsgewijs berekeningen uitvoeren. Een berekening wordt opgedeeld in een aantal deelberekeningen, het systeem slaat telkens een tussenresultaat op, zodat het daarna als input voor een volgende deelberekening kan fungeren. Zo'n reeks deelberekeningen noemt men ook wel 'algoritme'.

Wanneer er sprake is van zeer moeilijke of complexe functies dan maakt men ook wel gebruik van een Look Up Table (LUT); dit is een geheugen waarin alle belangrijke functiewaarden staan vermeld. In dit geval wordt er niet gerekend, maar het antwoord wordt direct opgezocht op de juiste geheugenplaats.


De werking van een rekenmachine zoals beschreven is vergelijkbaar met Turing's uitdrukking: 'een lees- en schrijfkop die langs een lange band met getallen gaat'. De toestandsmachine is de ALU: dit machientje kan getallen schrijven, getallen lezen (via de inputs), en bewerkingen uitvoeren zoals optellen en vermenigvuldigen.

De band met getallen is een geheugen. De plaats waar een getal opgeslagen is, wordt aangegeven door een adres. We kunnen de ALU ook zien als een rekenmachine die continu op andere adressen in het geheugen bezig is. In een microprocessor zitten ook allerlei tellers (counters) en geheugentjes (registers), die de adressen aanwijzen en bijhouden hoever een berekening gevorderd is. Deze instructie's en adressen komen uiteindelijk uit de software, die bepaalt wat een CPU moet uitvoeren, maar er zijn ook digitale chips die volledig zelfstandig opereren zonder software (ASICs).

Lees verder

© 2009 - 2017 Tronic, het auteursrecht van dit artikel ligt bij de infoteur. Zonder toestemming van de infoteur is vermenigvuldiging verboden.
Gerelateerde artikelen
Wat is binair: Over bits, bytes, nullen en enenWat is binair: Over bits, bytes, nullen en enenWe hebben allemaal gehoord over de bits en bytes waar een computer mee werkt. En dat een computer eigenlijk alleen nulle…
Binair vermenigvuldigenBinair vermenigvuldigenHet vermenigvuldigen van twee binaire getallen is een operatie die veelvuldig wordt toegepast in de digitale techniek. U…
Automaten: werking en binaire getallenWe gebruiken in ons dagelijkse leven altijd automaten. Er zijn verschillende soorten automaten. De automaten werken met…
Van analoog naar digitaalBijna alle machines werken met signalen. Een binair signaal of een digitaal signaal, maar hoe weet een machine nu wannee…
Computerpioniers: Het binaire talstelsel van LeibnitzComputerpioniers: Het binaire talstelsel van LeibnitzHet binaire talstelsel, dat door Gottfried Wilhelm Leibnitz werd ontwikkeld, is onmisbaar voor onze moderne computers. H…
Bronnen en referenties
  • Inleidingsfoto: Tronic
  • Afbeelding bron 1: Tronic
  • Afbeelding bron 2: Tronic
  • Afbeelding bron 3: Tronic
  • Afbeelding bron 4: Tronic

Reageer op het artikel "Voorbeeld rekenmachine"

Plaats als eerste een reactie, vraag of opmerking bij dit artikel. Reacties moeten voldoen aan de huisregels van InfoNu.
Meld mij aan voor de tweewekelijkse InfoNu nieuwsbrief
Infoteur: Tronic
Laatste update: 13-05-2017
Rubriek: Wetenschap
Subrubriek: Techniek
Bronnen en referenties: 5
Schrijf mee!