universidad pontificia de salamanca (madrid) dpto. de electrónica y comunicaciones. © alfonso...

33
1 Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Paginación Introducción Modo no extendido Modo extendido Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

Upload: julio-salome

Post on 31-Dec-2014

9 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

1Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Paginación

•Introducción•Modo no extendido•Modo extendido

Universidad Pontificia de Salamanca (Madrid)Dpto. de Electrónica y Comunicaciones.

© Alfonso Alejandre, Luis Azorín y Francisco Machío

Page 2: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

2Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Introducción

Bits más significados en la paginaciónBits más significados en la paginación

Page 3: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

3Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. 1º Conocer si estamos en modo extendido o no.

Partimos de PAE=0 (modo no extendido).

2º Disponemos de una dirección lineal de 32 bits (la que vamos a traducir a dirección física).

Conviene expresarla en binario:

También se deben conocerCR3 y acceder a las tablas de la paginación.

3º El punto de partida es CR3

Traducción de dirección lineal a física. 1º Conocer si estamos en modo extendido o no.

Partimos de PAE=0 (modo no extendido).

2º Disponemos de una dirección lineal de 32 bits (la que vamos a traducir a dirección física).

Conviene expresarla en binario:

También se deben conocerCR3 y acceder a las tablas de la paginación.

3º El punto de partida es CR3

Ej: Dir. lineal 12345678H 0001 0010 0011 0100 0101 0110 0111 1000

Page 4: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

4Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. 4º CR3 apunta a la dirección inicial de la PD.

Para obtener la dirección de comienzo de la PD se toman los bits 12 al 31 (Page Directory Base Address) y se rellenan los que faltan (del 0 al 11) con ceros.

Como la dirección inicial de la PD siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Traducción de dirección lineal a física. 4º CR3 apunta a la dirección inicial de la PD.

Para obtener la dirección de comienzo de la PD se toman los bits 12 al 31 (Page Directory Base Address) y se rellenan los que faltan (del 0 al 11) con ceros.

Como la dirección inicial de la PD siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Si CR3 = 54321010H

Dir. base de la P.D. =

Bits 12 al 31

54321

Rellenamos de ceroslos bits 0 al 11

000H

Page 5: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

5Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. La PD tiene un tamaño de 4 KB en la que se pueden almacenar hasta 1024 entradas de 4 bytes cada una.

5º Localizar la entrada correspondiente en la PD.

Para ello se usan los 10 bits de mayor peso de la dirección lineal que tienen un índice a la PD. Todavía no sabemos si la página apuntada es de 4 KB. o 4 MB.

Traducción de dirección lineal a física. La PD tiene un tamaño de 4 KB en la que se pueden almacenar hasta 1024 entradas de 4 bytes cada una.

5º Localizar la entrada correspondiente en la PD.

Para ello se usan los 10 bits de mayor peso de la dirección lineal que tienen un índice a la PD. Todavía no sabemos si la página apuntada es de 4 KB. o 4 MB.

Offset PD = Índice PD * 4 = 120H

Cada entrada de la PD ocupa 4 bytes

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Bits 22 al 31

Índice PD = 48H

Dir entrada PD = Dir Base + Offset = 54321000H + 120H = 54321120H

Page 6: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

6Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. 6º Leer la entrada correspondiente en la PD. Determinar el tamaño de la página.

Traducción de dirección lineal a física. 6º Leer la entrada correspondiente en la PD. Determinar el tamaño de la página.

Bit 7 PS=0Página de 4 KB

También hubiera sido de 4 KB si PSE = 0

Supongamos que el contenido de la entrada es = 87654321H

PDDir base 54321000H

Dir entrada 54321120H

Offset 120H

Entrada 48H

0010

Page 7: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

7Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. 7º La entrada de la PD apunta a la dirección inicial de la PT.

Para obtener la dirección de comienzo de la PT se toman los bits 12 al 31 (Page Table Base Address) y se rellenan los que faltan (del 0 al 11) con ceros.

Como la dirección inicial de la PT siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Traducción de dirección lineal a física. 7º La entrada de la PD apunta a la dirección inicial de la PT.

Para obtener la dirección de comienzo de la PT se toman los bits 12 al 31 (Page Table Base Address) y se rellenan los que faltan (del 0 al 11) con ceros.

Como la dirección inicial de la PT siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Entrada PD = 87654321H

Dir. base de la P.T. =

Bits 12 al 31

87654

Rellenamos de ceroslos bits 0 al 11

000H

Page 8: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

8Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. La PT tiene un tamaño de 4 KB en la que se pueden almacenar hasta 1024 entradas de 4 bytes cada una.

8º Localizar la entrada correspondiente en la PT.

Para ello se usan los siguientes 10 bits de la dirección lineal que tienen un índice a la PT.

Traducción de dirección lineal a física. La PT tiene un tamaño de 4 KB en la que se pueden almacenar hasta 1024 entradas de 4 bytes cada una.

8º Localizar la entrada correspondiente en la PT.

Para ello se usan los siguientes 10 bits de la dirección lineal que tienen un índice a la PT.

Offset PT = Índice PT * 4 = D14H

Cada entrada de la PT ocupa 4 bytes

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Índice PT = 345H

Dir entrada PT = Dir Base + Offset = 87654000H + D14H = 87654D14H

Bits 12 al 21

Page 9: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

9Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. 9º Leer la entrada correspondiente en la PT. Traducción de dirección lineal a física. 9º Leer la entrada correspondiente en la PT.

Supongamos que el contenido de la entrada es = 98765221H

PTDir base 87654000H

Dir entrada 87654D14H

Offset D14H

Entrada 345H

Page 10: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

10Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. 10º La entrada de la PT apunta a la dirección inicial de la Página a la que se quiere acceder.

Para obtener la dirección de comienzo de la Página se toman los bits 12 al 31 (Page Base Address) y se rellenan los que faltan (del 0 al 11) con ceros.

Como la dirección inicial de la página siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Traducción de dirección lineal a física. 10º La entrada de la PT apunta a la dirección inicial de la Página a la que se quiere acceder.

Para obtener la dirección de comienzo de la Página se toman los bits 12 al 31 (Page Base Address) y se rellenan los que faltan (del 0 al 11) con ceros.

Como la dirección inicial de la página siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Entrada PT = 98765221H

Dir. base de la página =

Bits 12 al 31

98765

Rellenamos de ceroslos bits 0 al 11

000H

Page 11: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

11Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. La Página tiene un tamaño de 4 KB.

11º Calcular la dirección física.

Para ello se usan los últimos 12 bits de la dirección lineal que tienen el pffset del acceso dentro de la página

Traducción de dirección lineal a física. La Página tiene un tamaño de 4 KB.

11º Calcular la dirección física.

Para ello se usan los últimos 12 bits de la dirección lineal que tienen el pffset del acceso dentro de la página

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Offset = 678H

Dir física = Dir Página + Offset = 98765000H + 678H = 98765678H

Bits 0 al 11

Page 12: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

12Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Resumen modo no extendido página de 4 KB:Resumen modo no extendido página de 4 KB:

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

PD

CR3

54321010H

87654321H

54321000H

48*4=120H

54321120H

PDBA20 bits

12 Bits PT

98765221H

87654000H

345*4=D14H

87654D14H

Page

Dir. Acceso

98765000H

98765678H

Table OffsetDir

48H 345H 678H

12 BitsPS=0 óPSE=0

PTBA 20 bits

12 BitsPageBA 20 bits

Modo no extendido

Page 13: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

13Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. Pág 4 MB.

6º Leer la entrada correspondiente en la PD. Determinar el tamaño de la página.

Traducción de dirección lineal a física. Pág 4 MB.

6º Leer la entrada correspondiente en la PD. Determinar el tamaño de la página.

Bit 7 PS=1Página de 4 MB

Se requiere que PSE = 1

Supongamos que el contenido de la entrada es = 874002A1H

PDDir base 54321000H

Dir entrada 54321120H

Offset 120H

Entrada 48H

1010

Page 14: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

14Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. 7º La entrada de la PD apunta a la dirección inicial de la PT.

Para obtener la dirección de comienzo de la página se toman los bits 22 al 31 (Page Base Address) y se rellenan los que faltan (del 0 al 21) con ceros.

Como la dirección inicial de la página siempre acaba en 22 ceros en binario, estará en una dirección de memoria múltiplo de 4 MB.

Traducción de dirección lineal a física. 7º La entrada de la PD apunta a la dirección inicial de la PT.

Para obtener la dirección de comienzo de la página se toman los bits 22 al 31 (Page Base Address) y se rellenan los que faltan (del 0 al 21) con ceros.

Como la dirección inicial de la página siempre acaba en 22 ceros en binario, estará en una dirección de memoria múltiplo de 4 MB.

Entrada PD = 874002A1H

Dir. base de la página =

Rellenamos de ceroslos bits 0 al 21

00000H

Bits 12 al 31

874

Page 15: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

15Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo no extendido

Traducción de dirección lineal a física. La Página tiene un tamaño de 4 MB.

8º Calcular la dirección física.

Para ello se usan los últimos 22 bits de la dirección lineal que tienen el offset del acceso dentro de la página

Traducción de dirección lineal a física. La Página tiene un tamaño de 4 MB.

8º Calcular la dirección física.

Para ello se usan los últimos 22 bits de la dirección lineal que tienen el offset del acceso dentro de la página

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Offset = 345678H

Dir física = Dir Página + Offset = 87400000H + 345678H = 87745678H

Bits 0 al 21

Page 16: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

16Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Resumen modo no extendido página de 4 MB:Resumen modo no extendido página de 4 MB:

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

PD

CR3

54321010H

874002A1H

54321000H

48*4=120H

54321120H

PDBA20 bits

12 Bits 87400000H

87745678H

Page

Dir. Acceso

OffsetDir

48H 345678H

12 BitsPS=1 yPSE=1

PBA 20 bits

Modo no extendido

Page 17: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

17Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 1º Conocer si estamos en modo extendido o no.

Partimos de PAE=1 (modo extendido).

2º Disponemos de la misma dirección lineal

También se deben conocerCR3 y acceder a las tablas de la paginación. Las direccionesfísicas son de 36 bits.Las entradas de las tablasson de 64 bits

3º El punto de partida es CR3

Traducción de dirección lineal a física. 1º Conocer si estamos en modo extendido o no.

Partimos de PAE=1 (modo extendido).

2º Disponemos de la misma dirección lineal

También se deben conocerCR3 y acceder a las tablas de la paginación. Las direccionesfísicas son de 36 bits.Las entradas de las tablasson de 64 bits

3º El punto de partida es CR3

Dir. lineal 12345678H

Page 18: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

18Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 4º CR3 apunta a la dirección inicial de la PDPT.

Para obtener la dirección de comienzo de la PDPT se toman los bits 9 al 31 (Page Directory Pointer Table Base Address) y se rellenan los que faltan (del 0 al 8) con ceros.

Como la dirección inicial de la PDPT siempre acaba en 9 ceros en binario estará en una dirección de memoria múltiplo de 512.

Traducción de dirección lineal a física. 4º CR3 apunta a la dirección inicial de la PDPT.

Para obtener la dirección de comienzo de la PDPT se toman los bits 9 al 31 (Page Directory Pointer Table Base Address) y se rellenan los que faltan (del 0 al 8) con ceros.

Como la dirección inicial de la PDPT siempre acaba en 9 ceros en binario estará en una dirección de memoria múltiplo de 512.

Si CR3 = 65432150H

Dir. base de la PDPT =

Rellenamos de ceroslos bits 0 al 8

00H

Bits 9 al 35

6543214

Page 19: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

19Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. La PDPT tiene un tamaño de 32 Bytes en la que se pueden almacenar hasta 4 entradas de 8 bytes cada una.

5º Localizar la entrada correspondiente en la PDPT.

Para ello se usan los 2 bits de mayor peso de la dirección lineal que tienen un índice a la PDPT. Todavía no sabemos si la página apuntada es de 4 KB. o 2 MB.

Traducción de dirección lineal a física. La PDPT tiene un tamaño de 32 Bytes en la que se pueden almacenar hasta 4 entradas de 8 bytes cada una.

5º Localizar la entrada correspondiente en la PDPT.

Para ello se usan los 2 bits de mayor peso de la dirección lineal que tienen un índice a la PDPT. Todavía no sabemos si la página apuntada es de 4 KB. o 2 MB.

Offset PDPT = Índice PDPT * 8 = 0

Cada entrada de la PDPT ocupa 8 bytes

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Índice PDPT = 0

Dir entrada PDPT = Dir Base + Offset = 654321400H + 0H = 654321400H

Bits 30 y 31

Page 20: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

20Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 6º Leer la entrada correspondiente en la PDPT. Traducción de dirección lineal a física. 6º Leer la entrada correspondiente en la PDPT.

Supongamos que el contenido de la entrada es = 0000000987654321H

PDPTDir base 654321400H

Entrada 0

Page 21: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

21Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 7º La entrada de la PDPT apunta a la dirección inicial de la PD.

Para obtener la dirección de comienzo de la PD se toman los bits 12 al 31 (Page Table Base Address) y se rellenan los que faltan (del 0 al 11) con ceros.

Como la dirección inicial de la PD siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Traducción de dirección lineal a física. 7º La entrada de la PDPT apunta a la dirección inicial de la PD.

Para obtener la dirección de comienzo de la PD se toman los bits 12 al 31 (Page Table Base Address) y se rellenan los que faltan (del 0 al 11) con ceros.

Como la dirección inicial de la PD siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Entrada PDPT = 0000000987654221H

Dir. base de la P.D. =

Rellenamos de ceroslos bits 0 al 11

000H

Bits 12 al 35

987654

Page 22: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

22Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. La PD tiene un tamaño de 4 KB en la que se pueden almacenar hasta 512 entradas de 8 bytes cada una.

8º Localizar la entrada correspondiente en la PD.

Para ello se usan los bits 21 a 29 de la dirección lineal que tienen un índice a la PD. Todavía no sabemos si la página apuntada es de 4 KB. o 4 MB.

Traducción de dirección lineal a física. La PD tiene un tamaño de 4 KB en la que se pueden almacenar hasta 512 entradas de 8 bytes cada una.

8º Localizar la entrada correspondiente en la PD.

Para ello se usan los bits 21 a 29 de la dirección lineal que tienen un índice a la PD. Todavía no sabemos si la página apuntada es de 4 KB. o 4 MB.

Offset PD = Índice PD * 8 = 488H

Cada entrada de la PD ocupa 8 bytes

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Índice PD = 91H

Dir entrada PD = Dir Base+Offset = 987654000H + 488H = 987654488H

Bits 21 al 29

Page 23: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

23Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 9º Leer la entrada correspondiente en la PD. Determinar el tamaño de la página.

Traducción de dirección lineal a física. 9º Leer la entrada correspondiente en la PD. Determinar el tamaño de la página.

Bit 7 PS=0Página de 4 KB

Supongamos que el contenido de la entrada es = 0000000654321221H

PDDir base 987654000H

Dir entrada 987654488H

Offset 488H

Entrada 91H

0010

Page 24: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

24Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 10º La entrada de la PD apunta a la dirección inicial de la PT.

Para obtener la dirección de comienzo de la PT se toman los bits 12 al 35 (Page Table Base Address) y se rellenan los que faltan con ceros.

Como la dirección inicial de la PT siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Traducción de dirección lineal a física. 10º La entrada de la PD apunta a la dirección inicial de la PT.

Para obtener la dirección de comienzo de la PT se toman los bits 12 al 35 (Page Table Base Address) y se rellenan los que faltan con ceros.

Como la dirección inicial de la PT siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Entrada PD = 0000000654321221H

Dir. base de la P.T. =

Rellenamos de ceroslos bits 0 al 11

000H

Bits 12 al 35

654321

Page 25: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

25Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. La PT tiene un tamaño de 4 KB en la que se pueden almacenar hasta 512 entradas de 8 bytes cada una.

11º Localizar la entrada correspondiente en la PT.

Para ello se usan los bits 12 a 20 de la dirección lineal que tienen un índice a la PT.

Traducción de dirección lineal a física. La PT tiene un tamaño de 4 KB en la que se pueden almacenar hasta 512 entradas de 8 bytes cada una.

11º Localizar la entrada correspondiente en la PT.

Para ello se usan los bits 12 a 20 de la dirección lineal que tienen un índice a la PT.

Offset PT = Índice PT * 8 = A28H

Cada entrada de la PT ocupa 8 bytes

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Índice PT = 145H

Bits 12 al 20

Dir entrada PT = Dir Base+Offset = 654321000H + A28H = 654321A28H

Page 26: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

26Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 12º Leer la entrada correspondiente en la PT. Traducción de dirección lineal a física. 12º Leer la entrada correspondiente en la PT.

PTDir base 654321000H

Dir entrada 654321A28H

Offset A28H

Entrada 145H

Supongamos que el contenido de la entrada es = 0000000456789221H

Page 27: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

27Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 13º La entrada de la PT apunta a la Página a la que se quiere acceder.

Para obtener la dirección de comienzo de la Página se toman los bits 12 al 35 (Page Base Address) y se rellenan los que faltan con ceros.

Como la dirección inicial de la página siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Traducción de dirección lineal a física. 13º La entrada de la PT apunta a la Página a la que se quiere acceder.

Para obtener la dirección de comienzo de la Página se toman los bits 12 al 35 (Page Base Address) y se rellenan los que faltan con ceros.

Como la dirección inicial de la página siempre acaba en 000H estará en una dirección de memoria múltiplo de 4 KB.

Entrada PT = 0000000456789221H

Dir. base de la Page =

Rellenamos de ceroslos bits 0 al 11

000H

Bits 12 al 35

456789

Page 28: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

28Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. La Página tiene un tamaño de 4 KB.

14º Calcular la dirección física.

Para ello se usan los últimos 12 bits de la dirección lineal que tienen el offset del acceso dentro de la página

Traducción de dirección lineal a física. La Página tiene un tamaño de 4 KB.

14º Calcular la dirección física.

Para ello se usan los últimos 12 bits de la dirección lineal que tienen el offset del acceso dentro de la página

Dir física = Dir Página + Offset = 456789000H + 678H = 456789678H

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Offset = 678H

Bits 0 al 12

Page 29: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

29Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Resumen modo extendido página de 4 KB:Resumen modo extendido página de 4 KB:

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

CR3

65432150H

654321400H

DPtrBA27 bits

5 bitsPT

456789221H

145*8=A28H

654321A28H

Page

Dir. Acceso

456789000H

456789678HPD

654321221H

91*8=488H

987654488H

12 bitsPS=0

PTBA 24 bits

12 bitsPageBA 24 bits

Modo extendido

DPtr Table OffsetDir

91H 145H 678H0

PDPT

987654321H0

12 bitsPDBA 24 bits

654321000H

987654000H

Page 30: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

30Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 9º Leer la entrada correspondiente en la PD. Determinar el tamaño de la página.

Traducción de dirección lineal a física. 9º Leer la entrada correspondiente en la PD. Determinar el tamaño de la página.

Bit 7 PS=1 Página de 2 MB

Supongamos que el contenido de la entrada es = 00000006542002A1H

PDDir base 987654000H

Dir entrada 987654488H

Offset 488H

Entrada 91H

1010

Page 31: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

31Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. 10º La entrada de la PD apunta a la dirección inicial de la PT.

Para obtener la dirección de comienzo la página se toman los bits 21 al 35 (Page Base Address) y se rellenan los que faltan con ceros.

Como la dirección inicial de la página siempre acaba en 21 ceros en binario, estará en una dirección de memoria múltiplo de 2 MB.

Traducción de dirección lineal a física. 10º La entrada de la PD apunta a la dirección inicial de la PT.

Para obtener la dirección de comienzo la página se toman los bits 21 al 35 (Page Base Address) y se rellenan los que faltan con ceros.

Como la dirección inicial de la página siempre acaba en 21 ceros en binario, estará en una dirección de memoria múltiplo de 2 MB.

Entrada PD = 00000006542002A1H

Dir. base de la página =

Rellenamos de ceroslos bits 0 al 20

00000H

Bits 12 al 35

6542

Page 32: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

32Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Modo extendido

Traducción de dirección lineal a física. La Página tiene un tamaño de 2 MB.

14º Calcular la dirección física.

Para ello se usan los últimos 12 bits de la dirección lineal que tienen el offset del acceso dentro de la página

Traducción de dirección lineal a física. La Página tiene un tamaño de 2 MB.

14º Calcular la dirección física.

Para ello se usan los últimos 12 bits de la dirección lineal que tienen el offset del acceso dentro de la página

Dir física = Dir Página + Offset = 65420000H + 145678H = 654345678H

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

Offset = 145678H

Bits 0 al 20

Page 33: Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 1 Paginación Introducción

33Universidad Pontificia de Salamanca (Madrid)

Dpto. de Electrónica y Comunicaciones.© Alfonso Alejandre, Luis Azorín y Francisco Machío

Resumen modo extendido página de 2 MB:Resumen modo extendido página de 2 MB:

0001 0010 0011 0100 0101 0110 0111 1000Dir. lineal =

CR3

65432150H

654321400H

DPtrBA23 bits

9 bitsPD

6542002A1H

91*8=488H

987654488H

Page

Dir. Acceso

654200000H

654345678H

12 bitsPageBA 24 bits

Modo extendido

DPtr OffsetDir

91H 145678H0

PDPT

987654321H0

12 bitsPDBA 24 bits

987654000H