PDF de programación - Clase 4 - Segmentación de Instrucciones - Arquitectura de Computadoras

Imágen de pdf Clase 4 - Segmentación de Instrucciones - Arquitectura de Computadoras

Clase 4 - Segmentación de Instrucciones - Arquitectura de Computadorasgráfica de visualizaciones

Publicado el 8 de Mayo del 2018
565 visualizaciones desde el 8 de Mayo del 2018
1,1 MB
31 paginas
Creado hace 4a (12/08/2015)
Arquitectura de Computadoras



Clase 4

Segmentación de Instrucciones

Segmentación de cauce:

Conceptos básicos

• La segmentación de cauce (pipelining) es una
forma particularmente efectiva de organizar el
hardware de la CPU para realizar más de una
operación al mismo tiempo.

• Consiste en descomponer el proceso de ejecución
de las instrucciones en fases o etapas que
permitan una ejecución simultánea.

• Explota el paralelismo entre las instrucciones de

un flujo secuencial.

Notas de Clase 4

2

Ejemplo de estrategia (1)



• Similar a la línea de armado en una planta de

manufactura.

• El producto pasa por varios estados en el proceso

de producción.

• Por

lo tanto, varios productos pueden ser
manipulados simultáneamente (cada uno en
estados distintos).

• Se puede comenzar el proceso nuevamente
(entrada a la línea de producción) antes de que
salga el producto final de la misma.

Notas de Clase 4

3

Ej. de estrategia (2)



Lavandería secuencial: ¡mal negocio!
10


6 PM 7
6 PM 7

8
8

9

11

12

O
r
d
e
n

L
a
v
a
d
o

A
A A

B B B

C C C

D D D

Tiempo

30 40 20
30

30

40 20

30

40 20

30

40 20

Notas de Clase 4

4

Ej. de estrategia (3)



Lavandería segmentada: ¡buen negocio!

Notas de Clase 4

5

ABCD6 PM789101112Tiempo304040404020OrdenLavadoAABBCCDD6 PM789101112Tiempo304040404020304040404040404020OrdenLavado Características



• La segmentación es una técnica de mejora de

prestaciones a nivel de diseño hardware.

• La segmentación es invisible al programador.
• Necesidad de uniformizar las etapas.

• Al tiempo de la más lenta



• El diseño de procesadores segmentados tiene
gran dependencia del repertorio de instrucciones.

Notas de Clase 4

6

Diagrama de estados del ciclo

de instrucción

Indirección
Indirección

Indirección
Indirección

Captación de
Captación de
instrucción
instrucción

Captación
Captación

dede

operando
operando

Almacena
Almacena--
miento de
miento de
operando
operando



Más de
Más de

unun

operando
operando



Más de
Más de

unun

resultado
resultado

Cálculo de
Cálculo de
dir de prox
dir de prox
instrucción
instrucción

Decodificac.
Decodificac.
de operación
de operación

de la
de la

instrucción
instrucción

Cálculo de
Cálculo de
la dirección
la dirección

del del

operando
operando



Operación
Operación
con los
con los
datos
datos

Cálculo de
Cálculo de
la dirección
la dirección

del del

operando
operando

Interrupción?
Interrupción?

Interrupción
Interrupción



Instrucción finalizada,
Instrucción finalizada,

captar la instrucción siguiente
captar la instrucción siguiente



Volver por otro dato
Volver por otro dato

cadena o vector
cadena o vector

No No

interrupción
interrupción

Notas de Clase 4

7

Tareas a realizar por ciclo



• Búsqueda (F, Fetch)

• Se accede a memoria por la instrucción
• Se incrementa el PC

• Decodificación (D, Decode)

• Se decodifica la instrucción, obteniendo operación a realizar en la ruta de datos
• Se accede al banco de registros por el/los operando/s (si es necesario)
• Se calcula el valor del operando inmediato con extensión de signo (si hace falta)

• Ejecución (X, Execute)

• Se ejecuta la operación en la ALU

• Acceso a memoria (M, Memory Access)

• Si se requiere un acceso a memoria, se accede

• Almacenamiento (W, Writeback)

• Si se requiere volcar un resultado a un registro, se accede al banco de registros

Notas de Clase 4

8

Ruta de Datos en un ciclo



Notas de Clase 4

9

Repertorio sencillo de instrucciones



Instrucción

Pseudocódigo

Descripción

LW

SW

ADD

SUB

AND

OR

SLT

BEQ

LW RT, inmed(RS)

SW RT, inmed(RS)

ADD RD, RS, RT

SUB RD, RS, RT

AND RD, RS, RT

OR RD, RS, RT

SLT RD, RS, RT

Carga registro RT desde memoria

Almacena en memoria desde registro RT

Suma palabras en registros RS y RT, resultado en RD

Resta palabras en registros RS y RT, resultado en RD

AND de palabras en registros RS y RT, resultado en RD

OR de palabras en registros RS y RT, resultado en RD

Pone 1 en RD si RS es menor o igual que RT

BEQ RS, RT, destino

Salta a ‘destino’ si RS es igual a RT

Notas de Clase 4

10

Formato de instrucción



Notas de Clase 4

11

Diagrama de estados del controlador



Notas de Clase 4

12

Ruta de Datos y unidad de control



Notas de Clase 4

13



Comparación monociclo-multiciclo



Notas de Clase 4

14

Ruta de datos segmentados



Notas de Clase 4

15

Ruta de datos y control segmentado



Notas de Clase 4

16

Prestaciones del cauce segmentado



Teórica: El máximo rendimiento es completar una
instrucción con cada ciclo de reloj.
Si K es el número de etapas del cauce 
Vel. procesador segmentado = Vel. secuencial x K



El incremento potencial de la segmentación del cauce
es proporcional al número de etapas del cauce.

Incrementa la productividad (throughput),
pero no reduce el tiempo de ejecución de la

instrucción

Notas de Clase 4

17

Ejemplo de segmentación



Notas de Clase 4

18

Análisis de la segmentación (1)

Suposiciones:

• Todas las tareas duran el mismo tiempo.

• Las instrucciones siempre pasan por todas

las etapas.

• Todos las etapas pueden ser manejadas en

paralelo.

Notas de Clase 4

19

Análisis de la segmentación (2)

Problemas:

• No todas las instrucciones necesitan todas las

etapas.

• SW RT, inmed(RS) ; no utiliza W

• En MSX88: un MOV AX, mem ; no requiere X

• No todas las etapas pueden ser manejadas en

paralelo.

• F y M acceden a memoria

• No se tienen en cuenta los saltos de control.

Notas de Clase 4

20

Atascos de un cauce (stall)



Situaciones que impiden a la siguiente instrucción

que se ejecute en el ciclo que le corresponde.

• Estructurales

• Provocados por conflictos por los recursos

• Por dependencia de datos

• Ocurren cuando dos instrucciones se comunican por

medio de un dato (ej.: una lo produce y la otra lo usa)

• Por dependencia de control

• Ocurren cuando la ejecución de una instrucción

depende de cómo se ejecute otra (ej.: un salto y los 2
posibles caminos)

Notas de Clase 4

21

Riesgos estructurales



Dos o mas instrucciones necesitan utilizar el mismo
recurso hardware en el mismo ciclo.

Notas de Clase 4

22

Riesgos estructurales (2)



Resolución ante el riesgo:

Notas de Clase 4

23

Riesgos por dependencias de datos



• Condición en la que los operandos fuente o
destino de una instrucción no están disponibles
en el momento en que se necesitan en una
etapa determinada del cauce.

Notas de Clase 4

24

Tipos de dependencias de datos



• Lectura después de Escritura (RAW, dependencia verdadera)

• una instrucción genera un dato que lee otra posterior



• Escritura después de Escritura (WAW, dependencia en salida)

• una instrucción escribe un dato después que otra posterior
• sólo se da si se deja que las instrucciones se adelanten unas a otras



• Escritura después de Lectura (WAR, antidependencia)

• una instrucción modifica un valor antes de que otra anterior que lo

tiene que leer, lo lea

• no se puede dar en nuestro cauce simple

Notas de Clase 4

25

Tipos de dependencias ...(2)



Ri ...

RAW Dependencia real

Dependencia de salida

WAW

...

Ri op Rj

WAR Antidependencia

Ri ...

Notas de Clase 4

26

Riesgos por dep… datos (2)



Notas de Clase 4

27

Riesgos por dep… datos (3)



Resolución ante el riesgo:

Notas de Clase 4

28

Riesgos de control (o de instrucciones)



Una instrucción que modifica el valor del PC
no lo ha hecho cuando se tiene que comenzar
la siguiente.


Notas de Clase 4

29

Riesgos de control (2)



Resolución ante el riesgo:

Notas de Clase 4

30

Lectura básica

• Organización y Arquitectura de Computadores, W.

Stallings, Capítulo 11, 5ta ed.

• Diseño y evaluación de arquitecturas de computadoras,

M. Beltrán y A. Guzmán, Capítulo 1, 1er ed.

Notas de Clase 4

31
  • Links de descarga
http://lwp-l.com/pdf10969

Comentarios de: Clase 4 - Segmentación de Instrucciones - Arquitectura de Computadoras (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad