PUERTA | PUERTA-CS-2009 | Pregunta 28

Considere un procesador de tubería de 4 etapas. El número de ciclos que necesitan las cuatro instrucciones I1, I2, I3, I4 en las etapas S1, S2, S3, S4 se muestra a continuación:

S1
S2
S3
S4
I1
2
1
1
1
I2
1
3
2
2
I3
2
1
1
3
I4
1
2
2
2

¿Cuál es el número de ciclos necesarios para ejecutar el siguiente ciclo?
Para (i=1 a 2) {I1; I2; I3; I4;}
(A) 16
(B) 23
(C) 28
(D) 30

Respuesta: (B)
Explicación: Esta pregunta es diferente a otras preguntas sobre pipeline con respecto al número de ciclos tomados por cada instrucción en cada etapa, es decir, una instrucción aquí puede tomar un número diferente de ciclos en diferentes etapas, y también que dos instrucciones pueden tomar un número diferente de ciclos en la misma etapa también.

Por lo tanto, aquí tenemos que considerar dos cosas: 1) Elegibilidad 2) Disponibilidad
, es decir, una instrucción i debe ser elegible para pasar a la etapa j, y una etapa j debe estar disponible (gratis) para manejar/procesar la instrucción i.

Ahora, veamos cómo se pueden lograr las dos cosas anteriores.

Una instrucción i será elegible para pasar a la etapa j, si y solo si, la instrucción i ha completado la etapa j-1.

De manera similar, una Etapa j estará disponible para la instrucción i, si y solo si, la Etapa j ha completado la instrucción i-1.

Entonces, siguiendo y cumpliendo los dos criterios anteriores, tenemos que determinar el número total de ciclos tomados por estas instrucciones en un ciclo de 2 iteraciones.

Nota: una instrucción i será elegible para procesamiento en la iteración 2, si y solo si, ha completado su procesamiento en la iteración 1.
1st iteration

2nd iteration
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *