IP Library › Granted Patent US 7,428,732
Granted Patent B2
US 7,428,732 · App. 10/001,961 · Granted Sep 23, 2008

Method and apparatus for controlling access to shared resources in an environment with multiple logical processors

Assignee: Intel 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,428,732
App. No.
10/001,961
Granted
Sep 23, 2008
Kind
B2
Abstract

The disclosure relates to a control mechanism for controlling access by multiple logical processors to shared resources on a common microchip. The processors attempt to reserve exclusive use of needed resources by updating a resource descriptor. The resource descriptor describes which logical processors have exclusive use of which resources. In order to update the resource descriptor, a logical processor must first obtain exclusive access to the resource descriptor by updating a semaphore.

Claims (67)

1. A method comprising:

for a first logical processor, obtaining a lock on a semaphore controlling exclusive access to a resource descriptor, the resource descriptor describing a usage allocation of resources shared among a plurality of logical processors wherein the lock is obtained by a semaphore lock routine comprising writing an identifier of the logical processor and a lock value into a semaphore register;

obtaining exclusive access for said first logical processor to said resource descriptor if said lock is obtained;

determining which shared resources the first logical processor needs;

generating resource reservation data identifying the needed resource;

applying the resource reservation data to the resource descriptor;

querying said resource descriptor to determine whether resources needed by said first logical processor are available;

if resources needed by said first logical processor are available, updating said resource descriptor to reserve said resources for exclusive use by said first logical processor; and

releasing, utilizing a semaphore lock release routine to pass the identifier of the logical processor and a lock value, said exclusive access for said first logical processor to said resource descriptor.

2. The method of claim 1 , further comprising:

if said resources needed by said first logical processor are not available, releasing said exclusive access for said first logical processor to said resource descriptor.

3. The method of claim 1 , further comprising, after the releasing, accessing a shared resource by said first logical processor.

4. The method of claim 1 , further comprising:

after exclusive access for said first logical processor to said resource descriptor is released, obtaining exclusive access for a second logical processor to said resource descriptor;

querying said resource descriptor to determine whether resources needed by said second logical processor are available;

if resources needed by said second logical processor are available, updating said resource descriptor to reserve said resources for the exclusive use of said second logical processor; and

releasing said exclusive access for said second logical processor to said resource descriptor.

5. The method of claim 4 further comprising:

if said resources needed by said second logical processor are not available, releasing said exclusive access for said second logical processor to said resource descriptor.

6. An apparatus comprising:

a plurality of logical processors to generate resource reservation data identifying a plurality of resources shared by said plurality of logical processors;

a resource descriptor to utilize said resource reservation data to identify a status of said shared resources; and

a semaphore comprising a semaphore register to reserve exclusive access for one of said plurality of logical processors to said resource descriptor, wherein a semaphore lock routine writes an identifier of one of the plurality of logical processors and a lock value into the semaphore register, and the plurality of logical processors, the resource descriptor, and semaphore are configured to:

obtain a lock on the semaphore controlling exclusive access to the resource descriptor;

obtain exclusive access for a first logical processor of said plurality of logical processors to said resource descriptor if said lock is obtained;

determine which shared resources the first logical processor needs;

generate resource reservation data identifying the needed resource;

apply the resource reservation data to the resource descriptor;

query said resource descriptor to determine whether resources needed by said first logical processor are available;

if resources needed by said first logical processor are available, update said resource descriptor to reserve said resources for exclusive use by said first logical processor; and

release, utilizing a semaphore lock release routine to pass the identifier of the logical processor and a lock value, said exclusive access for said first logical processor to said resource descriptor.

7. The apparatus of claim 6 , further comprising logic to:

cause a first logical processor to update said semaphore to reserve exclusive access to said resource descriptor;

cause said first logical processor to update said resource descriptor to reserve exclusive use of at least a first resource of said shared resources; and

subsequently cause said first logical processor to update said semaphore to release said exclusive access.

8. The apparatus of claim 7 , said logic to further:

cause a second logical processor to update said semaphore to reserve exclusive access to said resource descriptor;

cause said second logical processor to update said resource descriptor to reserve exclusive use of at least a second resource of said shared resources; and

subsequently cause said second logical processor to update said semaphore to release said exclusive access;

wherein after reserving exclusive use of said first and second resources, respectively, said first and second logical processors concurrently use said first and second resources, respectively.

9. A system comprising:

a plurality of logical processors to generate resource reservation data identifying;

a plurality of resources to be shared by said logical processors;

a resource descriptor utilize said resource reservation data to identify a status of said shared resources and to control access to said resources;

a semaphore register to reserve exclusive access for one of said plurality of logical processors to said resource descriptor to said resource descriptor, wherein a semaphore lock routine is to write an identifier of one of the plurality of logical processors and a lock value into the semaphore register; and

access control logic to allocate one or more of said shared resources only when granted exclusive access to said resource descriptor by said semaphore register; and the plurality of logical processors, a plurality of resources, the resource descriptor, the semaphore register, and the access control logic are configured to:

obtain a lock on the semaphore controlling exclusive access to the resource descriptor;

obtain exclusive access for a first logical processor of said plurality of logical processors to said resource descriptor if said lock is obtained;

determine which shared resources the first logical processor needs;

generate resource reservation data identifying the needed resource;

apply the resource reservation data to the resource descriptor;

query said resource descriptor to determine whether resources needed by said first logical processor are available;

if resources needed by said first logical processor are available, update said resource descriptor to reserve said resources for exclusive use by said first logical processor; and

release, utilizing a semaphore lock release routine to pass the identifier of the logical processor and a lock value, said exclusive access for said first logical processor to said resource descriptor.

10. The system of claim 9 , wherein said resource descriptor includes a plurality of fields each to associate a resource with a logical processor identifier.

11. The system of claim 9 , wherein said access control logic is to obtain a lock on said semaphore register to reserve exclusive access to said resource descriptor,

determine whether a needed resource is available based on said resource descriptor,

if so, reserve the resource, and

release the lock on the semaphore register.

12. The system of claim 11 , wherein said access control logic is further to reserve one or more resources by assigning a logical processor identifier to a corresponding resource.

13. A system comprising:

a plurality of logical processors;

a plurality of resources to be shared by said logical processors;

a resource descriptor to control access to said resources;

a semaphore register to reserve exclusive access for one of said plurality of logical processors to said resource descriptor; and

access control logic to allocate one or more of said shared resources only when granted exclusive access to said resource descriptor by said semaphore register; and

unlock logic to prevent a failing logical processor from retaining a lock on the semaphore register, wherein the unlock logic includes causing a logical processor different from the failing logical processor to call a semaphore lock release routine and pass the routine the identifier of the failing logical processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2002
From: SANDRI, JASON G.; TU, STEVEN J.; DAVILA, ORLANDO R.
To: INTEL CORPORATION
Reel/Frame 012497/0624 →
Continuity (1)
Related Publication 20030105796A1 · Jun 5, 2003