Implementación de Segmentación de Instrucciones: Retos y Manejo de Interrupciones Precisas
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 3,08 KB
8A. Desafíos en la Implementación de la Segmentación de Instrucciones
La implementación de la segmentación (pipelining) presenta varios retos críticos, especialmente en el manejo de interrupciones y el reinicio del flujo de instrucciones:
- Las direcciones de las instrucciones del hueco del retardo del salto y del destino no son secuenciales. Por ello, será necesario guardar y restaurar un número de PC (Contador de Programa) igual a la longitud del retardo de salto más uno.
- Una vez que ha sido tratada la interrupción, instrucciones especiales devuelven a la máquina al estado anterior a la interrupción, recargando los PC y reiniciando el flujo de instrucciones.
Interrupciones Precisas
Si la segmentación se puede parar para que se completen las instrucciones anteriores a la del fallo y las posteriores se puedan reiniciar desde el principio, se dice que el procesador segmentado tiene interrupciones precisas.
- Idealmente, la instrucción del fallo no debería cambiar el estado, y tratar correctamente algunas interrupciones requiere que la instrucción del fallo no tenga efectos.
- Para otras interrupciones, como las excepciones de punto flotante, la instrucción del fallo en algunas máquinas escribe su resultado antes de que pueda ser tratada la interrupción.
- El hardware debe estar preparado para recuperar los operandos fuente, aunque el operando destino sea idéntico a alguno de los operandos fuente.
- Soportar interrupciones precisas es un requerimiento de muchos sistemas, mientras que en otros es valioso porque simplifica la interfaz del sistema operativo.
8B. El Desafío de las Interrupciones Precisas y la Recuperación de Estado
- Las interrupciones precisas son un reto debido a los mismos problemas que hacen difícil reiniciar las instrucciones. Reiniciar es complicado por el hecho de que las instrucciones pueden cambiar el estado de la máquina antes de que se garantice que se completen (a veces se denominan instrucciones comprometidas [committed]).
- Como las instrucciones en curso pueden tener dependencias, no actualizar el estado de la máquina no es práctico si el procesador se va a mantener en pleno funcionamiento.
- Por tanto, cuando una máquina está más intensamente segmentada, llega a ser necesario poder dar marcha atrás en cualquier cambio de estado realizado antes de que la instrucción estuviese comprometida.
- Afortunadamente, DLX no tiene estas instrucciones, para la segmentación que estamos utilizando.
- La figura a continuación muestra las etapas de la segmentación de DLX y las interrupciones «problema» que se pueden presentar en cada etapa.
- Como en la segmentación hay múltiples instrucciones en ejecución, se pueden presentar múltiples interrupciones en el mismo ciclo de reloj.
- El fallo de página de instrucciones, realmente, se presentará primero, aun cuando esté provocado por una instrucción posterior. Esta situación se puede resolver de dos formas.