0% encontró este documento útil (0 votos)
896 vistas10 páginas

Jerarquía de Memoria en Computadoras

La jerarquía de memoria en los ordenadores está organizada en niveles, desde los registros más rápidos en la cima hasta el disco duro más lento en la base. La memoria caché se sitúa entre la memoria principal y el microprocesador para permitir un acceso más rápido a datos frecuentemente utilizados, mejorando el rendimiento general. El objetivo es obtener el rendimiento de una memoria rápida al coste de una memoria más lenta.

Cargado por

JOSE CASTRO
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
896 vistas10 páginas

Jerarquía de Memoria en Computadoras

La jerarquía de memoria en los ordenadores está organizada en niveles, desde los registros más rápidos en la cima hasta el disco duro más lento en la base. La memoria caché se sitúa entre la memoria principal y el microprocesador para permitir un acceso más rápido a datos frecuentemente utilizados, mejorando el rendimiento general. El objetivo es obtener el rendimiento de una memoria rápida al coste de una memoria más lenta.

Cargado por

JOSE CASTRO
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

Jerarquíía de memoria

Organizacioí n piramidal de la memoria en niveles, que tienen los ordenadores.

Niveles de la jerarquíía de memoria.

Nivel 0: Registros
Nivel 1: Memoria cacheí
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 baí sicos relacionados con la memoria:

 Cantidad cuanto maí s memoria haya disponible, maí s podraí utilizarse.


 Velocidad oí ptima para la memoria es la velocidad a la que el procesador
puede trabajar, de modo que no haya tiempos de espera entre caí lculo y
caí lculo, utilizados para traer operandos o guardar resultados.
 Coste no debe ser excesivo, para que sea factible construir un equipo
accesible.

Registros.
Los registros estaí n en la cima de la jerarquíía de memoria, y son la manera maí s
raí pida que tiene el sistema de almacenar datos.

Definicioí 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 matemaí ticas.
Los registros se miden por lo general por el nuí mero de bits que almacena.

Tipos de registros:

 De datos: usados para guardar nuí meros enteros.


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

Definicioí n:

Es una memoria raí pida y pequenñ a, situada entre la memoria principal y el


microprocesador, especialmente disenñ ada para contener informacioí 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 maí s raí pida que el resto
de la memoria principal.

Diagrama de una memoria cacheí de CPU.

La memoria cacheí es una memoria en la que se almacena un serie de datos para su


raí pido acceso. La memoria cacheí de un microprocesador es de tipo volaí 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
instantaí 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 maí s raí pido y fluido posible.

La operacioí n baí sica de cacheí es:

Cuando la CPU necesita accesar memoria, se revisa la cacheí . Si se encuentra la


palabra en cache, se lee de la memoria raí pida. Si la palabra direccionada de la CPU
no se encuentra en cacheí , se accesa la memoria principal para leer la palabra.
Despueí s, se transfiere un bloque de palabras que contiene la que se acaba de
accesar, de la memoria principal a la memoria cacheí . El tamanñ 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 cacheí para que las futuras referencias a
memoria encuentren la palabra requerida en la memoria raí pida cacheí .

Hay tres tipos diferentes de memoria cacheí para microprocesadores:

 Caché de 1er nivel (L1): Integrada en el nuí cleo del microprocesador,


trabajando a la misma velocidad que este. La cantidad de memoria cacheí
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 nuí cleo, es algo maí s lenta que la cacheí L1. La cacheí L2
suele ser mayor que la cacheí L1, pudiendo llegar a superar los 2MB.
Utilizacioí n estaí maí s encaminada a programas que al sistema.

 Caché de 3er nivel (L3): Es un tipo de memoria cacheí maí s lenta que la
L2, muy poco utilizada en la actualidad. En un principio esta cacheí estaba
incorporada a la placa base, no al microprocesador, y su velocidad de
acceso era bastante maí s lenta que una cacheí de nivel 2 o 1, ya que si bien
sigue siendo una memoria de una gran rapidez (muy superior a la RAM, y
mucho maí s en la eí poca en la que se utilizaba), depende de la
comunicacioí n entre el microprocesador y la placa base.

La memoria cacheí es raí pida, unas 5 oí 6 veces maí s que la DRAM (RAM dinaí mica),
por eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 oí 20
veces maí s que la memoria principal dinaí mica para la misma cantidad de memoria.

Composición interna

La memoria cacheí estaí estructurado por celdas, donde cada celda almacena un
byte. La entidad baí sica de almacenamiento la conforman las filas, llamados
tambieí n lííneas de cacheí .

Cuando se copia o se escribe informacioí n de la RAM por cada movimiento siempre


cubre una líínea de cacheí .

La memoria cacheí tiene incorporado un espacio de almacenamiento llamado Tag


RAM, que indica a queí porcioí n de la RAM se halla asociada cada líínea de cacheí , es
decir, traduce una direccioí n de RAM en una líínea de cacheí concreta.

Memoria principal.
Son circuitos integrados capaces de almacenar informacioí n digital, a los que tiene
acceso el microprocesador del equipo de computacioí 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 soí 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 informacioí n almacenada, incluso en el caso de que se
interrumpa la corriente (memora no volaí til).

La ROM suele almacenar la configuracioí n del sistema o el programa de arranque de


la computadora.

Uso principal:

Reside en la distribucioí n de programas que esteí n estrechamente ligados al soporte


fíísico de la computadora, y que seguramente no necesita actualizacioí n.

La memoria RAM normalmente es maí s raí 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 cuaí l es el
hardware que estaí presente y de la puesta a punto de la computadora.
Mediante un programa de configuracioí n, el SETUP, lee una memoria llamada
CMOS RAM (RAM de Semiconductor de oí xido metaí lico). EÉ sta puede
mantener su contenido durante varios anñ os, aunque la computadora estaí
apagada, con muy poca energíía eleí 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 continuacioí n cede el control a dicho sistema
operativo y el ordenador queda listo para trabajar.
b) Rutina BIOS. Sistema baí sico de entrada salida (Basic input output system):
permanece activa mientras se estaí usando la PC. Permite la activacioí n de los
perifeí 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 maí 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
volaí til.
Se trata de una memoria de semiconductor en la que se puede tanto leer como
escribir informacioí 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:

 Estaí ticas: mantiene su contenido inalterado mientras esteí alimentada.

 Dinaí mica: la lectura es destructiva, es decir que la informacioí n se pierde al


leerla, para evitarlo hay que restaurar la informacioí n contenida en sus
celdas, operacioí n denominada refresco.

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

Muchas aplicaciones requieren el acceso a maí s informacioí n (coí digo y datos) que la
que se puede mantener en memoria fíísica. Esto es asíí sobre todo cuando el sistema
operativo permite muí ltiples procesos y aplicaciones ejecutaí ndose
simultaí neamente. Una solucioí n al problema de necesitar mayor cantidad de
memoria de la que se posee consiste en que las aplicaciones mantengan parte de su
informacioí n en disco, movieí ndola a la memoria principal cuando sea necesario.
Aunque la memoria virtual podríía estar implementada por el software del sistema
operativo, en la praí ctica casi siempre se usa una combinacioí 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 direccioí 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 direccioí n real de memoria (la direccioí 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 indicacioí n de que la direccioí n de memoria deseada no se encuentra en
memoria principal (llamado excepcioí n de memoria virtual): el sistema
operativo es invocado para manejar la situacioí n y permitir que el programa
siga ejecutando o aborte seguí n sea el caso.

La memoria virtual es una teí cnica para proporcionar la simulacioí n de un espacio


de memoria mucho mayor que la memoria fíísica de una maí quina. Esta "ilusioí n"
permite que los programas se ejecuten sin tener en cuenta el tamanñ o exacto de la
memoria fíísica.

La ilusioí n de la memoria virtual estaí soportada por el mecanismo de traduccioí n de


memoria, junto con una gran cantidad de almacenamiento raí pido en disco duro.
Asíí en cualquier momento el espacio de direcciones virtual hace un seguimiento de
tal forma que una pequenñ a parte de eí l, estaí en memoria real y el resto almacenado
en el disco, y puede ser referenciado faí 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 soí lo se
tienen unos pocos fragmentos de un proceso dado, se pueden mantener maí s
procesos en la memoria. Es maí 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 coí 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 direccioí n n entonces es muy probable que despueí s
pida el dato de la direccioí 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 paí rrafos
anteriores la memoria Cache es de poca capacidad, en relacioí 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 conversioí 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 soí lo, ilustrativo y no tiene relacioí 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:

 Seguí n las condiciones antes definidas se tiene lo siguiente: cada bloque seraí
de 8 Byte, es decir 8 palabras de largo 8.
 La memoria principal al ser dividida por 8 (512 B / 8) daraí como resultado
64 bloques de 8 palabras cada uno.
 La memoria Cache tambieí 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 asignacioí n):
 En el bloque cero de la cache pueden ir cualquiera de los muí 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 posicioí n de memoria 405 se ocupa la
siguiente tabla de ubicacioí 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 posicioí 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 cacheí :
 Tiempo de CPU:

TCPU = (c CPU + cdm) × t donde

c CPU: ciclos de reloj de ejecucioí n CPU


c dm: ciclos de reloj de detencioí n de memoria
t: duracioí n del ciclo de reloj

 Ciclos de detencioí 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: penalizacioí n de fallos de lectura o escritura.
 Juntando lecturas y escrituras:

cdm = namp • ff • pf , donde

namp: nuí mero de accesos a memoria por programa.


ff: frecuencia de fallos.
pf: penalizacioí n de fallo.

 Teniendo en cuenta el nuí mero de instrucciones (IC):

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

cdmi es el nuí mero de ciclos de detencioí n por instruccioí n.

 Si el nuí mero de fallos por instruccioí n es:

Nfi = nami • f f, donde

nami es el nuí mero de accesos a memoria por instruccioí 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.
Traduccioí 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 direccioí n: el nuí mero que ocupa posicionalmente en la memoria. Esta direccioí 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 "traduccioí n de direcciones".

Este mecanismo, nos introduce en el concepto de "direccioí n virtual". Se llama de


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

La traduccioí n de direccioí n "virtual" a "fíísica" tambieí n proporciona proteccioí n de


memoria, ya que podríía disponerse por ejemplo, que ciertas direcciones fíísicas de
memoria no se mapeen desde ninguna direccioí n virtual.
Ademaí s de esta proteccioí n, en la funcioí n de traduccioí n de direcciones, se pueden
identificar ciertas direcciones virtuales como "no vaí lidas". Esto amplíía el
mecanismo de proteccioí n. Para no tener que generar una direccion fíísica cuando se
presenta un direccioí n virtual no vaí lida, el mecanismo de traduccioí n de direcciones
informa de una "excepcioí n", de forma que el software del sistema operativo, puede
tomar la accioí n que considere oportuna.

También podría gustarte