universidad pontificia de salamanca (madrid) dpto. de electrónica y comunicaciones. © alfonso...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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