Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microprocesador 80386DX

5,390 views

Published on

Published in: Technology
  • Be the first to comment

Microprocesador 80386DX

  1. 1. Arquitectura Interna (cont.)
  2. 2. MICP 80386DX: Arquitectura Interna
  3. 3. Microprocesador 80386DX <ul><li>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 </li></ul><ul><li>Esto permite la ejecución de instrucciones mediante la técnica de tuberías (pipeline) conocido también como “procesamiento en paralelo”. </li></ul>
  4. 4. <ul><li>Caracteristicas </li></ul><ul><ul><li>Microprocesador de 32 bits </li></ul></ul><ul><ul><ul><li>Tipo de Datos de 8, 16, 32 bits </li></ul></ul></ul><ul><ul><ul><li>8 Registros de Propósito General GPR (32-bit) </li></ul></ul></ul><ul><ul><li>Espacio de Direcciones Grande </li></ul></ul><ul><ul><ul><li>4 GB de Memoria Física </li></ul></ul></ul><ul><ul><ul><li>4 GB Tamaño Máximo de Segmento </li></ul></ul></ul><ul><ul><ul><li>NOTA: 1MB ≡ 1024 KB, 1GB ≡ 1024MB, 1TB ≡ 1024GB. </li></ul></ul></ul>Microprocesador 80386DX
  5. 5. <ul><ul><li>Unidad de Página+Unidad de Segmentación </li></ul></ul><ul><ul><ul><li>Proveen el Servicio Para Administrar Memoria </li></ul></ul></ul><ul><ul><ul><li>Provee 4 Niveles de Protección durante ciclos de bus </li></ul></ul></ul><ul><ul><ul><li>100% compatible con 80286 </li></ul></ul></ul><ul><li>Mas Características </li></ul><ul><ul><li>Modo Real, Modo Protegido, Modo Virtual 8086 </li></ul></ul><ul><ul><li>Optimizado para un mejor rendimiento </li></ul></ul><ul><ul><ul><li>Ejecución de Instrucciones mediante tuberías </li></ul></ul></ul><ul><ul><ul><li>Integra en el chip cachés para conversión de direcciones </li></ul></ul></ul><ul><ul><ul><li>20, 25, and 33 MHz clock </li></ul></ul></ul><ul><ul><li>132 pin “Grid Array Package” </li></ul></ul>Microprocesador 80386DX
  6. 6. Espacio de Direcciones de Memoria en Modo Real <ul><li>80386DX en Modo Real: 1MB de memoria externa </li></ul><ul><li>Espacio de Direcciones de Memoria del 8086 ≡ 1MB </li></ul>00000 H 003FF H 00400 H FFFFF H Dedicada (Tabla Vectores de Interrupción) general Puntero IP Segmento
  7. 7. Modelo de Programaci ó n de 8086 -> Pentium 4 <ul><li>Modo Real: Compatible con el 8086 </li></ul>
  8. 8. Segmentación de Memoria <ul><li>Segmentos de 64KB en el espacio de 1MB </li></ul><ul><li>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 </li></ul><ul><li>Los segmentos pueden ser adyacentes, disjuntos y superpuestos. </li></ul><ul><li>Direcciones Base de Segmentos : se recomienda un m ú ltiplo de 4 H . </li></ul>
  9. 9. Puntero de Instrucciones y registros de prop ó sito general <ul><li>Puntero IP </li></ul><ul><li>IP 16-bit en Modo Real </li></ul><ul><ul><li>Dirección de Próxima Instrucción : CS:IP </li></ul></ul><ul><li>Registros de Propósito General (Data Registers) </li></ul>EBX ECX EDX 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
  10. 10. Registros de Propósito General
  11. 11. Punteros y Registros Indices <ul><li>Dos registros indices (ESI, EDI) y dos punteros (EBP, ESP); </li></ul><ul><li>En general guardan “offsets” de direcciones (16-bit modo real: 64 KB) </li></ul><ul><li>ESP(extended stack pointer) y EBP(extended base pointer) </li></ul><ul><ul><li>Combinados con el registro SS producen direcciones físicas de memoria: SS:SP , SS:BP . </li></ul></ul><ul><ul><li>TOS (top of stack) : SS:SP </li></ul></ul><ul><ul><li>BP : un “offset” respecto de SS. </li></ul></ul><ul><li>ESI (extended source index register) y EDI (extended destination index register) </li></ul><ul><ul><li>Combinan automaticamente con el registro de datos DS. </li></ul></ul>
  12. 12. <ul><li>Es un registro de 32 bits. Pentium 4 define18 banderas. </li></ul><ul><li>En modo real solo 9 banderas se encuentran activas y se muestran a continuación: </li></ul>Registro de Banderas
  13. 13. Registro de Banderas <ul><li>Bandera de acarreo (CF) : enciende con carry-out, borrow-in </li></ul><ul><li>Bandera de paridad (PF): enciende con paridad par </li></ul><ul><li>Bandera acarreo auxiliar (AF): enciende con acarreo desde “nibble” bajo </li></ul><ul><li>Bandera cero (ZF): enciende con resultado cero aritmético o lógico </li></ul><ul><li>Bandera de signo (SF): “0” positivo “1” negativo </li></ul><ul><li>Bandera de sobrecarga (OF): enciende con resultado con signo fuera de rango </li></ul><ul><li>Bandera de “trampa” (TF): TF=1 habilita modo “paso a paso” </li></ul><ul><li>Bandera de interrupción (IF): IF=1 habilita entrada INTR </li></ul><ul><li>Bandera de dirección (DF): Con DF=1 las operaciones “string”(cadena de caracteres) automáticamente decrementan el correspondiente puntero. Con DF=0 incrementan. </li></ul>
  14. 14. Generando la Dirección Física de Memoria en Modo Real <ul><li>Direcci ó n f í sica en modo real 20 bits. </li></ul>Segmet register references for memory accesses
  15. 15. 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 6 2 Segmento Base “ Offset” Dirección Lógica Dirección Física 1 2 3 4 0 0
  16. 16. <ul><ul><li>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. </li></ul></ul><ul><ul><li>variables, fuentes de cadenas : impl í cito DS; seg alterno : ES, FS, GS, SS, CS </li></ul></ul><ul><ul><li>Destino de cadenas : ES: seg alterno ninguno </li></ul></ul><ul><ul><li>BP usado como registro base: impl í cito SS; seg alterno: ES. FS, GS, DS, CS </li></ul></ul><ul><ul><li>BX usado como registro base: impl í cito DS; seg alterno: ES, FS, GS, SS, CS </li></ul></ul>Prefijo Para Cambio De Segmentos
  17. 17. Ejemplos
  18. 18. Stack <ul><li>Instrucciones Call, Return, Push y Pop usan la pila. </li></ul><ul><li>En modo real, el stack es de tamaño 64K </li></ul><ul><li>A continuación se muestra la estructura del stack </li></ul>
  19. 19. Espacio de direcciones entrada/salida en modo real <ul><li>Es un espacio de direcciones separado del espacio de direcciones de memoria (entrada / salida aislada) </li></ul><ul><li>64KB espacio de direcciones de E/S </li></ul><ul><li>0000H -> FFFFH </li></ul><ul><li>Direccionamiento Indirecto: Usa Registro DX </li></ul><ul><li>Página 0 : 0000H hasta 00FFH --> direccionamiento directo </li></ul>
  20. 20. Espacio de direcciones entrada/salida en modo real

×