amd k7 processor analysis

Post on 06-Nov-2015

31 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Analysis of AMD K7 Microarchitecture

TRANSCRIPT

  • El AMD Athlon (K7)

    Jose Galaviz Casas*

    1. Antecedentes

    Desde hace ya varios anos diversas companas se han dedicado a hacerprocesadores capaces de ejecutar codigo binario de los procesadores de laserie X86 de Intel: Cyrix, Nec y Advanced Micro Devices son algunas deellas.

    Por supuesto el principal competidor de estos procesadores son precisa-mente los procesadores que tratan de emular. Para lograr colocarse en elmercado deben entonces incorporar a sus productos caractersticas que loshagan competitivos en precio y desempeno frente a los de Intel. Ante el reto,lo que ha tratado de hacer AMD en particular, es redisenar completamen-te la arquitectura, hacerla de alto desempeno incorporando caractersticasque permitan darle la vuelta a la complejidad intrnseca del conjunto deinstrucciones de Intel.

    Algunos de los dolores de cabeza con los que hay que tratar en la arqui-tectura de Intel son:

    Formato y longitud de instruccion variable: de 1 a 17 bytes.

    Arquitectura de instrucciones mem-reg. Es decir no hay instruccionesespecficas para acceder a memoria, como en las arquitecturas load-store.

    Multitud de modos de direccionamiento.

    Conjunto de instrucciones no-ortogonal respecto a los modos de direc-cionamiento. Lo que no sera tanto problema, de no ser porque

    Es una maquina CISC con un catalogo de instrucciones muy grande ycomplejo.

    *Departamento de Matematicas, Facultad de Ciencias, UNAM. jose@matem.unam.mx

    1

  • Registros de proposito semi-especfico. Algunas instrucciones utilizanalgunos de los registros paa propositos especficos.

    Registros especficos para direccionamiento. Los conocidos registros desegmento.

    Instrucciones especiales mem-mem para manejo masivo de datos orien-tadas a multimedia (MMX).

    Bus de direcciones de 36 bits (64 Gb de memoria direccionable). Estono es realmente un problema, mas bien una limitacion que es posiblerebasar.

    Instrucciones especiales mem-mem, complicadas, para manejo de ca-denas (LODS, MOVS, CMPS, etc).

    Bus externo compartido por todos los dispositivos de entrada/salida.

    Estas complicaciones hacen que se deba usar un control microprogra-mado.

    Ciertamente todas estas son debilidades y son, por tanto, explotables porAMD. Pero tambien es cierto que la arquitectura de Intel no es as gratui-tamente y dado que la intencion es hacer un procesador compatible con elde Intel, habra que ser muy innovador para eliminar los problemas y poderseguir siendo compatible.

    2. Ejecucion de instrucciones

    El proceso de una instruccion de lenguaje de maquina de Intel en laarquitectura del Athlon es el siguiente [2, 5]:

    1 Fetch. Se trae la instruccion y se almacena en una memoria cache. En elcache se hace una pre-decodificacion. Se traen 16 bytes, en promedio unainstruccion de Intel mide 5.3 bytes, as que generalmente estos 16 bytescontendran 3 instrucciones. Si la instruccion es un salto se accede a unatabla de historia de saltos.

    2 Scan. Se predice el salto si es el caso. Se determina si la instruccion escompleja (como las de manejo de cadenas) o no. Si es compleja se pone encamino a un control microprogramado, tal como ocurrira en Intel. Perosi 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 pasaal controlador microprogramado. Si es sencilla (y entonces generalmenteno es una sino tres instrucciones generalmente) se pasa por un arreglo demultiplexores para alinearlas y determinar sus lmites. Generalmente lacola de tres lugares de esta etapa queda llena.

    4 EDEC (Early decode). Se recibe la salida del decodificador micropro-gramado o de la cola de tres instrucciones y cada instruccion es divididaen instrucciones mas simples, instrucciones al estilo RISC (reg-reg, load-store) llamadas Macro Operations (MOPS) [1].

    5 IDEC. Se almacenan en una memoria hasta 72 MOPS. Esta memoria esuna cola de la unidad de control de instruccion (Instruction Control Unito ICU).

    6 Las instrucciones de ICU son enviadas a dos posibles lugares: un despa-chador de instrucciones enteras o una unidad de punto flotante. As queen este ciclo la ejecucion se bifurca y ocurre uno de dos caminos:

    Operaciones con enteros.

    a) SCHED. El despachador recibe 3 MOPS de una sola vez. CadaMOP es dividido en, a lo mas, dos instrucciones mas simplesllamadas ROPS (Reordered Operations) [2]. As que puede haberhasta 6 ROPS: la mitad de operaciones de ALU y la mitad deload o store.

    b) EX. Hay tres unidades funcionales de ejecucion de instruccionescon enteros (Integer Exceution Unit o IEU) y tres de generacionde direcciones (Address Genration Unit o AGU) [1, 5]. As quees posible ejecutar hasta 6 ROPS en un solo ciclo de reloj. Es-to hace que el Athlon sea una maquina superescalar1. Muchasunidades funcionales procesan en paralelo muchas instruccionesa un tiempo.

    c) Addr. Tanto los resultados generados por las ALU (IEU) co-mo las direcciones calculadas por las AGU se pasan a una colade 44 instrucciones donde se preven los hazards de datos y sepreparan los forwardings para resolver los que hayan quedado.Previamente algunos fueron resueltos al generar las ROPS, quecomo su nombre indica, estan reordenadas para evitar hazardsque atoren el Pipeline.

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

    3

  • 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 tradi-cionalmente maquinas de stack. El Athlon modifica las instruc-ciones para que utilicen registros de proposito general y as op-timizar la ejecucion. A esto se le llama renombrado del stack(stack renaming) [5].

    b) Name. Segunda pasada de renombrado para evitar falsas de-pendencias.

    c) WSch Las instrucciones se reordenan para evitar hazards y sonpuestas en ruta al despachador de la etapa siguiente.

    d) Sched. Las instrucciones se despachan hacia tres diferentes uni-dades de punto flotante (3 FLOPS por ciclo). Tambien en estasunidades es donde se ejecutan las instrucciones de MMX y de3DNow! (24 instrucciones propias de AMD para multimedia yque por cierto han recibido crticas severas cuantos las usan?vale la pena poner hardware y tiempo para ejecutar algo quesolo usan unos pocos?).

    e) FReg No esta documentado pero debe hacerse algo para acomo-dar los operandos de las instrucciones en los registros de puntoflotante.

    f ) EX0,...,EX3 Ejecucion.

    3. Caractersticas

    El bus de direcciones del Athlon es de 43 bits, lo que le permite direc-cionar hasta 8 terabytes de memoria [5].

    El bus compartido por el Pentium III ha sido reemplazado por un buspunto a punto que conecta el procesador con cada dispositivo de maneraexclusiva. Cada dispositivo en este bus, tiene para s el ancho de bandacompleto del bus y no tiene que compartirlo con el resto de los dispositivos.El bus utilizado es EV6, mismo que originalmente fue disenado para la Alpha21264 de Digital (hoy Compaq, manana HP). Ademas este bus opera conflanco de subida y flaco de bajada del ciclo de reloj as que, aunque su

    4

  • frecuencia de operacion nominal es de 100MHz en realidad resulta ser de200MHz efectivos [2, 5]. Por cierto la velocidad de este bus es escalable aldoble (i.e. puede ser de hasta 400 MHz. efectivos y 200 nominales), pero lasmemorias aun no son tan rapidas.

    Este bus es un arma de dos filos. Por una parte incrementa la velocidad detransferencia entre los dispositivos de E/S y el procesador. Por otra parteimaginemos por un momento que deseamos hacer un motherboard dual.Tendremos que proveer de un bus para cada procesador, si queremos hacerun motherboard con mas procesadores el problema se complica aun mas, elnumero de lneas es como el producto de numero de procesadores por el dedispositivos, donde cabra un motherboard para cinco Athlon?

    El cache del Athlon esta dividido en dos niveles jerarquicos. El cachede primer nivel esta dentro del chip y a su vez esta dividido en cache dedatos (64 KB.) y cache de instrucciones (674 KB.) 2-way set associative. Lamemoria 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 requierede un sistema de enfriamiento bastante agresivo, disipador y ventilador, parasobrevivir a s mismo.

    4. Manejo de saltos

    Para cada salto condicional el Athlon almacena en una tabla de 2048entradas, llamada Branch History Table (BHT) [1, 2], la historia de cadasalto en un esquema de prediccion muy parecido al de dos bits2. (Es decircada 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 almacenanlas direcciones de los saltos. As que ya no hay que calcularlas cada vez. Sinembargo la penalizacion ocasionada por una prediccion incorrecta es de 10

    2La descripcion corresponde al esquema de prediccion de dos bits. No a la variacionespecfica que utiliza Athlon, esta informacion no esta disponible en las fuentes consulta-das.

    5

  • ciclos de reloj. Afortunadamente el esquema del Athlon acierta, segun AMD,en el 95 % de las veces. La afirmacion de AMD no parece descabellada. Porsu parte el Intel Pentium III acierta en el 90 % de los casos que utilizaun algoritmo mas simple y tablas de historia y direcciones de salto de 512entradas.

    5. El pipeline

    El AMD Athlon tiene diez etapas de pipeline en operaciones con enterosy 15 para instrucciones de punto flotante. Teoricamente se ha demostradoque el numero 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 aejecutar.

    Algunos analistas [4] suponen que el pipeline de Intel tiene de 12 a 17etapas en las operaciones de enteros y de unas 30 etapas en el procesamientode instrucciones de punto flotante, claramente muy por arriba del optimo.

    Si una maquina tiene muchas etapas de pipeline ocurren cosas indesea-bles. Por ejemplo, si una instruccion de salto decide saltar y se haba predichoque no lo hara hay que tirar a la basura el trabajo hecho sobre algunas ins-trucciones que no hay que terminar y posiblemente, deshacer los efectos queestas hayan tenido sobre el estado del procesador. Todo esto es considera-do como la penalizacion de salto (branch penalty o missprediction penalty).Generalmente el calculo de direccion efectiva de salto y de la condicion delmismo se obtienen en etapas avanzadas, as que en un procesador con mu-chas etapas de pipeline tiene mayores penalizaciones. Cuando esto ocurre sedice que es un procesador overpipelined. Al parecer el Intel Pentium II lo esy el AMD Athlon no [4].

    Sin embargo muy pocas etapas de pipeline significa que cada etapa hacemuchas cosas, cada etapa es muy pesada esto tiende a alargar el ciclo dereloj y a disminuir el rendimiento (throughput). Habra que ver si las etapas5, 7 y 9 del Athlon no son muy pesadas.

    En todo caso el Pentium III y el Athlon son comparables en desempeno.Sus reportes de SPEC los colocan en competencia cerrada. En configura-ciones similares reportan el mismo resultado, en peak performance y con unmaximo de 9 puntos de diferencia (a favor de Intel, aunque con una frecuen-cia de operacion de unas decenas de ciclos por arriba de la del Athlon conel que se compara) en el baseline performance [3].

    6

  • 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, enresumen, en http://pateame.fciencias.unam.mx/arq.

    [4] Stiller, Andreas, Architecture Contest. Design Compa-rison: AMD K7 Athlon versus Pentium III, 1999, enhttp://pateame.fciencias.unam.mx/arq

    [5] Wyam, Chris, The Advanced Micro Devices Athlon Processor, 1999, enhttp://pateame.fciencias.unam.mx/arq.

    7

top related