Académique Documents
Professionnel Documents
Culture Documents
rendimiento
IEC – UTM
Moisés E. Ramírez G.
Segmentación
La segmentación (pipelining) es una
técnica de implementación por la cual
se solapa la ejecución de múltiples
instrucciones.
Es la técnica de implementación clave
utilizada para hacer CPU rápidas.
1
Ejemplo: lavanderia
1. Colocar la carga de ropa sucia en la lavadora.
2. Sacar la ropa de la lavadora para pasarla a la
secadora.
3. Doblar la ropa seca.
4. Acomodar la ropa limpia y seca en su lugar
correspondiente.
Lavado usando
segmentación
Cada uno de los
pasos en los que
se dividió el
proceso se conoce
como una etapa
de la
segmentación o
un segmento.
2
Para la ejecución de
instrucciones MIPS
1. Atrapar las instrucciones de la memoria.
2. Leer los registro mientras se decodifica la instrucción.
3. Ejecutar la instrucción o calcular una dirección.
4. Accesar un operando en memoriade datos.
5. Escribir el resultado en un registro.
Riesgos en la segmentación
Riesgos de Estructura: Significa que el hardware no
puede soportar la combinación de instrucciones que se
quiere ejecutar en el mismo ciclo.
Ejemplo: Si contamos con una sola memoria, para datos y
código, no será posible escribir o leer un dato, mientras se
atrapa una instrucción.
3
Implementación multiciclos vs
segmentación
Se desean analizar dos implementaciones: multiciclo
y segmentado, en la siguiente tabla se muestra el
tiempo requerido para cada etapa y tipo de
instrucción.
La ejecución de 3 instrucciones de carga en la
implementación multiciclos, ocupara 800 x 3 =
2,400 ps, la implementación segmentada usa 1,400
ps.
4
9
5
Camino de datos segmentado
Previamente se analizaron las
implementaciones de un solo ciclo y
multiciclos.
12
6
En la etapa WB se realiza la escritura del resultado
en el archivo de registros, el cual está ubicado en
la segunda etapa del camino de los datos – Riesgo
por dependencia de datos
14
7
Agregando registros
Para no tener que replicar las unidades
funcionales, es necesario agregar registros que
almacenen temporalmente los datos para las
siguientes etapas.
15
Captura de la Instrucción
Durante esta etapa la instrucción LW utilizará las
unidades funcionales resaltadas en la figura
siguiente de la memoria de código sólo se resalta
la mitad derecha puesto que ésta será accesada
solo para lectura.
Al mismo tiempo, en esta etapa se calculará el
valor de PC + 4 y se escribirá en el PC para
introducir a la siguiente instrucción a la
segmentación (aún no se considerarán los
riesgos).
En el registro IF/ID se escribirá la instrucción, y el
valor de PC + 4. Cabe aclarar que en esta etapa,
el hardware desconoce el tipo de instrucción.
16
8
Instruction fetch
17
Decodificación de la instrucción
y lectura del archivo de registro
Para esta etapa los datos que se evalúan
se toman del registro IF/ID y los resultados
al final de la misma se escribirán en el
registro ID/EX.
Los aspectos de interés particular para la
instrucción LW son:
la lectura del registro 1 y la extensión del signo
de la constante para que utilice32 bits.
También se lee el registro 2, pero este no es
importante para la instrucción bajo
consideración.
18
9
Instruction decode
19
10
Execution
21
Acceso a memoria
En esta etapa se leerá un dato de memoria, la
dirección a leer se toma del registro EX/MEM y el
dato leído se escribirá en el registro MEM/WB.
22
11
Memory
23
Retro escritura
El último paso de la instrucción LW consiste en la
escritura del dato que está en el registro MEM/WB
en el registro correspondiente, el nombre de retro-
escritura es por que aunque se esta ejecutando el
paso 5, el archivo de registros esta ubicado en la
etapa 2.
24
12
Write back
25
26
13
Se analizará la siguiente secuencia de
instrucciones:
lw $10, 20 ($1)
sub $11, $2, $3
27
28
14
29
30
15
31
32
16
33
34
17
35
36
18
37
38
19
39
Proceso de ejecución de SW
IF: la instrucción es capturada de memoria y
almacenada en IF/ID
ID: IF/ID proporciona los números de registros
que se leerán y se realiza la extensión de signo de
16 a 32 bits, dichos valores se almacenan en
ID/EX
EX: Se suma el 1er registro y el la constante
extendida a 32 bits, se almacenan en EX/MEM
MEM: El segundo registro previamente
almacenado en ID/EX y posteriormente en
EX/MEM se almacena en la dirección de memoria
calculada en la etapa anterior.
WB: No se hace nada 40
20
Proceso de ejecución de SW
41
Ejecución de SW
42
21
Ejecución de una secuencia de instrucciones
43
44
22
El control segmentado
45
46
23
4. Acceso a memoria. Aquí se determina si:
Se trata de un brinco (branch).
Se escribirá en memoria (MemWrite).
Se leerá de memoria (MemRead).
47
48
24
Valores para el control
Las señales de control deben tener los valores
correctos en la etapa correcta, dependiendo del
tipo de instrucción a ejecutar.
Los valores son los mismos que en la
implementación de un solo ciclo, la diferencia es
que se requieren en diferentes etapas.
49
50
25
51
52
26
53
54
27
55
56
28
57
58
29
59
60
30
61
Ejemplo
Ejecución de la secuencia de
instrucciones:
Lw $10, 9( $1)
Sub $11, $2, $3
And $12, $4, $5
Or $13, $6, $7
Add $14, $8, $9
62
31
63
64
32
65
66
33
67
68
34
69
70
35
71
72
36
73
37