US 11,868,801 B2
Priority based management of access to shared resources
Boris Shulman, Holon (IL); Itamar Richter, Nehusha (IL); and Galit Keret, Jerusalem (IL)
Assigned to Mobileye Vision Technologies Ltd., Jerusalem (IL)
Filed by Mobileye Vision Technologies Ltd., Jerusalem (IL)
Filed on Feb. 25, 2022, as Appl. No. 17/680,871.
Application 17/680,871 is a continuation of application No. 16/981,179, granted, now 11,275,606, previously published as PCT/US2020/021564, filed on Mar. 6, 2020.
Claims priority of provisional application 62/815,389, filed on Mar. 8, 2019.
Prior Publication US 2022/0291948 A1, Sep. 15, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/46 (2006.01); G06F 9/48 (2006.01); B60W 60/00 (2020.01); G06N 3/08 (2023.01)
CPC G06F 9/4818 (2013.01) [B60W 60/001 (2020.02); G06N 3/08 (2013.01)] 28 Claims
OG exemplary drawing
 
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.