← Back to Patent Explorer
US5261106A Expired / Lapsed US ⏱️ 0.0 years remaining

Semaphore bypass

Assignee: S-MOS SYSTEMS
•
Filing: 1991-12-13
•
Granted: 1993-11-09
•
Expires: 2011-12-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides a test and set bypass mechanism which allows access to a semaphore while eliminating memory bandwidth degradation due to the traditional "spin-locking" problem. Generally, a storage and comparison structure in a processor, such as a content addressable memory (CAM), is used to store the address of the semaphore whenever it is requested. Thus, the process/processor, or other processors in a multiprocessor system, then need only check to see if the semaphore address is present in its respective storage and comparison structure. Consequently, there is no need to make multiple memory transactions for failed access of the semaphore, and hence, effective memory bandwidth is increased.

Inventors

  • 👤 Derek J. Lentz
  • 👤 Te-Li Lau

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 23:00
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F9/526; G09; G09F; G09F9/00; G09F9/46; G06F2209/00; G06F2209/52; G06F2209/521

Claims Analysis

Total Claims: 36
Claim 1
Independent Claim 122 words
A computer-based system which improves the performance of controlling access to shared resources, the computer-based system comprising: (a) a bus connected to one or more shared resources; (b) a storage compare unit, coupled to a requesting device adapted to access said one or more shared resources, adapted to store addresses of one or more semaphores associated with said shared resources that are locked; and (c) a control unit connected to determine whether said one or more shared resources are locked by evaluating the contents of said storage compare unit, and connected to control the flow of information onto said bus from said requesting device; wherein said storage compare unit and said control unit are located between said bus and said requesting device.
Claim 2
Dependent Claim 122 words
A computer-based system which improves the performance of controlling access to shared resources, the computer-based system comprising: (a) a bus connected to one or more shared resources; (b) a storage compare unit, coupled to a requesting device adapted to access said one or more shared resources, adapted to store addresses of one or more semaphores associated with said shared resources that are locked; and (c) a control unit connected to determine whether said one or more shared resources are locked by evaluating the contents of said storage compare unit, and connected to control the flow of information onto said bus from said requesting device; wherein said storage compare unit and said control unit are located between said bus and said requesting device.
Claim 3
Dependent Claim 15 words
The system of claim 1, wherein the system is located within a central processing unit.
Claim 4
Dependent Claim 16 words
The system of claim 1, wherein said storage compare unit comprises a content addressable memory (CAM).
Claim 5
Dependent Claim 14 words
The system of claim 1, wherein said one or more semaphores are counting semaphores.
Claim 6
Dependent Claim 25 words
The system of claim 1, further comprising a snoop address generator, said snoop address generator connected to snoop said bus for writes to memory locations.
Claim 7
Dependent Claim 39 words
The system of claim 5, further comprises a share signal, said share signal connected to said snoop generator to prevent the requesting devices from clearing an entry in said storage compare unit during a test and set memory transaction.
Claim 8
Dependent Claim 20 words
The system of claim 1, wherein a valid bit is associated with each storage location in said storage compare unit.
Claim 9
Dependent Claim 44 words
The system of claim 1, wherein said control unit is adapted to allow information to flow onto said bus if said shared resource has not been locked, and to stop the flow of information onto said bus if said shared resource has been locked.
Claim 10
Independent Claim 124 words
A method which improves the performance of controlling access to shared resources, comprising the steps of: (1) comparing, in response to a request for access to a shared resource which is protected by a semaphore, the address of a requested semaphore with the contents of a storage compare unit, said storage compare unit being interconnected between a requesting device and a bus; (2) storing the address of said semaphore associated with said shared resource in said storage compare unit if it is has not already been stored in said storage compare unit as determined by step (1); and (3) sending a semaphore failed signal to the source of said request for said semaphore if said semaphore address is resident in said storage compare unit.
Claim 11
Independent Claim 124 words
A method which improves the performance of controlling access to shared resources, comprising the steps of: (1) comparing, in response to a request for access to a shared resource which is protected by a semaphore, the address of a requested semaphore with the contents of a storage compare unit, said storage compare unit being interconnected between a requesting device and a bus; (2) storing the address of said semaphore associated with said shared resource in said storage compare unit if it is has not already been stored in said storage compare unit as determined by step (1); and (3) sending a semaphore failed signal to the source of said request for said semaphore if said semaphore address is resident in said storage compare unit.
Claim 12
Dependent Claim 35 words
The method of claim 8, further comprising a step of generating a snoop address corresponding to addresses on a bus, wherein said snoop address is used to clear an address in said storage compare unit.
Claim 13
Dependent Claim 27 words
The method of claim 9, further comprising a step of releasing said semaphore and clearing said storage compare unit in response to a write to said semaphore.
Claim 14
Dependent Claim 140 words
A computer-based method which improves the performance of controlling access to shared resources, comprising the steps of: (1) testing a storage compare unit for an address of a semaphore which is associated with a memory location, said storage compare unit directly coupled between a requesting device and a bus; (2) sending a failed signal if said semaphore address is in said storage compare unit; (3) reading the contents of said semaphore if said semaphore address is not in said storage compare unit, and (a) if said semaphore is locked, then return a locked signal to said requesting device and store said semaphore address in said storage compare unit; or (b) if said semaphore is not locked, then return the contents of said semaphore to said requesting device, store said semaphore address in said storage compare unit, and lock said semaphore.
Claim 15
Dependent Claim 140 words
A computer-based method which improves the performance of controlling access to shared resources, comprising the steps of: (1) testing a storage compare unit for an address of a semaphore which is associated with a memory location, said storage compare unit directly coupled between a requesting device and a bus; (2) sending a failed signal if said semaphore address is in said storage compare unit; (3) reading the contents of said semaphore if said semaphore address is not in said storage compare unit, and (a) if said semaphore is locked, then return a locked signal to said requesting device and store said semaphore address in said storage compare unit; or (b) if said semaphore is not locked, then return the contents of said semaphore to said requesting device, store said semaphore address in said storage compare unit, and lock said semaphore.
Claim 16
Dependent Claim 27 words
The method of claim 12, wherein step (3)(a) further comprises a step of periodically checking said storage compare unit to determine whether said semaphore has been unlocked.
Claim 17
Dependent Claim 29 words
The method of claim 12, further comprises using a share signal to prevent the requesting units from clearing said storage compare entry during a test and set memory transaction.
Claim 18
Dependent Claim 23 words
The method of claim 12, wherein each individual requesting device autonomously prevents clearing said storage compare device during a test and set operation.
Claim 19
Dependent Claim 22 words
The computer-based method of claim 12, wherein step (3)(b) further comprises the step of accessing the memory location protected by said semaphore.
Claim 20
Dependent Claim 19 words
The computer-based method of claim 12, further comprising the step of periodically repeating steps (1) through (3) as required.
Claim 21
Dependent Claim 43 words
The computer-based method of claim 12, further comprising the step of snooping said bus for memory requests in order to determine whether the address from one of said semaphores stored in said storage compare unit should be removed from said storage compare unit.
Claim 22
Independent Claim 113 words
A method for accessing a shared resource, comprising the steps of: (1) issuing, from a requesting device, a test-and-set instruction which attempts to access the shared resource protected by a semaphore; (2) checking a local storage compare unit for an address of said semaphore, and returning a failed signal to said requesting device if said address is present, wherein said storage compare unit is directly coupled to said requesting device; and (3) if said address was not already present, then (i) enter said address of said semaphore into said local storage compare unit; (ii) fetch said semaphore from the shared resource and returning it to said requesting device; and (iii) lock said semaphore.
Claim 23
Independent Claim 113 words
A method for accessing a shared resource, comprising the steps of: (1) issuing, from a requesting device, a test-and-set instruction which attempts to access the shared resource protected by a semaphore; (2) checking a local storage compare unit for an address of said semaphore, and returning a failed signal to said requesting device if said address is present, wherein said storage compare unit is directly coupled to said requesting device; and (3) if said address was not already present, then (i) enter said address of said semaphore into said local storage compare unit; (ii) fetch said semaphore from the shared resource and returning it to said requesting device; and (iii) lock said semaphore.
Claim 24
Dependent Claim 31 words
The method of claim 19, wherein said local storage compare unit is cleared if a write to the resource, other then a write from a test and set instruction, is attempted.
Claim 25
Dependent Claim 122 words
A computer-based system which improves the performance of controlling access to shared resources, the computer-based system comprising: one or more requesting devices connected to the shared resources via a bus, wherein at least one of said requesting devices is directly coupled to: (a) a storage compare unit adapted to store the addresses of one or more semaphores which are associated with the shared resources that are locked, and (b) a control unit connected to determine whether the shared resources are locked by evaluating the contents of said storage compare unit, and connected to control flow of information onto said bus from said requesting devices, wherein said storage compare unit and said control unit are located between said bus and said requesting device.
Claim 26
Dependent Claim 122 words
A computer-based system which improves the performance of controlling access to shared resources, the computer-based system comprising: one or more requesting devices connected to the shared resources via a bus, wherein at least one of said requesting devices is directly coupled to: (a) a storage compare unit adapted to store the addresses of one or more semaphores which are associated with the shared resources that are locked, and (b) a control unit connected to determine whether the shared resources are locked by evaluating the contents of said storage compare unit, and connected to control flow of information onto said bus from said requesting devices, wherein said storage compare unit and said control unit are located between said bus and said requesting device.
Claim 27
Dependent Claim 15 words
The system of claim 21, wherein said storage compare unit is a content addressable memory.
Claim 28
Dependent Claim 40 words
The system of claim 21, further comprising a snoop address generator coupled to said storage compare device, said control unit, and said bus, wherein said snoop address generator is adapted to snoop said bus for writes to the shared resources.
Claim 29
Dependent Claim 25 words
The system of claim 21, wherein the size of said semaphore is equal to a minimum distinct address that can be sent onto said bus.
Claim 30
Dependent Claim 172 words
In a system having a plurality of requesting devices which are connected to shared resources via a bus, wherein at least one of the requesting devices has an associated storage compare unit, a computer-based method which improves the performance of controlling access to the shared resources comprises the steps of: (1) testing if an address of a semaphore associated with a requested shared resource is in the storage compare unit associated with a requesting device, wherein said storage compare unit is located between said requesting device and the bus; (2) if said address of said semaphore is not in said storage compare unit, then the system performs the steps of: (a) entering said address of said semaphore into said storage compare unit, (b) fetching said semaphore from memory and returning said semaphore to said requesting device, and (c) setting said semaphore to a locked value; and (3) if said address of said semaphore is in said storage compare unit then return a failure signal to said requesting device without accessing the bus.
Claim 31
Dependent Claim 172 words
In a system having a plurality of requesting devices which are connected to shared resources via a bus, wherein at least one of the requesting devices has an associated storage compare unit, a computer-based method which improves the performance of controlling access to the shared resources comprises the steps of: (1) testing if an address of a semaphore associated with a requested shared resource is in the storage compare unit associated with a requesting device, wherein said storage compare unit is located between said requesting device and the bus; (2) if said address of said semaphore is not in said storage compare unit, then the system performs the steps of: (a) entering said address of said semaphore into said storage compare unit, (b) fetching said semaphore from memory and returning said semaphore to said requesting device, and (c) setting said semaphore to a locked value; and (3) if said address of said semaphore is in said storage compare unit then return a failure signal to said requesting device without accessing the bus.
Claim 32
Dependent Claim 20 words
The method of claim 25, further comprising the step of periodically repeating all steps in order to access said semaphore.
Claim 33
Dependent Claim 35 words
The method of claim 25, further comprising the step of removing one of said addresses associated with said semaphores from said storage compare unit when said storage compare unit is full using a least-recently-used algorithm.
Claim 34
Dependent Claim 26 words
The method of claim 25, further comprising the step of removing said address of said semaphore from said storage compare unit by writing to said semaphore.
Claim 35
Dependent Claim 31 words
The method of claim 25, further comprising the steps of releasing said semaphore and clearing said storage compare unit in response to a write to said shared resource holding said semaphore.
Claim 36
Dependent Claim 70 words
The method of claim 25, further comprising the steps of: snooping said bus for a write request from one of the requesting devices and generating a snoop address from said write request; and determining whether said write request is from a "test and set" instruction, and if not, then comparing said snoop address with the contents of said storage compare unit and deleting said entry if there is a match.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-11-08 1997-05-10 1997-11-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-11-08 2001-05-10 2001-11-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-11-08 2005-05-10 2005-11-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag