Tema 2: Memorias
Escuela Superior de Informática
Universidad de Castilla-La Mancha
Tema 2
• Introducción
• Parámetros básicos de las memorias
• Características
• Jerarquía de memorias
• Memorias semiconductoras
• Subsistemas de memoria basados en
microprocesador
Introducción
• ¿Qué es una memoria?
– Es un dispositivo físico capaz de almacenar
información durante un cierto intervalo de tiempo
• Es un componente fundamental de un
computador. Almacena:
– Instrucciones de un programa
– Datos (tanto antes como después de procesados)
Parámetros básicos
de memorias
• Capacidad
– Cantidad de información que se puede almacenar
– Se puede expresar en bits o en octetos (bytes)
• b para bits según IEEE 1541 Sistema IEC 60027-2 Valor
International (SI) IEEE 1541
• B para bytes según IEEE 1541
k (kilo) Ki (kibi) 210 (10241)
y IEC 60027-2 M (mega) Mi (mebi) 220 (10242)
– p.e.: 1MB (megabyte) G (giga) Gi (gibi) 230 (10243)
T (tera) Ti (tibi) 240 (10244)
• 220
P (peta) Pi (pebi) 250 (10245)
• 106 (según SI) E (exa) Ei (exbi) 260 (10246)
Z (zeta) Zi (zebi) 270 (10247)
Y (iota) Yi (iobi) 280 (10248)
Parámetros básicos
de memorias
• Organización
– Desde el punto de vista lógico, las memorias se
conciben como un conjunto de posiciones en las
que se almacenan un dato en cada una de ellas
– Número de posiciones y tamaño (en bits)
– p.e.: una memoria de 220 posiciones de 1 byte
cada una, tiene una capacidad de 220 x 8b = 8Mb
(megabits) y equivale a una memoria de 223
posiciones de 1 bit cada una, aunque con una
organización distinta
Parámetros básicos
de memorias
• Latencia o tiempo de acceso
– Es el tiempo que se tarda en acceder a una determinada
posición de memoria
– Generalmente, los tiempos de acceso de lectura y escritura
son diferentes
• Rendimiento
– La máxima velocidad a la que se puede acceder a los datos
– Se mide en bytes por segundo (B/s) o en bits por segundo
(b/s)
– Generalmente se suele diferenciar entre lectura y escritura
Características
• Tecnologías
– Magnética
• Se usa un campo magnético para almacenar la información
• p.e.: memorias de ferrita, cintas magnéticas, discos flexibles y discos duros
– Óptica
• Se puede acceder a deformaciones microscópicas de la superficie del disco
iluminándolas con un diodo láser.
• p.e.: CDs (Compact Discs), DVD (Digital Versatile Disc), Blue-ray y HDV
(Holographic Versatile Disc)
– Semiconductores
• Se usan circuitos integrados basados en semiconductores (chips) para
almacenar información como cargas eléctricas
• p.e.: RAM (Random Access Memory), ROM (Read-Only Memory), flash, etc.
– Otros
• Mecánicos como las antiguas tarjetas perforadas o moleculares como los que
usan propiedades de polímeros para almacenar una carga eléctrica.
Características
• Volatilidad
– Memorias volátiles
• La información se pierde cuando se desconecta la alimentación
• Dinámicas, necesitan refrescarse periódicamente incluso estando constantemente
alimentadas
– Memorias no volátiles
• La información se mantiene sin alimentación
• Sólo se puede modificar la información si se permiten operaciones de escritura en ellas
• Alterabilidad
– Memorias de sólo lectura (ROM, Read Only Memory)
• Estas memorias se graban en fábrica o se suministran sin contenido con posibilidad de
escribir sólo una vez en ellas (OTP-ROM One Time Programmable ROM)
– Memorias de Lectura/Escritura
• La información se puede modificar en cualquier momento
• En algunas de ellas las operaciones de escritura necesitan más tiempo que las de
lectura
Características
• Latencia
– Baja latencia (nanosegundos)
– Alta latencia (milisegundos o mayor)
• Modo de acceso
– Acceso aleatorio
• Se puede acceder a cualquier posición directamente
• El tiempo de acceso es independiente de la posición
– Acceso secuencial
• Para acceder a una determinada posición, antes hay que pasar
por otras posiciones previas
• El tiempo de acceso sí depende del número de posiciones
intermedias por las que se tenga que pasar.
Características
• Ejemplos
Dispositivo de Tecnología Volatilidad Alterabilidad Latencia Modo de
Memoria Acceso
CD-R, DVD-R, Óptica No volátil Sólo lectura Alta Secuencial
Blue-ray
CD-RW, DVD±RW Óptica No volátil Lectura / Escritura Alta Secuencial
Discos duros Magnética No volátil Lectura / Escritura Alta Secuencial
RAM Semiconductores Volátil Lectura / Escritura Baja Aleatorio
Flash Semiconductores No volátil Lectura / Escritura Baja Aleatorio
(escrit. más lenta)
Jerarquía de Memoria
• ¿Por qué la jerarquía de memoria?
– Velocidad, capacidad y coste
• A mayor rapidez menor capacidad.
• Maximizar el rendimiento y la capacidad y minimizar los costes
– Los computadores gestionan diferentes tipos de información
• Los datos más usados deberían estar almacenados en las memorias más rápidas
(Registros internos)
– Caros
– Baja capacidad
• Las mayores capacidades de almacenamiento se pueden obtener a bajo precio
(Memoria Principal)
– El eslabón entre registro y memoria principal se consigue con la llamada Memoria Caché
• Se necesita un nivel de memoria diferente con memoria no volátil y grandes
capacidades (Memoria de almacenamiento masivo o Secundaria)
– Acceso sobre los subsistemas de Entrada/Salida, discos duros
Jerarquía de Memoria
CPU
Memoria
Interna
E/S
La CPU y el Sistema Operativo son los
encargados de mover los datos de un nivel a otro
Memorias semiconductoras
• Esta parte se enfoca a aprender la forma de diseñar subsistemas de
memorias para sistemas basados en microprocesador (sólo se usan
memorias de semiconductores para este objetivo)
• En una memoria semiconductora
– Cada bit se almacena en una estructura llamada celda básica
• Construida con componentes electrónicos integrados en un chip
– Las celdas básicas se repiten en una estructura de matriz
• Organizadas en filas y columnas
• Almacenando un determinado número de posiciones
• Cada posición se identifica por su dirección
– El bus de direcciones es un conjunto de líneas de entrada de un chip de
memoria
» Un bus de direcciones de N líneas puede identificar hasta 2N posiciones
Memorias semiconductoras
Se necesita un bus con líneas de entrada para
acceder a un determinado número de posiciones
p.e.: 8K posiciones p.e.: 2M posiciones
8 1K 2 1M
8 = 23 K = 210 2 = 21 M = 220
8K = 23 . 210 = 213 2M = 21 . 220 = 221
N = 13 líneas en el bus de direcciones N = 21 líneas en el bus de direcciones
Memorias semiconductoras
– Los chips de memoria tienen una entrada de activación
o habilitación del chip llamada CS (Chip Select)
• Puede ser
– Activa a nivel alto
– Activa a nivel bajo
• Cuando está activa, la dirección colocada en el bus de direcciones habilita
un determinado conjunto de celdas básicas
– Si se pueden realizar operaciones tanto de lectura como
de escritura, se usarán las señales de control adecuadas
para indicar qué operación se realiza
• En operaciones de lectura, los datos elegidos llegan al microprocesador a
través del bus de datos del chip
• En operaciones de escritura, los datos también viajan por el bus de datos,
pero desde el microprocesador hasta las celdas de memoria elegidas
Memorias semiconductoras
Estructura interna
• Celdas básicas
– Es la estructura fundamental de la memoria
– Capaz de almacenar un bit
– Un grupo de celdas básicas componen una memoria
• Hay dos formas básicas de elegir las celdas básicas
desde el valor contenido en el bus de direcciones
– Decodificación por filas
– Decodificación por filas y columnas
Memorias semiconductoras
Estructura interna
• Decodificación por filas
– El bus de direcciones se conecta a las entradas de un decodificador
de N entradas y 2N salidas
– Cada línea de salida del decodificador se conecta a una fila de la
matriz de celdas básicas
• Todas las celdas básicas de una fila representan una posición de memoria
– Inconveniente
• La complejidad del decodificador aumenta exponencialmente
con el número de líneas del bus de direcciones
– p.e.: Un bus de direcciones de 8 bits necesita un DEC 8x256, mientras
que uno de 16 bits necesita un DEC 16x65536
– Este inconveniente se puede resolver con la siguiente estructura
Memorias semiconductoras
Estructura interna
Celda básica
Decodificador de filas
Bus de direcciones
…
N
…
…
…
…
…
…
…
…
…
Buffers
M Bus de datos
Memorias semiconductoras
Estructura interna
• Decodificación por filas y columnas
– En vez de elegir cada posición con una fila entera, se
asocia a cada posición de memoria, formada por M
celdas, una combinación particular de fila y columna
– La mitad de las líneas del bus de direcciones se emplean
para elegir la fila mediante un decodificador de filas,
mientras que la otra mitad selecciona las columnas a
través de un multiplexor (MUX) para lectura o un
demultiplexor (DEMUX) para escritura
Memorias semiconductoras
Estructura interna
Celda básica
Decodificador de filas
Bus de direcciones
…
N N/2 …
M
…
…
M M
…
…
N/2
MUX / DEMUX
M
Buffers
M
Bus de datos
Memorias semiconductoras
Read-Only Memory, ROM
• Sólo realiza lecturas (no volátil)
• Una memoria ROM de 2N × M tiene las siguientes
entradas y salidas:
– Bus de direcciones: aN-1:0 CS
– Bus de datos: dM-1:0 aN-1:0 dM-1:0
– Señal de habilitación : CS o CS ROM 2N × M
Memorias semiconductoras
Read-Only Memory, ROM
• ROM
– Se graban en fábrica y su contenido no se puede cambiar
• PROM (Programmable ROM)
– Tiene una matriz de fusible que permite la programación sólo una vez
• EPROM (Erasable PROM)
– Se pueden volver a grabar, siempre que previamente se borren con luz
ultravioleta.
• EEPROM (Electrically Erasable PROM)
– Se pueden borrar aplicando una tensión eléctrica en un pin del circuito
• Flash
– Es una caso particular de EEPROM muy utilizado en la actualidad
– Se borra y se escribe por bloques
– Más versátil y rápida, aunque el número de veces que se puede regrabar está
limitado
Memorias semiconductoras
Random Access Memory, RAM
• Se puede leer / escribir en ellas
• Normalmente son volátiles, aunque hay alguna excepción (FeRAM)
• Tipos
– Estáticas o SRAM (Static RAM)
– Dinámicas o DRAM (Dynamic RAM)
• Una memoria RAM de 2N × M tiene las siguientes entradas y salidas:
– Bus de direcciones: aN-1:0
CS
– Bus de datos: dM-1:0
R/W
– Señal de habilitación : CS o CS aN-1:0 dM-1:0
– Señal de lectura / escritura: R/W ROM 2N × M
Memorias semiconductoras
Random Access Memory, RAM
• RAM estáticas (SRAM)
– Las celdas básicas tienen biestables con 6 transistores
– La principal ventaja es su baja latencia
• Tiempo de acceso del orden de nanosegundos
• Se usa sobre todo para memoria caché
– El principal inconveniente es que las celdas básicas
necesitan un mayor número de componentes
• Se necesita más espacio
• La capacidad de memoria es más pequeña que las DRAM
http://www.youtube.com/watch?v=IcrBqCFLHIY
Memorias semiconductoras
Random Access Memory, RAM
• RAM Dinámicas (DRAM)
– La celda básica está compuesta por un condensador (almacena 1 bit) y
un único transistor
– La principal ventaja es que puede alcanzar mayores capacidades, ya
que la celda básica necesita muy pocos componentes
– El principal inconveniente es debido al propio condensador
• Corrientes de fuga
• Refresco periódico para mantener la carga del condensador, haciendo el sistema
más complicado al requerir circuitos adicionales
• Mayor latencia que las memorias SRAM
– Fundamentalmente se usan como memoria principal del computador,
ya que logran un buen compromiso entre coste, capacidad y velocidad
Subsistema de Memoria
Espacio de direccionamiento
• Desde el punto de vista del microprocesador
– La memoria se organiza como un conjunto de posiciones
de 1 byte
• Cada posición se identifica de forma inequívoca con una
dirección lógica
– El número de chips usados para implementar la memoria
principal es transparente para el microprocesador
• El conjunto de todas las direcciones lógicas posibles se llama
espacio de direccionamiento del microprocesador
– El valor que el microprocesador coloca en el bus de
direcciones se llama dirección física
Subsistema de Memoria
Espacio de direccionamiento
– Un microprocesador con n líneas de dirección y
8xm (m=1,2,3,…) líneas de datos puede
distinguir 2n direcciones físicas de m bytes cada
una. Es decir, esta memoria dispone de un
espacio de direccionamiento de 2n×m
direcciones lógicas de 1 byte cada una
– Obsérvese la diferencia
• Las direcciones lógicas se refieren a bytes
• Las direcciones físicas se refieren a datos con
tamaño igual al bus de datos
Subsistema de Memoria
Espacio de direccionamiento
• Microprocesadores de 8 bits (m = 1)
– Las direcciones lógicas y físicas coinciden
– p.e.: microprocesador de 8 bits y bus de direcciones de
16 bits
• m = 1 n = 16
espacio de direc.: 2n×m = 216×1 = 64KB
rango de direcciones: de $0000 a $FFFF
Subsistema de Memoria
Espacio de direccionamiento
• Microprocesadores de 16 bits (m = 2)
– Las direcciones físicas apuntan a 2 bytes de datos, también llamados
palabra (word), de modo que 1 dirección física corresponde a 2
direcciones lógicas
– Como el bus de direcciones sólo acepta direcciones físicas, no se puede
acceder a los octetos (bytes) aislados de una palabra
– Para acceder a octetos aislados, se necesitan dos líneas adicionales (Bus
Enable):
BE1 BE0 A0 ACCESO
• BE0 0 0 - -
• BE1 0 1 0 Byte 0 (par)
1 0 1 Byte 1 (impar)
1 1 0 Word
Subsistema de Memoria
Espacio de direccionamiento
– El byte que ocupa la posición par de la palabra (word)
puede ser el byte de más significativo (mayor peso) y el
byte que ocupa la posición impar el byte menos
significativo (menor peso), o viceversa
• Hay dos criterios llamados big endian y little endian
Byte 0 (par) Byte 1 (impar)
Big endian Mayor peso Menor peso
Little endian Menor peso Mayor peso
Subsistema de Memoria
Espacio de direccionamiento
Memoria
$0000 Byte $0000
R/W
microprocesador
$0001 Byte $0001
$0002 Byte $0002
… …
Bus de direcc. $FFFE Byte $FFFE
A15-0
$FFFF Byte $FFFF
Bus de datos D7-0
Organización de la memoria para un microprocesador de 8 bits
Subsistema de Memoria
Espacio de direccionamiento
BE0 BE1 Memoria
$0000 Byte $0000 Byte $0001 Palabra $0000
R/W
microprocesador
$0001 Byte $0002 Byte $0003 Palabra $0002
$0002 Byte $0004 Byte $0005 Palabra $0004
… … … …
Bus de direcc.
A15-1
$7FFE Byte $FFFC Byte $FFFD Palabra $FFFC
$7FFF Byte $FFFE Byte $FFFF Palabra $FFFE
Bus de datos D15-0
Organización de la memoria para un microprocesador de 16 bits
Subsistema de Memoria
Espacio de direccionamiento
BE0 BE1 BE2 BE3
Memoria
$0000 Byte $0000 Byte $0001 Byte $0002 Byte $0003 Palabra larga $0000
R/W
microprocesador
$0001 Byte $0004 Byte $0005 Byte $0006 Byte $0007 Palabra larga $0004
$0002 Byte $0008 Byte $0009 Byte $000A Byte $000B Palabra larga $0008
… … … … … …
Bus de direcc. $3FFE Byte $FFF8 Byte $FFF9 Byte $FFFA Byte $FFFB Palabra larga $FFF8
A15-2
$3FFF Byte $FFFC Byte $FFFD Byte $FFFE Byte $FFFF Palabra larga $FFFC
Bus de datos D31-0
Organización de la memoria para un microprocesador de 32 bits
Subsistema de Memoria
Espacio de direccionamiento
Byte $0000
Palabra $0000
Byte $0001 Palabra larga $0000
Byte $0000 Byte $0002
Palabra $0000 Palabra $0002
Byte $0001 Byte $0003
Byte $0002 Byte $0004
Palabra $0002 Palabra $0004
Byte $0003 Byte $0005 Palabra larga $0004
Byte $0000 Byte $0004 Byte $0006
Palabra $0004 Palabra $0006
Byte $0001 Byte $0005 Byte $0007
Byte $0002 … …
Byte $0003 Byte $FFFC Byte $FFFC
Palabra $FFFC Palabra $FFFC
… Byte $FFFD Byte $FFFD Palabra larga $FFFC
Byte $FFFE Byte $FFFE Byte $FFFE
Palabra $FFFE Palabra $FFFE
Byte $FFFF Byte $FFFF Byte $FFFF
Subsistema de Memoria
Espacio de direccionamiento
• Ejemplos de espacios de direccionamiento
– Bus de Datos de 16 bits y Bus de Direcciones de 15 bits
• m = 2 n = 15
espacio de direc.: 2n×m = 215×2 = 64KB
rango de direc.: de $0000 a $FFFF
•Sin embargo, el rango de direcciones físicas va desde
$0000 a $7FFF
•Ejemplo, si el contenido del bus de direcciones es A15-1= $0002:
•Si BE1BE0=11, se accede a la palabra de dir. lóg. $0004 (bytes $0004-$0005)
•Si BE1BE0=10, se accede al byte $0005
•Si BE1BE0=01, se accede al byte $0004
Subsistema de Memoria
Diseño del subsistema de memoria
• El espacio de direccionamiento lógico
representa el tamaño máximo que puede
manejar el microprocesador
• El subsistema de memoria
– Podría tener uno o más chips de memoria
– Podría no alcanzar la máxima capacidad de direccionamiento
• El tamaño real o físico es el resultado de sumar el
tamaño de todos los chips que componen el
subsistema de memoria
Subsistema de Memoria
Diseño del subsistema de memoria
• El subsistema de memoria se diseña
– Asignando un rango específico de direcciones lógicas a cada chip
– El espacio direccionable se divide en partes, cada una de las cuales
es responsabilidad de un chip determinado
– Los mapas de memoria se usan para representar la asociación
• El subsistema de memoria se compone de
– Decodificador de memoria
• Genera las señales de selección de chip (CS) según la dirección física que el
microprocesador pone en el bus de direcciones
– Banco de memoria
• Consta de un conjunto de chips de memoria, que están interconectados con
el microprocesador y el decodificador de memoria
Subsistema de Memoria
Diseño del subsistema de memoria
Bus de direcciones
Mapa de memoria
MEM1
CS1
MEM1
MEM2
microprocesador
Espacio direccionable
Bus de control
CS2 MEM2
…
DEC
…
…
Subsistema MEMr
CSr
de memoria MEMr
Bus de datos
Subsistema de Memoria
Mapa de memoria
• Los mapas de memoria representan gráficamente el rango de
direccionamiento lógico asignado a cada uno de los chips de
memoria física
• Representación gráfica
– Todo el espacio direccionable se representa como un
recuadro
– Se dibujan líneas divisorias para delimitar los rangos de
direccionamiento asignados a cada chip y los que no se
asignan a ningún chip
– Generalmente, la parte superior del recuadro se usa para
las direcciones más bajas
A15 A14 A13 A12 A11-0 Rango
Inicio Fin
0000
0 4K 0000 0000 0000
0FFF
1111 1111 1111
0
0000 0000 0000 1000
1
Subsistema de Memoria
8K 4K
1111 1111 1111 1FFF
0 0000 0000 0000 2000
0 4K
2FFF
1111 1111 1111
1
Mapas de Memoria
8K 1 4K
0000 0000 0000 3000
16K 1111 1111 1111 3FFF
0
4000
0 4K 0000 0000 0000
4FFF
1111 1111 1111
0
5000
8K 1 4K 0000 0000 0000
5FFF
1111 1111 1111
1 6000
0 4K 0000 0000 0000
6FFF
1111 1111 1111
1
0000 0000 0000 7000
32K 8K 1 4K
7FFF
16K 1111 1111 1111
0 4K
0000 0000 0000 8000
1111 1111 1111 8FFF
0
8K 1 4K 0000 0000 0000 9000
1111 1111 1111 9FFF
0 0000 0000 0000 A000
0 4K
1111 1111 1111 AFFF
1
8K 1 4K 0000 0000 0000 B000
16K
1 1111 1111 1111 BFFF
0 4K 0000 0000 0000 C000
1111 1111 1111 CFFF
0
8K 1 4K 0000 0000 0000 D000
1111 1111 1111 DFFF
1
0 4K 0000 0000 0000 E000
1111 1111 1111 EFFF
1
8K 1 4K 0000 0000 0000 F000
16K
32K 1111 1111 1111 FFFF
Subsistema de Memoria
Banco de memoria
• El diseño del banco de memoria consiste en la descripción de
la interconexión entre los chips de memoria con el
microprocesador y con el circuito decodificador de memoria
• El bus de datos interconecta todos los chips de memoria y el
microprocesador de modo que las líneas dm-1:0 del chip se
conectan a las líneas Dm-1:0 del bus de datos
• El bus de direcciones también se interconecta con todos los
chips de memoria. Sin embargo, el número de líneas que
llegan a cada chip depende de su capacidad
• Obsérvese que los chips de RAM también conectan con la
señal lectura/escritura, R/W con el microprocesador
Subsistema de Memoria
Banco de memoria
CS1 CS M1
A13-0
a13-0 d7-0
14
ROM 16Kx8
CS2 CS M2
R/W
A12-0
a12-0 d7-0
13
RAM 8Kx8
CS3 CS M3
R/W R/W
A12-0
a12-0 d7-0
13
RAM 8Kx8
A13-0
14
D7-0 8
Subsistema de Memoria
Decodificación de memoria
• Los bits más significativos del bus de direcciones se usan
para el circuito decodificador, que genera las señales de
selección del chip
• El mapa de memoria se usa para diseñar el circuito
decodificador
– Determinando las combinaciones de bits que activarán cada chip
– Esta información se usa en una tabla de verdad que establece las relaciones
entre los bits de direccionamiento y las entradas de selección de chips
• Para la implementación del circuito decodificador, se
pueden usar circuitos con puertas lógicas
– Sin embargo, lo mejor es usar normalmente decodificadores (DEC) con el
adecuado número de entradas y salidas
Subsistema de Memoria
Decodificación de memoria
• El decodificador utilizado determina el número de chips
que se pueden seleccionar
0 0
1
1 2
A15 1 A15 2
DEC A14 1
DEC 3
A14 0 2:4 2 A13 0 3:8 4
5
3 6
7