内存分配加速器制造技术

技术编号:17796653 阅读:101 留言:0更新日期:2018-04-25 20:08
一般描述了用于实施内存分配加速器的方法和系统的技术。处理器可以生成分配所请求内存块的请求。请求可以由内存分配加速器接收,内存分配加速器被配置为与处理器通信。内存分配加速器可以处理请求,以识别与请求相对应的特定内存块的地址,并可将该地址返回至处理器。

Memory allocation accelerator

Techniques for implementing memory allocation accelerator methods and systems are generally described. The processor can generate requests to allocate the requested memory blocks. The request can be received by the memory allocation accelerator, and the memory allocation accelerator is configured to communicate with the processor. The memory allocation accelerator can process requests to identify the address of a specific memory block corresponding to the request and to return the address to the processor.

【技术实现步骤摘要】
内存分配加速器本申请是国际申请号为PCT/US2013/030876、国际申请日为2013年3月13日、专利技术名称为“内存分配加速器”的PCT国际申请于2015年9月10日进入中国国家阶段后申请号为“CN201380074458.5”的中国国家阶段专利申请的分案申请。
本专利技术的实施方式总体上涉及内存分配,具体而言,涉及内存分配加速器。
技术介绍
除非本文中另有指示,本部分中描述的材料和术语并不是针对本申请中权利要求的现有技术,并且不因包括在本部分中而被承认是现有技术。在多核架构中,多个处理器内核可被包括在单个集成电路晶粒中或包括在设置在单个芯片封装件中的多个集成电路晶粒上。高速缓存可以被用于存储供处理器内核中的一个或多个访问的数据。数据能够是存储在通常定位在晶粒外部的较大内存中的数据子集。每个内核可以被提供有为内核存储数据的高速缓存。
技术实现思路
在一些示例中,大致描述了用于为处理器分配内存的方法。该方法可以包括由处理器生成分配所请求内存块的请求。该方法还可以包括由内存分配加速器接收请求,该内存分配加速器被配置为与处理器通信。该方法可以包括由内存分配加速器处理该请求,以识别与该请求相对应的特定内存块的地址。该方法还可以包括由内存分配加速器将该地址返回至处理器。在一些示例中,片(tiles)可以包括处理器内核、高速缓存以及内存分配加速器,该内存分配加速器被配置为与内核以及高速缓存通信。处理器可以被配置为由处理器生成分配所请求内存块的请求。该内存分配加速器可以被配置为接收该请求。该内存分配加速器可以被配置为处理该请求,以识别与该请求相对应的特定内存块的地址。该内存分配加速器可以被配置为将该地址返回至处理器。在一些示例中,内存分配加速器可以包括存储器和控制器,该控制器与该存储器通信。该控制器可以被配置为接收分配所请求内存块的请求。该控制器可以被配置为处理该请求,以识别与该请求相对应的特定内存块的地址。该控制器可以被配置为将地址返回。前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性的方面、实施例、术语和特征之外,另外的方面、实施例、术语和特征将变得清晰可见。附图说明通过下面结合附图给出的详细说明和随附的权利要求,本公开的前述特征以及其它特征将变得更加清晰。应理解的是,这些附图仅描绘了依照本公开的多个实施例,因此,不应视为对本公开范围的限制,将通过利用附图结合附加的具体描述和细节对本公开进行说明,在附图中:图1示出了能够用于实施内存分配加速器的示例系统;图2示出了能够用于实施图1的内存分配加速器的示例系统,其显示与可以使用的元数据相关的额外细节;图3示出了能够用于实施图2的内存分配加速器的示例系统,其显示包括预分配表的额外细节;图4描述了用于实施内存分配加速器的示例处理的流程图;图5示出了能够用于实施内存分配加速器的计算机程序产品;以及图6是示出了被设置为实施内存分配加速器的示例计算设备的框图;所有附图都根据本文中所描述的至少一些实施例设置。具体实施方式在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的组件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方面能够以各种不同配置来布置、替代、组合、分离和设计,所有这些都在本文中明确地构思出。本公开一般尤其涉及与内存分配加速器有关的方法、装置、系统、设备和计算机程序产品。简而言之,大致描述了用于实施内存分配加速器的方法和系统的技术。处理器可以生成分配所请求内存块的请求。该请求可以由内存分配加速器接收,该内存分配加速器被配置为与处理器通信。内存分配加速器可以处理该请求,以识别与该请求相对应的特定内存块的地址并可将该地址返回至处理器。图1示出了根据本文描述的至少一些实施例设置的用于实施内存分配加速器的示例系统。示例系统100可以包括晶粒102、硬件控制器106和/或内存108,其都被配置为与彼此通信。硬件控制器106和/或内存108可以被物理地定位在晶粒102外部。晶粒102可以包括片200,片200包括片200a、200b、200c和/或200d。片200可以包括处理器内核(本文中为“内核”或“处理器”或“处理器内核”)110(包括内核110a、110b、110c、110d)、高速缓存114(包括高速缓存114a、114b、114c和/或114d)和/或路由器300(包括路由器300a、300b、300c和/或300d)。路由器300可以被配置为通过网络150通信。高速缓存114可以是例如L2或L3高速缓存。片200a可以包括内核110a、高速缓存114a和/或路由器300a。片200b可以包括内核110b、高速缓存114b和/或路由器300b。片200c可以包括内核110c、高速缓存114c和/或路由器300c。片200d可以包括内核110d、高速缓存114d和/或路由器300d。硬件控制器106可以被配置为从程序80或操作系统104接收指令90。指令90可以与程序80的运行相关。响应于指令90,硬件控制器106可以在晶粒102中选择一个或多个片200,以运行程序80。一个或多个内核110可以包括内存分配加速器。针对如所示出的内核110a,内核110a可以包括内存分配加速器116。内存分配加速器116可以被配置为与内核110a通信并且可以是内核110a的功能单元。如以下将更具体描述的,内存分配加速器116可以是针对特定功能性能的硬件实施功能单元。内存分配加速器116可以针对分配由内核110a使用的内存的功能。内核110a可以例如向内存108请求分配内存块。分配内存的请求可以由内存分配加速器116接收和处理。内存分配加速器116可以识别与该请求相对应的内存块的起始地址。响应于该请求,内存分配加速器116可以向内核110a分配内存块。内存分配加速器116可以向内核110a提供分配至内核110a的内存块的起始位置的地址。在分配内存块并提供地址之后,内核110a可以使用内存块来继续处理程序80。图2示出了根据本文描述的至少一些实施例设置的能够用于实施图1的内存分配加速器的示例系统,其显示与可以使用的元数据相关的额外细节。图2大致与图1的系统100类似,其具有额外的细节。为清楚描述的目的,图2中与图1中的组件标记相同的那些组件将不再次描述。内存分配加速器116可以存储并保持元数据表122。元数据表122可以被用于跟踪待分配至处理器110a的地址。元数据表122可以被存储在例如高速缓存114中,其在所分配的地址处开始(以下描述)。可与由处理器110a执行的处理的固定地址区域相关地存储元数据122的地址。例如,由程序80使用的堆(heap)的第一页可以被保留为元数据122可以被存储的地址。在另一示例中,处理器110a可以包括寄存器132,其被用于存储元数据122的起始地址或地址。由于环境或程序在处理器110a中转换,内核110a的处理器状态(包括元数据表122的地址)可以被保持在内核110a中的寄存器1本文档来自技高网...
内存分配加速器

【技术保护点】
一种用于为处理器内核分配内存的方法,所述方法包括:由被配置为与所述处理器内核通信的内存分配加速器存储预先分配数据,所述预先分配数据包括指向可用内存块的指针;由所述内存分配加速器存储与可用于分配给所述处理器内核的内存相关的元数据,其中所述元数据包括指向列表中的起始地址的指针,其中所述列表标识被配置为与所述处理器内核通信的高速缓存内存块;在存储了所述预先分配数据和所述元数据之后,由所述内存分配加速器接收分配所请求内存块的请求;响应于所述请求,由所述内存分配加速器分析所述预先分配数据;响应于所请求块,确定指向所述可用块的指针包括在所述预先分配数据中;由所述内存分配加速器将由所述指针所标识的并且与所述响应块相对应的地址返回;由所述内存分配加速器识别所述元数据中的针对与所述响应块相对应的块尺寸的新地址;以及基于所述块尺寸修改所述元数据。

【技术特征摘要】
1.一种用于为处理器内核分配内存的方法,所述方法包括:由被配置为与所述处理器内核通信的内存分配加速器存储预先分配数据,所述预先分配数据包括指向可用内存块的指针;由所述内存分配加速器存储与可用于分配给所述处理器内核的内存相关的元数据,其中所述元数据包括指向列表中的起始地址的指针,其中所述列表标识被配置为与所述处理器内核通信的高速缓存内存块;在存储了所述预先分配数据和所述元数据之后,由所述内存分配加速器接收分配所请求内存块的请求;响应于所述请求,由所述内存分配加速器分析所述预先分配数据;响应于所请求块,确定指向所述可用块的指针包括在所述预先分配数据中;由所述内存分配加速器将由所述指针所标识的并且与所述响应块相对应的地址返回;由所述内存分配加速器识别所述元数据中的针对与所述响应块相对应的块尺寸的新地址;以及基于所述块尺寸修改所述元数据。2.根据权利要求1所述的方法,其中存储所述元数据包括存储包括指向空闲列表中的起始地址的指针的元数据,其中所述空闲列表标识解除分配的内存块。3.根据权利要求2所述的方法,其中修改所述元数据包括:由所述内存分配加速器基于所述块尺寸将所述空闲列表中的指针中的一个的地址改变为不同的地址;以及由所述内存分配加速器在所述元数据中标识所述块尺寸的多个可用块。4.根据权利要求1所述的方法,其中存储所述元数据包括存储包括指向池列表中的起始地址的指针的元数据,其中所述池列表标识池中的可用内存块。5.根据权利要求1所述的方法,其中:存储所述元数据包括存储包括指向池列表中的起始地址的指针的元数据,其中所述池列表标识池中的可用内存块;以及修改所述元数据包括:由所述内存分配加速器基于所述块尺寸将所述池列表中的指针中的一个的地址改变为不同的地址;以及由所述内存分配加速器在所述元数据中标识所述块尺寸的多个可用块。6.根据权利要求5所述的方法,其中所述池列表包括各个块尺寸的可用块数量的指示;以及所述方法进一步包括减小所述块尺寸的所请求块的可用块的数量。7.根据权利要求1所述的方法,进一步包括:由所述内存分配加速器将所述元数据的地址存储在与由所述处理器内核运行的程序相关的区域中。8.根据权利要求1所述的方法,进一步包括:将内存中的页指派至所述内存分配加速器;以及由所述内存分配加速器确定所述页中的可用块。9.一种用于为处理器内核分配内存的方法,所述方法包括:由被配置为与所述处理器内核通信的内存分配加速器存储与可用于分配给所述处理器内核的内存相关的元数据,其中所述元数据包括指向列表中的起始地址的指针,其中所述列表标识被配置为与所述处理器内核通信的高速缓存内存块;在存储了所述元数据之后,由所述内存分配加速器接收由所述处理器内核生成的用于分配一个块尺寸的所请求内存块的请求;由所述内存分配加速器处理所述请求以识别与所述请求相对应的特定可用内存块的地址;由所述内存分配加速器将所述地址返回所述处理器内核;由所述内存分配加速器接收解除分配所请求块的解除分配请求;以及由所述内存分配加速器处理所述解除分配请求,以更新所述列表,从而指向所请求块。10.根据权利要求9所述的方法,其中存储所述元数据包括存储包括指向空闲列表中的起始地址的指针的元数据,其中所述空闲列表标识解除分配的内存块。11.根据权利要求10所述的方法,其中处理所述解除分配...

【专利技术属性】
技术研发人员:Y·索林因
申请(专利权)人:英派尔科技开发有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1