Unmultiplicador binari és uncircuit electrònic utilitzat enelectrònica digital, com ara unordinador, permultiplicar dosnombres binaris.
Es poden utilitzar diverses tècniquesaritmètiques informàtiques per implementar un multiplicador digital. La majoria de les tècniques impliquen calcular el conjunt deproductes parcials, que després es sumen mitjançantsumadors binaris. Aquest procés és similar ala multiplicació llarga, excepte que utilitza unsistema de numeració en base 2 (binari).
Entre 1947 i 1949 Arthur Alec Robinson va treballar per a English Electric Ltd, com a aprenent estudiant, i després com a enginyer de desenvolupament. De manera crucial durant aquest període va estudiar un doctorat a la Universitat de Manchester, on va treballar en el disseny del multiplicador de maquinari per a l'ordinador Mark 1 primerenc. No obstant això, fins a finals de la dècada de 1970, la majoria deminicomputadors no tenien una instrucció de multiplicació, de manera que els programadors utilitzaven una "rutina de multiplicació"[1][2][3] quecanvia repetidament i acumula resultats parcials, sovint escrits mitjançantel desenrotllament de bucles.Els ordinadors mainframe tenien instruccions de multiplicació, però feien el mateix tipus de canvis i afegeix com a "rutina de multiplicació".
Els primersmicroprocessadors tampoc no tenien instruccions de multiplicació. Tot i que la instrucció de multiplicació es va fer comuna amb la generació de 16 bits, almenys dos processadors de 8 bits tenen una instrucció de multiplicació: elMotorola 6809, introduït el 1978,[4] i la famíliaIntel MCS-51, desenvolupada el 1980, i més tard els moderns microprocessadorsAtmel AVR de 8 bits presents als microcontroladors ATMega, ATTiny i ATXMega.
A mesura que es van disposar méstransistors per xip a causa d'una integració a més gran escala, va ser possible posar suficients sumadors en un sol xip per sumar tots els productes parcials alhora, en lloc de reutilitzar un únic sumador per gestionar cada producte parcial d'un en un.
Com que alguns algorismes comuns deprocessament de senyals digitals passen la major part del temps multiplicant-se, els dissenyadors deprocessadors de senyals digitals sacrifiquen una àrea de xip considerable per tal de fer la multiplicació el més ràpid possible; una unitatde multiplicació i acumulació d'un sol cicle sovint utilitzava la major part de l'àrea de xip dels primers DSP.
El mètode que s'ensenya a l'escola per multiplicar nombres decimals es basa en calcular productes parcials, desplaçar-los cap a l'esquerra i després sumar-los. La part més difícil és obtenir els productes parcials, ja que consisteix a multiplicar un nombre llarg per una xifra (de 0 a 9):
123
× 456
=====
738 (això és 123 × 6)
615 (això és 123 × 5, desplaçat una posició cap a l'esquerra)
+ 492 (això és 123 × 4, desplaçat dues posicions a l'esquerra)
=====
56088
El procés de multiplicació es pot dividir en 3 passos:[5][6]
Les arquitectures multiplicadores més antigues utilitzaven un canviador i un acumulador per sumar cada producte parcial, sovint un producte parcial per cicle, intercanviant la velocitat per l'àrea de matriu. Les arquitectures multiplicadores modernes utilitzen l'algoritme de Baugh-Wooley (modificat),arbres de Wallace omultiplicadors de Dadda per sumar els productes parcials en un sol cicle. El rendiment de la implementació de l'arbre de Wallace de vegades es millora mitjançantla modificació deBooth que codifica un dels dos multiplicands, la qual cosa redueix el nombre de productes parcials que s'han de sumar.
Per a la velocitat, els multiplicadors de canvi i suma requereixen un sumador ràpid (alguna cosa més ràpid que el transport de ondulacions).
Un multiplicador de "cicle únic" (o "multiplicador ràpid") és puralògica combinacional.
En un multiplicador ràpid, el procés de reducció parcial del producte normalment contribueix més al retard, la potència i l'àrea del multiplicador.[7] Per a la velocitat, les etapes de "reduir el producte parcial" s'implementen normalment com asumador d'estalvi de transport compost per compressors i el pas de "càlcul del producte final" s'implementa com a sumador ràpid (alguna cosa més ràpid que el transport de ondulació).