¿La cantidad de ciclos necesarios para ejecutar el siguiente ciclo en el procesador de tuberías?

1

Esta pregunta fue formulada en un documento objetivo; GATE CSE

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

¿Cuáleslacantidaddeciclosnecesariosparaejecutarelsiguienteciclo?

Para(i=1a2){I1;I2;I3;I4;}

A)16

B)23

C)28

D)30

============================================================

Larespuestadadaes-23

introduce la descripción de la imagen aquí

Mi duda es: ¿por qué en el sexto ciclo estamos introduciendo I4 {S1} mientras que I3 {S2} no ha pasado a la siguiente etapa?

En esta pregunta, si adoptamos el enfoque anterior, obtendremos una respuesta diferente, según mi opinión, I4 {S1} se presentará en el séptimo reloj.

porque: en la ejecución de la canalización, cada etapa produce salida a un búfer y la siguiente etapa lo lleva desde allí. Por lo tanto, a menos que la instrucción anterior (aquí I3) pase a la siguiente etapa, la instrucción actual (I4) no puede ejecutar una etapa dada

P.S.- También he publicado esto en cs.stackexchange, pero nadie lo ha respondido. ¡Por favor ayuda!

    
pregunta Geeklovenerds

1 respuesta

1

Ciertamente, sería común que una etapa de canalización se detenga hasta que esté disponible la siguiente etapa, pero no hay razón para que una CPU no pueda disponer de búferes entre etapas que fueran independientes de cualquiera de las etapas. La lógica sería más difícil, pero como podría obtener una ventaja de ciclo en la situación mostrada puede valer la pena hacerlo.

En cuanto a si la respuesta dada es correcta, se debe aceptar IMO, a menos que el programa de estudios especifique un comportamiento u otro como correcto. No sé nada sobre el programa mencionado, así que no puedo comentar sobre eso.

    
respondido por el Jules

Lea otras preguntas en las etiquetas