一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

芯片以及核间通信方法与流程

2022-06-05 21:06:25 来源:中国专利 TAG:


1.本公开涉及芯片技术领域,更具体地说,涉及能够提高核间通信的效率、降低通信网络复杂度、节约芯片面积并减少成本的芯片以及用于所述芯片的核间通信方法。


背景技术:

2.随着对芯片性能的要求日益提高,在单个芯片中集成多个处理器核已经成为发展趋势。在众核或者多核结构中,核间通信一直是重点、难点。尽管已经提出片上网络(noc)作为片上系统片上系统(soc)的通信方法,并且其性能显著优于传统总线式系统,但是核与核之间大量数据的传输一般会造成片上网络的拥塞,导致传输延时过长。同时,因为核之间的同步问题经常需要增加本地专属内存,结果会导致芯片面积的增加和资源的浪费。其原因在于一些数据是共享的但是却需要复制多份。


技术实现要素:

3.本公开的实施例提供芯片、核间通信方法、电子装置以及计算机可读存储介质,通过实现所述芯片、所述核间通信方法、所述电子装置以及所述计算机可读存储介质,能够提高核间通信的效率,降低通信网络复杂度,节约芯片面积,并减少成本。
4.在一个总的方面,提供一种芯片,所述芯片包括:多个处理核组,每个处理核组包括至少一个处理核,多个所述处理核组中的任意一个处理核组通过片上网络noc与多个所述处理核组中的其他处理核组相连;多个本地共享存储单元lmsu,多个所述lmsu与多个所述处理核组一一对应,所述lmsu通过所述noc的第一级节点与对应的处理核组内的所有处理核相连;广播站,所述广播站分别与所述noc的第二级节点以及多个所述lmsu相连。
5.通过在芯片中为每个处理核组设置一个lmsu并相应地设置广播站,能够在核间通信中实现适当的调度,从而可有效地避免芯片中数据传输的拥塞,降低核间通信中的传输延时。另外,通过在芯片中设置lmsu和广播站,减少了芯片中专用内存的数量,从而可以节约芯片面积并减少成本。同时,由于在芯片中多个lmsu与多个处理核组一一对应,因此芯片可以容易地被扩展。
6.可选地,所述lmsu包括:接收目录,用于记录所述对应的处理核组中作为接收核的各个处理核的数据索引;发送使能链,用于所述对应的处理核组中作为发送核的处理核配置本次传输中的各个接收核;接收使能链,用于所述对应的处理核组中作为所述接收核的各个所述处理核配置自身的工作状态;本地存储器,用于存储数据;以及监测队列,用于监测所述lmsu与所述广播站之间的通信端口。
7.lmsu中的rx目录、发送使能链、接收使能链和监测队列可以被灵活地配置,从而使单核发送单核接收与单核发送多核接收的情况相兼容,因此可以提高核间通信的效率,降低通信网络复杂度。
8.可选地,多个所述lmsu中的所述发送使能链串联并映射到所述广播站。
9.在另一总的方面,提供一种核间通信方法,用于包括多个处理核组的芯片,所述处
理核组包括至少一个处理核,每个所述处理核组通过片上网络noc与一个本地共享存储单元lmsu相连;所述核间通信方法包括:作为发送核的一个处理核通过所述noc访问作为接收核的另一个处理核对应的lmsu;根据所述对应的lmsu中的参数确定所述接收核是否做好接收准备;以及响应于所述接收核做好接收准备,所述发送核通过所述noc、广播站以及所述对应的lmsu将数据发送至所述接收核,其中,所述广播站分别与所述noc以及所有所述lmsu相连。
10.通过上述核间通信方法,能够有效地避免芯片中数据传输的拥塞,降低核间通信中的传输延时,同时可以提高核间通信的效率,降低通信网络复杂度。
11.可选地,所述核间通信方法还包括:响应于所述接收核未做好接收准备,所述发送核通过所述noc将数据发送到所述对应的lmsu。
12.在另一总的方面,提供一种核间通信方法,用于包括多个处理核组的芯片,所述处理核组包括至少一个处理核,每个所述处理核组通过片上网络noc与一个本地共享存储单元lmsu相连;所述核间通信方法包括:作为发送核的一个处理核通过片上网络noc以及广播站发送配置信息到所述lmsu,所述广播站分别与所述noc的第二级节点以及所有所述lmsu相连;响应于接收到所述广播站发送的配置完成消息,所述发送核通过所述noc的第一级节点以及所述广播站将所述数据发送到各个所述lmsu。
13.通过上述核间通信方法,能够有效地避免芯片中数据传输的拥塞,降低核间通信中的传输延时,同时可以提高核间通信的效率,降低通信网络复杂度。
14.可选地,第一所述lmsu根据所述配置信息确定第一所述lmsu连接的处理核组中有多个作为接收核的处理核;若第一所述lmsu确定所述多个接收核中的至少一个所述接收核已经做好接收准备,则第一所述lmsu将所述数据发送给任意一个已经做好准备的所述接收核,并保存所述数据;或者若第一所述lmsu确定所述多个接收核均未做好接收准备,则第一所述lmsu保存所述数据,其中,第一所述lmsu为所有所述lmsu中的任意一个。
15.在另一总的方面,提供一种核间通信方法,用于包括多个处理核组的芯片,所述处理核组包括至少一个处理核,每个所述处理核组通过片上网络noc与一个本地共享存储单元lmsu相连;所述核间通信方法包括:响应于执行到接收数据的指令,第一处理核查询所述第一处理核对应的所述lmsu;响应于查询到所述lmsu中指示所述第一处理核作为接收核的记录,所述第一处理核从所述lmsu中读取数据。
16.通过上述核间通信方法,能够有效地避免芯片中数据传输的拥塞,降低核间通信中的传输延时,同时可以提高核间通信的效率,降低通信网络复杂度。
17.可选地,响应于未查询到所述lmsu中指示所述第一处理核作为接收核的记录,所述第一处理核配置所述lmsu以在所述lmsu中生成指示所述第一处理核已经做好接收准备的记录,以及指示所述lmsu监测所述广播站发送的数据的记录。
18.可选地,在所述第一处理核配置所述lmsu以在所述lmsu中生成指示所述第一处理核已经做好接收准备的记录之后,所述核间通信方法还包括:响应于所述lmsu监测到所述广播站发送的数据,所述第一处理核从所述lmsu获取所述广播站发送的数据。
19.在另一总的方面,提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,实现如上所述的核间通信方法。
20.在另一总的方面,提供一种电子装置,所述电子装置包括:处理器,由如上所述的
芯片实现;存储器,存储将由处理器执行的计算机程序。
21.在另一总的方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,当所述计算机程序被处理器执行时,实现如上所述的核间通信方法。
22.根据本公开的实施例的芯片、核间通信方法、电子装置以及计算机可读存储介质,能够解决传统多核架构中存在的传输延时过长,内存所占面积大,传输容易造成死锁的情况,并且具有传输延时短,可灵活配置,节省内存面积,容易拓展等诸多优点。
附图说明
23.通过下面结合示例性地示出实施例的附图进行的描述,本公开的实施例的上述和其他目的和特点将会变得更加清楚,其中:
24.图1是示出根据本公开的实施例的芯片的示意图;
25.图2是示出根据本公开的一个实施例的核间通信方法的流程图;
26.图3是示出根据本公开的另一实施例的核间通信方法的流程图;
27.图4是示出根据本公开的又一实施例的核间通信方法的流程图;
28.图5是示出根据本公开的实施例的电子装置的框图。
具体实施方式
29.提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本技术的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的顺序发生的操作之外,可如在理解本技术的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,本领域已知的特征的描述可被省略。
30.在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,已提供在此描述的示例,以仅示出实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式,所述许多可行方式在理解本技术的公开之后将是清楚的。
31.如在此使用的,术语“和/或”包括相关联的所列项中的任何一个以及任何两个或更多个的任何组合。
32.尽管在此可使用诸如“第一”、“第二”和“第三”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不应被这些术语所限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分进行区分。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
33.在说明书中,当元件(诸如,层、区域或基底)被描述为“在”另一元件上、“连接到”或“结合到”另一元件时,该元件可直接“在”另一元件上、直接“连接到”或“结合到”另一元件,或者可存在介于其间的一个或多个其他元件。相反,当元件被描述为“直接在”另一元件上、“直接连接到”或“直接结合到”另一元件时,可不存在介于其间的其他元件。
34.在此使用的术语仅用于描述各种示例,并不将用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。术语“包含”、“包括”和“具有”说明存在叙述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特
征、数量、操作、构件、元件和/或它们的组合。
35.除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本公开所属领域的普通技术人员在理解本公开之后通常理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文和本公开中的含义一致的含义,并且不应被理想化或过于形式化地解释。
36.此外,在示例的描述中,当认为公知的相关结构或功能的详细描述将引起对本公开的模糊解释时,将省略这样的详细描述。
37.在下文中,将参照附图详细描述实施例。然而,实施例可以以各种形式实现,并且不限于在此描述的示例。
38.图1是示出根据本公开的实施例的芯片的示意图。
39.参照图1,根据本公开的实施例的芯片可包括多个处理核组11、12、13和14、多个本地共享存储单元(lmsu)21、22、23和24以及广播站30。此外,根据本公开的实施例的芯片还可包括片上网络(noc),其中,noc包括第一级节点noc00、noc01、noc02和noc03以及第二级节点noc20。虽然附图中多个处理核组、多个lmsu以及noc的第一级节点的数量被示出为4个,但是,本公开的实施例不限于此。芯片上的处理核组、lmsu以及noc的第一级节点的数量可以根据设计规格被适当地设置。
40.具体地讲,每个处理核组包括至少一个处理核,多个处理核组11、12、13和14中的任意一个处理核组通过noc与多个处理核组11、12、13和14中的其他处理核组相连。例如,处理核组11可通过noc连接到处理核组12、13和14,处理核组12可通过noc连接到处理核组11、13和14,处理核组13可通过noc连接到处理核组11、12和14,处理核组14可通过noc连接到处理核组11、12和13。进一步讲,处理核组11可通过noc00、noc20和noc01连接到处理核组12,通过noc00、noc20和noc02连接到处理核组23,通过noc00、noc20和noc02连接到处理核组13。
41.多个lmsu 21、22、23和24与多个处理核组11、12、13和14一一对应,并且每个lmsu可通过noc的第一级节点与对应的处理核组内的所有处理核相连。例如,lmsu 21对应于处理核组11,lmsu 22对应于处理核组12,lmsu 23对应于处理核组13,lmsu 24对应于处理核组14。进一步讲,lmsu 21可通过第一级节点noc00连接到处理核组11,lmsu 22可通过第一级节点noc01连接到处理核组12,lmsu 22可通过第一级节点noc02连接到处理核组13,lmsu 24可通过第一级节点noc03连接到处理核组14。
42.此外,广播站可分别与noc的第二级节点以及多个lmsu 21、22、23和24相连。例如,广播站可连接到第二级节点noc20,并且可不经由noc而直接连接到各个lmsu 21、22、23和24。根据本公开的实施例,可利用逻辑单元来实现广播站。
43.通过在芯片中设置lmsu和广播站,减少了芯片中专用内存的数量,从而可以节约芯片面积并减少成本。同时,由于在芯片中多个lmsu与多个处理核组一一对应,因此芯片可以容易地被扩展。
44.根据本公开的实施例,每个lmsu可包括接收(rx)目录、发送使能链(tx_en_chain)、接收使能链(rx_en_chain)、本地存储器(memory)和监测队列(snoop queue)。
45.rx目录用于记录对应的处理核组中作为接收核的各个处理核的数据索引。处理核的数据索引可包括对应的处理核组中作为接收核的处理核待接收数据的数据地址;可选
的,数据索引还可以包括待接收的数据块的数量以及待接收的各个数据块的大小。
46.发送使能链用于对应的处理核组中作为发送核的处理核配置本次传输中的各个接收核;接收使能链用于对应的处理核组中作为接收核的处理核配置自身的工作状态。发送使能链和接收使能链的位数可根据与lmsu对应的处理核组中包括的处理核的数量来确定。例如,当处理核组中包括的处理核的数量为4个时,lmsu中的发送使能链和接收使能链的位数可以是4位。可选择地,多个lmsu 21、22、23和24的发送使能链可以串联到一起,并映射到广播站。这样,作为发送核的处理核可以一次配置本次传输中的各个接收核,可以理解,对于发送核配置本次传输的各个接收核时,如果各个接收核分别位于三个lmsu中,那么所述发送使能链的长度为三个lmsu中发送使能链的总长度,共12位。
47.本地存储器用于存储数据。例如,本地存储器可以是易失性存储器(诸如,动态ram(dram)或静态ram(sram))或者非易失性存储器(诸如,闪存、可擦除可编程只读存储器(eprom)和/或电eprom(eeprom))。
48.监测队列用于监测lmsu与广播站之间的通信端口。例如,监测队列可监测lsmu与广播站之间的通信端口的状态,根据监测队列的配置判断发送至监测队列的数据是否属于此监测队列所在的lmsu待接收的数据(即,该lmsu对应的处理核组中的接收核待接收的数据)。
49.对于rx目录的配置,具体例如为:当数据发送至lmsu,但是由于一些原因导致该数据保存至本地存储器时,lmsu可以对rx目录进行配置,以在rx目录中写入接收核待接收的数据在本地存储器中的数据索引,例如,所述数据索引包括待接收的数据的地址,可选的,还可以包括写入待接收的数据块的数量和/或待接收的各个数据块的大小。
50.对于发送使能链的配置,具体例如为:假设每个处理核组包括4个处理核。当处理核组11中的第一处理核准备将数据发送到处理核组12的第二处理核、处理核组13的第三处理核和处理核组14的第一处理核时,处理核组11中的第一处理核配置发送使能链,将发送使能链中与各个处理核对应的位设置为预设值,即:将与处理核组12相连的lmsu 22的发送使能链中的第二位、与处理核组13相连的lmsu 23的发送使能链中的第三位以及与处理核组14相连的lmsu 24的发送使能链中的第一位设置为预设值;处理核组11中的第一处理核将配置好的发送使能链发送至广播站,广播站将配置好的发送使能链广播至各个lmsu,lmsu根据所述发送使能链将内部的发送使能链相应的位设置为预设值,从而完成本次传输的接收核的配置。
51.对于接收使能链的配置,具体例如为:当处理核组12的第二处理核、处理核组13的第三处理核和处理核组14的第一处理核做好接收准备时,处理核组12的第二处理核、处理核组13的第三处理核和处理核组14的第一处理核可以分别对lmsu 22的接收使能链中的第二位、lmsu 23的接收使能链中的第三位以及lmsu 24的接收使能链中的第一位进行配置,将对应的位配置为预设值,以表示这些位对应的处理核已经做好接收准备。
52.对于监测队列,例如在lmsu接收到广播站广播的配置信息时,或,在一个处理核做好接收准备但是未发现待接收数据时,lmsu可以对监测队列进行配置,以在监测队列中包括待接收数据的数据索引,从而,监测队列可以监测从广播站发送的数据,如果所述数据与监测队列中的待接收数据的数据索引一致,则lmsu接收这笔数据。所述待接收数据的数据索引包括:待接收数据的地址;可选的,所述待接收数据的数据索引还可以包括待接收数据
的数据块的数量和/或各个数据块的大小。
53.通过为每个处理核组设置一个lmsu,并且在lmsu中设置rx目录、发送使能链、接收使能链和监测队列,能够在核间通信中实现适当的调度,从而可有效地避免芯片中数据传输的拥塞,降低核间通信中的传输延时。
54.以下将参照图1具体描述芯片上如何实现核间通信。根据本公开的实施例,核间通信可以分为单(处理)核发送,单(处理)核接收以及单核发送多核接收两种情况。
55.首先描述单核发送单核接收的情况。假设处理核组11中的第一处理核为发送核,处理核组12中的第二处理核为接收核。
56.当发送核准备将数据发送到接收核时,发送核可通过noc访问lmsu 22,并根据lmsu 22中的参数确定接收核是否做好接收准备。如果接收核做好接收准备,则发送核可通过noc、广播站以及lmsu 22将数据发送到接收核。如果接收核未做好接收准备,则发送核可通过noc将数据发送到lmsu 22进行存储。
57.具体地讲,当发送核准备将数据发送到接收核时(例如,当发送核运行到向接收核发送数据的指令时),发送核确定本次数据传输的接收核为一个处理核即单核,那么,发送核通过noc(例如,通过noc00、noc20和noc01)访问lmsu 22的接收使能链,以确定接收核是否做好接收准备。接收核做好准备具体为:当接收核运行到需要获取数据的指令时,接收核可将lmsu 22的接收使能链的第二位设置为1(例如,被设置为1表示做好准备,被设置为0表示未做好准备),以表示所述接收核已经做好接收准备。在接收核做好接收准备时,接收核还会配置所在的lmsu中的监测队列,以在监测队列中生成与所述获取数据的指令所需要的数据相匹配的待接收数据的数据索引。
58.当发送核通过noc访问lmsu 22的接收使能链,确定接收核做好接收准备时,发送核通过noc(例如,通过noc00和noc20)将数据发送到广播站。广播站可直接(而不通过noc)将接收到的数据发送到lmsu 22,lmsu 22判断广播站发送的该笔数据是否与监测队列中的待接收数据的数据索引相匹配,如果匹配,则由lmsu 22将接收到的数据转发到接收核(例如,通过noc01将接收到的数据转发到接收核),而不会将接收到的数据存储到本地存储器中。如果不匹配,该笔数据丢弃或不做处理。
59.另外,如果发送核通过noc访问lmsu 22的接收使能链,确定接收核未做好接收准备,即接收核尚未执行到需要获取数据的指令,则发送核通过noc(例如,通过noc00和noc20)将数据发送到lmsu 22,并保存在本地存储器中。此时,lmsu 22更新rx目录,将接收到的该笔数据在本地存储器中的数据地址等信息写入rx目录。当接收核在运行到需要获取数据的指令时先查看lmsu 22的rx目录,判断rx目录的内容是否与获取数据的指令中所需要的数据相匹配。如果相匹配,则接收核可从lmsu 22中直接读取数据;如果不匹配,则接收核配置lmsu 22的接收使能链以表示接收核已经做好接收准备;同时,接收核配置lmsu 22的监测队列,以监测广播站发送的数据是否与监测队列中的待接收数据的数据索引相匹配。
60.下面描述单核发送,多核接收的情况。
61.假设处理核组11中的第一处理核为发送核,处理核组12中的第一处理核、第二处理核和第三处理核、处理核组13中的第三处理核以及处理核组14中的第二处理核、第三处理核和第四处理核为接收核。
62.当发送核欲将数据发送到多个接收核时,发送核会先通过noc以及广播站发送配置信息到多个lmsu。当接收到广播站发送的配置完成消息时,发送核可通过noc以及广播站将数据发送到与所述数据对应的多个lmsu。
63.所述配置信息包括发送使能链和待发送的数据信息。所述发送使能链用于配置在各个lmsu中作为本次传输中的接收核的各个处理核,所述待发送的数据信息用于配置各个lmsu中的监测队列,以监测从广播站发送到lmsu的数据是否属于该lmsu的待接收的数据,即所述数据是否对应该lmsu。
64.任意一个lmsu根据发送核的配置信息确定所述lmsu连接的处理核组中作为接收核的情况;若有多个作为接收核的处理核,且所述多个接收核中的至少一个接收核已经做好接收准备,则所述lmsu可将发送核发送的数据发送给任意一个已经做好接收准备的接收核,并保存发送核发送的数据(即,将发送核发送的数据存储在本地存储器中)。
65.若有多个作为接收核的处理核,且多个接收核均未做好接收准备时,则所述lmsu可保存发送核发送的数据(即,将发送核发送的数据存储在本地存储器中)。
66.具体地讲,当发送核欲将数据发送到多个接收核时,发送核首先配置发送使能链,由于各个lmsu的发送使能链是串接在一起的,所以发送核通过配置发送使能链,可以将发送使能链中所有作为接收核的处理核对应的位设置为预设值以标识本次传输中作为接收核的各个处理核,其中,预设值例如为1,表示发送使能链中具有预设值的位对应的处理核在本次传输中是接收核。发送核将配置好的发送使能链和待发送的数据信息通过noc发送到广播站,广播站广播发送使能链核和待发送的数据信息至各个lmsu;每个lmsu都会通过收到的发送使能链配置内部作为本次接收核的各个处理核,并通过待发送的数据信息配置内部的监测队列,以监测从广播站广播至自身的数据是否属于该lmsu的待接收的数据;lmsu完成上述配置后向广播站发送配置完成的消息;当接收到广播站发送的配置完成消息后,发送核可通过noc将数据发送广播站,之后广播站广播数据到各个lmsu。
67.可选择的,广播站广播发送使能链核和待发送的数据信息至各个lmsu,具体可以为广播站发送发送使能链和待发送的数据信息至所述发送使能链中指示的具有接收核的各个lmsu,以节省功耗。
68.需要说明的是本文中广播站广播和发送都表示广播站将数据传输至lmsu,并无实质差别。
69.例如,当发送核欲发送数据时,首先配置发送使能链,将对应于lmsu 22的发送使能链的第一位、第二位和第三位(即,处理核组12中的第一处理核、第二处理核和第三处理核)、lmsu 23的第三位(即,处理核组13中的第三处理核)以及lmsu 24的发送使能链的第二位、第三位和第四位(即,处理核组14中的第二处理核、第三处理核和第三处理核)设置为预设值,以将这些处理核配置为本次数据的接收核。发送核还会将待发送的数据的数据信息发送至广播站,其中,待发送的数据的数据信息包括待发送的数据的数据地址,所述待发送的数据的数据信息还可以包括待发送的数据的数据块的数量以及各个数据块的大小等;广播站广播待发送的数据的数据信息至各个lmsu,从而各个lmsu将接收到的待发送的数据数据的信息写入各自内部的监测队列,以便lmsu监测从广播站发送过来的数据是否属于该lmsu待接收的数据。
70.发送核将配置好的发送使能链和待发送的数据的数据信息发送至广播站,广播站
将这些配置信息广播到各个lmsu;当lmsu 22、lmsu 23和lmsu24根据这些配置信息配置好作为接收核的各个处理核以及监测队列后,lmsu 22、lmsu 23和lmsu 24向广播站发送配置完成消息,广播站可通过noc将配置完成消息发送到发送核。当接收到配置完成消息时,发送核可通过noc00、noc20将数据发送至广播站,广播站将数据发送到lmsu 22、lmsu 23和lmsu 24。
71.当lmsu 22从广播站接收到发送核发送的数据时,其内部的监测队列会比较接收到的数据,如果接收到的数据与监测队列的待接收数据的数据索引一致,则lmsu 22接收这笔数据;lmsu 22基于接收使能链判断被配置为接收核的第一处理核、第二处理核和第三处理核是否做好接收准备。例如:若接收使能链中的第一位和第二位为预设值(预设值例如为1表示做好准备,预设值例如为0表示为做好准备),则表示第一处理核、第二处理核已做好接收准备,lmsu 22可将接收到的数据发送到任意一个已经做好接收准备的接收核,例如第一处理核,并将接收到的数据存储在本地存储器中,同时更新rx目录,以将存入本地存储器中的这笔数据的数据信息写入rx目录,所述数据信息包括例如数据的存储地址等信息,这样第二处理核可以根据rx目录直接从lmsu 22的本地存储器获取发送核发送的这笔数据。另外,当第三处理核做好接收准备时,第三处理核也可从lmsu 22的本地存储器获取发送核发送的这笔数据。
72.如果处理核组12中的第一处理核、第二处理核和第三处理核中仅有一个做好接收准备,则lmsu 22可将接收到的数据发送到已经做好接收准备的接收核,并将接收到的数据存储在本地存储器中,同时更新rx目录,以将存入本地存储器中的这笔数据的数据信息写入rx目录,这样第二处理核、第三处理核做好准备后可以根据rx目录直接从lmsu 22的本地存储器获取发送核发送的这笔数据。
73.如果处理核组12中的第一处理核、第二处理核和第三处理核均未做好接收准备,则lmsu 22可将接收到的数据存储在本地存储器中,同时更新rx目录,以将存入本地存储器中的这笔数据的数据信息写入rx目录。这样,当第一处理核、第二处理核和/或第三处理核中的任意一个处理核做好接收准备时,都可根据rx目录从lmsu 22的本地存储器获取发送核发送的数据。
74.此外,lmsu 23、lmsu 24的处理与lmsu 22的处理类似。这里不再赘述。
75.下面以处理核组12中的第一处理核、第二处理核和第三处理核为例来描述接收核的操作。
76.当第一处理核运行到需要获取数据的指令时,首先查看lmsu 22的rx目录中是否存在指示第一处理核作为接收核的数据索引。如上所述,如果lmsu 22的本地存储器中保存有数据,则会在rx目录中保存接收的数据地址等索引信息。在这种情况下,rx目录就会包括接收数据的地址。因此,当lmsu 22的rx目录中接收的数据地址与所述第一处理核待接收数据的地址一致时,则第一处理核可从lsmu 22的本地存储器读取发送核已经发送的数据。可选择地,第二处理核和第三处理核运行到需要获取数据的指令时可执行与第一处理核类似的操作。
77.然而,当第一处理核、第二处理核和第三处理核任意一个处理核运行到需要获取数据的指令时,例如当第一处理核运行到需要获取数据的指令时,如果lmsu 22的rx目录中不存在该第一处理核作为接收核的数据索引时(即,发送核尚未将数据发送到lsmu 22时),
该第一处理核可对lmsu 22的监测队列进行配置。例如,第一处理核会根据待接收数据的数据索引对lmsu 22的监测队列进行配置,例如在监测队列中写入第一处理核待接收的数据的数据索引,所述数据索引包括待接收的数据的数据地址,还可以包括待接收的数据的数据块的数量以及各个数据块的大小。同时,该第一处理核会将lmsu 22的接收使能链中的对应的第一位设置为预设值,以指示做好接收准备。第二处理核和第三处理核的执行过程与第一处理核的执行过程相同,在此不做赘述。
78.当第一处理核做好准备后,发送核发送数据的过程如前所述,即:首先将配置好的发送使能链和待发送的数据信息发送给广播站,广播站随后将接收到的这些配置信息发送至各个lmsu,各个lmsu会配置监测队列和接收核,配置完成向广播站反馈配置完成的信息,广播站将配置完成的信息发送至发送核,此时发送核就可以发送数据了。发送核通过noc和广播站将数据发送至lmsu 22,lmsu 22会对监测队列的数据索引和所述数据进行比较,如果一致,则lmsu接收所述数据,然后根据接收使能链确定第一处理核已经做好接收准备,则将数据直接发送给所述第一处理核;同时,lmsu根据接收使能链确定除第一处理核外的第二处理核和第三处理核也做好了接收准备,则lmsu将数据保存在本地存储器中,并更新rx目录,将保存的数据索引写入rx目录,第二处理核和第三处理核可以直接从本地存储器中读取已保存的数据。
79.根据本公开的实施例,lmsu中的rx目录、发送使能链、接收使能链和监测队列可以被灵活地配置,从而使单核发送单核接收与单核发送多核接收的情况相兼容,因此可以提高核间通信的效率,降低通信网络复杂度。
80.以下参照图2至图4对根据本公开的实施例的核间通信方法进行描述。
81.图2是示出根据本公开的一个实施例的核间通信方法的流程图。所述核间通信方法适用于参照图1描述的芯片,芯片可包括多个处理核组,每个处理核组可包括至少一个处理核,并且可通过noc与一个lmsu相连。
82.参照图2,在步骤s201中,作为发送核的一个处理核可通过noc访问作为接收核的另一个处理核对应的lmsu。
83.在步骤s202中,发送核可根据对应的lmsu中的参数确定接收核是否做好接收准备。
84.在步骤s203中,响应于接收核做好接收准备,发送核可通过noc、广播站以及对应的lmsu将数据发送至接收核。
85.如上所述,广播站可分别与noc(例如,noc20)以及所有的lmsu相连。
86.可选择地,在步骤s204中,响应于接收核未做好接收准备,发送核可通过noc将数据发送到对应的lmsu。
87.本实施例的详细过程参见前述实施例的描述,在此不做赘述。
88.图3是示出根据本公开的另一实施例的核间通信方法的流程图。如上所述,所述核间通信方法适用于参照图1描述的芯片,芯片可包括多个处理核组,每个处理核组可包括至少一个处理核,并且可通过noc与一个lmsu相连。
89.参照图3,在步骤s301中,作为发送核的一个处理核通过noc以及广播站发送配置信息到所述lmsu,如上所述,广播站分别与noc的第二级节点(例如,noc20)以及所有lmsu相连。
90.在步骤s302中,响应于接收到广播站发送的配置完成消息,发送核通过noc的第一级节点(例如,noc00、noc01、noc02和noc03)以及广播站将数据发送到所有lmsu。
91.在步骤s302之后,核间通信方法还可以包括:第一lmsu根据所述配置信息确定第一lmsu连接的处理核组中有多个作为接收核的处理核。若第一lmsu确定所述多个接收核中的至少一个接收核已经做好接收准备,则第一lmsu将所述数据发送给任意一个已经做好准备的接收核,并保存所述数据;或者若第一lmsu确定所述多个接收核均未做好接收准备,则第一lmsu保存所述数据,其中,第一lmsu可以是所有lmsu中的任意一个。
92.本实施例的详细过程参见前述实施例的描述,在此不做赘述。
93.图4是示出根据本公开的又一实施例的核间通信方法的流程图。如上所述,所述核间通信方法适用于参照图1描述的芯片,芯片可包括多个处理核组,每个处理核组可包括至少一个处理核,并且可通过noc与一个lmsu相连。
94.参照图4,在步骤s401中,响应于执行到接收数据的指令,处理核查询与其对应的lmsu。在步骤s402中,响应于查询到对应的lmsu中指示所述处理核作为接收核的记录,所述处理核可从对应的lmsu中读取数据。
95.可选择地,在步骤s403中,响应于未查询到对应的lmsu中指示所述处理核作为接收核的记录,所述处理核配置对应的lmsu以在对应的lmsu中生成指示所述处理核作为接收核的记录,所述记录用于对应的lmsu监测广播站发送的数据。
96.根据本公开的实施例,在所述处理核配置对应的lmsu以在对应的lmsu中生成指示所述处理核作为接收核的记录之后,在步骤s404中,响应于对应的lmsu监测到广播站发送的数据,所述处理核可从对应的lmsu获取广播站发送的数据。
97.本实施例的详细过程参见前述实施例的描述,在此不做赘述。
98.图5是示出根据本公开的实施例的电子装置的框图。
99.参照图5,电子装置500可包括处理器510和存储器520。处理器510可包括(但不限于)中央处理器(cpu)、图形处理器(gpu)、神经处理器(npu)、应用处理器(ap)、数字信号处理器(dsp)、片上系统(soc)、微处理器等。处理器可由根据本公开的实施例的芯片来实现。在所述芯片中可实现根据本公开的实施例的核间通信方法。存储器520存储将由处理器510执行的计算机程序。存储器520包括高速随机存取存储器和/或非易失性计算机可读存储介质。
100.可选择地,电子装置500还可包括显示装置525、存储装置530、输入装置540、输出装置550和通信装置560。电子装置500的上述各个元件可通过通信总线彼此进行通信。显示装置525可以显示各种用户界面和/或应用界面。存储装置530包括计算机可读存储介质。存储装置530比存储器520存储更大量的信息并且存储更长的时间。例如,存储装置530包括诸如硬盘、光盘和固态驱动器的存储介质。输入装置540通过触觉、视频、音频或触摸输入从用户接收输入。例如,输入装置540包括键盘、鼠标、触摸屏、麦克风或检测来自用户的输入并将检测到的输入发送到电子装置500的任何其他装置。输出装置550通过视觉、听觉或触觉通道向用户提供电子装置500的输出。输出装置550包括例如显示器、触摸屏、扬声器、振动发生器或向用户提供输出的任何其他装置。通信装置560通过有线或无线网络与外部装置进行通信。
101.根据本公开的实施例的核间通信方法可被编写为计算机程序并被存储在计算机
可读存储介质上。当所述计算机程序被处理器执行时,可实现如上所述的核间通信方法。计算机可读存储介质的示例包括:只读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、cd-r、cd r、cd-rw、cd rw、dvd-rom、dvd-r、dvd r、dvd-rw、dvd rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、蓝光或光盘存储器、硬盘驱动器(hdd)、固态硬盘(ssd)、卡式存储器(诸如,多媒体卡、安全数字(sd)卡或极速数字(xd)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
102.根据本公开的实施例的芯片、核间通信方法、电子装置以及计算机可读存储介质,能够解决传统多核架构中存在的传输延时过长,内存所占面积大,传输容易造成死锁的情况,并且具有传输延时短,可灵活配置,节省内存面积,容易拓展等诸多优点。
103.尽管已经参照其实施例具体显示和描述了本公开,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本公开的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献