Amd Opteron

36
PROCESADOR AMD OPTERON USO EN SERVIDORES MULTIPROCESADOR David Oña Martínez

description

Amd Opteron

Transcript of Amd Opteron

Page 1: Amd Opteron

PROCESADOR AMD OPTERONUSO EN SERVIDORES MULTIPROCESADOR

David Oña Martínez

Page 2: Amd Opteron

ÍNDICECARACTERÍSTICAS GENERALES

ARQUITECTURA x86-64

MICROARQUITECTURA DEL NÚCLEO

PIPELINE

CACHES

INSTRUCTION FETCH AND DECODE

PREDICTOR DE SALTOS

¿CÓMO SE INTEGRA TODO LO ANTERIOR?

UNIDADES FUNCIONALES DE ENTEROS Y PUNTO FLOTANTE

¿CÓMO SE INTEGRA ESTO ÚLTIMO?

UNIDADES FUNCIONALES LOAD Y STORE

CONTROLADOR DE MEMORIA E HYPERTRANSPORT

FIABILIDAD

¿CÓMO SE INTEGRA ESTO ÚLTIMO?

MULTIPROCESAMIENTO

ANÁLISIS DEL RENDIMIENTO DEL MULTIPROCESADOR

MULTIPROCESAMIENTO DE MÁS DE 8 VÍAS

Page 3: Amd Opteron

CARACTERÍSTICASGENERALES

Microprocesador de 64 bit basado en la arquitectura x86.

Procesador superescalar.

Ejecución fuera de orden especulativa, con renombrado de registros y ROB.

Dos niveles amplios de memoriacache on-chip (L1 y L2).

Controlador de memoria double-data-rate (DDR) on-chip.

HyperTransport para multiprocesamiento.

Page 4: Amd Opteron

ARQUITECTURA x86-64

¿QUÉ OCURRE ENTONCES CON LA ARQUITECTURA x86-32?

La tecnología x86-64:

Funciona a máximo rendimiento con las aplicaciones y sistemas operativos de 32 bits existentes, al tiempo que ofrece una ruta de migración a 64 bits apta.

Está diseñada para permitir la informática 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.

¿POR QUÉ 64 BIT?

Bases de datos

Herramientas CAD

Servidores de alto rendimiento

Necesidad de direccionamiento de grandes cantidades de memoria tanto física como virtual.

Page 5: Amd Opteron

ARQUITECTURA x86-64

COMPATIBILIDAD CON LA

ARQUITECTURA x86

Direcciones virtuales de 64 bit.

Direcciones físicas de 52 bit.

Se extienden las instrucciones aritmético-lógicas de enteros a 64 bit.

Se dobla el número de registros de propósito general (GPRs) y los registros de extensión SIMD(SSE) (de 8 a 16 en ambos casos).

Se amplían los GPRs de 32 a 64 bit.

Page 6: Amd Opteron

MICROARQUITECTURA DEL NÚCLEO

Page 7: Amd Opteron

MICROARQUITECTURA DEL NÚCLEO

Procesador de 3 vías: realiza el fetch y decode de 3 instrucciones por ciclo.

Consta de 72 μops.

Codifica instrucciones de tamaño 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 ejecución:

3 UFs de enteros.

3 UFs de generación de direcciones.

3 UFs de punto flotante y multimedia.

2 load/store a la cache de datos.

Page 8: Amd Opteron

PIPELINE

Completamente integrado desde la unidad de fetch a través de la memoria DRAM.

La memoria DRAM funciona a la misma frecuencia que el núcleo.

Page 9: Amd Opteron

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 operación 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.

Page 10: Amd Opteron

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 petición de sistema.

El controlador de memoria gestiona la petición 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 correción de código.

Page 11: Amd Opteron

CACHES

L1:

Cache de datos e instrucciones (L1) separadas:

Tamaño: 64 Kbytes.

Asociativa por conjuntos. Indexadas linealmente.

8 vías.

Marcos de bloque de 4 Kbytes.

Longitud de palabra de 64 bytes.

TLB asociativa:

32 entradas correspondientes a páginas de 4 Kbytes.

8 entradas correspondientes a páginas de 2 a 4 Mbytes.

Page 12: Amd Opteron

CACHES

L2:

Tamaño: 1 Mbyte.

Asociativa por conjuntos de 16 vías.

Política de reemplazamiento pseudo-LRU:

2 vías 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 vías con 512 entradas correspondientes a páginas de 4 Kbytes.

Existe un filtro HW que impide la eliminación innecesaria de páginas de la TLB. Solamente se limpia la TLB cuando se producen modificaciones en la paginación de las estructuras de datos.

Page 13: Amd Opteron

INSTRUCTION FETCHAND DECODE

La unidad de fetch envía a la unidad scan/align 16 bytes de instrucción por ciclo (las instrucciones pueden variar de 1 a 15 bytes).

La unidad scan/align escanea los bytes y marca los límites de cada instrucción.

Las instrucciones se traducen en μops de longitud fija mediante:

Fastpath decoders (decodificadores HW ).

Microcódigo.

Page 14: Amd Opteron

INSTRUCTION FETCHAND DECODE

Fastpath decoders:

Pueden traducir hasta 3 instrucciones por ciclo.

La mayoría de las instrucciones que se decodifican en 1 ó 2 μops usan estos decodificadores.

Opteron posee más recursos Fastpath que Athlon.

Microcódigo:

Sólo se traduce 1 instrucción por ciclo.

Page 15: Amd Opteron

PREDICTORDE SALTOS

Predictor híbrido.

El mecanismo de selección elige entre predicción estática 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 dirección de retorno.

Cuando se lee una línea de la cache de datos se guarda la información de predicción de salto y los últimos bits en L2 (en el campo de código de corrección de errores de cache).

Page 16: Amd Opteron

PREDICTORDE SALTOS

Page 17: Amd Opteron

¿CÓMO SE INTEGRA TODO LO ANTERIOR?

Page 18: Amd Opteron

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 ejecución de las mismas comienza cuando cuando los operandos se encuentran disponibles.

μops de enteros:

Camino de datos de 64 bits.

La mayoría se realizan en 1 ciclo.

El HW de multiplicación tarda:

3 ciclos para multiplicaciones de 32 bits.

5 ciclos para multiplicaciones de 64 bits.

Page 19: Amd Opteron

UNIDADES DE ENTEROS Y PUNTO FLOTANTE

μops en punto flotante:

Camino de datos de extensión a 80 bit de precisión.

UFs segmentadas con CPI = 1 para la mayoría de las operaciones.

Operaciones simples y la mayoría de las MMX tardan 2 ciclos.

Multiplicación MMX: 3 ciclos.

Multiplicación y suma: 4 ciclos.

División y raíz cuadrada con latencia variable dependiendo de la precisión (entre 16 y 35 ciclos).

Page 20: Amd Opteron

¿CÓMO SE INTEGRA ESTO ÚLTIMO?

Page 21: Amd Opteron

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 algún conflicto).

Aunque la operación de load puede proporcionar valores fuera de orden, la operación de store sólo puede realizar el commit cuando se retira el valor del ROB.

Page 22: Amd Opteron

CONTROLADOR DE MEMORIAE HYPERTRANSPORT

CONTROLADOR DE MEMORIA

On chip.

Conexión bidireccional con memoria DDR a 333 MHz (ancho de banda de 128 bits).

Memoria DDR compuesta de módulos de memoria PC2700 en línea (DIMMs).

Pico de ancho de banda máximo del controlador de 5.3 Gbytes/s.

8 módulos DIMM de 2 Gbytes adicionales proporcionan un refuerzo de 16 Gbytes.

No emplea la misma señal de reloj que el núcleo pero la frecuencia es idéntica.

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.

Page 23: Amd Opteron

CONTROLADOR DE MEMORIAE HYPERTRANSPORT

HYPERTRANSPORT

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

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 topologías E/S.

Es transparente a cualquier sistema operativo que emplea PCI.

Page 24: Amd Opteron

FIABILIDAD

CORRECIÓN DE ERRORES DE CÓDIGO (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 envían a una arquitectura de comprobación que informa de los fallos con suficiente información para diagnosticar el error.

Page 25: Amd Opteron

¿CÓMO SE INTEGRA ESTO ÚLTIMO?

Page 26: Amd Opteron

MULTIPROCESAMIENTO

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

2 vías 4 vías 8 vías

Page 27: Amd Opteron

ANÁLISIS 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 conexión 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).

Page 28: Amd Opteron

ANÁLISIS DEL RENDIMIENTO DEL MULTIPROCESADOR

CONDICIONES DEL ESTUDIO MEDIANTE MICROBENCHMARKS

Se hace distinción 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 interconexión total de los procesadores (comunicación all-to-all) (b)

Page 29: Amd Opteron

ANÁLISIS DEL RENDIMIENTO DEL MULTIPROCESADOR

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 través de los nodos.

RESULTADOS DEL ANÁLISIS

Page 30: Amd Opteron

ANÁLISIS DEL RENDIMIENTO DEL MULTIPROCESADOR

La latencia media de lectura sin carga de datos de páginas de memoria a disposición de todos los procesadores es, como mucho, de:

50 ns (1P).

70 ns (2P).

110 ns (4P).

RESULTADOS DEL ANÁLISIS

Page 31: Amd Opteron

ANÁLISIS DEL RENDIMIENTO DEL MULTIPROCESADOR

El ancho de banda medio de tráfico uniforme entre nodos es de:

5.3 Gbytes/s (1P).

7 Gbytes/s (2P).

11.23 Gbytes/s (4P).

RESULTADOS DEL ANÁLISIS

Page 32: Amd Opteron

ANÁLISIS DEL RENDIMIENTODEL MULTIPROCESADOR

12.86.4-Bisection bandwidth (Gbytes/s)

2.83.535.3Ancho de banda Xfire (Gbytes/s)

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

3.95.35.3Ancho de banda local por procesador (Gbytes/s)

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

10.5-Distancia media (Nº de hops)

21-Diámetro (Nº de hops)

443Nº de conexiones HyperTransport

643216Memoria total usando DIMMS de 2 Gbytes (Gbytes)

32168Nº de DIMMs

4P2P1PParámetro del sistema

Page 33: Amd Opteron

MULTIPROCESAMIENTO DE MÁS DE 8 VÍAS

El procesador Opteron se concibiócomo bloque integrante de servidores de buen resultado cuya ampliación resultase versátil.

El servidor puede ampliarse a un número de vías superior a 8 mediante un dispositivo HyperTransport externo.

Distancia media entre nodos: 2.7 hops.

Distancia máxima entre nodos (diámetro de la red): 5 hops.

Page 34: Amd Opteron

MULTIPROCESAMIENTO DE MÁS DE 8 VÍAS

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 tráfico 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.

Page 35: Amd Opteron

BIBLIOGRAFÍA

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

Page 36: Amd Opteron

FIN DE LA PRESENTACIÓN

David Oña Martínez