¿Necesita ayuda para averiguar el hardware de multiplicación simple?

1

Como parte de mi curso de Organización de Computadoras, necesito escribir para escribir un programa simple (en C) que simule el trabajo del "hardware de multiplicación refinado" como el que se muestra en "Organización y Diseño de Computadoras", por DA Patterson y JL Hennessy. Se adjunta la imagen.

Me cuesta entender cómo funciona este multiplicador (el libro tiene muy poca explicación) y si funciona con números firmados (complemento de 2)

    
pregunta newprint

1 respuesta

2

Se parece a un multiplicador de tipo clásico de cambio y adición. Una explicación adecuada requeriría una gran cantidad de diagramas, que lamentablemente no puedo proporcionar en este momento. En pocas palabras, si está multiplicando A por B, comienza con un registro de 'acumulador' puesto a cero. Luego, coloca A en un registro de desplazamiento y realiza iterativamente lo siguiente: desplaza A a la izquierda un lugar y observa el bit que cae; si es un '1', entonces agregue B al acumulador, de lo contrario, no agregue B. Si quedan más bits en A, desplace el acumulador a la izquierda un lugar y repita. Si A y B son valores de 32 bits, habrá 32 iteraciones de este desplazamiento y acumulación. Tenga en cuenta también que, como se incluirán 32 turnos, el acumulador debe ser de 64 bits, para adaptarse al resultado.

Una optimización que a veces se ve es usar los 32 bits altos del acumulador para mantener el valor de A; para cuando se necesite un bit dado en el producto acumulado, la parte restante del valor de A se habrá eliminado. Esto solo reduce el almacenamiento necesario en la implementación, pero conceptualmente se llevan a cabo los mismos cálculos.

Es posible que haya derribado un detalle en esa apresurada explicación, pero su idea básica debería estar allí.

    
respondido por el JustJeff

Lea otras preguntas en las etiquetas