Dynamic bus arbitration priority and task switching based on shared memory fullness in a multi-processor system
First Claim
1. A bus master device for coupling to a shared memory via a common bus, the common bus adapted to couple to another bus master device, comprising:
- an execution unit having an input terminal for receiving a current priority signal which indicates a degree of fullness of a memory segment located in the shared memory, and an output terminal coupled to an output terminal of the bus master device, said execution unit periodically arbitrating for usage of the common bus in response to an internal operation by providing said current priority signal to said output terminal; and
a snoop logic block having an input terminal coupled to the common bus, and an output terminal coupled to said input terminal of said execution unit for providing said current priority signal thereto, wherein said snoop logic block monitors a fullness state of said memory segment and changes said current priority signal in response to the another bus master device accessing said memory segment.
19 Assignments
0 Petitions
Accused Products
Abstract
An arbitration and task switching technique in a real-time multiprocessor data processing system (20) having a common bus (32) and a segmented shared memory (30), where fullness of memory segments of the shared memory (30) is used as a measurement for arbitration and task switching priorities. A bus request mechanism in each of the processors dynamically calculates normalized priority values based on relative needs across the system (20). The normalized priority calculation is based on monitoring the fullness of memory segments of the shared memory (30) associated with each processor (24, 26, 28) of the system (20). Using this normalized priority calculation, the bus access order and bus bandwidth are optimally allocated according to tasks executed by the processors (24, 26, 28). Also, the normalized priority calculation and a preprogrammed threshold is used to control task switching in the multi-processor system (20).
-
Citations
33 Claims
-
1. A bus master device for coupling to a shared memory via a common bus, the common bus adapted to couple to another bus master device, comprising:
-
an execution unit having an input terminal for receiving a current priority signal which indicates a degree of fullness of a memory segment located in the shared memory, and an output terminal coupled to an output terminal of the bus master device, said execution unit periodically arbitrating for usage of the common bus in response to an internal operation by providing said current priority signal to said output terminal; and a snoop logic block having an input terminal coupled to the common bus, and an output terminal coupled to said input terminal of said execution unit for providing said current priority signal thereto, wherein said snoop logic block monitors a fullness state of said memory segment and changes said current priority signal in response to the another bus master device accessing said memory segment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A bus master device for coupling to a shared memory via a common bus, the common bus adapted to couple to at least one other bus master device, comprising:
-
a snoop register coupled to the common bus having a priority field which stores a current priority signal which indicates a degree of fullness of a memory segment which is located in the shared memory, and an increment field which indicates an address of said memory segment; a memory segment access detect circuit having a first input terminal coupled to the common bus for receiving a bus request data word, a second input terminal coupled to said increment field of said snoop register, and an output terminal for providing a priority change signal, said memory segment access detect circuit providing said priority change signal in a first logic state in response to a portion of said bus request data word equaling said increment field; a priority update circuit coupled to said snoop register having a first input terminal for receiving said current priority signal, a second input terminal coupled to said memory segment access detect circuit for receiving said priority change signal, and an output terminal coupled to said priority field of said snoop register for providing an updated priority signal equal to said current priority signal plus a predetermined number if said priority change signal is in said first logic state; and an execution unit having an input terminal for receiving said current priority signal, and an output terminal coupled to an output terminal of the bus master device for periodically arbitrating for usage of the common bus in response to an internal operation by providing said current priority signal to said output terminal. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A data processing system comprising:
-
a common bus; a first bus master device having a data terminal coupled to said common bus, and an output terminal for providing a first priority signal indicative of a fullness state of a first memory segment associated therewith, said first bus master device transferring data over said common bus after receiving a first bus grant signal; a second bus master device having a data terminal coupled to said common bus, and an output terminal for providing a second priority signal indicative of a fullness state of a second memory segment associated therewith, said second bus master device transferring data over said common bus after receiving a second bus grant signal; and a bus arbiter having a first input terminal for receiving said first priority signal, a second input terminal for receiving said second priority signal, and an output terminal coupled to said common bus for providing a selected one of said first bus grant signal and said second bus grant signal as determined by a relative size of said first priority signal and said second priority signal. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A data processing system comprising:
-
a bus; a memory unit, coupled to the bus, the memory unit organized as a plurality of memory segments for storing data; a first execution unit, coupled to the bus, and having an input terminal for receiving a first priority signal which indicates a degree of fullness of a memory segment of the memory unit, said first execution unit for processing a plurality of tasks; a first logic block having an input terminal coupled to the bus, and an output terminal coupled to said input terminal of said first execution unit for providing said first priority signal thereto, wherein said first logic block monitors a fullness state of said memory segment and changes said first priority signal in response to the fullness state; and a comparator having a first input terminal coupled to the output terminal of the snoop logic block, a second input terminal for receiving a preprogrammed threshold, and an output terminal for providing a ready signal in response to the first priority signal comparing favorably with the preprogrammed threshold, wherein the ready signal indicates that a task of the plurality of tasks is ready to be processed. - View Dependent Claims (30, 31, 32, 33)
-
Specification