integer division, si fa in fretta a dire divido
Posted: 26 Aug 2016, 17:30
per lavoro, m'e' toccato implementare una alu a 128bit
a fatica sono riuscito a completare una mul{u,s} che impiega *solo* 3 colpi di clock
ma la integer division ... guardate un po' qui sopra, e fate conto che sono solo 8 bit
per 32 bit impiega 35 colpi di clock
(almeno non sbaglia i calcoli (cosi' sembra))
dovendo risolvere il problema Q=N/D
metodi + furbi mi sa che passano dalla stima di (1/D)
p.e. tramite Newton-Raphson (per n>32bit e' l'ideale)
che costa il dover implementare logica fractional
una volta trovato (1/D): fractional number
va moltiplicato per N~: fractional number of N
dopo di che va convertito il risultato (1/D)*(N~) in integer (1)
e finalmente si ha Q, il risultato !
direi che tutta questa faccenda occupa aree, risorse, e sopratutto ...
... aggiunge complexity al design
insomma, si fa in fretta dire "divido, cosa vuoi che sia"
e' che la divisione-intera-veloce e' una faccenda tosta
(1) le conversioni integer da/a fractional, se fatte in modo furbo, sono tutte shift{R,L}