Logo Studenta

onur-comparch-fall2017-lecture5-dramoperation-memorycontrol-memorylatency-afterlecture es

¡Este material tiene más páginas!

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 adicionalLatencia 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...

Continuar navegando