6.
Il bus EV6
Il
bus dell’Athlon è costruito sulla base di quello dell’interfaccia
di sistema EV6 della Digital da cui AMD ha acquisito la licenza.
Questa scelta ha una finalità ben precisa, quella cioè di dotare
l'Athlon di un bus di comunicazione capace di sfruttare al meglio
la presenza di due o più processori. Il bus è in grado di operare
per frequenze da 200 MHz a 400 MHz grazie a avanzati sistemi
di sincronizzazione ma fino ad ora AMD ha limitato la frequenza
a 200 MHz dato che comunque con tale frequenza si ha a disposizione
una banda di 1.6 GB/s (essendo il bus a 64 bit).
Il
bus EV6 consiste di un data bus bidirezionale a 72 bit (64 per
dati più 8 per ECC) più due porte unidirezionali da 13 bit per
gli indirizzi in ingresso e quelli in uscita che viaggiano su
altri due canali distinti. Il basso livello di segnale consente
un maggiore numero di canali o package meno complessi.
Il
trasferimento del clock su questo bus non avviene per mezzo
di un solo clock distribuito su tutti i dispositivi (common
clock) ma avviene insieme ai dati (consentendo la topologia
point-to-point) secondo una tecnica conosciuta come "source
synchronous clock" o "clock forwarding".
In questo modo clock e dati sono ricevuti nello stesso tempo
poiché seguono lo stesso percorso nella motherboard. Nella modalità
common-clock, usata da Intel, il clock risulta in genere limitato
come frequenza proprio a causa del ritardo subito nel percorso
sulla motherboard.
Il
protocollo di bus consente di eseguire split-transaction per
evitare gli stalli dovuti agli accessi a periferiche I/O a lunga
latenza e le transizioni sono marcate per consentirne la gestione
out-of-order. Le due porte indirizzi separate permettono snoop
(investigazioni) e transizioni di memoria contemporanee cosa
importante nei sistemi SMP
(sistemi simmetrici multiprocessori) dove il traffico per la
coerenza può essere sostenuto e degradare le prestazioni. Proprio
per favorire l’uso in sistemi SMP l’Athlon usa per il bus un
protocollo di coerenza MOESI dove il quinto stato Owned contribuisce
a diminuire il traffico di write invalidation.
Quando
si parla di trasferimento a 200 MHz (o 400 MHz) si intende in
realtà che dati, snoop e trasferimenti di indirizzi sono trasmessi
su entrambi i fronti di un clock a 100 MHz (o 200 MHz) secondo
la tecnica Double Data Rate (DDR) anche se in genere questa
prevedeva il doppio trasferimento solo per i dati.

Figura
4 Configurazione Dual-Processor su bus EV6
Confrontando
il Bus EV6 con quello GTL+ utilizzato dalla Intel per Pentium
III e Celeron si evidenzia immediatamente come il primo sia
del tipo "Point to Point", mentre il secondo no; questo implica
che con il bus EV6 ogni processore abbia una banda dedicata
che lo collega al system logic, mentre con la soluzione GTL+
la banda è unica e deve essere divisa tra i processori.
Il
massimo numero di processori supportati contemporaneamente dal
bus EV6 è pari a 14 ma difficilmente, sia per i costi eccessivi
sia per l'incremento di prestazioni non proporzionale, vedremo
soluzioni con più di 8 processori. Inoltre la velocità di ogni
componente è abbastanza indipendente dalla velocità della CPU
consentendo una certa modularità ed elasticità.