NUMA架构的软件优化方法和设备与流程

文档序号:36825593发布日期:2024-01-26 16:36阅读:26来源:国知局
NUMA架构的软件优化方法和设备与流程

本发明涉及计算机。例如,本发明涉及用于多核系统的软件优化设备和方法。


背景技术:

1、多核(或多处理器)系统广泛用于控制实时应用的各种应用场景。非统一内存访问(non-uniform memory access,numa)是多核系统的计算机内存架构。图6示出了numa架构的抽象模型,其中,每个处理器(在本发明中也称为核或中央处理器(central processingunit,cpu))直接耦合到其自己的本地随机存取内存(local random access memory,lram)。此外,多个处理器通常可以共享至少一个全局随机存取内存(global randomaccess memory,gram)。与统一内存访问架构(其中,每个处理器具有相同的内存访问时间)不同,numa架构的处理器可以比非本地内存更快地访问自己的lram。需要说明的是,本发明中的lram不同于cpu高速缓存,cpu高速缓存位于cpu内部,并且不被认为是其它cpu可访问的内存。相反,本发明中的lram可以由通过总线连接的所有cpu访问。非本地内存可以包括另一处理器本地的内存,或在多个处理器之间共享的全局内存,例如,gram。numa架构为多处理器系统中的每个处理器(或一组处理器)提供了单独的内存分配,从而避免了当多个处理器尝试寻址同一内存时的性能下降。

2、例如,在汽车领域,机动车辆的电子控制单元(electronic control unit,ecu)通常可以包括多个核。现代车辆现在能够支持许多复杂的功能,例如信息娱乐、导航、安全、高级发动机排放控制、基于图像检测的服务和自动驾驶。因此,嵌入车辆中的ecu数量正在稳步增长,可以达到100多个ecu。一种名为自动开放系统架构(automotive open systemarchitecture,autosar)的标准化架构被广泛采用,以标准化现代车辆中使用的硬件架构和软件架构,目的是简化车辆相关软件功能的开发和集成。自autosar 4.0以来,引入了多核支持。例如,提供了一个操作系统间应用程序通信器(inter os-applicationcommunicator,ioc)作为与软件架构的运行时环境(runtime environment,rte)的连接,以映射跨核和内存的通信。通过在多核系统(例如,具有numa架构)上运行复杂的功能,可以提高系统性能。需要说明的是,多个ecu的功能可以在单个ecu中实现。例如,信息娱乐和导航可以在不同的ecu上单独实现,也可以在同一ecu上联合实现。


技术实现思路

1、目前,在软件级别,变量(或标签)和功能(或可运行程序(runnable))可以映射到特定核,以根据预测算法等执行。但是,numa架构在可预测性方面存在挑战性。因此,将软件功能和共享变量映射到核中既复杂又耗时。

2、例如,用于多处理器的嵌入式系统应用通常可以包括数千个功能,这些功能使用共享变量以良好连接的模式相互通信。在确保最优系统性能的同时,将功能和变量映射到核并不容易。

3、例如,在软件到硬件部署阶段期间,可以解决两个相关的问题:向核分配任务功能,以及将共享变量放置在内存中。这可能会对numa平台产生更大的影响,因为每个核可能具有不同的最快内存访问时间。部署不当可能会对硬件系统的性能和正确性产生负面影响。这两个问题也是高度相关的,在numa平台上尤其如此。根据内存中的变量的放置和到核的相关功能分配,内存操作可能会引起附加的停顿周期。因此,根据不同的方案,使用相关变量执行给定任务功能所需的时间可能会大不相同。

4、典型的软件应用可以包括大约数千个功能和一万个共享变量。目标平台可以包括多个核,以及多个本地ram和全局ram。这使得无法手工或手动获得质量有保证的软件部署方案。典型的软件部署可以包括向核分配功能。为多核系统设计软件的基本挑战之一是确保有效使用可用的计算、通信和内存资源。例如,在autosar中,当ioc使用发送器-接收器协议(例如,通过实现数据内存缓冲区)操作时,例如,当尝试实现在多个核上运行的高度并行性时,找到适当的调度和对应的时间关键数据传输执行是一项具有挑战性的任务。此外,处理在不同核上并行运行的功能之间的通信变得更加困难,并可能需要复杂的软件部署过程,以确保整个系统的安全可靠运行。例如,车辆控制系统可能需要确保安全功能不会被其它不那么紧急的功能(例如导航等)阻塞。

5、鉴于上述情况,本发明旨在提高自动软件部署的效率。目标是确保可用资源的有效和/或最优利用率。本发明的另一个目的是提供一种用于自动获得嵌入式应用到多核系统的映射的方案。本发明的另一个目的是为实时应用提供更快、更鲁棒和可预测的软件部署/配置方案。

6、这些和其它目的是通过独立权利要求中所描述的本发明的方案来实现的。有利的实现方式在从属权利要求中进一步限定。

7、本发明的第一方面提供了用于将共享多个变量的多个功能映射到多核计算系统的设备。多核计算系统包括多个核和多个内存。每个核耦合到多个内存中的内存。该设备用于根据多个内存的一个或多个特征将变量中的每个变量分配给多个内存中的一个内存,以获得多个变量到多个内存的分配。该设备还用于根据多个变量到多个内存的分配将多个功能映射到多个核。

8、本发明中的软件部署可以理解为推断功能到核的映射(或分配)和变量到内存的映射。

9、通过将共享变量分配给内存,并根据多个变量到多个内存的分配将多个功能映射到多个核,考虑多个内存的一个或多个特征对共享变量的影响。优点是,由于将变量分配给内存而提高了效率,所以可以提高多核系统的整体性能。

10、在第一方面的一种实现方式中,多个内存的一个或多个特征可以包括每个内存的访问时间。

11、通过考虑每个内存的访问时间,可以将使用频率较高或对系统性能影响较大的变量分配给更快的内存。多核系统的整体资源利用率可以优化。

12、在第一方面的一种实现方式中,设备还可以用于将变量相对于多个功能进行划分,以获得变量与功能之间的绑定关系。该设备还可以用于进一步根据变量与功能之间的绑定关系将多个功能映射到多个核。

13、可选地,变量与功能之间的绑定关系可以包括一对一关系,或多对一关系。可选地,每个变量最多绑定一个功能。多个变量可以绑定到同一个功能。

14、可选地,为了进一步根据变量与功能的绑定关系将多个功能映射到多个核,设备可以用于确定所映射的核(功能在该核上执行),以节省功能的最大执行时间。当功能映射到特定核时,设备还可以用于将绑定关系中绑定到功能的一个或多个变量映射到相对于特定核最近或访问时间最快的内存。

15、通过将变量绑定到功能,多个变量到多个内存的分配可以与功能到核的分配一起完成。优点是可以更高效地利用多个核的可用计算资源和内存资源。

16、在第一方面的一种实现方式中,对于对变量进行划分,设备可以用于,对于每个功能:

17、-获得执行功能的频率;

18、-根据功能的频率将多个变量中的一个或多个变量与功能关联。

19、可选地,执行该功能的频率可以理解为该功能的最大执行频率。每个功能的最大执行频率可以是预先定义的,也可以是预先配置的。最大执行频率可以作为设备的输入提供,例如,由每个功能的提供者提供。

20、可选地,该设备可以用于在假设每个变量映射到本地内存的情况下,计算在每个功能的一次调用中可以节省的执行周期数,本地内存是距离执行每个功能的核最近的内存。该设备可以用于比较不同的假设,并以可以节省最大总执行时间的方式将一个或多个变量与每个功能关联。优点是可以将更多的资源分配给更频繁地执行的功能。这样,可以高效地利用硬件资源,提高整体系统性能。

21、在第一方面的一种实现方式中,多个内存的一个或多个特征可以包括每个内存的大小,该设备用于进一步根据变量的大小和每个内存的大小关联每个变量。

22、通过考虑每个内存的大小,变量可以根据变量的大小和每个内存的大小,以高效利用内存的总容量的方式分配。此外,可以保证没有内存过载。

23、在第一方面的一种实现方式中,该设备可以用于进一步根据在每个核执行功能所需的每个功能的周期数将功能映射到多个核。

24、在第一方面的一种实现方式中,该设备可以用于以每个核不过载的方式将功能映射到多个核。

25、可选地,多个核可以具有不同的性能和功耗。例如,多个核可以包括至少一个高性能核和至少一个低功耗核。该设备可以用于将执行周期较多的功能映射到高性能核,将执行周期较少的功能映射到低功耗核。

26、在第一方面的一种实现方式中,该设备还可以用于根据同一核的两个或更多个功能的释放模式将同一核的两个或更多个功能组合成任务。

27、可选地,组合的两个或更多个功能不应自我挂起。也就是说,一个功能不需要等待另一个功能完成。

28、在第一方面的一种实现方式中,该设备还可以用于为每个任务分配优先级,以最小化每个核的资源利用率。

29、这可以确保有限和/或更好的资源(例如,更快的cpu和更快的内存)可以分配给高优先级的任务。因此,通过确保高优先级任务的稳定性,可以进一步提高系统性能。

30、在第一方面的一种实现方式中,该设备可以用于根据任务的截止日期确定每个任务的优先级。

31、可选地,截止日期可以理解为任务需要完成的特定时间段。

32、使用截止日期的一个好处是,确保满足每个任务的具体定时约束。

33、在第一方面的一种实现方式中,该设备可以用于进一步根据一个或多个其它任务引起的干扰确定每个任务的优先级。

34、可选地,该设备可以以较低的优先级分配可能导致更大干扰的任务。因此,干扰更大的任务可以在其它任务完成后执行,以确保系统性能的平稳。这样,可以减少任务之间的干扰。

35、可选地,设备在确定变量和功能的分配时,可以将干扰用作约束。

36、在第一方面的一种实现方式中,该设备可以用于进一步根据任务处于等待状态的阻塞时间确定每个任务的优先级。

37、可选地,该设备在确定变量和功能的分配时,可以将阻塞时间用作约束。

38、在第一方面的一种实现方式中,为了将多个功能映射到多个核,该设备可以用于:将两个或更多个功能分组为单个聚类功能,其中,两个或更多个功能共享一个或多个公共划分变量;将单个聚类功能映射到多个核中的一个核。

39、可选地,该设备还可以用于将两个或更多个可运行程序及其绑定的标签分组为单个聚类功能。单个聚类功能可以具有可定制的大小。在本发明中,该方案可以称为分层聚类。

40、通过将单个聚类功能(或简称为聚类)用作将多个功能映射到多个核的基本单元,可以减少映射优化所涉及的参数数量。聚类的优点是可以确保软件部署优化的可操作性。

41、在第一方面的一种实现方式中,多个内存可以包括全局内存(或gram)和多个本地内存(或lram)。全局内存由多个核共享,每个本地内存直接耦合到多个核中的一个核。

42、可选地,在将一个或多个变量绑定到功能之后,该设备可以用于将多个功能映射到多个核。该设备还可以用于将一个或多个绑定变量映射到核的lram。由于具有绑定关系,所以一个或多个绑定变量的映射可以隐式地完成。

43、可选地,该设备还可以用于将与聚类功能关联的一个或多个公共划分变量分配给直接耦合到所映射的核的本地内存。

44、在第一方面的一种实现方式中,多个功能可以是软件组件在运行时环境中的多个可运行程序,多个共享变量可以是软件组件的输入。

45、本发明的第二方面提供了用于将共享多个变量的多个功能映射到多核计算系统的方法。多核计算系统包括多个核和多个内存。每个核耦合到多个内存中的内存。该方法由设备执行,包括以下步骤:

46、-设备根据多个内存的一个或多个特征将变量中的每个变量分配给多个内存中的一个内存,以获得多个变量到多个内存的分配;

47、-设备根据多个变量到多个内存的分配将多个功能映射到多个核。

48、在第二方面的一种实现方式中,多个内存的一个或多个特征可以包括每个内存的访问时间。

49、在第二方面的一种实现方式中,该方法还可以包括:

50、该设备将变量相对于多个功能进行划分,以获得变量与功能的绑定关系;

51、该设备进一步根据变量与功能之间的绑定关系将多个功能映射到多个核。

52、在第二方面的一种实现方式中,对变量进行划分的步骤可以包括:对于每个功能:

53、-该设备获得执行功能的频率;

54、-该设备根据功能的频率将多个变量中的一个或多个变量与功能关联。

55、在第二方面的一种实现方式中,多个内存的一个或多个特征可以包括每个内存的大小,该方法可以包括该设备进一步根据变量的大小和每个内存的大小关联每个变量。

56、在第二方面的一种实现方式中,该方法可以包括进一步根据在每个核执行功能所需的每个功能的周期数将功能映射到多个核。

57、在第二方面的一种实现方式中,该方法可以包括以每个核不过载的方式将功能映射到多个核。

58、在第二方面的一种实现方式中,该方法可以包括:该设备根据同一核的两个或更多个功能的释放模式将同一核的两个或更多个功能组合成任务。

59、在第二方面的一种实现方式中,该方法还可以包括:该设备为每个任务分配优先级,以最小化每个核的资源利用率。

60、在第二方面的一种实现方式中,该方法还可以包括:该设备根据任务的截止日期确定每个任务的优先级。

61、在第二方面的一种实现方式中,该方法还可以包括该设备进一步根据一个或多个其它任务引起的干扰确定每个任务的优先级。

62、在第二方面的一种实现方式中,该方法可以包括该设备进一步根据任务处于等待状态的阻塞时间确定每个任务的优先级。

63、在第二方面的一种实现方式中,将多个功能映射到多个核的步骤可以包括:该设备将两个或更多个功能分组为单个聚类功能;将单个聚类功能映射到多个核中的一个核。两个或更多个功能可以共享一个或多个公共划分变量。

64、在第二方面的一种实现方式中,多个内存可以包括全局内存和多个本地内存。全局内存由多个核共享,每个本地内存直接耦合到多个核中的一个核。该方法还可以包括将与聚类功能关联的一个或多个公共划分变量分配给直接耦合到所映射的核的本地内存。

65、在第二方面的一种实现方式中,多个功能可以是软件组件在运行时环境中的多个可运行程序,多个共享变量可以是软件组件的输入。

66、第二方面及其实现方式的方法可以实现与以上第一方面及其实现方式所描述的设备相同的优点和效果。

67、本发明的第三方面提供了一种包括指令的计算机程序,当计算机执行程序时,这些指令使计算机执行根据第二方面或其任何实现方式的方法。

68、本发明的第四方面提供了一种非瞬时性存储介质,该非瞬时性存储介质存储可执行程序代码,该可执行程序代码在由处理器执行时,执行根据第二方面或其实现方式中的任一种的方法。

69、需要说明的是,本技术中描述的所有设备、元件、单元和模块可以通过软件或硬件元件或其任何类型的组合实现。本技术中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明相应的实体用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1