Вы находитесь на странице: 1из 44

 Al igual que un procesador VLIW es un procesador segmentado que puede procesar

mas de una instrucción en sus etapas


 Las etapas típicas son muy similares a las de otro procesador segmentado
1. E. Captación de instrucciones(IF), es capaz de leer varias instrucciones por ciclo
2. Las instrucciones pasan ordenadamente a la etapa de Decodificación(ID).
3. Las instrucciones decodificadas deben esperar hasta que este listos los operandos y
unidades funcionales para ellos se almacenan en una serie de estructuras(buffers de
renombramiento y reordenamiento, ventana de instrucciones, estaciones de reserva)
4. En la Etapa de Emisión(ISS) se determina que instrucciones pasan a ser ejecutadas
si se tienen disponibles los operandos y la unidad funcional
5. La Etapa de Ejecución(EX) se implementa a través de distintas unidades funcionales
6. El numero de unidades de procesamiento será el numero máximo de instrucciones
que puedan ser ejecutadas al mismo tiempo
7. Etapa de escritura(WB) donde se almacenan los resultados en el banco de registros
del procesador
Figura 3.4 una primera aproximación a las etapas del cauce de un
procesador superescalar
• En un procesador superescalar las instrucciones se captan y decodifican en orden
• El orden en que se ejecutan las instrucciones y cambian los registros y la memoria
puede no coincidir con el orden de las instrucciones en el código
• Se aprovecha mas el paralelismo entre instrucciones y el paralelismo disponible
en el procesador
• El procesador Superescalar debe ser capaz de detectar el paralelismo entre
instrucciones que existe en el dodigo y permitir que los recursos se usen de forma
eficiente
• Ahora se ilustran diferencias entre la emisión ordenada y desordenada

Figura 3.5 ordenada y


desordenada
[1] add r4,r1,r2 (2)
[2] mult r5,r1,r5 (5)
[3] sub r6,r5,r2 (2)
[4] sub r5,r4,r3 (2)
Se plantean los problemas en las distintas etapas de un procesador superescalar y se describen
las principales estrategias para resolverlas

1. Decodificación paralela y predecodificacion


2. Emisión paralela de instrucción UF
3. Ejecución paralela de las operaciones codificadas en las instrucciones en las distintas
Unidades funcionales
4. Finalización del procesamiento de las instrucciones
5. Detección y resolución de dependencias
6. Mantenimiento de las consistencias secuenciales mediante desacoplo de la ejecución
de la instrucción y escritura de resultado.
3.3.1 DECODIFICACIÓN PARALELA Y
PREDECODIFICACION
 Un procesador superescalar debe ser capaz de decodificar varias
instrucciones a la vez por ciclo
 Pero no es posible comprobar al mismo tiempo la dependencia entre
operandos de las instrucciones codificadas e instrucciones que ya se están
ejecutando
 En el procesador superescalar existen unidades de decodificación (ID) y de
emisión de instrucciones (ISS) separadas
• La unidad de decodificación toma las instrucciones de la cola donde han sido
almacenadas por la etapa (IF)
• Luego son puestas en una estructura de buffers donde la unidad (ISS)
determinara si la instrucción puede pasar a ejecutarse
 Dada la cantidad de instrucciones que hay que codificar, pueden requerirse
varias etapas para la fase de decodificación.
se implementa una etapa de decodificación entre el cache de instrucciones del
segundo nivel y el cache del primer nivel (ETAPA DE PRECODIFICACION)
ETAPA DE PRECODIFICACION
Se encarga de determinar el tipo de instrucción y con ello facilita la identificación
posterior de los recursos.
1. Instrucción salto, Su procesamiento puede iniciar antes de que pase por la
etapa de decodificación
2. Unidad funcional, emisión mas rápida a los cauces de enteros o de unidades
de coma flotante
3. Referencia a memoria, también se podría avanzar en su procesamiento

En esta etapa se añade una cantidad de bits a la instrucción


o Arquitectura RISC se añade 4 y 7 bits.
o Arquitectura CISC algunos más, K5 se añade 5 bits.

Se incrementa el ancho de banda necesario hacia la cache L1.


Tabla 3.3 Uso de bits de predecodificaciòn en distintos procesadores

Procesador(año) Numero de bits de predecodificaciòn

PA 7200 (1994) 5

PA 7200 (1994) 5

PowerPC (1996) 7

UltraSparc(1995) 4

AMD k5(1995) 5

R100000(1995) 4

Tabla 3.4 Evolucion hacia el uso de Predecodificacion


Sin Predecodificacion Con Predecodificacion
ador(año) Instrucciones emitidas por ciclo Procesador(año) Instrucciones emitidas por ciclo
0 (1992) 2 PA 7200 (1994) 2
PA 8000 (1996) 4
PC 601 (1993) 4 PowerPC 620(1996) 4
PC 602 (1994) 3
(1994) 4 R10000(1995) 4
parc(1991) 3 UltraSparc(1995) 4
9000(1995) 4 k5(1995) 4
3.3.2 EMISIÓN DE
INSTRUCCIONES
EMISIÓN DE INSTRUCCIONES

• Una vez captadas las instrucciones se almacenan en la cola de instrucciones luego de ser codificadas
se escriben en una serie de estructura cuyas características y funciones se describirán a lo largo de la
sección
• Una de estas estructuras es la ventana de instrucciones donde se almacenan las instrucciones
codificadas a la espera de ser emitidas a las unidades funcionales, para ser emitida se debe tener
tanto los operandos como la unidad funcional
• La etapa de emisión se encargara de determinar que instrucciones pasaran a las unidades
funcionales, esto se hace a través de una política para seleccionar instrucciones
ESTRUCTURA DE LÍNEAS DE LA VENTANA DE INSTRUCCIONES
USADA POR LA ETAPA DE EMISIÓN
1. El primer campo indica la operación que se ha decodificado y se almacena en esa línea de la
ventana de instrucciones (codop)
2. Dest indica donde se escribirá el resultado después de ejecutarse (el lugar no tiene que ver
con el registro final de ese dato sino a una zona temporal de almacenamiento)
3. En la figura se tiene la restricción que cada instrucción tiene como máximo 2 operandos, por lo
tanto aparecen 2 campos, operando 1 y operando 2 y asociados a ellos habrá un campo
denominado ok para cada uno
4. Cuando ok1 este en el valor de 1 significa que el valor de operando 1 es precisamente el
operando 1 si en ok1 estuviera en 0 significaría que en operando1 esta el código
correspondiente a la unidad funcional, almacenamiento etc que proporcionara ese valor
5. Solo cuando todos los campo ok estén en 1 es cuando se emitirá la instrucción
6. A veces también existen registros para el tipo de dato que indican si el registro al que hacen
referencia con ok = 0 es un registro para enteros, coma flotante, dato inmediato
POLÍTICA DE EMISIÓN
LAS POLÍTICAS DE EMISIÓN PUEDEN CLASIFICARSE ATENDIENDO AL ORDEN QUE SE EMITEN LAS
INSTRUCCIONES Y AL ALINEAMIENTO DE LA VENTANA DE INSTRUCCIONES
CLASIFICACIÓN

Alineamiento Orden

En orden
Alineada
• Con bloqueo

No alineada Desordenada
ALINEADA:
NO PUEDEN INTRODUCIRSE NUEVAS INSTRUCCIONES EN LA VENTANA DE
INSTRUCCIONES HASTA QUE ESTA NO ESTE TOTALMENTE VACÍA. ES DECIR,
HASTA QUE NO HAYA EMITIDO TODAS LAS INSTRUCCIONES QUE EN UN CICLO
ANTERIOR SE INTRODUJERON EN LA VENTANA DE INSTRUCCIONES.
NO ALINEADA:
MIENTRAS QUE EXISTA UN ESPACIO EN LA VENTANA, SE PUEDEN IR
INTRODUCIENDO NUEVAS INSTRUCCIONES EMITIDAS.
EN ORDEN :
SE RESPETA EL ORDEN EN QUE LAS INSTRUCCIONES SE HAN IDO
INTRODUCIENDO EN LA VENTANA DE INSTRUCCIONES. ORDEN EN EL QUE LAS
INSTRUCCIONES SE HAN IDO DECODIFICANDO, COINCIDE CON EL ORDEN DE
LAS INSTRUCCIONES EN EL PROGRAMA.
SI UNA INSTRUCCIÓN DE LA VENTANA DE INSTRUCCIONES NO PUEDE
EMITIRSE, LAS INSTRUCCIONES QUE LE SIGUEN TAMPOCO PODRÁN EMITIRSE.
EXISTE UN BLOQUEO ENTRE INSTRUCCIONES.
DESORDENADA:
NO EXISTE BLOQUEO, YA QUE PUEDEN EMITIRSE TODAS LAS INSTRUCCIONES
QUE DISPONGAN DE SUS OPERANDOS Y DE UNA UNIDAD FUNCIONAL DEL TIPO
APROPIADO.
CARACTERÍSTICAS DE LA EMISIÓN DE INSTRUCCIONES PARA ALGUNOS
PROCESADORES
EJEMPLO : EMISIÓN ORDENADA
EJEMPLO : EMISIÓN DESORDENADA
EJEMPLO : EMISIÓN ORDENADA
EJEMPLO : EMISIÓN DESORDENADA
ESTACIONES DE RESERVA

• EN MUCHAS MICROARQUITECTURAS SUPERESCALARES ES FRECUENTE QUE


LA VENTANA DE INSTRUCCIONES SE DISTRIBUYA EN VARIAS ESTRUCTURAS
QUE RECIBEN EL NOMBRE DE ESTACIONES DE RESERVA
• CONSISTE EN QUE, EN LUGAR DE EXISTIR UNA ÚNICA VENTANA DESDE DONDE
SE EMITEN LAS INSTRUCCIONES A LAS DISTINTAS UNIDADES FUNCIONALES,
EXISTE UNA ESTRUCTURA, SIMILAR A LA VENTANA, PERO ESPECIFICA PARA
CADA UNIDAD FUNCIONAL O PARA UN CONJUNTO HOMOGÉNEO DE UNIDADES
FUNCIONALES.
ESTACIONES DE RESERVA
ESTACIONES DE RESERVA: EJEMPLO DE
FUNCIONAMIENTO
ESTACIONES DE RESERVA
• CADA UNIDAD FUNCIONAL DISPONE DE UNA ESTACIÓN DE RESERVA O
COMPARTE UNA ESTACIÓN DE RESERVA CON OTRAS UNIDADES.
• SI CADA UNIDAD FUNCIONAL TIENES SU PROPIA ESTACIÓN DE RESERVA,
NO HACE FALTA GUARDAR INFORMACIÓN DEL TIPO DE OPERACIÓN A
REALIZAR Y SE AHORRAN ALGUNOS BITS EN CADA LÍNEA DE LAS
ESTACIONES DE RESERVAS, SIN EMBARGO ESTO INCREMENTA LA
COMPLEJIDAD DE LAS ESTRUCTURAS DE BUSES NECESARIAS PARA
COMUNICAR DICHAS ESTACIONES CON LA SALIDA DE LAS RESTANTES UF
U OTRAS ESTRUCTURAS. POR OTRO LADO CON ESTACIONES DE RESERVA
SE TIENEN MENOS LÍNEAS Y SU GESTIÓN NECESITA UN HARDWARE MENOS
COSTOSO.
ORGANIZACIÓN DE LAS
ESTACIONES DE RESERVA

ESTACIONES DE ESTACIONES DE ESTACIONES DE


RESERVA RESERVA RESERVA
INDIVIDUALES COMPARTIDAS CENTRALIZADA
-AMD KS -R1000 -INTEL PG
ENVIO DE INSTRUCCIONES:
• DESDE LA ESTACIÓN DE RESERVA, LAS INSTRUCCIONES SE
ENVÍAN A LA UNIDAD FUNCIONAL CUANDO ESTA PUEDA EJECUTAR
NUEVAS INSTRUCCIONES. PARA EL ENVIÓ DE INSTRUCCIONES SE
APLICAN ESTAS POLÍTICAS
• REGLAS DE SELECCIÓN: SE DETERMINA LAS INSTRUCCIONES QUE
PUEDEN ENVIARSE, LAS INSTRUCCIONES EJECUTABLES.
• REGLAS DE ARBITRAJE: SI EXISTEN VARIAS INSTRUCCIONES
EJECUTABLES, SE ENVÍA LA INSTRUCCIÓN MAS ANTIGUA ENTRE
LAS EJECUTABLES.
ENVIO DE INSTRUCCIONES:
• ORDEN DE ENVIO: ORDENADAS(LAS INSTRUCCIONES
EJECUTABLES BLOQUEAN A LAS EJECUTABLES), DESORDENADAS,
O PARCIALMENTE ORDENADAS(SE PRODUCE BLOQUEO SOLO
ENTRE DETERMINADOS TIPOS DE INSTRUCCIONES) Y
DESORDENADA( NO EXISTE BLOQUEO).
• VELOCIDAD DE ENVIO: SI UNA ESTACIÓN DE RESERVA SOLO ENVÍA
INSTRUCCIONES A UNA ÚNICA UNIDAD FUNCIONAL PUEDE
ENVIAR UNA INSTRUCCIÓN POR CICLO COMO MÁXIMO. PERO SI
ES COMPARTIDA POR VARIAS UNIDADES FUNCIONALES PUEDE
DISEÑARSE PARA ENVIAR VARIAS INSTRUCCIONES.
CAPTACION Y COMPROBACION
DE VALIDEZ DE OPERANDOS
CUANDO SE EMPLEAN ESTACIONES DE RESERVA EXISTEN DOS
POLÍTICAS PARA CAPTAR OPERANDOS EN FUNCIÓN DEL
MOMENTO EN QUE SE REALIZARA A CABO DICHA CAPTACIÓN.

CAPTACIÓN EN LA EMISION
CAPTACIÓN EN EL ENVIO
 SI LA CAPTACIÓN SE PRODUCE EN LA EMISIÓN EL ENVIÓ ES MAS RÁPIDO.
 CADA UNO DE LOS REGISTRO DEL BANCO DE REGISTROS TIENE UN BIT ADICIONAL
QUE RECIBE EL NOMBRE DE BIT DE VALIDEZ, EL CUAL PERMITE INDICAR SI EL DATO
ALMACENADO EN DICHO REGISTRO ESTA DISPONIBLE.

1 DISPONIBLE

0 NO DISPONIBLE
CAPTACIÓN EN LA EMISIÓN
• SE ACCEDE A LOS OPERANDOS EN EL MOMENTO QUE SE REALIZA
LA EMISIÓN A LAS ESTACIONES DE RESERVA.
• LAS LÍNEAS DE LAS ESTACIONES DE RESERVA DEBEN TENER
ESPACIO SUFICIENTE PARA ALMACENAR LOS DATOS EN LOS
CORRESPONDIENTES CAMPOS DE OPERANDO.
• EL OPERANDO SE LEE SI ESTA A 1 EL BIT DE VALIDEZ, CASO
CONTRARIO, EN LUGAR DEL DATO DEL REGISTRO LEÍDO, EN LA
ESTACIÓN DE RESERVA SE GUARDA EL NUMERO DE REGISTRO
Politica de Captacion de operandos en la emision
CAPTACIÓN EN EL ENVIÓ
• SE ACCEDE A LOS OPERANDOS EN EL MOMENTO EN QUE SE ENVÍAN LAS
INSTRUCCIONES A LA UNIDAD FUNCIONAL.
• EN LOS CAMPOS DE OPERANDO SE GUARDA LA DIRECCIÓN
CORRESPONDIENTE DEL REGISTRO DESDE DONDE SE TOMA EL OPERANDO.
• EN LA ESTACIÓN DE RESERVA NO SE INCLUYEN CAMPOS DE VALIDEZ DE LOS
OPERANDOS.
• LAS INSTRUCCIONES ESTÁN PENDIENTES DE ENVIARSE A LA ESTACIÓN DE
RESERVA COMPRUEBAN EN EL BANCO DE REGISTROS LOS BITS DE VALIDEZ
DE LOS REGISTROS CORRESPONDIENTES A SUS OPERANDOS.
Política de Captación de operandos en la emisión
CAPTACIÓN EN EL ENVIÓ

• SI EL BIT DE VALIDEZ ESTA EN 1 SE ENVÍA LA INSTRUCCIÓN Y SE COLOCA A


0 EL BIT DE VALIDEZ DEL REGISTRO DONDE SE ESCRIBIRÁ EL RESULTADO.
EJEMPLO DEL USO DE
ESTACIONES DE RESERVA
• SE TIENE LAS SIGUIENTES INSTRUCCIONES
Ciclo i: mul r3, r1, r2
Ciclo i+1: add r5, r2,r3
add r6, r3, r4

• LA MULTIPLICACIÓN SE EJECUTA EN CINCO CICLOS

Вам также может понравиться