Intel
giovedì 23 maggio 2013 - Commenta
Statistiche su x86 & x64 – parte 6 (valori immediati)

Dopo aver analizzato la distribuzione delle modalità d’indirizzamento verso la memoria, e prima di mettere in relazione gli ultimi argomenti trattati, è necessario focalizzare l’attenzione sulle statistiche relative ai valori immediati, componente di fondamentale importanza che ha un notevole peso nell’ISA e nella definizione della struttura degli opcode di un’architettura.
I valori immediati sono interi che, come sappiamo, possono essere dotati di segno oppure no. Nell’ambito di questa ricerca si è assunto, per una questione di semplicità, che fossero tutti quanti dotati di segno, a prescindere dall’istruzione che ne facesse uso.
Ciò …

giovedì 9 maggio 2013 - 10 Commenti
Statistiche su x86 & x64 – parte 5 (indirizzamento verso la memoria)

Dopo aver discusso della distribuzione e frequenza del numero di operandi, questa volta puntiamo l’attenzione alle modalità d’indirizzamento verso la memoria che sono utilizzate dalle istruzioni dalle architetture x86 e x64.
E’ chiaro che non tutte le istruzioni hanno bisogno di accedere alla memoria, per cui le statistiche riguarderanno soltanto quelle che effettivamente ne faranno uso.
In particolare queste famiglie di microprocessori possono eseguire un solo accesso alla memoria, fatta eccezione per alcune particolari istruzioni “legacy” (quelle che operano sulle cosiddette “stringhe”), che consentono di specificare un operando sorgente (in lettura) e …

mercoledì 8 maggio 2013 - 6 Commenti
Il parere dei lettori: Apple fra 68k, x86 e PPC

So bene che da anni l’attenzione del mondo tecnologico è spostata sul mobile, che Krait, Tegra, Snapdragon sono ormai più noti di processori che hanno scritto la storia dell’informatica come Alpha, MIPS, PowerPC e 68k. Però qui in Appunti Digitali circolano molti veterani informatici e in generale molti di noi seguono con passione la storia informatica. Per questo voglio porvi una domanda relativa ad uno snodo fondamentale nell’evoluzione del Mac, un enorme “what if” che avrebbe condizionato pesantemente tutto il mercato.
La domanda in forma estesa è la seguente: se Jobs …

giovedì 18 aprile 2013 - Commenta
Statistiche su x86 & x64 – parte 4 (numero di operandi)

Le istruzioni, come sappiamo, sono composte dallo mnemonico, che identifica il tipo di azione svolta, accompagnato eventualmente da uno o più operandi che utilizza come sorgente/i e/o come destinazione.
In quest’articolo ci occuperemo delle statistiche relative al numero di operandi, senza tenere conto dello mnemonico per il momento, di cui ci occuperemo nella parte finale della serie.
x86 e x64 condividono buona parte dell’architettura, con leggere differenze a livello di ISA, ma la struttura delle istruzioni rimane sostanzialmente la stessa, come abbiamo in parte avuto modo di vedere dal precedente articolo che …

venerdì 12 aprile 2013 - 10 Commenti
20anni dal lancio commerciale del Pentium

Il primo Intel Pentium è stato ufficialmente commercializzato il 22 marzo del 1993, cambiando in modo radicale il settore dei microprocessori e la relativa percezione pubblica, grazie ad un brand semplice e riconoscibile.
   
The Pentium
Si tratta, infatti, del primo processore x86 ad abbandonare la nomenclatura numerica (80286, 80386, 80486), scelta dovuta essenzialmente all’impossibilità di registrare come marchio un numero e proteggere legalmente il brand dall’utilizzo di terze parti. Intel conia, così, il termine “Pentium”, prendendo in prestito la parola greca Pente (cinque, ad indicare che il processore Pentium rappresenta la …

giovedì 4 aprile 2013 - 2 Commenti
Statistiche su x86 & x64 – parte 3 (ISA / istruzioni a confronto)

Dopo l’analisi e i freddi numeri riportati nei precedenti articoli, passiamo a verificare il codice x86 e x64, dando un’occhiata ad alcuni spezzoni di codice e mostrando come si comportano le due architetture quando c’è da effettuare lo stesse elaborazioni, cercando riscontro a quanto detto finora.
La scelta del codice deve, però, soddisfare alcuni criteri. Dovrebbe offrire uno spaccato abbastanza comune, senza perdersi in listati chilometrici che disperdono l’attenzione e l’interesse, ma soprattutto è necessario recuperare spezzoni “uguali”, che elaborino sostanzialmente la stessa cosa, in modo da rendere semplice il confronto …

giovedì 28 marzo 2013 - 1 Commento
Statistiche su x86 & x64 – parte 2 (distribuzione per dimensione)

Proseguiamo con l’analisi del codice delle ISA x86 e x64 dal punto di vista statistico, questa volta puntando l’attenzione sulla distribuzione delle varie dimensioni delle istruzioni.
Ricordiamo che entrambe le ISA presentano opcode di lunghezza variabile, che vanno da 1 a un massimo di 15 byte. In realtà il capostipite della famiglia, l’8086, non aveva un limite vero e proprio per la lunghezza di un’istruzione, che non fosse rappresentato dalla dimensione del segmento del codice. A partire dall’80286, però, Intel ha imposto a 15 byte la lunghezza massima di un opcode.
Per …

giovedì 14 marzo 2013 - 11 Commenti
Statistiche su x86 & x64 – parte 1 (macrofamiglie di istruzioni)

La lunga serie sull’analisi dell’aspetto “legacy” di x86 e x64 si era conclusa con l’annuncio (nei commenti) di una nuova serie di articoli che avrebbero trattato queste due ISA dal punto di statistico; è arrivato il momento di mantenere fede alle promesse.
Esistono già numerosi articoli e pubblicazioni scientifiche che hanno affrontato l’argomento, ma quelli che seguiranno sono frutto di particolari studi effettuati su diversi aspetti delle istruzioni di queste architetture dal punto di vista quantitativo, ma che offrono spazio anche ad alcune riflessioni.
Parlo non a caso di architetture, distinguendo quindi …

giovedì 8 novembre 2012 - 18 Commenti
Il legacy di x86 & x64 – parte 9 (conclusioni)

Dopo aver sezionato l’architettura x86 a caccia di elementi che possano essere classificati come legacy, è arrivato il momento di chiudere questa lunga serie di articoli con una sintesi e alcune riflessioni sull’argomento, riprendendo anche in parte quanto elaborato nel precedente pezzo sulle unità SIMD, che rappresenta una sorta di cartina al tornasole della situazione.
Ripropongo, per comodità, tutti i link ai precedenti otto articoli:
parte 1 (istruzioni 8086)
parte 2 (istruzioni 80186+)
parte 3 (FPU x87)
parte 4 (i segmenti)
parte 5 (i selettori)
parte 6 (istruzioni privilegiate)
parte 7 (istruzioni non privilegiate)
parte 8 (SIMD: MMX, 3DNow!, …

giovedì 18 ottobre 2012 - Commenta
Il legacy di x86 & x64 – parte 8 (SIMD: MMX, 3DNow!, e… SSE)

Ci sono voluti 7 articoli per trattare di una problematica che nasce col capostipite della famiglia, l’8086, e che si è evoluta coi successori, principalmente con l’80286, ma anche con l’80386 (che ha duplicato, per i 32 bit, quanto introdotto dal precedente, per i 16 bit).
Il dubbio, sicuramente lecito, è che ci siano elementi di legacy anche nelle unità SIMD che sono state introdotte nell’architettura x86, e che quindi si trascinano anche nelle successive implementazioni.
MMX è stata la prima, e si espone a delle critiche, anche se, come abbiamo visto, …