Add support for fractional priority in arbiter#76
Open
FrancescoConti wants to merge 1 commit intosmazzola/veriffrom
Open
Add support for fractional priority in arbiter#76FrancescoConti wants to merge 1 commit intosmazzola/veriffrom
FrancescoConti wants to merge 1 commit intosmazzola/veriffrom
Conversation
Previously, HCI supported QoS by switching to the low-priority chan for 1 stall-cycle out of N, where N-1 was specified as the low_prio_max_stall configuration from a CSR in the system. This commit changes the mechanism in a more flexible fractional priority. The counter has two configuration params (8-bit), both from CSRs: priority_cnt_numerator and priority_cnt_denominator. The former is the same as low_prio_max_stall, i.e., the number of stall-cycles the arbiter spends prioritizing the high-priority side. The latter is the total number of stall cycles after which the counter is cleared, meaning that the arbiter will spend priority_cnt_denominator-priority_cnt_numerator stall-cycles prioritizing the low-priority side. In other words, the arbiter will dedicate a fraction numerator/denominator of the available bandwidth (on average) to the high priority side. Hardware-wise the change is minimal, touching only how the counter works and the CSRs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously, HCI supported QoS by switching to the low-priority chan for 1 stall-cycle out of N, where N-1 was specified as the low_prio_max_stall configuration from a CSR in the system.
This commit changes the mechanism in a more flexible fractional priority. The counter has two configuration params (8-bit), both from CSRs: priority_cnt_numerator and priority_cnt_denominator. The former is the same as low_prio_max_stall, i.e., the number of stall-cycles the arbiter spends prioritizing the high-priority side. The latter is the total number of stall cycles after which the counter is cleared, meaning that the arbiter will spend priority_cnt_denominator-priority_cnt_numerator stall-cycles prioritizing the low-priority side.
In other words, the arbiter will dedicate a fraction numerator/denominator of the available bandwidth (on average) to the high priority side.
Hardware-wise the change is minimal, touching only how the counter works and the CSRs.