專利名稱:信息檢索裝置以及信息檢索方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息檢索裝置以及信息檢索方法。
背景技術(shù):
例如,圖14所示的在因特網(wǎng)中進行分組數(shù)據(jù)中繼的路由器(Router, 路線程序)10'進行著高速的表檢索。作為該表檢索的例子,說明一下 NAPT (NetworkAddress Port Translation:網(wǎng)絡(luò)地址端口轉(zhuǎn)換)處理。
NAPT處理是在路由器10'所進行的處理中,對連接因特網(wǎng)時的專用 IP (即本地IP)和全局IP (Global IP)進行轉(zhuǎn)換的處理。通過該處理, 多個PC (個人計算機)可以使用1個全局IP同時連接因特網(wǎng)。以下示出 結(jié)構(gòu)。
通過路由器10'內(nèi)的NAPT,將(1)的IP分組的源地址從"本地IP: 20"變更為"自身IP: 220"。在作為針對(1)的分組的回復(fù)的(3)的分 組中,將發(fā)送目的地地址從"自身IP: 220"變更為"本地IP: 20"。
由此,可以使多個PC使用1個全局IP。
因為該處理需要在高速下進行,而且由于表大小超過1000,所以提 出了使用散列函數(shù)的裝置。
圖15示出使用一般的散列函數(shù)的表檢索裝置的框圖的一個例子。 此處,主表RAM (Main Table RAM) 34,中具有NAPT數(shù)據(jù)。 指針表RAM (Pointer Table RAM) 24'中具有主表RAM 34'的地址。 動作情況如下。 輸入NAPT數(shù)據(jù)時
(1) 在地址轉(zhuǎn)換部22,中將成為檢索鑰匙的檢索關(guān)鍵數(shù)據(jù)輸入到散 列函數(shù),得到散列值。
(2) 將散列值作為指針表RAM24'的地址,讀取指針表RAM24',如果為空則將下一個指針生成器(NexPointGen) 30,所生成的值插入該地 址。如果不為空則使散列值加1后進行(2)的處理。
(3)將下一個指針生成器30'所生成的值作為主表RAM34'的地址 而輸入NAPT數(shù)據(jù)。(然后加上下一個指針) 讀取NAPT數(shù)據(jù)時
(1) 將檢索關(guān)鍵數(shù)據(jù)輸入到散列函數(shù),獲得散列值。
(2) 將散列值作為指針表RAM24'的地址,讀取指針表RAM24'。
(3) 將讀取的值作為主表RAM34'的地址,讀取主表RAM34'。
(4) 如果讀取的值是與檢索關(guān)鍵數(shù)據(jù)對應(yīng)的數(shù)據(jù)則結(jié)束。 如果不是與檢索關(guān)鍵數(shù)據(jù)對應(yīng)的數(shù)據(jù),則使散列值加1后進行(2)
的處理。
刪除NAPT數(shù)據(jù)時
(1) 將檢索關(guān)鍵數(shù)據(jù)輸入到散列函數(shù),獲得散列值。
(2) 將散列值作為指針表RAM24'的地址,讀取指針表RAM24'。
(3) 將讀取的值作為主表RAM34'的地址,讀取主表RAM34'。
(4) 如果讀取的值是與檢索關(guān)鍵數(shù)據(jù)對應(yīng)的數(shù)據(jù),則刪除散列值為 地址的指針表RAM24'的數(shù)據(jù)及該指針表RAM24'的內(nèi)容為地址的主表 RAM34'的數(shù)據(jù)。
如果讀取的值不是與檢索關(guān)鍵數(shù)據(jù)對應(yīng)的數(shù)據(jù),則使散列值加1后 進行(2)的處理。
當(dāng)進行NAPT處理的情況下,由于檢索關(guān)鍵數(shù)據(jù)與對應(yīng)于檢索關(guān)鍵 數(shù)據(jù)的數(shù)據(jù)1對1地對應(yīng)起來,因而可以毫無問題地實現(xiàn)使用了散列的 表檢索方式。
并且,作為與本發(fā)明相關(guān)的技術(shù),在專利文獻1中公開了可以對使 用通配符輸入的關(guān)鍵詞檢索和輸出近似的標(biāo)識符的標(biāo)識符檢索裝置。 專利文獻1:日本特開平9-223154號公報
然而,有時需要進行所輸入的檢索關(guān)鍵數(shù)據(jù)是否屬于特定范圍的范 圍檢索。例如,在路由器10'中,在按照IP過濾器處理那樣輸入的IP地 址在特定范圍的情況下,有時不進行數(shù)據(jù)中繼等。但是,在需要進行按照IP過濾器處理那樣輸入的檢索關(guān)鍵數(shù)據(jù)是否 屬于特定范圍的范圍檢索的情況下,無法使用應(yīng)用了散列的表檢索方式。
換言之,散列檢索雖然可進行高速檢索,但因為基本上屬于1對1 的檢索,所以存在無法適用于使用通配符(具有某種范圍的特殊字符) 的檢索的問題。
并且,專利文獻1的技術(shù)是用于從表內(nèi)進行采用通配符(例如"*") 的檢索的技術(shù),在技術(shù)上應(yīng)用的情形不同。另外,在專利文獻1的技術(shù)
中,例如進行了檢索ab*xy的情況下,檢索結(jié)果從ablxy、 ab22xy到 ab333xy,連不需要的數(shù)據(jù)也進行了檢索,處理也變得復(fù)雜。
發(fā)明內(nèi)容
鑒于上述情況,本發(fā)明的目的在于提供一種信息檢索裝置以及信息 檢索方法,其可以判定使用散列函數(shù)輸入的檢索關(guān)鍵數(shù)據(jù)是否為特定范 圍內(nèi)的數(shù)據(jù)。
為達成上述目的,本發(fā)明第一方面的信息檢索裝置具有第1存儲 單元,其在通過將檢索范圍規(guī)定數(shù)據(jù)的特定位置的數(shù)據(jù)置換為預(yù)先確定 的固定值并使用規(guī)定的散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的地址中存儲有規(guī) 定的信息,上述檢索范圍規(guī)定數(shù)據(jù)通過被形成為表示檢索關(guān)鍵數(shù)據(jù)的上 述特定位置的數(shù)據(jù)是任意數(shù)據(jù)的信息,從而規(guī)定了作為檢索對象的范圍; 第2存儲單元,其存儲有表示上述特定位置的位置信息;讀取單元,其 在被輸入了作為檢索對象的檢索關(guān)鍵數(shù)據(jù)時,從上述第2存儲單元讀取 上述位置信息,從上述第1存儲單元讀取在將該檢索關(guān)鍵數(shù)據(jù)的由該位 置信息表示的特定位置的數(shù)據(jù)置換為上述固定值并使用上述散列函數(shù)進 行轉(zhuǎn)換而對應(yīng)起來的地址中所存儲的信息;以及判定單元,其判定通過
上述讀取單元讀取的信息是否為上述規(guī)定的信息。
在本發(fā)明第一方面中,在通過將檢索范圍規(guī)定數(shù)據(jù)的特定位置的數(shù) 據(jù)置換為預(yù)先確定的固定值并使用規(guī)定的散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來 的第1存儲單元的地址中存儲有規(guī)定的信息,其中該檢索范圍規(guī)定數(shù)據(jù) 通過被形成為表示檢索關(guān)鍵數(shù)據(jù)的上述特定位置的數(shù)據(jù)是任意數(shù)據(jù)的信息,來規(guī)定了作為檢索對象的范圍;并且在第2存儲單元存儲有表示特
定位置的位置信息。
而且,在本發(fā)明中,當(dāng)輸入了作為檢索對象的檢索關(guān)鍵數(shù)據(jù)時,由
讀取單元從第2存儲單元讀取位置信息,從第1存儲單元讀取在通過將
該檢索關(guān)鍵數(shù)據(jù)的由該位置信息表示的特定位置的數(shù)據(jù)置換為固定值并
使用散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的地址中所存儲的信息,由判定單元 對讀取單元所讀取的信息是否為規(guī)定的信息進行判定。
這樣,根據(jù)本發(fā)明的第一方面,在通過將檢索范圍規(guī)定數(shù)據(jù)的特定 位置的數(shù)據(jù)置換為預(yù)先確定的固定值并使用規(guī)定的散列函數(shù)進行轉(zhuǎn)換而 對應(yīng)起來的第1存儲單元的地址中存儲規(guī)定的信息,在輸入了作為檢索 對象的檢索關(guān)鍵數(shù)據(jù)時,讀取在通過將該檢索關(guān)鍵數(shù)據(jù)的由位置信息表 示的特定位置的數(shù)據(jù)置換為固定值并使用散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來 的第1存儲單元的地址中所存儲的信息,判定所讀取的信息是否為規(guī)定 的信息,從而可以判定使用散列函數(shù)輸入的檢索關(guān)鍵數(shù)據(jù)是否為特定范 圍內(nèi)的數(shù)據(jù)。
并且,根據(jù)本發(fā)明的第二方面,還可以構(gòu)成為,上述第1存儲單元 在通過使用上述散列函數(shù)對上述檢索關(guān)鍵數(shù)據(jù)進行轉(zhuǎn)換而對應(yīng)起來的地 址中,存儲有與該檢索關(guān)鍵數(shù)據(jù)相對應(yīng)的信息;上述讀取單元在被輸入 了作為檢索對象的檢索關(guān)鍵數(shù)據(jù)時,還從上述第1存儲單元讀取通過使 用上述散列函數(shù)對該檢索關(guān)鍵數(shù)據(jù)進行轉(zhuǎn)換而對應(yīng)起來的地址中所存儲 的信息。
另外,根據(jù)本發(fā)明的第三方面,優(yōu)選方式為,當(dāng)上述特定位置相同 的檢索范圍數(shù)據(jù)登記了多個時,僅存儲l個上述位置信息。
另外,根據(jù)本發(fā)明的第四方面,在第一方面至第三方面的發(fā)明的基 礎(chǔ)上,上述位置信息是利用比特位置來表示上述特定位置的信息。
進而,根據(jù)本發(fā)明的第五方面,在第一方面至第三方面的發(fā)明的基 礎(chǔ)上,上述位置信息是利用從最下位比特起的比特數(shù)來表示上述特定位 置的信息。
另一方面,為達成上述目的,根據(jù)本發(fā)明第六方面的信息檢索方法,在通過將檢索范圍規(guī)定數(shù)據(jù)的特定位置的數(shù)據(jù)置換為預(yù)先確定的固定值 并使用規(guī)定的散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的第一存儲單元的地址中存
儲規(guī)定的信息,并且表示上述特定位置的位置信息存儲在第2存儲單元 中,上述檢索范圍規(guī)定數(shù)據(jù)通過被形成為表示檢索關(guān)鍵數(shù)據(jù)的上述特定 位置的數(shù)據(jù)是任意數(shù)據(jù)的信息,從而規(guī)定了作為檢索對象的范圍;當(dāng)被 輸入了作為檢索對象的檢索關(guān)鍵數(shù)據(jù)時,從上述第2存儲單元讀取上述 位置信息,從上述第1存儲單元讀取在通過將該檢索關(guān)鍵數(shù)據(jù)的由該位 置信息表示的特定位置的數(shù)據(jù)置換為上述固定值并使用上述散列函數(shù)進 行轉(zhuǎn)換而對應(yīng)起來的地址中所存儲的信息;判定該讀取的信息是否為上 述規(guī)定的信息。
由此,第六方面的發(fā)明與第一方面的發(fā)明具有同樣的作用,因此與 第一方面的發(fā)明同樣,可以對使用散列函數(shù)輸入的檢索關(guān)鍵數(shù)據(jù)是否為 特定范圍內(nèi)的數(shù)據(jù)進行判定。
如上所述,根據(jù)本發(fā)明,可獲得如下優(yōu)良效果,即能夠判定使用 散列函數(shù)輸入的檢索關(guān)鍵數(shù)據(jù)是否為特定范圍內(nèi)的數(shù)據(jù)。
圖1是表示實施方式所涉及的路由器的概要結(jié)構(gòu)的框圖。
圖2是表示實施方式所涉及的檢索鑰匙登記處理的流程的流程圖。
圖3是表示第1實施方式所涉及的檢索范圍登記處理的流程的流程圖。
圖4是表示存儲在第1實施方式所涉及的掩碼表中的數(shù)據(jù)的數(shù)據(jù)結(jié) 構(gòu)的一個例子的圖。
圖5是表示第1實施方式所涉及的檢索處理的流程的流程圖。
圖6是表示實施方式所涉及的檢索鑰匙刪除處理的流程的流程圖。
圖7是表示第1實施方式所涉及的檢索范圍刪除處理的流程的流程圖。
圖8是表示存儲在第1實施方式所涉及的掩碼表中的數(shù)據(jù)的數(shù)據(jù)結(jié) 構(gòu)的一個例子的圖。圖9是表示第2實施方式所涉及的檢索范圍登記處理的流程的流程圖。
圖10是表示存儲在第2實施方式所涉及的掩碼表中的數(shù)據(jù)的數(shù)據(jù)結(jié) 構(gòu)的一個例子的圖。
圖11是表示第2實施方式所涉及的檢索處理的流程的流程圖。
圖12是表示第2實施方式所涉及的檢索范圍刪除處理的流程的流程圖。
圖13是表示存儲在第2實施方式所涉及的掩碼表中的數(shù)據(jù)的數(shù)據(jù)結(jié) 構(gòu)的一個例子的圖。
圖14是表示現(xiàn)有的進行分組數(shù)據(jù)中繼的路由器的示意圖。 圖15是表示實施方式所涉及的路由器的概要結(jié)構(gòu)的框圖。 符號說明
34:主表RAM (Main Table RAM)(第1存儲單元) 40:掩碼表(MaskTable)(第2存儲單元)
42:數(shù)據(jù)選擇部(讀取單元、判定單元)
具體實施例方式
下面,參照附圖詳細說明本發(fā)明的實施方式。并且,下面說明將本
發(fā)明應(yīng)用于路由器的NAPT (網(wǎng)絡(luò)地址端口轉(zhuǎn)換)處理中的情況。 [第1實施方式]
圖1表示與本實施方式所涉及的路由器的NAPT處理相關(guān)的部分的 概要結(jié)構(gòu)。
本實施方式所涉及的路由器(Router) 10具有鑰匙掩碼(KEYMask) 電路20、地址轉(zhuǎn)換部22、指針表(Pointer Table) RAM (Hash:散列) 24、指針表RAM (出口) 26、下一個指針生成器(NexPointGen) 30、 出口指針生成器(ExtPointGen) 32、主表RAM 34、掩碼表40和數(shù)據(jù)選 擇部42。
檢索關(guān)鍵數(shù)據(jù)、規(guī)定作為檢索對象的范圍的檢索范圍規(guī)定數(shù)據(jù)與指 示各數(shù)據(jù)的登記、檢索、刪除的指示信息一同被輸入到鑰匙掩碼電路20。并且,本實施方式所涉及的檢索范圍規(guī)定數(shù)據(jù)通過被形成為通配符(本 實施方式中為"*")來規(guī)定了作為檢索對象的范圍,其中該通配符表示檢 索關(guān)鍵數(shù)據(jù)的特定位置是任意數(shù)據(jù)。
鑰匙掩碼電路20按照所輸入的指示信息,對所輸入的檢索關(guān)鍵數(shù)據(jù) 和檢索范圍規(guī)定數(shù)據(jù)進行掩碼處理等各種處理等,將處理后的檢索關(guān)鍵 數(shù)據(jù)或檢索范圍規(guī)定數(shù)據(jù)與指示信息一起輸出到地址轉(zhuǎn)換部22。
地址轉(zhuǎn)換部22通過利用規(guī)定的散列函數(shù)對所輸入的檢索關(guān)鍵數(shù)據(jù)和 檢索范圍規(guī)定數(shù)據(jù)進行轉(zhuǎn)換,從而導(dǎo)出與該檢索關(guān)鍵數(shù)據(jù)和檢索范圍規(guī) 定數(shù)據(jù)對應(yīng)起來的掩碼表40的地址。
在指針表RAM (Hash:散列)24和指針表RAM (出口) 26中,與 散列值對應(yīng)地存儲有數(shù)據(jù)登記完畢的主表RAM 34的存儲區(qū)域的地址。
下一個指針生成器(NexPointGen) 30按照地址順序生成未登記數(shù)據(jù) 的主表RAM 34的存儲區(qū)域的地址。
出口指針生成器32按照地址順序生成未登記數(shù)據(jù)的指針表RAM(出 口) 26的存儲區(qū)域的地址。
在主表RAM34中,在通過使用散列函數(shù)對檢索關(guān)鍵數(shù)據(jù)和檢索范 圍規(guī)定數(shù)據(jù)進行轉(zhuǎn)換而對應(yīng)起來的地址中,存儲有與該檢索關(guān)鍵數(shù)據(jù)和 檢索范圍規(guī)定數(shù)據(jù)相對應(yīng)的信息。并且,本實施方式中,作為對應(yīng)起來 的信息,存儲有要轉(zhuǎn)換的IP地址等的地址信息和控制信息等NAPT數(shù)據(jù)。
在掩碼表40中存儲有位置信息,該位置信息表示所登記的檢索范圍 規(guī)定數(shù)據(jù)的通配符的位置。
數(shù)據(jù)選擇部42進行如下判定,g卩從主表RAM34中檢索出的數(shù)據(jù) 是與檢索關(guān)鍵數(shù)據(jù)相對應(yīng)的數(shù)據(jù)嗎。
下面,說明本實施方式所涉及的路由器10的基本動作。
首先,參照圖2,說明進行檢索關(guān)鍵數(shù)據(jù)的登記的檢索鑰匙登記處理 的流程。
在進行檢索關(guān)鍵數(shù)據(jù)的登記時,向鑰匙掩碼電路20輸入作為檢索的 鑰匙的檢索關(guān)鍵數(shù)據(jù)(例如IP地址)和指示登記的指示信息。
鑰匙掩碼電路20在被輸入了檢索關(guān)鍵數(shù)據(jù)和指示登記的指示信息時,將檢索關(guān)鍵數(shù)據(jù)和指示信息直接輸出到地址轉(zhuǎn)換部22 (步驟S100)。 地址轉(zhuǎn)換部22使用散列函數(shù)對檢索關(guān)鍵數(shù)據(jù)進行轉(zhuǎn)換,獲得散列值 (步驟S102)。
而且,地址轉(zhuǎn)換部22將通過步驟S102獲得的散列值作為存儲區(qū)域 的地址,讀取指針表RAM (Hash:散列)24 (步驟S104)。
地址轉(zhuǎn)換部22判定所讀取的地址數(shù)據(jù)是否表示空(步驟S106),如 果讀取的地址數(shù)據(jù)為空,則將下一個指針生成器30所生成的值存儲在該 讀取的地址中(步驟S108)。另一方面,如果讀取的地址數(shù)據(jù)不為空,則 將出口指針生成器32所生成的值作為指針表RAM (出口) 26的存儲區(qū) 域的地址,將下一個指針生成器30所生成的值輸入到指針表RAM (出 口) 26 (步驟S110)。出口指針生成器32將所生成的值按照存儲區(qū)域的 地址順序作為下一個未登記數(shù)據(jù)區(qū)域的地址(例如,使生成的值(指針) 加1)。
數(shù)據(jù)選擇部42將下一個指針生成器30所生成的值作為主表RAM 34 的地址,將NAPT數(shù)據(jù)和檢索關(guān)鍵數(shù)據(jù)存儲到主表RAM 34(步驟S112)。 下一個指針生成器30將生成的值按照存儲區(qū)域的地址順序作為下一個未 登記數(shù)據(jù)區(qū)域的地址(例如,使生成的值(指針)加l)。
由此,在主表RAM34中,在通過使用散列函數(shù)對檢索關(guān)鍵數(shù)據(jù)進 行轉(zhuǎn)換而對應(yīng)起來的地址中,存儲有要轉(zhuǎn)換的IP地址等的NAPT數(shù)據(jù)和 檢索關(guān)鍵數(shù)據(jù)。
下面,參照圖3說明進行檢索范圍規(guī)定數(shù)據(jù)的登記的檢索范圍登記 處理的流程。
在進行檢索范圍規(guī)定數(shù)據(jù)的登記的情況下,鑰匙掩碼電路20被輸入 檢索范圍規(guī)定數(shù)據(jù)和指示登記的指示信息。
鑰匙掩碼電路20確定檢索范圍規(guī)定數(shù)據(jù)的通配符部分的位置,將表 示所確定的通配符部分的位置的位置信息登記在掩碼表40中(步驟 S200)。
另外,鑰匙掩碼電路20將檢索范圍規(guī)定數(shù)據(jù)的通配符部分的數(shù)據(jù)轉(zhuǎn) 換為預(yù)先確定的固定值(例如"0"),將轉(zhuǎn)換后的檢索范圍規(guī)定數(shù)據(jù)和指示信息輸出到地址轉(zhuǎn)換部22 (步驟S201)。
地址轉(zhuǎn)換部22使用散列函數(shù)對檢索范圍規(guī)定數(shù)據(jù)進行轉(zhuǎn)換,獲得散 列值(步驟S202)。
而且,地址轉(zhuǎn)換部22將通過步驟S202獲得的散列值作為存儲區(qū)域 的地址,讀取指針表RAM (Hash:散列)24 (步驟S204)。
地址轉(zhuǎn)換部22對所讀取的地址數(shù)據(jù)是否表示空進行判定(步驟 S206),如果所讀取的地址數(shù)據(jù)為空,則將下一個指針生成器30所生成 的值存入到所讀取的地址中(步驟S208)。另一方面,如果所讀取的地址 數(shù)據(jù)不為空,則將出口指針生成器32所生成的值作為指針表RAM(EXT: 出口 ) 26的存儲區(qū)域的地址,將下一個指針生成器30所生成的值輸入到 指針表RAM(EXT:出口) 26 (步驟S210)。出口指針生成器32將所生 成的值按照存儲區(qū)域的地址順序作為下一個未登記數(shù)據(jù)區(qū)域的地址(例 如,使生成的值(指針)加1)。
數(shù)據(jù)選擇部42將下一個指針生成器30所生成的值作為主表RAM 34 的地址,將控制信息和檢索范圍規(guī)定數(shù)據(jù)存儲到主表RAM 34 (步驟 S212)。下一個指針生成器30將生成的值按照存儲區(qū)域的地址順序作為 下一個未登記數(shù)據(jù)區(qū)域的地址(例如,使生成的值(指針)加l)。
由此,在主表RAM34中,在通過以固定值對檢索范圍規(guī)定數(shù)據(jù)的 通配符部分的數(shù)據(jù)進行掩碼、使用散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的地址 中,存儲有控制信息和檢索范圍規(guī)定數(shù)據(jù)。
此處,舉出具體例子來說明動作。
并且,為了簡化說明,設(shè)檢索范圍規(guī)定數(shù)據(jù)為8比特(bit:位)、與 其對應(yīng)的對應(yīng)信息為8比特。 (1)數(shù)據(jù)設(shè)置動作 檢索范圍規(guī)定數(shù)據(jù)-OblOOO****、對應(yīng)信息-0x01 檢索范圍規(guī)定數(shù)據(jù)=01311011***、對應(yīng)信息-0x02 檢索范圍規(guī)定數(shù)據(jù)-OblOlO****、對應(yīng)信息-0x03 注意*為通配符部分
在設(shè)置了如上的檢索范圍規(guī)定數(shù)據(jù)時,在掩碼表40中存儲有圖4所示的表示檢索范圍規(guī)定數(shù)據(jù)的通配符部分的比特位置的位置信息。
本實施方式所涉及的位置信息中,設(shè)檢索范圍規(guī)定數(shù)據(jù)的通配符部
分的比特位置為'T,,通配符之外的比特位置為"O"來表示通配符部分的比 特位置。
另外,本實施方式所涉及的掩碼表40中設(shè)有數(shù)據(jù)數(shù)區(qū)域,在數(shù)據(jù)數(shù) 區(qū)域中,在登記了多個表示通配符部分的位置相同的檢索范圍規(guī)定數(shù)據(jù) 的情況下,存儲所登記的登記數(shù)。
在將表示通配符部分的位置的位置信息登記在掩碼表40中時,在該 位置信息己經(jīng)存在于掩碼表40中的情況下,本實施方式所涉及的鑰匙掩 碼電路20使與該位置信息對應(yīng)的數(shù)據(jù)數(shù)區(qū)域的值加1。
接著,參照圖5說明利用檢索關(guān)鍵數(shù)據(jù)進行檢索時的檢索處理的流程。
當(dāng)利用檢索關(guān)鍵數(shù)據(jù)進行檢索時,鑰匙掩碼電路20被輸入檢索關(guān)鍵 數(shù)據(jù)和指示檢索的指示信息。
在鑰匙掩碼電路20中,將檢索關(guān)鍵數(shù)據(jù)與指示信息直接輸出到地址 轉(zhuǎn)換部22,并且從掩碼表40分別讀取各位置信息,按照各位置信息,將 各檢索關(guān)鍵數(shù)據(jù)(以下稱之為"轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù)")輸出到地址轉(zhuǎn)換部 22 (步驟S300),其中各轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù)是根據(jù)位置信息將檢索關(guān)鍵數(shù) 據(jù)的由位置信息表示的比特位置的數(shù)據(jù)轉(zhuǎn)換為預(yù)先確定的固定值(例如 為"0")的。
地址轉(zhuǎn)換部22使用散列函數(shù)分別對檢索關(guān)鍵數(shù)據(jù)和轉(zhuǎn)換檢索關(guān)鍵數(shù) 據(jù)進行轉(zhuǎn)換,分別獲得散列值(步驟S302)。
而且,地址轉(zhuǎn)換部22將通過步驟S302得到的各散列值作為指針表 RAM (Hash:散列)24的地址,讀取指針表RAM (Hash) 24 (步驟S304)。
而且,將讀取的值作為主表RAM34的地址,讀取主表RAM34(步 驟S306)。
數(shù)據(jù)選擇部42對通過步驟S306讀取的信息是否為與檢索關(guān)鍵數(shù)據(jù) 對應(yīng)的NAPT數(shù)據(jù)和控制信息進行判定(步驟S308 ),如果對應(yīng)則將NAPT 數(shù)據(jù)和控制信息輸出到外部并結(jié)束處理。另一方面,如果不是與檢索關(guān)鍵數(shù)據(jù)對應(yīng)的NAPT數(shù)據(jù)和控制信息,則從地址0起依次從指針表RAM (出口) 26讀取(步驟S310),之后進行上述S306的處理。
由此,在作為檢索對象的檢索關(guān)鍵數(shù)據(jù)登記到主表RAM34中的情況 下,從主表RAM 34中讀取使用散列函數(shù)對作為檢索對象的檢索關(guān)鍵數(shù) 據(jù)進行轉(zhuǎn)換而對應(yīng)起來的地址中所存儲的信息。
另外,在登記了檢索范圍規(guī)定數(shù)據(jù)的情況下,可以進行如下判定, 即作為檢索對象的檢索關(guān)鍵數(shù)據(jù)是否在通過所登記的檢索范圍規(guī)定數(shù) 據(jù)來指定的范圍內(nèi)。
此處,舉出具體例子來說明動作。
例如掩碼表40為圖4所示的狀態(tài),作為檢索對象對檢索關(guān)鍵數(shù)據(jù) =10001010進行檢索時,在鑰匙掩碼電路20中由檢索關(guān)鍵數(shù)據(jù)=10001010 和掩碼表40的編號為0的值=00001111來生成轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù) =10000000,然后使用散列函數(shù)進行轉(zhuǎn)換。
其結(jié)果,在數(shù)據(jù)選擇部42中讀取轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù)=10000000和數(shù) 據(jù)=0乂01。
該數(shù)據(jù)作為檢索對象根據(jù)檢索關(guān)鍵數(shù)據(jù)-10001010和掩碼表40的編 號為0的值=00001111判斷為一致,在一致的情況下,可以確定屬于所指 定的范圍內(nèi)的數(shù)據(jù)。此后對掩碼表40的編號1也實施處理。
通過這些動作可實現(xiàn)具有通配符的數(shù)據(jù)的檢索。
下面,參照圖6說明進行檢索關(guān)鍵數(shù)據(jù)的刪除的檢索鑰匙刪除處理 的流程。
在刪除檢索關(guān)鍵數(shù)據(jù)的情況下,在鑰匙掩碼電路20中輸入有檢索關(guān) 鍵數(shù)據(jù)和指示刪除的指示信息。
如果在鑰匙掩碼電路20中輸入了檢索關(guān)鍵數(shù)據(jù)和指示刪除的指示信 息,則直接將檢索關(guān)鍵數(shù)據(jù)和指示信息輸出到地址轉(zhuǎn)換部22(步驟S400)。
地址轉(zhuǎn)換部22使用散列函數(shù)對檢索關(guān)鍵數(shù)據(jù)進行轉(zhuǎn)換,獲得散列值 (步驟S術(shù))。
而且,地址轉(zhuǎn)換部22將通過步驟S402得到的各散列值作為指針表 RAM (Hash:散列)24的地址,讀取指針表RAM (Hash:散列)24 (步驟S404)。
而且,將讀取的值作為主表RAM34的地址,讀取主表RAM34(步 驟S楊)。
數(shù)據(jù)選擇部42判定通過步驟S406所讀取的信息是否為與檢索關(guān)鍵 數(shù)據(jù)對應(yīng)的NAPT數(shù)據(jù)和控制信息(步驟S408),如果對應(yīng)則刪除該指 針表RAM (Hash:散列)24的數(shù)據(jù)和主表RAM 34的數(shù)據(jù)(步驟S410) 并結(jié)束。另一方面,如果不是與檢索關(guān)鍵數(shù)據(jù)對應(yīng)的NAPT數(shù)據(jù)和控制 信息,則從地址0起依次讀取指針表RAM (出口) 26 (步驟S412),之 后進行上述S406的處理。
下面,參照圖7說明進行檢索范圍規(guī)定數(shù)據(jù)的刪除的檢索范圍刪除 處理的流程。
在刪除檢索范圍規(guī)定數(shù)據(jù)的情況下,鑰匙掩碼電路20中輸入有檢索 范圍規(guī)定數(shù)據(jù)和指示刪除的指示信息。
鑰匙掩碼電路20確定檢索范圍規(guī)定數(shù)據(jù)的通配符部分的位置,對表 示所確定的通配符部分的位置的位置信息是否登記在掩碼表40中進行檢 索。而且,鑰匙掩碼電路20在掩碼表40中登記有位置信息,當(dāng)與位置 信息對應(yīng)的數(shù)據(jù)數(shù)區(qū)域的值小于等于'T'的情況下,刪除該位置信息的記 錄,當(dāng)數(shù)據(jù)數(shù)區(qū)域的值大于"l"的情況下,從數(shù)據(jù)數(shù)區(qū)域的值中減1 (步 驟S500)。
另外,鑰匙掩碼電路20將檢索范圍規(guī)定數(shù)據(jù)的通配符部分的數(shù)據(jù)轉(zhuǎn) 換為預(yù)先確定的固定值(例如為"0"),將轉(zhuǎn)換后的檢索范圍規(guī)定數(shù)據(jù)和 指示信息輸出到地址轉(zhuǎn)換部22 (步驟S501)。
^k址轉(zhuǎn)換部22使用散列函數(shù)對檢索范圍規(guī)定數(shù)據(jù)進行轉(zhuǎn)換,獲得散 列值(步驟S502)。
而且,地址轉(zhuǎn)換部22將通過步驟S502得到的散列值作為指針表 RAM (Hash:散列)24的地址,讀取指針表RAM (Hash:散列)24 (步 驟S504)。
而且,將讀取的值作為主表RAM34的地址,讀取主表RAM34(步 驟S506)。數(shù)據(jù)選擇部42判定通過步驟S506讀取的信息是否為與檢索范圍規(guī) 定數(shù)據(jù)對應(yīng)的NAPT數(shù)據(jù)和控制信息(步驟S508),如果對應(yīng),則刪除 該指針表RAM (Hash:散列)24的數(shù)據(jù)和主表RAM 34的數(shù)據(jù)(步驟 S510)并結(jié)束。另一方面,如果不是與檢索關(guān)鍵數(shù)據(jù)對應(yīng)的NAPT數(shù)據(jù) 和控制信息,則從地址0起依次讀取指針表RAM(出口 )26 (步驟S512), 之后進行上述S506的處理。
此處,舉出具體例子來說明動作。
例如,在從圖4所示的掩碼表40中刪除檢索范圍規(guī)定數(shù)據(jù) =01 1000****數(shù)據(jù)的情況下,在掩碼表40中使具有相同掩碼圖案的數(shù)據(jù) 的個數(shù)減少1個。執(zhí)行該處理之后的掩碼表40如圖8所示。
如上所述,根據(jù)本實施方式,將檢索范圍規(guī)定數(shù)據(jù)的特定位置的數(shù) 據(jù)置換為預(yù)先確定的固定值,將規(guī)定的信息存儲在通過使用規(guī)定的散列 函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的主表RAM 34的地址中,在輸入作為檢索對 象的檢索關(guān)鍵數(shù)據(jù)時,讀取在通過將該檢索關(guān)鍵數(shù)據(jù)的由位置信息所表 示的特定位置的數(shù)據(jù)置換為固定值并使用散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來 的主表RAM 34的地址中所存儲的信息,判定所讀取的信息是否為規(guī)定 的信息,從而可以判定使用散列函數(shù)輸入的檢索關(guān)鍵數(shù)據(jù)是否為特定的 范圍內(nèi)的數(shù)據(jù)。
另外,根據(jù)本實施方式,可以平行地進行檢索關(guān)鍵數(shù)據(jù)的范圍檢索 和對應(yīng)數(shù)據(jù)的檢索。
另外,根據(jù)本實施方式,在檢索范圍規(guī)定數(shù)據(jù)的通配符部分相同的 情況下,由于僅存儲了 1個表示通配符部分的位置的位置信息,因而可 以將所使用的存儲區(qū)域抑制得較少。另外,在上述檢索處理之中,分別 對應(yīng)于各位置信息逐個地生成轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù),所以在通配符部分相 同的情況下,僅存儲l個位置信息,從而范圍檢索的檢索速度得以提高。
進而,根據(jù)本實施方式,由于位置信息是通過比特位置來表示特定 位置的信息,所以例如可以指定100**0*0等和不連續(xù)的多個位置來作為 通配符。第2實施方式所涉及的路由器10是作為檢索范圍規(guī)定數(shù)據(jù)而輸入了 檢索關(guān)鍵數(shù)據(jù)和從通配符部分的最下位的比特起的比特數(shù)的結(jié)構(gòu)。
第2實施方式所涉及的路由器10的結(jié)構(gòu)與上述第1實施方式(參見 圖l)相同,因此,此處省略說明。
下面,參見圖9說明進行基于檢索范圍規(guī)定數(shù)據(jù)的登記的檢索范圍 登記處理的流程。并且,對該圖9中的與圖3相同的處理賦予同樣的符 號,省略此處的說明。
在登記檢索范圍規(guī)定數(shù)據(jù)的情況下,向鑰匙掩碼電路20中輸入了檢 索關(guān)鍵數(shù)據(jù)和表示從通配符部分最下位比特起的比特數(shù)的信息以及指示 登記的指示信息作為檢索范圍規(guī)定數(shù)據(jù)。
鑰匙掩碼電路20將通配符最部分下位比特起的比特數(shù)作為位置信息 登記在掩碼表40中(步驟S200A)。
另外,鑰匙掩碼電路20根據(jù)從最下位比特起的比特數(shù)將檢索范圍規(guī) 定數(shù)據(jù)的通配符部分的數(shù)據(jù)轉(zhuǎn)換為預(yù)先確定的固定值(例如為"O"),將 轉(zhuǎn)換后的檢索關(guān)鍵數(shù)據(jù)輸出到地址轉(zhuǎn)換部22 (步驟S201A)。
此處舉出具體例子說明動作。 (1)數(shù)據(jù)設(shè)置動作
檢索關(guān)鍵數(shù)據(jù)K)blOOOl 111 、通配符部分的比特數(shù)=4、對應(yīng)信息=(^01
檢索關(guān)鍵數(shù)據(jù)-0bll011000、通配符部分的比特數(shù)-3、對應(yīng)信息《x02
檢索關(guān)鍵數(shù)據(jù)=01 10100000、通配符部分的比特數(shù)=4、對應(yīng)信息=(^03
如果設(shè)定了上述的檢索范圍規(guī)定數(shù)據(jù),則在掩碼表40中存儲圖10 所示的通配符部分的最下位比特起的比特數(shù)作為位置信息。
下面,參見圖11說明利用檢索關(guān)鍵數(shù)據(jù)進行檢索時的檢索處理的流 程。并且,對該圖11中的與圖5相同的處理賦予同樣的符號,省略此處 的說明。
當(dāng)利用檢索關(guān)鍵數(shù)據(jù)進行檢索時,在鑰匙掩碼電路20輸入有檢索關(guān) 鍵數(shù)據(jù)和指示檢索的指示信息。
在鑰匙掩碼電路20中,將檢索關(guān)鍵數(shù)據(jù)和指示信息直接輸出到地址 轉(zhuǎn)換部22,并且從掩碼表40中分別讀取各位置信息,按照各位置信息,根據(jù)位置信息來生成轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù),該轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù)是將從檢 索關(guān)鍵數(shù)據(jù)的最下位比特起,由位置信息表示的比特數(shù)的數(shù)據(jù)轉(zhuǎn)換為預(yù)
先確定的固定值(例如為"o")而得到的,并將各轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù)輸出 到地址轉(zhuǎn)換部22 (步驟S300A)。 此處舉出具體例子說明動作。
例如掩碼表40為圖10所示的狀態(tài),對檢索關(guān)鍵數(shù)據(jù)-10001010進行 檢索時,則在鑰匙掩碼電路20中由掩碼表40的編號為0的值=4來生成 掩碼值-00001111。
而且,在鑰匙掩碼電路20中,由鑰匙-10001010和掩碼值=00001111 來生成轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù)-10000000,并進行檢索。
其結(jié)果,數(shù)據(jù)選擇部42讀取轉(zhuǎn)換檢索關(guān)鍵數(shù)據(jù)-10000000和數(shù)據(jù) =0x01。
該數(shù)據(jù)根據(jù)鑰匙=10001010和掩碼值=00001111判斷為一致。此后對 表NO.l也實施處理。
通過這些動作可實現(xiàn)具有通配符的數(shù)據(jù)的檢索。
下面,參照圖12說明進行檢索范圍規(guī)定數(shù)據(jù)的刪除的檢索鑰匙刪除 處理的流程。并且,對該圖12中的與圖7相同的處理賦予同樣的符號, 省略此處的說明。
在刪除檢索范圍規(guī)定數(shù)據(jù)的情況下,在鑰匙掩碼電路20中輸入有檢 索關(guān)鍵數(shù)據(jù)和表示從通配符部分最下位比特起的比特數(shù)的信息以及指示 刪除的指示信息,來作為檢索范圍規(guī)定數(shù)據(jù)。
鑰匙掩碼電路20進行如下檢索,g卩在所輸入的檢索關(guān)鍵數(shù)據(jù)和從 通配符部分最下位比特起的比特數(shù)中,從通配符部分的最下位比特起的 比特數(shù)是否作為位置信息被登記在掩碼表40中。而且,鑰匙掩碼電路20 在掩碼表40中登記有位置信息,在與位置信息對應(yīng)的數(shù)據(jù)數(shù)區(qū)域的值小 于等于'T'的情況下,刪除該位置信息的記錄,在數(shù)據(jù)數(shù)區(qū)域的值大于"l" 的情況下,從數(shù)據(jù)數(shù)區(qū)域的值中減去l (步驟S500A)。
另外,鑰匙掩碼電路20根據(jù)從最下位比特起的比特數(shù),將檢索關(guān)鍵 數(shù)據(jù)的通配符部分的數(shù)據(jù)轉(zhuǎn)換為預(yù)先確定的固定值(例如為"0"),將轉(zhuǎn)換后的檢索關(guān)鍵數(shù)據(jù)輸出到地址轉(zhuǎn)換部22 (步驟S501A)。 此處舉出具體例子說明動作。
例如,在從圖10所示的掩碼表40中刪除作為檢索范圍規(guī)定數(shù)據(jù)而 被輸入的檢索關(guān)鍵數(shù)據(jù)-0b10001111、比特數(shù)=4的數(shù)據(jù)時,在掩碼表中使 具有相同掩碼比特位置的數(shù)據(jù)的個數(shù)減少1個。執(zhí)行了該處理之后的掩 碼表如圖13所示。
如上所述,根據(jù)本實施方式,由于位置信息是利用從最下位的比特 起的比特數(shù)來表示特定位置的信息,因而可以將表示特定位置的信息的 數(shù)據(jù)量抑制得較少。
并且,在本實施方式中,說明了使用指針表RAM (Hash:散列)24 和指針表RAM (出口) 26這2個RAM,與散列值相對應(yīng)地存儲地址的 情況,然而本發(fā)明不限于此,例如在背景技術(shù)中所說明的那樣,也可以 應(yīng)用于如下方式的信息檢索裝置,即在使用1個指針表RAM使散列值 重疊的情況下,該信息檢索裝置使散列值加1。
另外,在本實施方式中,說明了應(yīng)用于路由器10的情況,然而本發(fā) 明不限于此。
此外,本實施方式中說明的路由器10的結(jié)構(gòu)(參見圖1)只是一個 例子,當(dāng)然在不脫離本發(fā)明主旨的范圍內(nèi)可以適當(dāng)?shù)剡M行各種變更。
另外,本實施方式中說明的各處理(圖2、圖3、圖5 圖7、圖9、 圖ll、圖12)的流程只是一個例子,當(dāng)然在不脫離本發(fā)明主旨的范圍內(nèi) 可以適當(dāng)?shù)剡M行各種變更。
權(quán)利要求
1. 一種信息檢索裝置,其具有第1存儲單元,其在通過將檢索范圍規(guī)定數(shù)據(jù)的特定位置的數(shù)據(jù)置換為預(yù)先確定的固定值并使用規(guī)定的散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的地址中存儲有規(guī)定的信息,上述檢索范圍規(guī)定數(shù)據(jù)通過被形成為表示檢索關(guān)鍵數(shù)據(jù)的上述特定位置的數(shù)據(jù)是任意數(shù)據(jù)的信息,從而規(guī)定了作為檢索對象的范圍;第2存儲單元,其存儲有表示上述特定位置的位置信息;讀取單元,其在被輸入了作為檢索對象的檢索關(guān)鍵數(shù)據(jù)時,從上述第2存儲單元讀取上述位置信息,從上述第1存儲單元讀取在通過將該檢索關(guān)鍵數(shù)據(jù)的由該位置信息表示的特定位置的數(shù)據(jù)置換為上述固定值并使用上述散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的地址中所存儲的信息;以及判定單元,其對通過上述讀取單元讀取的信息是否為上述規(guī)定的信息進行判定。
2. 根據(jù)權(quán)利要求1所述的信息檢索裝置,其中上述第1存儲單元在 通過使用上述散列函數(shù)對上述檢索關(guān)鍵數(shù)據(jù)進行轉(zhuǎn)換而對應(yīng)起來的地址 中,存儲有與該檢索關(guān)鍵數(shù)據(jù)相對應(yīng)的信息;上述讀取單元在被輸入了作為檢索對象的檢索關(guān)鍵數(shù)據(jù)時,還從上 述第1存儲單元讀取通過使用上述散列函數(shù)對該檢索關(guān)鍵數(shù)據(jù)進行轉(zhuǎn)換 而對應(yīng)起來的地址中所存儲的信息。
3. 根據(jù)權(quán)利要求1或2所述的信息檢索裝置,其中當(dāng)上述特定位置 相同的檢索范圍數(shù)據(jù)登記了多個時,僅存儲1個上述位置信息。
4. 根據(jù)權(quán)利要求1至3中任一項所述的信息檢索裝置,其中上述位 置信息是利用比特位置來表示上述特定位置的信息。
5. 根據(jù)權(quán)利要求1或2所述的信息檢索裝置,其中上述位置信息是 利用距離最下位比特的比特數(shù)來表示上述特定位置的信息。
6. —種信息檢索方法,在該方法中,在通過將檢索范圍規(guī)定數(shù)據(jù)的特 定位置的數(shù)據(jù)置換為預(yù)先確定的固定值并使用規(guī)定的散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的第一存儲單元的地址中存儲規(guī)定的信息,并且在第2存儲 單元中存儲表示上述特定位置的位置信息,上述檢索范圍規(guī)定數(shù)據(jù)通過 被形成為表示檢索關(guān)鍵數(shù)據(jù)的上述特定位置的數(shù)據(jù)是任意數(shù)據(jù)的信息, 從而規(guī)定了作為檢索對象的范圍;當(dāng)被輸入了作為檢索對象的檢索關(guān)鍵數(shù)據(jù)時,從上述第2存儲單元 讀取上述位置信息,從上述第1存儲單元讀取在通過將該檢索關(guān)鍵數(shù)據(jù) 的由該位置信息表示的特定位置的數(shù)據(jù)置換為上述固定值并使用上述散 列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的地址中所存儲的信息;判定該所讀取的信息是否為上述規(guī)定的信息。
全文摘要
本發(fā)明提供一種信息檢索裝置及方法。該方法在通過將檢索范圍規(guī)定數(shù)據(jù)的特定位置的數(shù)據(jù)置換為預(yù)先確定的固定值并由規(guī)定的散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的主表RAM(34)的地址中存儲規(guī)定信息,該檢索范圍規(guī)定數(shù)據(jù)通過被形成為表示檢索關(guān)鍵數(shù)據(jù)的特定位置數(shù)據(jù)是任意數(shù)據(jù)的信息來規(guī)定作為檢索對象的范圍;并將表示特定位置的位置信息存儲于掩碼表(40);當(dāng)輸入了作為檢索對象的檢索關(guān)鍵數(shù)據(jù)時,數(shù)據(jù)選擇部(42)從掩碼表(40)讀取位置信息,從主表RAM(34)讀取在通過將該檢索關(guān)鍵數(shù)據(jù)的由該位置信息表示的特定位置的數(shù)據(jù)置換為上述固定值并利用上述散列函數(shù)進行轉(zhuǎn)換而對應(yīng)起來的地址中所存儲的信息;判定讀取的信息是否為規(guī)定信息。
文檔編號H04L12/56GK101414976SQ20081021300
公開日2009年4月22日 申請日期2008年8月20日 優(yōu)先權(quán)日2007年10月15日
發(fā)明者上原輝昭 申請人:沖電氣工業(yè)株式會社