Académique Documents
Professionnel Documents
Culture Documents
Arquitectura en pipeline
Los procesadores previos al 8086, estaban limitados en su desempeo por la
necesidad de realizar los dos pasos principales de ejecucin del procesador:
Fetch/Execute, en forma secuencial. Es decir, no se puede ejecutar una
instruccin hasta que se traiga de memoria (Fetch); y no podan traerse
instrucciones de memoria mientras ejecutaba una instruccin, pues el
procesador estaba ocupado.
Resumiendo, un alto porcentaje del tiempo, el procesador estaba ocupado
haciendo Fetch, cuando su funcin debiera ser ejecutar las instrucciones. La
capacidad de ejecutar instrucciones slo se ocupaba en un bajo porcentaje.
1. Registros de segmentos
Estos registros son localidades de 16 bits dedicados a las funciones de acceso
a memoria. Se decidi, como se describir ms adelante al analizar el
mecanismo de segmentacin, dividir el Megabyte de memoria al que puede accesar
un 8086. Los registros de segmentos nos van a indicar qu seccin de memoria
seleccionamos.
Existen 4 registros de segmentos:
DS: Data Segment (Segmento de Datos)
Este registro selecciona una seccin de 64 Kb. que se dedica generalmente a
colocar en ella nuestras variables, por lo cual toma su nombre: seccin de
memoria dedicada a datos.
CS: Code Segment (Segmento de Cdigo)
Este registro selecciona el rea de 64 Kb. que generalmente dedicamos al
cdigo. En este caso, el CPU (especficamente, el BIU), siempre toma las
instrucciones de esta regin de memoria; por lo que cuando requerimos ms de
64 Kb. de cdigo (instrucciones), este registro tendr que moverse, tomando
distintos valores segn recorremos distintas regiones de memoria.
SS: Stack Segment (Segmento de Pila)
Este registro selecciona la regin de 64 Kb. que va a contener la pila del
sistema. Como su nombre lo indica, tendremos una estructura de datos, con
poltica LIFO (Last In, First Out = El ltimo elemento en entrar, es el
primero en salir), con instrucciones bsicas PUSH y POP para su manejo. Esta
estructura es usada por los programas de aplicacin, pero tambin por el
procesador para el control de instrucciones que lo requieren, tales como las
llamadas a subrutinas yla atencin de interrupciones.
2. Cola de prefetch
Ya que el BIU trabaja en paralelo con el EU, requieren de un mecanismo para
comunicarse. Esto se logra con una cola, estructura de datos que permite que
el EU obtenga instrucciones para ejecutar en el mismo orden en que el BIU las
coloc en la misma.
As, el EU puede solicitar instrucciones en cuanto est listo para ejecutar la
siguiente, sin importar en qu paso est el BIU en la obtencin de
instrucciones; y viceversa, el BIU puede continuar su bsqueda de
instrucciones, depositando la que acaba de obtener en la cola, sin importar si
el EU en este momento est ocupado ejecutando.
4. Bus C
Este bus interno del procesador permite que la informacin fluya entre la
interfaz con la memoria y los distintos elementos del BIU. Se requiere un bus
independiente, para que la informacin que usa el EU no se interfiera con la
que est procesando el BIU.
Unidad de Control
Es la seccin del procesador que contiene la lgica de funcionamiento del
mismo; es decir, esta circuitera gobierna el comportamiento de los distintos
elementos en el procesador, coordinando los procesos de Fetch y Execute, as
como las distintas microoperaciones necesarias para la ejecucin. Por tanto,
tiene dos funciones principales:
Generar la secuencia de estados del procesador, lo que logra gracias a la
ejecucin del microcdigo.
Decodificar las instrucciones, determinando as los pasos para su ejcucin
del
Sistema
Registros de ndice
Estos registros, de 16 bits, son muy similares a los de propsito general,
pero no tienen todas las capacidades de los mismos; en particular:
Registro de Banderas
Este es un registro de 16 bits, usados como banderas. Esto quiere decir que
cada uno de los bits seala un evento dentro del procesador; cuando el bit
tiene un valor de 0, el evento no ocurri (falso); y cuando tiene un valor de
1, el evento ocurri (verdadero). Entre las banderas ms importantes
mencionaremos:
ZF: Bandera de resultado 0
Bus A
Este bus es el camino por el que viajan los datos dentro de la unidad de
ejecucin, principalmente entre los registros y el ALU.
Basado-indexado:
[BX+SI],
[BX+DI],
[BP+SI],
[BX+DI].
Basado-indexado
con
desplazamiento:
Desplazamiento[BX+SI],
Desplazamiento[BX+DI], Desplazamiento [BP+SI], Desplazamiento [BX+DI]
Directo:
[Desplazamiento].