SJ Z 9071-1987 微处理机系统的二进制浮点运算.pdf

上传人:王申宇 文档编号:182173 上传时间:2019-07-14 格式:PDF 页数:13 大小:600.78KB
下载 相关 举报
SJ Z 9071-1987 微处理机系统的二进制浮点运算.pdf_第1页
第1页 / 共13页
SJ Z 9071-1987 微处理机系统的二进制浮点运算.pdf_第2页
第2页 / 共13页
SJ Z 9071-1987 微处理机系统的二进制浮点运算.pdf_第3页
第3页 / 共13页
SJ Z 9071-1987 微处理机系统的二进制浮点运算.pdf_第4页
第4页 / 共13页
SJ Z 9071-1987 微处理机系统的二进制浮点运算.pdf_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、中华人民共和国电子工业推荐性部标准处理微机系统的二进制浮点运Blnary floatlng polnt orlthmetlc for mlcroprocessor systems 1范本标准道用于微处理机系统中使用的二选制浮点迈开。本标准规定z。.浮点数格式,b. 加、减、乘、除、开平方、余数以及比较的结果,飞整致与浮点数之间的转换,d. 不同浮点格式之间的转换,e. 基本格式见4.1)浮点数与十选制数串之间f. 浮点异常及其处理,包括非数(NaNs)的处理。本标准不规定E。.数表示法,b. 符号的解释和非数(NaNs)的小数字段,h 二进制十进制与扩充格式之间的转换,d. 十进制数串的格式。

2、2 自的SJ/Z 907 87 IEC 559 1982 本标准的目的是为新系统完成二选制捍点运算规定几种方住。其宗旨在于,无论是用纯软件、纯硬件,或是软硬件结合的方法都能实现符合本标准的浑点系统。实际上,对是否符合本标准,系统程序员或系统使用者可以知道。不能把要求软件支持硬件部分才能符合本标准说成与这些软件无关.3 术语3. 1 要求的等级本标准中的助动词含意如下z一一应该(shal1)指符合标准的要求是强制性的。最好(shoald)指极力推荐符合要求,但不是强制性的。3.2 定义3.2, 1 使用者浮点系统的使用者是指按本标准规定的程序设计环境存取和控制操作的任何人员,._-, 中华人民共

3、和自电子工业部198711一10批 1 SJ/Z 9071 87 ._ 硬件或程序。对这些人员,硬件和程序本标准不作规寇。3.2.2 二选制浮点数由符号、带符号的阶码和尾数三部分表征的二选制位串。如果它的数值存在,则是它的尾数与2的阶码次事的带符号的乘积。在本标准中,位串有时可与它代表的数一样。3.2.3 阶码二选制浮点数的部分,在确寇浮点数所代表的数值时,它通常表示2的事次。肘,阶码也称作带符号的阶码或无偏阶码。3.2.4 有偏阶码阶码与常数偏值之和。所选常数使有偏阶码不出现负值。3.2.5尾数二选制浑字段所组成。3.2.6 小数部分,是由二选制小数点左边显式或隐式首位和小数点右边的小位于隐

4、式小数点右边的尾数部分。3.2.7 标准零阶码是格式的最小值,而且尾数为零。标准零可以有正号或负号。仅扩充格式有非规格化零见3.2.的。3.2.8 反规格化数数的阶码是格式的最小值,而且尾数的显式或隐式首位等于零,并且该数不是标准零。二遏制浮点数化成反规格化数指的是尾数右移,阶码相应增加,直到变成反规格化数。3.2.9 非规格化数仅扩充格式具有此种类型的数。数的阶码大于格式的最小值,而且显式首位为零。如果尾数为零,则这个数就是非规格化零。3.210 规格化如果数不是零,所谓数的规格化是指尾数左移,阶码相应减少,直到尾数的首位等于1为11:;阶码范围可以看作仿佛是无限制的。如果尾数为零,这个数就

5、是标准零。规格化后的数其符号不变。3.2.11非数(NaNs) 用浮点格式编码的符号。见第4章和7.2。3.2. 12 状态特征位可取置臣和清位两种状态的变量。程序可以清除或者复写一个特征位。当置位时,状态特征位可以含有使用者得不到的附加的系统相关信息。其次,本标准的操作可以置下列特征位z不精确的结呆、下溢、上握、被零除以及无效运算,3.2.13 目的地 2 SJjl 9071 87 每一个元或二元运算都把运算结果送到某个目的地,这-目的地由使用者指定或者由系统内部提供例如各运算步骤的子表达式或自变量的中间结果)0些语言不需使用者的控制,在目的地存放中间运算结果,本标准仍然按照目的地格式以及作

6、数的数值定义运算结果。3.2. 14 方式方式是-个程序可以设置,读出,保存和恢复的变量,以用来控制顺序运算操作的执行。缺省方式是只要在程序或程序说明中无明显的矛盾语句,程序就可以假定它是有效的那种方式。本标准包括以下方式s。.影射方式/仿射方式,它涉及到无穷大的解释见7.1)J b. 舍入方向方式,它涉及到舍人误差的方向见5.2)。在某些实施方案中,还有如下方式zC. 舍入精度方式,降低中间结果的精度。在些特殊实施方案中,有以下可选择的方式zd. 告警方式/规格化方式,处理下溢值,e. 禁止自陷方式/允许自陷方式,处理异常情况。4 格式本标准意义了四种浮点格式,分为基本格式和扩充格式两类。每

7、-类按字长又分为单精度和双精度两种。4.1 基本格式4.1.1 单精度二选制浮点数x的32位格式按图1所示划分,x的组成宇段是I1位符号s,8位有偏阶码e以及尾数(j.f)。尾数由-个隐含的整数部分j和23位小数f组成。x值V取值如下EO. 如果e= 255,而且f斗0,则v=NaN。b. 如果e= 255,而且f= 0, !i!J v = (- 1) s C. 如来。巳+1024的范围内。X直7取值如下z。.如果e=M,而且fo,则v=NaN。b. 如果e=M,而且f= 0,则=(- 1 )5 C. 如果m+ 16384范围中,而小数至少应有63位。4.2.3 阶码范围本标准并不要求实施方案

8、规定(并且使用者最好不假定单精度扩充的范围比双精度扩充的大。4.3 格式组合符合本际准的所有实施方案都应支持单精度。实施方案最好要支持与巳得到支持的基本格式相当的扩充格式,除此之外不需要支持任何其它扩充格式。注z只有当向上兼容和速度是重点时,支持双精度扩充的系统也最好要支持单精度扩充, 4 SJ/Z 9071 87 5 舍人除了二选制-十选制转换外,在第6和第8章中所规定的全部运算的完成,似乎达到无限精度,因此要根据本市的规寇进行舍入。舍入的取数被认为是无限精确的,但如果有必要的话、修正该数使之洁合于目的地的格式,同时发出不精确的信号(见9.5)。5. 1 缺省舍入方式本标准的实施方案应提供最

9、接近的舍入,即在机会均等时舍入成偶数,作为缺省舍入方式。最接近的舍入的意思是其结果与无限精度的精确结果在最低有效位上至多相差二分之p舍入成偶数的意思是如果它们相差恰好是二分之,那么舍入后的结果的最末-位应为偶数。5.2 定向舍入方式实施方案应就全部运算向使用者提供可选的正向和负向舍入向+合人和向-舍入以及截断向。舍人。当向+舍入时,其结果是这一格式的值可能为+最接近于并且不小于无限精度的结果,但9.3的规定除外。类似地,当向-舍入时,其结果是这格式的惶可能为一最接近于并且不大于无限精度的结果,但9.3的规定除外。当向0舍人肘,其结果是这格式的值最接近于并且数值上不大于无限精度的结呆。合入方式可

10、能影响零之和的符号见7.3)。5.3 舍入精度-般指按目的地恪式的精度舍入结果。然而,某些硬件总是由单精度格式操作数给出双精度或扩充精度格式的结果。对于这类系统,即使结果存放在具有较宽的阶码范围见注的双精度或扩充格式中,使用者(可能是高级语言编译程序应能够规定单精度的结果舍入。与此类似,由双精度格式操作数给出扩充目的地格式结果的系统应允许使用者规定双精度的合入。注意z为了满足5.1中的规定,结果合人误差不允许大于10注2含入精度控制使目的地是双精度或扩充1各式的系统模仿具有单精度和双精度目的地的系统.然而,利用精度控制使双精度(或扩充的)操作数通过一次合入而产生单精度格式的结果,这一过程不是标

11、准的过程.8 与本标准致的所有实施方案都应能进行加、械、乘、除、开平方、余数,浮点格式转换,j字点与整数间的转换,二进制一一十选制转换以及比较。当所有的操作数是规格化数时,在按照第5章中的规寇舍入前,应按无限精度的形式完成运算。第8章规定了在至少有个操作数不是规格化数时的运算结果。第7章增加了关于带符号的零,和NaN的规定,第9章列举了各种异常。6. 1 算术运算实施方案对任何两个格式相同的操作数和所支持的每一格式提供加、减、乘、除和余数,实施方案最好还能选行不同格式操作数的运算。目的地格式(与5.3的舍入精皮无关应至少与操作数格式一样宽。所有结果应按第5章的规定舍入。.5. SJ/Z 907

12、1 87 当yO时,用下面的关系式定义余数r=xREMy这与合入方式无关zr= x-y.n 式中n是最接近于x/y的整数p只要|何一矿yl=h,n就为余数是精确的。若未下溢,应使结果规格化。6.2 开平方。注意z这样定义的运应对所有支持的格供开平方运算,并为所有不小于O的规格化操作数定义开平方-0=-0。目的地格式应至少与操作数格式一样宽,运算结果应按第5章的规定舍入。6.3 浮点格式转换在所有支持的格式之间应能进行浮点数的转换。如果转换成较低的精度时,其结果应按、第5章的规定舍人。如果转换成较高的精度时,虽然可能出现9.1.2中所说明的无效结果异常,但转换应是精确的。6.4 i孚点与整数间的

13、转换对所有支持的格式应能把浮点数舍人成有相同浮点格式的整数。应按第5章的规定,用熟知的最接近舍入方式进行舍入。如果未舍入的操作数和舍人的结果之差恰好等于1/2,被舍人的结果是偶数。在所有支持的浮点格式和所有支持的整数格式之间应能进行转换,应用第5章规定的舍人转换到整数。若不出现9.1.1所说明的异常,?孚点整数和整数格式间的转换应是精确的。6.5 二选制十进制转换对于表1规定的所有数,应能在至少种格式的十进制数串和所有被支持的基本格式的二选制浮点数之间选行转换。表1和表2中的整数附和N是十进制数串的值:tM.10士N中的参数。输入时,为尽量战小N,应在M(不超过衷1的限度)的末尾增加或删除零。

14、当目的地是十进制数串时,为了舍入,最好按格式规定来确定该数串的最低有效位。对于不超过表2规定范围的操作数,应按第5京的规定正确的舍入转换结果。另外,只要不发生阶码上溢或下溢,假使按第5章的规定舍入会产生误差,那么转换后的误差不应超过十进制数串最低有效位数字的0.47。变换应是单调的。换言之,递增的二遏制浮点数的值转换成十进制数串时,其值不应减小z而递增的十遏制数串的值转换成二遏制浮点数时,其值亦不应减小。当最接近舍入时,只要十选制数白达到表1规定的最大精度,即单精度9位数字和双精度17位数字(见jfi),一个数从二进制变换成十进制再变回到二选制,其值应保持最初的值。如果十遏制转换成二选制有上溢

15、或下谧罗则按第9章的规定处理。在二遏制转换成十选制的过程中遇到的上撞或下溢,NaNs和无穷大最好通过适当的字符串来告诉使用者。注:误差界限反映了为转换规定的性质,这些界限依赖于格式(单精度或双精度)和所包含的十遏制数字的数目;至于前面提到的o.47仅是一个最坏情况界限 6 SJ/Z 9071 87 一表1十进制转换范围- 一十进制转换成二进制二进制转换成十进制格式最大M最大N最大M最大N单精度109 - 1 99 109- 1 54 双精度1019一l999 1 017一1341 一表2正确舍入的十进制转换范围一一一一一.c. .一十进制转换的二进制二进制转换成十进制格式最大M最大N最大M最大

16、N单精度109一113 109一113 双精度101由一127 1017一127 A -_-一一一一一咀11_=C_一二卫巳J工-;_ -二一一千二-一一一一一6.S 比较在所有被支持的格式中都应能比较评点数,其中包括不同格式的操作数的比较。比较是精确的,不会出现上溢或下溢。四种互不相容的关系是z小于、等于、大于、无序。当至少个操作数是NaN或用影射方式表示的与除外的任何数比较时,就会出现最后一种情况。每个NaN应与包括其本身在内的每个序列进行无序比较。比较应忽略用影射方式表示的无穷大的符号即+=-),并且忽略零的符号即+0 = -0)。6.6.1 结果表示法当借助于条件代码报告比较结果时,此

17、结果是6.6所列四种关系之的编码。6.6.2 谓词当用肯定或否定谓词报告比较结果时,下列推断应确定相应的响应E。.关系小于肯定谓词,无序。b. 关系等于肯定谓词=、二岁,而否定谓词、二kd芋,而否定谓词=、。除了上面规定的晌应之外,当关系是无序的两个值通过或它们的否寇i冒词选行比较时,如9.1.1的h项规窟,应出现无效运算异常见9.1)。, 7 $J/Z 9071 87 一7 无穷大、NaNs和带符号的零7.1 无穷大运无穷大运算应作为任意大操作数的实数运算的极限情形,其前提是这一极限存在。应有两种可供使用者选择的方式即仿射和影射方式,影射方式是快省方式支持无穷大运算。在仿射方式中,-每一个有

18、限数)、或它们的否定选行的比较。在无自陷条件下无效运算异常出现时,得到的二选制浮点结果应或非设置自陷的NaN。9.1.2 无效结果在任何运算中,假使为单精度或双精度格式指定的结果是非规格化的,而不是反规格化的,那么应发出无效运算信号见注。当无效结果异常与上溢或不精确或设置自陷的下溢异常同时发生时,无效结果应取最先出现的z但非设置自陷的下溢不能是无效结果,因为它旧是反规格化的。注s这只能在下述运算中发生sa.当非规格化扩充格式转换为2王木格式Bf.b.除用规格化方式外,当J.V.规格化单精度操作数的运算具有双精度目的地时.c.除用规格化方式外,当用乘法或除法增大反规格化数,并旦目的地格式是单精度

19、或双精度格式时.9.2 被零除如果除数是标准零而被除数是有限非零数,则应发出被零除异常信号。缺省结果应是正确的带符号的见7.3)。9.3 上溢如果被舍入的结果是有限数,而且不是无效结果,但阶码太太,超出了目标浮点格式表示范围,那么应发出上溢信号。除非是向+或-的舍入方式和上溢没有自陷。在后 10 SJ/Z 9071 87 种情况下,上溢按下述方式舍人z。.向-舍入使规格化正的上溢成为格式的最大数,而使非规格化正的上溢成为格式的最大的阶码,尾数不变。b. 向+舍入使规格化负的上溢成为格式的最负的数,而使非规格化负的上溢成为格式的最大数的阶码,尾数不变。在这两种情况中,仅当护充格式转换成基本格式时

20、,才可能出现无效结果。无自陷的所有其它上溢均应产生带有相应符号的。如果允许上溢自陷时,转换发生的上溢应将结果以被支持的最宽格式交给自程序,而不是按目的地精度舍入。除此以外,当十选制转换成二选制的结果超出格式规定范围时,应给出NaN。所有其它设置自陷的上溢应将具有正确舍人尾数并修正阶码的结果交给自陷处理程序。修正阶码,在单精度格式中,是正确的阶码减去有偏校正惶192,在双精度格式中,是减去有偏校正值1536,而在扩充格式中,是减去有偏校正惶3.2n-z,其中n是阶码字段的位数。注2选择有偏校正使上溢或下溢阶码尽可能转换到阶码范围的中部,以便自陷处理程序能为后面重现正确的结果提供适当的信息.9.4

21、 下溢-且出现下述情况时,便发生F溢$O. 结果不是坏准零,至于检查时机是在舍人前还是舍入后,由实施者决定(见注刀,但去现阶码太小,若不选步选行反规格化,就不能用目的地格式表示,b. 扩充格式的积或商既不是操作数又不是标准零至于检查时机是在舍入前还是舍入后,由实施者决定),送出去后会造成与标准零分辨不情。(注意z规格化操作数不能去生此种情况。当无自陷的下溢发生时,尚未舍入结果应首先化成反规格化数,然后舍人,再送往目的地,此外,除了向+或一的舍入方式外,应置F溢标志位,以便去出该事件的信号。如呆允许下溢自陷,送往自陷处理程序的结果应与9.3对上溢的规定一样,只是有偏校正值是加而不是减。注g含入前

22、检查其数的意思是检查它是否已向零舍入-9.5 不精确异常在没有无效运算异常情况下,如果运算的舍入结果不精确或发生无自陷溢出,那么应支出不精确信号。舍入或溢出结呆应送往目的地。10 自陷使用者最好能够对五种异常的任何一种请求自陷和请求禁止自陷。如果自陷被禁止,那么相应的异常按第9进规定的缺省方式选行处理。如果针对某个允评自陷的异常发出了信号,则京生异常情况的程序应暂停执行,启动使用者规定的处理例行程序,并应将结果如果第9章中规寇了送给自陷地3.程序。110 SJjZ 9071-87 一10.1 自陷处理程序对于被支持的每种自|皂,使用者应能够规寇一种具有子程序能力的自陷纯理程序,这个程序能送回个

23、值去代替异常运算的结果;这结果若不经自陷处理程序纯理,就是未寇义的。类似地安设置自陷的异常栋志若不由自陷处理程序置位或复位也是未宠义的。当系统自陷肘,自陷纯理程序最好能. 这运算发生的异常类型Fb. 所选行的运算种类,C. 目的地格式,2 d. 在上溢、-1溢、不精确和无效的结果中,含有可能不过于目的地格式信息的已正确舍人的结呆,以及e. 在无效操作数和被零除中,操作数的筐。 12 SJ/9071 87 附录A推荐的功能和谓词参考件以下推荐的功能和i自词有助于不同系统也许完成运算的方式差异很大的程序移植。从种属上来描述它们,即操作数和结果类型是操作数本身固有的。要求显式类型的语言有相应的功能和

24、归词。.copysign (x, y)把y的符号给x。于是有abs(x) = copysign(元,1.0)。b. 一工是具有相反符号的x。C. sca1b (x, N)给出x与2N的乘积对整数N),这是把N加歪扣的阶码上,然后对异常条件选行检验。d. 10gb (x)培出的无偏阶码(x的格式中的带符号的整数),JJ:!:外10gb(0)是一10gb (是+,10gb(NaN)是NaN。除,用告警方式或非规格化方式使x反规格化外,虫叮为正且有限时,1 y,只有当x.v时是TRUE。与xy不同,它表示的意思是NOT(x=吵,并且绝不会是无效运贵。i. unordered (x,川,如果x对y是无序的,则给出值TRUE,否则给出FALSE;这绝不会是无效运一一一币1 13

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 行业标准 > SJ电子行业

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1