基于塊的索引技術的制作方法
【專利摘要】描述了基于塊的索引技術。例如,在一個實施例中,裝置可以包括多核處理器元件、由多核處理器元件執行以生成多個塊?屬性對的分配組件,每個塊?屬性對與屬性值和多個數據塊中的一個數據塊相對應、以及由多核處理器元件執行以基于多個塊?屬性對而生成多個數據塊的索引塊的索引組件,該索引組件使用多個索引實例來執行多個塊?屬性對的并行索引。描述并要求保護了其它實施例。
【專利說明】
基于塊的索引技術
技術領域
[0001]在本文中所描述的實施例概括地涉及計算機實現的數據存儲的實現和管理。
【背景技術】
[0002]傳統上可以用于實現大數據集的存儲和維護的一種類型的數據存儲是基于塊的數據存儲。在基于塊的數據存儲中,諸如鍵-值記錄之類的數據被存儲在針對從存儲設備中順序存取而優化的數據塊中。為了使對基于塊的數據存儲的查詢能夠執行,可以構建與各種屬性、值或者信息存儲中的其他信息相關聯的索引。到目前為止,針對基于塊的數據存儲的索引技術的發展已經主要專注于使針對完整、靜態的數據塊的集合的查詢速度最大化。因此,傳統技術通常把索引視為在完整的數據集的導入之后所執行的一次性過程。這樣的傳統技術通常不優先考慮索引速度和/或效率,而且可能不支持動態數據集的高效遞增索引。
[0003]在寬泛的多種真實世界的應用中,作為可以是用于對不斷變化的數據集遞增地進行索引的能力,索引速度和/或效率可以是重要的考慮。一些動態的基于塊的數據存儲可以不斷地接收并并入新的記錄,在一些情況下每秒可達數百萬甚至數十億次。正因為如此,可以期望針對基于塊的數據存儲的高效遞增索引技術。
【附圖說明】
[0004]圖1示出了裝置的一個實施例和第一系統的一個實施例。
[0005]圖2示出了索引塊的一個實施例。
[0006]圖3示出了并行索引架構的一個實施例。
[0007]圖4示出了邏輯流程的一個實施例。
[0008]圖5示出了存儲介質的一個實施例。
[0009]圖6示出了第二系統的一個實施例。
[0010]圖7示出了第三系統的一個實施例。
[0011]圖8示出了設備的一個實施例。
【具體實施方式】
[0012]各種實施例可以概括地指向針對基于塊的索引的技術。例如,在一個實施例中,裝置可以包括多核處理器元件、用于由多核處理器元件執行以生成多個塊-屬性對的分配組件(每個塊-屬性對都與屬性值和多個數據塊中的一個數據塊相對應)、以及用于由多核處理器元件執行以基于多個塊-屬性對而生成針對多個數據塊的索引塊的索引組件,該索引組件使用多個索引實例來執行多個塊-屬性對的并行索引。可以描述并要求保護其他實施例。
[0013]各種實施例可以包括一個或多個元件。元件可以包括被設置以執行某些操作的任何結構。每個元件都可以根據針對設計參數或性能約束的給定的集合所需要的而被實現為硬件、軟件及其任何組合。盡管作為示例,實施例可以被描述為在某一拓撲結構中具有有限數量的元件,但是實施例可以根據針對給定的實現所需要的而在替代的拓撲結構中包括更多或更少的元件。值得注意的是,任何對“一個實施例”或“實施例”的引用意指結合該實施例所描述的特定的特征、結構、或特性被包括在至少一個實施例中。在說明書中的各種地方出現的短語“在一個實施例中”、“在一些實施例中”、以及“在各種實施例中”非必須全都指的是相同的實施例。
[0014]圖1示出了裝置100的框圖。裝置100包括可以實現針對基于塊的數據存儲的經改進的索引技術的裝置的示例。更加特別地,在各種實施例中,裝置100可以用于實現基于塊的索引技術,根據該技術,多個處理核心并行地運行以高效地構建針對基于塊的數據存儲的索引塊。如在圖1中所示,裝置100包括多個元件,所述多個元件包括處理器元件102、存儲器單元104、以及索引管理模塊106。然而,實施例不限于在該圖中所示出的元件的類型、數量、或設置。
[0015]在一些實施例中,裝置100可以包括處理器元件102。處理器元件102可以使用能夠實現任務級并行性的任何處理器或邏輯設備而被實現。在各種這樣的實施例中,處理器元件102可以包括多核處理器芯片或者其中包括多個處理核心的其它封裝。在一些實施例中,處理器元件102可以包括高速緩存103。在各種實施例中,高速緩存103可以包括用于存儲由處理器元件102生成和/或用于由處理器元件102處理的數據的易失性存儲器。在處理器元件102包括多個處理核心的一些實施例中,高速緩存103中的一些或全部可以由多個處理核心中的每個進行訪問。在各種其它實施中,高速緩存103的每個部分都可以僅由多個處理核心中的特定的一個來訪問。實施例不限于該上下文中。
[0016]在一些實施例中,裝置100可以包括或被設置以通信地與存儲器單元104耦合。可以使用能夠存儲數據的任何機器可讀或計算機可讀的介質來實現存儲器單元104,所述機器可讀或計算機可讀的介質可以包括易失性存儲器和非易失性存儲器兩者。例如,存儲器單元104可以包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、動態RAM(DRAM)、雙數據率DRAM(DDRAM)、同步DRAM(SDRAM)、靜態RAM( SRAM)、可編程ROM(EEPROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、閃速存儲器、例如鐵電聚合物存儲器的氧化物存儲器、奧氏存儲器、相變或鐵電存儲器、硅氧化氮氧化硅(S0N0S)存儲器、磁或光卡、或者適用于存儲信息的任何其它類型的介質。值得注意的是,存儲器單元104的一些部分或全部可以與處理器元件102包括在相同的集成電路上,或者可替代地,存儲器單元104的一些部分或者全部可以被設置在集成電路或者在處理器元件102的集成電路外部的其它介質上,例如,硬盤驅動器上。盡管存儲器單元104被包括在圖1的裝置100內,但是在一些實施例中存儲器單元104可以在裝置100外部。實施例不限于該上下文中。
[0017]在各種實施例中,裝置100可以包括索引管理模塊106。索引管理模塊106可以包括用于執行針對基于塊的數據存儲152的索引操作的邏輯、電路、和/或指令。在一些實施例中,索引管理模塊106可以用于實現一個或多個基于塊的索引技術。在各種實施例中,索引管理模塊106可以用于以利用處理器元件102的并行處理能力的方式來實現一個或多個這樣的技術。實施例不限于該上下文中。
[0018]圖1還示出了系統140的框圖。系統140可以包括前述的裝置100的元件中的任何一個。系統140還可以包括一個或多個額外的組件。例如在一些實施例中,系統140可以包括存儲142。存儲142可以被實現為一個或多個非易失性存儲設備和/或易失性存儲設備。例如在一些實施例中,存儲142可以包括一個或多個硬盤。可以被包括在存儲142中的存儲設備的額外的示例可以包括而不限于:例如數字視頻盤(DVD)的光存儲介質、例如軟盤的可移動磁存儲介質、磁帶存儲介質、閃速存儲器、和/或磁-光存儲介質。可以被包括在存儲142中的存儲設備的進一步的示例可以包括但不限于:易失性存儲器設備,例如,RAM、DRAM、SRAM、和/或SDRAM、和/或在上文中關于存儲器單元104所提及的其它示例中的任何一個。在一些實施例中,系統140可以包括服務器,并且存儲142可以包括該服務器的主存儲器。實施例不限于該上下文中。
[0019]在各種實施例中,系統140可以包括射頻(RF)收發機144AF收發機144可以包括能夠使用各種合適的無線通信技術來發送和接收信號的一個或多個無線電設備。這樣的技術可以涉及跨一個或多個無線網絡的通信。示例性無線網絡包括(但不限于)無線局域網(WLAN)、無線個域網(WPAN)、無線城域網(WMAN)、蜂窩網絡、以及衛星網絡。在跨這樣的網絡進行通信時,RF收發機144可以根據任何版本中的一個或多個適用標準來操作。實施例不限于該上下文中。
[0020]在一些實施例中,系統140可以包括一個或多個RF天線157。任何特定的RF天線157的示例可以包括內置天線、全方向天線、單極天線、雙極天線、端饋天線、圓極化天線、微帶天線、分集天線、雙天線、三頻天線、四頻天線等。實施例不限于這些示例。
[0021]在各種實施例中,系統140可以包括顯示器145。顯示器145可以包括能夠顯示從處理器元件102中所接收到的信息的任何顯示設備。顯示器145的示例可以包括電視、監視器、投影儀、以及計算機屏幕。例如在一個實施例中,顯示器145可以由液晶顯示器(LCD)、發光二極管(LED)、或其它類型的合適的視覺接口來實現。例如,顯示器145可以包括觸摸顯示屏(“觸摸屏”)。在各種實施例中,顯示器145可以包括一個或多個薄膜晶體管(TFT)LCD,該薄膜晶體管LCD包括嵌入式晶體管。實施例不限于該上下文中。
[0022]在一般的操作中,裝置100和/或系統140可以用于執行基于塊的數據存儲152的索弓I。更加具體而言,在各種實施例中,裝置100和/或系統140可以用于實現針對基于塊的數據存儲152的基于塊的索引技術。在一些實施例中,這樣的技術可以結合基于塊的數據存儲152的高效遞增索引來利用處理器元件102的并行處理能力。實施例不限于該上下文中。
[0023]在各種實施例中,裝置100和/或系統140可以與共同地容納基于塊的數據存儲152的一個或多個服務器150進行通信。例如在一些實施例中,基于塊的數據存儲152可以包括在多個數據服務器150上所容納的分布式數據存儲,并且裝置100和/或系統140可以經由一個或多個有線和/或無線網絡連接與多個數據服務器150進行通信。在各種實施例中,基于塊的數據存儲152可以包括多個數據塊154,其中每個數據塊154都可以包括多個值、屬性、和/或其它信息元素。實施例不限于該上下文中。
[0024]在一些實施例中,裝置100和/或系統140可以用于實現基于塊的索引技術,根據該技術可以生成一個或多個索引塊120。在各種實施例中,每個索引塊120都可以包括針對一個或多個數據塊154的索引信息。在一些實施例中,每個索引塊120都可以便于對其相關聯的數據塊154的查詢。實施例不限于該上下文中。
[0025]在各種實施例中,索引管理模塊106可以包括追蹤組件108。追蹤組件108可以包括用于保存關于基于塊的數據存儲152的一個或多個類型的描述性信息的邏輯、電路、和/或指令。在一些實施例中,追蹤組件108可以用于保存數據塊信息110。數據塊信息110可以包括標識和/或描述基于塊的數據存儲152中的數據塊154的信息。例如在各種實施例中,數據塊信息110可以包括指示基于塊的數據存儲152中的每個數據塊154的標識符的信息。在一些實施例中,每個數據塊154可以根據針對數據塊154所定義的序列而具有相關聯的數據塊號碼,并且數據塊信息110可以包括指示每個數據塊154的數據塊號碼的信息。在各種實施例中,數據塊154的標識符和/或數據塊號碼可以包括全局參數,使得每個標識符和/或數據塊號碼都是跨所有數據服務器150的所有數據塊154唯一的。在一些實施例中,裝置100和/或系統140每次接收數據塊154以進行索引,追蹤組件110都可以用于向數據塊信息110中插入指示針對數據塊154的標識符和/或數據塊號碼的條目。實施例不限于該上下文中。
[0026]在各種實施例中,追蹤組件108可以用于保存屬性值信息112。屬性值信息112可以包括標識和/或描述各種屬性值的信息,所述各種屬性值可以被包括在一個或多個數據塊154中和/或與一個或多個數據塊154相關聯。這樣的屬性值的示例可以包括但不限于:名字、年齡、性別、地址、電話號碼、和/或位置。在一些實施例中,屬性值信息112可以包括指示針對與基于塊的數據存儲152中的任何一個數據塊154相關聯的每個不同的屬性值的標識符。在各種實施例中,每個不同的屬性值都可以根據屬性值的經限定的序列而具有相關聯的屬性值號碼,并且屬性值信息112可以包括指示針對每個不同的屬性值的屬性值號碼的信息。在一些實施例中,屬性值標識符和/或屬性值號碼可以包括全局參數,使得每個屬性值標識符和/或屬性值號碼都是跨與所有數據服務器150的所有數據塊154相關聯的所有不同的屬性值唯一的。在各種實施例中,裝置100和/或系統140每次接收數據塊154以進行索弓丨,追蹤組件108都可以用于確定數據塊154是否包括任何還沒有在屬性值信息112內被呈現的屬性值。在一些實施例中,當確定數據塊154包括一個或多個還沒有在屬性值信息112內被呈現的屬性值時,追蹤組件108可以用于將一個或多個條目插入屬性值信息112中,所述一個或多個條目指示針對那些一個或多個屬性值的相應的標識符和/或屬性值。實施例不限于該上下文中。
[0027]在各種實施例中,索引管理模塊106可以包括分配組件114。分配組件114可以包括用于生成針對數據塊154的塊-屬性對116的邏輯、電路、和/或指令。塊-屬性對116可以包括指示特定的屬性值與特定的數據塊154之間的關聯的信息元素。在一些實施例中,每個塊-屬性對116都可以標識特定的數據塊154以及與該數據塊154相關聯的屬性值。在各種實施例中,每個塊-屬性對116都可以包括針對數據塊154的數據塊號碼以及針對與該數據塊154相關聯的屬性值的屬性值號碼。在一些實施例中,分配組件114可以用于使用數據塊信息110和屬性值信息112來生成塊-屬性對116。在各種實施例中,分配組件114可以用于在生成針對那些數據塊154的塊-屬性對116之前將數據塊號碼分配至數據塊154。例如在一些實施例中,分配組件114可以用于接收多個數據塊154、將數據塊號碼分配至多個數據塊154中的每個、并且生成針對多個數據塊154的多個塊-屬性對116,并且多個塊-屬性對116中的每個都可以對應于屬性值以及多個數據塊154中的一個數據塊。在各種實施例中,分配組件114可以用于建立多個分配實例,并且可以使用多個分配實例來執行多個塊-屬性對116的并行生成。在一些實施例中,分配組件114可以用于在處理器元件102的多個處理核心中的相應的一個上建立每個分配實例。實施例不限于該上下文中。
[0028]在各種實施例中,索引管理模塊106可以包括索引組件118。索引組件118可以包括用于生成一個或多個索引塊120的邏輯、電路、和/或指令。在一些實施例中,每個索引塊120都可以包括針對相應的多個數據塊154的索引信息。在各種實施例中,每個索引塊120可以包括末尾屬性值標識符(ID)122。末尾屬性值ID 122可以包括標識在創建索引塊120時被包括在屬性值信息112中的最高的屬性值號碼的信息。在一些實施例中,每個索引塊120都可以包括第一數據塊ID 124。第一數據塊ID 124可以包括標識在索引塊120中所索引的第一數據塊154的數據塊號碼的信息。在各種實施例中,每個索引塊120都可以包括末尾數據塊ID 126。末尾數據塊ID126可以包括標識在索引塊120中所索引的末尾數據塊154的數據塊號碼的信息。實施例不限于該上下文。
[0029]在一些實施例中,每個索引塊120都可以包括位圖索引塊(BIB),其包含描述了在該索引塊120中所索引的多個數據塊154的經分割的位圖索引128。在各種實施例中,經分割的位圖索引128可以包括針對多個屬性值中的每個指示多個數據塊154中的每個是否包括和/或是否關聯于該屬性值的信息。在一些實施例中,多個屬性值可以由末尾屬性值ID 122來定義。例如在各種實施例中,多個屬性值可以包括屬性值信息112中的包括小于或等于末尾屬性值ID 122的屬性值號碼的每個屬性值。在一些實施例中,多個數據塊154可以由第一數據塊ID 124和末尾數據塊ID 126來定義。例如在各種實施例中,多個數據塊154可以包括數據塊信息110標識為具有在第一數據塊ID 124和末尾數據塊ID 126之間(包括第一數據塊ID 124和末尾數據塊ID 126)的數據塊號碼的每個數據塊154。實施例不限于該上下文中。
[0030]在一些實施例中,經分割的位圖索引128可以包括其中一個維度對應于多個數據塊154而另一個維度對應于多個屬性值的數據結構。例如在各種實施例中,經分割的位圖索弓1128可以包括針對多個屬性值中的每個的行,并且可以包括針對多個數據塊154中的每個的列。在一些實施例中,經分割的位圖索引128中的每個元素都可以對應于特定的屬性值號碼和特定的數據塊號碼。在各種這樣的實施例中,每個元素都可以指示由其對應的數據塊號碼所標識的數據塊154是否包括和/或關聯于由其對應的屬性值號碼所標識的屬性值。例如在一些實施例中,經分割的位圖索引128中的每一行都可以定義屬性值而每一列都可以定義數據塊154,并且每個元素都可以包括指示由其列定義的數據塊154是否包括和/或關聯于由其行所定義的屬性值的位。實施例不限于該示例。
[0031]在各種實施例中,分配組件114可以用于生成針對多個數據塊154的多個塊-屬性對116,并且索引組件118可以用于使用該多個塊-屬性對116來生成針對多個數據塊154的經分割的位圖索引128。在一些實施例中,每個塊-屬性對116都可以指示特定的數據塊154包括和/或關聯于特定的屬性值,并且索引組件118可以用于設置經分割的位圖索引128的元素的值以反映該關系。在各種實施例中,索引組件118可以用于執行多個塊-屬性對116的并行索引。例如在一些實施例中,索引組件118可以用于建立多個索引實例,并且可以執行并行索引,根據該并行索引,使用多個索引實例將多個塊-屬性對116同時索引。在各種實施例中,索引組件118可以用于在處理元件102的多個處理核心的相應的一個上建立每個索引實例。實施例不限于該上下文中。
[0032]在一些實施例中,索引組件118可以用于使用多個索引隊列130來執行并行索引。在各種實施例中,可以將多個索引隊列包括在高速緩存103中。在一些實施例中,索引組件118可以用于針對其建立的每個索引實例來建立單獨的索引隊列130。由此,在各種實施例中,索引隊列130的數量可以等于由索引組件118所使用的索引實例的數量。在一些實施例中,每個索引實例都可以用于僅僅處理被包括在其對應的索引隊列130中的塊-屬性對116。在各種實施例中,索引組件118可以用于將每個塊-屬性對116置于多個索引隊列130中的一個中。在一些實施例中,索引組件118可以用于基于被包括在塊-屬性對116中的屬性值號碼來將每個塊-屬性對116置于索引隊列130中。
[0033]在各種實施例中,索引組件118可以用于基于映射功能來確定針對每個屬性值號碼的對應的索引隊列130。在一些實施例中,對于每個屬性值號碼,映射功能可以指定單個對應的索引隊列130,使得每個屬性值號碼映射至一個并且僅映射至一個索引隊列130。在各種實施例中,映射功能可以包括執行模運算以及基于結果來分配索引隊列130,其中模運算的每個可能的結果都對應于索引隊列130中的相應的一個。例如,在一些實施例中,為了確定將特定的塊-屬性對116置于其中的索引隊列130,索引組件118可以用于用該塊-屬性對116的屬性值號碼除以索引隊列130的號碼,并且將塊-屬性對116分配至對應于所得到的余數的索引隊列130。實施例不限于該示例。
[0034]在各種實施例中,在正在進行的索引操作期間,每個索引實例都可以用于從其對應的索引隊列130中取回塊-屬性對116,并且基于那些塊-屬性對116來更新經分割的位圖索引128。在一些實施例中,由于每個屬性值號碼都映射至特定的索引隊列130并且每個索引隊列130都由特定的索引實例來處理,因此包括特定的屬性值號碼的每個塊-屬性對116都可以由同一索引實例來處理。在各種這樣的實施例中,經分割的位圖索引128中的每一行都可以對應于特定的屬性值號碼,并且每一行都可以因此由特定的索引實例來處理。與一些實施例相關聯的一個優點可以是通過以將經分割的位圖索引128中的每一行由特定的索引實例來處理的方式將塊-屬性對116映射至索引隊列130,可以避免和/或降低索引實例之間的高速緩存行沖突和/或冗余的高速緩存操作,并且可以提高性能。其它優點可以關聯于各種實施例,并且實施例不限于該上下文中。
[0035]在一些實施例中,每個時間索引組件118都生成索引塊120,追蹤組件108可以用于將索引塊標識符和/或索引塊號碼分配至該索引塊120。在各種實施例中,追蹤組件108可以用于保存標識已經由索引組件118所生成的索引塊120的索引塊信息132。在一些實施例中,每個時間索引組件118都生成索引塊120,追蹤組件108可以用于向索引塊信息132加入標識該索引塊120并且包括針對該索引塊120的索引塊標識符以及索引塊號碼的條目。在各種實施例中,每個索引塊標識符都可以包括唯一的索引塊標識符,和/或每個索引塊號碼都可以包括唯一的索引塊號碼。實施例不限于該上下文中。
[0036]在各種實施例中,索引管理模塊106可以包括重新排序組件134。重新排序組件134可以包括用于結合索引143中的索引塊120的存儲來對經分割的位圖索引128進行重新排列的邏輯、電路、和/或指令。在一些實施例中,在任何特定的索引塊120的生成期間,索引組件118可以用于在高速緩存103中存儲針對該索引塊120的經分割的位圖索引128的所生成的部分。在各種實施例中,經分割的位圖索引128的各種部分可以被存儲在高速緩存103的各種非連續的存儲器區域中,并且可以非必須按照順序次序被存儲。在一些實施例中,結合索引塊120到索引143的移動,重新排序組件134可以用于對高速緩存103中的經分割的存儲器位圖索引128的部分進行重新排序,使得這些部分以順序次序被存儲在存儲142的連續的存儲器空間中。與各種實施例相關聯的一個優點可以是,以該方式對經分割的位圖索引128進行重新排序使能夠高效查詢索引143中的各種索引塊120。其它優點可以與一些實施例相關聯,并且實施例不限于該上下文中。
[0037]可以參考以下的示圖和所附示例來進一步描述針對以上的實施例的操作。示圖中的一些可以包括邏輯流程。盡管在本文中所呈現的這樣的示圖可以包括特定的邏輯流程,但可以理解的是,邏輯流程僅僅提供了怎樣實現如在本文中所描述的一般的功能的示例。此外,除非另外指出,否則給定的邏輯流程不是必須要按照所呈現的順序被執行。另外,給定的邏輯流程可以由硬件元件、由處理器所執行的軟件元件、或其任何組合來實現。實施例不限于該上下文中。
[0038]圖2示出了索引塊200的一個實施例。索引塊200包括可以由圖1的裝置100和/或系統140所生成的索引塊的示例,例如索引塊120。如在圖2中所示,索引塊200由索引塊列表202中的條目所標識,索引塊列表202可以包括圖1的索引塊信息132的示例。更加特別地,索弓丨塊200包括在索引塊列表202中被標識為“索引塊3”的索引塊。索引塊200包括指示其關聯的索引塊號碼等于3的第一字段。索引塊200還包括第二字段,該第二字段包括圖1的末尾屬性值ID 122的示例,并且指示與在索引塊200中所反映的末尾屬性值相關聯的屬性值號碼等于4。如在可以包括圖1的屬性值信息112的示例的屬性值列表204中所示,屬性值號碼4與對應于屬性值ID“Atribute_Valuel”的屬性值相關聯。
[0039]索引塊200還包括第三字段,該第三字段包括圖1的第一數據塊ID124的示例并且指示與在索引塊200中所索引的第一數據塊相關聯的數據塊號碼等于I。如在可以包括圖1的數據塊信息110的示例的數據塊列表206中所示,數據塊號碼I與對應于數據塊ID“ServerlJXn”的數據塊相關聯。索引塊200還包括第四字段,該第四字段包括圖1的末尾數據塊ID 126的示例,并且指示與在索引塊200中所索引的末尾數據塊相關聯的數據塊號碼等于3。如在數據塊列表206中所示,數據塊號碼3與對應于數據塊ID“SerVer2_002”的數據塊相關聯。索引塊200還包括經分割的位圖索引,經分割的位圖索引可以包括圖1的經分割的位圖索引128示例。實施例不限于這些示例。
[0040]圖3示出了并行索引架構300的一個實施例。并行索引架構300包括可以由圖1的裝置100和/或系統140來實現的索引架構的示例。如在圖3中所示,并行索引架構300包括分配實例302-1和302-2,例如可以由圖1的分配組件114來建立。分配實例302-1和302-2兩者都生成塊-屬性對并且將所生成的塊-屬性對分布在隊列304-1、304-2和304-3中,所述隊列可以包括圖1的索引隊列130的示例。在各種實施例中,分配實例302-1和302-2可以基于與這些塊-屬性對相關聯的屬性值號碼而將這些塊-屬性對分布在隊列304-1、304-2、和304-3中。例如,分配實例302-1和302-2可以基于對與這些塊-屬性對相關聯的屬性值號碼所執行的模運算的結果來分配這些塊-屬性對。
[0041 ] 隊列304-1、304-2、以及304-3中的塊-屬性對由相應的索引實例306-1、306-2、和306-3來處理,例如,所述索引實例可以是由圖1的索引組件118所建立的。更加特別地,基于它們處理的塊-屬性對,索引實例306-1、306-2、和306-3將信息插入經分割的位圖索引308的不同的行中的元素中,經分割的位圖索引308可以包括圖1的經分割的位圖索引128的示例。經分割的位圖索引308中的每一行對應于特定的屬性值號碼,并且每一列都對應于特定的數據塊號碼。因為塊-屬性對基于其相關聯的屬性值號碼而被映射至隊列304-1、304-2、以及304-3,并且索引實例306-1、306-2、和306-3中的每個都處理來自隊列304-1、304-2、以及304-3中的特定的一個的塊-屬性對,所以經分割的位圖索引308中的每一行都專門地由索引實例306-1、306-2、和306-3中的特定的一個來處理。在圖3的示例中,索引實例306-1將信息插入經分割的位圖索引308的第一行和第四行中,索引實例306-2將信息插入經分割的位圖索引308的第二行和第五行中,并且索引實例306-3將信息插入經分割的位圖索引308的第三行和第六行中。實施例不限于該示例。
[0042]應當理解的是,盡管經分割的位圖索引308被構建以使得行對應于屬性值號碼而列對應于數據塊號碼,但是實施例不限于該示例實施例。在一些實施例中,經分割的位圖索引可以被構建以使得行對應于數據塊號碼而列對應于屬性值號碼。此外應當理解的是,術語“行”和“列”僅僅是可以用于指代數據結構(例如,經分割的位圖索引308)的不同的維度的命名的示例,并且可以不適用于各種實施例。例如在一些實施例中,經分割的位圖索引可以被構建為包括二維的數據陣列,其中一個陣列維度對應于屬性值號碼而另一個維度對應于數據塊號碼。實施例不限于該上下文中。
[0043]圖4示出了邏輯流程400的一個實施例,其可以代表由在本文中所描述的一個或多個實施例所執行的操作。如在邏輯流程400中所示,可以在402處生成多個塊-屬性對。例如,圖1的分配組件114可以用于生成多個塊-屬性對116,其中每個都對應于屬性值和多個數據塊154中的一個數據塊。在404處,每個塊-屬性對都可以基于該塊-屬性對中的屬性值號碼而被置于多個隊列中的一個中。例如,圖1的分配組件114可以用于基于被包括在塊-屬性對116中的屬性值號碼而將多個塊-屬性對116中的每個都置于多個索引隊列130中的一個中。在406處,可以通過使用對應于多個隊列的多個索引實例來對多個塊-屬性對進行索引而生成索引塊。例如,圖1的索引組件118可以用于建立多個索引實例并且使用多個索引實例來索引多個塊-屬性對,并且多個索引實例中的每個都可以對來自多個索引隊列130中的相應的一個的索引塊-屬性對116進行索引。實施例不限于這些示例。
[0044]圖5示出了存儲介質500的實施例。存儲介質500可以包括任何非瞬時性計算機可讀存儲介質或者機器可讀存儲介質,例如,光、磁、或半導體存儲介質。在各種實施例中,存儲介質500可以包括制品。在一些實施例中,存儲介質500可以存儲計算機可執行指令,例如,用于實現圖4的邏輯流程400的計算機可執行指令。計算機可讀存儲介質或機器可讀存儲介質的示例可以包括能夠存儲電子數據的任何有形的介質,包括易失性存儲器或非易失性存儲器、可移動或不可移動存儲器、可擦除或不可擦除存儲器、可寫或可重寫存儲器等。計算機可執行指令的示例可以包括任何合適的類型的代碼,例如源代碼、經編譯的代碼、經解釋的代碼、可執行代碼、靜態代碼、動態代碼、面向對象的代碼、可視代碼等。實施例不限于該上下文中。
[0045]圖6不出了系統600的一個實施例。在各種實施例中,系統600可以代表適合于與在本文中所描述的一個或多個實施例一起使用的系統或架構,例如,圖1的裝置100和/或系統140、圖3的并行索引架構300、圖4的邏輯流程400、和/或圖5的存儲介質500。實施例不限于該方面。
[0046]如在圖6中所示,圖6的系統包括多個元件。可以針對給定的一組設計或性能約束所需要的而使用一個或多個電路、組件、寄存器、處理器、軟件子例程、模塊、或其組合來實現一個或多個元件。盡管圖6作為示例以某個拓撲結構示出了有限數量的元件,但應當理解的是可以針對給定的實現所需要的而在系統600中以任何合適的拓撲結構使用更多或更少的元件。實施例不限于該上下文中。
[0047]在各種實施例中,系統600可以包括處理器元件602。處理器元件602可以使用任何處理器或邏輯設備來實現,并且可以相同或相似于圖1的處理器元件102。
[0048]在一個實施例中,系統600可以包括存儲器單元604以耦合至處理器元件602。針對給定的實現所需要的,存儲器單元604可以經由通信總線643,或者通過處理器元件602與存儲器單元604之間的專用通信總線來耦合至處理器元件602。存儲器單元604可以使用能夠存儲數據的任何機器可讀或計算機可讀的介質(包括易失性存儲器和非易失性存儲器兩者)而被實現,并且可以相同或相似于圖1的存儲器單元104。在一些實施例中,機器可讀或計算機可讀的介質可以包括非瞬時性介質。實施例不限于該上下文中。
[0049]在各種實施例中,系統600可以包括RF收發機644AF收發機644可以包括能夠使用各種合適的無線通信技術來發送和接收信號一個或多個無線電設備,并且可以相同或相似于圖1的RF收發機144。
[0050]在各種實施例中,系統600可以包括顯示器645。顯示器645可以包括能夠顯示從處理器元件602中所接收到的信息的任何顯示設備,并且可以相同或相似于圖1的顯示器145。實施例不限于該上下文中。
[0051 ]在各種實施例中,系統600可以包括存儲646。存儲646可以被實現為非易失性存儲設備,例如但不限于:磁盤驅動器、光盤驅動器、磁帶驅動器、內置存儲設備、附加存儲設備、閃速存儲器、電池供電的SDRAM(同步DRAM)、和/或網絡可訪問的存儲設備。例如在實施例中,存儲646可以包括用于當多個硬盤驅動器被包括時提高對有價值的數字介質的存儲性能增強的保護的技術。存儲646的進一步的示例可以包括硬盤、軟盤、光盤只讀存儲器(CD-R0M)、可記錄光盤(CD-R)、可重寫光盤(CD-RW)、光盤、磁介質、磁光介質、可移動存儲器卡或盤、各種類型的DVD設備、磁帶設備、盒式磁帶設備等。實施例不限于該上下文中。
[0052]在各種實施例中,系統600可以包括一個或多個I/O適配器647。I/O適配器647的示例可以包括通用串行總線(USB)端口 /適配器、IEEE 1394火線端口 /適配器等。實施例不限于該上下文中。
[0053]圖7示出了系統700的實施例。在各種實施例中,系統700可以代表適合與在本文中所描述的一個或多個實施例一起使用的系統或架構,例如圖1的裝置100和/或系統140、圖3的并行索引架構300、圖4的邏輯流程400、圖5的存儲介質500、和/或圖6的系統600。實施例不限于該方面。
[0054]如在圖7中所示,系統700可以包括多個元件。可以針對給定的一組設計或性能約束所需要的而使用一個或多個電路、組件、寄存器、處理器、軟件子例程、模塊、或其組合來實現一個或多個元件。盡管圖7作為示例以某個拓撲結構示出了有限數量的元件,但應當理解的是可以針對給定的實現所需要的而以任何合適的拓撲結構在系統700中使用更多或更少的元件。實施例不限于該上下文中。
[0055]在實施例中,系統700可以是媒體系統盡管系統700不限于該上下文中。例如,系統700可以被包含在個人計算機(PC)、膝上型計算機、超級膝上型計算機、平板計算機、觸摸板、便攜式計算機、手持計算機、掌上計算機、個人數字助理(PDA)、蜂窩電話、組合蜂窩電話/PDA、電視、智能設備(例如,智能電話、智能平板計算機或智能電視)、移動互聯網設備(MID)、消息傳送設備、數據通信設備等中。
[0056]在實施例中,系統700包括耦合至顯示器745的平臺701。平臺701可以從諸如內容服務設備748、內容傳遞設備749之類的內容設備或其它相似的內容源中接收內容。包括一個或多個導航特征的導航控制器750可以用于與例如平臺701和/或顯示器745進行交互。在下文中更加詳細地描述了這些組件中的每個。
[0057]在實施例中,平臺701可以包括處理器元件702、芯片組703、存儲器單元704、收發機744、存儲746、應用751、和/或圖形子系統752的任何組合。芯片組703可以提供處理器元件702、存儲器單元704、收發機744、存儲746、應用751、和/或圖形子系統752之間的相互通信。例如,芯片組703可以包括能夠提供與存儲746的相互通信的存儲適配器(未繪出)。
[0058]處理器元件702可以使用任何處理器或邏輯設備來實現,并且可以相同或相似于圖6的處理器元件602。
[0059]存儲器單元704可以使用能夠存儲數據的任何機器可讀介質或計算機可讀的介質來實現,并且可以相同或相似于圖6中的存儲器單元604。
[0060]收發機744可以包括能夠使用各種合適的無線通信技術來發送和接收信號的一個或多個無線電設備,并且可以相同或相似于圖6中的收發機644。
[0061]顯示器745可以包括電視類型的監視器或顯示器,并且可以相同或相似于圖6中的顯不器645。
[0062]存儲746可以被實現為非易失性存儲設備,并且可以相同或相似于圖6中的存儲646 ο
[0063]圖形子系統752可以執行諸如靜止的或視頻的圖像的處理以用于顯示。例如,系統752可以是圖形處理單元(GPU)或可視處理單元(VPU)。可以使用模擬接口或數字接口來通信地耦合圖形子系統752和顯示器745。例如,接口可以是高分辨率多媒體接口(HDMI)、顯示端口、無線HDM1、和/或無線HD兼容技術中的任何一個。圖形子系統752可以被集成到處理器元件702或芯片組703中。圖形子系統752可以是通信地耦合至芯片組703的獨立的卡。
[0064]可以以各種硬件架構來實現在本文中所描述的圖形和/或視頻處理技術。例如,圖形和/或視頻功能可以被集成在芯片組內。可替代地,可以使用分立的圖形和/或視頻處理器。作為另一個實施例,圖形和/或視頻功能可以由包括多核處理器的通用處理器來實現。在進一步的實施例中,可以在消費性電子設備中實現所述功能。
[0065]在實施例中,內容服務設備748可以由任何國家、國際和/或獨立服務來托管,并且因此可以由平臺701例如經由互聯網來訪問。內容服務設備748可以耦合至平臺701和/或顯示器745。平臺701和/或內容服務設備748可以耦合至網絡753以將媒體信息傳送至網絡753或者從網絡753中傳送信息(例如,發送和/或接收)。內容傳遞設備749還可以耦合至平臺701和/或顯示器745。
[0066]在實施例中,內容服務設備748可以包括有線電視盒、個人計算機、網絡、電話、支持互聯網的設備或者能夠傳遞數字信息和/或內容的設備或家電、以及(能夠單向地或雙向地在內容提供者與平臺701之間傳送內容,并且在內容提供者與顯示器745之間經由網絡753或直接地傳送內容的其它任何相似的設備。應當理解的是,內容可以經由網絡753單向和/或雙向地被傳送至系統700中的組件和內容提供者中的任何一個或者從中傳送。內容的示例可以包括任何媒體信息,包括例如,視頻、音樂、醫療和游戲信息等。
[0067]內容服務設備748接收例如有限電視節目的內容,該有線電視節目包括媒體信息、數字信息、和/或其它內容。內容提供者的示例可以包括任何有線或衛星電視或廣播、或者互聯網內容提供者。所提供的示例不意味著限制所公開的主題的實施例。
[0068]在實施例中,平臺701可以從具有一個或多個導航特征的導航控制器750中接收控制信號。導航控制器750的導航特征可以用于與例如用戶界面754進行交互。在實施例中,導航控制器750可以是可以作為計算機硬件組件的指向設備,其允許用戶向計算機輸入空間(例如,連續的并且多維的)數據。諸如圖形用戶界面(GUI)、以及電視和監視器之類的許多系統允許用戶使用物理手勢來對計算機或電視進行控制并且向計算機或電視提供數據。
[0069]導航控制器750的導航特征的移動可以由指示器、光標、聚焦環、或在顯示器上所顯示的其它可視指示器來在顯示器(例如,顯示器745)上呼應。例如,在軟件應用751的控制下,位于導航控制器上的導航特征可以被映射至在用戶界面754上所顯示的虛擬導航特征。在實施例中,導航控制器750可以不是單獨的組件而是被集成到平臺701和/或顯示器745中的組件。然而,實施例不限于在本文中所示出或描述的元件或上下文。
[0070]在實施例中,例如當被啟用時,驅動程序(未示出)可以包括使用戶能夠在系統初始化后,通過觸摸按鈕可以即時開啟和關閉平臺702(像開啟和關閉電視一樣)的技術。當平臺被“關閉”時,程序邏輯可以允許平臺701將內容流式傳輸至媒體適配器或其它內容服務設備748或者內容傳遞設備749。此外,芯片組703可以包括支持例如5.1環繞聲音頻和/或高分辨率7.1環繞聲音頻的硬件和/或軟件。驅動器可以包括針對集成的圖形平臺的圖形驅動器。在實施例中,圖形驅動器可以包括外圍組件互連(PCI)快速圖形卡。
[0071]在各種實施例中,可以集成在系統700中所示出的組件中的任何一個或多個。例如,可以集成平臺701和內容服務設備748,或者可以集成平臺701和內容傳遞設備749,或者例如可以集成平臺701、內容服務設備748以及內容傳遞設備749。在各種實施例中,平臺701和顯示器745可以是集成的單元。例如,可以集成顯示器745和內容服務設備748,或者可以集成顯示器745和內容傳遞設備749。這些示例不意味著限制所公開的主題。
[0072]在各種實施例中,系統700可以被實現為無線系統、有線系統、或兩者的組合。當被實現為無線系統時,系統700可以包括適用于通過無線共享的介質進行通信的組件和接口,例如,一個或多個天線、發射機、接收機、收發機、放大器、濾波器、控制邏輯等。無線共享的介質的示例可以包括部分無線頻譜,例如,RF頻譜等。當被實現為有線系統時,系統700可以包括適用于通過有線通信介質進行通信的組件和接口,例如,I/O適配器、用于連接I/O適配器與對應的有線通信介質的物理連接器、網絡接口卡(NIC)、盤控制器、視頻控制器、音頻控制器等。有線通信介質的示例可以包括電線、電纜、金屬導線、印刷電路板(PCB)、背板、交換結構、半導體材料、雙絞線、同軸電纜、光纖等。
[0073]平臺701可以建立一個或多個邏輯或物理信道以傳送信息。信息可以包括媒體信息和控制信息。媒體信息可以指的是針對用戶的內容的的任何數據。內容的示例可以包括例如,來自語音對話的數據、視頻會議、流視頻、電子郵件(“email”)消息、語音郵件消息、字母數字符號、圖形、圖像、視頻、文本等。來自語音對話的數據可以是例如話語信息、沉默周期、背景噪聲、舒適噪聲、聲調等。控制信息可以指表示命令、指令、或用于自動化系統的控制詞的任何數據。例如,控制信息可以用于通過系統來路由媒體信息,或者指導節點以預先確定的方式來處理媒體信息。然而,實施例不限于在圖7中所示出或描述的元件或上下文。
[0074]如在上文中所描述的,系統700可以以不同的物理類型或形式因素來實施。圖8示出了其中可以實施系統700的小的形式因素設備800的實施例。例如在實施例中,設備800可以被實現為具有無線能力的移動計算設備。移動計算設備可以指的是具有處理系統和諸如一個或多個電池的移動電源或供應的任何設備。
[0075]如在上文中所描述的,移動計算設備的示例可以包括個人計算機(PC)、膝上型計算機、超級膝上型計算機、平板計算機、觸摸板、便攜式計算機、手持計算機、掌上計算機、個人數字助理(PDA)、蜂窩電話、組合蜂窩電話/PDA、電視、智能設備(例如,智能電話、智能平板計算機或智能電視)、移動互聯網設備(MID)、消息傳送設備、數據通信設備等。
[0076]移動計算設備的示例還可以包括被設置以由人穿戴的計算機,例如,手腕計算機、手指計算機、戒指計算機、眼鏡計算機、皮帶夾計算機、臂帶計算機、鞋式計算機、服裝計算機、以及其它可穿戴計算機。例如在實施例中,移動計算設備可以被實現為能夠執行計算機應用、以及語音通信和/或數據通信的智能電話。盡管可以利用作為示例被實現為智能電話的移動計算設備來描述一些實施例,但應當理解的是,同樣可以使用其它無線移動計算設備來實現其它的實施例。
[0077]如在圖8中所示,設備800可以包括顯示器845、導航控制器850、用戶界面854、外殼855、I/O設備856、以及天線857。顯示器845可以包括用于顯示適用于移動計算設備的信息的任何合適的顯示器單元,并且可以相同或相似于圖7中的顯示器745。導航控制器850可以包括可以用于與用戶界面854進行交互的一個或多個導航特征,并且可以相同或相似于圖7中的導航控制器750。1/0設備856可以包括用于將信息輸入到移動計算設備中的任何合適的I/O設備。I/O設備856的示例可以包括字母數字鍵盤、數字小鍵盤、觸摸板、按鈕、開關、搖臂開關、麥克風、揚聲器、語音識別設備和軟件等。還可以通過麥克風將信息輸入到設備800中。這樣的信息可以由語音識別設備進行數字化。實施例不限于該上下文中。
[0078]可以使用硬件元件、軟件元件、或兩者的組合來實現各種實施例。硬件元件的示例可以包括處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、電感器等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數字信號處理器(DSP)、現場可編程門陣列(FPGA)、邏輯門、寄存器、半導體設備、芯片、微芯片、芯片組等。軟件的示例可以包括軟件組件、程序、應用、計算機程序、應用程序、系統程序、機器程序、操作系統軟件、中間件、固件、軟件模塊、例程、子例程、功能、方法、步驟、軟件接口、應用程序接口(API)、指令集、計算代碼、計算機代碼、代碼段、計算機代碼段、詞語、值、符號、或任何其組合。確定是否使用硬件元件和/或軟件元件來實現實施例可以根據以下任意數量的因素而變化,例如期望的計算速率、功率等級、熱耐受性、處理周期預算、輸入數據速率、輸出數據速率、存儲器資源、數據總線速度、以及其它設計或性能約束。
[0079]至少一個實施例的一個或多個方面可以由存儲在機器可讀的介質上的代表性指令來實現,所述指令表示處理器內的各種邏輯,當該介質由機器讀取時使得機器制造邏輯來執行在本文中所描述的技術。被稱為“I P核心”的這樣的代表可以被存儲在有形的、機器可讀的介質上,并且被提供至各種客戶和生產設施以載入到實際上制造邏輯或處理器的制造機器中。例如,可以使用可以存儲指令或指令集的機器可讀的介質或制品來實現一些實施例,其中所述指令或指令集如果由機器執行,可以使得機器執行根據實施例的方法和/或操作。這樣的機器可以包括例如任何合適的處理平臺、計算平臺、計算設備、處理設備、計算系統、處理系統、計算機、處理器等,并且可以使用硬件和/或軟件的任何合適的組合來實現。機器可讀的介質或制品可以包括例如任何合適的類型的存儲器單元、存儲器設備、存儲器制品、存儲器介質、存儲設備、存儲制品、存儲介質和/或存儲單元,所述存儲介質和/或存儲單元例如存儲器、可移動或不可移動介質、可擦除或不可擦除介質、可寫或可重寫介質、數字或模擬介質、硬盤、軟盤、光盤只讀存儲器(CD-ROM)、可記錄光盤(CD-R)、可重寫光盤(⑶-RW)、光盤、磁介質、磁光介質、可移動存儲器卡或盤、各種類型的數字通用盤(DVD)JM帶、盒式磁帶等。指令可以包括使用合適的高級、低級、面向對象的、可視的、經編譯的和/或經解釋的編程語言所實現的任何合適的類型的代碼,例如源代碼、經編譯的代碼、經解釋的代碼、可執行代碼、靜態代碼、動態代碼、加密的代碼等。
[0080]以下的示例是關于進一步的實施例的:
[0081]圖1是數據索引裝置,包括:多核處理器元件;用于由多核處理器元件執行以生成多個塊-屬性對的分配組件,其中每個塊-屬性對都對應于屬性值和多個數據塊中的一個;以及用于由多核處理器元件執行以基于多個塊-屬性對而生成針對多個數據塊的索引塊的索引組件,其中索引組件是用于使用多個索引實例來執行多個塊-屬性對的并行索引的。
[0082]在示例2中,示例I的每個塊-屬性對都可以可選地包括數據塊號碼和屬性值號碼。
[0083]在示例3中,示例I到示例2中的任何一個的索引組件可以可選地用于由多核處理器元件執行以將每個塊-屬性對置于多個隊列中的一個中。
[0084]在示例4中,圖3的每個塊-屬性對都可以可選地包括屬性值號碼,并且索引組件可以可選地用于由多核處理器元件執行,以基于被包括在該塊-屬性對中的屬性值號碼而將每個塊-屬性對置于多個隊列中的一個中。
[0085]在示例5中,示例3到示例4中的任何一個的多個索引實例中的每個都可以可選地從多個隊列中的相應的一個中索引塊-屬性對。
[0086]在示例6中,示例I到示例5中的任何一個的分配組件都可以可選地用于由多核處理器元件執行以建立多個分配實例,并且使用該多個分配實例來執行多個塊-屬性對的并行生成。
[0087]在示例7中,示例6的分配組件可以可選地用于由多核處理器元件執行以將多個分配實例中的每個建立在多核處理器元件的多個處理核心中的相應的一個上。
[0088]在示例8中,示例I到示例7中的任何一個的分配組件都可以可選地由多核處理器元件執行以將相應的數據塊號碼分配至多個數據塊中的每個。
[0089]在示例9中,示例I到示例8中的任何一個的索引塊都可以可選地包括經分割的位圖索引。
[0090]在示例10中,示例9的多核處理器元件可以可選地包括高速緩存,并且索引組件可以可選地用于由多核處理器元件執行以將經分割的位圖索引的部分存儲在高速緩存中。
[0091]在示例11中,示例10的數據索引裝置可以可選地包括重新排序組件以用于由多核處理器元件執行,使得針對存儲設備的連續的存儲器單元中的順序存儲將經分割的位圖索引進行重新排序。
[0092]在示例12中,示例I到11中任何一個數據索引裝置可以可選地包括追蹤組件以用于由多核處理器元件執行以保存描述多個數據塊的數據塊信息。
[0093]在示例13中,示例12的數據塊信息可以可選地包括針對多個數據塊中的每個的相應的唯一的數據塊標識符。
[0094]在示例14中,示例12到示例13中的任何一個的數據塊信息可以可選地包括針對多個數據塊中的每個的相應的唯一的數據塊號碼。
[0095]在示例15中,示例12到示例14中的任何一個追蹤組件都可以可選地用于由多核處理器元件執行以保存描述多個屬性值的屬性值信息,并且每個塊-屬性對都可以可選地對應于多個屬性值中的一個。
[0096]在示例16中,示例15的屬性值信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值標識符。
[0097]在示例17中,示例15到示例16中的任何一個的屬性值信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值號碼。
[0098]在示例18中,示例12到示例17中的任何一個的追蹤組件可以可選地用于由多核處理器元件執行以保存標識了已經由索引組件所生成的多個索引塊的索引塊信息。
[0099]在示例19中,示例18的索引塊信息可以可選地包括針對多個索引塊中的每個的相應的唯一的索引塊標識符。
[0100]在示例20中,示例18到示例19中的任何一個的索引塊信息可以可選地包括針對多個索引塊中的每個的相應的唯一的索引塊號碼。
[Ο?Ο? ] 示例21是系統,包括:根據示例I到示例20中的任何一個的裝置;顯示器;射頻(RF)收發機;以及一個或多個RF天線。
[0102]示例22是數據索引方法,包括:基于多個數據塊,由多核處理器元件生成多個塊-屬性對;基于塊-屬性對中的屬性值號碼來將多個塊-屬性對中的每個都置于多個隊列中的一個中;以及通過使用多個索引實例來對多個塊-屬性對進行索引而生成針對多個數據塊的索引塊。
[0103]在示例23中,示例22的索引塊可以可選地包括經分割的位圖索引。
[0104]在示例24中,示例22到示例23中的任何一個的數據索引方法可以可選地包括使用多個索引實例并行地索引多個塊-屬性對。
[0105]在示例25中,示例22到示例24中的任何一個的數據索引方法可以可選地包括:對每個塊-屬性對中的屬性值號碼執行模運算;以及基于針對塊-屬性對中的屬性值號碼的模運算的結果,將每個塊-屬性對分配至多個隊列中的一個中。
[0106]在示例26中,示例22到示例25中的任何一個的多個索引實例中的每個都可以可選地對應于多個隊列中的相應的一個。
[0107]在示例27中,示例22到示例26中的任何一個數據索引方法都可以可選地包括將多個索引實例中的每個都建立在多核處理器的不同的相應的處理核心上。
[0108]在示例28中,示例22到示例27中的任何一個數據索引方法都可以可選地包括:建立多個分配實例;以及使用多個分配實例中的一個來將多個塊-屬性對中的一個分配至多個隊列中的一個中。
[0109]在示例29中,示例28的數據索引方法可以可選地包括將多個分配實例中的每個都建立在多核處理器的不同的相應的處理核心上。
[0110]在示例30中,示例22到示例29中的任何一個的每個塊-屬性對都可以可選地包括與多個數據塊中的一個相關聯的數據塊號碼。
[0111]在示例31中,示例22到示例30中的任何一個的數據索引方法都可以可選地包括將相應的數據塊號碼分配至多個數據塊中的每個。
[0112]在示例32中,示例23的數據索引方法可以可選地包括將經分割的位圖索引中的部分存儲在高速緩存中。
[0113]在示例33中,示例32的數據索引方法可以可選地包括針對存儲設備的連續的存儲器單元中的順序存儲而對經分割的位圖索引的部分進行重新排序。
[0114]在示例34中,示例22到示例33中的任何一個的數據索引方法可以可選地包括保存描述了多個數據塊的數據塊信息。
[0115]在示例35中,示例34的數據塊信息可以可選地包括針對多個數據塊中的每個的相應的唯一的數據塊標識符。
[0116]在示例36中,示例34到示例35中的任何一個的數據塊信息可以可選地包括針對多個數據塊中的每個的相應的位移的數據塊號碼。
[0117]在示例37中,示例22到示例36中的任何一個數據索引方法可以可選地包括保存描述了多個屬性值的屬性值信息,并且每個塊-屬性對都可以可選地對應于多個屬性值中的一個。
[0118]在示例38中,示例37的屬性值信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值標識符。
[0119]在示例39中,示例37到示例38中的任何一個的屬性值信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值號碼。
[0120]在示例40中,示例22到示例39中的任何一個的數據索引方法可以可選地包括保存標識了多個索引塊的索引塊信息。
[0121]在示例41中,示例40的索引塊信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值標識符。
[0122]在示例42中,示例40到示例41中的任何一個的索引塊信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值號碼。
[0123]示例43是包括一組數據索引指令的至少一個機器可讀介質,其中響應于所述數據索引指令由計算設備執行,使得計算設備執行根據示例22到42中的任何一個的方法。
[0124]示例44是裝置,包括用于執行根據示例22到示例42中的任何一個的數據索引方法的單元。
[0125]示例45是系統,包括:根據示例44的裝置;顯示器;射頻收發機;以及一個或多個RF天線。
[0126]示例46是包括一組數據索引指令的至少一個機器可讀介質,其中響應于所述數據索引指令由計算設備執行,使得計算設備實現根據示例44或45的裝置或系統。
[0127]示例47是數據索引裝置,包括:用于由多核處理器元件基于多個數據塊來生成多個塊-屬性對的單元;用于基于塊-屬性對中的屬性值號碼來將多個塊-屬性對中的每個都置于多個隊列中的一個中的單元;以及用于通過使用多個索引實例來對多個塊-屬性對進行索引而生成針對多個數據塊的索引塊的單元。
[0128]在示例48中,示例47的索引塊可以可選地包括經分割的位圖索引。
[0129]在示例49中,示例47到示例48中的任何一個的數據索引裝置可以可選地包括用于使用多個索引實例并行地索引多個塊-屬性對的單元。
[0130]在示例50中,示例47到示例49中的任何一個的數據索引裝置可以可選地包括:用于對每個塊-屬性對中的屬性值號碼執行模運算的單元;以及用于基于針對塊-屬性對中的屬性值號碼的模運算的結果,將每個塊-屬性對分配至多個隊列中的一個中的單元。
[0131 ]在示例51中,示例47到示例50中的任何一個的多個索引實例中的每個都可以可選地對應于多個隊列中的相應的一個。
[0132]在示例52中,示例47到示例51中的任何一個數據索引裝置都可以可選地包括用于將多個索引實例中的每個都建立在多核處理器的不同的相應的處理核心上的單元。
[0133]在示例53中,示例47到示例52中的任何一個數據索引裝置都可以可選地包括:用于建立多個分配實例的單元;以及用于使用多個分配實例中的一個來將多個塊-屬性對中的一個分配至多個隊列中的一個中的單元。
[0134]在示例54中,示例53的數據索引裝置可以可選地包括用于將多個分配實例中的每個都建立在多核處理器的不同的相應的處理核心上的單元。
[0135]在示例55中,示例47到示例54中的任何一個的每個塊-屬性對都可以可選地包括與多個數據塊中的一個相關聯的數據塊號碼。
[0136]在示例56中,示例47到示例55中的任何一個的數據索引裝置都可以可選地包括用于將相應的數據塊號碼分配至多個數據塊中的每個的單元。
[0137]在示例57中,示例48的數據索引裝置可以可選地包括用于將經分割的位圖索引中的部分存儲在高速緩存中的單元。
[0138]在示例58中,示例57的數據索引裝置可以可選地包括用于針對存儲設備的連續的存儲器單元中的順序存儲而對經分割的位圖索引的部分進行重新排序的單元。
[0139]在示例59中,示例47到示例58中的任何一個的數據索引方法可以可選地包括用于保存描述了多個數據塊的數據塊信息的單元。
[0140]在示例60中,示例59的數據塊信息可以可選地包括針對多個數據塊中的每個的相應的唯一的數據塊標識符。
[0141 ] 在示例61中,示例59到示例60中的任何一個的數據塊信息可以可選地包括針對多個數據塊中的每個的相應的位移的數據塊號碼。
[0142]在示例62中,示例47到示例61中的任何一個數據索引裝置可以可選地包括用于保存描述了多個屬性值的屬性值信息的單元,并且每個塊-屬性對都可以可選地對應于多個屬性值中的一個。
[0143]在示例63中,示例62的屬性值信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值標識符。
[0144]在示例64中,示例62到示例63中的任何一個的屬性值信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值號碼。
[0145]在示例65中,示例47到示例64中的任何一個的數據索引裝置可以可選地包括用于保存標識了多個索引塊的索引塊信息的單元。
[0146]在示例66中,示例65的索引塊信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值標識符。
[0147]在示例67中,示例65到示例66中的任何一個的索引塊信息可以可選地包括針對多個屬性值中的每個的相應的唯一的屬性值號碼。
[0148]可以已經在本文中闡述了多個具體的細節以提供對實施例的徹底的理解。然而,本領域技術人員應當理解,可以沒有這些具體的細節而實踐所述實施例。在其它實例中,沒有詳細地描述公知的操作、組件、和電路以便不使實施例難以理解。應當理解的是,在本文中所公開的具體的結構上和功能上的細節可以是代表性的,而非必須限制實施例的范圍。
[0149]可以使用表達“耦合”和“連接”及其衍生詞來描述一些實施例。這些術語不旨在作為彼此的同義詞。例如,一些實施例可以使用術語“連接”和/或“耦合”來指示兩個或更多元件彼此直接地物理或電接觸。然而,術語“耦合”還可以意味著兩個或更多元件沒有彼此直接地接觸,但是仍然彼此協作或交互。
[0150]應當理解的是,除非另外特別聲明,諸如“處理”、“計算”、“運算”、“確定”等之類的術語是指計算機或計算系統或者相似的電子計算設備的動作和/或過程,其操縱被表示為計算系統的寄存器和/或存儲器內的物理量(例如,電子)的數據,和/或將其轉換成相似地被表示為計算系統的存儲器、寄存器或其它這樣的信息存儲、傳輸或顯示設備內的物理量的其它數據。實施例不限于該上下文中。
[0151]應當注意的是,在本文中所描述的方法不是必須以所描述的順序或者以任何特定的順序來執行。此外,結合在本文中所標識的方法所描述的各種活動可以以串行或者并行的方式來執行。
[0152]盡管已經在本文中示出并且描述了具體的示例,但應當理解的是,經運算以達到相同的目的的任何設置都可以替代所示出的具體的實施例。該公開旨在覆蓋對各種實施例的任何和所有的修改或變型。應當理解的是,已經以說明性的方式進行了以上的描述,而不是限制性的描述。在查閱了以上的描述之后,以上的實施例的組合以及沒有在本文中具體地描述的其它實施例將對本領域技術人員而言是顯而易見的。因此,各種實施例的范圍包括使用以上的成分、結構、以及方法的任何其它應用。
[0153]應當強調的是,提供了本公開的摘要以遵循37C.F.R.§1.72(b),其要求摘要將允許讀者快速地確定技術公開的性質。所主張的是,其將不會用于解釋或限制權力要求的范圍或含義。此外,在前述的【具體實施方式】中可以看到,出于簡化公開的目的而將各種特征集中在單個實施例中。該公開方法將不被解釋為反映所要求保護的實施例要求比每個權利要求中所明確記載的更多特征的意圖。相反,如以下的權利要求所反映的,發明方面在于比單個所公開的實施例的所有特征少。因此,以下的權利要求由此并入到【具體實施方式】中,同時每個權利要求獨立成立作為單獨的優選實施例。在所附權利要求中,術語“包括”和“其中”分別用作相應的術語“包含”和“在其中”的普通英語的等價物。此外,術語“第一”、“第二”、以及“第三”等僅僅用作標簽,而不旨在向其對象施加數字要求。
[0154]盡管已經用特定于結構特征和/或方法論行為的語言描述了主題,但應當理解的是,在所附權利要求中所限定的主題非必須限于在上文中所描述的具體的特征或行為。相反,上文中所描述的具體的特征和行為是作為實現權利要求的示例形式而公開的。
【主權項】
1.一種裝置,包括: 多核處理器元件; 用于由所述多核處理器元件執行以生成多個塊-屬性對的分配組件,每個塊-屬性對都對應于屬性值和多個數據塊中的一個數據塊;以及 用于由所述多核處理器元件執行以基于所述多個塊-屬性對而生成針對所述多個數據塊的索引塊的索引組件,所述索引組件用于使用多個索引實例來執行所述多個塊-屬性對的并行索引。2.根據權利要求1所述的裝置,每個塊-屬性對都包括數據塊號碼和屬性值號碼。3.根據權利要求1所述的裝置,所述索引組件用于由所述多核處理器元件執行以進一步將每個塊-屬性對置于多個隊列中的一個中。4.根據權利要求3所述的裝置,每個塊-屬性對都包括屬性值號碼,所述索引組件用于由所述多核處理器元件執行以進一步基于被包括在塊-屬性對中的所述屬性值號碼而將每個塊-屬性對置于所述多個隊列中的一個中。5.根據權利要求3所述的裝置,所述多個索引實例中的每個用于對來自所述多個隊列中的相應的一個中的索引塊-屬性對進行索引。6.根據權利要求1所述的裝置,所述分配組件用于由所述多核處理器元件執行以建立多個分配實例,并且使用所述多個分配實例來執行多個塊-屬性對的并行生成。7.根據權利要求6所述的裝置,所述分配組件用于由所述多核處理器元件執行以將所述多個分配實例中的每個建立在所述多核處理器元件的多個處理核心中的相應的一個上。8.根據權利要求1所述的裝置,所述分配組件用于由所述多核處理器元件執行以將相應的數據塊號碼分配至所述多個數據塊中的每個。9.根據權利要求1所述的裝置,所述索引塊包括經分割的位圖索引。10.根據權利要求9所述的裝置,包括重新排序組件以用于由所述多核處理器元件執行,以針對存儲設備的連續的存儲器位置中的順序存儲而將所述經分割的位圖索引進行重新排序。11.至少一個非瞬時性機器可讀介質,包括指令的集合,所述指令的集合響應于在計算設備上被執行,使得所述計算設備完成以下操作: 基于多個數據塊而生成多個塊-屬性對; 基于塊-屬性對中的屬性值號碼,將所述多個塊-屬性對中的每個都置于多個隊列中的一個中;以及 通過使用多個索引實例來對所述多個塊-屬性對進行索引而生成針對所述多個數據塊的索引塊,所述索引塊包括經分割的位圖索引。12.根據權利要求11所述的至少一個非瞬時性機器可讀介質,包括指令,所述指令響應于在計算設備上被執行,使得所述計算設備完成以下操作: 對每個塊-屬性對中的所述屬性值號碼執行模運算;以及 基于針對所述塊-屬性對中的所述屬性值號碼的所述模運算的結果,將每個塊-屬性對分配至所述多個隊列中的一個。13.根據權利要求11所述的至少一個非瞬時性機器可讀介質,所述多個索引實例中的每個都對應于所述多個隊列中的相應的一個。14.根據權利要求11所述的至少一個非瞬時性機器可讀介質,包括指令,所述指令響應于在計算設備上被執行,使得所述計算設備將所述多個索引實例中的每個都建立在多核處理器的不同的相應的處理核心上。15.根據權利要求11所述的至少一個非瞬時性機器可讀介質,包括指令,所述指令響應于在計算設備上被執行,使得所述計算設備完成以下操作: 建立多個分配實例;以及 使用所述多個分配實例中的一個來將所述多個塊-屬性對中的每一個分配至所述多個隊列中的一個。16.根據權利要求15所述的至少一個非瞬時性機器可讀介質,包括指令,所述指令響應于在計算設備上被執行,使得所述計算設備將所述多個分配實例中的每個都建立在多核處理器的不同的相應的處理核心上。17.根據權利要求11所述的至少一個非瞬時性機器可讀介質,包括指令,所述指令響應于在計算設備上被執行,使得所述計算設備將相應的數據塊號碼分配至所述多個數據塊中的每個。18.根據權利要求11所述的至少一個非瞬時性機器可讀介質,包括指令,所述指令響應于在計算設備上被執行,使得所述計算設備針對存儲設備的連續的存儲器位置中的順序存儲而對所述經分割的位圖索引進行重新排序。19.一種方法,包括: 基于多個數據塊,由多核處理器元件生成多個塊-屬性對; 基于塊-屬性對中的屬性值號碼來將所述多個塊-屬性對中的每個都置于多個隊列中的一個中;以及 通過使用多個索引實例來對所述多個塊-屬性對進行索引而生成針對所述多個數據塊的索引塊,所述索引塊包括經分割的位圖索引。20.根據權利要求19所述的方法,包括: 對每個塊-屬性對中的所述屬性值號碼執行模運算;以及 基于針對所述塊-屬性對中的所述屬性值號碼的所述模運算的結果,將每個塊-屬性對分配至所述多個隊列中的一個。21.根據權利要求19所述的方法,所述多個索引實例中的每個都對應于所述多個隊列中的相應的一個。22.根據權利要求19所述的方法,包括將所述多個索引實例中的每個都建立在所述多核處理器的不同的相應的處理核心上。23.根據權利要求19所述的方法,包括: 建立多個分配實例;以及 使用所述多個分配實例中的一個來將所述多個塊-屬性對中的一個分配至所述多個隊列中的一個。24.—種裝置,包括: 用于基于多個數據塊而生成多個塊-屬性對的單元; 用于基于塊-屬性對中的屬性值號碼,將所述多個塊-屬性對中的每個都置于多個隊列中的一個中的單元;以及 用于通過使用多個索引實例來對所述多個塊-屬性對進行索引而生成針對所述多個數據塊的索引塊的單元,所述索引塊包括經分割的位圖索引。25.根據權利要求24所述的裝置,包括: 用于對每個塊-屬性對中的所述屬性值號碼執行模運算的單元;以及用于基于針對所述塊-屬性對中的所述屬性值號碼的所述模運算的結果,將每個塊-屬性對分配至所述多個隊列中的一個的單元。
【文檔編號】G06F17/30GK105960637SQ201380080603
【公開日】2016年9月21日
【申請日】2013年11月28日
【發明人】鄧剛, 唐曦, 盧中延, 婁珽, 鐘濤, 劉合元
【申請人】英特爾公司