Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Universidad Salazar
Alumno
Augusto José Elorza Torres
Grado y Grupo
4to ‘A’
Materia
Lenguaje Ensamblador
Catedrático
Enrique Martínez Gutiérrez
Introducción 2
Con este trabajo se pretende cubrir los conceptos básicos de la memoria, así como la jerarquía que
rige en ellas. Comenzando por la jerarquía misma y definiendo los puntos que deciden las
posiciones ocupadas por las distintas memorias.
Continuando después con la descripción de las memorias RAM y ROM, siendo estás las que
conforman la memoria principal de la computadora. Principalmente almacenan datos que son
escritos o requeridos por el microprocesador.
Después analizaremos una memoria que se halla en el microprocesador llamada caché, que
funciona como una memoria de datos frecuentes para así poder utilizar los datos más requeridos
con mayor velocidad. Y enseguida se puede encontrar el principio de localidad.
Seguido a esto, se verá uno de los tipos de mapeo conocido como mapeo directo. Pasando por una
exanimación del rendimiento de la caché en base a sus aciertos y fallos. Finalizando con el tema
del mapeo o traducción de direcciones, que consiste en traducir las direcciones creadas por una
memoria virtual para seguir engañando a los programas que se trata de una dirección normal de la
memoria principal.
Memoria y Caché
Jerarquía de memoria 3
Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que
tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran
velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de
referencias.
Cantidad. Cuanta más memoria haya disponible, mas espacio se tendrá para escribir. Esto también
significa que existen más direcciones posibles por las cuales, cuando se requiere de un dato, se
tiene que pasar hasta llegar a la dirección donde el dato se encuentra. Aunque en ciclos (loops)
cuando una referencia se ejecuta n veces, solo una es a memoria y las n-1 restantes serán a la
caché.
Velocidad. La velocidad óptima será siempre la velocidad a la que el procesador puede trabajar, si
esta es más baja o más alta, pueden existir tiempos de espera prolongados entre calculo y calculo
cuando se requiere traer operandos o guardar resultados, debido a la diferencia de velocidad.
Coste. El costo de toda la memoria que un equipo pueda contener no debe ser excesivo, para que
sea factible construir un equipo accesible.
Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un
equilibrio. Las siguientes afirmaciones son válidas:
A menor tiempo de acceso mayor coste. Normalmente entre mayor velocidad tienen las
memorias, mayor es el costo de las mismas.
A mayor capacidad mayor coste. Memorias de mayor capacidad suelen ser más costosas que
memorias simples o de poca capacidad.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para
satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio
llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un
rendimiento cercano al de la memoria más rápida.
Memoria y Caché
Nivel 1: Memoria caché. La memoria caché también se encuentra cerca del procesador, pero más
lejos que los registros. Su capacidad también es poca (comparada con la RAM), por lo que también
existen una buena velocidad.
Nivel 2: Memoria principal. En este nivel están la ROM y la RAM, que son circuitos integrados
diseñados para almacenar información. Sus capacidades pueden ser desde muy pequeñas, como
64 o 128 MB (considerando las capacidades actuales), hasta capacidades enormes como 1 o 2 GB.
Estas últimas capacidades afectan al punto de la velocidad aunque pues también permiten mayor
almacenamiento de datos.
Nivel 3: Disco duro. Los sistemas operativos modernos permiten usar el disco duro como memoria
virtuales, que actúan tal y como si fueran memorias principales. Su desempeño disminuye al estar
más lejos que todos los anteriores.
Nivel 4: Redes. Los equipos que se encuentran ahora en red, son capaces de solicitar y escribir
información a través de esta. Pudiendo considerarse como una memoria, aunque pues, los canales
que separan a cada máquina pueden ser muy largos, y por lo tanto la velocidad es afectada.
Memoria y Caché
Memoria RAM 5
La memoria RAM (Random Access Memory en español Memoria de Acceso Aleatorio) es un
circuito integrado capaz de almacenar información. Su nombre lo debe a que se puede acceder a
cualquier dirección que contenga aleatoria y rápidamente.
Los datos que esta memoria almacena son de tipo volátil ya que, al no haber suministro de
energía, los datos que hubiesen almacenados se pierden.
Básicamente está constituida por una serie de chips que están soldados a unas placas
denominadas módulos.
El microprocesador utiliza esta memoria para escribir y leer datos en ella. Aunque los datos de
este tipo de memoria también pueden ser borrados cuando dejan de ser usados y ya no son
necesarios.
Memoria RAM
Memoria ROM
La memoria ROM, (read-only memory) o memoria de sólo lectura, es la memoria que se utiliza
para almacenar los programas que ponen en marcha el ordenador y realizan los diagnósticos
(como la BIOS). La mayoría de los ordenadores tienen una cantidad pequeña de memoria ROM
(algunos miles de bytes).
Puesto que la memoria ROM también permite acceso aleatorio, si queremos ser precisos, la
memoria RAM debería llamarse memoria RAM de lectura y escritura, y la memoria ROM memoria
RAM de sólo lectura.
Memoria ROM
Memoria y Caché
Memoria Virtual 6
La memoria virtual es un sistema permitido por los sistemas operativos modernos, en el cual, se
utiliza una porción del disco duro como si fuera parte de la memoria principal permitiendo así
tener más memoria de la que realmente posee la computadora.
Muchas aplicaciones requieren de espacios grandes de memoria para guardar sus datos. Una
solución a ese problema, consiste en que las aplicaciones mantengan parte de su información en
disco, moviéndola a la memoria principal cuando se requiera. Para esto se usa la memoria virtual
donde el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer a
la computadora que tiene más capacidad en memoria
Memoria Caché
La memoria caché es una clase de memoria RAM estática (SRAM) de acceso aleatorio y alta
velocidad, situada entre el CPU y la RAM. Se presenta de forma temporal y automática para el
usuario, y le proporciona acceso rápido a los datos de uso más frecuente.
La ubicación de la caché entre el microprocesador y la RAM, hace que sea suficientemente rápida
para almacenar y transmitir los datos que el microprocesador necesita recibir casi
instantáneamente. Aunque como su capacidad es mucho menor que la RAM los datos de la caché
son reemplazados constantemente, en teoría, solo los datos más comúnmente usados
permanecerán por periodos más largos.
Las computadoras tienden a utilizar las mismas instrucciones y (en menor medida), los
mismos datos repetidamente, por ello la caché contiene las instrucciones más usadas.
Por lo tanto, a mayor instrucciones y datos la CPU pueda obtener directamente de la memoria
caché, tanto más rápido será el funcionamiento de la computadora.
Memoria y Caché
Principio de localidad 7
Localidad temporal: un elemento referenciado tiende a ser referenciado nuevamente pronto.
Localidad espacial: los elementos cercanos a uno referenciado tienden a ser referenciados
pronto.
Mapeo
Al pasar los datos desde la memoria principal a la memoria caché estos se traen por bloques. El
motivo de llevar los datos por bloques se debe a que, por ejemplo, si el procesador pide el dato de
la dirección n entonces es muy probable que después pida el dato de la dirección n+1, por lo tanto,
se ahorra tiempo al llevar los datos por bloques a la caché. Por otro lado la memoria caché es de
poca capacidad, en relación con la memoria principal, por lo tanto cobra importancia el tema de
que y como poner datos en la memoria caché. Es necesario entonces contar con un proceso de
conversión de las direcciones, que se llama mapeo.
Mapeo Directo
Mapeo Asociativo (totalmente asociativo)
Mapeo Asociativo por conjunto
Mapeo Directo
Cada bloque, j, de la memoria principal se corresponde con una única línea, i, de la memoria
caché:
i = j modulo(C)
Los (s-r) bits restantes han de guardarse en la caché (bits de Tag) asociados a cada línea, i, y
adicionales a ella para completar la dirección.
Así, el tamaño real de la caché es superior a Sc, pues estos bits de Tag han de estar en cada línea.
Memoria y Caché
En el mapeo directo:
No existen dos bloques en la misma línea con el mismo Tag.
Rendimiento de la caché
Como puede figurarse el lector, construir un mecanismo de caché no es una tarea baladí. Se
requieren esquemas de funcionamiento que atiendan de forma simultánea y balanceada diversos
factores:
Manejar las peticiones de escritura. Interceptar las peticiones de escritura del dispositivo a
cachéar.
Para poder ejecutar instrucciones, y no sabemos en qué parte de la memoria están cargadas,
debemos tener un mecanismo de traducción de direcciones virtuales a reales. Para ello, se
necesitan dos cosas. Primero, el compilador manejará una dirección base más un desplazamiento
al referirse a las instrucciones. Segundo, el sistema operativo asignará como dirección base el
número de página, al paginar al proceso.
De esta manera, puede buscarse el inicio de una página en memoria, sumarle el desplazamiento y
así obtener la dirección real de una instrucción.
Nótese que en el diagrama se tiene una tabla de proceso y ahí mismo se maneja la dirección inicial
de la tabla de páginas. En algunos sistemas operativos, estas dos tablas se manejan por separado.
página en un sistema de paginación tradicional. Cada segmento está compuesto por cierto número
de páginas. Es decir, el tamaño del segmento es un múltiplo del tamaño de página. Este esquema 11
pretende sacar ventaja de los beneficios de los otros dos.
Recordemos que este mapeo debe efectuarse siempre, instrucción por instrucción ejecutada. Por
ello, entre más rápido sea el mecanismo, mejor. Existe una manera de mejorar dicho mecanismo
mediante hardware.
Una memoria asociativa es muy cara, pero permite buscar en toda la memoria en un mismo pulso
de reloj. Implementando memoria asociativa, podemos traducir direcciones para páginas o
segmentos.
Memoria y Caché
12
Sin embargo, el utilizar memoria asociativa implica que el número de marcos de página y/o el
número de segmentos, se ve limitado por el tamaño de la memoria asociativa. Es decir, no puede
haber más marcos de página que número de celdas en la memoria asociativa. Por ello, hay
sistemas operativos que manejan una combinación de ambos.
Se cargan a memoria las páginas/segmentos más utilizados, y la traducción se utiliza de manera
normal. Solamente en aquellos casos en los que no encontrara la página/segmento en la memoria
asociativa, efectuaría la traducción directa. Para esa instrucción, haría un doble mapeo. Sin
embargo, el principio de localidad nos asegura que esto no sucederá con frecuencia.
A continuación se muestra el esquema de traducción asociativa/directa para un sistema de
paginación/segmentación.
Memoria y Caché
Por último, el siguiente esquema engloba las diferentes partes que interactúan a un mismo tiempo
para accesar una página a memoria.
Memoria y Caché
Conclusiones 14
Con lo anterior puedo concluir que la jerarquía de memoria es una forma que rige el desempeño
de la memoria del equipo. Tiene las bases sobre que memorias son más rápidas y dado que en
procesos de cálculos y operaciones lo que se necesita es velocidad, esas memorias son utilizadas
con mayor prioridad.
La RAM y ROM son tipos de memorias comunes en la computadora, aunque la ROM solo es de
lectura y contiene programas precargados, la RAM permite la lectura y escritura de datos, pero
para ambas memorias, los datos son perdidos cuando se pierde el suministro de energía.
La memoria virtual es una tecnología capaz de ampliar la capacidad de memoria que posee la
computadora, usando para ello una porción de disco duro para que actúe como RAM permitiendo
la escritura y lectura de datos.
La memoria caché permite acceder a los datos más frecuentes de manera muy rápida debido a su
cercanía con el microprocesador, agilizando así los procesos y cálculos que se realicen.
El principio de localidad ayuda a entender como un elemento puede volverse frecuente (en uso
como acceso o lectura) y que además los elementos cercanos a el pueden serlo también.
El mapeo directo de memoria indica cómo mover bloques de datos, moviéndolos así por el
principio de localidad.
Bibliografía 15
http://es.wikipedia.org/wiki/Jerarquía_de_memoria
http://es.wikipedia.org/wiki/Cercanía_de_referencias
http://www.masadelante.com/faq-memoria-rom.htm
http://es.wikipedia.org/wiki/Memoria_principal
http://quidel.inele.ufro.cl/~jruiz/est2/Webeo2/MAPEO.html
http://multingles.net/docs/jmt/memoria_virtual.htm