Jerarquía de Memoria

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 17

INSTITUTO DE ESTUDIOS SUPERIORES

DE CHIAPAS
Universidad Salazar Narváez

LENGUAJE ENSAMBLADOR

Alumna

CHACÓN AGUIRRE PAULINA YANNETH

Catedrático
Lic. Enrique Martínez Gutiérrez

Ing. Sistemas Computacionales


4to “A”

Tapachula, Chiapas a 27 de Octubre de 2008.


Introducción.

En este apartado vamos a ver la jerarquía de memoria que


va desde registros que es el nivel 0, caché nivel 1,
memoria principal nivel 2 y discos duros que es el nivel 3,
teniendo como objetivo conseguir el rendimiento de una
memoria de gran velocidad al coste de una memoria de
baja velocidad.

Se analiza cada uno de los niveles definiendo que son, en


que se dividen, que los compone, entre otras cosas.

También se hablara de temas como el principio de


localidad, mapeo directo, rendimiento de la caché,
memoria virtual y de los mecanismos de traducción de
direcciones.

Todo esto nos ayuda a entender más lo que son las


memorias y tipos de memorias que hay y para que sirven,
ayudándonos a tener más conocimiento.
Jerarquía de memoria
Organización piramidal de la memoria en niveles, que tienen los
ordenadores.

Niveles de la jerarquía de memoria.

Nivel 0: Registros
Nivel 1: Memoria caché
Nivel 2: Memoria Principal
Nivel 3: Disco duro.

Objetivo:

Conseguir el rendimiento de una memoria de gran velocidad al coste


de una memoria de baja velocidad.

Hay 3 puntos básicos relacionados con la memoria:

• Cantidad cuanto más memoria haya disponible, más podrá


utilizarse.
• Velocidad óptima para la memoria es la velocidad a la que el
procesador puede trabajar, de modo que no haya tiempos de
espera entre cálculo y cálculo, utilizados para traer operandos o
guardar resultados.
• Coste no debe ser excesivo, para que sea factible construir un
equipo accesible.
Registros.
Los registros están en la cima de la jerarquía de memoria, y son la
manera más rápida que tiene el sistema de almacenar datos.

Definición de registros:

Es una memoria de alta velocidad y poca capacidad, esta integrada


en el microprocesador y permite guardar y acceder a valores muy
usados, por lo general en operaciones matemáticas.

Los registros se miden por lo general por el número de bits que


almacena.

Tipos de registros:

 De datos: usados para guardar números enteros.


 De memoria: usados para guardar exclusivamente direcciones
de memoria.
 De propósito general: pueden guardar tanto datos como
direcciones.
 De coma flotante: usados para guardar datos en formato de
coma flotante
 De propósito específico: guardan información específica del
estado del sistema.
 Constante: tiene valores creados por el hardware de solo
lectura.
Memoria caché
Definición:

Es una memoria rápida y pequeña, situada entre la memoria principal


y el microprocesador, especialmente diseñada para contener
información que se utiliza con frecuencia en un proceso con el fin de
evitar accesos a otras memorias, reduciendo considerablemente el
tiempo de acceso al ser más rápida que el resto de la memoria
principal.

Diagrama de una memoria caché de CPU.

La memoria caché es una memoria en la que se almacena un serie de


datos para su rápido acceso. La memoria caché de un
microprocesador es de tipo volátil (del tipo RAM), pero de una gran
velocidad.

Su objetivo es almacenar una serie de instrucciones y datos a los que


el microprocesador accede continuamente, con el fin de que estos
accesos sean instantáneos. Estas instrucciones y datos son aquellas a
las que el procesador necesita estar accediendo de forma continua,
por lo que para el rendimiento del procesador es imprescindible que
este acceso sea lo más rápido y fluido posible.

La operación básica de caché es:

Cuando la CPU necesita accesar memoria, se revisa la caché. Si se


encuentra la palabra en cache, se lee de la memoria rápida. Si la
palabra direccionada de la CPU no se encuentra en caché, se accesa
la memoria principal para leer la palabra. Después, se transfiere un
bloque de palabras que contiene la que se acaba de accesar, de la
memoria principal a la memoria caché. El tamaño de bloque puede
variar de una palabra a cerca de 16 palabras adyacentes a la que se
acceso. En esta manera, se trasfieren algunos datos caché para que
las futuras referencias a memoria encuentren la palabra requerida en
la memoria rápida caché.

Hay tres tipos diferentes de memoria caché para microprocesadores:


 Caché de 1er nivel (L1): Integrada en el núcleo del
microprocesador, trabajando a la misma velocidad que este.
La cantidad de memoria caché L1 varía de un
microprocesador a otro, estando normalmente entra los 64KB
y los 256KB. Esta memoria suele a su vez estar dividida en
dos partes dedicadas, una para instrucciones y otra para
datos.

 Caché de 2º nivel (L2): Integrada en el microprocesador, no


directamente en el núcleo, es algo más lenta que la caché L1.
La caché L2 suele ser mayor que la caché L1, pudiendo llegar
a superar los 2MB.
Utilización está más encaminada a programas que al sistema.

 Caché de 3er nivel (L3): Es un tipo de memoria caché más


lenta que la L2, muy poco utilizada en la actualidad. En un
principio esta caché estaba incorporada a la placa base, no al
microprocesador, y su velocidad de acceso era bastante más
lenta que una caché de nivel 2 o 1, ya que si bien sigue
siendo una memoria de una gran rapidez (muy superior a la
RAM, y mucho más en la época en la que se utilizaba),
depende de la comunicación entre el microprocesador y la
placa base.

La memoria caché es rápida, unas 5 ó 6 veces más que la DRAM (RAM


dinámica), por eso su capacidad es mucho menor. Por eso su precio
es elevado, hasta 10 ó 20 veces más que la memoria principal
dinámica para la misma cantidad de memoria.

Composición interna

La memoria caché está estructurado por celdas, donde cada celda


almacena un byte. La entidad básica de almacenamiento la
conforman las filas, llamados también líneas de caché.

Cuando se copia o se escribe información de la RAM por cada


movimiento siempre cubre una línea de caché.

La memoria caché tiene incorporado un espacio de almacenamiento


llamado Tag RAM, que indica a qué porción de la RAM se halla
asociada cada línea de caché, es decir, traduce una dirección de RAM
en una línea de caché concreta.
Memoria principal.
Son circuitos integrados capaces de almacenar información digital, a
los que tiene acceso el microprocesador del equipo de computación.
Poseen una menor capacidad de almacenamiento que la memoria
secundaria, pero una velocidad millones de veces superior.

La memoria principal esta divida en:

Memoria ROM:

Memoria de sólo lectura (Read Only Memory) son utilizadas


como medio de almacenamiento de datos en las computadoras. En
ella no se puede escribir y conserva intacta la información
almacenada, incluso en el caso de que se interrumpa la corriente
(memora no volátil).

La ROM suele almacenar la configuración del sistema o el programa


de arranque de la computadora.

Uso principal:

Reside en la distribución de programas que estén estrechamente


ligados al soporte físico de la computadora, y que seguramente no
necesita actualización.

La memoria RAM normalmente es más rápida para lectura que la


mayoria de las memorias ROM, por lo tanto el contenido ROM se suele
traspasar normalmente a la memoria RAM cuando se utiliza.

Memoria ROM

El software de la ROM se divide en dos partes:

a) Rutina de arranque: realiza el chequeo de los componentes


de la computadora por ejemplo circuitos controladores de video,
de acceso a memoria, el teclado, unidades de disco. Se encarga
de determinar cuál es el hardware que está presente y de la
puesta a punto de la computadora. Mediante un programa de
configuración, el SETUP, lee una memoria llamada CMOS RAM
(RAM de Semiconductor de óxido metálico). Ésta puede
mantener su contenido durante varios años, aunque la
computadora está apagada, con muy poca energía eléctrica
suministrada por una batería, guarda la fecha, hora, la memoria
disponible, capacidad de disco rígido, si tiene disquetera o no.
Se encarga en el siguiente paso de realizar el booteo
(arranque): lee un registro de arranque 'BR' (Boot Record) del
disco duro o de otra unidad (como CD, USB, etc), donde hay un
programa que carga el sistema operativo a la RAM. A
continuación cede el control a dicho sistema operativo y el
ordenador queda listo para trabajar.

b) Rutina BIOS. Sistema básico de entrada salida (Basic input


output system): permanece activa mientras se está usando la
PC. Permite la activación de los periféricos de entrada/salida:
teclado, monitor, etc.

Memoria RAM

La memoria de acceso aleatorio, o memoria de acceso


directo (Random Access Memory).

Se compone de uno o más chips y se utiliza como memoria de trabajo


para programas y datos. Es un tipo de memoria temporal que pierde
sus datos cuando se queda sin energía (al apagar la computadora),
por lo cual es una memoria volátil.
Se trata de una memoria de semiconductor en la que se puede tanto
leer como escribir información. Se utiliza normalmente como memoria
temporal para almacenar resultados intermedios y datos similares no
permanentes.

Se dicen "de acceso aleatorio" o "de acceso directo" porque los


diferentes accesos son independientes entre sí.

Las RAMs se dividen en:

• Estáticas: mantiene su contenido inalterado mientras esté


alimentada.

• Dinámica: la lectura es destructiva, es decir que la información


se pierde al leerla, para evitarlo hay que restaurar la
información contenida en sus celdas, operación denominada
refresco.

Memoria RAM
Memoria virtual
Es un concepto que permite al software usar más memoria principal
que la que realmente posee el ordenador.

Muchas aplicaciones requieren el acceso a más información (código y


datos) que la que se puede mantener en memoria física. Esto es así
sobre todo cuando el sistema operativo permite múltiples procesos y
aplicaciones ejecutándose simultáneamente. Una solución al
problema de necesitar mayor cantidad de memoria de la que se
posee consiste en que las aplicaciones mantengan parte de su
información en disco, moviéndola a la memoria principal cuando sea
necesario.

Aunque la memoria virtual podría estar implementada por


el software del sistema operativo, en la práctica casi siempre se usa
una combinación de hardware y software, dado el esfuerzo extra que
implicaría para el microprocesador.

Operación básica

Cuando se usa Memoria Virtual, o cuando una dirección es leída o


escrita por la CPU, una parte del hardware dentro de la computadora
traduce las direcciones de memoria generadas por el software
(direcciones virtuales) en:

• la dirección real de memoria (la dirección de memoria física): la


referencia a la memoria es completada, como si la memoria
virtual no hubiera estado involucrada: el software accede donde
debía y sigue ejecutando normalmente.
• una indicación de que la dirección de memoria deseada no se
encuentra en memoria principal (llamado excepción de
memoria virtual): el sistema operativo es invocado para
manejar la situación y permitir que el programa siga ejecutando
o aborte según sea el caso.

La memoria virtual es una técnica para proporcionar la simulación de


un espacio de memoria mucho mayor que la memoria física de una
máquina. Esta "ilusión" permite que los programas se ejecuten sin
tener en cuenta el tamaño exacto de la memoria física.

La ilusión de la memoria virtual está soportada por el mecanismo de


traducción de memoria, junto con una gran cantidad de
almacenamiento rápido en disco duro. Así en cualquier momento el
espacio de direcciones virtual hace un seguimiento de tal forma que
una pequeña parte de él, está en memoria real y el resto almacenado
en el disco, y puede ser referenciado fácilmente.
La memoria virtual ha llegado a ser un componente esencial de la
mayoría de los sistemas operativos actuales. Y como en un instante
dado, en la memoria sólo se tienen unos pocos fragmentos de un
proceso dado, se pueden mantener más procesos en la memoria. Es
más, se ahorra tiempo, porque los fragmentos que no se usan no se
cargan ni se descargan de la memoria. Sin embargo, el sistema
operativo debe saber cómo gestionar este esquema.
Principio de localidad.
• 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 cache


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 cache. Por otro lado como ya hemos visto en los párrafos
anteriores la memoria Cache es de poca capacidad, en relación con la
memoria principal, por lo tanto cobra importancia el tema de que y
como pongo datos en la memoria Cache. Es necesario entonces
contar con un proceso de conversión de las direcciones, que se
llama MAPEO.

Mapeo Directo
Para explicar, el mapeo directo es mejor comenzar con un ejemplo,
que por el momento, es sólo, ilustrativo y no tiene relación con la
realidad.

• MM 512B ----> 9b 64 bloques


• MC 32B ------> 5b 4 bloques
• Cada bloque de 8B

El Mapeo Directo funciona de la siguiente forma:

 Según las condiciones antes definidas se tiene lo siguiente:


cada bloque será de 8 Byte, es decir 8 palabras de largo 8.
 La memoria principal al ser dividida por 8 (512 B / 8) dará como
resultado 64 bloques de 8 palabras cada uno.
 La memoria Cache también se divide por 8 (32B / 8), lo cual da
como resultado 4 bloques
 Cada bloque de la memoria principal se coloca dentro de uno de
los bloques de la memoria Cache siguiendo un orden
establecido de la siguiente forma (La Fig. muestra parte de esta
asignación):
 En el bloque cero de la cache pueden ir cualquiera de los
múltiplos exactos de 4
(0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60), que son 16.
 En el bloque uno de la cache van (1, 5, 9, 13, 17, 21,
25...............)
 En el bloque dos (2, 6, 10, 14, 18, 22, 26..................................)
 En el bloque tres van (3, 7, 11, 15, 19, 23,27..................)
 Para distinguir entre las 16 alternativas que corresponden a un
bloque determinado de la memoria cache existe una memoria,
en este caso de 4 bits, que lleva el registro. Esta memoria se
denomina TAG.
Si por ejemplo se quiere acceder a la posición de memoria 405 se
ocupa la siguiente tabla de ubicación.

TAG BIC WIB


1 1 0 0 1 0 1 0 1 =
405

El WIB es de 3 bits por que con estos se pueden distinguir entre 8


alternativas, es decir las que corresponden a las divisiones de un
bloque.
El BIC es de 2 bits porque se pueden distinguir cuatro alternativas, o
sea los cuatro bloques de la cache.
El TAG, finalmente distingue entre las 16 alternativas que
corresponden a los diferentes bloques de la memoria principal que
pueden ir a parar a un bloque determinado de la cache.

El diagrama de la Fig. ilustra el mapeo directo. Aquí se puede


apreciar como las posiciones de la memoria principal son asignadas a
los bloques de la cache, por otro lado la flecha que apunta desde la
posición cero de la MM indica como cada bloque de la memoria
principal esta dividido en otros ocho sub bloques.
Finalmente no slo basta con llevar los datos a las posiciones de la
cache, adems el procesador de alguna forma debe ubicar los datos,
ya sea que los encuentre o no, en la cache.
Rendimiento de la caché:
• Tiempo de CPU:

TCPU = (c CPU + cdm) × t donde

c CPU: ciclos de reloj de ejecución CPU


c dm: ciclos de reloj de detención de memoria
t: duración del ciclo de reloj

• Ciclos de detención de memoria:

Cdm = nlp • ffl • pfl + nep • ffe • pfe, donde

nlp: lecturas por programa


nep: escrituras por programa
ffl, ffe: frecuencia de fallos de lectura o escritura
pfl, pfe: penalización de fallos de lectura o escritura.

• Juntando lecturas y escrituras:

cdm = namp • ff • pf , donde

namp: número de accesos a memoria por programa.


ff: frecuencia de fallos.
pf: penalización de fallo.

• Teniendo en cuenta el número de instrucciones (IC):

TCPU = IC • (CPI + cdmi • f f • p f) • t, donde

cdmi es el número de ciclos de detención por instrucción.

• Si el número de fallos por instrucción es:

Nfi = nami • f f, donde

nami es el número de accesos a memoria por instrucción,


Resulta que TCPU = IC • (CPI + nfi • pf) • t

• Impacto de los fallos:

* Si el CPI es bajo, el impacto es mayor.


* Crece con la frecuencia de reloj.
Traducción de direcciones
La memoria "física" de un ordenador es una secuencia de bytes, que
empieza en el 0 y termina por ejemplo 64 megas. Es decir un "array"
de bytes. Cada byte tiene una dirección: el número que ocupa
posicionalmente en la memoria. Esta dirección es conocida como
"direccion física".

Las direcciones que va a utilizar un programa (en modo protegido), no


son esas. Siempre son traducidas, o mapeadas, en direcciones de
memoria física por un mecanismo de "traducción de direcciones".

Este mecanismo, nos introduce en el concepto de "dirección virtual".


Se llama de esta manera porque no corresponde directamente a
posiciones de memoria "física", sino que a través de una "función de
mapeado" equivale a una dirección de memoria física. Es decir este
mecanismo, al "apuntar" a una dirección de memoria, lo que hace es
buscar, por ejemplo en unas tablas internas, la correspondencia entre
esta dirección y la dirección real "física" del dato.

La traducción de dirección "virtual" a "física" también proporciona


protección de memoria, ya que podría disponerse por ejemplo, que
ciertas direcciones físicas de memoria no se mapeen desde ninguna
dirección virtual.

Además de esta protección, en la función de traducción de


direcciones, se pueden identificar ciertas direcciones virtuales como
"no válidas". Esto amplía el mecanismo de protección. Para no tener
que generar una direccion física cuando se presenta un dirección
virtual no válida, el mecanismo de traducción de direcciones informa
de una "excepción", de forma que el software del sistema operativo,
puede tomar la acción que considere oportuna.
Conclusión.

Después de haber analizado los temas nos queda claro que las
memorias son dispositivos de almacenamiento que nos ayudan a
guardar información y hay diferentes tipos en nuestra computadora,
ocupando diferentes niveles en la jerarquía esto se debe al tipo de
velocidad.

Nos damos cuenta también de la importancia que tiene dentro de la


computadora ya que sin ellas o sin una de ellas no se trabajaría bien
teniendo problemas.

Se espera que esta información ayude mucho a investigaciones


futuras ya que es de gran importancia saber que son las memorias.
Bibliografía.

http://es.wikipedia.org/wiki/Registro_(hardware)

http://www.configurarequipos.com/doc585.html

http://es.wikipedia.org/wiki/Memoria_cach%C3%A9

http://es.wikipedia.org/wiki/Memoria_RAM

http://es.wikipedia.org/wiki/ROM

http://dac.escet.urjc.es/~lrincon/uned/etc3/Etc3-08.PDF

http://quidel.inele.ufro.cl/~jruiz/est2/Webeo2/MAPEO.html

http://multingles.net/docs/jmt/memoria_virtual.htm

También podría gustarte