Torneremo indietro (?) all'aritmetica in virgola fissa nel prossimo futuro? [chiuso]

2

Per quanto ricordo, questa è stata la tendenza in corso del passato, sono solo uno studente, quindi potrei sbagliarmi:

  • Molto tempo fa: numeri interi e calcoli. Molto preciso, tuttavia non può presentare una vasta gamma.
  • In un secondo momento: Aggiunti i numeri in virgola mobile a precisione singola ( floats ) e anche le FPU aggiunte che sono incredibilmente veloci nel calcolo con esse.
  • Molto recentemente (?): i numeri in virgola mobile a doppia precisione ( doubles ) iniziano a diventare più comuni. Ad esempio in OpenGL Shader Language stanno introducendo costantemente sempre più metodi che funzionano con i doppi nativamente. Penso che stiano lavorando anche alle FPU per i doppi?

Ma c'è stata anche una modifica all'elaborazione a 64 bit qualche anno fa, quindi ho alcune domande:

  • Ora ci sono più opzioni da calcolare con numeri a virgola fissa (forse due registri int64?)?
  • Perché, per quanto ne so, non ci sono unità specifiche per il calcolo di interi veloci rispetto ai numeri in virgola fissa?

Forse la maggior parte di quello che sto dicendo non ha molto senso, ma penso che la domanda resti valida. C'è un interruttore che passiamo all'aritmetica in virgola fissa nel prossimo futuro?

    
posta skiwi 17.01.2014 - 12:53
fonte

1 risposta

13

No.

All'inferno non c'è possibilità di una palla di neve che il calcolo numerico passerà (indietro) all'aritmetica a punto fisso nel prossimo futuro o in qualsiasi altro futuro.

Ci sono diversi motivi per questo, il più importante è che l'aritmetica in virgola fissa richiede che il programmatore tenga traccia della posizione finale del punto decimale (binario) nel calcolo. Questo è un sacco di lavoro. L'intero punto dell'aritmetica in virgola mobile consiste nel lasciare che il computer esegua la contabilità decimale (binaria) dei punti e lasci che il programmatore si preoccupi dell'algoritmo.

Concetto chiave: non si desidera eseguire il calcolo nei limiti della precisione e della precisione della macchina, poiché alcuni calcoli richiedono molto tempo per convergere fino a quel limite. Vuoi solo ottenere una risposta che sia "abbastanza buona" per i tuoi scopi specifici. Di solito, questo è un po 'meno di quello che la macchina in teoria può fare.

Esistono moltiplicatori veloci interi, nel mondo dei processori di segnali digitali interi. La divisione dell'intero hardware esiste su alcuni processori, ma non tutti. Non ce n'è così tanto da invocare, poiché la divisione integer non è così comune, e non c'è molto che la richieda, rispetto al real-time on-chip necessario per renderlo molto più veloce rispetto a farlo nel software o confrontato con la differenza di sforzo per la divisione intero rispetto alla divisione in virgola mobile.

EDIT: per chiarire, in base a un commento: un'unità di divisione a virgola mobile richiede un divisore intero al suo interno, quindi alcuni elementi aggiuntivi per gestire la normalizzazione della mantissa dei risultati e il calcolo dell'esponente dei risultati. La roba extra è piccola rispetto al divisore intero stesso. Una volta che si fornisce l'aggiunta, la sottrazione e la moltiplicazione in virgola mobile e si decide di fornire una divisione intera, il costo aggiuntivo di fornire una divisione in virgola mobile è generalmente ridotto.

I dati di controllo 6600 inizialmente prevedevano il virgola mobile a quattro funzioni e l'aggiunta, la sottrazione e la moltiplicazione di interi, ma NON fornivano la divisione di interi. Non è stato visto come necessario in modo critico per la base di clienti principale della macchina. Gli ingegneri del CDC in seguito hanno notato che potevano usare l'hardware a virgola mobile a precisione doppia per fornire una capacità di divisione di numeri interi a gamma ridotta (48 bit contro 60 bit), quasi gratuitamente.

Un DSP intero di Freescale (Motorola) di grandi dimensioni che io conosca fornisce un'istruzione "divide step": il programmatore deve impilare tante delle istruzioni che ha bisogno di bit nel suo risultato per eseguire una divisione full-up. È un dolore da usare. Ho dovuto occuparmene brevemente alcuni anni fa, mentre risolvevo un'applicazione normalizzata dei minimi quadrati medi (filtro adattivo).

Leggi i metodi numerici per scienziati e ingegneri di Hamming . (Dover Press è l'amico dello studente). All'inizio del libro, approfondisce il motivo per cui il virgola mobile viene utilizzato per il calcolo numerico. Inoltre, chiedi in tutto il dipartimento EE, e vedi se hanno un'elaborazione del segnale digitale elettiva.

    
risposta data 17.01.2014 - 13:35
fonte

Leggi altre domande sui tag