Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Almacn: programa+datos Problema:
Velocidad entre CPU y el sistema de memoria Necesidad de alta capacidad de almacenamiento con bajo tiempo de acceso
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)
+ -
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
Disco
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
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
+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
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
Perifricos
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
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
Amemoria
Memoria principal
Expansin en longitud (nmero de palabras, capacidad): Cmemoria Cchip Cchip Cchip
Cmemoria
Amemoria
Memoria (ACI)
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)
Mdulos Consecutivos
mdulo @interna byte
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
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
Mdulos Entrelazados
@interna mdulo byte
m
Mdulo 0 Buffer 0 Mdulo 1 Buffer 1
...
Mdulo 2m-1
Buffer 2m-1
. . .
2m-1
DATOS
Componentes de la @fsica:
palabra banco @interna mdulo byte @ fsica (byte)
DATOS
m
@
c
2c-1
CS i
... ...
. . .
0
... ...
Segmentacin/Paginacin
Objetivo:
Cargar un programa en cualquier @fsica
CPU direcciones lgicas
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
s3 s1
@s
(@fsica)
@s1
programa
. . .
Segmentacin
Traduccin: tabla de segmentos Dnde se guarda?
Registros Memoria principal
2 accesos para cualquier referencia
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
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
2
(#pginas lgicas)
MP
10 11 00 01
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
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
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
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
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
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
12%
Memoria (ACI)
35
Memoria (ACI)
36
SIMM (Single In-line Memory Module) DIMM (Dual In-line Memory Module) RIMM (Rambus In-line Memory Module)
Memoria (ACI) 37
Memoria (ACI)
38
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.
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)
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