CN111382855B - 数据处理装置、方法、芯片及电子设备 - Google Patents

数据处理装置、方法、芯片及电子设备 Download PDF

Info

Publication number
CN111382855B
CN111382855B CN201811628203.XA CN201811628203A CN111382855B CN 111382855 B CN111382855 B CN 111382855B CN 201811628203 A CN201811628203 A CN 201811628203A CN 111382855 B CN111382855 B CN 111382855B
Authority
CN
China
Prior art keywords
data
storage
header
unit
processing
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.)
Active
Application number
CN201811628203.XA
Other languages
English (en)
Other versions
CN111382855A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201811628203.XA priority Critical patent/CN111382855B/zh
Priority to PCT/CN2019/121056 priority patent/WO2020114283A1/zh
Publication of CN111382855A publication Critical patent/CN111382855A/zh
Application granted granted Critical
Publication of CN111382855B publication Critical patent/CN111382855B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

本申请提供一种数据处理装置、方法、芯片及电子设备,所述数据处理装置包括:存储电路以及直接内存访问电路,该直接内存访问电路包括直接内存存储模块,所述直接内存存储模块包括:首部数据解析单元以及尾部数据缓存单元;所述首部数据解析单元的第一输出端和所述尾部数据缓存单元的第一输出端,均与所述存储电路的输入端连接,所述存储电路的输出端与所述首部数据解析单元的第一输入端,以及所述尾部数据缓存单元的第一输入端连接,所述首部数据解析单元的第二输出端与所述尾部数据缓存单元的第二输入端连接,该装置可以根据接收到的数据存储处理参数,并将待存储数据按照目标分布形式存放,提高了数据处理装置的通用性。

Description

数据处理装置、方法、芯片及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据处理装置、方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字处理装置的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,通常需要对大量的数据进行不同的运算处理,并在运算处理过程中或运算处理结束后将数据流存储。
目前,数据处理装置可以对大量的数据流进行存储,以供运算处理时交换数据。但是,现有的数据处理装置并不能对压缩格式的数据进行存储,导致数据处理装置的通用性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种数据处理装置、方法、芯片及电子设备。
本发明实施例提供一种数据处理装置,所述数据处理装置用于执行机器学习计算,该数据处理装置包括:存储电路以及直接内存访问电路,该直接内存访问电路包括直接内存存储模块,所述直接内存存储模块包括:首部数据解析单元以及尾部数据缓存单元;所述首部数据解析单元的第一输出端和所述尾部数据缓存单元的第一输出端,均与所述存储电路的输入端连接,所述存储电路的输出端与所述首部数据解析单元的第一输入端,以及所述尾部数据缓存单元的第一输入端连接,所述首部数据解析单元的第二输出端与所述尾部数据缓存单元的第二输入端连接;
在其中一个实施例中,所述存储电路用于对所述直接内存访问电路输入数据,并向所述首部数据解析单元以及所述尾部数据缓存单元,输入所述数据存储处理参数,所述首部数据解析单元用于根据所述数据存储处理参数,从第一缓存模块中读取所述待存储数据中的第一部分数据,并将所述第一部分数据写入第二缓存模块中;所述首部数据解析单元还用于解析所述第一部分数据得到所述第一部分数据中的信息,所述尾部数据缓存单元用于根据所述数据存储处理参数,以及所述第一部分数据中的信息,从第一缓存模块中读取所述待存储数据中的第二部分数据,并将所述第二部分数据写入第二缓存模块中。
在其中一个实施例中,所述数据处理装置还包括控制电路以及运算电路,所述控制电路用于向存储电路输入所述数据存储处理参数,并且还用于获取计算指令,并解析所述计算指令得到多个运算指令,将多个所述运算指令输入至所述运算电路中,所述运算电路包括主处理单元以及从处理单元。
在其中一个实施例中,所述首部数据解析单元具体用于根据所述数据存储处理参数,从所述第一缓存模块中读取所述待存储数据中的首部数据,并将所述首部数据写入所述第二缓存模块中,同时,解析所述首部数据部分得到所述首部数据中包含的信息,所述尾部数据缓存单元具体用于根据所述数据存储处理参数,以及所述首部数据中包含的信息,从所述第一缓存模块中读取所述待存储数据中的尾部数据,并将所述尾部数据写入所述第二缓存模块中。
在其中一个实施例中,所述直接内存存储模块还包括首部数据计数单元以及地址累加单元,所述首部数据计数单元用于记录每一次存储的所述第一部分数据的个数,得到累计的所述第一部分数据的个数,并根据所述数据存储处理参数,确定完成存储操作并停止所述存储操作,所述地址累加单元用于根据累计的所述第一部分数据的个数以及所述数据存储处理参数,计算下一次存储操作时,第一部分数据的起始地址和目标地址。
在其中一个实施例中,所述首部数据解析单元的第三输出端与所述首部数据计数单元的输入端连接,所述首部数据解析单元的第四输出端与所述地址累加单元的第一输入端连接,所述首部数据计数单元的输出端与所述地址累加单元的第二输入端连接,所述地址累加单元的输出端与所述首部数据解析单元的第二输入端连接。
本实施例提供的一种数据处理装置,该装置中的直接内存存储模块包括,首部数据解析单元和尾部数据缓存单元,通过这两个单元可以对压缩格式的数据进行存储,并根据接收到的数据存储处理参数,将待存储数据按照目标分布形式存放,从而提高数据处理装置的通用性。
本发明实施例提供一种数据处理方法,所述方法包括:
读取第一缓存模块中,待处理数据中的第一部分数据;
根据数据存储处理参数,对所述第一部分数据进行解析,得到所述第一部分数据中的信息;
根据第一部分数据中的所述信息,读取所述待处理数据中的第二部分数据;
根据所述数据存储处理参数,将所述第一部分数据以及所述第二部分数据,写入第二缓存模块中。
在其中一个实施例中,所述读取第一缓存模块中,待处理数据中的第一部分数据,包括:读取第一缓存模块中待处理数据中的首部数据。
在其中一个实施例中,所述根据数据存储处理参数,对所述第一部分数据进行解析,得到所述第一部分数据中的信息,包括:根据所述数据存储处理参数,对所述第一部分数据进行解析,得到所述待处理数据中首部数据包含的信息。
在其中一个实施例中,所述根据第一部分数据中的所述信息,读取所述待处理数据中的第二部分数据,包括:根据第一部分数据中首部数据包含的信息,读取所述待处理数据中的尾部数据。
在其中一个实施例中,所述根据所述数据存储处理参数,将所述第一部分数据以及所述第二部分数据,写入第二缓存模块中,包括:根据所述数据存储处理参数中包含的尾部数据,以及首部数据的信息,将所述第一部分数据以及所述第二部分数据,写入第二缓存模块中。
在其中一个实施例中,所述方法还包括:
获取所述第一部分数据的个数;
根据第一部分数据的所述个数以及所述数据存储处理参数,判断待处理数据是否已完成存储操作;
若已完成存储操作,则停止存储操作。
在其中一个实施例中,所述根据第一部分数据的所述个数以及所述数据存储处理参数,判断待处理数据是否已完成存储操作的步骤之后,还包括:
若未完成存储操作,则计算下一次存储操作时,所述第一部分数据中首部数据的起始地址以及目标地址;
根据所述第一部分数据的起始地址以及目标地址,继续执行所述接收第一缓存模块中,待处理数据中的第一部分数据。
本实施例中提供的一种数据处理方法,接收第一缓存模块中的待处理数据,根据数据存储处理参数,对所述待处理数据进行解析,得到所述待处理数据中的信息,根据待处理数据中的所述信息,读取所述待处理数据,根据所述数据存储处理参数,将所述待处理数据写入第二缓存模块中,该方法可以将压缩格式的数据从第一缓存模块中,写入第二缓存模块中,并将存储的数据按照目标分布形式存放,从而提高数据处理装置的通用性。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的数据处理装置;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行链接并传输数据;
其中,多个所述数据处理装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的数据处理装置、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本发明实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的数据处理装置。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的一种数据处理装置的结构示意图;
图2为一实施例提供的一种数据处理装置的具体结构示意图;
图3为一实施例提供的一种对数据进行存储处理的方法流程示意图;
图4为一实施例提供的一种组合处理装置的结构图;
图5为一实施例提供的另一种组合处理装置的结构图;
图6为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据处理装置可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中对数据进行解压处理,其具体结构示意图如图1所示。
如图1所示为一实施例提供的一种数据处理装置的结构示意图。如图1所示,该数据处理装置用于执行机器学习计算;所述数据处理装置包括存储电路11以及直接内存访问电路12,该直接内存访问电路12包括直接内存存储模块121,所述直接内存存储模块121包括:首部数据解析单元1211以及尾部数据缓存单元1212;所述首部数据解析单元1211的第一输出端和所述尾部数据缓存单元1212的第一输出端,均与所述存储电路11的输入端连接,所述存储电路11的输出端与所述首部数据解析单元1211的第一输入端,以及所述尾部数据缓存单元1212的第一输入端连接,所述首部数据解析单元1211的第二输出端与所述尾部数据缓存单元1212的第二输入端连接。
其中,所述存储电路11用于向所述直接内存访问电路12输入待存储数据,并向所述首部数据解析单元1211以及所述尾部数据缓存单元1212,输入所述数据存储处理参数,所述首部数据解析单元1211用于根据所述数据存储处理参数,从第一缓存模块111中读取所述待存储数据中的第一部分数据,并将所述第一部分数据写入第二缓存模块112中;所述首部数据解析单元还用于解析所述第一部分数据得到所述第一部分数据中的信息,所述尾部数据缓存单元1212用于根据所述数据存储处理参数,以及所述第一部分数据中的信息,从第一缓存模块111中读取所述待存储数据中的第二部分数据,并将所述第二部分数据写入第二缓存模块112中。
可选的,所述机器学习计算包括:人工神经网络运算。可选的,如图2所示,所述数据处理装置还包括控制电路13以及运算电路14,所述控制电路13用于向存储电路11输入所述数据存储处理参数,并且还用于获取计算指令,并解析所述计算指令得到多个运算指令,将多个所述运算指令输入至所述运算电路14中,其中,所述运算电路14包括主处理单元141以及从处理单元142。
可选的,所述首部数据解析单元1211具体用于根据所述数据存储处理参数,从所述第一缓存模块111中读取所述待存储数据中的首部数据,并将所述首部数据写入所述第二缓存模块112中,同时,解析所述首部数据得到所述首部数据中包含的信息,所述尾部数据缓存单元1212具体用于根据所述数据存储处理参数,以及所述首部数据中包含的信息,从所述第一缓存模块111中读取所述待存储数据中的尾部数据,并将所述尾部数据写入所述第二缓存模块112中。
具体的,数据处理装置中的首部数据解析单元1211可以从存储电路11中的第一缓存模块111,读取待存储数据的首部数据,并可以接收存储电路11输入的数据存储处理参数,同时,首部数据解析单元1211可以将读取的待存储数据的首部数据,写入存储电路11中的第二缓存模块112。可选的,待存储数据中的第一部分数据可以为待存储数据中的首部数据,待存储数据中的第二部分数据可以为待存储数据中的尾部数据。
可选的,数据处理装置每一次可以存储一个待存储数据,并且该待存储数据可以为压缩格式的数据,其中,压缩格式的数据可以包括首部数据和尾部数据两部分,该尾部数据中可包含压缩的具体数据;首部数据中的信息可以包括尾部数据的大小,尾部数据的起始地址,以及尾部数据的分布形式等信息。可选的,上述尾部数据的分布形式可以为一维紧密型,二维紧密型,三维紧密型,还可以为其它任意维度紧密型。
示例性的,若尾部数据中可以包含多个压缩格式的数据,一个压缩格式的数据后连续相接下一个压缩格式的数据,依次类推,形成包含连续分布的多个压缩格式的数据,该种分布形式可以为一维紧密型;多个压缩格式数据的分布形式也可以是固定位宽大小,例如可以为8比特位宽的矩阵分布形式。若第一个压缩格式的数据为6比特位宽的数据“010100”,第二个压缩格式数据可以为6比特位宽的数据“101101”,则第二个压缩格式数据的高2位数值“10”可以连续相接在第一个压缩数据后,即“01010010”这8个数值均位于同一行,第二个压缩格式数据的低4位数值“1101”可以分布于第二行,然后相连第三个压缩数据,依次类推,每一行存储的数值位数是固定的,多余的数值可以分布于下一行,该种分布形式可以称为二维紧密型。另外,多个压缩格式数据的分布形式还可以为多个固定大小的矩阵分布,例如可以为8位*8位的多个矩阵分布形式。若第一个压缩格式的数据为6比特位宽的数据“010100”,第二个压缩格式数据可以为6比特位宽的数据“101101”,则第二个压缩格式数据的高2位数值“10”可以连续相接第一个压缩格式的数据,即“01010010”这8个数值位于同一行,第二个压缩格式数据的低4位数值“1101”可以分布于第二行,然后相连第三个压缩数据,依次类推,每一行存储的数值位数是固定的,多余的数值可以分布于下一行,当压缩格式的数据将第一个固定大小的矩阵框分布完后,可以继续将压缩格式的数据分布于第二个固定大小的矩阵框,依次类推,直到将所有压缩格式的数据全部分布完为止,该种分布形式可以称为三维紧密型。
需要说明的是,数据存储处理参数可以包括首部数据的起始地址,首部数据的目标地址,首部数据的大小以及尾部数据的目标分布形式等信息。可选的,首部数据解析单元1211可以根据首部数据的起始地址,以及首部数据的大小,读取第一缓存模块111中待存储数据的首部数据,并根据首部数据的目标地址,将待存储数据中的首部数据,写入存储电路11中的第二缓存模块112中;另外,首部数据解析单元1211还可以解析首部数据,得到首部数据中包含的信息,将首部数据中包含的信息输入至尾部数据缓存单元1212,尾部数据缓存单元1212根据首部数据包含的信息,读取第一缓存模块111中待存储数据的尾部数据,并根据数据存储处理参数中尾部数据的目标分布形式,将待存储数据中的尾部数据,写入存储电路11中的第二缓存模块112。可选的,上述首部数据的起始地址可以表征待存储数据的首部数据,在第一缓存模块分布的初始格式中,每一行第一个待存储数据的起始地址,与上一行最后一个待存储数据的终止地址之间的间隔地址。可选的,上述首部数据的目标地址可以表征待存储数据的首部数据,在第二缓存模块分布的目标格式中,每一行第一个待存储数据的起始地址,与上一行最后一个待存储数据的终止地址之间的间隔地址。
在本实施例中,待存储数据中尾部数据的目标分布形式,可以与第一缓存模块111中,存放的待存储数据中尾部数据的分布形式相同,此外,若待存储数据中首部数据的起始地址,与待存储数据中首部数据的目标地址相等时,则第一缓存模块111中,待存储数据中首部数据的分布形式,可以与写入第二缓存模块112中,待存储数据中首部数据的分布形式相同,若第一缓存模块和第二缓存模块112中,待存储数据中首部数据的分布形式不相同,则直接内存访问电路12可以将一维紧密型的首部数据,转换成二维紧密型的首部数据,或者将二维紧密型的首部数据,转换成三维紧密型的首部数据,转换的维度在本实施例中并不做任何限定。
可选的,存储电路11可以将存储的数据输入至运算电路14中,进行不同的运算处理。可选的,上述控制电路13还可以对接收到的数据存储指令进行解析,得到数据存储处理参数。
另外,继续参见图2,上述数据处理装置中的存储电路11可以包括:寄存器、缓存中任意组合。缓存可以存储输入数据,寄存器可以存储输入数据中标量数据,缓存可以包括高速暂存缓存。可选的,控制电路13可以包括:指令缓存单元131、指令处理单元132以及存储队列单元133,其中,指令缓存单元131可以存储人工神经网络运算关联的计算指令,指令处理单元132可以对计算指令解析得到多个运算指令,存储队列单元133可以存储指令队列,该指令队列可以包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
可选的,上述控制电路13还可以包括依赖关系处理单元134,该依赖关系处理单元134用于在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元。
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:依据所述第一运算指令提取所述第一运算指令中所需数据(例如矩阵)的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
本实施例提供的一种数据处理装置,该装置中的直接内存存储模块包括,首部数据解析单元和尾部数据缓存单元,通过这两个单元可以对压缩格式的数据进行存储,并根据接收到的数据存储处理参数,将待存储数据按照目标分布形式存放,从而提高数据处理装置的通用性。
如图2所示为另一个实施例提供的一种数据处理装置中直接内存存储模块的具体结构示意图,该直接内存存储模块121还包括首部数据计数单元1213以及地址累加单元1214,所述首部数据计数单元1213用于记录每一次存储的所述第一部分数据的个数,得到累计的所述第一部分数据的个数,并根据所述数据存储处理参数,确定完成存储操作并停止所述存储操作,所述地址累加单元1214用于根据累计的所述第一部分数据的个数以及所述数据存储处理参数,计算下一次存储操作时,第一部分数据的起始地址和目标地址。
其中,所述首部数据解析单元1211的第三输出端与所述首部数据计数单元1213的输入端连接,所述首部数据解析单元1211的第四输出端与所述地址累加单元1214的第一输入端连接,所述首部数据计数单元1213的输出端与所述地址累加单元1214的第二输入端连接,所述地址累加单元1214的输出端与所述首部数据解析单元1211的第二输入端连接。
具体的,首部数据计数单元1213可以每一次存储操作时,累加记录所存储数据的首部数据个数,得到累计的首部数据个数,并根据数据存储处理参数,确定已完成存储操作,并停止存储操作,其中,上述数据存储处理参数可以包括数据存储指令解析得到的存储数据的目标总个数。其中,每一次存储操作,首部数据解析单元1211可以将解析得到的尾部数据的大小,输入至首部数据计数单元1213中进行累加记录,可以得到多次存储操作的待存储数据的个数。可选的,上述首部数据的个数可以等于待存储数据的个数。
可选的,当累加记录首部数据的个数等于存储数据的目标总个数时,首部数据计数单元1213可以确定已完成存储操作,此时,数据处理装置可以停止存储操作;否则,首部数据计数单元1213确定未完成存储操作,此时,地址累加单元1214可以接收到的首部数据计数单元1213输入的逻辑判断信号,并且可以将计算得到的首部数据的起始地址以及目标地址,输入至首部数据解析单元1211中,继续对剩余的待存储数据进行存储操作。
可选的,上述逻辑判断信号可以为高电平信号1和低电平信号0,其中,1表示首部数据计数单元1213确定已完成存储操作,0表示首部数据计数单元1213确定未完成存储操作。
可选的,地址累积单元1214可以根据接收到的逻辑判断信号,确定是否需要继续计算下一次存储操作时,首部数据的起始地址和目标地址,若地址累积单元1214接收到的低电平信号0,则需要继续计算下一次存储操作时,首部数据的起始地址和目标地址,否则,不需要计算。
可选的,地址累加单元1214可以根据上一次存储操作时,待处理数据中首部数据的个数,每一个待处理数据中首部数据的大小以及待处理数据中首部数据的起始地址,计算下一次存储操作时,首部数据的起始地址和目标地址,其中,首部数据的起始地址可以表征执行下一次存储操作时,待存储数据在第一缓存模块111中,首部数据的起始地址。
可选的,下一次存储操作时,首部数据的起始地址可以等于上一次存储的数据中首部数据的个数与每一个首部数据的大小的乘积,与上一次存储操作的起始地址之和;同时,下一次存储操作时,首部数据的目标地址可以等于上一次存储的数据中首部数据的个数与每一个首部数据的大小的乘积,与上一次存储操作的目的地址之和。
本实施例提供的一种数据处理装置,该装置中的直接内存访问电路包括首部数据计数单元,地址累加单元,以及首部数据解析单元和尾部数据缓存单元,可以对大批量压缩格式的数据进行存储操作,并将待存储数据按照目标分布形式存放,从而提高数据处理装置的通用性。
图3为一实施例提供的数据处理方法的流程示意图,该方法可以通过图1所示的数据处理装置进行处理,本实施例涉及的是对数据进行解压的过程。如图3所示,该方法包括:
S101、读取第一缓存模块中,待处理数据中的第一部分数据。
可选的,上述S101中读取第一缓存模块中,待处理数据中的第一部分数据,包括:读取第一缓存模块中待处理数据中的首部数据。
具体的,数据处理装置中的直接内存存储模块,可以接收存储电路中第一缓存模块中,待处理数据中的第一部分数据。其中,待处理数据可以为压缩格式的数据。可选的,第一缓存模块可以为存储电路中的子模块。可选的,压缩格式的数据可以包括首部数据以及尾部数据两部分。可选的,上述第一部分数据可以为待处理数据中的首部数据。
S102、根据数据存储处理参数,对所述第一部分数据进行解析,得到所述第一部分数据中的信息。
可选的,上述S102中根据数据存储处理参数,对所述第一部分数据进行解析,得到所述第一部分数据中的信息,包括:根据所述数据存储处理参数,对所述第一部分数据进行解析,得到所述待处理数据中首部数据包含的信息。
具体的,上述第一部分数据中的信息可以包括首部数据以及尾部数据,其中,首部数据中包含了尾部数据的信息,尾部数据包含了具体压缩的数据。可选的,上述数据存储处理参数可以包括待存储数据的首部数据的起始地址,首部数据的目标地址,首部数据的大小以及尾部数据的目标分布形式等信息,并且数据处理装置可以根据数据存储处理参数,获取待处理数据中的首部数据,从而获取首部数据中包含的信息。可选的,数据处理装置可以根据首部数据的起始地址,以及首部数据的大小,对待处理数据中的首部数据进行解析,得到待处理数据中首部数据包含的信息,其中,首部数据包含的信息可以为尾部数据的大小,尾部数据的分布类型以及尾部数据的起始地址等信息。
S103、根据第一部分数据中的所述信息,读取所述待处理数据中的第二部分数据。
具体的,数据处理装置可以根据待处理数据中首部数据包含的信息,读取待处理数据中的第二部分数据,并将该第二部分数据存放于直接内存存储模块中的尾部数据缓存单元中。可选的,上述第二部分数据可以为待处理数据中的尾部数据。
S104、根据所述数据存储处理参数,将所述第一部分数据以及所述第二部分数据,写入第二缓存模块中。
可选的,上述S104中根据所述数据存储处理参数,将所述第一部分数据以及所述第二部分数据,写入第二缓存模块中,包括:根据所述数据存储处理参数中包含的尾部数据,以及首部数据的信息,将所述第一部分数据以及所述第二部分数据,写入第二缓存模块中。
具体的,数据处理装置可以根据数据存储处理参数中包含的尾部数据的目标分布形式,以及首部数据的目标地址,将第一部分数据和第二部分数据,均写入第二缓存模块中。可选的,第二缓存模块可以为存储电路中的子模块。
本实施例中提供的一种数据处理方法,接收第一缓存模块中,待处理数据中的第一部分数据,根据数据存储处理参数,对所述第一部分数据进行解析,得到所述第一部分数据中的信息,根据第一部分数据中的所述信息,读取所述待处理数据中的第二部分数据,根据所述数据存储处理参数,将所述第一部分数据以及所述第二部分数据,写入第二缓存模块中,该方法可以将压缩格式的数据从第一缓存模块中,写入第二缓存模块中,并将存储的数据按照目标分布形式存放,从而提高数据处理装置的通用性。
在其中一个实施例中,在上述S103中根据第一部分数据中的所述信息,读取所述待处理数据中的第二部分数据,包括:根据第一部分数据中首部数据包含的信息,读取所述待处理数据中的尾部数据。
具体的,数据处理装置可以根据第一部分数据中包含的尾部数据的大小,尾部数据的分布类型以及尾部数据的起始地址,从第一缓存模块中读取待处理数据中的尾部数据。
本实施例中提供的一种数据处理方法,根据待处理数据中首部数据包含的信息,读取所述待处理数据中的尾部数据,进而根据数据存储处理参数,将待处理数据写入第二缓存模块中,并将存储的数据按照目标分布形式存放,从而提高数据处理装置的通用性。
另一实施例提供的数据处理方法,上述S101中接收第一缓存模块中,待处理数据中的第一部分数据之后,所述方法还包括:
S105、获取所述第一部分数据的个数。
具体的,每一次存储操作,数据处理装置可以获取待处理数据中首部数据的个数。可选的,首部数据的个数可以等于待处理数据中尾部数据的个数。
S106、根据第一部分数据的所述个数以及所述数据存储处理参数,判断待处理数据是否已完成存储操作。
具体的,数据处理装置可以根据第一部分数据的个数,以及数据存储处理参数中存储数据的目标总个数,判断待处理数据是否已完成存储操作。
S107、若已完成存储操作,则停止存储操作。
可选的,如果数据处理装置中的首部数据解析单元判断第一部分数据的个数,可以等于存储数据的目标总个数时,则表明数据处理装置已完成存储操作,此时,可以停止存储操作。
在上述S106中根据第一部分数据的所述个数以及所述数据存储处理参数,判断待处理数据是否已完成存储操作的步骤之后,还包括:
S108、若未完成存储操作,则计算下一次存储操作时,所述第一部分数据中首部数据的起始地址以及目标地址。
可选的,如果数据处理装置中的首部数据解析单元判断待处理数据的个数,可以小于存储数据的目标总个数时,则表明数据处理装置未完成存储操作,此时,数据处理装置中的地址累加单元,可以根据上一次存储操作时,待处理数据中首部数据的个数,每一个待处理数据中首部数据的大小以及待处理数据中首部数据的起始地址,计算下一次存储操作时,首部数据的起始地址和目标地址。其中,下一次存储操作时,首部数据的起始地址可以等于上一次存储的数据中首部数据的个数与每一个首部数据的大小的乘积,与上一次存储操作的起始地址之和;同时,下一次存储操作时,首部数据的目标地址可以等于上一次存储的数据中首部数据的个数与每一个首部数据的大小的乘积,与上一次存储操作的目的地址之和。可选的,每一次存储操作,待处理数据中首部数据的起始地址以及目标地址均可以不相同,也就是说,每一次存储操作时,待处理数据中首部数据的起始地址以及目标地址均需要采用上述方法不断更新。
S109、根据所述第一部分数据的起始地址以及目标地址,继续执行所述接收第一缓存模块中,待处理数据中的第一部分数据。
具体的,若未完成存储操作,则数据处理装置可以根据获得的待处理数据中首部数据的起始地址以及目标地址,继续执行S101的步骤,此时,数据处理装置是针对下一组待处理数据进行存储处理的。
本实施例中提供的一种数据处理方法,如果数据处理装置未完成存储操作,则数据处理装置可以根据获得的,待处理数据中首部数据的起始地址以及目标地址,继续执行存储操作,从而可以对大批量压缩格式的数据进行存储操作,并将待存储数据按照目标分布形式存放,以提高数据处理装置的通用性。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据处理装置,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据处理装置时,数据处理装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图4为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图5所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图6所示,图6提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片封装结构内的芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为数据处理器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种数据处理装置,其特征在于,所述数据处理装置用于执行机器学习计算,所述数据处理装置包括:存储电路以及直接内存访问电路,该直接内存访问电路包括直接内存存储模块,所述直接内存存储模块包括:首部数据解析单元以及尾部数据缓存单元;所述首部数据解析单元的第一输出端和所述尾部数据缓存单元的第一输出端,均与所述存储电路的输入端连接,所述存储电路的输出端与所述首部数据解析单元的第一输入端,以及所述尾部数据缓存单元的第一输入端连接,所述首部数据解析单元的第二输出端与所述尾部数据缓存单元的第二输入端连接;所述首部数据解析单元具体用于根据数据存储处理参数,从第一缓存模块中读取待存储数据中的首部数据,并将所述首部数据写入第二缓存模块中,同时,解析所述首部数据部分得到所述首部数据中包含的信息,所述尾部数据缓存单元具体用于根据所述数据存储处理参数,以及所述首部数据中包含的信息,从所述第一缓存模块中读取所述待存储数据中的尾部数据,并将所述尾部数据写入所述第二缓存模块中;所述待存储数据为压缩格式的数据,所述压缩格式的数据包括首部数据和尾部数据两部分;所述数据存储处理参数包括首部数据的起始地址,首部数据的目标地址,首部数据的大小以及尾部数据的目标分布形式;所述首部数据中的信息包括尾部数据的大小,尾部数据的起始地址以及尾部数据的分布形式。
2.如权利要求1所述的数据处理装置,其特征在于,所述存储电路用于对所述直接内存访问电路输入数据,并向所述首部数据解析单元以及所述尾部数据缓存单元输入所述数据存储处理参数。
3.根据权利要求1-2中任一项所述的数据处理装置,其特征在于,所述数据处理装置还包括控制电路以及运算电路,所述控制电路用于向存储电路输入所述数据存储处理参数,并且还用于获取计算指令,并解析所述计算指令得到多个运算指令,将多个所述运算指令输入至所述运算电路中,所述运算电路包括主处理单元以及从处理单元。
4.根据权利要求2中所述的数据处理装置,其特征在于,所述直接内存存储模块还包括首部数据计数单元以及地址累加单元,所述首部数据计数单元用于记录每一次存储的所述首部数据的个数,得到累计的所述首部数据的个数,并根据所述数据存储处理参数,确定完成存储操作并停止所述存储操作,所述地址累加单元用于根据累计的所述首部数据的个数以及所述数据存储处理参数,计算下一次存储操作时,首部数据的起始地址和目标地址。
5.根据权利要求4中所述的数据处理装置,其特征在于,所述首部数据解析单元的第三输出端与所述首部数据计数单元的输入端连接,所述首部数据解析单元的第四输出端与所述地址累加单元的第一输入端连接,所述首部数据计数单元的输出端与所述地址累加单元的第二输入端连接,所述地址累加单元的输出端与所述首部数据解析单元的第二输入端连接。
6.一种数据处理方法,其特征在于,所述方法包括:
根据数据存储处理参数,读取第一缓存模块中,待处理数据中的首部数据,并将所述首部数据写入第二缓存模块中;
根据数据存储处理参数,对所述首部数据进行解析,得到所述首部数据中包含的信息;
根据首部数据中包含的所述信息,从所述第一缓存模块中读取所述待处理数据中的尾部数据,并将所述尾部数据写入所述第二缓存模块中;所述待处理数据为压缩格式的数据,所述压缩格式的数据包括首部数据和尾部数据两部分;所述数据存储处理参数包括首部数据的起始地址,首部数据的目标地址,首部数据的大小以及尾部数据的目标分布形式;所述首部数据中的信息包括尾部数据的大小,尾部数据的起始地址以及尾部数据的分布形式。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述首部数据的个数;
根据首部数据的所述个数以及所述数据存储处理参数,判断待处理数据是否已完成存储操作;
若已完成存储操作,则停止存储操作。
8.根据权利要求7所述的方法,其特征在于,所述根据首部数据的所述个数以及所述数据存储处理参数,判断待处理数据是否已完成存储操作的步骤之后,还包括:
若未完成存储操作,则计算下一次存储操作时,所述首部数据的起始地址以及目标地址;
根据所述首部数据的起始地址以及目标地址,继续执行所述读取第一缓存模块中,待处理数据中的首部数据。
9.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-5任一项所述的数据处理装置,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据处理装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。
10.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求9所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
11.根据权利要求10所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
12.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求9所述的机器学习运算装置或如权利要求10所述的组合处理装置或如权利要求11所述的组合处理装置。
13.一种电子设备,其特征在于,所述电子设备包括如所述权利要求12所述的神经网络芯片。
14.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求12所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
15.根据权利要求14所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
CN201811628203.XA 2018-12-07 2018-12-28 数据处理装置、方法、芯片及电子设备 Active CN111382855B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811628203.XA CN111382855B (zh) 2018-12-28 2018-12-28 数据处理装置、方法、芯片及电子设备
PCT/CN2019/121056 WO2020114283A1 (zh) 2018-12-07 2019-11-26 数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811628203.XA CN111382855B (zh) 2018-12-28 2018-12-28 数据处理装置、方法、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN111382855A CN111382855A (zh) 2020-07-07
CN111382855B true CN111382855B (zh) 2022-12-09

Family

ID=71219273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811628203.XA Active CN111382855B (zh) 2018-12-07 2018-12-28 数据处理装置、方法、芯片及电子设备

Country Status (1)

Country Link
CN (1) CN111382855B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023509A (zh) * 2012-11-14 2013-04-03 无锡芯响电子科技有限公司 一种硬件lz77压缩实现系统及其实现方法
CN107977166A (zh) * 2017-11-27 2018-05-01 广西塔锡科技有限公司 一种数据存储方法和系统
CN108733317A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 数据存储方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001013237A1 (fr) * 1999-08-13 2001-02-22 Fujitsu Limited Traitement de fichier, dispositif informatique et support memoire

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023509A (zh) * 2012-11-14 2013-04-03 无锡芯响电子科技有限公司 一种硬件lz77压缩实现系统及其实现方法
CN108733317A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 数据存储方法和装置
CN107977166A (zh) * 2017-11-27 2018-05-01 广西塔锡科技有限公司 一种数据存储方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于列存储数据库的压缩态数据访问算法;黄鹏等;《吉林大学学报(理学版)》;20090926;第47卷(第05期);第1013-1019页 *

Also Published As

Publication number Publication date
CN111382855A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN109522052B (zh) 一种计算装置及板卡
US20200242468A1 (en) Neural network computation device, neural network computation method and related products
CN111260043B (zh) 数据选择器、数据处理方法、芯片及电子设备
CN111381882B (zh) 数据处理装置及相关产品
CN111382853B (zh) 数据处理装置、方法、芯片及电子设备
CN111382856B (zh) 数据处理装置、方法、芯片及电子设备
CN111382852B (zh) 数据处理装置、方法、芯片及电子设备
CN111382855B (zh) 数据处理装置、方法、芯片及电子设备
CN111260042B (zh) 数据选择器、数据处理方法、芯片及电子设备
CN111260070B (zh) 运算方法、装置及相关产品
CN111381875B (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111260046B (zh) 运算方法、装置及相关产品
CN111723920A (zh) 人工智能计算装置及相关产品
CN111381878A (zh) 数据处理装置、方法、芯片及电子设备
CN111384944B (zh) 全加器、半加器、数据处理方法、芯片及电子设备
CN112232498B (zh) 一种数据处理装置、集成电路芯片、电子设备、板卡和方法
CN112396186B (zh) 执行方法、装置及相关产品
CN111381802B (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111340229B (zh) 数据选择器、数据处理方法、芯片及电子设备
CN111382390B (zh) 运算方法、装置及相关产品
CN111723921A (zh) 人工智能计算装置及相关产品
CN113033791A (zh) 用于保序的计算装置、集成电路装置、板卡及保序方法
CN114661345A (zh) 加速运算装置、方法、集成电路芯片、计算装置和板卡
CN113032298A (zh) 用于保序的计算装置、集成电路装置、板卡及保序方法
CN114661633A (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
GR01 Patent grant
GR01 Patent grant