CN100570550C - 对分检索电路及方法 - Google Patents

对分检索电路及方法 Download PDF

Info

Publication number
CN100570550C
CN100570550C CNB2006800335615A CN200680033561A CN100570550C CN 100570550 C CN100570550 C CN 100570550C CN B2006800335615 A CNB2006800335615 A CN B2006800335615A CN 200680033561 A CN200680033561 A CN 200680033561A CN 100570550 C CN100570550 C CN 100570550C
Authority
CN
China
Prior art keywords
data
circuit
comparator circuit
database
comparison
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.)
Expired - Fee Related
Application number
CNB2006800335615A
Other languages
English (en)
Other versions
CN101263451A (zh
Inventor
名古屋贡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Duaxes Corp
Original Assignee
Duaxes Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Duaxes Corp filed Critical Duaxes Corp
Publication of CN101263451A publication Critical patent/CN101263451A/zh
Application granted granted Critical
Publication of CN100570550C publication Critical patent/CN100570550C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/02Indexing scheme relating to groups G06F7/02 - G06F7/026
    • G06F2207/025String search, i.e. pattern matching, e.g. find identical word or best match in a string

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供一种实现高速对分检索的技术。对分检索电路(36)从贮存有升序或降序排列的数据的数据库中通过对分检索来检索比较对象数据。比较电路(36A、36B、36C)将从数据库(50A、50B、50C)中读出的数据与比较对象数据进行比较。控制电路(36Z)使1/2n、2/2n、...、(2n-1)/2n位置处的数据分别输入到所述2n-1个比较电路中,并使其与比较对象数据进行比较,由此同时并行地执行n次检索。

Description

对分检索电路及方法
技术领域
本发明涉及数据处理技术,特别涉及通过对分检索法从数据库中检索数据的对分检索电路及方法。
背景技术
在互联网的基础设施得以完善,便携式电话终端、个人电脑、VoIP(Voice over internet Protocal:基于internet协议的语音)电话终端等通信终端得到广泛普及的今天,互联网的用户正在暴增。在这种状况下,计算机病毒、黑客(ハツキング)、垃圾邮件等与安全有关的问题变得明显化,需要有对通信进行适当控制的技术。随着通信环境的改善,通信量也变得很庞大,对大容量数据进行高速处理的通信控制装置的必要性在逐渐增加。
图1示出了现有的通信控制装置1的构成。现有的通信控制装置1包括:接收侧的通信控制部2、数据包处理部3、和发送侧的通信控制部4。通信控制部2及4分别包括:PHY处理部5a及5b,进行数据包的物理层的处理;MAC处理部6a及6b,进行数据包的MAC层的处理。数据包处理部3包括:IP处理部7,进行IP(Internet Protocal:IP协议)的协议处理;TCP处理部8等,进行TCP(Transport Control Protocal:传送控制协议)的协议处理;协议处理部,进行与协议对应的处理;AP处理部9,进行应用层的处理。AP处理部9根据数据包中包含的数据,执行过滤等处理。
专利文献1:特开平4-180425号公报
发明内容
发明所要解决的课题
在现有的通信控制装置1中,数据包处理部3是利用作为通用处理器的CPU和在CPU上运行的OS,通过软件来实现的。但是,在这种构成中,通信控制装置1的性能将依赖于CPU的性能,因此实现能够高速地对大容量的数据包进行处理的通信控制装置受到限制。例如,对于64位的CPU来说,其一次同时能够处理的数据量最大是64位,而目前还不存在比其性能更高的通信装置。
如此,现实情况是,尽管由于光通信网等基础设施的普及而使得节点间的数据通信速度飞速地提高,但是因为通信控制装置的处理速度是一个瓶颈,因此上述性能在实践中是无法完全实现的。因此,人们强烈希望能够尽早地实现尽量高速的通信控制装置。
本发明是鉴于上述状况而提出,其目的在于提供一种实现高速通信环境的技术。
解决课题的手段
本发明的一个实施方式涉及对分检索电路。该对分检索电路用于从升序或降序排列有数据的数据库中通过对分检索来检索比较数据。该对分检索电路包括:2n-1个比较电路,用于将从所述数据库中读出的数据与所述比较对象数据进行比较;以及控制电路,对所述比较电路进行控制。所述控制电路在所述数据库的检索范围被分为2n个时,使1/2n、2/2n、...、(2n-1)/2n位置处的数据分别输入到所述2n-1个比较电路中,并使得所述2n-1个比较电路将所输入的数据与比较对象数据进行比较,由此同时并行地执行n次检索。
通过这样的结构,可以缩短从数据库载入数据的时间。此外,可以将比较的次数减半并缩短检索所需的时间。
所述控制电路可以根据所述2n-1个比较电路各自的比较结果来判定是否检索到了所述比较对象数据,当未检索到时,所述控制电路可以将基于所述比较结果所确定的下一次检索对象范围的1/2n、2/2n、...、(2n-1)/2n位置处的数据输入到各比较电路中。
所述对分检索电路还可以包括连接到各所述比较电路的2n-1个数据库,所述控制电路使所述检索对象范围的1/2n、2/2n、...、(2n-1)/2n位置处的数据从连接到各比较电路的数据库中并行地输入。由此,由于可以将数据并行地从数据库载入到多个比较电路,因而可以进一步缩短载入数据所需的时间。
所述对分检索电路可以由布线逻辑电路构成。例如,可以使用FPGA(Field Programmable Gate Array:现场可编程门阵列)等来实现。通过由专用的硬件电路来构成对分检索电路,可以实现具有预期性能的对分检索电路,而不受CPU性能的制约。
本发明的另一个实施方式涉及对分检索方法。在该对分检索方法中,当将贮存有升序或降序排列的数据的数据库的检索范围分为2n个时,使检索范围的1/2n、2/2n、...、(2n-1)/2n位置处的数据分别输入到所述2n-1个比较电路中,并使得所述2n-1个比较电路将所输入的数据与比较对象数据进行比较,由此同时并行地执行n次检索。
另外,以上构成要素的任意组合、以及将本发明的描述在方法、装置、系统、记录介质、计算机程序等之间进行变换的方式作为本发明的实施方式也是有效的。
发明的效果
根据本发明,能够提供实现高速对分检索的技术。
附图说明
图1是表示现有的通信控制装置的构成的图。
图2是表示实施方式涉及的通信控制装置的构成的图。
图3是表示数据包处理电路的构成的图。
图4是表示位置检测电路的构成的图。
图5是表示位置检测电路另一个例子的图。
图6是表示位置检测电路又一个例子的图。
图7是表示第一数据库的内部数据的例子的图。
图8是表示第一数据库的内部数据的另一个例子的图。
图9是表示第一数据库的内部数据的又一个例子的图。
图10是表示索引电路的另一个例子的图。
图11是表示对分检索电路所含的比较电路的构成的图。
图12是表示对分检索电路的构成的图。
图13是表示第一数据库的内部数据的又一个例子的图。
图14是表示第二数据库的内部数据的例子的图。
图15是表示第二数据库的内部数据的另一个例子的图。
符号说明
10通信控制装置、20数据包处理电路、30检索电路、32位置检测电路、33比较电路、34索引电路、35比较电路、36对分检索电路、36A,36B,36C比较电路、36Z控制电路、40处理执行电路、50第一数据库、60第二数据库。
具体实施方式
图2示出了作为本发明数据处理装置一个例子的通信控制装置的构成。本实施方式的通信控制装置10包括配置有专用硬件(部署有线路逻辑电路)的数据包处理电路20,以取代现有通信控制装置中由包含CPU及OS的软件实现的数据包处理部。不是通过在作为通用处理电路的CPU中运行的OS和软件来处理通信数据,而是设置对通信数据进行处理的专用硬件电路,由此能够克服由CPU和OS等造成的性能限制,实现高处理能力的通信控制装置。
例如,在为了执行数据包过滤等而检索数据包所含的数据中是否含有作为过滤判断基准的基准数据的情况下,使用CPU对通信数据和基准数据进行比较时,一次最多只能比较64位,所以存在的问题是,即使想提高处理速度也将受到CPU性能的限制。由于在CPU中必须无数次重复进行以下处理,即,从通信数据将64位读入到存储器,将其与基准数据进行比较,接着再把下一64位读入到存储器,因此读入到存储器的时间将制约速度,处理速度存在界限。
相反,在本实施方式中,设置了由布线逻辑电路构成的专用硬件电路,以对通信数据和基准数据进行比较。该电路包括并列设置的多个比较器,以能够对比64位长的数据长定度,例如1024位的数据长定度进行比较。这样,通过设置有专用的硬件可以同时并行执行许多的位匹配。可以从现有的使用CPU的通信控制装置1一次只能处理64位提高到一次可以处理1024位,可以飞跃地提高处理速度。虽然增多比较器的数量也能够提高处理能力,但是成本和尺寸也会增大,因此可以在考虑预期的处理性能和成本、尺寸等条件下,设计最适当的硬件电路。
此外,由于本实施方式的通信控制装置10是由布线逻辑电路形成的专用硬件构成的,因此不需要OS(Operating System:操作系统)。为此,不需要OS的安装、故障应对、升级等作业,从而可以减少用于管理和维护的费用和工时。此外,与要求具有通用功能的CPU不同,由于不包含不必要的功能,因此没有使用多余的资源,低成本化、电路面积的减少、处理速度的提高是可以期待的。而且,与使用OS的现有通信控制装置不同,由于没有多余的功能,因此降低了安全漏洞等发生的可能性,对于通过网络来自恶意第三者的攻击具有优秀的抵抗性。
现有的通信控制装置1通过以CPU和OS为前提的软件对数据包进行处理,在接收了数据包的所有数据后再进行协议处理,将数据交给应用程序。相反,在本实施方式的通信控制装置10中,由于使用专用的硬件电路进行处理,没有必要在接收了数据包的所有数据后开始处理,如果接收到处理所需的数据,则不用等待接收后续的数据就可以在任何时候开始处理。例如,在后述的位置检测电路中进行的位置检测处理,可以在接收到用于确定比较对象数据位置的位置确定数据时开始。这样,由于不用等待接收了所有的数据就可以动态地执行各种各样的处理,因此能够缩短处理数据包的数据所需的时间。
图3示出了数据包处理电路的内部构成。数据包处理电路20包括:用于存储基准数据的第一数据库50A、50B及50C(将这些统称为第一数据库50),所述基准数据在对通信数据执行的处理进行确定时参考;检索电路30,通过比较通信数据和基准数据在接收的通信数据中检索基准数据;第二数据库60,用于关联对应地存储检索电路30的检索结果和对通信数据执行处理的内容;处理执行电路40,基于检索电路30的检索结果和第二数据库60所存储的条件对通信数据进行处理。
检索电路30包括:位置检测电路32,从通信数据中检测要与基准数据进行比较的比较对象数据的位置;作为判定电路一个例子的索引电路34,当把所述第一数据库50所存储的基准数据分成3个以上的范围时,索引电路34,判定比较对象数据属于这些范围中的哪一个;对分检索电路36,在判定的范围中,检索与比较对象数据匹配的基准数据。可以使用任意的检索技术作为从基准数据中检索比较对象数据的方法,但在本实施方式中使用的是对分检索法。在本实施例中,如后所述,由于使用了改良的对分检索法,为此设有三个第一数据库50。在第一数据库50A、50B及50C中存储有相同的基准数据。
图4示出了位置检测电路的内部构成。位置检测电路32包括:多个比较电路33a~33f,用于对确定比较对象数据位置的位置确定数据和通信数据进行比较。在此,设置有6个比较电路33a~33f,但如后所述,比较电路的个数可以是任意的。通信数据以每错开(ずらして)预定的数据长定例如1字节输入到各比较电路33a~33f中。然后,在这些多个比较电路33a~33f中,同时并列进行应检测的位置确定数据和通信数据的比较。
在本实施方式中,将进行以下处理时的情况作为用于说明通信控制装置10动作的例子进行说明,即,检测通信数据中包含的“No.###”的字符串,将该字符串中包含的数字“###”与基准数据进行比较,与基准数据一致时允许数据包通过,不一致时将数据包废弃。
在图4的例子中,为了从通信数据中检测用于确定数字“###”位置的位置确定数据“No.”,将通信数据“01No.361...”每错开1个字符输入到比较电路33a~33f中。即,比较电路33a中输入“01N”,比较电路33b中输入“1No”,比较电路33c中输入“No.”,比较电路33d中输入“o.”,比较电路中33e输入“.3”,比较电路33f中输入“36”。在此,比较电路33a~33f同时执行与位置确定数据“No.”的比较。由此,比较电路33c匹配,从而检测出在通信数据的最前头开始第3个字符处存在“No.”的字符串。这样,在由位置检测电路32检测出的位置确定数据“No.”之后,将检测出存在作为比较对象数据的数字数据。
如果由CPU进行同样的处理,则首先将字符串“01N”与“No.”进行比较,然后将字符串“1No”与“No.”进行比较,由于必须从最前头开始依次逐一执行比较处理,因此无法期待提高检测速度。相反,在本实施方式的通信控制装置10中,通过并列设置多个比较电路33a~33f,使得CPU中无法实现的同时并列的比较处理成为可能,可以极大地提高处理速度。虽然比较电路越多能够同时比较的位置就越多,检测速度也将提高,但是在考虑到成本和尺寸等条件下,设置获得所需检测速度的足够数量的比较电路就可以了。
位置检测电路32不只用于检测位置确定数据,也可以用作检测通用的字符串的电路。此外,不仅可以检测字符串,而且还可以检测以位为单位的位置确定数据。
图5示出了位置检测电路的另一个例子。在图5所示的例子中,在位置确定数据比设于位置检测电路32中的各比较电路33a~33f的数据长度短的情况下,在位置确定数据之后填补预定的数据例如“00H”或“01H”。此外,对于与位置确定数据进行比较的通信数据,只从中摘出与位置确定数据相同的数据长度并输入到比较电路,然后,在其后填补与位置确定数据填补的数据相同的数据。此时,由于通信数据本身不改变,因而可以对通信数据进行复制作为工作(work),并对复制的数据进行加工以输入比较电路33a~33f。由此,不管位置确定数据的数据长度如何,均能够广泛地使用位置检测电路32。
图6示出了位置检测电路的又一个例子。在图6所示的例子中,与图5所示的例子同样地在位置确定数据之后填补预定的数据,此外,此数据可以作为通配符处理。即,当向比较电路33a~33f输入作为通配符的数据时,要比较的对象数据的相应部分和通配符数据都相匹配,而无论比较对象的数据是什么。由此,不管位置确定数据的数据长度如何,均能够广泛地使用位置检测电路32。
图7示出了第一数据库的内部数据的例子。第一数据库50存储有当确定对数据包的处理(例如,过滤、路径选择、交换和置换等处理)时参考的基准数据。基准数据按照某种分类条件进行升序或降序分类而被存储。在7的例子中,存储有1000个基准数据。
在将第一数据库50贮存的基准数据分成3个以上的范围52a~52d时,索引电路34判定比较对象数据属于这些范围中的哪一个。在图7的例子中,1000个基准数据被以每250个分成4个范围52a~52d。索引电路34包括对范围边界的基准数据与对象数据进行比较的多个比较电路35a~35c。通过比较电路35a~35c对比较对象数据与边界的基准数据同时并列进行比较,从而用一次比较处理就可以判定比较对象数据属于哪个范围。
输入到索引电路34的比较电路35a~35c中的边界基准数据,可以通过通信控制装置10外部所设置的装置来设定,也可以事先自动地输入第一数据库50预定位置的基准数据。在后一种情况下,即使更新第一数据库50,也可以自动地将第一数据库50预定位置的基准数据输入到比较电路35a~35c中,因此无需进行初始设定就能立即执行通信控制处理。
如上所述,在由CPU执行对分检索的场合,不能同时执行多个比较,而在本实施方式的通信控制装置10中,通过并列设置有多个比较电路35a~35c,可以同时并列进行比较处理,从而极大地提高了检索速度。
当由索引电路34判定了相关范围时,对分检索电路36以对分检索法执行检索。对分检索电路36将由索引电路34判定的范围进一步分成2n个,并通过将位于边界位置的基准数据和比较对象数据进行比较,来判定比较对象数据属于哪个范围。对分检索电路36包括逐位地(bit by bit)对基准数据和比较对象数据进行比较的多个比较器,例如在本实施方式中包括1024个比较器,同时执行1024位的位匹配。当判定了属于被分成2n个的范围中的哪一个时,进一步将所判定出的范围分成2n个并读出位于其边界位置的基准数据,将其与对象数据进行比较。之后,通过重复该处理来进一步缩小范围,最后检索出与比较对象数据一致的基准数据。
使用上述的例子进一步对操作进行详细说明。在索引电路34的比较电路35a~35c中,输入“361”作为比较对象数据。至于基准数据,在比较电路35a中输入位于范围52a和52b边界处的基准数据“378”,在比较电路35b中输入位于范围52b和52c边界处的基准数据“704”,在比较电路35c中输入位于范围52c和52d边界处的基准数据“937”。由比较电路35a~35c同时进行比较,判定出比较对象数据“361”属于范围52a。之后,对分检索电路36将在基准数据中检索比较对象数据“361”。
图8示出了第一数据库内部数据的另一个例子。在图8的例子中,基准数据的数据个数少于第一数据库50所能够保持的数据数,在此为1000个。此时,在第一数据库50中,从最后数据位置开始降序贮存基准数据。然后,将剩余的数据中贮存0。作为数据库的加载方法,不是从最前面配置数据而是从加载区域的后方配置,当加载区域的开头产生空位时,对所有的空位填充零,由此使数据库一直处于满的状态,从而可以使对分检索时的检索时间恒定。此外,当对分检索电路36在检索过程中读入基准数据“0”时,由于比较结果是明显的,因此可以不进行比较而确定范围,并转到下一比较。由此,可以提高检索速度。
在基于CPU的软件处理中,在将基准数据贮存到第一数据库50时,从最初的数据位置升序贮存基准数据。在剩余的数据中例如贮存最大值,在这种情况下,在对分检索中不可能省略上述的比较处理。上述的比较技术通过由专用的硬件电路构成检索电路30来实现。
图9示出了第一数据库内部数据的又一个例子。在图9的例子中,基准数据不是被均等地分成3个或3个以上的范围,而是被不均等地分到具有个数基准数据个数不同的范围,例如范围52a为500个,范围52b为100个。这些范围可以根据基准数据在通信数据中的出现频度的分布来进行设定。也就是说,可以对范围进行设定以使各范围所属的基准数据的出现频度的和(sum)大致相同。由此,可以提高检索效率。输入到索引电路34的比较电路35a~35c中的基准数据也可以从外部进行变更。由此,能够动态地设定范围,从而可以使检索效率最佳化。
图10示出了索引电路的另一个例子。在图7~9所示的例子中,索引电路34使用三个比较电路35a~35c来判定比较对象数据属于第一数据库50的四个范围52a~52d中的哪一个,但在图10的例子中,在索引电路34中设有四个比较电路35d~35g,用于判定比较对象数据是否属于第一数据库50的四个范围52a~52d中的一个中。例如,在比较电路35d中输入有第一数据库50的第0件的基准数据、第250件的基准数据、和比较对象数据。通过对各基准数据和比较对象数据进行比较来判定比较对象数据是否包含在范围52a中。各比较电路35d~35g的比较结果被输入到判定电路35z,从判定电路35z输出表示比较对象数据包含在哪个范围中的信息。比较电路35d~35g也可以输出比较对象数据是否包含在已输入的两个基准数据之间的信息,也可以输出指示基准数据大于该范围的信息、指示基准数据包含在该范围中的信息、或指示基准数据小于该范围中的任一个的信息。当判断的结果是,比较对象数据不包含在范围52a~52d的任一个中时,可知比较对象数据不存在于第一数据库50中,因此可以结束检索而无需进行以后的对分检索。
图11示出了对分检索电路中包含的比较电路的构成。如上所述,对分检索电路36中包含的比较电路包括1024个比较器36a、36b、...、。各个比较器36a、36b、...接收基准数据54的一个位(bit)和比较对象数据56的1个比特,并对它们的值进行大小比较。索引电路34的各比较电路35a~35c的内部构成也是同样的。这样,通过以专用的硬件电路执行比较处理,可以使多个比较电路并行动作,同时对多位进行比较,从而可以使比较处理高速化。
图12示出了对分检索电路的构成。对分检索电路36包括:包含图11所示的1024个比较器36a、36b、...的比较电路36A、36B及36C;以及对这些比较电路进行控制的控制电路36z。
在现有的对分检索法中,首先在第一次检索中,读出位于升序或降序排列有数据的数据库的检索对象范围1/2位置处的数据,并与比较对象数据进行比较。当数据升序排列时,如果比较对象数据小,那么由于比较对象数据存在于检索对象范围的前半部分,因而在第二次检索中,将前半部分作为检索对象范围,读出其1/2处即位于最初检索对象范围3/4位置处的数据并与比较对象数据进行比较。由此,可以使检索对象范围逐半地变窄,最终获得对象数据。
在本实施方式中,由于设有三个用于对分检索的比较电路,因而当第一次检索中使位于检索对象范围1/2位置处的数据与比较对象数据进行比较时,可以同时并行地在第二次检索中使位于检索对象范围1/4及3/4位置处的数据与比较对象数据进行比较。由此,由于一次可以进行两次检索,因而可以缩短需要从数据库读取数据的时间。此外,通过使三个比较电路同时并行地进行动作,可以使比较的次数减半,从而缩短检索所需的时间。
在图12的例子中,为了同时进行两次检索而设有三个比较电路,但一般地,为了同时并行地进行n次检索,可以设置2n-1个比较电路。控制电路36z使位于检索对象范围1/2n、2/2n、...、(2n-1)/2n位置处的数据分别输入到2n-1个比较电路中,使这些电路同时并行地动作以对各位置处的数据和比较对象数据进行比较。控制电路36z获取各比较电路的比较结果并判定是否检索到了比较对象数据。当任何一个比较电路输出了表示存在数据匹配的信号时,控制电路36z判定出检索到了比较对象数据,并结束对分检索。在未输出表示存在数据匹配的信号时,转到下一次检索。如果比较对象数据存在于数据库中,那么应当存在于2n-1个比较电路的比较结果转变处之间的范围中。例如,在设有15个比较电路时,如果5/16位置处的数据小于比较对象数据,并且6/16位置处的数据大于比较对象数据,那么比较对象数据处于5/16至6/16之间的范围中。因此,控制电路36z获取各比较电路的比较结果,并将比较结果转变了的范围确定为下一次检索的范围,然后将所确定的下一次检索对象范围1/2n、2/2n、...、(2n-1)/2n位置处的数据输入到各比较电路中。
在本实施方式中,设有三个第一数据库50,第一数据库50A连接到比较电路36A并将位于检索对象范围1/4位置处的数据提供给比较电路36A;第二数据库50B连接到比较电路36B并将位于检索对象范围2/4位置处的数据提供给比较电路36B;第一数据库50C连接到比较电路36C并将位于检索对象范围3/4位置处的数据提供给比较电路36C。由此,由于可以同时并行地将数据载入到各比较电路中,从而可以进一步缩短数据载入所需的时间并使对分检索高速化。
尽管比较电路越多检索速度越快,但是考虑到成本、尺寸等,可以设置足够数量的比较电路以获得所希望的检索速度。此外,尽管最好设置与比较电路数量相同的第一数据库,但是考虑到成本、尺寸等,也可以若干个比较电路共用数据库。
图13示出了第一数据库的内部数据的又一个例子。图13所示的第一数据库50贮存有成为过滤对象内容的URL。第一数据库50中贮存的数据也可以包含被认为是通配符的预定数据例如“00H”或“01H”等。在图13所示的例子中,“http://www.xx.xx/*********”中的“*********”被认为是通配符,在比较器36a、36b、...中,无论比较对象数据是什么都判定为通配符匹配。因此,以“http://www.xx.xx/”开始的字符串可以全部通过对分检索电路36检测。由此,例如,对属于“http://www.xx.xx/”范围内的全部内容进行过滤的处理等可以容易地进行。
图14示出了第二数据库内部数据的例子。第二数据库60包括贮存检索电路30的检索结果的检索结果栏62、以及贮存对通信数据执行的处理内容的处理内容栏64,并对检索结果和处理内容进行关联对应保持。在图14的例子中设定如下条件:当通信数据中包含基准数据时,允许该数据包通过;当不包含基准数据时,将该数据包废弃。处理执行电路40根据检索结果从第二数据库60检索处理内容,对通信数据执行处理。处理执行电路40也可以由布线逻辑电路来实现。
图15示出了第二数据库内部数据的另一个例子。在图15的例子中,对每个基准数据设定处理内容。当进行数据包的置换时,可以将待置换的数据贮存到第二数据库60中。在进行数据包的路径选择或者交换时,可以将与路经有关的信息贮存到第二数据库60中。处理执行电路40根据检索电路30的检索结果,执行第二数据库60中贮存的过滤、路径选择、交换、置换等处理。如图15所示,当对每个基准数据设定处理内容时,可以对第一数据库50和第二数据库60进行综合。
第一数据库及第二数据库被设置为可以从外部进行重写。通过对这些数据库进行替换,可以使用相同的通信控制装置10实现各种各样的数据处理或者通信控制。此外,也可以设置2个以上贮存作为检索对象的基准数据的数据库,来进行多阶段的检索处理。此时,也可以设置2个以上关联对应贮存了检索结果和处理内容的数据库,来实现更复杂的条件分支。这样,当设置多个数据库进行多阶段的检索时,也可以设置多个位置检测电路32、索引电路34、对分检索电路36等。
上述用于比较的数据,可以用同样的压缩逻辑进行压缩。在进行比较时,如果比较源数据与比较目标数据用同样的方式压缩,则可以与通常一样进行比较。由此,比较时可以减少载入的数据量。如果载入的数据量变少,则从存储器读出数据所需的时间就会缩短,全部的处理时间也可以缩短。此外,由于可以削减比较器的数量,从而有助于装置的小型化、轻型化、低成本化。用于比较的数据可以用压缩的形式贮存,也可以从存储器读出后,在比较之前进行压缩。
以上,通过实施方式对本发明进行了说明。本领域的技术人员应该理解,实施方式仅为示例,本发明还存在对各构成元素或各处理过程进行组合的各种各样的变形实施例,这些变形实施例也包含在本发明的范围内。
产业上的可利用性
本发明可以用作从数据库中检索数据的对分检索电路。

Claims (4)

1.一种对分检索电路,用于从升序或降序排列有数据的数据库中通过对分检索来检索比较对象数据,包括:
2n-1个比较电路,将从所述数据库中读出的数据与所述比较对象数据进行比较;以及
控制电路,对所述比较电路进行控制,
其中,所述控制电路在所述数据库的检索范围被分为2n个时,使所述检索范围的1/2n、2/2n、...、(2n-1)/2n位置处的数据分别输入到所述2n-1个比较电路中,并使所述2n-1个比较电路将所输入的数据与所述比较对象数据进行比较,由此同时并行地执行n次检索,
所述控制电路根据所述2n-1个比较电路各自的比较结果来判定是否检索到了所述比较对象数据,当未检索到时,所述控制电路将基于所述比较结果所确定的下一次检索对象范围的1/2n、2/2n、...、(2n-1)/2n位置处的数据输入到各比较电路中。
2.根据权利要求1所述的对分检索电路,其特征在于,所述对分检索电路还包括连接到各所述比较电路的2n-1个数据库,
所述控制电路使所述检索对象范围的1/2n、2/2n、...、(2n-1)/2n位置处的数据从连接到各比较电路的数据库中并行地输入。
3.根据权利要求1或2所述的对分检索电路,其特征在于,所述对分检索电路配置有布线逻辑电路。
4.一种对分检索方法,其特征在于,当将贮存有升序或降序排列的数据的数据库的检索范围分为2n个时,使所述检索范围的1/2n、2/2n、...、(2n-1)/2n位置处的数据分别输入到2n-1个比较电路中,并使得所述2n-1个比较电路将所输入的数据与比较对象数据进行比较,由此同时并行地执行n次检索,
根据所述2n-1个比较电路各自的比较结果来判定是否检索到了所述比较对象数据,当未检索到时,所述控制电路将基于所述比较结果所确定的下一次检索对象范围的1/2n、2/2n、...、(2n-1)/2n位置处的数据输入到各比较电路中。
CNB2006800335615A 2006-05-22 2006-05-22 对分检索电路及方法 Expired - Fee Related CN100570550C (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/310154 WO2007135727A1 (ja) 2006-05-22 2006-05-22 バイナリサーチ回路及び方法

Publications (2)

Publication Number Publication Date
CN101263451A CN101263451A (zh) 2008-09-10
CN100570550C true CN100570550C (zh) 2009-12-16

Family

ID=38683362

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800335615A Expired - Fee Related CN100570550C (zh) 2006-05-22 2006-05-22 对分检索电路及方法

Country Status (6)

Country Link
US (1) US8065322B2 (zh)
EP (1) EP2023238A1 (zh)
JP (1) JP3993885B1 (zh)
CN (1) CN100570550C (zh)
CA (1) CA2631133A1 (zh)
WO (1) WO2007135727A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954661B2 (en) * 2010-11-02 2015-02-10 Intel Corporation Binary search pipeline
US10740098B2 (en) 2018-02-06 2020-08-11 International Business Machines Corporation Aligning most significant bits of different sized elements in comparison result vectors
US10579375B2 (en) 2018-02-06 2020-03-03 International Business Machines Corporation Method to build reconfigurable variable length comparators

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168567A (en) 1989-05-30 1992-12-01 Tektronix, Inc. Data sorting circuit
JPH04180425A (ja) 1990-11-15 1992-06-26 Toshiba Corp 通信システム
JPH07191824A (ja) 1993-12-24 1995-07-28 Nippon Telegr & Teleph Corp <Ntt> 大小比較回路およびレベル判別回路
JPH1185510A (ja) 1997-09-02 1999-03-30 Sony Corp マイクロコントローラ

Also Published As

Publication number Publication date
US8065322B2 (en) 2011-11-22
CN101263451A (zh) 2008-09-10
EP2023238A1 (en) 2009-02-11
US20090299971A1 (en) 2009-12-03
JP3993885B1 (ja) 2007-10-17
JPWO2007135727A1 (ja) 2009-09-24
WO2007135727A1 (ja) 2007-11-29
CA2631133A1 (en) 2007-11-29

Similar Documents

Publication Publication Date Title
CN101147381B (zh) 数据处理装置
CN100580644C (zh) 通信控制装置及通信控制系统
US7672941B2 (en) Pattern matching using deterministic finite automata and organization of such automata
CN102857493B (zh) 内容过滤方法和装置
CN101213528B (zh) 数据处理系统
TW200301429A (en) A method of improving the lookup performance of tree-type knowledge base searches
CN1573714A (zh) 比较多个字节的数据与已存储的字符串段的方法及系统
CN112765271A (zh) 区块链交易索引的存储方法、装置、计算机设备及介质
CN1641685A (zh) 并行模式检测引擎集成电路、相关方法及数据处理系统
CN100378663C (zh) 将应用程序动态下载到用户识别模块的方法、系统及模块
CN101026576A (zh) 兼顾匹配策略的处理分段报文串模式匹配的方法及装置
CN100570550C (zh) 对分检索电路及方法
CN104253754B (zh) 一种acl快速匹配的方法和设备
CN101305352A (zh) 通信管理系统、通信管理方法及通信控制装置
CN102982275A (zh) 一种运行应用程序的安全控制方法和装置
CN106686141A (zh) 资源下载方法及装置
CN104572482B (zh) 一种过程变量的存储方法及装置
CN101589603B (zh) 测试装置
CN111819552A (zh) 访问控制列表的管理方法及装置
CN110704419A (zh) 数据结构、数据索引方法、装置及设备、存储介质
JP4201822B2 (ja) データ処理装置
JPWO2009066340A1 (ja) 判定装置及び判定方法
CN101854341A (zh) 用于数据流的模式匹配方法和装置
CN110377584A (zh) 一种基于元数据的数据结构版本兼容的存取方法及装置
KR102055494B1 (ko) 시그니처 및 pcre 탐색을 위한 코드 프로세서, 그리고 이를 이용한 시그니처 및 pcre 탐색 방법

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091216

Termination date: 20160522