Arithmetic logic unit

De arithmetic logic unit (ALU) (Nederlands: rekenkundig-logische eenheid) is het centrale onderdeel van de processor van een computer dat de rekenkundige (arithmetic) en logische (logic) bewerkingen uitvoert. Ook wordt hier gekeken op welke geheugenplaats de volgende opdracht van het programma staat.

Arithmetic Logic Unit schematisch symbool. A en B zijn operanden, R is het resultaat, F is de functieselector en D is de uitvoerstatus (bijvoorbeeld Carry en Zero-bits en foutcondities zoals delen door 0)

Werking

bewerken

Een ALU is uitgevoerd met logische poorten, die bijna altijd gebouwd zijn met halfgeleiders (voornamelijk silicium). Deze poorten kunnen tegenwoordig in enkele (of in delen van) nanoseconden een bewerking uitvoeren. De berekeningen vinden in binaire code plaats. Dus met twee mogelijkheden: aan of uit, geleidend of niet geleidend, of twee verschillende spanningsniveaus (zie bit). Een aantal van deze bitbewerkingen binnen een ALU werken bijna altijd samen. Bijvoorbeeld in 8 of 16 of 32 bits eenheden parallel (meestal een macht van twee). Men spreekt dan van woorden.

De basisbewerkingen van een ALU zijn:

  • Het naar links of naar rechts verplaatsen van een of meer bitposities binnen een woord (SHIFT).
  • Het uitvoeren van rekenkundige bewerkingen op twee woorden (zoals optellen (ADD), increment en complement).
  • Het uitvoeren van logische bewerkingen zoals AND, NOT, OR en XOR.

Met deze basisbewerkingen kunnen andere complexe bewerkingen worden uitgevoerd (het vermenigvuldigen van twee getallen is bijvoorbeeld niets anders dan herhaaldelijk schuiven en optellen).

Geschiedenis

bewerken

In de beginjaren van computers, toen gebruik werd gemaakt van grote elektronische onderdelen zoals elektronenbuizen en transistors was het ontwerpdoel om met zo weinig mogelijk onderdelen een zo groot mogelijke functionaliteit te bereiken. Alle rekenkundige bewerkingen werden toen door één ALU in serie uitgevoerd. Naarmate de integratiegraad groter werd door de komst van de chip, werd van dit seriële principe afgestapt. Meerdere parallel werkende eenheden gaven dan een hogere snelheid. Een zogenaamde co-processor nam de rekenkundige taken voor zijn rekening, terwijl de hoofdprocessor hoofdzakelijk de programmatische procesuitvoering voor zijn rekening nam. Tegenwoordig kunnen op meerdere plaatsen ALU's of deeleenheden daarvan gebruikt worden. Het is mogelijk opzoektabellen te gebruiken in plaats van rekenkundige en logische berekeningen uit te voeren. Op deze manier kan de snelheid verder opgevoerd worden: een soort spieken in plaats van berekenen. Door dit soort technieken verliest de ALU geleidelijk zijn centrale positie in de processor.

Zie ook

bewerken