CPC G06F 9/4818 (2013.01) [B60W 60/001 (2020.02); G06N 3/08 (2013.01)] | 28 Claims |
1. A method for managing access of multiple initiators to shared resources, the shared resources including at least one of a memory or a peripheral device, the method comprising:
determining, by an active initiator, a priority level to be assigned to all pending access requests generated by the active initiator, wherein each access request is a request to access a shared resource out of the shared resources, and wherein the determining is based on: a number of pending access requests generated by the active initiator, a number of active initiators out of the multiple initiators including the active initiator, and a number of access requests serviceable by the shared resource;
informing, by the active initiator, an arbitration hardware of a network on chip about the priority level to be assigned to all pending access requests generated by the active initiator, including any access request that was already sent to the arbitration hardware before the determining and already has an existing priority level that differs from the determined priority level, to manage access to the shared resources based on the determined priority level assigned to all pending access requests generated by each active initiator; and
accessing and using the shared resources based on the determined priority level assigned to all pending access requests generated by each active initiator;
wherein the priority level is one of a plurality of priority levels with each of the plurality of priority levels associated with a respective range of a plurality of ranges of pending access requests, and wherein the determining of the priority level to be assigned to all pending access requests generated by the active initiator comprises searching for a corresponding range of a plurality of ranges that includes the number of pending access requests generated by the active initiator; and
wherein for each priority level, the respective range of pending access requests is a function of the respective priority level, the number of access requests serviceable by the shared resources, and the number of active initiators of the multiple initiators.
|