A method comprising: determining a plurality of categories for requests for a shared resource being shared by a plurality of entities; receiving a plurality of requests for the resource from the plurality of entities; determining a category in the plurality of categories for each of the plurality of requests; dispatching a first set of requests from the plurality of requests that is determined to be in a first category to a first arbitration scheme, wherein the first arbitration scheme implements a first arbitration algorithm configured to use a first number of clock cycles to determine a first arbitration decision, wherein the first number of clock cycles corresponds to a first amount of time used by the first arbitration scheme to determine the first arbitration decision, and wherein the first arbitration decision determines a first request to be granted from among the first set of requests; and dispatching a second set of requests from the plurality of requests that is determined to be in a second category to a second arbitration scheme, wherein the second arbitration scheme implements a second arbitration algorithm configured to use a second number of clock cycles to determine a second arbitration decision, wherein the second arbitration decision determines a second request to be granted from among the second set of requests, characterized in that: the first number of clock cycles and the second number of clock cycles are different, wherein the second number of clock cycles corresponds to a second amount of time, different from the first amount of time, used by the second arbitration scheme to determine the second arbitration decision. determining a plurality of categories for requests for a shared resource being shared by a plurality of entities; receiving a plurality of requests for the resource from the plurality of entities; determining a category in the plurality of categories for each of the plurality of requests; dispatching a first set of requests from the plurality of requests that is determined to be in a first category to a first arbitration scheme, wherein the first arbitration scheme implements a first arbitration algorithm configured to use a first number of clock cycles to determine a first arbitration decision, wherein the first number of clock cycles corresponds to a first amount of time used by the first arbitration scheme to determine the first arbitration decision, and wherein the first arbitration decision determines a first request to be granted from among the first set of requests; and dispatching a second set of requests from the plurality of requests that is determined to be in a second category to a second arbitration scheme, wherein the second arbitration scheme implements a second arbitration algorithm configured to use a second number of clock cycles to determine a second arbitration decision, wherein the second arbitration decision determines a second request to be granted from among the second set of requests, characterized in that: the first number of clock cycles and the second number of clock cycles are different, wherein the second number of clock cycles corresponds to a second amount of time, different from the first amount of time, used by the second arbitration scheme to determine the second arbitration decision.