Menů principale
 Notizie
 Grafica
 Forum
 Links
 Retro Trailer
 Recensioni
 Modelli Amiga
 Storia Amiga
 Retro-Gamers
 Lista Utenti
 Contatti
 Policy sito
Ricerca Google

Login

Nick


Password


Comandi

[b]-[/b]
Attiva/disattiva il neretto

[i]-[/i]
Attiva/disattiva l'italico

[br]
Inserisce un a capo

[p]
Inserisce un interruzzione di paragrafo

[center]-[/center]
Attiva/disattiva allineamento centrato

[justify]-[/justify]
Attiva/disattiva allineamento giustificato

[box]-[/box]
Apre/chiude una tabella

[boxcell] o [boxcell=n]-[/boxcell]
Apre/chiude una cella

[boxrow]-[/boxrow]
Apre/chiude una linea di celle

[quote]-[/quote]
Crea un box per quotare commenti.

[quote=titolo]-[/quote]
Come Quote ma con titolo.

[size=valore]-[/size]
Imposta la grandezza del carattere

[color=valore]-[/color]
Imposta il colore del testo.

[url=indirizzo]-[/url]
Attiva una porzione di testo

[img]indirizzo[/img]
Visualizza l'immagine indicata in 'indirizzo'.

[img;w=px;h=px;mini=%]indirizzo[/img]
Come sopra, w ed h sono base e altezza in pixel o mini č la percentuale di riduzione dell'immagine. Con mini=std l'immagine avrŕ una grandezza predefinita

Rispondi ad un commento
Regolamento Commenti e Topic

Tutti gli utenti che usufruisco di questo servizio sono pregati di rispettare poche semplici regole:

- Non e' possibile inserire commenti/topic contenenti volgarita', torpiloquio e/o offese di vario genere.

- E' assolutamente vietato inserire immagini e/o link a sfondo pornografico.

- Sarebbe preferibile evitare commenti mirati alla polemica e alla provocazione.

- Si ricorda che per netiquette, scrivere maiuscolo equivale a "URLARE", non va quindi bene scrivere tutto un post in maiuscolo.

- E' necessario ricordare che non e' bene fare commenti sprezzanti riguardo argomenti quali: religione, politica e la multietnia

- Non sono molto tollerati commenti/topic con eccessive abbreviazioni stile SMS.

- Eventuali critiche all'operato dei moderatori saranno punite a discrezione degli stessi.

- E' consigliabile rileggere sempre i commenti/topic prima di postarli, onde evitare lo spopolare di commenti ricchi di errori che potrebbero anche essere fraintesi o non compresi da utenti non italiani che sono alle prime armi con la lingua.

- E' buona cosa inserire i Topic nelle corrette sezioni, nell'indice delle stesse e' presente una breve descrizione sul contenuto, in caso di errore i Topic possono essere spostati nella sezione corretta dagli admin (Mak73) I commenti/topic che non rispettano tali regole verranno eliminati.

I gestori del sito non si assumono nessuna responsabilita' sul contenuto dei commenti riportati.

Risposta

Stile Testo
Dimensione:  Colore:  Allinea: 

Altri comandi
Emoticons
Clicca per riportare il codice nell'area di testo oppure posizionati su un'immagine per vederne il relativo comando.
:) :( :D ;) :P Oo -.- :O :ok: :pugni: :sedia: :tsk: :morto: :vietato: :superman: :sbav: :guardati: :rolleyes: :ghgh: :asd: :specchio: :migira: :incazz: :svitato: :sese: :° :uhm: :eheh: :fii: :muro: :goccia: :clap: :wuatta: :boom: :angelo: :brill: :mhua: :rotfl: :huh: ^^ :nono: :rosso: :azz: :lol: :dmon: :dance: :cool: :bleah: :...: :cuori: :yeah: :alien:
Testo
formattazione
   

08 Settembre 2019 Postato da: Mak73
Compilatore GCC Ottimizzato
Volevo cercare di fare un po' di chiarezza, magari anche con il vostro aiuto, su cosa ha introdotto la nuova versione di questo compilatore.

Anzitutto un preambolo su come funziona il 68060 e quindi anche il 68080 della Vampire.
Questi due processori hanno un'unità in grado di prevedere i salti nell'esecuzione del codice, queste situazioni fanno perdere normalmente diversi cicli di clock, il 68040 ne impiega ben 11 per eseguire tale istruzione. Questa unità di predizione dei salti analizza il codice ed in base ad un certo algoritmo stabilisce o meno se sta per arrivare un'istruzione di salto o meno e di conseguenza predispone il tutto per eseguirla. Se tale predizione risulta essere giusta, l'operazione di salto viene eseguita in tempo zero, ricordo che il 68060 è in grado arrivare ad eseguire due/tre istruzioni per ciclo di clock, quindi eseguirà il salto e altre due istruzioni nello stesso ciclo, ovviamente nel caso ottimale. Se la predizione è sbagliata impiega cmq solo tre cicli per eseguire il salto.

Una piaccola parentesi relativa al 68080 che molto probabilmente, sfruttando le conoscenze odierne, ha un'unità di predizione dei salti più efficiente di quella del 68060 che era il primo processore ad implementare questa cosa insieme al suo rivale il Pentium.

Tornando a bomba sul compilatore GCC, quelli tradizionali si limitavano a compilare il codice usando il set specifico delle istruzioni del processore utilizzato, il nuovo compilatore fa una cosa in più, ordina le istruzioni in modo che l'unità di predizione dei salti interna al 68060 e 68080 abbia sempre successo, ed i salti vengano sempre eseguiti in tempo zero, creando così un enorme vantaggio.

PS: Se ho sbagliato in qualcosa segnalatemelo pure.
Commenti: 15  Aggiungi  - Leggi

Blue-troll!

Post inviati: 596

Visulizza profilo Messaggio Personale
95.248.2.*** Mozilla/5.0 (Macintosh; PowerPC MorphOS 3.12; Odyssey Web Browser; rv:1.26) AppleWebKit/538.10 (KHTML, like Gecko) OWB/1.26 Safari/538.10
Commento
Guruman 10 Settembre 2019    00:09:33
cgugl ha scritto
Questo perchè il GCC era fermo da millenni.

GCC è alla versione 9.2, uscita ad Agosto 2019 se non sbaglio. GCC per 68k ha progredito poco perché il 68k è un'architettura morta, e chi vuole provare a resuscitarla deve mettere in conto che o assegna risorse a cose come queste, o continuerà a ottenere codice compilato in maniera non ottimale...
Citazione
Gunnar proponeva di dare una valutazione alla routine non solo in base al numero teoretico di cicli macchina richiesti ma di usare una funzione complessa che tenesse conto di molte cose, cioè:
- minor numero di cicli (cioè eliminare le istruzioni lente)
- preferire le istruzioni scalari (quelle che più facilmente vengono eseguite in parallelo)
- preferire le istruzioni con minor latenza (l'istruzione è veloce in termini di cicli ma non di accesso alla ram)
- preferire le routine che operano su piccole aree di memoria (per ottimizzare le cache)

POI, come se non bastasse, ha chiesto di creare una libreria con le routine più comuni ottimizzate dall'uomo da dove avrebbe pescato il compilatore , perchè l'uomo genera codice anche del 30-40% più snello....

GCC utilizza già delle valutazioni più complesse della sola valutazione del peso della singola istruzione, specie quando utilizzando le direttive per una maggior livello di ottimizzazione effettua più passaggi sul codice, ma un compilatore alla fin fine deve sempre applicare un algoritmo (o una successione di algoritmi) valido per tutti i codici sorgenti, non può ottimizzare ogni singola routine come potrebbe fare un essere umano. Del resto il problema delle ottimizzazioni è complesso e la conclusione è che qualsiasi sia l'architettura di destinazione e qualunque sia il livello di ottimizzazioni implementato, il codice ottenuto sarà sempre, per un motivo o per l'altro, sub-ottimo.
Per farla breve, spesso Gunnar parla di cose di cui non sembra capire appieno le implicazioni e parte con voli pindarici che fanno più male che bene al suo progetto. In questo caso chiedendo a una sola persona di fare un lavoro che non è stato fatto da centinaia di persone che hanno lavorato a compilatori C e C++ negli ultimi oltre 30 anni...

Saluti,
Andrea

Utenti Online
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 2 registrati - AfAOne - braian -
114 non registrati

Benvenuto all'ultimo utente registrato: zulu

Buon Compleanno a Yuppis Revange - jpp - pocketclouds - 

© Amigapage 1998 - 2007 - Sito italiano dedicato alla piattaforma Amiga ed evoluzioni varie.
Struttura del sito interamente ideata e realizzata da Marco Lovera e Alessandra Lovera - Tutto il materiale inserito all'interno del sito č dei rispettivi autori/creatori.
E' assolutamente vietata la riproduzione o la manipolazione di tutti i contenuti o parte di essi senza l'esplicito consenso degli amministratori e degli autori/creatori.

Eseguito in 0.12288188934326 secondi