数据比较器、数据处理方法、芯片及电子设备与流程

文档序号:21407074发布日期:2020-07-07 14:41阅读:272来源:国知局
数据比较器、数据处理方法、芯片及电子设备与流程

本发明涉及计算机技术领域,特别是涉及一种数据比较器、数据处理方法、芯片及电子设备。



背景技术:

随着数字电子技术的不断发展,各类人工智能(artificialintelligence,ai)芯片的快速发展对于高性能数字比较器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,其需要多次用到数据比较器进行数据大小比较运算。

通常,数据比较器主要是针对一些浮点数以及定点数进行比较运算,并不能对浮定点类型的数据进行比较运算,即数据比较器并不能对除浮点数以及定点数以外其它类型的数据进行比较运算,从而导致数据比较器的通用性较低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种数据比较器、数据处理方法、芯片及电子设备。

本发明实施例提供一种数据比较器,所述数据比较器包括:最高非零位比较电路以及数据比较电路,所述最高非零位比较电路的输出端与所述数据比较电路的输入端连接;

其中,所述最高非零位比较电路用于对接收到的第一数据以及第二数据的尾数位数据中,最高非零位的数位进行比较运算得到比较结果,并根据所述比较结果,确定接收到的所述第一数据以及所述第二数据,是否需要通过与所述最高非零位比较电路的输出端相连的所述数据比较电路进行处理,所述数据比较电路用于对所述第一数据以及所述第二数据中的尾数位数据和/或指数位数据进行比较处理。

在其中一个实施例中,所述最高非零位比较电路包括:第一数据输入端口、第一数据输出端口、最高非零位比较结果输出端口;其中,所述第一数据输入端口用于接收输入的所述第一数据以及所述第二数据,所述第一数据输出端口用于输出所述第一数据以及所述第二数据,所述最高非零位比较结果输出端口用于输出所述第一数据以及所述第二数据的尾数位数据中,最高非零位的数位大小的比较结果。

在其中一个实施例中,所述数据比较电路包括:指数位比较模块和尾数位比较模块,所述指数位比较模块的输出端与所述尾数位比较模块的输入端连接;

其中,所述指数位比较模块用于对接收到的所述第一数据以及所述第二数据中,指数位数据大小进行比较,所述尾数位比较模块用于对接收到的所述第一数据以及所述第二数据中,尾数位数据大小进行比较。

在其中一个实施例中,所述指数位比较模块包括:第二数据输入端口、第二数据输出端口、指数位比较结果输出端口;其中,所述第二数据输入端口用于接收所述最高非零位比较电路输入的所述第一数据以及所述第二数据,所述第二数据输出端口用于输出所述第一数据以及所述第二数据,所述指数位比较结果输出端口用于输出所述第一数据以及所述第二数据中,指数位数据大小的比较结果。

在其中一个实施例中,所述尾数位比较模块包括:第三数据输入端口、第三数据输出端口、尾数位比较结果输出端口;其中,所述第三数据输入端口用于接收所述指数位比较模块输入的所述第一数据以及所述第二数据,所述第三数据输出端口用于输出所述第一数据以及所述第二数据,所述尾数位比较结果输出端口用于输出所述第一数据以及所述第二数据中,尾数位数据大小的比较结果。

本实施例提供的一种数据比较器,通过最高非零位比较电路对接收到的第一数据以及第二数据的尾数位数据中,最高非零位的数位进行比较运算得到比较结果,并根据该比较结果就可以确定接收到的第一数据以及第二数据,是否需要通过下一数据比较电路进行处理,如果不需要进行下一数据比较电路处理,则结束运算获得运算结果,否则就会继续将接收到的第一数据以及第二数据输入至数据比较电路中,当数据比较电路输出高电平信号时,结束运算获得运算结果,该过程可以减少运算量,节省运算时间;另外,该数据比较器能够对浮定点数进行比较运算,提高了数据比较器的通用性。

本发明实施例提供一种数据处理方法,所述方法包括:

接收待处理数据;

对所述待处理数据的尾数位数据中,最高非零位的数位进行比较处理,得到比较结果;

根据所述比较结果,判断所述待处理数据是否需要通过数据比较电路进行比较处理;

若需要,则最高非零位比较电路将所述待处理数据,输入至所述数据比较电路,通过所述数据比较电路比较所述待处理数据中的指数位数据和/或尾数位数据大小,得到运算结果。

在其中一个实施例中,所述根据所述比较结果,判断所述待处理数据是否需要通过数据比较电路进行比较处理,包括:

若所述比较结果为高电平信号,则判断所述待处理数据需要通过所述数据比较电路进行比较处理;

若所述比较结果为低电平信号,则判断所述待处理数据不需要通过所述数据比较电路进行比较处理。

在其中一个实施例中,所述根据所述比较结果,判断所述待处理数据是否需要通过数据比较电路进行比较处理之后,还包括:若不需要通过数据比较电路进行比较处理,则得到运算结果,结束运算。

在其中一个实施例中,所述通过所述数据比较电路比较所述待处理数据中的指数位数据和/或尾数位数据大小,得到运算结果,包括:

通过指数位比较模块比较所述待处理数据中的指数位数据是否相等;

若所述待处理数据中的指数位数据相等,则将所述待处理数据输入至尾数位比较模块,通过所述尾数位比较模块比较所述待处理数据中的尾数位数据是否相等;

若所述待处理数据中的尾数位数据相等,则得到运算结果,结束运算。

在其中一个实施例中,所述通过指数位比较模块比较所述待处理数据中的指数位数据是否相等之后,还包括:若所述待处理数据中的指数位数据不相等,则得到运算结果,结束运算。

在其中一个实施例中,所述通过所述尾数位比较模块比较所述待处理数据中的尾数位数据是否相等之后,还包括:若所述待处理数据中的尾数位数据不相等,则得到运算结果,结束运算。

本实施例提供的一种数据处理方法,数据比较器通过最高非零位比较电路,判断待处理数据是否还需要通过数据比较电路进行比较处理,以减少运算量,节省运算时间;另外,该方法还可以对接收到的浮定点数进行比较运算,有效提高数据比较器的通用性。

本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的数据比较器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过i/o接口传递给其它处理装置;

当所述机器学习运算装置包含多个所述数据比较器时,所述多个所述数据比较器间可以通过特定的结构进行链接并传输数据;

其中,多个所述数据比较器通过pcie总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据比较器共享同一控制系统或拥有各自的控制系统;多个所述数据比较器共享内存或者拥有各自的内存;多个所述数据比较器的互联方式是任意互联拓扑。

本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。

本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的数据比较器、上述所述的机器学习运算装置或者上述所述的组合处理装置。

本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。

本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。

本发明实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。

本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的数据比较器。

本发明实施例提供的一种电子设备,包括如所述的芯片。

附图说明

图1为一实施例提供的一种数据比较器的整体结构示意图;

图2为另一实施例提供的一种数据比较器的结构示意图;

图3为另一实施例提供的另一种数据比较器的结构示意图;

图4为另一实施例提供的一种数据比较器的具体结构示意图;

图5为另一实施例提供的另一种数据比较器的具体结构示意图;

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

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

图8为一实施例提供的一种组合处理装置的结构图;

图9为一实施例提供的另一种组合处理装置的结构图;

图10为一实施例提供的一种板卡的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的数据比较器可应用于ai芯片、现场可编程门阵列fpga(field-programmablegatearray,fpga)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1所示。

图2为一实施例提供的一种数据比较器的结构示意图。如图2所示,该数据比较器包括:最高非零位比较电路01以及数据比较电路02,所述最高非零位比较电路01的输出端与所述数据比较电路02的输入端连接。其中,所述最高非零位比较电路01用于对接收到的第一数据以及第二数据的尾数位数据中,最高非零位的数位进行比较运算得到比较结果,并根据所述比较结果确定接收到的所述第一数据以及所述第二数据,是否需要通过与所述最高非零位比较电路01的输出端相连的所述数据比较电路02进行处理,所述数据比较电路02用于对所述第一数据以及所述第二数据中的尾数位数据和/或指数位数据进行比较处理。

具体的,最高非零位比较电路01和数据比较电路02,可以采用串行方式处理数据,还可以通过或逻辑实现并行方式处理数据。可选的,上述最高非零位比较电路01可以为一种比较两个数据的尾数位数据中,最高非零位的数位大小的电路。可选的,上述第一数据和第二数据均可以为多位宽的无符号浮定点数,且第一数据和第二数据的位宽可以相等。可选的,若无符号浮定点数的位宽为n比特,则无符号浮定点数的指数位位数可以大于等于1,当该指数位位数等于m时,则无符号浮定点数的尾数位位数可以等于n-m。示例性的,若无符号浮定点数为8比特位宽,则最高位数值可以为指数位数值,低7位数值可以为尾数位数值。可选的,上述数据比较电路02可以为一种将接收到的浮定点数中的指数位数据以及尾数位数据进行比较的电路。可选的,上述数据比较电路02可以包括多个具有不同功能的比较模块。可选的,上述不同功能的比较模块的输入端口可以有多个,各比较模块的每个输入端口的功能可以不相同或相同,输出端口也可以有多个,各比较模块的每个输出端口的功能可以相同或不相同,但是,不同比较模块的输入端口的功能可以相同,也可以不同,不同比较模块的输出端口的功能可以相同,也可以不同,并且不同功能的比较模块的电路结构可以不同,也可以相同。

需要说明的是,上述尾数位数据中最高非零位的数位可以表征为第一数据和第二数据的尾数位数据中的有效位数据,从最低位数值至最高位数值中的首位非零数值对应的具体位置,其中,最低位数值对应的数位可以表示为0,次低位数值对应的数位可以表示为1,并且有效位数据可以表征尾数位数据中,从最高位数值至最低位数值中的首位非零数值开始,直到最低位数值均为有效位数据。示例性的,若无符号浮定点数的尾数位数据a为“00101”,尾数位数据中的有效位数据为“101”,有效位数据中最低位数值“1”可以称为第0位数值,次低位数值“0”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中高位数值计算,尾数位数据中最高非零位的数位可以等于2,若无符号浮定点数的尾数位数据b为“01110”,尾数位数据中的有效位数据为“1110”,有效位数据中最低位数值“0”可以称为第0位数值,次低位数值“1”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中高位数值计算,尾数位数据中最高非零位的数位可以等于3,此时,尾数位数据中最高非零位的数位较大的无符号浮定点数较大,也就是说尾数位数据中最高非零位的位置较低的无符号浮定点数较小,即a小于b。

本实施例提供的一种数据比较器,通过最高非零位比较电路对接收到的第一数据以及第二数据的尾数位数据中,最高非零位的数位进行比较运算得到比较结果,并根据该比较结果就可以确定接收到的第一数据以及第二数据,是否需要通过下一数据比较电路进行处理,如果不需要进行下一数据比较电路处理,则结束运算获得运算结果,否则就会继续将接收到的第一数据以及第二数据输入至数据比较电路中,当数据比较电路输出高电平信号时,结束运算获得运算结果,该过程可以减少运算量,节省运算时间;另外,该数据比较器能够对浮定点数进行比较运算,提高了数据比较器的通用性。

图3为另一实施例提供的一种数据比较器的结构图。如图3所示,该数据比较器包括:判断电路11以及比较电路12,所述判断电路11包括零值判断模块111,所述比较电路12包括符号位比较模块121、最高非零位比较模块122以及数据比较模块123,所述零值判断模块111的输出端与所述符号位比较模块121的输入端,所述符号位比较模块121的输出端与所述最高非零位比较模块122的输入端连接,所述最高非零位比较模块122的输出端与所述数据比较模块123的输入端连接;

其中,所述零值判断单元111用于判断接收到的所述第一数据以及所述第二数据中是否存在零值,所述符号位比较单元121用于对接收到的所述第一数据以及所述第二数据的符号位数值大小进行比较,所述最高非零位比较单元122用于对接收到的所述第一数据以及所述第二数据的尾数位数据中,最高非零位的数位进行比较运算得到比较结果,所述数据比较单元123用于对接收到的所述第一数据以及所述第二数据中,尾数位数据和/或指数位数据进行比较处理。

具体的,判断电路11和比较电路12可以采用串行方式处理数据,还可以通过或逻辑实现并行方式处理数据。可选的,上述第一数据以及第二数据均可以为多位宽的有符号浮定点数,并且第一数据和第二数据的位宽相等。可选的,若有符号浮定点数的位宽为n比特,则有符号浮定点数的符号位位数可以等于1,符号位数值可以等于有符号浮定点数中的最高位数值,指数位的总位数可以大于等于1,当指数位的位数等于m时,则尾数位的位数可以等于n-m-1。示例性的,若有符号浮定点数为8比特位宽,则有符号浮定点数中的最高位数值可以为符号位数值,次高位数值可以等于指数位数值,剩余的低6位数值可以为尾数位数值。可选的,上述数据比较模块123可以为一种比较两个数据中指数位数据和/或尾数位数据大小的电路。可选的,上述数据比较模块123可以包括多个不同功能的数据比较单元。可选的,上述不同功能的数据比较单元的输入端口可以有多个,各数据比较单元的每个输入端口的功能可以不相同或相同,输出端口也可以有多个,各数据比较单元的每个输出端口的功能可以相同或不相同,但是,不同数据比较单元的输入端口的功能可以相同,也可以不同,不同数据比较单元的输出端口的功能可以相同,也可以不同,并且不同功能的数据比较单元的电路结构可以不同,也可以相同。

另外,若零值判断模块111的判断结果为是,则零值判断模块111可以输出高电平信号,此时,结束运算输出运算结果;若零值判断模块111接收到的第一数据和第二数据不满足预设条件,则零值判断模块111可以输出低电平信号,此时,数据比较器不结束运算,需要继续通过下一比较模块对数据进行处理。可选的,上述满足的预设条件可以表征为接收到的浮定点数中零值对应的编码格式,其中,零值对应的编码格式可以表示为有符号浮定点数中,指数位数据以及尾数位数据全为0。

可选的,所述最高非零位比较模块122包括:第三数据输入端口1221、第三数据输出端口1222、最高非零位比较结果输出端口(agtb)1223和(altb)1224;其中,所述第三数据输入端口1221用于接收输入的所述第一数据以及所述第二数据,所述第三数据输出端口1222用于输出所述第一数据以及所述第二数据,所述最高非零位比较结果输出端口(agtb)1223和(altb)1224,分别用于输出所述第一数据以及所述第二数据的尾数位数据中,最高非零位的数位大小的比较结果。

可选的,若有符号的浮定点数为正数,则浮定点数的尾数位数据中,最高非零位的数位越大(即最高非零位的位置越低),对应的有符号浮定点数越小;若有符号的浮定点数为负数,则浮定点数的尾数位数据中,最高非零位的数位越大(即最高非零位的位置越高),对应的有符号浮定点数越小。

示例性的,对于正浮定点数,若浮定点数的尾数位数据a为“00101”,尾数位数据中的有效位数据为“101”,有效位数据中最低位数值“1”可以称为第0位数值,次低位数值“0”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中高位数值计算,尾数位数据中最高非零位的数位可以等于2,若浮定点数的尾数位数据b为“01110”,尾数位数据中的有效位数据为“1110”,有效位数据中最低位数值“0”可以称为第0位数值,次低位数值“1”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中高位数值计算,尾数位数据中最高非零位的数位可以等于3,此时,尾数位数据中最高非零位的数位较大的浮定点数较大,也就是说尾数位数据中最高非零位的位置较低的浮定点数较小,即a小于b。

对于负浮定点数,若浮定点数的尾数位数据a为“00101”,尾数位数据中有效位数据为“101”,有效位数据中最高位数值“1”可以称为第0位数值,次高位数值“0”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中低位数值计算,尾数位数据中最高非零位的数位可以等于2,若浮定点数的尾数位数据b为“01110”,尾数位数据中的有效位数据为“1110”,有效位数据中最高位数值“1”可以称为第0位数值,次高位数值“1”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中低位数值计算,尾数位数据中最高非零位的数位可以等于1,此时,尾数位数据中最高非零位的数位较大的浮定点数较小,也就是说尾数位数据中最高非零位的位置较高的浮定点数较小,即a大于b。

本实施例提供的一种数据比较器,通过判断电路中的零值判断模块,判断接收到的第一数据以及所述第二数据中是否存在零值,如果接收到的所述第一数据以及所述第二数据中存在零值,则该判断电路的判断结果为是,此时,结束运算可以得到运算结果,不需要进行数据比较模块的运算,该过程可以减少运算量,节省运算时间;另外,数据比较器还可以对浮定点数进行比较运算,提高了数据比较器的通用性。

作为其中一个实施例,所述最高非零位比较电路01包括:第一数据输入端口011、第一数据输出端口012、最高非零位比较结果输出端口(agtb1)013和(altb1)014,其中,所述第一数据输入端口011用于接收输入的所述第一数据以及所述第二数据,所述第一数据输出端口112用于输出所述第一数据以及所述第二数据,所述最高非零位比较结果输出端口(agtb1)013和(altb1)014,分别用于输出所述第一数据以及所述第二数据的尾数位数据中,最高非零位的数位大小的比较结果。

需要说明的是,若最高非零位比较结果输出端口(agtb1)013或(altb1)014输出高电平信号,则结束运算得到运算结果。示例性的,若数据比较器接收到的两个无符号浮定点数分别为a和b,则agtb1输出高电平信号可以表征,无符号浮定点数a的尾数位数据中最高非零位的数位,大于无符号浮定点数b的尾数位数据中最高非零位的数位,并说明a小于b;若altb1输出高电平信号可以表征,无符号浮定点数a的尾数位数据中最高非零位的数位,小于无符号浮定点数b的尾数位数据中最高非零位的位数,并说明a大于b。可选的,数据比较器可以根据最高非零位比较结果输出端口(agtb1)013,或(altb1)014输出的高电平信号,确定输出的最大值zmax以及最小值zmin。另外,若所有最高非零位比较结果输出端口均无高电平信号输出,则表征最高非零位比较电路01,需要将接收到的第一数据以及第二数据输入至下一数据比较电路继续进行比较处理。

本实施例提供的一种数据比较器,最高非零位比较电路可以根据最高非零位比较结果输出端口输出比较结果,从而结束运算得到运算结果,该过程可以减少运算量,节省运算时间;另外,数据比较器还可以对浮定点数进行比较运算,提高了数据比较器的通用性。

图4另一实施例提供的一种数据比较器的具体结构示意图,如图4所示,数据比较器包括所述数据比较电路02,该数据比较电路02包括:指数位比较模块021和尾数位比较模块022,所述指数位比较模块021的输出端与所述尾数位比较模块022的输入端连接;

其中,所述指数位比较模块021用于对接收到的所述第一数据以及所述第二数据中,指数位数据大小进行比较,所述尾数位比较模块022用于对接收到的所述第一数据以及所述第二数据中,尾数位数据大小进行比较。

需要说明的是,若数据比较器需要通过数据比较电路02对接收到的第一数据和第二数据进行处理,则通过指数位比较模块021以及尾数位比较模块022,对接收到的第一数据和第二数据中,尾数位数据以及指数位数据依次进行处理,直到其中一个比较模块可以得到一个比较结果为止,对应的比较模块会输出高电平信号,此时,结束运算输出运算结果。可选的,上述比较结果可以包括第一数据和第二数据中,指数位数据大小比较结果,和/或尾数位数据大小比较结果。

本实施例提供的一种数据比较器,通过指数位比较模块和尾数位比较模块,依次判断接收到的第一数据和第二数据中,指数位数据大小和/或尾数位数据大小,如果可以确定接收到的第一数据和第二数据中,指数位数据大小和/或尾数位的大小,则相应的比较模块会输出高电平信号,进而得到运算结果,该数据比较器能够对浮定点数进行比较运算,提高数据比较器的通用性。

作为其中一个实施例,所述指数位比较模块021包括:第二数据输入端口0211、第二数据输出端口0212、指数位比较结果输出端口(agtb2)0213和(altb2)0214,其中,所述第二数据输入端口0211用于接收所述最高非零位比较电路01输入的所述第一数据以及所述第二数据,所述第二数据输出端口0212用于输出所述第一数据以及所述第二数据,所述指数位比较结果输出端口(agtb2)0213和(altb2)0214,分别用于输出所述第一数据以及所述第二数据中,指数位数据大小的比较结果。

需要说明的是,若指数位比较结果输出端口(agtb2)0213或(altb2)0214输出高电平信号,则结束运算得到运算结果。示例性的,若数据比较器接收到的两个无符号浮定点数分别为a和b,则agtb2输出高电平信号可以表征,无符号浮定点数a中的指数位数据大于无符号浮定点数b中的指数位数据,并说明a大于b;若altb2输出高电平信号可以表征,无符号浮定点数a中的指数位数据小于无符号浮定点数b中的指数位数据,并说明a小于b。可选的,数据比较器可以根据指数位比较结果输出端口(agtb2)0213,或(altb2)0214输出的高电平信号,确定输出的最大值zmax以及最小值zmin。另外,若所有指数位比较结果输出端口均无高电平信号输出,则表征指数位比较模块021需要将接收到的第一数据和第二数据输入至下一比较模块继续进行比较处理。

本实施例提供的一种数据比较器,通过指数位比较模块对接收到的第一数据和第二数据中的指数位数据大小进行比较,若比较结果中有高电平信号输出,则结束比较运算得到运算结果,进而可以减少运算量,节省运算时间;另外,数据比较器还可以对浮定点数进行比较运算,提高数据比较器的通用性。

作为其中一个实施例,所述尾数位比较模块022包括:第三数据输入端口0221、第三数据输出端口0222、尾数位比较结果输出端口(agtb3)0223、(altb3)0224和(aeqb3)0225,其中,所述第三数据输入端口0221用于接收所述指数位比较模块021输入的所述第一数据以及所述第二数据,所述第三数据输出端口0222用于输出所述第一数据以及所述第二数据,所述尾数位比较结果输出端口(agtb3)0223,(altb3)0224和(aeqb3)0225,分别用于输出所述第一数据以及所述第二数据中,尾数位数据大小的比较结果。

需要说明的是,若尾数位比较结果输出端口(agtb3)0223,(altb3)0224或(aeqb3)0225输出高电平信号,则结束运算得到运算结果。示例性的,若数据比较器接收到的两个无符号浮定点数分别为a和b,则agtb3输出高电平信号可以表征,无符号浮定点数a中的尾数位数据大于无符号浮定点数b中的尾数位数据,并说明a大于b;若altb3输出高电平信号可以表征,无符号浮定点数a中的尾数位数据小于无符号浮定点数b中的尾数位数据,并说明a小于b。

另外,数据比较器可以根据尾数位比较结果输出端口(agtb3)0223,(altb3)0224或(aeqb3)0225输出的高电平信号,确定输出的最大值zmax以及最小值zmin。

本实施例提供的一种数据比较器,通过尾数位比较模块对接收到的第一数据以及所述第二数据中的尾数位数据大小进行比较,若比较结果中有高电平信号输出,则结束比较运算得到运算结果,该数据比较器还可以对浮定点数进行比较运算,提高了数据比较器的通用性。

在其中一个实施例中,所述零值判断模块111包括:第一数据输入端口1111、第一数据输出端口1112、零值判断结果输出端口(agtb1)1113、(aeqb1)1114以及(altb1)1115,其中,所述第一数据输入端口1111用于接收输入的所述数据,所述第一数据输出端口1112用于输出所述数据,所述零值判断结果输出端口(agtb1)1113,(aeqb1)1114和(altb1)1115,分别用于输出零值判断模块111的判断结果。

具体的,上述三个零值判断结果输出端口(agtb1)1113,(aeqb1)1114以及(altb1)1115输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若零值判断模块111接收到的两个数据均满足预设条件时,则零值判断结果输出端口(aeqb1)1114可以输出高电平信号,另外两个端口可以输出低电平信号,此时,结束运算输出运算结果。可选的,若零值判断结果输出端口(agtb1)1113或(altb1)1115,输出高电平信号时,则表明零值判断模块111接收到的两个数据中存在一个零值,此时,数据比较器可以直接通过零值判断模块111确定两个数据的大小。可选的,若三个零值判断结果输出端口均输出低电平信号时,可以表示零值判断模块111接收到的两个数据中不存在零值,不能结束运算,仍然需要进入下一模块对数据进行比较处理。可选的,上述零值判断模块111对应的预设条件可以为接收到的数据中是否存在零值对应的编码格式。其中,零值可以包括正零和负零,正零对应的编码格式为符号位数值为1,指数位以及尾数位数据中所有数值均为0,负零对应的编码格式为符号位数值为符号位、指数位以及尾数位数据中所有数值均为0。

需要说明的是,上述数据可以为有符号浮定点数。可选的,零值判断模块111可以判断接收到的数据中指数位以及尾数位数据是否均为零值对应的编码格式,对符号位数值并不做任何判断。示例性的,若零值判断模块111接收到的两个数据中,一个为正零,一个为负零,则零值判断模块111中的零值判断结果输出端口(aeqb1)1114可以输出高电平信号,表明数据比较器比较的两个数据相等,即正零等于负零,此时,数据比较器输出的最大值zmax和最小值zmin相等,均为零值。另外,若第一数据和第二数据中,一个为零值,另一个为非零值的情况,则零值判断模块111也可以直接判断数据大小,结束运算,不需要继续通过其它比较模块进行比较运算,还可以理解为,该种情况下,零值判断模块111可以对零值以及非零值的符号位也可以进行判断,直接得到运算结果。

本实施例提供的一种数据比较器,零值判断模块可以根据零值判断结果输出的判断结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它模块的运算,可以减少运算量,节省运算时间;另外,数据比较器还可以对浮定点数进行比较运算,提高了数据比较器的通用性。

作为其中一个实施例,所述符号位比较模块121包括:第二数据输入端口1211、第二数据输出端口1212、符号位比较结果输出端口(agtb2)1213和(altb2)1214,其中,所述第二数据输入端口1211用于接收输入的所述数据,所述第二数据输出端口1212用于输出所述数据,所述符号位比较结果输出端口(agtb2)1213和(altb2)1214,分别用于输出所述数据中符号位数值的大小比较结果。

需要说明的是,若符号位比较结果输出端口(agtb2)1213或(altb2)1214输出高电平信号,则结束运算得到运算结果。示例性的,若数据比较器接收到的两个有符号浮定点数分别为a和b,则agtb2输出高电平信号可以表征,有符号浮定点数a为负数,有符号浮定点数b为正数,则a小于b;若altb2输出高电平信号可以表征,有符号浮定点数a为正数,有符号浮定点数b为负数,则a大于b。另外,若所有符号位比较结果输出端口均无高电平信号输出,则表征符号位比较模块121需要将接收到的数据输入至下一比较模块继续进行比较处理。

另外,数据比较器可以根据符号位比较结果输出端口(agtb2)1213,或(altb2)1214输出的高电平信号,确定输出的最大值zmax以及最小值zmin。

本实施例提供的一种数据比较器,通过符号位比较模块比较接收到的数据中符号位数值的大小,若比较结果中有高电平信号输出,则结束比较运算得到运算结果,进而可以减少运算量,节省运算时间;另外,数据比较器还可以对浮定点数进行比较运算,提高数据比较器的通用性。

图5另一实施例提供的一种数据比较器的具体结构示意图,如图5所示,数据比较器包括所述数据比较模块123,该数据比较模块123包括:指数位比较单元1231和尾数位比较单元1232,所述指数位比较单元1231的输出端与所述尾数位比较单元1232的输入端连接;

其中,所述指数位比较单元1231用于比较接收到的所述数据中指数位数据大小,所述尾数位比较单元1232用于比较接收到的所述数据中尾数位数据大小。

需要说明的是,若数据比较器需要通过数据比较模块123对接收到的数据进行处理,则通过指数位比较单元1231以及尾数位比较单元1232对接收到的数据依次进行处理,直到其中一个比较单元可以得到一个比较结果为止,对应的比较单元会输出高电平信号,此时,结束运算输出运算结果。可选的,上述比较结果可以包括数据中指数位数据的大小比较结果,以及数据中尾数位数据的大小比较结果。

可选的,所述指数位比较单元1231包括:第四数据输入端口1231a、第四数据输出端口1231b、指数位比较结果输出端口(agtb3)1231c和(altb3)1231d,其中,所述第四数据输入端口1231a用于接收输入的所述数据,所述第四数据输出端口1231b用于输出所述数据,所述指数位比较结果输出端口(agtb3)1231c和(altb3)1231d,分别用于输出所述数据中指数位数据大小的比较结果。

可选的,所述尾数位比较单元1232包括:第五数据输入端口1232a、第五数据输出端口1232b、尾数位比较结果输出端口(agtb4)1232c、(altb4)1232d和(aeqb4)1232e,其中,所述第五数据输入端口1232a用于接收输入的所述数据,所述第五数据输出端口1232b用于输出所述数据,所述尾数位比较结果输出端口(agtb4)1232c,(altb4)1232d和(aeqb4)1232e,分别用于输出所述数据中尾数位数据大小的比较结果。

可选的,若有符号浮定点数为正数,则有符号浮定点数中,指数位数据越大,有符号浮定点数越大,尾数位数据越大,有符号浮定点数越大;若有符号浮定点数为负数,则有符号浮定点数中,指数位越大,有符号浮定点数越小,尾数位数据越大,有符号浮定点数越小。

本实施例提供的一种数据比较器,通过指数位比较单元和尾数位比较单元,依次判断接收到的数据中指数位数据的大小和尾数位数据的大小,如果数据比较器可以确定接收到的数据中指数位数据的大小和/或尾数位数据的大小,则相应的比较单元会输出高电平信号,进而得到运算结果,该数据比较器能够对浮定点数进行比较运算,提高数据比较器的通用性。

图6为一实施例提供的数据处理方法的流程示意图,该方法可以通过图2和图4所示的数据比较器进行处理,本实施例涉及的是对数据进行比较运算的过程。如图6所示,该方法包括:

s101、接收待处理数据。

具体的,数据比较器可以接收两个待处理数据。可选的,数据比较器将接收到的待处理数据,输入至最高非零位比较电路,若最高非零位比较电路运算结束后,还需要通过数据比较电路对待处理数据进行处理时,则最高非零位比较电路将接收到的待处理数据,输入至数据比较电路对待处理数据进行比较运算。可选的,上述待处理数据可以为多位宽的无符号浮定点数,并且数据比较器接收到的两个待处理数据的位宽相等。

s102、对所述待处理数据的尾数位数据中,最高非零位的数位进行比较处理,得到比较结果。

具体的,上述比较结果可以为待处理数据的尾数位数据中,最高非零位的数位进行比较,得到比较结果。可选的,上述比较结果可以为逻辑判断信号,该逻辑判断信号可以为高电平信号1,还可以为低电平信号0。

需要说明的是,上述尾数位数据中最高非零位的数位可以表征为尾数位数据中,从最高位数值至最低位数值,首位非零数值对应的具体数位。示例性的,若无符号浮定点数中的尾数位数据a为“00101”,尾数位数据中的有效位数据为“101”,有效位数据中最低位数值“1”可以称为第0位数值,次低位数值“0”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中高位数值计算,尾数位数据中最高非零位的数位可以等于2,若无符号浮定点数的尾数位数据b为“01110”,尾数位数据中的有效位数据为“1110”,有效位数据中最低位数值“0”可以称为第0位数值,次低位数值“1”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中高位数值计算,尾数位数据中最高非零位的数位可以等于3,此时,尾数位数据中最高非零位的数位较高的无符号浮定点数较大,也就是说尾数位数据中最高非零位的位置较低的无符号浮定点数较小,即a小于b,另外,若无符号浮定点数中的尾数位数据a为“01110”,则最高非零位的位数可以等于3,若无符号浮定点数中的尾数位数据b为“00101”,则最高非零位的位数可以等于2,此时,a大于b,这两种情况,最高非零位比较电路均可以输出高电平信号。可选的,当两个无符号浮定点数a和b相等时,最高非零位比较电路可以输出低电平信号。

s103、根据所述比较结果,判断所述待处理数据是否需要通过数据比较电路进行比较处理。

可选的,上述s103中根据所述比较结果,判断所述待处理数据是否需要通过数据比较电路进行比较处理,包括:若所述比较结果为高电平信号,则判断所述待处理数据需要通过所述数据比较电路进行比较处理;若所述比较结果为低电平信号,则判断所述待处理数据不需要通过所述数据比较电路进行比较处理。

可选的,上述s103中根据所述比较结果,判断所述待处理数据是否需要通过数据比较电路进行比较处理的步骤之后,还包括:若不需要通过数据比较电路进行比较处理,则得到运算结果,结束运算。

具体的,数据比较器可以根据最高非零位比较电路输出的比较结果,判断待处理数据是否需要通过数据比较电路继续进行比较处理,以得到运算结果。可选的,上述比较结果为高电平信号时,则数据比较器可以不需要对待处理数据继续进行下一比较处理,否则,数据比较器还需要对待处理数据继续进行下一比较处理。

需要说明的是,若待处理数据的尾数位数据中,最高非零位的数位越低,则对应待处理数据越小,否则,对应待处理数据越大。可选的,若最高非零位比较电路中的最高非零位比较结果输出端口agtb1和altb1,任一个端口输出的是高电平信号时,则表征尾数位数据中最高非零位比较电路的比较结果为高电平信号,此时,数据比较器可以不需要通过数据比较电路进行比较处理。

s104、若需要,则所述最高非零位比较电路将所述待处理数据,输入至所述数据比较电路,通过所述数据比较电路比较所述待处理数据中的指数位数据和/或尾数位数据大小,得到运算结果。

具体的,若数据比较器中的最高非零位比较电路,输出的比较结果为低电平信号,则最高非零位比较电路还可以将待处理数据输入至数据比较电路,继续通过数据比较电路比较待处理数据中的指数位数据和/或尾数位数据大小,根据比较结果得到运算结果。可选的,最高非零位比较电路中,最高非零位比较结果输出端口agtb1和altb1均输出低电平信号时,表征比较结果为低电平信号。可选的,数据比较电路可以根据待处理数据中的指数位数据,和/或尾数位数据的大小比较结果输出高电平信号,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理数据中最大值和最小值,结束运算。

本实施例提供的一种数据处理方法,数据比较器通过最高非零位比较电路,判断待处理数据是否还需要通过数据比较电路进行比较处理,以减少运算量,节省运算时间;另外,该方法还可以对接收到的浮定点数进行比较运算,有效提高数据比较器的通用性。

另一个实施例提供的数据处理方法,上述s104中通过所述数据比较电路比较所述待处理数据中的指数位数据和/或尾数位数据大小,得到运算结果,包括:

s1041、通过指数位比较模块比较所述待处理数据中的指数位数据是否相等。

具体的,最高非零位比较电路可以将待处理数据输入至指数位比较模块,通过指数位比较模块继续比较待处理数据中的指数位数据是否相等。

需要说明的是,当最高非零位比较电路中的最高非零位比较输出端口,没有输出高电平信号时,则最高非零位比较电路可以将待处理数据输入至指数位比较模块继续对待处理数据进行比较处理。

可选的,上述s1041中通过指数位比较模块比较所述待处理数据中的指数位数据是否相等的步骤之后,还包括:若所述待处理数据中的指数位数据不相等,则得到运算结果,结束运算。

需要说明的是,若指数位比较模块接收到的两个待处理数据中的指数位数据不相等时,则指数位数据越大,待处理数据越大,指数位数据越小,待处理数据越小。

s1042、若所述待处理数据中的指数位数据相等,则将所述待处理数据输入至尾数位比较模块,通过所述尾数位比较模块比较所述待处理数据中的尾数位数据是否相等。

具体的,如果指数位比较模块接收到的待处理数据中的指数位数据相等,则指数位比较模块可以将待处理数据输入至尾数位比较模块,通过尾数位比较模块继续比较待处理数据中的尾数位数据是否相等。

可选的,上述s1042中通过所述尾数位比较模块比较所述待处理数据中的尾数位数据是否相等之后,还包括:若所述待处理数据中的尾数位数据不相等,则得到运算结果,结束运算。

需要说明的是,当指数位比较结果输出端口没有输出高电平信号时,指数位比较模块可以将待处理数据输入到尾数位比较模块。

s1043、若所述待处理数据中的尾数位数据相等,则得到运算结果,结束运算。

具体的,如果接收到的待处理数据中的尾数位数据相等,则尾数位比较模块可以通过尾数位比较结果输出端口输出尾数位比较运算结果,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理数据中最大值和最小值,结束比较运算,此时,最大值可以等于最小值。可选的,若接收到的待处理数据中的尾数位数据不相等,则尾数位比较单元也可以得到比较运算结果,数据比较器输出最大值以及最小值。其中,上述尾数位比较运算结果可以为高电平信号。

本实施例提供的一种数据处理方法,数据比较器通过指数位比较模块比较所述待处理数据中的指数位数据是否相等,若所述待处理数据中的指数位数据相等,则将所述待处理数据输入至尾数位比较模块,通过所述尾数位比较模块比较所述待处理数据中的尾数位数据是否相等,若所述待处理数据的尾数位相等,则得到运算结果,结束运算,若尾数位数据不相等,也可以得到运算结果,该方法可以对接收到的浮定点数进行比较运算,有效提高数据比较器的通用性。

图7为一实施例提供的数据处理方法的流程示意图,该方法可以通过图3和图5所示的数据比较器进行处理,本实施例涉及的是对数据进行比较运算的过程。如图7所示,该方法包括:

s201、接收待处理数据。

具体的,数据比较器可以接收两个待处理数据,两个待处理数据均可以为多位宽的有符号位浮定点数,并且两个待处理数据的位宽相等。

s202、通过零值判断模块判断所述待处理数据中是否存在零值。

可选的,数据比较器可以基于浮定点数对应零值的编码标准,通过零值判断模块判断两个待处理数据中是否存在零值。

s203、若不存在零值,则将所述待处理数据输入至符号位比较模块,通过所述符号位比较模块比较所述待处理数据中的符号位数值是否相等。

具体的,若零值判断模块接收到的待处理数据中没有零值的存在,则零值判断模块可以将接收到的待处理数据,输入至符号位比较模块进行比较处理。

s204、若所述符号位数值相等,则将所述待处理数据输入至数据比较模块,通过所述数据比较模块比较所述待处理数据的尾数位数据中,最高非零位的数位、指数位数据和/或尾数位数据大小,得到运算结果。

具体的,若符号位比较模块接收到的两个待处理数据的符号位数值大小相等,则数据比较器将待处理数据输入至数据比较模块,通过数据比较模块继续比较待处理数据中的指数位数据和/或尾数位数据大小,根据比较结果得到运算结果。可选的,数据比较电路可以根据待处理数据中,尾数位数据中最高非零位的数位、指数位数据和/或尾数位数据的比较结果输出高电平信号,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理数据中最大值和最小值,结束运算。

本实施例提供的一种数据处理方法,数据比较器通过最高非零位比较电路,判断待处理数据是否需要通过数据比较模块进行比较处理,若不需要,则得到运算结果结束运算,从而可以减少运算量,节省运算时间;另外,该方法还可以对接收到的浮定点数进行比较运算,有效提高数据比较器的通用性。

作为其中一个实施例,上述s202在通过零值判断模块判断所述待处理数据中是否存在零值的步骤之后,还包括:

s2021、若所述待处理数据中存在零值,根据所述零值判断模块输出的判断结果,判断所述待处理数据是否需要通过下一比较模块进行处理。

可选的,上述s2021中根据所述零值判断模块输出的判断结果,判断所述待处理数据是否需要通过下一比较模块进行处理的步骤之后,还包括:若不需要对所述待处理数据通过下一比较模块进行处理,则得到运算结果,结束运算。

具体的,上述判断结果可以为逻辑判断信号,该逻辑判断信号可以为高电平信号1,还可以为低电平信号0。可选的,若零值判断模块中的零值判断结果输出端口agtb1和altb1中,任意一个端口输出高电平信号时,则可以表征待处理数据中至少存在一个零值;若零值判断模块中的零值判断结果输出端口aeqb1输出高电平信号时,则可以表征待处理数据中存在两个零值,且两个待处理数据相等,此时,数据比较器可以得到运算结果,结束运算。可选的,若两个待处理数据中,一个为零值,另一个为非零值的情况,则零值判断模块也可以直接判断数据大小,结束运算,不需要继续通过其它比较模块进行比较运算,还可以理解为,该种情况下,零值判断模块可以对零值以及非零值的符号位也可以进行判断,直接得到运算结果。

s2022、若需要对所述待处理数据通过下一比较模块进行处理,则继续执行将所述待处理数据输入至符号位比较模块,通过所述符号位比较模块比较所述待处理数据中的符号位数值是否相等的步骤。

需要说明的是,若根据零值判断模块的判断结果判断待处理数据中只存在一个零值,则继续通过符号位比较模块判断两个待处理数据为正数还是负数,若符号位数值相等,对于正数,则任何一个正数均大于零值,对于负数,则任何一个负数均小于零值,若符号位数值不相等,则必然存在正数大于负数。

s2023、若所述符号位数值不相等,则得到运算结果,结束运算。

本实施例提供的一种数据处理方法,若所述待处理数据中存在零值,根据所述零值判断模块输出的判断结果,判断所述待处理数据是否需要通过下一比较模块进行处理,若需要对所述待处理数据通过下一比较模块进行处理,则继续判断待处理数据的符号位数值大小,根据符号位数值大小可以确定待处理数据中的最大值以及最小值,从而可以减少运算量,节省运算时间;另外,该方法还可以对接收到的浮定点数进行比较运算,有效提高数据比较器的通用性。

在其中一个实施例中,上述s204中将所述待处理数据输入至数据比较模块,通过所述数据比较模块比较所述待处理数据中,尾数位数据中的最高非零位数位、指数位数据和/或尾数位数据大小,得到运算结果,包括:

s2041、通过最高非零位比较模块判断所述待处理数据的尾数位数据中,最高非零位的数位大小是否相等。

可选的,上述s2041中通过最高非零位比较模块判断所述待处理数据的尾数位数据中,最高非零位的数位大小是否相等的步骤之后,还包括:若不相等,则得到运算结果,结束运算。

具体的,若有符号的浮定点数为正数,则浮定点数的尾数位数据中,最高非零位的数位越大(即最高非零位的位置越低),对应的有符号浮定点数越小;若有符号的浮定点数为负数,则浮定点数的尾数位数据中,最高非零位的数位越大(即最高非零位的位置越高),对应的有符号浮定点数越小。

示例性的,对于正浮定点数,若浮定点数的尾数位数据a为“00101”,尾数位数据中的有效位数据为“101”,有效位数据中最低位数值“1”可以称为第0位数值,次低位数值“0”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中高位数值计算,尾数位数据中最高非零位的数位可以等于2,若浮定点数的尾数位数据b为“01110”,尾数位数据中的有效位数据为“1110”,有效位数据中最低位数值“0”可以称为第0位数值,次低位数值“1”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中高位数值计算,尾数位数据中最高非零位的数位可以等于3,此时,尾数位数据中最高非零位的数位较高的浮定点数较大,也就是说尾数位数据中最高非零位的位置较低的浮定点数较小,即a小于b。

对于负浮定点数,若浮定点数的尾数位数据a为“00101”,尾数位数据中有效位数据为“101”,有效位数据中最高位数值“1”可以称为第0位数值,次高位数值“0”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中低位数值计算,尾数位数据中最高非零位的数位可以等于2,若浮定点数的尾数位数据b为“01110”,尾数位数据中的有效位数据为“1110”,有效位数据中最高位数值“1”可以称为第0位数值,次高位数值“1”可以称为第1位数值,则从有效位数据中第1位数值向有效位数据中低位数值计算,尾数位数据中最高非零位的数位可以等于1,此时,尾数位数据中最高非零位的数位较高的浮定点数较小,也就是说尾数位数据中最高非零位的位置较高的浮定点数较小,即a大于b。

s2042、若所述尾数位数据中最高非零位的所述数位大小相等,则将所述待处理数据输入至指数位比较模块,通过所述指数位比较模块判断所述待处理数据中,指数位数据大小是否相等。

具体的,若最高非零位比较模块输出低电平信号时,则表征尾数位数据中,最高非零位的数位大小相等,此时,数据比较器还需要通过指数位比较模块,对待处理数据中的指数位数据大小进行比较处理,根据比较结果判断指数位数据大小是否相等。

可选的,上述s2042中将所述待处理数据输入至指数位比较模块,通过所述指数位比较模块判断所述待处理数据中,指数位数据大小是否相等的步骤之后,还包括:若所述指数位数据大小不相等,则得到运算结果,结束运算。

需要说明的是,若两个待处理数据中指数位数据不相等,则对于正数,指数位越大,待处理数据越大,对于负数,指数位越大,待处理数据越小。

s2043、若所述指数位数据大小相等,则将所述待处理数据输入至尾数位比较模块,通过所述尾数位比较模块判断所述待处理数据中,尾数位数据大小是否相等。

具体的,若指数位比较模块输出低电平信号时,则表征指数位数据大小相等,此时,数据比较器还需要通过尾数位比较模块,对待处理数据中的尾数位数据大小进行比较处理,根据比较结果判断尾数位数据大小是否相等。

可选的,上述s2043中将所述待处理数据输入至尾数位比较模块,通过所述尾数位比较模块判断所述待处理数据中,尾数位数据大小是否相等的步骤之后,还包括:若所述尾数位数据大小相等,则得到运算结果,结束运算。

需要说明的是,若尾数位比较模块中的尾数位比较结果输出端口aeqb3输出高电平信号,则两个尾数位数据大小相等,可以表征数据比较器接收到的两个待处理数据大小相等。

s2044、若所述尾数位数据大小不相等,则得到运算结果,结束运算。

具体的,若尾数位比较模块判断尾数位数据大小不相等时,则对于正数,尾数位数据越大,待处理数据越大,对于负数,尾数位数据越大,待处理数据越小。

本实施例提供的一种数据处理方法,通过最高非零位比较模块判断所述待处理数据的尾数位数据中,最高非零位的数位大小是否相等,若所述尾数位数据中最高非零位的数位大小相等,则将所述待处理数据输入至指数位比较模块,通过所述指数位比较模块判断所述待处理数据中,指数位数据大小是否相等,若所述指数位数据大小相等,则将所述待处理数据输入至尾数位比较模块,通过所述尾数位比较模块判断所述待处理数据中,尾数位数据大小是否相等,若所述尾数位数据大小不相等,则得到运算结果,结束运算,该方法可以对接收到的浮定点数进行比较运算,有效提高数据比较器的通用性。

本发明实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据比较器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过i/o接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据比较器时,数据比较器间可以通过特定的结构进行链接并传输数据,譬如,通过pcie总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。

该机器学习运算装置具有较高的兼容性,可通过pcie接口与各种类型的服务器相连接。

本发明实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图8为组合处理装置的示意图。

其它处理装置,包括中央处理器cpu、图形处理器gpu、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。

通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。

可选的,该结构如图9所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。

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

在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。

在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。

在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图10所示,图10提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;

所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是ddrsdram(英文:doubledataratesdram,双倍速率同步动态随机存储器)。

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

在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。ddr在一个时钟周期内可以传输两次数据。在所述芯片中设置控制ddr的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。

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

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

在一些实施例里,申请了一种电子设备,其包括了上述板卡。

电子设备可以为数据处理器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。

所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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