Estructura de computadores
Estructura de computadores
Estructura de computadores
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CC-BY-SA • PID_00177073 34 Sistema <strong>de</strong> memoria<br />
Si tenemos tantos conjuntos como líneas (2 c = 2 m ) y cada conjunto tiene una<br />
sola línea (ω = 1), estamos ante el mismo caso que una memoria caché <strong>de</strong><br />
asignación directa; si tenemos un solo conjunto (2 c = 1) <strong>de</strong> 2 m líneas (ω = 2 m ),<br />
se trata <strong>de</strong> una memoria completamente asociativa.<br />
Para <strong>de</strong>terminar a qué conjunto <strong>de</strong> la memoria caché po<strong>de</strong>mos asignar cada<br />
bloque <strong>de</strong> la memoria principal, hay que dividir el número <strong>de</strong> bloque en dos<br />
partes: una etiqueta que correspon<strong>de</strong> a la parte más significativa <strong>de</strong>l número<br />
<strong>de</strong> bloque y un número <strong>de</strong> conjunto correspondiente a la parte menos signi-<br />
ficativa.<br />
Si tenemos un número <strong>de</strong> bloque que utiliza n – k bits, <strong>de</strong> estos n – k bits<br />
utilizaremos c bits para especificar el número <strong>de</strong> conjunto y el resto <strong>de</strong> los bits<br />
(n – k – c), para especificar la etiqueta.<br />
Cálculo <strong>de</strong>l número <strong>de</strong> etiqueta<br />
A partir <strong>de</strong>l número <strong>de</strong> bloque b se pue<strong>de</strong> calcular la etiqueta e haciendo la operación<br />
siguiente: e = b div 2 c , don<strong>de</strong> div es la división entera.<br />
El número <strong>de</strong> línea l se pue<strong>de</strong> calcular haciendo la operación siguiente: l = b mod 2 c ,<br />
don<strong>de</strong> mod es el residuo <strong>de</strong> la división entera.<br />
Tenemos 2 n – k bloques <strong>de</strong> la memoria principal y 2 c conjuntos <strong>de</strong> la memoria<br />
caché (2 n – k > 2 c ), por lo tanto a cada conjunto <strong>de</strong> la memoria caché po<strong>de</strong>mos<br />
asignar 2 n – k – c (= 2 n – k /2 c ) bloques diferentes. Como cada conjunto dispone<br />
<strong>de</strong> ω líneas, solo ω bloques <strong>de</strong> los 2 n – k – c pue<strong>de</strong>n encontrarse en un conjunto<br />
<strong>de</strong> la memoria caché en cada momento.<br />
El número <strong>de</strong> conjunto <strong>de</strong> la dirección indicará en cuál <strong>de</strong> los 2 c conjuntos <strong>de</strong><br />
la memoria caché se pue<strong>de</strong> encontrar el bloque al que queremos acce<strong>de</strong>r <strong>de</strong> la<br />
memoria principal. La etiqueta nos permitirá saber, comparando simultánea-<br />
mente todas las etiquetas <strong>de</strong> las líneas que forman el conjunto, si el bloque<br />
al que queremos acce<strong>de</strong>r <strong>de</strong> la memoria principal es uno <strong>de</strong> los bloques que<br />
en este momento están almacenados en una línea <strong>de</strong> aquel conjunto <strong>de</strong> la<br />
memoria caché.