CN115934622A - 数据处理装置、数据处理方法以及电子装置 - Google Patents
数据处理装置、数据处理方法以及电子装置 Download PDFInfo
- Publication number
- CN115934622A CN115934622A CN202211547138.4A CN202211547138A CN115934622A CN 115934622 A CN115934622 A CN 115934622A CN 202211547138 A CN202211547138 A CN 202211547138A CN 115934622 A CN115934622 A CN 115934622A
- Authority
- CN
- China
- Prior art keywords
- request
- computing unit
- data processing
- computing
- group
- 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.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
一种数据处理装置、数据处理方法以及电子装置。该数据处理装置包括多个计算单元,多个计算单元被划分为多个计算单元组,每个计算单元组包括至少两个计算单元,每个计算单元包括向量存储器,彼此相邻的两个计算单元组通过对应的至少一个第一传输通道耦接以将多个计算单元组串联,且在彼此相邻的两个计算单元组中的不同计算单元包括的向量存储器之间传输信息。该数据处理装置能够有效节省带宽消耗,提高并行处理器的性能,有效缩短计算单元间数据的传输时延,提升计算单元间数据传输的效率。
Description
技术领域
本公开的实施例涉及一种数据处理装置、数据处理方法以及电子装置。
背景技术
随着人工智能技术的发展,对于并行处理器的带宽和计算能力提出了更高的要求。但是由于现有工艺和材料的限制,带宽和计算能力存在明显的物理极限。对于矩阵运算等数据重复率高的工作,如果能提高数据的复用量,则能够有效降低带宽的使用,使得计算效率得到有效提升。
通常的并行处理器包括多个计算单元,每个计算单元包括多个处理元件,每个处理元件用于完成数据的计算,处理元件之间通过向量存储器进行数据交互。但是一个计算单元与另一个计算单元之间没有用于直接的数据交互的通路,因此如果存在交互需求,则需要一个计算单元先将数据存储进入缓存中,另一个计算单元再从缓存中读取。缓存作为交互的主要媒介,承担了大量的数据传输任务。因此如果能够不经过缓存完成计算单元之间的数据交互,例如对于不同计算单元中的向量存储器,如果存储同一个工作组的数据,对于所有运行该工作组内数据运算的处理元件都是可见的,并且处理元件能够自由获取向量存储器中的数据,那么就能极大地减少缓存带宽的使用。
发明内容
本公开至少一个实施例提供一种数据处理装置,包括多个计算单元,多个计算单元被划分为多个计算单元组,每个计算单元组包括至少两个计算单元,每个计算单元包括向量存储器,彼此相邻的两个计算单元组通过对应的至少一个第一传输通道耦接以将多个计算单元组串联,且在彼此相邻的两个计算单元组中的不同计算单元包括的向量存储器之间传输信息。
例如,在本公开至少一个实施例提供的数据处理装置中,每个计算单元组包括的至少两个计算单元通过对应的至少一个第二传输通道耦接,以在至少两个计算单元分别包括的向量存储器之间传输信息。
例如,在本公开至少一个实施例提供的数据处理装置中,至少一个第二传输通道包括至少一个单元间请求-反馈通道组合,单元间请求-反馈通道组合包括从起始计算单元到指向计算单元的第二请求通道和从指向计算单元到起始计算单元的第二反馈通道。
例如,在本公开至少一个实施例提供的数据处理装置中,每个计算单元组包括的至少两个计算单元包括第一计算单元和第二计算单元,至少一个第二传输通道包括以第一计算单元作为起始计算单元的第一单元间请求-反馈通道组合和以第二计算单元作为起始计算单元的第二单元间请求-反馈通道组合。
例如,在本公开至少一个实施例提供的数据处理装置中,至少一个第一传输通道包括至少一个组间请求-反馈通道组合,至少一个组间请求-反馈通道组合每个包括从起始计算单元组到指向计算单元组的第一请求通道和从指向计算单元组到起始计算单元组的第一反馈通道。
例如,在本公开至少一个实施例提供的数据处理装置中,每个计算单元组包括的至少两个计算单元包括第一计算单元和第二计算单元,至少一个组间请求-反馈通道组合包括第一组间请求-反馈通道组合和第二组间请求-反馈通道组合,第一组间请求-反馈通道组合的第一请求通道和第一反馈通道设置在相邻的两个计算单元组分别包括的两个第一计算单元的向量存储器之间,第二组间请求-反馈通道组合的第一请求通道和第一反馈通道设置在相邻的两个计算单元组分别包括的两个第二计算单元的向量存储器之间。
例如,在本公开至少一个实施例提供的数据处理装置中,多个计算单元组中的各个第一计算单元之间的第一请求通道串联形成第一请求链路,多个计算单元组中的各个第二计算单元之间的第一请求通道串联形成第二请求链路,多个计算单元组中的各个第一计算单元之间的第一反馈通道串联形成第一反馈链路,多个计算单元组中的各个第二计算单元之间的第一反馈通道串联形成第二反馈链路。
例如,在本公开至少一个实施例提供的数据处理装置中,第一请求链路和第二请求链路为单向链路;第一反馈链路和第二反馈链路为单向链路。
例如,在本公开至少一个实施例提供的数据处理装置中,数据处理装置包括请求网络和反馈网络,请求网络包括多个计算单元组内各自的第二请求通道以及第一请求链路和第二请求链路,反馈网络包括多个计算单元组内各自的第二反馈通道以及第一反馈链路和第二反馈链路。
例如,在本公开至少一个实施例提供的数据处理装置中,多个计算单元每个还包括多个处理元件和命令队列,向量存储器包括向量存储器主体和向量存储器节点,向量存储器主体用于接收命令队列和多个处理元件的激励并与向量存储器节点进行交互,向量存储器节点用于通过单元间请求-反馈通道组合或组间请求-反馈通道组合与相邻的计算单元中的向量存储器进行交互。
本公开至少一个实施例提供一种本公开至少一个实施例提供的数据处理装置的数据处理方法,多个计算单元组包括第一计算单元组和第二计算单元组,该数据处理方法包括:第一计算单元组中的源计算单元的向量存储器通过至少一个第一传输通道将读请求传输到第二计算单元组中的目的计算单元的向量存储器;以及第二计算单元组中的目的计算单元的向量存储器通过至少一个第一传输通道将被请求的数据传输到第一计算单元组中的源计算单元的向量存储器。
本公开至少一个实施例提供一种本公开至少一个实施例提供的数据处理装置的数据处理方法,多个计算单元组包括第一计算单元组和第二计算单元组,该数据处理方法包括:第一计算单元组中的源计算单元的向量存储器通过请求网络将读请求传输到第二计算单元组中的目的计算单元的向量存储器;第二计算单元组中的目的计算单元的向量存储器通过反馈网络将被请求的数据传输到第一计算单元组中的源计算单元的向量存储器。
例如,在本公开至少一个实施例提供的数据处理方法中,向量存储器包括向量存储器节点,该处理方法还包括:使用向量存储器节点通过单元间请求-反馈通道组合或组间请求-反馈通道组合与相邻的计算单元中的向量存储器进行交互。
例如,在本公开至少一个实施例提供的数据处理方法中,第一计算单元组中的源计算单元的向量存储器通过请求网络将读请求传输到第二计算单元组中的目的计算单元的向量存储器包括:在从第一计算单元组中的源计算单元到第二计算单元组中的目的计算单元的传输过程中,基于当前计算单元的标识和目的计算单元的标识,通过最短路径判断算法确定读请求的传输路径,传输路径中经过的计算单元被称为传输路径中的节点。
例如,在本公开至少一个实施例提供的数据处理方法中,通过最短路径判断算法确定读请求的传输路径包括:在当前计算单元的标识等于目的计算单元的标识的情况下,对于当前节点:判断是否有足够的处理资源对读请求进行处理,在有足够的处理资源的情况下,将读请求按照优先级的顺序存储进入用于处理操作的缓存中,并通知上一个节点进行读请求对应的信息的输入,按照顺序对读请求进行解析并处理,或者在没有足够的处理资源的情况下,将具有第一优先级的读请求按顺序进行处理,对于具有第二优先级的读请求,通知上一个节点需要等待,第一优先级高于第二优先级。
例如,在本公开至少一个实施例提供的数据处理方法中,判断是否有足够的处理资源对读请求进行处理包括:判断当前节点处理读请求剩余的资源情况以及当前节点中的向量存储器中是否存在足够的资源。
例如,在本公开至少一个实施例提供的数据处理方法中,通过最短路径判断算法确定读请求的传输路径还包括:在当前计算单元的标识不等于目的计算单元的标识的情况下,对于当前节点:判断是否有足够的转发资源对读请求进行转发,在有足够的转发资源的情况下,将读请求按照优先级的顺序存储进入用于转发操作的缓存中,并通知上一个节点进行读请求对应的信息的输入,按照顺序向下一个节点转发读请求,或者在没有足够的转发资源的情况下,将具有第三优先级的读请求存储进入用于转发操作的缓存中,并通知具有第三优先级的读请求对应的节点输出读请求,对于具有第四优先级的读请求,通知具有第四优先级的读请求对应的节点需要等待,第三优先级高于第四优先级。
例如,在本公开至少一个实施例提供的数据处理方法中,判断是否有足够的转发资源对读请求进行转发包括:判断当前节点转发读请求的资源情况以及下一个节点能否接收读请求。
例如,本公开至少一个实施例提供的数据处理方法还包括:在传输读请求的过程中,相邻节点之间通过握手机制建立连接,并通过节点之间的单元间请求-反馈通道组合或组间请求-反馈通道组合进行指令或数据的传输。
例如,在本公开至少一个实施例提供的数据处理方法中,相邻节点包括主节点和从节点,握手机制包括:主节点准备好数据并将发送就绪信号使能,并输出第一数据给从节点;从节点判断能否接收第一数据,在能够接收第一数据的情况下,从节点将接收就绪信号使能并接收第一数据。
例如,在本公开至少一个实施例提供的数据处理方法中,握手机制还包括:在主节点检测到接收就绪信号使能的情况下,维持将发送就绪信号使能,输出位于第一数据之后的第二数据给从节点;或者在主节点没有检测到接收就绪信号使能的情况下,主节点保持现状。
本公开至少一个实施例提供一种电子装置,包括本公开至少一个实施例提供的数据处理装置。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种用于并行计算的数据处理装置的结构示意图;
图2示出了一种用于图1的数据处理装置的计算单元的内部结构示意图;
图3示出了本公开至少一个实施例提供的一种数据处理装置的示意图;
图4示出了本公开至少一个实施例提供的请求网络的结构示意图;
图5示出了本公开至少一个实施例提供的反馈网络的结构示意图;
图6示出了本公开至少一个实施例提供的请求网络和反馈网络中的节点的结构示意图;
图7示出了本公开至少一个实施例提供的一种数据处理方法的示意性流程图;
图8示出了本公开至少一个实施例提供的另一种数据处理方法的示意性流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1示出了一种用于并行计算的数据处理装置的结构示意图。例如,该数据处理装置为并行处理器,例如通用图形处理器(GPGPU)。
如图1所示,数据处理装置包括多个计算单元(Computing Unit,CU)CU0~CU15和缓存(图中未示出),每个计算单元通过缓存输入输出接口(cache_IO)与缓存进行数据交互(例如,CU0通过cache_IO0与缓存进行数据交互)。在该数据处理装置中,一个计算单元与另一个计算单元之间没有用于直接的数据交互的通路,因此如果存在交互需求,则需要一个计算单元先将数据存储进入缓存中,另一个计算单元再从缓存中读取。在GPGPU中,用于计算单元运行的预定任务的最小单元称之为线程束,例如,每一个线程束包含32个线程或64个线程,计算单元内部运行的线程束相互独立。
图2示出了一种用于图1的数据处理装置的计算单元200的内部结构示意图。如图2所示,计算单元200包括处理元件201、处理元件202、向量存储器203以及命令队列204。处理元件201和202每个用于完成向量数据的计算,处理元件201和处理元件202包含大量的向量寄存器用于进行计算(例如浮点乘除计算、三角函数cos、sin等复杂的计算)。向量存储器203用于完成处理元件201和处理元件202之间的数据存储和交互,例如通过接口PE0 idx/data和PE1 idx/data完成处理元件201和处理元件202之间的数据存储和交互。命令队列204基于具体的程序对处理元件201和202以及向量存储器203的工作进行控制,例如通过接口PE0_cmd、VM_cmd和PE1_cmd完成命令队列204和对应设备的交互和通信以用于完成命令队列204对对应设备的控制。计算单元200的向量数据通过cache_IO与外界进行交互。
图1所示的数据处理装置的结构能够很好地处理相互独立的向量数据的计算,该数据处理装置中,计算单元之间的计算具有较高的独立性,但是对于并行处理器内部的数据共享显然是不利的。
另一种数据处理装置包含例如16个计算单元CU0~CU15,在该数据处理装置中,连接相邻的奇偶计算单元,将16个计算单元CU0~CU15划分为8个计算单元组,每个计算单元组包括两个计算单元。例如,计算单元CU0和CU1组成1个计算单元组;又例如,计算单元CU2和CU3组成1个计算单元组,依次类推,将奇数标号的计算单元和偶数标号的计算单元组成1个计算单元组。每个计算单元组包括的两个计算单元之间都通过指令传输通道(message)和数据地址传输通道(idx/data)耦接以传输指令、地址和数据。数据处理装置的计算单元的向量数据通过cache_IO与外界进行交互。该数据处理装置能够实现计算单元组内部的向量存储器之间的数据共享,但是对于更大范围的计算单元之间的数据共享,依然需要通过缓存来实现。
本公开至少一个实施例提供一种数据处理装置,包括多个计算单元,该多个计算单元被划分为多个计算单元组,每个计算单元组包括至少两个计算单元,每个计算单元包括向量存储器,彼此相邻的两个计算单元组通过对应的至少一个第一传输通道耦接以将多个计算单元组串联,且在彼此相邻的两个计算单元组中的不同计算单元包括的向量存储器之间传输信息。
本公开上述实施例提供的数据处理装置能够通过较小的代价实现计算单元的向量存储器之间的数据共享,有效节省带宽消耗,提高并行处理器的性能,有效缩短计算单元间数据的传输时延,提升计算单元间数据传输的效率。
本公开至少一个实施例还提供用于上述数据处理装置的数据处理方法以及包括上述数据处理装置的电子装置。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图3示出了本公开至少一个实施例提供的一种数据处理装置400的示意图。例如,该数据处理装置为并行处理器,例如通用图形处理器(GPGPU)、数据处理器、张量处理器等。
如图3所示,数据处理装置400包括多个计算单元CU0~CU15,该多个计算单元CU0~CU15被划分为多个计算单元组,每个计算单元组包括至少两个计算单元,例如两个计算单元。例如,计算单元CU0和计算单元CU1为一个计算单元组,又例如,计算单元CU2和计算单元CU3为一个计算单元组,依次类推,将奇数标号的计算单元和偶数标号的计算单元组成1个计算单元组。每个计算单元包括向量存储器、多个处理元件和命令队列,例如计算单元CU0包括向量存储器VM0、处理元件PE0_0、处理元件PE0_1和命令队列CQ0。
彼此相邻的两个计算单元组通过对应的至少一个第一传输通道耦接以将多个计算单元组串联,且在彼此相邻的两个计算单元组中的不同计算单元包括的向量存储器之间传输信息。例如,计算单元CU0和计算单元CU1组成的计算单元组与计算单元CU2和计算单元CU3组成的计算单元组为彼此相邻的两个计算单元组,这两个计算单元组通过第一传输通道(包括通道req_ch0_2、ret_ch2_0、req_ch3_1和ret_ch1_3)耦接,以用于在计算单元CU0包括的向量存储器VM0与计算单元CU2包括的向量存储器VM2之间传输信息以及在计算单元CU1包括的向量存储器VM1与计算单元CU3包括的向量存储器VM3之间传输信息。其他彼此相邻的两个计算单元组之间的情形与上述相同,不再赘述。
例如,在本公开的一些实施例中,每个计算单元组包括的至少两个计算单元通过对应的至少一个第二传输通道耦接,以在至少两个计算单元分别包括的向量存储器之间传输信息。
例如,如图3所示,图中最上侧的一个计算单元组包括的计算单元CU0和计算单元CU1通过第二传输通道(包括通道req_ch1_0、ret_ch0_1、req_ch0_1和ret_ch1_0)耦接,以在计算单元CU0和计算单元CU1分别包括的向量存储器VM0和向量存储器VM1之间传输信息。其他计算单元组的情形与上述相同,不再赘述。
例如,在本公开的一些实施例中,至少一个第二传输通道包括至少一个单元间请求-反馈通道组合,单元间请求-反馈通道组合包括从起始计算单元到指向计算单元的第二请求通道和从指向计算单元到起始计算单元的第二反馈通道。
例如,如图3所示,在计算单元CU0和计算单元CU1之间,第二传输通道(包括req_ch1_0、ret_ch0_1、req_ch0_1和ret_ch1_0)包括两个单元间请求-反馈通道组合,其中,一个单元间请求-反馈通道组合包括从作为起始的计算单元CU1(下面简称“起始计算单元”)到被指向的计算单元CU0(下面简称“指向计算单元”)的第二请求通道req_ch1_0和从指向计算单元CU0到起始计算单元CU1的第二反馈通道ret_ch0_1,另一个单元间请求-反馈通道组合包括从起始计算单元CU0到指向计算单元CU1的第二请求通道req_ch0_1和从指向计算单元CU1到起始计算单元CU0的第二反馈通道ret_ch1_0。
又例如,如图3所示,在计算单元CU2和计算单元CU3之间,第二传输通道(包括req_ch3_2、ret_ch2_3、req_ch2_3和ret_ch3_2)包括两个单元间请求-反馈通道组合,其中,一个单元间请求-反馈通道组合包括从起始计算单元CU3到指向计算单元CU2的第二请求通道req_ch3_2和从指向计算单元CU2到起始计算单元CU3的第二反馈通道ret_ch2_3,另一个单元间请求-反馈通道组合包括从起始计算单元CU2到指向计算单元CU3的第二请求通道req_ch2_3和从指向计算单元CU3到起始计算单元CU2的第二反馈通道ret_ch3_2。
例如,在本公开的一些实施例中,每个计算单元组包括的至少两个计算单元包括第一计算单元和第二计算单元,至少一个第二传输通道包括以第一计算单元作为起始计算单元的第一单元间请求-反馈通道组合和以第二计算单元作为起始计算单元的第二单元间请求-反馈通道组合。
例如,如图3所示,通道req_ch0_1和ret_ch1_0组成以第一计算单元CU0作为起始计算单元的第一单元间请求-反馈通道组合,通道req_ch1_0和ret_ch0_1组成以第二计算单元CU1作为起始计算单元的第二单元间请求-反馈通道组合。
在每个计算单元组内部,提供了两个单元间请求-反馈通道组合,用于强化计算单元组内部的数据交互能力。需要说明的是,计算单元组间的请求通道和反馈通道的方向不一定相反,本公开对此不作限制。
例如,在本公开的一些实施例中,在相邻的两个计算单元组之间的至少一个第一传输通道包括至少一个组间请求-反馈通道组合,至少一个组间请求-反馈通道组合每个包括从起始计算单元组到指向计算单元组的第一请求通道和从指向计算单元组到起始计算单元组的第一反馈通道。
例如,如图3所示,第一传输通道req_ch0_2和ret_ch2_0组成一个组间请求-反馈通道组合,该组间请求-反馈通道组合包括从作为起始的计算单元组(这里为计算单元CU0和计算单元CU1组成的计算单元组)(以下简称“起始计算单元组”)到被指向的计算单元组(这里为计算单元CU2和计算单元CU3组成的计算单元组)(以下简称“指向计算单元组”)的第一请求通道req_ch0_2和从指向计算单元组到起始计算单元组的第一反馈通道ret_ch2_0。
例如,在本公开的一些实施例中,每个计算单元组包括的至少两个计算单元包括第一计算单元和第二计算单元,至少一个组间请求-反馈通道组合包括第一组间请求-反馈通道组合和第二组间请求-反馈通道组合,第一组间请求-反馈通道组合的第一请求通道和第一反馈通道设置在相邻的两个计算单元组分别包括的两个第一计算单元的向量存储器之间,第二组间请求-反馈通道组合的第一请求通道和第一反馈通道设置在相邻的两个计算单元组分别包括的两个第二计算单元的向量存储器之间。
例如,如图3所示,计算单元CU0和CU1组成的计算单元组与计算单元CU2和CU3组成的计算单元组之间包括第一组间请求-反馈通道组合和第二组间请求-反馈通道组合,第一组间请求-反馈通道组合的第一请求通道req_ch0_2和第一反馈通道ret_ch2_0设置在两个第一计算单元CU0和CU2的向量存储器VM0和VM2之间,第二组间请求-反馈通道组合的第一请求通道req_ch3_1和第一反馈通道ret_ch1_3设置在两个第二计算单元CU1和CU3的向量存储器VM1和VM3之间。
例如,在本公开的一些实施例中,多个计算单元组中的各个第一计算单元之间的第一请求通道串联形成第一请求链路,多个计算单元组中的各个第二计算单元之间的第一请求通道串联形成第二请求链路,多个计算单元组中的各个第一计算单元之间的第一反馈通道串联形成第一反馈链路,多个计算单元组中的各个第二计算单元之间的第一反馈通道串联形成第二反馈链路。
例如,如图3所示,各个第一计算单元(CU0、CU2、……CU14)之间的第一请求通道(req_ch0_2、req_ch2_4、……req_ch12_14,一些第一请求通道在图3中未示出)串联形成第一请求链路,各个第二计算单元(CU1、CU3、……CU15)之间的第一请求通道(req_ch3_1、req_ch5_3、……req_ch15_13,一些第一请求通道在图3中未示出)串联形成第二请求链路,各个第一计算单元(CU0、CU2、……CU14)之间的第一反馈通道(ret_ch2_0、ret_ch4_2、……ret_ch14_12,一些第一反馈通道在图3中未示出)串联形成第一反馈链路,各个第二计算单元(CU1、CU3、……CU15)之间的第一反馈通道(ret_ch1_3、ret_ch3_5、……ret_ch13_15,一些第一反馈通道在图3中未示出)串联形成第二反馈链路。
例如,在本公开的一些实施例中,第一请求链路和第二请求链路为单向链路;第一反馈链路和第二反馈链路为单向链路。
例如,如图3所示,第一请求链路为方向为CU0->CU2->……->CU14的单向链路,第二请求链路为方向为CU15->CU13->……->CU1的单向链路;第一反馈链路为方向为CU14->CU12->……->CU0的单向链路,第二反馈链路为方向为CU1->CU3->……->CU15的单向链路。
需要说明的是,图3所示的请求链路和反馈链路的方向仅仅是一个示例,只要请求链路和反馈链路均为单向的且能实现所有计算单元的遍历即可,本公开对此不作限制。
例如,在本公开的一些实施例中,数据处理装置包括请求网络和反馈网络,请求网络包括多个计算单元组内各自的第二请求通道以及第一请求链路和第二请求链路,反馈网络包括多个计算单元组内各自的第二反馈通道以及第一反馈链路和第二反馈链路。
图4示出了本公开至少一个实施例提供的请求网络的结构示意图。
如图4所示,对应于图3的情形,请求网络包括多个计算单元组内各自的第二请求通道req_ch1_0、req_ch0_1、req_ch3_2、……req_ch15_14、req_ch14_15)以及第一请求链路(由第一请求通道req_ch0_2、req_ch2_4、……req_ch12_14组成的第一请求链路)和第二请求链路(由第一请求通道req_ch3_1、req_ch5_3、……req_ch15_13组成的第二请求链路)。
在计算单元组内部,请求网络为双向的,用以保证在较高的空间相关性下数据的高互通能力。
图5示出了本公开至少一个实施例提供的反馈网络的结构示意图。
如图5所示,对应于图3的情形,反馈网络包括多个计算单元组内各自的第二反馈通道ret_ch1_0、ret_ch0_1、ret_ch3_2、……ret_ch15_14、ret_ch14_15)以及第一反馈链路(由第一反馈通道ret_ch2_0、ret_ch4_2、……ret_ch14_12组成的第一反馈链路)和第二反馈链路(由第一反馈通道ret_ch1_3、ret_ch3_5、……ret_ch13_15组成的第二反馈链路)。
在本公开的上述实施例中,以网络的形式组织请求数据和反馈数据的传输,不需要进行总体的仲裁,有效缩短各个计算单元间数据传输的时延,提升了计算单元之间数据传输的效率。
例如,在本公开的一些实施例中,计算单元中的向量存储器包括向量存储器主体和向量存储器节点,其中,向量存储器主体用于接收命令队列和多个处理元件的激励并与向量存储器节点进行交互,向量存储器节点用于通过单元间请求-反馈通道组合或组间请求-反馈通道组合与相邻的计算单元中的向量存储器进行交互。
图6示出了本公开至少一个实施例提供的请求网络和反馈网络中的节点的结构示意图。
如图6所示,对于请求网络和反馈网络中的节点CUm,包括命令队列CQ、处理元件PE0和PE1以及向量存储器VMm。向量存储器VMm包括向量存储器主体VMMm和向量存储器节点VMm_node。
向量存储器主体VMMm与同一个计算单元中的命令队列CQ、处理元件PE0和PE1进行通信连接,例如,在处理元件PE0和向量存储器主体VMMm之间具有用于传输地址和数据的接口/通道PE0_VM_idx/data以及用于传输数据的接口/通道VM_PE0_data;在命令队列CQ和向量存储器主体VMMm之间具有用于传输命令的接口/通道CQ_VM_cmd以及用于传输响应信号的接口/通道VM_CQ_rddone。
向量存储器主体VMMm与向量存储器节点VMm_node进行通信连接,例如,在向量存储器主体VMMm与向量存储器节点VMm_node之间具有用于传输请求数据的接口/通道req_self、用于传输反馈数据的接口/通道ret_self、用于传输发送到处理元件的数据的接口/通道node_PE_data、用于将接收到的读请求转化为指令的接口/通道node_CQ_cmd、用于将接收到的读请求转化为地址/数据的接口/通道node_VMM_idx/data以及用于传输响应信号的接口/通道node_CQ_rddone。在接口/通道req_self和接口/通道ret_self进行数据传输之前,向量存储器主体VMMm与向量存储器节点VMm_node通过握手机制进行连接,接口/通道req_self_rts、接口/通道req_self_rtr、接口/通道ret_self_rts以及接口/通道ret_self_rtr用于传输握手机制的相关信号,关于握手机制将在下文进行说明,在此不再赘述。接口/通道credit用于传输信用机制的相关数据,信用机制的相关数据用于表征内部能够存储读请求的量,当接收到新的读请求,该数据的值减1。节点CUm的关联节点为CUn、CUk和CUj,由于相关信号直接连接到向量存储器,因此以向量存储器VMn、VMk和VMj代替CUn、CUk和CUj进行说明。VMn为与计算单元CUm在同一个计算单元组内的计算单元CUn的向量存储器,VMk和VMj为计算单元CUm的相邻的计算单元CUk和CUj的向量存储器。在向量存储器VMm和VMn之间包括两个单元间请求-反馈通道组合(其中一个单元间请求-反馈通道组合包括请求通道req_n_m和反馈通道ret_m_n,另一个单元间请求-反馈通道组合包括请求通道req_m_n和反馈通道ret_n_m)。向量存储器VMm和VMj以及VMm和VMk之间包括组间请求-反馈通道组合,VMm和VMj之间的组间请求-反馈通道组合包括请求通道req_m_j和反馈通道ret_j_m,VMm和VMk之间的组间请求-反馈通道组合包括请求通道req_k_m和反馈通道ret_m_k。
图7示出了本公开至少一个实施例提供的一种数据处理方法的示意性流程图。该数据处理方法例如应用于上述数据处理装置。例如,数据处理装置中的多个计算单元组包括第一计算单元组和第二计算单元组,使用“第一计算单元组”和“第二计算单元组”为了方便对于数据处理方法的描述,并非特指某两个计算单元组而是用于表示操作过程中所涉及的任意两个计算单元组。
如图7所示,该数据处理方法包括如下的步骤S801~S802。
步骤S801:第一计算单元组中的源计算单元的向量存储器通过至少一个第一传输通道将读请求传输到第二计算单元组中的目的计算单元的向量存储器。
步骤S802:第二计算单元组中的目的计算单元的向量存储器通过至少一个第一传输通道将被请求的数据传输到第一计算单元组中的源计算单元的向量存储器。
例如,当第一计算单元组中的源计算单元需要读取第二计算单元组中的目的计算单元的向量存储器存储的数据时,读请求通过至少一个第一传输通道传输到目的计算单元中,目的计算单元中的向量存储器通过至少一个第一传输通道将被请求的数据和完成指示信号传输得到源计算单元的向量存储器中,被请求的数据存储到源计算单元的对应的处理元件中,完成指示信号被命令队列接收以标定整个操作的完成。
图8示出了本公开至少一个实施例提供的另一种数据处理方法的示意性流程图。该数据处理方法例如应用于上述数据处理装置。例如,数据处理装置中的多个计算单元组包括第一计算单元组和第二计算单元组。同样地,“第一计算单元组”和“第二计算单元组”用于表示操作过程中所涉及的任意两个计算单元组。
如图8所示,该数据处理方法包括如下的步骤S901~S902。
步骤S901:第一计算单元组中的源计算单元的向量存储器通过请求网络将读请求传输到第二计算单元组中的目的计算单元的向量存储器。
关于请求网络的说明可以例如参见图4相关的描述。
步骤S902:第二计算单元组中的目的计算单元的向量存储器通过反馈网络将被请求的数据传输到第一计算单元组中的源计算单元的向量存储器。
关于反馈网络的说明可以例如参见图5相关的描述。
例如,如图3所示,在一个示例中,第一计算单元组为计算单元CU0和计算单元CU1组成的计算单元组,第二计算单元组为计算单元CU6和计算单元CU7组成的计算单元组,并且,源计算单元为计算单元CU0,目的计算单元为计算单元CU7,计算单元CU0对计算单元CU7进行读取操作,计算单元CU0的向量存储器VM0通过请求网络将读请求传输到目的计算单元CU7的向量存储器VM7,向量存储器VM7通过反馈网络将被请求的数据传输到向量存储器VM0中。
例如,在本公开的一些实施例中,如上所述,向量存储器包括向量存储器节点,该处理方法还可以包括:使用向量存储器节点通过单元间请求-反馈通道组合或组间请求-反馈通道组合与相邻的计算单元中的向量存储器进行交互。
例如,在本公开的一些实施例中,步骤S901可以包括步骤S911:在从第一计算单元组中的源计算单元到第二计算单元组中的目的计算单元的传输过程中,基于当前计算单元的标识和目的计算单元的标识,通过最短路径判断算法确定读请求的传输路径,传输路径中经过的计算单元被称为传输路径中的节点。
对于网络中一个节点到另一个节点的访问,存在多路径问题,在多个可能的路径中选择优选的路径。为了使访问路径的节点数最少,且减少对其它数据传输的影响,本公开的至少实施例中,提供了一种最短路径判断方法。对于请求网络和反馈网络中的每个节点,包括两个传输方向,一个方向是在计算单元组内进行传输(参考图3,可以视为左右(leftright)方向),一个方向是在计算单元组间进行传输(参考图3,可以视为上下(updown)方向),基于当前计算单元的标识Cur_id和目的计算单元的标识Tag_id,能够快速决定每个节点方向的选择。具体地,对于请求网络,方向选择的方案如下表1所示。
表1:请求网络的路径选择方案
其中,“updown”表示计算单元组间的传输方向,“leftright”表示计算单元组内的传输方向。CQ&VM表示当读请求到达目的计算单元,进入命令队列进行指令的解析,进入向量存储器进行地址和数据的处理。CQ&PE表示当被请求的数据到达源计算单元,进入命令队列中进行完成指示信号的标定,进入处理元件中进行数据的存储。在读请求的传输过程中,读请求携带有源计算单元的标识和目的计算单元的标识,目的计算单元的标识用于表示读请求需要到达的目标节点,源计算单元的标识用于表示发出读请求的原始节点。在读请求的传输过程中,目的计算单元的标识作为Tag_id,通过比较Cur_id和Tag_id确定读请求的传输方向,在被请求的数据的回传过程中,源计算单元的标识作为Tag_id,通过比较Cur_id和Tag_id确定被请求的数据的传输方向。
例如,如图3所示,在一个示例中,源计算单元为CU0,目的计算单元为CU7,计算单元CU0对计算单元CU7进行读取操作,请求网络中各节点的访问顺序为CU0->CU2->CU4->CU6->CU7,反馈网络中各节点的访问顺序为CU7->CU6->CU4->CU2->CU0。
例如,在本公开的一些实施例中,通过最短路径判断算法确定读请求的传输路径,可以包括:在当前计算单元的标识等于目的计算单元的标识的情况下,对于当前节点:判断是否有足够的处理资源对读请求进行处理,在有足够的处理资源的情况下,将读请求按照优先级的顺序存储进入用于处理操作的缓存中,并通知上一个节点进行读请求对应的信息的输入,按照顺序对读请求进行解析并处理,或者在没有足够的处理资源的情况下,将具有第一优先级的读请求按顺序进行处理,对于具有第二优先级的读请求,通知上一个节点需要等待。例如,第一优先级高于第二优先级。
例如,在本公开的一些实施例中,判断是否有足够的处理资源对读请求进行处理可以包括:判断当前节点处理读请求剩余的资源情况以及当前节点中的向量存储器中是否存在足够的资源。
例如,在本公开的一些实施例中,最短路径判断方法还可以包括:在当前计算单元的标识不等于目的计算单元的标识的情况下,对于当前节点:判断是否有足够的转发资源对读请求进行转发,在有足够的转发资源的情况下,将读请求按照优先级的顺序存储进入用于转发操作的缓存中,并通知上一个节点进行读请求对应的信息的输入,按照顺序向下一个节点转发读请求,或者在没有足够的转发资源的情况下,将具有第三优先级的读请求存储进入用于转发操作的缓存中,并通知具有第三优先级的读请求对应的节点输出读请求,对于具有第四优先级的读请求,通知具有第四优先级的读请求对应的节点需要等待。例如,第三优先级高于第四优先级。
例如,在本公开的一些实施例中,判断是否有足够的转发资源对读请求进行转发可以包括:判断当前节点转发读请求的资源情况以及下一个节点能否接收读请求。
例如,本公开实施例提供的数据处理方法还可以包括:在传输读请求的过程中,相邻节点之间通过握手机制建立连接,并通过节点之间的单元间请求-反馈通道组合或组间请求-反馈通道组合进行指令或数据的传输。
例如,在本公开的一些实施例中,相邻节点包括主节点和从节点,握手机制:主节点准备好数据并将发送就绪信号使能,并输出第一数据给从节点;从节点判断能否接收第一数据,在能够接收第一数据的情况下,从节点将接收就绪信号使能并接收第一数据。这里,主节点为发送数据的节点,从节点则是接收数据的节点,每个节点在不同的事务中可能作为主节点,也可能作为从节点。
例如,在本公开的一些实施例中,握手机制还包括:在主节点检测到接收就绪信号使能的情况下,维持将发送就绪信号使能,输出位于第一数据之后的第二数据给从节点;或者在主节点没有检测到接收就绪信号使能的情况下,主节点保持现状。
例如,如图6所示,对于相邻的节点VMm和VMk,节点VMm作为从节点,节点VMk作为主节点;主节点VMk准备好数据并将发送就绪信号使能(req_k_m_rts=1),并输出第一数据给从节点VMm;从节点VMm判断能否接收第一数据,在能够接收第一数据的情况下,从节点将接收就绪信号使能(req_m_k_rtr=1)并接收第一数据。在主节点VMk检测到接收就绪信号使能(req_m_k_rtr=1)的情况下,维持将发送就绪信号使能(req_k_m_rts=1),输出位于第一数据之后的第二数据给从节点VMm;或者在主节点VMk没有检测到接收就绪信号使能(req_m_k_rtr=0)的情况下,主节点VMk保持现状。
需要说明的是,本公开的实施例对第一数据和第二数据不做限制,例如,第一数据为指令,第二数据为地址,或者第一数据和第二数据以数据包的形式进行传输。
下面结合图6和表1具体说明本公开至少一实施例的示例提供的数据处理方法的工作流程。该具体的工作流程如下,包括步骤S1~S7:
步骤S1:当节点CUm接收到上一节点的请求时,通过表1所示的最短路径判断方案基于目的计算单元的标识Tag_id和当前计算单元的标识Cur_id决定是否已经到达了目标节点,以及在未到达目标节点的情况下确定传输的方向,当传输的方向为上下(updown)或者左右(leftright),则跳转到步骤S2;当已经到达了目标节点,则跳转到步骤S6。
步骤S2:在上下(updown)和左右(leftright)两个方向上各自进行考虑:1)接收到的读请求的使能情况,2)当前节点转发读请求的资源情况,3)下一个节点能否接收读请求。如果资源足够,则跳转到步骤S3;如果资源不够,则跳转到步骤S4。
步骤S3:当资源足够时,将读请求按照优先级依次存储进入用于转发操作的缓存,以接收就绪信号使能的方式,通知上一个节点进行读请求对应的信息的输入,按照顺序向下一个节点转发读请求。
例如,用于转发操作的缓存为先入先出(FIFO)队列,通过信用(credit)机制进行管理。
步骤S4:当资源不够时,按照优先级顺序,将高优先级的请求信息存储进入用于转发操作的缓存中,并以接收就绪信号使能的方式,通知高优先级请求的上一个节点输出读请求。对剩余的低优先级的读请求,以接收就绪信号不使能的方式,通知对应的节点需要进行等待。
步骤S5:当读请求已经到达目的计算单元时,同时考虑:1)接收到的读请求的使能情况,2)当前节点处理读请求剩余的资源情况,3)当前节点中的向量存储器中是否存在足够的资源。如果资源足够,则跳转到步骤S6;如果资源不足,则跳转到步骤S7。
需要说明的是,如果读请求已经到达目的计算单元,则需存入用于处理操作的缓存中,并在合适的时刻转化为指令node_CQ_cmd和地址/数据node_VMM_idx/data的形式,输送到目的计算单元的向量存储器中。向量存储器处理每一条指令,都需要一定的时间。可能自身所在的节点的操作就使得该向量存储器满负荷工作了。此时向量存储器无法接收新的node_CQ_cmd和node_VMM_idx/data,因此就需要对向量存储器中的资源情况进行判断,判断的依据就是接收就绪信号是否使能。
步骤S6:将读请求按照优先级的顺序存储进入用于处理操作的缓存中,并以接收就绪信号使能的方式,通知上一个节点进行读请求对应的信息的输入,按照顺序对读请求进行解析并处理。
步骤S7:将具有高优先级的读请求按照步骤S6的方式进行处理。对具有低优先级的读请求,以接收就绪信号不使能的方式,通知对应的节点需要进行等待。
上述数据处理方法的技术效果与图3所示的数据处理装置的技术效果相同,在此不再赘述。
根据本公开的至少一个实施例还提供了一种电子装置,该电子装置包括上述数据处理装置。例如,该数据处理装置为并行处理器,例如通用图形处理器(GPGPU)、数据处理器、张量处理器。例如,该电子装置还可以包括例如中央处理器(CPU),该中央处理器与该数据处理装置通过***总线组合构成异构计算***,例如,该总线可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
例如,在本公开的至少一个实施例中,该电子装置还可以包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等输入装置;包括诸如液晶显示器、扬声器、振动器等输出装置;包括例如磁带、硬盘(HDD或SDD)等存储装置;例如还可以包括诸如LAN卡、调制解调器等的网络接口卡等通信装置。通信装置可以允许电子装置与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。根据需要驱动器连接至I/O接口。可拆卸存储介质,诸如磁盘、光盘、磁光盘、半导体存储器等,根据需要安装在该驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储装置。
例如,该电子装置还可以进一步包括外设接口等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信***(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。
该电子装置例如可以是片上***(SOC)或者包括该SOC的设备,例如,可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪、家用电器、通信基站、工业控制器、服务器等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (22)
1.一种数据处理装置,包括多个计算单元,其中,所述多个计算单元被划分为多个计算单元组,每个所述计算单元组包括至少两个计算单元,每个所述计算单元包括向量存储器,
彼此相邻的两个计算单元组通过对应的至少一个第一传输通道耦接以将所述多个计算单元组串联,且在所述彼此相邻的两个计算单元组中的不同计算单元包括的向量存储器之间传输信息。
2.根据权利要求1所述的数据处理装置,其中,每个所述计算单元组包括的所述至少两个计算单元通过对应的至少一个第二传输通道耦接,以在所述至少两个计算单元分别包括的向量存储器之间传输信息。
3.根据权利要求2所述的数据处理装置,其中,所述至少一个第二传输通道包括至少一个单元间请求-反馈通道组合,
所述单元间请求-反馈通道组合包括从起始计算单元到指向计算单元的第二请求通道和从所述指向计算单元到所述起始计算单元的第二反馈通道。
4.根据权利要求3所述的数据处理装置,其中,每个所述计算单元组包括的所述至少两个计算单元包括第一计算单元和第二计算单元,
所述至少一个第二传输通道包括以所述第一计算单元作为起始计算单元的第一单元间请求-反馈通道组合和以所述第二计算单元作为起始计算单元的第二单元间请求-反馈通道组合。
5.根据权利要求3所述的数据处理装置,其中,所述至少一个第一传输通道包括至少一个组间请求-反馈通道组合,
所述至少一个组间请求-反馈通道组合每个包括从起始计算单元组到指向计算单元组的第一请求通道和从所述指向计算单元组到所述起始计算单元组的第一反馈通道。
6.根据权利要求5所述的数据处理装置,其中,每个所述计算单元组包括的所述至少两个计算单元包括第一计算单元和第二计算单元,
所述至少一个组间请求-反馈通道组合包括第一组间请求-反馈通道组合和第二组间请求-反馈通道组合,
所述第一组间请求-反馈通道组合的第一请求通道和第一反馈通道设置在所述相邻的两个计算单元组分别包括的两个第一计算单元的向量存储器之间,
所述第二组间请求-反馈通道组合的第一请求通道和第一反馈通道设置在所述相邻的两个计算单元组分别包括的两个第二计算单元的向量存储器之间。
7.根据权利要求6所述的数据处理装置,其中,所述多个计算单元组中的各个第一计算单元之间的第一请求通道串联形成第一请求链路,
所述多个计算单元组中的各个第二计算单元之间的第一请求通道串联形成第二请求链路,
所述多个计算单元组中的各个第一计算单元之间的第一反馈通道串联形成第一反馈链路,
所述多个计算单元组中的各个第二计算单元之间的第一反馈通道串联形成第二反馈链路。
8.根据权利要求7所述的数据处理装置,其中,所述第一请求链路和所述第二请求链路为单向链路;
所述第一反馈链路和所述第二反馈链路为单向链路。
9.根据权利要求7或8所述的数据处理装置,其中,所述数据处理装置包括请求网络和反馈网络,
所述请求网络包括所述多个计算单元组内各自的第二请求通道以及所述第一请求链路和所述第二请求链路,
所述反馈网络包括所述多个计算单元组内各自的第二反馈通道以及所述第一反馈链路和所述第二反馈链路。
10.根据权利要求5或6所述的数据处理装置,其中,所述多个计算单元每个还包括多个处理元件和命令队列,
所述向量存储器包括向量存储器主体和向量存储器节点,
所述向量存储器主体用于接收所述命令队列和所述多个处理元件的激励并与所述向量存储器节点进行交互,
所述向量存储器节点用于通过所述单元间请求-反馈通道组合或所述组间请求-反馈通道组合与相邻的计算单元中的向量存储器进行交互。
11.一种根据权利要求1所述的数据处理装置的数据处理方法,其中,所述多个计算单元组包括第一计算单元组和第二计算单元组,所述数据处理方法包括:
所述第一计算单元组中的源计算单元的向量存储器通过所述至少一个第一传输通道将读请求传输到所述第二计算单元组中的目的计算单元的向量存储器;以及
所述第二计算单元组中的所述目的计算单元的向量存储器通过所述至少一个第一传输通道将被请求的数据传输到所述第一计算单元组中的所述源计算单元的向量存储器。
12.一种根据权利要求9所述的数据处理装置的数据处理方法,其中,所述多个计算单元组包括第一计算单元组和第二计算单元组,所述数据处理方法包括:
所述第一计算单元组中的源计算单元的向量存储器通过所述请求网络将读请求传输到所述第二计算单元组中的目的计算单元的向量存储器;
所述第二计算单元组中的所述目的计算单元的向量存储器通过所述反馈网络将被请求的数据传输到所述第一计算单元组中的所述源计算单元的向量存储器。
13.根据权利要求12所述的数据处理方法,其中,所述向量存储器包括向量存储器节点,
所述处理方法还包括:
使用所述向量存储器节点通过所述单元间请求-反馈通道组合或所述组间请求-反馈通道组合与相邻的计算单元中的向量存储器进行交互。
14.根据权利要求12所述的数据处理方法,其中,所述第一计算单元组中的所述源计算单元的向量存储器通过所述请求网络将所述读请求传输到所述第二计算单元组中的所述目的计算单元的向量存储器,包括:
在从所述第一计算单元组中的所述源计算单元到所述第二计算单元组中的所述目的计算单元的传输过程中,基于当前计算单元的标识和所述目的计算单元的标识,通过最短路径判断算法确定所述读请求的传输路径,其中,所述传输路径中经过的计算单元被称为所述传输路径中的节点。
15.根据权利要求14所述的数据处理方法,其中,通过所述最短路径判断算法确定所述读请求的传输路径,包括:
在所述当前计算单元的标识等于所述目的计算单元的标识的情况下,对于所述当前节点:
判断是否有足够的处理资源对所述读请求进行处理,
在有足够的处理资源的情况下,将所述读请求按照优先级的顺序存储进入用于处理操作的缓存中,并通知上一个节点进行所述读请求对应的信息的输入,按照顺序对所述读请求进行解析并处理,或者
在没有足够的处理资源的情况下,将具有第一优先级的读请求按顺序进行处理,对于具有第二优先级的读请求,通知上一个节点需要等待,其中,所述第一优先级高于所述第二优先级。
16.根据权利要求15所述的数据处理方法,其中,判断是否有足够的处理资源对所述读请求进行处理,包括:
判断所述当前节点处理所述读请求剩余的资源情况以及所述当前节点中的向量存储器中是否存在足够的资源。
17.根据权利要求15所述的数据处理方法,其中,通过所述最短路径判断算法确定所述读请求的传输路径,还包括:
在所述当前计算单元的标识不等于所述目的计算单元的标识的情况下,对于所述当前节点:
判断是否有足够的转发资源对所述读请求进行转发,
在有足够的转发资源的情况下,将所述读请求按照优先级的顺序存储进入用于转发操作的缓存中,并通知上一个节点进行所述读请求对应的信息的输入,按照顺序向下一个节点转发所述读请求,或者
在没有足够的转发资源的情况下,将具有第三优先级的读请求存储进入所述用于转发操作的缓存中,并通知所述具有第三优先级的读请求对应的节点输出所述读请求,对于具有第四优先级的读请求,通知所述具有第四优先级的读请求对应的节点需要等待,其中,所述第三优先级高于所述第四优先级。
18.根据权利要求17所述的数据处理方法,其中,判断是否有足够的转发资源对所述读请求进行转发,包括:
判断所述当前节点转发所述读请求的资源情况以及下一个节点能否接收所述读请求。
19.根据权利要求12至18中的任一项所述的数据处理方法,还包括:
在传输所述读请求的过程中,相邻节点之间通过握手机制建立连接,并通过所述节点之间的所述单元间请求-反馈通道组合或所述组间请求-反馈通道组合进行指令或数据的传输。
20.根据权利要求19所述的数据处理方法,其中,所述相邻节点包括主节点和从节点,
所述握手机制包括:
所述主节点准备好数据并将发送就绪信号使能,并输出第一数据给所述从节点;
所述从节点判断能否接收所述第一数据,在能够接收所述第一数据的情况下,所述从节点将接收就绪信号使能并接收所述第一数据。
21.根据权利要求20所述的数据处理方法,其中,所述握手机制还包括:
在所述主节点检测到所述接收就绪信号使能的情况下,维持将所述发送就绪信号使能,输出位于所述第一数据之后的第二数据给所述从节点;或者
在所述主节点没有检测到所述接收就绪信号使能的情况下,所述主节点保持现状。
22.一种电子装置,包括:
根据权利要求1至10中的任一项所述的数据处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211547138.4A CN115934622A (zh) | 2022-12-05 | 2022-12-05 | 数据处理装置、数据处理方法以及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211547138.4A CN115934622A (zh) | 2022-12-05 | 2022-12-05 | 数据处理装置、数据处理方法以及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934622A true CN115934622A (zh) | 2023-04-07 |
Family
ID=86555318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211547138.4A Pending CN115934622A (zh) | 2022-12-05 | 2022-12-05 | 数据处理装置、数据处理方法以及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934622A (zh) |
-
2022
- 2022-12-05 CN CN202211547138.4A patent/CN115934622A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9860197B2 (en) | Automatic buffer sizing for optimal network-on-chip design | |
US9009648B2 (en) | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification | |
US9769077B2 (en) | QoS in a system with end-to-end flow control and QoS aware buffer allocation | |
CN108628684B (zh) | 一种基于dpdk的报文处理方法及计算机设备 | |
US20190327190A1 (en) | Technologies for scalable packet reception and transmission | |
US20130219130A1 (en) | Method, apparatus, and computer program product for inter-core communication in multi-core processors | |
CN104461979A (zh) | 基于环形总线的多核片上通信网络实现方法 | |
CN112711550A (zh) | Dma自动配置模块和片上***soc | |
CN112506676A (zh) | 进程间的数据传输方法、计算机设备和存储介质 | |
US10958597B2 (en) | General purpose ring buffer handling in a network controller | |
CN108541365B (zh) | 用于交换机中拥塞信息的分发的设备和方法 | |
CN115934622A (zh) | 数据处理装置、数据处理方法以及电子装置 | |
US10284501B2 (en) | Technologies for multi-core wireless network data transmission | |
JP6146306B2 (ja) | I/oデバイス制御システムおよびi/oデバイス制御システムの制御方法 | |
CN109643301B (zh) | 多核芯片数据总线布线结构和数据发送的方法 | |
CN102122367A (zh) | 一种大容量sim卡***架构 | |
CN116361217A (zh) | 数据处理装置、数据处理方法以及电子装置 | |
CN115981884A (zh) | 数据处理装置及其操作方法以及电子装置 | |
CN115017072B (zh) | 突发长度拆分方法、装置、芯片***和电子设备 | |
US12001370B2 (en) | Multi-node memory address space for PCIe devices | |
US9336172B2 (en) | Parallel computer system, data transfer device, and method for controlling parallel computer system for performing arbitration | |
US11782834B2 (en) | System and method for round robin arbiters in a network-on-chip (NoC) | |
WO2020087249A1 (zh) | 多内核芯片结构 | |
CN111124987B (zh) | 一种基于pcie的数据传输控制***和方法 | |
CN110166373B (zh) | 源物理机向目的物理机发数据的方法、装置、介质和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |