本发明涉及计算机技术领域,特别是涉及一种数据比较器、数据处理方法、芯片及电子设备。
背景技术:
随着数字电子技术的不断发展,各类人工智能(artificialintelligence,ai)芯片的快速发展对于高性能数字比较器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,其需要多次用到数据比较器进行数据大小比较运算。
通常,由于大量的各种数据都需要输入数据比较器进行比较,因此,使得数据比较器的运算量过大,导致运算时间较长,影响了数据比较器的处理效率。另外,不同的位宽的数据运算时,相同位宽的数据采用对应位数现有比较器进行运算,不同位宽的数据采用多个不同位宽的现有比较器进行运算。但是,针对不同位宽的数据需要采用不同的比较器进行比较运算,导致数据比较器占用ai芯片的面积较大。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种数据比较器、数据处理方法、芯片及电子设备。
本发明实施例提供一种数据比较器,包括:判断电路和比较电路,所述判断电路包括零值判断单元,所述比较电路包括符号位比较单元和指数位比较单元,所述零值判断单元的输出端与所述符号位比较单元的输入端及所述指数位比较单元的输入端连接,所述符号位比较单元的输出端与所述指数位比较单元的输入端连接;
所述零值判断单元用于判断接收到的所述数据中是否存在零值,所述符号位比较单元用于判断接收到的所述数据的符号位大小,所述指数位比较单元用于判断接收到的所述数据的指数位大小。
在其中一个实施例中,所述判断电路中包括第一输入端,用于接收输入的功能选择模式信号;所述比较电路中包括第二输入端,用于接收输入的所述功能选择模式信号;所述功能选择模式信号用于确定数据比较器处理的数据的位宽。
在其中一个实施例中,所述判断电路还包括:非数值判断单元和无穷数判断单元,所述非数值判断单元的输出端与所述无穷数判断单元的输入端连接,所述无穷数判断单元的输出端与所述零值判断单元的输入端连接,所述无穷数判断单元的输出端与所述非数值判断单元的输入端连接,所述非数值判断单元的输出端与所述零值判断单元的输入端连接;
所述非数值判断单元用于判断接收到的所述数据中是否存在非数值,所述无穷数判断单元用于判断接收到的所述数据中是否存在无穷数。
在其中一个实施例中,所述判断电路中的所述非数值判断单元包括:第一数据输入端口,第二数据输入端口,功能选择模式信号输入端口,第一数据输出端口,第二数据输出端口和非数值判断结果输出端口,所述第一数据输入端口用于接收输入的第一数据,第二数据输入端口用于接收输入的第二数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口用于将接收到的所述第一数据输出到下一单元的输入端口,所述第二数据输出端口用于将接收到的所述第二数据输出到下一单元的输入端口,所述非数值判断结果输出端口用于输出非数值判断单元的判断结果;
所述判断电路中的所述无穷数判断单元包括:第一数据输入端口,第二数据输入端口,功能选择模式信号输入端口,第一数据输出端口,第二数据输出端口和无穷数判断结果输出端口,所述第一数据输入端口用于接收输入的所述第一数据,第二数据输入端口用于接收输入的所述第二数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口用于将接收到的所述第一数据输出到下一单元的输入端口,第二数据输出端口用于将接收到的所述第二数据输出到下一单元的输入端口,所述无穷数判断结果输出端口用于输出无穷数判断单元的判断结果;
所述判断电路中的所述零值判断单元包括:第一数据输入端口,第二数据输入端口,功能选择模式信号输入端口,零值判断结果输出端口,第一符号位输出端口,第二符号位输出端口,第一指数位输出端口,第二指数位输出端口,第一尾数位输出端口,第二尾数位输出端口和逻辑信号输出端口,所述第一数据输入端口接收输入的所述第一数据,所述第二数据输入端口用于接收输入的所述第二数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述零值判断结果输出端口用于输出零值判断单元的判断结果,第一符号位输出端口用于输出接收的第一数据的符号位数据,第二符号位输出端口用于输出接收的第二数据的符号位数据,第一指数位输出端口用于输出接收的第一数据的指数位数据,第二指数位输出端口用于输出接收的第二数据的指数位数据,第一尾数位输出端口用于输出接收的第一数据的尾数位数据,第二尾数位输出端口用于输出接收的第二数据的尾数位数据,所述零值逻辑信号输出端口用于输出逻辑判断信号。
在其中一个实施例中,所述符号位比较单元的输出端与所述指数位比较单元的输入端连接。
在其中一个实施例中,所述比较电路中的所述符号位比较单元:第一符号位输入端口,第二符号位输入端口,功能选择模式信号输入端口,符号位比较结果输出端口,符号位逻辑信号输出端口,所述第一符号位输入端口用于接收所述第一数据的符号位数据,所述第二符号位输入端口用于接收所述第二数据的符号位数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述符号位比较结果输出端口用于输出所述数据的符号位大小比较结果,所述符号位逻辑信号输出端口用于输出逻辑判断信号;
所述比较电路中的所述指数位比较单元:第一指数位输入端口,第二指数位输入端口,功能选择模式信号输入端口,指数位比较结果输出端口,指数位逻辑信号输出端口,所述第一指数位输入端口用于接收所述第一数据的指数位数据,所述第二指数位输入端口用于接收所述第二数据的指数位数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述指数位比较结果输出端口用于输出所述数据的指数位大小比较结果,所述指数位逻辑信号输出端口用于输出逻辑判断信号。
在其中一个实施例中,所述比较电路还包括:尾数位比较单元,所述零值判断单元的输出端与所述尾数位比较单元的输入端连接,所述尾数位比较单元用于判断接收到的所述数据的尾数位大小。
在其中一个实施例中,所述尾数位比较单元包括:第一尾数位输入端口,第二尾数位输入端口,功能选择模式信号输入端口,尾数位比较结果输出端口,尾数位逻辑信号输出端口;
所述第一尾数位输入端口用于接收所述第一数据的尾数位数据,所述第二尾数位输入端口用于接收所述第二数据的尾数位数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述尾数位比较结果输出端口用于输出所述数据的尾数位大小比较结果,所述尾数位逻辑信号输出端口用于输出逻辑判断信号。
本实施例提供的数据比较器,数据比较器包括:判断电路和比较电路,所述判断电路的输出端与所述比较电路的输入端连接;所述判断电路用于判断接收到的数据是否需要通过与所述判断电路的输出端相连的所述比较电路进行处理,所述比较电路用于对接收到的数据进行比较,若不需要通过比较电路处理数据时,结束运算获得运算结果,从而可以减少运算量,节省运算时间;另外,该数据比较器可以根据判断电路和比较电路接收到的不同功能选择模式信号,以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
本发明实施例提供一种数据处理方法,包括:
接收待处理的数据;
通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理;
若需要,则通过所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到所述比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果。
在其中一个实施例中,所述通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理,包括:
通过所述判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值;
若所述数据中不存在非数值、无穷数以及零值,则判断所述数据需要通过所述比较电路进行处理。
在其中一个实施例中,所述通过判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值,包括:
通过非数值判断单元判断待处理的所述数据中是否存在非数值;
若不存在非数值,则将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数;
若不存在无穷数,则将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值;
若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
在其中一个实施例中,所述通过判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值,包括:
通过无穷数判断单元判断待处理的所述数据中是否存在无穷数;
若不存在无穷数,则将待处理的所述数据输入到非数值判断单元,通过所述非数值判断单元判断待处理的所述数据中是否存在非数值;
若不存在非数值,则将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值;
若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
在其中一个实施例中,在所述通过非数值判断单元判断待处理的所述数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算;
在所述将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算;
在所述将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
在其中一个实施例中,通过所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到比较电路,通过所述比较电路比较待处理的所述数据中符号位,指数位和尾数位的大小,输出运算结果,包括:
通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等;
若待处理的所述数据的符号位相等,则将待处理的所述数据的指数位输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等;
若待处理的所述数据的指数位相等,则将待处理的所述数据的尾数位输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等;
若待处理的所述数据的尾数位相等,则输出第四运算结果,结束运算;或者
将所述判断电路与所述比较电路中每个单元对应的输出端口进行或逻辑运算,输出运算结果。
在其中一个实施例中,在所述通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等之后,还包括:若待处理的所述数据的符号位不相等,则输出第五运算结果,结束运算;
在所述将待处理的所述数据的指数位输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等之后,还包括:若待处理的所述数据的指数位不相等,则输出第六运算结果,结束运算。
在其中一个实施例中,所述指数位比较单元判断待处理的所述数据的指数位是否相等,包括:
将待处理的所述数据的指数位划分成第一指数位和第二指数位,判断所述第一指数是否相等;
若待处理的所述数据指数位的第一指数位相等,则判断所述第二指数位是否相等;
若待处理的所述数据指数位的第二指数位相等,则继续通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
在其中一个实施例中,在将待处理的所述数据的尾数位输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等之后,还包括:若待处理的所述数据的尾数位不相等,则输出第七运算结果,结束运算。
在其中一个实施例中,所述尾数位比较单元判断待处理的所述数据的尾数位是否相等,包括:
将待处理的所述数据的尾数位划分成第一尾数位和第二尾数位,判断所述第一尾数位是否相等;
若待处理的所述数据指数位的第一尾数位相等,则判断所述第二尾数位是否相等。
本实施例提供的数据比较数据处理方法,数据比较器接收选择模式信号和待处理的数据,通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理,若需要通过比较电路进行处理,则所述判断电路将待处理的所述数据输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果,若不需要通过比较电路处理数据时,结束运算获得运算结果,从而可以减少运算量,节省运算时间;另外,该数据比较器可以根据判断电路和比较电路接收到的不同功能选择模式信号,以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的数据比较器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过i/o接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据比较器时,所述多个所述数据比较器间可以通过特定的结构进行链接并传输数据;
其中,多个所述数据比较器通过pcie总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据比较器共享同一控制系统或拥有各自的控制系统;多个所述数据比较器共享内存或者拥有各自的内存;多个所述数据比较器的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的数据比较器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的数据比较器。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为数据比较器的整体结构示意图;
图2为一实施例提供的数据比较器的结构图;
图3为另一实施例提供的数据比较器的内部电路结构图;
图4为另一实施例提供的数据比较器的具体电路结构图;
图5另一实施例提供的判断电路的具体结构示意图;
图6为一实施例提供的一种数据比较器的具体结构示意图;
图7为一实施例提供的另一种数据比较器的具体结构示意图;
图8另一实施例提供的比较电路的具体结构示意图;
图9为一实施例提供的数据处理方法的流程示意图;
图10为一实施例提供的数据中是否存在非数值,无穷数或零值方法的流程示意图;
图11为另一实施例提供的数据中是否存在非数值,无穷数或零值方法的流程示意图;
图12为一实施例提供的判断数据的符号位,指数位和尾数位是否相等的方法流程示意图;
图13为另一实施例提供的判断数据的符号位,指数位和尾数位是否相等的方法流程示意图;
图14为另一实施例提供的判断数据的指数位的具体方法流程示意图;
图15为另一实施例提供的判断数据的尾数位的具体方法流程示意图;
图16为另一实施例提供的数据处理方法的流程示意图;
图17为另一实施例提供的输出运算结果的方法流程示意图;
图18为一实施例提供的一种组合处理装置的结构图;
图19为一实施例提供的另一种组合处理装置的结构图;
图20为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据比较器可应用于ai芯片、现场可编程门阵列fpga(field-programmablegatearray,fpga)芯片、或者是其它的硬件电路设备中进行比较运算处理,其结构示意图如图1所示。
图2为一实施例提供的一种数据比较器的结构示意图。如图2所示,该数据比较器包括:判断电路11和比较电路12,所述判断电路11的输出端与所述比较电路12的输入端连接;所述判断电路11用于判断接收到的数据是否需要通过与所述判断电路11的输出端相连的比较电路12进行处理,所述比较电路12用于对接收到的所述数据进行比较。
具体的,判断电路11和比较电路12可以采用串行方式处理数据,还可以通过或逻辑实现并行方式处理数据。可选的,上述判断电路11可以为一种判断接收到的数据的数值类型的电路。可选的,上述数据可以为浮点数。可选的,上述数值类型可以包括非数值,无穷数和零值。可选的,上述比较电路12可以为一种将接收到的数据的符号位,指数位和尾数位进行比较的电路。可选的,上述比较电路12可以包括多个具有不同功能的比较单元。可选的,上述不同功能的比较单元的输入端口可以有多个,各比较单元的每个输入端口的功能可以不相同或相同,输出端口也可以有多个,各比较单元的每个输出端口的功能可以相同或不相同,但是,不同比较单元的输入端口的功能可以相同,也可以不同,不同比较单元的输出端口的功能可以相同,也可以不同,并且不同功能的比较单元的电路结构可以不同,也可以相同。
可选的,所述判断电路11中包括第一输入端01,用于接收输入的功能选择模式信号;所述比较电路12中包括第二输入端02,用于接收输入的所述功能选择模式信号;所述功能选择模式信号用于确定数据比较器处理的数据的位宽。
需要说明的是,上述功能选择模式信号可以有多种,不同功能选择模式信号对应于数据比较器可以处理不同位宽的数据。
本实施例提供的一种数据比较器,通过判断电路判断接收到的数据中是否需要通过下一比较电路进行处理,如果不需要进行下一比较电路处理,则结束运算获得运算结果,否则就会继续将接收到的数据输入到比较电路中。当比较电路输出高电平信号时,结束运算获得运算结果,从而可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,上述判断电路11可具体用于判断接收到的数据中是否存在非数值、无穷数或零值,并根据结果判断是否需要通过所述比较电路进行下一步处理。
具体的,上述判断电路11可以包括将接收到的数据,与ieee数据算术标准中非数值、无穷数或零值对应的编码格式进行比较判断的电路。可选的,上述判断电路11可以包括多个具有不同功能的判断单元。另外,上述不同功能的判断单元的输入端口可以有多个,各判断单元的每个输入端口的功能可以不相同或相同;类似的,输出端口也可以有多个,各判断单元的每个输出端口的功能可以相同或不相同,并且不同功能判断单元的电路结构可以不同,也可以相同。
本实施例提供的一种数据比较器,通过判断电路判断接收到的数据中是否存在非数值,无穷值或零值,如果判断结果为是,则结束运算获得运算结果,否则就会继续将接收到的数据输入到比较电路中,当比较电路输出高电平信号时,结束运算获得运算结果,因此,该数据比较器中判断电路的判断结果为是时,就会结束运算,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图3为另一实施例提供的一种数据比较器的结构图。如图3所示,该数据比较器包括:判断电路11和比较电路12,所述判断电路11包括零值判断单元113,所述比较电路包括符号位比较单元121和指数位比较单元122,所述零值判断单元113的输出端与所述符号位比较单元121的输入端及所述指数位比较单元122的输入端连接,所述符号位比较单元121的输出端与所述指数位比较单元122的输入端连接;
所述零值判断单元113用于判断接收到的所述数据中是否存在零值,所述符号位比较单元121用于判断接收到的所述数据的符号位大小,所述指数位比较单元122用于判断接收到的所述数据的指数位大小。
具体的,判断电路11和比较电路12可以采用串行方式处理数据,还可以通过或逻辑实现并行方式处理数据。可选的,上述判断电路11可以为一种判断接收到的数据的数值类型的电路,该判断电路11可以包括判断数据的数值类型的多个判断单元,该数值类型可以包括非数值,无穷数和零值。可选的,上述比较电路12可以为一种将接收到的数据的符号位,指数位和尾数位进行比较的电路。可选的,上述比较电路12可以包括多个不同功能的比较单元。可选的,上述不同功能的比较单元的输入端口可以有多个,各比较单元的每个输入端口的功能可以不相同或相同,输出端口也可以有多个,各比较单元的每个输出端口的功能可以相同或不相同,但是,不同比较单元的输入端口的功能可以相同,也可以不同,不同比较单元的输出端口的功能可以相同,也可以不同,并且不同功能的比较单元的电路结构可以不同,也可以相同。
可选的,所述符号位比较单元121的输出端与所述指数位比较单元122的输入端连接。
另外,若零值判断单元113的判断结果为是,则零值判断单元113可以输出高电平信号,此时,结束运算输出运算结果。若零值判断单元113的判断结果不满足预设条件,则零值判断单元113可以输出低电平信号,此时,不结束运算,需要继续通过下一单元进行处理。可选的,上述满足的预设条件可以表征为接收到的数据满足ieee标准中零值对应的编码格式。其中,ieee数据算术标准中,零对应的编码格式可以表示为数据的指数位全为0,尾数位全为0。
可选的,所述判断电路11中包括第一输入端01,用于接收输入的功能选择模式信号;所述比较电路12中包括第二输入端02,用于接收输入的所述功能选择模式信号。
需要说明的是,上述功能选择模式信号可以有多种,不同功能选择模式信号对应于数据比较器可以处理不同位宽的数据。
本实施例提供的一种数据比较器,通过判断电路中的零值判断单元判断接收到的数据中是否存在零值,如果接收到的数据中存在零值,则该判断单元的判断结果为是,此时结束运算输出运算结果,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图4另一实施例提供的一种数据比较器的结构示意图,如图4所示,数据比较器包括所述判断电路11,该判断电路11还包括:非数值判断单元111和无穷数判断单元112,所述非数值判断单元111的输出端与所述无穷数判断单元112的输入端连接;
所述非数值判断单元111用于判断接收到的所述数据中是否存在非数值,所述无穷数判断单元112用于判断接收到的所述数据中是否存在无穷数。
可选的,所述无穷数判断单元112的输出端与所述零值判断单元113的输入端连接。
需要说明的是,通过非数值判断单元111,无穷数判断单元112和零值判断单元113对接收到的数据依次进行处理,直到其中一个判断单元的判断结果满足预设条件为止,三个判断单元中的任意一个判断单元的判断结果为是,则判断结果为是的对应判断单元会输出高电平信号,此时,结束运算输出运算结果。若上述三个判断单元中的任意一个或多个判断单元的判断结果不满足预设条件,则不满足预设条件的对应判断单元可以输出低电平信号,此时,不结束运算,需要继续通过下一单元进行处理。可选的,上述满足的预设条件可以表征为接收到的数据满足ieee标准中非数值、无穷数或零值对应的编码格式。其中,ieee数据算术标准中,非数值对应的编码格式可以表示为数据的指数位全为0,尾数位不全为0;无穷数对应的编码格式可以表示为数据的指数位全为0,尾数位全为0;零对应的编码格式可以表示为数据的指数位全为0,尾数位全为0。
可选的,所述无穷数判断单元112的输出端还可以与所述非数值判断单元111的输入端连接,所述非数值判断单元111的输出端与所述零值判断单元113的输入端连接。需要说明的是,判断电路11中的非数值判断单元111与无穷数判断单元112的连接结构可以相互交换,对此本实施例不做任何限定。
本实施例提供的一种数据比较器,通过非数值判断单元,无穷数判断单元和零值判断单元,依次判断接收到的数据中是否存在非数值、无穷数或零值,如果接收到的数据中存在非数值,无穷或零值,相应判断单元的判断结果为是时,此时结束运算输出运算结果,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图5另一实施例提供的一种判断电路的结构示意图,如图5所示,该判断电路11包括:非数值判断单元111,无穷数判断单元112和零值判断单元113,所述非数值判断单元111的输出端与所述无穷数判断单元112的输入端连接,所述无穷数判断单元112的输出端与所述零值判断单元113的输入端连接;所述非数值判断单元111用于判断接收到的所述数据中是否存在非数值,所述无穷数判断单元112用于判断接收到的所述数据中是否存在无穷数,所述零值判断单元113用于判断接收到的所述数据中是否存在零值。
可选的,所述无穷数判断单元112的输出端与所述非数值111判断单元的输入端连接,所述非数值判断单元111的输出端与所述零值判断单元113的输入端连接。
需要说明的是,通过非数值判断单元111,无穷数判断单元112和零值判断单元113对接收到的数据依次进行处理,直到其中一个判断单元的判断结果满足预设条件为止,三个判断单元中的任意一个判断单元的判断结果为是,则判断结果为是的对应判断单元会输出高电平信号,此时,结束运算输出运算结果。若上述三个判断单元中的任意一个或多个判断单元的判断结果不满足预设条件,则不满足预设条件的对应判断单元会输出低电平信号,此时,不结束运算,需要继续通过下一单元进行处理。可选的,上述满足的预设条件可以表征为接收到的数据满足ieee标准中非数值、无穷数或零值对应的编码格式。其中,ieee数据算术标准中,非数值对应的编码格式可以表示为数据的指数位全为0,尾数位不全为0;无穷数对应的编码格式可以表示为数据的指数位全为0,尾数位全为0;零对应的编码格式可以表示为数据的指数位全为0,尾数位全为0。
本实施例提供的一种数据比较器,通过非数值判断单元,无穷数判断单元和零值判断单元,依次判断接收到的数据中是否存在非数值、无穷数或零值,如果接收到的数据中存在非数值,无穷或零值,相应判断单元的判断结果为是时,此时结束运算输出运算结果,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图6和图7所示为一种数据比较器的具体结构示意图,两个数据比较器中的所述非数值判断单元111均包括:第一数据输入端口1111,第二数据输入端口1112,功能选择模式信号输入端口(mode)1113,第一数据输出端口1114,第二数据输出端口1115,非数值判断结果输出端口(unordered)1116;所述第一数据输入端口1111用于接收输入的第一数据,第二数据输入端口1112用于接收输入的第二数据,所述功能选择模式信号输入端口(mode)1113用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1114用于将接收到的所述第一数据输出到下一单元的输入端口,所述第二数据输出端口1115用于将接收到的所述第二数据输出到下一单元的输入端口,所述非数值判断结果输出端口(unordered)1116用于输出非数值判断单元111的判断结果。
需要说明的是,上述非数值判断结果输出端口(unordered)1116输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若非数值判断单元111的判断结果满足预设条件时,非数值判断结果输出端口(unordered)1116可以输出高电平信号,结束运算,该情况可以表示非数值判断单元111接收到的两个数据中至少存在一个非数值。若非数值判断单元111的判断结果满足预设条件时,非数值判断结果输出端口(unordered)1116可以输出低电平信号,不能结束运算,需要进行下一单元处理,该情况可以表示非数值判断单元111接收到的数据中不存在一个非数值。可选的,上述非数值判断单元111对应的预设条件可以为非数值判断单元111接收到的数据是否满足ieee标准中非数值对应的编码格式。可选的,上述非数值判断单元111中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
本实施例提供的一种数据比较器,非数值判断单元可以根据非数值判断结果输出端口输出的判断结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图6和图7所示为一种数据比较器的具体结构示意图,两个数据比较器中的所述无穷数判断单元112均包括:第一数据输入端口1121,第二数据输入端口1122,功能选择模式信号输入端口(mode)1123,第一数据输出端口1124,第二数据输出端口1125,无穷数判断结果输出端口(altb1)1126,(aeqb1)1127和(agtb1)1128;所述第一数据输入端口1121用于接收输入的所述第一数据,第二数据输入端口1122用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1123用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1124用于将接收到的所述第一数据输出到下一单元的输入端口,第二数据输出端口1125用于将接收到的所述第二数据输出到下一单元的输入端口,所述无穷数判断结果输出端口(altb1)1126,(aeqb1)1127和(agtb1)1128用于输出无穷数判断单元112的判断结果。
具体的,上述三个无穷数判断结果输出端口(altb1)1126,(aeqb1)1127和(agtb1)1128输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若无穷数判断单元112的判断结果满足预设条件时,无穷数判断结果输出端口(altb1)1126,(aeqb1)1127和(agtb1)1128中任意一个端口可以输出高电平信号,其它两个端口输出低电平信号,结束运算,该情况可以表示无穷数判断单元112接收到的两个数据中至少存在一个无穷数。若三个端口均输出低电平信号时,可以表示无穷数判断单元112接收到的数据中不存在无穷数,不能结束运算,需要进行下一单元处理。可选的,上述无穷数判断单元112对应的预设条件可以为接收到的数据是否满足ieee标准中无穷数对应的编码格式。可选的,上述无穷数判断单元112中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
需要说明的是,若数据比较器接收到的两个数据分别为a和b,则altb1输出高电平信号可以表征为a小于b,aeqb1输出高电平信号可以表征为a等于b,agtb1输出高电平信号可以表征为a大于b。
本实施例提供的一种数据比较器,无穷数判断单元可以根据无穷数判断结果输出端口输出的判断结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图6所示为一种数据比较器的具体结构示意图,该数据比较器中的所述零值判断单元113包括:第一数据输入端口1131,第二数据输入端口1132,功能选择模式信号输入端口(mode)1133,零值判断结果输出端口(altb2)1134a,(altb2)1134b和(agtb2)1134c,第一符号位输出端口1135a,第二符号位输出端口1135b,第一指数位输出端口1136a,第二指数位输出端口1136b,第一尾数位输出端口1137a,第二尾数位输出端口1137b和逻辑信号输出端口1138;
所述第一数据输入端口1131接收输入的所述第一数据,所述第二数据输入端口1132用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1133用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述零值判断结果输出端口(altb2)1134a,(aeqb2)1134b和(agtb2)1134c用于输出零值判断单元113的判断结果,第一符号位输出端口1135a用于输出接收的第一数据的符号位数据,第二符号位输出端口1135b用于输出接收的第二数据的符号位数据,第一指数位输出端口1136a用于输出接收的第一数据的指数位数据,第二指数位输出端口1136b用于输出接收的第二数据的指数位数据,第一尾数位输出端口1137a用于输出接收的第一数据的尾数位数据,第二尾数位输出端口1137b用于输出接收的第二数据的尾数位数据,所述零值逻辑信号输出端口1138用于输出逻辑判断信号。
具体的,上述三个零值判断结果输出端口(altb2)1134a,(aeqb2)1134b和(agtb2)1134c输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若零值判断单元113的判断结果满足预设条件时,零值判断结果输出端口(altb2)1134a,(aeqb2)1134b和(agtb2)1134c中任意一个端口可以输出高电平信号,其它两个端口输出低电平信号,结束运算,该情况可以表示零值判断单元113接收到的数据中至少存在一个零值,此时,逻辑信号输出端口1138可以输出低电平信号。若三个端口均输出低电平信号时,可以表示零值判断单元113接收到的数据中不存在零值,不能结束运算,需要进行下一单元处理,此时,零值逻辑信号输出端口1138可以输出高电平信号。可选的,上述零值判断单元113对应的预设条件可以为接收到的数据是否满足ieee标准中零值对应的编码格式。可选的,上述零值判断单元113中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
需要说明的是,若数据比较器接收到的数据为a和b,则altb2输出高电平信号可以表征为a小于b,aeqb2输出高电平信号可以表征为a等于b,agtb2输出高电平信号可以表征为a大于b。另外,若零值逻辑信号输出端口1138输出高电平信号时,则第一符号位输出端口1135a和第二符号位输出端口1135b可以将接收到的第一数据和第二数据的符号位分别输入至符号位比较单元114,通过符号位比较单元114对接收到的两个数据继续进行比较处理。
本实施例提供的一种数据比较器,零值判断单元可以根据零值判断结果输出端口输出的判断结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图7所示为一种数据比较器的具体结构示意图,该数据比较器中的所述零值判断单元113包括:第一数据输入端口1131,第二数据输入端口1132,功能选择模式信号输入端口(mode)1133,第一数据输出端口1134,第二数据输出端口1135,零值判断结果输出端口(altb2)1136,(aeqb2)1137和(agtb2)1138;所述第一数据输入端口1131用于接收输入的所述第一数据,第二数据输入端口1132用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1133用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1134用于将接收到的所述第一数据输出到下一单元的输入端口,第二数据输出端口1135用于将接收到的所述第二数据输出到下一单元的输入端口,所述零值判断结果输出端口(altb2)1136,(aeqb2)1137和(agtb2)1138用于输出零值判断单元113的判断结果。
具体的,上述三个零值判断结果输出端口(altb2)1136,(aeqb2)1137和(agtb2)1138输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若零值判断单元113的判断结果满足预设条件时,零值判断结果输出端口(altb2)1136,(aeqb2)1137和(agtb2)1138中任意一个端口可以输出高电平信号,其它两个端口输出低电平信号,结束运算,该情况可以表示零值判断单元113接收到的两个数据中至少存在一个零值。若三个端口均输出低电平信号时,可以表示零值判断单元113接收到的两个数据中不存在零值,不能结束运算,需要进行下一单元处理。可选的,上述零值判断单元113对应的预设条件可以为接收到的数据是否满足ieee标准中零值对应的编码格式。可选的,上述零值判断单元113中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
需要说明的是,若数据比较器接收到的数据为a和b,则altb2输出高电平信号可以表征为a小于b,aeqb2输出高电平信号可以表征为a等于b,agtb2输出高电平信号可以表征为a大于b。
本实施例提供的一种数据比较器,零值判断单元可以根据零值判断结果输出端口输出的判断结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
继续参见图4,如图4所示为另一实施例提供的数据比较器的具体结构示意图,该数据比较器中的所述比较电路12还包括:尾数位比较单元123,所述尾数位比较单元123用于判断接收到的所述数据的尾数位大小。
具体的,尾数位比较单元123对接收到的数据进行处理,得到一个比较结果时,尾数位比较单元123可以输出高电平信号,此时,结束运算输出运算结果。
可选的,所述零值判断单元113的输出端可以与所述尾数位比较单元123的输入端连接。
本实施例提供的一种数据比较器,通过尾数位比较单元,判断接收到的数据的尾数位的大小,如果可以确定接收到的数据的尾数位的大小,则尾数位比较单元会输出高电平信号,从而结束运算输出运算结果;另外,数据比较器根据比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图8为另一实施例提供的比较电路的结构示意图,如图8所示,所述比较电路12包括:符号位比较单元121,指数位比较单元122和尾数位比较单元123,所述符号位比较单元121的输出端与所述指数位比较单元122的输入端连接,所述指数位比较单元122的输出端与所述尾数位比较单元123的输入端连接;所述符号位比较单元121用于判断接收到的所述数据的符号位大小,所述指数位比较单元122用于判断接收到的所述数据的指数位大小,所述尾数位比较单元123用于判断接收到的所述数据的尾数位大小。
需要说明的是,通过符号位比较单元121,指数位比较单元122和尾数位比较单元123对接收到的数据依次进行处理,直到其中一个比较单元可以得到一个比较结果为止,对应的比较单元会输出高电平信号,此时,结束运算输出运算结果。可选的,上述比较结果可以包括数据的符号位大小比较结果,数据的指数位大小比较结果和数据的尾数位大小比较结果。
本实施例提供的一种数据比较器,通过符号位比较单元,指数位比较单元和尾数位比较单元,依次判断接收到的数据的符号位的大小,指数位的大小和尾数位的大小,如果可以确定接收到的数据的符号位的大小,指数位的大小或尾数位的大小,则相应的比较单元会输出高电平信号,此时结束运算输出运算结果,不需要进行其它比较单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图6所示为一种数据比较器的具体结构示意图,该数据比较器中的所述符号位比较单元121包括:第一符号位输入端口1211,第二符号位输入端口1212,功能选择模式信号输入端口(mode)1213,符号位比较结果输出端口(altb3)1214a和(agtb3)1214b,符号位逻辑信号输出端口1215和零值逻辑信号输入端口1216;所述第一符号位输入端口1211用于接收所述第一数据的符号位数据,所述第二符号位输入端口1212用于接收所述第二数据的符号位数据,所述功能选择模式信号输入端口(mode)1213用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述符号位比较结果输出端口(altb3)1214a和(agtb3)1214b用于输出所述数据的符号位大小比较结果,所述符号位逻辑信号输出端口1215用于输出逻辑判断信号,所述零值逻辑信号输入端口1216用于接收零值判断单元113输出的逻辑判断信号。
具体的,上述第一符号位输入端口1211和第二符号位输入端口1212可以分别接收零值判断单元113输出的第一数据和第二数据的符号位数据。
需要说明的是,若符号位比较结果输出端口(altb3)1214a或(agtb3)1214b输出高电平信号时,则表示不需要继续进行下一单元对数据进行处理,结束运算输出运算结果,此时,符号位逻辑信号输出端口1215可以输出低电平信号。否则,符号位比较结果输出端口(altb3)1214a或(agtb3)1214b输出低电平信号时,需要继续进行下一单元的处理,此时,符号位逻辑信号输出端口1215可以输出高电平信号。
本实施例提供的一种数据比较器,符号位比较单元可以根据符号位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图7所示为一种数据比较器的具体结构示意图,该数据比较器中的所述符号位比较单元121包括:第一数据输入端口1211,第二数据输入端口1212,功能选择模式信号输入端口(mode)1213,第一数据输出端口1214,第二数据输出端口1215,符号位比较结果输出端口(altb3)1216和(agtb3)1217;所述第一数据输入端口1211用于接收输入的所述第一数据,所述第二数据输入端口1212用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1213用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1214用于将接收到的所述第一数据输出到下一单元的输入端口,所述第二数据输出端口1215用于将接收到的所述第二数据输出到下一单元的输入端口,所述符号位比较结果输出端口(altb3)1216和(agtb3)1217用于输出所述数据的符号位大小比较结果。
需要说明的是,上述符号位比较单元121中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若符号位比较结果输出端口(altb3)1216或(agtb3)1217输出高电平信号,则表示不需要继续进行下一单元对数据进行处理,结束运算输出运算结果,否则,符号位比较结果输出端口(altb3)1216和(agtb3)1217均输出低电平信号,需要继续进行下一单元的处理。示例性的,若数据比较器接收到的数据为a和b,则altb3输出高电平信号可以表征为a小于b,agtb3输出高电平信号可以表征为a大于b。
本实施例提供的一种数据比较器,符号位比较单元可以根据符号位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图6所示为一种数据比较器的具体结构示意图,该数据比较器中的所述指数位比较单元122包括:第一指数位输入端口1221,第二指数位输入端口1222,功能选择模式信号输入端口(mode)1223,指数位比较结果输出端口(altb4)1224a和(agtb4)1224b,指数位逻辑信号输出端口1225和符号位逻辑信号输入端口1226;所述第一指数位输入端口1211用于接收所述第一数据的指数位数据,所述第二指数位输入端口1212用于接收所述第二数据的指数位数据,所述功能选择模式信号输入端口(mode)1223用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述指数位比较结果输出端口(altb4)1224a和(agtb4)1224b用于输出所述数据的指数位大小比较结果,所述指数位逻辑信号输出端口1225用于输出逻辑判断信号,所述符号位逻辑信号输入端口1226用于接收符号位比较单元121输出的逻辑判断信号。
具体的,上述第一指数位输入端口1221和第二指数位输入端口1222可以分别接收零值判断单元113输出的第一数据和第二数据的指数位数据。
需要说明的是,若指数位比较结果输出端口(altb4)1224a或(agtb4)1224b输出高电平信号时,则表示不需要继续进行下一单元对数据进行处理,结束运算输出运算结果,此时,指数位逻辑信号输出端口1225可以输出低电平信号。否则,指数位比较结果输出端口(altb4)1224a或(agtb4)1224b输出低电平信号时,需要继续进行下一单元的处理,此时,指数位逻辑信号输出端口1225可以输出高电平信号。
本实施例提供的一种数据比较器,指数位比较单元可以根据指数位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图7所示为一种数据比较器的具体结构示意图,该数据比较器中的所述指数位比较单元122包括:第一数据输入端口1221,第二数据输入端口1222,功能选择模式信号输入端口(mode)1223,第一数据输出端口1224,第二数据输出端口1225,指数位比较结果输出端口(altb4)1226和(agtb4)1227;所述第一数据输入端口1221用于接收输入的所述第一数据的指数位数据,所述第二数据输入端口1222用于接收输入的所述第二数据的指数位数据,所述功能选择模式信号输入端口(mode)1223用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1224用于将接收到的所述第一数据输出到下一单元的输入端口,所述第二数据输出端口1225用于将接收到的所述第二数据输出到下一单元的输入端口,所述指数位比较结果输出端口(altb4)1226和(agtb4)1227用于输出所述数据的指数位大小比较结果。
需要说明的是,上述指数位比较单元122中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若指数位比较结果输出端口(altb4)1224或(agtb4)1225输出高电平信号,则表示不需要继续进行下一单元对数据进行处理,结束运算输出运算结果,否则,指数位比较结果输出端口(altb4)1224和(agtb4)1225均输出低电平信号,需要继续进行下一单元的处理。示例性的,若数据比较器接收到的数据为a和b,则altb4输出高电平信号可以表征为a小于b,agtb4输出高电平信号可以表征为a大于b。
本实施例提供的一种数据比较器,指数位比较单元可以根据指数位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图6所示为一种数据比较器的具体结构示意图,该数据比较器中的所述尾数位比较单元123包括:第一尾数位输入端口1231,第二尾数位输入端口1232,功能选择模式信号输入端口(mode)1233,尾数位比较结果输出端口(altb5)1234a,(agtb5)1234b和(aeqb5)1234c,指数位逻辑信号输入端口1235;所述第一尾数位输入端口1231用于接收所述第一数据的尾数位数据,所述第二尾数位输入端口1232用于接收所述第二数据的尾数位数据,所述功能选择模式信号输入端口(mode)1233用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述尾数位比较结果输出端口(altb5)1234a和(agtb5)1234b用于输出所述数据的尾数位大小比较结果,所述指数位逻辑信号输入端口1235用于接收指数位比较单元122输出的逻辑判断信号。
具体的,上述第一尾数位输入端口1231和第二尾数位输入端口1232可以分别接收零值判断单元113输出的第一数据和第二数据的指数位数据。
需要说明的是,若尾数位比较结果输出端口(altb5)1234a或(agtb5)1234b输出高电平信号时,则结束运算输出运算结果,此时,指数位逻辑信号输入端口1235可以接收高电平信号。
本实施例提供的一种数据比较器,尾数位比较单元可以根据尾数位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算输出运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图7所示为一种数据比较器的具体结构示意图,该数据比较器中的所述尾数位比较单元123包括:第一数据输入端口1231,第二数据输入端口1232,功能选择模式信号输入端口(mode)1233,尾数位比较结果输出端口(altb5)1234,(agtb5)1235和(aegb5)1236;所述第一数据输入端口1231用于接收输入的所述第一数据,所述第二数据输入端口1232用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1233用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述尾数位比较结果输出端口(altb5)1234,(agtb5)1235和(aegb5)1236用于输出所述数据的尾数位大小比较结果。
需要说明的是,上述尾数位比较单元123中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若尾数位比较结果输出端口(altb5)1234,(agtb5)1235或(aegb5)1236输出高电平信号,则结束运算输出运算结果。示例性的,若数据比较器接收到的数据为a和b,则altb5输出高电平信号可以表征为a小于b,aeqb5输出高电平信号可以表征为a等于b,agtb5输出高电平信号可以表征为a大于b。同时,若所有判断单元的判断结果输出端口,符号位比较单元121和指数位比较单元122的比较结果输出端口均无高电平信号输出,则尾数位比较单元123对应的三个比较结果输出端口中必然有一个端口可以输出高电平信号。
本实施例提供的一种数据比较器,尾数位比较单元可以根据尾数位比较结果输出端口输出比较结果,从而结束运算输出运算结果;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图9为一实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图2所示的数据比较器进行处理,本实施例涉及的是对数据进行比较运算的过程。如图9所示,该方法包括:
s101、接收待处理的数据。
具体的,数据比较器可以接收两个待处理的数据。可选的,数据比较器将接收到的待处理的数据,输入到判断电路,若判断电路运算结束后,还需要通过比较电路对待处理的数据处理时,则判断电路将接收到的待处理的数据,输入到比较电路对待处理的数据进行比较运算。可选的,数据比较器还可以通过判断电路中的每一个判断单元和比较电路中的每一个比较单元同时接收不同功能选择模式信号,并且进行同一次运算时,判断电路中的每一个判断单元和比较电路中的每一个比较单元接收到的功能选择模式信号可以相同。若数据比较器接收不同的功能选择模式信号,则数据比较器可以处理不同对应位宽的数据,同时,不同选择模式信号与数据比较器可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。可选的,上述数据可以为浮点数。
示例性的,如果判断电路和比较电路能够接收多种功能选择模式信号,以三种功能选择模式信号为例,可以分别为mode=0,mode=1,mode=2,则mode=0可以表征数据比较器能够对16位数据进行处理,mode=1可以表征数据比较器能够对32位数据进行处理,mode=2可以表征数据比较器能够对64位数据进行处理,另外,mode=0也可以表征为数据比较器能够对64位数据进行处理,mode=1也可以表征为数据比较器能够对16位数据进行处理,mode=2可以表征数据比较器能够对32位数据进行处理。
需要说明的是,如果判断电路接收到的待处理的数据的位宽,与数据比较器接收到的功能选择模式信号对应可处理的数据位宽不相等,则数据比较器会根据数据比较器当前可处理的数据位宽,将接收到的待处理的数据分成,与数据比较器当前可处理的数据位宽相等的多组数据据进行并行处理,其中,判断电路接收到的待处理的数据的位宽可以大于数据比较器当前可处理的数据位宽。可选的,上述并行处理可以表征为将分成的每一组待处理的数据据同时进行处理。如果判断电路接收到的待处理的数据的位宽,与数据比较器接收到的功能选择模式信号对应可处理的数据位宽相等,则数据比较器直接对接收到的待处理的数据进行处理。
s102、通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理。
具体的,数据比较器可以根据判断电路输出的判断结果判断待处理的数据是否需要通过比较电路进行处理。
s103、若需要,则所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到所述比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果。
具体的,若待处理的数据中不存在非数值、无穷数或零值,则通过判断电路对待处理的数据进行处理后,可以分别将待处理的数据的符号位,指数位和尾数位输入到比较电路,通过比较电路中的每一个比较单元依次比较待处理的数据的符号位,指数位和尾数位大小,比较单元根据符号位比较结果输出端口,指数位比较结果输出端口和/或尾数位比较结果输出端口输出的比较结果中任意一个端口输出高电平信号,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束运算。
示例性的,若输入的是32位的两个待处理的数据a和b,当前数据比较器可以进行16位待处理的数据比较运算,数据比较器将输入的两个32位待处理的数据按照高低16位对应分成两组16位待处理的数据,则最大值输出端口(zmax)和最小值输出端口(zmin)输出的数值,均是通过高低16位待处理的数据分别比较最大值或最小值后拼接得到,即可以通过公式zmax={max{a[31:16],b[31:16]},max{a[15:0],b[15:0]}}表示最大值的获取方式,通过zmin={min{a[31:16],b[31:16]},min{a[15:0],b[15:0]}}表示最小值的获取方式,其中,最大值输出端口(zmax)和最小值输出端口(zmin)输出的32位最大值和最小值的高低16位待处理的数据,可以是同一个待处理的数据的高低16位数据,还可以为不同待处理的数据的高低16位数据拼接的最大或最小数据。若数据比较器当前可处理的数据位宽和接收到的待处理的数据位宽相等均为32,则最大数值输出端口(zmax)和最小数值输出端口(zmin)输出的32位最大值和最小值的高低16位数据,为同一个待处理的数据的高低16位数据。
可选的,在通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理的步骤之后,还可以包括:若需要,则所述判断电路分别将待处理的所述数据输入到所述比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果。
本实施例提供的一种数据比较器,数据比较器通过判断电路判断待处理的数据是否需要通过比较电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法。上述s102中通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理,包括:通过所述判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值;若待处理的所述数据中不存在非数值、无穷数以及零值,则判断待处理的所述数据需要通过所述比较电路进行处理。
需要说明的是,基于ieee数据算术标准中非数值,无穷数和零值对应的编码标准,若判断电路接收到的待处理的数据中不存在非数值、无穷数和零值,则可以判断待处理的数据还需要通过比较电路进行下一步处理;若判断电路接收到的待处理的数据中存在非数值、无穷数或零值,则判断电路的判断结果为是,并且判断结果输出端口可以输出高电平信号,结束运算。在本实施例中,高电平信号可以用1表示,低电平信号可以用0表示。
示例性的,若输入的是32位的两个待处理的数据a和b,当前数据比较器可以对16位数据进行比较运算,则数据比较器会将输入的两个32位待处理的数据按照高低16位对应分成两组16位待处理的数据,分别可以表示为a[31:16]和a[15:0],与b[31:16]和b[15:0],因此,数据比较器会通过判断单元对a[31:16]与b[31:16],和a[15:0]与b[15:0]两组待处理的数据进行同时处理,分别得到两组高低16位待处理的数据中是否存在非数值、无穷数和零值。
本实施例提供的一种数据比较器,数据比较器通过判断电路先对待处理的数据中是否存在非数值、无穷数和零值进行判断,根据判断结果决定是否输入比较电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图10为另一实施例提供的数据处理方法的流程示意图,上述s102中通过判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值,可以通过以下所述方法实现,如图10所示,具体包括:
s1021、通过非数值判断单元判断待处理的所述数据中是否存在非数值。
具体的,数据比较器基于ieee数据算术标准中非数值对应的编码标准,通过非数值判断单元判断接收到的待处理的数据中是否有非数值存在。
s1022、若不存在非数值,则将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数。
具体的,若非数值判断单元接收到的待处理的数据中没有非数值存在,则非数值判断单元将接收到的待处理的数据输出到无穷数判断单元,基于ieee数据算术标准中无穷数对应的编码标准,通过无穷数判断单元继续判断接收到的待处理的数据中是否存在无穷数。
s1023、若不存在无穷数,则将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值。
具体的,若无穷数判断单元接收到的待处理的数据中没有无穷数的存在,则无穷数判断单元将接收到的待处理的数据输出到零值判断单元,基于ieee数据算术标准中零值对应的编码标准,通过零值判断单元继续判断接收到的待处理的数据中是否存在零值。
s1024、若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
具体的,若零值判断单元接收到的待处理的数据中没有零值的存在,则零值判断单元可以将接收到的待处理的数据输出到比较电路进行处理。
可选的,上述s102中通过判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值,还可以通过以下所述方法实现,如图11所示,具体包括:
s1025、通过无穷数判断单元判断待处理的所述数据中是否存在无穷数。
s1026、若不存在无穷数,则将待处理的所述数据输入到非数值判断单元,通过所述非数值判断单元判断待处理的所述数据中是否存在非数值。
s1027、若不存在非数值,则将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值。
s1028、若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
本实施例提供的一种数据比较器,数据比较器对待处理的数据中是否存在非数值、无穷数或零值依次进行判断,根据判断结果决定是否需要将待处理的数据输入比较电路进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一个实施例提供的数据处理方法,上述s1021中通过非数值判断单元判断待处理的所述数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算。
具体的,如果非数值判断单元接收到的待处理的数据中至少有一个非数值,则非数值判断单元可以直接通过非数值判断结果输出端口(unordered)输出第一运算结果,结束比较运算,其中,上述第一运算结果为高电平信号。此时,说明接收到的待处理的数据中有非数值,无法进行数值比较,结束运算。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理的数据中至少存在一个非数值,则非数值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s1021中将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算。
具体的,如果无穷数判断单元接收到的待处理的数据中有无穷数,则无穷数判断单元可以直接通过无穷数判断结果输出端口(altb1),(aeqb1)和(agtb1)中的任意一个端口输出第二运算结果,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第二运算结果为高电平信号。
示例性的,若输入的两个待处理的数据为a和b,当无穷数判断结果输出端口(altb1)输出高电平信号时,则表示a<b,此时,通过数据比较器的最大值输出端口(zmax)输出数据b,通过最小值输出端口(zmin)输出待处理的数据a。
需要说明的是,若无穷数判断单元接收到的两个待处理的数据均为无穷数,且两个无穷数的符号位相同,则无穷数判断单元通过无穷数判断结果输出端口(aeqb1)输出第二运算结果,结束运算,其中,上述第二运算结果为高电平信号。若无穷数判断单元接收到的两个待处理的数据中有一个待处理的数据为无穷数,另一个待处理的数据不为无穷数,则根据符号位判断两个待处理的数据的大小。
示例性的,若输入的两个待处理的数据为a和b,a为无穷数,且符号位为0(即表示正无穷),b不为无穷数,则说明a>b,此时,无穷数判断单元通过无穷数判断结果输出端口(agtb1)输出第二运算结果,结束比较运算。若输入的两个待处理的数据为a和b,a为无穷数,且符号位为1(即表示负无穷),b不为无穷数,则说明a<b,此时,无穷数判断单元通过无穷数判断结果输出端口(altb1)输出第二运算结果,结束比较运算。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理的数据中存在无穷数,则无穷数判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s1023中将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
具体的,如果零值判断单元接收到的待处理的数据中有零值,则零值判断单元可以直接通过零值判断结果输出端口(altb2),(aeqb2)和(agtb2)中的任意一个端口输出第三运算结果,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算。其中,上述第三运算结果为高电平信号。
需要说明的是,若零值判断单元接收到的两个待处理的数据均为零值时,则零值判断单元通过零值判断结果输出端口(aeqb2)输出第三运算结果,结束运算,其中,上述第三运算结果为高电平信号。若零值判断单元接收到的两个待处理的数据中有一个待处理的数据为零值,则根据另一个待处理的数据的符号位判断两个待处理的数据的大小。
示例性的,若输入的待处理的数据为a和b,a为零值,b不为零值,b的符号位为0(即b为正数),则零值判断单元通过零值判断结果输出端口(altb2)输出第三运算结果,结束运算,若b的符号位为1(即b为负数),则零值判断单元通过零值判断结果输出端口(agtb2)输出第三运算结果,结束运算。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理的数据中存在零值,则零值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图12为另一实施例提供的数据处理方法的流程示意图,上述s103中所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果,可以通过以下所述方法实现,如图12所示,具体包括:
s1031、通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等。
具体的,上述待处理的数据的符号位可以用0或1表示,0表示该数据为正数,1表示该数据为负数。需要说明的是,当零值判断结果输出端口和无穷数判断结果输出端口均输出低电平信号时,数据比较器可以通过零值判断单元或无穷数判断单元将待处理的数据输入到符号位比较单元进行处理。
s1032、若待处理的所述数据的符号位相等,则将待处理的所述数据的指数位输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等。
具体的,如果接收到的待处理的数据的符号位相等,则将待处理的数据的指数位输入到指数位比较单元,通过指数位比较单元继续判断待处理的数据的指数位是否相等。
需要说明的是,当符号位比较结果输出端口没有输出高电平信号时,数据比较器可以通过符号位比较单元将待处理的数据的指数位输入到指数位比较单元。
s1033、若待处理的所述数据的指数位相等,则将待处理的所述数据的尾数位输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
具体的,如果接收到的待处理的数据的指数位相等,则将待处理的数据的尾数位输入到尾数位比较单元,通过尾数位比较单元继续判断待处理的数据的尾数位是否相等。
需要说明的是,当指数位比较结果输出端口没有输出高电平信号时,数据比较器可以通过指数位比较单元将待处理的数据的尾数位输入到尾数位比较单元。
s1034、若待处理的所述数据的尾数位相等,则输出第四运算结果,结束运算。
具体的,如果接收到的待处理的数据的尾数位相等,则尾数位比较单元通过尾数位比较结果输出端口(aegb5)输出第四运算结果,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第四运算结果为高电平信号。
本实施例提供的一种数据比较器,数据比较器对接收到的待处理的数据的符号位,指数位和尾数位依次进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
可选的,如图13所示,上述通过判断电路分别将待处理的所述数据输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果,还可以通过以下所述方法实现,如图13所示,具体包括:
s1035、通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等。
s1036、若待处理的所述数据的符号位相等,则将待处理的所述数据输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等。
具体的,如果接收到的待处理的数据的符号位相等,则将待处理的数据输入到指数位比较单元,通过指数位比较单元继续判断待处理的数据的指数位是否相等。
需要说明的是,当符号位比较结果输出端口没有输出高电平信号时,数据比较器可以通过符号位比较单元将待处理的数据输入到指数位比较单元。
s1037、若待处理的所述数据的指数位相等,则将待处理的所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
具体的,如果接收到的待处理的数据的指数位相等,则将待处理的数据输入到尾数位比较单元,通过尾数位比较单元继续判断待处理的数据的尾数位是否相等。
需要说明的是,当指数位比较结果输出端口没有输出高电平信号时,数据比较器可以通过指数位比较单元将待处理的数据输入到尾数位比较单元。
s1038、若待处理的所述数据的尾数位相等,则输出第四运算结果,结束运算。
具体的,如果接收到的待处理的数据的尾数位相等,则尾数位比较单元通过尾数位比较结果输出端口(aegb5)输出第四运算结果,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第四运算结果为高电平信号。
本实施例提供的一种数据比较器,数据比较器对接收到的待处理的数据的符号位,指数位和尾数位依次进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法的流程示意图,上述s103中所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果,可以通过以下所述方法实现,具体包括:将所述判断电路与所述比较电路中每一个单元对应的输出端口进行或逻辑运算,输出运算结果。
具体的,如果数据比较器采用并行处理方式处理数据时,可以分别通过判断电路中的每一个判断单元和比较电路中的每一个比较单元对待处理的数据进行处理,并将判断电路与比较电路中每个单元对应的输出端口unordered,altb,agtb和aeqb分别进行或逻辑运算,输出运算结果。
本实施例提供的一种数据比较器,数据比较器对接收到的待处理的数据进行并行处理,可以减少运算的复杂度,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s1031中通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等之后,还包括:若待处理的所述数据的符号位不相等,则输出第五运算结果,结束运算。
具体的,若符号位比较单元接收到的两个待处理的数据的符号位不相等时,正数大于负数。示例性的,若输入的两个数据为a和b,a的符号位为0,b的符号位为1,则说明a>b,此时,符号位比较单元通过符号位比较结果输出端口(agtb3)输出第五运算结果,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第五运算结果为高电平信号。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理的数据的符号位不相等,则符号位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s1032中将所述待处理的数据的指数位输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等之后,还包括:若待处理的所述数据的指数位不相等,则输出第六运算结果,结束运算。
需要说明的是,若指数位比较单元接收到的两个待处理的数据的指数位不相等时,对于正数,则指数位越大,数值越大,对于负数,则指数位越大,数值越小。示例性的,若输入的两个数据为a和b,a和b的符号位均为1,且a的指数位大于b的指数位,则说明a<b,此时,指数位比较单元通过指数位比较结果输出端口(altb4)输出第六运算结果,结束运算;若a和b的符号位均为0,且a的指数位大于b的指数位,则说明a>b,此时,指数位比较单元通过指数位比较结果输出端口(agtb4)输出第六运算结果,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第六运算结果为高电平信号。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理的数据的指数位不相等,则指数位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
可选的,上述s1036中将所述待处理的数据输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等之后,还包括:若待处理的所述数据的指数位不相等,则输出第六运算结果,结束运算。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理的数据的指数位不相等,则指数位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图14所示,上述s1036中所述指数位比较单元判断待处理的所述数据的指数位是否相等,可以通过以下所述方法实现,如图14所示,包括:
s1036a、将待处理的所述数据的指数位划分成第一指数位和第二指数位,判断所述第一指数是否相等。
具体的,通过综合考虑ieee数据算术标准规定的不同位宽数据的指数位和尾数位位宽,待处理的数据的位宽,以及数据比较器可处理的数据位宽,将待处理的数据的指数位可以划分成两部分,分别为第一指数位和第二指数位。可选的,上述第一指数位可以为指数位的前半部分,上述第二指数位可以为指数位的后半部分。
示例性的,基于ieee数据算术标准,规定32位数据中符号位可以为1比特位宽,指数位可以为8比特位宽,尾数位可以为23比特位宽。其中,a[30:26]和a[25:23]可以作为数据指数位的前后两部分,a[22:16]、a[15]、a[14:10]和a[9:0]均可以作为数据尾数位部分,a[31]可以为数据的符号位。另外,基于ieee数据算术标准中将32位数据的指数位和尾数位按照上述方法划分,主要兼顾了32位数据和16位数据的指数位和尾数位的位宽规则,以及32位数据可以划分成高低16位数据进行比较处理的问题。
s1036b、若待处理的所述数据指数位的第一指数位相等,则判断所述第二指数位是否相等。
需要说明的是,对于32位数据或16位数据的指数位进行比较运算时,可以先比较指数位的前半部分,若数据指数位的前半部分大小不相等,此时就可以直接确定两个数据的大小关系,结束运算,若数据指数位的前半部分大小相等,则继续比较数据指数位的后半部分的大小,直达数据指数位全部比较完成。
s1036c、若待处理的所述数据指数位的第二指数位相等,则继续通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
具体的,如果数据的第二指数位也比较完成后且相等,则可以继续对数据的尾数位进行比较。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理的数据的指数位不相等,则指数位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法的流程示意图,上述s1033中将待处理的所述数据的尾数位输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等之后,还包括:若待处理的所述数据的尾数位不相等,则输出第七运算结果,结束运算。
需要说明的是,若尾数位比较单元接收到的两个待处理的数据的尾数位不相等时,对于正数,则尾数位越大,数值越大,对于负数,则尾数位越大,数值越小。示例性的,若输入的两个待处理的数据为a和b,a和b的符号位均为1,且a的尾数位大于b的尾数位,则说明a<b,此时,尾数位比较单元通过尾数位比较结果输出端口(altb5)输出第六运算结果,结束运算;若a和b的符号位均为0,且a的尾数位大于b的尾数位,则说明a>b,此时,尾数位比较单元通过尾数位比较结果输出端口(agtb5)输出第七运算结果,并通过数据比较器的最大值输出端口(zmax)和最小值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第七运算结果为高电平信号。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理的数据的尾数位不相等,则尾数位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
可选的,上述s1037中将待处理的所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等之后,还包括:若待处理的所述数据的尾数位不相等,则输出第七运算结果,结束运算。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理数据的尾数位不相等,则尾数位比较单元可以输出高电平信号,从而结束运算输出运算结果;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
在其中一个实施例中,如图15所示,上述s1037中所述尾数位比较单元判断待处理的所述数据的尾数位是否相等,可以通过以下所述方法实现,如图15所示,包括:
s1037a、将待处理的所述数据的尾数位划分成第一尾数位和第二尾数位,判断所述第一尾数位是否相等。
s1037b、若待处理的所述数据指数位的第一尾数位相等,则判断所述第二尾数位是否相等。
需要说明的是,尾数位的比较方式可以与指数位的比较方式类似,在此不再赘述。
本实施例提供的一种数据比较器,数据比较器若接收到的待处理数据的尾数位不相等,则尾数位比较单元可以输出高电平信号,从而结束运算输出运算结果;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图16为一实施例提供的数据处理方法的流程示意图,该方法可以通过图2和图7所示的数据比较器进行处理,本实施例涉及的是对数据进行比较运算的过程。如图16所示,该方法包括:
s201、接收待处理的数据。
s202、通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理。
s203、若需要,则所述判断电路将待处理的所述数据输入到所述比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果。
具体的,若待处理的数据中不存在非数值、无穷数或零值,则通过判断电路对待处理的数据处理后,可以将待处理的数据或待处理的数据的符号位数据输入到比较电路,通过比较电路依次比较待处理的数据的符号位,指数位和尾数位大小,比较单元根据数据的符号位,指数位和尾数位的比较结果输出高电平信号,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束运算。
示例性的,若输入的是32位的两个待处理的数据a和b,当前数据比较器可以进行16位待处理的数据比较运算,数据比较器将输入的两个32位待处理的数据按照高低16位对应分成两组16位待处理的数据,则最大数值输出端口(zmax)和最小数值输出端口(zmin)输出的数值,均是通过高低16位待处理的数据分别比较最大值或最小值后拼接得到,即可以通过公式zmax={max{a[31:16],b[31:16]},max{a[15:0],b[15:0]}}表示最大值的获取方式,通过zmin={min{a[31:16],b[31:16]},min{a[15:0],b[15:0]}}表示最小值的获取方式,其中,最大数值输出端口(zmax)和最小数值输出端口(zmin)输出的32位最大值和最小值的高低16位待处理的数据,可以是同一个待处理的数据的高低16位数据,还可以为不同待处理的数据的高低16位数据拼接的最大或最小数据。若数据比较器当前可处理的数据位宽和接收到的待处理的数据位宽相等均为32,则最大数值输出端口(zmax)和最小数值输出端口(zmin)输出的32位最大值和最小值的高低16位数据,为同一个待处理的数据的高低16位数据。
本实施例提供的一种数据处理方法,数据比较器通过判断电路判断待处理的数据是否需要通过比较电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法。上述s202中通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理,包括:通过所述判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值;若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
需要说明的是,基于ieee数据算术标准中非数值,无穷数和零值对应的编码标准,若判断电路接收到的待处理的数据中不存在非数值、无穷数或零值,则可以判断待处理的数据还需要通过比较电路进行下一步处理;若判断电路接收到的待处理的数据中存在非数值、无穷数或零值,则判断电路的判断结果为是,会输出高电平信号,结束运算。在本实施例中,高电平信号可以用1表示。
示例性的,若输入的是32位的两个待处理的数据a和b,当前数据比较器可以进行16位数据比较运算,则数据比较器会将输入的两个32位待处理的数据按照高低16位对应分成两组16位待处理的数据,可以表示为a[31:16]和a[15:0],与b[31:16]和b[15:0],因此,数据比较器会通过判断单元对a[31:16]与b[31:16],和a[15:0]与b[15:0]两组待处理的数据进行同时处理,分别得到两组高低16位待处理的数据中是否存在非数值、无穷数或零值。
本实施例提供的一种数据处理方法,数据比较器通过先对待处理的数据中是否存在非数值、无穷数或零值进行判断,根据判断结果决定是否输入比较电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一个实施例提供的数据处理方法,上述s2021中通过非数值判断单元判断待处理的所述数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算。
具体的,如果非数值判断单元接收到的待处理的数据中至少有一个非数值,则非数值判断单元可以直接通过判断结果输出端口(unordered)输出第一运算结果,结束比较运算,其中,上述第一运算结果为高电平信号。此时,说明接收到的待处理的数据中有非数值,无法进行数值比较,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中至少存在一个非数值,则非数值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s2021中将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算。
具体的,如果无穷数判断单元接收到的待处理的数据中有无穷数,则无穷数判断单元可以直接通过判断结果输出端口(altb1),(aeqb1)和(agtb1)输出第二运算结果,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第二运算结果为高电平信号。
示例性的,若输入的两个待处理的数据为a和b,当判断结果输出端口(altb1)输出高电平信号时,则表示a<b,此时,通过数据比较器的最大数值输出端口(zmax)输出数据b,通过最小数值输出端口(zmin)输出待处理的数据a。
需要说明的是,若无穷数判断单元接收到的两个待处理的数据均为无穷数,且两个无穷数的符号位相同,则无穷数判断单元通过判断结果输出端口(aeqb1)输出第二运算结果,结束运算,其中,上述第二运算结果为高电平信号。若无穷数判断单元接收到的两个待处理的数据中有一个待处理的数据为无穷数,另一个待处理的数据不为无穷数,则根据符号位判断两个待处理的数据的大小。
示例性的,若输入的两个待处理的数据为a和b,a为无穷数,且符号位为0(即表示正无穷),b不为无穷数,则说明a>b,此时,无穷数判断单元通过判断结果输出端口(agtb1)输出第二运算结果,结束比较运算。若输入的两个待处理的数据为a和b,a为无穷数,且符号位为1(即表示负无穷),b不为无穷数,则说明a<b,此时,无穷数判断单元通过判断结果输出端口(altb1)输出第二运算结果,结束比较运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中存在无穷数,则无穷数判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s2023中将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
具体的,如果零值判断单元接收到的待处理的数据中有零值,则零值判断单元可以直接通过判断结果输出端口(altb2),(aeqb2)和(agtb2)输出第三运算结果,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算。其中,上述第三运算结果为高电平信号。
需要说明的是,若零值判断单元接收到的两个待处理的数据均为零值时,则零值判断单元通过判断结果输出端口(aeqb2)输出第三运算结果,结束运算,其中,上述第三运算结果为高电平信号。若零值判断单元接收到的两个待处理的数据中有一个待处理的数据为零值,则根据另一个待处理的数据的符号位判断两个待处理的数据的大小。
示例性的,若输入的两个待处理的数据为a和b,a为零值,b不为零值,b的符号位为0(即表示b为正数),则零值判断单元通过判断结果输出端口(altb2)输出第三运算结果,结束运算,若b的符号位为1(即表示b为负数),则零值判断单元通过判断结果输出端口(agtb2)输出第三运算结果,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中存在零值,则零值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
图17为另一实施例提供的数据处理方法的流程示意图,上述s203中所述判断电路将待处理的所述数据输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果,可以通过以下所述方法实现,如图17所示,具体包括:
s2031、通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等。
需要说明的是,上述待处理的数据的符号位可以用0或1表示,0表示该数据为正数,1表示该数据为负数。
需要说明的是,当零值判断单元或无穷数判断单元没有输出高电平信号时,数据比较器可以通过零值判断单元或无穷数判断单元将待处理的数据输入到符号位比较单元。
s2032、若待处理的所述数据的符号位相等,则将待处理的所述数据输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等。
具体的,如果接收到的待处理的数据的符号位相等,则将待处理的数据输入到指数位比较单元,通过指数位比较单元继续判断待处理的数据的指数位是否相等。
需要说明的是,当符号位比较单元没有输出高电平信号时,数据比较器可以通过符号位比较单元将待处理的数据输入到指数位比较单元。
s2033、若待处理的所述数据的指数位相等,则将待处理的所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
具体的,如果接收到的待处理的数据的指数位相等,则将待处理的数据输入到尾数位比较单元,通过尾数位比较单元继续判断待处理的数据的尾数位是否相等。
需要说明的是,当指数位比较单元没有输出高电平信号时,数据比较器可以通过指数位比较单元将待处理的数据输入到尾数位比较单元。
s2034、若待处理的所述数据的尾数位相等,则输出第四运算结果,结束运算。
具体的,如果接收到的待处理的数据的尾数位相等,则尾数位比较单元通过比较结果输出端口(aegb5)输出第四运算结果,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第四运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器对接收到的待处理的数据的符号位,指数位和尾数位依次进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s2031中通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等之后,还包括:若待处理的所述数据的符号位不相等,则输出第五运算结果,结束运算。
需要说明的是,若符号位比较单元接收到的两个待处理的数据的符号位不相等时,正数大于负数。示例性的,若输入的两个数据为a和b,a的符号位为0,b的符号位为1,则说明a>b,此时,符号位比较单元通过比较结果输出端口(agtb3)输出第五运算结果,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第五运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的符号位不相等,则符号位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s1032中将所述待处理的数据输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等之后,还包括:若待处理的所述数据的指数位不相等,则输出第六运算结果,结束运算。
需要说明的是,若指数位比较单元接收到的两个待处理的数据的指数位不相等时,对于正数,则指数位越大,数值越大,对于负数,则指数位越大,数值越小。示例性的,若输入的两个数据为a和b,a和b的符号位均为1,且a的指数位大于b的指数位,则说明a<b,此时,符号位比较单元通过比较结果输出端口(altb4)输出第六运算结果,结束运算;若a和b的符号位均为0,且a的指数位大于b的指数位,则说明a>b,此时,符号位比较单元通过比较结果输出端口(agtb4)输出第六运算结果,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第六运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的指数位不相等,则指数位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
另一实施例提供的数据处理方法,上述s2033中将所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等之后,还包括:若待处理的所述数据的尾数位不相等,则输出第七运算结果,结束运算。
需要说明的是,若尾数位比较单元接收到的两个待处理的数据的尾数位不相等时,对于正数,则尾数位越大,数值越大,对于负数,则尾数位越大,数值越小。示例性的,若输入的两个待处理的数据为a和b,a和b的符号位均为1,且a的尾数位大于b的尾数位,则说明a<b,此时,尾数位比较单元通过比较结果输出端口(altb5)输出第六运算结果,结束运算;若a和b的符号位均为0,且a的尾数位大于b的尾数位,则说明a>b,此时,尾数位比较单元通过比较结果输出端口(agtb5)输出第七运算结果,并通过数据比较器的最大数值输出端口(zmax)和最小数值输出端口(zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第七运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的尾数位不相等,则尾数位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用ai芯片的面积。
为了便于本领域技术人员的理解,以数据比较器可处理16位浮点数,数据比较器接收的是两个32位浮点数为例介绍本发明提供的数据处理方法,具体的方法包括:
s301、通过非数值判断单元接收两个32位浮点数,并分别判断两个32位浮点数的高16位浮点数的数据与低16位浮点数的数据中是否存在非数值(即a[31:16]和a[15:0]分别与b[31:16]和b[15:0]进行判断),若不存在,则继续执行s302。
s302、通过非数值判断单元将接收到的两个32位浮点数输入到无穷数判断单元,分别判断两个32位浮点数的高16位浮点数的数据与低16位浮点数的数据中是否存在无穷数,若不存在,则继续执行s203。
s303、通过无穷数判断单元将接收到的两个32位浮点数输入到零值判断单元,分别判断两个32位浮点数的高16位浮点数的数据与低16位浮点数的数据中是否存在零值,若不存在,则继续执行s204。
s304、通过零值判断单元将接收到的两个32位浮点数输入到符号位比较单元,符号位比较单元分别对两个32位浮点数的高16位数据与低16位数据的符号位进行大小比较,若符号位大小相等,则继续执行s205。
需要说明的是,基于ieee数据算术标准,规定16位浮点数中符号位可以为1比特位宽,指数位可以为5比特位宽,尾数位可以为10比特位宽。其中,a[30:26]和a[14:10]可以分别作为高低16位浮点数中的指数位,a[25:23]可以作为高16位浮点数尾数位的前半部分,a[22:16]可以作为高16位浮点数尾数位的后半部分,a[9:0]可以作为高16位浮点数尾数位部分,a[31]和a[15]分别为高低16位浮点数的符号位。
s305、通过符号位比较单元将接收到的两个32位浮点数输入到指数位比较单元,指数位比较单元分别对两个32位浮点数的高16位浮点数的数据与低16位浮点数的数据的指数位进行大小比较,若指数位大小相等,则继续执行s206。
s306、通过指数位比较单元将接收到的两个32位浮点数输入到尾数位比较单元,尾数位比较单元分别对两个32位浮点数的高16位浮点数的数据与低16位浮点数的数据的尾数位进行大小比较,输出运算结果。
可选的,上述s301至s303中任意一个步骤的判断结果为是,则可以输出运算结果,结束运算,同时,上述s304至s305中任意一个步骤的比较结果为不相等,则可以输出运算结果,结束运算。
另外,在比较运算过程中,执行主体中的每一个单元的判断结果输出端口均为两位有效,即高电平和低电平均有效,具体比较情况见表1:
表1
以上s301至s306的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
另外,若以数据比较器可处理32位数据,数据比较器接收的是两个32位数据为例介绍本发明提供的数据处理方法,具体的方法包括:
s401、通过非数值判断单元接收两个32位数据,并判断两个32位数据中是否存在非数值,若不存在,则继续执行s302。
s402、通过非数值判断单元将接收到的两个32位数据输入到无穷数判断单元,并判断两个32位数据中是否存在无穷数,若不存在,则继续执行s303。
s403、通过无穷数判断单元将接收到的两个32位数据输入到零值判断单元,并判断两个32位数据中是否存在零值,若不存在,则继续执行s404。
s404、通过零值判断单元将接收到的两个32位数据输入到符号位比较单元,符号位比较单元对两个32位数据的符号位进行大小比较,若符号位大小相等,则继续执行s305。
s405、通过符号位比较单元将接收到的两个32位数据输入到指数位比较单元,指数位比较单元对两个32位数据的指数位进行大小比较,若指数位大小相等,则继续执行s406。
s406、通过指数位比较单元将接收到的两个32位数据输入到尾数位比较单元,尾数位比较单元对两个32位数据的尾数位进行大小比较,输出运算结果。
可选的,上述s401至s403中任意一个步骤的判断结果为是,则可以输出运算结果,结束运算,同时,上述s404至s405中任意一个步骤的比较结果为不相等,则可以输出运算结果,结束运算。
另外,在比较运算过程中,执行主体中每一个单元的判断结果输出端口均为一位有效,即高电平或低电平有效,若以低电平有效为例,具体比较情况见表2:
表2
以上s401至s406的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据比较器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过i/o接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据比较器时,数据比较器间可以通过特定的结构进行链接并传输数据,譬如,通过pcie总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过pcie接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图18为组合处理装置的示意图。
其它处理装置,包括中央处理器cpu、图形处理器gpu、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图19所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的soc片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图20所示,图20提供了一种板卡,上述板卡除了包括上述芯片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.一种数据比较器,其特征在于,包括:判断电路和比较电路,所述判断电路包括零值判断单元,所述比较电路包括符号位比较单元和指数位比较单元,所述零值判断单元的输出端与所述符号位比较单元的输入端及所述指数位比较单元的输入端连接,所述符号位比较单元的输出端与所述指数位比较单元的输入端连接;
所述零值判断单元用于判断接收到的所述数据中是否存在零值,所述符号位比较单元用于判断接收到的所述数据的符号位大小,所述指数位比较单元用于判断接收到的所述数据的指数位大小。
2.根据权利要求1所述的数据比较器,其特征在于,所述判断电路中包括第一输入端,用于接收输入的功能选择模式信号;所述比较电路中包括第二输入端,用于接收输入的所述功能选择模式信号;所述功能选择模式信号用于确定数据比较器处理的数据的位宽。
3.根据权利要求1所述的数据比较器,其特征在于,所述判断电路还包括:非数值判断单元和无穷数判断单元,所述非数值判断单元的输出端与所述无穷数判断单元的输入端连接,所述无穷数判断单元的输出端与所述零值判断单元的输入端连接,所述无穷数判断单元的输出端与所述非数值判断单元的输入端连接,所述非数值判断单元的输出端与所述零值判断单元的输入端连接;
所述非数值判断单元用于判断接收到的所述数据中是否存在非数值,所述无穷数判断单元用于判断接收到的所述数据中是否存在无穷数。
4.根据权利要求3所述的数据比较器,其特征在于,所述判断电路中的所述非数值判断单元包括:第一数据输入端口,第二数据输入端口,功能选择模式信号输入端口,第一数据输出端口,第二数据输出端口和非数值判断结果输出端口,所述第一数据输入端口用于接收输入的第一数据,第二数据输入端口用于接收输入的第二数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口用于将接收到的所述第一数据输出到下一单元的输入端口,所述第二数据输出端口用于将接收到的所述第二数据输出到下一单元的输入端口,所述非数值判断结果输出端口用于输出非数值判断单元的判断结果;
所述判断电路中的所述无穷数判断单元包括:第一数据输入端口,第二数据输入端口,功能选择模式信号输入端口,第一数据输出端口,第二数据输出端口和无穷数判断结果输出端口,所述第一数据输入端口用于接收输入的所述第一数据,第二数据输入端口用于接收输入的所述第二数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口用于将接收到的所述第一数据输出到下一单元的输入端口,第二数据输出端口用于将接收到的所述第二数据输出到下一单元的输入端口,所述无穷数判断结果输出端口用于输出无穷数判断单元的判断结果;
所述判断电路中的所述零值判断单元包括:第一数据输入端口,第二数据输入端口,功能选择模式信号输入端口,零值判断结果输出端口,第一符号位输出端口,第二符号位输出端口,第一指数位输出端口,第二指数位输出端口,第一尾数位输出端口,第二尾数位输出端口和逻辑信号输出端口,所述第一数据输入端口接收输入的所述第一数据,所述第二数据输入端口用于接收输入的所述第二数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述零值判断结果输出端口用于输出零值判断单元的判断结果,第一符号位输出端口用于输出接收的第一数据的符号位数据,第二符号位输出端口用于输出接收的第二数据的符号位数据,第一指数位输出端口用于输出接收的第一数据的指数位数据,第二指数位输出端口用于输出接收的第二数据的指数位数据,第一尾数位输出端口用于输出接收的第一数据的尾数位数据,第二尾数位输出端口用于输出接收的第二数据的尾数位数据,所述零值逻辑信号输出端口用于输出逻辑判断信号。
5.根据权利要求1所述的数据比较器,其特征在于,所述符号位比较单元的输出端与所述指数位比较单元的输入端连接。
6.根据权利要求5所述的数据比较器,其特征在于,所述比较电路中的所述符号位比较单元:第一符号位输入端口,第二符号位输入端口,功能选择模式信号输入端口,符号位比较结果输出端口,符号位逻辑信号输出端口,所述第一符号位输入端口用于接收所述第一数据的符号位数据,所述第二符号位输入端口用于接收所述第二数据的符号位数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述符号位比较结果输出端口用于输出所述数据的符号位大小比较结果,所述符号位逻辑信号输出端口用于输出逻辑判断信号;
所述比较电路中的所述指数位比较单元:第一指数位输入端口,第二指数位输入端口,功能选择模式信号输入端口,指数位比较结果输出端口,指数位逻辑信号输出端口,所述第一指数位输入端口用于接收所述第一数据的指数位数据,所述第二指数位输入端口用于接收所述第二数据的指数位数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述指数位比较结果输出端口用于输出所述数据的指数位大小比较结果,所述指数位逻辑信号输出端口用于输出逻辑判断信号。
7.根据权利要求1所述的数据比较器,其特征在于,所述比较电路还包括:尾数位比较单元,所述零值判断单元的输出端与所述尾数位比较单元的输入端连接,所述尾数位比较单元用于判断接收到的所述数据的尾数位大小。
8.根据权利要求7所述的数据比较器,其特征在于,所述尾数位比较单元包括:第一尾数位输入端口,第二尾数位输入端口,功能选择模式信号输入端口,尾数位比较结果输出端口,尾数位逻辑信号输出端口;
所述第一尾数位输入端口用于接收所述第一数据的尾数位数据,所述第二尾数位输入端口用于接收所述第二数据的尾数位数据,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述尾数位比较结果输出端口用于输出所述数据的尾数位大小比较结果,所述尾数位逻辑信号输出端口用于输出逻辑判断信号。
9.一种数据处理方法,其特征在于,包括:
接收待处理的数据;
通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理;
若需要,则通过所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到所述比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出运算结果。
10.根据权利要求9所述的方法,其特征在于,所述通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理,包括:
通过所述判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值;
若所述数据中不存在非数值、无穷数以及零值,则判断所述数据需要通过所述比较电路进行处理。
11.根据权利要求10所述的方法,其特征在于,所述通过判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值,包括:
通过非数值判断单元判断待处理的所述数据中是否存在非数值;
若不存在非数值,则将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数;
若不存在无穷数,则将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值;
若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
12.根据权利要求11所述的方法,其特征在于,所述通过判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值,包括:
通过无穷数判断单元判断待处理的所述数据中是否存在无穷数;
若不存在无穷数,则将待处理的所述数据输入到非数值判断单元,通过所述非数值判断单元判断待处理的所述数据中是否存在非数值;
若不存在非数值,则将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值;
若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
13.根据权利要求12所述的方法,其特征在于,在所述通过非数值判断单元判断待处理的所述数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算;
在所述将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算;
在所述将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
14.根据权利要求10所述的方法,其特征在于,通过所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到比较电路,通过所述比较电路比较待处理的所述数据中符号位,指数位和尾数位的大小,输出运算结果,包括:
通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等;
若待处理的所述数据的符号位相等,则将待处理的所述数据的指数位输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等;
若待处理的所述数据的指数位相等,则将待处理的所述数据的尾数位输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等;
若待处理的所述数据的尾数位相等,则输出第四运算结果,结束运算;或者
将所述判断电路与所述比较电路中每个单元对应的输出端口进行或逻辑运算,输出运算结果。
15.根据权利要求14所述的方法,其特征在于,在所述通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等之后,还包括:若待处理的所述数据的符号位不相等,则输出第五运算结果,结束运算;
在所述将待处理的所述数据的指数位输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等之后,还包括:若待处理的所述数据的指数位不相等,则输出第六运算结果,结束运算。
16.根据权利要求15所述的方法,其特征在于,所述指数位比较单元判断待处理的所述数据的指数位是否相等,包括:
将待处理的所述数据的指数位划分成第一指数位和第二指数位,判断所述第一指数是否相等;
若待处理的所述数据指数位的第一指数位相等,则判断所述第二指数位是否相等;
若待处理的所述数据指数位的第二指数位相等,则继续通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
17.根据权利要求14所述的方法,其特征在于,在将待处理的所述数据的尾数位输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等之后,还包括:若待处理的所述数据的尾数位不相等,则输出第七运算结果,结束运算。
18.根据权利要求17所述的方法,其特征在于,所述尾数位比较单元判断待处理的所述数据的尾数位是否相等,包括:
将待处理的所述数据的尾数位划分成第一尾数位和第二尾数位,判断所述第一尾数位是否相等;
若待处理的所述数据指数位的第一尾数位相等,则判断所述第二尾数位是否相等。
19.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-8任一项所述的数据比较器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过i/o接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述计算装置时,所述多个所述计算装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据比较器通过pcie总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据比较器共享同一控制系统或拥有各自的控制系统;多个所述数据比较器共享内存或者拥有各自的内存;多个所述数据比较器的互联方式是任意互联拓扑。
20.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求19所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
21.根据权利要求19所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
22.一种神经网络芯片,其特征在于,所述机器学习芯片包括如权利要求19所述的机器学习运算装置或如权利要求20所述的组合处理装置或如权利要求20所述的组合处理装置。
23.一种电子设备,其特征在于,所述电子设备包括如所述权利要求21所述的芯片。
24.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求22所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
25.根据权利要求24所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:ddrsdram;
所述芯片包括:ddr控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准pcie接口。
技术总结