Registro de reescritura de archivos para canalización frente a implementación multiciclo para procesadores MIPS

Sabemos que en la implementación multiciclo de un procesador MIPS, la instrucción de tipo R toma 4 ciclos.

Sin embargo, en la implementación de canalización de MIPS, para las instrucciones de tipo R, la cuarta etapa (MEM) está presente pero no ocurre nada significativo (durante esa etapa). La reescritura real del archivo de registro se produce en el quinto ciclo (WB).

¿Por qué la reescritura no ocurre en el cuarto ciclo (para la canalización)?

Respuestas (1)

¿Por qué la reescritura no ocurre en el cuarto ciclo (para la canalización)?

Simplemente porque esa no es la función del cuarto ciclo. Piense en la canalización como una serie de cubos. Cada cubo tiene una función específica. Se vierte agua en el primer balde. Del primero al segundo. Del segundo al tercero, etc. Cuando el agua está en cada balde se le hace una cosa específica (si es necesario). Sólo cuando llegue al 5º cubo se realizará sobre él la operación asociada al 5º cubo.

En términos más parecidos a la CPU, cada fase de la tubería es un subcircuito separado con operaciones dedicadas. La quinta fase se ocupa de la reescritura de los registros. El cuarto no No puede hacerlo en la cuarta fase porque ese subcircuito no tiene la capacidad de escribir en un registro, solo en la memoria.

Además, no puede "saltar hacia adelante" de la 3.ª fase a la 5.ª fase, ya que la 5.ª fase está en uso por la instrucción anterior en la canalización.

Esta imagen debería aclarar:

ingrese la descripción de la imagen aquí

Si la instrucción 2 salta directamente de ALUa Reg, colisionaría con la instrucción anterior si fuera ALU-> DM-> Regya que ambas Regoperaciones ocurrirían al mismo tiempo en el mismo circuito físico (en el ciclo de reloj CC5).

Sin embargo, una optimización que puede hacer (y lo hace) es enviar datos de vuelta a través de la canalización, de modo que en lugar de escribir, digamos, en el registro $4 y luego leer del registro $4 inmediatamente después, simplemente pasa los datos de regreso a donde se leerían. $4 para ahorrar tiempo. Esto se llama Data Bypassing y se detalla en la sección 2.6 del manual MIPS M4K .