Вы находитесь на странице: 1из 7

El AMD Athlon (K7)

Jose Galaviz Casas*

1.

Antecedentes

Desde hace ya varios a


nos diversas compa
nas se han dedicado a hacer
procesadores capaces de ejecutar codigo binario de los procesadores de la
serie X86 de Intel: Cyrix, Nec y Advanced Micro Devices son algunas de
ellas.
Por supuesto el principal competidor de estos procesadores son precisamente los procesadores que tratan de emular. Para lograr colocarse en el
mercado deben entonces incorporar a sus productos caractersticas que los
hagan competitivos en precio y desempe
no frente a los de Intel. Ante el reto,
lo que ha tratado de hacer AMD en particular, es redise
nar completamente la arquitectura, hacerla de alto desempe
no incorporando caractersticas
que permitan darle la vuelta a la complejidad intrnseca del conjunto de
instrucciones de Intel.
Algunos de los dolores de cabeza con los que hay que tratar en la arquitectura de Intel son:
Formato y longitud de instruccion variable: de 1 a 17 bytes.
Arquitectura de instrucciones mem-reg. Es decir no hay instrucciones
especficas para acceder a memoria, como en las arquitecturas loadstore.
Multitud de modos de direccionamiento.
Conjunto de instrucciones no-ortogonal respecto a los modos de direccionamiento. Lo que no sera tanto problema, de no ser porque
Es una m
aquina CISC con un catalogo de instrucciones muy grande y
complejo.
*

Departamento de Matem
aticas, Facultad de Ciencias, UNAM. jose@matem.unam.mx

Registros de prop
osito semi-especfico. Algunas instrucciones utilizan
algunos de los registros paa propositos especficos.
Registros especficos para direccionamiento. Los conocidos registros de
segmento.
Instrucciones especiales mem-mem para manejo masivo de datos orientadas a multimedia (MMX).
Bus de direcciones de 36 bits (64 Gb de memoria direccionable). Esto
no es realmente un problema, mas bien una limitacion que es posible
rebasar.
Instrucciones especiales mem-mem, complicadas, para manejo de cadenas (LODS, MOVS, CMPS, etc).
Bus externo compartido por todos los dispositivos de entrada/salida.
Estas complicaciones hacen que se deba usar un control microprogramado.
Ciertamente todas estas son debilidades y son, por tanto, explotables por
AMD. Pero tambien es cierto que la arquitectura de Intel no es as gratuitamente y dado que la intencion es hacer un procesador compatible con el
de Intel, habr
a que ser muy innovador para eliminar los problemas y poder
seguir siendo compatible.

2.

Ejecuci
on de instrucciones

El proceso de una instruccion de lenguaje de maquina de Intel en la


arquitectura del Athlon es el siguiente [2, 5]:
1 Fetch. Se trae la instruccion y se almacena en una memoria cache. En el
cache se hace una pre-decodificacion. Se traen 16 bytes, en promedio una
instrucci
on de Intel mide 5.3 bytes, as que generalmente estos 16 bytes
contendr
an 3 instrucciones. Si la instruccion es un salto se accede a una
tabla de historia de saltos.
2 Scan. Se predice el salto si es el caso. Se determina si la instruccion es
compleja (como las de manejo de cadenas) o no. Si es compleja se pone en
camino a un control microprogramado, tal como ocurrira en Intel. Pero
si no es complicada se pasa a una cola de tres lugares.
2

3 Align1 y Align2. Si la instruccion es complicada en este momento se pasa


al controlador microprogramado. Si es sencilla (y entonces generalmente
no es una sino tres instrucciones generalmente) se pasa por un arreglo de
multiplexores para alinearlas y determinar sus lmites. Generalmente la
cola de tres lugares de esta etapa queda llena.
4 EDEC (Early decode). Se recibe la salida del decodificador microprogramado o de la cola de tres instrucciones y cada instruccion es dividida
en instrucciones m
as simples, instrucciones al estilo RISC (reg-reg, loadstore) llamadas Macro Operations (MOPS) [1].
5 IDEC. Se almacenan en una memoria hasta 72 MOPS. Esta memoria es
una cola de la unidad de control de instruccion (Instruction Control Unit
o ICU).
6 Las instrucciones de ICU son enviadas a dos posibles lugares: un despachador de instrucciones enteras o una unidad de punto flotante. As que
en este ciclo la ejecuci
on se bifurca y ocurre uno de dos caminos:
Operaciones con enteros.
a) SCHED. El despachador recibe 3 MOPS de una sola vez. Cada
MOP es dividido en, a lo mas, dos instrucciones mas simples
llamadas ROPS (Reordered Operations) [2]. As que puede haber
hasta 6 ROPS: la mitad de operaciones de ALU y la mitad de
load o store.
b) EX. Hay tres unidades funcionales de ejecucion de instrucciones
con enteros (Integer Exceution Unit o IEU) y tres de generacion
de direcciones (Address Genration Unit o AGU) [1, 5]. As que
es posible ejecutar hasta 6 ROPS en un solo ciclo de reloj. Esto hace que el Athlon sea una maquina superescalar1 . Muchas
unidades funcionales procesan en paralelo muchas instrucciones
a un tiempo.
c) Addr. Tanto los resultados generados por las ALU (IEU) como las direcciones calculadas por las AGU se pasan a una cola
de 44 instrucciones donde se preven los hazards de datos y se
preparan los forwardings para resolver los que hayan quedado.
Previamente algunos fueron resueltos al generar las ROPS, que
como su nombre indica, estan reordenadas para evitar hazards
que atoren el Pipeline.
1

De hecho cada una de sus 9 unidades funcionales puede operar en paralelo y cada una
posee su propio pipeline.

Figura 2.1: Diagrama esquematico de la organizacion del AMD Athlon.


d ) DC. Acceso al cache de datos.
Operaciones de punto flotante y multimedia
a) Stack. Los co-procesadores matematicos de Intel han sido tradicionalmente m
aquinas de stack. El Athlon modifica las instrucciones para que utilicen registros de proposito general y as optimizar la ejecucion. A esto se le llama renombrado del stack
(stack renaming) [5].
b) Name. Segunda pasada de renombrado para evitar falsas dependencias.
c) WSch Las instrucciones se reordenan para evitar hazards y son
puestas en ruta al despachador de la etapa siguiente.
d ) Sched. Las instrucciones se despachan hacia tres diferentes unidades de punto flotante (3 FLOPS por ciclo). Tambien en estas
unidades es donde se ejecutan las instrucciones de MMX y de
3DNow! (24 instrucciones propias de AMD para multimedia y
que por cierto han recibido crticas severas cuantos las usan?
vale la pena poner hardware y tiempo para ejecutar algo que
solo usan unos pocos?).
e) FReg No est
a documentado pero debe hacerse algo para acomodar los operandos de las instrucciones en los registros de punto
flotante.
f ) EX0,...,EX3 Ejecucion.

3.

Caractersticas

El bus de direcciones del Athlon es de 43 bits, lo que le permite direccionar hasta 8 terabytes de memoria [5].
El bus compartido por el Pentium III ha sido reemplazado por un bus
punto a punto que conecta el procesador con cada dispositivo de manera
exclusiva. Cada dispositivo en este bus, tiene para s el ancho de banda
completo del bus y no tiene que compartirlo con el resto de los dispositivos.
El bus utilizado es EV6, mismo que originalmente fue dise
nado para la Alpha
21264 de Digital (hoy Compaq, ma
nana HP). Ademas este bus opera con
flanco de subida y flaco de bajada del ciclo de reloj as que, aunque su

frecuencia de operaci
on nominal es de 100MHz en realidad resulta ser de
200MHz efectivos [2, 5]. Por cierto la velocidad de este bus es escalable al
doble (i.e. puede ser de hasta 400 MHz. efectivos y 200 nominales), pero las
memorias aun no son tan r
apidas.
Este bus es un arma de dos filos. Por una parte incrementa la velocidad de
transferencia entre los dispositivos de E/S y el procesador. Por otra parte
imaginemos por un momento que deseamos hacer un motherboard dual.
Tendremos que proveer de un bus para cada procesador, si queremos hacer
un motherboard con m
as procesadores el problema se complica a
un mas, el
n
umero de lneas es como el producto de n
umero de procesadores por el de
dispositivos, donde cabra un motherboard para cinco Athlon?
El cache del Athlon esta dividido en dos niveles jerarquicos. El cache
de primer nivel est
a dentro del chip y a su vez esta dividido en cache de
datos (64 KB.) y cache de instrucciones (674 KB.) 2-way set associative. La
memoria cache de nivel 2 (L2) es de 512 Kb. 2-way set associative tambien,
pero el controlador de L2 del Athlon podra soportar hasta 8 Mb.
El Athlon original posee 22 millones de transistores por lo que requiere
de un sistema de enfriamiento bastante agresivo, disipador y ventilador, para
sobrevivir a s mismo.

4.

Manejo de saltos

Para cada salto condicional el Athlon almacena en una tabla de 2048


entradas, llamada Branch History Table (BHT) [1, 2], la historia de cada
salto en un esquema de prediccion muy parecido al de dos bits2 . (Es decir
cada entrada de la tabla tiene un identificador del salto y dos bits de historia:
00 Se predice no saltar, no ha habido error en la prediccion.
01 Se predice no saltar, ha habido un error en la prediccion.
10 Se predice saltar, ha habido un error en la prediccion.
11 Se predice saltar, no ha habido error en la prediccion.
En otra tabla llamada Branch Target Address (BTA) [1, 2] se almacenan
las direcciones de los saltos. As que ya no hay que calcularlas cada vez. Sin
embargo la penalizaci
on ocasionada por una prediccion incorrecta es de 10
2

La descripci
on corresponde al esquema de predicci
on de dos bits. No a la variaci
on
especfica que utiliza Athlon, esta informaci
on no est
a disponible en las fuentes consultadas.

ciclos de reloj. Afortunadamente el esquema del Athlon acierta, seg


un AMD,
en el 95 % de las veces. La afirmacion de AMD no parece descabellada. Por
su parte el Intel Pentium III acierta en el 90 % de los casos que utiliza
un algoritmo m
as simple y tablas de historia y direcciones de salto de 512
entradas.

5.

El pipeline

El AMD Athlon tiene diez etapas de pipeline en operaciones con enteros


y 15 para instrucciones de punto flotante. Teoricamente se ha demostrado
que el n
umero de etapas
optimo esta entre 8 y 9, as que esta un poco pasado,
pero dentro de lo razonable, dado el complejo conjunto de instrucciones a
ejecutar.
Algunos analistas [4] suponen que el pipeline de Intel tiene de 12 a 17
etapas en las operaciones de enteros y de unas 30 etapas en el procesamiento
de instrucciones de punto flotante, claramente muy por arriba del optimo.
Si una m
aquina tiene muchas etapas de pipeline ocurren cosas indeseables. Por ejemplo, si una instruccion de salto decide saltar y se haba predicho
que no lo hara hay que tirar a la basura el trabajo hecho sobre algunas instrucciones que no hay que terminar y posiblemente, deshacer los efectos que
estas hayan tenido sobre el estado del procesador. Todo esto es considerado como la penalizaci
on de salto (branch penalty o missprediction penalty).
Generalmente el c
alculo de direccion efectiva de salto y de la condicion del
mismo se obtienen en etapas avanzadas, as que en un procesador con muchas etapas de pipeline tiene mayores penalizaciones. Cuando esto ocurre se
dice que es un procesador overpipelined. Al parecer el Intel Pentium II lo es
y el AMD Athlon no [4].
Sin embargo muy pocas etapas de pipeline significa que cada etapa hace
muchas cosas, cada etapa es muy pesada esto tiende a alargar el ciclo de
reloj y a disminuir el rendimiento (throughput). Habra que ver si las etapas
5, 7 y 9 del Athlon no son muy pesadas.
En todo caso el Pentium III y el Athlon son comparables en desempe
no.
Sus reportes de SPEC los colocan en competencia cerrada. En configuraciones similares reportan el mismo resultado, en peak performance y con un
m
aximo de 9 puntos de diferencia (a favor de Intel, aunque con una frecuencia de operaci
on de unas decenas de ciclos por arriba de la del Athlon con
el que se compara) en el baseline performance [3].

Referencias
[1] AMD Athlon Processor. Technical Brief, AMD, diciembre 1999.
[2] Diefendorff, Keith K7 Challenges Intel, Microprocessor Report,
12(14), octubre de 1998.
[3] SPEC Benchmarks, accesibles en SPEC (http://www.spec.org) o, en
resumen, en http://pateame.fciencias.unam.mx/arq.
[4] Stiller,
Andreas,
Architecture
Contest.
Design
Comparison: AMD K7 Athlon versus Pentium III, 1999, en
http://pateame.fciencias.unam.mx/arq
[5] Wyam, Chris, The Advanced Micro Devices Athlon Processor, 1999, en
http://pateame.fciencias.unam.mx/arq.

Вам также может понравиться