CN103365941B - 信息处理方法和系统 - Google Patents
信息处理方法和系统 Download PDFInfo
- Publication number
- CN103365941B CN103365941B CN201310069932.7A CN201310069932A CN103365941B CN 103365941 B CN103365941 B CN 103365941B CN 201310069932 A CN201310069932 A CN 201310069932A CN 103365941 B CN103365941 B CN 103365941B
- Authority
- CN
- China
- Prior art keywords
- column data
- vector
- column
- scanning
- width
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及信息处理方法和系统。提供一种方法,其中处理器接收扫描包括在数据表中的数据的扫描请求。处理器选择对应于扫描请求数据表中的列并且从所选列中获取列数据条目。此外,处理器标识所选列的宽度并且基于标识的列宽度来选择扫描算法。处理器转而将列数据条目加载到列数据向量中并且使用所选扫描算法从列数据向量计算扫描结果。
Description
技术领域
本公开涉及基于列数据条目的列宽选择扫描算法以及使用所选扫描算法以从所述列数据条目产生扫描结果。
背景技术
数据仓库加速器可以对代表来自关系数据库系统的非规范化的元组的大量压缩数据执行表扫描。表扫描可包括平等扫描(例如,对特定值的扫描)或范围扫描(例如,对下限和上限之间的值的扫描)。在表扫描期间,数据仓库加速器可一次取回表的小的子集,因为数据仓库表通常包括具有变化列宽的大量列。
发明内容
根据本公开的一个实施方式,提供了一种方法,其中处理器接收扫描包括在数据表中的数据的扫描请求。处理器对应于扫描请求选择数据表中的一列并且从所选列中获取列数据条目。此外,处理器标识所选列的宽度并且基于标识的列宽度选择扫描算法。从而,处理器将列数据条目加载到列数据向量中并且使用所选扫描算法从列数据向量计算扫描结果。
以上是摘要并且因此必然包含简化、概括,以及省略细节;因此,本领域技术人员将会认识到,摘要仅是示意性的而不是要任何形式的限制。本公开的其他方面、发明特征和优点,如仅由权利要求所限定,将在以下提出的非限制详细说明中变得明显。
附图说明
通过参考附图,本公开可以被更好地理解,并且本领域技术人员将明白其很多目标、特征和优点,其中:
图1示出基于列的列宽度以及列数据向量的组宽度尺寸选择和利用扫描算法的列数据扫描加速器的图;
图2A是组宽度尺寸为64位的列数据向量的示例(组宽度1);
图2B是组宽度尺寸为128位的列数据向量的示例(组宽度2);
图2C是组宽度尺寸为256位的列数据向量的示例(组宽度4);
图3A所示为横跨SIMD元件边界的列数据条目的图;
图3B所示为跨越硬件向量边界的列数据条目的图;
图4是包括用于每个不同扫描算法的指令的数目的示范扫描算法选择表;
图5所示为基于各种因素选择算法以及利用所选算法计算扫描结果所采取的步骤的流程图;
图6A所示为用于单个位列宽度范围扫描的扫描算法的计算的示例;
图6B所示为用于8位多列宽度范围扫描的扫描算法的计算的示例;
图7所示为用于2位或4位列范围扫描的扫描算法的计算的示例;
图8所示为用于3位、5位或7位列范围扫描的扫描算法的计算的示例;
图9是可以实现这里方法的数据处理系统的框图;以及
图10提供了图9所示信息处理系统环境的扩展以图示这里的方法可以在运行在网络环境中的广泛的信息处理系统上执行。
具体实施方式
这里使用的术语仅用于说明特定实施方式而不是要限制本公开。如这里所用,单数形式“一个”、“一种”和“该”也要包括复数形式,否则除非上下文清楚地表明。还应理解词语“包括”和/或“包含”,当在本说明书中使用时,指明特征、整数、步骤、操作、元件和/或部件的存在,但是不排除存在或增加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其组。
对应的结构、材料、操作和所有装置的等效或下列权利要求中步骤加功能元件是要包括如具体要求的用于执行功能与其他要求的元件结合的任何结构、材料或操作。已经为了图示和说明给出了本公开的说明,但是不是要穷尽或将本公开限制为所公开的形式。很多修改和变更将对本领域技术人员是显然的而不脱离本公开的范围和精神。选择和说明实施方式以便最好地说明本公开和实际应用的原理,并且使本领域其他技术人员理解对具有适合考虑的特定使用的多种修改的多种实施方式的公开。
本技术领域的技术人员知道,本公开的方面可以实现为系统、方法或计算机程序产品。因此,本公开的方面可以具体实现为以下形式:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),还可以是软件和硬件方面结合的实施方式,这里一般可称为“电路”、“模块”或“系统”。此外,本公开的方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或设备,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者设备使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括,但不限于,电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括,但不限于,无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的方面的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后者的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商通过因特网)。
下面将参照本公开的实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本公开的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的产品(manufacture)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
下列详细说明一般将遵循本公开的摘要,如上所述,根据需要进一步说明和扩展本公开的多个方面和实施方式的定义。
图1所示为以列的形式存储其数据以及基于列的列宽度以及列数据向量的组宽度尺寸利用扫描算法的Rational数据库管理系统(RDBMS)。
数据仓库表100包括列110-130。列110-130中的每一列具有特定的列宽度,例如1位、4位、8位、9位等。列数据扫描加速器135接收并且处理对应于包括在数据仓库表100中包括的列之一中的数据的统计扫描请求。例如,列120可以包括组中的成员的年龄以及列数据扫描加速器130可以接收范围扫描请求以标识年龄在35-45之间的用户数。
当列数据扫描加速器135接收请求时,数据获取器(fetcher)140标识对应于请求的列110-130中之一并且获取包括在标识的列中的列数据条目。图1所示的示例示出数据获取器140选择的列115以获取列数据条目。数据获取器140标识所选列的列宽度并且利用组宽度选择器160以选择“组宽度尺寸”。组宽度尺寸是数据获取器加载列数据包的列数据向量的尺寸。在一个实施方式中,组宽度尺寸可以从64位、128位或256位的尺寸中选择(见图2A-2C以及用于进一步细节的对应文本)。
数据获取器140将列数据条目加载到列数据向量145中并且将它们传递给向量计算模块150。数据获取器140还向向量计算模块提供列宽度155和组宽度尺寸175。这样,扫描算法选择器180选择特定扫描算法以基于列宽度155和组宽度尺寸175利用列数据向量145。在一个实施方式中,扫描算法选择器180利用查找表以确定利用哪个扫描算法(见图4以及用于进一步细节的对应文本)。
向量计算模块150转而根据所选扫描算法对列数据向量145执行计算以产生扫描结果185,在一个实施方式中,存储在结果存储195中(见图5-7以及用于进一步细节的对应文本)。结果存储195可以存储在易失或非易失存储器中,例如计算机存储器或计算机硬盘驱动器。本领域技术人员将会认识到,数据获取器140的功能和向量计算模块可以与图1所示的示例不同地分区。
图2A-图2C所示为不同的组宽度尺寸选择和基于列宽度填充零的潜在数据填充区域的图。图2A是组宽度尺寸为64位(组宽度1)的列数据向量的示例。数据获取器140产生列数据向量200、210、220和230并且基于特定列宽度,可以把列数据向量填充在区域205、215、225和/或235中。在计算期间,列数据向量被加载到硬件向量240和245中,它们每一个都是128位。在一个实施方式中,处理器可包括一个硬件向量,在这种情况下,硬件向量240代表硬件向量的第一负载,并且硬件向量245代表硬件向量的第二负载。处理器包括SIMD元件250-265,在一个实施方式中,具有32位SIMD元件尺寸。因此,在硬件向量240的计算期间(包括列数据向量200-210),无数据填充存在于SIMD元件250和SIMD元件255之间。因此,一些列数据条目可跨越SIMD元件边界。
图2B是组宽度尺寸为128位(组宽度2)的列数据向量的示例。数据获取器140产生列数据向量270、280并且可以基于特定列宽度把列数据向量填充在区域275和/或285中。在计算期间,列数据向量270和280被加载到硬件向量240和245中,它们每一个都是128位。在一个实施方式中,如上所述,处理器可包括一个硬件向量,在这种情况下,硬件向量270代表硬件向量的第一负载,并且硬件向量280代表硬件向量的第二负载。可以看出,因为在这个示例中列数据向量组宽度尺寸与硬件向量尺寸相同,列数据条目将不跨越硬件向量边界(虽然它们可以跨越SIMD元件边界,如图2A)。
图2C是组宽度尺寸为256位(组宽度4)的列数据向量的示例。数据获取器140产生列数据向量290并且基于列数据条目的列宽度,可以把列数据填充在区域295中。在计算期间,列数据向量290被加载到硬件向量240和245中,它们每一个都是128位。在一个实施方式中,如上所述,处理器可包括一个硬件向量,在这种情况下,硬件向量270代表硬件向量的第一负载,并且硬件向量280代表硬件向量的第二负载。可以看出,列数据向量290不包括在硬件向量240和245之间在硬件向量边界中的填充。这样,列数据条目可以跨越硬件向量边界,这使它的一些数据位被加载到第一负载上,并且它的其余数据位被加载到第二负载上(见图3B以及用于进一步细节的对应文本)。
图3A所示为横跨SIMD元件边界的列数据条目的图。列数据向量270具有组宽度尺寸为128位并且包括在其结尾比特位置的填充275(取决于列数据条目的列宽度)。例如,假设列宽为5位,列数据向量270加载25个列数据条目(位0-124)并且填充其余的位125-127。
图3A示出包括在列数据条目300中的数据在SIMD元件250和SIMD元件255之间跨越SIMD元件边界。同样,包括在列数据条目310和320中的数据分别在SIMD元件255/260和SIMD元件260/265之间跨越SIMD元件边界。因为这里的本公开允许列数据条目跨越SIMD元件边界,更多列数据条目可以被打包在列数据向量中。这样,列数据扫描加速器135能处理每个列数据向量的更多列数据条目。
图3B所示为跨越硬件向量边界的列数据条目的图。列数据向量290具有组宽度尺寸为256位并且包括在其结尾比特位置的填充295(取决于列数据条目的列宽度)。可以看出,列数据条目330跨越硬件向量边界,这导致它的一部分位被加载到第一负载340上,而一部分位被加载到第二负载350上。
在一个实施方式中,与两个列数据向量具有128位组宽度尺寸相比,处理器使用具有256位组宽度尺寸的单个列数据向量可处理更多列数据条目。继续上述示例,并且假设列宽度为5位,列数据向量290打包51个列数据条目(位0-254)并且填充其余位255-256。与以上每个列数据向量25个列数据条目的示例相比,256组宽度尺寸列数据向量允许多一个列数据条目被处理(51比50)。
图4是包括用于每个不同扫描算法的指令的数目的示范扫描算法选择表。表400示出列410-435,其包括基于组宽度尺寸(组宽度1,2,4)以及一个或多个列数据条目是否跨越SIMD元件边界(32位和/或64位)对选择扫描算法A-M及其括号中的对应数目的指令的选择。列405包括所选列的列宽度的列表。例如,列410和415示出了用于当不发生SIMD元件跨越时的用于选择的扫描算法A-E。用于选择的扫描算法取决于扫描请求是相等型扫描还是范围型扫描,以及列宽度是1位(行440)、8位的倍数(行450)还是2/4位(行460)。
列420和425包括扫描算法列表以当组宽度尺寸为128位(组宽度2)并且一个或多个SIMD元件跨越发生时选择。而且,列430和435包括扫描算法列表以当组宽度尺寸为256位(组宽度4)并且一个或多个SIMD元件跨越发生时选择。
表400假设要扫描的每个列数据条目具有最多单个SIMD元件跨越。如果列数据条目超过2倍SIMD元件宽度,则多个SIMD元件跨越可为单个数据列条目发生。在这种情况下,表400可具有用于在单个数据列情况下覆盖多个SIMD元件跨越所需的算法的附加的列。
表400示出针对列宽度、SIMD元件跨越以及扫描类型选择扫描算法导致对通常使用的列宽度(例如1位和8位多位)所需的指令数目显著减少。在1位列范围扫描的情况下(行440,列415)不需要扫描因为“0”<=列<=“1”的范围扫描将总是独立于列数据位值“列”而通过。这个扫描算法选择直接给出业务分析的扫描运行时间的重大改善。没有这个定制,每个128位列数据向量将经历为扫描算法I所示的15个指令(行470,列425)。本领域技术人员会可以认识到,不同扫描算法的实际实现可以为每个处理器实现而不同,因为处理器支持的指令集架构和支持的硬件向量宽度尺寸以及SIMD元件尺寸可以不同。
图5所示为基于各种因素选择算法以及利用所选算法计算扫描结果所采取的步骤的流程图。处理开始于500,其中在步骤510,处理接收请求对应于位于数据仓库表中的特定数据的统计信息的扫描请求。在步骤515,处理标识扫描请求的扫描类型。在一个实施方式中,扫描类型可以使相等扫描请求(例如,等于一个值的数据)或范围扫描请求(例如,在上界和下界范围之间的数据)。
在步骤520,处理选择数据仓库表中对应于扫描请求的列。例如,扫描请求可以请求有关组的成员的年龄的信息。接下来,在步骤530,处理标识所选列的列宽度(例如,2位,8位,9位等)。
在步骤550,处理基于标识的列宽度选择组宽度尺寸。在一个实施方式中,处理访问存储在查找表555中的表以选择对应的扫描算法。在一个实施方式中,当SIMD架构支持硬件向量宽度为128位时,当与将放入两个128位列数据向量的列数据条目的数量相比更多的列数据条目放入256位列数据向量时,可以选择256位组宽度尺寸。使用3位组宽度尺寸作为示例,85个列数据条目将放入256位组宽度尺寸列数据向量(mod(256/3)=85列),但是仅84个列数据向量将放入两个128位组宽度尺寸列数据向量。
在步骤560,处理基于列宽度、组宽度尺寸和描述类型来选择扫描算法。在一个实施方式中,处理利用存储在查找表555中的查找表以选择对应的扫描算法(见图4和用于进一步细节的对应文本)。
在步骤570,处理从所选列中加载列数据条目到一个或多个列数据向量中,并且,在一个实施方式中,将列数据向量存储在向量存储575中。接着,处理通过所选扫描算法的指令对存储在向量存储575中的列数据向量计算扫描结果。处理将扫描结果存储在结果库195中并且结束于590。
图6A所示为用于单个位列宽度相等扫描的扫描算法的计算的示例(例如,图4,列410,行440)。对于图6A所示的实施方式,扫描请求是在单个位列上带有谓词“下界<=列<=上界”的相等扫描。当上界,下界=0时,用于相等扫描的谓词将是“0<=列<=0”,以及对于上界,下界=1,用于扫描的谓词将是“1<=列<=1”。图600示出列数据向量605,其包括来自数据表的列数据条目,以及上界向量610,其包括上界(上界)值。在扫描开始之前,上界位根据SIMD向量宽度被复制并且被存储在上界向量610中。
指令615是SIMD向量逐位逻辑XNOR(异或非)指令,它执行向量XNOR计算并且相应地产生扫描结果620。
图6B所示为用于8位多列宽度范围扫描(8,16,32,64,见图4,列415,行450)的下界<=列<=上界(上界>=下界)扫描算法的计算的示例。图630包括下界向量635、列数据向量640,以及上界向量650。指令645生成下界结果向量660并且指令655生成用于与列宽度匹配的每个8位SIMD元件的上界结果向量665。对每个8位SIMD元件进行比较的指令670将向量660和665作为输入并且为每个8位SIMD元件生成扫描结果675。本领域技术人员会认识到,不同指令可用于从列数据向量640计算扫描结果675。
图7所示为用于2位或4位列范围扫描的扫描算法的计算的示例(见图4,列415,行460)。在扫描开始之前,列数据MSB(最高有效位)向量705被构造,其对应于列数据向量中的MSB位的所有位设置为1并且所有其他位设置为0。此外,通过复制与数据列宽度匹配的上界数据构成上界向量780(和下界向量)以用放入和如果需要则填充在向量结尾的列数据的数目填充组宽度。最后,SIMDANDC执行下界向量的逐位与以及数据MSB向量的逐位补码以计算向量730。向量730具有在下界向量中所有MSB设置为0。同样,上界向量和数据MSB向量的SIMD“或”计算向量750。向量750具有在上界向量中所有MSB位设置为1。这样,扫描操作完成了在操作期间是恒定输入向量的所需向量。
图700示出列数据MSB向量705和列数据向量710作为对指令715和720的输入,其相应地生成向量725和745。
MSB设置为0的下界向量730和MSB“或”结果向量725被输入到指令735,其生成下界MSB结果向量740。同样,MSB设置为1的上界向量750和MSB“与”结果向量745被输入到指令755,其生成上界MSB结果向量760。向量740和760被输入到指令765,于是生成被输入到指令790的下界/上界MSB结果向量770,其对于上界的MSB位等于下界的MSB位的情况生成扫描结果795。如果上界的MSB位与下界的MSB位不匹配,由Vec_SEL指令762根据输入740、760和列数据向量761生成扫描结果763。基于上界和下界的MSB位选择扫描结果795或760由“if-then-else”指令或另一vec_sel指令执行。需要7个指令以根据列数据向量710计算扫描结果795(例如,表400,行460,列415)。可以用在上界MSB位和下界MSB位之间区分的多个列改进表400,因为总共需要5个指令计算结果762而不是最长的7个指令的序列。本领域技术人员将会认识到,不同指令可用于根据列数据向量710计算扫描结果795和763并且对于使用不同指令以计算扫描结果的性能优点的每个情况可以用附加的行和列扩展表400。
在一个实施方式中,用于3、5、7位的其他情况(见图4,列420,行470)的范围扫描计算算法与图700的不同在于数据元件的SIMD元件也需要处理。
图8所示为对于位于跨SIMD元件的列处理32位宽SIMD元件之间的进位(carry)的附加指令的图。Vec_s上界c指令800/810为每个32位宽SIMD元件设置一个进位。接下来,vec_xor指令820/830对进位极性取反并且结果被左移32位通过vec_slo840/850以加/减潜在的进位到其余的列数据,其由vec_add870和vec_s上界860指令完成形成MSB“与”结果向量745和MSB“或”结果向量725。现在,已经考虑SIMD元件跨越,MSB“与”结果向量745和MSB“或”结果向量725可以被进一步处理,与无SIMD元件跨越的情况中一样(图7)。本领域技术人员将会认识到,可以使用不同指令,并且256位组宽度可能需要附加指令用于处理128位硬件向量之间的进位作为跨256位组宽度的硬件向量的列。
图9示出信息处理系统900,其是能执行这里计算操作的计算机系统的简化示例。信息处理系统900包括耦合到处理器接口总线912的一个或多个处理器910。处理器接口总线912将处理器910连接到北桥915,其也称为存储器控制中心(MCH)。北桥915连接到系统存储器920并且为处理器910提供装置以访问系统存储器。图形控制器925也连接到北桥915。在一个实施方式中,PCI Express总线918将北桥915连接到图形控制器925。图形控制器925连接到显示设备930,例如计算机监视器。
北桥915和南桥935使用总线919相互连接。在一个实施方式中,总线是在北桥915和南桥935之间的每个方向高速传输数据的直接媒体接口(DMI)总线。在另一实施方式中,外围部件互连(PCI)总线连接北桥和南桥。南桥935,也称为I/O控制中心(ICH)是一般实现以比北桥提供的能力较低的速度运行的能力的芯片。南桥935典型地提供用于连接多种部件的多种总线。这些总线包括,例如,PCI和PCI Express总线、ISA总线、系统管理总线(SMBus或SMB),和/或短管脚计数(LPC)总线。LPC总线通常连接低带宽设备,例如启动ROM996和“旧有”I/O设备(使用“超级I/O”芯片)。“旧有”I/O设备(998)可包括,例如,串行和并行端口、键盘、鼠标和/或软盘控制器。LPC总线还将南桥935连接到可信平台模块(TPM)995。通常包括在南桥935中的其他部件包括直接存储器存取(DMA)控制器、可编程中断控制器(PIC)以及存储设备控制器,其使用总线984将南桥935连接到非易失存储设备985,例如硬盘驱动器。
ExpressCard 955是将可热插拔的设备连接到信息处理系统的槽。ExpressCard 955支持PCI Express和USB连通性,因为它使用通用串行总线(USB)和PCI Express总线连接到南桥935。南桥935包括USB控制器940为连接到USB的设备提供USB连通性。这些设备包括网络摄像机(照相机)950、红外(IR)接收器948、键盘和触控板944,以及蓝牙设备946,其为无线个人域网络(PAN)提供。USB控制器940还为其他各种USB连接的设备942提供USB连通性,例如鼠标、可移除非易失存储设备945、调制解调器、网卡、ISDN连接器、传真机、打印机、USB集线器,以及很多其他类型的USB连接的设备。而可移除非易失存储设备945示出为USB连接的设备,可移除非易失存储设备945可以使用不同接口被连接,例如Firewire接口等。
无线局域网(LAN)设备975通过PCI或PCI Express总线972连接到南桥935。LAN设备975典型地实现IEEE 802.11标准之一的都使用同一协议的空中调制技术以在信息处理系统900和另一计算机系统或设备之间无线通信。光学存储设备990使用串行ATA(SATA)总线988连接到南桥935。串行ATA适配器和设备通过高速串行链路通信。串行ATA总线还将南桥935连接到其他形式的存储设备,例如硬盘驱动。音频电路960,例如声卡,通过总线958连接到南桥935。音频电路960还提供功能例如音频线路接入和光数字音频接入端口962,光数字输出和耳机插孔964,内部扬声器966和内部麦克风968。以太网控制器970用总线连接到南桥935,例如PCI或PCI Express总线。以太网控制器970将信息处理系统900连接到计算机网络,例如局域网(LAN)、因特网以及其他公有和私有计算机网络。
虽然图9示出一个信息处理系统,但是信息处理系统可采取很多形式。例如,信息处理系统可采取下列形式:台式电脑、服务器、便携电脑、膝上电脑、笔记本电脑或其他形式的计算机或数据处理系统。此外,信息处理系统可采取其他形式例如个人数字助理(PDA)、游戏设备、ATM机、移动电话设备、通信设备或包括处理器和存储器的其他设备。
图9中所示和这里提供安全功能的可信平台模块(TPM995)仅是硬件安全模块(HSM)的一个示例。因此,这里和要求的TPM包括任何类型的HSM,包括但不限于,符合可信计算组(TCG标准)的硬件安全设备,且标题为“可信平台模块(TPM)说明书版本1.2”。TPM是可以结合到任何数量的信息处理系统中的硬件安全子系统,例如图10中画出轮廓的。
图10提供了图9所示信息处理系统环境的扩展以图示这里的方法可以在运行在网络环境中的广泛的信息处理系统上执行。信息处理系统的种类范围从小的手持设备,例如手持计算机/移动电话1010到大型机系统,例如大型计算机1070。手持计算机1010的示例包括个人数字助理(PDA),个人娱乐设备,例如MP3播放器,移动电视和CD播放器。信息处理系统的其他示例包括笔式或平板式计算机1020、膝上电脑或笔记本电脑、计算机1030、工作站1040、个人计算机系统1050和服务器1060。没有在图10中单独示出的其他类型的信息处理系统由信息处理系统1080代表。如所示,多种信息处理系统可使用计算机网络1000被联网在一起。可用于互联多种信息处理系统的计算机网络的类型包括局域网(LAN)、无线局域网(WLAN)、因特网、公共交换电话网络(PSTN)、其他无线网络以及可用于互联信息处理系统的任何其他网络拓扑。许多信息处理系统包括非易失数据存储、例如硬盘驱动器和/或非易失存储器。图10中所示的一些信息处理系统描述了分散的非易失数据存储(服务器1060利用非易失数据存储1065,大型计算机1070利用非易失数据存储1075,以及信息处理系统1080利用非易失数据存储1085)。非易失数据存储可以是多种信息处理系统外部的部件或者是信息处理系统之一的内部的部件。此外,可移除非易失存储设备945可以在使用多种技术的两个或多个信息处理系统之间共享,例如将可移除非易失存储设备945连接到USB端口或信息处理系统的其他连接器。
虽然已经示出和说明了本公开的特定实施方式,显然对于本领域技术人员,基于这里的教程,可以做出改变和修改而不脱离本公开及其更广的方面。因此,所附权利要求要将所有这些改变和修改包含在其范围中,其在本公开的真实精神和范围中。而且,应理解本公开仅由所附权利要求限定。本领域技术人员将理解如果要具体数目的引导的权利要求元件,这种意图将明确表述在权利要求中,并且如果没有这种表述就没有这种限制。对于非限制的示例,作为对理解的辅助,下列所附权利要求包含使用引导短语“至少一个”和“一个或多个”以引导权利要求元件。但是,使用这种短语不应被理解为暗示由不定冠词“一个”引导的权利要求元件将包含这种引导权利要求元件的任何特定权利要求限制为包含仅一个这种元件的公开,即使当同一权利要求包括引导短语“一个或多个”或“至少一个”以及不定冠词例如“一个”;在权利要求中使用定冠词也是这样。
Claims (16)
1.一种信息处理方法,包括:
由一个或多个处理器接收对应于数据表的扫描请求,其中所述数据表包括多个列;
由所述处理器之一选择对应于所述扫描请求的所述多个列中的一个列,其中选择的所述列具有列宽度并且包括对应于所述列宽度的多个列数据条目;
基于所述列宽度从多个组宽度尺寸中选择组宽度尺寸,其中所述组宽度尺寸标识所述一个或多个列数据向量中的每个列数据向量的比特位置的数目;
由所述处理器之一基于所述列宽度和所述组宽度尺寸从多个扫描算法中选择扫描算法;
由所述处理器之一将所述多个列数据条目中的一个或多个列数据条目加载到一个或多个列数据向量中;以及
由所述处理器之一使用选择的所述扫描算法以及所述一个或多个列数据向量来计算一个或多个扫描结果。
2.根据权利要求1所述的方法,还包括:
标识对应于所述扫描请求的扫描类型;以及
使用所述扫描类型、所述组宽度尺寸以及所述列宽度来选择所述扫描算法。
3.根据权利要求1所述的方法,其中:
所述处理器之一包括多个SIMD元件;
所述组宽度尺寸大于对应于所述多个SIMD元件的SIMD元件尺寸;以及
包括在所述列数据向量中的至少一个所述列数据条目跨越所述多个SIMD元件中的两个SIMD元件之间的SIMD元件边界。
4.根据权利要求1所述的方法,其中:
所述组宽度尺寸大于对应于包括在所述处理器之一中的硬件向量的硬件向量尺寸;以及
至少一个所述列数据条目跨越对应于所述硬件向量的硬件向量边界,其中响应于所述硬件向量边界跨越,包括在所述列数据条目中的所述一个列数据条目中的位的子集在第一负载上加载到所述硬件向量中,并且包括在所述列数据条目中的所述一个列数据条目的位的不同子集在第二负载上加载到所述硬件向量中。
5.根据权利要求1所述的方法,还包括:
通过将选择的所述扫描算法应用于所述一个或多个列数据向量而计算每个加载的所述列数据条目的谓词值;以及
基于其对应的计算出的谓词值来设置每个加载的所述列数据条目的最高有效位。
6.根据权利要求1所述的方法,还包括:
通过将选择的所述扫描算法应用于所述一个或多个列数据向量而计算每个加载的所述列数据条目的谓词值;以及
基于其对应的计算出的谓词值而使用多个SIMD指令来设置每个加载的所述列数据条目的最高有效位。
7.根据权利要求1所述的方法,其中所述扫描请求是对应于所述数据表的数据分析的统计数据扫描请求。
8.根据权利要求1所述的方法,还包括:
接收对应于所述数据表的不同扫描请求;
选择对应于所述不同扫描请求的所述多个列中的一个不同列,其中对所述不同列的所述选择包括标识选择的所述不同列的不同列宽度;以及
基于所述不同列宽度从所述多个扫描算法中选择不同的扫描算法,其中所述不同的扫描算法包括不同于所述扫描算法的一个或多个不同指令。
9.一种信息处理系统,包括:
一个或多个处理器;
耦合到至少一个所述处理器的存储器;
一组计算机程序指令,被存储在所述存储器中并且由至少一个所述处理器执行以便执行动作:
由一个或多个所述处理器接收对应于数据表的扫描请求,其中所述数据表包括多个列;
由所述处理器之一选择对应于所述扫描请求的所述多个列中的一个列,其中选择的所述列具有列宽度并且包括对应于所述列宽度的多个列数据条目;
基于所述列宽度从多个组宽度尺寸中选择组宽度尺寸,其中所述组宽度尺寸标识所述一个或多个列数据向量中的每个列数据向量的比特位置的数目;
由所述处理器之一基于所述列宽度和所述组宽度尺寸从多个扫描算法中选择扫描算法;
由所述处理器之一将所述多个列数据条目中的一个或多个列数据条目加载到一个或多个列数据向量中;以及
由所述处理器之一使用选择的所述扫描算法和所述一个或多个列数据向量来计算一个或多个扫描结果。
10.根据权利要求9所述的信息处理系统,其中所述处理器执行附加动作,包括:
标识对应于所述扫描请求的扫描类型;以及
使用所述扫描类型、所述组宽度尺寸和所述列宽度来选择所述扫描算法。
11.根据权利要求9所述的信息处理系统,其中:
所述处理器之一包括多个SIMD元件;
所述组宽度尺寸大于对应于所述多个SIMD元件的SIMD元件尺寸;以及
包括在所述列数据向量中的至少一个所述列数据条目跨越所述多个SIMD元件中的两个SIMD元件之间的SIMD元件边界。
12.根据权利要求9所述的信息处理系统,其中:
所述组宽度尺寸大于对应于包括在所述处理器之一中的硬件向量的硬件向量尺寸;以及
至少一个所述列数据条目跨越对应于所述硬件向量的硬件向量边界,其中响应于所述硬件向量边界跨越,包括在所述列数据条目中的所述一个列数据条目中的位的子集在第一负载上加载到所述硬件向量中,并且包括在所述列数据条目中的所述一个列数据条目的位的不同子集在第二负载上加载到所述硬件向量中。
13.根据权利要求9所述的信息处理系统,其中所述处理器执行附加动作,包括:
通过将选择的所述扫描算法应用于所述一个或多个列数据向量而计算每个加载的所述列数据条目的谓词值;以及
基于其对应的计算出的谓词值而设置每个加载的所述列数据条目的最高有效位。
14.根据权利要求9所述的信息处理系统,其中所述处理器执行附加动作,包括:
通过将选择的所述扫描算法应用于所述一个或多个列数据向量而计算每个加载的所述列数据条目谓词值;以及
基于其对应的计算出的谓词值而使用多个SIMD指令来设置每个加载的所述列数据条目的最高有效位。
15.根据权利要求9所述的信息处理系统,其中所述处理器执行附加动作,包括:
接收对应于所述数据表的不同扫描请求;
选择对应于所述不同扫描请求的所述多个列中的一个不同列,其中对所述不同列的所述选择包括标识选择的所述不同列的不同列宽度;以及
基于所述不同列宽度从所述多个扫描算法中选择不同的扫描算法,其中所述不同的扫描算法包括不同于所述扫描算法的一个或多个不同指令。
16.一种信息处理方法,包括:
由一个或多个处理器接收对应于包括多个列的数据表的扫描请求,其中所述扫描请求是对应于所述数据表的数据分析的统计数据扫描请求;
由所述处理器之一选择对应于所述扫描请求的所述多个列中的一个列,其中选择的所述列具有列宽度并且包括对应于所述列宽度的多个列数据条目;
基于所述列宽度从多个组宽度尺寸中选择组宽度尺寸,其中所述组宽度尺寸标识所述一个或多个列数据向量中的每个列数据向量的比特位置的数目;
标识对应于所述扫描请求的扫描类型;
由所述处理器之一基于所述列宽度、所述组宽度尺寸和所述扫描类型而从多个扫描算法中选择扫描算法;
由所述处理器之一将所述多个列数据条目中的一个或多个列数据条目加载到一个或多个列数据向量中;以及
由所述处理器之一使用选择的所述扫描算法和所述一个或多个列数据向量来计算一个或多个扫描结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/433,507 | 2012-03-29 | ||
US13/433,507 US8832158B2 (en) | 2012-03-29 | 2012-03-29 | Fast predicate table scans using single instruction, multiple data architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365941A CN103365941A (zh) | 2013-10-23 |
CN103365941B true CN103365941B (zh) | 2016-10-05 |
Family
ID=49154919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310069932.7A Expired - Fee Related CN103365941B (zh) | 2012-03-29 | 2013-03-05 | 信息处理方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8832158B2 (zh) |
CN (1) | CN103365941B (zh) |
DE (1) | DE102013204515A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9684684B2 (en) * | 2014-07-08 | 2017-06-20 | Sybase, Inc. | Index updates using parallel and hybrid execution |
US9372690B2 (en) | 2014-09-03 | 2016-06-21 | International Business Machines Corporation | Analysis of data integration job |
US10803035B2 (en) | 2015-03-27 | 2020-10-13 | Hitachi, Ltd. | Storage device, computer system, and control method for storage device |
CN105930471A (zh) * | 2016-04-25 | 2016-09-07 | 上海交通大学 | 演讲摘要生成方法及装置 |
US10740098B2 (en) | 2018-02-06 | 2020-08-11 | International Business Machines Corporation | Aligning most significant bits of different sized elements in comparison result vectors |
US10579375B2 (en) | 2018-02-06 | 2020-03-03 | International Business Machines Corporation | Method to build reconfigurable variable length comparators |
US11036517B2 (en) | 2018-04-27 | 2021-06-15 | Sap Se | Database management system performing column operations using a set of SIMD processor instructions selected based on performance |
US11507886B2 (en) * | 2020-03-17 | 2022-11-22 | Sap Se | Vectorization of structured documents with multi-modal data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684058A (zh) * | 2004-04-16 | 2005-10-19 | 索尼株式会社 | 处理器 |
CN101216933A (zh) * | 2007-12-29 | 2008-07-09 | 炬力集成电路设计有限公司 | 一种图像数据内存投影方法、访问方法及装置 |
CN101646994A (zh) * | 2006-12-06 | 2010-02-10 | 弗森多系统公司(dba弗森-艾奥) | 利用内存库交错管理固态存储器的命令的装置、系统及方法 |
CN102043729A (zh) * | 2009-10-20 | 2011-05-04 | 杭州华三通信技术有限公司 | 动态随机访问存储器的内存管理方法及系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5033102A (en) * | 1988-01-29 | 1991-07-16 | Minolta Camera Kabushiki Kaisha | Image reading apparatus capable of reading desired image areas |
US5819259A (en) * | 1992-12-17 | 1998-10-06 | Hartford Fire Insurance Company | Searching media and text information and categorizing the same employing expert system apparatus and methods |
US6496834B1 (en) * | 2000-12-22 | 2002-12-17 | Ncr Corporation | Method for performing clustering in very large databases |
US7080072B1 (en) * | 2001-11-14 | 2006-07-18 | Ncr Corp. | Row hash match scan in a partitioned database system |
US6772163B1 (en) * | 2001-12-20 | 2004-08-03 | Ncr Corporation | Reduced memory row hash match scan join for a partitioned database system |
US6999967B1 (en) * | 2001-12-26 | 2006-02-14 | Ncr Corp. | Semantically reducing the number of partitions involved in a join |
US7484827B2 (en) * | 2003-03-20 | 2009-02-03 | Ricoh Company, Ltd. | Image forming method and apparatus, and a recording medium storing a program for performing an image forming method |
US7383262B2 (en) * | 2004-06-29 | 2008-06-03 | Microsoft Corporation | Ranking database query results using probabilistic models from information retrieval |
US7882100B2 (en) * | 2005-01-24 | 2011-02-01 | Sybase, Inc. | Database system with methodology for generating bushy nested loop join trees |
US8296271B1 (en) * | 2005-03-28 | 2012-10-23 | Federal Home Loan Mortgage Corporation | System and method for optimizing data recovery in a parallel database |
EP2253092B1 (en) | 2008-03-07 | 2012-12-26 | Imec | Method for determining a data format for processing data and device employing the same |
US7840554B2 (en) | 2008-03-27 | 2010-11-23 | International Business Machines Corporation | Method for evaluating a conjunction of equity and range predicates using a constant number of operations |
EP2290562A1 (en) * | 2009-08-24 | 2011-03-02 | Amadeus S.A.S. | Segmented main-memory stored relational database table system with improved collaborative scan algorithm |
US9176995B2 (en) * | 2010-02-22 | 2015-11-03 | International Business Machines Corporation | Organization of data within a database |
US20120016901A1 (en) * | 2010-05-18 | 2012-01-19 | Google Inc. | Data Storage and Processing Service |
JP2012203783A (ja) * | 2011-03-28 | 2012-10-22 | Fuji Xerox Co Ltd | 画像処理装置およびプログラム |
-
2012
- 2012-03-29 US US13/433,507 patent/US8832158B2/en not_active Expired - Fee Related
-
2013
- 2013-01-21 US US13/746,146 patent/US8843527B2/en not_active Expired - Fee Related
- 2013-03-05 CN CN201310069932.7A patent/CN103365941B/zh not_active Expired - Fee Related
- 2013-03-15 DE DE102013204515A patent/DE102013204515A1/de not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684058A (zh) * | 2004-04-16 | 2005-10-19 | 索尼株式会社 | 处理器 |
CN101646994A (zh) * | 2006-12-06 | 2010-02-10 | 弗森多系统公司(dba弗森-艾奥) | 利用内存库交错管理固态存储器的命令的装置、系统及方法 |
CN101216933A (zh) * | 2007-12-29 | 2008-07-09 | 炬力集成电路设计有限公司 | 一种图像数据内存投影方法、访问方法及装置 |
CN102043729A (zh) * | 2009-10-20 | 2011-05-04 | 杭州华三通信技术有限公司 | 动态随机访问存储器的内存管理方法及系统 |
Non-Patent Citations (2)
Title |
---|
基于位宽控制提高SIMD架构并行度的优化算法;张为华等;《计算机学报》;20091115;第32卷(第11期);第2168-2177页 * |
面向SIMD的数组重组和对齐优化;魏帅等;《计算机科学》;20120215;第39卷(第2期);第305-310页 * |
Also Published As
Publication number | Publication date |
---|---|
US20130262370A1 (en) | 2013-10-03 |
US8832158B2 (en) | 2014-09-09 |
DE102013204515A1 (de) | 2013-10-02 |
US8843527B2 (en) | 2014-09-23 |
CN103365941A (zh) | 2013-10-23 |
US20130262519A1 (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365941B (zh) | 信息处理方法和系统 | |
CN104008064B (zh) | 用于多级存储器压缩的方法和系统 | |
CN109416721B (zh) | 隐私保护机器学习 | |
CN106133743B (zh) | 用于优化预安装应用程序的扫描的系统和方法 | |
KR101732491B1 (ko) | 컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘 | |
US10572381B2 (en) | Updating cache using two bloom filters | |
CN109766722A (zh) | 一种区块链中构建智能合约的方法及其系统 | |
US20190354705A1 (en) | Multiple containers assigned to an application | |
US11720825B2 (en) | Framework for multi-tenant data science experiments at-scale | |
US11645424B2 (en) | Integrity verification in cloud key-value stores | |
US10162876B1 (en) | Embeddable cloud analytics | |
US20150381629A1 (en) | Crowd Sourced Access Approvals | |
US8458652B2 (en) | Device, system and method of modeling homogeneous information | |
CN110232969A (zh) | 医学影像上传至云服务器的方法、装置、终端和存储介质 | |
CN105556533A (zh) | 自动生成证书文档 | |
US10565391B2 (en) | Expression evaluation of database statements for restricted data | |
US20220188101A1 (en) | Shape-based code comparisons | |
WO2024021417A1 (zh) | 数据账户创建方法及装置 | |
US20130305237A1 (en) | Grandfathering Configurations in a Distributed Environment | |
US20220360459A1 (en) | Method of querying data, method of writing data, electronic device, and readable storage medium | |
US9003364B2 (en) | Overriding system attributes and function returns in a software subsystem | |
US20140207729A1 (en) | Rapid Provisioning of Information for Business Analytics | |
US11182359B2 (en) | Data deduplication in data platforms | |
US8276041B2 (en) | Data integrity validation using hierarchical volume management | |
CN113608688A (zh) | 数据迁移方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161005 Termination date: 20210305 |
|
CF01 | Termination of patent right due to non-payment of annual fee |