Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Arquitectura de ordenadores Prof. Onur Mutlu ETH Zürich Otoño de 2017 Clase 5: Funcionamiento de la DRAM, Control y latencia de la memoria Suscríbete a DeepL Pro para poder traducir archivos de mayor tamaño. Más información disponible en www.DeepL.com/pro. https://www.deepl.com/pro?cta=edit-document&pdf=1 4 de octubre de 2017 2 Resumen de alto nivel de la última conferencia ◼ Memorias de gran ancho de banda ◼ Sistema de memoria principal: Una perspectiva amplia ◼ Fundamentos y funcionamiento de las DRAM 3 Agenda de hoy ◼ Funcionamiento de la DRAM Continuación ◼ Controladores de memoria ◼ Latencia de la memoria 4 El laboratorio 1 está fuera ◼ Caché de datos ◼ Implementación de una caché de datos en un procesador canalizado ◼ Muchas oportunidades de obtener créditos adicionales. ◼ Será muy divertido. ◼ Hasta el 18 de octubre. El sistema de memoria principal y DRAM 6 Lecturas obligatorias sobre DRAM ◼ Conceptos básicos de organización y funcionamiento de la DRAM ❑ Secciones 1 y 2 de: Lee et al., "Tiered-Latency DRAM: A Low Latency and Low Cost DRAM Architecture", HPCA 2013. https://people.inf.ethz.ch/omutlu/pub/tldram_hpca13.pdf ❑ Secciones 1 y 2 de Kim et al., "A Case for Subarray-Level Parallelism (SALP) in DRAM", ISCA 2012. https://people.inf.ethz.ch/omutlu/pub/salp-dram_isca12.pdf ◼ Conceptos básicos de actualización de DRAM ❑ Secciones 1 y 2 de Liu et al., "RAIDR: Retention-Aware Intelligent DRAM Refresh", ISCA 2012. https://people.inf.ethz.ch/omutlu/pub/raidr-dram- https://people.inf.ethz.ch/omutlu/pub/tldram_hpca13.pdf https://people.inf.ethz.ch/omutlu/pub/salp-dram_isca12.pdf https://people.inf.ethz.ch/omutlu/pub/raidr-dram-refresh_isca12.pdf 7 refresh_isca12.pdf https://people.inf.ethz.ch/omutlu/pub/raidr-dram-refresh_isca12.pdf 8 Lectura sobre la simulación de la memoria principal ◼ ¿Cómo evaluar los futuros sistemas de memoria principal? ◼ Un simulador de código abierto y su breve descripción ◼ Yoongu Kim, Weikun Yang y Onur Mutlu, "Ramulator: A Fast and Extensible DRAM Simulator" IEEE Computer Architecture Letters (CAL), marzo de 2015. [Código fuente] http://users.ece.cmu.edu/~omutlu/pub/ramulator_dram_simulator-ieee-cal15.pdf http://users.ece.cmu.edu/~omutlu/pub/ramulator_dram_simulator-ieee-cal15.pdf http://www.computer.org/web/cal http://www.computer.org/web/cal https://github.com/CMU-SAFARI/ramulator https://github.com/CMU-SAFARI/ramulator 9 Revisión: Organización del subsistema DRAM ◼ Canal ◼ DIMM ◼ Rango ◼ Chip ◼ Banco ◼ Fila/Columna ◼ Celda 10 Revisión: Estructura de memoria generalizada 11 Revisión: Estructura de memoria generalizada Kim+, "A Case for Exploiting Subarray-Level Parallelism in DRAM", ISCA 2012. El subsistema DRAM La visión de arriba abajo 12 Organización del subsistema DRAM ◼ Canal ◼ DIMM ◼ Rango ◼ Chip ◼ Banco ◼ Fila/Columna ◼ Celda El subsistema DRAM "Canal" DIMM (módulo de memoria en línea doble) Procesad or Canal de memoria Canal de memoria DIMM (módulo de memoria en línea doble) Vista lateral Desmontaje de un DIMM Parte delantera del DIMM Parte trasera del DIMM DIMM (módulo de memoria en línea doble) Vista lateral Desmontaje de un DIMM Parte delantera del DIMM Parte trasera del DIMM Clasificación 0: colección de 8 fichas Rango 1 Rango Rango 0 (Delante) Rango 1 (Detrás) <0:63> <0:63> Dirección /Cmd CS <0:1> Datos <0:63> Canal de memoria Desglose de un rango Rango 0 . . . <0:63> Datos <0:63> <0 :7 > C h ip 0 <8 :1 5 > C h ip 1 <5 6 :6 3 > C h ip 7 Desglose de un chip <0:7> <0:7> ... <0:7> <0 :7 > C h ip 0 <0 :7 > Desmantelar un banco 2kB 1B (columna) fila 16k-1 fila 0 1B 1B 1B ... ... <0 :7 > <0 :7 > Fila -bu ff er Organización del subsistema DRAM ◼ Canal ◼ DIMM ◼ Rango ◼ Chip ◼ Banco ◼ Fila/Columna ◼ Celda 20 bloque de caché 0x00 Ejemplo: Transferencia de un bloque de caché Espacio de memoria física 0xFFFF...F Canal 0 DIMM 0 0x40 64B Rango 0 .. . bloque de caché 0x00 Ejemplo: Transferencia de un bloque de caché Espacio de memoria física 0xFFFF...F 0x40 64B Chip 0 Chip 1 Clasifi cación 0 Chip 7 Datos <0:63> . . . .. . <0 :7 > <8 :1 5 > <5 6 :6 3 > bloque de caché 0x00 Ejemplo: Transferencia de un bloque de caché Espacio de memoria física 0xFFFF...F Fila 0 Col 0 0x40 64B Chip 0 Chip 1 Clasifi cación 0 Chip 7 Datos <0:63> . . . .. . <0 :7 > <8 :1 5 > <5 6 :6 3 > Ejemplo: Transferencia de un bloque de caché Espacio de memoria física 0xFFFF...F 0x40 0x00 Chip 0 Chip 1 Clasifi cación 0 Chip 7 Fila 0 Col 0 64B bloque de caché Datos <0:63> 8B . . . 8B .. . <0 :7 > <8 :1 5 > <5 6 :6 3 > Ejemplo: Transferencia de un bloque de caché Espacio de memoria física 0xFFFF...F 0x40 0x00 Chip 0 Chip 1 Clasifi cación 0 Chip 7 Fila 0 Col 1 64B bloque de caché Datos <0:63> 8B . . . .. . <0 :7 > <8 :1 5 > <5 6 :6 3 > Ejemplo: Transferencia de un bloque de caché Espacio de memoria física 0xFFFF...F 0x40 0x00 64B bloque de caché Fila 0 Col 1 Chip 0 Chip 1 Rango 0 Chip 7 Datos <0:63> . . . 8B .. . <0 :7 > <8 :1 5 > <5 6 :6 3 > 8B 8B Ejemplo: Transferencia de un bloque de caché Espacio de memoria física 0xFFFF...F Fila 0 Col 1 Chip 0 Chip 1 Rango 0 Chip 7 0x40 0x00 64B bloque de caché Datos <0:63> Un bloque de caché de 64B tarda 8 ciclos de . . . .. . <0 :7 > <8 :1 5 > <5 6 :6 3 > 8B 8B E / S e n t r a n s f e r i r s e . Du ra nt e el pr oc es o, se lee n se cu en cia lm en te 8 col umnas. 28 Componentes de latencia: Funcionamiento básico de la DRAM ◼ Tiempo de transferencia CPU → controlador ◼ Latencia del controlador ❑ Colas y retrasos de programación en el controlador ❑ Acceso convertido a comandos básicos ◼ Controlador → Tiempo de transferencia DRAM ◼ Latencia del banco DRAM ❑ CAS simple (dirección de columna estroboscópica) si la fila está "abierta" O ❑ RAS (estroboscópico de dirección de fila) + CAS si matriz precargada O ❑ PRE + RAS + CAS (peor caso) 29 ◼ DRAM → Tiempo de transferencia del controlador ❑ Latencia del bus (BL) ◼ Tiempo de transferencia del controlador a la CPU 30 Bancos múltiples (intercalación) y canales ◼ Bancos múltiples ❑ Permitir accesos simultáneos a la DRAM ❑ Los bits de la dirección determinan en qué banco reside una dirección ◼ Varios canales independientes sirven al mismo propósito ❑ Pero son aún mejores porque tienen buses de datos independientes ❑ Mayor ancho de banda del bus ◼ Para aumentar la concurrencia es necesario reducir ❑ Conflictos bancarios ❑ Conflictos de canales ◼ ¿Cómo seleccionar/aleatorizar índices de banco/canal en 31 dirección?❑ Los bits de orden inferior tienen más entropía ❑ Funciones hash aleatorias (XOR de diferentes bits de dirección) 32 Cómo ayudan los bancos múltiples 33 Asignación de direcciones (canal único) ◼ Sistema monocanal con bus de memoria de 8 bytes ❑ 2 GB de memoria, 8 bancos, 16.000 filas y 2.000 columnas por banco ◼ Intercalación de filas ❑ Filas consecutivas de memoria en bancos consecutivos Fila (14 bits) Banco (3 bits) Columna (11 bits) Byte en bus (3 bits) ❑ Accesos a bloques de caché consecutivos atendidos en cadena ◼ Intercalación de bloques de caché ◼ Direcciones de bloque de caché consecutivas en bancos consecutivos ◼ Bloques de caché de 64 bytes Fila (14 bits) Columna alta Banco (3 Bajo Col. Byte en bus (3 bits) 34 bits) 8 bits 3 bits Los accesos a bloques de caché consecutivos pueden atenderse en paralelo 35 XOR Asignación aleatoria de bancos ◼ El controlador de la DRAM puede asignar aleatoriamente las direcciones a los bancos para que los conflictos entre bancos sean menos probables. 3 bits Columna (11 bits) Byte en bus (3 bits) Índice bancario (3 bits) ◼ Lectura: 36 ❑ Rau, "Pseudo-randomly Interleaved Memory", ISCA 1991. 37 Asignación de direcciones (varios canales) C Fila (14 bits) Banco (3 bits) Columna (11 bits) Byte en bus (3 bits) Fila (14 bits) C Banco (3 bits) Columna (11 bits) Byte en bus (3 bits) Fila (14 bits) Banco (3 bits) C Columna (11 bits) Byte en bus (3 bits) Fila (14 bits) Banco (3 bits) Columna (11 bits) C Byte en bus (3 bits) ◼ ¿Dónde están los bloques de caché consecutivos? C Fila (14 bits) Columna alta Banco (3 bits) Bajo Col. Byte en bus (3 bits) 8 bits 3 bits Fila (14 bits) C Columna alta Banco (3 bits) Bajo Col. Byte en bus (3 bits) 8 bits 3 bits Fila (14 bits) Columna alta C Banco (3 bits) Bajo Col. Byte en bus (3 bits) 8 bits 3 bits 38 Fila (14 bits) Columna alta Banco (3 bits) C Bajo Col. Byte en bus (3 bits) 8 bits 3 bits Fila (14 bits) Columna alta Banco (3 bits) Bajo Col. C Byte en bus (3 bits) 8 bits 3 bits 39 Interacción con VirtualPhysical Mapping ◼ El sistema operativo influye en la asignación de direcciones en la DRAM VA PA PA ◼ El sistema operativo puede influir en el banco/canal/rango al que se asigna una página virtual. ◼ Puede colorear páginas para ❑ Minimizar los conflictos bancarios ❑ Minimizar las interferencias entre aplicaciones [Muralidhara+ MICRO'11] Número de página virtual (52 bits) Desplazamiento de página (12 bits) Número de bastidor físico r (19 bits) Desplazamiento de página (12 bits) Fila (14 bits) Banco (3 bits) Columna (11 bits) Byte en bus (3 bits) 40 ❑ Minimizar la latencia en la red [Das+ HPCA'13] 41 Más sobre la reducción de conflictos bancarios ◼ Lea las secciones 1 a 4 de: ❑ Kim et al., "A Case for Exploiting Subarray-Level Parallelism in DRAM", ISCA 2012. 42 43 Lecturas obligatorias sobre DRAM ◼ Yoongu Kim, Vivek Seshadri, Donghyuk Lee, Jamie Liu y Onur Mutlu, "A Case for Exploiting Subarray-Level Parallelism (SALP) in DRAM" (Argumentos para aprovechar el paralelismo a nivel de submatriz (SALP) en DRAM). Actas del 39º Simposio Internacional sobre Informática Arquitectura (ISCA), Portland, OR, junio de 2012. Diapositivas (pptx) ◼ Las secciones 1-2 son obligatorias https://people.inf.ethz.ch/omutlu/pub/salp-dram_isca12.pdf https://people.inf.ethz.ch/omutlu/pub/salp-dram_isca12.pdf https://people.inf.ethz.ch/omutlu/pub/salp-dram_isca12.pdf http://isca2012.ittc.ku.edu/ http://isca2012.ittc.ku.edu/ https://people.inf.ethz.ch/omutlu/pub/kim_isca12_talk.pptx 44 Refresco DRAM (I) ◼ Fugas de carga del condensador de la DRAM con el tiempo ◼ El controlador de memoria necesita leer cada fila periódicamente para restaurar la carga ❑ Activar + precargar cada fila cada N ms ❑ N típico = 64 ms ◼ ¿Implicaciones en el rendimiento? -- Banco DRAM no disponible mientras se refresca -- Largos tiempos de pausa: Si refrescamos todas las filas en ráfaga, cada 64ms la DRAM no estará disponible hasta que termine el refresco ◼ Ráfaga de actualización: Todas las filas se actualizan inmediatamente una tras otra ◼ Actualización distribuida: Cada fila se actualiza en un 45 momento diferente, a intervalos regulares. 46 Refresco de DRAM (II) ◼ La actualización distribuida elimina los tiempos de pausa largos ◼ De qué otra forma podemos reducir el efecto de refresco en rendimiento? ❑ ¿Podemos reducir el número de actualizaciones? 47 Inconvenientes de la renovación de DRAM -- Consumo de energía: Cada actualización consume energía -- Degradación del rendimiento: Rango/banco DRAM no disponible mientras refrescado -- Impacto en la calidad de servicio/previsibilidad: tiempos de pausa (largos) durante la actualización. -- La velocidad de actualización limita la densidad de la memoria DRAM 48 Liu et al., "RAIDR: Retention-aware Intelligent DRAM Refresh", ISCA 2012. Controladores de memoria 41 DRAM frente a otros tipos de memorias ◼ Los recuerdos de larga latencia tienen características similares a necesitan ser controlados. ◼ A continuación se utiliza la DRAM como ejemplo, pero muchos de los problemas de programación y control son similares en el diseño de controladores para otros tipos de memorias. ❑ Memoria Flash ❑ Otras tecnologías de memoria emergentes ◼ Memoria de cambio de fase ◼ Memoria magnética de par por transferencia de espín ❑ Estas otras tecnologías pueden plantear otras exigencias al 41 controlador Lifetime", ICCD 2012. Controladores de memoria flash (SSD) ◼ Similar a los controladores de memoria DRAM, excepto: ❑ Son específicos de la memoria flash ❑ Hacen mucho más: corrección de errores, recolección de basura, reasignación de páginas, ... Cai+, "Flash Correct-and-Refresh: Retention-Aware Error Management for Increased Flash Memory 42 43 Otra vista del controlador SSD Cai+, "Error Characterization, Mitigation, and Recovery in Flash Memory Based Solid State Drives", Proc. IEEE 2017. 44 Tipos de DRAM ◼ La DRAM tiene diferentes tipos con diferentes interfaces optimizadas para diferentes propósitos ❑ Commodity: DDR, DDR2, DDR3, DDR4, ... ❑ Bajo consumo (para móviles): LPDDR1, ..., LPDDR5, ... ❑ Gran ancho de banda (para gráficos): GDDR2, ..., GDDR5, ... ❑ Baja latencia: eDRAM, RLDRAM, ... ❑ 3D apilado: WIO, HBM, HMC, ... ❑ ... ◼ La microarquitectura subyacente es fundamentalmente la misma ◼ Un controlador de memoria flexible admite varios tipos de DRAM ◼ Esto complica el controlador de memoria 45 ❑ Dificultad para admitir todos los tipos (y actualizaciones) 46 Tipos de DRAM (circa 2015) Kim y otros, "Ramulator: A Fast and Extensible DRAM Simulator", IEEE Comp Arch Letters 2015. 47 Controlador DRAM: Funciones ◼ Garantizar el correcto funcionamiento de la DRAM (refresco y temporización) ◼ Atender las solicitudes de DRAM respetando las restricciones de tiempo de los chips DRAM ❑ Restricciones: conflictos de recursos (banco, bus, canal), mínimo retrasos de escritura a lectura ❑ Traduce las peticiones a secuencias de comandos de la DRAM ◼ Almacenamiento en búfer y programación de solicitudes para un alto rendimiento + QoS ❑ Reordenación, fila-buffer, banco, rango, gestión de bus 48 ◼ Gestión del consumo energético y térmico de las DRAM ❑ Activación/desactivación de chips DRAM, gestión de modos de alimentación 49 Controlador DRAM: Dónde colocar ◼ En chipset + Más flexibilidad para conectar diferentes tipos de DRAM al sistema + Menor densidad de potencia en elchip de la CPU ◼ En el chip de la CPU + Reducción de la latencia de acceso a la memoria principal + Mayor ancho de banda entre los núcleos y el controlador ◼ Se puede comunicar más información (por ejemplo, la importancia de la solicitud en el núcleo del tratamiento) 50 Un controlador DRAM moderno (I) 51 Un controlador DRAM moderno 52 Políticas de programación de DRAM (I) ◼ FCFS (orden de llegada) ❑ Primero la solicitud más antigua ◼ FR-FCFS (primero listo, primero servido) 1. Remar primero 2. El más antiguo primero Objetivo: maximizar la tasa de éxito del búfer de filas maximizar el rendimiento de la DRAM ❑ En realidad, la programación se realiza a nivel de comandos ◼ Los comandos de columna (lectura/escritura) tienen prioridad sobre los comandos de fila (activación/precarga) ◼ Dentro de cada grupo, los mandos más antiguos tienen prioridad sobre los más jóvenes 53 RoEmpt yw 0 Revisión: Funcionamiento de los bancos DRAM Dirección de acceso: (Fila 0, Columna 0) (Fila 0, Columna 1) (Fila 0, Columna 85) (Fila 1, Columna 0) Dirección de fila 01 Columnas ¡Búfer de filas CHOITNFLICT ! Fila 1 D e c o d if ic a d o r d e fi la s 54 CCooll uummn n aadddd rreesss s 00 18 5 Columna mux Datos F ila s 55 Políticas de programación de DRAM (II) ◼ Una política de programación es un orden de prioridad de las solicitudes ◼ La priorización puede basarse en ❑ Solicitar edad ❑ Estado de aciertos y errores en la memoria intermedia ❑ Tipo de solicitud (prefetch, lectura, escritura) ❑ Tipo de solicitante (fallo de carga o fallo de almacenamiento) ❑ Solicitud de criticidad ◼ ¿Falta más antigua en el núcleo? ◼ ¿Cuántas instrucciones del núcleo dependen de él? ◼ ¿Atascará el procesador? ❑ Interferencias causadas a otros núcleos 56 ❑ ... 57 Políticas de gestión del búfer de filas ◼ Fila abierta ❑ Mantener la fila abierta después de un acceso + El siguiente acceso podría necesitar la misma fila fila hit -- El siguiente acceso podría necesitar una fila diferente conflicto de filas, desperdicio de energía. ◼ Fila cerrada ❑ Cerrar la fila después de un acceso (si no hay otras solicitudes ya en la solicitud buffer necesitan la misma fila) + El siguiente acceso podría necesitar una fila diferente evitar un conflicto de filas -- El siguiente acceso podría necesitar la misma fila activar latencia extra ◼ Políticas adaptativas ❑ Predecir si el próximo acceso al banco será para 58 la misma fila 59 Políticas de filas abiertas frente a filas cerradas Política Primer acceso Próximo acceso Comandos necesarios para el siguiente acceso Fila abierta Fila 0 Fila 0 (golpe de fila) Leer Fila abierta Fila 0 Fila 1 (conflicto de filas) Precarga + Activar Fila 1 + Leer Fila cerrada Fila 0 Fila 0 - acceso en el búfer de petición (hit de fila) Leer Fila cerrada Fila 0 Fila 0 - acceso no en la memoria intermedia de Activar Fila 0 + Lectura + Precarga 60 solicitudes (fila cerrada) Fila cerrada Fila 0 Fila 1 (fila cerrada) Activar Fila 1 + Lectura + Precarga 61 Gestión de la alimentación de la DRAM ◼ Los chips DRAM tienen modos de alimentación ◼ Idea: Cuando no acceda a un chip, apáguelo ◼ Estados de potencia ❑ Activo (máxima potencia) ❑ Todos los bancos inactivos ❑ Apagado ❑ Autorrefresco (potencia mínima) ◼ Contrapartida: las transiciones de estado conllevan una latencia durante la cual no se puede acceder al chip. Dificultad del control de la DRAM 57 ¿Por qué es difícil diseñar controladores DRAM? ◼ Necesidad de respetar las restricciones de tiempo de la DRAM para que sea correcto ❑ Hay muchas (más de 50) restricciones de temporización en la DRAM ❑ tWTR: Número mínimo de ciclos a esperar antes de emitir una lectura después de emitir una orden de escritura ❑ tRC: Número mínimo de ciclos entre la emisión de dos comandos de activación consecutivos al mismo banco. ❑ ... ◼ Necesidad de controlar muchos recursos para evitar conflictos ❑ Canales, bancos, filas, bus de datos, bus de direcciones, búferes de fila ◼ Necesidad de gestionar la actualización de la DRAM ◼ Necesidad de gestionar el consumo de energía ◼ Necesidad de optimizar el rendimiento y la calidad del servicio (con limitaciones) 58 ❑ Reordenar no es sencillo ❑ Las necesidades de equidad y calidad de servicio complican el problema de la programación 59 Muchas restricciones de temporización de la DRAM ◼ De Lee et al., "DRAM-Aware Last-Level Cache Writeback: Reducing Write-Caused Interference in Memory Systems", informe técnico de HPS, abril de 2010. 60 Más sobre el funcionamiento de las DRAM ◼ Kim y otros, "A Case for Exploiting Subarray-Level Parallelism (SALP) in DRAM", ISCA 2012. ◼ Lee y otros, "Tiered-Latency DRAM: A Low Latency and Low Cost DRAM Architecture", HPCA 2013. 61 ¿Por qué tantas restricciones temporales? (I) Kim y otros, "A Case for Exploiting Subarray-Level Parallelism (SALP) in DRAM", ISCA 2012. ¿Por qué tantas restricciones temporales? (II) Lee y otros, "Tiered-Latency DRAM: A Low Latency and Low Cost DRAM Architecture", HPCA 2013. 61 62 CPU CPU CPU CPU Caché compartida GPU HWA HWA DRAM y memorias híbridas El diseño de controladores DRAM es cada vez más difícil ◼ Agentes heterogéneos: CPU, GPU y HWA ◼ Interferencias en la memoria principal entre CPU, GPU y HWA ◼ Numerosas restricciones de tiempo para distintos tipos de DRAM y controladores de memoria híbridos 63 memoria ◼ Muchos objetivos al mismo tiempo: rendimiento, equidad, calidad de servicio, eficiencia energética, ... 64 Realidad y sueño ◼ La realidad: Es difícil optimizar todas estas restricciones diferentes al tiempo que se maximiza el rendimiento, la calidad de servicio, la eficiencia energética, ... ◼ Sueño: ¿No sería estupendo que el controlador de la DRAM encontrara automáticamente una buena política de programación? Controladores DRAM autooptimizables ◼ Problema: los controladores DRAM son difíciles de diseñar Es difícil para los diseñadores humanos diseñar una política que pueda adaptarse muy bien a diferentes cargas de trabajo y diferentes condiciones del sistema. ◼ Idea: Diseñar un controlador de memoria que adapte sus decisiones de política de programación al comportamiento de la carga de trabajo y a las condiciones del sistema mediante aprendizaje automático. ◼ Observación: El aprendizaje por refuerzo se corresponde perfectamente con el control de la memoria. ◼ Diseño: El controlador de memoria es un agente de aprendizaje por refuerzo que aprende y emplea de forma dinámica y continua la mejor política de programación. Ipek+, "Controladores de memoria autooptimizadores: A Reinforcement Learning Approach", ISCA 2008. Engin Ipek, Onur Mutlu, José F. Martínez y Rich Caruana, "Controladores de memoria autooptimizadores: A Reinforcement Learning Approach" Proceedings of the 35th International Symposium on Computer Architecture (ISCA), páginas 39-50, Pekín, China, junio de 2008. 65 Controladores DRAM autooptimizables Objetivo: Aprender a elegir acciones para maximizar r0 + r1 + 2r2 + ... ( 0 < 1) http://users.ece.cmu.edu/~omutlu/pub/rlmc_isca08.pdf http://users.ece.cmu.edu/~omutlu/pub/rlmc_isca08.pdf http://users.ece.cmu.edu/~omutlu/pub/rlmc_isca08.pdf http://isca2008.cs.princeton.edu/ http://isca2008.cs.princeton.edu/ http://isca2008.cs.princeton.edu/ 66 Controladores DRAM autooptimizables ◼ Adaptar dinámicamente la política de programación de la memoria mediante la interacción con el sistema en tiempo de ejecución. ❑ Asociar estados del sistemay acciones (comandos) a largo plazo. valores de recompensa: cada acción en un estado determinado conduce a una recompensa aprendida ❑ Programar el mando con mayor valor estimado de recompensa a largo plazo en cada estado ❑ Actualizar continuamente los valores de recompensa de los pares <estado, acción> en función de respuesta del sistema 67 Controladores DRAM autooptimizables ◼ Engin Ipek, Onur Mutlu, José F. Martínez y Rich Caruana, "Controladores de memoria autooptimizables: Un enfoque de aprendizaje por refuerzo" Actas del 35º Simposio Internacional sobre Arquitectura de Ordenadores (ISCA), páginas 39-50, Pekín, China, junio de 2008. http://users.ece.cmu.edu/~omutlu/pub/rlmc_isca08.pdf http://users.ece.cmu.edu/~omutlu/pub/rlmc_isca08.pdf http://isca2008.cs.princeton.edu/ 68 Estados, acciones, recompensas ❖ Función de recompensa - +1 para programar comandos de lectura y escritura • 0 en todos los demás veces El objetivo es maximizar a largo plazo bus de datos utilización ❖ Atributos del Estado • Número de lecturas, escrituras y errores de carga en la cola de transacciones • Número de escrituras pendientes y cabezas ROB en espera de la fila referenciada • Familiar del solicitante Orden ROB ❖ Acciones • Activar • Escriba a • Lectura - fallo de carga • Leer - store miss • Precarga - pendiente • Precarga - preventiva • NOP 69 Resultados 70 Controladores DRAM de autooptimización ◼ Ventajas + Adapta la política de programación dinámicamente a los cambios en la carga de trabajo. comportamiento y maximizar un objetivo a largo plazo + Reduce la carga del diseñador para encontrar una buena política de programación. El diseñador especifica: 1) Qué variables del sistema pueden ser útiles 2) Qué objetivo optimizar, pero no cómo optimizarlo ◼ Desventajas y limitaciones -- Caja negra: es mucho menos probable que el diseñador ponga en práctica aquello sobre lo que no puede razonar fácilmente -- ¿Cómo especificar diferentes funciones de recompensa que puedan alcanzar distintos objetivos? (por ejemplo, equidad, calidad 71 de servicio) -- ¿Complejidad del hardware? 72 Más sobre controladores DRAM autooptimizables ◼ Engin Ipek, Onur Mutlu, José F. Martínez y Rich Caruana, "Controladores de memoria autooptimizables: Un enfoque de aprendizaje por refuerzo" Actas del 35º Simposio Internacional sobre Arquitectura de Ordenadores (ISCA), páginas 39-50, Pekín, China, junio de 2008. http://users.ece.cmu.edu/~omutlu/pub/rlmc_isca08.pdf http://users.ece.cmu.edu/~omutlu/pub/rlmc_isca08.pdf http://isca2008.cs.princeton.edu/ Evaluación de nuevas ideas para nuevas arquitecturas (de memoria) 73 Posibles métodos de evaluación ◼ ¿Cómo evaluamos que una idea mejorará una métrica objetivo X? ◼ Existen diversos métodos de evaluación: ❑ Prueba teórica ❑ Modelización/estimación analítica ❑ Simulación (con distintos grados de abstracción y precisión) ❑ Creación de prototipos con un sistema real (por ejemplo, FPGAs) 74 ❑ Aplicación real 75 La dificultad de la evaluación arquitectónica ◼ La respuesta suele depender de la carga de trabajo ❑ Por ejemplo, piensa en la caché ❑ Por ejemplo, el pipelining ❑ Por ejemplo, piensa en cualquier idea de la que hayamos hablado (RAIDR, Mem. Sched., ...) ◼ Cambios en la carga de trabajo ◼ El sistema tiene muchas opciones de diseño y parámetros ❑ El arquitecto tiene que decidir muchas ideas y muchos parámetros para un diseño ❑ No es fácil evaluar todas las combinaciones posibles. 76 ◼ Los parámetros del sistema pueden cambiar Simulación: El campo de los sueños 76 Sueño y realidad ◼ Un arquitecto es en parte un soñador, un creador ◼ La simulación es una herramienta clave del arquitecto ◼ La simulación permite ❑ La exploración de muchos sueños ❑ La realidad de los sueños ❑ Decidir qué sueño es mejor ◼ La simulación también permite ❑ La capacidad de engañarse a sí mismo con falsos sueños 77 ¿Por qué simulación de alto nivel? ◼ Problema: La simulación RTL es intratable para la exploración del espacio de diseño demasiado tiempo para diseñar y evaluar ❑ Especialmente en un gran número de cargas de trabajo ❑ Especialmente si desea predecir el rendimiento de una buena parte de una carga de trabajo en un diseño concreto. ❑ Especialmente si desea considerar muchas opciones de diseño ◼ Tamaño de la caché, asociatividad, tamaño de bloque, algoritmos ◼ Algoritmos de control y programación de la memoria ◼ Ejecución en orden o fuera de orden ◼ Tamaños de estación de reserva, tamaño de cola ld/st, tamaño de archivo de registro, ... ◼ ... 78 ◼ Objetivo: explorar rápidamente las opciones de diseño para ver su impacto en las cargas de trabajo para las que estamos diseñando la plataforma. 79 Diferentes objetivos en la simulación ◼ Explore rápidamente el espacio de diseño y vea lo que quiere ❑ implementar potencialmente en una plataforma de nueva generación ❑ proponer como la próxima gran idea para avanzar en el estado de la técnica ❑ el objetivo es principalmente ver los efectos relativos de las decisiones de diseño ◼ Adaptar el comportamiento de un sistema existente para que pueda ❑ depurarlo y verificarlo con precisión a nivel de ciclo ❑ proponer pequeños retoques en el diseño que pueden marcar la diferencia en rendimiento o energía ❑ el objetivo es una precisión muy alta ◼ Otros objetivos intermedios: 80 ❑ Refinar el espacio de diseño explorado sin entrar en un completo diseño detallado y preciso ❑ Gane confianza en sus decisiones de diseño gracias a la exploración del espacio de diseño de alto nivel 81 Compromisos en la simulación ◼ Tres parámetros para evaluar un simulador ❑ Velocidad ❑ Flexibilidad ❑ Precisión ◼ Velocidad: velocidad de ejecución del simulador (xIPS, xCPS, ralentización) ◼ Flexibilidad: ¿con qué rapidez se puede modificar el simulador para evaluar diferentes algoritmos y opciones de diseño? ◼ Precisión: grado de exactitud de las cifras de rendimiento (energía) que genera el simulador en comparación con un diseño real (error de simulación). 82 ◼ La importancia relativa de estas métricas varía en función del punto del proceso de diseño en el que te encuentres (cuál es tu objetivo) 83 Intercambiar velocidad, flexibilidad y precisión ◼ La velocidad y la flexibilidad afectan: ❑ La rapidez con la que puede hacer concesiones en el diseño ◼ La precisión afecta: ❑ Cómo de buenas pueden acabar siendo tus concesiones en el diseño ❑ Velocidad de construcción del simulador (tiempo de diseño del simulador) ◼ La flexibilidad también afecta: ❑ Cuánto esfuerzo humano hay que dedicar a modificar el simulador 84 ◼ Puede elegir entre los tres para alcanzar los objetivos de exploración y decisión del diseño 85 Simulación de alto nivel ◼ Idea clave: Elevar el nivel de abstracción del modelado para renunciar a cierta precisión que permita velocidad y flexibilidad (y un diseño rápido del simulador). ◼ Ventaja + Todavía puede hacer las compensaciones correctas, y puede hacerlo rápidamente + Todo lo que necesitas es modelar los factores clave de alto nivel, puedes omitir las condiciones de los casos de esquina. + Todo lo que necesitas es obtener las "tendencias relativas" con precisión, no cifras exactas de rendimiento ◼ Desventaja 86 -- Abre la posibilidad de decisiones potencialmente erróneas -- ¿Cómo asegurarse de obtener las "tendencias relativas" con exactitud? 87 La simulación como perfeccionamiento progresivo ◼ Modelos de alto nivel (Abstract, C) ◼ ... ◼ Modelos de nivel medio (menos abstractos) ◼ ... ◼ Modelos de bajo nivel (RTL con todo modelado) ◼ ... ◼ Diseño real◼ A medida que afine (vaya bajando por la lista anterior) ❑ El nivel de abstracción se reduce ❑ Aumenta la precisión (con suerte) (no necesariamente, si no se 88 tiene cuidado) ❑ Se reduce la flexibilidad; es probable que se reduzca la velocidad, salvo en el caso del diseño real. Se puede hacer un bucle hacia atrás y arreglar modelos de nivel superior 89 Sacar lo mejor de la arquitectura ◼ Un buen arquitecto se siente cómodo en todos los niveles de refinamiento ❑ Incluidos los extremos ◼ Un buen arquitecto sabe cuándo utilizar qué tipo de simulación ❑ Y, de manera más general, ¿qué tipo de método de evaluación ◼ Recordatorio: Existen diversos métodos de evaluación: ❑ Prueba teórica ❑ Modelización analítica ❑ Simulación (con distintos grados de abstracción y precisión) ❑ Creación de prototipos con un sistema real (por ejemplo, FPGAs) 90 ❑ Aplicación real 84 Ramulator: Un sistema rápido y extensible Simulador de DRAM [IEEE Comp Arch Letters'15] 85 Ramulador Motivación ◼ El panorama de las DRAM y los controladores de memoria está cambiando ◼ Muchas normas nuevas y futuras ◼ Muchos nuevos diseños de controladores ◼ Es muy necesario un simulador rápido y fácil de ampliar 86 Ramulador ◼ Ofrece compatibilidad inmediata con muchos estándares DRAM: ❑ DDR3/4, LPDDR3/4, GDDR5, WIO1/2, HBM, además de las nuevas propuestas (SALP, AL-DRAM, TLDRAM, RowClone y SARP) ◼ ~2,5 veces más rápido que el simulador de código abierto más veloz ◼ Modular y extensible a diferentes normas 87 88 Caso práctico: Comparación de normas DRAM En 22 cargas de trabajo, el modelo simple de CPU 89 Ramulator Paper y código fuente ◼ Yoongu Kim, Weikun Yang y Onur Mutlu, "Ramulator: A Fast and Extensible DRAM Simulator" IEEE Computer Architecture Letters (CAL), marzo de 2015. [Código fuente] ◼ El código fuente se publica bajo la licencia liberal MIT ❑ https://github.com/CMU-SAFARI/ramulator http://users.ece.cmu.edu/~omutlu/pub/ramulator_dram_simulator-ieee-cal15.pdf http://users.ece.cmu.edu/~omutlu/pub/ramulator_dram_simulator-ieee-cal15.pdf http://www.computer.org/web/cal http://www.computer.org/web/cal https://github.com/CMU-SAFARI/ramulator https://github.com/CMU-SAFARI/ramulator https://github.com/CMU-SAFARI/ramulator 90 Créditos adicionales ◼ Revisar el documento Ramulator ❑ En línea en nuestro sitio de revisión ◼ Descarga y ejecuta Ramulator ❑ Compara DDR3, DDR4, SALP, HBM para el benchmark libquantum (proporcionado en el repositorio Ramulator) ❑ Sube tu breve informe a Moodle ◼ Esto puede formar parte de una futura tarea Latencia de memoria: Compromisos fundamentales 91 Módulo y chip DRAM 92 • Coste • Latencia • Ancho de banda • Paralelismo • Potencia • Energía • Fiabilidad • ... Objetivos Matriz de células Amplificadores de detección Matriz de células Matriz de células Amplificadores de detección Matriz de células Banco E/S C h ip D R A M D ec o d if ic ad o r d e fi la s D ec o d if ic ad o r d e fi la s 93 94 top active Inversor fondo Amplificador de sentido 95 VDD 0 1 1 0 VDD Lógico "1 Lógico "0 Amplificador sensor - Dos estados estables 96 VVTDD 01 VT > VB V0B Funcionamiento del amplificador sensor 97 Estado vacío Estado de carga completa Lógico "0 " Lógico "1" Pequeño - No puede conducir circuitos La lectura destruye el Célula DRAM - Condensador 1 2 98 estado 99 0 VDD 1 1 VDD 0 Condensador al amplificador de detección 100 ½VVDDDD+δ 01 ½0VDD Funcionamiento de la celda DRAM 101 Matriz de células Conjunto de sentidos Amplifica dores (Búfer de fila) 8Kb Matriz de células Submatriz DRAM - Bloque de construcción para Chip DRAM D e co d if ic ad o r d e fi la s 102 Matriz de células Conjunto de amplificadores de sentido (8Kb) Matriz de células Matriz de células Amplificadores de detección Matriz de células Banco E/S (64b) Dato s Dirección Banco DRAM D ir ec ci ó n D ec o d if ic ad o r d e fi la s D ec o d if ic ad o r d e fi la s Matriz de células Matriz de células Matriz de células Matriz de células Conjunto de sentidos Amplificador es Conjunto de sentidos Amplificador es Conjunto de sentidos Amplificador es Conjunto de sentidos Amplificador es Matriz de células Matriz de células Matriz de células Matriz de células Matriz de células Matriz de células Matriz de células Matriz de células Conjunto de sentidos Amplificador es Conjunto de sentidos Amplificador es Conjunto de sentidos Amplificador es Conjunto de sentidos Amplificador es Matriz de células Matriz de células Matriz de células Matriz de células Banco E/S Banco E/S Banco E/S Banco E/S D eco d ificad o r d e filas D eco d ificad o r d e filas D eco d ificad o r d e filas D eco d ificad o r d e filas D eco d ificad o r d e filas D eco d ificad o r d e filas D eco d ificad o r d e filas D eco d ificad o r d e filas C h ip D R A M B u s in te rn o co m p ar ti d o D ec o d if ic ad o r d e fi la s D ec o d if ic ad o r d e fi la s D e co d if ic ad o r d e fi la s D e c o d i f i c a d o r d e fi la s D ec o d if ic ad o r d e fi la s D ec o d if ic ad o r d e fi la s D e co d if ic ad o r d e fi la s D e c o d i f i c a d o r d e fi la s C an al d e m em o ri a - 8 b it s 10 2 103 ACTIVAR FILA Columna READ/WRITE PRECARGA Funcionamiento de la DRAM Matriz de células Amplificadores de detección Matriz de células Banco E/S Dato s Columna Dirección 1 2 3 Fi la D ir ec ci ó n D ec o d if ic ad o r d e fi la s D ec o d if ic ad o r d e fi la s La latencia de la memoria se queda atrás Capacidad Ancho de banda Latencia 128x 100 10 1 20x 1.3x M e jo ra d e l a D R A M ( lo g) 1999 2003 2006 2008 2011 2013 2014 2015 2016 2017 La latencia de la memoria se mantiene casi constante Análisis de datos en memoria [Clapp+ (Intel), IISWC'15; Awan+, BDCloud'15]. Cargas de trabajo del centro de datos [Kanev+ (Google), ISCA'15]. La latencia de la DRAM es fundamental para el rendimiento Bases de datos en memoria [Mao+, EuroSys'12; Clapp+ (Intel), IISWC'15] Procesamiento de gráficos/árboles [Xu+, IISWC'14; Umuroglu+, FPL'15]. Análisis de datos en memoria [Clapp+ (Intel), IISWC'15; Awan+, BDCloud'15]. Cargas de trabajo del centro de datos [Kanev+ (Google), ISCA'15]. Análisis de datos en memoria [Clapp+ (Intel), IISWC'15; Awan+, BDCloud'15]. Cargas de trabajo del centro de datos [Kanev+ (Google), ISCA'15]. [Mao+, EuroSys'12; [Xu+, IISWC'12; Umuroglu+, FPL'15] Clapp+ (Intel), IISWC'15]. La latencia de la DRAM es fundamental para el rendimiento Bases de datos en memoria Procesamiento de gráficos/árboles Larga latencia de memoria → cuello de botella de rendimientoCuáles son las causas la larga latencia de la DRAM? 108 ¿Por qué tanta latencia? ◼ Razón 1: Diseño de la microarquitectura DRAM ❑ Objetivo: maximizar la capacidad/área, no minimizar la latencia ◼ Razón 2: Enfoque único de la especificación de latencia ❑ Los mismos parámetros de latencia para todas las temperaturas ❑ Mismos parámetros de latencia para todos los chips DRAM (por ejemplo, filas) ❑ Los mismos parámetros de latencia para todas las partes de un chip DRAM ❑ Los mismos parámetros de latencia para todos los niveles de tensión de alimentación ❑ Los mismos parámetros de latencia para todos los datos de la aplicación 108 ❑ ... 109 matriz celular E/S canal ¿Cuál es la causa de la larga latencia? Chip DRAM submatriz E/S Latencia de la DRAM = SSuubbaarrrraayy LLaatteenncciiaa++ II//OO LLaatteenncciiaa Su b m at r iz E/ S 110 D o m in a nt e 111 línea de palabras transistor acced a a ¿Por qué es tan lenta la submatriz? Submatriz amplificador sensor • Línea de bits larga cél ula Celda amplificador de gran sentido d ec o d if ic a d o r d e fi la s lí n ea d e b it s: 5 1 2 c el d a s d ec o d if ic a d o r d e fi la s co n d en s ad o r lín ea d e b it s a m p lif ic a d o r se n so r 112 – Amortiza el coste del amplificador de sentido Área pequeña – Gran capacitancia de la línea de bits Latencia y potencia elevadas 113 Más rápido Más pequeño Compromiso: área frente a latencia Compromiso: área (tamaño de la matriz) frente a latencia Línea de bits largaLínea de bits corta 114 Más rápid o Compromiso: área (tamaño de la matriz) frente a latencia 4 3 2 1 0 0 10 20 30 40 50 60 70 Latencia (ns) 32 64 DRAM de lujo Línea de bits corta Materias primas DRAM Línea de bits larga 128 256 512 celdas/línea de bits M á s b ar at o Á re a D R A M n o rm al iz ad a 115 Baja latencia Área pequeña Corto Bi Necesita Aislamie nto Añadir aislamiento Transistores tline Rá Línea de bits larga Nuestra propuesta Línea de bits corta Alta latencia Aproximación a lo mejor de ambos mundos Área pequeña Baja latencia Gran superficie 116 Baja latencia Gran superficie Área pequeña BBiittlliinnee llaarrggooTTiieerreeOOdduu-- LLrraaPPttrreeoonnppccooyyssDDaallRRAAMMBBiittlliinnee ccoorrttoo Baja latencia Alta latencia Aproximación a lo mejor de ambos mundos Área pequeña Área pequeña con línea de bits larga Baja latencia 117 Evaluación de latencia, potencia y área • DRAM básica: 512 celdas/línea de bits • TL-DRAM: 512 celdas/línea de bits – Segmento cercano: 32 células – Segmento lejano: 480 células • Evaluación de la latencia – Simulación SPICE con un modelo de DRAM a nivel de circuito • Evaluación de potencia y superficie – Simulador de área y potencia de DRAM de Rambus – Calculadora de energía DDR3 de Micron 118 Commodity DRAM frente a TL-DRAM [HPCA 2013] • Latencia de la DRAM (tRC) - Potencia de la DRAM 150% +49% 150% +23% (52,5ns) 100% 50% -56% 0% Materias primas DRAM Cerc a de Lej os TL-DRAM La te n ci a P o te n ci a 119 0% Materias primas DRAM Cerc a de Lej os TL-DRAM • Sobrecarga de la DRAM ~3%: debido principalmente a los transistores de aislamiento 120 Más rápid o Compromiso: área (Die-Area) frente a latencia 4 32 3 2 64 1 128 256 512 celdas/línea de bits Segmento cercano Segmento lejano 0 0 10 20 30 40 50 60 70 M á s b ar at o Á re a D R A M n o rm al iz ad a 121 Latencia (ns) 1. Utilizar segmento cercano como inclusivo gestionado por hardware caché al segmento lejano 2. Utilizar segmento cercano como exclusivo gestionado por hardware caché al segmento lejano 3. Asignación de páginas basada en perfiles por sistema operativo Aprovechamiento de la DRAM de latencia escalonada • TL-DRAM es un sustrato que puede ser aprovechado por el hardware y/o el software • Muchos usos potenciales 4. Simplemente sustituya la DRAM por TL-DRAM Lee+, "Tiered-Latency DRAM: A Low Latency and Low Cost DRAM Architecture", HPCA 2013. 118 119 submatr iz canal Segmento cercano como caché gestionada por hardware TL-DRAM memori a principa l caché E/S segmento lejano segmento cercano amplificador sensor 120 • Reto 1: ¿Cómo migrar eficazmente una fila entre segmentos? • Reto 2: ¿Cómo gestionar eficazmente la caché? Amplificador de sentido 121 Migración entre segmentos • Objetivo: Migrar la fila de origen a la fila de destino • Manera ingenua: El controlador de memoria lee la fila de origen byte a byte y escribe en la fila de destino byte a byte → Alta latencia Segmento lejano Transistor de Destino Fuente Amplificador de sentido 122 aislamiento Segmento cercano Amplificador de sentido 123 Migración entre segmentos • A nuestra manera: – Las celdas de origen y destino comparten líneas de bits – Transferencia de datos de origen a destino a través de líneas de bits compartidas simultáneamente Segmento lejano Transistor de aislamiento Fuente Desti nación Amplificador de sentido 124 Segmento cercano Amplificador de sentido 125 Segmento lejano Migración entre segmentos • A nuestra manera: – Las celdas de origen y destino comparten líneas de bits – Transferencia de datos de origen a destino a través de líneas de bits compartidas concurrSetnetply1: Activar línea de origen La migración se solapa con el acceso a la fila de origen ~4ns adicionales sobre la latencia de acceso a la fila Paso 2: Activar la fila de destino para conectar la celda Amplificador de sentido 126 y la línea de bits Transistor de aislamiento Segmento cercano 127 submatr iz canal Segmento cercano como caché gestionada por hardware TL-DRAM memori a principa l caché E/S segmento lejano segmento cercano amplificador sensor 128 • Reto 1: ¿Cómo migrar eficazmente una fila entre segmentos? • Reto 2: ¿Cómo gestionar eficazmente la caché? 12.4% 11.5% 10.7% P o te n ci a n o rm al iz ad a Rendimiento y consumo 120% 100% 120% 100% 80% 80% 60% 60% 40% 40% 20% 20% 0% 1 (1-ch) 2 (2-ch) 4 (4-ch) 0% 1 (1-ch) 2 (2-ch) 4 (4-ch) Recuento de núcleos (canal) Recuento de núcleos (canal) Utilizar un segmento cercano como caché mejora ren di -23% -24% -26% R e n d im ie n to n o rm al iz ad o miento y reduce el consumo de energía Lee+, "Tiered-Latency DRAM: A Low Latency and Low Cost DRAM Architecture", HPCA 2013. 124 125 Un solo núcleo: Longitud variable del segmento cercano 14% 12% 10% 8% 6% 4% 2% 0% IPC máximo 1 2 4 8 16 32 64 128 256 Longitud del segmento cercano (celdas) Mejora Mayor capacidad de caché Mayor latencia de acceso a la caché M ej o ra d el r e n d im ie n to 125 Ajustando la longitud del segmento cercano, podemos compensar la capacidad de la caché con su latencia 126 Más información sobre TL-DRAM ◼ Donghyuk Lee, Yoongu Kim, Vivek Seshadri, Jamie Liu, Lavanya Subramanian y Onur Mutlu, "DRAM de latencia escalonada: baja latencia y bajo coste Arquitectura DRAM". Actas del19º Simposio Internacional sobre Arquitectura de Ordenadores de Altas Prestaciones (HPCA), Shenzhen, China, febrero de 2013. Diapositivas (pptx) http://users.ece.cmu.edu/~omutlu/pub/tldram_hpca13.pdf http://users.ece.cmu.edu/~omutlu/pub/tldram_hpca13.pdf http://www.cs.utah.edu/~lizhang/HPCA19/ http://www.cs.utah.edu/~lizhang/HPCA19/ http://users.ece.cmu.edu/~omutlu/pub/lee_hpca13_talk.pptx No hemos visto las siguientes diapositivas en clase. Estos son para su preparación para la próxima conferencia. Arquitectura de ordenadores Prof. Onur Mutlu ETH Zürich Otoño de 2017 4 de octubre de 2017 Clase 5: Funcionamiento de la DRAM, Control y latencia de la memoria 129 ¿Por qué tanta latencia? ◼ Diseño de la uArquitectura DRAM ❑ Objetivo: maximizar la capacidad/área, no minimizar la latencia ◼ "Enfoque único de la especificación de latencia ❑ Los mismos parámetros de latencia para todas las temperaturas ❑ Los mismos parámetros de latencia para todos los chips DRAM (por ejemplo, filas) ❑ Los mismos parámetros de latencia para todas las partes de un chip DRAM ❑ Los mismos parámetros de latencia para todos los niveles de tensión de alimentación ❑ Los mismos parámetros de latencia para todos los datos de la 130 aplicación ❑ ... 131 Variación de la latencia en los chips de memoria Condiciones heterogéneas de fabricación y funcionamiento → variación de latencia en los parámetros de temporización DRAM A DRAM B DRAM C Células lentas 132 Baj o Latencia de la DRAM Alta 133 ¿Qué más causa la larga latencia de la memoria? ◼ ¡Márgenes de tiempo conservadores! ◼ Los parámetros de temporización de la DRAM se ajustan para cubrir el peor de los casos ◼ Temperaturas en el peor de los casos ❑ 85 grados frente a caso común ❑ para permitir una amplia gama de condiciones de funcionamiento ◼ Dispositivos en el peor de los casos ❑ Célula DRAM con la carga más pequeña de cualquier dispositivo aceptable 134 ❑ tolerar la variación del proceso con un rendimiento aceptable ◼ Esto da lugar a grandes márgenes de temporización para el caso común Comprender y explotar Variación de la latencia de la DRAM 133 Tres etapas de movimiento de cargas 1. Detección 2. Restaurar La DRAM almacena datos como carga Célula DRAM 3. Precarga Sense-Amplifier 134 Carga de la DRAM en el tiempo Celda Celda Parámetros de temporización del amplificador de detección En teoría En la práctica Sense- Amplif ier Dete Datos 1 ca rg a 135 cción Res taurar tiempo ¿Por qué necesita la DRAM un margen de temporización adicional? Datos 0 marge n 136 11.. Varriiaacciióónn ddeell Proceesso – Las celdas DRAM no son iguales – Da lugar a un margen de temporización adicional para una célula que puede almacenar una gran cantidad de carga. Dos razones para el margen temporal 2. Depe`ndencia de la temperatura 137 Las celdas DRAM no son iguales Ideal Real Celda más pequeña Celda más grande SamLeaSrigzee variation ◼⚫⚫⬧◼⧫ Mismo carg Cargo diferent 138 SamLeaLragteenvcayriation inDicffhearerngteLatency Gran variación en la latencia de acceso 139 Variación del proceso Célula DRAM Póngas e en contact o con Condens ador Bitline ❶ Capacidad de la célula ❷ Resistencia de contacto ❸ Rendimiento de los transistores La célula pequeña puede almacenar poca carga • Capacidad de células pequeñas 140 Transistor de acceso ACCESO • Alta resistencia de contacto • Transistor de acceso lento Alta latencia de acceso 141 Dos razones para el margen temporal 1. Variación del proceso – Las celdas DRAM no son iguales – Da lugar a un margen de temporización adicional para una célula que puede almacenar una gran cantidad de carga. 142 22.. TTeemmppeerraattuurraa Depen` ddeenncciiaa – La DRAM pierde más carga a mayor temperatura – Da lugar a un margen de temporización adicional para las células que funcionan a baja temperatura 143 Temperatur a ambiente Temp. caliente (85°C) Temperatura de fuga de carga Cells sStomraellsLmeaaklal gceharge atLhariggehLteeamkapgeerature y gran carga a baja temperatura 144 Gran variación en la latencia de acceso 145 Parámetros de temporización de la DRAM • Los parámetros de temporización de la DRAM vienen dictados por el peor de los casos – La célula más pequeña con la menor carga de todos los productos DRAM – Funcionamiento a la temperatura más alta 146 • Gran margen de tiempo para el caso común DRAM de latencia adaptativa [HPCA 2015] ◼ Idea: Optimizar la temporización de la DRAM para el caso común ❑ Temperatura actual ❑ Módulo DRAM actual ◼ ¿Por qué reduciría esto la latencia? ❑ Una célula DRAM puede almacenar mucha más carga en el caso común (baja temperatura, célula fuerte) que en el peor de los casos ❑ Más carga en una célula DRAM Detección, restauración de carga y precarga más rápidas Acceso más rápido (lectura, escritura, actualización, ...) Lee+, "DRAM de latencia adaptable: Optimizing DRAM Timing for the Common-Case, "141 HPCA 2015. Cargo adicional Latencia reducida 1. Detección Detecta más rápido las células con carga adicional Menor latencia de detección 2. Restaurar No es necesario restaurar completamente las células con carga adicional Menor latencia de restauración 3. Precarga No es necesario precargar completamente las líneas de bits para células con suplemento Menor latencia de precarga 142 Infraestructura de caracterización de DRAM Temperatura Controlador FPGAs Calent ador FPGAs PC Kim+, "Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors", ISCA 2014. 143 144 Infraestructura de caracterización de DRAM ◼ Hasan Hassan y otros, SoftMC: A Flexible and Practical Open- Source Infrastructure for Enabling Experimental DRAM Studies, HPCA 2017. ◼ Flexible ◼ Fácil de usar (API C++) ◼ Código abierto github.com/CMU-SAFARI/SoftMC https://people.inf.ethz.ch/omutlu/pub/softMC_hpca17.pdf https://people.inf.ethz.ch/omutlu/pub/softMC_hpca17.pdf https://people.inf.ethz.ch/omutlu/pub/softMC_hpca17.pdf https://people.inf.ethz.ch/omutlu/pub/softMC_hpca17.pdf https://people.inf.ethz.ch/omutlu/pub/softMC_hpca17.pdf 145 SoftMC: infraestructura DRAM de código abierto ◼ https://github.com/CMU-SAFARI/SoftMC https://github.com/CMU-SAFARI/SoftMC 146 Observación 1. Detección más rápida Más gastos Flujo de carga fuerte Detección más rápida DIMM típico a baja temperatura Más carga Detección más rápida DIMM típico a baja temperatura 115 DIMM Caracterización Crono metraj e (tRCD) 17% ↓ Sin errores 147 Observación 2. Reducción del tiempo de restauración DIMM típico a baja temperatura Menos fuga⬧ Cargo adicional No es necesario restaurar completamente la carga 115 DIMM Caracterización Lectura (tRAS) 37% ↓ Escritura (tWR) 54% ↓ Sin errores 148 DIMM típico a baja temperatura Más carga Reducción del tiempo de restauración ppaarraaaammeetteeoorriizzaacciióónn ffiiaabbllee ddee llaa DDRRAAMM TTeemmppeerraattuurraa ddee llaa DDRRAAMM AL-DRAM • Idea clave – Optimización en línea de los parámetros de temporización de la DRAM • Dos componentes – El fabricante de DRAM proporciona varios conjuntos de en diferentestemperaturas para cada DIMM – sistema supervisa utiliza los parámetros de temporización de la DRAM adecuados. Lee+, "DRAM de latencia adaptable: Optimizing DRAM Timing for the Common-Case", HPCA 2015. 148 - Temperatura de la DRAM • Medición de la temperatura de la DRAM • Grupo de servidores: Funciona a menos de 34°C • De sobremesa: Funciona a menos de 50°C • DRAM estándar optimizada para 85°C • DPRreAviMousowpoerkrsa- teDsRAaMt ltoemwpetreamturpeeisrlaotwures El-Sayed+ SIGMETRICS 2012 • Liu+ ISCiAn20t0h7e caso común • Trabajos previos - Mantener baja la temperatura de la DRAM • David+ ICAC 2011 • Liu+ ISCA 2007 • Zhu+ ITHERM 2008 149 Resumen de reducción de latencia de 115 módulos DIMM • Reducción de la latencia de lectura y escritura (55°C) – Latencia de lectura: 32,7%. – Latencia de escritura: 55,1%. • Reducción de latencia para cada parámetro de temporización (55°C) – Sensibilización: 17.3% – Restauración: 37,3% (lectura), 54,8% (escritura) – Precarga: 35.2% Lee+, "DRAM de latencia adaptable: Optimizing DRAM Timing for the Common-Case", HPCA 2015. 150 AL-DRAM: Evaluación de sistemas reales • Sistema – CPU: AMD 4386 ( 8 núcleos, 3.1GHz, 8MB LLC) – DRAM: 4GByte DDR3-1600 (Reloj 800Mhz) – SO: Linux – Almacenamiento: 128GByte SSD • Carga de trabajo – 35 aplicaciones de SPEC, STREAM, Parsec, Memcached, Apache, GUPS 151 allallall--- wwwooorklrklrklooo adsadsads Mejora del rendimiento soplex mcf milc libq lbm gems copia s.cluster gups no intensivo intensivo todos-35-carga de trabajo A L-D R A M : Evalu ació n d e u n so lo n ú cleo M ed ia 25% 20% 15% 10% 5% 0% M ejo ra U n so lo n ú cleo N ú cleo m ú ltip le 6.7% 5.0% 1.4% A L-D R A M m ejo ra el ren d im ien to en u n sistem a rea l 1 5 2 allallallall wwwwoooorklrklrklrklooooadsads adsadsadsads A L-D R A M o frece u n m a yo r ren d im ien to para ca rg a s d e tra ba jo m u ltip ro gra m a d as y m u ltih ilo 1 5 3 Mejora del rendimiento soplex mcf milc libq lbm gems copia s.cluster gups no intensivo intensivo todos-35-carga de trabajo A L-D R A M : Evalu ació n m u ltin ú cleo M ed ia 25% 20% 15% 10% 5% 0% M ejo ra 1 4 .0 % 10 .4 % U n so lo n ú cleo N ú cleo m ú ltip le 2.9% Reducir la latencia también reduce la energía ◼ AL-DRAM reduce el consumo de energía de la DRAM en un 5,8 ◼ Razón principal: reducción del tiempo de activación de las filas 154 Más sobre AL-DRAM ◼ Donghyuk Lee, Yoongu Kim, Gennady Pekhimenko, Samira Khan, Vivek Seshadri, Kevin Chang y Onur Mutlu, "DRAM de latencia adaptable: Optimización de la temporización de la DRAM para el caso común". Proceedings of the 21st International Symposium on High- Performance Computer Architecture (HPCA), Bay Area, CA, febrero de 2015. [Diapositivas (pptx) (pdf)] [Conjuntos completos de datos] http://users.ece.cmu.edu/~omutlu/pub/adaptive-latency-dram_hpca15.pdf http://users.ece.cmu.edu/~omutlu/pub/adaptive-latency-dram_hpca15.pdf http://users.ece.cmu.edu/~omutlu/pub/adaptive-latency-dram_hpca15.pdf http://darksilicon.org/hpca/ http://darksilicon.org/hpca/ http://users.ece.cmu.edu/~omutlu/pub/adaptive-latency-dram_donghyuk_hpca15-talk.pptx http://users.ece.cmu.edu/~omutlu/pub/adaptive-latency-dram_donghyuk_hpca15-talk.pdf http://www.ece.cmu.edu/~safari/tools/aldram-hpca2015-fulldata.html 155 156 Latencia heterogénea en un chip 1.25 1.2 1.15 1.1 1.05 1 0.95 0.9 19.7% 19.5% 17.6% 13.3% 40 Cargas de trabajo Línea base (DDR3) FLY- DRAM (D1) FLY-DRAM (D2) FLY-DRAM (D3) Límite superior Chang+, "Understanding Latency Variation in Modern DRAM Chips: Experimental R e n d im ie n to n o rm a li z a d o https://people.inf.ethz.ch/omutlu/pub/understanding-latency-variation-in-DRAM-chips_sigmetrics16.pdf 157 Caracterización, análisis y optimización"," SIGMETRICS 2016. https://people.inf.ethz.ch/omutlu/pub/understanding-latency-variation-in-DRAM-chips_sigmetrics16.pdf 158 Análisis de la variación de latencia en chips DRAM ◼ Kevin Chang, Abhijith Kashyap, Hasan Hassan, Samira Khan, Kevin Hsieh, Donghyuk Lee, Saugata Ghose, Gennady Pekhimenko, Tianshi Li y Onur Mutlu, "Comprensión de la variación de latencia en chips DRAM modernos: Experimental Characterization, Analysis, and Optimization" Actas de la Conferencia Internacional ACM sobre Medición y Modelado de Sistemas Informáticos (SIGMETRICS), Antibes Juan-Les- Pins, Francia, junio de 2016. [Diapositivas (pptx) (pdf) [Código fuente] https://users.ece.cmu.edu/~omutlu/pub/understanding-latency-variation-in-DRAM-chips_sigmetrics16.pdf https://users.ece.cmu.edu/~omutlu/pub/understanding-latency-variation-in-DRAM-chips_sigmetrics16.pdf https://users.ece.cmu.edu/~omutlu/pub/understanding-latency-variation-in-DRAM-chips_sigmetrics16.pdf http://www.sigmetrics.org/sigmetrics2016/ http://www.sigmetrics.org/sigmetrics2016/ http://www.sigmetrics.org/sigmetrics2016/ https://users.ece.cmu.edu/~omutlu/pub/understanding-latency-variation-in-DRAM-chips_kevinchang_sigmetrics16-talk.pptx https://users.ece.cmu.edu/~omutlu/pub/understanding-latency-variation-in-DRAM-chips_kevinchang_sigmetrics16-talk.pdf https://github.com/CMU-SAFARI/DRAM-Latency-Variation-Study 159 160 co n tro lad o res w o rd lin e ¿Qué es la variación inducida por el diseño? a través de la columna distancia del conductor de la línea telefónica ráp ido lent o intrínsecamente lento a través de la fila distancia del amplificador sensor len t o rá p id o 161 Variación sistemática de los tiempos de acceso a las celdas causada por la organización física de la DRAM Intrínsecamen te rápido amplificadores de sentido 162 Perfiles en línea DIVA Design-Induced-Variation-Aware intrínsecamente lento amplificador sensor Perfilar sólo las regiones lentas para determinar la latencia mínima co n tro lad o r d e lín ea d e texto 163 Optimización dinámica y de bajo coste de la latencia 164 co n tro lad o r d e lín ea d e texto Perfiles en línea DIVA Design-Induced-Variation-Aware células lentas variació n del proceso error aleatorio intrínsecament e lento variación inducida por el diseño error localizado código de corrección de errores amplificador sensor 165 perfiles en línea Combinar códigos de corrección de errores y perfiles en línea Reducción fiable de la latencia de la DRAM 166 AVA AVA AVA AVA 31.2% 35.1%34.6%36.6%35.8% 25.5% 55°C 85°C 55°C 85°C 55°C 85°C AL-DRAM Perfiles DIVA Perfiles DIVA + Barajar DIVA-DRAM reduce la latencia 50% 40% 30% Leer 50% 40% 30% Escriba a 20% 20% 10% 10% 0% 0% 39.4%38.7%41 .3%40.3% 36.6% 27.5% 55°C 85°C 55°C 85°C 55°C 85°C AL-DRAM DIVAProfiling DIVAProfiling + Barajar DIVA-DRAM reduce la latencia de forma más agresiva y utiliza ECC para corregir las células lentas aleatorias R ed u cc ió n d e la la te n ci a 162 Variación de la latencia inducida por el diseño en DRAM ◼ Donghyuk Lee, Samira Khan, Lavanya Subramanian, Saugata Ghose, Rachata Ausavarungnirun, Gennady Pekhimenko, Vivek Seshadri y Onur Mutlu, "Variación de la latencia inducida por el diseño en chips DRAM modernos: Characterization, Analysis, and Latency Reduction Mechanisms" Actas de la Conferencia Internacional ACM sobre Medición y Modeladode Sistemas Informáticos (SIGMETRICS), Urbana- Champaign, IL, Estados Unidos, junio de 2017. https://people.inf.ethz.ch/omutlu/pub/DIVA-low-latency-DRAM_sigmetrics17-paper.pdf https://people.inf.ethz.ch/omutlu/pub/DIVA-low-latency-DRAM_sigmetrics17-paper.pdf https://people.inf.ethz.ch/omutlu/pub/DIVA-low-latency-DRAM_sigmetrics17-paper.pdf http://www.sigmetrics.org/sigmetrics2017/ http://www.sigmetrics.org/sigmetrics2017/ http://www.sigmetrics.org/sigmetrics2017/ 163 Voltron: Explotar la relación entre voltaje, latencia y fiabilidad Relación 164 Resumen ejecutivo • La potencia de la DRAM (memoria) es importante en los sistemas actuales – La DRAM de bajo voltaje existente reduce el voltaje de forma conservadora • Objetivo: Comprender y aprovechar el comportamiento de la fiabilidad y la latencia de los chips DRAM reales en condiciones de funcionamiento agresivo con voltaje reducido. • Principales observaciones experimentales: – Enorme margen de tensión -- Los errores se producen más allá de cierta tensión – Los errores muestran una localización espacial – La mayor latencia de funcionamiento mitiga los errores inducidos por la tensión • Voltron:Un nuevo mecanismo de reducción de energía de las 165 DRAM – Reducir el voltaje de la DRAM sin introducir errores – Utilizar un modelo de regresión para seleccionar la tensión que no se degrada rendimiento por encima del objetivo elegido 7,3% de reducción de energía del sistema 166 Análisis de latencia-voltaje en chips DRAM ◼ Kevin Chang, A. Giray Yaglikci, Saugata Ghose, Aditya Agrawal, Niladrish Chatterjee, Abhijith Kashyap, Donghyuk Lee, Mike O'Connor, Hasan Hassan y Onur Mutlu, "Comprensión del funcionamiento a tensión reducida en dispositivos DRAM modernos: Caracterización experimental, análisis y mecanismos". Actas de la Conferencia Internacional ACM sobre Medición y Modelado de Sistemas Informáticos (SIGMETRICS), Urbana-Champaign, IL, Estados Unidos, junio de 2017. https://people.inf.ethz.ch/omutlu/pub/Voltron-reduced-voltage-DRAM-sigmetrics17-paper.pdf https://people.inf.ethz.ch/omutlu/pub/Voltron-reduced-voltage-DRAM-sigmetrics17-paper.pdf https://people.inf.ethz.ch/omutlu/pub/Voltron-reduced-voltage-DRAM-sigmetrics17-paper.pdf http://www.sigmetrics.org/sigmetrics2017/ http://www.sigmetrics.org/sigmetrics2017/ 167 Y si... ◼ ... podemos sacrificar la fiabilidad de algunos datos para acceder a ellos con ¿una latencia aún menor? 168 Desafío y oportunidad para el futuro Latencia fundamentalm ente baja Arquitecturas 169 informáticas Arquitectura de ordenadores Prof. Onur Mutlu ETH Zürich Otoño de 2017 4 de octubre de 2017 Clase 5: Funcionamiento de la DRAM, Control y latencia de la memoria Resumen de alto nivel de la última conferencia Agenda de hoy El laboratorio 1 está fuera Lecturas obligatorias sobre DRAM Lectura sobre la simulación de la memoria principal Revisión: Organización del subsistema DRAM Revisión: Estructura de memoria generalizada Organización del subsistema DRAM El subsistema DRAM Desmontaje de un DIMM Desmontaje de un DIMM Rango Desglose de un rango Desglose de un chip Desmantelar un banco Organización del subsistema DRAM Ejemplo: Transferencia de un bloque de caché Ejemplo: Transferencia de un bloque de caché Ejemplo: Transferencia de un bloque de caché Ejemplo: Transferencia de un bloque de caché Ejemplo: Transferencia de un bloque de caché Ejemplo: Transferencia de un bloque de caché Ejemplo: Transferencia de un bloque de caché Componentes de latencia: Funcionamiento básico de la DRAM Bancos múltiples (intercalación) y canales Cómo ayudan los bancos múltiples Asignación aleatoria de bancos Asignación de direcciones (varios canales) Más sobre la reducción de conflictos bancarios Lecturas obligatorias sobre DRAM Refresco DRAM (I) Refresco de DRAM (II) Inconvenientes de la renovación de DRAM DRAM frente a otros tipos de memorias Controladores de memoria flash (SSD) Otra vista del controlador SSD Tipos de DRAM Tipos de DRAM (circa 2015) Controlador DRAM: Funciones Controlador DRAM: Dónde colocar Revisión: Funcionamiento de los bancos DRAM Políticas de programación de DRAM (II) Políticas de gestión del búfer de filas Políticas de filas abiertas frente a filas cerradas ¿Por qué es difícil diseñar controladores DRAM? Muchas restricciones de temporización de la DRAM Más sobre el funcionamiento de las DRAM ¿Por qué tantas restricciones temporales? (I) ¿Por qué tantas restricciones temporales? (II) Realidad y sueño Controladores DRAM autooptimizables Controladores DRAM autooptimizables Controladores DRAM autooptimizables Controladores DRAM autooptimizables Estados, acciones, recompensas Resultados Posibles métodos de evaluación La dificultad de la evaluación arquitectónica Simulación: El campo de los sueños ¿Por qué simulación de alto nivel? Diferentes objetivos en la simulación Compromisos en la simulación Intercambiar velocidad, flexibilidad y precisión Simulación de alto nivel La simulación como perfeccionamiento progresivo Sacar lo mejor de la arquitectura Ramulador Motivación Ramulador Ramulator Paper y código fuente Créditos adicionales Matriz de células Matriz de células La latencia de la memoria se queda atrás La latencia de la DRAM es fundamental para el rendimiento La latencia de la DRAM es fundamental para el rendimiento ¿Por qué tanta latencia? ¿Cuál es la causa de la larga latencia? ¿Por qué es tan lenta la submatriz? • Línea de bits larga Compromiso: área (tamaño de la matriz) frente a latencia Compromiso: área (tamaño de la matriz) frente a latencia Aproximación a lo mejor de ambos mundos Aproximación a lo mejor de ambos mundos Evaluación de latencia, potencia y área • Evaluación de la latencia • Evaluación de potencia y superficie • Sobrecarga de la DRAM Compromiso: área (Die-Area) frente a latencia Aprovechamiento de la DRAM de latencia escalonada Segmento cercano como caché gestionada por hardware Migración entre segmentos Migración entre segmentos • A nuestra manera: Migración entre segmentos • A nuestra manera: La migración se solapa con el acceso a la fila de origen ~4ns adicionales sobre la latencia de acceso a la fila Segmento cercano como caché gestionada por hardware Rendimiento y consumo Más información sobre TL-DRAM ¿Por qué tanta latencia? Variación de la latencia en los chips de memoria La DRAM almacena datos como carga 3. Precarga Carga de la DRAM en el tiempo Dos razones para el margen temporal Las celdas DRAM no son iguales Variación del proceso Célula DRAM Dos razones para el margen temporal Temperatura de fuga de carga Parámetros de temporización de la DRAM Cargo adicionalLatencia reducida 1. Detección 2. Restaurar 3. Precarga Infraestructura de caracterización de DRAM Infraestructura de caracterización de DRAM SoftMC: infraestructura DRAM de código abierto Observación 1. Detección más rápida Observación 2. Reducción del tiempo de restauración AL-DRAM Temperatura de la DRAM Resumen de reducción de latencia de 115 módulos DIMM AL-DRAM: Evaluación de sistemas reales Reducir la latencia también reduce la energía Más sobre AL-DRAM Latencia heterogénea en un chip ¿Qué es la variación inducida por el diseño? DIVA-DRAM reduce la latencia Y si...
Compartir