You are on page 1of 36

PROCESADOR AMD OPTERON

USO EN SERVIDORES MULTIPROCESADOR

David Oa Martnez

NDICE

CARACTERSTICAS GENERALES

ARQUITECTURA x86-64

MICROARQUITECTURA DEL NCLEO

PIPELINE

CACHES

INSTRUCTION FETCH AND DECODE

PREDICTOR DE SALTOS

UNIDADES FUNCIONALES DE ENTEROS Y PUNTO FLOTANTE

CMO SE INTEGRA ESTO LTIMO?

UNIDADES FUNCIONALES LOAD Y STORE

CONTROLADOR DE MEMORIA E HYPERTRANSPORT

FIABILIDAD

CMO SE INTEGRA TODO LO ANTERIOR?

CMO SE INTEGRA ESTO LTIMO?

MULTIPROCESAMIENTO

ANLISIS DEL RENDIMIENTO DEL MULTIPROCESADOR

MULTIPROCESAMIENTO DE MS DE 8 VAS

CARACTERSTICAS
GENERALES

Microprocesador de 64 bit basado en


la arquitectura x86.

Procesador superescalar.

Ejecucin
fuera
de
orden
especulativa, con renombrado de
registros y ROB.

Dos niveles amplios de


cache on-chip (L1 y L2).

Controlador de memoria double-datarate (DDR) on-chip.

HyperTransport
multiprocesamiento.

memoria

para

ARQUITECTURA
x86-64
POR QU 64 BIT?

Bases de datos

Herramientas CAD

Servidores de alto rendimiento

Necesidad de direccionamiento de
grandes cantidades de memoria
tanto fsica como virtual.

QU OCURRE ENTONCES CON LA ARQUITECTURA x86-32?


La tecnologa x86-64:

Funciona a mximo rendimiento con las aplicaciones y sistemas operativos de 32 bits


existentes, al tiempo que ofrece una ruta de migracin a 64 bits apta.

Est diseada para permitir la informtica de 64 bits sin dejar de ser compatible con la
amplia infraestructura de software x86.

Permite una sola infraestructura en entornos de 32 y 64 bit.

ARQUITECTURA
x86-64
COMPATIBILIDAD CON LA
ARQUITECTURA x86

Direcciones virtuales de 64 bit.

Direcciones fsicas de 52 bit.

Se extienden las instrucciones


aritmtico-lgicas de enteros a 64
bit.

Se dobla el nmero de registros


de propsito general (GPRs) y los
registros de extensin SIMD
(SSE) (de 8 a 16 en ambos casos).

Se amplan los GPRs de 32 a 64


bit.

MICROARQUITECTURA
DEL NCLEO

MICROARQUITECTURA
DEL NCLEO

Procesador de 3 vas: realiza el fetch y


decode de 3 instrucciones por ciclo.

Consta de 72 ops.

Codifica instrucciones de tamao variable en


ops de longitud fija.

Existen 2 tipos de -ops:

Enteras.

Punto flotante y multimedia.

11 ops por ciclo en las siguientes unidades


de ejecucin:

3 UFs de enteros.

3 UFs de generacin de direcciones.

3 UFs de punto flotante y multimedia.

2 load/store a la cache de datos.

PIPELINE

Completamente integrado desde la unidad de fetch a travs de la memoria DRAM.

La memoria DRAM funciona a la misma frecuencia que el ncleo.

PIPELINE

Consta de:

12 etapas para operaciones de enteros.

17 etapas para operaciones en punto flotante.

Suficientemente largo como para obtener buenos resultados a alta frecuencia.

Suficientemente corto como para obtener buen IPC.

7 ciclos para las etapas de fetch y decode en los que la latencia viene salvaguardada por el predictor de
saltos.

En la operacin de carga el acceso a memoria cache de datos L1 tiene lugar en la etapa 11 y en la


siguiente etapa el dato se encuentra en el CDB.

PIPELINE

Si se produce un fallo de cache L1 tiene lugar un acceso en paralelo a la cache L2 y a la


cola de peticiones de sistema (system request queue).

Si se da un acierto en L2 se cancela la peticin de sistema.

El controlador de memoria gestiona la peticin de sistema en la memoria DRAM.

Se adelantan los datos tanto de cache como de memoria DRAM mientras se


actualiza L1 y se realiza la correcin de cdigo.

CACHES
L1:

Cache de datos e instrucciones (L1)


separadas:

Tamao: 64 Kbytes.

Asociativa
por
conjuntos.
Indexadas linealmente.

8 vas.

Marcos
Kbytes.

Longitud de palabra de 64
bytes.

de

bloque

de

TLB asociativa:

32 entradas correspondientes
a pginas de 4 Kbytes.

8 entradas correspondientes a
pginas de 2 a 4 Mbytes.

CACHES
L2:

Tamao: 1 Mbyte.

Asociativa por conjuntos de 16 vas.

Poltica de reemplazamiento pseudo-LRU:

2 vas por sector.

LRU asociada a cada sector

Se utilizan la mitad de bits que para LRU obteniendo el mismo resultado.

El protocolo MOESI (Modified, Owner, Exclusive, Shared, Invalid) garantiza coherencia en la


cache.

TLB asociativa por conjuntos de 4 vas con 512 entradas correspondientes a pginas de 4
Kbytes.

Existe un filtro HW que impide la eliminacin innecesaria de pginas de la TLB. Solamente


se limpia la TLB cuando se producen modificaciones en la paginacin de las estructuras de
datos.

INSTRUCTION FETCH
AND DECODE

La unidad de fetch enva a la unidad scan/align 16 bytes de instruccin por ciclo (las
instrucciones pueden variar de 1 a 15 bytes).

La unidad scan/align escanea los bytes y marca los lmites de cada instruccin.

Las instrucciones se traducen en ops de longitud fija mediante:

Fastpath decoders (decodificadores HW ).

Microcdigo.

INSTRUCTION FETCH
AND DECODE

Fastpath decoders:

Pueden traducir hasta 3 instrucciones por ciclo.

La mayora de las instrucciones que se decodifican en 1 2 ops usan estos


decodificadores.

Opteron posee ms recursos Fastpath que Athlon.

Microcdigo:

Slo se traduce 1 instruccin por ciclo.

PREDICTOR
DE SALTOS

Predictor hbrido.

El mecanismo de seleccin elige entre


prediccin esttica y la tabla de
historia global.

La tabla de historia global posee dos


contadores saturados de 2 bits.

La pila de direcciones de retorno


(RAS) almacena conjuntamente cada
salto con su direccin de retorno.

Cuando se lee una lnea de la cache


datos se guarda la informacin
prediccin de salto y los ltimos bits
L2 (en el campo de cdigo
correccin de errores de cache).

de
de
en
de

PREDICTOR
DE SALTOS

CMO SE INTEGRA TODO LO ANTERIOR?

UNIDADES DE ENTEROS
Y PUNTO FLOTANTE

A la unidad de control de instrucciones llegan 3 ops por ciclo.

La unidad de control de instrucciones posee un ROB de 72 entradas.

En paralelo, las ops llegan a las estaciones de reserva de enteros y a la cola de


operaciones en punto flotante.

Se procede al issue de las ops y la ejecucin de las mismas comienza cuando cuando
los operandos se encuentran disponibles.

ops de enteros:

Camino de datos de 64 bits.

La mayora se realizan en 1 ciclo.

El HW de multiplicacin tarda:

3 ciclos para multiplicaciones de 32 bits.

5 ciclos para multiplicaciones de 64 bits.

UNIDADES DE ENTEROS
Y PUNTO FLOTANTE

ops en punto flotante:

Camino de datos de extensin a 80 bit de precisin.

UFs segmentadas con CPI = 1 para la mayora de las operaciones.

Operaciones simples y la mayora de las MMX tardan 2 ciclos.

Multiplicacin MMX: 3 ciclos.

Multiplicacin y suma: 4 ciclos.

Divisin y raz cuadrada con latencia variable dependiendo de la


precisin (entre 16 y 35 ciclos).

CMO SE INTEGRA ESTO LTIMO?

UNIDAD LOAD STORE

2 operaciones de load o store de 64


bits por ciclo (si el acceso se realiza
a bloques distintos)

La latencia del load es de 3 ciclos


(puede requerir un ciclo extra si existe
algn conflicto).

Aunque la operacin de load puede


proporcionar valores fuera de orden, la
operacin de store slo puede realizar
el commit cuando se retira el valor del
ROB.

CONTROLADOR DE MEMORIA
E HYPERTRANSPORT
CONTROLADOR DE MEMORIA

On chip.

Conexin bidireccional con memoria DDR a 333 MHz (ancho de banda de 128 bits).

Memoria DDR compuesta de mdulos de memoria PC2700 en lnea (DIMMs).

Pico de ancho de banda mximo del controlador de 5.3 Gbytes/s.

8 mdulos DIMM de 2 Gbytes adicionales proporcionan un refuerzo de 16 Gbytes.

No emplea la misma seal de reloj que el ncleo pero la frecuencia es idntica.

Un protocolo de coherencia de cache evita el retardo producido por el acceso en serie a


las caches de los distintos procesadores permitiendo al acceso concurrente a caches y
DRAM.

CONTROLADOR DE MEMORIA
E HYPERTRANSPORT

HYPERTRANSPORT

3 conexiones con un ancho de banda de 16 bits (3.2 Gbytes/s por direccin).

Dos posibles configuraciones:

Protocolo coherente (cHT) para conectar procesadores.

Protocolo incoherente (HT) para conectar E/S.

Permite conexionado flexible, adaptable y configurable a todo tipo de topologas E/S.

Es transparente a cualquier sistema operativo que emplea PCI.

FIABILIDAD

CORRECIN DE ERRORES DE CDIGO (ECC)/SISTEMA DE BITS DE PARIDAD

Memorias cache L1, L2 y sus respectivas TLBs y memoria DRAM:

8 bits de paridad para 64 bits de datos.

Single Error Correction Double Error Detection (SECDED).

Existen mecanismos HW que limpian errores ECC de 1 bit.

Procesador:

16 bits de paridad para 128 bits de datos.

Los errores del sistema ECC se envan a una arquitectura de comprobacin que informa de
los fallos con suficiente informacin para diagnosticar el error.

CMO SE INTEGRA ESTO LTIMO?

MULTIPROCESAMIENTO
Las tres conexiones HyperTransport on-chip permiten construir sistemas multiprocesador de 2, 4
y hasta 8 vas con amplio ancho de banda para flujos de datos de E/S.

2 vas

4 vas

8 vas

ANLISIS DEL RENDIMIENTO


DEL MULTIPROCESADOR
CONDICIONES DEL ESTUDIO MEDIANTE MICROBENCHMARKS

Se analizan 3 tipos de configuraciones: sistemas de 1, 2 y 4 procesadores.

Se estudia la latencia y el ancho de banda.

Cada conexin HyperTransport ofrece un ancho de banda de 6.4 Gbytes/s:

3 conexiones E/S (1P).

4 conexiones E/S (2P y 4P).

Distancia media entre nodos:

1 hop (1P y 2P).

1.75 hops (4P).

ANLISIS DEL RENDIMIENTO


DEL MULTIPROCESADOR
CONDICIONES DEL ESTUDIO MEDIANTE MICROBENCHMARKS

Se hace distincin entre dos tipos de acceso a memoria:

Acceso exclusivo a memoria local de cada procesador (a)

Acceso a memoria Xfire (Crossfire): Todos los procesadores acceden a


datos de cada nodo mediante una interconexin total de los procesadores
(comunicacin all-to-all) (b)

ANLISIS DEL RENDIMIENTO


DEL MULTIPROCESADOR
RESULTADOS DEL ANLISIS

El ancho de banda de la lectura de memoria en 4P es de hasta:

15.59 Gbytes/s en accesos a memoria local.

11.23 Gbytes/s en accesos a memoria a travs de los nodos.

ANLISIS DEL RENDIMIENTO


DEL MULTIPROCESADOR
RESULTADOS DEL ANLISIS

La latencia media de lectura sin carga de datos de pginas de memoria a disposicin


de todos los procesadores es, como mucho, de:

50 ns (1P).

70 ns (2P).

110 ns (4P).

ANLISIS DEL RENDIMIENTO


DEL MULTIPROCESADOR
RESULTADOS DEL ANLISIS

El ancho de banda medio de trfico uniforme entre nodos es de:

5.3 Gbytes/s (1P).

7 Gbytes/s (2P).

11.23 Gbytes/s (4P).

ANLISIS DEL RENDIMIENTO


DEL MULTIPROCESADOR
Parmetro del sistema

1P

2P

4P

N de DIMMs

16

32

Memoria total usando DIMMS de 2 Gbytes (Gbytes)

16

32

64

N de conexiones HyperTransport

Bisection bandwidth (Gbytes/s)

6.4

12.8

Dimetro (N de hops)

Distancia media (N de hops)

0.5

Ancho de banda de lectura de memoria local (Gbytes/s)

5.3

10.67

15.59

Ancho de banda local por procesador (Gbytes/s)

5.3

5.3

3.9

Ancho de banda de lectura de memoria Xfire (Gbytes/s)

5.3

7.06

11.23

Ancho de banda Xfire (Gbytes/s)

5.3

3.53

2.8

MULTIPROCESAMIENTO
DE MS DE 8 VAS

El procesador Opteron se concibi


como bloque integrante de servidores
de buen resultado cuya ampliacin
resultase verstil.

El servidor puede ampliarse a un


nmero de vas superior a 8 mediante
un
dispositivo
HyperTransport
externo.

Distancia media entre nodos: 2.7 hops.

Distancia
mxima
entre
(dimetro de la red): 5 hops.

nodos

MULTIPROCESAMIENTO
DE MS DE 8 VAS

Los procesadores se agrupan en grupos de 4, cada uno con E/S y memoria local
independientes.

Los 4 procesadores comparten un par de caches remotas y filtros snoop (reducen el


trfico entre interruptores e incrementan el ancho de banda).

Cada grupo de procesadores se conecta con el resto mediante dos interruptores


coherentes (SW0 y SW1) y seis conexiones HyperTransport.

BIBLIOGRAFA

Chetana N. Keltcher et al, The AMD Opteron Processor for Multiprocessor Servers, IEEE Micro, vol. 23, no 2,
2003, pp. 66-76

http://www.amd.com

http://www.amd.com/us-en/assets/content_type/DownloadableAssets/MPF_Hammer_Presentation.PDF

http://chip-architect.com/news/2003_09_21_Detailed_Architecture_of_AMDs_64bit_Core.html

http://h20000.www2.hp.com/bc/docs/support/SupportManual/c00238028/c00238028.pdf

http://www.devx.com/amd/Article/16019

FIN DE LA PRESENTACIN

David Oa Martnez

You might also like