Publicado el 8 de Mayo del 2018
1.169 visualizaciones desde el 8 de Mayo del 2018
1,1 MB
31 paginas
Creado hace 8a (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
Comentarios de: Clase 4 - Segmentación de Instrucciones - Arquitectura de Computadoras (0)
No hay comentarios