Cómo CPU implementan instrucciones como MUL / MULT?
-
22-08-2019 - |
Pregunta
En diferentes idiomas de montaje MUL (x86) / MULT (MIPS) se refiere a la multiplicación. Es un cuadro negro para el programador. Estoy interesado en la forma en realidad una CPU lleva a cabo una multiplicación independientemente de la arquitectura. Digamos que tengo dos valores de 16 bits en mis registros y yo soy la CPU, así que tengo que poner en práctica MUL usando las otras instrucciones de bit-jugueteando que tengo (y, OR, XOR, no, SHL, SHR, etc). ¿Qué voy a hacer?
Solución
http://en.wikipedia.org/wiki/Multiplication_ALU Wikipedia enumera diferentes métodos para hacer la multiplicación en un circuito digital.
Cuando trabajé en un proyecto para añadir instrucciones SIMD a un procesador DEC Alpha-como en Verilog en la universidad, se implementó un Wallace multiplicador árbol , la principal razón es que corrió en un número fijo de ciclos y era fácil de tubería.
EDIT: Usted ha mencionado el uso de la otra poco jugueteando instrucciones, a la multiplicación de los procesadores modernos no se microcodificado como esto; que sería manera de retardar y el procesador conseguiría sacrificados en los puntos de referencia.
Otros consejos
Esta página muestra las puertas lógicas para un multipler 4 * 4 combinacional. Se puede trabajar a partir de ahí.
Aquí es laboratorio de alguien en el que describen la construcción de un multiplicador de 16 bits 4 4 multiplicadores bits, cada una construida con puertas AND y sumadores completos. diseño completo, de diseño de chips, y formas de onda de simulación.