|
|
|
![]() |
|
Strumenti |
![]() |
#21 | ||
Bannato
Iscritto dal: Jun 2007
Messaggi: 36
|
Quote:
Quote:
64-Bit Media and x87 Floating-Point Instructions (Pub. 26569, Rev 3.04 - Sep/2003). Se interessa spiego perche' non sono state tolte. |
||
![]() |
![]() |
![]() |
#22 | |
Senior Member
Iscritto dal: Jan 2002
Città: non ti interessa
Messaggi: 5645
|
Quote:
Mi sembrava proprio strano che invece si abolissero le istruzioni fpu rinunciando a compatibilità e a tanto sviluppo passato sulle fpu, ma anche alla precisione estesa e tutto il resto. Quale è il tuo punto di vista sul perché non siano state tolte? |
|
![]() |
![]() |
![]() |
#23 | |
Bannato
Iscritto dal: Jun 2007
Messaggi: 36
|
Quote:
1) Come hai ricordato, le istruzioni x87 consentono una precisione ad 80-bit (dal Pentium Pro in poi) contro i 32-bit (singola precisione SSE) e 64 bit (doppia precisione SSE2). 2) Le istruzioni SSE/SSE2, sono piu' efficienti in packet mode (uso dell'intero registro XMM); in modalita' scalare le istruzioni sono meno efficienti basta confrontare la latenza e il throughput di due istruzioni ADDPD e ADDSD, nonostante la prima agisca su un set di 2 dati, le latenze e il throughput sono simili (5/4/4 contro 5/4/3) e (2/2/2 contro 2/2/1) per CPU di 0F3h/0F2h/069h, da cui si evince che tranne che per il Pentum M (probabilmente anche C2D), se si deve agire su dati scalari con operazioni non omogenee convengono ancora le istruzioni x87. Le istuzioni SSE/SSE2 convengono in caso di dati impacchettati su vettori a blocchi di 2 o di 4, specialmente per grosse quantita' di dati (ho semplificato parecchio). 3) Per le istruzioni SSE/SSE2 mancano del tutto funzioni trascendentali. Ci sono addizione, moltiplicazioni, sottrazione, divisione, radice quadrata, max e min (+ il reciproco in precisione singola). Mancano seno/coseno, tangente (parziale), arcotangente (parziale), 2^x-1, y*log2(x) e x+1. Insomma con le quattro operazioni piu' la radice quadrata, le istruzioni SSE/SSE2 non possono sostituire l'unita' FPU in alcun modo (se non a costo di un tempo di elaborazione assai elevato). |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:52.