ES2389894T3 - Equipo de extracción de tiempo de CPU - Google Patents
Equipo de extracción de tiempo de CPU Download PDFInfo
- Publication number
- ES2389894T3 ES2389894T3 ES08161018T ES08161018T ES2389894T3 ES 2389894 T3 ES2389894 T3 ES 2389894T3 ES 08161018 T ES08161018 T ES 08161018T ES 08161018 T ES08161018 T ES 08161018T ES 2389894 T3 ES2389894 T3 ES 2389894T3
- Authority
- ES
- Spain
- Prior art keywords
- operand
- record
- task
- cpu
- time
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3419—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Abstract
Un método para medir el tiempo de procesamiento o tratamiento acumulado para tareas seleccionadas,mediante la ejecución de una instrucción de máquina EXTRACCIÓN DE TIEMPO DE CPU, dentro de un sistemainformático que incluye un conjunto de 16 registros accesibles por la instrucción y un temporizador de CPU, de talmanera que el método comprende:obtener, para la ejecución de la instrucción de máquina EXTRACCIÓN DE TIEMPO DE CPU definida por unaarquitectura, la instrucción EXTRACCIÓN DE TIEMPO DE CPU que comprende un campo de código op (opcode)que identifica la instrucción, un primer campo de base (B1) para identificar un primer registro y un primer campo dedesplazamiento (D1), un segundo campo de base (B2) para identificar un segundo registro y un segundo campo dedesplazamiento (D2), y un tercer registro, de tal manera que el tercer registro guarda una dirección de un terceroperando; yejecutar la instrucción de máquina EXTRACCIÓN DE TIEMPO DE CPU obtenida, automáticamente en el estadono privilegiado, invocando o llamando a un servicio de sistema operativo, de tal manera que la ejecución comprende:determinar un valor en curso de un temporizador de CPU decremental;sumar el contenido del primer registro y un valor del primer campo de desplazamiento con el fin de formaruna dirección de un primer operando en almacenamiento, de tal modo que el primer operando representa elvalor del temporizador de CPU en el momento en que se despachó una tarea;buscar y recuperar, basándose en la dirección formada del primer operando, el primer operando, desde eldispositivo de almacenamiento;restar del primer operando buscado y recuperado el valor en curso determinado del temporizador de CPU, afin de producir un primer resultado;almacenar el primer resultado en un cuarto registro, de tal modo que el primer resultado representa lacantidad del recurso utilizada por la tarea durante este intervalo de tiempo;sumar el contenido del segundo registro y un valor del segundo campo de desplazamiento a fin de formaruna dirección de un segundo operando;buscar y recuperar, basándose en la dirección formada del segundo operando, el segundo operando desdeel dispositivo de almacenamiento;almacenar el segundo operando en un quinto registro, de tal modo que el segundo operando comprendeuna cantidad de tiempo utilizada previamente para la tarea; de tal manera que el tiempo de CPU total utilizadohasta ese momento por la tarea se determina añadiendo el primer resultado almacenado en el cuarto registro ala cantidad de tiempo previamente utilizada para la tarea, almacenada en el quinto registro;buscar y recuperar, basándose en la dirección del quinto operando, el tercer operando desde el dispositivode almacenamiento; yalmacenar el tercer operando recuperado en el tercer registro, de tal modo que el tercer operandocomprende indicadores que designan información de tarea, de manera que la dirección del tercer operando enel tercer registro es sobrescrita por el tercer operando recuperado.
Description
Equipo de extracción de tiempo de CPU.
Campo técnico
Esta invención se refiere, en general, al procesamiento o tratamiento dentro de un entorno de tratamiento y, en particular, a una instalación o equipo para determinar de forma eficiente el uso de recursos de las tareas.
La determinación del uso de los recursos es crucial para muchos aspectos del tratamiento, incluyendo el refinamiento de código, la facturación, etc. Uno de los recursos para los que se determina la utilización es el tiempo de procesador. En la z/Architecture, ofrecida por la International Business Machines Corporation, se proporciona un temporizador que mide el tiempo de unidad central de procesamiento (CPU –“central processing unit”) transcurrido y causa una interrupción una vez transcurrida una cantidad especificada de tiempo.
Este temporizador es ajustado por una instrucción de control de Ajuste de Temporizador de CPU (SPT –“Set CPU Timer”), y el contenido del temporizador se inspecciona a través de una instrucción de control de Almacenamiento de Temporizador de CPU (“STPT –“Store CPU Timer”). Estas dos instrucciones son instrucciones privilegiadas o preferentes para garantizar la precisión del tiempo y, como tales, no son utilizables por programas de establecimiento de problemas (esto es, programas de usuario).
Además de lo anterior, el sistema operativo z/OS®, ofrecido por la International Business Machines Corporation, también proporciona una rutina de servicio a la que se hace referencia como TIMEUSED (TIEMPO UTILIZADO), que está disponible para los programas de establecimiento de problemas. Un programa u operación apela al servicio con el fin de determinar la cantidad de tiempo de CPU que ha empleado un fragmento o pieza de código (por ejemplo, una tarea). La rutina de servicio TIMEUSED computa el tiempo transcurrido, añade el tiempo acumulado y devuelve el valor al programa. Los cálculos de la rutina TIMEUSED deben llevarse a cabo a la vez que esta es inhabilitada para interrupciones, puesto que cualquier interrupción podría afectar adversamente a los resultados mediante la manipulación del temporizador de CPU o del acumulador.
Se contacta con la rutina de servicio TIMEUSED a través de instrucciones de llamada a programa y de retorno de programa. La rutina se inhabilita para interrupciones, obtiene y libera un bloqueo de CPU, establece un entorno de recuperación, calcula el tiempo transcurrido y se rehabilita una vez completado su trabajo, todo lo cual lleva cientos de ciclos de CPU. Cuando se trata de medir un pequeño fragmento de código, las actuaciones preliminares de la rutina de servicio TIMEUSED pueden perturbar gravemente lo que se está midiendo.
El documento US-B-6.385.637 describe un método para determinar el uso de tiempo de CPU de las tareas utilizando un temporizador de tratamiento periódico. El documento US-A-6.016.466 describe la determinación del tiempo de ejecución para una porción de software mediante la obtención de valores de sello temporal. El documento WO-A00/72143 proporciona estadística de instrumentación en el nivel de subrutina.
Basándose en lo anterior, existe la necesidad de una instalación o equipo para determinar de forma eficiente el uso de los recursos, tal como el tiempo de CPU transcurrido de una tarea. En particular, existe la necesidad de un equipo que determine de un modo eficiente el uso de recursos de las tareas sin apelar a servicios del sistema operativo. Existe la necesidad de que el usuario tenga la capacidad de determinar de un modo eficiente el uso de los recursos.
Las desventajas de la técnica anterior se superan, y se proporcionan ventajas adicionales, mediante la provisión de un método tal como se reivindica en la reivindicación 1.
Los productos de sistema y programa informáticos correspondientes al método anteriormente resumido, así como una o más instrucciones, se describen y reivindican también en la presente memoria.
Características y ventajas adicionales se constatan a través de las técnicas de la presente invención. Otras realizaciones y aspectos de la invención se describen en detalle en esta memoria y se consideran parte de la invención reivindicada.
Uno o más aspectos de la presente invención se destacan particularmente y se reivindican distintivamente como ejemplos en las reivindicaciones proporcionadas a la conclusión de la memoria. Los anteriores y otros objetos, características y ventajas de la invención se ponen de manifiesto de un modo evidente a partir de la siguiente descripción detallada, tomada en combinación con los dibujos que se acompañan, en los cuales:
La Figura 1 ilustra una realización de un entorno de procesamiento o tratamiento que incorpora y utiliza uno o más aspectos de la presente invención;
La Figura 2 representa una realización de la lógica asociada con la determinación del uso de los recursos, de acuerdo con un aspecto de la presente invención;
La Figura 3 ilustra un ejemplo de un formato de una instrucción de Extracción de Tiempo de CPU que se utiliza de acuerdo con un aspecto de la presente invención;
La Figura 4a ilustra una realización de los campos de registro general 0 utilizados por la instrucción de Extracción de Tiempo de CPU de un aspecto de la presente invención;
La Figura 4b representa una realización de los campos de registro general 1 empleados por la instrucción de Extracción de Tiempo de CPU de un aspecto de la presente invención;
La Figura 5 ilustra una realización de la lógica asociada con la realización o ejecución de la instrucción de Extracción de tiempo de CPU, de acuerdo con un aspecto de la presente invención;
La Figura 6 es una representación esquemática de las operaciones de la instrucción de Extracción de Tiempo de CPU de un aspecto de la presente invención; y
La Figura 7 representa un ejemplo de un producto de programa informático que incorpora uno o más aspectos de la presente invención.
Mejor modo de llevar a cabo la invención
De acuerdo con un aspecto de la presente invención, se proporciona una instalación o equipo para determinar eficientemente el uso de recursos de las tareas que se ejecutan dentro de un entorno de procesamiento o tratamiento. En un ejemplo, se proporciona un equipo en el que el usuario (por ejemplo, un código de usuario, aplicación de usuario, programa de usuario, etc.) puede medir con precisión el tiempo de procesador requerido para ejecutar un fragmento de código particular (al que se hace referencia en la presente memoria como tarea). Este equipo determina el tiempo de procesador transcurrido sin actuaciones preliminares que hayan distorsionado tales mediciones, tales como las actuaciones preliminares asociadas con el uso de un servicio de sistema operativo con el fin de determinar el tiempo transcurrido.
Una realización de un entorno de procesamiento o tratamiento que incorpora y utiliza uno o más aspectos de la presente invención, se describe con referencia a la Figura 1. El entorno de tratamiento 100 es, por ejemplo, un entorno de tratamiento múltiple que incluye una pluralidad de procesadores 102 (por ejemplo, unidades centrales de procesamiento (CPUs –“central processing units”), una memoria 104 (por ejemplo, una memoria principal) y uno o más dispositivos de entrada / salida (E/S –“I/O (input / output)”) 106, conectados entre sí a través de, por ejemplo, uno o más buses 108 u otras conexiones.
Como un ejemplo, cada procesador 102 es un servidor de IBM System ZTM, ofrecido por la International Business Machines Corporation, de Armonk, Nueva York, y uno o más de los procesadores ejecutan un sistema operativo, tal como el z/OS®, también ofrecido por la International Business Machines Corporation. (IBM y z/OS son marcas comerciales registradas de la International Business Machines Corporation, de Armonk, Nueva York, USA. Otros nombres utilizados en esta memoria pueden ser marcas comerciales registradas, marcas comerciales o nombres de producto de la International Business Machines Corporation o de otras compañías.)
El tratamiento dentro del entorno de tratamiento se ve facilitado por la provisión de una instalación o equipo que permite la determinación del uso de los recursos, tal como el tiempo de procesador transcurrido (por ejemplo, de CPU), sin que sea necesaria la apelación a un servicio de sistema operativo o sin utilizar instrucciones u operaciones privilegiadas.
Una realización de la lógica asociada con la determinación del uso de los recursos se describe con referencia a la Figura 2. Esta lógica se lleva a cabo mediante una unidad de procesamiento del entorno de tratamiento, en respuesta a, por ejemplo, una petición por parte de una aplicación de usuario (por ejemplo, código no privilegiado o preferente). El uso de los recursos se determina para una tarea en ausencia de una apelación o llamada a un servicio de sistema operativo y sin utilizar operaciones privilegiadas; ETAPA 200.
Inicialmente, se determina un valor en curso de un contador utilizado para efectuar un seguimiento del recurso para la tarea, tal como el tiempo utilizado, mediante la lectura del valor de contador, según se estipula por la lógica; ETAPA 202. El valor determinado es entonces restado de un valor guardado, que es, por ejemplo, el valor del contador cuando este se pone en marcha; ETAPA 204. En un ejemplo, el contador se reduce a medida que el recurso es utilizado por la tarea, y se lee el valor en curso del contador, en respuesta a la petición. El resultado de la sustracción o resta representa la cantidad de recurso utilizado por la tarea para este intervalo de tiempo, que se define por los valores de inicio y de final del contador; ETAPA 206.
En un ejemplo, las operaciones utilizadas para determinar el uso de recursos se llevan a cabo por medio de una instrucción. Como un ejemplo específico, se proporciona una instrucción para determinar una cantidad de tiempo de procesador utilizada para una tarea. La instrucción puede ser implementada en muchas arquitecturas, y puede ser emulada. Como ejemplos de ello, la instrucción se ejecuta en dispositivos físicos o hardware por medio de un procesador; o bien mediante la emulación de un conjunto de instrucciones que incluye esta instrucción, por la ejecución de programación o software en una unidad de procesamiento que tiene un conjunto de instrucciones nativas diferente. En un ejemplo particular, la instrucción se implementa en la z/Architecture, ofrecida por la International Business Machines Corporation, y se hace referencia a ella en la presente memoria como una instrucción de Extracción de tiempo de CPU (ECTG –“Extract CPU Time”).
Una instrucción 300 de Extracción de Tiempo de CPU (Figura 3) es una instrucción no privilegiada e incluye, por ejemplo, un código de funcionamiento 302a, 302b que designa la instrucción de Extracción de Tiempo de CPU; un registro general 304, cuyo contenido especifica un tercer operando utilizado por la instrucción; un registro de base 306, que puede ser cualquiera de dieciséis registros de propósito general de la unidad de procesamiento e incluye una porción de una dirección de un primer operando en almacenamiento utilizado por la instrucción; un valor de desplazamiento 308, que es, por ejemplo, un número binario de 12 bits sin asignar, añadido al contenido del registro 306 para proporcionar la dirección del primer operando en almacenamiento; un registro de base 310, que de nuevo es cualquiera de los dieciséis registros de propósito general existentes en la unidad de procesamiento e incluye una porción de la dirección de un segundo operando en almacenamiento, utilizado por la instrucción; y un valor de desplazamiento 312, que se añade al contenido del registro 310 con el fin de proporcionar la dirección del segundo operando en almacenamiento para la instrucción.
Además de los registros que se han descrito anteriormente, la instrucción de Extracción de Tiempo de CPU también utiliza, implícitamente, dos registros generales que no tienen que ser codificados en la instrucción, pero que se utilizan por la instrucción. Estos registros incluyen el registro general 0 y el registro general 1.
El registro general 0 (400; Figura 4a) incluye, por ejemplo, el tiempo transcurrido desde el último despacho de la tarea 402. Es la diferencia que resulta de restar del primer operando el valor del temporizador de CPU en curso, cuyo contenido incluye el valor del temporizador de TPU en el despacho de la tarea.
El registro general 1 (410; Figura 4b) incluye, por ejemplo, un valor del acumulador de tiempo de tarea cuando la tarea fue despachada; 412. Este es el contenido del segundo operando de la instrucción.
Si bien se han descrito en lo anterior ejemplos de registros, cada uno de los registros puede incluir más información
o menos, o información diferente. Por otra parte, cada uno de ellos puede incluir datos adicionales que no se requieren, necesariamente, en uno o más aspectos de la presente invención. La posición específica dentro de los registros para la información depende de la implementación y/o de la arquitectura.
Una realización de la lógica asociada con la instrucción de Extracción de Tiempo de CPU, se describe con referencia a la Figura 5. Como un ejemplo, esta instrucción es ejecutada por un procesador del entorno de tratamiento en representación de una aplicación de usuario no privilegiada (por ejemplo, en estado de problemas) que solicita la operación al referirse a una tarea particular. La instrucción de Extracción de Tiempo de CPU es una instrucción no privilegiada que no invoca o apela a un servicio de sistema operativo. Hace, sin embargo, supóngase en esta realización, que el temporizador de CPU (por ejemplo, un contador, registro, etc.) se ajuste cuando se despacha una tarea. En un ejemplo, el temporizador es ajustado por una instrucción de Ajuste de Temporizador de CPU (STP – “Set CPU Timer”), que es una instrucción privilegiada que se describe en la divulgación “z/Architecture: Principles of Operation” (z/Architecture: principios de funcionamiento), IBM® Publication Nº SA22-7832-04, septiembre de 2005. Puede también ser ajustado por cualesquiera otros medios. El temporizador se ajusta en un valor dado que representa un fragmento o segmento de tiempo especificado para la ejecución de la tarea (por ejemplo, entre 10 y 12 ms).
En respuesta a la instrucción de Extracción de Tiempo de CPU, se determina el valor en curso del temporizador de CPU; ETAPA 500. Por ejemplo, el temporizador se reduce a medida que el procesador se hace cargo de la tarea y, en respuesta a la ejecución de la instrucción de Extracción de Tiempo de CPU, se observa el valor del temporizador en ese instante. Esto incluye, por ejemplo, la lectura del registro que alberga el temporizador. En una realización, el valor del temporizador puede ser extraído en cualquier momento, incluso antes del final del segmento temporal proporcionado para la tarea y sin tener que esperar a la interrupción del temporizador.
El valor en curso del temporizador de CPU se resta entonces del primer operando de la instrucción; ETAPA 502. El primer operando representa el valor del temporizador de CPU en el momento en que fue despachada la tarea. Por ejemplo, cuando se despacha una tarea, el temporizador de CPU es ajustado en un valor escogido (por ejemplo, entre 10 y 12 ms) y ese valor es almacenado en un dispositivo de almacenamiento (por ejemplo, PSDATSAV). De esta forma, PSDATSAV – Temporizador de CPU en curso = tiempo de procesador transcurrido desde el último despacho de la tarea. Este valor se sitúa en el registro general 0; ETAPA 504.
Además de lo anterior, se extrae también información adicional, en una realización; ETAPA 506. Como un ejemplo, el segundo operando de la instrucción se coloca sin cambios en el registro general 1. Este segundo operando incluye, por ejemplo, una dirección de un bloque de control de tarea (por ejemplo, TCBTTUSD) que guarda la cantidad previamente utilizada del tiempo de CPU total para la tarea. Mediante la extracción y el emplazamiento de esta información en el registro general 1, la aplicación de usuario es capaz de determinar la cantidad total de tiempo de procesador utilizada hasta ese momento, al sumar los resultados del registro general 0 y el registro general 1.
También, en una realización, información ubicada en la posición del tercer operando de la instrucción reemplaza el contenido del registro general R3. Esta información incluye diversos tipos de información, incluyendo, pero sin limitarse a ellos, indicadores que designan información importante o deseada para la tarea, un factor de escala utilizable a la hora de ajustar el tiempo de procesador para propósitos de facturación, así como otros tipos de información.
En la Figura 6 se representa una información esquemática de las operaciones. B1D1 (600) hace referencia a un primer operando situado en el dispositivo de almacenamiento 602. Del contenido del primer operando 604 se resta el valor del temporizador 606 de CPU. La diferencia es almacenada en el registro general 0 (608). B2D2 (610) hace referencia a un segundo operando ubicado en el dispositivo de almacenamiento 612, cuyo contenido se sitúa sin cambios en el registro general 1 (614). Adicionalmente, R3 (616) se refiere a un tercer operando situado en el dispositivo de almacenamiento 618, cuyo contenido se sitúa sin cambios en el registro general R3 (620).
En una realización, las anteriores operaciones tienen lugar, todas ellas, dentro de la misma unidad de funcionamiento, sin la posibilidad de que sean interrumpidas. Al llevar a cabo estas operaciones automáticamente, los valores retienen sus significados.
Se ha descrito en detalle en lo anterior un equipo para determinar de forma eficiente el uso de recursos sin las actuaciones preliminares asociadas con los costosos servicios de sistema operativo y/o sin tener que utilizar operaciones privilegiadas. En particular, se ha descrito un equipo de Extracción de Tiempo de CPU que permite la determinación eficiente de la cantidad de tiempo de CPU consumida, sin las costosas actuaciones preliminares de apelar a un servicio de sistema operativo y/o sin tener que emitir instrucciones de Llamada a programa y/o de Retorno de programa. Este equipo hace posible que un programa de aplicación mida de forma precisa el tiempo de CPU requerido para llevar a cabo un fragmento de código particular sin las significativas actuaciones preliminares que han lastrado tradicionalmente tales mediciones. Las mediciones son útiles en muchos aspectos, incluyendo, aunque sin limitarse a ellos, el ajuste fino del código de aplicación y la facturación. El equipo permite, ventajosamente, a un programa de aplicación determinar de un modo eficiente la cantidad de tiempo de tarea utilizado en cualquier momento dado, y no solo al final de un segmento de tiempo. Esto permite al programa determinar efectivamente instantes de instrucción en el intervalo de los microsegundos o los nanosegundos, sin tener que esperar hasta que hayan transcurrido microsegundos.
Pueden incluirse uno o más aspectos de la presente invención en un artículo de fabricación (por ejemplo, uno o más productos de programa informático) que tiene, por ejemplo, un medio de soporte de información utilizable por una computadora. El medio de soporte de información tiene en su interior, por ejemplo, medios o lógica de código de programa legible por computadora (por ejemplo, instrucciones, código, comandos u órdenes, etc.) destinada a hacer posibles y facilitar las capacidades de la presente invención. El artículo de fabricación puede ser incluido formando parte de un sistema informático o venderse por separado.
Un ejemplo de un artículo de fabricación o de un producto de programa informático que incorpora uno o más aspectos de la presente invención se describe con referencia a la Figura 7. Un producto de programa informático 700 incluye, por ejemplo, uno o más medios de soporte de información 702 utilizables por una computadora y destinados a almacenar en ellos medios o lógica de código de programa 704 legible por computadora, a fin de hacer posibles y facilitar uno o más aspectos de la presente invención. El medio de soporte de información puede ser electrónico, magnético, óptico, electromagnético, por infrarrojos, o un sistema semiconductor (o aparato, o dispositivo), o bien un medio de propagación. Ejemplos de medio de soporte de información legible por computadora incluyen una memoria de semiconductor o de estado sólido, cinta magnética, un disquete informático extraíble, una memoria de acceso aleatorio (RAM –“random access memory”) una memoria de solo lectura (ROM –“read-only memory”), un disco magnético rígido y un disco óptico. Ejemplos de discos ópticos incluyen memoria de solo lectura de disco compacto (CD-ROM –“compact disk-read only memory”), disco compacto de lectura / escritura (CD-R/W – “compact disk-read / write”) y DVD.
Una secuencia de instrucciones de programa o un conjunto lógico de uno o más módulos definidos por uno o más medios o lógica de código de programa legible por computadora, dirigen el desempeño de uno o más aspectos de la presente invención.
Si bien se han propuesto en esta memoria uno o más ejemplos, estos son solo ejemplos. Son posibles muchas variaciones sin apartarse del espíritu de la presente invención. Por ejemplo, entornos de tratamiento distintos del ejemplo proporcionado en la presente memoria pueden incluir uno o más aspectos de la presente invención y/o beneficiarse de ellos. A modo de ejemplo, uno o más procesadores pueden ser distintos de los procesadores del IBM System ZTM y/o ejecutar sistemas operativos distintos del z/OS®. Por otra parte, no es necesario que el entorno esté basado en la z/Architecture, sino que, en lugar de ello, puede estar basado en otras arquitecturas, ofrecidas, por ejemplo, por Intel, Sun Microsystems y otras. Aún de forma adicional, la instrucción puede incluir otros registros o entidades distintos de los registros para designar información. Por otra parte, son posibles diferentes datos y/o ubicación dentro de los registros y/o entidades. Aún de manera adicional, el temporizador puede ser distinto de los contadores o registros. Es posible utilizar cualquier mecanismo para determinar el uso de los recursos. El término “temporizador” tiene intención de incluir un amplio abanico de mecanismos, incluyendo contadores y registros, aunque sin limitarse a estos. Por otro lado, si bien en las realizaciones de la presente memora el temporizador se reduce o decrementa, en otras realizaciones puede incrementarse y/o seguir un cierto patrón. Existen muchas otras variantes.
Además, un entorno puede incluir un emulador (por ejemplo, software u otros mecanismos de emulación) en el que se emula una arquitectura particular o un subconjunto de la misma. En semejante entorno, una o más funciones de emulación del emulador pueden implementar uno o más aspectos de la presente invención, incluso aunque una computadora que ejecute el emulador pueda tener una arquitectura diferente de las capacidades que se están emulando. Como un ejemplo, en el modo de emulación, la instrucción u operación específica que se está emulando es descodificada, y se construye una función de emulación apropiada para implementar la instrucción u operación individual.
En un entorno de emulación, una computadora anfitriona o principal incluye, por ejemplo, una memoria para almacenar instrucciones y datos; una unidad de búsqueda y recuperación de instrucciones, destinada a buscar y recuperar instrucciones en una memoria y, opcionalmente, a proporcionar un registro local de almacenamiento temporal para la instrucción recuperada; una unidad de descodificación de instrucciones, destinada a recibir la unidad de búsqueda y recuperación de instrucciones y a determinar el tipo de instrucciones que se han localizado y recuperado; y una unidad de ejecución de instrucciones, destinada a ejecutar las instrucciones. La ejecución puede incluir la carga de datos en un registro para memoria; el almacenamiento de los datos de vuelta en la memoria desde el registro; o la realización de algún tipo de operación aritmética o lógica, según se determina por la unidad de descodificación. En otro ejemplo, cada unidad se ha implementado en software, Por ejemplo, las operaciones que son realizadas por las unidades se implementan como una o más subrutinas dentro del software del emulador.
Por otra parte, puede utilizarse un sistema de tratamiento de datos adecuado para almacenar y/o ejecutar código de programa y que incluye al menos un procesador, conectado directa o indirectamente a elementos de memoria a través de un bus del sistema. Los elementos de memoria incluyen, por ejemplo, memoria local empleada durante la ejecución real del código de programa, dispositivo de almacenamiento masivo, y memoria caché que proporciona el almacenamiento temporal de al menos algún código de programa con el fin de reducir el número de veces que ha de recuperarse código desde el dispositivo de almacenamiento masivo durante la ejecución.
Pueden conectarse al sistema dispositivos de Entrada / Salida, o I/O (incluyendo teclados, dispositivos de presentación visual, dispositivos de apuntamiento o punteros, etc., aunque sin limitarse a estos), ya sea directamente, ya sea a través de la intervención de controladores de E/S. También pueden conectarse adaptadores de red al sistema al objeto de permitir que el sistema de tratamiento de datos quede conectado a otros sistemas de tratamiento de datos o a impresoras o dispositivos de almacenamiento remotos, a través de la intervención de redes privadas o públicas. Los Módems [moduladores-desmoduladores], los módems por cable y las tarjetas de Ethernet son solo unos pocos de los tipos disponibles de adaptadores de red.
Tal y como se ha utilizado en la presente memoria, el término “operando” no solo incluye y/o se refiere a operandos de una instrucción, sino también a operandos, así como a parámetros o argumentos que se hacen pasar entre funciones de programa, o a cualesquiera otros datos que se hagan pasar entre entidades. Por otra parte, una tarea incluye cualquier porción de código, incluyendo una aplicación o programa completo o cualquier porción del mismo.
Las capacidades de uno o más aspectos de la presente invención pueden llevarse a la práctica en software, en firmware o software incorporado permanentemente en hardware, en hardware o en alguna combinación de los mismos. Puede proporcionarse al menos un dispositivo de almacenamiento de programa, legible por una máquina y que incorpora al menos un programa de instrucciones ejecutables por la máquina con el fin de llevar a cabo las capacidades de la presente invención.
Claims (7)
- REIVINDICACIONES1.-Un método para medir el tiempo de procesamiento o tratamiento acumulado para tareas seleccionadas,mediante la ejecución de una instrucción de máquina EXTRACCIÓN DE TIEMPO DE CPU, dentro de un sistema informático que incluye un conjunto de 16 registros accesibles por la instrucción y un temporizador de CPU, de tal manera que el método comprende:obtener, para la ejecución de la instrucción de máquina EXTRACCIÓN DE TIEMPO DE CPU definida por unaarquitectura, la instrucción EXTRACCIÓN DE TIEMPO DE CPU que comprende un campo de código op (opcode) que identifica la instrucción, un primer campo de base (B1) para identificar un primer registro y un primer campo de desplazamiento (D1), un segundo campo de base (B2) para identificar un segundo registro y un segundo campo de desplazamiento (D2), y un tercer registro, de tal manera que el tercer registro guarda una dirección de un tercer operando; yejecutar la instrucción de máquina EXTRACCIÓN DE TIEMPO DE CPU obtenida, automáticamente en el estado no privilegiado, invocando o llamando a un servicio de sistema operativo, de tal manera que la ejecución comprende:determinar un valor en curso de un temporizador de CPU decremental;sumar el contenido del primer registro y un valor del primer campo de desplazamiento con el fin de formar una dirección de un primer operando en almacenamiento, de tal modo que el primer operando representa el valor del temporizador de CPU en el momento en que se despachó una tarea;buscar y recuperar, basándose en la dirección formada del primer operando, el primer operando, desde el dispositivo de almacenamiento;restar del primer operando buscado y recuperado el valor en curso determinado del temporizador de CPU, a fin de producir un primer resultado;almacenar el primer resultado en un cuarto registro, de tal modo que el primer resultado representa la cantidad del recurso utilizada por la tarea durante este intervalo de tiempo;sumar el contenido del segundo registro y un valor del segundo campo de desplazamiento a fin de formar una dirección de un segundo operando;buscar y recuperar, basándose en la dirección formada del segundo operando, el segundo operando desde el dispositivo de almacenamiento;almacenar el segundo operando en un quinto registro, de tal modo que el segundo operando comprende una cantidad de tiempo utilizada previamente para la tarea; de tal manera que el tiempo de CPU total utilizado hasta ese momento por la tarea se determina añadiendo el primer resultado almacenado en el cuarto registro a la cantidad de tiempo previamente utilizada para la tarea, almacenada en el quinto registro;buscar y recuperar, basándose en la dirección del quinto operando, el tercer operando desde el dispositivo de almacenamiento; yalmacenar el tercer operando recuperado en el tercer registro, de tal modo que el tercer operando comprende indicadores que designan información de tarea, de manera que la dirección del tercer operando en el tercer registro es sobrescrita por el tercer operando recuperado.
- 2.-El método de acuerdo con la reivindicación 1, en el cual el cuarto registro se define por la arquitectura de manera que sea el registro 0 de los registros 0-15, y el quinto registro es definido por la arquitectura de manera que sea el registro 1 de los registros 0-15.
- 3.-El método de acuerdo con la reivindicación 1, que comprende la etapa adicional consistente en que:antes de obtener, para su ejecución, la instrucción de máquina EXTRACCIÓN DE TIEMPO DE CPU, el temporizador de CPU se ajusta en un valor que representa una cantidad especificada de tiempo asignada para la ejecución de la tarea por el sistema informático.
- 4.-El método de acuerdo con la reivindicación 3, en el cual los indicadores del tercer operando recuperado contienen información que se utiliza para ajustar el tiempo de CPU para facturar a un usuario por una cantidad de tiempo de CPU empleada para la tarea.
- 5.-El método de acuerdo con la reivindicación 1, de tal manera que el método se lleva a cabo en una unidad de procesamiento de una arquitectura diferente que está emulando la ejecución de la instrucción de máquina EXTRACCIÓN DE TIEMPO DE CPU.
- 6.-Un sistema que comprende medios configurados para llevar a cabo todas las etapas del método de acuerdo con cualquier reivindicación de método precedente.
- 7.-Un programa informático que comprende instrucciones para llevar a cabo todas las etapas del método de acuerdo con cualquiera de las reivindicaciones precedentes de método, cuando dicho programa informático se ejecuta en un sistema informático.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US437220 | 2006-05-19 | ||
US11/437,220 US8117614B2 (en) | 2006-05-19 | 2006-05-19 | Extract CPU time facility |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2389894T3 true ES2389894T3 (es) | 2012-11-02 |
Family
ID=37758905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES08161018T Active ES2389894T3 (es) | 2006-05-19 | 2006-12-20 | Equipo de extracción de tiempo de CPU |
Country Status (12)
Country | Link |
---|---|
US (4) | US8117614B2 (es) |
EP (2) | EP1860567A1 (es) |
CN (1) | CN101443738B (es) |
CY (1) | CY1113092T1 (es) |
DK (1) | DK1980944T3 (es) |
ES (1) | ES2389894T3 (es) |
GB (1) | GB2438230A (es) |
PL (1) | PL1980944T3 (es) |
PT (1) | PT1980944E (es) |
SI (1) | SI1980944T1 (es) |
TW (1) | TWI447644B (es) |
WO (1) | WO2007134648A1 (es) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117614B2 (en) | 2006-05-19 | 2012-02-14 | International Business Machines Corporation | Extract CPU time facility |
EP2056198A4 (en) * | 2006-08-24 | 2010-08-18 | Netcleus Systems Corp | TASK PROCESSING DEVICE |
GB2473194A (en) * | 2009-09-02 | 2011-03-09 | 1E Ltd | Monitoring the performance of a computer based on the value of a net useful activity metric |
US8572357B2 (en) * | 2009-09-29 | 2013-10-29 | International Business Machines Corporation | Monitoring events and incrementing counters associated therewith absent taking an interrupt |
US9256426B2 (en) * | 2012-09-14 | 2016-02-09 | General Electric Company | Controlling total number of instructions executed to a desired number after iterations of monitoring for successively less number of instructions until a predetermined time period elapse |
KR101991687B1 (ko) | 2012-11-23 | 2019-06-24 | 삼성전자 주식회사 | 동적 라이브러리 프로파일링 방법, 이를 기록한 컴퓨터로 읽을 수 있는 기록 매체 및 동적 라이브러리 프로파일링 시스템 |
US9465659B2 (en) * | 2012-12-19 | 2016-10-11 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Dynamic task completion scaling of system resources for a battery operated device |
KR20140080058A (ko) * | 2012-12-20 | 2014-06-30 | 삼성전자주식회사 | 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말 |
US9658888B2 (en) * | 2013-08-05 | 2017-05-23 | International Business Machines Corporation | Thresholding task control blocks for staging and destaging |
US9916185B2 (en) | 2014-03-18 | 2018-03-13 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US9588774B2 (en) | 2014-03-18 | 2017-03-07 | International Business Machines Corporation | Common boot sequence for control utility able to be initialized in multiple architectures |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2253432A5 (es) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
AU7804381A (en) | 1981-10-13 | 1983-05-05 | International Business Machines Corp. | Method and apparatus for measurements of channel operation |
US4388688A (en) * | 1981-11-10 | 1983-06-14 | International Business Machines Corp. | Shared TOD clock modification bit |
US4497022A (en) * | 1982-10-19 | 1985-01-29 | International Business Machines Corporation | Method and apparatus for measurements of channel operation |
US4937780A (en) | 1986-05-30 | 1990-06-26 | Bull Nh Information Systems, Inc. | Single instruction updating of processing time field using software invisible working registers |
US5047928A (en) * | 1986-10-24 | 1991-09-10 | Wiedemer John D | Billing system for computer software |
US5072376A (en) * | 1988-06-10 | 1991-12-10 | Amdahl Corporation | Measuring utilization of processor shared by multiple system control programs |
JP2779032B2 (ja) * | 1990-01-23 | 1998-07-23 | 株式会社日立製作所 | 情報処理装置 |
JPH03226883A (ja) * | 1990-01-31 | 1991-10-07 | Mitsubishi Electric Corp | 制御プロセッサ |
JP3169597B2 (ja) | 1990-05-16 | 2001-05-28 | エヌイーシーソフト株式会社 | マルチタスク実行時間アカウント方法とその機構 |
US5615354A (en) | 1992-12-23 | 1997-03-25 | International Business Machines Corporation | Method and system for controlling references to system storage by overriding values |
US5758144A (en) | 1994-06-24 | 1998-05-26 | International Business Machines Corporation | Database execution cost and system performance estimator |
US5696702A (en) * | 1995-04-17 | 1997-12-09 | Skinner; Gary R. | Time and work tracker |
US5963914A (en) * | 1995-04-17 | 1999-10-05 | Skinner; Gary R. | Network time and work tracker |
JPH08292956A (ja) | 1995-04-20 | 1996-11-05 | Mitsubishi Electric Corp | データベース管理装置及びデータベース管理方法 |
WO1998052122A1 (en) | 1997-05-14 | 1998-11-19 | Compuware Corporation | Accurate profile and timing information for multitasking systems |
US6128710A (en) * | 1997-05-28 | 2000-10-03 | International Business Machines Corporation | Method utilizing a set of blocking-symbol resource-manipulation instructions for protecting the integrity of data in noncontiguous data objects of resources in a shared memory of a multiple processor computer system |
US5937199A (en) * | 1997-06-03 | 1999-08-10 | International Business Machines Corporation | User programmable interrupt mask with timeout for enhanced resource locking efficiency |
US6385637B1 (en) | 1997-08-21 | 2002-05-07 | Rockwell Science Center, Inc. | Periodic process timer |
US6954922B2 (en) * | 1998-04-29 | 2005-10-11 | Sun Microsystems, Inc. | Method apparatus and article of manufacture for time profiling multi-threaded programs |
US6032248A (en) | 1998-04-29 | 2000-02-29 | Atmel Corporation | Microcontroller including a single memory module having a data memory sector and a code memory sector and supporting simultaneous read/write access to both sectors |
US6438704B1 (en) * | 1999-03-25 | 2002-08-20 | International Business Machines Corporation | System and method for scheduling use of system resources among a plurality of limited users |
US6247170B1 (en) | 1999-05-21 | 2001-06-12 | Bull Hn Information Systems Inc. | Method and data processing system for providing subroutine level instrumentation statistics |
KR100613201B1 (ko) * | 2000-08-28 | 2006-08-18 | 마이크로코넥트 엘엘씨 | 씨피유 사용량 측정 방법 |
US7272832B2 (en) * | 2001-10-25 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform |
TW538335B (en) | 2001-12-24 | 2003-06-21 | Winbond Electronics Corp | Method and device for speeding up reading and writing the register for the processor |
US7243145B1 (en) * | 2002-09-30 | 2007-07-10 | Electronic Data Systems Corporation | Generation of computer resource utilization data per computer application |
US7320013B2 (en) * | 2002-12-12 | 2008-01-15 | Adaptec, Inc. | Method and apparatus for aligning operands for a processor |
US8484643B2 (en) | 2003-03-31 | 2013-07-09 | Fujitsu Limited | CPU usage time counting method and job control system using this CPU usage time |
US20040267548A1 (en) * | 2003-06-25 | 2004-12-30 | Jones James O. | Workload profiling in computers |
US6925424B2 (en) * | 2003-10-16 | 2005-08-02 | International Business Machines Corporation | Method, apparatus and computer program product for efficient per thread performance information |
US7426731B2 (en) * | 2004-03-22 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Determining processor usage by a thread |
US7672983B2 (en) * | 2005-12-19 | 2010-03-02 | Sun Microsystems, Inc. | Method and apparatus for tracking activity of a garbage collector with a plurality of threads that operate concurrently with an application program |
US8020164B2 (en) * | 2005-12-22 | 2011-09-13 | International Business Machines Corporation | System for determining and reporting benefits of borrowed computing resources in a partitioned environment |
US8117614B2 (en) | 2006-05-19 | 2012-02-14 | International Business Machines Corporation | Extract CPU time facility |
US20090089123A1 (en) * | 2007-06-29 | 2009-04-02 | Sylvia Delcheva | Method and a Tool for Performance Measurement of a Business Scenario Step Executed by a Single User |
-
2006
- 2006-05-19 US US11/437,220 patent/US8117614B2/en active Active
- 2006-12-20 ES ES08161018T patent/ES2389894T3/es active Active
- 2006-12-20 PL PL08161018T patent/PL1980944T3/pl unknown
- 2006-12-20 EP EP06126643A patent/EP1860567A1/en not_active Withdrawn
- 2006-12-20 EP EP08161018A patent/EP1980944B1/en active Active
- 2006-12-20 SI SI200631418T patent/SI1980944T1/sl unknown
- 2006-12-20 CN CN2006800546048A patent/CN101443738B/zh active Active
- 2006-12-20 PT PT08161018T patent/PT1980944E/pt unknown
- 2006-12-20 WO PCT/EP2006/069992 patent/WO2007134648A1/en active Application Filing
- 2006-12-20 DK DK08161018.0T patent/DK1980944T3/da active
- 2006-12-21 GB GB0625722A patent/GB2438230A/en not_active Withdrawn
-
2007
- 2007-05-08 TW TW096116339A patent/TWI447644B/zh active
-
2012
- 2012-01-10 US US13/347,223 patent/US8516485B2/en active Active
- 2012-09-05 CY CY20121100799T patent/CY1113092T1/el unknown
-
2013
- 2013-07-29 US US13/953,206 patent/US9047078B2/en active Active
-
2015
- 2015-06-01 US US14/726,772 patent/US10572301B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2007134648A1 (en) | 2007-11-29 |
TWI447644B (zh) | 2014-08-01 |
CN101443738A (zh) | 2009-05-27 |
US20120109622A1 (en) | 2012-05-03 |
SI1980944T1 (sl) | 2012-11-30 |
TW200821921A (en) | 2008-05-16 |
EP1860567A1 (en) | 2007-11-28 |
GB0625722D0 (en) | 2007-02-07 |
CY1113092T1 (el) | 2016-04-13 |
US20130311757A1 (en) | 2013-11-21 |
DK1980944T3 (da) | 2012-09-10 |
US8117614B2 (en) | 2012-02-14 |
US20070271566A1 (en) | 2007-11-22 |
US10572301B2 (en) | 2020-02-25 |
US8516485B2 (en) | 2013-08-20 |
EP1980944A3 (en) | 2009-01-14 |
CN101443738B (zh) | 2012-05-02 |
GB2438230A (en) | 2007-11-21 |
PL1980944T3 (pl) | 2012-11-30 |
EP1980944A2 (en) | 2008-10-15 |
EP1980944B1 (en) | 2012-08-15 |
US9047078B2 (en) | 2015-06-02 |
PT1980944E (pt) | 2012-09-20 |
US20150261565A1 (en) | 2015-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2389894T3 (es) | Equipo de extracción de tiempo de CPU | |
US9092215B2 (en) | Mapping between registers used by multiple instruction sets | |
JP5778283B2 (ja) | データ処理装置のデバッグ処理 | |
US11755442B2 (en) | Apparatus and method for multithreading-aware performance monitoring events | |
US20120117564A1 (en) | Guest timer facility in a virtualized processing system | |
JP2008518367A (ja) | 仮想マシン環境におけるタイマ・オフセット機構 | |
WO2000023875A1 (en) | System with wide operand architecture, and method | |
US8489867B2 (en) | Monitoring events and incrementing counters associated therewith absent taking an interrupt | |
US11210103B2 (en) | Execution of additional instructions prior to a first instruction in an interruptible or non-interruptible manner as specified in an instruction field | |
US20210208990A1 (en) | Apparatus and method for generating performance monitoring metrics | |
WO2014131319A1 (zh) | 一种操作系统进程识别跟踪及信息获取的方法和装置 | |
Chow | MIPS-X instruction set and programmer's manual | |
WO2022211882A1 (en) | Methods, systems, and apparatuses for precise last branch record event logging | |
US20230315453A1 (en) | Forward conditional branch event for profile-guided-optimization (pgo) | |
GB2451344A (en) | Measuring resource usage using a register based elapsed time function | |
US8713289B2 (en) | Efficiently emulating computer architecture condition code settings without executing branch instructions | |
JPH0192840A (ja) | データ処理装置 | |
Giesen León | Analysis of Perfomance Monitoring Counter support and implementation of Performance Application Programming Interface (PAPI) on an automotive chip | |
Chang | 32-bit 5-stage RISC pipeline processor with 2-Bit dynamic branch prediction functionality |