Duda Examen febrero 2015 Eje 2 de Memoria parte 3. TLB con páginas multinivel.

Duda Examen febrero 2015 Eje 2 de Memoria parte 3. TLB con páginas multinivel.

de Luis Alberto Olivera Alonso -
Número de respuestas: 1

No estoy entendiendo bien la solución del examen y me gustaría que me expliquen un poco el funcionamiento de la TLB con páginas multinivel.

En la letra se accede a un array que ocupa 10000 byte contiguos y por ende 3 páginas contiguas en memoria.

Sean las direcciones que se acceden de ejemplo las siguientes :    p1 0 0 …. p1 0 4096-1

                                                                                                          P1 1 0 …. p1 1 4096-1

                                                                                                          P1 2 0 …. P1 2 1808-1

Yo pensaba que al resolver las direcciones se tomaba p1 como índice de la tabla de páginas del primer nivel (un acceso a memoria) y se pasaba a obtener el frame en dónde esta la tabla de páginas de segundo nivel y luego se tomaba el índice de la tabla de segundo nivel y se obtenía el frame(otro acceso a memoria) y se actualizaba la TLB agregando un tag, en el caso de la primera dirección del array la P1 0 0 un tag con P1 0 f1, dónde f1 es el frame que esta en el índice 0 de la tabla de segundo nivel.


Luego se pasaría a la siguiente dirección la p1 0 1 , la que produce un TLB hit y se realiza solo un acceso a memoria.Lo mismo para todo el rango de direcciones de p1 0 2 al p1 0 4096-1.Solo generarían un acceso a memoria debido a cache hits y la TLB quedaría así:


Generándose un total de 2 + 4096 accesos. Si repetimos esto para las dos otras páginas se darían en total 2 + 4096 + 2 + 4096 + 2 + 1808 accesos y la TLB quedaría:

Pero al mirar la solución esto no es correcto y veo que ponen lo siguiente:

Dado que las páginas son de 4096 bytes y queremos acceder a 10000 bytes contiguos, los mismos serán almacenados en 3 páginas contiguas. De esa forma, se tiene un acceso para acceder a la página que contiene la tabla de primer nivel y leer la entrada que corresponde, esta entrada queda almacenado en la TLB.

No entiendo bien esta parte, que se almacena en la TLB un entrada de qué tipo, tendría que asociar p1 al frame fx, pero como quedaría la entrada de la TLB?

La solución es 1 + 1 + 4096 + 1 + 4096 + 1 + 1808 = 10004





En respuesta a Luis Alberto Olivera Alonso

Re: Duda Examen febrero 2015 Eje 2 de Memoria parte 3. TLB con páginas multinivel.

de Federico Rivero -
Hola!

En pocas palabras, tu explicación es correcta. La TLB guarda duplas #página -> #marco. El número de página son todos los bits de la dirección virtual que no forman parte del offset y el #marco son los bits más significativos de la dirección física. La solución asume que la TLB también guarda una traducción de los bits de p1 hacia la dirección física de la tabla de páginas de segundo nivel. En principio no vemos algo así en el curso ni tampoco se menciona en el libro, pero lo importante a razonar es que esa traducción, de existir, no puede ser tratada como una entrada normal de la TLB, porque ninguna dirección virtual emitida por un proceso puede resolver en una dirección física que apunte a la tabla de páginas.

Sería un ejercicio interesante pensar cómo se puede modificar la TLB o qué estructura adicional se podría agregar para permitir la traducción adicional hacia las direcciones físicas de las tablas de páginas de segundo nivel y subsiguientes.

Saludos,
Federico