View Single Post
Old 28-09-2006, 12:20   #12
Criceto
Bannato
 
L'Avatar di Criceto
 
Iscritto dal: Jun 2004
Messaggi: 4607
Quote:
Originariamente inviato da liviux
Ma cosa c'è ancora da ottimizzare, per esempio, nel campo "String and Text processing"? Possibile che sia proprio necessario introdurre nuovi set di istruzioni, con tutto quello che si portano dietro per lo sviluppo? Nuovi codepath, nuove ABI, nuovi compilatori: tutto ciò ha un costo non indifferente per gli sviluppatori. Secondo me, sarebbe stato molto meglio se Intel (o meglio Intel e AMD in concerto) ad un certo punto avessero introdotto IL set di istruzioni SIMD, pensato con una certa lungimiranza e destinato a rimanere invariato per almeno 10 anni. Per ottenere prestazioni maggiori di quelle iniziali, poi, ci si sarebbe affidati all'evoluzione delle microarchitetture (considerando che le istruzioni vengono notevolmente "rimaneggiate" in hardware durante l'esecuzione), con grande beneficio per gli sviluppatori e per i consumatori, che non si troverebbero a chiedersi "Ma questo software mi permetterà di sfruttare le estensioni SSEX della mia nuova CPU?"
Intel non è mai stata brava a fare le sue architetture al primo colpo.
Tutti i suoi processori sono dei pasticci con patch su patch, registri "fantasma", traduzioni di opcode CISC in RISC e via discorrendo.
Tutti escamotage per aggiustare un'architettura nata male.

Però avendo una quantità di soldi più o meno infinita si possono permettere di usare migliaia tra gli ingegneri più cazzuti del mondo per far correre i loro catorci. E alla fine ci riescono.

Per le MMX è uguale. Erano una brutta copia delle Altivec-VMX dei PowerPC. E tali sono rimaste fino a queste SSS3 che dovrebbero finalmente avere prestazioni paragonabili a parità di clock, pur con un architettura (come al solito) meno elegante.

Certo per chi deve supportare tutta la generazione degli x86 fino ai Pentium sarà un problema sfruttare le ultime caratteristiche delle SSS3 o SSS4 e mantenere la compatibilità. Ma, per esempio, per Apple è più facile perchè parte con gli Intel con almeno le SS3.

Per quanto riguarda le nuove istruzioni delle SS4, invece, io trovo una buona idea fare dell'hardware specifico per le operazioni più comuni. Tanto queste operazioni sono di solito implementate in librerie o frameworks a livello di OS e quindi l'uso delle nuove istruzioni è trasparente per i programmatori "normali".
Criceto è offline   Rispondi citando il messaggio o parte di esso
 
1