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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top