Академический Документы
Профессиональный Документы
Культура Документы
Temario:
– Definición de memoria
– Memoria volátil y no volátil
– ROM y RAM
– Tecnologías de ROM
– Tecnologías de RAM
– Decodificación de direcciones en memorias
– Medios magnéticos
– Otras tecnologías de almacenamiento
– Jerarquía de memoria en una computadora
– Memoria caché
– Memoria principal
– Memoria externa
1.1.- Memoria
¿Qué es la memoria en
una computadora?
1.1.- Memoria
Dentro de los parámetros más importantes para evaluar el rendimiento de una memoria
tenemos: capacidad de la memoria, velocidad de la memoria y organización de la memoria.
1.1.- Memoria
1.1.- Memoria
1.1.- Memoria
8 bits
000h
Memoria
01
3FFh
1.1.- Memoria
Memoria
03
Memoria
Memoria 02
1FFh
01
25Fh
FFFh
Se han desarrollado diversas tecnologías para la fabricación de memorias, cada una con
ventajas y desventajas (dependiendo de la aplicación). Por sus características, las memorias
pueden ser clasificadas en grupos.
Por el trabajo que requiere borrar y escribir datos en una unidad de memoria, ésta puede
clasificarse dos grupos: memoria de solo lectura (ROM) y memoria de acceso aleatorio
(RAM).
Por la vigencia de los datos luego de haber retirado la energía eléctrica a la unidad de
memoria, ésta puede clasificarse en dos grupos: memoria volátil y memoria no-volátil.
Memoria volátil
Memoria no-volátil
Flash EPROM
Desde principios de los 90’s las Flash EPROM se han vuelto memorias programables muy
populares entre los usuarios, por buenas razones. Primero, el borrado de todo el contenido
de la memoria toma menos de 1 segundo (de ahí su nombre, memoria Flash). Además, el
método de borrado de datos es eléctrico y, por esta razón, a este tipo de memoria también se
le llamaba Flash EEPROM. Para evitar confusión este tipo de memoria es llamada
simplemente Flash. La principal diferencia entre una memoria Flash y una EEPROM es que
cuando el contenido de una memoria Flash es borrado, éste es borrado por bloques
(formados de múltiples bytes), en contraste con la EEPROM donde el usuario puede borrar
solo los bytes que desea. Finalmente, en una memoria Flash el usuario puede programar y
borrar el chip de memoria hasta 100 000 veces.
Mask ROM
Mask ROM se refiere a un tipo de ROM en la cual el contenido es programado por el
fabricante del circuito integrado. En otras palabras, no es una ROM programable por el
usuario. El teŕmino mask (máscara) es empleado en la fabricación de circuitos integrados.
Dado que el proceso es costoso, las Mask ROM son usadas cuando el volumen requerido es
alto (cientos de miles de unidades) y existe la certeza de que el contenido no va a cambiar
(ya que es programable solo una vez). Este tipo de memoria es usada, por ejemplo, en la
findustria de los juguetes, donde se produce en gran cantidad.
Si la producción no es muy alta (cientos de unidades), entonces se suele emplear las OTP
(PROM), por tener un menor costo que las memorias programables múltiples veces.
Si la producción es muy alta (cientos de miles de unidades), entonces se suele emplear las
Mask ROM, ya que el costo de producción es menor que cuando se usan las memorias OTP.
DRAM Mejorada
Existen muchos tipos de DRAM y nuevos tipos aparecen en el mercado con regularidad, ya
que los fabricantes tratan de mantenerse a la par son el rápido incremento en la velocidad de
los procesadores. Cada tipo está basado en céldas DRAM convencionales, con
optimizaciones que mejoran la velocidad con la cual se puede acceder a estas céldas. Entre
las versiones mejoradas tenemos: Fast page mode DRAM (FPM DRAM), Extended data out
DRAM (EDO DRAM), Synchronous DRAM (SDRAM), Double data rate synchronous DRAM
(DDR, DDR2, DDR3), Rambus DRAM (RDRAM), Video RAM (VRAM).
● Por ejemplo: Un chip de 64K-bit (64K x 1) debe tener 16 líneas de dirección y una línea de
datos, requiriendo 16 pines para recibir la dirección si el método convencional es usado. A
esto se le debe agregar los pines de alimentación (VCC y GND) y los pines de control (leer
y escirbir).
● Por lo tanto, para reducir el número de pines requeridos para la dirección, se emplea
multiplexación/demultiplexación. El método empleado consiste en partir la dirección en dos
y enviar cada mitad de la dirección a través de los mismos pines. Internamente la
estructura DRAM está dividida en filas y columnas: la primera mitad de la dirección es
llamada la fila y la segunda mitad es llamada la columna.
Organización de la DRAM
En el caso de una DRAM con una organización de 64Kx1, la primera mitad de la dirección es
enviada a través de los 8 pines A0-A7, y activando la señal RAS (row address strobe), los
latches internos dentro de la DRAM hacen la conexión con la primera mitad de la dirección.
Después de eso, la segunda mitad de la dirección es enviada a través de los mismos pines, y
activando la señal CAS (column address strobe), los latches internos dentro de la DRAM
hacen la conexión con la segunda mitad de la dirección. Esto resulta en el uso de 10 pines en
lugar de los 16 pines que se requerirían sin multiplexación.
Los chips de memoria tienen uno o más pines denominados CS (chip select) o CE (chip
enable), los cuales deben activarse para poder acceder al contenido de la memoria.
Entonces, al conectar un chip de memoria con el CPU se deben tomar en cuenta los
siguientes puntos:
● El bus de datos del CPU es conectado directamente a los pines de datos del chip de
memoria.
● Las señales de control RD(leer) y WR(escribir) del CPU son conectadas a los pines OE
(habilitar salida) y WE (habilitar esccritura) del chip de memoria, respectivamente.
● En el caso de los buses de direcciones: Por un lado, los bits menos significativos de la
dirección van conectados directamente del CPU a los pines de memoria del chip. Por otro
lado, los bits más significativos de la dirección que salen del CPU son usados para activar
el CS del chip de memoria correspondiente. Ningún dato puede ser leído o escrito en una
memoria si el CS no se encuentra activado.
2) Los microcontroladores son computadoras de bajos recursos y bajo costo que se utilizan
para automatizar procesos dedicados. Leer la hoja de datos de diferentes microcontroladores:
ATmega2560, PIC18F4550, dsPIC33FJ16GS402, . Luego, responder a las siguientes
preguntas:
● ¿Qué tecnología (PROM, DRAM, EPROM, etc) utilizan estos microcontroladores para su
memoria de datos ?
Los discos magnéticos son el “caballo de batalla” de los dispositivos de almacenamiento para
almacenar grandes cantidades de información, en el orden de los cientos de miles de
gigabites, en contraste con los cientos o miles de megabytes que pueden almacenarse en
una memoria basada en RAMs. Sin embargo, para leer información en un disco se requiere
periodos de tiempo en el orden de los milisegundos, es decir, unas 100 000 veces más de lo
que se requiere para leer una DRAM y 1 000 000 veces más de lo que se requiere para leer
una SRAM. Por sus características, los discos magnéticos constituyen el componente más
importante de la memoria externa de, prácticamente, cualquier computadora personal actual.
Platos
Los discos están hechos de platos circulares. Cada plato tiene dos caras o superficies, está
hecho de material no magnético (llamado el substrato) y está cubierto con material
magnetizable. Por su forma de fabricación los discos magnéticos pueden clasificarse en dos
grupos básicos: disco flexible (floppy disk) y disco duro (hard disk). Por un lado, un disco
flexible emplea como “plato” una lámina delgada de plástico. Por otro lado, un disco duro
emplea un grupo de platos metálicos apilados.
Sectores Pistas
Movimiento de la cabecera:
● Cabezal fijo (uno por pista)
● Cabezal móvil (uno por superficie)
Número de platos:
● Un plato
● Múltiples platos
Mecanismo de la cabecera:
● Contacto
● Espacio fijo
● Espacio aerodinámico (Winchester)
Con el uso de múltiples discos, existe una gran variedad de maneras en que los datos
pueden ser organizados y en las cuales se puede agregar redundancia para mejorar la
confiabilidad.
Con el propósito de tener arreglos de discos que sean compatibles con diferentes plataformas
y sistemas operativos, la industria ha creado esquemas estandarizados para el diseño de
bases de datos para múltiples discos conocidos como RAID (Redundant Array of Independent
Disks). El esquema RAID consta de 7 niveles (de 0 a 6), los cuales comparten 03
caraterísticas comunes:
● RAID es un conjunto de discos físicos que son vistos como una sola unidad por el sistema
operativo.
● Los datos son distribuidos a través de los discos físicos de un arreglo.
● La capacidad redundante del disco es usada para almacenar información de paridad, la
cual garantiza la recuperabilidad de los datos en caso de una falla de disco.
RAID 0
El RAID Nivel 0 no es un verdadero miembro de la familia RAID, porque no incluye
redundancia para mejorar el rendimiento. Sin embargo, existen algunas aplicaciones en las
cuales el rendimiento, la capacidad y el bajo costo son más importantes que la confiabilidad.
En un RAID 0 los datos del usuario y del sistema son distribuidos a través de todos los discos
en el arreglo. La ventaja es que si dos solicitudes de E/S diferentes están pendientes para
dos bloques de datos, entonces es muy probable que los bloques requeridos se encuentren
en diferentes discos. De esta manera, las dos solicitudes pueden ser atendidas en paralelo.
RAID 1
Se diferencia de los demás RAIDs por la manera en que alcanza la redundancia. En los otros
esquemas RAID, se usa algún tipo de cálculo de paridad para introducir redundancia,
mientras que en RAID 1 la redundancia es alcanzada por el simple recurso de duplicar todos
los datos.
RAID 2
Los RAIDs de nivel 2 y nivel 3 hacen uso de técnicas de acceso en paralelo. En un array con
acceso en paralelo, todos los discos miembros participan en la ejecución de cada solicitud de
E/S. En RAID 2, el código de correción de errores es calculado a través de los bits
correspondientes en cada disco de datos, y los bits del código son almacenados en las
posiciones de bits correspondientes de múltiples discos de paridad. Típicamente se emplea el
código Hamming.
RAID 3
Está organizado de manera similar que el RAID 2. La diferencia está en que RAID 3 requiere
solo un disco redundante, sin importar que tan grande sea el arreglo de discos. RAID 3
emplea acceso en paralelo, con los datos distribuidos en pequeñas tiras. En lugar de un
código de error, se calculan bits de paridad para el grupo de bits individuales en la misma
posición en todos los discos de datos.
RAID 1
(Reflejado)
RAID 2
(Redundancia mediante
Código Hamming)
RAID 3
(Paridad de bits intercalados)
RAID 4
Los RAIDs del nivel 4 al 6 también distribuyen sus datos en tiras, pero hacen uso de una
técnica de acceso independiente. En un arreglo de acceso independiente, cada disco
miembro opera de manera independiente, de modo que las solicitudes de E/S pueden ser
atendidas en paralelo. En un RAID 4 una tira de paridad bit por bit es calculada a través de
las tiras correspondientes en cada disco, y los bits de paridad son almacenados en la tira
correspondiente del disco de paridad.
RAID 5
Está organizado de manera similar que RAID 4. La diferencia es que RAID 5 distribuye las
tiras de paridada a través de todos los discos. La distribución de las tiras de paridad a través
de todos los discos evita el riesgo potencial de un cuello de botella de E/S, que se puede
encontrar en RAID 4.
RAID 6
En el esquema RAID 6, dos diferentes cálculos de paridad son llevados a cabo y
almacenados y almacenados en bloques separados, en discos diferentes. La ventaja de
RAID 6 es que proporciona una disponibilidad de datos extremadamente alta.
RAID 4
(Paridad a nivel de bloques)
RAID 5
(Paridad distribuida a nivel de bloques)
RAID 6
(Redundancia dual)
CD (Disco Compacto)
Tanto el CD de audio como el CD-ROM (compact disk read only memory) comparten una
tecnología similar. La diferencia principal es que los reproductores de CD-ROM son más
robustos y cuentan con dispositivos de corrección de errores. Ambos tipos de disco son
hechos de la misma manera. El disco está formado por una resina (como el policarbonato).
La información almacenada digitalmente es impresa como una serie de agujeros
microscópicos sobre la superficie del policarbonato. Esto se logra mediante el uso de un láser
de alta densidad finamente concentrado. Por otro lado, la lectura de los datos se realiza
mediante un láser de baja potencia, incorporado en un reproductor de discos ópticos. Al inico,
el usuario solamente podía leer los discos ópticos, hasta la aparición de los CD Grabables y
los CD Reescribibles.
Los sistemas de cinta magnética usan las mismas técnicas de lectura y escritura que usan
los discos magnéticos. El medio es una cinta de poliester flexible cubierta de material
magnetizable. Las cintas solían venir empacadas en carretes abiertos que debían ser
acoplados a un segundo eje para ser usados. Hoy en día, todas las cintas vienen empacadas
en cartuchos. Los datos en la cinta se encuentran estructurados como un número de pistas
paralelas corriendo a lo largo de la cinta. Los primeros sistemas de cinta usaban 9 pistas.
Esto hacía posible almacenar un byte de datos a la vez, con un bit adicional de paridad en la
novena pista. Luego aparecieron sistemas de cinta con 18 y 36 pistas, las cuales permitían
transferir palabras de múltiples bytes. El grabar los datos de esta manera se conoce como
grabación paralela. Los sistemas modernos usan grabación serial (secuencia de bits en una
pista) en lugar de paralela.
● La segunda pregunta es, en cierto modo, más fácil de responder. Para alcanzar el mayor
rendimiento, la memoria debe ser capaz de seguir el ritmo del procesador. Esto quiere
decir que, si el procesador está ejecutando instrucciones, no deseamos que éste tenga
que hacer una pausa para esperar a las instrucciones o a los operandos.
Como se puede esperar, existe un trade-off entre las tres características clave de la
memoria: costo, capacidad y tiempo de acceso.
Concepto de trade-off
Ejemplo:
A través del tiempo, una variedad de tecnologías han sido usadas para implementar sistemas
de memoria. A lo largo de este espectro de tecnologías se han mantenido las siguientes
relaciones:
Sin embargo, para cumplir con los requerimientos de rendimiento (velocidad), el diseñador
necesita utilizar memoria costosa, con capacidad más baja y con tiempo de acceso corto
(más rápidas).
De esta manera, las memorias más pequeñas, más caras y más rápidas se complementan
con memorias más grandes, más baratas y más lentas.
La clave del éxito de esta organización es el item (d): reducción de la frecuencia con la que el
procesador accede a la memoria.
● El nivel 1 contiene 1000 palabras y tiene un tiempo de acceso de 0.01 us (T 1); el nivel 2
contiene 100 000 palabras y tiene un tiempo de acceso de 0.1 us (T 2).
● Asumir que si se debe acceder a una palabra en el nivel 1, el procesador accede a ella
directamente.
● Por simplicidad, ignorar el tiempo requerido para que el procesador determine si la palabra
se encuentra en el nivel 1 o el nivel 2.
T1 + T2
Tiempo promedio de acceso
T2
T1
0 1
Fracción de accesos únicamente al nivel 1.
El comportamiento mostrado el ejemplo anterior sirve como base del Principio de Localidad,
el cual establece lo siguiente:
“Los programas, durante su ejecución, no acceden con la misma probabilidad a todos sus
datos o instrucciones. Partiendo de esto, basándonos en el pasado reciente de un programa,
podemos predecir con una precsión razonable que instrucciones y datos se utlizarán en un
futuro próximo.”
Localidad espacial .- Cuando un programa accede a una instrucción o a un dato, existe una
elevada probabilidad de que instrucciones o datos cercanos sean accedidos pronto.
Localidad temporal.- Cuando un programa accede a una instrucción o a un dato, existe una
elevada probabilidad de que esa misma instrucción o dato vuelva a ser accedido pronto.
El principio de localidad puede ser aplicado en más de dos niveles de memoria. Por ejemplo,
en un sistema de memoria típico (ver imagen en la página siguiente):
● El tipo de memoria más rápido, más pequeño y más costoso consiste en los registros
internos del procesador. Típicamente un procesador puede contener desde algunas
docenas hasta cientos de registros.
● Dos niveles más abajo se tiene la memoria principal, que es el sistema de memoria interno
más importante de la computadora. Cada ubicación en la memoria principal tiene una
dirección única.
● La memoria principal usualmente es extendida con una memoria más pequeña y de mayor
velocidad, llamada caché.
Las tres formas de memoria que se acaban de describir son volátiles y emplean tecnología de
semiconductores (RAM). Todas ellas forman lo que se conoce como memoria interna.
Frecuencia
de acceso Tiempo de
Capacidad
a memoria acceso
● Los discos tambien son usados para proporcionar una extensión para la memoria principal,
conocida como memoria virtual, la cual es importante cuando se trabaja con sistemas
operativos.
● La tecnología SRAM es más rápida, más costosa y menos densa que la DRAM, y es
usada para la memoria caché.
3.2.- Caché
Existe una memoria principal, relativamente grande, junto con una memoria caché más
pequeña y más rápida. La memoria caché contiene una copia de porciones de la memoria
principal.
Transferencia Transferencia
de palabras de bloques
Memoria
CPU Caché principal
3.2.- Caché
3.2.- Caché
● Cuando el procesador intenta leer una palabra de la memoria, se hace un chequeo para
determinar si la palabara se encuentra en la caché.
3.2.- Caché
3.2.- Caché
Tamaño de la caché: Se desea que la caché sea lo suficientemente pequeña para que el
costo promedio por bit sea cercano al de la memoria principal, y lo suficientemente grande
para que el tiempo de acceso sea cercano al de la memoria caché..
Política de escritura: Cuando el CPU modifica uno de los bloques en la caché, el bloque
correspondiente en la memoria principal debe ser actualizado. Para esto se tienen diferentes
políticas: escribir a través, escribir de regreso, escribir una vez.
Número de cachés: En los primeros sistemas solo había una caché, pero actualmente el uso
de múltiples cachés es una norma: caché multinivel, caché unificada o dividida.
Función de mapeo
Existen tres técnicas que pueden ser usadas para llevar a cabo este mapeo: directa,
asociativa y asociativa grupal.
Para demostrar el funionamiento de cada una de las técnicas se empleará un mismo ejemplo,
el cual incluye los siguientes elementos:
● Los datos son transferidos entre la memoria principal y la caché en bloques de 4 bytes.
Esto quiere decir que la caché se encuentra organizada en 16K = 2 14 líneas de 4 bytes
cada una.
Una memoria hecha de semiconductores está sujeta a errores. Estos errores pueden ser
categorizados como fallas de hardware y errores de software.
Una falla de hardware es un defecto físico permanente que impide que la celda o celdas de
memoria afectadas puedan almacenar datos de manera confiable.
El más simple de los códigos de detección de errores es el código Haming, desarrollado por
Richard Hamming. El uso de este código puede ser explicado mediante diagramas de Venn
(en la página siguiente). Por simplicidad se tomará como ejemplo palabras de 4 bits:
b) Los compartimentos restantes son llenados con lo que se conoce como bits de paridad.
Cada bit de paridad es elegido de modo que el número total de 1s en su círculo es par. Así,
dado que el círculo A incluye tres 1s, el bit de paridad en ese círculo es 1.
c) Ahora, si un error cambia uno de los bits de datos, puede ser detectado fácilmente.
Verificando los bits de paridad, se pueden encontrar discrepancias en el círculo A y el
círculo C, pero no en el círculo B.
¿Cómo se desarrolla un código Hamming que pueda detectar y corregir errores de 1 bit
en palabras de 8 bits?
Determinar la longitud del código. De acuerdo con el diagrama de la página anterior, la lógica
de comparación recibe como entrada dos valores de K bits. El resultado de esta comparación
es llamado palabra síndrome.
Como el error puede ocurrir en cualquiera de los M bits de datos o los K bits de verificación,
debe cumplirse que:
2K – 1 ≥ M + K
Esta desigualdad permite calcular el número de bits requeridos para corregir un error de un
solo bit en una palabra que contiene M bits de datos. Por ejemplo, para una palabra de 8 bits
de datos (M = 8) se tiene:
K = 3; 23 – 1 < 8 + 3 K = 4; 24 – 1 > 8 + 4
Por conveniencia, se desea generar un síndrome de 4 bits para una palabra de 8 bits de
datos con las siguientes características:
● Si el síndrome contiene un solo bit 1, entonces un error ha ocurrido en uno de los 4 bits de
verificación. No hace falta ninguna corrección.
Para lograr estas características, los bits de datos y los bits de verificación (paridad) son
distribuidos en una palabra de 12 bits tal como se muestra.
Las posiciones de los bits son enumeradsa del 1 al 12. Las posiciones de los bits cuyos
números de posición son potencias de 2 son designados los bits de verificación. La
verificación se realiza como se muestra a continuación:
C1 = D1 ⊕ D2 ⊕ D4 ⊕ D5 ⊕ D7
C2 = D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7
C4 = D2 ⊕ D3 ⊕ D4 ⊕ D8
C8 = D5 ⊕ D6 ⊕ D7 ⊕ D8
Cada bit de verificación opera sobre cada bit de datos cuyo número de posición contiene un 1
en la misma posición que el número de posición de ese bit de verificación.
Por ejemplo, asumiendo que la palabra de datos es 00111001, y que D1 es el bit menos
significativo, el cálculo sería:
C1 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 1
C2 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 1
C4 = 0 ⊕ 0 ⊕ 1 ⊕ 0 = 1
C8 = 1 ⊕ 1 ⊕ 0 ⊕ 0 = 0
Supongamos que el bit 3 de datos contiene un error y es cambiado de 0 a 1. Cuando los bits
de verificación son recalculados, tenemos:
C1 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 1
C2 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0
C4 = 0 ⊕ 0 ⊕ 1 ⊕ 0 = 0
C8 = 1 ⊕ 1 ⊕ 0 ⊕ 0 = 0
Cuando los nuevos bits de verificación son comparados con los bits de verificación
anteriores, se forma la palabra síndrome:
C8 C4 C2 C1
0 1 1 1
⊕ 0 0 0 1
--------------------------
0 1 1 0
El resultado es 0110, lo cual indica que el bit en la posición 6, el cual corresponde al bit 3 de
datos, contiene un error.
El código descrito anteriormente se conoce como código para corrección de un solo error
(SEC). Sin embargo, es más común que las memorias semiconductoras empleen un código
para corrección de un solo error y detección de dos errores (DED). Como se vió en una tabla
anterior, estos bits requieren un bit adicional en comparación con los códigos SEC.
En una computadora personal, existen dos casos especiales que se consideran dentro de la
memoria interna: la memoria BIOS y la memoria CMOS.
Cada módulo de E/S crea la interfaz entre el bus del sistema y los dispositivos periféricos
(incluyendo unidades de almacenamiento externo). Estos módulos son necesarios para
acondicionar (formato, tiempo) la información proporcionada y recibida por cada uno de los
periféricos.
● Permitir la comunicación de los periféricos con el procesador y la memoria a través del bus
principal.
● Permitir la comunicación entre dispositivos periféricos mediante enlaces de datos
específicos (a meidida).
4.3.- Conclusión
4.3.- Conclusión
5.- PREGUNTAS