Rubrica HARDWARE

CONFRONTO CPU

L'Alternativa per la classe 586: AMD K5 contro Intel Pentium. Tanti MIPS a basso costo?

di Fernando Carello

Ricordate quando AMD (www.amd.com) produceva CPU "cloni" Intel (www.intel.com)?
E' successo per molti anni, dall'epoca dell'80286. CPU valide ed economiche, che hanno permesso a molti utenti di acquistare un PC risparmiando qualcosa senza nulla sacrificare alla potenza di calcolo.

Tutto ciò è stato possibile grazie al fatto che Intel aveva concesso ad AMD i disegni delle proprie CPU, microcodice compreso; AMD, così , non doveva far altro che ... produrle, a differenza, ad esempio, di Cyrix (www.cyrix.com), che fin dal tempo dei 486 SLC e DLC ha prodotto CPU progettate "in casa".
Con l'avvento dei processori Pentium, e dunque della "classe 586", Intel ha cambiato politica: niente più licenze di produzione.
Alla AMD non si sono dati per vinti e, per la prima volta, hanno progettato ex-novo un processore compatibile X86. Parliamo appunto del K5 oggetto della nostra prova.

Prima di lasciare il campo ai ... numeri, diamo un'occhiata alle differenze architetturali tra i due processori concorrenti.

ANALISI TECNICA

L'Intel Pentium è sul mercato da diversi anni: classico esempio di architettura CISC (rimando ad un mio articolo sul primo numero di BETA per un paragone CISC-RISC), comprende due unità parallele di esecuzione di tipo pipelined a 32 bit per le operazioni sugli interi, più una ad 80 bit per i calcoli in virgola mobile (i processori suddivisi internamente in unità parallele di esecuzione sono detti superscalari).
Una ottimizzazione del microcodice unita all'utilizzo di logica cablata per le operazioni più comuni ha fatto sì che numero medio di cicli di clock necessari per completare un'istruzione sia sceso sensibilmente (anche di un 50%) rispetto all'80486; ancora più evidente il miglioramento delle prestazioni in virgola mobile, tradizionale punto debole dell'architettura x86.

Compatibile in modo "nativo" con tutte le precedenti generazioni di x86, il Pentium implementa per la prima volta in casa Intel una circuiteria di branch prediction (predizione dei salti nel codice -dannosi per le prestazioni-); ha inoltre 8 KB di cache write-back per i soli dati, ed una da 8 KB in write-through (rimando ad un articolo sul precedente numero per i dettagli sui vari tipi di cache) per le istruzioni.
Il bus dati è da 64 bit, onde velocizzare lo scambio di dati verso le memorie.

L'AMD K5 è arrivato sul mercato da pochi mesi, ma è in "gestazione" da alcuni anni. Compatibile a livello hardware e software con il Pentium, ha però un'architettura interna completamente diversa: si basa, infatti, su un nucleo RISC superscalare (d'altra parte, AMD ha una lunga esperienza nel campo delle CPU RISC, ad esempio con la famiglia 29000).

Con cinque unità di esecuzione RISC in parallelo (due per gli interi, una per il floating point, una per la branch prediction ed una per le funzioni di load/store), alcune delle quali possono eseguire 2 istruzioni per ciclo grazie ad una struttura a pipeline, il problema non è più la velocità di esecuzione, bensì l'efficienza della traduzione da istruzioni CISC x86 a istruzioni RISC 29000.
Il problema è più complesso di quanto potrebbe sembrare, in quanto non si tratta solamente di "tradurre" gli opcode, ma anche di "trasformare" istruzioni a lunghezza variabile (come sono le CISC, ed in particolar modo le x86, con tutto il fardello di compatibilità all'indietro che si portano appresso) in istruzioni a lunghezza fissa RISC (denominate R-op).
La soluzione adottata da AMD consiste in un sistema di traduzione a 3 stadi: durante il prelievo, le istruzioni x86 ricevono un primo trattamento, che consiste nel "marcarle" per fornire alle unità di decodifica preziose indicazioni sulla loro lunghezza, suddivisione in campi, salti, etc.
Lo stadio successivo prevede l'immagazzinamento delle istruzioni così "trattate" nella cache integrata; da qui verranno prelevate ed immesse in un buffer FIFO, per poi subire una scansione atta ad individuare i punti di partenza per la generazione delle istruzioni RISC (R-op).
La circuiteria preposta a questo compito scopo suddividerà il compito di decodifica finale tra 4 unità di decodifica poste in parallelo, più una quinta unità che si avvale di microcodice ROM per decodificare le istruzioni x86 più complesse.
Naturalmente, in generale una istruzione x86 corriponde ad una sequenza di più R-op; ma il nucleo superscalare del K5 può eseguire molte R-op per ciclo di clock, anche prescindendo dalle interdipendenze: speciali circuiterie permettono un certo grado di libertà relativamente all'ordine di esecuzione delle istruzioni (out of order execution), che poi verranno riallineate da un registro di riordino, il quale si occupa anche di mappare dinamicamente i registri del K5 come registri x86 (il vantaggio è che il K5 ha 16 registri, contro gli 8 degli x86) .

ANALISI STATICA

Veniamo ora ad un approccio più ... stringente.
Abbiamo davanti a noi i processori utilizzati per il nostro confronto: sono due Intel Pentium P54C a 100 e 133 MHz ed un AMD K5 PR-133 a 100 MHz.

Ricordiamo che la sigla "PR-133" che campeggia sul K5 sta a richiamare il P-rating ottenuto da questa CPU in base ai test Winstone95 della Ziff-Davis (potrete trovare le ultime versioni delle suite di benchmark ZD all'indirizzo: www.pcmag.com/pclabs/bench/bench.htm ).

Si tratta di una suite di benchmark basati su campioni di vere applicazioni Windows a 32 bit, eseguiti a parità di configurazione prendendo a paragone i risultati degli Intel Pentium.
Una CPU otterrà un P-rating pari ad N se, sul complesso dei test, avrà ottenuto risultati non inferiori ad un Pentium funzionante a frequenza N.
Nel nostro caso, quindi, il K5 a 100 MHz ha ottenuto sulla suite Winstone95 risultati non inferiori a quelli di un Pentium a 133 MHz.

Ciò premesso, ricordiamo brevemente che tutti i K5 dal PR-100 al PR-166 utilizzano una tensione di alimentazione unica a 3.3 - 3.5 V (come i Pentium P54C), disponibile su tutte le schede madri Pentium attualmente prodotte; tutte le CPU AMD K5 richiedono l'adozione di un dissipatore di calore, possibilmente di buona qualità ed abbinato ad una ventolina. Per un utilissimo approfondimento sulle varie famiglie di CPU attualmente in commercio ed i relativi dati (frequenza di funzionamento, tensione necessaria, calore sopportato, etc.) vi rimando senz'altro all' articolo di Andrea Nenni "Le CPU non sono tutte uguali" apparso sullo scorso numero di BETA.

ANALISI DINAMICA

Sappiamo, quindi, che il K5 100 MHz ha ottenuto un P-rating almeno pari a quello del Pentium a 133 MHz.

Tuttavia, proprio in virtù del fatto che i test Winstone sono basati su un mix di applicazioni Windows, la reale bruta potenza di calcolo di queste CPU rimane un po' nell'ombra.
Abbiamo così deciso di sottoporre K5 e Pentium ad un "faccia a faccia" su un terreno più tradizionale: quello del calcolo sintetico su interi e floating-point.

Per il confronto, abbiamo utilizzato un nostro nuovo benchmark (BETAmark 0.9) in grado di fornire 3 indici riassuntivi: uno riguardante i calcoli su interi su un insieme ristretto di dati (particolarmente indicativo della "potenza" della CPU), uno riguardante operazioni vettoriali su interi con una grande quantità di accessi in memoria (indicativo della efficienza della cache e della memoria) ed uno riguardante calcoli in virgola mobile, sia aritmetici che trascendenti (e quindi in grado di "tastare il polso" alla FPU).
Tutti i test sono stati eseguiti in ambiente DOS, modalità protetta a 32 bit, tramite l'utilizzo di un DPMI DOS-extender; stessa scheda madre (basata su chipset Intel Triton-2 HX, con 256 KB di cache pipelined burst da 7 ns), stessa memoria centrale (EDO).

Come potete vedere dai grafici riportati a fianco, dai nostri test il K5 è uscito in modo un po' meno brillante rispetto a quanto evidenziato con la suite Winstone: nei calcoli su interi (compresi quelli vettoriali) si piazza più o meno a metà strada tra un Pentium 120 ed un 133, ma sulle operazioni in virgola mobile rimane molto indietro, sui livelli di un Pentium 60 e di un AMD 5x86 133 MHz (che però è un processore per schede 486, essendo compatibile come piedinatura con gli 80486 DX-4 3.3 V).

I risultati numerici forniti dai 3 indici BETAmark sono elencati nella tabella qui sotto:

Processore iCPU iRAM FPU
Intel Pentium 100 100 100 100
Intel Pentium 133 133 121 133
AMD K5 PR-133 120 128 55

La scelta di sacrificare le prestazioni in floating point è stata fatta dalla AMD tenendo conto di vari aspetti: anzitutto, l'incidenza di operazioni in virgola mobile è molto limitata per la maggior parte del software di Office Automation e di produttività individuale in circolazione per DOS/Windows (il che è perfettamente confermato dai P-rating degli indici Winstone), per cui anche una unità FPU semplificata può bastare, liberando prezioso spazio su chip per la cache e le varie unità funzionali del K5; poi, l'efficiente struttura superscalare del K5 può agevolmente indirizzare in parallelo istruzioni su interi ed istruzioni in virgola mobile, cosa che il Pentium non può fare (le pipeline ad interi si "congelano" durante i calcoli FPU): quindi su applicazioni "del mondo reale" non specifiche la penalizzazione dovrebbe sentirsi poco.

D'altronde, la stessa strada è stata seguita dalla Cyrix per le CPU di classe Pentium M1 (alias 6x86) ed M2 (nuove CPU della famiglia 6x86 in arrivo, con vari miglioramenti e supporto MMX).

CONCLUSIONI

L'AMD K5 è un processore tecnologicamente avanzato, caratterizzato da un'architettura interessante ed innovativa; offerto ad un prezzo molto competitivo (al momento in cui scriviamo, il prezzo al pubblico del PR-133 si aggira attorno alle 200'000 lire esclusa IVA, mentre l'Intel Pentium 133 costa circa il 50% in più ), è senz'altro un buon acquisto per impieghi di Office Automation ove non siano richiesti molti calcoli floating point.

Tuttavia, per un impiego orientato al CAD/rendering o comunque ad applicazioni numeriche in virgola mobile non è sicuramente la CPU più adatta: un Intel Pentium se la cava senz'altro meglio.

Riguardo all'uso "giocoso", ci sentiamo di sconsigliarlo ai patiti di 3D poligonali quali Quake e di F1GP-2: infatti, l'elevata incidenza delle operazioni trascendenti in virgola mobile necessarie per gestire la complessa grafica 3D penalizzano il K5.
In particolare, il PR-133 in prova ha spuntato sotto Quake 1.06 prestazioni comparabili, più o meno, a quelle di un Pentium 90.
Con giochi facenti prevalente uso di bitmap (platform, arcade, RPG, avventure) il K5 se la cava, invece, egregiamente.

Segnaliamo che è già reperibile il K5 PR-166, con clock a 133 MHz; le future versioni incorporeranno anche codice multimediale di tipo MMX (sul tipo di quello supportato dai nuovissimi Pentium P55C).


Fernando Carello è reperibile su Internet all'indirizzo techcoord@beta.it e tramite la redazione


Vedi anche: PROVE HARDWARE: Cyrix 6x86 P166+

Copyright © 1996 BETA. Tutti i diritti riservati.


Copertina Sommario Internet ID Ricerca Redazione Browser