Está en la página 1de 41

TEMA 4: Segmentación de cauce

Objetivos del capítulo


Conocer los principios básicos de la Segmentación de cauce

Riesgos que pueden degradarlas prestaciones y las formas de mitigar sus


efectos

Implicaciones software y hardware en la segmentación de cauce

Influencia en el diseño del repertorio de instrucciones

Conocer los principios básicos de procesadores superescalares

Material complementario en:


Organización de Computadores. C. Hamacher et al. 5ª Edición. McGraw Hill

Estructura de Computadores. Tema 4: Segmentación de Cauce 1


Conceptos básicos Segmentación de Cauce
Aumentar prestaciones:
 Tecnología más rápida
 Reorganización del
hardware :
Segmentación de
cauce
 Duplicación de
hardware: Procesador
superescalar
Fabricación en cadena:
dividir una tarea larga y/o http://www.psa-
peugeot-
difícil en otras más cortas y citroen.com/es/psa_g
fáciles de realizar rupo/visite/index.html

Estructura de Computadores. Tema 4: Segmentación de Cauce 2


Segmentación de cauce
Ejemplo: un procesador segmentado en el que cada
instrucción está compuesta de dos fases, una de
captación (Fetch), y otra de ejecución (Execution)
Fetch Execution Tiempo

(captación) (ejecución) I I I
1 2 3

F E F E F E
1 1 2 2 3 3

(a) Ejecución secuencial

Estructura de Computadores. Tema 4: Segmentación de Cauce 3


Segmentación de cauce

Ejemplo: un procesador segmentado en el que cada


instrucción está compuesta de dos fases, una de
captación (Fetch), y otra de ejecución (Execution)

Tiempo
Ciclo de reloj 1 2 3 4
Buffer entre etapas
Instrucción
B1
I1 F1 E1

Unidad de Unidad de
captación de ejecución I2 F2 E2
instrucciones

I3 F3 E3
(b) Organización del hardware

(c) Ejecución segmentada

Estructura de Computadores. Tema 4: Segmentación de Cauce 4


Segmentación de cauce
Tiempo
Ciclo de reloj 1 2 3 4 5 6 7
Instrucción
I1 F1 D1 E1 W1

I2 F2 D2 E2 W2

I3 F3 D3 E3 W3

I4 F4 D4 E4 W4

(a) Ejecución de instrucciones en cuatro etapas

Buffers entre etapas

D: Decodificación E: Ejecución
F: Captación de instrucción W: Actualización
de instrucción de de resultados
y captación operaciones
B1 de operandos B2 B3

(b) Organización del hardware

Figura 8.2. Cauce de 4 etapas

Estructura de Computadores. Tema 4: Segmentación de Cauce 5


Segmentación de cauce: memoria caché

 Cada etapa del cauce debe completarse en un ciclo


de reloj
 La fase de captación debe acceder a memoria que es
unas 10 veces más lento
 La caché nos permite captar instrucciones
empleando un único ciclo de reloj
 El periodo de reloj se escoge de acuerdo a la etapa
más larga del cauce

Estructura de Computadores. Tema 4: Segmentación de Cauce 6


TEMA 4: Segmentación de cauce
Objetivos del capítulo
Conocer los principios básicos de la Segmentación de cauce

Riesgos que pueden degradarlas prestaciones y las formas de mitigar sus


efectos

Implicaciones software y hardware en la segmentación de cauce

Influencia en el diseño del repertorio de instrucciones

Conocer los principios básicos de procesadores superescalares

Material complementario en:


Organización de Computadores. C. Hamacher et al. 5ª Edición. McGraw Hill

Estructura de Computadores. Tema 4: Segmentación de Cauce 7


Segmentación de cauce: prestaciones

 El incremento del prestaciones es proporcional al


número de etapas
 Existen numerosos problemas que evitan que una etapa
se complete en un ciclo
 Riesgo: cualquier condición que ocasione un atasco
 Tipos de riesgos:
▫ Datos: los operandos no están disponibles (ej: multiplicación)
▫ Instrucciones/control: la instrucción no está disponible (ej:
falló de caché)
▫ Estructurales: dos instrucciones necesitan un mismo recurso
(ej: captación+actualización)

Estructura de Computadores. Tema 4: Segmentación de Cauce 8


Segmentación de cauce: prestaciones

Tiempo
Ciclo de reloj1 2 3 4 5 6 7 8 9
Instrucción

I1 F1 D1 E1 W1

I2 (mul) F2 D2 E2 W2

I3 F3 D3 E3 W3

I4 F4 D4 E4 W4

I5 F5 D5 E5

Figura 8.3. Efecto de la ejecución de una operación con más de un ciclo de reloj

RIESGO DE DATOS
Estructura de Computadores. Tema 4: Segmentación de Cauce 9
Segmentación de cauce: prestaciones

Tiempo
Ciclo de reloj 1 2 3 4 5 6 7 8 9
Instrucción
I1 F1 D1 E1 W1

I2 F2 D2 E2 W2

I3 F3 D3 E3 W3

(a) Etapas de la ejecución de una instrucción en ciclos de reloj sucesivos

Tiempo
Ciclo de reloj 1 2 3 4 5 6 7 8 9
Etapa
F: Captación F1 F2 F2 F2 F2 F3
D: Decodificación D1 idle idle idle D2 D3
E: Ejecución E1 idle idle idle E2 E3
W: Actualización W1 idle idle idle W2 W3

(b) Funciones realizadas por cada etapa del procesador en ciclos de reloj sucesivos

Figura 8.4. Atasco en el cauce causado por un fallo de caché en F2

RIESGO DE CONTROL
Estructura de Computadores. Tema 4: Segmentación de Cauce 10
Segmentación de cauce: prestaciones

Tiempo
Ciclo de reloj1 2 3 4 5 6 7

Instrucción
I1 F1 D1 E1 W1

Load x(r1), I2 F2 D2 E2 M2 W2
r2

I3 F3 D3 E3 W3

I4 F4 D4 E4

I5 F5 D5

Figura 8.5. Efecto de una instrucción de carga en la temporización del cauce

RIESGO ESTRUCTURAL
Estructura de Computadores. Tema 4: Segmentación de Cauce 11
Riesgos de datos
 Definición: situación en la que el cauce sufre un atasco
debido a un retardo en la llegada de datos
 Dependencia entre instrucciones:
▫ las instrucciones independientes pueden ejecutarse
concurrentemente
▫ Las instrucciones dependientes sólo a veces pueden ejecutarse
concurrentemente
independencia

A 5x C resultado siempre correcto


B  20 + C

A=5 Resultado Secuencial Concurrente


dependencia

A 3+A correcto B = 32 B = 32
B  4 xA incorrecto imposible B = 20

Estructura de Computadores. Tema 4: Segmentación de Cauce 12


Riesgos de datos: ejemplo

Mul r2, r3, r4 r4 hace falta en W1 y


Add r5, r4, r6 D2
Tiempo
Ciclo de reloj 1 2 3 4 5 6 7 8 9
Instrucción
I (Mul) F D E W1
1 1 1 1

I2 (Add) F2 D2 D2A E2 W2

I3 F D E W
3 3 3 3

I4 F4 D4 E4 W4

Figura 8.6. Atasco en el cauce ocasionado por la dependencia entre W1 y D2

Estructura de Computadores. Tema 4: Segmentación de Cauce 13


TEMA 4: Segmentación de cauce
Objetivos del capítulo
Conocer los principios básicos de la Segmentación de cauce

Riesgos que pueden degradarlas prestaciones y las formas de mitigar sus


efectos

Implicaciones software y hardware en la segmentación de cauce

Influencia en el diseño del repertorio de instrucciones

Conocer los principios básicos de procesadores superescalares

Material complementario en:


Organización de Computadores. C. Hamacher et al. 5ª Edición. McGraw Hill

Estructura de Computadores. Tema 4: Segmentación de Cauce 14


Riesgos de datos: adelantamiento
Operando 1
Operando 2

SRC1 SRC2

Banco de
registros

ALU

RSLT

Destino

(a) Camino de datos


SRC1,SRC2 RSLT

E: Ejecución W: actualización
(ALU) (banco de registros)

Camino de adelantamiento
(b) Situación de los registros fuente y resultado en el cauce del procesador

Figura 8.7. Adelantamiento de un operando en un procesador segmentado

Estructura de Computadores. Tema 4: Segmentación de Cauce 15


Riesgos de datos: gestión software
 Las dependencias de datos las descubre el hardware al
decodificar las instrucciones.
 Alternativamente podemos dejar que sea el compilador el
que las resuelva:
Mul r2, r3, r4
NOP
NOP
Add r5, r4, r6
 Ventajas:
▫ Hardware más simple
▫ Se pueden reorganizar las instrucciones para realizar trabajo útil
en lugar de añadir NOP
 Inconvenientes:
▫ Aumenta el tamaño del código
▫ Las instrucciones NOP necesarias para una arquitectura pueden
no hacer falta en otras
Estructura de Computadores. Tema 4: Segmentación de Cauce 16
Riesgos de datos: efectos colaterales

 Algunas instrucciones modifican registros no


mencionados explícitamente:
▫ direccionamientos con automodificación
▫ operaciones de pila
▫ afectan al estado del procesador
 Ejemplo:
Add r1, r3  r3 = r3 + r2
Adc r2, r4  r4 = r2 + r4 + acarreo
 Los efectos colaterales aumentan la complejidad del
software o hardware encargado de detectarlos y
corregirlos

Estructura de Computadores. Tema 4: Segmentación de Cauce 17


Riesgos de instrucciones: salto incondicional
 Se producen cuando no está disponible a tiempo una instrucción
(fallo de caché, instrucciones de salto,…)
 Tiempo perdido como consecuencia del salto: penalización de salto
 Importante averiguar la dirección de salto lo antes posible (Fig. 8.9)
Tiempo
Ciclo de reloj 1 2 3 4 5 6
Instrucción
I1 F1 E1

Unidad de ejecución detenida


I2 (salto) F2 E2

I3 F3 X

Ik Fk Ek

Ik+1 Fk+1 Ek+1

Figura 8.8. Ciclo perdido debido a un instrucción de salto

Estructura de Computadores. Tema 4: Segmentación de Cauce 18


Riesgos de instrucciones: salto incondicional
Tiempo
Ciclo de reloj 1 2 3 4 5 6 7 8
I1 F1 D1 E1 W1
I2 (salto) F2 D2 E2
I3 F3 D3 X
I4 F4 X
Ik Fk Dk Ek Wk
Ik+ 1 Fk+ 1 Dk+ 1 E k+ 1
(a) Dirección de salto calculada en la etapa de ejecución

Tiempo
Ciclo de reloj 1 2 3 4 5 6 7
I1 F1 D1 E1 W1

I2 (salto) F2 D2
I3 F3 X
Ik Fk Dk Ek Wk
Ik+ 1 Fk+ 1 D k+ 1 E k+ 1
(b) Dirección de salto calculada en la etapa de decodificación

Figura 8.9. Temporización de un salto

Estructura de Computadores. Tema 4: Segmentación de Cauce 19


Riesgos de instrucciones: salto incondicional

 Para reducir el efecto de los fallos de caché se suelen captar


instrucciones antes de que sean necesarias (precaptación) y se
almacenan en una cola de instrucciones (Fig. 8.10)
Unidad de captación
de instrucciones
Cola de instrucciones
F: Unidad
de
captación

D: Unidad de E: Unidad W: Unidad


decodificación/ de de
emisión ejecución actualización

Figura 8.10. Uso de una cola de instrucciones en un segmento de 4 etapas

Estructura de Computadores. Tema 4: Segmentación de Cauce 20


Riesgos de instrucciones: salto incondicional

Tiempo
Ciclo 1 2 3 4 5 6 7 8 9 10
Longitud 1 1 1atasco 1 2 3 2 1 1 1
de la cola
I1 F1 D1 E1 E1 E1 W1

I2 F2 D2 E2 W2

I3 F3 D3 E3 W3

I4 F4 D4 E4 W4

I5 (salto) F5 D5 Plegado de salto

I6 F6 X

Ik Fk Dk Ek Wk

Ik+1 Fk+1 Dk+1 Ek+1

Figura 8.11. Temporización de un salto con cola de instrucciones.


La dirección del salto se calcula en la etapa D

Estructura de Computadores. Tema 4: Segmentación de Cauce 21


Riesgos de instrucciones: saltos condicionales
 Riesgo originado por la dependencia entre la condición de salto y
el resultado de una operación previa
 Hueco de retardo de salto: instrucción/es que siguen a una
instrucción de salto (depende del tiempo que tarde en calcularse
la dirección - Fig. 8.9)
 Salto retardado: reordenar las instrucciones para ejecutar las
instrucciones que siempre se captan (huecos)

loop shl r1 loop dec r2


dec r2 jnz loop
jnz loop shl r1
next add r1,r3 next add r1,r3
(a) Programa original (b) Programa reordenado
Figura 8.12. Reordenamiento de las instrucciones en salto retardado

Estructura de Computadores. Tema 4: Segmentación de Cauce 22


Riesgos de instrucciones: saltos condicionales

Tiempo
Ciclo de reloj 1 2 3 4 5 6 7 8
Instrucción
dec r2 F E

jnz loop F E

shl r1 (hueco) F E

dec r2 (salto tomado) F E

jnz loop F E

shl r1 (hueco) F E

add r1, r3 (salto no tomado) F E

Figura 8.13. Ejecución mostrando un hueco de retardo lleno de


las últimas dos iteraciones del programa de la Figura 8.12b

Estructura de Computadores. Tema 4: Segmentación de Cauce 23


Riesgos de instrucciones: predicción de salto

 Más sencillo: asumir que el salto no se toma  seguir ejecutando


secuencialmente hasta evaluar la condición
 Ejecución especulativa: ejecutar instrucciones sin haber verificado
que forman parte de la secuencia correcta
Tiempo
Ciclo de reloj 1 2 3 4 5 6
Instrucción
I1(comparar) F1 D1 E1 W1

I2(saltar) F2 D 2/P2 E2

I3 F3 D3 X

I4 F4 X

Ik Fk Dk

Figura 8.14. Temporización cuando la decisión de saltar


se ha predicho incorrectamente como “no tomado”

Estructura de Computadores. Tema 4: Segmentación de Cauce 24


Riesgos de instrucciones: predicción de salto
Tipos:
• Estática: se toma la misma decisión para cada tipo de instrucción
(hardware/software)
• Dinámica: cambia según la historia de ejecución de un programa

BT

BNT SNT LNT


Salto tomado (BT) salto muy poco probable salto poco probable

BNT
BNT LNT
salto poco probable
LT
salto probable
BT BNT BT
BT

Salto no tomado (BNT)


LT
salto probable
ST
salto muy probable
BT
(a) Algoritmo de dos estados
BNT
(b) Algoritmo de cuatro estados

Figura 8.15. Representación de las máquinas de estados de los algoritmos de predicción de saltos

Estructura de Computadores. Tema 4: Segmentación de Cauce 25


TEMA 4: Segmentación de cauce
Objetivos del capítulo
Conocer los principios básicos de la Segmentación de cauce

Riesgos que pueden degradarlas prestaciones y las formas de mitigar sus


efectos

Implicaciones software y hardware en la segmentación de cauce

Influencia en el diseño del repertorio de instrucciones

Conocer los principios básicos de procesadores superescalares

Material complementario en:


Organización de Computadores. C. Hamacher et al. 5ª Edición. McGraw Hill

Estructura de Computadores. Tema 4: Segmentación de Cauce 26


Modos de direccionamiento
 Deberían ser eficientes y evitar los efectos colaterales, pero
esto entra en conflicto con la utilidad
 Características empleadas en la actualidad (tres modos que
cumplen estas condiciones: registro, indirecto con registro
e indexado):
▫ El acceso a un operando no necesita más de un acceso a memoria
▫ Sólo las instrucciones de carga y almacenamiento acceden a
memoria
▫ Los modos de direccionamiento no tienen efectos colaterales
 Ejemplo: ver tabla siguiente y Fig. 8.16
Complejo Sencillo
load x(r1), r2 add #x, r1, r2
load (r2), r2
load (r2), r2

Estructura de Computadores. Tema 4: Segmentación de Cauce 27


Modos de direccionamiento
Tiempo
Ciclo de reloj
1 2 3 4 5 6 7

Load F D X + [R1] [X +[R1]] [[X +[R1]]] W


Adelantamiento

Siguiente instrucción F D E W
(a) Modo de direccionamiento complejo

Add F D X + [R1] W

Load F D [X +[R1]] W

Load F D [[X +[R1]]] W

Siguiente instrucción F D E W

(b) Modo de direccionamiento sencillo

Figure 8.16. Operaciones equivalentes utilizando modos de direccionamiento sencillos y complejos

Estructura de Computadores. Tema 4: Segmentación de Cauce 28


Códigos de condición

 Las dependencias introducidas por los bits de condición


dificultan al compilador reordenar instrucciones
 Ejemplo: fragmento de la Figura 8.17 siguiendo el esquema
la Figura 8.14  adelanta la decisión de salto de E2 a D2

sumar r1, r2 comparar r3, r4


comparar R3, r4 sumar r1, r2
saltar = 0 saltar = 0

(a) Fragmento de programa (b) Fragmento reordenado

Figura 8.17. Reordenamiento de instrucciones

Estructura de Computadores. Tema 4: Segmentación de Cauce 29


TEMA 4: Segmentación de cauce
Objetivos del capítulo
Conocer los principios básicos de la Segmentación de cauce

Riesgos que pueden degradarlas prestaciones y las formas de mitigar sus


efectos

Implicaciones software y hardware en la segmentación de cauce

Influencia en el diseño del repertorio de instrucciones

Conocer los principios básicos de procesadores superescalares

Material complementario en:


Organización de Computadores. C. Hamacher et al. 5ª Edición. McGraw Hill

Estructura de Computadores. Tema 4: Segmentación de Cauce 30


Funcionamiento superescalar

Segmentación de cauce = concurrente + secuencial

Superescalar = concurrente + paralelo

Se han de duplicar unidades

Se puede comenzar a ejecutar más de una instrucción por ciclo de reloj  emisión
múltiple

Rendimiento = más de una instrucción por ciclo

Es fundamental poder captar instrucciones rápidamente  conexión ancha con memoria +


caché + cola de instrucciones

Estructura de Computadores. Tema 4: Segmentación de Cauce 31


Funcionamiento superescalar

F: unidad de
captación

Cola de instrucciones

Unidad
de coma
flotante
Unidad de
emisión W: escribir
resultados
Unidad
De
enteros
Figura 8.19. Procesador con dos unidades de ejecución

Estructura de Computadores. Tema 4: Segmentación de Cauce 32


Funcionamiento superescalar

El efecto negativo de los El compilador puede


riesgos es todavía más reordenar instrucciones para
pronunciado evitar riesgos

Ejemplo: mezcla de
operaciones con enteros y
en coma flotante de la
Figura 8.20 siguiendo un
esquema interno como el de
la Figura 8.19

Estructura de Computadores. Tema 4: Segmentación de Cauce 33


Funcionamiento superescalar

Tiempo
Ciclo de reloj 1 2 3 4 5 6 7

I1 (Fadd) F1 D1 E1A E1B E1C W1

I2 (Add) F2 D2 E2 W2

I3 (Fsub) F3 D3 E3A E3B E3C W3

I4 (Sub) F4 D4 E4 W4

Figura 8.20. Ejemplo de flujo de ejecución de instrucciones en


el procesador la figura 8.19, asumiendo que no existen riesgos.

Estructura de Computadores. Tema 4: Segmentación de Cauce 34


Ejecución desordenada
 Las instrucciones pueden emitirse en orden y
terminar de forma desordenada
 Posibles complicaciones:
▫ Dependencia entre instrucciones (I1 e I2 en Fig.
8.20)
▫ Excepciones
 Tipos de excepciones:
▫ Imprecisa: alguna instrucción posterior a la que
produce la excepción ha terminado de ejecutarse
 deja el programa en un estado inconsistente
▫ Precisa: no puede ocurrir lo anterior
 Soluciones:
▫ Escritura retardada (Fig. 8.21a)
▫ Uso de buffers temporales (Fig. 8.21b)
Estructura de Computadores. Tema 4: Segmentación de Cauce 35
Ejecución desordenada
Tiempo
Ciclo de reloj 1 2 3 4 5 6 7
I1 (Fadd) F1 D1 E1A E1B E1C W1

I2 (Add) F2 D2 E2 W2

I3 (Fsub) F3 D3 E3A E3B E3C W3

I4 (Sub) F4 D4 E4 W4

(a) Escritura retardada


Tiempo
Ciclo de reloj 1 2 3 4 5 6 7
I1 (Fadd) F1 D1 E1A E1B E1C W1

I2 (Add) F2 D2 E2 TW2 W2

I3 (Fsub) F3 D3 E3A E3B E3C W3

I4 (Sub) F4 D4 E4 TW4 W4
(b) Uso de registros temporales

Figura 8.21. Finalización de instrucciones según el orden del programa

Estructura de Computadores. Tema 4: Segmentación de Cauce 36


Finalización de la ejecución
 La ejecución desordenada es conveniente para aprovechar
los recursos
 Las instrucciones deberían completarse en el orden del
programa para tener excepciones precisas
 Ambos objetivos contrapuestos pueden conseguirse
mediante renombramiento de registros (ej: destino de I2
es R5  TW2 = R5 durante ciclos 5 y 6, en Fig. 8.21b)
 Las unidades de control deben tener en cuenta la ejecución
desordenada  unidad de finalización (cola de
reordenamiento)
 Empareja las fases de emisión y retirada de cada
instrucción

Estructura de Computadores. Tema 4: Segmentación de Cauce 37


La operación de emisión

La unidad de emisión debe


comprobar que hay recursos
Objetivo: evitar bloqueos 
libres suficientes: unidades situación que se da cuando dos
de ejecución, buffers instrucciones necesitan un
temporales, huecos de la recurso compartido para
cola de reordenamiento,… finalizar

Ejemplo: una instrucciones A


utiliza un buffer temporal y
necesita que B acabe para
finalizar, y B necesita el mismo
buffer temporal para acabar

Estructura de Computadores. Tema 4: Segmentación de Cauce 38


Ejemplo: AMD Athlon 64

Estructura de Computadores. Tema 4: Segmentación de Cauce 39


Consideraciones relativas a prestaciones

N S T = Tiempo de ejecución

T N = cantidad dinámica de instrucciones


S = número medio de ciclos de reloj que se tarda en ejecutar una instrucció
R R = frecuencia de reloj

R
Ps  PS = número de instrucciones ejecutadas por segundo (caso secuencial)
PP = número de instrucciones ejecutadas por segundo (caso concurrente)
S
fallo  ((1  hi )  d (1  hd ))  Mp
R R
Pp  
TI 1  fallo Mp = penalización por fallo en caché
hi = probabilidad de acierto para instrucciones
R hd = probabilidad de acierto para datos
Ps  TI = tiempo en el caso secuencial
4  fallo

Estructura de Computadores. Tema 4: Segmentación de Cauce 40


Consideraciones relativas a prestaciones

Efectos de los riesgos de control


 Si el tiempo de la ALU es 2ns  frecuencia de reloj óptima
500MHz
 El procesador de la Fig. 8.2, en condiciones ideales Pp ≈ 500
MIPS

Numero de etapas del cauce segmentado


 La teoría sugiere que a mayor numero de etapas mayor
rendimiento
 Al aumentar el número de etapas también crece la
probabilidad de sufrir un atasco

Estructura de Computadores. Tema 4: Segmentación de Cauce 41

También podría gustarte