linux user group brescia

immagine del castello

Archivio della mailing list

Upgrade sistema (solo info preliminari)

Luca Giuzzi giuzzi a dmf.bs.unicatt.it
Ven 9 Feb 2001 13:19:11 UTC
...un commento su ABSTAIN FROM (che non ho incluso nel mail precedente):
 
Per una architettura di processore disegnata per lavorare a frequenze 
 alte, il dover ricaricare tutta la cache dalla DRAM e' un collo di
 bottiglia estremamente oneroso. Al fine di evitare questo inconveniente
 tutti i processori dal Pentium66 in poi (per ia32... su RISC da prima!)
 includono una BPU o Branch Prediction Unit. Il fine della BPU e' di 
 `indovinare' se una istruzione di salto condizionale sara' eseguita
 oppure no e, nel caso, fare il preload della cache. Il problema e' che
1. in un ciclo, la BPU non puo' fornire risultati significativi sin dopo la
 seconda iterazione;
2. non sempre la BPU ha ragione.

Al fine di evitare questo collo di bottiglia l'architettura ia64 prevede l'idea
 di eliminare il piu' possibile i salti condizionati, sostituendoli con
 blocchi di istruzioni da cui il processore puo' decidere di `astenersi'.
 Un compilatore deve ottimizzare il flusso del programma in modo da seguire
 questa strategia piuttosto che introdurre salti condizionati nelle sezioni
 critiche del codice. Evidentemente questo e' un lavoro non da poco
 per linguaggi come il C o, peggio ancora, il fortran, ove l'istruzione
 goto e' presente e usata. D'altro canto la funzionalita' e' mappata
 direttamente in INTERCAL, cosa che facilita enormemente la realizzazione
 di un compilatore ottimizzante.
[Nota a margine: Woods & Lyon hanno avuto il buon senso di non includere
 il costrutto GO TO nel loro linguaggio; e' lasciato come esercizio al
 lettore vedere come questo contribuisca a sviluppare codice molto piu'
 leggibile]

Ciao,
 lg
 
 



Maggiori informazioni sulla lista Lug