众核系统中请求消息的处理方法及装置与流程

文档序号:31676267发布日期:2022-09-28 02:11阅读:39来源:国知局
众核系统中请求消息的处理方法及装置与流程

1.本技术涉及计算机领域,具体涉及一种众核系统中请求消息的处理方法及装置。


背景技术:

2.现有的众核系统中的内存可分为两种类型:核私有内存和多核共享内存,其中,私有内存只在核内部使用,对于系统的其它区域而言是不可见的;共享内存放置在核外部或芯片外部,可被多于一个核使用,多个核在使用时需要通过竞争仲裁获得使用权,即如果有多个内核同时访问该共享内存,通过仲裁只能是其中一个内核的请求会被执行,其他内核的请求则会被拒绝;其他内核则会再次发起请求,然后再次通过仲裁,如此往复执行。通过现有的仲裁方式,会导致请求时间较长,而且需要内核多次发送同一请求造成资源的浪费。


技术实现要素:

3.本技术实施例提供了一种众核系统中请求消息的处理方法及装置,以解决现有技术中如果有多个内核同时访问该共享内存,通过仲裁先确定其中一个内核的请求会被执行,其他内核的请求则会被拒绝,导致其他内核需要再次发起请求,并再次通过仲裁决定请求的问题。
4.为了解决上述技术问题,本技术是这样实现的:
5.第一方面,本技术实施例提供了一种众核系统中请求消息的处理方法,所述众核系统包括多个内核;所述方法包括:将待访问的请求消息添加到消息队列中;其中,所述消息队列中的请求消息用于访问第一内核,且所述消息队列中的请求消息具有对应的访问优先级;根据所述优先级执行所述消息队列中请求消息访问所述第一内核的请求操作。
6.第二方面,本技术实施例提供了一种众核系统中请求消息的处理装置,所述众核系统包括多个内核;所述装置包括:添加模块,用于将待访问的请求消息添加到消息队列中;其中,所述消息队列中的请求消息用于访问第一内核,且所述消息队列中的请求消息具有对应的访问优先级;执行模块,用于根据所述优先级执行所述消息队列中请求消息访问所述第一内核的请求操作。
7.第三方面,本技术实施例还提供了一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
8.第四方面,本技术实施例还提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
9.通过本技术,将待访问第一内核的请求消息添加到对应的消息队列中,而该消息队列中的请求消息是具有优先级的,因此,可以根据优先级的高低确定请求消息访问第一内核的先后顺序,也就是说,可以将访问第一内核的多个请求消息添加到消息队列中,并根据优先级执行消息队列中的请求消息,避免了在一个消息请求被执行后,其他消息请求被拒绝,而需要再次发起的过程,而且根据优先级执行消息队列中的请求消息,可以对优先执
行优先级高的请求消息,节省了请求消息的等待时间。可见,通过本技术,解决了现有技术中如果有多个内核同时访问该共享内存,通过仲裁先确定其中一个内核的请求会被执行,其他内核的请求则会被拒绝,导致其他内核需要再次发起请求,并再次通过仲裁决定请求的问题。
附图说明
10.图1是本技术实施例的众核系统中请求消息的处理方法流程图;
11.图2是本技术实施例的众核系统中请求消息处理过程示意图;
12.图3是本技术实施例的众核系统中请求消息的处理装置的结构示意图。
具体实施方式
13.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
14.在本技术的描述中,需要理解的是,术语“第一”、“第二”仅由于描述目的,且不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。因此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
15.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的路由地址的获取方法进行详细地说明。
16.本技术实施例提供了一种路由地址的获取方法,其中,该众核系统包括多个内核,图1是本技术实施例的众核系统中请求消息的处理方法流程图,如图1所示,该方法的步骤包括:
17.步骤s102,将待访问的请求消息添加到消息队列中;其中,该消息队列中的请求消息用于访问第一内核,且消息队列中的请求消息具有对应的访问优先级;
18.步骤s104,根据优先级执行消息队列中请求消息访问第一内核的请求操作。
19.通过本技术实施例的上述步骤s102和步骤s104,将待访问第一内核的请求消息添加到对应的消息队列中,而该消息队列中的请求消息是具有优先级的,因此,可以根据优先级的高低确定请求消息访问第一内核的先后顺序,也就是说,可以将访问第一内核的多个请求消息添加到消息队列中,并根据优先级执行消息队列中的请求消息,避免了在一个消息请求被执行后,其他消息请求被拒绝,而需要再次发起的过程,而且根据优先级执行消息队列中的请求消息,可以对优先执行优先级高的请求消息,节省了请求消息的等待时间。可见,通过本技术,解决了现有技术中如果有多个内核同时访问该共享内存,通过仲裁先确定其中一个内核的请求会被执行,其他内核的请求则会被拒绝,导致其他内核需要再次发起请求,并再次通过仲裁决定请求的问题。
20.在本技术实施例的可选实施方式中,对于上述步骤s102中涉及到的将待访问的请求消息添加到消息队列中的方式,进一步可以包括:
21.步骤s102-11,在待访问的第一请求消息来自于第一内核的情况下,将第一请求消
息添加到消息队列中的第一位置,其中,第一位置为消息队列中所有来自于非第一内核的请求消息之前的位置;每一个位置具有对应的优先级。
22.也就是说,在本技术中,自于本内核(第一内核)的请求消息比来自于非本内核的请求消息的优先级高,即优先执行来自于本内核的请求消息。因为,对于本内核的请求消息所请求的数据,再发送时也是发送到本内核的相应私有地址,其发送过程所需时间相较于发送到其他内核的所需时间较短,以便在请求到数据后执行后续操作,避免本地内核的请求消息的请求时间过长。
23.进一步地,对于上述步骤s102-11中涉及到的将第一请求消息添加到消息队列中的第一位置的方式,进一步可以包括:
24.步骤s11,确定消息队列中是否存在与第一请求消息所请求的数据相同的第三请求消息;
25.步骤s12,在消息队列中存在与第一请求消息所请求的数据相同的第三请求消息的情况下,将第一请求消息添加到消息队列中的第一位置,其中,第一位置为与第三请求消息所在的位置相同;
26.步骤s13,在消息队列中不存在与第一请求消息所请求的数据相同的第三请求消息的情况下,将第一请求消息添加到消息队列中的第一位置,其中,第一位置为消息队列中所有来自于非第一内核的请求消息之前,且所有来自于第一内核的请求消息之后的位置。
27.通过上述步骤s11至步骤s13可知,如果第一请求消息与消息队列中的请求消息访问的数据相同,则将该第一请求消息添加到与该请求消息相同的位置,也就是说,对于存在访问同一数据的多个请求消息,其访问的优先级会比其他请求消息的优先级高,也即,优先执行访问同一数据的多个请求消息。如果当前待访问的第一请求消息与消息队列中的其他请求消息所请求的数据不相同的情况下,则将该第一请求消息添加到消息队列的所有来自于非第一内核的请求消息之前,且所有来自于第一内核的请求消息之后的位置,即该第一请求消息的优先级依然还是高于其他来自于其他内核的请求消息,但是需要放在当前所有来自于第一内核的请求消息的最后面。
28.例如,当前消息队列中的请求消息优先级排序为:请求消息a、请求消息b、请求消息c、请求消息d、请求消息e;其中,优先级由高到低,即请求消息a优先级最高、请求消息e优先级最低;此外,请求消息a、请求消息b来自于第一内核,请求消息c、请求消息d和请求消息e来自于第二内核。如果当前有来自于第一内核的请求消息f,如果请求消息f与请求消息a请求的数据相同,则该请求消息f被添加到与请求消息a相同的位置,即请求消息a和请求消息f的优先级一样,即消息队列的优先级从高到低的排序后为:(请求消息a和请求消息f)、请求消息b、请求消息c、请求消息d、请求消息e。如果请求消息f与消息队列中所有请求消息所请求的数据均不相同,则将请求消息f添加到请求消息b之后,请求消息c之后,即消息队列优先级从高到低的排序后为:请求消息a、请求消息b、请求消息f、请求消息c、请求消息d、请求消息e。
29.需要说明的是,本技术实施例中的消息队列中所有来自于第一内核且所请求的数据不相同的请求消息,按照访问时间的先后确定对应的优先级。也就是说,其他请求消息是按照访问时间顺序在消息队列中进行排序的。
30.在本技术实施例的另一个可选实施方式中,对于上述步骤s102中涉及到的将待访
问的请求消息添加到消息队列中的方式,进一步可以包括:
31.步骤s102-21,在待访问的第一请求消息来自于第二内核的情况下,判断消息队列中是否存在与第一请求消息所请求的数据相同的第二请求消息;
32.步骤s102-22,在判断结果为是的情况下,将第一请求消息添加到消息队列中的第二位置,其中,第二位置为与第二请求消息所在位置所并列的位置;第一内核不同于第二内核;
33.步骤s102-23,在判断结果为否的情况下,将第一请求消息添加到消息队列中的第三位置,其中,第三位置为消息队列中队尾的位置。
34.通过上述步骤s102-21至步骤s102-23可知,如果当前待访问的第一请求消息来自于第二内核,依然需要判断是否存在其他请求消息所请求的数据与该第一请求所请求的数据是否相同,相同则将其添加到其相同位置,不相同则添加到消息队列的队尾位置,也就是说,对于访问同一数据的请求消息,其优先级依然相比较其他请求消息的优先级高。
35.例如,当前消息队列中的请求消息优先级排序为:请求消息a、请求消息b、请求消息c、请求消息d、请求消息e;其中,优先级由高到低,即请求消息a优先级最高、请求消息e优先级最低;此外,请求消息a、请求消息b来自于第一内核,请求消息c、请求消息d和请求消息e来自于第二内核。如果当前有来自于第二内核的请求消息f,如果请求消息f与请求消息d请求的数据相同,则该请求消息f被添加到与请求消息d相同的位置,即请求消息a和请求消息f的优先级一样,即消息队列的优先级从高到低排序为:请求消息a、请求消息b、请求消息f、请求消息c、(请求消息d和请求消息f)、请求消息e。如果请求消息f与消息队列中所有请求消息所请求的数据均不相同,则将请求消息f添加到请求消息e之后,请求消息c之后,即消息队列的优先级从高到低排序为:请求消息a、请求消息b、请求消息c、请求消息d、请求消息e、请求消息f。
36.在本技术实施例的可选实施方式中,本技术实施例的方法还可以包括:
37.步骤s31,确定访问同一数据的请求消息的数量;
38.步骤s32,根据数量确定访问同一数据的请求消息的优先级,其中,访问同一数据的请求消息的数量越多,对应于同一数据的请求消息的优先级越高;
39.步骤s33,将确定优先级后的访问同一数据的请求消息放置在所有未访问同一数据的请求消息之前的位置。
40.通过上述步骤s31至步骤s33可知,如果当前消息队列中存在多组访问同一数据的请求消息,例如,请求消息a和请求消息b均访问数据a,请求消息c、请求消息d和请求消息e均访问数据b,则此时需要判断访问同一数据的请求消息的数量,即访问数据a的请求消息的数量为2,访问数据b的请求消息的数量为3,则说明访问数据b的请求消息c、请求消息d和请求消息e,相较于访问数据a的请求消息a和请求消息b的优先级更高。如果当前消息队列中还存在其他没有访问同一数据的请求消息f,则该消息队列的优先级从高到低的排序为:(请求消息c、请求消息d和请求消息e)、(请求消息a和请求消息b)、请求消息f。
41.在本技术实施例的可选实施方式中,本技术实施例的方法还可以包括:
42.步骤s41,通过片上网络将访问的同一数据多播给与访问同一数据的多个请求消息对应的多个内核。
43.也就是说,对于访问同一数据的多个请求消息,可以通过片上网络采用多播的方
式将数据发送给对应的请求内核。
44.需要说明的是,在本技术实施例的上述实施方式中,可以通过请求消息是否来自于第一内核,以及是否存在访问同一数据的方式来确定消息队列中请求消息的优先级,而在本技术实施例中,对于上述步骤s102中涉及到的将待访问的请求消息添加到消息队列中的方式,还可以包括:
45.步骤s102-31,将待访问的请求消息添加到消息队列中所有请求消息之后,其中,消息队列中的请求消息对应的优先级根据访问时间的先后确定;请求消息的访问时间越靠前对应的优先级越高。
46.也就是说,对于消息队列中的请求消息的排序,均是按照请求消息的访问时间来排序,即访问时间靠前其优先级越高,无需考虑是否来自于第一内核,以及是否存在访问相同数据的请求消息。
47.在具体应用场景中,对内核处理请求消息的过程,如图2所示,仲裁器可以对片上网络和本地请求的请求消息进行仲裁,仲裁规则可以是仅按照时间访问先后进行排序,或者是在此次基础上还需要判断是否来自于本地以及是否存在访问同一数据的请求消息来确定,仲裁之后将请求消息添加到消息队列中,进而内核中的访问处理模块可以对响应的消息进行地址映射,进而从阵列存储单元读取数据,并向对应的内核发送读取的数据以及进行消息回复。
48.在本技术实施例的另一个可选实施方式,本技术实施例中的方法还可以包括:
49.步骤s106,在待访问的请求消息来自于第一内核的情况下,根据待访问的请求消息所对应的私有地址发送待访问的请求消息到消息队列中;
50.步骤s108,在待访问的请求消息来自于第二内核的情况下,根据第二内核发送待访问的请求消息所对应的全局地址和地址映射表确定第一内核的私有地址,并根据全局地址和私有地址发送待访问的请求消息到消息队列中,其中,地址映射表用于记录全局地址与私有地址之间的映射关系。
51.通过上述步骤s106和步骤s108可知,本技术实施例中的内核为双模式内存,即具有两套地址空间,一套空间只能被核内访问,另一套可以被全局访问;全局模式下,如目的内核内存地址不是请求核,则采用片上网络或片上总线,将请求读取数据的信令发送到目标核,目标核将对应的目标数据通过片上网络或片上总线发送给请求核,在此过程中,需要全局地址到私有地址的映射,由全局地址映射表记录并负责转译全局地址到私有地址,并最终采用私有地址访问内存单元,需要说明的是,局地址所指向的核可采用预编译方式确定,也可在运行时动态确定。
52.其中,内存地址空间分配的预编译方法可以是:对于多芯片阵列,位于第q个芯片上的核c(c从0计数),其内部内存私有空间为0~n-1,对于某个私有地址空间k,其全局地址空间p对应为p=(qv+c)
×
n+k。其中v为芯片的总的核个数,且每个芯片相同。
53.又例如,对于单个芯片j行p列二维核阵列,核x,y(x为行标,y为列标从0计数)的私有地址空间k的对应全局地址空间p对应为p=(px+y)
×
n+k。
54.基于上述私有内存共享话的方式,本技术实施例中的消息队列中的请求消息用于请求存储在第一内核中的权重。也就是说,对于一套权重可以不用在每一个内核中均存储,可以只在众核系统中的部分内核中存储,从而通过上述底油内存共享化的方式,来获取该
权重。在具体应用场景中可以是:当有一套权重,要给很多个图片用时,通过本技术实施例的方式可以只存储一套权重,可以把权重存储在一个或少数内核里,在需要使用权重的时候,可以把这套权重发给用的核,每个核有各自输入的图片。
55.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例的方法。
56.本技术实施例提供了一种众核系统中请求消息的处理装置,其中,众核系统包括多个内核;如图3所述,该装置包括:
57.添加模块32,用于将待访问的请求消息添加到消息队列中;其中,消息队列中的请求消息用于访问第一内核,且消息队列中的请求消息具有对应的访问优先级;
58.执行模块34,用于根据优先级执行消息队列中请求消息访问第一内核的请求操作。
59.通过本技术,将待访问第一内核的请求消息添加到对应的消息队列中,而该消息队列中的请求消息是具有优先级的,因此,可以根据优先级的高低确定请求消息访问第一内核的先后顺序,也就是说,可以将访问第一内核的多个请求消息添加到消息队列中,并根据优先级执行消息队列中的请求消息,避免了在一个消息请求被执行后,其他消息请求被拒绝,而需要再次发起的过程,而且根据优先级执行消息队列中的请求消息,可以对优先执行优先级高的请求消息,节省了请求消息的等待时间。可见,通过本技术,解决了现有技术中如果有多个内核同时访问该共享内存,通过仲裁先确定其中一个内核的请求会被执行,其他内核的请求则会被拒绝,导致其他内核需要再次发起请求,并再次通过仲裁决定请求的问题。
60.可选地,本技术实施例中的添加模块32进一步可以包括:第一添加单元,用于在待访问的第一请求消息来自于第一内核的情况下,将第一请求消息添加到消息队列中的第一位置,其中,第一位置为消息队列中所有来自于非第一内核的请求消息之前的位置;每一个位置具有对应的优先级。
61.可选地,本技术实施例中的添加模块32进一步可以包括:判断单元,用于在待访问的第一请求消息来自于第二内核的情况下,判断消息队列中是否存在与第一请求消息所请求的数据相同的第二请求消息;第二添加单元,用于在在判断结果为是的情况下,将第一请求消息添加到消息队列中的第二位置,其中,第二位置为与第二请求消息所在位置所并列的位置;第一内核不同于第二内核;第三添加单元,用于在判断结果为否的情况下,将第一请求消息添加到消息队列中的第三位置,其中,第三位置为消息队列中队尾的位置。
62.其中,第一添加单元可以包括:确定消息队列中是否存在与第一请求消息所请求的数据相同的第三请求消息;在消息队列中存在与第一请求消息所请求的数据相同的第三请求消息的情况下,将第一请求消息添加到消息队列中的第一位置,其中,第一位置为与第三请求消息所在的位置相同;在消息队列中不存在与第一请求消息所请求的数据相同的第三请求消息的情况下,将第一请求消息添加到消息队列中的第一位置,其中,第一位置为消
息队列中所有来自于非第一内核的请求消息之前,且所有来自于第一内核的请求消息之后的位置。
63.可选地,本技术实施例中的装置还可以包括:第一确定模块,用于确定访问同一数据的请求消息的数量;第二确定模块,用于根据数量确定访问同一数据的请求消息的优先级,其中,访问同一数据的请求消息的数量越多,对应于同一数据的请求消息的优先级越高;放置模块,用于将确定优先级后的访问同一数据的请求消息放置在所有未访问同一数据的请求消息之前的位置。
64.可选地,消息队列中所有来自于第一内核且所请求的数据不相同的请求消息,按照访问时间的先后确定对应的优先级。
65.可选地,本技术实施例中的装置还可以包括:多播模块,用于通过片上网络将访问的同一数据多播给与访问同一数据的多个请求消息对应的多个内核。
66.可选地,本技术实施例中的添加模块32进一步可以包括:第四添加单元,用于将待访问的请求消息添加到消息队列中所有请求消息之后,其中,消息队列中的请求消息对应的优先级根据访问时间的先后确定;请求消息的访问时间越靠前对应的优先级越高。
67.可选地,本技术实施例中的装置还可以包括:第一发送模块,用于在待访问的请求消息来自于第一内核的情况下,根据待访问的请求消息所对应的私有地址发送待访问的请求消息到消息队列中;第二发送模块,用于在待访问的请求消息来自于第二内核的情况下,根据第二内核发送待访问的请求消息所对应的全局地址和地址映射表确定第一内核的私有地址,并根据全局地址和私有地址发送待访问的请求消息到消息队列中,其中,地址映射表用于记录全局地址与私有地址之间的映射关系。
68.可选地,消息队列中的请求消息用于请求存储在第一内核中的权重。
69.可选的,本技术实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的程序或指令,该程序或指令被处理器执行时实现上述众核系统中请求消息处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
70.需要注意的是,本技术实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
71.本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述众核系统中请求消息处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
72.其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
73.显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
74.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1