Date post: | 26-Dec-2015 |
Category: |
Documents |
Upload: | gonzalo-rojo-padilla |
View: | 51 times |
Download: | 5 times |
EL MICROPROCESADOR Y SU
ARQUITECTURA
Los modos de direccionamiento son parte
esencial de la arquitectura y operación 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 sólo para procesadores desde el
80286 hasta el Pentium. La capacidad de
dicha memoria ya se comentó con
antelación.
ARQUITECTURA INTERNA DE UN
PROCESADOR 8086 Y LA EJECUCIÓN
DE UN PROGRAMA Segmento
de código
Segmento
de datos
Segmento
de pila
Segmento
extra
LA MICROARQUITECTURA SUPERESCALAR La microarquitectura superescalar utiliza el paralelismo de
instrucciones además del paralelismo de flujo, éste último
gracias a la estructura en pipeline. La estructura típica de
un procesador superescalar consta de un pipeline con las
siguientes etapas:
Lectura (fetch). Múltiples instrucciones son capturadas
de forma simultánea, utilizando técnicas de predicción de
saltos y ejecución espelativa.
Decodificación (decode). La cual se da en dos pasos, i)
precodificación entre la memoria y la caché para
identificación de saltos, y ii) Determinación de la
operación, localización de operandos y localización del
resultado.
Lanzamiento (dispatch). Identificación de las
instrucciones de la cola que están listas para comenzar su
ejecución, o sea que tienen sus dependencias satisfechas.
Emisión (issue). Forma parte de la etapa anterior, en
conjunto se denotan como la ventana de ejecución.
Ejecución (execute). En paralelo, en diferentes
unidades funcionales.
Escritura (writeback).
Finalización (retirement). El resultado es confirmado en
su destino
PIPELINE SIMPLE EN PROCESADORES
SUPERESCALARES
Un máximo de 2
instrucciones por ciclo
pueden completarse.
MICROARQUITECTURA DEL
MICROPROCESADOR 80386
MICROARQUITECTURA DEL PENTIUM
El coprocesador matemático opera 4 veces más rápido que en el 80486. La lógica de predicción de saltos
permite a los programas saltos de ejecución más eficientes.
PROCESADORES PENTIUM IV
Prescott
Northwood
Willamette
DIAGRAMA SIMPLIFICADO DE UN
PROCESADOR PENTIUM
Código
Datos
Caché de código
Decodificador de
instrucciones
Unidad de control
Registros
ALU
Caché de código
Decodificador de
instrucciones
Unidad de punto flotante
CICLO DE EJECUCIÓN DE
INSTRUCCIONES
Búsqueda: la unidad de control busca la
instrucción en la cola de instrucciones e
incrementa el apuntador de instrucciones.
Decodificación: la unidad de control
decodifica la función de la instrucción para
determinar lo que ésta debe hacer. Los
operandos de entrada de la instrucción se
pasan a la ALU, y se envían señales a la
ALU para indicar la operación que se va a
realizar.
Búsqueda de operandos: si la
instrucción utiliza un operando de entrada
ubicado en memoria, la unida de control
utiliza la operación de lectura para obtener
el operando y copiarlo en os registros
internos, Estos registros no son visibles
para los programas de los usuarios.
Ejecución: la ALU ejecuta la instrucción,
utilizando los registros con nombre y los
registros internos como operandos, y
envía el resultado a los registros con
nombre y a la memoria. La ALU actualiza
las banderas de estado que proporcionan
información acerca del estado del
procesador.
Almacenamiento del operando del
resultado: si el operando de resultante
están en memoria, la unidad de control
utiliza una operación de escritura para
almacenar el dato.
CICLO DE EJECUCIÓN DE
INSTRUCCIONES
La secuencia de pasos para la ejecución de una
instrucción comprende los siguientes puntos:
Iterar Obtener la siguiente instrucción [Fetch]
Avanzar el apuntador de instrucciones (IP)
Decodificar la instrucción [Decode]
Si se necesita un operando de memoria, leer el
valor de la memoria
Ejecutar la instrucción [Execute]
Si el resultado es un operando en memoria,
escribir el resultado en la memoria [Write]
Continuar el ciclo
EL MODELO DE PROGRAMACIÓN DEL
INTEL 8086 AL PENTIUM 4
La figura muestra el
modelo de programación
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. Sólo 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 máquina 8086
virtual con su espacio de direcciones de 1
MB (ventana de comandos).
Una combinación de una dirección del
segmento y una dirección de offset
pueden acceder a las localidades de
memoria. Todas las direcciones de
memoria deben de consistir de
direcciones de memoria mas una
dirección de offset.
La dirección del segmento se encuentra alojada dentro de un registro de segmento, define la
dirección inicial del segmento de memoria de 64K. Mientras que la dirección de offset selecciona
cualquier localidad dentro de los 64k internos al segmento.
EJEMPLOS DE DIRECCIONES DE
SEGMENTOS EN MODO REAL
Registros de
segmento
Dirección de
inicio
Dirección
final
2000H 20000H 2FFFFH
2001H 20010H 3000FH
2100H 21000H 30FFFH
AB00H AB000H BAFFFH
1234H 12340H 2233FH
Segmento Offset Propósito especial
CS IP Dirección de la instrucción
SS SP o BP Dirección del stack
DS DX, DI, SI, un número entre 8 y 16 bits Dirección de datos
ES DI para cadena de instrucciones Dirección de cadena destino
Combinaciones por omisión de segmentos de 16 bits y offset
El registro del segmento de código siempre es
utilizado con el apuntador de instrucción para
direccionar la siguiente instrucción en un programa.
Esta combinación CS:IP o CS:EIP dependerá del
modo de operación del microprocesador. El registro
de segmento de código define el inicio del
segmento de código y el apuntador de instrucción
localiza la siguiente instrucción dentro del código
del segmento. En el caso del modo real, si
CS=1400H y IP/EIP=1200H, el microprocesador
captura la siguiente instrucción en
14000H+1200H=15200H.
COMBINACIONES DE SEGMENTOS Y
OFFSET POR OMISIÓN DE 32 BITS
Segmento Offset Propósito especial
CS EIP Dirección de
instrucción
SS ESP o EBP Dirección del stack
DS EAX, EBX, ECX,
EDX, ESI, EDI, un
número de 8 o 32
bits
Dirección de datos
ES EDI para
instrucciones de
cadena
Dirección de destino
de cadena
FS No tiene Dirección genérica
GS No tiene Dirección genérica
A continuación se ilustran los registros por omisión
considerados en el 80386 y posteriores utilizando
registros de 32 bits.
INTRODUCCIÓN 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 serán utilizadas para acceder a la información que se encuentra
localizada dentro del segmento de memoria. Una diferencia es que la
dirección 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 localización del segmento de memoria, longitud y accesos
correctos. De hecho, la mayoría de los programas escritos para
funcionar en el modo real funcionarán 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 dirección del offset puede ser un número de 32
bits en lugar de un número de 16 bits en el modo protegido. Una
dirección 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 programación 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 localización, 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 código comenzará en la
localidad 00080H. En el modo protegido, este número de segmento puede direccionar
cualquier localidad de memoria en el sistema completo para el segmento de código. 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
aplicación. Descriptor de la
aplicación.
Cada una contiene 8192 descriptores, esto hace
8192*2= 16384 descriptores disponibles para una
aplicación determinada.
Debido a que un segmento de
memoria puede ser de hasta
4Gigabytes de longitud, esto significa
que una aplicación podría 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 demás 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 tamaño
exacto de su segmento. Por ejemplo, el
segmento que empieza en 3000 tiene un
tamaño de 2000 hexadecimal, que se
calcula como (0002*1000 hexadecimal).
El segmento que empieza en 8000 tiene
el tamaño de A000 hexadecimal.
Base
Límite
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 máximo de 64K bytes de longitud.
La porción de la dirección base del descriptor indica la localidad inicial del segmento de
memoria. Para el microprocesador 80286, la dirección base es de 24 bits, de tal forma que
los segmentos comienzan en alguna localidad en sus 16MB de memoria. Observar que el
párrafo de limitación acotada no existe en estos procesadores cuando trabajan en modo
protegido de tal manera que los segmentos pueden empezar en cualquier dirección. El
80386 y superiores utilizan una dirección base de 32 bits que permite a los segmentos
comenzar en cualquier localidad dentro de sus 4GBytes de memoria.
DESCRIPTORES
El límite 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 dirección base es F00000H y el límite es FFH. Para el 80286, la
dirección base es F00000H y el límite es 00FFH. Para el 80386 y superiores, la dirección
base es 00F0000H y el límite es 000FFH. Nota que el 80286 tiene un límite de 16 bits y
el 80386 hasta el Pentium 4 tienen un límite 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 característica 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 límite específica un límite de
segmento de 00000H a FFFFFH. Si G=1, el valor del límite se multiplica por 4Kbytes (sumados
a FFFH). El límite es entonces 00000FFFFH a FFFFFFFFH, si G=1. Esto permite una longitud
de segmento de 4K a 4G bytes en pasos de 4Kbytes. La razón de esta longitud del segmento
en el 80286 es que la dirección 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 dirección
de offset; en la operación de modo protegido, de los 32 bits. Esta dirección de 32 bits permite
que los segmentos tengan longitud de 4Gbytes y la dirección 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 mayoría 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 dirección base es
10000000H, el límite 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 dirección base
es 10000000H, el límite 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
omisión.
Por omisión el modo de 32 bits
considera que todos los offset de
dirección 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
dirección de crecimiento. Si el segmento
crece hasta su límite, el programa del
sistema operativo se interrumpe,
indicando una falla de protección general.
El segmento de código 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
violación 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 número del
descriptor 1 de la tabla de
descriptores globales utilizando
el nivel de privilegio requerido
00.
El número del descriptor 1 contiene un descriptor que define la dirección base como
00100000H con un límite 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 física sea asignada a cualquier dirección lineal. La dirección
física es la localidad de memoria actual a la que se accede por un programa. Con la unidad de
paginación de memoria (MMU), la dirección lineal es invisiblemente traducida a cualquier
dirección física, lo cual permite que una aplicación escrita funcione en una dirección específica
para ser realojada por medio del mecanismo de paginación. Esto también 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 aplicación 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
paginación sobre el disco duro y
paginación de memoria por
medio de la unidad de paginación
de memoria cualquier aplicación
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, información e instrucciones entre
la memoria y el almacenamiento. Una página
(page) es la cantidad de datos e instrucciones que
se pueden intercambiar en un momento dado. A la
técnica de intercambiar entre memoria y
almacenamiento se le llama “paging”. Cuando un
sistema operativo está mucho tiempo haciendo
“paging” en vez de ejecutando una aplicación, se
dice que el sistema está “thrashing”.
Por ejemplo, cuando se intenta acceder a
una página del Internet, la página ya bajó,
pero la luz del disco duro sigue encendida.
Si el “thrashing” sucede con mucha
frecuencia, es posible que la computadora
necesite más RAM.
REGISTROS DE PAGINACIÓN La unidad de paginación es controlada por el contenido del registro de control del
microprocesador
Los registros importantes para la
paginación son del CR0-CR3. El bit (PG)
de la posición más hacia la izquierda de
CR0 selecciona la página cuando se
coloca en un nivel lógico 1. Si el bit PG se
pone a 0, la dirección generada por el
programa se convierte en una dirección
física utilizada para acceder a la memoria.
Si el bit PG se pone a 1, la dirección lineal
se convierte en una dirección física por
medio de los mecanismos de paginación.
El mecanismo de paginación funciona
tanto en modo real como protegido. CR3
contiene el directorio de página base o la
dirección raíz y los bits PCD y PWT
ambos controlan la operación 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
cachés misses, pero continuará funcionando para cachés hits. Si CD=0, misses causarán que la caché se
llene con los nuevos datos.
NW Not write-throught. Selecciona el modo de operación 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 alineación cuando se encuentra habilitado. Notar que el chequeo de
alineación solamente ocurre para operaciones de modo protegido cuando el usuario está en el nivel de
privilegio 3.
WP Write Protect. Protege a las páginas 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 detección del error del coprocesador numérico. Si NE=1, el pin FERR se pone en
modo de activación para denotar que ha ocurrido un error con el coprocesador matemático. 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 interrupción en modo protegido.
TSD Time Stamp Disable. Controla la instrucción RDTSC
DE Debugging extension. Habilita las extensiones de depuración de punto de ruptura de I/O cuando se
establece.
PSE Page size extension. Habilita las páginas de memoria de 4 M-byte cuando se establece.
MCE Machine check enable. Habilita la interrupción de cheque de la máquina.
Si PCD es 1, la terminal PCD se vuelve uno lógico durante los ciclos de bus que no están
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 también
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 dirección base del directorio de página localiza el
directorio para la unidad de traducción de página. Esta dirección localiza el directorio página
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 página contiene 1024 entradas de directorio de
cuatro bytes cada una. Cada entrada del directorio de página direcciona una tabla de página
que contiene 1024 entradas.
La dirección lineal, como es generada por el software, se divide en tres secciones, que se
utilizan para acceder a la entrada del directorio de página, la entrada de la tabla de página y
la dirección de offset de la página de memoria.
Los 10 bits más significativos direccionan una
entrada en el directorio de página. Para
direcciones lineales 00000000H-003FFFFFH, la
primera página de directorio es accedida. Cada
entrada a la página de directorio representa o
repágina una sección de 4MB del sistema de
memoria.
El contenido del directorio página selecciona
una tabla de página que se encuentra indexada
en los siguientes 10 bits de la dirección lineal.
Esto significa que las direcciones 00000000H-
00000FFFH seleccionan una entrada al
directorio de página 0 y una entrada a la tabla
de página 0. Notar que representa un rango de
direcciones de 4K-bytes.
En la figura, si la entrada a la tabla de
páginas es 0, contiene la dirección
00100000H, entonces la dirección física es
00100000H-00100FFFH para la dirección
lineal 00000000H-00000FFFH. Esto significa
que cuando el programa accede a una
localidad entre 00000000H y 00000FFFH, el
microprocesador físicamente direcciona a las
localidades 00100000H-00100FFFH.
Debido al hecho de que la repaginación es de
una sección de 4K-byte de memoria requiere
acceder al directorio de página y una tabla de
página, 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 más
recientes direcciones de la traducción de
página. 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 dirección se encuentra
presente en el TLB, y el acceso al
directorio de páginas y tablas de páginas
no es necesario. Esto acelera la
ejecución de un programa. Si una
traducción no se encuentra en el TLB, el
directorio de página y la tabla de página
deben de accederse, lo que implica
tiempo de ejecución adicional. Los
microprocesadores Pentium-Pentium4
contienen TLBs separadas para cada
una de sus cachés de datos e
instrucciones.
EL DIRECTORIO DE PÁGINA Y LA TABLA
DE PÁGINA
La siguiente figura muestra que el directorio de página contiene 1024 direcciones del tipo
dobleword que localizan hasta 1024 tablas de página. El directorio de página y cada tabla de
página son de 4K bytes de memoria en longitud. Si los 4G bytes completos de la memoria
están paginados, el sistema debe de almacenar 4K bytes de memoria para el directorio de
página, y 4K veces 1024 o 4Mbytes para las 1024 tablas de página. Esto representa un
considerable conjunto de recursos de memoria.