Claims
- 1. In a multi-processor application system including, one or more shared resources each controlled by a unique semaphore, a semaphore management subsystem comprising:
a storage means having a plurality of registers each associated with a processor (thread) requesting a semaphore, said register including a first field for storing a unique Semaphore Value (Sem_Val) and a second field for indicating the locked status of the identified Sem_Val; a first logic circuit responsive to a semaphore lock request from a thread which includes at least one semaphore value (Sem_Val) and a corresponding semaphore number (Sem_Num) for examining the storage means associated with the thread to determine the status of the requested Sem_Num and providing a first output indicating a locked status or a second output indicating an unlocked status of the requested Sem_Num by the thread; a second logic circuit responsive to said first output from the first logic circuit for generating a Lock Same Sem_Num Error; and, a third logic circuit responsive to said second output from the first logic circuit for processing the requested Sem_Val.
- 2. The semaphore management subsystem set forth in claim 1 in which each thread in the application system is permanently assigned at least two registers in the storage means and the Sem_Num identifies one of the at least two registers permanently assigned to the thread.
- 3. The semaphore management subsystem set forth in claim 2 in which each thread in the application system is permanently assigned a number of registers equal to the maximum Sem_Num value.
- 4. The semaphore management subsystem set forth in claim 1 in which the storage means includes a plurality registers which are dynamically assigned to threads requesting a semaphore and each register also includes a thread ID field and a Sem_Num field for accessing a register associated with a thread.
- 5. The semaphore management subsystem set forth in claim 4 in which the maximum number of registers assignable at any given time to a thread is equal to the maximum Sem_Num value.
- 6. In a multi-processor application system including, one or more shared resources each controlled by a unique semaphore, a method for managing semaphores including the steps:
establishing a storage means having a plurality of registers each associated with a processor (thread) requesting a semaphore, said registers each including a first field for storing a unique Semaphore Value (Sem_Val) and a second field for indicating the locked status of the identified Sem_Val; in response to a semaphore lock request from a thread which includes at least one semaphore value (Sem_Val) and a corresponding semaphore number (Sem_Num), examining the storage means associated with the thread to determine the status of the requested Sem_Num and providing a first output indicating a locked status or a second output indicating an unlocked status of the requested Sem_Num by the thread; in response to a said first output generating a Lock Same Sem_Num Error; and, in response to a said second output processing the requested Sem_Val.
- 7. The semaphore management method set forth in claim 6 in which each thread in the application system is permanently assigned at least two registers in the storage means and the Sem_Num identifies one of the at least two registers permanently assigned to the thread.
- 8. The semaphore management subsystem set forth in claim 7 in which each thread in the application system is permanently assigned a number of registers equal to the maximum Sem_Num value.
- 9. The semaphore management subsystem set forth in claim 6 in which the storage means includes a plurality registers which are dynamically assigned to threads requesting a semaphore and each register also includes a thread ID field and a Sem_Num field for accessing a register associated with a thread.
- 10. The semaphore management subsystem set forth in claim 9 in which the maximum number of registers assignable at any given time to a thread is equal to the maximum Sem_Num value.
Parent Case Info
[0001] This application claims the benefit of the filing date of provisional application Serial No. 60/325,076, filed Sep. 26, 2001 for METHOD FOR LOCKING MULTIPLE SEMAPHORES IN HARDWARE.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60325076 |
Sep 2001 |
US |