De oorspronkelijk Pentium CPU kon in 10 clockcycles een multiply doen, maar had voor een division 41 clockcycles nodig. Waarom is dat?
Als je kijkt naar onze schoolmethoden voor het vermenigvuldigen en delen, dan kun je het antwoord raden.
Vermenigvuldigen doen we namelijk door per cijfer een vermenigvuldiging te doen en de berekende getallen uiteindelijk op te tellen. De vermenigvuldigingsstappen zijn parallel uit te voeren. De CPU doet die stappen dus ook parallel.
Het delen doet de CPU op een soortgelijke methode als onze staartdeling. Die stappen kun je echter niet parallel uitvoeren, want de volgende stap is afhankelijk van de vorige. De CPU kan het probleem dus niet makkelijk parallel oplossen. Daarom duurt het langer.
Je ziet het terug in de logische diagrammen voor multiply en division. Op CPU's die geen float division kunnen doen kun je je wenden tot benaderingen.
Geen opmerkingen:
Een reactie posten