CN1703880A - 位串的校验方法及装置 - Google Patents
位串的校验方法及装置 Download PDFInfo
- Publication number
- CN1703880A CN1703880A CNA2003801009592A CN200380100959A CN1703880A CN 1703880 A CN1703880 A CN 1703880A CN A2003801009592 A CNA2003801009592 A CN A2003801009592A CN 200380100959 A CN200380100959 A CN 200380100959A CN 1703880 A CN1703880 A CN 1703880A
- Authority
- CN
- China
- Prior art keywords
- verification
- inlet
- pattern
- retrieval
- login
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在本发明的位串的校验方法中,将检索对象的位串分为多位的部分对象位串,以多阶段和预先登录的位模式进行校验。在作为多阶段的其中一个校验阶段的当前阶段中,和部分对象位串能取得的全部值进行校验,根据所述校验结果和登录了部分位模式的模式表,得到至少表示与部分对象位串一致的部分登录位模式的有无的判断结果,根据所述判断结果,输出包含当前阶段的下一阶段的模式表的地址的校验继续信息。
Description
技术领域
本发明涉及适用于检测或校验(检验)IP地址等位串(bit string)的装置及方法。
背景技术
在经因特网等计算机网络接收数据之际采用各种协议。其中之一为因特网的网络层中的协议,称为网际协议(IP)。该IP虽然将信息信息包化并使其移动到规定的目的地为止,但为此,将在存储了信息的有效负荷上附加了IP头的信息包用于信息的收发。每个信息包根据IP头的信息,向规定的路线配送,在接收方,根据IP头的信息,以使有效负荷的信息成为发送方的状态的方式组装。
IP头的信息,用路由器及防火墙等管理网络的装置或软件(程序或程序产品)进行参照,为了达到路由选择、包滤波、SPD(安全策略数据库)、策略路由选择、QoS等各种目的而进行校验。这样,IP头的信息在信息包的收发或转送时始终被参照、利用。
今后,若实现移动IP,则路由选择表有可能动态地变动。另外,与在现状的Ipv4(版本4)中,接收方地址(SIP)及发送源地址(DIP)为32位相对,在Ipv6(版本6)中扩展为128位。因此,使IP地址检索中的处理速度进一步提高,在采用因特网等计算机网络进行数据交换的基础上,今后成为更重要的技术。
例如,在特开平11-88427号公报中,公开了对分类过的多个入口所构成的路由选择表,一边比较检索IP地址大小,一边检索一致的IP地址的技术。根据该方法,为了进行路由选择或其他目的,需要检索包含多个128位的IP地址的位串那样的庞大时间,至少不适用于今后的信息传递路径。
不限于IP地址,成为检索对象的位串(位流或位模式)的信息量今后有进一步增大的倾向,在光通信走上轨道的情况下,要求G(giga,千兆)位种类的位串的检索功能。提出几种庞大数据量的位串的检索方法。
首先,软件方式,虽然检索功能充分,但在速度方面不足。在利用硬件的方式中,有CAM(Content-Addressable Memory)方式。进行使用了1个CAM的重复检索的最长一致检索或进行并列使用多个CAM的最长一致检索是现实的。然而,实现包滤波或状态(state)全校验所要求的多维范围、例如包括源IP·目标IP·源端口·目标端口协议的范围的一致检索是非常困难的。
另外,作为最长一致检索的对象,在考虑IP路由选择的情况下,向CIDR(Classless Inter-Domain Routing)形式下的可变前缀长的对应,成为重复型的重复次数增加或以多个CAM并列型进行那样吧。若为前者,则解题能力(throughput)或等待时间(latency)方面的性能不足。若为后者,则由于路径入口的分布不均,而有CAM入口利用率恶化的问题。
对于登录入口数的增加,只用多个CAM芯片的级联即可对应。对于被检索密钥的位长的增加,只以芯片自身的规格变更即可对应,所有入口的CAM存储器位增加是必要的。若以多芯片构成来对应,则由于CAM将多个入口并列地进行校验,故为了在多个芯片之间进行联动的校验,必须在芯片间继承各入口的校验状态。因此,若考虑CAM所要求的大量入口(entry)数是不现实的。
也有部分利用CAM的方法。例如,有利用CAM将检索对象的入口缩小,然后利用软件检索帕特利夏树(patricia tree)等的方式。在该方式中,由于在树检索中利用软件,故存在和完全软件方式同样的问题。另外,即使在将树检索部硬件化的情况下,例如树结构为帕特利夏,则入口的登录和/或删除伴随有复杂的树再构成,在高位应用软件中增多过度的表管理成本。
有能进行屏蔽(MASK),且能进行分层型检索的三元CAM(TCAM)方式。该情况下,硬件本身提供的检索功能是完全一致(CAM)和最长一致的。TCAM在原理上是看作也和入口的DC(无关,don’t care)位一致的完全一致,从校验部输出多个一致入口。因此,在校验部的后级,若没有依据前缀长或入口编号等的任何优先编码器,则不进行“从多位最长一致”的缩小。
因此,在TCAM中,针对入口的登录和/或删除的管理变得烦杂。特别是,在为入口编号成为优先的方式的TCAM的情况下,伴随入口的追加,高位应用软件侧必须自发地进行已有入口的再配置。该已有入口的再配置是将前缀长作为密钥的分类,要求多次的入口位置交换。由于只有前缀长成为问题,故比通常的分类是低成本,但无法排除分类(sort)本身。即,虽然可以以TCAM实现范围一致,但其依据于进行入口管理的高位应用软件。因此,将范围表现分割为多个最长一致表现,向最长一致还原来实现。因此,范围一致的规则管理(删除·登录)变得烦杂。即,TCAM中的范围一致即使针对静态入口所构成的检索具有实用性,但针对动态变化的入口所构成的检索,向高位应用软件的负荷可以说非常高。或者,将进行这些复杂的表管理的专用协同处理器和TCAM自身分开准备。
从以上事实可以说:当然范围一致即使为最长一致,TCAM也不趋向于具有可以动态地追加删除登录入口的性质的检索。对于登录入口数的增加,只用多个TCAM芯片的级联即可对应的事实与CAM同样。即使针对被检索密钥的位长的增加,也可以只用芯片自身的规格变更即可对应,有增加全入口的TCAM存储器位的必要。若想以多芯片构成进行对应,则由于TCAM将多入口并列地校验,故为了进行在多个芯片间联动的校验,必须在芯片间继承各入口的校验状态。因此,若考虑TCAM要求的大量入口数,则是不现实的。
发明内容
因此,本发明的目的之一为,提供一种位串校验方法及校验装置,其中能提供称为范围一致、完全一致以及最长一致的检索功能,即使在包滤波或状态全校验中,减轻高位应用软件的负担。提供一种可以缩小或排除由于伴随入口的追加·删除的入口移动而产生的、高位应用程序的表管理开销(overhead)的位串校验方法及校验装置也是本发明的目的之一。
进而,提供一种能将SDRAM等通常的DRAM(或者SRAM)作为存储器,一边提供充分的检索速度,一边可以以比CAM系统的专用存储器更低的价格实现大容量的校验方法及校验装置也是本发明的目的之一。这种校验装置由于将能收纳的入口数只规定为SDRAM容量,故可升级性高。另外,由于柔性地进行存储器管理,故可以以单一的硬件组柔性地进行多种检索。
此外,提供一种即使针对成为检索对象的被检索位串(密钥)的位长的增加,也不需要硬件自身的算法性变更,通过追加单元或重复一系列的处理,而能对应的校验方法及校验装置也是本发明的目的之一。
在本发明的位串校验方法中,采用具有将检索对象的位串(被检索位串)分为多位的部分对象位串(部分被检索对象位串),以多阶段和预先登录的多个登录位模式进行校验的过程的方法。作为多阶段所包含的一个校验阶段的当前阶段具有:从检索对象位串中选择当前阶段的部分对象位串,并和该当前阶段的部分对象位串能取得的全部值进行校验的全校验工序;将作为表示多个登录位模式的部分登录位模式用的模式表、由从先于当前阶段得到的校验继续信息决定的当前阶段的模式表,与全校验工序前后或并列地由存储器进行装载的模式装载工序。该当前阶段的模式表表示相对当前阶段的部分对象位串成为校验对象的部分登录位模式。
当前阶段进一步具有:由全校验工序的结果和当前阶段的模式表,得到至少表示与当前阶段的部分对象位串一致的部分登录位模式的有无的校验结果的判断工序;根据该校验结果,从当前阶段的模式表所对应的地址表输出包括当前阶段的下一阶段的模式表的地址的校验继续信息的输出工序。在地址表中,示出当前阶段的模式表所示出的部分登录位模式各自接着的下一阶段的模式表的地址。因此,可以从地址表中输出:在当前阶段中一致的部分登录位模式接着的、包含表示下一阶段中校验的部分登录位模式的下一阶段的模式表的地址的校验继续信息。
作为实现该校验方法的校验装置,在本发明中,是一种将检索对象的位串分为多位的部分对象位串,以多阶段和预先登录的多个登录位模式进行校验用的校验装置,提供一种执行多阶段的至少一个进行校验的阶段的校验装置。该校验装置具有:从检索对象的位串中选择多阶段的一个当前阶段的部分对象位串,与该部分对象位串所能取得的全部值进行校验的全校验机构;由存储器装载根据从先行阶段得到的校验继续信息而决定的当前阶段的模式表的模式装载机构;由全校验机构的结果和当前阶段的模式表,输出至少表示与部分对象位串一致的部分登录位模式的有无的校验结果的判断机构;根据校验结果,从与当前阶段的模式表对应记录的地址表中输出包含下一阶段的模式表的地址的校验继续信息的输出机构。
这些校验方法及校验装置,通过输出包含在当前阶段一致的部分登录位模式接着的下一阶段的模式表的地址的校验继续信息,从而提供完全一致及最长一致的检索功能。进而,在判断工序及判断机构中,若得到包含值最接近部分对象位串的最大或最小部分登录位模式的有无的校验结果,则在输出工序及输出机构中,在没有一致的部分登录位模式时,可以从地址表输出包含最大或最小的当前阶段的部分登录位模式接着的下一阶段的模式表的地址的校验继续信息。由此,可以提供作为检索功能而包括范围一致的校验方法及校验装置。
在这里,所谓值最接近部分对象位串的最大部分登录位模式,是指值比部分对象位串小的最大部分登录位模式。另外,所谓值最接近部分对象位串的最小部分登录位模式,是指值比部分对象位串大的最小部分登录位模式。通过选择最大部分登录位模式接着的模式表的地址,从而能进行以下所说明的右倾斜范围检索。此外,通过选择最小部分登录位模式接着的模式表的地址,能进行以下所说明的左倾斜范围检索。因此,在右倾斜型的检索中,以下所说明的最大侧被选择,在左倾斜型的检索中,以下所说明的最小侧被选择。
另外,在本发明的校验方法及校验装置中,在多阶段校验的一个阶段(当前阶段)中,利用全校验工序及全校验机构,和部分对象位串所能取得的全部值进行校验。其结果是,从当前阶段的部分对象位串和成为校验对象的、表示当前阶段的部分登录位模式(以后也称入口)的当前阶段模式表引入完全一致或范围一致。
模式表无需是部分入口的位列本身,从数据量观点来看,倒不如说是以将部分入口的值直接或者通过位模式或标志等而与部分入口对应的形式进行表示的数据。在本发明中,备有和部分对象位串所能取得的全部值进行校验的全校验工序或全校验机构。因此,在全校验时,在成为校验对象的值的范围内,模式表可以以表示部分登录位模式的有效无效的位标志所构成的屏蔽数据给出。即,在全校验时,由于预先决定部分对象位串所能取得的范围,故以这种屏蔽数据存储在存储器中,还能从存储器装载。因此,在模式装载工序及机构中,从存储器装载屏蔽数据。
此外,在该校验方法及装置中,由于和部分对象位串可以取得的全部值进行校验,故作为模式表的量或区域,预先确保可以覆盖部分对象位串可以取得的全部值的量或区域。因此,在追加入口时,基本上只更新屏蔽模式就可以,不会产生伴随入口的追加删除的入口移动。因此,可以缩小或排除高位应用程序所产生的表管理的开销。因此,即使在包滤波或状态全校验中,也可以提供一种高位应用软件的负担轻的位串校验方法及校验装置。
特别是,在为屏蔽数据的情况下,由于也能以1位表现1个入口,故可以大幅度削减模式表的存储容量,另外也可以缩短装载模式表的时间。进而,在更新时,入口的追加删除处理中改写的位量也大幅度减少,处理简化,也可缩短处理时间。因此,屏蔽数据化模式表是有效的。
和部分对象位串可以取得的全部值进行校验的处理(全校验工序及机构),能利用比较器或参照表并以硬件来高速执行,通过分割为多阶段,从而硬件的规模也不会变大。虽然部分对象位串的位长没有被限定,但如果位长变长,则硬件变大,如果位长短,则校验级数增加。硬件的适当规模依赖于硬件的目的、经济价值、能实现的配线规则等而变化。在现状中,作为部分对象位串的位长,认为4~5位左右是优选的。还有,即使对于成为检索对象的被检索位串(以后也称为密钥)的位长增加,也无需硬件自身的算法性变更,通过追加单元或重复一系列处理即可对应。
本发明的校验方法及校验装置,具备以简单的结构可以实现高速化的效果。首先,能并列地进行全校验工序和模式装载工序,也可以大幅度削减伴随分割为多阶段而产生的从存储器装载模式表的开销的时间。因此,即使不使用特殊的结构且高速的存储器,也可以发挥非常快的检索速度,可以提供以低价高速执行大容量检索的校验方法及装置。这种校验装置,由于能收纳的入口数只规定为SDRAM容量,故可升级性高,还可以柔性地进行存储器管理。因此,可以以单一的硬件组柔性地进行多种检索。
对于存储器,通过设置输入输出数据的高速缓冲存储装置,从而可以进一步削减装载模式表的时间开销。在提高高速缓冲存储器的效率、降低误中率方面,优选包含模式表尤其是屏蔽数据以及地址表,作为存储器上的存储单位的校验表的尺寸和高速缓冲存储行的尺寸相同。
再有,在范围一致检索中,在当前阶段,在存在一致的部分登录位模式,还存在最大或最小部分登录位模式时,优选将最大或最小部分登录位模式接着的下一阶段的模式表(范围检索的模式表)的地址作为候补地址,进行存储或输出。在校验继续时的当前阶段(相对存储了候补地址的校验阶段为下一校验阶段)中,在没有一致的部分登录位模式,也没有最大或最小部分登录位模式时,产生倒退,追溯到产生最大或最小部分登录位模式为止。此时,若存储有候补地址,则在校验继续的当前阶段的输出工序中,通过输出包含先行阶段中的候补地址的校验继续信息,由倒退到继续校验的阶段为止,可以以最短的处理时间到达。
在范围一致检索中,在提供包含最大或最小部分登录位模式接着的当前阶段的模式表(范围检索的模式表)的地址的校验继续信息时,通过追寻当前阶段的模式表所示出的最大或最小部分登录位模式接着的下一阶段的模式表地址,从而可以到达值比检索对象的位串还小的最大登录位模式(最大登录位模式)或值比检索对象的位串还大的最小登录位模式(最小登录位模式)。因此,在该状态即可以得到范围检索的模式表的当前阶段,可以旁路全校验工序及判断工序。而且,通过输出工序及输出机构,重复进行:将范围检索的模式表作为当前阶段的模式表,从与此对应的地址表输出包含该模式表所示出的最大或最小(模式表中的最大或最小)部分登录位模式接着的下一阶段的模式表的地址的校验继续信息的处理即可。
这样,一边追寻每个阶段的模式表的最大或最小,一边好不容易摸索到最大或最小登录位模式的处理,若只要没有入口的登录、删除就决定模式表,则好不容易摸索到的登录位模式成为相同的。因此,优选将模式表、和表示对应于该模式表所示出的最大或最小部分登录位模式而决定的最大或最小登录位模式的旁路数据一起存储在存储器中。在提供包含最大或最小部分登录位模式接着的范围检索模式表的地址的校验继续信息时,旁路全校验工序、模式装载工序及判断工序,在输出工序及输出机构中,可以输出包含与范围检索的模式表对应的旁路数据的最终校验数据即可结束检索对象的位串校验。因此,可以省去追寻中间阶段的模式表的处理。
特别是,即使在产生了上述的倒退时,之后的处理也以输出候补地址所示出的模式表对应的旁路数据的处理来结束,几乎不会发生倒退所导致的不利后果(penalty)。
本发明的校验方法及校验装置,另外即使针对成为检索对象的位串的位长增加,也无需进行硬件自身的算法性变更,通过追加校验单元即执行多阶段的1个或多个阶段的校验装置或者重复上述当前阶段的一系列工序即可对应。因此,在本发明中,具有直列和/或并列地进行多个校验阶段的分类过程的分类方法,根据检索目的、检索对象的位串种类及登录位模式种类等条件,可以设计得极为灵活。同样,将多个校验装置直列和/或并列地组合得分类装置也可以根据目的设计得极为灵活。
在这些分类过程或分类装置中,通过以流水线方式连接多个校验阶段或校验装置,从而可以实现检索时间的实质性缩短,即使在这方面也可以容易地实现检索处理的高速化。即,在多个校验阶段或校验装置之间,通过将包含校验继续信息的数据信息包化并传递,从而可以以数据流型的处理来执行检索处理。
另外,在本发明的校验方法及校验装置中,在追加或删除登录位模式时,不产生入口的移动,仅通过更新模式表及地址表,而可以追加或删除登录位模式。因此,通过设置执行这种更新工序的更新机构,从而将用于更新的数据作为信息包,从上游流向下游,可以进行入口的追加删除。因此,可以将以流水线方式执行的、更新各校验阶段的校验表的处理(更新过程)也通过流水线方式而和校验阶段并列进行。即,在本发明中,具有以流水线方式执行的、通过更新各校验阶段的校验表(包括模式表及地址表)而追加或删除登录位模式的更新过程,该更新过程可以以流水线方式和校验阶段并列地执行。
在校验表具有表示根据模式表所示出的最大或最小部分登录位模式而决定的最大或最小登录位模式的旁路数据的情况下,若不更新低位的校验阶段的校验表,则有时无法决定旁路数据。因此,在更新过程中,在从高位校验阶段的校验表开始更新低位校验阶段的校验表时,有产生旁路数据的更新的可能性的校验阶段的校验表的更新,可以采用等待低位校验阶段的校验表更新后进行的等待方式。另外,在更新过程中,也能采用双向链接方式,其中具有:从高位校验阶段的校验表开始更新低位校验阶段的校验表的工序;在由于低位校验表的更新而产生高位校验表的旁路数据的更新的情况下,通过双向链接来进行高位校验表的更新的工序。
可以利用具备多个校验装置的分类装置和多阶段的校验方法来进行检索。虽然校验装置执行1个或多个校验阶段,但采用以流水线方式等连接分别执行1个校验阶段的多个校验装置(校验阶段)的分类过程的分类方法以及安装了分类过程的分类装置,各校验阶段的管理及控制是容易的,是本发明的优选形态之一。在需要执行以多种检索对象的位串为对象的检索的情况下,在具有多个校验装置的1个分类装置中可以按顺序执行多种检索。提供具有多个分类过程的分类方法及具备多个分类装置的检索装置也是有用的。通过多个分类过程及分类,也能并列地执行分类处理。连接多种检索对象的位串,作为1个检索对象的位串来进行校验也是可能的。然而,检索对象的位串的数据长越增加,下游中的模式表的数就越有变得庞大的可能性。
在登录位模式表示1个或多个分类结果(规则)的情况下,若根据范围检索决定检索对象的位串所属的范围,则该检索对象的位串的分类结果决定。在具备多个分类过程的分类方法中,可以得到多个分类结果。因此,有设置运算多个分类结果的逻辑积,以得到最终分类结果的逻辑运算过程的必要。在该逻辑运算过程及逻辑运算机构中,矩阵运算多个分类结果的逻辑积,可以得到最终的分类结果。根据这种逻辑运算过程(逻辑运算工序)及机构,可以提高处理速度,可以使构成简单。即使在具备多个分类装置的检索装置中也同样。
在分类装置中,考虑在进一步提高处理速度方面最有效的是相对存储器输入输出数据的高速缓冲存储装置。而且,优选包括模式表特别是屏蔽数据以及地址表的校验表的尺寸和高速缓冲存储行的尺寸相同。进而,在进行不同种类检索的分类装置中,优选设置接收指定最初的校验表的检索类别信息的机构。高速缓冲存储装置优选具备以各检索类别及校验阶段为单位分配高速缓冲存储行,以检索类别及校验阶段为单位管理高速缓冲存储行的管理机构。将校验表存储在存储器的、以各检索类别及校验阶段为单位分配过的单个地址区域中,将高速缓冲存储装置的高速缓冲存储行以单个地址区域为单位进行分配也是可能的。
在位串的检索中,多供给整体相同或高位相同的位串。因此,与采用现有的CPU用的高速缓冲存储系统那样的期待存储器上的数据局部性的高速缓冲存储系统的情况相比,区分为检索类别及阶段,以其为单位保存过去的参照表的高速缓冲存储装置在高速缓冲存储命中率高、检索或校验处理速度的提高方面有效。
另外,作为高速缓冲存储装置,若校验表不是即时高速缓冲存储,则将该宗旨通知给校验装置,中断该校验装置的处理而返回等待矩阵的、请求响应型的数据高速缓冲存储器也是有效的。在校验表不是即时高速缓冲存储时,校验装置、数据高速缓冲存储器及存储器被其存取占有,可以防止处理延迟。这是因为在流水线的方式连接校验装置的情况下,若1个延迟,则其延迟对后级有影响的缘故。另外,由于通过在检索对象的位串上附加识别信息,从而无需保障输入输出的顺序,故即使以等待矩阵进行待机也对校验处理没有影响。在检索对象的位串上附加识别信息而进行校验的方法,在范围一致检索中,即使在产生了倒退时也是有效的。
此外,供给整体相同的检索对象的位串的频率也高。因此,设置存储分类装置的分类结果的履历高速缓冲存储装置也是有效的。通过设置在向校验装置供给检索对象的位串前,比较该分类装置的分类结果和检索对象的位串的履历高速缓冲存储器,从而可以提高检索或校验处理速度。
可以高速地处理位串的检索或校验的本发明,在处理数字数据的全部处理、应用程序、装置、系统中是有用的。虽然并未限定本发明的适用范围,但作为其中之一,考虑从表示MPEG等图像数据的位流中检索特定的位串或从庞大的文字数据中检索特定的条件等多种应用程序。在以要求高速性的计算机网络为对象的数据管理装置领域也是有效的。例如,可以提供一种具备向通过分类装置或检索装置的校验或检索而特定的路由发送信息包的功能的、能进行高速路由选择的数据管理装置或管理方法。此外,可以提供可以以高速执行需要路由器或伺服器等的包滤波SPD检索、称为QoS的范围检索的数据管理装置。再有,如TCP信息包的再装配(reassemble)那样,即使在再构成不仅数据块的前端地址和末端地址一致,也成为前后及包含关系的碎块化数据块的应用程序中也是有效的。
还有,本发明的校验方法及校验装置,在从大规模的数据库高速发现有用的规则或模式的所谓数据采掘的领域也是有效的。再者,采用本发明的校验方法及校验装置的检索无需限定于树的单向迁移。这种观点是微观的,在微观的观点上,检索双向网络的迁移对象等的方法及装置也包含在本发明内。其中之一是状态迁移机械,是有限状态自动机械。因此,根据本发明的校验方法,可以提供具有:将成为状态评价源的数据作为检索对象的位串,将表示多个状态迁移条件的数据作为多个登录位模式进行校验的工序;和根据该校验结果来迁移数据处理电路的状态的工序的数据处理装置的控制方法。
根据本发明,可以提供一种数据处理装置,其中具有:将成为状态评价源的当前状态的检索对象的位串和表示预先登录的多个状态迁移条件的登录位模式进行校验的校验装置;向校验装置供给检索对象的位串的检索对象供给机构;根据校验装置的输出,状态迁移的数据处理电路。该数据处理装置是迁移状态机械或自动机处理器,也可以称为分类处理器。该情况下,包括:和当前状态的检索对象的位串可以取得的全部值进行校验的全校验机构;由存储器装载作为表示多个登录位模式用的模式表并由从先行状态得到的校验继续信息而决定的当前状态的模式表的模式装置机构;根据全校验机构的结果和当前状态的模式表,输出至少表示与当前状态的检索对象位串一致的当前状态登录位模式的有无的校验结果的判断机构;和根据校验结果,从与当前状态的模式表对应的地址表输出包含当前状态的下一状态的上述模式表的地址的校验继续信息的输出机构。
决定一个状态迁移,却能进行采用多个校验装置的设计,该情况下,本发明的分类装置用于迁移对象的检索。能以外部条件或内部条件变更校验的内部状态即状态迁移条件,由检索对象供给机构指定供给到校验装置的校验表也可以。也可以由数据处理电路改写存储器的校验表。若在QoS的检索等中采用本发明的状态迁移(自动机)处理器,则可以实现将QoS的检索和作为处理器的寻址成为一体的体系结构。
附图说明
图1是作为管理装置的例子,表示路由器的概要的图。
图2(a)~图2(f)是说明一致检索的校验状态的图。
图3是表示二进制位树上的校验状态的图。
图4(a)~图4(f)是对右倾斜一致型的近似进行说明的图。
图5(a)~图5(f)是对左倾斜一致型的近似进行说明的图。
图6是表示将二进制位树进行表分割的样子的图。
图7(a)~图7(c)是表示校验表(部分表)的图。
图8(a)及图8(b)是说明MIN/MAX检索的图。
图9(a)及图9(b)是表示以部分表进行MIN/MAX检索的样子的图。
图10是表示以压缩表进行MIN/MAX检索的样子的图。
图11(a)及图11(b)是表示旁路处理的图。
图12是表示在校验过程中发生倒退的样子的图。
图13是表示在发生倒退后执行旁路处理的样子的图。
图14是表示检索装置的概要的图。
图15是表示存储器共用型分类装置的图。
图16是表示存储器分离型分类装置的图。
图17是表示重复型分类装置的图。
图18是表示校验装置的概要的图。
图19是表示校验装置的处理的流程图。
图20是说明校验装置中的处理的进行的图。
图21是表示比较单元的图。
图22是表示比较器的逻辑的图。
图23是表示比较单元的不同例的图。
图24是表示屏蔽器的图。
图25是表示屏蔽器的逻辑的图。
图26是表示选择电路的一致逻辑的图。
图27(a)~图27(c)是表示选择电路的范围检索(右倾斜)的逻辑的图。
图28(a)~图28(c)是表示选择电路的范围检索(左倾斜)的逻辑的图。
图29(a)~图29(g)是表示比较单元、屏蔽器、选择电路的输出(右倾斜)的图。
图30(a)~图30(g)是表示比较单元、屏蔽器、选择电路的输出(左倾斜)的图。
图31是表示指令的例子的图。
图32是表示以旁路处理用的总线处理倒退的样子的图。
图33是表示用存储器共有型分类装置处理倒退的样子的图。
图34是表示在分类装置中处理直通(through)的样子的图。
图35是表示以不同方式处理直通的样子的图。
图36是表示以另一不同方式处理直通的样子的图。
图37是表示以又一不同方式处理直通的样子的图。
图38是表示以等待方式追加入口的处理的图。
图39是表示以等待方式沿流水线进行处理的样子的图。
图40是表示以等待方式追加入口的更新单元的功能的图。
图41是表示待机管理单元的功能的图。
图42是表示以双向链接方式追加入口的处理的图。
图43是表示以双向链接方式沿流水线进行处理的样子的图。
图44是表示以双向链接方式追加入口的更新单元的功能的图。
图45是表示以等待方式删除入口的处理的图。
图46是表示以等待方式删除入口的更新单元的功能的图(指令为DEL时)。
图47是表示以等待方式删除入口的更新单元的功能的图(指令为DELUPDT时)。
图48是表示以等待方式,指令为DELRDBP及DELWRBP的处理的图。
图49是表示以双向链接方式删除入口的更新单元的功能的图(指令为DEL时)。
图50是表示以双向链接方式删除入口的更新单元的功能的图(指令为DELUPDT时)。
图51是表示以双向方式,指令为DELRDBP及DELWRBP的处理的图。
图52是表示具备数据高速缓冲存储器的分类装置的图。
图53是表示数据高速缓冲存储器的行尺寸的图。
图54是表示数据高速缓冲存储器的管理的图。
图55是表示存储器的管理的图。
图56是表示空表管理尾接指令(cue)的响应的图。
图57是表示具备SDRAM共用型履历高速缓冲存储系统的分类装置的图。
图58是表示SDRAM共用型履历高速缓冲存储系统的概要的图。
图59是表示带履历SRAM高速缓冲存储器的分类装置的图。
图60是表示履历SRAM高速缓冲存储器的概要的图。
图61是表示矩阵运算的一例的图。
图62是表示矩阵运算的左矩阵的图。
图63是表示适于LSI化进行矩阵运算的概要的图。
图64是表示AND化器的硬件的图。
图65是表示省略了低位表的样子的图。
图66是表示采用了请求响应方式的存储器存取的校验装置的概要的图。
图67是表示采用了请求响应方式的存储器存取的校验装置的不同例的图。
图68(a)~图68(c)是表示校验表的改良型的图。
图69是表示非线性存储器寻址的图。
图70是表示单纯状态迁移的图。
图71是表示事件联动型单纯状态迁移的图。
图72(a)~图72(c)是表示状态迁移的概要的图。
图73(a)及图73(b)是表示网络状的状态迁移的概要的图。
图74是表示采用了分类装置的处理器的概要的图。
图75(a)及图75(b)是表示适应于QoS的概要的图。
图76是表示检索树与分类树的对应的图。
图77是表示现有的CPU进行的检索处理的概要的图。
图78是表示采用了分类装置的处理器所进行的检索处理的概要的图。
具体实施方式
以下,对将本发明涉及的位串检索装置用于路由选择表检索中的路由器(路由选择装置)进行说明。图1所示的路由器1是管理网络上的信息包数据的装置,备有:控制及管理信息包φp的输入输出的信息包管理功能3;用于判断信息包φp的转送对象的路由选择检索功能4;和判断转送信息包φp的条件的条件判断功能9。路由选择检索功能4备有:存储了具备多个表示所输入的信息包的路径的入口(登录位模式)的路由选择表的存储器(SDRAM)11、检索装置10和具备对检索装置10设定检索类别等功能的控制单元12。在路由选择检索功能4中,和信息包φp所包含的检索对象位串(被检索位串)φo、例如IP头的接收方地址(DIP)记录在存储器11中的路由选择表的各入口进行一致检索。而且,根据该结果φr,信息包管理功能3向设定在一致的入口上的路径(接口)送出信息包数据。
条件判断功能9被进一步分割为几个功能。本例的条件判断功能9备有:提供网络上的安全服务的IP安全(IPsec)功能8;提供网络上的品质服务的QoS功能7;和防火墙功能6。这些判断条件的功能的多数要求将管理信息包φp的IP头的位串作为检索对象位串φo,检索该检索对象位串φo所属的范围。在IPsec(SPD)功能8中,以控制单元8c的控制为基础,由检索装置8s对作为检索对象供给的位串φo和存储在存储器8m中的SPD表进行校验。在QoS功能7中,以QoS控制单元7c的控制为基础,由检索装置7s对检索对象的位串φo和记录在存储器7m中的流检索表进行校验。进而,在返回墙功能6中,以控制单元6c的控制为基础,由检索装置6s对检索对象的位串φo和记录在存储器6m中的包滤波表进行校验。
信息包管理功能3备有:经网络能接收和/或发送信息包φp的1个或多个信息包输入输出部2a;将接收到的信息包φp排列的存储器2b。排列过的信息包φp,用路由选择检索功能4决定路由选择目的地。再有,在决定了SPD功能8、QoS功能7及防火墙功能6等中的处理后,以这些功能所决定的适当定时,信息包φp从信息包管理部3的任何一个信息包输入输出部2a向适当的路由或下一跳跃(next hop)送出。另外,根据SPD功能8等的校验结果,也会不输出排列过的信息包φp而废弃。
采用了本发明的校验方法的检索装置,作为这些功能4、6、7及8的检索装置10、6s、7s及8s都是能适用的,即使是根据Ipv6、检索对象位串φo的位长增加的状况,也可以高速地检索,并将其结果φr返回到信息包管理部3。在条件判断功能9所包含的功能6、7及8的检索装置6s、7s及8s中,为了发现检索对象位串φo所属的规则,执行范围一致检索或校验。另一方面,在路由选择检索功能4中,为了特定路由,执行完全一致检索或最长一致检索。在路由选择检索功能4中,得到前缀以后的最长一致结果的最长一致检索,将前缀以后的全部位还原为在最小侧和最大侧展开的范围一致检索。而且,在本发明中,将二进制位树的“0”的方向称为最小侧(MIN),将“1”的方向称为最大侧(MIX)。
检索装置的基本原理
在以后中,说明本发明涉及的检索装置的概要。本发明的检索装置是可以以单一的硬件进行多种检索的装置,作为任何功能的检索装置都可以基本不改变构成即能适用。因此,在以后的叙述中,将检索装置10作为能进行完全一致检索及范围一致检索的装置进行说明,但也可以以同样的硬件执行范围检索。
检索装置10,是利用构成二进制位树的入口群和被检索密钥(检索对象密钥、检索对象的位串、以后有时也称为目标密钥或密钥)之间的大小判断算法,判断对象密钥属于入口(登录位模式)群表现的范围(规则)的何处的硬件。在以硬件实现执行基于二进制位树的校验的算法时,将二进制位树分为短的位长的表,以多阶段进行校验。在各校验阶段中,通过并列位校验来进行各级的表内的大小判断。通过进行多阶段的校验,从而成为检索对象的位串的位长的限制消失,期待通用的利用。另外,通过进行多阶段的校验,从而可以限定在各阶段进行比较的位长,即使作为预先登录有所有的入口而并列地进行校验,也不会对处理时间有影响,没有硬件增大的情况。而且,表示包含登录在各级中的入口的模式表的数据(以后称为屏蔽数据)进行压缩是可能的,可以减轻二进制位树制作(登录·删除)成本,和多级表的压缩效果相结合,也可以抑制必要的存储量。
校验过程的各阶段中的并列位校验在逐次执行处理器上的软件中是不能实现的,但可以用并列处理硬件或并列执行型处理器来执行。并列位校验所需的硬件是简易的,不使用并列执行型处理器,即可经济的、简洁地实现。
二进制位树的同值及大小的判断
在以下所述的范围检索中,右倾斜型近似逻辑、左倾斜型近似逻辑在硬件设计时选择其中一个而设计。无论选择哪一个,都能进行等价的范围检索。也能设计为切换两方式。也能一次以两方的近似进行检索。在本说明书中,除非有特别记载,否则都利用根据右倾斜型近似逻辑而设计出的装置进行说明。
在图2(a)~(f)中,示出了二进制位树上的完全一致检索的逻辑。在树的一段相当于1位的二进制位树上,从高位开始,1位1位地在被检索密钥和入口之间进行校验。该高位是指开始校验的位,不一定时最高位的位(MSB),也可以是最低位的位(LSB)。从二进制位树的某个节点向下一节点的连接只有“有两方向”、“只有0方向”及“只有1方向”3种。与1个节点指1个入口的二进制树(二分树)不同的是,在二进制位树种,节点指的是入口的1位。由于入口全部等位长,故树上的节点段数相等,在追寻从高位节点开始的连接存在的节点的途中,不会有相对低位节点的连接成为“没有两方向”的情况。
在本说明书中,如图2(a)及图2(b)所示,成为“检索对象密钥21的位与入口22的位一致”的入口定义为“校验候补”。另外,如图2(c)及图2(d)所示,成为“检索对象密钥21的位与入口22的位不一致”的入口定义为“校验失去资格”。如图2(e)及图2(f)所示,在节点连接为两方向的情况下,成为“检索对象密钥21的位和入口22a的位一致”的入口22a是校验候补,成为“检索对象密钥21的位和入口22b的位不一致”的入口22b是校验失去资格。
在完全一致逻辑中,以各位(各节点)进行校验,追寻校验存在的空间、校验候补的下一节点,继续校验。若没有校验候补,则在此结束校验,得到所谓检索误中的最终校验结果。在最终位(最终节点)的校验结束后,若存在校验候补(若状态为校验继续),则与其对应的入口是检索位。
图3表示二进制位树中的完全一致检索的校验逻辑。相对于登录在二进制位树中的4位入口群22(值0、2、8、15),表示作为检索对象密钥21a而投入值8(“1000”),将值8对应的入口判断位完全一致检索位的例子;和作为检索对象密钥21b投入值4(“0100”),判断为检索误中的例子。在作为最初位的节点A,检索对象密钥21a进入1方向。由于值0及2的入口22是0方向,值8及15的入口22是1方向,故入口22向两方向延伸,前者的入口22由于和检索对象密钥21的位不同,故校验失去资格,由于后者的入口22和检索对象密钥21的位一致,故是校验继续。而且,在该节点A中的校验之后由于存在校验候补入口,故是校验继续。
在下一节点E,检索对象密钥21a进入0方向,值8的入口22向0方向延伸,值15的入口22向1方向延伸。因此,即使在节点E,也由于存在校验候补,故是校验继续。在节点F,检索对象密钥21a进入0方向,入口22是单方向,但由于其值8的入口22和检索对象密钥21a相同,是0方向,故存在校验候补,是校验继续。即使在节点G也同样,是最终节点。因此,由于在最终节点G的校验后存在校验候补,故完全一致检索命中到值8的入口22而结束。
在检索对象密钥21b中,在节点A,由于存在校验候补,故校验继续。在节点B,检索对象密钥21b向1方向延伸,值0及2的入口22为单方向,向0方向延伸。因此,成为校验继续的值0及2的入口22成为校验失去资格,该节点的校验后没有残留校验候补。因此,成为检索误中。
即使在范围检索中,也和完全一致检索同样,从高位开始,将二进制位树1位1位地在检索对象密钥和入口之间进行校验,但范围检索的情况下,在“校验候补”的基础上,还有“近似候补”及“近似失去资格”的概念。完全一致检索中的“校验失去资格”区分为“近似候补”和“近似失去资格”。另外,从逻辑上的必要性来看,也定义“近似假定”。
右倾斜近似(MAX检索)
在图4(a)~图4(f)中表示右倾斜近似的类型。如图4(a)及图4(b)所示,成为“检索对象密钥21的位和入口22的位一致”的入口定义为“校验候补”(这和完全一致检索同样)。在该校验候补存在的区间,右倾斜型近似逻辑的校验继续。另外,如图4(e)及图4(f)所示,在“入口22存在两方向”的情况下,作为“检索对象密钥21的位和入口22的位一致”侧的入口22成为校验候补,是校验继续。
另一方面,如图4(c)及图4(d)所示,成为“检索对象密钥21的位和入口22的位不一致”的入口从校验候补中除外。在完全一致检索中,无论任何情况都认为是“校验失去资格”,但在右倾斜型近似的情况下,如图4(c)所示,将成为“检索对象密钥21的位是1而入口22的位是0”的入口22定义为“近似候补”。相反,如图4(d)所示,将成为“检索对象密钥21的位是0而入口22的位是1”的入口22定义为“近似失去资格”。在近似逻辑中,将最新的近似候补作为“近似假定”保存。实际上需要作为“近似假定”而保存的值是近似候补所指的下一节点位置。无论是近似候补还是近似失去资格,如图4(c)及图4(d)所示,若入口22在单方向没有校验候补,则校验过程结束。
如图4(e)及图4(f)所示,在入口22是“存在两方向”的情况下,成为“检索对象密钥21的位和入口22的位不一致”侧的入口22也同样,根据定义而成为近似失去资格或近似候补。由于“存在两方向”,故“检索对象密钥21的位和入口22的位一致”侧的入口22也存在,由于其成为校验候补,故校验继续。同时,成为“近似候补”的入口22,即图4(e)的“近似候补”的入口22成为“近似假定”,到此为止的“近似假定”的值被更新。
若在最终位之后成为校验继续(有校验候补),则与该入口完全一致。在中途(或最终位)成为校验结束的情况下,观察保持着的近似假定(最新的近似候补),来判断是否能有近似命中。若没有近似假定则是检索误中。在范围检索的含义方面,是被定义的全部范围之外。若有近似假定,则是近似命中。但是,在近似假定指的是中途的节点的情况下,由于在该节点之下有多个入口22存在的可能性,故必须从近似假定的入口群22进行近似决定。该过程可以以和近似校验不同的逻辑进行处理。在右倾斜近似中,进行以下作为最大值检索(MAX检索)而说明的处理,从检索对象密钥21的值以下的值的入口之中,选择最大值的入口(接近检索对象密钥的最大入口),并确定为近似入口。
若使图3表现二进制位树中的右倾斜型近似逻辑的范围检索,则如下所述。对于值4的检索对象密钥21,在节点A,0方向的值0或2的入口22成为校验候补,1方向的值8或15的入口22成为近似失去资格。在节点A,由于校验候补存在,故校验继续。接下来在节点B,0方向的值0或2的入口成为近似候补,由于是近似候补,故进行近似假定(保持最新的近似候补)的更新,将作为近似候补所指的下一节点的节点C作为近似假定而保存。
在节点B的校验后没有校验候补,校验过程暂且结束。由于有近似假定,故是近似命中。因此,从成为近似假定的入口群中利用MAX检索进行近似确定。该情况下,从值0与值2的入口22中选择值2的入口。如图3所示,若检索对象密钥21b为2≤密钥值≤7范围的值,则可以得到是相同结果的值2的入口22。即,值2的入口22成为指(2~7)范围的入口。因此,右倾斜近似成为范围检索。
接着,在值8的检索对象密钥21a中,在节点A,0方向的入口22(值0和2所属)成为近似候补,近似假定(指节点B)被更新。1方向的入口22(值8与15所属)成为校验候补,由于校验候补也存在,故校验继续。在节点E,位值0方向的入口22成为校验继续,位值1方向的入口成为近似失去资格。由于没有近似候补,故近似假定不被更新。由于在节点F以后在单方向成为校验继续,不产生近似候补,故近似假定不被更新。而且,在最终位后为校验继续(有校验候补),故可以得到所谓与值8的入口22完全一致的最终校验结果。
进而,考虑投入值14的检索对象密钥21c的情况。在节点A,由于位值0方向的入口(值0与2所属)成为近似候补,故近似假定(指节点B)被更新。在节点E,位值0方向的值8的入口22成为近似候补,近似假定被更新(指节点F)。另外,由于1方向的值15的入口22成为校验候补,故校验继续。在节点H,在单方向值15的入口22成为校验候补,由于不产生近似候补,故不更新近似假定,成为校验继续。在节点I,在单方向成为校验失去资格。因此,校验过程暂且结束。
此时,近似假定是节点E的更新,指的是节点F。由于进行近似确定,故MAX检索节点F以下,值8对应的入口22被决定为近似命中。因此,该检索对象密钥21,判明属于值8的入口22覆盖的范围(8~14),执行了范围一致检索。
左倾斜近似(MIN检索)
在图5(a)~图5(f)中示出左倾斜近似中的“校验候补”“近似候补”“近似失去资格”的定义。仅仅是与右倾斜近似更换“近似候补”“近似失去资格”的位。校验逻辑除了上述的更换以外,也和右倾斜近似同样。然而,由于在右倾斜近似中进行近似确定,故相对于对近似假定进行MAX检索,在左倾斜近似的情况下,不同的是:为了进行近似确定,进行相对近似假定的MIN检索。在MIN检索中,从检索对象密钥21的值以上的值的入口中选择最小值的入口(接近检索对象密钥的最小入口),而确定为近似入口。
在到最终位为止都是“入口的位和检索对象密钥的位一致”的情况下,即在最终位的校验之后为校验继续的情况下,将其也作为范围检索而设为位。即,所谓右倾斜近似的范围检索,不区别完全一致位和近似一致位,检索成为“密钥≥入口”的最大入口。但是,根据检索的用途,也可以设为不包含“=”的“密钥>入口”的右倾斜。另外,也可以设为区别了是“=”一致还是“>”一致的结果。
范围检索中的入口数据形式
在右倾斜近似的范围检索中,区域被正规化为适于右倾斜近似逻辑,并进行入口登录。所谓正规化就是指:在提供了多个规则时,设定作为不相互重复的新范围,且允许属于该新范围的规则的重复的新范围。而且,通过判断检索对象位串所属的范围,从而发现适用于检索对象位串的规则。另外,在检索对象位串所属的新范围内存在多个规则时,也可以采用根据优先度高的规则来管理检索对象位串所属的信息包的方法。
若进一步说明,则所谓的正规化规则是指为了进行校验处理而使范围的数值表现为FROM/TO表现到FROM/NEXT表现。即,将规则与范围的关系变换为:允许规则的重复、不允许范围的重复而进行过分割的区域表现。例如,将Pi设为区域中的值,在给出范围[Pa,Pa′]和范围[Px,Px′]时,存在Pa<Px<Pa′的关系时,定义[Pa,Px-1]、[Px,Pa′]、[Pa′+1,Px′]3个新范围。通过这种正规化,若得知属于新范围的其中之一,则可以一义的决定与其对应的规则(优先规则)。即,范围[Pa,Pa′]分割为[Pa,Px-1]、[Px,Pa′]2个新范围。因此,在给出m个规则时,通过将区域数(新范围数)最大分割位2m+1,从而可以设定没有重复的新范围。成为最大的条件是全部规则的范围的FROM/TO为唯一的情况,实际上由于多为重复,故新范围的数非常少。
另外,在该新范围中,未给出规则的范围也作为未给出规则的范围而具有含义。因此,在FROM/TO的范围中,需要变换为[From,*]及[Next,*]的范围。即,以FROM/TO的对来表现1个范围,成为From值/Next值分别表现独立区域。From值与原规则范围的From值为同值,表示规则范围的开始位置(左端点)。Next值是规则范围的To(范围结束位置)+1,是规则范围右侧的范围外区域的开始位置(左端点)。由此,From值/Next值作为新范围的端点而独立存在,新范围始终以左端点(低位的位串)的1点表现,成为正规化的定义。即,新范围的右端点以Next区域左端点-1黯淡地表现。而且,将规则范围的右端点考虑为中心,以高位位串的1点来表现新范围也是可能的。该情况下,只要使以下的说明高位与低位逆转来考虑即可。
通过正规化,FROM/TO的规则入口变换为FROM/NEXT的入口。此时,作为缺省值(default)而追加[0,NA]。因此,若规则数位n,则入口也包含缺省值,成为n+1入口。正规化处理并未将根据范围而进行校验的对象限定为规则,若是根据范围而特定输出的值的检索,则可以应用于全部的情况。
该正规化可以进行表示区域的2值([FROM,TO])中的TO(大值)侧的修正。例如,以[a,b]表示的区域R作为值“a”的入口A和值“b+1”的入口B登录。入口A表现区域R,入口B表现区域S[b+1,∞]。右倾斜型近似命中于入口A是检索范围命中于区域R。近似命中于入口B是指命中于区域S即范围检索误中(区域R外)。近似误中是指区域Q[0,a-1]即范围检索误中(区域R外)。
表示一点的区域U[c,c]也能进行定义,作为值“c”的入口C与值“c+1”的入口D进行登录。入口C表现区域U,入口D表现区域V[c+1,∞]。由于值“c”与值“c+1”相邻入口被登录,故向作为值“c”的入口C的命中只能是完全一致命中,是指范围检索命中于点区域U。向入口D的近似命中是命中于区域V,即是范围检索误中(区域U外)。近似误中是指区域T[0,c-1],即范围检索误中(区域U外)。
即使在左倾斜型近似中也进行区域的正规化。然而,与右倾斜型近似相反,修正FROM(小值)侧。
将入口和集合的关系定义为:入口I是指集合SET(I)[I,∞]。此时,区域R[a,b]表现为:值“a”的入口A即集合SET(A)[a,∞]和值“b+1”的入口B即集合SET(B)[b+1,∞]的差集合(SET(A)-SET(B))。所谓的右倾斜近似命中于入口A是指误中入口B。
校验方法
图6中示出分割表。多位的二进制位树24,通过分为多阶段或多层次,进一步将各阶段分割为表示适当数的入口的位宽,从而可以模式表化。通过规定以恒定的短位长为单位的分割表或部分表(模式表)25,从而可以利用从高位的部分表25指定的各阶段的部分表25的组合来表现多位的二进制位树。通过做成固定位数的部分表,从而并列处理对象入口成为有限固定,可以利用硬件并列校验部分表25所含的入口。进而,由于部分表25所包含的最大入口数成为有限固定,故实际上与部分表25所包含的入口的有无无关,若选择某一部分表25,则也能自动地用硬件校验检索对象密钥和部分表25所能包含的入口的其中一个是否一致。
在图6中,利用3位的部分表25表现二进制位树24。可收纳于各部分表25中的部分入口26的最大值是值0~7的8个入口。作为硬件安装,考虑存储器的字的位长或检索密钥的位长等,决定适当固定表位长。由于若表位长成为n位,则作为并列处理对象的表内的入口数变为2n,故一般4位表左右是适当的。
通过部分表化,各段的部分表中的检索成为有限固定入口数的检索。另外,若检索对象密钥是固定位宽,则表示入口的二进制位树24成为固定长,表现其的部分表25的段数成为预定的有限固定段数。因此,在一致检索中,成为未发生倒退的二进制位树检索。因此,检索所需的最低时间与入口数无关,成为恒定时间。
图7(a)中示出将二进制位树24部分表化的逻辑图像。图7(b)中示出将部分表(模式表)25构成为通用表27的样子。在该通用表27中,1入口由位模式的值27a和向与此对应的低位表27的指针27b构成,其成为最大具有n个的表结构。再有,图7(c)中示出以压缩了通用表27的表28来表现部分表25的样子。压缩表28由表示入口的有效无效的位标志(屏蔽数据)28a和向低位的指针28b构成1个入口。向低位的压缩表28连接的指针28b,成为存储有压缩表28的RAM的地址等,生成地址表。
通用表27与压缩表28的不同之处在于:在通用表27中,每次登录都在入口集合位模式;与此相对,在压缩表28中,表是固定位宽的表,省略了位模式。在部分表25是固定位宽的情况下,对应于位宽,决定上限入口数。因此,例如在4位表的情况下,可以一对一地固定入口编号与位模式的关系,以使入口编号0为位模式0000、入口编号1为位模式0001。因此,可以只表示有效的入口编号,来指定部分表25所包含的部分入口26。虽然可以考虑几个表示入口编号的数据,但如图7(c)所示,在对应于入口编号的位位置上配置了成为导通截止的标志的位的位模式(屏蔽模式)28a是在硬件中容易利用的形态的信息。另外,通过利用屏蔽模式28a来表示部分入口的有无,从而可以省略登录实际的部分入口的位模式的处理和用来登录的硬件及软件。
通过使该部分表25作为利用了屏蔽模式的压缩表28的最佳化,从而可以单纯化部分表25和与之对应的检索对象密钥的一部分(部分对象密钥)进行校验的硬件。若为4位的部分表25,则通过采用并列进行4位的部分入口即值0到15的部分入口所能取的值和部分对象密钥的校验的硬件,从而可以单纯化校验操作和硬件。即,全入口硬件并列校验成为可能,其被单纯化。另外,由于入口编号和位模式的关系是固定且集合完,故入口(部分入口)的追加删除,基本上只更新屏蔽数据28a即可实现。而且,表内的MIN/MAX检索没有位模式的比较,只对入口编号进行。因此,在范围一致检索中,到成为近似候补的部分表25为止,即使产生了倒退,之后由于只参照入口有效还是无效的标志(屏蔽数据)28a,表内的MIN/MAX检索即可结束,故实质上不产生倒退的校验方法也是可能的。
MIN/MAX检索及其旁路
MIN/MAX检索的原理
二进制位树中的MIN/MAX检索的原理如下所述。图8(a)中示出右倾斜近似中的MAX检索的概要。在位位置(节点)A1,相对检索对象密钥21,入口22消失,右倾斜型范围检索的校验候补消失。因此,在校验中途结束,相对近似假定入口的MAX检索开始。在入口22只有单方向的情况下追寻其方向。在节点A2,由于只在0方向有入口22,故追寻其。在下一节点A3,由于入口22在0及1方向都存在,故优先追寻大的方向(由于0<1,故为1方向)。对各节点进行同样的处理,一直追寻到最下段位位置A6为止,得到的入口22是MAX入口(是比检索对象密钥的值还小、取最大值的入口,是接近检索对象密钥的最大入口)。
图8(b)示出左倾斜近似中的MIN检索的概要。左倾斜范围检索的情况下,以同种的逻辑优先追寻小的方向(0的方向),进行取得MIN入口(是比检索对象密钥还大、取最小值的入口,是接近检索对象密钥的最小入口)的MIN检索。
表中的MIN/MAX检索
若将二进制位树表化,则必须将MIN/MAX检索的逻辑也和表对应。图9(a)中示出通用表的MIN/MAX中、右倾斜型近似的MAX检索。在表A1中,成为校验失去资格(没有与密钥值21同值的入口22的状态)。从表内成为“密钥值>入口值”的入口之中选择作为最大值的入口(在“密钥值>入口值”之中,入口值最接近密钥值的入口),作为近似候补入口22x。近似候补22x所指的下一表是近似假定入口22y。而且,开始该近似假定入口22y以下相对的MAX检索。
首先,移向作为近似假定入口22y的表的表A2。调查表A2内的入口,选择具有最大值的入口。移向该入口的下一段表,以下重复具有最大值入口选择和向下段的移动,一直到达最下段。即使在最下段也选择最大值入口,追寻到最大值入口的登录数据,输出MAX入口。图9(b)是左倾斜型范围检索的情况,以同种的逻辑进行MIN检索。
图10中示出压缩表28的MIN/MAX检索的逻辑中、对应于右倾斜型近似的MAX检索的过程。首先,在压缩表28中,由于在屏蔽数据28a中,入口标号与位模式的关系是固定的,等于集合完的状态,故表内的最小值/最大值入口的选择没有位模式的比较,仅在屏蔽数据28a对应的入口编号中设立标志即可进行。即,只参照有效无效标志,表内的最小值/最大值入口的选择就可以结束。而且,通过在追加的入口编号对应的地址表28b的档案中记录接着该入口编号的压缩表28的地址,从而以一览表连接压缩表28成为可能,即使没有线性地址上的表,也能进行二进制位树的多阶段检索。
说明右倾斜型范围检索中的MAX检索。在前面的校验阶段中,在表A1的屏蔽数据28a中没有校验候补,若校验结束,则在下一当前阶段中开始相对于近似假定入口的MAX检索。近似候补的选择,通过在表A1的屏蔽数据28a内选择成为“密钥值>入口值”的入口中、具有最大值的入口(最大入口)而进行。由于是位地图的压缩表,故为“入口编号=入口值”,符合上述条件的入口,从密钥值入口向左看最初设立1的入口为近似候补22x。在该例中,与校验结束相同,在表A1中存在近似候补入口22x。近似候补入口22x所指的下一表是近似假定入口22y。
由此,在下一校验阶段中,移向作为近似假定入口22y的表A2。在表A2内选择具有最大值的入口。由于“入口编码=入口值”,故从右端看最初确立1的入口为最大值入口22m。移向最大值22m所指的下一段表A3,重复入口选择和向下段的移动,一直到达最下段入口。即使在最下段也同样地选择最大值入口22m,到达最下段的最大值入口22m所指的数据。由此,可以得到最大的入口。在左倾斜型范围检索中,以同种的逻辑进行MIN检索。
MIN/MAX检索的旁路
在压缩表28中,由于入口编号和位模式的关系固定且集合完毕,故MIN/MAX检索没有位模式的比较,只以入口编号进行即可。只参照有效无效标志即可结束表内的MIN/MAX检索。然而,只要没有入口的登录·删除,追寻低位的部分表28而到达的最终的最大入口或最小入口就是不变的。因此,每次进行MIN/MAX检索是浪费,如图11(a)及图11(b)所示,在各表中设置旁路TAG(BP),在该表28以下进行MIN/MAX检索的结果,即通过记录最大入口或最小入口,从而能够省略MIN/MAX检索。由此,检索最大入口或最小入口的过程,取代只存取近似假定过的压缩表28的过程,可以大幅度缩短检索时间。
因此,在可以近似确定近似假定入口时,使用近似假定入口22y所指的地址表28b的地址(在以后称为TAG(指下一段表的TAG)),根据下一段表的旁路TAG(BP),可以决定近似确定的最大或最小入口。作为范围检索的逻辑,在以右倾斜型进行的情况下,在旁路BP中记录最大的入口,在以左倾斜型进行的情况下,在旁路BP中记录最少的入口。在有多个范围检索的情况下,作为校验的逻辑构成,统一为右倾斜型或左倾斜型的任一个。通过在旁路BP中记录两值,从而虽然记录在表中的信息两的增加、校验用逻辑的追加、入口的登录删除用逻辑的追加等发生,但也能使左右两方式混合存在。
再有,通过记录旁路BP,从而也可以解除MIN/MAX检索中的倒退的延迟。所谓MIN/MAX检索,是用来从近似候补入口群中确定近似结果的检索。但是,无论是右倾斜型还是左倾斜型,在表型位树的情况下,在校验继续中,并不是在每段更新近似候补。有时在某一段更新近似候补,之后有几段没有伴随近似候补更新的校验继续,在下段校验失败的阶段中,使用在上段更新过的近似候补,为了确定结果而需要进行MIN/MAX检索。
在图12中示出一例。从高位的表28向低位的表28进行校验继续,在成为校验失去资格的阶段中,根据近似假定而返回高位的表28,用其他逻辑(MIN/MAX检索)将表28再次降为树状。这可以称为倒退。由于校验失败导致以MIN/MAX检索来追寻树的逻辑改变,故在MIN/MAX检索中虽然不产生再度的倒退,但在校验失败位置和近似假定位置分开的情况下,看作倒退的MIN/MAX检索的成本高。
与此相对,如图13所示,由于若预先记录旁路BP,则通过一次读出旁路BP的值,从而确定最大或最小入口,故实质上不需要成为检索过程的时间相关的处理,实质上可以抑制倒退的发生。图13是右倾斜型的例子,在表A1中成为近似假定更新·校验继续,在表A2中成为无近似假定更新·校验继续,在表A3中成为无近似假定更新·校验失败。此时,由于以表A3中的校验失败来进行近似确定,故移向MAX检索,但由于最新的近似假定是表A2′,故存取表A2′。而且,若在表A2′中记录有旁路BP,则由此,可以直接地移动到最下段的最大入口为止,校验过程结束。
检索装置、分类装置及二进制位树校验器
图14中示出检索装置10的概要。该检索装置10具备多个进行各种检索的分类器15,可以并列地进行各种检索。因此,在检索装置10中,安装有具有由多个分类器15实现的多个分类过程的分类方法。由1个分类器15顺序地进行各种检索也是可能的,本发明的检索装置并未限于此。
对该检索装置10供给上游的应用程序,例如从图1中示出的控制单元12、8c、7c、6c供给作为检索对象位串的密钥21、表示其检索类别的路由TAG31、识别检索工作的信息(ID)32。例如,若为SPD检索功能8,则为了管理1个信息包数据φp,至少校验源IP、目标IP、源端口、目标端口及表示协议的位串,需要检索满足这些全部的规则。这种情况下,将源IP、目标IP、源端口、目标端口及表示协议的位串对各不相同的分类装置15作为检索对象位串(检索对象密钥)21而供给,将表示登录了与各位串比较的位模式(入口)22的二进制位树的最高位的部分表25(28)的存储器11或8m的地址作为路由标记31而供给。由此,在各分类装置15中,可以将被供给的检索对象密钥21和应该用于该检索对象密钥21的范围检索中的预先登录的位模式(入口)22进行校验。
进而,检索装置10备有逻辑运算装置(AND化器)19,其用于求取根据供给到多个分类装置15的检索对象密钥21的校验结果而得到的规则的逻辑积,以取得最终结果。因此,该检索装置10安装有具有由多个分类器15实现的多个分类过程,和由AND化器19实现的逻辑运算过程的分类方法。各分类装置15中的检索处理时间根据供给到各分类装置15的检索对象密钥21的位长而不同,再有,在校验过程中根据是否发生了返回到高位的部分表28的倒退而不同。因此,有从分类装置15无法同步输出检索结果的可能性。因此,通过在供给到分类装置15的检索对象密钥21上附加ID32,从而使逻辑运算装置19中的逻辑运算成为可能,进而使和在信息包管理装置3中被管理的信息包数据φp的关联也成为可能。
本例的分类装置15具备多个连接为流水线状的校验装置50,在这些校验装置50之间,传递作为数据信息包而被标准化过的校验继续信息(输入输出参数)33,成为信息包驱动的构成。因此,分类装置15具备由多个校验装置50形成的数据流,安装有具有具备多个校验阶段的分类过程的分类方法。另外,由于各校验装置50进行各校验阶段的处理,故也可以将利用多个校验阶段进行多阶段校验的校验方法安装在分类装置15中。该分类装置15能以时钟同步的硬件实现,也能以数据流型的硬件实现。分类装置15进一步还备有用于提高记录了被压缩过的部分表28的存储器11和校验装置50之间的输入输出速度的成组传递缓冲器16。
以下所说明的检索装置10、分类装置15及校验装置50的构成,能以软件实现,也能以软件为主体且部分地使用硬件来实现。然而,在考虑了执行速度的情况下,希望尽可能用硬件来实现。使用了本部分表25或28的检索方法,通过将单一或基本单一构成的校验装置(校验器)50连接为流水线状,而可以对应于位长的变化,另外通过提供路由标记31等表示检索类别的信息,而可以由单一构成的校验装置50执行多种检索。因此,该校验方法是非常容易硬件化的校验方法,可以经济地提供处理速度快的检索装置。另外,由于只从高位的软件或应用程序提供检索对象密钥21和检索类别信息31,就可以执行所希望的检索,故高位的应用程序的负荷也非常小。
分类器的构成
图15中示出将8个4位型校验器50连接为流水线状,进行相对32位的检索对象密钥21的检索的分类装置15的概略构成。该分类装置15将多个校验器50作为硬件来具备,是将这些校验器50以软件或硬件来连接的构成。校验继续信息33所包含的路由标记(RootTAG)31及校验标记(NextTAG)34是指示SDRAM存储器11上的压缩表28的指针(地址)。分别执行校验阶段的各校验装置50,从校验继续信息33所包含的检索对象密钥21中,顺序地将每4位作为部分对象密钥36接受,从由路由标记31或校验标记34指定的表28读取屏蔽数据28a,进行近似一致的比较。从压缩表28的地址表28b读取根据比较而命中的入口(部分入口)26对应的下一段压缩表28的指针(NextTAG)34,包含在校验继续信息33中并供给到下一校验装置50。
检索对象密钥21或校验标记等校验继续信息33,可以分别供给。然而,通过统合为数据信息包而输入,从而容易数据流化。另外,成为检索对象的部分对象密钥36,也可以在由高位的程序预先分割过的状态下供给到校验装置50。然而,检索对象密钥21的值优选全部为包含在校验继续信息33中,一边移位,一边将每必要位数作为部分对象密钥36使用。这是因为:在校验器流水线构成的中途有使流水线状态逆流(旁路等产生的倒退)的可能性,在校验器50的外部分割检索对象密钥21时,以流水线的进行(时钟)同步,无法投入到适当的状态(阶段)中的缘故。此外,因对SDRAM11的存取状态(竞争·排他),或带有数据高速缓冲存储器的情况下是否接通高速缓冲存储器等,各校验装置15中的处理速度变动的可能性高。因此,在时钟同步中没有校验器流水线的进行自身,而构成为请求响应型(数据流型),处理效率高,即使在这一点上,也有将检索对象密钥21包含在校验继续信息33中,进而将校验检索信息33进行数据信息包化,供给到下一阶段的校验装置50的优点。
在图16中示出分类装置15的不同例。该分类装置15具备执行MAX/MIN检索时的旁路用总线(BP总线)39,校验装置50备有向BP总线39输出的接口。因此,在分类装置15中,各校验装置50非同步,存取表28的频率上升。如图15所示,若将各段的表28存储在同一SDRAM11中,则由于有构成流水线的各校验器50的存储器存取竞争,故流水线不能有效地发挥功能。因此,将各段的表28存储在分立的存储器11a中,使各校验器50的存储器存取独立,流水线的有效性高。在具备了该校验装置流水线的分类装置15中,若将1个校验器50的处理所需时间(包含存储器存取)设为“T”,不间断地输入32位的检索对象密钥21,则检索的输入输出总和成为“T”(本来为1/T),等待时间为“8T”。
校验器50的构成,由于除去SDRAM11以外处理时间恒定,故容易组装流水线。若使用根据数据高速缓冲存储器控制来排除SDRAM存取的履历高速缓冲存储器方式或专用SRAM型履历高速缓冲存储器方式,则可以将相对SRAM11的实质存取时间恒定化,可以更容易地构成流水线。与此相对,若为共有型数据高速缓冲存储器,则需要高速缓冲存储器的输入输出总和与全流水线状态的输入输出总和的合计相等,或者共有型数据高速缓冲存储器一方的输入输出总和高。
在图17中示出分类装置15的另一不同例。在上述的例子中,虽然将多个校验器50作为处理流水线而并列构成,但在使节省资源优先的情况下,如图17所示,也可以是重复使用1个校验器50的构成。该情况下,由于校验器50对存储器的存取在某一时刻始终为1存取,故通过将表28全部放置在同一SDRAM11中,从而没有处理速度的优劣。
校验装置的构成
图18中示出校验装置50的构成。该校验装置50是将检索对象位串(检索对象密钥)21分为多位的部分对象位串(部分对象密钥)36,执行在多阶段和预先登录的多个登录位模式(入口)22进行校验用的1个校验阶段的校验装置。校验装置50备有:将校验继续信息33所包含的指令37译码,控制校验装置50中的处理的指令译码单元51;从检索对象密钥21中选择当前阶段的部分对象密钥36,以和该部分对象密钥36所能取得的全部值进行校验的比较单元(全校验机构)52;从存储器11装载该校验阶段的压缩表28的屏蔽数据28a的装载单元(模式装载机构)53。装载单元53备有:将表28从存储器11存储到缓冲器59的表装载部53a;和从存储在缓冲器59中的压缩表28读出屏蔽数据28a的屏蔽读取部(MSK读取部)53b。和屏蔽数据28a一起存储在压缩表28中的地址表28b及旁路数据BP在多数处理中成为必要。因此,在本例中,将压缩表28装载在缓冲器59中。屏蔽数据28a,如上所述,是入口22的部分位模式26,利用标志(位模式)来表示由从先行阶段得到的校验继续信息决定的、部分对象密钥36所对应的阶段(当前阶段)的部分登录位模式(部分入口)26。
校验装置50备有判断单元54,其根据比较单元52中的全校验结果和屏蔽数据28a,可以表示与部分对象密钥36一致的部分入口26的有无即包含一致的校验结果。另外,校验装置50备有输出单元55,其根据判断单元54的校验结果,将根据校验而特定的部分入口26接着的下一阶段的屏蔽数据28a的地址(标记(本例中为压缩表28的地址))从地址表28b作为校验标记(校验候补)34输出。判断单元54能表示值最接近部分对象密钥36的最大(对右倾斜型近似进行记载,对于左倾斜型近似,通过将最大变更为最小而基本可以对应)的部分入口26的有无,以使该校验装置50不仅可以进行一致检索,还可以进行范围检索。本例的判断单元54备有:根据屏蔽数据28a对比较单元52的输出进行屏蔽处理的屏蔽器(VLD,VaLiDation)54a;和从屏蔽器54a的输出选择状态的选择器54b。
输出单元55将由判断单元54判断为一致的部分入口26接着的下一阶段的屏蔽数据28a的地址(压缩表的地址)作为校验标记34输出。进而,输出单元55在判断单元54中发现了最大的部分入口26时,将该最大的部分入口26接着的下一阶段的屏蔽数据28a的地址(压缩表28的地址)作为范围检索用的候补地址(候补标记、近似候补)35输出,并保存在校验继续信息33的信息包数据中。因此,即使在存在一致的部分入口26且为校验继续的情况下,若发现最大的部分入口26,则也将范围检索用候补标记35保存在信息包数据中。因此,在下一校验阶段,一致的部分入口26没有,校验结束,进而在该校验阶段没有最大的部分入口26时,将候补标记35作为校验标记34输出到校验继续信息33成为可能。根据该校验标记34,可以移向MAX检索。
再者,校验装置50的输出单元55也备有:在移向MAX检索时,可以从压缩表28读取旁路BP,并作为最终校验结果输出的功能。因此,输出单元55备有:生成反应校验状态等的指令37的指令更新部55a;更新校验标记34的校验标记更新部55b;更新候补标记35的候补标记更新部55c;和旁路读取输出部55d。而且,将包括由输出单元55更新的参数34、35及37、输入的校验继续信息33所包含的ID32和检索对象密钥31的数据信息包作为校验继续信息33,从输出接口56向位于流水线的下游且进行下一阶段的校验的校验装置50供给。
在压缩表28中未设定有旁路数据BP时,若接受表示校验结束的指令37,则输出单元55的校验标记更新部55b将屏蔽数据28的最大部分入口26接着的下一阶段的屏蔽数据的地址作为校验标记34输出,控制继续MAX检索的校验装置50的流水线。
还有,本例的校验装置50备有:通过更新屏蔽数据28a及地址表28b,而追加或删除入口的更新单元60;和将更新过的表28写入存储器11内的表写入单元61。对于更新单元60的动作,以下再进一步详细说明。
校验装置中的处理
图19利用流程图示出校验装置50中的校验处理(校验方法)50m。该校验装置50担任1个校验阶段,图19所示的校验处理50m表示1个校验阶段(当前阶段)的处理。在步骤101中,指令37表示入口的追加删除时,在步骤102中,有更新单元60更新表28(更新工序及更新过程)。在步骤103中,从指令37判明先行于当前阶段的前阶段的校验以近似结束校验,旁路到以下所说明的当前阶段的校验的步骤104、105及106,在输出步骤110所包含的步骤111中,由旁路读取(BYPASS读取)输出部55d向图16所示的旁路总线39输出旁路数据BP,结束校验(旁路工序)。
在根据指令37继续当前阶段的校验的情况下,在步骤104中,由比较单元52比较当前阶段的部分对象密钥36(全校验工序)。在步骤105中,由装载单元53装载当前阶段的屏蔽数据28a(模式装载工序),在步骤106中,由判断单元(VLD单元)54得到当前阶段的校验结果(判断工序或VLD工序)。而且,在步骤107中,由于若存在一致的部分入口26,则是校验继续,故在步骤109中由候补标记更新部55c更新候补标记35(候补地址存储工序),在输出过程110的步骤114中,由校验标记更新部55b更新校验标记34,由指令更新部55a将指令调整为校验继续后输出(输出工序)。
在没有一致的部分入口26的情况下,原则上校验结束。然而,在步骤108中,在存在近似的部分入口(最大的部分入口)26的情况下,在输出步骤110所包含的步骤113中,校验标记更新部55b将近似的部分入口26接着的标记地址调整为校验标记34后输出。在步骤108中,在没有近似的部分入口26的情况下,在输出步骤110所包含的步骤112中,校验标记更新部55b将在上游的校验阶段得到的包含在校验继续信息33中而传递的候补标记35调整为校验标记34,并输出到旁路总线39。由此,开始MAX检索。
在具备了这些工序的校验方法50m中,实际上可以并列地执行可以独立处理的工序。例如,由于解释指令的工序101及102、比较部分对象密钥36的工序104和装载屏蔽数据的工序105是独立的处理,故可以并列地执行。由于装载表的期(阶段phase)是SDRAM存取,故花费时间,通过和比较期等并列地进行,从而可以缓和存储器存取的开销。因此,即使不使用读取速度非常快的特殊存储器,在本例的校验装置50中也可以确保充分的检索速度。另外,在输出步骤110中,更新不同的参数的期也相互独立,指令更新部55a、校验标记更新部55b及候补标记更新部55c也独立,这些中的处理都可以并列地执行。因此,如图20所示,在通常的校验模式的情况下,在校验装置50中,可以并列地执行表装载53和比较52等。
本例的装载单元53,根据校验标记34的指示,将SDRAM存储器11上的压缩表28装载到校验器50内部的表缓冲器59中。压缩表28的数据不一定都被利用,但至少参照屏蔽数据28a和地址表28b的1个或2个地址(标记)的值。因此,对于在各校验器50中作为共有资源的SDRAM11,与发生2~3次的读取相比,利用成组传递读取,只从SDRAM11读取1次,在校验器内部就可以读出必要值的一方是有效的。如上所述,由于从SDRAM进行成组读取时花费时间,故从该表装载期到屏蔽数据读取期,可以和比较期并列地进行。虽然在后面详细地叙述,但在与SDRAM之间放置了数据高速缓冲存储器的情况下,校验器50中虽然不需要内置的表缓冲器,但即使在该情况下,局部地复制并进行存取比向属于共有资源的数据高速缓冲存储器的存取进行多次当然还有效。
比较单元的构成
图21中更详细地示出比较单元52。在该校验装置50中,由于部分对象密钥36的位数是固定的,故1个表的入口数是固定的。另外,由于是压缩表,故入口与位模式的对应也是固定的。因此,部分对象密钥36的值与各入口的比较能够由固定逻辑电路来构成。
该校验装置50进行4位的比较。因此,具备16个从比较器CMP0到CMP15,比较器CMP0(入口编号0)进行输入检索对象密钥36与值0的比较,比较器CMP1(入口编号1)进行输入检索对象密钥36与值1的比较,而且,比较器CMP15(入口编号15)进行输入检索对象密钥36与值15的比较。这样,用各比较器CMPi进行输入值x与固有值i的比较。即,比较器CMPi(i为0~15)是各入口固有的逻辑电路。
比较单元52,取代比较器,可以由使用了参照表LUT的硬件等其他硬件构成,并未限定于本例。
如图22所示,各比较器CMPi,作为输入值x取入对象密钥4位,各CMPi进行与各自固有值i的比较。各CMPi将输入值x与固有值i的比较结果“<”“=”“>”的3值(2位)作为CMPi输出而输出。各比较器CMPi根据该比较逻辑,对每个比较器进行逻辑压缩,以便输出比较结果,可以由最佳化的电路构成。
图23表示比较单元52的不同例。若考虑在并列执行的表装载期~屏蔽读取期上花费时间,则不一定如上所述将16个比较器CMPi并联。图23是由1个比较器CMPx重复16次比较动作的构成。只要能取得和其他处理的处理时间的平衡就可以削减硬件。当然,以和表装载期~屏蔽读取期的所需时间的兼顾,比较单元中使用的比较器CMPi的必要个数并未限于1个,也可以是2个以上。
判断单元的构成
图24中示出判断单元54的屏蔽器54a的构成。在屏蔽期,由屏蔽器VLD54a进行无效入口的屏蔽处理。屏蔽各入口的屏蔽元件54e对于各入口来说是相同的逻辑电路。屏蔽数据28a以各1位的屏蔽值来表现实际的入口(部分入口)26的有效·无效。根据屏蔽数据28a,从比较期的各入口(假想入口)的比较结果除去无效入口的比较结果,变换为与实际登录的各入口26的比较结果。
各屏蔽元件54e,如图25所示,将比较期的CMPi输出(2位)和屏蔽值(1位)的合计3位作为输入,将“×”“<”“=”“>”4值(2位)作为输出。在这里,“×”是无效入口,“<”“=”“>”是有效入口。
图26~图28示出判断单元54的选择电路54b的选择逻辑。屏蔽期后的各入口的VLD输出为“×”(无效)、“<”(密钥36<入口26)、“=”(密钥36=入口26)、“>”(密钥36>入口26)、4个状态。在选择期,从这些VLD输出之中得到完全一致检索、范围一致检索的校验结果,选择向下一段连接的入口。图26所示的选择逻辑是完全一致检索的选择逻辑,选择屏蔽器VLD输出为“01”的入口。表示完全一致的输出函数Gf(i)、表示是否存在输出Gf(i)为1的入口的输出函数Sf、表示完全一致的入口的函数Nf如下所述。
Gf(i)=
Bit1*Bit0
Sf=∑Gf(i)
Nf=Gf -1(1)
(求Gf(i)=1的i的逆函数) …(1)
如图26所示,只有VLD输出为“01”的入口的输出Gf(i)(表示完全一致的输出)成为“1”。因此,通过取得输出Gf(i)成为1的入口编号,从而可以得到完全一致的入口Nf。在二进制位树方式中,作为入口的重复登录不能存在。因此,若Gf(i)的16个输出中存在完全一致入口,则可以保证是唯一的。根据输出Gf(i)的“=”的选择即使在范围检索中也可以用于校验继续处理中。
在图27(a)中示出右倾斜一致检索型的范围检索的校验继续选择逻辑,图27(b)及图27(c)中,示出根据中间输出和递推公式而得到近似候补的输出的逻辑。另外,在图28(a)中示出左倾斜一致检索型的范围检索的校验继续选择逻辑,图28(b)及图28(c)中示出根据中间输出和递推公式而得到近似候补的输出的逻辑。表示右倾斜一致检索时的近似候补的输出Gr(i)、中间输出Fr(i)、递推公式Hr(i)、表示近似候补的入口编号的输出Nr、表示输出Gr(i)成为“1”的入口的有无的输出Sr如下所述。
Fr(i)=Bit1*Bit0
Hr(-1)=0(递推公式假想初始值)
Hr(i)=Hr(i-1)+Fr(i)
Sr=∑Gr(i)
Nr=Gr -1(1)
(求Gr(i)=1的i的逆函数) …(2)
另外,表示左倾斜一致检索时的近似候补的输出Gl(i)、中间输出Fl(i)、递推公式Hl(i)、表示近似候补的入口编号的输出Nl、表示输出Gl(i)成为“1”的入口的有无的输出Sl如下所述。
Fl(i)=Bit1*Bit0
Hl(16)=0(递推公式假想初始值)
Hl(i)=Hl(i+1)+Fl(i)
Sl=∑Gl(i)
Nl=Gl -1(1)
(求Gi(i)=1的i的逆函数) …(3)
在范围检索的情况下,校验继续是和完全一致同样的“密钥36=入口26”的选择,校验结束的选择,若以右倾斜一致型进行范围检索,则选择成为“密钥36>入口26”的最大入口。若为左倾斜一致型,则选择成为“密钥36<入口26”的最小入口。因此,在右倾斜一致的情况下,只有VLD输出为“11”的中间输出Fr(i)成为“1”,在左倾斜一致的情况下,只有VLD输出为“10”的入口的输出Fl(i)成为“1”。
而且,在范围检索中,在表示近似候补的输出Gr(i)中,只有输出Fr(i)成为“1”的入口中、最大值的入口(入口编号为最大的入口)为“1”,决定表示其近似候补的入口编号的输出Nr。
同样,在左倾斜一致型的情况下,在输出Gl(i)中,只有输出Fl(i)成为“1”的入口中、最小值的入口(入口编号为最小的入口)为“1”,决定表示成为近似候补的入口编号的输出Nl。
图29中示出右倾斜一致型的情况下的输出变化。图29(a)是比较期后的CMPi输出,图29(b)是由表读出的屏蔽数据28a。图29(c)表示VLD输出,成为每位的(a)×(b)。图29(d)是成为“密钥值>入口值”的入口群的提取(中间输出)Fr,图29(e)的中间输出Hr是从输出Fr中提取了右边缘(成为“密钥值>入口值”的最大入口)的输出。图29(f)是最终输出Gr,利用输出Hr,只输出成为“密钥值>入口值”的最大入口。即使观察其,也可以明白Gr(i)成为“1”的入口即成为近似候补的入口是1处。
图29(g)示出一致检索的输出Gf,以VLD输出为基础,提取出成为“密钥值=入口值(01)”的一致入口。在该校验方法中,由于是没有向表28的重复登录的结构,故该一致入口的唯一性是自明的。无论是输出Gr还是输出Gf,运算的结果都是相应的入口不存在或唯一存在的任一种。
图30(a)~图30(g)中示出左倾斜一致型的情况下的输出变化。与右倾斜一致型的情况同样,可以保证Gl的16个输出中、Gl(i)为“1”的近似候补的入口是唯一的。
输出单元的构成
在输出单元55中,根据从判断单元54得到的上述校验结果来更新各参数。在校验标记更新部54b中,根据由选择电路54b得到的入口编号(输出Nf)来更新校验标记34。观察由选择电路54b得到的输出Sf,若输出Sf为“0”,则不进行更新。这是没有成为校验继续的入口并且候补确定的缘故。若输出Sf为“1”,则从向校验器50装载完毕的当前阶段的压缩表28的地址表28b中读出对应于入口Nf的标记信息(地址),更新校验标记34。在压缩表28中,“字位置+0”为屏蔽数据28a,从“字位置+0”开始记录标记信息28b。
在候补标记更新部55c中,根据由选择电路54b得到的入口标号(输出Nr)来更新候补标记35。观察作为候补更新信息的输出Sr,若输出Sr为“0”,则不进行更新。这是没有成为新候补的入口的缘故。若候补更新信息Sr为“1”,则从向校验器50装载完毕的当前阶段的压缩表28中读出对应于入口Nr的标记信息,更新候补标记35。在这里,在候补标记信息35中,不仅记录标记信息,还记录表示校验阶段的候补阶段信息的情况是有效的。该候补阶段信息设定在对应于候补标记的表段位置上。即,是表示候补标记为哪一个表段的信息。该候补阶段信息在以校验段数固定了流水线的分类装置15中,在候补确定后的旁路处理中是必要的。
在将表28配置为从标记地址可以一义地决定表段位置的情况下,由于候补阶段信息包含在候补标记信息中,故不需要其他处理。否则,校验器保存自身担当哪一个表段数的处理的信息,根据该信息,将下一段的信息作为候补阶段信息而在候补标记信息35中进行调整。在将校验器50连接为流水线状来利用的情况下,由于所谓的表段位置也就是校验器ID,故自身ID明白,相对于自身,只要明白相当于流水线下一段的校验器ID即可。由于和旁路的下一段的校验器的关系是固定的,故校验器ID可以在校验器的初始化时确定。与使用下一段的校验器ID相比,在表的标记地址中包含校验阶段ID更简单。在使用数据高速缓冲存储器进行数据的高速缓冲存储器的控制的情况下,由于表成为在段位置另外组化的地址,故可以通用其。
指令更新部55a根据作为由选择电路54b得到的校验继续信息的输出Sf,更新供给到下一段的指令37。若作为校验继续信息的输出Sf为“0”,则校验继续消失,意味着候补确定。因此,输出“CMD=MATCHRDBP”。由此,在下一段的校验装置50中,进行根据与候补标记35一致的校验标记信息34的旁路处理,并输出最终结果。若校验继续信息Sf为“1”,则由于是校验继续,故输出“CMD=MATCHEXEC”。由此,即使在下一段的校验装置中,也根据校验标记34继续进行校验。
输出单元55进一步根据由指令更新部55a决定的下一指令37的值,决定输出对象。接着,若指令37为“CMD=MATCHEXEC”,则由于校验继续,故向下一段的校验装置50输出被信息包化的校验继续信息33。接下来,若指令37为“CMD=MATCHFIN”,则由于是旁路读取后的输出处理,故将输出作为直通,送到最终段的小校验器50的下一个(输出器)。若直通输出一边顺次通过校验器流水线,一边输出,则向下一校验器50输送最终输出。若使用总线39进行捷径(short cut),则向总线39输出最终输出。
接着,若指令37为“CMD=MATCHRDBP”,则由于校验结束,候补确定,故进行根据候补标记信息35的旁路处理,决定检索结果。此时,候补标记信息35不一定指的是下一段表,也能指此前的段。因此,并未限于可以向下一段的校验装置50输出,根据候补阶段信息特定可以处理候补标记的阶段的校验装置50,输出校验继续信息33。
在图31中示出指令37的一览。而且,其在完全一致检索、一维范围检索的基础上,还包括后述的登录·删除。
旁路处理与捷径处理
图32中示出在图16所示的分类装置15中执行存在倒退的旁路村里的样子。在该分类装置15中,备有旁路用总线39,通过向总线39输出校验继续信息33,从而使倒退产生。图16所示的分类装置15为了改善存储器存取时间而做成存储器分离型。因此,某标记地址所指的表28可以只从对应于其的阶段的校验装置存取。然而,在旁路处理移行时得到的候补标记信息35,与校验器流水线上的下一段无关,属于比自身前的任一校验器50。因此,利用旁路总线39,根据候补标记35,可以逆行处理流水线。
图33中示出在图15所示的具备了存储器共用型校验器流水线的分类装置15中执行旁路处理的样子。在为具备了存储器共用型校验器流水线的分类装置15的情况下,由于全部校验器50可以对存储在存储器11中的任意表进行存取,故无需倒退用的旁路总线。在存储器共用型的校验器流水线中,下一段的校验器50进行旁路处理。因此,由于对应于最终段的下一段旁路处理发生,故最下段校验器50的接下来,设置旁路专用的旁路处理器58。通过在第F校验器50中确定校验失败即确定第A~F校验器50中最后更新的候补,从而在下一段中候补标记旁路处理发生的情况下,接下来的第G校验器50进行旁路处理。第G校验器50本来构成某段的表28的处理流水线,但由于是存储器共用型,故可以对任意段的表28进行存取。因此,在第F校验器50校验失败,候补确定发生,以第G校验器50进行旁路处理的情况下,无论是表B~G的任何位置的候补,都能对该表进行存取。
旁路处理结束,得到结果标记信息(最终校验结果),以后的校验器50只进行结果标记信息的直通。在最终段的第G校验器50中,校验继续意味着检索成功(完全一致入口),校验失败意味着得到指表B~G或结果标记的任一个的候补标记。在第G校验器50中,根据校验继续而检索成功的情况下,从校验器50输出的标记信息为结果标记信息,在接收其的最终段旁路处理器58中,作为检索结束而只更新状况(status),不需要旁路处理。
另一方面,在第G校验器50中根据校验失败而进行候补确定的情况下,有候补标记信心35是指表B~G的任一个的标记信息的可能性。因此,旁路处理器58进行旁路处理,从候补标记信息35所指的入口对表28存取,读取旁路值(BP),成为检索结束情况。在第G校验器50中为候补确定,候补标记信息在第G校验器50中被更新的情况下,记录于表G内的标记成为结果标记信息。因此,被更新的候补标记信息成为结果标记信息即最终校验结果。因此,在旁路处理器58中只成为“状况=检索结束”,不需要旁路处理。
综上所述,旁路处理器58,若输入为结果标记信息,则直通。否则,由于得到指表B~G的任一个的标记信息,故旁路处理器58进行旁路处理。是否为结果标记信息的识别可以通过将标记地址的高位位作为识别用信息使用或对流经流水线的数据付与信息来进行。
在为图17所示的重复型分类装置15的情况下,由于全部校验器可以对任意表28进行存取,故与上述同样,无需旁路用的总线。进而,在为重复型的情况下,将控制用的计数器值设为意味着旁路处理的值,由于作为重复处理的一环,可以用自身进行旁路处理,故也不需要旁路处理器58。
但是,在旁路处理中得到的标记信息为最终结果,旁路处理以后的校验器流水线直通,进行到流水线最终段为止,成为分类装置15的输出。另外,在完全一致检索的校验不一致(检索失败)或者范围检索的校验不一致或无候补(检索失败)的情况下,也相同,保存检索失败的状况,使自身以后的校验器流水线直通。若没有用于旁路处理的倒退,则在分类装置15中虽然可以保障输入检索对象密钥21的顺序和输出其校验结果的顺序,但由于允许用于旁路处理的倒退,故无法保障输入的顺序和输出顺序相同。因此,在检索对象密钥21中使ID32成为集合并供给。因此,即使在直通的情况下,也如图34所示,无需以直通的方式进行校验器流水线,如图35所示,转用旁路用总线39,将校验器流水线捷径成为可能。
进而,由于捷径对象始终为最终输出部,故如图36所示,也可以设置与旁路用总线39不同的捷径用总线38。由于产生与旁路产生几乎相同数量的捷径,故无需为了始终决定的对方而提高旁路用总线负荷。若旁路用总线39的旁路处理中的利用率为50%以下,则捷径也使用旁路用总线39会存在不增大硬件的优点。
在具备了存储器共用型校验器流水线的分类装置15中,不需要旁路用总线。因此,如图37所示,希望新设计捷径用总线38。在为重复型分类装置的情况下,以控制用计数器值的判断使旁路处理后为重复结束即可,无需捷径经路。
检索表的管理(更新处理)
以下,对在校验装置50的表更新单元60中追加或删除入口22的处理(更新工序或更新过程)进行说明。压缩表28由屏蔽数据28a与地址表28b构成。因此,在屏蔽数据28a中只追加或删除以位或标志表示的部分入口,基本上就能进行检索表28的更新,无需分类或正规化等复杂的处理。因此,检索表的管理可以非常简化,可以高速地处理。因此,可以使入口的登录或删除等表28的管理和检索对象密钥21的校验处理并列执行。即,在本例的分类装置15中,删除(登录)与检索能以将校验装置50连接成流水线状的校验器流水线并列地执行。但是,有通过追加入口,而有必要更新检索表中准备的旁路值BP的情形,该判断需要若干处理。用于生成新的检索表的处理也成为必要的。然而,旁路值BP一旦设定在检索表28中,则在校验处理中,可以将决定了近似候补后的处理捷径化。因此,即使在更新上需要时间,在检索表的更新时设置旁路值BP也是有含意的。
首先,假设在校验器流水线中并列地执行表28的管理处理和检索处理的状况,则要求用于保持校验中的匹配性的排他处理。即使在检索(校验)处理中,若占有处理对象的表28,则匹配性保持也会变得容易。然而,树高位表中的顺序化变得困难(bottle neck),很有可能妨害校验处理的并列执行。因此,在检索处理中,由于“虽然确认排他,但不占有表”存取而产生检索处理之间的并列性。与此同时,在登录·删除处理侧即表更新处理中,以“确认排他,并占有表”存取也维持匹配性。而且,在检索处理与登录(删除)处理之间,对于先行的登录(删除)处理的占有,后续的检索处理通过进行排他确认的等待,从而被顺序化。
检索处理如上所述,以“虽然确认排他,但不占有表”的状态并列地执行。因此,在与登录·删除处理的关系中,检索处理对于先行的登录·删除处理,利用排他处理而不产生越行。对于后续的登录·删除处理,是检索处理的高位结构中的并列性起因的问题,由于以属于低位结构的检索处理无法对应,故不进行对待。
登录处理在“确认排他并占有表”状态下被顺序化,以表为单位逐次地执行。另外,有更新各表的旁路信息的必要,由于该信息从低位向高位传播,故在登录处理时,必须以某些形式进行从低位向高位的传播。作为考虑的方式,有:在高位待机从低位开始反馈的等待方式;和从高位向低位下行,利用双向链接从低位向高位返回的方式的2种。在等待方式的情况下,必须以硬件资源实现某些的等待机构,虽然由于该资源量,并列数或表段数等受到制约,但在处理速度方面是有利的。并不是依据硬件的等待机构,做成依据存储器的等待也是可能的,但由于存储器存取增加,故有处理速度方面的有利性消失的可能性。在双向链接方式的情况下,虽然没有资源量起因的制约,但1个表的存储量增加或链接读取导致的存储器存取增加(影响处理速度)等,在存储器周围成为缺点。
等待方式的登录处理。
图38中示出等待方式的登录处理的概要。在该方式中,一边从上向下追寻表化的二进制位树,一边进行更新。此时,确定了旁路BP的更新的表28以“无等待(无W)”进行更新处理,未确定旁路BP的表28在各段成为“待机中(有W)”并等待。在到达需要做成新表28n的阶段的情况下,在做成新的表28n之后,并列地进行与该阶段以下的新表28n的连接、和向在高位成为待机中(有W)(旁路BP的确定等待)的表28的反馈。
在图38中,在表A中追加的入口22的部分入口26是已有的(入口是已有的),追加(登录)的入口的部分入口26并不是MAX入口(最大入口)。该情况下,无论相对低位的表的入口登录如何,都对该表A中的旁路BP的值没有影响,无需更新旁路值BP。因此,因为“无等待(无W)”也不需要BP更新。
追加到表B中的入口22的部分入口26虽然是已有的(入口已有),但该部分入口26相当于表B的MAX入口。该情况下,全凭低位的结果,可能有更新旁路值BP的必要。因此,由于到低位确定为止,不确定是否需要该表B的旁路值BP的更新,故以低位的更新等待,成为“待机(有W)”。
在表C中,追加的入口22的部分入口26是新的(入口是新的),该新入口26作为MAX入口。该情况下,在该表中旁路值BP的更新成为必要。由于在该阶段产生了旁路值BP的更新,故向高位表28通知。在成为“有W”状态的表B中,接受来自低位的通知,更新旁路值BP,若还有高位的等待,则向那里通知。在该例中,由于表A为“无W”,故不需要向高位的通知。
从表C向下的流程与上述高位反馈并列进行。由于在表C中判明下一段是新表28n,故向空表管理尾接指令69请求,作为响应,接受应成为表D的表的标记地址。而且,在表C的屏蔽数据28a中追加新的部分入口26的标志,并将新的入口标记写入地址表28b中。由于表D以后的表始终是新的,故对空表管理尾接指令69请求新表的地址,将数据写入屏蔽数据28a及地址表28b中。同时,也更新旁路值BP。
图39中示出在分类装置15的校验器流水线中、以等待方式登录入口22的构成。入口22的登录一边从高位向低位进入校验器流水线,一边追寻表。若成为旁路值BP的更新保留,则向各校验装置50对应的待机管理单元68投入记录了必要信息的信息包,进入到下一段以后。向下一段传送成为直接的高位段的母表中的“待机有无”的信息。在确定了旁路值BP的校验装置50中,若以母表成为“有待机”,则发行高位反馈(FB)。与该高位FB并列地进行向低位的入口登录的流水线处理。高位FB与在待机管理单元68中等待的信息包合流,更新保留的旁路值BP。与保留解除所导致的更新旁路值BP的处理并列地进行只要有必要就从待机管理单元68进一步向高位保留的反馈。
在校验装置中登录入口的处理
在图40中示出在以等待方式登录入口的处理中、更新处理单元60动作时的校验装置50的控制性的构成。“DTAG”表示结果标记(登录数据TAG),“TTAG”表示表标记,“PWF”表示表示直接的高位段(母表)中的待机有无的标记。指令“ADD”追寻从高位向低位的已有入口的标记并传播。指令“ADDNEW”确保中途段以后的新表。指令“ADDUPDT”以向高位的馈送重新开始BP的更新。指令“ADDWCLR”是在高位待机的校验装置50相对的旁路值BP不变的通知,与待机解除有联系。
以和校验继续信息33同样的经路,将更新用的数据信息包向校验装置50传达。而且,由装载单元53将以校验标记指示的地址的表28装载到表缓冲器59中(步骤120)。指令译码器51校验指令37(步骤121),指令37从追加“ADD”开始。首先,在步骤122中,读出屏蔽,在步骤123中利用密钥值和屏蔽值来判断下一段是否是新的。若下一段是新的,则在步骤124中,对空表尾接指令69请求表28n,在等待响应的期间内,在步骤125中进行屏蔽数据28a的更新处理。运算屏蔽数据28a的读取值与追加的部分入口26的值的逻辑和(OR),使相当于追加入口的位(标记)为1。
若从表尾接指令69得到确保了空表的响应,则在步骤126中,将该空表28n的地址写入地址表28b中,将空表28n的地址调整为用于传播追加处理的输出TTAG。此外,在步骤127中,将输出指令CMD37调整为“ADDNEW”
在指令37为“ADD”、下一段已有的情况下,在步骤128中,从本表28的地址表28b中读出下一段的表地址,调整为输出TTAG。在步骤129中输出的指令CMD37和输入指令相同,仍然为“ADD”。
在输入指令37为“ADDNEW”的情况下,由于该段的表28n是由前段处理确保的新表,故在步骤130中,进行表初始化。这只进行屏蔽数据28a的处理就可以,作为屏蔽值,将相应的入口位设为1,其他设为0。初始化以后,指令37为“ADD”,是和为新入口的情况共通的处理。在将入口的登录向校验装置流水线传播的过程中,若指令37一次变为“ADDNEW”即新入口,则向此后的校验装置50供给的指令始终为“ADDNEW”,重复上述处理。另外,对于更新向高位的表28反馈的旁路值BP的处理,始终在指令37为“ADDNEW”的情况下进行。
在指令37为“ADD”的情况下,即当前阶段的表28是已有的表的情况下,在步骤131中根据入口的位置进行判断。在指令37为“ADD”,相应(新)的入口26是新(下一段TBL是新的)入口22的部分入口,且其为最大入口的情况下(MAX入口更新),旁路值BP确定更新。在指令37为“ADD”,相应(新)的入口26是新入口22的部分入口但不是最大入口的情况下,旁路值BP确定为不变。在指令37为“ADD”,相应入口26已有且不是最大入口的情况下,旁路值BP确定为不变。在旁路值BP确定的情况下,若进行更新,则在步骤132中进行更新,在步骤133中将输出PFW调整为“0”。另一方面,在指令37为“ADD”,相应入口26已有且为最大入口的情况下,由于根据高位的状况确定是否需要旁路值BP的更新,故向待机管理单元68登录信息包,保留旁路值BP更新。在保留了更新的情况下,在步骤134中将输出PWF设为“1”。
在不需要更新、更新确定的情况下,由于确定了状态,故参照输入PWF,判断是否存在高位待机。若存在高位待机,则向1段上的待机管理单元68输出反馈。若为更新确定,则在步骤135中,设为指令“ADDUPDT”,若为不需要更新,则在步骤136中设为指令“ADDWCLR”,指示高位的更新是否需要。
图41中进一步详细地示出待机管理单元68的动作。待机管理单元68进行等待处理、和之后的旁路值BP的更新重新开始及高位馈送的并列化。观察指令,由于若为“ADDUPDT”,则在低位段更新旁路值BP,故在步骤137中重新开始旁路值BP的更新。因此,向校验器50的尾接指令投入信息包。由于若指令为“ADDWCLR”,则在低位没有旁路值BP的更新,故废弃尾接指令的信息包。但是,进行向下一高位馈送的处理。另外,和依据指令的处理完全独立,观察输出PWF(在高位是否有等待),若输出PWF为“1”,则向高位馈送。此时,ID及CMD将来自低位的直接馈送到高位。
在校验装置50中,若指令37为“ADDUPDT”,则执行待机的旁路值BP的更新。由于向高位的馈送在待机管理侧进行,故更新旁路值BP后在校验器50中废弃信息包。
双向链接方式的登录处理
图42中示出双向链接方式的登录处理的概要。该方式中的向旁路的对应,一边从上向下追寻,一边进行入口登录,此时在确定了旁路值BP更新的表中进行更新处理。旁路值BP的更新未确定的表直接向低位移动,未设置等待处理等“等待”。到达新表制作段后,并列地进行该段以下的新表的连接;和相对一边追寻双向链接的高位表、向旁路值BP的确定等待的反馈。
在图42中,在表A中,入口已有,但由于不是MAX入口,故无论低位如何,都不进行该表A中的旁路值BP的更新。在表B中,入口已有,相当于MAX入口。因此,全凭低位的结果,有可能进行BP更新。到低位确定为止,由于没有确定是否需要该表B的旁路值BP的更新,故进行保留。在表C中,入口是新的,该新入口成为MAX入口。因此,在该表C中需要进行旁路值BP的更新。由于发生了旁路值BP的更新,故向高位通知(利用双向一览表,向高位表B回溯)。在回溯的表B中,接受来自低位的通知,更新旁路值BP,进一步向高位回溯。在不需要旁路值BP的更新的段中,回溯中止。另一方面,从表C向下的流程,与等待方式的登录相同,和向处理待机高位的回溯并列地进行。
图43中示出在分类装置15的校验器流水线中、以双向链接方式登录入口22的构成。由于追寻双向链接并反馈,故没有设置待机管理单元。高位反馈(FB)在该图中虽然为专用经路,但只要对总线效率没有影响,也可以共用检索旁路用总线39。双向链接的高位回溯和检索时的旁路处理(向任意高位连接)不同,由于始终是向直接连接的高位表(流水线前段的校验器50)的反馈,故在这里做成依据专用经路的连接。入口22的登录一边从高位向低位进入校验器流水线,一边追寻表。利用双向链接从确定了旁路值BP的更新的校验器50发行高位反馈(FB)。此时,与等待方式同样,与高位FB并列地进行向低位表的追寻(新表的连接)。
即使在该双向链接方式中,并列处理也是向低位的流程和向旁路值BP确定后的高位反馈的2并列。另外,高位反馈并不是完全并列,可以是某种程度的流水线并列化。在更新反馈的旁路值BP时,马上读取高位表链接,与更新旁路值BP的处理分支,可以进一步发行向高位的反馈。但是,由于以检索·检索旁路的关系来增加等待矩阵数,故在探讨整体行为的基础上,应该探讨高位反馈的流水线并列化的安装。
在校验装置中登录入口的处理
图44中示出在以双向链接方式登录入口的处理中、更新处理单元60动作时的校验装置50的控制性构成。步骤120到132的处理,由于和等待方式共通,故省略说明。进行旁路值BP的更新是指令37为“ADDNEW”的情况下和指令37为“ADD”且新入口为MAX入口的情况。前者的情况下不需要向高位的反馈。这是因为在指令37从“ADD”切换到“ADDNEW”的段的表中反馈完毕的缘故。因此,在步骤140中校验指令,在后者的情况下,在步骤141中追寻高位链接,在步骤142中向高位表输出“ADDUPDT指令信息包”的反馈。另外,若得到“ADDUPDT信息包”,则在步骤143中读取屏蔽数据,以相应入口是否为MAX入口来判断旁路值BP的更新。在从高位向低位的处理中,在入口为登录完毕且接受了“ADDUPDT”的时刻,始终为已有入口。在进行了旁路值BP的更新的情况下,进一步进行向高位表的反馈。在最高位表中,高位链接为NULL,该情况下反馈结束。
等待方式的删除处理
删除处理也是更新处理,是在“确认排他并占有表”的状态下将构成顺序化的树的表以表为单位逐次执行的处理。与检索处理的关系也和上述相同。在删除处理的情况下,以登录同样,有从低位向高位传播的旁路值BP的更新,与登录同样地在等待管理机构中进行向该高位的回溯是等待方式的删除处理。与登录处理不同的是:删除处理的情况下,没有在从高位向低位的入口检索时刻可以确定旁路值BP的更新的情形。在低位表中入口为0个的情况下,开放该表,并向高位通知,删除高位表的入口,如果有必要,成为更新旁路值BP的处理的流程。该处理是从低位向高位传播的处理。与登录相比,虽然旁路值BP的更新是相同的,但由于有表删除的高位传播处理,故删除变得更复杂。
如图45所示,在等待方式中,在指令37为删除“DEL”时,一边从高位向低位追寻一边在各段中待机,将指令37作为“DELUPDT”,从最低位向高位更新旁路值BP,馈送删除了表的信息。该基本的流程和等待方式的登录处理基本相同。在删除处理的情况下,若在低位表变为空的而被开放,则发生高位的入口删除和伴随其的旁路值BP的更新。例如,若表变为空的,则最终校验装置50从流水线脱离。在表不是空的情况下,只将低位的旁路值BP的更新信息向高位反映就可以。在表为空的情况下,低位的表删除与高位的入口删除有关联,高位的入口删除的结果,由于旁路值BP的更新,发生向提供新的旁路值BP的低位的询问的旁路值询问。这是因为在自表内的信息中无法得到提供新的旁路值BP的入口的旁路值BP的缘故。该指令为“DELUPDT”时的向低位的旁路值询问(BP询问)在登录处理中没有,是删除处理中特有的处理。
向低位的BP询问以下述流程进行。在步骤151中,在发生了伴随入口删除的旁路值BP的更新的阶段,以指令“DELRDBP”向低位询问,待机响应等待的信息包。在低位的校验器50中,若接受指令“DELRDBP”,则读取自表的旁路值BP,在步骤152中,向高位传送指令“DELWRBP”并反馈。在与响应等待的期间内引发,作为指令“DELWRBP”的处理,写入以询问而得到的新旁路值BP。接着在步骤153中,以指令“DELUPDT”将旁路值BP向高位反馈。
图46中示出在以等待方式删除入口(指令为“DEL”)的处理中、更新处理单元60动作时的校验装置50的控制性构成。首先,在步骤160中,装载以输入参数TTAG表示的表,读取屏蔽数据28a。在步骤161中,校验屏蔽数据28a和删除对象的入口(部分入口),若对象入口未登录,则在步骤162中将指令37设为“DELERR”,最终输出删除结果。
在步骤163中,读取下一段的标记信息,在步骤164中判断自表是否为最下段。在自表不是最下段的情况下,在步骤165中将来自低位的反馈等待用的信息包(包括ID、WID=1、TTAG(自表TAG)、KEY(自表入口KEY))投入待机管理单元68中。在步骤166中,向下一段的校验器50输出指令“DEL”(包括ID、TTAG=NextTAG、KEY=SHIFT)。
另一方面,在自表为最下段的情况下,在步骤167中读取入口相对应的Next标记即结果标记,作为删除结果而最终输出。在也包含旁路值BP的更新的删除结束前,若首先返回响应,则使结果标记搭载在高位反馈上而流动,即使返回到最高位,也进行最终输出。接着,在步骤168中删除入口。只删除表28的屏蔽数据28a的入口就可以。若删除入口后的屏蔽数据28a的累计(和集合)SUM-MASK为“0”,则将标志CEF调整为“1”(表为空入口),若SUM-MASK为“1”,则将标志CEF调整为“0”(表中还残留有入口)。另外,比较入口删除前的屏蔽数据28a和删除后的屏蔽数据28a,设定标志NBP。若删除后的入口为提供旁路值BP的入口,则将标志NBP调整为“1”即有BP更新。
在步骤169中,若判断为标志CEF是“1”,则由于自表成为空的,故在步骤170中将自表退还空表管理尾接指令69,将信息包的标志NBP和DTAG调整为DC(don’t care)。
另一方面,在标志(flag)CEF为0的情况下,在步骤171中校验标志NBP,在步骤172中,从残存的入口中选择提供新的旁路值BP的入口(MAX入口),在步骤173中将旁路值BP更新为新的BP入口对应的标记信息(最终结果信息(结果标记))。而且,将信息包的标志NBP(旁路有效)调整为“1”,将旁路值BP(新旁路TAG值)调整为DTAG。而且,在步骤171中,在自表不是BP入口的情况下,旁路值BP的更新处理是不需要的。再有,在步骤174中,根据指令“DELUPDT”,输出高位反馈的引发用信息包。
图47中示出指令37为“DELUPDT”时的校验装置50的更新单元60的处理。该处理,在指令“DEL”从高位向低位流动时进入等待的校验装置50接受了来自最下段的指令“DELUPDT”之际,将其作为触发器来引发。首先,在步骤180中装载表。在步骤181中,由于若从低位反馈的标志CEF为0、则低位表不消失,故不需要自表的入口删除。在标志CEF为“0”时,在步骤182中校验来自低位的标志NBP,在低位表的旁路值BP成为变更时,进一步在步骤183中根据自表的屏蔽数据28a和删除对象的入口,调整自己的标志NBP。而且,在步骤185中,若自NBP为“1”即自表的入口为BP入口(MAX入口),则在步骤186中更新旁路值BP。若低位的标志NBP为“0”,则在步骤184中也将自NBP调整为“0”,不进行旁路值BP的更新。另外,在步骤187中校验自段是否为最高位,若不是最高位,则在步骤188中进行向高位的等待反馈。
另一方面,若来自低位的反馈过的标志CEF为“1”,则由于低位表消失,故在步骤189中进行自表的入口删除。标志CEF为“1”时,由于低位表消失,故NBP及DTAG为DC。更新伴随自表的入口删除的旁路值BP。进而,在入口删除后,若自表为空(SUM-MASK=0),则在步骤190中将标志CEFout调整为“1”,在步骤191中开放自表,在步骤192中确认是否为最高位后,在步骤193中进行向高位的等待反馈。然而,在自表为最高位表(路由选择表)的情况下,不进行表删除。即使路由选择表为空也不删除。另外,对于路由选择,由于高位的等待不存在,故不进行反馈。
在入口删除后自表不是空的情况下,即标志CEFout为“0”时,在步骤194中选择新BP入口(MAX入口),在步骤195及196中进行从对应于新BP入口的低位表读取旁路值BP。这是以根据校验器流水线的状况,用等待管理机构等待下一校验器50的旁路值BP读取的方式来进行的。待机侧投入等待信息包(ID、WID=2、TTAG、KEY),向低位的依赖侧根据指令“DELRDBP”来发行。在不是MAX入口的情况下,在步骤197中确认是否为路由选择,在步骤198中向高位反馈。
图48中示出指令为“DELRDBP”和“DELWRBP”时的处理。以来自相对高位的指令“DELUPDT”向低位发送指令“DELRBP”。若指令为“DELRDBP”,则在步骤201中读取旁路值BP,在步骤202中调整为DTAG。而且,由于高位等待旁路值BP读取,故对高位的待机管理68投入等待引发用信息包(ID、CMD=DELWRBP、DTAG=BP、WID=2)。
根据来自自器的指令“DELUPDT”的待机信息包和来自低位的指令“DELRDBP”结束后的信息包而引发的指令指示为“DELWRBP”。由于旁路值BP进入来自低位的DTAG中,故在步骤203中根据表示自表的TTAG,写入DTAG值。在自表中,由于确定了旁路值BP,故在步骤205中重新开始指令“DELUPDT”的高位反馈。但是,与指令“DELUPDT”同样,在步骤204中校验是否为路由选择表,在为路由的情况下由于没有高位,故不进行高位反馈。
双向链接方式的删除
在该方式中,首先根据指令“DEL”,以完全一致性的检索从高位向低位追寻入口,下降到最低位为止的点没有变化。指令“DELUPDT”的最低位向高位的旁路值BP的更新、表删除信息的馈送以双向一览表的馈送来进行,不使用等待方式等的待机机构。因此,虽然成为与图45所示的等待方式基本同样的流,但相对于高位的指令不供给到待机管理单元而是供给到校验装置50。
另外,对于伴随低位的表删除的高位的BP更新,与等待方式的情况相同,以指令“DELRDBP”及“DELWRBP”来进行。但该处理不是以等待而是以双向一览表的流移动来进行。因此,若为等待方式,则由于待机信息包保持自表的KEY值(删除对象的入口),故来自低位的反馈不介意KEY,但在双向一览表方式中,每次指令“DELUPDT”的高位馈送都必须可以再次使用相应段的KEY。因此,并不是以从高位向低位的指令“DEL”的移动来消耗(消失)KEY,而是将KEY值设为SHIFT的参照位置移动,以便在指令为“DELUPDT”时,以反方向SHIFT得到相应段KEY值。即,若KEY值为4位8段表,则具有32(4×8)位的KEY区域(field),在指令“DEL”中,进行从高位位向低位位的参照位置移动,在指令“DELUPDT”中进行从低位位向高位位的参照位置移动。
因此,在指令为“DELUPDT”时,根据双向一览表的高位链接而可以得到高位表标记。如上所述,KEY是通过参照位置的移动,可以始终存取相应段的密钥值的结构。向指令“DELUPDT”时的低位的旁路值BP的询问之际也同样,可以进行依据高位链接的高位表标记的取得、KEY值的适当参照位置移动。因此,向低位的旁路值的询问使用双向链接,可以和等待方式基本相同地进行。
图49中示出在以双向链接方式删除入口(指令为“DEL”)的处理中、更新处理单元60动作时的校验装置50的控制性构成。由于是没有使用待机管理单元的方式,故从图46所示的控制系统图中除去步骤165中以外,可以以几乎相同的控制进行处理。在步骤174中,以指令“DELUPDT”输出高位馈送信息包之际,送出对象的标记地址TTAG由高位链接指定高位表,入口KEY向高位方向逆移位,可以与表段位置匹配。
图50中示出指令37为“DELUPDT”时的校验装置50中的更新单元60的双向链接方式的处理。即使在该处理中,除了不使用待机管理单元以外,也可以以和图47相同的控制来进行处理。而且,在反馈之际,送出对象的标记信息TTAG根据自表的高位链接而指定高位表,入口KEY向高位方向逆移位并可以和表段位置匹配这一点和上述同样。
图51中示出指令为“DELRDBP”与“DELWRBP”时的双向链接的处理。即使在这些处理中,除了不使用待机管理单元以外,也可以以和图48相同的控制来进行处理。
如上所述,在本发明中,由于在伴随入口的追加及删除的表的管理中,不需要分类或正规化等处理,故伴随入口的追加删除的校验处理的延迟与以往相比,变得非常小。对于范围检索中的入口和规则的关系,对右倾斜近似和左倾斜近似的说明进行了详述。例如,在已有入口为[ai,无穷大][bi+1,无穷大]{i为复数}时,增加新入口[a′,无穷大][b′+1,无穷大]之际(登录之前),在[a′,无穷大]的规则中增加以a′命中的入口的(多个)规则,在[b′+1,无穷大]的规则中增进以b′+1命中的入口的(多个)规则。在已有的入口为[ai,无穷大][bi+1,无穷大]{i为复数}时,删除[aj,无穷大][bj+1,无穷大]之际(删除之后),从[aj,bj]所包含的入口中删除相应规则。
带有数据高速缓冲存储器的分类装置
图52中示出具备数据高速缓冲存储器17的分类装置15的概略构成。数据高速缓冲存储器17设置在构成校验器流水线500的各校验装置50与作为存储器的SDRAM11之间。如图53所示,本例的数据高速缓冲存储器17,是N向配置相联高速缓冲存储器(Nway set associative cache)(N向一般为2向或4向),构成为高速缓冲存储器行的尺寸和SDRAM11的成组传递尺寸即校验表28的尺寸一致。通过将数据高速缓冲存储器17的高速缓冲存储器行17a作为1个表尺寸,从而可以有效地进行分类装置15中的表存取。
另外,通过向数据高速缓冲存储器中导入以行为单位的存储器排他管理机构,从而高速缓冲存储器上或SDRAM上的表数据的排他利用成为可能。为此,适当地构成高速缓冲存储器的行尺寸、行数、组数,配合该构成来分配表也可以,可以提高数据高速缓冲存储器的命中率。而且,通过采用高速缓冲存储器系统17,从而一边利用通用的SDRAM11,一边进行高速分类进一步成为可能。
图54中示出在检索类别及校验阶段中排他地利用数据高速缓冲存储器17的例子。为了提高本例的高速缓冲存储器系统的表28的接通高速缓冲存储器率,将校验表28的各段(例如表A-1与A-2)分配给不同的高速缓冲存储器入口。此外,即使对于不同种的校验(例如表A群和表B群),也分配分别独立的高速缓冲存储器入口。检索类别根据从上游的控制单元或应用程序给出的路由地址31可以简单地识别。另外,由于校验阶段相当于流水线段数,故识别是容易的。而且,即使在校验表的新登录中,在需要确保表的情况下,也分配具有向表段位置所对应的高速缓冲存储器入口映射的SDRAM11的地址的空表。
另外,由于校验表28为树型表的结构,故在低位段表数展宽。因此,希望向低位段表分配多个高速缓冲存储器入口。在图54中,A类型的校验用表A的组和B类型的校验用表B的组存在于SDRAM11上。A类型的校验处理的第一段表A-1确保于被高速缓冲存储在第0高速缓冲存储器入口的地址上。B类型的校验处理的第一段表B-1也同样是成为第0入口的地址。这些因为高速缓冲存储器入口以多组而被多路复用化,故能同时成为接通高速缓冲存储器。
同样,A类型的校验处理的第二段表A-1对应于第1高速缓冲存储器入口1,B类型的校验处理的B-2对应于第2高速缓冲存储器入口。该情况下,不用高速缓冲存储器入口多路复用化多个校验,而是分配分别独立的高速缓冲存储器入口。若高速缓冲存储器为4组,则若为A-2,则为全部16个表,拥有第1高速缓冲存储器入口的4组,最新的4表是接通高速缓冲存储器。由于低位段、尤其是最终段的表A-8及B-8的数量多,故对1段分配多个入口也是有效的。
图55中示出空表管理尾接指令69在存储器11上管理表28的一例。通过使高速缓冲存储器入口按每个检索类别或每个表段分散配置,从而提高接通高速缓冲存储器率。为此,有管理表28侧及管理尾接指令69根据分类装置15的表确保请求,分配适当的表的必要。空表尾接指令69以将空表分类为检索类别(层1)和包含于其中的表段位置(层2)的2层次的个别尾接指令进行管理。在分类装置15的初始化时,按每个高速缓冲存储器入口将表28组化,还根据设定在ROM等中的(或者作为测定参数从外部提供的)、(检索类别数×表段数份的)空表分立尾接指令和高速缓冲存储器入口的对应,将表和尾接指令连上。
图56中示出空表尾接指令管理机构69的响应。空表尾接指令管理机构69根据向检索表树的入口登录时从校验装置50提供的表确保请求(步骤211),将空表取出并响应。此时,由于需要检索类别和表段位置,故作为请求信息,使这些包括在请求信息包内。管理机构69从请求信息的检索类别(层1)·表段位置(层2)对应的尾接指令中取出1个空表(步骤212),作为响应,将其地址(标记信息)返回校验装置50(步骤213)。
在图15所示的存储器共有型分类装置15中,在SDRAM11与校验装置50之间存在数据高速缓冲存储器17的情况下,若数据高速缓冲存储器17的1个误中,则数据高速缓冲存储器17和SDRAM11被该存取占有,不具有其他存取。在图16所示的存储器分离型分类装置15中,在SDRAM11与校验装置50之间存在数据高速缓冲存储器17的情况下,也同样,校验装置50、数据高速缓冲存储器17和SDRAM11被该存取占有。这是因为数据高速缓冲存储器17和SDRAM11同步(series)地连接的缘故。因此,若1个延迟,则其延迟对后段有影响。为了提高流水线的效率,必须使全部状态所花费的时间相同。然而,SDRAM存取难以进入。
与此相对,可以采用请求响应方式的数据高速缓冲存储器17。即,按照输入顺序对检索对象密钥输出校验结果的信息包顺序的维持在以发生到倒退为前提的阶段中是不可能的。因此,通过导入识别信息(ID)32,从而顺序的问题消除。因此,在为了进行某个检索对象密钥21的校验而请求表28时,若为接通高速缓冲存储器,则向校验装置50通知该主旨。校验装置50中断处理,返回等待行列,输入下一检索对象密钥21的信息包33。数据高速缓冲存储器17向SDRAM11进行存取。另一方面,在从校验装置50请求表28时,若为接通高速缓冲存储器,则将表28交到校验装置50,校验装置50进行处理。进而,在校验装置50中,先读取校验标记信息34,交到高速缓冲存储器系统17,将必要的表28预装载的系统是有效的。还有,校验装置50为了进行校验,在将表28装载到缓冲器59的时刻,输入下一校验标记34来确认接通高速缓冲存储器也是有效的。
这样,在本例的高速缓冲存储器系统17中,以检索类别及校验阶段等要素来提高高速缓冲存储器行的排他性,提高接通高速缓冲存储器率。在现有的CPU的数据高速缓冲存储器中,使高速缓冲存储器行尺寸和表尺寸一致的构想由于否定线性地址空间,故无法从现有的高速缓冲存储器系统中得到。再有,将校验表各段分配给不同的高速缓冲存储器入口的构想也是在执行时进行逻辑地址(的索引部分)和表的分配决定,在OS的基础下用CPU执行是极为困难的。在CPU中,在编译时进行逻辑地址和表的范围分配决定,只在执行时从决定过的范围内确保1表份。在该执行时存储器分配支援机构识别的是前端逻辑地址和尺寸。若动态存储器分配重复确保、开放,则在存储器中产生间隙,用无用单元收集程序(garbagecollector)整理这些是前提。因此,没有混入回避索引部分的冲突,提高高速缓冲存储器效率的结构。
与此相对,在这里所说明的校验方法及校验装置中,通过将表位长固定化(上述例子中为4位),从而将表标准化。因此,能够使表尺寸和高速缓冲存储器行尺寸一致。而且,即使以检索类别及校验阶段对高速缓冲存储器17或SDRAM11分配了排他性区域,表之间也可以根据校验标记信息以一览表连接。因此,可以对应于入口的(执行时的)删除、登录,为了提高接通高速缓冲存储器率而设定排他性区域在其他处理中不会成为障碍。
带有履历高速缓冲存储器的分类装置
图57中示出具备履历高速缓冲存储器18的分类装置15的概略构成。通过在校验装置50之前设置履历高速缓冲存储器18,从而可以进一步高速化检索处理,可以缩短检索处理的延迟时间。如上所说明的,本发明的校验方法及校验装置,还有分类装置及检索装置,以简单的硬件也可以对应于位长的增加,校验速度也快,还有利用通用的存储器可以得到充分的处理速度的多个优点。然而,通过将多个校验装置连接为流水线状,或重复使用校验装置来导出校验结果。因此,在以高频率表现相同的检索对象位串的工作中,在与CAM或TCAM相比时有存在等待时间之差别。因此,在等待时间重要的检索中,有使用履历高速缓冲存储器18的优点。
图57中示出的履历高速缓冲存储器系统18,是SDRAM共用型履历高速缓冲存储器系统,是共用放置校验表28的SDRAM11的构成。如图58所示,作为高速缓冲存储算法,可以使用“8位化杂乱信号(hash)+LRU”。因此,本例的高速缓冲存储器系统18备有:杂乱信号表检索器18a;和杂乱信号用密钥一并比较器18b。杂乱信号表18c与校验装置50同样,以4位(16入口)×2段的树结构构成,在校验装置50与履历高速缓冲存储器18之间取得数据高速缓冲存储器利用方法的匹配性。
带有履历SRAM高速缓冲存储器的分类装置
图59中示出具备履历高速缓冲存储器专用的SRAM13的分类装置15的概略构成。是将履历高速缓冲存储器18的存储器专用化的构成,通过与存储了表28的SDRAM11分离,从而防止和校验装置50的竞争,实现校验速度的提高。与此同时,将ZBL-RAM或ZBT-RAM等响应性高的低延迟SRAM占有于履历高速缓冲存储器用,以提高履历高速缓冲存储器18的性能。高速缓冲存储算法虽然可以使用“8位化杂乱信号(hash)+LRU”,但相对于在共用型的情况下,希望具有和校验表的匹配性的存储器块构成,如图60所示,在专用SRAM型的情况下,使存储器位宽或入口的构成和履历高速缓冲存储器配合,可以最佳化。
逻辑运算装置(AND化器)的构成
上述检索装置10或分类装置15备有逻辑运算装置(AND化器)19。该分类装置15由于是通用型的,故可以根据路由标记31,由上游的控制装置或应用程序来设定检索类别。因此,使用1个或多个分类装置15的检索类别不同的检索结果(一维范围的检索结果),通过用AND化器19运算逻辑积,从而可以进行多维范围的检索。在本例的AND化器19中,将一维范围的检索结果作为集合对待,利用矩阵运算,可以以简单的操作得到多维范围的检索结果。
这一例是SPD检索功能8。为了管理1个信息包数据φp,而至少校验表示源IP、目标IP、源端口、目标端口及协议的位串,在检索满足这些全部的规则之际,将表示这些的位串作为检索对象的位串,在各不相同的分类装置15中进行校验。由各分类装置15得到的多个分类结果,根据范围检索而包含多个规则,通过在AND化器19中运算这些分类结果,从而可以抽出管理信息包数据φp的规则。
首先,设集合A由要素{A1,A2,…,An}构成。要素Ai用二进制(0/1)的mbit列“ai1,ai2,…,aim”来表示。同样,设集合B由要素{B1,B2,…,Bn}构成。要素Bi用二进制(0/1)的mbit列“bi1,bi2,…,bim”来表示。
此时,集合A、B的积(AND)集合A&B用矩阵中的A、B的积“A×B”来表示。详细的运算式如下所述。
在这里,∑内展开为布尔乘法运算(*)和布尔加法运算(+)。布尔乘法运算·布尔加法运算的定义为:布尔乘法运算“*”是ENOR(ExclusiveNOR,非异或逻辑和),布尔加法运算“+”是AND。布尔加法运算是(1+1=1 1+0=0 0+1=0 0+0=0)。另外,布尔乘法运算是(1*1=11*0=0 0*1=0 0*0=1)。由于ENOR和比较电路的“=”的逻辑相同,故可以将Ai*Bj理解为用“AND”连接比较等号电路。用矩阵来理解会更明白。
图61中具体示出以2要素表现集合A,以3要素表现集合B,还有以3位表现各要素的例子。左边矩阵A将集合A的要素A1、A2排列在各行。另外,矩阵B将集合B的要素B1、B2排列在各列。右边矩阵Z的1行1列为“a11*b11+a12*b21+a13*b31”,是“A1×B1”。这是根据AND化器19中的布尔运算的定义,意味着A1与B1的位比较运算结果(1=一致/0=不一致)。同样,在列方向看矩阵Z,则第1列为“A1与B1的比较结果”和“A2和B1的比较结果”。同样,矩阵Z的第2列为“A1与B2”和“A2和B2”的比较结果。即,矩阵Z的各列是构成矩阵A整体(集合A)与矩阵B的各列(集合B要素Bi)的比较结果。
因此,矩阵运算的结果是,例如若右边矩阵Z成为如图62所示,则左边矩阵X的{a11 a12 a13}行(集合要素A1)是集合A和集合B的积集合A&B。即,在矩阵Z的各行中,即使是1个也立有1的行对应的矩阵X的行是积集合。在这里,将“即使是1个也立有1的行”换言之,则在矩阵Z的各行中,取得行内的值的逻辑和OR的结果成为1的行对应的矩阵A的行是积集合。
因此,对于矩阵A,将求取逻辑和的要素相乘,若残留即使是1个也立有1的行,则可以得到这些要素的积集合。在图63中示出LSI涌上心头,将矩阵运算一般化。左边的矩阵X在每行中为集合A的要素A1,A2,…。左边的矩阵Y在每列中,在集合B的要素B1,B2,…的基础上,由集合C的要素Ci,…构成。列的数量并未限定。若按每列观察矩阵Z,则成为矩阵X整体和矩阵Y的某一列的运算。矩阵Z最终按每行运算逻辑和OR,决定A*B*C的积集合要素。因此,矩阵Z没有必要保存全部值,在按每列进行布尔矩阵运算的基础上,作为累计结果,进行OR运算也可以。
图64中示出AND化器19的硬件构成的一例。AND化器19具有多个布尔矩阵运算寄存器19a,集合A的各要素设定在各寄存器19a中。进而,对应于各寄存器19a,备有计算寄存器19a的运算结果的累计逻辑和(OR),以存储结果的累加器19b。各累加器19b被初始化为“0”。与该AND化器19相对,作为输入要素19in,若依次输入集合B的要素Bi、集合C的要素Ci等,则在每个输入列进行以下的运算处理。首先,由布尔矩阵运算寄存器19a进行输入列的布尔矩阵运算An×Yi(成为ENOR运算、AND运算)。接着,进行依据布尔矩阵运算的结果和累计器值的OR运算。而且,根据OR运算的结果,更新累加器19b的值,在最终输出后,在累加器19b中,残留1的行对应的集合A的要素群是集合A、B、C…的积(AND)集合即A&B&C。
布尔矩阵运算以AND逻辑关联ENOR逻辑的位比较,若在电路方面看,则各布尔矩阵运算寄存器输出寄存器An和输入值Yi的m位完全一致比较结果,用累加器累积OR该比较结果。虽然也依据于布尔矩阵运算寄存器的个数或位长,但组合ENOR逻辑及AND逻辑来制作电路是极为简单的。而且,由于可以一次比较1个输入值和多个寄存器值,故存在寄存器个数份的并列性。因此,本例的AND化器19不但是简单的构成,而且可以在短时间内导出多维范围检索的结果。或者,在并列寄存器成本高的情况下,即使通过将寄存器减少1个或几个,将寄存器值存储到存储器中,1行1行地对输入值重复进行布尔矩阵运算,也可以实现本例的AND化器19。
通过在存储器中展开寄存器值,从而具有只要存储器允许就可以输入规则的优点。因此,适于利用逻辑积从具有多个规则或要素的集合中缩减要素。但是,由于是重复处理,且也有存储器读取,故处理时间变长。能将布尔矩阵运算处理和存储器读取流水线化,根据该构成,也能隐蔽存储器读取处理时间。
再有,AND化器19是在内部具有累加器19b,另外在寄存器19a中保存最初的集合的要素的结构。因此,若考虑多个多维范围检索的并列执行,则这些是共有资源。因此,谋求任何资源排他占有。另一方面,在分类装置15中,由于可以并列地进行多个检索的各维检索,故例如对于检索系S1、S2的各维A、B,来自分类器的输出如S1A、S2B、S2A、S1B那样,能成为检索系、该检索内的维都没有顺序性的输出。无论是先从分类装置15输出的检索系占有利用AND化器19的方式,还是统合了来自分类装置15的全维输出的检索系先占有利用的方式,无论哪一个,由于分类装置15的输出为非同步·无顺序,故为了高效地进行AND化器19的利用率和作为多维范围检索的输入输出总和,希望AND化器19也并列化。在将AND化器19的寄存器和累加器存储器化的情况下,即使在存储器上的并列化方面也可以得到效果。
另外,在考虑AND化器19的动作时,初始设定“BEGIN(寄存器设定·累加器初始化)”和结束处理“END(从累加器读取)”是必要的,即使在同系内,也没有分类器输入与输出间的顺序性。因此,由于是维A,故进行初始设定处理,因为是维B,故进行结束处理那样,操作无法固定地决定。来自分类装置15的输出在每个检索系中排列,全维的分类器输出完成后,明确地成为控制初始设定和结束处理的方式。结果,由于也存在这些控制,故也希望统合了来自分类装置的输出的检索系排他占有AND化器19的控制方式。
为了AND化器19的并列利用,若要求速度,则通过准备多个AND化器19本身则可以对应。作为次善之策,可以通过进行寄存器19a和累加器19b的存储器保存所引起的存储器上的并列化来进行对应。进而,在导入履历高速缓冲存储器18的情况下,通过对多维范围检索中的履历高速缓冲存储器18的使用方法下功夫,从而可以降低AND化器19的使用率,即使不并列使用AND化器19,也能维持充分的处理速度。例如,若为32位5维的多维范围检索,则采用160位(32位×5)的密钥的履历高速缓冲存储器18,作为履历高速缓冲存储器18的入口数据,在初次检索时,登录使用AND化器19运算过的5维积运算结果。即,也能将分类装置15的最长一致检索的履历、完全一致检索的履历、一维范围一致检索的履历作为入口输入登录在履历高速缓冲存储器18中。然而,在多维范围检索的情况下,并不是各维分立的履历,而是通过将作为整体的多维范围检索的履历作为入口数据来对待,从而可以抑制AND化器19的处理成为关键路径。
在上述中,虽然一边示出几个例子一边对本发明进行详细说明,但在上述例子中,本发明并未被限定。
省略表
以下,对进一步削减校验表28的个数的方法进行说明。在使用了校验装置50的检索中,将入口位列分割为每4位的部分入口并进行表化,根据表化位树进行登录、检索。在该方法中,是某段以后只存在1个入口也生成表,即使在检索中也有追寻表的必要。改善其,若某段以后是1个入口,则导入省略低位表的表结构成为可能。
在图65中示出省略低位表的例子。表B在本来的表构成中虽然存在成为“B-C-D”的1个入口,但由于低位是1个入口,故省略“C-D”,取代其,在表B中记录省略信息(入口的省略了的低位位列、省略段数、省略记号等)。在表E中,直接的下位连接是表F的1个,但作为入口,由于存在以子表分支的G及H的2个入口以上,故无法省略。
收纳在表B的低位的第2入口的登录时,被省略的低位表被展开(生成)。在上图中,在进行应与“B-C-X”关联的入口X的登录之际,由表B检测低位表的省略信息,进行相当于第一入口的表C及表D的生成和相当于第二入口的表X的生成。
在这里,第一入口的表生成和第二入口的表生成并不是顺序地进行,由于表B的下一段是同位列,故也有生成共通表C的方法。由于表C的下一段是不同的位列,故进行分支,到2入口分支的段为止,统合地生成入口,以便生成表D及表X。因此,可以缩短登录入口的处理时间。
另外,在分支的下一段各低位再次成为1个入口。因此,在这里以省略表形式进行表生成。例如,在上图中,表D及表X并不是最下段,若进一步向低位延伸,则在表C分支的下一表D及表X在该低位分别只存在1个入口。因此,低位表被省略。若以省略表的形式生成,则在检索时,校验装置50观察表28的省略记号,检测该表低位被省略的事实。因此,由于校验装置50不读出下一段的表就可以得到最终校验结果,故也可以缩短校验时间。
在压缩表(校验表)28是省略表的情况下,记录4位×n段份的入口省略位列。因此,在校验装置50中,一边移位读取入口位一边进行对应于检索模式的校验成为可能。若为相对于1个入口的完全一致·近似一致的校验,则取代使用上述校验器50的比较部52,安装了专用化的比较器会更有效率。另外,若使用专用比较器,则无需以4位比较×n次来进行,在观察资源的平衡的基础上,希望做成多位的比较器。
在省略表中,由于是检索对象密钥21和1入口的比较,故只要是若为完全一致检索,则能进行完全一致校验,若为范围检索,则能进行可以判定大·同·小的比较校验就可以。另外,不需要比较后的入口选择处理,只要从比较结果判断检索结果即可。若为完全一致,则进行比较,若一致则为检索成功,若不一致则为检索失败。如果是范围一致,则进行比较,若大或一致(右倾斜型)则检索成功,即使在左倾斜型的情况下也同样,若比较为小或一致则为检索成功。
对于删除,删除的结果是检索成为1个入口的部分,必须从该低位开始汇总入口位列,进行再度的省略表化。有表管理的处理时间增加的可能性。然而,如上所述,由于可以缩短校验时间,故优点大。在各段的表28中设置收纳入口数计数器,在从高位向低位追寻删除入口之际,减法运算计数器,检测只成为1个入口的表位置。有将该表变更为省略表,追寻该低位的省略对象入口的表列,一边从最下段向高位合成省略位列(=入口编号),一边向高位上升,汇总为省略表并作为省略位列来记录的方法。删除的表再省略化比上述的更新处理还复杂,表存取也增加(花费时间)。因此,只有登录时进行省略·展开,在删除时不进行再省略化的方式也能存在。因检索频率和登录·删除频率的平衡,登录删除多为恒定以上的情况下,成为展开·省略的重复即表确保·开放的重复,也可能导致分类器整体的性能下降。
校验装置的流水线化
图66中示出请求响应方式的存储器存取和校验装置内部的流水线化的概要。即使在上述中进行过说明,但在校验装置50中,屏蔽数据28a的读取是瓶颈的一个。若没有屏蔽数据28a,则从判断单元54无法执行下游的处理(从VLD到SEL及输出单元55中的处理),可以和屏蔽数据28a的读取并列执行的主要只是比较单元52的处理。因此,考虑将校验器50的内部处理也构成为流水线,表装载(屏蔽读取)期中向高速缓冲存储器(SDRAM)输出存储器读取请求,从存在响应的开始进行VLD以后的处理。为此,在VLD状态之前存在等待矩阵57,在这里进行响应的等待。
在图66所示的例子中,由于在存储器请求~响应之间有CMP状态52,故在等待矩阵57中需要等待机构。在没有数据高速缓冲存储器的情况下,存储器存取为FIFO,等待矩阵57也可以是依据FIFO的等待,但在有数据高速缓冲存储器的情况下,由于位误命中,顺序性消失,需要比CAM等FIFO型更高度的等待机构。即使在没有数据高速缓冲存储器的情况下,也由于存在不伴随存储器存取的模式(直通等),故当然在单纯的FIFO等待型的矩阵中有存在无理的可能性。不伴随存储器存取的情况下也输出伪存取请求,使伪响应返回,若使响应数和FIFO等待数匹配,则有可以用FIFO型对应的可能。
在图67中示出不同的校验装置50的例子。在该例中,使不是伴随存储器存取的分支,伴随存储器存取的将非顺序的响应返回到VLD之前的合流等待矩阵57。另一方面,不伴随存储器存取的,若在等待矩阵57之前的状态57p中存在必要的处理,则不进行,进入合流等待矩阵57。该情况下,合流等待矩阵57是来自单纯的2方向的合流,不需要等待。在该构成中,由于不需要等待机构,故虽然不进行存储器存取和CMP处理52的(空间的)并列化,但根据校验装置50内部的流水线,在时间性并列化上也是有效的。
屏蔽数据的预校验
图68中示出解除依据能先读取屏蔽数据的表化的存储器读取的停顿的例子。为了解除屏蔽数据读取相关的瓶颈,变更表28的构成。图68(a)所示的表28,作为表示该表的入口有无的信息,有屏蔽数据28a,由表示表示下一表的地址的地址表的NextTAG×16入口构成。图68(b)所示的第1型的改良型表281是在下一段的地址“NextTAG×16入口”28b的其次配置了下一段的屏蔽数据“NextTAG×16入口”28p的表构成。另外,图68(c)所示的第2型的改良型表282是下一段的屏蔽数据“NextTAG”28b和下一段的屏蔽数据“NextMask”28p的对登录有16个入口的表构成。由于无论哪一个都不仅包括下一段的校验表28的地址,也包括屏蔽数据28a,故可以预校验下一段的屏蔽数据28a。
但是,即使在改良型的包281及282中,也由于表管理或检索以外的利用,虽然和下一段的屏蔽数据“NextMask”为相同值,但希望记录在下一段的地址“NextTAG”所指的表28b中。因此,期望某个表中存在该表自身的屏蔽数据和下一段的屏蔽数据、2种屏蔽数据。在从表低位开始追寻入口的情况下,在只有高位表存在屏蔽数据时,在该表中向相邻入口的移动成为不可能的缘故。
伴随构成为将下一段的屏蔽数据进行预取(prefetch),在校验装置50之间流动的校验继续信息的数据信息包33中追加屏蔽数据28a。通过该改良,在校验装置50的处理中,作为输入参数(校验继续信息)33,提供在该校验装置50中使用的校验表的屏蔽数据28a。因此,并列执行从需要屏蔽数据28a的判断单元54开始下游的处理和装载单元53的处理成为可能。
在解除起因于读取屏蔽数据28a的停顿(stall)的方面,通过在分类装置15或校验装置50中设置内部SRAM,将各表的屏蔽数据28配置在校验装置50的内部,从而也能提高并列度。
以上所说明的校验方法及校验装置,适于实现一致检索或范围检索IP头等位串之后进行路由选择的数据管理方法。即,校验装置50及具备校验装置50的分类装置15,作为数据管理装置1的检索机构10、8s、7s及6s是优选的。然而,本发明的校验方法及校验装置的适用范围并未限定于这些。
MIN检索·MAX检索
在将具备多个校验装置50的分类器15多种应用的情况下,有MIN检索·MAX检索是方便的。在将旁路作为MAX旁路的情况下,通过以检索对象密钥{11···11}进行右倾斜近似检索,从而可以从登录入口中检索MAX入口。可是,无法检索MIN入口。因此,该情况下,通过以MIN检索模式进行检索来取出MIN入口。并不是分类(sort)那样的检索,而是在登录&取出处理中有可以利用分类器15的场面。此时,存在具备MIN检索及MAX检索双方的优点。
在校验器50中,省略比较单元52的处理,使由判断单元54构成的检索模式来执行也是有效的。例如,从比较单元52的CMPi始终输出“=”(01)。或者,在成为MIN检索·MAX检索时,作为将比较单元52直通并向判断单元54的VLD54a输入“01”的电路也可以。
在该检索模式中,利用VLD54a,只有有效入口成为“01”,在SEL部54b中,若为MAX检索模式,则从比较结果为“01”的入口中选择入口编号最大的入口。另外,若为MIN检索模式,则选择入口编号最小的入口。在右倾斜·左倾斜的Gl·Gr关联部中,通过将入口选择逻辑从“>(11)·<(10)”变更为“=(01)”而可以实现。作为表换乘处理的标记更新部55b按照完全一致检索模式,进行将输出Sr·Sl指定的入口编号作为次表的校验标志信息34的更新。如上所述,可以提供以各段的表来追寻最小入口·最大入口的MIN检索·MAX检索功能。
接着,在将分类装置15适用于分类的情况下,需要分类后的数据读取用的扩展。升序先读取·降序先读取可以用MIN检索·MAX检索来进行。因此,需要升序次读取·降序次读取用的指令。为了实现其,表做成双向链接型表。另外,作为升序先读取(MIN检索或{0···0}近似检索)·降序先读取(MAX检索或{1···1})的输出参数,将最下段表的TAG+入口编号作为读取处理程序(handler)来输出。
再有,设置指令“NEXT·PREV”,若将读取处理程序(最下段表TAG+入口编号)作为输入参数来接受,则输出与下一入口的结果TAG一起更新过的读取处理程序(最下段表TAG+入口编号)。在校验器50内部,首先根据校验TAG(读取处理程序的最下段表TAG)34,由表28读取屏蔽数据28a。根据读取处理程序的入口编号,计算下一入口编号(前入口编号),从表28读出对应的入口的地址“NextTAG”(由于为最下段,故是结果TAG)。如果在下一入口编号(前入口编号)成为其他表的的情况下,使用双向链接的高位链接来追溯1段高位表,则移向在此相邻的入口。在1段高位也只有自入口的情况下,进一步向高位追溯。若移向在高位表相邻的入口,则必须再次下降到最下段,但这是根据MIN检索·MAX检索模式来进行的。
数据库检索
该分类装置15也可以适用于关系数据库(RDB)。在利用二进制位树的检索在数据库中相当于索引。因此,若将多个区域进行二进制位树登录,则将这些作为密钥可以检索数据库。检索种类无论是最长一致、范围一致还是完全一致都可以对应。在该处理中,希望高速地进行检索多个区域后的AND处理(取得积集合的处理)。即,在可以分别检索“A0<身高<A1”和“B0<体重<B1”时,希望可以高速地得到“A0<身高<A1”且“B0<体重<B1”的集合。若预先固定地决定区域,则生成依据于该区域群的复合(多维)索引是一般的。在无法固定地决定对象区域,无法生成复合索引(身高和体重的二维索引)的情况下,在“CPU+OS”的检索系统中,也许以下一方法运算逻辑积。即,若将记录名设为Ri,则求取“A0<身长<A1”的集合{R1,…Rm}(个数为m个)和“B0<体重<B1”的集合{R′1,…R′m}(个数为m′个),将2个集合的要素以循环方式进行比较,保留属于双方的要素。其成为AND集合。该情况下,比较计算成为m×m′次。
与此相对,若使用分类装置,则能进行下面的操作。将集合{R1,…Rm}登录在分类器15中,在校验集合{R′1,…R′m}时,若命中于以前面的集合登录的要素,则其成为AND集合的要素。该情况下,比较计算为m+m′次,处理速度提高。
该分类装置不仅进行积集合(AND集合)的运算,也进行和集合(OR集合)的运算,也可以唯一化,另外也可以简单地分类。若在“CPU+OS”的检索系统中,将临时记号添加在数据库中也可以,则可以用以下的方法运算逻辑积(AND)。每次检索集合{R1,…Rm}的各要素时都添加记号。每次检索{R′1,…R′m}时都提高前面具有记号的要素。该情况下,虽然比较计算为m+m′次,但引起无需的记号的处理或对磁盘本身的数据库的存取等问题,过于花费时间。位图法虽然可以高速计算逻辑积(AND化),但在规则数上存在制约等,通用化困难。
与此相对,取得利用上述分类装置的AND集合的方法也可以在包滤波等多个规则集合的AND集合化中使用。在本分类器15中,例如并列驱动对应于5个ID(相对于5种位流的检索)的5个实例,对命中于每个ID的规则添加记号。已经确认了4个记号的实例,将其通知给AND实例。每次通知AND实例时和当前的最优先规则进行比较并更新。在5个实例全部结束后决定位当前的最优先规则。
非线性存储器寻址
根据本发明的分类装置能实现树结构型的非线性存储器寻址。通过将地址作为检索对象密钥,将本发明的分类器装入存储器管理机构内,从而可以实现从高位层观察可进行灵活的寻址的存储器空间。这与现有的线性地址空间存储器相对,无非是存储器管理机构将高位层明确地进行结构化管理的部分隐蔽凝缩化(capsule)将存储器抽象化目标化。
再有,与以往用CPU的代码进行的存储器的目标化(approach)途径不同,成为硬件库的途径。因此,可以高速且有效地实现目标化。特别是,在检索用的存储器利用的情况下,分类器的寻址(=校验)可以有效地利用。
图69中示出其中一例。接收时,经由接口(I/F)23接收线性地址(逻辑地址)的写入数据(接收数据)239。分类器15将接收数据239写入SDRAM11中。分类器15由于具有地址变换功能232,故从逻辑地址(线性地址)变换到实际地址(具有一览表或树等任何结构的非线性地址),写入SDRAM11中。另一方面,通过I/F230发送数据的一方,可以以线性地址写入。发送时也同样。从I/F230以线性地址写入时,通过经由分类器15,从而进行地址变换。由此,从线性地址向实际地址变换,可以对应于来自非线性的地址的连续读取。
CPU235也可以利用分类器15的寻址。由于CPU235不是数据流动作,故只在分类器15提供的寻址属下的存储器中代码执行等发生故障。因此,作为代码积蓄或数据加工用而独自具有存储器236,分类器15属下的存储器11作为信息包存储器利用。在考虑了路由器等的情况下,CPU235作为辅助分类器15的TCP/IP处理的部件,替其承担路由选择入口处理或滤波规则管理等硬件处理中无法顾及的处理。即,分类器15担当主功能,CPU作为辅助而动作。
表查阅驱动处理器
分类装置15也能适用于依据状态迁移的表查阅驱动的处理器。图70示出单纯状态迁移,若检索KEY(i),用其结果TAG(规则)读取KEY(i+1),则可以进行“KEY(1)-KEY(2)-…KEY(j)-KEY(1)”那样的单纯环型的状态迁移。
图71中示出事件联动型单纯状态迁移,事件(i)成为触发器,向KEY(i+1)迁移,在事件(i)以外返回到KEY(i)。KEY(i)在事件(i)等待矩阵中具有事件(i)。若事件(i)到来,则将事件(i)串联连接KEY(i)并进行检索。事件(i)为1位,正确为“1”,错误为“0”,若将KEY(i)设为“101…01”,则在“101…011”命中,在“101…010”成为误命中。在命中规则中写入事件(i)等待矩阵地址、KEY(i+1)。在误命中规则中写入事件(i)等待矩阵地址、KEY(i),并返回。再有,本发明的分类装置也能适用于包含条件分歧的状态迁移。
进一步详细地说明。在本说明书中说明的分类器中的检索,是指“以检索对象密钥为输入,将该密钥和用标记(路由标记)表示的表树的入口进行校验,输出结果(结果标记)”。成为自动机的基础的状态迁移中的检索可以定义为“以来自当前状态的迁移条件评价外部输入,以决定迁移对象”。在这里,若设为“外部输入=检索对象密钥”、“当前状态=当前标记”、“迁移条件=校验逻辑和标记所指的表的入口记载”,则可以定义为“用来自当前状态(当前标记)的迁移条件(校验逻辑和标记所指的表入口记载)来评价外部输入(密钥),以决定迁移对象”,根据本发明,可以实现自动机。
在上述说明中,分类器或校验器进行的检索,虽然作为从被组织化为树状的结构(表)中的高位向低位的单向迁移而进行了说明,但也可以如状态迁移那样,是被组织化为网络状的结构中的双向迁移。这些的不同可以说只是比较等级不同而已。即,分类器的检索是树的单向迁移是微观的观点,状态迁移是双向网络是宏观的观点。在以所谓的1个检索对象密钥相对的动作的相同等级来观察的情况下,校验器及分类装置,根据预定的规则(入口记载)评价检索对象密钥,输出结果。因此,在状态迁移中,只要将某状态中的迁移条件根据用分类装置进行检索时的检索的树状入口来表现即可。换言之,将状态迁移视为检索的连锁,根据利用分类器检索来实现的每个状态的检索的处理程序,可以将分类器应用于状态迁移机械或自动机中。
图72(a)中示出利用使用了分类器的检索来实现状态迁移的例子。假设以条件“a”从状态S1向状态S2迁移,以条件“b”向状态S3迁移的状态迁移机械。如图72(b)所示,可以生成将状态S1中的状态迁移条件“a”及“b”作为登录位模式(入口)的状态S1的登录模式表(S1表)321。因此,如图72(c)所示,从S1表321生成形成校验用的二进制位树324的多个部分模式表325。而且,根据分类装置15,将在作为当前状态的状态S1中得到的状态迁移评价源(条件)作为检索对象密钥,进行上述校验处理,利用一致检索,可以输出迁移对象的状态。
图73(a)中示出状态迁移为网络状的简单示例。在该例中,在上述的基础上,以条件“c”从状态S2向状态S1移行,以条件“d”从状态S2向状态S3移行。另外,以条件“e”从状态S3向状态S1移行,以条件“f”从状态S3向状态S2移行。如图73(b)所示,可以生成将状态S2中的状态迁移条件“c”及“d”作为入口的状态S2的登录模式表(S2表)322和将状态S3中的状态迁移条件“e”及“f”作为入口的状态S3的登录模式表(S3表)323。在向状态S2移行时,将该状态中的评价源(条件)作为检索对象密钥,使用从S2表322生成的部分表325,由分类装置15进行校验处理。在向状态S3移行时,以该状态中的评价源(条件)作为检索对象密钥,使用从S3表323生成的部分表325,由分类装置15进行校验处理。这样,在移行目的地,通过更换校验时使用的部分表325,从而即使对于网络状的状态迁移也可以适用本发明。部分表325的更换如所说明的那样:通过指定表示部分表325的最高位的部分表地址的路由标记而成为可能。
图74中示出使用了分类装置15的数据处理装置300的一例。该数据处理装置300备有:根据状态来决定处理内容的数据处理电路301;存储各状态的数据处理电路301的处理内容(action)310的RAM302;和成为数据处理电路301的状态迁移发动机的分类装置15。在RAM302中存储有:根据状态而用于分类装置15的检索中的多种表树324;和构成其的部分表325。该数据处理装置300是作为动作执行部的数据处理电路301的状态迁移的状态迁移机械,分类装置15将从数据处理电路301供给的密钥(检索密钥)303作为检索对象的位串,根据路由标记(检索表树TAG)304检索存储在RAM302中的表树324,输出结果标记305。在该状态迁移机械300中,检索表树TAG304是迁移条件表树324的路由标记,结果标记305是次状态标记。另外,检索密钥303是成为状态迁移的评价源的数据。因此,在该数据处理装置300中,数据处理电路也作为对分类装置15供给检索密钥303的检索对象供给机构发挥作用。
所谓次状态标记305是指伴随向该状态的迁移而应执行的动作记载310和从该状态向其他状态的迁移条件记载的标记。通过安装,也能将动作记载或条件记载用与次状态标记305关联决定的间接指针来表示。在动作记载310中,也指示从数据处理电路301内部或外部状态取入成为迁移条件的评价源的检索密钥303的过程。另外,也能将表示构成迁移条件表树324的校验表的最高位的路由标记304的信息放入动作记载310中,以便根据次状态标记305,决定检索下一迁移条件的迁移条件表树324。
因此,该数据处理装置300通过在分类装置15中,利用使用了校验装置50的多阶段校验方法,将成为状态迁移评价源的数据作为检索对象的位串,将表示多个状态迁移条件的数据作为多个登录位模式进行校验(校验工序),根据该校验结果来迁移数据处理电路301的状态(迁移工序)的控制方法来进行控制。因此,在装载于分类装置15的各校验装置50中,将上述所说明的校验方法中的当前阶段作为当前状态而进行校验处理。而且,输出表示当前状态的下一状态的校验继续信息。在分类装置15中,为了检索下一状态,可以花费1个校验结果,也可以花费多个校验阶段。
也能将动作记载310捕捉为代码,将密钥303捕捉为分歧目的地地址,将分类装置15的迁移条件评价捕捉为分歧目的地存储器地址变换器。因此,数据处理装置300作为状态迁移库的处理器发挥作用。在通常的处理器中,在CPU等状态迁移硬件(图灵机)之上用软件代码,作为应用程序来实现状态迁移机械。该数据处理装置300使用分类装置15,可以直接地实现状态迁移机械。
再有,通过该状态迁移机械300,可以实现有限状态自动机(FA)。有限状态自动机是根据输入改变内部状态,作为结果输出任何响应的机械。在该数据处理装置300中,通过变更路由标记304,或根据动作记载310的命令组,数据处理电路301改写RAM302的内容,从而可以改变迁移条件表树324(即校验表)。因此,数据处理装置300作为以状态的迁移和每个状态的动作来定义内部状态的变更的状态迁移机械而可以实现。
在有限状态自动机中,存在决定性FA(DFA)和非决定性FA(NFA)。决定性FA是状态迁移一义地决定的有限状态自动机,非决定性FA是不能一义地决定迁移状态的有限状态自动机。在理论上,虽然NFA可以变换为DFA,但对于将NFA作为NFA、作为硬件可以实现的事实,在状态空间的节约等方面是有意义的。“无法一义地决定迁移状态”是指“状态并立”的事实。因此,若利用数据处理装置300构筑并列数据流型系统,则用该状态机械能够实现NFA。
在通常的CPU中,由于通过倒退等以逐次方式来解决状态的并列,故效率不好。然而,在并列数据流型分类器自动机中,则可以实现有效的DFA。
向QoS的适用
可以将分类装置15适用于向等级分层结构数据的QoS。因此,即使在图1所示的路由选择装置1的QoS功能7中也可以采用。在将用于IP路由器1中的信息包φp的QoS的等级检索,以IP地址为检索对象位串来进行的情况下,使用范围检索,可以将向检索表7m登录的入口作为反映了等级结构的入口。
在图75(a)中示出等级结构的一例。对于该等级结构350,可以形成图75(b)所示的校验用二进制位树354。该二进制位树354,作为登录位串而登录有右倾斜型范围检索用入口。因此,将图75(b)中用虚线表示的IP地址35作为检索对象位串,根据使用了分类装置15的范围检索,可以得到该IP地址355相应的最低位等级的入口。在该例中,IP地址355分类为等级1.1。
用分类装置15的检索分类最低位等级时使用的等级树350,作为形式,也是表型的树结构。因此,如图76所示,能将等级树350的表和检索树354的部分表相关联。因此,也能在分类装置15中进行表校验的校验器50中追加进行相对等级树350的处理的硬件。例如,能追加为了自等级的分配象征(token)消费、象征不足情况下的从高位等级借入等而探索高位·低位树的功能,可以将等级的象征管理硬件化。
该管理虽然是复杂的,但可以适用上述的状态迁移(自动机)处理器。通过使QoS用的检索或象征管理用的树探索等成为作为处理器的寻址,从而实现数据结构本身和向数据的处理代码成为一体的体系结构。
如图77所示,在通常的CPU360中,存储在存储器361中的处理代码选择用检索表362的检索处理,根据CPU代码363,可以作为软件(应用程序)来执行。因此,用于检索检索表的检索代码(检索处理的软件)363和处理代码(数据处理用的软件)364是分离的。因此,CPU360成为:检索代码363的装载(i阶段)、依据检索代码363的执行(ii阶段)、上下文切换(数据处理代码364的装载)(iii阶段)、处理代码364的执行(iv阶段)。处理代码364的地址解决通过软件式检索校验用的检索密钥空间来进行,处理代码364的寻址(代码空间)和检索密钥的寻址(检索密钥空间)不一致。
与此相对,如图78所示,在使用了分类装置15的处理器300中,针对检索表(表结构或数据空间)362,以校验器50的硬件检索,通过得到对应于检索密钥的处理代码364的地址,从而从检索密钥直接(硬件化)解决处理代码364的地址。而且,可以由处理电路301直接执行通过该地址解决而得到的处理代码364。因此,不需要上下文切换,可以使代码空间和检索密钥空间一致。
用通常的CPU无法象使用了分类装置的处理器那样进行直接的地址解决,这是因为CPU是基于线性寻址的图灵机,在该图灵机上必须软件化地(假想)安装状态迁移机械或自动机的缘故。与此相对,若使用分类装置,则连结检索处理和地址解决,能直接地实现状态迁移机械或自动机,可以实现统合了数据空间和代码空间的有效的系统。另外,在该延长线上统合了数据和相对该数据的处理手续的目标指向处理器等系统也能够实现。
(工业上的可利用性)
本发明涉及的校验方法及装置,可以从完全一致检索、最长一致检索顾及到多维范围一致检索,具备了多个校验装置的分类装置可以用于包滤波·SPD(Security Policy Database)检索、状态全校验等规则检索中。进而,通过导入数据高速缓冲存储器、履历高速缓冲存储器,从而能提高校验速度,可以适用于伴随多种多样的检索的处理。作为检索以外的应用功能,可以列举出集合提取、集合运算、校正(分类)、唯一化、存储器寻址、状态迁移机械、智能联想机械、向自动机的应用(语言理论·自动机理论)、从大规模的数据库高速发现有用的规则或模式的数据采掘等,应用范围并未限定于这些。
Claims (51)
1.一种校验方法,是其中具有将检索对象的位串分为多位的部分对象位串,以多阶段和预先登录的多个登录位模式进行校验的过程的位串的校验方法,其特征在于,作为所述多阶段所包含的1个校验阶段的当前阶段具有:
从所述检索对象位串中选择所述当前阶段的所述部分对象位串,并和所述当前阶段的部分对象位串能取得的全部值进行校验的全校验工序;
将作为表示所述多个登录位模式的各部分登录位模式用的模式表、由从先于所述当前阶段得到的校验继续信息决定的所述当前阶段的模式表,与所述全校验工序前后或并列地由存储器进行装载的模式装载工序;
由所述全校验工序的结果和所述当前阶段的模式表,得到至少表示与所述当前阶段的部分对象位串一致的所述当前阶段的所述部分登录位模式的有无的校验结果的判断工序;和
根据所述校验结果,从所述当前阶段的模式表所对应的地址表输出包括所述当前阶段的下一阶段的所述模式表的地址的所述校验继续信息的输出工序。
2.根据权利要求1所述的校验方法,其中,所述模式表是由表示所述部分登录位模式的有效无效的位标志构成的屏蔽数据。
3.根据权利要求1所述的校验方法,其中,在所述输出工序中,输出包含所述一致的当前阶段的部分登录位模式接着的所述下一阶段的所述模式表的地址的所述校验继续信息。
4.根据权利要求1所述的校验方法,其中,
在所述判断工序中,得到包含值最接近所述部分对象位串的最大或最小的所述当前阶段的部分登录位模式的有无的所述校验结果;
在所述输出工序中,输出包含所述最大或最小的当前阶段的部分登录位模式接着的所述下一阶段的范围检索的模式表的地址的所述校验继续信息。
5.根据权利要求4所述的校验方法,其中,
具有候补地址存储工序,其在有所述一致的当前阶段的部分登录位模式,还有所述最大或最小的当前阶段的部分登录位模式时,将所述范围检索的模式表的地址作为候补地址进行存储;
在所述一致的当前阶段的部分登录位模式及所述最大或最小的当前阶段的部分登录位模式没有时,在所述输出工序中输出包含所述候补地址的所述校验继续信息。
6.根据权利要求4所述的校验方法,其中,
具有在提供包含所述范围检索的模式表的地址的所述校验继续信息时,将所述全校验工序及判断工序旁路的工序;
在所述输出工序中,从所述范围检索的模式表所对应的所述地址表中,输出包含该模式表所示的最大或最小的部分登录位模式接着的下一阶段的模式表的地址的所述校验继续信息。
7.根据权利要求4所述的校验方法,其中,
所述模式表具有旁路数据,其表示对应该模式表所示的最大或最小的部分登录位模式而决定的最大或最小的所述登录位模式;
具有在提供包含所述范围检索的模式表的地址的所述校验继续信息时,将所述全校验工序、所述模式装载工序及所述判断工序进行旁路的工序;
在所述输出工序中,输出包含所述范围检索的模式表对应的所述旁路数据的最终校验信息,并结束所述检索对象位串的校验。
8.根据权利要求1所述的校验方法,其中,具有通过更新所述模式表及所述地址表,从而追加或删除所述登录位模式的更新工序。
9.根据权利要求1所述的校验方法,其中,并列进行所述全校验工序和所述模式装载工序。
10.根据权利要求1所述的校验方法,其中,以流水线方式执行多个所述校验阶段。
11.根据权利要求10所述的校验方法,其中,具有通过更新各所述校验阶段的包括所述模式表及所述地址表的校验表,从而追加或删除所述登录位模式的更新工序,以流水线方式和所述校验阶段并列执行。
12.根据权利要求11所述的校验方法,其中,
所述校验表具有旁路数据,其表示对应所述模式表所示的最大或最小的部分登录位模式而决定的最大或最小的所述登录位模式;
在所述更新工序中,从高位的所述校验阶段的所述校验表开始更新低位的所述校验阶段的所述校验表,此时,有发生所述旁路数据更新的可能性的所述校验阶段的所述校验表的更新,等待所述低位的所述校验阶段的所述校验表的更新后进行。
13.根据权利要求11所述的校验方法,其中,
所述校验表具有旁路数据,其表示对应所述模式表所示的最大或最小的部分登录位模式而决定的最大或最小的所述登录位模式;
在所述更新工序中具有:
从高位的所述校验阶段的所述校验表开始更新低位的所述校验阶段的所述校验表的工序;和
在由于所述低位的校验表的更新而导致所述高位的校验表的所述旁路数据的更新发生的情况下,通过双向链接进行所述高位的校验表的更新的工序。
14.根据权利要求1所述的校验方法,其中,在多个所述校验阶段之间,将包含所述校验继续信息的数据信息包化并进行传递。
15.一种分类方法,其特征在于,具有具备了多个权利要求4所述的校验阶段的分类过程,所述登录位模式表示包含多个分类结果的范围。
16.根据权利要求15所述的分类方法,其中,具有:
多个所述分类过程;和
对由所述多个分类过程得到的多个所述范围所包含的所述多个分类结果的逻辑积进行运算,得到最终的分类结果的逻辑运算过程。
17.根据权利要求16所述的分类方法,其中,在所述逻辑运算过程中,对所述多个分类结果的逻辑积进行矩阵运算,得到所述最终分类结果。
18.一种数据管理方法,其特征在于,具有:
通过权利要求15所述的分类方法,将管理包含IP地址、端口编号及协议的至少任一个的信息包用的位串作为所述检索对象的位串,校验所述检索对象位串所属的所述范围的工序;和
根据所述检索对象位串所属的所述范围的所述分类结果,管理具备所述检索对象位串的所述信息包的工序。
19.一种数据管理方法,其特征在于,具有:
通过权利要求1所述的校验方法,对所述检索对象的位串进行校验的工序;和
根据该校验工序的校验结果,管理具备所述检索对象位串的数据的工序。
20.一种数据处理装置的控制方法,其特征在于,具有:
通过权利要求1所述的校验方法,将成为状态迁移的评价源的数据作为所述检索对象位串,将表示多个状态迁移条件的数据作为所述多个登录位模式进行校验的工序;和
根据所述校验工序的校验结果,迁移数据处理电路的状态的工序。
21.一种校验装置,其中将检索对象的位串分为多位的部分对象位串,为了以多阶段和预先登录的多个登录位模式进行校验,执行所述多阶段所包含的至少一个阶段,其特征在于,具有:
从所述检索对象位串中选择所述多阶段之一的当前阶段的所述部分对象位串,并和该部分对象位串能取得的全部值进行校验的全校验机构;
将作为表示所述多个登录位模式的各部分登录位模式用的模式表、由从先于所述当前阶段得到的校验继续信息决定的所述当前阶段的模式表,由存储器进行装载的模式装载机构;
由所述全校验机构的结果和所述当前阶段的模式表,得到至少表示与所述当前阶段的部分对象位串一致的所述当前阶段的所述部分登录位模式的有无的校验结果的判断机构;和
根据所述校验结果,从所述当前阶段的模式表所对应的地址表输出包括所述当前阶段的下一阶段的所述模式表的地址的所述校验继续信息的输出机构。
22.根据权利要求21所述的校验装置,其中,所述模式表是由表示所述部分登录位模式的有效无效的位标志构成的屏蔽数据。
23.根据权利要求21所述的校验装置,其中,
所述输出机构输出包含所述一致的当前阶段的部分登录位模式接着的所述下一阶段的所述模式表的地址的所述校验继续信息。
24.根据权利要求21所述的校验装置,其中,
所述判断机构输出包含值最接近所述部分对象位串的最大或最小的所述当前阶段的部分登录位模式的有无的所述校验结果;
所述输出机构输出包含所述最大或最小的当前阶段的部分登录位模式接着的所述下一阶段的范围检索的模式表的地址的所述校验继续信息。
25.根据权利要求24所述校验装置,其中,
所述输出机构,进一步有所述一致的部分登录位模式,当所述最大或最小的当前阶段的部分登录位模式时,将所述范围检索的模式表的地址作为候补地址输出;并且
当在所述一致的当前阶段的部分登录位模式及所述最大或最小的当前阶段的部分登录位模式没有时,输出包含所述候补地址的所述校验继续信息。
26.根据权利要求24所述的校验装置,其中,所述输出机构在提供了包含所述范围检索的模式表的地址的所述校验继续信息时,从所述范围检索的模式表所对应的所述地址表中,输出包含该模式表所示的最大或最小的部分登录位模式接着的下一阶段的模式表的地址的所述校验继续信息。
27.根据权利要求24所述的校验装置,其中,
所述模式表具有旁路数据,其表示对应该模式表所示的最大或最小的部分登录位模式而决定的最大或最小的所述登录位模式;
所述输出机构,在提供了包含所述范围检索的模式表的地址的所述校验信息时,将所述范围检索的模式表对应的所述旁路数据作为最终校验信息输出。
28.根据权利要求21所述的校验装置,其中,具有通过更新所述模式表及所述地址表,从而追加或删除所述登录位模式的更新机构。
29.根据权利要求21所述的校验装置,其中,所述全校验机构和所述模式装载机构并列动作。
30.一种分类装置,其中具有多个权利要求21所述的校验装置。
31.根据权利要求30所述的分类装置,其中,所述多个校验装置以流水线连接。
32.根据权利要求30所述的分类装置,其中,在多个所述校验装置之间,将包含所述校验继续信息的数据信息包化并进行传递。
33.根据权利要求30所述的分类装置,其中,具有对所述存储器输入输出数据的高速缓冲存储装置。
34.根据权利要求33所述的分类装置,其中,所述存储器中存储了包含所述模式表及所述地址表的校验表,所述高速缓冲存储装置的高速缓冲存储器行的尺寸和所述校验表的尺寸相同。
35.根据权利要求34所述的分类装置,其中,
具有接收指定最初的校验表的检索类别信息的机构;
所述高速缓冲存储装置备有管理机构,其以各检索类别及所述校验阶段为单位分配所述高速缓冲存储器行,以所述检索类别及校验阶段为单位管理所述高速缓冲存储器行。
36.根据权利要求34所述的分类装置,其中,
具有接收指定最初的校验表的检索类别信息的机构;
在所述存储器中,在以各检索类别及所述校验阶段为单位分配的分立地址区域中存储所述校验表;
所述高速缓冲存储装置的所述高速缓冲存储器行,以所述分立地址区域单位进行分割。
37.根据权利要求33所述的分类装置,其中,所述高速缓冲存储装置,若校验表为接通高速缓冲存储器,则向所述校验装置通知该主旨,中断该校验装置的处理并返回等待矩阵。
38.根据权利要求30所述的分类装置,其中,具有履历高速缓冲存储装置,其是存储了该分类装置的分类结果的履历高速缓冲存储装置,在向所述校验装置供给所述检索对象位串之前,比较该分类装置的分类结果和所述检索对象的位串。
39.一种检索装置,其特征在于,具有权利要求30所述的分类装置,所述登录位模式表示包含多个分类结果的范围,其输出所述检索对象位串所属的分类结果。
40.根据权利要求39所述的检索装置,其中,具有:
多个所述分类装置;和
对由所述多个分类装置得到的多个所述范围所包含的多个分类结果的逻辑积进行运算,以得到最终的分类结果的逻辑运算装置。
41.根据权利要求40所述的检索装置,其中,所述逻辑运算装置对所述多个分类结果的逻辑积进行矩阵运算,以得到最终的分类结果。
42.根据权利要求39所述的检索装置,其中,具有对所述存储器输入输出数据的高速缓冲存储装置。
43.根据权利要求39所述的检索装置,其中,具有履历高速缓冲存储装置,其是存储了该检索装置的检索结果的履历高速缓冲存储装置,在向所述校验装置供给所述检索对象位串之前,比较该检索装置的检索结果和所述检索对象的位串。
44.一种数据管理装置,其中,具有权利要求40所述的检索装置;
并具有:
将管理包含IP地址、端口编号及协议的至少任一个的信息包用的位串作为所述检索对象的位串,向所述检索装置供给的机构;和
根据从所述检索装置输出的分类结果,管理具备所述检索对象位串的所述信息包的机构。
45.一种数据管理装置,其特征在于,具有:
权利要求3所述的分类装置;和
根据所述分类装置的输出,来管理具备所述检索对象位串的数据的机构。
46.一种数据处理装置,其特征在于,
具有权利要求30所述的分类装置,所述多个登录位模式是表示多个状态迁移条件的数据;
并具有:
将成为状态迁移的评价源的数据作为所述检索对象位串,向所述分类装置供给的检索对象供给机构;和
根据所述分类装置的输出,迁移状态的数据处理电路。
47.根据权利要求46所述的数据处理装置,其中,
在所述存储器中存储包含所述模式表及所述地址表的校验表;
由所述分类装置的输出或所述检索对象供给机构,指定向最初的所述校验装置供给的所述校验表。
48.根据权利要求47所述的数据处理装置,其中,
在所述存储器中存储包含所述模式表及所述地址表的校验表;
由所述数据处理电路改写所述存储器的校验表。
49.一种数据处理装置,其中具有:将成为状态迁移的评价源的当前状态的检索对象位串,和表示预先登录的多个状态迁移条件的登录位模式进行校验的校验装置;
对所述校验装置供给所述检索对象位串的检索对象供给机构;和
根据所述校验装置的输出来迁移状态的数据处理电路;其特征在于,包括有:
和所述当前状态的检索对象位串能取得的全部值进行校验的全校验机构;
将作为表示所述多个登录位模式用的模式表、由从先行状态得到的校验继续信息决定的当前状态的模式表,由存储器进行装载的模式装载机构;
由所述全校验机构的结果和所述当前状态的模式表,输出至少表示与所述当前状态的检索对象位串一致的所述当前状态的登录位模式的有无的校验结果的判断机构;和
根据所述校验结果,从所述当前状态的模式表所对应的地址表输出包括所述当前状态的下一状态的所述模式表的地址的所述校验继续信息的输出机构。
50.根据权利要求49所述的数据处理装置,其中,
在所述存储器中存储包含所述模式表及所述地址表的校验表;
由所述检索对象供给机构指定向所述校验装置供给的所述校验表。
51.根据权利要求49所述的数据处理装置,其中,
在所述存储器中存储包含所述模式表及所述地址表的校验表;
由所述数据处理电路改写所述存储器的校验表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP291708/2002 | 2002-10-03 | ||
JP2002291708 | 2002-10-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1703880A true CN1703880A (zh) | 2005-11-30 |
CN1324861C CN1324861C (zh) | 2007-07-04 |
Family
ID=32063896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801009592A Expired - Fee Related CN1324861C (zh) | 2002-10-03 | 2003-10-03 | 位串的校验方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060059196A1 (zh) |
EP (1) | EP1548998A4 (zh) |
JP (1) | JP4091604B2 (zh) |
CN (1) | CN1324861C (zh) |
AU (1) | AU2003268754A1 (zh) |
WO (1) | WO2004032435A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102067528A (zh) * | 2008-06-19 | 2011-05-18 | 马维尔国际贸易有限公司 | 用于搜索的级联存储器表 |
CN102736888A (zh) * | 2012-07-02 | 2012-10-17 | 江汉大学 | 与数据流同步的数据检索电路 |
CN112119380A (zh) * | 2018-05-18 | 2020-12-22 | 微软技术许可有限责任公司 | 带有旁路的奇偶校验记录 |
CN117609112A (zh) * | 2023-11-30 | 2024-02-27 | 中科驭数(北京)科技有限公司 | 数据流处理方法、装置及多核处理器 |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949732B1 (en) | 2003-05-12 | 2011-05-24 | Sourcefire, Inc. | Systems and methods for determining characteristics of a network and enforcing policy |
US7685254B2 (en) * | 2003-06-10 | 2010-03-23 | Pandya Ashish A | Runtime adaptable search processor |
US7346059B1 (en) * | 2003-09-08 | 2008-03-18 | Cisco Technology, Inc. | Header range check hash circuit |
US7308505B2 (en) * | 2003-12-17 | 2007-12-11 | International Business Machines Corporation | Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables |
US20050171937A1 (en) * | 2004-02-02 | 2005-08-04 | Hughes Martin W. | Memory efficient hashing algorithm |
KR100828038B1 (ko) * | 2004-04-19 | 2008-05-08 | 더 리전트 오브 더 유니버시티 오브 캘리포니아 | 딥 패킷 필터링을 위한 프로그램 가능 하드웨어 |
US7305383B1 (en) * | 2004-06-10 | 2007-12-04 | Cisco Technology, Inc. | Processing system using bitmap array to compress deterministic finite automation state table allowing direct indexing |
US7539681B2 (en) * | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
US20070088717A1 (en) * | 2005-10-13 | 2007-04-19 | International Business Machines Corporation | Back-tracking decision tree classifier for large reference data set |
JP4878178B2 (ja) * | 2006-02-28 | 2012-02-15 | 株式会社日立製作所 | データ処理方法および装置並びにその処理プログラム |
US7526611B2 (en) * | 2006-03-22 | 2009-04-28 | International Business Machines Corporation | Unified processor cache model in multiprocessor system |
US7779016B2 (en) * | 2006-09-14 | 2010-08-17 | International Business Machines Corporation | Parallel execution of operations for a partitioned binary radix tree on a parallel computer |
US8032899B2 (en) | 2006-10-26 | 2011-10-04 | International Business Machines Corporation | Providing policy-based operating system services in a hypervisor on a computing system |
US8713582B2 (en) * | 2006-10-26 | 2014-04-29 | International Business Machines Corporation | Providing policy-based operating system services in an operating system on a computing system |
US8656448B2 (en) * | 2006-10-26 | 2014-02-18 | International Business Machines Corporation | Providing policy-based application services to an application running on a computing system |
US7643505B1 (en) * | 2006-11-30 | 2010-01-05 | Qlogic, Corporation | Method and system for real time compression and decompression |
JP4791347B2 (ja) * | 2006-12-29 | 2011-10-12 | 富士通株式会社 | エントリの圧縮伸長方法およびエントリの圧縮伸長を行う装置 |
US7676444B1 (en) * | 2007-01-18 | 2010-03-09 | Netlogic Microsystems, Inc. | Iterative compare operations using next success size bitmap |
JP5059461B2 (ja) * | 2007-03-28 | 2012-10-24 | 株式会社ノディック | データ駆動型データバッファ装置及びデータバッファリング方法 |
JP5115922B2 (ja) * | 2007-03-28 | 2013-01-09 | 株式会社ノディック | ツリー型分流路及び合流路を備えたデータ駆動型処理装置用通信路装置及びデータ駆動型処理装置用パケット転送方式 |
US20080288756A1 (en) * | 2007-05-18 | 2008-11-20 | Johnson Timothy J | "or" bit matrix multiply vector instruction |
US8954484B2 (en) | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
US7958274B2 (en) * | 2007-06-18 | 2011-06-07 | International Business Machines Corporation | Heuristic status polling |
US8296430B2 (en) | 2007-06-18 | 2012-10-23 | International Business Machines Corporation | Administering an epoch initiated for remote memory access |
US8438610B2 (en) * | 2007-09-28 | 2013-05-07 | Emc Corporation | Identity-based address normalization |
US9065839B2 (en) * | 2007-10-02 | 2015-06-23 | International Business Machines Corporation | Minimally buffered data transfers between nodes in a data communications network |
US20090113308A1 (en) * | 2007-10-26 | 2009-04-30 | Gheorghe Almasi | Administering Communications Schedules for Data Communications Among Compute Nodes in a Data Communications Network of a Parallel Computer |
US7984450B2 (en) * | 2007-11-28 | 2011-07-19 | International Business Machines Corporation | Dispatching packets on a global combining network of a parallel computer |
US8286171B2 (en) * | 2008-07-21 | 2012-10-09 | Workshare Technology, Inc. | Methods and systems to fingerprint textual information using word runs |
US7895260B2 (en) * | 2008-07-28 | 2011-02-22 | International Business Machines Corporation | Processing data access requests among a plurality of compute nodes |
US8555080B2 (en) * | 2008-09-11 | 2013-10-08 | Workshare Technology, Inc. | Methods and systems for protect agents using distributed lightweight fingerprints |
WO2010045089A1 (en) | 2008-10-08 | 2010-04-22 | Sourcefire, Inc. | Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system |
CN101388842B (zh) * | 2008-10-30 | 2012-04-04 | 华为技术有限公司 | 一种存储方法和装置 |
WO2010059747A2 (en) | 2008-11-18 | 2010-05-27 | Workshare Technology, Inc. | Methods and systems for exact data match filtering |
US8406456B2 (en) | 2008-11-20 | 2013-03-26 | Workshare Technology, Inc. | Methods and systems for image fingerprinting |
US7826458B2 (en) | 2009-03-05 | 2010-11-02 | Juniper Networks, Inc. | Tracking fragmented data flows |
JP2010211388A (ja) | 2009-03-09 | 2010-09-24 | Canon Inc | 検索装置及び検索方法 |
JP2010231272A (ja) * | 2009-03-25 | 2010-10-14 | Nodc:Kk | キーワード列検出方法及び装置 |
US8433883B2 (en) * | 2009-06-11 | 2013-04-30 | Cray Inc. | Inclusive “OR” bit matrix compare resolution of vector update conflict masks |
WO2011017084A2 (en) | 2009-07-27 | 2011-02-10 | Workshare Technology, Inc. | Methods and systems for comparing presentation slide decks |
US9049157B1 (en) * | 2009-08-16 | 2015-06-02 | Compass Electro-Optical Systems Ltd | Method and device for improving scalability of longest prefix match |
US8365186B2 (en) | 2010-04-14 | 2013-01-29 | International Business Machines Corporation | Runtime optimization of an application executing on a parallel computer |
US8630290B1 (en) * | 2010-04-15 | 2014-01-14 | ARRIS Enterprise, Inc. | Using a DFA unit for classification list processing |
WO2011130510A1 (en) | 2010-04-16 | 2011-10-20 | Sourcefire, Inc. | System and method for near-real time network attack detection, and system and method for unified detection via detection routing |
US8433790B2 (en) | 2010-06-11 | 2013-04-30 | Sourcefire, Inc. | System and method for assigning network blocks to sensors |
US8671182B2 (en) | 2010-06-22 | 2014-03-11 | Sourcefire, Inc. | System and method for resolving operating system or service identity conflicts |
US8504730B2 (en) | 2010-07-30 | 2013-08-06 | International Business Machines Corporation | Administering connection identifiers for collective operations in a parallel computer |
JP5238791B2 (ja) | 2010-11-10 | 2013-07-17 | 株式会社東芝 | 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法 |
US20120136862A1 (en) | 2010-11-29 | 2012-05-31 | Workshare Technology, Inc. | System and method for presenting comparisons of electronic documents |
US11030163B2 (en) | 2011-11-29 | 2021-06-08 | Workshare, Ltd. | System for tracking and displaying changes in a set of related electronic documents |
US10783326B2 (en) | 2013-03-14 | 2020-09-22 | Workshare, Ltd. | System for tracking changes in a collaborative document editing environment |
US8565120B2 (en) | 2011-01-05 | 2013-10-22 | International Business Machines Corporation | Locality mapping in a distributed processing system |
US9317637B2 (en) | 2011-01-14 | 2016-04-19 | International Business Machines Corporation | Distributed hardware device simulation |
US8601034B2 (en) | 2011-03-11 | 2013-12-03 | Sourcefire, Inc. | System and method for real time data awareness |
US10880359B2 (en) | 2011-12-21 | 2020-12-29 | Workshare, Ltd. | System and method for cross platform document sharing |
US10963584B2 (en) | 2011-06-08 | 2021-03-30 | Workshare Ltd. | Method and system for collaborative editing of a remotely stored document |
US10574729B2 (en) | 2011-06-08 | 2020-02-25 | Workshare Ltd. | System and method for cross platform document sharing |
US9613340B2 (en) | 2011-06-14 | 2017-04-04 | Workshare Ltd. | Method and system for shared document approval |
US9170990B2 (en) | 2013-03-14 | 2015-10-27 | Workshare Limited | Method and system for document retrieval with selective document comparison |
US9948676B2 (en) | 2013-07-25 | 2018-04-17 | Workshare, Ltd. | System and method for securing documents prior to transmission |
US8689228B2 (en) | 2011-07-19 | 2014-04-01 | International Business Machines Corporation | Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system |
US9159420B1 (en) * | 2011-08-16 | 2015-10-13 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for content addressable memory parallel lookup |
US9250948B2 (en) | 2011-09-13 | 2016-02-02 | International Business Machines Corporation | Establishing a group of endpoints in a parallel computer |
EP2782292B1 (en) * | 2011-11-15 | 2016-02-10 | Japan Science and Technology Agency | Packet data extraction device, control method for packet data extraction device, control program, and computer-readable recording medium |
US8681795B1 (en) * | 2011-12-28 | 2014-03-25 | Juniper Networks, Inc. | Fixed latency priority classifier for network data |
US11567907B2 (en) | 2013-03-14 | 2023-01-31 | Workshare, Ltd. | Method and system for comparing document versions encoded in a hierarchical representation |
US10911492B2 (en) | 2013-07-25 | 2021-02-02 | Workshare Ltd. | System and method for securing documents prior to transmission |
US9697220B2 (en) * | 2013-12-13 | 2017-07-04 | Oracle International Corporation | System and method for supporting elastic data metadata compression in a distributed data grid |
JP6549704B2 (ja) | 2014-09-25 | 2019-07-24 | オラクル・インターナショナル・コーポレイション | 分散コンピューティング環境内でゼロコピー2進基数木をサポートするためのシステムおよび方法 |
US10133723B2 (en) | 2014-12-29 | 2018-11-20 | Workshare Ltd. | System and method for determining document version geneology |
US11182551B2 (en) | 2014-12-29 | 2021-11-23 | Workshare Ltd. | System and method for determining document version geneology |
JP6456162B2 (ja) * | 2015-01-27 | 2019-01-23 | 株式会社エヌ・ティ・ティ ピー・シー コミュニケーションズ | 匿名化処理装置、匿名化処理方法及びプログラム |
JP6540296B2 (ja) * | 2015-07-09 | 2019-07-10 | 富士通株式会社 | ネットワークプロセッサ、通信装置、パケット転送方法及びパケット転送プログラム |
US11763013B2 (en) | 2015-08-07 | 2023-09-19 | Workshare, Ltd. | Transaction document management system and method |
US20170242821A1 (en) * | 2016-02-22 | 2017-08-24 | HGST Netherlands B.V. | Acknowledgement-less canary-based completion protocol |
US10862485B1 (en) * | 2018-08-29 | 2020-12-08 | Verisilicon Microelectronics (Shanghai) Co., Ltd. | Lookup table index for a processor |
US11158364B2 (en) | 2019-05-31 | 2021-10-26 | Micron Technology, Inc. | Apparatuses and methods for tracking victim rows |
US11158373B2 (en) * | 2019-06-11 | 2021-10-26 | Micron Technology, Inc. | Apparatuses, systems, and methods for determining extremum numerical values |
JP2023047469A (ja) * | 2021-09-27 | 2023-04-06 | キヤノン株式会社 | 通信装置、通信装置の制御方法、通信システム、およびプログラム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3474394D1 (en) * | 1984-06-29 | 1988-11-03 | Ibm | Method and arrangement for detecting a particular bit configuration in a serial bit stream |
US5526298A (en) * | 1987-06-10 | 1996-06-11 | Hamamatsu Photonics K.K. | Optical associative memory |
FR2724512B1 (fr) * | 1994-09-14 | 1996-12-13 | Sgs Thomson Microelectronics | Dispositif d'identification d'une sequence predeterminee de signaux dans un modem |
US5570306A (en) * | 1994-11-01 | 1996-10-29 | Intel Corporation | Method and apparatus for recognizing a bit pattern in a string of bits, altering the string of bits, and removing the alteration from the string of bits |
JP3662618B2 (ja) * | 1995-02-01 | 2005-06-22 | 川崎マイクロエレクトロニクス株式会社 | マルチプロトコルアドレス検索用連想メモリおよびその検索方法 |
US5636369A (en) * | 1995-05-26 | 1997-06-03 | Datron/Transco, Inc. | Fast pattern-detection machine and method |
US5661763A (en) * | 1995-07-28 | 1997-08-26 | Adtran, Inc. | Apparatus and method for detecting programmable length bit pattern in serial digital data stream |
JP3520709B2 (ja) * | 1997-03-13 | 2004-04-19 | 三菱電機株式会社 | ネットワークアドレス検索方式 |
US5894427A (en) * | 1997-11-12 | 1999-04-13 | Intel Corporation | Technique for concurrent detection of bit patterns |
US6047283A (en) * | 1998-02-26 | 2000-04-04 | Sap Aktiengesellschaft | Fast string searching and indexing using a search tree having a plurality of linked nodes |
JP3250544B2 (ja) * | 1999-04-16 | 2002-01-28 | 日本電気株式会社 | 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体 |
US7107265B1 (en) * | 2000-04-06 | 2006-09-12 | International Business Machines Corporation | Software management tree implementation for a network processor |
JP2002016638A (ja) * | 2000-06-29 | 2002-01-18 | Mitsubishi Electric Corp | ルーチング情報検索装置およびルーチング情報検索制御データを記録したコンピュータ読み取り可能な記録媒体 |
-
2003
- 2003-10-03 JP JP2004541281A patent/JP4091604B2/ja not_active Expired - Fee Related
- 2003-10-03 CN CNB2003801009592A patent/CN1324861C/zh not_active Expired - Fee Related
- 2003-10-03 EP EP03748699A patent/EP1548998A4/en not_active Withdrawn
- 2003-10-03 AU AU2003268754A patent/AU2003268754A1/en not_active Abandoned
- 2003-10-03 WO PCT/JP2003/012700 patent/WO2004032435A1/ja not_active Application Discontinuation
- 2003-10-03 US US10/530,190 patent/US20060059196A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102067528A (zh) * | 2008-06-19 | 2011-05-18 | 马维尔国际贸易有限公司 | 用于搜索的级联存储器表 |
CN102067528B (zh) * | 2008-06-19 | 2014-01-15 | 马维尔国际贸易有限公司 | 用于搜索的级联存储器表 |
CN102736888A (zh) * | 2012-07-02 | 2012-10-17 | 江汉大学 | 与数据流同步的数据检索电路 |
CN102736888B (zh) * | 2012-07-02 | 2016-02-17 | 江汉大学 | 与数据流同步的数据检索电路 |
CN112119380A (zh) * | 2018-05-18 | 2020-12-22 | 微软技术许可有限责任公司 | 带有旁路的奇偶校验记录 |
CN112119380B (zh) * | 2018-05-18 | 2024-03-22 | 微软技术许可有限责任公司 | 带有旁路的奇偶校验记录 |
CN117609112A (zh) * | 2023-11-30 | 2024-02-27 | 中科驭数(北京)科技有限公司 | 数据流处理方法、装置及多核处理器 |
Also Published As
Publication number | Publication date |
---|---|
EP1548998A1 (en) | 2005-06-29 |
AU2003268754A1 (en) | 2004-04-23 |
CN1324861C (zh) | 2007-07-04 |
EP1548998A4 (en) | 2008-02-27 |
US20060059196A1 (en) | 2006-03-16 |
WO2004032435A1 (ja) | 2004-04-15 |
JP4091604B2 (ja) | 2008-05-28 |
JPWO2004032435A1 (ja) | 2006-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1324861C (zh) | 位串的校验方法及装置 | |
CN1204509C (zh) | 通信网络装置 | |
CN1272946C (zh) | 可伸缩的网络处理器及操作该网络处理器的方法和装置 | |
CN1204503C (zh) | 用于通信网络的装置、系统及其操作方法 | |
CN1174587C (zh) | 最长匹配地址查询的方法和装置 | |
CN1239984C (zh) | Vlsi网络处理器和方法 | |
CN1781078A (zh) | 硬件加速器个性编译器 | |
CN1223952C (zh) | 分类方法、分类处理设备和数据处理设备 | |
CN1303536C (zh) | 执行自高速缓存的快速推测式加载运算的微处理器及方法 | |
CN1192314C (zh) | 并行处理器结构的sram控制器 | |
CN1202470C (zh) | 处理器 | |
CN1822003A (zh) | 数据库 | |
CN1284180A (zh) | 利用布尔逻辑和可编程结构进行地址分析的方法和装置 | |
CN1298521A (zh) | 具有二维或多维可编程序的单元结构(fpgas、dpgas等)的数据流处理器和模块的无死锁配置方法 | |
CN1378665A (zh) | 编程概念 | |
CN1292901A (zh) | 数据库设备 | |
CN1059225A (zh) | 用于结构运算的运算单元 | |
CN1678975A (zh) | 仿效qwerty型布局和键入的缩减键盘系统 | |
CN1862490A (zh) | 信号处理装置 | |
CN1319210A (zh) | 可配置的硬件块的配置方法 | |
CN1175034A (zh) | 存储器控制器和存储器控制系统 | |
CN1050630A (zh) | 具有部分关键字分支的前缀检索树 | |
CN1670729A (zh) | 使用隐含谓词的改善的查询优化器 | |
CN1655145A (zh) | 最优化行级别数据库安全的系统和方法 | |
CN101078994A (zh) | 编译器装置、编译器方法和编译器程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |