La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Paginación Introducción Modo no extendido Modo extendido

Presentaciones similares


Presentación del tema: "Paginación Introducción Modo no extendido Modo extendido"— Transcripción de la presentación:

1 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

2 Bits más significados en la paginación
Introducción Bits más significados en la paginación

3 Traducción de dirección lineal a física.
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 conocer CR3 y acceder a las tablas de la paginación. 3º El punto de partida es CR3 Ej: Dir. lineal H

4 Traducción de dirección lineal a física.
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. Si CR3 = 54321 010H Bits 12 al 31 54321 Rellenamos de ceros los bits 0 al 11 000H Dir. base de la P.D. =

5 Traducción de dirección lineal a física.
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. Bits 22 al 31 Dir. lineal = Cada entrada de la PD ocupa 4 bytes Índice PD = 48H Offset PD = Índice PD * 4 = 120H Dir entrada PD = Dir Base + Offset = H + 120H = H

6 Traducción de dirección lineal a física.
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. PD Dir base H Offset 120H Dir entrada H Entrada 48H Supongamos que el contenido de la entrada es = H 0010 Bit 7 PS=0Página de 4 KB También hubiera sido de 4 KB si PSE = 0

7 Traducción de dirección lineal a física.
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. Entrada PD = 87654 321H Bits 12 al 31 87654 Rellenamos de ceros los bits 0 al 11 000H Dir. base de la P.T. =

8 Traducción de dirección lineal a física.
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. Bits 12 al 21 Dir. lineal = Cada entrada de la PT ocupa 4 bytes Índice PT = 345H Offset PT = Índice PT * 4 = D14H Dir entrada PT = Dir Base + Offset = H + D14H = 87654D14H

9 Traducción de dirección lineal a física.
Modo no extendido Traducción de dirección lineal a física. 9º Leer la entrada correspondiente en la PT. PT Dir base H Offset D14H Dir entrada 87654D14H Entrada 345H Supongamos que el contenido de la entrada es = H

10 Traducción de dirección lineal a física.
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. Entrada PT = 98765 221H Bits 12 al 31 98765 Rellenamos de ceros los bits 0 al 11 000H Dir. base de la página =

11 Traducción de dirección lineal a física.
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 Bits 0 al 11 Dir. lineal = Offset = 678H Dir física = Dir Página + Offset = H + 678H = H

12 Modo no extendido Resumen modo no extendido página de 4 KB:
CR3 H H Page PDBA 20 bits 12 Bits H H PT H PD 345*4=D14H 87654D14H Dir. Acceso 48*4=120H H 12 Bits PageBA 20 bits H H 12 Bits PS=0 ó PSE=0 PTBA 20 bits Table Offset Dir 48H 345H 678H Dir. lineal =

13 Traducción de dirección lineal a física. Pág 4 MB.
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. PD Dir base H Offset 120H Dir entrada H Entrada 48H Supongamos que el contenido de la entrada es = 874002A1H 1010 Bit 7 PS=1Página de 4 MB Se requiere que PSE = 1

14 Traducción de dirección lineal a física.
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. Entrada PD = 87400 2A1H Bits 12 al 31 874 Rellenamos de ceros los bits 0 al 21 00000H Dir. base de la página =

15 Traducción de dirección lineal a física.
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 Bits 0 al 21 Dir. lineal = Offset = 345678H Dir física = Dir Página + Offset = H H = H

16 Modo no extendido Resumen modo no extendido página de 4 MB:
CR3 H PDBA 20 bits 12 Bits H Page H PD H 48*4=120H H Dir. Acceso 874002A1H 12 Bits PS=1 y PSE=1 PBA 20 bits Offset Dir 48H 345678H Dir. lineal =

17 Traducción de dirección lineal a física.
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 conocer CR3 y acceder a las tablas de la paginación. Las direcciones físicas son de 36 bits. Las entradas de las tablas son de 64 bits 3º El punto de partida es CR3 Dir. lineal H

18 Traducción de dirección lineal a física.
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. Si CR3 = 654321 50H Bits 9 al 35 Rellenamos de ceros los bits 0 al 8 00H Dir. base de la PDPT =

19 Traducción de dirección lineal a física.
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. Bits 30 y 31 Dir. lineal = Cada entrada de la PDPT ocupa 8 bytes Índice PDPT = Offset PDPT = Índice PDPT * 8 = Dir entrada PDPT = Dir Base + Offset = H + 0H = H

20 Traducción de dirección lineal a física.
Modo extendido Traducción de dirección lineal a física. 6º Leer la entrada correspondiente en la PDPT. PDPT Dir base H Entrada 0 Supongamos que el contenido de la entrada es = H

21 Traducción de dirección lineal a física.
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. Bits 12 al 35 987654 Entrada PDPT = 221H Rellenamos de ceros los bits 0 al 11 000H Dir. base de la P.D. =

22 Traducción de dirección lineal a física.
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. Bits 21 al 29 Dir. lineal = Cada entrada de la PD ocupa 8 bytes Índice PD = 91H Offset PD = Índice PD * 8 = 488H Dir entrada PD = Dir Base+Offset = H + 488H = H

23 Traducción de dirección lineal a física.
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. PD Dir base H Offset 488H Dir entrada H Entrada 91H Supongamos que el contenido de la entrada es = H 0010 Bit 7 PS=0Página de 4 KB

24 Traducción de dirección lineal a física.
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. Bits 12 al 35 654321 Entrada PD = 221H Rellenamos de ceros los bits 0 al 11 000H Dir. base de la P.T. =

25 Traducción de dirección lineal a física.
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. Bits 12 al 20 Dir. lineal = Cada entrada de la PT ocupa 8 bytes Índice PT = 145H Offset PT = Índice PT * 8 = A28H Dir entrada PT = Dir Base+Offset = H + A28H = 654321A28H

26 Traducción de dirección lineal a física.
Modo extendido Traducción de dirección lineal a física. 12º Leer la entrada correspondiente en la PT. PT Dir base H Offset A28H Dir entrada A28H Entrada 145H Supongamos que el contenido de la entrada es = H

27 Traducción de dirección lineal a física.
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. Bits 12 al 35 456789 Entrada PT = 221H Rellenamos de ceros los bits 0 al 11 000H Dir. base de la Page =

28 Traducción de dirección lineal a física.
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 Bits 0 al 12 Dir. lineal = Offset = 678H Dir física = Dir Página + Offset = H + 678H = H

29 Modo extendido Resumen modo extendido página de 4 KB: Dir. lineal =
H PDPT CR3 H H 12 bits PDBA 24 bits DPtrBA 27 bits 5 bits H H Page PT H H PD 145*8=A28H 654321A28H Dir. Acceso 91*8=488H H 12 bits PageBA 24 bits H H 12 bits PS=0 PTBA 24 bits DPtr Table Offset Dir 91H 145H 678H Dir. lineal =

30 Traducción de dirección lineal a física.
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. PD Dir base H Offset 488H Dir entrada H Entrada 91H Supongamos que el contenido de la entrada es = A1H 1010 Bit 7 PS=1 Página de 2 MB

31 Traducción de dirección lineal a física.
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. Bits 12 al 35 6542 Entrada PD = 2A1H Rellenamos de ceros los bits 0 al 20 00000H Dir. base de la página =

32 Traducción de dirección lineal a física.
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 Bits 0 al 20 Dir. lineal = Offset = 145678H Dir física = Dir Página + Offset = H H = H

33 Modo extendido Resumen modo extendido página de 2 MB: Dir. lineal =
H PDPT CR3 H H 12 bits PDBA 24 bits DPtrBA 23 bits 9 bits H H Page PD H 91*8=488H H Dir. Acceso 12 bits PageBA 24 bits A1H DPtr Offset Dir 91H 145678H Dir. lineal =


Descargar ppt "Paginación Introducción Modo no extendido Modo extendido"

Presentaciones similares


Anuncios Google