Semaphore in system I/O space
First Claim
1. A computer system comprising:
- a plurality of processes;
a system input/output (I/O) coupled to each of said plurality of processes, said system I/O connecting a plurality of devices to said system I/O via interface slots within said system I/O, each of said plurality of devices accessible by each of said plurality of processes;
said system I/O further including a plurality of semaphores, one for each of said plurality of devices connected to said system I/O, for indicating the status of corresponding ones of said plurality of devices, each of said plurality of semaphores responsive to a check signal received from one of said plurality of processes and configured to output to said one of said plurality of processes a first value when the semaphore'"'"'s corresponding device is available and a second value when the semaphore'"'"'s corresponding device is unavailable; and
said system I/O further including an ASIC for controlling each of said plurality of semaphores within said system I/O, said ASIC further for changing the value of particular ones of said plurality of semaphores from said first value to said second value in response to both said particular semaphore receiving a check a signal from at least one of said plurality of processes and said particular semaphore having said first value.
4 Assignments
0 Petitions
Accused Products
Abstract
A computer system utilizing multiple processes includes a semaphore for controlling exclusive access of a single process to a selected resource. The semaphore is implemented in the system input/output and controlled, at least in part, by an application specific integrated circuit (ASIC). When a process is attempting to acquire an I/O resource, a read is sent to the semaphore. If the resource is available the semaphore will have a first value, and the semaphore will return that first value to the process indicating that the process has acquired the resource. The ASIC will then change the semaphore value to a second value. If the resource is not available the semaphore will have the second value, and the semaphore will return the second value to the process indicating that the resource is not available.
-
Citations
5 Claims
-
1. A computer system comprising:
-
a plurality of processes; a system input/output (I/O) coupled to each of said plurality of processes, said system I/O connecting a plurality of devices to said system I/O via interface slots within said system I/O, each of said plurality of devices accessible by each of said plurality of processes; said system I/O further including a plurality of semaphores, one for each of said plurality of devices connected to said system I/O, for indicating the status of corresponding ones of said plurality of devices, each of said plurality of semaphores responsive to a check signal received from one of said plurality of processes and configured to output to said one of said plurality of processes a first value when the semaphore'"'"'s corresponding device is available and a second value when the semaphore'"'"'s corresponding device is unavailable; and said system I/O further including an ASIC for controlling each of said plurality of semaphores within said system I/O, said ASIC further for changing the value of particular ones of said plurality of semaphores from said first value to said second value in response to both said particular semaphore receiving a check a signal from at least one of said plurality of processes and said particular semaphore having said first value. - View Dependent Claims (2, 3)
-
-
4. In a computer system having a plurality of processes and a plurality of devices accessible by each of the plurality of processes, a method of ensuring exclusive ownership of particular ones of the plurality of devices by one of the plurality of processes, said method comprising the steps of:
-
providing a plurality of semaphores at a system level I/O, each of the plurality of semaphores associated with corresponding ones of the plurality of devices, each of the plurality of devices connected to the system level I/O via interface slots within the system level I/O; providing an ASIC at the system level I/O, the ASIC for controlling each of the plurality of semaphores to indicate a status of the corresponding ones of the plurality of devices; sending a check signal from a first of the plurality of processes to a particular one of the plurality of semaphores associated with the status of a corresponding one of the plurality of devices; reading the value of the particular semaphore, whereupon; if the value of the particular semaphore is a first value indicating that the corresponding device is available, returning the first value to the first of the plurality of processes; and changing the first value of the particular semaphore to a second value with the ASIC thereby indicating that the corresponding device is no longer available; and else if the value of the particular semaphore is the second value indicating that the corresponding device is unavailable and returning the second value to the first of the plurality of processes.
-
-
5. A computer system, comprising:
-
a plurality of processes coupled to a system level input/output (I/O); a plurality of devices connected to said system level I/O via interface slots within said system level I/O, each of said plurality of devices accessible by each of said plurality of processes; an ASIC within said system level I/O, said ASIC configured to enable a determination of control of each of said plurality of devices within s aid system level I/O; said ASIC including a plurality of semaphores, one for each of said plurality of devices, for indicating an availability of corresponding ones of said plurality of devices, said ASIC further for communicating the semaphore associated with one or more of the plurality of devices in response to a check signal from one or more of the plurality of processes; and wherein said plurality of processes include operating system processes and system BIOS processes that attempt to access said plurality of devices, and wherein said ASIC is accessible by said operating system processes and said system BIOS processes.
-
Specification