Domanda

In diversi linguaggi assembly MUL (x86) / MULT (MIPS) si riferiscono alla moltiplicazione. Si tratta di una scatola nera per il programmatore. Sono interessato a come in realtà una CPU compie una moltiplicazione indipendentemente dall'architettura. Diciamo che ho due valori a 16 bit nei miei registri e io sono la cpu, quindi devo implementare MUL utilizzando le altre operazioni di bit-giocherellando che ho (e, OR, XOR, non, SHL, SHR, ecc). Che devo fare?

È stato utile?

Soluzione

http://en.wikipedia.org/wiki/Multiplication_ALU su Wikipedia elenca diversi metodi per fare moltiplicazione in un circuito digitale.

Quando ho lavorato su un progetto per aggiungere istruzioni SIMD ad un processore DEC Alpha-come in Verilog al college, abbiamo implementato un Wallace albero moltiplicatore , la ragione principale è che correva in un numero fisso di cicli ed era facile da pipeline.

EDIT: Lei ha parlato con l'altra punta giocherellare istruzioni, su processori moderni moltiplicazione non sarebbe microprogramma come questo; sarebbe modo per rallentare e il processore sarebbe ottenere macellati nei benchmark.

Altri suggerimenti

Questa pagina mostra le porte logiche di un moltiplicatore 4 * 4 combinatoria. È possibile lavorare da lì.

Ecco laboratorio di qualcuno in cui descrivono la costruzione di un moltiplicatore a 16 bit da 4 4 moltiplicatori bit, ciascuna costruite con porte AND e full adder. progettazione completa, il layout del circuito integrato, e di simulazione di forme d'onda.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top