数据处理装置、方法及相关产品与流程

文档序号:20917700发布日期:2020-05-29 13:44阅读:165来源:国知局
数据处理装置、方法及相关产品与流程

本申请涉及信息处理技术领域,特别是涉及一种数据处理装置、方法及相关产品。



背景技术:

随着信息技术的不断发展和日益增长的需求,人们对数据访问和数据处理的需求越来越高,随之对一些处理数据和访问数据的处理器的要求也越来越严格。以一种通用处理器为例,多个通用处理器核(例如,cpu核)构成的多核处理器,以其强大的并行计算能力,成为一种主流。

但是随着目前人工神经网络的不断发展,越来越多架构的机器学习芯片逐渐问世,这些机器学习芯片在运行中需要根据指令来进行数据访问或者处理共享存储中的数据。在数据访问或者共享存储数据较多时,机器学习芯片的指令逐渐变得复杂,进而影响通过指令读取共享存储中的速度,导致神经元数据处理效率低下。

因此,如何提高机器学习芯片在数据访问时的访问速度,成为当前技术人员亟待解决的技术问题。



技术实现要素:

基于此,有必要针对上述如何提高机器学习芯片在数据访问时的访问速度的技术问题,提供一种数据处理装置、方法及相关产品。

第一方面,本发明的实施例提供一种数据处理装置,用于执行机器学习数据的处理,所述数据处理装置包括:机器学习装置、传输电路以及共享存储器,所述机器学习装置与所述传输电路连接,所述传输电路与所述共享存储器连接;

所述传输电路用于根据所述机器学习装置发出的数据操作信号,从所述共享存储器中获取所述机器学习装置所需的输入数据,并将所述输入数据返回至所述机器学习装置;所述数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息。

在其中一个实施例中,所述机器学习装置,用于根据所述输入数据,执行机器学习运算,得到输出数据。

在其中一个实施例中,所述机器学习装置还用于将所述输出数据作为新的输入数据,并通过所述传输电路传输至所述共享存储器进行数据存储。

在其中一个实施例中,所述机器学习装置包括至少一个机器学习单元,所述数据操作信号还包括数据接收标志位,所述数据接收标志位用于表征接收所述输入数据的目标机器学习单元。

在其中一个实施例中,所述数据操作信号的类型标志位的值包括cast,表征所述数据操作信号为广播或者多播指令。

在其中一个实施例中,所述数据操作信号的类型标志位包括第一类型标志位和第二类型标志位;其中,所述第一类型标志位的值包括i/o,表征所述数据操作信号为i/o指令;

所述第二类型标志位用于表征所述数据操作信号为所述i/o指令中的广播或者多播指令。

在其中一个实施例中,所述待操作的数据的信息包括所述待操作的数据在所述共享存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址的至少一种。

在其中一个实施例中,所述数据操作信号还包括跳转信息,所述跳转信息包括跳转步长以及每次跳转后所操作的数据长度。

在其中一个实施例中,所述跳转信息包括stride跳转信息和/或segment跳转信息;所述stride跳转信息用于表征所述数据操作信号每次的跳转步长;所述segment跳转信息用于表征预设的所述数据操作信号每次的分割大小。

在其中一个实施例中,所述数据操作信号还包括功能标志位,用于表征所述传输电路对所读取的数据进行的处理操作。

在其中一个实施例中,所述传输电路包括:

指令存储单元,用于存储所述数据操作信号;

指令处理单元,用于对所述数据操作信号进行解析,以得到所述数据操作信号的类型标志位以及待操作的数据的信息;

存储队列单元,用于存储指令队列,所述指令队列包括:按所述指令队列的前后顺序待执行的多个所述数据操作信号。

在其中一个实施例中,所述传输电路还包括:

依赖关系处理单元,用于确定第s个数据操作信号与所述第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系,如所述第s个数据操作信号与所述第s-1个数据操作信号存在关联关系,将所述第s个数据操作信号缓存在所述指令存储单元内,在所述第s-1个数据操作信号执行完毕后,从所述指令存储单元提取所述第s个数据操作信号传输至所述指令处理单元;

其中所述确定该第s个数据操作信号与第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系包括:

依据所述第s个数据操作信号提取所述第s个数据操作信号中所需数据的第一存储地址区间,依据所述第s-1个数据操作信号提取所述第s-1个数据操作信号中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号不具有关联关系。

第二方面,本发明的实施例提供一种数据处理方法,应用于上述第一方面提供的任一项实施例所述的数据处理装置,所述方法包括:

所述数据处理装置中的传输电路接收所述数据处理装置中的机器学习装置发送的数据操作信号,所述数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息;

所述传输电路根据所述数据操作信号的类型标志位确定对共享存储器中的数据所执行的操作,并根据所述待操作的数据的信息对所述待操作的数据执行所述操作,得到所述机器学习装置所需的输入数据,并将所述输入数据返回至所述机器学习装置;

所述机器学习装置根据所述输入数据,执行机器学习运算,得到输出数据,以及将所述输出数据作为新的输入数据,并通过所述传输电路传输至共享存储器进行数据存储。

在其中一个实施例中,所述机器学习装置包括至少一个机器学习单元,所述数据操作信号还包括数据接收标志位,所述将所述输入数据返回至所述机器学习装置,包括:

所述传输电路根据所述数据接收标志位的值确定接收所述输入数据的目标机器学习单元,并将所述输入数据发送至所述目标机器学习单元。

在其中一个实施例中,所述方法还包括:

若所述数据操作信号的类型标志位的值为cast,则所述传输电路确定所述数据操作信号为广播或者多播指令。

在其中一个实施例中,所述数据操作信号的类型标志位包括第一类型标志位和第二类型标志位,所述第一类型标志位用于表征所述数据操作信号是否为i/o指令,所述第二类型标志位用于表征所述数据操作信号是否为所述i/o指令中的广播或者多播指令;所述方法还包括:

若所述第一类型标志位的值为i/o,则所述传输电路确定所述数据操作信号为i/o指令;

若所述第二类型标志位的值为1,则所述传输电路确定所述数据操作信号为所述i/o指令中的广播或者多播指令。

在其中一个实施例中,所述待操作的数据的信息包括所述待操作的数据在所述共享存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址,所述根据所述待操作的数据的信息对所述待操作的数据执行所述操作,得到所述机器学习装置所需的输入数据,并将所述输入数据返回至所述机器学习装置,包括:

所述传输电路自所述源地址开始读取所述共享存储器,获取满足所述数据长度的所述输入数据;

所述传输电路根据所述数据返回地址以及所述数据接收标志位,将所述输入数据返回至所述目标机器学习单元中。

在其中一个实施例中,所述数据操作信号还包括跳转信息,所述跳转信息包括跳转步长以及每次跳转后所操作的跳转数据长度,所述传输电路自所述源地址开始读取所述共享存储器,获取满足所述数据长度的所述输入数据,包括:

所述传输电路自所述源地址开始读取所述共享存储器,根据当前次跳转后的跳转数据长度获取第一跳转数据;

所述传输电路获取所述跳转数据的最后一个地址,并根据所述跳转步长从所述最后一个地址跳转至目标跳转地址;

所述传输电路自所述目标跳转地址开始,根据跳转后的跳转数据长度获取第二跳转数据,直至每次跳转后得到的跳转数据的长度满足所述数据长度为止。

在其中一个实施例中,所述跳转信息包括stride跳转信息和/或segment跳转信息。

在其中一个实施例中,所述数据处理装置中的传输电路接收所述数据处理装置中的机器学习装置发送的数据操作信号,包括:

所述传输电路对所述数据操作信号进行解析,以得到所述数据操作信号的类型标志位以及待操作的数据的信息;

所述传输电路依照指令队列执行所述解析的数据操作信号;所述指令队列用于表征所述数据操作信号的执行顺序。

在其中一个实施例中,在所述传输电路依照指令队列执行所述解析的数据操作信号之前,所述方法还包括:

所述传输电路判断相邻的所述解析的数据操作信号的依赖关系,得到判断结果;所述依赖关系表征第s个数据操作信号与所述第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系;

若所述判断结果为所述第s个数据操作信号与所述第s-1个数据操作信号存在依赖关系,所述传输电路缓存所述第s个数据操作信号,在所述第s-1个数据操作信号执行完毕后,提取所述第s个数据操作信号。

在其中一个实施例中,所述传输电路判断相邻的所述解析的数据操作信号的依赖关系,包括:

所述传输电路分别获取依据所述第s个数据操作信号提取所述第s个数据操作信号中所需数据的第一存储地址区间,和依据所述第s-1个数据操作信号提取所述第s-1个数据操作信号中所需数据的第零存储地址区间;

若所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,所述传输电路确定所述第s个数据操作信号与所述第s-1个数据操作信号具有依赖关系;

若所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,所述传输电路确定所述第s个数据操作信号与所述第s-1个数据操作信号不具有依赖关系。

第三方面,本发明的实施例提供一种组合处理装置,所述组合处理装置包括上述第一方面提供的任一项实施例所述的数据处理装置、通用互联接口和除所述数据处理装置以外的其它处理装置;所述数据处理装置与所述其它处理装置进行交互。

在其中一个实施例中,所述组合处理装置,还包括:存储装置,所述存储装置分别与所述数据处理装置和所述其它处理装置连接,用于保存所述数据处理装置和所述其它处理装置的数据。

第四方面,本发明的实施例提供一种机器学习芯片,所述机器学习芯片包括上述第三方面提供的任一项实施例所述的组合处理装置。

第五方面,本发明的实施例提供一种机器学习芯片封装结构,所述机器学习芯片封装结构包括上述第四方面提供的实施例所述的机器学习芯片。

第六方面,本发明的实施例提供一种板卡,所述板卡包括上述第五方面提供的实施例所述的机器学习芯片封装结构。

第七方面,本发明的实施例提供一种电子设备,所述电子设备包括上述第六方面提供的实施例所述的板卡。

本申请实施例提供的数据处理装置、方法及相关产品,传输电路根据机器学习装置发出的数据操作信号,从共享存储器中获取机器学习装置所需的输入数据,并将输入数据返回至机器学习装置,然后机器学习装置根据输入数据,执行机器学习运算,得到输出数据,再将该输出数据作为新的输入数据,通过传输电路传输至共享存储器进行数据存储。在本实施例中,由于数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息,传输电路可以在接收到该数据操作信号后,根据其中的数据操作信号的类型标志位判断该数据操作信号的类型,然后结合该数据操作信号中携带的待操作的数据信息执行操作。这样,根据数据操作信号的类型标志位先进行分类可以快速定位到对应的操作,简化了数据访问逻辑,提高了数据访问效率,大大提高了机器学习芯片在数据访问时的访问速度。

附图说明

图1为一个实施例提供的一种数据处理装置示意图;

图2为一个实施例提供的一种数据处理方法的流程示意图;

图3为一个实施例提供的一种数据处理方法的流程示意图;

图4为一个实施例提供的一种数据处理方法的流程示意图;

图5为一个实施例提供的一种数据处理方法的流程示意图;

图6为一个实施例提供的一种数据处理方法的流程示意图;

图7为一个实施例中一种组合处理装置的结构示意图;

图8为一个实施例中另一种组合处理装置的结构示意图;

图9为一个实施例中一种板卡的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

在一个实施例中,如图1所示,本申请实施例提供的一种数据处理装置可以为图1所示的部分或全部,其可以通过软件、硬件或者软硬件结合的方式实现。该数据处理装置10用于执行机器学习数据的处理,所述数据处理装置10包括:机器学习装置11、传输电路12以及共享存储器13,所述机器学习装置11与所述传输电路12连接,所述传输电路12与所述共享存储器13连接;所述传输电路12用于根据所述机器学习装置11发出的数据操作信号,从所述共享存储器13中获取所述机器学习装置11所需的输入数据,并将所述输入数据返回至所述机器学习装置11;所述数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息。可选地,所述机器学习装置11,用于根据所述输入数据,执行机器学习运算,得到输出神经元数据,可选地,所述机器学习装置11还用于将所述输出神经元数据作为新的输入神经元数据,并通过所述传输电路12传输至所述共享存储器13进行数据存储。

需要说明的是,上述机器学习装置、传输电路以及共享存储器均可以通过硬件电路的方式实现。示例性地,机器学习装置可以是多个机器学习单元(machinelearningunit,简称mlu)构成的具有运算功能的装置,传输电路可以是广播总线(broadcastbus),共享存储器可以是非易失性和/或易失性存储器,包括但不限于随机存取存储器(ram)、高速缓冲存储器等。其中,上述机器学习装置、传输电路以及共享存储器之间互相通过接口进行数据传输,例如:机器学习装置可以通过该接口发送数据操作信号,也可以通过该接口发送或接收数据。相应的,该接口既可以是一种发送接口,也可以是一种接收接口,即:当该接口是发送接口时,机器学习装置可以向传输电路发送数据操作信号或数据;当该接口是接收接口时,机器学习装置可以接收传输电路发送的数据操作信号或数据。其中,该接口可以是各类接口,该各类接口均可以通过硬件电路的方式实现,本实施例对该各类接口的具体硬件形式不做限定,只要通过该接口可以实现机器学习装置、传输电路以及共享存储器之间的数据信号交互即可。其中,输入数据是机器学习装置在进行机器学习运算时需要输入的数据,例如可以是输入神经元数据和权值数据。以上数据可以是预先存储在共享存储器中的数据,也可以是机器学习装置在执行机器学习运算后输出的数据;可选地,机器学习装置可以直接通过多个数据i/o接口或i/o引脚连接共享存储器获取以上数据,可选的,机器学习装置也可以通过多个数据i/o接口或i/o引脚连接传输电路,再通过传输电路连接共享存储器,获取以上数据。

其中,数据操作信号可以表征传输电路对共享存储器中的数据进行读操作,也可以表征对共享存储器中的数据进行写操作。当机器学习装置发出的数据操作信号为读操作时,传输电路可以从共享存储器中找到相应地址对应的输入数据,并进行读取,再将这些数据返还给发出数据操作信号的机器学习装置;当机器学习装置发出的数据操作信号为写操作时,则传输电路可以将机器学习装置输出的写数据写入到共享存储器中。其中,数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息,该数据操作信号的类型标志位表示该数据操作信号的类型,例如:该数据操作信号的类型标志位为cast,则表示该数据操作信号的类型为广播或者多播指令。该待操作的数据的信息表示,传输电路在依照该数据操作信号进行对应的操作时需要用到的数据,对于该数据操作信号的类型标志位的具体形式以及待操作信息中的具体数据信息,本实施例不做限定,可根据实际情况而定。

需要说明的是,本申请提出的数据处理装置应用于机器学习运算,其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。以神经网络运算为例,对于机器学习装置所执行的神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出神经元数据作为下一层的输入神经元数据进行运算(或者是对该输出神经元数据进行某些操作再作为下一层的输入神经元数据),同时,将权值数据也替换为下一层的权值数据;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入神经元梯度(同样可以作为一种输入的神经元数据)作为下一层的输出神经元梯度进行运算(同样可以作为一种输出的神经元数据)(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值数据替换为下一层的权值数据。可选地,本申请实施例涉及的神经网络,不仅可以是人工神经网络,还可以是脉冲神经网络,本实施例对此不做限定。本实施例提供的机器学习装置可以根据输入数据执行机器学习运算,例如,在机器学习运算中,对于多层神经网络,机器学习装置可以计算每一层神经网络输出的神经元数据,可以将每一层神经网络输入端对应的多个输入数据进行乘积运算、求和运算、以及函数运算等一系列机器学习运算所包含的运算集合。当机器学习装置经过机器学习运算,得到当前层的输出神经元数据后,可以将该输出神经元数据作为下一层神经网络的输入神经元数据再次进行机器学习运算,在这之前,可以先将当前层的输出神经元数据通过传输电路写入到共享存储器中进行存储,以便机器学习装置可以随时读取该数据进行机器学习运算。

具体地,在实际应用中,传输电路根据机器学习装置发出的数据操作信号,从共享存储器中获取机器学习装置所需的输入数据,并通过接收接口将输入数据返回至机器学习装置,然后机器学习装置根据输入数据,执行机器学习运算,得到输出数据,再将该输出数据作为新的输入数据,通过传输电路传输至共享存储器进行数据存储。在本实施例中,由于数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息,传输电路可以在接收到该数据操作信号后,根据其中的数据操作信号的类型标志位判断该数据操作信号的类型,然后结合该数据操作信号中携带的待操作的数据信息执行操作。这样,根据数据操作信号的类型标志位先进行分类可以快速定位到对应的操作,简化了数据访问逻辑,提高了数据访问效率,大大提高了机器学习芯片在数据访问时的访问速度。

在一个实施例中,如图2所示,本申请实施例提供的一种数据处理装置,包括:所述机器学习装置11包括至少一个机器学习单元14,所述数据操作信号还包括数据接收标志位,所述数据接收标志位用于表征接收所述输入数据的目标机器学习单元。

其中,该机器学习装置包括的至少一个机器学习单元(即mlu)所执行的数据信号操作可以共享一个数据接收接口,该机器学习单元可以通过发送接口或共享数据接收接口与传输电路连接。需要说明的是,该发送接口和共享数据接收接口均可以通过硬件电路的方式实现,本实施例对该发送接口和共享数据接收接口的类型不做限定。其中,数据操作信号包括数据接收标志位,该数据接收标志位表示可以接收输入数据的目标机器学习单元。该数据接收标志位的标记方式例如可以是:将可以接收输入数据的目标机器学习单元标记为1,相应地,不可以接收输入数据的目标机器学习单元标记为0;可以理解的是,这里将接收的目标机器学习单元标记为1只是一种方式,在实际应用中,也可以将可以接收数据的目标机器学习单元标记为0,而将不可以接收数据的目标机器学习单元标记为1,本是实施例对该数据接收标志位的具体标记形式不做限定。

本实施例中,根据数据操作信号中携带的数据接收标志位的标记情况,可以确定出机器学习装置中可以接收输入数据的目标机器学习单元,这样,由于机器学习装置的各机器学习单元在接收数据时是根据数据操作信号中的数据接收标志位确定的,简化数据访存过程中的访存逻辑,提高了数据访问效率,大大提高了机器学习芯片在数据访问时的访问速度。

下述通过几个实施例来分别介绍上述实施例中涉及的数据操作信号的类型标志位以及待操作的数据的信息、数据接收标志位之间的关系。

在一个实施例中,所述数据操作信号的类型标志位的值包括cast,表征所述数据操作信号为广播或者多播指令。可选地,所述待操作的数据的信息包括所述待操作的数据在所述共享存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址。

本实施例中,数据操作信号的类型标志位用于指示该数据操作信号的操作类型。示例地,如下表1所示:数据操作信号的类型标志位为cast,表示该数据操作信号为广播或者多播指令,待操作的数据信息包括源地址0x110011、目的地址0x000100和数据长度0x0100,其中,该数据长度为用户自行设定的长度,用户可以将该设定长度设置为一个值,也可以将该设定长度设置为多个值,本实施例并不限定该设定长度的具体值以及个数。数据接收标记位中有三个mlu的标记为1,表示该三个mlu可以接收数据,一个mlu的标记为0,表示该一个mlu不可以接收数据。具体地,传输电路根据该数据操作信号从共享存储器中的地址0x110011处读取0x0100长的数据,而后分别写入到机器学习装置中的mlu3、mlu1和mlu0的地址0x000100处。

表1

在另一个实施例中,上述数据操作信号的类型标志位可以包含第一类型标志位和第二类型标志位。可选地,所述第一类型标志位的值包括i/o,表征所述数据操作信号为i/o指令;所述第二类型标志位用于表征所述数据操作信号为所述i/o指令中的广播或者多播指令。

在本实施例中,该数据操作信号包括两个数据类型数据标志位,其中第一类型数据标志位表示该数据操作信号的类型;该第二类型数据标志位设置于该数据操作信号的操作信息中,表示该数据操作信号的具体子类型;其中,数据接收标志位与上述实施例中相同,表示该数据接收标志位表示可以接收输入数据的目标机器学习单元。示例地,如下表2所示,第一类型数据标志位的值为i/o,表示该数据操作信号为i/o指令,第二类型数据标志位的值为1,则表示该数据操作信号为i/o指令中的广播或者多播指令,相应地,当该第二类型数据标志位的值为0时,表示该数据操作信号不是广播或者多播指令。待操作的数据信息包括源地址0x110011、目的地址0x000100和数据长度0x0100,该数据长度为用户自行设定的长度,用户可以将该设定长度设置为一个值,也可以将该设定长度设置为多个值,本实施例对此不做限定。数据接收标记位中有三个mlu的标记为1,表示该三个mlu可以接收数据,一个mlu的标记为0,表示该一个mlu不可以接收数据,具体地,传输电路根据该数据操作信号从共享存储器中的地址0x110011处读取0x0100长的数据,而后分别写入到机器学习装置中的mlu3、mlu1和mlu0的地址0x000100处。

表2

在再一个实施例中,在上述表1或者表2的基础上,上述数据操作信号还可以包括跳转信息,所述跳转信息包括跳转步长以及每次跳转后所操作的数据长度。可选地,所述跳转信息包括stride跳转信息和/或segment跳转信息。

本实施例中,数据操作信号包括的跳转信息用于指示该传输电路在根据该数据操作信号在读取待操作数据信息时依照该跳转信息的规则读取,具体地读取方法为:传输电路从待操作的数据信息中的源地址开始读取共享存储器中的数据,在当前次跳转后,先将读取的跳转数据长度的数据确定为第一跳转数据,然后传输电路获取该第一跳转数据的最后一个地址,并根据跳转信息中的跳转步长,从该第一跳转数据的最后一个地址跳转该跳转步长长度的数据至目标跳转地址,可以理解的是,这里第一跳转数据的最后一个地址与目标跳转地址之间的长度即为跳转信息中的跳转步长。接着,传输电路再从目标跳转地址开始,跳转预设长度的数据,将该跳转预设长度后的数据确定为第二跳转数据,若该第二跳转数据的地址距上述开始跳转的源地址之间的长度满足了机器学习装置所需数据的数据长度,则表示该机器学习装置所需数据读取完毕,若该第二跳转数据的地址距上述开始跳转的源地址之间的长度不满足了机器学习装置所需数据的数据长度,则从该第二跳转数据的最后一个地址开始继续依照上述跳转顺序跳转,以读取该数据,直至该第二跳转数据的地址距上述开始跳转的源地址之间的长度满足了机器学习装置所需数据的数据长度,即表示该机器学习装置所需数据读取完毕为止。

示例地,如下表3所示,本实施例中传输电路读取数据的过程举例如下:若跳转信息中还包括stride跳转信息,所述stride跳转信息用于表征所述数据操作信号每次的跳转步长,则传输电路从数据信息中的源地址0x110011开始读取共享存储器中的数据,先读取预设长度的数据(该预设长度小于下表数据信息中的数据长度0x0100),然后跳转stride长度(0x0008)的地址,再读取预设长度的数据,依照此顺序一直读取该数据,直到读取的该数据的总长度为如下表3数据信息中的数据长度0x0100为止,则表示该数据读取完毕。若跳转信息中还包括segment跳转信息,所述segment跳转信息用于表征预设的所述数据操作信号每次的分割大小,则传输电路从数据信息中的源地址0x110011开始读取共享存储器中的数据,先读取segment长度(0x0010)的数据,然后跳转stride长度(0x0008)的地址,再读取segment长度(0x0010)的数据,依照此顺序一直读取该数据,直到读取的该数据的总长度为如下表3数据信息中的数据长度0x0100为止,则表示该数据读取完毕。需要说明的是,若该跳转信息只有segment跳转信息没有stride跳转信息时,传输电路在读取数据时从源地址0x110011开始读取segment长度(0x0010)的数据,直到读取的该数据的总长度为如下表3数据信息中的数据长度0x0100为止,则表示该数据读取完毕。还需要说明的是,该stride跳转信息和segment跳转信息,在本申请实施例中所列举的长度和名称只是一种举例的方式,本申请实施例对此并不做限定。

表3

考虑到传输电路根据数据操作信号读取的数据不是机器学习装置需要的格式,因此需要传输电路对读取的数据进行一定处理后再传给机器学习装置,可选地,本申请实施例还提供的一种数据处理装置,包括:所述数据操作信号还包括功能标志位,用于表征所述传输电路对所读取的数据进行的处理操作。其中,数据操作信号中的功能标志位表示传输电路需根据该功能标志位的对所读取的数据进行对应的处理,该功能标志位的个数可以是一个,也可以是多个,本实施例对此不做限定。示例地,该功能标记位为增加解压缩标记位,则若该标记为1,则数据在读取之后,传输电路需对该数据进行解压缩,然后再传输给机器学习装置中的指定的mlu,本实施例中,由于传输电路可以先依照数据操作信号的功能标志位对读取的数据进行对应处理后,再将该数据传输给机器学习装置,以便机器学习装置接收到该数据后可以立即识别并执行运算,提高了数据处理效率,从而大大提高了机器学习芯片在数据访问时的访问速度。

一般地,在本申请实施例提供的数据处理装置对数据操作信号进行读写处理之前,需要对数据操作信号进行解析,可选地,所述传输电路包括:指令存储单元,用于存储所述数据操作信号;指令处理单元,用于对所述数据操作信号进行解析,以得到所述数据操作信号的类型标志位以及待操作的数据的信息;存储队列单元,用于存储指令队列,所述指令队列包括:按所述指令队列的前后顺序待执行的多个所述数据操作信号。其中,一般数据处理过程中数据操作信号数量比较多,在处理其中一个数据操作信号时,其他的需要存储在该指令存储单元中。指令处理单元,即对该数据操作信号进行解析的过程,解析该数据操作信号中携带的数据信息。另外,由于数据操作信号的取值、译码、发射的完成过程是流水线操作时,所有数据操作信号需要按照顺序依次完成以上过程,则通过存储队列单元存储指令队列。

又由于指令处理单元处理完一个数据操作信号后,才处理队列中的下一个数据操作信号,那么就要保证该当前处理完成的数据操作信号与下一个数据操作信号之间是有关联的,可选地,所述传输电路还包括:依赖关系处理单元,用于确定第s个数据操作信号与所述第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系,如所述第s个数据操作信号与所述第s-1个数据操作信号存在关联关系,将所述第s个数据操作信号缓存在所述指令存储单元内,在所述第s-1个数据操作信号执行完毕后,从所述指令存储单元提取所述第s个数据操作信号传输至所述指令处理单元;其中所述确定该第s个数据操作信号与第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系包括:依据所述第s个数据操作信号提取所述第s个数据操作信号中所需数据的第一存储地址区间,依据所述第s-1个数据操作信号提取所述第s-1个数据操作信号中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号不具有关联关系。

本实施例中,数据操作装置在根据数据处理信号进行操作之前,会将该未用到的数据处理信号有序的存储起来,在使用时依次进行解析译码,且在解析译码过程时,通过判断两个相邻的数据操作信号之间的关联性保证数据操作信号的连贯性,这样,前期有条不紊的准备工作保证了后期根据该数据操作信号执行相应操作的顺利,从而提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度。

本申请实施例还提供了一种数据处理方法,可以应用于如以上图1所示的硬件电路中,该电路包括:机器学习装置11、传输电路12以及共享存储器13,其中机器学习装置11与所述传输电路12、传输电路12与共享存储器13均是通过接口连接,该接口可以通过硬件电路的方式实现,本实施例对该各类接口的具体硬件形式不做限定。其中,传输电路12用于根据机器学习装置11发出的数据操作信号,从共享存储器13中获取机器学习装置11所需的输入数据,并将输入数据返回至机器学习装置11,机器学习装置11用于根据输入数据,执行机器学习运算,得到输出神经元数据,以及将输出神经元数据作为新的输入神经元数据,并通过传输电路12传输至共享存储器13进行数据存储。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请的实施例提供的数据处理方法,旨在解决在在数据访问或者共享存储数据较多时,如何提高机器学习芯片在数据访问时的访问速度的技术问题。下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。需要说明的是,本发明提供的一种数据处理方法,其执行主体为传输电路,其中,该执行主体还可以为数据处理装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为数据分析终端的部分或者全部。

在一个实施例中,图2提供了一种数据处理方法,本实施例涉及的是传输电路根据数据操作信号的类型标志位确定数据操作信号的类型,从而定位到对应的操作,然后根据该操作从共享存储器中获取机器学习装置所需的数据,以提高访问速度的具体过程。如图2所示,该方法包括:

s101,所述数据处理装置中的传输电路接收所述数据处理装置中的机器学习装置发送的数据操作信号,所述数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息。

其中,机器学习装置可以是多个mlu成的具有运算功能的装置,传输电路可以是广播总线,共享存储器可以是非易失性和/或易失性存储器,包括但不限于随机存取存储器(ram)、高速缓冲存储器等。在本实施例中,数据处理装置中的传输电路接收该数据处理装置中的机器学习装置发送的数据操作信号,该数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息,其中,传输电路与机器学习装置之间的数据操作信号传输可以是通过接口进行传输。传输电路根据该数据操作信号携带的数据操作信号的类型标志位和待操作的数据信息可以确定该数据操作信号的类型和操作时需要用到的数据信息。

s102,所述传输电路根据所述数据操作信号的类型标志位确定对共享存储器中的数据所执行的操作,并根据所述待操作的数据的信息对所述待操作的数据执行所述操作,得到所述机器学习装置所需的输入数据,并将所述输入数据返回至所述机器学习装置。

基于上述步骤s101中传输电路接收的机器学习装置发送的数据操作信号,根据该数据操作信号的类型标志位,传输电路确定对共享存储器中的数据需要执行的操作,再根据该数据操作信号中的待操作的数据的信息确定对该共享存储器中的哪些数据执行该操作(这些数据即为待操作数据),然后得到机器学习装置需要的输入数据,并将该输入数据返回给机器学习装置。其中,输入数据是机器学习装置在进行机器学习运算时需要输入的数据。以上数据可以是预先存储在共享存储器中的数据,也可以是机器学习装置在执行机器学习运算后输出的数据

s103,所述机器学习装置根据所述输入数据,执行机器学习运算,得到输出数据,以及将所述输出数据作为新的输入数据,并通过所述传输电路传输至所述共享存储器进行数据存储。

本步骤中,机器学习装置根据上述s102步骤中传输电路发送的输入数据,执行机器学习运算,得到输出数据,然后就该输出数据作为新的输入数据,通过传输电路传输至共享存储器中进行存储。其中,以机器学习装置所执行的运算为神经网络运算为例,该神经网络运算可以为神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出神经元数据作为下一层的输入神经元数据进行运算(或者是对该输出神经元数据进行某些操作再作为下一层的输入神经元数据),同时,将权值数据也替换为下一层的权值数据;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入神经元梯度(同样可以作为一种输入的神经元数据)作为下一层的输出神经元梯度进行运算(同样可以作为一种输出的神经元数据)(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值数据替换为下一层的权值数据。可选地,本申请实施例涉及的神经网络,不仅可以是人工神经网络,还可以是脉冲神经网络,本实施例对此不做限定。本实施例提供的机器学习装置可以根据输入数据执行机器学习运算,例如,在机器学习运算中,对于多层神经网络,机器学习装置可以计算每一层神经网络输出的神经元数据,可以将每一层神经网络输入端对应的多个输入数据进行乘积运算、求和运算、以及函数运算等一系列机器学习运算所包含的运算集合。当机器学习装置经过机器学习运算,得到当前层的输出神经元数据后,可以将该输出神经元数据作为下一层神经网络的输入神经元数据再次进行机器学习运算,在这之前,可以先将当前层的输出神经元数据通过传输电路写入到共享存储器中进行存储,以便机器学习装置可以随时读取该数据进行机器学习运算。

本实施例提供的一种数据处理方法,传输电路根据机器学习装置通过发送接口发出携带数据操作信号的类型标志位以及待操作的数据的信息的数据操作信号,从共享存储器中获取机器学习装置所需的输入数据,并通过接收接口将输入数据返回至机器学习装置,然后机器学习装置根据输入数据,执行机器学习运算,得到输出数据,再将该输出数据作为新的输入数据,通过传输电路传输至共享存储器进行数据存储。在本实施例中,由于数据操作信号携带数据操作信号的类型标志位以及待操作的数据的信息,传输电路可以在接收到该数据操作信号后,根据其中的数据操作信号的类型标志位判断该数据操作信号的类型,然后结合该数据操作信号中携带的待操作的数据信息执行对应的操作。这样,根据数据操作信号的类型标志位先进行分类可以快速定位到对应的操作,简化了数据访问逻辑,提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度。

在一个实施例中,上述机器学习装置包括至少一个机器学习单元,所述数据操作信号还包括数据接收标志位,所述将所述输入数据返回至所述机器学习装置,包括:所述传输电路根据所述数据接收标志位的值确定接收所述输入数据的目标机器学习单元,并将所述输入数据发送至所述目标机器学习单元。

在本实施例中,该机器学习装置包括的至少一个机器学习单元(即mlu)所执行的数据信号操作可以共享一个数据接收接口。该mlu可以通过发送接口或共享数据接收接口与传输电路进行信号或数据传输。需要说明的是,该发送接口和共享数据接收接口均可以通过硬件电路的方式实现,对于该发送接口和共享数据接收接口的类型本实施例不做限定。其中,数据操作信号包括数据接收标志位,该数据接收标志位表示可以接收输入数据的目标机器学习单元。该数据接收标志位的标记方式例如可以是:将可以接收输入数据的目标机器学习单元标记为1,可以理解的是,这里将接收的目标机器学习单元标记为1只是一种方式,在实际应用中,也可以将可以接收数据的目标机器学习单元标记为0,本是实施例对该数据接收标志位的具体标记形式不做限定。具体地,传输电路根据数据操作信号中的数据接收标志位的值确定接收输入数据的目标mlu,并将输入数据发送至目标mlu。由于本实施例中,根据数据操作信号中携带的数据接收标志位的标记情况,传输电路可以确定机器学习装置中可以接收输入数据的目标机器学习单元,这样,由于机器学习装置的各机器学习单元在接收数据时是根据数据操作信号中的数据接收标志位确定的,简化数据访存过程中的访存逻辑,提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度。

可选的,当上述数据操作信号的类型标志位的值为cast时,传输电路确定该数据操作信号为广播或者多播指令。在该可选的方式中,数据操作信号的该数据操作信号的类型标志位,用于指示该数据操作信号的操作类型,数据操作信号的类型标志位为cast,表示该数据操作信号为广播或者多播指令,需要理解的是,这里用cast表示广播或多播指令,只是一种实施例,根据实际情况,用户可对该数据类型标志位进行重新定义,本实施例对此不做限定。

可选的,上述数据操作信号的类型标志位可以包括第一类型标志位和第二类型标志位,所述第一类型标志位用于表征所述数据操作信号是否为i/o指令,所述第二类型标志位用于表征所述数据操作信号是否为所述i/o指令中的广播或者多播指令。因此,当第一类型标志位的值为i/o,则所述传输电路确定所述数据操作信号为i/o指令;若所述第二类型标志位的值为1,则所述传输电路确定所述数据操作信号为所述i/o指令中的广播或者多播指令。

该可选的方式中,该数据操作信号包括两个数据类型数据标志位,其中第一类型数据标志位表示该数据操作信号的类型;该第二类型数据标志位设置于该数据操作信号的操作信息中,表示该数据操作信号的具体子类型,具体地,当该数据操作信号中的第一类型标志位的值为i/o,则传输电路确定该数据操作信号为输入/输出指令,若该数据操作信号中第二类型标志位的值为1,则传输电路确定该数据操作信号为输入/输出指令中的广播或者多播指令。

在一个实施例中,图3提供了一种数据处理方法,本实施例涉及的是传输电路根据数据操作信号携带的数据信息在共享存储器读取数据,再根据该数据操作信息将读取的数据返回目标机器学习单元的具体过程。如图3所示,若所述待操作的数据的信息包括所述待操作的数据在所述共享存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址,上述s103包括:

s201,所述传输电路自所述源地址开始读取所述共享存储器,获取满足所述数据长度的所述输入数据。

本实施例中,由于数据操作信号的待操作的数据的信息中携带了待操作的数据在共享存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址,则传输电路自该共享存储器中的源地址开始读取数据,根据预设规则读取满足待操作的数据长度,其中,该待操作的数据长度是用户根据实际情况自行设定,本实施对此不做限定。传输电路获取满足该数据长度的输入神经元数据和数据,是按照预设规则从共享存储器中读取满足该数据长度的数据的,其中该预设规则也为用户根据实际情况制定的规则,本实施例对此不做限定,例如,可以是按照从源地址开始一个一个的方式进行读取,直到读取的数据长度满足该数据长度。

s202,所述传输电路根据所述数据返回地址以及所述数据接收标志位,将所述输入数据返回至所述目标机器学习单元中。

基于上述s201步骤中,传输电路获取的满足数据长度的输入数据,将该数据返回至待操作的数据的信息中的数据返回地址,其中,该待操作的数据的信息中的数据返回地址可以是机器学习装置的多个目标机器学习单元中的地址。其中,传输电路是根据数据操作信号中携带的数据接收标志位确定数据返回至机器学习装置中的目标机器学习单元的。

本实施例提供的数据处理方法,传输电路自源地址开始读取共享存储器,获取满足所述数据长度的输入数据,根据数据返回地址以及数据接收标志位,将输入数据返回至目标机器学习单元中,由于传输电路在获取满足所述数据长度的输入数据时,是按照该数据操作信号中数据操作信息指示的读取规则对数据进行读取的,简化了传输电路的读取数据逻辑,提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度

在一个实施例中,图4提供了一种数据处理方法,在上述任一实施例的基础上,该实施例中的操作信息还可以包括跳转信息,所述跳转信息包括跳转步长以及每次跳转后所操作的跳转数据长度。该实施例涉及的是传输电路根据操作信息中的跳转信息对共享存储器中的数据进行读取的具体过程。如图4所示,上述s201包括:

s301,所述传输电路自所述源地址开始读取所述共享存储器,根据当前次跳转后的跳转数据长度获取第一跳转数据。

本实施例中,数据操作信号的操作信息中包括了跳转信息,该跳转信息用于指示该传输电路在根据该数据操作信号读取待操作数据信息时,是依照该跳转信息的规则读取。其中,该跳转信息中包括了跳转步长以及每次跳转后所操作的跳转数据长度,其中,该跳转数据长度可以为预设的数据长度。可选地,该跳转信息包括stride跳转信息和/或segment跳转信息,所述stride跳转信息用于表征所述数据操作信号每次的跳转步长;所述segment跳转信息用于表征预设的所述数据操作信号每次的分割大小。

具体地,传输电路从待操作的数据信息中的源地址开始读取共享存储器,在当前次跳转后,将读取的跳转数据长度的数据确定为第一跳转数据,其中,该第一跳转数据表示的是传输电路在读取数据时跳转预设长度数据后获取的数据,其中该预设长度为用户根据实际情况自行设定,本实施例对此不做限定。

s302,所述传输电路获取所述第一跳转数据的最后一个地址,并根据所述跳转步长从所述最后一个地址跳转至目标跳转地址。

基于上述s301步骤中读取的第一跳转数据,传输电路获取该第一跳转数据的最后一个地址,并根据跳转信息中的跳转步长(例如stride步长),从该第一跳转数据的最后一个地址开始跳转该跳转步长的长度至目标跳转地址,可以理解的是,该第一跳转数据的最后一个地址与目标跳转地址之间的长度为跳转信息中的跳转步长。

s303,所述传输电路自所述目标跳转地址开始,根据跳转后的跳转数据长度获取第二跳转数据,直至每次跳转后得到的跳转数据的长度满足所述数据长度为止。

本步骤中,传输电路读取数据时从上述s302步骤中确定的目标跳转地址开始,跳转预设长度的数据,然后将该跳转预设长度后的数据确定为第二跳转数据,若该第二跳转数据的地址距上述开始跳转的源地址之间的长度满足了机器学习装置所需数据的数据长度,则表示该机器学习装置所需数据读取完毕,若该第二跳转数据的地址距上述开始跳转的源地址之间的长度不满足了机器学习装置所需数据的数据长度,则从该第二跳转数据的最后一个地址开始继续依照上述s301至s303步骤中的跳转顺序跳转以读取该数据,直至该第二跳转数据的地址距上述开始跳转的源地址之间的长度满足了机器学习装置所需数据的数据长度,即表示该机器学习装置所需数据读取完毕为止。

本实施例提供的一种数据处理方法,其实现原理和技术效果与上述数据处理装置的实施例类似,在此不再赘述。本实施例提供的数据处理方法,传输电路自源地址开始读取共享存储器,根据当前次跳转后的跳转数据长度获取第一跳转数据,并从该第一跳转数据的最后一个地址开始按照跳转步长跳转至目标跳转地址,然后自目标跳转地址开始,根据跳转后的跳转数据长度获取第二跳转数据,直至每次跳转后得到的跳转数据的长度满足数据长度为止,这样,在操作信息包括跳转信息时,由于传输电路是根据跳转信息的跳转规则进行数据读取,简化了传输电路的读取数据逻辑,提高了数据访问效率,大大提高了机器学习芯片在数据访问时的访问速度。

由于传输电路根据接收数据操作信号进行操作时,开始接收的数据操作信号为一个编码指令,需要先对该数据操作信号进行译码解析,因此本申请实施例提供一种数据处理方法,如图5所示,所述数据处理装置中的传输电路接收所述数据处理装置中的机器学习装置发送的数据操作信号包括:

s401,所述传输电路对所述数据操作信号进行解析,以得到所述数据操作信号的类型标志位以及待操作的数据的信息。

需要说明的是,一般在数据处理过程中数据操作信号数量比较多,传输电路在处理其中一个数据操作信号时,其他的需要存储在起来,具体地,传输电路对该数据操作信号进行解析,解析该数据操作信号中携带的数据信息和该数据操作信号的类型标志位。其中,该数据操作信息可以包括待操作数据长度,目标地址以及原始地址等信息,本实施例对此不做限定。

s402,所述传输电路依照指令队列执行所述解析的数据操作信号;所述指令队列用于表征所述数据操作信号的执行顺序。

需要理解的是,该数据操作信号在执行时是需要按照顺序依次完成的,基于上述s401步骤中的传输电路对该数据操作信号进行解析后,得到的数据操作信息和类型标志位,传输电路按照指令队列执行该解析后的数据操作信号。

本实施例提供的一种数据处理方法,通过传输电路对所述数据操作信号进行解析,以得到数据操作信号的类型标志位以及待操作的数据的信息,然后传输电路依照指令队列执行解析的数据操作信号,这样,在执行数据操作信号之前,先对数据操作信号进行解析,然后按照顺序执行,大大提高传输电路根据数据操作信号执行操作的速度。

考虑到传输电路在按照队列中的顺序执行数据操作信号时,需要执行是相互关联的数据操作信号,因此,本申请实施例提供另外一个实施例,如图6所示,在所述传输电路依照指令队列执行所述解析的数据操作信号之前,所述方法还包括:

s501,所述传输电路判断相邻的所述解析的数据操作信号的依赖关系,得到判断结果;所述依赖关系表征第s个数据操作信号与所述第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系。

其中,传输电路需要判断相邻的所述解析的数据操作信号的依赖关系,根据判断结果决定处理的两个相邻的数据操作信号之间是要有关联性的,其中,第s个数据操作信号表示的是数据操作信号中的任何一个信号,不特指某一个信号。则第s-1个数据操作信号表示第s个数据操作信号的前一个信号。

可选地,所述传输电路判断相邻的所述解析的数据操作信号的依赖关系的一种可实现方式为:所述传输电路分别获取依据所述第s个数据操作信号提取所述第s个数据操作信号中所需数据的第s个数据操作信号,和依据所述第s-1个数据操作信号提取所述第s-1个数据操作信号中所需数据的第零存储地址区间;若所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,所述传输电路确定所述第s个数据操作信号与所述第s-1个数据操作信号具有依赖关系;若所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,所述传输电路确定所述第s个数据操作信号与所述第s-1个数据操作信号不具有依赖关系。其中,传输电路分别根据第s个数据操作信号的第s个数据操作信号和第s-1个数据操作信号的第零存储地址区间之间的关系,判断相邻的所述解析的数据操作信号的依赖关系,判断方式可以是若第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则该第s个数据操作信号与第s-1个数据操作信号不具有依赖关系,若第一存储地址区间与所述第零存储地址区间有重叠的区域,则表示第s个数据操作信号与第s-1个数据操作信号有依赖关系。

s502,若所述判断结果为所述第s个数据操作信号与所述第s-1个数据操作信号存在依赖关系,所述传输电路缓存所述第s个数据操作信号,在所述第s-1个数据操作信号执行完毕后,提取所述第s个数据操作信号。

基于上述步骤中传输电路判断的两个相邻的数据操作信号的依赖关系,开始依照顺序执行数据操作信号,若判断结果为第s个数据操作信号与第s-1个数据操作信号存在依赖关系,则传输电路先缓存该第s个数据操作信号,在第s-1个数据操作信号执行完毕后,再提取该第s个数据操作信号。

本实施例提供的一种数据处理方法,由于传输电路会先通过判断两个相邻的数据操作信号之间的关联性保证数据操作信号的连贯性,这样,前期有条不紊的准备工作保证了后期根据该数据操作信号执行相应操作的顺利,从而提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度。

应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

参照图7所示,本申请实施例还提供了一种组合处理装置,其包括上述数据处理装置、通用互联接口和除上述数据处理装置以外的其它处理装置;数据处理装置与其它处理装置进行交互,共同完成用户指定的计算操作。其中,其他处理装置,包括中央处理器cpu、图形处理器gpu、神经网络处理器等通用或专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为数据处理装置与外部数据和控制的接口,包括数据搬运,完成对本数据处理装置的开启、停止等基本控制;其他处理装置也可以和数据处理装置协作共同完成运算任务。通用互联接口,用于在所述数据处理装置与其他处理装置间传输数据和控制指令。该数据处理装置从其他处理装置中获取所需的输入数据,写入数据处理装置片上的共享存储器;可以从其他处理装置中获取控制指令,写入数据处理装置片上的机器学习装置;也可以读取数据处理装置的共享存储器中的数据并传输给其他处理装置。

可选的,参照图8所示,上述组合处理装置还可以包括存储装置,存储装置分别与所述数据处理装置和所述其他处理装置连接。存储装置用于保存在所述数据处理装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本数据处理装置或其他处理装置的内部存储中无法全部保存的数据。

该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的soc片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。

在一个实施例中,本申请实施例还提供了一种机器学习芯片,其包括了上述数据处理装置和/或组合处理装置。

在一个实施例中,本申请实施例还提供了一种芯片封装结构,其包括了上述芯片。

在一个实施例中,本申请实施例还提供了一种板卡,其包括了上述芯片封装结构。参照图9所示,上述板卡除了包括上述芯片封装结构81以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件82、接口装置83和控制器件84;所述存储器件82与所述芯片封装结构81内的机器学习芯片811通过总线连接,用于存储数据,所述存储器件82可以包括多组存储单元821。每一组所述存储单元821与所述机器学习芯片811通过总线连接。可以理解,每一组所述存储单元821可以是ddrsdram(doubledataratesdram,双倍速率同步动态随机存储器)。

ddr不需要提高时钟频率就能加倍提高sdram的速度。ddr允许在时钟脉冲的上升沿和下降沿读出数据。ddr的速度是标准sdram的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个ddr4颗粒(芯片)。在一个实施例中,所述机器学习芯片内部可以包括4个72位ddr4控制器,上述72位ddr4控制器中64bit用于传输数据,8bit用于ecc校验。可以理解,当每一组所述存储单元中采用ddr4-3200颗粒时,数据传输的理论带宽可达到25600mb/s。在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。ddr在一个时钟周期内可以传输两次数据。在所述芯片中设置控制ddr的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。

所述接口装置83与所述芯片封装结构81内的机器学习芯片811电连接。所述接口装置83用于实现所述机器学习芯片811与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置83可以为标准pcie(peripheralcomponentinterconnectexpress,一种高速串行计算机扩展总线标准)接口。比如,待处理的数据由服务器通过标准pcie接口传递至所述机器学习芯片,实现数据转移。优选的,当采用pcie3.0x16接口传输时,理论带宽可达到16000mb/s。在另一个实施例中,所述接口装置83还可以是其他的接口,本申请实施例并不限制上述其他的接口的具体表现形式,所述接口装置能够实现转接功能即可。另外,所述机器学习芯片811的计算结果仍由所述接口装置83传送回外部设备(例如服务器)。

所述控制器件84与所述机器学习芯片811电连接。所述控制器件84用于对所述芯片的状态进行监控。具体的,所述机器学习芯片811与所述控制器件84可以通过spi(serialperipheralinterface,串行外设接口)接口电连接。所述控制器件可以包括单片机(microcontrollerunit,mcu)。如所述机器学习芯片可以包括多个数据处理装置和/或组合处理装置,可以带动多个负载。因此,所述机器学习芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制器件84可以实现对所述机器学习芯片中多个数据处理装置和/或组合处理装置的工作状态的调控。

在一些实施例里,申请了一种电子设备,其包括了上述板卡。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。

本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

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

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的全部或部分处理过程是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1