Documente Academic
Documente Profesional
Documente Cultură
Procesador Segmentado
Se desea ejecutar varias instrucciones, al mismo tiempo. Se dividen las etapas mediante registros, cada instruccin puede estar ejecutndose en una etapa. Cinco etapas, pueden ejecutarse simultneamente cinco instrucciones. Es preciso, que cada instruccin pase por las cinco etapas, y que cada etapa tenga su propio control.
2
Procesador Segmentado
Se ejecutan varias instrucciones, que usan recursos diferentes, en forma simultnea. Se comienza la prxima instruccin mientras se trabaja a n en otra. !a velocidad de avance est limitada por la etapa ms lenta.
Procesador Segmentado
Etapas:
"
squeda de #nstruccin. &ecodificacin.!ectura 'egistros. Ejecucin. (peracin con memoria de datos. Escritura en arreglo de registros.
Procesador Segmentado
Ejecucin de instrucciones
BI Dec BI
Eje Dec BI
Me Eje Dec
WR Me Eje WR Me WR
tiempo
flujo de ejecucin
Procesador Segmentado
'eloj )onociclo
)onociclo
Load
'eloj )ulticiclo y pipeline
Store
Add
)ulticiclo
"#
&ec
Eje
)e
*'
"#
&ec
Eje
)e
"#
&ec
"#
&ec "#
)e Eje &ec
Procesador Segmentado
En la ejecucin monociclo+
El
per,odo del reloj lo establece la instruccin que ms demora en ejecutarse. - la vez este per,odo es la suma de los tiempos asociados a cada etapa. En el diagrama los tiempos de acceso a memoria de instrucciones y de datos se asumen iguales y levemente mayores que la operacin de la unidad aritm.tico lgica/ la lectura y escritura de registros, se asumen iguales y menores que el tiempo de propagacin en la alu.
7
Procesador Segmentado
En la ejecucin multiciclo+
El
per,odo del reloj lo establece la etapa que ms demora en realizarse$acceso a memoria%. En el diagrama se aprecia que la instruccin load 0ord demora ms en ejecutarse en la mquina multiciclo. Sin embargo la instruccin store 0ord demora menos, y tambi.n es ms rpida la ejecucin de la secuencia l0, s0, en el procesador multiciclo.
Procesador Segmentado
que cada instruccin ocupa las cinco etapas, la realizacin individual de una de ellas demora lo mismo que la ms lenta en la ejecucin multiciclo. Se aprecia que es ms rpida la ejecucin de la secuencia l0, s0, en el procesador segmentado que en el multiciclo.
Procesador Segmentado
Ejemplo+
Suponer
3rocesador monociclo
45 ns6ciclo x 1 C3# x 122 inst 7 4522 ns 12 ns6ciclo x 4.8 C3# $debido a la mezcla% x 122 inst 7 4822 ns 12 ns6ciclo x $1 C3# x 122 inst 9 4 ciclos llenado% 7 1242 ns
3rocesador )ulticiclo
Segmentada ideal
10
Procesador Segmentado
En procesador Segmentado+
Si
11
Procesador Segmentado
tiempo $ciclos de reloj% #nstruccin 1 Cuando la instruccin 1 est en escritura de registros *', la = est en )emoria de datos/ la > est en Ejecucin en (peraciones/ la 4 est en decodificacin y lectura de registros/ #nstruccin 4 la 5 est en la etapa de b squeda de instruccin. #nstruccin 5
#nstruccin =
#nstruccin >
orden de ejecucin todas las etapas estn ejecutando una instruccin diferente en un mismo ciclo. 12
Procesador Segmentado
un procesador multiciclo interesa que el n mero de etapas o microciclos sea m,nimo para cada una de las instrucciones. Esto disminuye el C3# promedio. En un procesador segmentado interesa disminuir las detenciones debidas a conflictos.
13
Procesador Segmentado
"# $fetc?%.
3uertas - y " de lectura del arreglo de registros para la etapa de &ecodificacin y !ectura de 'egistros.
*r.
14
Procesador Segmentado
$C el
COp !unct rt rd
Decodi !icador
RD RegWr
MemtoReg
RD1 RegWr1
MemtoReg1
RD2 RegWr2
MemWr1 MemRd1
IR PC Mem%
In t% inm16 r rt
(rj
ExtOp
Inm16a
RegWr2
Reg
RD2
A B
Opera cione
S D Mem% Dat%
M
MDout
$C&'
e"ual
#ext $C
15
Procesador Segmentado
l0 At1, 2$At=%
l0 At4, 2$At5%
16
Procesador Segmentado
Bo ?ay conflictos de escritura, ya que el arreglo de registros se emplea para escritura en ciclos diferentes. :ampoco de lectura ya que las instrucciones leen registros que permanecen con sus contenidos sin cambios. Sin embargo la secuencia +
l0 l0
17
Procesador Segmentado
l0 At4, 2$At5%
18
Procesador Segmentado
19
Procesador Segmentado
Procesador Segmentado
l0 At4, 2$At5%
21
Procesador Segmentado
Esta solucin requiere una lgica de control que resulta compleja. Se prefiere escoger la solucin de insertar un ciclo de memoria nulo en las instrucciones de tipo '. Esto implica que las instrucciones de tipo ' durarn 5 ciclos.
22
Procesador Segmentado
l0 At4, 2$At5%
) #
' !
) &
) #
' !
) &
23
Procesador Segmentado
store 0ord,
) # ' ! ) # ' ! ) # ' ! ) & ) & ) & tiempo
24
Procesador Segmentado
store 0ord
Se requieren cuatro etapas. En la ejecucin en la caCer,a no es necesario agregar un ciclo nulo de postescritura, para la instruccin store, ya que en este caso se libera el recurso.
25
Procesador Segmentado
bifurcacin requiere cuatro etapas, si se determina la igualdad empleando la condicin cero generada por la -!@.
beq At1, At=, rtulo
) #
' !
) &
tiempo
(rden de ejecucin 26
Procesador Segmentado
disminuir los riesgos de control es mejor solucin detectar la igualdad en la etapa de decodificacin y lectura del arreglo de registros y actualizar el valor de 3C
beq At1, At=, rtulo
) #
' !
tiempo
(rden de ejecucin 27
Procesador Segmentado
incondicional $jump%
j rtulo ) # ' ! tiempo
(rden de ejecucin
28
Procesador Segmentado
de riesgos
Se intenta usar el mismo recurso de dos maneras diferentes, en el mismo tiempo. Se intenta usar un dato antes de que sea vlido. (curre cuando una instruccin depende de un dato que escribe una instruccin previa que tambi.n est en la caCer,a. Se intenta efectuar una decisin antes de que la condicin o flag sea vlida.
29
Conflicto de Control:
Procesador Segmentado
los riesgos pueden resolverse esperando. !a unidad de control del procesador segmentado debe detectar los riesgos, y tomar acciones para solucionar los conflictos.
30
Procesador Segmentado
estructural.
) # ' ! ) # ' ! ) # ' ! ) # ' ! ) # ' ! ) & ) & ) & ) & ) & 31 tiempo
!oad 0ord
Procesador Segmentado
estructural.
@sar, en forma compartida, una memoria para datos e instrucciones provoca un riesgo estructural. 3or ejemplo, la instruccin load, en su etapa de lectura de memoria, y el fetc? de la instruccin 4, intentan leer al mismo tiempo la nica memoria.
32
Procesador Segmentado
estructural.
) # ' ! ) # ' ! ) # ' ! ) # ' ! ) # ' ! ) & ) & ) & ) & ) & 33 tiempo
Procesador Segmentado
de Control.
!a bifurcacin puede realizarse o no. En caso de tomar la bifurcacin ya ?abrn ingresado a la caCer,a las dos instrucciones siguientes a la bifurcacin y comenzado a ejecutarse/ si no se efect a la bifurcacin, ya se tendr adelantada la ejecucin de las instrucciones siguientes a la bifurcacin.
34
Procesador Segmentado
de Control.
) # ' ! ) # ' ! ) # ' ! ) # ' ! ) # ' ! ) & ) & ) & ) & ) & 35 tiempo
beq At1, At=, loop add At>, At4, At5 add At>, At8, At> add At>, AtD, AtE este fetc? es seguro (rden de ejecucin
Procesador Segmentado
&urante la etapa de decodificacin, &urante la etapa de clculo del flag de cero a la salida de la alu de la instruccin beq, y &urante la escritura de 3C de la instruccin beq que se efect a en la etapa mem/ Slo en la etapa *' de la instruccin beq puede efectuarse confiablemente el fetc? de la instruccin siguiente.
36
Procesador Segmentado
de Control.
!a detencin puede lograrse evitando leer la memoria de instrucciones, mediante la des?abilitacin de *E#' y desactivando las seCales de control que modifican el estado del procesador $*r'eg, )em*r%/ ( bien, limpiando el registro #' en la etapa de decodificacin del beq. Esto intercala burbujas en la caCer,a. !o cual se ilustra en el siguiente diagrama+
37
Procesador Segmentado
de Control.
) # ' ! ) & tiempo
) #
' !
) & 38
Procesador Segmentado
de Control.
3uede delegarse la tarea de detencin al compilador, que debe intercalar tres instrucciones nop $no operacin% despu.s de cada beq/ el diagrama que representa esta situacin es similar al visto antes, pero se est ejecutando la instruccin nop.
39
Procesador Segmentado
de Control.
beq At1, At=, loop nop nop nop add At>, At4, At5 Feste fetc? es seguro. add At>, At8, At> add At>, AtD, AtE
40
Procesador Segmentado
41
Procesador Segmentado
Procesador Segmentado
&etencin.
!a solucin por ?ard0are consiste en detener por un ciclo el fetc? de la instruccin siguiente a un branc?. !a solucin por soft0are consiste en intercalar un nop, despu.s de cada branc?.
43
Procesador Segmentado
"ifurcaciones retardadas.
Bo se detiene la ejecucin despu.s de una bifurcacin/ es decir la instruccin siguiente a una bifurcacin comienza a ejecutarse siempre. Esta solucin $delayed branc?% agrega un ciclo por cada branc?, si el compilador no puede encontrar una instruccin que sea til, y que pueda realizarse despu.s del branc?.
44
Procesador Segmentado
Haciamiento. $flus?%
!a tercera solucin es efectuar el fetc?, despu.s del branc?. Si el salto no se realiza, se contin a la ejecucin. Si el salto se realiza, se debe descartar la instruccin le,da y volver a efectuar el fetc?.
45
Procesador Segmentado
Procesador Segmentado
Procesador Segmentado
Procesador Segmentado
de datos en transferencias.
) # ' ! ) # ' ! ) & ) & tiempo
l0 At1, 2$At=%
(rden de ejecucin
49
Procesador Segmentado
de datos en transferencias.
50
Procesador Segmentado
de datos en transferencias.
) # tiempo
(rden de ejecucin 51
Procesador Segmentado
de datos en transferencias.
52
Procesador Segmentado
de datos en transferencias.
) # ' ! ) # ' ! ) & ) & tiempo
l0 At1, 2$At=%
s0 At1, 2$At>%
(rden de ejecucin
53
Procesador Segmentado
asume la deteccin de la igualdad en la etapa de lectura de registros. !as seCales de control se generan en la etapa de lectura de 'egistros y &ecodificacin, ciclo en el cual se sabe cul instruccin debe ejecutarse.
54
Procesador Segmentado
seCales de control para la etapa de ejecucin $Ext(pt, -luSrc, -luCtr% se emplean un ciclo despu.s y son pasadas a dic?a etapa a trav.s del registro de segmentacin, que separa las etapas. !as seCales de control para la etapa de memoria $)em*r, )em'd, )emto'eg% son usadas dos ciclos ms tarde.
55
Procesador Segmentado
seCales de control para la etapa de postescritura $'&, 'eg*r% se emplean tres ciclos despu.s. '& es el n mero del registro en el que debe escribirse. El diagrama muestra el control y los datos fluyendo.
56
Procesador Segmentado
$C el
COp !unct rt rd
Decodi !icador
RD RegWr
MemtoReg
RD1 RegWr1
MemtoReg1
RD2 RegWr2
MemWr1 MemRd1
IR PC Mem%
In t% inm16 r rt
(rj
ExtOp
Inm16a
RegWr2
Reg
RD2
A B
Opera cione
S D Mem% Dat%
M
MDout
$C&'
e"ual
#ext $C
57
Procesador Segmentado
Solucin de riesgos.
Cuando en operaciones se tiene una instruccin de tipo ' o inmediata que escriba en un registro$'&%, y en decodificacin una instruccin que lea el registro rs$add, sub, ori, beq, l0% o que lea el registro rt$add, sub, beq%. Cuando en etapa de memoria se tiene una de tipo ' o inmediata y en decodificacin una instruccin que lee rs o rt, con igual valor al del registro en que se escribir$'&1%.
58
Procesador Segmentado
Solucin de riesgos.
Solucin+ anticipacin de datos ?acia la unidad de operaciones se requiere agregar muxes a las entradas de la alu, que permitan ingresar las salidas de la alu y de la memoria, adems de los contenidos de los buses de salida del arreglo de registros$bus- y bus"%.
59
Procesador Segmentado
Solucin de riesgos.
Condiciones de deteccin+
if $:ipo'# % I $leeJrs% I $rs 77 '& % - 7 -luout/ 6;-nt- 7 1 ;6 if $:ipo'#1% I $leeJrs% I $rs 77 '&1% - 7 )out/ 6;-nt- 7 = ;6 if $)em'd1771% II $Cop77Ks0K% II$rs 77 '&1% - 7 )out/ en el resto de los casos - 7 'LrsM/ 6;-nt- 7 2 ;6
60
Procesador Segmentado
Solucin de riesgos.
if $:ipo'# % I $leeJrt% I $rt 77 '& % if $:ipo'#1% I $leeJrt% I $rt 77 '&1% en el resto de los casos " 7 'LrtM/
61
Procesador Segmentado
Solucin de riesgos.
!as instrucciones que escriben en un registro, seguidas de un store 0ord que escriba el contenido del registro que a n no se ?a grabado, no requieren detener la ejecucin de la escritura en memoria si se adelanta la salida de la etapa de memoria$)out% en el registro de segmentacin que almacena el valor que ser escrito en la memoria$&%.
62
Procesador Segmentado
Solucin de riesgos.
Se detecta cuando la instruccin que escribe en registro est en la etapa de memoria y el store 0ord en operaciones/ y si el n mero del registro cuyo contenido debe escribirse en memoria$'&% es igual al n mero del registro en que escribir la instruccin que est en etapa de memoria$'&1%.
63
Procesador Segmentado
Solucin de riesgos.
if $ $)em*r 77 1% I $'eg*r1771% I $'&77'&1 % % & 7 )out/ 6; -nt) 7 1 ;6 en el resto de los casos & 7 " 6; -nt) 7 2 ;6
64
Procesador Segmentado
Solucin de riesgos.
Se detecta el riesgo cuando el l0 est en operaciones$)em'd1 en 1% y la instruccin que le sigue $que lea el registro en el cual el l0 escribe% en decodificacin.
65
Procesador Segmentado
Solucin de riesgos.
66
Procesador Segmentado
Solucin de riesgos.
En segundo lugar las secuencias l0 seguidas de instrucciones que leen el registro rt$tipo ' y beq% que se detectan seg n+
67
Procesador Segmentado
Solucin de riesgos.
-mbas condiciones
P burbuja 7 1/
if $ $ )em'd1 77 1% I $ (p N7 j% I $ rs 77'&% O $ )em'd177 1%I $ (p77tipo' O (p77beq% I $rt 77'&%% vlido 7 2/Q en el resto de los casos burbuja 7 2/ vlido 71/
68
Procesador Segmentado
Solucin de riesgos.
&escarte$flus?% incondicionales.
en
caso
de
saltos
En caso de no ejecutar la instruccin siguiente a un jump, que ya pas por etapa de fetc? deben eliminarse los efectos de la instruccin siguiente, para esto basta que la instruccin que complet su fetc? no modifique un registro o escriba en la memoria. Se detecta mediante+ if $ 3Csel771%I$(p77j% flus? 71/
69
Procesador Segmentado
Solucin de riesgos.
70
Procesador Segmentado
Solucin de riesgos.
#nstruccin Bo operacin.
Esta instruccin tiene los >= bits iguales a cero. Es de tipo ', con el campo funct 7 2.
if $(p 77 nop% P -luCtr7/ -luSrc7/ Ext(p7/ )em'd 7 / )em*r72/ )emtoreg 7 / '&7 2/ 'eg*r 72/ 3Csel 72/ vlido 7 2Q adems si es nop+ rs72, rt72, rd 72.
71
Procesador Segmentado
$C el )alido RD RegWr
MemtoReg
!lu *
COp !unct rt rd
Decodi !icador
RD1 RegWr1
MemtoReg1
RD2 RegWr2
MemWr1 MemRd1
IR PC Mem% In t%
inm16 r rt
Opera cione S
Mem% Dat%
A B
RD2
$C&'
MDout
#ext $C
AntB AntA
Mout
AntM (ur(uja
AluOut
reloj
72