ES2286630T3 - Metodo y logica de contabilidd para determinar la utilizacion de recursos de procesador para cada hilo en un procesador de multihilo o simultaneo (smt). - Google Patents

Metodo y logica de contabilidd para determinar la utilizacion de recursos de procesador para cada hilo en un procesador de multihilo o simultaneo (smt). Download PDF

Info

Publication number
ES2286630T3
ES2286630T3 ES04727310T ES04727310T ES2286630T3 ES 2286630 T3 ES2286630 T3 ES 2286630T3 ES 04727310 T ES04727310 T ES 04727310T ES 04727310 T ES04727310 T ES 04727310T ES 2286630 T3 ES2286630 T3 ES 2286630T3
Authority
ES
Spain
Prior art keywords
processor
thread
cycle
hardware
resources
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.)
Expired - Lifetime
Application number
ES04727310T
Other languages
English (en)
Inventor
William Joseph Armstrong
Michael Stephen Floyd
Larry Scott Leitner
Ronald Nick Kalla
Balaram Sinharoy
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of ES2286630T3 publication Critical patent/ES2286630T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Variable-Direction Aerials And Aerial Arrays (AREA)

Abstract

Un método para contabilizar el tiempo de uso de un procesador que da soporte a la ejecución concurrente de una pluralidad de hilos de hardware y que tiene una pluralidad de recursos usados por dicha pluralidad de hilos de hardware, comprendiendo el método: en cada ciclo de reloj de procesador, determinar el uso relativo de recursos en base a si cada hilo de hardware está o no en un estado particular de ciclo de procesador; y en respuesta a dicha determinación, actualizar una pluralidad de cuentas de uso de recursos de procesador, cada una de ellas asociada a un hilo particular de los hilos de hardware en conformidad con dicho uso relativo de recursos, caracterizado porque dicha actualización se realiza por igual en cada una de dicha pluralidad de dichas cuentas de uso de recursos de procesador en respuesta a la determinación de que ninguno de dicha pluralidad de hilos de hardware se encuentra en dicho estado particular de ciclo.

Description

Método y lógica de contabilidad para determinar la utilización de recursos de procesador para cada hilo en un procesador de multihilo simultáneo (SMT).
Campo técnico
La presente invención se refiere generalmente a los procesadores y sistemas informáticos, y más en particular, a un procesador de multihilo simultáneo (SMT). La presente invención se refiere también al uso del procesador en sistemas de contabilidad.
Descripción de la técnica relacionada
Los procesadores actuales de alta velocidad incluyen la capacidad de la ejecución simultánea de instrucciones, la ejecución especulativa y la carga de instrucciones y el funcionamiento simultáneo de diversos recursos dentro de un procesador. En particular, se ha considerado deseable gestionar la ejecución de uno o varios hilos dentro de un procesador, de manera más de un hilo de ejecución puedan usar el procesador y de tal manera que los recursos puedan ser gestionados de manera más efectiva que cuando son típicamente usados por un hilo único.
Los diseños anteriores de procesadores han tratado el problema de gestionar múltiples hilos mediante un conmutador de estado de hardware pasando de la ejecución de un hilo a la ejecución de otro hilo. Los procesadores de este tipo son conocidos como procesadores multihilo de hardware (HMT), y como tales pueden proporcionar un conmutador de hardware entre la ejecución de un hilo o del otro. Un procesador HMT supera las limitaciones de esperar en un hilo estancado permitiendo que el hardware conmute la ejecución a otro hilo. No se puede realizar la ejecución de ambos hilos simultáneamente, sino asignando tramos de ejecución a cada hilo, cuando el hilo experimenta una condición de estancamiento como en una falta de memoria caché.
Los procesadores multihilo simultáneos (SMT) proporcionan un uso todavía más eficiente de los recursos del procesador, puesto que múltiples hilos pueden usar simultáneamente los recursos del procesador. Se ejecutan de manera concurrente hilos múltiples en un procesador SMT de manera que múltiples unidades de ejecución, tales como unidades de punto flotante, unidades de instrucción de punto fijo, unidades de almacenamiento de carga y otras puedan estar realizando tareas independientes para uno (o más dependiendo de las capacidades de las unidades de ejecución) de múltiples hilos simultáneamente. También se puede asignar los recursos de almacenamiento y de registro en una base por hilo de manera que se evita el conmutador de estado interno completo del SMT.
La contabilización del uso de tiempo de procesador es necesaria para la administración de las ventas de servicios informáticos, así como para la gestión interna no contable cuando, por ejemplo, algunas operaciones del procesador son para actividades de investigación y desarrollo que permiten que el hardware sea capitalizado de manera diferente para fines fiscales que para otros usos. Se puede dividir un servidor y se puede poner a disposición de usuarios múltiples el tiempo de procesador "sobre demanda" o en base a su utilización. Adicionalmente, el tiempo de procesador puede ser utilizado por los propietarios o arrendadores de hardware y ser también subcontratado exteriormente a entidades que paguen por los servicios. Por tanto, es una necesidad en los modelos de arquitectura y software informáticos la contabilización precisa del tiempo de ejecución de procesador. También, el tiempo de uso de procesador, especialmente en base a hilo, es útil para perfilar programas con vistas a su optimización.
En los sistemas de procesamiento de hilo único, la contabilización se hace generalmente de forma directa. Se puede disponer una cuenta de uso de ciclo de procesador o incluso una simple medición de tiempo "del reloj de la pared" para sesiones completas de trabajo, puesto que aunque se ejecuten hilos múltiples dentro de programas múltiples, no se ejecutan simultáneamente, sino secuencialmente. Se mantiene un recuento de tiempos de ciclo hasta que se completa un trabajo y se presenta el total con fines contables. El tiempo medido está directamente correlacionado con la utilización de los recursos de procesador.
En una máquina HMT, la tarea es similar en cuanto a que dentro del hardware del procesador sólo se está ejecutando un hilo cada vez, y se usan contadores múltiples para registrar el uso del tiempo de procesador por cada hilo aunque haciendo funcionar un contador sólo cuando su hilo asociado está activo. Sin embargo, en un procesador SMT, se puede ejecutar simultáneamente dos o más hilos dentro de un único núcleo de procesador y no se determina fácilmente el uso de los recursos por cada hilo por una simple cuenta de ejecución o medición de tiempo.
Es por tanto deseable proporcionar un método y un aparato que pueda contabilizar el uso del tiempo de procesador en un procesador SMT. Además, es deseable proporcionar un método para la contabilización del uso de recursos dentro de una utilización de un procesador SMT entre los hilos que se ejecutan dentro de un procesador de este tipo.
Resumen de la invención
Se logra el objetivo de contabilizar el uso de tiempo de procesador dentro de un procesador de multihilo simultáneo (SMT) mediante un procesador que tiene contadores de utilización de procesador y un método para la contabilización del uso de tiempo de procesador.
El procesador incorpora contadores múltiples de ciclos de uso de procesador, cada uno asociado a cada hilo que se ejecuta dentro de un procesador para proporcionar un recuento correspondiente al uso de recursos de procesador por cada hilo. Se detecta el uso relativo de recursos en base a hilo y se usa para actualizar los contadores de ciclos. Se puede realizar la detección de uso de recursos detectando la presencia de un estado particular de ciclo que indica el procesamiento activo de instrucciones correspondientes a un hilo. El estado del ciclo es detectado por muestreo periódicamente, lo cual puede ser en cada ciclo de reloj, y se incrementan los contadores (o se disminuyen alternativamente) en conformidad con el estado de ciclo detectado. Se escoge el estado de ciclo detectado para que sea indicativo del uso relativo de recursos de procesador por cada hilo.
El estado de ciclo detectado puede ser un despacho de una instrucción para un hilo. Los ciclos para los cuales ningún hilo está en el estado particular de ciclo se pueden cargar por igual a cada hilo, o se puede cargar el ciclo de conformidad con un último estado de despacho para todos los hilos. Alternativamente, los ciclos sin indicación se pueden cargar de conformidad con una prioridad de hilos ordenada, lo cual da una indicación de uso relativo de recursos por hilo. Los ciclos en los cuales un hilo está en el estado particular de ciclo y el otro hilo no lo está, se pueden cargar por entero al hilo que está en el estado particular de ciclo, disponiendo de esta forma que se cargue a hilos activos preferentemente que a los hilos pasivos. También se puede cargar los ciclos de conformidad con unos valores fraccionales indicativos del número de recursos usados en un ciclo dado por cada hilo.
El procesador puede ser capaz de funcionar tanto en modo SMT como en modo de hilo único (ST), y la contabilización puede responder de manera selectiva al modo seleccionado, cargando todos los ciclos a un único hilo que se ejecuta en modo ST.
La publicación de la patente de EEUU 2001/0056456 describe una arquitectura simultánea basada en prioridad que combina la información de prioridad de OS con la heurística de hilo para proporcionar las prioridades dinámicas para la selección de las instrucciones de hilo para su procesamiento.
Lo anterior, así como otros objetivos, características y ventajas de la invención resultarán claras a partir de la siguiente descripción, más concreta, de la realización preferida de la invención, como se ilustra en los dibujos anexos.
Breve descripción de los dibujos
Los elementos novedosos considerados característicos de la invención se establecen en las reivindicaciones anexas. Se entenderá mejor la propia invención, así como un modo de uso preferido, los objetivos adicionales y las ventajas de la misma, haciendo referencia a la siguiente descripción detallada de una realización ilustrativa cuando se lee conjuntamente con los dibujos anexos, en los que números de referencia análogos indican componentes análogos, y:
La Figura 1 es un diagrama de bloques de un sistema de acuerdo con una realización de la invención.
La Figura 2 es un diagrama de bloques de un núcleo procesador de acuerdo con una realización de la invención.
La Figura 3 es un diagrama de bloques de detalles de las unidades funcionales dentro del núcleo 10 de procesador de la Figura 2.
La Figura 4 es un diagrama de flujo que representa un método de acuerdo con una realización de la presente invención.
Descripción de la realización ilustrativa
Haciendo referencia a continuación a las figuras, y en particular con referencia a la Figura 1, se representa un diagrama de bloques de un sistema de acuerdo con una realización de la presente invención. El sistema incluye un grupo de procesadores 5 que puede estar conectado a otros grupos de procesadores por medio de un puente 37 formando un procesador de escala superior. El grupo de procesadores 5 está conectado a una unidad L3 de memoria caché 36 a la memoria local de sistema 38 y a diversos elementos periféricos 34, así como a dos procesadores de servicios 34A y 34B. Los procesadores de servicios proporcionan supervisión de defectos, asistencia para la puesta en marcha y capacidad de ensayo al grupo de procesadores 5 y pueden tener sus propias rutas de interconexión a otros grupos de procesadores así como conectarse a todos los procesadores 30A-D.
Dentro del grupo de procesadores 5 está una pluralidad de procesadores 30A-D, generalmente fabricados en una unidad única y que incluyen una pluralidad de núcleos de procesador 10A y 10B acoplados a una memoria caché L2 32 y a un controlador de memoria 4. Los núcleos 10A y 10B proporcionan la ejecución de instrucciones y el funcionamiento en valores de datos para las funciones de procesamiento de utilidad general. El puente 37, así como otros puentes del sistema, proporcionan comunicación sobre conductores principales anchos con otros grupos de procesadores y el conductor principal 35 proporciona una conexión de los procesadores 30A-D, el puente 37, los periféricos 34, la memoria caché L3 36 y la memoria de sistema local 38. Se puede acoplar otra memoria global de sistema externamente al puente 37 para el acceso simétrico por todos los grupos de procesadores.
Los núcleos 10A y 10B de procesador son procesadores multihilo simultáneos (SMT) capaces de una ejecución concurrente de múltiples hilos. Además, los núcleos 10A y 10B de procesador dan soporte a un modo de funcionamiento de hilo único para una ejecución eficiente de un único hilo cuando las condiciones de ejecución de programa dictan un funcionamiento de hilo único, por ejemplo, cuando se debe completar la ejecución de un programa de alta prioridad en un tiempo conocido, o cuando se conoce que un hilo de un procesador de multihilo está ocioso. El multihilo introduce algunas ineficiencias respecto a la ejecución a tiempo completo de un hilo único, pero por encima de todo existe una ventaja de eficiencia de sistema, puesto que los hilos frecuentemente están ociosos esperando que se completen otras tareas. Por tanto la transición entre el modo de hilo único y de multihilo proporciona una ventaja para adaptarse a una o varias de las condiciones anteriormente descritas, y las realizaciones de la presente invención proporcionan una contabilización del tiempo de procesador de manera consistente con un procesador que proporciona contabilización de tiempo en respuesta a tales transiciones.
Haciendo referencia a continuación a la Figura 2, se representan detalles de un núcleo 10 de procesador que tiene características idénticas a los núcleos de procesador 10A y 10B. Una unidad 23 de interfaz de conductor principal conecta el núcleo 10 de procesador a otros procesadores SMT y periféricos y conecta la memoria Dcaché L1 22 para almacenar los valores de los datos, la memoria Icaché L1 20 para almacenar las instrucciones de programa, el procesador y otros dispositivos. La memoria Icaché L1 20 para almacenar las instrucciones de programa y la unidad de interfaz 21 de memoria caché proporciona la carga de las corrientes de instrucciones conjuntamente con la unidad de captura de instrucción IFU 16, la cual prealcanza las instrucciones y puede incluir capacidades de cargado especulativo y de predicción de derivación. Una unidad de secuencia de instrucciones (ISU) 12 controla la secuencia de instrucciones emitidas a las diversas unidades internas como una unidad de punto fijo (FXU) 14 para ejecutar las operaciones generales y una unidad de punto flotante (FPU) 15 para ejecutar las operaciones de punto flotante. Las tablas de terminación global (GCT) 13 encaminan las instrucciones emitidas por la ISU 12 por medio de etiquetas hasta que la unidad de ejecución concreta señalada por la instrucción indica que las instrucciones han completado su ejecución.
La unidad de punto fijo (FXU) 14 y la unidad de punto flotante (FPU) 15 están acopladas a diversos recursos tales como registros de uso general (GPR) 18A, registros de punto flotante (FPR) 18B, registros de condición (CR) 18C, memorias intermedias de cambio de nombre 18D, registradores de cuenta/registradores de enlace (CTR/LR) 18E y registradores de excepción (XER) 18F. Los GPR 18A y GPR 18B proporcionan el almacenamiento de los valores de los datos para los valores de los datos cargados y almacenados procedentes de la memoria Dcaché L1 22 por la unidad de almacenamiento de carga (LSU) 19. El CR 18C almacena información convencional de derivación y las memorias intermedias de cambio de nombre 18D, (las cuales pueden incluir varias unidades de cambio de nombre asociadas a las diversas unidades internas de ejecución) proporcionan el almacenamiento de los datos operativos y de los resultados para las unidades de ejecución. El XER 18F almacena información de excepción de derivación y de punto fijo y el CTR/LR 18E almacena información del enlace de derivación e información de cuenta para la ejecución de la derivación de programa. El GPR 18A, el FPR 18B, el CR 18C, las memorias intermedias de cambio de nombre 18D, el CTR/LR 18E y el XER 18F son recursos que incluyen algunos registros fijos (en la arquitectura) que almacenan la información durante la ejecución de un programa y deben estar dispuestos como un conjunto fijo para cada hilo que se ejecuta, otros registros sin arquitectura dentro de los recursos anteriores son libres para uso de cambio de nombre. La lógica de control 11 está acoplada a diversas unidades de ejecución y a los recursos dentro del núcleo 10 de procesador, y se usa para proporcionar un control dominante de las unidades de ejecución y de los recursos. Una unidad de interfaz 25 de SCOM/XSCOM proporciona una conexión a los procesadores 34A-B externos de servicios.
Haciendo ahora referencia a la Figura 3, se representan detalles de los bloques funcionales dentro del núcleo 10 de procesador. La ISU 12 indica a la lógica de control 11 cuando se despachan las instrucciones para los hilos particulares que se ejecutan con el núcleo 10 de procesador. La lógica de control 11 actualiza los contadores de semiciclos 42A y 42B selectivamente, dependiendo de si las instrucciones fueron despachadas por la ISU 12 para un hilo asociado a un contador dado (el hilo 0 para el contador de semiciclos 42A y el hilo 1 para el contador de semiciclos 42B) en un ciclo dado, como fue detectado por un circuito 44 de detección de despacho. Las salidas de los contadores de semiciclos 42A y 42B son bloqueadas por unos cerrojos 43A y 43B que están acoplados al contador 47 de ciclos de base de tiempos. En cada octavo ciclo de procesador del contador 47 de base de tiempos, se proporciona las salidas de los cerrojos 43A y 43B para incrementar los contadores de uso por hilo 41A y 41B, proporcionando una actualización de los contadores de uso por hilo 41A y/o 41B cada 8 ciclos de procesador en los que está activo el contador 47 de ciclos de la base de tiempos (lo cual evitará que se carguen a los hilos activos operaciones especiales en las que la base de tiempos está inactiva). El contador de ciclos 47 de la base de tiempos restablece los cerrojos 43A y 43B después del incremento. La acción anteriormente descrita proporciona cuentas a las salidas de los contadores de uso de los hilos 41A y 41B que son fracciones del contador de la base de tiempos para el procesador y pueden ser usadas directamente para calcular el uso relativo de recursos por hilo en un valor de "tiempo de uso".
De acuerdo con realizaciones alternativas de la invención, se puede usar otros estados particulares de ciclo por la lógica de control 11 y la ISU 12 (u otra unidad de ejecución dentro del núcleo 10 de procesador) para disparar una actualización del contador de semiciclos 42A y/o 42B en cada ciclo, pero se escoge la instrucción de disparo en la ilustración a título de ejemplo de la invención, puesto que el despacho de la instrucción proporciona un mecanismo para medir el comienzo de cada actividad de procesamiento que usa el núcleo 10 de procesador, en vez del avance o terminación de tales actividades, los cuales dependen de la eficiencia de código. Por ejemplo, un programa codificado de manera ineficiente puede generar muchas predicciones de derivación incorrectas y las consiguientes precapturas y salidas espontáneas, que usan recursos críticos de procesador mientras se generan pocas terminaciones. Por tanto el uso de terminaciones de instrucción en vez de despachos de instrucción podría generar una medición más baja del tiempo de uso de procesador porque el hilo ejecuta un código ineficiente. Por tanto, el uso del despacho de instrucción como el evento desencadenante concreto para actualizar los contadores de semiciclos 41A y 41B proporciona una estimación del uso de recursos de procesador que no "recompensa" un código ineficiente.
Aunque los modelos de contabilización anteriores hayan sido capaces de asignar esencialmente todo el tiempo de núcleo 10 de procesador a un hilo concreto, debido a la falta de ejecución simultánea de hilos en un procesador dado, en un procesador SMT, la "facturación" del uso de tiempo de procesador en base a hilos debe ser distribuida entre los dos o más hilos que pueden estar ejecutándose simultáneamente dentro del núcleo 10 de procesador. Cuando la ISU 12 no está despachando instrucciones para cualquier hilo que esté usando el núcleo 10 de procesador, todavía es necesario contabilizar el uso del núcleo 10 de procesador por todos los hilos. Puede que los hilos no comiencen un nuevo trabajo en la forma de instrucciones despachadas, sino que estén todavía conectándose al núcleo 10 de procesador o pueden estar activos en fases de la ejecución distintas del despacho de instrucciones. Por ejemplo, un hilo puede estar causando largas secuencias de precaptura y otro hilo puede estar realizando una larga operación de punto flotante. Se está usando los recursos de procesador y las unidades de ejecución enteramente por ambos hilos, aunque sólo un pequeño número de terminaciones de instrucción estaría asociado con los intervalos de procesamiento según el ejemplo anterior. Otro estado concreto de instrucción indica que preferibles a las terminaciones son las capturas, que proporcionarían unas cuentas de uso más desviadas hacia el uso de la IFU 16 y de la memoria L1 Icaché 20, en vez del uso de las unidades de ejecución que incluyen la FXU 14, la FPU 15 y sus recursos asociados.
Por tanto, la realización descrita aquí a título de ejemplo proporciona un mecanismo para contabilizar todos los ciclos de núcleo 10 de procesador en base a una estimación de la unidad de ejecución y al uso de recursos, aun cuando no ocurra despacho en un ciclo dado (o en las realizaciones alternativas, otros estados concretos de ciclo o usos de recursos detectados por la lógica de control 11). En los ciclos en los que no se produce ningún despacho de instrucciones para ningún hilo, el ciclo se contabiliza según una división en partes iguales del valor del ciclo para cada hilo que se ejecuta dentro del núcleo 10 del procesador (incluyendo los hilos ociosos que no hayan sido descargados del núcleo 10 de procesador y que todavía están atando recursos del procesador). Pero, en una realización alternativa o comportamiento que se puede seleccionar de la lógica de control 11, la lógica de control 11 puede recordar el último estado de despacho y puede usarlo en su lugar para actualizar el contador de semiciclos 42A y/o 42B. Otra alternativa es que la lógica de control use las prioridades relativas de los hilos establecidas en el núcleo 10 de procesador para dividir de manera transaccional el valor de ciclo de reloj usado para actualizar el contador de semiciclos 42A y/o 42B. a fin de asignar adecuadamente un ciclo en el cual no se produce despacho alguno para ningún hilo.
De manera similar, cuando se despachan instrucciones en un ciclo dado para más de un hilo, se contabiliza el ciclo por división en partes iguales del valor del ciclo para cada hilo para el cual se haya despachado instrucciones. O, nuevamente, la lógica de control 11 puede usar las prioridades relativas de hilo establecidas en el núcleo 10 de procesador para dividir fraccionalmente el valor de ciclo de reloj usado para actualizar el contador de semiciclos 42A y/o 42B a fin de asignar adecuadamente un ciclo en el cual se producen despachos para todos los hilos.
Por tanto, en la metodología de la división en partes iguales (y no la prioridad o el esquema de ciclo precedente recogido como alternativas anteriormente), en un núcleo de procesador que da soporte a la ejecución de uno o dos hilos, se contabiliza un valor de un medio a cada hilo para los ciclos en los cuales no se produce despacho de instrucciones alguno o en los ciclos en los cuales se produce un despacho de instrucciones para cada hilo. En los ciclos en los cuales se produce un despacho de instrucciones para uno solo de los hilos, se factura al hilo para el cual tuvo lugar el despacho de instrucciones la totalidad del ciclo. La lógica de control 11 detecta uno de cuatro estados potenciales: ninguno de los hilos despacha, despacha el hilo 0, despacha el hilo 1 o despachan ambos hilos, y actualiza el contador de semiciclos 42A del hilo 0 y el contador de semiciclos 42B del hilo 1 en conformidad con la distribución de facturación de ciclos anteriormente descrita.
Puesto que el valor de distribución más bajo anteriormente descrito corresponde a una asignación de incrementos de semiciclo, se actualiza los contadores de semiciclos 42A y 42B con un incremento (o decremento) de 1 para la asignación del semiciclo o de 2 para la del ciclo entero. En la práctica, cada uno de los contadores de uso 41A y 41B de hilo son actualizados en un octavo de la posible velocidad de despacho de instrucciones para el área de chip, razones de potencia y sincronización (o debido a la velocidad del contador 47 de ciclos de la base tiempo que se escogió como 1/8 del tiempo de ciclo del procesador por las mismas razones), de manera que los contadores de semiciclos de 4 bits 42A y 42B que no forman parte de los contadores de uso de hilo "de la arquitectura" proporcionan una cuenta de uso efectivo de 8 ciclos por rebosamiento (puesto que se asignará un valor de dos al incremento total de los contadores de semiciclos 42A y 42B). Los contadores de semiciclos 42A y 42B rebosan en la parte de los contadores de uso de hilo 41A y 41B que son leídos por la unidad de punto fijo 14 cuando una rutina de contabilidad (programa) recupera la información de uso de tiempo de ciclo de procesador. Los contadores de semiciclos 42A y 42B se realizan como sumadores que suman dos subcuentas para una asignación de ciclo completo o una subcuenta para una asignación de un semiciclo.
En una realización alternativa de la presente invención, la unidad 40 de uso de tiempo de ciclo del procesador usa una suma para incrementar (o una resta para disminuir) los contadores 41A y 41B de uso de hilo. El valor sumado es determinado por el circuito de detección de despacho 44 que detecta que se están haciendo despachos múltiples para un hilo dado, y el subcontador asociado es incrementado en (recibe la suma de) un valor proporcional a la relación del número de instrucciones despachadas para el hilo respecto al número de instrucciones despachadas para todos los hilos correspondientes al ciclo. Por ejemplo, cuando el núcleo 10 de procesador está ejecutando dos hilos y en un ciclo dado se despachan 3 instrucciones para el primer hilo y se despacha una instrucción para el segundo hilo, se asigna un valor de ¾ al contador de uso de hilo correspondiente al primer hilo y se asigna ¼ al contador de uso de hilo correspondiente al segundo hilo. Si no se realiza despacho alguno en un ciclo dado, se asigna todavía el ciclo a partes iguales entre los hilos.
Haciendo referencia a la Figura 4, se representa un método de acuerdo con una realización de la presente invención en un diagrama de flujo. El método representado es para contabilizar dentro de un procesador SMT que tiene una unidad de modo SMT y ST y es capaz de ejecutar simultáneamente múltiples hilos en modo SMT. Si el procesador se encuentra en el modo ST (decisión 50), el contador de ciclos de hilo para el hilo que se ejecuta es actualizado en un valor de 1 ciclo cada ciclo (etapa 51). Si el procesador se encuentra en el modo SMT (decisión 50) si sólo está despachando un hilo (decisión 52), el contador de ciclo de hilo asociado es actualizado en un valor de 1 ciclo (etapa 53). Si todos los hilos están despachando (decisión 54), se actualizan por igual los contadores de ciclos de hilo para todos los hilos según una fracción de ciclo determinada por el número de hilos o según el número de despachos emitidos (o de recursos usados) para cada hilo (etapa 55). Si no hay hilos que estén despachando, se puede actualizar los contadores de ciclos de hilo por igual, o en proporción al último muestreo de despachos, o en proporción a su prioridad (etapa 57). Finalmente, si no hay hilos despachando, se puede actualizar los contadores de ciclos de hilo análogamente por igual, o en proporción al último muestreo de despachos, o en proporción a su prioridad (etapa 58).
Aunque se ha mostrado particularmente la invención y se ha descrito haciendo referencia a la realización preferida de la misma, se entenderá por los expertos en la técnica que se puede hacer en la misma los cambios de forma y detalles antes indicados y otros.

Claims (8)

1. Un método para contabilizar el tiempo de uso de un procesador que da soporte a la ejecución concurrente de una pluralidad de hilos de hardware y que tiene una pluralidad de recursos usados por dicha pluralidad de hilos de hardware, comprendiendo el método:
en cada ciclo de reloj de procesador, determinar el uso relativo de recursos en base a si cada hilo de hardware está o no en un estado particular de ciclo de procesador; y
en respuesta a dicha determinación, actualizar una pluralidad de cuentas de uso de recursos de procesador, cada una de ellas asociada a un hilo particular de los hilos de hardware en conformidad con dicho uso relativo de recursos, caracterizado porque dicha actualización se realiza por igual en cada una de dicha pluralidad de dichas cuentas de uso de recursos de procesador en respuesta a la determinación de que ninguno de dicha pluralidad de hilos de hardware se encuentra en dicho estado particular de ciclo.
2. El método de la reivindicación 1, en el que dicho estado particular de ciclo es un estado que indica el despacho de una instrucción para un hilo de hardware.
3. El método de cualquiera de las reivindicaciones 1 ó 2, en el que en respuesta a dicha determinación que establece que uno o varios de dicha pluralidad de hilos de hardware están en dicho estado particular de ciclo, dicha actualización se realiza por igual en cada una de dicha pluralidad de cuentas de uso de recursos de procesador asociadas a dicho uno o varios hilos de hardware.
4. El método de cualquiera de las reivindicaciones 1 a 3, en el que dicha actualización se realiza fraccionalmente en cada uno de dicha pluralidad de dichas cuentas de uso de recursos de procesador en conformidad con un número determinado de recursos usados por dicho hilo de hardware asociado desde un intervalo anterior de dichos intervalos periódicos, en respuesta a que dicha determinación establezca adicionalmente que ninguno de dicha pluralidad de hilos de hardware está en dicho estado particular de ciclo.
5. El método de cualquiera de las reivindicaciones 1 a 4, en el que dicha actualización se realiza fraccionalmente en cada en cada uno de dicha pluralidad de dichas cuentas de uso de recursos de procesador en conformidad con un nivel de prioridad de dicho hilo de hardware asociado, en respuesta a que dicha determinación de que ninguno de dicha pluralidad de hilos de hardware está en dicho estado particular de ciclo.
6. El método de cualquiera de las reivindicaciones 1 a 5, en el que dicho procesador tiene un modo de funcionamiento de hilo único y un modo de funcionamiento multihilo y además comprende:
determinar si dicho procesador está en dicho modo de funcionamiento de hilo único; y
en respuesta a determinar que dicho procesador está en dicho modo de funcionamiento de hilo único, realizar dicha actualización de tal manera que se atribuya cada ciclo de procesador a un hilo único que ejecuta dentro de dicho procesador.
7. Un procesador que da soporte a la ejecución concurrente de una pluralidad de hilos de hardware, comprendiendo dicho procesador:
una pluralidad de recursos usada por dicha pluralidad de hilos de hardware;
una unidad de control de instrucciones acoplada a dicha pluralidad de recursos, donde dicha unidad de control de instrucciones controla un número de recursos usados por dicho procesador cada ciclo de reloj de procesador;
una pluralidad de contadores de ciclo de uso de recursos de procesador, cada uno de ellos asociado a un hilo concreto de dicha pluralidad de hilos de hardware, y
un circuito lógico acoplado a dicha unidad de control de instrucciones y dichos contadores de ciclos de uso de recursos de procesador, en el que dicho circuito lógico actualiza cada uno de dichos contadores de ciclos de uso de recursos de procesador en conformidad con una determinación del uso relativo por dicho hilo de hardware asociado, y donde dicho circuito lógico determina si un hilo de hardware concreto está o no en un estado particular de ciclo y caracterizado porque dicha lógica de control actualiza por igual cada uno de dichas cuentas de uso de recursos de procesador en respuesta a la determinación de que ningún hilo de dicha pluralidad de hilos está en dicho estado particular de ciclo.
8. El procesador de la reivindicación 7, en el que dicha lógica de control determina además un número de recursos para los cuales cada hilo de hardware está en un estado particular de ciclo.
ES04727310T 2003-04-23 2004-04-14 Metodo y logica de contabilidd para determinar la utilizacion de recursos de procesador para cada hilo en un procesador de multihilo o simultaneo (smt). Expired - Lifetime ES2286630T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US422025 2003-04-23
US10/422,025 US7657893B2 (en) 2003-04-23 2003-04-23 Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor

Publications (1)

Publication Number Publication Date
ES2286630T3 true ES2286630T3 (es) 2007-12-01

Family

ID=33298778

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04727310T Expired - Lifetime ES2286630T3 (es) 2003-04-23 2004-04-14 Metodo y logica de contabilidd para determinar la utilizacion de recursos de procesador para cada hilo en un procesador de multihilo o simultaneo (smt).

Country Status (14)

Country Link
US (3) US7657893B2 (es)
EP (1) EP1616259B1 (es)
JP (1) JP4536717B2 (es)
KR (1) KR100754153B1 (es)
CN (1) CN100458727C (es)
AT (1) ATE364204T1 (es)
BR (1) BRPI0409710B1 (es)
CA (1) CA2518468C (es)
DE (1) DE602004006858T2 (es)
ES (1) ES2286630T3 (es)
IL (1) IL171706A (es)
MX (1) MXPA05011307A (es)
TW (1) TWI291131B (es)
WO (1) WO2004095282A1 (es)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AP1224A (en) 1998-03-19 2003-11-14 Bristol Myers Squibb Co Biphasic controlled release delivery system for high solubility pharmaceuticals and method.
US7657893B2 (en) * 2003-04-23 2010-02-02 International Business Machines Corporation Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US9323571B2 (en) * 2004-02-06 2016-04-26 Intel Corporation Methods for reducing energy consumption of buffered applications using simultaneous multi-threading processor
US7555753B2 (en) * 2004-02-26 2009-06-30 International Business Machines Corporation Measuring processor use in a hardware multithreading processor environment
US7890735B2 (en) * 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US7603673B2 (en) * 2004-10-28 2009-10-13 Intel Corporation Method and system for reducing context switch times
US8387052B2 (en) 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
US8245230B2 (en) * 2005-03-14 2012-08-14 Qnx Software Systems Limited Adaptive partitioning scheduler for multiprocessing system
US9361156B2 (en) 2005-03-14 2016-06-07 2236008 Ontario Inc. Adaptive partitioning for operating system
US20060212853A1 (en) * 2005-03-18 2006-09-21 Marvell World Trade Ltd. Real-time control apparatus having a multi-thread processor
US8195922B2 (en) * 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
JP4276201B2 (ja) * 2005-03-31 2009-06-10 富士通株式会社 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
US8713286B2 (en) 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US7313673B2 (en) * 2005-06-16 2007-12-25 International Business Machines Corporation Fine grained multi-thread dispatch block mechanism
US7945625B2 (en) * 2005-07-12 2011-05-17 Microsoft Corporation Automated moderation of discussion lists
US7937706B2 (en) * 2005-08-22 2011-05-03 Runtime Design Automation, Inc. Method and system for performing fair-share preemption
DE102005054848A1 (de) * 2005-11-15 2007-05-24 Alexander Mekyska Verfahren zur Verrechnung von Systemkosten
US7610293B2 (en) * 2006-10-11 2009-10-27 Oracle International Corporation Correlation of resource usage in a database tier to software instructions executing in other tiers of a multi tier application
US7634561B2 (en) * 2006-10-26 2009-12-15 International Business Machines Corporation Application usage metering management system
US7340378B1 (en) 2006-11-30 2008-03-04 International Business Machines Corporation Weighted event counting system and method for processor performance measurements
US8140885B2 (en) * 2007-02-14 2012-03-20 International Business Machines Corporation Accounting for microprocessor resource consumption
US8621468B2 (en) * 2007-04-26 2013-12-31 Microsoft Corporation Multi core optimizations on a binary using static and run time analysis
US7908493B2 (en) * 2007-06-06 2011-03-15 International Business Machines Corporation Unified management of power, performance, and thermals in computer systems
KR101077514B1 (ko) 2007-06-19 2011-10-28 후지쯔 가부시끼가이샤 캐시 제어장치 및 제어방법
EP2159685B1 (en) * 2007-06-20 2013-08-21 Fujitsu Limited Processor
EP2159687B1 (en) 2007-06-20 2012-12-05 Fujitsu Limited Arithmetic unit
JP5043560B2 (ja) * 2007-08-24 2012-10-10 パナソニック株式会社 プログラム実行制御装置
US8122449B2 (en) * 2007-09-07 2012-02-21 International Business Machines Corporation Determining whether to retain or terminate a thread based on a minimum number of threads in a thread pool and a maximum number of threads allowed waiting on the channel
US7559061B1 (en) * 2008-03-16 2009-07-07 International Business Machines Corporation Simultaneous multi-threading control monitor
US9106592B1 (en) * 2008-05-18 2015-08-11 Western Digital Technologies, Inc. Controller and method for controlling a buffered data transfer device
JP5326374B2 (ja) * 2008-06-19 2013-10-30 富士通セミコンダクター株式会社 プロセッサ、性能プロファイリング装置、性能プロファイリングプログラムおよび性能プロファイリング方法
US8161493B2 (en) 2008-07-15 2012-04-17 International Business Machines Corporation Weighted-region cycle accounting for multi-threaded processor cores
US8285973B2 (en) 2008-08-04 2012-10-09 International Business Machines Corporation Thread completion rate controlled scheduling
US8055477B2 (en) * 2008-11-20 2011-11-08 International Business Machines Corporation Identifying deterministic performance boost capability of a computer system
KR101543326B1 (ko) * 2009-01-05 2015-08-10 삼성전자주식회사 시스템 온 칩 및 그 구동 방법
US8230440B2 (en) * 2009-03-06 2012-07-24 International Business Machines Corporation System and method to distribute accumulated processor utilization charges among multiple threads
JP5463076B2 (ja) * 2009-05-28 2014-04-09 パナソニック株式会社 マルチスレッドプロセッサ
US8527796B2 (en) * 2009-08-24 2013-09-03 Intel Corporation Providing adaptive frequency control for a processor using utilization information
US9672132B2 (en) * 2009-11-19 2017-06-06 Qualcomm Incorporated Methods and apparatus for measuring performance of a multi-thread processor
US8453146B2 (en) * 2009-12-23 2013-05-28 Intel Corporation Apportioning a counted value to a task executed on a multi-core processor
FR2957433B1 (fr) * 2010-03-11 2016-01-15 Bull Sas Procede de configuration d'un systeme informatique, programme d'ordinateur et systeme informatique correspondants
US10169187B2 (en) 2010-08-18 2019-01-01 International Business Machines Corporation Processor core having a saturating event counter for making performance measurements
US20120079500A1 (en) * 2010-09-29 2012-03-29 International Business Machines Corporation Processor usage accounting using work-rate measurements
US8719561B2 (en) 2010-11-29 2014-05-06 International Business Machines Corporation Automatic configuration sampling for managing configuration parameters of a computer system
JP5542700B2 (ja) 2011-01-05 2014-07-09 株式会社日立製作所 Smtプロセッサにおけるプロセッサ使用率の算出方法
US8868886B2 (en) 2011-04-04 2014-10-21 International Business Machines Corporation Task switch immunized performance monitoring
US9342432B2 (en) 2011-04-04 2016-05-17 International Business Machines Corporation Hardware performance-monitoring facility usage after context swaps
GB2489708B (en) * 2011-04-05 2020-04-15 Advanced Risc Mach Ltd Thread selection for multithreaded processing
CN102955716B (zh) * 2011-08-19 2016-05-18 苏州简约纳电子有限公司 一种多线程处理器和处理方法
US20130055033A1 (en) 2011-08-22 2013-02-28 International Business Machines Corporation Hardware-assisted program trace collection with selectable call-signature capture
US9027141B2 (en) * 2012-04-12 2015-05-05 Netflix, Inc. Method and system for improving security and reliability in a networked application environment
US9021493B2 (en) 2012-09-14 2015-04-28 International Business Machines Corporation Management of resources within a computing environment
US9207944B1 (en) 2013-03-15 2015-12-08 Google Inc. Doubling thread resources in a processor
JP6142709B2 (ja) * 2013-07-23 2017-06-07 富士通株式会社 計測方法、計測プログラム、携帯情報端末、及びその制御方法
US9535746B2 (en) 2013-12-19 2017-01-03 International Business Machines Corporation Honoring hardware entitlement of a hardware thread
US9760465B2 (en) 2014-01-02 2017-09-12 International Business Machines Corporation Assessment of processor performance metrics by monitoring probes constructed using instruction sequences
US10102004B2 (en) * 2014-03-27 2018-10-16 International Business Machines Corporation Hardware counters to track utilization in a multithreading computer system
US9594660B2 (en) * 2014-03-27 2017-03-14 International Business Machines Corporation Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores
US9804846B2 (en) * 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
CN106250238A (zh) * 2016-07-27 2016-12-21 李媛媛 负载均衡在多核芯片中的应用方法及系统
CN106250237A (zh) * 2016-07-27 2016-12-21 李媛媛 电子芯片中的功率分配方法及系统
CN108628639B (zh) 2017-03-21 2021-02-12 华为技术有限公司 处理器和指令调度方法
CN109308220B (zh) * 2017-07-26 2021-12-14 华为技术有限公司 共享资源分配方法及装置
US10558497B2 (en) 2017-08-28 2020-02-11 International Business Machines Corporation Prevention and resolution of a critical shortage of a shared resource in a multi-image operating system environment
US10558499B2 (en) 2017-10-26 2020-02-11 Advanced Micro Devices, Inc. Wave creation control with dynamic resource allocation
CN108196882A (zh) * 2017-12-29 2018-06-22 普强信息技术(北京)有限公司 一种针对神经网络计算的加速方法及装置
CN108986253B (zh) * 2018-06-29 2022-08-30 百度在线网络技术(北京)有限公司 用于多线程并行处理的存储数据方法和装置
US10977075B2 (en) * 2019-04-10 2021-04-13 Mentor Graphics Corporation Performance profiling for a multithreaded processor
US11436043B2 (en) 2019-11-13 2022-09-06 International Business Machines Corporation Operating system code patching during live migration
CN112316419B (zh) * 2020-11-03 2022-06-28 腾讯科技(深圳)有限公司 应用程序的运行方法、装置、设备及可读存储介质
CN112579299B (zh) * 2020-12-28 2022-11-18 北京紫光展锐通信技术有限公司 资源调度方法、电子设备及存储介质
FR3131644B1 (fr) * 2021-12-30 2024-09-06 Thales Sa Système et procédé de surveillance du fonctionnement d'un calculateur

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56153457A (en) * 1980-04-28 1981-11-27 Mitsubishi Electric Corp Measuring device for computer load
JP3169597B2 (ja) * 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 マルチタスク実行時間アカウント方法とその機構
US5210872A (en) * 1991-06-28 1993-05-11 Texas Instruments Inc. Critical task scheduling for real-time systems
US5247675A (en) * 1991-08-09 1993-09-21 International Business Machines Corporation Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system
JP2682770B2 (ja) * 1992-05-15 1997-11-26 富士通株式会社 仮想計算機システムのcpu制御方式
US5809268A (en) * 1995-06-29 1998-09-15 International Business Machines Corporation Method and system for tracking resource allocation within a processor
US5838976A (en) * 1995-11-28 1998-11-17 Hewlett-Packard Co. System and method for profiling code on symmetric multiprocessor architectures
US5812844A (en) * 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints
US5822602A (en) * 1996-07-23 1998-10-13 S3 Incorporated Pipelined processor for executing repeated string instructions by halting dispatch after comparision to pipeline capacity
US5761091A (en) * 1996-12-10 1998-06-02 Bgs Systems, Inc. Method and system for reducing the errors in the measurements of resource usage in computer system processes and analyzing process data with subsystem data
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US5784616A (en) * 1997-05-02 1998-07-21 Microsoft Corporation Apparatus and methods for optimally using available computer resources for task execution during idle-time for future task instances exhibiting incremental value with computation
US6658447B2 (en) * 1997-07-08 2003-12-02 Intel Corporation Priority based simultaneous multi-threading
US6487578B2 (en) * 1997-09-29 2002-11-26 Intel Corporation Dynamic feedback costing to enable adaptive control of resource utilization
US6549930B1 (en) * 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6175814B1 (en) * 1997-11-26 2001-01-16 Compaq Computer Corporation Apparatus for determining the instantaneous average number of instructions processed
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US6205519B1 (en) * 1998-05-27 2001-03-20 Hewlett Packard Company Cache management for a multi-threaded processor
US7216348B1 (en) * 1999-01-05 2007-05-08 Net2Phone, Inc. Method and apparatus for dynamically balancing call flow workloads in a telecommunications system
IL144294A0 (en) * 1999-01-29 2002-05-23 Univ Illinois P53 inhibitors and therapeutic use of the same
US6535905B1 (en) * 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US7028298B1 (en) * 1999-09-10 2006-04-11 Sun Microsystems, Inc. Apparatus and methods for managing resource usage
US7051329B1 (en) * 1999-12-28 2006-05-23 Intel Corporation Method and apparatus for managing resources in a multithreaded processor
WO2001055917A1 (en) * 2000-01-27 2001-08-02 Morphics Technology Inc. Improved apparatus and method for multi-threaded signal processing
US20020194251A1 (en) * 2000-03-03 2002-12-19 Richter Roger K. Systems and methods for resource usage accounting in information management environments
US6957432B2 (en) * 2000-03-21 2005-10-18 Microsoft Corporation Real-time scheduler
US7086053B2 (en) * 2000-06-12 2006-08-01 Sun Microsystems, Inc. Method and apparatus for enabling threads to reach a consistent state without explicit thread suspension
JP3884237B2 (ja) * 2001-02-16 2007-02-21 株式会社リコー マルチスレッドのプロファイル方法、プロファイル装置及びコンピュータ・プログラム
US7114163B2 (en) * 2001-03-07 2006-09-26 Hardin David S Software component model for time sensitive embedded applications
US7036123B2 (en) * 2001-04-25 2006-04-25 Sun Microsystems, Inc. System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group
US7454600B2 (en) * 2001-06-22 2008-11-18 Intel Corporation Method and apparatus for assigning thread priority in a processor or the like
US6965982B2 (en) * 2001-06-29 2005-11-15 International Business Machines Corporation Multithreaded processor efficiency by pre-fetching instructions for a scheduled thread
US6954846B2 (en) * 2001-08-07 2005-10-11 Sun Microsystems, Inc. Microprocessor and method for giving each thread exclusive access to one register file in a multi-threading mode and for giving an active thread access to multiple register files in a single thread mode
NZ534314A (en) * 2002-01-30 2005-04-29 Real Entpr Solutions Dev B Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor
US7024543B2 (en) * 2002-09-13 2006-04-04 Arm Limited Synchronising pipelines in a data processing apparatus
US7657893B2 (en) * 2003-04-23 2010-02-02 International Business Machines Corporation Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor

Also Published As

Publication number Publication date
JP4536717B2 (ja) 2010-09-01
DE602004006858D1 (de) 2007-07-19
MXPA05011307A (es) 2006-01-30
KR20060002842A (ko) 2006-01-09
CA2518468A1 (en) 2004-11-04
BRPI0409710A (pt) 2006-05-02
US7657893B2 (en) 2010-02-02
CN100458727C (zh) 2009-02-04
EP1616259B1 (en) 2007-06-06
ATE364204T1 (de) 2007-06-15
IL171706A (en) 2011-03-31
US20120216210A1 (en) 2012-08-23
TW200504596A (en) 2005-02-01
US20040216113A1 (en) 2004-10-28
US9003417B2 (en) 2015-04-07
CA2518468C (en) 2008-09-30
BRPI0409710B1 (pt) 2020-01-14
US20100037233A1 (en) 2010-02-11
KR100754153B1 (ko) 2007-09-03
TWI291131B (en) 2007-12-11
CN1985242A (zh) 2007-06-20
US8209698B2 (en) 2012-06-26
WO2004095282A1 (en) 2004-11-04
DE602004006858T2 (de) 2008-02-14
EP1616259A1 (en) 2006-01-18
JP2006524380A (ja) 2006-10-26

Similar Documents

Publication Publication Date Title
ES2286630T3 (es) Metodo y logica de contabilidd para determinar la utilizacion de recursos de procesador para cada hilo en un procesador de multihilo o simultaneo (smt).
Radojković et al. On the evaluation of the impact of shared resources in multithreaded COTS processors in time-critical environments
US8161493B2 (en) Weighted-region cycle accounting for multi-threaded processor cores
JP5186178B2 (ja) プロセッサ性能計測のための重み付けされたイベント計数方法、プロセッサ、および重み付け性能カウンタ回路(プロセッサ性能計測のための重み付けされたイベント計数システムおよび方法)
US9336055B2 (en) Apparatus and method for predicting processing performance
JP2004054932A (ja) ハードウェアベースの使用量計測装置
KR100992209B1 (ko) 데이터 처리 시스템 상에서 소프트웨어 제품의 사용량을 측정하는 방법
US20050154861A1 (en) Method and data processing system having dynamic profile-directed feedback at runtime
Eyerman et al. Per-thread cycle accounting in SMT processors
CN106104487A (zh) 跟踪多线程计算机系统中的利用率的硬件计数器
US6530042B1 (en) Method and apparatus for monitoring the performance of internal queues in a microprocessor
TW448409B (en) Methodology for emulation of multi-threaded processes in a single-threaded operating system
CN1403912A (zh) 在实时系统中测量中央处理器任务占用率的方法和装置
CN105843731B (zh) 计算机系统及通过计算机系统执行的性能监控方法
JPH11288435A (ja) 人材割当支援システム
ES2389894T3 (es) Equipo de extracción de tiempo de CPU
US8296552B2 (en) Dynamically migrating channels
JP2003271401A (ja) 負荷監視機能を有するマイクロプロセッサ
KR101266421B1 (ko) 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법
TW201140449A (en) Apportioning a counted value to a task executed on a multi-core processor
US20250130836A1 (en) Mechanism for fine-grained device power attribution to software entities
Kalla et al. Probabilistic Monte Carlo simulations for static branch prediction
Shivam et al. Model-driven placement of compute tasks and data in a networked utility
Snavely Symbiotic jobscheduling on hardware multithreaded architectures