moltiplicazione in multi scrittura ciclo datapath da zero
-
27-09-2019 - |
Domanda
Volevo sapere come il processore fa moltiplicazione in un multi-ciclo di dati-cammino fin dall'inizio cioè da insegnamento della lettura -> decodifica del instruction-> lettura dei file di registro, ecc
In altre parole ho voluto sapere che dato algoritmo della cabina per la moltiplicazione implementato separatamente (un circuito è dato) come intende estendere il data-percorso multi-ciclo per sostenere l'istruzione si moltiplicano utilizzando risorse minime.
Si può dire per la divisione anche?
Soluzione
Un altro buon collegamento è il nucleo microprocessore opensource OpenFire, variante / analogica MicroBlaze (che si basa su DLX) qui:
Una parte del percorso dati per l'unità ALU e moltiplicatore è nel file di openfire_primitives.v
.
Manuale di DLX datapath con buona spiegazione di gasdotto bancarelle e bolle è
http://www.cs.iastate.edu/~ Prabhu / Tutorial / PIPELINE / hazards.html
E c'è informazioni ops mulitcycle (DLX)
http://www.cs.iastate.edu/~ Prabhu / Tutorial / PIPELINE / multicycle.html
Quindi, operazione che possono soggiornare in pipeline (bisogno di più zecche) inserirà bancarelle (o bolla) a pipeline. Si può pensare a questo come fermare tutte le fasi della pipeline di oltre EX, che fanno un'operazione a lungo per diversi tisks.
Un'altra unità Mul / Div di opensource Verilog è qui: http://opencores.org/ websvn, filedetails? repname = OpenRISC & path =% 2Fopenrisc% 2Ftrunk% 2For1200% 2Frtl% 2Fverilog% 2For1200_mult_mac.v
Altri suggerimenti
Per la semplice moltiplicazione CPU sarà sulla fase EX della conduttura CPU. Così Fetch istruzione, decodificarlo, Chiedi RegisterFile per operandi di ingresso, Esegui moltiplicazione reale sul ALU.
Dipende ALU variante, moltiplicazione può prendere 1 ciclo CPU o più (con memorizzazione delle somme parziali di ciascun ciclo CPU, allora sarà l'EX0, EX1, EX2 ecc fasi della conduttura CPU). ALU lento può essere pipeline, così Darà risultato prima operazione in N zecche, e inizia a diverse operazioni ogni M
I vari hardware varianti dei moltiplicatori si può ottenere sulla pagina http://www.aoki.ecei.tohoku.ac.jp /arith/mg/algorithm.html