CN113703717B - 二进制浮点数乘法运算电路及其控制方法、计算装置 - Google Patents

二进制浮点数乘法运算电路及其控制方法、计算装置 Download PDF

Info

Publication number
CN113703717B
CN113703717B CN202111011713.4A CN202111011713A CN113703717B CN 113703717 B CN113703717 B CN 113703717B CN 202111011713 A CN202111011713 A CN 202111011713A CN 113703717 B CN113703717 B CN 113703717B
Authority
CN
China
Prior art keywords
floating point
point number
integer
circuit
intermediate result
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
CN202111011713.4A
Other languages
English (en)
Other versions
CN113703717A (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.)
Nanjing Yingruichuang Electronic Technology Co Ltd
Original Assignee
Nanjing Yingruichuang Electronic 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 Nanjing Yingruichuang Electronic Technology Co Ltd filed Critical Nanjing Yingruichuang Electronic Technology Co Ltd
Priority to CN202111011713.4A priority Critical patent/CN113703717B/zh
Publication of CN113703717A publication Critical patent/CN113703717A/zh
Application granted granted Critical
Publication of CN113703717B publication Critical patent/CN113703717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种二进制浮点数乘法运算电路及其控制方法、计算装置。电路包括存储模块、数据运算模块和数据格式化模块。存储模块用于获取并缓存按照第一数据格式表示的第一浮点数和第二浮点数;数据运算模块用于对第一浮点数和第二浮点数的整数执行乘法运算以得到中间结果浮点数的整数,以及对指数执行加法运算以得到中间结果浮点数的指数,输出按照第二数据格式表示的中间结果浮点数以及格式化启动信号;数据格式化模块用于向左移位中间结果浮点数的整数,并选取对应位数的数值作为目标浮点数的整数,以及调整中间结果浮点数的指数以得到目标浮点数的指数。上述电路可以有效提升浮点数乘法运算中浮点数的有效位数和表示精度。

Description

二进制浮点数乘法运算电路及其控制方法、计算装置
技术领域
本发明涉及计算机体系架构技术领域,特别是涉及二进制浮点数乘法运算电路及其控制方法、计算装置。
背景技术
浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数,其主要由整数、指数和基数组成。由于浮点数是近似表示,因此浮点数会涉及到表达精度的问题。
浮点数运算即利用浮点数进行加减乘除等运算。在现有的浮点数乘法运算中,浮点数虽然可以具有较大的数据的表示范围,但是在浮点数的位数有限的情况下,其数据表示范围大也就意味着其表示精度较低。
发明内容
基于此,有必要针对浮点数运算中的浮点数表示精度低的问题,提供一种二进制浮点数乘法运算电路及其控制方法、计算装置。
本公开实施例提供了一种二进制浮点数乘法运算电路控制方法,二进制浮点数乘法运算电路包括存储模块、数据运算模块和数据格式化模块;控制方法包括以下步骤。
控制存储模块获取按照第一数据格式表示的第一浮点数和第二浮点数;第一浮点数和第二浮点数的基数均为2。
控制数据运算模块对第一浮点数的整数和第二浮点数的整数执行乘法运算,以得到中间结果浮点数的整数。对第一浮点数的指数和第二浮点数的指数执行加法运算,以得到中间结果浮点数的指数。输出按照第二数据格式表示的中间结果浮点数。
控制数据格式化模块向左移位中间结果浮点数的整数,判断第二数据格式中整数的最高位数和次高位数是否相同。
若否,则控制数据格式化模块按照第一数据格式中的整数位数,从第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数。并按照中间结果浮点数的整数的移位个数,调整中间结果浮点数的指数,以得到目标浮点数的指数。输出目标浮点数作为运算结果。
若是,则判断中间结果浮点数的整数的移位个数是否小于阈值。
若是,则返回执行控制数据格式化模块向左移位中间结果浮点数的整数的步骤;
若否,则控制数据格式化模块按照第一数据格式中的整数位数,从第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数;并按照中间结果浮点数的整数的移位个数,调整中间结果浮点数的指数,以得到目标浮点数的指数;输出目标浮点数作为运算结果。
在本公开实施例中,第一浮点数和第二浮点数的基数为2,第一浮点数和第二浮点数的整数和指数均按照第一数据格式表示。这样在对第一浮点数的整数和第二浮点数的整数执行乘法运算,对第一浮点数的指数和第二浮点数的指数执行加法运算后,可以得到按照第二数据格式表示的中间结果浮点数。第二数据格式中的整数位数为第一数据格式中的整数位数的2倍。
基于此,向左移位中间结果浮点数的整数,并在第二数据格式中整数的最高位数和次高位数不同的情况下,或者第二数据格式中整数的最高位数和次高位数相同且中间结果浮点数的整数的移位个数等于阈值的情况下,按照第一数据格式中的整数位数,从第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数,以及按照中间结果浮点数的整数的移位个数获取目标浮点数的指数,便能够输出按照第一数据格式表示的目标浮点数作为运算结果。
由上,本公开实施例可以在浮点数的位数有限的情况下,利用对中间结果浮点数的整数进行移位,并从移位后的中间结果浮点数的整数中(也即从第二数据格式中整数的最高位数开始)按照第一数据格式的整数位数获取目标浮点数的整数,进而将目标浮点数作为运算结果输出的方式,可以有效提升浮点数乘法运算中浮点数的有效位数和浮点数的表示精度,以确保浮点数乘法运算具有较好的运算精度。
在一个实施例中,第一浮点数和第二浮点数的实际值为:N/2X;其中,N为对应浮点数的整数,对应浮点数的整数包括符号;X为对应浮点数的指数。
本公开实施例还提供了一种二进制浮点数乘法运算电路,其包括:存储模块、数据运算模块以及数据格式化模块。
存储模块用于获取并缓存按照第一数据格式表示的第一浮点数和第二浮点数。
数据运算模块与存储模块连接,用于对第一浮点数的整数和第二浮点数的整数执行乘法运算,以得到中间结果浮点数的整数;对第一浮点数的指数和第二浮点数的指数执行加法运算,以得到中间结果浮点数的指数;输出按照第二数据格式表示的中间结果浮点数以及格式化启动信号。
数据格式化模块与数据运算模块连接,用于在格式化启动信号的触发下,向左移位中间结果浮点数的整数。
数据格式化模块还用于:在第二数据格式中整数的最高位数和次高位数不同的情况下,或者第二数据格式中整数的最高位数和次高位数相同且中间结果浮点数的整数的移位个数等于阈值的情况下,按照第一数据格式中的整数位数,从第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数;并按照中间结果浮点数的整数的移位个数,调整中间结果浮点数的指数,以得到目标浮点数的指数;输出目标浮点数作为运算结果。
本申请实施例提供的二进制浮点数乘法运算电路结构简单,运算方便,可以有效提升浮点数乘法运算中浮点数的有效位数和浮点数的表示精度,以确保浮点乘法运算具有较好的运算精度。
在一个实施例中,存储模块包括:第一缓存电路和第二缓存电路。第一缓存电路用于获取并缓存按照第一数据格式表示的第一浮点数。第二缓存电路用于获取并缓存按照第一数据格式表示的第二浮点数。
在一个实施例中,数据运算模块包括:乘法电路和加法电路。
乘法电路与存储模块连接,用于对第一浮点数的整数和第二浮点数的整数执行乘法运算,以得到中间结果浮点数的整数并输出格式化启动信号。
加法电路与存储模块连接,用于对第一浮点数的指数和第二浮点数的指数执行加法运算,以得到中间结果浮点数的指数。
在一个实施例中,数据运算模块还包括:与乘法电路连接的延迟电路。
延迟电路用于响应于时钟信号,输出延迟启动信号。
乘法电路还用于响应于延迟启动信号,对第一浮点数的整数和第二浮点数的整数执行乘法运算。
在一个实施例中,二进制浮点数乘法运算电路还包括:时钟信号端。时钟信号端与延迟电路连接,用于向延迟电路输出时钟信号。
在一个实施例中,数据格式化模块包括:移位寄存器电路、异或电路、计数器、或电路、第一与电路、非逻辑电路以及第二与电路。
移位寄存器电路与数据运算模块连接,用于在格式化启动信号的触发下,按照第二数据格式缓存中间结果浮点数的整数,并根据移位使能信号向左移位或停止移位中间结果浮点数的整数。
异或电路与移位寄存器电路连接,用于判断移位寄存器电路缓存的最高位数和次高位数是否相同,并输出异或运算结果。
计数器用于在格式化启动信号的触发下,记录移位中间结果浮点数的整数时的移位个数,并输出计数值、计数值达到信号以及计数运行信号。
或电路与异或电路、计数器连接,用于根据异或运算结果和计数值达到信号,输出或运算结果。
第一与电路与或电路、计数器连接,用于根据或运算结果和计数运行信号,输出计数使能信号。计数器还用于根据计数使能信号计数或停止计数。
非逻辑电路与第一与电路连接,用于根据计数使能信号输出非逻辑运算结果。
第二与电路与非逻辑电路、计数器、移位寄存器电路连接,用于根据非逻辑运算结果和计数运行信号,输出移位使能信号至移位寄存器电路。
移位寄存器电路还用于在停止移位的情况下,按照第一数据格式中的整数位数,从移位寄存器电路缓存的最高位数开始选取对应位数的数值,作为目标浮点数的整数输出。
在一个实施例中,数据格式化模块还包括:指数计算电路和拼接电路。
指数计算电路与数据运算模块、计数器连接,用于将中间结果浮点数的指数和计数值相加,并减去第一数据格式的整数位数,以得到目标浮点数的指数。
拼接电路与指数计算电路、移位寄存器电路连接,用于拼接目标浮点数的整数和目标浮点数的指数,以得到目标浮点数并作为运算结果输出。
本公开实施例还提供了一种计算装置,包括前述一些实施例中的二进制浮点数乘法运算电路。前述二进制浮点数乘法运算电路所能实现的技术效果,该计算装置也均能实现,此处不再详述。
附图说明
为了更清楚地说明本公开实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一实施例中提供的一种二进制浮点数乘法运算方法的方法流程图;
图2为一实施例中提供的一种二进制浮点数乘法运算电路的结构示意图;
图3为一实施例中提供的一种存储模块的结构示意图;
图4为一实施例中提供的一种数据运算模块的结构示意图;
图5为一实施例中提供的一种数据格式化模块的结构示意图。
附图标号说明:
100-存储模块,110-第一缓存电路,120-第二缓存电路,200-数据运算模块,
210-乘法电路,220-加法电路,230-延迟电路,300-数据格式化模块,
310-移位寄存器电路,320-异或电路,330-计数器,340-或电路,
350-第一与电路,360-非逻辑电路,370-第二与电路,380-指数计算电路,
390-拼接电路,Data1-第一浮点数,Data1_INT-第一浮点数的整数,
Data1_EXP-第一浮点数的指数,Data2-第二浮点数,
Data2_INT-第二浮点数的整数,Data2_EXP-第二浮点数的指数,
DataM-中间结果浮点数,DataM_INT-中间结果浮点数的整数,
DataM_EXP-中间结果浮点数的指数,DataT-目标浮点数,
DataT_INT-目标浮点数的整数,DataT_EXP-目标浮点数的指数,
DataF-运算结果,ST-启动信号,CLK-时钟信号,ST_D-延迟启动信号,
ST_F-格式化启动信号,ENC-计数使能信号,EN-移位使能信号,
RUN-计数运行信号,REACH-计数值达到信号,N-计数值,Q-输出有效信号。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
在使用本文中描述的“包括”、“具有”、和“包含”的情况下,除非使用了明确的限定用语,例如“仅”、“由……组成”等,否则还可以添加另一部件。除非相反地提及,否则单数形式的术语可以包括复数形式,并不能理解为其数量为一个。
为了说明本申请的技术方案,下面通过一些具体的实施例来进行说明。
为了便于理解本申请的技术方案,首先对本申请中涉及的概念和定义进行了说明,这些内容也属于本申请技术方案的一部分。
二进制浮点数主要由整数、指数和基数组成。本公开实施例中,二进制浮点数的整数和指数采用二进制进行表示,二进制浮点数的基数为2。以下内容中并不涉及二进制浮点数的基数,只针对其整数和指数进行说明。
二进制浮点数的整数的最高位为符号位,如果浮点数为正数则符号位为0,如果浮点数为负数则符号位为1。在二进制浮点数中,浮点数为负数时,该浮点数的整数的表示方式为:该数的相反数取反再加一;也就是说在二进制浮点数中符号位和整数中除符号位以外的数值的首位是不同的。例如,整数234可以表示为有符号位的二进制数:011101010;整数-234可以表示为有符号位的二进制数:100010110。
本公开实施例中,二进制浮点数的整数位数和指数位数均是固定的。以二进制浮点数为单精度浮点数为例,单精度浮点数的数据格式为32位,其中,整数位数为24位,指数位数为8位。例如,某个浮点数的整数为234,指数为3在将其按照单精度浮点数的数据格式缓存后,可以得到:整数为000000000000000011101010,指数为00000011。如此,整数000000000000000011101010中前16个连续的0即为该浮点数的符号位及其扩展。
本公开实施例中,二进制浮点数的实际值的表达形式为:N/2X,其中,N为浮点数的整数,整数包括符号,X为浮点数的指数。例如,某个浮点数的整数为234,指数为3,其实际值为234/23
本公开实施例中,二进制浮点数的整数向左移一位是指整数乘2,指数加1。以整数为234,指数为3为例,其向左移一位整数则表示为468,指数则表示为4,在将该整数468和指数4对应采用单精度浮点数予以表示后,整数为000000000000000111010100,指数为00000100。
本公开实施例中,二进制浮点数的有效位数是指其整数中包含符号位及其右侧有效数值的位数。例如,二进制浮点数的整数按照单精度浮点数予以表示后,若整数为000000000000000111010100,其中,0111010100为其有效位数,第一个0为符号位,有效位数为10位;若整数为011101010000000000000000,其中,011101010000000000000000为其有效位数,第一个0为符号位,有效位数为24位。
基于上述内容,请参阅图1,本公开实施例提供了一种二进制浮点数乘法运算电路控制方法,二进制浮点数乘法运算电路包括存储模块、数据运算模块和数据格式化模块;控制方法包括以下步骤。
步骤101,控制存储模块获取按照第一数据格式表示的第一浮点数和第二浮点数。其中,第一浮点数和第二浮点数的基数均为2。
例如,第一数据格式为32位,其中整数位数为24位,指数位数为8位。第一浮点数为二进制浮点数。第一浮点数的整数为30,指数为3。按照第一数据格式表示第一浮点数,第一浮点数的整数为000000000000000000011110,第一浮点数的指数为00000011。第二浮点数为二进制浮点数。第二浮点数的整数为4,指数为1。按照第一数据格式表示第二浮点数,第二浮点数的整数为000000000000000000000100,第一浮点数的指数为00000001。
步骤102,控制数据运算模块对第一浮点数的整数和第二浮点数的整数执行乘法运算,以得到中间结果浮点数的整数;对第一浮点数的指数和第二浮点数的指数执行加法运算,以得到中间结果浮点数的指数;输出按照第二数据格式表示的中间结果浮点数。
示例的,上述举例中的第一浮点数和第二浮点数均按照第一数据格式表示,第一数据格式中的整数位数为24位。在将第一浮点数的整数和第二浮点数的整数执行乘法运算后,对应获得的中间结果浮点数的整数位数为48位。因此,第二数据格式的整数位数可以设置为第一数据格式的整数位数的两倍。例如中间结果浮点数的整数为000000000000000000000000000000000000000001111000,该整数位数共有48位,是第一数据格式的整数位数的两倍,因此该整数可以按照第二数据格式表示。
示例的,对上述举例中的第一浮点数的指数和第二浮点数的指数执行加法运算,得到中间结果浮点数的指数为4,其按照第二数据格式表示为00000100。
步骤103,控制数据格式化模块向左移位中间结果浮点数的整数,判断第二数据格式中整数的最高位数和次高位数是否相同。
若否,则控制数据格式化模块按照第一数据格式中的整数位数,从第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数;并按照中间结果浮点数的整数的移位个数,调整中间结果浮点数的指数,以得到目标浮点数的指数;输出目标浮点数作为运算结果。
若是,则执行步骤104。
步骤104,判断中间结果浮点数的整数的移位个数是否小于阈值。
若是,则返回执行步骤103。
若否,则控制数据格式化模块按照第一数据格式中的整数位数,从第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数;并按照中间结果浮点数的整数的移位个数,调整中间结果浮点数的指数,以得到目标浮点数的指数;输出目标浮点数作为运算结果。
示例的,阈值为第二数据格式的整数位数减一。例如,第二数据格式的整数位数为48位,则阈值为47。
例如,上述举例中,中间结果浮点数的整数的最高位数和次高位数相同,且此时的移位个数为0,小于阈值,需要向左移位中间结果浮点数的整数。在移位了40次后,第二数据格式中的整数为011110000000000000000000000000000000000000000000。此时,第二数据格式中整数的最高位数和次高位数不同,则按照第一数据格式,从第二数据格式中的整数选取011110000000000000000000作为目标浮点数的整数。中间结果浮点数的移位个数为40。目标浮点数的指数为中间结果浮点数的指数加上移位个数再减去第一数据格式中的整数位数,即20,其按照第一数据格式表示为00010100。该目标浮点数即为运算结果。
还例如,第一浮点数的整数为30,指数为3,按照第一数据格式表示第一浮点数,第一浮点数的整数为000000000000000000011110,第一浮点数的指数为00000011。第二浮点数的整数为0,指数为0,按照第一数据格式表示第二浮点数,第一浮点数的整数为000000000000000000000000,第一浮点数的指数为00000000。对第一浮点数和第二浮点数执行乘法运算,得到中间结果浮点数的整数为000000000000000000000000000000000000000000000000,该中间结果浮点数的整数的最高位数和次高位数相同,且此时的移位个数为0,小于阈值,需要向左移位中间结果浮点数的整数。在移位了47次后,第二数据格式中的整数仍为000000000000000000000000000000000000000000000000。此时的移位个数等于阈值,即47,则按照第一数据格式,从第二数据格式中的整数选取000000000000000000000000作为目标浮点数的整数。目标浮点数的指数为中间结果浮点数的指数加上移位个数再减去第一数据格式中的整数位数,即26,其按照第一数据格式表示为00011010。该目标浮点数即为运算结果。
在本公开实施例中,第一浮点数和第二浮点数的基数为2,第一浮点数和第二浮点数的整数和指数均按照第一数据格式表示。这样在对第一浮点数的整数和第二浮点数的整数执行乘法运算,对第一浮点数的指数和第二浮点数的指数执行加法运算后,可以得到按照第二数据格式表示的中间结果浮点数。第二数据格式中的整数位数为第一数据格式中的整数位数的2倍。
基于此,向左移位中间结果浮点数的整数,并在第二数据格式中整数的最高位数和次高位数不同的情况下,或者第二数据格式中整数的最高位数和次高位数相同且中间结果浮点数的整数的移位个数等于阈值的情况下,按照第一数据格式中的整数位数,从第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数,以及按照中间结果浮点数的整数的移位个数获取目标浮点数的指数,便能够输出按照第一数据格式表示的目标浮点数作为运算结果。
由上,本公开实施例可以在浮点数的位数有限的情况下,利用对中间结果浮点数的整数进行移位,并从移位后的中间结果浮点数的整数中(也即从第二数据格式中整数的最高位数开始)按照第一数据格式的整数位数获取目标浮点数的整数,进而将目标浮点数作为运算结果输出的方式,可以有效提升浮点数乘法运算中浮点数的有效位数和浮点数的表示精度,以确保浮点数乘法运算具有较好的运算精度。
本公开实施例还提供了一种二进制浮点数乘法运算电路,用于实施上述一些实施例中的二进制浮点数乘法运算。本公开实施例提供的二进制浮点数乘法运算电路结构简单,运算方便,可以有效提升浮点数乘法运算中浮点数的有效位数和浮点数的表示精度,以确保浮点乘法运算具有较好的运算精度。
请参阅图2至图5,在一些实施例中,二进制浮点数乘法运算电路包括:存储模块100、数据运算模块200以及数据格式化模块300。
存储模块100用于获取并缓存按照第一数据格式表示的第一浮点数Data1和第二浮点数Data2。
数据运算模块200与存储模块100连接,用于对第一浮点数的整数Data1_INT和第二浮点数的整数Data2_INT执行乘法运算,以得到中间结果浮点数的整数DataM_INT。对第一浮点数的指数Data1_EXP和第二浮点数的指数Data2_EXP执行加法运算,以得到中间结果浮点数的指数DataM_INT。输出按照第二数据格式表示的中间结果浮点数DataM以及格式化启动信号ST-F。
数据格式化模块300与数据运算模块200连接,用于在格式化启动信号ST-F的触发下,向左移位中间结果浮点数的整数DataM_INT。
数据格式化模块300还用于:在第二数据格式中整数的最高位数和次高位数不同的情况下,或者第二数据格式中整数的最高位数和次高位数相同且中间结果浮点数的整数DataM_INT的移位个数等于阈值的情况下,按照第一数据格式中的整数位数,从第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数DataT_INT;并按照中间结果浮点数的整数DataM_INT的移位个数,调整中间结果浮点数的指数DataM_EXP,以得到目标浮点数的指数DataT_EXP。输出目标浮点数DataT作为运算结果DataF。阈值为第二数据格式的整数位数减一。
请参阅图3至图5,在一些实施例中,二进制浮点数乘法运算电路还包括时钟信号端CLK和启动信号端ST。时钟信号端与存储模块100、数据运算模块200、数据格式化模块300连接,用于分别向存储模块100、数据运算模块200、数据格式化模块300输出时钟信号CLK。时钟信号CLK可以用于控制二进制浮点数乘法运算电路的时序。存储模块100、数据运算模块200、数据格式化模块300用于响应于时钟信号CLK执行对应运算。启动信号端ST与存储模块100、数据运算模块200连接,用于分别向存储模块100、数据运算模块200输出启动信号ST。启动信号ST可以用于启动二进制浮点数乘法运算电路。存储模块100、数据运算模块200用于响应于启动信号ST执行对应运算。
进一步的,上述二进制乘法运算电路的具体电路可以根据实际需求选择设置。
请参阅图3,在一个实施例中,存储模块100包括第一缓存电路110和第二缓存电路120。
第一缓存电路110,用于在时钟信号CLK和启动信号ST的触发下,获取并缓存按照第一数据格式表示的第一浮点数Data1。
第二缓存电路120,用于在时钟信号CLK和启动信号ST的触发下,获取并缓存按照第一数据格式表示的第二浮点数Data2。
请参阅图4,在一个实施例中,数据运算模块200包括:乘法电路210和加法电路220。
乘法电路210与第一缓存电路110、第二缓存电路120连接,用于对第一浮点数的整数Data1_INT和第二浮点数的整数Data2_INT执行乘法运算,以得到中间结果浮点数的整数DataM_INT并输出格式化启动信号ST_F。
加法电路220与第一缓存电路110、第二缓存电路120连接,用于对第一浮点数的指数Data1_EXP和第二浮点数的指数Data2_EXP执行加法运算,得到中间结果浮点数的指数DataM_EXP。
示例的,数据运算模块200还包括延迟电路230,延迟电路230用于响应于时钟信号CLK和启动信号ST并输出延迟启动信号ST_D。
乘法电路210还用于响应于延迟启动信号ST_D,对第一浮点数的整数Data1_INT和第二浮点数的整数Data2_INT执行乘法运算。
请查阅图5,在一个实施例中,数据格式化模块300包括:移位寄存器电路310、异或电路320、计数器330、或电路340、第一与电路350、非逻辑电路360以及第二与电路370。
移位寄存器电路310与乘法电路210连接,用于在时钟信号CLK和格式化启动信号ST_F的触发下,按照第二数据格式缓存中间结果浮点数的整数DataM_INT,并根据移位使能信号EN向左移位或停止移位中间结果浮点数的整数DataM_INT。移位寄存器电路310可以根据需要缓存的数据的位数对应选择。
异或电路320与移位寄存器电路310连接,用于判断移位寄存器电路310缓存的最高位数和次高位数是否相同,并输出异或运算结果。
计数器330用于在时钟信号CLK和格式化启动信号ST_F的触发下,记录移位中间结果浮点数的整数DataM_INT时的移位个数,并输出计数值N、计数值达到信号REACH以及计数运行信号RUN。计数值达到信号REACH在移位个数小于阈值时为无效,在移位个数等于阈值时为有效。计数运行信号RUN在计数器330未运行时为无效,在计数器330运行时为有效。
或电路340与异或电路320、计数器330连接,用于根据异或运算结果和计数值达到信号REACH,输出或运算结果。
第一与电路350与或电路340、计数器330连接,用于根据或运算结果和计数运行信号RUN,输出计数使能信号ENC。计数器330还用于根据计数使能信号ENC计数或停止计数。
在移位寄存器电路310缓存的最高位数和次高位数不同且计数运行信号RUN有效的情况下,或者在移位寄存器电路310缓存的最高位数和次高位数相同、移位个数等于阈值且计数运行信号RUN有效的情况下,计数使能信号ENC为无效并且计数使能信号ENC作为输出有效信号Q输出,计数器330停止计数。在移位寄存器电路310缓存的最高位数和次高位数相同、移位个数小于阈值且计数运行信号RUN有效的情况下,计数使能信号ENC为有效,计数器330继续计数。
非逻辑电路360与第一与电路350连接,用于根据计数使能信号ENC输出非逻辑运算结果。
第二与电路370与非逻辑电路360、计数器330、移位寄存器电路310连接,用于根据非逻辑运算结果和计数运行信号RUN,输出移位使能信号EN至移位寄存器电路310。
在移位寄存器电路310缓存的最高位数和次高位数不同且计数运行信号RUN为无效的情况下,或者在移位寄存器电路310缓存的最高位数和次高位数相同、移位个数等于阈值且计数运行信号RUN为无效的情况下,移位使能信号EN为无效,移位寄存器电路310停止移位。在移位寄存器电路310缓存的最高位数和次高位数相同、移位个数小于阈值且计数运行信号RUN为有效的情况下,移位使能信号EN为有效,移位寄存器电路310继续向左移位。
示例的,移位寄存器电路310还用于在停止移位的情况下,按照第一数据格式中的整数位数,从移位寄存器电路310缓存的最高位数开始选取对应位数的数值,作为目标浮点数的整数DataT_INT输出。
在一个实施例中,数据格式化模块300还包括指数计算电路380、拼接电路390。
指数计算电路380与加法电路220、计数器330连接,用于将中间结果浮点数的指数DataM_EXP和计数值N相加,并减去第一数据格式的整数位数,以得到目标浮点数的指数DataT_EXP。
拼接电路390与指数计算电路380、移位寄存器电路310连接,用于拼接目标浮点数的整数DataT_INT和目标浮点数的指数DataT_EXP,以得到目标浮点数DataT并作为运算结果DataF输出。
为了便于理解上述实施例中二进制浮点数乘法运算电路的运行原理,下面通过具体的数据来举例说明。
在一个实施例中,假设第一数据格式为32位,其中整数位数为24位,指数位数为8位。第二数据格式为56位,其中整数位数为48位,指数位数为8位。
第一浮点数的整数Data1_INT为30,第一浮点数的指数Data1_EXP为3,在将其按照第一数据格式缓存到第一缓存电路110中后,第一浮点数的整数Data1_INT表示为000000000000000000011110,第一浮点数的指数Data1_EXP表示为00000011。
第二浮点数的整数Data2_INT为4,第二浮点数的指数Data2_EXP为1,在将其按照第一数据格式缓存到第二缓存电路120中后,第二浮点数的整数Data2_INT表示为000000000000000000000100,第二浮点数的指数Data2_EXP表示为00000001。
乘法电路210对第一浮点数的整数Data1_INT和第二浮点数的整数Data2_INT执行乘法运算,得到中间结果浮点数的整数DataM_INT。中间结果浮点数的整数DataM_INT按照第二数据格式表示为000000000000000000000000000000000000000001111000。
加法电路220对第一浮点数的指数Data1_EXP和第二浮点数的指数Data2_EXP执行加法运算,得到中间结果浮点数的指数DataM_EXP为00000100。
移位寄存器电路310按照第二数据格式缓存中间结果浮点数的整数DataM_INT。计数器330开始计数并输出计数运行信号RUN和计数值达到信号REACH。此时的计数运行信号RUN为有效,计数值达到信号REACH为无效。
经异或电路320判断,移位寄存器电路310缓存的最高位数和次高位数相同,并输出对应的异或运算结果。
或电路340根据异或运算结果和计数值达到信号REACH输出对应的或运算结果。
第一与电路350根据或运算结果和计数运行信号RUN,输出计数使能信号ENC,此时的计数使能信号ENC为有效,计数器330继续计数。
非逻辑电路360根据计数使能信号ENC输出对应的非逻辑运算结果。
第二与电路370根据非逻辑运算结果和计数运行信号RUN,输出移位使能信号EN至移位寄存器电路310。此时的移位使能信号EN为有效,移位寄存器电路310向左移一位。此时移位寄存器电路310中的数据为000000000000000000000000000000000000000011110000。
在移位寄存器电路310按照上述步骤重复了40次后,移位寄存器电路310中的数据为011110000000000000000000000000000000000000000000。经异或电路320判断移位寄存器电路310缓存的最高位数和次高位数不同,并输出对应的异或运算结果。
或电路根据340根据异或运算结果和计数值达到信号REACH输出对应的或运算结果。
第一与电路350根据或运算结果和计数运行信号RUN,输出计数使能信号ENC。此时的计数使能信号ENC为无效,计数器330停止计数,计数使能信号ENC作为输出有效信号Q输出。计数值N为40,按照第一数据格式表示为00101000。
非逻辑电路360根据计数使能信号ENC输出对应的非逻辑运算结果。
第二与电路370根据非逻辑运算结果和计数运行信号RUN,输出移位使能信号EN至移位寄存器电路310。此时的计数运行信号RUN和移位使能信号EN均为无效,移位寄存器电路310停止移位。
移位寄存器电路310在停止移位的情况下,按照第一数据格式中的整数位数,从移位寄存器电路310缓存的最高位数开始选取对应位数的数值,作为目标浮点数的整数DataT_INT输出。目标浮点数的整数DataT_INT为011110000000000000000000。
指数计算电路380将中间结果浮点数的指数DataM_EXP和计数值N相加,并减去第一数据格式的整数位数,获得目标浮点数的指数DataT_EXP,即20,按照第一数据格式表示为00010100。
拼接电路390拼接目标浮点数的整数DataT_INT和目标浮点数的指数DataT_EXP,以得到目标浮点数DataT并作为运算结果DataF输出。运算结果的整数DataF_INT为011110000000000000000000,运算结果的指数DataF_EXP为00010100。运算结果DataF的实际值为7.5。
在另一个实施例中,假设第一数据格式为32位,其中整数位数为24位,指数位数为8位。第二数据格式为56位,其中整数位数为48位,指数位数为8位。
第一浮点数的整数Data1_INT为30,第一浮点数的指数Data1_EXP为3,在将其按照第一数据格式缓存到第一缓存电路110中后,第一浮点数的整数Data1_INT表示为000000000000000000011110,第一浮点数的指数Data1_EXP表示为00000011。
第二浮点数的整数Data2_INT为0,第二浮点数的指数Data2_EXP为0,在将其按照第一数据格式缓存到第二缓存电路120中后,第二浮点数的整数Data2_INT表示为000000000000000000000000,第二浮点数的指数Data2_EXP表示为00000000。
乘法电路210对第一浮点数的整数Data1_INT和第二浮点数的整数Data2_INT执行乘法运算,得到中间结果浮点数的整数DataM_INT。中间结果浮点数的整数DataM_INT按照第二数据格式表示为000000000000000000000000000000000000000000000000。
加法电路220对第一浮点数的指数Data1_EXP和第二浮点数的指数Data2_EXP执行加法运算,得到中间结果浮点数的指数DataM_EXP为00000011。
移位寄存器电路310按照第二数据格式缓存中间结果浮点数的整数DataM_INT。计数器330开始计数并输出计数运行信号RUN和计数值达到信号REACH。此时的计数运行信号RUN为有效,计数值达到信号REACH为无效。
经异或电路320判断,移位寄存器电路310缓存的最高位数和次高位数相同,并输出对应的异或运算结果。
或电路340根据异或运算结果和计数值达到信号REACH输出对应的或运算结果。
第一与电路350根据或运算结果和计数运行信号RUN,输出计数使能信号ENC,此时的计数使能信号ENC为有效,计数器330继续计数。
非逻辑电路360根据计数使能信号ENC输出对应的非逻辑运算结果。
第二与电路370根据非逻辑运算结果和计数运行信号RUN,输出移位使能信号EN至移位寄存器电路310。此时的移位使能信号EN为有效,移位寄存器电路310向左移一位。此时移位寄存器电路310中的数据为000000000000000000000000000000000000000000000000。
在移位寄存器电路310按照上述步骤重复了47次后,移位寄存器电路310中的数据仍为000000000000000000000000000000000000000000000000。经异或电路320判断移位寄存器电路310缓存的最高位数和次高位数相同,并输出对应的异或运算结果。此时的移位个数等于阈值,计数值达到信号REACH有效。
或电路根据340根据异或运算结果和计数值达到信号REACH输出对应的或运算结果。
第一与电路350根据或运算结果和计数运行信号RUN,输出计数使能信号ENC。此时的计数使能信号ENC为无效,计数器330停止计数,计数使能信号ENC作为输出有效信号Q输出。计数值N为47,按照第一数据格式表示为00101111。
非逻辑电路360根据计数使能信号ENC输出对应的非逻辑运算结果。
第二与电路370根据非逻辑运算结果和计数运行信号RUN,输出移位使能信号EN至移位寄存器电路310。此时的计数运行信号RUN和移位使能信号EN均为无效,移位寄存器电路310停止移位。
移位寄存器电路310在停止移位的情况下,按照第一数据格式中的整数位数,从移位寄存器电路310缓存的最高位数开始选取对应位数的数值,作为目标浮点数的整数DataT_INT输出。目标浮点数的整数DataT_INT为000000000000000000000000。
指数计算电路380将中间结果浮点数的指数DataM_EXP和计数值N相加,并减去第一数据格式的整数位数,获得目标浮点数的指数DataT_EXP,即26,按照第一数据格式表示为00011010。
拼接电路390拼接目标浮点数的整数DataT_INT和目标浮点数的指数DataT_EXP,以得到目标浮点数DataT并作为运算结果DataF输出。运算结果的整数DataF_INT为000000000000000000000000,运算结果的指数DataF_EXP为00011010。运算结果DataF的实际值为0。
本公开实施例还提供了一种计算装置,该计算装置包括如上一些实施例中的二进制浮点数乘法运算电路。
示例的,计算装置还可以包括输入装置、输出装置以及必要的存储器等。其中,输入装置可以包括诸如鼠标、键盘、触控屏、通信网络连接器等,用于输入二进制浮点数。输出装置可以包括诸如显示器、打印机、以及通信网络及其所连接的远程输出设备等,用于输出上述一些实施例中的运算结果。存储器用于存储上述输入装置输入的数据,以及二进制浮点数乘法运算电路运行过程中产生的数据。存储器可以包括易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
计算装置包括如上一些实施例中的二进制浮点数乘法运算电路,用于实施如上一些实施例中的二进制浮点数乘法运算方法。前述二进制浮点数乘法运算电路所能实现的技术效果,该计算装置也均能实现,此处不再详述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种二进制浮点数乘法运算电路,其特征在于,包括:
存储模块,用于获取并缓存按照第一数据格式表示的第一浮点数和第二浮点数;
数据运算模块,与所述存储模块连接,用于对所述第一浮点数的整数和所述第二浮点数的整数执行乘法运算,以得到中间结果浮点数的整数;对所述第一浮点数的指数和所述第二浮点数的指数执行加法运算,以得到中间结果浮点数的指数;输出按照第二数据格式表示的所述中间结果浮点数以及格式化启动信号;
数据格式化模块,与所述数据运算模块连接,用于在所述格式化启动信号的触发下,向左移位所述中间结果浮点数的整数;
所述数据格式化模块还用于:在所述第二数据格式中整数的最高位数和次高位数不同的情况下,或者所述第二数据格式中整数的最高位数和次高位数相同且所述中间结果浮点数的整数的移位个数等于阈值的情况下,按照所述第一数据格式中的整数位数,从所述第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数;并按照所述中间结果浮点数的整数的移位个数,调整所述中间结果浮点数的指数,以得到目标浮点数的指数;输出所述目标浮点数作为运算结果。
2.根据权利要求1所述的二进制浮点数乘法运算电路,其特征在于,所述存储模块,包括:
第一缓存电路,用于获取并缓存按照第一数据格式表示的第一浮点数;
第二缓存电路,用于获取并缓存按照第一数据格式表示的第二浮点数。
3.根据权利要求1所述的二进制浮点数乘法运算电路,其特征在于,所述数据运算模块,包括:
乘法电路,与所述存储模块连接,用于对所述第一浮点数的整数和所述第二浮点数的整数执行乘法运算,以得到所述中间结果浮点数的整数并输出所述格式化启动信号;
加法电路,与所述存储模块连接,用于对所述第一浮点数的指数和所述第二浮点数的指数执行加法运算,以得到所述中间结果浮点数的指数。
4.根据权利要求3所述的二进制浮点数乘法运算电路,其特征在于,所述数据运算模块,还包括:与所述乘法电路连接的延迟电路;
所述延迟电路用于响应于时钟信号,输出延迟启动信号;
所述乘法电路还用于响应于所述延迟启动信号,对所述第一浮点数的整数和所述第二浮点数的整数执行乘法运算。
5.根据权利要求4所述的二进制浮点数乘法运算电路,其特征在于,所述二进制浮点数乘法运算电路还包括:时钟信号端;
所述时钟信号端与所述延迟电路连接,用于向所述延迟电路输出所述时钟信号。
6.根据权利要求1所述的二进制浮点数乘法运算电路,其特征在于,所述数据格式化模块,包括:
移位寄存器电路,与所述数据运算模块连接,用于在所述格式化启动信号的触发下,按照所述第二数据格式缓存所述中间结果浮点数的整数,并根据移位使能信号向左移位或停止移位所述中间结果浮点数的整数;
异或电路,与所述移位寄存器电路连接,用于判断所述移位寄存器电路缓存的最高位数和次高位数是否相同,并输出异或运算结果;
计数器,用于在所述格式化启动信号的触发下,记录移位所述中间结果浮点数的整数时的移位个数,并输出计数值、计数值达到信号以及计数运行信号;
或电路,与所述异或电路、所述计数器连接,用于根据所述异或运算结果和所述计数值达到信号,输出或运算结果;
第一与电路,与所述或电路、所述计数器连接,用于根据所述或运算结果和所述计数运行信号,输出计数使能信号;所述计数器还用于根据所述计数使能信号计数或停止计数;
非逻辑电路,与所述第一与电路连接,用于根据所述计数使能信号输出非逻辑运算结果;
第二与电路,与所述非逻辑电路、所述计数器、所述移位寄存器电路连接,用于根据所述非逻辑运算结果和所述计数运行信号,输出所述移位使能信号至所述移位寄存器电路;
其中,所述移位寄存器电路还用于在停止移位的情况下,按照所述第一数据格式中的整数位数,从所述移位寄存器电路缓存的最高位数开始选取对应位数的数值,作为所述目标浮点数的整数输出。
7.根据权利要求6所述的二进制浮点数乘法运算电路,其特征在于,所述数据格式化模块还包括:
指数计算电路,与所述数据运算模块、所述计数器连接,用于将所述中间结果浮点数的指数和所述计数值相加,并减去所述第一数据格式的整数位数,以得到所述目标浮点数的指数;
拼接电路,与所述指数计算电路、所述移位寄存器电路连接,用于拼接所述目标浮点数的整数和所述目标浮点数的指数,以得到所述目标浮点数并作为所述运算结果输出。
8.一种计算装置,其特征在于,包括:如权利要求1~7中任一项所述的二进制浮点数乘法运算电路。
9.一种二进制浮点数乘法运算电路控制方法,其特征在于,所述二进制浮点数乘法运算电路包括存储模块、数据运算模块和数据格式化模块;所述控制方法包括:
控制所述存储模块获取按照第一数据格式表示的第一浮点数和第二浮点数;所述第一浮点数和所述第二浮点数的基数均为2;
控制所述数据运算模块对所述第一浮点数的整数和所述第二浮点数的整数执行乘法运算,以得到中间结果浮点数的整数;对所述第一浮点数的指数和所述第二浮点数的指数执行加法运算,以得到中间结果浮点数的指数;输出按照第二数据格式表示的所述中间结果浮点数;
控制所述数据格式化模块向左移位所述中间结果浮点数的整数,判断所述第二数据格式中整数的最高位数和次高位数是否相同;
若否,则控制所述数据格式化模块按照所述第一数据格式中的整数位数,从所述第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数;并按照所述中间结果浮点数的整数的移位个数,调整所述中间结果浮点数的指数,以得到目标浮点数的指数;输出所述目标浮点数作为运算结果;
若是,则判断所述中间结果浮点数的整数的移位个数是否小于阈值;
若是,则返回执行控制所述数据格式化模块向左移位所述中间结果浮点数的整数的步骤;
若否,则控制所述数据格式化模块按照所述第一数据格式中的整数位数,从所述第二数据格式中整数的最高位数开始选取对应位数的数值,作为目标浮点数的整数;并按照所述中间结果浮点数的整数的移位个数,调整所述中间结果浮点数的指数,以得到目标浮点数的指数;输出所述目标浮点数作为运算结果。
10.根据权利要求9所述的二进制浮点数乘法运算电路控制方法,其特征在于,所述第一浮点数和所述第二浮点数的实际值为:N/2X;其中,N为对应浮点数的整数,所述对应浮点数的整数包括符号;X为对应浮点数的指数。
CN202111011713.4A 2021-08-31 2021-08-31 二进制浮点数乘法运算电路及其控制方法、计算装置 Active CN113703717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111011713.4A CN113703717B (zh) 2021-08-31 2021-08-31 二进制浮点数乘法运算电路及其控制方法、计算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111011713.4A CN113703717B (zh) 2021-08-31 2021-08-31 二进制浮点数乘法运算电路及其控制方法、计算装置

Publications (2)

Publication Number Publication Date
CN113703717A CN113703717A (zh) 2021-11-26
CN113703717B true CN113703717B (zh) 2024-01-26

Family

ID=78657938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111011713.4A Active CN113703717B (zh) 2021-08-31 2021-08-31 二进制浮点数乘法运算电路及其控制方法、计算装置

Country Status (1)

Country Link
CN (1) CN113703717B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317526A (en) * 1991-09-25 1994-05-31 Matsushita Electric Industrial Co., Ltd. Format conversion method of floating point number and device employing the same
US6282554B1 (en) * 1998-04-30 2001-08-28 Intel Corporation Method and apparatus for floating point operations and format conversion operations
JP2005128907A (ja) * 2003-10-27 2005-05-19 Digital Electronics Corp 演算装置の制御方法、演算装置、並びに、そのプログラムおよび記録媒体
CN101770355A (zh) * 2009-12-30 2010-07-07 北京龙芯中科技术服务中心有限公司 兼容双精度和双单精度的浮点乘加器及其兼容处理方法
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN112835551A (zh) * 2021-03-09 2021-05-25 上海壁仞智能科技有限公司 用于处理单元的数据处理方法、电子设备和计算机可读存储介质
CN113138750A (zh) * 2020-01-20 2021-07-20 华为技术有限公司 算数逻辑单元、浮点数乘法计算的方法及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626807B2 (en) * 2009-01-08 2014-01-07 International Business Machines Corporation Reuse of rounder for fixed conversion of log instructions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317526A (en) * 1991-09-25 1994-05-31 Matsushita Electric Industrial Co., Ltd. Format conversion method of floating point number and device employing the same
US6282554B1 (en) * 1998-04-30 2001-08-28 Intel Corporation Method and apparatus for floating point operations and format conversion operations
JP2005128907A (ja) * 2003-10-27 2005-05-19 Digital Electronics Corp 演算装置の制御方法、演算装置、並びに、そのプログラムおよび記録媒体
CN101770355A (zh) * 2009-12-30 2010-07-07 北京龙芯中科技术服务中心有限公司 兼容双精度和双单精度的浮点乘加器及其兼容处理方法
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN113138750A (zh) * 2020-01-20 2021-07-20 华为技术有限公司 算数逻辑单元、浮点数乘法计算的方法及设备
CN112835551A (zh) * 2021-03-09 2021-05-25 上海壁仞智能科技有限公司 用于处理单元的数据处理方法、电子设备和计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种高效双精度浮点乘法器;夏炜;肖鹏;;计算机测量与控制(第04期);第1017-1020页 *

Also Published As

Publication number Publication date
CN113703717A (zh) 2021-11-26

Similar Documents

Publication Publication Date Title
US7725519B2 (en) Floating-point processor with selectable subprecision
CN103019647B (zh) 具有浮点精度保持功能的浮点累加/累减运算方法
EP3674883A1 (en) Multiplication circuit, system on chip, and electronic device
CN103959192A (zh) 用于估算超越函数的数学电路
RU2439667C1 (ru) Процессор повышенной достоверности функционирования
US9009209B2 (en) Processor, control method of processor, and computer readable storage medium storing processing program for division operation
GB1579100A (en) Digital arithmetic method and means
CN113672198B (zh) 二进制浮点数加法运算电路控制方法、电路及计算装置
CN113703717B (zh) 二进制浮点数乘法运算电路及其控制方法、计算装置
CN106997284B (zh) 实现浮点运算操作的方法和装置
CN114201140B (zh) 指数函数处理单元、方法和神经网络芯片
CN115268832A (zh) 浮点数取整的方法、装置以及电子设备
RU2653263C1 (ru) Арифметико-логическое устройство для умножения чисел по модулю
CN102789376B (zh) 浮点数加法电路及其实现方法
CN106528050B (zh) 尾随或前导数字预测器
Srinivas et al. Radix 2 division with over-redundant quotient selection
KR100331846B1 (ko) 실수 연산기
US10459689B2 (en) Calculation of a number of iterations
US9032009B2 (en) Multiplier circuit
US10564895B2 (en) I/O performance enhancement of solid-state data storage devices
GB1145661A (en) Electronic calculators
CN116909946B (zh) 一种访存方法、装置、电子设备及可读存储介质
CN116909755B (zh) 一种访存方法、处理器、电子设备及可读存储介质
US9335967B1 (en) Accurate floating-point calculation method and device
US20050160122A1 (en) Joint adaptive fixed-point representation and related arithmetic and processor thereof

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