使用simd指令集架構(gòu)查找大數(shù)據(jù)集中最小和最大值的快速方法
【專利摘要】本公開涉及使用SIMD指令集架構(gòu)查找大數(shù)據(jù)集中最小和最大值的快速方法。系統(tǒng)和方法可使用單指令多數(shù)據(jù)(SIMD)指令集架構(gòu)和陣列條目的專門數(shù)據(jù)布局而與確定所確定的邊界值數(shù)據(jù)單元到大數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引并行地確定該大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元。在一個示例中,該陣列條目的專門數(shù)據(jù)布局包括將數(shù)據(jù)值和它到陣列的關(guān)聯(lián)索引組合到單個陣列條目內(nèi)。
【專利說明】使用SIMD指令集架構(gòu)查找大數(shù)據(jù)集中最小和最大值的快 速方法
【技術(shù)領(lǐng)域】
[0001] 本文描述的實施例大體上涉及對于大數(shù)據(jù)集的數(shù)據(jù)處理,并且更特定地涉及使用 單指令多數(shù)據(jù)(SMD)處理器來處理大數(shù)據(jù)集。
【背景技術(shù)】
[0002] 單指令多數(shù)據(jù)(SMD)處理器大體上在展現(xiàn)大量數(shù)據(jù)并行的應(yīng)用中使用而沒有復 雜控制流或過量處理器間通信。對于SMD處理器的典型應(yīng)用可包括低級視覺和圖像處理, 例如模式識別、數(shù)據(jù)庫搜索和統(tǒng)計分析。在圖像處理中牽涉的一個常見操作是查找最小或 最大值或到大數(shù)據(jù)陣列內(nèi)的其關(guān)聯(lián)索引。大部分的SMD處理器提供可快速執(zhí)行最小和最 大操作的指令。然而,如果SMD處理器必須保持跟蹤產(chǎn)生這些值的索引,SMD指令的數(shù)據(jù) 并行可被破壞。
【專利附圖】
【附圖說明】
[0003] 本發(fā)明的實施例的各種優(yōu)勢將通過閱讀下列說明和附上的權(quán)利要求并且通過參 考下列圖而對本領(lǐng)域內(nèi)技術(shù)人員變得明顯,其中: 圖1是根據(jù)實施例的計算系統(tǒng)的示例的框圖; 圖2A-2B是根據(jù)實施例的大數(shù)據(jù)集和該大數(shù)據(jù)集的數(shù)據(jù)布局的示例的圖; 圖3是根據(jù)實施例確定邊界數(shù)據(jù)值單元和關(guān)聯(lián)的索引的方法的示例的流程圖;以及 圖4A-4B是根據(jù)實施例的SMD指令列表和框圖的示例的圖。
[0004] 圖5是根據(jù)實施例的系統(tǒng)的框圖;以及 圖6是根據(jù)實施例的裝置的圖。
【具體實施方式】
[0005] 現(xiàn)在轉(zhuǎn)向圖1,示出計算系統(tǒng)100,其包括中央處理單元(CPU) 120、系統(tǒng)存儲器 130、存儲裝置140 (包括數(shù)據(jù)庫150)、圖形處理單元(GPU) 160和圖形存儲器170。圖示的 系統(tǒng)100可以是移動平臺的一部分,例如膝上型電腦、個人數(shù)字助理(PDA)、無線智能電話、 媒體播放器、成像裝置、移動互聯(lián)網(wǎng)裝置(MID)、智能平板電腦等或其任何組合。系統(tǒng)100還 可以是例如個人計算機(PC)、服務(wù)器、工作站等固定平臺的一部分。
[0006] CPU 120可包括存儲器控制器(未示出),其提供對系統(tǒng)存儲器130的訪問,該系統(tǒng) 存儲器130可包括隨機存取存儲器,例如雙數(shù)據(jù)速率(DDR)同步動態(tài)隨機存取存儲器模塊。 系統(tǒng)存儲器130的模塊可并入單直列存儲器模塊(SIMM)、雙直列存儲器模塊(DIMM)、小型 DMM(SODMM)等內(nèi)。CPU 120還可具有一個或多個驅(qū)動器和/處理器核(未示出),其中 每個核可功能齊全地具有取指令單元、指令解碼器、一級(L1)高速緩存、執(zhí)行單元,等。CPU 可包括一個或多個單指令多數(shù)據(jù)(SMD)處理器核。CPU 120還可執(zhí)行操作系統(tǒng)(0S),例如 Microsoft Windows、Linux 或 Mac (Macintosh) 0S〇
[0007] 存儲裝置140可用多種部件或子系統(tǒng)實現(xiàn),包括例如磁盤驅(qū)動器、光驅(qū)動器、閃速 存儲器或能夠持久存儲信息的其他裝置。如在圖1中圖示的,存儲裝置140包括數(shù)據(jù)庫150, 其存儲大數(shù)據(jù)集。
[0008] 圖示的系統(tǒng)100還包括圖形處理單元(GPU) 160,其耦合于圖形存儲器170。專用 圖形存儲器170可包括⑶DR (圖形DDR)或DDR SDRAM模塊,或適合用于支持圖形渲染的任 何其他存儲器技術(shù)。GPU 160和圖形存儲器170可安裝在圖形/視頻卡上,其中GPU 160可 經(jīng)由例如 PCI Express Graphics(PEG,例如外圍部件互連/PCI Express xl6 圖形 15W-ATX 規(guī)范1. 0、PCI特別興趣組)總線或加速圖形端口(例如,AGP V3. 0接口規(guī)范,2002年9月) 總線等圖形總線而與CPU 120通信。圖形卡可集成到系統(tǒng)母板上、到主CPU 120晶片(die) 內(nèi)、配置為母板上的分立卡等。
[0009] 作為圖形應(yīng)用的一部分,圖示的GPU 160執(zhí)行軟件模塊。圖形應(yīng)用可需要確定大 數(shù)據(jù)集中的最小或最大值以及到大數(shù)據(jù)陣列的其關(guān)聯(lián)索引。在一個示例中,軟件模塊包括 代碼,用于與確定值到大數(shù)據(jù)陣列內(nèi)的關(guān)聯(lián)索引并行地確定大數(shù)據(jù)集中的最小或最大值。 [0010] 軟件模塊還可包括代碼,用于將數(shù)據(jù)值和該數(shù)據(jù)值的關(guān)聯(lián)索引組合到單個數(shù)據(jù)單 元內(nèi)用于存儲為大數(shù)據(jù)集中的數(shù)據(jù)條目。軟件模塊可用例如面向?qū)ο缶幊陶Z言(例如C++) 等任何編程語目來編寫。
[0011] GPU 160還可包括一個或多個單指令多數(shù)據(jù)(SMD)處理器核,用于提高和/或支 持圖形性能。從而,圖示的方法可以在牽涉高級數(shù)據(jù)并行和處理復雜性的圖形環(huán)境中特別 有益。
[0012] 現(xiàn)在轉(zhuǎn)向圖2A,圖示大數(shù)據(jù)集,其中該大數(shù)據(jù)集包括陣列數(shù)據(jù)結(jié)構(gòu)。圖示的陣列中 的每個條目具有專門數(shù)據(jù)布局,其包括數(shù)據(jù)值和到大數(shù)據(jù)集的其關(guān)聯(lián)索引,如在圖2B中示 出的。數(shù)據(jù)值存儲在數(shù)據(jù)條目的最高有效位中,并且索引被存儲在數(shù)據(jù)條目的最低有效位 中。
[0013] 軟件模塊可通過執(zhí)行例如下列代碼而構(gòu)造并且組裝大數(shù)據(jù)集的專門數(shù)據(jù)布局,其 中 N=16 : declare daiaArraylK], Ccrnsl lndexAiTay"6] = i〇: I, 2, 3, 4. 5, 6, 8.. 9JO, 1113,14、15J: add (16)aci:i〇:15| (ndexArray{0;15] 0 mac (1datalndexArray[0:15】dataArray|_0:15J 65536 add (I iic.ei0:151 1 iKld4rmy [0:151 16 iliac (】6) daialncteikruyl 16:31 j dataArray|l6:31J 65536 數(shù)據(jù)條目的專門數(shù)據(jù)布局可通過將數(shù)據(jù)值和它的索引組合到單個數(shù)據(jù)條目內(nèi) 而構(gòu)造。軟件模塊可通過對每16個輸入數(shù)據(jù)單元執(zhí)行兩個SIMD 16指令而構(gòu)造并 且組裝大數(shù)據(jù)集的專門數(shù)據(jù)布局。例如,對于前16個數(shù)據(jù)單元,軟件模塊可執(zhí)行 add( 16) acc[D: 15] InckxAr種5] ?);矛口 ckUiJmtecA,rrayp:i5j da電aA.rray[i):l5] 65536,并且對于第二數(shù)據(jù)單元,軟件模塊可執(zhí)行adcKld》aec阼LVnnctexAray[0 :b] ;和 m膩(16) daiaMexAmiy[16:3 " daiaArray[16,31] 65536。
[0014] SMD 16指令并行地對十六個數(shù)據(jù)通道執(zhí)行相同操作。SMD指令處理可比其中以 相繼方式處理每個通道的方法更高效。盡管已經(jīng)描述SMD16指令,可使用任何SMD指令。
[0015] 在另一個示范性實施例中,離線構(gòu)造專門數(shù)據(jù)布局并且數(shù)據(jù)庫150預先填充有大 數(shù)據(jù)集。
[0016] 圖3示出與對確定的邊界值數(shù)據(jù)單元到大數(shù)據(jù)集的關(guān)聯(lián)索引進行確定并行地確 定大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元(例如,最小或最大數(shù)據(jù)值)的方法。該方法大體上可包括 在多個處理階段期間連續(xù)確定大數(shù)據(jù)集內(nèi)的較小數(shù)據(jù)單元的邊界值數(shù)據(jù)單元直到產(chǎn)生單 個數(shù)據(jù)單元。
[0017] 該方法可在可執(zhí)行軟件中實現(xiàn)為邏輯指令集,其存儲在例如隨機存取存儲器 (RAM)、只讀存儲器(ROM)、可編程ROM (PR0M)、固件、閃速存儲器等存儲器的機器或計算機 可讀存儲介質(zhì)中,在例如可編程邏輯陣列(PLA)、現(xiàn)場可編程門陣列(FPGA)、復雜可編程邏 輯裝置(CPLD)等可配置邏輯中,在使用匯編語言編程和電路技術(shù)的固定功能性硬件中,例 如專用集成電路(ASIC)、互補金屬氧化物半導體(CMOS)或晶體管-晶體管邏輯(TTL)技術(shù) 或其任何組合。
[0018] 在過程框310,處理階段(例如,第一處理階段)接收數(shù)據(jù)集。被第一處理階段接收 的數(shù)據(jù)集可包括大數(shù)據(jù)集。該數(shù)據(jù)集在過程框320分成多個較小數(shù)據(jù)集。例如,在SMD環(huán) 境中,包括32個陣列元素的大數(shù)據(jù)集分成兩個子陣列,每個包括16個陣列元素,其中每個 陣列元素包括在圖2B中圖示的專門數(shù)據(jù)布局。
[0019] 在示例中,大數(shù)據(jù)集分成單元來確保SIMD指令(例如,SIMD16指令)可用于并行處 理盡可能多的數(shù)據(jù)單元以提高系統(tǒng)性能??墒褂萌魏蜸MD配置。
[0020] 在過程框330,確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元,同時確定它的關(guān)聯(lián)索 弓丨。例如,可確定第一與第二子陣列之間的對于每個數(shù)據(jù)通道(即,陣列元素)的最小數(shù)據(jù) 值。
[0021] 每個子陣列包括十六個陣列元素,并且使用例如 miniJ6) minArray[0:15j sub-amyl(0:15] sub-array2[ 16:31] 等SIMD16指令,可并行確定例如 set(0) siub-array? [0|" subarray2【0]: ?€言< 1 > U L sut>arniy2| 1 set(2) sisb?arrayl|2J, sub~*array2[2];sel(3) sub-array 1 [3], sub*?array2[3]? ser(4) siA-arrayl[4],suh-array2[4]; sub-arrayi[5].. siib-array2[5J; set(6) sub-array 丨[6], sub-arra#〇]和 set U5) sub-array 1 〖I-U sub-array2[丨5〗的十六個 數(shù)據(jù)集之間的最小數(shù)據(jù)值。
[0022] 對于在子陣列1和子陣列2中的每個數(shù)據(jù)集之間確定的每個最小數(shù)據(jù)值的索引值 包括在所得數(shù)據(jù)集中。因為每個數(shù)據(jù)值的索引值附加到數(shù)據(jù)值,與每個條目的專門數(shù)據(jù)布 局一致,在確定最小值時,也確定該值的索引。索引值定位在最小數(shù)據(jù)值的最低有效位中。
[0023] 每個數(shù)據(jù)集之間的最小數(shù)據(jù)值存儲為新的數(shù)據(jù)集,其包括十六個陣列元素。每個 陣列元素包括對應(yīng)集之間的最小數(shù)據(jù)值與數(shù)據(jù)值的關(guān)聯(lián)索引。新的數(shù)據(jù)集在過程框340輸 出。
[0024] 在過程框350,方法確定數(shù)據(jù)集是否包括單個條目(S卩,陣列元素)。在該示例中, n=16。因為η不等于1,方法繼續(xù)下一個分級處理階段。下一個分級處理階段執(zhí)行過程框 310-340的處理。
[0025] 例如,第二處理階段接收數(shù)據(jù)集,其包括16個陣列元素。數(shù)據(jù)集分成兩個子陣列, 每個包括八個陣列元素。既然大數(shù)據(jù)集分成包括八個數(shù)據(jù)通道的子陣列,SIMD8指令可用 于確定新數(shù)據(jù)集的邊界數(shù)據(jù)值。
[0026] 使用例如 nih·》丨iiinA「ra>+-[0.7] sub-ar「ayl〖0:7] sub-array2〖8:!5],的 SIMD8 指令, 可并行確定例如 sc〖(〇) sub-array 1 丨0+], siilwray2|Oj, set(l) siib-arreyl[l],sub-array2[l]: set(2) suh-arrayl[2], sub-array2f2】;set(:]》SLit)-ari'ayl[3], sub-array2[3], set(4) sub-array 1 [4], sub-array2[4]; sel(5) sub-array 1 [5]. siib-array2[5]; sct(&} sub-array丨[6】,:aib-array2;[6]和 set.(+7> sub-arrayl(7], sub-array2〖7]的八個數(shù) 據(jù)集之間的最小數(shù)據(jù)值。
[0027] 每個數(shù)據(jù)集之間的最小數(shù)據(jù)值存儲為新的數(shù)據(jù)集,其包括八個陣列元素。每個陣 列元素包括對應(yīng)的集之間的最小數(shù)據(jù)值與數(shù)據(jù)值的關(guān)聯(lián)索引。新的數(shù)據(jù)集在過程框340輸 出。在過程框350,n=8。
[0028] 第三處理階段接收數(shù)據(jù)集,其包括八個陣列元素。數(shù)據(jù)集分成兩個子陣列,每個包 括四個陣列元素。既然大數(shù)據(jù)集分成包括四個數(shù)據(jù)通道的子陣列,SIMD4指令可用于確定 新數(shù)據(jù)集的邊界數(shù)據(jù)值。
[0029] 使用例如min(4+) minAiray|O:31 sut)-arrayl[O:31sub-array2【4.7J 的 SMD4 指令,可并行確定例如 set(0) sub-array〗[0]. siibarray2[0]; sett 1) sub-array 1 f 11, sub-array2f 1}; set(2) sub-array I [2], sub-array2f 2]; setO) sub-arrayip】,sub-an-ay2p.|:和 sct(4) sub-array1[4]? sub-array2[4]的四個 數(shù)據(jù)集之間的最小數(shù)據(jù)值。
[0030] 每個數(shù)據(jù)集之間的最小數(shù)據(jù)值存儲為新的數(shù)據(jù)集,其包括四個陣列元素。每個陣 列元素包括對應(yīng)的集之間的最小數(shù)據(jù)值與數(shù)據(jù)值的關(guān)聯(lián)索引。新的數(shù)據(jù)集在過程框340輸 出。在過程框350,n=4。
[0031] 第四處理階段接收數(shù)據(jù)集,其包括四個陣列元素。數(shù)據(jù)集分成兩個子陣列,每個包 括兩個陣列元素。既然大數(shù)據(jù)集分成包括兩個數(shù)據(jù)通道的子陣列,SIMD2指令可用于確定 新數(shù)據(jù)集的邊界數(shù)據(jù)值。
[0032] 使用例如minArray[0:l] siib-arra.yl[0.1] sub-array2f2:3'| 的 SMD2 指令, 可并行確定例如 sub-array I [0〗> subarray2|0J|和 set( 1} sub-array! 11 j,sub-array2[ 11 的兩個數(shù)據(jù)集之間的最小數(shù)據(jù)值。
[0033] 每個數(shù)據(jù)集之間的最小數(shù)據(jù)值存儲為新的數(shù)據(jù)集,其包括兩個陣列元素。每個陣 列元素包括對應(yīng)的集之間的最小數(shù)據(jù)值與數(shù)據(jù)值的關(guān)聯(lián)索引。新的數(shù)據(jù)集在過程框340輸 出。在過程框350,n=2。
[0034] 第五處理階段接收數(shù)據(jù)集,其包括兩個陣列元素。數(shù)據(jù)集分成兩個子陣列,每個包 括一個陣列元素。既然大數(shù)據(jù)集分成包括一個數(shù)據(jù)通道的子陣列,SIMD1指令可用于確定 新數(shù)據(jù)集的邊界數(shù)據(jù)值。
[0035] 使用例如 min(丨)miiiArraylOj sub-array Sllh-array2[的 SIMD1 指令,可并行 確定例如set(0) sub-array寧subarra.y2[0j的單個數(shù)據(jù)集之間的最小數(shù)據(jù)值。
[0036] 在完成第五處理階段時,數(shù)據(jù)集之間的最小數(shù)據(jù)值包括單個陣列元素。因此,在過 程框350,n=l并且單個條目輸出到過程框360。條目的最高有效位包括單個條目的邊界數(shù) 據(jù)值并且條目的最低有效位包括值的索引。單個條目的邊界數(shù)據(jù)值代表整個大數(shù)據(jù)集的邊 界數(shù)據(jù)值。
[0037] 因為數(shù)據(jù)條目的專門數(shù)據(jù)布局包括組合到單個條目內(nèi)的數(shù)據(jù)值和它的關(guān)聯(lián)索引, 方法可與確定對于整個大數(shù)據(jù)集的邊界數(shù)據(jù)值單元并行地確定邊界數(shù)據(jù)值單元的關(guān)聯(lián)索 引值。一旦對整個大數(shù)據(jù)集確定邊界數(shù)據(jù)值,它的索引存儲為條目的最低有效位。
[0038] 在示范性實施例中,當存在不足的位來將所有索引保持在新的數(shù)據(jù)布局中時,數(shù) 據(jù)集可分成幾個小的組使得相同組中的所有數(shù)據(jù)可由專門數(shù)據(jù)布局表示。首先,根據(jù)圖3 計算對于每個組的邊界數(shù)據(jù)值和索引。然后所得數(shù)據(jù)中的索引被組索引取代來形成新的數(shù) 據(jù)集。根據(jù)圖3處理該新的數(shù)據(jù)集來獲得整個邊界數(shù)據(jù)值和對應(yīng)的組索引。從組索引可檢 索該組中的邊界數(shù)據(jù)值和索引來得到全局數(shù)據(jù)索引。
[0039] 圖4A示出使用專門數(shù)據(jù)布局來執(zhí)行操作的SMD指令列表,用于在SMD環(huán)境中與 確定所確定的邊界值數(shù)據(jù)單元到大數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引并行地確定大數(shù)據(jù)集中的邊界值 數(shù)據(jù)單元(例如,最小或最大數(shù)據(jù)值)的方法,包括在多個處理階段期間對大數(shù)據(jù)集內(nèi)的較 小數(shù)據(jù)單元確定邊界值數(shù)據(jù)單元直到產(chǎn)生單個數(shù)據(jù)單元。圖4B是如何執(zhí)行圖4A中的對應(yīng) 指令和操作的示范性框圖。
[0040] 大體上,初始化部分401a可提供初始化陣列datalndexArray [N] ;minArray [16] 和maxArray [16],其中N=16。列表402a圖示用于查找兩個陣列之間的對于每個數(shù)據(jù)通 道的最小和最大數(shù)據(jù)值的兩個SMD16指令并且相應(yīng)地將結(jié)果存儲在minArray[0 :15]和 maxArray [0:15]中。
[0041] 列表403a圖示用于確定大數(shù)據(jù)集(其具有大于32個陣列元素且為十六的倍數(shù)的 陣列大?。┑淖钚『妥畲髷?shù)據(jù)值的偽代碼。例如,在圖4B中,參考403b圖示對包括64個 陣列元素的大數(shù)據(jù)集的較小部分執(zhí)行的最小和最大操作。初始,確定陣列元素[0:15]與 [16:31]之間的最小和最大數(shù)據(jù)陣列值。在403a的偽代碼的第一迭代(即i=2,N=64),結(jié)果 與陣列元素[32 ;47]比較來確定陣列元素[0:47]之間的最小和最大數(shù)據(jù)陣列值。
[0042] 第一迭代的結(jié)果在偽代碼的第二迭代(即i=3)與陣列元素[48:63]比較來確定 陣列元素[0:63]之間的最小和最大數(shù)據(jù)陣列值。所得的數(shù)據(jù)陣列是minA rray[0:15]和 maxArray [0:15]。每個陣列包括十六個陣列元素。
[0043] 列表404a圖示用于在大數(shù)據(jù)集分成兩個子陣列(每個包括八個數(shù)據(jù)陣列元素)時 確定該大數(shù)據(jù)集中的最小和最大數(shù)據(jù)陣列值的SMD指令(S卩,SMD8指令)。參考404b圖 示該配置。
[0044] 列表405a圖示用于在大數(shù)據(jù)集分成兩個子陣列(每個包括四個數(shù)據(jù)陣列元素)時 確定該大數(shù)據(jù)集中的最小和最大數(shù)據(jù)陣列值的SMD指令(S卩,SMD4指令)。參考405b圖 示該配置。
[0045] 列表406a圖示用于在大數(shù)據(jù)集分成兩個子陣列(每個包括兩個數(shù)據(jù)陣列元素)時 確定該大數(shù)據(jù)集中的最小和最大數(shù)據(jù)陣列值的SMD指令(S卩,SMD2指令)。參考406b圖 示該配置。
[0046] 列表407a圖示用于在大數(shù)據(jù)集分成兩個子陣列(每個包括一個數(shù)據(jù)陣列元素)時 確定該大數(shù)據(jù)集中的最小和最大數(shù)據(jù)陣列值的SMD指令(S卩,SMD1指令)。參考407b圖 示該配置。
[0047] 列表408a和參考408b圖示所得的單條目陣列元素,其包括對于大數(shù)據(jù)集的整個 最小或最大數(shù)據(jù)值以及它到大數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引。
[0048] 圖5圖示系統(tǒng)700的實施例。在實施例中,系統(tǒng)700可以是媒體系統(tǒng),但系統(tǒng)700 不限于該上下文。例如,系統(tǒng)700可并入個人計算機(PC)、膝上型計算機、超級膝上型計算 機、平板電腦、觸摸板、便攜式計算機、手持計算機、掌上型計算機、個人數(shù)字助理(PDA)、蜂 窩電話、組合蜂窩電話/PDA、電視、智能裝置(例如,智能電話、智能平板電腦或智能電視)、 移動互聯(lián)網(wǎng)裝置(MID)、消息傳遞裝置、數(shù)據(jù)通信裝置等內(nèi)。
[0049] 在實施例中,系統(tǒng)700包括耦合于顯示器720的平臺702。平臺702可接收來自例 如內(nèi)容服務(wù)裝置730或內(nèi)容交付裝置740等內(nèi)容裝置或其他相似的內(nèi)容源的內(nèi)容。包括一 個或多個導航特征的導航控制器750可用于與例如平臺702和/或顯示器720交互。這些 部件中的每個在下文更詳細描述。
[0050] 在實施例中,平臺702可包括芯片集705、處理器710、存儲器712、存儲714、圖形 子系統(tǒng)715、應(yīng)用716和/或無線電設(shè)備718的任何組合。芯片集705可在處理器710、存 儲器712、存儲714、圖形子系統(tǒng)715、應(yīng)用716和/或無線電設(shè)備718之間提供互相通信。 例如,芯片集705可包括存儲適配器(未描繪),其能夠提供與存儲714的互相通信。
[0051] 處理器710可實現(xiàn)為復雜指令集計算機(CISC)或精減指令集計算機(RISC)處理 器、x86指令集兼容處理器、多核或任何其他微處理器或中央處理單元(CPU)。在實施例中, 處理器710可包括雙核處理器、雙核移動處理器,等。
[0052] 存儲器712可實現(xiàn)為易失性存儲器裝置,例如但不限于隨機存取存儲器(RAM)、動 態(tài)隨機存取存儲器(DRAM)或靜態(tài)RAM (SRAM)。
[0053] 存儲714可實現(xiàn)為非易失性存儲裝置,例如但不限于磁盤驅(qū)動器、光盤驅(qū)動器、存 儲帶驅(qū)動器(tap driver)、內(nèi)部存儲裝置、附連存儲裝置、閃速存儲器、電池備份SDRAM (同 步DRAM)和/或網(wǎng)絡(luò)可訪問存儲裝置。在實施例中,例如,存儲714可包括用于在包括例如 多個硬驅(qū)動器時提高對有價值數(shù)字媒體的存儲性能增強保護的技術(shù)。
[0054] 圖形子系統(tǒng)715可執(zhí)行例如靜物或視頻等圖像的處理以用于顯示。例如,圖形子 系統(tǒng)715可以是圖形處理單元(GPU)或視覺處理器(VPU)。模擬或數(shù)字接口可用于通信地 耦合圖形子系統(tǒng)715和顯示器720。例如,接口可以是高清晰度多媒體接口、顯示端口、無線 HDMI和/或無線HD兼容技術(shù)中的任一個。圖形子系統(tǒng)715可集成到處理器710或芯片集 705內(nèi)。圖形子系統(tǒng)715可以是通信地耦合于芯片集705的獨立卡。
[0055] 本文描述的圖形和/或視頻處理技術(shù)可在各種硬件架構(gòu)中實現(xiàn)。例如,圖形和/ 或視頻功能性可集成在芯片集內(nèi)。備選地,可使用分立圖形和/或視頻處理器。作為再另 一個實施例,圖形和/或視頻功能可由通用處理器(其包括多核處理器)實現(xiàn)。在另外的實 施例中,功能可在消費者電子裝置中實現(xiàn)。
[0056] 無線電設(shè)備718可包括能夠使用各種適合的無線通信技術(shù)來傳送和接收信號的 一個或多個無線電設(shè)備。這樣的技術(shù)可牽涉跨一個或多個無線網(wǎng)絡(luò)的通信。示范性無線網(wǎng) 絡(luò)包括(但不限于)無線局域網(wǎng)(WLAN)、無線個人區(qū)域網(wǎng)絡(luò)(WPAN)、無線城域網(wǎng)(WMAN)、蜂 窩網(wǎng)絡(luò)和衛(wèi)星網(wǎng)絡(luò)。在跨這樣網(wǎng)絡(luò)的通信中,無線電設(shè)備718可根據(jù)采用任何版本的一個 或多個能適用標準來操作。
[0057] 在實施例中,顯示器720可包括任何電視類型的監(jiān)視器或顯示器。顯示器720可 包括例如計算機顯示屏、觸屏顯示器、視頻監(jiān)視器、像電視的裝置和/或電視。顯示器720 可以是數(shù)字和/或模擬的。在實施例中,顯示器720可以是全息顯示器。而且,顯示器720 可以是可接收視覺投影的透明表面。這樣的投影可傳達各種形式的信息、圖像和/或?qū)ο蟆?例如,這樣的投影可以是用于移動增強現(xiàn)實(MAR)應(yīng)用的視覺覆蓋。在一個或多個軟件應(yīng) 用716的控制下,平臺702可在顯示器720上顯示用戶界面722。
[0058] 在實施例中,例如,內(nèi)容服務(wù)裝置730可被任何國家、國際和/或獨立服務(wù)所托管 并且從而經(jīng)由互聯(lián)網(wǎng)而可被平臺702訪問。內(nèi)容服務(wù)裝置730可耦合于平臺702和/或顯 示器720。平臺702和/或內(nèi)容服務(wù)裝置730可耦合于網(wǎng)絡(luò)760來向網(wǎng)絡(luò)760以及從網(wǎng)絡(luò) 760傳送(例如,發(fā)送和/或接收)媒體信息。內(nèi)容交付裝置740還可耦合于平臺702和/ 或顯示器720。
[0059] 在實施例中,內(nèi)容服務(wù)裝置730可包括電纜電視盒、個人計算機、網(wǎng)絡(luò)、電話、支持 互聯(lián)網(wǎng)的裝置或能夠交付數(shù)字信息和/或內(nèi)容的設(shè)備以及能夠經(jīng)由網(wǎng)絡(luò)760或直接在內(nèi)容 提供商與平臺702和/或顯示器720之間單向或雙向傳送內(nèi)容的任何其他相似裝置。將意 識到內(nèi)容可經(jīng)由網(wǎng)絡(luò)760向系統(tǒng)700中的任何一個部件和內(nèi)容提供商以及從其中單向和/ 或雙向傳送。內(nèi)容的示例可包括任何媒體信息,其包括例如視頻、音樂、醫(yī)療和游戲信息, 等。
[0060] 內(nèi)容服務(wù)裝置730接收例如電纜電視編程(其包括媒體信息、數(shù)字信息)等內(nèi)容,和 /或其他內(nèi)容。內(nèi)容提供商的示例可包括任何電纜或衛(wèi)星電視或無線電或互聯(lián)網(wǎng)內(nèi)容提供 商。提供的示例不意在限制本發(fā)明的實施例。
[0061] 在實施例中,平臺702可從具有一個或多個導航特征的導航控制器750接收控制 信號??刂破?50的導航特征可用于與例如用戶界面722交互。在實施例中,導航控制器 750可以是定點裝置,其可以是允許用戶將空間(例如,連續(xù)和多維)數(shù)據(jù)輸入計算機內(nèi)的計 算機硬件部件(具體地,人機界面裝置)。例如圖形用戶界面(⑶I)以及電視和監(jiān)視器等許 多系統(tǒng)允許用戶使用物理手勢來控制并且提供數(shù)據(jù)給計算機或電視。
[0062] 控制器750的導航特征的移動可通過移動指針、光標、聚焦環(huán)或在顯示器上顯示 的其他視覺指示符而在顯示器(例如,顯示器720)上回應(yīng)。例如,在軟件應(yīng)用716的控制 下,定位在導航控制器750上的導航特征可映射到例如在用戶界面722上顯示的虛擬導航 特征。在實施例中,控制器750可不是獨立部件而集成到平臺702和/或顯示器720內(nèi)。然 而,實施例不限于本文示出或描述的元件或在本文示出或描述的上下文中受限制。
[0063] 在實施例中,例如,驅(qū)動器(未示出)可包括在被啟用時使用戶能夠在初始啟動后 利用觸碰按鈕而即刻打開和關(guān)閉平臺702 (像電視)的技術(shù)。在"關(guān)閉"平臺時,程序邏輯 可允許平臺702將內(nèi)容流播到媒體適配器或其他內(nèi)容服務(wù)裝置730或內(nèi)容交付裝置740。 另外,芯片集705可包括例如對5. 1環(huán)繞聲音頻和/或高清晰度7. 1環(huán)繞聲音頻的硬件和/ 或軟件支持。驅(qū)動器可包括對于集成圖形平臺的圖形驅(qū)動器。在實施例中,圖形驅(qū)動器可 包括外圍部件互連(PCI) Express圖形卡。
[0064] 在各種實施例中,在系統(tǒng)700中示出的部件中的任何一個或多個可集成。例如,平 臺702和內(nèi)容服務(wù)裝置730可集成,或例如平臺702和內(nèi)容交付裝置740可集成,或平臺 702、內(nèi)容服務(wù)裝置730和內(nèi)容交付裝置740可集成。在各種實施例中,平臺702和顯示器 720可以是集成單元。例如,顯示器720和內(nèi)容服務(wù)裝置730可集成,或顯示器720和內(nèi)容 交付裝置740可集成。這些示例不意在限制本發(fā)明。
[0065] 在各種實施例中,系統(tǒng)700可實現(xiàn)為無線系統(tǒng)、有線系統(tǒng)或兩者的組合。在實現(xiàn)為 無線系統(tǒng)時,系統(tǒng)700可包括適合用于通過無線共享媒體(例如一個或多個天線、傳送器、 接收器、收發(fā)器、放大器、濾波器、控制邏輯,等)而通信的部件和接口。無線共享媒體的示例 可包括例如RF頻譜等無線頻譜的部分。當實現(xiàn)為有線系統(tǒng)時,系統(tǒng)700可包括適合用于通 過有線通信介質(zhì)而通信的部件和接口,例如輸入/輸出(I/O)適配器、用于連接I/O適配器 與對應(yīng)的有線通信介質(zhì)的物理連接器、網(wǎng)絡(luò)接口卡(NIC)、盤控制器、視頻控制器、音頻控制 器等。有線通信介質(zhì)的示例可包括線、電纜、金屬引線、印刷電路板(PCB)、底板、交換結(jié)構(gòu)、 半導體材料、雙絞線、同軸電纜、光纖等。
[0066] 平臺702可建立一個或多個邏輯或物理通道來傳送信息。該信息可包括媒體信息 和控制信息。媒體信息可指代表針對用戶的內(nèi)容的任何數(shù)據(jù)。內(nèi)容的示例可包括例如來自 語音會話的數(shù)據(jù)、視頻會議、流播視頻、電子郵件("email")消息、語音郵件消息、字母數(shù)字 符號、圖形、圖像、視頻、文本等。來自語音會話的數(shù)據(jù)可以是話語信息、靜默期、背景噪聲、 舒適噪聲、音調(diào)等。控制信息可指代表針對自動化系統(tǒng)的命令、指令或控制字的任何數(shù)據(jù)。 例如,控制信息可用于通過系統(tǒng)路由媒體信息,或指示節(jié)點以預定的方式處理媒體信息。然 而,實施例不限于在圖5中示出或描述的元件或在圖5中示出或描述的上下文中不受限制。
[0067] 如上文描述的,系統(tǒng)700可以變化的物理風格或形狀因子來體現(xiàn)。圖6圖示其中 可包含系統(tǒng)700的小形狀因子裝置800的實施例。在實施例中,例如,裝置800可實現(xiàn)為具 有無線能力的移動計算裝置。移動計算裝置可指具有處理系統(tǒng)和移動電力源或供應(yīng)(例如 一個或多個電池)的任何裝置。
[0068] 如上文描述的,移動計算裝置的示例可包括個人計算機(PC)、膝上型計算機、超級 膝上型計算機、平板電腦、觸摸板、便攜式計算機、手持計算機、掌上型計算機、個人數(shù)字助 理(PDA)、蜂窩電話、組合蜂窩電話/TOA、電視、智能裝置(例如,智能電話、智能平板電腦或 智能電視)、移動互聯(lián)網(wǎng)裝置(MID)、消息傳遞裝置、數(shù)據(jù)通信裝置,等。
[0069] 移動計算裝置的示例還可包括設(shè)置成由人佩戴的計算機,例如手腕計算機、手指 計算機、戒指計算機、眼鏡計算機、皮帶夾計算機、臂帶計算機、鞋計算機、衣服計算機和其 他可佩戴計算機。在實施例中,例如,移動計算裝置可實現(xiàn)為能夠執(zhí)行計算機應(yīng)用以及語音 通信和/或數(shù)據(jù)通信的智能電話。盡管一些實施例可用通過示例實現(xiàn)為智能電話的移動計 算裝置來描述,可意識到其他實施例也可使用其他無線移動計算裝置來實現(xiàn)。實施例在該 上下文中不受限制。
[0070] 如在圖6中示出的,裝置800可包括外殼802、顯示器804、輸入/輸出裝置806和 天線808。裝置800還可包括導航特征812。顯示器804可包括任何適合的顯示單元,用于 顯示適合于移動計算裝置的信息。I/O裝置806可包括任何適合的I/O裝置,用于將信息輸 入移動計算裝置內(nèi)。對于I/O裝置806的示例可包括字母數(shù)字鍵盤、數(shù)字小鍵盤、觸摸板、 輸入鍵、按鈕、開關(guān)、翹板開關(guān)、麥克風、揚聲器、語音識別裝置和軟件,等。信息還可通過麥 克風輸入裝置800內(nèi)。這樣的信息可通過語音識別裝置而數(shù)字化。實施例在該上下文中不 受限制。
[0071] 各種實施例可使用硬件元件、軟件元件或兩者的組合來實現(xiàn)。硬件元件的示例可 包括處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、電感器,等)、集成電 路、專用集成電路(ASIC)、可編程邏輯裝置(PLD)、數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣 列(FPGA)、邏輯門、寄存器、半導體器件、芯片、微芯片、芯片集等。軟件的示例可包括軟件部 件、程序、應(yīng)用、計算機程序、應(yīng)用程序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固件、 軟件模塊、例程、子例程、函數(shù)、方法、規(guī)程、軟件接口、應(yīng)用程序接口(API)、指令集、計算代 碼、計算機代碼、代碼段、計算機代碼段、字、值、符號或其任何組合。確定實施例是否使用硬 件元件和/或軟件元件實現(xiàn)可根據(jù)許多因素而改變,例如期望的計算速率、功率水平、耐熱 性、處理周期預算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲器資源、數(shù)據(jù)總線速度和其它設(shè)計或 性能約束。
[0072] 至少一個實施例的一個或多個方面可由存儲在機器可讀介質(zhì)上的代表性指令來 實現(xiàn),該機器可讀介質(zhì)代表處理器內(nèi)的各種邏輯,其在被機器讀取時促使機器構(gòu)造邏輯來 執(zhí)行本文描述的技術(shù)。這樣的表示(稱為" IP核")可存儲在有形的機器可讀介質(zhì)上并且供 應(yīng)給各種客戶或制造設(shè)施來裝入制造機器,其實際上構(gòu)成邏輯或處理器。
[0073] 額外的示例和灃釋: 示例1可提供方法,其包括通過以分級方式執(zhí)行的多個處理階段期間連續(xù)確定大數(shù)據(jù) 集內(nèi)較小數(shù)據(jù)集的邊界值數(shù)據(jù)單元直到產(chǎn)生單個數(shù)據(jù)單元而與確定所確定的邊界值數(shù)據(jù) 單元到大數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引并行地確定大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元,其中每個數(shù)據(jù)集 包括多個數(shù)據(jù)條目。
[0074] 示例2可包括示例1的方法,其進一步包括將數(shù)據(jù)值和該數(shù)據(jù)值的關(guān)聯(lián)索引組合 到單個數(shù)據(jù)單元內(nèi),并且將該單個數(shù)據(jù)單元存儲為大數(shù)據(jù)集中的數(shù)據(jù)條目。
[0075] 示例3可包括示例1的方法,其中每個處理階段與確定所確定的值到大數(shù)據(jù)集內(nèi) 的關(guān)聯(lián)索引并行地確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元。
[0076] 示例4可包括示例3的方法,其中確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元包 括使用單指令多數(shù)據(jù)(SIMD)指令并行地對每個數(shù)據(jù)集中的數(shù)據(jù)條目執(zhí)行操作。
[0077] 示例5可包括示例4的方法,其中每個處理階段的輸出產(chǎn)生數(shù)據(jù)集,其作為到下一 個處理階段的新數(shù)據(jù)集輸入而被接收。
[0078] 示例6可包括示例1的方法,其中第一處理階段接收大數(shù)據(jù)集作為數(shù)據(jù)集輸入。
[0079] 示例7可包括示例1的方法,其中大數(shù)據(jù)集作為結(jié)構(gòu)化陣列存儲在數(shù)據(jù)庫中。
[0080] 示例8可包括示例1的方法,其中邊界值數(shù)據(jù)單元是最小值數(shù)據(jù)單元和最大值數(shù) 據(jù)單元中的一個。
[0081] 示例9可包括系統(tǒng),其包括確定模塊,用于與確定所確定的邊界值數(shù)據(jù)單元到大 數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引并行地確定大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元。
[0082] 示例10可包括示例9的系統(tǒng),其進一步包括組合模塊,用于將數(shù)據(jù)值和該數(shù)據(jù)值 的關(guān)聯(lián)索引組合到單個數(shù)據(jù)單元內(nèi),并且將該單個數(shù)據(jù)單元存儲為大數(shù)據(jù)集中的數(shù)據(jù)條 目。
[0083] 示例11可包括示例10的系統(tǒng),其中確定模塊用于與確定所確定的邊界值數(shù)據(jù)單 元到大數(shù)據(jù)內(nèi)的關(guān)聯(lián)索引并行地確定大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元,這包括以分級方式執(zhí) 行的多個處理階段期間連續(xù)確定大數(shù)據(jù)集內(nèi)較小數(shù)據(jù)集的邊界值數(shù)據(jù)單元直到產(chǎn)生單個 數(shù)據(jù)單元。
[0084] 示例12可包括示例11的系統(tǒng),其中每個處理階段接收數(shù)據(jù)集并且將該數(shù)據(jù)集分 成多個較小數(shù)據(jù)集,其中每個數(shù)據(jù)集包括多個數(shù)據(jù)條目。
[0085] 示例13可包括示例12的系統(tǒng),其中每個處理階段與確定所確定的值到大數(shù)據(jù)集 內(nèi)的關(guān)聯(lián)索引并行地確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元。
[0086] 示例14可包括示例13的系統(tǒng),其中確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元 包括使用單指令多數(shù)據(jù)(SIMD)指令并行地對每個數(shù)據(jù)集中的數(shù)據(jù)條目執(zhí)行操作。
[0087] 示例15可包括示例14的系統(tǒng),其中每個處理階段的輸出產(chǎn)生數(shù)據(jù)集,其作為到下 一個處理階段的新數(shù)據(jù)集輸入而被接收。
[0088] 示例16可包括示例9的系統(tǒng),其中邊界值數(shù)據(jù)單元是最小值數(shù)據(jù)單元和最大值數(shù) 據(jù)單元中的一個。
[0089] 示例17,至少一個計算機可讀介質(zhì),其包括指令,該指令如果被處理器執(zhí)行則促使 計算機用于與確定所確定的邊界值數(shù)據(jù)單元到大數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引并行地確定大數(shù)據(jù) 集中的邊界值數(shù)據(jù)單元。
[0090] 示例18可包括示例17的至少一個計算機可讀介質(zhì),其進一步包括指令,該指令如 果被處理器執(zhí)行則促使計算機用于將數(shù)據(jù)值和該數(shù)據(jù)值的關(guān)聯(lián)索引組合到單個數(shù)據(jù)單元 內(nèi),并且將單個數(shù)據(jù)單元存儲為大數(shù)據(jù)集中的數(shù)據(jù)條目。
[0091] 示例19可包括示例18的至少一個計算機可讀介質(zhì),其中該指令如果被處理器執(zhí) 行則促使計算機用于與確定所確定的邊界值數(shù)據(jù)單元到大數(shù)據(jù)內(nèi)的關(guān)聯(lián)索引并行地確定 大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元,這包括以分級方式執(zhí)行的多個處理階段期間連續(xù)確定大數(shù) 據(jù)集內(nèi)較小數(shù)據(jù)集的邊界值數(shù)據(jù)單元直到產(chǎn)生單個數(shù)據(jù)單元。
[0092] 示例20可包括示例19的至少一個計算機可讀介質(zhì),其中每個處理階段接收數(shù)據(jù) 集并且將該數(shù)據(jù)集分成多個較小數(shù)據(jù)集,其中每個數(shù)據(jù)集包括多個數(shù)據(jù)條目。
[0093] 示例21可包括示例20的至少一個計算機可讀介質(zhì),其中每個處理階段與確定所 確定的值到大數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引并行地確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元。
[0094] 示例22可包括示例21的至少一個計算機可讀介質(zhì),其中確定較小數(shù)據(jù)集的較小 數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元包括使用單指令多數(shù)據(jù)(SIMD)指令并行地對每個數(shù)據(jù) 集中的數(shù)據(jù)條目執(zhí)行操作。
[0095] 示例23可包括示例22的至少一個計算機可讀介質(zhì),其中每個處理階段的輸出產(chǎn) 生數(shù)據(jù)集,其作為到下一個處理階段的新數(shù)據(jù)集輸入而被接收并且第一處理階段接收大數(shù) 據(jù)集作為數(shù)據(jù)集輸入。
[0096] 示例24可包括示例17的至少一個計算機可讀介質(zhì),其中大數(shù)據(jù)集作為結(jié)構(gòu)化陣 列存儲在數(shù)據(jù)庫中。
[0097] 示例25可包括示例17的至少一個計算機可讀介質(zhì)系統(tǒng),其中邊界值數(shù)據(jù)單元是 最小值數(shù)據(jù)單元和最大值數(shù)據(jù)單元中的一個。
[0098] 示例還可包括設(shè)備,其包括用于執(zhí)行示例1至18中任一項的方法的部件。
[0099] 本發(fā)明的實施例能適用于與所有類型的半導體集成電路("1C")芯片一起使用。這 些1C芯片的示例包括但不限于處理器、控制器、芯片集部件、可編程邏輯陣列(PLA)、存儲 器芯片、網(wǎng)絡(luò)芯片及類似物。另外,在圖中的一些中,信號導線用線表示。一些可以不同來指 示更多的組成信號路徑、具有數(shù)字標簽來指示許多組成信號路徑和/或在一個或多個端具 有箭頭來指示主要信息流方向。然而,這不應(yīng)以限制性的方式解釋。相反,這樣的附加細節(jié) 可連同一個或多個示范性實施例一起使用以便于更容易地理解電路。任何表示的信號線, 無論是否具有額外的信息,實際上可包括可在多個方向上行進并且可用任何適合類型的信 號方案(例如用差分對、光纖線和/或單端線實現(xiàn)的數(shù)字或模擬線)實現(xiàn)的一個或多個信號。
[0100] 可已經(jīng)給出示例尺寸/模型/值/范圍,但本發(fā)明的實施例不限于此。隨著制造 技術(shù)(例如光刻)隨時間而成熟,預期可制造具有較小尺寸的設(shè)備。另外,為了簡化說明和論 述,并且為了不混淆本發(fā)明的實施例的某些方面,眾所周知的到1C芯片和其他部件的電力 /接地連接可在或可不在圖內(nèi)示出。此外,設(shè)置可采用框圖形式示出以便避免掩蓋本發(fā)明 的實施例,并且還基于的事實是,關(guān)于這樣的框圖設(shè)置的實現(xiàn)的細節(jié)高度取決于實現(xiàn)實施 例所在平臺(即,這樣的細節(jié)應(yīng)該完全在本領(lǐng)域內(nèi)技術(shù)人員的視野內(nèi))。在闡述具體細節(jié)(例 如,電路)以便描述本發(fā)明的示例實施例的情況下,可以在沒有這些具體細節(jié)或具有這些具 體細節(jié)的變化形式的情況下實踐本發(fā)明的實施例,這對本領(lǐng)域內(nèi)技術(shù)人員應(yīng)該是明顯的。 從而描述被視為說明性而非限制性的。
[0101] 一些實施例例如可使用可存儲指令、指令集(其如果由機器執(zhí)行則可促使機器執(zhí) 行根據(jù)實施例的方法和/或操作)的機器或有形的計算機可讀介質(zhì)或物品而實現(xiàn)。這樣的 機器可包括,例如任何適合的處理平臺、計算平臺、計算裝置、處理裝置、計算系統(tǒng)、處理系 統(tǒng)、計算機、處理器或類似物,并且可使用硬件和/或軟件的任何適合的組合而實現(xiàn)。機器 可讀介質(zhì)或物品可包括,例如任何適合類型的存儲器單元、存儲器裝置、存儲器物品、存儲 器介質(zhì)、存儲裝置、存儲物品、存儲介質(zhì)和/或存儲單元,例如存儲器、可移動或不可移動介 質(zhì)、可擦除或不可擦除介質(zhì)、可寫或可重寫介質(zhì)、數(shù)字或模擬介質(zhì)、硬盤、軟盤、壓縮盤、只讀 存儲器(⑶-ROM)、可記錄壓縮盤(⑶-R)、可重寫壓縮盤(⑶-RW)、光盤、磁介質(zhì)、磁光介質(zhì)、 可移動存儲器卡或盤、各種類型的數(shù)字多功能盤(DVD)、帶、盒式磁帶或類似物。指令可包括 任何適合類型的代碼,例如源代碼、編譯代碼、解釋代碼、可執(zhí)行代碼、靜態(tài)碼、動態(tài)碼、加密 碼,以及類似物,其使用任何適合的高級、低級、面向?qū)ο?、視覺、編譯和/或解釋性編程語 言而實現(xiàn)。
[0102] 除非另外專門規(guī)定,可意識到例如"處理"、"計算"、"運算"、"確定"或類似的等的 術(shù)語指計算機或計算系統(tǒng)或相似電子計算裝置的動作和/或處理,其操縱在計算系統(tǒng)的寄 存器和/或存儲器內(nèi)表示為物理量(例如,電子)的數(shù)據(jù)和/或?qū)⑵渥儞Q為其他數(shù)據(jù),這樣的 其他數(shù)據(jù)相似地表示為計算系統(tǒng)的存儲器、寄存器或其他這樣的信息存儲、傳輸或顯示裝 置內(nèi)的物理量。實施例在該這個上下文中不受限制。
[0103] 術(shù)語"耦合"可在本文中用于指談?wù)摰牟考g的任何類型的關(guān)系(直接或間接 的),并可適用于電、機械、流體、光、電磁、機電或其他連接。另外,術(shù)語"第一"、"第二"等在 本文中僅用于便于論述,并且不具有特定時間或時間順序的意義,除非另外指出。
[0104] 本領(lǐng)域內(nèi)技術(shù)人員將從前面的描述意識到本發(fā)明的實施例的廣泛的技術(shù)可以以 多種形式實現(xiàn)。因此,盡管本發(fā)明的實施例已經(jīng)連同其特定示例描述,本發(fā)明的實施例的真 正范圍不應(yīng)這樣受限制,因為當研究圖、說明書和下面的權(quán)利要求時其他修改將對技術(shù)人 員變得明顯。
【權(quán)利要求】
1. 一種方法,包括: 通過以分級方式執(zhí)行的多個處理階段期間連續(xù)確定大數(shù)據(jù)集內(nèi)較小數(shù)據(jù)集的邊界值 數(shù)據(jù)單元直到產(chǎn)生單個數(shù)據(jù)單元而與確定所確定的邊界值數(shù)據(jù)單元到所述大數(shù)據(jù)集內(nèi)的 關(guān)聯(lián)索引并行地確定所述大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元,其中每個數(shù)據(jù)集包括多個數(shù)據(jù)條 目。
2. 如權(quán)利要求1所述的方法,其進一步包括: 將數(shù)據(jù)值和所述數(shù)據(jù)值的關(guān)聯(lián)索引組合到單個數(shù)據(jù)單元內(nèi),并且將所述單個數(shù)據(jù)單元 存儲為所述大數(shù)據(jù)集中的數(shù)據(jù)條目。
3. 如權(quán)利要求1所述的方法,其中每個處理階段與確定所確定的值到所述大數(shù)據(jù)集 內(nèi)的關(guān)聯(lián)索引并行地確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元。
4. 如權(quán)利要求3所述的方法,其中確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元包括 使用單指令多數(shù)據(jù)(SIMD)指令并行地對每個數(shù)據(jù)集中的數(shù)據(jù)條目執(zhí)行操作。
5. 如權(quán)利要求4所述的方法,其中每個處理階段的輸出產(chǎn)生作為到下一個處理階段 的新數(shù)據(jù)集輸入而被接收的數(shù)據(jù)集。
6. 如權(quán)利要求1所述的方法,其中第一處理階段接收所述大數(shù)據(jù)集作為數(shù)據(jù)集輸入。
7. 如權(quán)利要求1所述的方法,其中所述大數(shù)據(jù)集作為結(jié)構(gòu)化陣列存儲在數(shù)據(jù)庫中。
8. 如權(quán)利要求1-7中任一項所述的方法,其中所述邊界值數(shù)據(jù)單元是最小值數(shù)據(jù)單 元和最大值數(shù)據(jù)單元中的一個。
9. 一種系統(tǒng),包括: 確定模塊,用于與確定所確定的邊界值數(shù)據(jù)單元到大數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引并行地確定 所述大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元。
10. 如權(quán)利要求9所述的系統(tǒng),其進一步包括: 組合模塊,用于將數(shù)據(jù)值和所述數(shù)據(jù)值的關(guān)聯(lián)索引組合到單個數(shù)據(jù)單元內(nèi),并且將所 述單個數(shù)據(jù)單元存儲為所述大數(shù)據(jù)集中的數(shù)據(jù)條目。
11. 如權(quán)利要求10所述的系統(tǒng),其中所述確定模塊用于與確定所確定的邊界值數(shù)據(jù) 單元到所述大數(shù)據(jù)內(nèi)的關(guān)聯(lián)索引并行地確定所述大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元,其包括以 分級方式執(zhí)行的多個處理階段期間連續(xù)確定所述大數(shù)據(jù)集內(nèi)較小數(shù)據(jù)集的邊界值數(shù)據(jù)單 元直到產(chǎn)生單個數(shù)據(jù)單元。
12. 如權(quán)利要求11所述的系統(tǒng),其中每個處理階段接收數(shù)據(jù)集并且將所述數(shù)據(jù)集分成 多個較小數(shù)據(jù)集,其中每個數(shù)據(jù)集包括多個數(shù)據(jù)條目。
13. 如權(quán)利要求12所述的系統(tǒng),其中每個處理階段與確定所確定的值到所述大數(shù)據(jù)集 內(nèi)的關(guān)聯(lián)索引并行地確定所述較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元。
14. 如權(quán)利要求13所述的系統(tǒng),其中確定所述較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元 包括使用單指令多數(shù)據(jù)(SIMD)指令并行地對每個數(shù)據(jù)集中的數(shù)據(jù)條目執(zhí)行操作。
15. 如權(quán)利要求14所述的系統(tǒng),其中每個處理階段的輸出產(chǎn)生作為到下一個處理階段 的新數(shù)據(jù)集輸入而被接收的數(shù)據(jù)集。
16. 如權(quán)利要求9-15中任一項所述的系統(tǒng),其中所述邊界值數(shù)據(jù)單元是最小值數(shù)據(jù)單 元和最大值數(shù)據(jù)單元中的一個。
17. -種設(shè)備,包括: 用于與確定所確定的邊界值數(shù)據(jù)單元到大數(shù)據(jù)集內(nèi)的關(guān)聯(lián)索引并行地確定所述大數(shù) 據(jù)集中的邊界值數(shù)據(jù)單元的部件。
18. 如權(quán)利要求17所述的設(shè)備,其進一步包括: 用于將數(shù)據(jù)值和所述數(shù)據(jù)值的關(guān)聯(lián)索引組合到單個數(shù)據(jù)單元內(nèi)并且將所述單個數(shù)據(jù) 單元存儲為所述大數(shù)據(jù)集的數(shù)據(jù)條目的部件。
19. 如權(quán)利要求18所述的設(shè)備,其進一步包括用于與確定所確定的邊界值數(shù)據(jù)單元到 所述大數(shù)據(jù)內(nèi)的關(guān)聯(lián)索引并行地確定所述大數(shù)據(jù)集中的邊界值數(shù)據(jù)單元的部件,其包括以 分級方式執(zhí)行的多個處理階段期間連續(xù)確定所述大數(shù)據(jù)集內(nèi)較小數(shù)據(jù)集的邊界值數(shù)據(jù)單 元直到產(chǎn)生單個數(shù)據(jù)單元。
20. 如權(quán)利要求19所述的設(shè)備,其中每個處理階段接收數(shù)據(jù)集并且將所述數(shù)據(jù)集分成 多個較小數(shù)據(jù)集,其中每個數(shù)據(jù)集包括多個數(shù)據(jù)條目。
21. 如權(quán)利要求20所述的設(shè)備,其中每個處理階段與確定所確定的值到所述大數(shù)據(jù)集 內(nèi)的關(guān)聯(lián)索引并行地確定較小數(shù)據(jù)集的集之間的邊界值數(shù)據(jù)單元。
22. 如權(quán)利要求21所述的設(shè)備,其中確定較小數(shù)據(jù)集的較小數(shù)據(jù)集的集之間的邊界值 數(shù)據(jù)單元包括使用單指令多數(shù)據(jù)(SIMD)指令并行地對每個數(shù)據(jù)集中的數(shù)據(jù)條目執(zhí)行操作。
23. 如權(quán)利要求22所述的設(shè)備,其中每個處理階段的輸出產(chǎn)生作為到下一個處理階 段的新數(shù)據(jù)集輸入而被接收的數(shù)據(jù)集,并且第一處理階段接收所述大數(shù)據(jù)集作為數(shù)據(jù)集輸 入。
24. 如權(quán)利要求17所述的設(shè)備,其中所述大數(shù)據(jù)集作為結(jié)構(gòu)化陣列存儲在數(shù)據(jù)庫中。
25. 如權(quán)利要求17-24中任一項所述的設(shè)備,其中所述邊界值數(shù)據(jù)單元是最小值數(shù)據(jù) 單元和最大值數(shù)據(jù)單元中的一個。
【文檔編號】G06F9/38GK104050230SQ201410096786
【公開日】2014年9月17日 申請日期:2014年3月17日 優(yōu)先權(quán)日:2013年3月15日
【發(fā)明者】L-A.唐, S-H.許 申請人:英特爾公司