Arquitectura de Computadores

18
Arquitectura de Computadores Mejora del Rendimiento - 1 Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas de Entrada/Salida 6. Mejora del Rendimiento 7. Arquitecturas RISC

description

Arquitectura de Computadores. 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas de Entrada/Salida 6. Mejora del Rendimiento 7. Arquitecturas RISC. . Arquitectura de Computadores. 6. Mejora del Rendimiento. 1. CPU Segmentada ( Pipeline ) 1.2 Un ejemplo: DLX - PowerPoint PPT Presentation

Transcript of Arquitectura de Computadores

Page 1: Arquitectura de Computadores

Arquitectura de Computadores Mejora del Rendimiento - 1

Arquitectura de Computadores

1. Introducción2. La CPU3. Lenguaje Máquina4. La Memoria5. Sistemas de Entrada/Salida6. Mejora del Rendimiento7. Arquitecturas RISC

Page 2: Arquitectura de Computadores

Arquitectura de Computadores Mejora del Rendimiento - 2

Arquitectura de Computadores

6. Mejora del Rendimiento

1. CPU Segmentada (Pipeline)

1.2 Un ejemplo: DLX2. Memoria Caché

1. CPU Segmentada (Pipeline)

1.2 Un ejemplo: DLX

Page 3: Arquitectura de Computadores

Mejora del Rendimiento - 3Arquitectura de Computadores

La CPU Segmentación (Un ejemplo: DLX)

Vamos a ver una simplificación (sin tener en cuenta instrucciones multiciclo, MMU, etc.)

Arquitectura RISC load/store

Arquitectura Harvard de memoria

5 etapas

IF: Extracción de la instrucción

ID: Decodificación / Acceso a registros

EX: Ejecución / Cálculo de operandos

MEM: Acceso a memoria

WB: Write Back (escritura en registros)

Cada etapa en un ciclo de reloj

Page 4: Arquitectura de Computadores

Mejora del Rendimiento - 4Arquitectura de Computadores

Pipeline ...DLXI-

cach

é

Actualizar PC

Reg

. Ins

tr. D

-cac

AL

U O

utpu

tA

lmac

enar

Reg

.

Dat

o de

Mem

.D

ato

a R

eg. M

UXA

LU

AL

U I

nput

1A

LU

Inp

ut 2

AL

U I

nput

3P

C

IF ID EX MEM WB

5

532

32

32

32

Escritura en registros

Lectura /Escritura

Reg

istr

os

Unidadde Saltos

32 SaltoNuevo PC

Page 5: Arquitectura de Computadores

Mejora del Rendimiento - 5Arquitectura de Computadores

Pipeline ...DLX

IF:Extracción de la instrucción

IR = I_Cache [PC] IR es el Registro de Instrucción

PC = PC+4 PC es el Contador de Programa

ID: Decodificación / Acceso a registros

1 Subciclo:

Decodificar instrucción

2 Subciclo:

ALU_Input[1..2] = Registros (IR [25-21 , 20-16]) ó

ALU_Input[3] = IR[15-0] (Dir. Inmediatos) ó

Nuevo PC = Dir_Salto (en instrucciones de salto)

Page 6: Arquitectura de Computadores

Mejora del Rendimiento - 6Arquitectura de Computadores

Pipeline ...DLX

EX Ejecución / Cálculo de operandos

Obtener ALU_Output

operación aritmética/lógica

dirección de memoria

MEM Acceso a memoria

Dato_a_Registro = ALU_Output ó

D_Cache [ALU_Output] = Almacenar_Reg

WB Write Back (escritura en registros)

Registros[] = Dato_a_Registro ó

Registros[] = Dato_de_Mem

Page 7: Arquitectura de Computadores

Mejora del Rendimiento - 7Arquitectura de Computadores

Pipeline ...DLX

DLX Instrucciones Típicas

INSTRUCCIÓN OPERACIÓN EJEMPLO

NOP

LW Reg, Dir (Reg<-Mem[Dir]) LW r12, Vector(r4)

SW Dir, Reg (Mem[Dir]<- Reg) SW Vector(r4), r12

ADD/SUB RA,RB,RC (RA<-RB+RC) ADD R1,R2,R3

SGT RA,RB,RC(NE,EQ,LT,LE,GE)

RA =(RB>RC)?1:0 SGT R1,R5,R4

BEQZ RA,ETIQ IF RA=0 GOTO ETIQ BEQZ R1,BUCLE

SLLI RA,RB,X(SLL,SRL,SRLI)

RA<-RB<<2 SLLI R5,R5,2

Page 8: Arquitectura de Computadores

Mejora del Rendimiento - 8Arquitectura de Computadores

Pipeline ...DLX

DLX Ralentización – Dependencias de Datos Sólo vamos a estudiar las RAW

WAW ocurren en cauces con más de un etapa de escritura y en ejecuciones fuera de orden

WAR cuando una etapa de escritura precede a una de lectura

IFlw R1,$100

lw R2,$200

add R2,R1,R2

sub R1,R2,R1

Tiempo

1 2 3 4 5 6 7 8

ID

IF

EX

ID

IF WB

MEM WB

MEM

EX

ID

IF

WB

MEM

EX

ID

WB

MEM

EXAntiguo R1

Nuevo R1

Page 9: Arquitectura de Computadores

Mejora del Rendimiento - 9Arquitectura de Computadores

Pipeline ...DLX

SOLUCIÓN SOFTWARE (Insertar NOP por el compilador)

lw R1,$100

lw R2,$200

add R2,R1,R2

Tiempo

1 2 3 4 5 6 7 8

nop

nop

¿Habría bastado con una única instrucción NOP?

9

MEM WBIF ID EX

MEM WBIF ID EX

MEM WBIF ID EX

MEM WBIF ID EX

MEM WBIF ID EX

No hay conflicto

Se accede a los registros en el 2 subciclo de ID

Nuevo R1

Page 10: Arquitectura de Computadores

Mejora del Rendimiento - 10Arquitectura de Computadores

Pipeline ...DLX

SOLUCIÓN HARDWARE (Detener el cauce)

lw R1,$100

lw R2,$200

add R2,R1,R2

Tiempo

1 2 3 4 5 6 7 8

Nuevo R1

9

sub R1,R2,R1

10

¡Cada dependencia RAW genera 2 burbujas!

Se ralentiza la ejecución del programa

IF ID

IF

EX

ID

IF

MEM

EX

IF

WB

MEM

IF

WB

ID

IF

EX

IF

MEM

IF

WB

ID EX

Page 11: Arquitectura de Computadores

Mejora del Rendimiento - 11Arquitectura de Computadores

Pipeline …DLX

SOLUCIÓN HARDWARE (Anticipación)

add R2,R1,R2

Tiempo

1 2 3 4 5 6

sub R1,R2,R1

¡Eliminamos las burbujas!

¿Funciona para todas las instrucciones?

ALU

ALU

R2

AnticipaciónMEM WBIF EX

MEM WB

ID

IF ID EX

R2

Page 12: Arquitectura de Computadores

Mejora del Rendimiento - 12Arquitectura de Computadores

Pipeline …DLX

SOLUCIÓN HARDWARE (Detener el cauce + Anticipación)

lw R1,$100

lw R2,$200

add R2,R1,R2

Tiempo

1 2 3 4 5 6 7 8 9

sub R1,R2,R1

10

Aparecen burbujas cuando hay instrucciones de acceso a memoria (lw)

El dato en una instrucción load (lw) está disponible tras la etapa MEM

Anticipación

MEM->EXIF MEMID EX

IF ID EX

IF ID

IF

WB

MEM WB

ID

WB

MEM

IF

EX

WB

ID

MEM

EXR2

R1

R2

Anticipación

EX->EX

Page 13: Arquitectura de Computadores

Mejora del Rendimiento - 13Arquitectura de Computadores

Pipeline ...DLX

EJEMPLO – Sin anticipación (Forwarding)

lw R5,$100

slli R5,R5,2

sgt R1,R4,R5

Tiempo

1 2 3 4 5 6 7 8 9

ID

IF

IF IF IF

MEMIF ID EX WB Nuevo R5

MEM WBEX

EXEIF MEM

Page 14: Arquitectura de Computadores

Mejora del Rendimiento - 14Arquitectura de Computadores

Pipeline …DLXDLX Ralentización – Motivos estructurales

DLX no tiene riesgos estructurales (Structural Stall).

Vamos a introducir algunas modificaciones en las etapas del cauce para provocar la aparición de riesgos estructurales.

Caso 1.- Supongamos que en la etapa MEM realizamos una escritura en los registros

Tiempo

1 2 3 4 5 6 7 8CASO 1

lw R1,$100

slli R5,R6,2

Banco de REGISTROS

Acceso simultáneoWBWB

MEMWB WBWB

IF ID EX

IF ID

MEMWB

EX

Page 15: Arquitectura de Computadores

Mejora del Rendimiento - 15Arquitectura de Computadores

Pipeline ...DLX

Banco de REGISTROS

Acceso simultáneo

OTROS RIESGOS Utilización de la ALU (por ejemplo para actualizar el contador de

programa)

Una única memoria (accesos simultáneos desde las etapas IF y MEM).

Caso 2.- La etapa ID tiene dos subciclos (1º decodificación y 2º acceso a los operandos en el banco de registros).

Dividimos la etapa ID en dos: DEC, REG.

CASO 2

WBlw R5,$100

slli R5,R5,2Tiempo

1 2 3 4 5 6 7 8

…………………………

IF DEC REG MEMEX

IF DEC REG MEM WBEX

Page 16: Arquitectura de Computadores

Mejora del Rendimiento - 16Arquitectura de Computadores

Pipeline ...DLXDLX Ralentización – Bifurcaciones

El problema aparece con las instrucciones de salto condicional

Detener el cauce, para conocer la siguiente instrucción a ejecutar, reduce su rendimiento

Calcular la dirección de salto lo antes posible (etapa ID) favorece la toma de decisiones y evita los riesgos de control

Implementación BTA (Branch Target Address): Nuevo registro interno

En la etapa ID se calcula la dirección del salto (desplazamiento sobre el PC), se guarda en BTA y se comprueba la condición de salto (consulta de un registro)

Política adoptada: Predicción estática de “no saltar”

En la etapa EX, si el salto se toma, se actualiza PC con BTA

Puede ocurrir dos situaciones:

No se toma el salto => Continua la ejecución

Se toma el salto => Vaciar el cauce

ACIERTO

Page 17: Arquitectura de Computadores

Mejora del Rendimiento - 17Arquitectura de Computadores

Pipeline ...DLX

Bifurcaciones: NO se toma el salto

nop

beqz R1,SALIR

add R2,R3,R2

Tiempo

1 2 3 4 5 6 7 8 9

sub R5,R4,R6

10

SALIR: ……..

R1=1

IF ID

IFPC = PC + 4

EX

ID

IF WB

MEM WB

MEM

EX

ID

IF

WB

MEM

EX

ID

WB

MEM

EX

Predicción estática de “no saltar”

BTAC = PC +

despl.R1=1 → NO

SALTAR

Page 18: Arquitectura de Computadores

Mejora del Rendimiento - 18Arquitectura de Computadores

Pipeline ...DLX

Bifurcaciones: SI se toma el salto

nop

beqz R1,SALIR

add R2,R3,R2

Tiempo

1 2 3 4 5 6 7 8 9

sub R5,R4,R6

10

SALIR: ……..

R1=0

IF ID

IF

EX

ID

IF

MEM

EX

Predicción estática de “no saltar”

PC = BTAC

¡¡SALTAR!!

Vaciar

IF WBMEM

WB

EX

WB

MEM

ID