Cuántos ciclos de reloj tomará la ejecución de este segmento en la canalización simple sin reenviar ni omitir cuando el resultado de la instrucción de bifurcación (nuevo contenido de PC) esté disponible después de la etapa WB. Muestre el tiempo de un ciclo de bucle en la tabla a continuación.
Esta es la pregunta y aquí está la respuesta en la segunda foto; sin embargo, no entendí cómo obtuvimos la cantidad de ciclos de reloj para la ejecución del segmento en el procesador segmentado. Mi médico lo resolvió de esta manera:
Número de ciclos en el bucle = 15 cc
Número de ciclos de reloj para la ejecución del segmento en el procesador segmentado =
= 1 cc (etapa IF de la instrucción inicial) + (Número de ciclos de reloj en el bucle L1) x
Número de ciclos de bucle = 1 + 15 x 400/4 = 1501 cc
Aceleración del procesador segmentado en comparación con el procesador no segmentado =
= Número de ciclos de reloj para la ejecución del segmento en el procesador no segmentado /
Número de ciclos de reloj para la ejecución del segmento en el procesador segmentado simple =
= 3005 cc/1501 = 2 veces
¿Puede explicarme de dónde sacamos el 1? ¿Cuál es la fórmula que utilizó?
¿Puede explicarme de dónde sacamos el 1? ¿Cuál es la fórmula que utilizó?
Supongo que cuando dices "el 1" te refieres al "1 cc" al comienzo de la expresión
Número de ciclos de reloj para la ejecución del segmento en el procesador segmentado == 1 cc (etapa IF de la instrucción inicial) + (Número de ciclos de reloj en el bucle L1) x Número de ciclos de bucle = 1 + 15 x 400/4 = 1501 cc
A partir de la información proporcionada en su pregunta, no puedo determinar qué contribuye al ciclo de reloj adicional.
:: COMENTARIOS ::
Por lo general, una dirección de memoria (un puntero) se almacena en el registro R4 y, en este caso particular, la dirección debe estar alineada con palabras, lo que significa que los dos bits menos significativos de la dirección son ceros, es decir, DIRECCIÓN mod 4=0. Pero considerando cómo se usa el valor de R4 en las últimas dos instrucciones (SUB y BNEZ), parece poco probable que R4 tenga una dirección de memoria.
Las dos últimas instrucciones (SUB y BNEZ) toman la determinación de continuar o no con el bucle, y dependen del valor del registro R4 para tomar esta decisión. En otras palabras, el valor inicial almacenado en el registro R4, la instrucción SUB y la instrucción BNEZ determinan el recuento de iteraciones del ciclo. Entonces la pregunta es, "¿Qué valor inicial se almacena en el registro R4?" Si el valor inicial del registro R4 no está definido, no se puede decir definitivamente que el ciclo itera 400/4 veces como se indica en su pregunta.
Por ejemplo, si el valor inicial de R4 es 3, ¿cuántas veces iterará el bucle? (Sugerencia: deshágase de las instrucciones LW, ADDI y SW y use solo las instrucciones SUB y BNEZ para determinar el número de iteraciones del ciclo cuando el valor inicial de R4 es cualquier valor que NO sea un múltiplo entero de 4, por ejemplo, 7 , 11 , 2, etc)
Hogar
Hogar
usuario_1818839
Sam Gibson