CN108363558B - 面向大数据处理的机器数级数据比较方法 - Google Patents
面向大数据处理的机器数级数据比较方法 Download PDFInfo
- Publication number
- CN108363558B CN108363558B CN201810128991.XA CN201810128991A CN108363558B CN 108363558 B CN108363558 B CN 108363558B CN 201810128991 A CN201810128991 A CN 201810128991A CN 108363558 B CN108363558 B CN 108363558B
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- point data
- signed
- comparison
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于机器数级数据比较方法技术领域,特别是涉及一种面向大数据处理的机器数级数据比较方法,对于定点数据,若要比较两个定点数据的大小关系,将定点数据分别视为有符号数和无符号数,设计两条相应的流水线,同时对寄存器中的数据逐位进行比较,根据从高位到低位的顺序判断各位的比较结果,进而确定定点数据比较结果;对于浮点数据,将其视为对应位数的有符号定点数据进行比较。该方法不解释查询字段所代表的含义,而是从机器数的角度,将所要查询的字段分成定点数据和浮点数据两类,在机器数级,直接对二进制数值进行比较,不需要分析查询字段的数据类型,避免了转换、解释等过程,大幅度提高系统的查询速度。
Description
技术领域
本发明属于机器数级数据比较方法技术领域,特别是涉及一种面向大数据处理的机器数级数据比较方法。
背景技术
互联网、移动通信、社交网络、电子商务等技术的发展已将人类社会带入了以“ZB”为量级的大数据时代。大数据具有数据体量巨大(Volume)、数据类型繁多(Variety)、价值密度低(Value)、处理速度快(Velocity)的4V特点,对数据信息的管理查询要求与难度越来越高。数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是针对网络协议解析与数据库检索等应用的核心操作。
从大多数系统的使用实例来看,查询操作在各种数据库操作中所占据的比重较大,而查询操作所付出的时间代价往往又是最大,尤其是对于海量的数据而言,查询所需时间更是急剧上升。
传统数据查询是根据检索条件逐条进行比较的,比如使用SQL语句对数据库中的许多信息进行查询操作,数据表在接受查询请求时,将逐条判断是否符合查询条件,如图1所示,如果符合查询条件就将该条记录提取出来,然后将所有的行为组织在一起,形成另外一个类似表的结构,构成查询结果。查询条件中包含数值、字符、逻辑、日期等多种数据类型,还需要对各数据类型的信息特征进行转换、连接、比较、归并等过程,严重影响查询速度。
发明内容
为了克服现有技术中存在的缺陷,本发明的目的是提供一种面向大数据处理的机器数级数据比较方法,该方法能够提高计算系统的查询速度、可靠性、灵活性,而且具有良好的硬件支持性。
为了实现上述目的,本发明采用以下的技术方案:
本发明提供一种面向大数据处理的机器数级数据比较方法,将数据划分为定点数据和浮点数据;对于定点数据,若要比较两个定点数据的大小关系,将定点数据分别视为有符号数和无符号数,设计两条相应的流水线,同时对寄存器中的数据逐位进行比较,根据从高位到低位的顺序判断各位的比较结果,进而确定定点数据比较结果,并将定点数据比较结果存入结果标志寄存器中;对于浮点数据,将其视为对应位数的有符号定点数据进行比较。
进一步地,对于定点数据,若要比较两个定点数据的大小关系,假设查询判断模板为M,待查询的数据为N,判断条件包括M=N,M>N和M<N。
进一步地,当判断条件为M=N时,对于有符号数和无符号数,从高位到低位,每次取一位数值,与查询判断模板M对应位的数值进行对比,若相等,则取下一位,全部对应位的数值均相等,则M=N;M=N的判断规则表示为:
进一步地,当判断条件为M>N时,要分别求出有符号数和无符号数两种情况;
对于有符号数,首先判断符号位S,若M的符号位为0,N的符号位为1,则判断M>N;若符号位相等,则取N字段的下一位数值,与M的下一位数值进行大小判断,若M1>N1,则判断M>N,若M1=N1,则再取下一位数值,判断M2和N2的大小关系,如果相等则再比较下一位;M>N的判断规则表示为:
对于无符号数,根据从高位到低位的顺序判断各位的比较结果,进而确定无符号定点数据比较结果,M>N的判断规则表示为:
进一步地,当判断条件为M<N时,与判断条件为M>N类似,要分别求出有符号数和无符号数两种情况;
对于有符号数,M<N的判断规则表示为:
对于无符号数,M<N的判断规则表示为:
进一步地,对于浮点数据,寄存器中的数值大小为:
n=S*F*RE;
其中,S为符号,E为阶码,F为尾数,R为基数,若要比较两个浮点数据的大小关系,通过上式计算出浮点数据的数值,然后比较数值的大小,或者,根据符号S,阶码E,尾数F之间的关系进行比较,假设查询判断模板为M(S,E,F),待查询的数据为N(S',E',F'),判断条件包括M(S,E,F)=N(S',E',F'),M(S,E,F)>N(S',E',F')和M(S,E,F)<N(S',E',F')。
进一步地,当判断条件为M(S,E,F)=N(S',E',F')时,分别比较S和S',E和E',F和F'是否相等,若不相等,则M(S,E,F)≠N(S',E',F'),否则,M(S,E,F)=N(S',E',F'),即M(S,E,F)=N(S',E',F')的判断规则表示为:
进一步地,当判断条件为M(S,E,F)>N(S',E',F')时,先比较S和S',若S<S',则M(S,E,F)>N(S',E',F'),若S=S',比较E和E',若E>E',则M(S,E,F)>N(S',E',F'),若E=E',比较F和F',若F>F',则M(S,E,F)>N(S',E',F'),M(S,E,F)>N(S',E',F')的判断规则表示为:
进一步地,当判断条件为M(S,E,F)<N(S',E',F')时,与判断条件为M(S,E,F)>N(S',E',F')类似,M(S,E,F)<N(S',E',F')的判断规则表示为:
进一步地,所述浮点数据按照浮点数格式分为单精度浮点数和双精度浮点数,单精度浮点数共32位,双精度浮点数共64位,将32位单精度浮点数和64位双精度浮点数分别看作32位有符号定点数和64位有符号定点数进行比较。
与现有技术相比,本发明具有以下优点:
1、本发明提出的一种面向大数据处理的机器数级数据比较方法,对查询信息字段,不翻译解释,直接对其二进制形式的机器数进行比较,避免解释转换的过程,加快了查询速度。
2、本发明将查询字段分为定点数据和浮点数据,而不去分析查询字段的具体数据类型(数值、字符、逻辑、日期等),直接对二进制值的机器数进行比较,提高了查询效率。
3、本发明提出了有符号定点数和无符号定点数与模板进行比较时的判断逻辑,并且证明了,对于符合标准形式规格化的浮点数,与模板比较的判断逻辑与相等位数的有符号定点数相同,比较时可以直接调用有符号定点数的比较逻辑,使用方便。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是传统数据库查询实现方式示意图;
图2是本发明定点数据存储格式示意图;
图3是本发明浮点数据存储格式示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有实施例,都属于本发明保护的范围。
事实上,无论查询字段代表何种含义,对于硬件设备而言都是机器数,也即二进制数据,至于字段是数值、字符、逻辑、日期还是别的数据类型,从机器数的角度看,要么是定点数据、要么是浮点数据,因此若从机器数级对字段进行比较,就可以避免上述转换、连接等过程,直接完成对数据查询,大幅提高系统的查询速度。
定点数据和浮点数据的存储格式都可简化为如图2和图3所示的形式(数据的长度存在差异),从图中可以看出,若对定点或浮点数据进行是否相等、大小等比较运算,只需要根据其各位之间的大小关系即可确定。
根据大数据处理的特点,为提高查询效率,缩短查询时间,本发明设计一种面向大数据处理的机器数级数据比较方法,分别设计定点数据和浮点数据的比较方法。
对于定点数据,除了数据的长度不同之外,其数据格式相同,可能存在有符号数和无符号数两种情况。若要比较两个数据是否相等、大小等关系,对寄存器中的数据逐位进行比较,然后根据从高位到低位的顺序判断各位的比较结果,进而快速确定定点数据比较结果。本发明中设计两条并行流水线,分别将数据看成有符号数和无符号数进行比较,两种情况下得出的比较结果分别存入结果标志寄存器的不同位。
假设查询判断模板为M,待查询的数据为N,判断条件包括M=N,M>N和M<N。
当判断条件为M=N时,对于有符号数和无符号数,从高位到低位,每次取一位数值,与查询判断模板M对应位的数值进行对比,若相等(异或结果为零,),则取下一位,全部对应位的数值均相等,则M=N;M=N的判断规则表示为:
当判断条件为M>N时,要分别求出有符号数和无符号数两种情况。
对于有符号数,首先判断符号位S(即第0位),若M的符号位为0,N的符号位为1则直接判断M>N;若符号位相等则取N字段的下一位数值,与M的下一位数值进行大小判断,若M1>N1 则判断M>N,若M1=N1,则再取下一位数值,判断M2和N2的大小关系,如果相等则再比较下一位;M>N(有符号数)的判断规则表示为:
对于无符号数,只需要根据从高位到低位的顺序判断各位的比较结果,进而快速确定无符号定点数据比较结果,M>N(无符号数)的判断规则表示为:
当判断条件为M<N时,与判断条件为M>N类似,要分别求出有符号数和无符号数两种情况;
对于有符号数,M<N(有符号数)的判断规则表示为:
对于无符号数,M<N(无符号数)的判断规则表示为:
所以,对于定点型的机器数,设计两条并行流水线,分别将数据看成有符号数和无符号数同时进行比较,两种情况下得出的比较结果分别存入结果标志寄存器的不同位。通过对数据各个对应位上的具体数值进行比较,跳过了数字化转换的阶段,有效地提高了对定点型的机器数的查询速度。
对于浮点数据,如图3所示的浮点数据存储格式,寄存器中的数值大小为:
n=S*F*RE
其中,S为符号,E为阶码,F为尾数,R为基数,显然,若要比较两个浮点数据的大小关系,既可以通过上式计算出浮点数据的数值,然后比较数值的大小,也可以根据符号S,阶码E,尾数F之间的关系直接进行比较,具体比较过程为:
假设查询判断模板为M(S,E,F),待查询的数据为N(S',E',F'),判断条件包括M(S,E,F)=N(S',E',F'),M(S,E,F)>N(S',E',F')和M(S,E,F)<N(S',E',F')。
当判断条件为M(S,E,F)=N(S',E',F')时,分别比较S和S',E和E',F和F'是否相等,若不相等,则M(S,E,F)≠N(S',E',F'),否则,M(S,E,F)=N(S',E',F'),即M(S,E,F)=N(S',E',F')的判断规则表示为:
当判断条件为M(S,E,F)>N(S',E',F')时,先比较S和S',若S<S',则M(S,E,F)>N(S',E',F'),若S=S',比较E和E',若E>E',则M(S,E,F)>N(S',E',F'),若E=E',比较F和F',若F>F',则M(S,E,F)>N(S',E',F'),M(S,E,F)>N(S',E',F')的判断规则表示为:
当判断条件为M(S,E,F)<N(S',E',F')时,与判断条件为M(S,E,F)>N(S',E',F')类似,M(S,E,F)<N(S',E',F')的判断规则表示为:
规定浮点数符合754标准存储格式(规格化浮点数的国际标准),小数点前面仅有一位有效数字,有两种浮点数格式,单精度和双精度。单精度浮点数共32位,符号位1位,阶码8位,尾数23位,阶码加上偏移量127,7FH(01111111B),双精度浮点数共64位,符号位1位,阶码11位,尾数52位,阶码加上偏移量1023,7FFH(0011111111111B)。
用浮点数的大小比较规则进行判断,查询判断模板为M,32位单精度浮点数为S。
根据符号S,阶码E,尾数F之间的关系进行比较,32位单精度浮点数S(S',E',F')与查询判断模板为M(S,E,F)的大小关系,判断规则为:
而符号位S和S',阶码E和E',尾数F和F',可以看成是有符号定点数的比较,将判断关系按位展开,对应到32位单精度浮点数上就是:
上述的M>S的比较关系通过化简后为:
用有符号定点数比较方法对32位定点数进行比较,M>S的判断规则表示为:
可以看出,两者的比较关系是一样的。对32位单精度浮点数来说,虽然第1位到第9位为阶码,10到32位为尾数,他们所代表的含义不同,但是比较大小的逻辑关系是一样的,且也是先比较阶码再比较尾数,比较顺序从高位到低位,所以对一个32位的单精度浮点数的比较可以视为对一个32位有符号定点数的比较。
同理,可以得出M<S的比较关系为:
而查询字段为64位双精度时,判断规则如下:
无论是32位单精度还是64位双精度的浮点数,只要是符合754标准存储格式(规范化浮点数的国际标准)的规格化浮点数,比较大小时都可以看成对应32位或64位的带符号定点数比较。需要说明的是,本发明不仅仅限于32位浮点数和64位浮点数,凡是符合754标准存储格式的浮点数利用本发明机器数级数据比较的方法都属于本发明的保护范围。
本发明提供的一种面向大数据处理的机器数级数据比较方法中仅仅描写了判断条件是等于,大于和小于三种情况,由以上三种情况,很容易推导出判断条件为不等于,大于等于和小于等于等情况的机器数级数据比较方法,因此,按照本发明的比较方法延伸出的其他判断条件的机器数级数据比较方法也属于本发明的保护范围。
综上所述,本发明提出的面向大数据处理的机器数级数据比较方法,将数据分成定点数据和浮点数据两种,对于定点数据,设计两条并行流水线,分别将数据看成有符号数和无符号数进行比较,两种情况下得出的比较结果分别存入结果标志寄存器的不同位。对于浮点数据,将其视为对应位数的有符号定点数进行比较,从而快速得到查询结果。
在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来讲是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽范围。
Claims (10)
1.一种面向大数据处理的机器数级数据比较方法,其特征在于,将数据划分为定点数据和浮点数据;对于定点数据,若要比较两个定点数据的大小关系,将定点数据分别视为有符号数和无符号数,设计两条相应的流水线,同时对寄存器中的数据逐位进行比较,根据从高位到低位的顺序判断各位的比较结果,进而确定定点数据比较结果,并将定点数据比较结果存入结果标志寄存器中;对于浮点数据,将其视为对应位数的有符号定点数据进行比较。
2.根据权利要求1所述的面向大数据处理的机器数级数据比较方法,其特征在于,对于定点数据,若要比较两个定点数据的大小关系,假设查询判断模板为M,待查询的数据为N,判断条件包括M=N,M>N和M<N。
6.根据权利要求1所述的面向大数据处理的机器数级数据比较方法,其特征在于,对于浮点数据,寄存器中的数值大小为:
n=S*F*RE;
其中,S为符号,E为阶码,F为尾数,R为基数,若要比较两个浮点数据的大小关系,通过上式计算出浮点数据的数值,然后比较数值的大小,或者,根据符号S,阶码E,尾数F之间的关系进行比较,假设查询判断模板为M(S,E,F),待查询的数据为N(S',E',F'),判断条件包括M(S,E,F)=N(S',E',F'),M(S,E,F)>N(S',E',F')和M(S,E,F)<N(S',E',F')。
10.根据权利要求6至9任一项所述的面向大数据处理的机器数级数据比较方法,其特征在于,所述浮点数据按照浮点数格式分为单精度浮点数和双精度浮点数,单精度浮点数共32位,双精度浮点数共64位,将32位单精度浮点数和64位双精度浮点数分别看作32位有符号定点数和64位有符号定点数进行比较。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810128991.XA CN108363558B (zh) | 2018-02-08 | 2018-02-08 | 面向大数据处理的机器数级数据比较方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810128991.XA CN108363558B (zh) | 2018-02-08 | 2018-02-08 | 面向大数据处理的机器数级数据比较方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108363558A CN108363558A (zh) | 2018-08-03 |
CN108363558B true CN108363558B (zh) | 2020-10-09 |
Family
ID=63005021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810128991.XA Active CN108363558B (zh) | 2018-02-08 | 2018-02-08 | 面向大数据处理的机器数级数据比较方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108363558B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381804A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据比较器、数据处理方法、芯片及电子设备 |
CN117519636A (zh) * | 2018-12-28 | 2024-02-06 | 上海寒武纪信息科技有限公司 | 数据比较器、数据处理方法、芯片及电子设备 |
CN117519637A (zh) * | 2018-12-28 | 2024-02-06 | 上海寒武纪信息科技有限公司 | 数据比较器、数据处理方法、芯片及电子设备 |
CN112148249B (zh) * | 2020-09-18 | 2023-08-18 | 北京百度网讯科技有限公司 | 点积运算实现方法、装置、电子设备及存储介质 |
CN114860190B (zh) * | 2022-04-28 | 2023-03-24 | 中国人民解放军战略支援部队信息工程大学 | 一种针对高性能计算函数库中浮点算术表达式在指定区间内误差较大子区间划分方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257216A (en) * | 1992-06-10 | 1993-10-26 | Intel Corporation | Floating point safe instruction recognition apparatus |
CN107193977A (zh) * | 2017-05-26 | 2017-09-22 | 刘伟 | 数据查找方法、人工智能系统、图像处理系统、数据库、搜索引擎、通讯系统、计算机应用 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133890B2 (en) * | 2001-05-25 | 2006-11-07 | Sun Microsystems, Inc. | Total order comparator unit for comparing values of two floating point operands |
-
2018
- 2018-02-08 CN CN201810128991.XA patent/CN108363558B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257216A (en) * | 1992-06-10 | 1993-10-26 | Intel Corporation | Floating point safe instruction recognition apparatus |
CN107193977A (zh) * | 2017-05-26 | 2017-09-22 | 刘伟 | 数据查找方法、人工智能系统、图像处理系统、数据库、搜索引擎、通讯系统、计算机应用 |
Non-Patent Citations (2)
Title |
---|
《基于两字细胞自动机的数值比较器设计》;夏银水等;《电子与信息学报》;20090615;第2-3页,第3.2节 * |
数据的机器级表示;国内大型汽车;《https://www.doc88.com/p-9992627444726.html》;20150111;第2页及该页附图 * |
Also Published As
Publication number | Publication date |
---|---|
CN108363558A (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108363558B (zh) | 面向大数据处理的机器数级数据比较方法 | |
CN108573045B (zh) | 一种基于多阶指纹的比对矩阵相似度检索方法 | |
CN108334609B (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
CN110597844B (zh) | 异构数据库数据统一访问方法及相关设备 | |
TWI604318B (zh) | 資料排序方法 | |
CN113407565B (zh) | 跨库数据查询方法、装置和设备 | |
CN111984673B (zh) | 一种电网电能量计量系统树形结构模糊检索方法和装置 | |
CN116055559B (zh) | 数据交换格式的处理方法及装置 | |
CN103488616B (zh) | 一种内嵌字体处理方法与装置 | |
CN112905677A (zh) | 数据处理方法及装置、业务处理系统和计算机设备 | |
CN111831659B (zh) | 一种检查索引的方法、装置及计算设备 | |
CN112506931A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN114461856A (zh) | 一种面向企业设计资源的零件特征编码与检索方法 | |
CN112182164B (zh) | 一种高维数据特征处理方法及系统 | |
CN113535938A (zh) | 基于内容识别的标准数据构建方法、系统、设备及介质 | |
CN115729752A (zh) | 一种寄存器检查方法及装置、存储介质 | |
CN114385540A (zh) | 一种数据单位换算方法及装置 | |
CN113609128A (zh) | 生成数据库实体类的方法、装置、终端设备及存储介质 | |
CN113536188A (zh) | 一种数据存储方法、数据查询方法、计算设备和存储介质 | |
CN112380445A (zh) | 数据查询方法、装置、设备和存储介质 | |
CN110287147B (zh) | 一种字符串排序方法及装置 | |
CN113283233A (zh) | 文本纠错方法、装置、电子设备和存储介质 | |
CN117951137A (zh) | 用户数据的查询方法、装置、设备及存储介质 | |
CN109977269B (zh) | 一种针对xml文件的数据自适应融合方法 | |
CN117435640A (zh) | 一种用于定位相似实例的方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |