IP Library Granted Patent US 7,340,629
Granted Patent B2
US 7,340,629 · App. 10/607,459 · Granted Mar 4, 2008

Method and system for application-based normalization of processor clocks in a multiprocessor environment

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,340,629
App. No.
10/607,459
Filed
Jun 26, 2003
Granted
Mar 4, 2008
Kind
B2
Art Unit
2116
USPC
713/400
Abstract

A method is presented for enabling application-level software to normalize processor clock values within a multiprocessor data processing system. A first processor number associated with a first processor is obtained such that the first processor executes one or more instructions for obtaining the first processor number. Subsequent to obtaining the first processor number, a processor clock value is obtained such that the processor clock value is associated with a processor that executes one or more instructions for obtaining the processor clock value. Subsequent to obtaining the processor clock value, a second processor number associated with a second processor is obtained such that the second processor executes one or more instructions for obtaining the second processor number. If the first processor number and the second processor number are equal, then the first processor number is used to retrieve a compensation value for a normalization operation on the processor clock value.

Claims (47)

1. A method for processing a temporal value within a multiprocessor data processing system, the method comprising:

obtaining a first processor number that is associated with a first processor within the multiprocessor data processing system, wherein the first processor executes one or more instructions for the obtaining the first processor number;

obtaining, subsequent to the obtaining the first processor number, a first processor clock value that is associated with the first processor that executes one or more instructions for the obtaining the first processor clock value;

obtaining, subsequent to the obtaining the first processor clock value, a second processor number that is associated with a second processor within the multiprocessor data processing system, wherein the second processor executes one or more instructions for the step of obtaining the second processor number; and,

associating the first processor number with the first processor clock value after determining that the first processor number is equal to the second processor number.

2. The method of claim 1 further comprising:

employing the first processor number along with the first processor clock value in a processor clock normalization operation after determining that the first processor number is equal to the second processor number.

3. The method of claim 1 further comprising:

retrieving a processor clock compensation value that is associated with the first processor that is identified by the first processor number after determining that the first processor number is equal to the second processor number; and

arithmetically combining the processor clock compensation value with the first processor clock value.

4. The method of claim 3 wherein the processor clock compensation value indicates a temporal difference between the first processor and another processor within the multiprocessor data processing system that is characterized as a primary processor.

5. The method of claim 1 wherein the obtaining the first processor number is performed by application-level software.

6. The method of claim 5 wherein the obtaining the first processor number further comprises:

reading the first processor number from a register within the first processor.

7. The method of claim 6 wherein the register is a special purpose register for storing a processor number associated with a processor in a multiprocessor data processing system.

8. The method of claim 6 wherein the register has been reserved for storing a processor number associated with a processor in a multiprocessor data processing system.

9. The method of claim 5 wherein the obtaining the first processor number further comprises:

reading a memory pointer from a register within the first processor, wherein the register has been reserved for storing a memory pointer to a memory location that stores a processor number associated with a processor in a multiprocessor data processing system;

using the memory pointer to read the first processor number from the memory location.

10. The method of claim 5 wherein the obtaining the first processor number further comprises:

reading a memory pointer from a register within the first processor, wherein the register has been reserved for storing a memory pointer to a memory location at which a data structure is stored that contains a processor number associated with a processor in a multiprocessor data processing system;

using the memory pointer to read the first processor number from the data structure.

11. The method of claim 1 further comprising:

computing processor clock compensation values for a set of processors in the multiprocessor system by application-level software.

12. The method of claim 11 further comprising:

calculating a processor clock compensation value for the first processor as a difference between a clock value associated with a processor clock on the first processor and a clock value associated with a processor clock on a primary processor, wherein the primary processor is a processor within the multiprocessor data processing system that is characterized as a primary processor.

13. The method of claim 12 further comprising:

requesting execution on the first processor; reading the clock value associated with the processor clock on the first processor, wherein the first processor executes one or more instructions for the step of reading the clock value associated with the processor clock on the first processor;

requesting execution on the primary processor; and

reading the clock value associated with the processor clock on the primary processor, wherein the primary processor executes one or more instructions for the reading the clock value associated with the processor clock on the primary processor.

14. The method of claim 12 wherein the clock value associated with a processor clock on the first processor and the clock value associated with a processor clock on the primary processor are average clock values that have been computed from multiple respective readings of a processor clock on the first processor and a processor clock on the primary processor.

15. A computer program product on a tangible computer readable medium for use in a multiprocessor data processing system for processing a temporal value, the computer program product comprising:

instructions for obtaining a first processor number that is associated with a first processor within the multiprocessor data processing system, wherein the first processor executes one or more instructions for obtaining the first processor number;

instructions for obtaining, subsequent to obtaining the first processor number, a first processor clock value that is associated with a processor that executes one or more instructions for obtaining the first processor clock value;

instructions for obtaining, subsequent to obtaining the first processor clock value, a second processor number that is associated with a second processor within the multiprocessor data processing system, wherein the second processor executes one or more instructions for obtaining the second processor number; and

instructions for associating the first processor number with the first processor clock value after determining that the first processor number is equal to the second processor number.

16. The computer program product of claim 15 further comprising:

instructions for employing the first processor number along with the first processor clock value in a processor clock normalization operation after determining that the first processor number is equal to the second processor number.

17. The computer program product of claim 15 further comprising:

instructions for retrieving a processor clock compensation value that is associated with a processor that is identified by the first processor number after determining that the first processor number is equal to the second processor number; and

instructions for arithmetically combining the processor clock compensation value with the first processor clock value.

18. The computer program product of claim 17 wherein the processor clock compensation value indicates a temporal difference between the processor and another processor within the multiprocessor data processing system that is characterized as a primary processor.

19. An apparatus for processing a temporal value in a multiprocessor data processing system, the apparatus comprising:

means for obtaining a first processor number that is associated with a first processor within the multiprocessor data processing system, wherein the first processor operates the means for obtaining the first processor number;

means for obtaining, subsequent to obtaining the first processor number, a first processor clock value that is associated with a processor that operates the means for obtaining the processor clock value;

means for obtaining, subsequent to obtaining the first processor clock value, a second processor number that is associated with a second processor within the multiprocessor data processing system, wherein the second processor operates the means for obtaining the second processor number; and

means for associating the first processor number with the first processor clock value after determining that the first processor number is equal to the second processor number.

Assignments (3)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044127/0735 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2011
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GOOGLE INC.
Reel/Frame 026894/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2003
From: KATES, CLIVE RICHARD; LEVINE, FRANK ELIOT; URQUHART, ROBERT JOHN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014252/0243 →
Continuity (1)
Related Publication 20040268172A1 · Dec 30, 2004