一种浮点处理装置及方法_2

文档序号:8269712阅读:来源:国知局
浮点类型信息(单精度操作或双精度操作)和操作类型信息(浮点加、浮点乘......),浮点寄存器索引信息指示浮点操作的数据来源和结果的存放信息。
[0039]浮点寄存器组20,接收译码单元10输出的浮点寄存器索引信息,输出原始浮点操作数及其非规格化数指示信息。浮点寄存器组20包含N个M比特的浮点寄存器,其中每个寄存器包含P比特的数据域和Q比特的非规格化数指示域。一实施例参见图2,其包含16个67比特的浮点寄存器。67比特的浮点寄存器分为64比特的数据域和3比特的非规格化数指示域。64比特的数据域可存储一个双精度浮点数或两个单精度浮点数。3比特的非规格化数指示域分别指示数据域的低32比特和高32比特是否为非规格化单精度浮点数,以及整体64比特的数据域是否为非规格化双精度浮点数。
[0040]操作数准备单元30接收浮点寄存器组20输出的原始浮点操作数及其非规格化数指示信息,根据本次浮点处理所要求的浮点数类型,对原始浮点操作数进行处理。一实施例参见图3,操作数准备单元30由多级多路选择器构成,同时包含一个I比特的控制寄存器,指示对非规格化原始浮点操作数的处理模式。第一级多路选择器301根据浮点处理所要求的浮点数类型,确定非规格化原始浮点操作数转换可供选择的对象,分别是与原始操作数同符号的零和同符号的绝对值最小的规格化数。第一级多路选择器301的输出作为第二级多路选择器302的输入,第二级多路选择器302根据控制寄存器确定非规格浮点数的转换值。第三级多路选择器303根据非规格化数指示信息,决定是否需要用转换值替换原始浮点操作数成为目标浮点操作数。若指示信息表征原始浮点操作数为非规格化数,则目标浮点操作数为第二级多路选择器302选择出的规格化数,若原始浮点操作数为规格化数,则目标浮点操作数为原始浮点操作数。
[0041]浮点处理单元40,接收译码单元10的指令操作码与操作数准备单元30输出的目标浮点操作数,依据指令操作码指示,产生运算结果。
[0042]结果回写单元50,接收浮点处理单元40的运算结果,对结果进行非规格化数检测,生成浮点结果的非规格化数指示信息,将运算结果及其非规格化数信息回写至浮点寄存器组20中。一实施例参见图4。结果回写单元50主要由浮点结果非规格化数信息生成电路和回写模块503构成。单精度浮点非规格化数检测电路501,分别对输入的双精度浮点结果的高32比特和低32比特数据进行检测;双精度浮点非规格化数检测电路502对输入浮点结果的整个64比特数据进行检测,共生成3比特的非规格化数信息。回写模块503负责将浮点结果及其非规格化数信息正确写回浮点寄存器组20。
[0043]实施例2
[0044]参照图1?图4,一种浮点处理方法,浮点寄存器组包含N个M比特的浮点寄存器,其中,每个寄存器包含P比特的数据域和Q比特的非规格化数指示域,数据域用于存储浮点数据,非规格化数指示域表征该浮点数是否为非规格化数,N、M、P、Q均为整数;所述浮点处理方法包括如下步骤:
[0045]步骤一:接收输入的指令码,译码得到操作码和浮点寄存器组的索引信息;
[0046]步骤二:根据译码单元输入的索引信息,输出P比特原始浮点数及其Q比特非规格化数指示信息;
[0047]步骤三:接收原始浮点操作数及其非规格化数指示信息,若指示信息表征原始浮点操作数为非规格化数,则将原始操作数转换为规格化数,若原始浮点操作数为规格化数,则保持不变,处理之后的操作数为目标浮点操作数。
[0048]步骤四:接收步骤一的操作指示符与步骤三的目标浮点操作数,产生浮点处理结果;
[0049]步骤五:对浮点操作的结果进行非规格化数检测,生成浮点结果的非规格化指示信息,并更新所述浮点寄存器组及其相应的非规格化指示域。
[0050]进一步,所述步骤四中,包含浮点运算或者浮点内存访问中的若干或者全部操作。[0051 ] 本实施例的浮点处理方法,步骤如下:
[0052]步骤一:译码单元10接收输入的指令码,译码得到操作码和浮点寄存器组20的索引信息;
[0053]步骤二:浮点寄存器组20根据译码单元10输入的索引信息,输出原始浮点数及其非规格化数指示信息;
[0054]步骤三:操作数准备单元30接收原始浮点操作数及其非规格化数指示信息,若指示信息表征原始浮点操作数为非规格化数,则根据控制位的设置,将原始非规格化操作数转换为同符号的零或同符号的绝对值最小的规格化数;若原始浮点操作数为规格化数,则保持不变。处理之后的操作数为目标浮点操作数;
[0055]步骤四:浮点处理单元40接收译码单元10的操作指示符与操作数准备单元30的目标浮点操作数,执行浮点运算或者浮点内存访问操作,产生浮点处理结果;
[0056]步骤五:结果回写单元50对浮点操作的结果进行非规格化数检测,生成浮点结果的非规格化数指示信息,并更新所述浮点寄存器组20的数据域及其相应的非规格化指示域。
【主权项】
1.一种浮点处理装置,其特征在于:所述处理装置包括: 译码单元,用于解析输入的指令码,产生相应的操作码和浮点寄存器索引信息,其中,操作码指示具体的浮点操作,浮点寄存器索引信息指示浮点操作的数据来源和结果的存放信息; 浮点寄存器组,包含N个M比特的浮点寄存器,其中,每个寄存器包含P比特的数据域和Q比特的非规格化数指示域,数据域用于存储浮点数据,非规格化数指示域表征该浮点数是否为非规格化数;浮点寄存器组接收译码单元的浮点寄存器索引信息,输出原始浮点操作数,N、M、P、Q均为整数; 操作数准备单元,用于接收原始浮点操作数及其非规格化数指示信息,若指示信息表征原始浮点操作数为非规格化数,则将原始操作数转换为规格化数,若原始浮点操作数为规格化数,则保持不变,处理之后的操作数为目标浮点操作数; 浮点处理单元,用于接收译码单元的指令操作码与操作数准备单元的目标浮点操作数,依据指令操作码指示,产生运算结果; 结果回写单元,用于接收浮点处理单元输出的运算结果,进行格式检查,产生非规格化数指示信息,用于指示该运算结果是否为非规格化数,更新所述浮点寄存器组及其相应的非规格化指示域。
2.如权利要求1所述的一种浮点处理装置,其特征在于:所述浮点处理单元包含执行浮点运算及浮点内存访问中的操作的运算部件。
3.一种如权利要求1所述的浮点处理装置实现的浮点处理方法,其特征在于:浮点寄存器组包含N个M比特的浮点寄存器,其中,每个寄存器包含P比特的数据域和Q比特的非规格化数指示域,数据域用于存储浮点数据,非规格化数指示域表征该浮点数是否为非规格化数,N、M、P、Q均为整数;所述浮点处理方法包括如下步骤: 步骤一:接收输入的指令码,译码得到操作码和浮点寄存器组的索引信息; 步骤二:根据译码单元输入的索引信息,输出P比特原始浮点数及其Q比特非规格化数指示信息; 步骤三:接收原始浮点操作数及其非规格化数指示信息,若指示信息表征原始浮点操作数为非规格化数,则将原始操作数转换为规格化数,若原始浮点操作数为规格化数,则保持不变,处理之后的操作数为目标浮点操作数。 步骤四:接收步骤一的操作指示符与步骤三的目标浮点操作数,产生浮点处理结果; 步骤五:对浮点操作的结果进行非规格化数检测,生成浮点结果的非规格化指示信息,并更新所述浮点寄存器组及其相应的非规格化指示域。
4.如权利要求3所述的浮点处理方法,其特征在于:所述步骤四中,包含浮点运算或者浮点内存访问中的若干或者全部操作。
【专利摘要】一种浮点处理装置,包括:译码单元,用于解析输入的指令码,产生相应的操作码和浮点寄存器索引信息;浮点寄存器组,包含N个M比特的浮点寄存器,每个寄存器包含P比特的数据域和Q比特的非规格化数指示域,数据域用于存储浮点数据,非规格化数指示域表征该浮点数是否为非规格化数;浮点寄存器组接收译码单元的浮点寄存器索引信息,输出原始浮点操作数,N、M、P、Q均为整数;操作数准备单元,浮点处理单元,以及结果回写单元,用于处理原始浮点操作数,执行浮点操作,并对结果进行格式检查,产生非规格化数指示信息,更新浮点寄存器组及其相应的非规格化指示域。本发明对非规格化浮点数处理时有效降低硬件资源消耗、提升处理性能。
【IPC分类】G06F7-57, G06F9-30
【公开号】CN104598196
【申请号】CN201410848567
【发明人】郭宇波, 陈林飞, 刘继让
【申请人】杭州中天微系统有限公司
【公开日】2015年5月6日
【申请日】2014年12月30日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1