加速器缓存器访问的制作方法

文档序号:9355174阅读:394来源:国知局
加速器缓存器访问的制作方法
【专利说明】
【背景技术】
[0001]除非在此处进行相反说明,否则此部分所描述的材料不是本申请权利要求的现有技术并且不因包含在该部分中而承认是现有技术。
[0002]在多核体系结构中,可以在单个集成电路晶粒中包括多个处理器核,或者在布置于单个芯片封装中的多个集成电路晶粒上包括多个处理器核。高速缓冲存储器可以用来存储一个或多个处理器核访问的数据。加速器可以是集中于为一个或多个应用处理数据的专用处理器。
[0003]概述
[0004]在一些示例中,总体描述了加速器将数据存储在缓冲器中的方法。所述方法可以包括:由加速器接收处理与由第一应用分派的第一任务相关联的数据的第一请求。所述方法可以包括:向存储器请求第一地址范围内的用于第一任务的第一数据。第一地址范围可以映射到分配给第一应用的第一虚拟空间中的第二地址范围。该方法还可以包括接收第一数据。该方法可以包括将第一数据存储在缓冲器中。该方法可以包括:由加速器接收处理与由第二应用分派的第二任务相关联的数据的第二请求。该方法还可以包括:向存储器为第二应用请求第三地址范围内的至少一些第二数据。第三地址范围可以映射到分配给第二应用的第二虚拟空间中的第四地址范围。该方法可以包括接收第二数据的一部分。该方法可以包括将第二数据的所述部分存储在缓冲器中。
[0005]在一些示例中,总体地描述了配置为将数据存储在加速器的缓冲器中以便访问的系统。该系统可以包括加速器处理器、配置为与加速器处理器通信的缓冲器以及缓冲器控制器,该缓冲器控制器配置为与加速器处理器和缓冲器通信。缓冲器控制器可配置为接收处理与由第一应用分派的第一任务相关联的数据的第一请求。缓冲器控制器可配置为,响应于第一请求,向存储器请求第一地址范围内的第一数据。第一地址范围可以映射到第二地址范围。第二地址范围可以在分配给第一应用的第一虚拟空间中。缓冲器控制器可以配置为接收第一数据。缓冲器控制器可以配置为将第一数据存储在缓冲器中。缓冲器控制器可配置为接收处理与由第二应用分派的第二任务相关联的数据的第二请求。缓冲器控制器可配置为,响应于第二请求,向存储器请求第三地址范围内的至少一些第二数据。第三地址范围可以映射到第四地址范围。第四地址范围可以在分配给第二应用的第二虚拟空间中。缓冲器控制器可配置为接收第二数据的至少一部分。缓冲器控制器可配置为将第二数据的所述部分存储在缓冲器中。
[0006]在一些示例中,总体地描述了配置为将数据存储在加速器的缓冲器中以便访问的系统。该系统可以包括加速器处理器、缓冲器以及缓冲器控制器,缓冲器配置为与加速器处理器通信,该缓冲器控制器配置为与加速器处理器和缓冲器通信。该系统还可以包括:操作系统,其配置为与缓冲器控制器通信;存储器,其配置为与操作系统和缓冲器控制器通信;以及存储器管理单元,其配置为与存储器、第一应用和第二应用通信。该存储器管理单元可配置为将存储器中的第一地址范围映射到第二地址范围。第二地址范围可以在分配给第一应用的第一虚拟空间中。存储器管理单元可配置为将存储器中的第三地址范围映射到第四地址范围。第四地址范围可以在分配给第二应用的第二虚拟空间中。操作系统可配置为接收由第一应用使用加速器处理器的第一请求。操作系统可配置为接收由第二应用使用加速器处理器的第二请求。操作系统可配置为将第一请求发送到缓冲器控制器。操作系统可配置为将第二请求发送到缓冲器控制器。缓冲器控制器可配置为接收第一请求。缓冲器控制器可配置为,响应于第一请求,向存储器请求第一地址范围内的第一数据。缓冲器控制器可配置为接收第一数据。缓冲器控制器可配置为将第一数据存储在缓冲器中。缓冲器控制器可配置为接收第二请求。缓冲器控制器可配置为,响应于第二请求,向存储器请求第三地址范围内的至少一些第二数据。缓冲器控制器可配置为接收第二数据的至少一部分且将第二数据的所述部分存储在缓冲器中。
[0007]前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性的方面、实施例和特征之外,另外的方面、实施例和特征将变得清晰可见。
【附图说明】
[0008]通过下面结合附图给出的详细说明和随附的权利要求,本公开的前述特征以及其它特征将变得更加清晰。应理解的是,这些附图仅描绘了依照本公开的多个实施例,因此,不应视为对本发明范围的限制,将通过利用附图结合附加的具体描述和细节对本公开进行说明,在附图中:
[0009]图1示出了能够用来实现加速器缓冲器访问的示例的系统;
[0010]图2示出了能够用来实现图1的加速器缓冲器访问的示例的系统,有附加的细
-K-
T ;
[0011]图3示出了能够用来实现图2的加速器缓冲器访问的示例的系统,附加的细节与对将数据移入缓冲器中进行操纵的方法有关;
[0012]图4示出了能够用来实现图2的加速器缓冲器访问的示例的系统,附加的细节与对将数据移入缓冲器中进行操纵的附加方法有关;
[0013]图5描绘了用来实现加速器缓冲器访问的示例处理的流程图;
[0014]图6示出了能够用来实现加速器缓冲器访问的计算机程序产品;以及
[0015]图7是示出布置成实现加速器缓冲器访问的示例的计算设备的框图;
[0016]所有都根据本文所描述的至少一些实施例来布置。
【具体实施方式】
[0017]在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以各种不同配置来布置、替代、组合、分离和设计,所有这些都在本文中明确地构思出。
[0018]本公开大体尤其涉及与加速器缓冲器技术有关的方法、装置、系统、设备和计算机程序产品。
[0019]简言之,总体地描述了关于用来提供加速器缓冲器访问的方法和系统的技术。操作系统可以分配虚拟地址空间中的地址范围和物理(或主)存储器的缓冲器映射区域中的地址范围。由应用读数据或写数据的请求可以从虚拟地址空间中读取或者写入虚拟地址空间。然后,存储器管理单元可以将读请求或写请求从虚拟地址空间映射到主或物理存储器。多个应用可能能够操作得就好像每个应用对加速器及其缓冲器具有排他性访问一样。应用任务对缓冲器的多次访问可以避免冲突,因为存储器控制器可配置为基于分配给应用的相应的应用标识符来取得数据。每个应用可以被分配有不同的应用标识符。
[0020]图1示出了依照本文所描述的至少一些实施例布置的能够用来实现加速器缓冲器访问的示例的系统。示例的系统100可以包括晶粒102、操作系统(“OS”)148、主存储器154和/或存储器管理单元114。核可以各自具有私有的存储器管理单元,或者多个核可以共享存储器管理单元。存储器管理单元114可以位于晶粒102上或晶粒102之外。晶粒102可以配置为与操作系统148和/或主存储器154通信。晶粒102可以包括片140、和/或加速器片144。片140可以包括处理器核104和/或高速缓存110。片144可以包括加速器处理器(“ACCel”)108。加速器处理器108可以为例如专用于特定操作的处理器核,例如压缩引擎、加密引擎、XML(可扩展标记语言)引擎、正则表达式引擎、分组处理引擎、图形处理单元等。包括加速器处理器108的加速器片144可包括缓冲器150和/或缓冲器控制器162。缓冲器控制器162可配置为控制数据移入和移出缓冲器150。主存储器154可以包括缓冲器映射区域156。缓冲器映射区域156可以包括映射到缓冲器150的两个或更多个的物理地址范围。
[0021]如下面更加详细说明的,应用116可以访问存储在缓冲器150中的数据,例如将数据写入缓冲器150中,或者从缓冲器150读数据。例如,应用116可以写入虚拟地址空间118中的地址范围120。存储器管理单元114可以配置为将地址范围120映射到缓冲器映射区域156中的特定的地址范围。应用116可以分派在加速器108上运行的任务(本文中有时称为“应用任务”)。任务可以访问缓冲器150。缓冲器150由缓冲器控制器162来管理。缓冲器控制器162可配置为取得缓冲器映射区域156中的地址范围内的数据。缓冲器控制器162可以配置为将缓冲器映射区域156中的地址范围内的数据存储到缓冲器150中。
[0022]图2示出了依照本文所描述的至少一些实施例布置的能够用来实现图1的加速器缓冲器访问的示例的系统,有附加的细节。为简要的目的,图2中标记与图1的部件相同的那些部件不再进行说明。
[0023]在图2所示的示例中,第一应用116a可以被分配虚拟地址空间118a中的地址范围120a (由“X”示出)。类似地,第二应用116b可以被分配虚拟地址空间118b中的地址范围120b(由“Y”示出)。应用可以包括一系列指令并且可以包括一个或多个线程。地址范围120a、120b可以由操作系统148
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1