Techniques for command arbitation in symmetric multiprocessor systems
A technique for operating a data processing system includes determining, by an arbiter of a processing unit of the data processing system, whether an over-commit has occurred. In response to determining that the over-commit has occurred, the arbiter selects a broadcast command to be dropped based on a number of hops traversed through the data processing system by the broadcast command.
1. A method of operating a data processing system, comprising:
determining, by an arbiter of a processing unit of the data processing system, whether an over-commit has occurred;
in response to determining that the over-commit has occurred, selecting, by the arbiter, a broadcast command to be dropped based on a number of hops traversed through the data processing system by the broadcast command, wherein a weighting factor of a multi-hop broadcast command is increased as the number of hops traversed by the multi-hop broadcast command increases such that the arbiter is less likely to drop the multi-hop broadcast command as the number of hops traversed by the multi-hop broadcast command increases, and wherein the broadcast command includes a tag that specifies a chip identifier (ID) that identifies a chip that is a source of the broadcast command and a group ID that identifies a group for the source chip that the arbiter utilizes to determine the number of hops traversed by the multi-hop broadcast command; and
dynamically adjusting the weighting factor of the multi-hop broadcast command when a group of one or more chips is added to or deleted from the data processing system.
2. The method of claim 1 , wherein the arbiter is configured to achieve fairness by considering a total number of processing units with current broadcast commands that are being arbitrated by the arbiter.
3. A data processing system, comprising:
a memory; and
a processing unit coupled to the memory, wherein the processing unit includes an arbiter that is configured to:
determine whether an over-commit has occurred;
in response to determining that the over-commit has occurred, select a broadcast command to be dropped based on a number of hops traversed through the data processing system by the broadcast command, wherein a weighting factor of a multi-hop broadcast command is increased as the number of hops traversed by the multi-hop broadcast command increases such that the arbiter is less likely to drop the multi-hop broadcast command as the number of hops traversed by the multi-hop broadcast command increases, and wherein the broadcast command includes a tag that specifies a chip identifier (ID) that identifies a chip that is a source of the broadcast command and a group ID that identifies a group for the source chip that the arbiter utilizes to determine the number of hops traversed by the multi-hop broadcast command; and
dynamically adjust the weighting factor of the multi-hop broadcast command when a group of one or more chips is added to or deleted from the data processing system.
4. The data processing system of claim 3 , wherein the arbiter is configured to achieve fairness by considering a total number of processing units with current broadcast commands that are being arbitrated by the arbiter.
5. A data processing system, comprising:
a first processing node including one or more first processing units; and
a second processing node coupled to the first processing node, wherein the second processing node includes one or more second processing units each having an arbiter that is configured to:
determine whether an over-commit has occurred;
in response to determining that the over-commit has occurred, select a broadcast command to be dropped based on a number of hops traversed through the data processing system by the broadcast command, wherein a weighting factor of a multi-hop broadcast command is increased as the number of hops traversed by the multi-hop broadcast command increases such that the arbiter is less likely to drop the multi-hop broadcast command as the number of hops traversed by the multi-hop broadcast command increases, and wherein the broadcast command includes a tag that specifies a chip identifier (ID) that identifies a chip that is a source of the broadcast command and a group ID that identifies a group for the source chip that the arbiter utilizes to determine the number of hops traversed by the multi-hop broadcast command; and
dynamically adjust the weighting factor of the multi-hop broadcast command when a group of one or more chips is added to or deleted from the data processing system.
6. The data processing system of claim 5 , wherein the arbiter is configured to achieve fairness by considering a total number of processing units with current broadcast commands that are being arbitrated by the arbiter.