Está en la página 1de 34

Conceptos de Arquitectura de Computadoras 2012

Clase 4 Segmentacin de Instrucciones

Repertorio sencillo de instrucciones

Instruccin LW SW
ADD SUB AND OR SLT BEQ

Pseudocdigo 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 BEQ RS, RT, destino

Descripcin
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 Salta a destino si RS es igual a RT

2012

CAC - Clase 4

Formato de instruccin

2012

CAC - Clase 4

Diagrama de estados del ciclo de instruccin


Indireccin Indireccin

Captacin de instruccin

Captacin de operando

Almacenamiento de operando

Ms de un operando

Ms de un resultado Clculo de la direccin del operando

Clculo de dir de prox instruccin

Decodificac. de operacin de la instruccin

Clculo de la direccin del operando

Operacin con los datos

Interrupcin?

Interrupcin

Instruccin finalizada, captar la instruccin siguiente

Volver por otro dato cadena o vector

No interrupcin

2012

CAC - Clase 4

Tareas a realizar por ciclo

Bsqueda (F, Fetch)


Se accede a memoria por la instruccin Se incrementa el PC

Decodificacin (D, Decode)


Se decodifica la instruccin, obteniendo operacin 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 extensin de signo (si hace falta)

Ejecucin (X, Execute)


Se ejecuta la operacin 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

2012

CAC - Clase 4

Ruta de Datos en un ciclo

2012

CAC - Clase 4

Ruta de Datos y unidad de control

2012

CAC - Clase 4

Unidad de control con decodificadores y puertas lgicas

2012

CAC - Clase 4

Comparacin monociclo-multiciclo

2012

CAC - Clase 4

Ruta de datos multiciclo

2012

CAC - Clase 4

10

Ruta de datos y control multiciclo

2012

CAC - Clase 4

11

Diagrama de estados del controlador

2012

CAC - Clase 4

12

Segmentacin de cauce:
Conceptos bsicos
La segmentacin de cauce (pipelining) es una forma particularmente efectiva de organizar el hardware de la CPU para realizar ms de una operacin al mismo tiempo. Consiste en descomponer el proceso de ejecucin de las instrucciones en fases o etapas que permitan una ejecucin simultnea. Explota el paralelismo entre las instrucciones de un flujo secuencial.
2012 CAC - Clase 4 13

Ejemplo de estrategia (1)


Similar a la lnea de armado en una planta de manufactura. El producto pasa por varios estados en el proceso de produccin. Por lo tanto, varios productos pueden ser manipulados simultneamente (cada uno en estados distintos). Se puede comenzar el proceso nuevamente (entrada a la lnea de produccin) antes de que salga el producto final de la misma.
2012 CAC - Clase 4 14

Ej. de estrategia (2)


Lavandera secuencial: mal negocio!
6 PM
O r d e n L a v a d o
2012

9
Tiempo

10

11

12

30 40 20 30 40 20 30 40 20 30 40 20 A
B C D
CAC - Clase 4 15

Ej. de estrategia (3)


Lavandera segmentada: buen negocio!
6 PM
O r d e n L a v a d o
2012

9
Tiempo

10

11

12

30 40 40 40 40 20 A B C D
CAC - Clase 4 16

Caractersticas

La segmentacin es una tcnica de mejora de prestaciones a nivel de diseo hardware. La segmentacin es invisible al programador. Necesidad de uniformizar las etapas. Al tiempo de la ms lenta El diseo de procesadores segmentados tiene gran dependencia del repertorio de instrucciones.

2012

CAC - Clase 4

17

Ruta de datos segmentados

2012

CAC - Clase 4

18

Ruta de datos y control segmentado

2012

CAC - Clase 4

19

Prestaciones del cauce segmentado


Terica: El mximo rendimiento es completar una instruccin con cada ciclo de reloj.
Si

K es el nmero de etapas del cauce K

Vel. procesador segmentado = Vel. secuencial x

El incremento potencial de la segmentacin del cauce es proporcional al nmero de etapas del cauce.

Incrementa la productividad (throughput), pero no reduce el tiempo de ejecucin de la instruccin


2012 CAC - Clase 4 20

Ejemplo de segmentacin

2012

CAC - Clase 4

21

Anlisis de la segmentacin (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.

2012

CAC - Clase 4

22

Anlisis de la segmentacin (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.


2012 CAC - Clase 4 23

Atascos de un cauce (stall)


Situaciones que impiden a la siguiente instruccin 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 ejecucin de una instruccin depende de cmo se ejecute otra (ej.: un salto y los 2 posibles caminos)
2012 CAC - Clase 4 24

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

2012

CAC - Clase 4

25

Riesgos estructurales (2)

Resolucin ante el riesgo:

2012

CAC - Clase 4

26

Riesgos por dependencias de datos


Condicin en la que los operandos fuente o destino de una instruccin no estn disponibles en el momento en que se necesitan en una etapa determinada del cauce.

2012

CAC - Clase 4

27

Tipos de dependencias de datos


Lectura despus de Escritura (RAW, dependencia verdadera)
una instruccin genera un dato que lee otra posterior

Escritura despus de Escritura (WAW, dependencia en salida)


una instruccin escribe un dato despus que otra posterior slo se da si se deja que las instrucciones se adelanten unas a otras

Escritura despus de Lectura (WAR, antidependencia)


una instruccin modifica un valor antes de que otra anterior que lo tiene que leer, lo lea no se puede dar en nuestro cauce simple
2012 CAC - Clase 4 28

Tipos de dependencias ...(2)

Ri
Dependencia de salida WAW ... Ri

...
Ri op Rj

RAW

Dependencia real

WAR
...

Antidependencia

2012

CAC - Clase 4

29

Riesgos por dep datos (2)

2012

CAC - Clase 4

30

Riesgos por dep datos (3)


Resolucin ante el riesgo:

2012

CAC - Clase 4

31

Riesgos de control

(o de instrucciones)

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

2012

CAC - Clase 4

32

Riesgos de control (2)

Resolucin ante el riesgo:

2012

CAC - Clase 4

33

Lectura bsica
Organizacin y Arquitectura de Computadores, W. Stallings, Captulo 11.

2012

CAC - Clase 4

34