• No se han encontrado resultados

Arquitectura de Procesadores

N/A
N/A
Protected

Academic year: 2021

Share "Arquitectura de Procesadores"

Copied!
190
0
0

Texto completo

(1)

Arquitectura de Procesadores

El subsistema de Memoria

Alejandro Furfaro

Agosto de 2015

(2)

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 ´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

(3)

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

(4)

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

(5)

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 ´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

(6)

El sistema de Memoria Jerarqu´ıa de Memorias

(7)

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 ´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

(8)

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.

(9)

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 ´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

(10)

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

(11)

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.

(12)

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.

(13)

Memorias din ´amicas

RAS CAS c R/#W Data Refresh

Al 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.

(14)

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

(15)

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 ´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

(16)

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

(17)

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.

(18)

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

(19)

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.

(20)

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

(21)

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.

(22)

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

(23)

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.

(24)

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 ´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

(25)

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.

(26)

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.

(27)

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.

(28)

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.

(29)

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.

(30)

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

(31)

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 ´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

(32)

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

(33)

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

(34)

Memoria Cache Hardware dedicado = + complejidad

El Controlador Cache

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 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

(35)

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 ´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

(36)

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)

(37)

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

(38)

Memoria Cache organizaci ´on de un cache

Sistema Cache de Mapeo Directo

(39)

Sistema Cache de Mapeo Directo

jbits n bits ln bits b bits

(40)

Memoria Cache organizaci ´on de un cache

Sistema Cache de Mapeo Directo

jbits n bits ln bits b bits

(41)

Sistema Cache de Mapeo Directo

jbits n bits ln bits b bits

=

(42)

Memoria Cache organizaci ´on de un cache

Sistema Cache de Mapeo Directo

jbits n bits ln bits b bits

(43)

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

(44)

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 cache

4 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

(45)

¿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.

(46)

Memoria Cache Coherencia de un cache

Coherencia en sistemas SMP

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

(47)

Coherencia en sistemas SMP

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

(48)

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

(49)

Protocolo MESI

Invalid

Shared

Exclusive

Modified

BR+BW PR+BR PR PR+PW PR/S BW BW PR/~S PW BR PW BW BR PW

(50)

Memoria 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

(51)

Cache Multinivel

D A TA ADDRESS CONTROL

Procesador

Cache

Level 2

CONTROL DATA ADDRESS Controlador Cache Cache Level1 CONTROL Bus Local Circuito Integrado

(52)

Memorias 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 cache

4 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

(53)

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.

(54)

Memorias Din ´amicas Introducci ´on

En una PC o server...

Procesador Cache Primaria Cache Secundaria Bus del Cache Controlador de Memoria

Bus 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

(55)

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 ´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

(56)

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.

(57)

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.

(58)

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.

(59)

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.

(60)

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

(61)

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.

(62)

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.

(63)

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.

(64)

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.

(65)

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 Rango

Es un set de dispositivos DRAM (todos los de un DIMM o una parte de ellos), que operan en forma conjunta.

(66)

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´ı.

(67)

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 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).

(68)

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.

(69)

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 acceso

I 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.

(70)

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.

(71)

El amplificador de sensado

Enable

Inversor

Q

Q

(72)

Memorias Din ´amicas Organizaci ´on interna

Estados estables del amplificador de sensado

1 0 1 VDD 0 VDD

'0' Lógico

'1' Lógico

(73)

Operaci ´on del amplificador de sensado

0

V1

V2

V1> V 2

(74)

Memorias Din ´amicas Organizaci ´on interna

Operaci ´on del amplificador de sensado

1

V1

V2

(75)

Operaci ´on del amplificador de sensado

1

VDD

0

V1> V 2

(76)

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

(77)

Operaci ´on de la celda

1

/

2

V

DD

0

1

/

2

V

DD

(78)

Memorias Din ´amicas Organizaci ´on interna

Operaci ´on de la celda

1

/

2

V

DD

0

1

/

2

V

DD

(79)

Operaci ´on de la celda

1

/

2

V

DD

0

1

/

2

V

DD

(80)

Memorias Din ´amicas Organizaci ´on interna

Operaci ´on de la celda

1

/

2

V

DD

0

1

/

2

V

DD

+ d

(81)

Operaci ´on de la celda

1

/

2

V

DD

1

1

/

2

V

DD

+ d

(82)

Memorias Din ´amicas Organizaci ´on interna

Operaci ´on de la celda

V

DD

1

(83)

Operaci ´on de la celda

V

DD

1

0

(84)

Memorias Din ´amicas Organizaci ´on interna

Operaci ´on de la celda

Decodi

fica

dor

(85)

Operaci ´on de la celda

Decodi

fica

dor

de FIla

(86)

Memorias Din ´amicas Organizaci ´on interna

Operaci ´on de la celda

Decodi

fica

dor

(87)

Operaci ´on de la celda

Decodi fica dor de FIla Enable

(88)

Memorias Din ´amicas Organizaci ´on interna

Operaci ´on de la celda

Decodi

fica

dor

de FIla

(89)

Operaci ´on de la celda

Decodi

fica

dor

de FIla

EnableArray de Amplificadores de sensado (Row Buffer)

(90)

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)

(91)

Operaci ´on del amplificador de sensado

(92)

Memorias Din ´amicas Organizaci ´on interna

(93)

Operaci ´on del amplificador de sensado

(94)

Memorias Din ´amicas Organizaci ´on interna

(95)

Operaci ´on del amplificador de sensado

(96)

Memorias Din ´amicas Organizaci ´on interna

(97)

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.

(98)

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.

(99)

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 ´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

(100)

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

(101)

Evoluci ´on de las tecnolog´ıas DRAM

(102)

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 cache

4 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

(103)

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.

(104)

Arquitecturas DRAM Throughput + Latency

Tecnolog´ıas orientadas al Throughput

Timing DRAM Asincr ´onica

(105)

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.

(106)

Arquitecturas DRAM Throughput + Latency

Tecnolog´ıas orientadas al Throughput

Timing DRAM Extended Data Out

(107)

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.

(108)

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.

(109)

Tecnolog´ıas orientadas al Throughput

Timing DRAM Sincr ´onica (SDRAM)

(110)

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.

(111)

Interfaces orientadas al Throughput

Timing Double Data Rate SDRAM

(112)

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 cache

4 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

(113)

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.

(114)

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 cache

4 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

(115)

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

Referencias

Documento similar