You are on page 1of 46

EL MICROPROCESADOR Y SU

ARQUITECTURA
Los modos de direccionamiento son parte
esencial de la arquitectura y operacin de
un microprocesador. La memoria en modo
real (memoria DOS) existe en las
localidades 00000H-FFFFFH el primer
mega byte de memoria del sistema- y se
encuentra presente en todas las versiones
del microprocesador. La memoria de modo
protegido (memoria de Windows) existe en
todas las localidades de memoria del
sistema completo, pero se encuentra
disponible slo para procesadores desde el
80286 hasta el Pentium. La capacidad de
dicha memoria ya se coment con
antelacin.
ARQUITECTURA INTERNA DE UN
PROCESADOR 8086 Y LA EJECUCIN
DE UN PROGRAMA
Segmento
de cdigo
Segmento
de datos
Segmento
de pila
Segmento
extra
LA MICROARQUITECTURA SUPERESCALAR
La microarquitectura superescalar utiliza el paralelismo de
instrucciones adems del paralelismo de flujo, ste ltimo
gracias a la estructura en pipeline. La estructura tpica de
un procesador superescalar consta de un pipeline con las
siguientes etapas:

Lectura (fetch). Mltiples instrucciones son capturadas
de forma simultnea, utilizando tcnicas de prediccin de
saltos y ejecucin espelativa.
Decodificacin (decode). La cual se da en dos pasos, i)
precodificacin entre la memoria y la cach para
identificacin de saltos, y ii) Determinacin de la
operacin, localizacin de operandos y localizacin del
resultado.
Lanzamiento (dispatch). Identificacin de las
instrucciones de la cola que estn listas para comenzar su
ejecucin, o sea que tienen sus dependencias satisfechas.
Emisin (issue). Forma parte de la etapa anterior, en
conjunto se denotan como la ventana de ejecucin.
Ejecucin (execute). En paralelo, en diferentes
unidades funcionales.
Escritura (writeback).
Finalizacin (retirement). El resultado es confirmado en
su destino
PIPELINE SIMPLE EN PROCESADORES
SUPERESCALARES
Un mximo de 2
instrucciones por ciclo
pueden completarse.
MICROARQUITECTURA DEL
MICROPROCESADOR 80386
MICROARQUITECTURA DEL PENTIUM
El coprocesador matemtico opera 4 veces ms rpido que en el 80486. La lgica de prediccin de saltos
permite a los programas saltos de ejecucin ms eficientes.
PROCESADORES PENTIUM IV
Prescott
Northwood
Willamette
DIAGRAMA SIMPLIFICADO DE UN
PROCESADOR PENTIUM
Cdigo








Datos

Cach de cdigo
Decodificador de
instrucciones
Unidad de control
Registros
ALU
Cach de cdigo
Decodificador de
instrucciones
Unidad de punto flotante
CICLO DE EJ ECUCIN DE
INSTRUCCIONES
Bsqueda: la unidad de control busca la
instruccin en la cola de instrucciones e
incrementa el apuntador de instrucciones.
Decodificacin: la unidad de control
decodifica la funcin de la instruccin para
determinar lo que sta debe hacer. Los
operandos de entrada de la instruccin se
pasan a la ALU, y se envan seales a la
ALU para indicar la operacin que se va a
realizar.
Bsqueda de operandos: si la
instruccin utiliza un operando de entrada
ubicado en memoria, la unida de control
utiliza la operacin de lectura para obtener
el operando y copiarlo en os registros
internos, Estos registros no son visibles
para los programas de los usuarios.
Ejecucin: la ALU ejecuta la instruccin,
utilizando los registros con nombre y los
registros internos como operandos, y
enva el resultado a los registros con
nombre y a la memoria. La ALU actualiza
las banderas de estado que proporcionan
informacin acerca del estado del
procesador.
Almacenamiento del operando del
resultado: si el operando de resultante
estn en memoria, la unidad de control
utiliza una operacin de escritura para
almacenar el dato.
CICLO DE EJ ECUCIN DE
INSTRUCCIONES
La secuencia de pasos para la ejecucin de una
instruccin comprende los siguientes puntos:
Iterar
Obtener la siguiente instruccin [Fetch]
Avanzar el apuntador de instrucciones (IP)
Decodificar la instruccin [Decode]
Si se necesita un operando de memoria, leer el
valor de la memoria
Ejecutar la instruccin [Execute]
Si el resultado es un operando en memoria,
escribir el resultado en la memoria [Write]
Continuar el ciclo
EL MODELO DE PROGRAMACIN DEL
INTEL 8086 AL PENTIUM 4
La figura muestra el
modelo de programacin
de los procesadores
desde el 8086 hasta el
pentium.
General Purpose Registers: The main functions are listed.
EAX: Accumulator : Referenced as EAX, AX, AL or AH.
Used for mult, div, etc.
Used to hold an offset.
EBX: Base Index :
Used to hold the offset of a data pointer.
ECX: Count :
Used to hold the count for some instructions, REP and LOOP.
Used to hold the offset of a data pointer.
EDX: Data :
Used to hold a portion of the result for mult, of the operand for div.
Used to hold the offset of a data pointer.
EBP: Base Pointer :
Holds the base pointer for memory data transfers.
EDI: Destination Index :
Holds the base destination pointer for string instructions.
ESI: Source Index :
Holds the base source pointer for string instructions.
Programmer Visible Architecture
Special Purpose Registers:
EIP: Instruction Pointer :
Points to the next instruction in a code segment.
16-bits (IP) in real mode and 32-bits in protected mode.
ESP: Stack Pointer :
Used by the stack, call and return instructions.
EFLAGS :
Store the state of various conditions in the microprocessor.
Programmer Visible Architecture
Special Purpose Registers:
EFLAGS Register:





The rightmost 5 flag bits and overflow change after many of the arithmetic and logic
instructions execute. Data transfer and control instructions never change the flags.
a.C (Carry) :
Holds the carry out after addition or the borrow after subtraction.
Also indicates error conditions.
b.P (Parity) :
0 for odd number of bits and 1 for even.
Obsolete feature of the 80x86.
c.A (Auxiliary Carry) :
Highly specialized flag used by DAA and DAS instructions after BCD addition or
subtraction.
Programmer Visible Architecture
Special Purpose Registers:
b.EFLAGS (cont).
c.Z (Zero) :
1 if the result of an arithmetic or logic instruction is 0.
d.S (Sign) :
1 if the sign of the result of an arith. or logic instruction is negative.
e.T (Trap) :
Trap enable. The microprocessor interrupts the flow of instructions on conditions
indicated by the debug and control registers.

I (Interrupt) :
Controls the operation of the INTR (Interrupt request)
pin. If 1, interrupts are enabled. Set by STI and CLI
instructions.
D (Direction) :
Selects with increment or decrement mode for the DI
and/or SI registers during string instructions. If 1,
registers are automatically decremented. Set by STD
and CLD instructions.
O (Overflow) :
Set for addition and subtraction instructions.
MODO DE DIRECCIONAMIENTO EN
MODO REAL
Recordando que el 80286 en adelante
operan en modo real o bien modo
protegido. Slo el 8086 y 8088 operan en
modo real. En modo real, el procesador
direcciona solamente el primer Mega byte
de espacio de memoria. Windows no
utiliza el modo real. En el modo 8086
virtual, la computadora se ejecuta en
modo protegido y crea una mquina 8086
virtual con su espacio de direcciones de 1
MB (ventana de comandos).
Una combinacin de una direccin del
segmento y una direccin de offset
pueden acceder a las localidades de
memoria. Todas las direcciones de
memoria deben de consistir de
direcciones de memoria mas una
direccin de offset.
La direccin del segmento se encuentra alojada dentro de un registro de segmento, define la
direccin inicial del segmento de memoria de 64K. Mientras que la direccin de offset selecciona
cualquier localidad dentro de los 64k internos al segmento.
EJEMPLOS DE DIRECCIONES DE
SEGMENTOS EN MODO REAL
Registros de
segmento
Direccin de
inicio
Direccin
final
2000H 20000H 2FFFFH
2001H 20010H 3000FH
2100H 21000H 30FFFH
AB00H AB000H BAFFFH
1234H 12340H 2233FH
Segmento Offset Propsito especial
CS IP Direccin de la instruccin
SS SP o BP Direccin del stack
DS DX, DI, SI, un nmero entre 8 y 16 bits Direccin de datos
ES DI para cadena de instrucciones Direccin de cadena destino
Combinaciones por omisin de segmentos de 16 bits y offset
El registro del segmento de cdigo siempre es
utilizado con el apuntador de instruccin para
direccionar la siguiente instruccin en un programa.
Esta combinacin CS:IP o CS:EIP depender del
modo de operacin del microprocesador. El registro
de segmento de cdigo define el inicio del
segmento de cdigo y el apuntador de instruccin
localiza la siguiente instruccin dentro del cdigo
del segmento. En el caso del modo real, si
CS=1400H y IP/EIP=1200H, el microprocesador
captura la siguiente instruccin en
14000H+1200H=15200H.
COMBINACIONES DE SEGMENTOS Y
OFFSET POR OMISIN DE 32 BITS
Segmento Offset Propsito especial
CS EIP Direccin de
instruccin
SS ESP o EBP Direccin del stack
DS EAX, EBX, ECX,
EDX, ESI, EDI, un
nmero de 8 o 32
bits
Direccin de datos
ES EDI para
instrucciones de
cadena
Direccin de destino
de cadena
FS No tiene Direccin genrica
GS No tiene Direccin genrica
A continuacin se ilustran los registros por omisin
considerados en el 80386 y posteriores utilizando
registros de 32 bits.
INTRODUCCIN AL DIRECCIONAMIENTO
DE MEMORIA EN MODO PROTEGIDO
El modo protegido es en donde Windows trabaja. Cuando los datos o
programas se acceden en la memoria extendida, las direcciones del
offset sern utilizadas para acceder a la informacin que se encuentra
localizada dentro del segmento de memoria. Una diferencia es que la
direccin del segmento, tal y como se discuti en el direccionamiento en
modo real, no se encuentra en el modo protegido. En lugar de las
direcciones de segmento, el registro de segmento contiene un selector
que selecciona un descriptor de una tabla de descriptores. El descriptor
describe la localizacin del segmento de memoria, longitud y accesos
correctos. De hecho, la mayora de los programas escritos para
funcionar en el modo real funcionarn sin cambios en el modo
protegido. La diferencia entre los modos est en la manera en la que el
registro de segmento es interpretado por el microprocesador para
acceder al segmento de la memoria. Otra diferencia, en el 80386 y
posteriores, es que la direccin del offset puede ser un nmero de 32
bits en lugar de un nmero de 16 bits en el modo protegido. Una
direccin de offset de 32 bits permite al microprocesador acceder a
datos dentro de un segmento que pueden estar por encima de los 4G
Bytes en longitud. Para Microsoft Assembler, el modelo de memoria
plano (directiva .MODEL) es apropiado para la programacin en este
modo. Los registros de segmento apuntan a tablas de descriptores de
segmentos, que el sistema operativo utiliza para llevar el registro de las
ubicaciones de los segmentos individuales de un programa.
MODO
PROTEGIDO
00000000H-FFFFFFFFH
800000000H-FFFFFFFFH
SELECTORES Y DESCRIPTORES
El selector, localizado en el registro de segmento, selecciona a uno de los 8192 descriptores
de una de las dos tabla de descriptores. El descriptor describe la localizacin, longitud y
derechos de acceso del segmento de memoria. Indirectamente el registro de segmento
seleccionar un segmento de memoria, pero no de manera directa como lo hace en el modo
real. Por ejemplo, en el modo real, si CS=0008H, el segmento de cdigo comenzar en la
localidad 00080H. En el modo protegido, este nmero de segmento puede direccionar
cualquier localidad de memoria en el sistema completo para el segmento de cdigo. Esto es.
Existen dos tablas de descriptores:
Tabla de
Descriptores
globales
Tabla de
Descriptores
locales
Contiene las definiciones de
segmentos que se aplica a
todos los programas.
Descriptor de sistema.
Contiene las definiciones de
segmentos nicos para cada
aplicacin. Descriptor de la
aplicacin.
Cada una contiene 8192 descriptores, esto hace
8192*2= 16384 descriptores disponibles para una
aplicacin determinada.
Debido a que un segmento de
memoria puede ser de hasta
4Gigabytes de longitud, esto significa
que una aplicacin podra tener
acceso a 4Gx16384=64T bytes de
memoria.
SELECTORES Y DESCRIPTORES
En el modelo multisegmentos, cada
tarea o programa recibe su propia tabla
de descriptores de segmento, que puede
ser distinto de los dems segmentos
utilizados por otros procesos. Cada
segmento tiene su propio espacio de
direcciones. En la siguiente figura, cada
entrada en la LDT apunta a un segmento
distinto en la memoria. Cada descriptor
de segmento especifica el tamao
exacto de su segmento. Por ejemplo, el
segmento que empieza en 3000 tiene un
tamao de 2000 hexadecimal, que se
calcula como (0002*1000 hexadecimal).
El segmento que empieza en 8000 tiene
el tamao de A000 hexadecimal.

Base

Lmite

Acceso
00026000 0010
00008000 000A
00003000 0002
26000
8000
3000
DESCRIPTORES
La siguiente figura muestra el formato de un descriptor para el 80286 hasta el Pentium 4.
Notar que cada descriptor es de 8 bytes de longitud, de tal manera que las tablas de los
descriptores son cada una de ellas de un mximo de 64K bytes de longitud.
La porcin de la direccin base del descriptor indica la localidad inicial del segmento de
memoria. Para el microprocesador 80286, la direccin base es de 24 bits, de tal forma que
los segmentos comienzan en alguna localidad en sus 16MB de memoria. Observar que el
prrafo de limitacin acotada no existe en estos procesadores cuando trabajan en modo
protegido de tal manera que los segmentos pueden empezar en cualquier direccin. El
80386 y superiores utilizan una direccin base de 32 bits que permite a los segmentos
comenzar en cualquier localidad dentro de sus 4GBytes de memoria.
DESCRIPTORES
El lmite del segmento contiene las ltimas direcciones offset encontradas en un
segmento. Por ejemplo, si un segmento comienza en la localidad F00000H y termina en
la localidad F000FFH, la direccin base es F00000H y el lmite es FFH. Para el 80286, la
direccin base es F00000H y el lmite es 00FFH. Para el 80386 y superiores, la direccin
base es 00F0000H y el lmite es 000FFH. Nota que el 80286 tiene un lmite de 16 bits y
el 80386 hasta el Pentium 4 tienen un lmite de 20 bits. Un 80286 accede a segmentos
de memoria que se encuentran dentro de 1 a 64Kbytes de longitud; mientras que el
80386 y superiores pueden acceder a segmentos de memoria que se encuentran entre 1
y 1MByte, o 4K y 4G bytes de longitud.
DESCRIPTORES
Existe otra caracterstica que se encuentra en el descriptor del 80386 hasta el Pentium 4 que
no existe en el del 80286: el bit de granularidad (bit G). Si G=0, el lmite especfica un lmite de
segmento de 00000H a FFFFFH. Si G=1, el valor del lmite se multiplica por 4Kbytes (sumados
a FFFH). El lmite es entonces 00000FFFFH a FFFFFFFFH, si G=1. Esto permite una longitud
de segmento de 4K a 4G bytes en pasos de 4Kbytes. La razn de esta longitud del segmento
en el 80286 es que la direccin del offset siempre es de 16 bits debido a su arquitectura interna
de 16 bits. El 80386 y superiores utilizan una arquitectura de 32 bits que permite una direccin
de offset; en la operacin de modo protegido, de los 32 bits. Esta direccin de 32 bits permite
que los segmentos tengan longitud de 4Gbytes y la direccin offset de 16 bits permite
longitudes de segmento de 64K bytes. Los sistemas operativos operan en el entorno de 16 y
32 bits. Por ejemplo, MS-DOS utiliza el entorno de 16 bits, mientras que la mayora de las
aplicaciones de Windows utilizan el entorno de 32 bits, llamado WIN32.
EJEMPLO
El siguiente ejemplo muestra el segmento inicial y final considerando que la direccin base es
10000000H, el lmite es 001FFH, y el bit G=0.
Base=Start=10000000H
G=0
End=Base+Limit=10000000H+001FFH=100001FFH
EJEMPLO 2
El siguiente ejemplo muestra el segmento inicial y final considerando que la direccin base
es 10000000H, el lmite es 001FFH, y el bit G=1.
Base=Start=10000000H
G=0
End=Base+Limit=10000000H+001FFFFFH=101FFFFFH
REGISTROS AV y D DEL DESCRIPTOR
AV=1
AV=0
SEGMENTO
DISPONIBLE
SEGMENTO NO
DISPONIBLE
El bit AV, se utiliza por
algunos sistemas
operativos para indicar LA
DISPONIBILIDAD del
segmento
D=1
D=0
MODO DE 32 bits
MODO DE 16 bits
O MODO DOS
El bit D indica como estos
procesadores acceden a los
datos en memoria y los
registros en modo real o
protegido.
Esto significa que las instrucciones
utilizan direcciones de 16 bits de
offset y registros de 16 bits por
omisin.
Por omisin el modo de 32 bits
considera que todos los offset de
direccin y registros son de 32
bits.
DESCRIPTORES
El byte de derechos de acceso controla el
acceso al segmento del modo protegido.
Este byte indica como funciona el
segmento en el sistema. Si el segmento
es un segmento de datos, se especifica la
direccin de crecimiento. Si el segmento
crece hasta su lmite, el programa del
sistema operativo se interrumpe,
indicando una falla de proteccin general.
El segmento de cdigo funciona de
manera similar y ambos pueden ser
habilitado o deshabilitados para escritura.
EL REGISTRO DE SEGMENTO
Los descriptores se seleccionan de la tabla de descriptores por el registro de segmento.
El registro de segmento contiene un
campo selector de 13 bits, un bit
selector de tabla y un campo de
nivel de privilegio requerido. Los
niveles de privilegio se utilizan en
esquemas multiusuario. Windows
utiliza el nivel de privilegio 00 (ring
0) para los programas de
controladores y kernel y el nivel 11
(ring 3) para las aplicaciones.
Windows no utiliza los niveles de
privilegio 01 o 10. Si alguien desea
acceder a estos privilegios, el
sistema operativo indica una
violacin en el nivel de privilegios.
EL REGISTRO DE SEGMENTO
EJEMPLO. En este caso el
registro de segmento,
selecciona un descriptor de la
tabla de descriptores globales.
La entrada en la tabla de
descriptores globales selecciona
un segmento en la memoria del
sistema. Como DS=0008H, el
cual accede al nmero del
descriptor 1 de la tabla de
descriptores globales utilizando
el nivel de privilegio requerido
00.
El nmero del descriptor 1 contiene un descriptor que define la direccin base como
00100000H con un lmite de segmento de 000FFH. Esto significa que un valor de 0008H en
DS causa que el procesador utilice la localidad de memoria 00100000H-001000FFH para el
segmento de datos con este ejemplo en la tabla de descriptores.
MEMORIA PAGINADA
El mecanismo de memoria paginada que ha adoptado el 80386 y superiores permite que
cualquier localidad de memoria fsica sea asignada a cualquier direccin lineal. La direccin
fsica es la localidad de memoria actual a la que se accede por un programa. Con la unidad de
paginacin de memoria (MMU), la direccin lineal es invisiblemente traducida a cualquier
direccin fsica, lo cual permite que una aplicacin escrita funcione en una direccin especfica
para ser realojada por medio del mecanismo de paginacin. Esto tambin permite que la
memoria sea colocada en donde la memoria no existe. Un ejemplo lo representan los bloques
de memoria superiores dados por el EMM386.EXE en el sistema DOS.
En Windows cada aplicacin se
aloja en un espacio de
direcciones lineales de 2Gbytes,
en las localidades 00000000H-
7FFFFFFFH aunque no pueda
existir memoria disponible en
estas direcciones. Realizando la
paginacin sobre el disco duro y
paginacin de memoria por
medio de la unidad de paginacin
de memoria cualquier aplicacin
de Windows puede ser
ejecutada.
EL REA DE SWAP
El rea que el disco duro usa para memoria
virtual es llamada swap file, pues intercambia
(swap) datos, informacin e instrucciones entre
la memoria y el almacenamiento. Una pgina
(page) es la cantidad de datos e instrucciones que
se pueden intercambiar en un momento dado. A la
tcnica de intercambiar entre memoria y
almacenamiento se le llama paging. Cuando un
sistema operativo est mucho tiempo haciendo
paging en vez de ejecutando una aplicacin, se
dice que el sistema est thrashing.
Por ejemplo, cuando se intenta acceder a
una pgina del Internet, la pgina ya baj,
pero la luz del disco duro sigue encendida.
Si el thrashing sucede con mucha
frecuencia, es posible que la computadora
necesite ms RAM.
REGISTROS DE PAGINACIN
La unidad de paginacin es controlada por el contenido del registro de control del
microprocesador
Los registros importantes para la
paginacin son del CR0-CR3. El bit (PG)
de la posicin ms hacia la izquierda de
CR0 selecciona la pgina cuando se
coloca en un nivel lgico 1. Si el bit PG se
pone a 0, la direccin generada por el
programa se convierte en una direccin
fsica utilizada para acceder a la memoria.
Si el bit PG se pone a 1, la direccin lineal
se convierte en una direccin fsica por
medio de los mecanismos de paginacin.
El mecanismo de paginacin funciona
tanto en modo real como protegido. CR3
contiene el directorio de pgina base o la
direccin raz y los bits PCD y PWT
ambos controlan la operacin de las
terminales del mismo nombre del
procesador.
REGISTROS ESPECIALES DEL PENTIUM
CD Cache disable. Este bit controla la cach interna. Si CD=1, la cach no se llenar con el nuevo dato para
cachs misses, pero continuar funcionando para cachs hits. Si CD=0, misses causarn que la cach se
llene con los nuevos datos.
NW Not write-throught. Selecciona el modo de operacin para la cach de datos. Si NW=1, la cach de datos se
encuentra inhibida de la cach write-throught.
AM Alignment mask. Habilita el choque de alineacin cuando se encuentra habilitado. Notar que el chequeo de
alineacin solamente ocurre para operaciones de modo protegido cuando el usuario est en el nivel de
privilegio 3.
WP Write Protect. Protege a las pginas a nivel de usuario contra escritura a nivel supervisor. Cuando WP=1, el
supervisor puede escribir a los segmentos de nivel usuario.
NE Numeric error. Habilita la deteccin del error del coprocesador numrico. Si NE=1, el pin FERR se pone en
modo de activacin para denotar que ha ocurrido un error con el coprocesador matemtico. Si NE=0,
cualquier error en el coprocesador se ignora.
VME Virtual mode extension. Habilita el soporte para la bandera de interrupciones en modo protegido. Si VME=0,
el soporte para interrupciones virtuales se deshabilita.
PVI Protected Mode Virtual interrupt. Habilita el soporte para banderas de interrupcin en modo protegido.
TSD Time Stamp Disable. Controla la instruccin RDTSC
DE Debugging extension. Habilita las extensiones de depuracin de punto de ruptura de I/O cuando se
establece.
PSE Page size extension. Habilita las pginas de memoria de 4 M-byte cuando se establece.
MCE Machine check enable. Habilita la interrupcin de cheque de la mquina.
Si PCD es 1, la terminal PCD se vuelve uno lgico durante los ciclos de bus que no estn
paginados. Esto permite que el hardware externo controle el nivel 2 de la memoria de cach
(esta memoria es interna y de alta velocidad en el microprocesador que funciona como un
buffer entre el microprocesador y la memoria DRAM del sistema). El bit PWT tambin
aparece en la terminal PWT durante los ciclos del bus que no son paginados para controlar la
escritura sobre la cach en el sistema. La direccin base del directorio de pgina localiza el
directorio para la unidad de traduccin de pgina. Esta direccin localiza el directorio pgina
en cualquiera de los 4K en la frontera de la memoria del sistema debido a que se agrega de
manera interna con 000H. El directorio de pgina contiene 1024 entradas de directorio de
cuatro bytes cada una. Cada entrada del directorio de pgina direcciona una tabla de pgina
que contiene 1024 entradas.
La direccin lineal, como es generada por el software, se divide en tres secciones, que se
utilizan para acceder a la entrada del directorio de pgina, la entrada de la tabla de pgina y
la direccin de offset de la pgina de memoria.
Los 10 bits ms significativos direccionan una
entrada en el directorio de pgina. Para
direcciones lineales 00000000H-003FFFFFH, la
primera pgina de directorio es accedida. Cada
entrada a la pgina de directorio representa o
repgina una seccin de 4MB del sistema de
memoria.
El contenido del directorio pgina selecciona
una tabla de pgina que se encuentra indexada
en los siguientes 10 bits de la direccin lineal.
Esto significa que las direcciones 00000000H-
00000FFFH seleccionan una entrada al
directorio de pgina 0 y una entrada a la tabla
de pgina 0. Notar que representa un rango de
direcciones de 4K-bytes.
En la figura, si la entrada a la tabla de
pginas es 0, contiene la direccin
00100000H, entonces la direccin fsica es
00100000H-00100FFFH para la direccin
lineal 00000000H-00000FFFH. Esto significa
que cuando el programa accede a una
localidad entre 00000000H y 00000FFFH, el
microprocesador fsicamente direcciona a las
localidades 00100000H-00100FFFH.
Debido al hecho de que la repaginacin es de
una seccin de 4K-byte de memoria requiere
acceder al directorio de pgina y una tabla de
pgina, las cuales se encuentran en memoria.
Intel ha incorporado un tipo especial de cach
llamado el TLB.
TRANSLATION LOOK-ASIDE BUFFER (TLB)
En el 80486 El TLB retiene las 32 ms
recientes direcciones de la traduccin de
pgina. Esto significa que las ltimas
traducciones se encuentran
almacenadas en el TLB, de tal forma
que si la misma rea de memoria es
accedida, la direccin se encuentra
presente en el TLB, y el acceso al
directorio de pginas y tablas de pginas
no es necesario. Esto acelera la
ejecucin de un programa. Si una
traduccin no se encuentra en el TLB, el
directorio de pgina y la tabla de pgina
deben de accederse, lo que implica
tiempo de ejecucin adicional. Los
microprocesadores Pentium-Pentium4
contienen TLBs separadas para cada
una de sus cachs de datos e
instrucciones.
EL DIRECTORIO DE PGINA Y LA TABLA
DE PGINA
La siguiente figura muestra que el directorio de pgina contiene 1024 direcciones del tipo
dobleword que localizan hasta 1024 tablas de pgina. El directorio de pgina y cada tabla de
pgina son de 4K bytes de memoria en longitud. Si los 4G bytes completos de la memoria
estn paginados, el sistema debe de almacenar 4K bytes de memoria para el directorio de
pgina, y 4K veces 1024 o 4Mbytes para las 1024 tablas de pgina. Esto representa un
considerable conjunto de recursos de memoria.

You might also like