Arquitectura de Procesadores
El subsistema de Memoria
Alejandro Furfaro
Agosto de 2015
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache4 Memorias Din ´amicas Introducci ´on Organizaci ´on interna
5 Arquitecturas DRAM Evoluci ´on
Throughput + Latency
6 Standards Estado del arte JEDEC SDRAM JEDEC DDR SDRAM
7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos
8 Prococolo de acceso Fundamentos b ´asicos
9 Controladores de Memoria Introducci ´on General Arquitectura
10 Casos Pr ´acticos Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Evoluci ´on
Pioneros:
Maurice Wilkes en 1947 con la
primer memoria de tanque de mercurio para la computadora EDSAC. Capacidad 2 bytes.
Visionarios:
“640K debe ser suficiente memoria para cualquiera....” Bill Gates. 1981
El sistema de Memoria
Evoluci ´on
Pioneros:
Maurice Wilkes en 1947 con la
primer memoria de tanque de mercurio para la computadora EDSAC. Capacidad 2 bytes.
Visionarios:
“640K debe ser suficiente memoria para cualquiera....” Bill Gates. 1981
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache 4 Memorias Din ´amicasIntroducci ´on Organizaci ´on interna 5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency 6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM 7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos 8 Prococolo de acceso
Fundamentos b ´asicos 9 Controladores de Memoria
Introducci ´on General Arquitectura 10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
El sistema de Memoria Jerarqu´ıa de Memorias
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache 4 Memorias Din ´amicasIntroducci ´on Organizaci ´on interna 5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency 6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM 7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos 8 Prococolo de acceso
Fundamentos b ´asicos 9 Controladores de Memoria
Introducci ´on General Arquitectura 10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
El sistema de Memoria Principio de Vecindad o Lacalidad
Principio de funcionamiento. . . ¿black magic?
El controlador cache trabaja mediante dos principios que surgen de analizar el comportamiento de los algoritmos de software que se emplean habitualmente. Principio de vecindad temporal: Si un ´ıtem es referenciado, la probabilidad de ser referenciado en el futuro inmediato es alta.
Principio de vecindad espacial: Si un ´ıtem es referenciado, es altamente probable que sean referenciados sus ´ıtems vecinos.
Ejemplo: Algoritmo de convoluci ´on
1 f o r ( i = 0 ; i < 256 ; i ++ ) 2 { 3 suma = 0 . 0 f ; 4 f o r ( j = 0 ; ( j <= i && j < 256) ; j ++) 5 suma += v0 [ i − j ] ∗ v1 [ j ] ; 6 fAux [ i ] = suma ; 7 }
i, j, suma, se utilizan a menudo. Por lo tanto si se mantienen en el cache, el tiempo de acceso a estas variables por parte del procesador es ´optimo.
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache 4 Memorias Din ´amicasIntroducci ´on Organizaci ´on interna 5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency 6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM 7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos 8 Prococolo de acceso
Fundamentos b ´asicos 9 Controladores de Memoria
Introducci ´on General Arquitectura 10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Tecnolog´ıas de Memoria Clasificaci ´on de memorias
Clasificaci ´on
Memorias Solo lectura.
Se trata de memorias capaces de retener la informaci ´on almacenada cuando se les desconecta la alimentaci ´on. De acuerdo con las diferentes tecnolog´ıas han evolucionado desde ser memorias
denominadasROM (por Read Only Memory), que en sus primeras
implementaciones deb´ıan ser grabadas por el fabricante, hasta las actuales flash memories que pueden ser grabadas por algoritmos de escritura on the fly por el usuario, y cuyo ejemplo mas habitual es el pen drive o las tarjetas microsd de las c ´amaras fotogr ´aficas.
Memorias Lectura Escritura
Se trata de memorias vol ´atiles en lo que respecta a la permanencia de la informaci ´on una vez interrumpida la alimentaci ´on el ´ectrica. Sin embargo estas memorias pueden almacenar mayores cantidades de informaci ´on y modificarla en tiempo real a gran velocidad en
comparaci ´on con las ROM.
Se clasifican de acuerdo con la tecnolog´ıa y su dise ˜no interno en din ´amicas y est ´aticas.
Nos concentraremos a continuaci ´on en las memorias RAM, que es donde en general residen nuestros programas y el propio sistema
Memorias din ´amicas
RAS CAS
c
Almacena la informaci ´on como una carga en un capacitor y la sostiene con la ayuda de un transistor. Una celda (un bit) se implementa con un solo transistor => m ´axima
capacidad de almacenamiento por chip.
Ese transistor est ´a
generalmente en estado de Corte. Consume m´ınima energ´ıa.
Tecnolog´ıas de Memoria Clasificaci ´on de memorias
Memorias din ´amicas
RAS CAS
c
Almacena la informaci ´on como una carga en un capacitor y la sostiene con la ayuda de un transistor. Una celda (un bit) se implementa con un solo transistor => m ´axima
capacidad de almacenamiento por chip.
Ese transistor est ´a
generalmente en estado de Corte. Consume m´ınima energ´ıa.
Memorias din ´amicas
RAS CAS c R/#W Data RefreshAl leer el bit, se descarga la capacidad.
Una celda de DRMANecesita regenerar la carga cada vez
que se la lee.
Esta operaci ´on se realiza por realimentaci ´on mediante buffers
Aumenta entonces el tiempo total que demanda el acceso de la celda, ya que no libera la operaci ´on hasta no haber repuesto el estado de carga del capacitor.
Tecnolog´ıas de Memoria Clasificaci ´on de memorias
Memorias est ´aticas
VDD VDD Select
Dout #Dout
Almacena la informaci ´on en un biestable.
Una celda (un bit) se compone de seis transistores. Por lo tanto tiene menor capacidad de almacenamiento por chip.
Tres de los seis transistores est ´an en saturaci ´on (consumen energ´ıa m ´axima en forma permanente) y los otros tres al corte (consumen m´ınima energ´ıa). Esto genera mayor consumo de energ´ıa por celda.
La lectura es directa y no destructiva por lo cual el tiempo de acceso es muy bajo en comparaci ´on con las memorias din ´amicas. De hecho son luego de los registros del
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache 4 Memorias Din ´amicasIntroducci ´on Organizaci ´on interna 5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency 6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM 7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos 8 Prococolo de acceso
Fundamentos b ´asicos 9 Controladores de Memoria
Introducci ´on General Arquitectura 10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Tecnolog´ıas de Memoria Memorias y velocidad del Procesador
Conexi ´on b ´asica (Seg ´un Von Newmann)
D A TA ADDRESS CONTROL D A TA ADDRESS CONTROL
Bus del Sistema
Buffer Buffer Buffer
Procesador
Memoria E/S
Bus Local del Procesador
Desde fines de los a ˜nos 80, los procesadores desarrollaban velocidades muy
superiores a los tiempos de acceso a memoria. En este escenario, el procesador necesita generar wait states para esperar que la memoria est ´e lista (“READY”) para el acceso.
¿Tiene sentido lograr altos clocks en los
procesadores si no puede aprovecharlos por tener que esperar (wait) a la
El problema. . .
El problema consiste en decidir que tipo de RAM usar en el sistema. Hay dos opciones. . .
RAM din ´amica (DRAM) Consumo m´ınimo.
Capacidad de almacenamiento comparativamente alta. Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneraci ´on de carga.
RAM est ´atica (SRAM) Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja. Costo por bit alto.
Tiempo de acceso bajo (es mas r ´apida). Conclusi ´on:
Si construimos el banco de memoria utilizando RAM est ´atica, el costo y el consumo de la computadora son altos. Si construimos el banco de memoria utilizando RAM din ´amica, no aprovechamos la velocidad del procesador.
Tecnolog´ıas de Memoria Memorias y velocidad del Procesador
El problema. . .
El problema consiste en decidir que tipo de RAM usar en el sistema. Hay dos opciones. . .
RAM din ´amica (DRAM)
Consumo m´ınimo.
Capacidad de almacenamiento comparativamente alta. Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneraci ´on de carga.
RAM est ´atica (SRAM) Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja.
Costo por bit alto.
Tiempo de acceso bajo (es mas r ´apida).
Conclusi ´on:
Si construimos el banco de memoria utilizando RAM est ´atica, el costo y el consumo de la computadora son altos. Si construimos el banco de memoria
El problema. . .
El problema consiste en decidir que tipo de RAM usar en el sistema. Hay dos opciones. . .
RAM din ´amica (DRAM) Consumo m´ınimo.
Capacidad de almacenamiento comparativamente alta. Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneraci ´on de carga.
RAM est ´atica (SRAM)
Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja. Costo por bit alto.
Tiempo de acceso bajo (es mas r ´apida).
Conclusi ´on:
Si construimos el banco de memoria utilizando RAM est ´atica, el costo y el consumo de la computadora son altos. Si construimos el banco de memoria utilizando RAM din ´amica, no aprovechamos la velocidad del procesador.
Tecnolog´ıas de Memoria Memorias y velocidad del Procesador
El problema. . .
El problema consiste en decidir que tipo de RAM usar en el sistema. Hay dos opciones. . .
RAM din ´amica (DRAM) Consumo m´ınimo.
Capacidad de almacenamiento comparativamente alta.
Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneraci ´on de carga.
RAM est ´atica (SRAM)
Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja.
Costo por bit alto.
Tiempo de acceso bajo (es mas r ´apida).
Conclusi ´on:
Si construimos el banco de memoria utilizando RAM est ´atica, el costo y el consumo de la computadora son altos. Si construimos el banco de memoria
El problema. . .
El problema consiste en decidir que tipo de RAM usar en el sistema. Hay dos opciones. . .
RAM din ´amica (DRAM) Consumo m´ınimo.
Capacidad de almacenamiento comparativamente alta. Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneraci ´on de carga.
RAM est ´atica (SRAM)
Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja. Costo por bit alto.
Tiempo de acceso bajo (es mas r ´apida).
Conclusi ´on:
Si construimos el banco de memoria utilizando RAM est ´atica, el costo y el consumo de la computadora son altos. Si construimos el banco de memoria utilizando RAM din ´amica, no aprovechamos la velocidad del procesador.
Tecnolog´ıas de Memoria Memorias y velocidad del Procesador
El problema. . .
El problema consiste en decidir que tipo de RAM usar en el sistema. Hay dos opciones. . .
RAM din ´amica (DRAM) Consumo m´ınimo.
Capacidad de almacenamiento comparativamente alta. Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneraci ´on de carga.
RAM est ´atica (SRAM)
Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja. Costo por bit alto.
Tiempo de acceso bajo (es mas r ´apida). Conclusi ´on:
Si construimos el banco de memoria utilizando RAM est ´atica, el costo y el consumo de la computadora son altos. Si construimos el banco de memoria
El problema. . .
El problema consiste en decidir que tipo de RAM usar en el sistema. Hay dos opciones. . .
RAM din ´amica (DRAM) Consumo m´ınimo.
Capacidad de almacenamiento comparativamente alta. Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneraci ´on de carga.
RAM est ´atica (SRAM)
Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja. Costo por bit alto.
Tiempo de acceso bajo (es mas r ´apida). Conclusi ´on:
Si construimos el banco de memoria utilizando RAM est ´atica, el costo y el consumo de la computadora son altos. Si construimos el banco de memoria utilizando RAM din ´amica, no aprovechamos la velocidad del procesador.
Memoria Cache Principio de Funcionamiento
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache 4 Memorias Din ´amicasIntroducci ´on Organizaci ´on interna 5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency 6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM 7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos 8 Prococolo de acceso
Fundamentos b ´asicos 9 Controladores de Memoria
Introducci ´on General Arquitectura 10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
La soluci ´on. . . Memoria Cache
Se trata de un banco de SRAM de muy alta velocidad, que contiene una copia de los datos e instrucciones que est ´an en memoria principal.
El arte consiste en que esta copia est ´e disponible justo cuando el procesador la necesita permiti ´endole acceder a esos ´ıtems sin recurrir a wait states.
Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de c ´odigos y datos, resuelve el problema mediante una soluci ´on de compromiso t´ıpica.
Requiere de hardware adicional que asegure que este peque ˜no banco de memoria cache contenga los datos e instrucciones mas frecuentemente utilizados por el procesador.
Memoria Cache Principio de Funcionamiento
La soluci ´on. . . Memoria Cache
Se trata de un banco de SRAM de muy alta velocidad, que contiene una copia de los datos e instrucciones que est ´an en memoria principal.
El arte consiste en que esta copia est ´e disponible justo cuando el procesador la necesita permiti ´endole acceder a esos ´ıtems sin recurrir a wait states.
Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de c ´odigos y datos, resuelve el problema mediante una soluci ´on de compromiso t´ıpica.
Requiere de hardware adicional que asegure que este peque ˜no banco de memoria cache contenga los datos e instrucciones mas frecuentemente utilizados por el procesador.
La soluci ´on. . . Memoria Cache
Se trata de un banco de SRAM de muy alta velocidad, que contiene una copia de los datos e instrucciones que est ´an en memoria principal.
El arte consiste en que esta copia est ´e disponible justo cuando el procesador la necesita permiti ´endole acceder a esos ´ıtems sin recurrir a wait states.
Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de c ´odigos y datos, resuelve el problema mediante una soluci ´on de compromiso t´ıpica.
Requiere de hardware adicional que asegure que este peque ˜no banco de memoria cache contenga los datos e instrucciones mas frecuentemente utilizados por el procesador.
Memoria Cache Principio de Funcionamiento
La soluci ´on. . . Memoria Cache
Se trata de un banco de SRAM de muy alta velocidad, que contiene una copia de los datos e instrucciones que est ´an en memoria principal.
El arte consiste en que esta copia est ´e disponible justo cuando el procesador la necesita permiti ´endole acceder a esos ´ıtems sin recurrir a wait states.
Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de c ´odigos y datos, resuelve el problema mediante una soluci ´on de compromiso t´ıpica.
Requiere de hardware adicional que asegure que este peque ˜no banco de memoria cache contenga los datos e instrucciones mas frecuentemente utilizados por el procesador.
La soluci ´on. . . Memoria Cache
Se trata de un banco de SRAM de muy alta velocidad, que contiene una copia de los datos e instrucciones que est ´an en memoria principal.
El arte consiste en que esta copia est ´e disponible justo cuando el procesador la necesita permiti ´endole acceder a esos ´ıtems sin recurrir a wait states.
Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de c ´odigos y datos, resuelve el problema mediante una soluci ´on de compromiso t´ıpica.
Requiere de hardware adicional que asegure que este peque ˜no banco de memoria cache contenga los datos e instrucciones mas frecuentemente utilizados por el procesador.
Memoria Cache Principio de Funcionamiento
Caracter´ısticas y m ´etricas
El tama ˜no del banco de memoria cache debe ser:
1 Suficientemente grande para que el procesador resuelva la mayor cantidad posible de b ´usquedas de c ´odigo y datos en esta
memoria asegurando una alta performance.
2 Suficientemente peque ˜na para no afectar el consumo ni el costo del sistema.
Hit cuando se accede a un ´ıtem (dato o c ´odigo) y ´este se encuentra en la memoria cache
Miss cuando se accede a un ´ıtem (dato o c ´odigo) y ´este no se encuentra en la memoria cache
hit rate hitrate = Cantidad de Accesos TotalesCantidad de Accesos con hit
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache 4 Memorias Din ´amicasIntroducci ´on Organizaci ´on interna 5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency 6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM 7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos 8 Prococolo de acceso
Fundamentos b ´asicos 9 Controladores de Memoria
Introducci ´on General Arquitectura 10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Memoria Cache Hardware dedicado = + complejidad
Subsistema Cache de Hardware
D
A
TA
ADDRESS
CONTROL
Bus del Sistema
Buffer Buffer Buffer
Procesador Memoria E/S Bus Local del Procesador CONTROL DATA ADDRESS Controlador Cache Memoria Cache Bus Local del Controlador Cache CONTROL
Operaci ´on de acceso a memoria para lectura
Inicio
El Procesador Inicia Un ciclo de lectura de memoria (Pone la dirección en sus líneas
de Address)
Controlador cache busca dirección en su
Directorio Cache
El controlador cache Busca el ítem en la memoria
cache y lo envía al procesador
El controlador cache Busca el ítem en la memoria
del Sistema
HIT!! MISS
El controlador Cache habilita la línea de escritura de la Memoria Cache, y escribe el ítem
El controlador Cache Actualiza la dirección en su Directorio Cache
El controlador Cache habilita la línea de lectura de la
Memoria Cache, y habilita la lectura de parte del Procesador
Fin
Memoria Cache Hardware dedicado = + complejidad
El Controlador Cache
D A TA ADDRESS CONTROLBus del Sistema
Buffer Buffer Buffer
Procesador Memoria E/S Bus Local del Procesador CONTROL DATA ADDRESS Controlador Cache Memoria Cache Bus Local del Controlador Cache CONTROL Interfaz con el Bus Local Directorio Cache Interfaz con el Procesador Control del Cache
Control del bus local del controlador cache Arbitración del Bus
Control del bus local del Procesador
Decodificaciones del bus local del procesador
Bus de Address del procesador
Bus de Snoop
Bus de Control de la Memoria Cache
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache 4 Memorias Din ´amicasIntroducci ´on Organizaci ´on interna 5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency 6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM 7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos 8 Prococolo de acceso
Fundamentos b ´asicos 9 Controladores de Memoria
Introducci ´on General Arquitectura 10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Memoria Cache organizaci ´on de un cache
Organizaci ´on del cache. L´ıneas
Línea
Línea Tag
Línea
Línea: Elemento mínimo de palabra
de datos dentro del cache.
Corresponde a un múltiplo del tamaño de la palabra de datos de memoria. ¿Porque?. Cuando se direcciona un ítem en memoria generalmente se requerirá de los ítem que lo rodean (Principio de vecindad espacial)
Sistema Cache de Mapeo Directo
Memoria Cache Directorio Cache
Tag de j bits
Bit de Validez General del Tag Bit de Validez individual de la Línea
Set Nº1 Set Nº2 Set Nº3 Set Nº4 Set Nº5 Set Nº6 Set Nº7 Set Nº8 Set Nº9 Set Nº10 Set Nº n Page 0Page 1 Page 2 Page 2j-1 Memoria DRAM
1 Línea = b Bytes 1 Línea = b Bytes 0
1 Set = 2ln líneas
2ln*n
2*2ln*n
(2j-1)*2ln*n
Memoria Cache organizaci ´on de un cache
Sistema Cache de Mapeo Directo
Sistema Cache de Mapeo Directo
jbits n bits ln bits b bits
Memoria Cache organizaci ´on de un cache
Sistema Cache de Mapeo Directo
jbits n bits ln bits b bits
Sistema Cache de Mapeo Directo
jbits n bits ln bits b bits
=
Memoria Cache organizaci ´on de un cache
Sistema Cache de Mapeo Directo
jbits n bits ln bits b bits
Sistema Cache Asociativo de 2 V´ıas
Memoria Cache Directorio Cache
Tag de j bits
Bit de Validez General del Tag Bit de Validez individual de la Línea
Set Nº1 Set Nº2 Set Nº3 Set Nº4 Set Nº5 Set Nº6 Set Nº7 Set Nº8 Set Nº9 Set Nº10
Set Nº n Page 0Page 1
Page 2 Page 2j-1 Memoria DRAM
1 Línea = b Bytes 1 Línea = b Bytes
0 1 Set = 2ln líneas 2ln*n 2*2ln*n (2j-1)*2ln*n Bits LRU 1 Línea = b Bytes
Memoria Cache Coherencia de un cache
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache4 Memorias Din ´amicas
Introducci ´on Organizaci ´on interna 5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency 6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM 7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos 8 Prococolo de acceso
Fundamentos b ´asicos 9 Controladores de Memoria
Introducci ´on General Arquitectura 10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
¿Que ocurre durante las escrituras?
Una variable que est ´a en el cach ´e tambi ´en est ´a alojada en alguna direcci ´on de la DRAM.
Ambos valores deben ser iguales
Cuando el procesador la modifica hay varios modos de actuar
Write through el procesador escribe en la DRAM y el controlador cache refresca el cache con el dato actualizado
Write through buffered el procesador actualiza la SRAM cache, y el controlador cache luego actualiza la copia en memoria DRAM mientras el procesador contin ´ua ejecutando instrucciones y usando datos de la memoria cache
Copy back Se marcan las l´ıneas de la memoria cache cuando el procesador escribe en ellas. Luego en el momento de eliminar esa l´ınea del cach ´e el controlador cache deber ´a actualizar la copia de DRAM. Si el procesador realiza un miss mientras el controlador cache est ´a accediendo a la DRAM para actualizar el valor, deber ´a esperar hasta que controlador cache termine la actualizaci ´on para recibir desde este la habilitaci ´on de las l´ıneas de control para acceder a la DRAM.
Memoria Cache Coherencia de un cache
Coherencia en sistemas SMP
D A TA ADDRESS CONTROLBus del Sistema
Buffer Buffer Buffer
Procesador Memoria E/S CONTROL DATA ADDRESS Controlador Cache Memoria Cache DA TA ADDRESS CONTROL
Buffer Buffer Buffer
Procesador CONTROL DATA ADDRESS Controlador Cache Memoria Cache CONTROL CONTROL
Coherencia en sistemas SMP
D A TA ADDRESS CONTROLBus del Sistema
Buffer Buffer Buffer
Procesador Memoria E/S CONTROL DATA ADDRESS Controlador Cache Memoria Cache DA TA ADDRESS CONTROL
Buffer Buffer Buffer
Procesador CONTROL DATA ADDRESS Controlador Cache Memoria Cache CONTROL CONTROL SNOOP BUS SNOOP BUS
Memoria Cache Coherencia de un cache
Protocolo MESI
M - Modified : L´ınea presente solamente en ´este cache que vari ´o
respecto de su valor en memoria del sistema (dirty). Requiere write back hacia la memoria del sistema antes que otro procesador lea desde all´ı el dato (que ya no es v ´alido).
E – Exclusive L´ınea presente solo en esta cache, que coincide con la
copia en memoria principal (clean).
S – Shared L´ınea del cache presente y puede estar almacenada en
los caches de otros procesadores.
I – Invalid L´ınea de cache no es v ´alida.
Aplica a cache L1 de datos y L2/L3
Protocolo MESI
Invalid
Shared
ExclusiveModified
BR+BW PR+BR PR PR+PW PR/S BW BW PR/~S PW BR PW BW BR PWMemoria Cache Coherencia de un cache
Coherencia en sistemas SMP con MESI
D
A
TA
ADDRESS
CONTROL
Bus del Sistema
Buffer Buffer Buffer
Procesador Memoria E/S CONTROL DATA ADDRESS Controlador Cache Memoria Cache DA TA ADDRESS CONTROL
Buffer Buffer Buffer
Procesador CONTROL DATA ADDRESS Controlador Cache Memoria Cache CONTROL CONTROL SNOOP BUS SNOOP BUS Shared
Cache Multinivel
D A TA ADDRESS CONTROLProcesador
Cache
Level 2
CONTROL DATA ADDRESS Controlador Cache Cache Level1 CONTROL Bus Local Circuito IntegradoMemorias Din ´amicas Introducci ´on
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache4 Memorias Din ´amicas Introducci ´on
Organizaci ´on interna
5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency
6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM
7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos
8 Prococolo de acceso
Fundamentos b ´asicos
9 Controladores de Memoria
Introducci ´on General Arquitectura
10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Conceptos B ´asicos
I Es un elemento externo al chip de la CPU, a diferencia de las memorias est ´aticas, como las cache por ejemplo, que van generalmente en el mismo chip de la CPU,
I Por tal motivo se deben considerar en su dise ˜no los siguientes aspectos:
Pines No solo el pinout sino sus caracter´ısticas el ´ectricas
(inductancia, capacitancia, etc.)
Se ˜nalizaci ´on Handshake con el hardware controlador
Integridad de se ˜nal En funci ´on de la frecuencia de trabajo
Encapsulado Define la manufacturabilidad.
Clock y sincronizaci ´on Define criterios de montaje en el PCB y
adaptaciones el ´ectricas al bus
Timing Refresco, tiempo de acceso para lectura y escritura
I Si no se respetan estos aspectos se puede caer en dise ˜nos no ´optimos o no funcionales.
Memorias Din ´amicas Introducci ´on
En una PC o server...
Procesador Cache Primaria Cache Secundaria Bus del Cache Controlador de MemoriaBus del Host o Procesador North Bridge Chipset South Bridge Chipset Controlador de E/S Co-Procesador de Gráficos Controlador de Disco
Módulos de Memoria DRAM
Interfaz de Red Dispositivos de baja velocidad Teclado Mouse
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache4 Memorias Din ´amicas
Introducci ´on
Organizaci ´on interna
5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency
6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM
7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos
8 Prococolo de acceso
Fundamentos b ´asicos
9 Controladores de Memoria
Introducci ´on General Arquitectura
10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Memorias Din ´amicas Organizaci ´on interna
Organizaci ´on de una DRAM gen ´erica
I Es una memoria que implementa cada bit con un par transistor -capacitor.
I El t ´ermino din ´amica proviene del hecho de que al no
implementarse con transistores ideales las corrientes de fuga hacen que se pierda la carga del capacitor.
I Este hecho hace que deba se refrescada peri ´odicamente para que no se pierda la informaci ´on almacenada.
Organizaci ´on de una DRAM gen ´erica
I Es una memoria que implementa cada bit con un par transistor -capacitor.
I El t ´ermino din ´amica proviene del hecho de que al no
implementarse con transistores ideales las corrientes de fuga hacen que se pierda la carga del capacitor.
I Este hecho hace que deba se refrescada peri ´odicamente para que no se pierda la informaci ´on almacenada.
Memorias Din ´amicas Organizaci ´on interna
Organizaci ´on de una DRAM gen ´erica
I Es una memoria que implementa cada bit con un par transistor -capacitor.
I El t ´ermino din ´amica proviene del hecho de que al no
implementarse con transistores ideales las corrientes de fuga hacen que se pierda la carga del capacitor.
I Este hecho hace que deba se refrescada peri ´odicamente para que no se pierda la informaci ´on almacenada.
Organizaci ´on de una DRAM gen ´erica
I Es una memoria que implementa cada bit con un par transistor -capacitor.
I El t ´ermino din ´amica proviene del hecho de que al no
implementarse con transistores ideales las corrientes de fuga hacen que se pierda la carga del capacitor.
I Este hecho hace que deba se refrescada peri ´odicamente para que no se pierda la informaci ´on almacenada.
Memorias Din ´amicas Organizaci ´on interna
Organizaci ´on de una DRAM gen ´erica
DRAM Buffers de E/S de Datos Decodificador de Columna Amplificadores de Sensado Decodi fica dor de Fila Memory Array ... columnas ... ... .. fi las .. ... . Transistor CMOS Capacitor Word Line Bit Line Celda de almacenamiento y su acceso
Organizaci ´on de una DRAM gen ´erica
I Cada die de DRAM, contiene uno o varios arrays de nxm celdas. I Cada celda es un bit de almacenamiento (transistor + capacitor) I Cada array se organiza en filas (rows) y columnas (cols)
I Para acceder a cada bit debemos especificar fila y columna dentro del array que lo contiene.
I Los arrays dentro de cada celda pueden trabajar completamente asociados, completamente disociados, o en configuraciones intermedias entre las opciones anteriores.
I Si trabajan en forma asociada, todos los arrays transmiten o reciben el bit correspondiente al valor de fila y columna,
proveyendo acceso a un n ´umero de tantos bits como arrays haya en el die. Por ejemplo una x4 DRAM (se dice por cuatro), entrega un nibble por cada valor de fila y columna que se le provee.
Memorias Din ´amicas Organizaci ´on interna
Organizaci ´on de una DRAM gen ´erica
Buffers de
E/S de DatosBuffers de Amplificadores de Sensado E/S de Datos Amplificadores de Sensado
Memory Array Memory Array Memory Array Buffers de
E/S de DatosBuffers de Amplificadores de Sensado E/S de Datos Amplificadores de Sensado
Memory Array Buffers de
E/S de DatosBuffers de Amplificadores de Sensado E/S de Datos Amplificadores de Sensado
Memory Array Memory Array Memory Array Buffers de
E/S de Datos Amplificadores de Sensado 2xDRAM Buffers de E/S de Datos Decodificador de Columna Amplificadores de Sensado Decodi fica dor de Fila ... Bit Lines ... ... .. fi las .. ... . Memory Array Memory Array Buffers de
E/S de Datos Amplificadores de Sensado 4xDRAM Buffers de E/S de Datos Decodificador de Columna Amplificadores de Sensado Decodi fica dor de Fila ... Bit Lines ... ... .. fi las .. ... . Memory Array Buffers de
E/S de DatosBuffers de Amplificadores de Sensado E/S de Datos Amplificadores de Sensado
Memory Array Memory Array Memory Array Buffers de
E/S de Datos Amplificadores de Sensado 8xDRAM Buffers de E/S de Datos Decodificador de Columna Amplificadores de Sensado Decodi fica dor de Fila ... Bit Lines ... ... .. fi las .. ... . Memory Array
I Las configuraciones habituales para sistemas de media capacidad son x2, x4, y x8.
I Para las PCs actuales y servidores de mayor capacidad en los 90 comenzaron a producirse x16 y x32
I Los arrays de la figura anterior conforman bancos que operar ´an independientemente de otros bancos.
Bancos de DRAM
I Operan en forma independiente como set de arrays con algunas restricciones:
I Debe ser activados, precargados, le´ıdos, etc. al mismo tiempo que otros bancos, est ´en todos dentro del mismo dispositivo DRAM o en dispositivos diferentes.
I El uso de bancos independientes permite aumentar la velocidad de acceso a estos dispositivos (la cual es mas lenta que en el caso de memorias est ´aticas)
I Entrelazar los accesos a bancos diferentes de memoria no hace mas que acelerar la velocidad de acceso a los datos
I Esto se consigue con hardware de mediaci ´on entre la memoria y el procesador.
I Si los bancos tienen un tiempo de acceso e 10 nseg., leer en forma entrelazada dos bancos da un acceso de 5 nseg. Si se hace reound robin con 4 bancos, el tiempo de acceso percibido por el procesador es de 2,5 nseg.
Memorias Din ´amicas Organizaci ´on interna
Dual In Module Memory: DIMM
I En sistemas que requieren alta capacidad de almacenamiento las DRAM Se organizan en DIMM’s.
I Los dispositivos DRAM se montan a ambos lados del PCB I Cada DIMM puede pensarse como un banco independiente. I A su vez, cada dispositivo DRAM presente en el DIMM se puede
organizar en bancos independientes.
I Para diferenciar esta situaci ´on se introdujo el concepto de rango (“rank”) para diferenciar la operaci ´on independiente a nivel de DIMMM de la operaci ´on independiente a nivel de banco interno.
Organizaci ´on general de un DIMM
Memory Array Memory Array Memory Array Memory Array MUX I/OUn dispositivo DRAM con 8 BANCOS internos.
Los 8 BANCOS se conectan a un bus de E/S compartido
Un DIMM tiene uno o dos RANGOS (según su configuración)
Un BANCO de 4 ARRAYS
Un BANCO de DRAM consta de 2 n ARRAYSdependiendo de las características de la parte. En este ejemplo vemos 4 ARRAYS lo cual indica una parte x4
Controlador de Memoria Controlador de Memoria
DIMM0 DIMM1 DIMM2
VISTA LATERAL VISTA SUPERIOR BUS PISTAS RANGO 0, RANGO 1 o RANGO 0, RANGO 1 Conectores Rango
Es un set de dispositivos DRAM (todos los de un DIMM o una parte de ellos), que operan en forma conjunta.
Memorias Din ´amicas Organizaci ´on interna
Organizaci ´on general de un DIMM
Memory Array Memory Array Memory Array Memory Array MUX I/O
Un dispositivo DRAM con 8 BANCOS internos.
Los 8 BANCOS se conectan a un bus de E/S compartido
Un DIMM tiene uno o dos RANGOS (según su configuración)
Un BANCO de 4 ARRAYS
Un BANCO de DRAM consta de 2 n ARRAYSdependiendo de las características de la parte. En este ejemplo vemos 4 ARRAYS lo cual indica una parte x4
Controlador de Memoria Controlador de Memoria
DIMM0 DIMM1 DIMM2
VISTA LATERAL VISTA SUPERIOR BUS PISTAS RANGO 0, RANGO 1 o RANGO 0, RANGO 1 Conectores Banco
Cada dispositivo DRAM implementa internamente uno o mas bancos independientes que operan de forma independiente entre s´ı.
Organizaci ´on general de un DIMM
Memory Array Memory Array Memory Array Memory Array MUX I/OUn dispositivo DRAM con 8 BANCOS internos.
Los 8 BANCOS se conectan a un bus de E/S compartido
Un DIMM tiene uno o dos RANGOS (según su configuración)
Un BANCO de 4 ARRAYS
Un BANCO de DRAM consta de 2 n ARRAYSdependiendo de las características de la parte. En este ejemplo vemos 4 ARRAYS lo cual indica una parte x4
Controlador de Memoria Controlador de Memoria
DIMM0 DIMM1 DIMM2
VISTA LATERAL VISTA SUPERIOR BUS PISTAS RANGO 0, RANGO 1 o RANGO 0, RANGO 1 Conectores Array
Cada banco de un dispositivo DRAM se compone de un conjunto de arrays esclavos, cuyo n ´umero determina el ancho del dispositivo DRAM (x2, x4, etc).
Memorias Din ´amicas Organizaci ´on interna
Organizaci ´on general de un DIMM
Memory Array Memory Array Memory Array Memory Array MUX I/O
Un dispositivo DRAM con 8 BANCOS internos.
Los 8 BANCOS se conectan a un bus de E/S compartido
Un DIMM tiene uno o dos RANGOS (según su configuración)
Un BANCO de 4 ARRAYS
Un BANCO de DRAM consta de 2 n ARRAYSdependiendo de las características de la parte. En este ejemplo vemos 4 ARRAYS lo cual indica una parte x4
Controlador de Memoria Controlador de Memoria
DIMM0 DIMM1 DIMM2
VISTA LATERAL VISTA SUPERIOR BUS PISTAS RANGO 0, RANGO 1 o RANGO 0, RANGO 1 Conectores
Concurrencia = paralelismo = Bandwidth
Accesos concurrentes a bancos y rangos con un “request pipeline” aumenta el ancho de banda, ya que operan en paralelo m ´ultiples DRAMs a nivel de rango y m ´ultiples arrays a nivel de banco.
Dentro del DRAM Device
DRAM Buffers de E/S de Datos Decodificador de Columna Amplificadores de Sensado Decodi fica dor de Fila Memory Array ... columnas ... ... .. fi las .. ... . Transistor CMOS Capacitor Word Line Bit Line Celda de almacenamiento y su accesoI Recordemos que cada capacitor se ubica en la intersecci ´on entre un wordline
(decodificaci ´on de la fila) y la bitline (decodificaci ´on de la columna).
I Se conecta al bitline mediante un transistor controlado por la wordline.
I En los circuitos l ´ogicos un transistor es un switch.
Por eso cuando la tensi ´on el ´ectrica en el wordline es alta, todos los transistores cuyo gate est ´a conectado a esa wordline se ponen en saturaci ´on y se asimila a un switch cerrado conectando al capacitor al bitline.
I En las escalas actuales de integraci ´on la cantidad de electrones que puede almacenar el capacitor es min ´uscula comparada con las caracter´ısticas f´ısicas del bitline. Por lo tanto se requiere un conjunto de amplificadores de sensado. capaces de detectar los valores el ´ectricos almacenados en los capacitores cuyas bitlines han sido habilitadas por la wordline decodificada a partir del valor de fila (row) enviado por el controlador de DRAM.
Memorias Din ´amicas Organizaci ´on interna
Dentro del DRAM Device
I El amplificador de sensado, en principio, precarga las bitlines con un valor el ´ectrico intermedio entre ’0’ y ’1’.
I Al habilitarse una wordline, el capacitor de la bitline habilitada produce una alteraci ´on muy peque ˜na en el valor de tensi ´on precargado, en mas o en menos dependiendo del estado de su carga.
I Esa diferencia es muy peque ˜na, pero el amplificador de sensado est ´a dise ˜nado para detectarla.
I En funci ´on del sentido de la variaci ´on de tensi ´on detectada el amplificador lleva la bitline a un ’0’ o a un ’1’.
I Este pull a ’0’ o a ’1’ por parte del amplificador de sensado, por otra parte restituye el valor de carga de los capacitores cuya carga se hab´ıa perdido al modificar el nivel de tensi ´on precargada en cada bitline.
El amplificador de sensado
Enable
Inversor
Q
Q
Memorias Din ´amicas Organizaci ´on interna
Estados estables del amplificador de sensado
1 0 1 VDD 0 VDD
'0' Lógico
'1' Lógico
Operaci ´on del amplificador de sensado
0
V1
V2
V1> V 2
Memorias Din ´amicas Organizaci ´on interna
Operaci ´on del amplificador de sensado
1
V1
V2
Operaci ´on del amplificador de sensado
1
VDD
0
V1> V 2
Memorias Din ´amicas Organizaci ´on interna
El capacitor mas el amplificador de sensado
1 0 1 VDD 0 VDD '0' Lógico '1' Lógico
Operaci ´on de la celda
1/
2V
DD0
1/
2V
DDMemorias Din ´amicas Organizaci ´on interna
Operaci ´on de la celda
1
/
2V
DD0
1
/
2V
DDOperaci ´on de la celda
1/
2V
DD0
1/
2V
DDMemorias Din ´amicas Organizaci ´on interna
Operaci ´on de la celda
1
/
2V
DD0
1/
2V
DD+ d
Operaci ´on de la celda
1/
2V
DD1
1/
2V
DD+ d
Memorias Din ´amicas Organizaci ´on interna
Operaci ´on de la celda
V
DD1
Operaci ´on de la celda
V
DD1
0
Memorias Din ´amicas Organizaci ´on interna
Operaci ´on de la celda
Decodi
fica
dor
Operaci ´on de la celda
Decodi
fica
dor
de FIla
Memorias Din ´amicas Organizaci ´on interna
Operaci ´on de la celda
Decodi
fica
dor
Operaci ´on de la celda
Decodi fica dor de FIla EnableMemorias Din ´amicas Organizaci ´on interna
Operaci ´on de la celda
Decodi
fica
dor
de FIla
Operaci ´on de la celda
Decodi
fica
dor
de FIla
EnableArray de Amplificadores de sensado (Row Buffer)
Memorias Din ´amicas Organizaci ´on interna
Operaci ´on de la celda
Decodi fica dor de FIla Enable Array de Celdas
Array de Amplificadores de sensado (Row Buffer)
Operaci ´on del amplificador de sensado
Memorias Din ´amicas Organizaci ´on interna
Operaci ´on del amplificador de sensado
Memorias Din ´amicas Organizaci ´on interna
Operaci ´on del amplificador de sensado
Memorias Din ´amicas Organizaci ´on interna
Acceso
I El controlador de memoria a partir de la direcci ´on f´ısica recibida, decodifica el rango de memoria al que se debe dirigir el requerimiento, el banco dentro de ese rango y los valores de fila y columna dentro del banco.
I Con los valores de fila y columna se componen larow address y la column address.
I Una vez determinado el banco se genera un grupo de bits adicionales a la direcci ´on.
I Con la determinaci ´on del rango el controlador genera el valor a colocar en el bus de chip select .
I Al recibir la informaci ´on de direcciones el DRAM device precarga (es decir, pullea mediante sus amplificadores de sensado a un valor intermedio entre ’0’ y ’1’) las bitlines del banco seleccionado.
Memorias Din ´amicas Organizaci ´on interna
Acceso
I El DRAM Device env´ıa la fila entera (cientos de celdas) al array de
amplificadores de sensado, que detectan las diferencias de tensi ´on aplicada por el capacitor conectado a cada bitline a trav ´es del transistor, y fuerzan (“pull”) el valor l ´ogico definitivo. Esto lleva en las tecnolog´ıas actuales t´ıpicamente decenas de nanosegundos.
I Luego de esto se activa la se ˜nal en el pin CAS (Coloumn Address Strobe, para activar la wordline deseada del banco seleccionado, lo cual selecciona a los amplificadores de sensado que deben ser conectados al buffer de salida para finalmente ser derivados al bus de datos.
I Cuando el controlador de memoria recibe los datos los retransmite al procesador.
I Una vez precargada la bitline se debe activar la fila correspondiente en el banco seleccionado del rango seleccionado. Para ello se activa el chip select que selecciona los DRAM devices correspondientes de acuerdo con la informaci ´on puesta en el bus,y se activa la fila seleccionada con larow address activando el terminal RAS (Row Address Strobe) del DRAM Device.
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache4 Memorias Din ´amicas
Introducci ´on Organizaci ´on interna
5 Arquitecturas DRAM Evoluci ´on
Throughput + Latency
6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM
7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos
8 Prococolo de acceso
Fundamentos b ´asicos
9 Controladores de Memoria
Introducci ´on General Arquitectura
10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Arquitecturas DRAM Evoluci ´on
DRAMs: un cuello de botella para la performance
I En la segunda mitad de los 80’ la velocidad de los
microprocesadores comenz ´o a despegarse de la velocidad de las memorias y hacia inicios de los 90’ ´estas se transforman en un cuello de botella.
I Comienza la etapa de interfaz procesador-memoria, adem ´as de los caches de SRAM.
I Las interfaces evolucionan, pero la arquitectura interna de los DRAM Devices permanece inalterada.
I Se plantearon dos caminos respecto del uso o no del clock. I En las DRAM asincr ´onicas no hay una se ˜nal de clock del sistema
conectada al DRAM device, sino que es el controlador de memoria quien determina mediante handshake a trav ´es del bus las acciones que deben desarrollarse dentro del DRAM device. I Las DRAM sincr ´onicas trabajan de acuerdo a la se ˜nal de clock del
Evoluci ´on de las tecnolog´ıas DRAM
Arquitecturas DRAM Throughput + Latency
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache4 Memorias Din ´amicas
Introducci ´on Organizaci ´on interna
5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency
6 Standards
Estado del arte JEDEC SDRAM JEDEC DDR SDRAM
7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos
8 Prococolo de acceso
Fundamentos b ´asicos
9 Controladores de Memoria
Introducci ´on General Arquitectura
10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Tecnolog´ıas orientadas al Throughput
I Clocked DRAM: DRAM original que se utiliz ´o en los 60’s y 70’s.
I DRAM Asincr ´onica: Se introducen en los 70’s. Es la que
estamos habituados a usar en peque ˜nos sistemas. Responde al mecanismo de acceso descripto, pero manejada directo por el procesador con l ´ogica externa. CAS y RAS se deb´ıan aplicar en forma simult ´anea.
I FPM (Fast Page Mode): Es la primer evoluci ´on que bufferea la
informaci ´on de fila, de modo de leer sucesivas columnas.
Implementa un cache de facto en los amplificadores de sensado. Esto acelera los accesos sucesivos a la misma fila, cambiando solo CAS mientras que RAS permanece activa. La lectura de columnas sucesivas comienza a considerarse en base al principio de vecindad.
Arquitecturas DRAM Throughput + Latency
Tecnolog´ıas orientadas al Throughput
Timing DRAM Asincr ´onica
Tecnolog´ıas orientadas al Throughput
I EDO DRAM (Extended Data Out): Agregando unos pocos
transistores al driver de salida de un FPM, implementa un latch entre los amplificadores de sensado y los pines de salida de datos. As´ı mantiene la salida permitiendo retirar CAS mas r ´apidamente, y que el array de memoria se precargue antes. Adem ´as el latch naturalmente extiende el tiempo de validez de la salida (EDO). Mejora en un 15 % la velocidad de acceso respecto de FPM
I BEDO DRAM (Bursted EDO): Fue r ´apidamente reemplazada por
la siguiente generaci ´on pero marca una nueva generaci ´on de memorias. Incluye un contador que incrementa el n ´umero de columna con la pulsaci ´on de la se ˜nal CAS. De este modo permite leer r ´afagas (burst) columnas consecutivas sin necesidad de colocar la direcci ´on de columna. Nuevamente pone de relevancia la validez del principio de vecindad.
Arquitecturas DRAM Throughput + Latency
Tecnolog´ıas orientadas al Throughput
Timing DRAM Extended Data Out
Tecnolog´ıas orientadas al Throughput
I IBM High Speed Toggle Mode DRAM: A fines de los 80’s IBM
dise ˜n ´o y fabric ´o una interfaz de memoria de alta velocidad. La present ´o en la International Solid Circuit Conference en Febrero de 1990, y al JEDEC en Setiembre del 90. Utilizaba ambos flancos de la se ˜nal de strobe. Como la frecuencia de esta se ˜nal era sumamente alta para ese momento, se conmutaba (Toggle) entre dos buffers de salida por cada flanco de strobe.
Arquitecturas DRAM Throughput + Latency
Tecnolog´ıas orientadas al Throughput
I SDRAM Synchronous DRAM: Todas las generaciones
anteriores eran asincr ´onicas. Sincronizar hace posible aplicar CAS y RAS al mismo tiempo, ya que se dispone de latches internos que aseguran la informaci ´on que se aplica a la matriz. Esto deriva en que el tiempo de acceso es mas predecible, por independizar el acceso cada dispositivo DRAM del resto
(de-skewing), y minimiza el tiempo de conmutaci ´on de un DIMM al pr ´oximo (cuando se tienen varios DIMMs). Conserva el burst mode introducido por BEDO. Los SDRAM devices tienen un registro para programar el n ´umeros de accesos burst. Esto evita enviar un CAS por cada lectura reduciendo el ancho de banda de bus dedicado a handshake aumentando el porcentaje relativo dedicado a transferir datos.
Tecnolog´ıas orientadas al Throughput
Timing DRAM Sincr ´onica (SDRAM)
Arquitecturas DRAM Throughput + Latency
Interfaces orientadas al Throughput
I DDR-SDRAM Double Data Rate SDRAM: Es el equivalente
moderno al IBM Toggle Mode, en cuanto a que se utilizan ambos flancos de la se ˜nal para transferir datos. En este caso al ser una memoria Sincr ´onica, se utilizan ambos flancos de la se ˜nal de clock. En las restantes caracter´ısticas es similar a la SDRAM: utilizan la misma tecnolog´ıa de se ˜nalizaci ´on, la misma
especificaci ´on de interfaz, y los mismos pinouts en los DIMM carriers. Sin embargo tienen el doble de velocidad de
transferencia que las SDRAM.
Durante las escrituras se prescinde de la se ˜nal de clock y se utiliza una se ˜nal DQS en cuyos flancos ascendente y
descendente se escriben los datos. Esto contradice lo estipulado por JEDEC para SDRAMs y hace que las DDR se asimilen al standard IBM Toggle.
Interfaces orientadas al Throughput
Timing Double Data Rate SDRAM
Standards Estado del arte
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache4 Memorias Din ´amicas
Introducci ´on Organizaci ´on interna
5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency
6 Standards Estado del arte
JEDEC SDRAM JEDEC DDR SDRAM
7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos
8 Prococolo de acceso
Fundamentos b ´asicos
9 Controladores de Memoria
Introducci ´on General Arquitectura
10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
JEDEC
I Las DRAM actualmente son un comodity
I Cualquier DRAM o DIMM actual tiene especificaciones
equivalentes: ancho de bus, capacidad, velocidad, interfaz, por citar las mas importantes.
I Esta compatibilidad est ´a gobernada por JEDEC (Joint Electron Device Engineering Council)
I Hemos mencionado ya los cuatro buses independientes: data, address, control, y chip select.
Standards JEDEC SDRAM
Temario
1 El sistema de Memoria Jerarqu´ıa de Memorias Principio de Vecindad o Lacalidad 2 Tecnolog´ıas de Memoria Clasificaci ´on de memorias Memorias y velocidad del Procesador 3 Memoria Cache Principio de Funcionamiento Hardware dedicado = + complejidad organizaci ´on de un cache Coherencia de un cache4 Memorias Din ´amicas
Introducci ´on Organizaci ´on interna
5 Arquitecturas DRAM
Evoluci ´on
Throughput + Latency
6 Standards
Estado del arte
JEDEC SDRAM
JEDEC DDR SDRAM
7 Configuraci ´on
Configuraci ´on del DRAM Device
Entrada Salida de Datos
8 Prococolo de acceso
Fundamentos b ´asicos
9 Controladores de Memoria
Introducci ´on General Arquitectura
10 Casos Pr ´acticos
Beagle Bone Black Memorias DDR en la BBB
Controlador de DDRn SDRAM en la BBB
Est ´andares: JEDEC
I Entre otros aspectos se definen los buses de una organizaci ´on de memoria en data, address, control, y chip select.
I El data bus es por lo general el mas ancho, por razones de optimizaci ´on del ancho de banda. T´ıpicamente es de 64 bits aunque en sistemas de alto rendimiento se encuentran data buses mas anchos (hasta 256 bits)
DRAM DRAM DRAM DRAM DRAM DRAM DRAM DRAM Bus de Address y Comandos Bus de Address y Comandos
Bus de Datos Bus de Datos
Chip Select 1 Chip Select 2
Controlador de Memoria
DIMM 1 DIMM 2