CN111381802B - 数据比较器、数据处理方法、芯片及电子设备 - Google Patents
数据比较器、数据处理方法、芯片及电子设备 Download PDFInfo
- Publication number
- CN111381802B CN111381802B CN201811622453.2A CN201811622453A CN111381802B CN 111381802 B CN111381802 B CN 111381802B CN 201811622453 A CN201811622453 A CN 201811622453A CN 111381802 B CN111381802 B CN 111381802B
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- circuit
- unit
- bit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Logic Circuits (AREA)
- Complex Calculations (AREA)
Abstract
本申请提供一种数据比较器、数据处理方法、芯片及电子设备,该数据比较器包括:比较电路、极值寄存控制电路、极值寄存器电路、状态控制电路以及极值选择电路,所述比较电路的输出端与所述极值寄存控制电路的第一输入端连接,所述极值寄存控制电路的输出端与所述极值寄存器电路的输入端连接,所述极值寄存器电路的输出端与所述极值选择电路的第一输入端连接,所述极值寄存控制电路的第二输入端与所述状态控制电路的第一输出端连接,所述状态控制电路的第二输出端与所述极值选择电路的第二输入端连接,该数据比较器可以对接收到的数据进行比较,使得获得的目标极值的位宽可以小于处理数据位宽,从而有效降低数据比较器对输入输出端口位宽的要求。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据比较器、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字比较器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,其需要多次用到数据比较器进行数据大小比较运算。
通常,数据比较器需要分别对数据的符号位、指数位和位数值进行判断,确定数据的大小。但是,现有的数据比较器中输出端口的位宽必须要等于输入端口位宽,导致数据比较器对输入输出端口位宽的要求较高。
发明内容
基于此,有必要针对上述技术问题,提供一种数据比较器、数据处理方法、芯片及电子设备。
本发明实施例提供一种数据比较器,所述数据比较器包括:比较电路、极值寄存控制电路、极值寄存器电路、状态控制电路以及极值选择电路,所述比较电路的输出端与所述极值寄存控制电路的第一输入端连接,所述极值寄存控制电路的输出端与所述极值寄存器电路的输入端连接,所述极值寄存器电路的输出端与所述极值选择电路的第一输入端连接,所述极值寄存控制电路的第二输入端与所述状态控制电路的第一输出端连接,所述状态控制电路的第二输出端与所述极值选择电路的第二输入端连接;
其中,所述比较电路用于对接收到的数据进行比较得到极值,所述状态控制电路用于获取存储指示信号以及读取指示信号,所述极值寄存控制电路用于根据所述存储指示信号确定存储所述极值的所述极值寄存器电路,所述极值寄存器电路用于存储所述极值,所述极值选择电路用于根据多数读取指示信号,读取所述极值寄存器电路中存储的所述极值以得到目标极值。
在其中一个实施例中,所述比较电路中包括输入端,用于接收输入的功能选择模式信号;所述功能选择模式信号用于确定比较电路处理的数据的位宽。
在其中一个实施例中,所述比较电路包括:判断子电路和比较子电路,所述判断电路的输出端与所述比较子电路的输入端连接;所述判断子电路用于判断接收到的数据是否需要通过比较子电路进行处理,所述比较子电路用于对接收到的所述数据进行比较。
在其中一个实施例中,所述判断子电路中包括第一输入端,用于接收输入的功能选择模式信号;所述比较子电路中包括第二输入端,用于接收输入的所述功能选择模式信号。
在其中一个实施例中,所述极值寄存控制电路包括:极大值寄存控制单元和极小值寄存控制单元;
其中,其中,所述极大值寄存控制单元用于接收状态控制电路输入的所述存储指示信号,并根据所述存储指示信号确定存储所述极大值的极大值寄存单元;所述极小值寄存控制单元用于接收状态控制电路输入的所述存储指示信号,并根据所述存储指示信号确定存储所述极小值的极小值寄存单元。
在其中一个实施例中,所述极值寄存器电路包括:极大值寄存单元和极小值寄存单元,所述极大值寄存单元用于将不同存储指示信号对应的所述极大值进行存储;所述极小值寄存单元用于将不同存储指示信号对应的所述极小值进行存储。
在其中一个实施例中,所述极值选择电路包括:极大值选择单元和极小值选择单元,所述极大值选择单元用于根据接收到的所述读取指示信号,确定读取所述极大值寄存单元中存储的所述极大值中的数据,作为目标极大值;所述极小值选择单元用于根据接收到的所述读取指示信号,确定读取所述极小值寄存单元中存储的所述极小值中的数据,作为目标极小值。
本实施例提供的一种数据比较器,该数据比较器可以对接收到的数据进行比较得到目标极值,使得获得的目标极值的位宽,可以小于数据比较器输入的数据位宽,从而有效降低了数据比较器对输入输出端口位宽的要求。
本发明实施例提供一种数据处理方法,所述方法包括:
接收待处理数据;
对所述待处理数据进行比较处理得到极值;
获取存储指示信号以及读取指示信号;
根据所述存储指示信号将多个所述极值存储至不同的极值寄存单元中;
根据所述读取指示信号,读取不同极值寄存单元中存储的对应所述极值中的部分数据,得到目标极值。
在其中一个实施例中,所述对所述待处理数据进行比较处理得到极值,包括:
通过判断子电路判断所述待处理数据是否需要通过比较子电路进行处理;
若需要,则所述判断子电路将所述待处理数据输入到所述比较子电路,通过所述比较子电路比较所述待处理数据的符号位数据,指数位数据和/或尾数位尾数大小,得到极值。
在其中一个实施例中,所述通过判断子电路判断所述待处理数据是否需要通过比较子电路进行处理,包括:通过所述判断子电路判断所述待处理数据中是否存在非数值、无穷数或零值;若不存在零值,则判断所述待处理数据需要通过所述比较子电路进行处理。
在其中一个实施例中,所述通过判断子电路判断所述待处理数据是否需要通过比较子电路进行处理,包括:
通过非数值判断单元判断所述待处理数据中是否存在非数值;
若不存在非数值,则将所述待处理数据输入到无穷数判断单元,通过所述无穷数判断单元判断所述待处理数据中是否存在无穷数;
若不存在无穷数,则将所述待处理数据输入到零值判断单元,通过所述零值判断单元判断所述待处理数据中是否存在零值;
若不存在零值,则判断所述待处理数据需要通过所述比较电路进行处理。
在其中一个实施例中,所述通过非数值判断单元判断所述待处理数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算。
在其中一个实施例中,所述将所述待处理数据输入到无穷数判断单元,通过所述无穷数判断单元判断所述待处理数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算。
在其中一个实施例中,所述将所述待处理数据输入到零值判断单元,通过所述零值判断单元判断所述待处理数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
在其中一个实施例中,所述判断子电路将所述待处理数据输入到所述比较子电路,通过所述比较子电路比较所述待处理数据的符号位数据,指数位数据和/或尾数位数据大小,得到极值,包括:
通过符号位比较单元判断接收到的所述待处理数据的符号位数据是否相等;
若所述待处理数据的符号位数据相等,则将待处理的所述数据输入到指数位比较单元,通过所述指数位比较单元判断所述待处理数据的指数位数据是否相等;
若所述待处理数据的指数位相等,则将所述待处理数据输入到尾数位比较单元,通过所述尾数位比较单元判断所述待处理数据的尾数位数据是否相等;
若所述待处理数据的尾数位数据相等,则输出第四运算结果,结束运算。
在其中一个实施例中,所述通过符号位比较单元判断接收到的所述待处理数据的符号位数据是否相等之后,还包括:若所述待处理数据的符号位数据不相等,则输出第五运算结果,结束运算。
在其中一个实施例中,所述将所述待处理数据输入到指数位比较单元,通过所述指数位比较单元判断所述待处理数据的指数位数据是否相等之后,还包括:若所述待处理数据的指数位数据不相等,则输出第六运算结果,结束运算。
在其中一个实施例中,所述将所述待处理数据输入到尾数位比较单元,通过所述尾数位比较单元判断所述待处理数据的尾数位数据是否相等之后,还包括:若所述待处理数据的尾数位数据不相等,则输出第七运算结果,结束运算。
在其中一个实施例中,所述根据所述存储指示信号将多个所述极值存储至不同的极值寄存单元中,包括:
将第一存储指示信号对应的第一极大值存储至第一极大值寄存单元中;
将所述第一存储指示信号对应的第一极小值存储至第一极小值寄存单元中;
将第二存储指示信号对应的第二极大值存储至第二极大值寄存单元中;
将所述第二存储指示信号对应的第二极小值存储至第二极小值寄存单元中。
在其中一个实施例中,所述根据所述读取指示信号,读取不同极值寄存单元中存储的对应所述极值中的部分数据,得到目标极值,包括:
根据第一读取指示信号,读取所述第一极大值寄存单元中存储的所述第一极大值中的第一部分数据,得到第一目标极大值;
根据所述第一读取指示信号,读取所述第一极小值寄存单元中存储的所述第一极小值中的第一部分数据,得到第一目标极小值;
根据第二读取指示信号,读取所述第一极大值寄存单元中存储的所述第一极大值中的第二部分数据,得到第二目标极大值;
根据所述第二读取指示信号,读取所述第一极小值寄存单元中存储的所述第一极小值中的第二部分数据,得到第二目标极小值。
本实施例提供的一种数据处理方法,数据比较器可以对接收到的数据进行比较得到目标极值,使得获得的目标极值的位宽,可以小于数据比较器输入的数据位宽,从而有效降低了数据比较器对输入输出端口位宽的要求。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的数据比较器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据比较器时,所述多个所述数据比较器间可以通过特定的结构进行链接并传输数据;
其中,多个所述数据比较器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据比较器共享同一控制系统或拥有各自的控制系统;多个所述数据比较器共享内存或者拥有各自的内存;多个所述数据比较器的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的数据比较器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本发明实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的数据比较器。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的一种数据比较器结构示意图;
图2为另一实施例提供的另一种数据比较器结构示意图;
图3为一实施例提供的一种数据比较器具体结构示意图;
图4为另一实施例提供的另一种数据比较器具体结构示意图;
图5为一实施例提供的一种数据比较方法的流程示意图;
图6为另一实施例提供的另一种数据比较方法的流程示意图;
图7为一实施例提供的一种组合处理装置的结构图;
图8为一实施例提供的另一种组合处理装置的结构图;
图9为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据比较器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行比较运算处理,其具体结构示意图如图1和图2所示。
如图1所示为一实施例提供的一种数据比较器的结构示意图。该数据比较器包括:比较电路01、极值寄存控制电路02、极值寄存器电路03、状态控制电路04以及极值选择电路05,所述比较电路01的输出端与所述极值寄存控制电路02的第一输入端连接,所述极值寄存控制电路02的输出端与所述极值寄存器电路03的输入端连接,所述极值寄存器电路03的输出端与所述极值选择电路05的第一输入端连接,所述极值寄存控制电路02的第二输入端与所述状态控制电路04的第一输出端连接,所述状态控制电路04的第二输出端与所述极值选择电路05的第二输入端连接。其中,所述比较电路01用于对接收到的数据进行比较得到极值,所述状态控制电路04用于获取存储指示信号以及读取指示信号,所述极值寄存控制电路02用于根据所述存储指示信号确定存储所述极值的所述极值寄存器电路03,所述极值寄存器电路03用于存储所述极值,所述极值选择电路05用于根据多数读取指示信号,读取所述极值寄存器电路03中存储的所述极值以得到目标极值。
具体的,上述比较电路01可以比较不同位宽的数据,该数据可以为浮点数。可选的,上述比较电路01可以包括多个具有不同功能的数据处理子电路,多个不同功能的数据处理子电路的输入端口可以有一个或多个,每个数据处理子电路中的每个输入端口的功能可以不相同,输出端口也可以有一个,每个数据处理子电路中的每个输出端口的功能可以不相同,并且不同功能数据处理子电路的电路结构可以不相同。可选的,上述极值寄存器电路03可以包括极大值存储单元和极小值存储单元。可选的,上述极值选择电路05可以包括极大值处理单元和极小值处理单元,并且极大值处理单元和极小值处理单元的输入端口均可以有多个,每个输入端口的功能可以不相同,并且极大值处理单元和极小值处理单元的输出端口也均可以有多个,每个输出端口的功能可以不相同。可选的,目标极值可以为极值中的部分数据。可选的,上述极值可以包括极大值和极小值,且极值的位宽可以大于目标极值的位宽。可选的,极值的位宽可以等于数据比较器接收到的数据的位宽N,目标极值的位宽可以等于极值位宽的1/2,并且数据比较器输出端口的位宽M可以小于N比特;还可以理解为,数据比较器输出端口的位宽M可以等于N/t+deta((N/t+deta)<M),其中,通常情况下,数据比较器进行t(t>1)个时钟周期的运算可以完成一次比较运算,得到一个极值,并将该极值存储至极值寄存器电路03中,其中,deta(deta>=0)为一个常数。另外,还存在一种小概率的情况,数据比较器可以通过m(m<t,即m<=1)个时钟周期的运算完成一次比较运算,得到一个极值,并将该极值存储至极值寄存器电路03中。
另外,上述状态控制电路04可以自动获取比较电路01得到每一个极值时,对应的存储指示信号,例如,比较电路01得到第一个比较运算结果时,状态控制电路04获取的存储指示信号可以为1,若比较电路01得到第二个比较运算结果时,状态控制电路04获取的存储指示信号可以为2,依次类推,比较电路01每得到一个比较运算结果,状态控制电路04获取的存储指示信号的数值,可以为在上一个比较运算结果对应存储指示信号数值的基础上加1。可选的,上述状态控制电路04还可以自动获取极值寄存器电路03中存在比较运算结果时,当前时钟周期数对应的读取指示信号,其中,上述状态控制电路04可以自动获取当前的时钟周期数,还可以接收外界设备传输的时钟周期数。例如,若第一时钟周期下,极值寄存器电路03中存储第一个比较运算结果时,状态控制电路04获取的对应读取指示信号可以为1,此时,极值选择电路05可以读取极值寄存器电路03中存储的部分数据,第二时钟周期时,状态控制电路04获取的对应读取指示信号可以为2,此时,极值选择电路05可以读取极值寄存器电路03存储的第一个比较运算结果中的剩余部分数据,还可以理解为,数据比较器对应两个时钟周期可以输出一个比较运算结果;但是,得到第一个比较运算结果后需要经过五个时钟周期才可以得到第二个比较运算结果时,第六个时钟周期下,极值寄存器电路03才可以存储第二个比较运算结果,此时,状态控制电路04获取的对应读取指示信号可以为3,相当于读取指示信号的数值可以根据极值寄存器电路03中存储的数据个数确定。
此外,数据比较器得到的目标极值并不是比较运算的运算结果,运算结果可以为数据比较器两次输出的两个目标极值拼接得到的,且数据比较器中的极值选择电路05第一次输出的目标极值,与第二次输出的目标极值拼接,可以得到比较运算得到的运算结果,依次类推,极值选择电路05两次输出的目标极值拼接,可以得到数据比较器每一次比较运算得到的运算结果。
可选的,所述比较电路01中包括输入端,用于接收输入的功能选择模式信号;所述功能选择模式信号用于确定比较电路处理的数据的位宽。
需要说明的是,上述功能选择模式信号可以有多种,不同功能选择模式信号对应于数据比较器可以处理不同位宽的数据。另外,上述比较电路01可以没有接收功能选择模式信号的输入端,此时,该比较电路01可以处理固定位宽的数据,相等于通过该比较电路01组合而成的数据比较器可以处理固定位宽的数据,不能处理不同位宽的数据。
本实施例提供的一种数据比较器,通过比较电路可以对接收到的数据进行比较得到极值,通过状态控制电路获取存储指示信号以及读取指示信号,并通过极值寄存控制电路根据存储指示信号确定存储所述极值的极值寄存器电路,通过极值寄存器电路存储极值,再通过极值选择电路根据读取指示信号,读取极值寄存器电路中存储的极值中的部分数据得到目标极值,该数据比较器可以对接收到的数据进行比较得到目标极值,使得获得的目标极值的位宽,可以小于数据比较器接收到的数据位宽,从而有效降低了数据比较器对输入输出端口位宽的要求。
如图2所示为一实施例提供的一种数据比较器的结构示意图。该数据比较器包括:比较电路11和锁存器电路12,所述比较电路11的输出端与所述锁存器电路12的输入端连接,所述锁存器电路12包括第一锁存器单元121及第二锁存器单元122。其中,所述比较电路11用于对接收到的数据进行比较得到极大值,所述第一锁存器单元121及第二锁存器单元122分别用于根据接收到的不同存储指示信号更新存储所述极大值,并根据不同的读取指示信号输出所述极值得到目标极大值。
具体的,上述比较电路11可以比较不同位宽的数据,该数据可以为浮点数。可选的,上述比较电路11可以包括多个具有不同功能的数据处理子电路,多个不同功能的数据处理子电路的输入端口可以有一个或多个,每个数据处理子电路中的每个输入端口的功能可以不相同,输出端口也可以有一个,每个数据处理子电路中的每个输出端口的功能可以不相同,并且不同功能数据处理子电路的电路结构可以不相同。可选的,上述极大值的位宽可以大于目标极大值的位宽。可选的,极大值的位宽可以等于数据比较器接收到的数据的位宽N,目标极大值的位宽可以等于极大值位宽的1/2,并且数据比较器输出端口的位宽M可以小于N比特;还可以理解为,数据比较器输出端口的位宽M可以等于N/t+deta((N/t+deta)<M),其中,通常情况下,数据比较器进行t(t>1)个时钟周期的运算可以完成一次比较运算,得到一个极大值,并将该极大值存储至锁存器电路12中,其中,deta(deta>=0)为一个常数。另外,还存在一种小概率的情况,数据比较器可以通过m(m<t,即m<=1)个时钟周期的运算完成一次比较运算,得到一个极大值,并将该极大值存储至锁存器电路12中。
另外,上述锁存器电路12可以包括多个锁存器,不同的锁存器可以根据存储指示信号存储不同次比较运算得到的极大值,并根据不同的读取指示信号输出对应极大值,得到目标极大值。可选的,目标极大值可以为极大值中的部分数据,其中,目标极大值的位宽可以小于等于极大值位宽的1/2。
可选的,所述比较电路11中包括输入端,用于接收输入的功能选择模式信号;所述功能选择模式信号用于确定比较电路处理的数据的位宽。
需要说明的是,上述比较电路11可以没有接收功能选择模式信号的输入端,此时,该比较电路11可以处理固定位宽的数据,相等于通过该比较电路11组合而成的数据比较器可以处理固定位宽的数据,不能处理不同位宽的数据。
本实施例提供的一种数据比较器,通过比较电路可以对接收到的数据进行比较得到极大值,根据不同的存储指示信号通过锁存器电路存储对应的极大值,并根据不同的读取指示信号输出锁存器电路中存储的不同极大值,得到目标极大值,该数据比较器可以对接收到的数据进行比较得到目标极大值,使得获得的目标极大值的位宽可以小于数据比较器接收到的数据位宽,从而有效降低了数据比较器对输入输出端口位宽的要求。
图3为另一实施例提供的一种数据比较器的具体结构示意图,其中,数据比较器包括所述比较电路01,该比较电路01包括:判断子电路011和比较子电路012,所述判断电路011的输出端与所述比较子电路012的输入端连接;所述判断子电路011用于判断接收到的数据是否需要通过与所述判断子电路011的输出端相连的比较子电路02进行处理,所述比较子电路012用于对接收到的所述数据进行比较。
具体的,判断子电路011和比较子电路012可以采用串行方式处理数据,还可以通过或逻辑实现并行方式处理数据。可选的,上述判断电路011可以为一种判断接收到的数据的数值类型的电路,并且该数据可以为浮点数。可选的,上述数值类型可以包括非数值,无穷数和零值。可选的,上述比较子电路012可以为一种将接收到的数据的符号位,指数位和尾数位进行比较的电路。可选的,上述比较电路012可以包括多个具有不同功能的比较单元。可选的,上述不同功能的比较单元的输入端口可以有多个,各比较单元的每个输入端口的功能可以不相同或相同,输出端口也可以有多个,各比较单元的每个输出端口的功能可以相同或不相同,但是,不同比较单元的输入端口的功能可以相同,也可以不同,不同比较单元的输出端口的功能可以相同,也可以不同,并且不同功能的比较单元的电路结构可以不同,也可以相同。
可选的,所述判断子电路011中包括第一输入端,用于接收输入的功能选择模式信号;所述比较子电路012中包括第二输入端,用于接收输入的所述功能选择模式信号。
本实施例提供的一种数据比较器,通过判断子电路判断接收到的数据中是否需要通过下一比较电路进行处理,如果不需要进行下一比较电路处理,则结束运算获得运算结果,否则就会继续将接收到的数据输入到比较子电路中,当比较电路输出高电平信号时,结束运算获得运算结果,从而可以减少运算量,节省运算时间;另外,数据比较器根据判断子电路和比较子电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,上述判断子电路011可具体用于判断接收到的数据中是否存在非数值、无穷数或零值,并根据结果判断是否需要通过所述比较电路进行下一步处理。
具体的,上述判断子电路011可以包括将接收到的数据,与IEEE数据算术标准中非数值、无穷数或零值对应的编码格式进行比较判断的电路。可选的,上述判断子电路011可以包括多个具有不同功能的判断单元。另外,上述不同功能的判断单元的输入端口可以有多个,各判断单元的每个输入端口的功能可以不相同或相同;类似的,输出端口也可以有多个,各判断单元的每个输出端口的功能可以相同或不相同,并且不同功能判断单元的电路结构可以不同,也可以相同。
本实施例提供的一种数据比较器,通过判断子电路判断接收到的数据中是否存在非数值,无穷值或零值,如果判断结果为是,则结束运算获得运算结果,否则就会继续将接收到的数据输入到比较电路中,当比较电路输出高电平信号时,结束运算获得运算结果,因此,该数据比较器中判断电路的判断结果为是时,就会结束运算,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,继续参见图3,数据比较器包括所述判断子电路011,该判断子电路011包括:非数值判断单元0111,无穷数判断单元0112和零值判断单元0113,所述非数值判断单元0111的输出端与所述无穷数判断单元0112的输入端连接,所述无穷数判断单元0112的输出端与所述零值判断单元0113的输入端连接;所述非数值判断单元011用于判断接收到的所述数据中是否存在非数值,所述无穷数判断单元0112用于判断接收到的所述数据中是否存在无穷数,所述零值判断单元0113用于判断接收到的所述数据中是否存在零值。
可选的,所述非数值判断单元0111的输出端还可以与所述零值判断单元0113的输入端连接,所述零值判断单元0113的输出端与所述无穷数判断单元0112的输入端连接。
需要说明的是,通过非数值判断单元0111,无穷数判断单元0112和零值判断单元0113对接收到的数据依次进行处理,直到其中一个判断单元的判断结果满足预设条件为止,对应判断单元的判断结果为是,则该对应判断单元会输出高电平信号,此时,结束运算输出运算结果。可选的,上述满足预设条件可以表征为接收到的数据满足IEEE标准中非数值、无穷数或零值对应的编码格式。其中,IEEE浮点数算术标准中,非数值对应的编码格式可以表示为数据的指数位全为0,尾数位不全为0;无穷数对应的编码格式可以表示为数据的指数位全为0,尾数位全为0;零对应的编码格式可以表示为数据的指数位全为0,尾数位全为0。
本实施例提供的一种数据比较器,通过非数值判断单元,无穷数判断单元和零值判断单元,依次判断接收到的数据中是否存在非数值、无穷数或零值,如果接收到的数据中存在非数值,无穷或零值,相应判断单元的判断结果为是时,此时结束运算得到运算结果,不需要进行比较子电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断子电路和比较子电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,所述非数值判断单元0111包括:数据输入端口0111a和0111b,功能选择模式信号输入端口(mode)0111c,数据输出端口0111d和0111e,判断结果输出端口(unordered)0111f;所述数据输入端口0111和0111b用于接收输入的数据,所述功能选择模式信号输入端口(mode)0111c用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述数据输出端口0111d和0111e用于将接收到的所述数据输出到下一单元的输入端口,所述非数值判断结果输出端口(unordered)0111f用于将非数值判断单元0111的判断结果满足预设条件时,输出高电平信号。
需要说明的是,上述非数值判断单元0111对应的预设条件可以为接收到的数据是否满足IEEE标准中非数值对应的编码格式。可选的,上述非数值判断单元中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定比较电路当前可处理的数据位宽。可选的,若判断结果输出端口(unordered)0111f输出高电平信号,则可以表征非数值判断单元接收到的数据中至少存在一个非数值。
本实施例提供的一种数据比较器,可以根据非数值判断单元的判断结果,通过判断结果输出端口输出相应的高电平信号后,结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,所述无穷数判断单元0112包括:数据输入端口0112a和0112b,功能选择模式信号输入端口(mode)0112c,数据输出端口0112d和0112e,判断结果输出端口(altb1)0112f,(aeqb1)0112g和(agtb1)0112h;所述数据输入端口0112a和0112b用于接收输入的所述数据,所述功能选择模式信号输入端口(mode)0112c用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述数据输出端口0112d和0112e用于将接收到的所述数据输出到下一单元的输入端口,所述判断结果输出端口(altb1)0112f,(aeqb1)0112g和(agtb1)0112h用于将无穷数判断单元012的判断结果满足预设条件时,输出高电平信号。
需要说明的是,上述无穷数判断单元0112对应的预设条件可以为接收到的数据是否满足IEEE标准中无穷数对应的编码格式。可选的,上述无穷数判断单元0112中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。示例性的,若数据比较器接收到的数据为a和b,则altb1输出高电平可以表征为a小于b,aeqb1输出高电平可以表征为a等于b,agtb1输出高电平可以表征为a大于b。
本实施例提供的一种数据比较器,可以根据无穷数判断单元的判断结果,相应的通过输出端口输出高电平信号后,结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,所述零值判断单元0113包括:数据输入端口0113a和0113b,功能选择模式信号输入端口(mode)0113c,数据输出端口0113d和0113e,判断结果输出端口(altb2)0113f,(altb2)0113g和(agtb2)0113h;所述数据输出端口0113a和0113b用于接收输入的所述数据,所述功能选择模式信号输入端口(mode)0113c用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述数据输出端口0113d和0113e用于将接收到的所述数据输出到下一单元的输入端口,所述判断结果输出端口(altb2)0113f,(altb2)0113g和(agtb2)0113h用于将零值判断单元0113的判断结果满足预设条件时,输出高电平信号。
需要说明的是,上述零值判断单元0113对应的预设条件可以为接收到的数据是否满足IEEE标准中零值对应的编码格式。可选的,上述零值判断单元0113中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定比较电路当前可处理的数据位宽。示例性的,若比较电路接收到的数据为a和b,则altb2输出高电平可以表征为a小于b,aeqb2输出高电平可以表征为a等于b,agtb2输出高电平可以表征为a大于b。
需要说明的是,上述零值判断单元0113对应的预设条件可以为接收到的数据是否满足IEEE标准中零值对应的编码格式。可选的,上述零值判断单元0113中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
本实施例提供的一种数据比较器,可以根据零值判断单元的判断结果,通过判断结果相应的输出端口输出高电平信号后,结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据比较器,其中,数据比较器包括所述比较子电路012,该比较电路012包括:符号位比较单元0121,指数位比较单元0122和尾数位比较单元0123,所述符号位比较单元0121的输出端与所述指数位比较单元0122的输入端连接,所述指数位比较单元0122的输出端与所述尾数位比较单元0123的输入端连接;所述符号位比较单元0121用于判断接收到的所述数据中符号位数据的大小,所述指数位比较单元0122用于判断接收到的所述数据中指数位数据的大小,所述尾数位比较单元0123用于判断接收到的所述数据中尾数位数据的大小。
需要说明的是,通过符号位比较单元0121,指数位比较单元0122和尾数位比较单元0123对接收到的数据依次进行处理,直到其中一个比较单元可以得到一个比较结果为止,对应的比较单元会输出高电平信号,此时,结束运算输出运算结果。可选的,上述比较结果可以包括数据中符号位数据的大小比较结果,数据中指数位数据的大小比较结果和数据中尾数位数据的大小比较结果。
本实施例提供的一种数据比较器,通过符号位比较单元,指数位比较单元和尾数位比较单元,依次判断接收到的数据中符号位数据的大小,指数位数据的大小和尾数位数据的大小,如果可以确定接收到的数据的符号位数据的大小,指数位数据的大小或尾数位数据的大小,则相应的比较单元会输出高电平信号,此时结束运算得到运算结果,不需要进行其它比较单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,所述符号位比较单元0121包括:数据输入端口0121a和0121b,功能选择模式信号输入端口(mode)0121c,数据输出端口0121d和0121e,比较结果输出端口(altb3)0121f和(agtb3)0121g;所述数据输入端口0121a和0121b用于接收输入的数据,所述功能选择模式信号输入端口(mode)0121c用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述数据输出端口0121d和0121e用于将接收到的所述数据输出到下一单元的输入端口,所述比较结果输出端口(altb3)0121f和(agtb3)0121g用于输出所述数据中符号位数据大小比较结果。
需要说明的是,上述符号位比较单元0121中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若比较结果输出端口(altb3)0121f或(agtb3)0121g输出高电平信号,则表示不需要继续下一单元的数据处理,结束运算得到运算结果,否则,需要继续下一单元的数据处理。示例性的,若比较电路接收到的数据为a和b,则altb3输出高电平可以表征为a小于b,agtb3输出高电平可以表征为a大于b。
本实施例提供的一种数据比较器,可以根据符号位比较单元的比较结果,相应的通过输出端口输出高电平信号后,结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,所述指数位比较单元0122包括:数据指数位输入端口0122a和0122b,功能选择模式信号输入端口(mode)0122c,数据输出端口0122d和0122e,比较结果输出端口(altb4)0122f和(agtb4)0122g;所述数据指数位输入端口0122a和0122b用于接收输入的所述数据的指数位数据,所述功能选择模式信号输入端口(mode)0122c用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述数据输出端口0122d和0122e用于将接收到的所述数据输出到下一单元的输入端口,所述比较结果输出端口(altb4)0122f和(agtb4)0122g用于输出所述数据中指数位数据大小比较结果。
需要说明的是,上述指数位比较单元0122中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若比较结果输出端口(altb4)0122f或(agtb4)0122g输出高电平信号,则表示不需要继续下一单元的数据处理,结束运算得到运算结果,否则,需要继续下一单元的数据处理。示例性的,若数据比较器接收到的数据为a和b,则altb4输出高电平可以表征为a小于b,agtb4输出高电平可以表征为a大于b。
本实施例提供的一种数据比较器,可以根据指数位比较单元的比较结果,相应的通过输出端口输出高电平信号后,结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,所述尾数位比较单元0123包括:数据输入端口0123a和0123b,功能选择模式信号输入端口(mode)0123c,比较结果输出端口(altb5)0123d,(agtb5)0123e和(aegb5)0123f;所述数据输入端口0123a和0123b用于接收输入的所述数据,所述功能选择模式信号输入端口(mode)0123c用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述比较结果输出端口(altb5)0123d,(agtb5)0123e和(aegb5)0123f用于输出所述数据中尾数位数据大小比较结果。
需要说明的是,上述尾数位比较单元0123中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若比较结果输出端口(altb5)0123d,(agtb5)0123e或(aegb5)0123f输出高电平信号,则结束运算得到运算结果,否则,需要继续下一单元的数据处理。示例性的,若数据比较器接收到的数据为a和b,则altb5输出高电平可以表征为a小于b,aeqb5输出高电平可以表征为a等于b,agtb5输出高电平可以表征为a大于b。
本实施例提供的一种数据比较器,可以根据尾数位比较单元的比较结果,相应的通过输出端口输出高电平信号后,结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
继续参见图3所示为另一实施例提供的一种数据比较器的具体结构示意图,其中,数据比较器包括所述极值寄存控制电路02,该极值寄存控制电路02包括:极大值寄存控制单元021和极小值寄存控制单元022。其中,所述极大值寄存控制单元021用于接收状态控制电路04输入的所述存储指示信号,并根据所述存储指示信号确定存储所述极大值的极大值寄存单元,所述极小值寄存控制单元022用于接收状态控制电路04输入的所述存储指示信号,并根据所述存储指示信号确定存储所述极小值的极小值寄存单元。
具体的,数据比较器可以通过极大值寄存控制单元021接收,比较电路01每一次比较运算输出的极大值,并根据接收到的存储指示信号确定存储每一次比较运算接收到的极大值的极大值存储单元。数据比较器可以通过极小值寄存控制单元022接收,比较电路01每一次比较运算输出的极小值,并根据接收到的存储指示信号确定存储每一次比较运算接收到的极小值的极小值存储单元。其中,同一次比较运算极大值寄存控制单元021和极小值寄存控制单元022,接收到的存储指示信号相等。
本实施例提供的一种数据比较器,通过极大值寄存控制单元可以接收状态控制电路输入的存储指示信号,并根据存储指示信号确定存储极大值的极大值存储单元,极小值寄存控制单元可以接收状态控制电路输入的所述存储指示信号,并根据存储指示信号确定存储极小值的极小值存储单元,该数据比较器中的极大值寄存控制单元和极小值寄存控制单元,根据存储指示信号将每一次比较运算得到的极大值或极小值分别存储至对应的极值寄存单元,以便后续通过输出端口位宽不匹配,输入端口位宽的数据比较器输出目标极值。
在一个实施例中,继续参见图3,其中,数据比较器包括所述极值寄存器电路03,该极值寄存器电路03包括:极大值寄存单元031和极小值寄存单元032,所述极大值寄存单元031用于将不同存储指示信号对应的所述极大值进行存储,所述极小值寄存单元032用于将不同存储指示信号对应的所述极小值进行存储。
具体的,上述极值寄存电路03可以包括一个或多个极大值寄存单元031,还可以包括一个或多个极小值寄存单元032,还可以理解为,极值寄存电路03中极大值寄存单元031的数量可以等于极小值寄存单元032的数量。可选的,若数据比较器输入端口的位宽为N,输出端口的位宽为M,则极大值寄存单元031的数量与极小值寄存单元032的数量均可以等于N/M,实际上还可以为大于2的整数,同时,数据比较器可以根据存储指示信号将每一次比较运算的极大值存储至对应的N/M个极大值寄存单元031中,并且根据同一存储指示信号将每一次比较运算的极小值,存储至对应的N/M个极小值寄存单元032中,其中,不同的存储指示信号有对应存储极大值与极小值的不同极大值寄存单元031和极小值寄存单元032。
本实施例提供的一种数据比较器,数据比较器根据不同的存储指示信号通过极大值寄存单元和极小值寄存单元,存储每一次比较运算得到的极大值与极小值,以便后续通过输出端口位宽不匹配输入端口位宽的数据比较器输出目标极值。
在一个实施例中,继续参见图3,其中,数据比较器包括所述极值选择电路05,该极值选择电路05包括:极大值选择单元051和极小值选择单元052,所述极大值选择单元051用于根据接收到的所述读取指示信号,确定读取所述极大值寄存单元051中存储的所述极大值中的数据,作为目标极大值,所述极小值选择单元052用于根据接收到的所述读取指示信号,确定读取所述极小值寄存单元052中存储的所述极小值中的数据,作为目标极小值。
具体的,数据比较器中的极大值选择单元051可以根据接收到的不同读取指示信号,确定读取不同读取指示信号对应的极大值寄存单元051中存储的极大值,并且极小值选择单元052可以根据接收到的不同读取指示信号,确定读取不同读取指示信号对应的极小值寄存单元052中存储的极小值中的数据。
需要说明的是,若数据比较器的输入端口位宽与输出端口位宽相同,则极值寄存电路03中只有一个极大值寄存单元031和一个极小值寄存单元032,该情况下针对不同的读取指示信号,极大值选择单元051均是从同一个极大值寄存单元031中读取存储的极大值,极小值选择单元052均是从同一个极小值寄存单元032中读取存储的极小值中的数据。可选的,若数据比较器输入端口位宽为2N,输出端口位宽为M(M<2N),此时,极大值选择单元051可以两次读取极大值寄存单元031中存储的极大值中的数据,极小值选择单元052可以两次读取极小值寄存单元032中存储的极小值中的数据,其中,该极小值以及极大值的位宽均可以等于2N,极大值选择单元051两次可以分别读取极大值中的高N位数据和低N位数据作为两次的目标极大值,并且极小值选择单元052两次可以分别读取极小值中的高N位数据和低N位数据作为两次的目标极小值。
本实施例提供的一种数据比较器,数据比较器可以根据不同的读取指示信号通过多组极值寄存单元存储每一次比较运算得到的对应极值,并根据不同的读取指示信号通过极值选择电路读取多组极值寄存单元存储的极值,进而得到目标极大值和目标极小值,使得获得的目标极大值和极小值的位宽,可以小于数据比较器接收到的数据位宽,有效降低了数据比较器对输入输出端口位宽的要求。
图4为另一实施例提供的一种数据比较器的具体结构示意图,其中,数据比较器包括所述第一锁存器单元121以及所述第二锁存器单元122,所述第一锁存器单元121具体用于在接收到的存储指示信号为奇数时,更新存储的第一极大值;所述第二锁存器单元122具体用于在接收到的存储指示信号为偶数时,更新存储的第二极大值。
具体的,每一次比较运算时,锁存器电路12中的第一锁存器单元121和第二锁存器单元122可以根据接收到的存储指示信号为奇数还是偶数,确定将比较电路11得到的极大值刷新至第一锁存器单元121还是第二锁存器单元122存储,相当于用新的极大值刷新锁存器单元中的原存储值;并且锁存器电路12根据当次比较运算时接收到的读取指示信号,确定从第一锁存器单元121中还是第二锁存器单元122中读取极大值中的部分数据,得到目标极大值并输出。还可以理解为,数据比较器可以根据不同的存储指示信号,确定将运算过程中得到的极大值存储至对应的寄存器中,并输出另一寄存器中极大值的部分积数据,得到目标极大值。可选的,每一次比较运算,比较电路11可以输出极大值和极小值,但是在本实施例中,锁存器电路12中的第一锁存器单元121,或第二锁存器单元122仅接收比较电路11输出的极大值,也就是说,每一次比较运算时,比较电路11输出极小值的端口为悬空状态。
可选的,所述第一锁存器单元121中包括输入端,用于接收所述存储指示信号以及所述读取指示信号。可选的,所述第二锁存器单元122中包括输入端,用于接收所述所述存储指示信号以及所述读取指示信号。
需要说明的是,每一次比较运算时,第一锁存器单元121和第二锁存器单元122接收到的存储指示信号以及读取指示信号均可以相等。同时,图4中第一锁存器单元121和第二锁存器单元122的输入输出端口均有一个为虚线,该虚线表示每一次比较运算过程中,第一锁存器单元121或第二锁存器单元122可以接收到比较电路11输出的极大值,并且通过第一锁存器单元121或第二锁存器单元122输出每一次比较运算的目标极大值。可选的,第一锁存器单元122和第二锁存器单元122可以根据存储指示信号的奇偶性进行划分,上述第二锁存器单元122也可以称为偶数锁存器,上述第一锁存器单元121也可以称为奇数锁存器。
本实施例提供的一种数据比较器,数据比较器可以根据不同的存储指示信号,通过两个寄存器交替存储每一次比较运算得到的极大值,并且不同的寄存器根据所接收的读取指示信号交替输出极大值,进而得到目标极大值,使得获得的目标极大值的位宽,可以小于数据比较器接收到的数据位宽,有效降低了数据比较器对输入输出端口位宽的要求。
图5为一实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图3所示的数据比较器进行处理,本实施例涉及的是对数据进行比较运算的过程。如图5所示,该方法包括:
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、获取存储指示信号以及读取指示信号。
具体的,数据比较器通过状态控制电路可以自动获取存储指示信号以及读取指示信号。
S104、根据所述存储指示信号将多个所述极值存储至不同的极值寄存单元中。
具体的,数据比较器中的状态控制电路将获取的存储指示信号可以输入至极值寄存控制电路,极值寄存控制电路根据接收到的存储指示信号,确定本次比较运算得到的极值中,可以存储至对应的极值寄存单元中。
需要说明的是,一个极值寄存单元最多只能存储一个极值,并且多个极值寄存单元中可以有部分极值寄存单元为空闲状态。
S105、根据所述读取指示信号,读取不同极值寄存单元中存储的对应所述极值中的部分数据,得到目标极值。
具体的,数据比较器中的极值选择电路可以根据接收到的读取指示信号,读取对应极值寄存单元中存储的比较运算结果(即极值)中的部分数据,作为目标极值。可选的,上述目标极值并不是比较运算结果,比较运算的比较运算结果可以为读取两次目标极值拼接而成,也可以为读取多次目标极值拼接而成,可以理解为,上述极值中部分数据的位宽可以等于极值位宽的1/2,还可以小于极值位宽的1/2。可选的,目标极值的位宽可以小于数据比较器输入端口的位宽。
本实施例提供的一种数据处理方法,该方法可以对接收到的数据进行比较运算得到极值,分别读取极值中的高位数据以及低位数据,作为目标极值,使得获得的目标极值的位宽可以小于数据比较器输入的数据位宽,从而有效降低了数据比较器对输入输出端口位宽的要求。
另一实施例提供的数据处理方法。上述S102中对所述待处理数据进行比较处理得到极值,具体可以通过以下方式实现:
S1021、通过判断子电路判断所述待处理数据是否需要通过比较子电路进行处理。
S1022、若需要,则所述判断子电路将所述待处理数据输入到所述比较子电路,通过所述比较子电路比较所述待处理数据中符号位数据,指数位数据和/或尾数位数据大小,得到极值。
具体的,若待处理数据中不存在非数值、无穷数或零值,则通过判断子电路对待处理数据处理后,可以将待处理数据或待处理数据的符号位数据输入到比较子电路,通过比较子电路依次比较待处理数据的符号位数据,指数位数据和/或尾数位数据大小,比较子电路根据数据的符号位数据,指数位数据和/或尾数位数据的比较结果输出高电平信号,并通过比较子电路的极大值输出端口(Zmax)和极小值输出端口(Zmin),输出接收到的待处理数据中极大数据和极小数据,结束运算,得到极值。
示例性的,若输入的是两个32位的待处理浮点数a和b,当前比较电路可以进行16位待处理浮点数比较运算,比较电路将输入的两个32位待处理浮点数按照高低16位对应分成两组16位待处理浮点数,则极大值和极小值,均是通过高低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]}}表示极小值的获取方式,其中,极大值和极小值中的32位数值和极小值的高低16位待处理浮点数,可以是同一个待处理浮点数的高低16位数据,还可以为不同待处理浮点数的高低16位浮点数拼接的极大或极小浮点数。若浮点数比较器当前可处理的浮点数位宽和接收到的待处理浮点数位宽相等均为32,则极大值和极小值中的32位极大值和极小值的高低16位浮点数,为同一个待处理浮点数的高低16位浮点数。
本实施例提供的一种数据处理方法,数据比较器通过判断子电路判断待处理数据是否需要通过比较子电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法。上述S1021中通过判断子电路判断所述待处理数据是否需要通过比较子电路进行处理,包括:通过所述判断子电路判断所述待处理数据中是否存在非数值、无穷数或零值;若不存在零值,则判断所述数据需要通过所述比较子电路进行处理。
需要说明的是,基于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芯片的面积。
另一实施例提供的数据处理方法,上述S1021中通过判断子电路判断所述待处理数据是否需要通过比较子电路进行处理,可以通过以下所述方法实现,具体包括:
S1021a、通过非数值判断单元判断所述待处理数据中是否存在非数值。
具体的,数据比较器基于IEEE数据算术标准中非数值对应的编码标准,通过非数值判断单元判断接收到的待处理数据中是否有非数值存在。
S1021b、若不存在非数值,则将所述待处理数据输入到无穷数判断单元,通过所述无穷数判断单元判断所述待处理数据中是否存在无穷数。
具体的,若非数值判断单元接收到的待处理数据中没有非数值存在,则非数值判断单元将接收到的待处理数据输出到无穷数判断单元,基于IEEE数据算术标准中无穷数对应的编码标准,通过无穷数判断单元继续判断接收到的待处理数据中是否存在无穷数。
S1021c、若不存在无穷数,则将所述待处理数据输入到零值判断单元,通过所述零值判断单元判断所述待处理数据中是否存在零值。
具体的,若无穷数判断单元接收到的待处理数据中没有无穷数的存在,则无穷数判断单元将接收到的待处理数据输出到零值判断单元,基于IEEE数据算术标准中零值对应的编码标准,通过零值判断单元继续判断接收到的待处理数据中是否存在零值。
需要说明的是,上述步骤S1022和步骤S1023的流程顺序可以相互交换。
S1021d、若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
具体的,若零值判断单元接收到的待处理数据中没有零值的存在,则零值判断单元可以将接收到的待处理数据输出到比较电路进行处理。
本实施例提供的一种数据比较器,数据比较器对待处理数据中是否存在非数值、无穷数或零值依次进行判断,根据判断结果决定是否输入比较电路进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一个实施例提供的数据处理方法,上述S1021a中通过非数值判断单元判断所述待处理数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算。
具体的,如果非数值判断单元接收到的待处理数据中至少有一个非数值,则非数值判断单元可以直接通过判断结果输出端口(unordered)输出第一运算结果,结束比较运算,其中,上述第一运算结果为高电平信号。此时,说明接收到的待处理数据中有非数值,无法进行数值比较,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理数据中至少存在一个非数值,则非数值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S1021b中将所述待处理数据输入到无穷数判断单元,通过所述无穷数判断单元判断所述待处理数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算。
具体的,如果无穷数判断单元接收到的待处理数据中有无穷数,则无穷数判断单元可以直接通过判断结果输出端口(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芯片的面积。
另一实施例提供的数据处理方法,上述S1021c中将所述待处理数据输入到零值判断单元,通过所述零值判断单元判断所述待处理数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
具体的,如果零值判断单元接收到的待处理数据中有零值,则零值判断单元可以直接通过判断结果输出端口(altb2),(aeqb2)和(agtb2)输出第三运算结果,并通过数据比较器的极大值输出端口(Zmax)和极小值输出端口(Zmin),输出接收到的待处理数据中极大值和极小值,结束比较运算。其中,上述第三运算结果为高电平信号。
需要说明的是,若零值判断单元接收到的两个待处理数据均为零值时,则零值判断单元通过判断结果输出端口(aeqb2)输出第三运算结果,结束运算,其中,上述第三运算结果为高电平信号。若零值判断单元接收到的两个待处理数据中有一个待处理数据为零值,则根据另一个待处理数据的符号位判断两个待处理数据的大小。
示例性的,若输入的两个待处理数据为a和b,a为零值,b不为零值,b的符号位为0(即表示b为正数),则零值判断单元通过判断结果输出端口(altb2)输出第三运算结果,结束运算,若b的符号位为1(即表示b为负数),则零值判断单元通过判断结果输出端口(agtb2)输出第三运算结果,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理数据中存在零值,则零值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S1022中所述判断子电路将所述待处理数据输入到所述比较子电路,通过所述比较子电路比较所述待处理数据的符号位数据,指数位数据和/或尾数位数据大小,得到极值,可以通过以下所述方法实现,具体包括:
S1022a、通过符号位比较单元判断接收到的所述待处理数据的符号位数据是否相等。
需要说明的是,上述待处理数据的符号位数据可以用0或1表示,0表示该数据为正数,1表示该数据为负数。
需要说明的是,当零值判断单元或无穷数判断单元没有输出高电平信号时,数据比较器可以通过零值判断单元或无穷数判断单元将待处理数据输入到符号位比较单元。
S1022b、若所述待处理数据的符号位数据相等,则将所述待处理数据输入到指数位比较单元,通过所述指数位比较单元判断所述待处理数据的指数位数据是否相等。
具体的,如果接收到的待处理数据的符号位数据相等,则将待处理数据输入到指数位比较单元,通过指数位比较单元继续判断待处理数据的指数位数据是否相等。
需要说明的是,当符号位比较单元没有输出高电平信号时,数据比较器可以通过符号位比较单元将待处理数据输入到指数位比较单元。
S1022c、若所述待处理数据的指数位数据相等,则将所述待处理数据输入到尾数位比较单元,通过所述尾数位比较单元判断所述待处理数据的尾数位数据是否相等。
具体的,如果接收到的待处理数据的指数位数据相等,则将待处理数据输入到尾数位比较单元,通过尾数位比较单元继续判断待处理数据的尾数位数据是否相等。
需要说明的是,当指数位比较单元没有输出高电平信号时,数据比较器可以通过指数位比较单元将待处理数据输入到尾数位比较单元。
S1022d、若所述待处理数据的尾数位数据相等,则输出第四运算结果,结束运算。
具体的,如果接收到的待处理数据的尾数位数据相等,则尾数位比较单元通过比较结果输出端口(aegb5)输出第四运算结果,并通过数据比较器的极大值输出端口(Zmax)和极小值输出端口(Zmin),输出接收到的待处理数据中极大值和极小值,结束比较运算,其中,上述第四运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器对接收到的待处理数据的符号位数据,指数位数据和/或尾数位数据依次进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S1022a中通过符号位比较单元判断接收到的所述待处理数据的符号位数据是否相等之后,还包括:若所述待处理数据的符号位数据不相等,则输出第五运算结果,结束运算。
需要说明的是,若符号位比较单元接收到的两个待处理数据的符号位数据不相等时,正数大于负数。示例性的,若输入的两个数据为a和b,a的符号位数据为0,b的符号位数据为1,则说明a>b,此时,符号位比较单元通过比较结果输出端口(agtb3)输出第五运算结果,并通过数据比较器的极大值输出端口(Zmax)和极小值输出端口(Zmin),输出接收到的待处理数据中极大值和极小值输出端口,结束比较运算,其中,上述第五运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理数据的符号位数据不相等,则符号位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S1022b中将所述待处理数据输入到指数位比较单元,通过所述指数位比较单元判断所述待处理数据的指数位数据是否相等之后,还包括:若所述待处理数据的指数位数据不相等,则输出第六运算结果,结束运算。
需要说明的是,若指数位比较单元接收到的两个待处理数据的指数位数据不相等时,对于正数,则指数位数据越大,待处理数据越大,对于负数,则指数位数据越大,待处理数据越小。示例性的,若输入的两个数据为a和b,a和b的符号位数据均为1,且a的指数位数据大于b的指数位数据,则说明a<b,此时,符号位比较单元通过比较结果输出端口(altb4)输出第六运算结果,结束运算;若a和b的符号位数据均为0,且a的指数位数据大于b的指数位数据,则说明a>b,此时,符号位比较单元通过比较结果输出端口(agtb4)输出第六运算结果,并通过数据比较器的极大值输出端口(Zmax)和极小值输出端口(Zmin),输出接收到的待处理数据中极大值和极小值,结束比较运算,其中,上述第六运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理数据的指数位数据不相等,则指数位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S1022c中将所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断所述待处理数据的尾数位数据是否相等之后,还包括:若所述待处理数据的尾数位数据不相等,则输出第七运算结果,结束运算。
需要说明的是,若尾数位比较单元接收到的两个待处理数据的尾数位数据不相等时,对于正数,则尾数位数据越大,待处理数据越大,对于负数,则尾数位数据越大,待处理数据越小。示例性的,若输入的两个待处理数据为a和b,a和b的符号位数据均为1,且a的尾数位数据大于b的尾数位数据,则说明a<b,此时,尾数位比较单元通过比较结果输出端口(altb5)输出第六运算结果,结束运算;若a和b的符号位数据均为0,且a的尾数位数据大于b的尾数位数据,则说明a>b,此时,尾数位比较单元通过比较结果输出端口(agtb5)输出第七运算结果,并通过数据比较器的极大值输出端口(Zmax)和极小值输出端口(Zmin),输出接收到的待处理数据中极大值和极小值,结束比较运算,其中,上述第七运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理数据的尾数位数据不相等,则尾数位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
在其中一个实施例中,上述S103中根据所述存储指示信号将多个所述极值存储至不同的极值寄存单元中,包括:将第一存储指示信号对应的第一极大值存储至第一极大值寄存单元中;将所述第一存储指示信号对应的第一极小值存储至第一极小值寄存单元中;将第二存储指示信号对应的第二极大值存储至第二极大值寄存单元中;将所述第二存储指示信号对应的第二极小值存储至第二极小值寄存单元中。
具体的,存储指示信号的数量可以等于数据比较器实现比较运算的次数,数据比较器实现一次比较运算,可以得到一个极大值和一个极小值,并且状态控制电路可以获取一个对应的存储指示信号。若数据比较器进行第一次比较运算,得到第一极大值和第一极小值,状态控制电路自动获取第一存储指示信号,极值寄存控制电路根据状态控制电路输入的第一存储指示信号,确定存储第一极大值的第一极大值寄存单元,以及存储第一极小值的第一极小值寄存单元,并将第一极大值输入至第一极大值寄存单元存储,将第一极小值输入至第一极小值寄存单元存储。
需要说明的是,若数据比较器进行第二次比较运算,得到第二极大值以及第二极小值,状态控制电路自动获取第二存储指示信号,极值寄存控制电路根据状态控制电路输入的第二存储指示信号,确定存储第二极大值的第二极大值寄存单元,以及存储第二极小值的第二极小值寄存单元,并将第二极大值输入至第二极大值寄存单元存储,将第二极小值输入至第二极小值寄存单元存储。依次类推,数据比较器可以将每一次比较运算得到的极大值和极小值,存储至不同的极值寄存单元中,并且按照极值寄存单元的编号顺序存储对应的极值,也就是连续的两次比较运算得到的极大值,可以存储至相邻的两个极大值寄存单元中,连续两次比较运算得到的极小值,可以存储至相邻的两个极小值寄存单元中。
本实施例提供的一种数据处理方法,将第一存储指示信号对应的第一极大值存储至第一极大值寄存单元中,将第一存储指示信号对应的第一极小值存储至第一极小值寄存单元中,将第二存储指示信号对应的第二极大值存储至第二极大值寄存单元中,将第二存储指示信号对应的第二极小值存储至第二极小值寄存单元中,从而避免出现极值覆盖的问题;另外,该方法还能使得获得的目标极值的位宽可以小于数据比较器输入的数据位宽的2倍,有效降低数据比较器对输入输出端口位宽的要求。
作为其中一个实施例,上述S105中根据所述读取指示信号,读取不同极值寄存单元中存储的对应所述极值中的部分数据,得到目标极值,包括:根据第一读取指示信号,读取所述第一极大值寄存单元中存储的所述第一极大值中的第一部分数据,得到第一目标极大值;根据所述第一读取指示信号,读取所述第一极小值寄存单元中存储的所述第一极小值中的第一部分数据,得到第一目标极小值;根据第二读取指示信号,读取所述第一极大值寄存单元中存储的所述第一极大值中的第二部分数据,得到第二目标极大值;根据所述第二读取指示信号,读取所述第一极小值寄存单元中存储的所述第一极小值中的第二部分数据,得到第二目标极小值。
具体的,数据比较器中的状态控制电路获取的读取指示信号的数量,可以等于数据比较器读取目标极值的次数,相当于目标极值数量的2倍。可选的,极值可以包括两部分数据,即第一部分数据以及第二部分数据。示例性的,若极大值的位宽等于2N,则极大值可以分成两部分数据,高N位极大值和低N位极大值,其中,第一部分数据可以为高N位极大值或低N位极大值,第二部分数据可以为低N位极大值或高N位极大值。可选的,每一个读取指示信号可以对应极值中的第一部分数据或第二部分数据。
需要说明的是,数据比较器可以对多组待处理数据进行比较运算,得到多个比较运算结果,因此,数据比较器读取第二极大值和第二极小值后,可以根据下一读取指示信号,分别读取下一极大值和下一极小值中的部分数据。
示例性的,若数据比较器的输入端口位宽为32比特,输出端口位宽为32/t+deta比特(一般,数据比较器经过t个时钟周期可以完成一次比较运算,得到一个极大值和一个极小值,t>1,deta>=0),数据比较器接收到的数据的位宽也为32比特,并且该数据比较器需要对多组待处理数据进行比较运算,该情况下,极值寄存器电路中包括(32/(32/t+deta))个极大值寄存单元(即极大值寄存单元A1,A2,...,Ai,i可以等于(32/(32/t+deta))),以及(32/(32/t+deta))个极小值寄存单元(即极小值寄存单元B1,B2,...,Bi),则得到目标极大值和极小值的实现过程可以为:
若数据比较器经过t(t可以大于等于0)个时钟周期得到第一极大值Zmax_0和第一极小值Zmin_0,则得到的第一极大值Zmax_0(32比特位宽)可以存储至极大值寄存单元A1,此时,极大值选择单元可以根据第一读取指示信号,从极大值寄存单元A1中读取Zmax_0的高16位数据,作为第一次比较运算得到的第一目标极大值,同时,得到的第一极小值Zmin_0(32比特位宽)可以存储至极小值寄存单元B1,并且极小值选择单元可以从第一极小值寄存单元B1中读取Zmin_0的高16位数据,作为第一次比较运算得到的第一目标极小值;
另外,当数据比较器到第t+1个时钟周期时,则极大值选择单元可以根据第二读取指示信号,从极大值寄存单元A1中读取Zmax_0的低16位数据,作为第一次比较运算得到的第二目标极大值,同时,极小值选择单元可以从极小值寄存单元B1中读取Zmin_0的低16位数据,作为第一次比较运算得到的第二目标极小值,在本实施例中,数据比较器将第一目标极值与第二目标极值合并,可以得到比较运算结果的极大值和极小值;
若数据比较器到第2t个时钟周期时,可以得到第二极大值Zmax_1和第二极小值Zmin_1,则得到的第二极大值Zmax_1可以存储至极大值寄存单元A2,此时,极大值选择单元可以根据第三读取指示信号从极大值寄存单元A2中读取Zmax_1的高16位数据,作为第二次比较运算得到的第三目标极大值,同时,得到的Zmin_1可以存储至极小值寄存单元B2,并且极小值选择单元可以根据第三读取指示信号从极小值寄存单元B2中读取Zmin_1的高16位数据,作为第二次比较运算得到的第三目标极小值;
另外,当数据比较器到第2t+1个时钟周期时,则极大值选择单元可以根据第四读取指示信号,从极大值寄存单元A2中读取Zmax_1的低16位数据,作为第二次比较运算得到的第四目标极大值,同时,极小值选择单元可以根据第四读取指示信号,从极小值寄存单元B2中读取Zmin_1的低16位数据,作为第二次比较运算得到的第四目标极小值,在本实施例中,数据比较器将第三目标极值与第四目标极值合并,可以得到比较运算结果的极大值和极小值;
依次类推,根据不同的存储指示信号将得到的极大值和极小值,可以存储至对应多组极值寄存单元中,并根据不同的读取指示信号读取不同极值寄存单元中,存储的极大值和极小值中的部分数据,得到目标极大值和目标极小值。
另外,若多组待处理数据中的一组待处理数据,存在非数值、无穷数或零值的情况,此时,数据比较器可以通过m(m<t)个时钟周期的运算,可以得到该组待处理数据中的极值,数据比较器可以将该极值存储至空闲状态的极值寄存单元中,当前时钟周期数据比较器可以输出极值中的部分数据,下一时钟周期可以输出极值中的剩余部分数据;若下一组待处理数据中也会存在非数值、无穷数或零值的情况,并且需要1个时钟周期就可以完成一次比较运算,得到极值,此时,数据比较器可以将该极值存储至相邻的下一极值寄存单元中。
本实施例提供的一种数据处理方法,接收待处理数据,将所述待处理数据进行比较处理得到极值,获取存储指示信号以及读取指示信号,根据所述存储指示信号存储所述极值,根据所述读取指示信号读取所述极值,得到目标极值,该数据比较器可以对接收到的数据进行比较得到目标极值,使得获得的目标极值的位宽,可以小于数据比较器接收到的数据位宽,从而有效降低了数据比较器对输入输出端口位宽的要求。
图6为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图2和图4所示的数据比较器进行处理,本实施例涉及的是对数据进行比较运算的过程。如图6所示,该方法包括:
S201、接收存储指示信号、读取指示信号以及待处理数据。
具体的,数据比较器中的比较电路可以接收不同功能选择模式信号以及两个待处理数据,并且数据比较器可以通过锁存器电路接收存储指示信号和读取指示信号。可选的,若比较电路接收不同的功能选择模式信号,则数据比较器可以处理不同对应位宽的数据,同时,不同功能选择模式信号与数据比较器可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。可选的,上述数据可以为浮点数,且数据的位宽可以等于数据比较器输入端口的位宽。
需要说明的是,如果比较电路接收到的待处理数据的位宽,与比较电路接收到的功能选择模式信号对应可处理的数据位宽不相等,则比较电路会根据数据比较器当前可处理的数据位宽,将接收到的待处理数据分成,与数据比较器当前可处理的数据位宽相等的多组数据进行并行处理,其中,比较电路接收到的待处理数据的位宽可以大于数据比较器当前可处理的数据位宽。可选的,上述并行处理可以表征为将分成的每一组待处理数据同时进行处理。如果比较电路接收到的待处理数据的位宽,与比较电路接收到的功能选择模式信号对应可处理的数据位宽相等,则比较可以直接对接收到的待处理数据进行处理。一般,比较电路接收到的数据的位宽可以等于数据比较器输入端口的位宽。
S202、对所述待处理数据进行比较处理得到极大值。
具体的,数据比较器可以将接收到的不同功能选择模式信号和待处理数据,输入到比较电路,比较电路根据接收到的不同功能选择模式信号,对两个待处理数据进行对应位宽的数据比较运算得到极大值。可选的,上述极值可以包括极大值和极小值。
S203、根据所述存储指示信号,将多个所述极大值存储至第一锁存器单元或第二锁存器单元中。
可选的,上述S203中根据所述存储指示信号,将多个所述极大值存储至第一锁存器单元或第二锁存器单元中,包括:若所述存储指示信号为奇数,则将所述极大值存储至第一锁存器单元中;若所述存储指示信号为偶数,则将所述极大值存储至第二锁存器单元中。
具体的,数据比较器中的锁存器电路可以根据接收到的存储指示信号,确定本次比较运算得到的极大值可以存储至第一锁存器单元还是第二锁存器单元中,若锁存器电路接收到的存储指示信号为奇数,则本次比较运算得到的极大值可以存储至第一锁存器单元中,若锁存器电路接收到的存储指示信号为偶数,则本次比较运算得到的极大值可以存储至第二锁存器单元中;还可以理解为,锁存器电路接收到的存储指示信号为奇数时,第一锁存器单元刷新数据,锁存器电路接收到的存储指示信号为偶数时,第二锁存器单元刷新数据。
S204、根据所述读取指示信号,读取所述第一锁存器单元或所述第二锁存器单元中存储的所述极大值中的部分数据,得到目标极大值。
具体的,数据比较器中的寄存器电路可以根据接收到的不同读取指示信号,读取第一锁存器单元或第二锁存器单元中存储的极大值中的部分数据,得到目标极大值。可选的,目标极大值可以为待处理数据进行比较运算得到的极大值中的部分数据,并不是比较运算得到的极大值。可选的,极大值中的部分数据位宽可以小于等于极大值位宽的1/2。
本实施例提供的一种数据处理方法,接收存储指示信号、读取指示信号以及待处理数据,对所述待处理数据进行比较处理得到极大值,根据所述存储指示信号,将多个所述极大值存储至第一锁存器单元或第二锁存器单元中,根据所述读取指示信号,读取所述第一锁存器单元或所述第二锁存器单元中存储的所述极大值中的部分数据,得到目标极大值,该数据比较器可以对接收到的数据进行比较得到目标极大值,使得获得的目标极大值的位宽,可以小于数据比较器接收到的数据位宽,有效降低了数据比较器对输入输出端口位宽的要求。
作为其中一个实施例,上述S204中根据所述读取指示信号,读取所述第一锁存器单元或所述第二锁存器单元中存储的所述极大值中的部分数据,得到目标极大值,包括:
S2041、根据第一读取指示信号,读取所述第一锁存器单元或所述第二锁存器单元中存储的第一极大值中的第一部分数据,作为第一目标极大值。
S2042、根据第二读取指示信号,读取所述第一锁存器单元或所述第二锁存器单元中存储的所述第一极大值中的第二部分数据,作为第二目标极大值。
具体的,数据比较器中的状态控制电路获取的读取指示信号的数量,可以等于数据比较器读取目标极大值的次数,相当于目标极大值数量的2倍。可选的,极大值可以包括两部分数据,即第一部分数据以及第二部分数据。示例性的,若极值的位宽等于2N,则极值可以分成两部分数据,高N位数据和低N位数据,其中,第一部分数据可以为高N位数据或低N位数据,第二部分数据可以为低N位数据或高N位数据。
S2043、根据第三读取指示信号,读取所述第二锁存器单元或所述第一锁存器单元中存储的第二极大值中的第一部分数据,作为第三目标极大值。
可选的,每一个读取指示信号可以对应极大值中的第一部分数据或第二部分数据。
S2044、根据第四读取指示信号,读取所述第一锁存器单元或所述第二锁存器单元中存储的所述第二极大值中的第二部分数据,作为第四目标极大值。
具体的,数据比较器可以对多组待处理数据进行比较运算,得到多个极大值,因此,数据比较器读取第四目标极大值后,可以根据下一读取指示信号,读取下一极大值中的部分数据。可选的,若本次比较运算,锁存器电路接收到的读取指示信号为奇数时,则锁存器电路可以输出第一锁存器单元中存储的极大值,否则,可以输出第二锁存器单元中存储的极大值。可选的,上述目标极大值可以为比较运算处理得到的极大值。
示例性的,若数据比较器的输入端口位宽为32比特,输出端口位宽为32/t+deta比特(一般,数据比较器经过t个时钟周期可以完成一次比较运算得到一个极大值,t>1,deta>=0),数据比较器接收到的数据的位宽也为32比特,并且该数据比较器需要对多组待处理数据进行比较运算,该情况下,锁存器电路可以通过第二锁存器单元A以及第一锁存器单元B,得到目标极大值的实现过程可以为:
若数据比较器经过t(t可以大于等于0)个时钟周期的运算,得到第一极大值,并且接收到的存储指示信号为偶数时,则数据比较器得到的第一极大值Zmax_0(32比特位宽)可以存储至第二锁存器单元A,同时,寄存器电路可以根据接收到的第一读取指示信号,将第二锁存器单元A中存储的Zmax_0的高/低16位数据,作为第一次比较运算得到的第一目标极大值;
另外,当数据比较器到第t+1个时钟周期的运算时,则寄存器电路可以根据接收到的第二读取指示信号,将第二锁存器单元A中存储的Zmax_0的低/高16位数据,作为第一次比较运算得到的第二目标极大值,在本实施例中,数据比较器将第一目标极大值与第二目标极大值合并,可以得到待处理数据中的极大值;
若数据比较器到第2t个时钟周期的运算时,得到第二极大值,并且接收到的存储指示信号为奇数时,则数据比较器得到的第二极大值Zmax_1可以存储至第一锁存器单元B,同时,寄存器电路可以根据接收到的第三读取指示信号,将第一锁存器单元B可以输出Zmax_1中的高/低16位数据,作为第二次比较运算得到的第三目标极大值;
另外,当数据比较器到第2t+1个时钟周期的运算时,则寄存器电路可以根据接收到的第四读取指示信号,将第一锁存器单元B中存储的Zmax_1中的低/高16位数据,作为第二次比较运算得到的第四目标极大值,在本实施例中,数据比较器将第三目标极大值与第四目标极大值合并,可以得到待处理数据中的极大值;
依次类推,锁存器电路根据接收到的不同的存储指示信号将得到的极大值,可以存储至对应的第二锁存器单元或第一锁存器单元中,并根据不同读取指示信号读取不同锁存器单元中存储的极大值中的部分数据,得到目标极大值。
另外,若多组待处理数据中的一组待处理数据,存在非数值、无穷数或零值的情况,此时,数据比较器可以通过m(m<t)个时钟周期可以得到该组待处理数据对应的极值,数据比较器可以根据存储指示信号将该极值存储至第二锁存器单元或第一锁存器单元中,当前时钟周期下,数据比较器可以根据读取指示信号读取不同锁存器单元存储的极值中的部分数据,下一时钟周期数据比较器可以输出该极值中的剩余部分数据;若下一组待处理数据中也会存在非数值、无穷数或零值的情况,并且需要1个时钟周期就可以完成一次比较运算,得到极值,此时,数据比较器可以将对应极值存储至第一锁存器单元或第二锁存器单元中。
本实施例提供的一种数据处理方法,接收存储指示信号、读取指示信号以及待处理数据,将所述待处理数据进行比较处理得到极值,根据所述存储指示信号存储所述极大值,根据所述读取指示信号读取所述极大值,得到目标极大值,该数据比较器可以对接收到的数据进行比较得到目标极大值,使得获得的目标极大值的位宽,可以小于数据比较器接收到的数据位宽,有效降低了数据比较器对输入输出端口位宽的要求。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据比较器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据比较器时,数据比较器间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图7为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图8所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图9所示,图9提供了一种板卡,上述板卡除了包括上述芯片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 (27)
1.一种数据比较器,其特征在于,所述数据比较器包括:比较电路、极值寄存控制电路、极值寄存器电路、状态控制电路以及极值选择电路,所述比较电路的输出端与所述极值寄存控制电路的第一输入端连接;所述极值寄存控制电路的输出端与所述极值寄存器电路的输入端连接,所述极值寄存器电路的输出端与所述极值选择电路的第一输入端连接;所述状态控制电路的第一输出端与所述极值寄存控制电路的第二输入端连接,所述状态控制电路的第二输出端与所述极值选择电路的第二输入端连接;所述极值寄存控制电路包括:极大值寄存控制单元和极小值寄存控制单元;
其中,所述比较电路用于对接收到的数据进行比较得到极值,所述状态控制电路用于获取存储指示信号以及读取指示信号,所述极值寄存控制电路用于根据所述存储指示信号确定存储所述极值的所述极值寄存器电路,所述极值寄存器电路用于存储所述极值,所述极值选择电路用于根据所述读取指示信号,读取所述极值寄存器电路中存储的所述极值中的部分数据得到目标极值;所述极大值寄存控制单元用于接收状态控制电路输入的所述存储指示信号,并根据所述存储指示信号确定存储所述极大值的极大值寄存单元;所述极小值寄存控制单元用于接收状态控制电路输入的所述存储指示信号,并根据所述存储指示信号确定存储所述极小值的极小值寄存单元;所述目标极值的位宽小于所述接收到的数据的位宽。
2.根据权利要求1所述的数据比较器,其特征在于,所述比较电路中包括输入端,用于接收输入的功能选择模式信号;所述功能选择模式信号用于确定比较电路处理的数据的位宽。
3.根据权利要求2所述的数据比较器,其特征在于,所述比较电路包括:判断子电路和比较子电路,所述判断子电路的输出端与所述比较子电路的输入端连接;所述判断子电路用于判断接收到的数据是否需要通过比较子电路进行处理,所述比较子电路用于对接收到的所述数据进行比较。
4.根据权利要求3所述的数据比较器,其特征在于,所述判断子电路中包括第一输入端,用于接收输入的功能选择模式信号;所述比较子电路中包括第二输入端,用于接收输入的所述功能选择模式信号。
5.根据权利要求1所述的数据比较器,其特征在于,所述极值寄存器电路包括:极大值寄存单元和极小值寄存单元。
6.根据权利要求5所述的数据比较器,其特征在于,所述极大值寄存单元用于将不同存储指示信号对应的所述极大值进行存储;所述极小值寄存单元用于将不同存储指示信号对应的所述极小值进行存储。
7.根据权利要求1所述的数据比较器,其特征在于,所述极值选择电路包括:极大值选择单元和极小值选择单元,所述极大值选择单元用于根据接收到的所述读取指示信号,确定读取所述极大值寄存单元中存储的所述极大值中的数据,作为目标极大值;所述极小值选择单元用于根据接收到的所述读取指示信号,确定读取所述极小值寄存单元中存储的所述极小值中的数据,作为目标极小值。
8.一种数据处理方法,其特征在于,所述方法应用于上述权利要求1-7中任一项所述的数据比较器;所述方法包括:
比较电路接收待处理数据,并对所述待处理数据进行比较处理得到极值;
状态控制电路获取存储指示信号以及读取指示信号;
通过极值寄存控制电路根据所述存储指示信号将多个所述极值存储至不同的极值寄存单元中;
极值选择电路根据所述读取指示信号,读取不同极值寄存单元中存储的对应所述极值中的部分数据,得到目标极值;所述目标极值的位宽小于所述待处理数据的位宽;
其中,所述极值寄存控制电路包括:极大值寄存控制单元和极小值寄存控制单元;所述极大值寄存控制单元用于接收状态控制电路输入的所述存储指示信号,并根据所述存储指示信号确定存储所述极大值的极大值寄存单元;所述极小值寄存控制单元用于接收状态控制电路输入的所述存储指示信号,并根据所述存储指示信号确定存储所述极小值的极小值寄存单元。
9.根据权利要求8所述的方法,其特征在于,所述比较电路包括判断子电路和比较子电路;所述对所述待处理数据进行比较处理得到极值,包括:
通过所述判断子电路判断所述待处理数据是否需要通过所述比较子电路进行处理;
若需要,则所述判断子电路将所述待处理数据输入到所述比较子电路,通过所述比较子电路比较所述待处理数据中符号位数据,指数位数据和/或尾数位数据大小,得到极值。
10.根据权利要求9所述的方法,其特征在于,所述通过所述判断子电路判断所述待处理数据是否需要通过比较子电路进行处理,包括:通过所述判断子电路判断所述待处理数据中是否存在非数值、无穷数或零值;若不存在零值,则判断所述待处理数据需要通过所述比较子电路进行处理。
11.根据权利要求9所述的方法,其特征在于,所述通过判断子电路判断所述待处理数据是否需要通过比较子电路进行处理,包括:
通过非数值判断单元判断所述待处理数据中是否存在非数值;
若不存在非数值,则将所述待处理数据输入到无穷数判断单元,通过所述无穷数判断单元判断所述待处理数据中是否存在无穷数;
若不存在无穷数,则将所述待处理数据输入到零值判断单元,通过所述零值判断单元判断所述待处理数据中是否存在零值;
若不存在零值,则判断所述待处理数据需要通过所述比较子电路进行处理。
12.根据权利要求11所述的方法,其特征在于,所述通过非数值判断单元判断所述待处理数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算。
13.根据权利要求11所述的方法,其特征在于,所述将所述待处理数据输入到无穷数判断单元,通过所述无穷数判断单元判断所述待处理数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算。
14.根据权利要求11所述的方法,其特征在于,所述将所述待处理数据输入到零值判断单元,通过所述零值判断单元判断所述待处理数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
15.根据权利要求9所述的方法,其特征在于,所述判断子电路将所述待处理数据输入到所述比较子电路,通过所述比较子电路比较所述待处理数据的符号位数据,指数位数据和/或尾数位数据大小,得到极值,包括:
通过符号位比较单元判断接收到的所述待处理数据的符号位数据是否相等;
若所述待处理数据的符号位数据相等,则将待处理的所述数据输入到指数位比较单元,通过所述指数位比较单元判断所述待处理数据的指数位数据是否相等;
若所述待处理数据的指数位相等,则将所述待处理数据输入到尾数位比较单元,通过所述尾数位比较单元判断所述待处理数据的尾数位数据是否相等;
若所述待处理数据的尾数位数据相等,则输出第四运算结果,结束运算。
16.根据权利要求15所述的方法,其特征在于,所述通过符号位比较单元判断接收到的所述待处理数据的符号位数据是否相等之后,还包括:若所述待处理数据的符号位数据不相等,则输出第五运算结果,结束运算。
17.根据权利要求15所述的方法,其特征在于,所述将所述待处理数据输入到指数位比较单元,通过所述指数位比较单元判断所述待处理数据的指数位数据是否相等之后,还包括:若所述待处理数据的指数位数据不相等,则输出第六运算结果,结束运算。
18.根据权利要求15所述的方法,其特征在于,所述将所述待处理数据输入到尾数位比较单元,通过所述尾数位比较单元判断所述待处理数据的尾数位数据是否相等之后,还包括:若所述待处理数据的尾数位数据不相等,则输出第七运算结果,结束运算。
19.根据权利要求8所述的方法,其特征在于,所述根据所述存储指示信号将多个所述极值存储至不同的极值寄存单元中,包括:
将第一存储指示信号对应的第一极大值存储至第一极大值寄存单元中;
将所述第一存储指示信号对应的第一极小值存储至第一极小值寄存单元中;
将第二存储指示信号对应的第二极大值存储至第二极大值寄存单元中;
将所述第二存储指示信号对应的第二极小值存储至第二极小值寄存单元中。
20.根据权利要求19所述的方法,其特征在于,所述根据所述读取指示信号,读取不同极值寄存单元中存储的对应所述极值中的部分数据,得到目标极值,包括:
根据第一读取指示信号,读取所述第一极大值寄存单元中存储的所述第一极大值中的第一部分数据,得到第一目标极大值;
根据所述第一读取指示信号,读取所述第一极小值寄存单元中存储的所述第一极小值中的第一部分数据,得到第一目标极小值;
根据第二读取指示信号,读取所述第一极大值寄存单元中存储的所述第一极大值中的第二部分数据,得到第二目标极大值;
根据所述第二读取指示信号,读取所述第一极小值寄存单元中存储的所述第一极小值中的第二部分数据,得到第二目标极小值。
21.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-7任一项所述的数据比较器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据比较器时,所述多个所述数据比较器间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据比较器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据比较器共享同一控制系统或拥有各自的控制系统;多个所述数据比较器共享内存或者拥有各自的内存;多个所述数据比较器的互联方式是任意互联拓扑。
22.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求21所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
23.根据权利要求22所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
24.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求21所述的机器学习运算装置或如权利要求22所述的组合处理装置或如权利要求23所述的组合处理装置。
25.一种电子设备,其特征在于,所述电子设备包括如权利要求24所述的神经网络芯片。
26.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求24所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
27.根据权利要求26所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811622453.2A CN111381802B (zh) | 2018-12-28 | 2018-12-28 | 数据比较器、数据处理方法、芯片及电子设备 |
PCT/CN2019/120994 WO2020108486A1 (zh) | 2018-11-30 | 2019-11-26 | 数据处理装置、方法、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811622453.2A CN111381802B (zh) | 2018-12-28 | 2018-12-28 | 数据比较器、数据处理方法、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381802A CN111381802A (zh) | 2020-07-07 |
CN111381802B true CN111381802B (zh) | 2022-12-09 |
Family
ID=71220468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811622453.2A Active CN111381802B (zh) | 2018-11-30 | 2018-12-28 | 数据比较器、数据处理方法、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111381802B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012113508A (ja) * | 2010-11-24 | 2012-06-14 | Nec Fielding Ltd | 浮動小数点演算回路、浮動小数点演算回路を備えたコンピュータ及びその演算制御方法と演算制御プログラム |
CN102520903A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的长度可配置的向量最大/最小值网络 |
CN103853524A (zh) * | 2012-11-30 | 2014-06-11 | 安凯(广州)微电子技术有限公司 | 一种乘法器装置和实现乘法运算的方法 |
-
2018
- 2018-12-28 CN CN201811622453.2A patent/CN111381802B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012113508A (ja) * | 2010-11-24 | 2012-06-14 | Nec Fielding Ltd | 浮動小数点演算回路、浮動小数点演算回路を備えたコンピュータ及びその演算制御方法と演算制御プログラム |
CN102520903A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的长度可配置的向量最大/最小值网络 |
CN103853524A (zh) * | 2012-11-30 | 2014-06-11 | 安凯(广州)微电子技术有限公司 | 一种乘法器装置和实现乘法运算的方法 |
Non-Patent Citations (1)
Title |
---|
一种新型低功耗异步比较器的设计方法;姜小波等;《电子学报》;20120815;第40卷(第08期);第1650-1654页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111381802A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488976A (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
WO2021185262A1 (zh) | 计算装置、方法、板卡和计算机可读存储介质 | |
CN111488963A (zh) | 神经网络计算装置和方法 | |
CN111260042B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN111260043B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN111381875B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111368967B (zh) | 一种神经网络计算装置和方法 | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111381802B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN209895329U (zh) | 乘法器 | |
CN111381806A (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN111382856B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111384944B (zh) | 全加器、半加器、数据处理方法、芯片及电子设备 | |
CN111258534B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111260044B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111340229B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN111382853A (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111368987A (zh) | 一种神经网络计算装置和方法 | |
CN117519636A (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN117519637A (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111258641A (zh) | 运算方法、装置及相关产品 | |
CN117724676A (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111047024A (zh) | 一种计算装置及相关产品 | |
CN111258634B (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 |