專利名稱:檢索裝置以及檢索方法
技術(shù)領(lǐng)域:
本申請涉及檢索裝置以及檢索方法,尤其涉及從作為輸入字符串的文本中檢索作 為任意字符串的模式(pattern)的檢索裝置以及檢索方法,其中輸入字符串是應(yīng)用自動機 處理技術(shù)而提供的。
背景技術(shù):
近年來,在各種各樣的領(lǐng)域,信息量爆炸性地增長。并且,根據(jù)領(lǐng)域,信息量從千兆 字節(jié)量級(gigabate order)變成兆兆字節(jié)量級(terabyte order),從這樣浩瀚的數(shù)據(jù)中難 以在短時間內(nèi)取出所期望的數(shù)據(jù)。從所提供的文本中檢索任意類型模式的模式匹配被應(yīng)用于字符處理軟件或數(shù)據(jù) 庫檢索等各種領(lǐng)域中。S卩,近年來,對以XML數(shù)據(jù)庫為主的需要模式匹配(檢索)處理的應(yīng)用程序的需求 具有增長的趨勢,并且為了使其高速化而提出了將進行模式匹配的自動機匹配裝置(檢索 核)安裝在處理器上的方法。并且,以往在具有多個這樣的匹配裝置的處理器系統(tǒng)中,研究了對一個應(yīng)匹配的 文本如何高速地進行匹配。具體來說,以往提出了使用具有多個匹配裝置的處理器系統(tǒng)來一次對多個字符進 行匹配的方法。并且,以往為了使用具有多個匹配裝置的處理器系統(tǒng)來執(zhí)行并行處理還提出了分 割匹配文本的方法。專利文獻1 日本專利文獻特開2005-242672號公報;專利文獻2 日本專利申請?zhí)卦S第觀65831號公報。
發(fā)明內(nèi)容
發(fā)明要解決的問題以往,提出了使用具有多個匹配裝置的處理器系統(tǒng)來進行文本的匹配的技術(shù)方案。然而,例如在數(shù)據(jù)庫直接由多個XML文本群構(gòu)成的XML數(shù)據(jù)庫系統(tǒng)的匹配(檢索) 處理中,若從一開始就進行模式匹配,則由于各XML文本之間并行程度高,因此通過增加匹 配裝置的安裝數(shù)量等來并行地執(zhí)行匹配處理,從而能夠容易地提高處理速度。然而這會增 加CPU利用該匹配結(jié)果所進行的后處理的比重。此外,當(dāng)使匹配處理和CPU的后處理并行進行時,用于減少其開銷的數(shù)據(jù)傳遞方 法以及控制方式對于提高檢索(匹配)系統(tǒng)整體的速度來說很重要。并且還需要規(guī)定在保持各匹配結(jié)果的文本單位的順序關(guān)系的同時通過CPU進行 后處理的機制。例如,在XML數(shù)據(jù)庫系統(tǒng)中的檢索中,如果XML文本的CPU處理順序與在 XML數(shù)據(jù)庫中管理的順序每次都不同,則檢索結(jié)果每次都按不同的順序顯示,從而對于用戶來說是難以使用的系統(tǒng)。因此,還需要規(guī)定基于通過并行動作按不同順序完成匹配的匹配結(jié)果而在可按記 錄順序進行后處理的階段并行處理的有效的機制。本申請就是鑒于上述現(xiàn)有以及相關(guān)技術(shù)中的問題而完成的,其目的在于,提供一 種可減少各匹配裝置(檢索核)和CPU處理的并行動作的開銷來進行數(shù)據(jù)交接并可實現(xiàn)系 統(tǒng)的高速化的檢索裝置以及檢索方法。用于解決問題的手段根據(jù)第一實施方式,提供一種檢索裝置,包括CPU ;以及具有調(diào)度器和多個檢索 核的加速器。所述CPU按照被輸入的檢索表達式來生成自動機,所述調(diào)度器將處理對象文 本以被排序的記錄的單位分配給所述各檢索核。并且,所述各檢索核對所述被分配的各記 錄分別并行地進行自動機匹配,所述CPU按所述各記錄的所述排序的順序?qū)λ龈饔涗泦?位的匹配結(jié)果進行邏輯表達式評價。根據(jù)第二實施方式,提供一種使用了檢索裝置的檢索方法,其中所述檢索裝置包 括CPU、以及具有調(diào)度器和多個檢索核的加速器。所述CPU按照被輸入的檢索表達式來生成 自動機,所述調(diào)度器將處理對象文本以被排序的記錄的單位分配給所述各檢索核。并且,所 述各檢索核對所述被分配的各記錄分別并行地進行匹配處理,所述CPU按所述各記錄的所 述排序的順序?qū)λ龈饔涗泦挝坏钠ヅ浣Y(jié)果進行邏輯表達式評價。根據(jù)第三的實施方式,提供一種使計算機執(zhí)行以下步驟的檢索程序,其中,所述計 算機包括CPU ;以及具有調(diào)度器和多個檢索核的加速器,所述步驟包括使所述CPU按照被 輸入的檢索表達式來生成自動機的步驟;使所述調(diào)度器將處理對象文本以被排序的記錄的 單位分配給所述各檢索核的步驟;使所述各檢索核對所述被分配的各記錄分別并行地進行 自動機匹配的步驟;以及使所述CPU按所述各記錄的所述排序的順序?qū)λ龈饔涗泦挝坏?匹配結(jié)果進行邏輯表達式評價的步驟。發(fā)明效果根據(jù)各實施方式,能夠提供可減少各匹配裝置和CPU處理的并行動作的開銷來進 行數(shù)據(jù)交接并可實現(xiàn)系統(tǒng)的高速化的檢索裝置以及檢索方法。
圖IA是用于說明作為自動機的關(guān)鍵詞檢索算法的一個例子的σ (Sigma)算法的 圖(之一);圖IB是用于說明作為自動機的關(guān)鍵詞檢索算法的一個例子的σ (Sigma)算法的 圖(之二);圖2是用于簡要地說明檢索裝置的一個例子的圖;圖3是簡要地示出現(xiàn)有的檢索裝置中的檢索順序的一個例子的圖;圖4是簡要地示出根據(jù)現(xiàn)有的檢索方法的處理順序的圖;圖5是簡要地示出本實施方式的檢索裝置中的檢索順序的一個例子的圖;圖6是簡要地示出根據(jù)本實施方式的檢索方法的處理順序的圖;圖7是示出檢索裝置的一個實施例的主要部分的框圖;圖8是示出檢索裝置的其他實施例的主要部分的框圖9是簡要地示出適用各實施例的檢索服務(wù)器的一個例子的圖;圖10是簡要地示出包含圖9的檢索服務(wù)器的檢索系統(tǒng)的整體構(gòu)成的圖;圖11是用于說明根據(jù)記錄ID確定記錄的處理的圖;圖12是用于說明各模塊的作用的圖;圖13是用于說明各API函數(shù)和調(diào)用過程的圖;圖14是示出控制數(shù)據(jù)的詳細的數(shù)據(jù)結(jié)構(gòu)的圖;圖15是用于說明共享數(shù)據(jù)結(jié)構(gòu)的圖;圖16是用于說明各數(shù)據(jù)的寫入以及讀出關(guān)系的圖(之一);圖17是用于說明各數(shù)據(jù)的寫入以及讀出關(guān)系的圖(之二);圖18A是用于說明調(diào)度器的動作的圖(之一);圖18B是用于說明調(diào)度器的動作的圖(之二);圖18C是用于說明調(diào)度器的動作的圖(之三);圖19A是用于說明事件緩沖器控制問題的圖(之一);圖19B是用于說明事件緩沖器控制問題的圖(之二);圖19C是用于說明事件緩沖器控制問題的圖(之三);圖20A是用于說明各數(shù)據(jù)的寫入和讀出關(guān)系的圖(之一);圖20B是用于說明各數(shù)據(jù)的寫入和讀出關(guān)系的圖(之二);圖20C是用于說明各數(shù)據(jù)的寫入和讀出關(guān)系的圖(之三);圖21是用于說明事件緩沖器控制用信息的圖;圖22A是用于說明事件緩沖器沖掉時的動作例的圖(之一);圖22B是用于說明事件緩沖器沖掉時的動作例的圖(之一);圖22C是用于說明事件緩沖器沖掉時的動作例的圖(之一);圖23是用于將API函數(shù)和調(diào)用過程與流程圖關(guān)聯(lián)起來進行說明的圖;圖M是示出σ檢索處理的一個例子的流程圖;圖25是逐條目等候圖M的σ評價時的流程圖;圖沈是針對每多個條目等候圖M的σ評價時的流程圖;圖27是示出ο評價處理的一個例子的流程圖;圖觀是示出σ緩沖器滿處理的一個例子的流程圖。附圖標(biāo)記說明11檢索對象文檔12輸入字符13當(dāng)前狀態(tài)14輸入地址15存儲器16輸出數(shù)據(jù)17下一個狀態(tài)AC加速器CHIP半導(dǎo)體芯片DS 定向月艮務(wù)器(director server)
MEM存儲器控制器NET 網(wǎng)絡(luò)PB處理器盒PM處理器模塊PS處理器系統(tǒng)(檢索裝置)RS 機架系統(tǒng)(rack system)SC檢索核(匹配裝置)SD調(diào)度器SS檢索服務(wù)器STR儲存裝置
具體實施例方式首先,在詳細說明檢索裝置以及檢索方法的實施例之前,先參考
現(xiàn)有技 術(shù)及其問題。圖IA以及圖IB是用于說明作為自動機的關(guān)鍵詞檢索算法的一個例子的σ算法 的圖。圖IA以及圖IB示出了從檢索對象文檔中檢索是否存在關(guān)鍵詞“blUe”、“green”、 "red"以及“yellow”的例子。首先,如圖IA所示,生成與各關(guān)鍵詞條件對應(yīng)的自動機。具體來說,生成從以“0” 表示的根轉(zhuǎn)移各關(guān)鍵詞的開頭字符“b”、“g”、“r”、“y”并進而轉(zhuǎn)移到各關(guān)鍵詞串的字符的 自動機。如果直到各關(guān)鍵詞串的末尾字符為止都一致,則認為該關(guān)鍵詞串被檢索到。這里, 例如在關(guān)鍵詞串“green”中包含有“re”,若之后有“d”就與“red” 一致,因此,如圖IA所示 存在從“green”的中途向“red”的“d”轉(zhuǎn)移的路徑。檢索從根開始,若自動機內(nèi)有關(guān)鍵詞則依次轉(zhuǎn)移,如果讀取到與關(guān)鍵詞無關(guān)的字 符就返回到根。例如,如圖IB所示,當(dāng)輸入了包含“black”的文檔時,轉(zhuǎn)移到“blue”的開頭的“b”, 接著轉(zhuǎn)移到“ 1 ”,但由于接下來是“ a”,因此返回到根。如此,如果文檔內(nèi)存在自動機的關(guān)鍵詞串,則檢索到各關(guān)鍵詞串的末尾字符為止 并輸出“命中(Hit)”信息,表明存在關(guān)鍵詞串。其中,在自動機檢索中,通過節(jié)點或“狀態(tài)” 來表示是位于各關(guān)鍵詞串的第幾個字符處。例如,根的狀態(tài)為1,若位于“blue”的“b”處則 狀態(tài)為2、若位于"u"處則狀態(tài)為4。圖2是用于簡要地說明檢索裝置的一個例子的圖,用于說明利用了確定性有限狀 態(tài)自動機的檢索裝置的圖。如圖2所示,當(dāng)輸入了存儲在盤裝置等中的檢索對象文檔11時,從其中依次提取 字符字節(jié)碼12。在以下的說明中,字符字節(jié)碼12為8比特,并形成256條目。將組合保存在寄存器中的當(dāng)前狀態(tài)(表示當(dāng)前狀態(tài)的數(shù)據(jù))13和字符字節(jié)碼12 而成的索引作為形成檢索關(guān)鍵詞自動機的存儲器15的輸入地址14。被輸入了輸入地址14的存儲器15輸出輸出數(shù)據(jù)16,該輸出數(shù)據(jù)中包含下一個狀 態(tài)17以及命中信息(命中值)。并且,下一個狀態(tài)17將變成當(dāng)前狀態(tài)13。
圖3是簡要地示出現(xiàn)有檢索裝置中的檢索順序的一個例子的圖,圖4是簡要地示 出根據(jù)現(xiàn)有檢索方法的處理順序的圖。如圖3所示,現(xiàn)有檢索裝置中的檢索順序例如如下一旦輸入檢索表達式(30),則 生成自動機(31),并使用該自動機重復(fù)進行記錄匹配(3h、32b、…)以及邏輯表達式評價 (33a、33b、…)。其中,自動機的生成31、記錄的匹配32a、32b、…以及邏輯表達式評價33a、33b、… 都由CPU (處理裝置)進行。并且,如圖4所示,在通過現(xiàn)有檢索方法進行的處理順序中,必須按記錄的順序進 行使用了自動機的記錄匹配一匹配結(jié)果的呈現(xiàn)(presentation)—邏輯表達式評價一檢索 結(jié)果的呈現(xiàn)。S卩,在現(xiàn)有檢索方法的處理順序中,在進行了記錄a的匹配(1)之后,進行記錄a 的評價O),接著在進行了記錄b的匹配(3)之后,進行記錄b的評價G),然后在進行了記 錄c的匹配(5)之后,進行記錄c的評價(6)。并且,檢索結(jié)果需要按記錄的順序維持。在現(xiàn)有的檢索裝置以及檢索方法中,各匹配裝置和CPU處理的并行動作的開銷 大,系統(tǒng)動作遲緩,或者必須將檢索結(jié)果按記錄順序維持。以下,參考附圖對檢索裝置以及檢索方法的實施例進行說明,在此之前,作為一個 例子,對XML數(shù)據(jù)庫檢索用加速器(AC)進行說明。檢索用數(shù)據(jù)庫軟件被移植到面向例如需要IA服務(wù)器難以處理的大規(guī)模XML數(shù)據(jù) 庫的用戶而安裝了高性能處理器的專用服務(wù)器設(shè)備中,面向該專用服務(wù)器的處理器安裝進 行XML記錄匹配處理的加速器(AC)來提高處理速度。首先,對應(yīng)用于本實施方式的檢索裝置(處理器系統(tǒng))的加速器(調(diào)度器SD以及 檢索核(匹配裝置)SC)的概要進行說明。即,說明加速器的概要、塊構(gòu)成以及動作,還說明 各模塊的作用。本實施方式的檢索裝置是進行例如XML數(shù)據(jù)庫中的字符串的檢索的裝置,進行從 該數(shù)據(jù)庫中檢索與用戶所提供的檢索表達式匹配的數(shù)據(jù)的處理。在所使用的檢索算法中,例如生成與所提供的檢索表達式對應(yīng)的自動機,將作為 XML數(shù)據(jù)的管理單位的記錄作為該自動機的輸入而提供并由此進行匹配。在本實施方式的檢索裝置中的檢索處理大體上分為記錄匹配和邏輯表達式評價 兩個處理。加速器負責(zé)其中的記錄匹配處理。圖5是簡要地示出本實施方式的檢索裝置中的檢索順序的一個例子的圖。比較圖5和上述圖3可知,在本實施方式的檢索裝置的檢索順序中,記錄匹配32a、 32b、…和邏輯表達式評價33a、3!3b并不是全部都通過CPU來處理,而是一些處理通過加速 器AC來處理,加速器AC具有調(diào)度器SD以及多個自動機處理裝置(例如,4個檢索核)SC。S卩,調(diào)度器SD進行記錄分配;Ma、;Mb、…,并且檢索核SC進行自動機的登記35以 及記錄匹配32。如上所述,通過安裝調(diào)度器SD以及多個檢索核SC作為加速器AC,使得記 錄匹配本身被并行處理以提高處理速度,并且與邏輯表達式評價并行地動作。圖6是簡要地示出根據(jù)本實施方式的檢索方法的處理順序的圖。比較圖6和上述圖4可知,首先,在參考標(biāo)號61中,通過加速器AC的4個檢索核 SC并行地對4個記錄匹配進行處理(1)。另外,在參考標(biāo)號62中,通過采用保持記錄順序的陣列和保持匹配結(jié)果的緩沖器這樣的構(gòu)成,消除按匹配順序維持記錄的需要,實現(xiàn)并行 處理。另外,如參考標(biāo)號63那樣,邏輯表達式評價需要由CPU按照XML記錄的順序依次進 行處理。圖7是示出檢索裝置的一個實施例的主要部分的框圖。如圖7所示,各檢索核SC自主地訪問主存儲器并讀取存儲在各主存儲器中的XML 數(shù)據(jù)的各記錄(XML數(shù)據(jù)庫以稱作記錄的單位保持數(shù)據(jù))進行匹配,并將作為匹配結(jié)果的命 中信息寫入到共享數(shù)據(jù)中,該共享數(shù)據(jù)位于能由CPU高速訪問的L2高速緩沖存儲器或者工 作存儲器(WorkRAM)中。被CPU和加速器AC共享的控制數(shù)據(jù)大致分為2個陣列。其中之一是保持記錄信 息(記錄的開頭指針等)的記錄種類陣列,另一個是保存匹配結(jié)果的事件緩沖器陣列。調(diào)度器(調(diào)度器電路)SD監(jiān)視從各檢索核SC通知的空閑狀態(tài),向空閑的檢索核傳 遞記錄信息,并指示進行匹配。CPU利用命中信息與加速器AC并行地進行邏輯表達式評價。圖8是示出檢索裝置的其他實施例的主要部分的框圖。圖8所示的實施例是設(shè)置了兩個上述圖7所示構(gòu)成的實施例,并將其構(gòu)成為一個
-H-· I I心片。如圖8所示,在本實施例中,一個半導(dǎo)體芯片(LSI)CHIP具有兩組的圖7所示的 CPU、加速器AC以及L2高速緩沖存儲器。即,半導(dǎo)體芯片CHIP具有2個CPU系統(tǒng)PS,各CPU 系統(tǒng)PS具有CPU核、加速器AC以及L2高速緩沖存儲器(或Work RAM),該加速器AC具有 核調(diào)度器SD以及多個(圖中為4個)檢索核SC。另外,圖7以及圖8的構(gòu)成只是例子,例如一個半導(dǎo)體芯片CHIP也可以被構(gòu)成為 具有2組或4組等的CPU和加速器AC,該加速器AC具有調(diào)度器SD以及8個檢索核SC。圖9是簡要地示出應(yīng)用了各實施例的檢索服務(wù)器的一個例子的圖,并且圖10是簡 要地示出包含圖9的檢索服務(wù)器的檢索系統(tǒng)的整體構(gòu)成的圖。在圖9以及圖10中,參考標(biāo) 號SS表示檢索服務(wù)器、RS表示機架系統(tǒng)、PB表示處理器盒、PM表示處理器模塊、PS表示處 理器系統(tǒng)(檢索裝置)。在圖9中,檢索服務(wù)器SS由1個機架系統(tǒng)RS構(gòu)成,該機架系統(tǒng)RS具有多個(例 如,15個)處理器盒PB,并且,各處理器盒PB分別具有多個(例如,觀個)處理器模塊PM。另外,各處理器模塊PM分別具有3個半導(dǎo)體芯片CHIP和3個主存儲器,并且,各 半導(dǎo)體芯片CHIP具有2個處理器系統(tǒng)PS,各處理器系統(tǒng)PS由一個CPU和加速器AC構(gòu)成, 加速器AC具有調(diào)度器SD和4個檢索核SC。這里,匹配處理能夠通過例如設(shè)置在各處理器系統(tǒng)PS上的各檢索核SC以各記錄 為單位隨機(不按次序)地執(zhí)行,但邏輯表達式評價通過例如CPU按照XML數(shù)據(jù)的記錄順 序進行。在各檢索核SC中例如分別內(nèi)置有可高速訪問的高速緩沖存儲器(臨時高速緩沖 存儲器),在該高速緩沖存儲器中生成并存儲自動機。如圖10所示,數(shù)據(jù)管理部由定向服務(wù)器DS以及儲存服務(wù)器STR構(gòu)成,另外,檢索 處理部由檢索服務(wù)器SS構(gòu)成。檢索服務(wù)器SS經(jīng)由例如LAN等網(wǎng)絡(luò)NET與定向服務(wù)器DS 連接,并例如對儲存服務(wù)器STR中的文檔數(shù)據(jù)進行處理,該儲存服務(wù)器STR與該定向服務(wù)器 DS連接并存儲有XML這樣的結(jié)構(gòu)化文檔數(shù)據(jù)。
如上所述,例如在圖9所示的檢索服務(wù)器中,與2個CPU核X (系統(tǒng)的芯片個數(shù)) 相等數(shù)目的處理器將包含在XML數(shù)據(jù)中的所有記錄分割成與處理器個數(shù)相同的數(shù)目并分 別負責(zé)各個獨立地進行檢索處理。具體來說,例如當(dāng)CPU總數(shù)為256并且有記錄ID為0000至FFFF的記錄時,將記 錄如使得記錄ID為0000 00FF、0100 01FF、…這樣分割為256個,并由各處理器分別負責(zé)。另外,在如圖10所示的檢索系統(tǒng)中,在系統(tǒng)啟動后,保存在儲存裝置STR中的XML 數(shù)據(jù)庫通過定向服務(wù)器DS被分割,被分配給檢索服務(wù)器SS的各處理器(CPU),并被保存到 對應(yīng)的存儲器中。當(dāng)檢索開始時,首先檢索表達式被發(fā)送給檢索服務(wù)器SS,檢索服務(wù)器SS生成自動 機并將其保存在各加速器AC中。然后,各CPU將自己負責(zé)的XML數(shù)據(jù)庫的片段提供到加速 器AC中進行匹配。圖9以及圖10所示的檢索裝置以及檢索系統(tǒng)只是例子,毋庸置疑,可根據(jù)所應(yīng)用 的系統(tǒng)的規(guī)?;蛩蟮臋z索功能等來進行各種改變。例如,在更大規(guī)模的系統(tǒng)中,也可以 構(gòu)成為由多臺機架系統(tǒng)RS構(gòu)成檢索服務(wù)器SS,并通過多臺定向服務(wù)器DS進行管理。圖11是用于說明根據(jù)記錄ID來確定記錄的處理的圖,并示出了 XML數(shù)據(jù)的數(shù)據(jù) 結(jié)構(gòu)。如圖11所示,各記錄使用XML數(shù)據(jù)表)(DT、記錄索引表RIT以及被稱為存儲器數(shù)據(jù) 信息MDI的結(jié)構(gòu)體來管理。首先,XML數(shù)據(jù)表)(DT中容納有XML數(shù)據(jù)整體的信息,并包含指向記錄索引表RIT 的指針。記錄索引表RIT是指向存儲器數(shù)據(jù)信息MDI的指針陣列,各元素通過記錄ID的高 位2字節(jié)來識別。存儲器數(shù)據(jù)信息MDI是將各記錄的記錄信息作為成員的結(jié)構(gòu)體陣列,各元素通過 記錄ID的低位2字節(jié)來識別。另外,記錄信息中包含指向記錄的指針,記錄是加速器AC進 行匹配的單位。如參考圖6所述,匹配處理能夠以各記錄為單位隨機(不按順序)地執(zhí)行,但邏輯 表達式評價需要按該XML數(shù)據(jù)的記錄順序進行。圖12是用于說明各模塊的作用的圖。如圖12所示,模塊大致分為軟件和硬件。并且軟件分為應(yīng)用(應(yīng)用程序)以及驅(qū) 動器,另外硬件分為調(diào)度器SD以及檢索核SC。應(yīng)用(Sigma Evaluation σ評價)進行邏輯表達式評價,若檢測出緩沖器滿,則 調(diào)用σ緩沖器滿。驅(qū)動器分為σ 檢索(Sigma Search)以及 σ 緩沖器滿(Sigma Buffer Full)。σ 檢索參考XML的索引,順序地取出指向記錄的指針,并將其登記到種類陣列中。以適當(dāng)?shù)亩?時(輪詢)觀察緩沖器狀態(tài),并啟動邏輯表達式評價函數(shù)。并且,若邏輯表達式評價函數(shù)結(jié) 束,則沖掉在那之前的種類陣列條目。然后,以適當(dāng)?shù)亩〞r(若邏輯表達式評價函數(shù)結(jié)束, 則對評價完成記錄個數(shù)進行計數(shù),設(shè)置閾值并啟動等)將記錄信息補充到種類陣列中。若邏輯表達式評價進行到事件緩沖器末端,則調(diào)用σ緩沖器滿。然后,對事件緩沖器進行沖刷,并進行等待直到當(dāng)前邏輯表達式評價中的記錄的匹配結(jié)果完成或下一個事 件緩沖器滿為止。若存在空閑狀態(tài)的檢索核SC,則調(diào)度器SD將登記在種類陣列中的尚未開始匹配 的開頭的記錄信息(指針等)分配給檢索核SC,指示開始檢索。一旦記錄信息被提供給檢索核SC,則檢索核SC從存儲器讀入記錄的字符串并進 行匹配。若命中則寫入到事件緩沖器中。若出現(xiàn)越過事件緩沖器或類似情況,適當(dāng)?shù)馗淖?緩沖器狀態(tài)標(biāo)志。若匹配結(jié)束,則向調(diào)度器SD通知空閑狀態(tài)并停止。若出現(xiàn)事件緩沖器滿 等,則中止,等待事件緩沖器被沖刷。接下來,說明加速器AC的驅(qū)動器軟件和應(yīng)用的關(guān)系。圖13是用于說明各API函數(shù)和調(diào)用過程的圖,并示出了應(yīng)用、API函數(shù)、驅(qū)動器 (加速器庫138)以及加速器AC的關(guān)系。如圖13所示,首先,當(dāng)提供了檢索表達式時,在應(yīng)用側(cè)生成對應(yīng)的自動機(131)。 并且,調(diào)用σ分配處理(Sigma Alloc Handle)函數(shù)以及ο配置(Sigma Config)函數(shù),來 進行加速器AC的初始設(shè)定(工作區(qū)域的獲取132以及環(huán)境設(shè)定13 。另外,σ配置函數(shù) 也可以只在啟動系統(tǒng)時調(diào)用。然后,通過調(diào)用σ登記(Sigma Registration)函數(shù)來將生成的自動機登記到加 速器AC(134)。并且,調(diào)用σ檢索(Sigma Search)來開始檢索處理主體(啟動匹配執(zhí)行 135)。通過該ο檢索函數(shù)執(zhí)行整個檢索,應(yīng)用等待結(jié)束。最后,調(diào)用σ釋放處理(Sigma Free Handle)函數(shù)來結(jié)束一系列的檢索處理 (釋放工作區(qū)域136)。σ檢索函數(shù)指示加速器AC進行記錄的匹配,調(diào)用σ評價(Sigma Evaluation)函數(shù)來對完成了邏輯表達式評價準(zhǔn)備的記錄進行邏輯表達式評價(137)。另 外,σ緩沖器滿(Sigma Buffer Full)函數(shù)在保持匹配結(jié)果的事件緩沖器被切換時被調(diào)用。接下來,說明本加速器AC的控制方式。首先,對作為控制數(shù)據(jù)的記錄種類陣列和事件緩沖器陣列進行詳細說明。并 且,關(guān)于加速器的各動作,對作為主要的動作的檢索動作(與ο檢索函數(shù)對應(yīng))進行說 明,并說明整體控制的轉(zhuǎn)移概況。然后,對余下的自動機登記動作(與σ登記(Sigma Registration)函數(shù)對應(yīng))以及環(huán)境設(shè)定動作(與σ配置(Sigma Config)函數(shù)對應(yīng))進 行說明。圖14是示出控制數(shù)據(jù)的詳細的數(shù)據(jù)結(jié)構(gòu)的圖。首先,如圖14所示,控制數(shù)據(jù)大致分為管理各記錄的信息的記錄種類陣列和寫入 通過檢索核進行的匹配結(jié)果的事件緩沖器陣列這兩種。XML數(shù)據(jù)的各記錄按XML數(shù)據(jù)的索引順序被保存在記錄種類陣列的各行中,并且 其中存儲了匹配和邏輯表達式評價已完成的記錄的行被釋放,然后,當(dāng)使用到末端行時,循 環(huán)返回到開頭行來使用。這里,各項目具有以下的含義?!てヅ錉顟B(tài)標(biāo)志該標(biāo)志記錄該記錄的檢索核的匹配狀態(tài),被使用在可否進行邏輯 表達式評價的判定、以及緩沖器沖刷時的邏輯表達式評價可否重新開始的判定中。另外,標(biāo) 記的含義如下。0 匹配尚未結(jié)束并且匹配沒有越過事件緩沖器。
1 至少有一個匹配越過了事件緩沖器。2:匹配結(jié)束。 檢索核編號是對其記錄進行匹配或已匹配的檢索核的編號,當(dāng)沖刷緩沖器時被 使用。· *記錄是指向XML數(shù)據(jù)的記錄的開頭地址的指針,在匹配開始時傳遞到檢索核 中被使用。以下,“*”表示地址?!び行?biāo)志是表示該行是否正被使用的標(biāo)記,用于檢查在調(diào)度器將該行拿到自己 緩沖器內(nèi)時是否有效。0:未使用。1:使用?!び涗汭D(ReCOrd ID)用于邏輯表達式評價,并不直接參與本發(fā)明的控制?!?*事件緩沖器是指向存儲有匹配結(jié)果的事件緩沖器區(qū)域的指針,用于邏輯表達 式評價。“*登記top”以及“*登記bottom”這兩個指針變量指向當(dāng)前正被使用的行的開頭 地址以及末端地址,并由驅(qū)動器函數(shù)σ檢索(Sigma Search)來保持。下一檢索top指針 變量指向當(dāng)前登記著的記錄中尚未開始匹配的行的開頭地址,并被保持在調(diào)度器內(nèi)的寄存 器中。由檢索核進行的匹配結(jié)果被寫入事件緩沖器陣列中。圖14示出了檢索核為4個 (檢索核0、1、2、3:30、并且分配給各檢索核的區(qū)域為4個事件緩沖器(A、B、C、D)的情況。在各事件緩沖器的末尾條目中預(yù)先寫入有指向下一個事件緩沖器(例如,若是A 則B、若是B則C、…)的指針。并且,例如如圖14中的檢索核0的事件緩沖器所示,檢索 核以及邏輯表達式評價函數(shù)(Sigma Evaluation σ評價)分別能夠自動地轉(zhuǎn)移到下一個 緩沖器。在圖14中,粗虛線RET表示在邏輯表達式評價中當(dāng)前參考的最后條目的位置,并 且細虛線WET表示通過匹配核當(dāng)前正在寫入匹配結(jié)果的最后條目TOT。并且,粗線NR表示 該記錄的匹配尚未結(jié)束。緩沖器個數(shù)實際上假設(shè)為2個。作為控制所需的其他數(shù)據(jù),還有緩沖器距離。該距離表示在檢索核和邏輯表達式 評價中當(dāng)前被使用的事件緩沖器之間的距離,例如,在圖14的檢索核0中寫入有“4”。該數(shù) 據(jù)被保持在檢索核內(nèi)部的寄存器中,每當(dāng)檢索核越過事件緩沖器時加“1”(+1),并且每當(dāng)事 件緩沖器被沖刷時減“1”(-1)。上述數(shù)據(jù)不僅被用于檢索核的動作,而且在緩沖器沖刷時的動作判定中還被驅(qū)動 器(CPU側(cè))參考,因此,其拷貝還被復(fù)制到置于調(diào)度器(SD)中的映射(map)IO寄存器中 (或者,檢索核的緩沖器距離寄存器被置于存儲器映射上)。圖15是用于說明共享數(shù)據(jù)的結(jié)構(gòu)(控制數(shù)據(jù)的配置)的圖。如圖15所示,記錄種類陣列以及事件緩沖器陣列被置于L2高速緩沖存儲器或工 作 RAM(WorkRAM)區(qū)域中。緩沖器距離原始值被置于檢索核(SC)的內(nèi)部,緩沖器距離的拷貝被置于調(diào)度器 (SD)中。下一匹配top被置于調(diào)度器內(nèi)部。另外,在圖15中還描繪出了后面用于說明檢索 動作的位于調(diào)度器和檢索核SC內(nèi)的寄存器。
這里,調(diào)度器具有以下的含義。·空閑(idle)標(biāo)志表示各檢索核的狀態(tài)。0:空閑狀態(tài)。1 忙碌狀態(tài)。·*下一檢索top:是指向保存有下一個匹配的記錄信息的種類陣列的條目地址的
寄存器。 記錄信息緩沖器是臨時存儲記錄種類陣列的條目的緩沖器,其個數(shù)與檢索核個 數(shù)相等。從*下一匹配top讀出與緩沖器個數(shù)相等個數(shù)的信息,但是如果種類陣列的有效 標(biāo)志為“0”則丟棄,*下一匹配top在經(jīng)過適當(dāng)周期之后再次被讀取?!ぞ彌_器距離拷貝放置檢索核的緩沖器距離的拷貝?!_刷完成標(biāo)志用于等待事件緩沖器沖刷?!?登記bottom拷貝保持*登記bottom變量的拷貝。當(dāng)調(diào)度器緩沖記錄信息 時,使用于防止下一匹配top超越。另外,檢索核具有以下的含義?!ぷ址彌_器是用于臨時保存要匹配的記錄的幾十字節(jié)左右的緩沖器,檢索核從 其中每次使用一個字符,并使自動機移動來進行匹配?!?*事件緩沖器是指向作為由各匹配核寫入記錄匹配的命中信息的目的地的事 件緩沖器的指針。·緩沖器距離用于邏輯表達式評價和匹配的同步,并且是該檢索核的事件緩沖器 中的當(dāng)前的邏輯表達式評價讀出位置和匹配結(jié)果寫入位置的以緩沖器個數(shù)為單位的距離。 初始值為“0”,并且寫入僅由檢索核進行。在寫入匹配結(jié)果的期間到達至當(dāng)前的緩沖器末端 的定時加“1”(+1),并且當(dāng)被指示事件緩沖器沖刷時減“1”(-1)。圖16以及圖17是用于說明各數(shù)據(jù)的寫入以及讀出關(guān)系的圖。如圖16所示,首先,各數(shù)據(jù)的寫入很多情況下是從σ檢索(Sigma Search)向記錄 種類陣列的寫入,這是因為在ο檢索中參考XML數(shù)據(jù)索引來取出記錄信息并將其保存到種 類陣列中。從檢索核向記錄種類陣列的寫入是當(dāng)開始記錄匹配時決定的記錄的管理信息, 另外,從檢索核向事件緩沖器陣列的寫入是匹配命中信息。另外,當(dāng)讀出數(shù)據(jù)時,σ檢索查看種類陣列的狀態(tài)標(biāo)志,這是為了進行σ評價 (Sigma Evaluation)啟動可能判定。σ評價從種類陣列中讀出在開始邏輯表達式評價時 所需的記錄管理信息,從事件緩沖器中讀出用于邏輯表達式評價的命中信息。σ緩沖器滿(Sigma Buffer Full)從種類陣列中讀入在緩沖器滿時的控制中所需 的信息(記錄ID以及*事件緩沖器)。調(diào)度器從種類陣列中取出用于檢索核開始匹配的信 息(*記錄)。接下來,對作為本加速器主要的處理的檢索動作(從ο檢索函數(shù)被調(diào)用起到其結(jié) 束為止)進行說明。首先,對事件緩沖器的控制(事件緩沖器的讀寫的同步方法)進行說明。如圖16以及圖17所示,事件緩沖器是用于保存匹配結(jié)果的緩沖器,當(dāng)匹配命中時 該結(jié)果從檢索核直接匹配被寫入到事件緩沖器中,并由邏輯表達式評價函數(shù)讀出并使用。事件緩沖器是分配給每個檢索核的區(qū)域,并且通過將該區(qū)域分割成2個以上的事件緩沖器來使用。由于區(qū)域是有限的,因此早晚要將緩沖器沖刷后再次使用。該沖刷通過 使用σ緩沖器滿函數(shù)來取得同步。這里,必要的條件判定如下。Α) σ評價函數(shù)的可啟動條件判定。B) σ緩沖器滿函數(shù)的可結(jié)束條件判定(σ評價的重新開始)。C)寫入檢索核的匹配結(jié)果、并判定有沒有超越。在一些情況下,只有越過事件緩沖器的信息是無法順利進行的,例如若沒有匹配 越過事件緩沖器的信息和該記錄的匹配已結(jié)束的信息這2個信息則無法順利進行。例 如,在假定只有緩沖器距離且其大于等于2、并且假定邏輯表達式評價可繼續(xù)進行到下一 個緩沖器的情況下,如果越過2個事件緩沖器結(jié)束的記錄(使用2個半左右的事件緩沖 器的記錄)的匹配已完成,并且該檢索核在該記錄的匹配之后保持空閑狀態(tài),就會死鎖 (deadlock)0因此,在本實施例的控制方法中,當(dāng)進行上述的處理時,使用上述的狀態(tài)標(biāo)志(控 制數(shù)據(jù))和緩沖器距離(被保持在檢索核內(nèi)寄存器中,并且被復(fù)制在IO寄存器中)。這里,說明各變量的操作規(guī)則。首先,關(guān)于緩沖器距離的規(guī)則如下所述。·若匹配進行到緩沖器末端,則加“1” (+1);·若從σ緩沖器滿接收到通知,則減“1” (-1)。另外,關(guān)于狀態(tài)標(biāo)志的規(guī)則如下。 初始狀態(tài)為“0”;·若匹配越過事件緩沖器,則設(shè)為“ 1 ” ; 若匹配已結(jié)束,則設(shè)為“2”。這里,需要的條件判定方法如下。Α) σ評價函數(shù)的可啟動條件判定?!姆N類陣列的開頭開始記錄狀態(tài)標(biāo)志不為“0”,則可啟動。B) σ緩沖器滿函數(shù)的可結(jié)束條件判定(σ評價的重新開始)?!と艟彌_器距離大于等于“2”,則可結(jié)束(沖刷完成前)。 若緩沖器距離大于等于“1”,則可結(jié)束(沖刷完成后)。 若記錄狀態(tài)標(biāo)志為“2”,則可結(jié)束。C)寫入檢索核的匹配結(jié)果,判定有無超越?!と艟彌_器距離小于事件緩沖器個數(shù)(圖16的例中為4),則未發(fā)生超越。接下來,利用檢索動作的2個例子進行說明。其中一個動作是沒有發(fā)生事件緩沖 器沖刷的通常的例子,另一個是事件緩沖器被沖刷時的例子。圖18Α 圖18C是用于說明調(diào)度器的動作的圖,示出了檢索動作中隨時間經(jīng)過的動作。在圖18Α 圖18C中,位于圖中的上部分的塊(CPU、L2高速緩沖存儲器(或者Work RAM)、加速器、存儲器)表示硬件類,位于它們內(nèi)部的小塊表示動作實體。為了簡化說明,在 圖18A 圖18C中示出了 2個檢索核SC (檢索核0以及1)的構(gòu)成,另外,假定記錄按A、B、 C、…的順序排列。
即,條件是檢索核為2個、以及記錄順序為A、B、C、…,情況概要是即使記錄B 匹配結(jié)束,也由于記錄A匹配未結(jié)束而等待評價,并且即使記錄C匹配結(jié)束,也由于記錄D 匹配未結(jié)束而等待評價。接下來,對圖18A 圖18C中的左側(cè)所示的(1) (6)的各時間范圍中的各動作 實體的動作進行說明。在時間范圍(1)中· σ檢索(Sigma Search)當(dāng)σ檢索函數(shù)開始時,參考位于存儲器中的XML數(shù) 據(jù)的記錄索引,獲取與種類陣列的條目個數(shù)相等數(shù)目的記錄信息種類陣列。適當(dāng)改變登記 top、bottom指針。在該階段,登記top指向第一個條目、登記bottom指向最下面的條目。 并且,將登記bottom復(fù)制到調(diào)度器的映射10寄存器的登記bottom?!?σ 評價(Sigma Evaluation)不存在?!ふ{(diào)度器空閑模式?!z索核空閑模式。在時間范圍O)中· σ檢索將調(diào)度器變更為檢索模式,開始邏輯表達式評價的等待。對登記top指 針?biāo)赶虻姆N類陣列條目(其中保存有記錄A的記錄信息)的記錄狀態(tài)標(biāo)志進行輪詢。在 該時間點,由于標(biāo)記為“0”,因此不進行任何動作?!?σ評價不存在?!ふ{(diào)度器轉(zhuǎn)移到檢索模式,從匹配top寄存器所指向的種類陣列條目中將2個記 錄信息保存到自己電路內(nèi)的記錄信息緩沖器(其個數(shù)相當(dāng)于檢索核的個數(shù))中。將匹配 top寄存器“+2” (使指針前進2個條目)。并且,查看各檢索核的空閑標(biāo)志,檢索核0和1為空閑狀態(tài),因此傳遞記錄信息 (指向記錄的指針以及指向種類陣列條目的指針)、指示開始匹配,并將空閑標(biāo)志設(shè)置為忙 碌狀態(tài)。然后,再次與上述同樣地將記錄信息緩沖到自己電路內(nèi)。接下來,再次監(jiān)視空閑標(biāo)志寄存器,并進行等待,直到能夠?qū)⑾乱粋€記錄分配給檢 索核為止。在該時間點,由于是忙碌狀態(tài),因此等待至變成空閑狀態(tài)?!z索核各檢索核0和1從指向從調(diào)度器傳遞過來的記錄的指針開始進行匹配。 首先,向傳遞而來的*種類陣列所指向的條目的檢索核編號和*事件緩沖器分別寫入自己 核編號和位于自己電路內(nèi)的*事件緩沖器寄存器的內(nèi)容。并且,從存儲器將從*記錄起連 續(xù)的幾十個字節(jié)(字符緩沖器大小)的數(shù)據(jù)(字符緩沖器大小的字符串)取入到自己電路 內(nèi)的字符緩沖器中。然后,從字符緩沖器每次使用一個字符,使保存在自己核內(nèi)的自動機轉(zhuǎn)移。若自動 機為命中狀態(tài),則向自己核內(nèi)的*事件緩沖器寄存器所指向的事件緩沖器條目中寫入命中 信息,使*事件緩沖器寄存器“+1”。每當(dāng)命中時進行同樣的處理。根據(jù)命中時的寫入模式, 也可以進行覆蓋或者不寫入等的動作。這里,在字符緩沖器變空之前同樣地取入接下來的幾十字節(jié),以使檢索核不中止。 雖然早晚會到達至記錄末端,但這由檢索核通過查看記錄字符串來自己判別。如果已到達末端,則將空閑狀態(tài)通知給調(diào)度器(將空閑狀態(tài)寫入調(diào)度器的空閑標(biāo) 志),同時將種類陣列的記錄狀態(tài)標(biāo)志設(shè)為“2”(記錄匹配結(jié)束)。在該時間點,由于檢索核0以及1均沒有完成匹配,因此繼續(xù)進行記錄的讀入和自動機轉(zhuǎn)移。在時間范圍(3)中· σ檢索繼續(xù)進行O)的輪詢。在該時間點,雖然記錄B結(jié)束了匹配,但由于開 頭記錄A尚未結(jié)束匹配,因此繼續(xù)進行輪詢?!?σ評價不存在。 調(diào)度器在每個周期查看檢索核的空閑標(biāo)志。由于不久后檢索核1的空閑標(biāo)志 變?yōu)椤? (空閑狀態(tài))”,因此向檢索核傳遞第三個記錄C的記錄信息并指示進行匹配。并且, 與O)同樣地將檢索核1的空閑標(biāo)志設(shè)為“1(忙碌狀態(tài))”,從種類陣列再次緩沖一個記錄 的記錄信息。·檢索核檢索核0以及1繼續(xù)進行字符串讀入和自動機遷移,并且若命中則寫入 到事件緩沖器中。稍后,檢索核1匹配結(jié)束,因此將調(diào)度器的空閑標(biāo)志變更為“0”(空閑狀 態(tài)),將“2”寫入到從調(diào)度器傳遞的*種類陣列所指向的條目的記錄狀態(tài)標(biāo)志中。在時間范圍(4)中· σ檢索繼續(xù)進行⑵的輪詢。在該時間點,由于記錄A的記錄狀態(tài)標(biāo)志變成了 “2”,因此可進行邏輯表達式評價。還接著查看接下來的條目的標(biāo)志,由于第二個條目為止 可進行邏輯表達式評價,因此啟動σ評價以對記錄A和記錄B進行邏輯表達式評價(傳遞 記錄A的種類陣列條目的地址和可評價記錄數(shù)2作為參數(shù))?!?σ評價對記錄A和記錄B進行邏輯表達式評價,使用種類陣列的*事件緩沖器 從事件緩沖器讀取匹配結(jié)果進行邏輯表達式評價。記錄ID(ReCOrd ID)雖使用于處理,但 與本加速器無關(guān)。在該時間點,邏輯表達式評價尚未結(jié)束?!ふ{(diào)度器進行與(3)同樣的動作。這里,檢索核0的記錄A結(jié)束匹配,因此將下 一個記錄D分配給檢索核0并指示進行匹配。與C3) —樣,等待下一個記錄的分配?!z索核進行與(3)同樣的動作。檢索核0被分配下一個記錄D并開始進行匹 配,檢索核1繼續(xù)進行記錄C的匹配。在時間范圍(5)中· σ檢索不進行任何動作?!?σ評價繼續(xù)進行邏輯表達式評價。 調(diào)度器進行與(3)同樣的動作。這里,檢索核0的記錄D結(jié)束匹配,因此將下 一個記錄E分配給檢索核0并指示進行匹配。與C3) —樣,等待下一個記錄的分配?!z索核進行與(3)同樣的動作。檢索核0被分配下一個記錄E并開始進行匹 配,檢索核1繼續(xù)進行記錄C的匹配。在時間范圍(6)中· σ檢索處理從σ評價返回。由于種類陣列中保存有記錄A和記錄B的條目 不再需要,因此與(1)同樣地參考XML數(shù)據(jù)索引,將接下來的2個新記錄信息保存到種類陣 列中。將檢索top “+2”,將檢索bottom “+2”(在陣列末尾元素之后接下來循環(huán)到開頭元 素)。將檢索bottom復(fù)制到調(diào)度器的映射寄存器。再次等待邏輯表達式評價變得可能, 并對記錄C的狀態(tài)標(biāo)志進行輪詢,由于是“2”,因此在該時間點上可立即進行邏輯表達式評 價。與同樣地指定記錄C以及D,啟動σ評價。
· σ評價繼續(xù)進行記錄A以及B的邏輯表達式評價并完成該評價。之后,再次被 調(diào)用,開始進行記錄C以及D的邏輯表達式評價?!ふ{(diào)度器進行與(3)同樣的動作。這里,檢索核1的記錄C結(jié)束匹配,因此將下 一個記錄F分配給檢索核1并指示進行匹配。與C3) —樣,等待下一個記錄的分配?!z索核進行與(3)同樣的動作。檢索核1被分配下一個記錄F并開始進行匹 配,檢索核0繼續(xù)進行記錄E的匹配。這里,圖18Α 圖18C中的σ檢索的用虛線包圍的部分SSR、以及調(diào)度器的用虛線 包圍的部分SDR被重復(fù)。如上所述,在匹配處理中,與記錄順序無關(guān)并且也不管在先記錄的 匹配沒有結(jié)束,只要檢索核空閑,下一個記錄就立即開始(參考箭頭LB)。然而,邏輯表達式 評價需要按記錄順序進行等待(參考箭頭LR)。該控制使用種類陣列來進行。另外,在圖18Α 圖18C所示的實施例中,雖說明了在用于可否進行邏輯表達式評 價的判定的信息(*登記top的狀態(tài)標(biāo)志)的等候中采用輪詢的情況,但也可以使用硬件的 中斷。圖19A 圖19C是用于說明事件緩沖器控制的問題的圖,并示出了事件緩沖器為 4個的情況。即,由于事件緩沖器是有限的,因此僅使用表示記錄緩沖器的匹配結(jié)束的標(biāo)志 無法進行控制。另外,在圖19A 圖19C中,參考標(biāo)號SP表示匹配結(jié)果起點、EP表示匹配 結(jié)果終點、WP表示匹配結(jié)果寫入位置、RP表示匹配結(jié)果讀出位置。首先,如圖19A所示,沒有問題的情況是匹配結(jié)果全都被集中在一個緩沖器內(nèi)的 情況。接下來,作為有問題的第一種情況,如圖19B所示,如果匹配結(jié)果大于所有事件緩 沖器,則在此情況下,邏輯表達式評價不開始,處理陷入停頓。并且,作為有問題的第二種情況,如圖19C所示,如果寫入超過了讀出,則在此情 況下,需要取得匹配和邏輯表達式評價的同步。圖20A 圖20C是用于說明各數(shù)據(jù)的寫入和讀出關(guān)系的圖,示出了以以各緩沖器 為單位開始邏輯表達式評價并管理沖刷的情形。首先,在圖19B所示的匹配結(jié)果大于所有事件緩沖器的情況下(有問題的第一種 情況),如圖20A的PPl所示的那樣,將匹配到達事件緩沖器的末端的信息附加到匹配信息 標(biāo)記中,在到達時間點上判定為能夠進行邏輯表達式評價。接下來,在圖19C所示的寫入超過讀出的情況下(有問題的第二種情況),如圖 20B的PP2所示,追加保持匹配和邏輯表達式評價的距離的寄存器,以緩沖器為單位防止匹 配的超出。并且,如圖20C的PP3所示,也可以在邏輯表達式評價進行至事件緩沖器末端時, 沖刷該緩沖器。在記錄有分配給某一檢索核的記錄匹配結(jié)果(邏輯表達式評價)的事件緩沖器 (本地存儲器例如,L2高速緩沖存儲器)的末端EP中記載了指向其下一個事件緩沖器(存 儲區(qū)域)的開頭的指針(SP’)。圖21是用于說明事件緩沖器控制用信息的圖,與上述圖15對應(yīng)。如圖21所示,用于使邏輯表達式評價和匹配同步的緩沖器距離被保存在調(diào)度器 SD中的緩沖器距離寄存器PQl中,用于事件緩沖器沖刷的等待的沖刷完成標(biāo)志被保存在調(diào)度器SD中的沖刷完成標(biāo)志PQ2中。另外,各檢索核SC(檢索核0 幻的空閑狀態(tài)(空狀態(tài))被保持在調(diào)度器SD中 設(shè)置的寄存器PQ3中,使得調(diào)度器SD能夠判斷空著的檢索核。管理共享數(shù)據(jù)中的多個記錄的管理信息被臨時保持在調(diào)度器SD中設(shè)置的緩沖器 PQ4 中。并且,匹配狀態(tài)標(biāo)志記錄通過檢索核進行的記錄的匹配狀態(tài),并被使用于邏輯表 達式評價可否進行的判定以及緩沖器沖刷時的邏輯表達式評價可否重新開始的判定,因 此,例如被保存在L2高速緩沖存儲器的PQ5中。檢索核編號是對記錄進行匹配或者已匹配 的檢索核的編號,當(dāng)沖刷緩沖器時被使用,例如被保存在L2高速緩沖存儲器的PQ6中。圖22A 圖22C是用于說明事件緩沖器沖刷時的動作例的圖,示出了事件緩沖器 沖刷時隨時間經(jīng)過的動作。在參考圖18A 圖18C說明的例子中,假定事件緩沖器大小無限大的情形進行了 說明。然而,實際上事件緩沖器大小是有限的,因此將事件緩沖器分割成2個以上來交替使 用。這里,說明這種情形的例子。另外,為了簡化說明,在圖22A 圖22C中,示出了檢索核為一個并且事件緩沖器 為2個的構(gòu)成,并且示出了某記錄A的匹配結(jié)果的大小達到總計2個以上的事件緩沖器大 小的情形。S卩,條件是檢索核為一個并且事件緩沖器為2個;情況概要是記錄A的匹配越 過了緩沖器,因此可進行評價;在第一次緩沖器沖刷時,記錄A的匹配越過了第二個緩沖 器,因此可結(jié)束;并且,在第二次緩沖器沖刷時,記錄A的匹配沒有越過第三個緩沖器,因此 進行等候。接下來,說明圖22A 圖22C中左側(cè)所示的(1) (7)的各時間范圍中的各動作 實體的動作。在時間范圍(1)中· σ檢索對記錄A的狀態(tài)標(biāo)志進行輪詢以等待記錄A的邏輯表達式評價變得可 能。在該階段,σ檢索持續(xù)輪詢?!?σ評價不存在?!う揖彌_器滿不存在?!ふ{(diào)度器通過查看檢索核的空閑(idle)標(biāo)志來等待下一個記錄B的分配變得可 能。在該階段,由于該標(biāo)志維持“1” (忙碌狀態(tài)),因此繼續(xù)等待?!z索核處于記錄A的匹配過程中,與通常時一樣,從存儲器取出記錄字符串并 使自動機轉(zhuǎn)移。并且,若命中則將命中信息寫入到事件緩沖器中。在寫入命中信息的期 間,如果寫入目的地地址到達至第一個事件緩沖器的末端,則向種類陣列的狀態(tài)標(biāo)志寫入 “1”(通知越過了事件緩沖器)。然后,將緩沖器距離寄存器“+1”。在時間范圍O)中· σ檢索當(dāng)對狀態(tài)標(biāo)志進行輪詢時,由于狀態(tài)標(biāo)志為“1”,因此調(diào)用σ評價,以 對記錄A進行邏輯表達式評價。· σ評價與通常時一樣,對所遞來的記錄A開始進行邏輯表達式評價。此時,從 事件緩沖器參考命中信息。
· σ緩沖器滿不存在?!ふ{(diào)度器與(1)相同,無變化?!z索核將命中信息寫入到第二個事件緩沖器。此外,與(1)相同。在時間范圍(3)中· σ檢索等待σ評價完成?!?σ評價繼續(xù)進行O)的邏輯表達式評價?!?σ緩沖器滿不存在?!ふ{(diào)度器與⑵相同,無變化?!z索核與(1) 一樣,在寫入命中信息的期間,寫入目的地地址到達至第一個事 件緩沖器的末端。這一次,由于狀態(tài)標(biāo)志為“1”,因此不特意向外部進行通知。將緩沖器距 離寄存器“+1”。此時,緩沖器距離寄存器=2,不小于事件緩沖器個數(shù)0個),因此第一個 事件緩沖器被邏輯表達式評價消耗,但該評價尚未結(jié)束,因此該檢索核中止。在時間范圍中· ο檢索與⑶同樣地等待ο評價結(jié)束?!?σ評價由于邏輯表達式評價中所參考的事件緩沖器的命中信息的內(nèi)容表示緩 沖器末端(在事件緩沖器的末端預(yù)先寫入有表示末端的比特模式和指向下一個事件緩沖 器的指針),因此調(diào)用ο緩沖器滿。將指向該記錄的種類陣列條目的指針傳遞給參數(shù)。不 久,ο緩沖器滿結(jié)束,從下一個事件緩沖器的開頭起重新開始邏輯表達式評價?!?σ緩沖器滿從傳來的指向種類陣列條目的指針推測出檢索核編號。并且,檢查 對應(yīng)的沖刷完成標(biāo)志是否為“0”。由于為“0”,因此向標(biāo)志寫入“1”,并獲得緩沖器距離拷 貝。另外,將檢索核編號傳遞給調(diào)度器,指示該檢索核的事件緩沖器沖刷(在該例子 中,由于只有一個檢索核,因此沒有必要指定檢索核編號,但在一般情況下是需要的。)接下來,判斷之前獲得的緩沖器距離拷貝(10寄存器)是否為2以上或者狀態(tài)標(biāo) 志是否為“2”。由于緩沖器距離拷貝為“2”,因此函數(shù)可立即結(jié)束。進行等待直到邏輯表達 式評價可重新開始?!ふ{(diào)度器由于接收了沖刷指示和檢索核編號0,因此向?qū)?yīng)的檢索核0下達沖刷 指示?!z索核由于在中止當(dāng)中接收到?jīng)_刷指示命令,因此將緩沖器距離寄存器“-1”, 將該內(nèi)容覆蓋到調(diào)度器的緩沖器距離寄存器的拷貝上。并且,將沖刷完成標(biāo)志設(shè)為“0”。并 且,由于緩沖器距離為“ 1”,因此重新開始匹配。在時間范圍(5)中· σ檢索與⑷同樣地等待ο緩沖器滿結(jié)束。· σ評價與⑷同樣地由于已達到事件緩沖器末端,因此再次調(diào)用ο緩沖器滿。 此后,等待σ緩沖器滿結(jié)束?!?σ緩沖器滿直到向調(diào)度器發(fā)出指示為止與(4) 一樣。若在該時間點沖刷完成 標(biāo)志為“1”,則進行等待(前1次的沖刷。在該情況下沒有關(guān)系)。接下來,由于預(yù)先保存 的緩沖器距離為“1”,因此對沖刷完成標(biāo)志和緩沖器距離進行輪詢并等候。等待成為(沖刷 完成標(biāo)志=0并且(緩沖器距離≥1或者狀態(tài)標(biāo)志=2))。
·調(diào)度器與⑷同樣地指示沖刷。·檢索核與(4)同樣地進行沖刷,并繼續(xù)進行匹配。在時間范圍(6)中· ο檢索與(5)同樣地等待ο評價結(jié)束?!?σ評價等待σ緩沖器滿結(jié)束。稍后,σ緩沖器滿結(jié)束,從下一個事件緩沖器 的開頭重新開始邏輯表達式評價?!?σ緩沖器滿接(5)之后繼續(xù)輪詢,稍后,緩沖器距離=1,但狀態(tài)標(biāo)志=2,因此結(jié)束?!ふ{(diào)度器等待下一個記錄的分配,由于從檢索核0通知來空閑狀態(tài),因此分配下 一個記錄B。再次填充記錄信息緩沖器,變成等待分配下一個記錄的狀態(tài)。 檢索核記錄匹配完成,并將其通知給種類陣列和調(diào)度器。傳來下一個記錄B,從 而開始匹配。在時間范圍(7)中· σ檢索接在(6)之后繼續(xù)等待ο評價結(jié)束。不久σ評價結(jié)束,向空的種類陣 列條目填充接下來的記錄信息,等待邏輯表達式評價變得可能。在該時間點,由于記錄B的 匹配尚未結(jié)束,因此進行等待?!?σ評價邏輯表達式評價結(jié)束,函數(shù)結(jié)束?!う揖彌_器滿不存在?!ふ{(diào)度器接在(6)之后繼續(xù)等待下一個記錄的分配。·檢索核接在(6)之后繼續(xù)匹配記錄B。以上,對實施例中的動作進行了說明,下面,參考流程圖對各函數(shù)的檢索動作進行 說明。圖23是用于與流程圖關(guān)聯(lián)起來說明API函數(shù)和調(diào)用過程的圖。在圖23中,左側(cè) 部分的圖相當(dāng)于將圖5所示的檢索順序圖改寫的圖,中間部分的圖與用于說明各API函數(shù) 和調(diào)用過程的圖13相同。如圖23所示,本實施例作為對象的動作是與檢索順序圖中的記錄匹配處理、匹配 結(jié)果處理、邏輯表達式評價處理以及檢索結(jié)果處理對應(yīng)的檢索動作。這里,在檢索動作(在 圖23中用粗線包圍的部分)中,匹配執(zhí)行啟動13與圖M所示的ο檢索處理對應(yīng),邏輯表 達式評價137與圖27所示的ο評價處理對應(yīng),并且,加速器庫138內(nèi)的緩沖器滿處理139 與圖觀所示的σ緩沖器滿處理對應(yīng)。以下,參考各流程圖來說明σ檢索處理、σ評價處理以及σ緩沖器滿處理。圖對是示出σ檢索處理的一個例子的流程圖。這里,σ檢索(Sigma Search)處 理是主程序,是用于開始檢索動作的處理(函數(shù))?!╅_始ο檢索處理,首先在步驟STl中,首先參考(掃描)XML索引,將記錄信 息存儲到種類陣列中,然后前進到步驟ST2。在步驟ST2中,將加速器改為匹配模式,前進到步驟ST3,并進行輪詢。這里,在輪 詢中,對下一個評價記錄條目的狀態(tài)標(biāo)志進行輪詢。并且,如果邏輯表達式評價可進行,則在步驟ST4中,確定ο評價(Sigma Evaluation)的參數(shù),前進到步驟ST5,調(diào)用σ評價。這里,也可以對傳遞的記錄的個數(shù)設(shè)置下限或上限。接下來,前進到步驟ST6,等待ο評價結(jié)束,然后前進到步驟ST7,若ο評價已 結(jié)束,則向存儲有已傳遞的記錄信息的種類陣列條目中填充新的記錄信息,并前進到步驟 ST8。在步驟ST8中,判定XML數(shù)據(jù)的XML索引是否已到達末端。在步驟ST8中,當(dāng)判定 為XML數(shù)據(jù)的XML索引沒有到達末端時,返回到步驟ST3,重復(fù)同樣的處理。另一方面,在步驟ST8中,當(dāng)判定出XML數(shù)據(jù)的XML索引已到達末端時,前進到步 驟ST9,向加速器通知向空閑狀態(tài)的轉(zhuǎn)移條件,并前進到步驟ST10。在步驟STlO中,判定邏輯表達式評價是否結(jié)束,當(dāng)判定為邏輯表達式評價已結(jié)束 時,結(jié)束函數(shù),否則返回到步驟ST3的輪詢,重復(fù)同樣的處理。圖25是示出逐條目等待圖M的σ評價時的流程圖,圖沈是針對每多個條目等 待圖對的σ評價時的流程圖。如圖25所示,當(dāng)逐條目等候圖M的σ評價時,首先在步驟ST21中,向種類陣列 的所有條目按記錄順序(記錄被排序的順序)保存記錄管理信息,接著前進到步驟ST22,啟 動加速器。然后,前進到步驟ST23,等候種類陣列的開頭條目的匹配完成,前進到步驟ST24。 在步驟STM中,執(zhí)行開頭條目記錄的邏輯表達式評價,然后前進到步驟ST25。在步驟ST25中,向種類陣列填充一個記錄的記錄管理信息,使開頭條目前進1。然后,前進到步驟SD6,判定數(shù)據(jù)庫的所有記錄的處理是否都結(jié)束,若判定出沒有 結(jié)束,則返回到步驟ST23,重復(fù)同樣的處理,若判斷出數(shù)據(jù)庫的所有記錄的處理都結(jié)束,則 結(jié)束處理。如圖沈所示,當(dāng)針對每多個條目等候圖M的σ評價時,首先在步驟ST31中,向 種類陣列的所有條目按記錄順序保存記錄管理信息,接著前進到步驟ST32,啟動加速器。然后,前進到步驟ST33,等候種類陣列的開頭條目的匹配完成,前進到步驟ST34。 在步驟ST34中,按記錄順序?qū)ο率龆鄠€記錄進行邏輯表達式評價,所述多個記錄是從開頭 條目起按記錄順序連續(xù)地完成匹配的記錄,然后前進到步驟ST35。在步驟ST35中,向種類陣列中填充與進行了邏輯表達式評價的記錄數(shù)相同數(shù)目 的記錄管理信息,并且使開頭條目前進已處理條目的個數(shù)。然后,前進到步驟ST36,判定對數(shù)據(jù)庫的所有記錄的處理是否都結(jié)束,若判定出沒 有結(jié)束,則返回步驟ST33,重復(fù)同樣的處理,若判定出數(shù)據(jù)庫的所有記錄的處理都結(jié)束,則
結(jié)束處理。圖27是示出σ評價處理的一個例子的流程圖。這里,σ評價(Sigma Evaluation) 是用于進行邏輯表達式評價的函數(shù),如果在ο檢索中判斷出可進行邏輯表達式評價,則被調(diào)用。如圖27所示,當(dāng)被請求的開頭記錄的種類陣列條目地址和從該地址開始的記錄 個數(shù)被傳遞到該函數(shù)時,首先在步驟ST41中,設(shè)為a =(記錄種類結(jié)構(gòu)體陣列的當(dāng)前記錄 的事件緩沖器的地址)、b = 1,然后前進到步驟ST42。在步驟ST42中,從種類陣列中獲取 記錄ID,前進到通常動作的步驟ST5(通常動作環(huán))。即,將開頭記錄作為當(dāng)前記錄開始進 行邏輯表達式評價,從事件緩沖器讀取各條目并進行評價。
步驟ST5包括步驟ST51 STM,首先在步驟ST51中,讀取a所指的匹配結(jié)果,執(zhí) 行邏輯表達式評價。接下來,前進到步驟ST52,a++,進而前進到步驟ST53,判定是否(a所指的條目) ==(記錄結(jié)果的末端條目)。在步驟ST53中,當(dāng)判定出(a表示的先前的條目)==(記錄結(jié)果的末端條目) 時,前進到記錄結(jié)束時的環(huán)(步驟ST6)的步驟ST61,相反,當(dāng)判定出(a所指的條目)== (記錄結(jié)果的末端條目)時,前進到步驟STM。在步驟ST61中,判定是否b==(已傳遞的記錄個數(shù)),當(dāng)判定出b==(已傳遞 的記錄個數(shù))時,在步驟ST62中,設(shè)定a =(下一個記錄匹配結(jié)果的開頭地址),b++,返回 到步驟ST42,重復(fù)同樣的處理。并且,在步驟ST61中,當(dāng)判定出b==(已傳遞的記錄個 數(shù))時,結(jié)束處理。S卩,如果當(dāng)前記錄結(jié)束,則設(shè)定下一個記錄,返回到通常動作,若當(dāng)前記錄沒有結(jié) 束,則處理結(jié)束。在步驟STM中,判定是否(a所指的條目)==(事件緩沖器末端的條目),當(dāng)判 定出(a所示的條目)==(事件緩沖器末端的條目)時,前進到緩沖器滿時的步驟ST7中 的步驟ST71,啟動σ緩沖器滿,并前進到步驟ST72。 然后,在步驟ST72中,設(shè)定a =(下一個事件緩沖器的開頭條目的地址),并返回 到步驟ST51,并且當(dāng)在步驟STM中判定出柏==事件緩沖器末端的條目時,也返回到步驟 ST51,重復(fù)同樣的處理。S卩,若到達事件緩沖器末端,則調(diào)用σ緩沖器滿,并且處理等待返回,然后回到通 常動作。圖觀是示出σ緩沖器滿處理的一個例子的流程圖。這里,σ緩沖器滿(Sigma Buffer Full)是負責(zé)進行事件緩沖器的切換的函數(shù),其指示對應(yīng)的檢索核的事件緩沖器的 沖刷,并且如果在σ評價中已到達事件緩沖器末端,則被調(diào)用。如圖觀所示,首先在步驟ST81中,檢索與傳來的種類陣列元素對應(yīng)的檢索核編 號,前進到步驟ST82。即,要沖刷的事件緩沖器的種類陣列條目的地址被作為參數(shù)傳遞,檢 索核編號使用該地址參考種類陣列來獲得。在步驟ST82中,判定是否沖刷完成標(biāo)志=1,并進行處理直到判定沖刷完成標(biāo)志 =1為否定,一旦判定沖刷完成標(biāo)志=1為否定,就前進到步驟ST83。在步驟ST83中,設(shè)為沖刷完成標(biāo)志=1,前進到步驟ST84,獲得緩沖器距離拷貝。 即,進行等待直到對該檢索核的上一次沖刷指示準(zhǔn)備就緒,若可下達沖刷指示,則在該時間 點獲得作為調(diào)度器的IO寄存器的緩沖器距離拷貝。并且,進入到步驟ST85,向調(diào)度器指示緩沖器沖刷并通知檢索核編號,前進到步驟 ST86。在步驟ST86中,判定是否緩沖器距離拷貝> 2、或者狀態(tài)標(biāo)志=2,當(dāng)判定出緩沖 器距離拷貝> 2不成立且狀態(tài)標(biāo)志=2也不成立時,前進到進行輪詢的步驟ST9,當(dāng)判定出 緩沖器距離拷貝彡2或狀態(tài)標(biāo)志=2時,結(jié)束處理。S卩,根據(jù)先前獲得的緩沖器距離拷貝的值和種類陣列的狀態(tài)標(biāo)志來判定可否結(jié) 束。如果結(jié)束,則重新開始邏輯表達式評價。
然后,在步驟ST9的步驟ST91 ST93中,對沖刷完成標(biāo)志進行輪詢,接著,對狀態(tài) 標(biāo)志和緩沖器距離拷貝進行輪詢,等候可能狀態(tài)。S卩,在步驟ST91中,判定是否沖刷完成標(biāo)志=0,并繼續(xù)處理,直到判定出沖刷完 成標(biāo)志=0,當(dāng)判定出沖刷完成標(biāo)志=0時,前進到步驟ST92,再次獲得緩沖器距離拷貝,前 進到步驟ST93。在步驟ST93中,判定是否緩沖器距離> 1或者狀態(tài)標(biāo)志=2,當(dāng)判定出緩沖器距離 拷貝> 2不成立并且狀態(tài)標(biāo)志=2也不成立時,返回到步驟ST92,重復(fù)同樣的處理,當(dāng)判定 出緩沖器距離彡1或狀態(tài)標(biāo)志=2時,結(jié)束處理。在上述的各實施例中,雖然主要說明了進行自動機處理的檢索裝置以及檢索方 法,但也能夠適用于其輸入數(shù)據(jù)以及中間數(shù)據(jù)具有特點的通常的并行處理系統(tǒng),尤其適用 于按預(yù)定規(guī)則對具有上述特點的數(shù)據(jù)進行處理的檢索裝置以及檢索方法。
權(quán)利要求
1.一種檢索裝置,包括CPU ;以及具有調(diào)度器和多個檢索核的加速器,所述檢索裝置 的特征在于,所述CPU按照被輸入的檢索表達式來生成自動機, 所述調(diào)度器將處理對象文本以被排序的記錄的單位分配給所述各檢索核, 所述各檢索核對所述被分配的各記錄分別并行地進行自動機匹配, 所述CPU按所述各記錄的所述排序的順序?qū)λ龈饔涗泦挝坏钠ヅ浣Y(jié)果進行邏輯表 達式評價。
2.如權(quán)利要求1所述的檢索裝置,其特征在于,所述處理對象文本的所述各記錄以及所述各記錄的所述匹配結(jié)果在各自的數(shù)據(jù)大小 上不具有規(guī)則性。
3.如權(quán)利要求1或2所述的檢索裝置,其特征在于,所述檢索裝置還包括本地存儲器,該本地存儲器保存所述CPU以及所述檢索核的共享 數(shù)據(jù),所述共享數(shù)據(jù)包括匹配結(jié)果信息和管理信息,所述匹配結(jié)果信息保存所述多個記錄的 匹配結(jié)果,所述管理信息管理多個記錄,所述各記錄的所述排序作為所述管理信息被保持在所述本地存儲器中。
4.如權(quán)利要求3所述的檢索裝置,其特征在于,所述匹配結(jié)果信息通過將所述本地存儲器的2個以上存儲區(qū)域分割并分給所述各檢 索核來被管理。
5.如權(quán)利要求4所述的檢索裝置,其特征在于,分配給所述各檢索核的所述存儲區(qū)域的末端記載了指向下一個存儲區(qū)域的開頭的指針。
6.如權(quán)利要求3所述的檢索裝置,其特征在于,所述管理信息通過陣列或列表結(jié)構(gòu)來保持應(yīng)匹配的文本群的順序。
7.如權(quán)利要求3至6中任一項所述的檢索裝置,其特征在于,所述調(diào)度器讀入所述管理信息,按所述排序的順序?qū)⑺龉芾頂?shù)據(jù)分配給空閑的所述 檢索核并指示進行匹配,檢索核隨機完成匹配。
8.如權(quán)利要求7所述的檢索裝置,其特征在于,所述調(diào)度器包括寄存器,該寄存器保持用于判斷所述空閑的所述檢索核的信息。
9.如權(quán)利要求7或8所述的檢索裝置,其特征在于, 所述調(diào)度器包括臨時保存所述管理信息的緩沖器。
10.如權(quán)利要求1至9中任一項所述的檢索裝置,其特征在于, 所述處理對象文本是結(jié)構(gòu)化文檔,所述各檢索核從所述結(jié)構(gòu)化文檔的數(shù)據(jù)中檢索預(yù)定的字符串。
11.如權(quán)利要求10所述的檢索裝置,其特征在于, 所述結(jié)構(gòu)化文檔是XML文檔。
12.—種半導(dǎo)體芯片,其特征在于,結(jié)合了多個權(quán)利要求1至11中任一項所述的檢索裝置。
13.如權(quán)利要求12所述的半導(dǎo)體芯片,其特征在于,所述半導(dǎo)體芯片具有2個權(quán)利要求1至8中任一項所述的檢索裝置。
14.一種處理器模塊,其特征在于,結(jié)合了多個權(quán)利要求12或13所述的半導(dǎo)體芯片,并且 具有針對所述各半導(dǎo)體芯片分別設(shè)置的多個存儲器。
15.一種檢索服務(wù)器,其特征在于,結(jié)合多個權(quán)利要求14所述的處理器模塊,并且 具有所述各檢索核能夠訪問的主存儲裝置。
16.一種檢索系統(tǒng),其特征在于,包括 權(quán)利要求15所述的檢索服務(wù)器;保存有檢索對象的數(shù)據(jù)的儲存服務(wù)器;以及 對所述檢索服務(wù)器以及所述儲存服務(wù)器進行管理的定向服務(wù)器。
17.一種使用了檢索裝置的檢索方法,其中所述檢索裝置包括CPU、以及具有調(diào)度器和 多個檢索核的加速器,所述檢索方法的特征在于, 所述CPU按照被輸入的檢索表達式來生成自動機, 所述調(diào)度器將處理對象文本以被排序的記錄的單位分配給所述各檢索核, 所述各檢索核對所述被分配的各記錄分別并行地進行匹配處理, 所述CPU按所述各記錄的所述排序的順序?qū)λ龈饔涗泦挝坏钠ヅ浣Y(jié)果進行邏輯表 達式評價。
18.如權(quán)利要求17所述的檢索方法,其特征在于,所述處理對象文本的所述各記錄以及所述各記錄的所述匹配結(jié)果在各自的數(shù)據(jù)大小 上不具有規(guī)則性。
19.如權(quán)利要求17或18所述的檢索方法,其特征在于,所述調(diào)度器讀入管理信息,按所述排序的順序?qū)⑺龉芾頂?shù)據(jù)分配給空閑的所述檢索 核并指示進行匹配,檢索核隨機完成匹配,其中,所述管理信息是在所述CPU以及所述檢索 核的共享數(shù)據(jù)中用于管理多個記錄的信息。
20.一種使計算機執(zhí)行以下步驟的檢索程序,其中,所述計算機包括CPU ;以及具有調(diào)度器和多個檢索核的加速器, 所述步驟包括使所述CPU按照被輸入的檢索表達式來生成自動機的步驟; 使所述調(diào)度器將處理對象文本以被排序的記錄的單位分配給所述各檢索核的步驟; 使所述各檢索核對所述被分配的各記錄分別并行地進行自動機匹配的步驟;以及 使所述CPU按所述各記錄的所述排序的順序?qū)λ龈饔涗泦挝坏钠ヅ浣Y(jié)果進行邏輯 表達式評價的步驟。
全文摘要
檢索裝置包括CPU;以及具有調(diào)度器和多個檢索核的加速器。所述CPU按所輸入的檢索表達式來生成自動機,所述調(diào)度器將處理對象文本以被排序的記錄的單位分配給所述各檢索核。所述各檢索核對所述被分配的各記錄分別并行地進行自動機匹配,所述CPU按所述各記錄的所述排序的順序?qū)λ龈饔涗泦挝坏钠ヅ浣Y(jié)果進行邏輯表達式評價。由此,能夠減少各匹配裝置(檢索核)和CPU處理的并行動作的開銷來進行數(shù)據(jù)傳遞并可實現(xiàn)系統(tǒng)的高速化。
文檔編號G06F17/30GK102084357SQ200880130230
公開日2011年6月1日 申請日期2008年7月1日 優(yōu)先權(quán)日2008年7月1日
發(fā)明者多湖真一郎, 葛毅 申請人:富士通株式會社