Está en la página 1de 47

MEMORIA

Arquitectura de Computadores I 3er tema

Introduccin
Almacn: programa+datos Problema:
Velocidad entre CPU y el sistema de memoria Necesidad de alta capacidad de almacenamiento con bajo tiempo de acceso

Objetivos del tema:


Acelerar el acceso al sistema de memoria
estructura de la memoria: interconexiones entre mdulos jerarqua de memoria

Proceso de traduccin: @lgica / @fsica


Memoria (ACI) 2

Tiempos de una memoria


Tiempo de acceso o tiempo de respuesta:
Tiempo que transcurre desde el envo a la memoria de la direccin de una celda hasta la obtencin del dato

Tiempo de ciclo:
Tiempo que transcurre desde que la memoria acepta una peticin hasta que queda lista para aceptar la siguiente Tiempos condicionados a la tecnologa de la memoria y a la mejora del protocolo de dilogo memoria/CPU
Memoria (ACI) 3

Jerarqua de memoria
Memoria ideal:
capacidad de almacenamiento ilimitada tiempo de acceso nulo

En la realidad
CPU registros L1 Cache L2 Cache

jerarqua de memoria:
Memoria externa MP

coste

+
Memoria (ACI)

+ -

tiempo acceso tamao


4

Jerarqua de memoria
Principio de localidad:
Procesador Registros L1 Cache
Tipo de memoria Registros Tecnologa SRAM SRAM SRAM DRAM Disco duro CD-ROM Cinta Tamao 512 bytes 32/64 KB 512KB / 2MB 1 GB 1 TB GB GB/TB Tiempo acceso 0.25/0.5 ns 1 ns < 25 ns 50 /200 ns 10 ms 300 ms seg-min

espacial y temporal

L2 Cache

L1 Cache L2 Cache

Memoria principal

Memoria principal Disco magntico

Disco

Disco ptico Cinta magntica

Cinta Magntica

Discos pticos

Memoria (ACI)

Tipos de Memoria
RAM Dinmica (DRAM): Dynamic Random Access Memory
Ncleo bsico: condensador Alta densidad, bajo coste Memoria principal Necesita refrescar la informacin, elevado Tacceso

RAM Esttica (SRAM): Static Random Access Memory


Ncleo bsico: flip-flop Baja densidad, alto coste Memoria cache No necesita refresco, menor Tacceso (6/7 veces menor)
Memoria (ACI) 6

Tipos de Memoria
Memorias asociativas (CAM, Content-addresable memory):
SRAM con acceso por contenido Bsqueda en paralelo hardware complejo y caro Utilizacin: TLB/estructura interna cache
B
p

RM
p

dat RD WR

CAM
SEL

U.C.

n
7

Memoria (ACI)

Tipos de Memoria
ROM (Read Only Memory): [120/200ns]
Memoria no voltil BIOS y software de arranque Distintos tipos: +PROM (Programmable Read Only Memory)
ROM no borrable

+EPROM (Erasable Programmable Read Only Memory)


ROM borrable: luz ultravioleta, chip completo

+EEPROM (Electrically Erasable Programmable ROM)


ROM borrable: elctricamente, actualizable a nivel de byte

+FLASH
Densidad de EPROM, borrable elctrico de EEPROM Borrable por bloques proceso de borrado rpido
Memoria (ACI) 8

Sistema de memoria
Estructura de la memoria:
Direccin, posicin, contenido, bus @, bus datos, bus control Palabra del procesador (32, 64 bits)

Direccionamiento:
Byte: bus @ direcciona todos los bytes de memoria Palabra: bus @ slo direcciona palabras Normalmente: byte
palabra = @ fsica div tamao de palabra (byte) byte = @ fsica mod tamao de palabra (byte) palabra
Memoria (ACI)

byte

@ fsica (byte)
9

Conexin memoria-procesador:
n CPU w datos datos w @ p n @ p MEM

Sistema de memoria

Mapa de memoria del procesador:


espacio direccionable bus direcciones n bits
0

2n posiciones mximo
2p posiciones de memoria fsica

. . . . .

0 MEM

. .

Utilizado

2p-1
Disponible para futuras ampliaciones
Memoria (ACI)

2n-1

10

Mapa de memoria:
DIRECCIONES
DECIMAL

MAPA DE MEMORIA
FSICO

HEXADECIMAL FUNCIONAL

8.191 7.168 7.167 6.144 6.143 5.120 5.119 4.096 4.095 3.072 3.071 2.048 2.047 1.024 1.023 256 255 0

1FFFH 1C00H 1BFFH 1800H 17FFH 1400H 13FFH 1000H 0FFFH 0C00H 0BFFH 0800H 07FFH 0400H 03FFH 0100H 00FFH 0000H

ROM con aplicaciones RAM del monitor LIBRE ROM perifricos LIBRE RAM para programas RAM para la pila LIBRE ROM de arranque

Pastilla 5 ROM 1Kx8 Pastilla 4 RAM 1Kx8

Perifricos

Pastilla 3 RAM 1Kx8 Pastilla 2 RAM 1Kx8

Funcional: indica el uso que el sistema hace de cada una de las posiciones de memoria Fsico (hardware): indica qu chip de memoria o dispositivo fsico contiene cada una de las direcciones

Pastilla 1 ROM 256x8

Sistema de memoria
11

Memoria (ACI)

Memoria principal
Construccin fsica de la memoria:
Tamao de mem. principal tamao chips comerciales Expansin de los chips de memoria

Expansin en anchura (anchura de palabra): Cmemoria = Cchip

Achip Achip Achip

Amemoria # chips necesarios = Achip


C: capacidad (nmero de palabras) A: anchura de la palabra
Memoria (ACI) 12

Amemoria

Memoria principal
Expansin en longitud (nmero de palabras, capacidad): Cmemoria Cchip Cchip Cchip

Cmemoria # chips necesarios = Cchip

Amemoria = Achip Expansin en anchura y longitud:


Achip Achip Achip

Cchip Cchip Cchip

Cmemoria

Achip Achip Achip Achip Achip Achip

Amemoria Cmemoria # chips = Achip Cchip


13

Amemoria

Memoria (ACI)

Conexiones entre mdulos


Objetivo: expansin en longitud
Mdulos de N bytes memoria de M bytes Minimizar el tiempo de acceso a memoria

Opciones:
Mdulos consecutivos Mdulos entrelazados Bancos consecutivos de mdulos entrelazados
Memoria (ACI) 14

Mdulos consecutivos
Estructura: palabras consecutivas en el mismo mdulo Componentes de la @fsica:
palabra mdulo @interna byte @fsica (byte)

palabra = @fsica div tamao de palabra (byte) mdulo = palabra div tamao de mdulo (palabras) @ interna= palabra mod tamao de mdulo (palabras)

Problema: accesos secuenciales


no sigue el comportamiento de los programas
Memoria (ACI) 15

Mdulos Consecutivos
mdulo @interna byte

Direccin fsica (byte) n

m
CS 2 -1
m

@ CS i i +1 i

@ CS i

. . . .
1 0

i +1

...

i +1

Mdulo 0 Buffer 0

Mdulo 1 Buffer 1

Mdulo 2m-1 Buffer 2m-1

DATOS CONTROL

Mdulos entrelazados
Estructura:
palabras consecutivas en mdulos consecutivos

Componentes de la @fsica:
palabra @interna mdulo byte @ fsica (byte)

palabra = @fsica div tamao de palabra (byte) mdulo = palabra mod nmero de mdulos (n) @interna = palabra div nmero de mdulos

Ventaja: 1 acceso n palabras


se considera el comportamiento de los programas
Memoria (ACI) 17

Mdulos Entrelazados
@interna mdulo byte

Direccin fsica (byte) n


@ i @ i +1 @

m
Mdulo 0 Buffer 0 Mdulo 1 Buffer 1

...
Mdulo 2m-1
Buffer 2m-1

. . .

2m-1

DATOS

Bancos consecutivos de mdulos entrelazados


Estructura:
los mdulos se reparten en bancos consecutivos dentro de un banco se entrelazan los mdulos

Componentes de la @fsica:
palabra banco @interna mdulo byte @ fsica (byte)

palabra = @fsica div tamao de palabra (byte)


banco = (palabra div nmero de mdulos) div tamao del mdulo (palabras)

mdulo = palabra mod nmero de mdulos


@interna = (palabra div nmero de mdulos) mod tamao del mdulo (palabras)
Memoria (ACI) 19

Bancos consecutivos de mdulos entrelazados


banco @interna mdulo byte

Direccin fsica (byte) n


CS @ CS i+1 Mdulo 1 Buffer 1 @ CS CS i+1 Mdulo 1 Buffer 1 @

DATOS

m
@

c
2c-1

CS i

... ...

i+2m Mdulo 2m-1 Buffer 2m-1 @

. . .
0

Mdulo 0 Buffer 0 @ CS i Mdulo 0 Buffer 0

... ...

i+2m Mdulo 2m-1 Buffer 2m-1

Segmentacin/Paginacin
Objetivo:
Cargar un programa en cualquier @fsica
CPU direcciones lgicas

Aprovechar mejor la memoria


C A B C1 C2 A C1 B C2

Proceso de traduccin: @lgicas @fsicas


Memoria (ACI) 21

Segmentacin
El programa se divide en entidades lgicas: pila, datos, cdigo, etc. segmentos Segmentos de distinto tamao El cargador los carga en memoria, cada uno a partir de una direccin de inicio (@base) Direccin lgica:
segmento desplazamiento
Memoria (ACI) 22

Segmentacin
CPU @lgica segmento despla.
(tamao de segmento)

MP @fsica s0
@s2 @s0

+ s
(#segmentos)

s2
@s3

s0 s3

s1 s2

@s0 @s1 @s2 @s3

s3 s1

@s
(@fsica)

@s1

programa

. . .

MMU tabla de segmentos


Memoria (ACI)

(Memory Management Unit)


23

Segmentacin
Traduccin: tabla de segmentos Dnde se guarda?
Registros Memoria principal
2 accesos para cualquier referencia

Hardware especial: TLB (Translation Lookaside Buffer)


Memoria asociativa Fallo / Acierto (acceso rpido) Caro, tamao limitado (32/1024 entradas)
Memoria (ACI) 24

Segmentacin
CPU @lgica segmento despla.
(tamao de segmento)

@fsica

MP
@s0

s0
@s2

+ s
(#segmentos)

s2
@s3

s0 s3

s1 s2

s2 s1 s3 s0

@s2 @s1 @s3 @s0

s3 s1

@s
(@fsica)

@s1

programa

. . .

TLB
Memoria (ACI) 25

Paginacin
El programa y la memoria se dividen en trozos del mismo tamao pginas
potencia de dos (4K / 16 Mbytes) sin sentido lgico

El cargador las carga en memoria, cada una en una pgina fsica libre @lgica: pgina lgica / desplazamiento @fsica: pgina fsica / desplazamiento
Memoria (ACI) 26

Paginacin
Ejemplo: 4 pginas lgicas / 8 pginas fsicas / pginas de 16 bytes @lgica (6 bits) @fsica (7 bits) pg. lgica despla. pg. fsica despla. 2 (tamao de pgina) 4 00 01 10 11 D C A B 3
(#pginas fsicas) 000 0000 001 0000

011 0000 101 0000

2
(#pginas lgicas)

011 101 001 000

MP

10 11 00 01

001 000 011 101

tabla de pginas no es necesario sumar TLB


Memoria (ACI)

00 01 10 11

A B C D
27

programa

Segmentacin/Paginacin
Segmentacin:
entidades lgicas (definidas por el programador) tabla de segmentos con @fsicas fragmentacin externa

Paginacin:
entidades sin sentido lgico traduccin sencilla (sin necesidad de sumar) la tabla de pginas indica pginas fsicas fragmentacin interna
Memoria (ACI) 28

Segmentacin/Paginacin
Normalmente:
los programas se segmentan los segmentos se paginan segmentacin paginada

@lgica: 40/80 bits Memoria virtual

@fsica: 32/44 bits

no es necesario cargar todo el programa aprovechamiento de memoria posibilidad de ejecutar un programa de mayor tamao que la memoria principal
Memoria (ACI) 29

Deteccin y correcin de errores


Memoria:
circuito de alta complejidad considerar la posibilidad de la existencia de fallos en su funcionamiento fallos hardware: no recuperables fallos software: transitorios, pueden recuperarse aadir bits de control al cdigo original

Dos posibidades:
Bits de paridad Cdigos basados en los cdigos de Hamming
Memoria (ACI) 30

Bits de paridad
Aadir un bit de paridad a cada palabra de memoria: se determina con la XOR de todos los bits paridad par: el nmero total de unos sea par paridad impar: el nmero total de unos sea impar Ejemplo: paridad par: 10010010 1 // 00001100 0 paridad impar: 10010010 0 // 00001100 1 Permite detectar errores de un bit, pero no corregirlos reintentar la lectura de memoria si persiste, error del sistema
Memoria (ACI) 31

Cdigos correctores de errores


Basados en los cdigos de Hamming: cdigo SEC: cdigo corrector de errores simples cdigo SEC-DED: cdigo corrector de errores simples y detector de errores dobles Ejemplo de cdigo SEC con palabras de 8 bits:
aadir 4 bits de control: c0, c1, c2 y c3 intercalados en las posiciones potencias de 2
posicin 12 11 10 9 8 7 6 5 4 3 2 1 bit d7 d6 d5 d4 c3 d3 d2 d1 c2 d0 c1 c0

bits de control: bits de paridad de un subconjunto de los bits de la palabra original, de acuerdo a la descomposicin binaria de la posicin que ocupan en la nueva palabra
Memoria (ACI) 32

Cdigos correctores de errores


Ejemplo de cdigo SEC con palabras de 8 bits (cont.):
bits de control:
c0 = d6d4d3d1d0 c2 = d7d3d2d1 c1 = d6d5d3d2d0 c3 = d7d6d5d4 bit d6 posicin 11 = 8 + 2 + 1 clculo de c3, c1 y c0

se guardan junto con la palabra en memoria para detectar un error calcular los bits de control de la palabra leda efectuar la XOR entre stos y los originales sndrome si el resultado es 0000, el dato es correcto. De lo contrario, el valor obtenido indica la posicin del bit errneo
Memoria (ACI) 33

Cdigos correctores de errores


Ejemplo de cdigo SEC con palabras de 8 bits (cont.):
ejemplo: dato nueva palabra error en un bit 01110011 c3=1, c2=1, c1=1, c0=0
(se escribe en mem.) (se lee de mem.)

011110011110 010110011110

clculo de los bits de control c3=0, c2=1, c1=0, c0=0 XOR sndrome 1010 bit de la posicin 10 (d5) errneo
Memoria (ACI) 34

Cdigos correctores de errores


Los cdigos SEC y SEC-DED suponen un incremento en el tamao de la memoria. El nmero de bits a aadir en un cdigo SEC viene dado por la expresin: (d+c+1) 2c. En un cdigo SEC-DED se aade un bit ms a la expresin anterior. Algunos ejemplos:
+ IBM 30xx SEC-DED de 8 bits para 64 bits 12% + VAX SEC-DED de 7 bits para 32 bits 22% + DRAM ECC (Error Correction Code) de 8 bits para 64 bits

12%

Memoria (ACI)

35

Formatos de memoria RAM (PC)


DIP (Dual In-line Package):
Formato ms antiguo: formato chip 64 Kbytes 8 chips de 64 Kbits

SIP (Single In-line Package):


8 chips soldados en una placa de circuito impreso Mdulos de N Kbytes Problema: patillas frgiles

Memoria (ACI)

36

Formatos de memoria RAM (PC)


Tipo Zcalo SIMM SIMM DIMM DIMM DIMM RIMM Nmero contactos 30 72 168 184 240 184 Tipo de memoria FPM FPM, EDO, BEDO EDO, BEDO, SDRAM DDR-SDRAM DDR2/3-SDRAM RDRAM Anchura Bus datos 8 bits 32 bits 64 bits 64 bits 64 bits 16 bits Tamao mdulos 256 kB, 1/4/16 MB 1/2/4/8/16/32/64/128 MB 8/16/32/64/128/256 MB 1 GB 128/256/512 MB, 1GB 256/512 MB, 1/2/4 GB 128/256/512 MB

SIMM (Single In-line Memory Module) DIMM (Dual In-line Memory Module) RIMM (Rambus In-line Memory Module)
Memoria (ACI) 37

Formatos de memoria RAM (PC)


SIMM (30/72 contactos) DIMM 168 contactos

DIMM DDR 184 contactos

RIMM 184 contactos

Memoria (ACI)

38

Memoria principal PC (DRAM)


Funcionamiento:
Matriz de celdas de memoria DRAM estndar:
acceso por filas (RAS) y luego por columnas (CAS) desactivar RAS y CAS memorias asncronas
Direccin de memoria completa N Fila N Columna

Memoria (ACI)

39

Memoria DRAM
Esquema:
CAS
n/2 DRAM DIR n (A n - A ) 2 -1 0 CLK p

2 xp

Dout

Reg. column.

Din

Decod. column.

CAS.L RAS.L RD/WR.L

MATRIZ DE MEMORIA DIRECCIN RAS Datos


Memoria (ACI) 40
Reg. filas
CLK Decod. filas

Memoria DRAM
Fast Page Mode DRAM:
1 activacin de RAS y varias activaciones de CAS acceso a distintas direcciones en la misma fila tiempo de acceso: Tfila+Tcolumna para el primer dato de una fila Tcolumna para el resto de la misma fila entrelazado en longitud tiempo de acceso: 60/80 ns [DRAM convencional, 80/150ns] temporizacin: 5-3-3-3 (66 MHz)

Memoria (ACI)

41

Memoria DRAM
EDO RAM (Extended Data Out):
minimiza el tiempo de acceso a cada uno de los n-1 datos de la misma fila almacena el dato en un buffer de salida, solapando la salida de un dato con el acceso al siguiente y evita el reseteo del bus de salida de datos reduce Tcolumna tiempo de acceso: 50/60 ns temporizacin: 5-2-2-2 (66 MHz) mdulos SIMM y DIMM
Memoria (ACI) 42

Memoria DRAM
BEDO RAM (Burst Extended Data Out):
acceso en modo rfaga a datos consecutivos de la misma fila genera de forma automtica las direcciones de los datos en la misma fila, eliminando el tiempo de introduccin de las seales de cada columna reduce Tcolumna mejora la segmentacin entre el acceso a un nuevo dato y la salida del anterior tiempo de acceso: 40/50 ns temporizacin: 5-1-1-1 (66 MHz)

Fiabilidad FPM/EDO/BEDO: buses de 66 MHz


Memoria (ACI) 43

Memoria DRAM
SDRAM (Synchronous DRAM):
sincronizacin con el reloj de la placa base mediante latches o registros temporales:
simplifica las seales de control elimina problemas de temporizacin elimina tiempos de espera del procesador

acceso en modo rfaga tiempo de acceso: 1er dato 20/50ns // resto 7/15ns temporizacin: (2+)3-1-1-1 (133 MHz 37.5 ns // 7.5 ns) slo mdulos DIMM buses de 166 MHz
Memoria (ACI) 44

Memoria DRAM
DDR SDRAM (Double Data Rate SDRAM):
SDRAM sincronizada en flanco de subida y de bajada buses con frecuencias superiores a 100 MHz (K7 AMD) temporizacin: (2+)2.5-0.5-0.5-0.5 184 conectores, 2,5V, hasta 500 MHz (4GB/s) DDR2: 240 conectores, 1,8V, hasta 800 MHZ (6,4 GB/s) DDR3: 1,5V, hasta 1.600 MHz (12,8 GB/s) Dual channel: 2 canales de acceso independientes
DDR400: 3,2 GB/s 6,4 GB/s DDR2-800: 6,4 GB/s 12,8 GB/s DDR3-1600: 12,8 GB/s 25,6 GB/s
Memoria (ACI) 45

Memoria DRAM
RDRAM (Rambus DRAM):
diseada para el Pentium IV (bus de la placa a 400 MHz) organizacin interna completamente diferente:
buses internos de 16 bits mayores frecuencias de funcionamiento: 400, 500, 600 MHz

memoria sncrona: 2 datos por ciclo de reloj temporizacin: (9+)9-0.5-0.5-0.5 memoria de 400 MHz 45 ns // 1.25 ns mayor coste: tecnologa propietaria dual channel, quad channel
Memoria (ACI) 46

Memoria DRAM
Memoria SDRAM DDR DDR DDR2 DDR2 DDR3 DDR3 DDR3 DRDRAM DRDRAM Descripcin PC133 PC3200* PC4000* PC2-5300** PC2-6400** PC3-8500***
PC3-10660*** PC3-12800***

Anchura Frecuencia Frecuencia bus reloj efectiva 8 bytes 8 bytes 8 bytes 8 bytes 8 bytes 8 bytes 8 bytes 8 bytes 2 bytes 2 bytes 133 MHz 200 MHz 250 MHz 333 MHz 400 MHz 533 MHz 667 MHz 800 MHZ 400 MHz 800 MHz 133 MHz 400 MHz 500 MHz 667 MHz 800 MHz 1066 MHz 1333 MHz 1600 MHz 800 MHz 1600 MHz

Ancho de banda 1,06 GB/s 3,2 GB/s 4 GB/s 5,3 GB/s 6,4 GB/s 8,5 GB/s 10,6 GB/s 12,8 GB/s 1,6 GB/s 3,2 GB/s

PC1600 PC3200

* Tambin se nombran como DDR400, DDR500, etc. ** Tambin se nombran como DDR2-667, DDR2-800, etc. *** Tambin se nombran como DDR3-1066, DDR3-1333, DDR3-1600
Memoria (ACI) 47

También podría gustarte