Planificación de instrucciones

Ya hemos hablado en alguna entrada anterior de la segmentación de un procesador. Si recordáis, implicaba dividir el trabajo que hay que realizar para ejecutar una instrucción en varias etapas de manera que el procesador trabaje como una caedna de montaje y pueda estar ejecutando varias instrucciones al mismo tiempo, cada una en una etapa diferente.

Aunque esta técnica se utiliza en casi todos los procesadores actuales, no es perfecta ni mucho menos. ¿Qué ocurre si dos o más instrucciones quieren utilizar el mismo recurso HW al mismo tiempo?. ¿Qué ocurre si una instrucción tiene como operando fuente el resultado de otra que se está ejecutando al mismo tiempo que ella?. Estas dos situaciones que os pongo como ejemplo se denominan riesgos, y son situaciones que impiden que "la cadena de montaje" del procesador funcione a pleno rendimiento. Paradas!

Lo que quiero que comprendáis con estos ejemplos sencillos es que siempre se pueden producir problemas que hagan que la cadena pare. Algunas instrucciones
tendrán que esperar a que se libere el HW que quieren utilizar, otras tendrán que esperar a que se obtenga un resultado que necesitan, etc. Para evitar estas paradas surgen técnicas de aumento de prestaciones como la planificación dinámica.

La planificación dinámica intenta reducir al máximo el número de paradas en el proceasdor reordenando las instrucciones en tiempo de ejecución. Se realiza la emisión de instrucciones en orden, pero permite que la lectura de operandos y la ejecución se realice fuera de orden.

Existen diferentes algoritmos de planificación pero todos implican la instroducción de nuevo HW dentro del procesador para gestionar la reordenación de instrucciones en tiempo de ejecución. Seguro que a todos os suenan términos como estaciones de reserva, buffer de reordenamiento o ventana de instrucciones. Todos ellos están relacionados con estas técnicas de planificación dentro del procesador que se basan en los mismos principios que las de planificación industrial.
dd

2 comentarios:

Anónimo dijo...

q es HW?

Marta Beltrán dijo...

Lo siento por las abreviaturas, a veces ni nos damos cuenta. HW es Hardware y SW es Software.