EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

46
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.

Transcript of EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

Page 1: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 2: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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

Page 3: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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

Page 4: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

PIPELINE SIMPLE EN PROCESADORES

SUPERESCALARES

Un máximo de 2

instrucciones por ciclo

pueden completarse.

Page 5: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

MICROARQUITECTURA DEL

MICROPROCESADOR 80386

Page 6: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 7: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 8: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 10: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 11: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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

Page 12: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 13: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 14: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 15: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 16: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 17: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 18: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 19: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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

Page 20: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 21: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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

Page 22: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 23: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 24: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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

Page 25: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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

Page 26: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 27: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 28: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 29: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 30: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 31: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 32: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 33: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 34: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 35: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 36: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 37: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf

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.

Page 38: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 39: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 40: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 41: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 42: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 43: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 44: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 45: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf
Page 46: EL MICROPROCESADOR Y SU ARQUITECTURA.pdf