Microprocesador con selección automática de paralelismo SIMD.
Un procedimiento que comprende:
monitorizar una pluralidad de instrucciones en una cola de instrucciones de un procesador (11) quecomprende una pluralidad de unidades de ejecución de instrucciones,
soportando el procesador (11) unprimer modo de procesamiento para procesar datos de una primera anchura y un segundo modo deprocesamiento para procesar datos de una segunda anchura, superando la primera anchura a la segundaanchura;
determinar si la pluralidad de instrucciones comprende una primera pluralidad de instruccionescorrespondiente a la primera anchura de los datos que satisface un nivel;
en respuesta a que la primera pluralidad de instrucciones satisfaga el nivel:
seleccionar el primer modo de procesamiento; y
continuar en el primer modo de procesamiento hasta que se determine que la primera pluralidad deinstrucciones no satisface el nivel; y
en respuesta a que la primera pluralidad de instrucciones no satisfaga el nivel:
seleccionar el segundo modo de procesamiento;
desactivar selectivamente al menos una unidad de ejecución de instrucciones usada para soportar elprocesamiento de datos de la primera anchura en el primer modo de procesamiento;
expandir las instrucciones que corresponden a la primera anchura de datos en múltiples instruccionescorrespondientes a la segunda anchura de datos; y
continuar en el segundo modo de procesamiento hasta que se determine que la primera pluralidad deinstrucciones satisface el nivel,
alcanzando el nivel la primera pluralidad de instrucciones cuando un primer recuento de la primerapluralidad de instrucciones iguala o supera una proporción con respecto a un segundo recuento de unasegunda pluralidad de instrucciones que corresponde a la segunda anchura de datos en la cola deinstrucciones.
Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E10192125.
Solicitante: QUALCOMM INCORPORATED.
Nacionalidad solicitante: Estados Unidos de América.
Dirección: 5775 MOREHOUSE DRIVE, R-132 D SAN DIEGO, CA 92121-1714 ESTADOS UNIDOS DE AMERICA.
Inventor/es: DOCKSER,KENNETH,ALAN.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F9/38 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 9/00 Disposiciones para el control por programa, p. ej. unidades de control (control por programa para dispositivos periféricos G06F 13/10). › Ejecución simultánea de instrucciones, p. ej. segmentación, anticipación.
PDF original: ES-2389946_T3.pdf
Fragmento de la descripción:
Microprocesador con selección automática de paralelismo SIMD
Campo técnico
La presente materia versa sobre técnicas y equipos para controlar automáticamente el estado de actividad (activo o inactivo) de uno o varios elementos de procesamiento de datos paralelos, por ejemplo de un procesador de instrucción única y datos múltiples (SIMD) o similar, para igualar el grado de paralelismo operativo con una condición relativa a las operaciones de procesamiento del procesador.
Antecedentes
Muchos dispositivos utilizan procesadores integrados, como microprocesadores y procesadores de señales digitales, con complejas disposiciones de lógico para realizar funciones de procesamiento de datos según instrucciones de programa. Las aplicaciones que requieren un procesamiento digital de datos multimedia, tales como vídeo, audio o gráficos, se están volviendo crecientemente populares entre los consumidores. Sin embargo, el procesamiento de tal información es muy exigente y ha llevado a arquitecturas de procesador que son particularmente aptas para el procesamiento de tales datos.
Típicamente, los datos multimedia incluyen una cantidad considerable de datos “paralelos”. Los datos son “paralelos” cuando las unidades individuales de datos no dependen entre sí. De aquí que el procesamiento de una unidad de datos sea independiente del procesamiento de otra unidad, es decir, no es preciso que aguarde que se complete el procesamiento de ninguna otra unidad. En consecuencia, es posible realizar a la vez varias de tales operaciones de procesamiento de datos independientes en paralelo. Esta característica de ciertos tipos de datos, particularmente las formas comunes de datos multimedia, ha llevado a la creación de procesadores paralelos, que pueden manipular simultáneamente unidades de datos en paralelo. El procesamiento paralelo de datos multimedia, por ejemplo, contribuye a menudo a aumentar sustancialmente la velocidad total de procesamiento.
Se han desarrollado varias arquitecturas diferentes y varios tipos de instrucciones para el procesamiento de datos paralelos, particularmente para operaciones multimedia. Por ejemplo, los procesadores de instrucción única y datos múltiples (SIMD) procesan los datos en paralelo. El procesamiento multimedia usando instrucciones SIMD reduce el número total de instrucciones que se requieren para ejecutar una tarea particular de programa y acelera el rendimiento al operar en múltiples elementos de datos en paralelo. Aunque el procesador puede ejecutar un único flujo de instrucciones, la ejecución SIMD de esas instrucciones de manera concurrente procesa múltiples flujos de datos en paralelo.
Muchas aplicaciones de procesadores, incluyendo dispositivos de tipos de procesamiento altamente paralelo de datos, como los procesadores SIMD, imponen grandes limitaciones a la potencia y la energía que la circuitería del procesador puede consumir. Por ejemplo, los dispositivos portátiles, como los teléfonos móviles, las agendas electrónicas (asistentes digitales portátiles) y videojuegos de mano utilizan suministros de energía en batería. Sin embargo, estos dispositivos incluyen microprocesadores sofisticados y en algunos casos usan coprocesadores para el procesamiento relacionado con los datos multimedia. Los diseños de procesadores para tales aplicaciones garantizan un control meticuloso del consumo de potencia y energía, típicamente para extender la vida de una carga en el suministro de energía de la batería, así como la vida del chip que los engloba.
La arquitectura de un procesador establece una “anchura” de la vía de los datos a través del procesador, es decir, el máximo tamaño de los datos que puede ser procesado. Típicamente, los diseños de procesamiento paralelo, tales como las arquitecturas de procesadores SIMD, están dimensionados para proporcionar una anchura de la vía de los datos que corresponde a la cantidad máximo de datos paralelos que el dispositivo puede procesar durante un ciclo dado. Hay disponibles en la actualidad procesadores SIMD que pueden procesador hasta 128 bits de datos a la vez, lo que significa que la anchura total de la vía de los datos es de 128 bis. Sin embargo, en cualquier momento dado, las porciones paralelas del procesador pueden estar procesando unidades menores de datos.
Aunque se conocen otros tamaños, los procesadores paralelos comunes ofrecen hoy una vía de datos de 64 bits o una vía de datos de 128 bits. La vía de datos se construye de elementos de procesamiento paralelo, aunque las vías pueden estar configuradas para gestionar datos de diferentes anchuras. Por ejemplo, una vía de datos de 128 bits puede dividirse en tamaños menores, es decir, el procesador puede procesar secciones de los datos de 128 bits que tengan una longitud de 8 bits, una longitud de 16 bits, una longitud de 32 bits o una longitud de 64 bits, tal como especifican las instrucciones de SIMD escritas para la aplicación particular. Por ejemplo, usando instrucciones de 8 bits, un procesador con una vía de datos con una anchura de 128 bits puede procesar en paralelo dieciséis unidades de datos de 8 bits. Por otro lado, con una vía de datos de 64 bits, si una instrucción requiere 128 bits, entonces los datos puede ser divididos en dos secciones de 64 bits y la instrucción es ejecutada secuencialmente en ambas secciones de 64 bits. El procesamiento de cada sección de 64 bits puede conllevar, por supuesto, procesamiento paralelo; por ejemplo, de ocho unidades de datos de 8 bits. Dividiendo el procesamiento para la instrucción de 128 bits, la vía de datos con anchura de 64 bits puede gestionar la instrucción de 128 bits, aunque el tiempo para el procesamiento dividido sea mayor.
Estas operaciones permiten una utilización óptima de los recursos paralelos del procesador. No obstante, sigue habiendo momentos en los que no se necesitan todos los recursos de procesamiento para aplicaciones particulares de procesamiento o momentos en los que puede ser deseable la operación plena. Por ejemplo, muchas funciones o aplicaciones del procesador simplemente no requiere la plena capacidad de procesamiento del dispositivo procesador o requieren la plana capacidad de procesamiento solamente durante un tiempo muy limitado. En el ejemplo del procesador de una vía de datos de 128 bits, una aplicación o una porción de la misma puede requerir solamente un procesamiento de datos de 64 bits durante cierto (s) periodo (s) sustancial (es) de tiempo, por ejemplo porque haya una cantidad limitada de paralelismo de datos, la cantidad de datos que debe procesarse es baja o no hay tan gran necesidad de velocidad. Sin embargo, si los elementos que proporcionan la vía de datos de 128 bits de anchura están alimentados plenamente de manera continua, los elementos paralelos no usados están consumiendo energía innecesariamente.
Como ejemplo adicional, las operaciones de procesamiento totalmente paralelo implican actividades intensas de todos los elementos paralelos. De ahí que todos los elementos paralelos estén generando calor. Algunos diseños de procesadores, por ejemplo encapsulados en un embalaje de plástico para aplicaciones de bajo coste, pueden no ser capaces de soportar el calor por encima de cierta temperatura. Las operaciones continuas de alta velocidad de todo el conjunto de elementos paralelos a lo largo de un periodo prolongado pueden generar demasiado calor.
Podría diseñarse un procesador paralelo con un menor grado de paralelismo que el requerido para algunas aplicaciones, para que fuera más eficiente para aplicaciones que no requieran el grado mayor de paralelismo. Aunque esta solución de compromiso puede reducir el consumo de energía y, por lo tanto, la generación de calor, da como resultado un desperdicio de energía y un rendimiento deficiente cuando se requiere más paralelismo.
De aquí que exista la necesidad de una técnica para ajustar automáticamente el paralelismo de tal procesador con base en la tarea de procesamiento y/o en condiciones ambientales.
El documento US 2004/254965 A1 da a conocer una unidad de cálculo que comprende una pluralidad de elementos de procesamiento, teniendo cada una unidad aritmética lógica, y un controlador para controlar los elementos del procesador. El procesador puede proporcionar un bit respectivo de una palabra de múltiples bits a cada uno de los elementos del procesador y permitir que se transmitan señales entre unidades aritméticas lógicas para permitir que las unidades lleven a cabo una operación paralela en los bits... [Seguir leyendo]
Reivindicaciones:
1. Un procedimiento que comprende:
monitorizar una pluralidad de instrucciones en una cola de instrucciones de un procesador (11) que comprende una pluralidad de unidades de ejecución de instrucciones, soportando el procesador (11) un
primer modo de procesamiento para procesar datos de una primera anchura y un segundo modo de procesamiento para procesar datos de una segunda anchura, superando la primera anchura a la segunda anchura;
determinar si la pluralidad de instrucciones comprende una primera pluralidad de instrucciones correspondiente a la primera anchura de los datos que satisface un nivel;
en respuesta a que la primera pluralidad de instrucciones satisfaga el nivel: seleccionar el primer modo de procesamiento; y continuar en el primer modo de procesamiento hasta que se determine que la primera pluralidad de instrucciones no satisface el nivel; y en respuesta a que la primera pluralidad de instrucciones no satisfaga el nivel:
seleccionar el segundo modo de procesamiento; desactivar selectivamente al menos una unidad de ejecución de instrucciones usada para soportar el procesamiento de datos de la primera anchura en el primer modo de procesamiento; expandir las instrucciones que corresponden a la primera anchura de datos en múltiples instrucciones correspondientes a la segunda anchura de datos; y
continuar en el segundo modo de procesamiento hasta que se determine que la primera pluralidad de instrucciones satisface el nivel, alcanzando el nivel la primera pluralidad de instrucciones cuando un primer recuento de la primera pluralidad de instrucciones iguala o supera una proporción con respecto a un segundo recuento de una segunda pluralidad de instrucciones que corresponde a la segunda anchura de datos en la cola de
instrucciones.
2. El procedimiento de la reivindicación 1 que, además, comprende seleccionar el segundo modo de procesamiento en respuesta a que la temperatura operativa del procesador (11) supere un umbral.
3. El procedimiento de la reivindicación 1 que, además, comprende seleccionar uno del primer modo de procesamiento y del segundo modo de procesamiento en respuesta a la recepción de una instrucción de
derogación que especifique una selección del primer modo de procesamiento o del segundo modo de procesamiento.
4. El procedimiento de la reivindicación 1 en el que desactivar selectivamente la al menos una unidad de ejecución de instrucciones comprende monitorizar la al menos una unidad de ejecución de instrucciones para determinar cuándo no queda ninguna instrucción en curso correspondiente a la primera anchura de datos
pendiente de ser procesada en la al menos una unidad de ejecución de instrucciones y desactivar selectivamente la al menos una unidad de ejecución de instrucciones con base en la determinación.
5. El procedimiento de la reivindicación 1 en el que la primera anchura de datos es de 128 bits y la segunda anchura de datos es de 64 bits.
6. El procedimiento de la reivindicación 1 en el que el primer modo de procesamiento comprende usar al menos el 40 doble de unidades de ejecución que el segundo modo de procesamiento.
7. El procedimiento de la reivindicación 1 que, además, comprende poner una bandera (19) de modo cuando se detecta la pluralidad de condiciones percibidas, en el que la bandera de modo identifica cuándo el procesador opera en el primer modo de procesamiento u opera en el segundo modo de procesamiento.
8. El procedimiento de la reivindicación 7 que, además, comprende la recepción de una instrucción de derogación 45 que sobrescribe la configuración de la bandera (19) de modo.
9. Un procesador que comprende:
una pluralidad de unidades de ejecución de instrucciones; una cola de instrucciones configurada para poner en cola instrucciones que comprenden primeras instrucciones correspondientes a una primera anchura de datos y segundas instrucciones correspondientes
50 a una segunda anchura de datos, siendo la segunda anchura de datos menor que la primera anchura de datos; un elemento (17) de expansión de instrucciones configurado para expandir selectivamente las primeras instrucciones en múltiples instrucciones correspondientes a la segunda anchura de datos; y lógica de control acoplada a la cola de instrucciones, a la pluralidad de unidades de ejecución de
55 instrucciones y al elemento de expansión de instrucciones, estando la lógica de control configurada para:
cuando una pluralidad de las primeras instrucciones alcanza un nivel, seleccionar un primer modo de procesamiento que comprende el uso de una primera pluralidad de unidades de ejecución de instrucciones; y cuando la pluralidad de las primeras instrucciones no llega a alcanzar el nivel, seleccionar un segundo
modo de procesamiento, en el que:
el elemento (17) de expansión de instrucciones expande cada una de las primeras instrucciones de la cola de instrucciones; y se usa una segunda pluralidad de unidades de ejecución de instrucciones, siendo la segunda pluralidad de unidades de ejecución de instrucciones menor que la primera pluralidad de unidades
de ejecución de instrucciones; se desactivan una o más de la pluralidad de unidades de ejecución de instrucciones no usadas para procesar las instrucciones correspondientes a la segunda anchura de datos; y
la una o más de la pluralidad de unidades de ejecución de instrucciones son reactivadas cuando la pluralidad de las primeras instrucciones alcanza el nivel, alcanzando el nivel la primera pluralidad de
instrucciones cuando un primer recuento de la primera pluralidad de instrucciones iguala o supera una proporción con respecto a un segundo recuento de una segunda pluralidad de instrucciones que corresponde a la segunda anchura de datos en la cola de instrucciones.
10. El procesador de la reivindicación 9 en el que la lógica de control está configurada, además, para monitorizar la temperatura operativa de un procesador (11) , estando activa la primera pluralidad de unidades de ejecución de
instrucciones cuando la pluralidad de las primeras instrucciones alcanza el nivel y cuando la temperatura operativa del procesador no alcanza un umbral.
11. El procesador de la reivindicación 10 que, además, comprende una bandera (19) de modo, en el que:
la bandera (19) de modo está configurada en un primer estado para activar la primera pluralidad de unidades de ejecución de instrucciones cuando la pluralidad de las primeras instrucciones alcanza el nivel y
cuando la temperatura operativa del procesador no alcanza el umbral; y la bandera (19) de modo está configurada en un segundo estado para desactivar las una o más de la pluralidad de unidades de ejecución de instrucciones cuando la pluralidad de las primeras instrucciones no llega a alcanzar el nivel o cuando la temperatura operativa del procesador supera el umbral.
12. El procesador de la reivindicación 11 en el que la bandera (19) de modo está configurada para responder a una
instrucción de derogación que pone la bandera (19) de modo en uno del primer estado y del segundo estado de forma independiente de al menos uno de si la pluralidad de las primeras instrucciones alcanza el nivel y si la temperatura operativa del procesador alcanza el umbral.
13. El procesador de la reivindicación 10 en el que al menos uno del nivel de la pluralidad de las primeras
instrucciones y el umbral de la temperatura operativa del procesador (11) se determina con base en si el 35 procesador opera en el primer modo de procesamiento o en el segundo modo de procesamiento.
14. El procesador de la reivindicación 9 en el que la lógica de control está configurada para desactivar al menos una unidad de ejecución de instrucciones que no se use para procesar las instrucciones correspondientes a la segunda anchura de datos cuando no queda ninguna instrucción en curso correspondiente a la primera anchura de datos pendiente de ser procesada.
Patentes similares o relacionadas:
Control de ejecución de hilos en un procesador multihilo, del 24 de Junio de 2020, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método para controlar la ejecución de hilos en un entorno informático, comprendiendo dicho método: detener , mediante un hilo […]
Arquitectura e instrucciones flexibles para el estándar de cifrado avanzado (AES), del 27 de Mayo de 2020, de INTEL CORPORATION: Un procesador que comprende: una pluralidad de núcleos; una caché de instrucciones de nivel 1, L1, para almacenar una pluralidad de instrucciones […]
Predicados uniformes en sombreadores para unidades de procesamiento de gráficos, del 11 de Diciembre de 2019, de QUALCOMM INCORPORATED: Un procedimiento para procesar datos, comprendiendo el procedimiento: recibir una indicación de que todos los subprocesos de una urdimbre […]
Aumento de protocolo de coherencia para indicar estado de transacción, del 4 de Diciembre de 2019, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método implementado por ordenador para implementar un protocolo de coherencia, comprendiendo el método: enviar , por un procesador (112a) solicitante, […]
Método y aparato para un acceso a memoria basado en hilos en un procesador multihilo, del 11 de Septiembre de 2019, de QUALCOMM INCORPORATED: Método para acceder a una memoria por un procesador multihilo , comprendiendo el método: determinar un identificador de hilo asociado a un […]
Procedimientos y aparatos para predecir la no ejecución de instrucciones de no bifurcación condicional, del 15 de Mayo de 2019, de QUALCOMM INCORPORATED: Un procedimiento para manejar una instrucción de no bifurcación condicional, que comprende: identificar una instrucción […]
Procesamiento transaccional, del 17 de Abril de 2019, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método de controlar la ejecución de una transacción en un entorno informático, comprendiendo el método los pasos de: Iniciar, mediante un procesador, la ejecución […]
Guardar/restablecer registros seleccionados en procesamiento transaccional, del 13 de Marzo de 2019, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método para facilitar el procesamiento de transacciones dentro de un entorno de computación, comprendiendo dicho método: obtener una instrucción […]