浮点数取整的方法、装置以及电子设备与流程

文档序号:32009240发布日期:2022-11-02 15:45阅读:191来源:国知局
浮点数取整的方法、装置以及电子设备与流程

1.本技术涉及计算机技术领域,特别是涉及一种浮点数取整的方法、装置以及电子设备。


背景技术:

2.随着计算机技术的发展,计算机在运行时会涉及到对浮点数取整的操作指令。其中,对浮点数取整是指,将浮点数转化为一个整数值,并且该整数值是以浮点数形式表示的。例如,对十进制值为10.1的浮点数进行四舍五入的取整操作,得到的值为10.0。在计算机中,存在不少处理器指令涉及到对浮点数取整的操作。例如,在arm系列的cpu中涉及到浮点数取整操作的指令有vrint、vrinta、vrintm、vrintn、vrintp、vrintr、vrintx、vrintz等。
3.浮点数是由符号(sign)部分,指数(exponent)部分,有效数(significant)部分组成的数据。而在计算机中浮点数对应的二进制编码由3部分组成,分别是符号位(sign bit)s,阶码(biased-exponent)e以及尾数(mantissa)m,该三部分字段分别与浮点数符号部分,指数部分,有效数部分对应。其中,对于有效数部分,由于规格化的浮点数的有效数的小数点左侧总是1,所以在计算机存储中,仅将小数点右侧的二进制数存储在计算机中,而将小数点左侧的数值1隐藏。
4.一般来说,对浮点数取整方法是区分出尾数中的整数部分以及小数部分,并且需要确定出整数部分的最末位的位置,再根据舍入规则获取小数部分对应的舍入值,将尾数中的小数部分全部设置为0得到第一尾数,将舍入值与第一尾数的整数部分的最末位的位置上的值相加,再经过后处理得到浮点数的取整结果。
5.然而,在上述将舍入值与尾数中的整数部分的最末位的位置上的值相加的过程中,由于整数部分的最末位是不固定的,所以需要使用全加器来实现,而全加器一般占用硬件面积较大,且延时较长,影响性能。


技术实现要素:

6.有鉴于此,本技术实施例提供了一种浮点数取整的方法、装置以及电子设备。本技术的技术方案为当待取整处理的浮点数符合设定条件范围时,先确定区分出尾数中的整数部分以及小数部分对应的掩膜码。确定尾数中小数部分对应的舍入值,根据掩膜码以及舍入值将尾数中的小数部分的各个比特位上的值全更改为或置为该舍入值,以得到第一尾数;将舍入值与第一尾数进行相加,得到第一和值以及进位值,根据得到的第一和值以及进位值确定浮点数的取整结果。可以理解的,当将尾数的小数部分的各个比特位上的值全更改为或置为舍入值后得到第一尾数,此时将得到的第一尾数与舍入值相加,可以达到尾数中整数部分末位与舍入值相加的效果。因而,在通过硬件实现时,可以通过半加器来实现,半加器较全加器硬件面积较小,能够节省资源,加快计算速度,另外,该方法不需要确定整数部分的最末位位置,简化了计算流程。
7.第一方面,本技术实施例提供了一种浮点数取整的方法,应用于电子设备,包括:
8.获取待取整处理的浮点数;
9.当确定浮点数符合设定条件范围时,确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码;
10.确定尾数中的小数部分对应的舍入值;
11.根据掩膜码以及舍入值将尾数中的小数部分的各比特位上的值调整为舍入值,得到第一尾数;
12.对第一尾数与舍入值进行加和处理,以得到第一和值与进位值;
13.基于第一和值与进位值得到取整结果。
14.可以理解的,当确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码,然后确定小数部分对应的舍入值,根据掩膜码以及舍入值将尾数中的小数部分的各比特位上的值调整为舍入值,得到第一尾数;对第一尾数与舍入值进行加和处理,以得到第一和值与进位值;再基于第一和值与进位值得到取整结果。当第一尾数与舍入值进行相加,实际上是第一尾数的最末位与舍入值进行相加,而第一尾数中的其它位不需要额外和其它数值进行相加(加0意味着不需要加值),所以在使用级联的加法器实现第一尾数与舍入值(舍入值为0或1)相加的过程中,第0级加法器即第一尾数的末位值与舍入值相加使用的加法器,只需要两个输入端(其中一个输入端为第一尾数的末位值,另一个输入端为舍入值),可以用半加器实现,其他级加法器也仅需要两个输入端(第一个输入端为第一尾数的对应位的比特值,第二个输入端为来自前一级的输出进位值),所以可以采用半加器来实现,半加器较全加器硬件面积较小,能够节省资源,加快计算速度。而且该方法不需要确定整数部分的最末位位置,简化了计算流程。
15.在上述第一方面的一种可能的实现中,上述确定浮点数符合设定条件范围,包括:
16.当浮点数的阶码处于浮点数的偏移量以及第一数值范围内时,确定浮点数符合设定条件范围,其中第一数值为浮点数的偏移量与尾数的位宽的和。
17.可以理解的,浮点数的阶码处于浮点数的偏移量以及第一数值范围内具体为当浮点数的阶码大于等于浮点数的偏移量并且小于第一数值。
18.在上述第一方面的一种可能的实现中,上述确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码,包括:
19.根据浮点数的阶码产生掩膜码;
20.其中,掩膜码中值为1的比特位与浮点数的尾数中的整数部分所对应,掩膜码中值为0的比特位与浮点数的尾数中的小数部分所对应。
21.可以理解的,掩膜码中对应的比特位上的值为1代表着尾数上对应比特位的数据属于整数部分,掩膜码中对应的比特位上的值为0代表尾数上对应比特位的数据属于小数部分的,通过掩膜码确定尾数的整数部分以及小数部分合理方便。
22.在上述第一方面的一种可能的实现中,根据浮点数的阶码产生掩膜码,包括,
23.基于浮点数中尾数的位宽确定掩膜码的位宽,
24.并且,确定浮点数的阶码对应的指数值,根据指数值将掩膜码对应的高比特位置1,对应的低比特位置0。
25.可以理解的,通过浮点数的阶码确定掩膜码,易于操作。
26.在上述第一方面的一种可能的实现中,上述确定小数部分对应的舍入值,包括:根据浮点数的阶码、尾数以及舍入规则确定小数部分对应的舍入值。
27.在上述第一方面的一种可能的实现中,上述基于第一尾数与舍入值得到第一和值与进位值,包括,
28.将第一尾数以及舍入值相加得到第一和值与进位值。
29.在上述第一方面的一种可能的实现中,上述基于第一和值与进位值得到取整结果,包括,
30.当进位值为0时,将第一和值作为取整结果的尾数,将浮点数的符号位作为取整结果的符号位,将浮点数的阶码作为取整结果的阶码;
31.当进位值为1时,将第一和值作为取整结果的尾数,将浮点数的符号位作为取整结果的符号位,将浮点数的阶码加1后的值作为取整结果的阶码。
32.第二方面,本技术实施例提供了一种浮点数取整装置,包括,
33.数据处理单元,用于获取待取整处理的浮点数;
34.数据处理单元,用于确定浮点数符合设定条件范围;
35.掩膜码生成单元,用于确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码;
36.舍入单元,用于确定尾数中的小数部分对应的舍入值;
37.加和单元,用于根据掩膜码以及舍入值将尾数中的小数部分的各比特位上的值调整为舍入值,得到第一尾数,对第一尾数与舍入值进行加和处理,以得到第一和值与进位值;
38.结果生成单元,用于基于第一和值与进位值得到取整结果。
39.在上述第二方面的一种可能的实现中,上述用于确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码,包括,
40.基于浮点数的尾数的位宽确定掩膜码的位宽,并且,
41.确定浮点数的阶码对应的指数值,根据指数值将掩膜码对应的高比特位置1,对应的低比特位置0。。
42.在上述第二方面的一种可能的实现中,上述掩膜码生成单元为温度码生成电路。
43.可以理解的,通过温度码生成电路的结构简单,通过用温度码生成电路来生成掩膜码方便,有效。
44.在上述第二方面的一种可能的实现中,上述用于基于第一和值与进位值得到取整结果,包括,
45.当进位值为0时,将第一和值作为取整结果的尾数,将浮点数的符号位作为取整结果的符号位,将浮点数的阶码作为取整结果的阶码;
46.当进位值为1时,将第一和值作为取整结果的尾数,将浮点数的符号位作为取整结果的符号位,将浮点数的阶码加1后的值作为取整结果的阶码。
47.第三方面,本技术实施例提供了一种处理器,处理器用于上述第一方面以及第一方面的各种可能实现中的任意一种浮点数取整的方法,并且包括上述第二方面以及第二方面的各种可能实现中的任意一种浮点数取整装置。
48.第四方面,本技术实施例提供了一种电子设备,其特征在于,所述电子设备包括上
述第三方面的处理器。
附图说明
49.图1a根据本技术的一些实施例,示出了一种单精度浮点数在计算机中存储时符号位、阶码以及尾数对应比特位位置的示意图;
50.图1b根据本技术的一些实施例,示出了一种单精度浮点数(-1)0*1.01*2-3
对应的在计算机中的32位浮点格式存储示意图;
51.图2a根据本技术的一些实施例,示出了一种浮点数取整方法的应用场景;
52.图2b根据本技术的一些实施例,示出了一种单精度浮点数(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
在计算机中的32位浮点格式存储示意图;
53.图2c根据本技术的一些实施例,示出了一种单精度浮点数(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
的尾数中相应的整数部分与小数部分的示意图;
54.图2d根据本技术的一些实施例,示出了一种根据第一尾数得到第一和值以及进位值的过程示意图;
55.图3a根据本技术的一些实施例,示出了一种在舍入值为1的情况下,根据第一尾数得到第一和值以及进位值的过程示意图;
56.图3b根据本技术的一些实施例,示出了一种在舍入值为0的情况下,根据第一尾数得到第一和值以及进位值的过程示意图;
57.图3c根据本技术的一些实施例,示出了一种根据第一尾数得到进位值为1的过程示意图;
58.图4a根据本技术的一些实施例,示出了一种浮点数取整装置400;
59.图4b根据本技术的一些实施例,示出了一种温度码对应的真值表;
60.图4c根据本技术的一些实施例,示出了一种温度码对应的逻辑电路示意图;
61.图5根据本技术的一些实施例,示出了一种浮点数取整的方法的流程图;
62.图6根据本技术的一些实施例,示出了一种电子设备100的结构示意图。
具体实施方式
63.本技术的说明性实施例包括但不限于一种浮点数取整的方法、装置以及电子设备。
64.为使本技术的目的、技术方案和优点更加清楚,下面通过结合附图和实施方案,对本技术实施例的技术方案做进一步地详细描述。显然,所描述的实施例仅是本发明部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
65.为了更加清楚的说明本技术实施例的方案,下面对本技术实施例中涉及到的一些术语进行解释。
66.(一)浮点数在计算机中的存储
67.浮点数:是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。浮点数表达方式利用形式十进制科学计数法的方式来表达实数,该种表达方式的浮点数由三部分组成:符号部分,指数部分,有效数部分。
0000 0000。
82.图1b示出了单精度浮点数(-1)0*1.01*2-3
对应的在计算机中的32位浮点格式存储示意图。图中符号位s的二进制数值为图中第31位的0值,阶码e对应的8位二进制数的值为图中第30位到第23位的值,为01111100,尾数m对应的23位二进制数的值为图1b中第22位到第0位的值,为01000000000000000000000。根据ieee 754国际标准,可表示的最小的单精度规格化浮点数值为1*2-126
,最大的单精度规格化的浮点数值为(2-ε)*2
127
,其中ε表示无穷小。
83.可以理解的,在这种情况下,与计算机存储对应,公式1对应的浮点数v的表示形式可以写成如下形式:
84.v=(-1)s*(1.m)*2
e-bias
ꢀꢀ
(公式2)
85.其中,v表示浮点数,s为符号,对应符号位s的值;1.m为规格化的有效数,有效数(1.m)对应的十进制的数值范围是1~2-ε,其中ε表示无穷小;e表示阶码(bias-exponent)e的值,其中,公式2中bias为偏移量,单精度浮点数的偏移量为127,需要解释的,对于双精度来说,偏移量为1023。例如,上述浮点数(-1)0*1.01*2-3
,符号位s为一位二进制数0,即1’b0,阶码e为8位二进制数,8’b01111100,e对应的十进制值为124,e-127的值为-3,尾数m为23’b01000000000000000000000,则可以看出来与上述公式2相对应。
86.(2)非规格化浮点数
87.非规格化浮点数是指阶码e为8’b00000000,即阶码e各位的值为0。ieee 754标准规定,在这种情况下,指数e=1-偏移量(bias),公式1中有效数的范围为0≤f<1,即值f的形式为0.xxxxx。另外,非规格化浮点数是包括0的,所以在计算机存储中可以通过阶码e对应的8位二进制数全为0、尾数m对应的23位二进制数全为0表示。
88.(3)特殊浮点数
89.特殊浮点数是指阶码e为8’b11111111,即阶码e对应的8位二进制数全为1。
90.可以理解的,上述是对单精度浮点数的三种类型的阐述,对于双精度浮点数或者其他形式的浮点数的三种类型在此不再赘述。
91.(二)浮点数取整
92.浮点数的取整操作也就是根据操作的舍入要求将浮点数的舍入操作后的整数部分提取出来。将浮点数进行取整操作,即将浮点数转化为一个整数值,该整数值是以浮点数形式表示的。
93.(1)浮点数取整的简单介绍
94.需要解释的,由于浮点数的特点,本技术提出的浮点数取整方法是针对规格化浮点数。所以有效数为1.m,在计算机存储的字段中隐藏位为1。
95.可以理解的,如果浮点数表示的数据比较大,该浮点数所代表的数值就都是整数值,此时认为上溢(overflow),就无需特殊处理,浮点数取整的结果为原值;如果浮点数表示的数据比较小,小于1时,只需要按照舍入规则对数据进行舍入操作即可,最终的结果为0或是1,此时认为该浮点数是下溢(underflow)的。
96.在一些实施例中,可以通过阶码的范围进行判断,即当阶码值的范围为当e《偏移量时发生下溢,当e》(偏移量+尾数位宽-1)时,发生上溢,当阶码范围为,偏移量≤e≤(偏移量+尾数位宽-1)时,认为该浮点数未发生下溢也没有发生上溢。
97.例如,对于单精度浮点数来说,偏移量=127,尾数位宽23,根据公式2,如果浮点数表示的数据比较大,比如e》149时,e-127》22,即指数e》22。当e》22即e最小为23,假设对于1.m,m为23位,若将小数点往右移23位,则移位后的值必为一个整数,即e的二进制值大于8’b10010101,这个时候数据是上溢的,浮点数取整的结果为原值;如果浮点数表示的数据比较小,比如e《127时,e

127《0,即指数e《0,此时向右移负数位,相当于向左移,对于1.m,假若向左移1位,则得到的值小于1,此时只需要按照舍入规则对数据进行舍入操作即可得到最终的结果为0或是1,这个时候认为数据是下溢的,所以单精度浮点数的下溢范围为指数e《0,对应的阶码e《127,即e的二进制值小于8’b01111111,所以当127≤e≤149时,认为该浮点数未发生下溢也没有发生上溢。同理,对于双精度精度浮点数来说,双精度浮点数的下溢范围为指数e《0,对应的阶码e《1023,上溢范围e》1074,当1023≤e≤1074时,认为该浮点数未发生下溢也没有发生上溢。
98.所以,本技术提出的对浮点数的取整方法是针对未发生下溢也没有发生上溢的浮点数。在一些实施例中,可以通过浮点数的阶码判断浮点数是否符合前述条件。
99.为了更好的理解本方案,图2a示出了一种浮点数取整方法的应用场景。如图2a所示,电子设备100执行处理器指令vrint指令,vrint指令涉及到对浮点数的取整操作。
100.如背景技术中所述,在一些实施例中,针对符合前述的条件,即对未发生下溢也未发生上溢的浮点数的进行取整,可以通过下述方式,确定区分出尾数中的整数部分和小数部分的掩膜码,以及整数部分的最末位的位置的末位掩膜码,再根据舍入规则获取尾数中小数部分对应的舍入值,根据舍入值以及末位掩膜码将舍入值与尾数中的整数部分的最末位的位置上的值相加,再经过后处理得到浮点数的取整结果。
101.确定区分出尾数中的整数部分和小数部分的掩膜码,以及整数部分的最末位的位置的末位掩膜码的方式为:根据浮点数的阶码产生掩膜码,根据掩膜码可以区分出整数部分、小数部分以及整数部分的最末位的位置,其中掩膜码的位宽与尾数位宽相同,高(阶码对应的指数值)位为1,剩余位为0,掩膜码中对应的比特位上的值为1代表着尾数上对应比特位的数据属于整数部分,掩膜码中对应的比特位上的值为0代表尾数上对应比特位的数据属于小数部分。通过将掩膜码,与对掩膜码各位取反后并左移一位的值相位与,得到末位掩膜码,该末位掩膜码可以确定出整数部分的最末位位置。例如,对于一个如图2b所示的单精度浮点数(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
,根据浮点数的阶码产生如图2c所示的掩码膜23’b111 1111 1111 1000 0000 0000,其中,前12位12’b111 1111 11111与尾数中的整数部分对应,即尾数中前12位为整数部分,后11位11’b000 0000 0000与尾数中的小数部分对应,即尾数中后11位为小数部分,所以根据掩膜码就可以确定如图2c所示的尾数中的整数部分以及小数部分。将掩膜码各位取反后并左移一位的值23’b000 0000 0000 1111 1111 1110与掩膜码各位值23’b111 1111 1111 1000 0000 0000相位与,得到末位掩膜码23’b0000 0000 0000 1000 0000 000,该末位掩膜码中值为1的比特位就是整数部分的最末位位置,即整数部分的最末位位置为第11位。
102.根据浮点数对应的阶码、尾数以及舍入规则确定小数部分的舍入值,若入,则舍入值为1,若舍,则舍入值为0;并且根据得到的舍入值,确定第一舍入域,其中第一舍入域与尾数位宽相同,整数部分的最末位位置上的值为舍入值,剩余各比特位值为0。例如,以四舍五入的舍入规则为例,根据浮点数对应的阶码和尾数确定前述单精度浮点数中小数部分对应
的最高位为1,表示该浮点数的小数部分对应的十进制值大于等于0.5,需要入,得到的舍入值为1。根据得到的舍入值1,得到第一舍入域为23’b 000 0000 0000 1000 0000 0000,其中第11位值为舍入值1,剩余各比特位值为0。
103.根据舍入值以及末位掩膜码将舍入值与尾数的整数部分的最末位的位置上的值相加,即可以通过掩膜码将尾数的小数部分各比特位值全置0的方式处理得到第一尾数,其中,第一尾数中的整数部分末位的位置与尾数中整数末位的位置是相同的,然后将第一尾数与第一舍入域(即位宽用与尾数位宽相同,整数部分的最末位的位置上的值为舍入值,其余位为0的二进制数)进行相加得到第一和值和最高位的进位值。例如,对于上述例子,通过掩码膜对尾数小数部分各位全置0可以得到如图2d所示的第一尾数23’b010 1010 1010 1000 0000 0000,图2d示出了整数部分的末位位置为第11位。将第一尾数与第一舍入域对应比特位值相加,得到相加后的结果中第一和值为23’b010 1010 1011 0000 0000 0000、进位值为0。
104.对相加后的结果进行后处理得到浮点数的取整结果,即将第一和值作为取整结果的尾数,根据进位值与输入的浮点数的阶码得到取整结果的阶码,输入的浮点数的符号位的值就是取整结果的符号位的值。例如,基于上述例子中获得的第一和值和进位值,得到浮点数的取整结果,该取整结果的符号位为0、阶码为8’b10001011,尾数为23’b010 1010 1011 0000 0000 0000,即值为(-1)0(1.010 1010 1011 0000 0000 0000)*2
12

105.然而,如图2d所示,将第一尾数与第一舍入域各比特位进行相加时,由于第一舍入域中,为舍入值的比特位是不确定的,所以第一舍入域中各比特位上的值是不确定的,即第一尾数中任意的比特位都存在与舍入值(舍入值为0或1)相加的可能。在采用级联的加法器实现第一尾数与第一舍入域相加的时候,最低位可以采用两输入端(其中一个输入端为第一尾数比特位上的值,另一个输入端为第一舍入域比特位上的值)的加法器,即半加器;而其他位都需要使用三输入端(第一个输入端为第一尾数比特位上的值、第二个输入端为第一舍入域比特位上的值、第三个输入端为级联的前一个加法器输出的进位值)的加法器,即全加器,所以在采用加法器实现各比特位相加的时候只有最低位可以使用半加器,而第一尾数的其他位与第一舍入域的对应位相加时需要使用全加器实现,全加器一般占用硬件面积较大,且延时较长,影响整体的性能。
106.为此,本技术提出了一种浮点数取整的方法,包括:当浮点数未发生下溢也未发生上溢时,先确定可以区分出尾数中的整数部分以及小数部分的掩膜码。确定尾数中小数部分对应的舍入值,根据掩膜码以及舍入值将尾数中的小数部分的各个比特位上的二进制值全更改为或置为该舍入值,以得到第一尾数;将舍入值与第一尾数进行相加,得到第一和值以及进位值,根据得到的第一和值以及进位值确定浮点数的取整结果。可以理解的,当将尾数的小数部分的各个比特位上的二进制值全更改为或置为舍入值后得到第一尾数,此时将得到的第一尾数与舍入值相加,可以达到尾数中整数部分末位与舍入值相加的效果。
107.确定区分出尾数中的整数部分以及小数部分的掩膜码的方式为与上述实施例中的方式相同,为:根据浮点数的阶码获取掩膜码,该掩膜码可以区分出整数部分、小数部分,其中掩膜码的位宽与尾数位宽相同,高(阶码对应的指数值)位为1,剩余位为0,掩膜码中对应的比特位上的值为1代表着尾数上对应比特位的数据属于整数部分,掩膜码中对应的比特位上的值为0代表尾数上对应比特位的数据属于小数部分。
108.确定尾数中小数部分对应的舍入值的方式也与上述实施例中的方式相同,为:根据浮点数的阶码、尾数以及舍入规则确定小数部分对应的舍入值,若入,则舍入值为1,若舍,则舍入值为0。例如,以四舍五入的舍入规则为例,小数部分对应的最高位为二进制数值1,表示该浮点数的小数部分对应的十进制值大于等于0.5,需要入,得到的舍入值为1。又例如,以向下舍去规则为例,即小数部分对应的十进制值无论为何值都被舍去,舍入值为0。
109.确定第一和值和进位值的方式为:根据掩膜码以及舍入值将尾数中的小数部分的各个比特位上的二进制值全更改为或置为该舍入值,以得到第一尾数;将第一尾数的值与舍入值相加,得到第一和值以及进位值,当第一尾数在与舍入值相加的过程中第一尾数的最高位产生进位时,则进位值为1,当第一尾数在与舍入值相加的过程中最高位未产生进位时,则进位值为0,其中第一和值的位宽与尾数位宽相同。
110.例如,将尾数中的小数部分的各位值全置为舍入值1,得到如图3a所示的第一尾数23’b010 1010 1010 1111 1111 1111,将舍入值1与第一尾数的值相加,如图3a所示的过程,第一尾数在相加的过程中最高位未产生进位时,则进位值为0,第一和值为23’b010 1010 1011 0000 0000 0000。又例如,将尾数中的小数部分的各位值全置为舍入值0,得到如图3b所示的的第一尾数23’b010 1010 1010 1000 0000 0000,将舍入值0与第一尾数的值相加,如图3b所示的过程,第一尾数在与舍入值相加的过程中最高位未产生进位,则进位值为0,第一和值为23’b010 1010 1010 1000 0000 0000。另外,图3c示出了一种相加过后得到进位值为1的情况,图3c所示的,在舍入值为1的情况下,若第一尾数中各位值全为1,则第一尾数的值与舍入值1相加,会得到进位值为1,第一和值为23’b000 0000 0000 0000 0000 0000。
111.得到浮点数的取整结果的方式与上述实施例中相同,为:将第一和值作为取整结果的尾数,根据进位值与输入的浮点数的阶码得到取整结果的阶码,输入的浮点数的符号位的值就是取整结果的符号位的值。具体地,当进位值为1时,取整结果对应的阶码e的值为输入的浮点数的阶码e的值加上1得到的结果值,符号位与原符号位的值一样;当进位值为0时,此时取整结果对应的阶码e的值为输入浮点数的阶码e的值,符号位s与原符号位s的值一样。
112.例如,如图3a所示的第一和值为23’b010 1010 1011 0000 0000 0000,进位值为0,将第一和值作为取整结果的尾数,根据进位值0确定取整结果的阶码为输入的浮点数的阶码,为8’b10001011,取整结果的符号位的值为二进制0,即浮点数值为(-1)0(1.010 1010 1011 0000 0000 0000)*2
12
。又例如,如图3b所示的第一和值23’b010 1010 1010 1000 0000 0000,进位值为0,结合输入的浮点数的阶码以及符号位的值得到浮点数的取整结果,符号位为0、阶码为8’b10001011,尾数为23’b010 1010 1010 1000 0000 0000,浮点数值为(-1)0(1.010 1010 1010 1000 0000 0000)*2
12
。再例如,如图3c所示,第一和值为23’b000 0000 0000 0000 0000 0000、进位值为1,则取整结果的尾数为23’b000 0000 0000 0000 0000 0000,阶码为原来浮点数的阶码加1后的值,符号位不变。
113.可以理解的,在本技术提出的方法中,当第一尾数与舍入值进行相加,实际上是第一尾数的最末位与舍入值进行相加,而第一尾数中的其它位不需要额外和其它数值进行相加(加0意味着不需要加值),所以在使用级联的加法器实现第一尾数与舍入值(舍入值为0或1)相加的过程中,如图3a-3c所示的单精度浮点数中第一尾数与舍入值相加的过程,需要
23级加法器,第0级加法器即第一尾数的末位值与舍入值相加使用的加法器,只需要两个输入端(其中一个输入端为第一尾数的末位值,另一个输入端为舍入值),可以用半加器实现,其他级(1到23级)加法器也仅需要两个输入端(第一个输入端为第一尾数的对应位的比特值,第二个输入端为来自前一级的输出进位值),所以可以采用半加器来实现,半加器较全加器硬件面积较小,能够节省资源,加快计算速度。而且该方法不需要确定整数部分的最末位位置,简化了计算流程。
114.可以理解的,在一些实现方式中,在进行对浮点数的取整操作时,其组合逻辑比较复杂,需要进行的操作比较多,这样它的整个逻辑的时序会比较长,在某些设计中为了提高系统性能,会将长的组合逻辑分割成多个部分分配到不同的流水线中,使得每一个部分执行的时间变短了,提高了系统的运行主频。
115.为了提高性能,可以采取流水线(pipeline)的方式来完成对浮点数的取整操作,如图4a所示,将一个周期完成对浮点数取整操作分为两个周期来完成,即将浮点数取整的组合逻辑分割成两个部分,分配到流水线1(即图4a中的流水线1)以及流水线2(即图4a中的流水线2)中,将流水线1得到的输出放进存储单元,作为流水线2的输入,将流水线2的输出作为最终结果,从而提高系统的运行主频。
116.具体地,如图4a示出了在本技术的一些实施例中,使用上述流水线方法的一种浮点数取整装置400。
117.浮点数取整装置400包括数据处理单元401、掩膜码生成单元402、舍入单元403、加和单元404、结果生成单元405以及寄存单元406。其中,数据处理单元401、掩膜码生成单元402、进位获取单元403为流水线1,加和单元404、结果生成单元405为流水线2。
118.数据处理单元401,用于获取待取整处理的浮点数并且判断浮点数是否在条件范围内,即未发生下溢也没有发生上溢的浮点数。在一些实施例中,可以通过浮点数的阶码判断浮点数是否符合前述条件,例如,前述条件是可以预先确定的,比如说单精度浮点数的条件范围为,阶码范围为127≤e≤149,双精度浮点数的条件范围为1023≤e≤1074时。
119.掩膜码生成单元402,用于生成可以区分尾数中的整数部分以及小数部分的掩膜码,其中,掩码膜与尾数位宽相同,1表示该位为整数部分,0表示该位为小数部分,掩膜码高(阶码对应的指数值)位为整数部分,各位为1,剩余位全为0。例如,如图2b所示的单精度浮点数(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
,对应的掩膜码23’b111 1111 1111 1000 0000 0000,其中,前12位12’b1111 1111 1111为整数部分,后11位11’b000 0000 0000 为小数部分。在一些实现方式中,可以采用温度码(thermometer-code)的方式生成掩膜码,通过温度码的生成方式,进一步简化了电路的结构,降低了面积。可以理解的,还可以有其他生成掩码膜的方式,在此不做赘述。
120.舍入单元403,用于获取尾数中小数部分对应的舍入值,即小数部分根据浮点数的尾数、阶码以及舍入规则得到的舍入值,舍入值可以为1或0,在此不做赘述。可以理解的,舍入规则有许多,例如“四舍五入”、“向上进位”、“向下舍去”、“舍入到最接近的偶数”、“向0舍入”等,具体舍入规则在此不做要求。
121.加和单元404,用于根据尾数、掩膜码以及舍入值得到第一和值以及进位值。即根据掩膜码以及舍入值将尾数中的小数部分的各比特位上的值调整为舍入值,得到第一尾数,对第一尾数与舍入值进行加和处理,以得到第一和值与进位值。在一些实现方式中,将
尾数、掩膜码、以及舍入值根据如下述公式3所示逻辑进行操作得到第一和值以及进位值。vrint1=(m&mask|{w1{round_up}}&(~mask))+{w2’b0,round_up}
ꢀꢀꢀꢀꢀꢀ
(公式3)
122.其中,m为尾数,w1为尾数的位宽,w2为(尾数的位宽-1),上述公式3得到的结果为vrint1[w1:0],其中vrint1[w2:0]为第一和值,vrint1[w1]为进位值。round_up为舍入值,mask为掩膜码,w2=w1-1。其中“(m1&mask|{w1{round_up}}&(~mask))”为将尾数中的小数部分的各比特位调整或者置为舍入值(0或1),得到第一尾数的方式,“{w2’b0,round_up}”表示最末位为舍入值的二进制数值。当得到第一尾数后,使用级联的加法器将得到的第一尾数与舍入值相加,w1个加法器会得到w1个输出比特位即vrint1[w2:0],以及最后一个加法器的输出进位即vrint1[w1]。
[0123]
当浮点数为单精度浮点数时。上述公式3中的w1为23,w2为22,即可得到下述公式5。
[0124]
vrint1=(m&mask|{23{round_up}}&(~mask))+{22’b0,round_up}
ꢀꢀꢀꢀꢀꢀ
(公式4)
[0125]
上述公式4得到的结果为vrint1[23:0],其中vrint1[22:0]为第一和值,vrint1[23]为进位值。round_up为舍入值,mask为掩膜码。在使用加法器实现加和的过程中,23个加法器会得到23个输出比特位值即vrint1[22:0],以及最后一个加法器的输出进位值,为vrint1[23]。
[0126]
可以理解的,从上述公式3,将round_up固定的与第一尾数的最后一个比特位上的值相加,在使用加法器实现的时候,可以将现有技术中必须使用的全加器改为半加器,面积大大减少。
[0127]
结果生成单元405,用于根据加和单元404得到的第一和值以及进位值,再结合浮点数对应的阶码以及符号位得到浮点数的取整结果,即输出结果。具体地,将第一和值作为取整结果的尾数,符号位与原符号位的值一样,当进位值为1时,此时取整结果对应的阶码e的值为输入的浮点数的阶码e的值加上值1得到的结果值;当进位值为0时,取整结果对应的阶码e的值为输入浮点数的阶码e的值。
[0128]
寄存单元406用于存储流水线1中的输出结果,即存储有符号位的值、阶码、尾数、掩膜码,舍入值。可以理解的,在本技术实施例中提出的方法中,可以省去确定整数部分的最末位位置的末位掩膜码的过程,进而更加的减少了电路面积,并且节省了将末位掩膜码存储在寄存单元中的寄存空间,有利于寄存单元中存储资源的使用,从而提高硬件执行的效率,改善了性能。
[0129]
基于上述图4a所示的浮点数取整装置400的各个单元的功能介绍,下面先将各个单元之间数据流关系进行介绍,再结合具体例子对图4a所示的浮点数取整装置400的各个单元进行浮点数取整进行进一步阐述。
[0130]
如图4a所示,数据处理单元401接收输入的浮点数,根据输入的浮点数的阶码判断浮点数是否在条件范围内,当在条件范围内后将尾数、阶码以及符号位的值发送给寄存单元406、将阶码发送给掩膜码生成单元402,以及将阶码以及尾数发送给掩膜码生成单元402。
[0131]
掩膜码生成单元402根据接收的数据处理单元401传递的阶码生成掩膜码,并将生成的掩膜码发送给寄存单元406。
[0132]
舍入单元403根据接收的数据处理单元401传递的阶码以及尾数确定舍入值,并将确定的舍入值发送给寄存单元406。
[0133]
寄存单元406接收的数据处理单元401发送的尾数、阶码以及符号位的值,掩膜码生成单元402发送的掩膜码以及舍入单元403发送的舍入值,并且将尾数、掩膜码以及舍入值发送给加和单元404,将阶码以及符号位的值发送给结果生成单元405。
[0134]
加和单元404根据接收的寄存单元406传递的尾数、掩膜码以及舍入值得到第一和值以及进位值,并将第一和值以及进位值发送给结果生成单元405。
[0135]
结果生成单元405根据接收到的加和单元404发送的第一和值、进位值,以及寄存单元406发送的阶码以及符号位的值确定浮点数的取整结果,并将浮点数的取整结果输出。
[0136]
下面结合具体的浮点数进行介绍。
[0137]
例如,数据处理单元401接收如图2b所示的单精度浮点数(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
进行取整,其中,舍入规则以四舍五入规则为例。
[0138]
数据处理单元401接收输入的浮点数(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
,根据输入的浮点数的阶码e=139,在127≤e≤149范围内,确定该浮点数在条件范围内,未发生下溢也没有发生上溢,将浮点数的尾数23’b010 1010 1010 1110 1000 0000、阶码8’b10001011以及符号位1’b0发送给寄存单元406、将阶码8’b10001011发送给掩膜码生成单元402,以及将阶码8’b10001011以及尾数23’b010 1010 1010 1110 1000 0000发送给掩膜码生成单元402。
[0139]
掩膜码生成单元402根据接收的数据处理单元401传递的阶码8’b10001011生成掩膜码23’b111 1111 1111 1000 0000 0000,并将生成的掩膜码23’b111 1111 1111 1000 0000 0000发送给寄存单元406。
[0140]
舍入单元403根据接收的数据处理单元401传递的阶码8’b10001011以及尾数23’b0101010 1010 1110 1000 0000确定舍入值为二进制值1,并将确定的舍入值1发送给寄存单元406。
[0141]
寄存单元406接收数据处理单元401发送的尾数23’b010 1010 1010 1110 1000 0000、阶码8’b10001011以及符号位二进制值0,掩膜码生成单元402发送的掩膜码23’b111 1111 1111 1000 0000 0000以及舍入单元403发送的舍入值1,并且将尾数23’b010 1010 1010 1110 1000 0000、掩膜码23’b111 1111 1111 1000 0000 0000以及舍入值1发送给加和单元404,将阶码8’b10001011以及符号位二进制值0发送给结果生成单元405。
[0142]
加和单元404根据接收的寄存单元406传递的尾数23’b010 1010 1010 1110 1000 0000、掩膜码23’b111 1111 1111 1000 0000 0000以及舍入值1根据公式4得到第一和值23’b010 1010 1011 0000 0000 0000以及进位值0,并将第一和值23’b010 1010 1011 0000 0000 0000 以及进位值0发送给结果生成单元405。
[0143]
结果生成单元405根据接收到的加和单元404发送的第一和值23’b010 1010 1011 0000 0000 0000、进位值0,以及寄存单元406发送的阶码8’b10001011以及符号位值0确定浮点数的取整结果,符号位为0、阶码为8’b10001011以及尾数为23’b010 1010 1011 0000 0000 0000,即值为(-1)0(1.010 1010 1011 0000 0000 0000)*2
12
,并将浮点数的取整结果输出。
[0144]
可以理解的,根据上述本技术的提供的一种实施例,在进行浮点数取整的过程中,
不仅可以将全加器改用半加器实现,还不需要设计电路单元来确定尾数中的整数部分的末位,另一方面在使用流水线来实现取整操作的时候,也不需要将可以标识出尾数中的整数部分末位的掩码膜存储进入寄存单元,也减少了寄存单元中存储资源的使用,从而提高硬件执行的效率,提高了性能。
[0145]
在一些实现方式中,可以采用温度码(thermometer-code)生成电路来生成掩膜码,即掩膜码生成单元402可以为温度码生成电路。
[0146]
首先介绍温度码的原理,温度码生成电路实际上是一个移位电路,它可以根据移位位数和移位方向生成对应的温度码。记移位位数为k,k的范围为0~2
n-1,,根据移位位数和移位方向可以得到2n位的温度码。在左移k位的情况下,该2n位的温度码中高k位全为1,剩余位全为0;在右移k位的情况下,该2n位的温度码中低k位为1,剩余位为0。
[0147]
而,阶码与掩膜码的关系为,掩膜码高(阶码对应的指数值)位全为1,剩余位全为0。
[0148]
可以发现,在移位方向为左移的情况下,当阶码对应的指数值与左移移位位数值相同时,此时掩膜码与温度码结果相同,所以,将阶码对应的指数值作为温度码生成电路的左移移位位数值输入,根据温度码生成电路就可以得到掩膜码。即掩膜码生成单元402可以通过温度码生成电路逻辑来实现,即通过温度码生成电路得到掩膜码。
[0149]
温度码生成电路结构简单,方便操作。
[0150]
例如图4b示出了移位方向为左移、移位位数k的范围在0~7之间,在前述移位位数范围对应的温度码真值表以及图4c示出了与图4b所示的真值表对应的逻辑电路。其中,移位位数k的范围在0~7之间,对应的二进制数值范围为3’b000~3’b111,所以图4c中的输入为3个输入端,b2、b1、b0端,与3位二进制数对应的从高位到低位为b2b1b0,温度码的输出端为8个输出端,从与8位二进制数对应的从高位至低位分别为a7~a0。
[0151]
如图4b所示,移位位数k的范围在0~7之间,对应3位的二进制数b2b1b0,与图4c中的3个输入端b2、b1、b0对应,温度码为8位的二进制数a7a6a5
……
a2a1a0,与图4c中的8个输出端a7、a6、a5
……
a2、a1、a0对应。当移位位数k为0,即3位的二进制数b2b1b0为3’b000时,温度码为8’b00000000;当移位位数k为1,即二进制数值为3’b001时,温度码a7a6a5
……
a2a1a0为8’b10000000;当移位位数k为2,即3位的二进制数b2b1b0为3’b010时,温度码a7a6a5
……
a2a1a0为8’b11000000;当移位位数k为3,即3位的二进制数b2b1b0为3’b011时,温度码为a7a6a5
……
a2a1a0为8’b11100000;当移位位数k为4,即3位的二进制数b2b1b0为3’b100时,温度码a7a6a5
……
a2a1a0为8’b11110000;当移位位数k3位的二进制数b2b1b0为5,即3’b101时,温度码a7a6a5
……
a2a1a0为8’b11111000;当移位位数k为6,即3位的二进制数b2b1b0为3’b110时,温度码a7a6a5
……
a2a1a0为8’b11111100;当移位位数k为7,即3位的二进制数b2b1b0为3’b111时,温度码a7a6a5
……
a2a1a0为8’b11111110。
[0152]
图4c示出的与真值表对应的逻辑图,通过逻辑与门、逻辑或门等简单逻辑门的组合即可构成,结构简单。上述对移位位数在0~7之间,对应的二进制数值范围为3’b000~3’b111,温度码的输出比特位为8位的介绍仅仅用于说明温度码的结构简单,通过温度码生成电路得到掩膜码,可以加快计算速度,简化电路结构,降低面积。可以理解的,还可以采用其他方式生成掩码膜,在此不做赘述。
[0153]
对于本技术实施例中提到的需要得到23位的掩膜码,则需要拓展上述如图4c所示
的电路,在此不做赘述。
[0154]
可以理解的是,图4a示出的本技术实施例示意的结构并不构成对浮点数取整装置400的具体限定。在本技术的另一些实施例中,可以包括比图4a所示的浮点数取整装置400更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图4a所示的部件可以以硬件,软件或软件和硬件的组合实现。
[0155]
可以理解的是,该电子设备100可以为包括能够实现浮点数取整方法的其他电子设备,包括但不限于手机、平板电脑、智慧屏、可穿戴设备(例如,手表、手环、头盔、耳机等)、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)等电子设备中的一种。
[0156]
下面以图5所示的流程图为例,示出了以电子设备100中的处理器为执行主体,进行浮点数取整的具体步骤,具体步骤如下。
[0157]
s501,获取浮点数。
[0158]
例如,获取如图2b所示的单精度浮点数值(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
,其中符号位为0、阶码为8’b10001011、尾数为23’b010 1010 1010 1110 1000 0000。
[0159]
s502,判断浮点数是否满足条件范围。
[0160]
在一些实施例中,根据浮点数的阶码判断浮点数是否满足条件范围,即当阶码e满足,偏移量≤e≤(偏移量+尾数位宽-1)时,认为该浮点数满足条件范围,此时浮点数未发生下溢也没有发生上溢。若满足范围,则进行步骤s503,否则进行步骤s506,使用其他逻辑来对浮点数进行取整。
[0161]
例如,单精度浮点数值(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
的阶码e为139满足单精度浮点数127≤e≤149的条件,则进行步骤s503。
[0162]
s503,根据浮点数中的阶码以及尾数得到掩膜码和舍入值。
[0163]
在一些实施例中,根据浮点域中的阶码确定掩膜码,其中,掩膜码中高(阶码对应的指数值)位的值全置为1,剩余位的值全置为0,同时根据浮点数中的阶码、尾数以及舍入规则得到舍入值,具体地,根据阶码将尾数循环移位区分出尾数中的整数部分以及小数部分,再根据舍入规则,确定小数部分是舍还是入,舍,舍入值为0,入,舍入值为1。
[0164]
例如,对于单精度浮点数(-1)0(1.010 1010 1010 1110 1000 0000)*2
12
,浮点域中的阶码为8’b10001011,值为139,对应的指数值为12,则掩膜码中高12位的值全置为1,剩余位的值全置为0,得到23’b111 1111 1111 1000 0000 0000,同时,根据浮点数中的阶码8’b10001011得到尾数循环移位的位数,将尾数23’b010 1010 1010 1110 1000 0000循环移位从而确定尾数中的小数部分以及整数部分,进而根据舍入规则得到舍入值,比如说以“四舍五入”舍入规则为例,得到舍入值为1。
[0165]
s504,基于掩膜码、舍入值、尾数得到第一和值跟进位值。
[0166]
在一些实施例中,根据掩膜码以及舍入值将尾数中的小数部分的各比特位上的值调整为舍入值,得到第一尾数,对第一尾数与舍入值进行加和处理,以得到第一和值与进位值,即可根据上述公式3所示的逻辑具体操作,从而得到第一和值和进位值。当输入的浮点数为单精度浮点数时,可以将得到的掩膜码、舍入值以及尾数根据上述公式4得到第一和值
random access memory,ddr sdram)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存储上述浮点数取整的方法的相关指令等。
[0178]
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(hard disk drive,hdd)、光盘(compact disc,cd)、数字通用光盘(digital versatile disc,dvd)、固态硬盘(solid-state drive,ssd)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(secure digital,sd)存储卡等。
[0179]
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行使电子设备100实现本技术各实施例提供的浮点数取整的方法。
[0180]
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信。
[0181]
输入/输出(i/o)设备105可以包括输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(i/o)设备105与电子设备100进行交互。
[0182]
系统控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
[0183]
在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成系统封装(system in package,sip)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(system-on-chip,soc)。
[0184]
可以理解,电子设备100可以是能够进行浮点数取整的任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备等,本技术实施例不做限定。
[0185]
本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0186]
可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(application specific integrated circuit,asic)或微处理器之类的处理器的任何系统。
[0187]
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统
通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
[0188]
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
[0189]
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
[0190]
需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
[0191]
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0192]
虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1