本发明专利技术公开了一种具有浮点精度保持功能的浮点累加/累减运算方法,实施步骤如下:1)扩充对阶寄存器、扩展结果寄存器、二进制加法器的宽度;将运算分解为浮点加/减法运算以及浮点累加/累减指令;2)执行浮点加/减法运算,将运算结果存储在扩展结果寄存器中,将运算结果进行规格化与舍入操作后写入目的浮点寄存器;3)执行浮点累加/累减指令,每一次执行浮点累加/累减指令时,从浮点寄存器文件中读出第一个操作数、从扩展结果寄存器中读取第二个操作数,然后返回执行步骤2);在执行最后一个浮点累加/累减指令后,将目的浮点寄存器中的数据输出。本发明专利技术具有浮点运算精度高、硬件逻辑实现简单、应用范围广、使用灵活方便的优点。
【技术实现步骤摘要】
本专利技术涉及微处理器体系结构中支持浮点加/減法运算的功能部件,具体涉及ー种具有浮点精度保持功能的浮点累加/累減运算方法。
技术介绍
浮点数是ー种采用固定格式表示数据的方法。浮点数的表示如图1所示,具体包括符号位、浮点数指数字段以及浮点数尾数字段。符号位用于表示数据大于零或者小于零;浮点数指数字段用于确定数据小数点的位置;浮点数尾数字段用于表示数据的有效数字。但是,由于受到计算机字长等条件的约束,浮点数通常无法精确表示数字,随着浮点数运算过程,会逐渐损失数据的精度,降低数据的有效位数。当采用ニ进制表示时,设符号位为S, 浮点指数字段E,宽度为m,尾数字段W,宽度为n,则浮点数能够表示的最大数据为-2~m * W至+2~m * W,其中对阶操作过程中,需要的最大宽度为2~m位宽的寄存器。在运算过程中需要2~m+l位宽的运算器。扩展结果寄存器宽度为2~m+2位宽。浮点加减法是当代计算机信息处理领域中必须具备的ー种运算方法。根据浮点数据表示的特点,在进行浮点加/减运算前,需要首先将浮点数按照指数进行对齐(也称为对阶),对齐后的数据再进行加/减运算并将得到的尾数按照标准进行规格化处理。如图2所示,浮点数据的加/減法运算通常分为求阶差、对阶、尾数相加、規格化与舍入共四个步骤,其中rsl表示输入的第一个操作数、rs2表示输入的第二个操作数,res表示输出的计算结果。浮点在进行数据对齐过程中将按照两个操作数的指数进行对阶,一般对阶方式按照较大指数向较小指数对齐或者反之。但是,现有技术的浮点加減法在对阶过程中超过浮点数表示位宽的数据将被截断,在此过程中将产生截断误差。运算结束后的規格化和舍入处理将按照最終結果位宽进行截断,按照舍入方式对尾数进行处理,由此截断或者进位将进ー步产生截断和舍入误差。在连续多次浮点数据累加/累減运算过程中,由于每次浮点加減法都将产生截断和舍入误差,因此多次运算过程后,浮点数据的有效位数将进ー步减少。
技术实现思路
本专利技术要解决的技术问题是提供ー种浮点运算精度高、硬件逻辑实现简单、应用范围广、使用灵活方便的具有浮点精度保持功能的浮点累加/累減运算方法。为了解决上述技术问题,本专利技术采用的技术方案为 ー种具有浮点精度保持功能的浮点累加/累減运算方法,其实施步骤如下 I)预先扩充对阶寄存器的宽度使得浮点运算前的浮点数对阶操作不进行数据截断、扩展结果寄存器的宽度用于存储临时运算结果,同时扩充ニ进制加法器的宽度使其满足扩充宽度后的对阶寄存器和扩展结果寄存器;在进行运算时将浮点累加/累減运算分解为第一次浮点加/減法运算指令以及后续的浮点累加/累減指令,获取第一次浮点加/減法运算指令作为当前运算指令,获取当前运算指令的两个操作数并执行下一歩; 2)将当前运算指令的两个操作数执行浮点加/減法运算,将运算结果存储在扩展结果寄存器中,同时将运算结果进行规格化与舍入操作后写入目的浮点寄存器; 3)依次执行后续的浮点累加/累減指令,将后续的浮点累加/累減指令作为当前运算指令,从浮点寄存器文件中读出当前运算指令的第一个操作数、从扩展结果寄存器中读取上一次的计算结果作为当前运算指令的第二个操作数,然后返回执行步骤2);在执行最后一个浮点累加/累減指令后,将目的浮点寄存器中的数据作为最終运算结果输出。作为本专利技术上述技术方案的进ー步改进,所述步骤2)的详细步骤如下 2.1)求取当前运算指令两个操作数之间的阶差; 2. 2)根据所述阶差将两个操作数进行对阶操作,将对阶操作后的数据存储在所述扩充宽度后的对阶寄存器中; 2. 3)将两个操作数的浮点数尾数字段通过扩充位宽后的ニ进制加法器完成加法或者減法计算,将计算结果存储在扩充宽度后的扩展结果寄存器中,同时将运算结果进行规格化与舍入操作后写入目的浮点寄存器。本专利技术具有下述优点1、本专利技术通过扩展浮点运算部件和増加累加/累減指令,増加的浮点累加/累減指令仅从浮点寄存器文件中读取ー个操作数,另外ー个操作数使用浮点运算部件中的扩展结果寄存器的内容作为运算的源寄存器,并将运算结果写入这个扩展结果寄存器中,中间运算结果的位宽能够不进行数据的截断和舍入处理,一方面能够在浮点运算过程中保持浮点精度,在多次迭代的浮点运算过程中,能够提高浮点数据的有效位数,另ー方面省去了每一次規格化与舍入操作的步骤,还能够减少对寄存器的读取,提高浮点累加/累減运算的性能。2、本专利技术浮点处理部件对比常用浮点运算部件増加的复杂度有限,适合硬件实现,具有硬件逻辑实现简单的优点。3、本专利技术能够适用于主流科学计算类处理器浮点运算部件的设计,具有应用范围广、使用灵活方便的优点。附图说明图1为现有技术浮点数数据格式示意图。图2为现有技术浮点运算的一般流程示意图。图3为本专利技术实施例的实施流程示意图。图4为本专利技术实施例中应用的単精度浮点数据格式示意图。具体实施例方式如图3所示,本实施例具有浮点精度保持功能的浮点累加/累減运算方法的实施步骤如下 I)预先扩充对阶寄存器的宽度使得浮点运算前的浮点数对阶操作不进行数据截断、扩展结果寄存器的宽度用于存储临时运算结果,同时扩充ニ进制加法器的宽度使其满足扩充宽度后的对阶寄存器和扩展结果寄存器;在进行运算时将浮点累加/累減运算分解为第一次浮点加/減法运算指令以及后续的浮点累加/累減指令,获取第一次浮点加/減法运算指令作为当前运算指令,获取当前运算指令的两个操作数并执行下一歩; 2)将当前运算指令的两个操作数执行浮点加/減法运算,将运算结果存储在扩展结果寄存器中,同时将运算结果进行规格化与舍入操作后写入目的浮点寄存器; 3)依次执行后续的浮点累加/累減指令,将后续的浮点累加/累減指令作为当前运算指令,从浮点寄存器文件中读出当前运算指令的第一个操作数、从扩展结果寄存器中读取上一次的计算结果作为当前运算指令的第二个操作数,然后返回执行步骤2);在执行最后一个浮点累加/累減指令后,将目的浮点寄存器中的数据作为最終运算结果输出。累加/累減运算公式为 SLm = SLm+/-A(I) 公式(I)中,sum为求和或差的结果,A为运算数据矩阵,包含A。, A1, “大个元素。本 实施例在运算过程中,每次完成一个求和或差的运算,公式(I)右侧的操作数Sum从扩展结果寄存器中读取,公式(I)右侧的操作数A从浮点寄存器文件中读取,公式(I)左侧的运算结果Sum则写入扩展结果寄存器中。本实施例増加的浮点累加/累減指令仅从浮点寄存器文件中读取ー个操作数(rsl),另外ー个操作数(rs2)使用浮点运算部件中的扩展结果寄存器的内容作为运算的源寄存器,并将运算后的结果写入这个扩展结果寄存器中,步骤2)的位宽能够实现不进行数据的截断和舍入处理,一方面能够在浮点运算过程中保持浮点精度,在多次迭代的浮点运算过程中,能够提高浮点数据的有效位数,另ー方面省去了每一次規格化与舍入操作的步骤,还能够减少对寄存器的读写,提高浮点累加/累減运算的性能。本实施例中对浮点运算部件涉及如下改进 Al)扩充对阶寄存器的宽度,使得运算之前的浮点数对齐操作中数据不进行截断处理,不会产生浮点数尾数的截断误差。A2)扩充扩展结果寄存器的宽度,将运算的结果临时保存在扩展结果寄存器中,同时将最終的运算结果通过截断和舍入处理的结果写本文档来自技高网...
【技术保护点】
一种具有浮点精度保持功能的浮点累加/累减运算方法,其特征在于其实施步骤如下:1)预先扩充对阶寄存器的宽度使得浮点运算前的浮点数对阶操作不进行数据截断、扩展结果寄存器的宽度用于存储临时运算结果,同时扩充二进制加法器的宽度使其满足扩充宽度后的对阶寄存器和扩展结果寄存器;在进行运算时将浮点累加/累减运算分解为第一次浮点加/减法运算指令以及后续的浮点累加/累减指令,获取第一次浮点加/减法运算指令作为当前运算指令,获取当前运算指令的两个操作数并执行下一步;2)将当前运算指令的两个操作数执行浮点加/减法运算,将运算结果存储在扩展结果寄存器中,同时将运算结果进行规格化与舍入操作后写入目的浮点寄存器;3)依次执行后续的浮点累加/累减指令,将后续的浮点累加/累减指令作为当前运算指令,从浮点寄存器文件中读出当前运算指令的第一个操作数、从扩展结果寄存器中读取上一次的计算结果作为当前运算指令的第二个操作数,然后返回执行步骤2);在执行最后一个浮点累加/累减指令后,将目的浮点寄存器中的数据作为最终运算结果输出。
【技术特征摘要】
1.一种具有浮点精度保持功能的浮点累加/累减运算方法,其特征在于其实施步骤如下1)预先扩充对阶寄存器的宽度使得浮点运算前的浮点数对阶操作不进行数据截断、扩展结果寄存器的宽度用于存储临时运算结果,同时扩充二进制加法器的宽度使其满足扩充宽度后的对阶寄存器和扩展结果寄存器;在进行运算时将浮点累加/累减运算分解为第一次浮点加/减法运算指令以及后续的浮点累加/累减指令,获取第一次浮点加/减法运算指令作为当前运算指令,获取当前运算指令的两个操作数并执行下一步;2)将当前运算指令的两个操作数执行浮点加/减法运算,将运算结果存储在扩展结果寄存器中,同时将运算结果进行规格化与舍入操作后写入目的浮点寄存器;3)依次执行后续的浮点累加/累减指令,将后续的浮点累加/累减指令作为当前运算...
【专利技术属性】
技术研发人员:倪晓强,邰强强,窦强,王永文,张承义,高军,孙彩霞,隋兵才,陈微,赵天磊,黄立波,王蕾,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。