REUSABLE, OPERATING SYSTEM AWARE HARDWARE MUTEX
First Claim
1. A system for sharing a plurality of hardware resources in a computer system able to run a plurality of software tasks, comprising:
- (a) a mutexes controller having a locked mutex cache to store a list of records each including a mutex ID tag and a waiter flag;
(b) a lock register and an unlock register that are each read able by said mutexes controller and load able by the software tasks with a mutex ID specifying one of the hardware resources; and
(c) said mutexes controller being further to;
(1) monitor whether said lock register has been loaded with a said mutex ID and then;
(A) determine whether said mutex ID corresponds with a said mutex ID tag of a said record present in said locked mutex cache; and
(B) if so, to set said waiter flag of said record;
or(C) if not so, to add a said record to said locked mutex cache having a said mutex ID tag that corresponds with said mutex ID; and
(2) monitor whether said unlock register has been loaded with a said mutex ID and then;
(A) determine whether said mutex ID corresponds with a said mutex ID tag of a said record presently in said locked mutex cache; and
(B) if so, determine whether said waiter flag of said record is set and, if so, to clear said record from said locked mutex cache.
2 Assignments
0 Petitions
Accused Products
Abstract
Hardware resources sharing for a computer system running software tasks. A controller stores records including a mutex ID tag and a waiter flag in a cache. Lock and unlock registers are readable by the controller and loadable by the tasks with a mutex ID specifying a hardware resource. The controller monitors whether the lock register for loading with a mutex ID, and then determines whether it corresponds with the tag of a record in the cache. If so, it sets the record'"'"'s waiter flag. If not, it adds a record having a tag corresponding with the mutex ID. The controller also monitors whether the unlock register for loading with a mutex ID, and then determines whether it corresponds with the tag of a record in the cache. If so, it determines whether that record'"'"'s waiter flag is set and, if so, it clears that record from the cache.
27 Citations
15 Claims
-
1. A system for sharing a plurality of hardware resources in a computer system able to run a plurality of software tasks, comprising:
-
(a) a mutexes controller having a locked mutex cache to store a list of records each including a mutex ID tag and a waiter flag; (b) a lock register and an unlock register that are each read able by said mutexes controller and load able by the software tasks with a mutex ID specifying one of the hardware resources; and (c) said mutexes controller being further to; (1) monitor whether said lock register has been loaded with a said mutex ID and then; (A) determine whether said mutex ID corresponds with a said mutex ID tag of a said record present in said locked mutex cache; and (B) if so, to set said waiter flag of said record;
or(C) if not so, to add a said record to said locked mutex cache having a said mutex ID tag that corresponds with said mutex ID; and (2) monitor whether said unlock register has been loaded with a said mutex ID and then; (A) determine whether said mutex ID corresponds with a said mutex ID tag of a said record presently in said locked mutex cache; and (B) if so, determine whether said waiter flag of said record is set and, if so, to clear said record from said locked mutex cache. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A process for locking a mutex that controls access to a shared resource by software tasks running under an operating system, the process comprising:
-
(a) monitoring a lock register for a mutex ID having been loaded there in by one of the software tasks; (b) determining whether said mutex ID corresponds with a mutex ID tag of a record in a locked mutex cache; (c) if so; (1) setting a waiter flag of said record; and (2) communicating to said operating system a request for conventional handling of the shared resource; and (d) if not so, adding a new said record to said locked mutex cache with a said mutex ID tag corresponding with said mutex ID, without interrupting the software tasks or the operating system. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A process for unlocking a mutex that controls access to a shared resource by software tasks running under an operating system, the process comprising:
-
(a) monitoring an unlock register for a mutex ID having been loaded there in by one of the software tasks; (b) determining whether said mutex ID corresponds with a mutex ID tag of a record in a locked mutex cache; (c) if said mutex ID corresponds with a said record; (1) determining whether a waiter flag of said record is set; (A) if said waiter flag is set, asserting an interrupt; (B) if said waiter flag is not set, clearing said record from said locked mutex cache; and (d) if said mutex ID does not correspond with a record, asserting an interrupt. - View Dependent Claims (13, 14, 15)
-
Specification