Unidad de Memoria Memorias
Definiciones y conceptos básicos
Velocidad
Jerarquía de memorias
Parámetros en la jerarquía de las memorias Capacidad Velocidad Costo por bit Frecuencia de utilización Principio de localidad referencia:
Se entiende como el índice de probabilidad de uso de la
información que está en memoria Localidad temporal: Tendencia a reutilizar los datos e instrucciones utilizados recientemente. Localidad espacial: Tendencia a referenciar las instrucciones y datos próximos a los que están utilizando
Principio de Localidad • Los programas acceden a una porción relativamente pequeña del espacio de direcciones en un determinado lapso de tiempo. – Localidad temporal • Si un ítem es referenciado en determinado momento, es común que vuelva a ser referenciado poco tiempo después. • Mantener los datos más recientemente accedidos “cercanos” al procesador
– Localidad Espacial • Cuando un ítem es referenciado en determinado momento, es común que los ítems con direcciones “cercanas” también sean accedidos poco tiempo después. • Mover bloques de palabras contiguas al nivel superior
Uso y Manejo de la Jerarquía • Registros <-> Memoria – por el compilador (programador?)
• cache <-> memoria – por el hardware
• memoria <-> discos – por el hardware y el sistema operativo (memoria virtual) – por el programador (archivos)
Terminología • Acierto (Hit): los datos están en algún bloque del nivel superior – Hit Rate: fracción de accesos a memoria encontrados en el nivel superior – Hit Time: Tiempo de acceso al nivel superior • Tiempo para determinar hit/miss + tiempo de lectura/escritura
• Falla (Miss): los datos deben ser traídos desde un bloque en el nivel inferior – Miss Rate = 1 - (Hit Rate) – Miss Penalty
• Tiempo adicional requerido en caso de Miss.
• Hit Time << Miss Penalty • Tiempo medio de acceso a memoria – Hit time + Miss Rate * Miss Penalty
Principios
Con la utilización de las jerarquías de memoria las memorias rápidas de baja capacidad y alto coste se complementan con las memorias lentas de gran capacidad y bajo coste. El tiempo de acceso medio total (tA) empleado por la UCP para acceder a una palabra se puede expresar por la relación:
Rendimiento • Tiempo de Acceso – Tiempo transcurrido entre presencia de direcciones y obtención de datos válidos
• Tiempo de Ciclo de Memoria – Tiempo entre dos accesos consecutivos – Tiempo de Ciclo: acceso + recuperación
• Tasa de Transferencia – Tasa a la que se mueven los datos
Memoria Principal: La organización puede mejorar el rendimiento • Simple: • CPU, Cache, Bus, Memoria mismo ancho(32 bits) • Ancho (Wide): • CPU/Mux 1 palabra; Mux/Cache, Bus, Memoria N palabras
Memoria Principal: La organización puede mejorar el rendimiento
• Entrelazado (Interleaved): • CPU, Cache, Bus 1 palabra: Memoria N Módulos; el ejemplo es de 4 módulos, word interleaved ( estrelazado de palabra)
Entrelazado
Memorias de semiconductor
Características Un CIM está organizado internamente como una matriz de N x
m celdas elementales, en la que se pueden almacenar N palabras de m bits. A cada palabra almacenada en el CIM se le asigna una única dirección.
Estructura de la celda básica de memoria El elemento básico de un CIM es la celda de memoria que permite almacenar un bit de información. Propiedades de las celdas de memoria de tipo semiconductor:
Presentan
dos estados estables (o semiestables) Se pueden escribir (al menos una vez ) para fijar su estado Se pueden leer para conocer su estado
Celda de memoria
Celda de memoria
seleccionar
entrada
S
S Q
R
R
Q
salida
seleccionar entrada
BC salida
leer/escribir (1/0) leer/escribir (1/0)
Memorias: Memorias semiconductoras:Organización(1) • La unidad mínima de almacenamiento es el bit y la estructura física que lo soporta se denomina celda básica.
• La memoria organiza las celdas por filas y columnas (estructura matricial). • Existen varias formas de acceder la celdas (o grupos de ellas): decodificación por filas y decodificación por filas y columnas.
• Decodificación por filas:
CELDA BÁSICA
N
BUS DE DIRECCIONES
DECODIFICADOR
BUFFERS M
BUS DE DATOS
Organización interna: 2D La organización 2D da lugar a matrices de celdas excesivamente largas y estrechas que no son adecuadas para su realización en un circuito integrado.
Memorias: Memorias semiconductoras:Organización(2) • Decodificación por filas y columnas.:
N
N/2
M
M
M
N/2 MUX (si lectura)/DEMUX (si escritura)
CELDA BÁSICA
M
BUFFERS
M
BUS DE DATOS
Organización 2D 1/2
Diseños de bloques de memoria
Unidad de memoria de 4 x 3 bits
Unidad de memoria de 4 × 3 bits
Dato de entrada (3 bits)
A0 A1 Entrada de selección de memoria
D0 BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
D1
D2 D3 Decoder 2×4
leer/escribir
Dato de salida
Características de los circuitos integrados de memorias
Memorias: Memorias semiconductoras: ROM (1) • Son memorias de sólo lectura. • No pierden la información aunque se interrumpa la alimentación. • Tipos: ROM, PROM (OTP ROM), EPROM, EEPROM (FLASH) • Las memorias ROM se programan en fábrica y no es posible modificar su contenido • Las memorias PROM contienen una matriz de fusibles que es programable por el usuario una sola vez.
• Las EPROM permiten su reprogramación después de someter al chip a un proceso de borrado por radiación ultravioleta. • Las EEPROM permiten su reprogramación eléctrica. Las FLASH EEPROM son más rápidas por permitir borrado y escritura por bloques aunque tienen el inconveniente del desgaste (10.00090.000 borrados).
Memorias de Solo Lectura: memoria ROM Sea D0=“1” (Es decir, se selecciona la dirección “00”, que corresponde a D0=“1”, D2D3…D15=“0”) En ese caso, en X3 se tiene un “0” (no hay conexión entre D0 y X3). Por otra parte, X2=“1”, por el diodo entre D0 y X2.
D0
X3
X2
El DIODO correspondiente a “1” en realidad se implementa como un transistor:
Palabra n-ésima
Palabra n-ésima
Bit m-ésimo BIPOLAR
Bit m-ésimo MOS
Memorias de Solo Lectura: memoria PROM Las memorias ROM vienen grabadas de fábrica (cuando se realiza el propio componente de silicio). El usuario a veces quiere grabar su propia memoria ROM. Surgen las memorias PROM, PROGRAMMABLEROM. Se utiliza un programador, que programa la ROM en cuestión de minutos.
FUNDIR FUSIBLE
Palabra nésima
Cada CELDA Básica es, inicialmente: Palabra nésima
Bit m-ésimo
“0”
Bit m-ésimo
NO FUNDIR FUSIBLE
Palabra nésima
Bit m-ésimo
“1”
Memorias de Solo Lectura: memoria EPROM Una vez fundido el fusible de la PROM, no se puede regenerar. Surgen las memorias EPROM y EEPROM, que se basan en transistores MOS de puerta flotante, y que pueden REPROGRAMARSE. EPROM: ERASABLE-PROGRAMMABLE-ROM. Se borra mediante luz UV (5-20 minutos).
Puerta Flotante
Puerta NO aislada
Transistor MOS de Puerta Flotante
PROGRAMACIÓN: Se aplica una tensión lo suficientemente elevada en la puerta NO aislada, de manera que se llega a cargar la puerta flotante (ruptura temporal del aislante). Al quitar la tensión de la puerta no aislada, la puerta flotante mantiene su carga (70% durante 10 años). Cuando se seleccione esa celda, la carga que hay en la puerta flotante impide que el transistor conduzca. BORRADO: se aplica luz ultravioleta que hace que el aislante alrededor de la puerta flotante conduzca, vaciándose de cargas.
Memorias de Solo Lectura: memoria EEPROM Existen memorias que también pueden borrarse eléctricamente. EEPROM: ELECTRICALLY ERASABLE-PROGRAMMABLE-ROM. PROGRAMACIÓN: Idéntica a la EPROM BORRADO: Se aplica una tensión al propio aislante de la puerta flotante, de manera que se descarga la misma. El borrado ocurre en un “destello”. Son las Flash EPROM, o memorias “Flash”.
Memorias: Memorias semiconductoras: ROM (2) • Ejemplo: Memoria EPROM • Señales de control: #OE (habilitador salida), #CE (habilitador chip)
Memorias: Memorias semiconductoras: ROM (3) • Proceso de lectura: - Establecer dirección - Habilitar chip y salidas
Tiempo de acceso
Memorias: Memorias semiconductoras: RAM (1) • Son memorias de lectura y escritura. • Tipos: SRAM y DRAM. • Características de la SRAM:
- Celda básica basada en un biestable (6 transistores) - Rápidas (-> Caché)
- La información no se pierde mientras exista alimentación Funcionamiento: LECTURA: Selección a “1”. T5 y T6 conducen. El estado de T1 y T2 (uno conduciendo y el otro cortado ) pasa a las lineas I e I. ESCRITURA: Selección a “1”. T5 y T6 conducen. Forzamos el estado de T1 y T2 mediante I e I.
Memorias de Semiconductor RAM
MOS (SRAM) Celda básica de memoria; tiene las líneas de E/S de información, I e I, y la línea de selección. T3 y T4 funcionan sólo como resistencia.
VDD
T3
T4
Funcionamiento: LECTURA: Selección a “1”. T5 y T6 conducen. El estado de T1 y T2 (uno conduciendo y el otro cortado ) pasa a las lineas I e I. ESCRITURA: Selección a “1”. T5 y T6 conducen. Forzamos el estado de T1 y T2 mediante I e I.
T5
T1
T2
T6
SELECCIÓN I
I
Memorias: Memorias semiconductoras: RAM (2) • Ejemplo de SRAM 6116 • Señales de control (#CS, Habilitador de chip; #WE, Lectura/Escritura; #OE, Habilitador de salida) Establecer la dirección Proceso de lectura
Poner #WE a 1 lógico Habilitar salidas y chip
Memorias: Memorias semiconductoras: RAM (3) • RAM DINÁMICA (DRAM) - celda básica: 1 transistor + condensador - Necesita refresco. - Requiere lógica externa compleja. - Mayor densidad que SRAM -> mayor capacidad
- Menor velocidad de acceso
Memorias: Memorias semiconductoras: RAM (4) • Ejemplo de DRAM: • Señales de control: #RAS, (Habilitador de fila), #CAS, (Habilitador de columna), #CS, #WE y #OE.
Establecer la FILA (primera mitad de la dirección)
Validar FILA (#RAS) Proceso de lectura (ver secuencia de pasos
en el cronograma)
Establecer la COLUMNA (segunda mitad de la dirección) Validar COLUMNA (#CAS) Poner #WE a 1 lógico Habilitar salidas y chip Tiempo de pulso de la señal RAS
Tiempo de establecimiento de columna Tiempo de mantenimiento de columna
TIEMPO DE LATENCIA
Memorias: Memorias semiconductoras: RAM (5) • La reducción del tiempo de latencia es imprescindible para mejorar la velocidad de las DRAM. - FPM (Fast Page Mode)/EDO (Extended Data Output) DRAM. Agiliza los
accesos a los bits de una misma fila (página). Dentro de una página sólo es necesario identificar la columna.
- El tiempo de acceso a n datos de una página es Trac*n en DRAM y Trac+(n1)*Tpc en FPM/EDO RAM (Tpc = tiempo de ciclo en modo pagina). Tpc es menor en EDO DRAM que en FPM DRAM. - Ejemplo: Si n=8, Trac=60ns y Tpc=25ns -> Tacceso DRAM = 480ns, Tacceso FPM/EDO DRAM = 235ns
Memorias: Memorias semiconductoras: RAM (6) • Los microprocesadores tienden a buscar bytes en posiciones consecutivas de la
memoria y, si disponen de caché, además, en ráfagas. (Ej. Caché L2 de un Pentium busca bloques de 32 bytes).
• Las SDRAM (DRAM síncronas) incorporan una señal de reloj que establece la base de tiempos para el modo paginado y un contador interno que genera las direcciones de columna para cada ciclo de reloj.
• El tiempo de acceso para n palabras (de m bits) es Trac+(n-1)Tclk. • Ejemplo: Una SDRAM PC-100Mhz, tiene Tclk = 10ns, si Trac=60ns y n=8, entonces Tacceso SDRAM = 130ns. Tclk
Trac
Memorias: Memorias semiconductoras: RAM (7) • Las DDR (Double Data Rate) RAM permiten duplicar la velocidad al utilizar, tanto
los flancos de subida como los de bajada del reloj para transferir un bit. Tacceso de n palabras (de m bits) en DDR RAM = Trac + (n-1)*Tclk/2. (95ns si se usan los mismos datos de la SDRAM anterior)
• Futuro: QDR (Quad Data Rate) RAM (cuatro transferencias por ciclo de reloj) • Las memorias para un ordenador personal vienen en módulos: SIMM , DIMM
Memorias: Mapas de memoria: Generalidades • Todo microprocesador dispone de
AB
un bus de direcciones (AB), bus de datos (DB) y bus de control (CB) para gestionar el flujo de información entre la memoria y el propio procesador • Desde el punto de vista del
microprocesador, la memoria está organizada en una “ristra” de bytes en la que cada uno ocupa una dirección concreta dentro de la “ristra”.
CB
DB
MICROPROCESADOR
DIRECCIÓN
P-1
Dato (p-1)
P
Dato (p)
P+1
Dato (p+1)
MEMORIA PRINCIPAL
Memorias: Mapas de memoria: Organización • El valor que el microprocesador sitúa en el AB en un momento
determinado se denomina dirección física (DF).
• Cada byte almacenado en la memoria se distingue de cualquier
otro porque ocupa o tiene asignado una dirección lógica (DL). El microprocesador trabaja con direcciones lógicas. • El conjunto de todas las posibles direcciones lógicas determina
el espacio de direccionamiento.
• El tamaño del espacio de direccionamiento y su organización
dependen del número de líneas de los buses AB y DB:
- Un bus AB con n líneas identifica 2n direcciones físicas diferentes. - Un DB con mx8 líneas (m=1, 2, 4, 8...) asigna m direcciones lógicas a una dirección física.
- Espacio de direccionamiento = 2n x m
Memorias: Mapas de memoria: Organización:Ejs: (1) • Ejemplo 1: Microprocesador con 16 líneas en bus de direcciones y 8 líneas en el bus de datos (n=16 y m=1). - Existen 216 = 65536 direcciones físicas. - Cada dirección física tiene asignada una lógica (m=1) y por cada dirección lógica existe un byte. - Espacio de direccionamiento es de 64Kbytes Dirección física (16bits)
Dirección lógica (16bits)
110
11101
AB[15:0]
110 AB
11101 16
$0000 $0001 $0002 $0003
Byte 0 Byte 1 Byte 2 Byte 3
CB[..] DB[7:0]
Microprocesador
216=64K Direcciones
8 DB
Lógicas y físicas
$FFFE $FFFF
Byte 65534 Byte 65535
Memoria principal
Memorias: Mapas de memoria: Organización:Ejs: (2) • Ejemplo 2: Microprocesador con 15 líneas en bus de direcciones y 16 líneas en el bus de datos (n=15 y m=2). - Existen 215 =32768 direcciones físicas. - Cada dirección física tiene asignada dos lógicas (m=2) y por cada dirección lógica existe un byte. - Espacio de direccionamiento es de 64Kbytes (físicamente org. 32Kwords) Dirección física (15bits)
Dirección lógica (16bits)
110
11101
AB[15:1] CB[..]
$0000 110 1110 $0001 $0002 AB 15 $0003
Byte Byte Byte Byte
1 3 5 7
Word 0 Word 1 Word 2 Word 3
16 DB
Microprocesador
0 2 4 6
BE[1,0] 2
DB[15:0]
Byte Byte Byte Byte
$7FFE $7FFF
Byte 65532 Byte 65534
Byte 65533 Byte 65535
Memoria principal
Word 32766 Word 32767
Memorias: Mapas de memoria: Organización:Ejs: (3) • Ejemplo 1: Microprocesador con 14 líneas en bus de direcciones y 32 líneas en el bus de datos (n=14 y m=4). -Existen 214 =16384 direcciones físicas. -Cada dirección física tiene asignada cuatro lógicas (m=4) y por cada dirección lógica existe un byte. -Espacio de direccionamiento es de 64Kbytes (físicamente 16Klong words) Dirección física (14bits)
Dirección lógica (16bits)
110
11101 110
AB[15:2] CB[..]
111
$0000
Byte 0
Byte 1
Byte 2
Byte 3
LWord 0
$0001
Byte 4
Byte 5
Byte 6
Byte 7
LWord 0
$0002
Byte 8
Byte 9
Byte 10
Byte 11
LWord 0
$3FFE
Byte 65528
Byte 65529
Byte 65530
Byte 65531
LWord 16382
$3FFF
Byte 65532
Byte 65533
Byte 65534
Byte 65535
LWord 16383
14 BE[3:0] 4
DB[31:0] Microprocesador
32
Memoria principal
Memorias: Mapas de memoria: Conexión lectura • Para LEER, el microprocesador activa la señal R/#W que posee el BUS de CONTROL. Esta señal llega hasta todos los chips de memoria.
• Si el tamaño del bus de datos es de 8 bits, sólo se podrá leer un byte por cada acceso a memoria.
• Para el siguiente ejemplo: dirección física = dirección lógica. Microprocesador
CB[..] AB[15:0]
R/#W
1
$10 $FF
$0000 $0001
$01 $A0 $BC $15 $32
$1200 $1201 $1202 $1203 $1204
$45 $66
$FFFE $FFFF
$1202
$BC DB[7:0]
Memoria principal
Memorias: Mapas de memoria: Conexión lectura (2) • Si el tamaño del bus de datos es de 16 bits, se podrá leer un byte o un word por cada acceso a memoria.
• El CB tiene dos líneas que regulan qué parte del DB se usa para accesos a bytes. Se controlan por el bit menos significativo de la dirección lógica y por el tamaño del operando de la instrucción que realiza el acceso a memoria. Para la lectura de un byte situado en una dirección impar, se activa BE1. Dirección lógica (16bits)
LECTURA DE BYTE EN DIRECCIÓN IMPAR Dirección física (15bits)
00...00 0111
AB[15:1] CB[..]
BE0 BE1 R/#W
DB[15:0] Microprocesador
$0000 00...0011 $0001 $0002 15 $0003 0 1 DB[7:0] DB[15:8]
BE0=1
BE1=1
Byte Byte Byte Byte
Byte Byte Byte Byte
0 2 4 6
$7FFE Byte 65532 $7FFF Byte 65534
1 3 5 7
Byte 65533 Byte 65535
Memoria principal
Word 0 Word 1 Word 2 Word 3
Word 32766 Word 32767
Memorias: Mapas de memoria: Conexión lectura (3) • En la lectura de un dato de tamaño byte que se encuentra en una dirección par se activa BE0.
Dirección lógica (16bits)
LECTURA DE BYTE EN DIRECCIÓN PAR Dirección física (15bits)
00...00 0110
AB[15:1] CB[..]
BE0 BE1 R/#W
DB[15:0] Microprocesador
$0000 00...0011 $0001 $0002 15 $0003 1 0 DB[7:0] DB[15:8]
BE0=1
BE1=1
Byte Byte Byte Byte
Byte Byte Byte Byte
0 2 4 6
$7FFE Byte 65532 $7FFF Byte 65534
1 3 5 7
Byte 65533 Byte 65535
Memoria principal
Word Word Word Word
0 1 2 3
Word 32766 Word 32767
Memorias: Mapas de memoria: Conexión lectura (4) • En la lectura de un dato de tamaño word, se activan las líneas BE0 y BE1. • En este caso se requiere que la dirección lógica sea siempre par.
Dirección lógica (16bits)
LECTURA DE PALABRA (siempre direcciones pares) Dirección física (15bits)
00...00 0110
AB[15:1] CB[..]
BE0 BE1 R/#W
DB[15:0] Microprocesador
$0000 00...0011 $0001 $0002 15 $0003 1 1 DB[7:0] DB[15:8]
BE0=1
BE1=1
Byte Byte Byte Byte
Byte Byte Byte Byte
0 2 4 6
$7FFE Byte 65532 $7FFF Byte 65534
1 3 5 7
Byte 65533 Byte 65535
Memoria principal
Word Word Word Word
0 1 2 3
Word 32766 Word 32767
Memorias: Mapas de memoria: Conexión escritura • Para ESCRIBIR, el microprocesador desactiva la señal R/#W que posee el BUS de CONTROL.
• Si el tamaño del bus de datos es de 8 bits, sólo se podrá escribir un byte por cada acceso a memoria.
Microprocesador
CB[..] AB[15:0]
R/#W
0
$10 $FF
$0000 $0001
$01 $A0 $BC $15 $32
$1200 $1201 $1202 $1203 $1204
$45 $66
$FFFE $FFFF
$1202
$BC DB[7:0]
Memoria principal
Memorias: Mapas de memoria: Conexión escritura (2) • Si el tamaño del bus de datos es de 16 bits, se podrá escribir un byte o un word por cada acceso a memoria.
Dirección física (15bits)
Dirección lógica (16bits)
00...00 0101
[15:1] CB[..]
$AB
BE0 BE1 R/#W
DB[15:0]
Microprocesador
$0000 00...0010 $0001 $0002 15 $0003 0 1 DB[7:0] DB[15:8]
BE0=1
BE1=1
Byte Byte Byte Byte
Byte Byte Byte Byte
0 2 4 6
$7FFE Byte 65532 $7FFF Byte 65534
1 3 5 7
Byte 65533 Byte 65535
Memoria principal
Word Word Word Word
0 1 2 3
Word 32766 Word 32767
Memorias: Mapas de memoria (1) • El espacio de direccionamiento lógico identifica
la máxima capacidad de memoria con la que puede trabajar un microprocesador (CM).
• La capacidad física (CF) o real de la memoria viene
dada por la suma de las capacidades de todos los chips de memoria que la forman. (CF
CHIP1 RAM
DL1 DL2
CHIP2 RAM
DL3
CHIP3 ROM
DL4
CAPACIDAD FÍSICA
• Cada chip de memoria tiene asignado un rango de
direcciones lógicas. Dicho rango es igual a la capacidad del chip de memoria expresada en bytes. Cualquier dirección lógica (DL) que esté incluida en dicho rango provocará el acceso a un chip del conjunto, mientras que los restantes chips están inactivos. Ejemplos: -Direcciones Lógicas DL1 y DL2 acceden al chip1 de RAM, la DL3 y DL6 a los chips 2 y 3 de RAM respectivamente. La dirección DL5 no accede a ningún chip de memoria y la DL4 a un chip de ROM.
CHIP4 RAM
ESPACIO
DL5
DE MEMORIA LIBRE
• Los mapas de memorias son representaciones gráficas que representan los rangos de direcciones lógicas que tienen asignados cada uno de los chips que constituyen la memoria física.
CHIP5 RAM
DL6
CHIP6 ROM
ESPACIO DE DIRECCIONAMIENTO
Memorias: Mapas de memoria (2) • Los microprocesadores necesitan de un sistema de decodificación que permita habilitar las memorias según la dirección física que aquel sitúe en el bus de direcciones. CS1
$0000 CHIP1 ROM
$02A
AB[11:0]
Dirección lógica
12
$0FFF ROM 4Kx8
$1000
$102A
CHIP2 RAM
SISTEMA DE
$102A AB[15:0]
$2FFF
64K
DECODIFICACIÓN
$1
CS2
AB[15:12]
ESPACIO DE MEMORIA
LIBRE
AB[12:0]
$102A
uP DB[7:0]
13
RAM 8Kx8
Memorias: Mapas de memoria (3) • Los chips de memoria reciben los bits menos significativos del AB, en cambio, el sistema de decodificación utiliza los más significativos, en concreto, los bits del AB que no se llevan hasta los buses de dirección de los chips de memoria. • Para determinar el sistema de decodificación, se puede proceder dividiendo el espacio de direccionamiento en diferentes regiones según las líneas MSB del AB.
$0000
$0000
$0000 A13=0 A14=0
$1FFF $2000 A13=1
A15=0
$3FFF
$3FFF
$4000
$4000
A14=1
A12=0 A12=1
A13=1 $7FFF
$7FFF
$7FFF
$8000
$8000
$8000 A13=0 A14=0
$9FFF $A000 A13=1
A15=1
$BFFF
$BFFF
$C000
$C000 A13=0 A14=1
$DFFF A13=1
ROM 4K
RAM 8K
$FFFF
$FFFF
$FFFF
A12=0 A12=1
$E000
4K
A12=0
$6000
CS2 = A15’ A14’ A13’ A12 + A15’ A14’ A13 A12’
8K
A12=1
A12=1
$5FFF
CS1 = A15’ A14’ A13’ A12’
16K
A12=0
A13=0
• Para la ROM de 4K y RAM de 8K, del ejemplo anterior se tiene:
32K
$0000 $0FFF $1000 $1FFF $2000 $2FFF
Memorias: Mapas de memoria (4) • El sistema de decodificación estará formado por los subsistemas combinacionales y puertas lógicas necesarias que permitan la activación de los CSx de los chips de memoria. Además, para las ROMs, se deberá prohibir el acceso a escritura de las mismas. CS1 = A15’ A14’ A13’ A12’ (sólo si el acceso es de lectura, ya que es una ROM)
CS
CS2 = A15’ A14’ A13’ A12 + A15’ A14’ A13 A12’
AB[11:0]
ROM 4Kx8
R/#W CS1
AND
0
CB[..]
AB[15:12]
DEC
1 2
OR
4:16
CS2
15
uP
RAM
AB[15:0] DB[7:0]
8Kx8
AB[12:0]
R/#W
Memorias: Mapas de memoria: Ejemplo 1 (1) • Se dispone de un microprocesador
$0000
con 16 bits en su AB y 8 en su DB y de 2 chips de 8Kx8 de RAM y uno de 16Kx8 de ROM. Se desea que las posiciones de memoria más bajas estén ocupadas por ROM y las más altas por RAM. Diseñar el sistema de decodificación. - El espacio de direccionamiento se subdivide, a partir de los bits MSB del AB, en regiones más pequeñas hasta que se alcancen las capacidades de los chips de memoria.
$0000 A14=0 R0M 16K
A15=0
$3FFF $4000
A14=1
$7FFF
$7FFF
$8000
$8000 A13=0 A14=0
-Se determinan las expresiones de los CSx de los dispositivos en función de los bits del AB que delimitan la región del espacio de direccionamiento donde se sitúa el contenido del chip de memoria:
A13=1 A15=1
$BFFF $C000
CSrom = A15’ A14’
$C000
A14=1
CSram1 = A15 A14 A13 ; CSram2 = A15 A14 A13’
$DFFF
A13=0 RAM2 8K
$E000 A13=1 RAM1 8K
32K
16K
8K
RAM 8K
R0M 16K
$FFFF
$FFFF
$FFFF
Memorias: Mapas de memoria: Ejemplo 1 (2) - Se implementa el sistema de decodificación usando los bits MSB del AB para activar los CSx
CS
- El bus de direcciones de los chips se conectan a los bits LSB del AB del microprocesador
AB[13:0]
ROM 16Kx8
- El bus de datos de los chips se conectan al del microprocesador. R/#W
CSram2
CB[..]
R/#W AND RAM 2
0
AB[15:13]
DEC
1
OR
8Kx8
CSrom
AB[12:0]
3:8 6
CSram1
R/#W
7
uP AB[15:0]
RAM1
AB[12:0]
DB[7:0]
8Kx8
Memorias: Mapas de memoria: Ejemplo 2 (1) • Se dispone de un microprocesador
$00000
con 20 bits en su AB y 8 en su DB y de 2 chips de 64kx8 de RAM y uno de 128kx8 de ROM. Se desea que las posiciones de memoria más bajas estén ocupadas por ROM y, a continuación, se sitúa la memoria RAM. Diseñar el sistema de decodificación suponiendo que los CS de los chips son activos en bajo. - El espacio de direccionamiento es de 1M.
$00000
$00000 A18=0
A19=0
$3FFFF
$7FFFF
$7FFFF
A18=0
CSram1 = A19+A18+A17’+A16
CSram2 = A19+A18+A17’+A16’
A18=1
ROM 128K
RAM 64K
RAM2 64K A16=1
1M byte
A19=1
128K
A16=0 RAM1 64K
A14=1
-Las ecuaciones de los CS son: CSrom = A19+A18+A17
256K
$20000
A17=1 $2FFFF $30000 $3FFFF $3FFFF
$80000
512K
$1FFFF $20000
R0M 128K A17=0
$FFFFF
Espacio de direccionamiento
Memorias: Mapas de memoria: Ejemplo 2 (2) - Se implementa el sistema de decodificación usando los bits MSB del AB para activar los CSx
CS
- El bus de direcciones de los chips se conectan a los bits LSB del AB del microprocesador
AB[16:0]
ROM 128Kx8
- El bus de datos de los chips se conectan al del microprocesador. R/#W
CSram1
CB[..]
R/#W OR 0
AB[19:16]
DEC
1 2
4:16
3
15
uP AB[19:0] DB[7:0]
AND
AB[15:0]
RAM1 64Kx8
CSrom
R/#W
CSram2
RAM2
AB[15:0]
64Kx8
Memorias: Mapas de memoria: Ejemplo 3 (1) • Se dispone de un microprocesador con 15 bits en su AB y 16 en su DB y de 4 chips de 4kx8 de RAM y dos de 8kx8 de ROM. Se desea que las posiciones de memoria más bajas estén ocupadas por ROM y las más altas por RAM. Diseñar el sistema de decodificación. - El espacio de direccionamiento tiene 64Kbytes pero organizado, físicamente, en 32Kwords. - El microprocesador puede acceder a un byte individual o a dos bytes consecutivos simultáneamente. Esto exige decodificación por dirección par o impar.
- El uP dispone de las líneas BE1 y BE0, que identifican si el acceso es a dirección par o impar para bytes o, a ambas, para word. - Desde un punto de vista lógico, los chips de memoria se deben agrupar por parejas. La pareja ocupa una región, dentro del espacio de direccionamiento, igual al doble de la capacidad de cada uno (ACCESO ROM). OR ACCESO ROM (CS1)
AB[15:1]
AND
DECODIFICACIÓN
CSrom1
ROM
ROM
8Kx8
8Kx8
AB[13:1] uP
CB DB[15:0]
BE0 BE1
CSrom2
AB[13:1]
DB[7:0]
DB[15:8]
Memorias: Mapas de memoria: Ejemplo 3 (2) • Se representa el espacio de
$0000
$0000
direccionamiento
A14=0
• Los dos chips de ROM de 8K se
CS1
consideran como uno de 16K que se sitúa en la parte inferior del espacio de direccionamiento.
ROM 16K A15=0
$3FFF $4000
• Los 4 chips de RAM de 4K se agrupan de dos en dos para formar dos chips de 8K que ocupan las direcciones lógicas más altas.
• Cada una de las regiones ocupadas se etiqueta con CSx (x=1,2,3).
• Se obtienen las expresiones lógicas de
A14=1
64K $7FFF
$7FFF
$8000
$8000
dichas etiquetas:
A14=0
CS1 = A15’ A14’ A15=1
CS2 = A15 A14 A13’
$BFFF $C000
$C000
CS3 = A15 A14 A13
A13=0 A14=1
$DFFF
CS2
RAM 8K
$E000 A13=1 CS3 $FFFF
$FFFF
$FFFF
RAM 8K
Memorias: Mapas de memoria: Ejemplo 3 (3) BE0
R/#W
AND
CS3
• Las líneas MSB del AB se conectan al
BE1 CS3
CS
CS
AB[12:1]
DEC 3:8 para generar CS1, CS2 y CS3.
R/#W
AND
AB[12:1] RAM
• Atendiendo a BE0, BE1, y CSx, se
4Kx8
RAM 4Kx8
obtienen los CS de los chips de memoria
• El bus de datos de los chips que se
DB[7:0]
habilitan con BE0 se conecta a DB[7:0] y los que se habilitan con BE1 al DB[15:8].
DB[15:8]
BE0 CS2
R/#W AND
AB[12:1]
CS
BE1 CS2
AB[12:1]
RAM 4Kx8
0
AB[15:13] AB[15:1]
DEC
1
3:8 6 7
uP
CB DB[15:0]
CS2 CS3
R/#W BE0 CS1
RAM 4Kx8
DB[15:8] R/#W BE1 CS1
AND
AB[13:1]
CS ROM
R/#W BE0 BE1
CS
DB[7:0]
CS1 OR
R/#W
AND
8Kx8
DB[7:0]
AND
AB[13:1]
CS
ROM 8Kx8
DB[15:8]
Fabricación de Memorias
Fábrica Kingston (Shangai) 2.5 millones de módulos al mes
Panel con 8 módulos de memoria
Panel ingresando a la etapa de soldadura
Inspección de defectos en la soldadura
Etiquetado de los módulos
Sección de control de calidad: test por módulo y en PC
Etiquetado final
Ejercicios 1. A un CPU cuyo microprocesador posee un DB 16 bits y un AB de 20 bits, se le quiere proporcionar una memoria con las siguientes características: · 256 Kpalabras (256 K x 16) de memoria ROM. · 512 Kpalabras (512 K x 16) de memoria RAM. Diseñar la memoria con el menor número de integrados, sabiendo que deseamos que la RAM ocupe las posiciones más bajas del mapa de memoria, seguida de la ROM y se poseen los siguiente tipos de integrados: Integrados de memoria ROM 64 K x 8 128 K x 1 128 K x 8 Integrados de memoria RAM 128 K x 1 256 K x 8
2. Una CPU posee un bus de datos con 16 bits, además, el bus de direcciones cuenta con 20 bits. Se quiere dotar a esa CPU de una memoria, sin multiplexación de buses, con las siguientes características: · 128 Kpalabras (128K x 16) de memoria ROM. · 640 Kpalabras (640K x 16) de memoria RAM. La memoria ROM debe situarse en las posiciones más altas del mapa de memoria direccionable y la memoria RAM debe situarse en las posiciones más bajas. Diseñar la memoria con el menor número de pastillas sabiendo que disponemos de: Integrados de memoria RAM Integrados de memoria ROM 217 x 1 216 x 8 218 x 8 217 x 1 218 x 16 217 x 16 La memoria ROM debe situarse en las posiciones más altas del mapa de memoria direccionable y la memoria RAM debe situarse en las posiciones más bajas.
3. En un PC con bus de direcciones de 32 bits y ancho de palabra de 64 bits, el mapa de memoria tiene dos secciones: · El área conocida como memoria convencional (los primeros 640 Kbytes de memoria), utilizada principalmente por el sistema operativo y programas residentes. · El área entre la memoria superior (situada a continuación, hasta ocupar 1 Mbyte), reservada para adaptadores hardware y la ROM BIOS, entre otros. Los primeros 1024 Kbytes de este computador (en 128 K direcciones) se distribuyen de la siguiente manera: · 640 Kbytes de memoria RAM (en 80 Kdirecciones) · 384 Kbytes de memoria ROM (en 48 Kdirecciones) Se disponen los siguiente tipos de integrados: Integrados de memoria RAM Integrados de memoria ROM 211 x 16 214 x 8 215 x 32 214 x 16 216 x 16 216 x 1 a. Indicar cuántos módulos de memoria y de qué características serían necesarios para diseñar el mapa de memoria, utilizando el menor número de módulos posible. c. Realizar el diseño del mapa de memoria de manera que la RAM inicie en la dirección 00000 y la ROM se ubique a continuación de ella d. Dibujar el esquema de memoria resultante.
Lección 2 Diseñar el sistema de decodificación de una memoria de un Computador basado en un microprocesador de 16 bits en su bus de direcciones y 8 bits en su bus de datos, suponiendo que se necesitan 12K×8 de memoria ROM y 8K×8 de memoria RAM. Se disponen de circuitos integrados ROM de 211×8 y 210x16 y circuitos integrados RAM de 211×8 y 210x16. La memoria está situada a partir de la dirección $0 empezando por la ROM, posterior a ella se tiene un espacio libre de 12k*8 y a continuación tendremos la RAM.
2.4 Memorias caché
Para solucionar el compromiso entre velocidad, costo y capacidad se coloca una memoria pequeña y rápida entre la UCP y la memoria principal, la memoria caché. La memoria caché almacena una copia de ciertas partes de la memoria principal. Cuando la UCP intenta leer una palabra en primer lugar comprueba si está en la caché. Si está, se lee, Si no está, se transfiere a la memoria caché un bloque de la
memoria principal, con un determinado número de palabras.
Acierto Cuando el dato solicitado por la CPU está en la Mca
Fallo Cuando el dato solicitado por la CPU no está en la Mca
Organización La memoria principal consta de 2n palabras y cada palabra se
puede referenciar mediante una dirección única de n bits Para realizar la transformación entre la memoria principal y la caché, se considera que la memoria principal está constituida por una serie de bloques de longitud fija de k palabras/bloque, es decir, hay M = 2 / k bloques. La memoria caché contiene C particiones de k palabras ( C << M). n
Acceso a la memoria caché en operación de lectura
Operación de lectura en Memoria Cache
Rendimiento de la memoria caché El rendimiento de una memoria caché se mide en la tasa de acierto.
Tasa
de acierto = Acierto/( Acierto + Fallo)
Índice de mejora λ de la Mca en función de la tasa de acierto h
Capacidad de la caché
El tamaño de la caché plantea el compromiso de ser pequeña para disminuir el costo medio por bit almacenado en la memoria interna (caché + principal), por otro lado debe ser grande como para que tenga una tasa de acierto elevada.
Organización de la memoria caché Establecer la función de correspondencia que asigna a los bloques de la memoria principal en las posiciones definidas en la memoria caché Técnicas
Directa Totalmente
asociativa Asociativa por conjuntos
Parámetros del ejemplo a utilizar en las descripciones a) Ancho de palabra de datos; p.ej. 16 bits b) Tamaño de la Memoria caché; p.ej.512 B = 2 Bytes c) Tamaño de bloque; k = 8 d) Tamaño de la Memoria principal = 32 KB Ejemplos:
9
15
32 KB = 2 ⇒ Bus de direcciones = 15 bits ⇒ A0 a A14
512B = 2 ⇒ Bus direcciones de la caché ⇒ 9 bits 512B y k = 8 -> Nº bloques = 512/8 = 64 bloques k = 8 ->2 3 bits 64 bloques = 2 6 bits 9
3
6
Correspondencia directa
Cada bloque de memoria principal se transforma en una única partición de la memoria caché.
Correspondencia totalmente asociativa Permite que se cargue un bloque de memoria principal en cualquier partición de la memoria caché Este sistema permite decidir cual es el bloque que será sustituido en la caché por el nuevo bloque leído en memoria principal. Su principal desventaja es la necesidad de una circuitería compleja para examinar en paralelo los campos de etiqueta de todas las particiones de la memoria caché. Formato de instrucción
Asociativa por conjunto Auna las ventajas de los dos métodos anteriores. Está compuesta por “r” bloques y “q” conjuntos de modo que C =
q×r , siendo C el nº de bloques de la mem. caché. El funcionamiento consiste en que cada bloque de la mem. ppal. tiene asignado un conjunto de la caché, pero se puede ubicar en cualquiera de los bloques que pertenecen a dicho conjunto. Ello permite mayor flexibilidad que la correspondencia directa y menor cantidad de comparaciones que la totalmente asociativa.
Algoritmos de reemplazamiento Necesarios en asociativo y conjunto Partición más antigua en la memoria caché sin ser referenciada (LRU).
Partición más antigua en la memoria caché (FIFO). Partición utilizada menos frecuentemente. (LFU).
Partición elegida de forma aleatoria.
Estrategia de escritura
Se plantean dos problemas: Más
de un dispositivo tiene acceso a la memoria principal.
Se
Si la palabra ha sido modificada en la memoria caché el dato de la memoria principal no es válido, si por el contrario ha sido modificado en memoria principal el dato de la caché no es válido.
conectan varias UPC’s a un bus y cada una tiene su propia memoria caché local.
Escritura Directa
Efectuar todas las operaciones de escritura tanto en memoria principal como en memoria caché Su desventaja Que
genera un tráfico elevado con la memoria y puede crear un cuello de botella
Postescritura Cuando se produce una modificación se pone a “1” un bit de actualización asociado con cada partición de la memoria caché. Si se reemplaza un bloque se reescribe la memoria principal si y sólo si el bit de actualización está a “1”. El problema es saber que partes de la memoria principal ya no son válidas, para evitarlo los accesos de los módulos de E/S se permiten únicamente a través de la caché.
2.5 Memorias asociativas
Búsqueda por contenido Consiste en una matriz de celdas de memoria, con su lógica asociada, organizada en n palabras con m bits/palabra. El registro argumento A y el registro de máscara k tienen m bits cada uno y el registro de marca M consta de n bits. Cada palabra de la memoria se compara en paralelo con el contenido del registro argumento, y se pone a “1” el bit del registro de marca asociado a aquellas palabras cuyo contenido coincide con el del registro argumento. El proceso de lectura se realiza mediante un acceso secuencial a las palabras de memoria cuyos bits en el registro de marca están a “1” El registro de máscara proporciona la clave para seleccionar la parte que se desee en la palabra argumento.
2.8 Discos magnéticos
Controlador de disco