|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2095
|
Certo che avrebbe dovuto sostituire x86, l'idea era di fare prima i server (costosi come un cavallo) e poi con il tempo "riscalarle" verso il basso... ma AMD ci ha fregato tutti ed ora ci teniamo l'accrocchio sfigato chiamato AMD64
![]() Magari se LLVM ci fosse già stato o se si fossero usati linguaggi con JIT, Itanium ce l'avrebbe fatta, chi lo sa?
__________________
Cosmos C# Open Source Managed Operating System Cosmos Thread Ufficiale Cosmos Official Site Vuoi collaborare allo sviluppo? Unisciti alla chat! |
![]() |
![]() |
![]() |
#22 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
No, è il principio su cui si basa Itanium (che, in linea generale, riguarda i processori VLIM) che è sbagliato. I compilatori non possono assolutamente schedulare in anticipo le istruzioni da eseguire, come fa un backend con logica out-of-order; e questo vale anche per un compilatore JIT (che sempre compilatore è).
Sul resto concordo, soprattutto su AMD64: è stata buttata via la possibilità di ridisegnare x86 fornendo un'ISA migliore (peraltro buttando a mare una delle sue qualità: la buona densità di codice. Il codice AMD64/x64 è scandalosamente meno denso di x86), accontentandosi di una brutta pezza giusto giusto per introdurre i 64 bit e raddoppiare i registri.
__________________
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 |
![]() |
![]() |
![]() |
#23 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1829
|
|
![]() |
![]() |
![]() |
#24 |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 6007
|
Mica ho scritto dell'architettura, il riferimento era alla tipologia di software che girava meglio su Itanium, che giardacaso corrisponde a quello che gira bene sulle GPU "recenti".
Ultima modifica di LMCH : 04-02-2019 alle 23:56. Motivo: correzione errore di scrittura |
![]() |
![]() |
![]() |
#25 | |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 6007
|
Quote:
Ma AMD64 non è malaccio considerando le alternative possibili ed il requisito di retrocompatibilità con gli x86. |
|
![]() |
![]() |
![]() |
#26 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Preferisco AMD64 ai RISC e concordo sulla retrocompatibilità con x86, ma non ho idea di quali potevano essere le alternative possibili a cui ti riferisci.
Di alternative (parlando a livello astratto) ce ne possono certamente essere (e pure di gran lunga meglio).
__________________
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 |
![]() |
![]() |
![]() |
#27 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2095
|
Quindi cdimauro secondo te le architetture VLIM sono belle sulla carta, ma non realmente applicabili?
Alla fine sta retrocompatibilità con x86 secondo me sta bloccando il progresso, quanto faremo CPU "quantistiche" quasi "IA" non pretenderemo mica che siano in grado di eseguire code x86? Il "problema" poi dovrebbe essere risolto dal... 2000 da quando esistono Java e C# non è necessario scrivere per forza tutto in codice nativo ormai!
__________________
Cosmos C# Open Source Managed Operating System Cosmos Thread Ufficiale Cosmos Official Site Vuoi collaborare allo sviluppo? Unisciti alla chat! |
![]() |
![]() |
![]() |
#28 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2095
|
Secondo questo è un po' un "mito" anche il JIT genera codice nativo che potrebbe anche essere più ottimizzato per la macchina in cui gira (per esempio potrebbe usare istruzioni vettoriali SSE mentre il codice nativo potrebbe essere compilato per il minimo comun denominatore cioè i386) o si può sempre compilare in modo AOT ed allora anche C# / Java sono "codice nativo".
Il discorso è sempre quello il 99% delle applicazioni sono scritte in C/C++ mica perché sono "real time", ma per antica usanza... e poi hanno buffer overflow ovunque e ci costringeranno ad avere computer quantistici con emulazione x86! Windows on ARM per potere avere successo deve essere in grado di emulare x86... per me Microsoft avrebbe dovuto essere più coraggiosa ed aver già realizzato uno "windows" tutto basato su .Net invece di fermarsi alla sola ricerca (Midori / Singularity).
__________________
Cosmos C# Open Source Managed Operating System Cosmos Thread Ufficiale Cosmos Official Site Vuoi collaborare allo sviluppo? Unisciti alla chat! |
![]() |
![]() |
![]() |
#29 |
Member
Iscritto dal: May 2013
Messaggi: 268
|
Già... e ricordo un mio progetto in cui ho rigirato le istruzioni core di un ciclo in maniera meno ovvia per favorirne gli accoppiamenti, oltre a triplicare le routine per eliminare i controlli sul segment overflow quando la gestione del dato non finiva allineata...
|
![]() |
![]() |
![]() |
#30 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2095
|
Avevi un compilatore "bacato"?
O eri su CPU a 8 bit da 3 KHz?
__________________
Cosmos C# Open Source Managed Operating System Cosmos Thread Ufficiale Cosmos Official Site Vuoi collaborare allo sviluppo? Unisciti alla chat! |
![]() |
![]() |
![]() |
#31 | ||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Va benissimo, invece, per un tipo di codice abbastanza "lineare", che consenta di sfruttare al massimo tutti gli slot a disposizione in un bundle, perché oggettivamente l'implementazione è di gran lunga più economica rispetto a un processore OoO. Quote:
Con x86/x64 che penso sia destinata a rimanere per lungo, vista la quantità di codice (specifico) che è stato scritto. Quote:
Personalmente preferisco linguaggi di altissimo livello, come Python, perché mi focalizzo sul problema che voglio risolvere. Ovviamente se mi servono più prestazioni devo pensare ad altro. In genere sì, anche se ci sono delle eccezioni (in alcuni casi i compilatori JIT possono produrre codice più veloce rispetto anche a un C/C++ compilato direttamente per una determinata architettura). Quote:
Quote:
Quote:
Per ribaltare lo status quo ci vogliono i numeri. E non con qualche selezionato benchmark sintetico, ma usando un buon parco di software reale nonché variegato.
__________________
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 |
||||||
![]() |
![]() |
![]() |
#32 | |
Amministratore
Iscritto dal: Jun 2009
Città: Glasgow, Scozia
Messaggi: 1943
|
Quote:
Per quanto riguarda i testi: consiglio di leggere sia "Struttura e progetto dei calcolatori" di Patterson e Hennessy (in Italia edito da Feltrinelli) che "Operating Systems: Three Easy Pieces", disponibile gratuitamente sul sito ufficiale. Il secondo in particolare si focalizza molto sul perché è importante che ci siano buone prestazioni nell'esecuzione di codice out of order e sulle problematiche introdotte da quest'ultimo e dalla branch prediction (con tutti i problemi collegati alle cache, ad esempio). Ho studiato su entrambi i testi per gli esami in università; ho studiato sul secondo la scorsa estate per l'esame di sistemi operativi e l'ho trovato un ottimo testo, approcciabile da chiunque abbia delle fondamenta di informatica.
__________________
Riccardo Robecchi - autore per Hardware Upgrade MB ASUS Crosshair VI Hero, CPU Ryzen 7 1700X, RAM 32 GiB Corsair Vengeance 3000MHz, VGA Sapphire AMD Radeon RX 5700 XT Pulse, CASE Sun Ultra 24, PSU Corsair TX650W. KDE neon x64 & Win 10 Pro x64. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:07.