Microprocesador 80386DX

20
Arquitectura Interna (cont.)

Transcript of Microprocesador 80386DX

Page 1: Microprocesador 80386DX

Arquitectura Interna (cont.)

Page 2: Microprocesador 80386DX

MICP 80386DX: Arquitectura Interna

Page 3: Microprocesador 80386DX

Microprocesador 80386DX

• Presenta 6 unidades de procesamiento - Unidad de Bus- Unidad de Pre-búsqueda- Unidad de Decodificación- Unidad de Ejecución- Unidad de Segmentación- Unidad de Paginación

• Esto permite la ejecución de instrucciones mediante la técnica de tuberías (pipeline) conocido también como “procesamiento en paralelo”.

Page 4: Microprocesador 80386DX

• Caracteristicas– Microprocesador de 32 bits

• Tipo de Datos de 8, 16, 32 bits• 8 Registros de Propósito General GPR (32-bit)

– Espacio de Direcciones Grande• 4 GB de Memoria Física• 4 GB Tamaño Máximo de Segmento• NOTA: 1MB ≡ 1024 KB, 1GB ≡ 1024MB, 1TB ≡

1024GB.

Microprocesador 80386DX

Page 5: Microprocesador 80386DX

– Unidad de Página+Unidad de Segmentación • Proveen el Servicio Para Administrar Memoria• Provee 4 Niveles de Protección durante ciclos de bus• 100% compatible con 80286

• Mas Características– Modo Real, Modo Protegido, Modo Virtual 8086– Optimizado para un mejor rendimiento

• Ejecución de Instrucciones mediante tuberías• Integra en el chip cachés para conversión de

direcciones• 20, 25, and 33 MHz clock

– 132 pin “Grid Array Package”

Microprocesador 80386DX

Page 6: Microprocesador 80386DX

Espacio de Direcciones de Memoria en Modo Real

• 80386DX en Modo Real: 1MB de memoria externa• Espacio de Direcciones de Memoria del 8086 ≡ 1MB

00000H

003FFH

00400H

FFFFFH

Dedicada(Tabla Vectores de

Interrupción)

general

Puntero IP

Segmento

Page 7: Microprocesador 80386DX

Modelo de Programación de 8086 → Pentium 4

• Modo Real: Compatible con el 8086

Page 8: Microprocesador 80386DX

Segmentación de Memoria

• Segmentos de 64KB en el espacio de 1MB• CS: segmento de código

SS: segmento de pila DS: segmento de datos ES: segmento extra de datos FS: segmento de datos F GS: segmento de datos G

• Los segmentos pueden ser adyacentes, disjuntos y superpuestos.

• Direcciones Base de Segmentos : se recomienda un múltiplo de 4H.

Page 9: Microprocesador 80386DX

Puntero de Instrucciones y registros de propósito general

Puntero IP• IP 16-bit en Modo Real

– Dirección de Próxima Instrucción : CS:IP

Registros de Propósito General (Data Registers)

Acumulador (A): Ajuste ASCII, ......

Base (B) : tablas look-up

Count (C): operaciones loop, repetir operaciones string, shift/rotate

Data (D): indirect I/O, I/O string, Multi, Divide

EAX

AX

AH AL

EBX

ECX

EDX

Page 10: Microprocesador 80386DX

Registros de Propósito General

Page 11: Microprocesador 80386DX

Punteros y Registros Indices• Dos registros indices (ESI, EDI) y dos punteros (EBP, ESP);

• En general guardan “offsets” de direcciones (16-bit modo real: 64 KB)• ESP(extended stack pointer) y EBP(extended base pointer)

– Combinados con el registro SS producen direcciones físicas de memoria: SS:SP, SS:BP.

– TOS (top of stack) : SS:SP– BP : un “offset” respecto de SS.

• ESI (extended source index register) y EDI (extended destination index register)– Combinan automaticamente con el registro de datos DS.

Page 12: Microprocesador 80386DX

• Es un registro de 32 bits. Pentium 4 define18 banderas.

• En modo real solo 9 banderas se encuentran activas y se muestran a continuación:

Registro de Banderas

Page 13: Microprocesador 80386DX

Registro de Banderas

• Bandera de acarreo (CF) : enciende con carry-out, borrow-in• Bandera de paridad (PF): enciende con paridad par• Bandera acarreo auxiliar (AF): enciende con acarreo desde “nibble” bajo• Bandera cero (ZF): enciende con resultado cero aritmético o lógico• Bandera de signo (SF): “0” positivo “1” negativo• Bandera de sobrecarga (OF): enciende con resultado con signo fuera de

rango• Bandera de “trampa” (TF): TF=1 habilita modo “paso a paso”• Bandera de interrupción (IF): IF=1 habilita entrada INTR• Bandera de dirección (DF): Con DF=1 las operaciones “string”(cadena

de caracteres) automáticamente decrementan el correspondiente puntero. Con DF=0 incrementan.

Page 14: Microprocesador 80386DX

Generando la Dirección Física de Memoria en Modo Real

• Dirección física en modo real 20 bits.Type of Reference Segment Used

Register UsedDefault Selection Rule

Instructions Code SegmentCS register

Automatic with instruction fetch

Stack Stack SegmentSS register

All stack pushes and pops. Anymemory reference which usesESP or EBP ad a base register.

Local Data Data SegmentDS register

All data references except whenrelative to stack or string desti-nation

Destination String E-segmentES register

Destination of string instrs

Segmet register referencesfor memory accesses

Page 15: Microprocesador 80386DX

Ejemplo: cálculo de dirección física en modo real

1 2 3 4

0 0 2 2

0 0 2 2

1 2 3 4 0 0

1 2 3 6 2

Segmento Base

“Offset”

Dirección Lógica

Dirección Física

Page 16: Microprocesador 80386DX

– El prefijo para cambio de segmentos se puede agregar a casi cualquier instrucción en cualquier modo de direccionamiento de la memoria, permite al programador cambiar el segmento implícito.

– variables, fuentes de cadenas : implícito DS; seg alterno : ES, FS, GS, SS, CS

– Destino de cadenas : ES: seg alterno ninguno– BP usado como registro base: implícito SS; seg

alterno: ES. FS, GS, DS, CS– BX usado como registro base: implícito DS; seg

alterno: ES, FS, GS, SS, CS

Prefijo Para Cambio De Segmentos

Page 17: Microprocesador 80386DX

Ejemplos

Page 18: Microprocesador 80386DX

Stack• Instrucciones Call, Return, Push y Pop usan la pila.• En modo real, el stack es de tamaño 64K• A continuación se muestra la estructura del stack

Page 19: Microprocesador 80386DX

Espacio de direcciones entrada/salida en modo real

• Es un espacio de direcciones separado del espacio de direcciones de memoria (entrada / salida aislada)

• 64KB espacio de direcciones de E/S• 0000H → FFFFH• Direccionamiento Indirecto: Usa Registro DX• Página 0 : 0000H hasta 00FFH --> direccionamiento

directo

Page 20: Microprocesador 80386DX

Espacio de direcciones entrada/salida en modo real