CN111258634B - 数据选择装置、数据处理方法、芯片及电子设备 - Google Patents
数据选择装置、数据处理方法、芯片及电子设备 Download PDFInfo
- Publication number
- CN111258634B CN111258634B CN201811451870.5A CN201811451870A CN111258634B CN 111258634 B CN111258634 B CN 111258634B CN 201811451870 A CN201811451870 A CN 201811451870A CN 111258634 B CN111258634 B CN 111258634B
- Authority
- CN
- China
- Prior art keywords
- data
- comparison
- multiplexing
- circuit
- input port
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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
Abstract
本申请提供一种数据选择装置、数据处理方法、芯片和电子设备,该装置包括:数据读入电路、选择电路、复用比较树电路、极值寄存器电路和结束判断电路,该数据选择装置可以对数据进行多层循环比较运算,有效减少数据选择装置内部的延迟;另外,上述装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据选择装置、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字比较器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,从多个值中选取极值的运算在神经网络算法中是一种常见的操作。
通常,选择多个数据中的极大值和极小值,需要对多个数据进行多次运算,才能确定极值,从而增大了数据选择装置内部的延迟。
同时,传统技术中,针对不同位宽的数据需要不同的数据选择装置进行比较运算,导致数据选择装置占用AI芯片的面积较大。
发明内容
基于此,有必要针对上述技术问题,提供一种数据选择装置、数据处理方法、芯片及电子设备。
本发明实施例提供一种数据选择装置,所述数据选择装置包括:数据读入电路、选择电路、复用比较树电路、极值寄存器电路和结束判断电路;其中,所述数据读入电路的输出端与所述选择电路的第一输入端连接,所述选择电路的输出端与所述复用比较树电路的第一输入端连接,所述复用比较树电路的输出端与所述极值寄存器电路的第一输入端连接,所述极值寄存器电路的输出端与所述选择电路的第二输入端连接,所述极值寄存器电路的第二输出端与所述结束判断电路的第二输入端连接,所述结束判断电路的输出端与所述极值寄存器电路的输入端连接,所述极值寄存器电路的第三输出端与所述复用比较树电路的第二输入端连接;
所述数据读入电路用于接收数据的个数N和寄存器中多个存储区间的首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述选择电路用于对数据读入电路读入的数据和极值寄存器电路中存储的数据进行选择,并输出循环比较运算时复用比较树电路需要接收的选择后的数据,所述复用比较树电路用于多层循环比较接收到的多个所述数据的大小,所述极值寄存器电路用于存储每一层循环比较得到的极值,所述结束判断电路用于判断多层循环比较处理是否结束。
在其中一个实施例中,所述复用比较树电路中包括功能选择模式信号输入端,用于接收输入的功能选择模式信号;所述功能选择模式信号用于确定数据选择器处理的数据的位宽。
在其中一个实施例中,所述数据读入电路包括:数据读取单元和标量寄存器阵列,所述数据读取单元的输出端与所述标量寄存器阵列的输入端连接;
所述数据读取单元用于接收所述数据的个数N和寄存器中多个存储区间的首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述标量寄存器阵列用于标量寄存器阵列用于根据所述寄存器中多个存储区间的地址存储所述数据读取单元读入的所述数据。
在其中一个实施例中,所述数据读入电路中的所述数据读取单元包括:数据输入端口,数据个数和首地址输入端口和数据输出端口,所述数据输入端口用于根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述数据个数和首地址输入端口用于接收读入所述数据的个数N和寄存器中多个存储区间的所述首地址,所述数据输出端口用于输出读入的所述数据;
所述数据读入电路中的所述标量寄存器阵列包括:数据输入端口,第一数据输出端口,第二数据输出端口,第三数据输出端口,第四数据输出端口,剩余数据输出端口,第一逻辑信号输出端口和第二逻辑信号输出端口,所述数据输入端口用于接收N个所述数据,所述第一数据输出端口用于每一次比较运算时输出每一个寄存器存储区间内存储的所述数据,所述第二数据输出端口用于输出每一个寄存器存储区间内存储的所述数据,所述第三数据输出端口用于输出每一个寄存器存储区间内存储的所述数据,所述第四数据输出端口用于输出每一个寄存器存储区间内存储的所述数据,剩余数据输出端口用于输出比较运算时所述寄存器存储区间内存储的剩余所述数据,所述第一逻辑信号输出端口用于输出第一逻辑信号,所述第二逻辑信号输出端口用于输出第二逻辑信号。
在其中一个实施例中,所述选择电路包括:第一选择单元,第二选择单元,第三选择单元和第四选择单元,所述第一选择单元用于选通循环比较运算复用比较树电路接收的第一数据,所述第二选择单元用于选通循环比较运算复用比较树电路接收的第二数据,所述第三选择单元用于选通循环比较运算复用比较树电路接收的第三数据,所述第四选择单元用于选通循环比较运算复用比较树电路接收的第四数据;
其中,所述第一选择单元包括:第一逻辑信号输入端口,第一数据输入端口,调用第一极大值输入端口和第一数据输出端口,所述第一逻辑信号输入端口用于接收第一逻辑信号,所述第一数据输入端口用于接收输入的第一数据,所述调用第一极大值输入端口用于接收极值寄存器电路中存储的极大值比较结果,所述第一数据输出端口用于输出选通后的第一数据;
所述第二选择单元包括:第一逻辑信号输入端口,第二数据输入端口,调用第二极大值输入端口和第二数据输出端口,所述第一逻辑信号输入端口用于接收第一逻辑信号,所述第二数据输入端口用于接收输入的第二数据,所述调用第二极大值输入端口用于接收极值寄存器电路中存储的极大值比较结果,所述第二数据输出端口用于输出选通后的第二数据;
所述第三选择单元包括:第二逻辑信号输入端口,第三数据输入端口,调用第三极小值输入端口和第三数据输出端口,所述第二逻辑信号输入端口用于接收第二逻辑信号,所述第三数据输入端口用于接收输入的第三数据,所述调用第三极大值输入端口用于接收极值寄存器电路中存储的极小值比较结果,所述第三数据输出端口用于输出选通后的第三数据;
所述第四选择单元包括:第二逻辑信号输入端口,第四数据输入端口,调用第四极小值输入端口和第四数据输出端口,所述第二逻辑信号输入端口用于接收第二逻辑信号,所述第四数据输入端口用于接收输入的第四数据,所述调用第四极小值输入端口用于接收极值寄存器电路中存储的极小值比较结果,所述第四数据输出端口用于输出选通后的第四数据。
在其中一个实施例中,所述复用比较树电路包括:第一级复用比较器和第二级复用比较器,所述第一级复用比较器用于对两个数据进行比较得到极值,所述第二级复用比较器用于对两个数据进行比较得到极值;所述第一级复用比较器包括:第一复用比较器和第二复用比较器,所述复用比较器用于对所述选择电路选通后的第一数据进行循环比较运算得到极大值向量和极小值向量,所述第二复用比较器用于对所述选择电路选通后的第二数据进行循环比较运算得到极大值向量和极小值向量;所述第二级复用比较器包括:第三复用比较器和第四复用比较器,所述第三复用比较器用于对两个数据进行比较得到极大值,所述第四复用比较器用于对两个数据进行比较得到极小值。
在其中一个实施例中,所述第一级复用比较器中的所述第一复用比较器包括:功能选择模式信号输入端口,第一数据输入端口,第二数据输入端口,极大值第一输出端口和极小值第一输出端口,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输入端口用于接收选择电路输入的第一数据,所述第一数据输入端口用于接收选择电路输入的第一数据,所述极大值第一输出端口用于输出比较运算得到的极大值,所述极小值第一输出端口用于输出比较运算得到的极小值;
所述第一级复用比较器中的所述第二复用比较器包括:功能选择模式信号输入端口,第三数据输入端口,第四数据输入端口,极大值第二输出端口和极小值第二输出端口,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第三数据输入端口用于接收选择电路输入的第三数据,所述第四数据输入端口用于接收选择电路输入的第四数据,所述极大值第二输出端口用于输出比较运算得到的极大值,所述极小值第二输出端口用于输出比较运算得到的极小值。
在其中一个实施例中,所述第二级复用比较器中的所述第三复用比较器包括:功能选择模式信号输入端口,调用极大值第一输入端口,调用极大值第二输入端口和极大值第三输出端口,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述调用极大值第一输入端口用于读取极值寄存器电路中存储的第一极大值比较结果,所述调用极大值第二输入端口用于读取极值寄存器电路中存储的第二极大值比较结果,所述极大值第三输出端口用于输出比较运算得到的极大值;
所述第二级复用比较器中的所述第四复用比较器包括:功能选择模式信号输入端口,调用极小值第一输入端口,调用极小值第二输入端口和极小值第四输出端口,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述调用极小值第一输入端口用于读取极值寄存器电路中存储的第一极小值比较结果,所述调用极小值第二输入端口用于读取极值寄存器电路中存储的第二极小值比较结果,所述极小值第三输出端口用于输出比较运算得到的极小值。
在其中一个实施例中,所述极值寄存器电路包括:极大值寄存器堆和极小值寄存器堆,所述极大值寄存器堆用于存储多层循环比较运算得到的极大值,所述极小值寄存器堆用于存储多层循环比较运算得到的极小值。
在其中一个实施例中,所述极大值寄存器堆包括:剩余数据输入端口,调用极大值第一输出端口,调用极大值第二输出端口,极大值第三输入端口,调用第一极大值输出端口,调用第二极大值输出端口,极大值第一输入端口,极大值第二输入端口,极大值输出端口,比较层级输出端口和判断结果输入端口,其中,所述剩余数据输入端口用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述调用极大值第一输出端口用于输出第一极大值比较结果,所述调用极大值第二输出端口用于输出第二极大值比较结果,所述极大值第三输入端口用于接收比较运算得到的极大值,所述调用第一极大值输出端口用于输出一个极大值比较结果,所述调用第二极大值输出端口用于输出第二极大值比较结果,所述极大值第一输入端口用于接收比较运算得到的第一极大值,所述极大值第二输入端口用于接收比较运算得到的第二极大值,所述极大值输出端口用于输出多层循环比较运算得到的最终极大值,所述比较层级输出端口用于输出当前循环比较结果对应的层数,所述判断结果输入端口用于接收当前极大值比较结果的层数与复用比较树电路需要进行循环比较运算的总层数的比较结果。
在其中一个实施例中,所述极小值寄存器堆包括:剩余数据输入端口,调用极小值第一输出端口,调用极小值第二输出端口,极小值第四输入端口,调用第三极小值输出端口,调用第四极小值输出端口,极小值第一输入端口,极小值第二输入端口,极小值输出端口,比较层级输出端口和判断结果输入端口;
其中,所述剩余数据输入端口用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述调用极小值第一输出端口用于输出第三极小值比较结果,所述调用极小值第二输出端口用于输出第四极小值比较结果,所述极小值第四输入端口用于接收比较运算得到的极小值,所述调用第三极小值输出端口用于输出第三极小值比较结果,所述调用第四极小值输出端口用于输出第四极小值比较结果,所述极小值第一输入端口用于接收比较运算得到的第一极小值,所述极小值第二输入端口用于接收比较运算得到的第二极小值,所述极小值输出端口用于输出多层循环比较运算得到的最终极小值,所述比较层级输出端口用于输出当前循环比较结果对应的层数,所述判断结果输入端口用于接收当前极小值比较结果的层数与复用比较树电路需要进行循环比较运算的总层数的比较结果。
在其中一个实施例中,所述结束判断电路,包括:判断单元,所述判断单元用于判断当前极值比较结果的层数,与得到最终极值所述复用比较树电路需要进行循环比较运算的总层数的大小。
在其中一个实施例中,所述判断单元包括:比较层级输入端口和判断结果输出端口,所述比较层级输入端口用于接收所述极值寄存器电路当前得到的循环比较结果对应的层数,所述判断结果输出端口用于输出当前极值比较结果对应的层数,与复用比较树电路需要进行循环比较运算的总层数的比较结果。
本实施例提供的一种数据选择装置,通过数据读入电路读入多个数据,复用比较树电路可以对多个数据进行多层循环比较得到最终的极值,当结束判断电路的判断结果为是,通过极值寄存器电路输出比较运算的结果,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
本发明实施例提供一种数据处理方法,所述方法包括:
接收待处理的数据;
通过选择电路对待处理的所述数据进行选通,将选通后的比较数据输入至复用比较树电路;
通过复用比较树电路对选通后的所述比较数据进行多层循环比较运算;
通过结束判断电路判断是否满足结束所述多层循环比较运算的条件;
若满足结束所述多层循环比较运算的条件,则输出向量极值。
在其中一个实施例中,在接收待处理的数据之后,还包括:
通过数据读取单元接收待处理的所述数据的个数N和寄存器中多个存储区间的首地址;
根据寄存器中多个存储区间的所述首地址和所述数据个数N读入所述数据,并将所述数据存储至标量寄存器阵列中。
在其中一个实施例中,所述通过选择电路对待处理的所述数据进行选通,将选通后的比较数据输入至复用比较树电路,包括:通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的所述数据进行选通,将选通后的比较数据输入至所述复用比较树电路。
在其中一个实施例中,所述通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的所述数据进行选通,将选通后的比较数据输入至所述复用比较树电路,包括:
通过第一选择单元选通得到第一比较数据,并将所述第一比较数据输入至第一复用比较器;
通过第二选择单元选通得到第二比较数据,并将所述第二比较数据输入至第一复用比较器;
通过第三选择单元选通得到第三比较数据,并将所述第三比较数据输入至第二复用比较器;
通过第四选择单元选通得到第四比较数据,并将所述第四比较数据输入至第二复用比较器。
在其中一个实施例中,所述通过复用比较树电路对选通后的所述比较数据进行多层循环比较运算,包括:
通过第一复用比较器对所述第一比较数据和所述第二比较数据进行第一层循环比较运算,得到第一层极值比较结果;
通过第二复用比较器对所述第三比较数据和所述第四比较数据进行第一层循环比较运算,得到第一层极值比较结果;
通过第三复用比较器和第四复用比较器对第一层极值比较结果进行第二层循环比较运算,得到第二层极值比较结果;
通过第一复用比较器和第二复用比较器,与第三复用比较器和第四复用比较器轮换对上一层极值比较结果进行多层循环比较运算。
在其中一个实施例中,通过结束判断电路判断是否满足结束所述多层循环比较运算的条件之后,还包括:若否,则继续通过所述第一复用比较器与第二复用比较器,和第三复用比较器与第四复用比较器轮换对上一层极值比较结果进行多层循环比较运算。
在其中一个实施例中,所述输出向量极值,包括:通过极值寄存器电路接收所述判断单元输入的逻辑判断信号,并根据所述逻辑判断信号输出运算结果。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的数据输入到复用比较树电路,并通过复用比较树电路对待处理的数据进行循环比较待处理的所述数据,通过结束判断电路判断是否满足结束多层循环比较运算的条件,若满足结束比较运算的条件,则输出向量极值,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的数据选择装置;该机器学习运算装置用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述数据选择装置时,所述多个所述数据选择装置间可以通过特定的结构进行链接并传输数据;
其中,多个所述数据选择装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据选择装置共享同一控制系统或拥有各自的控制系统;多个所述数据选择装置共享内存或者拥有各自的内存;多个所述数据选择装置的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其他处理装置;该机器学习运算装置与上述其他处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置和所述其他处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的数据选择装置、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的数据选择装置。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为数据选择装置的结构示意图;
图2为另一数据选择装置的结构示意图;
图3为一实施例提供的一种数据选择装置的具体结构示意图;
图4为一实施例提供的另一种数据选择装置的具体结构示意图;
图5为一种复用比较器的具体结构示意图;
图6为一实施例提供的数据处理方法的流程示意图;
图7为另一实施例提供的数据读入电路读取数据的具体流程示意图;
图8为另一实施例提供的复用比较树电路对数据进行多层循环比较运算的流程示意图;
图9为另一实施例提供的判断是否满足结束循环比较运算条件的流程示意图;
图10为一实施例提供的另一种数据处理方法的流程示意图;
图11为一实施例提供的选通比较数据输入复用比较树电路的方法流程示意图;
图12为另一实施例提供的复用比较树电路对选通后的比较数据进行多层循环比较运算的流程示意图;
图13为一实施例提供的一种组合处理装置的结构图;
图14为一实施例提供的另一种组合处理装置的结构图;
图15为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据选择装置可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行向量比较运算处理,其具体结构示意图如图1和2所示。
图1为一个实施例提供的一种数据选择装置的结构图。如图1所示,该数据选择装置包括:数据读入电路11、复用比较树电路12、极值寄存器电路13和结束判断电路14;其中,所述数据读入电路11的输出端与所述复用比较树电路12的第一输入端连接,所述复用比较树电路12的第一输出端与所述极值寄存器电路13的第一输入端连接,所述极值寄存器电路13的第一输出端与所述结束判断电路14的输入端,,所述结束判断电路的输出端与所述极值寄存器电路的第二输入端连接,所述极值寄存器电路的第二输出端与所述复用比较树电路12的第二输入端连接;所述数据读入电路11用于接收数据的个数N和寄存器中多个存储区间的首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述复用比较树电路12用于多层循环比较接收到的多个所述数据的大小,所述极值寄存器电路13用于存储每一层循环比较得到的极值,所述结束判断电路14用于判断多层循环比较处理是否结束。
具体的,上述数据读入电路11可以包括多个具有不同功能的数据读入单元,上述复用比较树电路12可以包括多个复用比较器,所述极值寄存器电路13可以包括极大值处理单元和极小值处理单元。可选的,上述不同功能的数据读入单元的输入端口可以有一个或多个,每个数据读入单元的每个输入端口的功能可以不相同,输出端口也可以有一个或多个,每个数据读入单元的每个输出端口的功能可以不相同,并且不同功能数据读入单元的电路结构可以不相同。可选的,上述多个复用比较器的电路结构可以相同,每个复用比较器的输入端口和输出端口的功能均可以相同。
需要说明的是,极大值处理单元和极小值处理单元的输入端口均可以有多个,每个输入端口的功能可以不相同,并且极大值处理单元和极小值处理单元的输出端口也均可以有多个,每个输出端口的功能可以不相同。
可选的,所述复用比较树电路12中可以包括功能选择模式信号输入端Mode,用于接收输入的功能选择模式信号。可选的,所述功能选择模式信号用于确定数据选择器处理的数据的位宽。
可选的,功能选择模式信号可以有多种,不同功能选择模式信号对应的复用比较器可以处理不同位宽的数据。
本实施例提供的一种数据选择装置,通过数据读入电路读入多个数据,复用比较树电路可以对多个数据进行多层循环比较得到最终的极值,当结束判断电路的判断结果为是,通过极值寄存器电路输出比较运算的结果,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
图2为一个实施例提供的另一种数据选择装置的结构图。如图2所示,该数据选择装置包括:数据读入电路11、选择电路12、复用比较树电路13、极值寄存器电路14和结束判断电路15;其中,所述数据读入电路11的输出端与所述选择电路12的第一输入端连接,所述选择电路12的输出端与所述复用比较树电路13的第一输入端连接,所述复用比较树电路13的输出端与所述极值寄存器电路14的第一输入端连接,所述极值寄存器电路14的第一输出端与所述选择电路12的第二输入端连接,所述极值寄存器电路14的第二输出端与所述结束判断电路15的输入端连接,所述结束判断电路15的输出端与所述极值寄存器电路14的第二输入端连接,所述极值寄存器电路14的第三输出端与所述复用比较树电路13的第二输入端连接;所述数据读入电路11用于接收数据的个数N和寄存器中多个存储区间的首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述选择电路12用于选通循环比较运算复用比较树电路13接收的两个数据,所述复用比较树电路13用于多层循环比较接收到的多个所述数据的大小,所述极值寄存器电路14用于存储每一层循环比较得到的极值,所述结束判断电路15用于判断多层循环比较处理是否结束。
具体的,上述数据读入电路11可以包括多个具有不同功能的数据读入单元,上述选择电路12可以选通复用比较树电路13每一次比较运算接收到的两个数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。可选的,上述复用比较树电路13可以包括多个复用比较器,上述极值寄存器电路14可以包括极大值处理单元和极小值处理单元。可选的,上述不同功能数据读入单元的输入端口可以有一个或多个,每个数据读入单元的每个输入端口的功能可以不相同,输出端口也可以有一个或多个,每个数据读入单元的每个输出端口的功能可以不相同,并且不同功能数据读入单元的电路结构可以不相同。可选的,上述多个复用比较器的电路结构可以相同,每个复用比较器的输入端口和输出端口的功能均可以相同。
需要说明的是,极大值处理单元和极小值处理单元的输入端口均可以有多个,每个输入端口的功能可以不相同,并且极大值处理单元和极小值处理单元的输出端口也均可以有多个,每个输出端口的功能可以不相同。
可选的,所述复用比较树电路13中可以包括功能选择模式信号输入端Mode,用于接收输入的功能选择模式信号。
可选的,功能选择模式信号可以有多种,不同功能选择模式信号对应的复用比较器可以处理不同位宽的数据。
本实施例提供的一种数据选择装置,通过数据读入电路读入多个数据,复用比较树电路可以对读入的多个数据进行多层循环比较得到最终的极值,当结束判断电路的判断结果为是,通过极值寄存器电路输出比较运算的结果,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
图3为另一实施例提供的一种数据选择装置的具体结构示意图,其中,数据选择装置包括所述数据读入电路11,该数据读入电路11包括:数据读取单元111和标量寄存器阵列112,所述数据读取单元111的输出端与所述标量寄存器阵列112的输入端连接;所述数据读取单元111用于接收所述数据的个数N和寄存器中多个存储区间的所述首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述标量寄存器阵列112用于根据所述寄存器中多个存储区间的地址存储所述数据读取单元111读入的所述数据。
具体的,上述标量寄存器阵列112可以包括多个存储区间,并且存储区间的数量可以等于数据读取单元111接收到的数据个数N。可选的,每个存储区间可以存放一个数据,每一个存储区间可以存放接收到的任意一个数据。可选的,当N个数据全部被存储至标量寄存器阵列112中时,才可以进行下一电路的处理。需要说明的是,数据读取单元111可以根据寄存器中多个存储区间的首地址A依次将N个数据读入。
本实施例提供的一种数据选择装置,数据读取单元可以接收所述数据的个数,并根据寄存器中多个存储区间的首地址和所述数据的个数读入所述数据,通过标量寄存器阵列接收数据读取单元输入数据,通过标量寄存器阵列按照存储区间的首地址依次将接收到的数据存放至存储区间中,依次将存储区间中存储的数据输入到复用比较树电路,通过复用比较树电路进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述数据读取单元111,该数据读取单元111包括:数据输入端口1111,数据个数和首地址输入端口1112和数据输出端口1113,所述数据输入端口1111用于根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述数据个数输入端口1112用于接收读入的所述数据的个数N和寄存器中多个存储区间的所述首地址,所述数据输出端口1113用于输出读入的所述数据。
需要说明的是,若寄存器中的所有存储区间均有编号,例如,0,1,2,3,……,则存储区间的首地址A可以为0。可选的,上述N可以为任意正整数,N的具体数值可以等于数据读取单元111接收到的数据个数。可选的,数据个数输入端口1112可以接收数据读取单元111读入的数据的个数。可选的,根据存储区间的首地址,数据输出端口1113每一次可以输出一个数据,并且输出数据的次数可以等于数据的个数N。
本实施例提供的一种数据选择装置,通过数据读取单元可以接收数据的个数,并根据寄存器中多个存储区间的首地址和数据的个数读入所述数据,通过标量寄存器阵列按照存储区间的首地址依次将接收到的数据存放至存储区间中,并依次将存储区间中存储的数据输入到复用比较树电路,通过复用比较树电路进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述标量寄存器阵列112,该所述标量寄存器阵列112包括:数据输入端口1121,第一数据输出端口1122,第二数据输出端口1123和剩余数据输出端口1124,所述数据输入端口1121用于接收N个所述数据,所述第一数据输出端口1122用于每一次比较运算时输出每一个寄存器存储区间内存储的所述数据,所述第二数据输出端口1123用于输出每一个寄存器存储区间中存储的所述数据,剩余数据输出端口1124用于输出比较运算时寄存器存储区间内存储的剩余所述数据。
具体的,上述数据输入端口1121可以接收N个数据,其中,每一次可以接收一个数据,每一次还可以接收N个数据,但是每一次只能输出一个寄存器存储区间内存储的数据,输出数据的次数可以等于N。可选的,一个寄存器存储区间内可以存储一个数据。可选的,标量寄存器阵列112中的寄存器存储区间数量可以等于数据读取单元111接收到的数据个数N。
需要说明的是,复用比较树电路13进行循环比较运算时,如果第一数据输出端口1122和第二数据输出端口1123为悬空状态,则剩余数据输出端口1124可以向最值寄存器电路13输入数据。每一次循环比较运算时,若剩余数据输出端口1124为悬空状态,则第一数据输出端口1122和第二数据输出端口1123可以分别向极值寄存器电路13输入一个数据,并且输入的这两个数据为标量寄存器阵列112中不同寄存器存储区间中的存储的数据,两个不同寄存器存储区间对应的存储地址可以是相邻的,还可以是不相邻的。可选的,剩余数据输出端口1124可以输出复用比较树电路12进行循环比较运算时,标量寄存器阵列112中寄存器存储区间中存储的剩余的所述寄存器。另外,当标量寄存器阵列112中存储的数据数量为奇数时,在循环比较运算过程中,上述剩余数据输出端口1124在最后一次比较运算后才可以不为悬空状态,此时,会输出标量寄存器阵列112中剩余的一个数据。
本实施例提供的一种数据选择装置,通过标量寄存器阵列可以依次存放接收到的N个数据,并依次将存储区间中存储的数据输入到复用比较树电路,通过复用比较树电路进行多层循环比较得到最终的极值,从而可以对N个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第一级复用比较器121,该第一级复用比较器121包括:复用比较器1211,所述复用比较器1211用于对所述标量寄存器阵列112中存储的数据进行循环比较运算,得到极大值向量和极小值向量。
具体的,复用比较器1211可以进行第一层循环比较运算,每一次可以对两个数据进行比较运算,得到两个数据中的极大值和极小值。需要说明的是,若数据读入电路11接收到的数据个数为N,且N为偶数,则复用比较器1211可以进行第一层循环比较运算的次数等于N/2,若N为奇数,则复用比较器1211可以进行循环比较运算的次数等于round(N/2),round(*)可以表示对实数取整。
本实施例提供的一种数据选择装置,复用比较器能够对多个数据进行循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第二级复用比较器122,该第二级复用比较器122包括:第一复用比较器1221和第二复用比较器1222,所述第一复用比较器1221用于对两个数据进行比较得到极大值,所述第二复用比较器1222用于对两个数据进行比较得到极小值。
需要说明的是,第一复用比较器1221和第二复用比较器1222均可以进行多层循环比较运算,每一层循环比较运算的比较结果均可以存储至极值寄存器电路13中,极值寄存器电路13对每一层循环比较结果均有对应编号。可选的,第一复用比较器1221进行循环比较运算的层数可以等于第二复用比较器1222进行循环比较运算的层数,并且每一层比较运算的总次数可以相等。
本实施例提供的一种数据选择装置,复用比较树电路能够对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
另一实施例提供的一种复用比较树电路,所述复用比较树电路12包括:第一级复用比较器121和第二级复用比较器122,所述第一级复用比较器121用于对两个数据进行比较得到极值,所述第二级复用比较器122用于对两个数据进行比较得到极值。
具体的,第一级复用比较器121和第二级复用比较器122均可以对多个数据进行多层循环比较运算。可选的,第一级复用比较器121可以对标量寄存器阵列112中存储的所有数据进行第一层循环比较运算,每一次比较运算得到的结果可以输入至极值寄存器电路13中存储,其中,极值寄存器电路13可以对每一层循环比较结果进行对应的编号。示例性的,第一层循环比较结果的编号对应为1,第二层循环比较结果的编号对应为2,依次编号,直到第M层循环比较结果的编号对应为M。另外,每一次比较运算时,第一级复用比较器121可以接收标量寄存器阵列112输入的两个不同存储区间中存储的数据进行比较,得到两个数据中的极大值和极小值,并将极大值和极小值存放至极值寄存器电路13中,同时,标量寄存器阵列112存储的这两个数据的存储区间会被清空,下一次比较运算时,标量寄存器阵列112可以将另外两个不同存储区间中存储的数据输入至第一级复用比较器121,继续进行比较运算,直到标量寄存器阵列112中存储的数据全部比较完为止,第一级复用比较器121结束循环运算。
需要说明的是,每一次比较运算后第一级复用比较器121可以得到一个极值存放至极值寄存器电路13中,从第一次比较运算开始,如果第一级复用比较器121连续两次比较运算,从而可以向极值寄存器电路13输入两个极值,并且这两个极值均为第一层循环比较结果,对应编号均为1,此时,第二级复用比较器122可以读取极值寄存器电路13中存储的这两个第一层循环比较结果进行第二层循环比较运算,也就是说,只要极值寄存器电路13存储的第一层循环比较结果为两个数据时,第二级复用比较器122可以自动读取极值寄存器电路13中存储的这两个第一层循环比较结果进行第二层循环比较运算。可选的,第二级复用比较器122处理的第一层循环比较结果均可以称为第二层循环比较运算,第二层循环比较运算得到的结果可以称为第二层循环比较结果,第二层循环比较结果依然可以存储至极值寄存器电路13中,依次进行多层循环比较运算,下一层循环比较运算可以对上一层循环比较结果进行处理,并且从第二层循环比较运算开始,需要每一层循环比较运算结束后,该层运算的全部结果存储至极值寄存器电路13中才可以通过第二级复用比较器122进行下一层循环比较运算,直到某一层循环比较运算的结果为一个数据为止,多层循环比较运算结束。
本实施例提供的一种数据选择装置,复用比较树电路能够对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述复用比较器1211,第一复用比较器1221和第二复用比较器1222,该复用比较器1211,第一复用比较器1221或第二复用比较器1222包括:功能选择模式信号输入端口(Mode)1221a,第一数据输入端口1221b,第二数据输入端口1221c,极大值输出端口1221d和极小值输出端口1221e,所述功能选择模式信号输入端口(Mode)1221a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输入端口1221b用于接收输入的所述第一数据,所述第二数据输入端口1221c用于接收输入的所述第二数据,所述极大值输出端口1221d用于输出每一次数据比较运算后的极大值,所述极小值输出端口1221e用于输出每一次数据比较运算后的极小值。
具体的,上述功能选择模式信号输入端口(Mode)1221a可以接收不同的功能选择模式信号。可选的,不同的功能选择模式信号可以有多种,不同功能选择模式信号对应于复用选择器1211,第一复用比较器1221和第二复用比较器1222可以处理不同位宽的数据。可选的,每一次比较运算时,第一数据输入端口1221b和第二数据输入端口1221c可以接收标量寄存器阵列112中存储的两个不同数据,还可以接收极值寄存器电路13中存储的两个不同数据。
可选的,上述复用选择器1211,第一复用比较器1221和第二复用比较器1222的电路结构均可以相等,电路结构图如图5所示。
本实施例提供的一种数据选择装置,复用比较树电路能够对选通的多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述极值寄存器电路13,该极值寄存器电路13包括:极大值寄存器堆131和极小值寄存器堆132,所述极大值寄存器堆131用于存储多层循环比较运算得到的极大值,所述极小值寄存器堆132用于存储多层循环比较运算得到的极小值。
需要说明的是,极大值寄存器堆131可以存储第一级复用比较器121每一次比较运算得到的极大值,还可以存储第二级复用比较器122每一层循环比较运算得到的极大值。可选的,极大值寄存器堆131内的存储区间数量可以根据用户需要设定,并且极大值寄存器堆131内可以存储多层循环比较运算的结果。示例性的,若数据读入电路11接收到的数据个数为N,则循环比较运算的总层数可以等于log2N。可选的,复用比较树电路12每一层循环比较得到的极大值比较结果对应的层数可以等于第二复用比较器1222进行循环比较运算的总层数加一。示例性的,若第二复用比较器1222进行第一层循环比较运算,则该层循环比较运算得到的循环比较结果为复用比较树电路12第二层的循环比较结果。
可选的,极小值寄存器堆131可以存储第一级复用比较器121每一次比较运算得到的极小值,还可以存储第二级复用比较器122每一层循环比较运算得到的极小值。可选的,极小值寄存器堆132内的存储区间数量可以根据用户需要设定,并且极小值寄存器堆132内可以存储多层循环比较运算的结果。示例性的,若数据读入电路11接收到的数据个数为N,则循环比较运算的总层数可以等于log2N。可选的,复用比较树电路12每一层循环比较运算得到的极小值比较结果对应的层数可以等于第二复用比较器1222进行循环比较运算的总层数加一。示例性的,若第二复用比较器1222进行第一层循环比较运算,则该层循环比较运算得到的循环比较结果为复用比较树电路12第二层的循环比较结果。
本实施例提供的一种数据选择装置,数据选择装置可以通过第一级复用比较器和第二级复用比较器对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述极大值寄存器堆131,该极大值寄存器堆131包括:第一极大值输出端口1311,第二极大值输出端口1312,极大值输入端口1313,第三极大值输出端口1314,比较层级输出端口1315,判断结果输入端口1316,剩余数据输入端口1317和极大值输入端口1318,所述第一极大值输出端口1311用于输出第一极大值,所述第二极大值输出端口1312用于输出第二极大值,所述极大值输入端口1313用于接收下一层比较运算得到的极大值,所述第三极大值输出端口1314用于输出多个所述数据中的极大值,所述比较层级输出端口1315用于输出复用比较树电路12当前进行循环比较运算的层数,所述判断结果输入端口1316用于接收逻辑判断信号,所述剩余数据输入端口1317用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述极大值输入端口1318用于接收每一次数据比较运算后得到的极大值。
具体的,上述极大值输入端口1313可以接收第一复用比较器1221循环比较运算输出的极大值结果。需要说明的是,若第一复用比较器1221第一层比较运算的总次数为N/2,得到的第一层循环比较的结果中数据的个数可以为N/2,则下一层比较运算的总次数可以为N/4,依次类推,直到最后一层循环比较运算得到的比较结果中数据的个数等于1为止,结束多层循环比较运算,此时,极大值寄存器堆131中存储有一个数据。另外,当N=2^n(n可以等于任意实数)时,每一层比较运算的总次数可以等于当层比较运算得到的比较结果中数据的个数,并且每一层比较运算的总次数可以等于前一层比较运算次数的1/2;当N为奇数或者非2^n的偶数时,每一层比较运算的总次数可以不等于前一层比较运算次数的1/2。可选的,第二复用比较器1222可以对上一层比较结果中的任意两个极大值进行比较运算,还可以对复用比较器1211相邻两次比较运算得到的结果进行比较运算,此时,极大值寄存器堆131中存储的正在进行比较运算的这两个极大值的对应存储区间会被清空,并且当层比较运算得到的比较结果可以存储到清空的这两个存储区间,还可以存储到其它未存储数据的寄存器存储区间中。可选的,判断结果输入端口1316用于接收结束判断电路14输出的逻辑判断信号。
需要说明的是,第一层循环比较运算结束后,若标量寄存器阵列112中还存储有一个未处理的数据时,极大值寄存器堆131可以通过剩余数据输入端口1317接收剩余的该数据,并通过复用比较树电路12对该浮点数和第一层循环比较运算结果进行多层循环比较运算。可选的,极大值输入端口1318可以接收第一层循环比较运算时每一次比较运算得到的极大值。
本实施例提供的一种数据选择装置,数据选择装置可以通过第一级复用比较器和第二级复用比较器对多个进行多层循环比较处理,每一层比较运算得到的极大值可以存储于极大值寄存器堆中,为下一层比较运算提供数据,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,向量极值数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述极小值寄存器堆132,该极小值寄存器堆132包括:第一极小值输出端口1321,第二极小值输出端口1322,极小值输入端口1323,第三极小值输出端口1324,比较层级输出端口1325,判断结果输入端口1326,剩余数据输入端口1327,极小值输入端口1328,所述第一极小值输出端口1321用于输出第一极小值,所述第二极小值输出端口1322用于输出第二极小值,所述极小值输入端口1323用于接收下一层比较运算得到的极小值,所述第三极小值输出端口1324用于输出多个所述数据中的极小值,所述比较层级输出端口1325用于输出第二复用比较器1222当前进行比较运算的层数,所述判断结果输入端口1326用于接收结束判断电路14输出的逻辑判断信号,所述剩余数据输入端口1327用于接收比较运算时标量寄存器阵列112中存储的剩余的所述数据,所述极小值输入端口1328用于接收每一次数据比较运算后得到的极小值。
具体的,上述极小值输入端口1323可以接收第一复用比较器1221循环比较运算输出的极小值结果。需要说明的是,若第一复用比较器1221第一层比较运算的总次数为N/2,得到的第一层循环比较的结果中数据的个数可以为N/2,则下一层比较运算的总次数可以为N/4,依次类推,直到最后一层循环比较运算得到的比较结果中数据的个数等于1为止,结束多层循环比较运算,此时,极小值寄存器堆132中存储有一个浮点数。可选的,第二复用比较器1222可以对上一层比较结果中的任意两个极小值进行比较运算,还可以对复用比较器1211相邻两次比较运算得到的结果进行比较运算,此时,极小值寄存器堆132中存储的正在进行比较运算的这两个极小值的对应存储区间会被清空,并且当层比较运算得到的比较结果可以存储到清空的这两个存储区间,还可以存储到其它未存储数据的寄存器存储区间中。可选的,判断结果输入端口1326用于接收结束判断电路14输出的逻辑判断信号。
需要说明的是,第一层循环比较运算结束后,若标量寄存器阵列112中还存储有一个未处理的数据时,极小值寄存器堆132可以通过剩余数据输入端口1327接收剩余的该数据,并通过复用比较树电路12对该数据和第一层循环比较运算结果进行多层循环比较运算。可选的,极小值输入端口1328可以接收第一层循环比较运算时每一次比较运算得到的极小值。另外,若第一层循环比较运算结束后,标量寄存器阵列112中还有一个剩余的数据时,将该剩余数据同时输入到极大值寄存器堆131和极小值寄存器堆132中。
本实施例提供的一种数据选择装置,数据选择装置可以通过第一级复用比较器和第二级复用比较器对多个数据进行多层循环比较处理,每一层比较运算得到的极小值可以存储于极小值寄存器堆中,为下一层比较运算提供数据,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述结束判断电路14,该结束判断电路14包括:判断单元141,所述判断单元141用于判断当前极值比较结果的层数,与得到最终极值所述复用比较树电路12需要进行循环比较运算的总层数的大小。
需要说明的是,若当前极值比较结果的层数,与得到最终极值复用比较树电路12需要进行循环比较运算的总层数相等时,判断单元141的判断结果可以为是,结束多层循环比较运算,输出多个数据中的极值,此时,复用比较树电路12不需要继续进行循环比较运算。可选的,上述极值比较结果可以为极大值比较结果,还可以为极小值比较结果。
本实施例提供的一种数据选择装置,数据选择装置可以通过第一级复用比较器和第二级复用比较器对多个数据进行多层循环比较处理,通过判断单元判断循环比较运算是否结束,如果判断单元的判断结果为是,则结束循环比较运算输出运算结果,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图3所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述判断单元141,该判断单元141包括:比较层级输入端口1411和判断结果输出端口1412,所述比较层级输入端口1411用于接收所述极值寄存器电路13当前得到的循环比较结果对应的层数,所述判断结果输出端口1412用于输出当前极值比较结果对应的层数与复用比较树电路12需要进行循环比较运算的总层数的比较结果。
需要说明的是,若当前极值比较结果对应的层数等于复用比较树电路12需要进行循环比较运算层数时,判断单元141可以通过判断结果输出端口1412向极大值寄存器堆131和极小值寄存器堆132输入高电平信号,指示极大值寄存器堆131和极小值寄存器堆132分别输出运算结果。
本实施例提供的一种数据选择装置,数据选择装置可以通过第一级复用比较器和第二级复用比较器对多个数据进行多层循环比较处理,通过判断单元判断多层循环比较运算是否结束,如果判断单元的判断结果为是,则结束多层循环比较运算输出运算结果,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
图4为一实施例提供的另一种数据选择装置的具体结构示意图,图4与图3所示的数据选择装置的结构基本相同。其不同包括如下内容。图4所示的数据选择装置中包括所述标量寄存器阵列112,该所述标量寄存器阵列112包括:数据输入端口1121,第一数据输出端口1122,第二数据输出端口1123,第三数据输出端口1124,第四数据输出端口1125,剩余数据输出端口1126,第一逻辑信号输出端口(Sel0)1127和第二逻辑信号输出端口(Sel1)1128,所述数据输入端口1121用于接收N个所述数据,所述第一数据输出端口1122用于每一次比较运算时输出每一个寄存器存储区间内存储的所述数据,所述第二数据输出端口1123用于输出每一个寄存器存储区间内存储的所述数据,所述第三数据输出端口1124用于输出每一个寄存器存储区间内存储的所述数据,所述第四数据输出端口1125用于输出每一个寄存器存储区间内存储的所述数据,剩余数据输出端口1126用于输出比较运算时所述寄存器存储区间内存储的剩余所述数据,所述第一逻辑信号输出端口(Sel0)1127用于输出第一逻辑信号,所述第二逻辑信号输出端口(Sel1)1128用于输出第二逻辑信号。
具体的,上述第一逻辑信号和第二逻辑信号均可以包括高电平逻辑信号和低电平逻辑信号。可选的,数据读入电路11接收到的数据个数N可以为奇数,还可以为偶数。可选的,第一数据输出端口1122,第二数据输出端口1123,第三数据输出端口1124和第四数据输出端口1125均可以向复用比较树电路13输入数据进行多层循环比较运算。
需要说明的是,在第一层循环比较运算过程中,若N为奇数,且数据读入电路11中的数据数量小于等于1时,则第一逻辑信号输出端口(Sel0)1127可以输出高电平逻辑信号,若N为奇数,且数据读入电路11中的数据数量小于等于3时,则第二逻辑信号输出端口(Sel1)1128可以输出高电平逻辑信号。可选的,上述第一层循环比较运算可以表征为复用比较树电路13对数据读入电路11中存储的所有数据进行一次循环比较运算的过程。可选的,在第一层循环比较运算过程中,若数据读入电路11中的数据数量小于等于1时,则数据读入电路11将剩余的数据可以直接输入至极值寄存器电路14,不需要进行第一层循环比较运算。
本实施例提供的一种数据选择装置,通过标量寄存器阵列按照存储区间的首地址依次将接收到的数据存放至存储区间中,依次将存储区间中存储的数据输入到复用比较树电路,通过复用比较树电路对接收到的数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述选择电路12,该所述选择电路12包括:第一选择单元121,第二选择单元122,第三选择单元123和第四选择单元124,所述第一选择单元121用于选通循环比较运算复用比较树电路13接收的第一数据,所述第二选择单元122用于选通循环比较运算复用比较树电路13接收的第二数据,所述第三选择单元123用于选通循环比较运算复用比较树电路13接收的第三数据,所述第四选择单元124用于选通循环比较运算复用比较树电路13接收的第四数据。
具体的,第一层循环比较运算时,第一选择单元121可以选通复用比较树电路13接收到的第一数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。可选的,第二选择单元122可以选通复用比较树电路13接收到的第二数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。可选的,第三选择单元123可以选通复用比较树电路13接收到的第三数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。可选的,第四选择单元124可以选通复用比较树电路13接收到的第四数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。
本实施例提供的一种数据选择装置,通过选择电路可以选通复用比较树电路接收四个不同的数据,并通过复用比较树电路对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第一选择单元121,该第一选择单元121包括:第一逻辑信号输入端口1211,第一数据输入端口1212,调用第一极大值输入端口1213和第一数据输出端口1214,所述第一逻辑信号输入端口1211用于接收第一逻辑信号,所述第一数据输入端口1212用于接收输入的第一数据,所述调用第一极大值输入端口1213用于接收极值寄存器电路14中存储的极大值比较结果,所述第一数据输出端口1214用于输出选通后的第一数据。
具体的,上述第一逻辑信号输入端口1211可以接收数据读入电路11输出的高电平逻辑信号,还可以接收数据读入电路11输出的低电平逻辑信号。若第一逻辑信号输入端口1211接收的是数据读入电路11输入的高电平逻辑信号时,则第一选择单元121可以选通调用第一极大值输入端口1213,接收极值寄存器电路14中存储的一个极大值比较结果,并将接收到的这一个极大值比较结果通过第一数据输出端口1214输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第一数据。否则,若第一逻辑信号输入端口1211接收的是标量寄存器阵列112输入的低电平逻辑信号时,则第一选择单元121可以选通第一数据输入端口1212,接收数据读入电路11中存储的任意一个数据,并将接收到的这一个数据通过第一数据输出端口1214输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第一数据。
本实施例提供的一种数据选择装置,通过选择电路可以选通复用比较树电路接收四个不同的数据,并通过复用比较树电路对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第二选择单元122,该所述第二选择单元122包括:第一逻辑信号输入端口1221,第二数据输入端口1222,调用第二极大值输入端口1223和第二数据输出端口1224,所述第一逻辑信号输入端口1221用于接收第一逻辑信号,所述第二数据输入端口1222用于接收输入的第二数据,所述调用第二极大值输入端口1223用于接收极值寄存器电路14中存储的极大值比较结果,所述第二数据输出端口1224用于输出选通后的第二数据。
具体的,上述第一逻辑信号输入端口1221可以接收数据读入电路11输入的高电平逻辑信号,还可以接收数据读入电路11输入的低电平逻辑信号。若第一逻辑信号输入端口1221接收的是数据读入电路11输入的高电平逻辑信号时,则第二选择单元122可以选通调用第二极大值输入端口1223,接收极值寄存器电路14中存储的一个极大值比较结果,并将接收到的这一个极大值比较结果通过第二数据输出端口1224输入至复用比较树电路12中,作为复用比较树电路12进行比较运算的第二数据。否则,若第一逻辑信号输入端口1221接收的是标量寄存器阵列112输入的低电平逻辑信号时,则第二选择单元122可以选通第二数据输入端口1222,接收数据读入电路11中存储的任意一个数据,并将接收到的这一个数据通过第二数据输出端口1224输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第二数据。
本实施例提供的一种数据选择装置,通过选择电路可以选通复用比较树电路接收四个不同的数据,并通过复用比较树电路对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第三选择单元123,该第三选择单元123包括:第二逻辑信号输入端口1231,第三浮点数输入端口1232,调用第三极小值输入端口1233和第三数据输出端口1234,所述第二逻辑信号输入端口1231用于接收第二逻辑信号,所述第三数据输入端口1232用于接收输入的第三数据,所述调用第三极大值输入端口1233用于接收极值寄存器电路14中存储的极小值比较结果,所述第三数据输出端口1234用于输出选通后的第三数据。
具体的,上述第二逻辑信号输入端口1231可以接收数据读入电路11输入的高电平逻辑信号,还可以接收数据读入电路11输入的低电平逻辑信号。若第二逻辑信号输入端口1231接收的是数据读入电路11输入的高电平逻辑信号时,则第三选择单元123可以选通调用第三极小值输入端口1233,接收极值寄存器电路14中存储的一个极小值比较结果,并将接收到的这一个极小值比较结果通过第三数据输出端口1234输入至复用比较树电路12中,作为复用比较树电路12进行比较运算的第三数据。否则,若第二逻辑信号输入端口1231接收的是标量寄存器阵列112输入的低电平逻辑信号时,则第三选择单元123可以选通第三数据输入端口1232,接收数据读入电路11中存储的任意一个数据,并将接收到的这一个数据通过第三数据输出端口1234输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第三数据。
本实施例提供的一种数据选择装置,通过选择电路可以选通复用比较树电路接收四个不同的数据,并通过复用比较树电路对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第四选择单元124,该第四选择单元124包括:第二逻辑信号输入端口1241,第四数据输入端口1242,调用第四极小值输入端口1243和第四数据输出端口1244,所述第二逻辑信号输入端口1241用于接收第二逻辑信号,所述第四数据输入端口1242用于接收输入的第四数据,所述调用第四极小值输入端口1243用于接收极值寄存器电路14中存储的极小值比较结果,所述第四数据输出端口1244用于输出选通后的第四数据。
具体的,上述第二逻辑信号输入端口1241可以接收数据读入电路11输入的高电平逻辑信号,还可以接收数据读入电路11输入的低电平逻辑信号。若第二逻辑信号输入端口1241接收的是数据读入电路11输入的高电平逻辑信号时,则第四选择单元124可以选通调用第四极小值输入端口1243,接收极值寄存器电路14中存储的一个极小值比较结果,并将接收到的这一个极小值比较结果通过第四数据输出端口1244输入至复用比较树电路12中,作为复用比较树电路12进行比较运算的第四数据。否则,若第二逻辑信号输入端口1241接收的是标量寄存器阵列112输入的低电平逻辑信号时,则第四选择单元124可以选通第四数据输入端口1242,接收数据读入电路11中存储的任意一个数据,并将接收到的这一个数据通过第四数据输出端口1244输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第四数据。
本实施例提供的一种数据选择装置,通过选择电路可以选通复用比较树电路接收四个不同的数据,并通过复用比较树电路对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
另一实施例提供的另一种复用比较树电路,所述复用比较树电路13包括:第一级复用比较器131和第二级复用比较器132,所述第一级复用比较器131用于对两个数据进行比较得到极值,所述第二级复用比较器132用于对两个数据进行比较得到极值。
具体的,第一级复用比较器131和第二级复用比较器132均可以对多个数据进行循环比较运算。可选的,第一级复用比较器131可以包括多个复用比较器,第二级复用比较器132也可以包括多个复用比较器,其中,第一级复用比较器131和第二级复用比较器132中的每一个复用比较器接收到功能选择模式信号相同。可选的,第一级复用比较器131可以对选择电路12选通后的所有数据进行第一层循环比较运算,每一次比较运算得到的结果可以输入至极值寄存器电路14中存储,其中,极值寄存器电路14可以对每一层循环比较结果进行对应的编号。示例性的,第一层循环比较结果的编号对应为1,第二层循环比较结果的编号对应为2,依次编号,直到最后一层(即M层)循环比较结果的编号对应为M。另外,在第一层循环比较运算的每一次比较运算中,第一级复用比较器141可以接收第一选择单元121和第二选择单元122选通后的两个数据进行比较,得到两个数据中的极大值和极小值,并将极大值和极小值存储至极值寄存器电路14中,如果第一选择单元121和/或第二选择单元122选通的数据是通过标量寄存器阵列112输入的,则标量寄存器阵列112中存储的这一个或两个数据的存储区间会自动被清空,下一次比较运算的过程和上一次比较运算的过程相同,在此不再赘述。当标量寄存器阵列112中存储的数据全部被选通为止,第一级复用比较器131会结束第一层循环比较运算。可选的,复用比较树电路13每一层循环比较运算得到的极大值比较结果对应的层数,可以等于当前第一级复用比较器131和第二级复用比较器132进行循环比较运算的总层数之和。可选的,若第二级复用比较器132进行第一层循环比较运算,则该层循环比较运算得到的循环比较结果为复用比较树电路13第二层的循环比较结果。可选的,复用比较树电路13每一层循环比较得到的极小值比较结果对应的层数,可以等于当前第一级复用比较器131和第二级复用比较器132进行循环比较运算的总层数之和。
需要说明的是,在第一层循环比较运算的每一次比较运算后,第一级复用比较器131可以得到一个极值存放至极值寄存器电路14中,并且从第一次比较运算开始,第一级复用比较器131连续两次比较运算,可以向极值寄存器电路13连续输入两个极值,这两个极值均可以称为第一层循环比较结果,对应编号均为1,此时,第二级复用比较器132可以读取极值寄存器电路14中存储的这两个第一层循环比较结果进行第二层循环比较运算,也就是说,只要极值寄存器电路14存储的第一层循环比较结果为两个数据时,第二级复用比较器132可以自动读取极值寄存器电路14中存储的这两个第一层循环比较结果进行第二层循环比较运算。可选的,第二级复用比较器132处理的第一层循环比较结果均可以称为第二层循环比较运算,第二层循环比较运算得到的结果可以称为第二层循环比较结果,第二层循环比较结果依然可以存储至极值寄存器电路14中,依次进行多层循环比较运算,下一层循环比较运算可以对上一层循环比较结果进行处理,但是,从第二层循环比较运算开始,需要每一层循环比较运算结束后,该层运算的全部结果存储至极值寄存器电路14中才可以通过第一级复用比较器131或第二级复用比较器132进行下一层循环比较运算,直到某一层循环比较运算的结果为一个数据为止,多层循环比较运算结束。可选的,第一级复用比较器131和第二级复用比较器132可以轮换进行多层循环比较运算,其中,第一级复用比较器131可以进行偶数层循环比较运算,第二级复用比较器132可以进行奇数层循环比较运算。
本实施例提供的一种数据选择装置,复用比较树电路能够对选通的多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第一级复用比较器131,该第一级复用比较器131包括:第一复用比较器1311和第二复用比较器1312,所述复用比较器1311用于对所述选择电路12选通后的第一数据进行循环比较运算得到极大值向量和极小值向量,所述第二复用比较器1312用于对所述选择电路12选通后的第二数据进行循环比较运算得到极大值向量和极小值向量。
具体的,第一复用比较器1311和第二复用比较器1312均可以进行第一层循环比较运算,每一次均可以对两个数据进行比较运算,得到两个数据中的极大值和极小值。需要说明的是,若数据读入电路11接收到的数据个数为N,且N为偶数(4的倍数),则第一复用比较器1311和第二复用比较器1312可以进行第一层循环比较运算的次数均等于N/4,若N为奇数,则第一复用比较器1311和第二复用比较器1312可以进行循环比较运算的次数均等于round(N/4),round(*)可以表示对实数取整。
本实施例提供的一种数据选择装置,第一复用比较器和第二复用比较器能够对选通后的数据进行第一层循环比较运算得到极值,再通过第一复用比较器或第二级复用比较器进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第一复用比较器1311,该第一复用比较器1311包括:功能选择模式信号输入端口(Mode)1311a,第一数据输入端口1311b,第二数据输入端口1311c,极大值第一输出端口1311d和极小值第一输出端口1311e,所述功能选择模式信号输入端口(Mode)1311a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输入端口1311b用于接收选择电路12输入的第一数据,所述第一数据输入端口1311c用于接收选择电路12输入的第一数据,所述极大值第一输出端口1311d用于输出比较运算得到的极大值,所述极小值第一输出端口1311e用于输出比较运算得到的极小值。
具体的,每一次第一复用比较器1311可以对第一数据输入端口1311b和第二数据输入端口1311c,接收到的选择电路12输入的第一数据及第二数据进行比较运算,将得到的极大值通过极大值第一输出端口1311d输出存储至极值寄存器电路中,将得到的极小值通过极小值第一输出端口1311e输出存储至极值寄存器电路中。
本实施例提供的一种数据选择装置,第一复用比较器和第二复用比较器能够对选通后的数据进行第一层循环比较运算得到极值,再通过第一复用比较器或第二级复用比较器进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第二复用比较器1312,该第二复用比较器1312包括:功能选择模式信号输入端口(Mode)1312a,第三数据输入端口1312b,第四数据输入端口1312c,极大值第二输出端口1312d和极小值第二输出端口1312e,所述功能选择模式信号输入端口(Mode)1312a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第三数据输入端口1312b用于接收选择电路12输入的第三数据,所述第四数据输入端口1312c用于接收选择电路12输入的第四数据,所述极大值第二输出端口1312d用于输出比较运算得到的极大值,所述极小值第二输出端口1312e用于输出比较运算得到的极小值。
具体的,每一次第二复用比较器1312可以对第二数据输入端口1312b和第二数据输入端口1312c,接收到的选择电路12输入的第二数据进行比较运算,将得到的极大值通过极大值第二输出端口1312d输出存储至极值寄存器电路中,将得到的极小值通过极小值第二输出端口1312e输出存储至极值寄存器电路中。
本实施例提供的一种数据选择装置,第一复用比较器和第二复用比较器能够对选通后的数据进行第一层循环比较运算得到极值,再通过第一复用比较器或第二级复用比较器进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第二级复用比较器132,该第二级复用比较器132包括:第三复用比较器1321和第四复用比较器1322,所述第三复用比较器1321用于对两个数据进行比较得到极大值,所述第四复用比较器1322用于对两个浮点数进行比较得到极小值。
需要说明的是,第三复用比较器1321和第四复用比较器1322均可以进行多层循环比较运算,每一层循环比较运算的比较结果均可以存储至极值寄存器电路14中,极值寄存器电路14对每一层循环比较结果均有对应编号。可选的,第三复用比较器1321进行循环比较运算的层数,与第四复用比较器1322进行循环比较运算的层数可以等于,还可以不相等,另外,每一层比较运算的总次数可以相等。
本实施例提供的一种数据选择装置,复用比较树电路能够对选通的多个数据进行多层循环比较运算得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第三复用比较器1321,该第三复用比较器1321包括:功能选择模式信号输入端口(Mode)1321a,调用极大值第一输入端口1321b,调用极大值第二输入端口1321c和极大值第三输出端口1321d,所述功能选择模式信号输入端口(Mode)1321a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述调用极大值第一输入端口1321b用于读取极值寄存器电路14中存储的第一极大值比较结果,所述调用极大值第二输入端口1321c用于读取极值寄存器电路14中存储的第二极大值比较结果,所述极大值第三输出端口1321d用于输出比较运算得到的极大值。
具体的,每一次第三复用比较器1321可以通过调用极大值第一输入端口1321b和调用极大值第二输入端口1321c,读取极值存储器电路14中存储的两个极大值比较结果进行比较运算,将得到的极大值通过极大值第三输出端口1321d输出存储至极值寄存器电路14中。
本实施例提供的一种数据选择装置,通过第三级复用比较器进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述第四复用比较器1322,该第四复用比较器1322包括:功能选择模式信号输入端口(Mode)1322a,调用极小值第一输入端口1322b,调用极小值第二输入端口1322c和极小值第四输出端口1322d,所述功能选择模式信号输入端口(Mode)1322a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述调用极小值第一输入端口1322b用于读取极值寄存器电路14中存储的第一极小值比较结果,所述调用极小值第二输入端口1322c用于读取极值寄存器电路14中存储的第二极小值比较结果,所述极小值第三输出端口1322d用于输出比较运算得到的极小值。
具体的,每一次第四复用比较器1322可以通过调用极小值第一输入端口1322b和调用极小值第二输入端口1322c,读取极值存储器电路14中存储的两个极小值比较结果进行比较运算,将得到的极小值通过极小值第四输出端口1322d输出存储至极值寄存器电路14中。
可选的,上述第一复用比较器1311,第二复用比较器1312,第三复用比较器1321和第四复用比较器1322的电路结构均可以相等,电路结构图如图5所示。
本实施例提供的一种数据选择装置,通过第四级复用比较器进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述极值寄存器电路14,该极值寄存器电路14包括:极大值寄存器堆141和极小值寄存器堆142,所述极大值寄存器堆141用于存储多层循环比较运算得到的极大值,所述极小值寄存器堆142用于存储多层循环比较运算得到的极小值。
需要说明的是,极大值寄存器堆141可以存储第一级复用比较器131每一层循环比较运算得到的极大值,还可以存储第二级复用比较器132每一层循环比较运算得到的极大值。可选的,极大值寄存器堆141内的存储区间数量可以根据用户需要设定,另外,极大值寄存器堆141内可以存储多层循环比较运算的结果。示例性的,若数据读入电路11接收到的数据个数为N,则循环比较运算的总层数可以等于log2N,极大值寄存器堆141内可以存储log2N层循环比较运算的结果。
可选的,极小值寄存器堆141可以存储第一级复用比较器131每一次比较运算得到的极小值,还可以存储第二级复用比较器132每一层循环比较运算得到的极小值。可选的,极小值寄存器堆142内的存储区间数量可以根据用户需要设定,另外,极小值寄存器堆142内可以存储多层循环比较运算的结果。示例性的,若数据读入电路11接收到的数据个数为N,则循环比较运算的总层数可以等于log2N,极小值寄存器堆142内可以存储log2N层循环比较运算的结果。
本实施例提供的一种数据选择装置,数据选择装置可以通过第一级复用比较器和第二级复用比较器对多个数据进行多层循环比较得到最终的极值,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,向量极值数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述极大值寄存器堆141,该极大值寄存器堆141包括:剩余数据输入端口1410,调用极大值第一输出端口1411,调用极大值第二输出端口1412,极大值第三输入端口1413,调用第一极大值输出端口1414,调用第二极大值输出端口1415,极大值第一输入端口1416a,极大值第二输入端口1416b,极大值输出端口1417,比较层级输出端口1418和判断结果输入端口1419;其中,所述剩余数据输入端口1410用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述调用极大值第一输出端口1411用于输出第一极大值比较结果,所述调用极大值第二输出端口1412用于输出第二极大值比较结果,所述极大值第三输入端口1413用于接收比较运算得到的极大值,所述调用第一极大值输出端口1414用于输出一个极大值比较结果,所述调用第二极大值输出端口1415用于输出第二极大值比较结果,所述极大值第一输入端口1416a用于接收比较运算得到的第一极大值,所述极大值第二输入端口1416b用于接收比较运算得到的第二极大值,所述极大值输出端口1417用于输出多层循环比较运算得到的最终极大值,所述比较层级输出端口1418用于输出当前循环比较结果对应的层数,所述判断结果输入端口1419用于接收当前极大值比较结果的层数与复用比较树电路13需要进行循环比较运算的总层数的比较结果。
具体的,当第三复用比较器133进行循环比较运算时,第三复用比较器133可以通过调用极大值第一输出端口1411和调用极大值第二输出端口1412分别接收上一层循环比较运算得到的两个不同比较结果,每一次比较运算结束后,极大值第三输入端口1413可以接收第三复用比较器133输出的极大值结果,当多层循环比较运算结束后,通过极大值输出端口1417输出最终的极大值。可选的,比较层级输出端口1418可以输出当前极大值寄存器堆141中存储的极大值比较结果对应的层数。若当前极大值寄存器堆141中存储的极大值比较结果对应的层数,等于复用比较树电路13需要进行循环比较运算的总层数时,则判断结果输入端口1419可以接收到结束判断电路15输入的高电平逻辑信号,此时,极大值输出端口1417可以输出最终的比较结果。否则,判断结果输入端口1419可以接收到结束判断电路15输入的低电平逻辑信号,此时,复用比较树电路13还需要继续进行比较运算,直到判断结果输入端口1419接收到高电平逻辑信号为止,多层循环比较运算结束。
需要说明的是,第一层循环比较运算结束后,若标量寄存器阵列112中还存储有一个未处理的数据时,极大值寄存器堆141可以通过剩余数据输入端口1410接收剩余的该数据,并通过复用比较树电路13对该数据和第一层循环比较运算结果进行多层循环比较运算。可选的,极大值第一输入端口1416a可以接收第一复用比较器1311比较运算得到的第一极大值,所述极大值第二输入端口1416b可以接收第二复用比较器1312比较运算得到的第二极大值。
本实施例提供的一种数据选择装置,数据选择装置可以通过极值寄存器电路存储每一层循环比较运算得到的比较结果,以便下一层循环比较运算时直接调用上一层比较运算的结果,从而对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述极小值寄存器堆142,该极小值寄存器堆142包括:剩余数据输入端口1420,调用极小值第一输出端口1421,调用极小值第二输出端口1422,极小值第四输入端口1423,调用第三极小值输出端口1424,调用第四极小值输出端口1425,极小值第一输入端口1426a,极小值第二输入端口1426b,极小值输出端口1427,比较层级输出端口1428和判断结果输入端口1429;其中,所述剩余数据输入端口1420用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述调用极小值第一输出端口1421用于输出第三极小值比较结果,所述调用极小值第二输出端口1422用于输出第四极小值比较结果,所述极小值第四输入端口1423用于接收比较运算得到的极小值,所述调用第三极小值输出端口1424用于输出第三极小值比较结果,所述调用第四极小值输出端口1425用于输出第四极小值比较结果,所述极小值第一输入端口1426a用于接收比较运算得到的第一极小值,所述极小值第二输入端口1426b用于接收比较运算得到的第二极小值,所述极小值输出端口1427用于输出多层循环比较运算得到的最终极小值,所述比较层级输出端口1428用于输出当前循环比较结果对应的层数,所述判断结果输入端口1429用于接收当前极小值比较结果的层数与复用比较树电路13需要进行循环比较运算的总层数的比较结果。
具体的,当第四复用比较器134进行循环比较运算时,第四复用比较器134可以通过调用极小值第一输出端口1421和调用极小值第二输出端口1422分别接收上一层循环比较运算得到的两个不同比较结果,每一次比较运算结束后,极小值第四输入端口1423可以接收第四复用比较器134输出的极小值结果,当多层循环比较运算结束后,通过极小值输出端口1427输出最终的极小值。可选的,比较层级输出端口1428可以输出当前极小值寄存器堆142中存储的极小值比较结果对应的层数。若当前极小值寄存器堆142中存储的极小值比较结果对应的层数,等于复用比较树电路13需要进行循环比较运算的总层数时,则判断结果输入端口1429可以接收到结束判断电路15输入的高电平逻辑信号,此时,极大值输出端口1427可以输出最终的比较结果。否则,判断结果输入端口1429可以接收到结束判断电路15输入的低电平逻辑信号,此时,复用比较树电路13还需要继续进行比较运算,直到判断结果输入端口1429接收到高电平逻辑信号为止,多层循环比较运算结束。
需要说明的是,第一层循环比较运算结束后,若标量寄存器阵列112中还存储有一个未处理的数据时,极大值寄存器堆141可以通过剩余数据输入端口1420接收剩余的该数据,并通过复用比较树电路13对该数据和第一层循环比较运算结果进行多层循环比较运算。可选的,极小值第一输入端口1426a可以接收第一复用比较器1311比较运算得到的第一极小值,所述极小值第二输入端口1426b可以接收第二复用比较器1312比较运算得到的第二极小值。
本实施例提供的一种数据选择装置,数据选择装置可以通过极值寄存器电路存储每一层循环比较运算得到的比较结果,以便下一层循环比较运算时直接调用上一层比较运算的结果,从而对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述结束判断电路15,该结束判断电路15包括:判断单元151,所述判断单元151用于判断当前极值比较结果的层数,与得到最终极值所述复用比较树电路13需要进行循环比较运算的总层数的大小。
需要说明的是,若当前极值比较结果的层数,与得到最终极值复用比较树电路13需要进行循环比较运算的总层数相等时,判断单元141的判断结果可以为是,结束多层循环比较运算,输出多个数据中的极值,此时,复用比较树电路13不需要继续进行循环比较运算。可选的,上述极值比较结果可以为极大值比较结果,还可以为极小值比较结果。
本实施例提供的一种数据选择装置,数据选择装置可以通过第一级复用比较器和第二级复用比较器对多个数据进行多层循环比较处理,通过判断单元判断循环比较运算是否结束,如果判断单元的判断结果为是,则结束循环比较运算输出运算结果,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例中,继续如图4所示数据选择装置的具体结构示意图,其中,数据选择装置包括所述判断单元151,该判断单元151包括:比较层级输入端口1511和判断结果输出端口1512,所述比较层级输入端口1511用于接收所述极值寄存器电路14当前得到的循环比较结果对应的层数,所述判断结果输出端口1512用于输出当前极值比较结果对应的层数,与复用比较树电路13需要进行循环比较运算的总层数的比较结果。
需要说明的是,若当前极值比较结果对应的层数等于复用比较树电路13需要进行循环比较运算总的层数时,判断单元151可以通过判断结果输出端口1512向极大值寄存器堆141和极小值寄存器堆142输入高电平信号,指示极大值寄存器堆141和极小值寄存器堆142分别输出运算结果。
本实施例提供的一种数据选择装置,数据选择装置可以通过第一级复用比较器和第二级复用比较器对多个数据进行多层循环比较处理,通过判断单元判断多层循环比较运算是否结束,如果判断单元的判断结果为是,则结束多层循环比较运算输出运算结果,从而可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
图6为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图3所示的数据选择装置进行处理,本实施例涉及的是多个数据进行多层循环比较运算选取极值的过程。如图6所示,该方法包括:
S101、接收待处理的数据。
具体的,数据选择装置可以通过数据读入电路接收N个待处理的数据,并且数据选择装置还可以通过复用比较树电路接收不同功能选择模式信号。可选的,上述数据可以为浮点数。可选的,数据读入电路接收的待处理的数据个数N可以大于2,即数据读入电路读入待处理的数据的个数N可以大于2。
需要说明的是,若复用比较树电路接收不同功能选择模式信号,则表示复用比较树电路可以对不同对应位宽的数据进行比较运算,同时,不同功能选择模式信号与复用比较树电路可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。示例性的,如果复用比较树电路可以接收三种功能选择模式信号,分别为Mode=0,Mode=1,Mode=2,则Mode=0可以表征复用比较树电路能够对16位浮点数进行处理,Mode=1可以表征复用比较树电路能够对32位浮点数进行处理,Mode=2可以表征复用比较树电路能够对64位浮点数进行处理,另外,Mode=0也可以表征为复用比较树电路能够对32位浮点数进行处理,Mode=1也可以表征为复用比较树电路能够对64位浮点数进行处理,Mode=2也可以表征为复用比较树电路能够对16位浮点数进行处理。
需要说明的是,如果数据读入电路接收到的待处理的数据的位宽,与复用比较树电路接收到的功能选择模式信号对应可处理的数据位宽不相等,则复用比较树电路会根据复用比较树电路当前可处理的数据位宽,将接收到的待处理的数据分成,与复用比较树电路当前可处理的数据位宽相等的多组数据进行并行处理,其中,数据读入电路接收到的待处理的数据的位宽可以大于复用比较树电路当前可处理的数据位宽。可选的,上述并行处理可以表征为将分成的每一组待处理的数据同时进行处理。如果数据读入电路接收到的待处理的数据的位宽,与复用比较树电路接收到的功能选择模式信号对应可处理的数据位宽相等,则复用比较树电路可以直接对接收到的待处理的数据进行处理。
S102、通过复用比较树电路对待处理的所述数据进行多层循环比较运算。
需要说明的是,每一次比较运算时,复用比较树电路可以对两个数据进行比较,得到两个数据中的极值,并且每一次比较运算时,复用比较树电路可以接收数据读入电路输入的两个待处理的数据。
S103、通过结束判断电路判断是否满足结束所述多层循环比较运算的条件。
具体的,每一次比较运算结束后,可以通过结束判断电路判断当前是否满足结束多层循环比较运算的条件。
S104、若满足结束所述多层循环比较运算的条件,则输出向量极值。
具体的,如果结束判断电路判断出本次比较运算结束后,可以结束多层循环比较运算,则停止比较运算,并通过极值寄存器电路输出最终的向量极值。可选的,上述向量极值可以表征为数据读入电路接收到的所有待处理的数据中的极值。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的数据输入到复用比较树电路,并通过复用比较树电路进行循环比较待处理的所述数据,通过结束判断电路判断是否满足结束多层循环比较运算的条件,若满足结束比较运算的条件,则输出向量极值,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
图7为另一实施例提供的数据处理方法的流程示意图,本实施例涉及的是在接收待处理的数据的步骤之后,该方法还包括:
S105、通过数据读取单元接收待处理的所述数据的个数N和寄存器中多个存储区间的首地址。
S106、根据寄存器中多个存储区间的所述首地址和所述数据个数N读入所述数据,并将所述数据存储至标量寄存器阵列中。
具体的,标量寄存器阵列可以根据寄存器中多个存储区间的首地址,依次将数据读取单元读入的待处理数据存放至标量寄存器阵列中的多个存储区间中。可选的,每一次所述标量寄存器阵列可以存储一个待处理的数据。可选的,每一个存储区间可以存放一个待处理的数据。可选的,存储区间的数量可以等于接收到的待处理的数据个数N,还可以大于接收到的待处理的数据个数N。
示例性的,如果待处理数据的首地址对应的存储区间为A[0],数据读入电路读入的是三个16位浮点数,分别为1011110000000100→1,1011110011000100→2,1011110001010100→3,则标量寄存器阵列可以有三个寄存器存储区间存放数据,当第1个数据存放至存储区间A[0]对应的首地址中时,则第2个数据可以存放至下一个存储区间(即A[1])对应的存储地址中,第3个浮点数可以继续存放至下一个存储区间(即A[2])对应的存储地址中。
本实施例提供的一种数据处理方法,通过数据读取单元接收待处理的数据存储区间的首地址待处理的数据的个数,通过所述标量寄存器阵列接收数据读取单元输入的待处理数据,所述标量寄存器阵列按照存储区间的首地址依次将接收到的待处理的数据存放至存储区间中,以便后续循环比较运算时向复用比较树电路输入比较运算的数据,每一次比较运算标量寄存器阵列可以输出两个数据进行比较运算,不断循环,直到结束多层循环比较,该方法可以有效减少运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
图8为另一实施例提供的数据处理方法的流程示意图,上述S102中通过复用比较树电路对待处理的所述数据进行多层循环比较运算,包括:
S1021、通过第一级复用比较器对待处理的所述数据进行第一层循环比较运算,得到第一层极值比较结果。
需要说明的是,数据选择装置可以将标量寄存器阵列中存储的待处理浮点数输入到第一级复用比较器中,第一层每一次比较运算时,标量寄存器阵列可以向第一级复用比较器输入任意两个不同的待处理的数据,并且该层下一次比较运算时,标量寄存器阵列可以向第一级复用比较器输入另外两个不同的待处理的浮点数。可选的,第一级复用比较器可以对两个待处理的数据进行比较运算,得到两个数据中的极大值和极小值。可选的,第一层循环比较运算的总次数可以等于数据读入电路接收到的待处理数据个数的1/2。可选的,上述第一级复用比较器对所有待处理的数据进行循环比较运算可以称为第一层比较运算,第一层比较运算后,可以得到第一层极值比较结果,该第一层极值比较结果可以包括第一层极大值比较结果和第一层极小值比较结果。可选的,第一级复用比较器可以进行第一层循环比较运算。
S1022、通过第二级复用比较器对所述第一层极值比较结果进行多层循环比较运算。
具体的,通过第二级复用比较器对第一层极值比较结果进行第二层循环比较运算得到的比较结果,可以称为第二层极值比较结果,然后通过第二级复用比较器依次循环运算,下一层循环比较运算对上一层极值比较结果进行比较运算,直到最后一层极值比较结果为一个数据为止,多层循环比较运算结束,得到最终的极值比较结果。其中,每一层循环比较运算的总次数可以等于上一层极值比较结果中数据个数的1/2。可选的,第二级复用比较器进行循环比较运算总层数加一可以等于复用比较树电路进行循环比较运算的总层数。
本实施例提供的一种数据处理方法,通过数据读取单元接收待处理的数据的个数,通过所述标量寄存器阵列接收数据读取单元输入的待处理数据,所述标量寄存器阵列按照存储区间的首地址依次将接收到的待处理的数据存放至存储区间中,以便后续循环比较运算时向复用比较器输入比较运算的数据,每一次比较运算标量寄存器阵列可以输出两个数据进行比较运算,不断循环,直到结束循环比较,该方法可以有效减少运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
图9为另一实施例提供的数据处理方法的流程示意图,上述S103中通过结束判断电路判断是否满足结束所述多层循环比较运算的条件,包括:
S1031、通过所述结束判断电路获取所述第二级复用比较器当前比较运算得到的极值比较结果对应的层数。
具体的,通过第二级复用比较器进行每一层循环比较运算,得到的极值比较运算结果都有对应的编号。示例性的,第二层极值比较运算得到的比较运算结果对应的编号为2,第三层比较运算得到的比较运算结果对应的编号为3,依次,最后一层比较运算得到的比较运算结果对应的编号可以为M,若数据读入电路接收到的数据的个数为N,则M可以等于log2N。
S1032、根据当前所述极值比较结果的层数,判断所述多层循环比较运算是否满足结束所述多层循环比较运算的条件。
具体的,结束判断电路中的判断单元可以根据当前第二级复用比较器循环比较运算得到的极值比较结果对应的层数,与得到最终极值复用比较树电路需要进行循环比较运算层数的大小关系,判断多层循环比较运算是否满足结束多层循环比较运算的条件。可选的,结束多层循环比较运算的条件可以为当前第二级复用比较器进行循环比较运算得到的极值比较结果对应的层数,等于得到最终极值复用比较树电路需要进行循环比较运算的层数。
本实施例提供的一种数据处理方法,判断单元根据当前第二级复用比较器比较运算得到的极值比较结果对应的层数,与得到最终极值复用比较树电路需要进行循环比较运算的层数的大小关系,判断多层循环比较运算是否满足结束多层循环比较运算的条件,若满足,则判断单元可以向极值寄存器电路输入高电平逻辑信号,结束多层循环比较运算得到运算结果,该方法可以有效减少运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
另一实施例提供的数据处理方法,在上述S103通过结束判断电路判断是否满足结束所述多层循环比较运算的条件之后,该方法还包括:若否,则继续通过所述第二级复用比较器对上一层循环比较运算得到的极值比较结果进行比较运算,直到最后一层循环比较运算的极值比较结果为一个数据为止,结束运算输出向量极值。
具体的,如果结束判断电路判断出第二级复用比较器本层循环比较运算结束后,不满足结束多层循环比较运算的条件,则数据选择装置可以通过第二级复用比较器对上一层比较运算得到的极值比较结果继续进行循环比较运算。可选的,继续进行循环比较运算的层数可以等于1,还可以等于其它正整数。
本实施例提供的一种数据处理方法,判断单元根据第二级复用比较器比较运算得到的极值比较结果对应的层数,与得到最终极值复用比较树电路需要进行循环比较运算的层数的大小关系,判断多层循环比较运算是否满足结束循环比较运算的条件,若不满足,则判断单元可以通过第二级复用比较器对上一层比较运算得到的极值比较结果继续进行循环比较运算,直到满足结束多层循环比较运算的条件为止,结束运算输出运算结果,该方法可以有效减少运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
另一实施例提供的数据处理方法的流程示意图,上述S104中若满足结束所述多层循环比较运算的条件,则输出向量极值,包括:通过极值寄存器电路接收所述判断单元输入的逻辑判断信号,并根据所述逻辑判断信号输出运算结果。
具体的,极值寄存器电路可以接收判断单元输入的高电平逻辑判断信号,还可以接收判断单元输入的低电平逻辑判断信号。若极值寄存器电路接收到的是低电平逻辑判断信号,则可以表示数据选择装置需要继续通过第二复用比较器对上一层比较结果进行比较运算。若极值寄存器电路接收到的是高电平逻辑判断信号,则可以结束运算,输出最终的比较运算结果。
本实施例提供的一种数据处理方法,接收所述判断单元输入的高电平逻辑判断信号,所述极值寄存器电路根据所述高电平逻辑判断信号输出运算结果,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
图10为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图2所示的数据选择装置进行处理,本实施例涉及的是多个数据进行多层循环比较运算选取极值的过程。如图10所示,该方法包括:
S201、接收待处理的数据。
S202、通过选择电路对待处理的所述数据进行选通,将选通后的比较数据输入至复用比较树电路。
具体的,循环比较运算时,选择电路可以对待处理的数据进行选通,选通的数据可以为两对,一对选通的数据可以是数据读入电路中存储的数据,另一对选通的数据可以是极值寄存器电路中存储的数据。若选择电路接收到数据读入电路输入的高电平逻辑信号时,选择电路可以对极值寄存器电路中存储的数据选通,将极值寄存器电路中存储的任意两个数据输入至复用比较树电路,否则,选择电路可以对数据读入电路中存储的数据选通,将数据读入电路中存储的任意两个数据输入至复用比较树电路。
S203、通过复用比较树电路对选通后的所述比较数据进行多层循环比较运算。
需要说明的是,每一次比较运算时,复用比较树电路可以对两个比较数据进行比较,得到两个比较数据中的极值,并且每一次比较运算时,复用比较树电路可以接收选择电路输入的两个比较数据。可选的,上述比较数据可以为待处理的数据,还可以为上一层极值比较结果中的数据。
S204、通过结束判断电路判断是否满足结束所述多层循环比较运算的条件。
具体的,每一次比较运算结束后,可以通过结束判断电路判断当前是否满足结束多层循环比较运算的条件。
S205、若满足结束所述多层循环比较运算的条件,则输出向量极值。
具体的,如果结束判断电路判断出本次比较运算结束后,可以结束多层循环比较运算,则停止比较运算,通过极值寄存器电路输出最终的向量极值。可选的,上述向量极值可以表征为数据读入电路接收到的所有待处理的浮点数中的极值。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的数据通过选择电路输入到复用比较树电路,并通过复用比较树电路对比较数据进行循环比较处理,通过结束判断电路判断是否满足结束多层循环比较运算的条件,若满足结束比较运算的条件,则输出向量极值,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S202中通过选择电路对待处理的所述数据进行选通,将选通后的比较数据输入至复用比较树电路,包括:通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的所述数据进行选通,将选通后的比较数据输入至所述复用比较树电路。
具体的,比较运算时,第一选择单元,第二选择单元,第三选择单元和第四选择单元可以分别对待处理的数据进行选通,每一个选择单元选通的数据可以为两对,一对选通的数据可以是数据读入电路中存储的数据,另一对选通的数据可以是极值寄存器电路中存储的数据。若选择电路接收到数据读入电路输入的高电平逻辑信号时,选择电路可以对极值寄存器电路中存储的数据选通,将极值寄存器电路中存储的任意两个数据输入至复用比较树电路,否则,选择电路可以对数据读入电路中存储的数据选通,将数据读入电路中存储的任意两个数据输入至复用比较树电路。
本实施例提供的一种数据处理方法,通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的数据进行选通,将选通后的比较数据输入至复用比较树电路可以进行多层循环比较运算,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例,图11为另一实施例提供的数据处理方法,所述通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的所述数据进行选通,将选通后的比较数据输入至所述复用比较树电路,包括:
S301、通过第一选择单元选通得到第一比较数据,并将所述第一比较数据输入至第一复用比较器。
具体的,通过第一选择单元可以选通第一比较数据,第一比较数据可以为极值寄存器电路中存储的数据,还可以为数据读入电路中存储的数据。
S302、通过第二选择单元选通得到第二比较数据,并将所述第二比较数据输入至第一复用比较器。
具体的,通过第二选择单元可以选通第二比较数据,第二比较数据可以为极值寄存器电路中存储的数据,还可以为数据读入电路中存储的数据。
S303、通过第三选择单元选通得到第三比较数据,并将所述第三比较数据输入至第二复用比较器。
具体的,通过第三选择单元可以选通第三比较数据,第三比较数据可以为极值寄存器电路中存储的数据,还可以为数据读入电路中存储的数据。
S304、通过第四选择单元选通得到第四比较数据,并将所述第四比较数据输入至第二复用比较器。
具体的,通过第四选择单元可以选通第四比较数据,第四比较数据可以为极值寄存器电路中存储的数据,还可以为数据读入电路中存储的数据。需要说明的是,选通后的比较数据只需通过第一复用比较器或第二复用比较器进行循环比较运算,不需要通过第三复用比较器或第四复用比较器进行循环比较运算。
本实施例提供的一种数据处理方法,通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的数据进行选通,将选通后的比较数据输入至复用比较树电路可以进行多层循环比较运算,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
在其中一个实施例,图12为另一实施例提供的数据处理方法,上述S203中通过复用比较树电路对选通后的所述比较数据进行多层循环比较运算,包括:
S2031、通过第一复用比较器对所述第一比较数据和所述第二比较数据进行第一层循环比较运算,得到第一层极值比较结果。
需要说明的是,第一复用比较器可以对选通后接收到的第一比较数据和第二比较数据进行第一层循环比较运算,得到第一层极值比较结果。可选的,上述第一层极值比较结果可以包括第一层极大值比较结果,还可以包括第一层极小值比较结果。
S2032、通过第二复用比较器对所述第三比较数据和所述第四比较数据进行第一层循环比较运算,得到第一层极值比较结果。
需要说明的是,第二复用比较器可以对选通后接收到的第三比较数据和第四比较数据进行第一层循环比较运算。
S2033、通过第三复用比较器和第四复用比较器对第一层极值比较结果进行第二层循环比较运算,得到第二层极值比较结果。
具体的,通过第三复用比较器可以对第一层极大值比较结果进行第二层循环比较运算,得到第二层极大值比较结果,通过第四复用比较器可以对第一层极小值比较结果进行第二层循环比较运算,得到第二层极小值比较结果。
S2034、通过第一复用比较器和第二复用比较器,与第三复用比较器和第四复用比较器轮换对上一层极值比较结果进行多层循环比较运算。
具体的,通过第一复用比较器和第二复用比较器可以对比较数据可以进行第一层循环比较运算,通过第三复用比较器和第四复用比较器可以对第一层循环比较运算得到的第一层极值比较结果进行第二层循环比较运算,然后通过第一复用比较器和第二复用比较器对第二层循环比较运算得到的第二层极值比较结果进行第三层循环比较运算,之后继续通过第三复用比较器和第四复用比较器对第三层循环比较运算,得到的第三层极值比较结果进行第四层循环比较运算,依次轮换通过第一复用比较器和第二复用比较器/第三复用比较器和第四复用比较器两级复用比较器对上一层极值比较结果进行多层循环比较运算。
本实施例提供的一种数据处理方法,通过第一复用比较器和第二复用比较器/第三复用比较器和第四复用比较器两级复用比较器不断进行多层循环比较运算,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
另一实施例提供的数据处理方法,在上述S204通过结束判断电路判断是否满足结束所述多层循环比较运算的条件之后,该方法还包括:若否,则继续通过所述第一复用比较器与第二复用比较器,和第三复用比较器与第四复用比较器轮换对上一层极值比较结果进行多层循环比较运算。
具体的,如果结束判断电路判断出第一复用比较器与第二复用比较器,或第三复用比较器与第四复用比较器本层循环比较运算结束后,不满足结束多层循环比较运算的条件,则数据选择装置可以继续通过第一复用比较器与第二复用比较器,和第三复用比较器与第四复用比较器对上一层循环比较运算得到的极值比较结果继续进行循环比较运算。可选的,继续进行循环比较运算的层数可以等于1,还可以等于其它正整数。
本实施例提供的一种数据处理方法,通过第一复用比较器和第二复用比较器/第三复用比较器和第四复用比较器两级复用比较器不断进行多层循环比较运算,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及数据选择装置内部的延迟;另外,数据选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择装置占用AI芯片的面积。
为了便于本领域技术人员的理解,以数据选择装置可处理16位浮点数,数据选择装置接收的是N个32位浮点数为例介绍本发明提供的数据处理方法,具体的方法包括:
S401、通过数据读入电路接收浮点数的个数N和寄存器中多个存储区间的首地址A,并按照寄存器中多个存储区间的首地址A和浮点数的个数N读入N个浮点数(即A(a1,a2,...,aN)),存储至存储区间;
S402、数据读入电路按照寄存器中多个存储区间的首地址A,并将存储区间中存储的浮点数输入至第一级复用比较器;
S403、通过第一级复用比较器对N个浮点数进行循环比较运算,得到第一层极值比较结果,并将第一层极值比较结果存储至极值寄存器电路中。
S404、通过第二级复用比较器对极值寄存器电路中存储的极值比较结果,进行多层循环比较运算。
S405、多层循环比较结束后,通过极值寄存器电路输出运算结果。
需要说明的是,比较运算时,第一级复用比较器和第二级复用比较器可以对接收到的浮点数的高低16位对应数据进行循环比较(即将32位浮点数A可以分成高16位A1(a1[31:16],a2[31:16],...,aN[31:16])和低16位A2(a1[15:0],a2[15:0],...,aN[15:0]));
可选的,上述运算结果可以由向量A1和A2拼接得到,即Amax={max(A1),max(A2)},Amin={min(A1),min(A2)}。可选的,极大值Amax的高低16位数据可以为同一个32位浮点数的高低16位数据,还可以为不同32位浮点数的高低16位数据拼接而成。可选的,极小值Amin的高低16位数据可以为同一个32位浮点数的高低16位数据,还可以为不同32位浮点数的高低16位数据拼接而成。
另外,若第一级复用比较器和第二级复用比较器接收到的两个待处理浮点数为a和b,在比较运算过程中,第一级复用比较器和第二级复用比较器中每一个单元的判断结果输出端口均为两位有效,即高电平和低电平均有效,具体比较情况见表1:
表1
以上S201至S205的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
另外,若以数据选择装置可处理16位浮点数,数据选择装置接收的是N个16位浮点数为例介绍本发明提供的数据处理方法,具体的方法包括:
S501、通过数据读入电路接收浮点数的个数N寄存器中多个存储区间的首地址A,并按照寄存器中多个存储区间的首地址A和浮点数的个数N读入N个浮点数(即B(b1,b2,...,bN)),存储至存储区间;
S502、数据读入电路按照寄存器中多个存储区间的首地址A,并将存储区间中存储的浮点数输入至第一级复用比较器;
S503、通过第一级复用比较器对N个浮点数进行循环比较运算,得到第一层极值比较结果,并将第一层极值比较结果存储至极值寄存器电路中。
S504、通过第二级复用比较器对极值寄存器电路中存储的极值比较结果,进行多层循环比较运算。
S505、多层循环比较结束后,通过极值寄存器电路输出运算结果。
可选的,上述运算结果可以为Bmax={max(b1,b2,...,bN)},Bmin={min(b1,b2,...,bN)}。
另外,若第一级复用比较器和第二级复用比较器接收到的两个待处理浮点数为a和b,在比较运算过程中,第一级复用比较器和第二级复用比较器中每一个单元的判断结果输出端口均为一位有效,即高电平或低电平有效,若以低电平有效为例,具体比较情况见表2:
表2
以上S301至S305的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据选择装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据选择装置时,数据选择装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其他处理装置。机器学习运算装置与其他处理装置进行交互,共同完成用户指定的操作。图13为组合处理装置的示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其他处理装置间传输数据和控制指令。该机器学习运算装置从其他处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。
可选的,该结构如图14所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其他处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图15所示,图15提供了一种板卡,上述板卡除了包括上述芯片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.一种数据选择装置,其特征在于,所述数据选择装置包括:数据读入电路、选择电路、复用比较树电路、极值寄存器电路和结束判断电路,所述复用比较树电路包括第一级复用比较器和第二级复用比较器,所述第一级复用比较器包括第一复用比较器和第二复用比较器,所述第二级复用比较器包括第三复用比较器和第四复用比较器;其中,所述数据读入电路的输出端与所述选择电路的第一输入端连接,所述选择电路的输出端与所述复用比较树电路的第一输入端连接,所述复用比较树电路的输出端与所述极值寄存器电路的第一输入端连接,所述极值寄存器电路的输出端与所述选择电路的第二输入端连接,所述极值寄存器电路的第二输出端与所述结束判断电路的第二输入端连接,所述结束判断电路的输出端与所述极值寄存器电路的输入端连接,所述极值寄存器电路的第三输出端与所述复用比较树电路的第二输入端连接;
所述数据读入电路用于接收数据的个数N和寄存器中多个存储区间的首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述选择电路用于对数据读入电路读入的数据和极值寄存器电路中存储的数据进行选择,并输出循环比较运算时所述复用比较树电路需要接收的选择后的数据,所述复用比较树电路用于接收功能选择模式信号以及多层循环比较接收到的多个所述数据的大小,所述极值寄存器电路用于存储每一层循环比较得到的极值,所述结束判断电路用于判断多层循环比较处理是否结束,所述功能选择模式信号用于确定所述数据选择装置处理的数据的位宽;所述功能选择模式信号为多种,不同功能选择模式信号对应的复用比较树电路处理不同位宽的数据;所述选择后的数据包括第一数据和第二数据;所述极值包括极大值和极小值;
其中,所述第一复用比较器用于对所述第一数据进行循环比较运算得到极大值向量和极小值向量,所述第二复用比较器用于对所述第二数据进行循环比较运算得到极大值向量和极小值向量,所述第三复用比较器用于对所述极大值向量中的两两数据进行比较得到极大值,所述第四复用比较器用于对所述极小值向量中的两两数据进行比较得到极小值。
2.根据权利要求1所述的数据选择装置,其特征在于,所述复用比较树电路中包括功能选择模式信号输入端,用于接收输入的所述功能选择模式信号。
3.根据权利要求1所述的数据选择装置,其特征在于,所述数据读入电路包括:数据读取单元和标量寄存器阵列,所述数据读取单元的输出端与所述标量寄存器阵列的输入端连接;
所述数据读取单元用于接收所述数据的个数N和寄存器中多个存储区间的首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述标量寄存器阵列用于标量寄存器阵列用于根据所述寄存器中多个存储区间的地址存储所述数据读取单元读入的所述数据。
4.根据权利要求3所述的数据选择装置,其特征在于,所述数据读入电路中的所述数据读取单元包括:数据输入端口,数据个数和首地址输入端口和数据输出端口,所述数据输入端口用于根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述数据个数和首地址输入端口用于接收读入所述数据的个数N和寄存器中多个存储区间的所述首地址,所述数据输出端口用于输出读入的所述数据;
所述数据读入电路中的所述标量寄存器阵列包括:数据输入端口,第一数据输出端口,第二数据输出端口,第三数据输出端口,第四数据输出端口,剩余数据输出端口,第一逻辑信号输出端口和第二逻辑信号输出端口,所述数据输入端口用于接收N个所述数据,所述第一数据输出端口用于每一次比较运算时输出每一个寄存器存储区间内存储的所述数据,所述第二数据输出端口用于输出每一个寄存器存储区间内存储的所述数据,所述第三数据输出端口用于输出每一个寄存器存储区间内存储的所述数据,所述第四数据输出端口用于输出每一个寄存器存储区间内存储的所述数据,剩余数据输出端口用于输出比较运算时所述寄存器存储区间内存储的剩余所述数据,所述第一逻辑信号输出端口用于输出第一逻辑信号,所述第二逻辑信号输出端口用于输出第二逻辑信号。
5.根据权利要求1所述的数据选择装置,其特征在于,所述选择电路包括:第一选择单元,第二选择单元,第三选择单元和第四选择单元,所述第一选择单元用于选通循环比较运算复用比较树电路接收的第一数据,所述第二选择单元用于选通循环比较运算复用比较树电路接收的第二数据,所述第三选择单元用于选通循环比较运算复用比较树电路接收的第三数据,所述第四选择单元用于选通循环比较运算复用比较树电路接收的第四数据;
其中,所述第一选择单元包括:第一逻辑信号输入端口,第一数据输入端口,调用第一极大值输入端口和第一数据输出端口,所述第一逻辑信号输入端口用于接收第一逻辑信号,所述第一数据输入端口用于接收输入的第一数据,所述调用第一极大值输入端口用于接收极值寄存器电路中存储的极大值比较结果,所述第一数据输出端口用于输出选通后的第一数据;
所述第二选择单元包括:第一逻辑信号输入端口,第二数据输入端口,调用第二极大值输入端口和第二数据输出端口,所述第一逻辑信号输入端口用于接收第一逻辑信号,所述第二数据输入端口用于接收输入的第二数据,所述调用第二极大值输入端口用于接收极值寄存器电路中存储的极大值比较结果,所述第二数据输出端口用于输出选通后的第二数据;
所述第三选择单元包括:第二逻辑信号输入端口,第三数据输入端口,调用第三极小值输入端口和第三数据输出端口,所述第二逻辑信号输入端口用于接收第二逻辑信号,所述第三数据输入端口用于接收输入的第三数据,所述调用第三极大值输入端口用于接收极值寄存器电路中存储的极小值比较结果,所述第三数据输出端口用于输出选通后的第三数据;
所述第四选择单元包括:第二逻辑信号输入端口,第四数据输入端口,调用第四极小值输入端口和第四数据输出端口,所述第二逻辑信号输入端口用于接收第二逻辑信号,所述第四数据输入端口用于接收输入的第四数据,所述调用第四极小值输入端口用于接收极值寄存器电路中存储的极小值比较结果,所述第四数据输出端口用于输出选通后的第四数据。
6.根据权利要求1所述的数据选择装置,其特征在于,所述第一级复用比较器中的所述第一复用比较器包括:功能选择模式信号输入端口,第一数据输入端口,第二数据输入端口,极大值第一输出端口和极小值第一输出端口,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输入端口用于接收选择电路输入的第一数据,所述极大值第一输出端口用于输出比较运算得到的极大值,所述极小值第一输出端口用于输出比较运算得到的极小值。
7.根据权利要求6所述的数据选择装置,其特征在于,所述第一级复用比较器中的所述第二复用比较器包括:功能选择模式信号输入端口,第三数据输入端口,第四数据输入端口,极大值第二输出端口和极小值第二输出端口,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第三数据输入端口用于接收选择电路输入的第三数据,所述第四数据输入端口用于接收选择电路输入的第四数据,所述极大值第二输出端口用于输出比较运算得到的极大值,所述极小值第二输出端口用于输出比较运算得到的极小值。
8.根据权利要求1所述的数据选择装置,其特征在于,所述第二级复用比较器中的所述第三复用比较器包括:功能选择模式信号输入端口,调用极大值第一输入端口,调用极大值第二输入端口和极大值第三输出端口,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述调用极大值第一输入端口用于读取极值寄存器电路中存储的第一极大值比较结果,所述调用极大值第二输入端口用于读取极值寄存器电路中存储的第二极大值比较结果,所述极大值第三输出端口用于输出比较运算得到的极大值;
所述第二级复用比较器中的所述第四复用比较器包括:功能选择模式信号输入端口,调用极小值第一输入端口,调用极小值第二输入端口和极小值第四输出端口,所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述调用极小值第一输入端口用于读取极值寄存器电路中存储的第一极小值比较结果,所述调用极小值第二输入端口用于读取极值寄存器电路中存储的第二极小值比较结果,所述极小值第三输出端口用于输出比较运算得到的极小值。
9.根据权利要求1所述的数据选择装置,其特征在于,所述极值寄存器电路包括:极大值寄存器堆和极小值寄存器堆,所述极大值寄存器堆用于存储多层循环比较运算得到的极大值,所述极小值寄存器堆用于存储多层循环比较运算得到的极小值。
10.根据权利要求9所述的数据选择装置,其特征在于,所述极大值寄存器堆包括:剩余数据输入端口,调用极大值第一输出端口,调用极大值第二输出端口,极大值第三输入端口,调用第一极大值输出端口,调用第二极大值输出端口,极大值第一输入端口,极大值第二输入端口,极大值输出端口,比较层级输出端口和判断结果输入端口,其中,所述剩余数据输入端口用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述调用极大值第一输出端口用于输出第一极大值比较结果,所述调用极大值第二输出端口用于输出第二极大值比较结果,所述极大值第三输入端口用于接收比较运算得到的极大值,所述调用第一极大值输出端口用于输出一个极大值比较结果,所述调用第二极大值输出端口用于输出第二极大值比较结果,所述极大值第一输入端口用于接收比较运算得到的第一极大值,所述极大值第二输入端口用于接收比较运算得到的第二极大值,所述极大值输出端口用于输出多层循环比较运算得到的最终极大值,所述比较层级输出端口用于输出当前循环比较结果对应的层数,所述判断结果输入端口用于接收当前极大值比较结果的层数与复用比较树电路需要进行循环比较运算的总层数的比较结果。
11.根据权利要求9所述的数据选择装置,其特征在于,所述极小值寄存器堆包括:剩余数据输入端口,调用极小值第一输出端口,调用极小值第二输出端口,极小值第四输入端口,调用第三极小值输出端口,调用第四极小值输出端口,极小值第一输入端口,极小值第二输入端口,极小值输出端口,比较层级输出端口和判断结果输入端口;
其中,所述剩余数据输入端口用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述调用极小值第一输出端口用于输出第三极小值比较结果,所述调用极小值第二输出端口用于输出第四极小值比较结果,所述极小值第四输入端口用于接收比较运算得到的极小值,所述调用第三极小值输出端口用于输出第三极小值比较结果,所述调用第四极小值输出端口用于输出第四极小值比较结果,所述极小值第一输入端口用于接收比较运算得到的第一极小值,所述极小值第二输入端口用于接收比较运算得到的第二极小值,所述极小值输出端口用于输出多层循环比较运算得到的最终极小值,所述比较层级输出端口用于输出当前循环比较结果对应的层数,所述判断结果输入端口用于接收当前极小值比较结果的层数与复用比较树电路需要进行循环比较运算的总层数的比较结果。
12.根据权利要求1所述的数据选择装置,其特征在于,所述结束判断电路,包括:判断单元,所述判断单元用于判断当前极值比较结果的层数,与得到最终极值所述复用比较树电路需要进行循环比较运算的总层数的大小。
13.根据权利要求12所述的数据选择装置,其特征在于,所述判断单元包括:比较层级输入端口和判断结果输出端口,所述比较层级输入端口用于接收所述极值寄存器电路当前得到的循环比较结果对应的层数,所述判断结果输出端口用于输出当前极值比较结果对应的层数,与复用比较树电路需要进行循环比较运算的总层数的比较结果。
14.一种数据处理方法,其特征在于,所述方法包括:
接收待处理的数据和功能选择模式信号;所述功能选择模式信号用于确定数据选择装置处理的数据的位宽;所述功能选择模式信号为多种,不同功能选择模式信号对应所述数据选择装置处理不同位宽的数据;
通过选择电路对待处理的所述数据进行选通,将选通后的比较数据输入至复用比较树电路;所述选通后的所述比较数据包括第一比较数据、第二比较数据、第三比较数据和第四比较数据;所述复用比较树电路包括第一级复用比较器和第二级复用比较器,所述第一级复用比较器包括第一复用比较器和第二复用比较器,所述第二级复用比较器包括第三复用比较器和第四复用比较器;
通过所述第一复用比较器对所述第一比较数据和所述第二比较数据进行第一层循环比较运算,得到第一层极值比较结果;通过所述第二复用比较器对所述第三比较数据和所述第四比较数据进行第一层循环比较运算,得到第一层极值比较结果;通过所述第三复用比较器和所述第四复用比较器对第一层极值比较结果进行第二层循环比较运算,得到第二层极值比较结果;通过所述第一复用比较器和所述第二复用比较器,与所述第三复用比较器和所述第四复用比较器轮换对上一层极值比较结果进行多层循环比较运算;
通过结束判断电路判断是否满足结束所述多层循环比较运算的条件;
若满足结束所述多层循环比较运算的条件,则输出向量极值。
15.根据权利要求14所述的方法,其特征在于,在接收待处理的数据之后,还包括:
通过数据读取单元接收待处理的所述数据的个数N和寄存器中多个存储区间的首地址;
根据寄存器中多个存储区间的所述首地址和所述数据个数N读入所述数据,并将所述数据存储至标量寄存器阵列中。
16.根据权利要求14所述的方法,其特征在于,所述通过选择电路对待处理的所述数据进行选通,将选通后的比较数据输入至复用比较树电路,包括:通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的所述数据进行选通,将选通后的比较数据输入至所述复用比较树电路。
17.根据权利要求16所述的方法,其特征在于,所述通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的所述数据进行选通,将选通后的比较数据输入至所述复用比较树电路,包括:
通过第一选择单元选通得到第一比较数据,并将所述第一比较数据输入至第一复用比较器;
通过第二选择单元选通得到第二比较数据,并将所述第二比较数据输入至第一复用比较器;
通过第三选择单元选通得到第三比较数据,并将所述第三比较数据输入至第二复用比较器;
通过第四选择单元选通得到第四比较数据,并将所述第四比较数据输入至第二复用比较器。
18.根据权利要求14所述的方法,其特征在于,所述第一比较数据、所述第二比较数据、第三比较数据和第四比较数据均为所述数据选择装置中极值寄存器电路或数据读入电路中的数据。
19.根据权利要求14所述的方法,其特征在于,通过结束判断电路判断是否满足结束所述多层循环比较运算的条件之后,还包括:若否,则继续通过第一复用比较器与第二复用比较器,和第三复用比较器与第四复用比较器轮换对上一层极值比较结果进行多层循环比较运算。
20.根据权利要求14所述的方法,其特征在于,所述输出向量极值,包括:通过极值寄存器电路接收判断单元输入的逻辑判断信号,并根据所述逻辑判断信号输出运算结果。
21.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-13任一项所述的数据选择装置,用于从其他处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述数据选择装置时,所述多个所述数据选择装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据选择装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据选择装置共享同一控制系统或拥有各自的控制系统;多个所述数据选择装置共享内存或者拥有各自的内存;多个所述数据选择装置的互联方式是任意互联拓扑。
22.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求21所述的机器学习运算装置,通用互联接口和其他处理装置;
所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
23.根据权利要求22所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置和所述其他处理装置的数据。
24.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求21所述的机器学习运算装置或如权利要求23所述的组合处理装置或如权利要求22所述的组合处理装置。
25.一种电子设备,其特征在于,所述电子设备包括如所述权利要求24所述的神经网络芯片。
26.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求24所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
27.根据权利要求26所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811451870.5A CN111258634B (zh) | 2018-11-30 | 2018-11-30 | 数据选择装置、数据处理方法、芯片及电子设备 |
PCT/CN2019/120994 WO2020108486A1 (zh) | 2018-11-30 | 2019-11-26 | 数据处理装置、方法、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811451870.5A CN111258634B (zh) | 2018-11-30 | 2018-11-30 | 数据选择装置、数据处理方法、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258634A CN111258634A (zh) | 2020-06-09 |
CN111258634B true CN111258634B (zh) | 2022-11-22 |
Family
ID=70948271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811451870.5A Active CN111258634B (zh) | 2018-11-30 | 2018-11-30 | 数据选择装置、数据处理方法、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258634B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590365A (en) * | 1990-03-30 | 1996-12-31 | Kabushiki Kaisha Toshiba | Pipeline information processing circuit for floating point operations |
JP2002170394A (ja) * | 1994-05-26 | 2002-06-14 | Mitsubishi Electric Corp | 半導体メモリの検査装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2323190B (en) * | 1997-03-14 | 2001-09-19 | Nokia Mobile Phones Ltd | Executing nested loops |
US5822579A (en) * | 1997-10-30 | 1998-10-13 | Texas Instruments Incorporated | Microprocessor with dynamically controllable microcontroller condition selection |
KR100252136B1 (ko) * | 1997-12-29 | 2000-04-15 | 윤종용 | 디지털 신호 처리 칩에서의 반복 구문 실행 제어회로 |
CN104204991B (zh) * | 2012-03-30 | 2018-01-02 | 英特尔公司 | 将较小的已排序向量合并和排序为较大的已排序向量的指令的方法和装置 |
US20130262819A1 (en) * | 2012-04-02 | 2013-10-03 | Srinivasan Iyer | Single cycle compare and select operations |
CN103853524B (zh) * | 2012-11-30 | 2017-02-08 | 安凯(广州)微电子技术有限公司 | 一种乘法器装置和实现乘法运算的方法 |
US9558796B2 (en) * | 2014-10-28 | 2017-01-31 | Altera Corporation | Systems and methods for maintaining memory access coherency in embedded memory blocks |
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
WO2018022525A1 (en) * | 2016-07-27 | 2018-02-01 | Intel Corporation | System and method for multiplexing vector mask matches |
CN107688854B (zh) * | 2016-08-05 | 2021-10-19 | 中科寒武纪科技股份有限公司 | 一种能支持不同位宽运算数据的运算单元、方法及装置 |
CN107301031B (zh) * | 2017-06-15 | 2020-08-04 | 西安微电子技术研究所 | 一种规格化浮点数据筛选电路 |
-
2018
- 2018-11-30 CN CN201811451870.5A patent/CN111258634B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590365A (en) * | 1990-03-30 | 1996-12-31 | Kabushiki Kaisha Toshiba | Pipeline information processing circuit for floating point operations |
JP2002170394A (ja) * | 1994-05-26 | 2002-06-14 | Mitsubishi Electric Corp | 半導体メモリの検査装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111258634A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN111047022A (zh) | 一种计算装置及相关产品 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN109753319B (zh) | 一种释放动态链接库的装置及相关产品 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN111260043B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111260042B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN111368967B (zh) | 一种神经网络计算装置和方法 | |
CN111258634B (zh) | 数据选择装置、数据处理方法、芯片及电子设备 | |
CN111258632B (zh) | 数据选择装置、数据处理方法、芯片及电子设备 | |
CN111340229B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN209895329U (zh) | 乘法器 | |
CN111382853B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN110515586B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN210109863U (zh) | 乘法器、装置、神经网络芯片及电子设备 | |
CN111368987B (zh) | 一种神经网络计算装置和方法 | |
CN111368990B (zh) | 一种神经网络计算装置和方法 | |
CN111260044B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111078625B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111258534B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111384944B (zh) | 全加器、半加器、数据处理方法、芯片及电子设备 | |
CN111340202A (zh) | 运算方法、装置及相关产品 | |
CN111047030A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110378478B (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 |