存储器接口、功能核、众核系统和存储数据访问方法与流程

文档序号:31676294发布日期:2022-09-28 02:11阅读:53来源:国知局
存储器接口、功能核、众核系统和存储数据访问方法与流程

1.本技术属于计算机技术领域,具体涉及一种存储器接口、功能核、众核系统和存储数据访问方法。


背景技术:

2.众核系统具有较强的数据处理能力。其中,众核系统中具有多个功能核。在相关技术中,在多个功能核需要访问同一数据时,存在访问延迟的问题,从而使众核系统的运行效率低。


技术实现要素:

3.本技术实施例的目的是提供一种存储器接口、功能核、众核系统和存储数据访问方法,能够解决相关技术中的存储数据访问方法存在的数据延迟而造成众核系统的运行效率低的问题。
4.为了解决上述技术问题,本技术是这样实现的:
5.第一方面,本技术实施例提供了一种存储器接口,所述存储器接口位于众核系统中的第一功能核内,且所述存储器接口,包括:
6.目标位置解析器,用于在第一读取请求携带的目标全局地址指示的目标存储空间位于第一功能核内的情况下,确定所述目标全局地址对应的第一私有地址,以基于所述第一私有地址访问目标存储空间内与所述第一私有地址对应的第一目标数据;
7.其中,所述目标位置解析器预先存储有所述目标全局地址与所述第一私有地址的映射关系,所述目标存储空间位于所述第一功能核内。
8.第二方面,本技术实施例提供了一种功能核,所述功能核包括存储器和与所述存储器连接的存储器接口,所述存储器接口为如第一方面所述的存储器接口。
9.第三方面,本技术实施例提供了一种众核系统,所述众核系统包括多个如第二方面所述的功能核,且所述众核系统中任意两个功能核通信连接。
10.第四方面,本技术实施例提供了一种存储数据访问方法,应用于如第一方面所述的存储器接口,该方法包括:
11.接收第一读取请求,其中,所述第一读取请求携带有目标全局地址;
12.响应于所述第一读取请求,在所述目标全局地址指示的目标存储空间位于第一功能核内时,根据全局地址与私有地址的映射关系,确定所述目标全局地址对应的第一私有地址,以及,传输所述目标存储空间内与所述第一私有地址对应的第一目标数据。
13.第五方面,本技术实施例提供了一种存储数据访问装置,应用于如第一方面所述的存储器接口,所述装置包括:
14.第一接收模块,用于接收第一读取请求,其中,所述第一读取请求携带有目标全局地址;
15.第一传输模块,用于响应于所述第一读取请求,在所述目标全局地址指示的目标
存储空间位于第一功能核内时,根据全局地址与私有地址的映射关系,确定所述目标全局地址对应的第一私有地址,以及,传输所述目标存储空间内与所述第一私有地址对应的第一目标数据。
16.第六方面,本技术实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第四方面所述的方法的步骤。
17.第七方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第四方面所述的方法的步骤。
18.第八方面,本技术实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第四方面所述的方法。
19.在本技术实施例中,第一功能核内的存储器接口用于接收第一读取请求,其中,所述第一读取请求携带有目标全局地址;并响应于所述第一读取请求,在所述目标全局地址指示的目标存储空间位于第一功能核内时,根据全局地址与私有地址的映射关系,确定所述目标全局地址对应的第一私有地址,以及,传输所述目标存储空间内与所述第一私有地址对应的第一目标数据。这样,众核系统中的功能核能够根据全局地址访问另一功能核的私有存储空间,进而可以将不同的共享数据分散存储在不同功能核的私有存储空间内,从而避免了在全局共享存储空间内存储大量的共享数据,而造成的多个功能核分别访问全局共享存储空间时的等待时间长且等待时间不确定的问题,提升了所述众核系统的运行效率。
附图说明
20.图1是本技术实施例提供的一种存储数据访问方法的流程图;
21.图2是本技术实施例提供的一种存储数据访问方法中第一功能核和第二功能核之间的数据交互示意图;
22.图3是本技术实施例提供的一种存储数据访问方法中第一功能核内的数据交互示意图;
23.图4是本技术实施例提供的存储器接口的结构示意图;
24.图5是本技术实施例提供的一种存储数据访问装置的结构图;
25.图6是本技术实施例提供的一种电子设备的结构图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
28.众核系统中包括多个功能核,若众核系统中的多个功能核需要访问同一存储数据,相关技术中,可以采用以下两种方式实现多个功能核获取相同的共享数据:
29.方式一,设置全局共享存储空间,该全局共享存储空间设置于功能核外,且可以设置在功能核所在的芯片外,在应用中,当功能核需要从该全局共享存储空间内获取目标数据时,通过共享的内存总线向全局共享存储空间发送读取请求,并通过共享的内存总线传输目标数据,该过程中,若有其他功能核也需要访问该全局共享存储空间,则需要等待本功能核成功获取上述目标数据之后,才能够对其他功能核的读取请求进行响应。
30.由上可知,在多个计算单元同时访问全局共享存储空间的应用场景下,需要通过竞争仲裁确定一个核心获得使用权,以使获得使用权的一个核心通过共享的内存总线从全局共享存储空间进获取存储数据,其他没有获得使用权的核心将需要继续等待,这样,造成了核心对全局共享存储空间进行访问时,需要进行较长时间的。另外,全局共享存储空间中的数据需要通过共享的内存总线传输至功能核,其数据延迟时间不固定,甚至不可预测,从而容易造成该共享的内存总线拥塞,显著的降低了众核系统运行效率。
31.方式二,将共享数据分别复制到每一个需要使用该共享数据的功能核的私有存储空间内,由于私有存储空间仅供本功能核使用,外部功能核不能够访问其他功能核的私有空间,在实施中,每一个功能核通过其私有存储空间获取共享数据。
32.本实施方式下,当运行具有共享数据的算法(如大型神经网络)时,需要对共享的部分进行复制到每个功能核的私有内存中,十分浪费资源。另外,私有内存无法安排大型数组或共享数据,限制了众核系统的应用范围。
33.为了解决上述技术问题,本技术实施例通过将全局地址与对应的私有地址进行转换,以使外部功能核能够通过全局地址访问其他功能核的私有存储空间。一方面,无需将共享数据复制到每个核的私有内存中,以减少资源浪费并提升众核系统的应用范围;另一方面,可以不在功能核外增设全局共享存储空间,以提升众核系统运行效率。
34.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的存储数据访问方法、存储数据访问装置、电子设备以及可读存储介质进行详细地说明。
35.请参阅图1,是本技术实施例提供的一种存储数据访问方法的流程图,该存储数据访问方法能够应用于存储器接口,且所述存储器接口位于众核系统中的第一功能核,如图1所示,存储数据访问方法可以包括以下步骤:
36.步骤101、接收第一读取请求,其中,所述第一读取请求携带有目标全局地址。
37.步骤102、响应于所述第一读取请求,在所述目标全局地址指示的目标存储空间位于第一功能核内时,根据全局地址与私有地址的映射关系,确定所述目标全局地址对应的第一私有地址,以及,传输所述目标存储空间内与所述第一私有地址对应的第一目标数据。
38.在实施中,上述功能核又可以称之为“核心”或者“核”,该功能核为,所述众核系统中可独立调度,且拥有完整计算能力的最小单元。
39.在一些可选的实施方式中,每一个功能核中的私有存储空间分别具有相同的私有地址,例如:第一功能核的私有存储空间为n个,且第一功能核中的n个存储空间标识分别为
0~n-1,第二功能核的私有存储空间也为n个,且第二功能核中n个存储空间标识也分别为0~n-1。
40.上述全局地址在所述众核系统中唯一,其能够指向所述众核系统中位于目标功能核内的目标私有存储空间,例如:全局地址为第一功能核的核标识与所述第一功能核中的目标存储空间的存储空间标识的结合。在实施中,上述全局地址可以是第一目标数据的起始存储地址,且该第一读取请求中还可以包括第一目标数据的第一长度。此时,上述传输所述目标存储空间内与所述第一私有地址对应的第一目标数据,可以理解为:以所述全局地址对应的第一私有地址为起始地址,将第一功能核内包括该起始地址以及其后的第一长度的数据传输至第一读取请求的请求方。
41.作为一种可选的实施方式,所述第一读取请求包括以下至少一种:
42.所述第一功能核的第一数据通路发送的读取请求;
43.第二功能核发送的读取请求;
44.其中,所述第二功能核为所述众核系统中不同于所述第一功能核的功能核。
45.上述第二功能核可以理解为所述众核系统中除了所述第一功能核以外的任一功能核,即所述第一功能核的外部功能核,该第二功能核的数量可以是一个也可以是多个。
46.上述所述第一功能核的第一数据通路发送的读取请求,可以理解为:第一功能核采用全局地址对存储于第一功能核内的数据进行访问。
47.需要说明的是,在实际应用中,第一功能核也可以直接采用私有地址对存储于第一功能核内的数据进行私有访问,在此不作具体限定。
48.上述第二功能核发送的读取请求,可以理解为:外部功能核采用全局地址对存储于第一功能核内的数据进行全局访问。
49.在实施中,第一功能核内的同一存储空间在同一时间可以仅对全局访问和私有访问中的一项进行响应,例如:可以通过模式切换,以目标切换存储空间处于第一工作模式(其又可以称之为“全局模式”)和/或处于第二工作模式(其又可以称之为“私有模式”)。其中,在所述第一工作模式(其又可以称之为“全局模式”)下,通过第一功能核内的存储器接口,将接收到的访问请求中的全局地址转化为私有地址,以基于所述私有地址访问所述目标存储空间中的数据(即此工作模式下仅响应对目标存储空间的全局访问,对于私有访问则可以拒绝响应);在所述第二工作模式(其又可以称之为“私有模式”)下,通过第一功能核内的存储器接口,基于收到的访问请求中的私有地址访问所述目标存储空间中的数据(即此工作模式下仅响应对目标存储空间的私有访问,对于全局访问则可以拒绝响应)。
50.另外,第一功能核的私有存储空间(即内存片)可以包括一个或者多个,其中,在所述第一功能核的私有存储空间(即内存片)有多个的情况下,可以是一部分私有存储空间工作于私有模式下,另一部分工作在全局模式下,其中,在所述私有模式下的私有存储空间仅供第一功能核访问,在所述全局模式下的私有存储空间仅供第二功能核访问。
51.本实施方式下,众核系统中的第一功能核和第二功能核均可以采用全局地址访问第一功能核内的数据。
52.作为一种可选的实施方式,所述第一读取请求和所述第一目标数据通过片上网络或片上总线传输。
53.在实施中,所述第一功能核与所述第二功能核通过所述片上网络或片上总线连
接。
54.例如:如图2所示,请求核21(即第二功能核)与目的核22(即第一功能核)之间通过片上/片间网络23建立通信连接,其中,请求核21具体包括:第一私有内存211、第一双模内存接口212、第一路由213以及数据通路214,目的核22具体包括:第二私有内存221、第二双模内存接口222以及第二路由223。在请求核21需要读取目的核22的私有内存224中存储的目标数据时,请求核21中的数据通路214通过第二双模内存接口222和第一路由213向片上/片间网络23发送读取请求,该读取请求中携带有请求核21的核标识和请求读取数据的全局地址,目的核22通过第二路由223从片上/片间网络23接收该读取请求,第二双模内存接口222在识别到读取请求中的核标识与目的核22的核标识不一致时,将读取请求中的全局地址转换为私有地址,并将第二私有内存221中存储于所述私有地址的目的数据通过第二路由223传输至片上/片间网络23,以使请求核21通过第一路由213从片上/片间网络23获取该目标数据,从而实现了请求核21从目的核22的私有内存获取目标数据。
55.需要说明的是,如图2所示实施例中的箭头方向表示上述请求核21从目的核22的私有内存224中获取目标数据的过程中,信令或者目标数据的传输方向。
56.本实施方式中,通过片上网络或者片上总线传输第一功能核之间的请求信令和数据包,能够避免在多个第二功能核同时访问第一功能核的私有内存时,能够减少等待时间。
57.当然,在具体实施中,第一功能核与第二功能核之间还可以通过其他网络连接,例如:近距离通信网络等,在此不作具体限定。
58.另外,在一种可选的实施方式中,在所述第二功能核的数量为多个,即多个外部功能核分别访问所述第一功能核的私有存储空间的情况下,所述第一功能核还可以对多个第二功能核的读取请求逐个响应。
59.作为一种可选的实施方式,所述方法还包括:
60.存储所述全局地址与所述私有地址的映射关系。
61.在实施中,上述全局地址与私有地址的映射关系,可以是:私有地址与全局地址的映射表,在运行中,在所述映射表中查询全局地址对应的私有地址。当然,其还可以是预先存储私有地址与全局地址之间的转化关系,以在运行过程中,动态的将全局地址转化为对应的私有地址。
62.当然,上述全局地址与所述私有地址的映射关系,还可以包括:根据全局地址与所述私有地址之间的转化关系确定的映射关系。
63.作为一种可选的实施方式,所述存储所述全局地址与所述私有地址的映射关系,包括:
64.在所述众核系统包括s个芯片的情况下,基于每个全局地址指示对应的私有地址所在的目标功能核,以及所述目标功能核所在的目标芯片,以根据每个私有地址对应的全局地址,存储所述映射关系;
65.或者,
66.在所述众核系统包括1个芯片,且所述芯片包括呈j行p列排列的功能核阵列的情况下,基于每个全局地址指对应的私有地址所在的目标功能核,以及所述目标功能核在所述功能核整列中的位置,以根据每个私有地址对应的全局地址,存储所述映射关系。
67.在一种可选的实施方式中,所述基于每个全局地址指示对应的私有地址所在的目
标功能核,以及所述目标功能核所在的目标芯片,以根据每个私有地址对应的全局地址,存储所述映射关系,可以理解为:所述映射关系包括全局地址与私有地址之间的转化关系,且该转化关系是基于私有地址所在的目标功能核,以及所述目标功能核所在的目标芯片来实现与全局地址对应的。换而言之,其还可以理解为:全局地址中携带有对应的私有地址、该私有地址所在的功能核的标识,以及该功能核所在的芯片的标识。
68.例如:在所述众核系统包括s个芯片的情况下,全局地址与私有地址之间的映射关系,采用以下公式确定:
69.p=(qv+c)
×
n+k
70.其中,所述p表示全局地址,所述k表示私有地址,所述c表示所述k对应的功能核的标识,所述q表示所述c对应的功能核所在芯片的标识,所述n表示所述k对应的功能核中的私有地址的总数,所述v表示每一个芯片中的功能核的总数。
71.当然,在具体实施中,除了通过上述公式表达全局地址与私有地址之间的映射关系之外,还可以通过将私有地址、芯片标识以及功能核标识进行组合排列的方式,以共同组成全局地址的方式来表达全局地址与私有地址之间的映射关系。
72.在另一种可选的实施方式中,所述基于每个全局地址指对应的私有地址所在的目标功能核,以及所述目标功能核在所述功能核整列中的位置,以根据每个私有地址对应的全局地址,存储所述映射关系,可以理解为:全局地址中携带有对应的私有地址该私有地址所在的功能核的标识,以及该功能核在所述功能核阵列中的排列位置。
73.例如:在所述众核系统包括1个芯片,且所述芯片包括呈j行p列排列的功能核阵列的情况下,全局地址与私有地址之间的映射关系,采用以下公式确定:
74.p=(px+y)
×
n+k
75.其中,所述p表示全局地址,所述k表示私有地址,所述x表示所述k对应的功能核在所述功能核阵列中的行标识,所述y表示所述k对应的功能核在所述功能核阵列中的列标识,所述n表示所述k对应的功能核中的私有地址的总数。
76.当然,在具体实施中,除了通过上述公式表达全局地址与私有地址之间的映射关系之外,还可以通过将私有地址、芯片位置进行组合排列的方式,以共同组成全局地址的方式表达全局地址与私有地址之间的映射关系。
77.本实施方式中,通过芯片标识、功能核标识以及功能核位置等实现将预设地址与全局地址关联,从而在应用中能够根据芯片标识、功能核标识以及功能核位置等将全局地址与私有地址进行相互转化,从而简化了确定所述目标全局地址对应的第一私有地址的过程。
78.作为一种可选的实施方式,所述方法还包括:
79.接收第一数据通路发送的第二读取请求,其中,所述第一数据通路位于所述第一功能核内,所述第二读取请求携带有第二私有地址;
80.响应于所述第二读取请求,将所述目标存储空间内与所述第二私有地址对应的第二目标数据传输至所述第一数据通路。
81.其中,上述第一数据通路表示第一功能核内的数据通路,例如:第一功能核内的处理器与存储器之间的数据通路。
82.其中,上述第二读取请求与第一读取请求之间的不同之处在于:所述第一读取请
求中携带有全局地址,而所述第二读取请求中携带有私有地址,即所述第一读取请求为全局访问请求,而所述第二读取请求为私有访问请求。
83.本实施方式应用于:第一功能核从本地私有内存中读取数据的应用场景,此时,第一功能核直接向本地私有内存发送私有地址即可,而无需发送该私有地址的全局地址,且通过在第二读取请求中携带第一功能核的标识,可以使目标存储空间得知该第二读取请求为本地访问请求,从而对该私有地址进行识别,而不是将该私有地址误认为全局地址。
84.例如:如图3所示,第一功能核31中的计算模块可以通过数据通路311通过双模内存接口312向第一功能核的私有内存313发送读取请求,该读取请求中携带有目标数据的私有地址,以使该私有内存313将存储于该私有地址的目标数据通过双模内存接口312核数据通路311反馈至计算模块。
85.需要说明的是,如图3所示实施例中的箭头方向表示上述第一功能核31从本功能核的私有内存313中获取目标数据的过程中,信令或者目标数据的传输方向。
86.需要说明的是,本实施方式中,第一功能核中的第一数据通路向第一功能核的目标存储空间发送携带有私有地址的第二读取请求,以从该目标存储空间内读取数据的实现过程与现有技术中功能核从本地私有内存读取数据的过程相同,在此不作具体阐述。
87.需要说明的是,在实际应用中,第一功能核可以包括多个内存片,从而可能存在第一功能核中的部分内存片被本功能核访问,另一些内存片被外部功能核访问的情况。但是,同一内存片在同一时间仅能够对本地访问请求和全局访问请求(即第一读取请求)中的一种进行响应。
88.在一种可选的实施方式中,可以根据控制逻辑的控制信号,控制功能核的内存工作于全局模式还是工作于私有模式。
89.情况一
90.在功能核的内存工作于全局模式的情况下,该内存仅能够被外部的功能核进行全局访问,本功能核的访问将会被拒绝。在该全局模式下,接收到的读取请求中携带有全局地址,由全局地址映射表记录并负责转译全局地址到私有地址,并最终采用私有地址访问内存。
91.需要说明的是,在上述全局模式下,所有功能核的内存组成一个大容量的逻辑内存,在进行全局访问时,无需指明访问的内存位于哪个芯片的哪个核,只需用全局地址即可访问。
92.情况二
93.在功能核的内存工作于私有模式的情况下,该内存仅能够被本功能核进行本地访问,外部功能核的全局访问将会被拒绝。在该私有模式下,内存仅能够被本功能核访问,因此,访问的延时固定且可预测。
94.在另一种可选的实施方式中,可以根据接收到的读取请求携带有私有地址还是携带有全局地址,来判断该访问请求是本功能核内部的本地访问请求还是外部功能核的全局访问请求,从而据此确定,对该读取请求进行何种响应。
95.进一步地,所述目标存储空间的工作模式包括第一工作模式和第二工作模式;
96.其中,在所述第一工作模式下,所述存储器接口将接收到的访问请求中的全局地址转化为私有地址,以基于所述私有地址访问所述目标存储空间中的数据;在所述第二工
作模式下,所述存储器接口基于收到的访问请求中的私有地址访问所述目标存储空间中的数据;
97.所述方法还包括以下至少一项:
98.根据控制指令,确定所述目标存储空间的工作模式;
99.响应于所述第一读取请求,确定所述工作模式为所述第一工作模式;
100.响应于所述第二读取请求,确定所述工作模式为所述第二工作模式。
101.其中,上述第一工作模式下,所述存储器接口将接收到的访问请求中的全局地址转化为私有地址,以基于所述私有地址访问所述目标存储空间中的数据,可以理解为:第一工作模式可以是全局模式,此时,存储器接口仅对全局访问进行响应。
102.另外,上述第二工作模式下,所述存储器接口基于收到的访问请求中的私有地址访问所述目标存储空间中的数据,可以理解为:第二工作模式可以是私有模式,此时,存储器接口仅对私有访问进行响应。
103.在一种可选的实施方式中,上述根据控制指令,确定所述目标存储空间的工作模式,可以理解为:目标存储空间的工作模式是根据预设控制指令的指示而确定的,并不受接收到的访问请求的影响。
104.本实施方式下,可以通过预设控制指令调整目标存储空间的工作模式,以控制目标存储空间内的数据仅能够被本功能核访问还是可以被其他功能核访问。
105.在另一种可选的实施方式中,上述响应于所述第一读取请求,确定所述工作模式为所述第一工作模式;以及上响应于所述第二读取请求,确定所述工作模式为所述第二工作模式,可以理解为:存储器接口根据接收到的访问请求是私有请求还是全局请求,来判断是工作在第一工作模式下还是工作在第二工作模式下。
106.具体的,上述存储器接口拒绝对所述目标存储空间的第二读取请求,直至所述第一读取请求完成响应,可以理解为:在第一工作模式下,仅对目标存储空间的全局访问进行响应,且当全部的全局访问响应完成后,可以切换至第二工作模式,以在所述第二工作模式下,对目标存储空间的私有访问进行响应;或者,当全部的全局访问响应完成后,可以不经过模式切换,而直接对目标存储空间的私有访问进行响应。
107.相应地,上述存储器接口拒绝对所述目标存储空间的第一读取请求,直至所述第二读取请求完成响应,也可以理解为:在第二工作模式下,仅对目标存储空间的私有访问进行响应,且当全部的私有访问响应完成后,可以切换至第一工作模式,以在所述第一工作模式下,对目标存储空间的全局访问进行响应;或者,当全部的私有访问响应完成后,可以不经过模式切换,而直接对目标存储空间的全局访问进行响应。
108.进一步地,在具体实施中,当存储器接口,因接收到第一读取请求,而切换至第一工作模式后,还接收到第二读取请求,则存储器接口可以先对各个第一读取请求进行响应,而在此期间接收到的第二读取请求则可以存储于待响应列表中,以在存储器接口对全部的第一读取请求响应完毕后,可以切换至第二工作模式,以对待响应列表中的第二读取请求进行响应。
109.相应的,当存储器接口,因接收到第二读取请求,而切换至第二工作模式后,还接收到第一读取请求,则存储器接口可以先对各个第二读取请求进行响应,而在此期间接收到的第一读取请求则可以存储于待响应列表中,以在存储器接口对全部的第二读取请求响
应完毕后,可以切换至第一工作模式,以对待响应列表中的第一读取请求进行响应。
110.本实施方式中,目标存储空间的工作模式可以根据接收到的读取请求的类型来确定,从而便于根据不同的读取请求来切换目标存储空间的工作模式,以使该目标存储空间与接收到的读取请求相匹配。
111.需要说明的是,若在同一时间目标存储空间即接收到本地访问请求也接收到全局访问请求时,还可以通过仲裁,以优先选择对本地访问请求核全局访问请求中的一种进行响应。
112.作为一种可选的实施方式,在所述第一读取请求与所述第二读取请求的接收时间差小于预设时间的情况下,通过仲裁或者预设优先权确定对所述第一读取请求和所述第二读取请求中的至少一个进行响应。
113.其中,所述预设时间可以是0.1s(秒)、1秒等任意时间长度,在此不作具体限定。
114.其中,上述通过所述预设时间确定对所述第一读取请求和所述第二读取请求中的至少一个进行响应,可以理解为:在预先将所述第一读取请求的优先级设置为大于所述第二读取请求的优先级的情况下,优先对所述第一读取请求进行响应,对于第二读取请求可以拒绝,或者等待第一读取请求响应完成后再对所述第二读取请求进行响应;在预先将所述第二读取请求的优先级设置为大于所述第一读取请求的优先级的情况下,优先对所述第二读取请求进行响应,对于第一读取请求可以拒绝,或者等待第二读取请求响应完成后再对所述第一取请求进行响应。
115.作为一种可选的实施方式,所述第一读取请求为所述第一功能核的第一数据通路发送的读取请求,所述方法还包括:
116.在确定所述目标全局地址指示的存储空间位于第二功能核内时,将所述第一读取请求发送至所述第二功能核,其中,所述第二功能核为所述众核系统中不同于所述第一功能核的功能核;
117.接收所述第二功能核返回的第三目标数据,并将所述第三目标数据传输至所述第一数据通路。
118.在实施中,本功能核还可以访问存储于其他功能核内的数据,此时,本功能核内的数据通路将发送用于请求访问存储于其他功能核内的数据的读取请求,且本功能核将该读取请求中携带的功能核标识与本功能核的标识进行匹配,当不匹配时,便可以确定该读取请求所请求的数据存储于其他功能核,从而确定该读取请求中携带的地址为全局地址,并将该读取请求发送至该读取请求中携带的功能核标识对应的第二功能核。
119.另外,当第二功能核接收到上述第一读取请求时,将对该第一读取请求中携带的全局地址进行转化,以得到私有地址,并基于该私有地址访问第三目标数据所在的存储空间,并根据访问结果将该存储空间内存储的第三目标数据传输给第一功能核。
120.本实施方式中,第一功能核中存储的数据除了能够被本功能核和其他功能核访问之外,该第一功能核还能够基于全局地址获取第二功能核内存储的第三目标数据。
121.下面以所述目标存储空间包括用于将目标存储空间在私有模式和全局模式之间进行切换的存储器接口(其又可以称之为“双模内存接口”)为例,对上述本地访问请求和上述全局访问请求的响应过程进行举例说明:
122.本实施例中,众核系统包括:第一功能核、第二功能核以及连接所述第一功能核和
所述第二功能核的片上网络50。
123.其中,如图4所示,第一功能核包括:数据通路41、内存42、路由模块43以及双模内存接口44,路由模块43与片上网络50连接;双模内存接口44包括目标位置解析器441、模式切换器442、地址映射表存储模块443、请求信令组包器444、请求信令解包器445、数据组包器446以及数据解包器447。
124.具体的,目标位置解析器441与数据通路41、内存42模式切换器442、地址映射表存储模块443、请求信令组包器444、请求信令解包器445、数据组包器446以及数据解包器447分别连接,且模式切换器442、地址映射表存储模块443、请求信令组包器444、请求信令解包器445、数据组包器446以及数据解包器447分别与路由模块43连接。
125.需要说明的是,第二功能核的结构与第一功能核的结构可以相同,在此不再赘述。另外,如图4所示实施例中的箭头方向表示上述第一功能核的内存42被本地访问或者被全局访问的过程中,信令或者目标数据的传输方向。
126.在一种情况下,若双模内存接口44处于私有模式下,则目标位置解析器441根据数据通路41中的数据产生单元提供的私有地址直接访问内存42,即第二读取请求中携带有目标数据的私有地址,且内存42将反回的目标数据的数据包直接输出至数据通路41。
127.在另一种情况下,若双模内存接口44处于全局模式,则在数据通路41向目标位置解析器441发送读取请求时,目标位置解析器441用于根据根据地址映射表存储模块443中存储的地址映射表判断数据通路41发出的读取请求中的目的地址位于本功能核内还是位于外部的其他功能核内,以判断需要生成读取请求是本地访问请求还是全局访问请求。
128.其中,如果该读取请求中的目的地址位于本功能核内,则判断该读取请求是本地访问请求,从而根据该本地访问请求中的私有地址直接访问内存42。
129.另外,如果该读取请求中的目的地址位于外部的其他功能核内,则判断该读取请求是全局访问请求,此时,目标位置解析器441将该全局访问请求中的请求位置发送给请求信令组包器444,由请求信令组包器444组包形成全局访问请求信令包,并将该全局访问请求信令包发送到路由模块43,且路由模块43将从请求信令组包器444接收到的全局访问请求信令包发往片上网络50,以通过该片上网络50将全局访问请求信令包发送至需要读取的数据的存储地,从而在该存储地所在的目标功能核响应于该全局访问请求信令包返回数据包时,路由模块43从片上网络50接收该返回数据包,并由数据解包器447对该数据包进行解包,以得到目标数据(即本功能核需要读取的数据),然后目标位置解析器441还对目标数据进行解析,并根据解析后的信息将该目标数据发送至内存42或者数据通路41。
130.同时,路由模块43还负责从片上网络50接收外部功能核发送到本功能核的全局访问请求信令包,并由请求信令解包器445对该全局访问请求信令包进行解包,以得到该全局访问请求信令包的全局地址、数据长度等信息。并将这些信息发送给目标位置解析器441。这样,目标位置解析器441便会将全局访问请求的全局地址转译为私有地址,以通过该私有地址访问内存42,并将内存42的访问结果(即目标数据)返回给数据组包器446,以通过数据组包器446将目标数据组建成数据包后,通过路由模块43发送到片上网络50,此时,目标数据的请求方将从片上网络50接收该目标数据的数据包,具体的,在目标数据的请求方中,将路由模块接收到的数据包在数据解包器中进行解包,并将相关数据包发送给目标位置解析器,目标位置解析器通过解析数据包信息,以根据解析后的信息将数据包中的数据发送给
内存或数据通路,该目标数据的请求方对接收到的目标数据的处理过程与本功能核在接收到数据包之后的处理过程相同,在此不再赘述。
131.在实施中,上述请求信令包的格式可以如下表1所示:
132.表1
[0133][0134]
其中,信令标识符用于区分不同的信令;目标功能核地址用于指示存储有待访问数据的内存所在的功能核的地址;数据起始全局地址表示待访问数据的起始全局地址,该起始全局地址加上上述数据长度可以表示待访问数据的的终止全局地址;在待访问数据所在的存储空间有多个功能核同时访问的情况下,目标位置解析器可以基于上述优先级进行仲裁,以确定对优先级最高的一条访问请求信令进行响应;可以通过上述附加信息域添加附加信息。
[0135]
需要说明的是,上述请求信令包中各个子信号的排列位置可以交换,且还可以包括除了上述信令标识符、目标功能核地址、数据起始全局地址、优先级以及附加信息域以外的其他子信息,在此并不穷举。
[0136]
另外,在实施中,上述数据包的格式可以如下表2所示:
[0137]
表2
[0138][0139]
其中,上述数据包标识符用于区分不同的数据包;上述数据体表示数据包中的具体数据(即待访问数据);另外,上述目标功能核地址、数据起始全局地址、数据长度以及附加信息域的具体含义分别可以参照上述表1所示请求信令包格式中的目标功能核地址、数据起始全局地址、数据长度以及附加信息域的具体含义,在此不再赘述。
[0140]
在相关技术中,当有一套权重,要给很多个图片用时,将该多个图片分别输入至多个功能核,以分别进行处理,在应用中,由于这一套权重需要给很多功能核用,而各功能核的私有内存仅能够被本功能核访问,所以要整套权重都存在所有需要用到该权重的各个功能核里,以便于一层一层的处理图片。
[0141]
而本技术实施例中,可以仅1个或者少数的几个功能核内存储这一套权重(例如:仅将该套权重中的各个权重值分别存储于需要用到该权重值的功能核里,而不需要使功能核存储整套权重),当一个功能核需要使用未存储的权重值时,可以通过全局访问的方式,从存储有该权重值的其他功能核内获取。
[0142]
由上可知,通过本技术实施例提供的存储数据访问方法,当运行具有共享数据的算法(如大型神经网络)时,无需要对共享的数据进行复制到每个功能核的私有内存中,可以减少资源浪费,以及使具有大型数组以及共享数据的众核系统的应用范围更广,可同时支持高速模式以及稀疏模式。另外,不同于现有技术中的共享数据需要通过共享的内存中线进行传输,本技术实施例中,全局访问的信令和数据通过片上网络、片上总线或者片间网络传输,能够减少信令和数据传输的等待时间,从而能够提升众核系统的运行效率。
[0143]
在本技术实施例中,第一功能核接收第二功能核发送的第一读取请求,其中,所述第一读取请求携带有所述第二功能核的标识和目标全局地址;响应于所述第一读取请求,确定所述目标全局地址对应的第一私有地址,以及将所述目标存储空间内与所述第一私有地址对应的第一目标数据传输至所述第二功能核;其中,所述第一功能核预先存储有所述目标全局地址与所述第一私有地址的映射关系,所述第一私有地址对应的目标存储空间位于所述第一功能核内。这样,可以使第一功能核内的私有存储空间,能够作为共享存储空间,以被第二功能核访问,进而可以将不同的共享数据分散存储在不同功能核的私有存储空间内,从而避免了在全局共享存储空间内存储大量的共享数据,而造成的多个功能核分别访问全局共享存储空间时的等待时间长且等待时间不确定的问题,提升了所述众核系统的运行效率。
[0144]
需要说明的是,本技术实施例提供的存储数据访问方法可以应用于存储器接口,该存储器接口可以是众核系统中位于第一功能核内的存储器接口,(其又可以称之为“双模内存接口”)。如图4所示,该存储器接口44可以包括:
[0145]
目标位置解析器441,用于在第一读取请求携带的目标全局地址指示的目标存储空间位于第一功能核内的情况下,确定所述目标全局地址对应的第一私有地址,以基于所述第一私有地址访问目标存储空间内与所述第一私有地址对应的第一目标数据;
[0146]
其中,所述目标位置解析器预先存储有所述目标全局地址与所述第一私有地址的映射关系,所述目标存储空间位于所述第一功能核内。
[0147]
在具体实施中,存储器接口44,还可以包括:
[0148]
数据解包器446,若上述第一读取请求由第二功能核发出,则数据解包器446用于解析从所述第二功能核接收到的所述第一读取请求,以获取所述第一读取请求携带的所述目标全局地址;
[0149]
目标位置解析器441与数据解包器446连接,且目标位置解析器441从数据解包器446获取所述目标全局地址。
[0150]
本实施方式中,上述第一读取请求与如图1所示方法实施例中的第一读取请求具有相同含义,且上述全局地址和私有地址之间的映射关系与如图1所示方法实施例中的全局地址和私有地址之间的映射关系相同,在此不再赘述。
[0151]
可选的,所述目标位置解析器441,还用于解析接收到的第二读取请求,以得到所述第二读取请求携带的第二私有地址,并基于所述第二私有地址访问所述目标存储空间内与所述第二私有地址对应的第二目标数据,其中,所述第二读取请求由所述第一功能核发送。
[0152]
可选的,如图4所示所述存储器接口,还包括:
[0153]
模式切换器442,所述模式切换器442与所述目标位置解析器441连接;
[0154]
所述模式切换器442用于控制所述目标存储空间处于第一工作模式和/或第二工作模式;
[0155]
其中,在所述第一工作模式下,所述目标位置解析器441将接收到的访问请求中的全局地址转化为私有地址,以基于所述私有地址访问所述目标存储空间中的数据;
[0156]
在所述第二工作模式下,所述目标位置解析器441基于收到的访问请求中的私有地址访问所述目标存储空间中的数据。
[0157]
可选的,在接收到对所述目标存储空间的读取请求中携带有全局地址的情况下,所述模式切换器442控制所述目标存储空间处于所述第一工作模式;
[0158]
在接收到对所述目标存储空间的读取请求中携带有私有地址的情况下,所述模式切换器442控制所述目标存储空间处于所述第二工作模式。
[0159]
可选的,目标位置解析器441,还用于解析所述第一功能核中的数据通路发送的第三读取请求,以得到所述第三读取请求携带的请求地址;
[0160]
所述存储器接口44,还包括:
[0161]
信令组包器444,在所述请求地址指示的存储空间位于第二功能核内的情况下,所述信令组包器444基于所述请求地址生成第四读取请求,并通过所述第一功能核将所述第四读取请求发送至所述第二功能核,其中,所述第四读取请求中携带的目标全局地址为与所述请求地址对应的全局地址,所述第二功能核为所述众核系统中不同于所述第一功能核的功能核。
[0162]
其中,上述信令组包器444又可以称之为“请求信令组包器”。
[0163]
上述第三读取请求携带的请求地址可以是第一功能核中的数据通路内的数据地址产生单元根据需要访问的数据所存储的位置而生成的地址。
[0164]
另外,上述第二功能核在从所述第一功能核接收到所述第四读取请求时,将对所述第四读取请求执行与所述第一功能核对所述第一读取请求执行相同的处理,在此不再赘述。
[0165]
可选的,如图4所示,所述存储器接口44,还包括:
[0166]
存储由地址映射表的存储单元443,该存储单元443用于存储全局地址与私有地址之间的映射关系。
[0167]
在实施中,在本功能核发出的全局访问请求中携带的目标数据的存储地址(为私有地址),位于其他功能核内的情况下,可以基于该存储单元443中存储的全局地址与私有地址之间的映射关系,确定上述目标数据的存储地址对应的全局地址。
[0168]
另外,在本功能核接收到携带有全局地址的访问请求时,能够基于该存储单元443中存储的全局地址与私有地址之间的映射关系,确定该全局地址对应的私有地址,从而基于该私有地址对本功能核内的目标存储空间进行访问。
[0169]
相应的,如图4所示,所述存储器接口44,还包括:
[0170]
信令解包器445,用于对接收到的访问请求进行解析处理,以得到该访问请求中携带的访问信息,例如:需要访问的目标数据所存储的全局地址或私有地址等。
[0171]
其中,如图4所示,上述信令解包器445又可以称之为“请求信令解包器”。
[0172]
可选的,如图4所示,所述存储器接口44,还包括:
[0173]
数据组包器447,用于将访问请求所指示访问的数据进行打包处理,以便于传输至该访问请求的请求方。
[0174]
相应的,如图4所示,所述存储器接口44,还包括:
[0175]
数据解包器446,用于对接收到的数据进行解析处理,其功能与上述数据组包器447的功能对应,以使进行解析处理后的数据便于用户读取。
[0176]
本技术实施例提供的存储器接口,能够执行如图1所示方法实施例中的各个过程,且能够取得相同的有益效果,为避免重复,在此不再赘述。
[0177]
本技术实施例还提供一种功能核,所述功能核包括存储器和与所述存储器连接的存储器接口,所述存储器接口为上一存储器接口实施例中提供的存储器接口。
[0178]
可选的,所述功能核中包括的目标存储空间的数量为多个,所述存储器接口与所述多个目标存储空间分别连接;
[0179]
所述存储器接口用于分别控制每个目标存储空间的工作模式,且所述功能核中不同目标存储空间的工作模式不完全相同。
[0180]
本技术实施例提供的功能核内的目标存储空间能够处于不同的工作模式下,以被本功能核进行私有访问,或者被外部功能核进行全局访问,其同样能够执行如图1所示方法实施例中的各个过程,且能够取得相同的有益效果,为避免重复,在此不再赘述。
[0181]
本技术实施例还提供一种众核系统,所述众核系统包括多个如上一实施例提供的功能核,且所述众核系统中任意两个功能核通信连接。
[0182]
可选的,所述众核系统中的任意两个功能核通过片上网络或片上总线连接。
[0183]
本技术实施例提供的众核系统无需在每一个功能核内存储共享数据,也无需设置独立的共享存储空间,其同样能够执行如图1所示方法实施例中的各个过程,且能够取得相同的有益效果,为避免重复,在此不再赘述。
[0184]
需要说明的是,本技术实施例提供的存储数据访问方法,执行主体可以为存储数据访问装置,或者该存储数据访问装置中的用于执行存储数据访问方法的控制模块。本技术实施例中以存储数据访问装置执行加载存储数据访问方法为例,说明本技术实施例提供的存储数据访问装置。
[0185]
请参阅图5,是本技术实施例提供的一种存储数据访问装置的结构图,该存储数据访问装置500应用于本技术实施例提供的任一种存储器接口,如图5所示,该存储数据访问装置500包括:
[0186]
第一接收模块501,用于接收第一读取请求,其中,所述第一读取请求携带有目标全局地址;
[0187]
第一传输模块502,用于响应于所述第一读取请求,在所述目标全局地址指示的目标存储空间位于第一功能核内时,根据全局地址与私有地址的映射关系,确定所述目标全局地址对应的第一私有地址,以及,传输所述目标存储空间内与所述第一私有地址对应的第一目标数据。
[0188]
可选的,所述第一读取请求包括以下至少一种:
[0189]
所述第一功能核的第一数据通路发送的读取请求;
[0190]
第二功能核发送的读取请求;
[0191]
其中,所述第二功能核为所述众核系统中不同于所述第一功能核的功能核。
[0192]
可选的,存储数据访问装置500还包括:
[0193]
第二接收模块,用于接收第一数据通路发送的第二读取请求,其中,所述第一数据通路位于所述第一功能核内,所述第二读取请求携带有第二私有地址;
[0194]
第二传输模块,用于响应于所述第二读取请求,将所述目标存储空间内与所述第二私有地址对应的第二目标数据传输至所述第一数据通路。
[0195]
可选的,所述第一读取请求为所述第一功能核的第一数据通路发送的读取请求,存储数据访问装置500还包括:
[0196]
发送模块,用于在确定所述目标全局地址指示的存储空间位于第二功能核内时,将所述第一读取请求发送至所述第二功能核,其中,所述第二功能核为所述众核系统中不同于所述第一功能核的功能核;
[0197]
接收模块,用于接收所述第二功能核返回的第三目标数据,并将所述第三目标数据传输至所述第一数据通路。
[0198]
可选的,存储数据访问装置500还包括:
[0199]
存储模块,用于存储所述全局地址与所述私有地址的映射关系。
[0200]
可选的,所述存储模块,具体用于:
[0201]
在所述众核系统包括s个芯片的情况下,基于每个全局地址指示对应的私有地址所在的目标功能核,以及所述目标功能核所在的目标芯片,以根据每个私有地址对应的全局地址,存储所述映射关系;
[0202]
或者,
[0203]
在所述众核系统包括1个芯片,且所述芯片包括呈j行p列排列的功能核阵列的情况下,基于每个全局地址指对应的私有地址所在的目标功能核,以及所述目标功能核在所述功能核整列中的位置,以根据每个私有地址对应的全局地址,存储所述映射关系。
[0204]
可选的,所述目标存储空间的工作模式包括第一工作模式和第二工作模式;
[0205]
其中,在所述第一工作模式下,所述存储器接口将接收到的访问请求中的全局地址转化为私有地址,以基于所述私有地址访问所述目标存储空间中的数据;在所述第二工作模式下,所述存储器接口基于收到的访问请求中的私有地址访问所述目标存储空间中的数据;
[0206]
存储数据访问装置500还包括以下至少一项:
[0207]
第一确定模块,用于根据控制指令,确定所述目标存储空间的工作模式;
[0208]
第二确定模块,用于响应于所述第一读取请求,确定所述工作模式为所述第一工作模式;
[0209]
第三确定模块,用于响应于所述第二读取请求,确定所述工作模式为所述第二工作模式。
[0210]
可选的,在所述第一读取请求与所述第二读取请求的接收时间差小于预设时间的情况下,通过仲裁或者预设优先权确定对所述第一读取请求和所述第二读取请求中的至少一个进行响应。
[0211]
可选的,所述第一读取请求和所述第一目标数据通过片上网络或片上总线传输。
[0212]
本技术实施例提供的存储数据访问装置500能够执行如图1所示方法实施例中存储器接口执行的各个过程,且能够提升众核系统的运行效率并节约存储资源,具有与如图1所示方法实施例相同的有益效果,为避免重复,在此不再赘述。
[0213]
本技术实施例中的存储数据访问装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,非移动电子设备可以为个人计算机(personal computer,pc)、柜员机或者自助机等,本技术实施例不作具体限定。
[0214]
本技术实施例提供的存储数据访问装置能够实现图1所示的方法实施例实现的各个过程,为避免重复,这里不再赘述。
[0215]
可选的,如图6所示,本技术实施例还提供一种电子设备600,包括处理器601,存储器602,存储在存储器602上并可在所述处理器601上运行的程序或指令,该程序或指令被处理器601执行时实现上述存储数据访问方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0216]
需要注意的是,本技术实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
[0217]
本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述存储数据访问方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0218]
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
[0219]
本技术实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述存储数据访问方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0220]
应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
[0221]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
[0222]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
[0223]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1