Microprocesador 80386DX
-
Upload
gbermeo -
Category
Technology
-
view
5.084 -
download
3
Transcript of Microprocesador 80386DX
Arquitectura Interna (cont.)
MICP 80386DX: Arquitectura Interna
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”.
• 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
– 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
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
Modelo de Programación de 8086 → Pentium 4
• Modo Real: Compatible con el 8086
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.
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
Registros de Propósito General
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.
• 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
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.
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
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
– 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
Ejemplos
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
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
Espacio de direcciones entrada/salida en modo real