Sie sind auf Seite 1von 25

$tazl artf

Problemas de Estructura de Computadores II


Basilio B. Fbaguela V. Date: 2007 l02l0L L5:44:52 Revision: L.2

1.

Memorias entrelazadas

1.1 Dad.a una memoria entrelazada de orden inferior de 4 mdulos que debe remitir los resultados de las lecturas en el orden en que han sido solicitados por el procesador y que para ello tiene 16 buffers que permiten guardar los resultados de las lecturas de los mdulos hasta el momento en que deben ser enviados al procesador, hgase un estudio del tiempo que tarda en acceder a las posiciones la secuencia 1, 2, 4,5,8, 0, 1, 3, 4,5,1 y 2 tanto para el casode que los mdulos 0, de tengan latches a la entrada como a la salida. Datos temporales: ?...."o a un mdulo : 7 unidades ?referencia : 2 unidades
?salida : 1 unidad

ffi
a) Con latches a la entrada requiere 41 ciclos: Modulo 3

2 (1 3 ' ), , . , Modulo 2

Modulo 1
n'110)

s( 11)
I

Modulo 0

(7') i.0'

"

kto")

b) Con latches a Ia salida requiere 46 ciclos:

Modulo 3

2 (13"\
Modulo 2
I I l.

r (8)
Modulo I

(ll) .l.s

1 (12)

,1
tl

Modulo 0

0.(l)

2.

Cachs

2.L Considerando los datos de la tabla adjunta correspondientesa cachsde correspondencia directa con un tamao de bloque de 32 bytes, tomados sobre un conjunto de programasde prueba en los que el porcentaje de referenciasa instruccioneses del 75 % respondea las siguientescuestiones: a) 'Qu sistema presenta una menor razn de fallos, el constitudo por una cachde instruccionesde 16 KB y una cach de datos de 1"6KB, o el constituido por una cach de 32 KB unificada? ) Supngaseque un acierto cach requiere un ciclo de reloj, un fallo tiene un costo de 50 ciclos,y que un acierto en una instruccin load o store requiere un ciclo extra en eI caso de la cach unificada, ya que sIo existe un puerto de accesoa esta cach para satisfacerdos peticionessimultneas.Cul es el tiempo medio de accesoa memoria en cada caso?
Tamao

Cach de instrucciones

Cachde datos

Cach unificada

1K B 2KB 4KB 8KB 16 KB 32 KB

3.06Yo 2.26% I.7B% L10% 0.64%

24.6r%
20.577 15.94%

r0.19%
6.47% 4.82%

13.34% 9.78Y 7.24% 4.57Yo 2.87%

0.3s%

r .99%

a son referenciasa instrucciones,el otro 25To sern accesos a) Dado que el 75% de los accesos datos, con lo que la razn de fallos conjunta para una la cachseparadaser :2,I0To 75% x 0,6470 25% x 6,477o + tomando los datos de tasas de fallos para una cach de instruccionesy de datos de 16 KB cada una separadas.

La tabla indica que la tasa de fallos de la cach unificada de 32 KB es el 1.99%, lo cual es ligeramente inferior. ) El tiempo medio de accesoa memoria puede dividirse en trminos, el correspondientea instruccionesy a datos:

Tiempo medio de accesoa memoria: a Porcentaje de accesos instruccionesx (Tiempo de acierto * Tasa de Fallos x Penalizacinde fallos)* a Porcentaje de accesos datosx (Tiempo de acierto * Tasa de Fallos x Penalizacin de fallos) El tiempo de accesomedio a memoria para la cachdividida es: 75%x (1+0,64% x 50) +25% x (1+ 6,47% x 50) :2,05 El tiempo de accesomedio a memoria para la cach unificada es: 75% x (1 + 1,99%x 50) +25% x (1 + 1 + 1,99%x 50) : 2,24 As pues, aunque la tasa de fallos del sistema con cach separadas sea superior al de Ia cach unificada, su tiempo medio de accesoa memoria es menor que el de la cach unificada. 2.2 La tabla adjunta muestra diferentes porcentajes de la razn de fallos de una cach en funcin de su tamao y eI tamao de lnea elegidos (expresadosen KBytes y bytes, respectivamente). Considera que el sistema de memoria requiere 40 ciclos de reloj de iniciacin y a continuacin es capaz de proporcionar 16 bytes cada dos ciclos de reloj. Es decir, proporciona 16 bytes en Determina qu tamao de 42 ciclos de reloj, 32 bytes en 44 ciclos de reloj, y as sucesivamente. poseeel mnimo tiempo medio de accesoa memoria para las cachsde tamaos 4K, 16K bloque y 64K, respectivamente.
Tamao de lnea

Tamao de la cach

16 32 64

4K 16K 64K 8 . 5 7 % 3.94% 2.04% 7.24% 2.87% 135% 7.007 2 . 6 4 % 1 . 0 6 %

ffi
Sabemosque Tiempo medio de accesoa memoria: Tiempo de acierto*Tasa de FallosxPenalizacinde fallos del Supongamosque el tiempo de acierto es de un ciclo de reloj independientemente tamao de la lnea y calculemos as los tiempos medios de acceso a memoria para cada combinacin de la tabla. Por ejemplo, si consideramosla cachde 4 KBybes, segn la tabla su tasa de fallos es del 8.5770,y de acuerdo al enunciadoel tiempo requerido para traer 16 bytes de la memoria son 42 ciclos. As pues, su tiempo medio de accesoa memoria ser 1 + 8,57% x 42 : 4,599 ciclos. Si la considersemos misma cachpero con un tamao de lnea de 32 bytes, la tasa de fallos sera del 7.2470y la penalizacin de fallo de 44 ciclos, puesto que la memoria requiere 44 ciclos para

enviar 32 bytes a la cach. As pues el tiempo medio de acceso a memoria en este caso sera x L + 7,24Yo 44 :4,186 ciclos. para todas las combinaciones, Siguiendoestamecnicapodemoscalcular el tiempo medio de acceso obteniendola siguientetabla: Tamao de lnea Penalizacin de fallo
Tamao de la cach

r6
32 64

42 44
48

64K 4.599 2.655 1.857 4 . 1 8 6 2.263 r.594 4.360 2.267 1 . 5 0 9


4K 16K

As pues, para las cachsde 4 KBytes y de 16 KBy'tes el mejor tamao de bloque es el de 32 bytes, mientras que la cach de 64 KBytes consiguesu menor tiempo de accesomedio con un tamao de lnea de 64 bvtes.

3.

Memoria virtual
El sistema dispone de un espaciovirtual de un 1 MByte y de un espaciofsico de 512 KBytes, ambos organizadosen bytes y reservadospara un nico proceso. El sistema dispone de una cach asociativa por conjuntos, que consta de cuatro conjuntos de de dos vas cada uno. Cada lnea de la cach consta de 4 bytes. En la figura adjunta (Fig. 1) se muestra el contenido de la tabla del primer nivel y de la cachen un momento determinado en notacin hexadecimal.Cada entrada de la tabla de traduccin tiene 16 bits, de forma que los ms significativosson de control y los menos significativoscontienen un nmero de pgina fsica. El bit mrs significativo de cada entrada es el de residencia, que vale l- si la pgina est residente.EI resto de los bits de control no influyen en el problema. Las entradas de las tablas de pginas del segundonivel tienen el mismo formato. La tabla del primer nivel se almacenaen registros internos del procesador. Con estosdatos y sabiendoque las tablas del segundonivel setratan exactamenteigual que el resto de las pginasvirtuales, indicar de forma detallada todos los pasos implicados en el procesode traduccin as como los distintos valoresque se van obteniendoen el procesosi el procesadoremite la direccin virtual BBED1 para leer un byte. Qu dato es enviado finalmente al procesador?
Tabla ler nivel
Cache

3 . 1 Seaun sistemade memoria virtual paginadoen dos nivelescon un tamao de pgina de 512 bytes.

0 I 2 4 5 6

3B8A 57C2 3BFA ACDl 3FB2 AFTI 5198 TFEA

DC

7^A
CO

DC

ZA C2

IB2D 326A89CD 4D21 32E6FF00 DC ZA

54FE 5986F4ED 3D 1A Cl3AFEA5 DC ZA

7A3B BC1F7DE9 C1 IBC3 982ED134

C3 6E38 IF3EBOD9

16F4 A356DCl2

Figura L: Tabla de pginasdel primer nivel y estado de la cachen el problema 3.1

ffi

Planteamiento: lVl : f MByte : 220bybes+ 20 bits de dir. virtual. lMl:512 KBytes : 2lebytes=+ 19 bits de dir' fsica. Tamao de pgina : 9 5L2 bytes : 2e bytes ===+ bits de desplazamiento.

r Descomposicin la dir. virtual de o Al ser la pgina de 512 bytes, el desplazamiento la pgina requiere 9 bits. en o Como la tabla de pginasdel primer nivel tiene 8 entradas,se requierenlog2(8) : 3 bits para indexarla. o Puesto que Ias DVs son de 20 bits, los restantes 20 - 9 - 3 : 8 bits indexarn Ia tabla de pginas del segundo nivel. Nm PV

TP1
3 bits de Descomposicin la dir. fsica

TP2
8 bits

A
9 bits

en o Al ser la pgina de 512 bybes,el desplazamiento la pgina requiere 9 bits. o Puesto que las DFs son de 19 bits, los restantes 19 - 9 : 10 bits sern el nmero de pgina fsica. Nm PF

A
9 bits

10bits

r Descomposicin la dir. fsica desdeel punto de vista de la cach: de o Lneas de la cach de 4 bytes + 2 bits de desplazamiento o La cachtiene 4 conjuntos + 2 bits de campo de ndice o 19-2-2: 15 bits de etiqueta Etiqueta

15 bits
Resolucin:

Indice 2 bits

A
2 bits

la Descomponemos direccin virtual B8ED1 generadapor el procesador: queda: que descompuesto BBED1 en binario es 101111000111101110110001,

A TP2 TP1 01101000i 101 1 1 0 0 0 1 1 1


As pues se lee la entrada 101 (5) de la TP1 que contieneel valor AF71 (vaseIa Fig. 1). Este valor El L en binario es 10101111110i1110001. en el bit ms significativoindica que la tabla de pginas residenteen la memoria fsica. Como un nmero de PF consta de del segundonivel asociadaest 10 bits y el nmero de PF est en los bits menos significativos de las entradas de las tablas de pginas; el nmero de pgina fsica que contiene la tabla de pginas del segundo nivel asociada es En 1101110001. dicha tabla se necesitaleer la entrada 11000111segn indica el segundocampo de la DV B8ED1. Ahora bien, dado que cada entrada de la tabla de pginas, tanto en el primer como en el segundonivel, consta de 16 bits (2 bybes),la direccin fsica donde se inicia la entrada de la TP2 a leer se obtiene concatenandoaI mencionado nmero de pgina fsica el nmero de entrada multiplicado por dos. Se obtiene as la direccin fsica

x2 110111 0 0 0 1 1 1 0 0 0 1 1 1 0
Nm. PF Nm entrada Esta direccin corresponde a una posicin de memoria fsica, que ser buscada en la cach antes que en memoria principal cuando se la intenta acceder, al igual que cualquier otra posicin la de memoria fsica. Si descomponemos direccin fsica anterior desde el punto de vista de la cach obtenemos Indice 11011 1 0 0 0 1 1 1 0 0L1 0 Etiqueta

A 10

en es decir, debe buscarse la etiqueta (110111000111-000)2:6E38 alguna de las dos lneas del y de haber acierto, la entrada de la tabla de pginas del segundonivel que deseamos conjunto 3, leer ocupar los bytes 2 y 3 de Ia lnea de la cach. El motivo de este ltimo razonamiento es que cada entrada de las tablas de pginas consta de dos bytes, y como vemos en le descomposicin precedente,el desplazamiento del inicio de la entrada dentro de la lnea caches A : (1Q)2: 2. Comprobamos que en efecto dicha etiqueta se encuentra en el conjunto 3 de la cach y los b1'tes2 y 3 de su lnea contienen el valor hexadecimal80D9. De esta forma, estos 16 bits son la entrada El bit de la TP2 que estamosbuscando,que en binario son 1011100001110111001. ms significativo de Ia entrada indica que la pgina fsica que estamos buscando se encuentra residente en memoria principal, y los 1-0ltimos bits de la entrada contienen precisamente cul es el nmero de esta Para completar eI proceso de traduccin este nmero de pgina fsica debe PF: 0011011001. concatenarsecon el desplazamiento dentro de la pgina:

A Nm PF 1001 011010001 001101


que en hexadecimales 1B2D1. Al tratarse de una direccin fsica, el procesadorintenta accederla en primer lugar en la cach,y de fallar ah, la buscar en memoria principal. Si descomponemos la direccin precedentedesdeel punto de vista de la cachobtenemos Etiqueta Indice

0 001101100101101 0

A 01

y que indica que en el conjunto 0 debe buscarse etiqueta (001101100101101)2:182D, el byte la uno (A : (01)2 : 1) dentro de la lnea asociada. buscandoser aqul que tiene el desplazamiento Vemos que hay un acierto y que el b1'te correspondiente contiene ,rtr I OA l.

3 .2 Consideraun computador con memoria virtual paginada con un esquemade traduccin directa
en un nivel, donde el espaciovirtual es de l-28 MBytes, el espaciofsico es.de1 MByte y el tamao de pgina es de 4 KBytes. Qu tamao en bytes tiene Ia tabla de pginas si stas contiene la informacin mnima para hacer la traduccin (no hay ningn bit de control)? Halla el tamao de las pginas si queremosque la tabla de pginas ocupe slo 1 KByte.

Planteamiento: lvl -- 128 MBytes : 227 Bytes - i 27 bits de dir. virtual. lMl :1 MByte : 220bytes 1 )Q bits de dir. fsica. Tamao de pgina : 4 KBytes : 212bytes + Resolucin: 12 bits de desplazamiento.

Tamao TP : Nm. Entradas x Tamao entrada: Nm. Pgs. Virtuales x Tamao entrada:

227bytes de espacio virtual 212 bytes/pgina "to*r(W) 2rz bytes/paglna

: : 2rbentradasxg bits/entrada

: 215byteslg2KBytesl :
Para calcular el tamao de la pgina de forma que la TP slo ocupe un KByte, utilizamos Ia misma ecuacin pero transformando en incgnita el tamao de pgina y poniendo como dato conocido eI tamao total de la TP:

(#)

x entradas log2(#)

bits/entrad"' (+)

bytes/bit:210bybes

( # )x ,o g(# )--, 2
2$a-dx(20-p)-L Por un proceso de prueba y error se obtiene p : 16, por lo que el tamao de la pgina es

@.Elnmerodep'saprobaresreducid'opuestoqueparaqueeIproducto @deuno,esnecesarioque(20_p)seaunapotenciatambindedos,y ademsde exponente opuesto u " 2Ga-. 3.3 Sea el esquemade traduccin de direccionesvirtuales a direccionesfsicas del procesadorIntel 386 con los siguientessupuestos: . Registro Base de la Tabla de Segmentos(RBTS): 00000000 . Registro Base de la Tabla de Pginas del Primer Nivel (RBTP): 000F0000 . Las entradas de la tabla de segmentos de pginas son de 32 bits. y las entradas de las tablas de pginas los bits menos significativos tienen en nmero de ' En pgina fsica asociada. . La direccin fsica X de Ia memoria principal contiene el valor X mod 256.

Si el procesadoremite la direccin virtual 00A2008F8400,de 46 bits, obtngasela direccin fsica en correspondiente cada uno de los cuatro modos de direccionamientodel procesadorsuponiendo que no se va a producir ningn fallo.

a) Sin memoria virtual:

Las direccionesfsicas del Intel 386 son de 32 bits. Cuando no hay memoria virtual los 14 bits altos del registro de segmento del procesador son ignorados y los 32 bits bajos de Ia As pues, la direccin fsica asociadaa misma constituyen la direccin fsica correspondiente. la direccin virtual 00A2008F8400seran los 32 bits menos significativosde la misma, esto

"r, I

ooBF84oo l.

pura: ) Segmentacin del En la memoria virtual segmentada Intel386 los 32 bits bajos de la direccinvirtual coffesponden al desplazamiento dentro del segmento, en tanto que los 14 bits altos procedentes del registro de segmento constituyen el nmero de segmento. As pues, la direccin virtual 00A200BF8400correspondeal accesocon desplazamiento008F8400 dentro del segmento virtual00A2. La direccin fsica asociadaa esta direccin virtual la obtendremossumando el desplazamiento a la direccin fsica en que se inicia el segmentoen memoria principal, la cual calculandola direccin de Para obtenerla empezamos extraeremosde la tabla de segmentos. la entrada de la tabla de segmentosasociada al segmento ,A'2: Dir. Fsica de la entrada para el segmentoA2 : RBTS * 4 x A2: 0 - 288 : 288

El clculo precedente se basa en que la tabla de segmentos comienza en la direccin de memoria marcada por el RBTS, y dado que cada entada ocupa 32 bits, es decir, 4 by'tes,la entrada i-sima se encontrar a 4 x i bytes del inicio de la tabla. El enunciado indica que la direccin fsica X de la memoria principal contiene el valor X mod 256, as pues, los 4 bytes de la entrada de Ia tabla de segmentosque se inicia en la posicin de memoria principal 288 contendrn los valores Direccin 288 289 284 8A Contenido 88 89

288 8B

Segn el enunciado no puede producirse ningn fallo, y las direcciones de memoria fsica son de 32 bits, con lo que los 32 bits de la entrada suponen la direccin de memoria principal en que se inicia el segmento.As pues podemos calcular que Ia direccin fsica asociadaa la pura es direccin virtual 00A2008F8400cuando el sistema emplea segmentacin

: I del 88898.488(base segmento) 008F8400(Desplazamiento) Aga9OE8Bl +


c) Paginacinpura: Cuando el Intel 386 est en modo paginadopuro los 14 bits de la direccinvirtual procedentes del registro de segmento se desprecian y los 32 bits menos significativos constituyen lo que en se denomina la direccin lineal. Esta direccin se descompone tres campos (puesto que la paginacin es en dos niveles) de los siguientestamaos: TP1 10 bits

TP2 Desplazamiento 12bits 10 bits

de En nuestro caso,la descomposicin los 32 bits menossignificativosde la direccin virtual 0042-008F8400 es TP1

:2rc (0000000010)z

Desplazamiento TP2 (010000000000 (11 1 1 1 1 1 0 0:0 )zF 8 ro 3 z :40010

Con estos valores procedemoscomo con cualquier otro sistema paginado en dos niveles. por indexar la tabla de pginasdel primer nivel, para lo cual debemoscalcular Comenzamos la direccin en memoria de su entrada 2 (campo TPl de la direccin). La tabla de pginas del primer nivel comienzaen la direccin marcada por el RBTP, y cada entrada consta de 32 bits, es decir, 4 bytes, con lo que dicha direccin ser Dir. Fsicade la entrada 2 : RBTP * 4 x 2: F0000 * 8 : F0008

Segnel enunciado,la direccinfsicaX de la memoria principal contieneel valor X mod 256, con lo que los 4 bytes de la entrada de la tabla de pginas del primer nivel que se inicia en la posicin de memoria principal F0008 contendrn los valores

Direccin Contenido

F0008 F0009 FOOOAFOOOB 08 09 OA OB

en los que los bits menos significativos contienen el nmero de pgina fsica donde radica la tabla de pginas del segundo nivel. Sabemosque las direcciones fsicas son de 32 bits y que el desplazamiento dentro de las pginas, que es el mismo en el espacio virtual y en el espacio fsico, es de 12 bits. As pues, los nmeros de pgina fsica deben constar de 32 - 12 : 20 bits. En nuestra entrada de la tabla de pginas del primer nivel los 20 bits menos significativos son 90A'08 (5 dgitos hexadecimales, a razn de 4 bits por dgito hexadecimal). Por tanto, dado que en este ejercicio no hay fallos de traduccin, la tabla de pginas del segundo nivel que requerimos est en la pgina fsica 90408, la cual se inicia en la posicin de memoria fsica 90408000. El nmero de entrada dentro de la tabla de pginas del segundo nivel que deseamosacceder es la 3F8, como indica el campo TP2 de la direccin virtual generada. Como cada entrada ocupa 32 bits, es decir, 4 bytes, la direccin de inicio de la entrada 3F8 ser 90,408000* 4 x 3.F8 : 90408000 + ,FEO: 90A0BFE0 Siguiendo Ia norma de que la direccin de memoria fsica X contiene el valor X los 4 by'besde la entrada contendrn los valores Direccin Contenido mod 256,

9OAOBFEOgOAOBFEl 9OAOBFE2 9OAOBFE3 E1 E3 EO E2

Esta es una entrada de la tabla de pginas del segundoy ltimo nivel, con Io que en su campo de pgina fsica encontramos por fin el nmero de pgina fsica en que est mapeada la pgina virtual que estamos buscando. Para calcular la direccin fsica deseada slo tenemos que concatenar este nmero de pgina fsica con el desplazamiento dentro de Ia pgina extrado del tercer y ltimo campo de la direccin virtual. Ya hemos razonado que los nmeros de pgina fsica son de 20 bits y segn el enunciado el nmero de pgina fsica se encuentra en los bits menos significativos de la entrada, con lo que esta entrada seala a la pgina fsica procedentede Ia direccin generadapor el procesadorera 400 (ya 1E2E3. El desplazamiento en hexadecimal), as pues, la direccin fsica asociada es la mrm4Obl d) Segmentacin con paginacin. Cuando el esquemade segmentaciny de paginacin se combinan en el Intel 386 la traduccin consta de dos fases. En la primera fase los 46 bits de la direccin virtual generada por el procesador se tratan y descomponen como una direccin segmentada pura, siguiendo el mismo esquemavisto en el apartado b) de este ejercicio. La direccin obtenida tras esta fase (89490888 en este problema) es entonces tratada como una direccin lineal de 32 bits y se realiza con ella un proceso anlogo aI realizado en el apartado c) del ejercicio, es decir, se la procesa como una direccin de un espacio paginado en dos niveles. Si se aplica este procedimiento a la direccin lineal 89490888 y nos ajustamos a las condiciones impuestas en el enunciado del problema, podemos cgmprobar que el resultado final del proceso de traduccin es la direccin fsica | 14243E88l.

3 . 4 Supongamosun computador con un espaciovirtual de 64 bytes, una memoria principal de 32


bytes y un tamao de pgina de 8 bytes. El computador utiliza un esquema de memoria virtual paginada con traduccin en un nivel, con el auxilio de una TLB de tres entradas. El algoritmo de reemplazo de las pginas fsicas y de las entradas de la TLB es de tipo FIFO. El sistema tambin poseeuna memoria cachde 8 bytes, organizadapor conjuntos. En concreto dispone de dos conjuntos con dos lneas por conjunto. Dentro de cada conjunto se utiliza un algoritmo de reemplazode tipo LRU.

Si el procesadoremite la siguiente lista de dieccionesvirtuales (en hexadecimal), indicar y explicar cmo evoluciona la tabla de pginas, la TLB y el directorio cach partiendo de ia situacin inicial indicada en Ia figura 2. Como puede apreciarse, la figura muestra que en la memoria fsica se hayan cargadas tres pginas virtuales, siendo el orden en que han sido cargadas; primero la 11L, luego la 001,y por Itimo la 011. Direcciones virtuales: ID,2I,1C, 0C, 15 y 24. En la figura R es el bit de residencia, V es el bit de validez, DC es el directorio cach, ZAIazona de almacenamiento, y LRU es el bit del algoritmo LRU, que indica el nmero de lnea dentro del conjunto que habr que reemplazar cuando se deseeintroducir una nueva lnea en el conjunto.
Tabla de paginas R Fis. TLB Pag. Virt. Pag. Fis. Cache DC

LRU V I I I

ZA

0 0 I
z J

000 001 ZA

00 0 0l

0 Conjunto LRU 0 ConjuntoI

4 0 5 0 6 0 7 I l0

010 t0l

Figura 2: Tabla de pginas, TLB estado de Ia cachen el problema 3.4.

ffi
Planteamiento: 6 bits de dir. virtual. lVl:64 bytes 4 lMl :32 bytes =+ 5 bits de dir. fsica. Tamao de pgina : 8 bytes - --+ 3 bits de desplazamiento. Cach de 8 bytes organizada en dos conjuntos de dos lneas cada uno 4 bYbes. almacenart:2 . Descomposicin la dir. virtual de o AI ser la pgina de 8 bytes, el desplazamiento la pgina requiere 3 bits. en o Puesto que las DVs son de 6 bits, y slo hay un nivel de paginacin,los restantes6-3 : 3 bits indexarn la tabla de pginas. sd lnea puede

PV A 3 bits 3 bits
r Descomposicin la dir. fsica de r Al ser la pgina de 8 bytes, el desplazamiento la pgina requiere 3 bits. en o Puesto que las DFs son de 5 bits, los restantes5 - 3 : 2 bits sern el nmero de pgina fsica. Nm PF

2 bits

A 3 bits

. Descomposicin la dir. fsica desdeel punto de vista de la cach: de

10

a a a

Lneas de la cach de 2 bytes ==+ 1 bit de desplazamiento La cach tiene 2 conjuntos =:+ 1 bit de campo de ndice 5 - 1 - 1 : 3 bits de etiqueta Etiqueta Indice

3 bits
Resolucin:

1 bit

A 1 bit

a) AccesoLD: En binario usando 6 bits (tamao de la direccin virtual), LDrc: 0111012.Dado que las virtuales tienen 3 bits de nmero de pgina virtual y otros tres de desplazamiento direcciones dentro de la misma, este accesoafecta la pgina virtual 011 con desplazamiento101-. La traduccin se inicia consultando la TLB, en la que se aprecia que la pgina virtual 0l,L est mapeada a la pgina fsica 01. As pues, es la direccin fsica 01101 la que deseamos acceder.Comprobamos, pues, si dicha direccin fsica se encuentra en la cach. Para ello esta direccin fsica desdeel punto de vista de la cach: descomponemos Etiqueta Indice

A
1

011

lo cual nos indica que debemosbuscar la etiqueta 011 en el conjunto 0. Podemosapreciar en la figura 2 que dicha etiqueta no se haya en el conjunto, con Io que nos encontramos ante un fallo de cach. Ya que el bit LRU seala a la lnea 1, es sta la que debe ser expulsada de la cach para poder introducir en el conjunto 0 la lnea con etiqueta 011 en que acabamosde fallar. Tbas este proceso la lnea 0 pasa a ser la menos recientemente accedida del conjunto 0, con lo que el bit LRU pasa a apuntar a ella. De esta forma, tras este accesolas estructuras de traduccin de direcciones(tabla de pginas y TLB) no han sido afectadas,en tanto que en la cachse han producido los cambiosque hemoscomentadoen eI conjunto 0, como muestra la figura 3.
Tabla de paginas R Pag.Fis.

TLB 0

Cache DC

ZA

0 0 I 2 0 3
I

000
011 ZA

00
01

^ 0 5 0 6 0
'7

0
ConjuntoI

I
I

010 101

10

Figura 3: Tabla de pginas, TLB y estado de la cachen el problema 3.4 tras el primer acceso(1D). b) Acceso21: Dado que las En binario usando 6 bits (tamao de Ia direccin virtual), 21t6 : 100001"2. virtuales tienen 3 bits de nmero de pgina virtual y otros tres de desplazamiento direcciones dentro de la misma, este accesoafecta la pgina virtual 100 con desplazamiento001. En la TLB no hay ninguna traduccin almacenadapara Ia pgina virtual 100, con lo que debe consultarse la tabla de pginas, en la que puede comprobarse que nos encontramos

t1

ante un fallo de pgina. La memoria fsica consta de 32 bytes y cada pgina ocupa 8 bytes; as pues hay un total de 4 pginas fsicas. Dado que hay 3 ocupadas debido a los accesos precedentes(la 00, la 01 y la L0 segn la tabla de pginas), hay una an disponible para ubicar nuevas pginas virtuales, en concreto, la pgina fsica l"l-. As pues, en la entrada 4 (100) escribimos que la pgina virtual correspondientese ubica en Ia pgina fsica 11 y reflejamos esta misma informacin en la TLB. Como la TLB est ya llena, debe expulsarse una entrada para introducir la nueva, y dado que el reemplazo es FIFO, la entrada ms antigua es la que debe expulsarse. El enunciado del problema dice que la primera pgina accedidafue la 1"LL,as pues su entrada es la que debe ser reemplazadapor la nueva. La segundapgina accedida fue la 00L, as que dejamos una marca indicando que ahora esa entrada es Ia ms antigua de la TLB. Una vez la pgina virtual 100 ha sido ubicada en la pgina fsica 11, podemos calcula Ia direccin fsica asociada al acceso.Al inicio del apartado habamos visto que el accesoa la direccin virtual 2116constitua un accesoa la pgina virtual 100 con desplazamiento 001. Estando esta pgina virtual en la pgina fsica 11,,la direccin fsica asociadaser la que es el 1100L,resultante de concatenarel nmero de pgina fsica con el desplazamiento, mismo en el espacio virtual y en el espacio fsico. Debemos ahora completar el accesocon el procesamiento en la cach. Esta direccin fsica queda descompuestadesde el punto de vista de la cachen los siguientescampos: Etiqueta Indice

A
1

110

Como es natural, el conjunto 0 de la cachno contieneninguna lnea con etiqueta 110, puesto que la pgina acaba de ser trada de la memoria secundaria,con lo que era imposible que hubiera copias de la misma en la cach.Resolvemosel fallo de cach expulsando del conjunto 0 la lnea 0, puesto que lo indica as el bit LRU, y sustituyndolapor la nuevalnea solicitada. BI bit LRU para entoncesa apuntar a la lnea 1, ya que ahora ser la menos recientemente referenciada. La figura 4 muestra el estado del sistema tras completar el segundoacceso.
Tabla de paginas R Pag.Fis.

TLB Virt.

Fi s.

LRU V

Cache DC ZA

0 0
I

r00
00 0l l1 001 011

l1 00 01

1
Conjunto 0

t10 011 ZA

2 0
I
n

0
Conjunto I I

5 0 6 0 7 10

010 l0r

Figura 4: Tabla de pginas, TLB y estado de la cachen el problema 3.4 tras el segundoacceso(21). c) Acceso1C: En binario usando 6 bits (tamao de la direccinvirtual), lCrc: 011100z. Dado que las pgina virtual y otros tres de desplazamiento direcciones virtuales tienen 3 bits de nmero de dentro de la misma, este accesoafecta la pgina virtual 011 con desplazamientol-00. La TLB muestra que la pgina virtual 01,1est ubicada en la pgina fsica 01, con lo que la direccinfsica para esteacceso 01-100. es Procedemos accedera la cachcon esta direccin, a

12

descomponindola para ello en los siguientes campos: Etiqueta Indice

011

A 0

Podemosapreciar que setrata de un acierto en la cach,puesto que en el conjunto 0, sealado por el campo Indice de la direccin, encontramosuna lnea con la etiqueta 011 solicitada, en concreto Ia lnea L. Debe notarse que en el momento de efectuarse el accesoel bit LRU del conjunto sealaba precisamente a esta lnea como la menos recientemente referenciada del conjunto. Dado que acabamos de accederla,ahora la lnea menos recientemente referenciada del conjunto pasa a ser la lnea 0, con lo que debemosmodificar el bit LRU del conjunto 0. As pues, tras este accesoel estado de la tabla de pginas,TLB y caches el mostrado en Ia figura 5.
TabIa de paginas R Pae. Fis. TLB Cache DC ZA

. Virt. Pas.Fis. 100


ll

LRU V

0 00

0
Conjunto 0 LRU

110 011 ZA 010 l 0t

001 011

00 01

0
I

01
ll

I 0

0 ConjuntoI

0
I

l0

Figura 5: Tabla de pginas, TLB y estado de la cachen el problema 3.4 tras eI tercer acceso(1C)' d) Acceso0C: En binario usando 6 bits (tamao de la direccin virtual), OCro : 0011002.Dado que las virtuales tienen 3 bits de nmero de pgina virtual y otros tres de desplazamiento direcciones dentro de la misma, este accesoafecta la pgina virtual 00L con desplazamiento100. La TLB indica que la pgina virtual 001 ha sido ubicada en la pgina fsica 00, con lo que el proceso de traduccin de direccin virtual a direccin fsica termina con xito, siendo la direccin fsica asociada la 00100, resultante de concatenar el nmero de pgina fsica hallado con el desplazamiento dentro de la pgina, que es el mismo en el espacio virtual y en la el espaciofsico. Procedemospues, a accedera la cach descomponiendo direccin fsica de la siguiente forma: Etiqueta Indice

001

A 0

Dado que ninguna lnea lnea del conjunto 0 tiene la etiqueta 001, nos encontramosante un fallo de cach. El bit LRU indica que debemosexpulsar la lnea 0, y reemplazarlapor la solicitada. Tlas el reemplazo, el bit LRU se actualizar para indicar que ahora la lnea el menosrecientementereferenciadadel conjunto en la lnea uno. Por tanto, tras este acceso estado del sistema es el que muestra Ia figura 6. e) Acceso15: En binario usando 6 bits (tamao de la direccin virtual), 15ro - 0101012.Dado que las direccionesvirtuales tienen 3 bits de nmero de pgina virtual y otros tres de desplazamiento dentro de la misma, este accesoafecta la pgina virtual 010 con desplazamiento101.

13

Tabla de paginas R Fis

TLB
ln. Pag.Fis.

LRU V I Conjunto 0 LRU I

Cache DC

ZA.

0
00

100 001 011 0l


ll

ll

001 011 ZA

00 01

0
Cor{unto I

I
I

010
101

0 0
I

l0

Figura 6: Tabla de pginas, TLB y estado de la cachen eI problema 3.4 tras el cuarto acceso(0C). No encontramosninguna traduccin para la pgina virtual 010 ni en la TLB ni en la tabla de pginas, con 1o que este accesoha generado un fallo de pgina. Adems ahora las cuatro pginas de Ia memoria fsica ya estn ocupadas, con lo que una pgina debe ser expulsada para proceder a ubicar la pgina virtual 01"0en memoria fsica. El algoritmo de reemplazo de las pgina fsicas es FIFO, y la primera pgina accedida fue la 111 segn el enunciado. As pues,la pgina virtual 111 es expulsada,quedandolibre la pgina fsica 10 que ocupaba, que es entoncesasignadaa la pgina virtual 010 recin solicitada. La nueva asociacindebe reflejarseen la TLB, de la que echamosla traduccin ms antigua, de acuerdoa su algoritmo de reemplazoFIFO. Esta es la entrada que asocia la pgina virtual 001 con la pgina fsica 00, como ya habamoscomentado.Tlas el reemplazoIa entrada ms antigua de la TLB pasa con la pgina fsica 01. a ser la que asocia la pgina virtual 011Cuando una pgina virtual es expulsada de la memoria fsica todas las lneas de cach que mantienen copias de lneas de memoria principal correspondientes a dicha pgina deben ser invalidadas. El motivo es que estas lneas dejan de ser copias vlidas de porciones de memoria con van a ser sobreescritas principal, puesto que las posicionesde memoria correspondientes otros valores. En nuestro caso eso quiere decir que todas las lneas de la cach asociadas a la pgina fsica l-0 (donde estaba ubicada la pgina virtual 111 que expulsamos)deben ser invalidadas. Como el nmero de pgina fsica siempre est en los bits ms significativos del campo de etiqueta, para identificar las lneas afectadas basta buscar todas aquellas cuya etiqueta comiencepor los bits 10. En la figura 6, que muestra el estado del sistema tras la precedentepodemosver que hay una lnea en esta situacin: la lnea 1 finalizacindel acceso del conjunto 1. As pues)esta lnea es invalidada, lo cual produce a su vez un cambio en el bit referenciada LRU del conjunto, pues si bien el bit indicaba que la lnea menosrecientemente era la lnea 0 del conjunto, no tiene sentido que el bit siga sealando a dicha lnea cuando la lnea t ha sido invalidada y est por tanto vaca y disponible para ser ocupada con cualquier lnea nuela que se deseeintroducir en el conjunto. De esta forma, el bit LRU del conjunto 1pasa a sealar a la lnea recin invalidada. Tlas completar la gestin del fallo de pgina y ubicar nuestra pgina virtual 010 en la pgina fsica 10 dejada libre por la pgina expulsadapodemoscalcular que la direccin fsica asociadaal acceso1516solicitado por el procesadores la l-010L,resultado de concatenar el nmero de pgina fsica (L0) donde hemos ubicado la pgina virtual afectada (010) con el la desplazamiento101. Para accedera la cachdescomponemos direccin fsica siguiendo el procedimiento habitual: Etiqueta Indice

101 T4

A 1

Es fcil comprobar que nos encontramos ante un fallo de cach, puesto que el conjunto 0 no incluye ninguna lnea con la etiqueta 101. As pues, procedemosa reemplazar la lnea indicada por el bit de LRU de este conjunto (lnea 1) con Ia nueva lnea solicitada. El estado final del sistema tras completar este accesose encuentra reflejado en la figura 7.
Tabla de paginas R Pag. Fis.

TLB Virt. 100

Fis. 11

LRU V

Cache DC ZA

0 0 I 2
J

0 Conjunto 0 LRU Conjunto

I
t

001 101 DC 010

00 l0 0l
ll

0r0
011

l0
01

4 5 0 6 0 7 0

101

Figura 7: Tabla de pginas, TLB y estado de la cachen el problema 3.4 tras el quinto acceso(15). /) Acceso2A: En binario usando 6 bits (tamao de la direccin virtual), 2Arc : 1010102.Dado que las direccionesvirtuales tienen 3 bits de nmero de pgina virtual y otros tres de desplazamiento dentro de la misma, este accesoafecta la pgina virtual 101 con desplazamiento010. Este acceso genera un fallo de pgina, puesto que no encontramos ninguna pgina fsica asociadaa la pgina virtual 100 ni en la TLB ni en la tabla de pginas. Como la memoria fsica ya est llena, debe expulsarse la pgina virtual que lleva ms tiempo en la memoria principal (de acuerdo al criterio fsico) para poder ubicar la nueva pgina. El enunciado del problema dice que Ia primera pgina virtual accedidafue la 111, que ya ha sido expulsada, y que a continuacin se accedi a la pgina virtual 001, que an reside en memoria fsica. As pues,la pgina virtual 001 es expulsada,siendoreasignadasu pgina fsica asociada(00) a la nueva pgina virtual a ubicar en memoria principal, la pgina 101. La sociacin de la pgina virtual 101 con la pgina fsica 00 debe reflejarseen la TLB, para lo cual expulsamos su entrada ms antigua, la que asociabala pgina virtual 011 con Ia pgina fsica 01. Tlas este reemplazola entrada mas antigua de la TLB pasa a ser la que asociala pgina virtual 100 con la pgina fsica 11. Como hemos explicado en eI apartado anterior, la expulsin de una pgina virtual de memoria implica la invalidacin de todas las lneas de la cach asociadas a la misma, puesto que dejan de ser copias vlidas de valoresde memoria principal. En este caso, la pgina virtual expulsada (001) estaba ubicada en Ia pgina fsica 00, con lo que todas las lneas de la cach procedentes de esa pgina fsica deben ser invalidadas. Estas pginas son fcilmente identificables, pues son todas aquellas cuya etiqueta comience por 00. Vemos que sIo hay una lnea en la cachde este tipo, la lnea 0 del conjunto 0, y el bit de LRU del conjunto ya apunta a esta lnea, con lo que no es necesario modificarlo. Thas completar la gestin del fallo de pgina y ubicar nuestra pgina virtual 101 en Ia pgina fsica 00 dejada libre por la pgina expulsada podemos calcular que la direccin fsica asociadaal acceso2Aro solicitado por el procesadores Ia 00010, resultado de concatenarel nmero de pgina fsica (00) donde hemos ubicado Ia pgina virtual afectada (101) con el la desplazamiento010. Para accedera la cachdescomponemos direccin fsica siguiendoel procedimiento habitual:

15

Etiqueta

000

Indice 1

A 0

Como de esperar, puesto que la pgina acaba de ser trada del almacenamiento secundario, el conjunto 1 no contiene ninguna lnea con esta etiqueta, con lo que la lnea indicada por su bit LRU (1) debe ser reemplazadapor la lnea solicitada. Realmente no hay tal reemplazo porque la lnea afectada de la cach es una lnea invlida; simplemente la sobreescribimos pues con la lnea de etiqueta 000, reactivando el bit de validez. El bit LRU del conjunto se modifica para indicar que ahora la lnea menos recientemente referenciada del conjunto es la lnea 0. La figura 8 muestra el estado final de la tabla de pginas, la TLB y la cach tras completar este acceso.
Tabla de paginas R Pag.Fis.

TLB
Virt. Pag. Fis. LRU V

Cache DC

ZA

0 0 I 0 2 I
J

100 010 l0 01 1l 00
l0l

ll

0 0 001
Conjunto 0 LRU I

10 00

101 ZA

4 I 5
1 I

0
Conjunto

010

000

6 0 7 0

Figura 8: Tabla de pginas, TLB y estado de la cach en el problema 3.4 tras el sexto acceso(24).

3.5 Un computador tiene un espaciovirtual con paginacinde 16MB y una direccin fsica de 16 bits. La memoria es direccionable a nivel de b)rte, y la pgina fsica 0 est reservada para almacenar la tabla de pginas, que ocupa exactamenteuna pgina, y tiene un solo nivel. Las entradas de la tabla de pginas tienen 32 bits, con la siguienteestructura: bit Residencia bit Acceso Y bits reservados 4 bits contador LFU X bits nm. PF Adems, las ltimas dos pginas fsicas de memoria estn reservadaspara tareas del S.O. y tampoco pueden ubicarse pginas del procesodel usuario en ellas. El algoritmo de reemplazode pginas es el LFU optimizado explicado en clase, usando un bit de accesoque es revisado cada para actualizar el contador LFU. Cuando una pgina se carga por primera vez, cuatro referencias el contador LFU se inicializa a 8 y el bit de accesose pone a cero. Cuando hay varias pginas con el mismo valor mnimo del contador LFU, aquellas con el bit de acceso inactivo tienen la prioridad para ser expulsadas.De haber varias pginas en esa situacin, se expulsa la que tiene el nmero de pgina virtual ms bajo. El sistematiene tambin una TLB de cuatro entradas con algoritmo de reemplazoLRU. o) Cul es el tamao de pgina del sistema? b) Cul es el nmero de pginas virtuales del sistema? c) Suponiendoque inicialmente la memoria y la TLB estn vacas,muestra la evolucin de la TLB, la memoria, y la tabla de pginas ante la siguiente secuenciade accesosa pginas virtuales (es decir, este es el nmero de pgina virtual accedida,sin el desplazamiento):6, de 7,2,6,5, 8, 7, 9,9,4,8, 5, En las entradas la tabla de pginasmuestraslo los campos

t6

significativos y en binario; y mientras no sea necesario expulsar pginas para ubicar las nuevas, asigna las pginas fsicas en orden creciente (primero la 1, Iuego la 2, etc.).

Planteamiento: lVl : 16 MBytes + 16 bits de dir. fsica + Resolucin: a) Las entradas de la tabla de pginas constan de 32 bits (a bytes) y el sistema tiene paginacin con un solo nivel, habiendo pues una nica tabla de pginas, que segn el enunciado ocupa justo una pgina. As pues, sabemosque 24 bits de dir. virtual. lMl:64 KBytes.

Tamao TP : Nm. EntradasxTamao entrada: Nm. Pgs. VirtualesxTamao entrada: 22abytes de espacio virtual x 4bytes/entrada:2pbytes de tabla de pginas 2r bybes/pgina de donde podemos despejar
226

2"

-rp

226:22P de Io cual se deduce que p : 13, es decir, el tamao de la pgina es 2p :2r3: b) Sabemosque Tamao Espacio Virtual: sustituyendo, 22abytes: Nm. Pgs. Virtuales x 213bytes/pgina
^t^

g KBytes

Nm. Pgs. Virtuales x Tamao de la Pgina

Nm. Pgs.Virtuales:':l

211 pginasI

c) Para resolver este apartado del problema necesitamos saber cuntas pginas fsicas caben en la memoria principal, pues de ello dependerel momento en que no cabrn ms pginas virtuales y ser necesario comenzar a hacer reemplazos. Otro motivo por eI que debemos despejaresta incgnita es saber el valor de X, el nmero de bits de nmero de pgina fsica que debemosrepresentar en las entradas de la tabla de pginas y Ia TLB. En el planteamiento del problema dedujimos que la memoria fsica constaba de un total de 64 KBytes, habida cuenta de que segn el enunciado las direcciones fsicas del sistema constan de 16 bits. Por otro lado, en el primer apartado del problema calculamos que el tamao de Ia pgina es de 8 KBytes. As pues, es directo deducir que el sistema consta de un total de 216bytes de espacio fsico : 23pginas fsicas 213 bytes/pgina

T7

:3 bitt. para indexarlas es X:logz(2t) con lo que el nmero de bits X necesario Podemosrecordar en este punto que el enunciado dice que la pgina fsica 0 est ocupada por la tabla de pginas, que ocupa precisamenteuna pgina; y que las dos ltimas pginas fsicas (la 6 y la 7 en nuestro caso, dado que hay 8) estn reservadaspara tareas del S.O. y tampoco pueden ubicarse pginas del proceso del usuario en ellas. As pues, iremos ubicando pginas virtuales a medida que vayan siendo accedidasen las pginas fsicas de Ia 1-a la 5, y cuando estas cinco pginas estn ocupadas y sea necesariotraer nuevas pginas virtuales a memoria principal, ser necesariocomenzar a expulsar pginas de memoria fsica para hacerles sitio. Veamos,pues, la evolucin de la ubicacin de pginas virtuales en pginas fsicas, la tabla de a pginas y la TLB ante la secuenciade accesos pginas virtuales propuesta por el problema. representada paso a paso detalladamente en las figuras 9 y L0, que Dicha evolucin est comentamos a continuacin: 1) Acceso L: Pgina virtual 6. El enunciado dice que mientras no sea necesarioexpulsar pginas para ubicar las nuevas, las pginas fsicas deben asignarse en orden creciente comenzando por la 1. As pues, ubicamos la pgina virtual 6 en la pgina fsica L, rese ando esta ubicacin tanto en nuestro dibujo de Ia memoria fsica divivida en pginas como en la TLB y en la entrada afectada de la tabla de pginas (entrada 6). En la entrada puede apreciarse que hemos activado eI bit ms significativo de la entrada, ya que es eI bit de residencia de la pgina. Por otro lado, hemos inicializado el contador LFU de la pgina a 8 (10002)y el bit de accesoa 0, tal como indica el enunciado.En cuanto a los 3 bits del campo de pgina : fsica, adoptan el valor (001")2 1, indicando la pgina fsica donde hemos ubicado la pgina virtual 6. 2) Acceso2: Pgina virtual 7. Siguiendo las reglas antes comentadas, la pgina virtual 3 debe ubicarse en Ia pgina fsica 2. En la TLB hemos introducido la nueva entrada encima de la primera para indicar que es ms reciente. Siguiendo este sistema, cuando debamos efectuar un reemplazo en la TLB sabremos que la entrada menos recientemente usada, que deber ser la expulsada, ser aquella que se encuentra en la parte inferior de nuestra representacin. 3) Acceso3: Pgina virtual 2. La pgina virtual 2 da lugar a un nuevo fallo de pgina y debe por tanto ser ubicada en memoria fsica, en concreto en la siguiente pgina fsica disponible, que en este caso es la pgina 3. 4) Acceso4: Pgina virtual 6. Por primera vez un acceso a una pgina no resulta en un fallo de pgina. El sistema encuentraen la TLB la entrada que asociala pgina virtual 6 con la pgina fsica 1. Por tanto esta entrada se convierte en Ia ms recientemente usada, con lo que la traemos a de la parte superior de nuestra representacin la TLB, bajando.mientras mantienen su dos entradas ocupadas actualmente en Ia TLB. orden relativo entre s, Ias otras En cuanto a la t abla de pginas, sta se actualiza activando el bit de accesode la pgina 6, lo cual indica que dicha pgina ha vuelto a ser accedida desde la ltima revisin de los contadoresLFU. Por cierto, que al ser ste el cuarto accesode nuestra secuencia,es preciso hacer una revisin de estos contadores, puesto que el enunciado indica que dicha En revisin tiene lugar cada cuatro accesos. esta revisin, de acuerdo al funcionamiento algoritmo LFU optimizado, aquellas entradas de la tabla de pginas cuyo bit de del acceso es 0 ven decrementado el valor de su contador, en tanto que el contador de aquellas que lo tienen activado es incrementado, al tiempo que se les desactiva dicho bit. En la parte inferior de la primera columna de la figura 9 vemos el estado de la tabla de pginas tras aplicar este algoritmo a la tabla que tenamos tras completarse el cuarto

18

o)

6)

7)

8)

acceso. Acceso5: Pgina virtual 5. No se encuentra una traduccin para Ia pgina virtual 5 ni en Ia TLB ni en la tabla de pginas. As pues, nos encontramos ante un nuevo fallo de pgina que se resuelve ubicando dicha pgina en la siguiente pgina fsica libre, la 4. La TLB se actualizan mostrando la nueva asociacin como su entrada ms reciente y la entrada 5 de la tabla de pginas refleja tambin la ubicacin de la pgina y los valores iniciales del bit de accesoy contador LFU de acuerdo al enunciado del problema, activndose ademis el bit de residencia de la misma. Acceso6: Pgina virtual 8. Tampoco hay ninguna traduccin para la pgina virtual 8, puesto que no reside en memoria fsica. Se la ubica en la siguiente pgina fsica disponible, que es la 5, y siguiendo el procedimiento habitual relflejamos esta ubicacin tanto en la TLB como en la tabla de pginas. Como novedad, debemos expulsar por primera vez una entrada de la TLB, pues sus cuatro entradas ya estn ocupadas. Gracias a nuestra representacin, que mantiene ordenadas de arriba a abajo las entradas en funcin de la Itima vez que se las ha accedido, sabemosque la entrada a expulsar es la inferior de acuerdo al algoritmo LRU, que es la que asocia la pgina virtual 7 con la pgina fsica 2. Tbas la expulsin, las otras tres entradas se desplazan hacia abajo, y la nueva asociacin se inserta en la entrada superior, al ser la ms recientemente usada. Acceso 7: Pgina virtual 7. En la TLB no encontramos ninguna traduccin para Ia pgina virtual 7, pero s la hallamos en la tabla de pginas en memoria fsica. As pues, se producen dos cambios en eI sistema. Por un lado, la tabla de pginas se actualiza activando eI bit de acceso de la entrada de esta pgina, ya que ha sido accedida tras la ltima revisin de los contadores LFU. Por otro lado, como Ia TLB debe mantener las traducciones para las pginas ms recientemente usadas, procedemos a expulsar su entrada ms antigua, que asocia la pgina virtual 2 con la pgina fsica 3 para hacer sitio para la traduccin de Ia pgina virtual 7 ala pgina fsica 2. Acceso8: Pgina virtual 9. Este accesoresulta en un fallo de pgina, pues ni en la TLB ni en la tabla de pginas encontramos una traduccin para Ia pgina virtual 9. Por otro lado, como razoramos al inicio de la secuenciade accesos,de acuerdo al enunciado del problema slo disponemos de las pginas fsicas entre la 1 y la 5 (ambas inclusive) para ubicar nuestras pginas de usuario, ya que la pgina fsica 0 esta ocupada por la tabla de pginas y las dos ltimas pginas estn reservadaspor eI Sistema Operativo. As pues, como estas 5 pginas estn ya ocupadas, es necesario expulsar una pgina de memoria principal aplicando el algoritmo LFU optimizado. Segn este algoritmo debemos expulsar aquella pgina virtual con eI menor valor del contador LFU. El enunciado tambin indica que en caso de empate en el valor mnimo del contador, Ias pginas con el bit de acceso inactivo tienen la prioridad para ser expulsadas, y que si hay varias pginas en esta situacin, simplemente se expulsa Ia que tiene el nmero de pgina virtual mrs bajo. La revisin de la tabla de pginas nos muestra que el valor mnimo del contador en este momento es (0111)2:7, valor que compaften las pginas virtuales 2 y 7. Ahora bien, mientras el bit de accesode la pginaT est activo, el de la pgina 2 no lo est, con lo que esta ltima es la seleccionadapara ser reemplazada por la pgina virtual 9 recin accedida. La pgina virtual 2 estaba ubicada en la pgina fsica 3, con lo que ahora colocaremos la pgina virtual 9 en dicha pgina fsica. La nueva traduccin es insertada en la parte superior de la TLB, que debe expulsar su entrada inferior para hacerle sitio. Adems, en la entrada dos de la tabla de pginas desactivamos el bit de residencia,

19

6)Memoria OFiSFN

r---. +l---1 ttl 9mA


) L_____J

IH

TLB JV--PE t6lll

Tabla Paginas

5)Memoria

o l rl o l ro odootl

t--.t
l'lt

?m
2l 1

TLB .PY-PE l sl 4l

Tabla Paginas
2 0 0l l
0l l

lo lrl

ET'I

iM
8)Memoria

FT-

5 6 7

100

7)Memoria

?m
?l--l 4tl
5 L-_J

YrE
l--'l 1 6 lrl

TLB

I 0 00 001 r l I 010 I

Tabla Paginas

t--T-l

I mrx^
2)Memoria

t-f-]
TLB

Tabla Paginas
2

0 I 2
Tabla Paginas

o pl l llol
I

?*: 4L_J s L____J thsn^


6) Memoria

?m

h+ r-l ' l
lll2l

4 5 6 7

5 6 7 8

100 )1100( l pl l )10 -+.l [00i l 0l

i tlioo001
l

trl
7)Memoria

Tabla Paginas opll llor


5 6 7 8 0 00( l0( 0 001001
I )11 01(

0 I 2 4 5 6
J

\JE
16lll l+ l213l l7l2l

TLB

Tabla Paginas

l-, i ,_] I I l0ll00q 0l I I

l-'.l--l

l rl l F o o qool I l r l 0 [0 q0101

?ffi ?l+-l 4L_l_l t hsn^


5l R I

t :_l
2 lllopllll o l r l

0 00( l0r

Tabla Paginas

r-_l

9)Memoria

TablaPaginas

l-*:-L-----'-l

0 I 2 4 5 6 7
J

5 6 1 8 9

0
I

6 7

I r l0 lr00rl0ol I l l l0pl 11 1 0 1 0 l

00lt 001 I l t 010 101 1l

f--rt

Revision)
f

Tabla Paginas

100 )01 )10


ll

6 7 8 9

101
Jl I

Figura 9: Evolucin del sistema del problema 3.5 durante los ocho primeros accesosde su tercer apartado.

20

e inicializamos la entrada 9 de la tabla con los valores indicados por el enunciado del problema y la informacin de que se haya en la pgina fsica (011)2 : 3 recin liberada. Este accesoconstituye el octavo de nuestra serie, con lo que toca hacer una revisin de los contadores LFU, puesto que tienen lugar cada cuatro accesos.La parte inferior de la segunda columna de la figura 9 muestra el estado de la tabla de pginas tras efectuar esta revisin: las entradas cuyo bit de accesoestaba a cero han visto decrementado el valor de su contador, en tanto que aquellas que lo tenan activado, en nuestro caso slo la pgina virtual 7, lo han visto incrementado.

e) Acceso9: Pgina virtual

9. resulta en un acierto de TLB, puesto que su entrada ms reciente El noveno acceso contiene la traduccin para la pgina virtual 9 que se ha solicitado. La TLB no precisa ya pues ser reordenada, y en la tabla de pginas activamos el bit de accesopara esta pgina virtual para indicar que ha sido accedida desdela ltima revisin de los contadores LFU de la tabla de pginas. Este acceso resulta en un fallo de pgina, ya que la pgina virtual 4 no se haya en memoria principal en el momento de intentar accederla, como podemos apreciar en la figura 10. Aplicamos el algoritmo LFU optimizado siguiendo las normas del enunciado del problema y observamosque el valor mnimo del contador LFU en la tabla es (0111)2 : 7, valor que encontramos en las entradas de las pginas virtuales 5, 8 y 9. La pgina virtual 9 tiene activado su bit de acceso,mientras las otras dos no lo tienen, lo que la descarta para ser expulsada. En esta situacin de empate entre las pginas virtuales 5 y 8, el enunciado dice que debe expulsarse aquella con el nmero de pgina virtual mrs bajo, es decir, la 5 en nuestro caso. Procedemos poniendo a 0 el bit de residencia de la pgina virtual 5 e invalidando Ia entrada de la TLB que contiene actualmente su asociacincon la pgina fsica 4. Una vez expulsada, la pgina fsica liberada 4 es asociada a Ia pgina virtual4 que gener el fallo de pgina y actualizamos tanto la TLB como la tabla de pginas con esta informacin.

10) Acceso10: Pgina virtual 4.

11) Acceso 11: Pgina virtual 8.


Este accesoresulta en un acierto de TLB, pues una de sus entradas contiene la traduccin para la pgina virtual 8. En esta situacin slo se necesitan hacer dos cambios. Por un lado, el bit de accesode la entrada correspondiente de la tabla de pginas (entrada 8) se activa para reflejar que la pgina ha sido accedida desde la ltima revisin de los contadores LFU. Por otro lado, la entrada asociada a la pgina virtual 8 pasa a ser la que ha sido accedida ms recientemente, con Io que la desplazamosa la parte superior de nuestra representacin de la TLB, y bajando en consecuencialas entradas de la parte superior. 12) Acceso 12: Pgina virtual 5. El ltimo acceso de la secuencia resulta en un fallo de pgina, pues como podemos apreciar en la fi.gura 10, Ia pgina 5 no reside en memoria principal en eI momento en que es solicitada. Aplicando el algoritmo de reemplazo, vemos que el valor mnimo del contador LFU que encontramos en la tabla es (0111)2 :7, el cual hallamos en las entradas de las pginas virtuales 8 y 9. Ambas pginas tienen activado el bit de acceso,con lo que, al haber empate, de acuerdo al enunciado, expulsamos aquella con el nmero de pgina virtual ms bajo, es decir, la 8. La expulsin de la pgina 8 supone la invalidacin de la entrada asociada a ella en la TLB as como la puesta a cero del bit de residencia de la entrada correspondiente a esta pgina en la tabla de pginas.

2I

9)Memoria

Tabla Paginas

?ffi 3F+--l
4l 5l i n I I

I I I
I

Il

100

6 7 8 9

001 ) lt

)0r
101

00d010

9Mlrd
4)Memoria

1 r pll

Tabla Pasinas

O[\N
,rl

ll

6
z

I
I

r--t--] 4l___a___l

o 100( l0c
0 00( 001 olc
1 1 l0 l I
ll

)
6 1 8 9

9hsrx^

5 L---BJ

011

Una vez expulsada la pgina virtual 8, la pgina fsica que ocupaba (pgina 5) queda disponible para ubicar en ella la pgina virtual recin solicitada. Nuestro grfico de la distribucin de la memoria principal, de la TLB y de la tabla de pginas reflejan la asociacin de la pgina virtual 5 con la pgina fsica 5 liberada por el reemplazo. Por ltimo, dado que ste es nuestro decimoseguntoca hacer una revisin de los contadores do acceso, El LFU, dado que tienen lugar cada cuatro accesos. estado de la tabla de pginas tras efectuar esta revisin se refleja en la parte inferior de la figura 1-0. Todas las entradas de la tabla de pginas excepto la que est asociada a la pgina virtual t han visto decrementado el valor de su contador, puesto que su bit de acceso estaba a cero. Slo hemos incrementado eI contador de la entrada9,ya que era la nica que tena activado el bit de acceso.

8)Memoria

Tabla Paeinas

?ffi
5L_lJ

?l+j 4l__a___l 9hsni

00t t0(

)
o

001 010 il 101

7 8 9

t1 0 1 1

5)Memoria

Tabla Paeinas

0sN
4l l 5l s
3l q

l L____6__l 2L___1_)
I

4
5

00(

r0c

00( 1 0 1

9meld

6 1 8 9

I lollooqool r lolloodolo
lllp ll l1

Revision)

Tabla Paeinas

)l I

100
101

5 6 7 9

I
I l

U 001 0 t1 olc
011

8 0
I 0

Figura 10: Evolucin del sistema del problema 3.5 durante los cuatro ltimos accesosde su tercer apartado.

22

3.6 Un computador tiene un esquema de memoria virtual paginada en dos niveles direccionable a nivel de byte y reservado para un nico proceso. Tanto Ia tabla de pginas del primer nivel como las del segundo tienen la misma estructura: caben exactamente en una pgina y constan de 128 entradas de 16 bits, siendo eI primer bit (et mas siguificativo) el de residencia y los 8 ltimos (los menos significativos) eI nmero de pgina fsica. Por otro lado, Ia tabla pginas del primer nivel se encuentra siempre residente en la ltima pgina fsica, El computador tiene una cach indexada por direcciones fsicas con una zona de almacenamiento de 4KB con lneas de 4 bytes en Ia que cada entrada del directorio cach slo consta de un bit de validez ms la etiqueta de la lnea correspondiente. El tamao total del directorio cach es 1024 by'tes. Sabiendo que el contenido de un byte de la memoria principal se obtiene sumando el nmero de pgina fsica en que reside con su desplazamiento dentro de dicha pgina y obteniendo el mdulo Y, 256, es decir, el bybe de la pgina fsica X, desplazamiento contiene el valor (X +Y) md 256; indica: a) Tamao del espaciovirtual y del espaciofsico. b) Direccin fsica correspondientea la direccin virtual 4154. c) Indica el tamao de los campos en que se divide la direccin fsica desde el punto de vista de esta cachy cuntas lneas tiene cada conjunto de la misma. d) Si esta cachtuviera una tasa de fallos del 10 %, un tiempo de acierto de 2 ns. y su tiempo medio de accesofuera de 5 ns., Cul sera su penalizacin de fallo?

ffi
Planteamiento: entradas de 16 bits (2 Como cada tabla de pginas cabe en una pgina del sistema y tienen 1"28 bytes) cada una =+ Tamao de pgina : 128 x 2 :256 (28) bytes. r Descomposicin la dir. virtual de o Como el sistema tiene paginacin en dos niveles y las tablas de cada nivel tienen 128 entradas, el campo para indexar la tabla de cada nivel requiere log2(128): 7 bits. o Al ser las pginas de 256 bytes, el campo de desplazamientodentro de cada pgina log2(256):8 bits. necesitar Nm PV

TP1
7 bits r Descomposicin la dir. fsica de

TP2 A 7 bits 8 bits

o El enunciadodice que las tablas usan 8 bits para representarun nmero de pgina fsica. en r Al ser la pgina de 256 by'tes,el desplazamiento la pgina requierelo92(256): 8 bits. Nm PF 8 bits Resolucin: sica. a) Hemos calculadoque el sistema tiene 22 bits de direccinrrirtual y 16 bits d As pues, este computad.ortiene un espaciovirtual de I lVl : 222bytes : 4 MBytes I v un espacio fsico de lFl:216: 64 KBytes

A
8 bits

23

b) Descompongamos direccinvirtual4t5A en los camposque hemoscalculadopreviamente: la TP1 TP2 A : : )2 (0000000)2 016 (1000001)2 41ro (0 1 0 1 1 0 1 0 A rc As pues se lee la entrada 0 de la TPL, que segn el enunciado se halla en la ltima pgina fsica del sistema. Ya que eI nmero de pgina fsica consta de 8 bits, el sistema tiene 256 pginas fsicas, que estarn numeradas de la 0 a la 255. En consecuenciala ltima pgina fsica es la 255 (.F.f'). Para leer Ia entrada X dentro de una tabla, debemos calcular el desplazamiento correspondiente multiplicando X por 2, ya que cada entrada consta de 2 bytes. As pues, siendo X :0 en nuestro caso,calculamosque la entrada que buscamosest en Ia direccin fsica F,F'l00. El enunciado dice que el byte de la pgina fsica X, desplazamiento Y, contieneel valor (X + y) md 256. En consecuencia contenidosde esta entrada de la los pginas del primer nivel sern tabla de Direccin Contenido

FFOO FFOl FF 00

Lo primero que habra que comprobar sera, como siempre, el bit de residencia, que es el mas significativo de la entrada. Vemos que est activo, con lo que podemos proceder a leer el nmero de pgina fsica donde se encuentra la tabla de pginas del segundo nivel que tenemos que leer. Como este valor radica en los 8 bits menos significativos de la entrada de la tabla de pginas, vemos que es 0 en nuestro caso. El siguiente paso consiste en indexar la tabla de pginas del segundo nivel que se halla en la pgina fsica 0 del computador usando el ndice correspondiente que hemos extraido de la direccin virtual. Bste ndice era (100000I)z : 4116.De nuevo, al tener cada entrada dos bytes, debemosmultiplicar este ndice por dos para indexar la tabla. As llegamos a la conclusin de que la entrada que tenemos que leer estar en la direccin de memoria 00182 y sus contenidos, segn las normas del enunciado sern: Direccin 0082 0083 Contenido 82 83 De nuevo, en primer lugar debemos comprobar que el bit de residencia est activado, lo cual vemos que se verifica. As pues, los ocho bits menos significativos de la entrada (8310) contienen el nmero de pgina fsica que estamosbuscando. Para completar el proceso de traduccin slo resta concatenarlea este nmero de pgina fsica el desplazamientodentro de la misma, que segnhabamoscalculadoal principio de este apartado es 5416. Por tanto, la direccin fsica correspondiente lu lT35-l. "r c) La cach tiene una zona de almacenamientode 4KBytes, y cada lnea consta de 4 bytes. As pues, trivialmente, la cachtiene un total de Nm. lneas: 4096 bytes de almacenamiento :1024 4 bytes/lnea

Por otro lado, el directorio de una cachtiene una entrada por cada lnea que sta almacena. Ya que el directorio consta de 1024 bytes, y hay 1024 lneas,cada entrada constar exactamente de un byte. Segn el enunciado esta entrada slo consta de un bit de validez y el resto corresponde la etiqueta de la lnea. As pues,las lneastienen una etiqueta de 8- L : 7 bits. a Adems, como las lneas son de 4 bytes, se deriva que el campo de desplazamiento dentro de una lnea requerir de un total de logr(4) : 2 bits. Finalmente, dando que la cach se indexa por direccionesfsicas,y como hemos visto anteriormente, stas constan de L6 bits, el campo de ndice deber consta de 16 - 7 - 2 :7 bits. As pues, desdeel punto de vista de Ia cach la direccin fsica se divide de la siguiente forma:

24

Etiquet Indice 7 bits 7 bits

A 2 bits

El campo de ndice se emplea para buscar el conjunto en el que puede estar guardada la Inea que contiene la direccin solicitada. Dado que este campo tiene una longitud de 7 bits, nuestra cach constar de 27 :128 conjuntos. Hemos calculado que la cach tiene un total de L0241neas.As pues, la respuesta a la pregunta sobre el nmero de lneas por conjunto ser

Nm. por lneas conjunt": 1ffim


d) Sabemosque Tiempo medio de accesoa memoria: donde podemos sustituir 5ns:2ns*10/100xPF con lo que despejamos

:lg t*l

Tiempo de acierto*Tasa de FallosxPenalizacin de fallos

P F : q#=:

25