Operating system aware hardware mutex
First Claim
1. A method comprising:
- setting a bit in a register via a software task, said setting indicates a request to lock a hardware mutex, said hardware mutex comprises said register;
after said setting, determining via a controller if said hardware mutex is locked, said hardware mutex comprises said controller;
if it is determined said hardware mutex is not locked, setting a first flag using said controller to lock said hardware mutex without interrupting a kernel of an operating system, wherein said controller is implemented using hardware; and
if it is determined said hardware mutex is locked, asserting via said controller an interrupt operable to interrupt said software task and enabling said kernel of said operating system to handle said request to lock said hardware mutex.
2 Assignments
0 Petitions
Accused Products
Abstract
Hardware resource sharing for a computerized system running software tasks. A mutex controller is associated with the hardware resource. Lock and unlock indicators are settable by a software task and readable by the controller, and locked and waiters flags are settable and readable by the controller. The controller monitors whether the lock indicator has been set and determines whether the locked flag is set. If not, it sets the locked flag and, if so, it sets the waiters flag and asserts a mutex interrupt signaling the computer system to divert the software task to run a lock request routine. The controller also monitors whether the unlock indicator has been set and then determines whether the waiters flag is set. If not, it clears the locked flag and, if so, it asserts a mutex interrupt signaling the computer system to divert the software task to run an unlock request routine.
20 Citations
33 Claims
-
1. A method comprising:
-
setting a bit in a register via a software task, said setting indicates a request to lock a hardware mutex, said hardware mutex comprises said register; after said setting, determining via a controller if said hardware mutex is locked, said hardware mutex comprises said controller; if it is determined said hardware mutex is not locked, setting a first flag using said controller to lock said hardware mutex without interrupting a kernel of an operating system, wherein said controller is implemented using hardware; and if it is determined said hardware mutex is locked, asserting via said controller an interrupt operable to interrupt said software task and enabling said kernel of said operating system to handle said request to lock said hardware mutex. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 33)
-
-
10. A system comprising:
-
a software task operable to set a bit in a register; a hardware mutex comprising said register and a controller; and said controller implemented using hardware, said controller operable to; determine whether said software task has requested to lock said hardware mutex by monitoring if said bit is set in said register, said hardware mutex comprises said controller; if said bit is set, determine if said hardware mutex is locked; if it is determined said hardware mutex is not locked, set a first flag to lock said hardware mutex without interrupting a kernel of an operating system; and if it is determined said hardware mutex is locked, assert an interrupt operable to interrupt said software task and enable said kernel of said operating system to handle said request to lock said hardware mutex. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method comprising:
-
setting a bit in a register via a software task, said setting indicates a request to unlock a hardware mutex, said hardware mutex comprises said register; after said setting, determining via a controller if another software task is waiting to lock said hardware mutex, said hardware mutex comprises said controller; if it is determined no other software task is waiting to lock said hardware mutex, clearing a first flag using said controller to unlock said hardware mutex without interrupting a kernel of an operating system, wherein said controller is implemented using hardware; and if it is determined another software task is waiting to lock said hardware mutex, asserting via said controller an interrupt operable to interrupt said software task and enabling said kernel of said operating system to handle said request to unlock said hardware mutex. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A system comprising:
-
a software task operable to set a bit in a register; a hardware mutex comprising said register and a controller; and said controller implemented using hardware, said controller operable to; determine whether said software task has requested to unlock of said hardware mutex by monitoring if said bit is set in said register; if said bit is set, determine if another software task is waiting to lock said hardware mutex; if it is determined no other software task is waiting to lock said hardware mutex, clear a first flag to unlock said hardware mutex without interrupting a kernel of an operating system; and if it is determined another software task is waiting to lock said hardware mutex, assert an interrupt operable to interrupt said software task and enable said kernel of said operating system to handle said request to unlock said hardware mutex. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
Specification