Cálculo de la tasa máxima de ejecución de instrucciones

0

Estoy trabajando en la siguiente pregunta: Supongamos que una instrucción puede llevarse a cabo en 3 etapas, las etapas que toman 3 ns, 7 ns, y 10 ns, respectivamente. (a) ¿Cuál es la tasa máxima de ejecución sin tubería? (b) ¿Qué aceleración es posible con la canalización?

He conseguido las siguientes respuestas, ¿es correcto? a) Para un sistema sin tubería, estas 3 etapas pueden llevarse a cabo una tras otra. El tiempo total requerido es (3 + 7 + 10) ns = 20 ns Ahora a la computadora 100 tiempo de instrucción requerido = 100 * 20 = 2000 ns

b) Una característica muy interesante de la tubería es que en la tubería todas las etapas tienen la misma longitud. En el problema dado tenemos una etapa, que toma 10 ns, que es la más grande. Vamos a equiparar su valor con las etapas de la tubería. Así que ahora cada etapa de tubería tiene una longitud de 10 ns para ejecutar. Ahora el tiempo total de latencia = 20 * 2 ns = 40 ns. Hay una sobrecarga asociada con esto. Supongamos que la sobrecarga es de 2 ns. Entonces, el tiempo total para ejecutar una etapa de la tubería es de 22 ns. La aceleración es (3 + 7 + 10) /10=2.0

    
pregunta user3472448

1 respuesta

1

Obtuvo la respuesta correcta: aceleración 2 ×, ignorando los gastos generales, pero a través de un método completamente inválido. Es interesante que haya introducido el concepto de gastos generales, pero de todos modos lo ignoró en su respuesta final.

El concepto clave que le falta es que agregar registros de tuberías permite que diferentes partes de la tubería trabajen en diferentes instrucciones en paralelo. La latencia para una sola instrucción aumenta ligeramente, pero el número de instrucciones completadas en una cantidad determinada de tiempo se escala con la frecuencia de reloj.

Entonces, ignorando los gastos generales por el momento, sin canalización, necesita 20 ns para completar cada instrucción, para un rendimiento de 50 MIPS. Agregar un registro de tubería le permite reducir el período de reloj a 10 ns, lo que aumenta el rendimiento a 100 MIPS, pero la latencia para cada instrucción permanece en 20 ns. La aceleración es un factor de 100 MIPS / 50 MIPS = 2.0.

Ahora, si un registro agrega 2 ns de sobrecarga, esto afecta a ambos cálculos. Recuerde que hay un registro implícito incluso en la tubería de una sola etapa. Por lo tanto, el período de reloj en ese caso tendrá que ser 22 ns, lo que da un rendimiento de 45.45 MIPS. Con la tubería de dos etapas, el período de reloj se convierte en 12 ns, para un rendimiento de 83.33 MIPS, pero ahora la latencia para una sola instrucción es 2 × 12 ns = 24 ns. La aceleración es un factor de 83.33 MIPS / 45.45 MIPS = 1.833.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas