Protocol for arbitrating access to a shared memory area using historical state information
First Claim
1. A memory unit comprising:
- a memory cell that stores data;
an access indication unit, coupled to the memory cell, that records an identity of a first processor accessing the memory cell;
a semaphore unit, coupled to the access indication unit, that prevents a second processor from accessing the memory cell while the identity of the first processor is recorded in the access indication unit; and
a state recorder unit, coupled to the access indication unit, that records state information written by the first processor, the state recorder unit to provide a task last performed on the memory cell to a state engine which determines next tasks that may be performed on the memory cell.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for arbitrating access to a shared memory is disclosed. A memory marking unit in the shared memory is read to determine whether the shared memory is currently being accessed by another processor. If the shared memory is not being accessed by another processor, a processor seeking access is granted access. The processor changes the contents of the memory marking unit to lock out other processors from the shared memory. The last task performed on the shared memory space is identified and used to determine whether a task with high priority exists. If a task with high priority exists, the task is performed. If a task with high priority does not exist, the processor having access to the shared memory space accesses the shared memory space for its intended purpose. After the processor is finished accessing the shared memory space, it records the identity of the task performed and unlocks the shared memory space.
52 Citations
13 Claims
-
1. A memory unit comprising:
-
a memory cell that stores data;
an access indication unit, coupled to the memory cell, that records an identity of a first processor accessing the memory cell;
a semaphore unit, coupled to the access indication unit, that prevents a second processor from accessing the memory cell while the identity of the first processor is recorded in the access indication unit; and
a state recorder unit, coupled to the access indication unit, that records state information written by the first processor, the state recorder unit to provide a task last performed on the memory cell to a state engine which determines next tasks that may be performed on the memory cell. - View Dependent Claims (2, 3, 4)
-
-
5. A computer system comprising:
-
a bus;
a first processor coupled to the bus;
a second processor;
a shared memory unit comprising a memory cell that stores data, an access indication unit, coupled to the memory cell, that records an identity of the first processor accessing the memory cell, a semaphore unit, coupled to the access indication unit, that prevents the second processor from accessing the memory cell while the identity of the first processor is recorded in the access indication unit, and a state recorder unit, coupled to the access indication unit, that records state information written by the first processor, the state recorder unit to provide a task last performed on the memory cell to a first state engine which determines next tasks that may be performed on the memory cell. - View Dependent Claims (6, 7, 8)
a second state engine that instructs the second processor how to process data in the memory cell in response to reading the state information recorded in the state recording unit.
-
-
7. The computer system in claim 5 further comprising a monitoring unit, coupled to the state recorder unit, the monitoring unit monitoring the state information and sending an interrupt signal to the first processor that starts the first state engine when there is a change in the state information.
-
8. The computer system in claim 5 further comprising a polling unit, coupled to the state recorder unit, the polling unit monitoring the state recording unit after a predetermined amount of time and starting the first state engine when the polling unit detects a change in the state information.
-
9. The method of arbitrating access of a shared memory between a plurality of processors, comprising:
-
determining whether the shared memory is being accessed;
identifying a state of the shared memory, the state indicative of a task last performed;
determining next tasks that may be performed on the shared memory based upon the state of the shared memory; and
granting access of the shared memory to a processor of the plurality of processors designated to perform one of the next tasks. - View Dependent Claims (10, 11, 12)
-
-
13. A computer system comprising:
-
a bus;
a first processor coupled to the bus;
a second processor;
a shared memory unit comprising a memory cell that stores data, an access indication unit, coupled to the memory cell, that records an identity of the first processor accessing the memory cell, a semaphore unit, coupled to the access indication unit, that prevents the second processor from accessing the memory cell while the identity of the first processor is recorded in the access indication unit, and a state recorder unit, coupled to the access indication unit, that records state information written by the first processor that is indicative of a task last performed on the memory cell, the task performed allowing a state engine to determine one or more next tasks to be performed on the memory cell.
-
Specification