reenvío de instrucciones de 5 ciclos - MIPS

1

Considere las siguientes instrucciones MIPS:

lw r6, 0(r1)
lw r5, 0(r2)
add r5, r5, r6

Supongamos que tengo todas las capacidades de reenvío. Sé que cuando produzco un valor, solo lo "reenvío" a otra próxima instrucción justo antes de consumirlo. Dicho esto, ¿se me permite reenviar desde la etapa de escritura a la etapa de ejecución? Solo he visto reesponer la etapa hacer el reenvío directo para decodificar. Considere el siguiente diagrama de ciclo:

     C1 C2 C3 C4 C5 C6 C7
lw   F  D  X  M  W     
lw      F  D  X  M  W        
add        F  D  D  X  M  WB

Nota: La segunda aparición de la etapa de decodificación significa un "bloqueo".

Ahora, en ese diagrama, solo obtengo r5 después de que la segunda instrucción de lw termina su etapa MEM. Por lo tanto, tengo que detener la decodificación. Pero en ese punto, la primera instrucción lw ha completado la etapa WB. Entonces, en ese caso, ¿reenviaría de escribir atrás para decodificar o reenviar para ejecutar?

Si reenvío de reescritura a decodificación, eso parece una convención. Sin embargo, si reenvío desde escritura para ejecución, eso parece cumplir con la práctica de reenviar justo antes que consume.

    
pregunta Jonathan

1 respuesta

2

Si entiendo su pregunta correctamente:

No debería tener que reenviar desde la escritura a la descodificación, WB ocurre en la primera mitad del ciclo y la identificación en la segunda.

Estaeslamejorimagenquepudeencontrarenpocotiempo,dameunminutoytratarédeencontrarlaimagenrelevantedeunlibrodetexto.Bien,aquíhayalgunasfigurasrelevantesdePatterson&Hennessy(untextobastantebuenosobreorganizacióndecomputadoras,quesecentraenlaarquitecturaMIPS.Recomendaríaqueobtuvieraunacopia):

Enlaescritura,elarchivoderegistroseescribeenlaprimeramitaddelciclo;Enladecodificacióndeinstrucciones,elarchivoderegistroseleeenlasegundamitaddelciclo.Comoloentiendo,ladescripcióndeestetextodeMIPSesbastanteprecisa.Enhardware,estopodríaimplementarsecondosrelojes:lasetapasEX/MEM/WBseríanmanejadasporelrelojA,ylasIF/IDseríanmanejadasporelrelojB,180ºgradosfueradefase(invertida).EldiseñocuidadosodelalógicagarantizaqueIF/ID/WBestén"completos" en menos de medio ciclo de reloj.

En un simulador, simplemente tienes que actualizar el archivo de registro desde la escritura antes de que se ejecute la decodificación.

Figuras de Patterson & Hennessy, Organización y diseño de computadoras , Capítulo 4.

    
respondido por el uint128_t

Lea otras preguntas en las etiquetas