01.05.2013 Views

Estructura de computadores

Estructura de computadores

Estructura de computadores

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CC-BY-SA • PID_00177073 32 Sistema <strong>de</strong> memoria<br />

explicaremos más a<strong>de</strong>lante. El número <strong>de</strong> bloque <strong>de</strong> la dirección <strong>de</strong> memoria<br />

se almacena en el campo etiqueta <strong>de</strong> la línea; así podremos saber qué bloque<br />

está almacenado en cada una <strong>de</strong> las líneas <strong>de</strong> la caché.<br />

Para <strong>de</strong>terminar si un acceso a una dirección <strong>de</strong> memoria produce un acierto<br />

en la memoria caché, hay que hacer lo siguiente:<br />

A partir <strong>de</strong> la dirección <strong>de</strong> memoria se <strong>de</strong>termina cuál es su número <strong>de</strong> bloque<br />

(bits n – 1 .. k) y se compara simultáneamente el número <strong>de</strong> bloque <strong>de</strong> esta<br />

dirección con el campo etiqueta <strong>de</strong> todas las líneas <strong>de</strong> la memoria caché; si se<br />

produce una coinci<strong>de</strong>ncia significa que hay un acierto, entonces se utiliza el<br />

número <strong>de</strong> palabra (bits k – 1 .. 0) para obtener la palabra solicitada y servirla<br />

al procesador.<br />

Si el número <strong>de</strong> bloque <strong>de</strong> la dirección no coinci<strong>de</strong> con ninguna etiqueta <strong>de</strong><br />

la memoria caché, se trata <strong>de</strong> un fallo y habrá que llevar todo el bloque <strong>de</strong><br />

memoria principal a la memoria caché reemplazando uno <strong>de</strong> los bloques que<br />

tenemos actualmente almacenados.<br />

Ejemplo<br />

Tenemos una memoria principal <strong>de</strong> 2 16 (64 K) palabras y una memoria caché <strong>de</strong> 2 10<br />

(1.024) palabras organizada en 2 6 (64) líneas <strong>de</strong> 2 4 (16) palabras por línea.<br />

La memoria principal se dividirá en bloques <strong>de</strong> 2 4 (16) palabras. Una dirección <strong>de</strong> memoria<br />

tendrá 16 bits, los 4 bits menos significativos para el número <strong>de</strong> palabra y los 16<br />

– 4 = 12 bits restantes para el número <strong>de</strong> bloque; en total tendremos 2 12 (4.096) bloques<br />

<strong>de</strong> 2 4 (16) palabras. Las direcciones se dividirán <strong>de</strong> la manera siguiente:<br />

A continuación se muestra un posible contenido <strong>de</strong> la memoria caché:<br />

M(x) indica que en esta palabra <strong>de</strong> la línea <strong>de</strong> la caché está almacenada la palabra <strong>de</strong><br />

memoria con la dirección x.<br />

A continuación se muestra la <strong>de</strong>scomposición <strong>de</strong> una <strong>de</strong> las direcciones <strong>de</strong>l bloque 16<br />

que se encuentra en la memoria caché.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!