Achtergrond: hoe werkt een processor?

Inhoudsopgave
  1. 1. Inleiding
  2. 2. 0’en en 1’en
  3. 3. Booleaanse logica
  4. 4. Transistors
  5. 5. Full adder

0’en en 1’en

Binnen de computer komen alle taken die uitgevoerd worden in de basis neer op rekenen en vergelijken. Of je nu aan het tekstverwerken of aan het gamen bent, de processor is druk bezig met op ongekende snelheid getallen op te tellen, te vermenigvuldigen of te vergelijken. Een computer rekent echter op een andere manier dan wij mensen. Waar wij in totaal tien cijfers kennen om alle denkbare getallen mee te maken (0, 1, 2, …, 9) heeft een computerchip slechts twee cijfers tot z’n beschikking: 0 en 1. De reden is simpel: wanneer je ervoor zorgt dat je alle berekeningen kunt uitvoeren met alleen nullen en enen, is dat uiteindelijk relatief simpel in een chip te verwerken. Het is dan in feite heel simpel: 0 is geen spanning, 1 is wel spanning.

Rekenen met alleen nullen en enen lijkt op het eerste gezicht heel gek, maar dat valt eigenlijk wel mee. De reden waarom wij mensen normaal gesproken met 10 cijfers rekenen, heeft alles te maken met het feit dat we stom toevallig tien vingers hebben. Als we werden geboren met in totaal slechts twee vingers, hadden we vermoedelijk hetzelfde als een computer gerekend.

Om te begrijpen hoe je getallen alleen 0’en en 1’en kunt opbouwen, moeten we even terug naar de basis van de manier waarop we zelf rekenen. Wanneer je gaat tellen vanaf 0, heb je tot en met 9 geen probleem. Boven de 9 hebben we echter geen cijfers meer. Hoe lossen we dat op? We zetten een 1 voor het getal en gaan weer verder vanaf nul. Het is te logisch voor woorden: 12 betekent in feite ‘1 x 10 + 2’. Wanneer je blijft tellen houdt het bij 99 opnieuw op, maar dan gebruiken we dezelfde truc weer. 437 betekent in feite ‘4 x 10 x 10 + 3 x 10 + 7’, ofwel ‘4 x 10² + 3 x 101 + 7’.

Binair

Bij rekenen met alleen 0’en en 1’en, wat we binair rekenen noemen, wordt in feite dezelfde truc toegepast, alleen ben je telkens véél eerder uitgeteld. Na 0 en 1 heb je geen cijfer meer over en moet je een 1 bij plaatsen. Ofwel: als wij mensen tellen als 0, 1, 2, 3, 4, 5, 6, 7 doet een computer hetzelfde op deze manier: 0, 1, 10, 11, 100, 101, 110, 111.

Wanneer je een dergelijk binair getal ziet, kun je het op vergelijkbare manier terugrekenen, zoals we in de vorige alinea deden met onze ‘normale’ getallen. Waar we daar echter machten van 10 gebruiken, moeten we nu aan de slag met machten van 2. Een voorbeeld: 1011 betekent omgerekend naar normale getallen ‘1 x 23 + 0 x 22 + 1 x 21 + 1 = 1 x 8 + 0 x 4 + 1 x 2 + 1 = 11’. Een kind kan de was doen! In onderstaande afbeelding zie je alle getallen die je met maximaal vier nullen of enen kunt maken.

Een processor ziet alle getallen dus als een aaneenschakeling van 0’en en 1’en. Eén 0 of 1 wordt in jargon een bit genoemd. De eerste PC’s konden standaard berekeningen uitvoeren met 8 bits in één keer. De combinatie van 8 bits wordt 1 byte genoemd. In een byte passen de getallen 0 tot en met 255. Dat in de computerwereld in eerste instantie alles om deze bytes draaide was niet gek: het Westerse alfabet telt inclusief alle vreemde tekens minder dan 255 karakters. Teksten konden zodoende worden opgeslagen met één byte per letter.


Een computer rekent binair en kan alle getallen maken met behulp van 0'en en 1'en.

Rekenen

Hoe kun je nu rekenen met 0’en en 1’en? Eigenlijk op exact dezelfde manier als wij het ook doen. Laten we als voorbeeld eens bekijken hoe we vroeger op de basisschool hebben leren optellen. Stel je moet de getallen 74 en 68 bij elkaar optellen. Hoe ging dat ook weer op de basisschool? Zie onderstaande afbeelding. Je begon bij de laatste twee cijfers: 4 + 8 = 12. Je schrijft dan onderin de 2 op, en neemt de 1 mee naar de volgende kolom. 1 + 7 + 6 = 14, ofwel je schrijft de vier op en neemt de 1 weer mee. Het resultaat: 74 + 68 = 142.

De processor doet met binaire getallen exact hetzelfde truc. 101 en 111 bij elkaar optellen? Opnieuw van rechts naar links: 1 + 1 = 10, ofwel 0 opschrijven en 1 overhevelen.  Tweede kolom: 1 + 1 + 0= 10, opnieuw 0 opschrijven en 1 overhevelen. Derde kolom: 1 + 1 + 1 = 11. Ofwel: 101 + 111 = 1100! Reken je het terug naar normale getallen, dan blijkt het te kloppen: 5 + 7 = 12.


De processor gebruikt dezelfde trucs als wij om getallen bij elkaar op te tellen.

Advertentie
0