Unidad 2: Segmentación

40
EJECUCIÓN SEGMENTADA DE INSTRUCCIONES Unidad 2: Segmentación

description

Unidad 2: Segmentación. Ejecución Segmentada de Instrucciones. Ejecución Secuencial. ASPA: Programador  Programa  Ejecución Inicia una nueva instrucción hasta que concluye la anterior. Ciclo de instrucción secuencial estricto. Rendimiento secuencial. Rendimiento limitado : - PowerPoint PPT Presentation

Transcript of Unidad 2: Segmentación

Page 1: Unidad  2:  Segmentación

EJECUCIÓN SEGMENTADA DE INSTRUCCIONES

Unidad 2: Segmentación

Page 2: Unidad  2:  Segmentación

Ejecución Secuencial

ASPA: Programador Programa EjecuciónInicia una nueva instrucción hasta que

concluye la anterior.Ciclo de instrucción secuencial estricto

Page 3: Unidad  2:  Segmentación

Rendimiento secuencial

Rendimiento limitado:

t = t * N * CPI Período: depende de la tecnología N de Instrucciones: no da buenos resultados CPI: máximo = 1.

Puede implicar t mayor.

Page 4: Unidad  2:  Segmentación

Nuevo enfoque: Segmentación

Técnica que permite agilizar la ejecución: Ejecución solapada de

varias instrucciones en el tiempo.

Paralelismo temporal. Similar a una cadena de

producción.

Page 5: Unidad  2:  Segmentación

Principios de Segmentación

Se divide la tarea en subtareas: T = {T1, T2, ...., Tk}

Orden de ejecución Al finalizar las subtareas tarea concluida

Se divide el ejecutor (Procesador) en subejecutores o segmentos .

Cada segmento ejecuta una subtarea en el orden establecido.

Ejecución de múltiples tareas por etapas

Page 6: Unidad  2:  Segmentación

Ejecución secuencial de Instrucciones

Page 7: Unidad  2:  Segmentación

Ejecución solapada de instrucciones

Page 8: Unidad  2:  Segmentación

Representaciones

Diagrama de Instrucciones Muestra el solapamiento en el tiempo. Línea perpendicular

muestra lo que se ejecuta en ese instante.Diagrama Espacio-Tiempo

Muestra el uso del cauce por las instrucciones en el tiempo: superíndice Instrucción, Subíndice etapa.

. . .

. . .. . .

. . .

S1

S2

S3

S4

1 5432 6 7 8Tiempo(ciclos)

Espacio

T1

4T2

4T3

4T4

4T5

4

T1

3T2

3T3

3T4

3T5

3

T1

2T2

2T3

2T4

2T5

2

T1

1T2

1T3

1T4

1T5

1

inst i

inst i+1

inst i+2

inst i+3

inst i+4

Diagrama de Instrucciones Diagrama Espacio/tiempo

Page 9: Unidad  2:  Segmentación

Procesador Segmentado

Segmentos lógicos o etapas con hardware exclusivo (llamaremos k al número de etapas).

Cada segmento realiza una etapa del ciclo de instrucción.

Todos deben proceder a la vez: Necesario sincronizar las etapas Selección del período

S1 S2 S3 S4 S5

Clock

Input Output

Page 10: Unidad  2:  Segmentación

Rendimiento del Segmentado

Período de reloj

1 2 3 4 5r

S1 S2 S3 S4 S5

Clock

Input Output

= Max { i }k

1+ r = max + r

Page 11: Unidad  2:  Segmentación

Rendimiento del Segmentado

Tiempo de ejecución secuencial:

t = t * N * CPI t1 = t * N * k

¡ No ocurre así en el segmentado! tk = ¿?

tk = k * t + (N – 1) *t

- Note que CPI = k, así que, podemos reescribir como:

- Subíndice 1 indica monolítico, secuencial.

Page 12: Unidad  2:  Segmentación

Rendimiento del Segmentado

Ganancia: Procesador segmentado respecto a secuencial

equivalente.

Ganancia máxima: Límite de G cuando N ∞

k[Aplicando teorema de l’Hopital]

Page 13: Unidad  2:  Segmentación

Rendimiento del Segmentado

Eficiencia Medida de la utilización del cauce

= 1

Area de Tramos utilizados:

B * h = N * t * k

Area Total de Tramos:

B * h = (t * k + t * (N – 1)) * k = = k * t * ( k + N – 1)

=

Page 14: Unidad  2:  Segmentación

Rendimiento del Segmentado

Productividad Cantidad de tareas por unidad de tiempo.

Productividad máxima: Cuando la eficiencia es máxima

máx = f

¿𝑁

𝝉∗(𝑘+𝑁−1)

Page 15: Unidad  2:  Segmentación

Tipos de Segmentación

Definida por la relación de orden de las subtareas: Relación de precedencia lineal : Segmentación lineal Relación de precedencia no lineal: Segmentación no

lineal

T1 T2T3 T4

T1 T3T2 T4

out

in

1 2 3in out

Grafo de Precedencia Lineal Grafo de Precedencia No lineal

13

2 4

Page 16: Unidad  2:  Segmentación

Tipos de Segmentados

Por Niveles de procesamiento (Händler): Cauce de Instrucciones.

Ejemplo del DLX Cauce Aritmético.

Ejemplo del sumador de PF Encauzamiento de Procesadores. 

 Dependiendo de las configuraciones y estrategias de

control: Unifunción – Multifunción Estático – Dinámico Escalares – Vectoriales

Page 17: Unidad  2:  Segmentación

Procesador DLX

Modelo didáctico que emplearemos para ayudarnos a entender mejor cómo funciona la Segmentación.

Diseñado por John Hennessy y David Patterson como ejemplo base en su libro: “Arquitectura de Computadoras – Un enfoque cuantitativo”

Basado en las arquitecturas de diferentes procesadores reales con características exitosas en su implementación.

Page 18: Unidad  2:  Segmentación

Procesador DLX

Nombre: Proviene del promedio (en números romanos) de los números de modelo de los diferentes procesadores cuyas arquitecturas inspiraron su diseño.

Procesador RISC:

Arquitectura de 3 direcciones Máquina LOAD-STORE o R-R Arquitectura de 32 bits 32 registros de 32 bits Registro r0 es read-only y siempre su valor es 0.

Page 19: Unidad  2:  Segmentación

Comparación RISC vs CISC

RISC CISC Pocos formatos de instrucciones y sencillos permiten decodificador rápido y control cableado.

 Muchos formatos muy complejos que normalmente requieren unidad de control microprogramada.

Las operaciones de cálculo son registro-registro. Instrucciones específicas de carga y almacenamiento.

Las operaciones permiten operandos en memoria.

Usan la mínima cantidad de modos de direccionamiento. 

Buscan permitir la máxima cantidad de modos de direccionamiento.

Programas largos pero sencillos. 

Programas cortos pero complejos.

Más fácil de segmentar por su sencillez. 

Más difícil de segmentar y controlar.

Mayor rapidez de ejecución. Ejecución más lenta (complejidad + UC mProg)

Page 20: Unidad  2:  Segmentación

Repertorio del DLX

Cálculo 

OP R1, R2, R3 ; R1 = R2 OP R3

Acceso a Memoria

LOAD R1, d(R2) 

; R1 = M( R2 + d )

STORE d(R2), R1 

; M( R2 + d ) = R1

Saltos BRx R1, d 

; If ( R1 cond 0) then PC = PC + d

Nota: x puede ser: E ( cond es = ) NE ( cond es # ) LT ( cond es < ) LE ( cond es <= ) GT ( cond es > ) GE ( cond es >= )

Page 21: Unidad  2:  Segmentación

Primera aproximación Organización DLX

ALU

mdr

pc

mar

ir M

buff

A B

BR

Rd Write

Rf2 RRf1 R

A B

DataBus

@Bus4

Page 22: Unidad  2:  Segmentación

Segmentando el DLX

¿Cómo podemos segmentar el DLX para que ejecute instrucciones solapadamente? Definir etapas o segmentos del Procesador:BUS o IF Etapa de búsqueda o fetch de la intrucción e incremento del

pc 

DL o ID Decodificación/Carga de operandos (registros) en ALU. 

ALU o EX 

Ejecución de operaciones y cálculo de direcciones efectivas de datos en memoria. 

MEM 

Accesso a memoria para lectura (M R) o para escritura (RM). 

ESC o WB 

Escritura de resultados en los registros.

Page 23: Unidad  2:  Segmentación

Tabla de ReservaInstrucción BUS D/L ALU MEM ESC

 rd = rf1 op rf2 

OP 

  mar = pc mdr = M(mar) ir = mdr pc = pc + 4

  decodificar A = rf1 B = rf2

  buff = A op B 

 - rd = buff

 rd = M(rf1+d)

 LOAD 

  mar = pc mdr = M(mar) ir = mdr pc = pc + 4

  decodificar A = rf1 B = d

  mar = A + B

mdr = M(mar)  rd = mdr

 M(rf1+d) = rf2

 STORE 

  mar = pc mdr = M(mar) ir = mdr pc = pc + 4

 decodificar A = rf1 B = d mdr = rf2

 mar = A + B M(mar) = mdr -

 if (cond)

pc = pc + d 

BRx 

  mar = pc mdr = M(mar) ir = mdr pc = pc + 4

 decodificar A = pc B = d A’ = rf1

 buff = A + B cond = (A’ cmp 0)

 if (cond)pc = buff

 -

Page 24: Unidad  2:  Segmentación

Dificultades de la segmentación

¿ Basta con definir las etapas ? Requerimientos de la Segmentación …

Riesgos por dependencias Riesgos por dependencias estructurales. Riesgos por dependencias de datos. Riesgos por dependencias de control.

Otras dificultades: Excepciones

Page 25: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Se pueden dar en varios entornos del sistema: Sistema de memoria: Varias etapas intentan acceder a

la memoria a la vez. Unidad de ejecución: Varias etapas intentan usar la

ALU u otros órganos de cálculo y los RPG a la vez. Latches o registros de desacoplo entre etapas: Solo

una etapa debe escribir en el latch. A veces también podemos perder datos si no tenemos latches que lleven los datos entre etapas.

Page 26: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Sistema de Memoria: Memorias principales no diseñadas para atender

varias operaciones concurrentes. Solo una etapa debe acceder a la memoria.

Identificación de dependencias: Revisar en la tabla de reserva si más de una etapa

accede a memoria.

Page 27: Unidad  2:  Segmentación

Tabla de ReservaInstrucción BUS D/L ALU MEM ESC

 rd = rf1 op rf2 

OP 

  mar = pc mdr = M(mar) ir = mdr pc = pc + 4

  decodificar A = rf1 B = rf2

  buff = A op B 

 - rd = buff

 rd = M(rf1+d)

 LOAD 

  mar = pc mdr = M(mar) ir = mdr pc = pc + 4

  decodificar A = rf1 B = d

  mar = A + B

mdr = M(mar)  rd = mdr

 M(rf1+d) = rf2

 STORE 

  mar = pc mdr = M(mar) ir = mdr pc = pc + 4

 decodificar A = rf1 B = d mdr = rf2

 mar = A + B M(mar) = mdr -

 if (cond)

pc = pc + d 

BRx 

  mar = pc mdr = M(mar) ir = mdr pc = pc + 4

 decodificar A = pc B = d A’ = rf1

 buff = A + B cond = (A’ cmp 0)

 if (cond)pc = buff

 -

MEM y BUS acceden a memoria: MEM para leer instrucciones y MEM para

leer o escribir datos.

Page 28: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Sistema de Memoria >> Existen dependencias: Dos etapas (BUS y MEM) compitiendo por la memoria.

Solución: Emplear Jerarquía de Memoria: Cachés tan

rápidas como los registros (no espera). Arquitectura Harvard: Sistema con dos caches,

una para datos y la otra para instrucciones.

Page 29: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Unidad de Ejecución: Órganos de cálculo diseñados para realizar una sola operación a

la vez. Solo una etapa debe usarlos a la vez.

Registros de propósito general permiten múltiples lecturas concurrentes si tienen múltiples buses de acceso: Organización en Banco de Registros lo permite.

Registros solo permiten una escritura a la vez.

Identificación: Revisar en la tabla de reserva si varias etapas usan la ALU y si

alguna etapa la quiere usar para más de una operación a la vez.

Page 30: Unidad  2:  Segmentación

Tabla de ReservaInstrucción BUS D/L ALU MEM ESC

 rd = rf1 op rf2 

OP 

  ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = rf2

  buff = A op B 

 - rd = buff

 rd = M(rf1+d)

 LOAD 

  ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = d

  mar = A + B

mdr = M(mar)  rd = mdr

 M(rf1+d) = rf2

 STORE 

  ir = Mi(pc) pc = pc + 4

 decodificar A = rf1 B = d mdr = rf2

 mar = A + B M(mar) = mdr -

 if (cond)

pc = pc + d 

BRx 

  ir = Mi(pc) pc = pc + 4

 decodificar A = pc B = d A’ = rf1

 buff = A + B cond = (A’ cmp 0)

 if (cond)pc = buff

 -

BUS y ALU intentan usar la ALU a la vez: BUS para incrementar el PC y

ALU para ejecutar las operaciones pero

además para comparar A’ con 0

Page 31: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Recursos de cálculo>> Existen dependencias: ALU requerida por la etapa BUS (incremento del PC) y por etapa

ALU (operación). Instrucción BRx requiere comparar rf1 con 0 en la etapa ALU y

realizar pc + d.Registros de Propósito General:

RPG: Requeridas dos lecturas y una escritura simultáneamente.

Solución: Sumador en BUS (incremento), ALU en ALU (operación) y

Comparador en ALU. Diseñar un BR capaz de dos lecturas y una escritura.

Page 32: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Latches o registros de retención: Necesidad de retención de datos entre etapas para

que la segmentación funcione. Lectura al principio del período y escritura al final Sólo una etapa puede escribir en un latch a la vez. Datos sólo deben permanecer en latches durante un

período porque de lo contrario, una instrucción posterior puede sobreescribirlo y se perdería. Latches deben ir llevando los datos de una etapa a la

otra, como los corredores de relevos llevan las estafetas.

Page 33: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Identificación de dependencias: Sobreescrituras de datos:

Revisar cada instrucción en la tabla de reserva observando si alguna escribe en un registro un dato que luego no lee en la etapa siguiente.

Colisiones: Revisar en la tabla de reserva si más de una etapa

intenta escribir en un mismo registro.

Page 34: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Identificación de dependencias: Sobreescrituras de datos:

Revisar cada instrucción en la tabla de reserva observando si alguna escribe en un registro un dato que luego no lee en la etapa siguiente.

Colisiones: Revisar en la tabla de reserva si más de una etapa

intenta escribir en un mismo registro.

Page 35: Unidad  2:  Segmentación

Tabla de ReservaInstrucción BUS D/L ALU MEM ESC

 rd = rf1 op rf2 

OP 

  ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = rf2

  buff = A op B 

 - rd = buff

 rd = M(rf1+d)

 LOAD 

  ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = d

  mar = A + B

mdr = M(mar)  rd = mdr

 M(rf1+d) = rf2

 STORE 

  ir = Mi(pc) pc = pc + 4

 decodificar A = rf1 B = d mdr = rf2

 mar = A + B M(mar) = mdr -

 if (cond)

pc = pc + d 

BRx 

  ir = Mi(pc) pc = pc + 4

 decodificar A = pc B = d A’ = rf1

 buff = A + B cond = (A’ cmp 0)

 if (cond)pc = buff

 -

OP: escribe en buff en ALU y lo lee hasta en

ESC

STORE: escribe en mdr en D/L y lo lee hasta en

MEM

TODAS: ¡Se

escribe en ir en

BUS y no se lee luego,

perdiendo su

valor!

Page 36: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Identificación de dependencias: Sobreescrituras de datos:

Revisar cada instrucción en la tabla de reserva observando si alguna escribe en un registro un dato que luego no lee en la etapa siguiente.

Colisiones: Revisar en la tabla de reserva si más de una etapa

intenta escribir en un mismo registro.

Page 37: Unidad  2:  Segmentación

Tabla de ReservaInstrucción BUS D/L ALU MEM ESC

 rd = rf1 op rf2 

OP 

    ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = rf2

  buff = A op B 

 - rd = buff

 rd = M(rf1+d)

 LOAD 

   ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = d

  mar = A + B

mdr = M(mar)  rd = mdr

 M(rf1+d) = rf2

 STORE 

  ir = Mi(pc) pc = pc + 4

 decodificar A = rf1 B = d mdr = rf2

 mar = A + B M(mar) = mdr -

 if (cond)

pc = pc + d 

BRx 

   ir = Mi(pc) pc = pc + 4

 decodificar A = pc B = d A’ = rf1

 buff = A + B cond = (A’ cmp 0)

 if (cond)pc = buff

 -

D/L y MEM : intentan escribir en mdr

BUS y MEM: intentan escribir

en pc

Page 38: Unidad  2:  Segmentación

Riesgos por dependencias estructurales

Latches >> Existen dependencias: Sobreescrituras:

Buff en OP; mdr en STORE; ir en TODAS Colisiones.

D/L y MEM en mdr; BUS y MEM en pc

Solución: Adicionar a mdr, un mdrin y mdrout: uno por función. Buff eliminado, mar queda a la salida de la ALU. PC no se replica, se multiplexa cuando BRx y se toma el salto IR debe replicarse para no perder las instrucciones en el cauce

Page 39: Unidad  2:  Segmentación

Tabla de Reserva con dependencias resueltas

Instrucción BUS D/L ALU MEM ESC

 rd = rf1 op rf2

 OP

 

  ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = rf2 ir2 = ir

  

mar = A op B Ir3 = ir2

  

mdrin = mar ir4 = ir3

  

rd = mdrin

 rd = M(rf1+d)

 LOAD

 

  ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = dir2 = ir

 

mar = A + BIr3 = ir2

  

mdrin = Md(mar) ir4 = ir3

  

rd = mdrin

 M(rf1+d) = rf2

 STORE

 

  ir = Mi(pc) pc = pc + 4

  decodificar A = rf1 B = d

mdr = rf2ir2 = ir

  mar = A + B

mdrout = mdrIr3 = ir2

  

M(mar) = mdrout ir4 = ir3

  -

 if (cond)

pc = pc + d 

BRx 

  ir = Mi(pc) pc = pc + 4

  decodificar A = pc B = d

A’ = rf1ir2 = ir

  mar = A + B

cond = (A’ cmp 0)

Ir3 = ir2

  if (cond) pc = mar

ir4 = ir3

  -

Page 40: Unidad  2:  Segmentación

Estructura DLX sin dependencias estructurales

ALU

M DR

PC

M AR

IR

iCache

M DRIN

BR

Rf2 RRf1 R

A B

Inst

@ Inst

A'

Com p

0

S4

M DROUT

BR

Rd W rite

IR2

IR3

IR4

(o ffse t d)

Cond

DLX Datapath - Dependencias estructurales resueltas

dCache

BUS

D/L

ALU

MEM

ESC

R /W

R elo j

R elo j

R elo j

R elo jR elo j

R elo j R elo jR elo j

@ datos

datos_out

datos_ in

R elo j R elo jR elo j

R /W

IC ache:R /W

BR :@ R f1(C O , R 1), R eadBR :@ R f2(C O , R 2), R eadM uxA(C O )M uxB(C O )

ALU sel(C O )

dC ache:R /W (C O )

BR :@ R d(C O , R d|R 2)

S eñ a le s d e C o n tro lS istem a d e M em o r iaR elo j