ES2673343T3 - Sistema y procedimiento para controlar de manera asíncrona e independiente relojes de núcleo en una unidad de procesamiento central multinúcleo - Google Patents

Sistema y procedimiento para controlar de manera asíncrona e independiente relojes de núcleo en una unidad de procesamiento central multinúcleo Download PDF

Info

Publication number
ES2673343T3
ES2673343T3 ES10796224.3T ES10796224T ES2673343T3 ES 2673343 T3 ES2673343 T3 ES 2673343T3 ES 10796224 T ES10796224 T ES 10796224T ES 2673343 T3 ES2673343 T3 ES 2673343T3
Authority
ES
Spain
Prior art keywords
core
dcvs
algorithm
dcvs algorithm
monitor
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES10796224.3T
Other languages
English (en)
Inventor
Bohuslav Rychlik
Ali Iranli
Brian J. Salsbery
Sumit Sur
Steven S. Thomson
Robert A. Glenn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
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
Application granted granted Critical
Publication of ES2673343T3 publication Critical patent/ES2673343T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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
    • 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
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

Un procedimiento para controlar relojes de núcleo en una unidad de procesamiento central multinúcleo (402), comprendiendo el procedimiento: ejecutar un algoritmo 0.º de reloj dinámico y escalado de voltaje, DCVS, (416) en un núcleo 0.º (410) para supervisar un tiempo de inactividad del núcleo 0.º y variar una frecuencia de reloj del núcleo 0.º (410) basándose en el tiempo de inactividad supervisado; y ejecutar un primer algoritmo DCVS (417) en un primer núcleo (412) para supervisar una limitación de memoria de una carga de trabajo del primer núcleo y variar una frecuencia de reloj del primer núcleo (412) basándose en la limitación de memoria supervisada de la carga de trabajo, en el que el algoritmo 0.º DCVS (416) es operable para controlar independientemente la frecuencia de reloj asociada con el núcleo 0.º (410) y el primer algoritmo DCVS (417) es operable para controlar independientemente la frecuencia de reloj asociada con el primer núcleo (412) y en el que el algoritmo 0.º DCVS (416) y el primer algoritmo DCVS (417) son completamente independientes entre sí.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Sistema y procedimiento para controlar de manera asíncrona e independiente relojes de núcleo en una unidad de procesamiento central multinúcleo
DESCRIPCIÓN DE LA TÉCNICA RELACIONADA
[1] Los dispositivos informáticos portátiles (PCD) son omnipresentes. Estos dispositivos pueden incluir teléfonos celulares, asistentes digitales portátiles (PDA), consolas de juegos portátiles, ordenadores de bolsillo y otros dispositivos electrónicos portátiles. Además de la función principal de estos dispositivos, muchos incluyen funciones periféricas. Por ejemplo, un teléfono celular puede incluir la función principal de realizar llamadas telefónicas celulares y las funciones periféricas de una cámara fija, una cámara de vídeo, navegación por sistema de posicionamiento global (GPS), navegación web, enviar y recibir correos electrónicos, enviar y recibir mensajes de texto, capacidades de pulsar para hablar, etc. A medida que aumenta la funcionalidad de dicho dispositivo, también aumenta la potencia de cálculo o procesamiento requerida para soportar tal funcionalidad. Además, a medida que aumenta la potencia de cálculo, existe una mayor necesidad de gestionar eficazmente el procesador, o procesadores, que proporcionan la potencia de cálculo, como por ejemplo se describe en os documentos US 2007/0156370 A1 o S 2008/0028244 A1. El documento US 2007/0156370 A1divulga un procesador que comprende múltiples núcleos lógicos, donde se toman mediciones de temperatura para cada núcleo lógico y, dependiendo de las mediciones de temperatura, se ajustan las frecuencias operativas de los núcleos lógicos. El documento US 2008/0028244 A1divulga un procesador multinúcleo, en el que cada núcleo de procesador incluye un sensor de temperatura que da información de temperatura a un controlador de procesador. Si un núcleo de procesador particular excede una temperatura predeterminada, el núcleo del procesador desactiva el núcleo del procesador para permitir que se enfríe.
[2] Sin embargo, lo que aún se necesita es un procedimiento mejorado para controlar la potencia dentro de una CPU multinúcleo.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[3] En las figuras, los mismos números de referencia se refieren a partes similares a lo largo de las diversas vistas a menos que se indique lo contrario.
La FIG. 1 es una vista en planta frontal de un primer aspecto de un dispositivo informático portátil (PCD) en una posición cerrada;
La FIG. 2 es una vista en planta frontal del primer aspecto de una PCD en una posición abierta;
La FIG. 3 es un diagrama de bloques de un segundo aspecto de un PCD;
La FIG. 4 es un diagrama de bloques de un sistema de procesamiento;
La FIG. 5 es un diagrama de flujo que ilustra un primer aspecto de un procedimiento para controlar de manera asíncrona e independiente relojes de núcleo en un dispositivo multinúcleo; y
La FIG. 6 es un diagrama de flujo que ilustra un segundo aspecto de un procedimiento para controlar de manera asíncrona e independiente relojes de núcleo en un dispositivo multinúcleo.
DESCRIPCIÓN DETALLADA
[4] El término "a modo de ejemplo" se usa en el presente documento en el sentido de "que sirve de ejemplo, caso o ilustración". Cualquier aspecto descrito en el presente documento como "a modo de ejemplo" no debe interpretarse necesariamente como preferido o ventajoso con respecto a otros aspectos.
[5] En esta descripción, el término "aplicación" también puede incluir archivos que tengan contenido ejecutable, tales como: código de objeto, scripts, código de bytes, archivos de lenguaje de marcado y parches. Además, una "aplicación" a la que se hace referencia en el presente documento, también puede incluir archivos que no son de naturaleza ejecutable, como documentos que pueda ser necesario abrir u otros archivos de datos a los que sea necesario acceder.
[6] El término "contenido" también puede incluir archivos que tengan contenido ejecutable, como por ejemplo: código de objeto, scripts, código de bytes, archivos de lenguaje de marcado y parches. Además, el "contenido" al que se hace referencia en el presente documento, también puede incluir archivos que no son de naturaleza ejecutable, como documentos que pueda ser necesario abrir u otros archivos de datos a los que se sea necesario acceder.
5
10
15
20
25
30
35
40
45
50
55
60
65
[7] Tal y como se utiliza en esta descripción, los términos "componente", "base de datos", "módulo", "sistema" y similares pretenden hacer referencia a una entidad relacionada con la informática, ya sea hardware, firmware, una combinación de hardware y software, software, o software en ejecución. Por ejemplo, un componente puede ser, pero no de forma limitativa, un proceso que se ejecuta en un procesador, un procesador, un objeto, un módulo ejecutable, un hilo de ejecución, un programa y/o un ordenador. A modo de ilustración, tanto una aplicación que se ejecuta en un dispositivo informático como el dispositivo informático pueden ser un componente. Uno o más componentes pueden residir dentro de un proceso y/o hilo de ejecución, y un componente puede estar ubicado en un ordenador y/o estar distribuido entre dos o más ordenadores. Además, estos componentes pueden ejecutarse desde diversos medios legibles por ordenador que tengan diversas estructuras de datos almacenadas en los mismos. Los componentes pueden comunicarse mediante procesos locales y/o remotos como de acuerdo con una señal que presenta uno o más paquetes de datos (por ejemplo, datos de un componente que interactúa con otro componente en un sistema local, sistema distribuido, y/o a través de una red, tal como Internet, con otros sistemas mediante la señal).
[8] Haciendo referencia inicialmente a la FIG. 1 y la FIG. 2, se muestra un dispositivo informático portátil a modo de ejemplo (PCD) y en general se designa como 100. Como se muestra, el PCD 100 puede incluir una carcasa 102. La carcasa 102 puede incluir una parte de carcasa superior 104 y una parte de carcasa inferior 106. La FIG. 1 muestra que la parte de carcasa superior 104 puede incluir una pantalla 108. En un aspecto particular, la pantalla 108 puede ser una pantalla táctil. La parte de carcasa superior 104 también puede incluir un dispositivo de entrada de bola de seguimiento 110. Además, como se muestra en la FIG. 1, la parte de carcasa superior 104 puede incluir un botón de encendido 112 y un botón de apagado 114. Como se muestra en la FIG. 1, la parte de carcasa superior 104 de la PCD 100 puede incluir una pluralidad de luces indicadoras 116 y un altavoz 118. Cada luz indicadora 116 puede ser un diodo emisor de luz (LED).
[9] En un aspecto particular, como se ilustra en la FIG. 2, la parte de carcasa superior 104 es móvil con respecto a la parte de carcasa inferior 106. Específicamente, la parte de carcasa superior 104 puede deslizarse con relación a la parte de carcasa inferior 106. Como se muestra en la FIG. 2, la parte de carcasa inferior 106 puede incluir un teclado de múltiples botones 120. En un aspecto particular, el teclado de múltiples botones 120 puede ser un teclado QWERTY estándar. El teclado de múltiples botones 120 puede aparecer cuando la parte de carcasa superior 104 se mueve con relación a la parte de carcasa inferior 106. La FIG. 2 ilustra además que el PCD 100 puede incluir un botón de reinicio 122 en la parte de carcasa inferior 106.
[10] Con referencia a la FIG. 3, se muestra un aspecto a modo de ejemplo no limitativo de un dispositivo informático portátil (PCD) y en general se designa como 320. Como se muestra, el PCD 320 incluye un sistema en chip 322 que incluye una CPU multinúcleo 324. La CPU multinúcleo 324 puede incluir un núcleo 0.° 325, un primer núcleo 326 y un núcleo N-ésimo 327.
[11] Como se ilustra en la FIG. 3, un controlador de visualización 328 y un controlador de pantalla táctil 330 están acoplados a la CPU multinúcleo 324. A su vez, una pantalla de visualización táctil 332 externa al sistema en chip 322 está acoplada al controlador de visualización 328 y al controlador de pantalla táctil 330.
[12] La FIG. 3 indica además que un codificador de vídeo 334, por ejemplo, un codificador de línea de fase alterna (PAL), un codificador secuencial de "couleur a memoire" (SECAm), o un codificador de comité de sistema(s) de televisión nacional (NTSC), está acoplado a la CPU multinúcleo 324. Además, un amplificador de vídeo 336 está acoplado al codificador de vídeo 334 y al visualizador de pantalla táctil 332. Además, un puerto de vídeo 338 está acoplado al amplificador de vídeo 336. Como se ilustra en la FIG. 3, un controlador de bus serie universal (USB) 340 está acoplado a la CPU multinúcleo 324. Además, un puerto USB 342 está acoplado al controlador USB 340. Una memoria 344 y una tarjeta de módulo de identidad de abonado (SIM) 346 también se pueden acoplar a la CPU multinúcleo 324. Además, como se muestra en la FIG. 3, una cámara digital 348 puede acoplarse a la CPU multinúcleo 324. En un aspecto a modo de ejemplo, la cámara digital 348 es una cámara de dispositivo de acoplamiento de carga (CCD) o una cámara de semiconductor de óxido de metal complementario (CMOS).
[13] Como se ilustra además en la FIG. 3, puede acoplarse un CÓDEC de audio estéreo 350 a la CPU multinúcleo 324. Además, un amplificador de audio 352 puede acoplarse al CÓDEC de audio estéreo 350. En un aspecto a modo de ejemplo, un primer altavoz estéreo 354 y un segundo altavoz estéreo 356 están acoplados al amplificador de audio 352. La FIG. 3 muestra que un amplificador de micrófono 358 también puede acoplarse al CÓDEC de audio estéreo 350. Además, un micrófono 360 puede acoplarse al amplificador de micrófono 358. En un aspecto particular, un sintonizador de radio de modulación de frecuencia (FM) 362 puede acoplarse al CÓDEC de audio estéreo 350. Además, una antena de FM 364 está acoplada al sintonizador de radio FM 362. Además, los auriculares estéreo 366 se pueden acoplar al CÓDEC de audio estéreo 350.
[14] La FIG. 3 indica además que un transceptor de radiofrecuencia (RF) 368 puede acoplarse a la CPU multinúcleo 324. Un conmutador de Rf 370 puede acoplarse al transceptor de RF 368 y a una antena de RF 372. Como se muestra en la FIG. 3, un teclado 374 puede acoplarse a la CPU multinúcleo 324. Además, un auricular mono con un micrófono 376 puede acoplarse a la CPU multinúcleo 324. Además, un dispositivo vibrador 378 puede acoplarse a la CPU multinúcleo 324. La FIG. 3 también muestra que una fuente de alimentación 380 puede
5
10
15
20
25
30
35
40
45
50
55
60
65
acoplarse al sistema en chip 322. En un aspecto particular, la fuente de alimentación 380 es una fuente de alimentación de corriente continua (CC) que proporciona alimentación a los diversos componentes de la PCD 320 que requieren potencia. Además, en un aspecto particular, la fuente de alimentación es una batería de CC recargable o una fuente de alimentación de CC que se obtiene de un transformador de corriente alterna (CA) a CC que está conectado a una fuente de alimentación de CA.
[15] La FIG. 3 indica además que la PCD 320 también puede incluir una tarjeta de red 388 que puede usarse para acceder a una red de datos, por ejemplo, una red de área local, una red de área personal o cualquier otra red. La tarjeta de red 388 puede ser una tarjeta de red Bluetooth®, una tarjeta de red WiFi, una tarjeta de red de área personal (PAN), una tarjeta de red de tecnología de muy baja potencia de red de área personal (PeANUT) o cualquier otra tarjeta de red bien conocida en el arte. Además, la tarjeta de red 388 puede incorporarse en un chip, es decir, la tarjeta de red 388 puede ser una solución completa en un chip, y puede no ser una tarjeta de red independiente 388.
[16] Como se ilustra en la FIG. 3, la pantalla táctil 332, el puerto de vídeo 338, el puerto USB 342, la cámara 348, el primer altavoz estéreo 354, el segundo altavoz estéreo 356, el micrófono 360, la antena de FM 364, los auriculares estéreo 366, la RF el conmutador 370, la antena de RF 372, el teclado 374, el auricular mono 376, el vibrador 378 y la fuente de alimentación 380 son externos al sistema en chip 322.
[17] En un aspecto particular, uno o más de los pasos del procedimiento descritos en el presente documento pueden almacenarse en la memoria 344 como instrucciones del programa informático. Estas instrucciones pueden ser ejecutadas por la CPU multinúcleo 324 para realizar los procedimientos descritos en el presente documento. Además, la CPU multinúcleo 324, la memoria 344 o una combinación de las mismas puede servir como un medio para ejecutar una o más de las etapas del procedimiento descritas en el presente documento para controlar un reloj asociado con cada CPU, o núcleo, de la CPU324 multinúcleo.
[18] Con referencia a la FIG. 4, se muestra un sistema de procesamiento y en general se designa como 400. En un aspecto particular, el sistema de procesamiento 400 puede incorporarse en el PCD 320 descrito anteriormente junto con la FIG. 3. Como se muestra, el sistema de procesamiento 400 puede incluir una unidad de procesamiento central (CPU) multinúcleo 402 y una memoria 404 conectada a la CPU multinúcleo 402. La CPU multinúcleo 402 puede incluir un núcleo 0.° 410, un primer núcleo 412 y un núcleo N-ésimo 414. El núcleo 0.° 410 puede incluir un algoritmo 0.° de reloj dinámico y escalado de voltaje (DCVS) 416 que se ejecuta en el mismo. El primer núcleo 412 puede incluir un primer algoritmo DCVS 417 ejecutándose en el mismo. Además, el N-ésimo núcleo 414 puede incluir un N-ésimo algoritmo DCVS 418 ejecutándose en el mismo. En un aspecto particular, cada algoritmo DCVS 416, 417, 418 se puede ejecutar independientemente en un núcleo respectivo 410, 412, 414. Además, cada algoritmo DCVS 416, 417, 418 se puede ejecutar de forma completamente independiente en cada núcleo respectivo 410, 412, 414, núcleos múltiples. Además, hay una instancia de un algoritmo DCVS 416, 417, 418 por núcleo 410, 412, 414 y el algoritmo DCVS 416, 417, 418 puede supervisar y controlar el reloj del núcleo 410, 412, 414 en el que se ejecuta. Cada algoritmo DCVS 416, 417, 418 puede establecer independientemente una frecuencia de reloj diferente para cada núcleo 410, 412, 414.
[19] En un aspecto particular, cada algoritmo DCVS 416, 417, 418 puede ser idéntico y cada uno puede supervisar el mismo parámetro, por ejemplo, tiempo de inactividad, carga de trabajo, etc. En otro aspecto, cada algoritmo DCVS 416, 417, 418 puede ser idéntico, pero cada uno puede supervisar un parámetro diferente. En otro aspecto, cada algoritmo DCVS 416, 417, 418 puede ser diferente, pero cada uno puede supervisar el mismo parámetro. En otro aspecto más, cada algoritmo DCVS 416, 417, 418 puede ser diferente y cada uno puede supervisar un parámetro diferente.
[20] En otro aspecto, el algoritmo 0.° DCVS 416 puede utilizar la información de inactividad del núcleo 0° 410, el primer núcleo 412, el N-ésimo núcleo 414 o cualquier combinación de los mismos. El primer algoritmo de DCVS 417 puede utilizar la información de inactividad del núcleo 0.° 410, el primer núcleo 412, el N-ésimo núcleo 414 o cualquier combinación de los mismos. Además, el N-ésimo algoritmo de DCVS 418 puede utilizar la información de inactividad del núcleo 0.° 410, el primer núcleo 412, el N-ésimo núcleo 414 o cualquier combinación de los mismos.
[21] Además, como se ilustra, la memoria 404 puede incluir un sistema operativo 420 almacenado en el mismo. El sistema operativo 420 puede incluir un programador 422 y el programador 422 puede incluir una primera cola de ejecución 424, una segunda cola de ejecución 426 y una N-ésima cola de ejecución 428. La memoria 404 también puede incluir una primera aplicación 430, una segunda aplicación 432 y una N-ésima aplicación 434 almacenadas en la misma.
[22] En un aspecto particular, las aplicaciones 430, 432, 434 pueden enviar una o más tareas 436 al sistema operativo 420 para ser procesadas en los núcleos 410, 412, 414 dentro de la CPU multinúcleo 402. Las tareas 436 pueden procesarse, o ejecutarse, como tareas únicas, hilos o una combinación de los mismos. Además, el programador 422 puede programar las tareas, los hilos o una combinación de los mismos para su ejecución dentro de la CPU multinúcleo 402. Además, el programador 422 puede colocar las tareas, los hilos, o una combinación de los mismos en las colas de ejecución 424, 426, 428. Los núcleos 410, 412, 414 pueden recuperar las tareas, los
5
10
15
20
25
30
35
40
45
50
55
60
65
hilos, o una combinación de los mismos de las colas de ejecución 424, 426, 428 como se indica, por ejemplo, mediante el sistema operativo 420 para el procesamiento o ejecución de esas tareas e hilos en los núcleos 410, 412, 414.
[23] La FIG. 4 también muestra que la memoria 404 puede incluir un monitor de paralelismo 440 almacenado en la misma. El monitor de paralelismo 440 puede estar conectado al sistema operativo 420 y a la CPU multinúcleo 402. Específicamente, el monitor de paralelismo 440 puede estar conectado al programador 422 dentro del sistema operativo 420. Como se describe en el presente documento, el monitor de paralelismo 440 puede supervisar la carga de trabajo en los núcleos 410, 412, 414 y el monitor de paralelismo 440 puede controlar la potencia de los núcleos 410, 412, 414.
[24] Con referencia a la FIG. 5, se muestra un primer aspecto de un procedimiento de control asíncrono e independiente de relojes de núcleo en un dispositivo multinúcleo y en general se designa como 500. El procedimiento 500 puede comenzar en el bloque 502 con un bucle Do en el que cuando se enciende el dispositivo, se pueden realizar los siguientes pasos.
[25] En el bloque 510, se puede ejecutar un algoritmo 0.° DCVS en un núcleo 0.°. A continuación, en el bloque 512, se puede supervisar un reloj 0.° asociado con el núcleo 0.°. Además, en el bloque 514, se puede supervisar un tiempo de inactividad asociado con el núcleo 0.°. En el bloque 516, la frecuencia de reloj del reloj 0.° asociado con el núcleo 0.° puede variarse basándose en el tiempo de inactividad del núcleo 0.°. Además, en el bloque 518, el voltaje del núcleo 0.° puede variarse basándose en el tiempo de inactividad del núcleo 0.°.
[26] Al pasar a la decisión 519, el controlador de energía puede determinar si el dispositivo está apagado. Si el dispositivo está apagado, el procedimiento puede finalizar. De lo contrario, si el dispositivo permanece encendido, el procedimiento 500 puede regresar a una ubicación justo después de la ejecución de la etapa 502 y el procedimiento 500 puede continuar como se describe.
[27] Continuando con la descripción del procedimiento 500, en el bloque 520, se puede ejecutar un primer algoritmo DCVS en un primer núcleo. A continuación, en el bloque 522, se puede supervisar un primer reloj asociado con el primer núcleo. Además, en el bloque 524, se puede supervisar un tiempo de inactividad asociado con el primer núcleo. En el bloque 526, la frecuencia de reloj del primer reloj asociado con el primer núcleo se puede variar basándose en el tiempo de inactividad del primer núcleo. Además, en el bloque 528, el voltaje del primer núcleo puede variarse basándose en el tiempo de inactividad del primer núcleo. Después de eso, el procedimiento 500 puede continuar hasta la decisión 519 y continuar como se describe en el presente documento.
[28] En el bloque 530, se puede ejecutar un N-ésimo algoritmo DCVS en un N-ésimo núcleo. A continuación, en el bloque 532, se puede supervisar un N-ésimo reloj asociado con el N-ésimo núcleo. Además, en el bloque 534, se puede supervisar un tiempo de inactividad asociado con el N-ésimo núcleo. En el bloque 536, la frecuencia de reloj del N-ésimo reloj asociado con el N-ésimo núcleo puede variarse basándose en el tiempo de inactividad del N-ésimo núcleo. Además, en el bloque 538, el voltaje del primer núcleo puede variarse basándose en el tiempo de inactividad del primer núcleo. Después de eso, el procedimiento 500 puede continuar hasta la decisión 519 y continuar como se describe en el presente documento.
[29] Puede apreciarse que las etapas 510 a 518, las etapas 520 a 528, y las etapas 530 a 538 se pueden ejecutar en paralelo. Como tal, se puede proporcionar control de reloj asíncrono independiente para un reloj asociado con cada núcleo.
[30] Con referencia a la FIG. 6, se muestra un segundo aspecto de un procedimiento de control asíncrono e independiente de relojes de núcleo en un dispositivo multinúcleo y en general se designa como 600. El procedimiento 600 puede comenzar en el bloque 602 con un bucle Do en el que cuando se enciende el dispositivo, se pueden realizar los siguientes pasos.
[31] En el bloque 610, se puede ejecutar un algoritmo 0.° DCVS en un núcleo 0.°. A continuación, en el bloque 612, se puede supervisar un reloj 0.° asociado con el núcleo 0.°. Además, en el bloque 614, se puede supervisar una carga de trabajo asociada con el núcleo 0.°. En el bloque 616, la frecuencia de reloj del reloj 0.° asociado con el núcleo 0.° puede variarse basándose en la carga de trabajo del núcleo 0.°. Además, en el bloque 618, el voltaje del núcleo 0.° puede variarse basándose en la carga de trabajo del núcleo 0.°.
[32] Al pasar a la decisión 619, el controlador de energía puede determinar si el dispositivo está apagado. Si el dispositivo está apagado, el procedimiento puede finalizar. De lo contrario, si el dispositivo permanece encendido, el procedimiento 600 puede regresar a una ubicación justo después de la ejecución de la etapa 602 y el procedimiento 600 puede continuar como se describe.
[33] Continuando con la descripción del procedimiento 600, en el bloque 620, se puede ejecutar un primer algoritmo DCVS en un primer núcleo. A continuación, en el bloque 622, se puede supervisar un primer reloj asociado con el primer núcleo. Además, en el bloque 624, se puede supervisar una carga de trabajo asociada con el primer
5
10
15
20
25
30
35
40
45
50
55
60
65
núcleo. En el bloque 626, la frecuencia de reloj del primer reloj asociado con el primer núcleo se puede variar basándose en la carga de trabajo del primer núcleo. Además, en el bloque 628, el voltaje del primer núcleo puede variarse basándose en la carga de trabajo del primer núcleo. Después de eso, el procedimiento 600 puede continuar hasta la decisión 619 y continuar como se describe en el presente documento.
[34] En el bloque 630, se puede ejecutar un N-ésimo algoritmo DCVS en un N-ésimo núcleo. A continuación, en el bloque 632, se puede supervisar un N-ésimo reloj asociado con el N-ésimo núcleo. Además, en el bloque 634, se puede supervisar una carga de trabajo asociada con el N-ésimo núcleo. En el bloque 636, la frecuencia de reloj del N-ésimo reloj asociado con el N-ésimo núcleo puede variarse basándose en la carga de trabajo del N-ésimo núcleo. Además, en el bloque 638, el voltaje del primer núcleo puede variarse basándose en la carga de trabajo del primer núcleo. Después de eso, el procedimiento 600 puede continuar hasta la decisión 619 y continuar como se describe en el presente documento.
[35] Puede apreciarse que los pasos 610 a 618, los pasos 620 a 628, y los pasos 630 a 638 se pueden ejecutar en paralelo. Como tal, se puede proporcionar control de reloj asíncrono independiente para un reloj asociado con cada núcleo.
[36] Debe entenderse que no es necesario realizar los pasos del procedimiento descritos en el presente documento en el orden descrito. Además, las palabras como "a partir de entonces", "a continuación", "siguiente", etc. no tienen la intención de limitar el orden de los pasos. Estas palabras simplemente se usan para guiar al lector a través de la descripción de los pasos del procedimiento. Además, los procedimientos descritos en el presente documento se describen como ejecutables en un dispositivo informático portátil (PCD). El PCD puede ser un dispositivo de teléfono móvil, un dispositivo de asistente digital portátil, un dispositivo informático tipo Smartbook, un dispositivo informático tipo netbook, un dispositivo informático portátil, un dispositivo informático de escritorio o una combinación de los mismos.
[37] El sistema y los procedimientos divulgados en el presente documento proporcionan algoritmos DCVS (también conocidos como DVFS) completamente independientes que se pueden ejecutar de forma completamente independiente en los múltiples núcleos. Hay una instancia de un algoritmo DCVS por núcleo, y cada uno supervisa y controla el reloj de ese núcleo solamente. Los múltiples algoritmos pueden establecer independientemente diferentes frecuencias de reloj para los múltiples núcleos.
[38] En un aspecto particular, cada instancia de algoritmo DCVS puede supervisar el porcentaje de tiempo de inactividad gastado en cada núcleo. El tiempo de inactividad del núcleo puede obtenerse desde el sistema operativo o a través de contadores de hardware externos especiales, como un perfil de sistema y un monitor de diagnóstico (SPDM). En otro aspecto, cada algoritmo DCVS puede supervisar una característica de la carga de trabajo tal como la acotación de la memoria de la tarea y ajustar independientemente la frecuencia basándose en las diferentes características de la tarea que se ejecutan en cada núcleo.
[39] En uno o más aspectos a modo de ejemplo, las funciones descritas pueden implementarse en hardware, software, firmware o en cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse o transmitirse como una o más instrucciones o código en un producto de programa informático como un medio legible por máquina, es decir, un medio legible por ordenador. Los medios legibles por ordenador incluyen tanto medios de almacenamiento informáticos como medios de comunicación, incluyendo cualquier medio que facilite la transferencia de un programa informático de un lugar a otro. Un medio de almacenamiento puede ser cualquier medio disponible al que pueda accederse mediante un ordenador. A modo de ejemplo, y no de limitación, dichos medios legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otros dispositivos de almacenamiento de disco óptico, de almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético o cualquier otro medio que pueda usarse para transportar o almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe adecuadamente la denominación de medio legible por ordenador. Por ejemplo, si el software se transmite desde una página de la Red, un servidor u otra fuente remota, usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas, tales como infrarrojos, radio y microondas, se incluyen en la definición de medio. Los discos, tal como se utiliza en el presente documento, incluyen un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente reproducen los datos magnéticamente, mientras que otros discos reproducen los datos ópticamente con láseres. Las combinaciones de lo anterior deberían incluirse también dentro del alcance de los medios legibles por ordenador.
[40] Aunque se han ilustrado y descrito en detalle aspectos seleccionados, se entenderá que pueden realizarse diversas sustituciones y alteraciones en el mismo sin apartarse del alcance de la presente invención, tal como se define en las siguientes reivindicaciones.
[41] A continuación se describen ejemplos adicionales de la invención para facilitar el entendimiento.
5
10
15
20
25
30
35
40
45
50
55
60
65
[42] En un ejemplo adicional, se describe un procedimiento para controlar relojes de núcleo en una unidad de procesamiento central multinúcleo, comprendiendo el procedimiento ejecutar un algoritmo 0.° de reloj dinámico y escalado de voltaje (DCVS) en un núcleo 0.° y ejecutar un primer algoritmo DCVS en un primer núcleo. en el que el algoritmo 0.° DCVS es operable para controlar independientemente una frecuencia de reloj 0.° asociada con el núcleo 0.° y el primer algoritmo DCVS es operable para controlar independientemente una primera frecuencia de reloj asociada con el primer núcleo. De este modo, el algoritmo 0.° DCVS puede ser idéntico al primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar el mismo parámetro en el núcleo 0.° y el primer núcleo. Además, el algoritmo 0.° DCVS puede ser diferente del primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar el mismo parámetro en el núcleo 0.° y en el primer núcleo. Además, el algoritmo 0.° DCVS puede ser idéntico al primer algoritmo DCVS y el algoritmo 0.° DCVs y el primer algoritmo DCVS pueden supervisar un parámetro diferente en el núcleo 0.° y el primer núcleo. El algoritmo 0.° DCVS puede ser diferente del primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar un mismo parámetro diferente en el núcleo 0.° y el primer núcleo. El procedimiento también puede comprender supervisar independientemente un reloj 0.° asociado con el núcleo 0.° y supervisar independientemente un primer reloj asociado con el primer núcleo. Además, el procedimiento puede comprender supervisar independientemente un tiempo de inactividad del núcleo 0.° y supervisar independientemente un tiempo de inactividad del primer núcleo. El procedimiento también puede comprender variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del núcleo 0.° basándose en el tiempo de inactividad del núcleo 0.° y variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del primer núcleo basándose en el tiempo de inactividad del primer núcleo. Además, el procedimiento puede comprender supervisar independientemente una carga de trabajo del núcleo 0.° y supervisar independientemente una carga de trabajo del primer núcleo. El procedimiento también puede comprender variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del núcleo 0.° basándose en la carga de trabajo del núcleo 0.° y variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del primer núcleo basándose en la carga de trabajo del primer núcleo.
[43] En otro ejemplo, se describe un dispositivo inalámbrico, comprendiendo el dispositivo inalámbrico medios para ejecutar un algoritmo 0.° de reloj dinámico y escalado de voltaje (DCVS) en un núcleo 0.° y medios para ejecutar un primer algoritmo DCVS en un primer núcleo, en el que el algoritmo 0.° DCVS es operable para controlar independientemente una frecuencia de reloj 0.° asociada con el núcleo 0.° y el primer algoritmo DCVS es operable para controlar independientemente una primera frecuencia de reloj asociada con el primer núcleo. De este modo, el algoritmo 0.° DCVS puede ser idéntico al primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar el mismo parámetro en el núcleo 0.° y el primer núcleo. Además, el algoritmo 0.° DCVS puede ser diferente del primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar el mismo parámetro en el núcleo 0.° y en el primer núcleo. Además, el algoritmo 0.° DCVS puede ser idéntico al primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar un parámetro diferente en el núcleo 0.° y el primer núcleo. Además, el algoritmo 0.° DCVS puede ser diferente del primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar un mismo parámetro diferente en el núcleo 0.° y el primer núcleo. El dispositivo inalámbrico puede comprender además medios para supervisar independientemente un reloj 0.° asociado con el núcleo 0.° y medios para supervisar independientemente un primer reloj asociado con el primer núcleo. Además, el dispositivo inalámbrico puede comprender medios para supervisar independientemente un tiempo de inactividad del núcleo 0.° y medios para supervisar independientemente un tiempo de inactividad del primer núcleo. El dispositivo inalámbrico también puede comprender medios para variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del núcleo 0.° basándose en el tiempo de inactividad del núcleo 0.° y medios para variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del primer núcleo basándose en el tiempo de inactividad del primer núcleo. Además, el dispositivo inalámbrico puede comprender medios para supervisar independientemente una carga de trabajo del núcleo 0.° y medios para supervisar independientemente una carga de trabajo del primer núcleo. Además, el dispositivo inalámbrico puede comprender medios para variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del núcleo 0.° basándose en la carga de trabajo del núcleo 0.°, medios para variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del primer núcleo basándose en la carga de trabajo del primer núcleo.
[44] En otro ejemplo más, se describe un dispositivo inalámbrico, comprendiendo el dispositivo inalámbrico un procesador, en el que el procesador es operable para ejecutar un algoritmo 0.° de reloj dinámico y escalado de voltaje (DCVS) en un núcleo 0.° y ejecutar un primer algoritmo DCVS en un primer núcleo, en el que el algoritmo 0.° DCVS es operable para controlar independientemente una frecuencia de reloj 0.° asociada con el núcleo 0.° y el primer algoritmo DCVS es operable para controlar independientemente una primera frecuencia de reloj asociada con el primer núcleo. De este modo, el algoritmo 0.° DCVS puede ser idéntico al primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar el mismo parámetro en el núcleo 0.° y el primer núcleo. Además, el algoritmo 0.° DCVS puede ser diferente del primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar el mismo parámetro en el núcleo 0.° y en el primer núcleo. Además, el algoritmo 0.° DCVS puede ser idéntico al primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar un parámetro diferente en el núcleo 0.° y el primer núcleo. Además, el algoritmo 0.° DCVS puede ser diferente del primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar un mismo parámetro diferente en el núcleo 0.° y en el primer núcleo. Además, el procesador puede ser operable para
5
10
15
20
25
30
35
40
supervisar independientemente un reloj 0.° asociado con el núcleo 0.° y supervisar independientemente un primer reloj asociado con el primer núcleo. Además, el procesador puede ser operable para supervisar independientemente un tiempo de inactividad del núcleo 0.° y supervisar independientemente un tiempo de inactividad del primer núcleo. Además, el procesador puede ser operable para variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del núcleo 0.° basándose en el tiempo de inactividad del núcleo 0.° y variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del primer núcleo basándose en el tiempo de inactividad del primer núcleo. Además, el procesador puede ser operable para supervisar independientemente una carga de trabajo del núcleo 0.° y supervisar independientemente una carga de trabajo del primer núcleo. Además, el procesador puede ser operable además para variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del núcleo 0.° basándose en la carga de trabajo del núcleo 0.° y variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del primer núcleo basándose en la carga de trabajo del primer núcleo.
[45] En otro ejemplo más, se describe un medio de memoria, comprendiendo el medio de memoria al menos una instrucción para ejecutar un algoritmo 0.° de reloj dinámico y escala de voltaje (DCVS) en un núcleo 0.° y al menos una instrucción para ejecutar un primer algoritmo DCVS en un primer núcleo, en el que el algoritmo 0.° DCVS es operable para controlar independientemente una frecuencia de reloj 0.° asociada con el núcleo 0.° y el primer algoritmo DCVS es operable para controlar independientemente una primera frecuencia de reloj asociada con el primer núcleo. Además, el algoritmo 0.° DCVS puede ser idéntico al primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar el mismo parámetro en el núcleo 0.° y en el primer núcleo. Además, el algoritmo 0.° DCVS puede ser diferente del primer algoritmo DCVS y el algoritmo 0.° DCVs y el primer algoritmo DCVS pueden supervisar el mismo parámetro en el núcleo 0.° y en el primer núcleo. Además, el algoritmo 0.° DCVS puede ser idéntico al primer algoritmo DCVS y el algoritmo 0.° DCVS y el primer algoritmo DCVS pueden supervisar un parámetro diferente en el núcleo 0.° y el primer núcleo. Además, el algoritmo 0.° DCVS puede ser diferente del primer algoritmo DCVS y el algoritmo 0.° DCVs y el primer algoritmo DCVS pueden supervisar un mismo parámetro diferente en el núcleo 0.° y en el primer núcleo. Además, el medio de memoria puede comprender al menos una instrucción para supervisar independientemente un reloj 0.° asociado con el núcleo 0.° y al menos una instrucción para supervisar independientemente un primer reloj asociado con el primer núcleo. Además, el medio de memoria puede comprender al menos una instrucción para supervisar independientemente un tiempo de inactividad del núcleo 0.° y al menos una instrucción para supervisar independientemente un tiempo de inactividad del primer núcleo. Además, el medio de memoria puede comprender además al menos una instrucción para variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del núcleo 0.° basándose en el tiempo de inactividad del núcleo 0.° y al menos una instrucción para variar independientemente una frecuencia de reloj, un voltaje, o una combinación de los mismos del primer núcleo basándose en el tiempo de inactividad del primer núcleo. Además, el medio de memoria puede comprender al menos una instrucción para supervisar independientemente una carga de trabajo del núcleo 0.° y al menos una instrucción para supervisar independientemente una carga de trabajo del primer núcleo. Además, el medio de memoria puede comprender al menos una instrucción para variar independientemente una frecuencia de reloj, un voltaje o una combinación de los mismos del núcleo 0.° basándose en la carga de trabajo del núcleo 0.°, al menos una instrucción para variar independientemente una frecuencia de reloj, un voltaje, o una combinación de los mismos del primer núcleo basándose en la carga de trabajo del primer núcleo.

Claims (1)

  1. 5
    10
    15
    20
    25
    30
    REIVINDICACIONES
    Un procedimiento para controlar relojes de núcleo en una unidad de procesamiento central multinúcleo (402), comprendiendo el procedimiento:
    ejecutar un algoritmo 0.° de reloj dinámico y escalado de voltaje, DCVS, (416) en un núcleo 0.° (410) para supervisar un tiempo de inactividad del núcleo 0.° y variar una frecuencia de reloj del núcleo 0.° (410) basándose en el tiempo de inactividad supervisado; y
    ejecutar un primer algoritmo DCVS (417) en un primer núcleo (412) para supervisar una limitación de memoria de una carga de trabajo del primer núcleo y variar una frecuencia de reloj del primer núcleo (412) basándose en la limitación de memoria supervisada de la carga de trabajo, en el que el algoritmo 0.° DCVS (416) es operable para controlar independientemente la frecuencia de reloj asociada con el núcleo 0.° (410) y el primer algoritmo DCVS (417) es operable para controlar independientemente la frecuencia de reloj asociada con el primer núcleo (412) y en el que el algoritmo 0.° DCVs (416) y el primer algoritmo DCVS (417) son completamente independientes entre sí.
    Un dispositivo inalámbrico, que comprende:
    medios para ejecutar un algoritmo 0.° de reloj dinámico y escalado de voltaje, DCVS, (416) en un núcleo 0.° (410) para supervisar un tiempo de inactividad del núcleo 0.° y variar una frecuencia de reloj del núcleo 0.° (410) basándose en el tiempo de inactividad supervisado; y
    medios para ejecutar un primer algoritmo DCVS (417) en un primer núcleo (412) para supervisar una limitación de memoria de una carga de trabajo del primer núcleo y variar una frecuencia de reloj del primer núcleo (412) basándose en la limitación de memoria supervisada de la carga de trabajo, en el que el algoritmo 0.° DCVS (416) es operable para controlar independientemente la frecuencia de reloj asociada con el núcleo 0.° (410) y el primer algoritmo DCVS (417) es operable para controlar independientemente la frecuencia de reloj asociada con el primer núcleo (412) y en el que el algoritmo 0.° DCVS (416) y el primer algoritmo DCVs (417) son completamente independientes entre sí.
    Un medio de almacenamiento no transitorio que tiene almacenadas en el mismo instrucciones de software ejecutables por procesador configuradas para hacer que un procesador implemente un procedimiento de acuerdo con la reivindicación 1 cuando se ejecute.
ES10796224.3T 2009-12-16 2010-12-08 Sistema y procedimiento para controlar de manera asíncrona e independiente relojes de núcleo en una unidad de procesamiento central multinúcleo Active ES2673343T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US944321 1986-12-19
US28696709P 2009-12-16 2009-12-16
US286967P 2009-12-16
US12/944,321 US8689037B2 (en) 2009-12-16 2010-11-11 System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
PCT/US2010/059535 WO2011084328A1 (en) 2009-12-16 2010-12-08 System and method for asynchronously and independently controlling core clocks in a multicore central processing unit

Publications (1)

Publication Number Publication Date
ES2673343T3 true ES2673343T3 (es) 2018-06-21

Family

ID=44144262

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10796224.3T Active ES2673343T3 (es) 2009-12-16 2010-12-08 Sistema y procedimiento para controlar de manera asíncrona e independiente relojes de núcleo en una unidad de procesamiento central multinúcleo

Country Status (9)

Country Link
US (1) US8689037B2 (es)
EP (1) EP2513750B1 (es)
JP (1) JP2013513896A (es)
KR (2) KR20120105519A (es)
CN (1) CN102687096B (es)
BR (1) BR112012014160B1 (es)
ES (1) ES2673343T3 (es)
HU (1) HUE037224T2 (es)
WO (1) WO2011084328A1 (es)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9128705B2 (en) * 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8775830B2 (en) * 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US9563250B2 (en) 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8650426B2 (en) * 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20130060555A1 (en) * 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
TWI454905B (zh) * 2011-09-30 2014-10-01 Intel Corp 在多核心平台中之受限制的啓動技術
US9117511B2 (en) * 2013-03-08 2015-08-25 Advanced Micro Devices, Inc. Control circuits for asynchronous circuits
US9244747B2 (en) * 2014-03-13 2016-01-26 Qualcomm Incorporated System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
US9619289B2 (en) 2014-09-11 2017-04-11 Dell Products, L.P. Workload optimized server for intelligent algorithm trading platforms
JP6308092B2 (ja) * 2014-10-06 2018-04-11 株式会社デンソー 電子制御装置
KR102278475B1 (ko) * 2014-10-14 2021-07-19 삼성전자주식회사 전자 장치 및 그 제어 방법
US9717051B2 (en) * 2015-02-20 2017-07-25 Qualcomm Innovation Center, Inc. Proactive control of hardware based upon monitored processing
CN106708241A (zh) * 2016-11-24 2017-05-24 捷开通讯(深圳)有限公司 移动终端及提高其在低功耗模式下的性能的方法
US10551901B2 (en) * 2017-07-01 2020-02-04 Microsoft Technology Licensing, Llc Core frequency management using effective utilization for power-efficient performance
DE102020205156A1 (de) 2020-04-23 2021-10-28 Robert Bosch Gesellschaft mit beschränkter Haftung Auswertung von Messdaten für sicherheitskritische Anwendungen
CN115309347B (zh) * 2022-10-10 2023-03-24 苏州浪潮智能科技有限公司 基于ssd主控变频的时间管理方法、装置、设备及介质

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS593651A (ja) 1982-06-30 1984-01-10 Fujitsu Ltd フア−ムウエアによる性能測定システム
JPH0351902A (ja) 1989-07-20 1991-03-06 Tokyo Electric Co Ltd データ処理装置
US5644769A (en) * 1993-06-14 1997-07-01 Matsushita Electric Industrial Co., Ltd. System for optimizing program by virtually executing the instruction prior to actual execution of the program to invalidate unnecessary instructions
JPH086681A (ja) 1994-04-18 1996-01-12 Hitachi Ltd 省電力制御システム
JP2770760B2 (ja) 1995-01-04 1998-07-02 日本電気株式会社 電力分散マルチプロセッサ
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
JP2003526191A (ja) * 1997-08-13 2003-09-02 アプライド マテリアルズ インコーポレイテッド 半導体デバイス用銅エッチング方法
JPH11184554A (ja) * 1997-12-24 1999-07-09 Mitsubishi Electric Corp クロック制御タイプ情報処理装置
US6230183B1 (en) 1998-03-11 2001-05-08 International Business Machines Corporation Method and apparatus for controlling the number of servers in a multisystem cluster
KR100613201B1 (ko) * 2000-08-28 2006-08-18 마이크로코넥트 엘엘씨 씨피유 사용량 측정 방법
TW521177B (en) 2000-08-31 2003-02-21 Primarion Inc Apparatus and system for providing transient suppression power regulation
US6718474B1 (en) 2000-09-21 2004-04-06 Stratus Technologies Bermuda Ltd. Methods and apparatus for clock management based on environmental conditions
JP2002099433A (ja) 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US6829713B2 (en) * 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7017060B2 (en) 2001-03-19 2006-03-21 Intel Corporation Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down
US6901522B2 (en) * 2001-06-07 2005-05-31 Intel Corporation System and method for reducing power consumption in multiprocessor system
US7058824B2 (en) * 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7318164B2 (en) * 2001-12-13 2008-01-08 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
US6978389B2 (en) * 2001-12-20 2005-12-20 Texas Instruments Incorporated Variable clocking in an embedded symmetric multiprocessor system
US7194385B2 (en) 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US7240223B2 (en) * 2003-05-07 2007-07-03 Apple Inc. Method and apparatus for dynamic power management in a processor system
GB2403823B (en) 2003-07-08 2005-09-21 Toshiba Res Europ Ltd Controller for processing apparatus
US7134031B2 (en) * 2003-08-04 2006-11-07 Arm Limited Performance control within a multi-processor system
JP4549652B2 (ja) * 2003-10-27 2010-09-22 パナソニック株式会社 プロセッサシステム
US7107187B1 (en) * 2003-11-12 2006-09-12 Sprint Communications Company L.P. Method for modeling system performance
US7133806B2 (en) * 2004-05-13 2006-11-07 Ittiam Systems (P) Ltd Method and apparatus for measurement of processor-utilization
US7219245B1 (en) * 2004-06-03 2007-05-15 Advanced Micro Devices, Inc. Adaptive CPU clock management
US7401240B2 (en) * 2004-06-03 2008-07-15 International Business Machines Corporation Method for dynamically managing power in microprocessor chips according to present processing demands
KR100716730B1 (ko) * 2004-06-11 2007-05-14 삼성전자주식회사 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치
JP3805344B2 (ja) 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
US7739527B2 (en) * 2004-08-11 2010-06-15 Intel Corporation System and method to enable processor management policy in a multi-processor environment
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
US7437581B2 (en) 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7370189B2 (en) * 2004-09-30 2008-05-06 Intel Corporation Method and apparatus for establishing safe processor operating points in connection with a secure boot
US7543161B2 (en) * 2004-09-30 2009-06-02 International Business Machines Corporation Method and apparatus for tracking variable speed microprocessor performance caused by power management in a logically partitioned data processing system
US7814485B2 (en) * 2004-12-07 2010-10-12 Intel Corporation System and method for adaptive power management based on processor utilization and cache misses
DE102004059996B4 (de) * 2004-12-13 2006-10-05 Infineon Technologies Ag Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors
US7228446B2 (en) * 2004-12-21 2007-06-05 Packet Digital Method and apparatus for on-demand power management
US7369967B1 (en) * 2004-12-27 2008-05-06 Sprint Communications Company L.P. System and method for monitoring and modeling system performance
US7502948B2 (en) * 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US7467291B1 (en) * 2005-02-28 2008-12-16 Sun Microsystems, Inc. System and method for calibrating headroom margin
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
CN101223490A (zh) 2005-07-14 2008-07-16 Nxp股份有限公司 使用历史负载简档来动态调整手持多媒体设备处理器内核的工作频率及可用功率
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US7548859B2 (en) 2005-08-03 2009-06-16 Motorola, Inc. Method and system for assisting users in interacting with multi-modal dialog systems
US7689838B2 (en) * 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
US7233188B1 (en) * 2005-12-22 2007-06-19 Sony Computer Entertainment Inc. Methods and apparatus for reducing power consumption in a processor using clock signal control
US7263457B2 (en) * 2006-01-03 2007-08-28 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
US20070260898A1 (en) * 2006-05-03 2007-11-08 Edward Burton Voltage regulator with suspend mode
US20080005591A1 (en) * 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
US7584369B2 (en) * 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
JP4808108B2 (ja) 2006-08-29 2011-11-02 パナソニック株式会社 プロセッサシステム
WO2008047179A1 (en) 2006-10-20 2008-04-24 Freescale Semiconductor, Inc. Device having redundant core and a method for providing core redundancy
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
JP2008129846A (ja) 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
GB2445167A (en) 2006-12-29 2008-07-02 Advanced Risc Mach Ltd Managing performance of a processor
US7793125B2 (en) * 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US7783906B2 (en) 2007-02-15 2010-08-24 International Business Machines Corporation Maximum power usage setting for computing device
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
JP4739271B2 (ja) 2007-04-19 2011-08-03 株式会社富士通アドバンストエンジニアリング 電源制御装置、仮想サーバ管理システム、電源制御方法および電源制御プログラム
US7865751B2 (en) * 2007-06-18 2011-01-04 Intel Corporation Microarchitecture controller for thin-film thermoelectric cooling
US7902800B2 (en) * 2007-07-13 2011-03-08 Chil Semiconductor Corporation Adaptive power supply and related circuitry
US8356306B2 (en) * 2007-07-31 2013-01-15 Hewlett-Packard Development Company, L.P. Workload management controller using dynamic statistical control
US20090049314A1 (en) * 2007-08-13 2009-02-19 Ali Taha Method and System for Dynamic Voltage and Frequency Scaling (DVFS)
US7945804B2 (en) * 2007-10-17 2011-05-17 International Business Machines Corporation Methods and systems for digitally controlled multi-frequency clocking of multi-core processors
JP5433837B2 (ja) 2007-12-05 2014-03-05 株式会社日立製作所 仮想計算機システム、仮想計算機の制御方法及びプログラム
US20090150696A1 (en) * 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8024590B2 (en) * 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
JP4488072B2 (ja) 2008-01-18 2010-06-23 日本電気株式会社 サーバシステム、及びサーバシステムの電力削減方法
US8245236B2 (en) * 2008-02-27 2012-08-14 International Business Machines Corporation Lock based moving of threads in a shared processor partitioning environment
JP4996519B2 (ja) 2008-03-27 2012-08-08 パナソニック株式会社 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法
US20090271646A1 (en) * 2008-04-24 2009-10-29 Vanish Talwar Power Management Using Clustering In A Multicore System
US8170845B2 (en) * 2008-09-24 2012-05-01 International Business Machines Corporation Method and apparatus for automatic performance modeling with load dependent service times and overheads
US8195962B2 (en) * 2008-11-11 2012-06-05 Globalfoundries Inc. Method and apparatus for regulating power consumption
US8924975B2 (en) * 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
US8650426B2 (en) 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US9563250B2 (en) 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US20110145559A1 (en) 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US8909962B2 (en) 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9104411B2 (en) * 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9176572B2 (en) * 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9128705B2 (en) 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations

Also Published As

Publication number Publication date
BR112012014160B1 (pt) 2021-02-23
BR112012014160A2 (pt) 2016-05-17
HUE037224T2 (hu) 2018-08-28
US20110145624A1 (en) 2011-06-16
WO2011084328A1 (en) 2011-07-14
EP2513750A1 (en) 2012-10-24
JP2013513896A (ja) 2013-04-22
CN102687096B (zh) 2016-04-06
CN102687096A (zh) 2012-09-19
KR20140002087A (ko) 2014-01-07
KR101518163B1 (ko) 2015-05-07
US8689037B2 (en) 2014-04-01
EP2513750B1 (en) 2018-03-28
KR20120105519A (ko) 2012-09-25

Similar Documents

Publication Publication Date Title
ES2673343T3 (es) Sistema y procedimiento para controlar de manera asíncrona e independiente relojes de núcleo en una unidad de procesamiento central multinúcleo
US11841752B2 (en) Controlling average power limits of a processor
KR101409141B1 (ko) 멀티코어 중앙 프로세싱 유닛에서의 복수의 코어들을 온도에 기초하여 동적으로 제어하는 시스템 및 방법
CN106489108B (zh) 控制系统存储器的温度
CN108268095B (zh) 电子设备
KR101872231B1 (ko) 프로세서 온도의 균형적 제어
KR102557976B1 (ko) 전자 장치, 전자 장치의 전원 제어 방법
KR20200139150A (ko) 프로세서의 최적화된 스로틀링을 위한 시스템, 장치 및 방법
US9710043B2 (en) Controlling a guaranteed frequency of a processor
JP2015512545A (ja) タッチ・データの分散前処理及びディスプレイ領域制御のための方法、装置、及びシステム
EP2513751A1 (en) System and method for controlling central processing unit power in a virtualized system
US20160147291A1 (en) Apparatus and Method for Thermal Management In A Multi-Chip Package
KR20170075327A (ko) 전력을 관리하는 전자 장치 및 그 제어 방법
US10289188B2 (en) Processor having concurrent core and fabric exit from a low power state
US10620682B2 (en) System, apparatus and method for processor-external override of hardware performance state control of a processor
US10324519B2 (en) Controlling forced idle state operation in a processor
KR20160064734A (ko) 충전 제어 방법 및 그 방법을 처리하는 전자장치
US10429918B2 (en) Controlling turbo mode frequency operation in a processor
ES2937650T3 (es) Dispositivo terminal y método de tratamiento de la información de posicionamiento aplicado al dispositivo terminal
KR20180069640A (ko) 전자 장치를 충전하는 방법, 전자 장치 및 저장 매체
US20110173463A1 (en) System and method of tuning a dynamic clock and voltage switching algorithm based on workload requests
EP4028914A1 (en) Speculative activation for secure element usage
ES2532747A1 (es) Dispositivo electrónico portátil con fondo interactivo y método para control del mismo