Torna indietro   Hardware Upgrade Forum > Hardware Upgrade > News

La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
Abbiamo visto ancora una volta la Formula E da vicino, ospiti di Jaguar TCS Racing. In questa occasione però curve e rettilinei erano quelli di un circuito permanente, molto diverso dagli stretti passaggi delle strade di Roma
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo ha puntato forte sul gaming negli ultimi anni e lo testimoniano i marchi LEGION e LOQ, il primo per gli amanti delle massime prestazioni e dell'assenza di compromessi, il secondo per chi desidera soluzioni dal buon rapporto tra prestazioni e prezzo. Abbiamo provato due esponenti dell'offerta, così da capire l'effettiva differenza prestazionale.
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing propone sul mercato non uno ma ben due auricolari nuovi: Ear di terza generazione e Ear (a) ossia un nuovo modello a basso costo pronto a ritagliarsi una fetta di mercato. Entrambi rimangono fedeli al marchio per il design ancora trasparente ma fanno un balzo in avanti notevole per qualità e soppressione del rumore.  
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-12-2013, 00:16   #21
LMCH
Senior Member
 
Iscritto dal: Jan 2007
Messaggi: 5294
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Anche l'ISA conta, e non poco. Non foss'altro perché l'implementazione dipende, ovviamente, da essa.
Ed infatti l'ISA x86 fa decisamente pena sotto tale aspetto, servono decoder molto più complicati che creano colli di bottiglia sia sulle unita di esecuzione a valle che sulla frequenza di clock massima.

Invece l'ISA ARM è molto più pulita, al punto che quando hanno introdotto le estensioni THUMB (che dimezzano la lunghezza media delle istruzioni) il "decoder THUMB" è in pratica uno stadio in più a "mappatura fissa" (senza stati interni) sul decoder istruzioni di ARM32.

Inoltre la differenza di prestazioni "tra istruzioni a lunghezza fissa" ed "istruzioni a lunghezza variabile" dipende anche dalla semantica delle singole istruzioni e dalla presenza o meno della cache istruzioni.

Ad esempio sugli ARM fu introdotta l'estensione THUMB per avere codice con compattezza comparabile a quella di cpu ad 8bit, poter fare a meno di una cache istruzioni (o usare cache istruzioni più piccole) ed avere buone prestazioni anche con bus verso la i-cache a 16bit.
Ma per roba ad alte prestazioni basta avere un i-cache più grande e gran parte della differenza tra istruzioni di lunghezza fissa e variabili viene meno.

E' inoltre da notare che il set d'istruzioni A64 a 64bit dei nuovi ARMv8 ha parecchie differenze rispetto al "vecchio" A32 proprio per scalare bene in prestazioni in un contesto "a 64bit" (bus dati almeno a 64bit, processi produttivi che permettono di avere minimo una certà densità, ecc. ecc.).
Guardacaso alcune feature di A64 ricordano le "vecchie" cpu Alpha
(il primo microprocessore a 64bit e per anni campione assoluto in termini
di prestazioni per singolo core, se ricordo bene, due anni dopo che smisero di svilupparne
versioni più evolute e con processo produttivo più arretrato
superava ancora in prestazioni su interi e float sia gli x86 che gli Itanium).

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Con numeri così elevati in gioco anche la "x86 tax" non ha più un peso così rilevante nel computo della dimensione del die e nei consumi.
E' rilevante se va a creare un collo di bottiglia sui decoder istruzioni rispetto agli ARM.

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Senza dimenticare che pure ARM si porta dietro la sua "tax", che consiste nelle diverse ISA che deve supportare, non ultima quella a 64-bit che presenta un'opcode table e una struttura delle istruzioni molto diversa da quella tradizionale. Anche questo ha un costo; non elevato come nel caso di Intel, ma che incide sia nel numero di transistor che nell'implementazione della pipeline.
La differenza è che i vari set d'istruzione ARM sono ad alta simmetria (con molte meno eccezioni nella decodifica) con la possibilità di passare da un istruzione THUMB ad ARM32 con una "espansione fissa" senza stati interni aggiuntivi e con previsto sin dal principio un meccanismo di espansione del set d'istruzioni (usando gli opcode per i coprocessori) che permettono di avere decoder molto semplici che possono operare in parallelo e che rendo più semplice commutare da uno all'altro.
Fa una differenza notevole.
LMCH è offline   Rispondi citando il messaggio o parte di esso
Old 17-12-2013, 06:23   #22
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da LMCH Guarda i messaggi
Ed infatti l'ISA x86 fa decisamente pena sotto tale aspetto, servono decoder molto più complicati che creano colli di bottiglia sia sulle unita di esecuzione a valle che sulla frequenza di clock massima.
Passi sulla frequenza, che potrebbe essere influenzata (ma non è scontato: in genere aggiungere qualche stadio di pipeline è sufficiente per eliminare questo problema), ma quale sarebbe l'impatto sulle unità d'esecuzione?
Quote:
Invece l'ISA ARM è molto più pulita, al punto che quando hanno introdotto le estensioni THUMB (che dimezzano la lunghezza media delle istruzioni)
Non è affatto vero che la dimezzano. Persino ARM dichiara un densità di codice pari al 70% circa, ma ci sono parecchie statistiche in merito che mostrano come la densità sia buona, ma assolutamente lontana dalla metà rispetto all'originale ARM.

D'altra parte è anche ovvio che sia così: Thumb ha istruzioni a 16 e 32 bit, e non usa soltanto le prime, anche se sono mediamente le più frequenti.
Quote:
il "decoder THUMB" è in pratica uno stadio in più a "mappatura fissa" (senza stati interni) sul decoder istruzioni di ARM32.
Sì, ne sono a conoscenza.
Quote:
Inoltre la differenza di prestazioni "tra istruzioni a lunghezza fissa" ed "istruzioni a lunghezza variabile" dipende anche dalla semantica delle singole istruzioni
Potresti fare un esempio di quello che ho evidenziato?
Quote:
e dalla presenza o meno della cache istruzioni.

Ad esempio sugli ARM fu introdotta l'estensione THUMB per avere codice con compattezza comparabile a quella di cpu ad 8bit, poter fare a meno di una cache istruzioni (o usare cache istruzioni più piccole) ed avere buone prestazioni anche con bus verso la i-cache a 16bit.
Questo non c'entra con la lunghezza variabile o meno: riguarda a livello generale la densità di codice.

Inoltre anche senza cache istruzioni è possibile alleviare la decodifica delle istruzioni a lunghezza variabile. Persino processori CISC molto vecchi hanno una sorta di mini-buffer per le istruzioni, che consentono loro di evitare i problemi di allineamento per andare a caccia delle istruzioni (e implementare efficacemente il pipelining).

In generale la cache serve soltanto per memorizzare le istruzioni. E' la logica di decodifica che si occupa di allineare lo stream delle istruzioni. Ciò si verifica anche con Thumb, che infatti è un'ISA CISC (ed è il motivo per cui la densità di codice è più elevata rispetto alla classica ISA ARM).
Quote:
Ma per roba ad alte prestazioni basta avere un i-cache più grande e gran parte della differenza tra istruzioni di lunghezza fissa e variabili viene meno.
La cache più grande incide nei costi di produzione, nel budget dei transistor, e nei consumi. E' una delle componenti più critiche. Tant'è che se ne aumenti la dimensioni spesso sei costretto ad aumentare la latenza per cercare di risparmiare silicio, e ciò incide sulle prestazioni.

Le cache istruzioni esistono da 3 decadi, ma se fosse possibile aumentare a piacimento la loro dimensione, grazie alla legge di Moore oggi avremmo cache istruzioni molto più grandi rispetto a quelle disponibili. Invece non è così.

Ciò precisato, la densità di codice incide sulle prestazioni perché richiede più spazio, e dunque a catena ha ripercursioni su: decoder (buffer usato per allineare le istruzioni), cache L0/L1/L2/L3/L4, memoria, e le TLB delle cache che ne sono dotate.
Quote:
E' inoltre da notare che il set d'istruzioni A64 a 64bit dei nuovi ARMv8 ha parecchie differenze rispetto al "vecchio" A32 proprio per scalare bene in prestazioni in un contesto "a 64bit" (bus dati almeno a 64bit, processi produttivi che permettono di avere minimo una certà densità, ecc. ecc.).
Quindi ammetti che il codice ARMv8 sia meno denso, dunque abbia bisogno di cache istruzioni più grandi, grazie a processi produttivi migliori. Ma ciò non è un problema soltanto della cache codice; vedi poco sopra.

Senz'altro ARMv8 rappresenta un grande cambiamento per ARM, ma ha dovuto sacrificare parecchio la sua ISA per votarsi alle prestazioni. Molte caratteristiche storiche, che la contraddistingueva, sono sparite. E non ha nemmeno presentato una ISA Thumb a 64 bit (ma qui penso che sia comprensibile).

Non concordo sul "contesto a 64 bit": esistevano ed esistono ISA a 32-bit che hanno molte similitudini con ARMv8 (in realtà è il contrario). Infatti ad ARM serviva un'ISA per scalare sulle prestazioni, per rendersi più competitiva su questo fronte, oltre ovviamente a poter indirizzare agevolmente più di 64 bit.
Quote:
Guardacaso alcune feature di A64 ricordano le "vecchie" cpu Alpha
(il primo microprocessore a 64bit e per anni campione assoluto in termini
di prestazioni per singolo core, se ricordo bene, due anni dopo che smisero di svilupparne
versioni più evolute e con processo produttivo più arretrato
superava ancora in prestazioni su interi e float sia gli x86 che gli Itanium).
Itanium era molto giovane, mentre Alpha era un'ISA ben rodata. Non mi pare un confronto corretto.
Quote:
E' rilevante se va a creare un collo di bottiglia sui decoder istruzioni rispetto agli ARM.
Scusa, ma che c'entra questo con quello che avevo scritto. Potresti essere più chiaro, cortesemente?
Quote:
La differenza è che i vari set d'istruzione ARM sono ad alta simmetria (con molte meno eccezioni nella decodifica)
Non è certo un problema. Lo sarebbe per un essere umano che dovesse scrivere codice assembly.
Quote:
con la possibilità di passare da un istruzione THUMB ad ARM32 con una "espansione fissa" senza stati interni aggiuntivi e con previsto sin dal principio un meccanismo di espansione del set d'istruzioni (usando gli opcode per i coprocessori) che permettono di avere decoder molto semplici che possono operare in parallelo e che rendo più semplice commutare da uno all'altro.
Fa una differenza notevole.
Il decoder Thumb è certamente più semplice di uno x86, ma pone non pochi problemi perché si tratta di istruzioni a lunghezza variabile. Non puoi espandere le istruzioni a piacimento, perché hai bisogno di conoscere la lunghezza di tutte le istruzioni che sei in grado di decodificare, per poterle poi trasformare in quelle a lunghezza fissa. Che poi è esattamente quello che si fa con x86, dove dalle istruzioni x86 si passa a quelle del RISC interno.

D'altra parte, come dicevo prima, Thumb è un'ISA CISC, e ne condivide le problematiche, ovviamente in misura diversa perché dipende dalla struttura degli opcode che è stata adottata.

I decoder paralleli esistono da tempo anche su x86, infatti. Ma si paga un certo prezzo per poterli avere.

P.S. Come mai hai risposto solo su alcuni punti?
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione Nothing Ear e Ear (a): gli auricolari per tutti ...
Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione Motorola edge 50 Pro: design e display al top, m...
HiSolution amplia i propri servizi e pun...
F1 24 introdurrà migliorie al mod...
Arriva Omnissa, che prenderà in c...
Turista americano torna dall'Europa e si...
Larian al lavoro su due nuovi giochi, cr...
Microsoft Office LTSC 2024 disponibile i...
Fallout 4 è il gioco più v...
Razer Kishi Ultra: ecco il controller pe...
Il Dimensity 6300 di MediaTek porta il 5...
Google combina i team Android, Chrome e ...
Axiante vuole indagare come le imprese i...
Italia quinto mercato europeo per i vide...
Apple celebra la Giornata della Terra co...
La funzionalità 'AI Explorer' di ...
ASUS ROG Ally: la versione più potente c...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www3v
1