Frage

In verschiedenen Assemblersprachen MUL (x86) / MULT (Mips) zur Multiplikation beziehen. Es ist eine Blackbox für den Programmierer. Ich bin daran interessiert, wie eigentlich eine CPU eine Multiplikation unabhängig von der Architektur erreicht. Ich habe (und, oder, xor, nicht, SHL, SHR, etc.) können sagen, ich habe zwei 16-Bit-Werte in meinem Register und ich bin die CPU, so habe ich MUL mit den anderen Bit-Hantieren Anweisungen implementieren. Was soll ich tun?

War es hilfreich?

Lösung

http://en.wikipedia.org/wiki/Multiplication_ALU auf Wikipedia listet verschiedene Methoden dafür Multiplikation in einer digitalen Schaltung.

Als ich an einem Projekt gearbeitet SIMD-Befehle zu einem DEC Alpha-Prozessor wie in Verilog zurück in der Schule an, wir implementiert ein Wallace-Baum-Multiplikator , der primäre Grund dafür ist es in einer festen Anzahl von Zyklen lief und war leicht zu Pipeline.

EDIT: Sie erwähnten die anderen Bit mit Anweisungen, auf modernen Prozessoren Hantieren Multiplikation wie diese nicht mikrocodiert werden würde; es so sein würde zu verlangsamen und der Prozessor in Benchmarks erhalten geschlachtet würden.

Andere Tipps

Diese Seite zeigt die Logikgatter für einen 4 * 4 kombi Vervielfacher. Sie können von dort arbeiten.

Hier Labor jemandes wo sie beschreiben den Aufbau einer 16-Bit-Multiplikator von 4 4-Bit-Multiplizierer, die jeweils mit uND-Gatter und Volladdierer gebaut. Vollständiges Design, Chip-Layout und Simulation Wellenformen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top