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

Full adder

Om een volledige één bit opteller te maken, heb je niet alleen een uitgang nodig voor een extra bit, maar moet je ook overgehevelde bit kunnen meenemen. Naast de twee basis ingangen heb je dus ook nog een carry-in (CI) ingang nodig. In onderstaande afbeelding zie je het complete overzicht van alle mogelijkheden van de drie ingangen en de bijbehorende gewenste twee uitgangen. Er zijn verschillende manieren om dit schema met een beperkt aantal gates te implementeren. Een voorbeeld daarvan zie je ook in de afbeelding. Je hoeft je niet te schamen wanneer je dit diagram te complex vindt om door te rekenen, maar neem van ons aan: voor elke combinatie van A, B en CI, komen de uitgangen Q en CO altijd overeen met hoe die in het schema zijn gesteld. Ofwel: met een twaalftal gates hebben we een volledige single-bit adder met carry-in én carry-out gefabriceerd!



Met 12 gates maak je een volledige single-bit adder met carry in- en uitgang.

Als we de zo genoemde full-adder even beschouwen als een ‘black box’ en zodoende het hele schema vervangen door één blokje, dan kunnen we simpelweg een 8-bit opteller maken door acht van deze full-adders aan elkaar te knopen. Samenvattend: met 8 keer 12 logische gates die elk bestaan uit een handvol transistors, maak je een schakeling die twee getallen tussen de 0 en 255 kan optellen.



Knoop 8 full adders aan elkaar en je kunt twee 8-bit getallen bij elkaar optellen!

Conclusie

Vanzelfsprekend hebben we nu slechts een tipje van de sluier opgelicht. Een processor kan veel meer dan alleen optellen. Maar ook complexere taken als vermenigvuldigen of bijvoorbeeld het onthouden van data kan uiteindelijk worden herleid naar een aaneenschakeling van logische gates en daarmee een aaneenschakeling van transistors. Om een processor alle complexe taken die hij tegenwoordig moet doen te laten uitvoeren, zijn zoals gezegd vele honderden miljoenen transistors nodig. Veel is natuurlijk hergebruik: als je weet hoe je met een combinatie van een aantal transistors één bit kunt onthouden, kun je die betreffende schakeling miljoenen keren in de processor plaatsen om zo enkele Megabytes aan cache geheugen te maken. Maar het blijft een gegeven dat processorontwerpers alle taken die ze willen uitvoeren moeten reduceren tot een schema met 1’en en 0’en en daarna met logische gates moeten gaan puzzelen. Waar de basis relatief eenvoudig blijkt, is het ontwikkelen van een processor als de Core i7 een waar huzarenstuk. Geen wonder dat onze wereld slechts een zeer beperkt aantal ontwerpers van high-end processors kent…

Advertentie
0