KR20080045761A - 이진 탐색 회로 및 방법 - Google Patents

이진 탐색 회로 및 방법 Download PDF

Info

Publication number
KR20080045761A
KR20080045761A KR1020087009071A KR20087009071A KR20080045761A KR 20080045761 A KR20080045761 A KR 20080045761A KR 1020087009071 A KR1020087009071 A KR 1020087009071A KR 20087009071 A KR20087009071 A KR 20087009071A KR 20080045761 A KR20080045761 A KR 20080045761A
Authority
KR
South Korea
Prior art keywords
data
comparison
circuit
database
search
Prior art date
Application number
KR1020087009071A
Other languages
English (en)
Inventor
미추구 나고야
Original Assignee
듀아키시즈 가부시키가이샤
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 듀아키시즈 가부시키가이샤 filed Critical 듀아키시즈 가부시키가이샤
Priority to KR1020087009071A priority Critical patent/KR20080045761A/ko
Publication of KR20080045761A publication Critical patent/KR20080045761A/ko

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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/20Comparing separate sets of record carriers arranged in the same sequence to determine whether at least some of the data in one set is identical with that in the other set or sets

Landscapes

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

Abstract

본 발명은 고속의 이진 탐색을 가능하게 하는 기술을 제공한다.
이진 탐색 회로(36)는 이진 탐색에 의해, 비교 타겟 데이터에 대한 데이터 부분들을 오름차순 또는 내림차순으로 정렬하여 저장하는 데이터베이스(50)를 탐색한다. 비교 회로들(36A, 36B, 및 36C)은 데이터베이스(50A, 50B, 및 50C)로부터 리드된 데이터 부분들을 상기 비교 타겟 데이터와 비교한다. 제어 회로(36Z)는 상기 데이터베이스(50)의 탐색 범위 내의 1/2n, 2/2n, ..., (2n-1)/2n 위치에 있는 각각의 데이터 부분을 2n-1개의 비교 회로들에 각각 입력시키고, 상기 비교 회로들로 하여금 입력된 데이터 부분들과 상기 비교 타겟 데이터를 비교하여 하여 n번의 탐색을 동시에 병렬적으로 수행할 수 있게 한다.
이진 탐색, 데이터, 타겟, 데이터베이스, 비교, 병렬적

Description

이진 탐색 회로 및 방법{BINARY SEARCH CIRCUIT AND METHOD}
본 발명은 데이터 프로세싱 기술에 관한 것이고, 보다 구체적으로는 이진 탐색 방법을 이용하여 주어진 데이터에 대한 데이터베이스를 탐색하는 회로 및 방법에 관한 것이다.
인터넷의 인프라가 정비되어, 휴대 전화 단말, 퍼스널 컴퓨터, VoIP(Voice over Internet Protocol) 전화 단말 등의 통신 단말이 널리 보급된 현재, 인터넷의 이용자는 폭발적으로 증가하고 있다. 이와 같은 상황하에서, 컴퓨터 바이러스, 해킹, 스팸 메일 등 보안성에 관한 문제가 현저하게 되어, 통신을 적절하게 제어하는 기술이 요구되고 있다. 통신 환경의 향상과 더불어 통신량도 매우 증가하여 대용량의 데이터를 고속으로 프로세싱하는 통신 제어 장치의 필요성이 증가하고 있다.
도 1은 종래의 통신 제어 장치(1)의 구성을 나타낸다. 종래의 통신 제어 장치(1)는 수신 측의 통신 제어부(2)와, 패킷 프로세싱부(3)와, 송출 측의 통신 제어부(4)를 구비한다. 통신 제어부(2,4)는 각각 패킷의 물리층(physical layer of packet)의 프로세싱을 수행하는 PHY 프로세싱부(5a,5b)와, 패킷의 MAC층의 프로세싱을 수행하는 MAC 프로세싱부(6a,6b)를 구비한다. 패킷 프로세싱부(3)는 IP(Internet Protocol) 프로토콜 프로세싱을 수행하는 IP 프로세싱부(7), TCP(Transport Control Protocol) 프로토콜 프로세싱을 수행하는 TCP 프로세싱부(8), 및 프로토콜에 따른 프로세싱을 수행하는 프로토콜 프로세싱부와 어플리케이션층의 프로세싱을 수행하는 AP 프로세싱부(9)를 구비한다. AP 프로세싱부(9)는 패킷에 포함되는 데이터에 따라 필터링 등의 프로세싱을 수행한다.
특허문헌 1(일본 공개공보): 특개평 4-180425호
종래 통신 제어 장치(1)의 패킷 프로세싱부(3)는, 범용 프로세서, 또는 CPU, 및 상기 CPU에서 운용되는 OS를 이용하여 소프트웨어에 의해 구현된다. 그러나, 그러한 종래 구성을 이용할 경우, 상기 통신 제어 장치(1)의 성능은 CPU의 성능에 의존하고, 이는 대용량의 패킷들을 고속으로 프로세싱할 수 있는 통신 제어 장치의 제작을 어렵게 만든다. 예를 들면, 64비트의 CPU는 한번에 64비트까지만 프로세스할 수 있고, 따라서 이것보다 더 좋은 성능을 갖는 통신 제어 장치는 존재하지 않는다.
이러한 방식으로, 광학 통신 네트워크들을 포함하는 인프라의 보급 덕분에 노드(node) 사이의 데이터 통신 속도가 매우 향상되었음에도 불구하고, 통신 제어 장치들의 프로세싱 속도가 제한되기 때문에 상기 통신 제어 장치의 성능을 충분히 이용할 수 없다. 그러므로, 가능한 한 고속의 통신 제어 장치들을 신속하게 제공하는 것에 대한 요구가 강력하게 발생한다.
본 발명은 이러한 관점에서 안출된 것이며, 본 발명의 일반적인 목적은 고속 통신 환경을 가능하게 하는 기술을 제공하는 것이다.
본 발명의 일 양상은 이진 탐색 회로에 관한 것이다. 상기 이진 탐색 회로는, 이진 탐색에 의해 타겟 데이터를 비교하기 위해서 데이터베이스를 탐색하고 오름차순 또는 내림차순으로 데이터 부분을 정렬한다. 상기 회로는, 상기 데이터로부터 리드된 데이터 부분을 상기 비교 타겟 데이터와 비교하는 2n-1 개의 비교 회로들; 및 상기 비교 회로들을 제어하는 제어 회로를 포함한다. 상기 데이터베이스의 탐색 범위가 2n개로 분할될 때, 상기 제어 회로는 상기 탐색 범위 내의 1/2n, 2/2n ,..., (2n-1)/2n 위치에 있는 데이터 부분 각각을 상기 2n-1개의 비교 회로들에 각각 입력하고, 상기 비교 회로로 하여금 입력된 데이터 부분들과 상기 비교 타킷 데이터를 비교하게 함으로써, n번의 탐색을 동시에 병렬적으로 수행할 수 있게 한다.
상기 구성을 이용하면, 상기 데이터베이스로부터 데이터를 로드하는데 필요로 하는 시간을 줄일 수 있다. 또한, 비교 회수를 절반으로 줄일 수 있으며, 따라서 탐색 시간도 줄일 수 있다.
상기 제어 회로는 상기 2n-1 개의 비교 회로들로부터의 비교 결과들에 근거하여 상기 비교 타겟 데이터가 찾아지는지를 결정할 수 있고, 상기 비교 타겟 데이터가 찾아지지 않으면 상기 제어 회로는 상기 비교 결과들에 기반하여 정의된 다음의 탐색 범위 내의 1/2n, 2/2n, ..., (2n-1)/2n 위치에 있는 각각의 데이터 부분을 각각의 비교 회로들에 입력할 수 있다.
상기 이진 탐색 회로는, 각각의 비교 회로들과 연결된 2n-1개의 데이터베이스를 포함할 수 있다. 따라서, 상기 제어 회로는 상기 탐색 범위 내의 1/2n, 2/2n , ..., (2n-1)/2n 위치에 있는 데이터 부분을 각각의 비교 회로들에 연결된 상기 데이터베이스로부터 병렬적으로 입력할 수 있다. 결과적으로, 데이터 부분들은 데이터베이스들로부터 다수의 비교 회로들로 병렬적으로 로드될 수 있고, 그 결과 데이터 로딩 시간을 감소시킬 수 있다.
상기 이진 탐색 회로는 유선 로직 회로(wired logic circuit)로 구성될 수 있다. 예를 들면, 상기 회로는 FPGA(Field Programmable Gate Array)를 이용하여 구성될 수 있다. 전용 하드웨어 회로로서 이진 탐색 회로를 구성함으로써, CPU의 성능과 무관하게 원하는 성능을 갖는 이진 탐색 회로를 얻을 수 있다.
본 발명의 또 다른 양상은 이진 탐색 방법에 관한 것이다. 이진 탐색 방법에 있어서, 데이터 부분들을 오름차순 또는 내림차순으로 정렬하여 저장하는 데이터베이스의 탐색 범위가 2n개로 분할될 때, 상기 탐색 범위 내의 1/2n, 2/2n , ...,(2n-1)/2n 위치에 있는 각 데이터 부분은 상기 2n-1개의 비교 회로들로 입력되고, 상기 비교 회로들이 입력된 데이터 부분들과 비교 타겟 데이터를 비교함으로써 n번의 탐색이 동시에 병렬적으로 수행된다.
또한, 앞서 언급한 구성 요소들, 및 방법들, 장치들, 시스템들, 기록 수단들, 및 컴퓨터 프로그램들의 형태를 갖는 발명의 구현들이 본 발명의 추가적인 형태로서 실시될 수 있다.
도 1은 종래의 통신 제어 장치의 구성을 나타내는 블록도이다.
도 2는 본 발명에 따른 통신 제어 장치의 구성을 나타내는 블록도이다.
도 3은 패킷 프로세싱 회로의 구성을 나타내는 블록도이다.
도 4는 위치 검출 회로의 구성을 나타내는 개략도이다.
도 5는 상기 위치 검출 회로의 다른 예를 나타내는 개략도이다.
도 6은 상기 위치 검출 회로의 또 다른 예를 나타내는 개략도이다.
도 7은 제1 데이터베이스의 내부 데이터를 예시적으로 나타내는 개략도이다.
도 8은 상기 제1 데이터베이스의 내부 데이터의 다른 예를 나타내는 개략도이다.
도 9은 상기 제1 데이터베이스의 내부 데이터의 또 다른 예를 나타내는 개략도이다.
도 10은 인덱스 회로의 다른 예를 나타내는 개략도이다.
도 11은 이진 탐색 회로에 포함된 비교 회로의 구성을 나타내는 개략도이다.
도 12는 이진 탐색 회로의 구성을 나타내는 개략도이다.
도 13은 제1 데이터베이스의 내부 데이터의 또 다른 예를 나타내는 예시도이다.
도 14는 제2 데이터베이스의 내부 데이터의 예를 나타내는 예시도이다.
도 15는 제2 데이터베이스의 내부 데이터의 다른 예를 나타내는 예시도이다.
※ 도면의 주요 부분에 대한 설명 ※
10 : 통신 제어 장치 20 : 패킷 프로세싱 회로
30 : 탐색 회로 32 : 위치 검출 회로
33 : 비교 회로 34 : 인덱스 회로
35 : 비교 회로 36 : 이진 탐색 회로
36A.36B 및 36C : 비교 회로들
36Z : 제어 회로 40 : 프로세스 수행 회로
50 : 제1 데이터베이스 60 : 제2 데이터베이스
도 2는 본 발명에 따른 데이터 프로세싱 장치의 일 예로서 제공되는 통신 제어 장치의 구성을 나타낸다. 본 발명의 실시예에 따른 통신 제어 장치(10)는, 종래의 통신 제어 장치에 사용되는 CPU 및 OS를 포함하는 소프트웨어에 의해 구현되는 패킷 프로세싱부를 대신하여, 유선 로직 회로를 이용하는 전용 하드웨어로서 구성되는 패킷 프로세싱 회로(20)를 포함한다. 통신 데이터를 CPU와 같은 범용 프로세싱 회로에서 운용되는 OS 및 소프트웨어로 프로세싱하지 않고 상기 통신 데이터를 프로세싱하는 전용 하드웨어 회로를 제공함으로써, CPU 또는 OS에 의해 기인하는 성능 한계를 극복할 수 있고, 따라서 프로세싱 능력이 높은 통신 제어 장치를 구현하는 것이 가능하다.
예를 들어, 패킷 필터링 등을 수행하기 위해서, 패킷에 포함되는 데이터에 필터링의 판단 기준이 되는 기준 데이터가 포함되는지를 탐색하는 경우에 CPU를 이 용하여 통신 데이터와 기준 데이터를 비교하면, 한번에 겨우 64 비트를 비교할 수밖에 없고 프로세싱 속도를 향상시키려고 해도 CPU 성능으로 한계점에 이르는 문제가 있었다. CPU에서는 통신 데이터에서 64비트를 메모리에 로딩하고 기준 데이터와 비교를 수행하여 계속하여 다음 64비트를 메모리에 로딩하는 프로세싱을 수회 더 반복할 필요가 있어서, 메모리에 로딩 시간이 방해되어 프로세싱 속도에 한계가 있다.
이에 대하여, 본 실시의 형태에서는 통신 데이터와 기준 데이터를 비교하도록 유선 논리 회로에 의해 구성된 전용 하드웨어 회로가 제공된다. 이 회로는 64비트보다 더 긴 데이터 길이, 즉 1024비트 데이터 길이의 비교를 가능하게 하도록 병렬적으로 설치된 복수의 비교기를 포함한다. 이에 의해 전용 하드웨어를 구비함으로써, 동시에 병렬로 다수의 비트 매칭(bit matching)을 수행할 수 있다. 종래의 CPU를 이용한 통신 제어 장치(1)에서는 한번에 64비트밖에 프로세싱할 수 없던 경우를 한번에 1024비트의 프로세싱을 가능하게 하여, 비약적으로 프로세싱 속도를 향상시킬 수 있다. 비교기의 수를 많이 하면 프로세싱 능력도 향상되지만 비용이나 사이즈도 증가하므로, 원하는 프로세싱 성능, 비용, 사이즈 등을 고려하여 최적의 하드웨어 회로를 설계할 수 있다.
또한, 본 실시의 형태의 통신 제어 장치(10)는 유선 논리 회로를 이용하는 전용 하드웨어에 의해 구성되므로, OS(Operating System)를 필요로 하지 않는다. 이 때문에, OS 인스톨, 버그 대응, 업그레이드 등의 작업이 필요 없고, 관리나 유지를 위한 비용이나 필요한 공정 수를 감소시킬 수 있다. 또한, 범용적인 기능이 요구되는 CPU와는 달리 불필요한 기능을 포함하고 있지 않아서, 불필요한 리소스를 이용하지 않고, 저 비용화, 회로 면적의 감소, 프로세싱 속도의 향상 등을 기대할 수 있다. 또한, OS를 이용한 종래의 통신 제어 장치와는 달리, 여분의 기능을 가지고 있어 보안 홀(security holes) 등이 발생할 가능성이 낮고, 네트워크를 통한 악의의 제 3 자로부터 공격에 대응하는 내성을 향상시킨다.
종래의 통신 제어 장치(1)는 CPU와 OS를 전제로 한 소프트웨어에 의해 패킷을 프로세싱하므로, 패킷 전체의 데이터를 수신한 후 프로토콜 프로세싱을 수행하고 데이터가 어플리케이션에 전달된다. 이에 대하여, 본 실시의 형태의 통신 제어 장치(10)에는 전용 하드웨어 회로로 프로세싱을 수행함으로써, 패킷 전체의 데이터를 수신한 후 프로세싱을 개시할 필요가 없고, 프로세싱에 필요한 데이터를 수신하면, 후속 데이터의 수신을 기다리지 않고, 임의의 시점에서 프로세싱을 개시할 수 있다. 예를 들어, 후술하는 위치 탐색 회로에서 위치 검출 프로세싱은 비교대상 데이터의 위치를 특정하기 위한 위치 특정 데이터를 수신한 시점에서 개시할 수 있다. 이에 의해, 전체의 데이터의 수신을 기다리지 않고 다양한 프로세싱을 플로팅(floating)하여 실행할 수 있으므로, 패킷 데이터를 프로세싱할 시간이 단축될 수 있다.
도 3은 패킷 프로세싱 회로의 내부 구성을 도시한다. 상기 패킷 프로세싱 회로(20)는, 기준 데이터를 저장하고 통신 데이터에서 수행되는 프로세싱이 결정될 때 참조되는 제1 데이터베이스들(50A,50B,및 50C)(이하, '제1 데이터베이스(50)'로 지칭될 수 있음); 통신 데이터와 기준 데이터를 비교함으로써 기준 데이터에 대한 수신된 통신 데이터를 탐색하는 탐색 회로(30); 상기 탐색 회로(30)의 탐색 결과 및 서로 연관된 상기 통신 데이터에서 수행되는 프로세싱의 내용을 저장하는 제2 데이터베이스(60); 및 상기 탐색 회로(30)의 탐색 결과에 근거한 통신 데이터 및 상기 제2 데이터베이스(60)에 저장된 조건들을 프로세싱하는 프로세스 수행 회로(40)를 포함한다.
상기 탐색 회로(30)는, 통신 데이터에서 기준 데이터와 비교되는 비교 타겟 데이터의 위치를 검출하는 위치 검출 회로(32); 상기 제1 데이터베이스(50)에 저장되는 상기 기준 데이터가 분할되는 3개 이상의 범위 중 어떤 범위가 상기 비교 타겟 데이터가 속하는지를 결정하는 결정 회로의 일 예로서 제공되는 인텍스 회로(34); 및 상기 비교 타겟 데이터와 매치되는 상기 기준 데이터에 대한 상기 결정된 범위를 탐색하는 이진 탐색 회로(36)를 포함한다. 임의의 탐색 기술을 이용하여 상기 비교 타겟 데이터에 대한 상기 기준 데이터가 탐색될 수 있고, 이진 탐색 방법이 본 발명에서 사용된다. 이하 후술할 바와 같이, 진보된 이진 탐색 방법이 사용되기 때문에, 본 발명에서는 3개의 제1 데이터베이스(50)가 제공된다. 상기 제1 데이터베이스들(50A,50B,및 50C)은 동일한 기준 데이터를 저장한다.
도 4는 위치 검출 회로의 내부 구성도이다. 위치 검출 회로(32)는 비교 타겟 데이터의 위치를 식별하기 위한 위치 식별 데이터와 통신 데이터를 비교하기 위한 복수의 비교 회로(33a~33f)를 포함한다. 여기서는 6개의 비교 회로(33a~33f)가 제공되어 있지만 후술하는 것처럼, 비교 회로의 개수는 임의의 수일 수 있다. 각각의 비교 회로(33a~33f)에는 통신 데이터가 소정의 데이터 길이, 예를 들어 1 바이트씩 쉬프트되어 입력된다. 그리고, 복수의 비교 회로(33a~33f)에서 동시에 병렬로 하여, 검출해야하는 위치 특정 데이터와 통신 데이터의 비교가 수행된다.
본 실시의 형태에 있어서는, 통신 제어 장치(10)의 작동을 설명하기 위한 예로서, 통신 데이터 중에 포함되는 「No. ###」인 문자 예를 검출하여, 그 문자열 중에 포함되는 숫자 「###」을 기준 데이터로 비교하여 기준 데이터에 합치하는 경우는 패킷의 통과를 허용하고, 합치되지 않는 경우에는 패킷을 파기하는 프로세싱을 수행하는 경우를 설명한다.
도 4의 예에서는, 통신 데이터 중에서, 숫자 「###」의 위치를 특정하기 위한 위치 특정 데이터 「No.」를 검출하도록, 통신 데이터 「01 No. 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"와 같은 기결정 데이터를 상기 위치 식별 데이터의 뒷부분에 채워넣는다. 유사하게, 위치 식별 데이터와 비교되는 통신 데이터에 관해서는, 상기 위치 식별 데이터의 길이와 동일한 데이터 길이가 상기 통신 데이터로부터 추출되고, 상기 위치 식별 데이터 이후에 채워진 동일한 데이터가 뒷부분에 채워진다. 그러한 경우에 있어, 상기 통신 데이터가 작업으로서(as work) 복사될 수 있고, 원래의 통신 데이터를 변화시키지 않도록 하기 위해 상기 복사된 데이터는 상기 비교 회로들(33a~33f)에 입력되도록 프로세싱될 수 있다. 따라서, 상기 위치 식별 데이터의 길이에 무관하게 일반적으로 상기 위치 검출 회로(32)가 사용될 수 있다.
도 6은 상기 위치 검출 회로의 또 다른 예를 도시한다. 도 6에 도시된 예에서, 기결정 데이터는 도 5에서 도시된 예와 동일한 방법으로 위치 식별 데이터의 뒷부분에 채워지고, 게다가 그러한 데이터는 와일드 카드(wild card)로서 간주된다. 즉, 데이터가 와일드 카드로서 상기 비교 회로들(33a~33f)에 입력될 때, 어떠한 타겟 데이터에 대해서도 비교되는 타겟 데이터의 대응하는 부분이 상기 와일드 카드 데이터에 매치되는 것으로 결정된다. 따라서, 상기 위치 검출 회로(32)는 위치 식별 데이터의 길이에 무관하게 일반적으로 사용될 수 있다.
도 7은 상기 제1 데이터베이스의 내부 데이터를 예시적으로 도시한다. 상기 제1 데이터베이스(50)는, 필터링(filtering), 라우팅(routing), 스위칭(switching), 또는 치환(replacement)와 같은 패킷에의 프로세싱이 결정될 때 참조되는 참조 데이터를 저장한다. 기준 데이터 부분들은 몇몇 정렬 조건들에 따라 정렬되고, 오름차순 또는 내림차순으로 저장된다. 도 7의 예에서, 1000개의 기준 데이터 부분이 저장된다.
상기 인덱스 회로(34)는, 제1 데이터베이스(50)에 저장된 기준 데이터가 분할되는(52a~52d와 같은) 3개 이상의 범위들 중에 비교 타겟 데이터가 어느 범위에 속하는지를 결정한다. 도 7의 예에서, 1000개의 기준 데이터 부분들이 4개의 범위(52a~52d)로 분할되고, 각각의 범위에는 250개의 데이터 부분들이 존재한다. 상기 인덱스 회로(34)는, 범위 경계에서의 기준 데이터 부분을 상기 비교 타겟 데이터와 비교하는 다수의 비교 회로들(35a~35c)을 포함한다. 상기 비교 회로들(35a~35c)은 경계들에서의 기준 데이터 부분들과 타겟 데이터를 병렬적으로 동시 에 비교하기 때문에, 한 번의 비교 프로세싱 수행으로 상기 비교 타겟 데이터가 어느 범위에 속하는 지를 결정할 수 있다.
인덱스 회로(34)의 비교 회로들(35a~35c)에 입력되는 경계에서의 기준 데이터의 부분들은 통신 제어 장치(10)의 외부에 제공되는 장치에 의해 설정될 수 있다. 대안적으로, 기결정된 제1 데이터베이스(50)의 소정 위치의 기준 데이터가 자동으로 입력되도록 할 수 있다. 후자의 경우, 제1 데이터베이스(50)를 업데이트하여도, 자동으로 제1 데이터베이스(50)의 소정 위치의 기준 데이터가 비교 회로 (35a~35c)에 입력되므로, 초기 설정 등을 필요로 하지 않고 즉시 통신 제어 프로세싱을 실행시킬 수 있다.
전술한 바와 같이, CPU에 의해 이진 탐색을 수행하는 경우는 동시에 복수의 비교를 수행할 수 없지만, 본 실시의 형태의 통신 제어 장치(10)에는 복수의 비교회로(35a~35c)를 병렬로 제공함으로써, 동시 병렬적인 비교 프로세스를 가능하게 하여 탐색 속도를 현저히 향상시킬 수 있다.
상기 인덱스 회로(34)가 관련된 범위를 결정한 이후에는, 상기 이진 탐색 회로(36)가 이진 탐색 방법을 이용하여 탐색을 수행한다. 상기 이진 탐색 회로(36)는 상기 인덱스 회로(34)에 의해 결정된 범위를 추가적으로 2n개로 분할하고, 경계에 존재하는 기준 데이터 부분들을 상기 비교 타겟 데이터와 비교하며, 그 결과 어떠한 범위에 상기 비교 타겟 데이터가 속하는지를 결정한다. 상기 이진 탐색 회로(36)는 기준 데이터와 비교 타겟 데이터를 비트 단위로 비교하는 다수의 비교기 를 포함한다. 예를 들면, 본 발명의 실시예에서 1024개의 비교기가 제공되어 1024비트에서의 비트 매칭(bit matching)을 수행한다. 상기 비교 타겟 데이터가 속하는 범위가 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은 상기 제1 데이터베이스의 내부 데이터의 다른 예를 도시한다. 도 8의 예에서, 기준 데이터 부분들의 개수는 제1 데이터베이스(50)에 저장할 수 있는 데이터 부분들의 개수(예컨대, 이 경우는 1000개)보다 더 적다. 이러한 예에서, 상기 제1 데이터베이스(50)는 기준 데이터 부분들을 내림 차순으로 정렬시키고, 그 안에 최종 데이터 위치로 시작한다. 다음으로, 데이터 위치들의 나머지에는 0이 저장된다. 상기 데이터베이스는 로딩 영역의 상단이 아닌 하단으로부터 데이터로 로드되고, 필요하면, 상기 로딩 영역의 전면을 차지하는 모든 빈 공간들은 0으로 치환된다. 결과적으로, 이진 탐색에 필요한 탐색 시간이 일정할 수 있도록, 상기 데이터베이스는 임의의 시간에 완전히 로드된다. 게다가, 상기 이진 탐색 회로(36)가 탐색 동안에 기준 데이터 "0"을 리드(read)하면, 상기 비교 결과가 분명할 때, 상기 회로는 비교를 수행하지 않고도 상기 범위를 식별할 수 있으며, 다음의 비교 단계로 진행할 수 있다.
CPU에 의한 소프트웨어 프로세싱에 있어서는 제1 데이터베이스(50)에 기준 데이터를 저장할 때, 최초 데이터 위치에서 오름 차순으로 기준 데이터가 저장된다. 나머지 데이터 위치에는, 예컨대 최대값 등이 저장되지만, 이 경우 이진 탐색에 있어서 상술한 것처럼 비교 회로의 생략은 있을 수 없다. 상술한 비교 기술은 전용 하드웨어 회로에 의해 탐색 회로(30)를 구성한 것으로 구현된다.
도 9은 상기 제1 데이터베이스의 내부 데이터를 나타내는 또 다른 예를 도시한다. 도 9의 예에서, 기준 데이터는 3개 이상의 범위들로 균일하게 분할되지 않고 서로 다른 수의 데이터 부분들을 수용하는 범위들로 불균일하게 분할되며, 예컨대 범위 52a는 500개의 데이터 부분을 포함하고 범위 52b는 100개의 데이터 부분을 포함한다. 통신 데이터에서의 기준 데이터 발생 빈도(frequency)의 분포에 의존하여, 이러한 범위들이 결정될 수 있다. 구체적으로, 각각의 범위들에 속하는 기준 데이터의 발생 빈도의 합이 거의 동일하도록, 상기 범위들이 결정될 수 있다. 따라서, 상기 탐색 효율은 향상될 수 있다. 상기 인덱스 회로(34)의 상기 비교 회로들(35a~35c)에 입력되는 상기 기준 데이터는 외부로부터 변경가능할 수 있다. 그러한 경우에서는, 탐색 효율이 최적화되도록 상기 범위가 다이내믹하게 설정될 수 있다.
도 10은 상기 인덱스 회로의 다른 예를 도시한다. 도 7 내지 도 9의 예에서, 상기 인덱스 회로(34)는 3 개의 비교 회로들(35a~35c)을 이용하여, 비교 타겟 데이터가 제1 데이터베이스(50)의 4개의 범위들(52a~52d) 중 어느 범위에 속하는 지를 결정한다. 반면에, 도 10에 도시된 예에서는, 상기 인덱스 회로(34)는 4개의 비교 회로들(35d~35g)을 제공하여 비교 타겟 데이터가 각각의 4개의 범위들(52a~52d)에 속하는지 아닌지를 결정한다. 예를 들면, 상기 비교 회로(35d)에는 상기 제1 데이터베이스(50)의 0번째 및 250번째 기준 데이터 부분들 및 비교 타겟 데이터가 입력된다. 다음으로, 각각의 기준 데이터 부분은 상기 비교 타겟 데이터와 비교되고, 상기 기준 데이터가 범위 52a에 포함되는지를 결정한다. 상기 비교 회로들(35d~35g)에 의해 제공되는 비교 결과들은 결정 회로(35z)로 입력되고, 상기 결정 회로는 상기 기준 데이터가 포함되는 범위를 제공하는 정보를 출력한다. 각각의 비교 회로들(35d~35g)은 기준 데이터가 두 개의 입력 기준 데이터 부분들 사이에 포함되는지를 나타내는 결과를 출력할 수 있고, 또는 범위에 포함되는 기준 데이터가 상기 범위보다 더 크거나 또는 상기 기준 데이터가 상기 범위보다 더 작은 것을 나타내는 결과를 출력할 수 있다. 상기 비교 타겟 데이터가 52a 내지 52d의 어느 범위에도 포함되지 않는 것으로 결정되면, 상기 비교 타겟 데이터가 상기 제1 데이 터베이스(50) 내에 존재하지 않는 것으로 확인할 수 있다. 따라서, 추가적인 이진 탐색을 수행하지 않고 상기 탐색이 종료될 수 있다.
도 11은 상기 이진 탐색 회로에 포함된 비교 회로의 구성을 도시한다. 앞서 언급한 바와 같이, 이진 탐색 회로(36)에서의 비교 회로는 36a, 36b, ...와 같은 1024개의 비교기들을 포함한다. 각각의 비교기(36a,36b 등)는 1 비트의 기준 데이터(54) 및 1 비트의 비교 타겟 데이터(56)를 수신하여 비트들 가치(value)를 비교한다. 상기 인덱스 회로(34)의 비교 회로들(35a~35c)은 유사한 내부 구성들을 갖는다. 따라서, 상기 비교 프로세싱은 전용 하드웨어 회로에 의해 수행되기 때문에, 많은 수의 비교 회로들이 병렬적으로 운영되어 많은 비트 수를 한번에 비교할 수 있도록 하며, 그 결과 비교 프로세싱의 속도를 향상시킨다.
도 12는 이진 탐색 회로의 구성을 도시한다. 상기 이진 탐색 회로(36)는, 도 11에 도시된 바와 같은 1024개의 비교기들(36a, 36b, 등)을 포함하는 비교 회로들(36A, 36B, 및 36C) 및 상기 비교 회로들을 제어하는 제어 회로(36Z)를 포함한다.
종래의 이진 탐색 방법에서는, 데이터 부분들이 오름차순 또는 내림차순으로 정렬되는 데이터베이스의 탐색 범위에 있는 절반 위치에 존재하는 데이터부분이 리드되어, 상기 제1 탐색에서의 비교 타겟 데이터와 비교된다. 데이터 부분들이 오름차순으로 정렬되고 만약 비교 타겟 데이터가 리드된 데이터보다 작을 때에, 이것은 상기 비교 타겟 데이터가 상기 탐색 범위의 첫 번째 절반 영역 내에 존재할 수 있음을 의미한다. 따라서, 제2 탐색에서는, 상기 탐색 범위가 상기 첫 번째 절반 영 역으로 새롭게 설정되고, 상기 범위 내의 절반 위치에, 즉 원래의 탐색 영역의 1/4 위치에 존재하는 데이터 부분들이 리드되어 상기 비교 타겟 데이터와 비교된다. 역으로, 상기 비교 타겟 데이터가 상기 리드된 데이터보다 더 크면, 이것은 상기 비교 타겟 데이터가 상기 탐색 범위의 두 번째 절반 영역 내에 존재할 수 있음을 의미한다. 따라서, 제2 탐색에서는, 상기 탐색 범위가 상기 두 번째 절반 영역으로 새롭게 설정되고, 상기 범위 내의 절반 위치에, 즉 원래의 탐색 영역의 3/4 위치에 존재하는 데이터 부분들이 리드되어 상기 비교 타겟 데이터와 비교된다. 이러한 방식으로, 타겟 데이터에 도달할 때까지, 상기 탐색 범위가 절반씩 반복적으로 좁혀진다.
대조적으로, 본 발명의 실시예에서, 3 개의 비교 회로들이 이진 탐색을 위해 제공되고, 상기 탐색 범위에서의 절반 위치에 있는 데이터가 제1 탐색에 대한 비교 타겟 데이터와 비교될 때, 상기 비교 타겟 데이터 및 상기 탐색 영역에서의 1/4 및 3/4 위치에서의 데이터 부분 각각 사이의 상기 제2 탐색에 대한 비교는 동시에 병렬적으로 수행될 수 있다. 따라서, 상기 제1 및 제2 탐색들이 동시에 수행될 수 있고, 그 결과 상기 데이터베이스로부터 데이터를 로드하는데 필요로 하는 시간을 감소시킨다. 또한, 3개의 비교 회로들을 병렬적으로 운용함으로써, 비교기들의 개수를 절반으로 감소시킬 수 있고, 그 결과 탐색 시간을 감소시킨다.
도 12의 예에서, 3개의 비교 회로들이 제공되어 두 개의 탐색이 동시에 수행된다. 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)는 상기 비교 회로들로부터 비교 결과들을 획득하고, 상기 비교 결과들이 변화하는 포인트들 사이의 범위로 상기 다음의 탐색 범위를 설정한다. 다음으로, 상기 제어 회로(36Z)는, 설정된 다음의 탐색 영역에 있는 1/2n, 2/2n, ..., (2n-1)/2n 위치에서의 각 데이터 부분을 상기 각각의 비교 회로들에 입력시킨 다.
본 발명의 실시예에서 3개의 제1 데이터베이스(50)가 제공된다; 제1 데이터베이스 50A는 상기 비교 회로 36A와 연결되어 탐색 영역에의 1/4 위치에 있는 데이터 부분을 상기 비교 회로 36A에 공급하고; 제1 데이터베이스 50B는 상기 비교 회로 36B와 연결되어 탐색 영역에의 2/4 위치에 있는 데이터 부분을 상기 비교 회로 36B에 공급하고; 제1 데이터베이스 50C는 상기 비교 회로 36C와 연결되어 탐색 영역에의 3/4 위치에 있는 데이터 부분을 상기 비교 회로 36C에 공급한다. 그러므로, 데이터 부분은 상기 비교 회로들로 동시에 병렬적으로 로드될 수 있고, 그 결과 데이터 로딩 시간을 감소시키고 고속의 이진 탐색을 가능하게 한다.
더 많은 비교 회로들을 제공하는 것은 상기 탐색 속도를 향상시킬 것이다. 시스템의 비용과 사이즈를 고려하여, 충분한 수의 비교 회로들을 구비하여 원하는 탐색 속도를 얻을 수 있다. 또한, 가능한 한 많은 비교 회로들을 갖는 제1 데이터베이스가 제공되는 것이 바람직함에도 불구하고, 몇몇 비교 회로들은 시스템의 비용 또는 사이즈를 고려하여 데이터베이스를 공유할 수 있다.
도 13은 상기 제1 데이터베이스의 내부 데이터의 또 다른 예를 도시한다. 도 13에 도시된 제1 데이터베이스(50)는 필터링이 적용되는 콘텐츠의 URL들을 저장한다. 상기 제1 데이터베이스(50)에 저장되는 데이터는, "00H" 또는 "01H"와 같은 와일드 카드로서 인식되는 기결정 데이터를 포함할 수 있다. 도 13에 도시된 예에서, "*********"는 "http://www.xx.xx/*********"에서 와일드 카드로서 인식되고, 거기에 대응하는 비교 타겟 데이터가 무엇이든지 간에 그러한 데이터가 매치되는 비교 기들(36a, 36b 등)에서 결정된다. 따라서, "http://www.xx.xx."로 시작하는 모든 문자열은 상기 이진 탐색 회로(36)에 의해서 검출된다. 결과적으로, "http://www.xx.xx/" 도메인 내의 모든 콘텐츠에 필터링을 적용하는 것과 같은 프로세싱이 쉽게 수행될 수 있다.
도 14는 제2 데이터 베이스의 내부 데이터의 예시도이다. 제2 데이터 베이스(60)는, 탐색 회로에 의해 탐색 결과를 저장하는 탐색 결과 영역(62)과, 통신 데이터에 대하여 수행하는 프로세싱 콘텐츠를 저장하는 프로세싱 콘텐츠 영역(64)을 포함하여, 탐색 결과와 프로세스 콘텐츠를 대응시켜 유지한다. 도 14의 예에서, 통신 데이터에 기준 데이터가 포함되어 있는 경우는 그 패킷의 통과를 허용하고, 포함되지 않은 경우는 그 패킷을 파기하는 조건이 설정되어 있다. 프로세싱 수행 회로(40)는, 탐색 결과에 기초하여 제2 데이터베이스(60)에서 프로세싱 콘텐츠를 탐색하여, 통신 데이터에 대하여 프로세싱을 수행한다. 프로세싱 수행 회로(40)도 유선 논리 회로에 의해 구현될 수도 있다.
도 15는 제2 데이터베이스의 내부 데이터의 다른 예시도이다. 도 15의 예에는 기준 데이터마다 프로세싱 콘텐츠가 설정되어 있다. 패킷의 치환을 수행하는 경우, 치환 전의 데이터를 제2 데이터베이스(60)에 저장해둘 수도 있다. 패킷의 라우팅이나 스위칭을 수행하는 경우, 경로에 관한 정보를 제2 데이터베이스(60)에 저장해 둘 수도 있다. 프로세싱 수행 회로(40)는 탐색 회로(30)에 의한 탐색 결과에 따라, 제2 데이터베이스(60)에 저장되어 필터링, 라우팅, 스위칭, 치환 등의 프로세싱을 수행한다. 도 15과 같이, 기준 데이터마다 프로세싱 콘텐츠를 설정하는 경우, 제1 데이터 베이스(50)와 제2 데이터 베이스(60)를 통합할 수 있다.
제1 데이터베이스 및 제2 데이터베이스는 외부에서 재기록 가능하게 설정된다. 이들 데이터 베이스를 교체함으로써, 동시에 통신 제어 장치(10)를 이용하여 다양한 데이터 프로세싱이나 통신 제어를 구현할 수 있다. 또한, 탐색 대상이 되는 기준 데이터를 저장하는 데이터 베이스를 2개 이상 구비하여, 다단계의 탐색 프로세싱을 수행할 수 있다. 이때, 탐색 결과와 프로세싱 콘텐츠를 대응시켜 저장한 데이터베이스를 2개 이상 구비하여, 더 복잡한 조건 분기를 구현할 수 있다. 이에 의하여, 데이터 베이스를 복수 개 구비하여 다단계의 탐색을 수행할 경우에, 위치 검출 회로(32), 인덱스 회로(34), 이진 탐색 회로(36) 등을 복수개 구비할 수 있다.
상술한 비교에 이용되는 데이터는, 동시에 압축 로직에 의해 압축될 수도 있다. 비교할 때에는, 소스 데이터와 타겟 데이터가 동일한 방식으로 압축될 수 있으면, 통상의 동일한 모습의 비교가 가능하다. 이에 의해, 비교시에 로딩하는 데이터 량을 감소시킬 수 있다. 로딩하는 데이터 량이 적다면, 메모리에서 데이터를 리드하기 시작하는 데에 필요한 시간이 단축되므로, 전체의 프로세싱 시간도 단축할 수 있다. 또한, 비교기의 양을 줄일 수 있으므로, 장치의 소형화, 경량화, 저 비용화에 기여할 수 있다. 비교에 이용되는 데이터는 압축된 형식으로 저장될 수 있고, 메모리에서 리드하기 시작한 후, 비교 전에 압축될 수 있다.
이상, 본 발명을 실시의 형태를 기초로 설명했다. 이 실시의 형태는 예시이며, 그들을 각 구성요소나 각 프로세스를 조합하여 여러 가지의 변형 예가 가능하며, 또 그러한 변형 예도 본 발명의 범위에 있는 경우는 당업자에 이해될 것이다.
본 발명은 고속으로 이진 탐색을 수행할 수 있는 기술을 제공한다.

Claims (5)

  1. 비교 타겟 데이터에 대한 데이터 부분들을 오름차순 또는 내림차순으로 정렬하여 저장하는 데이터베이스를 이진 탐색에 의해 탐색하는 이진 탐색 회로에 있어서,
    상기 데이터베이스로부터 리드된 데이터 부분들과 상기 비교 타겟 데이터를 비교하는 2n-1개의 비교 회로들; 및
    상기 비교 회로들을 제어하는 제어 회로를 포함하고,
    상기 데이터베이스의 탐색 범위가 2n개로 분할될 때, 상기 제어 회로는 상기 탐색 범위 내의 1/2n, 2/2n, ..., (2n-1)/2n 위치에 있는 각각의 데이터 부분을 상기 2n-1개의 비교 회로들에 각각 입력시키고, 상기 비교 회로들로 하여금 입력된 데이터 부분들과 상기 비교 타겟 데이터를 비교하게 하여 n번의 탐색을 동시에 병렬적으로 수행하도록 하는 것을 특징으로 하는 이진 탐색 회로.
  2. 제1항에 있어서,
    상기 제어 회로는 상기 비교 타겟 데이터가 상기 2n-1개의 비교 회로들로부터의 비교 결과들에 기반하여 찾아진 것인지를 결정하고, 상기 비교 타겟 데이터가 찾아지지 않을 때에는 상기 제어 회로는 상기 비교 결과들에 기반하여 정의된 다음 의 탐색 범위 내의 1/2n, 2/2n, ..., (2n-1)/2n 위치에 있는 각각의 데이터 부분을 상기 각 비교 회로들에 입력시키는 것을 특징으로 하는 이진 탐색 회로.
  3. 제1항 또는 제2항에 있어서,
    상기 회로는 상기 각각의 비교 회로들과 연결된 2n-1개의 데이터베이스들을 포함하고,
    상기 제어 회로는, 상기 각 비교 회로들에 연결된 상기 데이터베이스로부터, 상기 탐색 범위 내의 1/2n, 2/2n, ..., (2n-1)/2n 위치에 있는 데이터 부분들을 병렬적으로 입력시키는 것을 특징으로 하는 이진 탐색 회로.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 회로는 유선 로직 회로로 구성되는 것을 특징으로 하는 이진 탐색 회로.
  5. 오름차순 또는 내림차순으로 정렬된 데이터 부분들을 저장하는 데이터베이스의 탐색 범위가 2n개로 분할될 때 상기 탐색 범위 내의 1/2n, 2/2n, ..., (2n-1)/2 위치에 있는 각 데이터 부분이 2n-1 개의 비교 회로들로 각각 입력되고, 상기 비교 회로들이 상기 데이터 부분들과 비교 타겟 데이터를 비교하여 n번의 탐색이 동시에 병렬적으로 수행되는 것을 특징으로 하는 이진 탐색 방법.
KR1020087009071A 2008-04-16 2006-05-22 이진 탐색 회로 및 방법 KR20080045761A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020087009071A KR20080045761A (ko) 2008-04-16 2006-05-22 이진 탐색 회로 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020087009071A KR20080045761A (ko) 2008-04-16 2006-05-22 이진 탐색 회로 및 방법

Publications (1)

Publication Number Publication Date
KR20080045761A true KR20080045761A (ko) 2008-05-23

Family

ID=39662979

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087009071A KR20080045761A (ko) 2008-04-16 2006-05-22 이진 탐색 회로 및 방법

Country Status (1)

Country Link
KR (1) KR20080045761A (ko)

Similar Documents

Publication Publication Date Title
US8073855B2 (en) Communication control device and communication control system
JP4027416B2 (ja) データ処理装置
US11418632B2 (en) High speed flexible packet classification using network processors
JP4598127B2 (ja) ステートフルなパケット内容マッチング機構
US20060212426A1 (en) Efficient CAM-based techniques to perform string searches in packet payloads
US20070133593A1 (en) Searching Strings Representing a Regular Expression
US8990492B1 (en) Increasing capacity in router forwarding tables
EP1901172A1 (en) Data processing system
US8543528B2 (en) Exploitation of transition rule sharing based on short state tags to improve the storage efficiency
US20160321289A1 (en) Method and Apparatus for Generating a Plurality of Indexed Data Fields
US8065322B2 (en) Binary search circuit and method
US20070255676A1 (en) Methods and apparatus for performing tree-based processing using multi-level memory storage
JP4201822B2 (ja) データ処理装置
JP4146505B1 (ja) 判定装置及び判定方法
KR20080045761A (ko) 이진 탐색 회로 및 방법
US20100138181A1 (en) Testing apparatus
US20190207958A1 (en) Multi-pattern policy detection system and method
JP4060348B2 (ja) データ処理装置
JP4104649B1 (ja) バイナリサーチ回路及び方法
KR20080017046A (ko) 데이터 프로세싱 시스템
Liu et al. A STT-Partition-Based Parallel Algorithm for Pattern Matching on GPU and CPU
JP2019145924A (ja) 検索装置、検索方法及び検索プログラム
KR20080057284A (ko) 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application