CN114968175A - 一种用于智能计算加速的可配置移位加法融合单元 - Google Patents

一种用于智能计算加速的可配置移位加法融合单元 Download PDF

Info

Publication number
CN114968175A
CN114968175A CN202210629916.8A CN202210629916A CN114968175A CN 114968175 A CN114968175 A CN 114968175A CN 202210629916 A CN202210629916 A CN 202210629916A CN 114968175 A CN114968175 A CN 114968175A
Authority
CN
China
Prior art keywords
operand
shift
bit
result
code
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.)
Granted
Application number
CN202210629916.8A
Other languages
English (en)
Other versions
CN114968175B (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.)
Hunan Guliang Microelectronics Co ltd
Original Assignee
Hunan Guliang Microelectronics 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 Hunan Guliang Microelectronics Co ltd filed Critical Hunan Guliang Microelectronics Co ltd
Priority to CN202210629916.8A priority Critical patent/CN114968175B/zh
Publication of CN114968175A publication Critical patent/CN114968175A/zh
Application granted granted Critical
Publication of CN114968175B publication Critical patent/CN114968175B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/508Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using carry look-ahead circuits
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种用于智能计算加速的可配置移位加法融合单元,包括:业务应用场景及操作数获取模块,用于获取当前业务应用场景和需要运算的操作数A和操作数B;配置选择模块,用于根据当前业务应用场景和操作数A和操作数B选取对应的配置向量;部件选择模块,用于根据配置向量选取对应运算模块部件;运算模块,用于根据对应的配置向量和操作数完成移位加法运算,本发明主要应用于人工智能等智能计算芯片中的运算部件,用于对复杂的数学运算进行加速,优势是通过融合可配置的移位和加法运算操作,不仅可以对数学运算进行加速,还可以在多重操作间共享运算部件、节省面积开销的目的。

Description

一种用于智能计算加速的可配置移位加法融合单元
技术领域
本发明涉及数据处理设备技术领域,尤其涉及一种用于智能计算加速的可配置移位加法融合单元。
背景技术
随着社会信息化的不断发展,人工智能已逐渐走进人们的日常生活,人工智能的智能计算芯片中的运算部件可以通过内置算法快速处理获取的数据,从而完成各向操作,而深度学习算法、快速傅里叶变换(FFT,Fast Fourier Transform)和滤波运算等都是常用的内置算法,其中的复杂的数学运算比如(A32+/-B32)>>C,A16+/-B32等操作广泛存在,为了快速处理这些复杂算法往往需要采用硬件加速的方式对这些复杂算法进行加速,从而达到提升人工智能的处理性能和能耗效率的目的,但由于人工智能面对的应用场景多样化,采集的数据也各有不同,致使需要采用不同的算法对这些数据进行处理,而现有的硬件加速的方式是针对不同的应用场景分别提供一种特点加速硬件,导致当需要提升人工智能处理场景的全面性时,往往需要设置多个特点加速硬件,从而满足对不同算法加速的目的,但该方法在设置多个特点加速硬件后会增大硬件面积,并增加运行功耗开销,因此,亟需一种用于智能计算加速的可配置移位加法融合单元,用于解决当需要提升人工智能处理场景的全面性时,往往需要设置多个特点加速硬件,从而满足对不同算法加速的目的,但该方法在设置多个特点加速硬件后会增大硬件面积,并增加运行功耗开销的问题。
发明内容
针对现有技术的不足,本发明提供一种用于智能计算加速的可配置移位加法融合单元,用于解决当需要提升人工智能处理场景的全面性时,往往需要设置多个特点加速硬件,从而满足对不同算法加速的目的,但该方法在设置多个特点加速硬件后会增大硬件面积,并增加运行功耗开销的问题。
一种用于智能计算加速的可配置移位加法融合单元,包括:
业务应用场景及操作数获取模块,用于获取当前业务应用场景和需要运算的操作数A和操作数B;
配置选择模块,用于根据当前业务应用场景和操作数A和操作数B选取对应的配置向量;
部件选择模块,用于根据配置向量选取对应运算模块部件;
运算模块,用于根据对应的配置向量和操作数完成移位加法运算。
作为本发明的一种实施例,运算模块包括:
操作数A及其前处理单元,用于根据配置向量对操作数A进行前操作;
操作数B及其前处理单元,用于根据配置向量对操作数B进行前操作;
加法/减法运算单元,用于根据配置向量完成处理后的操作数的加法或减法;
结果后处理单元,用于根据配置向量对加法/减法运算单元4的结果执行后处理。
作为本发明的一种实施例,配置向量包括n位的开关向量{sw0,sw1,……,swn-1}和移位向量。
作为本发明的一种实施例,每位开关向量对应一个配置开关,每个配置开关控制一种类型的操作选择或路径选。
作为本发明的一种实施例,移位向量包括:
左移向量N_SL,用于决定左移的位数;
右移向量N_SR;
右移向量N_SR2;
右移向量N_SR和右移向量N_SR2用于决定右移的位数。
作为本发明的一种实施例,操作数A及其前处理单元执行包括如下操作:
对操作数A进行左移操作并对左移操作结果进行饱和操作,其中,配置开关A_SL_sw和配置开关A_SAT_sw分别决定是否进行左移和是否进行饱和操作;左移的位数由左移向量N_SL决定。
作为本发明的一种实施例,操作数B及其前处理单元执行包括如下操作:
对操作数B进行右移操作并对右移操作结果进行舍入操作,其中,配置开关B_SR_sw和配置开关B_RND_sw分别决定是否进行右移和是否进行舍入操作;右移的位数由右移向量N_SR决定。
作为本发明的一种实施例,结果后处理单元对加法/减法运算单元的结果执行的后处理操作主要包括饱和操作、右移操作以及舍入操作,其中,饱和操作、右移操作以及舍入操作分别由对应的配置开关进行控制,右移的位数由右移向量N_SR2决定。
作为本发明的一种实施例,配置开关A_SAT_sw决定左移操作结果是否进行饱和操作包括:
基于操作数A的高位部分确定操作数A的第一预测码和第二预测码;
根据第一预测码和第二预测码的编码计算得到操作数A的上溢预测码;
基于规约或运算规则,对上溢预测码进行计算,得到上溢预测值;
基于配置开关A_SAT_sw,确定当前操作数A的上溢限制位宽;
基于左移操作结果中次高位向最高位的进位,确定左移操作结果是否超出上溢限制位宽的上溢判断结果;
基于上溢预测值和上溢判断结果,判断左移操作结果是否上溢出,若是,决定左移操作结果进行饱和操作;
若否,决定左移操作结果不进行饱和操作;
其中,第一预测码的每一位则是根据操作数A的高位部分与操作数A的高位部分的相同权重位采取异或运算得到,第二预测码的每一位则是根据操作数A的高位部分与操作数A的高位部分的相同权重位采取或非运算得到;
操作数A的上溢预测码的每一位根据第一预测码的每一位与权重低一位的第二预测码采用同或运算得到。
作为本发明的一种实施例,配置开关B_RND_sw决定右移操作结果是否进行舍入操作包括:
基于操作数B的低位部分确定操作数B的第一估测码和第二估测码;
根据第一估测码和第二估测码的编码计算得到操作数B的下舍估测码;
基于规约或运算规则,对下舍估测码进行计算,得到下舍估测值;
基于配置开关B_RND_sw,确定当前操作数B的下舍限制位宽;
基于右移操作结果中次低位向最低位的反向进位,确定右移操作是否小于下舍限制位宽的下舍判断结果;
基于下舍估测值和下舍判断结果,判断右移操作结果是否下舍出,若是,决定右移操作结果进行舍入操作;
若否,决定右移操作结果不进行舍入操作;
其中,第一估测码的每一位则是根据操作数B的低位部分和操作数B的低位部分的相同权重采取异或运算得到,第二估测码的每一位则是根据操作数B的低位部分和操作数B的低位部分的相同权重位采取或非运算得到;
操作数B的下舍估测码的每一位由第一估测码的每一位与权重低一位的第二估测码采取同或运算得到。
本发明的有益效果为:本发明主要应用于人工智能等智能计算芯片中的运算部件,用于对复杂的数学运算进行加速,优势是通过融合可配置的移位和加法运算操作,不仅可以对数学运算进行加速,还可以在多重操作间共享运算部件、节省面积开销的目的。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种用于智能计算加速的可配置移位加法融合单元的模块示意图;
图2为本发明实施例中一种用于智能计算加速的可配置移位加法融合单元中运算模块的一般结构示意图;
图3为本发明实施例中一种用于智能计算加速的可配置移位加法融合单元中判断左移操作结果是否需要进行饱和操作的判断流程图;
图4为本发明实施例中一种用于智能计算加速的可配置移位加法融合单元中判断右移操作结果是否需要进行舍入操作的判断流程图;
图5为本发明实施例中一种用于智能计算加速的可配置移位加法融合单元在一种特点应用场景的结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
请参阅图1,本发明实施例提供了一种用于智能计算加速的可配置移位加法融合单元,包括:
业务应用场景及操作数获取模块10,用于获取当前业务应用场景和需要运算的操作数A和操作数B;
配置选择模块20,用于根据当前业务应用场景和操作数A和操作数B选取对应的配置向量;
部件选择模块30,用于根据配置向量选取对应运算模块部件;
运算模块40,用于根据对应的配置向量和操作数完成移位加法运算;
上述技术方案的工作原理为:本发明主要应用于人工智能等智能计算芯片中的运算部件,包括有业务应用场景及操作数获取模块10、配置选择模块20、部件选择模块30和运算模块40;该业务应用场景及操作数获取模块10主要用于获取外部数据,即获取当前业务应用场景和需要运算的操作数A和操作数B;该配置选择模块20主要用于根据当前业务应用场景和操作数A和操作数B选取对应的配置向量;其中,配置向量决定了当前单元的具体操作;配置向量优选包括算法选择、饱和操作选择、移位操作选择、舍入操作选择等内容;部件选择模块30用于根据配置向量选取对应运算模块部件,如是否进行左移的运算模块部件,或者是否对操作数进行移位的运算模块部件等;由于本发明对应运算模块部件为移位加法融合单元,即本发明应用的智能设备中的所有运算需求均通过该移位加法融合单元实现硬件共享的目的,当选取对应的运算模块后,其他未被选取的模块不参与运算,相较于独立设置加速硬件时极大的节省了运行功耗开销;被选取到的运算模块40则用于根据对应的配置向量和操作数完成移位加法运算;
上述技术方案的有益效果为:本发明主要应用于人工智能等智能计算芯片中的运算部件,用于对复杂的数学运算进行加速,优势是通过融合可配置的移位和加法运算操作,不仅可以对数学运算进行加速,还可以在多重操作间共享运算部件、节省面积开销的目的。
请参阅图2,在一个实施例中,运算模块40包括:
操作数A及其前处理单元2,用于根据配置向量1对操作数A进行前操作;
操作数B及其前处理单元3,用于根据配置向量1对操作数B进行前操作;
加法/减法运算单元4,用于根据配置向量1完成处理后的操作数的加法或减法;
结果后处理单元5,用于根据配置向量1对加法/减法运算单元4的结果执行后处理;
上述技术方案的有益效果为:本发明相比于传统方案的优点是将多种类型的移位、加法/减法操作融合到一个单元中,虽然增大了单个单元的面积和延迟,但可在多个执行部件之间实现共享,并且由单条指令完成一次配置和运算,可极大的节省移位加法融合单元硬件面积和运行功耗。
请参阅图2,在一个实施例中,配置向量1包括n位的开关向量1_1{sw0,sw1,……,swn-1}和移位向量1_2;
在一个实施例中,每位开关向量1_1对应一个配置开关,每个配置开关控制一种类型的操作选择或路径选。
在一个实施例中,移位向量1_2包括:左移向量N_SL,用于决定左移的位数;右移向量N_SR;右移向量N_SR2;右移向量N_SR和右移向量N_SR2用于决定右移的位数。
在一个实施例中,操作数A及其前处理单元执行包括如下操作:
对操作数A进行左移操作并对左移操作结果进行饱和操作,其中,配置开关A_SL_sw和配置开关A_SAT_sw分别决定是否进行左移和是否进行饱和操作;左移的位数由左移向量N_SL决定。
请参阅图3,在一个实施例中,配置开关A_SAT_sw决定左移操作结果是否进行饱和操作包括:
S101、基于操作数A的高位部分确定操作数A的第一预测码和第二预测码;
S102、根据第一预测码和第二预测码的编码计算得到操作数A的上溢预测码;
S103、基于规约或运算规则,对上溢预测码进行计算,得到上溢预测值;
S104、基于配置开关A_SAT_sw,确定当前操作数A的上溢限制位宽;
S105、基于左移操作结果中次高位向最高位的进位,确定左移操作结果是否超出上溢限制位宽的上溢判断结果;
S106、基于上溢预测值和上溢判断结果,判断左移操作结果是否上溢出,若是,转至S107,若否,转至S108;
S107、决定左移操作结果进行饱和操作;
S108、决定左移操作结果不进行饱和操作;
其中,第一预测码的每一位则是根据操作数A的高位部分与操作数A的高位部分的相同权重位采取异或运算得到,第二预测码的每一位则是根据操作数A的高位部分与操作数A的高位部分的相同权重位采取或非运算得到;
操作数A的上溢预测码的每一位根据第一预测码的每一位与权重低一位的第二预测码采用同或运算得到;
上述技术方案的工作原理位:基于操作数A的高位部分确定操作数A的第一预测码和第二预测码;例如,若操作数A为[x-1:0],上溢限制位宽为y,则操作数A的高位部分为[x-1:y-1],由于操作数左移一位相当于当前数乘以2,因此第一预测码的每一位则是根据操作数A的高位部分[x-1:y-1]与操作数A的高位部分[x-1:y-1]的相同权重位采取异或运算得到,第二预测码的每一位则是根据操作数A的高位部分[x-1:y-1]与操作数A的高位部分[x-1:y-1]的相同权重位采取或非运算得到,优选的,也可通过超前进位加法器直接产生第一预测码和第二预测码;根据第一预测码和第二预测码的编码计算得到操作数A的上溢预测码,其中,操作数A的上溢预测码的每一位根据第一预测码的每一位与权重低一位的第二预测码采用同或运算得到;基于规约或运算规则,对上溢预测码进行计算,得到上溢预测值;基于配置开关A_SAT_sw,确定当前操作数A的上溢限制位宽,优选的,每个配置开关控制着一种类型的操作的选择或者是路径的选择,其中包括一种类型的上溢限制位宽;基于左移操作结果中次高位向最高位的进位,确定左移操作结果是否超出上溢限制位宽的上溢判断结果;具体的,通过判断左移操作结果是否大于上溢限制位宽可表示的最大值来实现判断左移操作结果是否上溢出,得到上溢判断结果;基于上溢预测值和上溢判断结果,判断左移操作结果是否上溢出,若是,决定左移操作结果进行饱和操作;若否,决定左移操作结果不进行饱和操作;具体的,由上溢判断结果判断左移操作结果是否大于上溢限制位宽可表示的最大值,或,根据对上溢预测值和左移操作结果处于上溢限制位宽范围内的最高值[y-1]采取或运算,得到第一运算结果,判断第一运算结果是否大于上溢限制位宽可表示的最大值,若上溢预测值表示上溢出或第一运算结果处于上溢限制位宽范围的最高位[y-1]是高,则表明左移操作结果大于上溢限制位宽可表示范围的最大值,则左移操作结果上溢出,否则左移操作结果不存在上溢出;
上述技术方案的有益效果为:通过在左移位操作结果获取前对左移操作结果进行预判,并在左移操作结果得到之后的约一级门延时后,基于上溢预测值和上溢判断结果能够立即判断出是否需要执行饱和操作,有益于提升操作数A及其前处理单元的处理速度。
在一个实施例中,操作数B及其前处理单元3执行包括如下操作:
对操作数B进行右移操作并对右移操作结果进行舍入操作,其中,配置开关B_SR_sw和配置开关B_RND_sw分别决定是否进行右移和是否进行舍入操作;右移的位数由右移向量N_SR决定。
请参阅图4,在一个实施例中,配置开关B_RND_sw决定右移操作结果是否进行舍入操作包括:
S201、基于操作数B的低位部分确定操作数B的第一估测码和第二估测码;
S202、根据第一估测码和第二估测码的编码计算得到操作数B的下舍估测码;
S203、基于规约或运算规则,对下舍估测码进行计算,得到下舍估测值;
S204、基于配置开关B_RND_sw,确定当前操作数B的下舍限制位宽;
S205、基于右移操作结果中次低位向最低位的反向进位,确定右移操作是否小于下舍限制位宽的下舍判断结果;
S206、基于下舍估测值和下舍判断结果,判断右移操作结果是否下舍出,若是,转至S207,若否,转至S208;
S207、决定右移操作结果进行舍入操作;
S208、决定右移操作结果不进行舍入操作;
其中,第一估测码的每一位则是根据操作数B的低位部分和操作数B的低位部分的相同权重采取异或运算得到,第二估测码的每一位则是根据操作数B的低位部分和操作数B的低位部分的相同权重位采取或非运算得到;
操作数B的下舍估测码的每一位由第一估测码的每一位与权重低一位的第二估测码采取同或运算得到;
上述技术方案的工作原理为:基于操作数B的低位部分确定操作数B的第一估测码和第二估测码;例如,操作数B为[x-1,0],下舍限制位宽为z,则操作数B的低位部分则为[x-1,z-1],由于操作数右移一位相当于当前数乘以1/2,因此第一估测码的每一位则是根据操作数B的低位部分[x-1,z-1]和操作数B的低位部分[x-1,z-1]的相同权重采取异或运算得到,第二估测码的每一位则是根据操作数B的低位部分[x-1,z-1]和操作数B的低位部分[x-1,z-1]的相同权重位采取或非运算得到;然后,根据第一估测码和第二估测码的编码计算得到操作数B的下舍估测码;具体的,操作数B的下舍估测码的每一位由第一估测码的每一位与权重低一位的第二估测码采取同或运算得到;基于规约或运算规则,对下舍估测码进行计算,得到下舍估测值;基于配置开关B_RND_sw,确定当前操作数B的下舍限制位宽;优选的,每个配置开关控制着一种类型的操作的选择或者是路径的选择,其中包括一种类型的下舍限制位宽;基于右移操作结果中次低位向最低位的反向进位,确定右移操作是否小于下舍限制位宽的下舍判断结果;具体的,通过判断右移操作结果是否小于下舍限制位宽可表示的最小值来实现判断右移操作结果是否下舍出,得到下舍判断结果;基于下舍估测值和下舍判断结果,判断右移操作结果是否下舍出,若是,决定右移操作结果进行舍入操作;若否,决定右移操作结果不进行舍入操作;具体的,由下舍判断结果判断右移操作结果是否小于下舍限制位宽可表示的最小值,或,根据对下舍估测值和右移操作结果处于下舍限制位宽范围内的最低位[z-1]采取或运算,得到第二运算结果,判断第二运算结果是否小于下舍限制位宽可表示的最小值;例如,若下舍估测值表示下舍出或第二运算结果处于下舍限制位宽范围内的最低位[z-1]是低,则表明右移操作结果小于下舍限制位宽可表示范围的最小值,即右移操作结果需要进行舍入操作,否则右移操作结果不需要进行舍入操作;
上述技术方案的有益效果为:通过在右移位操作结果获取前对右移操作结果进行预判,并在右移操作结果得到之后的约一级门延时后,基于下舍估测值和下舍判断结果能够立即判断出是否需要执行舍入操作,有益于提升操作数B及其前处理单元的处理速度。
在一个实施例中,结果后处理单元5对加法/减法运算单元4的结果执行的后处理操作主要包括饱和操作、右移操作以及舍入操作,其中,饱和操作、右移操作以及舍入操作分别由对应的配置开关进行控制,右移的位数由右移向量N_SR2决定。优选的,上述后处理操作中是否执行饱和操作和舍入操作根据运算结果进行相应的判断。
请参阅图5,对于本发明涉及到的应用,可根据特点场景,对本发明的图1的具体实施进行例化。其中,在图5的具体实施例中,可完成的操作可总结为公式:
Figure BDA0003678858360000131
其中,[]表示当前操作可被配置开关开或关;sat(*)表示饱和操作,16位或者32位;sat32(*)表示32位的饱和操作,rnd(*)表示舍入操作,*<<L表示对*左移L位操作,*>>R表示对*右移R位。
图5的具体实施例中,图1中的开关向量1-1具体例化为9位的开关向量,移位向量1-1-2仍然保持不变。开关向量控制的模块分别在图5中进行了标注。
图5的具体实施例中,操作数A和操作数B都为32位的有符号数。
图5的具体实施例中,操作数A为32位有符号数,其前处理功能由开关{sw1,swSAT32}控制,其中sw1控制是否对操作数进行左移,swSAT32控制是否对左移结果进行饱和操作。操作数B为32位有符号数,其前处理功能由开关{sw0,swRND}控制,其中sw0控制是否对操作数进行右移,swRND控制是否对右移结果进行舍入操作。
图5的具体实施例对图1的结果后处理单元5进行具体例化。后处理包含了4种路径选择,由开关sw2在选择单元5_4中完成。当sw2等于0的时候,将选择32位的应用;当sw2等于1的时候,将选择16位的应用。在32位的应用中,开关swSAT32_2控制32位饱和单元5_1对加法/减法运算单元4的结果进行32位的饱和操作。在16位的应用中,右移单元5_2对加法/减法运算单元4的结果右移N_SR2位操作,并在开关swRND2的控制下确定是否进行舍入操作,16位饱和操作单元5_3将对5_2的结果进行16位的饱和操作,得到16位的结果。最终,32位结果和16位结果在选择单元5_4中完成最终的选择。
更进一步地,图5中的5_3单元可与图1中的操作数B及其前处理单元3进行资源共享,并增加路径选择开关。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种用于智能计算加速的可配置移位加法融合单元,其特征在于,包括:
业务应用场景及操作数获取模块,用于获取当前业务应用场景和需要运算的操作数A和操作数B;
配置选择模块,用于根据当前所述业务应用场景和所述操作数A和操作数B选取对应的配置向量;
部件选择模块,用于根据所述配置向量选取对应运算模块部件;
运算模块,用于根据对应的所述配置向量和所述操作数完成移位加法运算。
2.根据权利要求1所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,所述运算模块包括:
操作数A及其前处理单元,用于根据所述配置向量对操作数A进行前操作;
操作数B及其前处理单元,用于根据所述配置向量对操作数B进行前操作;
加法/减法运算单元,用于根据所述配置向量完成处理后的操作数的加法或减法;
结果后处理单元,用于根据所述配置向量对加法/减法运算单元的结果执行后处理。
3.根据权利要求2所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,所述配置向量包括n位的开关向量{sw0,sw1,……,swn-1}和移位向量。
4.根据权利要求3所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,每位所述开关向量对应一个配置开关,每个所述配置开关控制一种类型的操作选择或路径选择。
5.根据权利要求3所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,所述移位向量包括:
左移向量N_SL,用于决定左移的位数;
右移向量N_SR,用于决定右移的位数;
右移向量N_SR2,用于决定右移的位数。
6.根据权利要求2所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,所述操作数A及其前处理单元执行包括如下操作:
对操作数A进行左移操作并对左移操作结果进行饱和操作,其中,配置开关A_SL_sw和配置开关A_SAT_sw分别决定是否进行左移和是否进行饱和操作;左移的位数由左移向量N_SL决定。
7.根据权利要求2所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,所述操作数B及其前处理单元执行包括如下操作:
对操作数B进行右移操作并对右移操作结果进行舍入操作,其中,配置开关B_SR_sw和配置开关B_RND_sw分别决定是否进行右移和是否进行舍入操作;右移的位数由右移向量N_SR决定。
8.根据权利要求2所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,所述结果后处理单元对加法/减法运算单元的结果执行的后处理操作主要包括饱和操作、右移操作以及舍入操作,其中,所述饱和操作、右移操作以及舍入操作分别由对应的配置开关进行控制,右移的位数由右移向量N_SR2决定。
9.根据权利要求6所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,所述配置开关A_SAT_sw决定左移操作结果是否进行饱和操作包括:
基于所述操作数A的高位部分确定操作数A的第一预测码和第二预测码;
根据所述第一预测码和第二预测码的编码计算得到操作数A的上溢预测码;
基于规约或运算规则,对所述上溢预测码进行计算,得到上溢预测值;
基于所述配置开关A_SAT_sw,确定当前操作数A的上溢限制位宽;
基于所述左移操作结果中次高位向最高位的进位,确定所述左移操作结果是否超出所述上溢限制位宽的上溢判断结果;
基于所述上溢预测值和上溢判断结果,判断所述左移操作结果是否上溢出,若是,决定左移操作结果进行饱和操作;
若否,决定左移操作结果不进行饱和操作;
其中,所述第一预测码的每一位则是根据操作数A的高位部分与操作数A的高位部分的相同权重位采取异或运算得到,所述第二预测码的每一位则是根据操作数A的高位部分与操作数A的高位部分的相同权重位采取或非运算得到;
所述操作数A的上溢预测码的每一位根据第一预测码的每一位与权重低一位的第二预测码采用同或运算得到。
10.根据权利要求7所述的一种用于智能计算加速的可配置移位加法融合单元,其特征在于,所述配置开关B_RND_sw决定右移操作结果是否进行舍入操作包括:
基于所述操作数B的低位部分确定操作数B的第一估测码和第二估测码;
根据所述第一估测码和第二估测码的编码计算得到操作数B的下舍估测码;
基于规约或运算规则,对所述下舍估测码进行计算,得到下舍估测值;
基于所述配置开关B_RND_sw,确定当前操作数B的下舍限制位宽;
基于所述右移操作结果中次低位向最低位的反向进位,确定所述右移操作是否小于所述下舍限制位宽的下舍判断结果;
基于所述下舍估测值和下舍判断结果,判断所述右移操作结果是否下舍出,若是,决定右移操作结果进行舍入操作;
若否,决定右移操作结果不进行舍入操作;
其中,所述第一估测码的每一位则是根据操作数B的低位部分和操作数B的低位部分的相同权重采取异或运算得到,所述第二估测码的每一位则是根据操作数B的低位部分和操作数B的低位部分的相同权重位采取或非运算得到;
所述操作数B的下舍估测码的每一位由第一估测码的每一位与权重低一位的第二估测码采取同或运算得到。
CN202210629916.8A 2022-06-06 2022-06-06 一种用于智能计算加速的可配置移位加法融合单元 Active CN114968175B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210629916.8A CN114968175B (zh) 2022-06-06 2022-06-06 一种用于智能计算加速的可配置移位加法融合单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210629916.8A CN114968175B (zh) 2022-06-06 2022-06-06 一种用于智能计算加速的可配置移位加法融合单元

Publications (2)

Publication Number Publication Date
CN114968175A true CN114968175A (zh) 2022-08-30
CN114968175B CN114968175B (zh) 2023-03-07

Family

ID=82959517

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210629916.8A Active CN114968175B (zh) 2022-06-06 2022-06-06 一种用于智能计算加速的可配置移位加法融合单元

Country Status (1)

Country Link
CN (1) CN114968175B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785108A (zh) * 2024-02-27 2024-03-29 芯来智融半导体科技(上海)有限公司 一种前导数处理方法、系统、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078404A1 (en) * 1998-03-31 2004-04-22 Macy William W. Method and apparatus for performing horizontal addition and subtraction
WO2006053173A2 (en) * 2004-11-10 2006-05-18 Nvidia Corporation Multipurpose multiply-add functional unit
CN104090737A (zh) * 2014-07-04 2014-10-08 东南大学 一种改进型部分并行架构乘法器及其处理方法
CN106873940A (zh) * 2016-12-30 2017-06-20 青岛朗思信息科技有限公司 一种定点加法结果位宽限制的处理方法和装置
CN112394904A (zh) * 2020-11-16 2021-02-23 海光信息技术股份有限公司 一种浮点数据处理方法、运算器及电子设备
CN113672198A (zh) * 2021-08-18 2021-11-19 南京英锐创电子科技有限公司 二进制浮点数加法运算方法、电路及计算装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078404A1 (en) * 1998-03-31 2004-04-22 Macy William W. Method and apparatus for performing horizontal addition and subtraction
WO2006053173A2 (en) * 2004-11-10 2006-05-18 Nvidia Corporation Multipurpose multiply-add functional unit
CN104090737A (zh) * 2014-07-04 2014-10-08 东南大学 一种改进型部分并行架构乘法器及其处理方法
CN106873940A (zh) * 2016-12-30 2017-06-20 青岛朗思信息科技有限公司 一种定点加法结果位宽限制的处理方法和装置
CN112394904A (zh) * 2020-11-16 2021-02-23 海光信息技术股份有限公司 一种浮点数据处理方法、运算器及电子设备
CN113672198A (zh) * 2021-08-18 2021-11-19 南京英锐创电子科技有限公司 二进制浮点数加法运算方法、电路及计算装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
金光海: "快速浮点加法器的全定制设计", 《计算机与现代化》 *
高海霞等: "浮点加法器的低功耗结构设计", 《微电子学》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785108A (zh) * 2024-02-27 2024-03-29 芯来智融半导体科技(上海)有限公司 一种前导数处理方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN114968175B (zh) 2023-03-07

Similar Documents

Publication Publication Date Title
EP3474132B1 (en) Arithmetic processor, arithmetic processing apparatus including arithmetic processor, information processing apparatus including arithmetic processing apparatus, and control method for arithmetic processing apparatus
CN108053028A (zh) 数据定点化处理方法、装置、电子设备及计算机存储介质
CN106066783A (zh) 基于幂次权重量化的神经网络前向运算硬件结构
US6601077B1 (en) DSP unit for multi-level global accumulation
CN114968175B (zh) 一种用于智能计算加速的可配置移位加法融合单元
WO2010051298A2 (en) Instruction and logic for performing range detection
CN106610867B (zh) 一种片上网络任务调度方法及装置
CN110852417B (zh) 面向物联网应用的单深度神经网络模型鲁棒性提升方法
CN110688086A (zh) 一种可重构的整型-浮点加法器
CN107851007B (zh) 宽数据类型的比较的方法和装置
CN110109646A (zh) 数据处理方法、装置和乘加器及存储介质
Nguyen et al. An accurate viewport estimation method for 360 video streaming using deep learning
CN109240644B (zh) 一种用于伊辛芯片的局部搜索方法及电路
US10558500B2 (en) Scheduling heterogenous processors
Chang et al. Real-time DSP implementation on local stereo matching
CN116502680B (zh) 一种用于混合专家模型的并行训练方法及装置
CN111445016B (zh) 加速非线性数学计算的系统及方法
CN110750300A (zh) 一种基于忆阻器存储器内处理的混合计算装置
JP2016045721A (ja) データ格納方法、三値内積演算回路、それを備えた半導体装置、及び、三値内積演算処理プログラム
CN111738432B (zh) 一种支持自适应并行计算的神经网络处理电路
CN115439336A (zh) 一种用于图像去噪处理的方法、电子设备、装置及计算系统
CN109976706A (zh) 浮点运算装置
CN116094952B (zh) 网络结构相似度的确定方法、装置、设备以及存储介质
US20230205488A1 (en) Efficient circuit for neural network processing
CN117648284A (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