Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Estructura Computadores, Apuntes de Informática

Asignatura: Estructura de Computadores, Profesor: Jose Luis Pastrana, Carrera: I.T.I. Gestión, Universidad: UMA

Tipo: Apuntes

Antes del 2010

Subido el 11/07/2010

chouki
chouki 🇪🇸

4.3

(6)

4 documentos

1 / 28

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Tema 6. Mejora de las prestaciones de un
procesador. Segmentación
Introducción
Concepto de segmentación
Aplicación al MIPS
Riesgos por dependencias
Riesgos de datos. Tratamiento
Riesgos estructurales. Tratamiento
Instrucciones multiciclo
Riesgos de control. Tratamiento
Resumen
2
Tema 6Estructura de Computadores
1. Introducción
Recordar tema anterior: Características de un RISC (MIPS)
Control cableado, frente a control microprogramado
Instrucciones simples y pocos modos de direccionamiento
Formato de instrucción de tamaño fijo
Arquitectura load/store
Banco de 32 registros de propósito general
Dependencia del compilador
Estudiamos dos soluciones:
Solución monociclo: toda instrucción consume 1 ck
Frecuencia de ck depende del camino crítico inst. + larga
Solución multiciclo: instrucción consume 1 ck en cada bloque funcional
Unidades funcionales desocupadas
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Vista previa parcial del texto

¡Descarga Estructura Computadores y más Apuntes en PDF de Informática solo en Docsity!

Tema 6. Mejora de las prestaciones de un

procesador. Segmentación

À Introducción

Á Concepto de segmentación

® Aplicación al MIPS

à Riesgos por dependencias

• Riesgos de datos. Tratamiento

• Riesgos estructurales. Tratamiento

• Instrucciones multiciclo

• Riesgos de control. Tratamiento

Ä Resumen

1. Introducción

q Recordar tema anterior: Características de un RISC (MIPS)

l Control cableado, frente a control microprogramado

l Instrucciones simples y pocos modos de direccionamiento

ò Formato de instrucción de tamaño fijo

l Arquitectura load/store

l Banco de 32 registros de propósito general

l Dependencia del compilador

l Estudiamos dos soluciones:

ò Solución monociclo: toda instrucción consume 1 ck

8 Frecuencia de ck depende del camino crítico inst. + larga

ò Solución multiciclo: instrucción consume 1 ck en cada bloque funcional

8 Unidades funcionales desocupadas

Estructura de Computadores Tema 6 3

1. Introducción

Unidad de datos del MIPS

BI DI EJ M PE

Fases instruc. :

BI Ù Búsqueda Inst

DI Ù Decodif. Inst.

EJ Ù Ejecución

M Ù Acceso a Memoria

PE Ù Post-Escritura

In struction memo ry

Add ress

Add Add result

Shif t left 2

Instructio n

M

u x

Add

PC

Write data

M

u x

Registe rs

Read data 1

Read data 2

Read re gister 1

Read re gister 2

Sign exte nd

W rite re gister

W rite data

Read data Ad dress Data me mory 1

ALU

result M u x

ALU

Zero

IFI : Instruction fetch ID:: Instruction decode/

register file read

EX: Execute/

address calculation

MEM : Memory access WB: Write back

2. Concepto de Segmentación

Definiciones

q SEGMENTACIÓN : técnica para mejorar el rendimiento del procesador

mediante la superposición de la ejecución de múltiples

instrucciones

l Mayor aprovechamiento de recursos

l Invisible al programador!

q Etapa de segmentación : la instrucción accede a una unidad funcional (1ck)

q Throughput : nº de instruc. que se terminan de ejecutar por unidad de tiempo

q Latencia : tiempo necesario para ejecutar completamente una instrucción

Estructura de Computadores Tema 6 7

2. Concepto de Segmentación

Rendimiento

load : 5 ck

jmp, branch: 3 ck

resto: 4 ck TC = 10 ns

q 10% load y 20% jmp è CPI = 3.

Tiempo

Instrucciones

10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns

Solución Multiciclo

è T

CPU

(multic.) = 39 x NI (ns)

ck1 ck2 ck

BI DI EJ M PE

ck4 ck

BI DI EJ PE

ck6 ck7 ck8 ck

BI DI

ck10 ck

2. Concepto de Segmentación

Rendimiento

Tiempo

Instrucciones

10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns

Segmentación del MIPS

ck1 ck2 ck

BI DI EJ M PE

BI DI EJ M PE

BI DI EJ M PE

BI DI EJ M PE

BI DI EJ M PE

BI DI EJ M PE

ck4 ck5 ck

TC = 10 ns

CPI = 1 (Ideal)

T

CPU

= 10 x NI (ns)

ck7 ck8 ck9 ck

Proc. Seg.

en 5 etapas

Estructura de Computadores Tema 6 9

l Implementación monociclo :

Latencia = 40 ns

Throuhput = NI / T

CPU

= 1/40 x 10

= 25 Mill_ Inst/seg.

l Implementación multiciclo :

Latencia = 30 ns - 50 ns (depende de la instrucción)

Throuhput = NI / T

CPU

= 1/39 x 10

= 25.7 Mill_ Inst/seg.

l Implementación segmentada :

Latencia = 50 ns

Throuhput = NI / T

CPU

= 1/10 x 10

= 100 Mill_ Inst/seg.

2. Concepto de Segmentación

Rendimiento

3. Aplicación al MIPS

q Registros de segmentación

mantienen los valores que se

transfieren entre etapas

ò BI / DI : Almacena la

instrucción y PC (saltos)

ò DI / EJ : Almacena el valor

de Rs1, Rs2, Rd, valor inm.

y PC

ò EJ / M : Almacena la salida

de la ALU, condición de

salto, Rd o Rs

ò M / PE : Almacena salida de

memoria, salida ALU ...

Instruction memory

Address

Add Add result Shift left 2

Instruction

M

u x

Add

PC

Write^0 data

M

u x

Registers

Read data 1

Read data 2

Read register 1

Read register 2

Sign extend

Write register Write data

Read data Address Data memory 1

ALU

result M u x

ALU

Zero

BI/DI DI/EJ EJ/M M/PE

¿Por qué se guarda la salida 2 del banco de registros en EJ/M?

¿Y por qué una línea va desde EJ/M a M/PE?

¿Qué error hay en el diseño de la instrucciónlw?

Observar:

Estructura de Computadores Tema 6 13

q El control en la segmentación: tenemos 5 etapas, ¿qué hay que

controlar en cada una de ellas?

ò Lectura de la instrucción e incremento del PC. Siempre se realiza.

ò Decodificación de la instrucción / lectura de los registros. Idem.:

tampoco requiere de control.

ò Ejecución/cálculo de dirección: registro-destino, operación ALU,

fuente de la ALU.

ò Acceso a memoria: salto, escritura/lectura de memoria.

ò Post-escritura: memoria a registro, escritura registro.

3. Aplicación al MIPS

q El mismo control, pero lo agrupamos por etapas de segmentación

q Propagamos las señales de control, al igual que se hace con los datos

3. Aplicación al MIPS

Ejecución/Cálculo dirección Acceso a memoria Post-escritura

Instrucción

Reg

Dst

ALU

Op

ALU

Op

ALU

Src Branch

Mem

Read

Mem

Write

Reg

write

Mem to

Reg

R-format 1 1 0 0 0 0 0 1 0

lw

sw X 0 0 1 0 0 1 0 X

beq X 0 1 0 1 0 0 0 X

Control

EX

M

WB

M

WB

WB

IF/ID ID/EX EX/MEM MEM/WB

Instruction

Estructura de Computadores Tema 6 15

3. Aplicación al MIPS

PC

Instruction memory

Instruction

Add

Instruction [20– 16]

MemtoReg

ALUOp

Branch

RegDst

ALUSrc

Instruction [15– 0]

M

u x

Add Add result

Registers Write register

Write data

Read data 1

Read data 2

Read register 1

Read register 2

Sign extend

M

u x 1

ALU

result

Zero

Write data

Read data M u x

ALU

control

Shift left 2 RegWrite

MemRead

Control

ALU

Instruction [15– 11]

EX

M

WB

M

WB

WB

IF/ID

PCSrc

ID/EX

EX/MEM

MEM/ WB

M

u x

MemWrite

Address Data memory

Address

q Unidad de datos incluyendo las señales de control

3. Aplicación al MIPS. Ejemplo

q Ejemplo: veremos cómo avanzan estas cinco instrucciones en el pipeline:

lw $10, 20($1)

sub $11, $2, $

and $12, $4, $

or $13, $6, $

add $14, $8, $

(las instrucciones que preceden al lw se etiquetan de la siguiente manera: antes <1>, antes

<2>, ... y las que van después del add: después <1>, después <2>, ...)

Estructura de Computadores Tema 6 19

3. Aplicación al MIPS. Ejemplo

q Ciclo de reloj 3

Instructionı memory

Address

Instructionı [20– 16]

MemtoReg

Branch

ALUSrc

Instructionı [15– 0]

Add Addı result

Registers Writeı register

Writeı data

Readı data 1

Readı data 2

Readı register 1

Readı register 2 ALUı result

Shiftı left 2 RegWrite

MemRead

Control

ALU

Instructionı [15– 11]

EX

M

WB

WB

Instruction

IF/ID ID/EX EX/MEM

ID: sub $11, $2, $3 EX: lw $10,... MEM: before<1> WB: before<2>

MEM/WB

IF: and $12, $4, $

Mı uı x

Add

PC

Writeı data

Readı data Mı uı x

MemWrite

sub

X

X

X

X

Mı uı x

Mı uı x 1

ALUOp

RegDst

ALUı control

M

WB

Zero

Signı extend

Dataı memory

Address

Clock 3

3. Aplicación al MIPS. Ejemplo

q Ciclo de reloj 4

WB

EX

M

Instructionı memory

Address

MemtoReg

ALUOp

Branch

RegDst

ALUSrc

Add Addı result

Writeı register

Writeı data (^1)

ALUı result

ALUı control

Shiftı left 2 RegWrite

M

WB

Instruction

IF/ID ID/EX EX/MEM

ID: and $12, $2, $3 EX: sub $11,... MEM: lw $10,... WB: before<1>

MEM/WB

IF: or $13, $6, $

Mı uı x

Add

PC

Writeı data

Mı uı x

and Control

Registers

Readı data 1

Readı data 2

Readı register 1

Readı register 2

X

X

Instructionı [20– 16]

Instructionı [15– 0]

Instructionı [15– 11]

X

X

MemRead

MemWrite

Mı uı x

Mı uı x

ALU

Address Readı data Dataı memory

WB

Zero

Signı extend

Clock 4

Estructura de Computadores Tema 6 21

3. Aplicación al MIPS. Ejemplo

q Ciclo de reloj 5

Instructionı memory

Address

Instructionı [20– 16]

Branch

ALUSrc

Instructionı [15– 0]

Add Addı result

Registers Writeı register

Writeı data

Readı data 1

Readı data 2

Readı register 1

Readı register 2 ALUı result

Shiftı left 2 RegWrite

MemRead

Control

ALU

Instructionı [15– 11]

EX

M

WB

Instruction

IF/ID ID/EX EX/MEM

ID: or $13, $6, $7 EX: and $12,... MEM: sub $11,... WB: lw $10,...

MEM/WB

IF: add $14, $8, $

Mı uı x

Add

PC

Writeı data

Readı data Mı uı x

MemWrite

or

X

X

X

X

Mı uı x

Mı uı x 1

ALUOp

RegDst

ALUı control

M

WB

WB

MemtoReg

Zero

Dataı memory

Address

Signı extend

Clock 5

3. Aplicación al MIPS. Ejemplo

q Ciclo de reloj 6

WB

EX

M

Instructionı memory

Address

MemtoReg

ALUOp

Branch

RegDst

ALUSrc

Add Addı result

ALUı result

ALUı control

Shiftı left 2 RegWrite

M

WB

Instruction

IF/ID ID/EX EX/MEM

ID: add $14, $8, $9 EX: or $13,... MEM: and $12,... WB: sub $11,...

MEM/WB

IF: after<1>

Mı uı x

Add

PC

Writeı data

Mı uı x

add Control

Registers

Readı data 1

Readı data 2

Readı register 1

Readı register 2

X

X

Instructionı [20– 16]

Instructionı [15– 0]

Instructionı [15– 11]

X

X

MemRead

MemWrite

Mı uı x

Mı uı x

ALU

Readı data

WB

Writeı register

Writeı data

Zero

Dataı memory

Address

Signı extend

Clock 6

Estructura de Computadores Tema 6 25

3. Aplicación al MIPS. Ejemplo

q Ciclo de reloj 9

WB

EX

M

Instructionı memory

Address

MemtoReg

ALUOp

Branch

RegDst

ALUSrc

Add Addı result

ALUı result

Zero

ALUı control

Shiftı left 2 RegWrite

M

WB

Instruction

IF/ID ID/EX EX/MEM

ID: after<3> EX: after<2> MEM: after<1> WB: add $14,...

MEM/WB

IF: after<4>

Mı uı x

Add

PC

Writeı data

Mı uı x

Control

Registers

Readı data 1

Readı data 2

Readı register 1

Readı register 2

Instructionı [20– 16]

Instructionı [15– 0] (^) Signı extend

Instructionı [15– 11]

MemRead

MemWrite

Mı uı x

Mı uı x

ALU

Readı data

WB

Writeı register

Writeı data

Dataı memory

Address

Clock 9

q Dependencia : circunstancia del programa que restringe el orden de

ejecución

q Las dependencias entre instruccionespueden dar lugar a situaciones de

conflicto en la ejecución en un procesador segmentado

q Tipos de dependencias (supongamos que I

precede a I

l Dependencia de datos : se debe respetar el orden de acceso al mismo

operando (registro, posición de mem.) en I

e I

ò Dependencia verdadera

I

escribe el operando e I

lo lee

ò Antidependencia

I

lee el operando e I

lo escribe

ò Dependencia de salida

I

e I

escriben el operando

l Dependencia de recursos : I

e I

utilizan el mismo recurso

l Dependencia de control : I

decide si se ejecuta o no I

4. Riesgos por dependencias.

Clasificación de las dependencias

Dependencias falsas o

dependencias por nombre

Estructura de Computadores Tema 6 27

4. Riesgos por dependencias.

Tipos de riesgos

q RIESGO : situación conflictiva, provocada por una dependencia entre dos

instrucciones, que impide que una instrucción sea ejecutada en el

ciclo de reloj que le corresponde.

q Tipos de riesgo:

l Riesgo de datos : la instrucción necesita un operando que aún no está disponible

ò Ejemplo: una instrucción necesita un dato que será el resultado de una

escritura en instrucción anterior que aún no se ha terminado de ejecutar

l Riesgo estructural : conflicto en los accesos a los recursos del sistema

ò Ejemplo: el banco de registros tiene un solo puerto de escritura y dos

instrucciones quieren escribir al mismo tiempo

l Riesgo de control : provocado por instrucciones de control del flujo: saltos, saltos

condicionales, llamadas a rutinas

ò Ejemplo: ¿qué hacer cuando nos encontramos con un salto condicional?

¿cuál es la siguiente instrucción que se debe buscar en BI?

q Los riesgos limitan el rendimiento del sistema segmentado, porque pueden

provocar pérdidas de ciclos

4.1 Riesgos de datos en el MIPS

q Provocados por dependencias de datos

A.- RiesgosRAW (Read After Write) : dependencias verdaderas

I

lw R1, 2(R0)

I

lw R2, 3(R0)

I

add R2, R1, R

I

sub R1, R2, R

ò I

e I

dependen de I

: registro que provoca la dependencia R

ò I

depende de I

: registro que provoca la dependencia R

ò I

depende de I

: registro que provoca la dependencia R

* No todas estas dependencias dan lugar a riesgos

Estructura de Computadores Tema 6 31

add R2 , R1, R

sub R1, R2 , R

BI DI EJ M

BI DI EJ M PE

PE

tiempo

R2 nuevo

Lectura de un valor incorrecto!

4.1 Tratamiento de los riesgos de datos

Riesgos RAW

I

I

ck3 ck4 ck5 ck6 ck7 ck

R2 anterior

4.1 Tratamiento de los riesgos de datos

q Soluciones software (Compilador)

l Insertar instrucciones nop después de cada instrucción que es origen de un riesgo

de datos

l Reordenación del código: insertar otras instrucciones no dependientes, entre las

dos instrucciones para las que se produce riesgo

q Soluciones hardware : detectar el riesgo! è lógica de deteccción de riesgos

A. Detención : detener la ejecución uno o más ciclos Ý pérdida de ciclos

B. Anticipación : anticipar el resultado desde la etapa que lo produce, a la etapa

que lo consume Ý intenta reducir pérdida de ciclos

ò Etapas productoras de datos MIPS : EJ, M

ò Etapas consumidoras de datos MIPS : EJ, M

4 Tipos de cortocircuitos MIPS :

o EJ - EJ

o M - EJ

o M - M

Estructura de Computadores Tema 6 33

DI

M

DI

PE

4.1 Tratamiento de los riesgos de datos

A. Detención

q Unidad de detención de riesgos è Insertar burbujas en ID

add R2 , R1, R

sub R1, R2 , R

BI DI

BI EJ M PE

tiempo

7 Pérdida de dos ciclos de reloj

ck3 ck4 ck5 ck6 ck7 ck8 ck9 ck

DI

EJ

R2 correcto

PE

DI

tiempo

add R2 , R1, R

sub R1, R2 , R

BI DI EJ

BI DI

M

EJ M PE

PE

4.1 Tratamiento de los riesgos de datos

B. Anticipación

q Unidad de adelantamiento è caminos de anticipación desde los registros

de segmentación a la entrada de las etapas que consumen el dato

o Cortocircuito EJ - EJ

4 No se pierde ningún ciclo de reloj

Estructura de Computadores Tema 6 37

ya está listo!

no está listo!

4.1 Tratamiento de los riesgos de datos

B. Anticipación

q Hay ciertos riesgos provocados por dependencias de datos, que no se

pueden resolver sólo con cortocircuitos

o Cortocircuito M - EJ + Detención

7 Pérdida de un ciclo de reloj

tiempo

lw R2 , 3 (R0)

add R2, R1, R

BI DI EJ M

BI DI EJ M

PE

PE

lw R2 , 3 (R0)

add R2, R1, R

BI DI EJ M

BI DI EJ M

PE

PE

4.2 Riesgos estructurales en el MIPS

q Provocados por dependencia de recursos (conflicto en los accesos a los

recursos del sistema)

q No aparecen en el MIPS segmentado que acabamos de ver

q Veamos una modificación al MIPS :

l Recordemos que el banco de registros sólo tiene un puerto de escritura

l Supongamos que en la etapa de memoria (4ª etapa), también se puede

escribir en el banco de registros (M-PE)

ò Instrucciones lw /sw accederían a memoria (M)

ò Instrucciones aritmético-lógicas accederían a banco registros (PE)

l Consideremos el código (no hay dependencias de datos) :

I

lw R2, 2(R0)

I

sub R3, R4, R

Estructura de Computadores Tema 6 39

tiempo

lw R2, 2 (R0)

sub R3, R4, R

BI DI EJ

BI DI EJ PE

PE

Acceso al banco de registos!

4.2 Riesgos estructurales : ejemplo

M

PE

PE

M

ck1 ck2 ck3 ck4 ck5 ck

I

I

4 Riesgo estructural entre I

e I

: acceso al puerto de escritura del banco de registros

en el ck 5

4.2 Tratamiento de los riesgos estructurales

q Soluciones software (Compilador)

l Insertar instrucciones nop después de cada instrucción que es origen de un

riesgo estructural

l Reordenación del código: insertar otras instrucciones no dependientes,

entre las dos instrucciones para las que se produce riesgo

q Soluciones hardware :

Detección de riesgos è^ hardware con lógica de detección de

riesgos estructurales

Técnicas de tratamiento :

l A. Detención : detener la ejecución uno o más ciclos insertando burbujas

Ý pérdida de ciclos

l B. Replicación de recursos : Ý intenta reducir la pérdida de ciclos

ò en el ejemplo (MIPS modificado), utilizar un banco de registros con más

puertos de escritura

ò Replicar o segmentar las unidades funcionales en conflicto