CN115220691A - 运算电路、运算方法、装置、芯片、板卡、设备及介质 - Google Patents
运算电路、运算方法、装置、芯片、板卡、设备及介质 Download PDFInfo
- Publication number
- CN115220691A CN115220691A CN202210911333.4A CN202210911333A CN115220691A CN 115220691 A CN115220691 A CN 115220691A CN 202210911333 A CN202210911333 A CN 202210911333A CN 115220691 A CN115220691 A CN 115220691A
- Authority
- CN
- China
- Prior art keywords
- data
- divisor
- dividend
- determining
- division calculation
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本公开提供了一种运算电路、运算方法、装置、芯片、板卡、设备及介质,其中,该运算电路包括:数据读取单元和数据运算单元:所述数据读取单元,用于读取当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;所述数据运算单元,用于确定每个所述待运算数据的最高有效位,得到多个最高有效位;以及将所述多个最高有效位进行比较,得到第一比较结果;以及基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
Description
技术领域
本公开涉及通信技术领域,具体而言,涉及一种运算电路、运算方法、装置、芯片、板卡、设备及介质。
背景技术
目前,随着芯片开发技术的快速发展,芯片已广泛应用于终端设备中。例如,随着人工智能技术的快速发展,人工智能(Artificial Intelligence,AI)芯片已广泛适用于智能终端设备中。随着人工智能技术的精度逐渐提高,AI芯片的数据计算量也逐渐增大,AI芯片的现有数据计算方式将延长数据处理时间,以及降低数据处理效率,例如,除法计算。现有除法计算通常通过被除数和除数之间的循环移位比较来实现的。然而,该计算方式消耗较多的数据位,浪费了较多的资源。同时,该计算方式的耗时较长,进而影响了除法计算的计算效率。
发明内容
本公开实施例至少提供一种运算电路、运算方法、装置、芯片、板卡、设备及介质。
第一方面,本公开实施例提供了一种运算电路,该运算电路包括:数据读取单元和数据运算单元:所述数据读取单元,用于读取当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;所述数据运算单元,用于确定每个所述待运算数据的最高有效位,得到多个最高有效位;以及将所述多个最高有效位进行比较,得到第一比较结果;以及基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
上述实施方式中,可以通过每个待运算数据的最高有效位来确定除法计算模式,并基于该除法计算模式确定除法计算结果,从而可以节省进行除法计算所消耗的时间,进而提高除法计算的运算效率。同时,还可以避免由于循环移位比较所导致的除法计算占据较多内存的问题,从而节省了运算的计算资源,进一步提升了运算电路的性能。
一种可选的实施方式中,所述数据运算单元用于:将各所述待运算数据转换为无符号待运算数据;调整所述无符号待运算数据的数据位宽,得到调整后的无符号待运算数据,其中,所述调整后的无符号待运算数据的数据位宽为所述多个待运算数据中的最大数据位宽;所述调整后的无符号待运算数据包括调整后的无符号被除数和调整后的无符号除数;确定各所述调整后的无符号待运算数据的最高有效位,得到所述多个最高有效位。
上述实施方式中,可以通过将各待运算数据转换为无符号待运算数据,并将每个无符号待运算数据调整为数据位宽相同的无符号待运算数据,以根据该调整后的无符号待运算数据确定最高有效位的方式,可以提高最高有效位的确定精度。
一种可选的实施方式中,所述数据运算单元用于:从每个所述待运算数据的最高数据位开始遍历,查找首个目标数值所对应的目标数据位,并将所述目标数据位确定为所述最高有效位,其中,所述目标数值为该待运算数据中的非零数值。
上述实施方式中,通过查找该待运算数据的最高有效位,以通过该最高有效位确定除法计算结果的除法计算模式的方式,可以避免现有技术中循环移位比较过程带来的资源浪费问题。同时,还可以简化除法计算的计算过程,提高除法计算的计算效率。
一种可选的实施方式中,所述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位;所述数据运算单元用于:在基于所述第一比较结果确定所述第一最高有效位小于所述第二最高有效位的情况下,确定所述除法计算结果的除法计算模式为第一计算模式,其中,所述第一计算模式用于指示被除数和除数之间的商为第一数值,且指示被除数和除数之间的余数为所述被除数的绝对值。
一种可选的实施方式中,所述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位;所述数据运算单元用于:在基于所述第一比较结果确定所述第一最高有效位等于所述第二最高有效位的情况下,确定所述被除数中位于所述第一最高有效位之后的数据,得到第一目标数据,并确定所述除数中位于所述第一最高有效位之后的数据,得到第二目标数据;确定所述第一目标数据和所述第二目标数据的第二比较结果;基于所述第二比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
一种可选的实施方式中,所述数据运算单元用于:在基于所述第二比较结果确定所述第一目标数据小于所述第二目标数据的情况下,确定所述除法计算结果的除法计算模式为第一计算模式,其中,所述第一计算模式用于指示被除数和除数之间的商为第一数值,且指示被除数和除数之间的余数为所述被除数的绝对值。
一种可选的实施方式中,所述数据运算单元用于:在基于所述第二比较结果确定所述第一目标数据大于或者等于所述第二目标数据的情况下,确定所述除法计算结果的除法计算模式为第二计算模式,其中,所述第二计算模式用于指示被除数和除数之间的商为第二数值,且指示被除数和除数之间的余数为无符号被除数和无符号除数之间的差值。
一种可选的实施方式中,所述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位;所述数据运算单元用于:在基于所述第一比较结果确定所述第一最高有效位大于所述第二最高有效位的情况下,基于所述除数生成新除数;其中,所述新除数与所述被除数的数据位宽相同;确定所述被除数中位于所述第一最高有效位之后的数据,得到第三目标数据,并确定所述新除数中位于所述第一最高有效位之后的数据,得到第四目标数据;确定所述第三目标数据和所述第四目标数据的第三比较结果;基于所述第三比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
一种可选的实施方式中,所述数据运算单元用于:在基于所述第三比较结果确定所述第三目标数据大于或者等于所述第四目标数据的情况下,确定所述除法计算结果的除法计算模式为第三计算模式,其中,所述第三计算模式用于指示被除数和除数之间的商为第三数值,且指示被除数和除数之间的余数为无符号被除数和无符号新除数之间的差值;所述第三数值为有效数据向左移动第一差值之后的数据,所述第一差值为所述第一最高有效位和所述第二最高有效位的差值。
一种可选的实施方式中,所述数据运算单元用于:在基于所述第三比较结果确定所述第三目标数据小于所述第四目标数据的情况下,确定所述除法计算结果的除法计算模式为第四计算模式,其中,所述第四计算模式用于指示被除数和除数之间的商为第四数值,且指示被除数和除数之间的余数为无符号被除数和第五数值之间的差值,所述第四数值为有效数据向左移动第二差值之后的数据,所述第二差值为第一差值和第二数值之间的差值,所述第五数值为所述第四数值和无符号除数之间的乘积。
一种可选的实施方式中,所述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位;所述数据运算单元用于:在基于所述第一比较结果确定所述第一最高有效位大于或者等于所述第二最高有效位,且所述除数中位于所述第二最高有效位后的数据为所述第一数值的情况下,确定所述除法计算结果的除法计算模式为第五计算模式,其中,所述第五计算模式用于指示被除数和除数之间的商为无符号的被除数向右移动所述第二最高有效位后的数据,且用于指示被除数和除数之间的余数为无符号的被除数中的位于所述第二最高有效位后的数据。
上述实施方式中,可以通过第一比较结果确定被除数和除数的除法计算结果的除法计算模式,并基于该除法计算模式确定除法计算结果,从而可以简化确定除法计算结果的过程,提高确定除法计算结果的效率,进而可以满足实时性要求较高的场景的需求。
一种可选的实施方式中,除法计算结果还包括商的符号位;所述数据运算单元还用于:确定各所述待运算数据的符号位,并基于所述符号位确定所述除法计算结果中商的符号位。
第二方面,本公开实施例还提供一种运算方法,包括:获取用于执行当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;确定每个所述待运算数据的最高有效位,得到多个最高有效位;将所述多个最高有效位进行比较,得到第一比较结果;基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
第三方面,本公开实施例还提供一种运算装置,包括:获取单元,用于获取用于执行当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;第一确定单元,用于确定每个所述待运算数据的最高有效位,得到多个最高有效位;比较单元,用于将所述多个最高有效位进行比较,得到第一比较结果;第二确定单元,用于基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
第四方面,本公开实施例还提供一种芯片,其特征在于,包括如上述任一项所述的运算电路。
第五方面,本公开实施例还提供一种板卡,包括:封装有至少一个如第三方面所述芯片的封装结构。
第六方面,本公开实施例还提供一种电子设备,包括:如上述第四方面的芯片,或者如第五方面的板卡。
第七方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或者,执行上述第二方面的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种运算方法的流程图;
图2示出了本公开实施例所提供的一种待运算数据的示意图;
图3示出了本公开实施例所提供的确定每个待运算数据的最高有效位得到多个最高有效位方法的流程图;
图4示出了本公开实施例所提供的确定每个待运算数据的最高有效位得到多个最高有效位的流程示意图;
图5示出了本公开实施例所提供的基于第一比较结果确定被除数和除数的除法计算结果的除法计算模式的流程示意图;
图6示出了本公开实施例所提供的一种运算电路的示意图;
图7示出了本公开实施例所提供的一种运算装置的示意图;
图8示出了本公开实施例所提供的一种芯片的示意图;
图9示出了本公开实施例所提供的一种板卡的示意图。。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,随着芯片开发技术的快速发展,芯片已广泛应用于终端设备中。例如,随着人工智能技术的快速发展,人工智能(Artificial Intelligence,AI)芯片已广泛适用于智能终端设备中。随着人工智能技术的精度逐渐提高,AI芯片的数据计算量也逐渐增大,AI芯片的现有数据计算方式将延长数据处理时间,以及降低数据处理效率,例如,除法计算。现有除法计算通常通过被除数和除数之间的循环移位比较来实现的。然而,该计算方式消耗较多的数据位,浪费了较多的资源。同时,该计算方式的耗时较长,进而影响了除法计算的计算效率。
相关技术中,为了解决上述除法计算耗时较大的问题,通过堆叠硬件将上述循环移位比较转换为流水线计算。堆叠硬件改为流水线的方式可以加快上述循环移位比较的处理速度,然而,这种堆叠硬件改为流水线的方式会浪费大量的硬件资源。
基于上述研究,本公开提供了一种运算电路、运算方法、装置、芯片、板卡、设备及介质。在本公开实施例中,可以在获取到多个待运算数据之后,确定每个待运算数据的最高有效位,得到多个最高有效位。之后,可以将该多个最高有效位进行比较,得到第一比较结果。接着,就可以基于该第一比较结果确定被除数和除数的除法计算结果的除法计算模式,并基于该除法计算模式得到除法计算结果。
上述实施方式中,可以通过每个待运算数据的最高有效位来确定被除数和除数的商的除法计算模式,以及确定被除数和除数的余数的除法计算模式,并基于对应的除法计算模式计算被除数和除数之间的商和余数。通过该处理方式,可以实现分别通过不同的除法计算模式计算上述商和余数,相对于现有除法计算,可以节省除法计算的计算时间,提高除法计算的运算效率。同时,还可以避免由于现有除法计算中循环移位比较过程导致的占据较多内存的问题,从而节省了运算的计算资源,进一步提升了运算电路的性能。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种运算方法进行详细介绍,本公开实施例所提供的运算方法的执行主体一般为具有一定计算能力的电子设备。
参见图1所示,为本公开实施例提供的一种运算方法的流程图,所述方法包括步骤S101~S107,其中:
S101:获取用于执行当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数。
这里,当前任务可以为图像处理任务,也可以为网络训练任务,也可以为目标识别任务等,本公开对上述当前任务不作具体限定。
这里,待运算数据可以为有符号的二进制数,且该二进制数的最高数据位为该待运算数据的符号位。例如,在最高数据位的数值为0的情况下,该待运算数据为正数;在最高数据位的数值为1的情况下,该待运算数据为负数。其中,待运算数据还可以为无符号的二进制数。
在本公开实施例中,用于执行当前任务的多个待运算数据可以存储在芯片的存储器中。例如,该存储器可以为芯片中的寄存器。基于此,在芯片执行当前任务之前,可以将多个待运算数据存储至该寄存器中。在检测到芯片执行当前任务中的除法计算指令的情况下,在寄存器中读取上述多个待运算数据。
S103:确定每个所述待运算数据的最高有效位,得到多个最高有效位。
这里,最高有效位用于指示各待运算数据中的首个有效数据位。有效数据位用于指示有效数据在待运算数据中的位置,其中,该有效数据可以为1。通过上述描述可知,每个待运算数据均包含符号位,因此,上述最高有效位可以理解为每个待运算数据中除符号位外的首个有效数据位。
在本公开实施例中,待运算数据的数据位的编号从右向左依次增大,其中,位于最右侧数据位的编号为0,即位于最右侧数据位可以理解为第0数据位。例如,如图2所示,在待运算数据为10110的情况下,该待运算数据的数据位从右向左依次描述为:第0数据位(该数据位的数值为0)、第一数据位(该数据位的数值为1)、第二数据位(该数据位的数值为1)、第三数据位(该数据位的数值为0)、第四数据位(该数据位的数值为1)。其中,该待运算数据10110的最高数据位(也即第四数据位)为符号位(例如,如图2所示的待运算数据的最左边的数据位)。此时,该待运算数据中的首个有效数据位即为如图2所示的除符号位之外的首个有效数据位(也即第二数据位)。
在本公开实施例中,在读取到多个待运算数据之后,可以将每个待运算数据调整为数据位宽相同的无符号待运算数据,其中,调后的数据位宽可以为多个待运算数据的最大数据位宽;之后,就可以确定数据位宽相同的无符号待运算数据的最高有效位,得到上述多个最高有效位。
S105:将所述多个最高有效位进行比较,得到第一比较结果。
在本公开实施例中,可以得到被除数的最高有效位和除数的最高有效位。假设,该被除数的最高有效位为第一最高有效位,该除数的最高有效位为第二最高有效位。
在此情况下,可以将上述第一最高有效位对应的数值和第二最高有效位对应的数值进行比较,得到第一比较结果。其中,该第一比较结果可以为以下任一结果:第一最高有效位大于第二最高有效位、第一最高有效位等于第二最高有效位、第一最高有效位小于第二最高有效位。
S107:基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
这里,所述除法计算结果包含:商和余数。除法计算模式可以用于指示确定被除数和除数的除法计算结果的方式。这里,除法计算模式可以包含第一类计算模式和第二类计算模式,其中,该第一类计算模式为商的计算模式,第二类计算模式为余数的计算模式,且第一类计算模式和第二类计算模式不相同。
在本公开实施例中,可以在获取多个待运算数据之后,确定每个待运算数据的最高有效位,得到多个最高有效位。之后,可以将该多个最高有效位进行比较,得到第一比较结果。接着,就可以基于该第一比较结果分别确定商的除法计算模式和余数的除法计算模式,并基于商的计算模式得到被除数和除数的商,以及基于余数的除法计算模式确定被除数和除数的余数,从而基于商和余数得到除法计算结果。
这里,针对不同的第一比较结果,可以确定出不同的除法计算模式,具体在下述实施例中进行介绍。
上述实施方式中,可以通过每个待运算数据的最高有效位来确定被除数和除数的商的除法计算模式,以及确定被除数和除数的余数的除法计算模式,并基于对应的除法计算模式计算被除数和除数之间的商和余数。通过该处理方式,可以实现分别通过不同的除法计算模式计算上述商和余数,相对于现有除法计算,可以节省除法计算的计算时间,提高除法计算的运算效率。同时,还可以避免由于现有除法计算中循环移位比较过程导致的占据较多内存的问题,从而节省了运算的计算资源,进一步提升了运算电路的性能。
在一个可选的实施方式中,如图3所示,针对S103:确定每个所述待运算数据的最高有效位,得到多个最高有效位,具体包括如下步骤:
步骤S31:将各所述待运算数据转换为无符号待运算数据;
步骤S32:调整所述无符号待运算数据的数据位宽,得到调整后的无符号待运算数据,其中,所述调整后的无符号待运算数据的数据位宽为所述多个待运算数据中的最大数据位宽,该调整后的无符号待运算数据包括调整后的无符号被除数和调整后的无符号除数;
步骤S33:确定各所述调整后的无符号待运算数据的最高有效位,得到所述多个最高有效位。
在本公开实施例中,无符号待运算数据可以理解为各待运算数据中除符号位之外的数据位所构成的数据,例如,如图2所示的待运算数据转换为无符号待运算数据之后为“0110”。
这里,可以将各待运算数据转换为无符号待运算数据,然后,获取每个无符号待运算数据的数据位宽,得到多个数据位宽,并确定该多个数据位宽中的最大数据位宽。之后,可以基于该最大数据位宽调整各无符号待运算数据的数据位宽,例如,可以调整数据位宽小于该最大数据位宽的无符号待运算数据;从而使调整后每个无符号待运算数据的数据位宽均为该最大数据位宽,进而得到调整后的无符号待运算数据。
具体实施时,可以通过对无符号待运算数据的高位(也即无符号待运算数据的左侧)进行补0的方式,调整数据位宽小于该最大数据位宽的无符号待运算数据。例如,针对任意数据位宽小于最大数据位宽的无符号待运算数据,可以在该无符号待运算数据的最左边(即,高位)进行补0,其中,所补充的0的数量为该最大数据位宽与该无符号待运算数据的数据位宽的差值。通过上述处理方式,可以使得无符号待运算数据的数据位宽为最大数据位宽,得到调整后的无符号待运算数据。
例如,在无符号被除数为“11000”,无符号除数为“101”的情况下,可以确定出该无符号被除数的数据位宽为5,该无符号除数的数据位宽为3。在此情况下,可以确定最大数据位宽为5。之后,可以按照上述调整方式对数据位宽小于最大数据位宽的无符号待运算数据(即无符号除数)进行调整,使该无符号除数的数据位宽为最大数据位宽,此时,调整之后的无符号除数即为“00101”。
之后,可以确定调整后的无符号待运算数据的最高有效位,从而得到多个最高有效位。
上述实施方式中,可以通过将各待运算数据转换为无符号待运算数据,并将每个无符号待运算数据调整为数据位宽相同的无符号待运算数据,以根据该调整后的无符号待运算数据确定最高有效位的方式,可以提高最高有效位的确定精度。
在一个可选的实施方式中,针对S103:确定每个所述待运算数据的最高有效位,得到多个最高有效位,具体还包括如下步骤:
从每个所述待运算数据的最高数据位开始遍历,查找首个目标数值所对应的目标数据位,并将所述目标数据位确定为所述最高有效位,其中,所述目标数值为该待运算数据中的非零数值,例如,在待运算数据为二进制数据的情况下,该目标数值为1。
具体实施时,可以从每个调整后的无符号待运算数据的最高数据位开始遍历,查找首个目标数值所对应的目标数据位,并将所述目标数据位确定为所述最高有效位。
假设,目标数值为1,且调整后的无符号待运算数据为:无符号被除数“11000”和无符号除数“00101”,此时,可以从每个调整后的无符号待运算数据的最高数据位(最左边)开始遍历,查找目标数值1对应的目标数据位。此时,无符号被除数“11000”的目标数据位即为第四数据位,无符号除数“00101”的目标数据位即为第二数据位,即从该无符号除数的左侧开始第一个目标数值1所对应的数据位。那么,可以确定无符号被除数的最高有效位(即下文中的第一最高有效位)即为4,无符号除数的最高有效位(即下文中的第二最高有效位)即为2。
上述实施方式中,可以从待运算数据的最高数据位开始遍历,在查找到待运算数据中目标数据所在目标数据位之后,可以将该目标数据位确定为最高有效位,从而可以提高确定最高有效位的准确度和效率。同时,通过查找该待运算数据的最高有效位,以通过该最高有效位确定除法计算结果的除法计算模式的方式,可以避免现有技术中循环移位比较过程带来的资源浪费问题。同时,还可以简化除法计算的计算过程,提高除法计算的计算效率。
在一个可选的实施方式中,除法计算结果还包括商的符号位,基于此,本公开方法还包括:确定各所述待运算数据的符号位,并基于所述符号位确定所述除法计算结果中商的符号位。
在本公开实施例中,待运算数据的符号位可以理解为待运算数据的最高数据位,例如,如图2所示的待运算数据,该待运算数据中最左侧的数据位即该待运算数据的最高数据位,也即待运算数据的符号位。
在本公开实施例中,如图4所示,首先,获取多个待运算数据(即,被除数和除数),例如,可以在寄存器中读取当前任务所对应的多个待运算数据;之后,基于被除数和除数的符号位确定该被除数和除数的商的符号。接下来,将每个待运算数据转换为无符号待运算数据,例如,可以将每个待运算数据的符号位所对应符号数据删除,即可得到该多个待运算数据的无符号待运算数据。接着,可以调整每个无符号待运算数据的数据位宽,得到调整后的无符号待运算数据。然后,可以确定调整后的无符号待运算数据中首个目标数值所对应的目标数据位,并将该目标数据位确定为最高有效位,进而得到多个最高有效位。
在一个可选的实施方式中,上述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位。
在此情况下,如图5所示本公开实施例提供的一种基于第一比较结果确定被除数和除数的除法计算结果的除法计算模式的流程图。下面将结合图5分情况介绍上述基于第一比较结果确定被除数和除数的除法计算结果的除法计算模式的具体实施过程。
如图5所示,设定abs_a表示无符号被除数,设定abs_b表示无符号除数,L表示第一最高有效位(也即,abs_a的最高有效位),K表示第二最高有效位(也即,abs_b的最高有效位),div表示abs_a和abs_b的商,rem表示abs_a和abs_b的余数。
情况一:
在基于所述第一比较结果确定所述第一最高有效位小于所述第二最高有效位的情况下,确定所述除法计算结果的除法计算模式为第一计算模式,其中,所述第一计算模式用于指示被除数和除数之间的商为第一数值,且指示被除数和除数之间的余数为所述被除数的绝对值。
这里,第一数值可以理解为数值0。
在本公开实施例中,如图5所示,上述情况一也可以描述为:在确定出第一比较结果为“L<K”的情况下,确定除法计算结果的除法计算模式为第一计算模式,该第一计算模式即为“div=0,rem=abs_a”。其中,div=0表示被除数和除数之间的商为第一数值,rem=abs_a表示被除数和除数之间的余数为无符号被除数,也即被除数的绝对值。
假设,无符号被除数(abs_a)为“101”,无符号除数(abs_b)为上述“11000”,此时,可以确定abs_a的最高有效位L=2,以及确定abs_b的最高有效位K=4。通过比较可知,L<K,此时可以确定该无符号被除数和无符号除数之间的除法计算结果为:商div=0,余数rem=101。
情况二:
在基于所述第一比较结果确定所述第一最高有效位等于所述第二最高有效位的情况下,首先,确定所述被除数中位于所述第一最高有效位之后的数据,得到第一目标数据,并确定所述除数中位于所述第一最高有效位之后的数据,得到第二目标数据;然后,确定所述第一目标数据和所述第二目标数据的第二比较结果;之后,基于所述第二比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
这里,第一目标数据也可以理解为abs_a[L-1:0],第二目标数据可以理解为abs_b[L-1:0],其中,L-1表示L与1之间的差值。
例如,在无符号被除数(abs_a)为“11000”,无符号除数(abs_b)为上述“101”的情况下,L=4,L-1=3,那么,第一目标数据即为“1000”,第二目标数据即为“0101”。
这里,第二比较结果可以为以下结果:第一目标数据小于第二目标数据、第一目标数据等于第二目标数据、第一目标数据大于第二目标数据。之后,就可以根据第二比较结果的具体结果内容确定除法计算结果的除法计算模式。
例如,在第一目标数据为“1000”,第二目标数据为“0101”的情况下,将该第一目标数据“1000”和该第二目标数据“0101”进行比较,可以得到以下第二比较结果:第一目标数据大于第二目标数据。
在一个可选的实施方式中,针对上述:基于所述第二比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,具体包括如下过程:
(1)、在基于所述第二比较结果确定所述第一目标数据小于所述第二目标数据的情况下,确定所述除法计算结果的除法计算模式为第一计算模式,其中,所述第一计算模式用于指示被除数和除数之间的商为第一数值,且指示被除数和除数之间的余数为所述被除数的绝对值。
这里,第一计算模式和上述情况一中所描述的第一计算模式相同,本公开在此不再详细赘述。
在此情况下,如图5所示,上述过程(1)也可以描述为:在确定出第二比较结果为“abs_a[L-1:0]<abs_b[L-1:0]”的情况下,确定除法计算结果的除法计算模式为第一计算模式,该第一计算模式为“div=0,rem=abs_a”。其中,div=0表示被除数和除数之间的商为第一数值,rem=abs_a表示被除数和除数之间的余数为无符号被除数,也即被除数的绝对值。
例如,无符号被除数为101,无符号除数为110,那么abs_a[L-1:0]=01,abs_b[L-1:0]=10,此时,abs_a[L-1:0]<abs_b[L-1:0]。那么,可以确定出该无符号被除数和无符号除数之间的除法计算结果为:商=0,余数=101。
(2)、在基于所述第二比较结果确定所述第一目标数据大于或者等于所述第二目标数据的情况下,确定所述除法计算结果的除法计算模式为第二计算模式,其中,所述第二计算模式用于指示被除数和除数之间的商为第二数值,且指示被除数和除数之间的余数为无符号被除数和无符号除数之间的差值。
这里,第二数值可以为数值1。
在本公开实施例中,如图5所示,上述过程(2)也可以描述为:在确定出第二比较结果为“abs_a[L-1:0]≥abs_b[L-1:0]”的情况下,确定除法计算结果的除法计算模式为第二计算模式,该第二计算模式即为“div=1,rem=abs_a-abs_b”。其中,div=1表示被除数和除数之间的商为第二数值,rem=abs_a-abs_b表示被除数和除数之间的余数为无符号被除数和无符号除数之间的差值。
例如,如果无符号被除数为110,除数为101,那么abs_a[L-1:0]=10,abs_b[L-1:0]=01,此时,abs_a[L-1:0]>abs_b[L-1:0]。那么,可以确定出该无符号被除数和无符号除数之间的除法计算结果为:商=1,余数=110-101=1。
情况三:
在基于所述第一比较结果确定所述第一最高有效位大于所述第二最高有效位的情况下,首先,基于所述除数生成新除数;其中,所述新除数与所述被除数的数据位宽相同。
然后,确定所述被除数中位于所述第一最高有效位之后的数据,得到第三目标数据,并确定所述新除数中位于所述第一最高有效位之后的数据,得到第四目标数据。
接着,确定所述第三目标数据和所述第四目标数据的第三比较结果。
之后,基于所述第三比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
这里,可以首先将除数转换为无符号除数,其中,无符号除数可以理解为除数中除符号位之外的数据位所构成的数据。例如,如果除数为10101,那么无符号除数就可以为0101。之后,可以在无符号除数的最低数据位之后进行补0,当补0后的无符号除数与无符号被除数的数据位宽相同时,将该补0后的无符号除数确定为新除数。其中,新除数中同样不包含符号位。
这里,执行补0处理的无符号除数为未进行位宽调整的无符号除数,这里的位宽调整与上述步骤S31至S32所描述的调整无符号待运算数据的数据位宽的过程不同。
例如,被除数为“1011000”,除数为“10101”,那么无符号被除数可以为“011000”,无符号除数可以为“0101”。在此情况下,可以在无符号除数的最低数据位之后进行补0,即在第0数据位之后开始补0,例如,可以在第0数据位之后补两个0,得到新除数为“010100”。
这里,第三目标数据也可以为上述第一目标数据即abs_a[L-1:0],第四目标数据可以表示为new_abs_b[L-1:0]。
在本公开实施例中,第三比较结果可以为以下结果:第三目标数据小于第四目标数据、第三目标数据等于第四目标数据、第三目标数据大于第四目标数据。
例如,如上述所述的被除数为“011000”,新除数为“010100”(其中,该被除数和除数中的最高数据位0为符号位)的情况下,由上述描述可知,第一最高有效位L为4,在此情况下,可以确定第三目标数据abs_a[L-1:0]为“1000”,第四目标数据new_abs_b[L-1:0]为“0100”。之后,可以比较第三目标数据和第四目标数据的大小,得到的第三比较结果即为:第三目标数据大于第四目标数据。之后,就可以基于第三比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
在一个可选的实施方式中,针对上述:基于所述第三比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,具体包括几种子情况:
子情况一:
在基于所述第三比较结果确定所述第三目标数据大于或者等于所述第四目标数据的情况下,确定所述除法计算结果的除法计算模式为第三计算模式,其中,所述第三计算模式用于指示被除数和除数之间的商为第三数值,且指示被除数和除数之间的余数为无符号被除数和无符号新除数之间的差值;所述第三数值为有效数据向左移动第一差值之后的数据,所述第一差值为所述第一最高有效位和所述第二最高有效位的差值。
在本公开实施例中,第一差值也可以表示为:L-K,有效数据可以理解为1。在此情况下,第三数值即可以为数值:2^(L-K)。
在本公开实施例中,如图5所示,上述子情况一也可以描述为:在确定出第三比较结果为“abs_a[L-1:0]≥new_abs_b[L-1:0]”的情况下,确定除法计算结果的除法计算模式为第三计算模式,该第三计算模式即为“div=2^(L-K),rem=abs_a-new_abs_b”。其中,div=2^(L-K)表示被除数和除数之间的商为第三数值,rem=abs_a-new_abs_b表示被除数和除数之间的余数为无符号被除数和无符号新除数之间的差值。
例如,如果无符号被除数(abs_a)为“11000”,无符号除数(abs_b)为上述“101”,此时,可以确定abs_a的最高有效位L=4,以及确定abs_b的最高有效位K=2,L>K。此时,可以确定新除数,该新除数(new_abs_b)即为:“10100”。此时,可以确定abs_a[L-1:0]=1000,new_abs_b[L-1:0]=0100,可知,abs_a[L-1:0]>new_abs_b[L-1:0],那么,可以确定该无符号被除数和无符号除数之间的除法计算结果为:商=100,余数=11000-101=100。
在本公开实施例中,基于第三计算模式确定的除法计算结果的准确性容易受到该除法计算结果中余数和无符号除数之间比较结果的影响。因此,在基于第三计算模式确定出除法计算结果之后,还需要将该除法计算结果中的余数和无符号除数之间进行比较,得到第四比较结果,从而基于该第四比较结果对除法计算结果进行修正,并将修正之后的除法计算结果确定为多个待运算数据中被除数和除数的最后除法计算结果。
具体实施时,可以基于第四比较结果确定基于第三计算模式确定出的除法计算结果是否需要修正,在确定出需要进行修正的情况下,按照预设修正模式将该除法计算结果进行修正。
这里,第四比较结果可以为以下结果:余数小于无符号除数、余数大于或者等于无符号除数。之后,就可以基于该第四比较结果对除法计算结果进行修正。
下面将结合图5分情况介绍上述基于第四比较结果对除法计算结果进行修正的具体实施过程。
设定div表示基于第三计算模式确定的abs_a和abs_b的商,rem表示基于第三计算模式确定的abs_a和abs_b的余数,设定div_y表示修正后的商,rem_y表示修正后的余数。
在基于第四比较结果确定出余数小于无符号除数的情况下,确定上述基于第三计算模式确定的除法计算结果不需要进行修正。
在基于第四比较结果确定出余数大于或者等于无符号除数的情况下,确定基于第三计算模式确定的除法计算结果需要进行修正。此时,可以通过下述预设修正模式对该除法计算结果进行修正,从而得到修正后的商和修正后的余数。其中,该预设修正模式可以描述为:
确定修正后的商为基于第三计算模式确定的除法计算结果中的商与第二数值之和;以及确定修正后的余数为基于第三计算模式确定的除法计算结果中的余数与无符号除数之差。
例如,如图5所示,在确定出第四比较结果为“rem≥abs_b”的情况下,确定除法计算结果中修正后的商为div_y=div+1,其中,div+1表示基于第三计算模式确定的除法计算结果中的商与第二数值之和;确定除法计算结果中修正后的余数为rem_y=rem-abs_b,其中,rem-abs_b表示基于第三计算模式确定的除法计算结果中的余数与无符号除数之差。
子情况二:
在基于所述第三比较结果确定所述第三目标数据小于所述第四目标数据的情况下,确定所述除法计算结果的除法计算模式为第四计算模式,其中,所述第四计算模式用于指示被除数和除数之间的商为第四数值,且指示被除数和除数之间的余数为无符号被除数和第五数值之间的差值,所述第四数值为有效数据向左移动第二差值之后的数据,所述第二差值为第一差值和第二数值之间的差值,所述第五数值为所述第四数值和无符号除数之间的乘积。
这里,第二差值也可以表示为“L-K-1”。基于此,上述第四数值即可以表示为“2^(L-K-1)”,第五数值可以表示为“2^(L-K-1)*abs_b”。
通过上述描述可知,如图5所示,子情况二也可以描述为:在确定出第三比较结果为“abs_a[L-1:0]<new_abs_b[L-1:0]”的情况下,确定除法计算结果的除法计算模式为第四计算模式,该第四计算模式即为“div=2^(L-K-1),rem=abs_a-2^(L-K-1)*abs_b”。其中,div=2^(L-K-1)表示被除数和除数之间的商为第四数值,rem=abs_a-2^(L-K-1)*abs_b表示被除数和除数之间的余数为无符号被除数和第五数值之间的差值。
在本公开实施例中,在基于第四计算模式确定出除法计算结果之后,可以基于该除法计算结果中的余数和无符号除数之间的比较结果判断该除法计算结果是否需要修正,在判断出需要进行修正的情况下,可以按照预设修正模式对该除法计算结果进行修正。其中,上述修正过程与子情况一中所描述的修正过程相同,此处不再详细赘述。
例如,如果无符号被除数(abs_a)为“10100”,无符号除数(abs_b)为上述“110”,那么,可以确定abs_a的最高有效位L=4,以及确定abs_b的最高有效位K=2,L>K。此时,可以确定新除数,该新除数(new_abs_b)即为:“11000”。此时,可以确定abs_a[L-1:0]=0100,new_abs_b[L-1:0]=1000,可知,abs_a[L-1:0]<new_abs_b[L-1:0],那么,可以确定该无符号被除数和无符号除数之间的除法计算结果为:商=10,余数=10100-2*101=1000。
由于上述除法计算结果中余数1000大于无符号除数110,因此,需要对该除法计算结果进行修正,修正之后的除法计算结果为:商=10+1=11,余数=1000-110=10。
情况四:
在基于所述第一比较结果确定所述第一最高有效位大于或者等于所述第二最高有效位,且所述除数中位于所述第二最高有效位后的数据为所述第一数值的情况下,确定所述除法计算结果的除法计算模式为第五计算模式,其中,所述第五计算模式用于指示被除数和除数之间的商为无符号的被除数向右移动所述第二最高有效位后的数据,且用于指示被除数和除数之间的余数为无符号的被除数中的位于所述第二最高有效位后的数据。
在本公开实施例中,由上述描述可知,第一数值可以理解为数值0,因此,除数中位于第二最高有效位后的数据为第一数值也可以表示为abs_b[K-1:0]=0。
因此,如图5所示,本公开实施例中的情况四可以描述为:在L≥K,且abs_b[K-1:0]=0的情况下,确定除法计算结果的除法计算模式为第五计算模式,该第五计算模式即为“div=abs_a>>K,rem=abs_a[K-1:0]”。其中,div=abs_a>>K表示商为无符号的被除数向右移动第二最高有效位后的数据,rem=abs_a[K-1:0]表示为无符号的被除数中的位于所述第二最高有效位后的数据。
例如,如果无符号被除数(abs_a)为“11000”,无符号除数(abs_b)为上述“100”,那么可以确定abs_a的最高有效位L=4,以及确定abs_b的最高有效位K=2,,L>K。并且abs_b[K-1:0]=0,此时,可以确定该无符号被除数和无符号除数之间的除法计算结果为:商=110,余数=00。
上述实施方式中,可以通过第一比较结果确定被除数和除数的除法计算结果的除法计算模式,并基于该除法计算模式确定除法计算结果,从而可以简化确定除法计算结果的过程,提高确定除法计算结果的效率,进而可以满足实时性要求较高的场景的需求。
此外,在一个可选的实施方式中,在确定出无符号除数与第一数值相同的情况下,暂停当前任务,并生成错误信号。之后,工作人员可以根据该错误信号确定当前任务的准确性。
在确定出无符号除数与第二数值相同的情况下,则确定除法计算结果中商为无符号被除数,且除法计算结果中余数为第一数值。
参照图6所示,为本公开实施例提供的一种运算电路的示意图,所述运算电路包括:数据读取单元61和数据运算单元62;其中,
数据读取单元61,用于读取当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;并将该多个待运算数据发送至数据运算单元62。
数据运算单元62,用于在接收到多个待运算数据之后,确定每个所述待运算数据的最高有效位,得到多个最高有效位;以及将所述多个最高有效位进行比较,得到第一比较结果;以及基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
上述实施方式中,可以通过每个待运算数据的最高有效位来确定除法计算模式,并基于该除法计算模式确定除法计算结果,从而可以节省进行除法计算所消耗的时间,进而提高除法计算的运算效率。同时,还可以避免由于循环移位比较所导致的除法计算占据较多内存的问题,从而节省了运算的计算资源,进一步提升了运算电路的性能。
在一个可选的实施方式中,数据运算单元62,用于:将各所述待运算数据转换为无符号待运算数据;调整所述无符号待运算数据的数据位宽,得到调整后的无符号待运算数据,其中,所述调整后的无符号待运算数据的数据位宽为所述多个待运算数据中的最大数据位宽;所述调整后的无符号待运算数据包括调整后的无符号被除数和调整后的无符号除数;确定各所述调整后的无符号待运算数据的最高有效位,得到所述多个最高有效位。
在一个可选的实施方式中,数据运算单元62,用于:从每个所述待运算数据的最高数据位开始遍历,查找首个目标数值所对应的目标数据位,并将所述目标数据位确定为所述最高有效位,其中,所述目标数值为该待运算数据中的非零数值。
在一个可选的实施方式中,在多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位的情况下,数据运算单元62,用于:在基于所述第一比较结果确定所述第一最高有效位小于所述第二最高有效位的情况下,确定所述除法计算结果的除法计算模式为第一计算模式,其中,所述第一计算模式用于指示被除数和除数之间的商为第一数值,且指示被除数和除数之间的余数为所述被除数的绝对值。
在一个可选的实施方式中,在多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位的情况下,数据运算单元62,用于:在基于所述第一比较结果确定所述第一最高有效位等于所述第二最高有效位的情况下,确定所述被除数中位于所述第一最高有效位之后的数据,得到第一目标数据,并确定所述除数中位于所述第一最高有效位之后的数据,得到第二目标数据;确定所述第一目标数据和所述第二目标数据的第二比较结果;基于所述第二比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
在一个可选的实施方式中,数据运算单元62,用于:在基于所述第二比较结果确定所述第一目标数据小于所述第二目标数据的情况下,确定所述除法计算结果的除法计算模式为第一计算模式,其中,所述第一计算模式用于指示被除数和除数之间的商为第一数值,且指示被除数和除数之间的余数为所述被除数的绝对值。
在一个可选的实施方式中,数据运算单元62,用于:在基于所述第二比较结果确定所述第一目标数据大于或者等于所述第二目标数据的情况下,确定所述除法计算结果的除法计算模式为第二计算模式,其中,所述第二计算模式用于指示被除数和除数之间的商为第二数值,且指示被除数和除数之间的余数为无符号被除数和无符号除数之间的差值。
在一个可选的实施方式中,在多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位的情况下,数据运算单元62,用于:在基于所述第一比较结果确定所述第一最高有效位大于所述第二最高有效位的情况下,基于所述除数生成新除数;其中,所述新除数与所述被除数的数据位宽相同;确定所述被除数中位于所述第一最高有效位之后的数据,得到第三目标数据,并确定所述新除数中位于所述第一最高有效位之后的数据,得到第四目标数据;确定所述第三目标数据和所述第四目标数据的第三比较结果;基于所述第三比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
在一个可选的实施方式中,数据运算单元62,用于:在基于所述第三比较结果确定所述第三目标数据大于或者等于所述第四目标数据的情况下,确定所述除法计算结果的除法计算模式为第三计算模式,其中,所述第三计算模式用于指示被除数和除数之间的商为第三数值,且指示被除数和除数之间的余数为无符号被除数和无符号新除数之间的差值;所述第三数值为有效数据向左移动第一差值之后的数据,所述第一差值为所述第一最高有效位和所述第二最高有效位的差值。
在一个可选的实施方式中,数据运算单元62,用于:在基于所述第三比较结果确定所述第三目标数据小于所述第四目标数据的情况下,确定所述除法计算结果的除法计算模式为第四计算模式,其中,所述第四计算模式用于指示被除数和除数之间的商为第四数值,且指示被除数和除数之间的余数为无符号被除数和第五数值之间的差值,所述第四数值为有效数据向左移动第二差值之后的数据,所述第二差值为第一差值和第二数值之间的差值,所述第五数值为所述第四数值和无符号除数之间的乘积。
在一个可选的实施方式中,在多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位的情况下,数据运算单元62,用于:在基于所述第一比较结果确定所述第一最高有效位大于或者等于所述第二最高有效位,且所述除数中位于所述第二最高有效位后的数据为所述第一数值的情况下,确定所述除法计算结果的除法计算模式为第五计算模式,其中,所述第五计算模式用于指示被除数和除数之间的商为无符号的被除数向右移动所述第二最高有效位后的数据,且用于指示被除数和除数之间的余数为无符号的被除数中的位于所述第二最高有效位后的数据。
在一个可选的实施方式中,除法计算结果还包括商的符号位;所述数据运算单元62,还用于:确定各所述待运算数据的符号位,并基于所述符号位确定所述除法计算结果中商的符号位。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与运算方法对应的运算装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述运算方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图7所示,为本公开实施例提供的一种运算装置的示意图,所述装置包括:读取单元71、第一确定单元72、比较单元73、第二确定单元74;其中,
获取单元71,用于获取用于执行当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;
第一确定单元72,用于确定每个所述待运算数据的最高有效位,得到多个最高有效位;
比较单元73,用于将所述多个最高有效位进行比较,得到第一比较结果;
第二确定单元74,用于基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
在本公开实施例中,可以在获取多个待运算数据之后,确定每个待运算数据的最高有效位,得到多个最高有效位。之后,可以将该多个最高有效位进行比较,得到第一比较结果。接着,就可以基于该第一比较结果确定除法计算模式,并基于该计算模式得到除法计算结果。上述实施方式中,可以通过每个待运算数据的最高有效位来确定除法计算模式,并基于该除法计算模式确定除法计算结果,从而可以节省进行除法计算所消耗的时间,进而提高除法计算的运算效率。同时,还可以避免由于循环移位比较所导致的除法计算占据较多内存的问题,从而节省了运算的计算资源,进一步提升了运算电路的性能。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1中的运算方法,本公开实施例还提供了一种芯片800,如图8所示,为本公开实施例提供的芯片800结构示意图,包括:
处理器81、存储器82、和总线83;存储器82用于存储执行指令;所述处理器81与所述存储器82之间通过总线83通信,使得所述处理器81执行以下指令:
获取用于执行当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;
确定每个所述待运算数据的最高有效位,得到多个最高有效位;
将所述多个最高有效位进行比较,得到第一比较结果;
基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
本公开还提供了一种板卡,其包括了封装有至少一个上述芯片的封装结构。参阅图9,其提供了一种示例性的板卡,上述板卡包括上述芯片900,还可以包括其他的部件,包括但不限于:存储器件902和接口器件904。
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元906,例如:DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)等。每一组所述存储单元与所述芯片通过总线连接。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备908(例如:终端、服务器、摄像头等)之间的数据传输。在一个实施例中,所述接口装置可以包括PCIE接口,还可以是网络接口、或者其他的接口,本公开不做限制。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述所述的运算电路,或者执行上述方法实施例中所述的运算方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的运算方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (18)
1.一种运算电路,其特征在于,包括:数据读取单元和数据运算单元:
所述数据读取单元,用于读取当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;
所述数据运算单元,用于确定每个所述待运算数据的最高有效位,得到多个最高有效位;以及将所述多个最高有效位进行比较,得到第一比较结果;以及基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
2.根据权利要求1所述的运算电路,其特征在于,所述数据运算单元用于:
将各所述待运算数据转换为无符号待运算数据;
调整所述无符号待运算数据的数据位宽,得到调整后的无符号待运算数据,其中,所述调整后的无符号待运算数据的数据位宽为所述多个待运算数据中的最大数据位宽;
确定各所述调整后的无符号待运算数据的最高有效位,得到所述多个最高有效位。
3.根据权利要求1或2所述的运算电路,其特征在于,所述数据运算单元用于:
从每个所述待运算数据的最高数据位开始遍历,查找首个目标数值所对应的目标数据位,并将所述目标数据位确定为所述最高有效位,其中,所述目标数值为该待运算数据中的非零数值。
4.根据权利要求1至3中任一项所述的运算电路,其特征在于,所述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位;
所述数据运算单元用于:
在基于所述第一比较结果确定所述第一最高有效位小于所述第二最高有效位的情况下,确定所述除法计算结果的除法计算模式为第一计算模式,其中,所述第一计算模式用于指示被除数和除数之间的商为第一数值,且指示被除数和除数之间的余数为所述被除数的绝对值。
5.根据权利要求1至4中任一项所述的运算电路,其特征在于,所述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位;
所述数据运算单元用于:
在基于所述第一比较结果确定所述第一最高有效位等于所述第二最高有效位的情况下,确定所述被除数中位于所述第一最高有效位之后的数据,得到第一目标数据,并确定所述除数中位于所述第一最高有效位之后的数据,得到第二目标数据;
确定所述第一目标数据和所述第二目标数据的第二比较结果;
基于所述第二比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
6.根据权利要求5所述的运算电路,其特征在于,所述数据运算单元用于:
在基于所述第二比较结果确定所述第一目标数据小于所述第二目标数据的情况下,确定所述除法计算结果的除法计算模式为第一计算模式,其中,所述第一计算模式用于指示被除数和除数之间的商为第一数值,且指示被除数和除数之间的余数为所述被除数的绝对值。
7.根据权利要求5或6所述的运算电路,其特征在于,所述数据运算单元用于:
在基于所述第二比较结果确定所述第一目标数据大于或者等于所述第二目标数据的情况下,确定所述除法计算结果的除法计算模式为第二计算模式,其中,所述第二计算模式用于指示被除数和除数之间的商为第二数值,且指示被除数和除数之间的余数为无符号被除数和无符号除数之间的差值。
8.根据权利要求1至7中任一项所述的运算电路,其特征在于,所述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位;
所述数据运算单元用于:
在基于所述第一比较结果确定所述第一最高有效位大于所述第二最高有效位的情况下,基于所述除数生成新除数;其中,所述新除数与所述被除数的数据位宽相同;
确定所述被除数中位于所述第一最高有效位之后的数据,得到第三目标数据,并确定所述新除数中位于所述第一最高有效位之后的数据,得到第四目标数据;
确定所述第三目标数据和所述第四目标数据的第三比较结果;
基于所述第三比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式。
9.根据权利要求8所述的运算电路,其特征在于,所述数据运算单元用于:
在基于所述第三比较结果确定所述第三目标数据大于或者等于所述第四目标数据的情况下,确定所述除法计算结果的除法计算模式为第三计算模式,其中,所述第三计算模式用于指示被除数和除数之间的商为第三数值,且指示被除数和除数之间的余数为无符号被除数和无符号新除数之间的差值;所述第三数值为有效数据向左移动第一差值之后的数据,所述第一差值为所述第一最高有效位和所述第二最高有效位的差值。
10.根据权利要求8或9所述的运算电路,其特征在于,所述数据运算单元用于:
在基于所述第三比较结果确定所述第三目标数据小于所述第四目标数据的情况下,确定所述除法计算结果的除法计算模式为第四计算模式,其中,所述第四计算模式用于指示被除数和除数之间的商为第四数值,且指示被除数和除数之间的余数为无符号被除数和第五数值之间的差值,所述第四数值为有效数据向左移动第二差值之后的数据,所述第二差值为第一差值和第二数值之间的差值,所述第五数值为所述第四数值和无符号除数之间的乘积。
11.根据权利要求1至10中任一项所述的运算电路,其特征在于,所述多个最高有效位包括:基于所述被除数确定的第一最高有效位和基于所述除数确定的第二最高有效位;
所述数据运算单元用于:
在基于所述第一比较结果确定所述第一最高有效位大于或者等于所述第二最高有效位,且所述除数中位于所述第二最高有效位后的数据为第一数值的情况下,确定所述除法计算结果的除法计算模式为第五计算模式,其中,所述第五计算模式用于指示被除数和除数之间的商为无符号的被除数向右移动所述第二最高有效位后的数据,且用于指示被除数和除数之间的余数为无符号的被除数中的位于所述第二最高有效位后的数据。
12.根据权利要求1至11中任一项所述的运算电路,其特征在于,所述除法计算结果还包括商的符号位;所述数据运算单元还用于:
确定各所述待运算数据的符号位,并基于所述符号位确定所述除法计算结果中商的符号位。
13.一种运算方法,其特征在于,包括:
获取用于执行当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;
确定每个所述待运算数据的最高有效位,得到多个最高有效位;
将所述多个最高有效位进行比较,得到第一比较结果;
基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
14.一种运算装置,其特征在于,包括:
获取单元,用于获取用于执行当前任务的多个待运算数据,其中,所述多个待运算数据包含被除数和除数;
第一确定单元,用于确定每个所述待运算数据的最高有效位,得到多个最高有效位;
比较单元,用于将所述多个最高有效位进行比较,得到第一比较结果;
第二确定单元,用于基于所述第一比较结果确定所述被除数和所述除数的除法计算结果的除法计算模式,并基于所述除法计算模式确定所述除法计算结果。
15.一种芯片,其特征在于,包括如权利要求1至12中任一项所述的运算电路。
16.一种板卡,其特征在于,包括:封装有至少一个如权利要求15所述芯片的封装结构。
17.一种电子设备,其特征在于,包括如权利要求15所述的芯片,或者如权利要求16所述的板卡。
18.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至12中任一项所述的运算电路,或者,执行如权利要求13所述的运算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210911333.4A CN115220691A (zh) | 2022-07-29 | 2022-07-29 | 运算电路、运算方法、装置、芯片、板卡、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210911333.4A CN115220691A (zh) | 2022-07-29 | 2022-07-29 | 运算电路、运算方法、装置、芯片、板卡、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220691A true CN115220691A (zh) | 2022-10-21 |
Family
ID=83615746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210911333.4A Pending CN115220691A (zh) | 2022-07-29 | 2022-07-29 | 运算电路、运算方法、装置、芯片、板卡、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220691A (zh) |
-
2022
- 2022-07-29 CN CN202210911333.4A patent/CN115220691A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10217026B1 (en) | Computer architecture for emulating an asynchronous correlithm object processing system | |
JP5731937B2 (ja) | ベクトル浮動小数点引数削減 | |
CN109145080B (zh) | 一种文本指纹获得方法及装置 | |
KR102581403B1 (ko) | 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법 | |
KR20100048928A (ko) | 범위 검출을 수행하기 위한 명령어 및 로직 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN111708513B (zh) | 一种伪随机数种子生成方法及相关产品 | |
US7181591B2 (en) | Memory address decoding method and related apparatus by bit-pattern matching | |
CN114116013B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN109961516B (zh) | 表面获取方法、装置及非暂态电脑可读取记录媒体 | |
CN109635839B (zh) | 一种基于机器学习的非平衡数据集的处理方法和装置 | |
CN115220691A (zh) | 运算电路、运算方法、装置、芯片、板卡、设备及介质 | |
US11010135B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
CN111381905B (zh) | 一种程序处理方法、装置及设备 | |
CN116166583A (zh) | 一种数据精度的转换方法、装置、dma控制器及介质 | |
CN115630595A (zh) | 逻辑电路的自动生成方法、装置、电子设备及存储介质 | |
CN115357216A (zh) | 数据处理方法、介质、电子设备和程序产品 | |
CN115146769A (zh) | 一种基于范围可寻址查找表计算tanh函数的数字电路模块 | |
CN113537392A (zh) | 相似图像的识别方法、装置、计算设备及计算机存储介质 | |
CN110427172A (zh) | 浮点数处理方法、装置、设备及计算机可读存储介质 | |
CN108256642B (zh) | 一种用于非精确计算神经网络的电路设计方法 | |
CN115906651B (zh) | 二值神经网络的更新方法、装置及电子设备 | |
CN111260070A (zh) | 运算方法、装置及相关产品 | |
CN113391787B (zh) | 一种除法器及除法处理方法 | |
CN117170686B (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 |