Вы находитесь на странице: 1из 26

MEMORIAS

Por:
Arana Mantilla, Oscar
Burgos Ninatanta, Cristian
Briones Prieto, Franki
Diaz Chavez, Carlos
Idrogo Blanco, Laurita
Principe Cerquin, Gustavo
Teran Huaman, Cesar

I. MEMORIA CACHÉ
1. Conceptos Básicos de Memorias:
a) Características de las memorias:
 Ubicación: La ubicación de memorias son muy importantes ya que hay dos tipos la
memoria interna que sería la principal y la memoria externa. Hay memorias internas como
puede ser en el procesador ya que tiene su propia memoria local que guardan los
registros, así también como son la memoria interna del control del procesador. La memoria
caché es una memoria interna, la memoria externa consta de dispositivos periféricos que
se conectan a través de E/S.
 Capacidad: Las memorias internas y externas se miden en bytes, o también pueden ser
por la longitud de palabra los cuales se expresan comúnmente en 8, 16 ,32 bits.
 Unidad de Transferencia: En la transferencia de las memorias internas se tendrá que
tomar en cuenta la palabra y el direccionamiento, comúnmente se da que la unidad de
transferencia es igual a las líneas de datos de la E/S de la memoria, casi a menudo es
igual a la longitud de la palabra pero mayormente es mucho más la longitud.
 Palabra: La palabra se representa en bits y es igual al número que lo representa y
la longitud de sus instrucciones.
 Unidades direccionales: En ciertos sistemas las unidades direccionales son la
palabra lo cual permiten direccionarlo a través de bytes, lo cual hay una relación de
la longitud de una dirección con el número de unidades lo cual daría la fórmula
2A=N.

En la memoria interna o principal es el número de bits que se utilizan para leer o escribir
en la memoria y no tiene que coincidir con la palabra o con las unidades direccionales, en
el caso de la memoria externa, los datos se transfieren con unidades más grandes que de
la palabra que son denominados bloques.

 Accesos:
 Acceso Secuencial: La memoria se organiza a través de registros, lo cual se hace
uso de almacenamiento para direccionamiento que permite separar los registros y
la recuperación de datos. Se utiliza el mecanismo de lectura/escritura para la
transferencia de datos de una ubicación a otra.
 Acceso Directo: También se utiliza un mecanismo de lectura/escritura, lo cual en
este caso tiene una única dirección, se busca en una vecindad dada a través de
una búsqueda secuencial o esperando a que llegue a su posición correspondiente.
 Acceso Aleatorio: La memoria caché es de acceso aleatorio, así que cada posición
a direccionarse de memoria tiene un único mecanismo, lo cual llegar a su posición
es constante e independiente de los demás, lo que cualquier posición puede
seleccionar y direccionarse y accede directamente.
 Asociativa: En este caso se ingresa un dato y se compara cada elemento de la
palabra con las palabras de los registros hasta obtener su valor igual, en este caso
también se utiliza un acceso aleatorio ya que es constante su posición, se puede
direccionar y acceder directamente, la memoria caché emplea un acceso asociativo.
 Prestaciones: En una memoria hay dos características importantes su capacidad y sus
prestaciones.
 Tiempo de acceso: En memorias de acceso aleatorio es el tiempo en realizar una
lectura o escritura desde que se da la presencia de una dirección hasta obtener el
dato para poder ser utilizado, para otras memorias es tiempo en realizar su
mecanismo de lectura/escritura en la posición deseada.
 Tiempo de ciclo de memoria: Es el tiempo en realizar un acceso aleatoria a la
memoria antes de realizar otra consulta a esta, lo cual tiene un tiempo adicional
para finalizar las transiciones en líneas de señal, lo cual en tiempo de ciclo de
memoria depende del bus del sistema y no del procesador.
 Velocidad de transferencia: Es tiempo que demora en transferir un dato desde una
unidad de memoria, en los accesos aleatorios es el tiempo inverso del ciclo. En
otras memorias se utiliza una relación del tiempo medio de escritura o de lectura de
cierta cantidad de bits que será igual a la suma del tiempo de acceso medio y el
número de bits sobre la velocidad de transferencia.

 Jerarquía de Memorias: Las jerarquías se dan tanto en capacidad, rapidez y coste. En la


capacidad es un tema que tendrá que ver quién tiene mayor capacidad para almacenar
información, en la cuestión de rapidez se tendrá que tener en cuenta las prestaciones que
se tiene, así con ir de la mano con el procesador sin tener que esperar instrucciones del
operador, del coste se relaciona con otros componentes. Hay cumplimientos de ciertas
relaciones como es:
o A menor tiempo de acceso, mayor coste por bits.
o A mayor capacidad, menor coste por bit.
o A mayor capacidad, mayor tiempo de acceso.

Por lo tanto la jerarquía se da así. En lo más alto va la memoria de tarjeta impresa, que lo
conforman los registros, caché y la memoria principal, luego de ella en el medio está el
almacenamiento fuera de tarje, que lo conforman los discos magnéticos que son CD-ROM,
CD-RW, DVD-RW, DVD-RAM, y por último está el almacenamiento fuera de línea que lo
conforman la cinta magnética la MO y la WORM. Es así como se jerarquizan las memorias.

Lo importante de las memorias no es tanto el coste de bit, ni la capacidad, ni el tiempo de


acceso, si no es la disminución frecuente de acceso de memoria por parte del procesador.

Para las prestaciones de dos niveles se tiene en cuenta las prestaciones de acceso por
parte del procesador a la memoria, que son localidad de las referencias, que trabaja con
bucles iterativos. Las memorias de dos niveles trabajan a través de pasar ciertas
agrupaciones de información a otro nivel más alto lo cual deja un espacio para que pueda
entrar otra información en la memoria más baja.

2. Principios Básicos de las memorias Caché:

El objetivo de la caché es poder lograr que la velocidad de la memoria sea lo más rápida posible,
lo cual el CPU o procesador transfiere palabras a la caché y está a su vez transfiere bloques de
palabras a la memoria interna o principal. La caché tiene cierta información copiada de la memoria
principal, tal es el caso que cuando el procesador quiera leer un dato de la memoria principal
primero buscará en la caché si se encuentra esa palabra, si no estaría un bloque de palabras
pasaría a la caché de la memoria principal y luego al procesador, esto se da en las prestaciones
de dos niveles que usa la localización de referencias. La memoria principal consta de cierta
cantidad de celdas que se representa 2X que cada palabra tiene cierta longitud, en la caché tiene
C líneas y cada línea contiene K palabras, así que la memoria principal se separa por bloques que
dichos bloques contiene cierta cantidad de celdas, ahora cada línea de la caché puede soportar
un bloque de la memoria principal, hay más bloques de la memoria principal que líneas de la caché.

3. Elementos de Diseño de la Caché:


 Tamaño de Caché: Sería muy conveniente que sea pequeño para que sea menor el coste
por bit se igual al de la memoria principal, o también que sea grande para que los tiempos
de accesos medio sea próximo a la de la caché sola. La caché al ser grande ayudaría que
haya más compuertas para direccionarlas, pero el problema es que son más lentas,
mientras más pequeño sea la caché más rápida será, las cachés grandes son lentas aun
siendo fabricadas con la tecnología que se hacen las cachés pequeñas con los mismo
circuitos integrados, el tamaño también implica las prestaciones ya que son muy sensibles,
lo cual también tendrá que ver con los tamaños físicos de sus periféricos.
 Función de Correspondencia: Anteriormente mencionamos que las líneas de la caché
son menores a los bloques de palabras de la memoria principal, lo cual se necesita saber
a través de un algoritmo que bloque se encuentra en que línea de la caché, así que la
correspondencia organiza a la caché, lo cual se emplean tres técnicas, la directa,
asociativa y asociativa por conjuntos.
 Correspondencia Directa: Consiste en que cada bloque de la memoria principal
corresponda a una sola línea de la caché, así que cada bloque tiene un única
dirección en la línea de la caché, pero si se sobre escribe un bloque en la cache se
tendrá que etiquetar para poder diferenciarlos de los demás. Se podría decir que
cada bloque de la memoria principal tiene un única etiqueta, lo cual en el bloque
contiene la dirección de palabras y cada línea de palabra tiene una dirección, a la
hora de ser transferido a la memoria caché primero se tendrá la etiqueta del bloque
luego de ello la dirección del dato, y por último la dirección de la línea de la palabra
de la memoria. La desventaja de esta correspondencia es que hay una sola posición
de caché para cada bloque, es decir si hay un programa que utilice una misma línea
de la caché para entrar a bloques diferentes de la memoria principal se estarían
intercambiando a cada vez que utilices esa misma línea.
 Correspondencia Asociativa: Esta correspondencia supera la desventaja de la
correspondencia directa, permitiendo que cada bloque de memoria principal se
cargue en cualquier línea de la caché, lo cual el control de la caché solo identifica
la etiqueta y el campo de la palabra, ahora para que la caché identifique un bloque
tiene que comparar con cada etiqueta hasta que sean iguales la etiqueta buscada.
La gran desventaja de esta correspondencia es la gran circuitería que hay para
examinar las etiquetas en paralelo de todas las líneas de caché.
 Correspondencia Asociativa por Conjuntos: Está correspondencia recoge toda la
información que se puede tener tanto en la correspondencia directa, como en la
asociativa sin tomar sus desventajas. La caché se divide en cierta cantidad de
bloques que contiene cierta cantidad de líneas. Los bloques de memoria principal
al separarse en bloques y cada bloque tiene una única etiqueta y cada bloque tiene
un conjunto de palabras que tienen un misma dirección en cada bloque de la
memoria principal y sus datos. Ahora en la caché también hay bloques pero esos
bloques se interrelacionan a través del número de conjuntos que correspondería al
conjunto de palabras de la memoria principal, en cada bloque de la caché se guarda
la etiqueta de cada bloque de la memoria y el dato, un ejemplo sería si es que el
bloque de etiqueta “000” que tiene el dato “123456789” se relaciona con otro bloque
de memoria principal que tiene la etiqueta “001” y dato “987654321” a través de que
cada dato tiene una dirección similar en cada bloque diferente de la memoria
principal que puede ser “0000”, y así es como se complementan todos los bloques
de la caché. Ahora para que busque cierto dato la caché a través de dicha
correspondencia la etiqueta de una dirección o el dato de memoria es bastante larga
y debe compararse con la etiqueta de cada línea de la caché, así que las etiquetas
de los bloques de memorias como son más cortas se pueden comparar con solo
las etiquetas dentro de un solo conjunto lo cual es más rápido.
 Algoritmos de Sustitución: Si es que la memoria caché se ha llenado y queremos
introducir un nuevo bloque se tendrá que sustituir un bloque que ya existe en la caché. En
la correspondencia directa ya que cada bloque corresponde a una única línea de la caché
no hay elección posible. Pero en las correspondencias asociativas se necesita los
algoritmos de sustitución, ya que este algoritmo es de alta velocidad se tuvo que
implementar en el hardware, hay cuatro tipos que son:
 LRU (least-recently usede o utilizado menos recientemente): El LRU es el más
efectivo consiste en que el bloque que tiene más tiempo en la caché es sustituido,
sin haber sido referenciado, esto fácil de implementar para la correspondencia
asociativa de dos vías, cada línea tiene un bit USO. Cuando quieres hacer
referencia de un bloque el bit USO se coloca en 1 y la línea en 0; mientras si quieres
transferir un bloque el bit USO se coloca en 0, lo cual hace tener más probabilidad
de referenciar las posiciones de memorias utilizadas recientemente, ya que la LRU
da más cantidad de aciertos.
 FIFO (First-In-First-Out o primero en entrar – primero en salir): Se sustituye aquel
bloque que ha estado más tiempo en la caché, se implementa fácilmente con un
algoritmo de buffer circular.
 LFU (Least-Frequently-Used o utilizado menos frecuentemente): Se sustituye aquel
bloque que ha sido referenciado menos veces, se implemente en el algoritmo con
un contador en cada línea.
 Sustitución Aleatoria (línea al azar): Se escoge una cierta línea entre las posibles
candidatas, se ha mostrado proporciona prestaciones solo ligeramente inferiores a
un algoritmo basado en la utilización SMIT82.
 Política de Escritura: En el caso de transferencia de bloques, si es que no se pudiera
modificar el bloque más antiguo se tendrá que sobre escribir, es decir al querer insertar
un bloque de la memoria principal a la caché se y esa línea de la caché tuvo una operación
que fue de escritura, se tendrá que rescribir la línea en el bloque a insertar en la memoria
principal para luego ser transferida a la memoria caché. Hay problemas con las unidades
que se conectan a la memoria como puede ser la E/S, si esta unidad modifica una palabra
en la memoria no será reconocida en la caché o igual el caso si es modificado en la caché
no es reconocida en la memoria, otro problema es cuando diferentes procesadores se
conectan a un mismo bus, lo cual cada procesador tendrá su memoria caché diferente y
si modificamos o ingresamos una palabra en una de las cachés puede invalidar una
palabra en las otras cachés.
Hay ciertas técnicas que ayudan a resolver este problema como son:
 Escritura inmediata: Trata que cualquier modificación hecha en la caché se hacen
las mismas operaciones tanto en esta como en la memoria principal, lo cual la
información de la memoria sea válida y otros periféricos pueden estar al tanto de
esta modificación de la caché. Su mayor desventaja es que genera tráfico en la
memoria lo cual genera un cuello de botella haciendo lenta la transferencia.
 Post-escritura: Minimiza las escrituras en memoria, trata que tiene en la línea un bit
de ACTUALIZAR, cuando se modifica en la caché se modificará en la memoria si y
solo si el bit está ACTIVO, el problema es que los puertos de E/S tiene que ingresar
a la memoria a través de la caché que genera un tráfico potencial y genera un cuello
de botella.

Hay posibles coherencias de caché que son:

 Vigilancia del bus con escritura inmediata: Cada controlador de la caché motoriza
los buses de direccionamiento a las memorias lo cual mantiene informado a la
caché de cualquier operación por parte de otros buses. Si otro bus escribe en una
posición de memoria también reside en la memoria caché, el controlador invalida el
elemento de la caché, tiene que ver la política empleada para todos los
controladores de la caché.
 Transparencia hardware: Se utiliza un dispositivo para que cualquier actualización
en una caché se modifique en las otras cachés, así que un procesador modifica en
su caché lo cual esta modificación se escribe en la memoria principal y de igual
manera se actualizan todas las palabras coincidentes de otras cachés.
 Memoria excluida de caché: Hay una parte de la memoria principal donde todos los
procesadores se conectan ahí y está diseña a no transferirse a la caché, en este
caso todos los accesos a la memoria compartida son los fallos de la caché, ya que
nunca se copia en la caché, la memoria excluida de caché se identifica a través de
una lógica de selección de chip o bits de dirección.
 Tamaño de línea

Es un elemento del diseño, a medida que aumenta el tamaño del bloque, la tasa de aciertos
primero aumenta debido al principio de localidad, que establece que es probable que los datos
sean referenciados en un futuro próximo. También, más datos útiles son llevados a la cache. La
tasa de aciertos comenzara a decrecer cuando el tamaño del bloque se haga aun mayor y la
probabilidad de utilizar la nueva información que tiene que reemplazarse. Dos son los efectos:

o Bloques más grandes reducen el número de bloques que caben en el cache. Cada bloque
captado se escribe sobre los contenidos de los anteriores cache, si el número de bloques
es reducido se da lugar a que se sobrescriban datos después de ser captados.
o A medida que un bloque sea más grande, cada palabra adicional está más lejos de la
requerida y es más improbable que sea necesaria a corto plazo.
La relación entre el tamaño del bloque y la tasa de aciertos, depende de las características de
localidad de cada programa, pero no hay un valor óptimo. Para sistemas HPC los tamaños de
línea cache más frecuentes son de 64 y 128 bytes.

 Numero de caches

Antes un sistema tenia normalmente solo un cache, recientemente es una norma el uso múltiple
de caches, hay dos aspectos relacionados con el número de niveles de caches y el uso de cache
unificada frente al de caches separadas:

 Caches multinivel:

Con el aumento de densidad de integración, es posible tener una cache en el mismo chip del
procesador (cache on-chip), que reduce la actividad del bus externo del procesador y por tanto
reduce los tiempos de ejecución e incrementa las prestaciones globales del sistema. Cuando la
instrucción o el dato se encuentran en la cache on-chip, se elimina el acceso al bus, ya que los
caminos de datos internos son muy cortos en comparación la longitud de los buses, los accesos
al cache on-chip son más rápidos que los ciclos de bus y el bus está libre para realizar otras
transferencias.

La inclusión de una cache on-chip deja la posibilidad de una cache externa u off-chip. Los diseños
actuales incluyen cache on-chip como externa. La estructura más sencilla se denomina cache de
dos niveles: cache interna el nivel 1 (L1) y externa el nivel 2 (L2). La razón por la que se incluye
una cache L2 es porque si no estuviera presente y el procesador hace una petición de acceso a
una posición de memoria que no está en el cache L1, entonces el procesador debe acceder a la
DRAM o a la ROM a través del bus, la lentitud del bus y al acceso de las memorias, se obtienen
bajas prestaciones. Si se utiliza una cache L2 SRAM (RAM estática) entonces se puede acceder
a la información rápidamente.

Hay dos características de la L2, la primera es que para el caso de una cache L2 externa, muchos
diseños no usan del bus del sistema como camino para las transferencias entre la cache L2 y el
procesador, sino se emplea un camino de datos aparte para reducir el tráfico en el bus del sistema.
En segundo lugar, la continua reducción de dimensiones de los componentes del procesador, es
más fácil encontrar procesadores que incorporan la cache L2 en el propio chip, por consiguiente
mejora de prestaciones.

La mejora del uso de una cache L2 depende de las tasas de aciertos en ambas caches L1 y L2,
el uso de un segundo nivel de cache mejora las prestaciones, sin embargo el uso de caches
multinivel complica los aspectos de diseño de la cache, el tamaño, algoritmo de sustitución y la
política de escritura.

En la mayoría de los microprocesadores modernos se ha llevado el cache L2 al chip del procesador


y se añade una cache L3 que inicialmente era accesible a través del bus externo, pero ahora los
microprocesadores han incorporado una L3 on-chip, añadir un tercer nivel supone una mejora de
prestaciones.

 Cache unificada frente a caches separadas:

Con las caches on-chip se almacenaba tanto datos como instrucciones, ahora se ha hecho separar
la cache en dos: una dedicada a instrucciones y otra a datos. La cache unificada tiene varias
ventajas potenciales:

a) Para un tamaño dado de cache, una unificada tiene una tasa de acierto mayor que una
cache partida, ya que nivela la carga entre captación de instrucciones y de datos.
b) Solo se necesita diseñar e implementar una cache.
A pesar de las ventajas, la tendencia es hacia caches separadas, para maquinas superescalares
tales como Pentium y PowerPC, en las que se enfatiza la ejecución paralela de instrucciones
futuras previstas. La ventaja es que elimina la competición por la cache entre el procesador de
instrucciones y la unidad de ejecución.

4. Organización de la cache en el Pentium 4 y el PowerPC


a) Organización de cache en el Pentium 4
La evolución de la organización de la cache se observa claramente en la evolución de los
microprocesadores de Intel. El 80386 no incluía cache on-chip, el 8048 incluye una sola cache on-
chip de 8KB, utilizando un tamaño de línea de 16 bytes y una organización asociativa por conjunto
de cuatro vías. Todos los Pentium incluyen dos caches L1 on-chip, una para datos y otra para
instrucciones. Para Pentium 4, la cache de datos es de 8 KB, utilizando un tamaño de línea de 64
bytes y una organización asociativa por conjuntos de cuatro vías. El Pentium 2 incluye también
una cache L2 que alimenta a las dos caches L1. El Pentium 3 se añadió una cache L3 que paso a
ser on-chip en las versiones avanzadas del Pentium 4. El núcleo del procesador consta de cuatro
componentes principales:

o Unidad de captación/decodificación: capta las instrucciones en orden de la cache L2,


las decodifica a través de micro-operaciones y memoriza los resultados en la cache L1.
o Lógica de ejecución fuera-de-orden: planifica la ejecución de micro-operaciones
teniendo en cuenta la dependencia de datos y los recursos disponibles, así se planifica la
ejecución de micro-operaciones en un orden diferente del que fueron captados en la
secuencia de instrucciones. Si hay tiempo, esta unidad planifica la ejecución especulativa
de micro-operaciones que puedan necesitarse en el futuro.
o Unidades de ejecución: Ejecutan las micro-operaciones, captan los datos necesarios de
la cache L1 y almacenan temporalmente los datos en registros.
o Subsistema de memoria: Incluye las caches L2 y L3, el bus del sistema para acceder a
la memoria principal en caso la L1 y L2 tengan un fallo de cache, así como para acceder
a los recursos E/S del sistema.
La cache de instrucciones de la Pentium 4 está situada entre la lógica de decodificación de
instrucciones y el núcleo de ejecución, ya que decodifica o traduce sus instrucciones maquina a
instrucciones del tipo RISC, llamadas micro-operaciones, esto posibilita la utilización de
segmentación superescalar y de técnicas de planificación que mejoran las prestaciones. Sin
embargo, las instrucciones máquina del Pentium son difíciles de decodificar, ya que tienen número
variable de bytes y muchas opciones diferentes.

La cache de datos emplea una política de postescritura: los datos se escriben en memoria principal
solo habiendo sido actualizados, se elimina el cache. El Pentium 4 se configura para utilizar la
política de escritura inmediata.

La cache L1 de datos se controla por dos bits uno de los registros de control, rotulados CD y NW.
Hay dos instrucciones Pentium 4 que se usa para controlar la cache: INVD que invalida la memoria
cache interna e indica que se invalide la externa; WBINVD postescribe e invalida la cache interna
y la externa.

Los dos caches L2 y L3 son asociativas por un conjunto de ocho vías y un tamaño de línea de 128
bytes.

b) Organización de cache en el PowerPC


Ha ido evolucionando paralelamente a la arquitectura global del PowerPC, en la búsqueda de
mejores prestaciones. Como se muestra en la siguiente tabla:

5. Prestaciones de las memorias de dos niveles:

Como hemos visto, una memoria de dos niveles equivale a la memoria cache, la cual actúa como buffer
entre el procesador y la memoria principal, sin embargo, hay otras dos memorias de dos niveles que se
implementan en el sistema operativo, estas son: la memoria virtual y la cache de disco.
Características de las prestaciones de memorias de dos niveles:

 Localidad: Lo primero a tomar en cuenta para hacer una mejora de prestaciones de una memoria
de dos niveles es conocer el principio de localidad de las referencias, éste principio nos dice que
en un tiempo amplio las agrupaciones que están en uso van cambiando, mientras que en
tiempos cortos el procesador trabaja con agrupaciones fijas.

a) Funcionamiento de las memorias de dos niveles:

Existen dos memorias, una que se encuentra en la parte superior(M1) que es más pequeña y es utilizada
como un almacenamiento temporal de la memoria inferior de mayor tamaño(M2), cuando se hace una
referencia de memoria, si tiene que acceder a la memoria superior M1, ya que tendrá un acceso mucho
más rápido. Si existe algún problema al momento de acceder, se copia un bloque de posiciones de
memoria de M2 a MI, y el acceso seguirá siendo a la memoria superior M1.

b) Prestaciones:

Una de las principales decisiones al momento de evaluar las prestaciones es el coste, lo cual se calculará
de la siguiente manera: El costo por bit de la combinación de los dos niveles de la memoria es igual a la
suma del costo medio por bit de M1 multiplicado por el tamaño, y el costo medio por bit de M2
multiplicado por el tamaño, todo esto dividido entre la suma se los tamaños de M1 y M2, a continuación,
se presenta la fórmula:

En segundo lugar, vamos a considerar el tiempo de acceso, para que una memoria de dos niveles tenga
una buena mejora de prestaciones, necesitamos hacer que el tiempo de la memoria de dos niveles sea
igual al tiempo de la memoria M1.

II. Memoria interna


1. Memoria principal semiconductora
Hoy en día son chips desarrollados con micro tecnología, que tienen en su estructura interna
unas celdas de memoria semiconductora que presentan dos estados semiestables en las que
puede escribirse el estado y leerse para detectarlo además de poseer tres terminales
(selección, control y detección) para transportar señales eléctricas, esto significa que las

celdas individuales pueden seleccionarse para operaciones de lectura y escritura.


Mapa 1. Funcionamiento de una celda de memoria.
1.1. Memoria de acceso aleatorio (RAM).
También conocida como RAM, es posible tanto leer datos y escribir nuevos datos
rápidamente por señales eléctricas accedidas directamente mediante lógica de cableado
interno, la información que guardan es volátil ya que si la memoria no está alimentada los
datos se perderán, lo que la hace una memoria de almacenamiento temporal.

1.1.1. RAM dinámica (DRAM).


Almacena los datos como cargas eléctricas en condensadores en los que la
presencia o ausencia de cargas se representa como el cero o uno lógico, los
condensadores tienden a perder su carga por lo que tienen que estar en
continuos refresh. Este es un dispositivo esencialmente analógico. Esta

estructura es más simple que la SRAM, y por ende más pequeña y tienden a
ser preferidas en memorias grandes (principal).
Mapa 2. Estructura típica de la celda me memoria DRAM.
En el Mapa 2. se muestra la estructura de la DRAM, que almacena un bit, la fila
(línea de direcciones) se activa cuando se va a leer o escribir el bit de la celda,
el transistor se cierra permitiendo el paso de corriente, si la línea de direcciones
tiene tensión de corriente y se abre cuando no.

1.1.2. RAM estática (SRAM).Es un dispositivo digital basado en elementos del


procesador, los bits se almacenan mediante puertas biestables (flip-flop) en este
tipo de memoria no es necesario refrescar la celda para mantener los datos.
Suelen usarse para memorias caché.

Mapa 3. Estructura típica de la celda me memoria SRAM.

En el Mapa 3. se muestra la estructura de la SRAM, que tiene cuatro


transistores que están en una configuración cruzada que produce estados
lógicos estables, los que se mantienen mientras se esté alimentando la celda
con una tensión continua de corriente directa, mientras que la línea de control
tiene dos transistores que si en uno es un 1 lógico en el otro será su
complemento y viceversa, permitiendo la operación de lectura o escritura.

1.2. Memoria ROM.


Es un tipo de memoria de solo lectura con un patrón de datos inalterable, no volátil. Es
posible leer datos de una ROM pero no se puede escribir en ella; su ventaja es que los
datos o programas estarían siempre en memoria principal.
1.2.1. ROM programable (PROM).
Son flexibles y cómodos, pudiendo utilizarse también para la escritura de datos
con una programación especial.
1.2.2. ROM programable y borrable (EPROM).
Se las puede modificar en el sentido de programación, casi indefinidas veces, su
utilidad es mayor ya que puede modificarse su contenido.
1.2.3. ROM programable y borrable eléctricamente (EPROM).
En la que se puede escribir en cualquier momento sin borrar su contenido anterior.
1.2.4. Memoria FLASH.
Se la puede reprogramar a una mayor velocidad, a esto se le atribuye su nombre,
además se pueden borrar bloques concretos y no todo el chip.

1.3. Lógica del chip.


Las celdas de memoria se disponen en el interior de un chip encapsulado,
fundamentalmente se diseñan según el número de bits de datos que pueden ser
leídos/escritos a la vez. En un extremo esta la estructura en la que la disposición física de
las celdas de la matriz es la misma que la disposición lógica de las palabras de memoria
igual como el procesador las percibe. En el otro extremo esta la estructura denominada
un bit por chip, en la que los datos se escriben/ leen por bits.
Mapa 4. DRAM típica de 16 megabits (4M X 4).

En el Mapa 4. Lógicamente la matriz de memoria está estructurada en cuatro matrices


cuadradas de 2048x2048 elementos conectados a líneas de filas y columnas, cada fila
conecta al terminal de selección de cada celda en la correspondiente fila y cada columna
conecta al terminal de Detección de entrada/salida de datos en la correspondiente a cada
columna, las once líneas de direcciones (A0,A1,…A10) suministran la dirección de palabra
a seleccionar, estas líneas entran en el decodificador de filas que tiene once líneas de
entrada y 2048 de salida. La lógica del decodificador activa solo una única salida definida
por el patrón de bits de las once de entrada.
Otro grupo de once líneas de dirección de palabra selecciona de entre 2048 columnas,
una con cuatro bits por columna; desde el buffer de datos se utilizan cuatro líneas para la
entrada y salida de cuatro bits, estas líneas se activan a uno o cero según el valor del
dato. Para la lectura, el valor de cada bit se pasa a través de un amplificador de lectura y
se presenta en la correspondiente línea de datos. La línea de fila selecciona la fila de
celdas que es utilizada para la lectura o escritura. Esta memoria DRAM solo escribe/lee
cuatro bits.

1.4. Encapsulado de los chips


Los circuitos integrados se montan en capsulas, que son terminales que se conectan
exteriormente.
En el Mapa 5. Se muestra la configuración de un chip DRAM de 16 Mb organizado en
4Mx4.esta puede ser actualizada, sus terminales de datos son de entrada/salida los que

indican si es una operación de escritura o lectura. Debido al acceso por filas y columnas,
y a que las direcciones están multiplexadas, solo se necesitan once terminales para
especificar las cuatro mega combinaciones fila/columna. La función de los terminales de
selección de dirección de filas(RAS) y de columnas (CAS) que temporizan el chip, los
terminales de habilitación de escritura(WE) y habilitación de lectura(OE) determinan si se
trata de una operación de escritura o lectura. Los terminales de tierra (Vss) y el terminal
de alimentación de tensión(Vcc).
Mapa 5. Terminal DRAM de 16 Mb.

1.5. Organización en módulos.


Las celdas forman una matriz de 2n filas y m columnas, siendo 2n el número de palabras
del chip y m el número de bits de cada palabra. Cada fila es seleccionada por la
decodificación de una configuración diferente de los n bits de dirección. Esta organización
tiene el inconveniente que el selector (decodificador) de palabras crece exponencialmente
con el tamaño de la memoria. Igual le ocurre al número de entradas (fan-in) de las puertas
OR que generan la salida de datos.

Mapa 6. Organización básica 2D.

Mapa 7. Se muestra la organización 2D de un chip de memoria con 4 palabras de


4 bits.
2. Corrección de errores.
Una memoria semi conductora está sujeta a errores que pueden ser falllos permanentes (hard)
y errores ocasionales (soft). El fallo permanente corresponde a un daño del haware , mientras
que el erros ocasional es un evento aleatorio no destructivo que altera el contenido de una o
más celdas de almacenamiento. Los sistemas de memoria modernos incluyen lógica de
detección y corrección de errores.
Para la detección de errores simples en dispositivo de memoria se suelen utilizar los bits de
paridad. Es decir, se amplía en 1 la longitud de palabra para almacenar en las operaciones de
escritura la paridad total (par o impar) de la palabra. En las operaciones de lectura se
comprueba si se mantiene la paridad convenida. Las detecciones de fallos de la memoria se

suelen traducir en excepciones (interrupciones) del sistema.


Mapa 8. Función de corrección de errores.

Códigos correctores de errores (Hamming) El código de Hamming permite la corrección de un


error simple. El dato a transmitir de m bits de longitud se amplía con k bits de paridad,
suficientes para codificar la posición de un posible bit erróneo en el mensaje completo de m +
k bits. Es decir, deberá cumplirse que 2k – 1  m + k.

Supongamos que la longitud de palabra de la memoria es m = 8.Los datos de m = 8 bits (d8,


d7, d6, d5, d4, d3, d2, d1) los ampliamos con k = 4 bits de paridad (C8, C4, C2, C1) para
formar un mensaje de m + k = 12 bits (m12, m11, m10, m9, m8, m7, m6, m5, m4, m3, m2,
m1). Los bits de paridad Ci ocupan las posiciones en el mensaje correspondientes a las
potencias de 2, es decir la 1, 2, 4 y 8 (de aquí el subíndice i). Con los bits (C8, C4, C2, C1) se
codifican todas las posiciones del mensaje (12), es decir: (C8, C4, C2, C1) = 0 0 0 1 = 1 en
decimal para m1, ... (C8, C4, C2, C1) = 1 1 0 0 = 12 en decimal para m12, de manera que
cuando se produzca un error simple (complementación de un bit) en el bit mj del mensaje, (C8,
C4, C2, C1) sea igual a j en decimal. Es decir, Ci deberá recoger la paridad de todos los mj
que tengan Ci = 1 en su codificación, incluido el propio Ci:

El sistema de memoria deberá generar en la escritura los bits de paridad Ci para almacenarlos
junto a los bits de datos Supongamos que el dato escrito es: d8 d7 d6 d5 d4 d3 d2 d1 = 1001
1101 Los bits de paridad para el código de Hamming valdrán:
Función F:

En la lectura se generará de nuevo los bits de paridad con el bloque F’ a partir de los bits de
datos leídos de memoria. El bloque F’ responde a la misma función lógica que F. Supongamos
que en la lectura se produce un error simple en d5, es decir, escribimos un 1 y hemos leído
un 0, el valor de F’ será:
Función F’:

Para detectar la existencia de un error simple y su posición (para poderlo corregir) comparamos
(Comparador COMP) los bits de paridad generados en la lectura, C’i con los almacenados en la
escritura, Ci: Comparador COMP:

Si el resultado de la comparación es C’’8 C’’4 C’’2 C’’1 = 0 0 0 0 significa que no se ha producido


error. Si se ha producido un error, los Ci’’ codificarán su posición.
En nuestro ejemplo el resultado de la comparación vale C’’8 C’’4 C’’2 C’’1 = 1 0 0 1 = 9 (decimal)-
> el bit m9 del mensaje ha fallado, es decir el bit de datos d5 Para corregir el error decodificamos
su posición, es decir, los Ci’’ (decodificador DEC), con lo que disponemos de una línea individual
para cada posible posición de error. Con cada una de estas líneas podemos controlar la inversión
o no de la correspondiente línea de datos di’ leída de memoria, según que se haya producido o no
error en dicha línea. Para la inversión controlada de estas líneas utilizamos una etapa de puertas
XOR.

Mapa 8. Lla memoria tolerante a un fallo simple y el proceso de corrección del fallo que hemos
supuesto.
Mapa 8.Comparacion F’ = F.

3. Organización avanzada de memorias DRAM.

El bloque principal en la construcción de la memoria principal sigue siendo el chip DRAM, este
chip está limitado por su arquitectura interna como por su interfaz en el bus de memoria del
procesador. la solución a este problema ha sido insertar uno o más niveles de cachés SRAM
de alta velocidad entre la memoria principal y el procesador. Los esquemas que dominan
actualmente son: SDRAM, DDR-DRAM, RDRAM y las CDRAM. Las altas frecuencias de
trabajo de los actuales procesadores han obligado a las memorias a dar un salto importante
en cuanto a velocidad se refiere, ya que de nada sirve tener procesadores tan rápidos si se
generan ciclos de espera en la memoria, lo que da origen a los conocidos “cuellos de botella”.
Como respuesta a esta situación se han desarrollado las memorias SDRAM cuya
característica distintiva es soportar en factores de multiplicación la frecuencia de los
procesadores, proveyéndoles de un bus rápido y fiable. Entre las distintas tecnologías
desarrolladas siguiendo este principio tenemos:

3.1. DRAM sincrona (SDRAM).


Este tipo de memorias intercambian datos con el procesador de forma sincronizada con
una señal de reloj externa, funcionando a la velocidad tope del bus procesador/memoria,
sin estados e espera. Esta emplea un modo de ráfagas para eliminar los tiempos de
establecimiento de direcciones y precarga de la línea de fila y columna después del primer
acceso, en el que se puede secuenciar la salida de una serie de datos una vez accedido
al primero de ellos.
3.2. DRAM RAMBUS.
Se trata de un nuevo sistema de memoria desarrollado por las compañías INTEL y
RAMBUS, que incorpora un bus de direcciones, datos y control propio, de alta velocidad
que le permite funcionar en un rango de velocidad superior a los 800 Mhz. Destacar que
este sistema resulta incompatible con la lógica convencional y al igual que la memoria
DDR DRAM aprovecha los flancos de subida y de bajada de un pulso de reloj para mejorar
su eficacia.
3.3. DDR SDRAM.
Funcionamiento está basado en aprovechar de forma síncrona tanto el flaco de subida
como el de bajada de un mismo impulso de reloj, para ejecutar las operaciones solicitadas.
3.4. DRAM caché.
Es sinónimo de SRAM, ya que es el tipo de almacenamiento en que más se basa su uso,
sin embargo, también es posible crear segmentos de Caché en discos duros y unidades
SSD, cumpliendo la función de almacenar datos e instrucciones utilizadas frecuentemente,
pero sin punto de comparación con respecto a la velocidad que logra desarrollar la SRAM.

III. MEMORIA EXTERNA


1. Discos Magnéticos

Se definen generalmente como un plato circular construido a base de un material no magnético llamado
sustrato (que generalmente es aluminio o una aleación de aluminio) y que está cubierto por un material
magnetizable. Posteriormente se a utilizado sustratos de cristal que tiene ciertas ventajas como:

-Mejorar la uniformidad de la superficie magnética.

-Reducción significativa de los defectos en toda la superficie.

-Capacidad de soportar grabaciones de gran proximidad.

-Mayor rigidez.

*Mecanismos de lectura y escritura magnética

Esta dinámica se basa en grabar y recuperar datos del disco a través de una bobina llamada cabeza. Esta
llamada cabeza son de dos tipos una de lectura y otra de escritura.

El mecanismo de escritura se basa en que un flujo eléctrico atraviesa una bobina y en efecto crea un campo
magnético, posteriormente se envían pulsos eléctricos a la cabeza de la escritura y esto hace que se graben
los patrones magnéticos en la superficie de los discos.

Por otro lado el mecanismo de lectura se basa en el movimiento de un campo magnético respecto a una
bobina, dicho campo induce una corriente eléctrica en la bobina y ya cuando la superficie del disco pasa
bajo la cabeza; esta genera una corriente de la misma polaridad que produjo la grabación magnética.

*Organización y formato de los datos

La manera en cómo se organizan los datos se efectúa mediante un conjunto de anillos concéntricos
ubicados en el plato, el cual recibe el nombre de pistas; cada pista tiene el mismo ancho que la cabeza, por
lo que usualmente hay cientos de pistas por superficie.

Al ser concéntricas las pistas, estas se separan por bandas vacías; permitiendo así prevenir o minimizar
los errores que produce los deslizamientos de la cabeza o por simples interferencias del campo magnético.

Los datos se transfieren al y desde el disco en sectores, tal como lo muestra la figura a.
Figura a. Organización de los datos en el disco

Debido al problema de que un bit cercano al centro de un disco girando, pasa por un punto fijo más despacio
que un bit más externo se debería buscar alguna forma de compensar la variación de la velocidad, de
manera que la cabeza pueda leer todos los bits a la misma velocidad; esto se logra incrementado el espacio
entre bits de la información grabada en los segmentos del disco. Por consiguiente la información se puede
escanear a la misma velocidad rotando el disco a una velocidad fija conocida como velocidad angular
constante (CVA). La fig. a.1 muestra la estructura CAV, en la cual el disco se divide en una serie de sectores
en forma de trozos de tarta y en una serie de pistas concéntricas; la ventaja del CAV es que los bloques
individuales de datos se pueden direccionar directamente con la pista y sector. Entonces para movilizar la
cabeza desde su posición actual a una dirección específica, solo hay que mover ligeramente la cabeza a
la pista específica y esperar a que el sector se sitúe bajo la cabeza.

Cabe recalcar que a medida que nos movemos desde la pista más externa a la más interna, la capacidad
de almacenamiento de un disco con un sistema CAV sencillo viene limitado por la máxima densidad de
grabación que se puede llevar a cabo en la pista más interna, entonces para aumentar la capacidad, los
discos duros posteriores utilizan una técnica conocida como grabación en varias zonas (fig. a.2), en la
cual la superficie se divide en varias zonas concéntricas. Dentro de una zona, el número de bits por pista
es constante, por lo cual las zonas más alejadas del centro contienen más bits que las que están más
próximas al centro,; en consecuencia esto permite mayores capacidades de almacenamiento.
Fig.a.1. velocidad angular constante Fig.a.2. Grabación en varias zonas

*Características Físicas

Dependiendo de los tipos de discos, se listan las principales características en la siguiente tabla:

Movimiento de la cabeza Platos


-Cabeza fija (una por pista) -Un plato
-Cabeza Móvil (una por superficie) -Varios platos
Portabilidad de los discos Mecanismos de la cabeza
-Disco no extraíble -Contacto
- Disco extraíble -Separación fija
-Separación aerodinámica (Winchester)
Caras
-Una cara
-Dos caras

*Parámetros para medir las prestaciones de un disco

Dependen básicamente del tipo de ordenador, el sistema operativo, la naturaleza de los canales de entrada
– salida y del hardware controlador del disco.
En esta sección también se hablara de tiempo de búsqueda, que es el tiempo que tarda la cabeza móvil
en posicionarse en la pista, una vez seleccionada la pista, el controlador del disco espera hasta que el
sector apropiado rote hasta alinearse con la cabeza. Entonces el tiempo que tarda el sector en alcanzar la
cabeza recibe el nombre de retardo rotacional. La suma del tiempo de búsqueda, si lo hay, y el retardo
rotacional se denomina tiempo de acceso; una vez posicionada la cabeza, se lleva a cabo la operación de
lectura o escritura, desplazándose el sector bajo la cabeza; esta operación conlleva a un tiempo de
transferencia de datos.

Fig. b. Temporizador de la transferencia entre disco y E/S.

2. RAID

El uso de varios discos amplia la variedad de formas en las que se pueden organizar los datos, y en las
que se puede añadir redundancia para mejorar la seguridad, es así que al estar la industria de acuerdo con
los esquemas estandarizados para el diseño de bases de datos para discos múltiples se crea un “conjunto
redundante de discos independientes”, más conocidos como RAID; los cuales constan de seis niveles
independientes, desde cero hasta cinco. Cabe recalcar que los niveles no implican jerarquía, sino más bien
designan métodos diferentes que poseen tres características comunes:

1. El sistema operativo ve a RAID como una única unidad lógica.


2. Los datos se distribuyen a través de las unidades físicas del conjunto de unidades físicas de disco
de RAID.
3. Para garantizar la recuperación de los datos en caso falle el disco se usa los discos redundantes
para almacenar información de paridad.
*Nivel 0 de RAID

No se lo considera como un verdadero miembro de la familia RAID, porque no incluye redundancia para
mejorar las prestaciones. Para el RAID 0, los datos del usuario y del sistema están distribuidos a lo largo
de todos los discos del conjunto; es así que si tenemos un conjunto de “n” discos, las primeras “n” tiras
lógicas se almacenan físicamente en la primera tira de cada uno de los “n” discos, las segundas “n” tiras
lógicas, se distribuyen en la segunda tira de cada disco, etc. Entonces la ventaja de esta disposición es que
si una única petición de E/S implica a varias tiras lógicas contiguas, entonces las “n” tiras de esta petición
se pueden gestionar en paralelo, reduciendo considerablemente el tiempo de transferencia de E/S.

-RAID 0 para alta capacidad de transferencia de datos

Se cumple bajo dos requisitos: primero, debe existir una capacidad de transferencia alta en todo el camino
entre la memoria del anfitrión y las unidades de disco individuales y segundo requisito es que la aplicación
que solicita los datos debe hacer peticiones de E/S que se distribuyan eficientemente sobre el conjunto de
discos.
-RAID 0 para altas frecuencias de petición E/S

Si solo se realiza una petición individual de E/S de una pequeña cantidad de datos, el tiempo de E/S está
dominado por el movimiento de las cabezas del disco y el movimiento del disco. Por el contrario si se realiza
cientos de peticiones de E/S por segundo el encargado es un conjunto de discos que puede proporcionar
velocidades altas de ejecución de E/S, balanceando la carga de E/S a través de los diferentes discos.

*Nivel 1 de RAID

Se diferencia de los niveles 2 al 6 en cómo consigue la redundancia, ya que el RAID 1 logra la redundancia
con el sencillo recurso de duplicar todos los datos.

*Nivel 2 de RAID
Los niveles 2 y 3 de RAID usan una técnica de acceso paralelo, en la cual todos los discos miembro
participan en la ejecución de cada petición E/S; generalmente, el giro de cada unidad individual esta
sincronizado de forma que cada cabeza de disco está en la misma posición en cada disco en un instante
dado.

*Nivel 3 de RAID

Se organiza de una manera similar al RAID 2, con la diferencia de que el RAID 3 requiere solo un disco de
redundancia sin importar las dimensiones físicas del conjunto de discos.

*Nivel 4 de RAID

Los niveles 4 al 6 de RAID usan técnica de acceso independiente, en el cual cada disco opera
independientemente, de manera que peticiones de E/S separadas se atienden en paralelo.

*Nivel 5 de RAID
Se organiza de manera parecida al RAID 4, con la diferencia de que el RAID 5 distribuye las tiras de paridad
a lo largo de todos los discos.

*Nivel 6 de RAID

Se basa más que todo en un cálculo de paridad distinta en el que se almacenan en bloques separados en
distintos discos. Por tanto, si un conjunto RAID 6 cuyos datos requieran “N” discos constara de “N +2”
discos.

4. Memoria Óptica

-Discos Compactos

*CD

Disco compacto. Es un disco no borrable que almacena información de audio digitalizada. El sistema
estándar usa discos de doce cm y puede grabar más de sesenta minutos de tiempo de ejecución
ininterrumpido.

*CD – ROM

Disco compacto de memoria de solo – lectura. Un disco no borrable usado como memoria de datos de un
computador. El sistema estándar usa discos de doce cm y puede guardar más de 650 MB.
*DVD

Disco versátil digital. Una tecnología para producir representación de información de video digitalizada y
comprimida, así como grandes cantidades de datos digitales. Se usan en formatos de ocho y doce cm de
diámetro, con una capacidad con doble cara de hasta 17 GB. El DVD básico es de solo – lectura (DVD -
ROM).

*DVD – R

DVD grabable. Es similar al DVD – ROM. El usuario puede escribir en el disco solo una vez. Solo se utilizan
discos de una cara.

*DVD – RW

DVD grabable. Es similar al DVD – ROM. El usuario puede borrar y reescribir el disco varias veces. Solo
se utilizan discos de una cara.

5. Cinta Magnética

Este sistema de cinta usa la misma técnica de grabación y lectura de los discos. El medio es una cinta de
poliéster flexible cubierta por un material magnetizable, los datos en la cinta; se estructuran en una serie
de pistas paralelas longitudinales.

La técnica típica que se utiliza en la grabación de cintas en serie se denomina grabación en serpentina, en
la cual el primer conjunto de datos se graba desde el inicio de la cinta y a lo largo de toda la cinta, cuando
alcanza el fin las cabezas se posicionan para grabar una nueva pista, pero esta vez en dirección contraria
a como inició (fig. c).

Fig. c. Lectura y escritura en serpentina

Las cintas magnéticas fueron el primer tipo de memorias secundarias. Se usan todavía como los miembros
de jerarquía de memoria de menor coste y de menor velocidad.

Вам также может понравиться