La distribución de cargas de trabajo de Intel Alder Lake puede haber sido revelada a través de una patente
Recientemente se publicó una nueva patente sobre la distribución de cargas de trabajo en procesadores heterogéneos, lo que nos da una idea del posible programador de cargas de trabajo de Alder Lake. La patente incluye detalles relacionados con el mecanismo de asignación de recursos en arquitecturas de núcleo híbrido con una interfaz de programación guiada por hardware que mantiene al sistema operativo actualizado sobre las capacidades del procesador en función de las limitaciones de energía, térmicas y de otro tipo de los distintos núcleos disponibles.
El programador de carga de trabajo funciona identificando el subproceso más exigente que se ejecuta en el sistema. (por tiempo o requerimiento de recursos) y lo asigna a los núcleos de alto rendimiento mientras que los otros subprocesos se delegan a los núcleos de bajo consumo. En el primer paso, el requisito de rendimiento de la carga de trabajo programada se calcula utilizando datos de subprocesos como el tiempo de ejecución, la prioridad y la latencia asociados con ellos. Si el algoritmo decide que la carga de trabajo no requiere los recursos adicionales de los núcleos de alto rendimiento, entonces el subproceso se asigna a los núcleos de bajo consumo.
Después de esto, se determina la naturaleza del hilo, con el objetivo de averiguar si el hilo que cuestiono es un hilo independiente único o el hilo principal de un grupo más grande. En este caso, el subproceso se asigna al clúster de rendimiento o potencia, dependiendo de cuál aumenta el rendimiento del sistema resultante. Vale la pena señalar que este valor dependerá del estado del sistema, la cantidad de núcleos que se utilizan y el consumo de energía del procesador en ese momento.
Finalmente, se analiza la escalabilidad del hilo. Como puede ver en el gráfico anterior, el núcleo pequeño consume menos energía que el núcleo grande hasta cierto punto, en este caso, hasta 30 puntos de carga de trabajo base. Después de esto, el núcleo bajo pierde su eficiencia en la ejecución de las cargas de trabajo más complejas y cualquier cosa al norte de 32-33 (en este caso) es mejor dejarlo para los núcleos grandes. Esto puede deberse a varias razones, incluido el soporte de instrucciones, las unidades de ejecución, la diferencia en los registros de los dos núcleos, los búferes de reorden, etc.