Post on 02-Feb-2016
description
Arquitectura del 8086
Organización del Computador
Organizacion del Computador 2012 Docente Laura Almada
Características generales
Organizacion del Computador 2012 Docente Laura Almada
Hoja de datos del 8088
Organizacion del Computador 2012 Docente Laura Almada
Los procesadores previos al 8086, estaban
limitados en su desempeño por la
necesidad de realizar los dos pasos
principales de ejecución del procesador:
Fetch/Execute, en forma secuencial. Es
decir, no se puede ejecutar una instrucción
hasta que se traiga de memoria (Fetch); y
no podían traerse instrucciones de memoria
mientras ejecutaba una instrucción, pues el
procesador estaba ocupado.
Organizacion del Computador 2012 Docente Laura Almada
Pipeline del Fetch/Execute
• Intel desarrolló la arquitectura en pipeline del Fetch/Execute, en la cual se divide la tarea en dos secciones:
una encargada del Fetch (BIU)
otra del Execute (EU).
– De esta manera, existen circuitos separados para cada función, los cuales trabajan en paralelo.
– El proceso aún es secuencial,pero solo se desperdicia tiempo en el Fetch.
– A partir de ahí, Fetch va adelante del Execute, y trae instrucciones al procesador mientras este ejecuta las anteriores.
Organizacion del Computador 2012 Docente Laura Almada
Diagrama en bloques del micro 8086/8088 Organizacion del Computador 2012
Docente Laura Almada
La unidad de ejecución (EU)
Realiza las operaciones aritmético/ lógicas,
además de proporcionar las direcciones lógicas a
la unidad de interfaz con el Bus
Tiene :
• una unidad aritmética lógica (ALU) de 16 bits
• un registro de indicadores o banderas (Flags)
• un conjunto de registros de propósito general.
Organizacion del Computador 2012 Docente Laura Almada
ALU
• La unidad aritmético-lógica se encarga de las operaciones arit/log con los datos que recibe siguiendo ordenes de la Unidad de Control.
Realiza
• Operaciones +,-,*,/
• Operaciones lógicas and, or, xor ,not
• Operaciones de rotación y desplazamiento
• Operaciones de transformación de operando como extensión de signo
Organizacion del Computador 2012 Docente Laura Almada
Registro de Flags El registro de Flags contiene 6 banderas de estado (que la EU
manipula para indicar el estado del resultado de una operación
lógica o aritmética) y 3 banderas de control que se pueden
manipular por los programas para alterar las operaciones del
procesador .
–Bit 0-Carry Flag :es la bandera de carry.se pone en 1 cuando
hay acarreo en una op.aritmética.
–Bit1 :no usado
–Bit2:Parity Flag : en 1 cuando hay un par de bits activos
Organizacion del Computador 2012 Docente Laura Almada
– Bit 3:no usado
– Bit 4:AuxiliarFlag:se pone en 1 cuando se hacen ajustes tras una operación BCD
– Bit5 :no usado
– Bit6-ZeroFlag:indica si el resultado es cero o comparación con operadores iguales.
– Bit7-Sign Flag: indica si el resultado de una operación es negativo o comparación menor.
– Bit8-Trap Flag: se usa en depuración de código.
– Bit9-Interrup Flag: en 1 se permite la generación de interrupciones de hardware, como por ejemplo la del teclado.
Organizacion del Computador 2012 Docente Laura Almada
–Bit 10-Direction Flag: indica a la CPU hacia dónde se desplazan los punteros relativos en
operaciones de loop decadenas de datos. –Bit11-Overflow Flag:indicaca si existe desbirde
aritmético –Bit 12 al 15 :no usados
Organizacion del Computador 2012 Docente Laura Almada
Registros de uso General Son de 16 bits permiten la realización de operaciones de tipo
byte, están divididos en sub-registros que se pueden usar independientemente.
• Ax(registro acumulador):usado en operaciones aritméticas como primer operando y también como registro de propósito gral a disposición del programador.
• Bx(registro base):usado para indicar posiciones de memoria u offset
• Cx(registro contador):se usa como contador en operaciones repetitivas o bucles.
• Dx(registro dato):se usa como auxiliar en operaciones matemáticas y como contenedor a la hora de usar instrucciones de comunicación de puertos.
Organizacion del Computador 2012 Docente Laura Almada
Punteros índice
• SI = Índice fuente (source index).Utilizado como registro de índice en ciertos modos de direccionamiento indirecto, también se emplea para guardar un valor de desplazamiento en operaciones de cadenas.
• DI = Índice destino (destination index). Se usa en determinados modos de direccionamiento indirecto y para almacenar un desplazamiento en operaciones con cadenas.
Organizacion del Computador 2012 Docente Laura Almada
La Unidad de Interfase con el Bus (BIU)
• Contiene registros de segmento para trabajar en y con la memoria
• Tiene una cola de pre-búsqueda • Tiene el generador de direcciones físicas
que traduce las direcciones lógicas a direcciones físicas de la memoria con ayuda de los registros de segmento DS, SS, ES, CS e IP.
• Contiene también al controlador de BUS
Organizacion del Computador 2012 Docente Laura Almada
Registros de segmento •Definen áreas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086. Estas áreas pueden traslaparse total o parcialmente. No es posible acceder a una posición de memoria no definida por algún segmento: si es preciso, habrá de moverse alguno.
•CS = Registro de segmento de código (code segment). Contiene la dirección del segmento con las instrucciones del programa.
Los programas de más de 64 Kb requieren cambiar CS periódicamente.
• DS = Registro de segmento de datos (data segment). Segmento del área de datos del programa.
• SS = Registro de segmento de pila (stack segment). Segmento de pila.
• ES = Registro de segmento extra (extra segment). Segmento de ampliación para zona de datos.
Es extraordinariamente útil actuando en conjunción con DS: con ambos se puede definir dos zonas de 64 Kb, tan alejadas como se desee en el espacio de direcciones, entre las que se pueden intercambiar datos
Organizacion del Computador 2012 Docente Laura Almada
Punteros de pila
• SP = Puntero de pila (stack pointer).Apunta al inicio de la pila. Utilizado en las instrucciones de manejo de la pila.
• BP = Puntero base (base pointer).Es un puntero de base, que apunta a una zona dentro de la pila dedicada al almacenamiento de datos (variables locales y parámetros de las funciones en los programas compilados).
• IP = Puntero de instrucción (instruction pointer). Marca el desplazamiento de la instrucción en curso dentro del segmento de código. Es automáticamente modificado con la lectura de una instrucción.
Organizacion del Computador 2012 Docente Laura Almada
Cola de instrucciones
• El BIU trabaja en paralelo con el EU y requieren un mecanismo para comunicarse.
• La EU obtiene instrucciones que la BIU almacena en la cola de prebúsqueda en el mismo orden en que fueron colocadas allí,y puede ejecutarlas secuencialmente sin importar en qué paso de la obtención de la instrucción esté la BIU. Cuando el bus está desocupado, la cola se carga con las próximas instrucciones.
Organizacion del Computador 2012 Docente Laura Almada
Unidad de control
La unidad de control controla el funcionamiento de la CPU: controla las transferencias de datos desde hacia la CPU y controla la ALU. Sus funciones son: • Generar la secuencia de estados del procesador. • Decodificar las instrucciones, determinando así los pasos para
su ejecución.
• Para cada instrucción hay un único código que ejecutará esa instrucción.
• La unidad de control acepta la instrucción y genera las señales de control necesarias para que la instrucción se ejecute.
Organizacion del Computador 2012
Docente Laura Almada
Generador de direcciones físicas
• Como las direcciones son de 20 bits, y los registros que nos permiten accederas son de 16, se requiere de 2 registros para que en combinación formen la dirección.
• Esta combinación está basada en la arquitectura segmentada que veremos más adelante. La función del generador de direcciones físicas consiste en realizar esa combinación, para lo cual contiene la circuitería necesaria para calcular la fórmula:
• Dirección Física = Segmento * 0010h + Desplazamiento
Organizacion del Computador 2012 Docente Laura Almada
• Para convertir una dirección lógica en una dirección física el BIU corre el valor del registro de segmento 4 posiciones a la izquierda (que es equivalente a multiplicar por 16h) y suma el valor del offset para obtener un valor de 20 bits necesarios.
0000
4 bits Dirección de segmento
Dirección efectiva, lógica u offset
Dirección física
EL REGISTRO DE SEGMENTO SE DESPLAZA 4 BITS HACIA LA IZQUIERDA (MULTIPLICACIÓN x16)
20 BITS Organizacion del Computador 2012
Docente Laura Almada