Tema 4personales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t4.pdf · • IDEA: Descomposición...

29
Arquitectura de Computadores Tema 4 PROCESADORES SEGMENTADOS

Transcript of Tema 4personales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t4.pdf · • IDEA: Descomposición...

Arquitectura de Computadores

Tema 4 PROCESADORES SEGMENTADOS

Tema 4: Procesadores Segmentados 1

1. Arquitecturas RISC y CISC.

2. Unidad de Control monociclo y multiciclo.

3. Segmentación.

3.1. Ruta de datos del MIPS R2000. 3.2. Control segmentado.

3.2.1. Riesgos de la segmentación. 3.2.2. Riesgos estructurales. 3.2.3. Riesgos por dependencia de datos. 3.2.4. Riesgos de control

3.3. Segmentación en los operadores aritmético-lógicos.

4. Supersegmentación.

Tema 4: Procesadores Segmentados 2

1. Arquitecturas RISC y CISC. El Juego de Instrucciones es una de las decisiones más importantes que debe tomar el diseñador.

• Nº de instrucciones. • Duración (en ciclos de reloj). • Tamaño (RI). • Nº operandos. • Tipo.

Hablemos del tipo.

En los primeros computadores había pocas instrucciones con 1 o 2 modos de direccionamiento.

En 1964 Wilkes introduce la microprogramación.

• Las señales de control se almacenan en una memoria pequeña y rápida Memoria de Control.

• Se simplifica la circuitería. • Los juegos de intrucciones se hacen cada vez más complejos. • Las instrucciones se acercan a las de los lenguajes de alto nivel.

Sw

Hw

• Tendencia a incluir + instrucciones, + potentes y + modos de direccionamiento.

• Arquitectura CISC (Complex Instruction Set Computers). • Ej: VAX 200 instruc. y 12 modos de direcc. • Acabó siendo un freno a la velocidad del computador.

Tema 4: Procesadores Segmentados 3

Años 70 Cambio de filosofía.

• Estudio de la frecuencia de ejecución de las instrucciones. • Se ejecutan más a menudo las más simples (transferencias, sumas,

incrementos). • Se vuelve a juegos de intrucciones más sencillos con pocos modos

de direccionamiento.

Sw

Hw

• Se puede implementar con Control Cableado (+ rápido). • Arquitectura RISC (Reduced Instruction Set Computers). • Aumenta la complejidad de los compiladores. • PRINCIPIO BÁSICO: ejecutar una instrucción por ciclo de reloj. • Requieren memorias muy rápidas (cachés).

Ejemplos:

• CISC: Intel 80x86, Motorola 680x0 • RISC: MIPS Rx000, Motorola Power-PC, Sun SPARC.

Tendencias:

• Híbridos que llevan lo mejor de cada uno. • No hay una línea divisoria clara.

Tema 4: Procesadores Segmentados 4

2. Unidad de Control monociclo y multiciclo. TIEMPO DE CICLO DEL RELOJ (TCLK): duración del periodo de reloj del sistema. (F = 1 / TCLK Mhz)

• Las señales de control se activan y desactivan en sincronía con los pulsos del reloj.

nivel bajo

nivel alto

flanco desubida

flanco debajada

periodo (TCLK)

Señal de reloj

Nº DE CICLOS POR INSTRUCCIÓN: Tejec. instr. / TCLK

• Tiempo de ejecución de una instrucción en ciclos de reloj. • Según se implemente la UC, una instruc. se ejecutará en uno o más

ciclos de reloj.

UNIDAD DE CONTROL MONOCICLO:

• Cada instrucción se ejecuta en un ciclo de reloj. • PROBLEMA: El tiempo de ciclo de ejecución de instrucción se debe

adaptar al de la instruc. más larga. • Todas las instruc. tardan lo mismo, aunque no lo necesiten. • Desaprovecha recursos Hw. del procesador (ocioso).

TCLK

Tema 4: Procesadores Segmentados 5

UNIDAD DE CONTROL MULTICICLO:

• Hay instrucciones que no utilizan todas las etapas o su fase de ejecución dura menos.

• IDEA: Descomposición en etapas de la ejecución de la instruc. (Busqueda instruc., operandos, etc.)

• Cada etapa se ejecuta en un ciclo de reloj. • CICLO DE RELOJ: Tan largo como la etapa de instruc. más larga. • Varios tipos de instruc. en función de las etapas que utilizan. • Cada instruc. se ejecutará en tantos ciclos como etepas tenga (según

su complejidad). • Lo normal es que las UC sean Multiciclo. • Permite mejorar las prestaciones del procesador usando técnicas

como la SEGMENTACIÓN.

CONTROL MONOCICLO

TODAS LAS INSTRUCCIONES

CONTROL MULTICICLO

INSTRUCCIONES CLASE I

INSTRUCCIONES CLASE II

INSTRUCCIONES CLASE III

INSTRUCCIONES CLASE IV

TCLK

TCLK

Tema 4: Procesadores Segmentados 6

3. Segmentación. La ejecución de una instrucción pasa por varias etapas:

1. Búsqueda de Instrucción. 2. Decodificación. 3. Búsqueda de Operandos. 4. Ejecución. 5. Almacenamiento de Resultados.

En un procesador NO segmentado las instrucciones se ejecutan secuencialmente.

Operación de un procesador secuencial

1

Búsqueda1

2

Decodifica1

3

B.Operandos1

4

Ejecución1

5

Almacena1

6

Búsqueda2

7

Decodifica2

...

...

En un procesador SEGMENTADO cuando una instruc. termina por una etapa, esa etapa la ocupa la siguiente instruc.

Operación de un procesador segmentado de 5 etapas

1

Búsqueda1

2

Decodifica1

3

B.Operandos1

4

Ejecución1

5

Almacena1

6

...Búsqueda2

Decodifica2

Búsqueda3

Decodifica3

B.Operandos2

Búsqueda4

Decodifica4

B.Operandos3

Ejecución2 Ejecución3

B.Operandos4

Almacena2

...

... ...

... ... ...

... ... ... ...

Búsqueda5

Decodifica5

7

...

Ejecución4

B.Operandos5

Almacena3

...

Es como en las cadenas de montaje o los túneles.

Tema 4: Procesadores Segmentados 7

Tras un intervalo de tiempo se termina de ejecutar una instrucción en cada ciclo de reloj.

NOTA: No se reduce el tiempo de ejecución de la instrucción.

Mejora la PRODUCTIVIDAD: Nº instruc. por unidad de tiempo.

Se reduce el TIEMPO MEDIO DE EJECUCIÓN de las instrucciones.

._º.___.

._ instrucNT

T instruclastodasejecejecmedio =

En un procesador segmentado ideal, la velocidad se multiplicaría por el nº de etapas en que está segmentado (x5 en el ejemplo).

No va a ser así:

• Las etapas no están equilibradas.

50 50 60 50 50 50 50 .....

260 ms

INSTRUCCIÓN 1 INSTRUCCIÓN 2

NO SEGMENTADO

300 ms

60 60 60 60 60SEGMENTADO

60 60 60 60 60

• La segmentación involucra gasto (TEJEC. ETAPA SEG > TEJEC. ETAPA NO

SEG.). 325 ms

65 65 65 65 65

65 65 65 65 65

Tema 4: Procesadores Segmentados 8

ACELERACIÓN: Mejora en tiempo de ejecución de una máquina segmentada frente a la misma no segmentada.

465260

.__

.__ ===segconmedio

segsinmedio

TT

A

Veamos cómo se implementa una UC segmentada y cómo sería la ruta de datos en la ejecución de una instrucción.

Tema 4: Procesadores Segmentados 9

3.1. Ruta de datos del MIPS R2000. Ruta de datos sin segmentar:

Ruta de datos para la arquitectura MIPS

Add

Add4

MUX

cp Direcciónde lectura

instrucción

MEMORIA DEINSTRUCCIONES

registro delectura 1registro delectura 2registro deescrituradato deescritura

Salida 1

Salida 2

BANCO DEREGISTROS

Cero

Resultado

UAL

extensiónde signo

Direcciónde lectura

Direcciónde escritura

dato deescritura

MEMORIA DEDATOS

lecturadato

despl.izq. 2

16 32

MUX

MUX

Instrucciones y datos se desplazan de izda. a dcha., salvo:

• Guardar resultado en registros. • Se cambia el CP (saltos).

Elegir con el MUX, CP+4 (instruc. de 32 bits) No hay salto. Dir. salto calculada en la fase de ejecución Salto.

La UAL se utiliza también para calcular la dirección de memoria donde leer/escribir un dato.

Tema 4: Procesadores Segmentados 10

La ejecución de una instrucción se puede dividir en varias etapas.

En el MIPS R2000 se divide en 5 etapas.

Ello implica dividir la ruta de datos en 5 secciones.

Cada una corresponderá a una etapa de la segmentación.

Ruta de datos para la arquitectura MIPS donde se observan las etapas de ejecuciónde las instrucciones

Add

Add4

MUX

CPDirecciónde lectura

instrucción

MEMORIA DEINSTRUCCIONES

registro delectura 1registro delectura 2registro deescrituradato deescritura

Salida 1

Salida 2

BANCO DEREGISTROS

Cero

Resultado

UAL

extensiónde signo

Direcciónde lectura

Direcciónde escritura

dato deescritura

MEMORIA DEDATOS

lecturadato

despl.izq. 2

16 32

Búsqueda de la instrucción Búsqueda registros ydecodificación de la

instrucción

Ejecución y cálculode la dirección de

salto

Acceso a memoria Guardar elresultado

MUX

MUX

Tema 4: Procesadores Segmentados 11

Funcionamiento de la segmentación en el MIPS R2000.

• A la MEMORIA DE INSTRUCCIONES sólo se accede en la 1ª etapa de ejecución.

• Puede ser compartida en la ejecución de otras instrucciones. Cuando la 1ª se encuentre en las otras 4 etapas.

• Pero en el siguiente ciclo de reloj se perderá la 1ª instrucción. La MEMORIA DE INSTRUCCIONES se usará para obtener la siguiente

instrucción a ejecutar. Para el resto de sus etapas no estará disponible.

• Es necesario tener un REGISTRO TEMPORAL que guarde la instruc. para la siguiente etapa.

• Para el resto de etapas ocurrirá lo mismo. • La ruta de datos contendrá una serie de registros temporales al final

de cada etapa de segmentación. • Todas las instruc. avanzan durante cada ciclo de reloj de un registro

al siguiente.

Memoriade

instrucciones Regi

stro

ste

mpo

rale

s

Banco deregistros(lectura) Re

gist

ros

tem

pora

les

UAL

Regi

stro

ste

mpo

rale

s

Memoriade

datos Regi

stro

ste

mpo

rale

s

Banco deregistros

(escritura)

Etapa 1

Búsqueda deinstrucción

Etapa 2

Búsqueda deregistros y

decodificación

Etapa 3

Ejecución ycálculo dirección

de salto

Etapa 4

Acceso amemoria

Etapa 5

Guardar elresultado

Esquema simplificado de la ruta de datos junto con los registros de segmentación

• El banco de registros aparece replicado. Se usa para lectura en la etapa 2. Se usa para escritura en la etapa 5. Lecturas y escrituras pueden realizarse a la vez.

Tema 4: Procesadores Segmentados 12

3.2. Control segmentado. Veamos cómo se implementa una UC segmentada.

En un procesador segmentado hay varias instruc. ejecutándose a la vez y usando la misma ruta de datos.

IMPLEMENTACIÓN DEL CONTROL:

• Actualizar todas las señales de control en cada etapa de la segmentación.

• Señales diferentes para cada etapa. • Señales diferentes para cada instrucción.

¿CÓMO?

• Incluir la información de control en los registros de segmentación. • Se crea en la etapa de decodificación y se guarda en el reg.

correspondiente. • Esta información avanza por los registros de segmentación. • Así, las señales de control serán usadas por el procesador en la etapa

adecuada. • Por eso hablamos de registros temporales. • Circuitería extra que causa un retardo en el tiempo de ejecución de

cada etapa.

Tema 4: Procesadores Segmentados 13

3.2.1. Riesgos de la segmentación. Idealmente, la segmentación produce una aceleración xN (N=nº etapas).

Sabemos que hay factores que reducen esta aceleración:

• Circuitería extra del control segmentado. • Ciclo de reloj = al de la etapa más larga.

Existen otros factores que la disminuyen RIESGOS (hazards).

Impiden que se ejecute la siguiente instrucción durante el ciclo de reloj que tiene asignado.

TIPOS:

• RIESGOS ESTRUCTURALES: Conflictos por uso de recursos del procesador por varias instruc. Varias etapas intentan usar a la vez un elemento de la ruta de datos. Ej: La UAL no puede hacer 2 sumas a la vez si no tiene 2 sumadores.

• RIESGOS POR DEPENDENCIA DE DATOS: Cuando una instruc. depende de los resultados de una anterior. Si se ejecutan a la vez los resultados serán incorrectos.

• RIESGOS DE CONTROL: Cuando una instruc. cambia el contenido del CP (saltos). Las instrucciones siguientes no deberían haberse iniciado.

Estos riesgos pueden provocar la detención de la segmenta-ción.

Tema 4: Procesadores Segmentados 14

CAUSA: ejecutar varias instrucciones del mismo programa a la vez.

Con la detención no se paran todas las instrucciones.

Normalmente las posteriores a la que detiene la segmentación.

Las anteriores continúan, pero no se buscarán nuevas instruc.

Tema 4: Procesadores Segmentados 15

3.2.2. Riesgos estructurales. Al segmentar hay que replicar recursos para permitir todas las posibles combinaciones de instrucciones.

Si en alguna combinación hay conflicto por recursos RIESGO ESTRUCTURAL.

EFECTO: Se para una de las instruc. hasta que la unidad requerida esté disponible.

La replicación de todos los elementos funcionales puede ser muy costosa.

Si no se presentan con frecuencia estos riesgos, puede merecer la pena NO evitarlos.

En el MIPS R2000 no existen, porque replica UFO’s:

• Memoria (instruc. y datos). • Registros (lectura y escritura).

Ejemplo: Procesador con 1 sóla MEM. para datos e instruc.

• Dos etapas necesitan la memoria en el mismo ciclo de reloj para: Buscar la siguiente instruc. (BI) y Cargar un dato en el banco de registros (instruc. LW).

Tema 4: Procesadores Segmentados 16

3.2.3. Riesgos por dependencia de datos. Cuando se cambia el orden de acceso a los operandos con relación al orden que se seguiría sin segmentación.

Ejemplo:

ADD $1, $2, $1 ($1 $1+$2) SUB $4, $3, $1 ($4 $3+$1)

ADD

B.I. B.op. Ejec.Esc.

Mem.Esc.Regs.

Guarda $1

SUB

B.I. B.op. Ejec.Esc.

Mem.Esc.Regs.

Lee $1

Si no se toman precauciones, SUB leerá un valor erróneo de $1.

TIPOS DE DEPENDENCIAS:

• RAW (READ AFTER WRITE): Leer un dato antes de que tenga el resultado correcto. Sea la secuencia de instrucciones: ...... i, j, ...... Si se altera el orden, j leerá un valor todavía no modificado. Ver ejemplo anterior.

Tema 4: Procesadores Segmentados 17

• WAR (WRITE AFTER READ): Escribir un dato antes de que se haya leído. Sea la secuencia de instrucciones: ...... i, j, ...... i lee objeto que j modifica. Si se altera el orden, i lee el modificado y no el original. Ej.: Procesador con tiempo de etapa de búsqueda de operandos variable

según modo de direccionamiento empleado.

SUB $1, a+100($2), $3 ( $1 ([a]+(100+$2))-$3 ) ADD $2, $4, $5 ($2 $4+$5) Si ADD actualiza $2 antes de que SUB lo lea, SUB leerá un valor erróneo.

• WAW (WRITE AFTER WRITE): Cambiar el orden de escritura de los

datos. Sea la secuencia de instrucciones: ...... i, j, ...... i escribe un dato en el mismo sitio que j. Si se altera el orden, no se guardará el valor que interesa (i), sino el

anterior (j). Ej.: Procesador con tiempo de etapa de ejecución variable según

complejidad de la instrucción.

DIV.F $1, $4, $5 (División en coma flotante) ADD $1, $2, $3 (Suma de enteros) Si ADD actualiza $1 antes de que DIV.F termine, al final quedará un valor erróneo.

SOLUCIONES:

• Detención de la segmentación. • Anticipación. • Reordenación de código.

Tema 4: Procesadores Segmentados 18

DETENCIÓN DE LA SEGMENTACIÓN.

• Inserción de ciclos de espera. • La solución más sencilla, pero la menos eficiente. • Conocida como INSERCIÓN DE BURBUJAS.

Primero se detecta el riesgo. Luego se detienen las instrucciones (se insertan burbujas) hasta que se

resuelve el riesgo. • Ejemplo:

ADD $1, $2, $1 SUB $4, $1, $3

ADD

Guarda $1 aquí

MEM.INSTRUC

REGS.(lect.)

MEM.DATOS

REGS.(escr.)

UAL

SUB

Lee $1 aquí

MEM.INSTRUC

REGS.(lect.)

UAL

BURBUJA BURBUJA BURBUJAMEM.

DATOSREGS.(escr.)

ADD $1,$2,$1 SUB $4,$1,$3 MOV ... DIV ...ADD $1,$2,$1 BURBUJA BURBUJA BURBUJA SUB $4,$1,$3 MOV ... DIV ...

ADD $1,$2,$1 SUB $4,$1,$3 MOV ... DIV ...ADD $1,$2,$1 SUB $4,$1,$3 MOV ...

ADD $1,$2,$1 SUB $4,$1,$3t1 t2 t3 t4 t5 t6 t7 t8 t9

BIDEC/BO

EJESC. MEM.ESC. REG.

FASES

TIEMPO

Tema 4: Procesadores Segmentados 19

• ¿Cómo se implementa? Por SW:

⇒ El compilador detecta esta situación. ⇒ Inserta tantas operaciones NOP como sea necesario.

ADD $1, $2, $1 NOP NOP NOP SUB $4, $1, $3

Por HW:

⇒ La detección del riesgo la hace la propia CPU. ⇒ Debe llevar la cuenta de los registros o posiciones de memoria que son

destino. ⇒ ¿Cómo? Técnica de SCOREBOARDING (marcador). ⇒ Para los registros se añade un bit a cada uno. ⇒ Se pone a “1” al detectar que se va a usar como destino. ⇒ Se pone a “0” al escribirlo.

Tema 4: Procesadores Segmentados 20

ANTICIPACIÓN (FORWARDING).

• Consiste en llevar los datos a los registros de entrada de la UAL antes o al tiempo que se llevan al destino.

• Hay una realimentación en la UAL. • El Hw detecta que el resultado de la operación anterior va a ser

fuente de la actual. • La UC no se espera a que se escriba en el reg. destino, sino que se lo

pasa a la UAL.

Memoriade

instrucciones Regi

stro

ste

mpo

rale

s

Banco deregistros(lectura) Re

gist

ros

tem

pora

les

UAL

Regi

stro

ste

mpo

rale

s

Memoriade

datos Regi

stro

ste

mpo

rale

s

Banco deregistros

(escritura)

Etapa 1

Búsqueda deinstrucción

Etapa 2

Búsqueda deregistros y

decodificación

Etapa 3

Ejecución ycálculo dirección

de salto

Etapa 4

Acceso amemoria

Etapa 5

Guardar elresultado

Esquema simplificado de la ruta de datos con Anticipación

• Ejemplo:

ADD $1, $2, $1 SUB $2, $6, $1 AND $3, $4, $1 XOR $4, $5, $1 OR $5, $7, $1

ADD $1,$2,$1 SUB $2,$6,$1 AND $3,$4,$1 XOR $4,$5,$1 OR $5,$7,$1ADD $1,$2,$1 SUB $2,$6,$1 AND $3,$4,$1 XOR $4,$5,$1 OR $5,$7,$1

ADD $1,$2,$1 SUB $2,$6,$1 AND $3,$4,$1 XOR $4,$5,$1 OR $5,$7,$1ADD $1,$2,$1 SUB $2,$6,$1 AND $3,$4,$1 XOR $4,$5,$1

ADD $1,$2,$1 SUB $2,$6,$1 AND $3,$4,$1t1 t2 t3 t4 t5 t6 t7

BIDEC/BO

EJESC. MEM.ESC. REG.

FASES

TIEMPO

Tema 4: Procesadores Segmentados 21

• También se pueden anticipar los datos leídos de Memoria a la UAL.

Memoriade

instrucciones Regi

stro

ste

mpo

rale

s

Banco deregistros(lectura) Re

gist

ros

tem

pora

les

UAL

Regi

stro

ste

mpo

rale

s

Memoriade

datos Regi

stro

ste

mpo

rale

s

Banco deregistros

(escritura)

Etapa 1

Búsqueda deinstrucción

Etapa 2

Búsqueda deregistros y

decodificación

Etapa 3

Ejecución ycálculo dirección

de salto

Etapa 4

Acceso amemoria

Etapa 5

Guardar elresultado

Anticipación de los resultados leídos de memoria

• Ejemplo:

LD $5, x ($5 [x]) ADD $4, $5, $3 OR $6, $5, $3 ADD $1, $3, $7

LD $5,x ADD $4,$5,$3 OR $6,$5,$3 ADD $1,$3,$7LD $5,x ADD $4,$5,$3 BURBUJA OR $6,$5,$3 ADD $1,$3,$7

LD $5,x ADD $4,$5,$3 OR $6,$5,$3 ADD $1,$3,$7LD $5,x ADD $4,$5,$3 OR $6,$5,$3

LD $5,x ADD $4,$5,$3t1 t2 t3 t4 t5 t6 t7

BIDEC/BO

EJESC. MEM.ESC. REG.

FASES

TIEMPO

• Aún así, en este caso, hay que introducir una burbuja.

Tema 4: Procesadores Segmentados 22

REORDENACIÓN DE CÓDIGO.

• Consiste en cambiar el orden de las instrucciones sin que afecte en la ejecución del programa.

• La puede hacer a mano el programador. • Lo normal es que la haga el compilador. • Ejemplo:

Se desea hacer el siguiente cálculo en un lenguaje de alto nivel:

a = x - y b = z + w

Un primer código en ensamblador sería el siguiente:

LD $2, x ($2 [x]) LD $3, y ($3 [y]) SUB $1, $2, $3 Dependencia de datos en $3 ST $1, a ([a] $1) LD $5, z ($5 [z]) LD $6, w ($6 [w]) ADD $4, $5, $6 Dependencia de datos en $6 ST $4, b ([b] $4)

Suponiendo que disponemos de anticipación de datos (UAL y MEM), la reordenación que elimina dependencias sería:

LD $2, x ($2 [x]) LD $3, y ($3 [y]) LD $5, z ($5 [z]) SUB $1, $2, $3 Desaparece dependencia en $3 LD $6, w ($6 [w]) ST $1, a ([a] $1) ADD $4, $5, $6 Desaparece dependencia en $6 ST $4, b ([b] $4)

Tema 4: Procesadores Segmentados 23

3.2.4. Riesgos de control. Se producen al no conocerse la dirección de bifurcación al ejecutar una instruc. que cambia el CP hasta que no la calcula la propia instruc.

Mientras, se están ejecutando otras instrucciones en paralelo.

Si hay que saltar, no sirven.

Ejemplo: IF A=B THEN C=C+1 ELSE C=C-1 ENDIF

SOLUCIONES:

• Detención de la segmentación. • Ejecución Especulativa. • Bifurcación Retardada. • Predicción de Saltos.

DETENCIÓN DE LA SEGMENTACIÓN (BURBUJAS).

• Un procesador poco sofisticado pararía la segmentación hasta conocer la dirección de salto.

• Poco eficiente.

EJECUCIÓN ESPECULATIVA (PREDICT NOT TAKEN).

• Se “especula” que no se va a saltar y, si se salta, se descartarán las instruc. que no sirvan.

• Un poco mejor.

Tema 4: Procesadores Segmentados 24

PREDICCIÓN DE SALTOS (BRANCH PREDICTION).

• Se intenta predecir qué instrucción se ejecutará según la historia anterior.

• Cuando se conoce la dirección de salto se comprueba si se ha acertado en la predicción: Acierto: se continúa, con el consiguiente ahorro de tiempo. Fallo: se descartan las instruc. ejecutadas y se inicia la rama real.

• Consigue altas probabilidades de acierto. • Basa su éxito en la clara “asimetría” en el resultado de las instruc.

de bifurcación condicional (bucles). • ¿Cómo se implementa?

Con una memoria caché denominada BTB (Branch Target Buffer). Cuando el procesador ejecuta un salto, guarda información del mismo en

la BTB. Cuando vuelve a encontrarse con ese salto, consulta la información

guardada y “estima” hacia dónde irá el flujo del programa esta vez. Cuanto mayor sea la BTB, mayor cantidad de bifurcaciones se podrán

predecir.

PC INSTRUCCIÓN PC PREDICHOSALTO PREDICHO REALIZADO

(SI/NO)0x00000028 0x0000001C 00x00000034 0x0000001C 1

. . .

. . .

. . .0x0000005C 0x00000A3C 10x000000FF 0x0000001C 0

PC INSTRUCCIÓN

= NO: Actualizar BTB y proceder normalmente

SI: Usar PC predicho

BTB

• Es la técnica más empleada en los procesadores actuales.

Tema 4: Procesadores Segmentados 25

BIFURCACIÓN RETARDADA (DELAY SLOT).

• Otra técnica, más económica, para aprovechar el hueco de las bifurcaciones condicionales.

• Consiste en aplicar la REORDENACIÓN DE CÓDIGO para rellenar el hueco con instruc. útiles (compilador o programador).

• ESTRATEGIAS: Utilizar instruc. anteriores a la bifurcación:

⇒ Es la mejor solución cuando hay instrucciones independientes para reordenar.

⇒ Problema: No siempre se pueden encontrar instruc. para rellenar el hueco.

Utilizar las instruc. a las que se bifurca: ⇒ Es un caso de predicción de salto que sólo será útil si se bifurca.

Utilizar las instruc. siguientes a la bifurcación: ⇒ Es el otro caso de predicción de salto que sólo será útil si NO se

bifurca.

• Según el tipo de procesador, el delay slot será de 1 o varias instruc. • EJEMPLO 1: Procesador con delay slot = 2.

Programa original

LD $2, xetiq: ADD $1, $2, $3

ADD $4, $5, $6SUB $7, $8, $9BEQ $6, $3, etiq (Si $6=$3 salta a etiq)LD $3, y

Programa conbifurcación retardada

LD $2, xetiq: ADD $1, $2, $3

BEQ $6, $3, etiqADD $4, $5, $6SUB $7, $8, $9LD $3, y

• EJEMPLO 2: Idem. Programa original

LD $2, xetiq: ADD $1, $2, $3

SUB $4, $5, $6BEQ $6, $3, etiq (Si $6=$3 salta a etiq)LD $3, y

Programa conbifurcación retardada

LD $2, xetiq: ADD $1, $2, $3

BEQ $6, $3, etiqSUB $4, $5, $6NOPLD $3, y

Tema 4: Procesadores Segmentados 26

3.3. Segmentación en los operadores aritmético - lógicos.

Para mejorar las prestaciones de un procesador, también se puede segmentar la UAL.

Vamos a ver el caso de un SUMADOR EN COMA FLOTANTE para nos positivos.

COMPARADOR Y SELECTOR

Desplazadora la derecha

SUMADOR

Cálculo delnúmero de ceros

a la izquierda

RESTADORDesplazadora la izquierda

Mayorexponente

Otramantisa

Mantisa delnúmero menor

Diferencia deexponentes

Nº dedesplazamientos

Para igualarexponentes

Exponentescorregidos

Mantisanormalizada

RESULTADO

Suma demantisas

Para normalizar

Ej:

7

9

2....10110.0

20010110.0

×

×

9 – 2 = 7

A BExponente Mantisa

Nº en comaflotante

SUMADOR EN COMA FLOTANTE SIN SEGMENTAR

Tema 4: Procesadores Segmentados 27

Se puede dividir en 5 operaciones independientes, que corresponderán a las etapas de la segmentación:

• ETAPA 1: Resta de exponentes y selección del dato con menor exponente.

• ETAPA 2: Ajuste a la derecha de la mantisa con menor exponente, hasta igualar exponentes.

• ETAPA 3: Suma de mantisas. • ETAPA 4: Obtención del nº de ceroa a la izquierda. • ETAPA 5: Normalización, desplazando la mantisa suma a la izda. y

decrementando el exponente.

COMPARADOR Y SELECTOR

Desplazador ala derecha

SUMADOR

Cálculo delnúmero de ceros

a la izquierda

RESTA-DOR

Desplazador ala izquierda

Mayorexponente

Otramantisa

Mantisa delnúmero menor

Diferencia deexponentes

Nº dedesplazamientos

Exponentescorregidos

Mantisanormalizada

RESULTADO

A B

E M

SUMADOR DE COMA FLOTANTE SEGMENTADO EN 5 ETAPAS

E M Registros

Lógica Nivel 1

Registros

Lógica Nivel 2

Registros

Lógica Nivel 3

Registros

Lógica Nivel 4

Registros

Lógica Nivel 5

ETAPA 1

ETAPA 2

ETAPA 3

ETAPA 4

ETAPA 5

Tema 4: Procesadores Segmentados 28

4. Supersegmentación. Se aumenta el nº de etapas de la segmentación.

Se ejecuta más de una etapa por ciclo de reloj.

etapa1 etapa2 etapa3 etapa4Instrucción 1

etapa1 etapa2 etapa3 etapa4Instrucción 2

etapa1 etapa2 etapa3 etapa4Instrucción 3

etapa1 etapa2 etapa3 etapa4Instrucción 4

etapa1 etapa2 etapa3 etapa4Instrucción 5

cr 1 cr 2 cr 3 cr 4 cr 5 cr 6 cr 7 cr 8Máquina segmentada:

Instrucción 1

Instrucción 2

Instrucción 3

Instrucción 4

Instrucción 5

Máquina supersegmentada:

se1 se2 se3 se4 se5 se6 se7 se8

se1 se2 se3 se4 se5 se6 se7 se8

se1 se2 se3 se4 se5 se6 se7 se8

se1 se2 se3 se4 se5 se6 se7 se8

se1 se2 se3 se4 se5 se6 se7 se8

se = subetapacr = ciclo de reloj

ESQUEMA DE UNA SEGMENTADA FRENTE A UNA MÁQUINA SUPERSEGMENTADA

Se completan varias instrucciones por ciclo de reloj.

“Idealmente” mejoran las prestaciones.

• Aumentan los riesgos. • Un procesador supersegmentado no tiene por qué ser mejor que uno

segmentado.