基于Microblaze系统的数字化电能表校验仪浮点开方算法的实现方法

文档序号:9371895阅读:283来源:国知局
基于Microblaze系统的数字化电能表校验仪浮点开方算法的实现方法
【技术领域】
[0001] 本发明涉及一种计算机开方方法,特别是一种基于Microblaze系统的数字化电 能表校验仪浮点开方算法的实现方法。
【背景技术】
[0002] Microblaze系统是Xilinx公司推出的采用哈佛结构的32位RISC软核处理器。 主要用于Xilinx公司的FPGA实现SOPC设计,该系统具有配置灵活,性能高等特点,因此得 到广泛应用。基于Microblaze的科学计算中,浮点计算由于精度高、数值表示范围宽等特 点,在各种数值运算过程中被广泛采用。开方算法是浮点运算中经常使用的算法,目前该算 法实现多采用牛顿迭代算法,具有计算时间长、计算时间不确定等缺点,在特定应用场合会 成为系统实现的瓶颈。
[0003] 浮点数即带小数点的数,在科学计算中常表示为十进制的科学计数形式:N = MX IOe,其中N表示浮点数值,M为尾数,且分为整数部分和小数部分,E为指数。二进制浮 点数表示形式类似于上述十进制浮点数表示方法,可表示为N = MX 2e。
[0004] 目前,嵌入式系统中,一些专用DSP器件集成了专用的浮点开方指令,但 Microblaze系统浮点计算多采用软件迭代算法,这中算法耗时长,降低了系统效率。

【发明内容】

[0005] 本发明的目的就是提供一种基于Microblaze系统的数字化电能表校验仪浮点开 方算法的实现方法,根据单精度浮点数的结构特点,采用查找表法快速处理单精度浮点开 方运算,与传统方法相比,实现简单、计算周期短,可大幅提高浮点开方计算速度。
[0006] 本发明的目的是通过这样的技术方案实现的,它包括有如下具体步骤:
[0007] 1)检查被开方数N1是否大于或等于零,若是则继续;若小于零则返回错误;
[0008] 2)提取被开方数N1的小数位M i,以吣作为地址,查询表格后得到^,
[0009] 3)若被开方数N1的指数位E i为偶数,则将E /2做为Ns结果的指数;
[0010] 4)若被开方数N1的指数位E1为奇数,则将(E 1-I)/2做为结果Ns的指数,同时将 计算所得结果乘以
[0011] 进一步,所述步骤2)中查询表格的建立方法具体为:
[0012] 2-1)单精度浮点数的存储宽度为32位,即4字节,其中第31位为符号位,第30~ 23位为指数位,第22~0位为小数位;
[0013] 2-2)设&为单精度浮点数,且N i彡0,于是有W1 =
[0014] 2-3)对吁
令 N t= M '2°,艮P 〇· ο 彡 NtS ι· 〇,SE i为偶数,则 A =V^Tx2v7-Ae1 为奇数,则 K =Wx^x2iW2;
[0015] 2-4)由于M1的取值范围为0~2 23-1,即有223种取值,将^做成表格,则这个表 格将占用内存223X 4字节的空间,即23MB,目前MicroBalze系统可以提供256MB以上的内 存,足以容下上述表格。
[0016] 进一步,若对双精度浮点数进行开方运算,可以将双精度浮点数转换为单精度浮 点数,将两个单精度浮点数开方运算结果再扩展为双精度浮点数即可。
[0017] 由于采用了上述技术方案,本发明具有如下的优点:
[0018] 通过采用查表的方式,有效的避免了传统迭代算法中的大量移位试商步骤,与传 统方法相比,实现更为简单,可大幅提高MicroBlaze系统浮点开方处理速度,提高了嵌入 式系统浮点开方的计算速率。
[0019] 本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并 且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可 以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和权利要 求书来实现和获得。
【附图说明】
[0020] 本发明的【附图说明】如下。
[0021 ] 图1为本发明的流程图。
【具体实施方式】
[0022] 下面结合附图和实施例对本发明作进一步说明。
[0023] 根据单精度浮点数的结构特点,采用查找表法快速处理单精度浮点开方运算。
[0024] 单精度浮点数存储宽度为32位,即4字节,其中第31位为符号位,第30~23位 为指数位,第22~0位为小数位。
[0025] 设有&为单精度浮点数,且N1S 0,则有M ,
[0026] 对弓
,令 Nt= M1X 2?,即 0· 0 彡 Nt< L 0,若 E i为偶数则况=2£l/2,若 E1 为奇数,则 /Vi = V?X。.
[0027] 由于M1取值范围为0~2 23_1,即有223种取值,我们可以把^做成一个表格,则 这个表格需要占用内存223 Χ4字节的空间,即32ΜΒ。由于目前MicroBalze系统可以提供 256ΜΒ以上的内存,足以容下上述表格。
[0028] 因此对于任意单精度浮点除法,可以采用如下流程实现:
[0029] 检查被开方数是否大于或等于零,如果小于零则返回错误。
[0030] 提取被开方数N1的小数位M i,以M1作为地址查询表格得到^Γ。
[0031] 若被开方数N1的指数位E i为偶数,则将E 72做为Ns结果的指数。
[0032] 若被开方数N1的指数位E1为奇数,则将(E1-I)A做为结果队的指数,同时将计算 所得结果乘以為。
[0033] 对于双精度浮点数开方运算,可以将双精度浮点数转换为单精度浮点数,将两个 单精度浮点数开方运算结果再扩展为双精度浮点数即可。
[0034] 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较 佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技 术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明 的权利要求范围当中。
【主权项】
1. 一种基于Microblaze系统的数字化电能表校验仪浮点开方算法的实现方法,其特 征在于,具体步骤如下: 1) 检查被开方数K是否大于或等于零,若是则继续;若小于零则返回错误; 2) 提取被开方数&的小数位Mi,以吣作为地址,查询表格后得到# ; 3) 若被开方数&的指数位Ei为偶数,则将E力做为Ns结果的指数; 4) 若被开方数&的指数位£1为奇数,则将(E「l)/2做为结果队的指数,同时将计算 所得结果乘以2.如权利要求1所述的一种基于Microblaze系统的数字化电能表校验仪浮点开方算 法的实现方法,其特征在于,所述步骤2)中查询表格的建立方法具体为: 2-1)单精度浮点数的存储宽度为32位,即4字节,其中第31位为符号位,第30~23位为指数位,第22~0位为小数位; 2-2)设&为单精度浮点数,且N>0,于是有和=遍Vxft2-3)对于令队=]?'2°,即 0? 0 彡Nt< 1. 0,若E丨为偶数,则 < =2~2;若E!为奇数,则RAx2'1)/2; 2-4)由于吣的取值范围为0~2 23-1,即有223种取值,将做成表格,则这个表格将 占用内存223X4字节的空间,即23MB,目前MicroBalze系统可以提供256MB以上的内存, 足以容下上述表格。3.如权利要求1所述的一种基于Microblaze系统的数字化电能表校验仪浮点开方算 法的实现方法,其特征在于,若对双精度浮点数进行开方运算,可以将双精度浮点数转换为 单精度浮点数,将两个单精度浮点数开方运算结果再扩展为双精度浮点数即可。
【专利摘要】本发明公开了一种基于Microblaze系统的数字化电能表校验仪浮点开方算法的实现方法,基于查询表方法,通过构建0.0~1.0之间所有单精度浮点数的开方表,可以快速查询任意非负单精度实数的平方根。该浮点开方算法主要解决数字化电能表校验仪接入IEC?61850网络后,基于IEC?61850-9-2报文获得电流、电压瞬时整型采样值,还原成浮点数后,进行电能精准累积所需的浮点开方算法实现,该方法适用于嵌入式系统等没有专门开方指令的场合,与传统的方法相比,实现更为简单,计算周期缩短,并可大幅度提高浮点开方计算速度。
【IPC分类】G06F7/57
【公开号】CN105094745
【申请号】CN201510510831
【发明人】程瑛颖, 杜杰, 肖冀, 侯兴哲, 周孔均, 周峰, 杨华潇, 常仕亮
【申请人】国网重庆市电力公司电力科学研究院, 国家电网公司
【公开日】2015年11月25日
【申请日】2015年8月19日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1