專利名稱:對(duì)分檢索電路及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù),特別涉及通過對(duì)分檢索法從數(shù)據(jù)庫中檢 索數(shù)據(jù)的對(duì)分檢索電路及方法。
背景技術(shù):
在互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施得以完善,便攜式電話終端、個(gè)人電腦、VoIP (Voice over internet Protocal:基于internet切、i義的i吾音)電;舌終端等通4言 終端得到廣泛普及的今天,互聯(lián)網(wǎng)的用戶正在暴增。在這種狀況下,計(jì) 算機(jī)病毒、黑客(八y年y夕、、)、垃圾郵件等與安全有關(guān)的問題變得明顯 化,需要有對(duì)通信進(jìn)行適當(dāng)控制的技術(shù)。隨著通信環(huán)境的改善,通信量 也變得很龐大,對(duì)大容量數(shù)據(jù)進(jìn)行高速處理的通信控制裝置的必要性在 逐漸增加。圖1示出了現(xiàn)有的通信控制裝置1的構(gòu)成。現(xiàn)有的通信控制裝置1 包括接收側(cè)的通^f言控制部2、數(shù)據(jù)包處理部3、和發(fā)送側(cè)的通信控制部 4。通信控制部2及4分別包括PHY處理部5a及5b,進(jìn)行數(shù)據(jù)包的物 理層的處理;MAC處理部6a及6b,進(jìn)行數(shù)據(jù)包的MAC層的處理。數(shù) 據(jù)包處理部3包括IP處理部7,進(jìn)行IP (Internet Protocal: IP協(xié)議)的 協(xié)議處理;TCP處理部8等,進(jìn)行TCP (Transport Control Protocal:傳 送控制協(xié)議)的協(xié)-漢處理;協(xié)i義處理部,進(jìn)行與協(xié)議對(duì)應(yīng)的處理;AP處 理部9,進(jìn)行應(yīng)用層的處理。AP處理部9根據(jù)數(shù)據(jù)包中包含的數(shù)據(jù),執(zhí) 行過濾等處理。專利文獻(xiàn)l:特開平4-180425號(hào)公報(bào)發(fā)明內(nèi)容發(fā)明所要解決的課題在現(xiàn)有的通信控制裝置1中,數(shù)據(jù)包處理部3是利用作為通用處理器的CPU和在CPU上運(yùn)行的OS,通過軟件來實(shí)現(xiàn)的。但是,在這種構(gòu) 成中,通信控制裝置1的性能將依賴于CPU的性能,因此實(shí)現(xiàn)能夠高速 地對(duì)大容量的數(shù)據(jù)包進(jìn)行處理的通信控制裝置受到限制。例如,對(duì)于64 位的CPU來說,其一次同時(shí)能夠處理的數(shù)據(jù)量最大是64位,而目前還 不存在比其性能更高的通信裝置。如此,現(xiàn)實(shí)情況是,盡管由于光通信網(wǎng)等基礎(chǔ)設(shè)施的普及而使得節(jié) 點(diǎn)間的數(shù)據(jù)通信速度飛速地提高,但是因?yàn)橥ㄐ趴刂蒲b置的處理速度是 一個(gè)瓶頸,因此上述性能在實(shí)踐中是無法完全實(shí)現(xiàn)的。因此,人們強(qiáng)烈 希望能夠盡早地實(shí)現(xiàn)盡量高速的通信控制裝置。本發(fā)明是鑒于上述狀況而提出,其目的在于提供一種實(shí)現(xiàn)高速通信 環(huán)境的技術(shù)。解決課題的手段本發(fā)明的一個(gè)實(shí)施方式涉及對(duì)分檢索電路。該對(duì)分檢索電路用于從對(duì)分檢索電路包括2"-l個(gè)比較電路,用于將從所述數(shù)據(jù)庫中讀出的 數(shù)據(jù)與所述比較對(duì)象數(shù)據(jù)進(jìn)行比較;以及控制電路,對(duì)所述比較電路進(jìn)行控制。所述控制電路在所述數(shù)據(jù)庫的檢索范圍被分為2n個(gè)時(shí),使l/2n 、 2/2n.....(2n - 1 ) /2n位置處的數(shù)據(jù)分別輸入到所述2n - 1個(gè)比較電路中,并使得所述2n - 1個(gè)比較電路將所輸入的數(shù)據(jù)與比較對(duì)象數(shù) 據(jù)進(jìn)行比較,由此同時(shí)并行地執(zhí)行n次檢索。通過這樣的結(jié)構(gòu),可以縮短從數(shù)據(jù)庫載入數(shù)據(jù)的時(shí)間。此外,可以 將比4交的次數(shù)減半并縮短;險(xiǎn)索所需的時(shí)間。所述控制電路可以根據(jù)所述2n個(gè)比較電路各自的比較結(jié)果來判定是 否檢索到了所述比較對(duì)象數(shù)據(jù),當(dāng)未檢索到時(shí),所述控制電路可以將基 于所述比較結(jié)果所確定的下一次檢索對(duì)象范圍的l/2n 、2/2n 、...、(2n -1 ) /2n位置處的數(shù)據(jù)輸入到各比較電路中。所述對(duì)分檢索電路還可以包括連接到各所述比較電路的2n-1個(gè)數(shù)據(jù)庫,所述控制電路使所述檢索對(duì)象范圍的l/2n 、 2/2n.....(2n - 1)/2n位置處的數(shù)據(jù)從連接到各比較電路的數(shù)據(jù)庫中并行地輸入。由此,由于可以將數(shù)據(jù)并行地從數(shù)據(jù)庫載入到多個(gè)比較電路,因而可以進(jìn)一步 縮短載入數(shù)據(jù)所需的時(shí)間。所述對(duì)分檢索電路可以由布線邏輯電路構(gòu)成。例如,可以使用FPGA ( Field Programmable Gate Array:現(xiàn)場(chǎng)可編程門陣列)等來實(shí)現(xiàn)。 通過由專用的硬件電路來構(gòu)成對(duì)分檢索電路,可以實(shí)現(xiàn)具有預(yù)期性能 的對(duì)分檢索電路,而不受CPU性能的制約。本發(fā)明的另一個(gè)實(shí)施方式涉及對(duì)分檢索方法。在該對(duì)分檢索方法 中,當(dāng)將貯存有升序或降序排列的數(shù)據(jù)的數(shù)據(jù)庫的檢索范圍分為2n個(gè)時(shí),使檢索范圍的l/2n 、 2/2n.....(2n - 1) /2n位置處的數(shù)據(jù)分別輸入到所述2n - 1個(gè)比較電路中,并使得所述2n - 1個(gè)比較電路將所輸入的 數(shù)據(jù)與比較對(duì)象數(shù)據(jù)進(jìn)行比較,由此同時(shí)并行地執(zhí)行n次檢索。另外,以上構(gòu)成要素的任意組合、以及將本發(fā)明的描述在方法、 裝置、系統(tǒng)、記錄介質(zhì)、計(jì)算機(jī)程序等之間進(jìn)行變換的方式作為本發(fā) 明的實(shí)施方式也是有效的。發(fā)明的效果根據(jù)本發(fā)明,能夠提供實(shí)現(xiàn)高速對(duì)分檢索的技術(shù)。
圖l是表示現(xiàn)有的通信控制裝置的構(gòu)成的圖。圖2是表示實(shí)施方式涉及的通信控制裝置的構(gòu)成的圖。圖3是表示數(shù)據(jù)包處理電路的構(gòu)成的圖。圖4是表示位置檢測(cè)電路的構(gòu)成的圖。圖5是表示位置檢測(cè)電路另 一個(gè)例子的圖。圖6是表示位置檢測(cè)電路又一個(gè)例子的圖。圖7是表示第一數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)的例子的圖。圖8是表示第一數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)的另一個(gè)例子的圖。圖9是表示第一數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)的又一個(gè)例子的圖。圖IO是表示索引電路的另一個(gè)例子的圖。圖ll是表示對(duì)分檢索電路所含的比較電路的構(gòu)成的圖。圖12是表示對(duì)分檢索電路的構(gòu)成的圖。圖13是表示第一數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)的又一個(gè)例子的圖。圖14是表示第二數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)的例子的圖。圖15是表示第二數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)的另一個(gè)例子的圖。符號(hào)說明10通信控制裝置、20數(shù)據(jù)包處理電路、30檢索電路、32位置檢 測(cè)電路、33比較電路、34索引電路、35比較電路、36對(duì)分檢索電路、 36A, 36B, 36C比較電路、36Z控制電路、40處理執(zhí)行電路、50第一 數(shù)據(jù)庫、60第二數(shù)據(jù)庫。
具體實(shí)施方式
圖2示出了作為本發(fā)明數(shù)據(jù)處理裝置一個(gè)例子的通信控制裝置的構(gòu) 成。本實(shí)施方式的通信控制裝置10包括配置有專用硬件(部署有線路邏 輯電路)的數(shù)據(jù)包處理電路20,以取代現(xiàn)有通信控制裝置中由包含CPU 及OS的軟件實(shí)現(xiàn)的數(shù)據(jù)包處理部。不是通過在作為通用處理電路的CPU 中運(yùn)行的OS和軟件來處理通信數(shù)據(jù),而是設(shè)置對(duì)通信數(shù)據(jù)進(jìn)行處理的專 用硬件電路,由此能夠克服由CPU和OS等造成的性能限制,實(shí)現(xiàn)高處 理能力的通信控制裝置。例如,在為了執(zhí)行數(shù)據(jù)包過濾等而檢索數(shù)據(jù)包所含的數(shù)據(jù)中是否含 有作為過濾判斷基準(zhǔn)的基準(zhǔn)數(shù)據(jù)的情況下,使用CPU對(duì)通信數(shù)據(jù)和基準(zhǔn) 數(shù)據(jù)進(jìn)行比較時(shí), 一次最多只能比較64位,所以存在的問題是,即使想 提高處理速度也將受到CPU性能的限制。由于在CPU中必須無數(shù)次重 復(fù)進(jìn)行以下處理,即,從通信數(shù)據(jù)將64位讀入到存儲(chǔ)器,將其與基準(zhǔn)數(shù) 據(jù)進(jìn)行比較,接著再把下一64位讀入到存儲(chǔ)器,因此讀入到存儲(chǔ)器的時(shí) 間將制約速度,處理速度存在界限。相反,在本實(shí)施方式中,設(shè)置了由布線邏輯電路構(gòu)成的專用硬件電 路,以對(duì)通信數(shù)據(jù)和基準(zhǔn)數(shù)據(jù)進(jìn)行比較。該電路包括并列設(shè)置的多個(gè)比 較器,以能夠?qū)Ρ?4位長的數(shù)據(jù)長定度,例如1024位的數(shù)據(jù)長定度進(jìn) 行比較。這樣,通過設(shè)置有專用的硬件可以同時(shí)并行執(zhí)行許多的位匹配。可以從現(xiàn)有的使用CPU的通信控制裝置1 一次只能處理64位提高到一 次可以處理1024位,可以飛躍地提高處理速度。雖然增多比較器的數(shù)量 也能夠提高處理能力,但是成本和尺寸也會(huì)增大,因此可以在考慮預(yù)期 的處理性能和成本、尺寸等條件下,設(shè)計(jì)最適當(dāng)?shù)挠布娐?。此外,由于本?shí)施方式的通信控制裝置IO是由布線邏輯電路形成的 專用硬件構(gòu)成的,因此不需要OS (Operating System:操作系統(tǒng))。為此, 不需要OS的安裝、故障應(yīng)對(duì)、升級(jí)等作業(yè),從而可以減少用于管理和維 護(hù)的費(fèi)用和工時(shí)。此外,與要求具有通用功能的CPU不同,由于不包含 不必要的功能,因此沒有使用多余的資源,低成本化、電路面積的減少、 處理速度的提高是可以期待的。而且,與使用OS的現(xiàn)有通信控制裝置不 同,由于沒有多余的功能,因此降低了安全漏洞等發(fā)生的可能性,對(duì)于 通過網(wǎng)絡(luò)來自惡意第三者的攻擊具有優(yōu)秀的:J氏抗性?,F(xiàn)有的通信控制裝置1通過以CPU和OS為前提的軟件對(duì)數(shù)據(jù)包進(jìn) 行處理,在接收了數(shù)據(jù)包的所有數(shù)據(jù)后再進(jìn)行協(xié)議處理,將數(shù)據(jù)交給應(yīng) 用程序。相反,在本實(shí)施方式的通信控制裝置10中,由于使用專用的硬 件電路進(jìn)行處理,沒有必要在接收了數(shù)據(jù)包的所有數(shù)據(jù)后開始處理,如 果接收到處理所需的數(shù)據(jù),則不用等待接收后續(xù)的數(shù)據(jù)就可以在任何時(shí) 候開始處理。例如,在后述的位置檢測(cè)電路中進(jìn)行的位置檢測(cè)處理,可 以在接收到用于確定比較對(duì)象數(shù)據(jù)位置的位置確定數(shù)據(jù)時(shí)開始。這樣, 由于不用等待接收了所有的數(shù)據(jù)就可以動(dòng)態(tài)地執(zhí)行各種各樣的處理,因 此能夠縮短處理數(shù)據(jù)包的數(shù)據(jù)所需的時(shí)間。圖3示出了數(shù)據(jù)包處理電路的內(nèi)部構(gòu)成。數(shù)據(jù)包處理電路20包括 用于存儲(chǔ)基準(zhǔn)數(shù)據(jù)的第一數(shù)據(jù)庫50A、 50B及50C (將這些統(tǒng)稱為第 一數(shù)據(jù)庫50),所述基準(zhǔn)數(shù)據(jù)在對(duì)通信數(shù)據(jù)執(zhí)行的處理進(jìn)行確定時(shí)參 考;檢索電路30,通過比較通信數(shù)據(jù)和基準(zhǔn)數(shù)據(jù)在接收的通信數(shù)據(jù)中 檢索基準(zhǔn)數(shù)據(jù);第二數(shù)據(jù)庫60,用于關(guān)聯(lián)對(duì)應(yīng)地存儲(chǔ)檢索電路30的 檢索結(jié)果和對(duì)通信數(shù)據(jù)執(zhí)行處理的內(nèi)容;處理執(zhí)行電路40,基于檢索 電路30的檢索結(jié)果和第二數(shù)據(jù)庫60所存儲(chǔ)的條件對(duì)通信數(shù)據(jù)進(jìn)行處 理。檢索電路30包括位置檢測(cè)電路32,從通信數(shù)據(jù)中檢測(cè)要與基準(zhǔn)數(shù)據(jù)進(jìn)行比較的比較對(duì)象數(shù)據(jù)的位置;作為判定電路一個(gè)例子的索引電路 34,當(dāng)把所述第一數(shù)據(jù)庫50所存儲(chǔ)的基準(zhǔn)數(shù)據(jù)分成3個(gè)以上的范圍時(shí), 索引電路34,判定比較對(duì)象數(shù)據(jù)屬于這些范圍中的哪一個(gè);對(duì)分檢索電 路36,在判定的范圍中,檢索與比較對(duì)象數(shù)據(jù)匹配的基準(zhǔn)數(shù)據(jù)??梢允?用任意的檢索技術(shù)作為從基準(zhǔn)數(shù)據(jù)中檢索比較對(duì)象數(shù)據(jù)的方法,但在本 實(shí)施方式中使用的是對(duì)分檢索法。在本實(shí)施例中,如后所述,由于使用 了改良的對(duì)分檢索法,為此設(shè)有三個(gè)第一數(shù)據(jù)庫50。在第一數(shù)據(jù)庫50A、 50B及50C中存儲(chǔ)有相同的基準(zhǔn)數(shù)據(jù)。圖4示出了位置檢測(cè)電路的內(nèi)部構(gòu)成。位置檢測(cè)電路32包括多個(gè) 比較電路33a 33f,用于對(duì)確定比較對(duì)象數(shù)據(jù)位置的位置確定數(shù)據(jù)和通信 數(shù)據(jù)進(jìn)行比較。在此,設(shè)置有6個(gè)比較電路33a 33f,但如后所述,比較 電路的個(gè)數(shù)可以是任意的。通信數(shù)據(jù)以每錯(cuò)開("f 預(yù)定的數(shù)據(jù) 長定例如1字節(jié)輸入到各比較電路33a 33f中。然后,在這些多個(gè)比較電 路33a 33f中,同時(shí)并列進(jìn)行應(yīng)檢測(cè)的位置確定數(shù)據(jù)和通信數(shù)據(jù)的比較。在本實(shí)施方式中,將進(jìn)行以下處理時(shí)的情況作為用于說明通信控制 裝置IO動(dòng)作的例子進(jìn)行說明,即,檢測(cè)通信數(shù)據(jù)中包含的"No.###" 的字符串,將該字符串中包含的數(shù)字"###"與基準(zhǔn)數(shù)據(jù)進(jìn)行比較, 與基準(zhǔn)數(shù)據(jù)一致時(shí)允許數(shù)據(jù)包通過,不一致時(shí)將數(shù)據(jù)包廢棄。在圖4的例子中,為了從通信數(shù)據(jù)中檢測(cè)用于確定數(shù)字"# # #" 位置的位置確定數(shù)據(jù)"No.",將通信數(shù)據(jù)"OlNo. 361..."每錯(cuò)開l個(gè)字 符輸入到比較電路33a 33f中。即,比較電路33a中輸入"01N",比較 電路33b中輸入"lNo,,,比較電路33c中輸入"No.",比較電路33d中 輸入"o.",比較電路中33e輸入".3",比較電路33f中輸入"36"。 在此,比較電路33a 33f同時(shí)執(zhí)行與位置確定數(shù)據(jù)"No."的比較。由此, 比較電路33c匹配,從而檢測(cè)出在通信數(shù)據(jù)的最前頭開始第3個(gè)字符處 存在"No."的字符串。這樣,在由位置檢測(cè)電路32檢測(cè)出的位置確定 數(shù)據(jù)"No."之后,將檢測(cè)出存在作為比較對(duì)象數(shù)據(jù)的數(shù)字?jǐn)?shù)據(jù)。如果由CPU進(jìn)行同樣的處理,則首先將字符串"01N"與"No."進(jìn) 行比較,然后將字符串"INo"與"No."進(jìn)行比較,由于必須從最前頭 開始依次逐一執(zhí)行比較處理,因此無法期待提高檢測(cè)速度。相反,在本實(shí)施方式的通信控制裝置10中,通過并列設(shè)置多個(gè)比較電路33a 33f, 使得CPU中無法實(shí)現(xiàn)的同時(shí)并列的比較處理成為可能,可以極大地提高 處理速度。雖然比較電路越多能夠同時(shí)比較的位置就越多,檢測(cè)速度也 將提高,但是在考慮到成本和尺寸等條件下,設(shè)置獲得所需檢測(cè)速度的 足夠數(shù)量的比較電路就可以了 。位置檢測(cè)電路32不只用于檢測(cè)位置確定數(shù)據(jù),也可以用作檢測(cè)通用 的字符串的電路。此外,不4義可以檢測(cè)字符串,而且還可以檢測(cè)以位為 單位的位置確定數(shù)據(jù)。圖5示出了位置檢測(cè)電路的另一個(gè)例子。在圖5所示的例子中,在 位置確定數(shù)據(jù)比設(shè)于位置檢測(cè)電路32中的各比較電路33a 33f的數(shù)據(jù)長 度短的情況下,在位置確定數(shù)據(jù)之后填補(bǔ)預(yù)定的數(shù)據(jù)例如"00H"或 "01H"。此外,對(duì)于與位置確定數(shù)據(jù)進(jìn)行比較的通信數(shù)據(jù),只從中摘出 與位置確定數(shù)據(jù)相同的數(shù)據(jù)長度并輸入到比較電路,然后,在其后填補(bǔ) 與位置確定數(shù)據(jù)填補(bǔ)的數(shù)據(jù)相同的數(shù)據(jù)。此時(shí),由于通信數(shù)據(jù)本身不改 變,因而可以對(duì)通信數(shù)據(jù)進(jìn)行復(fù)制作為工作(work),并對(duì)復(fù)制的數(shù)據(jù)進(jìn) 行加工以輸入比較電路33a 33f。由此,不管位置確定數(shù)據(jù)的數(shù)據(jù)長度如 何,均能夠廣泛地使用位置4企測(cè)電路32。圖6示出了位置檢測(cè)電路的又一個(gè)例子。在圖6所示的例子中,與 圖5所示的例子同樣地在位置確定數(shù)據(jù)之后填補(bǔ)預(yù)定的數(shù)據(jù),此外,此 數(shù)據(jù)可以作為通配符處理。即,當(dāng)向比較電路33a 33f輸入作為通配符的 數(shù)據(jù)時(shí),要比較的對(duì)象數(shù)據(jù)的相應(yīng)部分和通配符數(shù)據(jù)都相匹配,而無論 比較對(duì)象的數(shù)據(jù)是什么。由此,不管位置確定數(shù)據(jù)的數(shù)據(jù)長度如何,均 能夠廣泛地使用位置檢測(cè)電路32。圖7示出了第一數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)的例子。第一數(shù)據(jù)庫50存儲(chǔ)有當(dāng) 確定對(duì)數(shù)據(jù)包的處理(例如,過濾、路徑選擇、交換和置換等處理)時(shí) 參考的基準(zhǔn)數(shù)據(jù)?;鶞?zhǔn)數(shù)據(jù)按照某種分類條件進(jìn)行升序或降序分類而被 存儲(chǔ)。在7的例子中,存儲(chǔ)有1000個(gè)基準(zhǔn)數(shù)據(jù)。在將第一數(shù)據(jù)庫50貯存的基準(zhǔn)數(shù)據(jù)分成3個(gè)以上的范圍52a ~52d 時(shí),索引電路34判定比較對(duì)象數(shù)據(jù)屬于這些范圍中的哪一個(gè)。在圖7的 例子中,1000個(gè)基準(zhǔn)數(shù)據(jù)#1以每250個(gè)分成4個(gè)范圍52a 52d。索引電路34包括對(duì)范圍邊界的基準(zhǔn)數(shù)據(jù)與對(duì)象數(shù)據(jù)進(jìn)行比較的多個(gè)比較電路 35a 35c。通過比較電路35a 35c對(duì)比較對(duì)象數(shù)據(jù)與邊界的基準(zhǔn)數(shù)據(jù)同時(shí) 并列進(jìn)行比較,從而用一次比較處理就可以判定比較對(duì)象數(shù)據(jù)屬于哪個(gè) 范圍。輸入到索引電路34的比較電路35a 35c中的邊界基準(zhǔn)數(shù)據(jù),可以通 過通信控制裝置10外部所設(shè)置的裝置來設(shè)定,也可以事先自動(dòng)地輸入第 一數(shù)據(jù)庫50預(yù)定位置的基準(zhǔn)數(shù)據(jù)。在后一種情況下,即使更新第一數(shù)據(jù) 庫50,也可以自動(dòng)地將第一數(shù)據(jù)庫50預(yù)定位置的基準(zhǔn)數(shù)據(jù)輸入到比較電 路35a 35c中,因此無需進(jìn)行初始設(shè)定就能立即執(zhí)行通信控制處理。如上所述,在由CPU執(zhí)行對(duì)分檢索的場(chǎng)合,不能同時(shí)執(zhí)行多個(gè)比較, 而在本實(shí)施方式的通信控制裝置10中,通過并列設(shè)置有多個(gè)比較電路 35a 35c,可以同時(shí)并列進(jìn)行比較處理,從而極大地提高了檢索速度。當(dāng)由索引電路34判定了相關(guān)范圍時(shí),對(duì)分檢索電路36以對(duì)分檢索 法執(zhí)行檢索。對(duì)分檢索電路36將由索引電路34判定的范圍進(jìn)一步分成 2n個(gè),并通過將位于邊界位置的基準(zhǔn)數(shù)據(jù)和比較對(duì)象數(shù)據(jù)進(jìn)行比較,來 判定比較對(duì)象數(shù)據(jù)屬于哪個(gè)范圍。對(duì)分檢索電路36包括逐位地(bit by bit) 對(duì)基準(zhǔn)數(shù)據(jù)和比較對(duì)象數(shù)據(jù)進(jìn)行比較的多個(gè)比較器,例如在本實(shí)施方式 中包括1024個(gè)比較器,同時(shí)執(zhí)行1024位的位匹配。當(dāng)判定了屬于被分 成2n個(gè)的范圍中的哪一個(gè)時(shí),進(jìn)一步將所判定出的范圍分成2n個(gè)并讀出 位于其邊界位置的基準(zhǔn)數(shù)據(jù),將其與對(duì)象數(shù)據(jù)進(jìn)行比較。之后,通過重 復(fù)該處理來進(jìn)一步縮小范圍,最后檢索出與比較對(duì)象數(shù)據(jù)一致的基準(zhǔn)數(shù) 據(jù)。使用上述的例子進(jìn)一步對(duì)操作進(jìn)行詳細(xì)說明。在索引電路34的比較 電路35a 35c中,輸入"361"作為比較對(duì)象數(shù)據(jù)。至于基準(zhǔn)數(shù)據(jù),在比 較電路35a中輸入位于范圍52a和52b邊界處的基準(zhǔn)數(shù)據(jù)"378",在比 較電路35b中輸入位于范圍52b和52c邊界處的基準(zhǔn)數(shù)據(jù)"704",在比 較電路35c中輸入位于范圍52c和52d邊界處的基準(zhǔn)數(shù)據(jù)"937"。由比 較電路35a 35c同時(shí)進(jìn)行比較,判定出比較對(duì)象數(shù)據(jù)"361"屬于范圍52a。 之后,對(duì)分檢索電路36將在基準(zhǔn)數(shù)據(jù)中檢索比較對(duì)象數(shù)據(jù)"361"。圖8示出了第一數(shù)據(jù)庫內(nèi)部數(shù)據(jù)的另一個(gè)例子。在圖8的例子中,基準(zhǔn)數(shù)據(jù)的數(shù)據(jù)個(gè)數(shù)少于第一數(shù)據(jù)庫50所能夠保持的數(shù)據(jù)數(shù),在此為 1000個(gè)。此時(shí),在第一數(shù)據(jù)庫50中,從最后數(shù)據(jù)位置開始降序貯存基準(zhǔn) 數(shù)據(jù)。然后,將剩余的數(shù)據(jù)中貯存O。作為數(shù)據(jù)庫的加載方法,不是從最 前面配置數(shù)據(jù)而是從加載區(qū)域的后方配置,當(dāng)加載區(qū)域的開頭產(chǎn)生空位 時(shí),對(duì)所有的空位填充零,由此使數(shù)據(jù)庫一直處于滿的狀態(tài),從而可以 使對(duì)分檢索時(shí)的檢索時(shí)間恒定。此外,當(dāng)對(duì)分檢索電路36在檢索過程中 讀入基準(zhǔn)數(shù)據(jù)"0"時(shí),由于比較結(jié)果是明顯的,因此可以不進(jìn)行比豐支而 確定范圍,并轉(zhuǎn)到下一比較。由此,可以提高檢索速度。在基于CPU的軟件處理中,在將基準(zhǔn)數(shù)據(jù)貯存到第一數(shù)據(jù)庫50時(shí), 從最初的數(shù)據(jù)位置升序貯存基準(zhǔn)數(shù)據(jù)。在剩余的數(shù)據(jù)中例如貯存最大值, 在這種情況下,在對(duì)分檢索中不可能省略上述的比較處理。上述的比較 技術(shù)通過由專用的硬件電路構(gòu)成檢索電路30來實(shí)現(xiàn)。圖9示出了第一數(shù)據(jù)庫內(nèi)部數(shù)4^的又一個(gè)例子。在圖9的例子中, 基準(zhǔn)數(shù)據(jù)不是被均等地分成3個(gè)或3個(gè)以上的范圍,而是被不均等地分 到具有個(gè)數(shù)基準(zhǔn)數(shù)據(jù)個(gè)數(shù)不同的范圍,例如范圍52a為500個(gè),范圍52b 為100個(gè)。這些范圍可以根據(jù)基準(zhǔn)數(shù)據(jù)在通信數(shù)據(jù)中的出現(xiàn)頻度的分布 來進(jìn)行設(shè)定。也就是說,可以對(duì)范圍進(jìn)行設(shè)定以使各范圍所屬的基準(zhǔn)數(shù) 據(jù)的出現(xiàn)頻度的和(sum)大致相同。由此,可以提高檢索效率。輸入到 索引電路34的比較電路35a 35c中的基準(zhǔn)數(shù)據(jù)也可以從外部進(jìn)行變更。 由此,能夠動(dòng)態(tài)地設(shè)定范圍,從而可以使纟全索效率最佳化。圖IO示出了索引電路的另一 卜例子。在圖7 9所示的例子中,索引 電路34使用三個(gè)比較電路35a 35c來判定比較對(duì)象數(shù)據(jù)屬于第一數(shù)據(jù)庫 50的四個(gè)范圍52a 52d中的哪一個(gè),但在圖10的例子中,在索引電路 34中設(shè)有四個(gè)比較電路35d 35g,用于判定比較對(duì)象數(shù)據(jù)是否屬于第一 數(shù)據(jù)庫50的四個(gè)范圍52a 52d中的一個(gè)中。例如,在比較電路35d中輸 入有第一數(shù)據(jù)庫50的第O件的基準(zhǔn)數(shù)據(jù)、笫250件的基準(zhǔn)數(shù)據(jù)、和比較 對(duì)象數(shù)據(jù)。通過對(duì)各基準(zhǔn)數(shù)據(jù)和比較對(duì)象數(shù)據(jù)進(jìn)行比較來判定基準(zhǔn)數(shù)據(jù) 是否包含在范圍52a中。各比較電路35d 35g的比較結(jié)果被輸入到判定 電路35z,從判定電路35z輸出表示基準(zhǔn)數(shù)據(jù)包含在哪個(gè)范圍中的信息。 比較電路35d 35g也可以輸出基準(zhǔn)數(shù)據(jù)是否包含在已輸入的兩個(gè)基準(zhǔn)數(shù)據(jù)之間的信息,也可以輸出指示基準(zhǔn)數(shù)據(jù)大于該范圍的信息、指示基準(zhǔn) 數(shù)據(jù)包含在該范圍中的信息、或指示基準(zhǔn)數(shù)據(jù)小于該范圍中的任一個(gè)的信息。當(dāng)判斷的結(jié)果是,比較對(duì)象數(shù)據(jù)不包含在范圍52a 52d的任一個(gè) 中時(shí),可知比較對(duì)象數(shù)據(jù)不存在于第一數(shù)據(jù)庫50中,因此可以結(jié)束檢索 而無需進(jìn)行以后的對(duì)分檢索。圖11示出了對(duì)分檢索電路中包含的比較電路的構(gòu)成。如上所述,對(duì)分檢索電路36中包含的比較電路包括1024個(gè)比較器36a、 36b.....。各個(gè)比較器36a、 36b、…接收基準(zhǔn)數(shù)據(jù)54的一個(gè)位(bit)和比較對(duì)象數(shù)據(jù) 56的1個(gè)比特,并對(duì)它們的值進(jìn)行大小比較。索引電路34的各比較電路 35a 35c的內(nèi)部構(gòu)成也是同樣的。這樣,通過以專用的硬件電路執(zhí)行比較 處理,可以使多個(gè)比較電路并行動(dòng)作,同時(shí)對(duì)多位進(jìn)行比較,從而可以 使比較處理高速化。圖12示出了對(duì)分檢索電路的構(gòu)成。對(duì)分檢索電路36包括包含圖 11所示的1024個(gè)比較器36a、 36b、...的比較電路36A、 36B及36C;以 及對(duì)這些比較電路進(jìn)行控制的控制電路36z。在現(xiàn)有的對(duì)分檢索法中,首先在第一次檢索中,讀出位于升序或降 序排列有數(shù)據(jù)的數(shù)據(jù)庫的檢索對(duì)象范圍1/2位置處的數(shù)據(jù),并與比較對(duì)象 數(shù)據(jù)進(jìn)行比較。當(dāng)數(shù)據(jù)升序排列時(shí),如果比較對(duì)象數(shù)據(jù)小,那么由于比 較對(duì)象數(shù)據(jù)存在于檢索對(duì)象范圍的前半部分,因而在第二次檢索中,將 前半部分作為檢索對(duì)象范圍,讀出其1/2處即位于最初檢索對(duì)象范圍3/4 位置處的數(shù)據(jù)并與比較對(duì)象數(shù)據(jù)進(jìn)行比較。由此,可以使檢索對(duì)象范圍 逐半地變窄,最終獲得對(duì)象數(shù)據(jù)。在本實(shí)施方式中,由于設(shè)有三個(gè)用于對(duì)分檢索的比較電路,因而當(dāng) 第一次檢索中使位于檢索對(duì)象范圍1/2位置處的數(shù)據(jù)與比較對(duì)象數(shù)據(jù)進(jìn) 行比較時(shí),可以同時(shí)并行地在第二次檢索中使位于檢索對(duì)象范圍1/4及 3/4位置處的數(shù)據(jù)與比較對(duì)象數(shù)據(jù)進(jìn)行比較。由此,由于一次可以進(jìn)行兩 次檢索,因而可以縮短需要從數(shù)據(jù)庫讀取數(shù)據(jù)的時(shí)間。此外,通過使三 個(gè)比較電路同時(shí)并行地進(jìn)行動(dòng)作,可以使比較的次數(shù)減半,從而縮短檢 索所需的時(shí)間。在圖12的例子中,為了同時(shí)進(jìn)行兩次檢索而設(shè)有三個(gè)比較電路,但說一般地,為了同時(shí)并行地進(jìn)行n次檢索,可以設(shè)置211-1個(gè)比較電路??刂齐娐?6z使位于檢索對(duì)象范圍l/2n 、 2/2n.....(2n - 1) /2n位置處的數(shù)據(jù)分別輸入到2n - 1個(gè)比較電路中,使這些電路同時(shí)并行地動(dòng)作以對(duì) 各位置處的數(shù)據(jù)和比較對(duì)象數(shù)據(jù)進(jìn)行比較。控制電路36z獲取各比較電 路的比較結(jié)果并判定是否檢索到了比較對(duì)象數(shù)據(jù)。當(dāng)任何一個(gè)比較電路 輸出了表示存在數(shù)據(jù)匹配的信號(hào)時(shí),控制電路36z判定出檢索到了比較 對(duì)象數(shù)據(jù),并結(jié)束對(duì)分4企索。在未輸出表示存在數(shù)據(jù)匹配的信號(hào)時(shí),轉(zhuǎn) 到下一次檢索。如果比較對(duì)象數(shù)據(jù)存在于數(shù)據(jù)庫中,那么應(yīng)當(dāng)存在于2n -1個(gè)比較電路的比較結(jié)果轉(zhuǎn)變處之間的范圍中。例如,在設(shè)有15個(gè)比 較電路時(shí),如果5/16位置處的數(shù)據(jù)小于比較對(duì)象數(shù)據(jù),并且6/16位置處 的數(shù)據(jù)大于比較對(duì)象數(shù)據(jù),那么比較對(duì)象數(shù)據(jù)處于5/16至6/16之間的范 圍中。因此,控制電路36z獲取各比較電路的比較結(jié)果,并將比較結(jié)果 轉(zhuǎn)變了的范圍確定為下一次檢索的范圍,然后將所確定的下一次檢索對(duì) 象范圍l/2n 、 2/2n.....(2n -1) /2n位置處的數(shù)據(jù)輸入到各比較電路中。在本實(shí)施方式中,設(shè)有三個(gè)第一數(shù)據(jù)庫50,第一數(shù)據(jù)庫50A連接到 比較電路36A并將位于檢索對(duì)象范圍1/4位置處的數(shù)據(jù)提供給比較電路 36A;第二數(shù)據(jù)庫50B連接到比較電路36B并將位于檢索對(duì)象范圍2/4 位置處的數(shù)據(jù)提供給比較電路36B;第一數(shù)據(jù)庫50C連接到比較電路36C 并將位于檢索對(duì)象范圍3/4位置處的數(shù)據(jù)提供給比較電路36C。由此,由 于可以同時(shí)并行地將數(shù)據(jù)載入到各比較電路中,從而可以進(jìn)一步縮短數(shù) 據(jù)載入所需的時(shí)間并使對(duì)分檢索高速化。盡管比較電路越多檢索速度越快,但是考慮到成本、尺寸等,可以 設(shè)置足夠數(shù)量的比較電路以獲得所希望的檢索速度。此外,盡管最好設(shè) 置與比較電路數(shù)量相同的第一數(shù)據(jù)庫,但是考慮到成本、尺寸等,也可 以若干個(gè)比較電路共用數(shù)據(jù)庫。圖13示出了第一數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)的又一個(gè)例子。圖13所示的第 一數(shù)據(jù)庫50貯存有成為過濾對(duì)象內(nèi)容的URL。第一數(shù)據(jù)庫50中貯存的 數(shù)據(jù)也可以包含被認(rèn)為是通配符的預(yù)定數(shù)據(jù)例如"OOH"或"01H"等。 在圖13所示的例子中,"http:〃www.xx.xx/承中的""",",被認(rèn)為是通配符,在比較器36a、 36b、...中,無論比較對(duì)象數(shù)據(jù)是什么 都判定為通配符匹配。因此,以"http:〃www.xx.xx/,,開始的字符串可以 全部通it^t分檢索電路36檢測(cè)。由此,例如,對(duì)屬于"http://www.xx.xx/" 范圍內(nèi)的全部內(nèi)容進(jìn)行過濾的處理等可以容易地進(jìn)行。圖14示出了第二數(shù)據(jù)庫內(nèi)部數(shù)據(jù)的例子。第二數(shù)據(jù)庫60包括貯存 檢索電路30的檢索結(jié)果的檢索結(jié)果欄62、以及貯存對(duì)通信數(shù)據(jù)執(zhí)行的處 理內(nèi)容的處理內(nèi)容欄64,并對(duì)檢索結(jié)果和處理內(nèi)容進(jìn)行關(guān)聯(lián)對(duì)應(yīng)保持。 在圖14的例子中設(shè)定如下條件當(dāng)通信數(shù)據(jù)中包含基準(zhǔn)數(shù)據(jù)時(shí),允許該 數(shù)據(jù)包通過;當(dāng)不包含基準(zhǔn)數(shù)據(jù)時(shí),將該數(shù)據(jù)包廢棄。處理執(zhí)行電路40 根據(jù)檢索結(jié)果從第二數(shù)據(jù)庫60檢索處理內(nèi)容,對(duì)通信數(shù)據(jù)執(zhí)行處理。處 理執(zhí)行電路40也可以由布線邏輯電路來實(shí)現(xiàn)。圖15示出了第二數(shù)據(jù)庫內(nèi)部數(shù)據(jù)的另一個(gè)例子。在圖15的例子中, 對(duì)每個(gè)基準(zhǔn)數(shù)據(jù)設(shè)定處理內(nèi)容。當(dāng)進(jìn)行數(shù)據(jù)包的置換時(shí),可以將待置換 的數(shù)據(jù)貯存到第二數(shù)據(jù)庫60中。在進(jìn)行數(shù)據(jù)包的路徑選擇或者交換時(shí), 可以將與路經(jīng)有關(guān)的信息貯存到第二數(shù)據(jù)庫60中。處理執(zhí)行電路40根 據(jù)檢索電路30的檢索結(jié)果,執(zhí)行第二數(shù)據(jù)庫60中貯存的過濾、路徑選 擇、交換、置換等處理。如圖15所示,當(dāng)對(duì)每個(gè)基準(zhǔn)數(shù)據(jù)設(shè)定處理內(nèi)容 時(shí),可以對(duì)第一數(shù)據(jù)庫50和第二數(shù)據(jù)庫60進(jìn)行綜合。第一數(shù)據(jù)庫及第二數(shù)據(jù)庫被設(shè)置為可以從外部進(jìn)行重寫。通過對(duì)這些數(shù)據(jù)庫進(jìn)行替換,可以使用相同的通信控制裝置10實(shí)現(xiàn)各種各樣的數(shù) 據(jù)處理或者通信控制。此外,也可以設(shè)置2個(gè)以上D&存作為檢索對(duì)象的 基準(zhǔn)數(shù)據(jù)的數(shù)據(jù)庫,來進(jìn)行多階段的檢索處理。此時(shí),也可以設(shè)置2個(gè) 以上關(guān)聯(lián)對(duì)應(yīng)貯存了檢索結(jié)果和處理內(nèi)容的數(shù)據(jù)庫,來實(shí)現(xiàn)更復(fù)雜的條 件分支。這樣,當(dāng)設(shè)置多個(gè)數(shù)據(jù)庫進(jìn)行多階段的檢索時(shí),也可以設(shè)置多 個(gè)位置檢測(cè)電路32、索引電路34、對(duì)分檢索電路36等。上述用于比較的數(shù)據(jù),可以用同樣的壓縮邏輯進(jìn)行壓縮。在進(jìn)行比 較時(shí),如果比較源數(shù)據(jù)與比較目標(biāo)數(shù)據(jù)用同樣的方式壓縮,則可以與通 常一樣進(jìn)行比較。由此,比較時(shí)可以減少載入的數(shù)據(jù)量。如果載入的數(shù) 據(jù)量變少,則從存儲(chǔ)器讀出數(shù)據(jù)所需的時(shí)間就會(huì)縮短,全部的處理時(shí)間 也可以縮短。此外,由于可以削減比較器的數(shù)量,從而有助于裝置的小型化、輕型化、低成本化。用于比較的數(shù)據(jù)可以用壓縮的形式|&存,也 可以從存儲(chǔ)器讀出后,在比較之前進(jìn)行壓縮。以上,通過實(shí)施方式對(duì)本發(fā)明進(jìn)行了說明。本領(lǐng)域的技術(shù)人員應(yīng)該 理解,實(shí)施方式僅為示例,本發(fā)明還存在對(duì)各構(gòu)成元素或各處理過程 進(jìn)行組合的各種各樣的變形實(shí)施例,這些變形實(shí)施例也包含在本發(fā)明 的范圍內(nèi)。產(chǎn)業(yè)上的可利用性本發(fā)明可以用作從數(shù)據(jù)庫中檢索數(shù)據(jù)的對(duì)分檢索電路。
權(quán)利要求
1.一種對(duì)分檢索電路,用于從升序或降序排列有數(shù)據(jù)的數(shù)據(jù)庫中通過對(duì)分檢索來檢索比較對(duì)象數(shù)據(jù),包括2n-1個(gè)比較電路,將從所述數(shù)據(jù)庫中讀出的數(shù)據(jù)與所述比較對(duì)象數(shù)據(jù)進(jìn)行比較;以及控制電路,對(duì)所述比較電路進(jìn)行控制,其中,所述控制電路在所述數(shù)據(jù)庫的檢索范圍被分為2n個(gè)時(shí),使所述檢索范圍的1/2n、2/2n、...、(2n-1)/2n位置處的數(shù)據(jù)分別輸入到所述2n-1個(gè)比較電路中,并使所述2n-1個(gè)比較電路將所輸入的數(shù)據(jù)與所述比較對(duì)象數(shù)據(jù)進(jìn)行比較,由此同時(shí)并行地執(zhí)行n次檢索。
2. 根據(jù)權(quán)利要求1所述的對(duì)分檢索電路,其特征在于,所述控制電 路根據(jù)所述2n個(gè)比較電路各自的比較結(jié)果來判定是否檢索到了所述比較 對(duì)象數(shù)據(jù),當(dāng)未檢索到時(shí),所述控制電路將基于所述比較結(jié)果所確定的下一次檢索對(duì)象范圍的l/2n 、 2/2n.....(2n - 1) /2n位置處的數(shù)據(jù)輸入到各比較電路中。
3. 根據(jù)權(quán)利要求1或2所述的對(duì)分檢索電路,其特征在于,所述對(duì) 分檢索電路還包括連接到各所述比較電路的2n - 1個(gè)數(shù)據(jù)庫,所述控制電路使所述檢索對(duì)象范圍的l/2n 、 2/2n.....(2n -1)/2n位置處的數(shù)據(jù)從連接到各比較電路的數(shù)據(jù)庫中并行地輸入。
4. 根據(jù)權(quán)利要求1至3任一項(xiàng)所述的對(duì)分檢索電路,其特征在于, 所述對(duì)分4全索電路配置有布線邏輯電^各。
5. —種對(duì)分檢索方法,其特征在于,當(dāng)將貯存有升序或降序排列 的數(shù)據(jù)的數(shù)據(jù)庫的檢索范圍分為2n個(gè)時(shí),使所述檢索范圍的l/2n 、2/2n.....(2n - 1 ) /2位置處的數(shù)據(jù)分別輸入到2n - 1個(gè)比較電路中,并使得所述2n- 1個(gè)比較電路將所輸入的數(shù)據(jù)與比較對(duì)象數(shù)據(jù)進(jìn)行比較,由此同時(shí)并行地執(zhí)行n次檢索。
全文摘要
本發(fā)明提供一種實(shí)現(xiàn)高速對(duì)分檢索的技術(shù)。對(duì)分檢索電路(36)從貯存有升序或降序排列的數(shù)據(jù)的數(shù)據(jù)庫中通過對(duì)分檢索來檢索比較對(duì)象數(shù)據(jù)。比較電路(36A、36B、36C)將從數(shù)據(jù)庫(50A、50B、50C)中讀出的數(shù)據(jù)與比較對(duì)象數(shù)據(jù)進(jìn)行比較??刂齐娐?36Z)使1/2<sup>n</sup>、2/2<sup>n</sup>、…、(2<sup>n</sup>-1)/2<sup>n</sup>位置處的數(shù)據(jù)分別輸入到所述2<sup>n</sup>-1個(gè)比較電路中,并使其與比較對(duì)象數(shù)據(jù)進(jìn)行比較,由此同時(shí)并行地執(zhí)行n次檢索。
文檔編號(hào)G06F7/04GK101263451SQ20068003356
公開日2008年9月10日 申請(qǐng)日期2006年5月22日 優(yōu)先權(quán)日2006年5月22日
發(fā)明者名古屋貢 申請(qǐng)人:Duaxes株式會(huì)社