Está en la página 1de 18

Arquitectura de Computadores

1. Introduccin
2. La CPU
3. Lenguaje Mquina
4. La Memoria
5. Sistemas de Entrada/Salida
6. Mejora del Rendimiento
7. Arquitecturas RISC
Arquitectura de Computadores

Mejora del Rendimiento - 1

Arquitectura de Computadores
6. Mejora del Rendimiento
1. CPU Segmentada (Pipeline)
1.2 Un ejemplo: DLX
2. Memoria Cach

Arquitectura de Computadores

Mejora del Rendimiento - 2

Segmentacin (Un ejemplo: DLX)

La CPU

Vamos a ver una simplificacin (sin tener en cuenta


instrucciones multiciclo, MMU, etc.)
Arquitectura RISC load/store
Arquitectura Harvard de memoria
5 etapas
IF:

Extraccin de la instruccin

ID:

Decodificacin / Acceso a registros

EX:

Ejecucin / Clculo de operandos

MEM:

Acceso a memoria

WB:
registros)

Write Back (escritura en

Cada etapa en un ciclo de reloj

Arquitectura de Computadores

Mejora del Rendimiento - 3

...DLX

MUX

Dato de Mem.
Dato a Reg.

D-cach

32

Lectura /
Escritura

Almacenar Reg.

32

Registros

32

Reg. Instr.

I-cach

ALU Output

Actualizar
PC

ALU

Unidad
de Saltos

ALU Input 1

PC

Salto

ALU Input 2

Nuevo PC 32

ALU Input 3

Pipeline

Escritura en registros

IF

ID

Arquitectura de Computadores

EX

32

MEM

WB

Mejora del Rendimiento - 4

Pipeline

...DLX

IF: Extraccin de la instruccin


IR = I_Cache [PC]

IR es el Registro de Instruccin

PC = PC+4

PC es el Contador de Programa

ID: Decodificacin / Acceso a registros


1 Subciclo:
Decodificar instruccin
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)

Arquitectura de Computadores

Mejora del Rendimiento - 5

Pipeline
EX

...DLX
Ejecucin / Clculo de operandos
Obtener ALU_Output
operacin aritmtica/lgica
direccin 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

Arquitectura de Computadores

Mejora del Rendimiento - 6

...DLX

Pipeline

DLX Instrucciones Tpicas


INSTRUCCIN

OPERACIN

EJEMPLO

NOP
LW

Reg, Dir

(Reg<-Mem[Dir])

LW r12, Vector(r4)

SW

Dir, Reg

(Mem[Dir]<- Reg)

SW Vector(r4), r12

ADD/SUB
SGT

RA,RB,RC

RA,RB,RC

(RA<-RB+RC)

ADD R1,R2,R3

RA =(RB>RC)?1:0

SGT R1,R5,R4

(NE,EQ,LT,LE,GE)

BEQZ

RA,ETIQ

IF RA=0 GOTO ETIQ

BEQZ R1,BUCLE

SLLI

RA,RB,X

RA<-RB<<2

SLLI R5,R5,2

(SLL,SRL,SRLI)

Arquitectura de Computadores

Mejora del Rendimiento - 7

Pipeline

...DLX
DLX Ralentizacin Dependencias de Datos

Slo vamos a estudiar las RAW


WAW ocurren en cauces con ms de un etapa de escritura y en
ejecuciones fuera de orden
WAR cuando una etapa de escritura precede a una de lectura

lw R1,$100

IF

ID

EX

IF

ID

EX

IF

ID

EX

IF

ID

lw R2,$200
add R2,R1,R2
sub R1,R2,R1

Antiguo R1

Nuevo R1

MEM WB
MEM WB

MEM WB
EX

MEM WB
Tiempo

Arquitectura de Computadores

Mejora del Rendimiento - 8

Pipeline

...DLX

SOLUCIN SOFTWARE (Insertar NOP por el compilador)

lw R1,$100

IF

ID

EX

IF

ID

EX

IF

ID

EX

IF

ID

EX

IF

ID

lw R2,$200
add R2,R1,R2
nop
nop

MEM WB

Nuevo R1

MEM WB
MEM WB

No hay conflicto

MEM WB
EX

MEM WB
Tiempo

Se accede a los registros en el 2 subciclo de ID

Habra bastado con una nica instruccin NOP?


Arquitectura de Computadores

Mejora del Rendimiento - 9

...DLX

Pipeline

SOLUCIN HARDWARE (Detener el cauce)


lw R1,$100
lw R2,$200

IF

ID

EX

IF

ID

EX

IF

IF

add R2,R1,R2
sub R1,R2,R1

MEM WB

10

Nuevo R1

MEM WB
IF

ID

EX

IF

IF

MEM WB
IF

ID

EX

Tiempo

Cada dependencia RAW genera 2 burbujas!


Se ralentiza la ejecucin del programa
Arquitectura de Computadores

Mejora del Rendimiento - 10

DLX

Pipeline

SOLUCIN HARDWARE (Anticipacin)

add R2,R1,R2

IF

ID

EX

MEM WB

Anticipacin

R2

sub R1,R2,R1

IF

ID

EX

MEM WB
Tiempo

ALU

R2

ALU

Eliminamos las burbujas!


Funciona para todas las instrucciones?

Arquitectura de Computadores

Mejora del Rendimiento - 11

Pipeline

DLX

SOLUCIN HARDWARE (Detener el cauce + Anticipacin)

lw R1,$100

IF

ID

EX

9
8
Anticipacin
MEM->EX

MEM WB
R1

lw R2,$200

IF

ID

EX

Anticipacin

MEM WB

EX->EX

R2

add R2,R1,R2
sub R1,R2,R1

IF

ID

ID

10

EX

MEM WB
R2

IF

IF

ID

EX

MEM WB
Tiempo

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


El dato en una instruccin load (lw) est disponible tras la etapa MEM
Arquitectura de Computadores

Mejora del Rendimiento - 12

...DLX

Pipeline

EJEMPLO Sin anticipacin (Forwarding)

lw R5,$100
slli R5,R5,2

IF

ID

EX

IF

IF

sgt R1,R4,R5

MEM WB
IF

Nuevo R5

ID

EX

IF

IF

MEM WB
EXE MEM
Tiempo

Arquitectura de Computadores

Mejora del Rendimiento - 13

Pipeline

DLX

DLX Ralentizacin Motivos estructurales


DLX no tiene riesgos estructurales (Structural Stall).
Vamos a introducir algunas modificaciones en las etapas del cauce
para provocar la aparicin de riesgos estructurales.
Caso 1.- Supongamos que en la etapa MEM realizamos una
escritura en los registros

lw R1,$100

IF

ID

EX

CASO 1
4

MEM
WB

WB

Acceso simultneo

Banco de REGISTROS

slli R5,R6,2

IF

Arquitectura de Computadores

ID

EX

MEM
WB

WB

Tiempo

Mejora del Rendimiento - 14

Pipeline

...DLX
CASO 2

Caso 2.- La etapa ID tiene dos subciclos (1 decodificacin y 2


acceso a los operandos en el banco de registros). Dividimos la
etapa ID en dos: DEC, REG.
1

lw R5,$100

IF

DEC REG

EX

Acceso simultneo

MEM WB

Banco de REGISTROS

slli R5,R5,2

IF

DEC REG

EX

MEM WB
Tiempo

OTROS RIESGOS
Utilizacin de la ALU (por ejemplo para actualizar el contador de programa)
Una nica memoria (accesos simultneos desde las etapas IF y MEM).
Arquitectura de Computadores

Mejora del Rendimiento - 15

Pipeline

...DLX

DLX Ralentizacin Bifurcaciones

El problema aparece con las instrucciones de salto condicional


Detener el cauce, para conocer la siguiente instruccin a ejecutar,
reduce su rendimiento
Calcular la direccin de salto lo antes posible (etapa ID) favorece la
toma de decisiones y evita los riesgos de control

Implementacin

BTA (Branch Target Address): Nuevo registro interno


En la etapa ID se calcula la direccin del salto (desplazamiento
sobre el PC), se guarda en BTA y se comprueba la condicin de salto
(consulta de un registro)
Poltica adoptada: Prediccin esttica 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 ejecucin

Se toma el salto

=> Vaciar el cauce

Arquitectura de Computadores

ACIERTO

Mejora del Rendimiento - 16

Pipeline

...DLX
Bifurcaciones: NO se toma el salto
Prediccin esttica de
no saltar

nop

IF

ID

EX

MEM WB

IF

ID

EX MEM
R1=1

beqz R1,SALIR
PC = PC + 4

add R2,R3,R2
sub R5,R4,R6

IF

ID

EX

IF

ID

10

BTAC = PC + despl.

WB

R1=1 NO SALTAR

MEM WB
EX

MEM WB

SALIR: ..
Tiempo

Arquitectura de Computadores

Mejora del Rendimiento - 17

Pipeline

...DLX
Bifurcaciones: SI se toma el salto
Prediccin esttica de
no saltar

nop

IF

ID

EX

MEM WB

IF

ID

EX MEM
R1=0

beqz R1,SALIR
add R2,R3,R2

10

PC = BTAC

WB

SALTAR!!

Vaciar

IF

sub R5,R4,R6
SALIR: ..

IF

ID

EX

MEM WB
Tiempo

Arquitectura de Computadores

Mejora del Rendimiento - 18

También podría gustarte