tema 2: memorias - blog.uclm.esblog.uclm.es/inocentesanchez/files/2018/07/tema-2-memorias.pdf ·...
Post on 16-Sep-2019
4 Views
Preview:
TRANSCRIPT
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
• ¿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)
Introducción
• 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
• B para bytes según IEEE 1541
y IEC 60027-2
– p.e.: 1MB (megabyte)
• 220
• 106 (según SI)
Parámetros básicos
de memorias
Sistema International (SI)
IEC 60027-2 IEEE 1541
Valor
k (kilo) Ki (kibi) 210 (10241)
M (mega) Mi (mebi) 220 (10242)
G (giga) Gi (gibi) 230 (10243)
T (tera) Ti (tibi) 240 (10244)
P (peta) Pi (pebi) 250 (10245)
E (exa) Ei (exbi) 260 (10246)
Z (zeta) Zi (zebi) 270 (10247)
Y (iota) Yi (iobi) 280 (10248)
• 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
Parámetros básicos
de memorias
• 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 Memoria
Tecnología Volatilidad Alterabilidad Latencia Modo de Acceso
CD-R, DVD-R, Blue-ray
Óptica No volátil Sólo lectura Alta Secuencial
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 (escrit. más lenta)
Baja Aleatorio
Características
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
p.e.: 8K posiciones
8 = 23
8 1K
K = 210
8K = 23 . 210 = 213
N = 13 líneas en el bus de direcciones
p.e.: 2M posiciones
2 = 21
2 1M
M = 220
2M = 21 . 220 = 221
Se necesita un bus con líneas de entrada para acceder a un determinado número de posiciones
Memorias semiconductoras
N = 21 líneas en el bus de direcciones
– 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
• 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
Dec
odif
icad
or
de
fila
s N
Bus
de
dir
ecci
on
es
Buffers
M Bus de datos
…
…
…
…
…
…
…
…
…
…
Celda básica
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
N/2
MUX / DEMUX
M
…
…
…
…
…
…
N
Buffers
N/2
M M M
Estructura interna
Memorias semiconductoras B
us
de
dir
ecci
on
es
Dec
odif
icad
or
de
fila
s
Celda básica
Bus de datos M
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
– Bus de datos: dM-1:0
– Señal de habilitación : CS o CS
CS
aN-1:0 dM-1:0
ROM 2N × M
Memorias semiconductoras
• 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
Read-Only Memory, ROM
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
– Bus de datos: dM-1:0
– Señal de habilitación : CS o CS
– Señal de lectura / escritura: R/W
CS
aN-1:0 dM-1:0
ROM 2N × M
R/W
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
Memorias semiconductoras
• 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):
• BE0
• BE1
BE1 BE0 A0 ACCESO
0 0 - -
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
mic
ropro
cesa
dor
Memoria
$0000 Byte $0000
$0001 Byte $0001
$0002 Byte $0002
… …
$FFFE Byte $FFFE
$FFFF Byte $FFFF
Bus de direcc. A15-0
R/W
Bus de datos D7-0
Organización de la memoria para un microprocesador de 8 bits
Subsistema de Memoria Espacio de direccionamiento
$0000 Byte $0000 Byte $0001 Palabra $0000
$0001 Byte $0002 Byte $0003 Palabra $0002
$0002 Byte $0004 Byte $0005 Palabra $0004
… … … …
$7FFE Byte $FFFC Byte $FFFD Palabra $FFFC
$7FFF Byte $FFFE Byte $FFFF Palabra $FFFE
R/W
BE0 BE1
Subsistema de Memoria Espacio de direccionamiento m
icro
pro
cesa
do
r
Memoria
Bus de direcc. A15-1
Bus de datos D15-0
Organización de la memoria para un microprocesador de 16 bits
$0000 Byte $0000 Byte $0001 Byte $0002 Byte $0003 Palabra larga $0000
$0001 Byte $0004 Byte $0005 Byte $0006 Byte $0007 Palabra larga $0004
$0002 Byte $0008 Byte $0009 Byte $000A Byte $000B Palabra larga $0008
… … … … … …
$3FFE Byte $FFF8 Byte $FFF9 Byte $FFFA Byte $FFFB Palabra larga $FFF8
$3FFF Byte $FFFC Byte $FFFD Byte $FFFE Byte $FFFF Palabra larga $FFFC
R/W
BE1 BE0 BE2 BE3
Subsistema de Memoria Espacio de direccionamiento m
icro
pro
cesa
do
r
Memoria
Bus de direcc. A15-2
Bus de datos D31-0
Organización de la memoria para un microprocesador de 32 bits
Byte $0000
Byte $0001
Byte $0002
Byte $0003
…
Byte $FFFE
Byte $FFFF
Byte $0000 Palabra $0000
Byte $0001
Byte $0002 Palabra $0002
Byte $0003
Byte $0004 Palabra $0004
Byte $0005
…
Byte $FFFC Palabra $FFFC
Byte $FFFD
Byte $FFFE Palabra $FFFE
Byte $FFFF
Byte $0000 Palabra $0000
Palabra larga $0000 Byte $0001
Byte $0002 Palabra $0002
Byte $0003
Byte $0004 Palabra $0004
Palabra larga $0004 Byte $0005
Byte $0006 Palabra $0006
Byte $0007
…
Byte $FFFC Palabra $FFFC
Palabra larga $FFFC Byte $FFFD
Byte $FFFE Palabra $FFFE
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 Espacio de direccionamiento
• 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
mic
ropro
cesa
dor
DEC
MEM1
MEM2
MEMr
MEM1
MEM2
MEMr
…
Bus de control
…
…
CSr
CS2
CS1
Subsistema de memoria
Bus de direcciones
Bus de datos
Mapa de memoria
Esp
acio
dir
ecci
on
able
Subsistema de Memoria Diseño del subsistema 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
Subsistema de Memoria Mapa de memoria
A15 A14 A13 A12 A11-0 Rango Inicio Fin
0
32K
0
16K
0
8K
0 4K 0000
0FFF
1 4K 1000
1FFF
1
8K
0 4K 2000
2FFF
1 4K 3000
3FFF
1
16K
0
8K
0 4K 4000
4FFF
1 4K 5000
5FFF
1
8K
0 4K 6000
6FFF
1 4K 7000
7FFF
1
32K
0
16K
0
8K
0 4K 8000
8FFF
1 4K 9000 9FFF
1
8K
0 4K A000 AFFF
1 4K B000 BFFF
1
16K
0
8K
0 4K C000 CFFF
1 4K D000 DFFF
1
8K
0 4K E000 EFFF
1 4K F000 FFFF
Su
bsi
stem
a de
Mem
ori
a
Map
as d
e M
emori
a
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
0000 0000 0000 1111 1111 1111
• 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
a13-0 d7-0
M1 CS
ROM 16Kx8
a12-0 d7-0
M2 CS
RAM 8Kx8
a12-0 d7-0
M3 CS
RAM 8Kx8
R/W
R/W
CS1
CS2
CS3
A13-0
D7-0
R/W
A13-0
14
A12-0
13
A12-0
13
14
8
Subsistema de Memoria Banco 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
1
2
3
4
5
6
7
2
1
0
A15
A14
A13
DEC 3:8
0
1
2
3
1
0
A15
A14
DEC 2:4
Subsistema de Memoria Decodificación de memoria
top related