IP Library › Granted Patent US 10,503,544
Granted Patent B2
US 10,503,544 · App. 15/296,016 · Granted Dec 10, 2019

Efficient mapping from task graphs to dynamic system platforms

Inventors: Chung-Wei Lin (Sunnyvale, CA); BaekGyu Kim (Cupertino, CA); Shinichi Shiraishi (San Jose, CA)
Assignee: TOYOTA JIDOSHA KABUSHIKI KAISHA
G06F9/4881G06F9/5066
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,503,544
App. No.
15/296,016
Granted
Dec 10, 2019
Kind
B2
Abstract

In an example embodiment, a computer-implemented method is disclosed that computes, using one or more processors, a path slack value for each path of a set of paths of a functional computing model. Each path of the set of paths comprises a set of tasks and the path slack value of each path reflects a difference between a deadline and a latency of the path. The method further determines a priority of each task of the set of tasks of each path based on the path slack value of the path, and allocates, using the one or more processors and based on the priority of each task, the tasks of each of the paths of the set to corresponding computing units from a set of computing units of an architectural platform.

Claims (91)

1. A computer-implemented method comprising:

computing a path slack value for each path of a set of paths of a functional computing model, each path of the set of paths comprising a set of tasks, the path slack value of each path reflecting a difference between a deadline and a latency of the path;

determining a priority of each task of the set of tasks of each path based on the difference between the deadline and the latency of the path; and

allocating, based on the priority of each task, the tasks of each of the paths of the set to corresponding computing units from a set of computing units of an architectural platform.

2. The computer-implemented method of claim 1 , further comprising:

computing a response time for a first task from the tasks of a first path of the set of paths, the first task having a priority higher than priorities of other non-allocated tasks of the path, wherein, allocating, based on the priority of each task, the tasks of the paths to corresponding computing units includes, for each computing unit of the set of computing units of the architectural platform, determining a computing unit from the set of computing units to which to assign the first task based on the path slack value of one or more of the paths of the set, the path slack value being further computed based on the response time.

3. The computer-implemented method of claim 2 , wherein determining the computing unit from the set of computing units is based on a largest summation of path slack values associated with the paths of the set.

4. The computer-implemented method of claim 2 , further comprising:

computing response times for the tasks of each path of the set of paths;

storing the response times in one or more lookup tables; and

during drive time, activating an application associated with the set of paths using the response times stored in the one or more lookup tables.

5. The computer-implemented method of claim 1 , wherein the tasks of the paths are allocated in order of descending priorities.

6. The computer-implemented method of claim 1 , wherein computing the path slack value for each path includes:

determining a deadline value associated with the path;

determining a latency associated with the tasks of the path; and

computing a difference between the deadline value and the latency.

7. The computer-implemented method of claim 6 , wherein determining the latency associated with the tasks of the path includes:

calculating a worst-case response time associated with the tasks of the path;

calculating an activation period associated with the tasks of the path;

calculating a worst-case response time associated with signals of the path;

calculating an activation period associated with the signals of the path; and

calculating the latency based on the worst-case response time associated with the tasks of the path, the activation period associated with the tasks of the path, the worst-case response time associated with the signals of the path, and the activation period associated with the signals of the path.

8. The computer-implemented method of claim 6 , wherein the deadline value is set to an activation period.

9. The computer-implemented method of claim 1 , wherein the path slack value of a path from the set of paths is determined based on an activation period of a task included in the path.

10. The computer-implemented method of claim 9 , further comprising:

determining a response time of the task included in the path; and

recomputing the path slack value for the path that includes the task based on the response time.

11. The computer-implemented method of claim 1 , wherein allocating, based on the priority of each task, the tasks includes:

selecting a pair of tasks based on a number of computing units needed to process the pair of tasks;

selecting a corresponding computing unit based on an impact to other remaining pairs of tasks requiring processing; and

processing the pair of tasks using the corresponding computing unit.

12. A system comprising:

a set of computing units;

one or more memories storing instructions that, when executed by the system, cause the system to perform operations comprising:

computing a path slack value for each path of a set of paths of a functional computing model, each path of the set of paths comprising a set of tasks, the path slack value of each path reflecting a difference between a deadline and a latency of the path;

determining a priority of each task of the set of tasks of each path based on the path slack value of the path;

computing a response time for a first task from the tasks of a first path of the set of paths, the first task having a priority higher than priorities of other non-allocated tasks of the path; and

allocating, based on the priority of each task, the tasks of each of the paths of the set to corresponding computing units from a set of computing units of an architectural platform, wherein, allocating, based on the priority of each task, the tasks of the paths to corresponding computing units includes, for each computing unit of the set of computing units of the architectural platform, determining a computing unit from the set of computing units to which to assign the first task based on the path slack value of one or more of the paths of the set, the path slack value being further computed based on the response time.

13. The system of claim 12 , wherein determining the computing unit from the set of computing units is based on a largest summation of path slack values associated with the paths of the set.

14. The system of claim 12 , wherein the instructions, when executed by the system, further cause the system to perform operations comprising:

computing response times for the tasks of each path of the set of paths;

storing the response times in one or more lookup tables; and

during drive time, activating an application associated with the set of paths using the response times stored in the one or more lookup tables.

15. The system of claim 12 , wherein the tasks of the paths are allocated in order of descending priorities.

16. The system of claim 12 , wherein computing the path slack value for each path includes:

determining a deadline value associated with the path;

determining a latency associated with the tasks of the path; and

computing a difference between the deadline value and the latency.

17. The system of claim 16 , wherein determining the latency associated with the tasks of the path includes:

calculating a worst-case response time associated with the tasks of the path;

calculating an activation period associated with the tasks of the path;

calculating a worst-case response time associated with signals of the path;

calculating an activation period associated with the signals of the path; and

calculating the latency based on the worst-case response time associated with the tasks of the path, the activation period associated with the tasks of the path, the worst-case response time associated with the signals of the path, and the activation period associated with the signals of the path.

18. The system of claim 16 , wherein the deadline value is set to an activation period.

19. The system of claim 12 , wherein the path slack value of a path from the set of paths is determined based on an activation period of a task included in the path.

20. The system of claim 19 , wherein the instructions, when executed by the system, further cause the system to perform operations comprising:

determining a response time of the task included in the path; and

recomputing the path slack value for the path that includes the task based on the response time.

21. The system of claim 12 , wherein allocating, based on the priority of each task, the tasks includes:

selecting a pair of tasks based on a number of computing units needed to process the pair of tasks;

selecting a corresponding computing unit based on an impact to other remaining pairs of tasks requiring processing; and

processing the pair of tasks using the corresponding computing unit.

22. A computer-implemented method comprising:

computing a path slack value for each path of a set of paths of a functional computing model, each path of the set of paths comprising a set of tasks, the path slack value of each path reflecting a difference between a deadline and a latency of the path;

determining the latency associated with the tasks of the path, including:

calculating a worst-case response time associated with the tasks of the path,

calculating an activation period associated with the tasks of the path,

calculating a worst-case response time associated with signals of the path,

calculating an activation period associated with the signals of the path, and

calculating the latency based on the worst-case response time associated with the tasks of the path, the activation period associated with the tasks of the path, the worst-case response time associated with the signals of the path, and the activation period associated with the signals of the path;

determining a priority of each task of the set of tasks of each path based on the path slack value of the path; and

allocating, based on the priority of each task, the tasks of each of the paths of the set to corresponding computing units from a set of computing units of an architectural platform.

23. A computer-implemented method comprising:

computing a path slack value for each path of a set of paths of a functional computing model, each path of the set of paths comprising a set of tasks, the path slack value of each path reflecting a difference between a deadline and a latency of the path;

determining a priority of each task of the set of tasks of each path based on the path slack value of the path; and

allocating, based on the priority of each task, the tasks of each of the paths of the set to corresponding computing units from a set of computing units of an architectural platform, allocating the tasks including:

selecting a pair of tasks based on a number of computing units needed to process the pair of tasks,

selecting a corresponding computing unit based on an impact to other remaining pairs of tasks requiring processing, and

processing the pair of tasks using the corresponding computing unit.

24. A computer-implemented method comprising:

computing a path slack value for each path of a set of paths of a functional computing model, each path of the set of paths comprising a set of tasks, the path slack value of each path reflecting a difference between a deadline and a latency of the path;

determining a priority of each task of the set of tasks of each path based on the path slack value of the path; and

allocating, based on the priority of each task, the tasks of each of the paths of the set to corresponding computing units from a set of computing units of an architectural platform, including determining a computing unit from the set of computing units based on a largest summation of path slack values associated with the paths of the set.

25. A computer-implemented method comprising:

computing a path slack value for each path of a set of paths of a functional computing model, each path of the set of paths comprising a set of tasks, the path slack value of each path reflecting a difference between a deadline and a latency of the path;

determining a priority of each task of the set of tasks of each path based on the path slack value of the path;

allocating, based on the priority of each task, the tasks of each of the paths of the set to corresponding computing units from a set of computing units of an architectural platform;

computing response times for the tasks of each path of the set of paths;

storing the response times in one or more lookup tables; and

during drive time, activating an application associated with the set of paths using the response times stored in the one or more lookup tables.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2016
From: LIN, CHUNG-WEI; KIM, BAEKGYU; SHIRAISHI, SHINICHI
To: TOYOTA JIDOSHA KABUSHIKI KAISHA
Reel/Frame 040198/0586 →
Continuity (1)
Related Publication 20180107507A1 · Apr 19, 2018