数据处理方法及加速器系统与流程
未命名
07-29
阅读:84
评论:0

1.本说明书实施例涉及计算机技术领域,特别涉及数据处理方法。
背景技术:
2.在高性能计算中,cpu内核进行通用计算,dsa(domain specific accelerators,特定领域加速器)用于进行硬件加速,处理器内核和dsa之间的数据交互有两种方式:一种是基于信号接口的交互;一种是基于队列的交互。基于信号接口的交互需要增加很多接口信号,对cpu内核改动较大;基于队列的交互对cpu内核改动较小,但是不支持异构指令。因此,亟需一种新的cpu内核和dsa之间的交互方式,解决上述技术问题。
技术实现要素:
3.有鉴于此,本说明书实施例提供了数据处理方法。本说明书一个或者多个实施例同时涉及数据处理加速器系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种数据处理方法,应用于加速器,所述方法包括:
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.第二发送模块,被配置为将所述待处理业务数据发送至所述加速器。
30.根据本说明书实施例的第六方面,提供了一种计算设备,包括:
31.存储器和处理器;
32.所述存储器储存有指令集,所述处理器用于执行所述指令集,该指令集被处理器执行时实现上述数据处理方法的步骤。
33.根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有指令集,该指令集可由加速器系统的一个或更多个处理器执行,该指令集被处理器执行时实现上述数据处理方法的步骤。
34.根据本说明书实施例的第八方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
35.本说明书一个实施例实现了提供的数据处理方法,应用于加速器,包括:从第一队列中获取业务数据处理请求;通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务
数据;将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构指令且改动较小。
附图说明
36.图1是本说明书一个实施例提供的一种数据处理方法的结构示意图;
37.图2是本说明书一个实施例提供的一种应用于加速器的数据处理方法的流程图;
38.图3是本说明书一个实施例提供的加速器内的数据流转示意图;
39.图4是本说明书一个实施例提供的应用于处理器内核的数据处理方法的流程图;
40.图5是本说明书一个实施例提供的处理器内核内的数据流转示意图;
41.图6是本说明书一个实施例提供的应用于数据处理系统的数据处理方法的交互流程图;
42.图7是本说明书一个实施例提供的一种应用于加速器的数据处理加速器系统的结构示意图;
43.图8是本说明书一个实施例提供的一种应用于处理器内核的数据处理加速器系统的结构示意图;
44.图9是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
45.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
46.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
47.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
48.需要说明的是,本说明书所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
49.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
50.core:指处理器的内核。
51.dsa:domain specific accelerator,域特定加速器,在通用处理的基础上,扩展出面向某些领域的加速器,以提升解决该领域问题的效率。
52.issue queue:dsa内部的指令发射队列。
53.cmap:core内部的寄存器映射表(register commit map),保存了架构寄存器和物理寄存器的重命名关系。
54.physical register file:物理寄存器,保存寄存器数据。
55.在本说明书中,提供了数据处理方法,本说明书同时涉及数据处理加速器系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
56.参见图1,图1示出了本说明书一个实施例提供的一种数据处理方法的结构示意图,本说明书提供的数据处理方法应用于数据处理系统,数据处理系统中包括有处理器内核(core)和至少一个加速器(dsa,domain specific accelerator),每个dsa与core相连。
57.在实际应用中,处理器内核向第一队列中写入命令,加速器从第一队列中读取该命令并执行相应的处理结果,通过队列的形式,使得加速器和处理器内核可以在不同的时钟域中,即处理器内核和加速器无需保持处理任务的一致。
58.加速器从第一队列中读取命令并在执行命令的过程中,如果在加速器本地存在有执行该指令所需的数据,则可以直接读取该数据并执行相应的操作。如果发现执行该命令需要的信息并不存在于加速器本地,则需要通过业务接口向处理器内核发送数据获取请求。
59.处理器内核在接收到数据获取请求后,从处理器内核的本地获取到执行该命令所需的数据,并将数据通过业务接口发送至加速器,以使加速器可以根据该数据执行相应的操作,通过业务接口传输数据获取信息和业务数据的方式,解决了仅通过队列进行交互带来的无法执行异构指令的问题,提升了数据交互的便捷性。
60.加速器在执行完该命令后,获得相应的处理结果,并将该处理结果写入到第二队列中,处理器内核可以从第二队列中读取该处理结果,并在处理器内核中执行相应的处理操作。
61.通过本说明书实施例提供的数据处理方法,处理器内核基于第一队列向加速器发送命令,加速器从第一队列中获取到该命令并执行,将执行结果基于第二队列发送至处理器内核,通过队列可以实现处理器内核和加速器在不同的时钟域中,提升了数据处理的效率,使得处理器内核和加速器可以异步执行相应的操作。同时当加速器中缺少数据时,可以及时通过业务接口向处理器内核发送数据获取请求,支持异构指令,仅需少量的修改就可以避免加速器因缺少数据而导致的数据处理失败,提升了数据处理的准确率和效率。
62.参见图2,图2示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,该数据处理方法应用于加速器,所述方法具体包括以下步骤。
63.步骤202:从第一队列中获取业务数据处理请求。
64.其中,第一队列具体是指用于存储业务数据处理请求的队列,业务数据处理请求是从处理器内核中发送过来的,在实际应用中,业务数据处理请求是由处理器内核触发,为了加快数据的处理速度,将其发送至加速器中,在加速器中专门对业务数据进行相应的操作处理,为了提升处理器内核和加速器各自的处理速度,通过队列的形式,由处理器内核将
业务数据处理请求写入到队列中,再由加速器从第一队列中拉取该业务处理请求,通过设置队列的方式,使得处理器内核和加速器处于不同的时钟域中,提升了数据处理的效率。
65.步骤204:通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据。
66.业务接口具体是指在加速器和处理器内核中设置的、用于数据和指令传输的接口,当加速器需要处理器内核中的一些必要状态、业务数据时,可以通过业务接口进行相应的传输。
67.这里的数据获取信息,具体是指用于向处理器内核发送的,获取业务数据处理请求对应的待处理业务数据的信息。在实际应用中,处理器内核中的数据会发送到加速器中,保存在加速器的寄存器中,用于数据的加速处理,而有的时候,寄存器的状态会处于失效状态,此时,该寄存器中的数据就无法再使用,当业务数据处理请求命中失效的寄存器时,无法获取相应的待处理业务数据,就会导致加速器一侧的业务数据处理请求失败。
68.基于此,本说明书提供的实施例中,并不是所有的业务数据处理请求都需要向处理器内核发送数据获取信息,只有在确定加速器中不存在业务数据处理请求对应的待处理业务数据的情况下,才会基于业务接口向处理器内核发送数据获取信息。
69.具体的,通过业务接口向处理器内核发送数据获取信息,包括:
70.判断所述加速器中是否存在所述业务数据处理请求对应的待处理业务数据;
71.若是,则读取所述待处理业务数据,并执行根据所述待处理业务数据生成结果业务数据的步骤;
72.若否,则生成数据获取信息,并通过业务接口向处理器内核发送所述数据获取信息。
73.在实际应用中,在获取到业务数据处理请求之后,要在加速器本地进行判断,判断的具体内容是业务数据处理请求所对应的待处理业务数据是否保存在加速器中。
74.当待处理业务数据在加速器中时,则可以直接读取该待处理业务数据,并基于业务数据处理请求对待处理业务数据执行相应的操作,获得结果业务数据。
75.当待处理业务数据未存在加速器中时,则需要生成相应的数据获取信息,并基于加速器和处理器内核之间的业务接口将数据获取信息发送至处理器内核。
76.更进一步的,判断所述加速器中是否存在所述业务数据处理请求对应的待处理业务数据,包括:
77.读取所述业务数据处理请求中的寄存器标识;
78.在所述加速器的加速器寄存器文件中查询所述寄存器标识对应的目标寄存器;
79.在所述目标寄存器的寄存器状态为有效的情况下,确定存在所述业务数据处理请求对应的待处理业务数据;
80.在所述目标寄存器的寄存器状态为无效的情况下,确定不存在所述业务数据处理请求对应的待处理业务数据。
81.在业务数据处理请求中携带有寄存器标识,业务数据处理请求具体是指对寄存器标识中的待处理业务数据进行处理,因此,需要根据寄存器标识来查找加速器中的待处理业务数据。
82.在获取了业务数据处理请求中的寄存器标识后,即可以在加速器寄存器文件中查
询该寄存器标识对应的目标寄存器,其中,加速器寄存器文件具体是指保存在加速器本地的寄存器文件。
83.在获取到目标寄存器之后,要获取目标寄存器的寄存器状态,当寄存器状态为有效的情况下,说明此时可以从目标寄存器中获取到业务数据处理请求对应的待处理业务数据,当寄存器状态为无效的情况下,说明此时已经无法从目标寄存器中获取到业务数据处理请求对应的待处理业务数据,也就无法继续根据待处理业务数据生成结果业务数据。
84.在无法获取到保存在目标寄存器中的待处理业务数据的情况下,就需要从处理器内核中获取到对应的待处理业务数据,在此情况下,生成数据获取信息,包括:
85.将所述业务数据处理请求中的寄存器标识写入到无效寄存器队列;
86.从所述无效寄存器队列中读取所述寄存器标识,并基于所述寄存器标识生成数据获取信息。
87.具体的,在加速器中设置有无效寄存器队列,该无效寄存器队列用于保存处于无效状态的寄存器对应的寄存器标识,当确定寄存器标识对应的目标寄存器是无效状态的情况下,即可将该寄存器标识写入到无效寄存器队列中。
88.业务接口会定期读取无效寄存器队列,获取保存在无效寄存器队列中的寄存器标识,并基于该寄存器标识生成数据获取信息,并将该数据获取信息通过业务接口发送至处理器内核。
89.步骤206:接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据。
90.处理器内核会根据数据获取信息查询对应的待处理业务数据,并将该待处理业务数据通过业务接口返回给加速器,加速器即可接收处理器内核发送的待处理业务数据。并根据业务数据处理请求对该待处理业务数据进行相应的处理,从而获得待处理业务数据对应的结果业务数据。
91.具体的,接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据,包括:
92.接收所述处理器内核发送的待处理业务数据,根据所述寄存器标识和所述待处理业务数据更新所述加速器寄存器文件;
93.根据所述寄存器标识从所述加速器寄存器文件中读取所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据。
94.在实际应用中,加速器在接收到处理器内核发送的待处理业务数据之后,会根据寄存器标识和待处理业务数据对加速器寄存器文件中的目标寄存器进行更新,处理器内核发送的待处理业务数据中还包括有寄存器标识。
95.加速器在对待处理业务数据进行处理的过程中,需要根据寄存器标识,再次从加速器寄存器文件中查询到对应的目标寄存器,并从目标寄存器中读取到待处理业务数据,此时再根据业务数据处理请求对待处理业务数据进行相应的处理,从而获得对应的结果业务数据。
96.需要注意的是,为了进一步的提升加速器中的数据处理速度,还可以根据处理器内核预先返回的处理数据准备就绪信息来更新目标寄存器的寄存器状态。
97.具体的,在本说明书提供的一具体实施方式中,在接收所述处理器内核发送的所
述待处理业务数据之前,所述方法还包括:
98.接收所述处理器内核发送的数据准备就绪信息,并基于所述数据准备就绪信息将所述目标寄存器的寄存器状态更新为有效。
99.其中,数据准备就绪信息是由处理器内核发送的信息,该数据准备就绪信息的发送时间早于待处理业务数据的发送时间,当处理器内核在查询待处理业务数据的过程中,会预先生成数据准备就绪信息,并提前返回到加速器中,加速器在接收到该数据准备就绪信息后,可以得知该目标寄存器的待处理数据稍后会被发送过来,因此,可以提前将目标寄存器的寄存器状态更新为有效,当待处理业务数据抵达加速器后,可以直接根据目标寄存器的寄存器状态读取待处理业务数据,从而达到更快的对待处理业务数据进行相应处理的操作,也可以更快的获得结果业务数据,提升了加速器中数据的处理速度。
100.步骤208:将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。
101.在加速器中经过计算获得了结果业务数据之后,即可由加速器将该结果业务数据写入到第二队列中,其中,第二队列具体是指用于保存加速器响应于业务数据处理请求而生成的结果业务数据的队列。处理器内核可以根据实际情况,随时从第二队列中读取结果业务数据。
102.本说明书一个实施例实现了提供的数据处理方法,应用于加速器,包括:从第一队列中获取业务数据处理请求;通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据;将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构指令且改动较小。
103.参见图3,图3示出了根据本说明书一个实施例提供的一种于加速器内的数据流转示意图。
104.在加速器内,存在一个处理队列,处理队列会从第一队列中拉取业务数据处理请求,更进一步的,会将业务数据处理请求中的寄存器标识写入到处理队列中。
105.之后会由选择模块从处理队列中获取到寄存器标识,并根据该寄存器标识在加速器内的加速器寄存器文件中查找对应的目标寄存器,并判断目标寄存器是否有效。
106.若目标寄存器有效,则可以读取该目标寄存器中保存的待处理业务数据,并根据待处理业务数据生成结果业务数据,将结果业务数据保存到第二队列中,便于处理器内核从第二队列中读取该结果业务数据。
107.若目标寄存器无效,则说明此时无法获取待处理业务数据,需要将寄存器标识保存到无效寄存器队列中,通过另一个选择模块从无效寄存器队列中获取寄存器标识,生成数据获取信息,并通过业务接口将该数据获取信息发送至处理器内核。
108.处理器内核在根据寄存器标识获取待处理业务数据的过程中,会通过业务接口先返回一个数据准备就绪信息,在加速器中,根据该数据准备就绪信息既可更新加速器寄存器文件中目标寄存器的寄存器状态,将目标寄存器的寄存器状态从无效更新为有效。并将
寄存器标识再次放入到处理队列中,等待再次被选择处理。
109.之后处理器内核还会通过业务接口返回待处理业务数据,加速器根据该待处理业务数据更新加速器寄存器文件中的目标寄存器,将待处理业务数据保存到目标寄存器中,选择模块从处理队列中再次读取寄存器标识,从加速器寄存器文件中获取到该寄存器标识对应的目标寄存器,在目标寄存器有效的情况下,读取保存在目标寄存器中的待处理业务数据,并根据待处理业务数据生成结果业务数据,最后将结果业务数据写入到第二队列中。
110.本说明书一个实施例实现了提供的数据处理方法,应用于加速器,包括:从第一队列中获取业务数据处理请求;通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据;将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构指令且改动较小。
111.参见图4,图4示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,该数据处理方法应用于处理器内核,所述方法具体包括以下步骤。
112.步骤402:分发业务数据处理请求,将所述业务数据处理请求写入至第一队列,以使加速器从所述第一队列中获取所述业务数据处理请求。
113.其中,业务数据处理请求具体是指对待处理业务数据进行处理的请求,该业务数据处理请求可以是用户发送的,也可以是由其他的业务逻辑触发的,在本说明书提供的实施方式中,对业务数据处理请求的获取方式不做限定。
114.在接收到业务数据处理请求之后,需要对其进行处理,更近一步的,为了提升数据的处理速度,需要将该业务数据处理请求发送至加速器,由加速器对该待处理业务数据进行相应的计算处理。因此,可以将业务数据处理请求写入到第一队列中,以使加速器可以从第一队列中读取到该业务数据处理请求。
115.步骤404:基于业务接口接收所述加速器发送的数据获取信息,其中,所述数据获取信息中携带有寄存器标识。
116.如上述加速器实施例中所述,当待处理业务数据没有保存在加速器中时,加速器会基于业务接口向处理器内核发送数据获取信息,基于此,处理器内核就会基于业务数据接口接收到加速器发送的数据获取信息,更进一步的,在数据获取信息中会携带有寄存器标识,寄存标识用于在处理器内核中查询对应的待处理业务数据。
117.步骤406:根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据。
118.在接收到数据获取信息后,即可根据数据获取信息中携带的寄存器标识从内核寄存器文件中获取对应的待处理业务数据了,其中,内核寄存器文件具体是指保存在处理器内核中的文件,其具体为处理器内核中的实际物理地址,在物理地址中保存有寄存器标识对应的待处理业务数据。
119.在实际应用中,保存待处理业务数据的是处理器内核中的物理寄存器,通过寄存器标识无法直接找到保存待处理业务数据的物理寄存器,基于此,根据所述寄存器标识在
所述处理器内核的内核寄存器文件中获取待处理业务数据,包括:
120.在寄存器对照表中查询所述寄存器标识对应的寄存器位置信息;
121.根据所述寄存器位置信息在内核寄存器文件查询所述寄存器标识对应的待处理业务数据。
122.其中,寄存器对照表具体是指用于存储架构寄存器和物理寄存器间重命名关系的映射表,寄存器对照表又被称为cmap,即core内部的寄存器映射表(register commit map),在该寄存器映射表中会保存有寄存器标识和寄存器的物理位置的对应关系,根据寄存器标识可以从寄存器对照表中查询到与该寄存器标识对应的寄存器位置信息。
123.在查询到该寄存器位置信息的情况下,就可以根据寄存器位置信息从处理器内核的物理寄存器中获取到该寄存器标识对应的待处理业务数据。
124.更进一步的,为了提升待处理数据的数据处理速度,可以在查询到寄存器位置信息的同时,生成数据准备就绪信息,并将该数据准备就绪信息发送至加速器中。
125.在本说明书提供的一具体实施方式中,在根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据之前,所述方法还包括:
126.根据所述寄存器标识生成数据准备就绪信息;
127.将所述数据准备就绪信息发送至所述加速器。
128.在处理器内核中,根据寄存器标识在寄存器对照表中查询到对应的寄存器位置信息后,在从寄存器位置信息获取到待处理业务数据之前,处理器内核还会根据寄存器标识生成对应的数据准备就绪信息,并通过业务接口将该数据准备就绪信息发送至加速器,以使加速器可以根据该数据准备就绪信息更新保存在加速器中寄存器的状态。
129.步骤408:将所述待处理业务数据发送至所述加速器。
130.在获取到待处理业务数据之后,即可将该待处理业务数据通过业务数据接口发送至加速器,以使加速器根据该待处理业务数据进行相应的处理,从而获得结果业务数据。
131.在本说明书提供的一具体实施方式中,所述方法还包括:
132.从第二队列中读取结果业务数据,其中,所述结果业务数据基于所述待处理业务数据生成;
133.根据所述结果业务数据和所述寄存器标识更新所述内核寄存器文件。
134.在实际应用中,处理器内核还会根据预设的时间区间从第二队列中读取由加速器写入的结果业务数据,该结果业务数据是由加速器根据待处理业务数据生成的。
135.在获得了结果业务数据之后,可以根据该结果业务数据和对应的寄存器标识对内核寄存器文件进行更新,将处理器内核的物理寄存器中的数据更新为结果业务数据。从而完成对上层业务逻辑层的业务数据处理请求。
136.本说明书一个实施例实现了提供的数据处理方法,应用于处理器内核,包括:接收业务数据处理请求,并将所述业务数据处理请求写入至第一队列,以使加速器从所述第一队列中获取所述业务数据处理请求;基于业务接口接收所述加速器发送的数据获取信息,其中,所述数据获取信息中携带有寄存器标识;根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据;将所述待处理业务数据发送至所述加速器。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构
指令且改动较小。
137.参见图5,图5示出了根据本说明书一个实施例提供的一种于处理器内核内的数据流转示意图。
138.在处理器内核内,首先接收到上层业务逻辑层发送的业务数据处理请求,为了加快数据处理速度,处理器内核将业务数据处理请求写入到第一队列中,便于加速器从第一队列中获取该业务数据处理请求。
139.当加速器中不存在该业务数据处理请求对应的待处理业务数据时,会基于业务接口向处理器内核发送数据获取信息,在该数据获取信息中携带有寄存器标识。
140.处理器内核根据寄存器标识在cmap中查询到该寄存器标识对应的物理寄存器的寄存器物理地址,并根据该寄存器物理地址在处理器内核的物理寄存器中读取保存的待处理业务数据,并将该待处理业务数据通过业务接口返回至加速器,以便加速器进行后续的处理运算。
141.在实际应用中,在根据寄存器标识从cmap中查询到寄存器物理地址后,即可生成一条数据准备就绪信息,并通过业务接口先于待处理业务数据返回至加速器,以使加速器先根据该数据准备就绪信息更新加速器内该寄存器标识对应的目标寄存器的状态,并将该寄存器标识再次添加到处理队列中,等待再次被选取和处理。
142.本说明书一个实施例实现了提供的数据处理方法,应用于处理器内核,包括:接收业务数据处理请求,并将所述业务数据处理请求写入至第一队列,以使加速器从所述第一队列中获取所述业务数据处理请求;基于业务接口接收所述加速器发送的数据获取信息,其中,所述数据获取信息中携带有寄存器标识;根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据;将所述待处理业务数据发送至所述加速器。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构指令且改动较小。
143.下述结合附图6,对本说明书提供的数据处理方法做进一步解释说明,图6示出了本说明书一实施例提供的应用于数据处理系统的数据处理方法的交互流程图,数据处理系统包括有处理器内核和加速器,所述方法包括以下步骤。
144.步骤602:所述处理器内核向第一队列中写入业务数据处理请求。
145.步骤604:所述加速器从所述第一队列中读取所述业务数据处理请求,通过业务接口向所述处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据。
146.步骤606:所述处理器内核根据所述数据获取信息中的寄存器标识获取待处理业务数据,并通过所述业务接口将所述待处理业务数据发送至所述加速器。
147.步骤608:所述加速器根据所述待处理业务数据生成结果业务数据,并将所述结果业务数据写入至第二队列。
148.步骤610:所述处理器内核从所述第二队列中获取所述结果业务数据。
149.本说明书一个实施例实现了提供的数据处理方法,应用于数据处理系统,所述数据处理系统包括处理器内核和加速器,包括:所述处理器内核向第一队列中写入业务数据处理请求;所述加速器从所述第一队列中读取所述业务数据处理请求,通过业务接口向所
述处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;所述处理器内核根据所述数据获取信息中的寄存器标识获取待处理业务数据,并通过所述业务接口将所述待处理业务数据发送至所述加速器;所述加速器根据所述待处理业务数据生成结果业务数据,并将所述结果业务数据写入至第二队列;所述处理器内核从所述第二队列中获取所述结果业务数据。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构指令且改动较小。
150.与上述方法实施例相对应,本说明书还提供了数据处理加速器系统实施例,图7示出了本说明书一个实施例提供的一种数据处理加速器系统的结构示意图。如图7所示,该加速器系统配置于加速器,包括:
151.第一获取模块702,被配置为从第一队列中获取业务数据处理请求;
152.第一发送模块704,被配置为通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;
153.第一接收模块706,被配置为接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据;
154.第一写入模块708,被配置为将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。
155.可选的,所述第一发送模块704,进一步被配置为:
156.判断所述加速器中是否存在所述业务数据处理请求对应的待处理业务数据;
157.若是,则读取所述待处理业务数据,并执行根据所述待处理业务数据生成结果业务数据的步骤;
158.若否,则生成数据获取信息,并通过业务接口向处理器内核发送所述数据获取信息。
159.可选的,所述第一发送模块704,进一步被配置为:
160.读取所述业务数据处理请求中的寄存器标识;
161.在所述加速器的加速器寄存器文件中查询所述寄存器标识对应的目标寄存器;
162.在所述目标寄存器的寄存器状态为有效的情况下,确定存在所述业务数据处理请求对应的待处理业务数据;
163.在所述目标寄存器的寄存器状态为无效的情况下,确定不存在所述业务数据处理请求对应的待处理业务数据。
164.可选的,所述第一发送模块704,进一步被配置为:
165.将所述业务数据处理请求中的寄存器标识写入到无效寄存器队列;
166.从所述无效寄存器队列中读取所述寄存器标识,并基于所述寄存器标识生成数据获取信息。
167.可选的,所述第一接收模块706,进一步被配置为:
168.接收所述处理器内核发送的待处理业务数据,根据所述寄存器标识和所述待处理业务数据更新所述加速器寄存器文件;
169.根据所述寄存器标识从所述加速器寄存器文件中读取所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据。
170.可选的,所述加速器系统还包括:
171.更新模块,被配置为接收所述处理器内核发送的数据准备就绪信息,并基于所述数据准备就绪信息将所述目标寄存器的寄存器状态更新为有效。
172.本说明书一个实施例实现了提供的数据处理加速器系统,配置于加速器,包括:从第一队列中获取业务数据处理请求;通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据;将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构指令且改动较小。
173.上述为本实施例的一种数据处理加速器系统的示意性方案。需要说明的是,该数据处理加速器系统的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理加速器系统的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
174.与上述方法实施例相对应,本说明书还提供了数据处理加速器系统实施例,图8示出了本说明书一个实施例提供的一种数据处理加速器系统的结构示意图。如图8所示,该加速器系统配置于处理器内核,包括:
175.第二写入模块802,被配置为接收业务数据处理请求,并将所述业务数据处理请求写入至第一队列,以使加速器从所述第一队列中获取所述业务数据处理请求;
176.第二接收模块804,被配置为基于业务接口接收所述加速器发送的数据获取信息,其中,所述数据获取信息中携带有寄存器标识;
177.第二获取模块806,被配置为根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据;
178.第二发送模块808,被配置为将所述待处理业务数据发送至所述加速器。
179.可选的,所述加速器系统还包括:
180.数据读取模块,被配置为从第二队列中读取结果业务数据,其中,所述结果业务数据基于所述待处理业务数据生成;
181.存储模块,被配置为根据所述结果业务数据和所述寄存器标识更新所述内核寄存器文件。
182.可选的,所述加速器系统还包括:
183.生成模块,被配置为根据所述寄存器标识生成数据准备就绪信息;
184.数据发送模块,被配置为将所述数据准备就绪信息发送至所述加速器。
185.可选的,所述第二获取模块806,进一步被配置为:
186.在寄存器对照表中查询所述寄存器标识对应的寄存器位置信息;
187.根据所述寄存器位置信息在内核寄存器文件查询所述寄存器标识对应的待处理业务数据。
188.本说明书一个实施例实现了提供的数据处理加速器系统,配置于处理器内核,包括:接收业务数据处理请求,并将所述业务数据处理请求写入至第一队列,以使加速器从所述第一队列中获取所述业务数据处理请求;基于业务接口接收所述加速器发送的数据获取信息,其中,所述数据获取信息中携带有寄存器标识;根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据;将所述待处理业务数据发送至所述加速器。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构指令且改动较小。
189.上述为本实施例的一种数据处理加速器系统的示意性方案。需要说明的是,该数据处理加速器系统的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理加速器系统的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
190.图9示出了根据本说明书一个实施例提供的一种计算设备900的结构框图。该计算设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库950用于保存数据。
191.计算设备900还包括接入设备940,接入设备940使得计算设备900能够经由一个或多个网络960通信。这些网络的示例包括公用交换电话网(pstn,public switched telephone network)、局域网(lan,local area network)、广域网(wan,wide area network)、个域网(pan,personal area network)或诸如因特网的通信网络的组合。接入设备940可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic,network interface controller))中的一个或多个,诸如ieee802.11无线局域网(wlan,wireless local area network)无线接口、全球微波互联接入(wi-max,worldwide interoperability for microwave access)接口、以太网接口、通用串行总线(usb,universal serial bus)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc,near field communication)。
192.在本说明书的一个实施例中,计算设备900的上述部件以及图9中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图9所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
193.计算设备900可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(pc,personal computer)的静止计算设备。计算设备900还可以是移动式或静止式的服务器。
194.其中,处理器920用于执行如下指令集,该指令集被处理器执行时实现上述数据处理方法的步骤。上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
195.本说明书一实施例还提供一种计算机可读存储介质,其存储有指令集,该指令集
可由加速器系统的一个或更多个处理器执行,该指令集被处理器执行时实现上述数据处理方法的步骤。
196.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
197.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
198.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
199.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
200.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
201.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
202.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
203.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
技术特征:
1.一种数据处理方法,应用于加速器,所述方法包括:从第一队列中获取业务数据处理请求;通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据;将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。2.如权利要求1所述的方法,通过业务接口向处理器内核发送数据获取信息,包括:判断所述加速器中是否存在所述业务数据处理请求对应的待处理业务数据;若是,则读取所述待处理业务数据,并执行根据所述待处理业务数据生成结果业务数据的步骤;若否,则生成数据获取信息,并通过业务接口向处理器内核发送所述数据获取信息。3.如权利要求2所述的方法,判断所述加速器中是否存在所述业务数据处理请求对应的待处理业务数据,包括:读取所述业务数据处理请求中的寄存器标识;在所述加速器的加速器寄存器文件中查询所述寄存器标识对应的目标寄存器;在所述目标寄存器的寄存器状态为有效的情况下,确定存在所述业务数据处理请求对应的待处理业务数据;在所述目标寄存器的寄存器状态为无效的情况下,确定不存在所述业务数据处理请求对应的待处理业务数据。4.如权利要求2所述的方法,生成数据获取信息,包括:将所述业务数据处理请求中的寄存器标识写入到无效寄存器队列;从所述无效寄存器队列中读取所述寄存器标识,并基于所述寄存器标识生成数据获取信息。5.如权利要求3所述的方法,接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据,包括:接收所述处理器内核发送的待处理业务数据,根据所述寄存器标识和所述待处理业务数据更新所述加速器寄存器文件;根据所述寄存器标识从所述加速器寄存器文件中读取所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据。6.如权利要求3所述的方法,在接收所述处理器内核发送的所述待处理业务数据之前,所述方法还包括:接收所述处理器内核发送的数据准备就绪信息,并基于所述数据准备就绪信息将所述目标寄存器的寄存器状态更新为有效。7.一种数据处理方法,应用于处理器内核,所述方法包括:接收业务数据处理请求,并将所述业务数据处理请求写入至第一队列,以使加速器从所述第一队列中获取所述业务数据处理请求;基于业务接口接收所述加速器发送的数据获取信息,其中,所述数据获取信息中携带
有寄存器标识;根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据;将所述待处理业务数据发送至所述加速器。8.如权利要求7所述的方法,所述方法还包括:从第二队列中读取结果业务数据,其中,所述结果业务数据基于所述待处理业务数据生成;根据所述结果业务数据和所述寄存器标识更新所述内核寄存器文件。9.如权利要求7所述的方法,在根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据之前,所述方法还包括:根据所述寄存器标识生成数据准备就绪信息;将所述数据准备就绪信息发送至所述加速器。10.如权利要求7所述的方法,根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据,包括:在寄存器对照表中查询所述寄存器标识对应的寄存器位置信息;根据所述寄存器位置信息在内核寄存器文件查询所述寄存器标识对应的待处理业务数据。11.一种数据处理方法,应用于数据处理系统,所述数据处理系统包括处理器内核和加速器,所述方法包括:所述处理器内核向第一队列中写入业务数据处理请求;所述加速器从所述第一队列中读取所述业务数据处理请求,通过业务接口向所述处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;所述处理器内核根据所述数据获取信息中的寄存器标识获取待处理业务数据,并通过所述业务接口将所述待处理业务数据发送至所述加速器;所述加速器根据所述待处理业务数据生成结果业务数据,并将所述结果业务数据写入至第二队列;所述处理器内核从所述第二队列中获取所述结果业务数据。12.一种数据处理加速器系统,配置于加速器,所述加速器系统包括:第一获取模块,被配置为从第一队列中获取业务数据处理请求;第一发送模块,被配置为通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;第一接收模块,被配置为接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据;第一写入模块,被配置为将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。13.一种数据处理加速器系统,配置于处理器内核,所述加速器系统包括:第二写入模块,被配置为接收业务数据处理请求,并将所述业务数据处理请求写入至第一队列,以使加速器从所述第一队列中获取所述业务数据处理请求;第二接收模块,被配置为基于业务接口接收所述加速器发送的数据获取信息,其中,所
述数据获取信息中携带有寄存器标识;第二获取模块,被配置为根据所述寄存器标识在所述处理器内核的内核寄存器文件中获取待处理业务数据;第二发送模块,被配置为将所述待处理业务数据发送至所述加速器。14.一种计算设备,包括:存储器和处理器;所述存储器储存有指令集,所述处理器用于执行所述指令集,该指令集被处理器执行时实现权利要求1-6或7-10任意一项所述方法的步骤。15.一种计算机可读存储介质,其存储有指令集,该指令集可由加速器系统的一个或更多个处理器执行,该指令集被处理器执行时实现权利要求1-6或7-10任意一项所述方法的步骤。
技术总结
本说明书实施例提供数据处理方法及加速器系统,其中所述数据处理方法应用于加速器,包括:从第一队列中获取业务数据处理请求;通过业务接口向处理器内核发送数据获取信息,其中,所述数据获取信息用于向所述处理器内核请求所述业务数据处理请求对应的待处理业务数据;接收所述处理器内核发送的所述待处理业务数据,并根据所述待处理业务数据生成结果业务数据;将所述结果业务数据写入第二队列,以使所述处理器内核从所述第二队列中获取所述结果业务数据。本说明书实施例提供的方法,使得加速器可以根据第一队列中的请求执行相应处理,无需与处理器内核保持同步,同时还可以通过业务接口向处理器内核发送请求获取数据,支持异构指令且改动较小。持异构指令且改动较小。持异构指令且改动较小。
技术研发人员:张仕健 段立德 郑宏忠
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.03.08
技术公布日:2023/7/26
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/