用于提供多核心编程平台的装置和方法

文档序号:6533783阅读:152来源:国知局
用于提供多核心编程平台的装置和方法
【专利摘要】一种用于生成目标计算机的存储器映射的计算机实现的方法,包括根据存储在主机计算机的存储器中的多个标识符规定与目标计算机的存储器布局关联的至少一个标识符。该方法还包括规定与所规定的至少一个标识符关联的值。该方法还包括利用所述至少一个标识符和关联的至少一个值生成存储器映射的存储器映射定义。该方法还包括在目标计算机上部署软件,该软件结合了存储器映射定义并且包括引用用关联的值替换的所述至少一个标识符的可执行指令。
【专利说明】用于提供多核心编程平台的装置和方法
[0001] 相关申请的交叉引用
[0002] 本申请根据美国法典第35章119条第e项要求于2012年3月23日提交且标题 为"Apparatus and Method for Providing a Multicore Programming Platform',的美国 临时申请No. 61/615, 095的在先提交日的权益,该申请的全部内容通过引用被结合于此。

【背景技术】
[0003] 存储器访问是计算机性能中的主要限制因素。虽然处理器已经变得更快,但是存 储器访问时间没有W同样的速度而改善。用来改善计算机性能的增加数量的计算机元件, 例如多核也处理器和硬件加速器,对于访问相同的处理器发生竞争,从而恶化了该个问题。 为了缓解该种日益扩大的存储器访问差距,存储器体系架构不断发展并且变得日趋复杂, 例如多级高速缓存、本地和全局存储器,W及片上网络、统一存储器体系架构扣MA)或非统 一存储器体系架构(NUMA)。
[0004] 存储器体系架构变得更加复杂并且不同的多核也平台一般具有不同的存储器布 局。多核也应用从一个版本发展到下一个版本,是复杂而且昂贵的,并且必须W最少量的修 改可移植到众多平台。从应用管理存储器布局导致不可移植的应用W及次优的存储器利用 率。需要提供高度的应用可移植性和优化的新方法来利用存储器体系架构的进步。
[0005] 当前用于规定存储器的方法主要是基于通过链接器命令控制的存储器分段、特定 于平台的开发和配置工具并且常常引用从应用和其它软件中直接"硬编码"的存储器布局。 该些方法常常是依赖于编译器工具链的,不提供应用可移植性并且特定于平台的优化是耗 时而且昂贵的。
[0006] 因此,目前的解决办法或者是特定于体系架构,因此不提供应用可移植性的,或者 没有提供足够的方法用于处理多核也计算机存储器,或者二者兼有,从而导致复杂性和不 可移植性。对于用于W可移植的方式处理复杂的多核也计算机存储器的新方法存在很大的 需求。


【发明内容】

[0007] 根据示例性实施例,用于生成目标计算机的存储器映射(memory map)的计算机实 现的方法包括根据存储在主机计算机的存储器中的多个标识符规定与目标计算机的存储 器布局关联的至少一个标识符。该方法还包括规定与所规定的至少一个标识符关联的值。 该方法还包括利用所述至少一个标识符和关联的至少一个值生成存储器映射的存储器映 射定义。该方法还包括在目标计算机上部署软件,所述软件结合了所述存储器映射定义并 且包括引用用关联的值替换的所述至少一个标识符的可执行指令。
[0008] 根据示例性实施例,主机计算机包括存储器和处理器。处理器被配置为根据存储 在存储器中的多个标识符规定与目标计算机的存储器布局关联的至少一个标识符。处理器 还被配置为规定与所规定的至少一个标识符关联的值。处理器还被配置为利用所述至少一 个标识符和关联的至少一个值生成存储器映射的存储器映射定义。处理器还被配置为在目 标计算机上部署软件,所述软件结合了所述存储器映射定义并且包括引用用关联的值替换 的所述至少一个标识符的可执行指令。
[0009] 根据示例性实施例,非暂时性计算机可读介质中存储有可执行指令,所述可执行 指令在被主机计算机的处理器执行时,使处理器执行用于生成目标计算机的存储器映射的 方法。该方法包括根据存储在主机计算机的存储器中的多个标识符规定与目标计算机的存 储器布局关联的至少一个标识符。该方法还包括规定与所规定的至少一个标识符关联的 值。该方法还包括利用所述至少一个标识符和关联的至少一个值生成存储器映射的存储器 映射定义。该方法还包括在目标计算机上部署软件,所述软件结合了所述存储器映射定义 并且包括引用用关联的值替换的所述至少一个标识符的可执行指令。

【专利附图】

【附图说明】
[0010] 本进步及其许多附属优点的更完整理解将很容易获得,因为,当结合附图考虑时, 通过参考W下具体描述,该些变得更好理解。但是,附图及其示例叙述不是要W任何方式限 制本说明书所包含的本进步的范围。说明书及附图所包含的本进步的范围是由权利要求的 言辞定义的。
[0011] 图1说明了可移植存储器映射部署处理的示例性实施例。
[0012] 图2说明了多核也计算机系统的示例性实施例。
[0013] 图3说明了用于创建和验证(validate)存储器映射的处理的示例性实施例。
[0014] 图4a-4t说明了存储器映射编辑器工具的示例性实施例。
[0015] 图5a说明了用于两个不同的多核也计算机平台的示例存储器布局。
[0016] 图化和5c说明了存储器映射定义的示例性实施例。
[0017] 图5d说明了使用存储器映射定义的程序代码的示例性实施例。
[0018] 图6a说明了用于创建拓扑图的处理的示例性实施例。
[001引图化一6e-2说明了拓扑图编辑器工具的示例性实施例。
[0020] 图7说明了用于拓扑图资源池创建的处理的示例性实施例。
[0021] 图8说明了利用链接器指令把存储器分成段的示例性实施例。
[0022] 图9a说明了用于映射、配置和分配存储器的可移植存储器映射方法的示例性实 施例。
[0023] 图9b-9d说明了存储器映射定义的示例性实施例。
[0024] 图10说明了来自生成的存储器映射定义的示例摘录。
[002引图Ila-Ilj说明了可移植存储器映射的示例性应用。
[0026] 图12说明了示例性处理器图。

【具体实施方式】
[0027] 本文所述的本进步针对可W出口(ported)到多个多核也平台的可移植存储器映 射。
[0028] 可移植存储器映射方法和装置,也称为存储器映射,提供了完全可移植的存储器 映射定义W及大大简化的特定于多核也平台的存储器布局和存储器利用率,见图1。根据实 施例,多核也计算机或平台中的多个核也可W在单个芯片上或者在多个芯片上。存储器映 射定义是从用户定义的存储器映射生成的。在一些实施例中,存储器映射定义包括代表W 描述符文件格式提供的存储器映射的符号(symbolically)定义的值。描述符文件格式是 独立于体系架构工具和开发工具的。目P,描述符文件格式是独立于编译器、汇编器和链接器 的。在一些实施例中,存储器映射定义是从软件而符号引用的并且对存储器映射的改变导 致存储器映射定义的重新生成,而无需应用或其它软件中的改变。作为例子,两个多核也系 统可W具有相似的存储器映射,其中布局中的一些是完全相同的并且其它部分(诸如SRAM 和DRAM的量)不同。具有多种类型功能的应用,其中一种功能可W在一个系统上被强调, 并且另一种类型的功能在不同的系统上被强调。为了最优的存储器利用率,用于每个多核 也系统的存储器映射可W鉴于该些区别而不同地定义。
[0029] 可移植存储器映射提供了应用W及其它软件与多核也平台存储器布局之间的抽 象,从而启用不同平台之间的应用可移植性W及平台存储器利用率的迭代优化。利用可移 植存储器映射,为开发者提供了应用可移植性、减少的开发和调试(即上市时间)、W及多 核也平台存储器的最优利用率。例如,电信设备提供商常常具有几个平台,既有内部开发的 又有收购的。二者就存储器布局、处理器类型W及数量而言,底层的多核也硬件平台可W基 本上不同。电信设备提供商对于通常模块化的应用(和系统)软件具有大量的投资。电信 设备提供商需要能够在只有很少或没有改变的情况下跨众多平台W不同的组合来使用该 些模块,同时仍然从每个平台中获得最大化的存储器利用率,即性能。因此,本文所公开的 存储器映射和对应的存储器映射定义提供了电信设备提供商所需的应用可移植性。
[0030] 可移植存储器映射
[0031] 在一些实施例中,在可移植存储器映射中,存储器布局被结构化并分段成块或单 个的位置,其中每个块和位置都被指定标识符和值,即符号定义。该符号定义可W利用标识 符从多核也平台软件被引用。通过使用标识符,存储器映射可W出于优化的目的或者为了 适应具有不同存储器布局的多核也平台而被修改,而不需要软件(即应用、中间件或系统 软件)中的改变。符号定义不需要与特定于现有平台的存储器布局工具和编译器开发工具 一起使用的任何修改。因此,符号定义提供了多核也平台应用可移植性。
[0032] 作为例子,平台A可W具有比平台B更大量的高速存储器,该些高速存储器可W用 于性能关键的计算。与用于平台B的存储器映射相比,用于平台A的存储器映射可W被设 计或修改成分配更多的平台A上的高速存储器。因此,用于平台A和平台B的存储器映射 将使用相同的标识符用于快速存储器。但是,每个存储器映射中该标识符的值将不同,W反 映平台A和B中快速存储器的不同存储器尺寸。因此,可W开发引用用于快速存储器的标 识符的单个应用。但是,当该个应用在平台A上部署时,用于快速存储器的标识符依赖于用 于平台A的存储器映射,而当该个应用在平台B上部署时,用于快速存储器的标识符依赖于 用于平台B的存储器映射。
[0033] 在另一个例子中,平台C具有比平台D更大量的低功率存储器,该些低功率存储器 可W用于降低功耗。因此,相对于用于平台D的存储器映射,用于平台C的存储器映射可W 被设计或修改成分配更多的平台C上的低功率存储器。因此,当应用部署在平台C和D上 并且引用用于低功率存储器的标识符时,该标识符的值依赖于用于平台C和D的相应的存 储器映射。
[0034] 根据一些实施例,为了提供多核也平台应用可移植性和存储器利用率,可移植存 储器映射具有W下最小的需求;标识符、值和生成的存储器映射定义。在附加实施例中,可 移植存储器映射包括包含特定于平台的值的多平台定义,W便自动化用于众多多核也平台 的存储器映射定义的生成。作为例子,单个存储器映射定义可W包括用于第一平台和第二 平台的定义。本领域普通技术人员会理解,存储器映射定义不限于两个平台并且可W包括 用于任何数量的期望的平台的定义。
[00巧]标识符和值代表符号定义。在一些实施例中,存储器映射定义包含用于在存储器 映射中规定的一切的符号定义。存储器映射定义是独立于平台工具和编译器工具的。就此 而言,描述符文件中的符号定义W相同的方式被不同的编译器解释并且因此不需要特定于 平台的存储器布局工具。多核也计算机存储器布局在可移植存储器映射中定义,图3。通过 用户输入,常量被定义并且存储器被分段,例如部分、范围和地址,W及存储器性质和属性 的规范,例如类型、访问权限、寻址(物理的、虚拟的)延迟和带宽、功耗。在可移植存储器 映射中使用的符号定义的例子在表1中示出。虽然表1说明了特定的例子,但是本领域普 通技术人员将理解,本文所讨论的实施例不限于表1。
[0036] 在一些实施例中,标识符是预定义的并且存储在标识符库中。例如,在存储器布局 的上下文中,诸如部分、范围和地址之类的术语被本领域普通技术人员使用。因此,标识符 库可W预加载该些预定义的标识符。在附加实施例中,应用开发者可W创建他们自己的标 识符。
[0037] 作为例子,预定义类别:常量、部分地址和范围。开发者可W在存储器映射中创建 他/她自己的项目名字并且标识符是由预定义的类别和开发者提供的名字的组合构成的。 开发者能够自由地选择他们自己的名字,即,对于SRAM没有预定义的标识符。当然可W提 供包含SRAM、DRAM等的预定义的模板存储器映射用于平台。
[0038] W下是示例标识符:
[0039] MMAP_MC_PLATFORM_WCT_SRAM_GLOBAL_START,项 MC_PLATF0RM 和 SRAM 是用户定 义的。项Global是基于用户输入(即,选择了全局作用域)由系统定义的。其余的项是基 于命名法生成的。
[0040]

【权利要求】
1. 一种用于生成目标计算机的存储器映射的计算机实现的方法,包括: 根据存储在主机计算机的存储器中的多个标识符,规定与所述目标计算机的存储器布 局关联的至少一个标识符; 规定与所规定的至少一个标识符关联的值; 利用所述至少一个标识符及关联的至少一个值生成所述存储器映射的存储器映射定 义;及 在所述目标计算机上部署软件,所述软件结合了所述存储器映射定义并且包括引用用 关联的值替换的所述至少一个标识符的可执行指令。
2. 如权利要求1所述的计算机实现的方法,其中所述目标计算机是单核心计算机或多 核心计算机、虚拟化的计算机,或者其组合。
3. 如权利要求1所述的计算机实现的方法,其中所述目标计算机和所述主机计算机是 同一计算机或者是不同的计算机。
4. 如权利要求1所述的计算机实现的方法,其中,在软件执行中使用之前,标识符被关 联的值替换。
5. 如权利要求1所述的计算机实现的方法,其中,在软件执行中使用时,标识符用关联 的值替换。
6. 如权利要求1所述的计算机实现的方法,其中所述存储器映射在确定所述至少一个 标识符没有违反预定条件后被验证。
7. 如权利要求6所述的计算机实现的方法,其中所述存储器映射定义在所述存储器映 射验证后以可移植描述符文件格式生成。
8. 如权利要求1所述的计算机实现的方法,其中所述存储器布局被分段成在所述存储 器映射定义中定义的存储器映射部分,并且,从所述存储器映射定义生成链接器文件用于 所述存储器映射部分与链接器定义的部分的集成。
9. 如权利要求1所述的计算机实现的方法,其中所述存储器映射链接到所述目标计算 机的拓扑图,所述拓扑图包括对应于所述软件的一个或多个功能的至少一个节点。
10. 如权利要求1所述的计算机实现的方法,其中,所述软件能从第一平台移植到第二 平台而无需对所述软件进行修改。
11. 如权利要求1所述的计算机实现的方法,其中 所述存储器布局包括第一种类型的存储器和比第一种类型的存储器快的第二种类型 的存储器,及 为了最优的存储器利用率,所述至少一个标识符只与第二种类型的存储器关联。
12. 如权利要求9所述的计算机实现的方法,其中所述存储器映射定义结合在所述拓 扑图的拓扑图资源池的规范和配置中。
13. 如权利要求1所述的计算机实现的方法,其中所述存储器映射被重新配置并验证, 并且所述存储器映射定义利用重新配置的存储器映射被重新生成而无需改变所述软件。
14. 如权利要求1所述的计算机实现的方法,其中,所述存储器映射定义和拓扑图定义 结合链接器命令文件和运行时库被构造用于在所述目标计算机上执行。
15. 如权利要求1所述的计算机实现的方法,其中所述存储器映射还包括包含特定于 平台的值的多平台定义,以便自动化用于众多多核心平台的一个或多个存储器映射定义的 生成。
16. 如权利要求1所述的计算机实现的方法,还包括: 在另一目标计算机上部署使用所述存储器映射定义的所述软件,其中所述另一目标计 算机具有与所述目标计算机的所述存储器布局不同的存储器布局。
17. -种主机计算机,包括: 存储器;及 处理器,被配置为 根据存储在所述主机计算机的所述存储器中的多个标识符,规定与目标计算机的存储 器布局关联的至少一个标识符; 规定与所规定的至少一个标识符关联的值; 利用所述至少一个标识符及关联的至少一个值生成所述存储器映射的存储器映射定 义;及 在所述目标计算机上部署软件,所述软件结合了所述存储器映射定义并且包括引用用 关联的值替换的所述至少一个标识符的可执行指令。
18. 如权利要求17所述的主机计算机,其中所述目标计算机是单核心计算机或多核心 计算机、虚拟化的计算机,或者其组合。
19. 如权利要求17所述的主机计算机,其中所述目标计算机和所述主机计算机是同一 计算机或者是不同的计算机。
20. 如权利要求17所述的主机计算机,其中,在软件执行中使用之前,标识符用关联的 值替换。
21. 如权利要求17所述的主机计算机,其中,在软件执行中使用时,标识符由所述目标 计算机用关联的值替换。
22. 如权利要求17所述的主机计算机,其中所述处理器还被配置为在确定所述至少一 个标识符没有违反预定条件后验证所述存储器映射。
23. 如权利要求22所述的主机计算机,其中所述处理器还被配置为在所述存储器映射 验证后以可移植描述符文件格式生成所述存储器映射定义。
24. 如权利要求17所述的主机计算机,其中所述存储器布局被分段成在所述存储器映 射定义中定义的存储器映射部分,并且,从所述存储器映射定义生成链接器文件用于所述 存储器映射部分与链接器定义的部分的集成。
25. 如权利要求17所述的主机计算机,其中所述存储器映射链接到所述目标计算机的 拓扑图,所述拓扑图包括对应于所述软件的一个或多个功能的至少一个节点。
26. 如权利要求17所述的主机计算机,其中,目标计算机软件能从第一平台移植到第 二平台而无需对所述软件进行修改。
27. 如权利要求17所述的主机计算机,其中,在所述目标计算机中, 所述存储器布局包括第一种类型的存储器和比第一种类型的存储器快的第二种类型 的存储器,及 为了最优的存储器利用率,所述至少一个标识符只与第二种类型的存储器关联。
28. 如权利要求25所述的主机计算机,其中所述存储器映射定义结合在所述拓扑图的 拓扑图资源池的规范和配置中。
29. 如权利要求17所述的主机计算机,其中所述存储器映射被重新配置并验证,并且 所述存储器映射定义利用重新配置的存储器映射被重新生成而无需改变所述软件。
30. 如权利要求17所述的主机计算机,其中,所述存储器映射定义和拓扑图定义结合 链接器命令文件和运行时库而被构造,以用于在计算机上执行。
31. 如权利要求17所述的主机计算机,其中所述存储器映射还包括包含特定于平台的 值的多平台定义,以便自动化用于众多多核心平台的一个或多个存储器映射定义的生成。
32. 如权利要求17所述的主机计算机,还包括: 在另一目标计算机上部署使用所述存储器映射定义的所述软件,其中所述另一目标计 算机具有与所述目标计算机的所述存储器布局不同的存储器布局。
33. -种其中存储有可执行指令的非暂时性计算机可读介质,所述指令在被主机计算 机的处理器执行时使所述处理器执行用于生成目标计算机的存储器映射的方法,所述方法 包括: 根据存储在所述主机计算机的存储器中的多个标识符,规定与所述目标计算机的存储 器布局关联的至少一个标识符; 规定与所规定的至少一个标识符关联的值; 利用所述至少一个标识符及关联的至少一个值生成所述存储器映射的存储器映射定 义;及 在所述目标计算机上部署软件,所述软件结合了所述存储器映射定义并且包括引用用 关联的值替换的所述至少一个标识符的可执行指令。
34. 如权利要求33所述的非暂时性计算机可读介质,其中所述目标计算机是单核心计 算机或多核心计算机、虚拟化的计算机,或者其组合。
35. 如权利要求33所述的非暂时性计算机可读介质,其中所述目标计算机和所述主机 计算机是同一计算机或者是不同的计算机。
36. 如权利要求33所述的非暂时性计算机可读介质,其中,在软件执行中使用之前,标 识符用关联的值替换。
37. 如权利要求33所述的非暂时性计算机可读介质,其中,在软件执行中使用时,标识 符被关联的值替换。
38. 如权利要求33所述的非暂时性计算机可读介质,其中所述存储器映射在确定所述 至少一个标识符没有违反预定条件后被验证。
39. 如权利要求38所述的非暂时性计算机可读介质,其中所述存储器映射定义在所述 存储器映射验证后以可移植描述符文件格式生成。
40. 如权利要求33所述的非暂时性计算机可读介质,其中所述存储器布局被分段成在 所述存储器映射定义中定义的存储器映射部分,并且,从所述存储器映射定义生成链接器 文件用于所述存储器映射部分与链接器定义的部分的集成。
41. 如权利要求33所述的非暂时性计算机可读介质,其中所述存储器映射链接到所 述目标计算机的拓扑图,所述拓扑图包括对应于所述软件的一个或多个功能的至少一个节 点。
42. 如权利要求33所述的非暂时性计算机可读介质,其中,所述软件能从第一平台移 植到第二平台而无需对所述软件进行修改。
43. 如权利要求33所述的非暂时性计算机可读介质,其中 所述存储器布局包括第一种类型的存储器和比第一种类型的存储器快的第二种类型 的存储器,及 为了最优的存储器利用率,所述至少一个标识符只与第二种类型的存储器关联。
44. 如权利要求41所述的非暂时性计算机可读介质,其中所述存储器映射定义结合在 所述拓扑图的拓扑图资源池的规范和配置中。
45. 如权利要求33所述的非暂时性计算机可读介质,其中所述存储器映射被重新配置 并验证,并且所述存储器映射定义利用重新配置的存储器映射被重新生成而无需改变所述 软件。
46. 如权利要求33所述的非暂时性计算机可读介质,其中,所述存储器映射定义和拓 扑图定义结合链接器命令文件和运行时库而被构造,以用于在所述目标计算机上执行。
47. 如权利要求33所述的非暂时性计算机可读介质,其中所述存储器映射还包括包含 特定于平台的值的多平台定义,以便自动化用于众多多核心平台的一个或多个存储器映射 定义的生成。
48. 如权利要求33所述的非暂时性计算机可读介质,还包括: 在另一目标计算机上部署使用所述存储器映射定义的所述软件,其中所述另一目标计 算机具有与所述目标计算机的所述存储器布局不同的存储器布局。
【文档编号】G06F9/44GK104321742SQ201380024387
【公开日】2015年1月28日 申请日期:2013年3月25日 优先权日:2012年3月23日
【发明者】S·布瑞尔梅尔, T·阿布尔拉塔, D·图尔内尔 申请人:波利科雷软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1