CN105074677A - 加速器缓存器访问 - Google Patents
加速器缓存器访问 Download PDFInfo
- Publication number
- CN105074677A CN105074677A CN201380074571.3A CN201380074571A CN105074677A CN 105074677 A CN105074677 A CN 105074677A CN 201380074571 A CN201380074571 A CN 201380074571A CN 105074677 A CN105074677 A CN 105074677A
- Authority
- CN
- China
- Prior art keywords
- impact damper
- data
- instruction
- block
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
Abstract
总体地描述了用来提供加速器缓冲器访问的方法和系统的技术。操作系统可以分配虚拟地址空间中的地址范围和物理(或主)存储器的缓冲器映射区域中的地址范围。应用读数据或者写数据的请求可以从虚拟地址空间读取或者写入虚拟地址空间。然后,存储器管理单元可以将来自虚拟地址空间的读请求或写请求映射到主存储器或物理存储器。多个应用可能够进行操作,就好像每个应用对加速器及其缓冲器具有排他访问一样。应用任务对缓冲器的多次访问可以避免冲突,因为存储器控制器可配置为基于分配给应用的相应的应用标识符来取得数据。每个应用可以被分配一个不同的应用标识符。
Description
背景技术
除非在此处进行相反说明,否则此部分所描述的材料不是本申请权利要求的现有技术并且不因包含在该部分中而承认是现有技术。
在多核体系结构中,可以在单个集成电路晶粒中包括多个处理器核,或者在布置于单个芯片封装中的多个集成电路晶粒上包括多个处理器核。高速缓冲存储器可以用来存储一个或多个处理器核访问的数据。加速器可以是集中于为一个或多个应用处理数据的专用处理器。
概述
在一些示例中,总体描述了加速器将数据存储在缓冲器中的方法。所述方法可以包括:由加速器接收处理与由第一应用分派的第一任务相关联的数据的第一请求。所述方法可以包括:向存储器请求第一地址范围内的用于第一任务的第一数据。第一地址范围可以映射到分配给第一应用的第一虚拟空间中的第二地址范围。该方法还可以包括接收第一数据。该方法可以包括将第一数据存储在缓冲器中。该方法可以包括:由加速器接收处理与由第二应用分派的第二任务相关联的数据的第二请求。该方法还可以包括:向存储器为第二应用请求第三地址范围内的至少一些第二数据。第三地址范围可以映射到分配给第二应用的第二虚拟空间中的第四地址范围。该方法可以包括接收第二数据的一部分。该方法可以包括将第二数据的所述部分存储在缓冲器中。
在一些示例中,总体地描述了配置为将数据存储在加速器的缓冲器中以便访问的系统。该系统可以包括加速器处理器、配置为与加速器处理器通信的缓冲器以及缓冲器控制器,该缓冲器控制器配置为与加速器处理器和缓冲器通信。缓冲器控制器可配置为接收处理与由第一应用分派的第一任务相关联的数据的第一请求。缓冲器控制器可配置为,响应于第一请求,向存储器请求第一地址范围内的第一数据。第一地址范围可以映射到第二地址范围。第二地址范围可以在分配给第一应用的第一虚拟空间中。缓冲器控制器可以配置为接收第一数据。缓冲器控制器可以配置为将第一数据存储在缓冲器中。缓冲器控制器可配置为接收处理与由第二应用分派的第二任务相关联的数据的第二请求。缓冲器控制器可配置为,响应于第二请求,向存储器请求第三地址范围内的至少一些第二数据。第三地址范围可以映射到第四地址范围。第四地址范围可以在分配给第二应用的第二虚拟空间中。缓冲器控制器可配置为接收第二数据的至少一部分。缓冲器控制器可配置为将第二数据的所述部分存储在缓冲器中。
在一些示例中,总体地描述了配置为将数据存储在加速器的缓冲器中以便访问的系统。该系统可以包括加速器处理器、缓冲器以及缓冲器控制器,缓冲器配置为与加速器处理器通信,该缓冲器控制器配置为与加速器处理器和缓冲器通信。该系统还可以包括:操作系统,其配置为与缓冲器控制器通信;存储器,其配置为与操作系统和缓冲器控制器通信;以及存储器管理单元,其配置为与存储器、第一应用和第二应用通信。该存储器管理单元可配置为将存储器中的第一地址范围映射到第二地址范围。第二地址范围可以在分配给第一应用的第一虚拟空间中。存储器管理单元可配置为将存储器中的第三地址范围映射到第四地址范围。第四地址范围可以在分配给第二应用的第二虚拟空间中。操作系统可配置为接收由第一应用使用加速器处理器的第一请求。操作系统可配置为接收由第二应用使用加速器处理器的第二请求。操作系统可配置为将第一请求发送到缓冲器控制器。操作系统可配置为将第二请求发送到缓冲器控制器。缓冲器控制器可配置为接收第一请求。缓冲器控制器可配置为,响应于第一请求,向存储器请求第一地址范围内的第一数据。缓冲器控制器可配置为接收第一数据。缓冲器控制器可配置为将第一数据存储在缓冲器中。缓冲器控制器可配置为接收第二请求。缓冲器控制器可配置为,响应于第二请求,向存储器请求第三地址范围内的至少一些第二数据。缓冲器控制器可配置为接收第二数据的至少一部分且将第二数据的所述部分存储在缓冲器中。
前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性的方面、实施例和特征之外,另外的方面、实施例和特征将变得清晰可见。
附图说明
通过下面结合附图给出的详细说明和随附的权利要求,本公开的前述特征以及其它特征将变得更加清晰。应理解的是,这些附图仅描绘了依照本公开的多个实施例,因此,不应视为对本发明范围的限制,将通过利用附图结合附加的具体描述和细节对本公开进行说明,在附图中:
图1示出了能够用来实现加速器缓冲器访问的示例的系统;
图2示出了能够用来实现图1的加速器缓冲器访问的示例的系统,有附加的细节;
图3示出了能够用来实现图2的加速器缓冲器访问的示例的系统,附加的细节与对将数据移入缓冲器中进行操纵的方法有关;
图4示出了能够用来实现图2的加速器缓冲器访问的示例的系统,附加的细节与对将数据移入缓冲器中进行操纵的附加方法有关;
图5描绘了用来实现加速器缓冲器访问的示例处理的流程图;
图6示出了能够用来实现加速器缓冲器访问的计算机程序产品;以及
图7是示出布置成实现加速器缓冲器访问的示例的计算设备的框图;
所有都根据本文所描述的至少一些实施例来布置。
具体实施方式
在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以各种不同配置来布置、替代、组合、分离和设计,所有这些都在本文中明确地构思出。
本公开大体尤其涉及与加速器缓冲器技术有关的方法、装置、系统、设备和计算机程序产品。
简言之,总体地描述了关于用来提供加速器缓冲器访问的方法和系统的技术。操作系统可以分配虚拟地址空间中的地址范围和物理(或主)存储器的缓冲器映射区域中的地址范围。由应用读数据或写数据的请求可以从虚拟地址空间中读取或者写入虚拟地址空间。然后,存储器管理单元可以将读请求或写请求从虚拟地址空间映射到主或物理存储器。多个应用可能能够操作得就好像每个应用对加速器及其缓冲器具有排他性访问一样。应用任务对缓冲器的多次访问可以避免冲突,因为存储器控制器可配置为基于分配给应用的相应的应用标识符来取得数据。每个应用可以被分配有不同的应用标识符。
图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的两个或更多个的物理地址范围。
如下面更加详细说明的,应用116可以访问存储在缓冲器150中的数据,例如将数据写入缓冲器150中,或者从缓冲器150读数据。例如,应用116可以写入虚拟地址空间118中的地址范围120。存储器管理单元114可以配置为将地址范围120映射到缓冲器映射区域156中的特定的地址范围。应用116可以分派在加速器108上运行的任务(本文中有时称为“应用任务”)。任务可以访问缓冲器150。缓冲器150由缓冲器控制器162来管理。缓冲器控制器162可配置为取得缓冲器映射区域156中的地址范围内的数据。缓冲器控制器162可以配置为将缓冲器映射区域156中的地址范围内的数据存储到缓冲器150中。
图2示出了依照本文所描述的至少一些实施例布置的能够用来实现图1的加速器缓冲器访问的示例的系统,有附加的细节。为简要的目的,图2中标记与图1的部件相同的那些部件不再进行说明。
在图2所示的示例中,第一应用116a可以被分配虚拟地址空间118a中的地址范围120a(由“X”示出)。类似地,第二应用116b可以被分配虚拟地址空间118b中的地址范围120b(由“Y”示出)。应用可以包括一系列指令并且可以包括一个或多个线程。地址范围120a、120b可以由操作系统148进行分配和定义。地址范围120a、120b可以利于第一应用和/或第二应用对加速器缓冲器150的访问。第一应用和第二应用可以分派在加速器108上运行的任务。这些应用或任务可以通过写入地址范围120a、120b和/或从地址范围120a、120b读来访问缓冲器150。在一个示例中,地址范围120a、120b可以为一页的倍数的大小,例如4KB、8KB、12KB等大小。
存储器管理单元114可以将地址范围120a、120b映射到缓冲器映射区域156中的范围。在所示的示例中,地址范围120a(由“X”标定)可以映射到缓冲器映射区域156中的范围124(由“X'”标定)。在所示的示例中,地址范围120b(由“Y”标定)可以映射到缓冲器映射区域156中的范围126(由“Y'”标定)。地址范围124、126可以位于缓冲器映射区域156中的多个位置或者可以位于地址范围内。
如下面更详细说明的,缓冲器控制器162可以接收应用标识符(“应用ID”)122。缓冲器控制器162可以利用应用标识符122来为缓冲器150确定取得缓冲器映射区域156中的地址范围124、126中的哪一个。每个地址范围124、126可以具有约等于缓冲器150的大小的大小。缓冲器映射区域156可以具有约等于缓冲器150的大小乘以可供应用使用的应用标识符的数量的大小。
如下面更详细说明的,操作系统148可以为缓冲器150分配缓冲器映射区域156。在应用需要使用加速器108的示例中,应用可以向操作系统148发布调用158以将任务分派给加速器108且获得应用的应用标识符。响应于调用158,操作系统148可以为应用分配应用标识符196以及调度加速器108上的任务。操作系统148还可以分配虚拟地址空间118a、118b中的地址范围120a或120b以及分配缓冲器映射区域156中的地址范围124或126。在示例中,第一应用116a读数据或者写数据的请求可以从虚拟地址空间118a中读取或者写入虚拟地址空间118a。然后,存储器管理单元114可将读请求或写请求从虚拟地址空间118a映射到主或物理存储器154。多个应用可能够操作得就好像每个应用对加速器108具有排他性使用以及对缓冲器150具有排他性访问一样。应用任务多次访问缓冲器可以避免冲突,因为缓冲器控制器162可被配置为基于应用标识符122来取得数据。每个应用可以具有不同的应用标识符。
图3示出了依照本文所描述的至少一些实施例布置的能够用来实现图2的加速器缓冲器访问的示例的系统,附加的细节与用于对数据移入缓冲器进行操纵的方法有关。为简要的目的,图3中标记与图1或图2的部件相同的那些部件不再进行说明。
系统100的众多有益之处中的一个在于,缓冲器150中的数据可以从第一应用切换到第二应用(例如,从一个任务切换到第二任务),使得多个应用可以同时使用加速器处理器108(即,以分时方式(timesharemanner))。缓冲器150中的数据甚至可以在加速器处理器108已经完成了对与第一应用有关的数据的处理之前来切换。应用标识符122的变化可以反映在加速器处理器108和访问缓冲器150上运行的不同的应用任务。在示例中,第一应用116a可以向操作系统148发布将任务分派给加速器处理器108和访问缓冲器150的请求194。操作系统148可以生成应用标识符122并且基于调度策略将应用任务发送给加速器108以及将应用标识符122发送给缓冲器控制器162。操作系统148和调度策略192可以配置为控制对加速器处理器108和缓冲器150的访问。调度策略192可以配置为在考虑到线程优先级或其他线程调度参数的情况下规定分时。
在一个示例中,当缓冲器控制器162接收到新的应用标识符122时,缓冲器控制器162可以将缓冲器150中的数据写回到缓冲器映射区域或高速缓冲存储器。缓冲器控制器162随后可以在缓冲器映射区域156中取得对应于新的应用标识符122的数据。
在另一示例中,当缓冲器控制器162接收到新的应用标识符122时,缓冲器控制器162可以更新缓冲器150,因为新的应用任务请求缓冲器150的部分。例如,缓冲器150可以定义区块字段166和/或应用标识符(“AppID”)字段168。由缓冲器150和缓冲器映射区域156定义的字段上的数据可以划分成相等或类似尺寸的区块。在图3所示的示例中,显示出了区块B1、B2和B3。应用标识符字段168可以将对应于应用的指示与区块字段166中的所指示区块相关联地进行存储。在示例中,用于第一应用的区块B1可以存储在缓冲器150中。用于第二应用的区块B2可以存储在缓冲器150中。用于第一应用的区块B3可以存储在缓冲器150中。在任务请求访问缓冲器150中的区块的示例中,缓冲器控制器162可以分析应用标识符122和应用标识符字段168。缓冲器控制器162可确定缓冲器150当前是否存储了用于所请求的应用的请求区块。
在示例中,第一应用的加速器任务可请求访问区块B1。缓冲器控制器162可分析应用标识符122和应用标识符字段168。缓冲器控制器162可确定缓冲器150当前存储了用于第一应用的区块B1,即“命中”。结果,加速器处理器108能够访问用于第一应用的区块B1。
在示例中,第一应用或者第一应用的第一任务可以请求访问区块B2。缓冲器控制器162可以分析应用标识符122和应用标识符字段168。缓冲器控制器162可确定缓冲器150当前没有存储用于第一应用的区块B2,即“未击中”。响应于未击中,缓冲器控制器162可将区块B2发送到存储器154。缓冲器控制器162可以将第二应用的区块B2写入缓冲器映射区域156中的位置范围126。区块B2的写入由“发送”请求170来图示出。缓冲器控制器162还可以从缓冲器映射区域156中取得用于第一应用的区块B2,如“取得”请求172所图示的。缓冲器控制器162可以响应于未击中而继续取得区块。
图4图示出依照本文所描述的至少一些实施例布置的能够用来实现图2的加速器缓冲器访问的示例的系统,附加的细节与对数据移入缓冲器进行操纵的附加方法有关。为简要的目的,图4中标记与图1、图2或图3的部件相同的那些部件不再进行说明。
在示例中,当缓冲器控制器162确定出已经接收到新的应用标识符122时,缓冲器控制器162可以开始在缓冲器150与存储器154之间交换数据。这样,缓冲器控制器162可以充当状态机或交换引擎。在示例中,第一应用可以请求访问区块B2。缓冲器控制器162可以分析应用标识符122和应用标识符字段168。缓冲器控制器162可以确定缓冲器150当前没有存储用于第一应用的区块B2,即,“未击中”。响应于未击中,缓冲器控制器162可以将第二应用的区块B2写入缓冲器映射区域156中的位置范围126。区块B2的写入由“逐出”请求174图示出。缓冲器控制器162还可以从缓冲器映射区域156中取得用于第一应用的任务的区块B2,如“取得”请求176所图示的。通过执行逐出请求和取得请求,缓冲器控制器162可以确保未击中的区块在其他区块被交换之前进行交换。
在其他可能的有益之处中,依照本公开的系统可能够允许应用直接与加速器缓冲器进行通信。多个应用进程可以共享加速器并且将加速器视为排他地属于该应用。多个应用可以对加速器进行分时,产生对加速器排他性访问的错觉。另一有益之处在于,操作系统无需参与对加速器缓冲器的访问。应用可以写入虚拟地址,写入可以出现在加速器缓冲器中。同样,任务可以写入加速器的缓冲器中,写入可以出现在应用的虚拟地址中。应用可以将缓冲器视为加速器的存储器的部分。加速器可以将缓冲器视为加速器以使用加速器的程序员所希望的任何方式访问的资源,例如使用缓冲器作为便笺式存储器、FIFO(先入先出)缓冲器、软件高速缓存等等。
通过使用调度策略,可以实现线程优先权。在线程优先权中,第一应用中的具有较高优先级的一个线程可以在第二应用中具有较低优先级的另一线程之前访问加速器和加速器的缓冲器。即使当执行大的任务时,也可避免线程饥饿,即,一个线程未能对加速器和加速器的缓冲器进行充分的访问。在加速器中运行的任务可以被另一更高优先级的任务先取和/或上下文切换。即使在相对大的缓冲器中,也可以保持上下文切换延时相对较短。
图5描绘了依照本文所描述的至少一些实施例布置的用于实现加速器缓冲器访问的示例的处理的流程图。在一些示例中,图5中的处理可以利用上述的使加速器将数据存储在缓冲器中的系统100来实现。
示例的处理可以包括如块S2、S4、S6、S8、S10、S12、S14和/或S16中的一个或多个所图示的一个或多个操作、动作或功能。虽然图示为离散的块,各个块可以基于期望的实现方式被划分成额外的块,组合成较少的块,和/或去除。
处理可开始于块S2,“由加速器接收处理与由第一应用分派的第一任务相关联的数据的第一请求”。在块S2中,加速器可以接收处理与第一应用相关联的数据的请求。第一请求可由分派第一任务的第一应用生成。可能已经由操作系统基于调度策略发送该请求。
处理可以从块S2继续到块S4,“向存储器请求第一地址范围内的用于第一应用的第一数据,所述第一地址范围可以映射到分配给第一应用的第一虚拟空间中的第二地址范围”。在块S4中,加速器可以向存储器请求第一地址范围内的用于第一应用的第一数据。第一地址范围可以映射到分配给第一应用的第一虚拟空间中的第二地址范围。第一请求可以包括用于第一应用的第一应用标识符。
处理还可以从块S4继续到块S6,“接收第一数据”。在块S6中,加速器可以接收第一数据。
处理可以从块S6继续到块S8,“将第一数据存储在缓冲器中”。在块S8中,加速器可以将第一数据存储在缓冲器中。
处理可以从块S8继续到块S10,“由加速器接收处理与由第二应用分派的第二任务相关联的数据的第二请求”。在块S10中,加速器可以接收处理与第二应用有关的数据的第二请求。该请求可由分派第二任务的第二应用来生成。第二请求可以包括用于第二应用的第二应用标识符。
处理可以从块S10继续到块S12,“向存储器请求第三地址范围内的用于第二应用的至少一些第二数据,所述第三地址范围可以映射到分配给第二应用的第二虚拟空间中的第四地址范围”。在块S12中,加速器可以向存储器请求第三地址范围内的用于第二应用的至少一些第二数据。第三地址范围可以映射到分配给第二应用的第二虚拟空间中的第四地址范围。在接收第一请求之前,存储器管理单元可以将第一地址范围映射到第二地址范围,并且将第三地址范围映射到第四地址范围。操作系统可以将应用标识符分配给第一应用和第二应用。
处理可以从块S12继续到块S14,“接收第二数据的部分”。在块S14中,加速器可以接收第二数据的部分。
处理可以从块S14继续到块S16,“将第二数据的所述部分存储在缓冲器中”。在块S16中,加速器可以将第二数据的所述部分存储在缓冲器中。加速器可以进一步将第一数据的第一区块的指示和与第一区块相关联的第一应用的指示存储在缓冲器中。加速器可以进一步将第二数据的第二区块的指示和与第二区块相关联的第二应用的指示存储在缓冲器中。加速器可以接收第三请求,其中第三请求包括与第一应用的指示相关联的第一数据的第三区块的指示。加速器可以确定缓冲器未存储与第一应用的指示相关联的第三区块的指示。加速器可以向存储器请求用于第一应用的第三区块。
在一个示例中,当接收到新的应用标识符时,缓冲器控制器可以在缓冲器映射区域中取得对应于新的应用标识符的数据。在另一示例中,当接收到新的应用标识符时,缓冲器控制器可以更新缓冲器,因为缓冲器的部分由新的应用请求。缓冲器控制器可以维护具有应用标识符的字段以及具有关于对应于应用的数据是否存储在缓冲器中的指示的字段。在另一示例中,当接收到新的应用标识符时,缓冲器控制器可以开始将数据交换到用于新应用的缓冲器中并且优选交换由缓冲器控制器请求和未击中的数据。
图6示出了依照本文所描述的至少一些实施例布置的能够用来实现加速器缓冲器访问的示例的示例计算机程序产品300。程序产品300可以包括信号承载介质302。信号承载介质302可以包括一条或多条指令304,当通过例如处理器执行时,这些指令可以提供如上文结合图1-5所描述的功能。因此,例如,参考系统100,一个缓冲器控制器162可以响应于由介质302传送给系统100的指令304而承担图6所示的一个或多个块。
在一些实现方式中,信号承载介质302可包含计算机可读介质306,诸如但不限于硬盘驱动器、压缩盘(CD)、数字多功能盘(DVD)、数字带、存储器等。在一些实施方式中,信号承载介质302可以包含可记录介质308,诸如但不限于存储器、读/写(R/W)CD、R/WDVD等。在一些实施方式中,信号承载介质302可以包含通信介质310,诸如但不限于数字和/或模拟通信介质(例如,光纤线缆、波导、有线通信链路、无线通信链路等)。因此,例如,程序产品300可以通过RF信号承载介质302而被传送到系统100的一个或多个模块,其中信号承载介质302由无线通信介质310(例如,符合IEEE802.11标准的无线通信介质)来传送。
图7是图示出依照本文所描述的至少一些实施例布置的被布置成实现加速器缓冲器访问的示例的计算设备400的框图。在最基本配置402中,计算设备400通常包括一个或多个处理器404和系统存储器406。存储器总线408可以用于处理器404和系统存储器406之间的通信。
根据所需的配置,处理器404可以是任意类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器404可以包括诸如级别一高速缓存410和级别二高速缓存412的一级或多级高速缓存、处理器核414和寄存器416。示例的处理器核414可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSPCore)或其任意组合。示例的存储器控制器418还可与处理器404一起使用,或者在一些实施方式中,存储器控制器418可以是处理器404的内部部件。
根据所需的配置,系统存储器406可以是任意类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪速存储器等)或其任意组合。系统存储器406可以包括操作系统420、一个或多个应用422以及程序数据424。应用422可以包括加速器缓冲器访问算法426,其布置成执行如本文所描述的功能,包括那些关于图1-6的系统100所描述的功能。程序数据424可以包括加速器缓冲器访问数据428,其可用于实现如本文所描述的加速器缓冲器访问。在一些实施例中,应用422可布置成在操作系统420上操作程序数据424,使得可以提供加速器缓冲器访问。在图7中通过内虚线内的那些部件图示该所述的基本配置402。
计算设备400可具有附加的特征或功能以及附加的接口以便于基本配置402与任何所需的设备和接口之间的通信。例如,总线/接口控制器430可用于便于基本配置402与一个或多个数据存储设备432之间经由存储接口总线434的通信。数据存储设备432可以是可移除存储设备436、非可移除存储设备438或者其组合。可移除存储设备和非可移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器,仅列举了几个。示例的计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性的介质以及可移除和非可移除的介质。
系统存储器406、可移除存储设备436和非可移除存储设备438是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储设备、磁盒、磁带、磁盘存储设备或其它磁存储设备、或者可用于存储所需信息并且可由计算设备400访问的任何其它介质。任意这样的计算机存储介质可以是计算设备400的部件。
计算设备400还可以包括接口总线440,该接口总线440用于方便从各接口设备(例如,输出设备442、外围设备接口444和通信设备446)经由总线/接口控制器430到基本配置402的通信。示例的输出设备442包括图形处理单元448和音频处理单元450,其可配置为经由一个或多个A/V端口452与诸如显示器或扬声器的各外部设备通信。示例的外围设备接口444包括串行接口控制器454或并行接口控制器456,其可配置为经由一个或多个I/O端口458与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其它外围设备(例如,打印机、扫描仪等)的外部设备通信。示例的通信设备446包括网络控制器460,其可布置成便于经由一个或多个通信端口464通过网络通信链路与一个或多个其它计算设备462的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可通过计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制的调制数据信号中的其它数据来具体化,并且可以包括任何信息输送介质。“调制数据信号”可以是使得其特性中的一个或多个以将信号中的信息编码的方式设定或改变的信号。通过举例而不是限制的方式,通信介质可以包括诸如有线网络或直接线连接的有线介质,以及诸如声波、射频(RF)、微波、红外(IR)和其它无线介质的无线介质。如本文所使用的术语计算机可读介质可以包括存储介质和通信介质两者。
计算设备400可实现为诸如蜂窝电话、个人数据助理(PDA)、个人媒体播放器设备、无线网页监视设备(wirelessweb-watchdevice)、个人头戴送受话器设备、专用设备或包括上述功能中的任一种的混合设备的小构型便携式(或移动)电子设备的一部分。计算设备400还可实现为包括膝上型计算机配置和非膝上型计算机配置两者的个人计算机。
本公开不限于本文所描述的特定实施例,这些实施例意在为各方面的示例。能够在不偏离其精神和范围的情况下做出多种改进和变型,这对于本领域技术人员而言是显而易见的。通过前面的说明,除了本文所列举的那些之外,在本公开的范围内的功能上等同的方法和装置对于本领域技术人员而言将是显而易见的。旨在使这些改进和变型落在所附权利要求书的范围内。本公开仅受所附权利要求书以及这些权利要是所给予权利的等同方案的整个范围所限制。应当理解的是,本公开不限于特定的方法、试剂、化合物组成或生物系统,当然这些会变化。还应理解的是,本文所使用的术语是仅仅是为了描述特定实施例的目的,而不意在限制。
关于本文中基本上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中明确地阐明了各单数/复数的置换。
本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包括”应解释为“包括但不限于”,等等)。本领域技术人员还理解,如果意图表达引导性权利要求记述项的具体数量,该意图将明确地记述在权利要求中,并且在不存在这种记述的情况下,不存在这样的意图。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施例,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、B或C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B或C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,呈现两个以上可选项的几乎任何分离词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。
另外,在根据马库什组(Markushgroup)描述本公开的特征或方面的情况下,本领域技术人员将理解的是本公开也因此以马库什组的任何独立成员或成员的子组来描述。
本领域技术人员将理解的是,为了任何以及全部的目的,诸如在提供所撰写的说明书方面,本文所公开的全部范围也涵盖了任何和全部的可能的子范围及其子范围的组合。能够容易地认识到任何所列范围都充分地描述了同一范围并且使同一范围分解成至少均等的一半、三分之一、四分之一、五分之一、十分之一等等。作为非限制示例,本文所论述的每个范围能够容易地分解成下三分之一、中三分之一和上三分之一,等等。本领域技术人员还将理解的是,诸如“多达”、“至少”、“大于”、“小于”等所有的语言包括所记述的数量并且是指如上文所论述的随后能够分解成子范围的范围。最后,本领域技术人员将理解的是,范围包括每个独立的成员。因此,例如,具有1-3个单元的组是指具有1个、2个或3个单元的组。类似地,具有1-5个单元的组是指具有1个、2个、3个、4个、或5个单元的组,等等。
虽然本文公开了各个方面和实施例,但是其它的方面和实施例对于本领域技术人员而言将是显而易见的。因此,本文所公开的各个方面和实施例是为了示例的目的而不意在限制,真正的范围和精神是通过随附的权利要求表示的。
Claims (30)
1.一种用于加速器将数据存储在缓冲器中的方法,所述方法包括:
由所述加速器接收处理与由第一应用分派的第一任务相关联的数据的第一请求;
向存储器请求在第一地址范围内的用于所述第一任务的第一数据,其中所述第一地址范围映射到分配给所述第一应用的第一虚拟空间中的第二地址范围;
接收所述第一数据;
将所述第一数据存储在所述缓冲器中;
由所述加速器接收处理与由第二应用分派的第二任务相关联的数据的第二请求;
向所述存储器为所述第二应用请求在第三地址范围内的至少一些第二数据,其中所述第三地址范围映射到分配给所述第二应用的第二虚拟空间中的第四地址范围;
接收所述第二数据的一部分;以及
将所述第二数据的所述部分存储在所述缓冲器中。
2.如权利要求1所述的方法,还包括,在接收所述第一请求之前:
由存储器管理单元将所述第一地址范围映射到所述第二地址范围;以及
由所述存储器管理单元将所述第三地址范围映射到所述第四地址范围。
3.如权利要求1所述的方法,其中:
所述第一请求包括用于所述第一应用的第一应用标识符;以及
所述第二请求包括用于所述第二应用的不同于所述第一应用标识符的第二应用标识符。
4.如权利要求1所述的方法,其中:
所述第一请求包括用于所述第一应用的第一应用标识符;
所述第二请求包括用于所述第二应用的不同于所述第一应用标识符的第二应用标识符;并且所述方法还包括,在接收所述第一请求之前:
由操作系统接收来自所述第一应用的调用;以及
由所述操作系统响应于所述调用而将所述第一应用标识符分配给所述第一应用。
5.如权利要求1所述的方法,其中:
所述第一请求包括用于所述第一应用的第一应用标识符;
所述第二请求包括用于所述第二应用的不同于所述第一应用标识符的第二应用标识符;并且所述方法还包括,在接收所述第一请求之前:
由操作系统接收来自所述第一应用的第一调用;
由所述操作系统响应于所述第一调用而将所述第一应用标识符分配给所述第一应用;
由所述操作系统接收来自所述第二应用的第二调用;
由所述操作系统响应于所述第二调用而将所述第二应用标识符分配给所述第二应用;
由所述操作系统接收来自所述第一应用的使用所述加速器的请求;
由所述操作系统分析调度策略;以及
基于来自所述第一应用的使用所述加速器的所述请求以及基于所述调度策略,将所述第一应用标识符或所述第二应用标识符发送到所述加速器。
6.如权利要求1所述的方法,还包括:
在所述加速器已经完成所述第一任务的处理之前,接收所述第二请求;以及
在所述加速器已经完成处理所述第一任务之前,请求所述第二数据的所述至少一部分。
7.如权利要求1所述的方法,还包括:
响应于接收到所述第二请求而写回所述第一数据。
8.如权利要求1所述的方法,其中将所述第一数据存储在所述缓冲器中包括:
在所述缓冲器中存储所述第一数据的第一区块的指示;以及
在所述缓冲器中与所述第一区块的所述指示相关联地存储所述第一应用的指示。
9.如权利要求1所述的方法,还包括:
在所述缓冲器中存储所述第一数据的第一区块的指示;
在所述缓冲器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;以及
在所述缓冲器中与所述第二区块相关联地存储所述第二应用的指示。
10.如权利要求1所述的方法,还包括:
在所述缓冲器中存储所述第一数据的所述第一区块的指示;
在所述缓冲器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;
在所述缓冲器中与所述第二区块相关联地存储所述第二应用的指示;
接收第三请求,其中所述第三请求包括与所述第一应用的指示相关联的所述第一数据的第三区块的指示;
确定所述缓冲器没有存储与所述第一应用的所述指示相关联的所述第三区块的所述指示;以及
向所述存储器为所述第一应用请求所述第三区块。
11.如权利要求1所述的方法,所述方法还包括:
在所述缓冲器中存储所述第一数据的第一区块的指示;
在所述缓冲器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;
在所述缓冲器中与所述第二区块相关联地存储所述第二应用的指示;
向所述存储器请求所述第二数据;
由所述加速器处理所述第二任务;
由所述加速器确定所述第二任务请求访问与所述第二应用相关联的第三区块;
确定所述缓冲器没有存储与所述第二应用的指示相关联的所述第三区块的指示;以及
向所述存储器为所述第二应用请求所述第三区块。
12.一种配置为将数据存储在加速器的缓冲器中以便访问的系统,所述系统包括:
加速器处理器;
缓冲器,其配置为与所述加速器处理器通信;以及
缓冲器控制器,其配置为与所述加速器处理器和所述缓冲器通信;
其中所述缓冲器控制器配置为:
接收处理与由第一应用分派的第一任务相关联的数据的第一请求;
响应于所述第一请求,向存储器请求在第一地址范围内的第一数据,其中所述第一地址范围映射到第二地址范围,所述第二地址范围在分配给所述第一应用的第一虚拟空间中;
接收所述第一数据;
将所述第一数据存储在所述缓冲器中;
接收处理与由第二应用分派的第二任务相关联的数据的第二请求;
响应于所述第二请求,向所述存储器请求在第三地址范围内的至少一些第二数据,其中所述第三地址范围映射到第四地址范围,所述第四地址范围在分配给所述第二应用的第二虚拟空间中;
接收所述第二数据的至少一部分;
将所述第二数据的所述部分存储在所述缓冲器中。
13.如权利要求12所述的系统,其中:
所述第一请求包括用于所述第一应用的第一应用标识符;以及
所述第二请求包括用于所述第二应用的不同于所述第一应用标识符的第二应用标识符。
14.如权利要求12所述的系统,其中所述缓冲器控制器进一步配置为:
在所述加速器处理器已经完成所述第一任务的处理之前,接收所述第二请求;以及
在所述加速器处理器已经完成所述第一任务的处理之前,请求所述第二数据的所述部分。
15.如权利要求12所述的系统,其中所述缓冲器控制器进一步配置为响应于接收到所述第二请求而写回第一数据。
16.如权利要求12所述的系统,其中所述缓冲器控制器进一步配置为:
在所述缓冲器中存储所述第一数据的第一区块的指示;以及
在所述缓冲器中与所述第一区块的所述指示相关联地存储所述第一应用的指示。
17.如权利要求12所述的系统,其中所述缓冲器控制器进一步配置为:
在所述缓冲器中存储所述第一数据的第一区块的指示;
在所述缓冲器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;以及
在所述缓冲器中与所述第二区块相关联地存储所述第二应用的指示。
18.如权利要求12所述的系统,其中所述缓冲器控制器进一步配置为:
在所述缓冲器中存储所述第一数据的第一区块的指示;
在所述缓冲器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;
在所述缓冲器中与所述第二区块相关联地存储所述第二应用的指示;
接收第三请求,其中所述第三请求包括与所述第一应用的指示相关联的所述第一数据的第三区块的指示;
确定所述缓冲器没有存储与所述第一应用的所述指示相关联的所述第三区块的所述指示;以及
向所述存储器为所述第一应用请求所述第三区块。
19.如权利要求12所述的系统,其中所述缓冲器控制器进一步配置为:
在所述缓冲器中存储所述第一数据的第一区块的指示;
在所述缓冲器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;
在所述缓冲器中与所述第二区块相关联地存储所述第二应用的指示;
向所述存储器请求所述第二数据;
由所述加速器处理器处理所述第二任务;
确定所述第二任务请求访问与所述第二应用相关联的第三区块;
确定所述缓冲器没有存储与所述第二应用的指示相关联的所述第三区块的指示;以及
向所述存储器为所述第二应用请求所述第三区块。
20.一种配置为将数据存储在加速器的缓冲器中以便访问的系统,所述系统包括:
加速器处理器;
缓冲器,其配置为与所述加速器处理器通信;
缓冲器控制器,其配置为与所述加速器处理器和所述缓冲器通信;
操作系统,其配置为与所述缓冲器控制器通信;
存储器,其配置为与所述操作系统和所述缓冲器控制器通信;
存储器管理单元,其配置为与所述存储器、第一应用和第二应用通信,其中所述存储器管理单元配置为:
将所述存储器中的第一地址范围映射到第二地址范围,其中所述第二地址范围处于分配给所述第一应用的第一虚拟空间中;
将所述存储器中的第三地址范围映射到第四地址范围,其中所述第四地址范围处于分配给所述第二应用的第二虚拟空间中;
所述操作系统配置为:
接收由第一应用使用所述加速器处理器的第一请求;
接收由第二应用使用所述加速器处理器的第二请求;
将所述第一请求发送到所述缓冲器控制器;以及
将所述第二请求发送到所述缓冲器控制器;
所述缓冲器控制器配置为:
接收所述第一请求;
响应于所述第一请求,向所述存储器请求在所述第一地址范围内的第一数据;
接收所述第一数据;
将所述第一数据存储在所述缓冲器中;
接收所述第二请求;
响应于所述第二请求,向所述存储器请求在所述第三地址范围内的至少一些第二数据;
接收所述第二数据的至少一部分;以及
将所述第二数据的所述部分存储在所述缓冲器中。
21.如权利要求20所述的系统,其中:
所述第一请求包括用于所述第一应用的第一应用标识符;以及
所述第二请求包括用于所述第二应用的不同于所述第一应用标识符的第二应用标识符。
22.如权利要求20所述的系统,其中所述操作系统进一步用来:
分配用于所述第一应用的第一应用标识符;以及
分配用于所述第二应用的不同于所述第一应用标识符的第二应用标识符。
23.如权利要求20所述的系统,其中所述操作系统进一步用来:
分配用于所述第一应用的第一应用标识符;
分配用于所述第二应用的不同于所述第一应用标识符的第二应用标识符;
分析调度策略;以及
基于所述第一应用的所述第一请求、所述第二应用的所述第二请求和所述调度策略,将所述第一应用标识符或所述第二应用标识符发送到所述加速器处理器。
24.如权利要求20所述的系统,其中所述缓冲器控制器进一步配置为:
在所述加速器处理器已经完成处理与所述第一应用有关的数据之前,接收所述第二请求;以及
在所述加速器处理器已经完成处理与所述第一应用有关的数据之前,请求所述第二数据的所述至少一部分。
25.如权利要求20所述的系统,其中所述缓冲器控制器进一步配置为,响应于接收到所述第二请求而删除所述缓冲器中的所述第一数据。
26.如权利要求20所述的系统,其中所述缓冲器控制器进一步配置为:
在所述缓冲器中存储所述第一数据的第一区块的指示;以及
在所述缓冲器中与所述第一区块的所述指示相关联地存储所述第一应用的指示。
27.如权利要求20所述的系统,其中所述缓冲器控制器进一步配置为:
在所述缓冲器中存储所述缓冲器中的所述第一数据的第一区块的指示;
在所述缓存器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;以及
在所述缓冲器中与所述第三区块相关联地存储所述第二应用的指示。
28.如权利要求20所述的系统,其中所述缓冲器控制器进一步配置为:
在所述缓冲器中存储所述第一区块的指示;
在所述缓冲器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;
在所述缓冲器中与所述第二区块相关联地存储所述第二应用的指示;
接收第三请求,其中所述第三请求包括与所述第一应用的指示相关联的第三区块的指示;
确定所述缓冲器没有存储与所述第一应用的所述指示相关联的所述第三区块的所述指示;以及
向所述存储器为所述第一应用请求所述第三区块。
29.如权利要求20所述的系统,其中所述缓冲器控制器进一步配置为:
在所述缓冲器中存储所述第一数据的第一区块的指示;
在所述缓冲器中与所述第一区块相关联地存储所述第一应用的指示;
在所述缓冲器中存储所述第二数据的第二区块的指示;
在所述缓冲器中与所述第二区块相关联地存储所述第二应用的指示;
向所述存储器请求所述第二数据;
处理所述第二任务;
由所述加速器处理器确定所述第二任务请求访问所述第二数据的第三区块;
确定所述缓冲器没有存储与所述第二应用的指示相关联的所述第三区块的指示;以及
向所述存储器为所述第二应用请求所述第三区块。
30.如权利要求20所述的系统,其中所述操作系统进一步用来在所述存储器中分配缓冲器映射区域,其中所述缓冲器映射区域包括第一地址范围和第三地址范围,所述第一地址范围和第三地址范围具有约等于所述缓冲器的大小的大小。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/030520 WO2014142809A1 (en) | 2013-03-12 | 2013-03-12 | Accelerator buffer access |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105074677A true CN105074677A (zh) | 2015-11-18 |
CN105074677B CN105074677B (zh) | 2018-01-26 |
Family
ID=51533771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380074571.3A Expired - Fee Related CN105074677B (zh) | 2013-03-12 | 2013-03-12 | 用于加速器将数据存储在缓冲器中的方法的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8868800B2 (zh) |
CN (1) | CN105074677B (zh) |
WO (1) | WO2014142809A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023208087A1 (zh) * | 2022-04-27 | 2023-11-02 | 华为技术有限公司 | 一种数据处理方法、装置及相关设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101480867B1 (ko) * | 2013-05-31 | 2015-01-09 | 삼성에스디에스 주식회사 | 맵리듀스 연산 가속 시스템 및 방법 |
US10547559B2 (en) | 2015-12-26 | 2020-01-28 | Intel Corporation | Application-level network queueing |
US10430246B2 (en) * | 2018-01-18 | 2019-10-01 | International Business Machines Corporation | Virtualized and synchronous access to hardware accelerators |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560688B1 (en) * | 1998-10-01 | 2003-05-06 | Advanced Micro Devices, Inc. | System and method for improving accelerated graphics port systems |
US20110145541A1 (en) * | 2009-12-16 | 2011-06-16 | International Business Machines Corporation | Method and system to accelerate address translation |
US20110161619A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
CN102169428A (zh) * | 2010-06-22 | 2011-08-31 | 上海盈方微电子有限公司 | 一种动态可配置的指令访问加速器 |
CN102906738A (zh) * | 2010-06-24 | 2013-01-30 | 国际商业机器公司 | 混合存储服务器中的数据访问管理 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8451281B2 (en) * | 2009-06-23 | 2013-05-28 | Intel Corporation | Shared virtual memory between a host and discrete graphics device in a computing system |
-
2013
- 2013-03-12 WO PCT/US2013/030520 patent/WO2014142809A1/en active Application Filing
- 2013-03-12 CN CN201380074571.3A patent/CN105074677B/zh not_active Expired - Fee Related
- 2013-03-12 US US13/978,655 patent/US8868800B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560688B1 (en) * | 1998-10-01 | 2003-05-06 | Advanced Micro Devices, Inc. | System and method for improving accelerated graphics port systems |
US20110145541A1 (en) * | 2009-12-16 | 2011-06-16 | International Business Machines Corporation | Method and system to accelerate address translation |
US20110161619A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
CN102169428A (zh) * | 2010-06-22 | 2011-08-31 | 上海盈方微电子有限公司 | 一种动态可配置的指令访问加速器 |
CN102906738A (zh) * | 2010-06-24 | 2013-01-30 | 国际商业机器公司 | 混合存储服务器中的数据访问管理 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023208087A1 (zh) * | 2022-04-27 | 2023-11-02 | 华为技术有限公司 | 一种数据处理方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105074677B (zh) | 2018-01-26 |
US8868800B2 (en) | 2014-10-21 |
US20140281058A1 (en) | 2014-09-18 |
WO2014142809A1 (en) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289452B2 (en) | Thread and data assignment in multi-core processors based on cache miss data and thread category | |
US11347480B2 (en) | Transpose operations using processing element array | |
CN111324558B (zh) | 数据处理方法、装置、分布式数据流编程框架及相关组件 | |
US9086920B2 (en) | Device for managing data buffers in a memory space divided into a plurality of memory elements | |
US9483318B2 (en) | Distributed procedure execution in multi-core processors | |
CN104750559A (zh) | 跨多节点的存储器资源的池化 | |
CN111031011B (zh) | Tcp/ip加速器的交互方法和装置 | |
EP2375324A2 (en) | Virtualization apparatus for providing a transactional input/output interface | |
CN105027091A (zh) | 内存分配加速器 | |
CN105210038B (zh) | 核亲和性位掩码变换 | |
CN105074677A (zh) | 加速器缓存器访问 | |
CN105393218A (zh) | 通过虚拟机切换的重构 | |
WO2021135574A1 (zh) | 数据存储方法、装置及终端设备 | |
CN116583831A (zh) | 向操作系统注册自定义原子操作 | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
JP7056870B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR101422083B1 (ko) | 스크래치패드 메모리 관리 시스템 및 방법 | |
CN115456862A (zh) | 一种用于图像处理器的访存处理方法及设备 | |
CN113177211A (zh) | 用于隐私计算的fpga芯片、异构处理系统及计算方法 | |
JP7080698B2 (ja) | 情報処理装置 | |
US10067792B2 (en) | Finite automata manager and method to pre-fetch data for a processor core | |
US20230168898A1 (en) | Methods and apparatus to schedule parallel instructions using hybrid cores | |
CN117312013A (zh) | 基于消息队列指针主动写回的交互队列管理方法及装置 | |
CN115878300A (zh) | 异构存储系统的管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180126 |