MX2007014111A - Circuiteria de prediccion de elemento inactivo y logica anti-uso excesivo. - Google Patents

Circuiteria de prediccion de elemento inactivo y logica anti-uso excesivo.

Info

Publication number
MX2007014111A
MX2007014111A MX2007014111A MX2007014111A MX2007014111A MX 2007014111 A MX2007014111 A MX 2007014111A MX 2007014111 A MX2007014111 A MX 2007014111A MX 2007014111 A MX2007014111 A MX 2007014111A MX 2007014111 A MX2007014111 A MX 2007014111A
Authority
MX
Mexico
Prior art keywords
threshold
functional unit
specific functional
time
request
Prior art date
Application number
MX2007014111A
Other languages
English (en)
Inventor
Kenneth Alan Dockser
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of MX2007014111A publication Critical patent/MX2007014111A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)
  • Facsimiles In General (AREA)

Abstract

La logica de control monitorea el uso de un elemento funcional particular (por ejemplo, un divisor, o multiplicador o similar) en un procesador programable, y la logica de control apaga la unidad cuando no se ha utilizado durante un periodo de tiempo especifico. Un contador (local o central) y el umbral de tiempo determinan cuando el periodo ha transcurrido sin el uso del elemento. La logica de control tambien monitorea que tan pronto la unidad funcional se activa nuevamente, para determinar si el control de energia esta provocando uso excesivo. Con la determinacion del uso excesivo, la unidad ajusta automaticamente su periodo de umbral, para minimizar el uso excesivo. En un ejemplo de la logica, cuando determina que esta siendo demasiado conservadora, baja el umbral. Los bits de modo pueden permitir al programador anular la logica de apagado para mantener la logica siempre encendida, o siempre apagada.

Description

CIRCUITERIA DE PREDICCIÓN DE ELEMENTO INACTIVO Y LÓGICA ANTI-USO EXCESIVO CAMPO DE LA INVENCIÓN Las presentes enseñanzas se refieren a técnicas y arquitecturas de procesador para proporcionar eficientemente una lógica de procesamiento compleja con consumo de energía reducida cuando funciones de procesamiento requieren menos que las capacidades de procesamiento completo.
ANTECEDENTES DE LA INVENCIÓN Muchos dispositivos utilizan procesadores integrados, tales como microprocesadores y procesadores digitales de señales, con disposiciones complejas de lógica para realizar funciones de procesamiento de datos de acuerdo con instrucciones de programación. Muchas aplicaciones de estos procesadores, por ejemplo, en dispositivos portátiles que tienen suministros de energía por batería, garantizan el control cuidadoso del consumo de energía, típicamente, para prolongar la vida de una carga en el suministro de energía por batería. Muchas funciones o aplicaciones del procesador no requieren la capacidad de procesamiento completo del dispositivo procesador, o requieren la capacidad de procesamiento completo sólo por un tiempo muy limitado. Si se energiza toda continuamente, sin embargo, la lógica no utilizada consumirá innecesariamente energía. Las puertas lógicas de Semiconductor Complementario de Óxido Metálico (CMOS) tradicionalmente han sido muy buenas para minimizar la energía consumida por elementos inactivos ya que sólo consumen energía dinámica cuando un circuito activamente está conmutando. Sin embargo, también tienen un componente estático o de escape para su consumo de energía. Comúnmente, el componente dinámico ha tenido en su mayor parte más peso que el estático. Sin embargo, en tecnologías más nuevas muy submicrométricas, el componente estático está comenzando a contribuir una cantidad importante al consumo de energía general. Para poder ser eficiente en la energía, dispositivos modernos pueden necesitar limitar activamente la cantidad de energía estática disipada. Para lograr una reducción de energía, aplicaciones integradas energizadas por batería tal como teléfonos celulares, se han hecho intentos por reducir la energía de porciones no utilizadas de lógica, eliminando por consiguiente la pérdida de energía de escape. Algunos se han basado en el control de software para apagar los componentes lógicos no utilizados. Para este propósito, instrucciones en el programa pueden encender ciertos elementos del procesador cuando se necesiten o apagarlos cuando no se necesiten. Mientras esto resulta en ahorros de energía, impone una sobrecarga adicional en el software y requiere que el programador controle activamente varias funciones del procesador. Sistemas automatizados pueden utilizarse para desconectar un componente no utilizado después de una cantidad dada de tiempo. Sin embargo, surgen casos donde la reducción de energía basada en tiempos de un elemento lógico es potencialmente problemática. La activación o encendido del componente puede resultar en consumo de energía adicional. En algunos casos, exige más encender el elemento que sólo mantener el elemento encendido durante cierto período de tiempo corto. También, toma tiempo encender un componente nuevamente. El retardo resultante o latencia en reiniciar el componente puede resultar en pérdidas de procesador, que degradan el rendimiento. Por lo tanto, es deseable asegurar que el componente no se apague repetidamente sólo para encenderse un corto tiempo después. El apagado y encendido repetidos pueden llamarse "uso excesivo" . Existe una necesidad de una técnica para controlar selectivamente la energía en un elemento de un procesador, para reducir efectivamente el consumo de energía aún evitando uso excesivo indebida.
SUMARIO DE LA INVENCIÓN En un aspecto, las enseñanzas de la presente descripción se refieren a un método para reducir el consumo de energía de un procesador programable. El método involucra monitorear el tiempo desde una última petición de una operación de una de las unidades funcionales del procesador programable. El tiempo desde la última desconexión previa de la unidad también se monitorea. Cuando el tiempo desde la última petición excede un umbral actual, este método desconecta la unidad funcional específica, para reducir la energía consumida por la unidad funcional específica. La unidad se reactiva en respuesta a una petición posterior de la operación de la unidad funcional específica. El método también incluye ajustar el umbral . En el tiempo de reactivar la unidad funcional específica, si el tiempo desde la desconexión es menor que un valor establecido, el método incrementa el umbral actual a un nuevo umbral más alto. Por ejemplo, el valor establecido puede ser igual al valor de intervalo actual utilizado como el umbral. Si el tiempo de la desconexión a la siguiente petición es corto, por ejemplo, menor que el umbral antiguo, el incremento en el umbral ayuda a reducir uso excesivo futuro. El umbral también puede ajustarse por incremento, típicamente como una disminución en el umbral de tiempo, en respuesta al intervalo desde la última petición previa. La disminución en incrementos ayuda a optimizar el ahorro de energía. Otros aspectos de las presentes enseñanzas se refieren a un control de energía y/o a un procesador que utiliza control de energía con ajuste de umbral. El control de energía puede incluir circuitería acoplada a una de las unidades funcionales, para activar selectivamente y desconectar la unión funcional específica. El control incluye medios para monitorear el tiempo. Específicamente, el tiempo se monitorea desde una última petición previa de operación de la unidad funcional específica y desde una última desconexión previa de la unidad. Los medios de control desconectan la unidad funcional específica si el tiempo desde la última petición de operación de la unidad funcional excede un valor actual de un umbral . El medio de control también sirve para incrementar el valor del umbral sobre su valor actual, si una petición de la unidad funcional específica ocurre en un tiempo desde la última desconexión previa de menos de un valor establecido. Un aspecto del procesador de las presentes enseñanzas puede incluir unidades funcionales para procesar datos de acuerdo con instrucciones y circuitería acoplada a una de esas unidades, para activar selectivamente y desconectar la unidad funcional específica. Un controlador de energía monitorea las peticiones de operación de la unidad funcional específica durante el procesamiento de instrucciones y controla la circuitería para desconectar la unidad. El controlador desconecta la unidad funcional específica con cada paso de un intervalo de tiempo puesto que la última previa de las peticiones es igual a un umbral ajustable. El controlador también reactiva la unidad funcional en respuesta a cada nueva petición de operación de la unidad funcional específica después de una desconexión. También se proporcionan medios para ajustar el umbral . El ejemplo descrito incluye lógica de control que monitorea el uso de un elemento funcional particular (por ejemplo, un divisor, un multiplicador o similar) y apaga la unidad cuando no se ha utilizado durante un período de tiempo específico. Una marca de tiempo se almacena cada vez que existe una petición de operación de la unidad. La lógica emplea un contador (local o central) para determinar cuando un período establecido ha transcurrido sin el uso del elemento. La lógica también almacena una marca de tiempo para cada desconexión y monitorea qué tan pronto se activa la lógica nuevamente para determinar si el control de energía está provocando uso excesivo. Con la determinación de tal uso excesivo, la unidad ajusta automáticamente su período de umbral para minimizar el uso excesivo. De igual manera, cuando la lógica determina que esta siendo demasiado conservadora, baja por incrementos el umbral. Existen bits de modo para permitir que el programador anule la lógica de apagado para mantener la lógica siempre encendida, o siempre apagada. Por lo tanto, la técnica ejemplar permite que el hardware reduzca dinámicamente el consumo de energía basado en fugas basándose en el tiempo de actividad de las unidades funcionales específicas. La lógica anti-uso excesivo asegura que los esfuerzos por reducir la energía no provoquen un consumo de energía indebido o fallas del procesador debido al reciclaje excesivo. Sin embargo, cuando no existe uso excesivo, el ajuste por incrementos ayuda a optimizar el ahorro de energía. Ventajas adicionales y características novedosas se establecerán en parte en la descripción que sigue, y se volverán aparentes para aquellos con experiencia en la técnica con el examen de lo siguiente y las figuras anexas o pueden aprenderse por la producción u operación de los ejemplos. Las ventajas de las presentes enseñanzas pueden realizarse y obtenerse por la práctica o uso de las metodologías, medios y combinaciones particularmente señaladas en las reivindicaciones anexas.
BREVE DESCRIPCIÓN DE LAS FIGURAS Las figuras representan una o más implementaciones de acuerdo con los presentes conceptos, por medio del ejemplo solamente, no por medio de limitaciones. En las figuras, números de referencia similares se refieren a los mismos elementos o similares. La Figura 1 es un diagrama de bloque simplificado de un procesador canalizado, con control ajustable de una unidad funcional del procesador. La Figura 2 es un diagrama de bloque funcional de un ejemplo de un control de energía, para controlar la activación de un divisor, basándose en un umbral de tiempo ajustable. La Figura 3 es un diagrama de flujo de un ejemplo del procesamiento para activar y desactivar una unidad funcional del procesador, basándose en el tiempo con respecto a la actividad de la unidad y un umbral de tiempo ajustable . La Figura 4 es un diagrama de flujo de un ejemplo del procesamiento que puede utilizarse para ajustar el umbral, para optimizar el ahorro de energía mientras se coloca el uso excesivo.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN En la siguiente descripción detallada, numerosos detalles específicos se establecen por medio de los ejemplos para poder proporcionar una entendimiento completo de las enseñanzas relevantes. Sin embargo, debe ser aparente para aquellos con experiencia en la técnica que las presentes enseñanzas pueden practicarse sin tales detalles. En otros casos, métodos bien conocidos, procedimientos, componentes y circuitería se han descrito en un nivel relativamente elevado, sin detalle para poder evitar obscurecer innecesariamente los aspectos de las presentes enseñanzas. Los diversos ejemplos de la arquitectura del procesador flujos de procesamiento descritos en lo siguiente controlan la operación de una unidad funcional particular (por ejemplo, un divisor, un multiplicador o similar) basándose en peticiones monitoreadas de operación de esa unidad, por ejemplo, para apagar la unidad funcional cuando no se ha utilizado (por ejemplo, ninguna nueva petición) durante cierto período. El período o establecimiento de tiempo de umbral, sin embargo, se ajusta basándose en el uso del elemento. El ajuste de umbral puede disminuir el umbral gradualmente, para mejorar adicionalmente el consumo de energía, cuando el elemento controlador se utilice menos frecuentemente. Para evitar el uso excesivo, si una instrucción reclama a la unidad en un período corto después de una desconexión, por ejemplo, si un período es menor que el ajuste de umbral actual, entonces el procesador ajusta el umbral para incrementar el período inactivo antes de la desconexión subsecuente. Ahora se hace referencia en detalle a los ejemplos ilustrados en las figuras anexas y discutidos en lo siguiente. Los principios del control de energía discutidos en la presente son adaptables a una variedad de diferentes arquitecturas del procesador, sin embargo, para facilitar el entendimiento, puede ser útil considerar un procesador canalizado como un ejemplo. La Figura 1 es un diagrama del bloque simplificado de un procesador 10 canalizado. El procesador 10 se pretende para aplicaciones de baja energía, por ejemplo, en estaciones de teléfono móvil u otros dispositivos electrónicos portátiles que utilizan energía de batería. En tales aplicaciones, la técnica se puede aplicar al procesador principal o un coprocesador numérico, tal como un procesador de datos múltiples de instrucción sencilla (SIMD) para procesamiento de multimedia. Para facilidad de discusión, el ejemplo de un trayecto 10 es un diseño escalar, que implementa esencialmente un trayecto sencillo. Aquellos de experiencia en la técnica entenderán, sin embargo, que el procesamiento descrito en la presente también se puede aplicar a diseños superescalares y otras arquitecturas que implementan múltiples trayectos. También la profundidad del trayecto (por ejemplo, número de fases) es ilustrativo solamente. Un trayecto actual puede tener menos fases o más fases que el trayecto 10 en el ejemplo. El trayecto 10 simplificado incluye cinco categorías principales de fases de procesamiento de trayecto: Buscar 11, Descodificar 13, Lectura 15, Ejecutar 17 y Re-escritura 19. Las flechas en el diagrama representan flujos de datos lógicos, conexiones no necesariamente físicas. Aquellos con experiencia en la técnica reconocerán que cualquiera de estas fases puede descomponerse en múltiples fases que realizan porciones de la función relevante, o que el trayecto puede incluir fases adicionales para proporcionar funcionalidad adicional. Aunque no se muestra separadamente en la Figura 1, cada fase del trayecto 10 típicamente comprende una máquina de estado o similar que implementa las funciones lógicas relevantes y un registro asociado para pasar la instrucciones y/o cualesquier resultados de procesamiento a la siguiente fase o a otros recursos de procesador. En el trayecto 10 ejemplar, la primera fase es la fase 11 de instrucción de Buscar. La fase 11 de Buscar obtiene instrucciones para procesamiento por fases posteriores. La fase 11 de Buscar obtiene las instrucciones de una jerarquía de memorias (no mostrada) , que incluyen típicamente una memoria caché de instrucción o nivel 1 (Ll) , una memoria caché de nivel 2 (L2) y memoria principal. La fase 11 de Buscar suministra cada instrucción a una fase 13 de Descodificación. La lógica de la fase 13 de instrucción de Descodificación descodifica los bits de instrucción recibido y suministra el resultado a la siguiente fase del trayecto. La siguiente categoría principal de fases proporciona acceso de datos o Lectura. La lógica de la fase 15 de Lectura accede a los datos operados en registro específicos en un registro de propósito general o archivo "GPR" (no mostrado) . Cada instrucción y sus datos operando requeridos se pasan a una o más fases 17 que proporcionan la función de Ejecutar. Las fases 17 de Ejecutar ejecutan esencialmente la función particular de cada instrucción sobre los datos operando recuperados y producen un resultado. La fase o fases 17 que proporcionan la función Ejecutar por ejemplo, pueden implementar una unidad lógica aritmética (ALU) . La fase 17 de Ejecutar suministra el resultado o resultados de la ejecución de cada instrucción en la fase 19 de Re-escribir. La fase 19 escribe los resultados nuevamente en un registro o memoria. Los elementos del procesador 10 consumen energía aún cuando no están conmutando. En muchas aplicaciones, por ejemplo, que utilizan recursos de energía de batería, la vida de la fuente de energía se limita. Algunos elementos del procesador 10 no se utilizan continuamente. Algunas unidades funcionales, en la fase 17 de Ejecutar en el ejemplo, pueden no necesitarse durante períodos sustanciales de tiempo. Para reducir el consumo de energía, cada unidad funcional puede desconectarse cuando no se necesite. Para propósitos de discusión, la unidad funcional que será el objeto de control de energía es un divisor 21, aunque aquellos con experiencia en la técnica reconocerán que el control similar puede aplicarse a un multiplicador o cualquiera de una variedad de otros elementos funcionales o recursos de la fase 17 de Ejecutar o en otro lugar en el procesador 10. El ejemplo incluye un control 23 de energía, que monitorea las peticiones y la operación de una unidad funcional particular (por ejemplo, el divisor 21) . El control 23 apaga la unidad cuando no se ha pedido durante un período de tiempo definido por un umbral ajustable en el registro 25. El control 23 de energía determina cuando un período establecido ha transcurrido sin una petición de uso del divisor 21, es decir cuando el período de inactividad del elemento 21 cumple o excede el umbral 25. Como se discutirá más adelante, el control 23 de energía también monitorea qué tan pronto la unidad funcional, en este caso el divisor 21, se enciende nuevamente después de cada apagado para determinar si el control de energía está provocando uso excesivo. Con la determinación de tal uso excesivo, el control 23 de energía ajusta automáticamente su período de umbral ascendentemente, para minimizar el uso excesivo. De igual manera, cuando el control 23 de energía determina que está siendo demasiado conservador, baja el umbral 25. Los bits de modo existen para permitir al programados anular la lógica de apagado para mantener la unidad siempre encendida, o siempre apagada. El estado activo de la unidad funcional controlada, es decir el divisor 21 en el ejemplo de la Figura 1, puede controlarse en respuesta a las señales de selección del control 23 de energía en cualquiera de una variedad de formas conocidas. Para propósitos de discusión general, la Figura 1 muestra una señal (S) necesaria para la operación del divisor 21, y un circuito 27 de puerta genérica para acoplar selectivamente la señal en el divisor en respuesta a las señales de control de energía del control 23 de energía. El circuito mostrado genéricamente en 27 en la Figura 1 puede ser una puerta lógica, un conmutador, una combinación de los mismos, o cualquier otro circuito configurado para suministrar el tipo apropiado de señal a la unidad funcional en respuesta a las señales de selección apropiadas del control 23. Suministrar la señal S a la unidad 21 activa o enciende la unidad; mientras interrumpir o extraer la señal S desconecta la unidad 21. Por ejemplo, el divisor 21 puede habilitarse selectivamente y deshabilitarse por activación periódica controlada del suministro de energía en el divisor 21, de manera que la operación de la puerta 27 se enciende y se apaga de acuerdo con las peticiones de uso. En tal implementación, la señal S puede representar una de las terminales de suministro de energía o de voltajes. Cuando el control 23 de energía deshabilita el divisor 21, el control 23 activa la puerta 27 o desconecta una conexión en una de las terminales S de energía (por ejemplo, suministro o tierra) con respecto a la circuitería del divisor 21. La desconexión elimina el consumo de energía dinámico y la fuga a través de la circuitería de esa unidad funcional. El ejemplo de la Figura 1 muestra una unidad funcional sencilla, el divisor 21 controlado basándose en peticiones de su uso. Aquellos con experiencia en la técnica reconocerán que un procesador dado puede incluir varios controles similares para un número de elementos que consumen energía sustancial pero pueden ser inactivos durante períodos considerables de tiempo. La Figura 2 es un diagrama de bloque funcional de una implementación del control 23 de energía, para controlar la activación del divisor 21 basándose en un umbral ajustable en el registro 25. En este ejemplo, el control 23 de energía incluye un contador 31 en respuesta a una señal de reloj . El contador 31 puede utilizar el reloj del sistema u otra señal de reloj generada en o para el procesador 10. El contador 31 puede compartirse entre varias unidades funcionales, o dedicarse a la unidad funcional en cuestión. El conteo es en unidades de tiempo razonables para la unidad funcional . Puede variar de ciclos a segundos (o más) . El control 23 de energía también incluye dos registros 33 y 35 de marca de tiempo (TS) . Cuando se activan, un registro 33 ó 35 almacena el conteo actual de contador 31, que representa una medida o valor relacionado con el tiempo actual. El registro 33 se activa para almacenar el valor de conteo de tiempo actual del contador 31, cada vez que la unidad funcional (divisor 21 en nuestro ejemplo) se pide por una instrucción que fluye a través del procesador 10 canalizado. El registro 33 mantiene ese conteo hasta que la unidad se pide nuevamente. En esta manera, el valor TS (LC) en el registro 33 representa una marca de tiempo para la última petición (más reciente) de operación del divisor 21. El registro 35 se activa para almacenar el valor de conteo de tiempo actual del contador 31, cada vez que la unidad funcional (divisor 21 en nuestro ejemplo) se paga.
El registro mantiene esa cuenta hasta que la unidad se desconecta nuevamente. De esta manera, el valor TS (LPD) en el registro 33 representa una marca de tiempo para la última desconexión (la desactivación más reciente) del divisor 21. El contador 31 también suministra conteos relacionados con el tiempo de ejecución para los dos circuitos 37 y 39 de substracción. Cuando se operan el circuito 37 de substracción también recibe el último valor de marca de tiempo de petición TS/LPD) del registro 33. La diferencia Ic entre el contador (relacionado con el tiempo actual) y el valor de conteo almacenado TS (LC) representa el intervalo de retardo interno desde la ultima petición previa del divisor 21. Un comparador 41 compara el intervalo de retardo interno desde la última petición Ic para el valor actual del umbral 25 ajustable. De esta manera, el valor de contador se resta de los datos en el registro 33 y se compara con el umbral actual como se registró en 25. Alternativamente, esto puede hacerse al restar la marca de tiempo antigua en el registro 33 y el umbral 25 del valor actual del contador 31, en cuyo caso, un resultado cero o negativo quiere decir un período igual al umbral que ha pasado desde la última petición del divisor 21. Si Ic alcanza (es decir, cumple o excede) el valor actual del umbral 25, entonces la lógica 45 de control deshabilita la puerta 27, para desconectar el divisor 21. Cuando la lógica de control desactiva el divisor 35, también provoca que el registro 35 almacene un nuevo conteo del contador 31, como el último valor de marca de tiempo de apagado TS (LPD) . La lógica de control enciende el divisor 21 en respuesta a una última petición del divisor 21. El segundo circuito 39 de substracción recibe el último valor de marca de tiempo de apagado TS (LPD) del registro 35. La diferencia IP entre el valor en el contador 31 (relacionado con el tiempo actual) y el valor de conteo almacenado TS (LPD) representa el intervalo de retardo interno desde que se apagó por último el divisor 21. Un comparador 43 compara el intervalo desde el último apagado IP en un valor establecido, en este ejemplo el calor actual del umbral 25 ajustable, y suministra resultado a la lógica 45 de control. La lógica 45 de control utiliza este resultado de comparación en su algoritmo interno para ajustar el umbral 25 para evitar uso excesivo. Alternativamente, esta comparación puede hacerse al restar la marca de tiempo antigua en el registro 35 y el umbral 25 del valor actual del contador 31, en cuyo caso, un resultado positivo quiere decir que un período menor que el umbral ha pasado del último apagado. El circuito 37 de substracción y el comparador 41 se activan cuando el divisor se pide o se enciende, como parte del procesamiento para ajustar el umbral 25. El algoritmo implementado por la lógica 45 de control para ajustar el período utilizado para la desconexión basada en el uso se pretende para optimizar el consumo de energía y aún minimizar el uso excesivo. Por ejemplo, si el control 23 no esperó lo suficiente antes de desconectar el divisor 21 la última vez, la lógica 45 extiende el umbral utilizado como la medida del período de inactividad para el siguiente ciclo de energía con respecto a la unidad funcional particular. Sin embargo, el algoritmo también disminuye el umbral un bit (adaptación) , por ejemplo, cada que vez que pide la función donde el retardo de petición interna fue más grande que el umbral . Primero considerar las operaciones que pueden involucrarse para ajustar el umbral descendentemente, para reducir adicionalmente el consumo de energía. Un umbral de desconexión mínima se cablea o carga por software en el registro 47 de Umbral Mínimo. El valor de umbral inicial (es decir Th0) en el registro 47 es el valor mínimo leído del registro 25. Típicamente, el umbral mínimo que se establece en el valor donde los ahorros de energía de desconexión (fuga) es igual al costo de encendido, aunque el mínimo puede ser menor que este valor. También podría establecerse más grande, para tomar en cuenta el costo del retardo inducido (por ejemplo, pérdidas, limpieza y rebúsqueda) en el flujo de instrucción que espera el reinicio de la unidad funcional controlada. Cuando la unidad funcional (por ejemplo, divisor 21) se pide o se apaga, el valor en el valor actual del contador 31 se captura en el registro 33 ó 35 apropiado como una marca de tiempo. También, cuando la unidad funcional se pide o la unidad se enciende nuevamente, el valor actual del contador 31 se resta de los datos en el registro apropiado y se compara con el umbral actual, por ejemplo, utilizando los circuitos de sustracción y los comparadores discutidos en lo anterior. Alternativamente, esto puede hacerse al restar la marca de tiempo respectiva y el umbral del valor de contador actual - un valor negativo quiere decir que el evento ocurrió más pronto que un intervalo de umbral lejos del último evento. Esencialmente, cada vez que el control 23 de energía detecta una nueva petición de la unidad funcional, el control de energía ejecuta dos algoritmos para ajustar el valor de umbral en el registro 25. Un algoritmo proporciona ajustes menores o adaptación, para optimizar el ahorro de energía por el control 23. El otro algoritmo proporciona ajustes más grandes, para minimizar el uso excesivo. Para la adaptación, cada vez que existe una petición de la función de la unidad, por ejemplo, para la división por la unidad 21, se determina cuanto tiempo ha estado desde la última petición al comparar marcas de tiempo (resultado del contador) para las peticiones. Este valor Ic, para retardo interno entre peticiones, se resta del umbral antiguo Thn, y la diferencia (?) se alterna a la derecha por un valor constante, por ejemplo, 3 lugares, esencialmente como si se dividiera por la energía correspondiente de dos. Este resultado se resta del valor de umbral antiguo Thn, para producir un nuevo umbral Thn+?. Un ejemplo de tal fórmula para ajustar el umbral sería como sigue : (i) Basándose en tal cálculo, la lógica 45 de control ajusta el valor de umbral en el registro 25. Este procesamiento en respuesta al intervalo entre las peticiones produce un ajuste gradual del umbral. Puesto que un retardo interno muy grande Ic podría provocar grandes cambios en el umbral, la diferencia (?) podría saturarse en un valor mínimo (por ejemplo, el umbral previo THn) de manera que ninguna lectura sencilla podría afectar indebidamente el umbral. De este modo, por ejemplo, el nuevo umbral podría mantenerse siempre dentro del margen Thn 77?_ de: Tfln —^r= Th H ='Th +- r- . Puesto que valores muy grandes de Ic son conductivos de ahorros de energía, el umbral podría reducirse realmente (en lugar de incrementarse) por 2* en tales casos; para propósitos de este ejemplo, un valor muy grande de le podría definirse como >Thn2x. Además, el umbral mínimo podría utilizarse como un límite sobre la disminución del umbral. Asumir como un primer ejemplo, que la unidad funcional estaba encendida, y el tiempo desde la última petición no ha pasado cuando se recibe la otra petición del umbral actual Thn. En este ejemplo, la lógica 45 de control ha mantenido la unidad 21 funcional encendida. Cuando la nueva petición de la unidad se recibe, el retardo interno Ic es menor que el valor actual Thn. La diferencia entre Thn e Ic podría ser un valor positivo ?. Por lo tanto, el nuevo umbral Thn+? puede reducirse o ser más pequeño que el umbral antiguo Thn, por la cantidad de ? modificada por x lugares (dividido por 2X) . Establecido de otra forma, el control de energía aún no ha sido lo suficientemente fuerte, para que reduzca por incrementos el umbral en un esfuerzo por recortar la unidad (ahorrar energía) previamente en el futuro . Asumir como un segundo ejemplo, que el tiempo en que la última petición ha pasado el umbral actual, y la lógica 45 de control ha apagado la unidad 21 funcional. Cuando la unidad se pide después, el retardo interno Ic es más grande que el umbral actual Thn. Si no existe uso excesivo Ip es mayor que o igual a Thn, de manera que le es por lo menos dos veces el valor de umbral actual Thn. La diferencia puede ser un valor negativo ?. Por lo tanto, el nuevo umbral Thn+? en la fórmula (1) puede incrementarse o ser más grande que el umbral antiguo Thn, por la cantidad de ? modificado por x lugares (dividido por 2X) . Sin embargo, si el retardo interno Ic fuera particularmente grande, el control de energía puede reducir el nuevo umbral en el ejemplo de Thn+? a Thn(l-l/2x) . La lógica 45 de control también ajusta el valor de umbral en el registro 25 para minimizar el uso excesivo. El uso excesivo ocurre si, después de un apagado, una nueva petición viene por la operación de la unidad funcional demasiado pronto, por ejemplo, de manera que el encendido consume mas energía que la que se ahorró por el apagado y/o las pérdidas agregadas debido a que el retardo de encendido afecta significativamente el rendimiento. Si la función de la unidad en cuestión se ha apagado, cuando se pide nuevamente y se enciende, el tiempo de capacidad se compara con la marca de tiempo de apagado TS (LPD) . En el ejemplo de la Figura 2, cuando la lógica 45 de control enciende el divisor 21 en respuesta a una nueva petición de su operación, la lógica lee la comparación del valor de conteo en el contador 31 con la combinación de la marca de tiempo en el registro 35 y el valor de umbral en el registro 25. El mismo umbral se utiliza para conveniencia, aunque un valor de tiempo establecido diferente podría utilizarse en este algoritmo de ajuste. Si el intervalo de tiempo medido desde el último apagado es demasiado pequeño (por ejemplo, el período de retardo entre el apagado y encendido es menor que o igual al umbral) , el umbral se ajusta en una forma pretendida recudir el potencial futuro de uso excesivo. Este ajuste incrementa el umbral para uso futuro, por ejemplo, a dos veces el umbral antiguo. De este modo, el componente anti-uso excesivo tiene un efecto más directo sobre el umbral, mientras el componente de ajuste tiene un efecto más atenuado. El procesamiento para controlar la activación y desactivación de un elemento funcional de un procesador basado en la inactividad y para ajustar el umbral de tiempo de inactividad puede implementarse en una variedad de formas. Sin embargo, puede ser útil considerar un ejemplo de un flujo lógico de procesamiento de acuerdo con las operaciones representadas en lo anterior, xyz Figura 3 es un diagrama de flujo que ilustra un ejemplo del flujo de proceso que puede implementarse por el control 23 de energía. Cuando el divisor 21 ya está encendido (en SI) , el retardo entre peticiones Ic desde la última petición previa para la operación del divisor 21 se calcula en la etapa S2. Utilizar el registro 33 y el circuito 37 de substracción, por ejemplo, etapa S2 calcula Ic = Conteo -TS (LC) . Una etapa S3 implica la comparación con el valor de umbral actual Thn (por ejemplo, como en el comparador 41) . Si la lógica 45 de control determina el retardo de inactividad desde la última petición Ic no cumple o excede el valor de umbral actual Thn, el procesamiento en la etapa S3 fluye a la etapa S4. En la etapa S4 , la lógica 45 de control comprueba una petición de operación del divisor 21. Si no existe ninguna petición, entonces el procesamiento en la etapa S4 fluye la etapa S5. En la etapa S5, el contador se incrementa y el procesamiento regresa a la etapa S2 para actualizar el valor para el retardo interno desde la última petición y para comprobar ese retardo nuevamente contra el valor de umbral actual S3. Asumir para propósitos de discusión en este punto que el bucle a través de las etapas S2 a S5 continua hasta que el control de energía detecta una petición de operación del divisor 21. Por lo tanto, en la etapa S4 , la lógica 45 de control detecta la petición del divisor 21, y el proceso fluye de la etapa S4 a la etapa S6. En la etapa S6, la lógica de control implementa una rutina para ajustar el valor de umbral, como se discutirá posteriormente con respecto al diagrama de flujo de la Figura 4. Desde luego, puesto que la unidad no se ha apagado, en este punto del ejemplo, el ajuste disminuye por incrementos el umbral para su uso futuro. Después del ajuste del umbral, el procesamiento involucra actualizar la marca de tiempo TS(LC) en el registro (33) (etapa S7) al valor actual en el contador 31 en el ciclo en el cual el control 23 recibió o detectó la petición del divisor 21. Etapa 5 nuevamente incrementa el contador, y el procesamiento regresa a la etapa S2 para retomar el análisis basado en el retardo interno Ic desde la última petición de la función del divisor 21. Los circuitos a través de las etapas S2 a S7 continuarán tan pronto como la lógica 45 de control reciba una nueva petición de la función del divisor 21 antes de una expiración de un período del retardo interno Ic puesto que la última petición de la función del divisor 21 es igual a o mayor que un valor actual Thn del umbral. Sin embargo, se asume ahora que el retardo desde la última petición alcanza el valor de umbral actual. Por lo tanto, en la etapa S3 , la lógica 45 de control detecta que Ic=Thn, y provoca que el procesamiento fluya de la etapa S3 a S8. En la etapa S8, la lógica 45 de control deshabilita el divisor 21, por ejemplo, al cortar la energía en el divisor 21 como se discute previamente. La lógica 45 de control entonces (en S9) activa el registro 35 para capturar el valor de conteo actual como el nuevo valor de marca de tiempo TS(LPD) para el último apagado del divisor 21. En la etapa SIO, la lógica de control espera ver si ha recibido o detectado una nueva petición de la función del divisor 21. Si no es así, el procesamiento fluye a la etapa Sil en la cual se incrementa el contador, el procesamiento fluye nuevamente a la SIO. Las etapas SIO y Sil se repiten hasta que la lógica 45 de control detecta una nueva petición de la función del divisor 21. Hasta que se detecta una nueva petición, el divisor 21 permanece deshabilitado y de este modo no consume energía. Sin embargo, cuando la lógica 45 de control detecta una nueva petición de la función del divisor 21, el procesamiento fluye de SIO a S12. En S12, la lógica 45 de control inicia el procedimiento para encender la unidad funcional, es decir el divisor 21 en el ejemplo. El procesamiento entonces fluye a la etapa S6 para ajustar el umbral, ya sea para adaptar el umbral o para incrementar el umbral para evitar el uso excesivo, dependiendo de la longitud del tiempo entre peticiones. En la etapa S7, la lógica 45 establece la marca de tiempo para la última petición TS (LC) para el valor actual en el contador 31. El procesamiento entonces fluye nuevamente a través de la etapa S5 a la etapa S2 para retomar el procesamiento discutido previamente. Como se muestra por la Figura 3 y la descripción de la misma en los párrafos precedentes, cada vez que existe una petición de la operación de la unidad funcional, la lógica 45 de control iniciará un procedimiento en la etapa S6 para ajustar el umbral. El procesamiento en S6 para ajustar el umbral de acuerdo con los principios representados en lo anterior puede implementarse en una variedad de formas. Sin embargo, puede ser útil considerar un ejemplo de un flujo de lógica de procesamiento de acuerdo con las operaciones representadas en lo anterior, con respecto al diagrama de flujo de la Figura 4. En la etapa S61, el intervalo IP desde el último apagado del divisor 21 se calcula. Utilizando el registro 35 y el circuito 39 de sustracción, por ejemplo, etapa S61 calcula IP=Conteo-TS (LPD) . En la etapa S62, la energía 45 determina si esta operación de ajuste seguida por un encendido del divisor 21. Si es así, el procesamiento fluye de S62 a S63. La etapa S63 implica la comparación con un valor establecido utilizado para medir el uso excesivo, por ejemplo, con el valor de umbral antiguo Thn, (por ejemplo, como en el comparador 43) . Si la lógica 45 de control determina que el intervalo IP desde el último apagado es menor que el valor de umbral antiguo Thn, entonces existe un problema de uso excesivo, de manera que el procesamiento en la etapa S63 fluye a la etapa S64. En la etapa S64, el umbral se incrementa para reducir el uso excesivo. Este ajuste en S64 puede producir un umbral incrementado igual a, por ejemplo, dos veces el umbral antiguo (Thn+?=2 (Thn) ) . Por lo tanto, al detectar una condición de uso excesivo, el umbral de apagado puede ser doble, para evitar un apagado temprano del divisor en ciclos futuros. Regresando a la etapa S62, si la unidad funcional no se encendió en respuesta a la nueva petición (el intervalo de umbral puesto que la última petición previa no había expirado) el procesamiento puede fluir hasta S65. El procesamiento también puede alcanzar S65 si existe un encendido en respuesta a la nueva petición pero el intervalo IP puesto que el último apagado fue mayor que o igual al valor de umbral antiguo. Esto quiere decir que el período desde la última petición previa también es más grande que el umbral (puesto que la última petición previa precedió el último apagado previo) y la unidad funcional se encendió en la etapa S12 en este paso a través del flujo de proceso de la Figura 3. En cualquier caso, no existe ningún problema de uso excesivo, pero el umbral puede necesitar adaptarse para optimizar el ahorro de energía. Como se observa, valores muy grandes de Ic son conductivos a los ahorros de energía. En este ejemplo, un valor muy grande de le se define como >Thn2x, y la lógica comprueba el retardo interno contra aquel que define el valor en la etapa S65. Si el retardo interno Ic > Thn2x, el procesamiento fluye a la etapa S66 en el cual el umbral se Th reduce por -rf- (el valor binario antiguo movido a la izquierda por x lugares, por ejemplo, por uno, dos, tres o más lugares) . Después, el procesamiento fluye a la etapa S67, para comprobar el valor de umbral reducido contra el valor de umbral mínimo. Si el nuevo valor de umbral calculado Thn+1 puede ser menor que el umbral mínimo Thmin, entonces en la etapa S68 sirve para establecer el nuevo umbral en el valor mínimo. Si no es así, entonces el procesamiento se sale de la rutina S6 de ajuste con el nuevo umbral establecido en el valor calculado en la etapa S66. Regresando ahora a la consideración de la etapa S65, donde se determinó si el intervalo I de retardo interno fue relativamente grande. Si no es así, entonces el procesamiento fluye a la etapa S69. Ahí, el valor Ic actual, para el intervalo interno entre las peticiones de operación de la unidad 21 divisora, se resta del umbral antiguo Thn, la diferencia se cambia a la derecha por un valor constante, por ejemplo, tres lugares (x=3) , esencialmente como si se dividiera por la potencia correspondiente de 2. Este resultado se resta del valor de umbral antiguo Thn, para producir un nuevo umbral Thn+?. Como se discute en lo anterior, un ejemplo de esta fórmula para ajustar el umbral puede ser como sigue: (1) Puesto que un retardo interno Ic muy grande podría provocar grandes cambios en el umbral, a diferencia (?) ente el umbral y retardo interno puede saturarse en un valor máximo (por ejemplo, el umbral previo Thn) de manera que ninguna lectura sencilla podría afectar indebidamente el umbral. De este modo, por ejemplo, el nuevo umbral podría mantenerse siempre dentro del margen de: Thn =77zp+1 = Thn H —4 , como se representa por las etapas S70 y S71 limitantes, La etapa S66 compara el nuevo umbral dos veces con el umbral antiguo. Si el nuevo umbral calculado en la etapa S64 es mayor que dos veces el umbral antiguo, el procesamiento fluye a la etapa S64 para establecer el nuevo umbral dos veces el umbral antiguo. Si el nuevo umbral calculado en la etapa S65 es menor que o igual a (no mayor a) dos veces el umbral antiguo, el procesamiento fluye a la etapa S67, para comprobar el valor de umbral adaptado contra el valor de umbral mínimo. Si el nuevo valor de umbral calculado Thn+1 puede ser menor que el umbral mínimo Thmin, entonces la etapa S68 sirve para establecer el nuevo umbral en el valor mínimo. Si no es así, entonces el procesamiento sale de la rutina S6 de ajuste con el nuevo umbral establecido en el valor calculado en las etapas S69 a S70. El flujo de procesamiento de la Figura 3 y la rutina de ajuste de la Figura 4 se proporcionan por medio del ejemplo solamente. Aquellos con experiencia en la técnica reconocerán que otras rutinas y/u otros algoritmos pueden utilizarse para implementar las presentes enseñanzas para el ahorro de energía mientras se evita un uso excesivo indebido. Mientras lo anterior ha descrito lo que se considera es el mejor modo y/u otros ejemplos, se entiende que varias modificaciones pueden hacerse en la misma y que el contenido descrito en la presente puede implementarse en varias formas y ejemplos, y que las enseñanzas pueden aplicarse en numerosas aplicaciones, de las cuales algunas sólo se han descrito en la presente. Se pretende por las siguientes reivindicaciones reclamar cualquiera y todas las aplicaciones, modificaciones y variaciones que caigan dentro del alcance verdadero de las presentes enseñanzas.

Claims (20)

NOVEDAD DE LA INVENCIÓN Habiendo descrito la presente invención se considera como novedad y por lo tanto se reclama como propiedad lo descrito en las siguientes reivindicaciones. REIVINDICACIONES
1. Un método para reducir el consumo de energía de un procesador programable caracterizado porque comprende : monitorear el tiempo desde una última petición de una operación de una de una pluralidad de unidades funcionales del procesador programable; monitorear el tiempo desde una última desconexión desde la unidad funcional específica; cuando el tiempo desde la última petición excede un umbral actual, desconectar la unidad funcional específica, para reducir la energía consumida por la unidad funcional específica; reactivar la unidad funcional específica en respuesta a una última petición de operación de la unidad funcional específica; y si en el tiempo de reactivar la unidad funcional específica, el tiempo desde la desconexión es menor que un valor establecido, incrementar el umbral actual en un nuevo umbral más alto.
2. El método de conformidad con la reivindicación 1, caracterizado porque el valor establecido es igual al valor actual del umbral .
3. El método de conformidad con la reivindicación 1, caracterizado porque el nuevo umbral más alto es dos veces el umbral actual .
4. El método de conformidad con la reivindicación 1, caracterizado además porque comprende ajustar el umbral actual para optimizar la reducción de energía basándose en el tiempo desde la última petición de operación de la unidad funcional específica, al desconectar la unidad funcional específica.
5. El método de conformidad con la reivindicación 4, caracterizado porque el ajuste del umbral actual para optimizar la reducción de energía comprende calcular un valor de umbral ajustado al realizar las etapas que comprende : restar el tiempo desde la última petición del umbral actual para obtener una diferencia; cambiar la diferencia por una o más posiciones de bits; y restar la diferencia cambiada del umbral actual para obtener el valor de umbral ajustado.
6. El método de conformidad con la reivindicación 5, caracterizado porque el cálculo del valor de umbral ajustado además comprende saturar la diferencia de no más del umbral actual y limitar el valor de umbral ajustado a no menos que un valor de umbral mínimo establecido.
7. El método de conformidad con la reivindicación 1, caracterizado porque la unidad funcional comprende un elemento de lógica para la ejecución de una función aritmética .
8. El método de conformidad con la reivindicación 7, caracterizado porque la función aritmética comprende una función de multiplicación o de división.
9. Un método para reducir el consumo de energía de un procesador programable caracterizado porque comprende : monitorear las peticiones de una operación de una de una pluralidad de unidades funcionales del procesador programable; desconectar la unidad funcional específica en respuesta a cada detección del tiempo que sigue una última precedente de las peticiones que alcanzan un valor actual de un umbral antes de la subsecuente de las peticiones; activar la unidad funcional específica en respuesta a una petición de operación de la unidad funcional específica que sigue cada desconexión de la unidad funcional específica; monitorear el tiempo entre cada desconexión de la 3 unidad funcional específica y cada activación subsecuente de la unidad funcional específica; y incrementar el umbral en un nuevo valor actual, en respuesta a cualquier ocurrencia de tiempo entre una desconexión de la unidad funcional específica y una activación subsecuente de la unidad funcional específica que es menor que un período establecido.
10. El método de conformidad con la reivindicación 9, caracterizado porque el período establecido es igual al valor actual del umbral.
11. Un control de energía para un procesador programable que comprende una pluralidad de unidades funcionales, el control de energía caracterizado porque comprende : circuitería acoplada a una de las unidades funcionales, para activar y desactivar selectivamente la unidad funcional específica; medios para monitorear el tiempo desde una última petición previa de operación de la unidad funcional específica y el tiempo desde una última desconexión previa de la unidad funcional específica; medios para controlar la circuitería, para desconectar la unidad funcional específica con cada ocurrencia de tiempo desde la última petición de operación de la unidad funcional específica que excede un valor actual de un umbral y para incrementar el umbral sobre su valor actual si una petición de la unidad funcional específica ocurre en un tiempo desde la última desconexión previa de menos de un valor establecido.
12. El control de energía de conformidad con la reivindicación 11, caracterizado porque el valor establecido es igual al valor actual del umbral.
13. El control de energía de conformidad con la reivindicación 11, caracterizado porque el incremento del umbral comprende establecer un nuevo valor de umbral igual al doble del valor actual del umbral .
14. El control de energía de conformidad con la reivindicación 12, caracterizado además porque comprende medios para ajustar el umbral como una función de tiempo desde la última petición de la unidad funcional específica con cada desconexión de la unidad funcional específica.
15. Un procesador programable, caracterizado porque comprende : una pluralidad de unidades funcionales para procesar datos de acuerdo con instrucciones; circuitería acoplada a una de las unidades funcionales, para activar y desactivar selectivamente la unidad funcional específica; un controlador de energía, para monitorear las peticiones de operación de la unidad funcional específica durante el procesamiento de instrucciones y controlar la circuitería para desconectar la unidad funcional específica con cada paso de un intervalo de tiempo desde una última específica previa de las peticiones que es igual a un umbral ajustable y para reactivar la unidad funcional específica en respuesta a cada nueva petición de operación de la unidad funcional específica después de una desconexión; y medios para ajustar el umbral.
16. El procesador programable de conformidad con la reivindicación 15, caracterizado porque los medios controlan un incremento del umbral como una función de tiempo entre una desconexión de la unidad funcional específica y una petición subsecuente de la operación de la unidad funcional específica.
17. El procesador programable de conformidad con la reivindicación 15, caracterizado porque los medios controlan una disminución de umbral como una función de tiempo desde la última petición de la operación de la unidad funcional específica en respuesta a una petición subsecuente de operación de la unidad funcional específica.
18. El procesador programable de conformidad con la reivindicación 15, caracterizado porque: los medios incrementan el umbral si el tiempo entre una desconexión de la unidad funcional específica y una petición subsecuente de la operación de la unidad funcional específica es menor que un valor establecido; de otra forma los medios para ajustar ajustan el umbral como una función del tiempo desde la última petición de la operación de la unidad funcional específica.
19. El procesador de conformidad con la reivindicación 15, caracterizado porque las unidades funcionales forman una pluralidad de fases de procesamiento de un trayecto, las fases incluyen una fase de ejecución, y la unidad funcional específica comprende un elemento de la fase de ejecución.
20. El procesador de conformidad con la reivindicación 19, caracterizado porque el elemento de la fase de ejecución comprende un divisor o un multiplicador.
MX2007014111A 2005-05-10 2006-05-08 Circuiteria de prediccion de elemento inactivo y logica anti-uso excesivo. MX2007014111A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/126,442 US7386747B2 (en) 2005-05-10 2005-05-10 Method and system for reducing power consumption of a programmable processor
PCT/US2006/017880 WO2006122102A2 (en) 2005-05-10 2006-05-08 Idle-element prediction circuitry and anti-thrashing logic

Publications (1)

Publication Number Publication Date
MX2007014111A true MX2007014111A (es) 2008-02-05

Family

ID=37397229

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2007014111A MX2007014111A (es) 2005-05-10 2006-05-08 Circuiteria de prediccion de elemento inactivo y logica anti-uso excesivo.

Country Status (10)

Country Link
US (1) US7386747B2 (es)
EP (2) EP2930590B1 (es)
JP (1) JP4897796B2 (es)
KR (1) KR100922090B1 (es)
CN (1) CN101288039B (es)
ES (1) ES2547377T3 (es)
IL (1) IL187136A0 (es)
MX (1) MX2007014111A (es)
TW (1) TWI318748B (es)
WO (1) WO2006122102A2 (es)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724979B2 (en) * 2004-11-02 2010-05-25 Broadcom Corporation Video preprocessing temporal and spatial filter
US8266464B2 (en) * 2006-10-24 2012-09-11 Texas Instruments Incorporated Power controller, a method of operating the power controller and a semiconductor memory system employing the same
US7895456B2 (en) * 2006-11-12 2011-02-22 Microsemi Corp. - Analog Mixed Signal Group Ltd Reduced guard band for power over Ethernet
US7685409B2 (en) 2007-02-21 2010-03-23 Qualcomm Incorporated On-demand multi-thread multimedia processor
US7865753B2 (en) * 2007-03-28 2011-01-04 Intel Corporation Resource power controller to return a resource to an up state based on an estimate of a size of a gap in data traffic
US20080307240A1 (en) * 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
JP2008312048A (ja) * 2007-06-15 2008-12-25 Ripplex Inc 情報端末の認証方法
US7903493B2 (en) * 2008-04-25 2011-03-08 International Business Machines Corporation Design structure for estimating and/or predicting power cycle length, method of estimating and/or predicting power cycle length and circuit thereof
KR100936765B1 (ko) 2008-06-02 2010-01-15 엘지전자 주식회사 동적 전력관리 프로세서의 소음저감장치 및 방법
US8607075B2 (en) * 2008-12-31 2013-12-10 Intel Corporation Idle duration reporting for power management
US8190939B2 (en) * 2009-06-26 2012-05-29 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs
US8219834B2 (en) * 2009-08-12 2012-07-10 International Business Machines Corporation Predictive power gating with optional guard mechanism
US8219833B2 (en) * 2009-08-12 2012-07-10 International Business Machines Corporation Two-level guarded predictive power gating
US8504855B2 (en) 2010-01-11 2013-08-06 Qualcomm Incorporated Domain specific language, compiler and JIT for dynamic power management
US9235251B2 (en) * 2010-01-11 2016-01-12 Qualcomm Incorporated Dynamic low power mode implementation for computing devices
US8527994B2 (en) 2011-02-10 2013-09-03 International Business Machines Corporation Guarded, multi-metric resource control for safe and efficient microprocessor management
KR101770736B1 (ko) 2011-03-17 2017-09-06 삼성전자주식회사 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
US20150234449A1 (en) * 2014-02-14 2015-08-20 Qualcomm Incorporated Fast power gating of vector processors
US10042416B2 (en) * 2015-07-20 2018-08-07 Sandisk Technologies Llc Memory system and method for adaptive auto-sleep and background operations
US10102131B2 (en) * 2015-09-30 2018-10-16 Apple Inc. Proactive power management for data storage devices to reduce access latency
US20170139716A1 (en) * 2015-11-18 2017-05-18 Arm Limited Handling stalling event for multiple thread pipeline, and triggering action based on information access delay
US10635335B2 (en) 2017-03-21 2020-04-28 Western Digital Technologies, Inc. Storage system and method for efficient pipeline gap utilization for background operations
US11269764B2 (en) 2017-03-21 2022-03-08 Western Digital Technologies, Inc. Storage system and method for adaptive scheduling of background operations
US11188456B2 (en) 2017-03-21 2021-11-30 Western Digital Technologies Inc. Storage system and method for predictive block allocation for efficient garbage collection
CN106849041B (zh) * 2017-03-27 2018-12-18 上海华力微电子有限公司 一种浪涌电流控制模块及其方法
US10705843B2 (en) 2017-12-21 2020-07-07 International Business Machines Corporation Method and system for detection of thread stall
US11934493B2 (en) * 2021-06-17 2024-03-19 EMC IP Holding Company LLC Anti-piracy protection service-based software license management system to prevent usage of unlicensed software after the trial period

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5775335A (en) * 1980-10-27 1982-05-11 Hitachi Ltd Data processor
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5481733A (en) * 1994-06-15 1996-01-02 Panasonic Technologies, Inc. Method for managing the power distributed to a disk drive in a laptop computer
JP2872057B2 (ja) * 1994-11-24 1999-03-17 日本電気株式会社 無線選択呼出受信機
JPH08272495A (ja) * 1995-03-31 1996-10-18 Mitsubishi Electric Corp 電力制御装置及び電力制御方法
JP3213208B2 (ja) * 1995-06-22 2001-10-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置及びその制御方法
US5781783A (en) * 1996-06-28 1998-07-14 Intel Corporation Method and apparatus for dynamically adjusting the power consumption of a circuit block within an integrated circuit
US6347377B2 (en) * 1998-11-04 2002-02-12 Phoenix Technologies Ltd. Method and apparatus for providing intelligent power management
US6345362B1 (en) * 1999-04-06 2002-02-05 International Business Machines Corporation Managing Vt for reduced power using a status table
GB9925289D0 (en) * 1999-10-27 1999-12-29 Ibm Method and means for adjusting the timing of user-activity-dependent changes of operational state of an apparatus
US6625740B1 (en) * 2000-01-13 2003-09-23 Cirrus Logic, Inc. Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
JP4681096B2 (ja) * 2000-02-28 2011-05-11 パナソニック電工電路株式会社 記憶装置
US6845445B2 (en) 2000-05-12 2005-01-18 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements
US6625737B1 (en) * 2000-09-20 2003-09-23 Mips Technologies Inc. System for prediction and control of power consumption in digital system
JP2003091430A (ja) * 2001-09-18 2003-03-28 Mitsubishi Electric Corp 故障個所解析装置及びその方法
US6965763B2 (en) * 2002-02-11 2005-11-15 Motorola, Inc. Event coordination in an electronic device to reduce current drain
US7093141B2 (en) * 2002-12-18 2006-08-15 International Business Machines Corporation Power aware adaptive polling
US6885974B2 (en) * 2003-01-31 2005-04-26 Microsoft Corporation Dynamic power control apparatus, systems and methods
US20060123422A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation Processor packing in an SMP server to conserve energy

Also Published As

Publication number Publication date
WO2006122102A2 (en) 2006-11-16
JP4897796B2 (ja) 2012-03-14
EP1889140A2 (en) 2008-02-20
WO2006122102A3 (en) 2007-12-21
EP2930590B1 (en) 2017-12-06
CN101288039A (zh) 2008-10-15
US20060259791A1 (en) 2006-11-16
EP2930590A1 (en) 2015-10-14
US7386747B2 (en) 2008-06-10
CN101288039B (zh) 2011-06-08
KR100922090B1 (ko) 2009-10-16
EP1889140B1 (en) 2015-06-17
EP1889140A4 (en) 2011-05-25
KR20080011692A (ko) 2008-02-05
TW200710726A (en) 2007-03-16
IL187136A0 (en) 2008-02-09
ES2547377T3 (es) 2015-10-05
TWI318748B (en) 2009-12-21
JP2008541274A (ja) 2008-11-20

Similar Documents

Publication Publication Date Title
MX2007014111A (es) Circuiteria de prediccion de elemento inactivo y logica anti-uso excesivo.
US5878264A (en) Power sequence controller with wakeup logic for enabling a wakeup interrupt handler procedure
JP3845642B2 (ja) ユニット電力調整機構を備えた集積回路装置
US9703351B2 (en) Method and apparatus for power control
US6996730B2 (en) Adjusting voltage supplied to a processor in response to clock frequency
US7610497B2 (en) Power management system with a bridge logic having analyzers for monitoring data quantity to modify operating clock and voltage of the processor and main memory
JP5312478B2 (ja) データ・プロセッサのパフォーマンス予測
US8020014B2 (en) Method for power reduction and a device having power reduction capabilities
MX2007015555A (es) Microprocesador con seleccion automatica de paralelismo de simd.
US9405344B1 (en) Method and apparatus for activating sleep mode
WO2007024435A2 (en) Dynamic memory sizing for power reduction
EP3332306B1 (en) System and method for cache aware low power mode control in a portable computing device
US20040073826A1 (en) Clock frequency control method and electronic apparatus
US20070180282A1 (en) Power-saving control apparatus and method for a portable computer
CN115826728A (zh) 一种芯片电源管理的方法及装置
KR20090086866A (ko) 멀티-코어 프로세서의 전원제어장치 및 방법
KR20040101344A (ko) 마이크로프로세서, 인스트럭션 시퀀스 발생 방법 및 이를구현한 프로그램 디바이스
CN112988228A (zh) 处理器中断的控制方法及架构
CN117812682A (zh) 降低蓝牙芯片功耗的方法、低功耗蓝牙芯片
Lang Components for Energy-Efficient Operating Systems
JPH07334266A (ja) 情報処理装置およびその制御方法

Legal Events

Date Code Title Description
FG Grant or registration