掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理装置、方法、计算机设备及存储介质

文献发布时间:2023-06-19 11:26:00


一种数据处理装置、方法、计算机设备及存储介质

技术领域

本公开涉及计算机技术领域,具体而言,涉及一种数据处理装置、方法、计算机设备及存储介质。

背景技术

图像处理算法在图像识别、目标检测等不同领域应用广泛,通常采用人工智能(Artificial Intelligence,AI)加速器硬件架构完成图像处理算法的实现。现在常用的AI加速器硬件架构主要包括存储单元、计算单元、控制单元等,其中核心的计算单元一般由二维PE阵列(Processing Engine)和寄存器阵列(local register file)构成;存储单元可以由不同的分级缓存组成,包括双倍速率同步动态随机存储器(Double Data Rate,DDR)、静态随机存取存储器(Static Random Access Memory,SRAM)、寄存器、后关系型数据库cache等存储空间。输入数据流在不同的存储空间进行缓存、转移,并进入PE阵列对应的寄存器阵列中,经由PE阵列从寄存器阵列中读取后,进行算数运算(或逻辑运算),最后将所得结果写回相应的存储空间。

当前控制输入数据存储至寄存器阵列的方式存在数据处理效率低的问题。

发明内容

本公开实施例至少提供一种数据处理装置、方法、计算机设备及存储介质。

第一方面,本公开实施例提供了一种数据处理装置,包括:第一存储单元和计算单元;所述计算单元包括处理引擎PE阵列;多个第一存储单元分别与所述PE阵列中的PE连接;所述PE,用于对所连接第一存储单元进行读/写访问;所述多个第一存储单元,用于存储所连接PE进行读/写访问过程中传输的数据。

这样,PE阵列中与不同第一存储单元连接的不同PE,能够并行对不同的第一存储单元进行访问,提升了从第一存储单元中读取数据的效率,且提升了将数据存储至第一存储单元的效率,从而提升了数据处理效率。

一种可选的实施方式中,所述多个第一存储单元,用于分别与所述PE阵列中不同的PE组连接。

一种可选的实施方式中,每个第一存储单元与一个PE组中的PE连接;不同PE分别属于不同PE组。

一种可选的实施方式中,所述一个PE组,包括所述PE阵列中具有物理连接关系的多个PE,且多个PE在硬件布局上位于同一行,或者位于同半行,或者位于同一块。

这样,为PE阵列中的PE分配对应的第一存储单元,可以增加数据传输通道的数量,以使PE在对第一存储单元进行读/写访问时,可以有更多数据的传输,以提高数据传输的效率;同时,还可以增加数据处理装置的灵活性,以适应不同的数据处理要求。

一种可选的实施方式中,所述PE,用于在第一处理周期,对所连接的第一存储单元进行读访问,得到所述PE对应的第一数据;和/或在第二处理周期,对所连接的第一存储单元进行写访问,将所述PE生成的第二数据存储至所连接的第一存储单元。

一种可选的实施方式中,连接了同一第一存储单元的不同PE在不同的处理周期对该同一第一存储单元进行读/写访问;和/或,不同第一存储单元所连接的PE组,在同一处理周期分别存在一个PE对所连接第一存储单元进行读/写访问。

一种可选的实施方式中,不同第一存储单元所连接的各PE组中,具有相同相对位置的PE在同一处理周期对所连接第一存储单元进行读/写访问。

这样,能够实现多个PE同步对不同的第一存储单元进行读/写访问,提升数据传输的效率。

一种可选的实施方式中,还包括:控制单元;所述控制单元,用于基于数据处理指令,生成第一控制信号,并向所述PE传递所述第一控制信号;所述PE,用于响应于接收到所述控制单元传递的第一控制信号,从与所述PE连接的第一存储单元中读取所述PE待处理的第一数据。

一种可选的实施方式中,所述控制单元,还用于基于所述数据处理指令,生成第二控制信号,并向所述PE传递所述第二控制信号;所述PE,用于响应于接收到所述控制单元传递的第二控制信号,将所述PE生成的数据写入与所述PE连接的第一存储单元中。

一种可选的实施方式中,还包括:数据调度器;所述控制单元,还用于基于所述数据处理指令,生成第三控制信号,并向所述数据调度器传递所述第三控制信号;所述数据调度器,用于基于所述第三控制信号,对所述第一存储单元进行写访问。

这样,利用数据调度器作为数据传输的媒介,可以控制数据量较大的数据在传输时进行高效有序的传输,避免在传输时发生错误。

一种可选的实施方式中,还包括第二存储单元;所述数据调度器,用于从所述第二存储单元中读取各第一存储单元对应的待处理数据,并基于所述第三控制信号中携带的第一数据存储地址,将各第一存储单元对应的待处理数据存储至对应第一存储单元中;其中,所述各第一存储单元对应的待处理数据包括:所述各第一存储单元连接的PE需要读取的数据。

一种可选的实施方式中,所述控制单元,还用于基于所述数据处理指令,生成第四控制信号,并向所述数据调度器传递所述第四控制信号;所述数据调度器,还用于基于所述第四控制信号,对所述第一存储单元进行读访问。

一种可选的实施方式中,所述数据调度器,用于基于所述第四控制信号,从所述多个第一存储单元中读取结果数据,并将所述结果数据存储至第二存储单元中;其中,所述结果数据包括:所述第一存储单元连接的PE产生的、并存储至所述第一存储单元中的数据。

第二方面,本公开实施例还提供一种数据处理方法,应用于数据处理装置,所述数据处理装置包括:第一存储单元和计算单元;所述计算单元包括处理引擎PE阵列;多个第一存储单元分别与所述PE阵列中的PE连接;所述数据处理方法包括:所述PE对所连接第一存储单元进行读/写访问;所述多个第一存储单元存储所连接PE进行读/写访问过程中传输的数据。

一种可选的实施方式中,所述多个第一存储单元分别与所述PE阵列中不同的PE组连接。

一种可选的实施方式中,每个第一存储单元与一个PE组中的PE连接;不同PE分别属于不同PE组。

一种可选的实施方式中,所述一个PE组,包括所述PE阵列中具有物理连接关系的多个PE,且多个PE在硬件布局上位于同一行,或者位于同半行,或者位于同一块。

一种可选的实施方式中,所述PE对所连接第一存储单元进行读/写访问,包括:所述PE在第一处理周期,对所连接的第一存储单元进行读访问,得到所述PE对应的第一数据;和/或在第二处理周期,对所连接的第一存储单元进行写访问,将所述PE生成的第二数据存储至所连接的第一存储单元。

一种可选的实施方式中,所述PE对所连接第一存储单元进行读/写访问,包括:连接了同一第一存储单元的不同PE在不同的处理周期对该同一第一存储单元进行读/写访问;和/或,不同第一存储单元所连接的PE组,在同一处理周期分别存在一个PE对所连接第一存储单元进行读/写访问。

一种可选的实施方式中,所述不同第一存储单元所连接的PE组,在同一处理周期分别存在一个PE对所连接第一存储单元进行读/写访问,包括:不同第一存储单元所连接的各PE组中,具有相同相对位置的PE在同一处理周期对所连接第一存储单元进行读/写访问。

一种可选的实施方式中,所述数据处理装置还包括控制单元;所述数据处理方法还包括:所述控制单元基于数据处理指令,生成第一控制信号,并向所述PE传递所述第一控制信号;所述PE响应于接收到所述控制单元传递的第一控制信号,从与所述PE连接的第一存储单元中读取所述PE待处理的第一数据。

一种可选的实施方式中,还包括:所述控制单元基于所述数据处理指令,生成第二控制信号,并向所述PE传递所述第二控制信号;所述PE响应于接收到所述控制单元传递的第二控制信号,将所述PE生成的第二数据写入与所述PE连接的第一存储单元中。

一种可选的实施方式中,所述数据处理装置还包括数据调度器;所述数据处理方法还包括:所述控制单元基于所述数据处理指令,生成第三控制信号,并向所述数据调度器传递所述第三控制信号;所述数据调度器基于所述第三控制信号,对所述第一存储单元进行写访问。

一种可选的实施方式中,所述数据处理装置还包括第二存储单元;所述数据调度器从所述第二存储单元中读取各第一存储单元对应的待处理数据,并基于所述第三控制信号中携带的第一数据存储地址,将各第一存储单元对应的待处理数据存储至对应第一存储单元中;其中,所述各第一存储单元对应的待处理数据包括:所述各第一存储单元连接的PE需要读取的数据。

一种可选的实施方式中,还包括:所述控制单元基于所述数据处理指令,生成第四控制信号,并向所述数据调度器传递所述第四控制信号;所述数据调度器基于所述第四控制信号,对所述第一存储单元进行读访问。

一种可选的实施方式中,所述数据调度器基于所述第四控制信号,对所述第一存储单元进行读访问,包括:所述数据调度器基于所述第四控制信号,从所述多个第一存储单元中读取结果数据,并将所述结果数据存储至第二存储单元中;其中,所述结果数据包括:所述第一存储单元连接的PE产生的、并存储至所述第一存储单元中的数据。

第三方面,本公开可选实现方式还提供一种计算机设备,包括:指令存储器和本公开第一方面提供的数据处理装置。

第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。

关于上述数据处理方法、计算机设备、及计算机可读存储介质的效果描述参见上述数据处理装置的说明,这里不再赘述。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种数据处理装置的示意图;

图2示出了本公开实施例所提供的一种PE阵列的示意图;

图3示出了本公开实施例所提供的一种PE内部结构的示意图;

图4a示出了本公开实施例所提供的一种第一存储单元与PE阵列的连接方式的示意图;

图4b示出了本公开实施例所提供的另一种第一存储单元与PE阵列的连接方式的示意图;

图5示出了本公开实施例所提供的一种数据处理装置在进行数据处理时的示意图。

图6示出了本公开实施例所提供的一种数据处理方法的流程图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

经研究发现,在利用AI加速器硬件结构对待处理的图像数据进行处理时,通常需要将待处理的图像数据从外部存储器传输至PE阵列中的PE所包括的寄存器中,以使PE阵列中各PE中的计算单元能够从寄存器中读取对应待处理的图像数据并进行处理,而由不同PE包括的寄存器构成的寄存器阵列共享相同的总线,且总线的带宽有限,为了避免数据在总线中传输时的数据冲突,各个寄存器需要的数据会逐一从外部存储器进入到对应的寄存器中,这就导致了在将待处理的图像传输至寄存器阵列的过程中需要耗费大量的时间,造成数据处理的效率较低。

另外,PE阵列将待处理的图像数据处理后,会生成结果数据;所生成的结果数据需要存储至外部存储器中;此时,也需要利用总线将PE阵列中的不同PE所产生的结果数据逐一传输至外部存储器。这导致了在将结果数据存储至外部存储器的过程中也需要耗费较多的时间,导致传输数据的效率降低,同样造成数据处理的效率较低。

基于上述研究,本公开提供了一种数据处理装置,在数据处理装置中,包括多个第一存储单元,不同的第一存储单元分别和PE阵列中的不同PE连接,PE阵列中的每个PE能够对与其连接的第一存储单元进行读/写访问,进而,PE阵列中与不同第一存储单元连接的不同PE,能够并行对不同的第一存储单元进行访问,提升了从第一存储单元中读取数据的效率,且提升了将数据存储至第一存储单元的效率,从而提升了数据处理效率。

针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

为便于对本实施例进行理解,首先对本公开实施例提供的一种数据处理装置进行详细介绍。

参见图1所示,为本公开实施例所提供的一种数据处理装置的示意图,装置包括:第一存储单元(图中示出了多个第一存储单元,包括第一存储单元0~第一存储单元3)和计算单元;计算单元包括处理引擎PE阵列;多个第一存储单元分别与PE阵列中的PE连接(图中示出了多个PE,包括PE0~PE15);其中,

PE,用于对所连接第一存储单元进行读/写访问;

多个第一存储单元,用于存储所连接PE进行读/写访问过程中传输的数据。

示例性的,计算单元中包括至少一个PE阵列;其中,PE阵列中的任一PE与其他PE之间的物理连接关系如图2所示,多个PE共同形成一个2D(dimension)环面网络,PE可以与其在物理上连接的包括处于上、下、左、右位置的不同PE相连接。

在PE阵列中包括具体完成相关运算任务的PE22、以及位于PE阵列边缘位置的PE21,为便于区分在图2中将位于PE阵列边缘位置的PE21标记为halo。其中,PE22可以完成对数据的乘加(multiply-accumulate,MAC)等运算操作;PE21形成在PE阵列外围的外围环状阵列,由于在PE阵列中的PE22对数据进行处理时,可能会发生数据在不同PE之间的移动(shift),则在外围环状阵列中的PE21可以保证数据在PE阵列内部的不同PE之间移动时不会发生丢失。

另外,参见图3所示,为本公开实施例提供的一种PE内部结构的示意图。在该示例中,包括一个具体完成相关运算任务的PE22,以及与其连接的一个位于PE阵列边缘位置的PE21。在PE22中,包括内存访问模块33,表示为M1;算术逻辑单元34(Arithmetic and LogicUnit,ALU),表示为ALU1;内部寄存器35,表示为R0_1;以及移位寄存器堆36,其中:

内存访问模块M1,用于对与PE22相连接的第一内存单元进行读/写访问,内存访问模块M1在对第一内存单元进行读访问时,可以将从第一内存单元中获取的数据传输给内部寄存器R0_1或者ALU1,以等待获取的数据被PE22中的ALU1处理;或者,传输至PE22对应的移位寄存器堆中,以使获取的数据传输至与PE22连接的PE21中;或者,在对第一内存单元进行写访问时,可以将ALU1计算得到的结果运算数据写入对应的第一内存单元。

算术逻辑单元ALU1,用于将接收到的数据进行数据处理。由于在对数据进行数据处理时,可能存在多个中间计算步骤,因此还可以将得到的中间运算数据传输至PE中的内部寄存器,并在下一次计算中调用内部寄存器中的中间运算数据,以进行进一步的处理。在得到结果运算数据后,可以依据实际的数据处理指令传输至内存访问模块M1等待输出;或者,还可以将结果运算数据传输至PE22对应的移位寄存器堆中,等待传输至与PE22连接的PE21中。

此处,对于PE21,由于PE21不承担数据运算的功能,因此内部可以不包含ALU,以降低设备要求,从而降低设备成本;或者存在ALU,但ALU并不实际进行相关的数据运算,以降低设备集成的复杂度。在图3中,以虚线表示了在PE21中在存在ALU2时,可能存在的与PE21中ALU1相似的连接关系。

内部寄存器R0_1,用于接收并存储M1从PE22相连接的第一内存单元中读取的数据;或者与ALU1连接,存储产生的中间运算数据,并将中间运算数据传输至ALU1,以使ALU1得到结果运算数据,并存储结果运算数据;或者将结果运算数据传输至M1中。

此处,对于PE21,由于PE21可以仅完成数据在多个PE之间传输的功能,或者仅接收第一存储单元中传输的数据,因此内部可以不包含内部寄存器,以降低设备要求,从而降低设备成本;或者存在内部寄存器,但并不完成存储的相关任务,以降低设备集成的复杂度。在图3中,以虚线表示了在PE21中存在内部寄存器R0_2时,可能存在的与PE21中内部寄存器R0_1相似的连接关系。

移位寄存器堆,用于使PE获取到的数据传输至与PE连接的其他PE中。在图3中,PE22对应的移位寄存器堆36可以与其在上、下、左、右四个方向存在连接关系的PE对应的移位寄存器堆在电路连接,移位寄存器堆对应的存在4个移位寄存器,包括R1、R2、R3、R4;同样的,在PE21中,也存在移位寄存器堆37,包括R1’、R2’、R3’、R4’。数据从PE22传输至PE21时,可以通过在移位寄存器堆36中与移位寄存器堆37具有连接关系的移位寄存器实现,例如PE22中的移位寄存器R4与PE21中的移位寄存器R4’具有连接关系时,PE22可以在将数据传输至R4后,由PE21对应的R4’接收此数据,以使PE21接收此数据。

此处,其他PE的结构与上述PE的内部结构相似,在此只举例说明,不再赘述。

对于PE阵列中的不同PE,可以分别与不同的第一存储单元连接,或者与相同的第一存储单元连接。具有连接关系的PE和第一存储单元可以进行数据上传输,PE可以对第一存储单元中的数据进行读取,并将处理后的数据传输至第一存储单元。

对于各个第一存储单元,可以连接对应的多个PE,因此第一存储单元可以包含对应PE数量的多个存储单元,用以对应的存放连接的多个PE中每个PE读/写时的数据。

具体地,在确定多个第一存储单元和PE阵列中的多个PE进行连接关系时,例如可以先对多个PE进行分组,并为分组后的每一组PE确定一个对应的第一存储单元。在对多个PE进行分组时,可以将具有物理连接关系的多个PE作为一个PE组,且多个PE在硬件布局上位于同一行,或者位于同半行,或者位于同一块。

示例性的,在一种可能的实施方式中,可以将一行PE作为一个PE组,参见图4a所示,其示出了一种第一存储单元与PE阵列的连接方式的示意图。在图4a中,将第一行PE作为一个PE组(PE group),表示为G0、将第二行作为一个PE组,表示为G1,以此类推,直至为第n行划分一个PE组,表示为Gn。并为PE组G0分配对应的第一存储单元0、为PE组G1分配对应的第一存储单元1,以此类推,直至为PE组Gn分配对应的第一存储单元n。

在另一种可能的实施方式中,参见图4b所示,其示出了另一种第一存储单元与PE阵列的连接方式的示意图。在图4b中,将两行PE作为一个PE组,可以将第一行和第二行的PE作为一个PE组,表示为G0,并将第三行和第四行的PE作为一个PE组,表示为G1,以此类推,可以将PE阵列中多行PE划分为n个不同的PE组,也即为PE阵列划分n个PE组,然后再为此n个不同的PE组分配对应的n个第一存储单元,例如可以包括第一存储单元0~第一存储单元n。

特殊的,还可以将PE阵列中的每个PE作为一个PE组,并为每个PE分配对应的第一存储单元,也即PE阵列中的每个PE都对应有一个存储单元。这种方式更进一步的对第一存储单元进行划分,可以将数据交互的吞吐量达到最大,因此在数据进行传输时消耗的时间降低。

此处,多个PE组中的每个PE组中包括的PE的数量可以相同也可以不同,例如为了减轻电路中的走线的复杂程度等影响,将在物理连接关系上较为紧密的PE作为一个PE组,或者在更具有针对性的设备中,将具有更强的运算处理功能的多个PE作为一个PE组。也即具体确定PE组的方式可以根据实际情况确定,在此不做限定。

PE在对第一存储单元进行读/写访问时,针对对第一存储单元进行读访问的情况:例如可以在第一处理周期,对所连接的第一存储单元进行读访问,得到PE对应的第一数据;

针对对第一存储单元进行写访问的情况,例如可以在第二处理周期,对所连接的第一存储单元进行写访问,将PE生成的第二数据存储至所连接的第一存储单元。

其中,处理周期可以根据实际的数据处理过程确定,在例如对数据的乘加的处理步骤中,由于计算较为简单,因此可以包括两个或三个时钟周期;在例如对数据的加权滤波的处理步骤中,由于计算较为复杂,因此可以包括四个或五个时钟周期。也即处理周期所包含的时钟周期的数量与实际的处理过程相关,不同的处理周期所包括的时钟周期的数量可以相同,也可以不同。

另外,由于存在多个PE组,且在为PE组中的PE进行数据传输时,由于以单指令多数据流(Single Instruction Multiple Data,SIMD)的方式实现每组PE与其对应的第一存储单元之间的数据传输,因此连接了同一第一存储单元的不同PE在不同的数据处理周期可以对该同一第一存储单元进行读/写访问;和/或,不同第一存储单元所连接的PE组,在同一处理周期分别存在一个PE对所连接第一存储单元进行读/写访问。

示例性的,对于图1示出的多个第一存储单元以及多个PE,因此在一个处理周期中,每组PE中相同位置上的PE可以对与其对应的第一存储单元进行读访问,以图1对应的实施例为例,第一存储单元有4个,分别为:第一存储单元0、第一存储单元1、第一存储单元2、以及第一存储单元3,与第一存储单元0连接的PE包括:PE0、PE1、PE2、PE3,与第一存储单元1连接的PE包括PE4、PE5、PE6、PE7,与第一存储单元2连接的PE包括PE8、PE9、PE10、PE11,与第一存储单元3连接的PE包括PE12、PE13、PE14、PE15;在该示例中,第一处理周期可以包括4个时钟周期;在第一个时钟周期内,PE0对第一存储单元0进行读访问,PE4对第一存储单元1进行读访问、PE8对第一存储单元2进行读访问、PE12对第一存储单元3进行读访问。

然后,PE0、PE4、PE8、PE12可以将读取得到的数据存储至对应的内部存储器中,以使包含算术逻辑单元的PE可以对读取得到的数据进行运算处理,或者使不包含算术逻辑单元的PE对其进行存储,等待下一处理周期的移动或者其他的数据传输。

在第二个时钟周期中,PE1对第一存储单元0进行读访问,同时,PE5对第一存储单元1进行读访问、PE9对第一存储单元2进行读访问、PE13对第一存储单元3进行读访问;在第三个时钟周期中,PE2对第一存储单元0进行读访问,同时,PE6对第一存储单元1进行读访问、PE10对第一存储单元2进行读访问、PE14对第一存储单元3进行读访问;在第四个时钟周期中,PE3对第一存储单元0进行读访问,同时,PE7对第一存储单元1进行读访问、PE11对第一存储单元2进行读访问、PE15对第一存储单元3进行读访问。以此完成在第一个处理周期中,PE对第一存储单元的读访问,并将在第一存储单元中对应存储的、且等待PE进行处理的第一数据传输至各个PE分别对应的内部寄存器中,等待进一步的数据访问。

在另一种可能的实施方式中,在PE阵列中的PE数量较大、且待处理的图像尺寸较小时,可能存在处理该待处理的图像仅需使用PE阵列中部分PE的情况,因此还可以存在部分PE在第一个处理周期中不对对应的第一存储单元进行访问的情况,继续等待下一处理周期的数据处理指令。

具体地,在PE对第一存储单元进行读访问时,数据处理装置中的控制单元基于数据处理指令,生成第一控制信号,并向PE传递第一控制信号,PE响应于接收到控制单元传递的第一控制信号,从与PE连接的第一存储单元中读取PE待处理的第一数据。

其中,数据处理指令可以包括控制PE对第一存储单元中的数据进行操作的相关指令,例如数据传送指令(MOV)、加法指令(ADD)、减法指令(SUB)、逻辑与指令(AND)等不同的指令。

以利用数据处理装置对待处理的任一图像进行处理为例,在第一存储单元对此图像进行处理以及存储后,控制单元可以基于数据传送指令,生成第一控制信号,此第一控制信号中,包括了接收此第一控制信号的PE在第一存储单元进行读访问时访问的数据地址,用于控制接收到此第一控制信号的PE对对应的第一存储单元进行数据的读取,并将读取得到的数据存储至对应的内部寄存器中。

例如,在图1示出的第一存储单元0中,由于连接了PE0~PE3共四个PE,因此可以包括对应的四个数据存储空间(Space),以s0、s1、s2、s3表示,控制单元向PE0传递的第一控制信号中例如可以包括s0的地址,在PE0接收到第一控制信号后,即可以根据其中携带的s0的地址,从连接的第一存储单元0中的数据存储空间s0中读取对应的数据。

其他PE从对应的第一存储单元中读取数据的方式,与上述PE0从第一存储单元0中读取数据的方式相似,在此不再赘述。

另外,在将待处理的图像进行处理并存储至第一存储单元中时,例如可以采用下述方式:控制单元基于数据处理指令,生成第三控制信号,并向数据处理装置中的数据调度器传递第三控制信号;数据调度器基于第三控制信号,对第一存储单元进行写访问。

其中,第三控制信号中例如可以携带有第一数据存储地址,此第一数据存储地址用于确定存放至第一存储单元的待处理数据的存储位置。

在具体实施中,数据处理装置还包括第二存储单元,第二存储单元可以包括外部存储器,用于将待处理的原始图像、特征图等数据进行存储。本公开实施例以对原始图像进行处理为例对数据装置进行数据处理的详细过程加以说明。以图1中示出的PE阵列为例,当其中的每个PE均可以处理4×4个像素点组成的子图像数据时,在图像尺寸(单位为像素)为16×16时,每个PE可以平均地处理对应的4×4个像素点。此时,即可以将得到的16个子图像包含的数据存放至第二存储单元中,等待数据调度器从第二存储单元中读取数据;并且,由于在第二存储单元中存储的数据即为PE可以直接进行处理的数据,因此在将第二存储单元中的数据存储至第一存储单元中时,可以仅完成数据的传输,而不需要对数据进行切分等处理,从而减轻了数据处理装置在数据传输时的处理任务,提升数据传输的效率;另外,由于在第二存储单元中存储的数据,可以直接作为第一存储单元对应的待处理数据,因此还有利于第一存储单元、以及与第一存储单元连接的PE对待处理数据的读取。

具体地,数据调度器从第二存储单元中读取各第一存储单元对应的待处理数据,并基于第三控制信号中携带的第一数据存储地址,将各第一存储单元对应的待处理数存储至对应的第一存储单元中;其中,各第一存储单元对应的待处理数据包括:各第一存储单元连接的PE需要读取的数据。

在第一存储单元中存放有连接的PE需要读取的数据后,PE即可以等待接收控制单元传递控制信号,并在接收到控制单元发送的第一控制信号后,从对应的第一存储单元中读取对应的数据进行处理。此时,对于较为复杂的图像处理算法,例如对图像进行卷积处理时,包括加权求和等多个步骤,因此在进行处理时,可能存在多个中间数据,这些中间数据例如可以存放至PE分别对应的内部存储器中暂存,然后再在下一次处理时直接调用在内部存储器中暂存的数据进行处理,直至完成对原始图像的所有数据处理任务。

或者,还可以将中间数据传输至第一存储单元中,但由于中间数据并非最终输出的结果数据,还需要进行进一步的处理,因此在第一存储单元中的中间数据可以不向第二存储单元输出。

具体地,控制单元可以基于数据处理指令,生成第二控制信号,并向PE传递第二控制信号;PE响应于接收到控制单元传递的第二控制信号,将PE生成的数据写入PE连接的第一存储单元中。

其中,第二控制信号与上述第一控制信号类似,包括了接收此第二控制信号的PE在第一存储单元进行写访问时访问的数据地址,用于控制接收到此第二控制信号的PE对对应的第一存储单元写入数据,以使第一存储单元接收到对应的PE写入的数据,等待向第二存储单元输出,已得到原始图像的处理结果。

在PE对原始图像中的数据完成所有的处理步骤后,即可以得到用于输出的结果数据,此时控制单元还可以生成第四控制信号,并向数据调度器传递第四控制信号;数据调度器基于第四控制信号,从多个第一存储单元中读取结果数据,并将结果数据存储至第二存储单元中;其中,结果数据包括第一存储单元连接的PE产生的、并存储至第一存储单元中的数据。

具体地,第四控制信号中可以携带有第二数据存储地址,此第二数据存储地址用于指示数据调度器将结果数据在第二存储单元中存储的位置。另外,第四控制信号中也可以不携带第二数据的存储地址。

示例性的,数据调度器可以从第一存储单元0中读取由PE0、PE1、PE2、PE3分别产生的结果数据,也即存放在第一存储单元0中的四个数据存储空间s0、s1、s2、s3中的结果数据,然后将结果数据存储至第二存储单元中,得到对原始图像的处理结果。

在一种可能的实施方式中,控制单元还可以控制将第二存储单元中输出的多个结果数据依顺序拼接,以将划分为多个子图像的原始图像得到的多个结果数据,还原为原始图像对应的结果数据。

本公开实施例还提供了一种利用数据处理装置对原始图像A进行卷积处理的具体示例。

参见图5所示,为数据处理装置在进行数据处理时的示意图;其中,内存单元有4个,分别表示为PE_RAM0~PE_RAM3,PE阵列中包括16个PE,分别表示为PE0~PE15。

其中,将PE0~PE3作为一个PE组、PE4~PE7作为一个PE组、PE8~PE11作为一个PE组、PE12~PE15作为一个PE组,分别表示为G0、G1、G2、G3。

在确定PE子阵列后,可以确定将第一存储单元中的PE_RAM0作为G0对应的第一存储单元;将第一存储单元中的PE_RAM1作为G1对应的第一存储单元;将第一存储单元中的PE_RAM2作为G2对应的第一存储单元;并将第一存储单元中的PE_RAM3作为G3对应的第一存储单元。

在利用数据处理装置完成对卷积层的运算时,控制单元基于数据处理指令生成第三控制信号C3,并将第三控制信号发送至数据调度器,由数据调度器对第二存储单元进行读访问,第二存储单元中存储有原始图像A对应的数据,然后数据调度器将第二存储单元中用于进行卷积计算的数据存储至第一存储单元中。

之后,控制单元向PE发送第一控制信号C1,PE阵列中工作的每个PE从对应的第一存储单元中读取待处理的第一数据,然后进行相应的计算。

其中,C1控制以下的操作:在第一个时钟周期,PE_RAM0~PE_RAM3分别对应的PE0、PE4、PE8、以及PE12对各自分别对应的待处理的第一数据进行读取;在第二个时钟周期,PE1、PE5、PE9、以及PE13对各自分别对应的待处理的第一数据进行读取;在第三个时钟周期,PE2、PE6、PE10、以及PE14对各自分别对应的待处理的第一数据进行读取;在第四个时钟周期,PE3、PE7、PE11、以及PE15对各自分别对应的待处理的第一数据进行读取。

然后,PE0~PE15分别对各自对应的待处理的第一数据进行数据处理,例如对第一数据进行卷积运算处理,得到第二数据。

此处,第二数据即为结果数据。

在PE阵列中的PE对第一数据处理得到第二数据后,控制单元向PE发送第二控制信号C2,将PE中的第二数据写入与PE对应的第一存储单元中。此时,控制单元向数据调度器发送第四控制信号C4,使数据调度器从第一存储单元中将结果数据读取出并保存在第二存储单元中。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与数据处理装置对应的数据处理方法,由于本公开实施例中的方法解决问题的原理与本公开实施例上述数据处理装置相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图6所示,为本公开实施例提供的一种数据处理方法的示意图,所述数据处理方法应用于数据处理装置;所述数据处理方法包括:

S601:PE对所连接第一存储单元进行读/写访问;

S602:多个第一存储单元存储所连接PE进行读/写访问过程中传输的数据。

一种可选的实施方式中,所述多个第一存储单元分别与所述PE阵列中不同的PE组连接。

一种可选的实施方式中,每个第一存储单元与一个PE组中的PE连接;不同PE分别属于不同PE组。

一种可选的实施方式中,所述一个PE组,包括所述PE阵列中具有物理连接关系的多个PE,且多个PE在硬件布局上位于同一行,或者位于同半行,或者位于同一块。

一种可选的实施方式中,所述PE对所连接第一存储单元进行读/写访问,包括:所述PE在第一处理周期,对所连接的第一存储单元进行读访问,得到所述PE对应的第一数据;和/或在第二处理周期,对所连接的第一存储单元进行写访问,将所述PE生成的第二数据存储至所连接的第一存储单元。

一种可选的实施方式中,所述PE对所连接第一存储单元进行读/写访问,包括:连接了同一第一存储单元的不同PE在不同的处理周期对该同一第一存储单元进行读/写访问;和/或,不同第一存储单元所连接的PE组,在同一处理周期分别存在一个PE对所连接第一存储单元进行读/写访问。

一种可选的实施方式中,所述不同第一存储单元所连接的PE组,在同一处理周期分别存在一个PE对所连接第一存储单元进行读/写访问,包括:不同第一存储单元所连接的各PE组中,具有相同相对位置的PE在同一处理周期对所连接第一存储单元进行读/写访问。

一种可选的实施方式中,所述数据处理装置还包括控制单元;所述数据处理方法还包括:所述控制单元基于数据处理指令,生成第一控制信号,并向所述PE传递所述第一控制信号;所述PE响应于接收到所述控制单元传递的第一控制信号,从与所述PE连接的第一存储单元中读取所述PE待处理的第一数据。

一种可选的实施方式中,还包括:所述控制单元基于所述数据处理指令,生成第二控制信号,并向所述PE传递所述第二控制信号;所述PE响应于接收到所述控制单元传递的第二控制信号,将所述PE生成的第二数据写入与所述PE连接的第一存储单元中。

一种可选的实施方式中,所述数据处理装置还包括数据调度器;所述数据处理方法还包括:所述控制单元基于所述数据处理指令,生成第三控制信号,并向所述数据调度器传递所述第三控制信号;所述数据调度器基于所述第三控制信号,对所述第一存储单元进行写访问。

一种可选的实施方式中,所述数据处理装置还包括第二存储单元;所述数据调度器从所述第二存储单元中读取各第一存储单元对应的待处理数据,并基于所述第三控制信号中携带的第一数据存储地址,将各第一存储单元对应的待处理数据存储至对应第一存储单元中;其中,所述各第一存储单元对应的待处理数据包括:所述各第一存储单元连接的PE需要读取的数据。

一种可选的实施方式中,还包括:所述控制单元基于所述数据处理指令,生成第四控制信号,并向所述数据调度器传递所述第四控制信号;所述数据调度器基于所述第四控制信号,对所述第一存储单元进行读访问。

一种可选的实施方式中,所述数据调度器基于所述第四控制信号,对所述第一存储单元进行读访问,包括:所述数据调度器基于所述第四控制信号,从所述多个第一存储单元中读取结果数据,并将所述结果数据存储至第二存储单元中;其中,所述结果数据包括:所述第一存储单元连接的PE产生的、并存储至所述第一存储单元中的数据。

本公开实施例还提供一种计算机设备,包括:指令存储器和本公开实施例提供的数据处理装置。

本公开实施例提供的数据处理装置可以包括芯片、AI芯片等。本公开实施例提供的计算机设备可以包括手机等智能终端,或者也可以是其他可以用于进行数据处理的设备、服务器等,这里并不限制。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。

其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 一种数据处理方法、数据处理装置、计算机设备及可读存储介质
  • 数据处理方法、数据处理装置、计算机设备和存储介质
技术分类

06120112922068