Perché l'hardware non è esponenziato?

5

Perché non c'è nessuna operazione di esponenziazione nell'hardware, anche se molte lingue hanno operatori integrati per questo?

È perché anche le implementazioni hardware dovrebbero utilizzare lo stesso algoritmo del software (ad esempio, nessuna implementazione hardware potrebbe essere significativamente più efficiente), o perché è usata raramente, o un'altra ragione?

    
posta user1358 24.12.2013 - 09:53
fonte

2 risposte

5

Per gli interi, le uniche operazioni di esponenziazione che sono normalmente presenti nell'hardware sono i turni, << e >> (in gergo C), che moltiplicano per potenze esponenziali di due. Per qualsiasi altra cosa con numeri interi, si esauriscono i bit per rappresentare le cose troppo velocemente perché sia utile; nel momento in cui risolvi il problema, potresti anche non avere un supporto hardware speciale dato che hai anche dovuto occuparti della gestione della memoria e di altre cose costose.

Non conosco l'hardware a virgola mobile così bene, ma l'esponenziazione dell'hardware ha più senso in quanto hai l'intervallo numerico per renderlo ragionevole. (Il mio google-fu indica che qualcuno sembra vendere il layout hardware per renderlo possibile ...)

    
risposta data 24.12.2013 - 10:37
fonte
1

Alcune macchine (specialmente i microcontrollori) includono hardware per accelerare i moltiplicatori a precisione estesa (512+ bit), e tale hardware sarà di aiuto anche per l'esponenziazione (utile per cose come i cifrari RSA). L'hardware per accelerare l'esponenziazione precisa (a parte l'accelerazione della moltiplicazione) è raro perché le prestazioni con o senza tale hardware saranno dominate dal tempo richiesto per eseguire le moltiplicazioni costitutive.

Se uno non ha bisogno di risultati precisi, si possono aumentare i numeri in virgola mobile a qualsiasi potenza desiderata calcolando il log della base, moltiplicandolo per l'esponente e aumentando e a quella potenza ; molte unità in virgola mobile includono l'hardware per accelerare tutti e tre i passaggi.

    
risposta data 24.12.2013 - 20:35
fonte

Leggi altre domande sui tag