Estoy leyendo el libro "Sistema operativo de escritura desde cero" de Nick Blundell. En uno de los capítulos, se explica cómo hacemos la transición del modo de 16 bits al modo de 32 bits. Dice que antes de pasar al modo de 32 bits, debemos asegurarnos de que se ejecuten todas las instrucciones en el modo de 16 bits que se encuentran actualmente dentro de la tubería (tubería de instrucciones dentro de la CPU). Para lograr esto, dice, deberíamos hacer un gran salto, lo que provoca un enrojecimiento de la tubería que, según el libro, está completando todas las instrucciones que se encuentran actualmente en las diferentes etapas de la tubería.
Pero lo que entendí sobre el lavado de tuberías es eliminar todas las instrucciones después de la bifurcación condicional de la tubería de instrucciones debido a un cambio en el flujo del programa.
Estoy confundido entre estas descripciones, ¿podría alguien explicar lo que sucede durante el lavado de tuberías?
Además, el libro dice que un salto cercano puede no ser suficiente para hacer el lavado de tuberías. No entiendo esto también.
Hay una pregunta similar:
Bloqueo y lavado en MIPS Piplining
Pero, ¿podría alguien explicarme sobre esto con algo más de detalle?
¡Gracias de antemano!