CN111260042B - 数据选择器、数据处理方法、芯片及电子设备 - Google Patents

数据选择器、数据处理方法、芯片及电子设备 Download PDF

Info

Publication number
CN111260042B
CN111260042B CN201811450577.7A CN201811450577A CN111260042B CN 111260042 B CN111260042 B CN 111260042B CN 201811450577 A CN201811450577 A CN 201811450577A CN 111260042 B CN111260042 B CN 111260042B
Authority
CN
China
Prior art keywords
data
circuit
comparison
register
comparison operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811450577.7A
Other languages
English (en)
Other versions
CN111260042A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201811450577.7A priority Critical patent/CN111260042B/zh
Priority to PCT/CN2019/120994 priority patent/WO2020108486A1/zh
Publication of CN111260042A publication Critical patent/CN111260042A/zh
Application granted granted Critical
Publication of CN111260042B publication Critical patent/CN111260042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers

Abstract

本申请提供一种数据选择器、数据处理方法、芯片和电子设备,数据选择器包括:数据读入电路、循环比较电路、结束判断电路和极值寄存电路;数据读入电路的第一输出端与循环比较电路的第一输入端,数据读入电路的第二输出端与结束判断电路的输入端连接,循环比较电路的输出端与极值寄存电路的第一输入端连接,结束判断电路的输出端与极值寄存电路的第二输入端连接,极值寄存电路的第一输出端与循环比较电路的第二输入端连接,该数据选择器可以对多个数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。

Description

数据选择器、数据处理方法、芯片及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据选择器、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字比较器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,从多个数据中选取极值的运算在神经网络算法中是一种常见的操作。
通常,由于大量的各种数据都需要输入到数据比较器进行比较,而现有的数据比较器每一次只能对两个数据进行比较,导致数据比较器的运算量过大,运算时间较长,影响了数据比较器的处理效率。另外,不同位宽的多个数据运算时,相同位宽的数据采用对应位数现有的数据选择器进行运算,而不同位宽的数据需要采用多个不同位宽现有的数据选择器进行运算。但是,针对不同位宽的数据采用不同的数据选择器进行比较运算,导致数据选择器占用AI芯片的面积较大。
发明内容
基于此,有必要针对上述技术问题,提供一种数据选择器、数据处理方法、芯片及电子设备。
本发明实施例提供一种数据选择器,所述数据选择器包括:数据读入电路、循环比较电路、结束判断电路和极值寄存电路;其中,所述数据读入电路的第一输出端与所述循环比较电路的第一输入端,所述数据读入电路的第二输出端与所述结束判断电路的输入端连接,所述循环比较电路的输出端与所述极值寄存电路的第一输入端连接,所述结束判断电路的输出端与所述极值寄存电路的第二输入端连接,所述极值寄存电路的第一输出端与所述循环比较电路的第二输入端连接;
所述数据读入电路用于接收数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述循环比较电路用于循环比较接收到的所述数据的大小,所述结束判断电路用于判断循环比较处理是否结束,所述极值寄存电路用于输出比较运算的结果。
在其中一个实施例中,所述循环比较电路中包括第一输入端,用于接收输入的功能选择模式信号;所述功能选择模式信号用于确定数据选择器处理的数据的位宽。
在其中一个实施例中,所述数据读入电路包括:数据读取单元和标量寄存器阵列,所述数据读取单元的输出端与所述标量寄存器阵列的输入端连接;
所述数据读取单元用于接收所述数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述标量寄存器阵列用于根据所述寄存器中N个存储区间的地址存储所述数据读取单元读入的所述数据。
在其中一个实施例中,所述数据读入电路中的所述数据读取单元包括:数据输入端口,数据个数输入端口和数据输出端口,所述数据输入端口用于根据寄存器中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为一实施例提供的判断是否满足结束循环比较运算条件的流程示意图;
图16为一实施例提供的一种组合处理装置的结构图;
图17为一实施例提供的另一种组合处理装置的结构图;
图18为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据选择器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行数据比较运算处理。可选的,芯片可以是CPU(Central Processing Unit,中央处理器单元)、GPU(Graphics Processing Unit,图形处理器单元)、NPU(Neural-Network Processing Unit,神经网络处理器单元)、DSP(Digital Signal Process,数字信号处理)芯片的至少一种。上述数据选择器的结构示意图分别如图1,图2和图3所示。
图1为一个实施例提供的一种数据选择器的结构图。如图1所示,该数据选择器包括:数据读入电路11、循环比较电路12、结束判断电路13和极值寄存电路14;其中,所述数据读入电路11的第一输出端与所述循环比较电路12的第一输入端及所述结束判断电路13的输入端连接,所述结束判断电路13的第一输出端与所述数据读入电路11的第一输入端及所述极值寄存电路14的第一输入端连接,所述极值寄存电路14的第一输出端与所述循环比较电路12的第二输入端连接,所述循环比较电路12的输出端与所述极值寄存电路14的第二输入端连接;所述数据读入电路11用于接收数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述循环比较电路12用于循环比较接收到的N个所述数据的大小,所述结束判断电路13用于判断循环比较处理是否结束,所述极值寄存电路14用于输出比较运算的结果。
可选的,图2为另一种数据选择器的结构图。如图2所示,该数据选择器包括:数据读入电路11、循环比较电路12、结束判断电路13和极值寄存电路14;其中,所述数据读入电路11的第一输出端与所述循环比较电路12的第一输入端,所述数据读入电路11的第二输出端与所述结束判断电路13的输入端连接,所述循环比较电路12的输出端与所述极值寄存电路14的第一输入端连接,所述结束判断电路13的输出端与所述极值寄存电路14的第二输入端连接,所述极值寄存电路14的第一输出端与所述循环比较电路12的第二输入端连接;所述数据读入电路11用于接收数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述循环比较电路12用于循环比较接收到的所述数据的大小,所述结束判断电路13用于判断循环比较处理是否结束,所述极值寄存电路14用于输出比较运算的结果。
可选的,图3为另一种数据选择器的结构图。如图3所示,该数据选择器包括:数据读入电路11、循环比较电路12、结束判断电路13和极值寄存电路14,所述数据读入电路11的输出端与所述循环比较电路12的第一输入端连接,所述循环比较电路12的第一输出端与所述极值寄存电路14的第一输入端及所述结束判断电路13的输入端连接,所述结束判断电路13的输出端与所述极值寄存电路14的第二输入端连接,所述极值寄存电路14的第一输出端与所述循环比较电路12的第二输入端连接;所述数据读入电路11用于接收数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述循环比较电路12用于循环比较接收到的N个所述数据的大小,所述结束判断电路13用于判断循环比较处理是否结束,所述极值寄存电路14用于输出比较运算的结果。
具体的,上述数据读入电路11可以包括多个具有不同功能的数据读取单元,上述循环比较电路12可以包括多个数据比较处理单元,所述结束判断电路13可以包括多个不同功能的判断处理单元,所述极值寄存电路14可以包括极大值处理单元和极小值处理单元。可选的,上述结束判断电路13可以根据数据读入电路11接收到的数据个数N来判断循环比较处理是否结束。可选的,上述寄存器中多个存储区间的首地址可以是寄存器中所有存储区间中的任意一个存储区间对应的地址。可选的,上述数据可以为浮点数,数据读入电路11读入数据的个数可以为N。可选的,上述不同功能的数据读取单元的输入端口可以有一个或多个,每个数据读取单元的每个输入端口的功能可以不相同,输出端口也可以有一个或多个,每个数据读取单元的每个输出端口的功能可以不相同,并且不同功能数据读取单元的电路结构可以不相同。可选的,上述多个数据比较处理单元可以包括多个具有相同功能的比较处理单元。
需要说明的是,每个比较处理单元的输入端口可以有多个,每个输入端口的功能可以不相同,并且每个比较处理单元的输出端口也可以有多个,每个输出端口的功能可以不相同,但是,不同比较处理单元的输入端口的功能可以相同,也可以不相同,不同比较处理单元的输出端口的功能可以相同,也可以不相同,并且不同功能的比较处理单元的电路结构可以不同,也可以相同。可选的,每个判断处理单元的输入端口可以有一个或多个,每个输入端口的功能可以相同,也可以不相同,每个判断处理单元的输出端口也可以有一个或多个,每个输出端口的功能可以相同,也可以不相同。可选的,极大值处理单元和极小值处理单元的输入端口均可以有多个,每个输入端口的功能可以不相同,并且极大值处理单元和极小值处理单元的输出端口也均可以有多个,每个输出端口的功能可以不相同。
可选的,所述循环比较电路12中包括功能选择模式输入端口,用于接收输入的功能选择模式信号。可选的,所述功能选择模式信号用于确定数据选择器处理的数据的位宽。
可选的,功能选择模式信号可以有多种,不同功能选择模式信号对应的数据选择器可以处理不同位宽的数据。
本实施例提供的一种数据选择器,通过数据读入电路可以根据寄存器中多个存储区间的首地址和数据的个数读入数据,循环比较电路循环比较数据读入电路读入的多个数据,当比较完多个数据时,结束判断单元的结果为是,并通过极值寄存电路输出比较运算结果,从而可以对多个数据进行循环比较,得到其中的极大值和极小值,以节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图4为另一实施例提供的一种数据读入电路的具体结构示意图,如图4所示,所述数据读入电路11,包括:地址计数器111和标量数据读取单元112,所述地址计数器111的输出端与所述标量数据读取单元112的输入端连接;所述地址计数器111用于接收所述数据的个数N,根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,并累加记录比较运算时寄存器中存储区间对应的地址移位数值,所述标量数据读取单元112用于根据每一次比较运算时当前寄存器中存储区间的地址读取一个所述数据输入到所述循环比较电路。
具体的,上述地址计数器111中预先存储的初始值可以为寄存器中存储区间的首地址A,地址计数器111中记录的数值可以为每一次比较运算时读取的数据对应的寄存器存储地址,与上一次比较运算时读取的数据对应的存储地址之差的累加数据。可选的,每一次比较运算时,标量数据读取单元112可以读取地址计数器读入一个的数据。可选的,一个寄存器中存储区间可以存储一个数据。需要说明的是,每一次比较运算时,标量数据读取单元112可以读取一个数据进行比较运算。
本实施例提供的一种数据选择器,通过地址计数器获得每一次比较运算时读取的是对应的寄存器中存储区间,与上一次比较运算时读取的数据对应的存储地址之差的累加数据,通过标量数据读取单元读取地址计数器读入的每一个数据,并通过结束判断电路判断是否满足循环比较运算结束的条件,满足循环比较运算结束的条件时,得到N个数据中的最大值和最小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图4,图4为一种地址计数器的具体结构示意图,所述地址计数器111,包括:数据个数输入端口1111,数据输入端口1112,地址计数数值输出端口1113和数据输出端口1114,所述数据个数输入端口用于接收读入所述数据的个数N,所述数据输入端口用于根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述地址计数数值输出端口1113用于输出累加记录比较运算读入数据时,寄存器中存储区间对应的地址移位数据,所述数据输出端口1114用于输出读取的数据。
具体的,每一次比较运算时,数据输入端口1112可以读入一个寄存器中存储区间内存储的数据,读入的次数可以为数据的个数N,并且地址计数器111第一次读入的数据可以为寄存器中存储区间的首地址A对应的数据。可选的,地址计数数值输出端口1113可以将地址计数单元111累加记录的地址移位数据输入到结束判断电路13中。可选的,在每一次比较运算时,通过数据输出端口1114可以将读取的数据输入到标量数据读取单元112中,输出的次数可以为数据的个数N。
本实施例提供的一种数据选择器,通过地址计数器获得每一次比较运算时读取的数据对应的寄存器存储地址,与上一次比较运算时读取的数据对应的存储地址之差的累加数据,并通过结束判断电路判断是否满足循环比较运算结束的条件,满足循环比较运算结束的条件时,得到N个数据中的最大值和最小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图4,图4为一种标量数据读取单元的具体结构示意图,如图4所示,所述标量数据读取单元112,包括:逻辑信号输入端口1121,数据读取端口1122和数据输出端口1123,所述逻辑信号输入端口1121用于接收所述结束判断电路13的判断结果,所述数据读取端口1122用于读取每一次比较运算时所述地址计数器111读入的所述浮点数,所述数据输出端口1123用于将读取的所述数据输入到所述循环比较电路12中。
具体的,数据读取端口1122读取数据的次数可以等于数据的个数N。可选的,每一次运算时,数据输出端口1123可以输出一个寄存器中存储区间内存储的一个数据,输出的次数可以为N次。
需要说明的是,上述结束判断电路13的判断结果可以为高电平信号,还可以为低电平信号。如果逻辑信号输入端口1121接收到的是结束判断电路13输出的低电平信号,则标量数据读取单元112可以继续读取地址计数器111读入的数据,并将读取的数据输入到循环比较电路12继续进行数据比较运算,直到逻辑信号输入端口1121接收到的是高电平信号为止,循环比较运算结束。
本实施例提供的一种数据选择器,通过标量数据读取单元根据寄存器中存储区间的首地址依次读取每一个数据,并将读取的数据输出到循环比较电路进行比较运算,从而可以得到N个数据中的最大值和最小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图5为另一实施例提供的一种数据读入电路的具体结构示意图,如图5所示,所述数据读入电路11,包括:数据读取单元111和标量寄存器阵列112,所述数据读取单元111的输出端与所述标量寄存器阵列112的输入端连接;所述数据读取单元111用于所述数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述标量寄存器阵列112用于根据所述寄存器中N个存储区间的地址存储所述数据读取单元111读入的所述数据。
具体的,上述标量寄存器阵列112可以包括N个存储区间,并且存储区间的数量可以等于数据读取单元111接收到的数据个数N。可选的,每个存储区间可以存放一个数据,每一个存储区间可以存放接收到的任意一个数据。可选的,当N个数据全部被存储至标量寄存器阵列112中时,才可以进行下一电路的处理。需要说明的是,数据读取单元111可以根据根据寄存器中N个存储区间的首地址A依次将N个数据读入。
本实施例提供的一种数据选择器,数据读取单元可以接收所述数据的个数,并根据寄存器中N个存储区间的首地址和所述数据的个数读入所述数据,通过标量寄存器阵列接收数据读取单元输入数据,通过标量寄存器阵列按照存储区间的首地址依次将接收到的数据存放至存储区间中,从而使得每一个存储区间存放一个数据,以便后续循环比较运算时,每一次比较运算可以接收到一个数据进行比较运算,不断循环,直到结束循环比较,从而可以对N个数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图5,图5为一种数据读取单元的具体结构示意图,所述数据读取单元111,包括:数据输入端口1111,数据个数输入端口1112和数据输出端口1113,所述数据输入端口1111用于根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述数据个数输入端口1112用于接收读入的所述数据的个数N,所述数据输出端口1113用于输出读入的所述数据。
需要说明的是,若寄存器中的所有存储区间均有编号,例如,0,1,2,3,……,则存储区间的首地址A可以为0。可选的,上述N可以为任意正整数,N的具体数值可以等于数据读取单元111接收到的数据个数。可选的,数据个数输入端口1112可以接收数据读取单元111读入的数据的个数。可选的,根据存储区间的首地址,数据输出端口1113每一次可以输出一个数据,并且输出数据的次数可以等于数据的个数N。
本实施例提供的一种数据选择器,通过数据读取单元可以接收所述数据的个数,并根据寄存器中N个存储区间的首地址和所述数据的个数读入所述数据,从而可以对N个数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,该数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图5,图5为一种标量寄存器阵列的具体结构示意图,所述标量寄存器阵列112,包括:数据输入端口1121,数据输出端口1122和清空存储区间数量输出端口1123,所述数据输入端口1121用于接收所述数据,所述数据输出端口1122用于输出寄存器中每一个存储区间内存储的所述数据,所述清空存储区间数量输出端口1123用于输出所述标量寄存器阵列中,当前寄存器中被清空的存储区间的数量。
可选的,参见图6,7,8,图6,7,8分别为另一种标量寄存器阵列的具体结构示意图,所述标量寄存器阵列112,包括:数据输入端口1121和数据输出端口1122,所述数据输入端口1121用于接收所述数据,所述数据输出端口1122用于输出寄存器中每一个存储区间内存储的所述数据。
具体的,上述数据输入端口1121可以接收N个数据,其中,每一次可以接收一个数据,每一次还可以接收N个数据,但是每一次只能输出一个存储区间中的数据,输出数据的次数可以等于数据输入端口1121接收到的数据的个数N。可选的,一个存储区间可以存储一个数据。可选的,标量寄存器阵列112中的存储区间的数量可以等于数据读取单元111接收到的数据的个数N。可选的,清空存储区间数量输出端口1123可以输出当前标量寄存器阵列112中未存储数据的存储区间数量。
需要说明的是,每一次比较运算,标量寄存器阵列112中都会清除一个数据,相当于当前标量寄存器阵列112中存储的数据就会少一个,直到比较运算结束,标量寄存器阵列112中存储的数据会被清空。
本实施例提供的一种数据选择器,根据通过标量寄存器阵列可以依次存放接收到的N个数据,进行比较处理时,每一次可以输出一个存储区间中的数据进行比较处理,循环比较多次,从而可以得到N个数据中的极大值和极小值,节省运算时间;另外,该数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图4至图8分别为另一实施例提供的一种循环比较电路的具体结构示意图,如图4至图8所示,所述循环比较电路12包括:第一复用比较器121和第二复用比较器122,所述第一复用比较器121用于对两个数据进行比较,得到最大的数据,所述第二复用比较器122用于对两个数据进行比较,得到最小的数据。
需要说明的是,第一复用比较器121和第二复用比较器122之间可以有连接关系,还可以没有连接关系,可选的,第一复用比较器121和第二复用比较器122的电路结构可以相同。其中,第一复用比较器121和第二复用比较器122的具体结构示意图如图3所示。在比较运算时,可以通过第一复用比较器121和第二复用比较器122对接收到的数据进行多次循环比较处理,其中,第一复用比较器121和第二复用比较器122进行比较运算的次数均可以等于数据读入电路接收到的数据的个数,但是,第二复用比较器122进行比较运算的次数还可以不等于数据读入电路接收到的数据的个数。同时,第一复用比较器121和第二复用比较器122均可以采用并行处理的方式对数据进行比较处理。可选的,第一复用比较器121进行比较运算的总次数与第二复用比较器122进行比较运算的总次数可以相等,还可以不相等。可选的,每一次比较处理第一复用比较器121和第二复用比较器122均可以接收同一个数据进行比较运算。可选的,数据选择器可以通过第一复用比较器121进行极大值比较运算,通过第二复用比较器122进行极小值比较运算。
本实施例提供的一种数据选择器,通过第一复用比较器和第二复用比较器可以对接收到的N个数据进行多次比较,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据第一复用比较器和第二复用比较器,接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图4,图4为一种第一复用比较器和第二复用比较器的结构示意图,所述第一复用比较器121或第二复用比较器122包括:判断结果输出端口(unordered)1210,功能选择模式信号输入端口(mode)1211,数据输入端口(Mi)1212,调用极值输入端口1213,极大值输出端口1214,极小值输出端口1215和判断信号输出端口1216,所述功能选择模式信号输入端口(mode)1211用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述浮点数输入端口(Mi)1212用于接收输入的所述浮点数,所述调用极值输入端口1213用于接收每一次数据比较运算结束后所述极值寄存电路14中存储的极值,所述极大值输出端口1214用于输出每一次数据比较运算后的极大值,所述极小值输出端口1215用于输出每一次数据比较运算后的极小值,所述判断信号输出端口1216用于输出是否停止采用所述第二复用比较器122进行比较运算的逻辑信号。
具体的,上述功能选择模式信号输入端口(mode)1211可以接收不同的功能选择模式信号。可选的,不同的功能选择模式信号可以有多种,不同功能选择模式信号对应于第一复用比较器121和第二复用比较器122可以处理不同位宽的数据。可选的,浮点数输入端口(Mi)1212可以接收数据读入电路输出的浮点数。可选的,上述极值可以包括极大值和极小值。可选的,若第一复用比较器121通过数据输入端口(Mi)1212接收输入的数据,第一复用比较器121通过判断信号输出端口1216输出高电平信号,表示接收到的数据大于极大值寄存单元中存储的值,则接收到的数据必然大于当前极大值寄存单元中存储的值,此时,数据选择器可以判断出不需要第二复用比较器122对待处理的数据进行比较处理,第二复用比较器122可以停止处理比较运算,若第一复用比较器121通过判断信号输出端口1216输出低电平信号,则需要继续通过第二复用比较器122进行比较处理。
另外,若第一复用比较器121通过浮点数输入端口(Mi)1212接收输入的数据,通过判断信号输出端口1216输出高电平信号,表示接收到的数据小于极小值寄存单元中存储的值,则接收到的数据必然小于当前极小值寄存单元中存储的值,此时,数据选择器可以判断出不需要第二复用比较器122对待处理的数据进行比较处理,第二复用比较器122可以停止处理比较运算,若第一复用比较器121通过判断信号输出端口1216输出低电平信号,则需要继续通过第二复用比较器122进行比较处理。
需要说明的是,若数据读入电路11读取的N个数据中不存在非数值,则第一复用比较器121和第二复用比较器122的判断结果输出端口(unordered)1210可以为悬空状态,若数据读入电路11读取的N个数据中存在非数值时,则第一复用比较器121和第二复用比较器122的判断结果输出端口(unordered)1210可以输出高电平信号,同时,极大值输出端口1214和极小值输出端口1215输出的是非数值,该情况可以表征数据读入电路11读取的N个数据中存在非数值,即存在错误数据。可选的,极大值输出端口1214,极小值输出端口1215可以为悬空状态。
同时,如图6至图8所示,所述第一复用比较器121或第二复用比较器122还包括:运算次数输出端口1217,所述运算次数输出端口1217用于输出所述第一复用比较器121或第二复用比较器122的比较运算的总次数。
具体的,运算次数输出端口1217可以输出第一复用比较器121或第二复用比较器122进行比较运算的次数。可选的,当极大值输出端口1214,极小值输出端口1215以及运算次数输出端口1217均处于悬空状态时,可以表征为上述三个端口在电路中无作用。
示例性的,图9为第一复用比较器121和第二复用比较器122的结构图,端口a和b为数据输入端口,若上述数据输入端口(Mi)1212可以等效替代端口a,调用极值输入端口1213可以等效替代端口b时,则判断信号输出端口1216可以用判断结果输出子端口(agtb)等效替代;若上述数据输入端口(Mi)1212可以等效替代端口b,调用极值输入端口1213可以等效替代端口a时,则判断信号输出端口1216可以用判断结果输出子端口(altb)等效替代。可选的,第一复用比较器121或第二复用比较器122
需要说明的是,如果比较运算过程中第一复用比较器121或第二复用比较器122的三个判断结果输出子端口agtb,altb,aeqb进行或逻辑运算,得到的结果为一个高电平信号,可以表征当次比较运算结束,通过运算次数输出端口1217将或逻辑运算结果输出。
本实施例提供的一种数据选择器,通过第一复用比较器和第二复用比较器可以对接收到的N个数据进行多次比较,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值;同时,数据选择器能够根据第一复用比较器或第二复用比较器输出的判断信号提前关闭其中一个复用比较器,有效减少数据选择器内部的比较器调用次数,节省运算时间;另外,数据选择器能够根据第一复用比较器和第二复用比较器,接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,可以有效减小数据选择器占用AI芯片的面积。
继续参见图4,图4为另一实施例提供的一种结束判断电路的具体结构示意图,所述结束判断电路13包括:判断单元131,所述判断单元131用于判断地址计数器累加记录的寄存器存储区间对应的地址移位数值,与比较运算寄存器总共需要的地址移位数值的大小。
需要说明的是,当地址计数器113中累加记录数据,与比较完所有数据总共需要的地址移位数值相等时,判断单元131的判断结果可以为是,结束循环比较运算。此时,该情况可以表示寄存器中存储区间内存储的数据已经全部进行了比较运算,标量数据读取单元112不能继续读取地址计数器111读入的数据。
本实施例提供的一种数据选择器,通过判断单元对地址计数器累加记录的寄存器存储区间对应的地址移位数值,与比较运算寄存器总共需要的地址移位数值进行比较,如果比较结果为相等,则判断单元的判断结果可以为是,结束循环比较运算,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算结果;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图4,图4为另一种判断单元的具体结构示意图,所述判断单元131,包括:地址计数数值输入端口1311和判断结果输出端口1312,地址计数数值输入端口1311用于接收地址计数器111输出的累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数据,所述判断结果输出端口1312用于输出累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数据,与比较N个数据寄存器总共需要的地址移位数值的比较结果。
需要说明的是,若地址计数器111中累加记录比较运算读入数据时,寄存器存储单元对应的地址移位数据,等于比较N个数据寄存器总共需要的地址移位数值时,判断单元131通过判断结果输出端口1332输出高电平信号,则表示循环比较运算结束,可以指示极值寄存电路14输出运算结果。若判断单元131通过判断结果输出端口1332输出低电平信号,则可以指示标量数据读取单元112读取数据输入到循环比较电路12,继续进行比较运算。
本实施例提供的一种数据选择器,通过判断单元可以指示极值寄存电路输出运算结果,并可以指示标量数据读取单元112读取数据输入到循环比较电路,从而继续进行比较运算,当判断单元向极值寄存电路输出高电平信号时,输出最终的极值结果,比较运算结束,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
继续参见图5,图5为另一实施例提供的一种结束判断电路的具体结构示意图,所述结束判断电路13包括:判断单元133,所述判断单元133用于判断所述标量寄存器阵列中,寄存器中的存储区间存储的数据是否已经被清空。
具体的,判断单元133可以根据标量寄存器阵列112中当前被清空的存储区间数量与数据读入单元111接收到的数据个数N的大小,得到判断结果。需要说明的是,当标量寄存器阵列112中当前存储的数据被清空时,判断单元133的判断结果可以为是,结束循环比较运算。
示例性的,数据读入电路11中有四个存储单元,分别为A[0],A[1],A[2],A[3],若上一次比较运算标量寄存器阵列112将A[2]中存储的数据输出到第一复用比较器121和第二复用比较器122,此时,标量寄存器阵列112中还有一个存储单元A[3]中存储有数据,标量寄存器阵列112中存储的数据未被清空;当前比较运算时标量寄存器阵列112将A[3]中存储的数据输出到第一复用比较器121和第二复用比较器122,此时,标量寄存器阵列112中存储的数据已经被清空了。
本实施例提供的一种数据选择器,比较标量寄存器阵列中当前存储区间未存储数据的数量与数据读入单元接收到的数据个数的大小关系,如果比较结果为相等,则判断单元的判断结果可以为是,结束循环比较运算,从而可以对N个数据进行循环比较,得到其中的极大值和极小值,节省运算结果;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
可选的,继续参见图6,7,8,图6,7,8分别为另一实施例提供的一种结束判断电路的具体结构示意图,所述结束判断电路13包括:计数单元131和判断单元132,所述计数单元131的输出端口与所述判断单元132的输入端口连接;所述计数单元131用于累加记录循环比较电路12进行比较运算的总次数,所述判断单元132用于比较所述循环比较电路12的运算次数与数据读入单元接收到的所述数据个数N的大小。
需要说明的是,若计数单元131中记录的数据用counter表示,循环比较电路12中的第一复用比较器121或第二复用比较器122每一次比较运算结束后,则计数单元131的记录数据可以在上一次比较运算结束后得到的counter数值的基础上加1,直到counter的值等于数据读入电路11接收到的数据个数N为止,判断单元132的判断结果为是,结束循环比较运算。其中,counter的初始值可以等于0。可选的,计数单元131中记录的数值可以等于第一复用比较器121进行比较运算的总次数,还可以等于第二复用比较器122进行比较运算的总次数。
可选的,如图6,7,8所示分别为一种计数单元的具体结构示意图,所述计数单元131,包括:运算次数输入端口1311和计数数值输出端口1312,所述运算次数输入端口1311用于累加记录所述第一复用比较器121或第二复用比较器122的比较运算总次数,计数数值输出端口1312用于输出记录的所述第一复用比较器121或第二复用比较器122的比较运算的总次数。
需要说明的是,每一次比较运算结束后,计数单元131的数值会在上一次比较运算结束后得到的比较运算总次数的基础上加1。
本实施例提供的一种数据选择器,通过计算单元累加记录循环比较电路进行比较运算处理的总次数,从而根据记录的数据判断是否可以结束比较运算,输出最终的比较结果;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图5,图5为另一种判断单元的具体结构示意图,所述判断单元133,包括:清空存储区间数量输入端口1331和判断结果输出端口1332,所述清空存储区间数量输入端口1331用于接收所述标量寄存器阵列112中,当前寄存器中被清空的存储区间的数量,所述判断结果输出端口1332用于输出所述标量寄存器阵列112中,当前寄存器中被清空的存储区间的数量,与所述数据读取单元111接收的数据个数N的比较结果。
需要说明的是,若标量寄存器阵列112中当前寄存器中被清空的存储区间的数量等于数据读取单元111接收的数据个数N时,判断单元133通过判断结果输出端口1332输出高电平信号,指示极值寄存电路14输出运算结果。
本实施例提供的一种数据选择器,通过判断单元可以指示极值寄存电路输出运算结果,并可以指示标量寄存器阵列向循环比较电路输入数据,从而进行循环比较运算,当判断单元向极值寄存电路输出高电平信号时,输出最终的极值结果,比较运算结束,从而可以对N个数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
可选的,继续参见图6,7,8,图6,7,8分别为另一实施例提供的一种判断单元的具体结构示意图,所述判断单元132,包括:运算次数输入端口1321和判断结果输出端口1322,所述计数数值输入端口1321用于接收所述计算单元131中记录的数值,所述判断结果输出端口1322用于输出所述循环比较运算的总次数与数据读入电路11接收到的所述数据个数N的比较结果。
需要说明的是,循环比较运算的次数可以等于计算单元131中记录的数值。若循环比较运算的总次数等于数据读入电路11接收到的所述数据个数N时,则判断单元132的判断结果为是,判断结果输出端口1322可以输出高电平信号,结束比较运算。若循环比较运算的总次数小于数据读入电路11接收到的所述数据个数时,则判断单元132的判断结果为否,判断结果输出端口1322可以输出低电平信号,进一步,需要通过循环比较电路12继续进行比较运算。
本实施例提供的一种数据选择器,根据计算单元记录的数据判断是否可以结束比较运算,如果判断结果为否,则继续进行比较运算,否则,结束比较运算得到最终的比较结果,该判断单元可以指示极值寄存电路输出最终的结果,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
继续参见图5至图8,图5至图8分别为另一实施例提供的一种极值寄存电路的具体结构示意图,所述极值寄存单元14,包括:极大值寄存单元141和极小值寄存单元142;所述极大值寄存单元141用于存储所述第一复用比较器121每一次比较运算后得到的极大值,所述极小值寄存单元142用于存储所述第二复用比较器122每一次比较运算后得到的极小值。
需要说明的是,极大值寄存单元141和极小值寄存单元142之间没有连接关系,可以独立比较运算,两者之间无相互影响。可选的,每一次第一复用比较器121比较运算结束后得到的极大值可以相同,也可以不相同。可选的,每一次第二复用比较器122比较运算结束后得到的极小值可以相同,也可以不相同。其中,极大值寄存单元141中存储的最大初始值可以等于负无穷,极小值寄存单元142中存储的最小初始值可以等于正无穷。如果判断单元13的判断结果为是,则极大值寄存单元141和极小值寄存单元142可以分别输出极大值和极小值,循环比较运算结束。可选的,当每一次比较运算时,如果第一复用比较器121接收到的待处理的比较大于极大值寄存单元中存储的比较时,则第一复用比较器121可以通过判断信号输出端口127输出高电平信号到第二复用比较器122,表征数据选择器停止使用第二复用比较器122对待处理的比较进行比较运算处理。
本实施例提供的一种数据选择器,通过极大值寄存单元和极小值寄存单元存储每一次比较运算得到的运算结果,进行循环比较,如果判断单元判断结果为是时,数据选择器可以通过极大值寄存单元和极小值寄存单元输出N个数据中最终的极大值和极小值,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图5至图8,图5至图8分别为一种极大值寄存单元的具体结构示意图,所述极大值寄存单元141,包括:极大值调用输出端口(Max_r)1411,极大值输入端口1412,极大值输出端口1413和第一判断信号输入端口1414,所述极大值调用输出端口(Max_r)1411用于每一次比较运算时,输出所述极大值寄存单元141中存储的极大值,所述极大值输入端口1412用于接收每一次比较运算后得到的极大值,所述极大值输出端口1413用于循环比较结束后输出N个所述数据中的极大值,所述第一判断信号输入端口1414用于接收所述结束判断电路13输出的逻辑判断信号。
具体的,当循环比较电路12进行比较运算时,可以通过极大值调用输出端口(Max_r)1411将极大值寄存单元141当前存储的极大值,输出到循环比较电路12中进行比较运算。可选的,每一次比较运算结束后可以通过极大值输入端口1412接收本次比较运算得到的极大值,也可以不接收本次比较运算得到的极大值。如果不接收本次比较运算得到的极大值时,则可以表示本次比较运算得到的极大值,与上一次比较运算得到的极大值相等。
需要说明的是,当结束判断电路13向极大值寄存单元141输入的逻辑判断信号为高电平信号时,可以表征循环比较运算结束,并且可以通过极大值输出端口1413输出最终的比较结果极大值。可选的,结束判断电路13向极大值寄存单元141输入的逻辑判断信号可以为高电平信号,还可以为低电平信号。如果第一判断信号输入端口1414接收的是高电平信号,则极大值输出端口1413可以输出N个数据中的极大值,若第一判断信号输入端口1414接收的是低电平信号时,则极大值输出端口1413不会输出任何信号,此时,极大值输出端口1413可以为悬空状态。
本实施例提供的一种数据选择器,通过极大值寄存单元存储每一次比较运算得到的运算结果,进行循环比较,如果判断单元向极大值寄存单元输出高电平信号时,数据选择器可以通过极大值寄存单元输出N个数据中最终的极大值,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,继续参见图5至图8,图5至图8分别为一种极小值寄存单元的具体结构示意图,所述极小值寄存单元142,包括:极小值调用输出端口(Min_r)1421,极小值输入端口1422,极小值输出端口1423和所述第二判断信号输入端口1424,所述极小值调用输出端口(Max_r)1421用于每一次比较运算时,输出所述极小值寄存单元142中存储的极小值,所述极小值输入端口1422用于接收每一次比较运算后得到的极小值,所述极小值输出端口1423用于循环比较结束后输出N个所述数据中的极小值,所述第二判断信号输入端口1424用于接收所述结束判断电路13输出的逻辑判断信号。
具体的,当循环比较电路进行比较运算时,可以通过极小值调用输出端口(Min_r)1421,将极小值寄存单元142当前存储的极小值输出到循环比较电路12中,进行比较运算。可选的,每一次比较运算结束后可以通过极小值输入端口1422接收本次比较运算得到的极小值,也可以不接收本次比较运算得到的极小值。如果不接收本次比较运算得到的极小值时,则可以表示本次比较运算得到的极小值,与上一次比较运算得到的极小值相等。
需要说明的是,当判断单元向极小值寄存单元142输入高电平信号时,可以表征循环比较运算结束,并且可以通过极小值输出端口1423输出最终的比较结果极小值。可选的,结束判断电路13向极小值寄存单元142输入的逻辑判断信号可以为高电平信号,还可以为低电平信号。如果第二判断信号输入端口1424接收的是高电平信号,则极小值输出端口1423可以输出N个数据中的极小值,若第二判断信号输入端口1424接收的是低电平信号,则极小值输出端口1423不会输出任何信号,此时,极小值输出端口1423可以为悬空状态。
本实施例提供的一种数据选择器,通过极小值寄存单元存储每一次比较运算得到的运算结果,进行循环比较,如果结束判断电路向极小值寄存单元输出高电平信号时,数据选择器可以通过极小值寄存单元输出N个数据中最终的极小值,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图10为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图4所示的数据选择器进行处理,本实施例涉及的是N个数据进行循环比较运算选取极值的过程。如图10所示,该方法包括:
S101、接收待处理的数据。
具体的,数据选择器可以通过数据读入电路接收N个待处理的数据,并且数据选择器还可以通过循环比较电路接收不同功能选择模式信号。可选的,数据读入电路接收的待处理的数据个数N可以大于2,即数据读入电路读入待处理的数据的数量可以大于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位浮点数进行处理。
需要说明的是,如果数据读入电路接收到的N个待处理的数据的位宽,与循环比较电路接收到的功能选择模式信号对应可处理的数据位宽不相等,则循环比较电路会根据循环比较电路当前可处理的数据位宽,将接收到的N个待处理的数据分成,与循环比较电路当前可处理的数据位宽相等的多组数据进行并行处理,其中,数据读入电路接收到的待处理的数据的位宽可以大于循环比较电路当前可处理的数据位宽。可选的,上述并行处理可以表征为将分成的每一组待处理的数据同时进行处理。如果数据读入电路接收到的N个待处理的数据的位宽,与循环比较电路接收到的功能选择模式信号对应可处理的数据位宽相等,则循环比较电路可以直接对接收到的N个待处理的数据进行处理。
S102、对待处理的所述数据进行循环比较运算。
需要说明的是,每一次比较运算,通过循环比较电路可以对N个待处理的数据中的任意两个数据进行比较,得到两个数据中的极值,并且在每一次比较运算时,通过循环比较电路可以接收到数据读入电路输入的一个待处理的数据。
S103、获取当前寄存器存储区间对应的地址移位数据。
具体的,数据选择器通过判断单元可以获取所述地址计数器中累加记录比较运算读入数据时,当前寄存器存储区间对应的地址移位数据。
需要说明的是,通过地址计数器可以获取每一次比较运算,地址计数器读入的待处理的数据所对应的寄存器中存储地址,与上一次读入的待处理数据对应的寄存器存储地址的移位数值。可选的,地址计数器第一次读入的待处理的数据的地址移位数据可以在寄存器中存储区间的首地址基础上获得。
示例性的,若有两个寄存器存储区间,每个存储区间分别存储一个16位的待处理数据,两个待处理的数据为1011110000000100→1(寄存器存储区间的存储地址为A[1]),1011110011000100→2(寄存器存储区间的存储地址为首地址A[2]),并且寄存器存储区间存储数据的首地址为A[0],则地址计数器读入第一个待处理的数据时,寄存器需要在首地址的基础上向后移一位,才能将第一个待处理的数据输入到地址计数器,此时,寄存器存储区间的地址移位数据可以等于1;若地址计数器需要接收第二个待处理的数据时,寄存器需要在第一个待处理数据对应寄存器存储地址的基础上向后移一位,才能将第二个待处理的数据输入到地址计数器,此时,寄存器存储区间的地址移位数据可以等于第一次的地址移位数据与第二次的地址移位数据(即1)之和。
S104、根据当前寄存器存储区间对应的所述地址移位数据,判断是否满足结束所述循环比较运算的条件。
具体的,每一次比较运算结束后,数据选择器中的结束判断电路可以根据当前寄存器存储区间对应的地址移位数据,判断当前是否满足结束循环比较运算的条件。
S105、若满足结束所述循环比较运算的条件,则输出向量极值。
具体的,如果结束判断电路判断出本次比较运算结束后,可以结束循环比较运算,则停止循环比较运算,并通过极值寄存电路输出最终的向量极值。可选的,上述向量极值可以表征为数据读入电路接收到的所有待处理的数据中的极值。
本实施例提供的一种数据处理方法,接收待处理的数据,对待处理的所述数据进行循环比较运算,获取当前寄存器存储区间对应的地址移位数据,根据当前寄存器存储区间对应的所述地址移位数据,判断是否满足结束所述循环比较运算的条件,若满足结束所述循环比较运算的条件,则输出向量极值,该过程可以通过循环比较运算得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号,处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图11为一个实施例提供的另一种数据处理方法的流程示意图,该方法可以通过图2和图5所示的数据选择器进行处理,本实施例涉及的是数据进行循环比较运算选取极值的过程。如图11所示,该方法包括:
S201、接收待处理的数据。
S202、通过循环比较电路对待处理的所述数据进行循环比较运算。
S203、通过结束判断电路判断是否满足结束所述循环比较运算的条件。
具体的,每一次比较运算结束后,可以通过结束判断电路判断当前是否满足结束循环比较运算的条件。
S204、若满足结束所述循环比较运算的条件,则输出向量极值。
具体的,如果结束判断电路判断出本次比较运算结束后,可以结束循环比较运算,则停止循环比较运算,并通过极值寄存电路输出最终的向量极值。可选的,上述向量极值可以表征为数据读入电路接收到的所有待处理的数据中的极值。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的数据输入到循环比较电路,并通过循环比较电路进行循环比较待处理的所述数据,通过结束判断电路判断是否满足结束循环比较运算的条件,若满足结束比较运算的条件,则输出向量极值,该过程可以通过循环比较运算得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号,处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图12为一个实施例提供的另一种数据处理方法的流程示意图,该方法可以通过图3及图6至图8所示的数据选择器进行处理,本实施例涉及的是数据进行循环比较运算选取极值的过程。如图11所示,该方法包括:
S301、接收待处理的数据。
S302、对待处理的所述数据进行循环比较运算。
S303、获取循环比较电路的运算总次数。
具体的,通过计数单元可以累加记录得到第一复用比较器和第二复用比较器循环比较运算的总次数。
需要说明的是,循环比较运算的总次数可以等于第一复用比较器进行循环比较运算的总次数,还可以等于第二复用比较器进行循环比较运算的总次数。
S304、根据循环比较电路的所述运算总次数,判断是否满足结束所述循环比较运算的条件。
具体的,每一次比较运算结束后,数据选择器中的结束判断电路可以根据循环比较电路的运算总次数,判断当前是否满足结束循环比较运算的条件。
S305、若满足结束所述循环比较运算的条件,则输出向量极值。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的数据输入到循环比较电路,并通过循环比较电路进行循环比较待处理的所述数据,通过结束判断电路判断是否满足结束循环比较运算的条件,若满足结束比较运算的条件,则输出向量极值,该过程可以通过循环比较运算得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号,处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S302中对待处理的所述数据进行循环比较运算,包括:按照寄存器中存储区间的地址顺序,将所述标量寄存器阵列中存储的待处理的所述数据输入到所述循环比较电路,通过所述循环比较电路循环比较待处理的所述数据。
具体的,数据选择器可以按照存储区间的首地址将标量寄存器阵列中存储的待处理数据依次输入到第一复用比较器和/或第二复用比较器中,每一次比较运算时,标量寄存器阵列可以按照存储区间的地址顺序向第一复用比较器和/或第二复用比较器输入一个待处理的数据,并且第一复用比较器和第二复用比较器均可以对两个待处理的数据进行比较运算,得到两个数据中的极大值或极小值。可选的,循环比较运算的总次数可以等于待处理的数据的个数。
本实施例提供的一种数据处理方法,按照存储区间的地址顺序将标量寄存器阵列中存储的数据输入到所述复用比较器,通过所述循环比较电路循环比较待处理的,每一次比较运算可以接收到一个数据进行比较运算,不断循环,直到结束循环比较,从而可以得到待处理浮点数中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图13为另一实施例提供的数据处理方法的流程示意图,所述接收待处理的数据的步骤包括:
S1011、所述地址计数器按照寄存器中存储区间的地址顺序,读入所述寄存器中存储区间内存储的待处理的数据。
具体的,根据寄存器中存储区间的首地址和寄存器中存储区间的地址顺序,每一次比较运算时,通过地址计数器可以读入一个寄存器中存储区间内存储的待处理的数据。可选的,寄存器中存储区间的数量可以等于待处理的数据的数量。可选的,地址计数器读入数据的次数可以等于待处理的数据的数量。
S1012、通过所述标量数据读取单元读取地址计数器读入的待处理的所述数据。
需要说明的是,每一次比较运算时,地址计数器可以读入一个寄存器中存储区间内存储的待处理的数据,并通过标量数据读取单元读取本次比较运算地址计数器读入的待处理的数据。可选的,标量数据读取单元读取数据的次数可以等于待处理数据的数量。
本实施例提供的一种数据处理方法,根据寄存器中存储区间的首地址和寄存器中存储区间的地址顺序,每一次比较运算时,通过地址计数器可以读入一个寄存器中存储区间内存储的待处理的数据,并通过标量数据读取单元读取本次比较运算地址计数器读入的待处理的数据,从而使得后续循环比较运算时,每一次比较运算可以接收到一个浮点数进行比较运算,不断循环,直到结束循环比较,从而可以得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S102中对待处理的所述数据进行循环比较运算,包括:将所述标量数据读取单元读取的待处理的所述数据输入到所述循环比较电路,通过所述循环比较电路循环比较待处理的所述数据。
需要说明的是,数据选择器可以将标量数据读取单元读取的待处理数据依次输入到第一复用比较器和/或第二复用比较器中,每一次比较运算时,地址计数器按照寄存器中存储区间的地址的顺序读入对应的待处理的数据,标量数据读取单元读取地址计数器本次比较运算读入的对应待处理的数据,并将该待处理的数据输入到第一复用比较器和/或第二复用比较器进行比较运算。可选的,第一复用比较器和第二复用比较器均可以对两个待处理的数据进行比较运算,得到两个数据中的极大值或极小值。可选的,循环比较运算的总次数可以等于待处理的数据的个数。
本实施例提供的一种数据处理方法,将所述标量数据读取单元读取的待处理的所述数据输入到所述循环比较电路,通过所述循环比较电路循环比较待处理的所述数据,每一次比较运算可以接收到一个数据进行比较运算,不断循环,直到结束循环比较,从而可以得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S104中根据当前寄存器存储区间对应的所述地址移位数据,判断是否满足结束所述循环比较运算的条件,包括:根据寄存器存储区间对应的所述地址移位数值,与比较运算寄存器总共需要的地址移位数值,判断所述循环比较运算是否满足结束所述循环比较运算的条件。
具体的,数据选择器通过判断单元可以根据地址计数器中累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数值,与比较N个数据寄存器总共需要的地址移位数值的大小关系,判断循环比较运算是否满足结束循环比较运算的条件。可选的,结束循环比较运算的条件可以为地址计数器中累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数值,等于比较N个数据寄存器总共需要的地址移位数值。
本实施例提供的一种数据处理方法,判断单元根据地址计数器中累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数值,与比较运算寄存器总共需要的地址移位数值的大小,判断循环比较运算是否满足结束循环比较的条件,当满足结束循环比较运算的条件时,从而可以得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图14为另一实施例提供的数据处理方法的流程示意图,本实施例涉及的是在接收待处理的数据的步骤之后,该方法还包括:
S106、通过数据读取单元接收待处理的所述数据的个数N。
S107、根据寄存器中N个存储区间的首地址和所述数据个数读入所述数据,并将所述数据存储至标量寄存器阵列中。
具体的,标量寄存器阵列可以根据寄存器中N个存储区间的首地址,依次将数据读取单元读入的待处理数据存放至标量寄存器阵列中的N个存储区间中。可选的,每一次所述标量寄存器阵列可以存储一个待处理的数据。可选的,每一个存储区间可以存放一个待处理的数据。可选的,存储区间的数量可以等于接收到的待处理的数据个数,还可以大于接收到的待处理的数据个数。
示例性的,如果待处理数据的首地址对应的存储区间为A[0],数据读入电路读入的是三个16位浮点数,分别为1011110000000100→1,1011110011000100→2,1011110001010100→3,则标量寄存器阵列可以有三个寄存器存储区间存放数据,当第1个数据存放至存储区间A[0]对应的首地址中时,则第2个数据可以存放至下一个存储区间(即A[1])对应的存储地址中,第3个浮点数可以继续存放至下一个存储区间(即A[2])对应的存储地址中。
本实施例提供的一种数据处理方法,通过数据读取单元接收待处理的数据的个数,通过所述标量寄存器阵列接收数据读取单元输入的待处理数据,所述标量寄存器阵列按照存储区间的首地址依次将接收到的待处理的数据存放至存储区间中,从而使得每一个存储区间存放一个待处理的数据,以便后续循环比较运算时,每一次比较运算可以接收到一个数据进行比较运算,不断循环,直到结束循环比较,从而可以得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
另一实施例提供的向量极值选择方法,上述S302中对待处理的所述数据进行循环比较运算,包括:按照所述存储区间的地址顺序,将所述标量寄存器阵列中存储的待处理的所述数据输入到所述循环比较电路,通过所述循环比较电路循环比较待处理的所述数据。
具体的,数据选择器可以按照存储区间的首地址将标量寄存器阵列中存储的待处理数据依次输入到第一复用比较器和/或第二复用比较器中,每一次比较运算时,标量寄存器阵列可以按照存储区间的地址顺序向第一复用比较器和/或第二复用比较器输入一个待处理的数据,并且第一复用比较器和第二复用比较器均可以对两个待处理的数据进行比较运算,得到两个数据中的极大值或极小值。可选的,循环比较运算的总次数可以等于待处理的数据的个数。
本实施例提供的一种向量极值选择方法,按照存储区间的地址顺序将标量寄存器阵列中存储的数据输入到所述复用比较器,通过所述循环比较电路循环比较待处理的,每一次比较运算可以接收到一个数据进行比较运算,不断循环,直到结束循环比较,从而可以得到待处理浮点数中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
在其中一个实施例中,上述S304中根据循环比较电路的所述运算总次数,判断是否满足结束所述循环比较运算的条件,包括:根据循环比较电路的所述运算总次数,与数据读入电路接收到的待处理数据的个数,判断所述循环比较运算是否满足结束所述循环比较运算的条件。
具体的,判断单元可以根据循环比较电路循环比较运算的总次数与数据读入电路接收到的待处理数据的个数,判断循环比较运算是否满足结束循环比较运算的条件。可选的,结束循环比较运算的条件可以为循环比较运算的总次数等于数据读取单元接收到的待处理数据的个数。
本实施例提供的一种数据处理方法,通过所述计数单元获取所述复用比较器循环比较的次数,所述判断单元根据所述循环比较电路循环比较的总次数,判断循环比较运算是否满足结束循环比较的条件,当满足结束循环比较运算的条件时,从而可以得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
图15为另一实施例提供的数据处理方法的流程示意图,上述S203中通过结束判断电路判断是否满足结束所述循环比较运算的条件,包括:
S2031、通过判断单元获取所述标量寄存器阵列中,当前寄存器中被清空的存储区间数量。
具体的,通过判断单元可以获取标量寄存器阵列中所有存储区间,当前已经被清空的存储区间的数量。需要说明的是,已经被清空的存储区间可以表征为存储区间中存储的数据已经输入到循环比较电路,进行了比较运算处理,当前该存储区间中没有存储的数据了。
S2032、根据所述标量寄存器阵列中,当前寄存器中被清空的存储区间的数量,判断所述循环比较运算是否满足结束所述循环比较运算的条件。
具体的,判断单元可以根据标量寄存器阵列中当前被清空的存储区间的数量,与数据读取单元接收到的数据的个数的大小关系,判断循环比较运算是否满足结束循环比较运算的条件。可选的,结束循环比较运算的条件可以为标量寄存器阵列中当前被清空的存储区间的数量,等于数据读取单元接收到的数据的个数。
本实施例提供的一种向量极值选择方法,判断单元根据标量寄存器阵列中当前被清空的存储区间的数量,与数据读取单元接收到的数据个数的大小,判断循环比较运算是否满足结束循环比较的条件,当满足结束循环比较运算的条件时,从而可以得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
另一实施例提供的数据处理方法,在上述S304根据循环比较电路的所述运算次数,判断是否满足结束所述循环比较运算的条件的步骤之后,该方法还包括:若否,则继续通过所述循环比较电路对待处理的所述数据进行比较运算。
具体的,如果结束判断电路判断出本次比较运算结束后,不满足结束循环比较运算的条件,则数据选择器可以通过循环比较电路对数据读入电路中未进行比较运算的待处理数据,继续进行比较运算。可选的,数据读入电路中未进行比较运算的待处理数据可以有一个,还可以有多个。
本实施例提供的一种数据处理方法,如果不满足结束循环比较的条件,数据选择器可以继续进行比较运算,直到将所有的待处理数据都进行比较运算,从而可以得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
另一实施例提供的数据处理方法的流程示意图,上述S305中若满足结束所述循环比较运算的条件,则输出向量极值,包括:通过极值寄存电路接收所述判断单元输入的逻辑判断信号,并根据所述逻辑判断信号输出运算结果。
具体的,极值寄存电路可以接收判断单元输入的高电平逻辑判断信号,还可以接收判断单元输入的低电平逻辑判断信号。若极值寄存电路接收到的是低电平逻辑判断信号,则可以表示数据选择器需要继续通过循环比较电路对未进行比较运算的待处理数据进行循环比较运算。若极值寄存电路接收到的是高电平逻辑判断信号,则可以结束运算,输出最终的比较运算结果。
本实施例提供的一种数据处理方法,接收所述判断单元输入的高电平逻辑判断信号,所述极值寄存电路根据所述高电平逻辑判断信号输出运算结果,从而可以得到待处理数据中的极大值和极小值,节省运算时间;另外,数据选择器能够根据循环比较电路接收到的不同功能选择模式信号,处理多种不同位宽的数据比较运算,有效减小了数据选择器占用AI芯片的面积。
为了便于本领域技术人员的理解,以数据选择器可处理16位浮点数,数据选择器接收的是N个32位浮点数为例介绍本发明提供的向量极值选择方法,具体的方法包括:
S401、通过数据读入电路接收浮点数的个数N,并按照寄存器中N个存储区间的首地址A和浮点数的个数N读入N个浮点数(即A(a1,a2,...,aN)),存储至存储区间;
S402、数据读入电路按照寄存器中N个存储区间的首地址A,依次输出每个存储区间中存储的浮点数至循环比较电路;
S403、通过循环比较电路分别对极值寄存电路中存储的极值浮点数,与本次运算时接收到的浮点数的高低16位对应的浮点数进行循环比较(即将A分成高16位A1(a1[31:16],a2[31:16],...,aN[31:16])和低16位A2(a1[15:0],a2[15:0],...,aN[15:0]));
S404、循环比较结束后,通过极值寄存电路输出运算结果。
可选的,上述运算结果可以由向量A1和A2拼接得到,即Amax={max(A1),max(A2)},Amin={min(A1),min(A2)}。可选的,极大值Amax的高低16位数据可以为同一个浮点数,还可以为不同浮点数的高低16位数据拼接而成。可选的,极小值Amin的高低16位数据可以为同一个浮点数,还可以为不同浮点数的高低16位数据拼接而成。
另外,若第一复用比较器和第二复用比较器接收到的两个待处理浮点数为a和b,在比较运算过程中,第一复用比较器和第二复用比较器中的每一个单元的判断结果输出端口均为两位有效,即高电平和低电平均有效,具体比较情况见表1:
表1
Figure BDA0001886574690000311
以上S401至S404的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
另外,若以数据选择器可处理16位浮点数,数据选择器接收的是N个16位浮点数为例介绍本发明提供的向量极值选择方法,具体的方法包括:
S501、通过数据读入电路接收浮点数的个数N,并按照寄存器中N个存储区间的首地址A和浮点数的个数N读入N个浮点数(即B(b1,b2,...,bN)),存储至存储区间;
S502、数据读入电路按照寄存器中N个存储区间的首地址A,依次输出每个存储区间中存储的浮点数至循环比较电路;
S503、通过循环比较电路分别对极值寄存电路中存储的极值浮点数,与本次运算时接收到的浮点数进行循环比较;
S504、循环比较结束后,通过极值寄存电路输出运算结果。
可选的,上述运算结果可以为Bmax={max(b1,b2,...,bN)},Bmin={min(b1,b2,...,bN)}。
另外,若第一复用比较器和第二复用比较器接收到的两个待处理浮点数为a和b,在比较运算过程中,第一复用比较器和第二复用比较器中的每一个单元的判断结果输出端口均为一位有效,即高电平或低电平有效,若以低电平有效为例,具体比较情况见表2:
表2
Figure BDA0001886574690000321
以上S301至S304的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据选择器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据选择器时,数据选择器间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图16为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图17所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图18所示,图18提供了一种板卡,上述板卡除了包括上述芯片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 (21)

1.一种数据选择器,其特征在于,所述数据选择器包括:数据读入电路、循环比较电路、结束判断电路和极值寄存电路;
其中,所述数据读入电路的第一输出端与所述循环比较电路的第一输入端,所述数据读入电路的第二输出端与所述结束判断电路的输入端连接,所述循环比较电路的输出端与所述极值寄存电路的第一输入端连接,所述结束判断电路的输出端与所述极值寄存电路的第二输入端连接,所述极值寄存电路的第一输出端与所述循环比较电路的第二输入端连接;所述循环比较电路包括:第一复用比较器和第二复用比较器,所述第一复用比较器或第二复用比较器包括:功能选择模式信号输入端口、数据输入端口、调用极值输入端口、极大值输出端口、极小值输出端口和判断信号输出端口;
所述数据读入电路用于接收数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述循环比较电路用于循环比较接收到的所述数据的大小,所述结束判断电路用于判断循环比较处理是否结束,所述极值寄存电路用于输出比较运算的结果;
所述第一复用比较器用于对两个数据进行比较得到最大的数据,所述第二复用比较器用于对两个数据进行比较得到最小的数据;所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述数据输入端口用于接收输入的所述数据,所述调用极值输入端口用于接收每一次数据比较运算结束后所述极值寄存电路中存储的极值,所述极大值输出端口用于输出每一次数据比较运算后的极大值,所述极小值输出端口用于输出每一次数据比较运算后的极小值,所述判断信号输出端口用于输出是否停止采用所述第二复用比较器进行比较运算的逻辑信号。
2.根据权利要求1所述的数据选择器,其特征在于,所述循环比较电路中包括第一输入端,用于接收输入的功能选择模式信号;所述功能选择模式信号用于确定数据选择器处理的数据的位宽。
3.根据权利要求1所述的数据选择器,其特征在于,所述数据读入电路包括:数据读取单元和标量寄存器阵列,所述数据读取单元的输出端与所述标量寄存器阵列的输入端连接;
所述数据读取单元用于接收所述数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述标量寄存器阵列用于根据所述寄存器中N个存储区间的地址存储所述数据读取单元读入的所述数据。
4.根据权利要求3所述的数据选择器,其特征在于,所述数据读入电路中的所述数据读取单元包括:数据输入端口,数据个数输入端口和数据输出端口,所述数据输入端口用于根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述数据个数输入端口用于接收读入所述数据的个数N,所述数据输出端口用于输出读入的所述数据;
所述数据读入电路中的所述标量寄存器阵列包括:数据输入端口,数据输出端口和清空存储区间数量输出端口,所述数据输入端口用于接收所述数据,所述数据输出端口用于输出寄存器中每一个存储区间内存储的所述数据,所述清空存储区间数量输出端口用于输出所述标量寄存器阵列中,当前寄存器中被清空的存储区间的数量。
5.根据权利要求1所述的数据选择器,其特征在于,所述结束判断电路包括:判断单元,所述判断单元用于判断标量寄存器阵列中,寄存器中的存储区间存储的数据是否已经被清空。
6.根据权利要求5所述的数据选择器,其特征在于,所述判断单元包括:清空存储区间数量输入端口和判断结果输出端口,所述数据个数输入端口用于接收所述标量寄存器阵列中,当前寄存器中被清空的存储区间的数量,所述判断结果输出端口用于输出所述标量寄存器阵列中,当前寄存器中被清空的存储区间的数量,与数据读取单元接收的数据个数N的比较结果。
7.根据权利要求1所述的数据选择器,其特征在于,所述极值寄存电路包括:极大值寄存单元和极小值寄存单元;所述极大值寄存单元用于存储所述第一复用比较器每一次比较运算后得到的极大值,所述极小值寄存单元用于存储所述第二复用比较器每一次比较运算后得到的极小值。
8.根据权利要求7所述的数据选择器,其特征在于,所述极值寄存电路中的所述极大值寄存单元包括:极大值调用输出端口,极大值输入端口,极大值输出端口和第一判断信号输入端口,所述极大值调用输出端口用于每一次比较运算时,输出所述极大值寄存单元中存储的极大值,所述极大值输入端口用于接收每一次比较运算后得到的极大值,所述极大值输出端口用于循环比较结束后输出N个所述数据中的极大值,所述第一判断信号输入端口用于接收所述结束判断电路输出的逻辑判断信号;
所述极值寄存电路中的所述极小值寄存单元包括:极小值调用输出端口,极小值输入端口,极小值输出端口和第二判断信号输入端口,所述极小值调用输出端口用于每一次比较运算时,输出所述极小值寄存单元中存储的极小值,所述极小值输入端口用于接收每一次比较运算后得到的极小值,所述极小值输出端口用于循环比较结束后输出N个所述数据中的极小值,所述第二判断信号输入端口用于接收所述结束判断电路输出的逻辑判断信号。
9.一种数据处理方法,其特征在于,所述方法包括:
接收待处理的数据;
通过循环比较电路对待处理的所述数据进行循环比较运算;
通过结束判断电路判断是否满足结束所述循环比较运算的条件;
若满足结束所述循环比较运算的条件,则输出向量极值;
其中,所述循环比较电路包括:第一复用比较器和第二复用比较器,所述第一复用比较器或第二复用比较器包括:功能选择模式信号输入端口、数据输入端口、调用极值输入端口、极大值输出端口、极小值输出端口和判断信号输出端口;所述第一复用比较器用于对两个数据进行比较得到最大的数据,所述第二复用比较器用于对两个数据进行比较得到最小的数据;所述功能选择模式信号输入端口用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述数据输入端口用于接收输入的所述数据,所述调用极值输入端口用于接收每一次数据比较运算结束后极值寄存电路中存储的极值,所述极大值输出端口用于输出每一次数据比较运算后的极大值,所述极小值输出端口用于输出每一次数据比较运算后的极小值,所述判断信号输出端口用于输出是否停止采用所述第二复用比较器进行比较运算的逻辑信号。
10.根据权利要求9所述的方法,其特征在于,在接收待处理的数据之后,还包括:
通过数据读取单元接收待处理的所述数据的个数N;
根据寄存器中N个存储区间的首地址和所述数据个数读入所述数据,并将所述数据存储至标量寄存器阵列中。
11.根据权利要求10所述的方法,其特征在于,所述通过循环比较电路对待处理的所述数据进行循环比较运算,包括:按照所述寄存器中存储区间的地址顺序,将所述标量寄存器阵列中存储的待处理的所述数据输入到所述循环比较电路,通过所述循环比较电路循环比较待处理的所述数据。
12.根据权利要求11所述的方法,其特征在于,所述通过结束判断电路判断是否满足结束所述循环比较运算的条件,包括:
通过判断单元获取所述标量寄存器阵列中,当前寄存器中被清空的存储区间数量;
根据所述标量寄存器阵列中,当前寄存器中被清空的存储区间的数量,判断所述循环比较运算是否满足结束所述循环比较运算的条件。
13.根据权利要求9所述的方法,其特征在于,在通过结束判断电路判断是否满足结束所述循环比较运算的条件之后,还包括:
若否,则继续通过所述循环比较电路对待处理的所述数据进行比较运算。
14.根据权利要求9所述的方法,其特征在于,若满足结束所述循环比较运算的条件,则输出向量极值,包括:
通过极值寄存电路接收判断单元输入的逻辑判断信号,并根据所述逻辑判断信号输出比较运算结果。
15.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-8任一项所述的数据选择器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据选择器时,所述多个所述数据选择器间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据选择器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据选择器共享同一控制系统或拥有各自的控制系统;多个所述数据选择器共享内存或者拥有各自的内存;多个所述数据选择器的互联方式是任意互联拓扑。
16.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求15所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
17.根据权利要求16所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
18.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求15所述的机器学习运算装置或如权利要求16所述的组合处理装置。
19.一种电子设备,其特征在于,所述电子设备包括如权利要求18所述的神经网络芯片。
20.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求18所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
21.根据权利要求20所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
CN201811450577.7A 2018-11-30 2018-11-30 数据选择器、数据处理方法、芯片及电子设备 Active CN111260042B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811450577.7A CN111260042B (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
CN201811450577.7A CN111260042B (zh) 2018-11-30 2018-11-30 数据选择器、数据处理方法、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN111260042A CN111260042A (zh) 2020-06-09
CN111260042B true CN111260042B (zh) 2022-12-02

Family

ID=70944555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811450577.7A Active CN111260042B (zh) 2018-11-30 2018-11-30 数据选择器、数据处理方法、芯片及电子设备

Country Status (1)

Country Link
CN (1) CN111260042B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114217857B (zh) * 2022-02-21 2022-06-07 深圳云豹智能有限公司 一种数据处理电路、系统及数据处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145076A (en) * 1997-03-14 2000-11-07 Nokia Mobile Phones Limited System for executing nested software loops with tracking of loop nesting level
CN1987771A (zh) * 2005-12-23 2007-06-27 中兴通讯股份有限公司 一种实现数据排序的硬件电路及方法
CN101114215A (zh) * 2006-07-28 2008-01-30 中兴通讯股份有限公司 实现数据排序的电路和方法
CN105512179A (zh) * 2015-11-25 2016-04-20 中国科学院计算技术研究所 硬件实现的数据排序装置、方法及数据处理芯片

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145076A (en) * 1997-03-14 2000-11-07 Nokia Mobile Phones Limited System for executing nested software loops with tracking of loop nesting level
CN1987771A (zh) * 2005-12-23 2007-06-27 中兴通讯股份有限公司 一种实现数据排序的硬件电路及方法
CN101114215A (zh) * 2006-07-28 2008-01-30 中兴通讯股份有限公司 实现数据排序的电路和方法
CN105512179A (zh) * 2015-11-25 2016-04-20 中国科学院计算技术研究所 硬件实现的数据排序装置、方法及数据处理芯片

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《基于数据选择器和D触发器的多输入时序电路设计》;任骏原;《现代电子技术》;20100630(第323期);第10-12页 *

Also Published As

Publication number Publication date
CN111260042A (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
CN109522052B (zh) 一种计算装置及板卡
CN112686379B (zh) 集成电路装置、电子设备、板卡和计算方法
CN110059797B (zh) 一种计算装置及相关产品
CN111260043B (zh) 数据选择器、数据处理方法、芯片及电子设备
CN109753319B (zh) 一种释放动态链接库的装置及相关产品
WO2021185262A1 (zh) 计算装置、方法、板卡和计算机可读存储介质
CN111260042B (zh) 数据选择器、数据处理方法、芯片及电子设备
CN111340229B (zh) 数据选择器、数据处理方法、芯片及电子设备
CN111381875B (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111258541A (zh) 乘法器、数据处理方法、芯片及电子设备
CN209895329U (zh) 乘法器
CN111258634B (zh) 数据选择装置、数据处理方法、芯片及电子设备
CN111258632B (zh) 数据选择装置、数据处理方法、芯片及电子设备
CN111260070B (zh) 运算方法、装置及相关产品
CN111384944B (zh) 全加器、半加器、数据处理方法、芯片及电子设备
CN111381802B (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111260044B (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111258534B (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111382855B (zh) 数据处理装置、方法、芯片及电子设备
CN111382856A (zh) 数据处理装置、方法、芯片及电子设备
US20230297379A1 (en) Data processing apparatus and related product
CN111124497B (zh) 运算方法、装置、计算机设备和存储介质
CN111381803A (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111381804A (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111026440B (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